diff options
358 files changed, 6036 insertions, 3308 deletions
diff --git a/AconfigFlags.bp b/AconfigFlags.bp index 371177c8b0a5..da15c269a19f 100644 --- a/AconfigFlags.bp +++ b/AconfigFlags.bp @@ -95,6 +95,7 @@ aconfig_declarations_group {          "com.android.internal.foldables.flags-aconfig-java",          "com.android.internal.os.flags-aconfig-java",          "com.android.internal.pm.pkg.component.flags-aconfig-java", +        "com.android.internal.widget.flags-aconfig-java",          "com.android.media.flags.bettertogether-aconfig-java",          "com.android.media.flags.editing-aconfig-java",          "com.android.media.flags.performance-aconfig-java", @@ -279,6 +280,19 @@ java_aconfig_library {      defaults: ["framework-minus-apex-aconfig-java-defaults"],  } +aconfig_declarations { +    name: "com.android.internal.widget.flags-aconfig", +    package: "com.android.internal.widget.flags", +    container: "system", +    srcs: ["core/java/com/android/internal/widget/*.aconfig"], +} + +java_aconfig_library { +    name: "com.android.internal.widget.flags-aconfig-java", +    aconfig_declarations: "com.android.internal.widget.flags-aconfig", +    defaults: ["framework-minus-apex-aconfig-java-defaults"], +} +  // Text  aconfig_declarations {      name: "com.android.text.flags-aconfig", diff --git a/cmds/idmap2/Android.bp b/cmds/idmap2/Android.bp index 58763a7f9aca..d9ff19051de9 100644 --- a/cmds/idmap2/Android.bp +++ b/cmds/idmap2/Android.bp @@ -165,6 +165,7 @@ cc_test {      ],      host_supported: true,      test_suites: ["general-tests"], +    require_root: true,      srcs: [          "tests/BinaryStreamVisitorTests.cpp",          "tests/CommandLineOptionsTests.cpp", diff --git a/cmds/idmap2/libidmap2/ResourceContainer.cpp b/cmds/idmap2/libidmap2/ResourceContainer.cpp index 57ae3548123b..f22a481c1f28 100644 --- a/cmds/idmap2/libidmap2/ResourceContainer.cpp +++ b/cmds/idmap2/libidmap2/ResourceContainer.cpp @@ -22,6 +22,7 @@  #include <utility>  #include <vector> +#include "android-base/scopeguard.h"  #include "androidfw/ApkAssets.h"  #include "androidfw/AssetManager.h"  #include "androidfw/Util.h" @@ -269,27 +270,40 @@ struct ResState {    std::unique_ptr<AssetManager2> am;    ZipAssetsProvider* zip_assets; -  static Result<ResState> Initialize(std::unique_ptr<ZipAssetsProvider> zip, +  static Result<ResState> Initialize(std::unique_ptr<ZipAssetsProvider>&& zip,                                       package_property_t flags) {      ResState state;      state.zip_assets = zip.get();      if ((state.apk_assets = ApkAssets::Load(std::move(zip), flags)) == nullptr) { -      return Error("failed to load apk asset"); +      return Error("failed to load apk asset for '%s'", +                   state.zip_assets->GetDebugName().c_str());      } +    // Make sure we put ZipAssetsProvider where we took it if initialization fails, so the +    // original object stays valid for any next call it may get. +    auto scoped_restore_zip_assets = android::base::ScopeGuard([&zip, &state]() { +      zip = std::unique_ptr<ZipAssetsProvider>( +          static_cast<ZipAssetsProvider*>( +              std::move(const_cast<ApkAssets&>(*state.apk_assets)).TakeAssetsProvider().release())); +    }); +      if ((state.arsc = state.apk_assets->GetLoadedArsc()) == nullptr) { -      return Error("failed to retrieve loaded arsc"); +      return Error("failed to retrieve loaded arsc for '%s'", +                   state.zip_assets->GetDebugName().c_str());      }      if ((state.package = GetPackageAtIndex0(state.arsc)) == nullptr) { -      return Error("failed to retrieve loaded package at index 0"); +      return Error("failed to retrieve loaded package at index 0 for '%s'", +                   state.zip_assets->GetDebugName().c_str());      }      state.am = std::make_unique<AssetManager2>();      if (!state.am->SetApkAssets({state.apk_assets}, false)) { -      return Error("failed to create asset manager"); +      return Error("failed to create asset manager for '%s'", +                   state.zip_assets->GetDebugName().c_str());      } +    scoped_restore_zip_assets.Disable();      return state;    }  }; diff --git a/cmds/idmap2/tests/IdmapTests.cpp b/cmds/idmap2/tests/IdmapTests.cpp index 1b656e8c2088..7093614f4047 100644 --- a/cmds/idmap2/tests/IdmapTests.cpp +++ b/cmds/idmap2/tests/IdmapTests.cpp @@ -214,6 +214,20 @@ TEST(IdmapTests, CreateIdmapHeaderFromApkAssets) {    ASSERT_EQ(idmap->GetHeader()->GetOverlayName(), TestConstants::OVERLAY_NAME_ALL_POLICIES);  } +TEST(IdmapTests, TargetContainerWorksAfterError) { +  auto target = TargetResourceContainer::FromPath(GetTestDataPath() + "/target/target-bad.apk"); +  ASSERT_TRUE(target); + +  auto crc = target->get()->GetCrc(); +  ASSERT_TRUE(crc); + +  // This call tries to construct the full ApkAssets state, and fails. +  ASSERT_FALSE(target->get()->DefinesOverlayable()); +  auto crc2 = target->get()->GetCrc(); +  ASSERT_TRUE(crc2); +  EXPECT_EQ(*crc, *crc2); +} +  TEST(IdmapTests, CreateIdmapDataFromApkAssets) {    std::string target_apk_path = GetTestDataPath() + "/target/target.apk";    std::string overlay_apk_path = GetTestDataPath() + "/overlay/overlay.apk"; diff --git a/cmds/idmap2/tests/data/target/target-bad.apk b/cmds/idmap2/tests/data/target/target-bad.apk Binary files differnew file mode 100644 index 000000000000..fd8678238c4d --- /dev/null +++ b/cmds/idmap2/tests/data/target/target-bad.apk diff --git a/core/api/current.txt b/core/api/current.txt index f3d19ca3f21c..0fe8717e8954 100644 --- a/core/api/current.txt +++ b/core/api/current.txt @@ -140,6 +140,7 @@ package android {      field public static final String MANAGE_DEVICE_POLICY_ACROSS_USERS_SECURITY_CRITICAL = "android.permission.MANAGE_DEVICE_POLICY_ACROSS_USERS_SECURITY_CRITICAL";      field public static final String MANAGE_DEVICE_POLICY_AIRPLANE_MODE = "android.permission.MANAGE_DEVICE_POLICY_AIRPLANE_MODE";      field public static final String MANAGE_DEVICE_POLICY_APPS_CONTROL = "android.permission.MANAGE_DEVICE_POLICY_APPS_CONTROL"; +    field @FlaggedApi("android.app.appfunctions.flags.enable_app_function_manager") public static final String MANAGE_DEVICE_POLICY_APP_FUNCTIONS = "android.permission.MANAGE_DEVICE_POLICY_APP_FUNCTIONS";      field public static final String MANAGE_DEVICE_POLICY_APP_RESTRICTIONS = "android.permission.MANAGE_DEVICE_POLICY_APP_RESTRICTIONS";      field public static final String MANAGE_DEVICE_POLICY_APP_USER_DATA = "android.permission.MANAGE_DEVICE_POLICY_APP_USER_DATA";      field public static final String MANAGE_DEVICE_POLICY_ASSIST_CONTENT = "android.permission.MANAGE_DEVICE_POLICY_ASSIST_CONTENT"; @@ -8074,6 +8075,7 @@ package android.app.admin {      field public static final String ACCOUNT_MANAGEMENT_DISABLED_POLICY = "accountManagementDisabled";      field public static final String APPLICATION_HIDDEN_POLICY = "applicationHidden";      field public static final String APPLICATION_RESTRICTIONS_POLICY = "applicationRestrictions"; +    field @FlaggedApi("android.app.appfunctions.flags.enable_app_function_manager") public static final String APP_FUNCTIONS_POLICY = "appFunctions";      field public static final String AUTO_TIMEZONE_POLICY = "autoTimezone";      field public static final String AUTO_TIME_POLICY = "autoTime";      field public static final String BACKUP_SERVICE_POLICY = "backupService"; @@ -8123,6 +8125,7 @@ package android.app.admin {      method @NonNull public java.util.Set<java.lang.String> getAffiliationIds(@NonNull android.content.ComponentName);      method @Nullable public java.util.Set<java.lang.String> getAlwaysOnVpnLockdownWhitelist(@NonNull android.content.ComponentName);      method @Nullable public String getAlwaysOnVpnPackage(@NonNull android.content.ComponentName); +    method @FlaggedApi("android.app.appfunctions.flags.enable_app_function_manager") @RequiresPermission(value=android.Manifest.permission.MANAGE_DEVICE_POLICY_APP_FUNCTIONS, conditional=true) public int getAppFunctionsPolicy();      method @NonNull @WorkerThread public android.os.Bundle getApplicationRestrictions(@Nullable android.content.ComponentName, String);      method @Deprecated @Nullable public String getApplicationRestrictionsManagingPackage(@NonNull android.content.ComponentName);      method @RequiresPermission(anyOf={android.Manifest.permission.SET_TIME, "android.permission.QUERY_ADMIN_POLICY"}, conditional=true) public boolean getAutoTimeEnabled(@Nullable android.content.ComponentName); @@ -8281,6 +8284,7 @@ package android.app.admin {      method public void setAffiliationIds(@NonNull android.content.ComponentName, @NonNull java.util.Set<java.lang.String>);      method public void setAlwaysOnVpnPackage(@NonNull android.content.ComponentName, @Nullable String, boolean) throws android.content.pm.PackageManager.NameNotFoundException;      method public void setAlwaysOnVpnPackage(@NonNull android.content.ComponentName, @Nullable String, boolean, @Nullable java.util.Set<java.lang.String>) throws android.content.pm.PackageManager.NameNotFoundException; +    method @FlaggedApi("android.app.appfunctions.flags.enable_app_function_manager") @RequiresPermission(value=android.Manifest.permission.MANAGE_DEVICE_POLICY_APP_FUNCTIONS, conditional=true) public void setAppFunctionsPolicy(int);      method @RequiresPermission(value=android.Manifest.permission.MANAGE_DEVICE_POLICY_PACKAGE_STATE, conditional=true) public boolean setApplicationHidden(@Nullable android.content.ComponentName, String, boolean);      method @WorkerThread public void setApplicationRestrictions(@Nullable android.content.ComponentName, String, android.os.Bundle);      method @Deprecated public void setApplicationRestrictionsManagingPackage(@NonNull android.content.ComponentName, @Nullable String) throws android.content.pm.PackageManager.NameNotFoundException; @@ -8407,6 +8411,9 @@ package android.app.admin {      field public static final String ACTION_SET_NEW_PASSWORD = "android.app.action.SET_NEW_PASSWORD";      field public static final String ACTION_START_ENCRYPTION = "android.app.action.START_ENCRYPTION";      field public static final String ACTION_SYSTEM_UPDATE_POLICY_CHANGED = "android.app.action.SYSTEM_UPDATE_POLICY_CHANGED"; +    field @FlaggedApi("android.app.appfunctions.flags.enable_app_function_manager") public static final int APP_FUNCTIONS_DISABLED = 1; // 0x1 +    field @FlaggedApi("android.app.appfunctions.flags.enable_app_function_manager") public static final int APP_FUNCTIONS_DISABLED_CROSS_PROFILE = 2; // 0x2 +    field @FlaggedApi("android.app.appfunctions.flags.enable_app_function_manager") public static final int APP_FUNCTIONS_NOT_CONTROLLED_BY_POLICY = 0; // 0x0      field @FlaggedApi("android.app.admin.flags.set_auto_time_enabled_coexistence") public static final int AUTO_TIME_DISABLED = 1; // 0x1      field @FlaggedApi("android.app.admin.flags.set_auto_time_enabled_coexistence") public static final int AUTO_TIME_ENABLED = 2; // 0x2      field @FlaggedApi("android.app.admin.flags.set_auto_time_enabled_coexistence") public static final int AUTO_TIME_NOT_CONTROLLED_BY_POLICY = 0; // 0x0 @@ -21781,6 +21788,18 @@ package android.media {      field public static final int ENCODING_DTS_UHD_P2 = 30; // 0x1e      field public static final int ENCODING_E_AC3 = 6; // 0x6      field public static final int ENCODING_E_AC3_JOC = 18; // 0x12 +    field @FlaggedApi("android.media.audio.iamf_definitions_api") public static final int ENCODING_IAMF_BASE_ENHANCED_PROFILE_AAC = 42; // 0x2a +    field @FlaggedApi("android.media.audio.iamf_definitions_api") public static final int ENCODING_IAMF_BASE_ENHANCED_PROFILE_FLAC = 43; // 0x2b +    field @FlaggedApi("android.media.audio.iamf_definitions_api") public static final int ENCODING_IAMF_BASE_ENHANCED_PROFILE_OPUS = 41; // 0x29 +    field @FlaggedApi("android.media.audio.iamf_definitions_api") public static final int ENCODING_IAMF_BASE_ENHANCED_PROFILE_PCM = 44; // 0x2c +    field @FlaggedApi("android.media.audio.iamf_definitions_api") public static final int ENCODING_IAMF_BASE_PROFILE_AAC = 38; // 0x26 +    field @FlaggedApi("android.media.audio.iamf_definitions_api") public static final int ENCODING_IAMF_BASE_PROFILE_FLAC = 39; // 0x27 +    field @FlaggedApi("android.media.audio.iamf_definitions_api") public static final int ENCODING_IAMF_BASE_PROFILE_OPUS = 37; // 0x25 +    field @FlaggedApi("android.media.audio.iamf_definitions_api") public static final int ENCODING_IAMF_BASE_PROFILE_PCM = 40; // 0x28 +    field @FlaggedApi("android.media.audio.iamf_definitions_api") public static final int ENCODING_IAMF_SIMPLE_PROFILE_AAC = 34; // 0x22 +    field @FlaggedApi("android.media.audio.iamf_definitions_api") public static final int ENCODING_IAMF_SIMPLE_PROFILE_FLAC = 35; // 0x23 +    field @FlaggedApi("android.media.audio.iamf_definitions_api") public static final int ENCODING_IAMF_SIMPLE_PROFILE_OPUS = 33; // 0x21 +    field @FlaggedApi("android.media.audio.iamf_definitions_api") public static final int ENCODING_IAMF_SIMPLE_PROFILE_PCM = 36; // 0x24      field public static final int ENCODING_IEC61937 = 13; // 0xd      field public static final int ENCODING_INVALID = 0; // 0x0      field public static final int ENCODING_MP3 = 9; // 0x9 @@ -40754,8 +40773,10 @@ package android.security.keystore {      method @NonNull public java.util.List<java.security.cert.X509Certificate> getGrantedCertificateChainFromId(long) throws android.security.keystore.KeyPermanentlyInvalidatedException, java.security.UnrecoverableKeyException;      method @NonNull public java.security.Key getGrantedKeyFromId(long) throws android.security.keystore.KeyPermanentlyInvalidatedException, java.security.UnrecoverableKeyException;      method @NonNull public java.security.KeyPair getGrantedKeyPairFromId(long) throws android.security.keystore.KeyPermanentlyInvalidatedException, java.security.UnrecoverableKeyException; +    method @FlaggedApi("android.security.keystore2.attest_modules") @NonNull public byte[] getSupplementaryAttestationInfo(int) throws android.security.KeyStoreException;      method public long grantKeyAccess(@NonNull String, int) throws android.security.KeyStoreException, java.security.UnrecoverableKeyException;      method public void revokeKeyAccess(@NonNull String, int) throws android.security.KeyStoreException, java.security.UnrecoverableKeyException; +    field public static final int MODULE_HASH = -1879047468; // 0x900002d4    }    public class SecureKeyImportUnavailableException extends java.security.ProviderException { @@ -42548,9 +42569,10 @@ package android.service.settings.preferences {      method public boolean isWritable();      method public void writeToParcel(@NonNull android.os.Parcel, int);      field @NonNull public static final android.os.Parcelable.Creator<android.service.settings.preferences.SettingsPreferenceMetadata> CREATOR; -    field public static final int INTENT_ONLY = 2; // 0x2 -    field public static final int NOT_SENSITIVE = 0; // 0x0 -    field public static final int SENSITIVE = 1; // 0x1 +    field public static final int EXPECT_POST_CONFIRMATION = 1; // 0x1 +    field public static final int EXPECT_PRE_CONFIRMATION = 2; // 0x2 +    field public static final int NO_DIRECT_ACCESS = 3; // 0x3 +    field public static final int NO_SENSITIVITY = 0; // 0x0    }    public static final class SettingsPreferenceMetadata.Builder { diff --git a/core/api/module-lib-current.txt b/core/api/module-lib-current.txt index fe6e9950a175..bca2ce2473c5 100644 --- a/core/api/module-lib-current.txt +++ b/core/api/module-lib-current.txt @@ -482,6 +482,10 @@ package android.os {      field public static final long TRACE_TAG_NETWORK = 2097152L; // 0x200000L    } +  public class UpdateEngine { +    method @FlaggedApi("android.os.update_engine_api") public void triggerPostinstall(@NonNull String); +  } +  }  package android.os.storage { diff --git a/core/api/system-current.txt b/core/api/system-current.txt index d1de19e16e15..a5939700e5aa 100644 --- a/core/api/system-current.txt +++ b/core/api/system-current.txt @@ -5264,9 +5264,9 @@ package android.hardware.contexthub {    }    @FlaggedApi("android.chre.flags.offload_api") public class HubEndpointSession implements java.lang.AutoCloseable { -    method public void close(); +    method @RequiresPermission(android.Manifest.permission.ACCESS_CONTEXT_HUB) public void close();      method @Nullable public android.hardware.contexthub.HubServiceInfo getServiceInfo(); -    method @NonNull public android.hardware.location.ContextHubTransaction<java.lang.Void> sendMessage(@NonNull android.hardware.contexthub.HubMessage); +    method @NonNull @RequiresPermission(android.Manifest.permission.ACCESS_CONTEXT_HUB) public android.hardware.location.ContextHubTransaction<java.lang.Void> sendMessage(@NonNull android.hardware.contexthub.HubMessage);    }    @FlaggedApi("android.chre.flags.offload_api") public class HubEndpointSessionResult { diff --git a/core/api/test-current.txt b/core/api/test-current.txt index 5442ab7d1d9e..0a806c76a24b 100644 --- a/core/api/test-current.txt +++ b/core/api/test-current.txt @@ -657,6 +657,7 @@ package android.app.admin {      field public static final int OPERATION_SET_ALWAYS_ON_VPN_PACKAGE = 30; // 0x1e      field public static final int OPERATION_SET_APPLICATION_HIDDEN = 15; // 0xf      field public static final int OPERATION_SET_APPLICATION_RESTRICTIONS = 16; // 0x10 +    field @FlaggedApi("android.app.appfunctions.flags.enable_app_function_manager") public static final int OPERATION_SET_APP_FUNCTIONS_POLICY = 42; // 0x2a      field public static final int OPERATION_SET_CAMERA_DISABLED = 31; // 0x1f      field @FlaggedApi("android.view.contentprotection.flags.manage_device_policy_enabled") public static final int OPERATION_SET_CONTENT_PROTECTION_POLICY = 41; // 0x29      field public static final int OPERATION_SET_FACTORY_RESET_PROTECTION_POLICY = 32; // 0x20 diff --git a/core/java/android/app/admin/DevicePolicyIdentifiers.java b/core/java/android/app/admin/DevicePolicyIdentifiers.java index 35149b5a3135..89261a4f85ee 100644 --- a/core/java/android/app/admin/DevicePolicyIdentifiers.java +++ b/core/java/android/app/admin/DevicePolicyIdentifiers.java @@ -20,6 +20,7 @@ import android.annotation.FlaggedApi;  import android.annotation.NonNull;  import android.annotation.SystemApi;  import android.annotation.TestApi; +import android.app.appfunctions.flags.Flags;  import android.os.UserManager;  import java.util.Objects; @@ -181,6 +182,12 @@ public final class DevicePolicyIdentifiers {      public static final String CONTENT_PROTECTION_POLICY = "contentProtection";      /** +     * String identifier for {@link DevicePolicyManager#setAppFunctionsPolicy(int)}. +     */ +    @FlaggedApi(Flags.FLAG_ENABLE_APP_FUNCTION_MANAGER) +    public static final String APP_FUNCTIONS_POLICY = "appFunctions"; + +    /**       * String identifier for {@link DevicePolicyManager#setUsbDataSignalingEnabled}.       */      public static final String USB_DATA_SIGNALING_POLICY = "usbDataSignaling"; diff --git a/core/java/android/app/admin/DevicePolicyManager.java b/core/java/android/app/admin/DevicePolicyManager.java index 8372078b46a5..9ddc729850c4 100644 --- a/core/java/android/app/admin/DevicePolicyManager.java +++ b/core/java/android/app/admin/DevicePolicyManager.java @@ -23,6 +23,7 @@ import static android.Manifest.permission.LOCK_DEVICE;  import static android.Manifest.permission.MANAGE_DEVICE_ADMINS;  import static android.Manifest.permission.MANAGE_DEVICE_POLICY_ACCOUNT_MANAGEMENT;  import static android.Manifest.permission.MANAGE_DEVICE_POLICY_APPS_CONTROL; +import static android.Manifest.permission.MANAGE_DEVICE_POLICY_APP_FUNCTIONS;  import static android.Manifest.permission.MANAGE_DEVICE_POLICY_CAMERA;  import static android.Manifest.permission.MANAGE_DEVICE_POLICY_CERTIFICATES;  import static android.Manifest.permission.MANAGE_DEVICE_POLICY_COMMON_CRITERIA_MODE; @@ -3931,6 +3932,11 @@ public class DevicePolicyManager {      @FlaggedApi(android.view.contentprotection.flags.Flags.FLAG_MANAGE_DEVICE_POLICY_ENABLED)      public static final int OPERATION_SET_CONTENT_PROTECTION_POLICY = 41; +    /** @hide */ +    @TestApi +    @FlaggedApi(android.app.appfunctions.flags.Flags.FLAG_ENABLE_APP_FUNCTION_MANAGER) +    public static final int OPERATION_SET_APP_FUNCTIONS_POLICY = 42; +      private static final String PREFIX_OPERATION = "OPERATION_";      /** @hide */ @@ -3975,7 +3981,8 @@ public class DevicePolicyManager {              OPERATION_SET_PERMISSION_POLICY,              OPERATION_SET_RESTRICTIONS_PROVIDER,              OPERATION_UNINSTALL_CA_CERT, -            OPERATION_SET_CONTENT_PROTECTION_POLICY +            OPERATION_SET_CONTENT_PROTECTION_POLICY, +            OPERATION_SET_APP_FUNCTIONS_POLICY      })      @Retention(RetentionPolicy.SOURCE)      public static @interface DevicePolicyOperation { @@ -4347,6 +4354,90 @@ public class DevicePolicyManager {      }      /** +     * Indicates that app functions are not controlled by policy. +     * +     * <p>If no admin set this policy, it means appfunctions are enabled. +     */ +    @FlaggedApi(android.app.appfunctions.flags.Flags.FLAG_ENABLE_APP_FUNCTION_MANAGER) +    public static final int APP_FUNCTIONS_NOT_CONTROLLED_BY_POLICY = 0; + +    /** Indicates that app functions are controlled and disabled by a policy. */ +    @FlaggedApi(android.app.appfunctions.flags.Flags.FLAG_ENABLE_APP_FUNCTION_MANAGER) +    public static final int APP_FUNCTIONS_DISABLED = 1; + +    /** +     * Indicates that app functions are controlled and disabled by a policy for cross profile +     * interactions only. +     * +     * <p>This is different from {@link #APP_FUNCTIONS_DISABLED} in that it only disables cross +     * profile interactions (even if the caller has permissions required to interact across users). +     * appfunctions can still be used within the a user profile boundary. +     */ +    @FlaggedApi(android.app.appfunctions.flags.Flags.FLAG_ENABLE_APP_FUNCTION_MANAGER) +    public static final int APP_FUNCTIONS_DISABLED_CROSS_PROFILE = 2; + +    /** @hide */ +    @IntDef( +            prefix = {"APP_FUNCTIONS_"}, +            value = { +                    APP_FUNCTIONS_NOT_CONTROLLED_BY_POLICY, +                    APP_FUNCTIONS_DISABLED, +                    APP_FUNCTIONS_DISABLED_CROSS_PROFILE +            }) +    @Retention(RetentionPolicy.SOURCE) +    public @interface AppFunctionsPolicy {} + +    /** +     * Sets the app functions policy which controls app functions operations on the device. +     * +     * <p>This function can only be called by a device owner, a profile owner or holders of the +     * permission {@link android.Manifest.permission#MANAGE_DEVICE_POLICY_APP_FUNCTIONS}. +     * +     * @param policy The app functions policy to set. One of {@link +     *               #APP_FUNCTIONS_NOT_CONTROLLED_BY_POLICY}, +     *               {@link #APP_FUNCTIONS_DISABLED} or +     *               {@link #APP_FUNCTIONS_DISABLED_CROSS_PROFILE} +     * @throws SecurityException if caller is not a device owner, a profile owner or a holder +     * of the permission {@link android.Manifest.permission#MANAGE_DEVICE_POLICY_APP_FUNCTIONS}. +     */ +    @RequiresPermission(value = MANAGE_DEVICE_POLICY_APP_FUNCTIONS, conditional = true) +    @FlaggedApi(android.app.appfunctions.flags.Flags.FLAG_ENABLE_APP_FUNCTION_MANAGER) +    public void setAppFunctionsPolicy(@AppFunctionsPolicy int policy) { +        throwIfParentInstance("setAppFunctionsPolicy"); +        if (mService != null) { +            try { +                mService.setAppFunctionsPolicy(mContext.getPackageName(), policy); +            } catch (RemoteException e) { +                throw e.rethrowFromSystemServer(); +            } +        } +    } + +    /** +     * Returns the current app functions policy. +     * +     * <p>The returned policy will be the current resolved policy rather than the policy set by the +     * calling admin. +     * +     * @throws SecurityException if caller is not a device owner, a profile owner or a holder +     * of the permission {@link android.Manifest.permission#MANAGE_DEVICE_POLICY_APP_FUNCTIONS}. +     */ +    @RequiresPermission(value = MANAGE_DEVICE_POLICY_APP_FUNCTIONS, conditional = true) +    @FlaggedApi(android.app.appfunctions.flags.Flags.FLAG_ENABLE_APP_FUNCTION_MANAGER) +    public @AppFunctionsPolicy int getAppFunctionsPolicy() { +        throwIfParentInstance("getAppFunctionsPolicy"); +        if (mService != null) { +            try { +                return mService.getAppFunctionsPolicy(mContext.getPackageName(), +                        myUserId()); +            } catch (RemoteException e) { +                throw e.rethrowFromSystemServer(); +            } +        } +        return APP_FUNCTIONS_NOT_CONTROLLED_BY_POLICY; +    } + +    /**       * This object is a single place to tack on invalidation and disable calls.  All       * binder caches in this class derive from this Config, so all can be invalidated or       * disabled through this Config. diff --git a/core/java/android/app/admin/IDevicePolicyManager.aidl b/core/java/android/app/admin/IDevicePolicyManager.aidl index 03a9f9955086..f304c1bf0a88 100644 --- a/core/java/android/app/admin/IDevicePolicyManager.aidl +++ b/core/java/android/app/admin/IDevicePolicyManager.aidl @@ -644,4 +644,7 @@ interface IDevicePolicyManager {      int getPolicySizeForAdmin(String callerPackageName, in EnforcingAdmin admin);      int getHeadlessDeviceOwnerMode(String callerPackageName); + +    void setAppFunctionsPolicy(String callerPackageName, int policy); +    int getAppFunctionsPolicy(String callerPackageName, int userId);  } diff --git a/core/java/android/app/admin/UnknownAuthority.java b/core/java/android/app/admin/UnknownAuthority.java index 82dcf7e1a115..bebffdea5f02 100644 --- a/core/java/android/app/admin/UnknownAuthority.java +++ b/core/java/android/app/admin/UnknownAuthority.java @@ -74,14 +74,14 @@ public final class UnknownAuthority extends Authority {      @Override      public boolean equals(@Nullable Object o) {          if (this == o) return true; -        if (o != null && getClass() == o.getClass()) return false; +        if (o == null || getClass() != o.getClass()) return false;          UnknownAuthority other = (UnknownAuthority) o;          return Objects.equals(mName, other.mName);      }      @Override      public int hashCode() { -        return mName.hashCode(); +        return Objects.hashCode(mName);      }      @Override diff --git a/core/java/android/content/Intent.java b/core/java/android/content/Intent.java index d7660172a2f1..18d8c3a94e0c 100644 --- a/core/java/android/content/Intent.java +++ b/core/java/android/content/Intent.java @@ -6187,7 +6187,8 @@ public class Intent implements Parcelable, Cloneable {       * {@link #EXTRA_CHOOSER_MODIFY_SHARE_ACTION},       * {@link #EXTRA_METADATA_TEXT},       * {@link #EXTRA_CHOOSER_REFINEMENT_INTENT_SENDER}, -     * {@link #EXTRA_CHOOSER_RESULT_INTENT_SENDER}. +     * {@link #EXTRA_CHOOSER_RESULT_INTENT_SENDER}, +     * {@link #EXTRA_EXCLUDE_COMPONENTS}.       * </p>       */      public static final String EXTRA_CHOOSER_ADDITIONAL_CONTENT_URI = @@ -7856,6 +7857,10 @@ public class Intent implements Parcelable, Cloneable {       */      public static final int URI_ALLOW_UNSAFE = 1<<2; +    static { +        Bundle.intentClass = Intent.class; +    } +      // ---------------------------------------------------------------------      private String mAction; diff --git a/core/java/android/credentials/flags.aconfig b/core/java/android/credentials/flags.aconfig index 6c35d106bfb7..68f17e2cd25a 100644 --- a/core/java/android/credentials/flags.aconfig +++ b/core/java/android/credentials/flags.aconfig @@ -87,6 +87,16 @@ flag {  flag {      namespace: "credential_manager" +    name: "framework_session_id_metric_bundle" +    description: "Enables the session_id to be passed across to the UI logs" +    bug: "379880133" +    metadata { +            purpose: PURPOSE_BUGFIX +        } +} + +flag { +    namespace: "credential_manager"      name: "clear_credentials_fix_enabled"      description: "Fixes bug in clearCredential API that causes indefinite suspension"      bug: "314926460" diff --git a/core/java/android/hardware/contexthub/HubEndpointSession.java b/core/java/android/hardware/contexthub/HubEndpointSession.java index cf952cbdbfdc..b3d65c1a4cae 100644 --- a/core/java/android/hardware/contexthub/HubEndpointSession.java +++ b/core/java/android/hardware/contexthub/HubEndpointSession.java @@ -19,6 +19,7 @@ package android.hardware.contexthub;  import android.annotation.FlaggedApi;  import android.annotation.NonNull;  import android.annotation.Nullable; +import android.annotation.RequiresPermission;  import android.annotation.SystemApi;  import android.chre.flags.Flags;  import android.hardware.location.ContextHubTransaction; @@ -70,6 +71,7 @@ public class HubEndpointSession implements AutoCloseable {       *     receiving the response for the message.       */      @NonNull +    @RequiresPermission(android.Manifest.permission.ACCESS_CONTEXT_HUB)      public ContextHubTransaction<Void> sendMessage(@NonNull HubMessage message) {          if (mIsClosed.get()) {              throw new IllegalStateException("Session is already closed."); @@ -120,6 +122,7 @@ public class HubEndpointSession implements AutoCloseable {       * <p>When this function is invoked, the messaging associated with this session is invalidated.       * All futures messages targeted for this client are dropped.       */ +    @RequiresPermission(android.Manifest.permission.ACCESS_CONTEXT_HUB)      public void close() {          if (!mIsClosed.getAndSet(true)) {              mCloseGuard.close(); diff --git a/core/java/android/hardware/input/KeyGestureEvent.java b/core/java/android/hardware/input/KeyGestureEvent.java index 711dc3a2cf7c..af756b9217d3 100644 --- a/core/java/android/hardware/input/KeyGestureEvent.java +++ b/core/java/android/hardware/input/KeyGestureEvent.java @@ -43,6 +43,8 @@ public final class KeyGestureEvent {      private static final int LOG_EVENT_UNSPECIFIED =              FrameworkStatsLog.KEYBOARD_SYSTEMS_EVENT_REPORTED__KEYBOARD_SYSTEM_EVENT__UNSPECIFIED; +    // These values should not change and values should not be re-used as this data is persisted to +    // long term storage and must be kept backwards compatible.      public static final int KEY_GESTURE_TYPE_UNSPECIFIED = 0;      public static final int KEY_GESTURE_TYPE_HOME = 1;      public static final int KEY_GESTURE_TYPE_RECENT_APPS = 2; diff --git a/core/java/android/os/Bundle.java b/core/java/android/os/Bundle.java index 05bd10b053fe..819d58d9f059 100644 --- a/core/java/android/os/Bundle.java +++ b/core/java/android/os/Bundle.java @@ -70,6 +70,11 @@ public final class Bundle extends BaseBundle implements Cloneable, Parcelable {       */      static final int FLAG_VERIFY_TOKENS_PRESENT = 1 << 13; +    /** +     * Indicates the bundle definitely contains an Intent. +     */ +    static final int FLAG_HAS_INTENT = 1 << 14; +      /**       * Status when the Bundle can <b>assert</b> that the underlying Parcel DOES NOT contain @@ -118,6 +123,11 @@ public final class Bundle extends BaseBundle implements Cloneable, Parcelable {      public static final Bundle EMPTY;      /** +     * @hide +     */ +    public static Class<?> intentClass; + +    /**       * Special extras used to denote extras have been stripped off.       * @hide       */ @@ -388,6 +398,7 @@ public final class Bundle extends BaseBundle implements Cloneable, Parcelable {          if ((bundle.mFlags & FLAG_HAS_BINDERS_KNOWN) == 0) {              mFlags &= ~FLAG_HAS_BINDERS_KNOWN;          } +        mFlags |= bundle.mFlags & FLAG_HAS_INTENT;      }      /** @@ -447,6 +458,16 @@ public final class Bundle extends BaseBundle implements Cloneable, Parcelable {          }      } +    /** +     * Returns if the bundle definitely contains at least an intent. This method returns false does +     * not guarantee the bundle does not contain a nested intent. An intent could still exist in a +     * ParcelableArrayList, ParcelableArray, ParcelableList, a bundle in this bundle, etc. +     * @hide +     */ +    public boolean hasIntent() { +        return (mFlags & FLAG_HAS_INTENT) != 0; +    } +      /** {@hide} */      @Override      public void putObject(@Nullable String key, @Nullable Object value) { @@ -569,6 +590,9 @@ public final class Bundle extends BaseBundle implements Cloneable, Parcelable {          mMap.put(key, value);          mFlags &= ~FLAG_HAS_FDS_KNOWN;          mFlags &= ~FLAG_HAS_BINDERS_KNOWN; +        if (intentClass != null && intentClass.isInstance(value)) { +            mFlags |= FLAG_HAS_INTENT; +        }      }      /** diff --git a/core/java/android/os/CombinedMessageQueue/MessageQueue.java b/core/java/android/os/CombinedMessageQueue/MessageQueue.java index 23114c4318c7..804e8faeef16 100644 --- a/core/java/android/os/CombinedMessageQueue/MessageQueue.java +++ b/core/java/android/os/CombinedMessageQueue/MessageQueue.java @@ -19,6 +19,8 @@ package android.os;  import android.annotation.IntDef;  import android.annotation.NonNull;  import android.annotation.TestApi; +import android.app.ActivityThread; +import android.app.Instrumentation;  import android.compat.annotation.UnsupportedAppUsage;  import android.os.Process;  import android.os.UserHandle; @@ -119,7 +121,7 @@ public final class MessageQueue {      MessageQueue(boolean quitAllowed) {          initIsProcessAllowedToUseConcurrent(); -        mUseConcurrent = sIsProcessAllowedToUseConcurrent; +        mUseConcurrent = sIsProcessAllowedToUseConcurrent && !isInstrumenting();          mQuitAllowed = quitAllowed;          mPtr = nativeInit();      } @@ -172,6 +174,15 @@ public final class MessageQueue {          }      } +    private static boolean isInstrumenting() { +        final ActivityThread activityThread = ActivityThread.currentActivityThread(); +        if (activityThread == null) { +            return false; +        } +        final Instrumentation instrumentation = activityThread.getInstrumentation(); +        return instrumentation != null && instrumentation.isInstrumenting(); +    } +      @Override      protected void finalize() throws Throwable {          try { diff --git a/core/java/android/os/SELinux.java b/core/java/android/os/SELinux.java index f64a81177ce2..11c54ef802fe 100644 --- a/core/java/android/os/SELinux.java +++ b/core/java/android/os/SELinux.java @@ -193,4 +193,31 @@ public class SELinux {              return false;          }      } + +    /** +     * Gets the genfs labels version of the vendor. The genfs labels version is +     * specified in {@code /vendor/etc/selinux/genfs_labels_version.txt}. The +     * version follows the VINTF version format "YYYYMM" and affects how {@code +     * genfs_contexts} entries are applied. +     * +     * <p>The genfs labels version indicates changes in the SELinux labeling +     * scheme over time. For example: +     * <ul> +     *   <li>For version 202504 and later, {@code /sys/class/udc} is labeled as +     *   {@code sysfs_udc}. +     *   <li>For version 202404 and earlier, {@code /sys/class/udc} is labeled +     *   as {@code sysfs}. +     * </ul> +     * Check {@code /system/etc/selinux/plat_sepolicy_genfs_{version}.cil} to +     * see which labels are new in {version}. +     * +     * <p>Older vendors may override {@code genfs_contexts} with vendor-specific +     * extensions. The framework must not break such labellings to maintain +     * compatibility with such vendors, by checking the genfs labels version and +     * implementing a fallback mechanism. +     * +     * @return an integer representing the genfs labels version of /vendor, in +     *         the format YYYYMM. +     */ +    public static final native int getGenfsLabelsVersion();  } diff --git a/core/java/android/os/UpdateEngine.java b/core/java/android/os/UpdateEngine.java index 0a8f62fd56d8..81e4549c78d1 100644 --- a/core/java/android/os/UpdateEngine.java +++ b/core/java/android/os/UpdateEngine.java @@ -16,6 +16,7 @@  package android.os; +import android.annotation.FlaggedApi;  import android.annotation.IntDef;  import android.annotation.NonNull;  import android.annotation.SystemApi; @@ -667,4 +668,23 @@ public class UpdateEngine {              throw e.rethrowFromSystemServer();          }      } + +    /** +     * Run postinstall script for specified partition |partition| +     * +     * @param partition The partition to trigger postinstall runs +     * +     * @throws ServiceSpecificException error code of this exception would be one of +     * https://cs.android.com/android/platform/superproject/main/+/main:system/update_engine/common/error_code.h +     * @hide +     */ +    @FlaggedApi(Flags.FLAG_UPDATE_ENGINE_API) +    @SystemApi(client = SystemApi.Client.MODULE_LIBRARIES) +    public void triggerPostinstall(@NonNull String partition) { +        try { +            mUpdateEngine.triggerPostinstall(partition); +        } catch (RemoteException e) { +            throw e.rethrowFromSystemServer(); +        } +    }  } diff --git a/core/java/android/service/settings/preferences/SettingsPreferenceMetadata.java b/core/java/android/service/settings/preferences/SettingsPreferenceMetadata.java index 1acb7b8460cf..ea7d4a675713 100644 --- a/core/java/android/service/settings/preferences/SettingsPreferenceMetadata.java +++ b/core/java/android/service/settings/preferences/SettingsPreferenceMetadata.java @@ -187,27 +187,39 @@ public final class SettingsPreferenceMetadata implements Parcelable {      /** @hide */      @IntDef(value = { -            NOT_SENSITIVE, -            SENSITIVE, -            INTENT_ONLY +            NO_SENSITIVITY, +            EXPECT_POST_CONFIRMATION, +            EXPECT_PRE_CONFIRMATION, +            NO_DIRECT_ACCESS,      })      @Retention(RetentionPolicy.SOURCE)      public @interface WriteSensitivity {}      /** -     * Preference is not sensitive, thus its value is writable without explicit consent, assuming -     * all necessary permissions are granted. +     * Indicates preference is not sensitive. +     * <p>Its value is writable without explicit consent, assuming all necessary permissions are +     * granted.       */ -    public static final int NOT_SENSITIVE = 0; +    public static final int NO_SENSITIVITY = 0;      /** -     * Preference is sensitive, meaning that in addition to necessary permissions, writing its value -     * will also request explicit user consent. +     * Indicates preference is mildly sensitive. +     * <p>In addition to necessary permissions, after writing its value the user should be +     * given the option to revert back.       */ -    public static final int SENSITIVE = 1; +    public static final int EXPECT_POST_CONFIRMATION = 1;      /** -     * Preference is not permitted for write-access via API and must be changed via Settings page. +     * Indicates preference is sensitive. +     * <p>In addition to necessary permissions, the user should be prompted for confirmation prior +     * to making a change. Otherwise it is suggested to provide a deeplink to the Preference's page +     * instead, accessible via {@link #getLaunchIntent}.       */ -    public static final int INTENT_ONLY = 2; +    public static final int EXPECT_PRE_CONFIRMATION = 2; +    /** +     * Indicates preference is highly sensitivity and carries significant user-risk. +     * <p>This Preference cannot be changed through this API and no direct deeplink is available. +     * Other Metadata is still available. +     */ +    public static final int NO_DIRECT_ACCESS = 3;      private SettingsPreferenceMetadata(@NonNull Builder builder) {          mKey = builder.mKey; @@ -303,7 +315,7 @@ public final class SettingsPreferenceMetadata implements Parcelable {          private boolean mAvailable = false;          private boolean mWritable = false;          private boolean mRestricted = false; -        @WriteSensitivity private int mSensitivity = INTENT_ONLY; +        @WriteSensitivity private int mSensitivity = NO_DIRECT_ACCESS;          private Intent mLaunchIntent;          private Bundle mExtras; @@ -436,6 +448,9 @@ public final class SettingsPreferenceMetadata implements Parcelable {           */          @NonNull          public SettingsPreferenceMetadata build() { +            if (mSensitivity == NO_DIRECT_ACCESS) { +                mLaunchIntent = null; +            }              return new SettingsPreferenceMetadata(this);          }      } diff --git a/core/java/android/view/ViewRootImpl.java b/core/java/android/view/ViewRootImpl.java index 31330204e8c6..e9c2cf8576cd 100644 --- a/core/java/android/view/ViewRootImpl.java +++ b/core/java/android/view/ViewRootImpl.java @@ -18,7 +18,6 @@ package android.view;  import static android.adpf.Flags.adpfViewrootimplActionDownBoost;  import static android.app.WindowConfiguration.WINDOWING_MODE_MULTI_WINDOW; -import static android.app.WindowConfiguration.WINDOWING_MODE_FREEFORM;  import static android.content.pm.ActivityInfo.OVERRIDE_SANDBOX_VIEW_BOUNDS_APIS;  import static android.graphics.HardwareRenderer.SYNC_CONTEXT_IS_STOPPED;  import static android.graphics.HardwareRenderer.SYNC_LOST_SURFACE_REWARD_IF_FOUND; @@ -2653,8 +2652,7 @@ public final class ViewRootImpl implements ViewParent,              mStopped = stopped;              final ThreadedRenderer renderer = mAttachInfo.mThreadedRenderer;              if (renderer != null) { -                if (DEBUG_DRAW) -                    Log.d(mTag, "WindowStopped on " + getTitle() + " set to " + mStopped); +                if (DEBUG_DRAW) Log.d(mTag, "WindowStopped on " + getTitle() + " set to " + mStopped);                  renderer.setStopped(mStopped);              }              if (!mStopped) { @@ -7979,9 +7977,8 @@ public final class ViewRootImpl implements ViewParent,          }          private boolean moveFocusToAdjacentWindow(@FocusDirection int direction) { -            final int windowingMode = getConfiguration().windowConfiguration.getWindowingMode(); -            if (!(windowingMode == WINDOWING_MODE_MULTI_WINDOW -                    || windowingMode == WINDOWING_MODE_FREEFORM)) { +            if (getConfiguration().windowConfiguration.getWindowingMode() +                    != WINDOWING_MODE_MULTI_WINDOW) {                  return false;              }              try { diff --git a/core/java/android/widget/RemoteViews.java b/core/java/android/widget/RemoteViews.java index 7e3b90444429..2cd390113040 100644 --- a/core/java/android/widget/RemoteViews.java +++ b/core/java/android/widget/RemoteViews.java @@ -128,6 +128,7 @@ import com.android.internal.R;  import com.android.internal.util.Preconditions;  import com.android.internal.widget.IRemoteViewsFactory;  import com.android.internal.widget.remotecompose.core.operations.Theme; +import com.android.internal.widget.remotecompose.core.CoreDocument;  import com.android.internal.widget.remotecompose.player.RemoteComposeDocument;  import com.android.internal.widget.remotecompose.player.RemoteComposePlayer; @@ -5825,7 +5826,7 @@ public class RemoteViews implements Parcelable, Filter {                  }                  try (ByteArrayInputStream is = new ByteArrayInputStream(bytes.get(0))) {                      player.setDocument(new RemoteComposeDocument(is)); -                    player.addClickListener((viewId, metadata) -> { +                    player.addIdActionListener((viewId, metadata) -> {                          mActions.forEach(action -> {                              if (viewId == action.mViewId                                      && action instanceof SetOnClickResponse setOnClickResponse) { @@ -9829,7 +9830,7 @@ public class RemoteViews implements Parcelable, Filter {           */          @FlaggedApi(FLAG_DRAW_DATA_PARCEL)          public static long getSupportedVersion() { -            return VERSION; +            return (long) CoreDocument.getDocumentApiLevel();          }          /** diff --git a/core/java/android/window/flags/lse_desktop_experience.aconfig b/core/java/android/window/flags/lse_desktop_experience.aconfig index 4fb5fa70c083..5053aa8a3750 100644 --- a/core/java/android/window/flags/lse_desktop_experience.aconfig +++ b/core/java/android/window/flags/lse_desktop_experience.aconfig @@ -460,4 +460,18 @@ flag {      namespace: "lse_desktop_experience"      description: "Enable multiple desktop sessions for desktop windowing."      bug: "379158791" +} + +flag { +    name: "enable_connected_displays_dnd" +    namespace: "lse_desktop_experience" +    description: "Enable drag-and-drop between connected displays." +    bug: "381793841" +} + +flag { +    name: "enable_connected_displays_window_drag" +    namespace: "lse_desktop_experience" +    description: "Enable window drag between connected displays." +    bug: "381172172"  }
\ No newline at end of file diff --git a/core/java/android/window/flags/windowing_frontend.aconfig b/core/java/android/window/flags/windowing_frontend.aconfig index 0b034b61c72e..30f0c7371270 100644 --- a/core/java/android/window/flags/windowing_frontend.aconfig +++ b/core/java/android/window/flags/windowing_frontend.aconfig @@ -453,3 +453,11 @@ flag {      is_fixed_read_only: true      bug: "376407910"  } + +flag { +  name: "relative_insets" +  namespace: "windowing_frontend" +  description: "Support insets definition and calculation relative to task bounds." +  bug: "277292497" +  is_fixed_read_only: true +}
\ No newline at end of file diff --git a/core/java/com/android/internal/widget/flags.aconfig b/core/java/com/android/internal/widget/flags.aconfig new file mode 100644 index 000000000000..f05aa4f460a5 --- /dev/null +++ b/core/java/com/android/internal/widget/flags.aconfig @@ -0,0 +1,9 @@ +package: "com.android.internal.widget.flags" +container: "system" + +flag { +    name: "hide_last_char_with_physical_input" +    namespace: "input" +    description: "Feature flag for changing the default of hiding the last interacted symbol when a physical input device is present" +    bug: "339270220" +} diff --git a/core/java/com/android/internal/widget/remotecompose/accessibility/AndroidPlatformSemanticNodeApplier.java b/core/java/com/android/internal/widget/remotecompose/accessibility/AndroidPlatformSemanticNodeApplier.java index 410e021f5162..1bdbaa48d18c 100644 --- a/core/java/com/android/internal/widget/remotecompose/accessibility/AndroidPlatformSemanticNodeApplier.java +++ b/core/java/com/android/internal/widget/remotecompose/accessibility/AndroidPlatformSemanticNodeApplier.java @@ -15,157 +15,72 @@   */  package com.android.internal.widget.remotecompose.accessibility; -import android.annotation.NonNull; -import android.annotation.Nullable;  import android.graphics.Rect;  import android.view.accessibility.AccessibilityNodeInfo; -import com.android.internal.widget.remotecompose.core.operations.layout.Component; -import com.android.internal.widget.remotecompose.core.semantics.AccessibilitySemantics; -import com.android.internal.widget.remotecompose.core.semantics.AccessibleComponent; -import com.android.internal.widget.remotecompose.core.semantics.CoreSemantics; - -import java.util.List; -  public class AndroidPlatformSemanticNodeApplier -        implements SemanticNodeApplier<AccessibilityNodeInfo, Component, AccessibilitySemantics> { +        extends BaseSemanticNodeApplier<AccessibilityNodeInfo> {      private static final String ROLE_DESCRIPTION_KEY = "AccessibilityNodeInfo.roleDescription";      @Override -    public void applyComponent( -            @NonNull -                    RemoteComposeDocumentAccessibility<Component, AccessibilitySemantics> -                            remoteComposeAccessibility, -            AccessibilityNodeInfo nodeInfo, -            Component component, -            List<AccessibilitySemantics> semantics) { -        if (component instanceof AccessibleComponent) { -            applyContentDescription( -                    ((AccessibleComponent) component).getContentDescriptionId(), -                    nodeInfo, -                    remoteComposeAccessibility); - -            applyRole(((AccessibleComponent) component).getRole(), nodeInfo); -        } - -        applySemantics(remoteComposeAccessibility, nodeInfo, semantics); - -        float[] locationInWindow = new float[2]; -        component.getLocationInWindow(locationInWindow); -        Rect bounds = -                new Rect( -                        (int) locationInWindow[0], -                        (int) locationInWindow[1], -                        (int) (locationInWindow[0] + component.getWidth()), -                        (int) (locationInWindow[1] + component.getHeight())); -        //noinspection deprecation -        nodeInfo.setBoundsInParent(bounds); -        nodeInfo.setBoundsInScreen(bounds); - -        if (component instanceof AccessibleComponent) { -            applyContentDescription( -                    ((AccessibleComponent) component).getContentDescriptionId(), -                    nodeInfo, -                    remoteComposeAccessibility); - -            applyText( -                    ((AccessibleComponent) component).getTextId(), -                    nodeInfo, -                    remoteComposeAccessibility); - -            applyRole(((AccessibleComponent) component).getRole(), nodeInfo); -        } - -        applySemantics(remoteComposeAccessibility, nodeInfo, semantics); - -        if (nodeInfo.getText() == null && nodeInfo.getContentDescription() == null) { -            nodeInfo.setContentDescription(""); +    protected void setClickable(AccessibilityNodeInfo nodeInfo, boolean clickable) { +        nodeInfo.setClickable(clickable); +        if (clickable) { +            nodeInfo.addAction(AccessibilityNodeInfo.AccessibilityAction.ACTION_CLICK); +        } else { +            nodeInfo.removeAction(AccessibilityNodeInfo.AccessibilityAction.ACTION_CLICK);          }      } -    public void applySemantics( -            RemoteComposeDocumentAccessibility<Component, AccessibilitySemantics> -                    remoteComposeAccessibility, -            AccessibilityNodeInfo nodeInfo, -            List<AccessibilitySemantics> semantics) { -        for (AccessibilitySemantics semantic : semantics) { -            if (semantic.isInterestingForSemantics()) { -                if (semantic instanceof CoreSemantics) { -                    applyCoreSemantics( -                            remoteComposeAccessibility, nodeInfo, (CoreSemantics) semantic); -                } else if (semantic instanceof AccessibleComponent) { -                    AccessibleComponent s = (AccessibleComponent) semantic; - -                    applyContentDescription( -                            s.getContentDescriptionId(), nodeInfo, remoteComposeAccessibility); - -                    applyRole(s.getRole(), nodeInfo); - -                    applyText(s.getTextId(), nodeInfo, remoteComposeAccessibility); - -                    if (s.isClickable()) { -                        nodeInfo.setClickable(true); -                        nodeInfo.addAction(AccessibilityNodeInfo.AccessibilityAction.ACTION_CLICK); -                    } -                } -            } -        } +    @Override +    protected void setEnabled(AccessibilityNodeInfo nodeInfo, boolean enabled) { +        nodeInfo.setEnabled(enabled);      } -    private void applyCoreSemantics( -            RemoteComposeDocumentAccessibility<Component, AccessibilitySemantics> -                    remoteComposeAccessibility, -            AccessibilityNodeInfo nodeInfo, -            CoreSemantics semantics) { -        applyContentDescription( -                semantics.getContentDescriptionId(), nodeInfo, remoteComposeAccessibility); +    @Override +    protected CharSequence getStateDescription(AccessibilityNodeInfo nodeInfo) { +        return nodeInfo.getStateDescription(); +    } -        applyRole(semantics.getRole(), nodeInfo); +    @Override +    protected void setStateDescription(AccessibilityNodeInfo nodeInfo, CharSequence description) { +        nodeInfo.setStateDescription(description); +    } -        applyText(semantics.getTextId(), nodeInfo, remoteComposeAccessibility); +    @Override +    protected void setRoleDescription(AccessibilityNodeInfo nodeInfo, String description) { +        nodeInfo.getExtras().putCharSequence(ROLE_DESCRIPTION_KEY, description); +    } -        applyStateDescription( -                semantics.getStateDescriptionId(), nodeInfo, remoteComposeAccessibility); +    @Override +    protected CharSequence getText(AccessibilityNodeInfo nodeInfo) { +        return nodeInfo.getText(); +    } -        nodeInfo.setEnabled(semantics.mEnabled); +    @Override +    protected void setText(AccessibilityNodeInfo nodeInfo, CharSequence text) { +        nodeInfo.setText(text);      } -    void applyRole(@Nullable AccessibleComponent.Role role, AccessibilityNodeInfo nodeInfo) { -        if (role != null) { -            nodeInfo.getExtras().putCharSequence(ROLE_DESCRIPTION_KEY, role.getDescription()); -        } +    @Override +    protected CharSequence getContentDescription(AccessibilityNodeInfo nodeInfo) { +        return nodeInfo.getContentDescription();      } -    void applyContentDescription( -            @Nullable Integer contentDescriptionId, -            AccessibilityNodeInfo nodeInfo, -            RemoteComposeDocumentAccessibility<Component, AccessibilitySemantics> -                    remoteComposeAccessibility) { -        if (contentDescriptionId != null) { -            nodeInfo.setContentDescription( -                    remoteComposeAccessibility.stringValue(contentDescriptionId)); -        } +    @Override +    protected void setContentDescription(AccessibilityNodeInfo nodeInfo, CharSequence description) { +        nodeInfo.setContentDescription(description);      } -    void applyText( -            @Nullable Integer textId, -            AccessibilityNodeInfo nodeInfo, -            RemoteComposeDocumentAccessibility<Component, AccessibilitySemantics> -                    remoteComposeAccessibility) { -        if (textId != null) { -            nodeInfo.setText(remoteComposeAccessibility.stringValue(textId)); -        } +    @Override +    protected void setBoundsInScreen(AccessibilityNodeInfo nodeInfo, Rect bounds) { +        nodeInfo.setBoundsInParent(bounds); +        nodeInfo.setBoundsInScreen(bounds);      } -    void applyStateDescription( -            @Nullable Integer stateDescriptionId, -            AccessibilityNodeInfo nodeInfo, -            RemoteComposeDocumentAccessibility<Component, AccessibilitySemantics> -                    remoteComposeAccessibility) { -        if (stateDescriptionId != null) { -            nodeInfo.setStateDescription( -                    remoteComposeAccessibility.stringValue(stateDescriptionId)); -        } +    @Override +    protected void setUniqueId(AccessibilityNodeInfo nodeInfo, String id) { +        nodeInfo.setUniqueId(id);      }  } diff --git a/core/java/com/android/internal/widget/remotecompose/accessibility/BaseSemanticNodeApplier.java b/core/java/com/android/internal/widget/remotecompose/accessibility/BaseSemanticNodeApplier.java new file mode 100644 index 000000000000..228afb88b5de --- /dev/null +++ b/core/java/com/android/internal/widget/remotecompose/accessibility/BaseSemanticNodeApplier.java @@ -0,0 +1,208 @@ +/* + * Copyright (C) 2024 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 com.android.internal.widget.remotecompose.accessibility; + +import android.graphics.Rect; + +import com.android.internal.widget.remotecompose.core.operations.layout.Component; +import com.android.internal.widget.remotecompose.core.semantics.AccessibilitySemantics; +import com.android.internal.widget.remotecompose.core.semantics.AccessibleComponent; +import com.android.internal.widget.remotecompose.core.semantics.CoreSemantics; + +import java.util.List; + +/** + * Base class for applying semantic information to a node. + * + * <p>This class provides common functionality for applying semantic information extracted from + * Compose UI components to a node representation used for accessibility purposes. It handles + * applying properties like content description, text, role, clickability, and bounds. + * + * <p>Subclasses are responsible for implementing methods to actually set these properties on the + * specific node type they handle. + * + * @param <N> The type of node this applier works with. + */ +public abstract class BaseSemanticNodeApplier<N> implements SemanticNodeApplier<N> { +    @Override +    public void applyComponent( +            RemoteComposeDocumentAccessibility remoteComposeAccessibility, +            N nodeInfo, +            Component component, +            List<AccessibilitySemantics> semantics) { +        float[] locationInWindow = new float[2]; +        component.getLocationInWindow(locationInWindow); +        Rect bounds = +                new Rect( +                        (int) locationInWindow[0], +                        (int) locationInWindow[1], +                        (int) (locationInWindow[0] + component.getWidth()), +                        (int) (locationInWindow[1] + component.getHeight())); +        setBoundsInScreen(nodeInfo, bounds); + +        setUniqueId(nodeInfo, String.valueOf(component.getComponentId())); + +        if (component instanceof AccessibleComponent) { +            applyContentDescription( +                    ((AccessibleComponent) component).getContentDescriptionId(), +                    nodeInfo, +                    remoteComposeAccessibility); + +            applyText( +                    ((AccessibleComponent) component).getTextId(), +                    nodeInfo, +                    remoteComposeAccessibility); + +            applyRole(((AccessibleComponent) component).getRole(), nodeInfo); +        } + +        applySemantics(remoteComposeAccessibility, nodeInfo, semantics); + +        if (getText(nodeInfo) == null && getContentDescription(nodeInfo) == null) { +            setContentDescription(nodeInfo, ""); +        } +    } + +    protected void applySemantics( +            RemoteComposeDocumentAccessibility remoteComposeAccessibility, +            N nodeInfo, +            List<AccessibilitySemantics> semantics) { +        for (AccessibilitySemantics semantic : semantics) { +            if (semantic.isInterestingForSemantics()) { +                if (semantic instanceof CoreSemantics) { +                    CoreSemantics coreSemantics = (CoreSemantics) semantic; +                    applyCoreSemantics(remoteComposeAccessibility, nodeInfo, coreSemantics); +                } else if (semantic instanceof AccessibleComponent) { +                    AccessibleComponent accessibleComponent = (AccessibleComponent) semantic; +                    if (accessibleComponent.isClickable()) { +                        setClickable(nodeInfo, true); +                    } + +                    if (accessibleComponent.getContentDescriptionId() != null) { +                        applyContentDescription( +                                accessibleComponent.getContentDescriptionId(), +                                nodeInfo, +                                remoteComposeAccessibility); +                    } + +                    if (accessibleComponent.getTextId() != null) { +                        applyText( +                                accessibleComponent.getTextId(), +                                nodeInfo, +                                remoteComposeAccessibility); +                    } + +                    applyRole(accessibleComponent.getRole(), nodeInfo); +                } +            } +        } +    } + +    protected void applyCoreSemantics( +            RemoteComposeDocumentAccessibility remoteComposeAccessibility, +            N nodeInfo, +            CoreSemantics coreSemantics) { +        applyContentDescription( +                coreSemantics.getContentDescriptionId(), nodeInfo, remoteComposeAccessibility); + +        applyRole(coreSemantics.getRole(), nodeInfo); + +        applyText(coreSemantics.getTextId(), nodeInfo, remoteComposeAccessibility); + +        applyStateDescription( +                coreSemantics.getStateDescriptionId(), nodeInfo, remoteComposeAccessibility); + +        if (!coreSemantics.mEnabled) { +            setEnabled(nodeInfo, false); +        } +    } + +    protected void applyStateDescription( +            Integer stateDescriptionId, +            N nodeInfo, +            RemoteComposeDocumentAccessibility remoteComposeAccessibility) { +        if (stateDescriptionId != null) { +            setStateDescription( +                    nodeInfo, +                    appendNullable( +                            getStateDescription(nodeInfo), +                            remoteComposeAccessibility.stringValue(stateDescriptionId))); +        } +    } + +    protected void applyRole(AccessibleComponent.Role role, N nodeInfo) { +        if (role != null) { +            setRoleDescription(nodeInfo, role.getDescription()); +        } +    } + +    protected void applyText( +            Integer textId, +            N nodeInfo, +            RemoteComposeDocumentAccessibility remoteComposeAccessibility) { +        if (textId != null) { +            setText( +                    nodeInfo, +                    appendNullable( +                            getText(nodeInfo), remoteComposeAccessibility.stringValue(textId))); +        } +    } + +    protected void applyContentDescription( +            Integer contentDescriptionId, +            N nodeInfo, +            RemoteComposeDocumentAccessibility remoteComposeAccessibility) { +        if (contentDescriptionId != null) { +            setContentDescription( +                    nodeInfo, +                    appendNullable( +                            getContentDescription(nodeInfo), +                            remoteComposeAccessibility.stringValue(contentDescriptionId))); +        } +    } + +    private CharSequence appendNullable(CharSequence contentDescription, String value) { +        if (contentDescription == null) { +            return value; +        } else if (value == null) { +            return contentDescription; +        } else { +            return contentDescription + " " + value; +        } +    } + +    protected abstract void setClickable(N nodeInfo, boolean b); + +    protected abstract void setEnabled(N nodeInfo, boolean b); + +    protected abstract CharSequence getStateDescription(N nodeInfo); + +    protected abstract void setStateDescription(N nodeInfo, CharSequence charSequence); + +    protected abstract void setRoleDescription(N nodeInfo, String description); + +    protected abstract CharSequence getText(N nodeInfo); + +    protected abstract void setText(N nodeInfo, CharSequence charSequence); + +    protected abstract CharSequence getContentDescription(N nodeInfo); + +    protected abstract void setContentDescription(N nodeInfo, CharSequence charSequence); + +    protected abstract void setBoundsInScreen(N nodeInfo, Rect bounds); + +    protected abstract void setUniqueId(N nodeInfo, String s); +} diff --git a/core/java/com/android/internal/widget/remotecompose/accessibility/CoreDocumentAccessibility.java b/core/java/com/android/internal/widget/remotecompose/accessibility/CoreDocumentAccessibility.java index 66a7f0257e0e..2cd4f0362306 100644 --- a/core/java/com/android/internal/widget/remotecompose/accessibility/CoreDocumentAccessibility.java +++ b/core/java/com/android/internal/widget/remotecompose/accessibility/CoreDocumentAccessibility.java @@ -17,10 +17,10 @@ package com.android.internal.widget.remotecompose.accessibility;  import android.annotation.Nullable;  import android.graphics.PointF; -import android.graphics.Rect;  import android.os.Bundle;  import com.android.internal.widget.remotecompose.core.CoreDocument; +import com.android.internal.widget.remotecompose.core.Operation;  import com.android.internal.widget.remotecompose.core.operations.layout.ClickModifierOperation;  import com.android.internal.widget.remotecompose.core.operations.layout.Component;  import com.android.internal.widget.remotecompose.core.operations.layout.LayoutComponent; @@ -31,9 +31,9 @@ import com.android.internal.widget.remotecompose.core.semantics.AccessibilitySem  import com.android.internal.widget.remotecompose.core.semantics.AccessibleComponent;  import com.android.internal.widget.remotecompose.core.semantics.CoreSemantics; +import java.util.ArrayList;  import java.util.Collections;  import java.util.List; -import java.util.Objects;  import java.util.stream.Collectors;  import java.util.stream.Stream; @@ -43,12 +43,9 @@ import java.util.stream.Stream;   * list of modifiers that must be tagged with {@link AccessibilitySemantics} either incidentally   * (see {@link ClickModifierOperation}) or explicitly (see {@link CoreSemantics}).   */ -public class CoreDocumentAccessibility -        implements RemoteComposeDocumentAccessibility<Component, AccessibilitySemantics> { +public class CoreDocumentAccessibility implements RemoteComposeDocumentAccessibility {      private final CoreDocument mDocument; -    private final Rect mMissingBounds = new Rect(0, 0, 1, 1); -      public CoreDocumentAccessibility(CoreDocument document) {          this.mDocument = document;      } @@ -74,17 +71,25 @@ public class CoreDocumentAccessibility      }      @Override -    public List<CoreSemantics.Mode> mergeMode(Component component) { +    public CoreSemantics.Mode mergeMode(Component component) {          if (!(component instanceof LayoutComponent)) { -            return Collections.singletonList(CoreSemantics.Mode.SET); +            return CoreSemantics.Mode.SET;          } -        return ((LayoutComponent) component) -                .getComponentModifiers().getList().stream() -                        .filter(i -> i instanceof AccessibleComponent) -                        .map(i -> ((AccessibleComponent) i).getMode()) -                        .filter(Objects::nonNull) -                        .collect(Collectors.toList()); +        CoreSemantics.Mode result = CoreSemantics.Mode.SET; + +        for (ModifierOperation modifier : +                ((LayoutComponent) component).getComponentModifiers().getList()) { +            if (modifier instanceof AccessibleComponent) { +                AccessibleComponent semantics = (AccessibleComponent) modifier; + +                if (semantics.getMode().ordinal() > result.ordinal()) { +                    result = semantics.getMode(); +                } +            } +        } + +        return result;      }      @Override @@ -101,6 +106,7 @@ public class CoreDocumentAccessibility      @Override      public String stringValue(int id) {          Object value = mDocument.getRemoteComposeState().getFromId(id); +          return value != null ? String.valueOf(value) : null;      } @@ -124,12 +130,33 @@ public class CoreDocumentAccessibility      }      @Override -    public List<Integer> semanticallyRelevantChildComponents(Component component) { -        return componentStream(component) -                .filter(i -> i.getComponentId() != component.getComponentId()) -                .filter(CoreDocumentAccessibility::isInteresting) -                .map(Component::getComponentId) -                .collect(Collectors.toList()); +    public List<Integer> semanticallyRelevantChildComponents( +            Component component, boolean useUnmergedTree) { +        if (!component.isVisible()) { +            return Collections.emptyList(); +        } + +        CoreSemantics.Mode mergeMode = mergeMode(component); +        if (mergeMode == CoreSemantics.Mode.CLEAR_AND_SET +                || (!useUnmergedTree && mergeMode == CoreSemantics.Mode.MERGE)) { +            return Collections.emptyList(); +        } + +        ArrayList<Integer> result = new ArrayList<>(); + +        for (Operation child : component.mList) { +            if (child instanceof Component) { +                if (isInteresting((Component) child)) { +                    result.add(((Component) child).getComponentId()); +                } else { +                    result.addAll( +                            semanticallyRelevantChildComponents( +                                    (Component) child, useUnmergedTree)); +                } +            } +        } + +        return result;      }      static Stream<Component> componentStream(Component root) { @@ -153,12 +180,13 @@ public class CoreDocumentAccessibility      }      static boolean isInteresting(Component component) { -        boolean interesting = -                isContainerWithSemantics(component) -                        || modifiersStream(component) -                                .anyMatch(CoreDocumentAccessibility::isModifierWithSemantics); +        if (!component.isVisible()) { +            return false; +        } -        return interesting && component.isVisible(); +        return isContainerWithSemantics(component) +                || modifiersStream(component) +                        .anyMatch(CoreDocumentAccessibility::isModifierWithSemantics);      }      static boolean isModifierWithSemantics(ModifierOperation modifier) { diff --git a/core/java/com/android/internal/widget/remotecompose/accessibility/PlatformRemoteComposeAccessibilityRegistrar.java b/core/java/com/android/internal/widget/remotecompose/accessibility/PlatformRemoteComposeAccessibilityRegistrar.java new file mode 100644 index 000000000000..010253e9cb95 --- /dev/null +++ b/core/java/com/android/internal/widget/remotecompose/accessibility/PlatformRemoteComposeAccessibilityRegistrar.java @@ -0,0 +1,46 @@ +/* + * Copyright (C) 2024 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 com.android.internal.widget.remotecompose.accessibility; + +import android.annotation.NonNull; +import android.view.View; + +import com.android.internal.widget.remotecompose.core.CoreDocument; + +/** + * Trivial wrapper for calling setAccessibilityDelegate on a View. This exists primarily because the + * RemoteDocumentPlayer is either running in the platform on a known API version, or outside in + * which case it must use the Androidx ViewCompat class. + */ +public class PlatformRemoteComposeAccessibilityRegistrar +        implements RemoteComposeAccessibilityRegistrar { +    public PlatformRemoteComposeTouchHelper forRemoteComposePlayer( +            View player, @NonNull CoreDocument coreDocument) { +        return new PlatformRemoteComposeTouchHelper( +                player, +                new CoreDocumentAccessibility(coreDocument), +                new AndroidPlatformSemanticNodeApplier()); +    } + +    public void setAccessibilityDelegate(View remoteComposePlayer, CoreDocument document) { +        remoteComposePlayer.setAccessibilityDelegate( +                forRemoteComposePlayer(remoteComposePlayer, document)); +    } + +    public void clearAccessibilityDelegate(View remoteComposePlayer) { +        remoteComposePlayer.setAccessibilityDelegate(null); +    } +} diff --git a/core/java/com/android/internal/widget/remotecompose/accessibility/PlatformRemoteComposeTouchHelper.java b/core/java/com/android/internal/widget/remotecompose/accessibility/PlatformRemoteComposeTouchHelper.java index c9ad28ac0731..39a2ab3010ac 100644 --- a/core/java/com/android/internal/widget/remotecompose/accessibility/PlatformRemoteComposeTouchHelper.java +++ b/core/java/com/android/internal/widget/remotecompose/accessibility/PlatformRemoteComposeTouchHelper.java @@ -37,24 +37,23 @@ import java.util.List;  import java.util.Set;  import java.util.Stack; -public class PlatformRemoteComposeTouchHelper<N, C, S> extends ExploreByTouchHelper { -    private final RemoteComposeDocumentAccessibility<C, S> mRemoteDocA11y; +public class PlatformRemoteComposeTouchHelper extends ExploreByTouchHelper { +    private final RemoteComposeDocumentAccessibility mRemoteDocA11y; -    private final SemanticNodeApplier<AccessibilityNodeInfo, C, S> mApplier; +    private final SemanticNodeApplier<AccessibilityNodeInfo> mApplier;      public PlatformRemoteComposeTouchHelper(              View host, -            RemoteComposeDocumentAccessibility<C, S> remoteDocA11y, -            SemanticNodeApplier<AccessibilityNodeInfo, C, S> applier) { +            RemoteComposeDocumentAccessibility remoteDocA11y, +            SemanticNodeApplier<AccessibilityNodeInfo> applier) {          super(host);          this.mRemoteDocA11y = remoteDocA11y;          this.mApplier = applier;      } -    public static PlatformRemoteComposeTouchHelper< -                    AccessibilityNodeInfo, Component, AccessibilitySemantics> -            forRemoteComposePlayer(View player, @NonNull CoreDocument coreDocument) { -        return new PlatformRemoteComposeTouchHelper<>( +    public static PlatformRemoteComposeTouchHelper forRemoteComposePlayer( +            View player, @NonNull CoreDocument coreDocument) { +        return new PlatformRemoteComposeTouchHelper(                  player,                  new CoreDocumentAccessibility(coreDocument),                  new AndroidPlatformSemanticNodeApplier()); @@ -104,18 +103,21 @@ public class PlatformRemoteComposeTouchHelper<N, C, S> extends ExploreByTouchHel              Integer componentId = toVisit.remove(0);              if (visited.add(componentId)) { -                virtualViewIds.add(componentId); +                Component component = mRemoteDocA11y.findComponentById(componentId); -                C component = mRemoteDocA11y.findComponentById(componentId); +                // Only include the root when it has semantics such as content description +                if (!RootId.equals(componentId) +                        || !mRemoteDocA11y.semanticModifiersForComponent(component).isEmpty()) { +                    virtualViewIds.add(componentId); +                }                  if (component != null) { -                    boolean allSet = -                            mRemoteDocA11y.mergeMode(component).stream() -                                    .allMatch(i -> i == Mode.SET); +                    Mode mergeMode = mRemoteDocA11y.mergeMode(component); -                    if (allSet) { +                    if (mergeMode == Mode.SET) {                          List<Integer> childViews = -                                mRemoteDocA11y.semanticallyRelevantChildComponents(component); +                                mRemoteDocA11y.semanticallyRelevantChildComponents( +                                        component, false);                          toVisit.addAll(childViews);                      } @@ -127,32 +129,34 @@ public class PlatformRemoteComposeTouchHelper<N, C, S> extends ExploreByTouchHel      @Override      public void onPopulateNodeForVirtualView(              int virtualViewId, @NonNull AccessibilityNodeInfo node) { -        C component = mRemoteDocA11y.findComponentById(virtualViewId); +        Component component = mRemoteDocA11y.findComponentById(virtualViewId); + +        Mode mergeMode = mRemoteDocA11y.mergeMode(component); -        List<Mode> mode = mRemoteDocA11y.mergeMode(component); +        // default to enabled +        node.setEnabled(true); -        if (mode.contains(Mode.MERGE)) { +        if (mergeMode == Mode.MERGE) {              List<Integer> childViews = -                    mRemoteDocA11y.semanticallyRelevantChildComponents(component); +                    mRemoteDocA11y.semanticallyRelevantChildComponents(component, true);              for (Integer childView : childViews) {                  onPopulateNodeForVirtualView(childView, node);              }          } -        List<S> semantics = mRemoteDocA11y.semanticModifiersForComponent(component); +        List<AccessibilitySemantics> semantics = +                mRemoteDocA11y.semanticModifiersForComponent(component);          mApplier.applyComponent(mRemoteDocA11y, node, component, semantics);      }      @Override -    protected void onPopulateEventForVirtualView(int virtualViewId, AccessibilityEvent event) { -        // TODO -    } +    protected void onPopulateEventForVirtualView(int virtualViewId, AccessibilityEvent event) {}      @Override      protected boolean onPerformActionForVirtualView(              int virtualViewId, int action, @Nullable Bundle arguments) { -        C component = mRemoteDocA11y.findComponentById(virtualViewId); +        Component component = mRemoteDocA11y.findComponentById(virtualViewId);          if (component != null) {              return mRemoteDocA11y.performAction(component, action, arguments); diff --git a/core/java/com/android/internal/widget/remotecompose/accessibility/RemoteComposeAccessibilityRegistrar.java b/core/java/com/android/internal/widget/remotecompose/accessibility/RemoteComposeAccessibilityRegistrar.java new file mode 100644 index 000000000000..7e8236b35e97 --- /dev/null +++ b/core/java/com/android/internal/widget/remotecompose/accessibility/RemoteComposeAccessibilityRegistrar.java @@ -0,0 +1,33 @@ +/* + * Copyright (C) 2024 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 com.android.internal.widget.remotecompose.accessibility; + +import android.view.View; + +import com.android.internal.widget.remotecompose.core.CoreDocument; + +/** + * Interface for registering and clearing accessibility delegates for remote compose players. + * + * <p>This interface is responsible for managing the accessibility delegate associated with a remote + * compose player view. It allows for setting and clearing the delegate, which is used to handle + * accessibility events and provide accessibility information for the remote compose content. + */ +public interface RemoteComposeAccessibilityRegistrar { +    void setAccessibilityDelegate(View remoteComposePlayer, CoreDocument document); + +    void clearAccessibilityDelegate(View remoteComposePlayer); +} diff --git a/core/java/com/android/internal/widget/remotecompose/accessibility/RemoteComposeDocumentAccessibility.java b/core/java/com/android/internal/widget/remotecompose/accessibility/RemoteComposeDocumentAccessibility.java index 14977becd2d7..50f75e4889dd 100644 --- a/core/java/com/android/internal/widget/remotecompose/accessibility/RemoteComposeDocumentAccessibility.java +++ b/core/java/com/android/internal/widget/remotecompose/accessibility/RemoteComposeDocumentAccessibility.java @@ -20,6 +20,8 @@ import android.graphics.PointF;  import android.os.Bundle;  import android.view.View; +import com.android.internal.widget.remotecompose.core.operations.layout.Component; +import com.android.internal.widget.remotecompose.core.semantics.AccessibilitySemantics;  import com.android.internal.widget.remotecompose.core.semantics.CoreSemantics;  import java.util.List; @@ -28,11 +30,8 @@ import java.util.List;   * Interface for interacting with the accessibility features of a remote Compose UI. This interface   * provides methods to perform actions, retrieve state, and query the accessibility tree of the   * remote Compose UI. - * - * @param <C> The type of component in the remote Compose UI. - * @param <S> The type representing semantic modifiers applied to components.   */ -public interface RemoteComposeDocumentAccessibility<C, S> { +public interface RemoteComposeDocumentAccessibility {      // Matches ExploreByTouchHelper.HOST_ID      Integer RootId = View.NO_ID; @@ -47,7 +46,7 @@ public interface RemoteComposeDocumentAccessibility<C, S> {       * @param arguments Optional arguments for the action.       * @return {@code true} if the action was performed successfully, {@code false} otherwise.       */ -    boolean performAction(C component, int action, Bundle arguments); +    boolean performAction(Component component, int action, Bundle arguments);      /**       * Retrieves the string value associated with the given ID. @@ -65,9 +64,10 @@ public interface RemoteComposeDocumentAccessibility<C, S> {       *       * @param component The component to retrieve child view IDs from, or [RootId] for the top       *     level. +     * @param useUnmergedTree Whether to include merged children       * @return A list of integer IDs representing the child views of the component.       */ -    List<Integer> semanticallyRelevantChildComponents(C component); +    List<Integer> semanticallyRelevantChildComponents(Component component, boolean useUnmergedTree);      /**       * Retrieves the semantic modifiers associated with a given component. @@ -75,16 +75,16 @@ public interface RemoteComposeDocumentAccessibility<C, S> {       * @param component The component for which to retrieve semantic modifiers.       * @return A list of semantic modifiers applicable to the component.       */ -    List<S> semanticModifiersForComponent(C component); +    List<AccessibilitySemantics> semanticModifiersForComponent(Component component);      /**       * Gets all applied merge modes of the given component. A Merge mode is one of Set, Merge or       * Clear and describes how to apply and combine hierarchical semantics.       *       * @param component The component to merge the mode for. -     * @return A list of merged modes, potentially conflicting but to be resolved by the caller. +     * @return The effective merge modes, potentially conflicting but resolved to a single value.       */ -    List<CoreSemantics.Mode> mergeMode(C component); +    CoreSemantics.Mode mergeMode(Component component);      /**       * Finds a component by its ID. @@ -93,7 +93,7 @@ public interface RemoteComposeDocumentAccessibility<C, S> {       * @return the component with the given ID, or {@code null} if no such component exists       */      @Nullable -    C findComponentById(int id); +    Component findComponentById(int id);      @Nullable      Integer getComponentIdAt(PointF point); diff --git a/core/java/com/android/internal/widget/remotecompose/accessibility/RemoteComposeTouchHelper.java b/core/java/com/android/internal/widget/remotecompose/accessibility/RemoteComposeTouchHelper.java index 4ff7892d8224..13641025a33b 100644 --- a/core/java/com/android/internal/widget/remotecompose/accessibility/RemoteComposeTouchHelper.java +++ b/core/java/com/android/internal/widget/remotecompose/accessibility/RemoteComposeTouchHelper.java @@ -15,17 +15,11 @@   */  package com.android.internal.widget.remotecompose.accessibility; -import android.annotation.NonNull; -import android.view.View; - -import com.android.internal.widget.remotecompose.core.CoreDocument; - +/** + * This class is the entry point for finding the AccessibilityDelegate for a RemoteCompose document. + */  public class RemoteComposeTouchHelper { -    public static View.AccessibilityDelegate forRemoteComposePlayer( -            View player, @NonNull CoreDocument coreDocument) { -        return new PlatformRemoteComposeTouchHelper<>( -                player, -                new CoreDocumentAccessibility(coreDocument), -                new AndroidPlatformSemanticNodeApplier()); -    } +    /** Get the platform specific accessibility delegate registrar */ +    public static final RemoteComposeAccessibilityRegistrar REGISTRAR = +            new PlatformRemoteComposeAccessibilityRegistrar();  } diff --git a/core/java/com/android/internal/widget/remotecompose/accessibility/SemanticNodeApplier.java b/core/java/com/android/internal/widget/remotecompose/accessibility/SemanticNodeApplier.java index 4368329478f3..832b5426f476 100644 --- a/core/java/com/android/internal/widget/remotecompose/accessibility/SemanticNodeApplier.java +++ b/core/java/com/android/internal/widget/remotecompose/accessibility/SemanticNodeApplier.java @@ -15,6 +15,9 @@   */  package com.android.internal.widget.remotecompose.accessibility; +import com.android.internal.widget.remotecompose.core.operations.layout.Component; +import com.android.internal.widget.remotecompose.core.semantics.AccessibilitySemantics; +  import java.util.List;  /** @@ -29,15 +32,13 @@ import java.util.List;   *   * @param <N> The type representing information about the node. This could be an Androidx   *     `AccessibilityNodeInfoCompat`, or potentially a platform `AccessibilityNodeInfo`. - * @param <C> The type of component in the remote Compose UI. - * @param <S> The type representing a single semantic property or action.   */ -public interface SemanticNodeApplier<N, C, S> { +public interface SemanticNodeApplier<N> {      void applyComponent( -            RemoteComposeDocumentAccessibility<C, S> remoteComposeAccessibility, +            RemoteComposeDocumentAccessibility remoteComposeAccessibility,              N nodeInfo, -            C component, -            List<S> semantics); +            Component component, +            List<AccessibilitySemantics> semantics);      String VIRTUAL_VIEW_ID_KEY = "VirtualViewId";  } diff --git a/core/java/com/android/internal/widget/remotecompose/core/CoreDocument.java b/core/java/com/android/internal/widget/remotecompose/core/CoreDocument.java index 5bc3bca17dda..da880e1e92e2 100644 --- a/core/java/com/android/internal/widget/remotecompose/core/CoreDocument.java +++ b/core/java/com/android/internal/widget/remotecompose/core/CoreDocument.java @@ -24,6 +24,8 @@ import com.android.internal.widget.remotecompose.core.operations.FloatExpression  import com.android.internal.widget.remotecompose.core.operations.IntegerExpression;  import com.android.internal.widget.remotecompose.core.operations.NamedVariable;  import com.android.internal.widget.remotecompose.core.operations.RootContentBehavior; +import com.android.internal.widget.remotecompose.core.operations.ShaderData; +import com.android.internal.widget.remotecompose.core.operations.TextData;  import com.android.internal.widget.remotecompose.core.operations.Theme;  import com.android.internal.widget.remotecompose.core.operations.layout.ClickModifierOperation;  import com.android.internal.widget.remotecompose.core.operations.layout.Component; @@ -45,6 +47,7 @@ import java.util.ArrayList;  import java.util.HashMap;  import java.util.HashSet;  import java.util.List; +import java.util.Objects;  import java.util.Set;  /** @@ -441,11 +444,11 @@ public class CoreDocument {          mActionListeners.clear();      } -    public interface ClickCallbacks { -        void click(int id, @Nullable String metadata); +    public interface IdActionCallback { +        void onAction(int id, @Nullable String metadata);      } -    @NonNull HashSet<ClickCallbacks> mClickListeners = new HashSet<>(); +    @NonNull HashSet<IdActionCallback> mIdActionListeners = new HashSet<>();      @NonNull HashSet<TouchListener> mTouchListeners = new HashSet<>();      @NonNull HashSet<ClickAreaRepresentation> mClickAreas = new HashSet<>(); @@ -470,6 +473,21 @@ public class CoreDocument {          float mBottom;          @Nullable final String mMetadata; +        @Override +        public boolean equals(Object o) { +            if (this == o) return true; +            if (!(o instanceof ClickAreaRepresentation)) return false; +            ClickAreaRepresentation that = (ClickAreaRepresentation) o; +            return mId == that.mId +                    && Objects.equals(mContentDescription, that.mContentDescription) +                    && Objects.equals(mMetadata, that.mMetadata); +        } + +        @Override +        public int hashCode() { +            return Objects.hash(mId, mContentDescription, mMetadata); +        } +          public ClickAreaRepresentation(                  int id,                  @Nullable String contentDescription, @@ -754,9 +772,13 @@ public class CoreDocument {              float right,              float bottom,              @Nullable String metadata) { -        mClickAreas.add( + +        ClickAreaRepresentation car =                  new ClickAreaRepresentation( -                        id, contentDescription, left, top, right, bottom, metadata)); +                        id, contentDescription, left, top, right, bottom, metadata); + +        boolean old = mClickAreas.remove(car); +        mClickAreas.add(car);      }      /** @@ -769,12 +791,12 @@ public class CoreDocument {      }      /** -     * Add a click listener. This will get called when a click is detected on the document +     * Add an id action listener. This will get called when e.g. a click is detected on the document       * -     * @param callback called when a click area has been hit, passing the click are id and metadata. +     * @param callback called when an action is executed, passing the id and metadata.       */ -    public void addClickListener(@NonNull ClickCallbacks callback) { -        mClickListeners.add(callback); +    public void addIdActionListener(@NonNull IdActionCallback callback) { +        mIdActionListeners.add(callback);      }      /** @@ -783,8 +805,8 @@ public class CoreDocument {       * @return set of click listeners       */      @NonNull -    public HashSet<CoreDocument.ClickCallbacks> getClickListeners() { -        return mClickListeners; +    public HashSet<IdActionCallback> getIdActionListeners() { +        return mIdActionListeners;      }      /** @@ -813,15 +835,15 @@ public class CoreDocument {                  warnClickListeners(clickArea);              }          } -        for (ClickCallbacks listener : mClickListeners) { -            listener.click(id, ""); +        for (IdActionCallback listener : mIdActionListeners) { +            listener.onAction(id, "");          }      }      /** Warn click listeners when a click area is activated */      private void warnClickListeners(@NonNull ClickAreaRepresentation clickArea) { -        for (ClickCallbacks listener : mClickListeners) { -            listener.click(clickArea.mId, clickArea.mMetadata); +        for (IdActionCallback listener : mIdActionListeners) { +            listener.onAction(clickArea.mId, clickArea.mMetadata);          }      } @@ -1067,7 +1089,6 @@ public class CoreDocument {              mRepaintNext = 1;          }          context.mMode = RemoteContext.ContextMode.UNSET; -        // System.out.println(">>   " + (  System.nanoTime() - time)*1E-6f+" ms");          if (DEBUG && mRootLayoutComponent != null) {              System.out.println(mRootLayoutComponent.displayHierarchy());          } @@ -1163,4 +1184,30 @@ public class CoreDocument {      public List<Operation> getOperations() {          return mOperations;      } + +    /** defines if a shader can be run */ +    public interface ShaderControl { +        boolean isShaderValid(String shader); +    } + +    /** +     * validate the shaders +     * +     * @param context the remote context +     * @param ctl the call back to allow evaluation of shaders +     */ +    public void checkShaders(RemoteContext context, ShaderControl ctl) { +        int count = 0; +        for (Operation op : mOperations) { +            if (op instanceof TextData) { +                op.apply(context); +            } +            if (op instanceof ShaderData) { +                ShaderData sd = (ShaderData) op; +                int id = sd.getShaderTextId(); +                String str = context.getText(id); +                sd.enable(ctl.isShaderValid(str)); +            } +        } +    }  } diff --git a/core/java/com/android/internal/widget/remotecompose/core/RemoteContext.java b/core/java/com/android/internal/widget/remotecompose/core/RemoteContext.java index 003acb780715..c03f44bfc162 100644 --- a/core/java/com/android/internal/widget/remotecompose/core/RemoteContext.java +++ b/core/java/com/android/internal/widget/remotecompose/core/RemoteContext.java @@ -493,6 +493,9 @@ public abstract class RemoteContext {      public static final int ID_DENSITY = 27; +    /** Defines when the last build was made */ +    public static final int ID_API_LEVEL = 28; +      public static final float FLOAT_DENSITY = Utils.asNan(ID_DENSITY);      /** CONTINUOUS_SEC is seconds from midnight looping every hour 0-3600 */ @@ -566,6 +569,9 @@ public abstract class RemoteContext {      /** Ambient light level in SI lux */      public static final float FLOAT_LIGHT = Utils.asNan(ID_LIGHT); +    /** When was this player built */ +    public static final float FLOAT_API_LEVEL = Utils.asNan(ID_API_LEVEL); +      ///////////////////////////////////////////////////////////////////////////////////////////////      // Click handling      /////////////////////////////////////////////////////////////////////////////////////////////// diff --git a/core/java/com/android/internal/widget/remotecompose/core/TimeVariables.java b/core/java/com/android/internal/widget/remotecompose/core/TimeVariables.java index 0ed6005da389..cd7ebec67a46 100644 --- a/core/java/com/android/internal/widget/remotecompose/core/TimeVariables.java +++ b/core/java/com/android/internal/widget/remotecompose/core/TimeVariables.java @@ -24,6 +24,8 @@ import java.time.ZoneOffset;  /** This generates the standard system variables for time. */  public class TimeVariables { +    private static final float BUILD = 0.01f; +      /**       * This class populates all time variables in the system       * @@ -57,6 +59,7 @@ public class TimeVariables {          context.loadFloat(RemoteContext.ID_CALENDAR_MONTH, month);          context.loadFloat(RemoteContext.ID_DAY_OF_MONTH, month);          context.loadFloat(RemoteContext.ID_WEEK_DAY, day_week); +        context.loadFloat(RemoteContext.ID_API_LEVEL, CoreDocument.getDocumentApiLevel() + BUILD);      }      /** diff --git a/core/java/com/android/internal/widget/remotecompose/core/operations/ClickArea.java b/core/java/com/android/internal/widget/remotecompose/core/operations/ClickArea.java index efd31afb1a05..29124d07e20b 100644 --- a/core/java/com/android/internal/widget/remotecompose/core/operations/ClickArea.java +++ b/core/java/com/android/internal/widget/remotecompose/core/operations/ClickArea.java @@ -21,6 +21,7 @@ import com.android.internal.widget.remotecompose.core.Operation;  import com.android.internal.widget.remotecompose.core.Operations;  import com.android.internal.widget.remotecompose.core.RemoteComposeOperation;  import com.android.internal.widget.remotecompose.core.RemoteContext; +import com.android.internal.widget.remotecompose.core.VariableSupport;  import com.android.internal.widget.remotecompose.core.WireBuffer;  import com.android.internal.widget.remotecompose.core.documentation.DocumentationBuilder;  import com.android.internal.widget.remotecompose.core.documentation.DocumentedOperation; @@ -29,7 +30,8 @@ import com.android.internal.widget.remotecompose.core.semantics.AccessibleCompon  import java.util.List;  /** Add a click area to the document */ -public class ClickArea extends Operation implements RemoteComposeOperation, AccessibleComponent { +public class ClickArea extends Operation +        implements RemoteComposeOperation, AccessibleComponent, VariableSupport {      private static final int OP_CODE = Operations.CLICK_AREA;      private static final String CLASS_NAME = "ClickArea";      int mId; @@ -38,6 +40,10 @@ public class ClickArea extends Operation implements RemoteComposeOperation, Acce      float mTop;      float mRight;      float mBottom; +    float mOutLeft; +    float mOutTop; +    float mOutRight; +    float mOutBottom;      int mMetadata;      /** @@ -62,11 +68,35 @@ public class ClickArea extends Operation implements RemoteComposeOperation, Acce              int metadata) {          this.mId = id;          this.mContentDescription = contentDescription; -        this.mLeft = left; -        this.mTop = top; -        this.mRight = right; -        this.mBottom = bottom; -        this.mMetadata = metadata; +        mOutLeft = mLeft = left; +        mOutTop = mTop = top; +        mOutRight = mRight = right; +        mOutBottom = mBottom = bottom; +        mMetadata = metadata; +    } + +    @Override +    public void registerListening(@NonNull RemoteContext context) { +        if (Float.isNaN(mLeft)) { +            context.listensTo(Utils.idFromNan(mLeft), this); +        } +        if (Float.isNaN(mTop)) { +            context.listensTo(Utils.idFromNan(mTop), this); +        } +        if (Float.isNaN(mRight)) { +            context.listensTo(Utils.idFromNan(mRight), this); +        } +        if (Float.isNaN(mBottom)) { +            context.listensTo(Utils.idFromNan(mBottom), this); +        } +    } + +    @Override +    public void updateVariables(@NonNull RemoteContext context) { +        mOutLeft = Float.isNaN(mLeft) ? context.getFloat(Utils.idFromNan(mLeft)) : mLeft; +        mOutTop = Float.isNaN(mTop) ? context.getFloat(Utils.idFromNan(mTop)) : mTop; +        mRight = Float.isNaN(mRight) ? context.getFloat(Utils.idFromNan(mRight)) : mRight; +        mOutBottom = Float.isNaN(mBottom) ? context.getFloat(Utils.idFromNan(mBottom)) : mBottom;      }      @Override @@ -105,7 +135,8 @@ public class ClickArea extends Operation implements RemoteComposeOperation, Acce          if (context.getMode() != RemoteContext.ContextMode.DATA) {              return;          } -        context.addClickArea(mId, mContentDescription, mLeft, mTop, mRight, mBottom, mMetadata); +        context.addClickArea( +                mId, mContentDescription, mOutLeft, mOutTop, mOutRight, mOutBottom, mMetadata);      }      @NonNull diff --git a/core/java/com/android/internal/widget/remotecompose/core/operations/ShaderData.java b/core/java/com/android/internal/widget/remotecompose/core/operations/ShaderData.java index 8e4098ed51f9..891367e33d87 100644 --- a/core/java/com/android/internal/widget/remotecompose/core/operations/ShaderData.java +++ b/core/java/com/android/internal/widget/remotecompose/core/operations/ShaderData.java @@ -50,6 +50,7 @@ public class ShaderData extends Operation implements VariableSupport {      @Nullable HashMap<String, float[]> mUniformFloatMap = null;      @Nullable HashMap<String, int[]> mUniformIntMap;      @Nullable HashMap<String, Integer> mUniformBitmapMap = null; +    private boolean mShaderValid = false;      public ShaderData(              int shaderID, @@ -358,7 +359,9 @@ public class ShaderData extends Operation implements VariableSupport {      @Override      public void apply(@NonNull RemoteContext context) { -        context.loadShader(mShaderID, this); +        if (mShaderValid) { +            context.loadShader(mShaderID, this); +        }      }      @NonNull @@ -366,4 +369,13 @@ public class ShaderData extends Operation implements VariableSupport {      public String deepToString(@NonNull String indent) {          return indent + toString();      } + +    /** +     * Enable or disable the shader +     * +     * @param shaderValid if true shader can be used +     */ +    public void enable(boolean shaderValid) { +        mShaderValid = shaderValid; +    }  } diff --git a/core/java/com/android/internal/widget/remotecompose/core/operations/TouchExpression.java b/core/java/com/android/internal/widget/remotecompose/core/operations/TouchExpression.java index f42abfcd1671..14b72af84e66 100644 --- a/core/java/com/android/internal/widget/remotecompose/core/operations/TouchExpression.java +++ b/core/java/com/android/internal/widget/remotecompose/core/operations/TouchExpression.java @@ -366,6 +366,7 @@ public class TouchExpression extends Operation implements VariableSupport, Touch      /**       * Set the component the touch expression is in (if any) +     *       * @param component the component, or null if outside       */      public void setComponent(@Nullable Component component) { diff --git a/core/java/com/android/internal/widget/remotecompose/core/operations/layout/modifiers/MarqueeModifierOperation.java b/core/java/com/android/internal/widget/remotecompose/core/operations/layout/modifiers/MarqueeModifierOperation.java index 8b6d49747976..9588e99a65b6 100644 --- a/core/java/com/android/internal/widget/remotecompose/core/operations/layout/modifiers/MarqueeModifierOperation.java +++ b/core/java/com/android/internal/widget/remotecompose/core/operations/layout/modifiers/MarqueeModifierOperation.java @@ -92,9 +92,7 @@ public class MarqueeModifierOperation extends DecoratorModifierOperation impleme          return false;      } -    /** -     * Reset the modifier -     */ +    /** Reset the modifier */      public void reset() {          mLastTime = 0;          mScrollX = 0f; diff --git a/core/java/com/android/internal/widget/remotecompose/core/semantics/CoreSemantics.java b/core/java/com/android/internal/widget/remotecompose/core/semantics/CoreSemantics.java index b8166e668ac1..4047dd27d163 100644 --- a/core/java/com/android/internal/widget/remotecompose/core/semantics/CoreSemantics.java +++ b/core/java/com/android/internal/widget/remotecompose/core/semantics/CoreSemantics.java @@ -48,6 +48,11 @@ public class CoreSemantics extends Operation implements AccessibilityModifier {      }      @Override +    public Mode getMode() { +        return mMode; +    } + +    @Override      public void write(WireBuffer buffer) {          buffer.writeInt(mContentDescriptionId);          buffer.writeByte((mRole != null) ? mRole.ordinal() : -1); @@ -78,6 +83,10 @@ public class CoreSemantics extends Operation implements AccessibilityModifier {      public String toString() {          StringBuilder builder = new StringBuilder();          builder.append("SEMANTICS"); +        if (mMode != Mode.SET) { +            builder.append(" "); +            builder.append(mMode); +        }          if (mRole != null) {              builder.append(" ");              builder.append(mRole); diff --git a/core/java/com/android/internal/widget/remotecompose/player/RemoteComposePlayer.java b/core/java/com/android/internal/widget/remotecompose/player/RemoteComposePlayer.java index 19453a0016a1..7dad2931c97f 100644 --- a/core/java/com/android/internal/widget/remotecompose/player/RemoteComposePlayer.java +++ b/core/java/com/android/internal/widget/remotecompose/player/RemoteComposePlayer.java @@ -32,6 +32,7 @@ import android.widget.FrameLayout;  import android.widget.HorizontalScrollView;  import android.widget.ScrollView; +import com.android.internal.widget.remotecompose.accessibility.RemoteComposeTouchHelper;  import com.android.internal.widget.remotecompose.core.CoreDocument;  import com.android.internal.widget.remotecompose.core.RemoteContext;  import com.android.internal.widget.remotecompose.core.operations.NamedVariable; @@ -61,6 +62,15 @@ public class RemoteComposePlayer extends FrameLayout {      }      /** +     * Returns true if the document supports drag touch events +     * +     * @return true if draggable content, false otherwise +     */ +    public boolean isDraggable() { +        return mInner.isDraggable(); +    } + +    /**       * Turn on debug information       *       * @param debugFlags 1 to set debug on @@ -83,9 +93,12 @@ public class RemoteComposePlayer extends FrameLayout {              } else {                  Log.e("RemoteComposePlayer", "Unsupported document ");              } + +            RemoteComposeTouchHelper.REGISTRAR.setAccessibilityDelegate(this, value.getDocument());          } else {              mInner.setDocument(null); -            this.setAccessibilityDelegate(null); + +            RemoteComposeTouchHelper.REGISTRAR.clearAccessibilityDelegate(this);          }          mapColors();          setupSensors(); @@ -97,6 +110,7 @@ public class RemoteComposePlayer extends FrameLayout {                          provideHapticFeedback(type);                      }                  }); +        mInner.checkShaders(mShaderControl);      }      /** @@ -236,22 +250,23 @@ public class RemoteComposePlayer extends FrameLayout {          mInner.clearLocalString("SYSTEM:" + name);      } -    public interface ClickCallbacks { -        void click(int id, String metadata); +    /** Id action callback interface */ +    public interface IdActionCallbacks { +        void onAction(int id, String metadata);      }      /** -     * Add a callback for handling click events on the document +     * Add a callback for handling id actions events on the document       * -     * @param callback the callback lambda that will be used when a click is detected +     * @param callback the callback lambda that will be used when a action is executed       *     <p>The parameter of the callback are:       *     <ul> -     *       <li>id : the id of the clicked area -     *       <li>metadata: a client provided unstructured string associated with that area +     *       <li>id : the id of the action +     *       <li>metadata: a client provided unstructured string associated with that id action       *     </ul>       */ -    public void addClickListener(ClickCallbacks callback) { -        mInner.addClickListener((id, metadata) -> callback.click(id, metadata)); +    public void addIdActionListener(IdActionCallbacks callback) { +        mInner.addIdActionListener((id, metadata) -> callback.onAction(id, metadata));      }      /** @@ -670,4 +685,19 @@ public class RemoteComposePlayer extends FrameLayout {      public float getEvalTime() {          return mInner.getEvalTime();      } + +    private CoreDocument.ShaderControl mShaderControl = +            (shader) -> { +                return false; +            }; + +    /** +     * Sets the controller for shaders. Note set before loading the document. The default is to not +     * accept shaders. +     * +     * @param ctl the controller +     */ +    public void setShaderControl(CoreDocument.ShaderControl ctl) { +        mShaderControl = ctl; +    }  } diff --git a/core/java/com/android/internal/widget/remotecompose/player/platform/AndroidPaintContext.java b/core/java/com/android/internal/widget/remotecompose/player/platform/AndroidPaintContext.java index daa44c8d7312..0712ea496b57 100644 --- a/core/java/com/android/internal/widget/remotecompose/player/platform/AndroidPaintContext.java +++ b/core/java/com/android/internal/widget/remotecompose/player/platform/AndroidPaintContext.java @@ -505,6 +505,9 @@ public class AndroidPaintContext extends PaintContext {                              return;                          }                          ShaderData data = getShaderData(shaderId); +                        if (data == null) { +                            return; +                        }                          RuntimeShader shader = new RuntimeShader(getText(data.getShaderTextId()));                          String[] names = data.getUniformFloatNames();                          for (int i = 0; i < names.length; i++) { diff --git a/core/java/com/android/internal/widget/remotecompose/player/platform/RemoteComposeCanvas.java b/core/java/com/android/internal/widget/remotecompose/player/platform/RemoteComposeCanvas.java index 8da5b9d161f2..c7b1166e113e 100644 --- a/core/java/com/android/internal/widget/remotecompose/player/platform/RemoteComposeCanvas.java +++ b/core/java/com/android/internal/widget/remotecompose/player/platform/RemoteComposeCanvas.java @@ -205,19 +205,46 @@ public class RemoteComposeCanvas extends FrameLayout implements View.OnAttachSta          return count;      } +    /** +     * set a float externally +     * +     * @param id +     * @param value +     */      public void setExternalFloat(int id, float value) {          mARContext.loadFloat(id, value);      } +    /** +     * Returns true if the document supports drag touch events +     * +     * @return true if draggable content, false otherwise +     */ +    public boolean isDraggable() { +        if (mDocument == null) { +            return false; +        } +        return mDocument.getDocument().hasTouchListener(); +    } + +    /** +     * Check shaders and disable them +     * +     * @param shaderControl the callback to validate the shader +     */ +    public void checkShaders(CoreDocument.ShaderControl shaderControl) { +        mDocument.getDocument().checkShaders(mARContext, shaderControl); +    } +      public interface ClickCallbacks {          void click(int id, String metadata);      } -    public void addClickListener(ClickCallbacks callback) { +    public void addIdActionListener(ClickCallbacks callback) {          if (mDocument == null) {              return;          } -        mDocument.getDocument().addClickListener((id, metadata) -> callback.click(id, metadata)); +        mDocument.getDocument().addIdActionListener((id, metadata) -> callback.click(id, metadata));      }      public int getTheme() { @@ -267,6 +294,7 @@ public class RemoteComposeCanvas extends FrameLayout implements View.OnAttachSta                      invalidate();                      return true;                  } +                return false;              case MotionEvent.ACTION_UP:                  mInActionDown = false; @@ -280,6 +308,7 @@ public class RemoteComposeCanvas extends FrameLayout implements View.OnAttachSta                      invalidate();                      return true;                  } +                return false;              case MotionEvent.ACTION_MOVE:                  if (mInActionDown) { @@ -293,6 +322,7 @@ public class RemoteComposeCanvas extends FrameLayout implements View.OnAttachSta                      }                      return true;                  } +                return false;          }          return false;      } diff --git a/core/jni/Android.bp b/core/jni/Android.bp index e22d9587093b..b7a7f96e4e1c 100644 --- a/core/jni/Android.bp +++ b/core/jni/Android.bp @@ -279,6 +279,7 @@ cc_library_shared_for_libandroid_runtime {                  "libasync_safe",                  "libbinderthreadstateutils",                  "libdmabufinfo", +                "libgenfslabelsversion.ffi",                  "libgui_window_info_static",                  "libkernelconfigs",                  "libnativehelper_lazy", diff --git a/core/jni/android_media_AudioFormat.h b/core/jni/android_media_AudioFormat.h index 704aef3cd131..4ba1ae9d670d 100644 --- a/core/jni/android_media_AudioFormat.h +++ b/core/jni/android_media_AudioFormat.h @@ -51,6 +51,18 @@  #define ENCODING_DTS_UHD_P2 30  #define ENCODING_DSD 31  #define ENCODING_AC4_L4 32 +#define ENCODING_IAMF_SIMPLE_PROFILE_OPUS 33 +#define ENCODING_IAMF_SIMPLE_PROFILE_AAC 34 +#define ENCODING_IAMF_SIMPLE_PROFILE_FLAC 35 +#define ENCODING_IAMF_SIMPLE_PROFILE_PCM 36 +#define ENCODING_IAMF_BASE_PROFILE_OPUS 37 +#define ENCODING_IAMF_BASE_PROFILE_AAC 38 +#define ENCODING_IAMF_BASE_PROFILE_FLAC 39 +#define ENCODING_IAMF_BASE_PROFILE_PCM 40 +#define ENCODING_IAMF_BASE_ENHANCED_PROFILE_OPUS 41 +#define ENCODING_IAMF_BASE_ENHANCED_PROFILE_AAC 42 +#define ENCODING_IAMF_BASE_ENHANCED_PROFILE_FLAC 43 +#define ENCODING_IAMF_BASE_ENHANCED_PROFILE_PCM 44  #define ENCODING_INVALID    0  #define ENCODING_DEFAULT    1 @@ -128,6 +140,30 @@ static inline audio_format_t audioFormatToNative(int audioFormat)          return AUDIO_FORMAT_DTS_UHD_P2;      case ENCODING_DSD:          return AUDIO_FORMAT_DSD; +    case ENCODING_IAMF_SIMPLE_PROFILE_OPUS: +        return AUDIO_FORMAT_IAMF_SIMPLE_OPUS; +    case ENCODING_IAMF_SIMPLE_PROFILE_AAC: +        return AUDIO_FORMAT_IAMF_SIMPLE_AAC; +    case ENCODING_IAMF_SIMPLE_PROFILE_FLAC: +        return AUDIO_FORMAT_IAMF_SIMPLE_FLAC; +    case ENCODING_IAMF_SIMPLE_PROFILE_PCM: +        return AUDIO_FORMAT_IAMF_SIMPLE_PCM; +    case ENCODING_IAMF_BASE_PROFILE_OPUS: +        return AUDIO_FORMAT_IAMF_BASE_OPUS; +    case ENCODING_IAMF_BASE_PROFILE_AAC: +        return AUDIO_FORMAT_IAMF_BASE_AAC; +    case ENCODING_IAMF_BASE_PROFILE_FLAC: +        return AUDIO_FORMAT_IAMF_BASE_FLAC; +    case ENCODING_IAMF_BASE_PROFILE_PCM: +        return AUDIO_FORMAT_IAMF_BASE_PCM; +    case ENCODING_IAMF_BASE_ENHANCED_PROFILE_OPUS: +        return AUDIO_FORMAT_IAMF_BASE_ENHANCED_OPUS; +    case ENCODING_IAMF_BASE_ENHANCED_PROFILE_AAC: +        return AUDIO_FORMAT_IAMF_BASE_ENHANCED_AAC; +    case ENCODING_IAMF_BASE_ENHANCED_PROFILE_FLAC: +        return AUDIO_FORMAT_IAMF_BASE_ENHANCED_FLAC; +    case ENCODING_IAMF_BASE_ENHANCED_PROFILE_PCM: +        return AUDIO_FORMAT_IAMF_BASE_ENHANCED_PCM;      default:          return AUDIO_FORMAT_INVALID;      } @@ -211,6 +247,30 @@ static inline int audioFormatFromNative(audio_format_t nativeFormat)          return ENCODING_DEFAULT;      case AUDIO_FORMAT_DSD:          return ENCODING_DSD; +    case AUDIO_FORMAT_IAMF_SIMPLE_OPUS: +        return ENCODING_IAMF_SIMPLE_PROFILE_OPUS; +    case AUDIO_FORMAT_IAMF_SIMPLE_AAC: +        return ENCODING_IAMF_SIMPLE_PROFILE_AAC; +    case AUDIO_FORMAT_IAMF_SIMPLE_FLAC: +        return ENCODING_IAMF_SIMPLE_PROFILE_FLAC; +    case AUDIO_FORMAT_IAMF_SIMPLE_PCM: +        return ENCODING_IAMF_SIMPLE_PROFILE_PCM; +    case AUDIO_FORMAT_IAMF_BASE_OPUS: +        return ENCODING_IAMF_BASE_PROFILE_OPUS; +    case AUDIO_FORMAT_IAMF_BASE_AAC: +        return ENCODING_IAMF_BASE_PROFILE_AAC; +    case AUDIO_FORMAT_IAMF_BASE_FLAC: +        return ENCODING_IAMF_BASE_PROFILE_FLAC; +    case AUDIO_FORMAT_IAMF_BASE_PCM: +        return ENCODING_IAMF_BASE_PROFILE_PCM; +    case AUDIO_FORMAT_IAMF_BASE_ENHANCED_OPUS: +        return ENCODING_IAMF_BASE_ENHANCED_PROFILE_OPUS; +    case AUDIO_FORMAT_IAMF_BASE_ENHANCED_AAC: +        return ENCODING_IAMF_BASE_ENHANCED_PROFILE_AAC; +    case AUDIO_FORMAT_IAMF_BASE_ENHANCED_FLAC: +        return ENCODING_IAMF_BASE_ENHANCED_PROFILE_FLAC; +    case AUDIO_FORMAT_IAMF_BASE_ENHANCED_PCM: +        return ENCODING_IAMF_BASE_ENHANCED_PROFILE_PCM;      default:          return ENCODING_INVALID;      } diff --git a/core/jni/android_os_SELinux.cpp b/core/jni/android_os_SELinux.cpp index 7a4670f4e49d..805d5ad41e83 100644 --- a/core/jni/android_os_SELinux.cpp +++ b/core/jni/android_os_SELinux.cpp @@ -18,18 +18,19 @@  #include <errno.h>  #include <fcntl.h> - +#include <genfslabelsversion.h> +#include <nativehelper/JNIPlatformHelp.h> +#include <nativehelper/ScopedLocalRef.h> +#include <nativehelper/ScopedUtfChars.h>  #include <utils/Log.h> -#include <nativehelper/JNIPlatformHelp.h> -#include "jni.h" +#include <atomic> +#include <memory> +  #include "core_jni_helpers.h" -#include "selinux/selinux.h" +#include "jni.h"  #include "selinux/android.h" -#include <memory> -#include <atomic> -#include <nativehelper/ScopedLocalRef.h> -#include <nativehelper/ScopedUtfChars.h> +#include "selinux/selinux.h"  namespace android {  namespace { @@ -404,8 +405,19 @@ static jboolean native_restorecon(JNIEnv *env, jobject, jstring pathnameStr, jin  }  /* + * Function: getGenfsLabelsVersion + * Purpose: get which genfs labels version /vendor uses + * Returns: int: genfs labels version of /vendor + * Exceptions: none + */ +static jint getGenfsLabelsVersion(JNIEnv *, jclass) { +    return get_genfs_labels_version(); +} + +/*   * JNI registration.   */ +// clang-format off  static const JNINativeMethod method_table[] = {      /* name,                     signature,                    funcPtr */      { "checkSELinuxAccess"       , "(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Z" , (void*)checkSELinuxAccess }, @@ -420,7 +432,9 @@ static const JNINativeMethod method_table[] = {      { "setFileContext"           , "(Ljava/lang/String;Ljava/lang/String;)Z"      , (void*)setFileCon       },      { "setFSCreateContext"       , "(Ljava/lang/String;)Z"                        , (void*)setFSCreateCon   },      { "fileSelabelLookup"        , "(Ljava/lang/String;)Ljava/lang/String;"       , (void*)fileSelabelLookup}, +    { "getGenfsLabelsVersion"    , "()I"                                          , (void *)getGenfsLabelsVersion},  }; +// clang-format on  static int log_callback(int type, const char *fmt, ...) {      va_list ap; diff --git a/core/res/AndroidManifest.xml b/core/res/AndroidManifest.xml index a86d55125887..d0a5318be72c 100644 --- a/core/res/AndroidManifest.xml +++ b/core/res/AndroidManifest.xml @@ -4149,6 +4149,14 @@      <permission android:name="android.permission.MANAGE_DEVICE_POLICY_CONTENT_PROTECTION"                  android:protectionLevel="internal|role" /> +    <!-- Allows an application to manage policy related to AppFunctions. +        <p>Protection level: internal|role +        @FlaggedApi(android.app.appfunctions.flags.Flags.FLAG_ENABLE_APP_FUNCTION_MANAGER) +    --> +    <permission android:name="android.permission.MANAGE_DEVICE_POLICY_APP_FUNCTIONS" +        android:featureFlag="android.app.appfunctions.flags.enable_app_function_manager" +        android:protectionLevel="internal|role" /> +      <!-- Allows an application to set policy related to subscriptions downloaded by an admin.          <p>{@link Manifest.permission#MANAGE_DEVICE_POLICY_ACROSS_USERS_FULL} is required to call          APIs protected by this permission on users different to the calling user. diff --git a/keystore/java/Android.bp b/keystore/java/Android.bp index 21edff1e1c96..264ac5ff1d92 100644 --- a/keystore/java/Android.bp +++ b/keystore/java/Android.bp @@ -13,5 +13,13 @@ filegroup {          "**/*.java",          "**/*.aidl",      ], +    exclude_srcs: select(release_flag("RELEASE_ATTEST_MODULES"), { +        true: [ +            "android/security/KeyStore2HalCurrent.java", +        ], +        default: [ +            "android/security/KeyStore2HalLatest.java", +        ], +    }),      visibility: ["//frameworks/base"],  } diff --git a/keystore/java/android/security/KeyStore2.java b/keystore/java/android/security/KeyStore2.java index dd703f5eefb9..f5cf571ad955 100644 --- a/keystore/java/android/security/KeyStore2.java +++ b/keystore/java/android/security/KeyStore2.java @@ -101,7 +101,7 @@ public class KeyStore2 {          R execute(IKeystoreService service) throws RemoteException;      } -    private <R> R handleRemoteExceptionWithRetry(@NonNull CheckedRemoteRequest<R> request) +    <R> R handleRemoteExceptionWithRetry(@NonNull CheckedRemoteRequest<R> request)              throws KeyStoreException {          IKeystoreService service = getService(false /* retryLookup */);          boolean firstTry = true; @@ -369,6 +369,18 @@ public class KeyStore2 {          }      } +    /** +     * Returns tag-specific info required to interpret a tag's attested value. +     * @see IKeystoreService#getSupplementaryAttestationInfo(Tag) for more details. +     * @param tag +     * @return +     * @throws KeyStoreException +     * @hide +     */ +    public byte[] getSupplementaryAttestationInfo(int tag) throws KeyStoreException { +        return KeyStore2HalVersion.getSupplementaryAttestationInfoHelper(tag, this); +    } +      static KeyStoreException getKeyStoreException(int errorCode, String serviceErrorMessage) {          if (errorCode > 0) {              // KeyStore layer error diff --git a/keystore/java/android/security/KeyStore2HalCurrent.java b/keystore/java/android/security/KeyStore2HalCurrent.java new file mode 100644 index 000000000000..f4d8fe65c995 --- /dev/null +++ b/keystore/java/android/security/KeyStore2HalCurrent.java @@ -0,0 +1,30 @@ +/* + * Copyright (C) 2024 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 android.security; + +/** + * @hide This class is necessary to allow the version of the AIDL interface for Keystore and +* KeyMint used in KeyStore2.java to differ by BUILD flag `RELEASE_ATTEST_MODULES`. When +* `RELEASE_ATTEST_MODULES` is not set, this file is included, and the current HALs for Keystore +* (V4) and KeyMint (V3) are used. +*/ +class KeyStore2HalVersion { +    public static byte[] getSupplementaryAttestationInfoHelper(int tag, KeyStore2 ks) +            throws KeyStoreException { +        return new byte[0]; +    } +} diff --git a/keystore/java/android/security/KeyStore2HalLatest.java b/keystore/java/android/security/KeyStore2HalLatest.java new file mode 100644 index 000000000000..123f1c0b8f39 --- /dev/null +++ b/keystore/java/android/security/KeyStore2HalLatest.java @@ -0,0 +1,31 @@ +/* + * Copyright (C) 2024 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 android.security; + +/** + * @hide This class is necessary to allow the version of the AIDL interface for Keystore and +* KeyMint used in KeyStore2.java to differ by BUILD flag `RELEASE_ATTEST_MODULES`. When +* `RELEASE_ATTEST_MODULES` is set, this file is included, and the latest HALs for Keystore (V5) +* and KeyMint (V4) are used. +*/ +class KeyStore2HalVersion { +    public static byte[] getSupplementaryAttestationInfoHelper(int tag, KeyStore2 ks) +            throws KeyStoreException { +        return ks.handleRemoteExceptionWithRetry( +            (service) -> service.getSupplementaryAttestationInfo(tag)); +    } +} diff --git a/keystore/java/android/security/keystore/KeyStoreManager.java b/keystore/java/android/security/keystore/KeyStoreManager.java index e6091c1da8a5..740ccb53a691 100644 --- a/keystore/java/android/security/keystore/KeyStoreManager.java +++ b/keystore/java/android/security/keystore/KeyStoreManager.java @@ -17,9 +17,11 @@  package android.security.keystore;  import android.annotation.FlaggedApi; +import android.annotation.IntDef;  import android.annotation.NonNull;  import android.annotation.SystemService;  import android.content.Context; +import android.hardware.security.keymint.TagType;  import android.security.KeyStore2;  import android.security.KeyStoreException;  import android.security.keystore2.AndroidKeyStoreProvider; @@ -32,6 +34,8 @@ import android.util.Log;  import com.android.internal.annotations.GuardedBy;  import java.io.ByteArrayInputStream; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy;  import java.security.Key;  import java.security.KeyPair;  import java.security.PublicKey; @@ -299,6 +303,37 @@ public final class KeyStoreManager {          return Collections.emptyList();      } +    /** @hide */ +    @Retention(RetentionPolicy.SOURCE) +    @IntDef(value = {MODULE_HASH}) +    public @interface SupplementaryAttestationInfoTagEnum {} + +    /** +     * When passed into getSupplementaryAttestationInfo, getSupplementaryAttestationInfo returns the +     * DER-encoded structure corresponding to the `Modules` schema described in the KeyMint HAL's +     * KeyCreationResult.aidl. The SHA-256 hash of this encoded structure is what's included with +     * the tag in attestations. +     */ +    // TODO(b/369375199): Replace with Tag.MODULE_HASH when flagging is removed. +    public static final int MODULE_HASH = TagType.BYTES | 724; + +    /** +     * Returns tag-specific data required to interpret a tag's attested value. +     * +     * When performing key attestation, the obtained attestation certificate contains a list of tags +     * and their corresponding attested values. For some tags, additional information about the +     * attested value can be queried via this API. See individual tags for specifics. +     * +     * @param tag tag for which info is being requested +     * @return tag-specific info +     * @throws KeyStoreException if the requested info is not available +     */ +    @FlaggedApi(android.security.keystore2.Flags.FLAG_ATTEST_MODULES) +    public @NonNull byte[] getSupplementaryAttestationInfo( +            @SupplementaryAttestationInfoTagEnum int tag) throws KeyStoreException { +        return mKeyStore2.getSupplementaryAttestationInfo(tag); +    } +      /**       * Returns a new {@link KeyDescriptor} instance in the app domain / namespace with the {@code       * alias} set to the provided value. diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/dagger/LetterboxModule.java b/libs/WindowManager/Shell/src/com/android/wm/shell/dagger/LetterboxModule.java new file mode 100644 index 000000000000..76279ec8cfec --- /dev/null +++ b/libs/WindowManager/Shell/src/com/android/wm/shell/dagger/LetterboxModule.java @@ -0,0 +1,56 @@ +/* + * Copyright 2024 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 com.android.wm.shell.dagger; + +import android.annotation.NonNull; + +import com.android.wm.shell.common.transition.TransitionStateHolder; +import com.android.wm.shell.compatui.letterbox.LetterboxController; +import com.android.wm.shell.compatui.letterbox.LetterboxControllerStrategy; +import com.android.wm.shell.compatui.letterbox.LetterboxTransitionObserver; +import com.android.wm.shell.compatui.letterbox.MixedLetterboxController; +import com.android.wm.shell.sysui.ShellInit; +import com.android.wm.shell.transition.Transitions; + +import dagger.Binds; +import dagger.Module; +import dagger.Provides; + +/** + * Provides Letterbox Shell implementation components to Dagger dependency Graph. + */ +@Module +public abstract class LetterboxModule { + +    @WMSingleton +    @Provides +    static LetterboxTransitionObserver provideLetterboxTransitionObserver( +            @NonNull ShellInit shellInit, +            @NonNull Transitions transitions, +            @NonNull LetterboxController letterboxController, +            @NonNull TransitionStateHolder transitionStateHolder, +            @NonNull LetterboxControllerStrategy letterboxControllerStrategy +    ) { +        return new LetterboxTransitionObserver(shellInit, transitions, letterboxController, +                transitionStateHolder, letterboxControllerStrategy); +    } + +    @WMSingleton +    @Binds +    abstract LetterboxController bindsLetterboxController( +            MixedLetterboxController letterboxController); +} diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/dagger/WMShellModule.java b/libs/WindowManager/Shell/src/com/android/wm/shell/dagger/WMShellModule.java index 806be8c75610..f46b95596bc0 100644 --- a/libs/WindowManager/Shell/src/com/android/wm/shell/dagger/WMShellModule.java +++ b/libs/WindowManager/Shell/src/com/android/wm/shell/dagger/WMShellModule.java @@ -71,12 +71,8 @@ import com.android.wm.shell.common.ShellExecutor;  import com.android.wm.shell.common.SyncTransactionQueue;  import com.android.wm.shell.common.TaskStackListenerImpl;  import com.android.wm.shell.common.split.SplitState; -import com.android.wm.shell.common.transition.TransitionStateHolder;  import com.android.wm.shell.compatui.letterbox.LetterboxCommandHandler; -import com.android.wm.shell.compatui.letterbox.LetterboxController; -import com.android.wm.shell.compatui.letterbox.LetterboxControllerStrategy;  import com.android.wm.shell.compatui.letterbox.LetterboxTransitionObserver; -import com.android.wm.shell.compatui.letterbox.MixedLetterboxController;  import com.android.wm.shell.dagger.back.ShellBackAnimationModule;  import com.android.wm.shell.dagger.pip.PipModule;  import com.android.wm.shell.desktopmode.CloseDesktopTaskTransitionHandler; @@ -182,7 +178,8 @@ import java.util.Optional;   * <p>This module only defines Shell dependencies for handheld SystemUI implementation. Common   * dependencies should go into {@link WMShellBaseModule}.   */ -@Module(includes = {WMShellBaseModule.class, PipModule.class, ShellBackAnimationModule.class}) +@Module(includes = {WMShellBaseModule.class, PipModule.class, ShellBackAnimationModule.class, +        LetterboxModule.class})  public abstract class WMShellModule {      // @@ -1329,25 +1326,4 @@ public abstract class WMShellModule {          return new Object();      } -    // -    // App Compat -    // - -    @WMSingleton -    @Provides -    static LetterboxTransitionObserver provideLetterboxTransitionObserver( -            @NonNull ShellInit shellInit, -            @NonNull Transitions transitions, -            @NonNull LetterboxController letterboxController, -            @NonNull TransitionStateHolder transitionStateHolder, -            @NonNull LetterboxControllerStrategy letterboxControllerStrategy -    ) { -        return new LetterboxTransitionObserver(shellInit, transitions, letterboxController, -                transitionStateHolder, letterboxControllerStrategy); -    } - -    @WMSingleton -    @Binds -    abstract LetterboxController bindsLetterboxController( -            MixedLetterboxController letterboxController);  } diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/pip/PipTransitionController.java b/libs/WindowManager/Shell/src/com/android/wm/shell/pip/PipTransitionController.java index 6129651dc271..6e7740dc13e3 100644 --- a/libs/WindowManager/Shell/src/com/android/wm/shell/pip/PipTransitionController.java +++ b/libs/WindowManager/Shell/src/com/android/wm/shell/pip/PipTransitionController.java @@ -39,6 +39,7 @@ import android.view.SurfaceControl;  import android.view.WindowManager;  import android.window.TransitionInfo;  import android.window.TransitionRequestInfo; +import android.window.WindowContainerToken;  import android.window.WindowContainerTransaction;  import androidx.annotation.NonNull; @@ -312,6 +313,23 @@ public abstract class PipTransitionController implements Transitions.TransitionH          return false;      } +    /** +     * @return a change representing a config-at-end activity for a given parent. +     */ +    @Nullable +    public TransitionInfo.Change getDeferConfigActivityChange(TransitionInfo info, +            @android.annotation.NonNull WindowContainerToken parent) { +        for (TransitionInfo.Change change : info.getChanges()) { +            if (change.getTaskInfo() == null +                    && change.hasFlags(TransitionInfo.FLAG_CONFIG_AT_END) +                    && change.getParent() != null && change.getParent().equals(parent)) { +                return change; +            } +        } +        return null; +    } + +      /** Whether a particular package is same as current pip package. */      public boolean isPackageActiveInPip(@Nullable String packageName) {          // No-op, to be handled differently in PIP1 and PIP2 diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/pip2/phone/PipTransition.java b/libs/WindowManager/Shell/src/com/android/wm/shell/pip2/phone/PipTransition.java index b171db2c3793..1a012e075be5 100644 --- a/libs/WindowManager/Shell/src/com/android/wm/shell/pip2/phone/PipTransition.java +++ b/libs/WindowManager/Shell/src/com/android/wm/shell/pip2/phone/PipTransition.java @@ -21,6 +21,7 @@ import static android.app.WindowConfiguration.WINDOWING_MODE_PINNED;  import static android.view.Surface.ROTATION_0;  import static android.view.Surface.ROTATION_270;  import static android.view.Surface.ROTATION_90; +import static android.view.WindowManager.TRANSIT_CHANGE;  import static android.view.WindowManager.TRANSIT_CLOSE;  import static android.view.WindowManager.TRANSIT_OPEN;  import static android.view.WindowManager.TRANSIT_PIP; @@ -30,6 +31,7 @@ import static android.view.WindowManager.TRANSIT_TO_FRONT;  import static com.android.wm.shell.transition.Transitions.TRANSIT_EXIT_PIP;  import static com.android.wm.shell.transition.Transitions.TRANSIT_REMOVE_PIP;  import static com.android.wm.shell.transition.Transitions.TRANSIT_RESIZE_PIP; +import static com.android.wm.shell.transition.Transitions.transitTypeToString;  import android.animation.ValueAnimator;  import android.annotation.NonNull; @@ -44,6 +46,7 @@ import android.os.Bundle;  import android.os.IBinder;  import android.view.Surface;  import android.view.SurfaceControl; +import android.view.WindowManager;  import android.window.TransitionInfo;  import android.window.TransitionRequestInfo;  import android.window.WindowContainerToken; @@ -282,6 +285,31 @@ public class PipTransition extends PipTransitionController implements      }      @Override +    public boolean isEnteringPip(@NonNull TransitionInfo.Change change, +            @WindowManager.TransitionType int transitType) { +        if (change.getTaskInfo() != null +                && change.getTaskInfo().getWindowingMode() == WINDOWING_MODE_PINNED) { +            // TRANSIT_TO_FRONT, though uncommon with triggering PiP, should semantically also +            // be allowed to animate if the task in question is pinned already - see b/308054074. +            if (transitType == TRANSIT_PIP || transitType == TRANSIT_OPEN +                    || transitType == TRANSIT_TO_FRONT) { +                return true; +            } +            // This can happen if the request to enter PIP happens when we are collecting for +            // another transition, such as TRANSIT_CHANGE (display rotation). +            if (transitType == TRANSIT_CHANGE) { +                return true; +            } + +            // Please file a bug to handle the unexpected transition type. +            android.util.Slog.e(TAG, "Found new PIP in transition with mis-matched type=" +                    + transitTypeToString(transitType), new Throwable()); +        } +        return false; +    } + + +    @Override      public void end() {          if (mTransitionAnimator != null && mTransitionAnimator.isRunning()) {              mTransitionAnimator.end(); @@ -662,19 +690,6 @@ public class PipTransition extends PipTransitionController implements      }      @Nullable -    private TransitionInfo.Change getDeferConfigActivityChange(TransitionInfo info, -            @NonNull WindowContainerToken parent) { -        for (TransitionInfo.Change change : info.getChanges()) { -            if (change.getTaskInfo() == null -                    && change.hasFlags(TransitionInfo.FLAG_CONFIG_AT_END) -                    && change.getParent() != null && change.getParent().equals(parent)) { -                return change; -            } -        } -        return null; -    } - -    @Nullable      private TransitionInfo.Change getChangeByToken(TransitionInfo info,              WindowContainerToken token) {          for (TransitionInfo.Change change : info.getChanges()) { diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/transition/DefaultMixedHandler.java b/libs/WindowManager/Shell/src/com/android/wm/shell/transition/DefaultMixedHandler.java index 92d1f9c26bbc..41c0a11827bb 100644 --- a/libs/WindowManager/Shell/src/com/android/wm/shell/transition/DefaultMixedHandler.java +++ b/libs/WindowManager/Shell/src/com/android/wm/shell/transition/DefaultMixedHandler.java @@ -287,6 +287,7 @@ public class DefaultMixedHandler implements MixedTransitionHandler,                      MixedTransition.TYPE_ENTER_PIP_FROM_ACTIVITY_EMBEDDING, transition));              // Postpone transition splitting to later.              WindowContainerTransaction out = new WindowContainerTransaction(); +            mPipHandler.augmentRequest(transition, request, out);              return out;          } else if (request.getRemoteTransition() != null                  && TransitionUtil.isOpeningType(request.getType()) diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/transition/DefaultMixedTransition.java b/libs/WindowManager/Shell/src/com/android/wm/shell/transition/DefaultMixedTransition.java index 3d3de88cdafc..03ded730865e 100644 --- a/libs/WindowManager/Shell/src/com/android/wm/shell/transition/DefaultMixedTransition.java +++ b/libs/WindowManager/Shell/src/com/android/wm/shell/transition/DefaultMixedTransition.java @@ -16,6 +16,7 @@  package com.android.wm.shell.transition; +import static android.view.WindowManager.TRANSIT_PIP;  import static android.view.WindowManager.TRANSIT_TO_BACK;  import static com.android.wm.shell.transition.DefaultMixedHandler.subCopy; @@ -37,6 +38,8 @@ import com.android.wm.shell.protolog.ShellProtoLogGroup;  import com.android.wm.shell.splitscreen.StageCoordinator;  import com.android.wm.shell.unfold.UnfoldTransitionHandler; +import java.util.List; +  class DefaultMixedTransition extends DefaultMixedHandler.MixedTransition {      private final UnfoldTransitionHandler mUnfoldHandler;      private final ActivityEmbeddingController mActivityEmbeddingController; @@ -127,6 +130,13 @@ class DefaultMixedTransition extends DefaultMixedHandler.MixedTransition {              }          } +        TransitionInfo.Change pipActivityChange = null; +        if (pipChange != null) { +            pipActivityChange = mPipHandler.getDeferConfigActivityChange( +                    info, pipChange.getContainer()); +            everythingElse.getChanges().remove(pipActivityChange); +        } +          final Transitions.TransitionFinishCallback finishCB = (wct) -> {              --mInFlightSubAnimations;              joinFinishArgs(wct); @@ -139,13 +149,23 @@ class DefaultMixedTransition extends DefaultMixedHandler.MixedTransition {              return false;          } -        // PIP window should always be on the highest Z order. -        if (pipChange != null) { +        if (pipChange != null && pipActivityChange == null) { +            // We are operating on a single PiP task for the enter animation here.              mInFlightSubAnimations = 2; +            // PIP window should always be on the highest Z order.              mPipHandler.startEnterAnimation(                      pipChange, startTransaction.setLayer(pipChange.getLeash(), Integer.MAX_VALUE),                      finishTransaction,                      finishCB); +        } else if (pipActivityChange != null) { +            // If there is both a PiP task and a PiP config-at-end activity change, +            // put them into a separate TransitionInfo, and send to be animated as TRANSIT_PIP. +            mInFlightSubAnimations = 2; +            TransitionInfo pipInfo = subCopy(info, TRANSIT_PIP, false /* withChanges */); +            pipInfo.getChanges().addAll(List.of(pipChange, pipActivityChange)); +            mPipHandler.startAnimation(mTransition, pipInfo, +                    startTransaction.setLayer(pipChange.getLeash(), Integer.MAX_VALUE), +                    finishTransaction, finishCB);          } else {              mInFlightSubAnimations = 1;          } diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/CaptionWindowDecoration.java b/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/CaptionWindowDecoration.java index aa954fbe5669..112e429c264a 100644 --- a/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/CaptionWindowDecoration.java +++ b/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/CaptionWindowDecoration.java @@ -91,7 +91,8 @@ public class CaptionWindowDecoration extends WindowDecoration<WindowDecorLinearL              @ShellBackgroundThread ShellExecutor bgExecutor,              Choreographer choreographer,              SyncTransactionQueue syncQueue) { -        super(context, userContext, displayController, taskOrganizer, taskInfo, taskSurface); +        super(context, userContext, displayController, taskOrganizer, handler, taskInfo, +                taskSurface);          mHandler = handler;          mBgExecutor = bgExecutor;          mChoreographer = choreographer; diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/DesktopModeWindowDecoration.java b/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/DesktopModeWindowDecoration.java index e7985dea61c8..3d0c8a7203ce 100644 --- a/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/DesktopModeWindowDecoration.java +++ b/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/DesktopModeWindowDecoration.java @@ -43,7 +43,6 @@ import static com.android.wm.shell.windowdecor.DragPositioningCallbackUtility.Dr  import android.annotation.NonNull;  import android.annotation.Nullable; -import android.annotation.SuppressLint;  import android.app.ActivityManager;  import android.app.WindowConfiguration.WindowingMode;  import android.app.assist.AssistContent; @@ -158,14 +157,11 @@ public class DesktopModeWindowDecoration extends WindowDecoration<WindowDecorLin      private Function0<Unit> mOnMaximizeHoverListener;      private DragPositioningCallback mDragPositioningCallback;      private DragResizeInputListener mDragResizeListener; -    private Runnable mCurrentViewHostRunnable = null;      private RelayoutParams mRelayoutParams = new RelayoutParams();      private DisabledEdge mDisabledResizingEdge =              NONE;      private final WindowDecoration.RelayoutResult<WindowDecorLinearLayout> mResult =              new WindowDecoration.RelayoutResult<>(); -    private final Runnable mViewHostRunnable = -            () -> updateViewHost(mRelayoutParams, null /* onDrawTransaction */, mResult);      private final Point mPositionInParent = new Point();      private HandleMenu mHandleMenu; @@ -269,8 +265,8 @@ public class DesktopModeWindowDecoration extends WindowDecoration<WindowDecorLin              MultiInstanceHelper multiInstanceHelper,              WindowDecorCaptionHandleRepository windowDecorCaptionHandleRepository,              DesktopModeEventLogger desktopModeEventLogger) { -        super(context, userContext, displayController, taskOrganizer, taskInfo, taskSurface, -                surfaceControlBuilderSupplier, surfaceControlTransactionSupplier, +        super(context, userContext, displayController, taskOrganizer, handler, taskInfo, +                taskSurface, surfaceControlBuilderSupplier, surfaceControlTransactionSupplier,                  windowContainerTransactionSupplier, surfaceControlSupplier,                  surfaceControlViewHostFactory, desktopModeEventLogger);          mSplitScreenController = splitScreenController; @@ -451,78 +447,7 @@ public class DesktopModeWindowDecoration extends WindowDecoration<WindowDecorLin              boolean applyStartTransactionOnDraw, boolean shouldSetTaskVisibilityPositionAndCrop,              boolean hasGlobalFocus, @NonNull Region displayExclusionRegion) {          Trace.beginSection("DesktopModeWindowDecoration#relayout"); -        if (taskInfo.isFreeform()) { -            // The Task is in Freeform mode -> show its header in sync since it's an integral part -            // of the window itself - a delayed header might cause bad UX. -            relayoutInSync(taskInfo, startT, finishT, applyStartTransactionOnDraw, -                    shouldSetTaskVisibilityPositionAndCrop, hasGlobalFocus, displayExclusionRegion); -        } else { -            // The Task is outside Freeform mode -> allow the handle view to be delayed since the -            // handle is just a small addition to the window. -            relayoutWithDelayedViewHost(taskInfo, startT, finishT, applyStartTransactionOnDraw, -                    shouldSetTaskVisibilityPositionAndCrop, hasGlobalFocus, displayExclusionRegion); -        } -        Trace.endSection(); -    } - -    /** Run the whole relayout phase immediately without delay. */ -    private void relayoutInSync(ActivityManager.RunningTaskInfo taskInfo, -            SurfaceControl.Transaction startT, SurfaceControl.Transaction finishT, -            boolean applyStartTransactionOnDraw, boolean shouldSetTaskVisibilityPositionAndCrop, -            boolean hasGlobalFocus, @NonNull Region displayExclusionRegion) { -        // Clear the current ViewHost runnable as we will update the ViewHost here -        clearCurrentViewHostRunnable(); -        updateRelayoutParamsAndSurfaces(taskInfo, startT, finishT, applyStartTransactionOnDraw, -                shouldSetTaskVisibilityPositionAndCrop, hasGlobalFocus, displayExclusionRegion); -        if (mResult.mRootView != null) { -            updateViewHost(mRelayoutParams, startT, mResult); -        } -    } - -    /** -     * Clear the current ViewHost runnable - to ensure it doesn't run once relayout params have been -     * updated. -     */ -    private void clearCurrentViewHostRunnable() { -        if (mCurrentViewHostRunnable != null) { -            mHandler.removeCallbacks(mCurrentViewHostRunnable); -            mCurrentViewHostRunnable = null; -        } -    } - -    /** -     * Relayout the window decoration but repost some of the work, to unblock the current callstack. -     */ -    private void relayoutWithDelayedViewHost(ActivityManager.RunningTaskInfo taskInfo, -            SurfaceControl.Transaction startT, SurfaceControl.Transaction finishT, -            boolean applyStartTransactionOnDraw, boolean shouldSetTaskVisibilityPositionAndCrop, -            boolean hasGlobalFocus, -            @NonNull Region displayExclusionRegion) { -        if (applyStartTransactionOnDraw) { -            throw new IllegalArgumentException( -                    "We cannot both sync viewhost ondraw and delay viewhost creation."); -        } -        // Clear the current ViewHost runnable as we will update the ViewHost here -        clearCurrentViewHostRunnable(); -        updateRelayoutParamsAndSurfaces(taskInfo, startT, finishT, -                false /* applyStartTransactionOnDraw */, shouldSetTaskVisibilityPositionAndCrop, -                hasGlobalFocus, displayExclusionRegion); -        if (mResult.mRootView == null) { -            // This means something blocks the window decor from showing, e.g. the task is hidden. -            // Nothing is set up in this case including the decoration surface. -            return; -        } -        // Store the current runnable so it can be removed if we start a new relayout. -        mCurrentViewHostRunnable = mViewHostRunnable; -        mHandler.post(mCurrentViewHostRunnable); -    } -    @SuppressLint("MissingPermission") -    private void updateRelayoutParamsAndSurfaces(ActivityManager.RunningTaskInfo taskInfo, -            SurfaceControl.Transaction startT, SurfaceControl.Transaction finishT, -            boolean applyStartTransactionOnDraw, boolean shouldSetTaskVisibilityPositionAndCrop, -            boolean hasGlobalFocus, @NonNull Region displayExclusionRegion) { -        Trace.beginSection("DesktopModeWindowDecoration#updateRelayoutParamsAndSurfaces");          if (Flags.enableDesktopWindowingAppToWeb()) {              setCapturedLink(taskInfo.capturedLink, taskInfo.capturedLinkTimestamp);          } @@ -553,9 +478,7 @@ public class DesktopModeWindowDecoration extends WindowDecoration<WindowDecorLin          final SurfaceControl oldDecorationSurface = mDecorationContainerSurface;          final WindowContainerTransaction wct = new WindowContainerTransaction(); -        Trace.beginSection("DesktopModeWindowDecoration#relayout-updateViewsAndSurfaces"); -        updateViewsAndSurfaces(mRelayoutParams, startT, finishT, wct, oldRootView, mResult); -        Trace.endSection(); +        relayout(mRelayoutParams, startT, finishT, wct, oldRootView, mResult);          // After this line, mTaskInfo is up-to-date and should be used instead of taskInfo          Trace.beginSection("DesktopModeWindowDecoration#relayout-applyWCT"); @@ -570,7 +493,7 @@ public class DesktopModeWindowDecoration extends WindowDecoration<WindowDecorLin              }              mExclusionRegionListener.onExclusionRegionDismissed(mTaskInfo.taskId);              disposeStatusBarInputLayer(); -            Trace.endSection(); // DesktopModeWindowDecoration#updateRelayoutParamsAndSurfaces +            Trace.endSection(); // DesktopModeWindowDecoration#relayout              return;          } @@ -578,7 +501,6 @@ public class DesktopModeWindowDecoration extends WindowDecoration<WindowDecorLin              disposeStatusBarInputLayer();              mWindowDecorViewHolder = createViewHolder();          } -        Trace.beginSection("DesktopModeWindowDecoration#relayout-binding");          final Point position = new Point();          if (isAppHandle(mWindowDecorViewHolder)) { @@ -588,6 +510,7 @@ public class DesktopModeWindowDecoration extends WindowDecoration<WindowDecorLin              notifyCaptionStateChanged();          } +        Trace.beginSection("DesktopModeWindowDecoration#relayout-bindData");          if (isAppHandle(mWindowDecorViewHolder)) {              mWindowDecorViewHolder.bindData(new AppHandleViewHolder.HandleData(                      mTaskInfo, position, mResult.mCaptionWidth, mResult.mCaptionHeight, @@ -612,7 +535,7 @@ public class DesktopModeWindowDecoration extends WindowDecoration<WindowDecorLin          }          updateDragResizeListener(oldDecorationSurface, inFullImmersive);          updateMaximizeMenu(startT, inFullImmersive); -        Trace.endSection(); // DesktopModeWindowDecoration#updateRelayoutParamsAndSurfaces +        Trace.endSection(); // DesktopModeWindowDecoration#relayout      }      private boolean isCaptionVisible() { @@ -897,6 +820,10 @@ public class DesktopModeWindowDecoration extends WindowDecoration<WindowDecorLin          relayoutParams.mCaptionWidthId = getCaptionWidthId(relayoutParams.mLayoutResId);          relayoutParams.mHasGlobalFocus = hasGlobalFocus;          relayoutParams.mDisplayExclusionRegion.set(displayExclusionRegion); +        // Allow the handle view to be delayed since the handle is just a small addition to the +        // window, whereas the header cannot be delayed because it is expected to be visible from +        // the first frame. +        relayoutParams.mAsyncViewHost = isAppHandle;          final boolean showCaption;          if (Flags.enableFullyImmersiveInDesktop()) { @@ -1703,7 +1630,6 @@ public class DesktopModeWindowDecoration extends WindowDecoration<WindowDecorLin          mExclusionRegionListener.onExclusionRegionDismissed(mTaskInfo.taskId);          disposeResizeVeil();          disposeStatusBarInputLayer(); -        clearCurrentViewHostRunnable();          if (canEnterDesktopMode(mContext) && isEducationEnabled()) {              notifyNoCaptionHandle();          } diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/WindowDecoration.java b/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/WindowDecoration.java index 584ee39ab317..261d4007b0c4 100644 --- a/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/WindowDecoration.java +++ b/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/WindowDecoration.java @@ -39,6 +39,7 @@ import android.graphics.Point;  import android.graphics.Rect;  import android.graphics.Region;  import android.os.Binder; +import android.os.Handler;  import android.os.Trace;  import android.view.Display;  import android.view.InsetsSource; @@ -58,6 +59,7 @@ import com.android.internal.annotations.VisibleForTesting;  import com.android.wm.shell.ShellTaskOrganizer;  import com.android.wm.shell.common.DisplayController;  import com.android.wm.shell.desktopmode.DesktopModeEventLogger; +import com.android.wm.shell.shared.annotations.ShellMainThread;  import com.android.wm.shell.shared.desktopmode.DesktopModeStatus;  import com.android.wm.shell.windowdecor.WindowDecoration.RelayoutParams.OccludingCaptionElement;  import com.android.wm.shell.windowdecor.additionalviewcontainer.AdditionalViewHostViewContainer; @@ -121,6 +123,7 @@ public abstract class WindowDecoration<T extends View & TaskFocusStateConsumer>      final @NonNull Context mUserContext;      final @NonNull DisplayController mDisplayController;      final @NonNull DesktopModeEventLogger mDesktopModeEventLogger; +    private final @ShellMainThread Handler mMainHandler;      final ShellTaskOrganizer mTaskOrganizer;      final Supplier<SurfaceControl.Builder> mSurfaceControlBuilderSupplier;      final Supplier<SurfaceControl.Transaction> mSurfaceControlTransactionSupplier; @@ -167,15 +170,18 @@ public abstract class WindowDecoration<T extends View & TaskFocusStateConsumer>      private final Binder mOwner = new Binder();      private final float[] mTmpColor = new float[3]; +    private Runnable mCurrentUpdateViewHostRunnable; +      WindowDecoration(              Context context,              @NonNull Context userContext,              DisplayController displayController,              ShellTaskOrganizer taskOrganizer, +            @ShellMainThread Handler mainHandler,              RunningTaskInfo taskInfo,              SurfaceControl taskSurface) { -        this(context, userContext, displayController, taskOrganizer, taskInfo, taskSurface, -                SurfaceControl.Builder::new, SurfaceControl.Transaction::new, +        this(context, userContext, displayController, taskOrganizer, mainHandler, taskInfo, +                taskSurface, SurfaceControl.Builder::new, SurfaceControl.Transaction::new,                  WindowContainerTransaction::new, SurfaceControl::new,                  new SurfaceControlViewHostFactory() {}, new DesktopModeEventLogger());      } @@ -185,6 +191,7 @@ public abstract class WindowDecoration<T extends View & TaskFocusStateConsumer>              @NonNull Context userContext,              @NonNull DisplayController displayController,              ShellTaskOrganizer taskOrganizer, +            @ShellMainThread Handler mainHandler,              RunningTaskInfo taskInfo,              @NonNull SurfaceControl taskSurface,              Supplier<SurfaceControl.Builder> surfaceControlBuilderSupplier, @@ -198,6 +205,7 @@ public abstract class WindowDecoration<T extends View & TaskFocusStateConsumer>          mUserContext = userContext;          mDisplayController = displayController;          mTaskOrganizer = taskOrganizer; +        mMainHandler = mainHandler;          mTaskInfo = taskInfo;          mTaskSurface = cloneSurfaceControl(taskSurface, surfaceControlSupplier);          mDesktopModeEventLogger = desktopModeEventLogger; @@ -240,15 +248,7 @@ public abstract class WindowDecoration<T extends View & TaskFocusStateConsumer>      void relayout(RelayoutParams params, SurfaceControl.Transaction startT,              SurfaceControl.Transaction finishT, WindowContainerTransaction wct, T rootView,              RelayoutResult<T> outResult) { -        updateViewsAndSurfaces(params, startT, finishT, wct, rootView, outResult); -        if (outResult.mRootView != null) { -            updateViewHost(params, startT, outResult); -        } -    } - -    protected void updateViewsAndSurfaces(RelayoutParams params, -            SurfaceControl.Transaction startT, SurfaceControl.Transaction finishT, -            WindowContainerTransaction wct, T rootView, RelayoutResult<T> outResult) { +        Trace.beginSection("WindowDecoration#relayout");          outResult.reset();          if (params.mRunningTaskInfo != null) {              mTaskInfo = params.mRunningTaskInfo; @@ -263,17 +263,21 @@ public abstract class WindowDecoration<T extends View & TaskFocusStateConsumer>              if (params.mSetTaskVisibilityPositionAndCrop) {                  finishT.hide(mTaskSurface);              } +            Trace.endSection(); // WindowDecoration#relayout              return;          } - +        Trace.beginSection("WindowDecoration#relayout-inflateIfNeeded");          inflateIfNeeded(params, wct, rootView, oldLayoutResId, outResult); -        if (outResult.mRootView == null) { -            // Didn't manage to create a root view, early out. +        Trace.endSection(); +        final boolean hasCaptionView = outResult.mRootView != null; +        if (!hasCaptionView) { +            Trace.endSection(); // WindowDecoration#relayout              return;          } -        rootView = null; // Clear it just in case we use it accidentally +        Trace.beginSection("WindowDecoration#relayout-updateCaptionVisibility");          updateCaptionVisibility(outResult.mRootView, params); +        Trace.endSection();          final Rect taskBounds = mTaskInfo.getConfiguration().windowConfiguration.getBounds();          outResult.mWidth = taskBounds.width(); @@ -288,10 +292,118 @@ public abstract class WindowDecoration<T extends View & TaskFocusStateConsumer>          outResult.mCaptionY = 0;          outResult.mCaptionTopPadding = params.mCaptionTopPadding; +        Trace.beginSection("WindowDecoration#relayout-updateSurfacesAndInsets");          updateDecorationContainerSurface(startT, outResult); -        updateCaptionContainerSurface(startT, outResult); +        final SurfaceControl captionSurface = getOrCreateCaptionSurface(); +        updateCaptionContainerSurface(captionSurface, startT, outResult);          updateCaptionInsets(params, wct, outResult, taskBounds);          updateTaskSurface(params, startT, finishT, outResult); +        Trace.endSection(); + +        Trace.beginSection("WindowDecoration#relayout-updateViewHost"); +        clearCurrentViewHostRunnable(); +        if (params.mAsyncViewHost) { +            mCurrentUpdateViewHostRunnable = () -> updateViewHost(params, startT, outResult); +            mMainHandler.post(mCurrentUpdateViewHostRunnable); +        } else { +            updateViewHost(params, startT, outResult); +        } +        Trace.endSection(); + +        Trace.endSection(); // WindowDecoration#relayout +    } + +    private void clearCurrentViewHostRunnable() { +        if (mCurrentUpdateViewHostRunnable != null) { +            mMainHandler.removeCallbacks(mCurrentUpdateViewHostRunnable); +            mCurrentUpdateViewHostRunnable = null; +        } +    } + +    private void updateViewHost(RelayoutParams params, SurfaceControl.Transaction startT, +            RelayoutResult<T> outResult) { +        createCaptionWindowManagerIfNeeded(); +        Trace.beginSection("updateViewHost-createViewHostIfNeeded"); +        final boolean firstLayout = createViewHostIfNeeded(mDecorWindowContext, mDisplay); +        Trace.endSection(); + +        outResult.mRootView.setPadding(0, params.mCaptionTopPadding, 0, 0); +        mCaptionWindowManager.setConfiguration(mTaskInfo.getConfiguration()); +        final Rect localCaptionBounds = new Rect( +                outResult.mCaptionX, +                outResult.mCaptionY, +                outResult.mCaptionX + outResult.mCaptionWidth, +                outResult.mCaptionY + outResult.mCaptionHeight); +        final Region touchableRegion = params.mLimitTouchRegionToSystemAreas +                ? calculateLimitedTouchableRegion(params, localCaptionBounds) +                : null; +        if (params.mLimitTouchRegionToSystemAreas) { +            mCaptionWindowManager.setTouchRegion(mViewHost, touchableRegion); +        } +        if (touchableRegion != null) { +            touchableRegion.recycle(); +        } +        updateViewHierarchy(params, outResult, startT, firstLayout); +    } + +    private SurfaceControl getOrCreateCaptionSurface() { +        if (mCaptionContainerSurface == null) { +            final SurfaceControl.Builder builder = mSurfaceControlBuilderSupplier.get(); +            mCaptionContainerSurface = builder +                    .setName("Caption container of Task=" + mTaskInfo.taskId) +                    .setContainerLayer() +                    .setParent(mDecorationContainerSurface) +                    .setCallsite("WindowDecoration.updateCaptionContainerSurface") +                    .build(); +        } +        return mCaptionContainerSurface; +    } + +    private boolean createViewHostIfNeeded(@NonNull Context context, @NonNull Display display) { +        if (mViewHost == null) { +            mViewHost = mSurfaceControlViewHostFactory.create(context, display, +                    mCaptionWindowManager); +            Trace.endSection(); +            return true; +        } +        return false; +    } + +    private void createCaptionWindowManagerIfNeeded() { +        if (mCaptionWindowManager == null) { +            // Put caption under a container surface because ViewRootImpl sets the destination frame +            // of windowless window layers and BLASTBufferQueue#update() doesn't support offset. +            mCaptionWindowManager = new CaptionWindowlessWindowManager( +                    mTaskInfo.getConfiguration(), mCaptionContainerSurface); +        } +    } + +    private void updateViewHierarchy(@NonNull RelayoutParams params, +            @NonNull RelayoutResult<T> outResult, @NonNull SurfaceControl.Transaction startT, +            boolean firstLayout) { +        Trace.beginSection("WindowDecoration#updateViewHierarchy"); +        final WindowManager.LayoutParams lp = +                new WindowManager.LayoutParams( +                        outResult.mCaptionWidth, +                        outResult.mCaptionHeight, +                        TYPE_APPLICATION, +                        FLAG_NOT_FOCUSABLE | FLAG_SPLIT_TOUCH, +                        PixelFormat.TRANSPARENT); +        lp.setTitle("Caption of Task=" + mTaskInfo.taskId); +        lp.setTrustedOverlay(); +        lp.inputFeatures = params.mInputFeatures; +        if (params.mApplyStartTransactionOnDraw) { +            if (params.mAsyncViewHost) { +                throw new IllegalArgumentException("Cannot use sync draw tx with async relayout"); +            } +            mViewHost.getRootSurfaceControl().applyTransactionOnDraw(startT); +        } +        if (firstLayout) { +            mViewHost.setView(outResult.mRootView, lp); +        } else { +            mViewHost.relayout(lp); +        } +        Trace.endSection();      }      private void inflateIfNeeded(RelayoutParams params, WindowContainerTransaction wct, @@ -359,23 +471,13 @@ public abstract class WindowDecoration<T extends View & TaskFocusStateConsumer>                  .show(mDecorationContainerSurface);      } -    private void updateCaptionContainerSurface( +    private void updateCaptionContainerSurface(@NonNull SurfaceControl captionSurface,              SurfaceControl.Transaction startT, RelayoutResult<T> outResult) { -        if (mCaptionContainerSurface == null) { -            final SurfaceControl.Builder builder = mSurfaceControlBuilderSupplier.get(); -            mCaptionContainerSurface = builder -                    .setName("Caption container of Task=" + mTaskInfo.taskId) -                    .setContainerLayer() -                    .setParent(mDecorationContainerSurface) -                    .setCallsite("WindowDecoration.updateCaptionContainerSurface") -                    .build(); -        } - -        startT.setWindowCrop(mCaptionContainerSurface, outResult.mCaptionWidth, -                        outResult.mCaptionHeight) -                .setPosition(mCaptionContainerSurface, outResult.mCaptionX, 0 /* y */) -                .setLayer(mCaptionContainerSurface, CAPTION_LAYER_Z_ORDER) -                .show(mCaptionContainerSurface); +        startT.reparent(captionSurface, mDecorationContainerSurface) +                .setWindowCrop(captionSurface, outResult.mCaptionWidth, outResult.mCaptionHeight) +                .setPosition(captionSurface, outResult.mCaptionX, 0 /* y */) +                .setLayer(captionSurface, CAPTION_LAYER_Z_ORDER) +                .show(captionSurface);      }      private void updateCaptionInsets(RelayoutParams params, WindowContainerTransaction wct, @@ -469,80 +571,6 @@ public abstract class WindowDecoration<T extends View & TaskFocusStateConsumer>          }      } -    /** -     * Updates a {@link SurfaceControlViewHost} to connect the window decoration surfaces with our -     * View hierarchy. -     * -     * @param params parameters to use from the last relayout -     * @param onDrawTransaction a transaction to apply in sync with #onDraw -     * @param outResult results to use from the last relayout -     * -     */ -    protected void updateViewHost(RelayoutParams params, -            SurfaceControl.Transaction onDrawTransaction, RelayoutResult<T> outResult) { -        Trace.beginSection("CaptionViewHostLayout"); -        if (mCaptionWindowManager == null) { -            // Put caption under a container surface because ViewRootImpl sets the destination frame -            // of windowless window layers and BLASTBufferQueue#update() doesn't support offset. -            mCaptionWindowManager = new CaptionWindowlessWindowManager( -                    mTaskInfo.getConfiguration(), mCaptionContainerSurface); -        } -        mCaptionWindowManager.setConfiguration(mTaskInfo.getConfiguration()); -        final WindowManager.LayoutParams lp = -                new WindowManager.LayoutParams( -                        outResult.mCaptionWidth, -                        outResult.mCaptionHeight, -                        TYPE_APPLICATION, -                        FLAG_NOT_FOCUSABLE | FLAG_SPLIT_TOUCH, -                        PixelFormat.TRANSPARENT); -        lp.setTitle("Caption of Task=" + mTaskInfo.taskId); -        lp.setTrustedOverlay(); -        lp.inputFeatures = params.mInputFeatures; -        final Rect localCaptionBounds = new Rect( -                outResult.mCaptionX, -                outResult.mCaptionY, -                outResult.mCaptionX + outResult.mCaptionWidth, -                outResult.mCaptionY + outResult.mCaptionHeight); -        final Region touchableRegion = params.mLimitTouchRegionToSystemAreas -                ? calculateLimitedTouchableRegion(params, localCaptionBounds) -                : null; -        if (mViewHost == null) { -            Trace.beginSection("CaptionViewHostLayout-new"); -            mViewHost = mSurfaceControlViewHostFactory.create(mDecorWindowContext, mDisplay, -                    mCaptionWindowManager); -            if (params.mApplyStartTransactionOnDraw) { -                if (onDrawTransaction == null) { -                    throw new IllegalArgumentException("Trying to sync a null Transaction"); -                } -                mViewHost.getRootSurfaceControl().applyTransactionOnDraw(onDrawTransaction); -            } -            outResult.mRootView.setPadding(0, params.mCaptionTopPadding, 0, 0); -            if (params.mLimitTouchRegionToSystemAreas) { -                mCaptionWindowManager.setTouchRegion(mViewHost, touchableRegion); -            } -            mViewHost.setView(outResult.mRootView, lp); -            Trace.endSection(); -        } else { -            Trace.beginSection("CaptionViewHostLayout-relayout"); -            if (params.mApplyStartTransactionOnDraw) { -                if (onDrawTransaction == null) { -                    throw new IllegalArgumentException("Trying to sync a null Transaction"); -                } -                mViewHost.getRootSurfaceControl().applyTransactionOnDraw(onDrawTransaction); -            } -            outResult.mRootView.setPadding(0, params.mCaptionTopPadding, 0, 0); -            if (params.mLimitTouchRegionToSystemAreas) { -                mCaptionWindowManager.setTouchRegion(mViewHost, touchableRegion); -            } -            mViewHost.relayout(lp); -            Trace.endSection(); -        } -        if (touchableRegion != null) { -            touchableRegion.recycle(); -        } -        Trace.endSection(); // CaptionViewHostLayout -    } -      @NonNull      private Region calculateLimitedTouchableRegion(              RelayoutParams params, @@ -725,6 +753,7 @@ public abstract class WindowDecoration<T extends View & TaskFocusStateConsumer>      @Override      public void close() {          Trace.beginSection("WindowDecoration#close"); +        clearCurrentViewHostRunnable();          mDisplayController.removeDisplayWindowListener(mOnDisplaysChangedListener);          final WindowContainerTransaction wct = mWindowContainerTransactionSupplier.get();          releaseViews(wct); @@ -855,6 +884,7 @@ public abstract class WindowDecoration<T extends View & TaskFocusStateConsumer>          boolean mIsCaptionVisible;          Configuration mWindowDecorConfig; +        boolean mAsyncViewHost;          boolean mApplyStartTransactionOnDraw;          boolean mSetTaskVisibilityPositionAndCrop; @@ -880,6 +910,7 @@ public abstract class WindowDecoration<T extends View & TaskFocusStateConsumer>              mApplyStartTransactionOnDraw = false;              mSetTaskVisibilityPositionAndCrop = false;              mWindowDecorConfig = null; +            mAsyncViewHost = false;              mHasGlobalFocus = false;          } diff --git a/libs/WindowManager/Shell/tests/e2e/desktopmode/flicker-service/src/com/android/wm/shell/flicker/DesktopModeFlickerScenarios.kt b/libs/WindowManager/Shell/tests/e2e/desktopmode/flicker-service/src/com/android/wm/shell/flicker/DesktopModeFlickerScenarios.kt index f6d2cc09d7b0..f4f60d73c25c 100644 --- a/libs/WindowManager/Shell/tests/e2e/desktopmode/flicker-service/src/com/android/wm/shell/flicker/DesktopModeFlickerScenarios.kt +++ b/libs/WindowManager/Shell/tests/e2e/desktopmode/flicker-service/src/com/android/wm/shell/flicker/DesktopModeFlickerScenarios.kt @@ -272,9 +272,11 @@ class DesktopModeFlickerScenarios {                          TaggedCujTransitionMatcher(associatedTransitionRequired = false)                      )                      .build(), -                assertions = AssertionTemplates.DESKTOP_MODE_APP_VISIBILITY_ASSERTIONS + -                        listOf(AppWindowCoversLeftHalfScreenAtEnd(DESKTOP_MODE_APP)) -                            .associateBy({ it }, { AssertionInvocationGroup.BLOCKING }), +                assertions = AssertionTemplates.DESKTOP_MODE_APP_VISIBILITY_ASSERTIONS + listOf( +                    AppWindowCoversLeftHalfScreenAtEnd( +                        DESKTOP_MODE_APP, SNAP_WINDOW_MAX_DIFF_THRESHOLD_RATIO +                    ) +                ).associateBy({ it }, { AssertionInvocationGroup.BLOCKING }),              )          val SNAP_RESIZE_RIGHT_WITH_DRAG = @@ -287,9 +289,11 @@ class DesktopModeFlickerScenarios {                          TaggedCujTransitionMatcher(associatedTransitionRequired = false)                      )                      .build(), -                assertions = AssertionTemplates.DESKTOP_MODE_APP_VISIBILITY_ASSERTIONS + -                        listOf(AppWindowCoversRightHalfScreenAtEnd(DESKTOP_MODE_APP)) -                            .associateBy({ it }, { AssertionInvocationGroup.BLOCKING }), +                assertions = AssertionTemplates.DESKTOP_MODE_APP_VISIBILITY_ASSERTIONS + listOf( +                    AppWindowCoversRightHalfScreenAtEnd( +                        DESKTOP_MODE_APP, SNAP_WINDOW_MAX_DIFF_THRESHOLD_RATIO +                    ) +                ).associateBy({ it }, { AssertionInvocationGroup.BLOCKING }),              )          val SNAP_RESIZE_WITH_DRAG_NON_RESIZABLE = diff --git a/libs/WindowManager/Shell/tests/e2e/splitscreen/scenarios/src/com/android/wm/shell/scenarios/SwitchBackToSplitFromAnotherApp.kt b/libs/WindowManager/Shell/tests/e2e/splitscreen/scenarios/src/com/android/wm/shell/scenarios/SwitchBackToSplitFromAnotherApp.kt index 2ccffa85b5c1..a3d60207a8bd 100644 --- a/libs/WindowManager/Shell/tests/e2e/splitscreen/scenarios/src/com/android/wm/shell/scenarios/SwitchBackToSplitFromAnotherApp.kt +++ b/libs/WindowManager/Shell/tests/e2e/splitscreen/scenarios/src/com/android/wm/shell/scenarios/SwitchBackToSplitFromAnotherApp.kt @@ -66,5 +66,6 @@ constructor(val rotation: Rotation = Rotation.ROTATION_0) {      fun teardown() {          primaryApp.exit(wmHelper)          secondaryApp.exit(wmHelper) +        Utils.resetFreezeRecentTaskList()      }  } diff --git a/libs/WindowManager/Shell/tests/e2e/splitscreen/scenarios/src/com/android/wm/shell/scenarios/SwitchBackToSplitFromHome.kt b/libs/WindowManager/Shell/tests/e2e/splitscreen/scenarios/src/com/android/wm/shell/scenarios/SwitchBackToSplitFromHome.kt index 8673c464ad19..9c7de05563e1 100644 --- a/libs/WindowManager/Shell/tests/e2e/splitscreen/scenarios/src/com/android/wm/shell/scenarios/SwitchBackToSplitFromHome.kt +++ b/libs/WindowManager/Shell/tests/e2e/splitscreen/scenarios/src/com/android/wm/shell/scenarios/SwitchBackToSplitFromHome.kt @@ -65,5 +65,6 @@ constructor(val rotation: Rotation = Rotation.ROTATION_0) {      fun teardown() {          primaryApp.exit(wmHelper)          secondaryApp.exit(wmHelper) +        Utils.resetFreezeRecentTaskList()      }  } diff --git a/libs/WindowManager/Shell/tests/e2e/splitscreen/scenarios/src/com/android/wm/shell/scenarios/SwitchBackToSplitFromRecent.kt b/libs/WindowManager/Shell/tests/e2e/splitscreen/scenarios/src/com/android/wm/shell/scenarios/SwitchBackToSplitFromRecent.kt index 22adf6c9ee2f..9eb29723cc7d 100644 --- a/libs/WindowManager/Shell/tests/e2e/splitscreen/scenarios/src/com/android/wm/shell/scenarios/SwitchBackToSplitFromRecent.kt +++ b/libs/WindowManager/Shell/tests/e2e/splitscreen/scenarios/src/com/android/wm/shell/scenarios/SwitchBackToSplitFromRecent.kt @@ -68,5 +68,6 @@ constructor(val rotation: Rotation = Rotation.ROTATION_0) {      fun teardown() {          primaryApp.exit(wmHelper)          secondaryApp.exit(wmHelper) +        Utils.resetFreezeRecentTaskList()      }  } diff --git a/libs/WindowManager/Shell/tests/e2e/splitscreen/scenarios/src/com/android/wm/shell/scenarios/SwitchBetweenSplitPairs.kt b/libs/WindowManager/Shell/tests/e2e/splitscreen/scenarios/src/com/android/wm/shell/scenarios/SwitchBetweenSplitPairs.kt index 4ded148f6113..d833d91c0b4b 100644 --- a/libs/WindowManager/Shell/tests/e2e/splitscreen/scenarios/src/com/android/wm/shell/scenarios/SwitchBetweenSplitPairs.kt +++ b/libs/WindowManager/Shell/tests/e2e/splitscreen/scenarios/src/com/android/wm/shell/scenarios/SwitchBetweenSplitPairs.kt @@ -68,5 +68,6 @@ constructor(val rotation: Rotation = Rotation.ROTATION_0) {          secondaryApp.exit(wmHelper)          thirdApp.exit(wmHelper)          fourthApp.exit(wmHelper) +        Utils.resetFreezeRecentTaskList()      }  } diff --git a/libs/WindowManager/Shell/tests/e2e/utils/src/com/android/wm/shell/Utils.kt b/libs/WindowManager/Shell/tests/e2e/utils/src/com/android/wm/shell/Utils.kt index c0fafef96775..4a9e73b4af58 100644 --- a/libs/WindowManager/Shell/tests/e2e/utils/src/com/android/wm/shell/Utils.kt +++ b/libs/WindowManager/Shell/tests/e2e/utils/src/com/android/wm/shell/Utils.kt @@ -28,7 +28,10 @@ import android.tools.flicker.rules.ArtifactSaverRule  import android.tools.flicker.rules.ChangeDisplayOrientationRule  import android.tools.flicker.rules.LaunchAppRule  import android.tools.flicker.rules.RemoveAllTasksButHomeRule +import android.util.Log  import androidx.test.platform.app.InstrumentationRegistry +import androidx.test.uiautomator.UiDevice +import java.io.IOException  import org.junit.rules.RuleChain  object Utils { @@ -52,4 +55,17 @@ object Utils {              .around(PressHomeRule())              .around(EnsureDeviceSettingsRule())      } + +    /** +     * Resets the frozen recent tasks list (ie. commits the quickswitch to the current task and +     * reorders the current task to the end of the recents list). +     */ +    fun resetFreezeRecentTaskList() { +        try { +            UiDevice.getInstance(instrumentation) +                .executeShellCommand("wm reset-freeze-recent-tasks") +        } catch (e: IOException) { +            Log.e("TestUtils", "Failed to reset frozen recent tasks list", e) +        } +    }  } diff --git a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/windowdecor/DesktopModeWindowDecorationTests.java b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/windowdecor/DesktopModeWindowDecorationTests.java index 0bef41910146..f4cd8e0d2b49 100644 --- a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/windowdecor/DesktopModeWindowDecorationTests.java +++ b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/windowdecor/DesktopModeWindowDecorationTests.java @@ -51,7 +51,6 @@ import static org.mockito.Mockito.never;  import static org.mockito.Mockito.spy;  import static org.mockito.Mockito.verify;  import static org.mockito.Mockito.when; -import static org.mockito.kotlin.VerificationKt.times;  import android.app.ActivityManager;  import android.app.assist.AssistContent; @@ -1052,61 +1051,70 @@ public class DesktopModeWindowDecorationTests extends ShellTestCase {      }      @Test -    public void relayout_fullscreenTask_appliesTransactionImmediately() { +    public void updateRelayoutParams_handle_requestsAsyncViewHostRendering() {          final ActivityManager.RunningTaskInfo taskInfo = createTaskInfo(/* visible= */ true); -        final DesktopModeWindowDecoration spyWindowDecor = spy(createWindowDecoration(taskInfo)); +        // Make the task fullscreen so that its decoration is an App Handle.          taskInfo.configuration.windowConfiguration.setWindowingMode(WINDOWING_MODE_FULLSCREEN); +        final RelayoutParams relayoutParams = new RelayoutParams(); -        spyWindowDecor.relayout(taskInfo, true /* hasGlobalFocus */, mExclusionRegion); +        DesktopModeWindowDecoration.updateRelayoutParams( +                relayoutParams, +                mTestableContext, +                taskInfo, +                mMockSplitScreenController, +                /* applyStartTransactionOnDraw= */ true, +                /* shouldSetTaskPositionAndCrop= */ false, +                /* isStatusBarVisible= */ true, +                /* isKeyguardVisibleAndOccluded= */ false, +                /* inFullImmersiveMode= */ false, +                new InsetsState(), +                /* hasGlobalFocus= */ true, +                mExclusionRegion); -        verify(mMockTransaction).apply(); -        verify(mMockRootSurfaceControl, never()).applyTransactionOnDraw(any()); +        // App Handles don't need to be rendered in sync with the task animation, per UX. +        assertThat(relayoutParams.mAsyncViewHost).isTrue();      }      @Test -    @Ignore("TODO(b/367235906): Due to MONITOR_INPUT permission error") -    public void relayout_freeformTask_appliesTransactionOnDraw() { +    public void updateRelayoutParams_header_requestsSyncViewHostRendering() {          final ActivityManager.RunningTaskInfo taskInfo = createTaskInfo(/* visible= */ true); -        final DesktopModeWindowDecoration spyWindowDecor = spy(createWindowDecoration(taskInfo)); +        // Make the task freeform so that its decoration is an App Header.          taskInfo.configuration.windowConfiguration.setWindowingMode(WINDOWING_MODE_FREEFORM); -        // Make non-resizable to avoid dealing with input-permissions (MONITOR_INPUT) -        taskInfo.isResizeable = false; - -        spyWindowDecor.relayout(taskInfo, true /* hasGlobalFocus */, mExclusionRegion); - -        verify(mMockTransaction, never()).apply(); -        verify(mMockRootSurfaceControl).applyTransactionOnDraw(mMockTransaction); -    } - -    @Test -    public void relayout_fullscreenTask_doesNotCreateViewHostImmediately() { -        final ActivityManager.RunningTaskInfo taskInfo = createTaskInfo(/* visible= */ true); -        final DesktopModeWindowDecoration spyWindowDecor = spy(createWindowDecoration(taskInfo)); -        taskInfo.configuration.windowConfiguration.setWindowingMode(WINDOWING_MODE_FULLSCREEN); +        final RelayoutParams relayoutParams = new RelayoutParams(); -        spyWindowDecor.relayout(taskInfo, true /* hasGlobalFocus */, mExclusionRegion); +        DesktopModeWindowDecoration.updateRelayoutParams( +                relayoutParams, +                mTestableContext, +                taskInfo, +                mMockSplitScreenController, +                /* applyStartTransactionOnDraw= */ true, +                /* shouldSetTaskPositionAndCrop= */ false, +                /* isStatusBarVisible= */ true, +                /* isKeyguardVisibleAndOccluded= */ false, +                /* inFullImmersiveMode= */ false, +                new InsetsState(), +                /* hasGlobalFocus= */ true, +                mExclusionRegion); -        verify(mMockSurfaceControlViewHostFactory, never()).create(any(), any(), any()); +        // App Headers must be rendered in sync with the task animation, so it cannot be delayed. +        assertThat(relayoutParams.mAsyncViewHost).isFalse();      }      @Test -    public void relayout_fullscreenTask_postsViewHostCreation() { +    public void relayout_fullscreenTask_appliesTransactionImmediately() {          final ActivityManager.RunningTaskInfo taskInfo = createTaskInfo(/* visible= */ true);          final DesktopModeWindowDecoration spyWindowDecor = spy(createWindowDecoration(taskInfo));          taskInfo.configuration.windowConfiguration.setWindowingMode(WINDOWING_MODE_FULLSCREEN); -        ArgumentCaptor<Runnable> runnableArgument = ArgumentCaptor.forClass(Runnable.class);          spyWindowDecor.relayout(taskInfo, true /* hasGlobalFocus */, mExclusionRegion); -        // Once for view host, the other for the AppHandle input layer. -        verify(mMockHandler, times(2)).post(runnableArgument.capture()); -        runnableArgument.getValue().run(); -        verify(mMockSurfaceControlViewHostFactory).create(any(), any(), any()); +        verify(mMockTransaction).apply(); +        verify(mMockRootSurfaceControl, never()).applyTransactionOnDraw(any());      }      @Test      @Ignore("TODO(b/367235906): Due to MONITOR_INPUT permission error") -    public void relayout_freeformTask_createsViewHostImmediately() { +    public void relayout_freeformTask_appliesTransactionOnDraw() {          final ActivityManager.RunningTaskInfo taskInfo = createTaskInfo(/* visible= */ true);          final DesktopModeWindowDecoration spyWindowDecor = spy(createWindowDecoration(taskInfo));          taskInfo.configuration.windowConfiguration.setWindowingMode(WINDOWING_MODE_FREEFORM); @@ -1115,38 +1123,8 @@ public class DesktopModeWindowDecorationTests extends ShellTestCase {          spyWindowDecor.relayout(taskInfo, true /* hasGlobalFocus */, mExclusionRegion); -        verify(mMockSurfaceControlViewHostFactory).create(any(), any(), any()); -        verify(mMockHandler, never()).post(any()); -    } - -    @Test -    public void relayout_removesExistingHandlerCallback() { -        final ActivityManager.RunningTaskInfo taskInfo = createTaskInfo(/* visible= */ true); -        final DesktopModeWindowDecoration spyWindowDecor = spy(createWindowDecoration(taskInfo)); -        taskInfo.configuration.windowConfiguration.setWindowingMode(WINDOWING_MODE_FULLSCREEN); -        ArgumentCaptor<Runnable> runnableArgument = ArgumentCaptor.forClass(Runnable.class); -        spyWindowDecor.relayout(taskInfo, true /* hasGlobalFocus */, mExclusionRegion); -        // Once for view host, the other for the AppHandle input layer. -        verify(mMockHandler, times(2)).post(runnableArgument.capture()); - -        spyWindowDecor.relayout(taskInfo, true /* hasGlobalFocus */, mExclusionRegion); - -        verify(mMockHandler).removeCallbacks(runnableArgument.getValue()); -    } - -    @Test -    public void close_removesExistingHandlerCallback() { -        final ActivityManager.RunningTaskInfo taskInfo = createTaskInfo(/* visible= */ true); -        final DesktopModeWindowDecoration spyWindowDecor = spy(createWindowDecoration(taskInfo)); -        taskInfo.configuration.windowConfiguration.setWindowingMode(WINDOWING_MODE_FULLSCREEN); -        ArgumentCaptor<Runnable> runnableArgument = ArgumentCaptor.forClass(Runnable.class); -        spyWindowDecor.relayout(taskInfo, true /* hasGlobalFocus */, mExclusionRegion); -        // Once for view host, the other for the AppHandle input layer. -        verify(mMockHandler, times(2)).post(runnableArgument.capture()); - -        spyWindowDecor.close(); - -        verify(mMockHandler).removeCallbacks(runnableArgument.getValue()); +        verify(mMockTransaction, never()).apply(); +        verify(mMockRootSurfaceControl).applyTransactionOnDraw(mMockTransaction);      }      @Test diff --git a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/windowdecor/WindowDecorationTests.java b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/windowdecor/WindowDecorationTests.java index 04b2be0b1a25..3a82ff670050 100644 --- a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/windowdecor/WindowDecorationTests.java +++ b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/windowdecor/WindowDecorationTests.java @@ -61,6 +61,7 @@ import android.graphics.Color;  import android.graphics.Point;  import android.graphics.Rect;  import android.graphics.Region; +import android.os.Handler;  import android.platform.test.flag.junit.SetFlagsRule;  import android.testing.AndroidTestingRunner;  import android.util.DisplayMetrics; @@ -143,6 +144,8 @@ public class WindowDecorationTests extends ShellTestCase {      private SurfaceControl mMockTaskSurface;      @Mock      private DesktopModeEventLogger mDesktopModeEventLogger; +    @Mock +    private Handler mMockHandler;      private final List<SurfaceControl.Transaction> mMockSurfaceControlTransactions =              new ArrayList<>(); @@ -901,37 +904,71 @@ public class WindowDecorationTests extends ShellTestCase {      }      @Test -    public void updateViewHost_applyTransactionOnDrawIsTrue_surfaceControlIsUpdated() { +    public void relayout_applyTransactionOnDrawIsTrue_updatesViewWithDrawTransaction() {          final TestWindowDecoration windowDecor = createWindowDecoration( -                new TestRunningTaskInfoBuilder().build()); +                new TestRunningTaskInfoBuilder() +                        .setVisible(true) +                        .setWindowingMode(WINDOWING_MODE_FREEFORM) +                        .build());          mRelayoutParams.mApplyStartTransactionOnDraw = true;          mRelayoutResult.mRootView = mMockView; -        windowDecor.updateViewHost(mRelayoutParams, mMockSurfaceControlStartT, mRelayoutResult); +        windowDecor.relayout( +                windowDecor.mTaskInfo, +                /* hasGlobalFocus= */ true, +                Region.obtain());          verify(mMockRootSurfaceControl).applyTransactionOnDraw(mMockSurfaceControlStartT); +        windowDecor.close();      }      @Test -    public void updateViewHost_nullDrawTransaction_applyTransactionOnDrawIsTrue_throwsException() { +    public void relayout_applyTransactionOnDrawIsTrue_asyncViewHostRendering_throwsException() {          final TestWindowDecoration windowDecor = createWindowDecoration( -                new TestRunningTaskInfoBuilder().build()); +                new TestRunningTaskInfoBuilder() +                        .setVisible(true) +                        .setWindowingMode(WINDOWING_MODE_FULLSCREEN) +                        .build());          mRelayoutParams.mApplyStartTransactionOnDraw = true; +        mRelayoutParams.mAsyncViewHost = true;          mRelayoutResult.mRootView = mMockView; +        windowDecor.relayout( +                windowDecor.mTaskInfo, +                /* hasGlobalFocus= */ true, +                Region.obtain()); +        final ArgumentCaptor<Runnable> updateViewHostCaptor = +                ArgumentCaptor.forClass(Runnable.class); +        verify(mMockHandler).post(updateViewHostCaptor.capture());          assertThrows(IllegalArgumentException.class, -                () -> windowDecor.updateViewHost( -                        mRelayoutParams, null /* onDrawTransaction */, mRelayoutResult)); +                () -> updateViewHostCaptor.getValue().run()); +        windowDecor.close();      }      @Test -    public void updateViewHost_nullDrawTransaction_applyTransactionOnDrawIsFalse_doesNotThrow() { +    public void relayout_asyncViewHostRendering() {          final TestWindowDecoration windowDecor = createWindowDecoration( -                new TestRunningTaskInfoBuilder().build()); +                new TestRunningTaskInfoBuilder() +                        .setVisible(true) +                        .setWindowingMode(WINDOWING_MODE_FULLSCREEN) +                        .build());          mRelayoutParams.mApplyStartTransactionOnDraw = false; +        mRelayoutParams.mAsyncViewHost = true;          mRelayoutResult.mRootView = mMockView; -        windowDecor.updateViewHost(mRelayoutParams, null /* onDrawTransaction */, mRelayoutResult); +        windowDecor.relayout( +                windowDecor.mTaskInfo, +                /* hasGlobalFocus= */ true, +                Region.obtain()); + +        final ArgumentCaptor<Runnable> updateViewHostCaptor = +                ArgumentCaptor.forClass(Runnable.class); +        verify(mMockHandler).post(updateViewHostCaptor.capture()); + +        updateViewHostCaptor.getValue().run(); + +        verify(mMockSurfaceControlViewHost).setView(eq(mMockView), any()); +        windowDecor.close();      }      @Test @@ -1009,7 +1046,7 @@ public class WindowDecorationTests extends ShellTestCase {      private TestWindowDecoration createWindowDecoration(ActivityManager.RunningTaskInfo taskInfo) {          return new TestWindowDecoration(mContext, mContext, mMockDisplayController, -                mMockShellTaskOrganizer, taskInfo, mMockTaskSurface, +                mMockShellTaskOrganizer, mMockHandler, taskInfo, mMockTaskSurface,                  new MockObjectSupplier<>(mMockSurfaceControlBuilders,                          () -> createMockSurfaceControlBuilder(mock(SurfaceControl.class))),                  new MockObjectSupplier<>(mMockSurfaceControlTransactions, @@ -1049,7 +1086,9 @@ public class WindowDecorationTests extends ShellTestCase {      private class TestWindowDecoration extends WindowDecoration<TestView> {          TestWindowDecoration(Context context, @NonNull Context userContext,                  DisplayController displayController, -                ShellTaskOrganizer taskOrganizer, ActivityManager.RunningTaskInfo taskInfo, +                ShellTaskOrganizer taskOrganizer, +                Handler handler, +                ActivityManager.RunningTaskInfo taskInfo,                  SurfaceControl taskSurface,                  Supplier<SurfaceControl.Builder> surfaceControlBuilderSupplier,                  Supplier<SurfaceControl.Transaction> surfaceControlTransactionSupplier, @@ -1057,8 +1096,8 @@ public class WindowDecorationTests extends ShellTestCase {                  Supplier<SurfaceControl> surfaceControlSupplier,                  SurfaceControlViewHostFactory surfaceControlViewHostFactory,                  DesktopModeEventLogger desktopModeEventLogger) { -            super(context, userContext, displayController, taskOrganizer, taskInfo, taskSurface, -                    surfaceControlBuilderSupplier, surfaceControlTransactionSupplier, +            super(context, userContext, displayController, taskOrganizer, handler, taskInfo, +                    taskSurface, surfaceControlBuilderSupplier, surfaceControlTransactionSupplier,                      windowContainerTransactionSupplier, surfaceControlSupplier,                      surfaceControlViewHostFactory, desktopModeEventLogger);          } @@ -1071,8 +1110,12 @@ public class WindowDecorationTests extends ShellTestCase {          @Override          void relayout(ActivityManager.RunningTaskInfo taskInfo, boolean hasGlobalFocus,                  @NonNull Region displayExclusionRegion) { -            relayout(taskInfo, false /* applyStartTransactionOnDraw */, hasGlobalFocus, -                    displayExclusionRegion); +            mRelayoutParams.mRunningTaskInfo = taskInfo; +            mRelayoutParams.mHasGlobalFocus = hasGlobalFocus; +            mRelayoutParams.mDisplayExclusionRegion.set(displayExclusionRegion); +            mRelayoutParams.mLayoutResId = R.layout.caption_layout; +            relayout(mRelayoutParams, mMockSurfaceControlStartT, mMockSurfaceControlFinishT, +                    mMockWindowContainerTransaction, mMockView, mRelayoutResult);          }          @Override @@ -1096,13 +1139,8 @@ public class WindowDecorationTests extends ShellTestCase {          void relayout(ActivityManager.RunningTaskInfo taskInfo,                  boolean applyStartTransactionOnDraw, boolean hasGlobalFocus,                  @NonNull Region displayExclusionRegion) { -            mRelayoutParams.mRunningTaskInfo = taskInfo;              mRelayoutParams.mApplyStartTransactionOnDraw = applyStartTransactionOnDraw; -            mRelayoutParams.mLayoutResId = R.layout.caption_layout; -            mRelayoutParams.mHasGlobalFocus = hasGlobalFocus; -            mRelayoutParams.mDisplayExclusionRegion.set(displayExclusionRegion); -            relayout(mRelayoutParams, mMockSurfaceControlStartT, mMockSurfaceControlFinishT, -                    mMockWindowContainerTransaction, mMockView, mRelayoutResult); +            relayout(taskInfo, hasGlobalFocus, displayExclusionRegion);          }          private AdditionalViewContainer addTestViewContainer() { diff --git a/libs/androidfw/ApkAssets.cpp b/libs/androidfw/ApkAssets.cpp index 49254d1c6f6e..dbb891455ddd 100644 --- a/libs/androidfw/ApkAssets.cpp +++ b/libs/androidfw/ApkAssets.cpp @@ -40,20 +40,21 @@ ApkAssets::ApkAssets(PrivateConstructorUtil, std::unique_ptr<Asset> resources_as  }  ApkAssetsPtr ApkAssets::Load(const std::string& path, package_property_t flags) { -  return Load(ZipAssetsProvider::Create(path, flags), flags); +  return LoadImpl(ZipAssetsProvider::Create(path, flags), flags);  }  ApkAssetsPtr ApkAssets::LoadFromFd(base::unique_fd fd, const std::string& debug_name,                                     package_property_t flags, off64_t offset, off64_t len) { -  return Load(ZipAssetsProvider::Create(std::move(fd), debug_name, offset, len), flags); +  return LoadImpl(ZipAssetsProvider::Create(std::move(fd), debug_name, offset, len), flags);  } -ApkAssetsPtr ApkAssets::Load(std::unique_ptr<AssetsProvider> assets, package_property_t flags) { +ApkAssetsPtr ApkAssets::LoadImpl(std::unique_ptr<AssetsProvider>&& assets, +                                 package_property_t flags) {    return LoadImpl(std::move(assets), flags, nullptr /* idmap_asset */, nullptr /* loaded_idmap */);  } -ApkAssetsPtr ApkAssets::LoadTable(std::unique_ptr<Asset> resources_asset, -                                  std::unique_ptr<AssetsProvider> assets, +ApkAssetsPtr ApkAssets::LoadTable(std::unique_ptr<Asset>&& resources_asset, +                                  std::unique_ptr<AssetsProvider>&& assets,                                    package_property_t flags) {    if (resources_asset == nullptr) {      return {}; @@ -97,10 +98,10 @@ ApkAssetsPtr ApkAssets::LoadOverlay(const std::string& idmap_path, package_prope                    std::move(loaded_idmap));  } -ApkAssetsPtr ApkAssets::LoadImpl(std::unique_ptr<AssetsProvider> assets, +ApkAssetsPtr ApkAssets::LoadImpl(std::unique_ptr<AssetsProvider>&& assets,                                   package_property_t property_flags, -                                 std::unique_ptr<Asset> idmap_asset, -                                 std::unique_ptr<LoadedIdmap> loaded_idmap) { +                                 std::unique_ptr<Asset>&& idmap_asset, +                                 std::unique_ptr<LoadedIdmap>&& loaded_idmap) {    if (assets == nullptr) {      return {};    } @@ -119,11 +120,11 @@ ApkAssetsPtr ApkAssets::LoadImpl(std::unique_ptr<AssetsProvider> assets,                    std::move(idmap_asset), std::move(loaded_idmap));  } -ApkAssetsPtr ApkAssets::LoadImpl(std::unique_ptr<Asset> resources_asset, -                                 std::unique_ptr<AssetsProvider> assets, +ApkAssetsPtr ApkAssets::LoadImpl(std::unique_ptr<Asset>&& resources_asset, +                                 std::unique_ptr<AssetsProvider>&& assets,                                   package_property_t property_flags, -                                 std::unique_ptr<Asset> idmap_asset, -                                 std::unique_ptr<LoadedIdmap> loaded_idmap) { +                                 std::unique_ptr<Asset>&& idmap_asset, +                                 std::unique_ptr<LoadedIdmap>&& loaded_idmap) {    if (assets == nullptr ) {      return {};    } diff --git a/libs/androidfw/include/androidfw/ApkAssets.h b/libs/androidfw/include/androidfw/ApkAssets.h index 1fa67528c78b..231808beb718 100644 --- a/libs/androidfw/include/androidfw/ApkAssets.h +++ b/libs/androidfw/include/androidfw/ApkAssets.h @@ -47,13 +47,37 @@ class ApkAssets : public RefBase {                                   package_property_t flags = 0U, off64_t offset = 0,                                   off64_t len = AssetsProvider::kUnknownLength); +  //    // Creates an ApkAssets from an AssetProvider. -  // The ApkAssets will take care of destroying the AssetsProvider when it is destroyed. -  static ApkAssetsPtr Load(std::unique_ptr<AssetsProvider> assets, package_property_t flags = 0U); +  // The ApkAssets will take care of destroying the AssetsProvider when it is destroyed; +  // the original argument is not moved from if loading fails. +  // +  // Note: this function takes care of the case when you pass a move(unique_ptr<Derived>) +  //    that would create a temporary unique_ptr<AssetsProvider> by moving your pointer into +  //    it before the function call, making it impossible to not move from the parameter +  //    on loading failure. The two overloads take care of moving the pointer back if needed. +  // + +  template <class T> +  static ApkAssetsPtr Load(std::unique_ptr<T>&& assets, package_property_t flags = 0U) +      requires(std::is_same_v<T, AssetsProvider>) { +    return LoadImpl(std::move(assets), flags); +  } + +  template <class T> +  static ApkAssetsPtr Load(std::unique_ptr<T>&& assets, package_property_t flags = 0U) +      requires(!std::is_same_v<T, AssetsProvider> && std::is_base_of_v<AssetsProvider, T>) { +    std::unique_ptr<AssetsProvider> base_assets(std::move(assets)); +    auto res = LoadImpl(std::move(base_assets), flags); +    if (!res) { +      assets.reset(static_cast<T*>(base_assets.release())); +    } +    return res; +  }    // Creates an ApkAssets from the given asset file representing a resources.arsc. -  static ApkAssetsPtr LoadTable(std::unique_ptr<Asset> resources_asset, -                                std::unique_ptr<AssetsProvider> assets, +  static ApkAssetsPtr LoadTable(std::unique_ptr<Asset>&& resources_asset, +                                std::unique_ptr<AssetsProvider>&& assets,                                  package_property_t flags = 0U);    // Creates an ApkAssets from an IDMAP, which contains the original APK path, and the overlay @@ -94,17 +118,29 @@ class ApkAssets : public RefBase {    bool IsUpToDate() const; +  // DANGER! +  // This is a destructive method that rips the assets provider out of ApkAssets object. +  // It is only useful when one knows this assets object can't be used anymore, and they +  // need the underlying assets provider back (e.g. when initialization fails for some +  // reason). +  std::unique_ptr<AssetsProvider> TakeAssetsProvider() && { +    return std::move(assets_provider_); +  } +   private: -  static ApkAssetsPtr LoadImpl(std::unique_ptr<AssetsProvider> assets, +  static ApkAssetsPtr LoadImpl(std::unique_ptr<AssetsProvider>&& assets,                                 package_property_t property_flags, -                               std::unique_ptr<Asset> idmap_asset, -                               std::unique_ptr<LoadedIdmap> loaded_idmap); +                               std::unique_ptr<Asset>&& idmap_asset, +                               std::unique_ptr<LoadedIdmap>&& loaded_idmap); -  static ApkAssetsPtr LoadImpl(std::unique_ptr<Asset> resources_asset, -                               std::unique_ptr<AssetsProvider> assets, +  static ApkAssetsPtr LoadImpl(std::unique_ptr<Asset>&& resources_asset, +                               std::unique_ptr<AssetsProvider>&& assets,                                 package_property_t property_flags, -                               std::unique_ptr<Asset> idmap_asset, -                               std::unique_ptr<LoadedIdmap> loaded_idmap); +                               std::unique_ptr<Asset>&& idmap_asset, +                               std::unique_ptr<LoadedIdmap>&& loaded_idmap); + +  static ApkAssetsPtr LoadImpl(std::unique_ptr<AssetsProvider>&& assets, +                               package_property_t flags = 0U);    // Allows us to make it possible to call make_shared from inside the class but still keeps the    // ctor 'private' for all means and purposes. diff --git a/libs/androidfw/tests/ApkAssets_test.cpp b/libs/androidfw/tests/ApkAssets_test.cpp index 70326b71da28..c36d9908032f 100644 --- a/libs/androidfw/tests/ApkAssets_test.cpp +++ b/libs/androidfw/tests/ApkAssets_test.cpp @@ -28,6 +28,7 @@ using ::android::base::unique_fd;  using ::com::android::basic::R;  using ::testing::Eq;  using ::testing::Ge; +using ::testing::IsNull;  using ::testing::NotNull;  using ::testing::SizeIs;  using ::testing::StrEq; @@ -108,4 +109,26 @@ TEST(ApkAssetsTest, OpenUncompressedAssetFd) {    EXPECT_THAT(buffer, StrEq("This should be uncompressed.\n\n"));  } +TEST(ApkAssetsTest, TakeAssetsProviderNotCrashing) { +  // Make sure the apk assets object can survive taking its assets provider and doesn't crash +  // the process. +  { +    auto loaded_apk = ApkAssets::Load(GetTestDataPath() + "/basic/basic.apk"); +    ASSERT_THAT(loaded_apk, NotNull()); + +    auto provider = std::move(*loaded_apk).TakeAssetsProvider(); +    ASSERT_THAT(provider, NotNull()); +  } +  // If this test doesn't crash by this point we're all good. +} + +TEST(ApkAssetsTest, AssetsProviderNotMovedOnError) { +  auto assets_provider +      = ZipAssetsProvider::Create(GetTestDataPath() + "/bad/bad.apk", 0); +  ASSERT_THAT(assets_provider, NotNull()); +  auto loaded_apk = ApkAssets::Load(std::move(assets_provider)); +  ASSERT_THAT(loaded_apk, IsNull()); +  ASSERT_THAT(assets_provider, NotNull()); +} +  }  // namespace android diff --git a/libs/androidfw/tests/data/bad/bad.apk b/libs/androidfw/tests/data/bad/bad.apk Binary files differnew file mode 100644 index 000000000000..3226bcd52e99 --- /dev/null +++ b/libs/androidfw/tests/data/bad/bad.apk diff --git a/libs/input/MouseCursorController.cpp b/libs/input/MouseCursorController.cpp index 28d96e3e5bb1..65663d065b8e 100644 --- a/libs/input/MouseCursorController.cpp +++ b/libs/input/MouseCursorController.cpp @@ -49,8 +49,7 @@ MouseCursorController::MouseCursorController(PointerControllerContext& context)      mLocked.lastFrameUpdatedTime = 0;      mLocked.pointerFadeDirection = 0; -    mLocked.pointerX = 0; -    mLocked.pointerY = 0; +    mLocked.pointerPosition = {0, 0};      mLocked.pointerAlpha = 0.0f; // pointer is initially faded      mLocked.pointerSprite = mContext.getSpriteController().createSprite();      mLocked.updatePointerIcon = false; @@ -66,11 +65,11 @@ MouseCursorController::~MouseCursorController() {      mLocked.pointerSprite.clear();  } -FloatPoint MouseCursorController::move(float deltaX, float deltaY) { +vec2 MouseCursorController::move(vec2 delta) {  #if DEBUG_MOUSE_CURSOR_UPDATES      ALOGD("Move pointer by deltaX=%0.3f, deltaY=%0.3f", deltaX, deltaY);  #endif -    if (deltaX == 0.0f && deltaY == 0.0f) { +    if (delta.x == 0.0f && delta.y == 0.0f) {          return {0, 0};      } @@ -78,19 +77,19 @@ FloatPoint MouseCursorController::move(float deltaX, float deltaY) {      // if there's another display on the other side of the transition. At this point we still need      // to move the cursor to the boundary.      std::scoped_lock lock(mLock); -    const FloatPoint position{mLocked.pointerX + deltaX, mLocked.pointerY + deltaY}; -    setPositionLocked(position.x, position.y); +    const vec2 targetPosition = mLocked.pointerPosition + delta; +    setPositionLocked(targetPosition);      // The amount of the delta that was not consumed as a result of the cursor      // hitting the edge of the display. -    return {position.x - mLocked.pointerX, position.y - mLocked.pointerY}; +    return targetPosition - mLocked.pointerPosition;  } -void MouseCursorController::setPosition(float x, float y) { +void MouseCursorController::setPosition(vec2 position) {  #if DEBUG_MOUSE_CURSOR_UPDATES      ALOGD("Set pointer position to x=%0.3f, y=%0.3f", x, y);  #endif      std::scoped_lock lock(mLock); -    setPositionLocked(x, y); +    setPositionLocked(position);  }  FloatRect MouseCursorController::getBoundsLocked() REQUIRES(mLock) { @@ -105,21 +104,21 @@ FloatRect MouseCursorController::getBoundsLocked() REQUIRES(mLock) {      };  } -void MouseCursorController::setPositionLocked(float x, float y) REQUIRES(mLock) { +void MouseCursorController::setPositionLocked(vec2 position) REQUIRES(mLock) {      const auto& v = mLocked.viewport;      if (!v.isValid()) return;      const FloatRect bounds = getBoundsLocked(); -    mLocked.pointerX = std::max(bounds.left, std::min(bounds.right, x)); -    mLocked.pointerY = std::max(bounds.top, std::min(bounds.bottom, y)); +    mLocked.pointerPosition.x = std::max(bounds.left, std::min(bounds.right, position.x)); +    mLocked.pointerPosition.y = std::max(bounds.top, std::min(bounds.bottom, position.y));      updatePointerLocked();  } -FloatPoint MouseCursorController::getPosition() const { +vec2 MouseCursorController::getPosition() const {      std::scoped_lock lock(mLock); -    return {mLocked.pointerX, mLocked.pointerY}; +    return mLocked.pointerPosition;  }  ui::LogicalDisplayId MouseCursorController::getDisplayId() const { @@ -221,20 +220,21 @@ void MouseCursorController::setDisplayViewport(const DisplayViewport& viewport,          if (viewport.isValid()) {              // Use integer coordinates as the starting point for the cursor location.              // We usually expect display sizes to be even numbers, so the flooring is precautionary. -            mLocked.pointerX = std::floor((viewport.logicalLeft + viewport.logicalRight) / 2); -            mLocked.pointerY = std::floor((viewport.logicalTop + viewport.logicalBottom) / 2); +            mLocked.pointerPosition.x = +                    std::floor((viewport.logicalLeft + viewport.logicalRight) / 2); +            mLocked.pointerPosition.y = +                    std::floor((viewport.logicalTop + viewport.logicalBottom) / 2);              // Reload icon resources for density may be changed.              loadResourcesLocked(getAdditionalMouseResources);          } else { -            mLocked.pointerX = 0; -            mLocked.pointerY = 0; +            mLocked.pointerPosition = {0, 0};          }      } else if (oldViewport.orientation != viewport.orientation) {          // Apply offsets to convert from the pixel top-left corner position to the pixel center.          // This creates an invariant frame of reference that we can easily rotate when          // taking into account that the pointer may be located at fractional pixel offsets. -        float x = mLocked.pointerX + 0.5f; -        float y = mLocked.pointerY + 0.5f; +        float x = mLocked.pointerPosition.x + 0.5f; +        float y = mLocked.pointerPosition.y + 0.5f;          float temp;          // Undo the previous rotation. @@ -279,8 +279,8 @@ void MouseCursorController::setDisplayViewport(const DisplayViewport& viewport,          // Apply offsets to convert from the pixel center to the pixel top-left corner position          // and save the results. -        mLocked.pointerX = x - 0.5f; -        mLocked.pointerY = y - 0.5f; +        mLocked.pointerPosition.x = x - 0.5f; +        mLocked.pointerPosition.y = y - 0.5f;      }      updatePointerLocked(); @@ -366,7 +366,7 @@ void MouseCursorController::updatePointerLocked() REQUIRES(mLock) {      spriteController.openTransaction();      mLocked.pointerSprite->setLayer(Sprite::BASE_LAYER_POINTER); -    mLocked.pointerSprite->setPosition(mLocked.pointerX, mLocked.pointerY); +    mLocked.pointerSprite->setPosition(mLocked.pointerPosition.x, mLocked.pointerPosition.y);      mLocked.pointerSprite->setDisplayId(mLocked.viewport.displayId);      mLocked.pointerSprite->setSkipScreenshot(mLocked.skipScreenshot); diff --git a/libs/input/MouseCursorController.h b/libs/input/MouseCursorController.h index e14a55d938e6..7c674b53d620 100644 --- a/libs/input/MouseCursorController.h +++ b/libs/input/MouseCursorController.h @@ -41,9 +41,9 @@ public:      ~MouseCursorController();      // Move the pointer and return unconsumed delta -    FloatPoint move(float deltaX, float deltaY); -    void setPosition(float x, float y); -    FloatPoint getPosition() const; +    vec2 move(vec2 delta); +    void setPosition(vec2 position); +    vec2 getPosition() const;      ui::LogicalDisplayId getDisplayId() const;      void fade(PointerControllerInterface::Transition transition);      void unfade(PointerControllerInterface::Transition transition); @@ -81,8 +81,7 @@ private:          nsecs_t lastFrameUpdatedTime;          int32_t pointerFadeDirection; -        float pointerX; -        float pointerY; +        vec2 pointerPosition;          float pointerAlpha;          sp<Sprite> pointerSprite;          SpriteIcon pointerIcon; @@ -101,7 +100,7 @@ private:      } mLocked GUARDED_BY(mLock); -    void setPositionLocked(float x, float y); +    void setPositionLocked(vec2 position);      void updatePointerLocked(); diff --git a/libs/input/PointerController.cpp b/libs/input/PointerController.cpp index a713f1d1ed4d..0b81211ee666 100644 --- a/libs/input/PointerController.cpp +++ b/libs/input/PointerController.cpp @@ -138,7 +138,7 @@ std::mutex& PointerController::getLock() const {      return mDisplayInfoListener->mLock;  } -FloatPoint PointerController::move(float deltaX, float deltaY) { +vec2 PointerController::move(float deltaX, float deltaY) {      const ui::LogicalDisplayId displayId = mCursorController.getDisplayId();      ui::Transform transform;      { @@ -147,10 +147,7 @@ FloatPoint PointerController::move(float deltaX, float deltaY) {      }      const vec2 transformed = transformWithoutTranslation(transform, {deltaX, deltaY}); - -    const FloatPoint unconsumedDelta = mCursorController.move(transformed.x, transformed.y); -    return FloatPoint(transformWithoutTranslation(transform.inverse(), -                                                  {unconsumedDelta.x, unconsumedDelta.y})); +    return transformWithoutTranslation(transform.inverse(), mCursorController.move(transformed));  }  void PointerController::setPosition(float x, float y) { @@ -161,16 +158,15 @@ void PointerController::setPosition(float x, float y) {          const auto& transform = getTransformForDisplayLocked(displayId);          transformed = transform.transform(x, y);      } -    mCursorController.setPosition(transformed.x, transformed.y); +    mCursorController.setPosition(transformed);  } -FloatPoint PointerController::getPosition() const { +vec2 PointerController::getPosition() const {      const ui::LogicalDisplayId displayId = mCursorController.getDisplayId();      const auto p = mCursorController.getPosition();      {          std::scoped_lock lock(getLock()); -        const auto& transform = getTransformForDisplayLocked(displayId); -        return FloatPoint{transform.inverse().transform(p.x, p.y)}; +        return getTransformForDisplayLocked(displayId).inverse().transform(p.x, p.y);      }  } diff --git a/libs/input/PointerController.h b/libs/input/PointerController.h index 8b33190cd35f..afd7215c7fba 100644 --- a/libs/input/PointerController.h +++ b/libs/input/PointerController.h @@ -51,9 +51,9 @@ public:      ~PointerController() override; -    FloatPoint move(float deltaX, float deltaY) override; +    vec2 move(float deltaX, float deltaY) override;      void setPosition(float x, float y) override; -    FloatPoint getPosition() const override; +    vec2 getPosition() const override;      ui::LogicalDisplayId getDisplayId() const override;      void fade(Transition transition) override;      void unfade(Transition transition) override; @@ -166,13 +166,13 @@ public:      ~TouchPointerController() override; -    FloatPoint move(float, float) override { +    vec2 move(float, float) override {          LOG_ALWAYS_FATAL("Should not be called");      }      void setPosition(float, float) override {          LOG_ALWAYS_FATAL("Should not be called");      } -    FloatPoint getPosition() const override { +    vec2 getPosition() const override {          LOG_ALWAYS_FATAL("Should not be called");      }      ui::LogicalDisplayId getDisplayId() const override { diff --git a/media/java/android/media/AudioFormat.java b/media/java/android/media/AudioFormat.java index c72a74efcff8..8bc66a048d27 100644 --- a/media/java/android/media/AudioFormat.java +++ b/media/java/android/media/AudioFormat.java @@ -17,6 +17,7 @@  package android.media;  import static android.media.audio.Flags.FLAG_DOLBY_AC4_LEVEL4_ENCODING_API; +import static android.media.audio.Flags.FLAG_IAMF_DEFINITIONS_API;  import android.annotation.FlaggedApi;  import android.annotation.IntDef; @@ -382,6 +383,103 @@ public final class AudioFormat implements Parcelable {      @FlaggedApi(FLAG_DOLBY_AC4_LEVEL4_ENCODING_API)      public static final int ENCODING_AC4_L4 = 32; +    /** +     * Audio data format: IAMF using the +     * <a href="https://aomediacodec.github.io/iamf/#profiles-simple">simple profile</a> +     * with audio streams <a href="https://aomediacodec.github.io/iamf/#codec_id">encoded</a> +     * in OPUS. +     */ +    @FlaggedApi(FLAG_IAMF_DEFINITIONS_API) +    public static final int ENCODING_IAMF_SIMPLE_PROFILE_OPUS = 33; +    /** +     * Audio data format: IAMF using the +     * <a href="https://aomediacodec.github.io/iamf/#profiles-simple">simple profile</a> +     * with audio streams <a href="https://aomediacodec.github.io/iamf/#codec_id">encoded</a> +     * in AAC. +     */ +    @FlaggedApi(FLAG_IAMF_DEFINITIONS_API) +    public static final int ENCODING_IAMF_SIMPLE_PROFILE_AAC = 34; +    /** +     * Audio data format: IAMF using the +     * <a href="https://aomediacodec.github.io/iamf/#profiles-simple">simple profile</a> +     * with audio streams <a href="https://aomediacodec.github.io/iamf/#codec_id">encoded</a> +     * in FLAC. +     */ +    @FlaggedApi(FLAG_IAMF_DEFINITIONS_API) +    public static final int ENCODING_IAMF_SIMPLE_PROFILE_FLAC = 35; +    /** +     * Audio data format: IAMF using the +     * <a href="https://aomediacodec.github.io/iamf/#profiles-simple">simple profile</a> +     * with audio streams <a href="https://aomediacodec.github.io/iamf/#codec_id">encoded</a> +     * in PCM. +     */ +    @FlaggedApi(FLAG_IAMF_DEFINITIONS_API) +    public static final int ENCODING_IAMF_SIMPLE_PROFILE_PCM = 36; +    /** +     * Audio data format: IAMF using the +     * <a href="https://aomediacodec.github.io/iamf/#profiles-base">base profile</a> +     * with audio streams <a href="https://aomediacodec.github.io/iamf/#codec_id">encoded</a> +     * in OPUS. +     */ +    @FlaggedApi(FLAG_IAMF_DEFINITIONS_API) +    public static final int ENCODING_IAMF_BASE_PROFILE_OPUS = 37; +    /** +     * Audio data format: IAMF using the +     * <a href="https://aomediacodec.github.io/iamf/#profiles-base">base profile</a> +     * with audio streams <a href="https://aomediacodec.github.io/iamf/#codec_id">encoded</a> +     * in AAC. +     */ +    @FlaggedApi(FLAG_IAMF_DEFINITIONS_API) +    public static final int ENCODING_IAMF_BASE_PROFILE_AAC = 38; +    /** +     * Audio data format: IAMF using the +     * <a href="https://aomediacodec.github.io/iamf/#profiles-base">base profile</a> +     * with audio streams <a href="https://aomediacodec.github.io/iamf/#codec_id">encoded</a> +     * in FLAC. +     */ +    @FlaggedApi(FLAG_IAMF_DEFINITIONS_API) +    public static final int ENCODING_IAMF_BASE_PROFILE_FLAC = 39; +    /** +     * Audio data format: IAMF using the +     * <a href="https://aomediacodec.github.io/iamf/#profiles-base">base profile</a> +     * with audio streams <a href="https://aomediacodec.github.io/iamf/#codec_id">encoded</a> +     * in PCM. +     */ +    @FlaggedApi(FLAG_IAMF_DEFINITIONS_API) +    public static final int ENCODING_IAMF_BASE_PROFILE_PCM = 40; +    /** +     * Audio data format: IAMF using the +     * <a href="https://aomediacodec.github.io/iamf/#profiles-base-enhanced">base-enhanced profile</a> +     * with audio streams <a href="https://aomediacodec.github.io/iamf/#codec_id">encoded</a> +     * in OPUS. +     */ +    @FlaggedApi(FLAG_IAMF_DEFINITIONS_API) +    public static final int ENCODING_IAMF_BASE_ENHANCED_PROFILE_OPUS = 41; +    /** +     * Audio data format: IAMF using the +     * <a href="https://aomediacodec.github.io/iamf/#profiles-base-enhanced">base-enhanced profile</a> +     * with audio streams <a href="https://aomediacodec.github.io/iamf/#codec_id">encoded</a> +     * in AAC. +     */ +    @FlaggedApi(FLAG_IAMF_DEFINITIONS_API) +    public static final int ENCODING_IAMF_BASE_ENHANCED_PROFILE_AAC = 42; +    /** +     * Audio data format: IAMF using the +     * <a href="https://aomediacodec.github.io/iamf/#profiles-base-enhanced">base-enhanced profile</a> +     * with audio streams <a href="https://aomediacodec.github.io/iamf/#codec_id">encoded</a> +     * in FLAC. +     */ +    @FlaggedApi(FLAG_IAMF_DEFINITIONS_API) +    public static final int ENCODING_IAMF_BASE_ENHANCED_PROFILE_FLAC = 43; +    /** +     * Audio data format: IAMF using the +     * <a href="https://aomediacodec.github.io/iamf/#profiles-base-enhanced">base-enhanced profile</a> +     * with audio streams <a href="https://aomediacodec.github.io/iamf/#codec_id">encoded</a> +     * in PCM. +     */ +    @FlaggedApi(FLAG_IAMF_DEFINITIONS_API) +    public static final int ENCODING_IAMF_BASE_ENHANCED_PROFILE_PCM = 44; +      /** @hide */      public static String toLogFriendlyEncoding(int enc) {          switch(enc) { @@ -449,6 +547,30 @@ public final class AudioFormat implements Parcelable {                  return "ENCODING_DTS_UHD_P2";              case ENCODING_DSD:                  return "ENCODING_DSD"; +            case ENCODING_IAMF_BASE_ENHANCED_PROFILE_AAC: +                return "ENCODING_IAMF_BASE_ENHANCED_PROFILE_AAC"; +            case ENCODING_IAMF_BASE_ENHANCED_PROFILE_FLAC: +                return "ENCODING_IAMF_BASE_ENHANCED_PROFILE_FLAC"; +            case ENCODING_IAMF_BASE_ENHANCED_PROFILE_OPUS: +                return "ENCODING_IAMF_BASE_ENHANCED_PROFILE_OPUS"; +            case ENCODING_IAMF_BASE_ENHANCED_PROFILE_PCM: +                return "ENCODING_IAMF_BASE_ENHANCED_PROFILE_PCM"; +            case ENCODING_IAMF_BASE_PROFILE_AAC: +                return "ENCODING_IAMF_BASE_PROFILE_AAC"; +            case ENCODING_IAMF_BASE_PROFILE_FLAC: +                return "ENCODING_IAMF_BASE_PROFILE_FLAC"; +            case ENCODING_IAMF_BASE_PROFILE_OPUS: +                return "ENCODING_IAMF_BASE_PROFILE_OPUS"; +            case ENCODING_IAMF_BASE_PROFILE_PCM: +                return "ENCODING_IAMF_BASE_PROFILE_PCM"; +            case ENCODING_IAMF_SIMPLE_PROFILE_AAC: +                return "ENCODING_IAMF_SIMPLE_PROFILE_AAC"; +            case ENCODING_IAMF_SIMPLE_PROFILE_FLAC: +                return "ENCODING_IAMF_SIMPLE_PROFILE_FLAC"; +            case ENCODING_IAMF_SIMPLE_PROFILE_OPUS: +                return "ENCODING_IAMF_SIMPLE_PROFILE_OPUS"; +            case ENCODING_IAMF_SIMPLE_PROFILE_PCM: +                return "ENCODING_IAMF_SIMPLE_PROFILE_PCM";              default :                  return "invalid encoding " + enc;          } @@ -931,6 +1053,18 @@ public final class AudioFormat implements Parcelable {              case ENCODING_DTS_HD_MA:              case ENCODING_DTS_UHD_P2:              case ENCODING_DSD: +            case ENCODING_IAMF_BASE_ENHANCED_PROFILE_AAC: +            case ENCODING_IAMF_BASE_ENHANCED_PROFILE_FLAC: +            case ENCODING_IAMF_BASE_ENHANCED_PROFILE_OPUS: +            case ENCODING_IAMF_BASE_ENHANCED_PROFILE_PCM: +            case ENCODING_IAMF_BASE_PROFILE_AAC: +            case ENCODING_IAMF_BASE_PROFILE_FLAC: +            case ENCODING_IAMF_BASE_PROFILE_OPUS: +            case ENCODING_IAMF_BASE_PROFILE_PCM: +            case ENCODING_IAMF_SIMPLE_PROFILE_AAC: +            case ENCODING_IAMF_SIMPLE_PROFILE_FLAC: +            case ENCODING_IAMF_SIMPLE_PROFILE_OPUS: +            case ENCODING_IAMF_SIMPLE_PROFILE_PCM:                  return true;              default:                  return false; @@ -972,6 +1106,18 @@ public final class AudioFormat implements Parcelable {              case ENCODING_DTS_HD_MA:              case ENCODING_DTS_UHD_P2:              case ENCODING_DSD: +            case ENCODING_IAMF_BASE_ENHANCED_PROFILE_AAC: +            case ENCODING_IAMF_BASE_ENHANCED_PROFILE_FLAC: +            case ENCODING_IAMF_BASE_ENHANCED_PROFILE_OPUS: +            case ENCODING_IAMF_BASE_ENHANCED_PROFILE_PCM: +            case ENCODING_IAMF_BASE_PROFILE_AAC: +            case ENCODING_IAMF_BASE_PROFILE_FLAC: +            case ENCODING_IAMF_BASE_PROFILE_OPUS: +            case ENCODING_IAMF_BASE_PROFILE_PCM: +            case ENCODING_IAMF_SIMPLE_PROFILE_AAC: +            case ENCODING_IAMF_SIMPLE_PROFILE_FLAC: +            case ENCODING_IAMF_SIMPLE_PROFILE_OPUS: +            case ENCODING_IAMF_SIMPLE_PROFILE_PCM:                  return true;              default:                  return false; @@ -1015,6 +1161,18 @@ public final class AudioFormat implements Parcelable {              case ENCODING_DRA:              case ENCODING_DTS_HD_MA:              case ENCODING_DTS_UHD_P2: +            case ENCODING_IAMF_BASE_ENHANCED_PROFILE_AAC: +            case ENCODING_IAMF_BASE_ENHANCED_PROFILE_FLAC: +            case ENCODING_IAMF_BASE_ENHANCED_PROFILE_OPUS: +            case ENCODING_IAMF_BASE_ENHANCED_PROFILE_PCM: // PCM but inside compressed stream +            case ENCODING_IAMF_BASE_PROFILE_AAC: +            case ENCODING_IAMF_BASE_PROFILE_FLAC: +            case ENCODING_IAMF_BASE_PROFILE_OPUS: +            case ENCODING_IAMF_BASE_PROFILE_PCM: // PCM but inside compressed stream +            case ENCODING_IAMF_SIMPLE_PROFILE_AAC: +            case ENCODING_IAMF_SIMPLE_PROFILE_FLAC: +            case ENCODING_IAMF_SIMPLE_PROFILE_OPUS: +            case ENCODING_IAMF_SIMPLE_PROFILE_PCM: // PCM but inside compressed stream                  return false;              case ENCODING_INVALID:              default: @@ -1058,6 +1216,18 @@ public final class AudioFormat implements Parcelable {              case ENCODING_DRA:              case ENCODING_DTS_HD_MA:              case ENCODING_DTS_UHD_P2: +            case ENCODING_IAMF_BASE_ENHANCED_PROFILE_AAC: +            case ENCODING_IAMF_BASE_ENHANCED_PROFILE_FLAC: +            case ENCODING_IAMF_BASE_ENHANCED_PROFILE_OPUS: +            case ENCODING_IAMF_BASE_ENHANCED_PROFILE_PCM: +            case ENCODING_IAMF_BASE_PROFILE_AAC: +            case ENCODING_IAMF_BASE_PROFILE_FLAC: +            case ENCODING_IAMF_BASE_PROFILE_OPUS: +            case ENCODING_IAMF_BASE_PROFILE_PCM: +            case ENCODING_IAMF_SIMPLE_PROFILE_AAC: +            case ENCODING_IAMF_SIMPLE_PROFILE_FLAC: +            case ENCODING_IAMF_SIMPLE_PROFILE_OPUS: +            case ENCODING_IAMF_SIMPLE_PROFILE_PCM:                  return false;              case ENCODING_INVALID:              default: @@ -1350,6 +1520,18 @@ public final class AudioFormat implements Parcelable {                  case ENCODING_DTS_HD_MA:                  case ENCODING_DTS_UHD_P2:                  case ENCODING_DSD: +                case ENCODING_IAMF_BASE_ENHANCED_PROFILE_AAC: +                case ENCODING_IAMF_BASE_ENHANCED_PROFILE_FLAC: +                case ENCODING_IAMF_BASE_ENHANCED_PROFILE_OPUS: +                case ENCODING_IAMF_BASE_ENHANCED_PROFILE_PCM: +                case ENCODING_IAMF_BASE_PROFILE_AAC: +                case ENCODING_IAMF_BASE_PROFILE_FLAC: +                case ENCODING_IAMF_BASE_PROFILE_OPUS: +                case ENCODING_IAMF_BASE_PROFILE_PCM: +                case ENCODING_IAMF_SIMPLE_PROFILE_AAC: +                case ENCODING_IAMF_SIMPLE_PROFILE_FLAC: +                case ENCODING_IAMF_SIMPLE_PROFILE_OPUS: +                case ENCODING_IAMF_SIMPLE_PROFILE_PCM:                      mEncoding = encoding;                      break;                  case ENCODING_INVALID: @@ -1580,7 +1762,19 @@ public final class AudioFormat implements Parcelable {          ENCODING_DRA,          ENCODING_DTS_HD_MA,          ENCODING_DTS_UHD_P2, -        ENCODING_DSD } +        ENCODING_DSD, +        ENCODING_IAMF_BASE_ENHANCED_PROFILE_AAC, +        ENCODING_IAMF_BASE_ENHANCED_PROFILE_FLAC, +        ENCODING_IAMF_BASE_ENHANCED_PROFILE_OPUS, +        ENCODING_IAMF_BASE_ENHANCED_PROFILE_PCM, +        ENCODING_IAMF_BASE_PROFILE_AAC, +        ENCODING_IAMF_BASE_PROFILE_FLAC, +        ENCODING_IAMF_BASE_PROFILE_OPUS, +        ENCODING_IAMF_BASE_PROFILE_PCM, +        ENCODING_IAMF_SIMPLE_PROFILE_AAC, +        ENCODING_IAMF_SIMPLE_PROFILE_FLAC, +        ENCODING_IAMF_SIMPLE_PROFILE_OPUS, +        ENCODING_IAMF_SIMPLE_PROFILE_PCM }      )      @Retention(RetentionPolicy.SOURCE)      public @interface Encoding {} @@ -1619,7 +1813,19 @@ public final class AudioFormat implements Parcelable {              ENCODING_DRA,              ENCODING_DTS_HD_MA,              ENCODING_DTS_UHD_P2, -            ENCODING_DSD } +            ENCODING_DSD, +            ENCODING_IAMF_BASE_ENHANCED_PROFILE_AAC, +            ENCODING_IAMF_BASE_ENHANCED_PROFILE_FLAC, +            ENCODING_IAMF_BASE_ENHANCED_PROFILE_OPUS, +            ENCODING_IAMF_BASE_ENHANCED_PROFILE_PCM, +            ENCODING_IAMF_BASE_PROFILE_AAC, +            ENCODING_IAMF_BASE_PROFILE_FLAC, +            ENCODING_IAMF_BASE_PROFILE_OPUS, +            ENCODING_IAMF_BASE_PROFILE_PCM, +            ENCODING_IAMF_SIMPLE_PROFILE_AAC, +            ENCODING_IAMF_SIMPLE_PROFILE_FLAC, +            ENCODING_IAMF_SIMPLE_PROFILE_OPUS, +            ENCODING_IAMF_SIMPLE_PROFILE_PCM }      )      @Retention(RetentionPolicy.SOURCE)      public @interface EncodingCanBeInvalid {} diff --git a/media/java/android/media/AudioSystem.java b/media/java/android/media/AudioSystem.java index d0d91ba599f9..12d7f33a0d51 100644 --- a/media/java/android/media/AudioSystem.java +++ b/media/java/android/media/AudioSystem.java @@ -559,6 +559,30 @@ public class AudioSystem                  return "AUDIO_FORMAT_MPEGH_SUB_LC_L3";              case /* AUDIO_FORMAT_MPEGH_SUB_LC_L4   */ 0x2C000024:                  return "AUDIO_FORMAT_MPEGH_SUB_LC_L4"; +            case /* AUDIO_FORMAT_IAMF_SIMPLE_OPUS */  0x34010001: +                return "AUDIO_FORMAT_IAMF_SIMPLE_OPUS"; +            case /* AUDIO_FORMAT_IAMF_SIMPLE_AAC */   0x34010002: +                return "AUDIO_FORMAT_IAMF_SIMPLE_AAC"; +            case /* AUDIO_FORMAT_IAMF_SIMPLE_FLAC */  0x34010004: +                return "AUDIO_FORMAT_IAMF_SIMPLE_FLAC"; +            case /* AUDIO_FORMAT_IAMF_SIMPLE_PCM */   0x34010008: +                return "AUDIO_FORMAT_IAMF_SIMPLE_PCM"; +            case /* AUDIO_FORMAT_IAMF_BASE_OPUS */    0x34020001: +                return "AUDIO_FORMAT_IAMF_BASE_OPUS"; +            case /* AUDIO_FORMAT_IAMF_BASE_AAC */     0x34020002: +                return "AUDIO_FORMAT_IAMF_BASE_AAC"; +            case /* AUDIO_FORMAT_IAMF_BASE_FLAC */    0x34020004: +                return "AUDIO_FORMAT_IAMF_BASE_FLAC"; +            case /* AUDIO_FORMAT_IAMF_BASE_PCM */     0x34020008: +                return "AUDIO_FORMAT_IAMF_BASE_PCM"; +            case /* AUDIO_FORMAT_IAMF_BASE_ENHANCED_OPUS */ 0x34040001: +                return "AUDIO_FORMAT_IAMF_BASE_ENHANCED_OPUS"; +            case /* AUDIO_FORMAT_IAMF_BASE_ENHANCED_AAC */  0x34040002: +                return "AUDIO_FORMAT_IAMF_BASE_ENHANCED_AAC"; +            case /* AUDIO_FORMAT_IAMF_BASE_ENHANCED_FLAC */ 0x34040004: +                return "AUDIO_FORMAT_IAMF_BASE_ENHANCED_FLAC"; +            case /* AUDIO_FORMAT_IAMF_BASE_ENHANCED_PCM */  0x34040008: +                return "AUDIO_FORMAT_IAMF_BASE_ENHANCED_PCM";              default:                  return "AUDIO_FORMAT_(" + audioFormat + ")";          } diff --git a/packages/LocalTransport/src/com/android/localtransport/LocalTransport.java b/packages/LocalTransport/src/com/android/localtransport/LocalTransport.java index 6a4bb216b495..a3b06e8c71fc 100644 --- a/packages/LocalTransport/src/com/android/localtransport/LocalTransport.java +++ b/packages/LocalTransport/src/com/android/localtransport/LocalTransport.java @@ -16,8 +16,10 @@  package com.android.localtransport; +import android.annotation.NonNull;  import android.annotation.Nullable;  import android.app.backup.BackupAgent; +import android.app.backup.BackupAnnotations;  import android.app.backup.BackupDataInput;  import android.app.backup.BackupDataOutput;  import android.app.backup.BackupManagerMonitor; @@ -52,6 +54,7 @@ import java.io.IOException;  import java.util.ArrayList;  import java.util.Arrays;  import java.util.Collections; +import java.util.List;  /**   * Backup transport for stashing stuff into a known location on disk, and @@ -939,4 +942,15 @@ public class LocalTransport extends BackupTransport {              }          }      } + +    @NonNull +    @Override +    public List<String> getPackagesThatShouldNotUseRestrictedMode( +            @NonNull List<String> packageNames, +            @BackupAnnotations.OperationType int operationType) { +        if (DEBUG) { +            Log.d(TAG, "No restricted mode packages: " + mParameters.noRestrictedModePackages()); +        } +        return mParameters.noRestrictedModePackages(); +    }  } diff --git a/packages/LocalTransport/src/com/android/localtransport/LocalTransportParameters.java b/packages/LocalTransport/src/com/android/localtransport/LocalTransportParameters.java index aaa18bf755bc..c980913f80c6 100644 --- a/packages/LocalTransport/src/com/android/localtransport/LocalTransportParameters.java +++ b/packages/LocalTransport/src/com/android/localtransport/LocalTransportParameters.java @@ -16,26 +16,33 @@  package com.android.localtransport; -import android.util.KeyValueSettingObserver;  import android.content.ContentResolver;  import android.os.Handler;  import android.provider.Settings;  import android.util.KeyValueListParser; +import android.util.KeyValueSettingObserver; + +import java.util.Arrays; +import java.util.List;  public class LocalTransportParameters extends KeyValueSettingObserver { -    private static final String TAG = "LocalTransportParams";      private static final String SETTING = Settings.Secure.BACKUP_LOCAL_TRANSPORT_PARAMETERS;      private static final String KEY_FAKE_ENCRYPTION_FLAG = "fake_encryption_flag";      private static final String KEY_NON_INCREMENTAL_ONLY = "non_incremental_only";      private static final String KEY_IS_DEVICE_TRANSFER = "is_device_transfer";      private static final String KEY_IS_ENCRYPTED = "is_encrypted";      private static final String KEY_LOG_AGENT_RESULTS = "log_agent_results"; +    // This needs to be a list of package names separated by semicolons. For example: +    // "com.package1;com.package2;com.package3". We can't use commas because the base class uses +    // commas to split Key/Value pairs. +    private static final String KEY_NO_RESTRICTED_MODE_PACKAGES = "no_restricted_mode_packages";      private boolean mFakeEncryptionFlag;      private boolean mIsNonIncrementalOnly;      private boolean mIsDeviceTransfer;      private boolean mIsEncrypted;      private boolean mLogAgentResults; +    private String mNoRestrictedModePackages;      public LocalTransportParameters(Handler handler, ContentResolver resolver) {          super(handler, resolver, Settings.Secure.getUriFor(SETTING)); @@ -61,6 +68,13 @@ public class LocalTransportParameters extends KeyValueSettingObserver {          return mLogAgentResults;      } +    List<String> noRestrictedModePackages() { +        if (mNoRestrictedModePackages == null) { +            return List.of(); +        } +        return Arrays.stream(mNoRestrictedModePackages.split(";")).toList(); +    } +      public String getSettingValue(ContentResolver resolver) {          return Settings.Secure.getString(resolver, SETTING);      } @@ -71,5 +85,6 @@ public class LocalTransportParameters extends KeyValueSettingObserver {          mIsDeviceTransfer = parser.getBoolean(KEY_IS_DEVICE_TRANSFER, false);          mIsEncrypted = parser.getBoolean(KEY_IS_ENCRYPTED, false);          mLogAgentResults = parser.getBoolean(KEY_LOG_AGENT_RESULTS, /* def */ false); +        mNoRestrictedModePackages = parser.getString(KEY_NO_RESTRICTED_MODE_PACKAGES, /* def */ "");      }  } diff --git a/packages/SettingsLib/Metadata/src/com/android/settingslib/metadata/PreferenceStateProviders.kt b/packages/SettingsLib/Metadata/src/com/android/settingslib/metadata/PreferenceStateProviders.kt index 7436ac1f9712..6704ecc93891 100644 --- a/packages/SettingsLib/Metadata/src/com/android/settingslib/metadata/PreferenceStateProviders.kt +++ b/packages/SettingsLib/Metadata/src/com/android/settingslib/metadata/PreferenceStateProviders.kt @@ -20,6 +20,8 @@ import android.content.Context  import android.content.ContextWrapper  import android.content.Intent  import android.os.Bundle +import androidx.lifecycle.LifecycleCoroutineScope +import kotlinx.coroutines.CoroutineScope  /**   * Interface to provide dynamic preference title. @@ -138,6 +140,13 @@ interface PreferenceLifecycleProvider {   */  abstract class PreferenceLifecycleContext(context: Context) : ContextWrapper(context) { +    /** +     * [CoroutineScope] tied to the lifecycle, which is cancelled when the lifecycle is destroyed. +     * +     * @see [androidx.lifecycle.lifecycleScope] +     */ +    abstract val lifecycleScope: LifecycleCoroutineScope +      /** Returns the preference widget object associated with given key. */      abstract fun <T> findPreference(key: String): T? diff --git a/packages/SettingsLib/Preference/src/com/android/settingslib/preference/PreferenceScreenBindingHelper.kt b/packages/SettingsLib/Preference/src/com/android/settingslib/preference/PreferenceScreenBindingHelper.kt index 03b225efc3cc..6fc9357e9332 100644 --- a/packages/SettingsLib/Preference/src/com/android/settingslib/preference/PreferenceScreenBindingHelper.kt +++ b/packages/SettingsLib/Preference/src/com/android/settingslib/preference/PreferenceScreenBindingHelper.kt @@ -19,6 +19,8 @@ package com.android.settingslib.preference  import android.content.Context  import android.content.Intent  import android.os.Bundle +import androidx.lifecycle.LifecycleCoroutineScope +import androidx.lifecycle.lifecycleScope  import androidx.preference.Preference  import androidx.preference.PreferenceDataStore  import androidx.preference.PreferenceGroup @@ -57,6 +59,9 @@ class PreferenceScreenBindingHelper(      private val preferenceLifecycleContext =          object : PreferenceLifecycleContext(context) { +            override val lifecycleScope: LifecycleCoroutineScope +                get() = fragment.lifecycleScope +              override fun <T> findPreference(key: String) =                  preferenceScreen.findPreference(key) as T? diff --git a/packages/SettingsLib/RestrictedLockUtils/res/values-af/strings.xml b/packages/SettingsLib/RestrictedLockUtils/res/values-af/strings.xml index 4bd1d451ce8f..b41ec957f12d 100644 --- a/packages/SettingsLib/RestrictedLockUtils/res/values-af/strings.xml +++ b/packages/SettingsLib/RestrictedLockUtils/res/values-af/strings.xml @@ -19,8 +19,6 @@      xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">      <string name="enabled_by_admin" msgid="6630472777476410137">"Geaktiveer deur administrateur"</string>      <string name="disabled_by_admin" msgid="4023569940620832713">"Gedeaktiveer deur administrateur"</string> -    <!-- no translation found for enabled_by_advanced_protection (6236917660829422499) --> -    <skip /> -    <!-- no translation found for disabled_by_advanced_protection (369596009193239632) --> -    <skip /> +    <string name="enabled_by_advanced_protection" msgid="6236917660829422499">"Geaktiveer deur Gevorderde Beskerming"</string> +    <string name="disabled_by_advanced_protection" msgid="369596009193239632">"Gedeaktiveer deur Gevorderde Beskerming"</string>  </resources> diff --git a/packages/SettingsLib/RestrictedLockUtils/res/values-am/strings.xml b/packages/SettingsLib/RestrictedLockUtils/res/values-am/strings.xml index ef380fd343dd..8e9488453032 100644 --- a/packages/SettingsLib/RestrictedLockUtils/res/values-am/strings.xml +++ b/packages/SettingsLib/RestrictedLockUtils/res/values-am/strings.xml @@ -19,8 +19,6 @@      xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">      <string name="enabled_by_admin" msgid="6630472777476410137">"በአስተዳዳሪ ነቅቷል"</string>      <string name="disabled_by_admin" msgid="4023569940620832713">"በአስተዳዳሪ ተሰናክሏል"</string> -    <!-- no translation found for enabled_by_advanced_protection (6236917660829422499) --> -    <skip /> -    <!-- no translation found for disabled_by_advanced_protection (369596009193239632) --> -    <skip /> +    <string name="enabled_by_advanced_protection" msgid="6236917660829422499">"በላቀ ጥበቃ የነቃ"</string> +    <string name="disabled_by_advanced_protection" msgid="369596009193239632">"በላቀ ጥበቃ የተሰናከለ"</string>  </resources> diff --git a/packages/SettingsLib/RestrictedLockUtils/res/values-ar/strings.xml b/packages/SettingsLib/RestrictedLockUtils/res/values-ar/strings.xml index 57cf30f1c3c7..8b2ccdfbb0e8 100644 --- a/packages/SettingsLib/RestrictedLockUtils/res/values-ar/strings.xml +++ b/packages/SettingsLib/RestrictedLockUtils/res/values-ar/strings.xml @@ -19,8 +19,6 @@      xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">      <string name="enabled_by_admin" msgid="6630472777476410137">"يفعِّل المشرف هذا الإعداد."</string>      <string name="disabled_by_admin" msgid="4023569940620832713">"أوقف المشرف هذا الإعداد"</string> -    <!-- no translation found for enabled_by_advanced_protection (6236917660829422499) --> -    <skip /> -    <!-- no translation found for disabled_by_advanced_protection (369596009193239632) --> -    <skip /> +    <string name="enabled_by_advanced_protection" msgid="6236917660829422499">"تم التفعيل من خلال ميزة \"الحماية المتقدّمة\""</string> +    <string name="disabled_by_advanced_protection" msgid="369596009193239632">"تم الإيقاف من خلال ميزة \"الحماية المتقدّمة\""</string>  </resources> diff --git a/packages/SettingsLib/RestrictedLockUtils/res/values-as/strings.xml b/packages/SettingsLib/RestrictedLockUtils/res/values-as/strings.xml index 21fe73ae59b3..03e9e828534a 100644 --- a/packages/SettingsLib/RestrictedLockUtils/res/values-as/strings.xml +++ b/packages/SettingsLib/RestrictedLockUtils/res/values-as/strings.xml @@ -19,8 +19,6 @@      xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">      <string name="enabled_by_admin" msgid="6630472777476410137">"প্ৰশাসকে সক্ষম কৰিছে"</string>      <string name="disabled_by_admin" msgid="4023569940620832713">"প্ৰশাসকে অক্ষম কৰিছে"</string> -    <!-- no translation found for enabled_by_advanced_protection (6236917660829422499) --> -    <skip /> -    <!-- no translation found for disabled_by_advanced_protection (369596009193239632) --> -    <skip /> +    <string name="enabled_by_advanced_protection" msgid="6236917660829422499">"সুৰক্ষা সম্পৰ্কীয় উন্নত সুবিধাটোৱে সক্ষম কৰিছে"</string> +    <string name="disabled_by_advanced_protection" msgid="369596009193239632">"সুৰক্ষা সম্পৰ্কীয় উন্নত সুবিধাটোৱে অক্ষম কৰিছে"</string>  </resources> diff --git a/packages/SettingsLib/RestrictedLockUtils/res/values-az/strings.xml b/packages/SettingsLib/RestrictedLockUtils/res/values-az/strings.xml index c7c4c388aca0..98447166a156 100644 --- a/packages/SettingsLib/RestrictedLockUtils/res/values-az/strings.xml +++ b/packages/SettingsLib/RestrictedLockUtils/res/values-az/strings.xml @@ -19,8 +19,6 @@      xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">      <string name="enabled_by_admin" msgid="6630472777476410137">"Admin tərəfindən aktiv edildi"</string>      <string name="disabled_by_admin" msgid="4023569940620832713">"Admin tərəfindən deaktiv edildi"</string> -    <!-- no translation found for enabled_by_advanced_protection (6236917660829422499) --> -    <skip /> -    <!-- no translation found for disabled_by_advanced_protection (369596009193239632) --> -    <skip /> +    <string name="enabled_by_advanced_protection" msgid="6236917660829422499">"Qabaqcıl Qoruma tərəfindən aktiv edilib"</string> +    <string name="disabled_by_advanced_protection" msgid="369596009193239632">"Qabaqcıl Qoruma tərəfindən deaktiv edilib"</string>  </resources> diff --git a/packages/SettingsLib/RestrictedLockUtils/res/values-b+sr+Latn/strings.xml b/packages/SettingsLib/RestrictedLockUtils/res/values-b+sr+Latn/strings.xml index a7d139577967..c7b9be28fb1e 100644 --- a/packages/SettingsLib/RestrictedLockUtils/res/values-b+sr+Latn/strings.xml +++ b/packages/SettingsLib/RestrictedLockUtils/res/values-b+sr+Latn/strings.xml @@ -19,8 +19,6 @@      xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">      <string name="enabled_by_admin" msgid="6630472777476410137">"Administrator je omogućio"</string>      <string name="disabled_by_admin" msgid="4023569940620832713">"Administrator je onemogućio"</string> -    <!-- no translation found for enabled_by_advanced_protection (6236917660829422499) --> -    <skip /> -    <!-- no translation found for disabled_by_advanced_protection (369596009193239632) --> -    <skip /> +    <string name="enabled_by_advanced_protection" msgid="6236917660829422499">"Omogućila je Napredna zaštita"</string> +    <string name="disabled_by_advanced_protection" msgid="369596009193239632">"Onemogućila je Napredna zaštita"</string>  </resources> diff --git a/packages/SettingsLib/RestrictedLockUtils/res/values-be/strings.xml b/packages/SettingsLib/RestrictedLockUtils/res/values-be/strings.xml index 60b9fc6c3cb0..92ed11157dfc 100644 --- a/packages/SettingsLib/RestrictedLockUtils/res/values-be/strings.xml +++ b/packages/SettingsLib/RestrictedLockUtils/res/values-be/strings.xml @@ -19,8 +19,6 @@      xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">      <string name="enabled_by_admin" msgid="6630472777476410137">"Уключана адміністратарам"</string>      <string name="disabled_by_admin" msgid="4023569940620832713">"Адключана адміністратарам"</string> -    <!-- no translation found for enabled_by_advanced_protection (6236917660829422499) --> -    <skip /> -    <!-- no translation found for disabled_by_advanced_protection (369596009193239632) --> -    <skip /> +    <string name="enabled_by_advanced_protection" msgid="6236917660829422499">"Уключана Палепшанай абаронай"</string> +    <string name="disabled_by_advanced_protection" msgid="369596009193239632">"Адключана Палепшанай абаронай"</string>  </resources> diff --git a/packages/SettingsLib/RestrictedLockUtils/res/values-bg/strings.xml b/packages/SettingsLib/RestrictedLockUtils/res/values-bg/strings.xml index f98a8d43cff5..57b50c5c580c 100644 --- a/packages/SettingsLib/RestrictedLockUtils/res/values-bg/strings.xml +++ b/packages/SettingsLib/RestrictedLockUtils/res/values-bg/strings.xml @@ -19,8 +19,6 @@      xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">      <string name="enabled_by_admin" msgid="6630472777476410137">"Активирано от администратора"</string>      <string name="disabled_by_admin" msgid="4023569940620832713">"Деактивирано от администратора"</string> -    <!-- no translation found for enabled_by_advanced_protection (6236917660829422499) --> -    <skip /> -    <!-- no translation found for disabled_by_advanced_protection (369596009193239632) --> -    <skip /> +    <string name="enabled_by_advanced_protection" msgid="6236917660829422499">"Активирано от „Разширена защита“"</string> +    <string name="disabled_by_advanced_protection" msgid="369596009193239632">"Деактивирано от „Разширена защита“"</string>  </resources> diff --git a/packages/SettingsLib/RestrictedLockUtils/res/values-bn/strings.xml b/packages/SettingsLib/RestrictedLockUtils/res/values-bn/strings.xml index 87e8bd2969ba..939ceb82ab40 100644 --- a/packages/SettingsLib/RestrictedLockUtils/res/values-bn/strings.xml +++ b/packages/SettingsLib/RestrictedLockUtils/res/values-bn/strings.xml @@ -19,8 +19,6 @@      xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">      <string name="enabled_by_admin" msgid="6630472777476410137">"অ্যাডমিন চালু করেছেন"</string>      <string name="disabled_by_admin" msgid="4023569940620832713">"অ্যাডমিন বন্ধ করেছেন"</string> -    <!-- no translation found for enabled_by_advanced_protection (6236917660829422499) --> -    <skip /> -    <!-- no translation found for disabled_by_advanced_protection (369596009193239632) --> -    <skip /> +    <string name="enabled_by_advanced_protection" msgid="6236917660829422499">"উন্নত সুরক্ষা চালু করেছে"</string> +    <string name="disabled_by_advanced_protection" msgid="369596009193239632">"উন্নত সুরক্ষা বন্ধ করেছে"</string>  </resources> diff --git a/packages/SettingsLib/RestrictedLockUtils/res/values-bs/strings.xml b/packages/SettingsLib/RestrictedLockUtils/res/values-bs/strings.xml index a56917f9d286..87cd3b8905c7 100644 --- a/packages/SettingsLib/RestrictedLockUtils/res/values-bs/strings.xml +++ b/packages/SettingsLib/RestrictedLockUtils/res/values-bs/strings.xml @@ -19,8 +19,6 @@      xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">      <string name="enabled_by_admin" msgid="6630472777476410137">"Omogućio administrator"</string>      <string name="disabled_by_admin" msgid="4023569940620832713">"Onemogućio administrator"</string> -    <!-- no translation found for enabled_by_advanced_protection (6236917660829422499) --> -    <skip /> -    <!-- no translation found for disabled_by_advanced_protection (369596009193239632) --> -    <skip /> +    <string name="enabled_by_advanced_protection" msgid="6236917660829422499">"Omogućeno je Naprednom zaštitom"</string> +    <string name="disabled_by_advanced_protection" msgid="369596009193239632">"Onemogućeno je Naprednom zaštitom"</string>  </resources> diff --git a/packages/SettingsLib/RestrictedLockUtils/res/values-ca/strings.xml b/packages/SettingsLib/RestrictedLockUtils/res/values-ca/strings.xml index ac38bd1f439c..34099b6f3f08 100644 --- a/packages/SettingsLib/RestrictedLockUtils/res/values-ca/strings.xml +++ b/packages/SettingsLib/RestrictedLockUtils/res/values-ca/strings.xml @@ -19,8 +19,6 @@      xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">      <string name="enabled_by_admin" msgid="6630472777476410137">"Activat per l\'administrador"</string>      <string name="disabled_by_admin" msgid="4023569940620832713">"Desactivat per l\'administrador"</string> -    <!-- no translation found for enabled_by_advanced_protection (6236917660829422499) --> -    <skip /> -    <!-- no translation found for disabled_by_advanced_protection (369596009193239632) --> -    <skip /> +    <string name="enabled_by_advanced_protection" msgid="6236917660829422499">"Activat per la Protecció avançada"</string> +    <string name="disabled_by_advanced_protection" msgid="369596009193239632">"Desactivat per la Protecció avançada"</string>  </resources> diff --git a/packages/SettingsLib/RestrictedLockUtils/res/values-cs/strings.xml b/packages/SettingsLib/RestrictedLockUtils/res/values-cs/strings.xml index 1840ecd3609b..82cd56f39059 100644 --- a/packages/SettingsLib/RestrictedLockUtils/res/values-cs/strings.xml +++ b/packages/SettingsLib/RestrictedLockUtils/res/values-cs/strings.xml @@ -19,8 +19,6 @@      xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">      <string name="enabled_by_admin" msgid="6630472777476410137">"Zapnuto administrátorem"</string>      <string name="disabled_by_admin" msgid="4023569940620832713">"Vypnuto administrátorem"</string> -    <!-- no translation found for enabled_by_advanced_protection (6236917660829422499) --> -    <skip /> -    <!-- no translation found for disabled_by_advanced_protection (369596009193239632) --> -    <skip /> +    <string name="enabled_by_advanced_protection" msgid="6236917660829422499">"Aktivováno pokročilou ochranou"</string> +    <string name="disabled_by_advanced_protection" msgid="369596009193239632">"Deaktivováno pokročilou ochranou"</string>  </resources> diff --git a/packages/SettingsLib/RestrictedLockUtils/res/values-da/strings.xml b/packages/SettingsLib/RestrictedLockUtils/res/values-da/strings.xml index 2e6dd0f04bb8..7f7ae8b3d5e0 100644 --- a/packages/SettingsLib/RestrictedLockUtils/res/values-da/strings.xml +++ b/packages/SettingsLib/RestrictedLockUtils/res/values-da/strings.xml @@ -19,8 +19,6 @@      xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">      <string name="enabled_by_admin" msgid="6630472777476410137">"Aktiveret af administratoren"</string>      <string name="disabled_by_admin" msgid="4023569940620832713">"Deaktiveret af administrator"</string> -    <!-- no translation found for enabled_by_advanced_protection (6236917660829422499) --> -    <skip /> -    <!-- no translation found for disabled_by_advanced_protection (369596009193239632) --> -    <skip /> +    <string name="enabled_by_advanced_protection" msgid="6236917660829422499">"Aktiveret af Avanceret beskyttelse"</string> +    <string name="disabled_by_advanced_protection" msgid="369596009193239632">"Deaktiveret af Avanceret beskyttelse"</string>  </resources> diff --git a/packages/SettingsLib/RestrictedLockUtils/res/values-de/strings.xml b/packages/SettingsLib/RestrictedLockUtils/res/values-de/strings.xml index 88c146cc9e35..efaa50efacf4 100644 --- a/packages/SettingsLib/RestrictedLockUtils/res/values-de/strings.xml +++ b/packages/SettingsLib/RestrictedLockUtils/res/values-de/strings.xml @@ -19,8 +19,6 @@      xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">      <string name="enabled_by_admin" msgid="6630472777476410137">"Vom Administrator aktiviert"</string>      <string name="disabled_by_admin" msgid="4023569940620832713">"Vom Administrator deaktiviert"</string> -    <!-- no translation found for enabled_by_advanced_protection (6236917660829422499) --> -    <skip /> -    <!-- no translation found for disabled_by_advanced_protection (369596009193239632) --> -    <skip /> +    <string name="enabled_by_advanced_protection" msgid="6236917660829422499">"Vom erweiterten Sicherheitsprogramm aktiviert"</string> +    <string name="disabled_by_advanced_protection" msgid="369596009193239632">"Vom erweiterten Sicherheitsprogramm deaktiviert"</string>  </resources> diff --git a/packages/SettingsLib/RestrictedLockUtils/res/values-el/strings.xml b/packages/SettingsLib/RestrictedLockUtils/res/values-el/strings.xml index 941d4ba5ebc2..ddde3ece472a 100644 --- a/packages/SettingsLib/RestrictedLockUtils/res/values-el/strings.xml +++ b/packages/SettingsLib/RestrictedLockUtils/res/values-el/strings.xml @@ -19,8 +19,6 @@      xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">      <string name="enabled_by_admin" msgid="6630472777476410137">"Ενεργοποιήθηκε από τον διαχειριστή"</string>      <string name="disabled_by_admin" msgid="4023569940620832713">"Απενεργοποιήθηκε από τον διαχειριστή"</string> -    <!-- no translation found for enabled_by_advanced_protection (6236917660829422499) --> -    <skip /> -    <!-- no translation found for disabled_by_advanced_protection (369596009193239632) --> -    <skip /> +    <string name="enabled_by_advanced_protection" msgid="6236917660829422499">"Ενεργοποιήθηκε από την Ενισχυμένη προστασία"</string> +    <string name="disabled_by_advanced_protection" msgid="369596009193239632">"Απενεργοποιήθηκε από την Ενισχυμένη προστασία"</string>  </resources> diff --git a/packages/SettingsLib/RestrictedLockUtils/res/values-en-rAU/strings.xml b/packages/SettingsLib/RestrictedLockUtils/res/values-en-rAU/strings.xml index 91268ec2f896..6a07741d8e4c 100644 --- a/packages/SettingsLib/RestrictedLockUtils/res/values-en-rAU/strings.xml +++ b/packages/SettingsLib/RestrictedLockUtils/res/values-en-rAU/strings.xml @@ -19,8 +19,6 @@      xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">      <string name="enabled_by_admin" msgid="6630472777476410137">"Enabled by admin"</string>      <string name="disabled_by_admin" msgid="4023569940620832713">"Disabled by admin"</string> -    <!-- no translation found for enabled_by_advanced_protection (6236917660829422499) --> -    <skip /> -    <!-- no translation found for disabled_by_advanced_protection (369596009193239632) --> -    <skip /> +    <string name="enabled_by_advanced_protection" msgid="6236917660829422499">"Enabled by Advanced Protection"</string> +    <string name="disabled_by_advanced_protection" msgid="369596009193239632">"Disabled by Advanced Protection"</string>  </resources> diff --git a/packages/SettingsLib/RestrictedLockUtils/res/values-en-rCA/strings.xml b/packages/SettingsLib/RestrictedLockUtils/res/values-en-rCA/strings.xml index 91268ec2f896..6a07741d8e4c 100644 --- a/packages/SettingsLib/RestrictedLockUtils/res/values-en-rCA/strings.xml +++ b/packages/SettingsLib/RestrictedLockUtils/res/values-en-rCA/strings.xml @@ -19,8 +19,6 @@      xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">      <string name="enabled_by_admin" msgid="6630472777476410137">"Enabled by admin"</string>      <string name="disabled_by_admin" msgid="4023569940620832713">"Disabled by admin"</string> -    <!-- no translation found for enabled_by_advanced_protection (6236917660829422499) --> -    <skip /> -    <!-- no translation found for disabled_by_advanced_protection (369596009193239632) --> -    <skip /> +    <string name="enabled_by_advanced_protection" msgid="6236917660829422499">"Enabled by Advanced Protection"</string> +    <string name="disabled_by_advanced_protection" msgid="369596009193239632">"Disabled by Advanced Protection"</string>  </resources> diff --git a/packages/SettingsLib/RestrictedLockUtils/res/values-en-rGB/strings.xml b/packages/SettingsLib/RestrictedLockUtils/res/values-en-rGB/strings.xml index 91268ec2f896..6a07741d8e4c 100644 --- a/packages/SettingsLib/RestrictedLockUtils/res/values-en-rGB/strings.xml +++ b/packages/SettingsLib/RestrictedLockUtils/res/values-en-rGB/strings.xml @@ -19,8 +19,6 @@      xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">      <string name="enabled_by_admin" msgid="6630472777476410137">"Enabled by admin"</string>      <string name="disabled_by_admin" msgid="4023569940620832713">"Disabled by admin"</string> -    <!-- no translation found for enabled_by_advanced_protection (6236917660829422499) --> -    <skip /> -    <!-- no translation found for disabled_by_advanced_protection (369596009193239632) --> -    <skip /> +    <string name="enabled_by_advanced_protection" msgid="6236917660829422499">"Enabled by Advanced Protection"</string> +    <string name="disabled_by_advanced_protection" msgid="369596009193239632">"Disabled by Advanced Protection"</string>  </resources> diff --git a/packages/SettingsLib/RestrictedLockUtils/res/values-en-rIN/strings.xml b/packages/SettingsLib/RestrictedLockUtils/res/values-en-rIN/strings.xml index 91268ec2f896..6a07741d8e4c 100644 --- a/packages/SettingsLib/RestrictedLockUtils/res/values-en-rIN/strings.xml +++ b/packages/SettingsLib/RestrictedLockUtils/res/values-en-rIN/strings.xml @@ -19,8 +19,6 @@      xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">      <string name="enabled_by_admin" msgid="6630472777476410137">"Enabled by admin"</string>      <string name="disabled_by_admin" msgid="4023569940620832713">"Disabled by admin"</string> -    <!-- no translation found for enabled_by_advanced_protection (6236917660829422499) --> -    <skip /> -    <!-- no translation found for disabled_by_advanced_protection (369596009193239632) --> -    <skip /> +    <string name="enabled_by_advanced_protection" msgid="6236917660829422499">"Enabled by Advanced Protection"</string> +    <string name="disabled_by_advanced_protection" msgid="369596009193239632">"Disabled by Advanced Protection"</string>  </resources> diff --git a/packages/SettingsLib/RestrictedLockUtils/res/values-es-rUS/strings.xml b/packages/SettingsLib/RestrictedLockUtils/res/values-es-rUS/strings.xml index 9ea88df3ff62..8dc15f77f6e0 100644 --- a/packages/SettingsLib/RestrictedLockUtils/res/values-es-rUS/strings.xml +++ b/packages/SettingsLib/RestrictedLockUtils/res/values-es-rUS/strings.xml @@ -19,8 +19,6 @@      xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">      <string name="enabled_by_admin" msgid="6630472777476410137">"El administrador habilitó la opción"</string>      <string name="disabled_by_admin" msgid="4023569940620832713">"El administrador inhabilitó la opción"</string> -    <!-- no translation found for enabled_by_advanced_protection (6236917660829422499) --> -    <skip /> -    <!-- no translation found for disabled_by_advanced_protection (369596009193239632) --> -    <skip /> +    <string name="enabled_by_advanced_protection" msgid="6236917660829422499">"Habilitado por la Protección avanzada"</string> +    <string name="disabled_by_advanced_protection" msgid="369596009193239632">"Inhabilitado por la Protección avanzada"</string>  </resources> diff --git a/packages/SettingsLib/RestrictedLockUtils/res/values-es/strings.xml b/packages/SettingsLib/RestrictedLockUtils/res/values-es/strings.xml index 35777a231fff..7c9864d7e81e 100644 --- a/packages/SettingsLib/RestrictedLockUtils/res/values-es/strings.xml +++ b/packages/SettingsLib/RestrictedLockUtils/res/values-es/strings.xml @@ -19,8 +19,6 @@      xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">      <string name="enabled_by_admin" msgid="6630472777476410137">"Habilitado por el administrador"</string>      <string name="disabled_by_admin" msgid="4023569940620832713">"Inhabilitado por el administrador"</string> -    <!-- no translation found for enabled_by_advanced_protection (6236917660829422499) --> -    <skip /> -    <!-- no translation found for disabled_by_advanced_protection (369596009193239632) --> -    <skip /> +    <string name="enabled_by_advanced_protection" msgid="6236917660829422499">"Habilitado por Protección Avanzada"</string> +    <string name="disabled_by_advanced_protection" msgid="369596009193239632">"Inhabilitado por Protección Avanzada"</string>  </resources> diff --git a/packages/SettingsLib/RestrictedLockUtils/res/values-et/strings.xml b/packages/SettingsLib/RestrictedLockUtils/res/values-et/strings.xml index 806d4b88ff5c..5939b584a0f2 100644 --- a/packages/SettingsLib/RestrictedLockUtils/res/values-et/strings.xml +++ b/packages/SettingsLib/RestrictedLockUtils/res/values-et/strings.xml @@ -19,8 +19,6 @@      xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">      <string name="enabled_by_admin" msgid="6630472777476410137">"Administraatori lubatud"</string>      <string name="disabled_by_admin" msgid="4023569940620832713">"Administraatori keelatud"</string> -    <!-- no translation found for enabled_by_advanced_protection (6236917660829422499) --> -    <skip /> -    <!-- no translation found for disabled_by_advanced_protection (369596009193239632) --> -    <skip /> +    <string name="enabled_by_advanced_protection" msgid="6236917660829422499">"Lubatud täiustatud kaitsega"</string> +    <string name="disabled_by_advanced_protection" msgid="369596009193239632">"Keelatud täiustatud kaitsega"</string>  </resources> diff --git a/packages/SettingsLib/RestrictedLockUtils/res/values-eu/strings.xml b/packages/SettingsLib/RestrictedLockUtils/res/values-eu/strings.xml index 4fe9b23eeaba..27bef6e92073 100644 --- a/packages/SettingsLib/RestrictedLockUtils/res/values-eu/strings.xml +++ b/packages/SettingsLib/RestrictedLockUtils/res/values-eu/strings.xml @@ -19,8 +19,6 @@      xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">      <string name="enabled_by_admin" msgid="6630472777476410137">"Administratzaileak gaitu egin du"</string>      <string name="disabled_by_admin" msgid="4023569940620832713">"Administratzaileak desgaitu du"</string> -    <!-- no translation found for enabled_by_advanced_protection (6236917660829422499) --> -    <skip /> -    <!-- no translation found for disabled_by_advanced_protection (369596009193239632) --> -    <skip /> +    <string name="enabled_by_advanced_protection" msgid="6236917660829422499">"Babes aurreratua programak gaitu du"</string> +    <string name="disabled_by_advanced_protection" msgid="369596009193239632">"Babes aurreratua programak desgaitu du"</string>  </resources> diff --git a/packages/SettingsLib/RestrictedLockUtils/res/values-fa/strings.xml b/packages/SettingsLib/RestrictedLockUtils/res/values-fa/strings.xml index 774cb9f15e10..8fb2646821dc 100644 --- a/packages/SettingsLib/RestrictedLockUtils/res/values-fa/strings.xml +++ b/packages/SettingsLib/RestrictedLockUtils/res/values-fa/strings.xml @@ -19,8 +19,6 @@      xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">      <string name="enabled_by_admin" msgid="6630472777476410137">"توسط سرپرست فعال شده"</string>      <string name="disabled_by_admin" msgid="4023569940620832713">"توسط سرپرست غیرفعال شده"</string> -    <!-- no translation found for enabled_by_advanced_protection (6236917660829422499) --> -    <skip /> -    <!-- no translation found for disabled_by_advanced_protection (369596009193239632) --> -    <skip /> +    <string name="enabled_by_advanced_protection" msgid="6236917660829422499">"فعالشده با «محافظت پیشرفته»"</string> +    <string name="disabled_by_advanced_protection" msgid="369596009193239632">"غیرفعالشده با «محافظت پیشرفته»"</string>  </resources> diff --git a/packages/SettingsLib/RestrictedLockUtils/res/values-fi/strings.xml b/packages/SettingsLib/RestrictedLockUtils/res/values-fi/strings.xml index c15882b3f650..cd7cbd3d83ca 100644 --- a/packages/SettingsLib/RestrictedLockUtils/res/values-fi/strings.xml +++ b/packages/SettingsLib/RestrictedLockUtils/res/values-fi/strings.xml @@ -19,8 +19,6 @@      xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">      <string name="enabled_by_admin" msgid="6630472777476410137">"Järjestelmänvalvojan sallima"</string>      <string name="disabled_by_admin" msgid="4023569940620832713">"Järjestelmänvalvojan estämä"</string> -    <!-- no translation found for enabled_by_advanced_protection (6236917660829422499) --> -    <skip /> -    <!-- no translation found for disabled_by_advanced_protection (369596009193239632) --> -    <skip /> +    <string name="enabled_by_advanced_protection" msgid="6236917660829422499">"Lisäsuojaus on ottanut asetuksen käyttöön"</string> +    <string name="disabled_by_advanced_protection" msgid="369596009193239632">"Lisäsuojaus on poistanut asetuksen käytöstä"</string>  </resources> diff --git a/packages/SettingsLib/RestrictedLockUtils/res/values-fr-rCA/strings.xml b/packages/SettingsLib/RestrictedLockUtils/res/values-fr-rCA/strings.xml index 188e9cbf72a7..8f0d572aa193 100644 --- a/packages/SettingsLib/RestrictedLockUtils/res/values-fr-rCA/strings.xml +++ b/packages/SettingsLib/RestrictedLockUtils/res/values-fr-rCA/strings.xml @@ -19,8 +19,6 @@      xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">      <string name="enabled_by_admin" msgid="6630472777476410137">"Activé par l\'administrateur"</string>      <string name="disabled_by_admin" msgid="4023569940620832713">"Désactivé par l\'administrateur"</string> -    <!-- no translation found for enabled_by_advanced_protection (6236917660829422499) --> -    <skip /> -    <!-- no translation found for disabled_by_advanced_protection (369596009193239632) --> -    <skip /> +    <string name="enabled_by_advanced_protection" msgid="6236917660829422499">"Activé par la protection avancée"</string> +    <string name="disabled_by_advanced_protection" msgid="369596009193239632">"Désactivé par la protection avancée"</string>  </resources> diff --git a/packages/SettingsLib/RestrictedLockUtils/res/values-fr/strings.xml b/packages/SettingsLib/RestrictedLockUtils/res/values-fr/strings.xml index 188e9cbf72a7..2215af24664c 100644 --- a/packages/SettingsLib/RestrictedLockUtils/res/values-fr/strings.xml +++ b/packages/SettingsLib/RestrictedLockUtils/res/values-fr/strings.xml @@ -19,8 +19,6 @@      xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">      <string name="enabled_by_admin" msgid="6630472777476410137">"Activé par l\'administrateur"</string>      <string name="disabled_by_admin" msgid="4023569940620832713">"Désactivé par l\'administrateur"</string> -    <!-- no translation found for enabled_by_advanced_protection (6236917660829422499) --> -    <skip /> -    <!-- no translation found for disabled_by_advanced_protection (369596009193239632) --> -    <skip /> +    <string name="enabled_by_advanced_protection" msgid="6236917660829422499">"Activé par la Protection Avancée"</string> +    <string name="disabled_by_advanced_protection" msgid="369596009193239632">"Désactivé par la Protection Avancée"</string>  </resources> diff --git a/packages/SettingsLib/RestrictedLockUtils/res/values-gl/strings.xml b/packages/SettingsLib/RestrictedLockUtils/res/values-gl/strings.xml index de603d05801a..92f33bbf2533 100644 --- a/packages/SettingsLib/RestrictedLockUtils/res/values-gl/strings.xml +++ b/packages/SettingsLib/RestrictedLockUtils/res/values-gl/strings.xml @@ -19,8 +19,6 @@      xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">      <string name="enabled_by_admin" msgid="6630472777476410137">"Opción activada polo administrador"</string>      <string name="disabled_by_admin" msgid="4023569940620832713">"Opción desactivada polo administrador"</string> -    <!-- no translation found for enabled_by_advanced_protection (6236917660829422499) --> -    <skip /> -    <!-- no translation found for disabled_by_advanced_protection (369596009193239632) --> -    <skip /> +    <string name="enabled_by_advanced_protection" msgid="6236917660829422499">"Opción activada por Protección avanzada"</string> +    <string name="disabled_by_advanced_protection" msgid="369596009193239632">"Opción desactivada por Protección avanzada"</string>  </resources> diff --git a/packages/SettingsLib/RestrictedLockUtils/res/values-gu/strings.xml b/packages/SettingsLib/RestrictedLockUtils/res/values-gu/strings.xml index 3ea8c49a1c08..026bdb1127d3 100644 --- a/packages/SettingsLib/RestrictedLockUtils/res/values-gu/strings.xml +++ b/packages/SettingsLib/RestrictedLockUtils/res/values-gu/strings.xml @@ -19,8 +19,6 @@      xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">      <string name="enabled_by_admin" msgid="6630472777476410137">"વ્યવસ્થાપકે ચાલુ કરેલ"</string>      <string name="disabled_by_admin" msgid="4023569940620832713">"ઍડમિને બંધ કરેલું"</string> -    <!-- no translation found for enabled_by_advanced_protection (6236917660829422499) --> -    <skip /> -    <!-- no translation found for disabled_by_advanced_protection (369596009193239632) --> -    <skip /> +    <string name="enabled_by_advanced_protection" msgid="6236917660829422499">"અદ્યતન સુરક્ષા દ્વારા ચાલુ કરવામાં આવી છે"</string> +    <string name="disabled_by_advanced_protection" msgid="369596009193239632">"અદ્યતન સુરક્ષા દ્વારા બંધ કરવામાં આવી છે"</string>  </resources> diff --git a/packages/SettingsLib/RestrictedLockUtils/res/values-hi/strings.xml b/packages/SettingsLib/RestrictedLockUtils/res/values-hi/strings.xml index 93ac326e7361..8fc8fd04ad93 100644 --- a/packages/SettingsLib/RestrictedLockUtils/res/values-hi/strings.xml +++ b/packages/SettingsLib/RestrictedLockUtils/res/values-hi/strings.xml @@ -19,8 +19,6 @@      xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">      <string name="enabled_by_admin" msgid="6630472777476410137">"एडमिन की ओर से चालू किया गया"</string>      <string name="disabled_by_admin" msgid="4023569940620832713">"एडमिन ने यह सुविधा बंद की हुई है"</string> -    <!-- no translation found for enabled_by_advanced_protection (6236917660829422499) --> -    <skip /> -    <!-- no translation found for disabled_by_advanced_protection (369596009193239632) --> -    <skip /> +    <string name="enabled_by_advanced_protection" msgid="6236917660829422499">"\'ऐडवांस सुरक्षा\' सेटिंग ने चालू किया है"</string> +    <string name="disabled_by_advanced_protection" msgid="369596009193239632">"\'ऐडवांस सुरक्षा\' सेटिंग ने बंद किया है"</string>  </resources> diff --git a/packages/SettingsLib/RestrictedLockUtils/res/values-hr/strings.xml b/packages/SettingsLib/RestrictedLockUtils/res/values-hr/strings.xml index a56917f9d286..40605a3b83fb 100644 --- a/packages/SettingsLib/RestrictedLockUtils/res/values-hr/strings.xml +++ b/packages/SettingsLib/RestrictedLockUtils/res/values-hr/strings.xml @@ -19,8 +19,6 @@      xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">      <string name="enabled_by_admin" msgid="6630472777476410137">"Omogućio administrator"</string>      <string name="disabled_by_admin" msgid="4023569940620832713">"Onemogućio administrator"</string> -    <!-- no translation found for enabled_by_advanced_protection (6236917660829422499) --> -    <skip /> -    <!-- no translation found for disabled_by_advanced_protection (369596009193239632) --> -    <skip /> +    <string name="enabled_by_advanced_protection" msgid="6236917660829422499">"Omogućila je napredna zaštita"</string> +    <string name="disabled_by_advanced_protection" msgid="369596009193239632">"Onemogućila je napredna zaštita"</string>  </resources> diff --git a/packages/SettingsLib/RestrictedLockUtils/res/values-hu/strings.xml b/packages/SettingsLib/RestrictedLockUtils/res/values-hu/strings.xml index 897729d12fa8..59135a42fd2a 100644 --- a/packages/SettingsLib/RestrictedLockUtils/res/values-hu/strings.xml +++ b/packages/SettingsLib/RestrictedLockUtils/res/values-hu/strings.xml @@ -19,8 +19,6 @@      xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">      <string name="enabled_by_admin" msgid="6630472777476410137">"A rendszergazda bekapcsolta"</string>      <string name="disabled_by_admin" msgid="4023569940620832713">"A rendszergazda letiltotta"</string> -    <!-- no translation found for enabled_by_advanced_protection (6236917660829422499) --> -    <skip /> -    <!-- no translation found for disabled_by_advanced_protection (369596009193239632) --> -    <skip /> +    <string name="enabled_by_advanced_protection" msgid="6236917660829422499">"Engedélyezte a Speciális védelem"</string> +    <string name="disabled_by_advanced_protection" msgid="369596009193239632">"Letiltotta a Speciális védelem"</string>  </resources> diff --git a/packages/SettingsLib/RestrictedLockUtils/res/values-hy/strings.xml b/packages/SettingsLib/RestrictedLockUtils/res/values-hy/strings.xml index 7c8e3492516f..0221f9333249 100644 --- a/packages/SettingsLib/RestrictedLockUtils/res/values-hy/strings.xml +++ b/packages/SettingsLib/RestrictedLockUtils/res/values-hy/strings.xml @@ -19,8 +19,6 @@      xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">      <string name="enabled_by_admin" msgid="6630472777476410137">"Միացված է ադմինիստրատորի կողմից"</string>      <string name="disabled_by_admin" msgid="4023569940620832713">"Անջատվել է ադմինիստրատորի կողմից"</string> -    <!-- no translation found for enabled_by_advanced_protection (6236917660829422499) --> -    <skip /> -    <!-- no translation found for disabled_by_advanced_protection (369596009193239632) --> -    <skip /> +    <string name="enabled_by_advanced_protection" msgid="6236917660829422499">"Միացվել է Լրացուցիչ պաշտպանության կողմից"</string> +    <string name="disabled_by_advanced_protection" msgid="369596009193239632">"Անջատվել է Լրացուցիչ պաշտպանության կողմից"</string>  </resources> diff --git a/packages/SettingsLib/RestrictedLockUtils/res/values-in/strings.xml b/packages/SettingsLib/RestrictedLockUtils/res/values-in/strings.xml index 0b08fdbd9620..6beb4c9b2c26 100644 --- a/packages/SettingsLib/RestrictedLockUtils/res/values-in/strings.xml +++ b/packages/SettingsLib/RestrictedLockUtils/res/values-in/strings.xml @@ -19,8 +19,6 @@      xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">      <string name="enabled_by_admin" msgid="6630472777476410137">"Diaktifkan oleh admin"</string>      <string name="disabled_by_admin" msgid="4023569940620832713">"Dinonaktifkan oleh admin"</string> -    <!-- no translation found for enabled_by_advanced_protection (6236917660829422499) --> -    <skip /> -    <!-- no translation found for disabled_by_advanced_protection (369596009193239632) --> -    <skip /> +    <string name="enabled_by_advanced_protection" msgid="6236917660829422499">"Diaktifkan oleh Perlindungan Lanjutan"</string> +    <string name="disabled_by_advanced_protection" msgid="369596009193239632">"Dinonaktifkan oleh Perlindungan Lanjutan"</string>  </resources> diff --git a/packages/SettingsLib/RestrictedLockUtils/res/values-is/strings.xml b/packages/SettingsLib/RestrictedLockUtils/res/values-is/strings.xml index 6a041c77def5..feb325bf2210 100644 --- a/packages/SettingsLib/RestrictedLockUtils/res/values-is/strings.xml +++ b/packages/SettingsLib/RestrictedLockUtils/res/values-is/strings.xml @@ -19,8 +19,6 @@      xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">      <string name="enabled_by_admin" msgid="6630472777476410137">"Gert virkt af kerfisstjóra"</string>      <string name="disabled_by_admin" msgid="4023569940620832713">"Gert óvirkt af kerfisstjóra"</string> -    <!-- no translation found for enabled_by_advanced_protection (6236917660829422499) --> -    <skip /> -    <!-- no translation found for disabled_by_advanced_protection (369596009193239632) --> -    <skip /> +    <string name="enabled_by_advanced_protection" msgid="6236917660829422499">"Virkjað af ítarlegri vernd"</string> +    <string name="disabled_by_advanced_protection" msgid="369596009193239632">"Gert óvirkt af ítarlegri vernd"</string>  </resources> diff --git a/packages/SettingsLib/RestrictedLockUtils/res/values-it/strings.xml b/packages/SettingsLib/RestrictedLockUtils/res/values-it/strings.xml index ee78ae8f11de..616392026b55 100644 --- a/packages/SettingsLib/RestrictedLockUtils/res/values-it/strings.xml +++ b/packages/SettingsLib/RestrictedLockUtils/res/values-it/strings.xml @@ -19,8 +19,6 @@      xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">      <string name="enabled_by_admin" msgid="6630472777476410137">"Attivata dall\'amministratore"</string>      <string name="disabled_by_admin" msgid="4023569940620832713">"Opzione disattivata dall\'amministratore"</string> -    <!-- no translation found for enabled_by_advanced_protection (6236917660829422499) --> -    <skip /> -    <!-- no translation found for disabled_by_advanced_protection (369596009193239632) --> -    <skip /> +    <string name="enabled_by_advanced_protection" msgid="6236917660829422499">"Attivata dalla protezione avanzata"</string> +    <string name="disabled_by_advanced_protection" msgid="369596009193239632">"Disattivata dalla protezione avanzata"</string>  </resources> diff --git a/packages/SettingsLib/RestrictedLockUtils/res/values-iw/strings.xml b/packages/SettingsLib/RestrictedLockUtils/res/values-iw/strings.xml index c24331841a1b..c342041f6c6e 100644 --- a/packages/SettingsLib/RestrictedLockUtils/res/values-iw/strings.xml +++ b/packages/SettingsLib/RestrictedLockUtils/res/values-iw/strings.xml @@ -19,8 +19,6 @@      xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">      <string name="enabled_by_admin" msgid="6630472777476410137">"מופעל על ידי מנהל המכשיר"</string>      <string name="disabled_by_admin" msgid="4023569940620832713">"האפשרות הושבתה על ידי האדמין"</string> -    <!-- no translation found for enabled_by_advanced_protection (6236917660829422499) --> -    <skip /> -    <!-- no translation found for disabled_by_advanced_protection (369596009193239632) --> -    <skip /> +    <string name="enabled_by_advanced_protection" msgid="6236917660829422499">"ההעדפה הופעלה על ידי ההגנה המתקדמת"</string> +    <string name="disabled_by_advanced_protection" msgid="369596009193239632">"ההעדפה הושבתה על ידי ההגנה המתקדמת"</string>  </resources> diff --git a/packages/SettingsLib/RestrictedLockUtils/res/values-ja/strings.xml b/packages/SettingsLib/RestrictedLockUtils/res/values-ja/strings.xml index e4aa5c9b1569..bd386f5858a9 100644 --- a/packages/SettingsLib/RestrictedLockUtils/res/values-ja/strings.xml +++ b/packages/SettingsLib/RestrictedLockUtils/res/values-ja/strings.xml @@ -19,8 +19,6 @@      xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">      <string name="enabled_by_admin" msgid="6630472777476410137">"管理者によって有効にされています"</string>      <string name="disabled_by_admin" msgid="4023569940620832713">"管理者により無効にされています"</string> -    <!-- no translation found for enabled_by_advanced_protection (6236917660829422499) --> -    <skip /> -    <!-- no translation found for disabled_by_advanced_protection (369596009193239632) --> -    <skip /> +    <string name="enabled_by_advanced_protection" msgid="6236917660829422499">"高度な保護機能により有効になっています"</string> +    <string name="disabled_by_advanced_protection" msgid="369596009193239632">"高度な保護機能により無効になっています"</string>  </resources> diff --git a/packages/SettingsLib/RestrictedLockUtils/res/values-ka/strings.xml b/packages/SettingsLib/RestrictedLockUtils/res/values-ka/strings.xml index 86248f681efa..a6fde9022a21 100644 --- a/packages/SettingsLib/RestrictedLockUtils/res/values-ka/strings.xml +++ b/packages/SettingsLib/RestrictedLockUtils/res/values-ka/strings.xml @@ -19,8 +19,6 @@      xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">      <string name="enabled_by_admin" msgid="6630472777476410137">"ჩართულია ადმინისტრატორის მიერ"</string>      <string name="disabled_by_admin" msgid="4023569940620832713">"გათიშულია ადმინისტრატორის მიერ"</string> -    <!-- no translation found for enabled_by_advanced_protection (6236917660829422499) --> -    <skip /> -    <!-- no translation found for disabled_by_advanced_protection (369596009193239632) --> -    <skip /> +    <string name="enabled_by_advanced_protection" msgid="6236917660829422499">"ჩართულია დამატებითი დაცვის საშუალებით"</string> +    <string name="disabled_by_advanced_protection" msgid="369596009193239632">"გათიშულია დამატებითი დაცვის საშუალებით"</string>  </resources> diff --git a/packages/SettingsLib/RestrictedLockUtils/res/values-kk/strings.xml b/packages/SettingsLib/RestrictedLockUtils/res/values-kk/strings.xml index b945c07a5a56..ed0f95c200f6 100644 --- a/packages/SettingsLib/RestrictedLockUtils/res/values-kk/strings.xml +++ b/packages/SettingsLib/RestrictedLockUtils/res/values-kk/strings.xml @@ -19,8 +19,6 @@      xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">      <string name="enabled_by_admin" msgid="6630472777476410137">"Әкімші қосқан"</string>      <string name="disabled_by_admin" msgid="4023569940620832713">"Әкімші өшірген"</string> -    <!-- no translation found for enabled_by_advanced_protection (6236917660829422499) --> -    <skip /> -    <!-- no translation found for disabled_by_advanced_protection (369596009193239632) --> -    <skip /> +    <string name="enabled_by_advanced_protection" msgid="6236917660829422499">"Күшейтілген қорғаныс параметрі қосып қойды."</string> +    <string name="disabled_by_advanced_protection" msgid="369596009193239632">"Күшейтілген қорғаныс параметрі өшіріп тастады."</string>  </resources> diff --git a/packages/SettingsLib/RestrictedLockUtils/res/values-km/strings.xml b/packages/SettingsLib/RestrictedLockUtils/res/values-km/strings.xml index 9deadfd996a0..f2f5ab8e1dbf 100644 --- a/packages/SettingsLib/RestrictedLockUtils/res/values-km/strings.xml +++ b/packages/SettingsLib/RestrictedLockUtils/res/values-km/strings.xml @@ -19,8 +19,6 @@      xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">      <string name="enabled_by_admin" msgid="6630472777476410137">"បើកដោយអ្នកគ្រប់គ្រង"</string>      <string name="disabled_by_admin" msgid="4023569940620832713">"បានបិទដោយអ្នកគ្រប់គ្រង"</string> -    <!-- no translation found for enabled_by_advanced_protection (6236917660829422499) --> -    <skip /> -    <!-- no translation found for disabled_by_advanced_protection (369596009193239632) --> -    <skip /> +    <string name="enabled_by_advanced_protection" msgid="6236917660829422499">"បានបើកដោយការការពារកម្រិតខ្ពស់"</string> +    <string name="disabled_by_advanced_protection" msgid="369596009193239632">"បានបិទដោយការការពារកម្រិតខ្ពស់"</string>  </resources> diff --git a/packages/SettingsLib/RestrictedLockUtils/res/values-kn/strings.xml b/packages/SettingsLib/RestrictedLockUtils/res/values-kn/strings.xml index 2af7fe2aa327..ebc41a52b4df 100644 --- a/packages/SettingsLib/RestrictedLockUtils/res/values-kn/strings.xml +++ b/packages/SettingsLib/RestrictedLockUtils/res/values-kn/strings.xml @@ -19,8 +19,6 @@      xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">      <string name="enabled_by_admin" msgid="6630472777476410137">"ನಿರ್ವಾಹಕರು ಸಕ್ರಿಯಗೊಳಿಸಿದ್ದಾರೆ"</string>      <string name="disabled_by_admin" msgid="4023569940620832713">"ನಿರ್ವಾಹಕರು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಿದ್ದಾರೆ"</string> -    <!-- no translation found for enabled_by_advanced_protection (6236917660829422499) --> -    <skip /> -    <!-- no translation found for disabled_by_advanced_protection (369596009193239632) --> -    <skip /> +    <string name="enabled_by_advanced_protection" msgid="6236917660829422499">"ಸುಧಾರಿತ ಸಂರಕ್ಷಣೆ ಮೂಲಕ ಸಕ್ರಿಯಗೊಳಿಸಲಾಗಿದೆ"</string> +    <string name="disabled_by_advanced_protection" msgid="369596009193239632">"ಸುಧಾರಿತ ಸಂರಕ್ಷಣೆ ಮೂಲಕ ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಲಾಗಿದೆ"</string>  </resources> diff --git a/packages/SettingsLib/RestrictedLockUtils/res/values-ko/strings.xml b/packages/SettingsLib/RestrictedLockUtils/res/values-ko/strings.xml index 62b781f9a87b..552662b4be95 100644 --- a/packages/SettingsLib/RestrictedLockUtils/res/values-ko/strings.xml +++ b/packages/SettingsLib/RestrictedLockUtils/res/values-ko/strings.xml @@ -19,8 +19,6 @@      xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">      <string name="enabled_by_admin" msgid="6630472777476410137">"관리자가 사용 설정함"</string>      <string name="disabled_by_admin" msgid="4023569940620832713">"관리자가 사용 중지함"</string> -    <!-- no translation found for enabled_by_advanced_protection (6236917660829422499) --> -    <skip /> -    <!-- no translation found for disabled_by_advanced_protection (369596009193239632) --> -    <skip /> +    <string name="enabled_by_advanced_protection" msgid="6236917660829422499">"고급 보호 기능으로 사용 설정됨"</string> +    <string name="disabled_by_advanced_protection" msgid="369596009193239632">"고급 보호 기능으로 사용 중지됨"</string>  </resources> diff --git a/packages/SettingsLib/RestrictedLockUtils/res/values-ky/strings.xml b/packages/SettingsLib/RestrictedLockUtils/res/values-ky/strings.xml index 8437e9e8b2c2..375ea19ff66e 100644 --- a/packages/SettingsLib/RestrictedLockUtils/res/values-ky/strings.xml +++ b/packages/SettingsLib/RestrictedLockUtils/res/values-ky/strings.xml @@ -19,8 +19,6 @@      xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">      <string name="enabled_by_admin" msgid="6630472777476410137">"Администратор иштетип койгон"</string>      <string name="disabled_by_admin" msgid="4023569940620832713">"Администратор өчүрүп койгон"</string> -    <!-- no translation found for enabled_by_advanced_protection (6236917660829422499) --> -    <skip /> -    <!-- no translation found for disabled_by_advanced_protection (369596009193239632) --> -    <skip /> +    <string name="enabled_by_advanced_protection" msgid="6236917660829422499">"Өркүндөтүлгөн коргоо тарабынан иштетилди"</string> +    <string name="disabled_by_advanced_protection" msgid="369596009193239632">"Өркүндөтүлгөн коргоо тарабынан өчүрүлдү"</string>  </resources> diff --git a/packages/SettingsLib/RestrictedLockUtils/res/values-lo/strings.xml b/packages/SettingsLib/RestrictedLockUtils/res/values-lo/strings.xml index be21bf4bd03e..4b311c0ce38d 100644 --- a/packages/SettingsLib/RestrictedLockUtils/res/values-lo/strings.xml +++ b/packages/SettingsLib/RestrictedLockUtils/res/values-lo/strings.xml @@ -19,8 +19,6 @@      xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">      <string name="enabled_by_admin" msgid="6630472777476410137">"ເປີດນຳໃຊ້ໂດຍຜູ້ເບິ່ງແຍງລະບົບ"</string>      <string name="disabled_by_admin" msgid="4023569940620832713">"ຖືກຜູ້ເບິ່ງແຍງລະບົບປິດໄວ້"</string> -    <!-- no translation found for enabled_by_advanced_protection (6236917660829422499) --> -    <skip /> -    <!-- no translation found for disabled_by_advanced_protection (369596009193239632) --> -    <skip /> +    <string name="enabled_by_advanced_protection" msgid="6236917660829422499">"ໄດ້ເປີດການນຳໃຊ້ໂດຍການປົກປ້ອງຂັ້ນສູງ"</string> +    <string name="disabled_by_advanced_protection" msgid="369596009193239632">"ໄດ້ປິດການນຳໃຊ້ໂດຍການປົກປ້ອງຂັ້ນສູງ"</string>  </resources> diff --git a/packages/SettingsLib/RestrictedLockUtils/res/values-lt/strings.xml b/packages/SettingsLib/RestrictedLockUtils/res/values-lt/strings.xml index b290a54e0d57..cbbe92374854 100644 --- a/packages/SettingsLib/RestrictedLockUtils/res/values-lt/strings.xml +++ b/packages/SettingsLib/RestrictedLockUtils/res/values-lt/strings.xml @@ -19,8 +19,6 @@      xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">      <string name="enabled_by_admin" msgid="6630472777476410137">"Įgalino administratorius"</string>      <string name="disabled_by_admin" msgid="4023569940620832713">"Išjungė administratorius"</string> -    <!-- no translation found for enabled_by_advanced_protection (6236917660829422499) --> -    <skip /> -    <!-- no translation found for disabled_by_advanced_protection (369596009193239632) --> -    <skip /> +    <string name="enabled_by_advanced_protection" msgid="6236917660829422499">"Įgalino Papildoma apsauga"</string> +    <string name="disabled_by_advanced_protection" msgid="369596009193239632">"Išjungė Papildoma apsauga"</string>  </resources> diff --git a/packages/SettingsLib/RestrictedLockUtils/res/values-lv/strings.xml b/packages/SettingsLib/RestrictedLockUtils/res/values-lv/strings.xml index 5f86f984e8be..a5189aa70ff8 100644 --- a/packages/SettingsLib/RestrictedLockUtils/res/values-lv/strings.xml +++ b/packages/SettingsLib/RestrictedLockUtils/res/values-lv/strings.xml @@ -19,8 +19,6 @@      xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">      <string name="enabled_by_admin" msgid="6630472777476410137">"Iespējoja administrators"</string>      <string name="disabled_by_admin" msgid="4023569940620832713">"Atspējoja administrators"</string> -    <!-- no translation found for enabled_by_advanced_protection (6236917660829422499) --> -    <skip /> -    <!-- no translation found for disabled_by_advanced_protection (369596009193239632) --> -    <skip /> +    <string name="enabled_by_advanced_protection" msgid="6236917660829422499">"Iespējota iestatījuma “Papildu aizsardzība” dēļ"</string> +    <string name="disabled_by_advanced_protection" msgid="369596009193239632">"Atspējota iestatījuma “Papildu aizsardzība” dēļ"</string>  </resources> diff --git a/packages/SettingsLib/RestrictedLockUtils/res/values-mk/strings.xml b/packages/SettingsLib/RestrictedLockUtils/res/values-mk/strings.xml index e3f0e75f39cd..993b4aea8b13 100644 --- a/packages/SettingsLib/RestrictedLockUtils/res/values-mk/strings.xml +++ b/packages/SettingsLib/RestrictedLockUtils/res/values-mk/strings.xml @@ -19,8 +19,6 @@      xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">      <string name="enabled_by_admin" msgid="6630472777476410137">"Овозможено од администраторот"</string>      <string name="disabled_by_admin" msgid="4023569940620832713">"Оневозможено од администраторот"</string> -    <!-- no translation found for enabled_by_advanced_protection (6236917660829422499) --> -    <skip /> -    <!-- no translation found for disabled_by_advanced_protection (369596009193239632) --> -    <skip /> +    <string name="enabled_by_advanced_protection" msgid="6236917660829422499">"Овозможено од „Напредна заштита“"</string> +    <string name="disabled_by_advanced_protection" msgid="369596009193239632">"Оневозможено од „Напредна заштита“"</string>  </resources> diff --git a/packages/SettingsLib/RestrictedLockUtils/res/values-ml/strings.xml b/packages/SettingsLib/RestrictedLockUtils/res/values-ml/strings.xml index fe1a4ae0d1e2..9deeb6aa2cfd 100644 --- a/packages/SettingsLib/RestrictedLockUtils/res/values-ml/strings.xml +++ b/packages/SettingsLib/RestrictedLockUtils/res/values-ml/strings.xml @@ -19,8 +19,6 @@      xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">      <string name="enabled_by_admin" msgid="6630472777476410137">"അഡ്മിൻ പ്രവർത്തനക്ഷമമാക്കി"</string>      <string name="disabled_by_admin" msgid="4023569940620832713">"അഡ്മിൻ പ്രവർത്തനരഹിതമാക്കി"</string> -    <!-- no translation found for enabled_by_advanced_protection (6236917660829422499) --> -    <skip /> -    <!-- no translation found for disabled_by_advanced_protection (369596009193239632) --> -    <skip /> +    <string name="enabled_by_advanced_protection" msgid="6236917660829422499">"വിപുലമായ പരിരക്ഷ പ്രവർത്തനക്ഷമമാക്കി"</string> +    <string name="disabled_by_advanced_protection" msgid="369596009193239632">"വിപുലമായ പരിരക്ഷ പ്രവർത്തനരഹിതമാക്കി"</string>  </resources> diff --git a/packages/SettingsLib/RestrictedLockUtils/res/values-mn/strings.xml b/packages/SettingsLib/RestrictedLockUtils/res/values-mn/strings.xml index c3799c36616b..c9a91de26591 100644 --- a/packages/SettingsLib/RestrictedLockUtils/res/values-mn/strings.xml +++ b/packages/SettingsLib/RestrictedLockUtils/res/values-mn/strings.xml @@ -19,8 +19,6 @@      xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">      <string name="enabled_by_admin" msgid="6630472777476410137">"Админ идэвхжүүлсэн"</string>      <string name="disabled_by_admin" msgid="4023569940620832713">"Админ цуцалсан"</string> -    <!-- no translation found for enabled_by_advanced_protection (6236917660829422499) --> -    <skip /> -    <!-- no translation found for disabled_by_advanced_protection (369596009193239632) --> -    <skip /> +    <string name="enabled_by_advanced_protection" msgid="6236917660829422499">"Дэвшилтэт хамгаалалтаар идэвхжүүлсэн"</string> +    <string name="disabled_by_advanced_protection" msgid="369596009193239632">"Дэвшилтэт хамгаалалтаар идэвхгүй болгосон"</string>  </resources> diff --git a/packages/SettingsLib/RestrictedLockUtils/res/values-mr/strings.xml b/packages/SettingsLib/RestrictedLockUtils/res/values-mr/strings.xml index 4e4660b376cb..ede12424de04 100644 --- a/packages/SettingsLib/RestrictedLockUtils/res/values-mr/strings.xml +++ b/packages/SettingsLib/RestrictedLockUtils/res/values-mr/strings.xml @@ -19,8 +19,6 @@      xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">      <string name="enabled_by_admin" msgid="6630472777476410137">"अॅडमिनने सुरू केलेले"</string>      <string name="disabled_by_admin" msgid="4023569940620832713">"अॅडमिनने बंद केलेले"</string> -    <!-- no translation found for enabled_by_advanced_protection (6236917660829422499) --> -    <skip /> -    <!-- no translation found for disabled_by_advanced_protection (369596009193239632) --> -    <skip /> +    <string name="enabled_by_advanced_protection" msgid="6236917660829422499">"प्रगत संरक्षणाद्वारे सुरू केले आहे"</string> +    <string name="disabled_by_advanced_protection" msgid="369596009193239632">"प्रगत संरक्षणाद्वारे बंद केले आहे"</string>  </resources> diff --git a/packages/SettingsLib/RestrictedLockUtils/res/values-ms/strings.xml b/packages/SettingsLib/RestrictedLockUtils/res/values-ms/strings.xml index 4bfcf2e59214..e8f710a7c909 100644 --- a/packages/SettingsLib/RestrictedLockUtils/res/values-ms/strings.xml +++ b/packages/SettingsLib/RestrictedLockUtils/res/values-ms/strings.xml @@ -19,8 +19,6 @@      xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">      <string name="enabled_by_admin" msgid="6630472777476410137">"Didayakan oleh pentadbir"</string>      <string name="disabled_by_admin" msgid="4023569940620832713">"Dilumpuhkan oleh pentadbir"</string> -    <!-- no translation found for enabled_by_advanced_protection (6236917660829422499) --> -    <skip /> -    <!-- no translation found for disabled_by_advanced_protection (369596009193239632) --> -    <skip /> +    <string name="enabled_by_advanced_protection" msgid="6236917660829422499">"Didayakan oleh Perlindungan Lanjutan"</string> +    <string name="disabled_by_advanced_protection" msgid="369596009193239632">"Dilumpuhkan oleh Perlindungan Lanjutan"</string>  </resources> diff --git a/packages/SettingsLib/RestrictedLockUtils/res/values-my/strings.xml b/packages/SettingsLib/RestrictedLockUtils/res/values-my/strings.xml index ef9ab1a987f7..97be99f43291 100644 --- a/packages/SettingsLib/RestrictedLockUtils/res/values-my/strings.xml +++ b/packages/SettingsLib/RestrictedLockUtils/res/values-my/strings.xml @@ -19,8 +19,6 @@      xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">      <string name="enabled_by_admin" msgid="6630472777476410137">"စီမံခန့်ခွဲသူက ဖွင့်ထားသည်"</string>      <string name="disabled_by_admin" msgid="4023569940620832713">"စီမံခန့်ခွဲသူက ပိတ်ထားသည်"</string> -    <!-- no translation found for enabled_by_advanced_protection (6236917660829422499) --> -    <skip /> -    <!-- no translation found for disabled_by_advanced_protection (369596009193239632) --> -    <skip /> +    <string name="enabled_by_advanced_protection" msgid="6236917660829422499">"အဆင့်မြင့်ကာကွယ်ရေးက ဖွင့်ထားသည်"</string> +    <string name="disabled_by_advanced_protection" msgid="369596009193239632">"အဆင့်မြင့်ကာကွယ်ရေးက ပိတ်ထားသည်"</string>  </resources> diff --git a/packages/SettingsLib/RestrictedLockUtils/res/values-nb/strings.xml b/packages/SettingsLib/RestrictedLockUtils/res/values-nb/strings.xml index 423d7ceb7f5c..971d1ccd190a 100644 --- a/packages/SettingsLib/RestrictedLockUtils/res/values-nb/strings.xml +++ b/packages/SettingsLib/RestrictedLockUtils/res/values-nb/strings.xml @@ -19,8 +19,6 @@      xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">      <string name="enabled_by_admin" msgid="6630472777476410137">"Aktivert av administratoren"</string>      <string name="disabled_by_admin" msgid="4023569940620832713">"Deaktivert av administratoren"</string> -    <!-- no translation found for enabled_by_advanced_protection (6236917660829422499) --> -    <skip /> -    <!-- no translation found for disabled_by_advanced_protection (369596009193239632) --> -    <skip /> +    <string name="enabled_by_advanced_protection" msgid="6236917660829422499">"Aktivert av Avansert beskyttelse"</string> +    <string name="disabled_by_advanced_protection" msgid="369596009193239632">"Deaktivert av Avansert beskyttelse"</string>  </resources> diff --git a/packages/SettingsLib/RestrictedLockUtils/res/values-ne/strings.xml b/packages/SettingsLib/RestrictedLockUtils/res/values-ne/strings.xml index 8793a81853df..3d2a74e3b270 100644 --- a/packages/SettingsLib/RestrictedLockUtils/res/values-ne/strings.xml +++ b/packages/SettingsLib/RestrictedLockUtils/res/values-ne/strings.xml @@ -19,8 +19,6 @@      xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">      <string name="enabled_by_admin" msgid="6630472777476410137">"प्रशासकद्वारा सक्षम पारिएको"</string>      <string name="disabled_by_admin" msgid="4023569940620832713">"एडमिनले अफ गरेको"</string> -    <!-- no translation found for enabled_by_advanced_protection (6236917660829422499) --> -    <skip /> -    <!-- no translation found for disabled_by_advanced_protection (369596009193239632) --> -    <skip /> +    <string name="enabled_by_advanced_protection" msgid="6236917660829422499">"सुरक्षासम्बन्धी उन्नत सुविधाले अन गरेको छ"</string> +    <string name="disabled_by_advanced_protection" msgid="369596009193239632">"सुरक्षासम्बन्धी उन्नत सुविधाले अफ गरेको छ"</string>  </resources> diff --git a/packages/SettingsLib/RestrictedLockUtils/res/values-nl/strings.xml b/packages/SettingsLib/RestrictedLockUtils/res/values-nl/strings.xml index 60bb02178c24..9830363c7f65 100644 --- a/packages/SettingsLib/RestrictedLockUtils/res/values-nl/strings.xml +++ b/packages/SettingsLib/RestrictedLockUtils/res/values-nl/strings.xml @@ -19,8 +19,6 @@      xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">      <string name="enabled_by_admin" msgid="6630472777476410137">"Aangezet door beheerder"</string>      <string name="disabled_by_admin" msgid="4023569940620832713">"Uitgezet door beheerder"</string> -    <!-- no translation found for enabled_by_advanced_protection (6236917660829422499) --> -    <skip /> -    <!-- no translation found for disabled_by_advanced_protection (369596009193239632) --> -    <skip /> +    <string name="enabled_by_advanced_protection" msgid="6236917660829422499">"Aangezet door Geavanceerde beveiliging"</string> +    <string name="disabled_by_advanced_protection" msgid="369596009193239632">"Uitgezet door Geavanceerde beveiliging"</string>  </resources> diff --git a/packages/SettingsLib/RestrictedLockUtils/res/values-or/strings.xml b/packages/SettingsLib/RestrictedLockUtils/res/values-or/strings.xml index 92004fb20def..2dab1592c296 100644 --- a/packages/SettingsLib/RestrictedLockUtils/res/values-or/strings.xml +++ b/packages/SettingsLib/RestrictedLockUtils/res/values-or/strings.xml @@ -19,8 +19,6 @@      xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">      <string name="enabled_by_admin" msgid="6630472777476410137">"ଆଡମିନଙ୍କ ଦ୍ୱାରା ସକ୍ଷମ କରାଯାଇଛି"</string>      <string name="disabled_by_admin" msgid="4023569940620832713">"ଆଡମିନଙ୍କ ଦ୍ଵାରା ଅକ୍ଷମ କରାଯାଇଛି"</string> -    <!-- no translation found for enabled_by_advanced_protection (6236917660829422499) --> -    <skip /> -    <!-- no translation found for disabled_by_advanced_protection (369596009193239632) --> -    <skip /> +    <string name="enabled_by_advanced_protection" msgid="6236917660829422499">"ଆଡଭାନ୍ସଡ ପ୍ରୋଟେକସନ ଦ୍ୱାରା ସକ୍ଷମ କରାଯାଇଛି"</string> +    <string name="disabled_by_advanced_protection" msgid="369596009193239632">"ଆଡଭାନ୍ସଡ ପ୍ରୋଟେକସନ ଦ୍ୱାରା ଅକ୍ଷମ କରାଯାଇଛି"</string>  </resources> diff --git a/packages/SettingsLib/RestrictedLockUtils/res/values-pa/strings.xml b/packages/SettingsLib/RestrictedLockUtils/res/values-pa/strings.xml index 144dd4ad276a..12f296a46b2d 100644 --- a/packages/SettingsLib/RestrictedLockUtils/res/values-pa/strings.xml +++ b/packages/SettingsLib/RestrictedLockUtils/res/values-pa/strings.xml @@ -19,8 +19,6 @@      xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">      <string name="enabled_by_admin" msgid="6630472777476410137">"ਪ੍ਰਸ਼ਾਸਕ ਵੱਲੋਂ ਚਾਲੂ ਕੀਤਾ ਗਿਆ"</string>      <string name="disabled_by_admin" msgid="4023569940620832713">"ਪ੍ਰਸ਼ਾਸਕ ਵੱਲੋਂ ਬੰਦ ਕੀਤਾ ਗਿਆ"</string> -    <!-- no translation found for enabled_by_advanced_protection (6236917660829422499) --> -    <skip /> -    <!-- no translation found for disabled_by_advanced_protection (369596009193239632) --> -    <skip /> +    <string name="enabled_by_advanced_protection" msgid="6236917660829422499">"ਅਡਵਾਂਸ ਸੁਰੱਖਿਆ ਵੱਲੋਂ ਚਾਲੂ ਕੀਤੀ ਗਈ"</string> +    <string name="disabled_by_advanced_protection" msgid="369596009193239632">"ਅਡਵਾਂਸ ਸੁਰੱਖਿਆ ਵੱਲੋਂ ਬੰਦ ਕੀਤੀ ਗਈ"</string>  </resources> diff --git a/packages/SettingsLib/RestrictedLockUtils/res/values-pl/strings.xml b/packages/SettingsLib/RestrictedLockUtils/res/values-pl/strings.xml index 13814e13be05..df7394766339 100644 --- a/packages/SettingsLib/RestrictedLockUtils/res/values-pl/strings.xml +++ b/packages/SettingsLib/RestrictedLockUtils/res/values-pl/strings.xml @@ -19,8 +19,6 @@      xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">      <string name="enabled_by_admin" msgid="6630472777476410137">"Włączone przez administratora"</string>      <string name="disabled_by_admin" msgid="4023569940620832713">"Wyłączone przez administratora"</string> -    <!-- no translation found for enabled_by_advanced_protection (6236917660829422499) --> -    <skip /> -    <!-- no translation found for disabled_by_advanced_protection (369596009193239632) --> -    <skip /> +    <string name="enabled_by_advanced_protection" msgid="6236917660829422499">"Włączone przez Ochronę zaawansowaną"</string> +    <string name="disabled_by_advanced_protection" msgid="369596009193239632">"Wyłączone przez Ochronę zaawansowaną"</string>  </resources> diff --git a/packages/SettingsLib/RestrictedLockUtils/res/values-pt-rBR/strings.xml b/packages/SettingsLib/RestrictedLockUtils/res/values-pt-rBR/strings.xml index 8e97ffc4c0d6..a705ba421910 100644 --- a/packages/SettingsLib/RestrictedLockUtils/res/values-pt-rBR/strings.xml +++ b/packages/SettingsLib/RestrictedLockUtils/res/values-pt-rBR/strings.xml @@ -19,8 +19,6 @@      xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">      <string name="enabled_by_admin" msgid="6630472777476410137">"Ativado pelo administrador"</string>      <string name="disabled_by_admin" msgid="4023569940620832713">"Desativado pelo administrador"</string> -    <!-- no translation found for enabled_by_advanced_protection (6236917660829422499) --> -    <skip /> -    <!-- no translation found for disabled_by_advanced_protection (369596009193239632) --> -    <skip /> +    <string name="enabled_by_advanced_protection" msgid="6236917660829422499">"Preferência ativada pela Proteção Avançada"</string> +    <string name="disabled_by_advanced_protection" msgid="369596009193239632">"Preferência desativada pela Proteção Avançada"</string>  </resources> diff --git a/packages/SettingsLib/RestrictedLockUtils/res/values-pt-rPT/strings.xml b/packages/SettingsLib/RestrictedLockUtils/res/values-pt-rPT/strings.xml index 8e97ffc4c0d6..b01118381478 100644 --- a/packages/SettingsLib/RestrictedLockUtils/res/values-pt-rPT/strings.xml +++ b/packages/SettingsLib/RestrictedLockUtils/res/values-pt-rPT/strings.xml @@ -19,8 +19,6 @@      xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">      <string name="enabled_by_admin" msgid="6630472777476410137">"Ativado pelo administrador"</string>      <string name="disabled_by_admin" msgid="4023569940620832713">"Desativado pelo administrador"</string> -    <!-- no translation found for enabled_by_advanced_protection (6236917660829422499) --> -    <skip /> -    <!-- no translation found for disabled_by_advanced_protection (369596009193239632) --> -    <skip /> +    <string name="enabled_by_advanced_protection" msgid="6236917660829422499">"Ativado pela Proteção avançada"</string> +    <string name="disabled_by_advanced_protection" msgid="369596009193239632">"Desativado pela Proteção avançada"</string>  </resources> diff --git a/packages/SettingsLib/RestrictedLockUtils/res/values-pt/strings.xml b/packages/SettingsLib/RestrictedLockUtils/res/values-pt/strings.xml index 8e97ffc4c0d6..a705ba421910 100644 --- a/packages/SettingsLib/RestrictedLockUtils/res/values-pt/strings.xml +++ b/packages/SettingsLib/RestrictedLockUtils/res/values-pt/strings.xml @@ -19,8 +19,6 @@      xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">      <string name="enabled_by_admin" msgid="6630472777476410137">"Ativado pelo administrador"</string>      <string name="disabled_by_admin" msgid="4023569940620832713">"Desativado pelo administrador"</string> -    <!-- no translation found for enabled_by_advanced_protection (6236917660829422499) --> -    <skip /> -    <!-- no translation found for disabled_by_advanced_protection (369596009193239632) --> -    <skip /> +    <string name="enabled_by_advanced_protection" msgid="6236917660829422499">"Preferência ativada pela Proteção Avançada"</string> +    <string name="disabled_by_advanced_protection" msgid="369596009193239632">"Preferência desativada pela Proteção Avançada"</string>  </resources> diff --git a/packages/SettingsLib/RestrictedLockUtils/res/values-ro/strings.xml b/packages/SettingsLib/RestrictedLockUtils/res/values-ro/strings.xml index 6120ef6e4290..3eb347abbc1b 100644 --- a/packages/SettingsLib/RestrictedLockUtils/res/values-ro/strings.xml +++ b/packages/SettingsLib/RestrictedLockUtils/res/values-ro/strings.xml @@ -19,8 +19,6 @@      xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">      <string name="enabled_by_admin" msgid="6630472777476410137">"Activat de administrator"</string>      <string name="disabled_by_admin" msgid="4023569940620832713">"Dezactivat de administrator"</string> -    <!-- no translation found for enabled_by_advanced_protection (6236917660829422499) --> -    <skip /> -    <!-- no translation found for disabled_by_advanced_protection (369596009193239632) --> -    <skip /> +    <string name="enabled_by_advanced_protection" msgid="6236917660829422499">"Activată de Protecția avansată"</string> +    <string name="disabled_by_advanced_protection" msgid="369596009193239632">"Dezactivată de Protecția avansată"</string>  </resources> diff --git a/packages/SettingsLib/RestrictedLockUtils/res/values-ru/strings.xml b/packages/SettingsLib/RestrictedLockUtils/res/values-ru/strings.xml index f06aa0641fd2..a004a1fe60da 100644 --- a/packages/SettingsLib/RestrictedLockUtils/res/values-ru/strings.xml +++ b/packages/SettingsLib/RestrictedLockUtils/res/values-ru/strings.xml @@ -19,8 +19,6 @@      xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">      <string name="enabled_by_admin" msgid="6630472777476410137">"Включено администратором"</string>      <string name="disabled_by_admin" msgid="4023569940620832713">"Отключено администратором"</string> -    <!-- no translation found for enabled_by_advanced_protection (6236917660829422499) --> -    <skip /> -    <!-- no translation found for disabled_by_advanced_protection (369596009193239632) --> -    <skip /> +    <string name="enabled_by_advanced_protection" msgid="6236917660829422499">"Включено Дополнительной защитой"</string> +    <string name="disabled_by_advanced_protection" msgid="369596009193239632">"Отключено Дополнительной защитой"</string>  </resources> diff --git a/packages/SettingsLib/RestrictedLockUtils/res/values-si/strings.xml b/packages/SettingsLib/RestrictedLockUtils/res/values-si/strings.xml index c9a9e23f903e..addc8b3ae15c 100644 --- a/packages/SettingsLib/RestrictedLockUtils/res/values-si/strings.xml +++ b/packages/SettingsLib/RestrictedLockUtils/res/values-si/strings.xml @@ -19,8 +19,6 @@      xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">      <string name="enabled_by_admin" msgid="6630472777476410137">"පරිපාලක විසින් සබල කර ඇත"</string>      <string name="disabled_by_admin" msgid="4023569940620832713">"ඔබගේ පරිපාලක විසින් අබල කර ඇත"</string> -    <!-- no translation found for enabled_by_advanced_protection (6236917660829422499) --> -    <skip /> -    <!-- no translation found for disabled_by_advanced_protection (369596009193239632) --> -    <skip /> +    <string name="enabled_by_advanced_protection" msgid="6236917660829422499">"උසස් ආරක්ෂණය මගින් සබල කර ඇත"</string> +    <string name="disabled_by_advanced_protection" msgid="369596009193239632">"උසස් ආරක්ෂණය මගින් අබල කර ඇත"</string>  </resources> diff --git a/packages/SettingsLib/RestrictedLockUtils/res/values-sk/strings.xml b/packages/SettingsLib/RestrictedLockUtils/res/values-sk/strings.xml index f6c1b6666983..0277696560b9 100644 --- a/packages/SettingsLib/RestrictedLockUtils/res/values-sk/strings.xml +++ b/packages/SettingsLib/RestrictedLockUtils/res/values-sk/strings.xml @@ -19,8 +19,6 @@      xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">      <string name="enabled_by_admin" msgid="6630472777476410137">"Povolené správcom"</string>      <string name="disabled_by_admin" msgid="4023569940620832713">"Zakázané správcom"</string> -    <!-- no translation found for enabled_by_advanced_protection (6236917660829422499) --> -    <skip /> -    <!-- no translation found for disabled_by_advanced_protection (369596009193239632) --> -    <skip /> +    <string name="enabled_by_advanced_protection" msgid="6236917660829422499">"Aktivované rozšírenou ochranou"</string> +    <string name="disabled_by_advanced_protection" msgid="369596009193239632">"Deaktivované rozšírenou ochranou"</string>  </resources> diff --git a/packages/SettingsLib/RestrictedLockUtils/res/values-sl/strings.xml b/packages/SettingsLib/RestrictedLockUtils/res/values-sl/strings.xml index 029cdefec092..eb886bcf1232 100644 --- a/packages/SettingsLib/RestrictedLockUtils/res/values-sl/strings.xml +++ b/packages/SettingsLib/RestrictedLockUtils/res/values-sl/strings.xml @@ -19,8 +19,6 @@      xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">      <string name="enabled_by_admin" msgid="6630472777476410137">"Omogočil skrbnik"</string>      <string name="disabled_by_admin" msgid="4023569940620832713">"Onemogočil skrbnik"</string> -    <!-- no translation found for enabled_by_advanced_protection (6236917660829422499) --> -    <skip /> -    <!-- no translation found for disabled_by_advanced_protection (369596009193239632) --> -    <skip /> +    <string name="enabled_by_advanced_protection" msgid="6236917660829422499">"Omogočila dodatna zaščita"</string> +    <string name="disabled_by_advanced_protection" msgid="369596009193239632">"Onemogočila dodatna zaščita"</string>  </resources> diff --git a/packages/SettingsLib/RestrictedLockUtils/res/values-sq/strings.xml b/packages/SettingsLib/RestrictedLockUtils/res/values-sq/strings.xml index 341d6bb29cc4..2de5ffe47c1c 100644 --- a/packages/SettingsLib/RestrictedLockUtils/res/values-sq/strings.xml +++ b/packages/SettingsLib/RestrictedLockUtils/res/values-sq/strings.xml @@ -19,8 +19,6 @@      xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">      <string name="enabled_by_admin" msgid="6630472777476410137">"Aktivizuar nga administratori"</string>      <string name="disabled_by_admin" msgid="4023569940620832713">"Çaktivizuar nga administratori"</string> -    <!-- no translation found for enabled_by_advanced_protection (6236917660829422499) --> -    <skip /> -    <!-- no translation found for disabled_by_advanced_protection (369596009193239632) --> -    <skip /> +    <string name="enabled_by_advanced_protection" msgid="6236917660829422499">"Aktivizuar nga \"Mbrojtja e përparuar\""</string> +    <string name="disabled_by_advanced_protection" msgid="369596009193239632">"Çaktivizuar nga \"Mbrojtja e përparuar\""</string>  </resources> diff --git a/packages/SettingsLib/RestrictedLockUtils/res/values-sr/strings.xml b/packages/SettingsLib/RestrictedLockUtils/res/values-sr/strings.xml index a783a02f1733..94f52a0b95a2 100644 --- a/packages/SettingsLib/RestrictedLockUtils/res/values-sr/strings.xml +++ b/packages/SettingsLib/RestrictedLockUtils/res/values-sr/strings.xml @@ -19,8 +19,6 @@      xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">      <string name="enabled_by_admin" msgid="6630472777476410137">"Администратор је омогућио"</string>      <string name="disabled_by_admin" msgid="4023569940620832713">"Администратор је онемогућио"</string> -    <!-- no translation found for enabled_by_advanced_protection (6236917660829422499) --> -    <skip /> -    <!-- no translation found for disabled_by_advanced_protection (369596009193239632) --> -    <skip /> +    <string name="enabled_by_advanced_protection" msgid="6236917660829422499">"Омогућила је Напредна заштита"</string> +    <string name="disabled_by_advanced_protection" msgid="369596009193239632">"Онемогућила је Напредна заштита"</string>  </resources> diff --git a/packages/SettingsLib/RestrictedLockUtils/res/values-sv/strings.xml b/packages/SettingsLib/RestrictedLockUtils/res/values-sv/strings.xml index c930d4745ca4..b41c4d8a8275 100644 --- a/packages/SettingsLib/RestrictedLockUtils/res/values-sv/strings.xml +++ b/packages/SettingsLib/RestrictedLockUtils/res/values-sv/strings.xml @@ -19,8 +19,6 @@      xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">      <string name="enabled_by_admin" msgid="6630472777476410137">"Aktiverad av administratör"</string>      <string name="disabled_by_admin" msgid="4023569940620832713">"Inaktiverad av administratören"</string> -    <!-- no translation found for enabled_by_advanced_protection (6236917660829422499) --> -    <skip /> -    <!-- no translation found for disabled_by_advanced_protection (369596009193239632) --> -    <skip /> +    <string name="enabled_by_advanced_protection" msgid="6236917660829422499">"Aktiverades av Avancerat skydd"</string> +    <string name="disabled_by_advanced_protection" msgid="369596009193239632">"Inaktiverades av Avancerat skydd"</string>  </resources> diff --git a/packages/SettingsLib/RestrictedLockUtils/res/values-sw/strings.xml b/packages/SettingsLib/RestrictedLockUtils/res/values-sw/strings.xml index d61c8fbc962f..4d2e0d994972 100644 --- a/packages/SettingsLib/RestrictedLockUtils/res/values-sw/strings.xml +++ b/packages/SettingsLib/RestrictedLockUtils/res/values-sw/strings.xml @@ -19,8 +19,6 @@      xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">      <string name="enabled_by_admin" msgid="6630472777476410137">"Imewashwa na msimamizi"</string>      <string name="disabled_by_admin" msgid="4023569940620832713">"Imezimwa na msimamizi"</string> -    <!-- no translation found for enabled_by_advanced_protection (6236917660829422499) --> -    <skip /> -    <!-- no translation found for disabled_by_advanced_protection (369596009193239632) --> -    <skip /> +    <string name="enabled_by_advanced_protection" msgid="6236917660829422499">"Imewashwa kwa kutumia Ulinzi wa Hali ya Juu"</string> +    <string name="disabled_by_advanced_protection" msgid="369596009193239632">"Imezimwa kwa kutumia Ulinzi wa Hali ya Juu"</string>  </resources> diff --git a/packages/SettingsLib/RestrictedLockUtils/res/values-ta/strings.xml b/packages/SettingsLib/RestrictedLockUtils/res/values-ta/strings.xml index b39f76ff55df..55b300657eaf 100644 --- a/packages/SettingsLib/RestrictedLockUtils/res/values-ta/strings.xml +++ b/packages/SettingsLib/RestrictedLockUtils/res/values-ta/strings.xml @@ -19,8 +19,6 @@      xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">      <string name="enabled_by_admin" msgid="6630472777476410137">"நிர்வாகி இயக்கியுள்ளார்"</string>      <string name="disabled_by_admin" msgid="4023569940620832713">"நிர்வாகி முடக்கியுள்ளார்"</string> -    <!-- no translation found for enabled_by_advanced_protection (6236917660829422499) --> -    <skip /> -    <!-- no translation found for disabled_by_advanced_protection (369596009193239632) --> -    <skip /> +    <string name="enabled_by_advanced_protection" msgid="6236917660829422499">"மேம்பட்ட பாதுகாப்பு அமைப்பால் இயக்கப்பட்டது"</string> +    <string name="disabled_by_advanced_protection" msgid="369596009193239632">"மேம்பட்ட பாதுகாப்பு அமைப்பால் முடக்கப்பட்டது"</string>  </resources> diff --git a/packages/SettingsLib/RestrictedLockUtils/res/values-te/strings.xml b/packages/SettingsLib/RestrictedLockUtils/res/values-te/strings.xml index 4b8cd74e77c2..fc6d00b22d34 100644 --- a/packages/SettingsLib/RestrictedLockUtils/res/values-te/strings.xml +++ b/packages/SettingsLib/RestrictedLockUtils/res/values-te/strings.xml @@ -19,8 +19,6 @@      xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">      <string name="enabled_by_admin" msgid="6630472777476410137">"అడ్మిన్ ఎనేబుల్ చేశారు"</string>      <string name="disabled_by_admin" msgid="4023569940620832713">"అడ్మిన్ డిజేబుల్ చేశారు"</string> -    <!-- no translation found for enabled_by_advanced_protection (6236917660829422499) --> -    <skip /> -    <!-- no translation found for disabled_by_advanced_protection (369596009193239632) --> -    <skip /> +    <string name="enabled_by_advanced_protection" msgid="6236917660829422499">"అడ్వాన్స్డ్ ప్రొటెక్షన్ ద్వారా ఎనేబుల్ చేయబడింది"</string> +    <string name="disabled_by_advanced_protection" msgid="369596009193239632">"అడ్వాన్స్డ్ ప్రొటెక్షన్ ద్వారా డిజేబుల్ చేయబడింది"</string>  </resources> diff --git a/packages/SettingsLib/RestrictedLockUtils/res/values-th/strings.xml b/packages/SettingsLib/RestrictedLockUtils/res/values-th/strings.xml index 414d3c1fb2b5..51da8dec6443 100644 --- a/packages/SettingsLib/RestrictedLockUtils/res/values-th/strings.xml +++ b/packages/SettingsLib/RestrictedLockUtils/res/values-th/strings.xml @@ -19,8 +19,6 @@      xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">      <string name="enabled_by_admin" msgid="6630472777476410137">"เปิดใช้โดยผู้ดูแลระบบ"</string>      <string name="disabled_by_admin" msgid="4023569940620832713">"ปิดใช้โดยผู้ดูแลระบบ"</string> -    <!-- no translation found for enabled_by_advanced_protection (6236917660829422499) --> -    <skip /> -    <!-- no translation found for disabled_by_advanced_protection (369596009193239632) --> -    <skip /> +    <string name="enabled_by_advanced_protection" msgid="6236917660829422499">"เปิดใช้โดยการปกป้องขั้นสูง"</string> +    <string name="disabled_by_advanced_protection" msgid="369596009193239632">"ปิดใช้โดยการปกป้องขั้นสูง"</string>  </resources> diff --git a/packages/SettingsLib/RestrictedLockUtils/res/values-tl/strings.xml b/packages/SettingsLib/RestrictedLockUtils/res/values-tl/strings.xml index 34a057d3724b..7fbf0e7ace73 100644 --- a/packages/SettingsLib/RestrictedLockUtils/res/values-tl/strings.xml +++ b/packages/SettingsLib/RestrictedLockUtils/res/values-tl/strings.xml @@ -19,8 +19,6 @@      xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">      <string name="enabled_by_admin" msgid="6630472777476410137">"Na-enable ng admin"</string>      <string name="disabled_by_admin" msgid="4023569940620832713">"Na-disable ng admin"</string> -    <!-- no translation found for enabled_by_advanced_protection (6236917660829422499) --> -    <skip /> -    <!-- no translation found for disabled_by_advanced_protection (369596009193239632) --> -    <skip /> +    <string name="enabled_by_advanced_protection" msgid="6236917660829422499">"Na-enable ng Advanced na Proteksyon"</string> +    <string name="disabled_by_advanced_protection" msgid="369596009193239632">"Na-disable ng Advanced na Proteksyon"</string>  </resources> diff --git a/packages/SettingsLib/RestrictedLockUtils/res/values-tr/strings.xml b/packages/SettingsLib/RestrictedLockUtils/res/values-tr/strings.xml index f8d1f557f2dd..a529ca557ba1 100644 --- a/packages/SettingsLib/RestrictedLockUtils/res/values-tr/strings.xml +++ b/packages/SettingsLib/RestrictedLockUtils/res/values-tr/strings.xml @@ -19,8 +19,6 @@      xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">      <string name="enabled_by_admin" msgid="6630472777476410137">"Yönetici tarafından etkinleştirildi"</string>      <string name="disabled_by_admin" msgid="4023569940620832713">"Yönetici tarafından devre dışı bırakıldı"</string> -    <!-- no translation found for enabled_by_advanced_protection (6236917660829422499) --> -    <skip /> -    <!-- no translation found for disabled_by_advanced_protection (369596009193239632) --> -    <skip /> +    <string name="enabled_by_advanced_protection" msgid="6236917660829422499">"Gelişmiş Koruma tarafından etkinleştirildi"</string> +    <string name="disabled_by_advanced_protection" msgid="369596009193239632">"Gelişmiş Koruma tarafından devre dışı bırakıldı"</string>  </resources> diff --git a/packages/SettingsLib/RestrictedLockUtils/res/values-uk/strings.xml b/packages/SettingsLib/RestrictedLockUtils/res/values-uk/strings.xml index 2fa4634440d3..fdf4160b1bb0 100644 --- a/packages/SettingsLib/RestrictedLockUtils/res/values-uk/strings.xml +++ b/packages/SettingsLib/RestrictedLockUtils/res/values-uk/strings.xml @@ -19,8 +19,6 @@      xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">      <string name="enabled_by_admin" msgid="6630472777476410137">"Увімкнено адміністратором"</string>      <string name="disabled_by_admin" msgid="4023569940620832713">"Вимкнено адміністратором"</string> -    <!-- no translation found for enabled_by_advanced_protection (6236917660829422499) --> -    <skip /> -    <!-- no translation found for disabled_by_advanced_protection (369596009193239632) --> -    <skip /> +    <string name="enabled_by_advanced_protection" msgid="6236917660829422499">"Увімкнено Додатковим захистом"</string> +    <string name="disabled_by_advanced_protection" msgid="369596009193239632">"Вимкнено Додатковим захистом"</string>  </resources> diff --git a/packages/SettingsLib/RestrictedLockUtils/res/values-ur/strings.xml b/packages/SettingsLib/RestrictedLockUtils/res/values-ur/strings.xml index 940130951ab4..b40cb6827523 100644 --- a/packages/SettingsLib/RestrictedLockUtils/res/values-ur/strings.xml +++ b/packages/SettingsLib/RestrictedLockUtils/res/values-ur/strings.xml @@ -19,8 +19,6 @@      xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">      <string name="enabled_by_admin" msgid="6630472777476410137">"منتظم کی طرف سے فعال کردہ"</string>      <string name="disabled_by_admin" msgid="4023569940620832713">"منتظم کی طرف سے غیر فعال کردہ"</string> -    <!-- no translation found for enabled_by_advanced_protection (6236917660829422499) --> -    <skip /> -    <!-- no translation found for disabled_by_advanced_protection (369596009193239632) --> -    <skip /> +    <string name="enabled_by_advanced_protection" msgid="6236917660829422499">"اعلی تحفظ نے فعال کیا ہے"</string> +    <string name="disabled_by_advanced_protection" msgid="369596009193239632">"اعلی تحفظ نے غیر فعال کیا ہے"</string>  </resources> diff --git a/packages/SettingsLib/RestrictedLockUtils/res/values-uz/strings.xml b/packages/SettingsLib/RestrictedLockUtils/res/values-uz/strings.xml index a726e6cec473..9a27735407e2 100644 --- a/packages/SettingsLib/RestrictedLockUtils/res/values-uz/strings.xml +++ b/packages/SettingsLib/RestrictedLockUtils/res/values-uz/strings.xml @@ -19,8 +19,6 @@      xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">      <string name="enabled_by_admin" msgid="6630472777476410137">"Administrator tomonidan yoqilgan"</string>      <string name="disabled_by_admin" msgid="4023569940620832713">"Administrator tomonidan faolsizlantirilgan"</string> -    <!-- no translation found for enabled_by_advanced_protection (6236917660829422499) --> -    <skip /> -    <!-- no translation found for disabled_by_advanced_protection (369596009193239632) --> -    <skip /> +    <string name="enabled_by_advanced_protection" msgid="6236917660829422499">"Kuchaytirilgan himoya tomonidan yoqilgan"</string> +    <string name="disabled_by_advanced_protection" msgid="369596009193239632">"Kuchaytirilgan himoya tomonidan faolsizlantirilgan"</string>  </resources> diff --git a/packages/SettingsLib/RestrictedLockUtils/res/values-vi/strings.xml b/packages/SettingsLib/RestrictedLockUtils/res/values-vi/strings.xml index 63bb27ab8d9c..3436762f8355 100644 --- a/packages/SettingsLib/RestrictedLockUtils/res/values-vi/strings.xml +++ b/packages/SettingsLib/RestrictedLockUtils/res/values-vi/strings.xml @@ -19,8 +19,6 @@      xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">      <string name="enabled_by_admin" msgid="6630472777476410137">"Do quản trị viên bật"</string>      <string name="disabled_by_admin" msgid="4023569940620832713">"Quản trị viên đã vô hiệu hóa chế độ này"</string> -    <!-- no translation found for enabled_by_advanced_protection (6236917660829422499) --> -    <skip /> -    <!-- no translation found for disabled_by_advanced_protection (369596009193239632) --> -    <skip /> +    <string name="enabled_by_advanced_protection" msgid="6236917660829422499">"Được bật bởi chế độ Bảo vệ nâng cao"</string> +    <string name="disabled_by_advanced_protection" msgid="369596009193239632">"Bị tắt bởi chế độ Bảo vệ nâng cao"</string>  </resources> diff --git a/packages/SettingsLib/RestrictedLockUtils/res/values-zh-rCN/strings.xml b/packages/SettingsLib/RestrictedLockUtils/res/values-zh-rCN/strings.xml index 5698cf3a81ec..5c9e302f274c 100644 --- a/packages/SettingsLib/RestrictedLockUtils/res/values-zh-rCN/strings.xml +++ b/packages/SettingsLib/RestrictedLockUtils/res/values-zh-rCN/strings.xml @@ -19,8 +19,6 @@      xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">      <string name="enabled_by_admin" msgid="6630472777476410137">"已被管理员启用"</string>      <string name="disabled_by_admin" msgid="4023569940620832713">"已被管理员停用"</string> -    <!-- no translation found for enabled_by_advanced_protection (6236917660829422499) --> -    <skip /> -    <!-- no translation found for disabled_by_advanced_protection (369596009193239632) --> -    <skip /> +    <string name="enabled_by_advanced_protection" msgid="6236917660829422499">"已被“高级保护”功能启用"</string> +    <string name="disabled_by_advanced_protection" msgid="369596009193239632">"已被“高级保护”功能停用"</string>  </resources> diff --git a/packages/SettingsLib/RestrictedLockUtils/res/values-zh-rHK/strings.xml b/packages/SettingsLib/RestrictedLockUtils/res/values-zh-rHK/strings.xml index f37ccd89364b..d4b883355cf3 100644 --- a/packages/SettingsLib/RestrictedLockUtils/res/values-zh-rHK/strings.xml +++ b/packages/SettingsLib/RestrictedLockUtils/res/values-zh-rHK/strings.xml @@ -19,8 +19,6 @@      xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">      <string name="enabled_by_admin" msgid="6630472777476410137">"已由管理員啟用"</string>      <string name="disabled_by_admin" msgid="4023569940620832713">"已由管理員停用"</string> -    <!-- no translation found for enabled_by_advanced_protection (6236917660829422499) --> -    <skip /> -    <!-- no translation found for disabled_by_advanced_protection (369596009193239632) --> -    <skip /> +    <string name="enabled_by_advanced_protection" msgid="6236917660829422499">"已由進階保護功能啟用"</string> +    <string name="disabled_by_advanced_protection" msgid="369596009193239632">"已由進階保護功能停用"</string>  </resources> diff --git a/packages/SettingsLib/RestrictedLockUtils/res/values-zh-rTW/strings.xml b/packages/SettingsLib/RestrictedLockUtils/res/values-zh-rTW/strings.xml index f37ccd89364b..d4b883355cf3 100644 --- a/packages/SettingsLib/RestrictedLockUtils/res/values-zh-rTW/strings.xml +++ b/packages/SettingsLib/RestrictedLockUtils/res/values-zh-rTW/strings.xml @@ -19,8 +19,6 @@      xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">      <string name="enabled_by_admin" msgid="6630472777476410137">"已由管理員啟用"</string>      <string name="disabled_by_admin" msgid="4023569940620832713">"已由管理員停用"</string> -    <!-- no translation found for enabled_by_advanced_protection (6236917660829422499) --> -    <skip /> -    <!-- no translation found for disabled_by_advanced_protection (369596009193239632) --> -    <skip /> +    <string name="enabled_by_advanced_protection" msgid="6236917660829422499">"已由進階保護功能啟用"</string> +    <string name="disabled_by_advanced_protection" msgid="369596009193239632">"已由進階保護功能停用"</string>  </resources> diff --git a/packages/SettingsLib/RestrictedLockUtils/res/values-zu/strings.xml b/packages/SettingsLib/RestrictedLockUtils/res/values-zu/strings.xml index 848992574c97..2a93d00d687f 100644 --- a/packages/SettingsLib/RestrictedLockUtils/res/values-zu/strings.xml +++ b/packages/SettingsLib/RestrictedLockUtils/res/values-zu/strings.xml @@ -19,8 +19,6 @@      xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">      <string name="enabled_by_admin" msgid="6630472777476410137">"Kunikwe amandla umlawuli"</string>      <string name="disabled_by_admin" msgid="4023569940620832713">"Kukhutshazwe umlawuli"</string> -    <!-- no translation found for enabled_by_advanced_protection (6236917660829422499) --> -    <skip /> -    <!-- no translation found for disabled_by_advanced_protection (369596009193239632) --> -    <skip /> +    <string name="enabled_by_advanced_protection" msgid="6236917660829422499">"Kunikwe Amandla Ukuvikela Okuthuthukile"</string> +    <string name="disabled_by_advanced_protection" msgid="369596009193239632">"Kukhutshazwe Ukuvikela Okuthuthukile"</string>  </resources> diff --git a/packages/SystemUI/AndroidManifest.xml b/packages/SystemUI/AndroidManifest.xml index e0117368515b..5519b5171090 100644 --- a/packages/SystemUI/AndroidManifest.xml +++ b/packages/SystemUI/AndroidManifest.xml @@ -459,7 +459,7 @@                    android:label="@string/screenshot_scroll_label"                    android:finishOnTaskLaunch="true" /> -        <service android:name=".screenshot.ScreenshotProxyService" +        <service android:name=".screenshot.proxy.ScreenshotProxyService"                   android:permission="com.android.systemui.permission.SELF"                   android:exported="false" /> @@ -490,6 +490,7 @@          <activity android:name=".touchpad.tutorial.ui.view.TouchpadTutorialActivity"              android:exported="true"              android:showForAllUsers="true" +            android:excludeFromRecents="true"              android:theme="@style/Theme.AppCompat.NoActionBar">              <intent-filter>                  <action android:name="com.android.systemui.action.TOUCHPAD_TUTORIAL"/> @@ -500,6 +501,7 @@          <activity android:name=".inputdevice.tutorial.ui.view.KeyboardTouchpadTutorialActivity"              android:exported="true"              android:showForAllUsers="true" +            android:excludeFromRecents="true"              android:theme="@style/Theme.AppCompat.NoActionBar">              <intent-filter>                  <action android:name="com.android.systemui.action.TOUCHPAD_KEYBOARD_TUTORIAL"/> diff --git a/packages/SystemUI/aconfig/systemui.aconfig b/packages/SystemUI/aconfig/systemui.aconfig index 90434f5a7f7b..c1f786826922 100644 --- a/packages/SystemUI/aconfig/systemui.aconfig +++ b/packages/SystemUI/aconfig/systemui.aconfig @@ -1801,16 +1801,6 @@ flag {  }  flag { -  name: "ensure_enr_views_visibility" -  namespace: "systemui" -  description: "Ensures public and private visibilities" -  bug: "361552380" -  metadata { -    purpose: PURPOSE_BUGFIX -  } -} - -flag {    name: "shade_expands_on_status_bar_long_press"    namespace: "systemui"    description: "Expands the shade on long press of any status bar" @@ -1889,3 +1879,10 @@ flag {      description: "Implement the depth push scaling effect on the current app when users pull down shade."      bug: "370560660"  } + +flag { +    name: "expanded_privacy_indicators_on_large_screen" +    namespace: "systemui" +    description: "Larger privacy indicators on large screen" +    bug: "381864715" +} diff --git a/packages/SystemUI/animation/lib/src/com/android/systemui/animation/server/IOriginTransitionsImpl.java b/packages/SystemUI/animation/lib/src/com/android/systemui/animation/server/IOriginTransitionsImpl.java index 6b26ac5f4692..3b66460140c9 100644 --- a/packages/SystemUI/animation/lib/src/com/android/systemui/animation/server/IOriginTransitionsImpl.java +++ b/packages/SystemUI/animation/lib/src/com/android/systemui/animation/server/IOriginTransitionsImpl.java @@ -438,7 +438,8 @@ public class IOriginTransitionsImpl extends IOriginTransitions.Stub {              if (forPredictiveBackTakeover) {                  filter.mTypeSet = new int[] {TRANSIT_PREPARE_BACK_NAVIGATION};              } else { -                filter.mTypeSet = new int[] {TRANSIT_CLOSE, TRANSIT_TO_BACK}; +                filter.mTypeSet = +                        new int[] {TRANSIT_CLOSE, TRANSIT_TO_BACK, TRANSIT_OPEN, TRANSIT_TO_FRONT};              }              // The opening activity of the return transition must match the activity we just closed. diff --git a/packages/SystemUI/compose/features/src/com/android/systemui/keyguard/ui/composable/AlternateBouncer.kt b/packages/SystemUI/compose/features/src/com/android/systemui/keyguard/ui/composable/AlternateBouncer.kt index 1475795e2dc6..d02215083679 100644 --- a/packages/SystemUI/compose/features/src/com/android/systemui/keyguard/ui/composable/AlternateBouncer.kt +++ b/packages/SystemUI/compose/features/src/com/android/systemui/keyguard/ui/composable/AlternateBouncer.kt @@ -18,6 +18,7 @@ package com.android.systemui.keyguard.ui.composable  import androidx.compose.animation.AnimatedVisibility  import androidx.compose.animation.Crossfade +import androidx.compose.animation.core.MutableTransitionState  import androidx.compose.animation.core.tween  import androidx.compose.animation.fadeIn  import androidx.compose.animation.fadeOut @@ -29,7 +30,9 @@ import androidx.compose.foundation.layout.offset  import androidx.compose.foundation.layout.padding  import androidx.compose.material3.Text  import androidx.compose.runtime.Composable +import androidx.compose.runtime.LaunchedEffect  import androidx.compose.runtime.getValue +import androidx.compose.runtime.remember  import androidx.compose.ui.Alignment  import androidx.compose.ui.Modifier  import androidx.compose.ui.graphics.Color @@ -60,13 +63,25 @@ import kotlinx.coroutines.ExperimentalCoroutinesApi  @Composable  fun AlternateBouncer(      alternateBouncerDependencies: AlternateBouncerDependencies, +    onHideAnimationFinished: () -> Unit,      modifier: Modifier = Modifier,  ) {      val isVisible by -        alternateBouncerDependencies.viewModel.isVisible.collectAsStateWithLifecycle( -            initialValue = false -        ) +        alternateBouncerDependencies.viewModel.isVisible.collectAsStateWithLifecycle(true) +    val visibleState = remember { MutableTransitionState(isVisible) } + +    // Feeds the isVisible value to the MutableTransitionState used by AnimatedVisibility below. +    LaunchedEffect(isVisible) { visibleState.targetState = isVisible } + +    // Watches the MutableTransitionState and calls onHideAnimationFinished when the fade out +    // animation is finished. This way the window view is removed from the view hierarchy only after +    // the fade out animation is complete. +    LaunchedEffect(visibleState.currentState, visibleState.isIdle) { +        if (!visibleState.currentState && visibleState.isIdle) { +            onHideAnimationFinished() +        } +    }      val udfpsIconLocation by          alternateBouncerDependencies.udfpsIconViewModel.iconLocation.collectAsStateWithLifecycle( @@ -74,7 +89,7 @@ fun AlternateBouncer(          )      AnimatedVisibility( -        visible = isVisible, +        visibleState = visibleState,          enter = fadeIn(),          exit = fadeOut(),          modifier = modifier, diff --git a/packages/SystemUI/compose/scene/src/com/android/compose/animation/scene/DraggableHandler.kt b/packages/SystemUI/compose/scene/src/com/android/compose/animation/scene/DraggableHandler.kt index 7a8d20a7b85d..caf5e41576f3 100644 --- a/packages/SystemUI/compose/scene/src/com/android/compose/animation/scene/DraggableHandler.kt +++ b/packages/SystemUI/compose/scene/src/com/android/compose/animation/scene/DraggableHandler.kt @@ -124,7 +124,7 @@ internal class DraggableHandlerImpl(          return newDragController      } -    internal fun createSwipeAnimation(swipes: Swipes, result: UserActionResult): SwipeAnimation<*> { +    private fun createSwipeAnimation(swipes: Swipes, result: UserActionResult): SwipeAnimation<*> {          val upOrLeftResult = swipes.upOrLeftResult          val downOrRightResult = swipes.downOrRightResult          val isUpOrLeft = @@ -248,38 +248,8 @@ private class DragControllerImpl(                  else -> desiredOffset.fastCoerceIn(distance, 0f)              } -        val consumedDelta = newOffset - previousOffset -          swipeAnimation.dragOffset = newOffset -        val result = swipes.findUserActionResult(directionOffset = newOffset) - -        if (result == null) { -            onCancel(canChangeContent = true) -            return 0f -        } - -        val currentTransitionIrreversible = -            if (swipeAnimation.isUpOrLeft) { -                swipes.upOrLeftResult?.isIrreversible ?: false -            } else { -                swipes.downOrRightResult?.isIrreversible ?: false -            } - -        val needNewTransition = -            !currentTransitionIrreversible && -                (result.toContent(layoutState.currentScene) != swipeAnimation.toContent || -                    result.transitionKey != swipeAnimation.contentTransition.key) - -        if (needNewTransition) { -            // Make sure the current transition will finish to the right current scene. -            swipeAnimation.currentContent = swipeAnimation.fromContent - -            val newSwipeAnimation = draggableHandler.createSwipeAnimation(swipes, result) -            newSwipeAnimation.dragOffset = newOffset -            updateTransition(newSwipeAnimation) -        } - -        return consumedDelta +        return newOffset - previousOffset      }      override suspend fun onStop(velocity: Float, canChangeContent: Boolean): Float { diff --git a/packages/SystemUI/compose/scene/src/com/android/compose/animation/scene/SceneTransitionLayout.kt b/packages/SystemUI/compose/scene/src/com/android/compose/animation/scene/SceneTransitionLayout.kt index 759100b15a56..a14b2b3746f5 100644 --- a/packages/SystemUI/compose/scene/src/com/android/compose/animation/scene/SceneTransitionLayout.kt +++ b/packages/SystemUI/compose/scene/src/com/android/compose/animation/scene/SceneTransitionLayout.kt @@ -554,12 +554,6 @@ sealed class UserActionResult(       * bigger than 100% when the user released their finger. `       */      open val requiresFullDistanceSwipe: Boolean, - -    /** -     * Whether swiping back in the opposite direction past the origin point of the swipe can replace -     * the action with the action for the opposite direction. -     */ -    open val isIrreversible: Boolean = false,  ) {      internal abstract fun toContent(currentScene: SceneKey): ContentKey @@ -569,7 +563,6 @@ sealed class UserActionResult(          val toScene: SceneKey,          override val transitionKey: TransitionKey? = null,          override val requiresFullDistanceSwipe: Boolean = false, -        override val isIrreversible: Boolean = false,      ) : UserActionResult(transitionKey, requiresFullDistanceSwipe) {          override fun toContent(currentScene: SceneKey): ContentKey = toScene      } @@ -579,7 +572,6 @@ sealed class UserActionResult(          val overlay: OverlayKey,          override val transitionKey: TransitionKey? = null,          override val requiresFullDistanceSwipe: Boolean = false, -        override val isIrreversible: Boolean = false,      ) : UserActionResult(transitionKey, requiresFullDistanceSwipe) {          override fun toContent(currentScene: SceneKey): ContentKey = overlay      } @@ -622,14 +614,7 @@ sealed class UserActionResult(               * the user released their finger.               */              requiresFullDistanceSwipe: Boolean = false, - -            /** -             * Whether swiping back in the opposite direction past the origin point of the swipe can -             * replace the action with the action for the opposite direction. -             */ -            isIrreversible: Boolean = false, -        ): UserActionResult = -            ChangeScene(toScene, transitionKey, requiresFullDistanceSwipe, isIrreversible) +        ): UserActionResult = ChangeScene(toScene, transitionKey, requiresFullDistanceSwipe)          /** A [UserActionResult] that shows [toOverlay]. */          operator fun invoke( diff --git a/packages/SystemUI/compose/scene/tests/src/com/android/compose/animation/scene/DraggableHandlerTest.kt b/packages/SystemUI/compose/scene/tests/src/com/android/compose/animation/scene/DraggableHandlerTest.kt index 394568d34fa2..2c8dc3264b7e 100644 --- a/packages/SystemUI/compose/scene/tests/src/com/android/compose/animation/scene/DraggableHandlerTest.kt +++ b/packages/SystemUI/compose/scene/tests/src/com/android/compose/animation/scene/DraggableHandlerTest.kt @@ -418,37 +418,6 @@ class DraggableHandlerTest {      }      @Test -    fun onDragReversedDirection_changeToScene() = runGestureTest { -        // Drag A -> B with progress 0.6 -        val dragController = onDragStarted(overSlop = -60f) -        assertTransition( -            currentScene = SceneA, -            fromScene = SceneA, -            toScene = SceneB, -            progress = 0.6f, -        ) - -        // Reverse direction such that A -> C now with 0.4 -        dragController.onDragDelta(pixels = 100f) -        assertTransition( -            currentScene = SceneA, -            fromScene = SceneA, -            toScene = SceneC, -            progress = 0.4f, -        ) - -        // After the drag stopped scene C should be committed -        dragController.onDragStoppedAnimateNow( -            velocity = velocityThreshold, -            onAnimationStart = { -                assertTransition(currentScene = SceneC, fromScene = SceneA, toScene = SceneC) -            }, -            expectedConsumedVelocity = velocityThreshold, -        ) -        assertIdle(currentScene = SceneC) -    } - -    @Test      fun onDragStartedWithoutActionsInBothDirections_stayIdle() = runGestureTest {          onDragStarted(              horizontalDraggableHandler, @@ -498,31 +467,9 @@ class DraggableHandlerTest {      }      @Test -    fun onDragWithActionsInBothDirections_dragToOppositeDirectionReplacesAction() = runGestureTest { -        // We are on SceneA. UP -> B, DOWN-> C. -        val dragController = onDragStarted(overSlop = up(fractionOfScreen = 0.2f)) -        assertTransition( -            currentScene = SceneA, -            fromScene = SceneA, -            toScene = SceneB, -            progress = 0.2f, -        ) - -        // Reverse drag direction, it will replace the previous transition -        dragController.onDragDelta(pixels = down(fractionOfScreen = 0.5f)) -        assertTransition( -            currentScene = SceneA, -            fromScene = SceneA, -            toScene = SceneC, -            progress = 0.3f, -        ) -    } - -    @Test      fun onDragWithActionsInBothDirections_dragToOppositeDirectionNotReplaceable() = runGestureTest {          // We are on SceneA. UP -> B, DOWN-> C. The up swipe is not replaceable though. -        mutableUserActionsA = -            mapOf(Swipe.Up to UserActionResult(SceneB, isIrreversible = true), Swipe.Down to SceneC) +        mutableUserActionsA = mapOf(Swipe.Up to UserActionResult(SceneB), Swipe.Down to SceneC)          val dragController =              onDragStarted(                  pointersInfo = @@ -536,7 +483,7 @@ class DraggableHandlerTest {              progress = 0.2f,          ) -        // Reverse drag direction, it cannot replace the previous transition +        // Reverse drag direction, it does not replace the previous transition.          dragController.onDragDelta(pixels = down(fractionOfScreen = 0.5f))          assertTransition(              currentScene = SceneA, diff --git a/packages/SystemUI/compose/scene/tests/src/com/android/compose/animation/scene/SwipeToSceneTest.kt b/packages/SystemUI/compose/scene/tests/src/com/android/compose/animation/scene/SwipeToSceneTest.kt index b3a3261122a8..fe7b5b6bf4da 100644 --- a/packages/SystemUI/compose/scene/tests/src/com/android/compose/animation/scene/SwipeToSceneTest.kt +++ b/packages/SystemUI/compose/scene/tests/src/com/android/compose/animation/scene/SwipeToSceneTest.kt @@ -664,17 +664,11 @@ class SwipeToSceneTest {              }          } -        // Swipe down for the default transition from A to B. +        // Move the pointer up to swipe to scene B using the new transition.          rule.onRoot().performTouchInput { -            down(middle) -            moveBy(Offset(0f, touchSlop), delayMillis = 1_000) +            down(center) +            moveBy(Offset(0f, -touchSlop - 1.dp.toPx()), delayMillis = 1_000)          } - -        assertThat(state.isTransitioning(from = SceneA, to = SceneB)).isTrue() -        assertThat(state.currentTransition?.transformationSpec?.transformationMatchers).hasSize(1) - -        // Move the pointer up to swipe to scene B using the new transition. -        rule.onRoot().performTouchInput { moveBy(Offset(0f, -1.dp.toPx()), delayMillis = 1_000) }          assertThat(state.isTransitioning(from = SceneA, to = SceneB)).isTrue()          assertThat(state.currentTransition?.transformationSpec?.transformationMatchers).hasSize(2)      } diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/ExpandHelperTest.java b/packages/SystemUI/multivalentTests/src/com/android/systemui/ExpandHelperTest.java index 1b072416faa6..7fb879c02778 100644 --- a/packages/SystemUI/multivalentTests/src/com/android/systemui/ExpandHelperTest.java +++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/ExpandHelperTest.java @@ -31,7 +31,7 @@ import androidx.test.filters.SmallTest;  import com.android.keyguard.KeyguardUpdateMonitor;  import com.android.systemui.animation.AnimatorTestRule; -import com.android.systemui.flags.FakeFeatureFlags; +import com.android.systemui.flags.FakeFeatureFlagsClassic;  import com.android.systemui.statusbar.NotificationMediaManager;  import com.android.systemui.statusbar.notification.row.ExpandableNotificationRow;  import com.android.systemui.statusbar.notification.row.NotificationTestHelper; @@ -49,7 +49,7 @@ public class ExpandHelperTest extends SysuiTestCase {      @Rule      public final AnimatorTestRule mAnimatorTestRule = new AnimatorTestRule(this); -    private final FakeFeatureFlags mFeatureFlags = new FakeFeatureFlags(); +    private final FakeFeatureFlagsClassic mFeatureFlags = new FakeFeatureFlagsClassic();      private ExpandableNotificationRow mRow;      private ExpandHelper mExpandHelper;      private ExpandHelper.Callback mCallback; diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/communal/ui/viewmodel/CommunalUserActionsViewModelTest.kt b/packages/SystemUI/multivalentTests/src/com/android/systemui/communal/ui/viewmodel/CommunalUserActionsViewModelTest.kt index 755c4ebf5016..ca7e2032be93 100644 --- a/packages/SystemUI/multivalentTests/src/com/android/systemui/communal/ui/viewmodel/CommunalUserActionsViewModelTest.kt +++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/communal/ui/viewmodel/CommunalUserActionsViewModelTest.kt @@ -85,8 +85,7 @@ class CommunalUserActionsViewModelTest : SysuiTestCase() {              assertThat(actions).isNotEmpty()              assertThat(actions?.get(Swipe.End)).isEqualTo(UserActionResult(SceneFamilies.Home))              assertThat(actions?.get(Swipe.Up)).isEqualTo(UserActionResult(Scenes.Bouncer)) -            assertThat(actions?.get(Swipe.Down)) -                .isEqualTo(UserActionResult(Scenes.Shade, isIrreversible = true)) +            assertThat(actions?.get(Swipe.Down)).isEqualTo(UserActionResult(Scenes.Shade))              setUpState(                  isShadeTouchable = false, @@ -103,8 +102,7 @@ class CommunalUserActionsViewModelTest : SysuiTestCase() {              assertThat(actions).isNotEmpty()              assertThat(actions?.get(Swipe.End)).isEqualTo(UserActionResult(SceneFamilies.Home))              assertThat(actions?.get(Swipe.Up)).isEqualTo(UserActionResult(Scenes.Gone)) -            assertThat(actions?.get(Swipe.Down)) -                .isEqualTo(UserActionResult(Scenes.Shade, isIrreversible = true)) +            assertThat(actions?.get(Swipe.Down)).isEqualTo(UserActionResult(Scenes.Shade))          }      @Test @@ -122,7 +120,7 @@ class CommunalUserActionsViewModelTest : SysuiTestCase() {              assertThat(actions?.get(Swipe.End)).isEqualTo(UserActionResult(SceneFamilies.Home))              assertThat(actions?.get(Swipe.Up)).isEqualTo(UserActionResult(Scenes.Bouncer))              assertThat(actions?.get(Swipe.Down)) -                .isEqualTo(UserActionResult(Scenes.Shade, ToSplitShade, isIrreversible = true)) +                .isEqualTo(UserActionResult(Scenes.Shade, ToSplitShade))              setUpState(                  isShadeTouchable = false, @@ -140,7 +138,7 @@ class CommunalUserActionsViewModelTest : SysuiTestCase() {              assertThat(actions?.get(Swipe.End)).isEqualTo(UserActionResult(SceneFamilies.Home))              assertThat(actions?.get(Swipe.Up)).isEqualTo(UserActionResult(Scenes.Gone))              assertThat(actions?.get(Swipe.Down)) -                .isEqualTo(UserActionResult(Scenes.Shade, ToSplitShade, isIrreversible = true)) +                .isEqualTo(UserActionResult(Scenes.Shade, ToSplitShade))          }      @Test @@ -158,9 +156,7 @@ class CommunalUserActionsViewModelTest : SysuiTestCase() {              assertThat(actions?.get(Swipe.End)).isEqualTo(UserActionResult(SceneFamilies.Home))              assertThat(actions?.get(Swipe.Up)).isEqualTo(UserActionResult(Scenes.Bouncer))              assertThat(actions?.get(Swipe.Down)) -                .isEqualTo( -                    UserActionResult.ShowOverlay(Overlays.NotificationsShade, isIrreversible = true) -                ) +                .isEqualTo(UserActionResult.ShowOverlay(Overlays.NotificationsShade))              setUpState(                  isShadeTouchable = false, @@ -174,9 +170,7 @@ class CommunalUserActionsViewModelTest : SysuiTestCase() {              assertThat(actions?.get(Swipe.End)).isEqualTo(UserActionResult(SceneFamilies.Home))              assertThat(actions?.get(Swipe.Up)).isEqualTo(UserActionResult(Scenes.Gone))              assertThat(actions?.get(Swipe.Down)) -                .isEqualTo( -                    UserActionResult.ShowOverlay(Overlays.NotificationsShade, isIrreversible = true) -                ) +                .isEqualTo(UserActionResult.ShowOverlay(Overlays.NotificationsShade))          }      private fun TestScope.setUpState( diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/dreams/ui/viewmodel/DreamUserActionsViewModelTest.kt b/packages/SystemUI/multivalentTests/src/com/android/systemui/dreams/ui/viewmodel/DreamUserActionsViewModelTest.kt index 55b87db232e8..d6daa794c45b 100644 --- a/packages/SystemUI/multivalentTests/src/com/android/systemui/dreams/ui/viewmodel/DreamUserActionsViewModelTest.kt +++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/dreams/ui/viewmodel/DreamUserActionsViewModelTest.kt @@ -86,8 +86,7 @@ class DreamUserActionsViewModelTest : SysuiTestCase() {              )              assertThat(actions).isNotEmpty()              assertThat(actions?.get(Swipe.Up)).isEqualTo(UserActionResult(Scenes.Bouncer)) -            assertThat(actions?.get(Swipe.Down)) -                .isEqualTo(UserActionResult(Scenes.Shade, isIrreversible = true)) +            assertThat(actions?.get(Swipe.Down)).isEqualTo(UserActionResult(Scenes.Shade))              assertThat(actions?.get(Swipe.Start)).isNull()              assertThat(actions?.get(Swipe.End)).isNull() @@ -105,8 +104,7 @@ class DreamUserActionsViewModelTest : SysuiTestCase() {              )              assertThat(actions).isNotEmpty()              assertThat(actions?.get(Swipe.Up)).isEqualTo(UserActionResult(Scenes.Gone)) -            assertThat(actions?.get(Swipe.Down)) -                .isEqualTo(UserActionResult(Scenes.Shade, isIrreversible = true)) +            assertThat(actions?.get(Swipe.Down)).isEqualTo(UserActionResult(Scenes.Shade))              assertThat(actions?.get(Swipe.Start)).isNull()              assertThat(actions?.get(Swipe.End)).isNull()          } @@ -127,7 +125,7 @@ class DreamUserActionsViewModelTest : SysuiTestCase() {              assertThat(actions).isNotEmpty()              assertThat(actions?.get(Swipe.Up)).isEqualTo(UserActionResult(Scenes.Bouncer))              assertThat(actions?.get(Swipe.Down)) -                .isEqualTo(UserActionResult(Scenes.Shade, ToSplitShade, isIrreversible = true)) +                .isEqualTo(UserActionResult(Scenes.Shade, ToSplitShade))              assertThat(actions?.get(Swipe.Start)).isNull()              assertThat(actions?.get(Swipe.End)).isNull() @@ -146,7 +144,7 @@ class DreamUserActionsViewModelTest : SysuiTestCase() {              assertThat(actions).isNotEmpty()              assertThat(actions?.get(Swipe.Up)).isEqualTo(UserActionResult(Scenes.Gone))              assertThat(actions?.get(Swipe.Down)) -                .isEqualTo(UserActionResult(Scenes.Shade, ToSplitShade, isIrreversible = true)) +                .isEqualTo(UserActionResult(Scenes.Shade, ToSplitShade))              assertThat(actions?.get(Swipe.Start)).isNull()              assertThat(actions?.get(Swipe.End)).isNull()          } @@ -167,9 +165,7 @@ class DreamUserActionsViewModelTest : SysuiTestCase() {              assertThat(actions).isNotEmpty()              assertThat(actions?.get(Swipe.Up)).isEqualTo(UserActionResult(Scenes.Bouncer))              assertThat(actions?.get(Swipe.Down)) -                .isEqualTo( -                    UserActionResult.ShowOverlay(Overlays.NotificationsShade, isIrreversible = true) -                ) +                .isEqualTo(UserActionResult.ShowOverlay(Overlays.NotificationsShade))              assertThat(actions?.get(Swipe.Start)).isNull()              assertThat(actions?.get(Swipe.End)).isNull() @@ -184,9 +180,7 @@ class DreamUserActionsViewModelTest : SysuiTestCase() {              assertThat(actions).isNotEmpty()              assertThat(actions?.get(Swipe.Up)).isEqualTo(UserActionResult(Scenes.Gone))              assertThat(actions?.get(Swipe.Down)) -                .isEqualTo( -                    UserActionResult.ShowOverlay(Overlays.NotificationsShade, isIrreversible = true) -                ) +                .isEqualTo(UserActionResult.ShowOverlay(Overlays.NotificationsShade))              assertThat(actions?.get(Swipe.Start)).isNull()              assertThat(actions?.get(Swipe.End)).isNull()          } @@ -206,8 +200,7 @@ class DreamUserActionsViewModelTest : SysuiTestCase() {              )              assertThat(actions).isNotEmpty()              assertThat(actions?.get(Swipe.Up)).isEqualTo(UserActionResult(Scenes.Bouncer)) -            assertThat(actions?.get(Swipe.Down)) -                .isEqualTo(UserActionResult(Scenes.Shade, isIrreversible = true)) +            assertThat(actions?.get(Swipe.Down)).isEqualTo(UserActionResult(Scenes.Shade))              assertThat(actions?.get(Swipe.Start)).isEqualTo(UserActionResult(Scenes.Communal))              assertThat(actions?.get(Swipe.End)).isNull() @@ -225,8 +218,7 @@ class DreamUserActionsViewModelTest : SysuiTestCase() {              )              assertThat(actions).isNotEmpty()              assertThat(actions?.get(Swipe.Up)).isEqualTo(UserActionResult(Scenes.Gone)) -            assertThat(actions?.get(Swipe.Down)) -                .isEqualTo(UserActionResult(Scenes.Shade, isIrreversible = true)) +            assertThat(actions?.get(Swipe.Down)).isEqualTo(UserActionResult(Scenes.Shade))              assertThat(actions?.get(Swipe.Start)).isEqualTo(UserActionResult(Scenes.Communal))              assertThat(actions?.get(Swipe.End)).isNull()          } @@ -247,7 +239,7 @@ class DreamUserActionsViewModelTest : SysuiTestCase() {              assertThat(actions).isNotEmpty()              assertThat(actions?.get(Swipe.Up)).isEqualTo(UserActionResult(Scenes.Bouncer))              assertThat(actions?.get(Swipe.Down)) -                .isEqualTo(UserActionResult(Scenes.Shade, ToSplitShade, isIrreversible = true)) +                .isEqualTo(UserActionResult(Scenes.Shade, ToSplitShade))              assertThat(actions?.get(Swipe.Start)).isEqualTo(UserActionResult(Scenes.Communal))              assertThat(actions?.get(Swipe.End)).isNull() @@ -266,7 +258,7 @@ class DreamUserActionsViewModelTest : SysuiTestCase() {              assertThat(actions).isNotEmpty()              assertThat(actions?.get(Swipe.Up)).isEqualTo(UserActionResult(Scenes.Gone))              assertThat(actions?.get(Swipe.Down)) -                .isEqualTo(UserActionResult(Scenes.Shade, ToSplitShade, isIrreversible = true)) +                .isEqualTo(UserActionResult(Scenes.Shade, ToSplitShade))              assertThat(actions?.get(Swipe.Start)).isEqualTo(UserActionResult(Scenes.Communal))              assertThat(actions?.get(Swipe.End)).isNull()          } @@ -287,9 +279,7 @@ class DreamUserActionsViewModelTest : SysuiTestCase() {              assertThat(actions).isNotEmpty()              assertThat(actions?.get(Swipe.Up)).isEqualTo(UserActionResult(Scenes.Bouncer))              assertThat(actions?.get(Swipe.Down)) -                .isEqualTo( -                    UserActionResult.ShowOverlay(Overlays.NotificationsShade, isIrreversible = true) -                ) +                .isEqualTo(UserActionResult.ShowOverlay(Overlays.NotificationsShade))              assertThat(actions?.get(Swipe.Start)).isEqualTo(UserActionResult(Scenes.Communal))              assertThat(actions?.get(Swipe.End)).isNull() @@ -304,9 +294,7 @@ class DreamUserActionsViewModelTest : SysuiTestCase() {              assertThat(actions).isNotEmpty()              assertThat(actions?.get(Swipe.Up)).isEqualTo(UserActionResult(Scenes.Gone))              assertThat(actions?.get(Swipe.Down)) -                .isEqualTo( -                    UserActionResult.ShowOverlay(Overlays.NotificationsShade, isIrreversible = true) -                ) +                .isEqualTo(UserActionResult.ShowOverlay(Overlays.NotificationsShade))              assertThat(actions?.get(Swipe.Start)).isEqualTo(UserActionResult(Scenes.Communal))              assertThat(actions?.get(Swipe.End)).isNull()          } diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/keyboard/shortcut/data/source/TestShortcuts.kt b/packages/SystemUI/multivalentTests/src/com/android/systemui/keyboard/shortcut/data/source/TestShortcuts.kt index 407bdf8dcefb..cc718c784c78 100644 --- a/packages/SystemUI/multivalentTests/src/com/android/systemui/keyboard/shortcut/data/source/TestShortcuts.kt +++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/keyboard/shortcut/data/source/TestShortcuts.kt @@ -74,6 +74,27 @@ object TestShortcuts {              /* modifiers = */ KeyEvent.META_SHIFT_ON,          ) +    private val ShortcutsWithDiffSizeOfKeys = +        KeyboardShortcutInfo( +            /* label = */ "Shortcuts with diff size of keys", +            /* keycode = */ KeyEvent.KEYCODE_HOME, +            /* modifiers = */ 0, +        ) + +    private val ShortcutsWithDiffSizeOfKeys2 = +        KeyboardShortcutInfo( +            /* label = */ ShortcutsWithDiffSizeOfKeys.label, +            /* keycode = */ KeyEvent.KEYCODE_1, +            /* modifiers = */ META_META_ON, +        ) + +    private val ShortcutsWithDiffSizeOfKeys3 = +        KeyboardShortcutInfo( +            /* label = */ ShortcutsWithDiffSizeOfKeys.label, +            /* keycode = */ KeyEvent.KEYCODE_2, +            /* modifiers = */ META_META_ON or META_FUNCTION_ON, +        ) +      private val shortcutWithGroupedRepeatedLabel =          shortcut(shortcutInfoWithRepeatedLabel.label!!.toString()) {              command { @@ -381,6 +402,16 @@ object TestShortcuts {              groupWithSupportedAndUnsupportedModifierShortcut,          ) +    val groupWithDifferentSizeOfShortcutKeys = +        KeyboardShortcutGroup( +            "Group with different size of shortcut keys", +            listOf( +                ShortcutsWithDiffSizeOfKeys3, +                ShortcutsWithDiffSizeOfKeys, +                ShortcutsWithDiffSizeOfKeys2, +            ), +        ) +      val subCategoriesWithUnsupportedModifiersRemoved =          listOf(subCategoryWithStandardShortcut, subCategoryWithUnsupportedShortcutsRemoved) diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/keyboard/shortcut/domain/interactor/ShortcutHelperCategoriesInteractorTest.kt b/packages/SystemUI/multivalentTests/src/com/android/systemui/keyboard/shortcut/domain/interactor/ShortcutHelperCategoriesInteractorTest.kt index c3cedba65340..8f0bc640f0eb 100644 --- a/packages/SystemUI/multivalentTests/src/com/android/systemui/keyboard/shortcut/domain/interactor/ShortcutHelperCategoriesInteractorTest.kt +++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/keyboard/shortcut/domain/interactor/ShortcutHelperCategoriesInteractorTest.kt @@ -369,6 +369,20 @@ class ShortcutHelperCategoriesInteractorTest : SysuiTestCase() {          }      } +    @Test +    fun categories_showShortcutsInAscendingOrderOfKeySize() = +        testScope.runTest { +            systemShortcutsSource.setGroups(TestShortcuts.groupWithDifferentSizeOfShortcutKeys) +            val categories by collectLastValue(interactor.shortcutCategories) + +            helper.showFromActivity() + +            val systemCategoryShortcuts = categories?.get(0)?.subCategories?.get(0)?.shortcuts +            val shortcutKeyCount = +                systemCategoryShortcuts?.flatMap { it.commands }?.map { it.keys.size } +            assertThat(shortcutKeyCount).containsExactly(1, 2, 3).inOrder() +        } +      private fun setCustomInputGestures(customInputGestures: List<InputGestureData>) {          whenever(fakeInputManager.inputManager.getCustomInputGestures(/* filter= */ anyOrNull()))              .thenReturn(customInputGestures) diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/keyguard/ui/viewmodel/LockscreenUserActionsViewModelTest.kt b/packages/SystemUI/multivalentTests/src/com/android/systemui/keyguard/ui/viewmodel/LockscreenUserActionsViewModelTest.kt index 62cc76345c87..97e67634cd2b 100644 --- a/packages/SystemUI/multivalentTests/src/com/android/systemui/keyguard/ui/viewmodel/LockscreenUserActionsViewModelTest.kt +++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/keyguard/ui/viewmodel/LockscreenUserActionsViewModelTest.kt @@ -306,8 +306,7 @@ class LockscreenUserActionsViewModelTest : SysuiTestCase() {                  // Top edge is not applicable in dual shade, as well as two-finger swipe.                  assertThat(downDestination).isNull()              } else { -                assertThat(downDestination) -                    .isEqualTo(ShowOverlay(Overlays.NotificationsShade, isIrreversible = true)) +                assertThat(downDestination).isEqualTo(ShowOverlay(Overlays.NotificationsShade))                  assertThat(downDestination?.transitionKey).isNull()              } @@ -323,7 +322,7 @@ class LockscreenUserActionsViewModelTest : SysuiTestCase() {                  downWithTwoPointers -> assertThat(downFromTopRightDestination).isNull()                  else -> {                      assertThat(downFromTopRightDestination) -                        .isEqualTo(ShowOverlay(Overlays.QuickSettingsShade, isIrreversible = true)) +                        .isEqualTo(ShowOverlay(Overlays.QuickSettingsShade))                      assertThat(downFromTopRightDestination?.transitionKey).isNull()                  }              } diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/scene/ui/viewmodel/GoneUserActionsViewModelTest.kt b/packages/SystemUI/multivalentTests/src/com/android/systemui/scene/ui/viewmodel/GoneUserActionsViewModelTest.kt index bb2e9417ecef..fc915ca24d89 100644 --- a/packages/SystemUI/multivalentTests/src/com/android/systemui/scene/ui/viewmodel/GoneUserActionsViewModelTest.kt +++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/scene/ui/viewmodel/GoneUserActionsViewModelTest.kt @@ -104,7 +104,7 @@ class GoneUserActionsViewModelTest : SysuiTestCase() {              runCurrent()              assertThat(userActions?.get(swipeDownFromTopWithTwoFingers())) -                .isEqualTo(UserActionResult(Scenes.QuickSettings, isIrreversible = true)) +                .isEqualTo(UserActionResult(Scenes.QuickSettings))          }      @Test @@ -116,7 +116,7 @@ class GoneUserActionsViewModelTest : SysuiTestCase() {              runCurrent()              assertThat(userActions?.get(swipeDownFromTopWithTwoFingers())) -                .isEqualTo(UserActionResult(Scenes.Shade, ToSplitShade, isIrreversible = true)) +                .isEqualTo(UserActionResult(Scenes.Shade, ToSplitShade))          }      @Test diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/screenshot/ActionIntentExecutorTest.kt b/packages/SystemUI/multivalentTests/src/com/android/systemui/screenshot/ActionIntentExecutorTest.kt index 612d646bb7d4..53a083f9ceae 100644 --- a/packages/SystemUI/multivalentTests/src/com/android/systemui/screenshot/ActionIntentExecutorTest.kt +++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/screenshot/ActionIntentExecutorTest.kt @@ -17,13 +17,13 @@  package com.android.systemui.screenshot  import android.content.Intent -import androidx.test.ext.junit.runners.AndroidJUnit4  import android.os.Process.myUserHandle  import android.platform.test.annotations.EnableFlags  import android.testing.TestableContext +import androidx.test.ext.junit.runners.AndroidJUnit4  import com.android.systemui.Flags  import com.android.systemui.SysuiTestCase -import com.android.systemui.screenshot.proxy.SystemUiProxy +import com.android.systemui.screenshot.proxy.ScreenshotProxy  import com.android.systemui.settings.DisplayTracker  import com.android.systemui.shared.system.ActivityManagerWrapper  import com.android.systemui.statusbar.phone.CentralSurfaces @@ -45,7 +45,7 @@ class ActionIntentExecutorTest : SysuiTestCase() {      private val testableContext = TestableContext(mContext)      private val activityManagerWrapper = mock<ActivityManagerWrapper>() -    private val systemUiProxy = mock<SystemUiProxy>() +    private val screenshotProxy = mock<ScreenshotProxy>()      private val displayTracker = mock<DisplayTracker>() @@ -55,7 +55,7 @@ class ActionIntentExecutorTest : SysuiTestCase() {              activityManagerWrapper,              testScope,              mainDispatcher, -            systemUiProxy, +            screenshotProxy,              displayTracker,          ) diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/chips/notification/domain/interactor/StatusBarNotificationChipsInteractorTest.kt b/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/chips/notification/domain/interactor/StatusBarNotificationChipsInteractorTest.kt index 702e101d2d39..5a894ca895c3 100644 --- a/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/chips/notification/domain/interactor/StatusBarNotificationChipsInteractorTest.kt +++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/chips/notification/domain/interactor/StatusBarNotificationChipsInteractorTest.kt @@ -30,6 +30,7 @@ import com.android.systemui.statusbar.chips.notification.shared.StatusBarNotifCh  import com.android.systemui.statusbar.notification.data.model.activeNotificationModel  import com.android.systemui.statusbar.notification.data.repository.ActiveNotificationsStore  import com.android.systemui.statusbar.notification.data.repository.activeNotificationListRepository +import com.android.systemui.statusbar.notification.promoted.shared.model.PromotedNotificationContentModel  import com.android.systemui.statusbar.notification.shared.ActiveNotificationModel  import com.android.systemui.testKosmos  import com.google.common.truth.Truth.assertThat @@ -60,7 +61,7 @@ class StatusBarNotificationChipsInteractorTest : SysuiTestCase() {                      activeNotificationModel(                          key = "notif",                          statusBarChipIcon = mock<StatusBarIconView>(), -                        isPromoted = true, +                        promotedContent = PromotedNotificationContentModel.Builder("notif").build(),                      )                  )              ) @@ -90,7 +91,7 @@ class StatusBarNotificationChipsInteractorTest : SysuiTestCase() {                      activeNotificationModel(                          key = "notif",                          statusBarChipIcon = null, -                        isPromoted = true, +                        promotedContent = PromotedNotificationContentModel.Builder("notif").build(),                      )                  )              ) @@ -110,7 +111,7 @@ class StatusBarNotificationChipsInteractorTest : SysuiTestCase() {                      activeNotificationModel(                          key = "notif",                          statusBarChipIcon = icon, -                        isPromoted = true, +                        promotedContent = PromotedNotificationContentModel.Builder("notif").build(),                      )                  )              ) @@ -133,17 +134,17 @@ class StatusBarNotificationChipsInteractorTest : SysuiTestCase() {                      activeNotificationModel(                          key = "notif1",                          statusBarChipIcon = firstIcon, -                        isPromoted = true, +                        promotedContent = PromotedNotificationContentModel.Builder("notif1").build(),                      ),                      activeNotificationModel(                          key = "notif2",                          statusBarChipIcon = secondIcon, -                        isPromoted = true, +                        promotedContent = PromotedNotificationContentModel.Builder("notif2").build(),                      ),                      activeNotificationModel(                          key = "notif3",                          statusBarChipIcon = mock<StatusBarIconView>(), -                        isPromoted = false, +                        promotedContent = null,                      ),                  )              ) @@ -170,7 +171,7 @@ class StatusBarNotificationChipsInteractorTest : SysuiTestCase() {                      activeNotificationModel(                          key = "notif",                          statusBarChipIcon = firstIcon, -                        isPromoted = true, +                        promotedContent = PromotedNotificationContentModel.Builder("notif").build(),                      )                  )              ) @@ -183,7 +184,7 @@ class StatusBarNotificationChipsInteractorTest : SysuiTestCase() {                      activeNotificationModel(                          key = "notif",                          statusBarChipIcon = secondIcon, -                        isPromoted = true, +                        promotedContent = PromotedNotificationContentModel.Builder("notif").build(),                      )                  )              ) @@ -196,7 +197,7 @@ class StatusBarNotificationChipsInteractorTest : SysuiTestCase() {                      activeNotificationModel(                          key = "notif",                          statusBarChipIcon = thirdIcon, -                        isPromoted = true, +                        promotedContent = PromotedNotificationContentModel.Builder("notif").build(),                      )                  )              ) @@ -216,7 +217,7 @@ class StatusBarNotificationChipsInteractorTest : SysuiTestCase() {                      activeNotificationModel(                          key = "notif",                          statusBarChipIcon = mock(), -                        isPromoted = true, +                        promotedContent = PromotedNotificationContentModel.Builder("notif").build(),                      )                  )              ) @@ -228,7 +229,7 @@ class StatusBarNotificationChipsInteractorTest : SysuiTestCase() {                      activeNotificationModel(                          key = "notif",                          statusBarChipIcon = mock(), -                        isPromoted = false, +                        promotedContent = null,                      )                  )              ) @@ -239,7 +240,7 @@ class StatusBarNotificationChipsInteractorTest : SysuiTestCase() {                      activeNotificationModel(                          key = "notif",                          statusBarChipIcon = mock(), -                        isPromoted = true, +                        promotedContent = PromotedNotificationContentModel.Builder("notif").build(),                      )                  )              ) @@ -260,7 +261,8 @@ class StatusBarNotificationChipsInteractorTest : SysuiTestCase() {                      activeNotificationModel(                          key = "notif|uid1",                          statusBarChipIcon = firstIcon, -                        isPromoted = true, +                        promotedContent = +                            PromotedNotificationContentModel.Builder("notif|uid1").build(),                      )                  )              ) @@ -274,7 +276,8 @@ class StatusBarNotificationChipsInteractorTest : SysuiTestCase() {                      activeNotificationModel(                          key = "notif|uid2",                          statusBarChipIcon = secondIcon, -                        isPromoted = true, +                        promotedContent = +                            PromotedNotificationContentModel.Builder("notif|uid2").build(),                      )                  )              ) diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/chips/notification/ui/viewmodel/NotifChipsViewModelTest.kt b/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/chips/notification/ui/viewmodel/NotifChipsViewModelTest.kt index a09cb69dc9d8..11831ca97389 100644 --- a/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/chips/notification/ui/viewmodel/NotifChipsViewModelTest.kt +++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/chips/notification/ui/viewmodel/NotifChipsViewModelTest.kt @@ -32,6 +32,7 @@ import com.android.systemui.statusbar.chips.ui.model.OngoingActivityChipModel  import com.android.systemui.statusbar.notification.data.model.activeNotificationModel  import com.android.systemui.statusbar.notification.data.repository.ActiveNotificationsStore  import com.android.systemui.statusbar.notification.data.repository.activeNotificationListRepository +import com.android.systemui.statusbar.notification.promoted.shared.model.PromotedNotificationContentModel  import com.android.systemui.statusbar.notification.shared.ActiveNotificationModel  import com.android.systemui.testKosmos  import com.google.common.truth.Truth.assertThat @@ -75,7 +76,7 @@ class NotifChipsViewModelTest : SysuiTestCase() {                      activeNotificationModel(                          key = "notif",                          statusBarChipIcon = null, -                        isPromoted = true, +                        promotedContent = PromotedNotificationContentModel.Builder("notif").build(),                      )                  )              ) @@ -94,7 +95,7 @@ class NotifChipsViewModelTest : SysuiTestCase() {                      activeNotificationModel(                          key = "notif",                          statusBarChipIcon = icon, -                        isPromoted = true, +                        promotedContent = PromotedNotificationContentModel.Builder("notif").build(),                      )                  )              ) @@ -117,17 +118,17 @@ class NotifChipsViewModelTest : SysuiTestCase() {                      activeNotificationModel(                          key = "notif1",                          statusBarChipIcon = firstIcon, -                        isPromoted = true, +                        promotedContent = PromotedNotificationContentModel.Builder("notif1").build(),                      ),                      activeNotificationModel(                          key = "notif2",                          statusBarChipIcon = secondIcon, -                        isPromoted = true, +                        promotedContent = PromotedNotificationContentModel.Builder("notif2").build(),                      ),                      activeNotificationModel(                          key = "notif3",                          statusBarChipIcon = mock<StatusBarIconView>(), -                        isPromoted = false, +                        promotedContent = null,                      ),                  )              ) @@ -151,7 +152,8 @@ class NotifChipsViewModelTest : SysuiTestCase() {                      activeNotificationModel(                          key = "clickTest",                          statusBarChipIcon = mock<StatusBarIconView>(), -                        isPromoted = true, +                        promotedContent = +                            PromotedNotificationContentModel.Builder("clickTest").build(),                      )                  )              ) diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/chips/ui/viewmodel/OngoingActivityChipsWithNotifsViewModelTest.kt b/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/chips/ui/viewmodel/OngoingActivityChipsWithNotifsViewModelTest.kt index eb0978eff24b..b2e7febd1743 100644 --- a/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/chips/ui/viewmodel/OngoingActivityChipsWithNotifsViewModelTest.kt +++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/chips/ui/viewmodel/OngoingActivityChipsWithNotifsViewModelTest.kt @@ -53,6 +53,7 @@ import com.android.systemui.statusbar.commandline.commandRegistry  import com.android.systemui.statusbar.notification.data.model.activeNotificationModel  import com.android.systemui.statusbar.notification.data.repository.ActiveNotificationsStore  import com.android.systemui.statusbar.notification.data.repository.activeNotificationListRepository +import com.android.systemui.statusbar.notification.promoted.shared.model.PromotedNotificationContentModel  import com.android.systemui.statusbar.notification.shared.ActiveNotificationModel  import com.android.systemui.statusbar.phone.SystemUIDialog  import com.android.systemui.statusbar.phone.ongoingcall.data.repository.ongoingCallRepository @@ -307,7 +308,7 @@ class OngoingActivityChipsWithNotifsViewModelTest : SysuiTestCase() {                      activeNotificationModel(                          key = "notif",                          statusBarChipIcon = icon, -                        isPromoted = true, +                        promotedContent = PromotedNotificationContentModel.Builder("notif").build(),                      )                  )              ) @@ -328,12 +329,14 @@ class OngoingActivityChipsWithNotifsViewModelTest : SysuiTestCase() {                      activeNotificationModel(                          key = "firstNotif",                          statusBarChipIcon = firstIcon, -                        isPromoted = true, +                        promotedContent = +                            PromotedNotificationContentModel.Builder("firstNotif").build(),                      ),                      activeNotificationModel(                          key = "secondNotif",                          statusBarChipIcon = secondIcon, -                        isPromoted = true, +                        promotedContent = +                            PromotedNotificationContentModel.Builder("secondNotif").build(),                      ),                  )              ) @@ -355,17 +358,20 @@ class OngoingActivityChipsWithNotifsViewModelTest : SysuiTestCase() {                      activeNotificationModel(                          key = "firstNotif",                          statusBarChipIcon = firstIcon, -                        isPromoted = true, +                        promotedContent = +                            PromotedNotificationContentModel.Builder("firstNotif").build(),                      ),                      activeNotificationModel(                          key = "secondNotif",                          statusBarChipIcon = secondIcon, -                        isPromoted = true, +                        promotedContent = +                            PromotedNotificationContentModel.Builder("secondNotif").build(),                      ),                      activeNotificationModel(                          key = "thirdNotif",                          statusBarChipIcon = thirdIcon, -                        isPromoted = true, +                        promotedContent = +                            PromotedNotificationContentModel.Builder("thirdNotif").build(),                      ),                  )              ) @@ -386,12 +392,14 @@ class OngoingActivityChipsWithNotifsViewModelTest : SysuiTestCase() {                      activeNotificationModel(                          key = "firstNotif",                          statusBarChipIcon = firstIcon, -                        isPromoted = true, +                        promotedContent = +                            PromotedNotificationContentModel.Builder("firstNotif").build(),                      ),                      activeNotificationModel(                          key = "secondNotif",                          statusBarChipIcon = mock<StatusBarIconView>(), -                        isPromoted = true, +                        promotedContent = +                            PromotedNotificationContentModel.Builder("secondNotif").build(),                      ),                  )              ) @@ -412,7 +420,7 @@ class OngoingActivityChipsWithNotifsViewModelTest : SysuiTestCase() {                      activeNotificationModel(                          key = "notif",                          statusBarChipIcon = mock<StatusBarIconView>(), -                        isPromoted = true, +                        promotedContent = PromotedNotificationContentModel.Builder("notif").build(),                      )                  )              ) diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/notification/domain/interactor/ActiveNotificationsInteractorTest.kt b/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/notification/domain/interactor/ActiveNotificationsInteractorTest.kt index 99bda856818e..54ce88b40c11 100644 --- a/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/notification/domain/interactor/ActiveNotificationsInteractorTest.kt +++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/notification/domain/interactor/ActiveNotificationsInteractorTest.kt @@ -31,6 +31,7 @@ import com.android.systemui.statusbar.notification.data.model.activeNotification  import com.android.systemui.statusbar.notification.data.repository.ActiveNotificationsStore  import com.android.systemui.statusbar.notification.data.repository.activeNotificationListRepository  import com.android.systemui.statusbar.notification.data.repository.setActiveNotifs +import com.android.systemui.statusbar.notification.promoted.shared.model.PromotedNotificationContentModel  import com.android.systemui.statusbar.notification.shared.CallType  import com.android.systemui.testKosmos  import com.google.common.truth.Truth.assertThat @@ -169,8 +170,12 @@ class ActiveNotificationsInteractorTest : SysuiTestCase() {          testScope.runTest {              val latest by collectLastValue(underTest.promotedOngoingNotifications) -            val promoted1 = activeNotificationModel(key = "notif1", isPromoted = true) -            val notPromoted2 = activeNotificationModel(key = "notif2", isPromoted = false) +            val promoted1 = +                activeNotificationModel( +                    key = "notif1", +                    promotedContent = PromotedNotificationContentModel.Builder("notif1").build(), +                ) +            val notPromoted2 = activeNotificationModel(key = "notif2", promotedContent = null)              activeNotificationListRepository.activeNotifications.value =                  ActiveNotificationsStore.Builder() @@ -189,9 +194,9 @@ class ActiveNotificationsInteractorTest : SysuiTestCase() {              activeNotificationListRepository.activeNotifications.value =                  ActiveNotificationsStore.Builder() -                    .apply { activeNotificationModel(key = "notif1", isPromoted = false) } -                    .apply { activeNotificationModel(key = "notif2", isPromoted = false) } -                    .apply { activeNotificationModel(key = "notif3", isPromoted = false) } +                    .apply { activeNotificationModel(key = "notif1", promotedContent = null) } +                    .apply { activeNotificationModel(key = "notif2", promotedContent = null) } +                    .apply { activeNotificationModel(key = "notif3", promotedContent = null) }                      .build()              assertThat(latest!!).isEmpty() @@ -203,10 +208,18 @@ class ActiveNotificationsInteractorTest : SysuiTestCase() {          testScope.runTest {              val latest by collectLastValue(underTest.promotedOngoingNotifications) -            val promoted1 = activeNotificationModel(key = "notif1", isPromoted = true) -            val notPromoted2 = activeNotificationModel(key = "notif2", isPromoted = false) -            val notPromoted3 = activeNotificationModel(key = "notif3", isPromoted = false) -            val promoted4 = activeNotificationModel(key = "notif4", isPromoted = true) +            val promoted1 = +                activeNotificationModel( +                    key = "notif1", +                    promotedContent = PromotedNotificationContentModel.Builder("notif1").build(), +                ) +            val notPromoted2 = activeNotificationModel(key = "notif2", promotedContent = null) +            val notPromoted3 = activeNotificationModel(key = "notif3", promotedContent = null) +            val promoted4 = +                activeNotificationModel( +                    key = "notif4", +                    promotedContent = PromotedNotificationContentModel.Builder("notif4").build(), +                )              activeNotificationListRepository.activeNotifications.value =                  ActiveNotificationsStore.Builder() diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/notification/domain/interactor/RenderNotificationsListInteractorTest.kt b/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/notification/domain/interactor/RenderNotificationsListInteractorTest.kt index 183f9016a23b..5d9aa71c5d89 100644 --- a/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/notification/domain/interactor/RenderNotificationsListInteractorTest.kt +++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/notification/domain/interactor/RenderNotificationsListInteractorTest.kt @@ -16,7 +16,6 @@  package com.android.systemui.statusbar.notification.domain.interactor  import android.app.Notification -import android.app.Notification.FLAG_PROMOTED_ONGOING  import android.platform.test.annotations.EnableFlags  import android.service.notification.StatusBarNotification  import androidx.test.ext.junit.runners.AndroidJUnit4 @@ -29,7 +28,7 @@ import com.android.systemui.statusbar.notification.collection.GroupEntry  import com.android.systemui.statusbar.notification.collection.NotificationEntry  import com.android.systemui.statusbar.notification.data.repository.activeNotificationListRepository  import com.android.systemui.statusbar.notification.promoted.PromotedNotificationUi -import com.android.systemui.statusbar.notification.promoted.promotedNotificationsProvider +import com.android.systemui.statusbar.notification.promoted.shared.model.PromotedNotificationContentModel  import com.android.systemui.statusbar.notification.shared.byKey  import com.android.systemui.testKosmos  import com.android.systemui.util.mockito.mock @@ -48,11 +47,7 @@ class RenderNotificationsListInteractorTest : SysuiTestCase() {      private val notifsRepository = kosmos.activeNotificationListRepository      private val notifsInteractor = kosmos.activeNotificationsInteractor      private val underTest = -        RenderNotificationListInteractor( -            notifsRepository, -            sectionStyleProvider = mock(), -            promotedNotificationsProvider = kosmos.promotedNotificationsProvider, -        ) +        RenderNotificationListInteractor(notifsRepository, sectionStyleProvider = mock())      @Test      fun setRenderedList_preservesOrdering() = @@ -127,12 +122,16 @@ class RenderNotificationsListInteractorTest : SysuiTestCase() {      @Test      @EnableFlags(PromotedNotificationUi.FLAG_NAME) -    fun setRenderList_setsPromotionStatus() = +    fun setRenderList_setsPromotionContent() =          testScope.runTest {              val actual by collectLastValue(notifsInteractor.topLevelRepresentativeNotifications) -            val notPromoted1 = mockNotificationEntry("key1", flag = null) -            val promoted2 = mockNotificationEntry("key2", flag = FLAG_PROMOTED_ONGOING) +            val notPromoted1 = mockNotificationEntry("key1", promotedContent = null) +            val promoted2 = +                mockNotificationEntry( +                    "key2", +                    promotedContent = PromotedNotificationContentModel.Builder("key2").build(), +                )              underTest.setRenderedList(listOf(notPromoted1, promoted2)) @@ -140,22 +139,19 @@ class RenderNotificationsListInteractorTest : SysuiTestCase() {              val first = actual!![0]              assertThat(first.key).isEqualTo("key1") -            assertThat(first.isPromoted).isFalse() +            assertThat(first.promotedContent).isNull()              val second = actual!![1]              assertThat(second.key).isEqualTo("key2") -            assertThat(second.isPromoted).isTrue() +            assertThat(second.promotedContent).isNotNull()          }      private fun mockNotificationEntry(          key: String,          rank: Int = 0, -        flag: Int? = null, +        promotedContent: PromotedNotificationContentModel? = null,      ): NotificationEntry {          val nBuilder = Notification.Builder(context, "a") -        if (flag != null) { -            nBuilder.setFlag(flag, true) -        }          val notification = nBuilder.build()          val mockSbn = @@ -169,6 +165,7 @@ class RenderNotificationsListInteractorTest : SysuiTestCase() {              whenever(this.representativeEntry).thenReturn(this)              whenever(this.ranking).thenReturn(RankingBuilder().setRank(rank).build())              whenever(this.sbn).thenReturn(mockSbn) +            whenever(this.promotedNotificationContentModel).thenReturn(promotedContent)          }      }  } diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/notification/headsup/AvalancheControllerTest.kt b/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/notification/headsup/AvalancheControllerTest.kt index 22a9c64d2cc9..31a2bd0371aa 100644 --- a/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/notification/headsup/AvalancheControllerTest.kt +++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/notification/headsup/AvalancheControllerTest.kt @@ -38,6 +38,7 @@ import com.android.systemui.statusbar.policy.AccessibilityManagerWrapper  import com.android.systemui.statusbar.policy.configurationController  import com.android.systemui.testKosmos  import com.android.systemui.util.concurrency.FakeExecutor +import com.android.systemui.util.concurrency.mockExecutorHandler  import com.android.systemui.util.kotlin.JavaAdapter  import com.android.systemui.util.settings.FakeGlobalSettings  import com.android.systemui.util.time.FakeSystemClock @@ -97,7 +98,7 @@ class AvalancheControllerTest : SysuiTestCase() {              AvalancheController(dumpManager, mUiEventLoggerFake, mHeadsUpManagerLogger, mBgHandler)          testableHeadsUpManager = -            TestableHeadsUpManager( +            HeadsUpManagerImpl(                  mContext,                  mLogger,                  kosmos.statusBarStateController, @@ -105,9 +106,10 @@ class AvalancheControllerTest : SysuiTestCase() {                  GroupMembershipManagerImpl(),                  kosmos.visualStabilityProvider,                  kosmos.configurationController, -                mExecutor, +                mockExecutorHandler(mExecutor),                  mGlobalSettings,                  mSystemClock, +                mExecutor,                  mAccessibilityMgr,                  mUiEventLoggerFake,                  JavaAdapter(kosmos.testScope), diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/notification/headsup/HeadsUpManagerImplOldTest.kt b/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/notification/headsup/HeadsUpManagerImplOldTest.kt index 44a851816dae..d2a7c61d1b0d 100644 --- a/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/notification/headsup/HeadsUpManagerImplOldTest.kt +++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/notification/headsup/HeadsUpManagerImplOldTest.kt @@ -39,6 +39,7 @@ import com.android.systemui.statusbar.notification.row.ExpandableNotificationRow  import com.android.systemui.statusbar.notification.shared.NotificationThrottleHun  import com.android.systemui.statusbar.policy.AccessibilityManagerWrapper  import com.android.systemui.util.concurrency.FakeExecutor +import com.android.systemui.util.concurrency.mockExecutorHandler  import com.android.systemui.util.kotlin.JavaAdapter  import com.android.systemui.util.settings.FakeGlobalSettings  import com.android.systemui.util.time.FakeSystemClock @@ -87,7 +88,7 @@ open class HeadsUpManagerImplOldTest(flags: FlagsParameterization?) : SysuiTestC      @Mock protected var mRow: ExpandableNotificationRow? = null      private fun createHeadsUpManager(): HeadsUpManagerImpl { -        return TestableHeadsUpManager( +        return HeadsUpManagerImpl(              mContext,              mLogger,              mKosmos.statusBarStateController, @@ -95,9 +96,10 @@ open class HeadsUpManagerImplOldTest(flags: FlagsParameterization?) : SysuiTestC              GroupMembershipManagerImpl(),              mKosmos.visualStabilityProvider,              mKosmos.configurationController, -            mExecutor, +            mockExecutorHandler(mExecutor),              mGlobalSettings,              mSystemClock, +            mExecutor,              mAccessibilityMgr,              mUiEventLoggerFake,              JavaAdapter(mKosmos.testScope), @@ -150,6 +152,24 @@ open class HeadsUpManagerImplOldTest(flags: FlagsParameterization?) : SysuiTestC      @Throws(Exception::class)      override fun SysuiSetup() {          super.SysuiSetup() +        mContext.getOrCreateTestableResources().apply { +            this.addOverride(R.integer.ambient_notification_extension_time, TEST_EXTENSION_TIME) +            this.addOverride(R.integer.touch_acceptance_delay, TEST_TOUCH_ACCEPTANCE_TIME) +            this.addOverride( +                R.integer.heads_up_notification_minimum_time, +                TEST_MINIMUM_DISPLAY_TIME, +            ) +            this.addOverride( +                R.integer.heads_up_notification_minimum_time_with_throttling, +                TEST_MINIMUM_DISPLAY_TIME, +            ) +            this.addOverride(R.integer.heads_up_notification_decay, TEST_AUTO_DISMISS_TIME) +            this.addOverride( +                R.integer.sticky_heads_up_notification_time, +                TEST_STICKY_AUTO_DISMISS_TIME, +            ) +        } +          mAvalancheController =              AvalancheController(dumpManager!!, mUiEventLoggerFake, mLogger, mBgHandler!!)          Mockito.`when`(mShadeInteractor!!.isAnyExpanded).thenReturn(MutableStateFlow(true)) @@ -662,6 +682,7 @@ open class HeadsUpManagerImplOldTest(flags: FlagsParameterization?) : SysuiTestC      companion object {          const val TEST_TOUCH_ACCEPTANCE_TIME: Int = 200          const val TEST_A11Y_AUTO_DISMISS_TIME: Int = 1000 +        const val TEST_EXTENSION_TIME = 500          const val TEST_MINIMUM_DISPLAY_TIME: Int = 400          const val TEST_AUTO_DISMISS_TIME: Int = 600 diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/notification/headsup/HeadsUpManagerImplTest.kt b/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/notification/headsup/HeadsUpManagerImplTest.kt index 65d282f1a945..96f0201f4596 100644 --- a/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/notification/headsup/HeadsUpManagerImplTest.kt +++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/notification/headsup/HeadsUpManagerImplTest.kt @@ -19,43 +19,40 @@ import android.os.Handler  import android.platform.test.annotations.EnableFlags  import android.platform.test.flag.junit.FlagsParameterization  import android.testing.TestableLooper.RunWithLooper +import android.view.accessibility.accessibilityManagerWrapper  import androidx.test.filters.SmallTest -import com.android.internal.logging.UiEventLogger -import com.android.systemui.dump.DumpManager +import com.android.internal.logging.uiEventLoggerFake +import com.android.systemui.dump.dumpManager  import com.android.systemui.flags.andSceneContainer +import com.android.systemui.kosmos.runTest  import com.android.systemui.kosmos.testScope +import com.android.systemui.kosmos.useUnconfinedTestDispatcher  import com.android.systemui.log.logcatLogBuffer  import com.android.systemui.res.R -import com.android.systemui.shade.domain.interactor.ShadeInteractor -import com.android.systemui.statusbar.FakeStatusBarStateController -import com.android.systemui.statusbar.NotificationShadeWindowController +import com.android.systemui.shade.domain.interactor.shadeInteractor +import com.android.systemui.shade.shadeTestUtil  import com.android.systemui.statusbar.StatusBarState -import com.android.systemui.statusbar.notification.collection.provider.VisualStabilityProvider +import com.android.systemui.statusbar.notification.collection.provider.visualStabilityProvider  import com.android.systemui.statusbar.notification.collection.render.GroupMembershipManager  import com.android.systemui.statusbar.notification.shared.NotificationThrottleHun -import com.android.systemui.statusbar.phone.ConfigurationControllerImpl -import com.android.systemui.statusbar.phone.KeyguardBypassController -import com.android.systemui.statusbar.policy.AccessibilityManagerWrapper +import com.android.systemui.statusbar.phone.keyguardBypassController +import com.android.systemui.statusbar.policy.configurationController +import com.android.systemui.statusbar.sysuiStatusBarStateController  import com.android.systemui.testKosmos  import com.android.systemui.util.concurrency.mockExecutorHandler  import com.android.systemui.util.kotlin.JavaAdapter  import com.google.common.truth.Truth.assertThat  import junit.framework.Assert -import kotlinx.coroutines.ExperimentalCoroutinesApi -import kotlinx.coroutines.flow.MutableStateFlow -import kotlinx.coroutines.test.runCurrent  import kotlinx.coroutines.test.runTest  import org.junit.Before  import org.junit.Ignore  import org.junit.Test  import org.junit.runner.RunWith -import org.mockito.ArgumentMatchers -import org.mockito.Mock +import org.mockito.kotlin.mock  import org.mockito.kotlin.whenever  import platform.test.runner.parameterized.ParameterizedAndroidJunit4  import platform.test.runner.parameterized.Parameters -@OptIn(ExperimentalCoroutinesApi::class)  @SmallTest  @RunWith(ParameterizedAndroidJunit4::class)  @RunWithLooper @@ -63,146 +60,133 @@ class HeadsUpManagerImplTest(flags: FlagsParameterization) : HeadsUpManagerImplO      private val mHeadsUpManagerLogger = HeadsUpManagerLogger(logcatLogBuffer()) -    private val kosmos = testKosmos() +    private val kosmos = testKosmos().useUnconfinedTestDispatcher()      private val testScope = kosmos.testScope -    @Mock private lateinit var mGroupManager: GroupMembershipManager - -    @Mock private lateinit var mVSProvider: VisualStabilityProvider - -    val statusBarStateController = FakeStatusBarStateController() - -    @Mock private lateinit var mBypassController: KeyguardBypassController - -    @Mock private lateinit var mConfigurationController: ConfigurationControllerImpl - -    @Mock private lateinit var mAccessibilityManagerWrapper: AccessibilityManagerWrapper - -    @Mock private lateinit var mUiEventLogger: UiEventLogger +    private val mGroupManager = mock<GroupMembershipManager>() +    private val mBgHandler = mock<Handler>() +    val statusBarStateController = kosmos.sysuiStatusBarStateController      private val mJavaAdapter: JavaAdapter = JavaAdapter(testScope.backgroundScope) -    @Mock private lateinit var mShadeInteractor: ShadeInteractor -    @Mock private lateinit var dumpManager: DumpManager      private lateinit var mAvalancheController: AvalancheController - -    @Mock private lateinit var mBgHandler: Handler - -    private fun createHeadsUpManagerPhone(): HeadsUpManagerImpl { -        return HeadsUpManagerImpl( -            mContext, -            mHeadsUpManagerLogger, -            statusBarStateController, -            mBypassController, -            mGroupManager, -            mVSProvider, -            mConfigurationController, -            mockExecutorHandler(mExecutor), -            mGlobalSettings, -            mSystemClock, -            mExecutor, -            mAccessibilityManagerWrapper, -            mUiEventLogger, -            mJavaAdapter, -            mShadeInteractor, -            mAvalancheController, -        ) -    } +    private lateinit var underTest: HeadsUpManagerImpl      @Before      fun setUp() { -        whenever(mShadeInteractor.isAnyExpanded).thenReturn(MutableStateFlow(false)) -        whenever(mShadeInteractor.isQsExpanded).thenReturn(MutableStateFlow(false)) -        whenever(mBypassController.bypassEnabled).thenReturn(false) -        whenever(mVSProvider.isReorderingAllowed).thenReturn(true) -        val accessibilityMgr = -            mDependency.injectMockDependency(AccessibilityManagerWrapper::class.java) -        whenever( -                accessibilityMgr.getRecommendedTimeoutMillis( -                    ArgumentMatchers.anyInt(), -                    ArgumentMatchers.anyInt(), -                ) +        mContext.getOrCreateTestableResources().apply { +            this.addOverride(R.integer.ambient_notification_extension_time, TEST_EXTENSION_TIME) +            this.addOverride(R.integer.touch_acceptance_delay, TEST_TOUCH_ACCEPTANCE_TIME) +            this.addOverride( +                R.integer.heads_up_notification_minimum_time, +                TEST_MINIMUM_DISPLAY_TIME, +            ) +            this.addOverride( +                R.integer.heads_up_notification_minimum_time_with_throttling, +                TEST_MINIMUM_DISPLAY_TIME,              ) -            .thenReturn(TEST_AUTO_DISMISS_TIME) -        mDependency.injectMockDependency(NotificationShadeWindowController::class.java) -        mContext -            .getOrCreateTestableResources() -            .addOverride(R.integer.ambient_notification_extension_time, 500) +            this.addOverride(R.integer.heads_up_notification_decay, TEST_AUTO_DISMISS_TIME) +            this.addOverride( +                R.integer.sticky_heads_up_notification_time, +                TEST_STICKY_AUTO_DISMISS_TIME, +            ) +        } + +        whenever(kosmos.keyguardBypassController.bypassEnabled).thenReturn(false) +        kosmos.visualStabilityProvider.isReorderingAllowed = true          mAvalancheController = -            AvalancheController(dumpManager, mUiEventLogger, mHeadsUpManagerLogger, mBgHandler) +            AvalancheController( +                kosmos.dumpManager, +                kosmos.uiEventLoggerFake, +                mHeadsUpManagerLogger, +                mBgHandler, +            ) +        underTest = +            HeadsUpManagerImpl( +                mContext, +                mHeadsUpManagerLogger, +                statusBarStateController, +                kosmos.keyguardBypassController, +                mGroupManager, +                kosmos.visualStabilityProvider, +                kosmos.configurationController, +                mockExecutorHandler(mExecutor), +                mGlobalSettings, +                mSystemClock, +                mExecutor, +                kosmos.accessibilityManagerWrapper, +                kosmos.uiEventLoggerFake, +                mJavaAdapter, +                kosmos.shadeInteractor, +                mAvalancheController, +            )      }      @Test      fun testSnooze() { -        val hmp: HeadsUpManager = createHeadsUpManagerPhone()          val entry = HeadsUpManagerTestUtil.createEntry(/* id= */ 0, mContext) -        hmp.showNotification(entry) -        hmp.snooze() -        Assert.assertTrue(hmp.isSnoozed(entry.sbn.packageName)) +        underTest.showNotification(entry) +        underTest.snooze() +        Assert.assertTrue(underTest.isSnoozed(entry.sbn.packageName))      }      @Test      fun testSwipedOutNotification() { -        val hmp: HeadsUpManager = createHeadsUpManagerPhone()          val entry = HeadsUpManagerTestUtil.createEntry(/* id= */ 0, mContext) -        hmp.showNotification(entry) -        hmp.addSwipedOutNotification(entry.key) +        underTest.showNotification(entry) +        underTest.addSwipedOutNotification(entry.key)          // Remove should succeed because the notification is swiped out          val removedImmediately = -            hmp.removeNotification( +            underTest.removeNotification(                  entry.key,                  /* releaseImmediately= */ false,                  /* reason= */ "swipe out",              )          Assert.assertTrue(removedImmediately) -        Assert.assertFalse(hmp.isHeadsUpEntry(entry.key)) +        Assert.assertFalse(underTest.isHeadsUpEntry(entry.key))      }      @Test      fun testCanRemoveImmediately_swipedOut() { -        val hmp: HeadsUpManager = createHeadsUpManagerPhone()          val entry = HeadsUpManagerTestUtil.createEntry(/* id= */ 0, mContext) -        hmp.showNotification(entry) -        hmp.addSwipedOutNotification(entry.key) +        underTest.showNotification(entry) +        underTest.addSwipedOutNotification(entry.key)          // Notification is swiped so it can be immediately removed. -        Assert.assertTrue(hmp.canRemoveImmediately(entry.key)) +        Assert.assertTrue(underTest.canRemoveImmediately(entry.key))      }      @Ignore("b/141538055")      @Test      fun testCanRemoveImmediately_notTopEntry() { -        val hmp: HeadsUpManager = createHeadsUpManagerPhone()          val earlierEntry = HeadsUpManagerTestUtil.createEntry(/* id= */ 0, mContext)          val laterEntry = HeadsUpManagerTestUtil.createEntry(/* id= */ 1, mContext)          laterEntry.row = mRow -        hmp.showNotification(earlierEntry) -        hmp.showNotification(laterEntry) +        underTest.showNotification(earlierEntry) +        underTest.showNotification(laterEntry)          // Notification is "behind" a higher priority notification so we can remove it immediately. -        Assert.assertTrue(hmp.canRemoveImmediately(earlierEntry.key)) +        Assert.assertTrue(underTest.canRemoveImmediately(earlierEntry.key))      }      @Test      fun testExtendHeadsUp() { -        val hmp = createHeadsUpManagerPhone()          val entry = HeadsUpManagerTestUtil.createEntry(/* id= */ 0, mContext) -        hmp.showNotification(entry) -        hmp.extendHeadsUp() -        mSystemClock.advanceTime((TEST_AUTO_DISMISS_TIME + hmp.mExtensionTime / 2).toLong()) -        Assert.assertTrue(hmp.isHeadsUpEntry(entry.key)) +        underTest.showNotification(entry) +        underTest.extendHeadsUp() +        mSystemClock.advanceTime(((TEST_AUTO_DISMISS_TIME + TEST_EXTENSION_TIME) / 2).toLong()) +        Assert.assertTrue(underTest.isHeadsUpEntry(entry.key))      }      @Test      @EnableFlags(NotificationThrottleHun.FLAG_NAME)      fun testShowNotification_removeWhenReorderingAllowedTrue() { -        whenever(mVSProvider.isReorderingAllowed).thenReturn(true) -        val hmp = createHeadsUpManagerPhone() +        kosmos.visualStabilityProvider.isReorderingAllowed = true          val notifEntry = HeadsUpManagerTestUtil.createEntry(/* id= */ 0, mContext) -        hmp.showNotification(notifEntry) -        assertThat(hmp.mEntriesToRemoveWhenReorderingAllowed.contains(notifEntry)).isTrue() +        underTest.showNotification(notifEntry) +        assertThat(underTest.mEntriesToRemoveWhenReorderingAllowed.contains(notifEntry)).isTrue()      }      class TestAnimationStateHandler : AnimationStateHandler { @@ -212,167 +196,157 @@ class HeadsUpManagerImplTest(flags: FlagsParameterization) : HeadsUpManagerImplO      @Test      @EnableFlags(NotificationThrottleHun.FLAG_NAME)      fun testReorderingAllowed_clearsListOfEntriesToRemove() { -        whenever(mVSProvider.isReorderingAllowed).thenReturn(true) -        val hmp = createHeadsUpManagerPhone() +        kosmos.visualStabilityProvider.isReorderingAllowed = true          val notifEntry = HeadsUpManagerTestUtil.createEntry(/* id= */ 0, mContext) -        hmp.showNotification(notifEntry) -        assertThat(hmp.mEntriesToRemoveWhenReorderingAllowed.contains(notifEntry)).isTrue() +        underTest.showNotification(notifEntry) +        assertThat(underTest.mEntriesToRemoveWhenReorderingAllowed.contains(notifEntry)).isTrue() -        hmp.setAnimationStateHandler(TestAnimationStateHandler()) -        hmp.mOnReorderingAllowedListener.onReorderingAllowed() -        assertThat(hmp.mEntriesToRemoveWhenReorderingAllowed.isEmpty()).isTrue() +        underTest.setAnimationStateHandler(TestAnimationStateHandler()) +        underTest.mOnReorderingAllowedListener.onReorderingAllowed() +        assertThat(underTest.mEntriesToRemoveWhenReorderingAllowed.isEmpty()).isTrue()      }      @Test      @EnableFlags(NotificationThrottleHun.FLAG_NAME)      fun testShowNotification_reorderNotAllowed_seenInShadeTrue() { -        whenever(mVSProvider.isReorderingAllowed).thenReturn(false) -        val hmp = createHeadsUpManagerPhone() +        kosmos.visualStabilityProvider.isReorderingAllowed = false          val notifEntry = HeadsUpManagerTestUtil.createEntry(/* id= */ 0, mContext) -        hmp.showNotification(notifEntry) +        underTest.showNotification(notifEntry)          assertThat(notifEntry.isSeenInShade).isTrue()      }      @Test      @EnableFlags(NotificationThrottleHun.FLAG_NAME)      fun testShowNotification_reorderAllowed_seenInShadeFalse() { -        whenever(mVSProvider.isReorderingAllowed).thenReturn(true) -        val hmp = createHeadsUpManagerPhone() +        kosmos.visualStabilityProvider.isReorderingAllowed = true          val notifEntry = HeadsUpManagerTestUtil.createEntry(/* id= */ 0, mContext) -        hmp.showNotification(notifEntry) +        underTest.showNotification(notifEntry)          assertThat(notifEntry.isSeenInShade).isFalse()      }      @Test      fun testShouldHeadsUpBecomePinned_noFSI_false() = -        testScope.runTest { -            val hum = createHeadsUpManagerPhone() +        kosmos.runTest {              statusBarStateController.setState(StatusBarState.KEYGUARD)              val entry = HeadsUpManagerTestUtil.createEntry(/* id= */ 0, mContext) -            Assert.assertFalse(hum.shouldHeadsUpBecomePinned(entry)) +            Assert.assertFalse(underTest.shouldHeadsUpBecomePinned(entry))          }      @Test      fun testShouldHeadsUpBecomePinned_hasFSI_notUnpinned_true() = -        testScope.runTest { -            val hum = createHeadsUpManagerPhone() +        kosmos.runTest {              statusBarStateController.setState(StatusBarState.KEYGUARD)              val notifEntry =                  HeadsUpManagerTestUtil.createFullScreenIntentEntry(/* id= */ 0, mContext)              // Add notifEntry to ANM mAlertEntries map and make it NOT unpinned -            hum.showNotification(notifEntry) +            underTest.showNotification(notifEntry) -            val headsUpEntry = hum.getHeadsUpEntry(notifEntry.key) +            val headsUpEntry = underTest.getHeadsUpEntry(notifEntry.key)              headsUpEntry!!.mWasUnpinned = false -            Assert.assertTrue(hum.shouldHeadsUpBecomePinned(notifEntry)) +            Assert.assertTrue(underTest.shouldHeadsUpBecomePinned(notifEntry))          }      @Test      fun testShouldHeadsUpBecomePinned_wasUnpinned_false() = -        testScope.runTest { -            val hum = createHeadsUpManagerPhone() +        kosmos.runTest {              statusBarStateController.setState(StatusBarState.KEYGUARD)              val notifEntry =                  HeadsUpManagerTestUtil.createFullScreenIntentEntry(/* id= */ 0, mContext)              // Add notifEntry to ANM mAlertEntries map and make it unpinned -            hum.showNotification(notifEntry) +            underTest.showNotification(notifEntry) -            val headsUpEntry = hum.getHeadsUpEntry(notifEntry.key) +            val headsUpEntry = underTest.getHeadsUpEntry(notifEntry.key)              headsUpEntry!!.mWasUnpinned = true -            Assert.assertFalse(hum.shouldHeadsUpBecomePinned(notifEntry)) +            Assert.assertFalse(underTest.shouldHeadsUpBecomePinned(notifEntry))          }      @Test      fun shouldHeadsUpBecomePinned_shadeNotExpanded_true() = -        testScope.runTest { +        kosmos.runTest {              // GIVEN -            whenever(mShadeInteractor.isAnyFullyExpanded).thenReturn(MutableStateFlow(false)) -            val hmp = createHeadsUpManagerPhone() +            shadeTestUtil.setShadeExpansion(0f) +            // TODO(b/381869885): Determine why we need both of these ShadeTestUtil calls. +            shadeTestUtil.setLegacyExpandedOrAwaitingInputTransfer(false) +              val entry = HeadsUpManagerTestUtil.createEntry(/* id= */ 0, mContext)              statusBarStateController.setState(StatusBarState.SHADE) -            runCurrent()              // THEN -            Assert.assertTrue(hmp.shouldHeadsUpBecomePinned(entry)) +            Assert.assertTrue(underTest.shouldHeadsUpBecomePinned(entry))          }      @Test      fun shouldHeadsUpBecomePinned_shadeLocked_false() = -        testScope.runTest { +        kosmos.runTest {              // GIVEN -            val hmp = createHeadsUpManagerPhone()              val entry = HeadsUpManagerTestUtil.createEntry(/* id= */ 0, mContext)              statusBarStateController.setState(StatusBarState.SHADE_LOCKED) -            runCurrent()              // THEN -            Assert.assertFalse(hmp.shouldHeadsUpBecomePinned(entry)) +            Assert.assertFalse(underTest.shouldHeadsUpBecomePinned(entry))          }      @Test      fun shouldHeadsUpBecomePinned_shadeUnknown_false() = -        testScope.runTest { +        kosmos.runTest {              // GIVEN -            val hmp = createHeadsUpManagerPhone()              val entry = HeadsUpManagerTestUtil.createEntry(/* id= */ 0, mContext)              statusBarStateController.setState(1207) -            runCurrent()              // THEN -            Assert.assertFalse(hmp.shouldHeadsUpBecomePinned(entry)) +            Assert.assertFalse(underTest.shouldHeadsUpBecomePinned(entry))          }      @Test      fun shouldHeadsUpBecomePinned_keyguardWithBypassOn_true() = -        testScope.runTest { +        kosmos.runTest {              // GIVEN -            whenever(mBypassController.bypassEnabled).thenReturn(true) -            val hmp = createHeadsUpManagerPhone() +            whenever(keyguardBypassController.bypassEnabled).thenReturn(true) +              val entry = HeadsUpManagerTestUtil.createEntry(/* id= */ 0, mContext)              statusBarStateController.setState(StatusBarState.KEYGUARD) -            runCurrent()              // THEN -            Assert.assertTrue(hmp.shouldHeadsUpBecomePinned(entry)) +            Assert.assertTrue(underTest.shouldHeadsUpBecomePinned(entry))          }      @Test      fun shouldHeadsUpBecomePinned_keyguardWithBypassOff_false() = -        testScope.runTest { +        kosmos.runTest {              // GIVEN -            whenever(mBypassController.bypassEnabled).thenReturn(false) -            val hmp = createHeadsUpManagerPhone() +            whenever(keyguardBypassController.bypassEnabled).thenReturn(false) +              val entry = HeadsUpManagerTestUtil.createEntry(/* id= */ 0, mContext)              statusBarStateController.setState(StatusBarState.KEYGUARD) -            runCurrent()              // THEN -            Assert.assertFalse(hmp.shouldHeadsUpBecomePinned(entry)) +            Assert.assertFalse(underTest.shouldHeadsUpBecomePinned(entry))          }      @Test      fun shouldHeadsUpBecomePinned_shadeExpanded_false() = -        testScope.runTest { +        kosmos.runTest {              // GIVEN -            whenever(mShadeInteractor.isAnyExpanded).thenReturn(MutableStateFlow(true)) -            val hmp = createHeadsUpManagerPhone() +            shadeTestUtil.setShadeExpansion(1f) +            // TODO(b/381869885): Determine why we need both of these ShadeTestUtil calls. +            shadeTestUtil.setLegacyExpandedOrAwaitingInputTransfer(true) +              val entry = HeadsUpManagerTestUtil.createEntry(/* id= */ 0, mContext)              statusBarStateController.setState(StatusBarState.SHADE) -            runCurrent()              // THEN -            Assert.assertFalse(hmp.shouldHeadsUpBecomePinned(entry)) +            Assert.assertFalse(underTest.shouldHeadsUpBecomePinned(entry))          }      companion object { diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/notification/headsup/TestableHeadsUpManager.java b/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/notification/headsup/TestableHeadsUpManager.java deleted file mode 100644 index 7ded1a5ca8b3..000000000000 --- a/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/notification/headsup/TestableHeadsUpManager.java +++ /dev/null @@ -1,162 +0,0 @@ -/* - * Copyright (C) 2024 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 com.android.systemui.statusbar.notification.headsup; - -import static com.android.systemui.util.concurrency.MockExecutorHandlerKt.mockExecutorHandler; - -import static org.mockito.Mockito.spy; - -import android.content.Context; -import android.graphics.Region; - -import androidx.annotation.NonNull; -import androidx.annotation.Nullable; - -import com.android.internal.logging.UiEventLogger; -import com.android.systemui.plugins.statusbar.StatusBarStateController; -import com.android.systemui.shade.domain.interactor.ShadeInteractor; -import com.android.systemui.statusbar.notification.collection.NotificationEntry; -import com.android.systemui.statusbar.notification.collection.provider.VisualStabilityProvider; -import com.android.systemui.statusbar.notification.collection.render.GroupMembershipManager; -import com.android.systemui.statusbar.phone.KeyguardBypassController; -import com.android.systemui.statusbar.policy.AccessibilityManagerWrapper; -import com.android.systemui.statusbar.policy.ConfigurationController; -import com.android.systemui.util.concurrency.DelayableExecutor; -import com.android.systemui.util.kotlin.JavaAdapter; -import com.android.systemui.util.settings.GlobalSettings; -import com.android.systemui.util.time.SystemClock; - -class TestableHeadsUpManager extends HeadsUpManagerImpl { - -    private HeadsUpEntry mLastCreatedEntry; - -    TestableHeadsUpManager( -            Context context, -            HeadsUpManagerLogger logger, -            StatusBarStateController statusBarStateController, -            KeyguardBypassController bypassController, -            GroupMembershipManager groupMembershipManager, -            VisualStabilityProvider visualStabilityProvider, -            ConfigurationController configurationController, -            DelayableExecutor executor, -            GlobalSettings globalSettings, -            SystemClock systemClock, -            AccessibilityManagerWrapper accessibilityManagerWrapper, -            UiEventLogger uiEventLogger, -            JavaAdapter javaAdapter, -            ShadeInteractor shadeInteractor, -            AvalancheController avalancheController) { -        super( -                context, -                logger, -                statusBarStateController, -                bypassController, -                groupMembershipManager, -                visualStabilityProvider, -                configurationController, -                mockExecutorHandler(executor), -                globalSettings, -                systemClock, -                executor, -                accessibilityManagerWrapper, -                uiEventLogger, -                javaAdapter, -                shadeInteractor, -                avalancheController); - -        mTouchAcceptanceDelay = HeadsUpManagerImplOldTest.TEST_TOUCH_ACCEPTANCE_TIME; -        mMinimumDisplayTime = HeadsUpManagerImplOldTest.TEST_MINIMUM_DISPLAY_TIME; -        mAutoDismissTime = HeadsUpManagerImplOldTest.TEST_AUTO_DISMISS_TIME; -        mStickyForSomeTimeAutoDismissTime = HeadsUpManagerImplOldTest.TEST_STICKY_AUTO_DISMISS_TIME; -    } - -    @NonNull -    @Override -    protected HeadsUpEntry createHeadsUpEntry(NotificationEntry entry) { -        mLastCreatedEntry = spy(super.createHeadsUpEntry(entry)); -        return mLastCreatedEntry; -    } - -    // The following are only implemented by HeadsUpManagerPhone. If you need them, use that. -    @Override -    public void addHeadsUpPhoneListener(@NonNull OnHeadsUpPhoneListenerChange listener) { -        throw new UnsupportedOperationException(); -    } - -    @Override -    public void addSwipedOutNotification(@NonNull String key) { -        throw new UnsupportedOperationException(); -    } - -    @Override -    public void extendHeadsUp() { -        throw new UnsupportedOperationException(); -    } - -    @Nullable -    @Override -    public Region getTouchableRegion() { -        throw new UnsupportedOperationException(); -    } - -    @Override -    public boolean isHeadsUpAnimatingAwayValue() { -        throw new UnsupportedOperationException(); -    } - -    @Override -    public void onExpandingFinished() { -        throw new UnsupportedOperationException(); -    } - -    @Override -    public boolean removeNotification(@NonNull String key, boolean releaseImmediately, -            boolean animate, @NonNull String reason) { -        throw new UnsupportedOperationException(); -    } - -    @Override -    public void setAnimationStateHandler(@NonNull AnimationStateHandler handler) { -        throw new UnsupportedOperationException(); -    } - -    @Override -    public void setGutsShown(@NonNull NotificationEntry entry, boolean gutsShown) { -        throw new UnsupportedOperationException(); -    } - -    @Override -    public void setHeadsUpAnimatingAway(boolean headsUpAnimatingAway) { -        throw new UnsupportedOperationException(); -    } - -    @Override -    public void setRemoteInputActive(@NonNull NotificationEntry entry, -            boolean remoteInputActive) { -        throw new UnsupportedOperationException(); -    } - -    @Override -    public void setTrackingHeadsUp(boolean tracking) { -        throw new UnsupportedOperationException(); -    } - -    @Override -    public boolean shouldSwallowClick(@NonNull String key) { -        throw new UnsupportedOperationException(); -    } -} diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/notification/row/ExpandableNotificationRowControllerTest.kt b/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/notification/row/ExpandableNotificationRowControllerTest.kt index ca0f9ef5f2b0..8bca17f72c9f 100644 --- a/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/notification/row/ExpandableNotificationRowControllerTest.kt +++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/notification/row/ExpandableNotificationRowControllerTest.kt @@ -28,7 +28,7 @@ import com.android.internal.logging.MetricsLogger  import com.android.internal.logging.UiEventLogger  import com.android.internal.statusbar.IStatusBarService  import com.android.systemui.SysuiTestCase -import com.android.systemui.flags.FeatureFlags +import com.android.systemui.flags.FeatureFlagsClassic  import com.android.systemui.log.logcatLogBuffer  import com.android.systemui.plugins.FalsingManager  import com.android.systemui.plugins.PluginManager @@ -57,9 +57,7 @@ import com.android.systemui.util.mockito.eq  import com.android.systemui.util.mockito.mock  import com.android.systemui.util.mockito.withArgCaptor  import com.android.systemui.util.time.SystemClock -import com.android.systemui.wmshell.BubblesManager  import com.google.android.msdl.domain.MSDLPlayer -import java.util.Optional  import junit.framework.Assert  import org.junit.After  import org.junit.Before @@ -103,9 +101,8 @@ class ExpandableNotificationRowControllerTest : SysuiTestCase() {      private val gutsManager: NotificationGutsManager = mock()      private val onUserInteractionCallback: OnUserInteractionCallback = mock()      private val falsingManager: FalsingManager = mock() -    private val featureFlags: FeatureFlags = mock() +    private val featureFlags: FeatureFlagsClassic = mock()      private val peopleNotificationIdentifier: PeopleNotificationIdentifier = mock() -    private val bubblesManager: BubblesManager = mock()      private val settingsController: NotificationSettingsController = mock()      private val dragController: ExpandableNotificationRowDragController = mock()      private val dismissibilityProvider: NotificationDismissibilityProvider = mock() @@ -147,7 +144,6 @@ class ExpandableNotificationRowControllerTest : SysuiTestCase() {                  falsingManager,                  featureFlags,                  peopleNotificationIdentifier, -                Optional.of(bubblesManager),                  settingsController,                  dragController,                  dismissibilityProvider, diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/notification/row/NotificationTestHelper.java b/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/notification/row/NotificationTestHelper.java index 080ac3f8c697..b323ef85b370 100644 --- a/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/notification/row/NotificationTestHelper.java +++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/notification/row/NotificationTestHelper.java @@ -25,7 +25,6 @@ import static com.android.systemui.log.LogBufferHelperKt.logcatLogBuffer;  import static com.android.systemui.statusbar.NotificationEntryHelper.modifyRanking;  import static com.android.systemui.util.Assert.runWithCurrentThreadAsMainThread; -import static org.junit.Assert.assertEquals;  import static org.junit.Assert.assertTrue;  import static org.mockito.ArgumentMatchers.any;  import static org.mockito.ArgumentMatchers.anyInt; @@ -59,8 +58,8 @@ import com.android.internal.statusbar.IStatusBarService;  import com.android.keyguard.TestScopeProvider;  import com.android.systemui.TestableDependency;  import com.android.systemui.classifier.FalsingManagerFake; -import com.android.systemui.flags.FakeFeatureFlags; -import com.android.systemui.flags.FeatureFlags; +import com.android.systemui.flags.FakeFeatureFlagsClassic; +import com.android.systemui.flags.FeatureFlagsClassic;  import com.android.systemui.media.controls.util.MediaFeatureFlag;  import com.android.systemui.media.dialog.MediaOutputDialogManager;  import com.android.systemui.plugins.statusbar.StatusBarStateController; @@ -71,7 +70,6 @@ import com.android.systemui.statusbar.NotificationShadeWindowController;  import com.android.systemui.statusbar.SmartReplyController;  import com.android.systemui.statusbar.notification.ColorUpdateLogger;  import com.android.systemui.statusbar.notification.ConversationNotificationProcessor; -import com.android.systemui.statusbar.notification.SourceType;  import com.android.systemui.statusbar.notification.collection.NotificationEntry;  import com.android.systemui.statusbar.notification.collection.NotificationEntryBuilder;  import com.android.systemui.statusbar.notification.collection.notifcollection.CommonNotifCollection; @@ -79,6 +77,7 @@ import com.android.systemui.statusbar.notification.collection.notifcollection.No  import com.android.systemui.statusbar.notification.collection.provider.NotificationDismissibilityProvider;  import com.android.systemui.statusbar.notification.collection.render.GroupExpansionManager;  import com.android.systemui.statusbar.notification.collection.render.GroupMembershipManager; +import com.android.systemui.statusbar.notification.headsup.HeadsUpManager;  import com.android.systemui.statusbar.notification.icon.IconBuilder;  import com.android.systemui.statusbar.notification.icon.IconManager;  import com.android.systemui.statusbar.notification.people.PeopleNotificationIdentifier; @@ -89,7 +88,6 @@ import com.android.systemui.statusbar.notification.row.NotificationRowContentBin  import com.android.systemui.statusbar.notification.row.shared.NotificationRowContentBinderRefactor;  import com.android.systemui.statusbar.notification.stack.NotificationChildrenContainerLogger;  import com.android.systemui.statusbar.phone.KeyguardBypassController; -import com.android.systemui.statusbar.notification.headsup.HeadsUpManager;  import com.android.systemui.statusbar.policy.InflatedSmartReplyState;  import com.android.systemui.statusbar.policy.InflatedSmartReplyViewHolder;  import com.android.systemui.statusbar.policy.SmartReplyConstants; @@ -99,7 +97,6 @@ import com.android.systemui.util.concurrency.FakeExecutor;  import com.android.systemui.util.time.FakeSystemClock;  import com.android.systemui.util.time.SystemClock;  import com.android.systemui.util.time.SystemClockImpl; -import com.android.systemui.wmshell.BubblesManager;  import com.android.systemui.wmshell.BubblesTestActivity;  import kotlin.coroutines.CoroutineContext; @@ -109,7 +106,6 @@ import kotlinx.coroutines.test.TestScope;  import org.mockito.ArgumentCaptor;  import java.util.Objects; -import java.util.Optional;  import java.util.concurrent.CountDownLatch;  import java.util.concurrent.Executor;  import java.util.concurrent.TimeUnit; @@ -149,7 +145,7 @@ public class NotificationTestHelper {      private final NotificationDismissibilityProvider mDismissibilityProvider;      public final Runnable mFutureDismissalRunnable;      private @InflationFlag int mDefaultInflationFlags; -    private final FakeFeatureFlags mFeatureFlags; +    private final FakeFeatureFlagsClassic mFeatureFlags;      private final SystemClock mSystemClock;      private final RowInflaterTaskLogger mRowInflaterTaskLogger;      private final TestScope mTestScope = TestScopeProvider.getTestScope(); @@ -167,17 +163,17 @@ public class NotificationTestHelper {              Context context,              TestableDependency dependency,              @Nullable TestableLooper testLooper) { -        this(context, dependency, testLooper, new FakeFeatureFlags()); +        this(context, dependency, testLooper, new FakeFeatureFlagsClassic());      }      public NotificationTestHelper(              Context context,              TestableDependency dependency,              @Nullable TestableLooper testLooper, -            @NonNull FakeFeatureFlags featureFlags) { +            @NonNull FakeFeatureFlagsClassic featureFlags) {          mContext = context;          mFeatureFlags = Objects.requireNonNull(featureFlags); -        dependency.injectTestDependency(FeatureFlags.class, mFeatureFlags); +        dependency.injectTestDependency(FeatureFlagsClassic.class, mFeatureFlags);          dependency.injectMockDependency(NotificationMediaManager.class);          dependency.injectMockDependency(NotificationShadeWindowController.class);          dependency.injectMockDependency(MediaOutputDialogManager.class); @@ -280,24 +276,6 @@ public class NotificationTestHelper {      }      /** -     * Creates a generic row with rounded border. -     * -     * @return a generic row with the set roundness. -     * @throws Exception -     */ -    public ExpandableNotificationRow createRowWithRoundness( -            float topRoundness, -            float bottomRoundness, -            SourceType sourceType -    ) throws Exception { -        ExpandableNotificationRow row = createRow(); -        row.requestRoundness(topRoundness, bottomRoundness, sourceType, /*animate = */ false); -        assertEquals(topRoundness, row.getTopRoundness(), /* delta = */ 0f); -        assertEquals(bottomRoundness, row.getBottomRoundness(), /* delta = */ 0f); -        return row; -    } - -    /**       * Creates a generic row.       *       * @return a generic row with no special properties. @@ -400,9 +378,8 @@ public class NotificationTestHelper {                  null /* groupKey */,                  makeBubbleMetadata(null /* deleteIntent */, false /* autoExpand */));          n.flags |= FLAG_FSI_REQUESTED_BUT_DENIED; -        ExpandableNotificationRow row = generateRow(n, PKG, UID, USER_HANDLE, +        return generateRow(n, PKG, UID, USER_HANDLE,                  mDefaultInflationFlags, IMPORTANCE_HIGH); -        return row;      } @@ -668,7 +645,6 @@ public class NotificationTestHelper {                  mStatusBarStateController,                  mPeopleNotificationIdentifier,                  mOnUserInteractionCallback, -                Optional.of(mock(BubblesManager.class)),                  mock(NotificationGutsManager.class),                  mDismissibilityProvider,                  mock(MetricsLogger.class), @@ -676,7 +652,6 @@ public class NotificationTestHelper {                  mock(ColorUpdateLogger.class),                  mock(SmartReplyConstants.class),                  mock(SmartReplyController.class), -                mFeatureFlags,                  mock(IStatusBarService.class),                  mock(UiEventLogger.class)); diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/notification/stack/NotificationTargetsHelperTest.kt b/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/notification/stack/NotificationTargetsHelperTest.kt index 660eb308fdf3..87833d0c03f6 100644 --- a/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/notification/stack/NotificationTargetsHelperTest.kt +++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/notification/stack/NotificationTargetsHelperTest.kt @@ -5,7 +5,7 @@ import android.testing.TestableLooper.RunWithLooper  import androidx.test.ext.junit.runners.AndroidJUnit4  import androidx.test.filters.SmallTest  import com.android.systemui.SysuiTestCase -import com.android.systemui.flags.FakeFeatureFlags +import com.android.systemui.flags.FakeFeatureFlagsClassic  import com.android.systemui.statusbar.notification.row.NotificationTestHelper  import com.android.systemui.util.mockito.mock  import junit.framework.Assert.assertEquals @@ -18,7 +18,7 @@ import org.junit.runner.RunWith  @RunWith(AndroidJUnit4::class)  @RunWithLooper  class NotificationTargetsHelperTest : SysuiTestCase() { -    private val featureFlags = FakeFeatureFlags() +    private val featureFlags = FakeFeatureFlagsClassic()      lateinit var notificationTestHelper: NotificationTestHelper      private val sectionsManager: NotificationSectionsManager = mock()      private val stackScrollLayout: NotificationStackScrollLayout = mock() @@ -90,11 +90,7 @@ class NotificationTargetsHelperTest : SysuiTestCase() {                  )          val expected = -            RoundableTargets( -                before = children.attachedChildren[1], -                swiped = swiped, -                after = null, -            ) +            RoundableTargets(before = children.attachedChildren[1], swiped = swiped, after = null)          assertEquals(expected, actual)      }  } diff --git a/packages/SystemUI/res/layout/screen_record_options.xml b/packages/SystemUI/res/layout/screen_record_options.xml index 4b5cdb5e708d..c6a9470a94b2 100644 --- a/packages/SystemUI/res/layout/screen_record_options.xml +++ b/packages/SystemUI/res/layout/screen_record_options.xml @@ -29,7 +29,7 @@              android:tint="?android:attr/textColorSecondary"              android:layout_gravity="center_vertical"              android:layout_weight="0" -            android:layout_marginRight="@dimen/screenrecord_option_padding" +            android:layout_marginEnd="@dimen/screenrecord_option_padding"              android:importantForAccessibility="no"/>          <Spinner              android:id="@+id/screen_recording_options" @@ -63,7 +63,7 @@              android:layout_height="@dimen/screenrecord_option_icon_size"              android:src="@drawable/ic_touch"              android:tint="?android:attr/textColorSecondary" -            android:layout_marginRight="@dimen/screenrecord_option_padding" +            android:layout_marginEnd="@dimen/screenrecord_option_padding"              android:importantForAccessibility="no"/>          <TextView              android:layout_width="0dp" diff --git a/packages/SystemUI/res/raw/trackpad_recent_apps_edu.json b/packages/SystemUI/res/raw/trackpad_recent_apps_edu.json index 10768fccd4ad..28662669ec25 100644 --- a/packages/SystemUI/res/raw/trackpad_recent_apps_edu.json +++ b/packages/SystemUI/res/raw/trackpad_recent_apps_edu.json @@ -1 +1 @@ -{"v":"5.12.1","fr":60,"ip":0,"op":511,"w":554,"h":564,"nm":"Trackpad-JSON_Recents-EDU","ddd":0,"assets":[{"id":"comp_0","nm":"Recents_EDU Loop","fr":60,"layers":[{"ddd":0,"ind":2,"ty":4,"nm":"CNTL || playback","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"s":true,"x":{"a":0,"k":0,"ix":3},"y":{"a":0,"k":0,"ix":4}},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"ef":[{"ty":5,"nm":"Picker","np":3,"mn":"Pseudo/@@WcSiov6sT3a4/s0XPKYEOQ","ix":1,"en":1,"ef":[{"ty":7,"nm":"Menu","mn":"Pseudo/@@WcSiov6sT3a4/s0XPKYEOQ-0001","ix":1,"v":{"a":0,"k":2,"ix":1}}]},{"ty":5,"nm":"OUTPUT","np":3,"mn":"ADBE Slider Control","ix":2,"en":1,"ef":[{"ty":0,"nm":"Slider","mn":"ADBE Slider Control-0001","ix":1,"v":{"k":[{"s":[0],"t":142,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[0.001],"t":143,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[0.002],"t":144,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[0.003],"t":145,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[0.004],"t":146,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[0.006],"t":147,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[0.008],"t":148,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[0.01],"t":149,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[0.012],"t":150,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[0.016],"t":151,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[0.02],"t":152,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[0.025],"t":153,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[0.031],"t":154,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[0.038],"t":155,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[0.047],"t":156,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[0.059],"t":157,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[0.073],"t":158,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[0.091],"t":159,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[0.116],"t":160,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[0.15],"t":161,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[0.196],"t":162,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[0.249],"t":163,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[0.306],"t":164,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[0.366],"t":165,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[0.425],"t":166,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[0.481],"t":167,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[0.53],"t":168,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[0.575],"t":169,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[0.614],"t":170,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[0.648],"t":171,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[0.678],"t":172,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[0.706],"t":173,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[0.73],"t":174,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[0.752],"t":175,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[0.772],"t":176,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[0.79],"t":177,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[0.807],"t":178,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[0.822],"t":179,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[0.836],"t":180,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[0.849],"t":181,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[0.861],"t":182,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[0.873],"t":183,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[0.883],"t":184,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[0.892],"t":185,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[0.901],"t":186,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[0.91],"t":187,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[0.917],"t":188,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[0.925],"t":189,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[0.931],"t":190,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[0.937],"t":191,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[0.943],"t":192,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[0.949],"t":193,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[0.954],"t":194,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[0.958],"t":195,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[0.963],"t":196,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[0.967],"t":197,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[0.97],"t":198,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[0.974],"t":199,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[0.977],"t":200,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[0.98],"t":201,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[0.983],"t":202,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[0.985],"t":203,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[0.987],"t":204,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[0.989],"t":205,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[0.991],"t":206,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[0.993],"t":207,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[0.994],"t":208,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[0.996],"t":209,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[0.997],"t":210,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[0.998],"t":211,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[0.998],"t":212,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[0.999],"t":213,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[1],"t":215,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[1],"t":250,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[1.009],"t":251,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[1.038],"t":252,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[1.093],"t":253,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[1.193],"t":254,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[1.4],"t":255,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[1.636],"t":256,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[1.739],"t":257,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[1.8],"t":258,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[1.84],"t":259,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[1.871],"t":260,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[1.894],"t":261,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[1.912],"t":262,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[1.928],"t":263,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[1.94],"t":264,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[1.951],"t":265,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[1.959],"t":266,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[1.967],"t":267,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[1.973],"t":268,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[1.979],"t":269,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[1.983],"t":270,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[1.987],"t":271,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[1.99],"t":272,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[1.993],"t":273,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[1.995],"t":274,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[1.997],"t":275,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[1.998],"t":276,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[1.999],"t":278,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[2],"t":380,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[2.009],"t":381,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[2.038],"t":382,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[2.093],"t":383,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[2.193],"t":384,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[2.4],"t":385,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[2.636],"t":386,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[2.739],"t":387,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[2.8],"t":388,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[2.84],"t":389,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[2.871],"t":390,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[2.894],"t":391,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[2.912],"t":392,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[2.928],"t":393,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[2.94],"t":394,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[2.951],"t":395,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[2.959],"t":396,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[2.967],"t":397,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[2.973],"t":398,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[2.979],"t":399,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[2.983],"t":400,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[2.987],"t":401,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[2.99],"t":402,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[2.993],"t":403,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[2.995],"t":404,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[2.997],"t":405,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[2.999],"t":408,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}}]}}]},{"ty":5,"nm":"Keys","np":3,"mn":"ADBE Slider Control","ix":3,"en":1,"ef":[{"ty":0,"nm":"Slider","mn":"ADBE Slider Control-0001","ix":1,"v":{"a":1,"k":[{"i":{"x":[0.831],"y":[0.109]},"o":{"x":[0.458],"y":[0.053]},"t":142,"s":[0]},{"i":{"x":[0.1],"y":[1]},"o":{"x":[0.15],"y":[0.43]},"t":161,"s":[0.15]},{"t":217,"s":[1],"h":1},{"i":{"x":[0.8],"y":[0.15]},"o":{"x":[0.3],"y":[0]},"t":250,"s":[1]},{"i":{"x":[0.1],"y":[1]},"o":{"x":[0.05],"y":[0.7]},"t":255,"s":[1.4]},{"t":280,"s":[2],"h":1},{"i":{"x":[0.8],"y":[0.15]},"o":{"x":[0.3],"y":[0]},"t":380,"s":[2]},{"i":{"x":[0.1],"y":[1]},"o":{"x":[0.05],"y":[0.7]},"t":385,"s":[2.4]},{"t":410,"s":[3]}],"ix":1}}]},{"ty":5,"nm":"State (holds)","np":3,"mn":"ADBE Slider Control","ix":4,"en":1,"ef":[{"ty":0,"nm":"Slider","mn":"ADBE Slider Control-0001","ix":1,"v":{"a":0,"k":0,"ix":1}}]}],"shapes":[],"ip":0,"op":451,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":3,"ty":3,"nm":"Null :: Taskbar drop","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"k":[{"s":[252,278,0],"t":186,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[252,278.45,0],"t":187,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[252,279.615,0],"t":188,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[252,281.252,0],"t":189,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[252,283.166,0],"t":190,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[252,287.233,0],"t":192,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[252,289.181,0],"t":193,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[252,290.982,0],"t":194,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[252,292.599,0],"t":195,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[252,294.012,0],"t":196,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[252,295.216,0],"t":197,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[252,296.216,0],"t":198,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[252,297.023,0],"t":199,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[252,297.655,0],"t":200,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[252,298.131,0],"t":201,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[252,298.474,0],"t":202,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[252,298.705,0],"t":203,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[252,298.465,0],"t":212,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[252,298.226,0],"t":215,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[252,298,0],"t":377,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[252,298.382,0],"t":378,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[252,299.372,0],"t":379,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[252,300.764,0],"t":380,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[252,302.391,0],"t":381,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[252,305.848,0],"t":383,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[252,307.504,0],"t":384,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[252,309.035,0],"t":385,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[252,310.409,0],"t":386,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[252,311.611,0],"t":387,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[252,312.634,0],"t":388,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[252,313.483,0],"t":389,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[252,314.169,0],"t":390,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[252,314.706,0],"t":391,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[252,315.112,0],"t":392,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[252,315.403,0],"t":393,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[252,315.717,0],"t":395,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[252,315.474,0],"t":402,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[252,315.192,0],"t":406,"i":{"x":1,"y":1},"o":{"x":0,"y":0}}],"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":511,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":4,"ty":0,"nm":"Taskbar Lofi","parent":3,"refId":"comp_1","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":134,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":143,"s":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":432,"s":[100]},{"t":444,"s":[0]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"s":true,"x":{"a":0,"k":0,"ix":3},"y":{"k":[{"s":[26.984],"t":127,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[26.971],"t":128,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[26.95],"t":129,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[26.921],"t":130,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[26.882],"t":131,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[26.83],"t":132,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[26.765],"t":133,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[26.685],"t":134,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[26.589],"t":135,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[26.478],"t":136,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[26.349],"t":137,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[26.205],"t":138,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[26.072],"t":139,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[25.926],"t":140,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[25.764],"t":141,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[25.589],"t":142,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[25.397],"t":143,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[25.187],"t":144,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[24.959],"t":145,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[24.711],"t":146,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[24.44],"t":147,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[24.146],"t":148,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[23.826],"t":149,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[23.479],"t":150,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[23.1],"t":151,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[22.686],"t":152,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[22.236],"t":153,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[21.745],"t":154,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[21.207],"t":155,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[20.616],"t":156,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[19.967],"t":157,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[19.248],"t":158,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[18.457],"t":159,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[17.578],"t":160,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[16.602],"t":161,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[15.514],"t":162,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[14.303],"t":163,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[12.954],"t":164,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[11.477],"t":165,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[9.885],"t":166,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[8.215],"t":167,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[6.526],"t":168,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[4.878],"t":169,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[3.338],"t":170,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[1.928],"t":171,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[0.659],"t":172,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[-0.475],"t":173,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[-1.485],"t":174,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[-2.388],"t":175,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[-3.192],"t":176,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[-3.911],"t":177,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[-4.556],"t":178,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[-5.136],"t":179,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[-5.662],"t":180,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[-6.135],"t":181,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[-6.563],"t":182,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[-6.951],"t":183,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[-7.303],"t":184,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[-7.622],"t":185,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[-7.913],"t":186,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[-8.175],"t":187,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[-8.413],"t":188,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[-8.628],"t":189,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[-8.823],"t":190,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[-8.998],"t":191,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[-9.155],"t":192,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[-9.296],"t":193,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[-9.42],"t":194,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[-9.531],"t":195,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[-9.627],"t":196,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[-9.711],"t":197,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[-9.783],"t":198,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[-9.843],"t":199,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[-9.893],"t":200,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[-9.933],"t":201,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[-9.963],"t":202,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[-9.984],"t":203,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[-9.996],"t":204,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}}]}},"a":{"a":0,"k":[91,15,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"ef":[{"ty":5,"nm":"Super Slider","np":3,"mn":"ADBE Slider Control","ix":1,"en":1,"ef":[{"ty":0,"nm":"Slider","mn":"ADBE Slider Control-0001","ix":1,"v":{"a":1,"k":[{"i":{"x":[0.64],"y":[0.48]},"o":{"x":[0.36],"y":[0]},"t":121,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":138,"s":[17.5]},{"t":205,"s":[100]}],"ix":1}}]}],"w":182,"h":30,"ip":0,"op":511,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":5,"ty":3,"nm":"Focus Task :: Lift & Drop","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"s":true,"x":{"a":0,"k":252,"ix":3},"y":{"k":[{"s":[157.385],"t":145,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[157.28],"t":147,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[157.128],"t":149,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[157.026],"t":150,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[156.901],"t":151,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[156.75],"t":152,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[156.564],"t":153,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[156.335],"t":154,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[156.054],"t":155,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[155.706],"t":156,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[155.275],"t":157,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[154.73],"t":158,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[154.03],"t":159,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[153.103],"t":160,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[151.8],"t":161,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[150.035],"t":162,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[148.047],"t":163,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[145.867],"t":164,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[143.589],"t":165,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[141.341],"t":166,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[139.241],"t":167,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[137.346],"t":168,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[135.666],"t":169,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[134.185],"t":170,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[132.878],"t":171,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[131.718],"t":172,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[130.684],"t":173,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[129.755],"t":174,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[128.916],"t":175,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[128.155],"t":176,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[127.462],"t":177,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[126.829],"t":178,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[126.249],"t":179,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[125.715],"t":180,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[125.221],"t":181,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[124.765],"t":182,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[124.343],"t":183,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[123.951],"t":184,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[123.587],"t":185,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[123.249],"t":186,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[122.934],"t":187,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[122.641],"t":188,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[122.369],"t":189,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[122.114],"t":190,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[121.877],"t":191,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[121.657],"t":192,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[121.452],"t":193,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[121.26],"t":194,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[121.082],"t":195,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[120.918],"t":196,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[120.764],"t":197,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[120.623],"t":198,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[120.492],"t":199,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[120.371],"t":200,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[120.261],"t":201,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[120.158],"t":202,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[120.065],"t":203,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[119.98],"t":204,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[119.903],"t":205,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[119.835],"t":206,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[119.718],"t":208,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[119.629],"t":210,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[119.51],"t":215,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[119.5],"t":250,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[119.746],"t":251,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[120.54],"t":252,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[122.071],"t":253,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[124.808],"t":254,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[130.5],"t":255,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[136.982],"t":256,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[139.835],"t":257,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[141.489],"t":258,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[142.613],"t":259,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[143.442],"t":260,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[144.082],"t":261,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[144.593],"t":262,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[145.01],"t":263,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[145.354],"t":264,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[145.642],"t":265,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[145.884],"t":266,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[146.089],"t":267,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[146.262],"t":268,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[146.409],"t":269,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[146.534],"t":270,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[146.638],"t":271,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[146.725],"t":272,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[146.857],"t":274,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[147],"t":380,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[147.094],"t":381,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[147.397],"t":382,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[147.982],"t":383,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[149.027],"t":384,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[151.2],"t":385,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[153.675],"t":386,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[154.764],"t":387,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[155.396],"t":388,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[155.825],"t":389,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[156.141],"t":390,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[156.386],"t":391,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[156.581],"t":392,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[156.74],"t":393,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[156.871],"t":394,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[156.981],"t":395,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[157.074],"t":396,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[157.218],"t":398,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[157.362],"t":401,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}}]}},"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":511,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":6,"ty":4,"nm":"matte","parent":5,"td":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,"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":"rc","d":1,"s":{"k":[{"s":[503.613,314.758],"t":144,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[503.134,314.459],"t":146,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[502.832,314.27],"t":147,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[502.464,314.04],"t":148,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[502.025,313.765],"t":149,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[501.487,313.429],"t":150,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[500.824,313.015],"t":151,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[500.023,312.514],"t":152,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[499.032,311.895],"t":153,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[497.818,311.136],"t":154,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[496.328,310.205],"t":155,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[494.484,309.053],"t":156,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[492.194,307.621],"t":157,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[489.307,305.817],"t":158,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[485.592,303.495],"t":159,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[480.67,300.419],"t":160,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[473.76,296.1],"t":161,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[464.395,290.247],"t":162,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[453.849,283.656],"t":163,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[442.286,276.429],"t":164,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[430.198,268.874],"t":165,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[418.274,261.421],"t":166,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[407.131,254.457],"t":167,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[397.077,248.173],"t":168,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[388.165,242.603],"t":169,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[380.31,237.694],"t":170,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[373.373,233.358],"t":171,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[367.218,229.511],"t":172,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[361.732,226.082],"t":173,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[356.803,223.002],"t":174,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[352.354,220.221],"t":175,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[348.318,217.699],"t":176,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[344.643,215.402],"t":177,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[341.283,213.302],"t":178,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[338.205,211.378],"t":179,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[335.37,209.606],"t":180,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[332.752,207.97],"t":181,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[330.33,206.456],"t":182,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[328.092,205.058],"t":183,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[326.012,203.757],"t":184,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[324.082,202.552],"t":185,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[322.291,201.432],"t":186,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[320.617,200.386],"t":187,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[319.062,199.414],"t":188,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[317.618,198.512],"t":189,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[316.267,197.667],"t":190,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[315.013,196.883],"t":191,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[313.845,196.153],"t":192,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[312.756,195.472],"t":193,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[311.738,194.837],"t":194,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[310.793,194.246],"t":195,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[309.921,193.7],"t":196,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[309.107,193.192],"t":197,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[308.359,192.724],"t":198,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[307.663,192.289],"t":199,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[307.02,191.888],"t":200,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[306.436,191.522],"t":201,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[305.891,191.182],"t":202,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[305.399,190.874],"t":203,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[304.946,190.591],"t":204,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[304.539,190.337],"t":205,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[304.178,190.112],"t":206,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[303.85,189.906],"t":207,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[303.555,189.722],"t":208,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[303.306,189.566],"t":209,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[303.082,189.427],"t":210,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[302.892,189.308],"t":211,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[302.617,189.135],"t":213,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[302.4,189],"t":250,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[302.247,188.904],"t":251,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[301.752,188.595],"t":252,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[300.798,187.999],"t":253,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[299.093,186.933],"t":254,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[295.546,184.716],"t":255,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[291.506,182.192],"t":256,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[289.729,181.08],"t":257,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[288.698,180.436],"t":258,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[287.998,179.999],"t":259,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[287.481,179.676],"t":260,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[287.082,179.427],"t":261,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[286.764,179.227],"t":262,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[286.504,179.065],"t":263,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[286.29,178.931],"t":264,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[286.11,178.819],"t":265,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[285.832,178.645],"t":267,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[285.555,178.472],"t":270,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[285.272,178.295],"t":278,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[285.264,178.29],"t":380,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[287.222,179.514],"t":381,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[293.538,183.461],"t":382,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[305.714,191.071],"t":383,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[327.48,204.675],"t":384,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[372.758,232.974],"t":385,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[424.317,265.198],"t":386,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[447.009,279.381],"t":387,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[460.167,287.605],"t":388,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[469.103,293.19],"t":389,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[475.697,297.31],"t":390,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[480.788,300.492],"t":391,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[484.853,303.033],"t":392,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[488.172,305.107],"t":393,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[490.906,306.816],"t":394,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[493.198,308.249],"t":395,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[495.121,309.451],"t":396,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[496.752,310.47],"t":397,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[498.133,311.333],"t":398,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[499.301,312.063],"t":399,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[500.29,312.681],"t":400,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[501.123,313.202],"t":401,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[501.814,313.634],"t":402,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[502.391,313.994],"t":403,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[502.861,314.288],"t":404,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[503.238,314.524],"t":405,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[503.53,314.706],"t":406,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}}]},"p":{"a":0,"k":[0,0],"ix":3},"r":{"k":[{"s":[27.974],"t":144,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[27.959],"t":145,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[27.942],"t":146,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[27.922],"t":147,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[27.898],"t":148,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[27.869],"t":149,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[27.833],"t":150,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[27.789],"t":151,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[27.736],"t":152,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[27.67],"t":153,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[27.589],"t":154,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[27.49],"t":155,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[27.368],"t":156,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[27.216],"t":157,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[27.024],"t":158,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[26.777],"t":159,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[26.45],"t":160,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[25.991],"t":161,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[25.37],"t":162,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[24.669],"t":163,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[23.901],"t":164,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[23.098],"t":165,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[22.306],"t":166,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[21.566],"t":167,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[20.898],"t":168,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[20.306],"t":169,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[19.785],"t":170,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[19.324],"t":171,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[18.915],"t":172,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[18.551],"t":173,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[18.223],"t":174,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[17.928],"t":175,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[17.66],"t":176,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[17.416],"t":177,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[17.193],"t":178,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[16.988],"t":179,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[16.8],"t":180,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[16.626],"t":181,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[16.465],"t":182,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[16.316],"t":183,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[16.178],"t":184,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[16.05],"t":185,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[15.931],"t":186,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[15.82],"t":187,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[15.717],"t":188,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[15.621],"t":189,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[15.531],"t":190,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[15.448],"t":191,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[15.37],"t":192,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[15.298],"t":193,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[15.23],"t":194,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[15.167],"t":195,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[15.11],"t":196,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[15.055],"t":197,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[15.006],"t":198,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[14.96],"t":199,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[14.917],"t":200,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[14.878],"t":201,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[14.842],"t":202,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[14.809],"t":203,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[14.779],"t":204,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[14.752],"t":205,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[14.728],"t":206,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[14.706],"t":207,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[14.687],"t":208,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[14.67],"t":209,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[14.655],"t":210,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[14.643],"t":211,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[14.633],"t":212,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[14.624],"t":213,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[14.61],"t":250,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[14.603],"t":251,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[14.579],"t":252,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[14.532],"t":253,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[14.45],"t":254,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[14.278],"t":255,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[14.082],"t":256,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[13.996],"t":257,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[13.946],"t":258,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[13.912],"t":259,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[13.887],"t":260,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[13.868],"t":261,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[13.853],"t":262,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[13.84],"t":263,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[13.83],"t":264,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[13.821],"t":265,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[13.808],"t":267,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[13.794],"t":270,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[13.78],"t":278,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[13.78],"t":380,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[13.907],"t":381,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[14.318],"t":382,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[15.109],"t":383,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[16.524],"t":384,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[19.468],"t":385,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[22.82],"t":386,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[24.295],"t":387,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[25.15],"t":388,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[25.731],"t":389,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[26.16],"t":390,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[26.491],"t":391,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[26.755],"t":392,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[26.971],"t":393,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[27.149],"t":394,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[27.298],"t":395,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[27.423],"t":396,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[27.529],"t":397,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[27.619],"t":398,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[27.694],"t":399,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[27.759],"t":400,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[27.813],"t":401,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[27.858],"t":402,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[27.895],"t":403,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[27.926],"t":404,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[27.95],"t":405,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[27.969],"t":406,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[27.993],"t":408,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}}]},"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}],"ip":0,"op":511,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":7,"ty":0,"nm":"Recents_LofiApp","parent":6,"tt":1,"tp":6,"refId":"comp_2","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,"l":2},"a":{"a":0,"k":[252,157.5,0],"ix":1,"l":2},"s":{"k":[{"s":[99.923,99.923,100],"t":144,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[99.828,99.828,100],"t":146,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[99.768,99.768,100],"t":147,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[99.695,99.695,100],"t":148,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[99.608,99.608,100],"t":149,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[99.501,99.501,100],"t":150,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[99.37,99.37,100],"t":151,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[99.211,99.211,100],"t":152,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[99.014,99.014,100],"t":153,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[98.773,98.773,100],"t":154,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[98.478,98.478,100],"t":155,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[98.112,98.112,100],"t":156,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[97.658,97.658,100],"t":157,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[97.085,97.085,100],"t":158,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[96.348,96.348,100],"t":159,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[95.371,95.371,100],"t":160,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[94,94,100],"t":161,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[92.142,92.142,100],"t":162,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[90.049,90.049,100],"t":163,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[87.755,87.755,100],"t":164,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[85.357,85.357,100],"t":165,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[82.991,82.991,100],"t":166,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[80.78,80.78,100],"t":167,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[78.785,78.785,100],"t":168,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[77.017,77.017,100],"t":169,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[75.458,75.458,100],"t":170,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[74.082,74.082,100],"t":171,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[72.861,72.861,100],"t":172,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[71.772,71.772,100],"t":173,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[70.794,70.794,100],"t":174,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[69.911,69.911,100],"t":175,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[69.111,69.111,100],"t":176,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[68.382,68.382,100],"t":177,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[67.715,67.715,100],"t":178,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[67.104,67.104,100],"t":179,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[66.542,66.542,100],"t":180,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[66.022,66.022,100],"t":181,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[65.542,65.542,100],"t":182,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[65.098,65.098,100],"t":183,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[64.685,64.685,100],"t":184,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[64.302,64.302,100],"t":185,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[63.947,63.947,100],"t":186,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[63.615,63.615,100],"t":187,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[63.306,63.306,100],"t":188,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[63.02,63.02,100],"t":189,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[62.751,62.751,100],"t":190,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[62.503,62.503,100],"t":191,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[62.271,62.271,100],"t":192,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[62.055,62.055,100],"t":193,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[61.853,61.853,100],"t":194,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[61.665,61.665,100],"t":195,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[61.492,61.492,100],"t":196,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[61.331,61.331,100],"t":197,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[61.182,61.182,100],"t":198,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[61.044,61.044,100],"t":199,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[60.917,60.917,100],"t":200,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[60.801,60.801,100],"t":201,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[60.693,60.693,100],"t":202,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[60.595,60.595,100],"t":203,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[60.505,60.505,100],"t":204,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[60.424,60.424,100],"t":205,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[60.353,60.353,100],"t":206,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[60.288,60.288,100],"t":207,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[60.229,60.229,100],"t":208,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[60.18,60.18,100],"t":209,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[60.135,60.135,100],"t":210,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[60.098,60.098,100],"t":211,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[60.043,60.043,100],"t":213,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[60,60,100],"t":250,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[59.97,59.97,100],"t":251,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[59.871,59.871,100],"t":252,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[59.682,59.682,100],"t":253,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[59.344,59.344,100],"t":254,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[58.64,58.64,100],"t":255,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[57.839,57.839,100],"t":256,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[57.486,57.486,100],"t":257,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[57.281,57.281,100],"t":258,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[57.142,57.142,100],"t":259,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[57.04,57.04,100],"t":260,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[56.961,56.961,100],"t":261,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[56.898,56.898,100],"t":262,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[56.846,56.846,100],"t":263,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[56.804,56.804,100],"t":264,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[56.768,56.768,100],"t":265,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[56.713,56.713,100],"t":267,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[56.658,56.658,100],"t":270,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[56.602,56.602,100],"t":278,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[56.6,56.6,100],"t":380,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[56.989,56.989,100],"t":381,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[58.242,58.242,100],"t":382,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[60.657,60.657,100],"t":383,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[64.976,64.976,100],"t":384,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[73.96,73.96,100],"t":385,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[84.19,84.19,100],"t":386,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[88.692,88.692,100],"t":387,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[91.303,91.303,100],"t":388,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[93.076,93.076,100],"t":389,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[94.384,94.384,100],"t":390,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[95.394,95.394,100],"t":391,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[96.201,96.201,100],"t":392,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[96.859,96.859,100],"t":393,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[97.402,97.402,100],"t":394,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[97.857,97.857,100],"t":395,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[98.238,98.238,100],"t":396,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[98.562,98.562,100],"t":397,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[98.836,98.836,100],"t":398,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[99.068,99.068,100],"t":399,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[99.264,99.264,100],"t":400,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[99.429,99.429,100],"t":401,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[99.566,99.566,100],"t":402,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[99.681,99.681,100],"t":403,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[99.774,99.774,100],"t":404,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[99.849,99.849,100],"t":405,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[99.907,99.907,100],"t":406,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}}],"l":2}},"ao":0,"w":504,"h":315,"ip":0,"op":511,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":8,"ty":4,"nm":".onSecondaryFixedVariant","cl":"onSecondaryFixedVariant","parent":7,"sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":268,"s":[0]},{"t":277,"s":[100]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[252,-30.035,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[176.678,176.678,100],"ix":6,"l":2}},"ao":0,"shapes":[{"d":1,"ty":"el","s":{"a":0,"k":[18,18],"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.325490196078,0.270588235294,0.164705882353,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false}],"ip":0,"op":511,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":9,"ty":4,"nm":"second Tasks Zoom back","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[252,157.5,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":1,"k":[{"i":{"x":[0.8,0.8,0.8],"y":[0.15,0.15,1]},"o":{"x":[0.3,0.3,0.3],"y":[0,0,0]},"t":380,"s":[100,100,100]},{"i":{"x":[0.1,0.1,0.1],"y":[1,1,1]},"o":{"x":[0.05,0.05,0.05],"y":[0.7,0.7,0]},"t":385,"s":[98,98,100]},{"t":410,"s":[95,95,100]}],"ix":6,"l":2}},"ao":0,"shapes":[],"ip":0,"op":511,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":10,"ty":4,"nm":"Null :: Reposition Side Task","parent":9,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.8,"y":0.15},"o":{"x":0.3,"y":0},"t":250,"s":[-318.4,-38,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.1,"y":1},"o":{"x":0.05,"y":0.7},"t":255,"s":[-277.34,-48.1,0],"to":[0,0,0],"ti":[0,0,0]},{"t":280,"s":[-215.75,-63.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":[],"ip":197,"op":511,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":11,"ty":4,"nm":".onSecondaryFixedVariant","cl":"onSecondaryFixedVariant","parent":12,"sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":268,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":277,"s":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":383,"s":[100]},{"t":392,"s":[0]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"k":[{"s":[0,-111.72,0],"t":250,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0,-111.197,0],"t":251,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0,-109.514,0],"t":252,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0,-106.268,0],"t":253,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0,-100.462,0],"t":254,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0,-88.39,0],"t":255,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0,-74.643,0],"t":256,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0,-68.591,0],"t":257,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0,-65.083,0],"t":258,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0,-62.7,0],"t":259,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0,-60.943,0],"t":260,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0,-59.584,0],"t":261,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0,-58.5,0],"t":262,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0,-57.616,0],"t":263,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0,-56.886,0],"t":264,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0,-56.276,0],"t":265,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0,-55.762,0],"t":266,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0,-55.328,0],"t":267,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0,-54.96,0],"t":268,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0,-54.648,0],"t":269,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0,-54.385,0],"t":270,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0,-54.163,0],"t":271,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0,-53.977,0],"t":272,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0,-53.824,0],"t":273,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0,-53.698,0],"t":274,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0,-53.598,0],"t":275,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0,-53.521,0],"t":276,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0,-53.463,0],"t":277,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0,-53.424,0],"t":278,"i":{"x":1,"y":1},"o":{"x":0,"y":0}}],"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":[{"d":1,"ty":"el","s":{"a":0,"k":[18,18],"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.325490196078,0.270588235294,0.164705882353,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false}],"ip":197,"op":511,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":12,"ty":4,"nm":".onSecondaryFixedVariant","cl":"onSecondaryFixedVariant","parent":10,"sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":383,"s":[100]},{"t":392,"s":[0]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.1,"y":1},"o":{"x":0.05,"y":0.963},"t":217,"s":[-84.8,0,0],"to":[0,0,0],"ti":[0,0,0]},{"t":250,"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,"shapes":[{"ty":"rc","d":1,"s":{"a":1,"k":[{"i":{"x":[0.8,0.8],"y":[0.15,0.15]},"o":{"x":[0.3,0.3],"y":[0,0]},"t":250,"s":[302.4,189]},{"i":{"x":[0.1,0.1],"y":[1,1]},"o":{"x":[0.05,0.05],"y":[0.7,0.7]},"t":255,"s":[227.56,142.34]},{"t":280,"s":[115.3,72.35]}],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":1,"k":[{"i":{"x":[0.8],"y":[0.15]},"o":{"x":[0.3],"y":[0]},"t":250,"s":[14.6]},{"i":{"x":[0.1],"y":[1]},"o":{"x":[0.05],"y":[0.7]},"t":255,"s":[14.272]},{"t":280,"s":[13.78]}],"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[0.32549020648,0.270588248968,0.164705887437,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false}],"ip":197,"op":511,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":13,"ty":4,"nm":".onSecondaryFixedVariant","cl":"onSecondaryFixedVariant","parent":14,"sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":268,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":277,"s":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":383,"s":[100]},{"t":392,"s":[0]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"k":[{"s":[0,-53.175,0],"t":197,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0,-53.175,0],"t":510,"i":{"x":1,"y":1},"o":{"x":0,"y":0}}],"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":[{"d":1,"ty":"el","s":{"a":0,"k":[18,18],"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.325490196078,0.270588235294,0.164705882353,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false}],"ip":197,"op":511,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":14,"ty":4,"nm":".onSecondaryFixedVariant","cl":"onSecondaryFixedVariant","parent":9,"sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":383,"s":[100]},{"t":392,"s":[0]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.8,"y":0.15},"o":{"x":0.3,"y":0},"t":250,"s":[-411.95,20.325,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.1,"y":1},"o":{"x":0.05,"y":0.7},"t":255,"s":[-333.47,29.183,0],"to":[0,0,0],"ti":[0,0,0]},{"t":280,"s":[-215.75,42.47,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":"rc","d":1,"s":{"a":0,"k":[115.3,72.35],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":13.78,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[0.32549020648,0.270588248968,0.164705887437,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false}],"ip":197,"op":511,"st":0,"ct":1,"bm":0}]},{"id":"comp_1","nm":"Taskbar Lofi","fr":60,"layers":[{"ddd":0,"ind":2,"ty":4,"nm":"app - 5","parent":9,"sr":1,"ks":{"o":{"k":[{"s":[0],"t":161,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[54.85],"t":162,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[100],"t":163,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[100],"t":384,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[0],"t":386,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}}]},"r":{"a":0,"k":0,"ix":10},"p":{"k":[{"s":[51.5,0,0],"t":155,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[51.652,0,0],"t":156,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[52.136,0,0],"t":157,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[53.013,0,0],"t":158,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[54.449,0,0],"t":159,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[56.806,0,0],"t":160,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[61.3,0,0],"t":161,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[66.437,0,0],"t":162,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[68.94,0,0],"t":163,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[70.432,0,0],"t":164,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[71.462,0,0],"t":165,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[72.229,0,0],"t":166,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[72.83,0,0],"t":167,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[73.314,0,0],"t":168,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[73.714,0,0],"t":169,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[74.048,0,0],"t":170,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[74.334,0,0],"t":171,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[74.578,0,0],"t":172,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[74.789,0,0],"t":173,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[74.971,0,0],"t":174,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[75.131,0,0],"t":175,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[75.269,0,0],"t":176,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[75.389,0,0],"t":177,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[75.493,0,0],"t":178,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[75.584,0,0],"t":179,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[75.663,0,0],"t":180,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[75.731,0,0],"t":181,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[75.789,0,0],"t":182,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[75.839,0,0],"t":183,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[75.915,0,0],"t":185,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[75.982,0,0],"t":188,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[76,0,0],"t":380,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[75.779,0,0],"t":381,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[75.066,0,0],"t":382,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[73.709,0,0],"t":383,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[71.271,0,0],"t":384,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[66.2,0,0],"t":385,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[60.425,0,0],"t":386,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[57.886,0,0],"t":387,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[56.41,0,0],"t":388,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[55.409,0,0],"t":389,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[54.67,0,0],"t":390,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[54.1,0,0],"t":391,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[53.646,0,0],"t":392,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[53.275,0,0],"t":393,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[52.968,0,0],"t":394,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[52.711,0,0],"t":395,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[52.495,0,0],"t":396,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[52.312,0,0],"t":397,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[52.157,0,0],"t":398,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[52.026,0,0],"t":399,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[51.916,0,0],"t":400,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[51.822,0,0],"t":401,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[51.745,0,0],"t":402,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[51.68,0,0],"t":403,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[51.628,0,0],"t":404,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[51.585,0,0],"t":405,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[51.552,0,0],"t":406,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[51.501,0,0],"t":409,"i":{"x":1,"y":1},"o":{"x":0,"y":0}}],"l":2},"a":{"a":0,"k":[167,15,0],"ix":1,"l":2},"s":{"k":[{"s":[50,50,100],"t":155,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[50.309,50.309,100],"t":156,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[51.284,51.284,100],"t":157,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[53.079,53.079,100],"t":158,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[56.019,56.019,100],"t":159,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[60.828,60.828,100],"t":160,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[70,70,100],"t":161,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[80.485,80.485,100],"t":162,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[85.597,85.597,100],"t":163,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[88.641,88.641,100],"t":164,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[90.739,90.739,100],"t":165,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[92.305,92.305,100],"t":166,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[93.53,93.53,100],"t":167,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[94.518,94.518,100],"t":168,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[95.335,95.335,100],"t":169,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[96.021,96.021,100],"t":170,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[96.603,96.603,100],"t":171,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[97.101,97.101,100],"t":172,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[97.531,97.531,100],"t":173,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[97.902,97.902,100],"t":174,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[98.226,98.226,100],"t":175,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[98.507,98.507,100],"t":176,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[98.753,98.753,100],"t":177,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[98.966,98.966,100],"t":178,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[99.152,99.152,100],"t":179,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[99.313,99.313,100],"t":180,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[99.451,99.451,100],"t":181,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[99.57,99.57,100],"t":182,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[99.671,99.671,100],"t":183,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[99.756,99.756,100],"t":184,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[99.826,99.826,100],"t":185,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[99.883,99.883,100],"t":186,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[99.982,99.982,100],"t":189,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[100,100,100],"t":380,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[99.552,99.552,100],"t":381,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[98.109,98.109,100],"t":382,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[95.326,95.326,100],"t":383,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[90.35,90.35,100],"t":384,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[80,80,100],"t":385,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[68.215,68.215,100],"t":386,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[63.027,63.027,100],"t":387,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[60.02,60.02,100],"t":388,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[57.977,57.977,100],"t":389,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[56.47,56.47,100],"t":390,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[55.306,55.306,100],"t":391,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[54.377,54.377,100],"t":392,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[53.618,53.618,100],"t":393,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[52.993,52.993,100],"t":394,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[52.469,52.469,100],"t":395,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[52.03,52.03,100],"t":396,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[51.657,51.657,100],"t":397,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[51.341,51.341,100],"t":398,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[51.074,51.074,100],"t":399,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[50.848,50.848,100],"t":400,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[50.658,50.658,100],"t":401,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[50.5,50.5,100],"t":402,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[50.368,50.368,100],"t":403,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[50.26,50.26,100],"t":404,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[50.174,50.174,100],"t":405,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[50.107,50.107,100],"t":406,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[50.059,50.059,100],"t":407,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[50.024,50.024,100],"t":408,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}}],"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[18,18],"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.32549020648,0.270588248968,0.164705887437,1],"ix":4},"o":{"a":0,"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 7511","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tr","p":{"a":0,"k":[167,15],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"app - 5","np":1,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":3,"ty":4,"nm":"app - 4","sr":1,"ks":{"o":{"k":[{"s":[0],"t":161,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[54.85],"t":162,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[100],"t":163,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[100],"t":384,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[0],"t":386,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}}]},"r":{"a":0,"k":0,"ix":10},"p":{"k":[{"s":[123.341,15,0],"t":156,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[123.654,15,0],"t":157,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[124.223,15,0],"t":158,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[125.146,15,0],"t":159,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[126.662,15,0],"t":160,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[129.549,15,0],"t":161,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[132.838,15,0],"t":162,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[134.455,15,0],"t":163,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[135.421,15,0],"t":164,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[136.083,15,0],"t":165,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[136.576,15,0],"t":166,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[136.962,15,0],"t":167,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[137.272,15,0],"t":168,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[137.528,15,0],"t":169,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[137.742,15,0],"t":170,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[137.924,15,0],"t":171,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[138.08,15,0],"t":172,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[138.216,15,0],"t":173,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[138.334,15,0],"t":174,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[138.437,15,0],"t":175,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[138.527,15,0],"t":176,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[138.606,15,0],"t":177,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[138.734,15,0],"t":179,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[138.869,15,0],"t":182,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[138.864,15,0],"t":381,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[138.402,15,0],"t":382,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[137.527,15,0],"t":383,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[135.96,15,0],"t":384,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[132.701,15,0],"t":385,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[129.002,15,0],"t":386,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[127.358,15,0],"t":387,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[126.406,15,0],"t":388,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[125.763,15,0],"t":389,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[125.288,15,0],"t":390,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[124.923,15,0],"t":391,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[124.633,15,0],"t":392,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[124.396,15,0],"t":393,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[124.199,15,0],"t":394,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[124.034,15,0],"t":395,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[123.895,15,0],"t":396,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[123.776,15,0],"t":397,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[123.675,15,0],"t":398,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[123.589,15,0],"t":399,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[123.516,15,0],"t":400,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[123.403,15,0],"t":402,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[123.299,15,0],"t":405,"i":{"x":1,"y":1},"o":{"x":0,"y":0}}],"l":2},"a":{"a":0,"k":[139,15,0],"ix":1,"l":2},"s":{"k":[{"s":[50,50,100],"t":155,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[50.309,50.309,100],"t":156,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[51.284,51.284,100],"t":157,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[53.079,53.079,100],"t":158,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[56.019,56.019,100],"t":159,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[60.828,60.828,100],"t":160,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[70,70,100],"t":161,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[80.485,80.485,100],"t":162,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[85.597,85.597,100],"t":163,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[88.641,88.641,100],"t":164,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[90.739,90.739,100],"t":165,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[92.305,92.305,100],"t":166,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[93.53,93.53,100],"t":167,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[94.518,94.518,100],"t":168,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[95.335,95.335,100],"t":169,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[96.021,96.021,100],"t":170,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[96.603,96.603,100],"t":171,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[97.101,97.101,100],"t":172,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[97.531,97.531,100],"t":173,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[97.902,97.902,100],"t":174,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[98.226,98.226,100],"t":175,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[98.507,98.507,100],"t":176,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[98.753,98.753,100],"t":177,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[98.966,98.966,100],"t":178,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[99.152,99.152,100],"t":179,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[99.313,99.313,100],"t":180,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[99.451,99.451,100],"t":181,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[99.57,99.57,100],"t":182,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[99.671,99.671,100],"t":183,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[99.756,99.756,100],"t":184,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[99.826,99.826,100],"t":185,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[99.883,99.883,100],"t":186,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[99.982,99.982,100],"t":189,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[100,100,100],"t":380,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[99.552,99.552,100],"t":381,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[98.109,98.109,100],"t":382,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[95.326,95.326,100],"t":383,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[90.35,90.35,100],"t":384,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[80,80,100],"t":385,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[68.215,68.215,100],"t":386,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[63.027,63.027,100],"t":387,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[60.02,60.02,100],"t":388,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[57.977,57.977,100],"t":389,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[56.47,56.47,100],"t":390,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[55.306,55.306,100],"t":391,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[54.377,54.377,100],"t":392,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[53.618,53.618,100],"t":393,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[52.993,52.993,100],"t":394,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[52.469,52.469,100],"t":395,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[52.03,52.03,100],"t":396,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[51.657,51.657,100],"t":397,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[51.341,51.341,100],"t":398,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[51.074,51.074,100],"t":399,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[50.848,50.848,100],"t":400,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[50.658,50.658,100],"t":401,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[50.5,50.5,100],"t":402,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[50.368,50.368,100],"t":403,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[50.26,50.26,100],"t":404,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[50.174,50.174,100],"t":405,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[50.107,50.107,100],"t":406,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[50.059,50.059,100],"t":407,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[50.024,50.024,100],"t":408,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}}],"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[18,18],"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.32549020648,0.270588248968,0.164705887437,1],"ix":4},"o":{"a":0,"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 7508","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tr","p":{"a":0,"k":[139,15],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"app - 4","np":1,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":4,"ty":4,"nm":"app - 3","sr":1,"ks":{"o":{"k":[{"s":[0],"t":161,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[54.85],"t":162,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[100],"t":163,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[100],"t":384,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[0],"t":386,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}}]},"r":{"a":0,"k":0,"ix":10},"p":{"k":[{"s":[104.041,15,0],"t":156,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[104.182,15,0],"t":157,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[104.436,15,0],"t":158,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[104.844,15,0],"t":159,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[105.517,15,0],"t":160,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[106.808,15,0],"t":161,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[108.265,15,0],"t":162,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[108.981,15,0],"t":163,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[109.409,15,0],"t":164,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[109.703,15,0],"t":165,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[109.923,15,0],"t":166,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[110.092,15,0],"t":167,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[110.228,15,0],"t":168,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[110.341,15,0],"t":169,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[110.436,15,0],"t":170,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[110.517,15,0],"t":171,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[110.587,15,0],"t":172,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[110.648,15,0],"t":173,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[110.746,15,0],"t":175,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[110.853,15,0],"t":178,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[110.956,15,0],"t":183,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[110.938,15,0],"t":381,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[110.73,15,0],"t":382,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[110.34,15,0],"t":383,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[109.649,15,0],"t":384,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[108.197,15,0],"t":385,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[106.559,15,0],"t":386,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[105.828,15,0],"t":387,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[105.403,15,0],"t":388,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[105.117,15,0],"t":389,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[104.906,15,0],"t":390,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[104.745,15,0],"t":391,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[104.616,15,0],"t":392,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[104.511,15,0],"t":393,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[104.424,15,0],"t":394,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[104.35,15,0],"t":395,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[104.288,15,0],"t":396,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[104.19,15,0],"t":398,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[104.091,15,0],"t":401,"i":{"x":1,"y":1},"o":{"x":0,"y":0}}],"l":2},"a":{"a":0,"k":[111,15,0],"ix":1,"l":2},"s":{"k":[{"s":[50,50,100],"t":155,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[50.309,50.309,100],"t":156,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[51.284,51.284,100],"t":157,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[53.079,53.079,100],"t":158,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[56.019,56.019,100],"t":159,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[60.828,60.828,100],"t":160,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[70,70,100],"t":161,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[80.485,80.485,100],"t":162,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[85.597,85.597,100],"t":163,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[88.641,88.641,100],"t":164,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[90.739,90.739,100],"t":165,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[92.305,92.305,100],"t":166,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[93.53,93.53,100],"t":167,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[94.518,94.518,100],"t":168,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[95.335,95.335,100],"t":169,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[96.021,96.021,100],"t":170,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[96.603,96.603,100],"t":171,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[97.101,97.101,100],"t":172,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[97.531,97.531,100],"t":173,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[97.902,97.902,100],"t":174,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[98.226,98.226,100],"t":175,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[98.507,98.507,100],"t":176,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[98.753,98.753,100],"t":177,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[98.966,98.966,100],"t":178,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[99.152,99.152,100],"t":179,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[99.313,99.313,100],"t":180,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[99.451,99.451,100],"t":181,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[99.57,99.57,100],"t":182,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[99.671,99.671,100],"t":183,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[99.756,99.756,100],"t":184,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[99.826,99.826,100],"t":185,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[99.883,99.883,100],"t":186,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[99.982,99.982,100],"t":189,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[100,100,100],"t":380,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[99.552,99.552,100],"t":381,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[98.109,98.109,100],"t":382,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[95.326,95.326,100],"t":383,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[90.35,90.35,100],"t":384,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[80,80,100],"t":385,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[68.215,68.215,100],"t":386,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[63.027,63.027,100],"t":387,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[60.02,60.02,100],"t":388,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[57.977,57.977,100],"t":389,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[56.47,56.47,100],"t":390,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[55.306,55.306,100],"t":391,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[54.377,54.377,100],"t":392,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[53.618,53.618,100],"t":393,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[52.993,52.993,100],"t":394,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[52.469,52.469,100],"t":395,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[52.03,52.03,100],"t":396,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[51.657,51.657,100],"t":397,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[51.341,51.341,100],"t":398,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[51.074,51.074,100],"t":399,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[50.848,50.848,100],"t":400,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[50.658,50.658,100],"t":401,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[50.5,50.5,100],"t":402,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[50.368,50.368,100],"t":403,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[50.26,50.26,100],"t":404,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[50.174,50.174,100],"t":405,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[50.107,50.107,100],"t":406,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[50.059,50.059,100],"t":407,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[50.024,50.024,100],"t":408,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}}],"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[18,18],"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.32549020648,0.270588248968,0.164705887437,1],"ix":4},"o":{"a":0,"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 7507","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tr","p":{"a":0,"k":[111,15],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"app - 3","np":1,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":5,"ty":4,"nm":"app - 2","sr":1,"ks":{"o":{"k":[{"s":[0],"t":161,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[54.85],"t":162,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[100],"t":163,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[100],"t":384,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[0],"t":386,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}}]},"r":{"a":0,"k":0,"ix":10},"p":{"k":[{"s":[84.704,15,0],"t":157,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[84.639,15,0],"t":158,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[84.537,15,0],"t":159,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[84.371,15,0],"t":160,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[84.048,15,0],"t":161,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[83.684,15,0],"t":162,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[83.505,15,0],"t":163,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[83.398,15,0],"t":164,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[83.324,15,0],"t":165,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[83.271,15,0],"t":166,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[83.195,15,0],"t":168,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[83.123,15,0],"t":171,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[83.045,15,0],"t":177,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[83.068,15,0],"t":382,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[83.166,15,0],"t":383,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[83.338,15,0],"t":384,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[83.702,15,0],"t":385,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[84.112,15,0],"t":386,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[84.294,15,0],"t":387,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[84.399,15,0],"t":388,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[84.47,15,0],"t":389,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[84.521,15,0],"t":390,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[84.593,15,0],"t":392,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[84.676,15,0],"t":396,"i":{"x":1,"y":1},"o":{"x":0,"y":0}}],"l":2},"a":{"a":0,"k":[83,15,0],"ix":1,"l":2},"s":{"k":[{"s":[50,50,100],"t":155,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[50.309,50.309,100],"t":156,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[51.284,51.284,100],"t":157,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[53.079,53.079,100],"t":158,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[56.019,56.019,100],"t":159,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[60.828,60.828,100],"t":160,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[70,70,100],"t":161,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[80.485,80.485,100],"t":162,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[85.597,85.597,100],"t":163,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[88.641,88.641,100],"t":164,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[90.739,90.739,100],"t":165,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[92.305,92.305,100],"t":166,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[93.53,93.53,100],"t":167,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[94.518,94.518,100],"t":168,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[95.335,95.335,100],"t":169,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[96.021,96.021,100],"t":170,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[96.603,96.603,100],"t":171,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[97.101,97.101,100],"t":172,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[97.531,97.531,100],"t":173,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[97.902,97.902,100],"t":174,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[98.226,98.226,100],"t":175,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[98.507,98.507,100],"t":176,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[98.753,98.753,100],"t":177,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[98.966,98.966,100],"t":178,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[99.152,99.152,100],"t":179,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[99.313,99.313,100],"t":180,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[99.451,99.451,100],"t":181,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[99.57,99.57,100],"t":182,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[99.671,99.671,100],"t":183,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[99.756,99.756,100],"t":184,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[99.826,99.826,100],"t":185,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[99.883,99.883,100],"t":186,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[99.982,99.982,100],"t":189,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[100,100,100],"t":380,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[99.552,99.552,100],"t":381,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[98.109,98.109,100],"t":382,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[95.326,95.326,100],"t":383,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[90.35,90.35,100],"t":384,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[80,80,100],"t":385,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[68.215,68.215,100],"t":386,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[63.027,63.027,100],"t":387,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[60.02,60.02,100],"t":388,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[57.977,57.977,100],"t":389,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[56.47,56.47,100],"t":390,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[55.306,55.306,100],"t":391,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[54.377,54.377,100],"t":392,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[53.618,53.618,100],"t":393,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[52.993,52.993,100],"t":394,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[52.469,52.469,100],"t":395,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[52.03,52.03,100],"t":396,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[51.657,51.657,100],"t":397,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[51.341,51.341,100],"t":398,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[51.074,51.074,100],"t":399,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[50.848,50.848,100],"t":400,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[50.658,50.658,100],"t":401,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[50.5,50.5,100],"t":402,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[50.368,50.368,100],"t":403,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[50.26,50.26,100],"t":404,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[50.174,50.174,100],"t":405,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[50.107,50.107,100],"t":406,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[50.059,50.059,100],"t":407,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[50.024,50.024,100],"t":408,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}}],"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[18,18],"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.32549020648,0.270588248968,0.164705887437,1],"ix":4},"o":{"a":0,"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 7506","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tr","p":{"a":0,"k":[83,15],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"app - 2","np":1,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":6,"ty":4,"nm":"app - 1","sr":1,"ks":{"o":{"k":[{"s":[0],"t":161,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[54.85],"t":162,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[100],"t":163,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[100],"t":384,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[0],"t":386,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}}]},"r":{"a":0,"k":0,"ix":10},"p":{"k":[{"s":[65.439,15,0],"t":156,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[65.229,15,0],"t":157,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[64.849,15,0],"t":158,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[64.236,15,0],"t":159,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[63.226,15,0],"t":160,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[61.296,15,0],"t":161,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[59.111,15,0],"t":162,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[58.033,15,0],"t":163,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[57.388,15,0],"t":164,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[56.945,15,0],"t":165,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[56.616,15,0],"t":166,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[56.359,15,0],"t":167,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[56.154,15,0],"t":168,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[55.984,15,0],"t":169,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[55.842,15,0],"t":170,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[55.72,15,0],"t":171,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[55.616,15,0],"t":172,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[55.525,15,0],"t":173,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[55.447,15,0],"t":174,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[55.378,15,0],"t":175,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[55.317,15,0],"t":176,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[55.265,15,0],"t":177,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[55.219,15,0],"t":178,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[55.178,15,0],"t":179,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[55.143,15,0],"t":180,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[55.113,15,0],"t":181,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[55.066,15,0],"t":183,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[55.012,15,0],"t":187,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[55,15,0],"t":380,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[55.092,15,0],"t":381,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[55.403,15,0],"t":382,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[55.986,15,0],"t":383,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[57.027,15,0],"t":384,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[59.212,15,0],"t":385,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[61.67,15,0],"t":386,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[62.762,15,0],"t":387,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[63.396,15,0],"t":388,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[63.825,15,0],"t":389,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[64.141,15,0],"t":390,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[64.385,15,0],"t":391,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[64.578,15,0],"t":392,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[64.736,15,0],"t":393,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[64.867,15,0],"t":394,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[64.977,15,0],"t":395,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[65.07,15,0],"t":396,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[65.149,15,0],"t":397,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[65.217,15,0],"t":398,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[65.274,15,0],"t":399,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[65.323,15,0],"t":400,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[65.364,15,0],"t":401,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[65.426,15,0],"t":403,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[65.491,15,0],"t":407,"i":{"x":1,"y":1},"o":{"x":0,"y":0}}],"l":2},"a":{"a":0,"k":[55,15,0],"ix":1,"l":2},"s":{"k":[{"s":[50,50,100],"t":155,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[50.309,50.309,100],"t":156,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[51.284,51.284,100],"t":157,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[53.079,53.079,100],"t":158,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[56.019,56.019,100],"t":159,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[60.828,60.828,100],"t":160,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[70,70,100],"t":161,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[80.485,80.485,100],"t":162,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[85.597,85.597,100],"t":163,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[88.641,88.641,100],"t":164,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[90.739,90.739,100],"t":165,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[92.305,92.305,100],"t":166,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[93.53,93.53,100],"t":167,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[94.518,94.518,100],"t":168,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[95.335,95.335,100],"t":169,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[96.021,96.021,100],"t":170,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[96.603,96.603,100],"t":171,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[97.101,97.101,100],"t":172,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[97.531,97.531,100],"t":173,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[97.902,97.902,100],"t":174,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[98.226,98.226,100],"t":175,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[98.507,98.507,100],"t":176,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[98.753,98.753,100],"t":177,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[98.966,98.966,100],"t":178,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[99.152,99.152,100],"t":179,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[99.313,99.313,100],"t":180,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[99.451,99.451,100],"t":181,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[99.57,99.57,100],"t":182,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[99.671,99.671,100],"t":183,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[99.756,99.756,100],"t":184,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[99.826,99.826,100],"t":185,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[99.883,99.883,100],"t":186,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[99.982,99.982,100],"t":189,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[100,100,100],"t":380,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[99.552,99.552,100],"t":381,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[98.109,98.109,100],"t":382,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[95.326,95.326,100],"t":383,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[90.35,90.35,100],"t":384,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[80,80,100],"t":385,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[68.215,68.215,100],"t":386,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[63.027,63.027,100],"t":387,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[60.02,60.02,100],"t":388,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[57.977,57.977,100],"t":389,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[56.47,56.47,100],"t":390,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[55.306,55.306,100],"t":391,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[54.377,54.377,100],"t":392,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[53.618,53.618,100],"t":393,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[52.993,52.993,100],"t":394,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[52.469,52.469,100],"t":395,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[52.03,52.03,100],"t":396,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[51.657,51.657,100],"t":397,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[51.341,51.341,100],"t":398,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[51.074,51.074,100],"t":399,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[50.848,50.848,100],"t":400,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[50.658,50.658,100],"t":401,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[50.5,50.5,100],"t":402,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[50.368,50.368,100],"t":403,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[50.26,50.26,100],"t":404,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[50.174,50.174,100],"t":405,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[50.107,50.107,100],"t":406,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[50.059,50.059,100],"t":407,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[50.024,50.024,100],"t":408,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}}],"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[18,18],"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.32549020648,0.270588248968,0.164705887437,1],"ix":4},"o":{"a":0,"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 7505","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tr","p":{"a":0,"k":[55,15],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"app - 1","np":1,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":7,"ty":4,"nm":"divider","sr":1,"ks":{"o":{"k":[{"s":[0],"t":161,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[54.85],"t":162,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[100],"t":163,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[100],"t":384,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[0],"t":386,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}}]},"r":{"a":0,"k":90,"ix":10},"p":{"k":[{"s":[51,15,0],"t":155,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[50.913,15,0],"t":156,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[50.615,15,0],"t":157,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[50.073,15,0],"t":158,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[49.194,15,0],"t":159,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[47.751,15,0],"t":160,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[45.001,15,0],"t":161,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[41.869,15,0],"t":162,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[40.328,15,0],"t":163,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[39.409,15,0],"t":164,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[38.778,15,0],"t":165,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[38.309,15,0],"t":166,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[37.941,15,0],"t":167,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[37.645,15,0],"t":168,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[37.402,15,0],"t":169,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[37.199,15,0],"t":170,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[37.025,15,0],"t":171,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[36.876,15,0],"t":172,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[36.747,15,0],"t":173,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[36.635,15,0],"t":174,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[36.536,15,0],"t":175,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[36.451,15,0],"t":176,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[36.376,15,0],"t":177,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[36.31,15,0],"t":178,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[36.253,15,0],"t":179,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[36.203,15,0],"t":180,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[36.161,15,0],"t":181,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[36.124,15,0],"t":182,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[36.093,15,0],"t":183,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[36.068,15,0],"t":184,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[36.047,15,0],"t":185,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[36.017,15,0],"t":187,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[36,15,0],"t":380,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[36.129,15,0],"t":381,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[36.569,15,0],"t":382,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[37.403,15,0],"t":383,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[38.895,15,0],"t":384,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[41.999,15,0],"t":385,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[45.522,15,0],"t":386,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[47.088,15,0],"t":387,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[47.994,15,0],"t":388,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[48.607,15,0],"t":389,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[49.059,15,0],"t":390,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[49.407,15,0],"t":391,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[49.683,15,0],"t":392,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[49.909,15,0],"t":393,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[50.096,15,0],"t":394,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[50.253,15,0],"t":395,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[50.386,15,0],"t":396,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[50.499,15,0],"t":397,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[50.596,15,0],"t":398,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[50.677,15,0],"t":399,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[50.747,15,0],"t":400,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[50.806,15,0],"t":401,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[50.854,15,0],"t":402,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[50.895,15,0],"t":403,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[50.927,15,0],"t":404,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[50.973,15,0],"t":406,"i":{"x":1,"y":1},"o":{"x":0,"y":0}}],"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":{"k":[{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-2,-0.5],[2,-0.5]],"c":false}],"t":155,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-2.019,-0.5],[2.019,-0.5]],"c":false}],"t":156,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-2.077,-0.5],[2.077,-0.5]],"c":false}],"t":157,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-2.185,-0.5],[2.185,-0.5]],"c":false}],"t":158,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-2.361,-0.5],[2.361,-0.5]],"c":false}],"t":159,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-2.65,-0.5],[2.65,-0.5]],"c":false}],"t":160,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-3.2,-0.5],[3.2,-0.5]],"c":false}],"t":161,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-3.829,-0.5],[3.829,-0.5]],"c":false}],"t":162,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-4.136,-0.5],[4.136,-0.5]],"c":false}],"t":163,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-4.318,-0.5],[4.318,-0.5]],"c":false}],"t":164,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-4.444,-0.5],[4.444,-0.5]],"c":false}],"t":165,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-4.538,-0.5],[4.538,-0.5]],"c":false}],"t":166,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-4.612,-0.5],[4.612,-0.5]],"c":false}],"t":167,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-4.671,-0.5],[4.671,-0.5]],"c":false}],"t":168,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-4.72,-0.5],[4.72,-0.5]],"c":false}],"t":169,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-4.761,-0.5],[4.761,-0.5]],"c":false}],"t":170,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-4.796,-0.5],[4.796,-0.5]],"c":false}],"t":171,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-4.826,-0.5],[4.826,-0.5]],"c":false}],"t":172,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-4.852,-0.5],[4.852,-0.5]],"c":false}],"t":173,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-4.874,-0.5],[4.874,-0.5]],"c":false}],"t":174,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-4.894,-0.5],[4.894,-0.5]],"c":false}],"t":175,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-4.91,-0.5],[4.91,-0.5]],"c":false}],"t":176,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-4.925,-0.5],[4.925,-0.5]],"c":false}],"t":177,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-4.938,-0.5],[4.938,-0.5]],"c":false}],"t":178,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-4.949,-0.5],[4.949,-0.5]],"c":false}],"t":179,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-4.959,-0.5],[4.959,-0.5]],"c":false}],"t":180,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-4.967,-0.5],[4.967,-0.5]],"c":false}],"t":181,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-4.974,-0.5],[4.974,-0.5]],"c":false}],"t":182,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-4.98,-0.5],[4.98,-0.5]],"c":false}],"t":183,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-4.99,-0.5],[4.99,-0.5]],"c":false}],"t":185,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-4.996,-0.5],[4.996,-0.5]],"c":false}],"t":187,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-5,-0.5],[5,-0.5]],"c":false}],"t":380,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-4.973,-0.5],[4.973,-0.5]],"c":false}],"t":381,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-4.887,-0.5],[4.887,-0.5]],"c":false}],"t":382,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-4.72,-0.5],[4.72,-0.5]],"c":false}],"t":383,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-4.421,-0.5],[4.421,-0.5]],"c":false}],"t":384,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-3.8,-0.5],[3.8,-0.5]],"c":false}],"t":385,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-3.093,-0.5],[3.093,-0.5]],"c":false}],"t":386,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-2.782,-0.5],[2.782,-0.5]],"c":false}],"t":387,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-2.601,-0.5],[2.601,-0.5]],"c":false}],"t":388,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-2.479,-0.5],[2.479,-0.5]],"c":false}],"t":389,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-2.388,-0.5],[2.388,-0.5]],"c":false}],"t":390,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-2.318,-0.5],[2.318,-0.5]],"c":false}],"t":391,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-2.263,-0.5],[2.263,-0.5]],"c":false}],"t":392,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-2.217,-0.5],[2.217,-0.5]],"c":false}],"t":393,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-2.18,-0.5],[2.18,-0.5]],"c":false}],"t":394,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-2.148,-0.5],[2.148,-0.5]],"c":false}],"t":395,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-2.122,-0.5],[2.122,-0.5]],"c":false}],"t":396,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-2.099,-0.5],[2.099,-0.5]],"c":false}],"t":397,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-2.081,-0.5],[2.081,-0.5]],"c":false}],"t":398,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-2.064,-0.5],[2.064,-0.5]],"c":false}],"t":399,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-2.051,-0.5],[2.051,-0.5]],"c":false}],"t":400,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-2.039,-0.5],[2.039,-0.5]],"c":false}],"t":401,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-2.03,-0.5],[2.03,-0.5]],"c":false}],"t":402,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-2.022,-0.5],[2.022,-0.5]],"c":false}],"t":403,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-2.01,-0.5],[2.01,-0.5]],"c":false}],"t":405,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-2.006,-0.5],[2.006,-0.5]],"c":false}],"t":406,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-2.004,-0.5],[2.004,-0.5]],"c":false}],"t":407,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-2.001,-0.5],[2.001,-0.5]],"c":false}],"t":408,"i":{"x":1,"y":1},"o":{"x":0,"y":0}}]},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.32549020648,0.270588248968,0.164705887437,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":1,"ix":5},"lc":2,"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":"divider","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":8,"ty":4,"nm":".onSecondaryFixedVariant","cl":"onSecondaryFixedVariant","parent":9,"sr":1,"ks":{"o":{"k":[{"s":[0],"t":161,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[54.85],"t":162,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[100],"t":163,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[100],"t":384,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[0],"t":386,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}}]},"r":{"a":0,"k":0,"ix":10},"p":{"k":[{"s":[-52.349,0.652,0],"t":155,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-52.453,0.652,0],"t":156,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-52.813,0.652,0],"t":157,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-53.464,0.652,0],"t":158,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-54.515,0.652,0],"t":159,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-56.247,0.652,0],"t":160,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-59.565,0.652,0],"t":161,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-63.323,0.652,0],"t":162,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-65.162,0.652,0],"t":163,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-66.258,0.652,0],"t":164,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-67.015,0.652,0],"t":165,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-67.578,0.652,0],"t":166,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-68.019,0.652,0],"t":167,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-68.375,0.652,0],"t":168,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-68.668,0.652,0],"t":169,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-68.914,0.652,0],"t":170,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-69.122,0.652,0],"t":171,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-69.301,0.652,0],"t":172,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-69.456,0.652,0],"t":173,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-69.59,0.652,0],"t":174,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-69.708,0.652,0],"t":175,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-69.81,0.652,0],"t":176,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-69.9,0.652,0],"t":177,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-69.978,0.652,0],"t":178,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-70.047,0.652,0],"t":179,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-70.106,0.652,0],"t":180,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-70.157,0.652,0],"t":181,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-70.2,0.652,0],"t":182,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-70.268,0.652,0],"t":184,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-70.328,0.652,0],"t":187,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-70.349,0.652,0],"t":380,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-70.193,0.652,0],"t":381,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-69.662,0.652,0],"t":382,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-68.662,0.652,0],"t":383,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-66.874,0.652,0],"t":384,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-63.132,0.652,0],"t":385,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-58.906,0.652,0],"t":386,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-57.04,0.652,0],"t":387,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-55.956,0.652,0],"t":388,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-55.22,0.652,0],"t":389,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-54.678,0.652,0],"t":390,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-54.259,0.652,0],"t":391,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-53.925,0.652,0],"t":392,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-53.654,0.652,0],"t":393,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-53.43,0.652,0],"t":394,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-53.241,0.652,0],"t":395,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-53.082,0.652,0],"t":396,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-52.947,0.652,0],"t":397,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-52.831,0.652,0],"t":398,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-52.734,0.652,0],"t":399,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-52.65,0.652,0],"t":400,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-52.58,0.652,0],"t":401,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-52.522,0.652,0],"t":402,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-52.474,0.652,0],"t":403,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-52.435,0.652,0],"t":404,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-52.404,0.652,0],"t":405,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-52.354,0.652,0],"t":408,"i":{"x":1,"y":1},"o":{"x":0,"y":0}}],"l":2},"a":{"a":0,"k":[6.826,6.826,0],"ix":1,"l":2},"s":{"k":[{"s":[50,50,100],"t":155,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[50.309,50.309,100],"t":156,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[51.284,51.284,100],"t":157,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[53.079,53.079,100],"t":158,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[56.019,56.019,100],"t":159,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[60.828,60.828,100],"t":160,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[70,70,100],"t":161,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[80.485,80.485,100],"t":162,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[85.597,85.597,100],"t":163,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[88.641,88.641,100],"t":164,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[90.739,90.739,100],"t":165,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[92.305,92.305,100],"t":166,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[93.53,93.53,100],"t":167,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[94.518,94.518,100],"t":168,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[95.335,95.335,100],"t":169,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[96.021,96.021,100],"t":170,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[96.603,96.603,100],"t":171,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[97.101,97.101,100],"t":172,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[97.531,97.531,100],"t":173,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[97.902,97.902,100],"t":174,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[98.226,98.226,100],"t":175,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[98.507,98.507,100],"t":176,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[98.753,98.753,100],"t":177,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[98.966,98.966,100],"t":178,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[99.152,99.152,100],"t":179,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[99.313,99.313,100],"t":180,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[99.451,99.451,100],"t":181,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[99.57,99.57,100],"t":182,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[99.671,99.671,100],"t":183,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[99.756,99.756,100],"t":184,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[99.826,99.826,100],"t":185,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[99.883,99.883,100],"t":186,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[99.982,99.982,100],"t":189,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[100,100,100],"t":380,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[99.552,99.552,100],"t":381,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[98.109,98.109,100],"t":382,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[95.326,95.326,100],"t":383,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[90.35,90.35,100],"t":384,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[80,80,100],"t":385,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[68.215,68.215,100],"t":386,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[63.027,63.027,100],"t":387,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[60.02,60.02,100],"t":388,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[57.977,57.977,100],"t":389,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[56.47,56.47,100],"t":390,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[55.306,55.306,100],"t":391,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[54.377,54.377,100],"t":392,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[53.618,53.618,100],"t":393,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[52.993,52.993,100],"t":394,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[52.469,52.469,100],"t":395,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[52.03,52.03,100],"t":396,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[51.657,51.657,100],"t":397,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[51.341,51.341,100],"t":398,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[51.074,51.074,100],"t":399,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[50.848,50.848,100],"t":400,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[50.658,50.658,100],"t":401,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[50.5,50.5,100],"t":402,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[50.368,50.368,100],"t":403,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[50.26,50.26,100],"t":404,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[50.174,50.174,100],"t":405,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[50.107,50.107,100],"t":406,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[50.059,50.059,100],"t":407,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[50.024,50.024,100],"t":408,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}}],"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-1.381,0],[0,1.381],[1.381,0],[0,-1.381]],"o":[[1.381,0],[0,-1.381],[-1.381,0],[0,1.381]],"v":[[0,2.5],[2.5,0],[0,-2.5],[-2.5,0]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.32549020648,0.270588248968,0.164705887437,1],"ix":4},"o":{"a":0,"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 12","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tr","p":{"a":0,"k":[2.5,9.501],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"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 12","np":1,"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":[[-1.381,0],[0,1.381],[1.381,0],[0,-1.381]],"o":[[1.381,0],[0,-1.381],[-1.381,0],[0,1.381]],"v":[[0,2.5],[2.5,0],[0,-2.5],[-2.5,0]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.32549020648,0.270588248968,0.164705887437,1],"ix":4},"o":{"a":0,"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 11","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tr","p":{"a":0,"k":[2.5,2.5],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 11","np":1,"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":[[-1.381,0],[0,1.381],[1.381,0],[0,-1.381]],"o":[[1.381,0],[0,-1.381],[-1.381,0],[0,1.381]],"v":[[0,2.5],[2.5,0],[0,-2.5],[-2.5,0]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.32549020648,0.270588248968,0.164705887437,1],"ix":4},"o":{"a":0,"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 5","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tr","p":{"a":0,"k":[9.5,2.5],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 5","np":1,"cix":2,"bm":0,"ix":3,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.185,0.148],[0,0],[0,0],[0,0],[-0.086,0.24],[0,0.271],[0.468,0.462],[0.671,0],[0.468,-0.468],[0,-0.671],[-0.462,-0.468],[-0.671,0],[-0.24,0.086]],"o":[[0,0],[0,0],[0,0],[0.148,-0.185],[0.086,-0.24],[0,-0.671],[-0.462,-0.468],[-0.671,0],[-0.462,0.462],[0,0.671],[0.468,0.462],[0.271,0],[0.24,-0.086]],"v":[[0.48,0.998],[2.809,3.326],[3.326,2.809],[0.998,0.48],[1.349,-0.157],[1.478,-0.924],[0.776,-2.624],[-0.924,-3.326],[-2.633,-2.624],[-3.326,-0.924],[-2.633,0.785],[-0.924,1.478],[-0.157,1.349]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":5,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ind":2,"ty":"sh","ix":3,"ks":{"a":0,"k":{"i":[[0.326,-0.326],[0.462,0],[0.326,0.32],[0,0.462],[-0.32,0.32],[-0.462,0],[-0.32,-0.326],[0,-0.462]],"o":[[-0.32,0.32],[-0.462,0],[-0.32,-0.326],[0,-0.462],[0.326,-0.326],[0.462,0],[0.326,0.32],[0,0.462]],"v":[[0.249,0.259],[-0.924,0.739],[-2.106,0.259],[-2.587,-0.924],[-2.106,-2.097],[-0.924,-2.587],[0.249,-2.097],[0.739,-0.924]],"c":true},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":5,"nm":"Merge Paths 2","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"st","c":{"a":0,"k":[0.32549020648,0.270588248968,0.164705887437,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0.4,"ix":5},"lc":1,"lj":2,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.32549020648,0.270588248968,0.164705887437,1],"ix":4},"o":{"a":0,"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":"icon","np":6,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tr","p":{"a":0,"k":[10.326,10.326],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"icon","np":1,"cix":2,"bm":0,"ix":4,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":9,"ty":4,"nm":".secondaryFixedDim","cl":"secondaryFixedDim","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[91,15,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":{"k":[{"s":[120,4],"t":155,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[120.383,4.161],"t":156,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[121.592,4.668],"t":157,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[123.818,5.601],"t":158,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[127.463,7.13],"t":159,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[133.427,9.631],"t":160,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[144.8,14.4],"t":161,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[157.801,19.852],"t":162,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[164.141,22.511],"t":163,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[167.915,24.093],"t":164,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[170.516,25.184],"t":165,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[172.458,25.999],"t":166,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[173.978,26.636],"t":167,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[175.203,27.15],"t":168,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[176.216,27.574],"t":169,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[177.065,27.931],"t":170,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[177.788,28.234],"t":171,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[178.406,28.493],"t":172,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[178.938,28.716],"t":173,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[179.399,28.909],"t":174,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[179.8,29.078],"t":175,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[180.149,29.224],"t":176,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[180.454,29.352],"t":177,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[180.718,29.463],"t":178,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[180.949,29.559],"t":179,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[181.148,29.643],"t":180,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[181.32,29.715],"t":181,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[181.467,29.777],"t":182,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[181.592,29.829],"t":183,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[181.697,29.873],"t":184,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[181.784,29.91],"t":185,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[181.855,29.939],"t":186,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[181.909,29.962],"t":187,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[181.978,29.991],"t":189,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[182,30],"t":380,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[181.445,29.767],"t":381,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[179.655,29.017],"t":382,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[176.204,27.569],"t":383,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[170.034,24.982],"t":384,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[157.2,19.6],"t":385,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[142.586,13.472],"t":386,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[136.154,10.774],"t":387,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[132.424,9.21],"t":388,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[129.891,8.148],"t":389,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[128.022,7.364],"t":390,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[126.579,6.759],"t":391,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[125.427,6.276],"t":392,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[124.487,5.881],"t":393,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[123.712,5.556],"t":394,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[123.062,5.284],"t":395,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[122.517,5.055],"t":396,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[122.055,4.862],"t":397,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[121.663,4.697],"t":398,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[121.332,4.559],"t":399,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[121.051,4.441],"t":400,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[120.815,4.342],"t":401,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[120.62,4.26],"t":402,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[120.456,4.191],"t":403,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[120.323,4.135],"t":404,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[120.216,4.091],"t":405,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[120.133,4.056],"t":406,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[120.073,4.03],"t":407,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[120.03,4.013],"t":408,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[120.008,4.003],"t":409,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}}]},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":32.672,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[0.850980392157,0.76862745098,0.627450980392,1],"ix":4},"o":{"a":0,"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":"Taskbar Lofi","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"ct":1,"bm":0}]},{"id":"comp_2","nm":"Recents_LofiApp","fr":60,"pfr":1,"layers":[{"ddd":0,"ind":1,"ty":4,"nm":".onSecondaryFixedVariant","cl":"onSecondaryFixedVariant","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[339.937,151.75,0],"ix":2,"l":2},"a":{"a":0,"k":[339.937,151.75,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[1.021,-1.766],[0,0],[-2.043,0],[0,0],[1.022,1.767]],"o":[[-1.021,-1.766],[0,0],[-1.022,1.767],[0,0],[2.043,0],[0,0]],"v":[[2.297,-7.675],[-2.297,-7.675],[-9.64,5.025],[-7.343,9],[7.343,9],[9.64,5.025]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"rd","nm":"Round Corners 1","r":{"a":0,"k":9,"ix":1},"ix":2,"mn":"ADBE Vector Filter - RC","hd":false},{"ty":"fl","c":{"a":0,"k":[0.325490196078,0.270588235294,0.164705882353,1],"ix":4},"o":{"a":0,"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":"Triangle","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tr","p":{"a":0,"k":[481.874,21],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Triangle","np":1,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[18,18],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":200,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[0.325490196078,0.270588235294,0.164705882353,1],"ix":4},"o":{"a":0,"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":"Rectangle","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tr","p":{"a":0,"k":[457.874,21],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"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","np":1,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[292,25],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":200,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[0.325490196078,0.270588235294,0.164705882353,1],"ix":4},"o":{"a":0,"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":"Text field","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tr","p":{"a":0,"k":[334,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":"Text field","np":1,"cix":2,"bm":0,"ix":3,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[109,28],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":12,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[0.325490196078,0.270588235294,0.164705882353,1],"ix":4},"o":{"a":0,"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":"Sent","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tr","p":{"a":0,"k":[425.5,208.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":"Sent","np":1,"cix":2,"bm":0,"ix":4,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[160,56],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":14,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[0.325490196078,0.270588235294,0.164705882353,1],"ix":4},"o":{"a":0,"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":"Sent","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tr","p":{"a":0,"k":[400,158.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":"Sent","np":1,"cix":2,"bm":0,"ix":5,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[126,40],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":14,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[0.325490196078,0.270588235294,0.164705882353,1],"ix":4},"o":{"a":0,"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":"Received","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tr","p":{"a":0,"k":[251,78.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":"Received","np":1,"cix":2,"bm":0,"ix":6,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":".onSecondaryFixed","cl":"onSecondaryFixed","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[334,157.5,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":0,"k":[340,315],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":16,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[0.145098039216,0.101960784314,0.01568627451,1],"ix":4},"o":{"a":0,"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":"Message","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":3,"ty":4,"nm":".onSecondaryFixedVariant","cl":"onSecondaryFixedVariant","parent":4,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[82,171.125,0],"ix":2,"l":2},"a":{"a":0,"k":[82,171.125,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[64,8],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":39.375,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[0.325490196078,0.270588235294,0.164705882353,1],"ix":4},"o":{"a":0,"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":"Line 2","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tr","p":{"a":0,"k":[80,177.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Line 4","np":1,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[92,8],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":39.375,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[0.325490196078,0.270588235294,0.164705882353,1],"ix":4},"o":{"a":0,"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":"Line 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tr","p":{"a":0,"k":[94,165.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Line 3","np":1,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[20,20],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":39.375,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[0.325490196078,0.270588235294,0.164705882353,1],"ix":4},"o":{"a":0,"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":"Avatar","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tr","p":{"a":0,"k":[34,171.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"circle 2","np":1,"cix":2,"bm":0,"ix":3,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":4,"ty":4,"nm":".onSecondaryFixed","cl":"onSecondaryFixed","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[82.5,140.5,0],"ix":2,"l":2},"a":{"a":0,"k":[82,140.938,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[132,22],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":39.375,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[0.145098039216,0.101960784314,0.01568627451,1],"ix":4},"o":{"a":0,"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":"Search","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tr","p":{"a":0,"k":[82,31.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":"header","np":1,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[64,8],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":200,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[0.145098039216,0.101960784314,0.01568627451,1],"ix":4},"o":{"a":0,"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":"Line 2","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tr","p":{"a":0,"k":[80,257.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":"Line 6","np":1,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[92,8],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":200,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[0.145098039216,0.101960784314,0.01568627451,1],"ix":4},"o":{"a":0,"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":"Line 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tr","p":{"a":0,"k":[94,245.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":"Line 5","np":1,"cix":2,"bm":0,"ix":3,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[20,20],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":200,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[0.145098039216,0.101960784314,0.01568627451,1],"ix":4},"o":{"a":0,"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":"Avatar","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tr","p":{"a":0,"k":[34,251.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":"circle 3","np":1,"cix":2,"bm":0,"ix":4,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[132,64],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":12,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[0.145098039216,0.101960784314,0.01568627451,1],"ix":4},"o":{"a":0,"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":"Message","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tr","p":{"a":0,"k":[82,171],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"block","np":1,"cix":2,"bm":0,"ix":5,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[64,8],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":200,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[0.145098039216,0.101960784314,0.01568627451,1],"ix":4},"o":{"a":0,"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":"Line 2","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tr","p":{"a":0,"k":[80,96.875],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Line 2","np":1,"cix":2,"bm":0,"ix":6,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[92,8],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":200,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[0.145098039216,0.101960784314,0.01568627451,1],"ix":4},"o":{"a":0,"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":"Line 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tr","p":{"a":0,"k":[94,84.875],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Line 1","np":1,"cix":2,"bm":0,"ix":7,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[20,20],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":200,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[0.145098039216,0.101960784314,0.01568627451,1],"ix":4},"o":{"a":0,"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":"Avatar","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tr","p":{"a":0,"k":[34,90.875],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"circle 1","np":1,"cix":2,"bm":0,"ix":8,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":5,"ty":4,"nm":".onSecondaryFixedVariant","cl":"onSecondaryFixedVariant","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[252,157.5,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":0,"k":[504,315],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":28,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[0.325490196078,0.270588235294,0.164705882353,1],"ix":4},"o":{"a":0,"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":"app only","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"ct":1,"bm":0}]}],"layers":[{"ddd":0,"ind":2,"ty":4,"nm":".secondaryFixedDim","cl":"secondaryFixedDim","parent":3,"sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":37,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":47,"s":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":250,"s":[100]},{"t":256,"s":[0]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"k":[{"s":[0,29.984,0],"t":127,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0,29.965,0],"t":128,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0,29.936,0],"t":129,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0,29.894,0],"t":130,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0,29.84,0],"t":131,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0,29.77,0],"t":132,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0,29.682,0],"t":133,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0,29.574,0],"t":134,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0,29.445,0],"t":135,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0,29.294,0],"t":136,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0,29.121,0],"t":137,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0,28.925,0],"t":138,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0,28.746,0],"t":139,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0,28.548,0],"t":140,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0,28.33,0],"t":141,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0,28.092,0],"t":142,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0,27.832,0],"t":143,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0,27.548,0],"t":144,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0,27.239,0],"t":145,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0,26.903,0],"t":146,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0,26.536,0],"t":147,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0,26.14,0],"t":148,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0,25.709,0],"t":149,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0,25.241,0],"t":150,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0,24.73,0],"t":151,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0,24.171,0],"t":152,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0,23.563,0],"t":153,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0,22.898,0],"t":154,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0,22.171,0],"t":155,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0,21.373,0],"t":156,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0,20.496,0],"t":157,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0,19.524,0],"t":158,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0,18.451,0],"t":159,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0,17.263,0],"t":160,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0,15.943,0],"t":161,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0,14.475,0],"t":162,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0,12.841,0],"t":163,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0,11.018,0],"t":164,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0,9.023,0],"t":165,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0,6.87,0],"t":166,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0,4.614,0],"t":167,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0,2.333,0],"t":168,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0,0.106,0],"t":169,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0,-1.975,0],"t":170,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0,-3.877,0],"t":171,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0,-5.591,0],"t":172,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0,-7.125,0],"t":173,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0,-8.492,0],"t":174,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0,-9.714,0],"t":175,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0,-10.799,0],"t":176,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0,-11.771,0],"t":177,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0,-12.643,0],"t":178,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0,-13.428,0],"t":179,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0,-14.138,0],"t":180,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0,-14.777,0],"t":181,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0,-15.355,0],"t":182,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0,-15.879,0],"t":183,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0,-16.354,0],"t":184,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0,-16.784,0],"t":185,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0,-17.177,0],"t":186,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0,-17.532,0],"t":187,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0,-17.854,0],"t":188,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0,-18.146,0],"t":189,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0,-18.409,0],"t":190,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0,-18.645,0],"t":191,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0,-18.858,0],"t":192,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0,-19.048,0],"t":193,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0,-19.217,0],"t":194,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0,-19.366,0],"t":195,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0,-19.496,0],"t":196,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0,-19.61,0],"t":197,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0,-19.707,0],"t":198,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0,-19.788,0],"t":199,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0,-19.856,0],"t":200,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0,-19.911,0],"t":201,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0,-19.954,0],"t":202,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0,-19.984,0],"t":203,"i":{"x":1,"y":1},"o":{"x":0,"y":0}}],"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,"ef":[{"ty":5,"nm":"Super Slider","np":3,"mn":"ADBE Slider Control","ix":1,"en":1,"ef":[{"ty":0,"nm":"Slider","mn":"ADBE Slider Control-0001","ix":1,"v":{"a":1,"k":[{"i":{"x":[0.64],"y":[0.48]},"o":{"x":[0.36],"y":[0]},"t":121,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":138,"s":[17.5]},{"t":205,"s":[100]}],"ix":1}}]}],"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":1,"k":[{"i":{"x":[0.56,0.56],"y":[1,1]},"o":{"x":[0.44,0.44],"y":[0,0]},"t":62,"s":[36,36]},{"i":{"x":[0.56,0.56],"y":[1,1]},"o":{"x":[0.44,0.44],"y":[0,0]},"t":72,"s":[28,28]},{"i":{"x":[0.56,0.56],"y":[1,1]},"o":{"x":[0.44,0.44],"y":[0,0]},"t":248,"s":[28,28]},{"t":258,"s":[36,36]}],"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.850980392157,0.76862745098,0.627450980392,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":1,"k":[{"i":{"x":0.56,"y":1},"o":{"x":0.44,"y":0},"t":62,"s":[41,0],"to":[0,0],"ti":[0,0]},{"i":{"x":0.56,"y":0.56},"o":{"x":0.44,"y":0.44},"t":72,"s":[33,0],"to":[0,0],"ti":[0,0]},{"i":{"x":0.56,"y":1},"o":{"x":0.44,"y":0},"t":248,"s":[33,0],"to":[0,0],"ti":[0,0]},{"t":258,"s":[41,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":"right circle","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":1,"k":[{"i":{"x":[0.56,0.56],"y":[1,1]},"o":{"x":[0.44,0.44],"y":[0,0]},"t":62,"s":[36,36]},{"i":{"x":[0.56,0.56],"y":[1,1]},"o":{"x":[0.44,0.44],"y":[0,0]},"t":72,"s":[28,28]},{"i":{"x":[0.56,0.56],"y":[1,1]},"o":{"x":[0.44,0.44],"y":[0,0]},"t":248,"s":[28,28]},{"t":258,"s":[36,36]}],"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.850980392157,0.76862745098,0.627450980392,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":1,"k":[{"i":{"x":0.56,"y":1},"o":{"x":0.44,"y":0},"t":62,"s":[-41,0],"to":[0,0],"ti":[0,0]},{"i":{"x":0.56,"y":0.56},"o":{"x":0.44,"y":0.44},"t":72,"s":[-33,0],"to":[0,0],"ti":[0,0]},{"i":{"x":0.56,"y":1},"o":{"x":0.44,"y":0},"t":248,"s":[-33,0],"to":[0,0],"ti":[0,0]},{"t":258,"s":[-41,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":"left circle","np":2,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":1,"k":[{"i":{"x":[0.56,0.56],"y":[1,1]},"o":{"x":[0.44,0.44],"y":[0,0]},"t":62,"s":[36,36]},{"i":{"x":[0.56,0.56],"y":[1,1]},"o":{"x":[0.44,0.44],"y":[0,0]},"t":72,"s":[28,28]},{"i":{"x":[0.56,0.56],"y":[1,1]},"o":{"x":[0.44,0.44],"y":[0,0]},"t":248,"s":[28,28]},{"t":258,"s":[36,36]}],"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.850980392157,0.76862745098,0.627450980392,1],"ix":4},"o":{"a":0,"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":"size","np":2,"cix":2,"bm":0,"ix":3,"mn":"ADBE Vector Group","hd":false}],"ip":37,"op":345,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":3,"ty":4,"nm":".onSecondaryFixedVariant","cl":"onSecondaryFixedVariant","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[277,459,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":0,"k":[200,128],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":18,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[0.32549020648,0.270588248968,0.164705887437,1],"ix":4},"o":{"a":0,"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":"Frame 1321317559","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":5,"ty":4,"nm":"matte","td":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[277,197.5,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":"rc","d":1,"s":{"a":0,"k":[504,315],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":28,"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}],"ip":0,"op":600,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":6,"ty":0,"nm":"Recents_EDU Loop","parent":5,"tt":1,"tp":5,"refId":"comp_0","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,"l":2},"a":{"a":0,"k":[252,157.5,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"w":504,"h":315,"ip":0,"op":511,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":8,"ty":4,"nm":".onSecondaryFixedVariant","cl":"onSecondaryFixedVariant","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[277,197.5,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":0,"k":[504,315],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":28,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[0.325490196078,0.270588235294,0.164705882353,1],"ix":4},"o":{"a":0,"k":50,"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":"illustrations: action key","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":9,"ty":4,"nm":".secondaryFixedDim","cl":"secondaryFixedDim","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[277,197.5,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":0,"k":[504,315],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":28,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[0.850980401039,0.768627464771,0.627451002598,1],"ix":4},"o":{"a":0,"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":"illustrations: action key","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":10,"ty":4,"nm":".secondaryFixedDim","cl":"secondaryFixedDim","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[277,197.5,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":0,"k":[504,315],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":28,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"st","c":{"a":0,"k":[0.850980392157,0.76862745098,0.627450980392,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":14,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"op","nm":"Stroke align: Outside","a":{"k":[{"s":[7],"t":0,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[7],"t":511,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}}]},"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.850980392157,0.76862745098,0.627450980392,1],"ix":4},"o":{"a":0,"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":"frame","np":4,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"ct":1,"bm":0}],"markers":[{"tm":142,"cm":"drag with gesture","dr":108},{"tm":217,"cm":"onPause","dr":0},{"tm":250,"cm":"release playback realtime","dr":36}],"props":{}}
\ No newline at end of file +{"v":"5.12.1","fr":60,"ip":0,"op":511,"w":554,"h":564,"nm":"Trackpad-JSON_Recents-EDU","ddd":0,"assets":[{"id":"comp_0","nm":"Recents_EDU Loop","fr":60,"layers":[{"ddd":0,"ind":2,"ty":4,"nm":"CNTL || playback","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"s":true,"x":{"a":0,"k":0,"ix":3},"y":{"a":0,"k":0,"ix":4}},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"ef":[{"ty":5,"nm":"Picker","np":3,"mn":"Pseudo/@@WcSiov6sT3a4/s0XPKYEOQ","ix":1,"en":1,"ef":[{"ty":7,"nm":"Menu","mn":"Pseudo/@@WcSiov6sT3a4/s0XPKYEOQ-0001","ix":1,"v":{"a":0,"k":2,"ix":1}}]},{"ty":5,"nm":"OUTPUT","np":3,"mn":"ADBE Slider Control","ix":2,"en":1,"ef":[{"ty":0,"nm":"Slider","mn":"ADBE Slider Control-0001","ix":1,"v":{"k":[{"s":[0],"t":142,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[0.001],"t":143,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[0.002],"t":144,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[0.003],"t":145,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[0.004],"t":146,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[0.006],"t":147,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[0.008],"t":148,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[0.01],"t":149,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[0.012],"t":150,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[0.016],"t":151,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[0.02],"t":152,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[0.025],"t":153,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[0.031],"t":154,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[0.038],"t":155,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[0.047],"t":156,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[0.059],"t":157,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[0.073],"t":158,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[0.091],"t":159,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[0.116],"t":160,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[0.15],"t":161,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[0.196],"t":162,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[0.249],"t":163,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[0.306],"t":164,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[0.366],"t":165,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[0.425],"t":166,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[0.481],"t":167,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[0.53],"t":168,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[0.575],"t":169,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[0.614],"t":170,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[0.648],"t":171,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[0.678],"t":172,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[0.706],"t":173,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[0.73],"t":174,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[0.752],"t":175,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[0.772],"t":176,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[0.79],"t":177,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[0.807],"t":178,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[0.822],"t":179,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[0.836],"t":180,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[0.849],"t":181,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[0.861],"t":182,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[0.873],"t":183,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[0.883],"t":184,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[0.892],"t":185,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[0.901],"t":186,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[0.91],"t":187,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[0.917],"t":188,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[0.925],"t":189,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[0.931],"t":190,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[0.937],"t":191,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[0.943],"t":192,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[0.949],"t":193,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[0.954],"t":194,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[0.958],"t":195,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[0.963],"t":196,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[0.967],"t":197,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[0.97],"t":198,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[0.974],"t":199,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[0.977],"t":200,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[0.98],"t":201,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[0.983],"t":202,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[0.985],"t":203,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[0.987],"t":204,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[0.989],"t":205,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[0.991],"t":206,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[0.993],"t":207,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[0.994],"t":208,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[0.996],"t":209,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[0.997],"t":210,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[0.998],"t":211,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[0.998],"t":212,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[0.999],"t":213,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[1],"t":215,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[1],"t":250,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[1.009],"t":251,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[1.038],"t":252,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[1.093],"t":253,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[1.193],"t":254,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[1.4],"t":255,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[1.636],"t":256,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[1.739],"t":257,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[1.8],"t":258,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[1.84],"t":259,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[1.871],"t":260,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[1.894],"t":261,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[1.912],"t":262,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[1.928],"t":263,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[1.94],"t":264,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[1.951],"t":265,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[1.959],"t":266,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[1.967],"t":267,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[1.973],"t":268,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[1.979],"t":269,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[1.983],"t":270,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[1.987],"t":271,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[1.99],"t":272,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[1.993],"t":273,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[1.995],"t":274,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[1.997],"t":275,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[1.998],"t":276,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[1.999],"t":278,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[2],"t":380,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[2.009],"t":381,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[2.038],"t":382,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[2.093],"t":383,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[2.193],"t":384,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[2.4],"t":385,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[2.636],"t":386,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[2.739],"t":387,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[2.8],"t":388,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[2.84],"t":389,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[2.871],"t":390,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[2.894],"t":391,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[2.912],"t":392,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[2.928],"t":393,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[2.94],"t":394,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[2.951],"t":395,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[2.959],"t":396,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[2.967],"t":397,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[2.973],"t":398,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[2.979],"t":399,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[2.983],"t":400,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[2.987],"t":401,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[2.99],"t":402,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[2.993],"t":403,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[2.995],"t":404,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[2.997],"t":405,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[2.999],"t":408,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}}]}}]},{"ty":5,"nm":"Keys","np":3,"mn":"ADBE Slider Control","ix":3,"en":1,"ef":[{"ty":0,"nm":"Slider","mn":"ADBE Slider Control-0001","ix":1,"v":{"a":1,"k":[{"i":{"x":[0.831],"y":[0.109]},"o":{"x":[0.458],"y":[0.053]},"t":142,"s":[0]},{"i":{"x":[0.1],"y":[1]},"o":{"x":[0.15],"y":[0.43]},"t":161,"s":[0.15]},{"t":217,"s":[1],"h":1},{"i":{"x":[0.8],"y":[0.15]},"o":{"x":[0.3],"y":[0]},"t":250,"s":[1]},{"i":{"x":[0.1],"y":[1]},"o":{"x":[0.05],"y":[0.7]},"t":255,"s":[1.4]},{"t":280,"s":[2],"h":1},{"i":{"x":[0.8],"y":[0.15]},"o":{"x":[0.3],"y":[0]},"t":380,"s":[2]},{"i":{"x":[0.1],"y":[1]},"o":{"x":[0.05],"y":[0.7]},"t":385,"s":[2.4]},{"t":410,"s":[3]}],"ix":1}}]},{"ty":5,"nm":"State (holds)","np":3,"mn":"ADBE Slider Control","ix":4,"en":1,"ef":[{"ty":0,"nm":"Slider","mn":"ADBE Slider Control-0001","ix":1,"v":{"a":0,"k":0,"ix":1}}]}],"shapes":[],"ip":0,"op":451,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":3,"ty":3,"nm":"Null :: Taskbar drop","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"k":[{"s":[252,278,0],"t":186,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[252,278.45,0],"t":187,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[252,279.615,0],"t":188,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[252,281.252,0],"t":189,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[252,283.166,0],"t":190,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[252,287.233,0],"t":192,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[252,289.181,0],"t":193,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[252,290.982,0],"t":194,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[252,292.599,0],"t":195,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[252,294.012,0],"t":196,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[252,295.216,0],"t":197,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[252,296.216,0],"t":198,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[252,297.023,0],"t":199,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[252,297.655,0],"t":200,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[252,298.131,0],"t":201,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[252,298.474,0],"t":202,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[252,298.705,0],"t":203,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[252,298.465,0],"t":212,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[252,298.226,0],"t":215,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[252,298,0],"t":377,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[252,298.382,0],"t":378,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[252,299.372,0],"t":379,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[252,300.764,0],"t":380,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[252,302.391,0],"t":381,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[252,305.848,0],"t":383,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[252,307.504,0],"t":384,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[252,309.035,0],"t":385,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[252,310.409,0],"t":386,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[252,311.611,0],"t":387,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[252,312.634,0],"t":388,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[252,313.483,0],"t":389,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[252,314.169,0],"t":390,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[252,314.706,0],"t":391,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[252,315.112,0],"t":392,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[252,315.403,0],"t":393,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[252,315.717,0],"t":395,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[252,315.474,0],"t":402,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[252,315.192,0],"t":406,"i":{"x":1,"y":1},"o":{"x":0,"y":0}}],"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":511,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":4,"ty":0,"nm":"Taskbar Lofi","parent":3,"refId":"comp_1","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":134,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":143,"s":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":432,"s":[100]},{"t":444,"s":[0]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"s":true,"x":{"a":0,"k":0,"ix":3},"y":{"k":[{"s":[26.984],"t":127,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[26.971],"t":128,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[26.95],"t":129,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[26.921],"t":130,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[26.882],"t":131,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[26.83],"t":132,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[26.765],"t":133,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[26.685],"t":134,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[26.589],"t":135,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[26.478],"t":136,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[26.349],"t":137,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[26.205],"t":138,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[26.072],"t":139,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[25.926],"t":140,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[25.764],"t":141,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[25.589],"t":142,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[25.397],"t":143,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[25.187],"t":144,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[24.959],"t":145,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[24.711],"t":146,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[24.44],"t":147,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[24.146],"t":148,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[23.826],"t":149,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[23.479],"t":150,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[23.1],"t":151,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[22.686],"t":152,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[22.236],"t":153,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[21.745],"t":154,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[21.207],"t":155,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[20.616],"t":156,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[19.967],"t":157,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[19.248],"t":158,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[18.457],"t":159,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[17.578],"t":160,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[16.602],"t":161,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[15.514],"t":162,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[14.303],"t":163,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[12.954],"t":164,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[11.477],"t":165,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[9.885],"t":166,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[8.215],"t":167,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[6.526],"t":168,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[4.878],"t":169,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[3.338],"t":170,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[1.928],"t":171,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[0.659],"t":172,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[-0.475],"t":173,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[-1.485],"t":174,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[-2.388],"t":175,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[-3.192],"t":176,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[-3.911],"t":177,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[-4.556],"t":178,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[-5.136],"t":179,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[-5.662],"t":180,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[-6.135],"t":181,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[-6.563],"t":182,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[-6.951],"t":183,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[-7.303],"t":184,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[-7.622],"t":185,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[-7.913],"t":186,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[-8.175],"t":187,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[-8.413],"t":188,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[-8.628],"t":189,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[-8.823],"t":190,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[-8.998],"t":191,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[-9.155],"t":192,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[-9.296],"t":193,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[-9.42],"t":194,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[-9.531],"t":195,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[-9.627],"t":196,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[-9.711],"t":197,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[-9.783],"t":198,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[-9.843],"t":199,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[-9.893],"t":200,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[-9.933],"t":201,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[-9.963],"t":202,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[-9.984],"t":203,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[-9.996],"t":204,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}}]}},"a":{"a":0,"k":[91,15,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"ef":[{"ty":5,"nm":"Super Slider","np":3,"mn":"ADBE Slider Control","ix":1,"en":1,"ef":[{"ty":0,"nm":"Slider","mn":"ADBE Slider Control-0001","ix":1,"v":{"a":1,"k":[{"i":{"x":[0.64],"y":[0.48]},"o":{"x":[0.36],"y":[0]},"t":121,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":138,"s":[17.5]},{"t":205,"s":[100]}],"ix":1}}]}],"w":182,"h":30,"ip":0,"op":511,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":5,"ty":3,"nm":"Focus Task :: Lift & Drop","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"s":true,"x":{"a":0,"k":252,"ix":3},"y":{"k":[{"s":[157.385],"t":145,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[157.28],"t":147,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[157.128],"t":149,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[157.026],"t":150,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[156.901],"t":151,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[156.75],"t":152,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[156.564],"t":153,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[156.335],"t":154,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[156.054],"t":155,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[155.706],"t":156,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[155.275],"t":157,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[154.73],"t":158,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[154.03],"t":159,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[153.103],"t":160,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[151.8],"t":161,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[150.035],"t":162,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[148.047],"t":163,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[145.867],"t":164,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[143.589],"t":165,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[141.341],"t":166,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[139.241],"t":167,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[137.346],"t":168,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[135.666],"t":169,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[134.185],"t":170,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[132.878],"t":171,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[131.718],"t":172,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[130.684],"t":173,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[129.755],"t":174,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[128.916],"t":175,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[128.155],"t":176,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[127.462],"t":177,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[126.829],"t":178,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[126.249],"t":179,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[125.715],"t":180,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[125.221],"t":181,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[124.765],"t":182,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[124.343],"t":183,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[123.951],"t":184,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[123.587],"t":185,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[123.249],"t":186,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[122.934],"t":187,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[122.641],"t":188,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[122.369],"t":189,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[122.114],"t":190,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[121.877],"t":191,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[121.657],"t":192,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[121.452],"t":193,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[121.26],"t":194,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[121.082],"t":195,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[120.918],"t":196,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[120.764],"t":197,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[120.623],"t":198,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[120.492],"t":199,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[120.371],"t":200,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[120.261],"t":201,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[120.158],"t":202,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[120.065],"t":203,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[119.98],"t":204,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[119.903],"t":205,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[119.835],"t":206,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[119.718],"t":208,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[119.629],"t":210,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[119.51],"t":215,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[119.5],"t":250,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[119.746],"t":251,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[120.54],"t":252,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[122.071],"t":253,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[124.808],"t":254,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[130.5],"t":255,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[136.982],"t":256,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[139.835],"t":257,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[141.489],"t":258,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[142.613],"t":259,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[143.442],"t":260,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[144.082],"t":261,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[144.593],"t":262,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[145.01],"t":263,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[145.354],"t":264,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[145.642],"t":265,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[145.884],"t":266,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[146.089],"t":267,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[146.262],"t":268,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[146.409],"t":269,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[146.534],"t":270,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[146.638],"t":271,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[146.725],"t":272,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[146.857],"t":274,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[147],"t":380,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[147.094],"t":381,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[147.397],"t":382,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[147.982],"t":383,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[149.027],"t":384,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[151.2],"t":385,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[153.675],"t":386,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[154.764],"t":387,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[155.396],"t":388,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[155.825],"t":389,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[156.141],"t":390,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[156.386],"t":391,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[156.581],"t":392,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[156.74],"t":393,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[156.871],"t":394,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[156.981],"t":395,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[157.074],"t":396,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[157.218],"t":398,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[157.362],"t":401,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}}]}},"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":511,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":6,"ty":4,"nm":"matte","parent":5,"td":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,"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":"rc","d":1,"s":{"k":[{"s":[503.613,314.758],"t":144,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[503.134,314.459],"t":146,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[502.832,314.27],"t":147,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[502.464,314.04],"t":148,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[502.025,313.765],"t":149,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[501.487,313.429],"t":150,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[500.824,313.015],"t":151,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[500.023,312.514],"t":152,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[499.032,311.895],"t":153,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[497.818,311.136],"t":154,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[496.328,310.205],"t":155,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[494.484,309.053],"t":156,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[492.194,307.621],"t":157,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[489.307,305.817],"t":158,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[485.592,303.495],"t":159,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[480.67,300.419],"t":160,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[473.76,296.1],"t":161,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[464.395,290.247],"t":162,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[453.849,283.656],"t":163,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[442.286,276.429],"t":164,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[430.198,268.874],"t":165,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[418.274,261.421],"t":166,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[407.131,254.457],"t":167,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[397.077,248.173],"t":168,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[388.165,242.603],"t":169,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[380.31,237.694],"t":170,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[373.373,233.358],"t":171,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[367.218,229.511],"t":172,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[361.732,226.082],"t":173,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[356.803,223.002],"t":174,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[352.354,220.221],"t":175,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[348.318,217.699],"t":176,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[344.643,215.402],"t":177,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[341.283,213.302],"t":178,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[338.205,211.378],"t":179,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[335.37,209.606],"t":180,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[332.752,207.97],"t":181,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[330.33,206.456],"t":182,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[328.092,205.058],"t":183,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[326.012,203.757],"t":184,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[324.082,202.552],"t":185,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[322.291,201.432],"t":186,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[320.617,200.386],"t":187,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[319.062,199.414],"t":188,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[317.618,198.512],"t":189,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[316.267,197.667],"t":190,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[315.013,196.883],"t":191,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[313.845,196.153],"t":192,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[312.756,195.472],"t":193,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[311.738,194.837],"t":194,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[310.793,194.246],"t":195,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[309.921,193.7],"t":196,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[309.107,193.192],"t":197,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[308.359,192.724],"t":198,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[307.663,192.289],"t":199,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[307.02,191.888],"t":200,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[306.436,191.522],"t":201,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[305.891,191.182],"t":202,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[305.399,190.874],"t":203,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[304.946,190.591],"t":204,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[304.539,190.337],"t":205,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[304.178,190.112],"t":206,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[303.85,189.906],"t":207,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[303.555,189.722],"t":208,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[303.306,189.566],"t":209,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[303.082,189.427],"t":210,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[302.892,189.308],"t":211,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[302.617,189.135],"t":213,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[302.4,189],"t":250,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[302.247,188.904],"t":251,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[301.752,188.595],"t":252,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[300.798,187.999],"t":253,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[299.093,186.933],"t":254,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[295.546,184.716],"t":255,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[291.506,182.192],"t":256,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[289.729,181.08],"t":257,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[288.698,180.436],"t":258,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[287.998,179.999],"t":259,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[287.481,179.676],"t":260,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[287.082,179.427],"t":261,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[286.764,179.227],"t":262,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[286.504,179.065],"t":263,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[286.29,178.931],"t":264,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[286.11,178.819],"t":265,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[285.832,178.645],"t":267,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[285.555,178.472],"t":270,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[285.272,178.295],"t":278,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[285.264,178.29],"t":380,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[287.222,179.514],"t":381,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[293.538,183.461],"t":382,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[305.714,191.071],"t":383,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[327.48,204.675],"t":384,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[372.758,232.974],"t":385,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[424.317,265.198],"t":386,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[447.009,279.381],"t":387,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[460.167,287.605],"t":388,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[469.103,293.19],"t":389,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[475.697,297.31],"t":390,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[480.788,300.492],"t":391,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[484.853,303.033],"t":392,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[488.172,305.107],"t":393,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[490.906,306.816],"t":394,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[493.198,308.249],"t":395,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[495.121,309.451],"t":396,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[496.752,310.47],"t":397,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[498.133,311.333],"t":398,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[499.301,312.063],"t":399,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[500.29,312.681],"t":400,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[501.123,313.202],"t":401,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[501.814,313.634],"t":402,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[502.391,313.994],"t":403,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[502.861,314.288],"t":404,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[503.238,314.524],"t":405,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[503.53,314.706],"t":406,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}}]},"p":{"a":0,"k":[0,0],"ix":3},"r":{"k":[{"s":[27.974],"t":144,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[27.959],"t":145,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[27.942],"t":146,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[27.922],"t":147,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[27.898],"t":148,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[27.869],"t":149,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[27.833],"t":150,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[27.789],"t":151,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[27.736],"t":152,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[27.67],"t":153,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[27.589],"t":154,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[27.49],"t":155,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[27.368],"t":156,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[27.216],"t":157,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[27.024],"t":158,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[26.777],"t":159,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[26.45],"t":160,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[25.991],"t":161,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[25.37],"t":162,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[24.669],"t":163,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[23.901],"t":164,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[23.098],"t":165,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[22.306],"t":166,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[21.566],"t":167,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[20.898],"t":168,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[20.306],"t":169,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[19.785],"t":170,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[19.324],"t":171,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[18.915],"t":172,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[18.551],"t":173,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[18.223],"t":174,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[17.928],"t":175,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[17.66],"t":176,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[17.416],"t":177,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[17.193],"t":178,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[16.988],"t":179,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[16.8],"t":180,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[16.626],"t":181,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[16.465],"t":182,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[16.316],"t":183,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[16.178],"t":184,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[16.05],"t":185,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[15.931],"t":186,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[15.82],"t":187,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[15.717],"t":188,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[15.621],"t":189,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[15.531],"t":190,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[15.448],"t":191,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[15.37],"t":192,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[15.298],"t":193,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[15.23],"t":194,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[15.167],"t":195,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[15.11],"t":196,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[15.055],"t":197,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[15.006],"t":198,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[14.96],"t":199,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[14.917],"t":200,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[14.878],"t":201,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[14.842],"t":202,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[14.809],"t":203,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[14.779],"t":204,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[14.752],"t":205,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[14.728],"t":206,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[14.706],"t":207,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[14.687],"t":208,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[14.67],"t":209,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[14.655],"t":210,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[14.643],"t":211,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[14.633],"t":212,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[14.624],"t":213,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[14.61],"t":250,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[14.603],"t":251,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[14.579],"t":252,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[14.532],"t":253,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[14.45],"t":254,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[14.278],"t":255,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[14.082],"t":256,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[13.996],"t":257,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[13.946],"t":258,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[13.912],"t":259,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[13.887],"t":260,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[13.868],"t":261,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[13.853],"t":262,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[13.84],"t":263,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[13.83],"t":264,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[13.821],"t":265,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[13.808],"t":267,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[13.794],"t":270,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[13.78],"t":278,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[13.78],"t":380,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[13.907],"t":381,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[14.318],"t":382,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[15.109],"t":383,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[16.524],"t":384,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[19.468],"t":385,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[22.82],"t":386,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[24.295],"t":387,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[25.15],"t":388,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[25.731],"t":389,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[26.16],"t":390,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[26.491],"t":391,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[26.755],"t":392,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[26.971],"t":393,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[27.149],"t":394,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[27.298],"t":395,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[27.423],"t":396,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[27.529],"t":397,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[27.619],"t":398,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[27.694],"t":399,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[27.759],"t":400,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[27.813],"t":401,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[27.858],"t":402,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[27.895],"t":403,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[27.926],"t":404,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[27.95],"t":405,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[27.969],"t":406,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[27.993],"t":408,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}}]},"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}],"ip":0,"op":511,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":7,"ty":0,"nm":"Recents_LofiApp","parent":6,"tt":1,"tp":6,"refId":"comp_2","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,"l":2},"a":{"a":0,"k":[252,157.5,0],"ix":1,"l":2},"s":{"k":[{"s":[99.923,99.923,100],"t":144,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[99.828,99.828,100],"t":146,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[99.768,99.768,100],"t":147,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[99.695,99.695,100],"t":148,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[99.608,99.608,100],"t":149,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[99.501,99.501,100],"t":150,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[99.37,99.37,100],"t":151,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[99.211,99.211,100],"t":152,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[99.014,99.014,100],"t":153,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[98.773,98.773,100],"t":154,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[98.478,98.478,100],"t":155,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[98.112,98.112,100],"t":156,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[97.658,97.658,100],"t":157,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[97.085,97.085,100],"t":158,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[96.348,96.348,100],"t":159,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[95.371,95.371,100],"t":160,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[94,94,100],"t":161,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[92.142,92.142,100],"t":162,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[90.049,90.049,100],"t":163,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[87.755,87.755,100],"t":164,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[85.357,85.357,100],"t":165,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[82.991,82.991,100],"t":166,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[80.78,80.78,100],"t":167,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[78.785,78.785,100],"t":168,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[77.017,77.017,100],"t":169,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[75.458,75.458,100],"t":170,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[74.082,74.082,100],"t":171,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[72.861,72.861,100],"t":172,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[71.772,71.772,100],"t":173,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[70.794,70.794,100],"t":174,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[69.911,69.911,100],"t":175,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[69.111,69.111,100],"t":176,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[68.382,68.382,100],"t":177,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[67.715,67.715,100],"t":178,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[67.104,67.104,100],"t":179,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[66.542,66.542,100],"t":180,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[66.022,66.022,100],"t":181,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[65.542,65.542,100],"t":182,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[65.098,65.098,100],"t":183,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[64.685,64.685,100],"t":184,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[64.302,64.302,100],"t":185,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[63.947,63.947,100],"t":186,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[63.615,63.615,100],"t":187,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[63.306,63.306,100],"t":188,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[63.02,63.02,100],"t":189,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[62.751,62.751,100],"t":190,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[62.503,62.503,100],"t":191,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[62.271,62.271,100],"t":192,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[62.055,62.055,100],"t":193,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[61.853,61.853,100],"t":194,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[61.665,61.665,100],"t":195,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[61.492,61.492,100],"t":196,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[61.331,61.331,100],"t":197,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[61.182,61.182,100],"t":198,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[61.044,61.044,100],"t":199,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[60.917,60.917,100],"t":200,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[60.801,60.801,100],"t":201,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[60.693,60.693,100],"t":202,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[60.595,60.595,100],"t":203,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[60.505,60.505,100],"t":204,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[60.424,60.424,100],"t":205,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[60.353,60.353,100],"t":206,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[60.288,60.288,100],"t":207,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[60.229,60.229,100],"t":208,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[60.18,60.18,100],"t":209,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[60.135,60.135,100],"t":210,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[60.098,60.098,100],"t":211,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[60.043,60.043,100],"t":213,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[60,60,100],"t":250,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[59.97,59.97,100],"t":251,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[59.871,59.871,100],"t":252,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[59.682,59.682,100],"t":253,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[59.344,59.344,100],"t":254,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[58.64,58.64,100],"t":255,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[57.839,57.839,100],"t":256,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[57.486,57.486,100],"t":257,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[57.281,57.281,100],"t":258,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[57.142,57.142,100],"t":259,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[57.04,57.04,100],"t":260,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[56.961,56.961,100],"t":261,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[56.898,56.898,100],"t":262,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[56.846,56.846,100],"t":263,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[56.804,56.804,100],"t":264,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[56.768,56.768,100],"t":265,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[56.713,56.713,100],"t":267,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[56.658,56.658,100],"t":270,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[56.602,56.602,100],"t":278,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[56.6,56.6,100],"t":380,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[56.989,56.989,100],"t":381,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[58.242,58.242,100],"t":382,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[60.657,60.657,100],"t":383,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[64.976,64.976,100],"t":384,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[73.96,73.96,100],"t":385,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[84.19,84.19,100],"t":386,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[88.692,88.692,100],"t":387,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[91.303,91.303,100],"t":388,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[93.076,93.076,100],"t":389,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[94.384,94.384,100],"t":390,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[95.394,95.394,100],"t":391,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[96.201,96.201,100],"t":392,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[96.859,96.859,100],"t":393,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[97.402,97.402,100],"t":394,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[97.857,97.857,100],"t":395,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[98.238,98.238,100],"t":396,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[98.562,98.562,100],"t":397,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[98.836,98.836,100],"t":398,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[99.068,99.068,100],"t":399,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[99.264,99.264,100],"t":400,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[99.429,99.429,100],"t":401,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[99.566,99.566,100],"t":402,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[99.681,99.681,100],"t":403,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[99.774,99.774,100],"t":404,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[99.849,99.849,100],"t":405,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[99.907,99.907,100],"t":406,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}}],"l":2}},"ao":0,"w":504,"h":315,"ip":0,"op":511,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":8,"ty":4,"nm":".onSecondaryFixedVariant","cl":"onSecondaryFixedVariant","parent":7,"sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":268,"s":[0]},{"t":277,"s":[100]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[252,-30.035,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[176.678,176.678,100],"ix":6,"l":2}},"ao":0,"shapes":[{"d":1,"ty":"el","s":{"a":0,"k":[18,18],"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.325490196078,0.270588235294,0.164705882353,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false}],"ip":0,"op":511,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":9,"ty":4,"nm":"second Tasks Zoom back","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[252,157.5,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":1,"k":[{"i":{"x":[0.8,0.8,0.8],"y":[0.15,0.15,1]},"o":{"x":[0.3,0.3,0.3],"y":[0,0,0]},"t":380,"s":[100,100,100]},{"i":{"x":[0.1,0.1,0.1],"y":[1,1,1]},"o":{"x":[0.05,0.05,0.05],"y":[0.7,0.7,0]},"t":385,"s":[98,98,100]},{"t":410,"s":[95,95,100]}],"ix":6,"l":2}},"ao":0,"shapes":[],"ip":0,"op":511,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":10,"ty":4,"nm":"Null :: Reposition Side Task","parent":9,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.8,"y":0.15},"o":{"x":0.3,"y":0},"t":250,"s":[-318.4,-38,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.1,"y":1},"o":{"x":0.05,"y":0.7},"t":255,"s":[-277.34,-48.1,0],"to":[0,0,0],"ti":[0,0,0]},{"t":280,"s":[-215.75,-63.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":[],"ip":197,"op":511,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":11,"ty":4,"nm":".onSecondaryFixedVariant","cl":"onSecondaryFixedVariant","parent":12,"sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":268,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":277,"s":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":383,"s":[100]},{"t":392,"s":[0]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"k":[{"s":[0,-111.72,0],"t":250,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0,-111.197,0],"t":251,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0,-109.514,0],"t":252,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0,-106.268,0],"t":253,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0,-100.462,0],"t":254,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0,-88.39,0],"t":255,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0,-74.643,0],"t":256,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0,-68.591,0],"t":257,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0,-65.083,0],"t":258,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0,-62.7,0],"t":259,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0,-60.943,0],"t":260,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0,-59.584,0],"t":261,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0,-58.5,0],"t":262,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0,-57.616,0],"t":263,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0,-56.886,0],"t":264,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0,-56.276,0],"t":265,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0,-55.762,0],"t":266,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0,-55.328,0],"t":267,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0,-54.96,0],"t":268,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0,-54.648,0],"t":269,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0,-54.385,0],"t":270,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0,-54.163,0],"t":271,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0,-53.977,0],"t":272,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0,-53.824,0],"t":273,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0,-53.698,0],"t":274,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0,-53.598,0],"t":275,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0,-53.521,0],"t":276,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0,-53.463,0],"t":277,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0,-53.424,0],"t":278,"i":{"x":1,"y":1},"o":{"x":0,"y":0}}],"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":[{"d":1,"ty":"el","s":{"a":0,"k":[18,18],"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.325490196078,0.270588235294,0.164705882353,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false}],"ip":197,"op":511,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":12,"ty":4,"nm":".onSecondaryFixedVariant","cl":"onSecondaryFixedVariant","parent":10,"sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":383,"s":[100]},{"t":392,"s":[0]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.1,"y":1},"o":{"x":0.05,"y":0.963},"t":217,"s":[-84.8,0,0],"to":[0,0,0],"ti":[0,0,0]},{"t":250,"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,"shapes":[{"ty":"rc","d":1,"s":{"a":1,"k":[{"i":{"x":[0.8,0.8],"y":[0.15,0.15]},"o":{"x":[0.3,0.3],"y":[0,0]},"t":250,"s":[302.4,189]},{"i":{"x":[0.1,0.1],"y":[1,1]},"o":{"x":[0.05,0.05],"y":[0.7,0.7]},"t":255,"s":[227.56,142.34]},{"t":280,"s":[115.3,72.35]}],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":1,"k":[{"i":{"x":[0.8],"y":[0.15]},"o":{"x":[0.3],"y":[0]},"t":250,"s":[14.6]},{"i":{"x":[0.1],"y":[1]},"o":{"x":[0.05],"y":[0.7]},"t":255,"s":[14.272]},{"t":280,"s":[13.78]}],"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[0.32549020648,0.270588248968,0.164705887437,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false}],"ip":197,"op":511,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":13,"ty":4,"nm":".onSecondaryFixedVariant","cl":"onSecondaryFixedVariant","parent":14,"sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":268,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":277,"s":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":383,"s":[100]},{"t":392,"s":[0]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"k":[{"s":[0,-53.175,0],"t":197,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0,-53.175,0],"t":510,"i":{"x":1,"y":1},"o":{"x":0,"y":0}}],"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":[{"d":1,"ty":"el","s":{"a":0,"k":[18,18],"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.325490196078,0.270588235294,0.164705882353,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false}],"ip":197,"op":511,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":14,"ty":4,"nm":".onSecondaryFixedVariant","cl":"onSecondaryFixedVariant","parent":9,"sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":383,"s":[100]},{"t":392,"s":[0]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.8,"y":0.15},"o":{"x":0.3,"y":0},"t":250,"s":[-411.95,20.325,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.1,"y":1},"o":{"x":0.05,"y":0.7},"t":255,"s":[-333.47,29.183,0],"to":[0,0,0],"ti":[0,0,0]},{"t":280,"s":[-215.75,42.47,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":"rc","d":1,"s":{"a":0,"k":[115.3,72.35],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":13.78,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[0.32549020648,0.270588248968,0.164705887437,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false}],"ip":197,"op":511,"st":0,"ct":1,"bm":0}]},{"id":"comp_1","nm":"Taskbar Lofi","fr":60,"layers":[{"ddd":0,"ind":2,"ty":4,"nm":".onSecondaryFixedVariant","cl":"onSecondaryFixedVariant","parent":9,"sr":1,"ks":{"o":{"k":[{"s":[0],"t":161,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[54.85],"t":162,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[100],"t":163,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[100],"t":384,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[0],"t":386,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}}]},"r":{"a":0,"k":0,"ix":10},"p":{"k":[{"s":[51.5,0,0],"t":155,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[51.652,0,0],"t":156,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[52.136,0,0],"t":157,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[53.013,0,0],"t":158,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[54.449,0,0],"t":159,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[56.806,0,0],"t":160,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[61.3,0,0],"t":161,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[66.437,0,0],"t":162,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[68.94,0,0],"t":163,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[70.432,0,0],"t":164,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[71.462,0,0],"t":165,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[72.229,0,0],"t":166,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[72.83,0,0],"t":167,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[73.314,0,0],"t":168,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[73.714,0,0],"t":169,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[74.048,0,0],"t":170,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[74.334,0,0],"t":171,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[74.578,0,0],"t":172,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[74.789,0,0],"t":173,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[74.971,0,0],"t":174,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[75.131,0,0],"t":175,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[75.269,0,0],"t":176,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[75.389,0,0],"t":177,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[75.493,0,0],"t":178,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[75.584,0,0],"t":179,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[75.663,0,0],"t":180,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[75.731,0,0],"t":181,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[75.789,0,0],"t":182,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[75.839,0,0],"t":183,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[75.915,0,0],"t":185,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[75.982,0,0],"t":188,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[76,0,0],"t":380,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[75.779,0,0],"t":381,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[75.066,0,0],"t":382,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[73.709,0,0],"t":383,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[71.271,0,0],"t":384,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[66.2,0,0],"t":385,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[60.425,0,0],"t":386,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[57.886,0,0],"t":387,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[56.41,0,0],"t":388,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[55.409,0,0],"t":389,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[54.67,0,0],"t":390,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[54.1,0,0],"t":391,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[53.646,0,0],"t":392,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[53.275,0,0],"t":393,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[52.968,0,0],"t":394,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[52.711,0,0],"t":395,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[52.495,0,0],"t":396,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[52.312,0,0],"t":397,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[52.157,0,0],"t":398,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[52.026,0,0],"t":399,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[51.916,0,0],"t":400,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[51.822,0,0],"t":401,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[51.745,0,0],"t":402,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[51.68,0,0],"t":403,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[51.628,0,0],"t":404,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[51.585,0,0],"t":405,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[51.552,0,0],"t":406,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[51.501,0,0],"t":409,"i":{"x":1,"y":1},"o":{"x":0,"y":0}}],"l":2},"a":{"a":0,"k":[167,15,0],"ix":1,"l":2},"s":{"k":[{"s":[50,50,100],"t":155,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[50.309,50.309,100],"t":156,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[51.284,51.284,100],"t":157,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[53.079,53.079,100],"t":158,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[56.019,56.019,100],"t":159,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[60.828,60.828,100],"t":160,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[70,70,100],"t":161,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[80.485,80.485,100],"t":162,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[85.597,85.597,100],"t":163,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[88.641,88.641,100],"t":164,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[90.739,90.739,100],"t":165,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[92.305,92.305,100],"t":166,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[93.53,93.53,100],"t":167,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[94.518,94.518,100],"t":168,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[95.335,95.335,100],"t":169,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[96.021,96.021,100],"t":170,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[96.603,96.603,100],"t":171,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[97.101,97.101,100],"t":172,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[97.531,97.531,100],"t":173,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[97.902,97.902,100],"t":174,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[98.226,98.226,100],"t":175,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[98.507,98.507,100],"t":176,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[98.753,98.753,100],"t":177,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[98.966,98.966,100],"t":178,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[99.152,99.152,100],"t":179,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[99.313,99.313,100],"t":180,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[99.451,99.451,100],"t":181,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[99.57,99.57,100],"t":182,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[99.671,99.671,100],"t":183,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[99.756,99.756,100],"t":184,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[99.826,99.826,100],"t":185,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[99.883,99.883,100],"t":186,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[99.982,99.982,100],"t":189,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[100,100,100],"t":380,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[99.552,99.552,100],"t":381,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[98.109,98.109,100],"t":382,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[95.326,95.326,100],"t":383,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[90.35,90.35,100],"t":384,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[80,80,100],"t":385,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[68.215,68.215,100],"t":386,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[63.027,63.027,100],"t":387,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[60.02,60.02,100],"t":388,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[57.977,57.977,100],"t":389,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[56.47,56.47,100],"t":390,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[55.306,55.306,100],"t":391,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[54.377,54.377,100],"t":392,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[53.618,53.618,100],"t":393,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[52.993,52.993,100],"t":394,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[52.469,52.469,100],"t":395,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[52.03,52.03,100],"t":396,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[51.657,51.657,100],"t":397,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[51.341,51.341,100],"t":398,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[51.074,51.074,100],"t":399,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[50.848,50.848,100],"t":400,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[50.658,50.658,100],"t":401,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[50.5,50.5,100],"t":402,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[50.368,50.368,100],"t":403,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[50.26,50.26,100],"t":404,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[50.174,50.174,100],"t":405,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[50.107,50.107,100],"t":406,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[50.059,50.059,100],"t":407,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[50.024,50.024,100],"t":408,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}}],"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[18,18],"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.32549020648,0.270588248968,0.164705887437,1],"ix":4},"o":{"a":0,"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 7511","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tr","p":{"a":0,"k":[167,15],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"app - 5","np":1,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":3,"ty":4,"nm":".onSecondaryFixedVariant","cl":"onSecondaryFixedVariant","sr":1,"ks":{"o":{"k":[{"s":[0],"t":161,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[54.85],"t":162,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[100],"t":163,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[100],"t":384,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[0],"t":386,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}}]},"r":{"a":0,"k":0,"ix":10},"p":{"k":[{"s":[123.341,15,0],"t":156,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[123.654,15,0],"t":157,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[124.223,15,0],"t":158,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[125.146,15,0],"t":159,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[126.662,15,0],"t":160,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[129.549,15,0],"t":161,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[132.838,15,0],"t":162,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[134.455,15,0],"t":163,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[135.421,15,0],"t":164,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[136.083,15,0],"t":165,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[136.576,15,0],"t":166,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[136.962,15,0],"t":167,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[137.272,15,0],"t":168,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[137.528,15,0],"t":169,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[137.742,15,0],"t":170,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[137.924,15,0],"t":171,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[138.08,15,0],"t":172,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[138.216,15,0],"t":173,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[138.334,15,0],"t":174,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[138.437,15,0],"t":175,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[138.527,15,0],"t":176,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[138.606,15,0],"t":177,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[138.734,15,0],"t":179,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[138.869,15,0],"t":182,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[138.864,15,0],"t":381,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[138.402,15,0],"t":382,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[137.527,15,0],"t":383,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[135.96,15,0],"t":384,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[132.701,15,0],"t":385,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[129.002,15,0],"t":386,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[127.358,15,0],"t":387,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[126.406,15,0],"t":388,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[125.763,15,0],"t":389,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[125.288,15,0],"t":390,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[124.923,15,0],"t":391,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[124.633,15,0],"t":392,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[124.396,15,0],"t":393,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[124.199,15,0],"t":394,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[124.034,15,0],"t":395,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[123.895,15,0],"t":396,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[123.776,15,0],"t":397,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[123.675,15,0],"t":398,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[123.589,15,0],"t":399,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[123.516,15,0],"t":400,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[123.403,15,0],"t":402,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[123.299,15,0],"t":405,"i":{"x":1,"y":1},"o":{"x":0,"y":0}}],"l":2},"a":{"a":0,"k":[139,15,0],"ix":1,"l":2},"s":{"k":[{"s":[50,50,100],"t":155,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[50.309,50.309,100],"t":156,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[51.284,51.284,100],"t":157,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[53.079,53.079,100],"t":158,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[56.019,56.019,100],"t":159,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[60.828,60.828,100],"t":160,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[70,70,100],"t":161,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[80.485,80.485,100],"t":162,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[85.597,85.597,100],"t":163,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[88.641,88.641,100],"t":164,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[90.739,90.739,100],"t":165,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[92.305,92.305,100],"t":166,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[93.53,93.53,100],"t":167,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[94.518,94.518,100],"t":168,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[95.335,95.335,100],"t":169,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[96.021,96.021,100],"t":170,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[96.603,96.603,100],"t":171,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[97.101,97.101,100],"t":172,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[97.531,97.531,100],"t":173,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[97.902,97.902,100],"t":174,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[98.226,98.226,100],"t":175,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[98.507,98.507,100],"t":176,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[98.753,98.753,100],"t":177,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[98.966,98.966,100],"t":178,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[99.152,99.152,100],"t":179,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[99.313,99.313,100],"t":180,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[99.451,99.451,100],"t":181,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[99.57,99.57,100],"t":182,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[99.671,99.671,100],"t":183,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[99.756,99.756,100],"t":184,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[99.826,99.826,100],"t":185,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[99.883,99.883,100],"t":186,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[99.982,99.982,100],"t":189,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[100,100,100],"t":380,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[99.552,99.552,100],"t":381,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[98.109,98.109,100],"t":382,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[95.326,95.326,100],"t":383,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[90.35,90.35,100],"t":384,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[80,80,100],"t":385,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[68.215,68.215,100],"t":386,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[63.027,63.027,100],"t":387,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[60.02,60.02,100],"t":388,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[57.977,57.977,100],"t":389,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[56.47,56.47,100],"t":390,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[55.306,55.306,100],"t":391,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[54.377,54.377,100],"t":392,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[53.618,53.618,100],"t":393,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[52.993,52.993,100],"t":394,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[52.469,52.469,100],"t":395,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[52.03,52.03,100],"t":396,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[51.657,51.657,100],"t":397,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[51.341,51.341,100],"t":398,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[51.074,51.074,100],"t":399,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[50.848,50.848,100],"t":400,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[50.658,50.658,100],"t":401,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[50.5,50.5,100],"t":402,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[50.368,50.368,100],"t":403,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[50.26,50.26,100],"t":404,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[50.174,50.174,100],"t":405,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[50.107,50.107,100],"t":406,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[50.059,50.059,100],"t":407,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[50.024,50.024,100],"t":408,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}}],"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[18,18],"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.32549020648,0.270588248968,0.164705887437,1],"ix":4},"o":{"a":0,"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 7508","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tr","p":{"a":0,"k":[139,15],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"app - 4","np":1,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":4,"ty":4,"nm":".onSecondaryFixedVariant","cl":"onSecondaryFixedVariant","sr":1,"ks":{"o":{"k":[{"s":[0],"t":161,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[54.85],"t":162,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[100],"t":163,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[100],"t":384,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[0],"t":386,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}}]},"r":{"a":0,"k":0,"ix":10},"p":{"k":[{"s":[104.041,15,0],"t":156,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[104.182,15,0],"t":157,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[104.436,15,0],"t":158,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[104.844,15,0],"t":159,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[105.517,15,0],"t":160,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[106.808,15,0],"t":161,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[108.265,15,0],"t":162,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[108.981,15,0],"t":163,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[109.409,15,0],"t":164,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[109.703,15,0],"t":165,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[109.923,15,0],"t":166,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[110.092,15,0],"t":167,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[110.228,15,0],"t":168,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[110.341,15,0],"t":169,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[110.436,15,0],"t":170,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[110.517,15,0],"t":171,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[110.587,15,0],"t":172,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[110.648,15,0],"t":173,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[110.746,15,0],"t":175,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[110.853,15,0],"t":178,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[110.956,15,0],"t":183,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[110.938,15,0],"t":381,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[110.73,15,0],"t":382,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[110.34,15,0],"t":383,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[109.649,15,0],"t":384,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[108.197,15,0],"t":385,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[106.559,15,0],"t":386,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[105.828,15,0],"t":387,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[105.403,15,0],"t":388,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[105.117,15,0],"t":389,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[104.906,15,0],"t":390,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[104.745,15,0],"t":391,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[104.616,15,0],"t":392,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[104.511,15,0],"t":393,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[104.424,15,0],"t":394,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[104.35,15,0],"t":395,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[104.288,15,0],"t":396,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[104.19,15,0],"t":398,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[104.091,15,0],"t":401,"i":{"x":1,"y":1},"o":{"x":0,"y":0}}],"l":2},"a":{"a":0,"k":[111,15,0],"ix":1,"l":2},"s":{"k":[{"s":[50,50,100],"t":155,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[50.309,50.309,100],"t":156,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[51.284,51.284,100],"t":157,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[53.079,53.079,100],"t":158,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[56.019,56.019,100],"t":159,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[60.828,60.828,100],"t":160,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[70,70,100],"t":161,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[80.485,80.485,100],"t":162,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[85.597,85.597,100],"t":163,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[88.641,88.641,100],"t":164,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[90.739,90.739,100],"t":165,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[92.305,92.305,100],"t":166,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[93.53,93.53,100],"t":167,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[94.518,94.518,100],"t":168,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[95.335,95.335,100],"t":169,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[96.021,96.021,100],"t":170,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[96.603,96.603,100],"t":171,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[97.101,97.101,100],"t":172,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[97.531,97.531,100],"t":173,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[97.902,97.902,100],"t":174,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[98.226,98.226,100],"t":175,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[98.507,98.507,100],"t":176,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[98.753,98.753,100],"t":177,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[98.966,98.966,100],"t":178,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[99.152,99.152,100],"t":179,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[99.313,99.313,100],"t":180,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[99.451,99.451,100],"t":181,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[99.57,99.57,100],"t":182,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[99.671,99.671,100],"t":183,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[99.756,99.756,100],"t":184,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[99.826,99.826,100],"t":185,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[99.883,99.883,100],"t":186,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[99.982,99.982,100],"t":189,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[100,100,100],"t":380,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[99.552,99.552,100],"t":381,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[98.109,98.109,100],"t":382,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[95.326,95.326,100],"t":383,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[90.35,90.35,100],"t":384,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[80,80,100],"t":385,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[68.215,68.215,100],"t":386,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[63.027,63.027,100],"t":387,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[60.02,60.02,100],"t":388,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[57.977,57.977,100],"t":389,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[56.47,56.47,100],"t":390,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[55.306,55.306,100],"t":391,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[54.377,54.377,100],"t":392,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[53.618,53.618,100],"t":393,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[52.993,52.993,100],"t":394,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[52.469,52.469,100],"t":395,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[52.03,52.03,100],"t":396,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[51.657,51.657,100],"t":397,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[51.341,51.341,100],"t":398,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[51.074,51.074,100],"t":399,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[50.848,50.848,100],"t":400,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[50.658,50.658,100],"t":401,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[50.5,50.5,100],"t":402,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[50.368,50.368,100],"t":403,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[50.26,50.26,100],"t":404,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[50.174,50.174,100],"t":405,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[50.107,50.107,100],"t":406,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[50.059,50.059,100],"t":407,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[50.024,50.024,100],"t":408,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}}],"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[18,18],"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.32549020648,0.270588248968,0.164705887437,1],"ix":4},"o":{"a":0,"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 7507","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tr","p":{"a":0,"k":[111,15],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"app - 3","np":1,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":5,"ty":4,"nm":".onSecondaryFixedVariant","cl":"onSecondaryFixedVariant","sr":1,"ks":{"o":{"k":[{"s":[0],"t":161,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[54.85],"t":162,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[100],"t":163,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[100],"t":384,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[0],"t":386,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}}]},"r":{"a":0,"k":0,"ix":10},"p":{"k":[{"s":[84.704,15,0],"t":157,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[84.639,15,0],"t":158,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[84.537,15,0],"t":159,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[84.371,15,0],"t":160,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[84.048,15,0],"t":161,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[83.684,15,0],"t":162,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[83.505,15,0],"t":163,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[83.398,15,0],"t":164,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[83.324,15,0],"t":165,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[83.271,15,0],"t":166,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[83.195,15,0],"t":168,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[83.123,15,0],"t":171,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[83.045,15,0],"t":177,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[83.068,15,0],"t":382,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[83.166,15,0],"t":383,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[83.338,15,0],"t":384,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[83.702,15,0],"t":385,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[84.112,15,0],"t":386,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[84.294,15,0],"t":387,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[84.399,15,0],"t":388,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[84.47,15,0],"t":389,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[84.521,15,0],"t":390,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[84.593,15,0],"t":392,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[84.676,15,0],"t":396,"i":{"x":1,"y":1},"o":{"x":0,"y":0}}],"l":2},"a":{"a":0,"k":[83,15,0],"ix":1,"l":2},"s":{"k":[{"s":[50,50,100],"t":155,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[50.309,50.309,100],"t":156,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[51.284,51.284,100],"t":157,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[53.079,53.079,100],"t":158,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[56.019,56.019,100],"t":159,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[60.828,60.828,100],"t":160,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[70,70,100],"t":161,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[80.485,80.485,100],"t":162,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[85.597,85.597,100],"t":163,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[88.641,88.641,100],"t":164,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[90.739,90.739,100],"t":165,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[92.305,92.305,100],"t":166,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[93.53,93.53,100],"t":167,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[94.518,94.518,100],"t":168,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[95.335,95.335,100],"t":169,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[96.021,96.021,100],"t":170,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[96.603,96.603,100],"t":171,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[97.101,97.101,100],"t":172,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[97.531,97.531,100],"t":173,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[97.902,97.902,100],"t":174,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[98.226,98.226,100],"t":175,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[98.507,98.507,100],"t":176,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[98.753,98.753,100],"t":177,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[98.966,98.966,100],"t":178,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[99.152,99.152,100],"t":179,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[99.313,99.313,100],"t":180,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[99.451,99.451,100],"t":181,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[99.57,99.57,100],"t":182,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[99.671,99.671,100],"t":183,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[99.756,99.756,100],"t":184,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[99.826,99.826,100],"t":185,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[99.883,99.883,100],"t":186,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[99.982,99.982,100],"t":189,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[100,100,100],"t":380,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[99.552,99.552,100],"t":381,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[98.109,98.109,100],"t":382,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[95.326,95.326,100],"t":383,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[90.35,90.35,100],"t":384,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[80,80,100],"t":385,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[68.215,68.215,100],"t":386,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[63.027,63.027,100],"t":387,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[60.02,60.02,100],"t":388,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[57.977,57.977,100],"t":389,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[56.47,56.47,100],"t":390,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[55.306,55.306,100],"t":391,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[54.377,54.377,100],"t":392,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[53.618,53.618,100],"t":393,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[52.993,52.993,100],"t":394,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[52.469,52.469,100],"t":395,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[52.03,52.03,100],"t":396,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[51.657,51.657,100],"t":397,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[51.341,51.341,100],"t":398,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[51.074,51.074,100],"t":399,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[50.848,50.848,100],"t":400,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[50.658,50.658,100],"t":401,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[50.5,50.5,100],"t":402,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[50.368,50.368,100],"t":403,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[50.26,50.26,100],"t":404,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[50.174,50.174,100],"t":405,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[50.107,50.107,100],"t":406,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[50.059,50.059,100],"t":407,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[50.024,50.024,100],"t":408,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}}],"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[18,18],"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.32549020648,0.270588248968,0.164705887437,1],"ix":4},"o":{"a":0,"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 7506","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tr","p":{"a":0,"k":[83,15],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"app - 2","np":1,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":6,"ty":4,"nm":".onSecondaryFixedVariant","cl":"onSecondaryFixedVariant","sr":1,"ks":{"o":{"k":[{"s":[0],"t":161,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[54.85],"t":162,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[100],"t":163,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[100],"t":384,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[0],"t":386,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}}]},"r":{"a":0,"k":0,"ix":10},"p":{"k":[{"s":[65.439,15,0],"t":156,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[65.229,15,0],"t":157,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[64.849,15,0],"t":158,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[64.236,15,0],"t":159,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[63.226,15,0],"t":160,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[61.296,15,0],"t":161,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[59.111,15,0],"t":162,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[58.033,15,0],"t":163,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[57.388,15,0],"t":164,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[56.945,15,0],"t":165,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[56.616,15,0],"t":166,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[56.359,15,0],"t":167,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[56.154,15,0],"t":168,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[55.984,15,0],"t":169,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[55.842,15,0],"t":170,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[55.72,15,0],"t":171,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[55.616,15,0],"t":172,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[55.525,15,0],"t":173,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[55.447,15,0],"t":174,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[55.378,15,0],"t":175,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[55.317,15,0],"t":176,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[55.265,15,0],"t":177,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[55.219,15,0],"t":178,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[55.178,15,0],"t":179,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[55.143,15,0],"t":180,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[55.113,15,0],"t":181,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[55.066,15,0],"t":183,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[55.012,15,0],"t":187,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[55,15,0],"t":380,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[55.092,15,0],"t":381,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[55.403,15,0],"t":382,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[55.986,15,0],"t":383,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[57.027,15,0],"t":384,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[59.212,15,0],"t":385,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[61.67,15,0],"t":386,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[62.762,15,0],"t":387,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[63.396,15,0],"t":388,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[63.825,15,0],"t":389,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[64.141,15,0],"t":390,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[64.385,15,0],"t":391,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[64.578,15,0],"t":392,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[64.736,15,0],"t":393,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[64.867,15,0],"t":394,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[64.977,15,0],"t":395,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[65.07,15,0],"t":396,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[65.149,15,0],"t":397,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[65.217,15,0],"t":398,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[65.274,15,0],"t":399,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[65.323,15,0],"t":400,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[65.364,15,0],"t":401,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[65.426,15,0],"t":403,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[65.491,15,0],"t":407,"i":{"x":1,"y":1},"o":{"x":0,"y":0}}],"l":2},"a":{"a":0,"k":[55,15,0],"ix":1,"l":2},"s":{"k":[{"s":[50,50,100],"t":155,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[50.309,50.309,100],"t":156,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[51.284,51.284,100],"t":157,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[53.079,53.079,100],"t":158,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[56.019,56.019,100],"t":159,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[60.828,60.828,100],"t":160,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[70,70,100],"t":161,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[80.485,80.485,100],"t":162,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[85.597,85.597,100],"t":163,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[88.641,88.641,100],"t":164,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[90.739,90.739,100],"t":165,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[92.305,92.305,100],"t":166,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[93.53,93.53,100],"t":167,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[94.518,94.518,100],"t":168,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[95.335,95.335,100],"t":169,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[96.021,96.021,100],"t":170,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[96.603,96.603,100],"t":171,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[97.101,97.101,100],"t":172,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[97.531,97.531,100],"t":173,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[97.902,97.902,100],"t":174,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[98.226,98.226,100],"t":175,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[98.507,98.507,100],"t":176,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[98.753,98.753,100],"t":177,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[98.966,98.966,100],"t":178,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[99.152,99.152,100],"t":179,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[99.313,99.313,100],"t":180,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[99.451,99.451,100],"t":181,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[99.57,99.57,100],"t":182,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[99.671,99.671,100],"t":183,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[99.756,99.756,100],"t":184,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[99.826,99.826,100],"t":185,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[99.883,99.883,100],"t":186,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[99.982,99.982,100],"t":189,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[100,100,100],"t":380,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[99.552,99.552,100],"t":381,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[98.109,98.109,100],"t":382,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[95.326,95.326,100],"t":383,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[90.35,90.35,100],"t":384,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[80,80,100],"t":385,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[68.215,68.215,100],"t":386,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[63.027,63.027,100],"t":387,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[60.02,60.02,100],"t":388,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[57.977,57.977,100],"t":389,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[56.47,56.47,100],"t":390,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[55.306,55.306,100],"t":391,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[54.377,54.377,100],"t":392,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[53.618,53.618,100],"t":393,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[52.993,52.993,100],"t":394,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[52.469,52.469,100],"t":395,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[52.03,52.03,100],"t":396,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[51.657,51.657,100],"t":397,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[51.341,51.341,100],"t":398,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[51.074,51.074,100],"t":399,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[50.848,50.848,100],"t":400,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[50.658,50.658,100],"t":401,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[50.5,50.5,100],"t":402,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[50.368,50.368,100],"t":403,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[50.26,50.26,100],"t":404,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[50.174,50.174,100],"t":405,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[50.107,50.107,100],"t":406,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[50.059,50.059,100],"t":407,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[50.024,50.024,100],"t":408,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}}],"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[18,18],"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.32549020648,0.270588248968,0.164705887437,1],"ix":4},"o":{"a":0,"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 7505","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tr","p":{"a":0,"k":[55,15],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"app - 1","np":1,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":7,"ty":4,"nm":".onSecondaryFixedVariant","cl":"onSecondaryFixedVariant","sr":1,"ks":{"o":{"k":[{"s":[0],"t":161,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[54.85],"t":162,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[100],"t":163,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[100],"t":384,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[0],"t":386,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}}]},"r":{"a":0,"k":90,"ix":10},"p":{"k":[{"s":[51,15,0],"t":155,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[50.913,15,0],"t":156,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[50.615,15,0],"t":157,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[50.073,15,0],"t":158,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[49.194,15,0],"t":159,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[47.751,15,0],"t":160,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[45.001,15,0],"t":161,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[41.869,15,0],"t":162,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[40.328,15,0],"t":163,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[39.409,15,0],"t":164,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[38.778,15,0],"t":165,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[38.309,15,0],"t":166,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[37.941,15,0],"t":167,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[37.645,15,0],"t":168,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[37.402,15,0],"t":169,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[37.199,15,0],"t":170,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[37.025,15,0],"t":171,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[36.876,15,0],"t":172,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[36.747,15,0],"t":173,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[36.635,15,0],"t":174,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[36.536,15,0],"t":175,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[36.451,15,0],"t":176,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[36.376,15,0],"t":177,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[36.31,15,0],"t":178,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[36.253,15,0],"t":179,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[36.203,15,0],"t":180,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[36.161,15,0],"t":181,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[36.124,15,0],"t":182,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[36.093,15,0],"t":183,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[36.068,15,0],"t":184,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[36.047,15,0],"t":185,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[36.017,15,0],"t":187,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[36,15,0],"t":380,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[36.129,15,0],"t":381,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[36.569,15,0],"t":382,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[37.403,15,0],"t":383,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[38.895,15,0],"t":384,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[41.999,15,0],"t":385,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[45.522,15,0],"t":386,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[47.088,15,0],"t":387,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[47.994,15,0],"t":388,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[48.607,15,0],"t":389,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[49.059,15,0],"t":390,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[49.407,15,0],"t":391,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[49.683,15,0],"t":392,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[49.909,15,0],"t":393,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[50.096,15,0],"t":394,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[50.253,15,0],"t":395,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[50.386,15,0],"t":396,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[50.499,15,0],"t":397,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[50.596,15,0],"t":398,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[50.677,15,0],"t":399,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[50.747,15,0],"t":400,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[50.806,15,0],"t":401,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[50.854,15,0],"t":402,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[50.895,15,0],"t":403,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[50.927,15,0],"t":404,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[50.973,15,0],"t":406,"i":{"x":1,"y":1},"o":{"x":0,"y":0}}],"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":{"k":[{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-2,-0.5],[2,-0.5]],"c":false}],"t":155,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-2.019,-0.5],[2.019,-0.5]],"c":false}],"t":156,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-2.077,-0.5],[2.077,-0.5]],"c":false}],"t":157,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-2.185,-0.5],[2.185,-0.5]],"c":false}],"t":158,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-2.361,-0.5],[2.361,-0.5]],"c":false}],"t":159,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-2.65,-0.5],[2.65,-0.5]],"c":false}],"t":160,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-3.2,-0.5],[3.2,-0.5]],"c":false}],"t":161,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-3.829,-0.5],[3.829,-0.5]],"c":false}],"t":162,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-4.136,-0.5],[4.136,-0.5]],"c":false}],"t":163,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-4.318,-0.5],[4.318,-0.5]],"c":false}],"t":164,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-4.444,-0.5],[4.444,-0.5]],"c":false}],"t":165,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-4.538,-0.5],[4.538,-0.5]],"c":false}],"t":166,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-4.612,-0.5],[4.612,-0.5]],"c":false}],"t":167,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-4.671,-0.5],[4.671,-0.5]],"c":false}],"t":168,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-4.72,-0.5],[4.72,-0.5]],"c":false}],"t":169,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-4.761,-0.5],[4.761,-0.5]],"c":false}],"t":170,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-4.796,-0.5],[4.796,-0.5]],"c":false}],"t":171,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-4.826,-0.5],[4.826,-0.5]],"c":false}],"t":172,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-4.852,-0.5],[4.852,-0.5]],"c":false}],"t":173,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-4.874,-0.5],[4.874,-0.5]],"c":false}],"t":174,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-4.894,-0.5],[4.894,-0.5]],"c":false}],"t":175,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-4.91,-0.5],[4.91,-0.5]],"c":false}],"t":176,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-4.925,-0.5],[4.925,-0.5]],"c":false}],"t":177,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-4.938,-0.5],[4.938,-0.5]],"c":false}],"t":178,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-4.949,-0.5],[4.949,-0.5]],"c":false}],"t":179,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-4.959,-0.5],[4.959,-0.5]],"c":false}],"t":180,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-4.967,-0.5],[4.967,-0.5]],"c":false}],"t":181,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-4.974,-0.5],[4.974,-0.5]],"c":false}],"t":182,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-4.98,-0.5],[4.98,-0.5]],"c":false}],"t":183,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-4.99,-0.5],[4.99,-0.5]],"c":false}],"t":185,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-4.996,-0.5],[4.996,-0.5]],"c":false}],"t":187,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-5,-0.5],[5,-0.5]],"c":false}],"t":380,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-4.973,-0.5],[4.973,-0.5]],"c":false}],"t":381,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-4.887,-0.5],[4.887,-0.5]],"c":false}],"t":382,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-4.72,-0.5],[4.72,-0.5]],"c":false}],"t":383,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-4.421,-0.5],[4.421,-0.5]],"c":false}],"t":384,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-3.8,-0.5],[3.8,-0.5]],"c":false}],"t":385,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-3.093,-0.5],[3.093,-0.5]],"c":false}],"t":386,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-2.782,-0.5],[2.782,-0.5]],"c":false}],"t":387,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-2.601,-0.5],[2.601,-0.5]],"c":false}],"t":388,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-2.479,-0.5],[2.479,-0.5]],"c":false}],"t":389,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-2.388,-0.5],[2.388,-0.5]],"c":false}],"t":390,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-2.318,-0.5],[2.318,-0.5]],"c":false}],"t":391,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-2.263,-0.5],[2.263,-0.5]],"c":false}],"t":392,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-2.217,-0.5],[2.217,-0.5]],"c":false}],"t":393,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-2.18,-0.5],[2.18,-0.5]],"c":false}],"t":394,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-2.148,-0.5],[2.148,-0.5]],"c":false}],"t":395,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-2.122,-0.5],[2.122,-0.5]],"c":false}],"t":396,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-2.099,-0.5],[2.099,-0.5]],"c":false}],"t":397,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-2.081,-0.5],[2.081,-0.5]],"c":false}],"t":398,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-2.064,-0.5],[2.064,-0.5]],"c":false}],"t":399,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-2.051,-0.5],[2.051,-0.5]],"c":false}],"t":400,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-2.039,-0.5],[2.039,-0.5]],"c":false}],"t":401,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-2.03,-0.5],[2.03,-0.5]],"c":false}],"t":402,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-2.022,-0.5],[2.022,-0.5]],"c":false}],"t":403,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-2.01,-0.5],[2.01,-0.5]],"c":false}],"t":405,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-2.006,-0.5],[2.006,-0.5]],"c":false}],"t":406,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-2.004,-0.5],[2.004,-0.5]],"c":false}],"t":407,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-2.001,-0.5],[2.001,-0.5]],"c":false}],"t":408,"i":{"x":1,"y":1},"o":{"x":0,"y":0}}]},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.32549020648,0.270588248968,0.164705887437,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":1,"ix":5},"lc":2,"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":"divider","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":8,"ty":4,"nm":".onSecondaryFixedVariant","cl":"onSecondaryFixedVariant","parent":9,"sr":1,"ks":{"o":{"k":[{"s":[0],"t":161,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[54.85],"t":162,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[100],"t":163,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[100],"t":384,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[0],"t":386,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}}]},"r":{"a":0,"k":0,"ix":10},"p":{"k":[{"s":[-52.349,0.652,0],"t":155,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-52.453,0.652,0],"t":156,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-52.813,0.652,0],"t":157,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-53.464,0.652,0],"t":158,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-54.515,0.652,0],"t":159,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-56.247,0.652,0],"t":160,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-59.565,0.652,0],"t":161,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-63.323,0.652,0],"t":162,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-65.162,0.652,0],"t":163,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-66.258,0.652,0],"t":164,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-67.015,0.652,0],"t":165,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-67.578,0.652,0],"t":166,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-68.019,0.652,0],"t":167,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-68.375,0.652,0],"t":168,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-68.668,0.652,0],"t":169,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-68.914,0.652,0],"t":170,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-69.122,0.652,0],"t":171,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-69.301,0.652,0],"t":172,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-69.456,0.652,0],"t":173,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-69.59,0.652,0],"t":174,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-69.708,0.652,0],"t":175,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-69.81,0.652,0],"t":176,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-69.9,0.652,0],"t":177,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-69.978,0.652,0],"t":178,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-70.047,0.652,0],"t":179,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-70.106,0.652,0],"t":180,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-70.157,0.652,0],"t":181,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-70.2,0.652,0],"t":182,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-70.268,0.652,0],"t":184,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-70.328,0.652,0],"t":187,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-70.349,0.652,0],"t":380,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-70.193,0.652,0],"t":381,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-69.662,0.652,0],"t":382,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-68.662,0.652,0],"t":383,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-66.874,0.652,0],"t":384,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-63.132,0.652,0],"t":385,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-58.906,0.652,0],"t":386,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-57.04,0.652,0],"t":387,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-55.956,0.652,0],"t":388,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-55.22,0.652,0],"t":389,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-54.678,0.652,0],"t":390,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-54.259,0.652,0],"t":391,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-53.925,0.652,0],"t":392,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-53.654,0.652,0],"t":393,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-53.43,0.652,0],"t":394,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-53.241,0.652,0],"t":395,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-53.082,0.652,0],"t":396,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-52.947,0.652,0],"t":397,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-52.831,0.652,0],"t":398,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-52.734,0.652,0],"t":399,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-52.65,0.652,0],"t":400,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-52.58,0.652,0],"t":401,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-52.522,0.652,0],"t":402,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-52.474,0.652,0],"t":403,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-52.435,0.652,0],"t":404,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-52.404,0.652,0],"t":405,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-52.354,0.652,0],"t":408,"i":{"x":1,"y":1},"o":{"x":0,"y":0}}],"l":2},"a":{"a":0,"k":[6.826,6.826,0],"ix":1,"l":2},"s":{"k":[{"s":[50,50,100],"t":155,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[50.309,50.309,100],"t":156,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[51.284,51.284,100],"t":157,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[53.079,53.079,100],"t":158,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[56.019,56.019,100],"t":159,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[60.828,60.828,100],"t":160,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[70,70,100],"t":161,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[80.485,80.485,100],"t":162,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[85.597,85.597,100],"t":163,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[88.641,88.641,100],"t":164,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[90.739,90.739,100],"t":165,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[92.305,92.305,100],"t":166,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[93.53,93.53,100],"t":167,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[94.518,94.518,100],"t":168,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[95.335,95.335,100],"t":169,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[96.021,96.021,100],"t":170,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[96.603,96.603,100],"t":171,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[97.101,97.101,100],"t":172,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[97.531,97.531,100],"t":173,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[97.902,97.902,100],"t":174,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[98.226,98.226,100],"t":175,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[98.507,98.507,100],"t":176,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[98.753,98.753,100],"t":177,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[98.966,98.966,100],"t":178,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[99.152,99.152,100],"t":179,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[99.313,99.313,100],"t":180,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[99.451,99.451,100],"t":181,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[99.57,99.57,100],"t":182,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[99.671,99.671,100],"t":183,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[99.756,99.756,100],"t":184,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[99.826,99.826,100],"t":185,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[99.883,99.883,100],"t":186,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[99.982,99.982,100],"t":189,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[100,100,100],"t":380,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[99.552,99.552,100],"t":381,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[98.109,98.109,100],"t":382,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[95.326,95.326,100],"t":383,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[90.35,90.35,100],"t":384,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[80,80,100],"t":385,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[68.215,68.215,100],"t":386,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[63.027,63.027,100],"t":387,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[60.02,60.02,100],"t":388,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[57.977,57.977,100],"t":389,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[56.47,56.47,100],"t":390,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[55.306,55.306,100],"t":391,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[54.377,54.377,100],"t":392,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[53.618,53.618,100],"t":393,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[52.993,52.993,100],"t":394,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[52.469,52.469,100],"t":395,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[52.03,52.03,100],"t":396,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[51.657,51.657,100],"t":397,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[51.341,51.341,100],"t":398,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[51.074,51.074,100],"t":399,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[50.848,50.848,100],"t":400,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[50.658,50.658,100],"t":401,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[50.5,50.5,100],"t":402,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[50.368,50.368,100],"t":403,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[50.26,50.26,100],"t":404,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[50.174,50.174,100],"t":405,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[50.107,50.107,100],"t":406,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[50.059,50.059,100],"t":407,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[50.024,50.024,100],"t":408,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}}],"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-1.381,0],[0,1.381],[1.381,0],[0,-1.381]],"o":[[1.381,0],[0,-1.381],[-1.381,0],[0,1.381]],"v":[[0,2.5],[2.5,0],[0,-2.5],[-2.5,0]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.32549020648,0.270588248968,0.164705887437,1],"ix":4},"o":{"a":0,"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 12","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tr","p":{"a":0,"k":[2.5,9.501],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"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 12","np":1,"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":[[-1.381,0],[0,1.381],[1.381,0],[0,-1.381]],"o":[[1.381,0],[0,-1.381],[-1.381,0],[0,1.381]],"v":[[0,2.5],[2.5,0],[0,-2.5],[-2.5,0]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.32549020648,0.270588248968,0.164705887437,1],"ix":4},"o":{"a":0,"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 11","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tr","p":{"a":0,"k":[2.5,2.5],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 11","np":1,"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":[[-1.381,0],[0,1.381],[1.381,0],[0,-1.381]],"o":[[1.381,0],[0,-1.381],[-1.381,0],[0,1.381]],"v":[[0,2.5],[2.5,0],[0,-2.5],[-2.5,0]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.32549020648,0.270588248968,0.164705887437,1],"ix":4},"o":{"a":0,"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 5","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tr","p":{"a":0,"k":[9.5,2.5],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 5","np":1,"cix":2,"bm":0,"ix":3,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.185,0.148],[0,0],[0,0],[0,0],[-0.086,0.24],[0,0.271],[0.468,0.462],[0.671,0],[0.468,-0.468],[0,-0.671],[-0.462,-0.468],[-0.671,0],[-0.24,0.086]],"o":[[0,0],[0,0],[0,0],[0.148,-0.185],[0.086,-0.24],[0,-0.671],[-0.462,-0.468],[-0.671,0],[-0.462,0.462],[0,0.671],[0.468,0.462],[0.271,0],[0.24,-0.086]],"v":[[0.48,0.998],[2.809,3.326],[3.326,2.809],[0.998,0.48],[1.349,-0.157],[1.478,-0.924],[0.776,-2.624],[-0.924,-3.326],[-2.633,-2.624],[-3.326,-0.924],[-2.633,0.785],[-0.924,1.478],[-0.157,1.349]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":5,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ind":2,"ty":"sh","ix":3,"ks":{"a":0,"k":{"i":[[0.326,-0.326],[0.462,0],[0.326,0.32],[0,0.462],[-0.32,0.32],[-0.462,0],[-0.32,-0.326],[0,-0.462]],"o":[[-0.32,0.32],[-0.462,0],[-0.32,-0.326],[0,-0.462],[0.326,-0.326],[0.462,0],[0.326,0.32],[0,0.462]],"v":[[0.249,0.259],[-0.924,0.739],[-2.106,0.259],[-2.587,-0.924],[-2.106,-2.097],[-0.924,-2.587],[0.249,-2.097],[0.739,-0.924]],"c":true},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":5,"nm":"Merge Paths 2","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"st","c":{"a":0,"k":[0.32549020648,0.270588248968,0.164705887437,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0.4,"ix":5},"lc":1,"lj":2,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.32549020648,0.270588248968,0.164705887437,1],"ix":4},"o":{"a":0,"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":"icon","np":6,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tr","p":{"a":0,"k":[10.326,10.326],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"icon","np":1,"cix":2,"bm":0,"ix":4,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":9,"ty":4,"nm":".secondaryFixedDim","cl":"secondaryFixedDim","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[91,15,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":{"k":[{"s":[120,4],"t":155,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[120.383,4.161],"t":156,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[121.592,4.668],"t":157,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[123.818,5.601],"t":158,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[127.463,7.13],"t":159,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[133.427,9.631],"t":160,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[144.8,14.4],"t":161,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[157.801,19.852],"t":162,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[164.141,22.511],"t":163,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[167.915,24.093],"t":164,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[170.516,25.184],"t":165,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[172.458,25.999],"t":166,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[173.978,26.636],"t":167,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[175.203,27.15],"t":168,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[176.216,27.574],"t":169,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[177.065,27.931],"t":170,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[177.788,28.234],"t":171,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[178.406,28.493],"t":172,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[178.938,28.716],"t":173,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[179.399,28.909],"t":174,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[179.8,29.078],"t":175,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[180.149,29.224],"t":176,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[180.454,29.352],"t":177,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[180.718,29.463],"t":178,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[180.949,29.559],"t":179,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[181.148,29.643],"t":180,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[181.32,29.715],"t":181,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[181.467,29.777],"t":182,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[181.592,29.829],"t":183,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[181.697,29.873],"t":184,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[181.784,29.91],"t":185,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[181.855,29.939],"t":186,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[181.909,29.962],"t":187,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[181.978,29.991],"t":189,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[182,30],"t":380,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[181.445,29.767],"t":381,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[179.655,29.017],"t":382,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[176.204,27.569],"t":383,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[170.034,24.982],"t":384,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[157.2,19.6],"t":385,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[142.586,13.472],"t":386,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[136.154,10.774],"t":387,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[132.424,9.21],"t":388,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[129.891,8.148],"t":389,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[128.022,7.364],"t":390,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[126.579,6.759],"t":391,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[125.427,6.276],"t":392,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[124.487,5.881],"t":393,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[123.712,5.556],"t":394,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[123.062,5.284],"t":395,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[122.517,5.055],"t":396,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[122.055,4.862],"t":397,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[121.663,4.697],"t":398,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[121.332,4.559],"t":399,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[121.051,4.441],"t":400,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[120.815,4.342],"t":401,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[120.62,4.26],"t":402,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[120.456,4.191],"t":403,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[120.323,4.135],"t":404,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[120.216,4.091],"t":405,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[120.133,4.056],"t":406,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[120.073,4.03],"t":407,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[120.03,4.013],"t":408,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[120.008,4.003],"t":409,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}}]},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":32.672,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[0.850980392157,0.76862745098,0.627450980392,1],"ix":4},"o":{"a":0,"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":"Taskbar Lofi","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"ct":1,"bm":0}]},{"id":"comp_2","nm":"Recents_LofiApp","fr":60,"pfr":1,"layers":[{"ddd":0,"ind":1,"ty":4,"nm":".onSecondaryFixedVariant","cl":"onSecondaryFixedVariant","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[339.937,151.75,0],"ix":2,"l":2},"a":{"a":0,"k":[339.937,151.75,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[1.021,-1.766],[0,0],[-2.043,0],[0,0],[1.022,1.767]],"o":[[-1.021,-1.766],[0,0],[-1.022,1.767],[0,0],[2.043,0],[0,0]],"v":[[2.297,-7.675],[-2.297,-7.675],[-9.64,5.025],[-7.343,9],[7.343,9],[9.64,5.025]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"rd","nm":"Round Corners 1","r":{"a":0,"k":9,"ix":1},"ix":2,"mn":"ADBE Vector Filter - RC","hd":false},{"ty":"fl","c":{"a":0,"k":[0.325490196078,0.270588235294,0.164705882353,1],"ix":4},"o":{"a":0,"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":"Triangle","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tr","p":{"a":0,"k":[481.874,21],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Triangle","np":1,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[18,18],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":200,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[0.325490196078,0.270588235294,0.164705882353,1],"ix":4},"o":{"a":0,"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":"Rectangle","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tr","p":{"a":0,"k":[457.874,21],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"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","np":1,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[292,25],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":200,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[0.325490196078,0.270588235294,0.164705882353,1],"ix":4},"o":{"a":0,"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":"Text field","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tr","p":{"a":0,"k":[334,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":"Text field","np":1,"cix":2,"bm":0,"ix":3,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[109,28],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":12,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[0.325490196078,0.270588235294,0.164705882353,1],"ix":4},"o":{"a":0,"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":"Sent","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tr","p":{"a":0,"k":[425.5,208.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":"Sent","np":1,"cix":2,"bm":0,"ix":4,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[160,56],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":14,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[0.325490196078,0.270588235294,0.164705882353,1],"ix":4},"o":{"a":0,"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":"Sent","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tr","p":{"a":0,"k":[400,158.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":"Sent","np":1,"cix":2,"bm":0,"ix":5,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[126,40],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":14,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[0.325490196078,0.270588235294,0.164705882353,1],"ix":4},"o":{"a":0,"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":"Received","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tr","p":{"a":0,"k":[251,78.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":"Received","np":1,"cix":2,"bm":0,"ix":6,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":".onSecondaryFixed","cl":"onSecondaryFixed","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[334,157.5,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":0,"k":[340,315],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":16,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[0.145098039216,0.101960784314,0.01568627451,1],"ix":4},"o":{"a":0,"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":"Message","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":3,"ty":4,"nm":".onSecondaryFixedVariant","cl":"onSecondaryFixedVariant","parent":4,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[82,171.125,0],"ix":2,"l":2},"a":{"a":0,"k":[82,171.125,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[64,8],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":39.375,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[0.325490196078,0.270588235294,0.164705882353,1],"ix":4},"o":{"a":0,"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":"Line 2","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tr","p":{"a":0,"k":[80,177.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Line 4","np":1,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[92,8],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":39.375,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[0.325490196078,0.270588235294,0.164705882353,1],"ix":4},"o":{"a":0,"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":"Line 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tr","p":{"a":0,"k":[94,165.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Line 3","np":1,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[20,20],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":39.375,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[0.325490196078,0.270588235294,0.164705882353,1],"ix":4},"o":{"a":0,"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":"Avatar","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tr","p":{"a":0,"k":[34,171.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"circle 2","np":1,"cix":2,"bm":0,"ix":3,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":4,"ty":4,"nm":".onSecondaryFixed","cl":"onSecondaryFixed","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[82.5,140.5,0],"ix":2,"l":2},"a":{"a":0,"k":[82,140.938,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[132,22],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":39.375,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[0.145098039216,0.101960784314,0.01568627451,1],"ix":4},"o":{"a":0,"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":"Search","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tr","p":{"a":0,"k":[82,31.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":"header","np":1,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[64,8],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":200,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[0.145098039216,0.101960784314,0.01568627451,1],"ix":4},"o":{"a":0,"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":"Line 2","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tr","p":{"a":0,"k":[80,257.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":"Line 6","np":1,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[92,8],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":200,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[0.145098039216,0.101960784314,0.01568627451,1],"ix":4},"o":{"a":0,"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":"Line 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tr","p":{"a":0,"k":[94,245.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":"Line 5","np":1,"cix":2,"bm":0,"ix":3,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[20,20],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":200,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[0.145098039216,0.101960784314,0.01568627451,1],"ix":4},"o":{"a":0,"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":"Avatar","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tr","p":{"a":0,"k":[34,251.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":"circle 3","np":1,"cix":2,"bm":0,"ix":4,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[132,64],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":12,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[0.145098039216,0.101960784314,0.01568627451,1],"ix":4},"o":{"a":0,"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":"Message","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tr","p":{"a":0,"k":[82,171],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"block","np":1,"cix":2,"bm":0,"ix":5,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[64,8],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":200,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[0.145098039216,0.101960784314,0.01568627451,1],"ix":4},"o":{"a":0,"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":"Line 2","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tr","p":{"a":0,"k":[80,96.875],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Line 2","np":1,"cix":2,"bm":0,"ix":6,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[92,8],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":200,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[0.145098039216,0.101960784314,0.01568627451,1],"ix":4},"o":{"a":0,"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":"Line 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tr","p":{"a":0,"k":[94,84.875],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Line 1","np":1,"cix":2,"bm":0,"ix":7,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[20,20],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":200,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[0.145098039216,0.101960784314,0.01568627451,1],"ix":4},"o":{"a":0,"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":"Avatar","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tr","p":{"a":0,"k":[34,90.875],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"circle 1","np":1,"cix":2,"bm":0,"ix":8,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":5,"ty":4,"nm":".onSecondaryFixedVariant","cl":"onSecondaryFixedVariant","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[252,157.5,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":0,"k":[504,315],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":28,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[0.325490196078,0.270588235294,0.164705882353,1],"ix":4},"o":{"a":0,"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":"app only","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"ct":1,"bm":0}]}],"layers":[{"ddd":0,"ind":2,"ty":4,"nm":".secondaryFixedDim","cl":"secondaryFixedDim","parent":3,"sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":37,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":47,"s":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":250,"s":[100]},{"t":256,"s":[0]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"k":[{"s":[0,29.984,0],"t":127,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0,29.965,0],"t":128,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0,29.936,0],"t":129,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0,29.894,0],"t":130,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0,29.84,0],"t":131,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0,29.77,0],"t":132,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0,29.682,0],"t":133,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0,29.574,0],"t":134,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0,29.445,0],"t":135,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0,29.294,0],"t":136,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0,29.121,0],"t":137,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0,28.925,0],"t":138,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0,28.746,0],"t":139,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0,28.548,0],"t":140,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0,28.33,0],"t":141,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0,28.092,0],"t":142,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0,27.832,0],"t":143,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0,27.548,0],"t":144,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0,27.239,0],"t":145,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0,26.903,0],"t":146,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0,26.536,0],"t":147,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0,26.14,0],"t":148,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0,25.709,0],"t":149,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0,25.241,0],"t":150,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0,24.73,0],"t":151,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0,24.171,0],"t":152,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0,23.563,0],"t":153,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0,22.898,0],"t":154,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0,22.171,0],"t":155,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0,21.373,0],"t":156,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0,20.496,0],"t":157,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0,19.524,0],"t":158,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0,18.451,0],"t":159,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0,17.263,0],"t":160,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0,15.943,0],"t":161,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0,14.475,0],"t":162,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0,12.841,0],"t":163,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0,11.018,0],"t":164,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0,9.023,0],"t":165,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0,6.87,0],"t":166,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0,4.614,0],"t":167,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0,2.333,0],"t":168,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0,0.106,0],"t":169,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0,-1.975,0],"t":170,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0,-3.877,0],"t":171,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0,-5.591,0],"t":172,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0,-7.125,0],"t":173,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0,-8.492,0],"t":174,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0,-9.714,0],"t":175,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0,-10.799,0],"t":176,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0,-11.771,0],"t":177,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0,-12.643,0],"t":178,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0,-13.428,0],"t":179,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0,-14.138,0],"t":180,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0,-14.777,0],"t":181,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0,-15.355,0],"t":182,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0,-15.879,0],"t":183,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0,-16.354,0],"t":184,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0,-16.784,0],"t":185,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0,-17.177,0],"t":186,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0,-17.532,0],"t":187,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0,-17.854,0],"t":188,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0,-18.146,0],"t":189,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0,-18.409,0],"t":190,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0,-18.645,0],"t":191,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0,-18.858,0],"t":192,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0,-19.048,0],"t":193,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0,-19.217,0],"t":194,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0,-19.366,0],"t":195,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0,-19.496,0],"t":196,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0,-19.61,0],"t":197,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0,-19.707,0],"t":198,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0,-19.788,0],"t":199,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0,-19.856,0],"t":200,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0,-19.911,0],"t":201,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0,-19.954,0],"t":202,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0,-19.984,0],"t":203,"i":{"x":1,"y":1},"o":{"x":0,"y":0}}],"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,"ef":[{"ty":5,"nm":"Super Slider","np":3,"mn":"ADBE Slider Control","ix":1,"en":1,"ef":[{"ty":0,"nm":"Slider","mn":"ADBE Slider Control-0001","ix":1,"v":{"a":1,"k":[{"i":{"x":[0.64],"y":[0.48]},"o":{"x":[0.36],"y":[0]},"t":121,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":138,"s":[17.5]},{"t":205,"s":[100]}],"ix":1}}]}],"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":1,"k":[{"i":{"x":[0.56,0.56],"y":[1,1]},"o":{"x":[0.44,0.44],"y":[0,0]},"t":62,"s":[36,36]},{"i":{"x":[0.56,0.56],"y":[1,1]},"o":{"x":[0.44,0.44],"y":[0,0]},"t":72,"s":[28,28]},{"i":{"x":[0.56,0.56],"y":[1,1]},"o":{"x":[0.44,0.44],"y":[0,0]},"t":248,"s":[28,28]},{"t":258,"s":[36,36]}],"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.850980392157,0.76862745098,0.627450980392,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":1,"k":[{"i":{"x":0.56,"y":1},"o":{"x":0.44,"y":0},"t":62,"s":[41,0],"to":[0,0],"ti":[0,0]},{"i":{"x":0.56,"y":0.56},"o":{"x":0.44,"y":0.44},"t":72,"s":[33,0],"to":[0,0],"ti":[0,0]},{"i":{"x":0.56,"y":1},"o":{"x":0.44,"y":0},"t":248,"s":[33,0],"to":[0,0],"ti":[0,0]},{"t":258,"s":[41,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":"right circle","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":1,"k":[{"i":{"x":[0.56,0.56],"y":[1,1]},"o":{"x":[0.44,0.44],"y":[0,0]},"t":62,"s":[36,36]},{"i":{"x":[0.56,0.56],"y":[1,1]},"o":{"x":[0.44,0.44],"y":[0,0]},"t":72,"s":[28,28]},{"i":{"x":[0.56,0.56],"y":[1,1]},"o":{"x":[0.44,0.44],"y":[0,0]},"t":248,"s":[28,28]},{"t":258,"s":[36,36]}],"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.850980392157,0.76862745098,0.627450980392,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":1,"k":[{"i":{"x":0.56,"y":1},"o":{"x":0.44,"y":0},"t":62,"s":[-41,0],"to":[0,0],"ti":[0,0]},{"i":{"x":0.56,"y":0.56},"o":{"x":0.44,"y":0.44},"t":72,"s":[-33,0],"to":[0,0],"ti":[0,0]},{"i":{"x":0.56,"y":1},"o":{"x":0.44,"y":0},"t":248,"s":[-33,0],"to":[0,0],"ti":[0,0]},{"t":258,"s":[-41,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":"left circle","np":2,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":1,"k":[{"i":{"x":[0.56,0.56],"y":[1,1]},"o":{"x":[0.44,0.44],"y":[0,0]},"t":62,"s":[36,36]},{"i":{"x":[0.56,0.56],"y":[1,1]},"o":{"x":[0.44,0.44],"y":[0,0]},"t":72,"s":[28,28]},{"i":{"x":[0.56,0.56],"y":[1,1]},"o":{"x":[0.44,0.44],"y":[0,0]},"t":248,"s":[28,28]},{"t":258,"s":[36,36]}],"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.850980392157,0.76862745098,0.627450980392,1],"ix":4},"o":{"a":0,"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":"size","np":2,"cix":2,"bm":0,"ix":3,"mn":"ADBE Vector Group","hd":false}],"ip":37,"op":345,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":3,"ty":4,"nm":".onSecondaryFixedVariant","cl":"onSecondaryFixedVariant","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[277,459,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":0,"k":[200,128],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":18,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[0.32549020648,0.270588248968,0.164705887437,1],"ix":4},"o":{"a":0,"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":"Frame 1321317559","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":5,"ty":4,"nm":"matte","td":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[277,197.5,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":"rc","d":1,"s":{"a":0,"k":[504,315],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":28,"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}],"ip":0,"op":600,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":6,"ty":0,"nm":"Recents_EDU Loop","parent":5,"tt":1,"tp":5,"refId":"comp_0","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,"l":2},"a":{"a":0,"k":[252,157.5,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"w":504,"h":315,"ip":0,"op":511,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":8,"ty":4,"nm":".onSecondaryFixedVariant","cl":"onSecondaryFixedVariant","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[277,197.5,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":0,"k":[504,315],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":28,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[0.325490196078,0.270588235294,0.164705882353,1],"ix":4},"o":{"a":0,"k":50,"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":"illustrations: action key","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":9,"ty":4,"nm":".secondaryFixedDim","cl":"secondaryFixedDim","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[277,197.5,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":0,"k":[504,315],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":28,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[0.850980401039,0.768627464771,0.627451002598,1],"ix":4},"o":{"a":0,"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":"illustrations: action key","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":10,"ty":4,"nm":".secondaryFixedDim","cl":"secondaryFixedDim","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[277,197.5,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":0,"k":[504,315],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":28,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"st","c":{"a":0,"k":[0.850980392157,0.76862745098,0.627450980392,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":14,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"op","nm":"Stroke align: Outside","a":{"k":[{"s":[7],"t":0,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[7],"t":511,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}}]},"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.850980392157,0.76862745098,0.627450980392,1],"ix":4},"o":{"a":0,"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":"frame","np":4,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"ct":1,"bm":0}],"markers":[{"tm":142,"cm":"drag with gesture","dr":108},{"tm":217,"cm":"onPause","dr":0},{"tm":250,"cm":"release playback realtime","dr":36}],"props":{}}
\ No newline at end of file diff --git a/packages/SystemUI/res/raw/trackpad_recent_apps_success.json b/packages/SystemUI/res/raw/trackpad_recent_apps_success.json index 1703c41df33a..21a9e135ce8c 100644 --- a/packages/SystemUI/res/raw/trackpad_recent_apps_success.json +++ b/packages/SystemUI/res/raw/trackpad_recent_apps_success.json @@ -1 +1 @@ -{"v":"5.12.1","fr":60,"ip":0,"op":97,"w":554,"h":564,"nm":"Trackpad-JSON_Recents-Success","ddd":0,"assets":[{"id":"comp_0","nm":"TrackpadAK_Success_Checkmark","fr":60,"layers":[{"ddd":0,"ind":1,"ty":3,"nm":"Check Rotate","parent":2,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.12],"y":[1]},"o":{"x":[0.44],"y":[0]},"t":2,"s":[-16]},{"t":20,"s":[6]}],"ix":10},"p":{"a":0,"k":[0,0,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[95.049,95.049,100],"ix":6,"l":2}},"ao":0,"ip":0,"op":228,"st":-72,"bm":0},{"ddd":0,"ind":2,"ty":3,"nm":"Bounce","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.12],"y":[1]},"o":{"x":[0.44],"y":[0]},"t":12,"s":[0]},{"t":36,"s":[-6]}],"ix":10},"p":{"a":0,"k":[81,127,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":1,"k":[{"i":{"x":[0.263,0.263,0.833],"y":[1.126,1.126,1]},"o":{"x":[0.05,0.05,0.05],"y":[0.958,0.958,0]},"t":1,"s":[80,80,100]},{"i":{"x":[0.1,0.1,0.1],"y":[1,1,1]},"o":{"x":[0.45,0.45,0.167],"y":[0.325,0.325,0]},"t":20,"s":[105,105,100]},{"t":36,"s":[100,100,100]}],"ix":6,"l":2}},"ao":0,"ip":0,"op":300,"st":0,"bm":0},{"ddd":0,"ind":3,"ty":4,"nm":".secondaryFixedDim","cl":"secondaryFixedDim","parent":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":-0.289,"ix":10},"p":{"a":0,"k":[14.364,-33.591,0],"ix":2,"l":2},"a":{"a":0,"k":[-0.125,0,0],"ix":1,"l":2},"s":{"a":0,"k":[104.744,104.744,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-1.401,-0.007],[-10.033,11.235]],"o":[[5.954,7.288],[1.401,0.007],[0,0]],"v":[[-28.591,4.149],[-10.73,26.013],[31.482,-21.255]],"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.2],"y":[1]},"o":{"x":[0.4],"y":[0]},"t":3,"s":[0]},{"i":{"x":[0.22],"y":[1]},"o":{"x":[0.001],"y":[0.149]},"t":10,"s":[29]},{"t":27,"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.850980392157,0.76862745098,0.627450980392,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":11,"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":"Shape 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":5,"op":44,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":4,"ty":4,"nm":".onSecondaryFixedVariant","cl":"onSecondaryFixedVariant","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[95,95,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":1,"k":[{"i":{"x":[0.275,0.275,0.21],"y":[1.102,1.102,1]},"o":{"x":[0.037,0.037,0.05],"y":[0.476,0.476,0]},"t":0,"s":[0,0,100]},{"i":{"x":[0.1,0.1,0.1],"y":[1,1,1]},"o":{"x":[0.252,0.252,0.47],"y":[0.159,0.159,0]},"t":16,"s":[120,120,100]},{"t":28,"s":[100,100,100]}],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":1,"k":[{"i":{"x":[0.1,0.1],"y":[1,1]},"o":{"x":[0.32,0.32],"y":[0.11,0.11]},"t":16,"s":[148,148]},{"t":28,"s":[136,136]}],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":88,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[0.325490196078,0.270588235294,0.164705882353,1],"ix":4},"o":{"a":0,"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":"Checkbox - Widget","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"ct":1,"bm":0}]},{"id":"comp_1","nm":"Trackpad-JSON_Recents-EDU","fr":60,"layers":[{"ddd":0,"ind":2,"ty":4,"nm":".secondaryFixedDim","cl":"secondaryFixedDim","parent":3,"sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":37,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":47,"s":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":250,"s":[100]},{"t":256,"s":[0]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"k":[{"s":[0,-20,0],"t":217,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0,-20,0],"t":292,"i":{"x":1,"y":1},"o":{"x":0,"y":0}}],"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,"ef":[{"ty":5,"nm":"Super Slider","np":3,"mn":"ADBE Slider Control","ix":1,"en":1,"ef":[{"ty":0,"nm":"Slider","mn":"ADBE Slider Control-0001","ix":1,"v":{"a":1,"k":[{"i":{"x":[0.64],"y":[0.48]},"o":{"x":[0.36],"y":[0]},"t":121,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":138,"s":[17.5]},{"t":205,"s":[100]}],"ix":1}}]}],"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":1,"k":[{"i":{"x":[0.56,0.56],"y":[1,1]},"o":{"x":[0.44,0.44],"y":[0,0]},"t":62,"s":[36,36]},{"i":{"x":[0.56,0.56],"y":[1,1]},"o":{"x":[0.44,0.44],"y":[0,0]},"t":72,"s":[28,28]},{"i":{"x":[0.56,0.56],"y":[1,1]},"o":{"x":[0.44,0.44],"y":[0,0]},"t":248,"s":[28,28]},{"t":258,"s":[36,36]}],"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.850980392157,0.76862745098,0.627450980392,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":1,"k":[{"i":{"x":0.56,"y":1},"o":{"x":0.44,"y":0},"t":62,"s":[41,0],"to":[0,0],"ti":[0,0]},{"i":{"x":0.56,"y":0.56},"o":{"x":0.44,"y":0.44},"t":72,"s":[33,0],"to":[0,0],"ti":[0,0]},{"i":{"x":0.56,"y":1},"o":{"x":0.44,"y":0},"t":248,"s":[33,0],"to":[0,0],"ti":[0,0]},{"t":258,"s":[41,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":"right circle","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":1,"k":[{"i":{"x":[0.56,0.56],"y":[1,1]},"o":{"x":[0.44,0.44],"y":[0,0]},"t":62,"s":[36,36]},{"i":{"x":[0.56,0.56],"y":[1,1]},"o":{"x":[0.44,0.44],"y":[0,0]},"t":72,"s":[28,28]},{"i":{"x":[0.56,0.56],"y":[1,1]},"o":{"x":[0.44,0.44],"y":[0,0]},"t":248,"s":[28,28]},{"t":258,"s":[36,36]}],"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.850980392157,0.76862745098,0.627450980392,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":1,"k":[{"i":{"x":0.56,"y":1},"o":{"x":0.44,"y":0},"t":62,"s":[-41,0],"to":[0,0],"ti":[0,0]},{"i":{"x":0.56,"y":0.56},"o":{"x":0.44,"y":0.44},"t":72,"s":[-33,0],"to":[0,0],"ti":[0,0]},{"i":{"x":0.56,"y":1},"o":{"x":0.44,"y":0},"t":248,"s":[-33,0],"to":[0,0],"ti":[0,0]},{"t":258,"s":[-41,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":"left circle","np":2,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":1,"k":[{"i":{"x":[0.56,0.56],"y":[1,1]},"o":{"x":[0.44,0.44],"y":[0,0]},"t":62,"s":[36,36]},{"i":{"x":[0.56,0.56],"y":[1,1]},"o":{"x":[0.44,0.44],"y":[0,0]},"t":72,"s":[28,28]},{"i":{"x":[0.56,0.56],"y":[1,1]},"o":{"x":[0.44,0.44],"y":[0,0]},"t":248,"s":[28,28]},{"t":258,"s":[36,36]}],"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.850980392157,0.76862745098,0.627450980392,1],"ix":4},"o":{"a":0,"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":"size","np":2,"cix":2,"bm":0,"ix":3,"mn":"ADBE Vector Group","hd":false}],"ip":37,"op":345,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":3,"ty":4,"nm":".onSecondaryFixedVariant","cl":"onSecondaryFixedVariant","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[277,459,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":0,"k":[200,128],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":18,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[0.32549020648,0.270588248968,0.164705887437,1],"ix":4},"o":{"a":0,"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":"Frame 1321317559","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":5,"ty":4,"nm":"matte","td":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[277,197.5,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":"rc","d":1,"s":{"a":0,"k":[504,315],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":28,"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}],"ip":0,"op":600,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":6,"ty":0,"nm":"Recents_EDU Loop","parent":5,"tt":1,"tp":5,"refId":"comp_2","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,"l":2},"a":{"a":0,"k":[252,157.5,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"w":504,"h":315,"ip":0,"op":511,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":8,"ty":4,"nm":".onSecondaryFixedVariant","cl":"onSecondaryFixedVariant","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[277,197.5,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":0,"k":[504,315],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":28,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[0.325490196078,0.270588235294,0.164705882353,1],"ix":4},"o":{"a":0,"k":50,"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":"illustrations: action key","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":9,"ty":4,"nm":".secondaryFixedDim","cl":"secondaryFixedDim","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[277,197.5,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":0,"k":[504,315],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":28,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[0.850980401039,0.768627464771,0.627451002598,1],"ix":4},"o":{"a":0,"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":"illustrations: action key","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":10,"ty":4,"nm":".secondaryFixedDim","cl":"secondaryFixedDim","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[277,197.5,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":0,"k":[504,315],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":28,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"st","c":{"a":0,"k":[0.850980392157,0.76862745098,0.627450980392,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":14,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"op","nm":"Stroke align: Outside","a":{"k":[{"s":[7],"t":217,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[7],"t":292,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}}]},"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.850980392157,0.76862745098,0.627450980392,1],"ix":4},"o":{"a":0,"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":"frame","np":4,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"ct":1,"bm":0}]},{"id":"comp_2","nm":"Recents_EDU Loop","fr":60,"layers":[{"ddd":0,"ind":2,"ty":4,"nm":"CNTL || playback","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"s":true,"x":{"a":0,"k":0,"ix":3},"y":{"a":0,"k":0,"ix":4}},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"ef":[{"ty":5,"nm":"Picker","np":3,"mn":"Pseudo/@@WcSiov6sT3a4/s0XPKYEOQ","ix":1,"en":1,"ef":[{"ty":7,"nm":"Menu","mn":"Pseudo/@@WcSiov6sT3a4/s0XPKYEOQ-0001","ix":1,"v":{"a":0,"k":2,"ix":1}}]},{"ty":5,"nm":"OUTPUT","np":3,"mn":"ADBE Slider Control","ix":2,"en":1,"ef":[{"ty":0,"nm":"Slider","mn":"ADBE Slider Control-0001","ix":1,"v":{"k":[{"s":[1],"t":250,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[1.009],"t":251,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[1.038],"t":252,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[1.093],"t":253,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[1.193],"t":254,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[1.4],"t":255,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[1.636],"t":256,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[1.739],"t":257,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[1.8],"t":258,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[1.84],"t":259,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[1.871],"t":260,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[1.894],"t":261,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[1.912],"t":262,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[1.928],"t":263,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[1.94],"t":264,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[1.951],"t":265,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[1.959],"t":266,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[1.967],"t":267,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[1.973],"t":268,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[1.979],"t":269,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[1.983],"t":270,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[1.987],"t":271,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[1.99],"t":272,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[1.993],"t":273,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[1.995],"t":274,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[1.997],"t":275,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[1.998],"t":276,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[1.999],"t":278,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}}]}}]},{"ty":5,"nm":"Keys","np":3,"mn":"ADBE Slider Control","ix":3,"en":1,"ef":[{"ty":0,"nm":"Slider","mn":"ADBE Slider Control-0001","ix":1,"v":{"a":1,"k":[{"i":{"x":[0.831],"y":[0.109]},"o":{"x":[0.458],"y":[0.053]},"t":142,"s":[0]},{"i":{"x":[0.1],"y":[1]},"o":{"x":[0.15],"y":[0.43]},"t":161,"s":[0.15]},{"t":217,"s":[1],"h":1},{"i":{"x":[0.8],"y":[0.15]},"o":{"x":[0.3],"y":[0]},"t":250,"s":[1]},{"i":{"x":[0.1],"y":[1]},"o":{"x":[0.05],"y":[0.7]},"t":255,"s":[1.4]},{"t":280,"s":[2],"h":1},{"i":{"x":[0.8],"y":[0.15]},"o":{"x":[0.3],"y":[0]},"t":380,"s":[2]},{"i":{"x":[0.1],"y":[1]},"o":{"x":[0.05],"y":[0.7]},"t":385,"s":[2.4]},{"t":410,"s":[3]}],"ix":1}}]},{"ty":5,"nm":"State (holds)","np":3,"mn":"ADBE Slider Control","ix":4,"en":1,"ef":[{"ty":0,"nm":"Slider","mn":"ADBE Slider Control-0001","ix":1,"v":{"a":0,"k":0,"ix":1}}]}],"shapes":[],"ip":0,"op":451,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":3,"ty":3,"nm":"Null :: Taskbar drop","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"k":[{"s":[252,298.112,0],"t":217,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[252,298,0],"t":292,"i":{"x":1,"y":1},"o":{"x":0,"y":0}}],"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":511,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":4,"ty":0,"nm":"Taskbar Lofi","parent":3,"refId":"comp_3","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":134,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":143,"s":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":432,"s":[100]},{"t":444,"s":[0]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"s":true,"x":{"a":0,"k":0,"ix":3},"y":{"k":[{"s":[-10],"t":217,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[-10],"t":292,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}}]}},"a":{"a":0,"k":[91,15,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"ef":[{"ty":5,"nm":"Super Slider","np":3,"mn":"ADBE Slider Control","ix":1,"en":1,"ef":[{"ty":0,"nm":"Slider","mn":"ADBE Slider Control-0001","ix":1,"v":{"a":1,"k":[{"i":{"x":[0.64],"y":[0.48]},"o":{"x":[0.36],"y":[0]},"t":121,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":138,"s":[17.5]},{"t":205,"s":[100]}],"ix":1}}]}],"w":182,"h":30,"ip":0,"op":511,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":5,"ty":3,"nm":"Focus Task :: Lift & Drop","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"s":true,"x":{"a":0,"k":252,"ix":3},"y":{"k":[{"s":[119.5],"t":250,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[119.746],"t":251,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[120.54],"t":252,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[122.071],"t":253,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[124.808],"t":254,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[130.5],"t":255,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[136.982],"t":256,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[139.835],"t":257,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[141.489],"t":258,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[142.613],"t":259,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[143.442],"t":260,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[144.082],"t":261,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[144.593],"t":262,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[145.01],"t":263,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[145.354],"t":264,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[145.642],"t":265,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[145.884],"t":266,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[146.089],"t":267,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[146.262],"t":268,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[146.409],"t":269,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[146.534],"t":270,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[146.638],"t":271,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[146.725],"t":272,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[146.857],"t":274,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}}]}},"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":511,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":6,"ty":4,"nm":"matte","parent":5,"td":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,"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":"rc","d":1,"s":{"k":[{"s":[302.247,188.904],"t":251,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[301.752,188.595],"t":252,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[300.798,187.999],"t":253,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[299.093,186.933],"t":254,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[295.546,184.716],"t":255,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[291.506,182.192],"t":256,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[289.729,181.08],"t":257,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[288.698,180.436],"t":258,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[287.998,179.999],"t":259,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[287.481,179.676],"t":260,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[287.082,179.427],"t":261,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[286.764,179.227],"t":262,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[286.504,179.065],"t":263,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[286.29,178.931],"t":264,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[286.11,178.819],"t":265,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[285.832,178.645],"t":267,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[285.555,178.472],"t":270,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[285.272,178.295],"t":278,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}}]},"p":{"a":0,"k":[0,0],"ix":3},"r":{"k":[{"s":[14.603],"t":251,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[14.579],"t":252,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[14.532],"t":253,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[14.45],"t":254,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[14.278],"t":255,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[14.082],"t":256,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[13.996],"t":257,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[13.946],"t":258,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[13.912],"t":259,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[13.887],"t":260,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[13.868],"t":261,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[13.853],"t":262,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[13.84],"t":263,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[13.83],"t":264,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[13.821],"t":265,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[13.808],"t":267,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[13.794],"t":270,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[13.78],"t":278,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}}]},"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}],"ip":0,"op":511,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":7,"ty":0,"nm":"Recents_LofiApp","parent":6,"tt":1,"tp":6,"refId":"comp_4","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,"l":2},"a":{"a":0,"k":[252,157.5,0],"ix":1,"l":2},"s":{"k":[{"s":[59.97,59.97,100],"t":251,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[59.871,59.871,100],"t":252,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[59.682,59.682,100],"t":253,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[59.344,59.344,100],"t":254,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[58.64,58.64,100],"t":255,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[57.839,57.839,100],"t":256,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[57.486,57.486,100],"t":257,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[57.281,57.281,100],"t":258,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[57.142,57.142,100],"t":259,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[57.04,57.04,100],"t":260,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[56.961,56.961,100],"t":261,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[56.898,56.898,100],"t":262,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[56.846,56.846,100],"t":263,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[56.804,56.804,100],"t":264,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[56.768,56.768,100],"t":265,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[56.713,56.713,100],"t":267,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[56.658,56.658,100],"t":270,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[56.602,56.602,100],"t":278,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}}],"l":2}},"ao":0,"w":504,"h":315,"ip":0,"op":511,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":8,"ty":4,"nm":".onSecondaryFixedVariant","cl":"onSecondaryFixedVariant","parent":7,"sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":268,"s":[0]},{"t":277,"s":[100]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[252,-30.035,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[176.678,176.678,100],"ix":6,"l":2}},"ao":0,"shapes":[{"d":1,"ty":"el","s":{"a":0,"k":[18,18],"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.325490196078,0.270588235294,0.164705882353,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false}],"ip":0,"op":511,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":9,"ty":4,"nm":"second Tasks Zoom back","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[252,157.5,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":1,"k":[{"i":{"x":[0.8,0.8,0.8],"y":[0.15,0.15,1]},"o":{"x":[0.3,0.3,0.3],"y":[0,0,0]},"t":380,"s":[100,100,100]},{"i":{"x":[0.1,0.1,0.1],"y":[1,1,1]},"o":{"x":[0.05,0.05,0.05],"y":[0.7,0.7,0]},"t":385,"s":[98,98,100]},{"t":410,"s":[95,95,100]}],"ix":6,"l":2}},"ao":0,"shapes":[],"ip":0,"op":511,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":10,"ty":4,"nm":"Null :: Reposition Side Task","parent":9,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.8,"y":0.15},"o":{"x":0.3,"y":0},"t":250,"s":[-318.4,-38,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.1,"y":1},"o":{"x":0.05,"y":0.7},"t":255,"s":[-277.34,-48.1,0],"to":[0,0,0],"ti":[0,0,0]},{"t":280,"s":[-215.75,-63.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":[],"ip":197,"op":511,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":11,"ty":4,"nm":".onSecondaryFixedVariant","cl":"onSecondaryFixedVariant","parent":12,"sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":268,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":277,"s":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":383,"s":[100]},{"t":392,"s":[0]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"k":[{"s":[0,-111.72,0],"t":250,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0,-111.197,0],"t":251,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0,-109.514,0],"t":252,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0,-106.268,0],"t":253,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0,-100.462,0],"t":254,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0,-88.39,0],"t":255,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0,-74.643,0],"t":256,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0,-68.591,0],"t":257,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0,-65.083,0],"t":258,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0,-62.7,0],"t":259,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0,-60.943,0],"t":260,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0,-59.584,0],"t":261,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0,-58.5,0],"t":262,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0,-57.616,0],"t":263,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0,-56.886,0],"t":264,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0,-56.276,0],"t":265,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0,-55.762,0],"t":266,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0,-55.328,0],"t":267,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0,-54.96,0],"t":268,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0,-54.648,0],"t":269,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0,-54.385,0],"t":270,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0,-54.163,0],"t":271,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0,-53.977,0],"t":272,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0,-53.824,0],"t":273,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0,-53.698,0],"t":274,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0,-53.598,0],"t":275,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0,-53.521,0],"t":276,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0,-53.463,0],"t":277,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0,-53.424,0],"t":278,"i":{"x":1,"y":1},"o":{"x":0,"y":0}}],"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":[{"d":1,"ty":"el","s":{"a":0,"k":[18,18],"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.325490196078,0.270588235294,0.164705882353,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false}],"ip":197,"op":511,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":12,"ty":4,"nm":".onSecondaryFixedVariant","cl":"onSecondaryFixedVariant","parent":10,"sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":383,"s":[100]},{"t":392,"s":[0]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.1,"y":1},"o":{"x":0.05,"y":0.963},"t":217,"s":[-84.8,0,0],"to":[0,0,0],"ti":[0,0,0]},{"t":250,"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,"shapes":[{"ty":"rc","d":1,"s":{"a":1,"k":[{"i":{"x":[0.8,0.8],"y":[0.15,0.15]},"o":{"x":[0.3,0.3],"y":[0,0]},"t":250,"s":[302.4,189]},{"i":{"x":[0.1,0.1],"y":[1,1]},"o":{"x":[0.05,0.05],"y":[0.7,0.7]},"t":255,"s":[227.56,142.34]},{"t":280,"s":[115.3,72.35]}],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":1,"k":[{"i":{"x":[0.8],"y":[0.15]},"o":{"x":[0.3],"y":[0]},"t":250,"s":[14.6]},{"i":{"x":[0.1],"y":[1]},"o":{"x":[0.05],"y":[0.7]},"t":255,"s":[14.272]},{"t":280,"s":[13.78]}],"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[0.32549020648,0.270588248968,0.164705887437,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false}],"ip":197,"op":511,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":13,"ty":4,"nm":".onSecondaryFixedVariant","cl":"onSecondaryFixedVariant","parent":14,"sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":268,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":277,"s":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":383,"s":[100]},{"t":392,"s":[0]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"k":[{"s":[0,-53.175,0],"t":217,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0,-53.175,0],"t":292,"i":{"x":1,"y":1},"o":{"x":0,"y":0}}],"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":[{"d":1,"ty":"el","s":{"a":0,"k":[18,18],"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.325490196078,0.270588235294,0.164705882353,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false}],"ip":197,"op":511,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":14,"ty":4,"nm":".onSecondaryFixedVariant","cl":"onSecondaryFixedVariant","parent":9,"sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":383,"s":[100]},{"t":392,"s":[0]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.8,"y":0.15},"o":{"x":0.3,"y":0},"t":250,"s":[-411.95,20.325,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.1,"y":1},"o":{"x":0.05,"y":0.7},"t":255,"s":[-333.47,29.183,0],"to":[0,0,0],"ti":[0,0,0]},{"t":280,"s":[-215.75,42.47,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":"rc","d":1,"s":{"a":0,"k":[115.3,72.35],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":13.78,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[0.32549020648,0.270588248968,0.164705887437,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false}],"ip":197,"op":511,"st":0,"ct":1,"bm":0}]},{"id":"comp_3","nm":"Taskbar Lofi","fr":60,"layers":[{"ddd":0,"ind":2,"ty":4,"nm":"app - 5","parent":9,"sr":1,"ks":{"o":{"k":[{"s":[100],"t":217,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[100],"t":292,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}}]},"r":{"a":0,"k":0,"ix":10},"p":{"k":[{"s":[76,0,0],"t":217,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[76,0,0],"t":292,"i":{"x":1,"y":1},"o":{"x":0,"y":0}}],"l":2},"a":{"a":0,"k":[167,15,0],"ix":1,"l":2},"s":{"k":[{"s":[100,100,100],"t":217,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[100,100,100],"t":292,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}}],"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[18,18],"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.32549020648,0.270588248968,0.164705887437,1],"ix":4},"o":{"a":0,"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 7511","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tr","p":{"a":0,"k":[167,15],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"app - 5","np":1,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":3,"ty":4,"nm":"app - 4","sr":1,"ks":{"o":{"k":[{"s":[100],"t":217,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[100],"t":292,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}}]},"r":{"a":0,"k":0,"ix":10},"p":{"k":[{"s":[139,15,0],"t":217,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[139,15,0],"t":292,"i":{"x":1,"y":1},"o":{"x":0,"y":0}}],"l":2},"a":{"a":0,"k":[139,15,0],"ix":1,"l":2},"s":{"k":[{"s":[100,100,100],"t":217,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[100,100,100],"t":292,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}}],"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[18,18],"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.32549020648,0.270588248968,0.164705887437,1],"ix":4},"o":{"a":0,"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 7508","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tr","p":{"a":0,"k":[139,15],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"app - 4","np":1,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":4,"ty":4,"nm":"app - 3","sr":1,"ks":{"o":{"k":[{"s":[100],"t":217,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[100],"t":292,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}}]},"r":{"a":0,"k":0,"ix":10},"p":{"k":[{"s":[111,15,0],"t":217,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[111,15,0],"t":292,"i":{"x":1,"y":1},"o":{"x":0,"y":0}}],"l":2},"a":{"a":0,"k":[111,15,0],"ix":1,"l":2},"s":{"k":[{"s":[100,100,100],"t":217,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[100,100,100],"t":292,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}}],"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[18,18],"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.32549020648,0.270588248968,0.164705887437,1],"ix":4},"o":{"a":0,"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 7507","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tr","p":{"a":0,"k":[111,15],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"app - 3","np":1,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":5,"ty":4,"nm":"app - 2","sr":1,"ks":{"o":{"k":[{"s":[100],"t":217,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[100],"t":292,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}}]},"r":{"a":0,"k":0,"ix":10},"p":{"k":[{"s":[83,15,0],"t":217,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[83,15,0],"t":292,"i":{"x":1,"y":1},"o":{"x":0,"y":0}}],"l":2},"a":{"a":0,"k":[83,15,0],"ix":1,"l":2},"s":{"k":[{"s":[100,100,100],"t":217,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[100,100,100],"t":292,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}}],"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[18,18],"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.32549020648,0.270588248968,0.164705887437,1],"ix":4},"o":{"a":0,"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 7506","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tr","p":{"a":0,"k":[83,15],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"app - 2","np":1,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":6,"ty":4,"nm":"app - 1","sr":1,"ks":{"o":{"k":[{"s":[100],"t":217,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[100],"t":292,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}}]},"r":{"a":0,"k":0,"ix":10},"p":{"k":[{"s":[55,15,0],"t":217,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[55,15,0],"t":292,"i":{"x":1,"y":1},"o":{"x":0,"y":0}}],"l":2},"a":{"a":0,"k":[55,15,0],"ix":1,"l":2},"s":{"k":[{"s":[100,100,100],"t":217,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[100,100,100],"t":292,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}}],"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[18,18],"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.32549020648,0.270588248968,0.164705887437,1],"ix":4},"o":{"a":0,"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 7505","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tr","p":{"a":0,"k":[55,15],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"app - 1","np":1,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":7,"ty":4,"nm":"divider","sr":1,"ks":{"o":{"k":[{"s":[100],"t":217,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[100],"t":292,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}}]},"r":{"a":0,"k":90,"ix":10},"p":{"k":[{"s":[36,15,0],"t":217,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[36,15,0],"t":292,"i":{"x":1,"y":1},"o":{"x":0,"y":0}}],"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":{"k":[{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-5,-0.5],[5,-0.5]],"c":false}],"t":217,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-5,-0.5],[5,-0.5]],"c":false}],"t":292,"i":{"x":1,"y":1},"o":{"x":0,"y":0}}]},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.32549020648,0.270588248968,0.164705887437,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":1,"ix":5},"lc":2,"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":"divider","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":8,"ty":4,"nm":".onSecondaryFixedVariant","cl":"onSecondaryFixedVariant","parent":9,"sr":1,"ks":{"o":{"k":[{"s":[100],"t":217,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[100],"t":292,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}}]},"r":{"a":0,"k":0,"ix":10},"p":{"k":[{"s":[-70.349,0.652,0],"t":217,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-70.349,0.652,0],"t":292,"i":{"x":1,"y":1},"o":{"x":0,"y":0}}],"l":2},"a":{"a":0,"k":[6.826,6.826,0],"ix":1,"l":2},"s":{"k":[{"s":[100,100,100],"t":217,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[100,100,100],"t":292,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}}],"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-1.381,0],[0,1.381],[1.381,0],[0,-1.381]],"o":[[1.381,0],[0,-1.381],[-1.381,0],[0,1.381]],"v":[[0,2.5],[2.5,0],[0,-2.5],[-2.5,0]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.32549020648,0.270588248968,0.164705887437,1],"ix":4},"o":{"a":0,"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 12","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tr","p":{"a":0,"k":[2.5,9.501],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"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 12","np":1,"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":[[-1.381,0],[0,1.381],[1.381,0],[0,-1.381]],"o":[[1.381,0],[0,-1.381],[-1.381,0],[0,1.381]],"v":[[0,2.5],[2.5,0],[0,-2.5],[-2.5,0]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.32549020648,0.270588248968,0.164705887437,1],"ix":4},"o":{"a":0,"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 11","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tr","p":{"a":0,"k":[2.5,2.5],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 11","np":1,"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":[[-1.381,0],[0,1.381],[1.381,0],[0,-1.381]],"o":[[1.381,0],[0,-1.381],[-1.381,0],[0,1.381]],"v":[[0,2.5],[2.5,0],[0,-2.5],[-2.5,0]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.32549020648,0.270588248968,0.164705887437,1],"ix":4},"o":{"a":0,"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 5","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tr","p":{"a":0,"k":[9.5,2.5],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 5","np":1,"cix":2,"bm":0,"ix":3,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.185,0.148],[0,0],[0,0],[0,0],[-0.086,0.24],[0,0.271],[0.468,0.462],[0.671,0],[0.468,-0.468],[0,-0.671],[-0.462,-0.468],[-0.671,0],[-0.24,0.086]],"o":[[0,0],[0,0],[0,0],[0.148,-0.185],[0.086,-0.24],[0,-0.671],[-0.462,-0.468],[-0.671,0],[-0.462,0.462],[0,0.671],[0.468,0.462],[0.271,0],[0.24,-0.086]],"v":[[0.48,0.998],[2.809,3.326],[3.326,2.809],[0.998,0.48],[1.349,-0.157],[1.478,-0.924],[0.776,-2.624],[-0.924,-3.326],[-2.633,-2.624],[-3.326,-0.924],[-2.633,0.785],[-0.924,1.478],[-0.157,1.349]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":5,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ind":2,"ty":"sh","ix":3,"ks":{"a":0,"k":{"i":[[0.326,-0.326],[0.462,0],[0.326,0.32],[0,0.462],[-0.32,0.32],[-0.462,0],[-0.32,-0.326],[0,-0.462]],"o":[[-0.32,0.32],[-0.462,0],[-0.32,-0.326],[0,-0.462],[0.326,-0.326],[0.462,0],[0.326,0.32],[0,0.462]],"v":[[0.249,0.259],[-0.924,0.739],[-2.106,0.259],[-2.587,-0.924],[-2.106,-2.097],[-0.924,-2.587],[0.249,-2.097],[0.739,-0.924]],"c":true},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":5,"nm":"Merge Paths 2","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"st","c":{"a":0,"k":[0.32549020648,0.270588248968,0.164705887437,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0.4,"ix":5},"lc":1,"lj":2,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.32549020648,0.270588248968,0.164705887437,1],"ix":4},"o":{"a":0,"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":"icon","np":6,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tr","p":{"a":0,"k":[10.326,10.326],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"icon","np":1,"cix":2,"bm":0,"ix":4,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":9,"ty":4,"nm":".secondaryFixedDim","cl":"secondaryFixedDim","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[91,15,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":{"k":[{"s":[182,30],"t":217,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[182,30],"t":292,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}}]},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":32.672,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[0.850980392157,0.76862745098,0.627450980392,1],"ix":4},"o":{"a":0,"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":"Taskbar Lofi","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"ct":1,"bm":0}]},{"id":"comp_4","nm":"Recents_LofiApp","fr":60,"pfr":1,"layers":[{"ddd":0,"ind":1,"ty":4,"nm":".onSecondaryFixedVariant","cl":"onSecondaryFixedVariant","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[339.937,151.75,0],"ix":2,"l":2},"a":{"a":0,"k":[339.937,151.75,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[1.021,-1.766],[0,0],[-2.043,0],[0,0],[1.022,1.767]],"o":[[-1.021,-1.766],[0,0],[-1.022,1.767],[0,0],[2.043,0],[0,0]],"v":[[2.297,-7.675],[-2.297,-7.675],[-9.64,5.025],[-7.343,9],[7.343,9],[9.64,5.025]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"rd","nm":"Round Corners 1","r":{"a":0,"k":9,"ix":1},"ix":2,"mn":"ADBE Vector Filter - RC","hd":false},{"ty":"fl","c":{"a":0,"k":[0.325490196078,0.270588235294,0.164705882353,1],"ix":4},"o":{"a":0,"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":"Triangle","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tr","p":{"a":0,"k":[481.874,21],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Triangle","np":1,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[18,18],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":200,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[0.325490196078,0.270588235294,0.164705882353,1],"ix":4},"o":{"a":0,"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":"Rectangle","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tr","p":{"a":0,"k":[457.874,21],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"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","np":1,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[292,25],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":200,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[0.325490196078,0.270588235294,0.164705882353,1],"ix":4},"o":{"a":0,"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":"Text field","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tr","p":{"a":0,"k":[334,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":"Text field","np":1,"cix":2,"bm":0,"ix":3,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[109,28],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":12,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[0.325490196078,0.270588235294,0.164705882353,1],"ix":4},"o":{"a":0,"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":"Sent","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tr","p":{"a":0,"k":[425.5,208.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":"Sent","np":1,"cix":2,"bm":0,"ix":4,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[160,56],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":14,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[0.325490196078,0.270588235294,0.164705882353,1],"ix":4},"o":{"a":0,"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":"Sent","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tr","p":{"a":0,"k":[400,158.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":"Sent","np":1,"cix":2,"bm":0,"ix":5,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[126,40],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":14,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[0.325490196078,0.270588235294,0.164705882353,1],"ix":4},"o":{"a":0,"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":"Received","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tr","p":{"a":0,"k":[251,78.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":"Received","np":1,"cix":2,"bm":0,"ix":6,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":".onSecondaryFixed","cl":"onSecondaryFixed","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[334,157.5,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":0,"k":[340,315],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":16,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[0.145098039216,0.101960784314,0.01568627451,1],"ix":4},"o":{"a":0,"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":"Message","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":3,"ty":4,"nm":".onSecondaryFixedVariant","cl":"onSecondaryFixedVariant","parent":4,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[82,171.125,0],"ix":2,"l":2},"a":{"a":0,"k":[82,171.125,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[64,8],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":39.375,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[0.325490196078,0.270588235294,0.164705882353,1],"ix":4},"o":{"a":0,"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":"Line 2","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tr","p":{"a":0,"k":[80,177.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Line 4","np":1,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[92,8],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":39.375,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[0.325490196078,0.270588235294,0.164705882353,1],"ix":4},"o":{"a":0,"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":"Line 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tr","p":{"a":0,"k":[94,165.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Line 3","np":1,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[20,20],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":39.375,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[0.325490196078,0.270588235294,0.164705882353,1],"ix":4},"o":{"a":0,"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":"Avatar","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tr","p":{"a":0,"k":[34,171.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"circle 2","np":1,"cix":2,"bm":0,"ix":3,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":4,"ty":4,"nm":".onSecondaryFixed","cl":"onSecondaryFixed","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[82.5,140.5,0],"ix":2,"l":2},"a":{"a":0,"k":[82,140.938,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[132,22],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":39.375,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[0.145098039216,0.101960784314,0.01568627451,1],"ix":4},"o":{"a":0,"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":"Search","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tr","p":{"a":0,"k":[82,31.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":"header","np":1,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[64,8],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":200,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[0.145098039216,0.101960784314,0.01568627451,1],"ix":4},"o":{"a":0,"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":"Line 2","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tr","p":{"a":0,"k":[80,257.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":"Line 6","np":1,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[92,8],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":200,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[0.145098039216,0.101960784314,0.01568627451,1],"ix":4},"o":{"a":0,"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":"Line 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tr","p":{"a":0,"k":[94,245.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":"Line 5","np":1,"cix":2,"bm":0,"ix":3,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[20,20],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":200,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[0.145098039216,0.101960784314,0.01568627451,1],"ix":4},"o":{"a":0,"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":"Avatar","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tr","p":{"a":0,"k":[34,251.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":"circle 3","np":1,"cix":2,"bm":0,"ix":4,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[132,64],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":12,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[0.145098039216,0.101960784314,0.01568627451,1],"ix":4},"o":{"a":0,"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":"Message","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tr","p":{"a":0,"k":[82,171],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"block","np":1,"cix":2,"bm":0,"ix":5,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[64,8],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":200,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[0.145098039216,0.101960784314,0.01568627451,1],"ix":4},"o":{"a":0,"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":"Line 2","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tr","p":{"a":0,"k":[80,96.875],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Line 2","np":1,"cix":2,"bm":0,"ix":6,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[92,8],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":200,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[0.145098039216,0.101960784314,0.01568627451,1],"ix":4},"o":{"a":0,"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":"Line 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tr","p":{"a":0,"k":[94,84.875],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Line 1","np":1,"cix":2,"bm":0,"ix":7,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[20,20],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":200,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[0.145098039216,0.101960784314,0.01568627451,1],"ix":4},"o":{"a":0,"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":"Avatar","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tr","p":{"a":0,"k":[34,90.875],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"circle 1","np":1,"cix":2,"bm":0,"ix":8,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":5,"ty":4,"nm":".onSecondaryFixedVariant","cl":"onSecondaryFixedVariant","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[252,157.5,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":0,"k":[504,315],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":28,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[0.325490196078,0.270588235294,0.164705882353,1],"ix":4},"o":{"a":0,"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":"app only","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"ct":1,"bm":0}]}],"layers":[{"ddd":0,"ind":1,"ty":4,"nm":".onSecondaryFixedVariant","cl":"onSecondaryFixedVariant","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[277,459,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":0,"k":[200,128],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":18,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[0.32549020648,0.270588248968,0.164705887437,1],"ix":4},"o":{"a":0,"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":"Frame 1321317559","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":2,"ty":0,"nm":"TrackpadAK_Success_Checkmark","refId":"comp_0","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[277,198.5,0],"ix":2,"l":2},"a":{"a":0,"k":[95,95,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"w":190,"h":190,"ip":53,"op":97,"st":53,"ct":1,"bm":0},{"ddd":0,"ind":3,"ty":4,"nm":"track matte 3","td":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[277,197.5,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":"rc","d":1,"s":{"a":0,"k":[504,315],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":28,"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}],"ip":0,"op":511,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":4,"ty":4,"nm":".onSecondaryFixed","cl":"onSecondaryFixed","tt":1,"tp":3,"sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":48,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":54,"s":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":436,"s":[100]},{"t":439,"s":[0]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[277,197.5,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,"ef":[{"ty":5,"nm":"Global Position","np":4,"mn":"Pseudo/88900","ix":1,"en":1,"ef":[{"ty":10,"nm":"Master Parent","mn":"Pseudo/88900-0001","ix":1,"v":{"a":0,"k":4,"ix":1}},{"ty":3,"nm":"Global Position","mn":"Pseudo/88900-0002","ix":2,"v":{"k":[{"s":[277,197.5],"t":47,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[277,197.5],"t":96,"i":{"x":1,"y":1},"o":{"x":0,"y":0}}]}}]}],"shapes":[{"ty":"rc","d":1,"s":{"a":0,"k":[504,315],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":28,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[0.145098039216,0.101960784314,0.01568627451,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false}],"ip":47,"op":97,"st":47,"ct":1,"bm":0},{"ddd":0,"ind":5,"ty":4,"nm":"track matte 2","td":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[277,197.5,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":"rc","d":1,"s":{"a":0,"k":[504,315],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":28,"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}],"ip":0,"op":511,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":6,"ty":0,"nm":"Trackpad-JSON_Recents-EDU","tt":1,"tp":5,"refId":"comp_1","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":12,"s":[0]},{"t":15,"s":[100]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[277,282,0],"ix":2,"l":2},"a":{"a":0,"k":[277,282,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"w":554,"h":564,"ip":12,"op":58,"st":-235,"ct":1,"bm":0},{"ddd":0,"ind":7,"ty":4,"nm":"track matte 1","td":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[277,197.5,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":"rc","d":1,"s":{"a":0,"k":[504,315],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":28,"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}],"ip":0,"op":511,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":8,"ty":0,"nm":"Trackpad-JSON_Recents-EDU","tt":1,"tp":7,"refId":"comp_1","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[277,282,0],"ix":2,"l":2},"a":{"a":0,"k":[277,282,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"w":554,"h":564,"ip":-217,"op":33,"st":-217,"ct":1,"bm":0},{"ddd":0,"ind":9,"ty":4,"nm":".onSecondaryFixedVariant","cl":"onSecondaryFixedVariant","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[277,197.5,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,"ef":[{"ty":5,"nm":"Global Position","np":4,"mn":"Pseudo/88900","ix":1,"en":1,"ef":[{"ty":10,"nm":"Master Parent","mn":"Pseudo/88900-0001","ix":1,"v":{"a":0,"k":4,"ix":1}},{"ty":3,"nm":"Global Position","mn":"Pseudo/88900-0002","ix":2,"v":{"k":[{"s":[277,197.5],"t":0,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[277,197.5],"t":49,"i":{"x":1,"y":1},"o":{"x":0,"y":0}}]}}]}],"shapes":[{"ty":"rc","d":1,"s":{"a":0,"k":[504,315],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":28,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[0.325490196078,0.270588235294,0.164705882353,1],"ix":4},"o":{"a":0,"k":50,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false}],"ip":0,"op":50,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":10,"ty":4,"nm":".secondaryFixedDim","cl":"secondaryFixedDim","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[277,197.5,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":0,"k":[504,315],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":28,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[0.850980401039,0.768627464771,0.627451002598,1],"ix":4},"o":{"a":0,"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":"illustrations: action key","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":11,"ty":4,"nm":".secondaryFixedDim","cl":"secondaryFixedDim","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[277,197.5,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":0,"k":[504,315],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":28,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"st","c":{"a":0,"k":[0.850980392157,0.76862745098,0.627450980392,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":14,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"op","nm":"Stroke align: Outside","a":{"k":[{"s":[7],"t":0,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[7],"t":96,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}}]},"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.850980392157,0.76862745098,0.627450980392,1],"ix":4},"o":{"a":0,"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":"frame","np":4,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":221,"st":0,"ct":1,"bm":0}],"markers":[],"props":{}}
\ No newline at end of file +{"v":"5.12.1","fr":60,"ip":0,"op":97,"w":554,"h":564,"nm":"Trackpad-JSON_Recents-Success","ddd":0,"assets":[{"id":"comp_0","nm":"TrackpadAK_Success_Checkmark","fr":60,"layers":[{"ddd":0,"ind":1,"ty":3,"nm":"Check Rotate","parent":2,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.12],"y":[1]},"o":{"x":[0.44],"y":[0]},"t":2,"s":[-16]},{"t":20,"s":[6]}],"ix":10},"p":{"a":0,"k":[0,0,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[95.049,95.049,100],"ix":6,"l":2}},"ao":0,"ip":0,"op":228,"st":-72,"bm":0},{"ddd":0,"ind":2,"ty":3,"nm":"Bounce","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.12],"y":[1]},"o":{"x":[0.44],"y":[0]},"t":12,"s":[0]},{"t":36,"s":[-6]}],"ix":10},"p":{"a":0,"k":[81,127,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":1,"k":[{"i":{"x":[0.263,0.263,0.833],"y":[1.126,1.126,1]},"o":{"x":[0.05,0.05,0.05],"y":[0.958,0.958,0]},"t":1,"s":[80,80,100]},{"i":{"x":[0.1,0.1,0.1],"y":[1,1,1]},"o":{"x":[0.45,0.45,0.167],"y":[0.325,0.325,0]},"t":20,"s":[105,105,100]},{"t":36,"s":[100,100,100]}],"ix":6,"l":2}},"ao":0,"ip":0,"op":300,"st":0,"bm":0},{"ddd":0,"ind":3,"ty":4,"nm":".secondaryFixedDim","cl":"secondaryFixedDim","parent":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":-0.289,"ix":10},"p":{"a":0,"k":[14.364,-33.591,0],"ix":2,"l":2},"a":{"a":0,"k":[-0.125,0,0],"ix":1,"l":2},"s":{"a":0,"k":[104.744,104.744,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-1.401,-0.007],[-10.033,11.235]],"o":[[5.954,7.288],[1.401,0.007],[0,0]],"v":[[-28.591,4.149],[-10.73,26.013],[31.482,-21.255]],"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.2],"y":[1]},"o":{"x":[0.4],"y":[0]},"t":3,"s":[0]},{"i":{"x":[0.22],"y":[1]},"o":{"x":[0.001],"y":[0.149]},"t":10,"s":[29]},{"t":27,"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.850980392157,0.76862745098,0.627450980392,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":11,"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":"Shape 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":5,"op":44,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":4,"ty":4,"nm":".onSecondaryFixedVariant","cl":"onSecondaryFixedVariant","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[95,95,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":1,"k":[{"i":{"x":[0.275,0.275,0.21],"y":[1.102,1.102,1]},"o":{"x":[0.037,0.037,0.05],"y":[0.476,0.476,0]},"t":0,"s":[0,0,100]},{"i":{"x":[0.1,0.1,0.1],"y":[1,1,1]},"o":{"x":[0.252,0.252,0.47],"y":[0.159,0.159,0]},"t":16,"s":[120,120,100]},{"t":28,"s":[100,100,100]}],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":1,"k":[{"i":{"x":[0.1,0.1],"y":[1,1]},"o":{"x":[0.32,0.32],"y":[0.11,0.11]},"t":16,"s":[148,148]},{"t":28,"s":[136,136]}],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":88,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[0.325490196078,0.270588235294,0.164705882353,1],"ix":4},"o":{"a":0,"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":"Checkbox - Widget","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"ct":1,"bm":0}]},{"id":"comp_1","nm":"Trackpad-JSON_Recents-EDU","fr":60,"layers":[{"ddd":0,"ind":2,"ty":4,"nm":".secondaryFixedDim","cl":"secondaryFixedDim","parent":3,"sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":37,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":47,"s":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":250,"s":[100]},{"t":256,"s":[0]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"k":[{"s":[0,-20,0],"t":217,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0,-20,0],"t":292,"i":{"x":1,"y":1},"o":{"x":0,"y":0}}],"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,"ef":[{"ty":5,"nm":"Super Slider","np":3,"mn":"ADBE Slider Control","ix":1,"en":1,"ef":[{"ty":0,"nm":"Slider","mn":"ADBE Slider Control-0001","ix":1,"v":{"a":1,"k":[{"i":{"x":[0.64],"y":[0.48]},"o":{"x":[0.36],"y":[0]},"t":121,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":138,"s":[17.5]},{"t":205,"s":[100]}],"ix":1}}]}],"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":1,"k":[{"i":{"x":[0.56,0.56],"y":[1,1]},"o":{"x":[0.44,0.44],"y":[0,0]},"t":62,"s":[36,36]},{"i":{"x":[0.56,0.56],"y":[1,1]},"o":{"x":[0.44,0.44],"y":[0,0]},"t":72,"s":[28,28]},{"i":{"x":[0.56,0.56],"y":[1,1]},"o":{"x":[0.44,0.44],"y":[0,0]},"t":248,"s":[28,28]},{"t":258,"s":[36,36]}],"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.850980392157,0.76862745098,0.627450980392,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":1,"k":[{"i":{"x":0.56,"y":1},"o":{"x":0.44,"y":0},"t":62,"s":[41,0],"to":[0,0],"ti":[0,0]},{"i":{"x":0.56,"y":0.56},"o":{"x":0.44,"y":0.44},"t":72,"s":[33,0],"to":[0,0],"ti":[0,0]},{"i":{"x":0.56,"y":1},"o":{"x":0.44,"y":0},"t":248,"s":[33,0],"to":[0,0],"ti":[0,0]},{"t":258,"s":[41,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":"right circle","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":1,"k":[{"i":{"x":[0.56,0.56],"y":[1,1]},"o":{"x":[0.44,0.44],"y":[0,0]},"t":62,"s":[36,36]},{"i":{"x":[0.56,0.56],"y":[1,1]},"o":{"x":[0.44,0.44],"y":[0,0]},"t":72,"s":[28,28]},{"i":{"x":[0.56,0.56],"y":[1,1]},"o":{"x":[0.44,0.44],"y":[0,0]},"t":248,"s":[28,28]},{"t":258,"s":[36,36]}],"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.850980392157,0.76862745098,0.627450980392,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":1,"k":[{"i":{"x":0.56,"y":1},"o":{"x":0.44,"y":0},"t":62,"s":[-41,0],"to":[0,0],"ti":[0,0]},{"i":{"x":0.56,"y":0.56},"o":{"x":0.44,"y":0.44},"t":72,"s":[-33,0],"to":[0,0],"ti":[0,0]},{"i":{"x":0.56,"y":1},"o":{"x":0.44,"y":0},"t":248,"s":[-33,0],"to":[0,0],"ti":[0,0]},{"t":258,"s":[-41,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":"left circle","np":2,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":1,"k":[{"i":{"x":[0.56,0.56],"y":[1,1]},"o":{"x":[0.44,0.44],"y":[0,0]},"t":62,"s":[36,36]},{"i":{"x":[0.56,0.56],"y":[1,1]},"o":{"x":[0.44,0.44],"y":[0,0]},"t":72,"s":[28,28]},{"i":{"x":[0.56,0.56],"y":[1,1]},"o":{"x":[0.44,0.44],"y":[0,0]},"t":248,"s":[28,28]},{"t":258,"s":[36,36]}],"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.850980392157,0.76862745098,0.627450980392,1],"ix":4},"o":{"a":0,"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":"size","np":2,"cix":2,"bm":0,"ix":3,"mn":"ADBE Vector Group","hd":false}],"ip":37,"op":345,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":3,"ty":4,"nm":".onSecondaryFixedVariant","cl":"onSecondaryFixedVariant","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[277,459,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":0,"k":[200,128],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":18,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[0.32549020648,0.270588248968,0.164705887437,1],"ix":4},"o":{"a":0,"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":"Frame 1321317559","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":5,"ty":4,"nm":"matte","td":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[277,197.5,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":"rc","d":1,"s":{"a":0,"k":[504,315],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":28,"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}],"ip":0,"op":600,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":6,"ty":0,"nm":"Recents_EDU Loop","parent":5,"tt":1,"tp":5,"refId":"comp_2","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,"l":2},"a":{"a":0,"k":[252,157.5,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"w":504,"h":315,"ip":0,"op":511,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":8,"ty":4,"nm":".onSecondaryFixedVariant","cl":"onSecondaryFixedVariant","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[277,197.5,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":0,"k":[504,315],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":28,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[0.325490196078,0.270588235294,0.164705882353,1],"ix":4},"o":{"a":0,"k":50,"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":"illustrations: action key","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":9,"ty":4,"nm":".secondaryFixedDim","cl":"secondaryFixedDim","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[277,197.5,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":0,"k":[504,315],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":28,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[0.850980401039,0.768627464771,0.627451002598,1],"ix":4},"o":{"a":0,"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":"illustrations: action key","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":10,"ty":4,"nm":".secondaryFixedDim","cl":"secondaryFixedDim","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[277,197.5,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":0,"k":[504,315],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":28,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"st","c":{"a":0,"k":[0.850980392157,0.76862745098,0.627450980392,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":14,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"op","nm":"Stroke align: Outside","a":{"k":[{"s":[7],"t":217,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[7],"t":292,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}}]},"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.850980392157,0.76862745098,0.627450980392,1],"ix":4},"o":{"a":0,"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":"frame","np":4,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"ct":1,"bm":0}]},{"id":"comp_2","nm":"Recents_EDU Loop","fr":60,"layers":[{"ddd":0,"ind":2,"ty":4,"nm":"CNTL || playback","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"s":true,"x":{"a":0,"k":0,"ix":3},"y":{"a":0,"k":0,"ix":4}},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"ef":[{"ty":5,"nm":"Picker","np":3,"mn":"Pseudo/@@WcSiov6sT3a4/s0XPKYEOQ","ix":1,"en":1,"ef":[{"ty":7,"nm":"Menu","mn":"Pseudo/@@WcSiov6sT3a4/s0XPKYEOQ-0001","ix":1,"v":{"a":0,"k":2,"ix":1}}]},{"ty":5,"nm":"OUTPUT","np":3,"mn":"ADBE Slider Control","ix":2,"en":1,"ef":[{"ty":0,"nm":"Slider","mn":"ADBE Slider Control-0001","ix":1,"v":{"k":[{"s":[1],"t":250,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[1.009],"t":251,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[1.038],"t":252,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[1.093],"t":253,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[1.193],"t":254,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[1.4],"t":255,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[1.636],"t":256,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[1.739],"t":257,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[1.8],"t":258,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[1.84],"t":259,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[1.871],"t":260,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[1.894],"t":261,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[1.912],"t":262,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[1.928],"t":263,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[1.94],"t":264,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[1.951],"t":265,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[1.959],"t":266,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[1.967],"t":267,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[1.973],"t":268,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[1.979],"t":269,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[1.983],"t":270,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[1.987],"t":271,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[1.99],"t":272,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[1.993],"t":273,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[1.995],"t":274,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[1.997],"t":275,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[1.998],"t":276,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[1.999],"t":278,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}}]}}]},{"ty":5,"nm":"Keys","np":3,"mn":"ADBE Slider Control","ix":3,"en":1,"ef":[{"ty":0,"nm":"Slider","mn":"ADBE Slider Control-0001","ix":1,"v":{"a":1,"k":[{"i":{"x":[0.831],"y":[0.109]},"o":{"x":[0.458],"y":[0.053]},"t":142,"s":[0]},{"i":{"x":[0.1],"y":[1]},"o":{"x":[0.15],"y":[0.43]},"t":161,"s":[0.15]},{"t":217,"s":[1],"h":1},{"i":{"x":[0.8],"y":[0.15]},"o":{"x":[0.3],"y":[0]},"t":250,"s":[1]},{"i":{"x":[0.1],"y":[1]},"o":{"x":[0.05],"y":[0.7]},"t":255,"s":[1.4]},{"t":280,"s":[2],"h":1},{"i":{"x":[0.8],"y":[0.15]},"o":{"x":[0.3],"y":[0]},"t":380,"s":[2]},{"i":{"x":[0.1],"y":[1]},"o":{"x":[0.05],"y":[0.7]},"t":385,"s":[2.4]},{"t":410,"s":[3]}],"ix":1}}]},{"ty":5,"nm":"State (holds)","np":3,"mn":"ADBE Slider Control","ix":4,"en":1,"ef":[{"ty":0,"nm":"Slider","mn":"ADBE Slider Control-0001","ix":1,"v":{"a":0,"k":0,"ix":1}}]}],"shapes":[],"ip":0,"op":451,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":3,"ty":3,"nm":"Null :: Taskbar drop","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"k":[{"s":[252,298.112,0],"t":217,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[252,298,0],"t":292,"i":{"x":1,"y":1},"o":{"x":0,"y":0}}],"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":511,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":4,"ty":0,"nm":"Taskbar Lofi","parent":3,"refId":"comp_3","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":134,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":143,"s":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":432,"s":[100]},{"t":444,"s":[0]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"s":true,"x":{"a":0,"k":0,"ix":3},"y":{"k":[{"s":[-10],"t":217,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[-10],"t":292,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}}]}},"a":{"a":0,"k":[91,15,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"ef":[{"ty":5,"nm":"Super Slider","np":3,"mn":"ADBE Slider Control","ix":1,"en":1,"ef":[{"ty":0,"nm":"Slider","mn":"ADBE Slider Control-0001","ix":1,"v":{"a":1,"k":[{"i":{"x":[0.64],"y":[0.48]},"o":{"x":[0.36],"y":[0]},"t":121,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":138,"s":[17.5]},{"t":205,"s":[100]}],"ix":1}}]}],"w":182,"h":30,"ip":0,"op":511,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":5,"ty":3,"nm":"Focus Task :: Lift & Drop","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"s":true,"x":{"a":0,"k":252,"ix":3},"y":{"k":[{"s":[119.5],"t":250,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[119.746],"t":251,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[120.54],"t":252,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[122.071],"t":253,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[124.808],"t":254,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[130.5],"t":255,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[136.982],"t":256,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[139.835],"t":257,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[141.489],"t":258,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[142.613],"t":259,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[143.442],"t":260,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[144.082],"t":261,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[144.593],"t":262,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[145.01],"t":263,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[145.354],"t":264,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[145.642],"t":265,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[145.884],"t":266,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[146.089],"t":267,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[146.262],"t":268,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[146.409],"t":269,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[146.534],"t":270,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[146.638],"t":271,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[146.725],"t":272,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[146.857],"t":274,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}}]}},"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":511,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":6,"ty":4,"nm":"matte","parent":5,"td":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,"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":"rc","d":1,"s":{"k":[{"s":[302.247,188.904],"t":251,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[301.752,188.595],"t":252,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[300.798,187.999],"t":253,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[299.093,186.933],"t":254,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[295.546,184.716],"t":255,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[291.506,182.192],"t":256,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[289.729,181.08],"t":257,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[288.698,180.436],"t":258,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[287.998,179.999],"t":259,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[287.481,179.676],"t":260,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[287.082,179.427],"t":261,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[286.764,179.227],"t":262,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[286.504,179.065],"t":263,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[286.29,178.931],"t":264,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[286.11,178.819],"t":265,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[285.832,178.645],"t":267,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[285.555,178.472],"t":270,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[285.272,178.295],"t":278,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}}]},"p":{"a":0,"k":[0,0],"ix":3},"r":{"k":[{"s":[14.603],"t":251,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[14.579],"t":252,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[14.532],"t":253,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[14.45],"t":254,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[14.278],"t":255,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[14.082],"t":256,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[13.996],"t":257,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[13.946],"t":258,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[13.912],"t":259,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[13.887],"t":260,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[13.868],"t":261,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[13.853],"t":262,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[13.84],"t":263,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[13.83],"t":264,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[13.821],"t":265,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[13.808],"t":267,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[13.794],"t":270,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[13.78],"t":278,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}}]},"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}],"ip":0,"op":511,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":7,"ty":0,"nm":"Recents_LofiApp","parent":6,"tt":1,"tp":6,"refId":"comp_4","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,"l":2},"a":{"a":0,"k":[252,157.5,0],"ix":1,"l":2},"s":{"k":[{"s":[59.97,59.97,100],"t":251,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[59.871,59.871,100],"t":252,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[59.682,59.682,100],"t":253,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[59.344,59.344,100],"t":254,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[58.64,58.64,100],"t":255,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[57.839,57.839,100],"t":256,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[57.486,57.486,100],"t":257,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[57.281,57.281,100],"t":258,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[57.142,57.142,100],"t":259,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[57.04,57.04,100],"t":260,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[56.961,56.961,100],"t":261,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[56.898,56.898,100],"t":262,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[56.846,56.846,100],"t":263,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[56.804,56.804,100],"t":264,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[56.768,56.768,100],"t":265,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[56.713,56.713,100],"t":267,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[56.658,56.658,100],"t":270,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[56.602,56.602,100],"t":278,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}}],"l":2}},"ao":0,"w":504,"h":315,"ip":0,"op":511,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":8,"ty":4,"nm":".onSecondaryFixedVariant","cl":"onSecondaryFixedVariant","parent":7,"sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":268,"s":[0]},{"t":277,"s":[100]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[252,-30.035,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[176.678,176.678,100],"ix":6,"l":2}},"ao":0,"shapes":[{"d":1,"ty":"el","s":{"a":0,"k":[18,18],"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.325490196078,0.270588235294,0.164705882353,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false}],"ip":0,"op":511,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":9,"ty":4,"nm":"second Tasks Zoom back","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[252,157.5,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":1,"k":[{"i":{"x":[0.8,0.8,0.8],"y":[0.15,0.15,1]},"o":{"x":[0.3,0.3,0.3],"y":[0,0,0]},"t":380,"s":[100,100,100]},{"i":{"x":[0.1,0.1,0.1],"y":[1,1,1]},"o":{"x":[0.05,0.05,0.05],"y":[0.7,0.7,0]},"t":385,"s":[98,98,100]},{"t":410,"s":[95,95,100]}],"ix":6,"l":2}},"ao":0,"shapes":[],"ip":0,"op":511,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":10,"ty":4,"nm":"Null :: Reposition Side Task","parent":9,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.8,"y":0.15},"o":{"x":0.3,"y":0},"t":250,"s":[-318.4,-38,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.1,"y":1},"o":{"x":0.05,"y":0.7},"t":255,"s":[-277.34,-48.1,0],"to":[0,0,0],"ti":[0,0,0]},{"t":280,"s":[-215.75,-63.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":[],"ip":197,"op":511,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":11,"ty":4,"nm":".onSecondaryFixedVariant","cl":"onSecondaryFixedVariant","parent":12,"sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":268,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":277,"s":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":383,"s":[100]},{"t":392,"s":[0]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"k":[{"s":[0,-111.72,0],"t":250,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0,-111.197,0],"t":251,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0,-109.514,0],"t":252,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0,-106.268,0],"t":253,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0,-100.462,0],"t":254,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0,-88.39,0],"t":255,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0,-74.643,0],"t":256,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0,-68.591,0],"t":257,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0,-65.083,0],"t":258,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0,-62.7,0],"t":259,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0,-60.943,0],"t":260,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0,-59.584,0],"t":261,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0,-58.5,0],"t":262,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0,-57.616,0],"t":263,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0,-56.886,0],"t":264,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0,-56.276,0],"t":265,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0,-55.762,0],"t":266,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0,-55.328,0],"t":267,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0,-54.96,0],"t":268,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0,-54.648,0],"t":269,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0,-54.385,0],"t":270,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0,-54.163,0],"t":271,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0,-53.977,0],"t":272,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0,-53.824,0],"t":273,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0,-53.698,0],"t":274,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0,-53.598,0],"t":275,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0,-53.521,0],"t":276,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0,-53.463,0],"t":277,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0,-53.424,0],"t":278,"i":{"x":1,"y":1},"o":{"x":0,"y":0}}],"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":[{"d":1,"ty":"el","s":{"a":0,"k":[18,18],"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.325490196078,0.270588235294,0.164705882353,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false}],"ip":197,"op":511,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":12,"ty":4,"nm":".onSecondaryFixedVariant","cl":"onSecondaryFixedVariant","parent":10,"sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":383,"s":[100]},{"t":392,"s":[0]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.1,"y":1},"o":{"x":0.05,"y":0.963},"t":217,"s":[-84.8,0,0],"to":[0,0,0],"ti":[0,0,0]},{"t":250,"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,"shapes":[{"ty":"rc","d":1,"s":{"a":1,"k":[{"i":{"x":[0.8,0.8],"y":[0.15,0.15]},"o":{"x":[0.3,0.3],"y":[0,0]},"t":250,"s":[302.4,189]},{"i":{"x":[0.1,0.1],"y":[1,1]},"o":{"x":[0.05,0.05],"y":[0.7,0.7]},"t":255,"s":[227.56,142.34]},{"t":280,"s":[115.3,72.35]}],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":1,"k":[{"i":{"x":[0.8],"y":[0.15]},"o":{"x":[0.3],"y":[0]},"t":250,"s":[14.6]},{"i":{"x":[0.1],"y":[1]},"o":{"x":[0.05],"y":[0.7]},"t":255,"s":[14.272]},{"t":280,"s":[13.78]}],"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[0.32549020648,0.270588248968,0.164705887437,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false}],"ip":197,"op":511,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":13,"ty":4,"nm":".onSecondaryFixedVariant","cl":"onSecondaryFixedVariant","parent":14,"sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":268,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":277,"s":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":383,"s":[100]},{"t":392,"s":[0]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"k":[{"s":[0,-53.175,0],"t":217,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0,-53.175,0],"t":292,"i":{"x":1,"y":1},"o":{"x":0,"y":0}}],"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":[{"d":1,"ty":"el","s":{"a":0,"k":[18,18],"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.325490196078,0.270588235294,0.164705882353,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false}],"ip":197,"op":511,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":14,"ty":4,"nm":".onSecondaryFixedVariant","cl":"onSecondaryFixedVariant","parent":9,"sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":383,"s":[100]},{"t":392,"s":[0]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.8,"y":0.15},"o":{"x":0.3,"y":0},"t":250,"s":[-411.95,20.325,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.1,"y":1},"o":{"x":0.05,"y":0.7},"t":255,"s":[-333.47,29.183,0],"to":[0,0,0],"ti":[0,0,0]},{"t":280,"s":[-215.75,42.47,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":"rc","d":1,"s":{"a":0,"k":[115.3,72.35],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":13.78,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[0.32549020648,0.270588248968,0.164705887437,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false}],"ip":197,"op":511,"st":0,"ct":1,"bm":0}]},{"id":"comp_3","nm":"Taskbar Lofi","fr":60,"layers":[{"ddd":0,"ind":2,"ty":4,"nm":".onSecondaryFixedVariant","cl":"onSecondaryFixedVariant","parent":9,"sr":1,"ks":{"o":{"k":[{"s":[100],"t":217,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[100],"t":292,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}}]},"r":{"a":0,"k":0,"ix":10},"p":{"k":[{"s":[76,0,0],"t":217,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[76,0,0],"t":292,"i":{"x":1,"y":1},"o":{"x":0,"y":0}}],"l":2},"a":{"a":0,"k":[167,15,0],"ix":1,"l":2},"s":{"k":[{"s":[100,100,100],"t":217,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[100,100,100],"t":292,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}}],"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[18,18],"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.32549020648,0.270588248968,0.164705887437,1],"ix":4},"o":{"a":0,"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 7511","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tr","p":{"a":0,"k":[167,15],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"app - 5","np":1,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":3,"ty":4,"nm":".onSecondaryFixedVariant","cl":"onSecondaryFixedVariant","sr":1,"ks":{"o":{"k":[{"s":[100],"t":217,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[100],"t":292,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}}]},"r":{"a":0,"k":0,"ix":10},"p":{"k":[{"s":[139,15,0],"t":217,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[139,15,0],"t":292,"i":{"x":1,"y":1},"o":{"x":0,"y":0}}],"l":2},"a":{"a":0,"k":[139,15,0],"ix":1,"l":2},"s":{"k":[{"s":[100,100,100],"t":217,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[100,100,100],"t":292,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}}],"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[18,18],"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.32549020648,0.270588248968,0.164705887437,1],"ix":4},"o":{"a":0,"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 7508","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tr","p":{"a":0,"k":[139,15],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"app - 4","np":1,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":4,"ty":4,"nm":".onSecondaryFixedVariant","cl":"onSecondaryFixedVariant","sr":1,"ks":{"o":{"k":[{"s":[100],"t":217,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[100],"t":292,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}}]},"r":{"a":0,"k":0,"ix":10},"p":{"k":[{"s":[111,15,0],"t":217,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[111,15,0],"t":292,"i":{"x":1,"y":1},"o":{"x":0,"y":0}}],"l":2},"a":{"a":0,"k":[111,15,0],"ix":1,"l":2},"s":{"k":[{"s":[100,100,100],"t":217,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[100,100,100],"t":292,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}}],"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[18,18],"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.32549020648,0.270588248968,0.164705887437,1],"ix":4},"o":{"a":0,"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 7507","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tr","p":{"a":0,"k":[111,15],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"app - 3","np":1,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":5,"ty":4,"nm":".onSecondaryFixedVariant","cl":"onSecondaryFixedVariant","sr":1,"ks":{"o":{"k":[{"s":[100],"t":217,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[100],"t":292,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}}]},"r":{"a":0,"k":0,"ix":10},"p":{"k":[{"s":[83,15,0],"t":217,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[83,15,0],"t":292,"i":{"x":1,"y":1},"o":{"x":0,"y":0}}],"l":2},"a":{"a":0,"k":[83,15,0],"ix":1,"l":2},"s":{"k":[{"s":[100,100,100],"t":217,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[100,100,100],"t":292,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}}],"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[18,18],"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.32549020648,0.270588248968,0.164705887437,1],"ix":4},"o":{"a":0,"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 7506","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tr","p":{"a":0,"k":[83,15],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"app - 2","np":1,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":6,"ty":4,"nm":".onSecondaryFixedVariant","cl":"onSecondaryFixedVariant","sr":1,"ks":{"o":{"k":[{"s":[100],"t":217,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[100],"t":292,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}}]},"r":{"a":0,"k":0,"ix":10},"p":{"k":[{"s":[55,15,0],"t":217,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[55,15,0],"t":292,"i":{"x":1,"y":1},"o":{"x":0,"y":0}}],"l":2},"a":{"a":0,"k":[55,15,0],"ix":1,"l":2},"s":{"k":[{"s":[100,100,100],"t":217,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[100,100,100],"t":292,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}}],"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[18,18],"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.32549020648,0.270588248968,0.164705887437,1],"ix":4},"o":{"a":0,"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 7505","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tr","p":{"a":0,"k":[55,15],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"app - 1","np":1,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":7,"ty":4,"nm":".onSecondaryFixedVariant","cl":"onSecondaryFixedVariant","sr":1,"ks":{"o":{"k":[{"s":[100],"t":217,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[100],"t":292,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}}]},"r":{"a":0,"k":90,"ix":10},"p":{"k":[{"s":[36,15,0],"t":217,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[36,15,0],"t":292,"i":{"x":1,"y":1},"o":{"x":0,"y":0}}],"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":{"k":[{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-5,-0.5],[5,-0.5]],"c":false}],"t":217,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-5,-0.5],[5,-0.5]],"c":false}],"t":292,"i":{"x":1,"y":1},"o":{"x":0,"y":0}}]},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.32549020648,0.270588248968,0.164705887437,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":1,"ix":5},"lc":2,"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":"divider","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":8,"ty":4,"nm":".onSecondaryFixedVariant","cl":"onSecondaryFixedVariant","parent":9,"sr":1,"ks":{"o":{"k":[{"s":[100],"t":217,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[100],"t":292,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}}]},"r":{"a":0,"k":0,"ix":10},"p":{"k":[{"s":[-70.349,0.652,0],"t":217,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-70.349,0.652,0],"t":292,"i":{"x":1,"y":1},"o":{"x":0,"y":0}}],"l":2},"a":{"a":0,"k":[6.826,6.826,0],"ix":1,"l":2},"s":{"k":[{"s":[100,100,100],"t":217,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[100,100,100],"t":292,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}}],"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-1.381,0],[0,1.381],[1.381,0],[0,-1.381]],"o":[[1.381,0],[0,-1.381],[-1.381,0],[0,1.381]],"v":[[0,2.5],[2.5,0],[0,-2.5],[-2.5,0]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.32549020648,0.270588248968,0.164705887437,1],"ix":4},"o":{"a":0,"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 12","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tr","p":{"a":0,"k":[2.5,9.501],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"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 12","np":1,"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":[[-1.381,0],[0,1.381],[1.381,0],[0,-1.381]],"o":[[1.381,0],[0,-1.381],[-1.381,0],[0,1.381]],"v":[[0,2.5],[2.5,0],[0,-2.5],[-2.5,0]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.32549020648,0.270588248968,0.164705887437,1],"ix":4},"o":{"a":0,"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 11","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tr","p":{"a":0,"k":[2.5,2.5],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 11","np":1,"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":[[-1.381,0],[0,1.381],[1.381,0],[0,-1.381]],"o":[[1.381,0],[0,-1.381],[-1.381,0],[0,1.381]],"v":[[0,2.5],[2.5,0],[0,-2.5],[-2.5,0]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.32549020648,0.270588248968,0.164705887437,1],"ix":4},"o":{"a":0,"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 5","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tr","p":{"a":0,"k":[9.5,2.5],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 5","np":1,"cix":2,"bm":0,"ix":3,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.185,0.148],[0,0],[0,0],[0,0],[-0.086,0.24],[0,0.271],[0.468,0.462],[0.671,0],[0.468,-0.468],[0,-0.671],[-0.462,-0.468],[-0.671,0],[-0.24,0.086]],"o":[[0,0],[0,0],[0,0],[0.148,-0.185],[0.086,-0.24],[0,-0.671],[-0.462,-0.468],[-0.671,0],[-0.462,0.462],[0,0.671],[0.468,0.462],[0.271,0],[0.24,-0.086]],"v":[[0.48,0.998],[2.809,3.326],[3.326,2.809],[0.998,0.48],[1.349,-0.157],[1.478,-0.924],[0.776,-2.624],[-0.924,-3.326],[-2.633,-2.624],[-3.326,-0.924],[-2.633,0.785],[-0.924,1.478],[-0.157,1.349]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":5,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ind":2,"ty":"sh","ix":3,"ks":{"a":0,"k":{"i":[[0.326,-0.326],[0.462,0],[0.326,0.32],[0,0.462],[-0.32,0.32],[-0.462,0],[-0.32,-0.326],[0,-0.462]],"o":[[-0.32,0.32],[-0.462,0],[-0.32,-0.326],[0,-0.462],[0.326,-0.326],[0.462,0],[0.326,0.32],[0,0.462]],"v":[[0.249,0.259],[-0.924,0.739],[-2.106,0.259],[-2.587,-0.924],[-2.106,-2.097],[-0.924,-2.587],[0.249,-2.097],[0.739,-0.924]],"c":true},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":5,"nm":"Merge Paths 2","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"st","c":{"a":0,"k":[0.32549020648,0.270588248968,0.164705887437,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0.4,"ix":5},"lc":1,"lj":2,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.32549020648,0.270588248968,0.164705887437,1],"ix":4},"o":{"a":0,"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":"icon","np":6,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tr","p":{"a":0,"k":[10.326,10.326],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"icon","np":1,"cix":2,"bm":0,"ix":4,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":9,"ty":4,"nm":".secondaryFixedDim","cl":"secondaryFixedDim","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[91,15,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":{"k":[{"s":[182,30],"t":217,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}},{"s":[182,30],"t":292,"i":{"x":[1,1],"y":[1,1]},"o":{"x":[0,0],"y":[0,0]}}]},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":32.672,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[0.850980392157,0.76862745098,0.627450980392,1],"ix":4},"o":{"a":0,"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":"Taskbar Lofi","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"ct":1,"bm":0}]},{"id":"comp_4","nm":"Recents_LofiApp","fr":60,"pfr":1,"layers":[{"ddd":0,"ind":1,"ty":4,"nm":".onSecondaryFixedVariant","cl":"onSecondaryFixedVariant","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[339.937,151.75,0],"ix":2,"l":2},"a":{"a":0,"k":[339.937,151.75,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[1.021,-1.766],[0,0],[-2.043,0],[0,0],[1.022,1.767]],"o":[[-1.021,-1.766],[0,0],[-1.022,1.767],[0,0],[2.043,0],[0,0]],"v":[[2.297,-7.675],[-2.297,-7.675],[-9.64,5.025],[-7.343,9],[7.343,9],[9.64,5.025]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"rd","nm":"Round Corners 1","r":{"a":0,"k":9,"ix":1},"ix":2,"mn":"ADBE Vector Filter - RC","hd":false},{"ty":"fl","c":{"a":0,"k":[0.325490196078,0.270588235294,0.164705882353,1],"ix":4},"o":{"a":0,"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":"Triangle","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tr","p":{"a":0,"k":[481.874,21],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Triangle","np":1,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[18,18],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":200,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[0.325490196078,0.270588235294,0.164705882353,1],"ix":4},"o":{"a":0,"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":"Rectangle","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tr","p":{"a":0,"k":[457.874,21],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"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","np":1,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[292,25],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":200,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[0.325490196078,0.270588235294,0.164705882353,1],"ix":4},"o":{"a":0,"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":"Text field","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tr","p":{"a":0,"k":[334,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":"Text field","np":1,"cix":2,"bm":0,"ix":3,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[109,28],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":12,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[0.325490196078,0.270588235294,0.164705882353,1],"ix":4},"o":{"a":0,"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":"Sent","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tr","p":{"a":0,"k":[425.5,208.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":"Sent","np":1,"cix":2,"bm":0,"ix":4,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[160,56],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":14,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[0.325490196078,0.270588235294,0.164705882353,1],"ix":4},"o":{"a":0,"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":"Sent","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tr","p":{"a":0,"k":[400,158.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":"Sent","np":1,"cix":2,"bm":0,"ix":5,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[126,40],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":14,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[0.325490196078,0.270588235294,0.164705882353,1],"ix":4},"o":{"a":0,"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":"Received","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tr","p":{"a":0,"k":[251,78.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":"Received","np":1,"cix":2,"bm":0,"ix":6,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":".onSecondaryFixed","cl":"onSecondaryFixed","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[334,157.5,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":0,"k":[340,315],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":16,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[0.145098039216,0.101960784314,0.01568627451,1],"ix":4},"o":{"a":0,"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":"Message","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":3,"ty":4,"nm":".onSecondaryFixedVariant","cl":"onSecondaryFixedVariant","parent":4,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[82,171.125,0],"ix":2,"l":2},"a":{"a":0,"k":[82,171.125,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[64,8],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":39.375,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[0.325490196078,0.270588235294,0.164705882353,1],"ix":4},"o":{"a":0,"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":"Line 2","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tr","p":{"a":0,"k":[80,177.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Line 4","np":1,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[92,8],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":39.375,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[0.325490196078,0.270588235294,0.164705882353,1],"ix":4},"o":{"a":0,"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":"Line 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tr","p":{"a":0,"k":[94,165.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Line 3","np":1,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[20,20],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":39.375,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[0.325490196078,0.270588235294,0.164705882353,1],"ix":4},"o":{"a":0,"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":"Avatar","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tr","p":{"a":0,"k":[34,171.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"circle 2","np":1,"cix":2,"bm":0,"ix":3,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":4,"ty":4,"nm":".onSecondaryFixed","cl":"onSecondaryFixed","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[82.5,140.5,0],"ix":2,"l":2},"a":{"a":0,"k":[82,140.938,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[132,22],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":39.375,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[0.145098039216,0.101960784314,0.01568627451,1],"ix":4},"o":{"a":0,"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":"Search","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tr","p":{"a":0,"k":[82,31.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":"header","np":1,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[64,8],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":200,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[0.145098039216,0.101960784314,0.01568627451,1],"ix":4},"o":{"a":0,"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":"Line 2","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tr","p":{"a":0,"k":[80,257.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":"Line 6","np":1,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[92,8],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":200,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[0.145098039216,0.101960784314,0.01568627451,1],"ix":4},"o":{"a":0,"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":"Line 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tr","p":{"a":0,"k":[94,245.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":"Line 5","np":1,"cix":2,"bm":0,"ix":3,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[20,20],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":200,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[0.145098039216,0.101960784314,0.01568627451,1],"ix":4},"o":{"a":0,"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":"Avatar","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tr","p":{"a":0,"k":[34,251.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":"circle 3","np":1,"cix":2,"bm":0,"ix":4,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[132,64],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":12,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[0.145098039216,0.101960784314,0.01568627451,1],"ix":4},"o":{"a":0,"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":"Message","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tr","p":{"a":0,"k":[82,171],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"block","np":1,"cix":2,"bm":0,"ix":5,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[64,8],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":200,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[0.145098039216,0.101960784314,0.01568627451,1],"ix":4},"o":{"a":0,"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":"Line 2","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tr","p":{"a":0,"k":[80,96.875],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Line 2","np":1,"cix":2,"bm":0,"ix":6,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[92,8],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":200,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[0.145098039216,0.101960784314,0.01568627451,1],"ix":4},"o":{"a":0,"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":"Line 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tr","p":{"a":0,"k":[94,84.875],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Line 1","np":1,"cix":2,"bm":0,"ix":7,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[20,20],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":200,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[0.145098039216,0.101960784314,0.01568627451,1],"ix":4},"o":{"a":0,"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":"Avatar","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tr","p":{"a":0,"k":[34,90.875],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"circle 1","np":1,"cix":2,"bm":0,"ix":8,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":5,"ty":4,"nm":".onSecondaryFixedVariant","cl":"onSecondaryFixedVariant","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[252,157.5,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":0,"k":[504,315],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":28,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[0.325490196078,0.270588235294,0.164705882353,1],"ix":4},"o":{"a":0,"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":"app only","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"ct":1,"bm":0}]}],"layers":[{"ddd":0,"ind":1,"ty":4,"nm":".onSecondaryFixedVariant","cl":"onSecondaryFixedVariant","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[277,459,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":0,"k":[200,128],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":18,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[0.32549020648,0.270588248968,0.164705887437,1],"ix":4},"o":{"a":0,"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":"Frame 1321317559","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":2,"ty":0,"nm":"TrackpadAK_Success_Checkmark","refId":"comp_0","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[277,198.5,0],"ix":2,"l":2},"a":{"a":0,"k":[95,95,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"w":190,"h":190,"ip":53,"op":97,"st":53,"ct":1,"bm":0},{"ddd":0,"ind":3,"ty":4,"nm":"track matte 3","td":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[277,197.5,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":"rc","d":1,"s":{"a":0,"k":[504,315],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":28,"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}],"ip":0,"op":511,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":4,"ty":4,"nm":".onSecondaryFixed","cl":"onSecondaryFixed","tt":1,"tp":3,"sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":48,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":54,"s":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":436,"s":[100]},{"t":439,"s":[0]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[277,197.5,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,"ef":[{"ty":5,"nm":"Global Position","np":4,"mn":"Pseudo/88900","ix":1,"en":1,"ef":[{"ty":10,"nm":"Master Parent","mn":"Pseudo/88900-0001","ix":1,"v":{"a":0,"k":4,"ix":1}},{"ty":3,"nm":"Global Position","mn":"Pseudo/88900-0002","ix":2,"v":{"k":[{"s":[277,197.5],"t":47,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[277,197.5],"t":96,"i":{"x":1,"y":1},"o":{"x":0,"y":0}}]}}]}],"shapes":[{"ty":"rc","d":1,"s":{"a":0,"k":[504,315],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":28,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[0.145098039216,0.101960784314,0.01568627451,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false}],"ip":47,"op":97,"st":47,"ct":1,"bm":0},{"ddd":0,"ind":5,"ty":4,"nm":"track matte 2","td":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[277,197.5,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":"rc","d":1,"s":{"a":0,"k":[504,315],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":28,"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}],"ip":0,"op":511,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":6,"ty":0,"nm":"Trackpad-JSON_Recents-EDU","tt":1,"tp":5,"refId":"comp_1","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":12,"s":[0]},{"t":15,"s":[100]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[277,282,0],"ix":2,"l":2},"a":{"a":0,"k":[277,282,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"w":554,"h":564,"ip":12,"op":58,"st":-235,"ct":1,"bm":0},{"ddd":0,"ind":7,"ty":4,"nm":"track matte 1","td":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[277,197.5,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":"rc","d":1,"s":{"a":0,"k":[504,315],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":28,"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}],"ip":0,"op":511,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":8,"ty":0,"nm":"Trackpad-JSON_Recents-EDU","tt":1,"tp":7,"refId":"comp_1","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[277,282,0],"ix":2,"l":2},"a":{"a":0,"k":[277,282,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"w":554,"h":564,"ip":-217,"op":33,"st":-217,"ct":1,"bm":0},{"ddd":0,"ind":9,"ty":4,"nm":".onSecondaryFixedVariant","cl":"onSecondaryFixedVariant","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[277,197.5,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,"ef":[{"ty":5,"nm":"Global Position","np":4,"mn":"Pseudo/88900","ix":1,"en":1,"ef":[{"ty":10,"nm":"Master Parent","mn":"Pseudo/88900-0001","ix":1,"v":{"a":0,"k":4,"ix":1}},{"ty":3,"nm":"Global Position","mn":"Pseudo/88900-0002","ix":2,"v":{"k":[{"s":[277,197.5],"t":0,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[277,197.5],"t":49,"i":{"x":1,"y":1},"o":{"x":0,"y":0}}]}}]}],"shapes":[{"ty":"rc","d":1,"s":{"a":0,"k":[504,315],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":28,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[0.325490196078,0.270588235294,0.164705882353,1],"ix":4},"o":{"a":0,"k":50,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false}],"ip":0,"op":50,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":10,"ty":4,"nm":".secondaryFixedDim","cl":"secondaryFixedDim","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[277,197.5,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":0,"k":[504,315],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":28,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[0.850980401039,0.768627464771,0.627451002598,1],"ix":4},"o":{"a":0,"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":"illustrations: action key","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":11,"ty":4,"nm":".secondaryFixedDim","cl":"secondaryFixedDim","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[277,197.5,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":0,"k":[504,315],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":28,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"st","c":{"a":0,"k":[0.850980392157,0.76862745098,0.627450980392,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":14,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"op","nm":"Stroke align: Outside","a":{"k":[{"s":[7],"t":0,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[7],"t":96,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}}]},"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.850980392157,0.76862745098,0.627450980392,1],"ix":4},"o":{"a":0,"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":"frame","np":4,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":221,"st":0,"ct":1,"bm":0}],"markers":[],"props":{}}
\ No newline at end of file diff --git a/packages/SystemUI/res/values-af/strings.xml b/packages/SystemUI/res/values-af/strings.xml index 22d80135a2ac..b91bfd6c9520 100644 --- a/packages/SystemUI/res/values-af/strings.xml +++ b/packages/SystemUI/res/values-af/strings.xml @@ -35,14 +35,14 @@      <string name="extreme_battery_saver_text" msgid="8455810156739865335">"Ekstreem"</string>      <string name="status_bar_settings_auto_rotation" msgid="8329080442278431708">"Outodraai skerm"</string>      <string name="usb_device_permission_prompt" msgid="4414719028369181772">"Gee <xliff:g id="APPLICATION">%1$s</xliff:g> toegang tot <xliff:g id="USB_DEVICE">%2$s</xliff:g>?"</string> -    <string name="usb_device_permission_prompt_warn" msgid="2309129784984063656">"Laat <xliff:g id="APPLICATION">%1$s</xliff:g> toe om by <xliff:g id="USB_DEVICE">%2$s</xliff:g> in te gaan?\nOpneemtoestemming is nie aan hierdie program verleen nie, maar dit kan oudio deur hierdie USB-toestel vasvang."</string> +    <string name="usb_device_permission_prompt_warn" msgid="2309129784984063656">"Laat <xliff:g id="APPLICATION">%1$s</xliff:g> toe om by <xliff:g id="USB_DEVICE">%2$s</xliff:g> in te gaan?\nOpneemtoestemming is nie aan hierdie app verleen nie, maar dit kan oudio deur hierdie USB-toestel vasvang."</string>      <string name="usb_audio_device_permission_prompt_title" msgid="4221351137250093451">"Gee <xliff:g id="APPLICATION">%1$s</xliff:g> toegang tot <xliff:g id="USB_DEVICE">%2$s</xliff:g>?"</string>      <string name="usb_audio_device_confirm_prompt_title" msgid="8828406516732985696">"Maak <xliff:g id="APPLICATION">%1$s</xliff:g> oop om <xliff:g id="USB_DEVICE">%2$s</xliff:g> te hanteer?"</string>      <string name="usb_audio_device_prompt_warn" msgid="2504972133361130335">"Opneemtoestemming is nie aan hierdie program verleen nie, maar dit kan oudio deur hierdie USB-toestel opneem. As jy <xliff:g id="APPLICATION">%1$s</xliff:g> met hierdie toestel gebruik, kan dit verhinder dat jy oproepe, kennisgewings en wekkers hoor."</string>      <string name="usb_audio_device_prompt" msgid="7944987408206252949">"As jy <xliff:g id="APPLICATION">%1$s</xliff:g> met hierdie toestel gebruik, kan dit verhinder dat jy oproepe, kennisgewings en wekkers hoor."</string>      <string name="usb_accessory_permission_prompt" msgid="717963550388312123">"Gee <xliff:g id="APPLICATION">%1$s</xliff:g> toegang tot <xliff:g id="USB_ACCESSORY">%2$s</xliff:g>?"</string>      <string name="usb_device_confirm_prompt" msgid="4091711472439910809">"Hanteer <xliff:g id="USB_DEVICE">%2$s</xliff:g> met <xliff:g id="APPLICATION">%1$s</xliff:g>?"</string> -    <string name="usb_device_confirm_prompt_warn" msgid="990208659736311769">"Maak <xliff:g id="APPLICATION">%1$s</xliff:g> oop om <xliff:g id="USB_DEVICE">%2$s</xliff:g> te hanteer?\nOpneemtoestemming is nie aan hierdie program verleen nie, maar dit kan oudio deur hierdie USB-toestel vasvang."</string> +    <string name="usb_device_confirm_prompt_warn" msgid="990208659736311769">"Maak <xliff:g id="APPLICATION">%1$s</xliff:g> oop om <xliff:g id="USB_DEVICE">%2$s</xliff:g> te hanteer?\nOpneemtoestemming is nie aan hierdie app verleen nie, maar dit kan oudio deur hierdie USB-toestel vasvang."</string>      <string name="usb_accessory_confirm_prompt" msgid="5728408382798643421">"Hanteer <xliff:g id="USB_ACCESSORY">%2$s</xliff:g> met <xliff:g id="APPLICATION">%1$s</xliff:g>?"</string>      <string name="usb_accessory_uri_prompt" msgid="6756649383432542382">"Geen geïnstalleerde programme werk met hierdie USB-toebehoorsel nie. Vind meer uit oor hierdie toebehoorsel by <xliff:g id="URL">%1$s</xliff:g>"</string>      <string name="title_usb_accessory" msgid="1236358027511638648">"USB-toebehoorsel"</string> @@ -83,7 +83,7 @@      <string name="screenshot_failed_to_save_user_locked_text" msgid="6156607948256936920">"Toestel moet ontsluit word voordat skermkiekie gestoor kan word"</string>      <string name="screenshot_failed_to_save_unknown_text" msgid="1506621600548684129">"Probeer weer skermkiekie neem"</string>      <string name="screenshot_failed_to_save_text" msgid="7232739948999195960">"Kan nie skermkiekie stoor nie"</string> -    <string name="screenshot_failed_to_capture_text" msgid="7818288545874407451">"Die program of jou organisasie laat nie toe dat skermkiekies geneem word nie"</string> +    <string name="screenshot_failed_to_capture_text" msgid="7818288545874407451">"Die app of jou organisasie laat nie toe dat skermkiekies geneem word nie"</string>      <string name="screenshot_blocked_by_admin" msgid="5486757604822795797">"Die neem van skermskote word deur jou IT-admin geblokkeer"</string>      <string name="screenshot_edit_label" msgid="8754981973544133050">"Wysig"</string>      <string name="screenshot_edit_description" msgid="3333092254706788906">"Wysig skermkiekie"</string> @@ -529,7 +529,10 @@      <string name="communal_widgets_disclaimer_text" msgid="1423545475160506349">"Om ’n app met ’n legstuk oop te maak, sal jy moet verifieer dat dit jy is. Hou ook in gedagte dat enigeen dit kan bekyk, selfs wanneer jou tablet gesluit is. Sommige legstukke is moontlik nie vir jou sluitskerm bedoel nie en dit kan onveilig wees om dit hier by te voeg."</string>      <string name="communal_widgets_disclaimer_button" msgid="4423059765740780753">"Het dit"</string>      <string name="glanceable_hub_lockscreen_affordance_label" msgid="1461611028615752141">"Legstukke"</string> -    <string name="glanceable_hub_lockscreen_affordance_disabled_text" msgid="511359420883794513">"As jy legstukke as ’n kortpad op die sluitskerm wil byvoeg, moet jy seker maak dit is in instellings geaktiveer."</string> +    <!-- no translation found for glanceable_hub_lockscreen_affordance_disabled_text (599170482297578735) --> +    <skip /> +    <!-- no translation found for glanceable_hub_lockscreen_affordance_action_button_label (7636151133344609375) --> +    <skip />      <string name="accessibility_multi_user_switch_switcher" msgid="5330448341251092660">"Wissel gebruiker"</string>      <string name="accessibility_multi_user_list_switcher" msgid="8574105376229857407">"aftrekkieslys"</string>      <string name="guest_exit_guest_dialog_message" msgid="8183450985628495709">"Alle programme en data in hierdie sessie sal uitgevee word."</string> @@ -875,14 +878,10 @@      <string name="system_multitasking_splitscreen_focus_lhs" msgid="3164261844398662518">"Skakel oor na app links of bo terwyl jy verdeelde skerm gebruik"</string>      <string name="system_multitasking_replace" msgid="7410071959803642125">"Tydens verdeelde skerm: verplaas ’n app van een skerm na ’n ander"</string>      <string name="system_multitasking_move_to_next_display" msgid="6169737557526976997">"Skuif aktiewe venster tussen skerms"</string> -    <!-- no translation found for system_desktop_mode_snap_left_window (8636204689945162298) --> -    <skip /> -    <!-- no translation found for system_desktop_mode_snap_right_window (2162560187639411929) --> -    <skip /> -    <!-- no translation found for system_desktop_mode_toggle_maximize_window (4084100093691768239) --> -    <skip /> -    <!-- no translation found for system_desktop_mode_minimize_window (1248714536732927092) --> -    <skip /> +    <string name="system_desktop_mode_snap_left_window" msgid="8636204689945162298">"Skuif venster na links"</string> +    <string name="system_desktop_mode_snap_right_window" msgid="2162560187639411929">"Skuif venster na regs"</string> +    <string name="system_desktop_mode_toggle_maximize_window" msgid="4084100093691768239">"Maak venster groot"</string> +    <string name="system_desktop_mode_minimize_window" msgid="1248714536732927092">"Maak venster klein"</string>      <string name="keyboard_shortcut_group_input" msgid="6888282716546625610">"Invoer"</string>      <string name="input_switch_input_language_next" msgid="3782155659868227855">"Skakel oor na volgende taal"</string>      <string name="input_switch_input_language_previous" msgid="6043341362202336623">"Skakel oor na vorige taal"</string> @@ -996,7 +995,7 @@      <string name="tuner_left" msgid="5758862558405684490">"Links"</string>      <string name="tuner_right" msgid="8247571132790812149">"Regs"</string>      <string name="tuner_menu" msgid="363690665924769420">"Kieslys"</string> -    <string name="tuner_app" msgid="6949280415826686972">"<xliff:g id="APP">%1$s</xliff:g>-program"</string> +    <string name="tuner_app" msgid="6949280415826686972">"<xliff:g id="APP">%1$s</xliff:g>-app"</string>      <string name="notification_channel_alerts" msgid="3385787053375150046">"Opletberigte"</string>      <string name="notification_channel_battery" msgid="9219995638046695106">"Battery"</string>      <string name="notification_channel_screenshot" msgid="7665814998932211997">"Skermkiekies"</string> @@ -1007,8 +1006,8 @@      <string name="notification_channel_accessibility" msgid="8956203986976245820">"Toeganklikheid"</string>      <string name="instant_apps" msgid="8337185853050247304">"Kitsapps"</string>      <string name="instant_apps_title" msgid="8942706782103036910">"<xliff:g id="APP">%1$s</xliff:g> loop tans"</string> -    <string name="instant_apps_message" msgid="6112428971833011754">"Program is oopgemaak sonder dat dit geïnstalleer is."</string> -    <string name="instant_apps_message_with_help" msgid="1816952263531203932">"Program is oopgemaak sonder dat dit geïnstalleer is. Tik om meer te wete te kom."</string> +    <string name="instant_apps_message" msgid="6112428971833011754">"App is oopgemaak sonder dat dit geïnstalleer is."</string> +    <string name="instant_apps_message_with_help" msgid="1816952263531203932">"App is oopgemaak sonder dat dit geïnstalleer is. Tik om meer inligting te kry."</string>      <string name="app_info" msgid="5153758994129963243">"Appinligting"</string>      <string name="go_to_web" msgid="636673528981366511">"Gaan na blaaier"</string>      <string name="mobile_data" msgid="4564407557775397216">"Mobiele data"</string> @@ -1019,8 +1018,8 @@      <string name="dnd_is_off" msgid="3185706903793094463">"Moenie Steur Nie is af"</string>      <string name="dnd_is_on" msgid="7009368176361546279">"Moenie Steur Nie is aan"</string>      <string name="qs_dnd_prompt_auto_rule" msgid="3535469468310002616">"\'n Outomatiese reël (<xliff:g id="ID_1">%s</xliff:g>) het Moenie Steur Nie aangeskakel."</string> -    <string name="qs_dnd_prompt_app" msgid="4027984447935396820">"\'n Program (<xliff:g id="ID_1">%s</xliff:g>) het Moenie Steur Nie aangeskakel."</string> -    <string name="qs_dnd_prompt_auto_rule_app" msgid="1841469944118486580">"\'n Outomatiese reël of program het Moenie Steur Nie aangeskakel."</string> +    <string name="qs_dnd_prompt_app" msgid="4027984447935396820">"\'n App (<xliff:g id="ID_1">%s</xliff:g>) het Moenie Steur Nie aangeskakel."</string> +    <string name="qs_dnd_prompt_auto_rule_app" msgid="1841469944118486580">"\'n Outomatiese reël of app het Moenie Steur Nie aangeskakel."</string>      <string name="running_foreground_services_title" msgid="5137313173431186685">"Programme wat op die agtergrond loop"</string>      <string name="running_foreground_services_msg" msgid="3009459259222695385">"Tik vir besonderhede oor battery- en datagebruik"</string>      <string name="mobile_data_disable_title" msgid="5366476131671617790">"Skakel mobiele data af?"</string> @@ -1030,11 +1029,11 @@      <string name="auto_data_switch_disable_message" msgid="5885533647399535852">"Mobiele data sal nie outomaties op grond van beskikbaarheid oorskakel nie"</string>      <string name="auto_data_switch_dialog_negative_button" msgid="2370876875999891444">"Nee, dankie"</string>      <string name="auto_data_switch_dialog_positive_button" msgid="8531782041263087564">"Ja, skakel oor"</string> -    <string name="touch_filtered_warning" msgid="8119511393338714836">"Instellings kan nie jou antwoord verifieer nie omdat \'n program \'n toestemmingversoek verberg."</string> +    <string name="touch_filtered_warning" msgid="8119511393338714836">"Instellings kan nie jou antwoord verifieer nie omdat \'n app \'n toestemmingversoek verberg."</string>      <string name="slice_permission_title" msgid="3262615140094151017">"Laat <xliff:g id="APP_0">%1$s</xliff:g> toe om <xliff:g id="APP_2">%2$s</xliff:g>-skyfies te wys?"</string>      <string name="slice_permission_text_1" msgid="6675965177075443714">"– Dit kan inligting van <xliff:g id="APP">%1$s</xliff:g> af lees"</string>      <string name="slice_permission_text_2" msgid="6758906940360746983">"– Dit kan handelinge binne <xliff:g id="APP">%1$s</xliff:g> uitvoer"</string> -    <string name="slice_permission_checkbox" msgid="4242888137592298523">"Laat <xliff:g id="APP">%1$s</xliff:g> toe om skyfies uit enige program te gebruik"</string> +    <string name="slice_permission_checkbox" msgid="4242888137592298523">"Laat <xliff:g id="APP">%1$s</xliff:g> toe om skyfies uit enige app te gebruik"</string>      <string name="slice_permission_allow" msgid="6340449521277951123">"Laat toe"</string>      <string name="slice_permission_deny" msgid="6870256451658176895">"Weier"</string>      <string name="auto_saver_title" msgid="6873691178754086596">"Tik om Batterybespaarder te skeduleer"</string> @@ -1419,7 +1418,6 @@      <string name="shortcut_helper_category_system_controls" msgid="3153344561395751020">"Stelselkontroles"</string>      <string name="shortcut_helper_category_system_apps" msgid="6001757545472556810">"Stelselapps"</string>      <string name="shortcut_helper_category_multitasking" msgid="7413381961404090136">"Verrigting van veelvuldige take"</string> -    <string name="shortcutHelper_category_recent_apps" msgid="7918731953612377145">"Onlangse apps"</string>      <string name="shortcutHelper_category_split_screen" msgid="1159669813444812244">"Verdeelde skerm"</string>      <string name="shortcut_helper_category_input" msgid="8674018654124839566">"Invoer"</string>      <string name="shortcut_helper_category_app_shortcuts" msgid="8010249408308587117">"Appkortpaaie"</string> @@ -1428,25 +1426,31 @@      <string name="shortcut_helper_title" msgid="8567500639300970049">"Kortpadsleutels"</string>      <string name="shortcut_helper_customize_mode_title" msgid="1467657117101096033">"Pasmaak kortpadsleutels"</string>      <string name="shortcut_customize_mode_remove_shortcut_dialog_title" msgid="7106420484940737208">"Verwyder kortpad?"</string> +    <!-- no translation found for shortcut_customize_mode_reset_shortcut_dialog_title (8131184731313717780) --> +    <skip />      <string name="shortcut_customize_mode_add_shortcut_description" msgid="6866025005347407696">"Druk sleutel om kortpad toe te wys"</string>      <string name="shortcut_customize_mode_remove_shortcut_description" msgid="6851287900585057128">"Dit sal jou gepasmaakte kortpad permanent uitvee."</string> +    <!-- no translation found for shortcut_customize_mode_reset_shortcut_description (2081849715634358684) --> +    <skip />      <string name="shortcut_helper_search_placeholder" msgid="5488547526269871819">"Soekkortpaaie"</string>      <string name="shortcut_helper_no_search_results" msgid="8554756497996692160">"Geen soekresultate nie"</string>      <string name="shortcut_helper_content_description_collapse_icon" msgid="8028015738431664954">"Vou ikoon in"</string>      <string name="shortcut_helper_content_description_meta_key" msgid="3989315044342124818">"Ikoon vir Handeling- of Meta-sleutel"</string>      <string name="shortcut_helper_content_description_plus_icon" msgid="6152683734278299020">"Plusikoon"</string>      <string name="shortcut_helper_customize_button_text" msgid="3124983502748069338">"Pasmaak"</string> +    <!-- no translation found for shortcut_helper_reset_button_text (2548243844050633472) --> +    <skip />      <string name="shortcut_helper_done_button_text" msgid="7249905942125386191">"Klaar"</string>      <string name="shortcut_helper_content_description_expand_icon" msgid="1084435697860417390">"Vou ikoon uit"</string>      <string name="shortcut_helper_key_combinations_or_separator" msgid="7082902112102125540">"of"</string> -    <!-- no translation found for shortcut_helper_key_combinations_and_conjunction (6138186504075880224) --> -    <skip /> -    <!-- no translation found for shortcut_helper_key_combinations_forward_slash (1238652537199346970) --> -    <skip /> +    <string name="shortcut_helper_key_combinations_and_conjunction" msgid="6138186504075880224">"plus"</string> +    <string name="shortcut_helper_key_combinations_forward_slash" msgid="1238652537199346970">"vorentoe-skuinsstreep"</string>      <string name="shortcut_helper_content_description_drag_handle" msgid="5092426406009848110">"Sleephandvatsel"</string>      <string name="shortcut_helper_keyboard_settings_buttons_label" msgid="6720967595915985259">"Sleutelbordinstellings"</string>      <string name="shortcut_helper_customize_dialog_set_shortcut_button_label" msgid="4754492225010429382">"Stel kortpad"</string>      <string name="shortcut_helper_customize_dialog_remove_button_label" msgid="6546386970440176552">"Verwyder"</string> +    <!-- no translation found for shortcut_helper_customize_dialog_reset_button_label (7645535254306312685) --> +    <skip />      <string name="shortcut_helper_customize_dialog_cancel_button_label" msgid="5595546460431741178">"Kanselleer"</string>      <string name="shortcut_helper_add_shortcut_dialog_placeholder" msgid="9154297849458741995">"Druk sleutel"</string>      <string name="shortcut_customizer_key_combination_in_use_error_message" msgid="7693234470526626327">"Sleutelkombinasie is reeds in gebruik. Probeer ’n ander sleutel."</string> diff --git a/packages/SystemUI/res/values-am/strings.xml b/packages/SystemUI/res/values-am/strings.xml index e36aab27d541..cf73b71168b9 100644 --- a/packages/SystemUI/res/values-am/strings.xml +++ b/packages/SystemUI/res/values-am/strings.xml @@ -529,7 +529,10 @@      <string name="communal_widgets_disclaimer_text" msgid="1423545475160506349">"ምግብር በመጠቀም መተግበሪያ ለመክፈት እርስዎ መሆንዎን ማረጋገጥ አለብዎት። እንዲሁም የእርስዎ ጡባዊ በተቆለፈበት ጊዜ እንኳን ማንኛውም ሰው እነሱን ማየት እንደሚችል ከግምት ውስጥ ያስገቡ። አንዳንድ ምግብሮች ለማያ ገፅ ቁልፍዎ የታሰቡ ላይሆኑ ይችላሉ እና እዚህ ለማከል አስተማማኝ ላይሆኑ ይችላሉ።"</string>      <string name="communal_widgets_disclaimer_button" msgid="4423059765740780753">"ገባኝ"</string>      <string name="glanceable_hub_lockscreen_affordance_label" msgid="1461611028615752141">"ምግብሮች"</string> -    <string name="glanceable_hub_lockscreen_affordance_disabled_text" msgid="511359420883794513">"ማያ ገጽ ቁልፍ ላይ ምግብሮችን እንደ አቋራጭ ለማከል በቅንብሮች ውስጥ መንቃቱን ያረጋግጡ።"</string> +    <!-- no translation found for glanceable_hub_lockscreen_affordance_disabled_text (599170482297578735) --> +    <skip /> +    <!-- no translation found for glanceable_hub_lockscreen_affordance_action_button_label (7636151133344609375) --> +    <skip />      <string name="accessibility_multi_user_switch_switcher" msgid="5330448341251092660">"ተጠቃሚ ቀይር"</string>      <string name="accessibility_multi_user_list_switcher" msgid="8574105376229857407">"ወደታች ተጎታች ምናሌ"</string>      <string name="guest_exit_guest_dialog_message" msgid="8183450985628495709">"በዚህ ክፍለ-ጊዜ ውስጥ ያሉ ሁሉም መተግበሪያዎች እና ውሂብ ይሰረዛሉ።"</string> @@ -875,14 +878,10 @@      <string name="system_multitasking_splitscreen_focus_lhs" msgid="3164261844398662518">"የተከፈለ ማያ ገጽን ሲጠቀሙ በቀኝ ወይም ከላይ ወዳለ መተግበሪያ ይቀይሩ"</string>      <string name="system_multitasking_replace" msgid="7410071959803642125">"በተከፈለ ማያ ገጽ ወቅት፡- መተግበሪያን ከአንዱ ወደ ሌላው ተካ"</string>      <string name="system_multitasking_move_to_next_display" msgid="6169737557526976997">"በማሳያዎች መካከል ንቁ መስኮትን ያንቀሳቅሱ"</string> -    <!-- no translation found for system_desktop_mode_snap_left_window (8636204689945162298) --> -    <skip /> -    <!-- no translation found for system_desktop_mode_snap_right_window (2162560187639411929) --> -    <skip /> -    <!-- no translation found for system_desktop_mode_toggle_maximize_window (4084100093691768239) --> -    <skip /> -    <!-- no translation found for system_desktop_mode_minimize_window (1248714536732927092) --> -    <skip /> +    <string name="system_desktop_mode_snap_left_window" msgid="8636204689945162298">"መስኮትን ወደ ግራ አሳንስ"</string> +    <string name="system_desktop_mode_snap_right_window" msgid="2162560187639411929">"መስኮትን ወደ ቀኝ አሳንስ"</string> +    <string name="system_desktop_mode_toggle_maximize_window" msgid="4084100093691768239">"መስኮትን አሳድግ"</string> +    <string name="system_desktop_mode_minimize_window" msgid="1248714536732927092">"መስኮት አሳንስ"</string>      <string name="keyboard_shortcut_group_input" msgid="6888282716546625610">"ግቤት"</string>      <string name="input_switch_input_language_next" msgid="3782155659868227855">"ወደ ቀጣዩ ቋንቋ ቀይር"</string>      <string name="input_switch_input_language_previous" msgid="6043341362202336623">"ወደ ቀዳሚ ቋንቋ ቀይር"</string> @@ -1419,7 +1418,6 @@      <string name="shortcut_helper_category_system_controls" msgid="3153344561395751020">"የሥርዓት መቆጣጠሪያዎች"</string>      <string name="shortcut_helper_category_system_apps" msgid="6001757545472556810">"የሥርዓት መተግበሪያዎች"</string>      <string name="shortcut_helper_category_multitasking" msgid="7413381961404090136">"ብዙ ተግባራትን በተመሳሳይ ጊዜ ማከናወን"</string> -    <string name="shortcutHelper_category_recent_apps" msgid="7918731953612377145">"የቅርብ ጊዜ መተግበሪያዎች"</string>      <string name="shortcutHelper_category_split_screen" msgid="1159669813444812244">"የተከፈለ ማያ ገፅ"</string>      <string name="shortcut_helper_category_input" msgid="8674018654124839566">"ግብዓት"</string>      <string name="shortcut_helper_category_app_shortcuts" msgid="8010249408308587117">"የመተግበሪያ አቋራጮች"</string> @@ -1428,25 +1426,31 @@      <string name="shortcut_helper_title" msgid="8567500639300970049">"የቁልፍ ሰሌዳ አቋራጮች"</string>      <string name="shortcut_helper_customize_mode_title" msgid="1467657117101096033">"የቁልፍ ሰሌዳ አቋራጮችን ያብጁ"</string>      <string name="shortcut_customize_mode_remove_shortcut_dialog_title" msgid="7106420484940737208">"አቋራጭ ይወገድ?"</string> +    <!-- no translation found for shortcut_customize_mode_reset_shortcut_dialog_title (8131184731313717780) --> +    <skip />      <string name="shortcut_customize_mode_add_shortcut_description" msgid="6866025005347407696">"አቋራጭ ለመመደብ ቁልፍ ይጫኑ"</string>      <string name="shortcut_customize_mode_remove_shortcut_description" msgid="6851287900585057128">"ይህ ብጁ አቋራጭዎን በቋሚነት ይሰርዛል።"</string> +    <!-- no translation found for shortcut_customize_mode_reset_shortcut_description (2081849715634358684) --> +    <skip />      <string name="shortcut_helper_search_placeholder" msgid="5488547526269871819">"የፍለጋ አቋራጮች"</string>      <string name="shortcut_helper_no_search_results" msgid="8554756497996692160">"ምንም የፍለጋ ውጤቶች የሉም"</string>      <string name="shortcut_helper_content_description_collapse_icon" msgid="8028015738431664954">"መሰብሰቢያ አዶ"</string>      <string name="shortcut_helper_content_description_meta_key" msgid="3989315044342124818">"የእርምጃ ወይም ሜታ ቁልፍ አዶ"</string>      <string name="shortcut_helper_content_description_plus_icon" msgid="6152683734278299020">"የመደመር አዶ"</string>      <string name="shortcut_helper_customize_button_text" msgid="3124983502748069338">"አብጅ"</string> +    <!-- no translation found for shortcut_helper_reset_button_text (2548243844050633472) --> +    <skip />      <string name="shortcut_helper_done_button_text" msgid="7249905942125386191">"ተከናውኗል"</string>      <string name="shortcut_helper_content_description_expand_icon" msgid="1084435697860417390">"መዘርጊያ አዶ"</string>      <string name="shortcut_helper_key_combinations_or_separator" msgid="7082902112102125540">"ወይም"</string> -    <!-- no translation found for shortcut_helper_key_combinations_and_conjunction (6138186504075880224) --> -    <skip /> -    <!-- no translation found for shortcut_helper_key_combinations_forward_slash (1238652537199346970) --> -    <skip /> +    <string name="shortcut_helper_key_combinations_and_conjunction" msgid="6138186504075880224">"ሲደመር"</string> +    <string name="shortcut_helper_key_combinations_forward_slash" msgid="1238652537199346970">"ወደፊት ህዝባር"</string>      <string name="shortcut_helper_content_description_drag_handle" msgid="5092426406009848110">"መያዣ ይጎትቱ"</string>      <string name="shortcut_helper_keyboard_settings_buttons_label" msgid="6720967595915985259">"የቁልፍ ሰሌዳ ቅንብሮች"</string>      <string name="shortcut_helper_customize_dialog_set_shortcut_button_label" msgid="4754492225010429382">"አቋራጭ አቀናብር"</string>      <string name="shortcut_helper_customize_dialog_remove_button_label" msgid="6546386970440176552">"አስወግድ"</string> +    <!-- no translation found for shortcut_helper_customize_dialog_reset_button_label (7645535254306312685) --> +    <skip />      <string name="shortcut_helper_customize_dialog_cancel_button_label" msgid="5595546460431741178">"ይቅር"</string>      <string name="shortcut_helper_add_shortcut_dialog_placeholder" msgid="9154297849458741995">"ቁልፍ ይጫኑ"</string>      <string name="shortcut_customizer_key_combination_in_use_error_message" msgid="7693234470526626327">"የቁልፍ ጥምረት አስቀድሞ በሥራ ላይ ነው። ሌላ ቁልፍ ይሞክሩ።"</string> diff --git a/packages/SystemUI/res/values-ar/strings.xml b/packages/SystemUI/res/values-ar/strings.xml index d6e91cc9c3c2..4ff613163294 100644 --- a/packages/SystemUI/res/values-ar/strings.xml +++ b/packages/SystemUI/res/values-ar/strings.xml @@ -529,7 +529,10 @@      <string name="communal_widgets_disclaimer_text" msgid="1423545475160506349">"لفتح تطبيق باستخدام تطبيق مصغَّر، عليك إثبات هويتك. يُرجى ملاحظة أنّ أي شخص يمكنه الاطّلاع محتوى التطبيقات المصغَّرة، حتى وإن كان جهازك اللوحي مُقفلاً. بعض التطبيقات المصغّرة قد لا تكون مُصمَّمة لإضافتها إلى شاشة القفل، وقد يكون هذا الإجراء غير آمن."</string>      <string name="communal_widgets_disclaimer_button" msgid="4423059765740780753">"حسنًا"</string>      <string name="glanceable_hub_lockscreen_affordance_label" msgid="1461611028615752141">"التطبيقات المصغَّرة"</string> -    <string name="glanceable_hub_lockscreen_affordance_disabled_text" msgid="511359420883794513">"لإضافة التطبيقات المصغّرة على شاشة القفل كاختصار، تأكَّد من تفعيلها في الإعدادات."</string> +    <!-- no translation found for glanceable_hub_lockscreen_affordance_disabled_text (599170482297578735) --> +    <skip /> +    <!-- no translation found for glanceable_hub_lockscreen_affordance_action_button_label (7636151133344609375) --> +    <skip />      <string name="accessibility_multi_user_switch_switcher" msgid="5330448341251092660">"تبديل المستخدم"</string>      <string name="accessibility_multi_user_list_switcher" msgid="8574105376229857407">"القائمة المنسدلة"</string>      <string name="guest_exit_guest_dialog_message" msgid="8183450985628495709">"سيتم حذف كل التطبيقات والبيانات في هذه الجلسة."</string> @@ -1415,7 +1418,6 @@      <string name="shortcut_helper_category_system_controls" msgid="3153344561395751020">"عناصر التحكّم في النظام"</string>      <string name="shortcut_helper_category_system_apps" msgid="6001757545472556810">"تطبيقات النظام"</string>      <string name="shortcut_helper_category_multitasking" msgid="7413381961404090136">"تعدُّد المهام"</string> -    <string name="shortcutHelper_category_recent_apps" msgid="7918731953612377145">"التطبيقات المستخدمة مؤخرًا"</string>      <string name="shortcutHelper_category_split_screen" msgid="1159669813444812244">"تقسيم الشاشة"</string>      <string name="shortcut_helper_category_input" msgid="8674018654124839566">"الإدخال"</string>      <string name="shortcut_helper_category_app_shortcuts" msgid="8010249408308587117">"اختصارات التطبيقات"</string> @@ -1424,14 +1426,20 @@      <string name="shortcut_helper_title" msgid="8567500639300970049">"اختصارات لوحة المفاتيح"</string>      <string name="shortcut_helper_customize_mode_title" msgid="1467657117101096033">"تخصيص اختصارات لوحة المفاتيح"</string>      <string name="shortcut_customize_mode_remove_shortcut_dialog_title" msgid="7106420484940737208">"هل تريد إزالة هذا الاختصار؟"</string> +    <!-- no translation found for shortcut_customize_mode_reset_shortcut_dialog_title (8131184731313717780) --> +    <skip />      <string name="shortcut_customize_mode_add_shortcut_description" msgid="6866025005347407696">"اضغط على مفتاح لتخصيص الاختصار"</string>      <string name="shortcut_customize_mode_remove_shortcut_description" msgid="6851287900585057128">"سيؤدي هذا الإجراء إلى حذف الاختصار المخصّص نهائيًا."</string> +    <!-- no translation found for shortcut_customize_mode_reset_shortcut_description (2081849715634358684) --> +    <skip />      <string name="shortcut_helper_search_placeholder" msgid="5488547526269871819">"البحث في الاختصارات"</string>      <string name="shortcut_helper_no_search_results" msgid="8554756497996692160">"ما مِن نتائج بحث"</string>      <string name="shortcut_helper_content_description_collapse_icon" msgid="8028015738431664954">"رمز التصغير"</string>      <string name="shortcut_helper_content_description_meta_key" msgid="3989315044342124818">"رمز مفتاح الإجراء (مفتاح Meta)"</string>      <string name="shortcut_helper_content_description_plus_icon" msgid="6152683734278299020">"رمز علامة الجمع (+)"</string>      <string name="shortcut_helper_customize_button_text" msgid="3124983502748069338">"تخصيص"</string> +    <!-- no translation found for shortcut_helper_reset_button_text (2548243844050633472) --> +    <skip />      <string name="shortcut_helper_done_button_text" msgid="7249905942125386191">"تم"</string>      <string name="shortcut_helper_content_description_expand_icon" msgid="1084435697860417390">"رمز التوسيع"</string>      <string name="shortcut_helper_key_combinations_or_separator" msgid="7082902112102125540">"أو"</string> @@ -1441,6 +1449,8 @@      <string name="shortcut_helper_keyboard_settings_buttons_label" msgid="6720967595915985259">"إعدادات لوحة المفاتيح"</string>      <string name="shortcut_helper_customize_dialog_set_shortcut_button_label" msgid="4754492225010429382">"ضبط الاختصار"</string>      <string name="shortcut_helper_customize_dialog_remove_button_label" msgid="6546386970440176552">"إزالة"</string> +    <!-- no translation found for shortcut_helper_customize_dialog_reset_button_label (7645535254306312685) --> +    <skip />      <string name="shortcut_helper_customize_dialog_cancel_button_label" msgid="5595546460431741178">"إلغاء"</string>      <string name="shortcut_helper_add_shortcut_dialog_placeholder" msgid="9154297849458741995">"اضغط على مفتاح"</string>      <string name="shortcut_customizer_key_combination_in_use_error_message" msgid="7693234470526626327">"يتم حاليًا استخدام مجموعة المفاتيح هذه. يُرجى تجربة مفتاح آخر."</string> diff --git a/packages/SystemUI/res/values-as/strings.xml b/packages/SystemUI/res/values-as/strings.xml index 8f5b1e18f626..f91a3b011c5d 100644 --- a/packages/SystemUI/res/values-as/strings.xml +++ b/packages/SystemUI/res/values-as/strings.xml @@ -529,7 +529,10 @@      <string name="communal_widgets_disclaimer_text" msgid="1423545475160506349">"এটা ৱিজেট ব্যৱহাৰ কৰি কোনো এপ্ খুলিবলৈ, এয়া আপুনিয়েই বুলি সত্যাপন পৰীক্ষা কৰিব লাগিব। লগতে, মনত ৰাখিব যে যিকোনো লোকেই সেইবোৰ চাব পাৰে, আনকি আপোনাৰ টেবলেটটো লক হৈ থাকিলেও। কিছুমান ৱিজেট হয়তো আপোনাৰ লক স্ক্ৰীনৰ বাবে কৰা হোৱা নাই আৰু ইয়াত যোগ কৰাটো অসুৰক্ষিত হ’ব পাৰে।"</string>      <string name="communal_widgets_disclaimer_button" msgid="4423059765740780753">"বুজি পালোঁ"</string>      <string name="glanceable_hub_lockscreen_affordance_label" msgid="1461611028615752141">"ৱিজেট"</string> -    <string name="glanceable_hub_lockscreen_affordance_disabled_text" msgid="511359420883794513">"লক স্ক্ৰীনৰ ৱিজেট সুবিধাটো শ্বৰ্টকাট হিচাপে যোগ দিবলৈ ছেটিঙত সেয়া সক্ষম হৈ থকাটো নিশ্চিত কৰক।"</string> +    <!-- no translation found for glanceable_hub_lockscreen_affordance_disabled_text (599170482297578735) --> +    <skip /> +    <!-- no translation found for glanceable_hub_lockscreen_affordance_action_button_label (7636151133344609375) --> +    <skip />      <string name="accessibility_multi_user_switch_switcher" msgid="5330448341251092660">"ব্যৱহাৰকাৰী সলনি কৰক"</string>      <string name="accessibility_multi_user_list_switcher" msgid="8574105376229857407">"পুল-ডাউনৰ মেনু"</string>      <string name="guest_exit_guest_dialog_message" msgid="8183450985628495709">"এই ছেশ্বনৰ আটাইবোৰ এপ্ আৰু ডেটা মচা হ\'ব।"</string> @@ -875,14 +878,10 @@      <string name="system_multitasking_splitscreen_focus_lhs" msgid="3164261844398662518">"বিভাজিত স্ক্ৰীন ব্যৱহাৰ কৰাৰ সময়ত বাওঁফালে অথবা ওপৰত থকা এপলৈ সলনি কৰক"</string>      <string name="system_multitasking_replace" msgid="7410071959803642125">"বিভাজিত স্ক্ৰীনৰ ব্যৱহাৰ কৰাৰ সময়ত: কোনো এপ্ এখন স্ক্ৰীনৰ পৰা আনখনলৈ নিয়ক"</string>      <string name="system_multitasking_move_to_next_display" msgid="6169737557526976997">"ডিছপ্লে’সমূহৰ মাজত সক্রিয় হৈ থকা ৱিণ্ড’ সলনা সলনিকৈ ব্যৱহাৰ কৰক"</string> -    <!-- no translation found for system_desktop_mode_snap_left_window (8636204689945162298) --> -    <skip /> -    <!-- no translation found for system_desktop_mode_snap_right_window (2162560187639411929) --> -    <skip /> -    <!-- no translation found for system_desktop_mode_toggle_maximize_window (4084100093691768239) --> -    <skip /> -    <!-- no translation found for system_desktop_mode_minimize_window (1248714536732927092) --> -    <skip /> +    <string name="system_desktop_mode_snap_left_window" msgid="8636204689945162298">"ৱিণ্ড’ বাওঁফাললৈ স্থানান্তৰ কৰক"</string> +    <string name="system_desktop_mode_snap_right_window" msgid="2162560187639411929">"ৱিণ্ড’ সোঁফাললৈ স্থানান্তৰ কৰক"</string> +    <string name="system_desktop_mode_toggle_maximize_window" msgid="4084100093691768239">"ৱিণ্ড’ মেক্সিমাইজ কৰক"</string> +    <string name="system_desktop_mode_minimize_window" msgid="1248714536732927092">"ৱিণ্ড’ মিনিমাইজ কৰক"</string>      <string name="keyboard_shortcut_group_input" msgid="6888282716546625610">"ইনপুট"</string>      <string name="input_switch_input_language_next" msgid="3782155659868227855">"পৰৱৰ্তী ভাষাটোলৈ সলনি কৰক"</string>      <string name="input_switch_input_language_previous" msgid="6043341362202336623">"পূৰ্বৰ ভাষালৈ সলনি কৰক"</string> @@ -1419,7 +1418,6 @@      <string name="shortcut_helper_category_system_controls" msgid="3153344561395751020">"ছিষ্টেমৰ নিয়ন্ত্ৰণ"</string>      <string name="shortcut_helper_category_system_apps" msgid="6001757545472556810">"ছিষ্টেম এপ্"</string>      <string name="shortcut_helper_category_multitasking" msgid="7413381961404090136">"মাল্টিটাস্কিং"</string> -    <string name="shortcutHelper_category_recent_apps" msgid="7918731953612377145">"শেহতীয়া এপ্সমূহ"</string>      <string name="shortcutHelper_category_split_screen" msgid="1159669813444812244">"বিভাজিত স্ক্ৰীন"</string>      <string name="shortcut_helper_category_input" msgid="8674018654124839566">"ইনপুট"</string>      <string name="shortcut_helper_category_app_shortcuts" msgid="8010249408308587117">"এপ্ শ্বৰ্টকাটসমূহ"</string> @@ -1428,25 +1426,31 @@      <string name="shortcut_helper_title" msgid="8567500639300970049">"কীব’ৰ্ডৰ শ্বৰ্টকাট"</string>      <string name="shortcut_helper_customize_mode_title" msgid="1467657117101096033">"কীব’ৰ্ডৰ শ্বৰ্টকাট কাষ্টমাইজ কৰক"</string>      <string name="shortcut_customize_mode_remove_shortcut_dialog_title" msgid="7106420484940737208">"শ্বৰ্টকাট আঁতৰাবনে?"</string> +    <!-- no translation found for shortcut_customize_mode_reset_shortcut_dialog_title (8131184731313717780) --> +    <skip />      <string name="shortcut_customize_mode_add_shortcut_description" msgid="6866025005347407696">"শ্বৰ্টকাটৰ ভূমিকা অৰ্পণ কৰিবলৈ কী টিপক"</string>      <string name="shortcut_customize_mode_remove_shortcut_description" msgid="6851287900585057128">"এইটোৱে আপোনাৰ কাষ্টম শ্বৰ্টকাট মচিব।"</string> +    <!-- no translation found for shortcut_customize_mode_reset_shortcut_description (2081849715634358684) --> +    <skip />      <string name="shortcut_helper_search_placeholder" msgid="5488547526269871819">"সন্ধানৰ শ্বৰ্টকাট"</string>      <string name="shortcut_helper_no_search_results" msgid="8554756497996692160">"সন্ধানৰ কোনো ফলাফল নাই"</string>      <string name="shortcut_helper_content_description_collapse_icon" msgid="8028015738431664954">"সংকোচন কৰাৰ চিহ্ন"</string>      <string name="shortcut_helper_content_description_meta_key" msgid="3989315044342124818">"কাৰ্য বা মেটা কীৰ চিহ্ন"</string>      <string name="shortcut_helper_content_description_plus_icon" msgid="6152683734278299020">"যোগ চিনৰ চিহ্ন"</string>      <string name="shortcut_helper_customize_button_text" msgid="3124983502748069338">"কাষ্টমাইজ কৰক"</string> +    <!-- no translation found for shortcut_helper_reset_button_text (2548243844050633472) --> +    <skip />      <string name="shortcut_helper_done_button_text" msgid="7249905942125386191">"হ’ল"</string>      <string name="shortcut_helper_content_description_expand_icon" msgid="1084435697860417390">"বিস্তাৰ কৰাৰ চিহ্ন"</string>      <string name="shortcut_helper_key_combinations_or_separator" msgid="7082902112102125540">"অথবা"</string> -    <!-- no translation found for shortcut_helper_key_combinations_and_conjunction (6138186504075880224) --> -    <skip /> -    <!-- no translation found for shortcut_helper_key_combinations_forward_slash (1238652537199346970) --> -    <skip /> +    <string name="shortcut_helper_key_combinations_and_conjunction" msgid="6138186504075880224">"যোগ চিন"</string> +    <string name="shortcut_helper_key_combinations_forward_slash" msgid="1238652537199346970">"ফৰৱাৰ্ড শ্লেশ্ব"</string>      <string name="shortcut_helper_content_description_drag_handle" msgid="5092426406009848110">"ড্ৰেগ হেণ্ডেল"</string>      <string name="shortcut_helper_keyboard_settings_buttons_label" msgid="6720967595915985259">"কীব’ৰ্ডৰ ছেটিং"</string>      <string name="shortcut_helper_customize_dialog_set_shortcut_button_label" msgid="4754492225010429382">"শ্বৰ্টকাট ছেট কৰক"</string>      <string name="shortcut_helper_customize_dialog_remove_button_label" msgid="6546386970440176552">"আঁতৰাওক"</string> +    <!-- no translation found for shortcut_helper_customize_dialog_reset_button_label (7645535254306312685) --> +    <skip />      <string name="shortcut_helper_customize_dialog_cancel_button_label" msgid="5595546460431741178">"বাতিল কৰক"</string>      <string name="shortcut_helper_add_shortcut_dialog_placeholder" msgid="9154297849458741995">"কী টিপক"</string>      <string name="shortcut_customizer_key_combination_in_use_error_message" msgid="7693234470526626327">"কীৰ মিশ্ৰণ ইতিমধ্যে ব্যৱহাৰ হৈ আছে। অন্য এটা কী ব্যৱহাৰ কৰি চাওক।"</string> diff --git a/packages/SystemUI/res/values-az/strings.xml b/packages/SystemUI/res/values-az/strings.xml index 1126da15496d..84299dc67ec0 100644 --- a/packages/SystemUI/res/values-az/strings.xml +++ b/packages/SystemUI/res/values-az/strings.xml @@ -529,7 +529,10 @@      <string name="communal_widgets_disclaimer_text" msgid="1423545475160506349">"Vidcetdən istifadə edərək tətbiqi açmaq üçün kimliyi doğrulamalısınız. Planşet kilidli olsa da, hər kəs vidcetlərə baxa bilər. Bəzi vidcetlər kilid ekranı üçün nəzərdə tutulmayıb və bura əlavə etmək təhlükəli ola bilər."</string>      <string name="communal_widgets_disclaimer_button" msgid="4423059765740780753">"Anladım"</string>      <string name="glanceable_hub_lockscreen_affordance_label" msgid="1461611028615752141">"Vidcetlər"</string> -    <string name="glanceable_hub_lockscreen_affordance_disabled_text" msgid="511359420883794513">"Kilidli ekrana qısayol kimi Vidcet əlavə etmək üçün onun ayarlarda aktiv olduğundan əmin olun."</string> +    <!-- no translation found for glanceable_hub_lockscreen_affordance_disabled_text (599170482297578735) --> +    <skip /> +    <!-- no translation found for glanceable_hub_lockscreen_affordance_action_button_label (7636151133344609375) --> +    <skip />      <string name="accessibility_multi_user_switch_switcher" msgid="5330448341251092660">"Switch user"</string>      <string name="accessibility_multi_user_list_switcher" msgid="8574105376229857407">"aşağı çəkilən menyu"</string>      <string name="guest_exit_guest_dialog_message" msgid="8183450985628495709">"Bu sessiyada bütün tətbiqlər və data silinəcək."</string> @@ -875,14 +878,10 @@      <string name="system_multitasking_splitscreen_focus_lhs" msgid="3164261844398662518">"Bölünmüş ekran istifadə edərkən solda və ya yuxarıda tətbiqə keçin"</string>      <string name="system_multitasking_replace" msgid="7410071959803642125">"Bölünmüş ekran rejimində: tətbiqi birindən digərinə dəyişin"</string>      <string name="system_multitasking_move_to_next_display" msgid="6169737557526976997">"Aktiv pəncərəni displeylər arasında hərəkət etdirin"</string> -    <!-- no translation found for system_desktop_mode_snap_left_window (8636204689945162298) --> -    <skip /> -    <!-- no translation found for system_desktop_mode_snap_right_window (2162560187639411929) --> -    <skip /> -    <!-- no translation found for system_desktop_mode_toggle_maximize_window (4084100093691768239) --> -    <skip /> -    <!-- no translation found for system_desktop_mode_minimize_window (1248714536732927092) --> -    <skip /> +    <string name="system_desktop_mode_snap_left_window" msgid="8636204689945162298">"Pəncərəni sola hərəkət etdirin"</string> +    <string name="system_desktop_mode_snap_right_window" msgid="2162560187639411929">"Pəncərəni sağa hərəkət etdirin"</string> +    <string name="system_desktop_mode_toggle_maximize_window" msgid="4084100093691768239">"Pəncərəni böyüdün"</string> +    <string name="system_desktop_mode_minimize_window" msgid="1248714536732927092">"Pəncərəni minimallaşdırın"</string>      <string name="keyboard_shortcut_group_input" msgid="6888282716546625610">"Daxiletmə"</string>      <string name="input_switch_input_language_next" msgid="3782155659868227855">"Növbəti dilə keçin"</string>      <string name="input_switch_input_language_previous" msgid="6043341362202336623">"Əvvəlki dilə keçin"</string> @@ -1419,7 +1418,6 @@      <string name="shortcut_helper_category_system_controls" msgid="3153344561395751020">"Sistem nizamlayıcıları"</string>      <string name="shortcut_helper_category_system_apps" msgid="6001757545472556810">"Sistem tətbiqləri"</string>      <string name="shortcut_helper_category_multitasking" msgid="7413381961404090136">"Çoxsaylı tapşırıq icrası"</string> -    <string name="shortcutHelper_category_recent_apps" msgid="7918731953612377145">"Son tətbiqlər"</string>      <string name="shortcutHelper_category_split_screen" msgid="1159669813444812244">"Bölünmüş ekran"</string>      <string name="shortcut_helper_category_input" msgid="8674018654124839566">"Daxiletmə"</string>      <string name="shortcut_helper_category_app_shortcuts" msgid="8010249408308587117">"Tətbiq qısayolları"</string> @@ -1428,25 +1426,31 @@      <string name="shortcut_helper_title" msgid="8567500639300970049">"Klaviatura qısayolları"</string>      <string name="shortcut_helper_customize_mode_title" msgid="1467657117101096033">"Klaviatura qısayollarını fərdiləşdirin"</string>      <string name="shortcut_customize_mode_remove_shortcut_dialog_title" msgid="7106420484940737208">"Qısayol silinsin?"</string> +    <!-- no translation found for shortcut_customize_mode_reset_shortcut_dialog_title (8131184731313717780) --> +    <skip />      <string name="shortcut_customize_mode_add_shortcut_description" msgid="6866025005347407696">"Qısayol təyin etmək üçün düyməni basın"</string>      <string name="shortcut_customize_mode_remove_shortcut_description" msgid="6851287900585057128">"Bu, fərdi qısayolunuzu həmişəlik siləcək."</string> +    <!-- no translation found for shortcut_customize_mode_reset_shortcut_description (2081849715634358684) --> +    <skip />      <string name="shortcut_helper_search_placeholder" msgid="5488547526269871819">"Axtarış qısayolları"</string>      <string name="shortcut_helper_no_search_results" msgid="8554756497996692160">"Axtarış nəticəsi yoxdur"</string>      <string name="shortcut_helper_content_description_collapse_icon" msgid="8028015738431664954">"İkonanı yığcamlaşdırın"</string>      <string name="shortcut_helper_content_description_meta_key" msgid="3989315044342124818">"Əməliyyat və ya Meta düyməsi ikonası"</string>      <string name="shortcut_helper_content_description_plus_icon" msgid="6152683734278299020">"Üstəgəl ikonası"</string>      <string name="shortcut_helper_customize_button_text" msgid="3124983502748069338">"Fərdiləşdirin"</string> +    <!-- no translation found for shortcut_helper_reset_button_text (2548243844050633472) --> +    <skip />      <string name="shortcut_helper_done_button_text" msgid="7249905942125386191">"Hazırdır"</string>      <string name="shortcut_helper_content_description_expand_icon" msgid="1084435697860417390">"İkonanı genişləndirin"</string>      <string name="shortcut_helper_key_combinations_or_separator" msgid="7082902112102125540">"və ya"</string> -    <!-- no translation found for shortcut_helper_key_combinations_and_conjunction (6138186504075880224) --> -    <skip /> -    <!-- no translation found for shortcut_helper_key_combinations_forward_slash (1238652537199346970) --> -    <skip /> +    <string name="shortcut_helper_key_combinations_and_conjunction" msgid="6138186504075880224">"plus"</string> +    <string name="shortcut_helper_key_combinations_forward_slash" msgid="1238652537199346970">"irəli sləş"</string>      <string name="shortcut_helper_content_description_drag_handle" msgid="5092426406009848110">"Dəstəyi çəkin"</string>      <string name="shortcut_helper_keyboard_settings_buttons_label" msgid="6720967595915985259">"Klaviatura ayarları"</string>      <string name="shortcut_helper_customize_dialog_set_shortcut_button_label" msgid="4754492225010429382">"Qısayol ayarlayın"</string>      <string name="shortcut_helper_customize_dialog_remove_button_label" msgid="6546386970440176552">"Silin"</string> +    <!-- no translation found for shortcut_helper_customize_dialog_reset_button_label (7645535254306312685) --> +    <skip />      <string name="shortcut_helper_customize_dialog_cancel_button_label" msgid="5595546460431741178">"Ləğv edin"</string>      <string name="shortcut_helper_add_shortcut_dialog_placeholder" msgid="9154297849458741995">"Düyməni basın"</string>      <string name="shortcut_customizer_key_combination_in_use_error_message" msgid="7693234470526626327">"Düymə kombinasiyası artıq istifadə olunur. Başqa düyməni sınayın."</string> diff --git a/packages/SystemUI/res/values-b+sr+Latn/strings.xml b/packages/SystemUI/res/values-b+sr+Latn/strings.xml index a996c8a6a6b9..bc385a10160f 100644 --- a/packages/SystemUI/res/values-b+sr+Latn/strings.xml +++ b/packages/SystemUI/res/values-b+sr+Latn/strings.xml @@ -529,7 +529,10 @@      <string name="communal_widgets_disclaimer_text" msgid="1423545475160506349">"Da biste otvorili aplikaciju koja koristi vidžet, treba da potvrdite da ste to vi. Imajte u vidu da svako može da ga vidi, čak i kada je tablet zaključan. Neki vidžeti možda nisu namenjeni za zaključani ekran i možda nije bezbedno da ih tamo dodate."</string>      <string name="communal_widgets_disclaimer_button" msgid="4423059765740780753">"Važi"</string>      <string name="glanceable_hub_lockscreen_affordance_label" msgid="1461611028615752141">"Vidžeti"</string> -    <string name="glanceable_hub_lockscreen_affordance_disabled_text" msgid="511359420883794513">"Da biste dodali vidžete na zaključani ekran kao prečicu, uverite se da je to omogućeno u podešavanjima."</string> +    <!-- no translation found for glanceable_hub_lockscreen_affordance_disabled_text (599170482297578735) --> +    <skip /> +    <!-- no translation found for glanceable_hub_lockscreen_affordance_action_button_label (7636151133344609375) --> +    <skip />      <string name="accessibility_multi_user_switch_switcher" msgid="5330448341251092660">"Zameni korisnika"</string>      <string name="accessibility_multi_user_list_switcher" msgid="8574105376229857407">"padajući meni"</string>      <string name="guest_exit_guest_dialog_message" msgid="8183450985628495709">"Sve aplikacije i podaci u ovoj sesiji će biti izbrisani."</string> @@ -875,14 +878,10 @@      <string name="system_multitasking_splitscreen_focus_lhs" msgid="3164261844398662518">"Pređite u aplikaciju sleva ili iznad dok koristite podeljeni ekran"</string>      <string name="system_multitasking_replace" msgid="7410071959803642125">"U režimu podeljenog ekrana: zamena jedne aplikacije drugom"</string>      <string name="system_multitasking_move_to_next_display" msgid="6169737557526976997">"Premesti aktivan prozor na sledeći ekran"</string> -    <!-- no translation found for system_desktop_mode_snap_left_window (8636204689945162298) --> -    <skip /> -    <!-- no translation found for system_desktop_mode_snap_right_window (2162560187639411929) --> -    <skip /> -    <!-- no translation found for system_desktop_mode_toggle_maximize_window (4084100093691768239) --> -    <skip /> -    <!-- no translation found for system_desktop_mode_minimize_window (1248714536732927092) --> -    <skip /> +    <string name="system_desktop_mode_snap_left_window" msgid="8636204689945162298">"Pomerite prozor nalevo"</string> +    <string name="system_desktop_mode_snap_right_window" msgid="2162560187639411929">"Pomerite prozor nadesno"</string> +    <string name="system_desktop_mode_toggle_maximize_window" msgid="4084100093691768239">"Povećajte prozor"</string> +    <string name="system_desktop_mode_minimize_window" msgid="1248714536732927092">"Smanjite prozor"</string>      <string name="keyboard_shortcut_group_input" msgid="6888282716546625610">"Unos"</string>      <string name="input_switch_input_language_next" msgid="3782155659868227855">"Pređi na sledeći jezik"</string>      <string name="input_switch_input_language_previous" msgid="6043341362202336623">"Pređi na prethodni jezik"</string> @@ -1419,7 +1418,6 @@      <string name="shortcut_helper_category_system_controls" msgid="3153344561395751020">"Sistemske kontrole"</string>      <string name="shortcut_helper_category_system_apps" msgid="6001757545472556810">"Sistemske aplikacije"</string>      <string name="shortcut_helper_category_multitasking" msgid="7413381961404090136">"Obavljanje više zadataka istovremeno"</string> -    <string name="shortcutHelper_category_recent_apps" msgid="7918731953612377145">"Nedavne aplikacije"</string>      <string name="shortcutHelper_category_split_screen" msgid="1159669813444812244">"Podeljeni ekran"</string>      <string name="shortcut_helper_category_input" msgid="8674018654124839566">"Unos"</string>      <string name="shortcut_helper_category_app_shortcuts" msgid="8010249408308587117">"Prečice za aplikacije"</string> @@ -1428,25 +1426,31 @@      <string name="shortcut_helper_title" msgid="8567500639300970049">"Tasterske prečice"</string>      <string name="shortcut_helper_customize_mode_title" msgid="1467657117101096033">"Prilagodite tasterske prečice"</string>      <string name="shortcut_customize_mode_remove_shortcut_dialog_title" msgid="7106420484940737208">"Želite da uklonite prečicu?"</string> +    <!-- no translation found for shortcut_customize_mode_reset_shortcut_dialog_title (8131184731313717780) --> +    <skip />      <string name="shortcut_customize_mode_add_shortcut_description" msgid="6866025005347407696">"Pritisnite taster da biste dodelili prečicu"</string>      <string name="shortcut_customize_mode_remove_shortcut_description" msgid="6851287900585057128">"Ovim ćete trajno izbrisati prilagođenu prečicu."</string> +    <!-- no translation found for shortcut_customize_mode_reset_shortcut_description (2081849715634358684) --> +    <skip />      <string name="shortcut_helper_search_placeholder" msgid="5488547526269871819">"Pretražite prečice"</string>      <string name="shortcut_helper_no_search_results" msgid="8554756497996692160">"Nema rezultata pretrage"</string>      <string name="shortcut_helper_content_description_collapse_icon" msgid="8028015738431664954">"Ikona za skupljanje"</string>      <string name="shortcut_helper_content_description_meta_key" msgid="3989315044342124818">"Ikona tastera za radnju ili meta tastera"</string>      <string name="shortcut_helper_content_description_plus_icon" msgid="6152683734278299020">"Ikona znaka plus"</string>      <string name="shortcut_helper_customize_button_text" msgid="3124983502748069338">"Prilagodi"</string> +    <!-- no translation found for shortcut_helper_reset_button_text (2548243844050633472) --> +    <skip />      <string name="shortcut_helper_done_button_text" msgid="7249905942125386191">"Gotovo"</string>      <string name="shortcut_helper_content_description_expand_icon" msgid="1084435697860417390">"Ikona za proširivanje"</string>      <string name="shortcut_helper_key_combinations_or_separator" msgid="7082902112102125540">"ili"</string> -    <!-- no translation found for shortcut_helper_key_combinations_and_conjunction (6138186504075880224) --> -    <skip /> -    <!-- no translation found for shortcut_helper_key_combinations_forward_slash (1238652537199346970) --> -    <skip /> +    <string name="shortcut_helper_key_combinations_and_conjunction" msgid="6138186504075880224">"plus"</string> +    <string name="shortcut_helper_key_combinations_forward_slash" msgid="1238652537199346970">"kosa crta unapred"</string>      <string name="shortcut_helper_content_description_drag_handle" msgid="5092426406009848110">"Marker za prevlačenje"</string>      <string name="shortcut_helper_keyboard_settings_buttons_label" msgid="6720967595915985259">"Podešavanja tastature"</string>      <string name="shortcut_helper_customize_dialog_set_shortcut_button_label" msgid="4754492225010429382">"Podesi prečicu"</string>      <string name="shortcut_helper_customize_dialog_remove_button_label" msgid="6546386970440176552">"Ukloni"</string> +    <!-- no translation found for shortcut_helper_customize_dialog_reset_button_label (7645535254306312685) --> +    <skip />      <string name="shortcut_helper_customize_dialog_cancel_button_label" msgid="5595546460431741178">"Otkaži"</string>      <string name="shortcut_helper_add_shortcut_dialog_placeholder" msgid="9154297849458741995">"Pritisnite taster"</string>      <string name="shortcut_customizer_key_combination_in_use_error_message" msgid="7693234470526626327">"Kombinacija tastera se već koristi. Probajte sa drugim tasterom."</string> diff --git a/packages/SystemUI/res/values-be/strings.xml b/packages/SystemUI/res/values-be/strings.xml index c14d1b5ee7c9..a5f4da95a892 100644 --- a/packages/SystemUI/res/values-be/strings.xml +++ b/packages/SystemUI/res/values-be/strings.xml @@ -529,7 +529,10 @@      <string name="communal_widgets_disclaimer_text" msgid="1423545475160506349">"Каб адкрыць праграму з дапамогай віджэта, вам неабходна будзе пацвердзіць сваю асобу. Таксама памятайце, што такія віджэты могуць пабачыць іншыя людзі, нават калі экран планшэта заблакіраваны. Некаторыя віджэты могуць не падыходзіць для выкарыстання на экране блакіроўкі, і дадаваць іх сюды можа быць небяспечна."</string>      <string name="communal_widgets_disclaimer_button" msgid="4423059765740780753">"Зразумела"</string>      <string name="glanceable_hub_lockscreen_affordance_label" msgid="1461611028615752141">"Віджэты"</string> -    <string name="glanceable_hub_lockscreen_affordance_disabled_text" msgid="511359420883794513">"Каб можна было дадаць віджэты на экран блакіроўкі ў якасці спалучэння клавіш, яны павінны быць уключаны ў наладах."</string> +    <!-- no translation found for glanceable_hub_lockscreen_affordance_disabled_text (599170482297578735) --> +    <skip /> +    <!-- no translation found for glanceable_hub_lockscreen_affordance_action_button_label (7636151133344609375) --> +    <skip />      <string name="accessibility_multi_user_switch_switcher" msgid="5330448341251092660">"Перайсці да іншага карыстальніка"</string>      <string name="accessibility_multi_user_list_switcher" msgid="8574105376229857407">"высоўнае меню"</string>      <string name="guest_exit_guest_dialog_message" msgid="8183450985628495709">"Усе праграмы і даныя гэтага сеанса будуць выдалены."</string> @@ -875,14 +878,10 @@      <string name="system_multitasking_splitscreen_focus_lhs" msgid="3164261844398662518">"Пераключыцца на праграму злева або ўверсе на падзеленым экране"</string>      <string name="system_multitasking_replace" msgid="7410071959803642125">"У рэжыме падзеленага экрана замяніць адну праграму на іншую"</string>      <string name="system_multitasking_move_to_next_display" msgid="6169737557526976997">"Перамясціць актыўнае акно паміж дысплэямі"</string> -    <!-- no translation found for system_desktop_mode_snap_left_window (8636204689945162298) --> -    <skip /> -    <!-- no translation found for system_desktop_mode_snap_right_window (2162560187639411929) --> -    <skip /> -    <!-- no translation found for system_desktop_mode_toggle_maximize_window (4084100093691768239) --> -    <skip /> -    <!-- no translation found for system_desktop_mode_minimize_window (1248714536732927092) --> -    <skip /> +    <string name="system_desktop_mode_snap_left_window" msgid="8636204689945162298">"Перамясціць акно ўлева"</string> +    <string name="system_desktop_mode_snap_right_window" msgid="2162560187639411929">"Перамясціць акно ўправа"</string> +    <string name="system_desktop_mode_toggle_maximize_window" msgid="4084100093691768239">"Разгарнуць акно"</string> +    <string name="system_desktop_mode_minimize_window" msgid="1248714536732927092">"Згарнуць акно"</string>      <string name="keyboard_shortcut_group_input" msgid="6888282716546625610">"Увод"</string>      <string name="input_switch_input_language_next" msgid="3782155659868227855">"Пераключыцца на наступную мову"</string>      <string name="input_switch_input_language_previous" msgid="6043341362202336623">"Пераключыцца на папярэднюю мову"</string> @@ -1419,7 +1418,6 @@      <string name="shortcut_helper_category_system_controls" msgid="3153344561395751020">"Элементы кіравання сістэмай"</string>      <string name="shortcut_helper_category_system_apps" msgid="6001757545472556810">"Сістэмныя праграмы"</string>      <string name="shortcut_helper_category_multitasking" msgid="7413381961404090136">"Шматзадачнасць"</string> -    <string name="shortcutHelper_category_recent_apps" msgid="7918731953612377145">"Нядаўнія праграмы"</string>      <string name="shortcutHelper_category_split_screen" msgid="1159669813444812244">"Падзелены экран"</string>      <string name="shortcut_helper_category_input" msgid="8674018654124839566">"Увод"</string>      <string name="shortcut_helper_category_app_shortcuts" msgid="8010249408308587117">"Ярлыкі праграм"</string> @@ -1428,25 +1426,31 @@      <string name="shortcut_helper_title" msgid="8567500639300970049">"Спалучэнні клавіш"</string>      <string name="shortcut_helper_customize_mode_title" msgid="1467657117101096033">"Наладзіць спалучэнні клавіш"</string>      <string name="shortcut_customize_mode_remove_shortcut_dialog_title" msgid="7106420484940737208">"Выдаліць спалучэнне клавіш?"</string> +    <!-- no translation found for shortcut_customize_mode_reset_shortcut_dialog_title (8131184731313717780) --> +    <skip />      <string name="shortcut_customize_mode_add_shortcut_description" msgid="6866025005347407696">"Націсніце клавішу, каб прызначыць спалучэнне клавіш"</string>      <string name="shortcut_customize_mode_remove_shortcut_description" msgid="6851287900585057128">"Гэта дзеянне назаўсёды выдаліць прызначанае вамі спалучэнне клавіш."</string> +    <!-- no translation found for shortcut_customize_mode_reset_shortcut_description (2081849715634358684) --> +    <skip />      <string name="shortcut_helper_search_placeholder" msgid="5488547526269871819">"Пошук спалучэнняў клавіш"</string>      <string name="shortcut_helper_no_search_results" msgid="8554756497996692160">"Няма вынікаў пошуку"</string>      <string name="shortcut_helper_content_description_collapse_icon" msgid="8028015738431664954">"Значок \"Згарнуць\""</string>      <string name="shortcut_helper_content_description_meta_key" msgid="3989315044342124818">"Значок клавішы дзеяння (мета-клавішы)"</string>      <string name="shortcut_helper_content_description_plus_icon" msgid="6152683734278299020">"Значок плюса"</string>      <string name="shortcut_helper_customize_button_text" msgid="3124983502748069338">"Наладзіць"</string> +    <!-- no translation found for shortcut_helper_reset_button_text (2548243844050633472) --> +    <skip />      <string name="shortcut_helper_done_button_text" msgid="7249905942125386191">"Гатова"</string>      <string name="shortcut_helper_content_description_expand_icon" msgid="1084435697860417390">"Значок \"Разгарнуць\""</string>      <string name="shortcut_helper_key_combinations_or_separator" msgid="7082902112102125540">"або"</string> -    <!-- no translation found for shortcut_helper_key_combinations_and_conjunction (6138186504075880224) --> -    <skip /> -    <!-- no translation found for shortcut_helper_key_combinations_forward_slash (1238652537199346970) --> -    <skip /> +    <string name="shortcut_helper_key_combinations_and_conjunction" msgid="6138186504075880224">"+"</string> +    <string name="shortcut_helper_key_combinations_forward_slash" msgid="1238652537199346970">"касая рыса ўправа"</string>      <string name="shortcut_helper_content_description_drag_handle" msgid="5092426406009848110">"Маркер перацягвання"</string>      <string name="shortcut_helper_keyboard_settings_buttons_label" msgid="6720967595915985259">"Налады клавіятуры"</string>      <string name="shortcut_helper_customize_dialog_set_shortcut_button_label" msgid="4754492225010429382">"Наладзіць спалучэнне клавіш"</string>      <string name="shortcut_helper_customize_dialog_remove_button_label" msgid="6546386970440176552">"Выдаліць"</string> +    <!-- no translation found for shortcut_helper_customize_dialog_reset_button_label (7645535254306312685) --> +    <skip />      <string name="shortcut_helper_customize_dialog_cancel_button_label" msgid="5595546460431741178">"Скасаваць"</string>      <string name="shortcut_helper_add_shortcut_dialog_placeholder" msgid="9154297849458741995">"Націсніце клавішу"</string>      <string name="shortcut_customizer_key_combination_in_use_error_message" msgid="7693234470526626327">"Гэта спалучэнне клавіш ужо выкарыстоўваецца. Паспрабуйце іншую клавішу."</string> diff --git a/packages/SystemUI/res/values-bg/strings.xml b/packages/SystemUI/res/values-bg/strings.xml index 73de179729d7..e36cf3098117 100644 --- a/packages/SystemUI/res/values-bg/strings.xml +++ b/packages/SystemUI/res/values-bg/strings.xml @@ -529,7 +529,10 @@      <string name="communal_widgets_disclaimer_text" msgid="1423545475160506349">"За да отворите дадено приложение посредством приспособление, ще трябва да потвърдите, че това сте вие. Също така имайте предвид, че всеки ще вижда приспособленията дори когато таблетът ви е заключен. Възможно е някои от тях да не са предназначени за заключения екран и добавянето им на него може да е опасно."</string>      <string name="communal_widgets_disclaimer_button" msgid="4423059765740780753">"Разбрах"</string>      <string name="glanceable_hub_lockscreen_affordance_label" msgid="1461611028615752141">"Приспособления"</string> -    <string name="glanceable_hub_lockscreen_affordance_disabled_text" msgid="511359420883794513">"За да добавите приспособления към заключения екран като пряк път, уверете се, че са активирани в настройките."</string> +    <!-- no translation found for glanceable_hub_lockscreen_affordance_disabled_text (599170482297578735) --> +    <skip /> +    <!-- no translation found for glanceable_hub_lockscreen_affordance_action_button_label (7636151133344609375) --> +    <skip />      <string name="accessibility_multi_user_switch_switcher" msgid="5330448341251092660">"Превключване между потребителите"</string>      <string name="accessibility_multi_user_list_switcher" msgid="8574105376229857407">"падащо меню"</string>      <string name="guest_exit_guest_dialog_message" msgid="8183450985628495709">"Всички приложения и данни в тази сесия ще бъдат изтрити."</string> @@ -875,14 +878,10 @@      <string name="system_multitasking_splitscreen_focus_lhs" msgid="3164261844398662518">"Превключване към приложението вляво/отгоре в режима на разделен екран"</string>      <string name="system_multitasking_replace" msgid="7410071959803642125">"При разделен екран: замяна на дадено приложение с друго"</string>      <string name="system_multitasking_move_to_next_display" msgid="6169737557526976997">"Преместване на активния прозорец между екраните"</string> -    <!-- no translation found for system_desktop_mode_snap_left_window (8636204689945162298) --> -    <skip /> -    <!-- no translation found for system_desktop_mode_snap_right_window (2162560187639411929) --> -    <skip /> -    <!-- no translation found for system_desktop_mode_toggle_maximize_window (4084100093691768239) --> -    <skip /> -    <!-- no translation found for system_desktop_mode_minimize_window (1248714536732927092) --> -    <skip /> +    <string name="system_desktop_mode_snap_left_window" msgid="8636204689945162298">"Преместване на прозореца наляво"</string> +    <string name="system_desktop_mode_snap_right_window" msgid="2162560187639411929">"Преместване на прозореца надясно"</string> +    <string name="system_desktop_mode_toggle_maximize_window" msgid="4084100093691768239">"Увеличаване на прозореца"</string> +    <string name="system_desktop_mode_minimize_window" msgid="1248714536732927092">"Намаляване на прозореца"</string>      <string name="keyboard_shortcut_group_input" msgid="6888282716546625610">"Въвеждане"</string>      <string name="input_switch_input_language_next" msgid="3782155659868227855">"Превключване към следващия език"</string>      <string name="input_switch_input_language_previous" msgid="6043341362202336623">"Превключване към предишния език"</string> @@ -1419,7 +1418,6 @@      <string name="shortcut_helper_category_system_controls" msgid="3153344561395751020">"Системни контроли"</string>      <string name="shortcut_helper_category_system_apps" msgid="6001757545472556810">"Системни приложения"</string>      <string name="shortcut_helper_category_multitasking" msgid="7413381961404090136">"Няколко задачи едновременно"</string> -    <string name="shortcutHelper_category_recent_apps" msgid="7918731953612377145">"Скорошни приложения"</string>      <string name="shortcutHelper_category_split_screen" msgid="1159669813444812244">"Разделен екран"</string>      <string name="shortcut_helper_category_input" msgid="8674018654124839566">"Въвеждане"</string>      <string name="shortcut_helper_category_app_shortcuts" msgid="8010249408308587117">"Преки пътища към приложения"</string> @@ -1428,25 +1426,31 @@      <string name="shortcut_helper_title" msgid="8567500639300970049">"Клавишни комбинации"</string>      <string name="shortcut_helper_customize_mode_title" msgid="1467657117101096033">"Персонализиране на клавишните комбинации"</string>      <string name="shortcut_customize_mode_remove_shortcut_dialog_title" msgid="7106420484940737208">"Да се премахне ли клавишната комбинация?"</string> +    <!-- no translation found for shortcut_customize_mode_reset_shortcut_dialog_title (8131184731313717780) --> +    <skip />      <string name="shortcut_customize_mode_add_shortcut_description" msgid="6866025005347407696">"Натиснете клавиш, за да зададете клавишна комбинация"</string>      <string name="shortcut_customize_mode_remove_shortcut_description" msgid="6851287900585057128">"Това ще изтрие персонализираната клавишна комбинация за постоянно."</string> +    <!-- no translation found for shortcut_customize_mode_reset_shortcut_description (2081849715634358684) --> +    <skip />      <string name="shortcut_helper_search_placeholder" msgid="5488547526269871819">"Търсете клавишни комбинации"</string>      <string name="shortcut_helper_no_search_results" msgid="8554756497996692160">"Няма резултати от търсенето"</string>      <string name="shortcut_helper_content_description_collapse_icon" msgid="8028015738431664954">"Икона за свиване"</string>      <string name="shortcut_helper_content_description_meta_key" msgid="3989315044342124818">"Икона на клавиша за действия или клавиша Meta"</string>      <string name="shortcut_helper_content_description_plus_icon" msgid="6152683734278299020">"Икона на плюс"</string>      <string name="shortcut_helper_customize_button_text" msgid="3124983502748069338">"Персонализиране"</string> +    <!-- no translation found for shortcut_helper_reset_button_text (2548243844050633472) --> +    <skip />      <string name="shortcut_helper_done_button_text" msgid="7249905942125386191">"Готово"</string>      <string name="shortcut_helper_content_description_expand_icon" msgid="1084435697860417390">"Икона за разгъване"</string>      <string name="shortcut_helper_key_combinations_or_separator" msgid="7082902112102125540">"или"</string> -    <!-- no translation found for shortcut_helper_key_combinations_and_conjunction (6138186504075880224) --> -    <skip /> -    <!-- no translation found for shortcut_helper_key_combinations_forward_slash (1238652537199346970) --> -    <skip /> +    <string name="shortcut_helper_key_combinations_and_conjunction" msgid="6138186504075880224">"плюс"</string> +    <string name="shortcut_helper_key_combinations_forward_slash" msgid="1238652537199346970">"наклонена черта"</string>      <string name="shortcut_helper_content_description_drag_handle" msgid="5092426406009848110">"Манипулатор за преместване с плъзгане"</string>      <string name="shortcut_helper_keyboard_settings_buttons_label" msgid="6720967595915985259">"Настройки на клавиатурата"</string>      <string name="shortcut_helper_customize_dialog_set_shortcut_button_label" msgid="4754492225010429382">"Задаване на клавишна комбинация"</string>      <string name="shortcut_helper_customize_dialog_remove_button_label" msgid="6546386970440176552">"Премахване"</string> +    <!-- no translation found for shortcut_helper_customize_dialog_reset_button_label (7645535254306312685) --> +    <skip />      <string name="shortcut_helper_customize_dialog_cancel_button_label" msgid="5595546460431741178">"Отказ"</string>      <string name="shortcut_helper_add_shortcut_dialog_placeholder" msgid="9154297849458741995">"Натиснете клавиш"</string>      <string name="shortcut_customizer_key_combination_in_use_error_message" msgid="7693234470526626327">"Клавишната комбинация вече се използва. Опитайте с друг клавиш."</string> diff --git a/packages/SystemUI/res/values-bn/strings.xml b/packages/SystemUI/res/values-bn/strings.xml index edbf73e8f404..8f5effc01982 100644 --- a/packages/SystemUI/res/values-bn/strings.xml +++ b/packages/SystemUI/res/values-bn/strings.xml @@ -529,7 +529,10 @@      <string name="communal_widgets_disclaimer_text" msgid="1423545475160506349">"উইজেট ব্যবহার করে কোনও অ্যাপ খুলতে, আপনাকে নিজের পরিচয় যাচাই করতে হবে। এছাড়াও, মনে রাখবেন, আপনার ট্যাবলেট লক থাকলেও যেকেউ তা দেখতে পারবেন। কিছু উইজেট আপনার লক স্ক্রিনের উদ্দেশ্যে তৈরি করা হয়নি এবং এখানে যোগ করা নিরাপদ নাও হতে পারে।"</string>      <string name="communal_widgets_disclaimer_button" msgid="4423059765740780753">"বুঝেছি"</string>      <string name="glanceable_hub_lockscreen_affordance_label" msgid="1461611028615752141">"উইজেট"</string> -    <string name="glanceable_hub_lockscreen_affordance_disabled_text" msgid="511359420883794513">"শর্টকাট হিসেবে লক স্ক্রিনে উইজেট যোগ করলে, সেটি সেটিংস থেকে চালু আছে কিনা ভালো করে দেখে নিন।"</string> +    <!-- no translation found for glanceable_hub_lockscreen_affordance_disabled_text (599170482297578735) --> +    <skip /> +    <!-- no translation found for glanceable_hub_lockscreen_affordance_action_button_label (7636151133344609375) --> +    <skip />      <string name="accessibility_multi_user_switch_switcher" msgid="5330448341251092660">"ব্যবহারকারী পাল্টে দিন"</string>      <string name="accessibility_multi_user_list_switcher" msgid="8574105376229857407">"পুলডাউন মেনু"</string>      <string name="guest_exit_guest_dialog_message" msgid="8183450985628495709">"এই সেশনের সব অ্যাপ ও ডেটা মুছে ফেলা হবে।"</string> @@ -875,14 +878,10 @@      <string name="system_multitasking_splitscreen_focus_lhs" msgid="3164261844398662518">"স্প্লিট স্ক্রিন ব্যবহার করার সময় বাঁদিকের বা উপরের অ্যাপে পাল্টে নিন"</string>      <string name="system_multitasking_replace" msgid="7410071959803642125">"\'স্প্লিট স্ক্রিন\' থাকাকালীন: একটি অ্যাপ থেকে অন্যটিতে পাল্টান"</string>      <string name="system_multitasking_move_to_next_display" msgid="6169737557526976997">"ডিসপ্লের মধ্যে একটি থেকে অপরটিতে অ্যাক্টিভ উইন্ডোটি সরান"</string> -    <!-- no translation found for system_desktop_mode_snap_left_window (8636204689945162298) --> -    <skip /> -    <!-- no translation found for system_desktop_mode_snap_right_window (2162560187639411929) --> -    <skip /> -    <!-- no translation found for system_desktop_mode_toggle_maximize_window (4084100093691768239) --> -    <skip /> -    <!-- no translation found for system_desktop_mode_minimize_window (1248714536732927092) --> -    <skip /> +    <string name="system_desktop_mode_snap_left_window" msgid="8636204689945162298">"উইন্ডো বাঁদিকে সরান"</string> +    <string name="system_desktop_mode_snap_right_window" msgid="2162560187639411929">"উইন্ডো ডানদিকে সরান"</string> +    <string name="system_desktop_mode_toggle_maximize_window" msgid="4084100093691768239">"উইন্ডো বড় করুন"</string> +    <string name="system_desktop_mode_minimize_window" msgid="1248714536732927092">"উইন্ডো ছোট করুন"</string>      <string name="keyboard_shortcut_group_input" msgid="6888282716546625610">"ইনপুট"</string>      <string name="input_switch_input_language_next" msgid="3782155659868227855">"পরবর্তী ভাষায় পাল্টান"</string>      <string name="input_switch_input_language_previous" msgid="6043341362202336623">"আগের ভাষায় পাল্টান"</string> @@ -1419,7 +1418,6 @@      <string name="shortcut_helper_category_system_controls" msgid="3153344561395751020">"সিস্টেম কন্ট্রোল"</string>      <string name="shortcut_helper_category_system_apps" msgid="6001757545472556810">"সিস্টেম অ্যাপ"</string>      <string name="shortcut_helper_category_multitasking" msgid="7413381961404090136">"মাল্টিটাস্কিং"</string> -    <string name="shortcutHelper_category_recent_apps" msgid="7918731953612377145">"সম্প্রতি ব্যবহার করা অ্যাপ"</string>      <string name="shortcutHelper_category_split_screen" msgid="1159669813444812244">"স্প্লিট স্ক্রিন"</string>      <string name="shortcut_helper_category_input" msgid="8674018654124839566">"ইনপুট"</string>      <string name="shortcut_helper_category_app_shortcuts" msgid="8010249408308587117">"অ্যাপ শর্টকাট"</string> @@ -1428,25 +1426,31 @@      <string name="shortcut_helper_title" msgid="8567500639300970049">"কীবোর্ড শর্টকাট"</string>      <string name="shortcut_helper_customize_mode_title" msgid="1467657117101096033">"কীবোর্ড শর্টকাট কাস্টমাইজ করুন"</string>      <string name="shortcut_customize_mode_remove_shortcut_dialog_title" msgid="7106420484940737208">"শর্টকাট সরাবেন?"</string> +    <!-- no translation found for shortcut_customize_mode_reset_shortcut_dialog_title (8131184731313717780) --> +    <skip />      <string name="shortcut_customize_mode_add_shortcut_description" msgid="6866025005347407696">"শর্টকাট অ্যাসাইন করতে কী প্রেস করুন"</string>      <string name="shortcut_customize_mode_remove_shortcut_description" msgid="6851287900585057128">"এটি আপনার কাস্টম শর্টকাট স্থায়ীভাবে মুছে ফেলবে।"</string> +    <!-- no translation found for shortcut_customize_mode_reset_shortcut_description (2081849715634358684) --> +    <skip />      <string name="shortcut_helper_search_placeholder" msgid="5488547526269871819">"শর্টকাট সার্চ করুন"</string>      <string name="shortcut_helper_no_search_results" msgid="8554756497996692160">"কোনও সার্চ ফলাফল নেই"</string>      <string name="shortcut_helper_content_description_collapse_icon" msgid="8028015738431664954">"আইকন আড়াল করুন"</string>      <string name="shortcut_helper_content_description_meta_key" msgid="3989315044342124818">"অ্যাকশন বা মেটা কী আইকন"</string>      <string name="shortcut_helper_content_description_plus_icon" msgid="6152683734278299020">"প্লাস আইকন"</string>      <string name="shortcut_helper_customize_button_text" msgid="3124983502748069338">"কাস্টমাইজ করুন"</string> +    <!-- no translation found for shortcut_helper_reset_button_text (2548243844050633472) --> +    <skip />      <string name="shortcut_helper_done_button_text" msgid="7249905942125386191">"হয়ে গেছে"</string>      <string name="shortcut_helper_content_description_expand_icon" msgid="1084435697860417390">"আইকন বড় করুন"</string>      <string name="shortcut_helper_key_combinations_or_separator" msgid="7082902112102125540">"অথবা"</string> -    <!-- no translation found for shortcut_helper_key_combinations_and_conjunction (6138186504075880224) --> -    <skip /> -    <!-- no translation found for shortcut_helper_key_combinations_forward_slash (1238652537199346970) --> -    <skip /> +    <string name="shortcut_helper_key_combinations_and_conjunction" msgid="6138186504075880224">"যোগ চিহ্ন"</string> +    <string name="shortcut_helper_key_combinations_forward_slash" msgid="1238652537199346970">"ফরওয়ার্ড স্ল্যাশ"</string>      <string name="shortcut_helper_content_description_drag_handle" msgid="5092426406009848110">"টেনে আনার হ্যান্ডেল"</string>      <string name="shortcut_helper_keyboard_settings_buttons_label" msgid="6720967595915985259">"কীবোর্ড সেটিংস"</string>      <string name="shortcut_helper_customize_dialog_set_shortcut_button_label" msgid="4754492225010429382">"শর্টকাট সেট করুন"</string>      <string name="shortcut_helper_customize_dialog_remove_button_label" msgid="6546386970440176552">"সরান"</string> +    <!-- no translation found for shortcut_helper_customize_dialog_reset_button_label (7645535254306312685) --> +    <skip />      <string name="shortcut_helper_customize_dialog_cancel_button_label" msgid="5595546460431741178">"বাতিল করুন"</string>      <string name="shortcut_helper_add_shortcut_dialog_placeholder" msgid="9154297849458741995">"কী প্রেস করুন"</string>      <string name="shortcut_customizer_key_combination_in_use_error_message" msgid="7693234470526626327">"কী কম্বিনেশন আগে থেকে ব্যবহার হচ্ছে। অন্য কী ব্যবহার করে দেখুন।"</string> diff --git a/packages/SystemUI/res/values-bs/strings.xml b/packages/SystemUI/res/values-bs/strings.xml index ab5ffaea94fd..0a88d447b202 100644 --- a/packages/SystemUI/res/values-bs/strings.xml +++ b/packages/SystemUI/res/values-bs/strings.xml @@ -529,7 +529,10 @@      <string name="communal_widgets_disclaimer_text" msgid="1423545475160506349">"Da otvorite aplikaciju pomoću vidžeta, morat ćete potvrditi identitet. Također imajte na umu da ih svako može pregledati, čak i ako je tablet zaključan. Neki vidžeti možda nisu namijenjeni za vaš zaključani ekran i njihovo dodavanje ovdje možda nije sigurno."</string>      <string name="communal_widgets_disclaimer_button" msgid="4423059765740780753">"Razumijem"</string>      <string name="glanceable_hub_lockscreen_affordance_label" msgid="1461611028615752141">"Vidžeti"</string> -    <string name="glanceable_hub_lockscreen_affordance_disabled_text" msgid="511359420883794513">"Da dodate vidžete na zaključani ekran kao prečicu, provjerite je li ovo omogućeno u postavkama."</string> +    <!-- no translation found for glanceable_hub_lockscreen_affordance_disabled_text (599170482297578735) --> +    <skip /> +    <!-- no translation found for glanceable_hub_lockscreen_affordance_action_button_label (7636151133344609375) --> +    <skip />      <string name="accessibility_multi_user_switch_switcher" msgid="5330448341251092660">"Zamijeni korisnika"</string>      <string name="accessibility_multi_user_list_switcher" msgid="8574105376229857407">"padajući meni"</string>      <string name="guest_exit_guest_dialog_message" msgid="8183450985628495709">"Sve aplikacije i podaci iz ove sesije će se izbrisati."</string> @@ -875,14 +878,10 @@      <string name="system_multitasking_splitscreen_focus_lhs" msgid="3164261844398662518">"Pređite u aplikaciju lijevo ili iznad dok koristite podijeljeni ekran"</string>      <string name="system_multitasking_replace" msgid="7410071959803642125">"Za vrijeme podijeljenog ekrana: zamjena jedne aplikacije drugom"</string>      <string name="system_multitasking_move_to_next_display" msgid="6169737557526976997">"Premještanje aktivnog prozora između ekrana"</string> -    <!-- no translation found for system_desktop_mode_snap_left_window (8636204689945162298) --> -    <skip /> -    <!-- no translation found for system_desktop_mode_snap_right_window (2162560187639411929) --> -    <skip /> -    <!-- no translation found for system_desktop_mode_toggle_maximize_window (4084100093691768239) --> -    <skip /> -    <!-- no translation found for system_desktop_mode_minimize_window (1248714536732927092) --> -    <skip /> +    <string name="system_desktop_mode_snap_left_window" msgid="8636204689945162298">"Pomicanje prozora ulijevo"</string> +    <string name="system_desktop_mode_snap_right_window" msgid="2162560187639411929">"Pomicanje prozora udesno"</string> +    <string name="system_desktop_mode_toggle_maximize_window" msgid="4084100093691768239">"Maksimiziranje prozora"</string> +    <string name="system_desktop_mode_minimize_window" msgid="1248714536732927092">"Minimiziranje prozora"</string>      <string name="keyboard_shortcut_group_input" msgid="6888282716546625610">"Unos"</string>      <string name="input_switch_input_language_next" msgid="3782155659868227855">"Prebacivanje na sljedeći jezik"</string>      <string name="input_switch_input_language_previous" msgid="6043341362202336623">"Prebacivanje na prethodni jezik"</string> @@ -1419,7 +1418,6 @@      <string name="shortcut_helper_category_system_controls" msgid="3153344561395751020">"Sistemske kontrole"</string>      <string name="shortcut_helper_category_system_apps" msgid="6001757545472556810">"Sistemske aplikacije"</string>      <string name="shortcut_helper_category_multitasking" msgid="7413381961404090136">"Multitasking"</string> -    <string name="shortcutHelper_category_recent_apps" msgid="7918731953612377145">"Nedavne aplikacije"</string>      <string name="shortcutHelper_category_split_screen" msgid="1159669813444812244">"Podijeljeni ekran"</string>      <string name="shortcut_helper_category_input" msgid="8674018654124839566">"Unos"</string>      <string name="shortcut_helper_category_app_shortcuts" msgid="8010249408308587117">"Prečice aplikacije"</string> @@ -1428,25 +1426,31 @@      <string name="shortcut_helper_title" msgid="8567500639300970049">"Prečice tastature"</string>      <string name="shortcut_helper_customize_mode_title" msgid="1467657117101096033">"Prilagodite prečice na tastaturi"</string>      <string name="shortcut_customize_mode_remove_shortcut_dialog_title" msgid="7106420484940737208">"Ukloniti prečicu?"</string> +    <!-- no translation found for shortcut_customize_mode_reset_shortcut_dialog_title (8131184731313717780) --> +    <skip />      <string name="shortcut_customize_mode_add_shortcut_description" msgid="6866025005347407696">"Pritisnite tipku da dodijelite prečicu"</string>      <string name="shortcut_customize_mode_remove_shortcut_description" msgid="6851287900585057128">"Ovo će trajno izbrisati prilagođenu prečicu."</string> +    <!-- no translation found for shortcut_customize_mode_reset_shortcut_description (2081849715634358684) --> +    <skip />      <string name="shortcut_helper_search_placeholder" msgid="5488547526269871819">"Prečica pretraživanja"</string>      <string name="shortcut_helper_no_search_results" msgid="8554756497996692160">"Nema rezultata pretraživanja"</string>      <string name="shortcut_helper_content_description_collapse_icon" msgid="8028015738431664954">"Ikona sužavanja"</string>      <string name="shortcut_helper_content_description_meta_key" msgid="3989315044342124818">"Ikona tipke radnji ili meta tipka"</string>      <string name="shortcut_helper_content_description_plus_icon" msgid="6152683734278299020">"Ikona znaka plus"</string>      <string name="shortcut_helper_customize_button_text" msgid="3124983502748069338">"Prilagođavanje"</string> +    <!-- no translation found for shortcut_helper_reset_button_text (2548243844050633472) --> +    <skip />      <string name="shortcut_helper_done_button_text" msgid="7249905942125386191">"Gotovo"</string>      <string name="shortcut_helper_content_description_expand_icon" msgid="1084435697860417390">"Ikona proširivanja"</string>      <string name="shortcut_helper_key_combinations_or_separator" msgid="7082902112102125540">"ili"</string> -    <!-- no translation found for shortcut_helper_key_combinations_and_conjunction (6138186504075880224) --> -    <skip /> -    <!-- no translation found for shortcut_helper_key_combinations_forward_slash (1238652537199346970) --> -    <skip /> +    <string name="shortcut_helper_key_combinations_and_conjunction" msgid="6138186504075880224">"plus"</string> +    <string name="shortcut_helper_key_combinations_forward_slash" msgid="1238652537199346970">"kosa crta"</string>      <string name="shortcut_helper_content_description_drag_handle" msgid="5092426406009848110">"Ručica za prevlačenje"</string>      <string name="shortcut_helper_keyboard_settings_buttons_label" msgid="6720967595915985259">"Postavke tastature"</string>      <string name="shortcut_helper_customize_dialog_set_shortcut_button_label" msgid="4754492225010429382">"Postavi prečicu"</string>      <string name="shortcut_helper_customize_dialog_remove_button_label" msgid="6546386970440176552">"Ukloni"</string> +    <!-- no translation found for shortcut_helper_customize_dialog_reset_button_label (7645535254306312685) --> +    <skip />      <string name="shortcut_helper_customize_dialog_cancel_button_label" msgid="5595546460431741178">"Otkaži"</string>      <string name="shortcut_helper_add_shortcut_dialog_placeholder" msgid="9154297849458741995">"Pritisnite tipku"</string>      <string name="shortcut_customizer_key_combination_in_use_error_message" msgid="7693234470526626327">"Ta se kombinacija tipki već koristi. Pokušajte s drugom tipkom."</string> diff --git a/packages/SystemUI/res/values-ca/strings.xml b/packages/SystemUI/res/values-ca/strings.xml index 152e1adc72a9..614fe233c965 100644 --- a/packages/SystemUI/res/values-ca/strings.xml +++ b/packages/SystemUI/res/values-ca/strings.xml @@ -529,7 +529,10 @@      <string name="communal_widgets_disclaimer_text" msgid="1423545475160506349">"Per obrir una aplicació utilitzant un widget, necessitaràs verificar la teva identitat. També has de tenir en compte que qualsevol persona pot veure els widgets, fins i tot quan la tauleta està bloquejada. És possible que alguns widgets no estiguin pensats per a la pantalla de bloqueig i que no sigui segur afegir-los-hi."</string>      <string name="communal_widgets_disclaimer_button" msgid="4423059765740780753">"Entesos"</string>      <string name="glanceable_hub_lockscreen_affordance_label" msgid="1461611028615752141">"Widgets"</string> -    <string name="glanceable_hub_lockscreen_affordance_disabled_text" msgid="511359420883794513">"Per afegir widgets a la pantalla de bloqueig com a drecera, assegura\'t que estiguin activats a la configuració."</string> +    <!-- no translation found for glanceable_hub_lockscreen_affordance_disabled_text (599170482297578735) --> +    <skip /> +    <!-- no translation found for glanceable_hub_lockscreen_affordance_action_button_label (7636151133344609375) --> +    <skip />      <string name="accessibility_multi_user_switch_switcher" msgid="5330448341251092660">"Canvia d\'usuari"</string>      <string name="accessibility_multi_user_list_switcher" msgid="8574105376229857407">"menú desplegable"</string>      <string name="guest_exit_guest_dialog_message" msgid="8183450985628495709">"Totes les aplicacions i les dades d\'aquesta sessió se suprimiran."</string> @@ -875,14 +878,10 @@      <string name="system_multitasking_splitscreen_focus_lhs" msgid="3164261844398662518">"Canvia a l\'aplicació de l\'esquerra o de dalt amb la pantalla dividida"</string>      <string name="system_multitasking_replace" msgid="7410071959803642125">"Durant el mode de pantalla dividida: substitueix una app per una altra"</string>      <string name="system_multitasking_move_to_next_display" msgid="6169737557526976997">"Mou la finestra activa entre pantalles"</string> -    <!-- no translation found for system_desktop_mode_snap_left_window (8636204689945162298) --> -    <skip /> -    <!-- no translation found for system_desktop_mode_snap_right_window (2162560187639411929) --> -    <skip /> -    <!-- no translation found for system_desktop_mode_toggle_maximize_window (4084100093691768239) --> -    <skip /> -    <!-- no translation found for system_desktop_mode_minimize_window (1248714536732927092) --> -    <skip /> +    <string name="system_desktop_mode_snap_left_window" msgid="8636204689945162298">"Mou la finestra cap a l\'esquerra"</string> +    <string name="system_desktop_mode_snap_right_window" msgid="2162560187639411929">"Mou la finestra cap a la dreta"</string> +    <string name="system_desktop_mode_toggle_maximize_window" msgid="4084100093691768239">"Maximitza la finestra"</string> +    <string name="system_desktop_mode_minimize_window" msgid="1248714536732927092">"Minimitza la finestra"</string>      <string name="keyboard_shortcut_group_input" msgid="6888282716546625610">"Entrada"</string>      <string name="input_switch_input_language_next" msgid="3782155659868227855">"Canvia a l\'idioma següent"</string>      <string name="input_switch_input_language_previous" msgid="6043341362202336623">"Caniva a l\'idioma anterior"</string> @@ -1419,7 +1418,6 @@      <string name="shortcut_helper_category_system_controls" msgid="3153344561395751020">"Controls del sistema"</string>      <string name="shortcut_helper_category_system_apps" msgid="6001757545472556810">"Aplicacions del sistema"</string>      <string name="shortcut_helper_category_multitasking" msgid="7413381961404090136">"Multitasca"</string> -    <string name="shortcutHelper_category_recent_apps" msgid="7918731953612377145">"Aplicacions recents"</string>      <string name="shortcutHelper_category_split_screen" msgid="1159669813444812244">"Pantalla dividida"</string>      <string name="shortcut_helper_category_input" msgid="8674018654124839566">"Entrada"</string>      <string name="shortcut_helper_category_app_shortcuts" msgid="8010249408308587117">"Dreceres d\'aplicacions"</string> @@ -1428,25 +1426,31 @@      <string name="shortcut_helper_title" msgid="8567500639300970049">"Tecles de drecera"</string>      <string name="shortcut_helper_customize_mode_title" msgid="1467657117101096033">"Personalitza les tecles de drecera"</string>      <string name="shortcut_customize_mode_remove_shortcut_dialog_title" msgid="7106420484940737208">"Vols suprimir la drecera?"</string> +    <!-- no translation found for shortcut_customize_mode_reset_shortcut_dialog_title (8131184731313717780) --> +    <skip />      <string name="shortcut_customize_mode_add_shortcut_description" msgid="6866025005347407696">"Prem la tecla per assignar la drecera"</string>      <string name="shortcut_customize_mode_remove_shortcut_description" msgid="6851287900585057128">"Aquesta acció suprimirà la drecera personalitzada permanentment."</string> +    <!-- no translation found for shortcut_customize_mode_reset_shortcut_description (2081849715634358684) --> +    <skip />      <string name="shortcut_helper_search_placeholder" msgid="5488547526269871819">"Dreceres de cerca"</string>      <string name="shortcut_helper_no_search_results" msgid="8554756497996692160">"No hi ha cap resultat de la cerca"</string>      <string name="shortcut_helper_content_description_collapse_icon" msgid="8028015738431664954">"Replega la icona"</string>      <string name="shortcut_helper_content_description_meta_key" msgid="3989315044342124818">"Icona de la tecla d\'acció o Meta"</string>      <string name="shortcut_helper_content_description_plus_icon" msgid="6152683734278299020">"Icona del signe més"</string>      <string name="shortcut_helper_customize_button_text" msgid="3124983502748069338">"Personalitza"</string> +    <!-- no translation found for shortcut_helper_reset_button_text (2548243844050633472) --> +    <skip />      <string name="shortcut_helper_done_button_text" msgid="7249905942125386191">"Fet"</string>      <string name="shortcut_helper_content_description_expand_icon" msgid="1084435697860417390">"Desplega la icona"</string>      <string name="shortcut_helper_key_combinations_or_separator" msgid="7082902112102125540">"o"</string> -    <!-- no translation found for shortcut_helper_key_combinations_and_conjunction (6138186504075880224) --> -    <skip /> -    <!-- no translation found for shortcut_helper_key_combinations_forward_slash (1238652537199346970) --> -    <skip /> +    <string name="shortcut_helper_key_combinations_and_conjunction" msgid="6138186504075880224">"més"</string> +    <string name="shortcut_helper_key_combinations_forward_slash" msgid="1238652537199346970">"barra inclinada"</string>      <string name="shortcut_helper_content_description_drag_handle" msgid="5092426406009848110">"Ansa per arrossegar"</string>      <string name="shortcut_helper_keyboard_settings_buttons_label" msgid="6720967595915985259">"Configuració del teclat"</string>      <string name="shortcut_helper_customize_dialog_set_shortcut_button_label" msgid="4754492225010429382">"Configura la drecera"</string>      <string name="shortcut_helper_customize_dialog_remove_button_label" msgid="6546386970440176552">"Suprimeix"</string> +    <!-- no translation found for shortcut_helper_customize_dialog_reset_button_label (7645535254306312685) --> +    <skip />      <string name="shortcut_helper_customize_dialog_cancel_button_label" msgid="5595546460431741178">"Cancel·la"</string>      <string name="shortcut_helper_add_shortcut_dialog_placeholder" msgid="9154297849458741995">"Prem una tecla"</string>      <string name="shortcut_customizer_key_combination_in_use_error_message" msgid="7693234470526626327">"La combinació de tecles ja s\'està utilitzant. Prova-ho amb una altra tecla."</string> diff --git a/packages/SystemUI/res/values-cs/strings.xml b/packages/SystemUI/res/values-cs/strings.xml index ac0c6d66fc29..9d5a97a34bde 100644 --- a/packages/SystemUI/res/values-cs/strings.xml +++ b/packages/SystemUI/res/values-cs/strings.xml @@ -529,7 +529,10 @@      <string name="communal_widgets_disclaimer_text" msgid="1423545475160506349">"K otevření aplikace pomocí widgetu budete muset ověřit svou totožnost. Také mějte na paměti, že widgety uvidí kdokoli, i když tablet bude uzamčen. Některé widgety nemusí být pro obrazovku uzamčení určeny a nemusí být bezpečné je na ni přidat."</string>      <string name="communal_widgets_disclaimer_button" msgid="4423059765740780753">"Rozumím"</string>      <string name="glanceable_hub_lockscreen_affordance_label" msgid="1461611028615752141">"Widgety"</string> -    <string name="glanceable_hub_lockscreen_affordance_disabled_text" msgid="511359420883794513">"Pokud chcete přidat Widgety na obrazovku uzamčení jako zkratku, musí to být povoleno v nastavení."</string> +    <!-- no translation found for glanceable_hub_lockscreen_affordance_disabled_text (599170482297578735) --> +    <skip /> +    <!-- no translation found for glanceable_hub_lockscreen_affordance_action_button_label (7636151133344609375) --> +    <skip />      <string name="accessibility_multi_user_switch_switcher" msgid="5330448341251092660">"Přepnout uživatele"</string>      <string name="accessibility_multi_user_list_switcher" msgid="8574105376229857407">"rozbalovací nabídka"</string>      <string name="guest_exit_guest_dialog_message" msgid="8183450985628495709">"Veškeré aplikace a data v této relaci budou vymazána."</string> @@ -875,14 +878,10 @@      <string name="system_multitasking_splitscreen_focus_lhs" msgid="3164261844398662518">"Přepnout na aplikaci vlevo nebo nahoře v režimu rozdělené obrazovky"</string>      <string name="system_multitasking_replace" msgid="7410071959803642125">"V režimu rozdělené obrazovky: nahradit jednu aplikaci druhou"</string>      <string name="system_multitasking_move_to_next_display" msgid="6169737557526976997">"Přesunout aktivní okno mezi obrazovkami"</string> -    <!-- no translation found for system_desktop_mode_snap_left_window (8636204689945162298) --> -    <skip /> -    <!-- no translation found for system_desktop_mode_snap_right_window (2162560187639411929) --> -    <skip /> -    <!-- no translation found for system_desktop_mode_toggle_maximize_window (4084100093691768239) --> -    <skip /> -    <!-- no translation found for system_desktop_mode_minimize_window (1248714536732927092) --> -    <skip /> +    <string name="system_desktop_mode_snap_left_window" msgid="8636204689945162298">"Přesunout okno doleva"</string> +    <string name="system_desktop_mode_snap_right_window" msgid="2162560187639411929">"Přesunout okno doprava"</string> +    <string name="system_desktop_mode_toggle_maximize_window" msgid="4084100093691768239">"Maximalizovat okno"</string> +    <string name="system_desktop_mode_minimize_window" msgid="1248714536732927092">"Minimalizovat okno"</string>      <string name="keyboard_shortcut_group_input" msgid="6888282716546625610">"Vstup"</string>      <string name="input_switch_input_language_next" msgid="3782155659868227855">"Přepnout na další jazyk"</string>      <string name="input_switch_input_language_previous" msgid="6043341362202336623">"Přepnout na předchozí jazyk"</string> @@ -1391,7 +1390,7 @@      <string name="assistant_attention_content_description" msgid="4166330881435263596">"Je zjištěna přítomnost uživatele"</string>      <string name="set_default_notes_app_toast_content" msgid="2812374329662610753">"Výchozí aplikaci pro poznámky nastavíte v Nastavení"</string>      <string name="install_app" msgid="5066668100199613936">"Nainstalovat aplikaci"</string> -    <string name="dismissible_keyguard_swipe" msgid="8377597870094949432">"Pokračujte přejetím"</string> +    <string name="dismissible_keyguard_swipe" msgid="8377597870094949432">"Pokračovat přejetím nahoru"</string>      <string name="connected_display_dialog_start_mirroring" msgid="6237895789920854982">"Zrcadlit na externí displej?"</string>      <string name="connected_display_dialog_dual_display_stop_warning" msgid="4174707498892447947">"Vnitřní displej bude zrcadlen. Přední displej bude vypnutý."</string>      <string name="mirror_display" msgid="2515262008898122928">"Zrcadlit displej"</string> @@ -1419,7 +1418,6 @@      <string name="shortcut_helper_category_system_controls" msgid="3153344561395751020">"Ovládací prvky systému"</string>      <string name="shortcut_helper_category_system_apps" msgid="6001757545472556810">"Systémové aplikace"</string>      <string name="shortcut_helper_category_multitasking" msgid="7413381961404090136">"Multitasking"</string> -    <string name="shortcutHelper_category_recent_apps" msgid="7918731953612377145">"Poslední aplikace"</string>      <string name="shortcutHelper_category_split_screen" msgid="1159669813444812244">"Rozdělená obrazovka"</string>      <string name="shortcut_helper_category_input" msgid="8674018654124839566">"Vstup"</string>      <string name="shortcut_helper_category_app_shortcuts" msgid="8010249408308587117">"Zkratky aplikací"</string> @@ -1428,25 +1426,31 @@      <string name="shortcut_helper_title" msgid="8567500639300970049">"Klávesové zkratky"</string>      <string name="shortcut_helper_customize_mode_title" msgid="1467657117101096033">"Přizpůsobení klávesových zkratek"</string>      <string name="shortcut_customize_mode_remove_shortcut_dialog_title" msgid="7106420484940737208">"Odstrabit zkratku?"</string> +    <!-- no translation found for shortcut_customize_mode_reset_shortcut_dialog_title (8131184731313717780) --> +    <skip />      <string name="shortcut_customize_mode_add_shortcut_description" msgid="6866025005347407696">"Nastavte zkratku stisknutím klávesy"</string>      <string name="shortcut_customize_mode_remove_shortcut_description" msgid="6851287900585057128">"Vlastní zkratka se trvale smaže."</string> +    <!-- no translation found for shortcut_customize_mode_reset_shortcut_description (2081849715634358684) --> +    <skip />      <string name="shortcut_helper_search_placeholder" msgid="5488547526269871819">"Vyhledat zkratky"</string>      <string name="shortcut_helper_no_search_results" msgid="8554756497996692160">"Žádné výsledky hledání"</string>      <string name="shortcut_helper_content_description_collapse_icon" msgid="8028015738431664954">"Ikona sbalení"</string>      <string name="shortcut_helper_content_description_meta_key" msgid="3989315044342124818">"Ikona klávesy Akce nebo Meta"</string>      <string name="shortcut_helper_content_description_plus_icon" msgid="6152683734278299020">"Ikona Plus"</string>      <string name="shortcut_helper_customize_button_text" msgid="3124983502748069338">"Přizpůsobit"</string> +    <!-- no translation found for shortcut_helper_reset_button_text (2548243844050633472) --> +    <skip />      <string name="shortcut_helper_done_button_text" msgid="7249905942125386191">"Hotovo"</string>      <string name="shortcut_helper_content_description_expand_icon" msgid="1084435697860417390">"Ikona rozbalení"</string>      <string name="shortcut_helper_key_combinations_or_separator" msgid="7082902112102125540">"nebo"</string> -    <!-- no translation found for shortcut_helper_key_combinations_and_conjunction (6138186504075880224) --> -    <skip /> -    <!-- no translation found for shortcut_helper_key_combinations_forward_slash (1238652537199346970) --> -    <skip /> +    <string name="shortcut_helper_key_combinations_and_conjunction" msgid="6138186504075880224">"plus"</string> +    <string name="shortcut_helper_key_combinations_forward_slash" msgid="1238652537199346970">"lomítko"</string>      <string name="shortcut_helper_content_description_drag_handle" msgid="5092426406009848110">"Úchyt pro přetažení"</string>      <string name="shortcut_helper_keyboard_settings_buttons_label" msgid="6720967595915985259">"Nastavení klávesnice"</string>      <string name="shortcut_helper_customize_dialog_set_shortcut_button_label" msgid="4754492225010429382">"Nastavit zkratku"</string>      <string name="shortcut_helper_customize_dialog_remove_button_label" msgid="6546386970440176552">"Odstranit"</string> +    <!-- no translation found for shortcut_helper_customize_dialog_reset_button_label (7645535254306312685) --> +    <skip />      <string name="shortcut_helper_customize_dialog_cancel_button_label" msgid="5595546460431741178">"Zrušit"</string>      <string name="shortcut_helper_add_shortcut_dialog_placeholder" msgid="9154297849458741995">"Stiskněte klávesu"</string>      <string name="shortcut_customizer_key_combination_in_use_error_message" msgid="7693234470526626327">"Kombinace kláves se už používá. Použijte jinou klávesu."</string> diff --git a/packages/SystemUI/res/values-da/strings.xml b/packages/SystemUI/res/values-da/strings.xml index 968d44c6b597..53f34620c267 100644 --- a/packages/SystemUI/res/values-da/strings.xml +++ b/packages/SystemUI/res/values-da/strings.xml @@ -529,7 +529,10 @@      <string name="communal_widgets_disclaimer_text" msgid="1423545475160506349">"Hvis du vil åbne en app ved hjælp af en widget, skal du verificere din identitet. Husk også, at alle kan se dem, også når din tablet er låst. Nogle widgets er muligvis ikke beregnet til låseskærmen, og det kan være usikkert at tilføje dem her."</string>      <string name="communal_widgets_disclaimer_button" msgid="4423059765740780753">"OK"</string>      <string name="glanceable_hub_lockscreen_affordance_label" msgid="1461611028615752141">"Widgets"</string> -    <string name="glanceable_hub_lockscreen_affordance_disabled_text" msgid="511359420883794513">"Hvis du vil tilføje widgets på låseskærmen som en genvej, skal du sørge for, at funktionen er aktiveret i indstillingerne."</string> +    <!-- no translation found for glanceable_hub_lockscreen_affordance_disabled_text (599170482297578735) --> +    <skip /> +    <!-- no translation found for glanceable_hub_lockscreen_affordance_action_button_label (7636151133344609375) --> +    <skip />      <string name="accessibility_multi_user_switch_switcher" msgid="5330448341251092660">"Skift bruger"</string>      <string name="accessibility_multi_user_list_switcher" msgid="8574105376229857407">"rullemenu"</string>      <string name="guest_exit_guest_dialog_message" msgid="8183450985628495709">"Alle apps og data i denne session slettes."</string> @@ -875,14 +878,10 @@      <string name="system_multitasking_splitscreen_focus_lhs" msgid="3164261844398662518">"Skift til en app til venstre eller ovenfor, når du bruger opdelt skærm"</string>      <string name="system_multitasking_replace" msgid="7410071959803642125">"Ved opdelt skærm: Udskift én app med en anden"</string>      <string name="system_multitasking_move_to_next_display" msgid="6169737557526976997">"Flyt det aktive vindue fra skærm til skærm"</string> -    <!-- no translation found for system_desktop_mode_snap_left_window (8636204689945162298) --> -    <skip /> -    <!-- no translation found for system_desktop_mode_snap_right_window (2162560187639411929) --> -    <skip /> -    <!-- no translation found for system_desktop_mode_toggle_maximize_window (4084100093691768239) --> -    <skip /> -    <!-- no translation found for system_desktop_mode_minimize_window (1248714536732927092) --> -    <skip /> +    <string name="system_desktop_mode_snap_left_window" msgid="8636204689945162298">"Flyt vinduet til venstre"</string> +    <string name="system_desktop_mode_snap_right_window" msgid="2162560187639411929">"Flyt vinduet til højre"</string> +    <string name="system_desktop_mode_toggle_maximize_window" msgid="4084100093691768239">"Maksimér vinduet"</string> +    <string name="system_desktop_mode_minimize_window" msgid="1248714536732927092">"Minimer vinduet"</string>      <string name="keyboard_shortcut_group_input" msgid="6888282716546625610">"Input"</string>      <string name="input_switch_input_language_next" msgid="3782155659868227855">"Skift til næste sprog"</string>      <string name="input_switch_input_language_previous" msgid="6043341362202336623">"Skift til forrige sprog"</string> @@ -1419,7 +1418,6 @@      <string name="shortcut_helper_category_system_controls" msgid="3153344561395751020">"Systemstyring"</string>      <string name="shortcut_helper_category_system_apps" msgid="6001757545472556810">"Systemapps"</string>      <string name="shortcut_helper_category_multitasking" msgid="7413381961404090136">"Multitasking"</string> -    <string name="shortcutHelper_category_recent_apps" msgid="7918731953612377145">"Seneste apps"</string>      <string name="shortcutHelper_category_split_screen" msgid="1159669813444812244">"Opdelt skærm"</string>      <string name="shortcut_helper_category_input" msgid="8674018654124839566">"Input"</string>      <string name="shortcut_helper_category_app_shortcuts" msgid="8010249408308587117">"Appgenveje"</string> @@ -1428,25 +1426,31 @@      <string name="shortcut_helper_title" msgid="8567500639300970049">"Tastaturgenveje"</string>      <string name="shortcut_helper_customize_mode_title" msgid="1467657117101096033">"Tilpas tastaturgenveje"</string>      <string name="shortcut_customize_mode_remove_shortcut_dialog_title" msgid="7106420484940737208">"Skal genvejen fjernes?"</string> +    <!-- no translation found for shortcut_customize_mode_reset_shortcut_dialog_title (8131184731313717780) --> +    <skip />      <string name="shortcut_customize_mode_add_shortcut_description" msgid="6866025005347407696">"Tryk på en tast for at tildele genvej"</string>      <string name="shortcut_customize_mode_remove_shortcut_description" msgid="6851287900585057128">"Denne handling sletter din tilpassede genvej permanent."</string> +    <!-- no translation found for shortcut_customize_mode_reset_shortcut_description (2081849715634358684) --> +    <skip />      <string name="shortcut_helper_search_placeholder" msgid="5488547526269871819">"Genveje til søgning"</string>      <string name="shortcut_helper_no_search_results" msgid="8554756497996692160">"Der er ingen søgeresultater"</string>      <string name="shortcut_helper_content_description_collapse_icon" msgid="8028015738431664954">"Ikon for Skjul"</string>      <string name="shortcut_helper_content_description_meta_key" msgid="3989315044342124818">"Ikon for handlingstast eller metatast"</string>      <string name="shortcut_helper_content_description_plus_icon" msgid="6152683734278299020">"Plusikon"</string>      <string name="shortcut_helper_customize_button_text" msgid="3124983502748069338">"Tilpas"</string> +    <!-- no translation found for shortcut_helper_reset_button_text (2548243844050633472) --> +    <skip />      <string name="shortcut_helper_done_button_text" msgid="7249905942125386191">"Udfør"</string>      <string name="shortcut_helper_content_description_expand_icon" msgid="1084435697860417390">"Ikon for Udvid"</string>      <string name="shortcut_helper_key_combinations_or_separator" msgid="7082902112102125540">"eller"</string> -    <!-- no translation found for shortcut_helper_key_combinations_and_conjunction (6138186504075880224) --> -    <skip /> -    <!-- no translation found for shortcut_helper_key_combinations_forward_slash (1238652537199346970) --> -    <skip /> +    <string name="shortcut_helper_key_combinations_and_conjunction" msgid="6138186504075880224">"plus"</string> +    <string name="shortcut_helper_key_combinations_forward_slash" msgid="1238652537199346970">"skråstreg"</string>      <string name="shortcut_helper_content_description_drag_handle" msgid="5092426406009848110">"Håndtag"</string>      <string name="shortcut_helper_keyboard_settings_buttons_label" msgid="6720967595915985259">"Tastaturindstillinger"</string>      <string name="shortcut_helper_customize_dialog_set_shortcut_button_label" msgid="4754492225010429382">"Konfigurer genvej"</string>      <string name="shortcut_helper_customize_dialog_remove_button_label" msgid="6546386970440176552">"Fjern"</string> +    <!-- no translation found for shortcut_helper_customize_dialog_reset_button_label (7645535254306312685) --> +    <skip />      <string name="shortcut_helper_customize_dialog_cancel_button_label" msgid="5595546460431741178">"Annuller"</string>      <string name="shortcut_helper_add_shortcut_dialog_placeholder" msgid="9154297849458741995">"Tryk på en tast"</string>      <string name="shortcut_customizer_key_combination_in_use_error_message" msgid="7693234470526626327">"Tastekombinationen er allerede i brug. Prøv en anden tast."</string> diff --git a/packages/SystemUI/res/values-de/strings.xml b/packages/SystemUI/res/values-de/strings.xml index 4994130ca5e4..e40445af0dbe 100644 --- a/packages/SystemUI/res/values-de/strings.xml +++ b/packages/SystemUI/res/values-de/strings.xml @@ -529,7 +529,10 @@      <string name="communal_widgets_disclaimer_text" msgid="1423545475160506349">"Wenn du eine App mit einem Widget öffnen möchtest, musst du deine Identität bestätigen. Beachte auch, dass jeder die Widgets sehen kann, auch wenn dein Tablet gesperrt ist. Einige Widgets sind möglicherweise nicht für den Sperrbildschirm vorgesehen, sodass es unsicher sein kann, sie hier hinzuzufügen."</string>      <string name="communal_widgets_disclaimer_button" msgid="4423059765740780753">"Ok"</string>      <string name="glanceable_hub_lockscreen_affordance_label" msgid="1461611028615752141">"Widgets"</string> -    <string name="glanceable_hub_lockscreen_affordance_disabled_text" msgid="511359420883794513">"Wenn du die Funktion „Widgets auf dem Sperrbildschirm“ als Verknüpfung hinzufügen möchtest, musst du diese Funktion zuerst in den Einstellungen aktivieren."</string> +    <!-- no translation found for glanceable_hub_lockscreen_affordance_disabled_text (599170482297578735) --> +    <skip /> +    <!-- no translation found for glanceable_hub_lockscreen_affordance_action_button_label (7636151133344609375) --> +    <skip />      <string name="accessibility_multi_user_switch_switcher" msgid="5330448341251092660">"Nutzer wechseln"</string>      <string name="accessibility_multi_user_list_switcher" msgid="8574105376229857407">"Pull-down-Menü"</string>      <string name="guest_exit_guest_dialog_message" msgid="8183450985628495709">"Alle Apps und Daten in dieser Sitzung werden gelöscht."</string> @@ -875,14 +878,10 @@      <string name="system_multitasking_splitscreen_focus_lhs" msgid="3164261844398662518">"Im Splitscreen-Modus zu einer App links oder oben wechseln"</string>      <string name="system_multitasking_replace" msgid="7410071959803642125">"Im Splitscreen: eine App durch eine andere ersetzen"</string>      <string name="system_multitasking_move_to_next_display" msgid="6169737557526976997">"Aktives Fenster auf anderes Display verschieben"</string> -    <!-- no translation found for system_desktop_mode_snap_left_window (8636204689945162298) --> -    <skip /> -    <!-- no translation found for system_desktop_mode_snap_right_window (2162560187639411929) --> -    <skip /> -    <!-- no translation found for system_desktop_mode_toggle_maximize_window (4084100093691768239) --> -    <skip /> -    <!-- no translation found for system_desktop_mode_minimize_window (1248714536732927092) --> -    <skip /> +    <string name="system_desktop_mode_snap_left_window" msgid="8636204689945162298">"Fenster nach links verschieben"</string> +    <string name="system_desktop_mode_snap_right_window" msgid="2162560187639411929">"Fenster nach rechts verschieben"</string> +    <string name="system_desktop_mode_toggle_maximize_window" msgid="4084100093691768239">"Fenster maximieren"</string> +    <string name="system_desktop_mode_minimize_window" msgid="1248714536732927092">"Fenster minimieren"</string>      <string name="keyboard_shortcut_group_input" msgid="6888282716546625610">"Eingabe"</string>      <string name="input_switch_input_language_next" msgid="3782155659868227855">"Zur nächsten Sprache wechseln"</string>      <string name="input_switch_input_language_previous" msgid="6043341362202336623">"Zur vorherigen Sprache wechseln"</string> @@ -1419,7 +1418,6 @@      <string name="shortcut_helper_category_system_controls" msgid="3153344561395751020">"Systemsteuerelemente"</string>      <string name="shortcut_helper_category_system_apps" msgid="6001757545472556810">"System-Apps"</string>      <string name="shortcut_helper_category_multitasking" msgid="7413381961404090136">"Multitasking"</string> -    <string name="shortcutHelper_category_recent_apps" msgid="7918731953612377145">"Zuletzt verwendete Apps"</string>      <string name="shortcutHelper_category_split_screen" msgid="1159669813444812244">"Splitscreen"</string>      <string name="shortcut_helper_category_input" msgid="8674018654124839566">"Eingabe"</string>      <string name="shortcut_helper_category_app_shortcuts" msgid="8010249408308587117">"App-Verknüpfungen"</string> @@ -1428,25 +1426,31 @@      <string name="shortcut_helper_title" msgid="8567500639300970049">"Tastenkürzel"</string>      <string name="shortcut_helper_customize_mode_title" msgid="1467657117101096033">"Tastenkombinationen anpassen"</string>      <string name="shortcut_customize_mode_remove_shortcut_dialog_title" msgid="7106420484940737208">"Tastenkombination entfernen?"</string> +    <!-- no translation found for shortcut_customize_mode_reset_shortcut_dialog_title (8131184731313717780) --> +    <skip />      <string name="shortcut_customize_mode_add_shortcut_description" msgid="6866025005347407696">"Drücke eine Taste, um eine Tastenkombination festzulegen"</string>      <string name="shortcut_customize_mode_remove_shortcut_description" msgid="6851287900585057128">"Dadurch wird die benutzerdefinierte Tastenkombination endgültig gelöscht."</string> +    <!-- no translation found for shortcut_customize_mode_reset_shortcut_description (2081849715634358684) --> +    <skip />      <string name="shortcut_helper_search_placeholder" msgid="5488547526269871819">"Tastenkürzel suchen"</string>      <string name="shortcut_helper_no_search_results" msgid="8554756497996692160">"Keine Suchergebnisse"</string>      <string name="shortcut_helper_content_description_collapse_icon" msgid="8028015738431664954">"Symbol „Minimieren“"</string>      <string name="shortcut_helper_content_description_meta_key" msgid="3989315044342124818">"Symbol für Aktions- oder Meta-Taste"</string>      <string name="shortcut_helper_content_description_plus_icon" msgid="6152683734278299020">"Plussymbol"</string>      <string name="shortcut_helper_customize_button_text" msgid="3124983502748069338">"Anpassen"</string> +    <!-- no translation found for shortcut_helper_reset_button_text (2548243844050633472) --> +    <skip />      <string name="shortcut_helper_done_button_text" msgid="7249905942125386191">"Fertig"</string>      <string name="shortcut_helper_content_description_expand_icon" msgid="1084435697860417390">"Symbol „Maximieren“"</string>      <string name="shortcut_helper_key_combinations_or_separator" msgid="7082902112102125540">"oder"</string> -    <!-- no translation found for shortcut_helper_key_combinations_and_conjunction (6138186504075880224) --> -    <skip /> -    <!-- no translation found for shortcut_helper_key_combinations_forward_slash (1238652537199346970) --> -    <skip /> +    <string name="shortcut_helper_key_combinations_and_conjunction" msgid="6138186504075880224">"plus"</string> +    <string name="shortcut_helper_key_combinations_forward_slash" msgid="1238652537199346970">"Schrägstrich"</string>      <string name="shortcut_helper_content_description_drag_handle" msgid="5092426406009848110">"Ziehpunkt"</string>      <string name="shortcut_helper_keyboard_settings_buttons_label" msgid="6720967595915985259">"Tastatureinstellungen"</string>      <string name="shortcut_helper_customize_dialog_set_shortcut_button_label" msgid="4754492225010429382">"Tastenkombination festlegen"</string>      <string name="shortcut_helper_customize_dialog_remove_button_label" msgid="6546386970440176552">"Entfernen"</string> +    <!-- no translation found for shortcut_helper_customize_dialog_reset_button_label (7645535254306312685) --> +    <skip />      <string name="shortcut_helper_customize_dialog_cancel_button_label" msgid="5595546460431741178">"Abbrechen"</string>      <string name="shortcut_helper_add_shortcut_dialog_placeholder" msgid="9154297849458741995">"Taste drücken"</string>      <string name="shortcut_customizer_key_combination_in_use_error_message" msgid="7693234470526626327">"Diese Tastenkombination wird bereits verwendet. Versuche es mit einer anderen Taste."</string> diff --git a/packages/SystemUI/res/values-el/strings.xml b/packages/SystemUI/res/values-el/strings.xml index 1e4ef8564d7e..43fa01a1e653 100644 --- a/packages/SystemUI/res/values-el/strings.xml +++ b/packages/SystemUI/res/values-el/strings.xml @@ -529,7 +529,10 @@      <string name="communal_widgets_disclaimer_text" msgid="1423545475160506349">"Για να ανοίξετε μια εφαρμογή χρησιμοποιώντας ένα γραφικό στοιχείο, θα πρέπει να επαληθεύσετε την ταυτότητά σας. Επίσης, λάβετε υπόψη ότι η προβολή τους είναι δυνατή από οποιονδήποτε, ακόμα και όταν το tablet σας είναι κλειδωμένο. Ορισμένα γραφικά στοιχεία μπορεί να μην προορίζονται για την οθόνη κλειδώματος και η προσθήκη τους εδώ ενδέχεται να μην είναι ασφαλής."</string>      <string name="communal_widgets_disclaimer_button" msgid="4423059765740780753">"Το κατάλαβα"</string>      <string name="glanceable_hub_lockscreen_affordance_label" msgid="1461611028615752141">"Widgets"</string> -    <string name="glanceable_hub_lockscreen_affordance_disabled_text" msgid="511359420883794513">"Για να προσθέσετε το Widgets στην οθόνη κλειδώματος ως συντόμευση, βεβαιωθείτε ότι είναι ενεργοποιημένο στις ρυθμίσεις."</string> +    <!-- no translation found for glanceable_hub_lockscreen_affordance_disabled_text (599170482297578735) --> +    <skip /> +    <!-- no translation found for glanceable_hub_lockscreen_affordance_action_button_label (7636151133344609375) --> +    <skip />      <string name="accessibility_multi_user_switch_switcher" msgid="5330448341251092660">"Εναλλαγή χρήστη"</string>      <string name="accessibility_multi_user_list_switcher" msgid="8574105376229857407">"αναπτυσσόμενο μενού"</string>      <string name="guest_exit_guest_dialog_message" msgid="8183450985628495709">"Όλες οι εφαρμογές και τα δεδομένα αυτής της περιόδου σύνδεσης θα διαγραφούν."</string> @@ -875,14 +878,10 @@      <string name="system_multitasking_splitscreen_focus_lhs" msgid="3164261844398662518">"Εναλλαγή σε εφαρμογή αριστερά ή επάνω κατά τη χρήση διαχωρισμού οθόνης"</string>      <string name="system_multitasking_replace" msgid="7410071959803642125">"Κατά τον διαχωρισμό οθόνης: αντικατάσταση μιας εφαρμογής με άλλη"</string>      <string name="system_multitasking_move_to_next_display" msgid="6169737557526976997">"Μετακίνηση ενεργού παραθύρου μεταξύ οθονών"</string> -    <!-- no translation found for system_desktop_mode_snap_left_window (8636204689945162298) --> -    <skip /> -    <!-- no translation found for system_desktop_mode_snap_right_window (2162560187639411929) --> -    <skip /> -    <!-- no translation found for system_desktop_mode_toggle_maximize_window (4084100093691768239) --> -    <skip /> -    <!-- no translation found for system_desktop_mode_minimize_window (1248714536732927092) --> -    <skip /> +    <string name="system_desktop_mode_snap_left_window" msgid="8636204689945162298">"Μετακίνηση παραθύρου αριστερά"</string> +    <string name="system_desktop_mode_snap_right_window" msgid="2162560187639411929">"Μετακίνηση παραθύρου δεξιά"</string> +    <string name="system_desktop_mode_toggle_maximize_window" msgid="4084100093691768239">"Μεγιστοποίηση παραθύρου"</string> +    <string name="system_desktop_mode_minimize_window" msgid="1248714536732927092">"Ελαχιστοποίηση παραθύρου"</string>      <string name="keyboard_shortcut_group_input" msgid="6888282716546625610">"Είσοδος"</string>      <string name="input_switch_input_language_next" msgid="3782155659868227855">"Εναλλαγή στην επόμενη γλώσσα"</string>      <string name="input_switch_input_language_previous" msgid="6043341362202336623">"Εναλλαγή στην προηγούμενη γλώσσα"</string> @@ -1419,7 +1418,6 @@      <string name="shortcut_helper_category_system_controls" msgid="3153344561395751020">"Στοιχεία ελέγχου συστήματος"</string>      <string name="shortcut_helper_category_system_apps" msgid="6001757545472556810">"Εφαρμογές συστήματος"</string>      <string name="shortcut_helper_category_multitasking" msgid="7413381961404090136">"Πολυδιεργασία"</string> -    <string name="shortcutHelper_category_recent_apps" msgid="7918731953612377145">"Πρόσφατες εφαρμογές"</string>      <string name="shortcutHelper_category_split_screen" msgid="1159669813444812244">"Διαχωρισμός οθόνης"</string>      <string name="shortcut_helper_category_input" msgid="8674018654124839566">"Εισαγωγή"</string>      <string name="shortcut_helper_category_app_shortcuts" msgid="8010249408308587117">"Συντομεύσεις εφαρμογών"</string> @@ -1428,25 +1426,31 @@      <string name="shortcut_helper_title" msgid="8567500639300970049">"Συντομεύσεις πληκτρολογίου"</string>      <string name="shortcut_helper_customize_mode_title" msgid="1467657117101096033">"Προσαρμογή συντομεύσεων πληκτρολογίου"</string>      <string name="shortcut_customize_mode_remove_shortcut_dialog_title" msgid="7106420484940737208">"Κατάργηση συντόμευσης;"</string> +    <!-- no translation found for shortcut_customize_mode_reset_shortcut_dialog_title (8131184731313717780) --> +    <skip />      <string name="shortcut_customize_mode_add_shortcut_description" msgid="6866025005347407696">"Πατήστε το πλήκτρο για ανάθεση της συντόμευσης"</string>      <string name="shortcut_customize_mode_remove_shortcut_description" msgid="6851287900585057128">"Με αυτή την ενέργεια, η προσαρμοσμένη συντόμευση θα διαγραφεί οριστικά."</string> +    <!-- no translation found for shortcut_customize_mode_reset_shortcut_description (2081849715634358684) --> +    <skip />      <string name="shortcut_helper_search_placeholder" msgid="5488547526269871819">"Συντομεύσεις αναζήτησης"</string>      <string name="shortcut_helper_no_search_results" msgid="8554756497996692160">"Κανένα αποτέλεσμα αναζήτησης"</string>      <string name="shortcut_helper_content_description_collapse_icon" msgid="8028015738431664954">"Εικονίδιο σύμπτυξης"</string>      <string name="shortcut_helper_content_description_meta_key" msgid="3989315044342124818">"Εικονίδιο πλήκτρου ενέργειας ή Meta"</string>      <string name="shortcut_helper_content_description_plus_icon" msgid="6152683734278299020">"Εικονίδιο συν"</string>      <string name="shortcut_helper_customize_button_text" msgid="3124983502748069338">"Προσαρμογή"</string> +    <!-- no translation found for shortcut_helper_reset_button_text (2548243844050633472) --> +    <skip />      <string name="shortcut_helper_done_button_text" msgid="7249905942125386191">"Τέλος"</string>      <string name="shortcut_helper_content_description_expand_icon" msgid="1084435697860417390">"Εικονίδιο ανάπτυξης"</string>      <string name="shortcut_helper_key_combinations_or_separator" msgid="7082902112102125540">"ή"</string> -    <!-- no translation found for shortcut_helper_key_combinations_and_conjunction (6138186504075880224) --> -    <skip /> -    <!-- no translation found for shortcut_helper_key_combinations_forward_slash (1238652537199346970) --> -    <skip /> +    <string name="shortcut_helper_key_combinations_and_conjunction" msgid="6138186504075880224">"συν"</string> +    <string name="shortcut_helper_key_combinations_forward_slash" msgid="1238652537199346970">"κάθετος"</string>      <string name="shortcut_helper_content_description_drag_handle" msgid="5092426406009848110">"Λαβή μεταφοράς"</string>      <string name="shortcut_helper_keyboard_settings_buttons_label" msgid="6720967595915985259">"Ρυθμίσεις πληκτρολογίου"</string>      <string name="shortcut_helper_customize_dialog_set_shortcut_button_label" msgid="4754492225010429382">"Ορισμός συντόμευσης"</string>      <string name="shortcut_helper_customize_dialog_remove_button_label" msgid="6546386970440176552">"Κατάργηση"</string> +    <!-- no translation found for shortcut_helper_customize_dialog_reset_button_label (7645535254306312685) --> +    <skip />      <string name="shortcut_helper_customize_dialog_cancel_button_label" msgid="5595546460431741178">"Ακύρωση"</string>      <string name="shortcut_helper_add_shortcut_dialog_placeholder" msgid="9154297849458741995">"Πατήστε ένα πλήκτρο"</string>      <string name="shortcut_customizer_key_combination_in_use_error_message" msgid="7693234470526626327">"Ο συνδυασμός πλήκτρων χρησιμοποιείται ήδη. Δοκιμάστε άλλο πλήκτρο."</string> diff --git a/packages/SystemUI/res/values-en-rAU/strings.xml b/packages/SystemUI/res/values-en-rAU/strings.xml index 938caa14f945..d32c95acc5e6 100644 --- a/packages/SystemUI/res/values-en-rAU/strings.xml +++ b/packages/SystemUI/res/values-en-rAU/strings.xml @@ -529,7 +529,10 @@      <string name="communal_widgets_disclaimer_text" msgid="1423545475160506349">"To open an app using a widget, you\'ll need to verify that it\'s you. Also, bear in mind that anyone can view them, even when your tablet\'s locked. Some widgets may not have been intended for your lock screen and may be unsafe to add here."</string>      <string name="communal_widgets_disclaimer_button" msgid="4423059765740780753">"Got it"</string>      <string name="glanceable_hub_lockscreen_affordance_label" msgid="1461611028615752141">"Widgets"</string> -    <string name="glanceable_hub_lockscreen_affordance_disabled_text" msgid="511359420883794513">"To add widgets on the lock screen as a shortcut, make sure that it is enabled in settings."</string> +    <!-- no translation found for glanceable_hub_lockscreen_affordance_disabled_text (599170482297578735) --> +    <skip /> +    <!-- no translation found for glanceable_hub_lockscreen_affordance_action_button_label (7636151133344609375) --> +    <skip />      <string name="accessibility_multi_user_switch_switcher" msgid="5330448341251092660">"Switch user"</string>      <string name="accessibility_multi_user_list_switcher" msgid="8574105376229857407">"pulldown menu"</string>      <string name="guest_exit_guest_dialog_message" msgid="8183450985628495709">"All apps and data in this session will be deleted."</string> @@ -875,14 +878,10 @@      <string name="system_multitasking_splitscreen_focus_lhs" msgid="3164261844398662518">"Switch to the app on the left or above while using split screen"</string>      <string name="system_multitasking_replace" msgid="7410071959803642125">"During split screen: Replace an app from one to another"</string>      <string name="system_multitasking_move_to_next_display" msgid="6169737557526976997">"Move active window between displays"</string> -    <!-- no translation found for system_desktop_mode_snap_left_window (8636204689945162298) --> -    <skip /> -    <!-- no translation found for system_desktop_mode_snap_right_window (2162560187639411929) --> -    <skip /> -    <!-- no translation found for system_desktop_mode_toggle_maximize_window (4084100093691768239) --> -    <skip /> -    <!-- no translation found for system_desktop_mode_minimize_window (1248714536732927092) --> -    <skip /> +    <string name="system_desktop_mode_snap_left_window" msgid="8636204689945162298">"Move window to the left"</string> +    <string name="system_desktop_mode_snap_right_window" msgid="2162560187639411929">"Move window to the right"</string> +    <string name="system_desktop_mode_toggle_maximize_window" msgid="4084100093691768239">"Maximise window"</string> +    <string name="system_desktop_mode_minimize_window" msgid="1248714536732927092">"Minimise window"</string>      <string name="keyboard_shortcut_group_input" msgid="6888282716546625610">"Input"</string>      <string name="input_switch_input_language_next" msgid="3782155659868227855">"Switch to next language"</string>      <string name="input_switch_input_language_previous" msgid="6043341362202336623">"Switch to previous language"</string> @@ -1419,7 +1418,6 @@      <string name="shortcut_helper_category_system_controls" msgid="3153344561395751020">"System controls"</string>      <string name="shortcut_helper_category_system_apps" msgid="6001757545472556810">"System apps"</string>      <string name="shortcut_helper_category_multitasking" msgid="7413381961404090136">"Multitasking"</string> -    <string name="shortcutHelper_category_recent_apps" msgid="7918731953612377145">"Recent apps"</string>      <string name="shortcutHelper_category_split_screen" msgid="1159669813444812244">"Split screen"</string>      <string name="shortcut_helper_category_input" msgid="8674018654124839566">"Input"</string>      <string name="shortcut_helper_category_app_shortcuts" msgid="8010249408308587117">"App shortcuts"</string> @@ -1428,25 +1426,31 @@      <string name="shortcut_helper_title" msgid="8567500639300970049">"Keyboard shortcuts"</string>      <string name="shortcut_helper_customize_mode_title" msgid="1467657117101096033">"Customise keyboard shortcuts"</string>      <string name="shortcut_customize_mode_remove_shortcut_dialog_title" msgid="7106420484940737208">"Remove shortcut?"</string> +    <!-- no translation found for shortcut_customize_mode_reset_shortcut_dialog_title (8131184731313717780) --> +    <skip />      <string name="shortcut_customize_mode_add_shortcut_description" msgid="6866025005347407696">"Press key to assign shortcut"</string>      <string name="shortcut_customize_mode_remove_shortcut_description" msgid="6851287900585057128">"This will delete your custom shortcut permanently."</string> +    <!-- no translation found for shortcut_customize_mode_reset_shortcut_description (2081849715634358684) --> +    <skip />      <string name="shortcut_helper_search_placeholder" msgid="5488547526269871819">"Search shortcuts"</string>      <string name="shortcut_helper_no_search_results" msgid="8554756497996692160">"No search results"</string>      <string name="shortcut_helper_content_description_collapse_icon" msgid="8028015738431664954">"Collapse icon"</string>      <string name="shortcut_helper_content_description_meta_key" msgid="3989315044342124818">"Action or Meta key icon"</string>      <string name="shortcut_helper_content_description_plus_icon" msgid="6152683734278299020">"Plus icon"</string>      <string name="shortcut_helper_customize_button_text" msgid="3124983502748069338">"Customise"</string> +    <!-- no translation found for shortcut_helper_reset_button_text (2548243844050633472) --> +    <skip />      <string name="shortcut_helper_done_button_text" msgid="7249905942125386191">"Done"</string>      <string name="shortcut_helper_content_description_expand_icon" msgid="1084435697860417390">"Expand icon"</string>      <string name="shortcut_helper_key_combinations_or_separator" msgid="7082902112102125540">"or"</string> -    <!-- no translation found for shortcut_helper_key_combinations_and_conjunction (6138186504075880224) --> -    <skip /> -    <!-- no translation found for shortcut_helper_key_combinations_forward_slash (1238652537199346970) --> -    <skip /> +    <string name="shortcut_helper_key_combinations_and_conjunction" msgid="6138186504075880224">"plus"</string> +    <string name="shortcut_helper_key_combinations_forward_slash" msgid="1238652537199346970">"forward slash"</string>      <string name="shortcut_helper_content_description_drag_handle" msgid="5092426406009848110">"Drag handle"</string>      <string name="shortcut_helper_keyboard_settings_buttons_label" msgid="6720967595915985259">"Keyboard settings"</string>      <string name="shortcut_helper_customize_dialog_set_shortcut_button_label" msgid="4754492225010429382">"Set shortcut"</string>      <string name="shortcut_helper_customize_dialog_remove_button_label" msgid="6546386970440176552">"Remove"</string> +    <!-- no translation found for shortcut_helper_customize_dialog_reset_button_label (7645535254306312685) --> +    <skip />      <string name="shortcut_helper_customize_dialog_cancel_button_label" msgid="5595546460431741178">"Cancel"</string>      <string name="shortcut_helper_add_shortcut_dialog_placeholder" msgid="9154297849458741995">"Press key"</string>      <string name="shortcut_customizer_key_combination_in_use_error_message" msgid="7693234470526626327">"Key combination already in use. Try another key."</string> diff --git a/packages/SystemUI/res/values-en-rCA/strings.xml b/packages/SystemUI/res/values-en-rCA/strings.xml index dada5e992f14..8a7420d9dd96 100644 --- a/packages/SystemUI/res/values-en-rCA/strings.xml +++ b/packages/SystemUI/res/values-en-rCA/strings.xml @@ -529,7 +529,8 @@      <string name="communal_widgets_disclaimer_text" msgid="1423545475160506349">"To open an app using a widget, you’ll need to verify it’s you. Also, keep in mind that anyone can view them, even when your tablet’s locked. Some widgets may not have been intended for your lock screen and may be unsafe to add here."</string>      <string name="communal_widgets_disclaimer_button" msgid="4423059765740780753">"Got it"</string>      <string name="glanceable_hub_lockscreen_affordance_label" msgid="1461611028615752141">"Widgets"</string> -    <string name="glanceable_hub_lockscreen_affordance_disabled_text" msgid="511359420883794513">"To add Widgets on the lock screen as a shortcut, make sure it is enabled in settings."</string> +    <string name="glanceable_hub_lockscreen_affordance_disabled_text" msgid="599170482297578735">"To add the \"Widgets\" shortcut, make sure \"Show widgets on lock screen\" is enabled in settings."</string> +    <string name="glanceable_hub_lockscreen_affordance_action_button_label" msgid="7636151133344609375">"Settings"</string>      <string name="accessibility_multi_user_switch_switcher" msgid="5330448341251092660">"Switch user"</string>      <string name="accessibility_multi_user_list_switcher" msgid="8574105376229857407">"pulldown menu"</string>      <string name="guest_exit_guest_dialog_message" msgid="8183450985628495709">"All apps and data in this session will be deleted."</string> @@ -1415,7 +1416,6 @@      <string name="shortcut_helper_category_system_controls" msgid="3153344561395751020">"System controls"</string>      <string name="shortcut_helper_category_system_apps" msgid="6001757545472556810">"System apps"</string>      <string name="shortcut_helper_category_multitasking" msgid="7413381961404090136">"Multitasking"</string> -    <string name="shortcutHelper_category_recent_apps" msgid="7918731953612377145">"Recent apps"</string>      <string name="shortcutHelper_category_split_screen" msgid="1159669813444812244">"Split screen"</string>      <string name="shortcut_helper_category_input" msgid="8674018654124839566">"Input"</string>      <string name="shortcut_helper_category_app_shortcuts" msgid="8010249408308587117">"App shortcuts"</string> @@ -1424,14 +1424,18 @@      <string name="shortcut_helper_title" msgid="8567500639300970049">"Keyboard shortcuts"</string>      <string name="shortcut_helper_customize_mode_title" msgid="1467657117101096033">"Customize keyboard shortcuts"</string>      <string name="shortcut_customize_mode_remove_shortcut_dialog_title" msgid="7106420484940737208">"Remove shortcut?"</string> +    <string name="shortcut_customize_mode_reset_shortcut_dialog_title" msgid="8131184731313717780">"Reset back to default?"</string>      <string name="shortcut_customize_mode_add_shortcut_description" msgid="6866025005347407696">"Press key to assign shortcut"</string>      <string name="shortcut_customize_mode_remove_shortcut_description" msgid="6851287900585057128">"This will delete your custom shortcut permanently."</string> +    <string name="shortcut_customize_mode_reset_shortcut_description" msgid="2081849715634358684">"This will delete all your custom shortcuts permanently."</string>      <string name="shortcut_helper_search_placeholder" msgid="5488547526269871819">"Search shortcuts"</string>      <string name="shortcut_helper_no_search_results" msgid="8554756497996692160">"No search results"</string>      <string name="shortcut_helper_content_description_collapse_icon" msgid="8028015738431664954">"Collapse icon"</string>      <string name="shortcut_helper_content_description_meta_key" msgid="3989315044342124818">"Action or Meta key icon"</string>      <string name="shortcut_helper_content_description_plus_icon" msgid="6152683734278299020">"Plus icon"</string>      <string name="shortcut_helper_customize_button_text" msgid="3124983502748069338">"Customize"</string> +    <!-- no translation found for shortcut_helper_reset_button_text (2548243844050633472) --> +    <skip />      <string name="shortcut_helper_done_button_text" msgid="7249905942125386191">"Done"</string>      <string name="shortcut_helper_content_description_expand_icon" msgid="1084435697860417390">"Expand icon"</string>      <string name="shortcut_helper_key_combinations_or_separator" msgid="7082902112102125540">"or"</string> @@ -1441,6 +1445,7 @@      <string name="shortcut_helper_keyboard_settings_buttons_label" msgid="6720967595915985259">"Keyboard Settings"</string>      <string name="shortcut_helper_customize_dialog_set_shortcut_button_label" msgid="4754492225010429382">"Set shortcut"</string>      <string name="shortcut_helper_customize_dialog_remove_button_label" msgid="6546386970440176552">"Remove"</string> +    <string name="shortcut_helper_customize_dialog_reset_button_label" msgid="7645535254306312685">"Yes, reset"</string>      <string name="shortcut_helper_customize_dialog_cancel_button_label" msgid="5595546460431741178">"Cancel"</string>      <string name="shortcut_helper_add_shortcut_dialog_placeholder" msgid="9154297849458741995">"Press key"</string>      <string name="shortcut_customizer_key_combination_in_use_error_message" msgid="7693234470526626327">"Key combination already in use. Try another key."</string> diff --git a/packages/SystemUI/res/values-en-rGB/strings.xml b/packages/SystemUI/res/values-en-rGB/strings.xml index 938caa14f945..d32c95acc5e6 100644 --- a/packages/SystemUI/res/values-en-rGB/strings.xml +++ b/packages/SystemUI/res/values-en-rGB/strings.xml @@ -529,7 +529,10 @@      <string name="communal_widgets_disclaimer_text" msgid="1423545475160506349">"To open an app using a widget, you\'ll need to verify that it\'s you. Also, bear in mind that anyone can view them, even when your tablet\'s locked. Some widgets may not have been intended for your lock screen and may be unsafe to add here."</string>      <string name="communal_widgets_disclaimer_button" msgid="4423059765740780753">"Got it"</string>      <string name="glanceable_hub_lockscreen_affordance_label" msgid="1461611028615752141">"Widgets"</string> -    <string name="glanceable_hub_lockscreen_affordance_disabled_text" msgid="511359420883794513">"To add widgets on the lock screen as a shortcut, make sure that it is enabled in settings."</string> +    <!-- no translation found for glanceable_hub_lockscreen_affordance_disabled_text (599170482297578735) --> +    <skip /> +    <!-- no translation found for glanceable_hub_lockscreen_affordance_action_button_label (7636151133344609375) --> +    <skip />      <string name="accessibility_multi_user_switch_switcher" msgid="5330448341251092660">"Switch user"</string>      <string name="accessibility_multi_user_list_switcher" msgid="8574105376229857407">"pulldown menu"</string>      <string name="guest_exit_guest_dialog_message" msgid="8183450985628495709">"All apps and data in this session will be deleted."</string> @@ -875,14 +878,10 @@      <string name="system_multitasking_splitscreen_focus_lhs" msgid="3164261844398662518">"Switch to the app on the left or above while using split screen"</string>      <string name="system_multitasking_replace" msgid="7410071959803642125">"During split screen: Replace an app from one to another"</string>      <string name="system_multitasking_move_to_next_display" msgid="6169737557526976997">"Move active window between displays"</string> -    <!-- no translation found for system_desktop_mode_snap_left_window (8636204689945162298) --> -    <skip /> -    <!-- no translation found for system_desktop_mode_snap_right_window (2162560187639411929) --> -    <skip /> -    <!-- no translation found for system_desktop_mode_toggle_maximize_window (4084100093691768239) --> -    <skip /> -    <!-- no translation found for system_desktop_mode_minimize_window (1248714536732927092) --> -    <skip /> +    <string name="system_desktop_mode_snap_left_window" msgid="8636204689945162298">"Move window to the left"</string> +    <string name="system_desktop_mode_snap_right_window" msgid="2162560187639411929">"Move window to the right"</string> +    <string name="system_desktop_mode_toggle_maximize_window" msgid="4084100093691768239">"Maximise window"</string> +    <string name="system_desktop_mode_minimize_window" msgid="1248714536732927092">"Minimise window"</string>      <string name="keyboard_shortcut_group_input" msgid="6888282716546625610">"Input"</string>      <string name="input_switch_input_language_next" msgid="3782155659868227855">"Switch to next language"</string>      <string name="input_switch_input_language_previous" msgid="6043341362202336623">"Switch to previous language"</string> @@ -1419,7 +1418,6 @@      <string name="shortcut_helper_category_system_controls" msgid="3153344561395751020">"System controls"</string>      <string name="shortcut_helper_category_system_apps" msgid="6001757545472556810">"System apps"</string>      <string name="shortcut_helper_category_multitasking" msgid="7413381961404090136">"Multitasking"</string> -    <string name="shortcutHelper_category_recent_apps" msgid="7918731953612377145">"Recent apps"</string>      <string name="shortcutHelper_category_split_screen" msgid="1159669813444812244">"Split screen"</string>      <string name="shortcut_helper_category_input" msgid="8674018654124839566">"Input"</string>      <string name="shortcut_helper_category_app_shortcuts" msgid="8010249408308587117">"App shortcuts"</string> @@ -1428,25 +1426,31 @@      <string name="shortcut_helper_title" msgid="8567500639300970049">"Keyboard shortcuts"</string>      <string name="shortcut_helper_customize_mode_title" msgid="1467657117101096033">"Customise keyboard shortcuts"</string>      <string name="shortcut_customize_mode_remove_shortcut_dialog_title" msgid="7106420484940737208">"Remove shortcut?"</string> +    <!-- no translation found for shortcut_customize_mode_reset_shortcut_dialog_title (8131184731313717780) --> +    <skip />      <string name="shortcut_customize_mode_add_shortcut_description" msgid="6866025005347407696">"Press key to assign shortcut"</string>      <string name="shortcut_customize_mode_remove_shortcut_description" msgid="6851287900585057128">"This will delete your custom shortcut permanently."</string> +    <!-- no translation found for shortcut_customize_mode_reset_shortcut_description (2081849715634358684) --> +    <skip />      <string name="shortcut_helper_search_placeholder" msgid="5488547526269871819">"Search shortcuts"</string>      <string name="shortcut_helper_no_search_results" msgid="8554756497996692160">"No search results"</string>      <string name="shortcut_helper_content_description_collapse_icon" msgid="8028015738431664954">"Collapse icon"</string>      <string name="shortcut_helper_content_description_meta_key" msgid="3989315044342124818">"Action or Meta key icon"</string>      <string name="shortcut_helper_content_description_plus_icon" msgid="6152683734278299020">"Plus icon"</string>      <string name="shortcut_helper_customize_button_text" msgid="3124983502748069338">"Customise"</string> +    <!-- no translation found for shortcut_helper_reset_button_text (2548243844050633472) --> +    <skip />      <string name="shortcut_helper_done_button_text" msgid="7249905942125386191">"Done"</string>      <string name="shortcut_helper_content_description_expand_icon" msgid="1084435697860417390">"Expand icon"</string>      <string name="shortcut_helper_key_combinations_or_separator" msgid="7082902112102125540">"or"</string> -    <!-- no translation found for shortcut_helper_key_combinations_and_conjunction (6138186504075880224) --> -    <skip /> -    <!-- no translation found for shortcut_helper_key_combinations_forward_slash (1238652537199346970) --> -    <skip /> +    <string name="shortcut_helper_key_combinations_and_conjunction" msgid="6138186504075880224">"plus"</string> +    <string name="shortcut_helper_key_combinations_forward_slash" msgid="1238652537199346970">"forward slash"</string>      <string name="shortcut_helper_content_description_drag_handle" msgid="5092426406009848110">"Drag handle"</string>      <string name="shortcut_helper_keyboard_settings_buttons_label" msgid="6720967595915985259">"Keyboard settings"</string>      <string name="shortcut_helper_customize_dialog_set_shortcut_button_label" msgid="4754492225010429382">"Set shortcut"</string>      <string name="shortcut_helper_customize_dialog_remove_button_label" msgid="6546386970440176552">"Remove"</string> +    <!-- no translation found for shortcut_helper_customize_dialog_reset_button_label (7645535254306312685) --> +    <skip />      <string name="shortcut_helper_customize_dialog_cancel_button_label" msgid="5595546460431741178">"Cancel"</string>      <string name="shortcut_helper_add_shortcut_dialog_placeholder" msgid="9154297849458741995">"Press key"</string>      <string name="shortcut_customizer_key_combination_in_use_error_message" msgid="7693234470526626327">"Key combination already in use. Try another key."</string> diff --git a/packages/SystemUI/res/values-en-rIN/strings.xml b/packages/SystemUI/res/values-en-rIN/strings.xml index 938caa14f945..d32c95acc5e6 100644 --- a/packages/SystemUI/res/values-en-rIN/strings.xml +++ b/packages/SystemUI/res/values-en-rIN/strings.xml @@ -529,7 +529,10 @@      <string name="communal_widgets_disclaimer_text" msgid="1423545475160506349">"To open an app using a widget, you\'ll need to verify that it\'s you. Also, bear in mind that anyone can view them, even when your tablet\'s locked. Some widgets may not have been intended for your lock screen and may be unsafe to add here."</string>      <string name="communal_widgets_disclaimer_button" msgid="4423059765740780753">"Got it"</string>      <string name="glanceable_hub_lockscreen_affordance_label" msgid="1461611028615752141">"Widgets"</string> -    <string name="glanceable_hub_lockscreen_affordance_disabled_text" msgid="511359420883794513">"To add widgets on the lock screen as a shortcut, make sure that it is enabled in settings."</string> +    <!-- no translation found for glanceable_hub_lockscreen_affordance_disabled_text (599170482297578735) --> +    <skip /> +    <!-- no translation found for glanceable_hub_lockscreen_affordance_action_button_label (7636151133344609375) --> +    <skip />      <string name="accessibility_multi_user_switch_switcher" msgid="5330448341251092660">"Switch user"</string>      <string name="accessibility_multi_user_list_switcher" msgid="8574105376229857407">"pulldown menu"</string>      <string name="guest_exit_guest_dialog_message" msgid="8183450985628495709">"All apps and data in this session will be deleted."</string> @@ -875,14 +878,10 @@      <string name="system_multitasking_splitscreen_focus_lhs" msgid="3164261844398662518">"Switch to the app on the left or above while using split screen"</string>      <string name="system_multitasking_replace" msgid="7410071959803642125">"During split screen: Replace an app from one to another"</string>      <string name="system_multitasking_move_to_next_display" msgid="6169737557526976997">"Move active window between displays"</string> -    <!-- no translation found for system_desktop_mode_snap_left_window (8636204689945162298) --> -    <skip /> -    <!-- no translation found for system_desktop_mode_snap_right_window (2162560187639411929) --> -    <skip /> -    <!-- no translation found for system_desktop_mode_toggle_maximize_window (4084100093691768239) --> -    <skip /> -    <!-- no translation found for system_desktop_mode_minimize_window (1248714536732927092) --> -    <skip /> +    <string name="system_desktop_mode_snap_left_window" msgid="8636204689945162298">"Move window to the left"</string> +    <string name="system_desktop_mode_snap_right_window" msgid="2162560187639411929">"Move window to the right"</string> +    <string name="system_desktop_mode_toggle_maximize_window" msgid="4084100093691768239">"Maximise window"</string> +    <string name="system_desktop_mode_minimize_window" msgid="1248714536732927092">"Minimise window"</string>      <string name="keyboard_shortcut_group_input" msgid="6888282716546625610">"Input"</string>      <string name="input_switch_input_language_next" msgid="3782155659868227855">"Switch to next language"</string>      <string name="input_switch_input_language_previous" msgid="6043341362202336623">"Switch to previous language"</string> @@ -1419,7 +1418,6 @@      <string name="shortcut_helper_category_system_controls" msgid="3153344561395751020">"System controls"</string>      <string name="shortcut_helper_category_system_apps" msgid="6001757545472556810">"System apps"</string>      <string name="shortcut_helper_category_multitasking" msgid="7413381961404090136">"Multitasking"</string> -    <string name="shortcutHelper_category_recent_apps" msgid="7918731953612377145">"Recent apps"</string>      <string name="shortcutHelper_category_split_screen" msgid="1159669813444812244">"Split screen"</string>      <string name="shortcut_helper_category_input" msgid="8674018654124839566">"Input"</string>      <string name="shortcut_helper_category_app_shortcuts" msgid="8010249408308587117">"App shortcuts"</string> @@ -1428,25 +1426,31 @@      <string name="shortcut_helper_title" msgid="8567500639300970049">"Keyboard shortcuts"</string>      <string name="shortcut_helper_customize_mode_title" msgid="1467657117101096033">"Customise keyboard shortcuts"</string>      <string name="shortcut_customize_mode_remove_shortcut_dialog_title" msgid="7106420484940737208">"Remove shortcut?"</string> +    <!-- no translation found for shortcut_customize_mode_reset_shortcut_dialog_title (8131184731313717780) --> +    <skip />      <string name="shortcut_customize_mode_add_shortcut_description" msgid="6866025005347407696">"Press key to assign shortcut"</string>      <string name="shortcut_customize_mode_remove_shortcut_description" msgid="6851287900585057128">"This will delete your custom shortcut permanently."</string> +    <!-- no translation found for shortcut_customize_mode_reset_shortcut_description (2081849715634358684) --> +    <skip />      <string name="shortcut_helper_search_placeholder" msgid="5488547526269871819">"Search shortcuts"</string>      <string name="shortcut_helper_no_search_results" msgid="8554756497996692160">"No search results"</string>      <string name="shortcut_helper_content_description_collapse_icon" msgid="8028015738431664954">"Collapse icon"</string>      <string name="shortcut_helper_content_description_meta_key" msgid="3989315044342124818">"Action or Meta key icon"</string>      <string name="shortcut_helper_content_description_plus_icon" msgid="6152683734278299020">"Plus icon"</string>      <string name="shortcut_helper_customize_button_text" msgid="3124983502748069338">"Customise"</string> +    <!-- no translation found for shortcut_helper_reset_button_text (2548243844050633472) --> +    <skip />      <string name="shortcut_helper_done_button_text" msgid="7249905942125386191">"Done"</string>      <string name="shortcut_helper_content_description_expand_icon" msgid="1084435697860417390">"Expand icon"</string>      <string name="shortcut_helper_key_combinations_or_separator" msgid="7082902112102125540">"or"</string> -    <!-- no translation found for shortcut_helper_key_combinations_and_conjunction (6138186504075880224) --> -    <skip /> -    <!-- no translation found for shortcut_helper_key_combinations_forward_slash (1238652537199346970) --> -    <skip /> +    <string name="shortcut_helper_key_combinations_and_conjunction" msgid="6138186504075880224">"plus"</string> +    <string name="shortcut_helper_key_combinations_forward_slash" msgid="1238652537199346970">"forward slash"</string>      <string name="shortcut_helper_content_description_drag_handle" msgid="5092426406009848110">"Drag handle"</string>      <string name="shortcut_helper_keyboard_settings_buttons_label" msgid="6720967595915985259">"Keyboard settings"</string>      <string name="shortcut_helper_customize_dialog_set_shortcut_button_label" msgid="4754492225010429382">"Set shortcut"</string>      <string name="shortcut_helper_customize_dialog_remove_button_label" msgid="6546386970440176552">"Remove"</string> +    <!-- no translation found for shortcut_helper_customize_dialog_reset_button_label (7645535254306312685) --> +    <skip />      <string name="shortcut_helper_customize_dialog_cancel_button_label" msgid="5595546460431741178">"Cancel"</string>      <string name="shortcut_helper_add_shortcut_dialog_placeholder" msgid="9154297849458741995">"Press key"</string>      <string name="shortcut_customizer_key_combination_in_use_error_message" msgid="7693234470526626327">"Key combination already in use. Try another key."</string> diff --git a/packages/SystemUI/res/values-es-rUS/strings.xml b/packages/SystemUI/res/values-es-rUS/strings.xml index 5389aba2c2ac..711f771842e2 100644 --- a/packages/SystemUI/res/values-es-rUS/strings.xml +++ b/packages/SystemUI/res/values-es-rUS/strings.xml @@ -450,7 +450,7 @@      <string name="zen_modes_dialog_done" msgid="6654130880256438950">"Listo"</string>      <string name="zen_modes_dialog_settings" msgid="2310248023728936697">"Configuración"</string>      <string name="zen_mode_on" msgid="9085304934016242591">"Activado"</string> -    <string name="zen_mode_on_with_details" msgid="7416143430557895497">"Sí • <xliff:g id="TRIGGER_DESCRIPTION">%1$s</xliff:g>"</string> +    <string name="zen_mode_on_with_details" msgid="7416143430557895497">"Activado • <xliff:g id="TRIGGER_DESCRIPTION">%1$s</xliff:g>"</string>      <string name="zen_mode_off" msgid="1736604456618147306">"Desactivado"</string>      <string name="zen_mode_set_up" msgid="8231201163894922821">"Sin establecer"</string>      <string name="zen_mode_no_manual_invocation" msgid="1769975741344633672">"Administrar en configuración"</string> @@ -529,7 +529,10 @@      <string name="communal_widgets_disclaimer_text" msgid="1423545475160506349">"Para abrir una app usando un widget, debes verificar tu identidad. Además, ten en cuenta que cualquier persona podrá verlo, incluso cuando la tablet esté bloqueada. Es posible que algunos widgets no se hayan diseñados para la pantalla de bloqueo y podría ser peligroso agregarlos allí."</string>      <string name="communal_widgets_disclaimer_button" msgid="4423059765740780753">"Entendido"</string>      <string name="glanceable_hub_lockscreen_affordance_label" msgid="1461611028615752141">"Widgets"</string> -    <string name="glanceable_hub_lockscreen_affordance_disabled_text" msgid="511359420883794513">"Para agregar Widgets en la pantalla de bloqueo como combinación de teclas, asegúrate de que la función esté habilitada en la configuración."</string> +    <!-- no translation found for glanceable_hub_lockscreen_affordance_disabled_text (599170482297578735) --> +    <skip /> +    <!-- no translation found for glanceable_hub_lockscreen_affordance_action_button_label (7636151133344609375) --> +    <skip />      <string name="accessibility_multi_user_switch_switcher" msgid="5330448341251092660">"Cambiar usuario"</string>      <string name="accessibility_multi_user_list_switcher" msgid="8574105376229857407">"menú expandible"</string>      <string name="guest_exit_guest_dialog_message" msgid="8183450985628495709">"Se eliminarán las aplicaciones y los datos de esta sesión."</string> @@ -875,14 +878,10 @@      <string name="system_multitasking_splitscreen_focus_lhs" msgid="3164261844398662518">"Ubicar la app a la izquierda o arriba cuando usas la pantalla dividida"</string>      <string name="system_multitasking_replace" msgid="7410071959803642125">"Durante pantalla dividida: Reemplaza una app con otra"</string>      <string name="system_multitasking_move_to_next_display" msgid="6169737557526976997">"Mover la ventana activa de una pantalla a otra"</string> -    <!-- no translation found for system_desktop_mode_snap_left_window (8636204689945162298) --> -    <skip /> -    <!-- no translation found for system_desktop_mode_snap_right_window (2162560187639411929) --> -    <skip /> -    <!-- no translation found for system_desktop_mode_toggle_maximize_window (4084100093691768239) --> -    <skip /> -    <!-- no translation found for system_desktop_mode_minimize_window (1248714536732927092) --> -    <skip /> +    <string name="system_desktop_mode_snap_left_window" msgid="8636204689945162298">"Mover la ventana hacia la izquierda"</string> +    <string name="system_desktop_mode_snap_right_window" msgid="2162560187639411929">"Mover la ventana hacia la derecha"</string> +    <string name="system_desktop_mode_toggle_maximize_window" msgid="4084100093691768239">"Maximizar ventana"</string> +    <string name="system_desktop_mode_minimize_window" msgid="1248714536732927092">"Minimizar ventana"</string>      <string name="keyboard_shortcut_group_input" msgid="6888282716546625610">"Entrada"</string>      <string name="input_switch_input_language_next" msgid="3782155659868227855">"Cambiar al próximo idioma"</string>      <string name="input_switch_input_language_previous" msgid="6043341362202336623">"Cambiar al idioma anterior"</string> @@ -1419,7 +1418,6 @@      <string name="shortcut_helper_category_system_controls" msgid="3153344561395751020">"Controles del sistema"</string>      <string name="shortcut_helper_category_system_apps" msgid="6001757545472556810">"Apps del sistema"</string>      <string name="shortcut_helper_category_multitasking" msgid="7413381961404090136">"Tareas múltiples"</string> -    <string name="shortcutHelper_category_recent_apps" msgid="7918731953612377145">"Apps recientes"</string>      <string name="shortcutHelper_category_split_screen" msgid="1159669813444812244">"Pantalla dividida"</string>      <string name="shortcut_helper_category_input" msgid="8674018654124839566">"Entrada"</string>      <string name="shortcut_helper_category_app_shortcuts" msgid="8010249408308587117">"Accesos directos a aplicaciones"</string> @@ -1428,25 +1426,31 @@      <string name="shortcut_helper_title" msgid="8567500639300970049">"Combinaciones de teclas"</string>      <string name="shortcut_helper_customize_mode_title" msgid="1467657117101096033">"Personaliza las combinaciones de teclas"</string>      <string name="shortcut_customize_mode_remove_shortcut_dialog_title" msgid="7106420484940737208">"¿Quieres quitar el acceso directo?"</string> +    <!-- no translation found for shortcut_customize_mode_reset_shortcut_dialog_title (8131184731313717780) --> +    <skip />      <string name="shortcut_customize_mode_add_shortcut_description" msgid="6866025005347407696">"Presiona la tecla para asignar el acceso directo"</string>      <string name="shortcut_customize_mode_remove_shortcut_description" msgid="6851287900585057128">"Esta acción borrará tu acceso directo personalizado de forma permanente."</string> +    <!-- no translation found for shortcut_customize_mode_reset_shortcut_description (2081849715634358684) --> +    <skip />      <string name="shortcut_helper_search_placeholder" msgid="5488547526269871819">"Buscar combinaciones de teclas"</string>      <string name="shortcut_helper_no_search_results" msgid="8554756497996692160">"La búsqueda no arrojó resultados"</string>      <string name="shortcut_helper_content_description_collapse_icon" msgid="8028015738431664954">"Ícono de contraer"</string>      <string name="shortcut_helper_content_description_meta_key" msgid="3989315044342124818">"Ícono tecla meta o de acción"</string>      <string name="shortcut_helper_content_description_plus_icon" msgid="6152683734278299020">"ícono de signo más"</string>      <string name="shortcut_helper_customize_button_text" msgid="3124983502748069338">"Personalizar"</string> +    <!-- no translation found for shortcut_helper_reset_button_text (2548243844050633472) --> +    <skip />      <string name="shortcut_helper_done_button_text" msgid="7249905942125386191">"Listo"</string>      <string name="shortcut_helper_content_description_expand_icon" msgid="1084435697860417390">"Ícono de expandir"</string>      <string name="shortcut_helper_key_combinations_or_separator" msgid="7082902112102125540">"o"</string> -    <!-- no translation found for shortcut_helper_key_combinations_and_conjunction (6138186504075880224) --> -    <skip /> -    <!-- no translation found for shortcut_helper_key_combinations_forward_slash (1238652537199346970) --> -    <skip /> +    <string name="shortcut_helper_key_combinations_and_conjunction" msgid="6138186504075880224">"más"</string> +    <string name="shortcut_helper_key_combinations_forward_slash" msgid="1238652537199346970">"barra diagonal"</string>      <string name="shortcut_helper_content_description_drag_handle" msgid="5092426406009848110">"Controlador de arrastre"</string>      <string name="shortcut_helper_keyboard_settings_buttons_label" msgid="6720967595915985259">"Configuración del teclado"</string>      <string name="shortcut_helper_customize_dialog_set_shortcut_button_label" msgid="4754492225010429382">"Establecer combinación de teclas"</string>      <string name="shortcut_helper_customize_dialog_remove_button_label" msgid="6546386970440176552">"Quitar"</string> +    <!-- no translation found for shortcut_helper_customize_dialog_reset_button_label (7645535254306312685) --> +    <skip />      <string name="shortcut_helper_customize_dialog_cancel_button_label" msgid="5595546460431741178">"Cancelar"</string>      <string name="shortcut_helper_add_shortcut_dialog_placeholder" msgid="9154297849458741995">"Presiona una tecla"</string>      <string name="shortcut_customizer_key_combination_in_use_error_message" msgid="7693234470526626327">"La combinación de teclas ya está en uso. Prueba con otra."</string> diff --git a/packages/SystemUI/res/values-es/strings.xml b/packages/SystemUI/res/values-es/strings.xml index 2ff38b02e531..4a94cdfd0852 100644 --- a/packages/SystemUI/res/values-es/strings.xml +++ b/packages/SystemUI/res/values-es/strings.xml @@ -529,7 +529,10 @@      <string name="communal_widgets_disclaimer_text" msgid="1423545475160506349">"Para abrir una aplicación usando un widget, deberás verificar que eres tú. Además, ten en cuenta que cualquier persona podrá verlos, incluso aunque tu tablet esté bloqueada. Es posible que algunos widgets no estén pensados para la pantalla de bloqueo y no sea seguro añadirlos aquí."</string>      <string name="communal_widgets_disclaimer_button" msgid="4423059765740780753">"Entendido"</string>      <string name="glanceable_hub_lockscreen_affordance_label" msgid="1461611028615752141">"Widgets"</string> -    <string name="glanceable_hub_lockscreen_affordance_disabled_text" msgid="511359420883794513">"Para añadir la función de widgets en la pantalla de bloqueo como combinación de teclas, asegúrate de que la opción esté habilitada en los ajustes."</string> +    <!-- no translation found for glanceable_hub_lockscreen_affordance_disabled_text (599170482297578735) --> +    <skip /> +    <!-- no translation found for glanceable_hub_lockscreen_affordance_action_button_label (7636151133344609375) --> +    <skip />      <string name="accessibility_multi_user_switch_switcher" msgid="5330448341251092660">"Cambiar de usuario"</string>      <string name="accessibility_multi_user_list_switcher" msgid="8574105376229857407">"menú desplegable"</string>      <string name="guest_exit_guest_dialog_message" msgid="8183450985628495709">"Se eliminarán todas las aplicaciones y datos de esta sesión."</string> @@ -875,14 +878,10 @@      <string name="system_multitasking_splitscreen_focus_lhs" msgid="3164261844398662518">"Cambiar a la app de la izquierda o de arriba en pantalla dividida"</string>      <string name="system_multitasking_replace" msgid="7410071959803642125">"Con pantalla dividida: reemplazar una aplicación por otra"</string>      <string name="system_multitasking_move_to_next_display" msgid="6169737557526976997">"Mover ventana activa de una pantalla a otra"</string> -    <!-- no translation found for system_desktop_mode_snap_left_window (8636204689945162298) --> -    <skip /> -    <!-- no translation found for system_desktop_mode_snap_right_window (2162560187639411929) --> -    <skip /> -    <!-- no translation found for system_desktop_mode_toggle_maximize_window (4084100093691768239) --> -    <skip /> -    <!-- no translation found for system_desktop_mode_minimize_window (1248714536732927092) --> -    <skip /> +    <string name="system_desktop_mode_snap_left_window" msgid="8636204689945162298">"Mover ventana a la izquierda"</string> +    <string name="system_desktop_mode_snap_right_window" msgid="2162560187639411929">"Mover ventana a la derecha"</string> +    <string name="system_desktop_mode_toggle_maximize_window" msgid="4084100093691768239">"Maximizar ventana"</string> +    <string name="system_desktop_mode_minimize_window" msgid="1248714536732927092">"Minimizar ventana"</string>      <string name="keyboard_shortcut_group_input" msgid="6888282716546625610">"Entrada"</string>      <string name="input_switch_input_language_next" msgid="3782155659868227855">"Cambiar a siguiente idioma"</string>      <string name="input_switch_input_language_previous" msgid="6043341362202336623">"Cambiar a idioma anterior"</string> @@ -1419,7 +1418,6 @@      <string name="shortcut_helper_category_system_controls" msgid="3153344561395751020">"Controles del sistema"</string>      <string name="shortcut_helper_category_system_apps" msgid="6001757545472556810">"Aplicaciones del sistema"</string>      <string name="shortcut_helper_category_multitasking" msgid="7413381961404090136">"Multitarea"</string> -    <string name="shortcutHelper_category_recent_apps" msgid="7918731953612377145">"Aplicaciones recientes"</string>      <string name="shortcutHelper_category_split_screen" msgid="1159669813444812244">"Pantalla dividida"</string>      <string name="shortcut_helper_category_input" msgid="8674018654124839566">"Entrada"</string>      <string name="shortcut_helper_category_app_shortcuts" msgid="8010249408308587117">"Accesos directos a aplicaciones"</string> @@ -1428,25 +1426,31 @@      <string name="shortcut_helper_title" msgid="8567500639300970049">"Combinaciones de teclas"</string>      <string name="shortcut_helper_customize_mode_title" msgid="1467657117101096033">"Personalizar las combinaciones de teclas"</string>      <string name="shortcut_customize_mode_remove_shortcut_dialog_title" msgid="7106420484940737208">"¿Eliminar combinación de teclas?"</string> +    <!-- no translation found for shortcut_customize_mode_reset_shortcut_dialog_title (8131184731313717780) --> +    <skip />      <string name="shortcut_customize_mode_add_shortcut_description" msgid="6866025005347407696">"Pulsa una tecla para asignar una combinación de teclas"</string>      <string name="shortcut_customize_mode_remove_shortcut_description" msgid="6851287900585057128">"Se eliminará tu combinación de teclas personalizada de forma permanente."</string> +    <!-- no translation found for shortcut_customize_mode_reset_shortcut_description (2081849715634358684) --> +    <skip />      <string name="shortcut_helper_search_placeholder" msgid="5488547526269871819">"Atajos de búsqueda"</string>      <string name="shortcut_helper_no_search_results" msgid="8554756497996692160">"No hay resultados de búsqueda"</string>      <string name="shortcut_helper_content_description_collapse_icon" msgid="8028015738431664954">"Icono de contraer"</string>      <string name="shortcut_helper_content_description_meta_key" msgid="3989315044342124818">"Icono de la tecla de acción o de la tecla Meta"</string>      <string name="shortcut_helper_content_description_plus_icon" msgid="6152683734278299020">"Icono de más"</string>      <string name="shortcut_helper_customize_button_text" msgid="3124983502748069338">"Personalizar"</string> +    <!-- no translation found for shortcut_helper_reset_button_text (2548243844050633472) --> +    <skip />      <string name="shortcut_helper_done_button_text" msgid="7249905942125386191">"Hecho"</string>      <string name="shortcut_helper_content_description_expand_icon" msgid="1084435697860417390">"Icono de desplegar"</string>      <string name="shortcut_helper_key_combinations_or_separator" msgid="7082902112102125540">"o"</string> -    <!-- no translation found for shortcut_helper_key_combinations_and_conjunction (6138186504075880224) --> -    <skip /> -    <!-- no translation found for shortcut_helper_key_combinations_forward_slash (1238652537199346970) --> -    <skip /> +    <string name="shortcut_helper_key_combinations_and_conjunction" msgid="6138186504075880224">"más"</string> +    <string name="shortcut_helper_key_combinations_forward_slash" msgid="1238652537199346970">"barra inclinada"</string>      <string name="shortcut_helper_content_description_drag_handle" msgid="5092426406009848110">"Controlador de arrastre"</string>      <string name="shortcut_helper_keyboard_settings_buttons_label" msgid="6720967595915985259">"Ajustes del teclado"</string>      <string name="shortcut_helper_customize_dialog_set_shortcut_button_label" msgid="4754492225010429382">"Establecer combinación de teclas"</string>      <string name="shortcut_helper_customize_dialog_remove_button_label" msgid="6546386970440176552">"Eliminar"</string> +    <!-- no translation found for shortcut_helper_customize_dialog_reset_button_label (7645535254306312685) --> +    <skip />      <string name="shortcut_helper_customize_dialog_cancel_button_label" msgid="5595546460431741178">"Cancelar"</string>      <string name="shortcut_helper_add_shortcut_dialog_placeholder" msgid="9154297849458741995">"Pulsa una tecla"</string>      <string name="shortcut_customizer_key_combination_in_use_error_message" msgid="7693234470526626327">"La combinación de teclas ya se está usando. Prueba con otra tecla."</string> diff --git a/packages/SystemUI/res/values-et/strings.xml b/packages/SystemUI/res/values-et/strings.xml index f646e258535f..4027bbdd9ca1 100644 --- a/packages/SystemUI/res/values-et/strings.xml +++ b/packages/SystemUI/res/values-et/strings.xml @@ -529,7 +529,10 @@      <string name="communal_widgets_disclaimer_text" msgid="1423545475160506349">"Rakenduse avamiseks vidina abil peate kinnitama, et see olete teie. Samuti pidage meeles, et kõik saavad vidinaid vaadata, isegi kui teie tahvelarvuti on lukus. Mõni vidin ei pruugi olla ette nähtud teie lukustuskuva jaoks ja seda pole turvaline siia lisada."</string>      <string name="communal_widgets_disclaimer_button" msgid="4423059765740780753">"Selge"</string>      <string name="glanceable_hub_lockscreen_affordance_label" msgid="1461611028615752141">"Vidinad"</string> -    <string name="glanceable_hub_lockscreen_affordance_disabled_text" msgid="511359420883794513">"Selleks et lisada vidinad otseteena lukustuskuvale, veenduge, et see oleks seadetes lubatud."</string> +    <!-- no translation found for glanceable_hub_lockscreen_affordance_disabled_text (599170482297578735) --> +    <skip /> +    <!-- no translation found for glanceable_hub_lockscreen_affordance_action_button_label (7636151133344609375) --> +    <skip />      <string name="accessibility_multi_user_switch_switcher" msgid="5330448341251092660">"Kasutaja vahetamine"</string>      <string name="accessibility_multi_user_list_switcher" msgid="8574105376229857407">"rippmenüü"</string>      <string name="guest_exit_guest_dialog_message" msgid="8183450985628495709">"Seansi kõik rakendused ja andmed kustutatakse."</string> @@ -875,14 +878,10 @@      <string name="system_multitasking_splitscreen_focus_lhs" msgid="3164261844398662518">"Vasakule või ülemisele rakendusele lülitamine jagatud ekraani ajal"</string>      <string name="system_multitasking_replace" msgid="7410071959803642125">"Ekraanikuva jagamise ajal: ühe rakenduse asendamine teisega"</string>      <string name="system_multitasking_move_to_next_display" msgid="6169737557526976997">"Aktiivse akna teisaldamine ekraanide vahel"</string> -    <!-- no translation found for system_desktop_mode_snap_left_window (8636204689945162298) --> -    <skip /> -    <!-- no translation found for system_desktop_mode_snap_right_window (2162560187639411929) --> -    <skip /> -    <!-- no translation found for system_desktop_mode_toggle_maximize_window (4084100093691768239) --> -    <skip /> -    <!-- no translation found for system_desktop_mode_minimize_window (1248714536732927092) --> -    <skip /> +    <string name="system_desktop_mode_snap_left_window" msgid="8636204689945162298">"Akna vasakule liigutamine"</string> +    <string name="system_desktop_mode_snap_right_window" msgid="2162560187639411929">"Akna paremale liigutamine"</string> +    <string name="system_desktop_mode_toggle_maximize_window" msgid="4084100093691768239">"Akna maksimeerimine"</string> +    <string name="system_desktop_mode_minimize_window" msgid="1248714536732927092">"Akna minimeerimine"</string>      <string name="keyboard_shortcut_group_input" msgid="6888282716546625610">"Sisend"</string>      <string name="input_switch_input_language_next" msgid="3782155659868227855">"Järgmisele keelele lülitamine"</string>      <string name="input_switch_input_language_previous" msgid="6043341362202336623">"Eelmisele keelele lülitamine"</string> @@ -1419,7 +1418,6 @@      <string name="shortcut_helper_category_system_controls" msgid="3153344561395751020">"Süsteemi juhtelemendid"</string>      <string name="shortcut_helper_category_system_apps" msgid="6001757545472556810">"Süsteemirakendused"</string>      <string name="shortcut_helper_category_multitasking" msgid="7413381961404090136">"Multitegumtöö"</string> -    <string name="shortcutHelper_category_recent_apps" msgid="7918731953612377145">"Hiljutised rakendused"</string>      <string name="shortcutHelper_category_split_screen" msgid="1159669813444812244">"Jagatud ekraanikuva"</string>      <string name="shortcut_helper_category_input" msgid="8674018654124839566">"Sisend"</string>      <string name="shortcut_helper_category_app_shortcuts" msgid="8010249408308587117">"Rakenduse otseteed"</string> @@ -1428,25 +1426,31 @@      <string name="shortcut_helper_title" msgid="8567500639300970049">"Klaviatuuri otseteed"</string>      <string name="shortcut_helper_customize_mode_title" msgid="1467657117101096033">"Klaviatuuri otseteede kohandamine"</string>      <string name="shortcut_customize_mode_remove_shortcut_dialog_title" msgid="7106420484940737208">"Kas soovite otsetee eemaldada?"</string> +    <!-- no translation found for shortcut_customize_mode_reset_shortcut_dialog_title (8131184731313717780) --> +    <skip />      <string name="shortcut_customize_mode_add_shortcut_description" msgid="6866025005347407696">"Otsetee lisamiseks vajutage klahvi"</string>      <string name="shortcut_customize_mode_remove_shortcut_description" msgid="6851287900585057128">"See kustutab teie kohandatud otsetee jäädavalt."</string> +    <!-- no translation found for shortcut_customize_mode_reset_shortcut_description (2081849715634358684) --> +    <skip />      <string name="shortcut_helper_search_placeholder" msgid="5488547526269871819">"Otsige otseteid"</string>      <string name="shortcut_helper_no_search_results" msgid="8554756497996692160">"Otsingutulemused puuduvad"</string>      <string name="shortcut_helper_content_description_collapse_icon" msgid="8028015738431664954">"Ahendamisikoon"</string>      <string name="shortcut_helper_content_description_meta_key" msgid="3989315044342124818">"Toiming või metaklahv"</string>      <string name="shortcut_helper_content_description_plus_icon" msgid="6152683734278299020">"Pluss-ikoon"</string>      <string name="shortcut_helper_customize_button_text" msgid="3124983502748069338">"Kohandamine"</string> +    <!-- no translation found for shortcut_helper_reset_button_text (2548243844050633472) --> +    <skip />      <string name="shortcut_helper_done_button_text" msgid="7249905942125386191">"Valmis"</string>      <string name="shortcut_helper_content_description_expand_icon" msgid="1084435697860417390">"Laiendamisikoon"</string>      <string name="shortcut_helper_key_combinations_or_separator" msgid="7082902112102125540">"või"</string> -    <!-- no translation found for shortcut_helper_key_combinations_and_conjunction (6138186504075880224) --> -    <skip /> -    <!-- no translation found for shortcut_helper_key_combinations_forward_slash (1238652537199346970) --> -    <skip /> +    <string name="shortcut_helper_key_combinations_and_conjunction" msgid="6138186504075880224">"pluss"</string> +    <string name="shortcut_helper_key_combinations_forward_slash" msgid="1238652537199346970">"kaldkriips"</string>      <string name="shortcut_helper_content_description_drag_handle" msgid="5092426406009848110">"Lohistamispide"</string>      <string name="shortcut_helper_keyboard_settings_buttons_label" msgid="6720967595915985259">"Klaviatuuri seaded"</string>      <string name="shortcut_helper_customize_dialog_set_shortcut_button_label" msgid="4754492225010429382">"Määrake otsetee"</string>      <string name="shortcut_helper_customize_dialog_remove_button_label" msgid="6546386970440176552">"Eemalda"</string> +    <!-- no translation found for shortcut_helper_customize_dialog_reset_button_label (7645535254306312685) --> +    <skip />      <string name="shortcut_helper_customize_dialog_cancel_button_label" msgid="5595546460431741178">"Tühista"</string>      <string name="shortcut_helper_add_shortcut_dialog_placeholder" msgid="9154297849458741995">"Vajutage klahvi"</string>      <string name="shortcut_customizer_key_combination_in_use_error_message" msgid="7693234470526626327">"Klahvikombinatsioon on juba kasutusel. Proovige mõnda muud klahvi."</string> diff --git a/packages/SystemUI/res/values-eu/strings.xml b/packages/SystemUI/res/values-eu/strings.xml index 7d3c733ce58d..a0ba1b78a081 100644 --- a/packages/SystemUI/res/values-eu/strings.xml +++ b/packages/SystemUI/res/values-eu/strings.xml @@ -529,7 +529,10 @@      <string name="communal_widgets_disclaimer_text" msgid="1423545475160506349">"Aplikazio bat widget baten bidez irekitzeko, zeu zarela egiaztatu beharko duzu. Gainera, kontuan izan edonork ikusi ahalko dituela halako widgetak, tableta blokeatuta badago ere. Baliteke widget batzuk pantaila blokeaturako egokiak ez izatea, eta agian ez da segurua haiek bertan gehitzea."</string>      <string name="communal_widgets_disclaimer_button" msgid="4423059765740780753">"Ados"</string>      <string name="glanceable_hub_lockscreen_affordance_label" msgid="1461611028615752141">"Widgetak"</string> -    <string name="glanceable_hub_lockscreen_affordance_disabled_text" msgid="511359420883794513">"Pantaila blokeatuan lasterbide gisa widgetak gehitzeko, ziurtatu aukera hori gaituta dagoela ezarpenetan."</string> +    <!-- no translation found for glanceable_hub_lockscreen_affordance_disabled_text (599170482297578735) --> +    <skip /> +    <!-- no translation found for glanceable_hub_lockscreen_affordance_action_button_label (7636151133344609375) --> +    <skip />      <string name="accessibility_multi_user_switch_switcher" msgid="5330448341251092660">"Aldatu erabiltzailea"</string>      <string name="accessibility_multi_user_list_switcher" msgid="8574105376229857407">"zabaldu menua"</string>      <string name="guest_exit_guest_dialog_message" msgid="8183450985628495709">"Saioko aplikazio eta datu guztiak ezabatuko dira."</string> @@ -875,14 +878,10 @@      <string name="system_multitasking_splitscreen_focus_lhs" msgid="3164261844398662518">"Aldatu ezkerreko edo goiko aplikaziora pantaila zatitua erabiltzean"</string>      <string name="system_multitasking_replace" msgid="7410071959803642125">"Pantaila zatituan zaudela, ordeztu aplikazio bat beste batekin"</string>      <string name="system_multitasking_move_to_next_display" msgid="6169737557526976997">"Eraman leiho aktiboa pantaila batetik bestera"</string> -    <!-- no translation found for system_desktop_mode_snap_left_window (8636204689945162298) --> -    <skip /> -    <!-- no translation found for system_desktop_mode_snap_right_window (2162560187639411929) --> -    <skip /> -    <!-- no translation found for system_desktop_mode_toggle_maximize_window (4084100093691768239) --> -    <skip /> -    <!-- no translation found for system_desktop_mode_minimize_window (1248714536732927092) --> -    <skip /> +    <string name="system_desktop_mode_snap_left_window" msgid="8636204689945162298">"Eraman leihoa ezkerrera"</string> +    <string name="system_desktop_mode_snap_right_window" msgid="2162560187639411929">"Eraman leihoa eskuinera"</string> +    <string name="system_desktop_mode_toggle_maximize_window" msgid="4084100093691768239">"Maximizatu leihoa"</string> +    <string name="system_desktop_mode_minimize_window" msgid="1248714536732927092">"Minimizatu leihoa"</string>      <string name="keyboard_shortcut_group_input" msgid="6888282716546625610">"Sarrera"</string>      <string name="input_switch_input_language_next" msgid="3782155659868227855">"Aldatu hurrengo hizkuntzara"</string>      <string name="input_switch_input_language_previous" msgid="6043341362202336623">"Aldatu aurreko hizkuntzara"</string> @@ -1419,7 +1418,6 @@      <string name="shortcut_helper_category_system_controls" msgid="3153344561395751020">"Sistema kontrolatzeko aukerak"</string>      <string name="shortcut_helper_category_system_apps" msgid="6001757545472556810">"Sistemaren aplikazioak"</string>      <string name="shortcut_helper_category_multitasking" msgid="7413381961404090136">"Zeregin bat baino gehiago aldi berean exekutatzea"</string> -    <string name="shortcutHelper_category_recent_apps" msgid="7918731953612377145">"Azkenaldiko aplikazioak"</string>      <string name="shortcutHelper_category_split_screen" msgid="1159669813444812244">"Pantaila zatitzea"</string>      <string name="shortcut_helper_category_input" msgid="8674018654124839566">"Sarrera"</string>      <string name="shortcut_helper_category_app_shortcuts" msgid="8010249408308587117">"Aplikazioetarako lasterbideak"</string> @@ -1428,25 +1426,31 @@      <string name="shortcut_helper_title" msgid="8567500639300970049">"Lasterbideak"</string>      <string name="shortcut_helper_customize_mode_title" msgid="1467657117101096033">"Pertsonalizatu lasterbideak"</string>      <string name="shortcut_customize_mode_remove_shortcut_dialog_title" msgid="7106420484940737208">"Lasterbidea kendu nahi duzu?"</string> +    <!-- no translation found for shortcut_customize_mode_reset_shortcut_dialog_title (8131184731313717780) --> +    <skip />      <string name="shortcut_customize_mode_add_shortcut_description" msgid="6866025005347407696">"Sakatu tekla lasterbidea esleitzeko"</string>      <string name="shortcut_customize_mode_remove_shortcut_description" msgid="6851287900585057128">"Betiko ezabatuko da lasterbide pertsonalizatua."</string> +    <!-- no translation found for shortcut_customize_mode_reset_shortcut_description (2081849715634358684) --> +    <skip />      <string name="shortcut_helper_search_placeholder" msgid="5488547526269871819">"Bilatu lasterbideak"</string>      <string name="shortcut_helper_no_search_results" msgid="8554756497996692160">"Ez dago bilaketa-emaitzarik"</string>      <string name="shortcut_helper_content_description_collapse_icon" msgid="8028015738431664954">"Tolesteko ikonoa"</string>      <string name="shortcut_helper_content_description_meta_key" msgid="3989315044342124818">"Ekintzaren edo Meta teklaren ikonoa"</string>      <string name="shortcut_helper_content_description_plus_icon" msgid="6152683734278299020">"Plus-ikonoa"</string>      <string name="shortcut_helper_customize_button_text" msgid="3124983502748069338">"Pertsonalizatu"</string> +    <!-- no translation found for shortcut_helper_reset_button_text (2548243844050633472) --> +    <skip />      <string name="shortcut_helper_done_button_text" msgid="7249905942125386191">"Eginda"</string>      <string name="shortcut_helper_content_description_expand_icon" msgid="1084435697860417390">"Zabaltzeko ikonoa"</string>      <string name="shortcut_helper_key_combinations_or_separator" msgid="7082902112102125540">"edo"</string> -    <!-- no translation found for shortcut_helper_key_combinations_and_conjunction (6138186504075880224) --> -    <skip /> -    <!-- no translation found for shortcut_helper_key_combinations_forward_slash (1238652537199346970) --> -    <skip /> +    <string name="shortcut_helper_key_combinations_and_conjunction" msgid="6138186504075880224">"gehi"</string> +    <string name="shortcut_helper_key_combinations_forward_slash" msgid="1238652537199346970">"barra"</string>      <string name="shortcut_helper_content_description_drag_handle" msgid="5092426406009848110">"Arrastatzeko kontrol-puntua"</string>      <string name="shortcut_helper_keyboard_settings_buttons_label" msgid="6720967595915985259">"Teklatuaren ezarpenak"</string>      <string name="shortcut_helper_customize_dialog_set_shortcut_button_label" msgid="4754492225010429382">"Ezarri lasterbidea"</string>      <string name="shortcut_helper_customize_dialog_remove_button_label" msgid="6546386970440176552">"Kendu"</string> +    <!-- no translation found for shortcut_helper_customize_dialog_reset_button_label (7645535254306312685) --> +    <skip />      <string name="shortcut_helper_customize_dialog_cancel_button_label" msgid="5595546460431741178">"Utzi"</string>      <string name="shortcut_helper_add_shortcut_dialog_placeholder" msgid="9154297849458741995">"Sakatu tekla"</string>      <string name="shortcut_customizer_key_combination_in_use_error_message" msgid="7693234470526626327">"Tekla-konbinazio hori erabili da dagoeneko. Probatu beste tekla bat."</string> diff --git a/packages/SystemUI/res/values-fa/strings.xml b/packages/SystemUI/res/values-fa/strings.xml index 153a460022a8..7bd01bc1a322 100644 --- a/packages/SystemUI/res/values-fa/strings.xml +++ b/packages/SystemUI/res/values-fa/strings.xml @@ -529,7 +529,10 @@      <string name="communal_widgets_disclaimer_text" msgid="1423545475160506349">"برای باز کردن برنامه بااستفاده از ابزاره، باید هویت خودتان را بهتأیید برسانید. همچنین، بهخاطر داشته باشید که همه میتوانند آنها را مشاهده کنند، حتی وقتی رایانه لوحیتان قفل است. برخیاز ابزارهها ممکن است برای صفحه قفل درنظر گرفته نشده باشند و ممکن است اضافه کردن آنها در اینجا ناامن باشد."</string>      <string name="communal_widgets_disclaimer_button" msgid="4423059765740780753">"متوجهام"</string>      <string name="glanceable_hub_lockscreen_affordance_label" msgid="1461611028615752141">"ابزارهها"</string> -    <string name="glanceable_hub_lockscreen_affordance_disabled_text" msgid="511359420883794513">"برای افزودن «ابزارهها» در صفحه قفل بهعنوان میانبر، مطمئن شوید این گزینه در تنظیمات فعال باشد."</string> +    <!-- no translation found for glanceable_hub_lockscreen_affordance_disabled_text (599170482297578735) --> +    <skip /> +    <!-- no translation found for glanceable_hub_lockscreen_affordance_action_button_label (7636151133344609375) --> +    <skip />      <string name="accessibility_multi_user_switch_switcher" msgid="5330448341251092660">"تغییر کاربر"</string>      <string name="accessibility_multi_user_list_switcher" msgid="8574105376229857407">"منوی پایینپر"</string>      <string name="guest_exit_guest_dialog_message" msgid="8183450985628495709">"همه برنامهها و دادههای این جلسه حذف خواهد شد."</string> @@ -875,14 +878,10 @@      <string name="system_multitasking_splitscreen_focus_lhs" msgid="3164261844398662518">"رفتن به برنامه سمت چپ یا بالا درحین استفاده از صفحهٔ دونیمه"</string>      <string name="system_multitasking_replace" msgid="7410071959803642125">"درحین صفحهٔ دونیمه: برنامهای را با دیگری جابهجا میکند"</string>      <string name="system_multitasking_move_to_next_display" msgid="6169737557526976997">"جابهجا کردن پنجره فعال بین نمایشگرها"</string> -    <!-- no translation found for system_desktop_mode_snap_left_window (8636204689945162298) --> -    <skip /> -    <!-- no translation found for system_desktop_mode_snap_right_window (2162560187639411929) --> -    <skip /> -    <!-- no translation found for system_desktop_mode_toggle_maximize_window (4084100093691768239) --> -    <skip /> -    <!-- no translation found for system_desktop_mode_minimize_window (1248714536732927092) --> -    <skip /> +    <string name="system_desktop_mode_snap_left_window" msgid="8636204689945162298">"بردن پنجره به چپ"</string> +    <string name="system_desktop_mode_snap_right_window" msgid="2162560187639411929">"بردن پنجره به راست"</string> +    <string name="system_desktop_mode_toggle_maximize_window" msgid="4084100093691768239">"بهحداکثر رساندن اندازه پنجره"</string> +    <string name="system_desktop_mode_minimize_window" msgid="1248714536732927092">"بهحداقل رساندن اندازه پنجره"</string>      <string name="keyboard_shortcut_group_input" msgid="6888282716546625610">"ورودی"</string>      <string name="input_switch_input_language_next" msgid="3782155659868227855">"رفتن به زبان بعدی"</string>      <string name="input_switch_input_language_previous" msgid="6043341362202336623">"رفتن به زبان قبلی"</string> @@ -1419,7 +1418,6 @@      <string name="shortcut_helper_category_system_controls" msgid="3153344561395751020">"کنترلهای سیستم"</string>      <string name="shortcut_helper_category_system_apps" msgid="6001757545472556810">"برنامههای سیستم"</string>      <string name="shortcut_helper_category_multitasking" msgid="7413381961404090136">"چندوظیفگی"</string> -    <string name="shortcutHelper_category_recent_apps" msgid="7918731953612377145">"برنامههای اخیر"</string>      <string name="shortcutHelper_category_split_screen" msgid="1159669813444812244">"صفحهٔ دونیمه"</string>      <string name="shortcut_helper_category_input" msgid="8674018654124839566">"ورودی"</string>      <string name="shortcut_helper_category_app_shortcuts" msgid="8010249408308587117">"میانبرهای برنامه"</string> @@ -1428,25 +1426,31 @@      <string name="shortcut_helper_title" msgid="8567500639300970049">"میانبرهای صفحهکلید"</string>      <string name="shortcut_helper_customize_mode_title" msgid="1467657117101096033">"سفارشیسازی کردن میانبرهای صفحهکلید"</string>      <string name="shortcut_customize_mode_remove_shortcut_dialog_title" msgid="7106420484940737208">"میانبر حذف شود؟"</string> +    <!-- no translation found for shortcut_customize_mode_reset_shortcut_dialog_title (8131184731313717780) --> +    <skip />      <string name="shortcut_customize_mode_add_shortcut_description" msgid="6866025005347407696">"برای اختصاص دادن میانبر، کلید را فشار دهید"</string>      <string name="shortcut_customize_mode_remove_shortcut_description" msgid="6851287900585057128">"با این کار، میانبر سفارشی شما برای همیشه حذف میشود."</string> +    <!-- no translation found for shortcut_customize_mode_reset_shortcut_description (2081849715634358684) --> +    <skip />      <string name="shortcut_helper_search_placeholder" msgid="5488547526269871819">"جستجوی میانبرها"</string>      <string name="shortcut_helper_no_search_results" msgid="8554756497996692160">"نتیجهای برای جستجو پیدا نشد"</string>      <string name="shortcut_helper_content_description_collapse_icon" msgid="8028015738431664954">"نماد جمع کردن"</string>      <string name="shortcut_helper_content_description_meta_key" msgid="3989315044342124818">"نماد کلید کنش یا متا"</string>      <string name="shortcut_helper_content_description_plus_icon" msgid="6152683734278299020">"نماد جمع"</string>      <string name="shortcut_helper_customize_button_text" msgid="3124983502748069338">"سفارشیسازی کردن"</string> +    <!-- no translation found for shortcut_helper_reset_button_text (2548243844050633472) --> +    <skip />      <string name="shortcut_helper_done_button_text" msgid="7249905942125386191">"تمام"</string>      <string name="shortcut_helper_content_description_expand_icon" msgid="1084435697860417390">"نماد ازهم بازکردن"</string>      <string name="shortcut_helper_key_combinations_or_separator" msgid="7082902112102125540">"یا"</string> -    <!-- no translation found for shortcut_helper_key_combinations_and_conjunction (6138186504075880224) --> -    <skip /> -    <!-- no translation found for shortcut_helper_key_combinations_forward_slash (1238652537199346970) --> -    <skip /> +    <string name="shortcut_helper_key_combinations_and_conjunction" msgid="6138186504075880224">"و"</string> +    <string name="shortcut_helper_key_combinations_forward_slash" msgid="1238652537199346970">"کجخط روبه جلو"</string>      <string name="shortcut_helper_content_description_drag_handle" msgid="5092426406009848110">"دستگیره کشاندن"</string>      <string name="shortcut_helper_keyboard_settings_buttons_label" msgid="6720967595915985259">"تنظیمات صفحهکلید"</string>      <string name="shortcut_helper_customize_dialog_set_shortcut_button_label" msgid="4754492225010429382">"تنظیم میانبر"</string>      <string name="shortcut_helper_customize_dialog_remove_button_label" msgid="6546386970440176552">"حذف"</string> +    <!-- no translation found for shortcut_helper_customize_dialog_reset_button_label (7645535254306312685) --> +    <skip />      <string name="shortcut_helper_customize_dialog_cancel_button_label" msgid="5595546460431741178">"لغو"</string>      <string name="shortcut_helper_add_shortcut_dialog_placeholder" msgid="9154297849458741995">"کلید را فشار دهید"</string>      <string name="shortcut_customizer_key_combination_in_use_error_message" msgid="7693234470526626327">"ترکیب کلید ازقبل درحال استفاده است. کلید دیگری را امتحان کنید."</string> diff --git a/packages/SystemUI/res/values-fi/strings.xml b/packages/SystemUI/res/values-fi/strings.xml index 76d66c525256..e6174515c8d4 100644 --- a/packages/SystemUI/res/values-fi/strings.xml +++ b/packages/SystemUI/res/values-fi/strings.xml @@ -529,7 +529,10 @@      <string name="communal_widgets_disclaimer_text" msgid="1423545475160506349">"Jos haluat avata sovelluksen käyttämällä widgetiä, sinun täytyy vahvistaa henkilöllisyytesi. Muista myös, että widgetit näkyvät kaikille, vaikka tabletti olisi lukittuna. Jotkin widgetit on ehkä tarkoitettu lukitusnäytölle, ja niiden lisääminen tänne ei välttämättä ole turvallista."</string>      <string name="communal_widgets_disclaimer_button" msgid="4423059765740780753">"Selvä"</string>      <string name="glanceable_hub_lockscreen_affordance_label" msgid="1461611028615752141">"Widgetit"</string> -    <string name="glanceable_hub_lockscreen_affordance_disabled_text" msgid="511359420883794513">"Jos haluat lisätä Widgetit lukitusnäytöllä ‑ominaisuuden pikakuvakkeeksi, varmista, että se on otettu käyttöön asetuksissa."</string> +    <!-- no translation found for glanceable_hub_lockscreen_affordance_disabled_text (599170482297578735) --> +    <skip /> +    <!-- no translation found for glanceable_hub_lockscreen_affordance_action_button_label (7636151133344609375) --> +    <skip />      <string name="accessibility_multi_user_switch_switcher" msgid="5330448341251092660">"Vaihda käyttäjää"</string>      <string name="accessibility_multi_user_list_switcher" msgid="8574105376229857407">"alasvetovalikko"</string>      <string name="guest_exit_guest_dialog_message" msgid="8183450985628495709">"Kaikki sovellukset ja tämän istunnon tiedot poistetaan."</string> @@ -875,14 +878,10 @@      <string name="system_multitasking_splitscreen_focus_lhs" msgid="3164261844398662518">"Vaihda sovellukseen vasemmalla tai yläpuolella jaetussa näytössä"</string>      <string name="system_multitasking_replace" msgid="7410071959803642125">"Jaetun näytön aikana: korvaa sovellus toisella"</string>      <string name="system_multitasking_move_to_next_display" msgid="6169737557526976997">"Siirrä aktiivinen ikkuna näytöltä toiselle"</string> -    <!-- no translation found for system_desktop_mode_snap_left_window (8636204689945162298) --> -    <skip /> -    <!-- no translation found for system_desktop_mode_snap_right_window (2162560187639411929) --> -    <skip /> -    <!-- no translation found for system_desktop_mode_toggle_maximize_window (4084100093691768239) --> -    <skip /> -    <!-- no translation found for system_desktop_mode_minimize_window (1248714536732927092) --> -    <skip /> +    <string name="system_desktop_mode_snap_left_window" msgid="8636204689945162298">"Siirrä ikkuna vasemmalle"</string> +    <string name="system_desktop_mode_snap_right_window" msgid="2162560187639411929">"Siirrä ikkuna oikealle"</string> +    <string name="system_desktop_mode_toggle_maximize_window" msgid="4084100093691768239">"Suurenna ikkuna"</string> +    <string name="system_desktop_mode_minimize_window" msgid="1248714536732927092">"Pienennä ikkuna"</string>      <string name="keyboard_shortcut_group_input" msgid="6888282716546625610">"Syöttötapa"</string>      <string name="input_switch_input_language_next" msgid="3782155659868227855">"Vaihda seuraavaan kieleen"</string>      <string name="input_switch_input_language_previous" msgid="6043341362202336623">"Vaihda aiempaan kieleen"</string> @@ -1419,7 +1418,6 @@      <string name="shortcut_helper_category_system_controls" msgid="3153344561395751020">"Järjestelmän hallinta"</string>      <string name="shortcut_helper_category_system_apps" msgid="6001757545472556810">"Järjestelmäsovellukset"</string>      <string name="shortcut_helper_category_multitasking" msgid="7413381961404090136">"Multitaskaus"</string> -    <string name="shortcutHelper_category_recent_apps" msgid="7918731953612377145">"Viimeisimmät sovellukset"</string>      <string name="shortcutHelper_category_split_screen" msgid="1159669813444812244">"Jaettu näyttö"</string>      <string name="shortcut_helper_category_input" msgid="8674018654124839566">"Syöte"</string>      <string name="shortcut_helper_category_app_shortcuts" msgid="8010249408308587117">"Sovellusten pikakuvakkeet"</string> @@ -1428,25 +1426,31 @@      <string name="shortcut_helper_title" msgid="8567500639300970049">"Pikanäppäimet"</string>      <string name="shortcut_helper_customize_mode_title" msgid="1467657117101096033">"Pikanäppäimien muokkaaminen"</string>      <string name="shortcut_customize_mode_remove_shortcut_dialog_title" msgid="7106420484940737208">"Poistetaanko pikanäppäin?"</string> +    <!-- no translation found for shortcut_customize_mode_reset_shortcut_dialog_title (8131184731313717780) --> +    <skip />      <string name="shortcut_customize_mode_add_shortcut_description" msgid="6866025005347407696">"Määritä pikanäppäin painamalla näppäintä"</string>      <string name="shortcut_customize_mode_remove_shortcut_description" msgid="6851287900585057128">"Oma pikanäppäin poistetaan pysyvästi."</string> +    <!-- no translation found for shortcut_customize_mode_reset_shortcut_description (2081849715634358684) --> +    <skip />      <string name="shortcut_helper_search_placeholder" msgid="5488547526269871819">"Pikahaut"</string>      <string name="shortcut_helper_no_search_results" msgid="8554756497996692160">"Ei hakutuloksia"</string>      <string name="shortcut_helper_content_description_collapse_icon" msgid="8028015738431664954">"Tiivistyskuvake"</string>      <string name="shortcut_helper_content_description_meta_key" msgid="3989315044342124818">"Toiminto- tai Meta-näppäinkuvake"</string>      <string name="shortcut_helper_content_description_plus_icon" msgid="6152683734278299020">"Pluskuvake"</string>      <string name="shortcut_helper_customize_button_text" msgid="3124983502748069338">"Muokkaa"</string> +    <!-- no translation found for shortcut_helper_reset_button_text (2548243844050633472) --> +    <skip />      <string name="shortcut_helper_done_button_text" msgid="7249905942125386191">"Valmis"</string>      <string name="shortcut_helper_content_description_expand_icon" msgid="1084435697860417390">"Laajennuskuvake"</string>      <string name="shortcut_helper_key_combinations_or_separator" msgid="7082902112102125540">"tai"</string> -    <!-- no translation found for shortcut_helper_key_combinations_and_conjunction (6138186504075880224) --> -    <skip /> -    <!-- no translation found for shortcut_helper_key_combinations_forward_slash (1238652537199346970) --> -    <skip /> +    <string name="shortcut_helper_key_combinations_and_conjunction" msgid="6138186504075880224">"plus"</string> +    <string name="shortcut_helper_key_combinations_forward_slash" msgid="1238652537199346970">"kauttaviiva"</string>      <string name="shortcut_helper_content_description_drag_handle" msgid="5092426406009848110">"Vetokahva"</string>      <string name="shortcut_helper_keyboard_settings_buttons_label" msgid="6720967595915985259">"Näppäimistön asetukset"</string>      <string name="shortcut_helper_customize_dialog_set_shortcut_button_label" msgid="4754492225010429382">"Valitse pikanäppäin"</string>      <string name="shortcut_helper_customize_dialog_remove_button_label" msgid="6546386970440176552">"Poista"</string> +    <!-- no translation found for shortcut_helper_customize_dialog_reset_button_label (7645535254306312685) --> +    <skip />      <string name="shortcut_helper_customize_dialog_cancel_button_label" msgid="5595546460431741178">"Peru"</string>      <string name="shortcut_helper_add_shortcut_dialog_placeholder" msgid="9154297849458741995">"Paina näppäintä"</string>      <string name="shortcut_customizer_key_combination_in_use_error_message" msgid="7693234470526626327">"Näppäinyhdistelmä on jo käytössä. Kokeile toista näppäintä."</string> diff --git a/packages/SystemUI/res/values-fr-rCA/strings.xml b/packages/SystemUI/res/values-fr-rCA/strings.xml index 6997b26b7c12..6213dd581b57 100644 --- a/packages/SystemUI/res/values-fr-rCA/strings.xml +++ b/packages/SystemUI/res/values-fr-rCA/strings.xml @@ -529,7 +529,10 @@      <string name="communal_widgets_disclaimer_text" msgid="1423545475160506349">"Pour ouvrir une appli à l\'aide d\'un widget, vous devrez confirmer votre identité. En outre, gardez à l\'esprit que tout le monde peut voir les widgets, même lorsque votre tablette est verrouillée. Certains widgets n\'ont peut-être pas été conçus pour votre écran de verrouillage, et il pourrait être dangereux de les ajouter ici."</string>      <string name="communal_widgets_disclaimer_button" msgid="4423059765740780753">"OK"</string>      <string name="glanceable_hub_lockscreen_affordance_label" msgid="1461611028615752141">"Widgets"</string> -    <string name="glanceable_hub_lockscreen_affordance_disabled_text" msgid="511359420883794513">"Pour ajouter des widgets comme raccourci à l\'écran de verrouillage, assurez-vous que cette fonctionnalité soit activée dans les paramètres."</string> +    <!-- no translation found for glanceable_hub_lockscreen_affordance_disabled_text (599170482297578735) --> +    <skip /> +    <!-- no translation found for glanceable_hub_lockscreen_affordance_action_button_label (7636151133344609375) --> +    <skip />      <string name="accessibility_multi_user_switch_switcher" msgid="5330448341251092660">"Changer d\'utilisateur"</string>      <string name="accessibility_multi_user_list_switcher" msgid="8574105376229857407">"menu déroulant"</string>      <string name="guest_exit_guest_dialog_message" msgid="8183450985628495709">"Toutes les applis et les données de cette session seront supprimées."</string> @@ -875,14 +878,10 @@      <string name="system_multitasking_splitscreen_focus_lhs" msgid="3164261844398662518">"Passer à l\'appli à gauche ou au-dessus avec l\'Écran divisé"</string>      <string name="system_multitasking_replace" msgid="7410071959803642125">"En mode d\'écran divisé : remplacer une appli par une autre"</string>      <string name="system_multitasking_move_to_next_display" msgid="6169737557526976997">"Déplacer la fenêtre active d\'un écran à l\'autre"</string> -    <!-- no translation found for system_desktop_mode_snap_left_window (8636204689945162298) --> -    <skip /> -    <!-- no translation found for system_desktop_mode_snap_right_window (2162560187639411929) --> -    <skip /> -    <!-- no translation found for system_desktop_mode_toggle_maximize_window (4084100093691768239) --> -    <skip /> -    <!-- no translation found for system_desktop_mode_minimize_window (1248714536732927092) --> -    <skip /> +    <string name="system_desktop_mode_snap_left_window" msgid="8636204689945162298">"Déplacer la fenêtre vers la gauche"</string> +    <string name="system_desktop_mode_snap_right_window" msgid="2162560187639411929">"Déplacer la fenêtre vers la droite"</string> +    <string name="system_desktop_mode_toggle_maximize_window" msgid="4084100093691768239">"Agrandir la fenêtre"</string> +    <string name="system_desktop_mode_minimize_window" msgid="1248714536732927092">"Réduire la fenêtre"</string>      <string name="keyboard_shortcut_group_input" msgid="6888282716546625610">"Entrée"</string>      <string name="input_switch_input_language_next" msgid="3782155659868227855">"Passer à la langue suivante"</string>      <string name="input_switch_input_language_previous" msgid="6043341362202336623">"Passer à la langue précédente"</string> @@ -1419,7 +1418,6 @@      <string name="shortcut_helper_category_system_controls" msgid="3153344561395751020">"Commandes système"</string>      <string name="shortcut_helper_category_system_apps" msgid="6001757545472556810">"Applis système"</string>      <string name="shortcut_helper_category_multitasking" msgid="7413381961404090136">"Multitâche"</string> -    <string name="shortcutHelper_category_recent_apps" msgid="7918731953612377145">"Applis récentes"</string>      <string name="shortcutHelper_category_split_screen" msgid="1159669813444812244">"Écran divisé"</string>      <string name="shortcut_helper_category_input" msgid="8674018654124839566">"Entrée"</string>      <string name="shortcut_helper_category_app_shortcuts" msgid="8010249408308587117">"Raccourcis des applis"</string> @@ -1428,25 +1426,31 @@      <string name="shortcut_helper_title" msgid="8567500639300970049">"Raccourcis-clavier"</string>      <string name="shortcut_helper_customize_mode_title" msgid="1467657117101096033">"Personnaliser les raccourcis-clavier"</string>      <string name="shortcut_customize_mode_remove_shortcut_dialog_title" msgid="7106420484940737208">"Supprimer le raccourci?"</string> +    <!-- no translation found for shortcut_customize_mode_reset_shortcut_dialog_title (8131184731313717780) --> +    <skip />      <string name="shortcut_customize_mode_add_shortcut_description" msgid="6866025005347407696">"Appuyez sur la touche pour attribuer un raccourci"</string>      <string name="shortcut_customize_mode_remove_shortcut_description" msgid="6851287900585057128">"Cela supprimera définitivement votre raccourci personnalisé."</string> +    <!-- no translation found for shortcut_customize_mode_reset_shortcut_description (2081849715634358684) --> +    <skip />      <string name="shortcut_helper_search_placeholder" msgid="5488547526269871819">"Rechercher des raccourcis"</string>      <string name="shortcut_helper_no_search_results" msgid="8554756497996692160">"Aucun résultat de recherche"</string>      <string name="shortcut_helper_content_description_collapse_icon" msgid="8028015738431664954">"Icône Réduire"</string>      <string name="shortcut_helper_content_description_meta_key" msgid="3989315044342124818">"Icône de la touche Action ou Méta"</string>      <string name="shortcut_helper_content_description_plus_icon" msgid="6152683734278299020">"Icône Plus"</string>      <string name="shortcut_helper_customize_button_text" msgid="3124983502748069338">"Personnaliser"</string> +    <!-- no translation found for shortcut_helper_reset_button_text (2548243844050633472) --> +    <skip />      <string name="shortcut_helper_done_button_text" msgid="7249905942125386191">"Terminé"</string>      <string name="shortcut_helper_content_description_expand_icon" msgid="1084435697860417390">"Icône Développer"</string>      <string name="shortcut_helper_key_combinations_or_separator" msgid="7082902112102125540">"ou"</string> -    <!-- no translation found for shortcut_helper_key_combinations_and_conjunction (6138186504075880224) --> -    <skip /> -    <!-- no translation found for shortcut_helper_key_combinations_forward_slash (1238652537199346970) --> -    <skip /> +    <string name="shortcut_helper_key_combinations_and_conjunction" msgid="6138186504075880224">"plus"</string> +    <string name="shortcut_helper_key_combinations_forward_slash" msgid="1238652537199346970">"barre oblique"</string>      <string name="shortcut_helper_content_description_drag_handle" msgid="5092426406009848110">"Poignée de déplacement"</string>      <string name="shortcut_helper_keyboard_settings_buttons_label" msgid="6720967595915985259">"Paramètres du clavier"</string>      <string name="shortcut_helper_customize_dialog_set_shortcut_button_label" msgid="4754492225010429382">"Définir un raccourci"</string>      <string name="shortcut_helper_customize_dialog_remove_button_label" msgid="6546386970440176552">"Supprimer"</string> +    <!-- no translation found for shortcut_helper_customize_dialog_reset_button_label (7645535254306312685) --> +    <skip />      <string name="shortcut_helper_customize_dialog_cancel_button_label" msgid="5595546460431741178">"Annuler"</string>      <string name="shortcut_helper_add_shortcut_dialog_placeholder" msgid="9154297849458741995">"Appuyez sur la touche"</string>      <string name="shortcut_customizer_key_combination_in_use_error_message" msgid="7693234470526626327">"La combinaison de touches est déjà utilisée. Essayez une autre touche."</string> diff --git a/packages/SystemUI/res/values-fr/strings.xml b/packages/SystemUI/res/values-fr/strings.xml index 3e7fc389d5c2..d0931a687947 100644 --- a/packages/SystemUI/res/values-fr/strings.xml +++ b/packages/SystemUI/res/values-fr/strings.xml @@ -529,7 +529,10 @@      <string name="communal_widgets_disclaimer_text" msgid="1423545475160506349">"Pour ouvrir une appli à l\'aide d\'un widget, vous devez confirmer qu\'il s\'agit bien de vous. N\'oubliez pas non plus que tout le monde peut voir vos widgets, même lorsque votre tablette est verrouillée. Certains d\'entre eux n\'ont pas été conçus pour l\'écran de verrouillage et les ajouter à cet endroit peut s\'avérer dangereux."</string>      <string name="communal_widgets_disclaimer_button" msgid="4423059765740780753">"OK"</string>      <string name="glanceable_hub_lockscreen_affordance_label" msgid="1461611028615752141">"Widgets"</string> -    <string name="glanceable_hub_lockscreen_affordance_disabled_text" msgid="511359420883794513">"Pour ajouter des widgets à l\'écran de verrouillage en tant que raccourcis, assurez-vous que cette option est activée dans les paramètres."</string> +    <!-- no translation found for glanceable_hub_lockscreen_affordance_disabled_text (599170482297578735) --> +    <skip /> +    <!-- no translation found for glanceable_hub_lockscreen_affordance_action_button_label (7636151133344609375) --> +    <skip />      <string name="accessibility_multi_user_switch_switcher" msgid="5330448341251092660">"Changer d\'utilisateur"</string>      <string name="accessibility_multi_user_list_switcher" msgid="8574105376229857407">"menu déroulant"</string>      <string name="guest_exit_guest_dialog_message" msgid="8183450985628495709">"Toutes les applications et les données de cette session seront supprimées."</string> @@ -875,14 +878,10 @@      <string name="system_multitasking_splitscreen_focus_lhs" msgid="3164261844398662518">"Passez à l\'appli à gauche ou au-dessus avec l\'écran partagé"</string>      <string name="system_multitasking_replace" msgid="7410071959803642125">"En mode écran partagé : Remplacer une appli par une autre"</string>      <string name="system_multitasking_move_to_next_display" msgid="6169737557526976997">"Déplacer la fenêtre active d\'un écran à l\'autre"</string> -    <!-- no translation found for system_desktop_mode_snap_left_window (8636204689945162298) --> -    <skip /> -    <!-- no translation found for system_desktop_mode_snap_right_window (2162560187639411929) --> -    <skip /> -    <!-- no translation found for system_desktop_mode_toggle_maximize_window (4084100093691768239) --> -    <skip /> -    <!-- no translation found for system_desktop_mode_minimize_window (1248714536732927092) --> -    <skip /> +    <string name="system_desktop_mode_snap_left_window" msgid="8636204689945162298">"Déplacer la fenêtre vers la gauche"</string> +    <string name="system_desktop_mode_snap_right_window" msgid="2162560187639411929">"Déplacer la fenêtre vers la droite"</string> +    <string name="system_desktop_mode_toggle_maximize_window" msgid="4084100093691768239">"Agrandir la fenêtre"</string> +    <string name="system_desktop_mode_minimize_window" msgid="1248714536732927092">"Réduire la fenêtre"</string>      <string name="keyboard_shortcut_group_input" msgid="6888282716546625610">"Saisie"</string>      <string name="input_switch_input_language_next" msgid="3782155659868227855">"Passer à la langue suivante"</string>      <string name="input_switch_input_language_previous" msgid="6043341362202336623">"Revenir à la langue précédente"</string> @@ -1419,7 +1418,6 @@      <string name="shortcut_helper_category_system_controls" msgid="3153344561395751020">"Commandes système"</string>      <string name="shortcut_helper_category_system_apps" msgid="6001757545472556810">"Applis système"</string>      <string name="shortcut_helper_category_multitasking" msgid="7413381961404090136">"Multitâche"</string> -    <string name="shortcutHelper_category_recent_apps" msgid="7918731953612377145">"Applis récentes"</string>      <string name="shortcutHelper_category_split_screen" msgid="1159669813444812244">"Écran partagé"</string>      <string name="shortcut_helper_category_input" msgid="8674018654124839566">"Entrée"</string>      <string name="shortcut_helper_category_app_shortcuts" msgid="8010249408308587117">"Raccourcis d\'application"</string> @@ -1428,25 +1426,31 @@      <string name="shortcut_helper_title" msgid="8567500639300970049">"Raccourcis clavier"</string>      <string name="shortcut_helper_customize_mode_title" msgid="1467657117101096033">"Personnaliser les raccourcis clavier"</string>      <string name="shortcut_customize_mode_remove_shortcut_dialog_title" msgid="7106420484940737208">"Supprimer le raccourci ?"</string> +    <!-- no translation found for shortcut_customize_mode_reset_shortcut_dialog_title (8131184731313717780) --> +    <skip />      <string name="shortcut_customize_mode_add_shortcut_description" msgid="6866025005347407696">"Appuyez sur une touche pour attribuer un raccourci"</string>      <string name="shortcut_customize_mode_remove_shortcut_description" msgid="6851287900585057128">"Votre raccourci personnalisé sera définitivement supprimé."</string> +    <!-- no translation found for shortcut_customize_mode_reset_shortcut_description (2081849715634358684) --> +    <skip />      <string name="shortcut_helper_search_placeholder" msgid="5488547526269871819">"Rechercher des raccourcis"</string>      <string name="shortcut_helper_no_search_results" msgid="8554756497996692160">"Aucun résultat de recherche"</string>      <string name="shortcut_helper_content_description_collapse_icon" msgid="8028015738431664954">"Icône Réduire"</string>      <string name="shortcut_helper_content_description_meta_key" msgid="3989315044342124818">"Icône de touche d\'action ou de méta-touche"</string>      <string name="shortcut_helper_content_description_plus_icon" msgid="6152683734278299020">"Icône Plus"</string>      <string name="shortcut_helper_customize_button_text" msgid="3124983502748069338">"Personnaliser"</string> +    <!-- no translation found for shortcut_helper_reset_button_text (2548243844050633472) --> +    <skip />      <string name="shortcut_helper_done_button_text" msgid="7249905942125386191">"OK"</string>      <string name="shortcut_helper_content_description_expand_icon" msgid="1084435697860417390">"Icône Développer"</string>      <string name="shortcut_helper_key_combinations_or_separator" msgid="7082902112102125540">"ou"</string> -    <!-- no translation found for shortcut_helper_key_combinations_and_conjunction (6138186504075880224) --> -    <skip /> -    <!-- no translation found for shortcut_helper_key_combinations_forward_slash (1238652537199346970) --> -    <skip /> +    <string name="shortcut_helper_key_combinations_and_conjunction" msgid="6138186504075880224">"plus"</string> +    <string name="shortcut_helper_key_combinations_forward_slash" msgid="1238652537199346970">"barre oblique"</string>      <string name="shortcut_helper_content_description_drag_handle" msgid="5092426406009848110">"Poignée de déplacement"</string>      <string name="shortcut_helper_keyboard_settings_buttons_label" msgid="6720967595915985259">"Paramètres du clavier"</string>      <string name="shortcut_helper_customize_dialog_set_shortcut_button_label" msgid="4754492225010429382">"Définir un raccourci"</string>      <string name="shortcut_helper_customize_dialog_remove_button_label" msgid="6546386970440176552">"Supprimer"</string> +    <!-- no translation found for shortcut_helper_customize_dialog_reset_button_label (7645535254306312685) --> +    <skip />      <string name="shortcut_helper_customize_dialog_cancel_button_label" msgid="5595546460431741178">"Annuler"</string>      <string name="shortcut_helper_add_shortcut_dialog_placeholder" msgid="9154297849458741995">"Appuyez sur la touche"</string>      <string name="shortcut_customizer_key_combination_in_use_error_message" msgid="7693234470526626327">"Combinaison de touches déjà utilisée. Essayez une autre touche."</string> diff --git a/packages/SystemUI/res/values-gl/strings.xml b/packages/SystemUI/res/values-gl/strings.xml index d36a24dab815..a02206ddc1a5 100644 --- a/packages/SystemUI/res/values-gl/strings.xml +++ b/packages/SystemUI/res/values-gl/strings.xml @@ -529,7 +529,10 @@      <string name="communal_widgets_disclaimer_text" msgid="1423545475160506349">"Para abrir unha aplicación mediante un widget, tes que verificar a túa identidade. Ten en conta que pode velos calquera persoa, mesmo coa tableta bloqueada. Pode ser que algúns widgets non estean pensados para a túa pantalla de bloqueo, polo que talvez non sexa seguro engadilos aquí."</string>      <string name="communal_widgets_disclaimer_button" msgid="4423059765740780753">"Entendido"</string>      <string name="glanceable_hub_lockscreen_affordance_label" msgid="1461611028615752141">"Widgets"</string> -    <string name="glanceable_hub_lockscreen_affordance_disabled_text" msgid="511359420883794513">"Para poderes engadir widgets á pantalla de bloqueo como atallos, debe estar activada na configuración a opción correspondente."</string> +    <!-- no translation found for glanceable_hub_lockscreen_affordance_disabled_text (599170482297578735) --> +    <skip /> +    <!-- no translation found for glanceable_hub_lockscreen_affordance_action_button_label (7636151133344609375) --> +    <skip />      <string name="accessibility_multi_user_switch_switcher" msgid="5330448341251092660">"Cambiar usuario"</string>      <string name="accessibility_multi_user_list_switcher" msgid="8574105376229857407">"menú despregable"</string>      <string name="guest_exit_guest_dialog_message" msgid="8183450985628495709">"Eliminaranse todas as aplicacións e datos desta sesión."</string> @@ -875,14 +878,10 @@      <string name="system_multitasking_splitscreen_focus_lhs" msgid="3164261844398662518">"Cambiar á aplicación da esquerda ou de arriba coa pantalla dividida"</string>      <string name="system_multitasking_replace" msgid="7410071959803642125">"En modo de pantalla dividida: Substituír unha aplicación por outra"</string>      <string name="system_multitasking_move_to_next_display" msgid="6169737557526976997">"Mover ventá activa entre pantallas"</string> -    <!-- no translation found for system_desktop_mode_snap_left_window (8636204689945162298) --> -    <skip /> -    <!-- no translation found for system_desktop_mode_snap_right_window (2162560187639411929) --> -    <skip /> -    <!-- no translation found for system_desktop_mode_toggle_maximize_window (4084100093691768239) --> -    <skip /> -    <!-- no translation found for system_desktop_mode_minimize_window (1248714536732927092) --> -    <skip /> +    <string name="system_desktop_mode_snap_left_window" msgid="8636204689945162298">"Mover ventá á esquerda"</string> +    <string name="system_desktop_mode_snap_right_window" msgid="2162560187639411929">"Mover ventá á dereita"</string> +    <string name="system_desktop_mode_toggle_maximize_window" msgid="4084100093691768239">"Maximizar ventá"</string> +    <string name="system_desktop_mode_minimize_window" msgid="1248714536732927092">"Minimizar ventá"</string>      <string name="keyboard_shortcut_group_input" msgid="6888282716546625610">"Entrada"</string>      <string name="input_switch_input_language_next" msgid="3782155659868227855">"Cambiar ao seguinte idioma"</string>      <string name="input_switch_input_language_previous" msgid="6043341362202336623">"Cambiar ao idioma anterior"</string> @@ -1419,7 +1418,6 @@      <string name="shortcut_helper_category_system_controls" msgid="3153344561395751020">"Controis do sistema"</string>      <string name="shortcut_helper_category_system_apps" msgid="6001757545472556810">"Aplicacións do sistema"</string>      <string name="shortcut_helper_category_multitasking" msgid="7413381961404090136">"Multitarefa"</string> -    <string name="shortcutHelper_category_recent_apps" msgid="7918731953612377145">"Aplicacións recentes"</string>      <string name="shortcutHelper_category_split_screen" msgid="1159669813444812244">"Pantalla dividida"</string>      <string name="shortcut_helper_category_input" msgid="8674018654124839566">"Entrada"</string>      <string name="shortcut_helper_category_app_shortcuts" msgid="8010249408308587117">"Atallos de aplicacións"</string> @@ -1428,25 +1426,31 @@      <string name="shortcut_helper_title" msgid="8567500639300970049">"Atallos de teclado"</string>      <string name="shortcut_helper_customize_mode_title" msgid="1467657117101096033">"Personalizar os atallos de teclado"</string>      <string name="shortcut_customize_mode_remove_shortcut_dialog_title" msgid="7106420484940737208">"Queres quitar o atallo?"</string> +    <!-- no translation found for shortcut_customize_mode_reset_shortcut_dialog_title (8131184731313717780) --> +    <skip />      <string name="shortcut_customize_mode_add_shortcut_description" msgid="6866025005347407696">"Preme a tecla para asignar o atallo"</string>      <string name="shortcut_customize_mode_remove_shortcut_description" msgid="6851287900585057128">"Eliminarase de forma permanente o teu atallo personalizado."</string> +    <!-- no translation found for shortcut_customize_mode_reset_shortcut_description (2081849715634358684) --> +    <skip />      <string name="shortcut_helper_search_placeholder" msgid="5488547526269871819">"Busca atallos"</string>      <string name="shortcut_helper_no_search_results" msgid="8554756497996692160">"Non hai resultados de busca"</string>      <string name="shortcut_helper_content_description_collapse_icon" msgid="8028015738431664954">"Icona de contraer"</string>      <string name="shortcut_helper_content_description_meta_key" msgid="3989315044342124818">"Icona da tecla Meta ou de acción"</string>      <string name="shortcut_helper_content_description_plus_icon" msgid="6152683734278299020">"Icona do signo máis"</string>      <string name="shortcut_helper_customize_button_text" msgid="3124983502748069338">"Personalizar"</string> +    <!-- no translation found for shortcut_helper_reset_button_text (2548243844050633472) --> +    <skip />      <string name="shortcut_helper_done_button_text" msgid="7249905942125386191">"Feito"</string>      <string name="shortcut_helper_content_description_expand_icon" msgid="1084435697860417390">"Icona de despregar"</string>      <string name="shortcut_helper_key_combinations_or_separator" msgid="7082902112102125540">"ou"</string> -    <!-- no translation found for shortcut_helper_key_combinations_and_conjunction (6138186504075880224) --> -    <skip /> -    <!-- no translation found for shortcut_helper_key_combinations_forward_slash (1238652537199346970) --> -    <skip /> +    <string name="shortcut_helper_key_combinations_and_conjunction" msgid="6138186504075880224">"máis"</string> +    <string name="shortcut_helper_key_combinations_forward_slash" msgid="1238652537199346970">"barra oblicua"</string>      <string name="shortcut_helper_content_description_drag_handle" msgid="5092426406009848110">"Controlador de arrastre"</string>      <string name="shortcut_helper_keyboard_settings_buttons_label" msgid="6720967595915985259">"Configuración do teclado"</string>      <string name="shortcut_helper_customize_dialog_set_shortcut_button_label" msgid="4754492225010429382">"Definir atallo"</string>      <string name="shortcut_helper_customize_dialog_remove_button_label" msgid="6546386970440176552">"Quitar"</string> +    <!-- no translation found for shortcut_helper_customize_dialog_reset_button_label (7645535254306312685) --> +    <skip />      <string name="shortcut_helper_customize_dialog_cancel_button_label" msgid="5595546460431741178">"Cancelar"</string>      <string name="shortcut_helper_add_shortcut_dialog_placeholder" msgid="9154297849458741995">"Preme unha tecla"</string>      <string name="shortcut_customizer_key_combination_in_use_error_message" msgid="7693234470526626327">"Xa se está usando esta combinación de teclas. Proba con outra."</string> diff --git a/packages/SystemUI/res/values-gu/strings.xml b/packages/SystemUI/res/values-gu/strings.xml index 1c528682e413..8cff7ff01eca 100644 --- a/packages/SystemUI/res/values-gu/strings.xml +++ b/packages/SystemUI/res/values-gu/strings.xml @@ -529,7 +529,10 @@      <string name="communal_widgets_disclaimer_text" msgid="1423545475160506349">"વિજેટનો ઉપયોગ કરીને ઍપ ખોલવા માટે, તમારે એ ચકાસણી કરવાની જરૂર રહેશે કે આ તમે જ છો. તે ઉપરાંત, ધ્યાનમાં રાખો કે તમારું ટૅબ્લેટ લૉક કરેલું હોય તો પણ કોઈપણ વ્યક્તિ તેમને જોઈ શકે છે. અમુક વિજેટ કદાચ તમારી લૉક સ્ક્રીન માટે બનાવવામાં આવ્યા ન હોઈ શકે છે અને તેમને અહીં ઉમેરવાનું અસલામત હોઈ શકે છે."</string>      <string name="communal_widgets_disclaimer_button" msgid="4423059765740780753">"સમજાઈ ગયું"</string>      <string name="glanceable_hub_lockscreen_affordance_label" msgid="1461611028615752141">"વિજેટ"</string> -    <string name="glanceable_hub_lockscreen_affordance_disabled_text" msgid="511359420883794513">"લૉક સ્ક્રીન પર શૉર્ટકટ તરીકે વિજેટ ઉમેરવા માટે, ખાતરી કરો કે તે સેટિંગમાં ચાલુ કરેલા હોય."</string> +    <!-- no translation found for glanceable_hub_lockscreen_affordance_disabled_text (599170482297578735) --> +    <skip /> +    <!-- no translation found for glanceable_hub_lockscreen_affordance_action_button_label (7636151133344609375) --> +    <skip />      <string name="accessibility_multi_user_switch_switcher" msgid="5330448341251092660">"વપરાશકર્તા સ્વિચ કરો"</string>      <string name="accessibility_multi_user_list_switcher" msgid="8574105376229857407">"પુલડાઉન મેનૂ"</string>      <string name="guest_exit_guest_dialog_message" msgid="8183450985628495709">"આ સત્રમાંની તમામ ઍપ અને ડેટા કાઢી નાખવામાં આવશે."</string> @@ -875,14 +878,10 @@      <string name="system_multitasking_splitscreen_focus_lhs" msgid="3164261844398662518">"વિભાજિત સ્ક્રીનનો ઉપયોગ કરતી વખતે ડાબી બાજુની કે ઉપરની ઍપ પર સ્વિચ કરો"</string>      <string name="system_multitasking_replace" msgid="7410071959803642125">"વિભાજિત સ્ક્રીન દરમિયાન: એક ઍપને બીજી ઍપમાં બદલો"</string>      <string name="system_multitasking_move_to_next_display" msgid="6169737557526976997">"સક્રિય વિન્ડોને ડિસ્પ્લેની વચ્ચે ખસેડો"</string> -    <!-- no translation found for system_desktop_mode_snap_left_window (8636204689945162298) --> -    <skip /> -    <!-- no translation found for system_desktop_mode_snap_right_window (2162560187639411929) --> -    <skip /> -    <!-- no translation found for system_desktop_mode_toggle_maximize_window (4084100093691768239) --> -    <skip /> -    <!-- no translation found for system_desktop_mode_minimize_window (1248714536732927092) --> -    <skip /> +    <string name="system_desktop_mode_snap_left_window" msgid="8636204689945162298">"વિંડોને ડાબી બાજુ ખસેડો"</string> +    <string name="system_desktop_mode_snap_right_window" msgid="2162560187639411929">"વિંડોને જમણી બાજુ ખસેડો"</string> +    <string name="system_desktop_mode_toggle_maximize_window" msgid="4084100093691768239">"વિંડો મોટી કરો"</string> +    <string name="system_desktop_mode_minimize_window" msgid="1248714536732927092">"વિંડો નાની કરો"</string>      <string name="keyboard_shortcut_group_input" msgid="6888282716546625610">"ઇનપુટ"</string>      <string name="input_switch_input_language_next" msgid="3782155659868227855">"આગલી ભાષા પર સ્વિચ કરો"</string>      <string name="input_switch_input_language_previous" msgid="6043341362202336623">"પાછલી ભાષા પર સ્વિચ કરો"</string> @@ -1419,7 +1418,6 @@      <string name="shortcut_helper_category_system_controls" msgid="3153344561395751020">"સિસ્ટમના નિયંત્રણો"</string>      <string name="shortcut_helper_category_system_apps" msgid="6001757545472556810">"સિસ્ટમ ઍપ"</string>      <string name="shortcut_helper_category_multitasking" msgid="7413381961404090136">"એકથી વધુ કાર્યો કરવા"</string> -    <string name="shortcutHelper_category_recent_apps" msgid="7918731953612377145">"તાજેતરની ઍપ"</string>      <string name="shortcutHelper_category_split_screen" msgid="1159669813444812244">"સ્ક્રીનને વિભાજિત કરો"</string>      <string name="shortcut_helper_category_input" msgid="8674018654124839566">"ઇનપુટ"</string>      <string name="shortcut_helper_category_app_shortcuts" msgid="8010249408308587117">"ઍપ શૉર્ટકટ"</string> @@ -1428,25 +1426,31 @@      <string name="shortcut_helper_title" msgid="8567500639300970049">"કીબોર્ડ શૉર્ટકટ"</string>      <string name="shortcut_helper_customize_mode_title" msgid="1467657117101096033">"કીબોર્ડ શૉર્ટકટને કસ્ટમાઇઝ કરો"</string>      <string name="shortcut_customize_mode_remove_shortcut_dialog_title" msgid="7106420484940737208">"શું શૉર્ટકટ કાઢી નાખીએ?"</string> +    <!-- no translation found for shortcut_customize_mode_reset_shortcut_dialog_title (8131184731313717780) --> +    <skip />      <string name="shortcut_customize_mode_add_shortcut_description" msgid="6866025005347407696">"શૉર્ટકટ સોંપવા માટે કી દબાવો"</string>      <string name="shortcut_customize_mode_remove_shortcut_description" msgid="6851287900585057128">"આ તમારા કસ્ટમ શૉર્ટકટને કાયમી રીતે ડિલીટ કરશે."</string> +    <!-- no translation found for shortcut_customize_mode_reset_shortcut_description (2081849715634358684) --> +    <skip />      <string name="shortcut_helper_search_placeholder" msgid="5488547526269871819">"શૉર્ટકટ શોધો"</string>      <string name="shortcut_helper_no_search_results" msgid="8554756497996692160">"કોઈ શોધ પરિણામો નથી"</string>      <string name="shortcut_helper_content_description_collapse_icon" msgid="8028015738431664954">"\'નાનું કરો\'નું આઇકન"</string>      <string name="shortcut_helper_content_description_meta_key" msgid="3989315044342124818">"ઍક્શન અથવા મેટા કીનું આઇકન"</string>      <string name="shortcut_helper_content_description_plus_icon" msgid="6152683734278299020">"પ્લસનું આઇકન"</string>      <string name="shortcut_helper_customize_button_text" msgid="3124983502748069338">"કસ્ટમાઇઝ કરો"</string> +    <!-- no translation found for shortcut_helper_reset_button_text (2548243844050633472) --> +    <skip />      <string name="shortcut_helper_done_button_text" msgid="7249905942125386191">"થઈ ગયું"</string>      <string name="shortcut_helper_content_description_expand_icon" msgid="1084435697860417390">"\'મોટું કરો\'નું આઇકન"</string>      <string name="shortcut_helper_key_combinations_or_separator" msgid="7082902112102125540">"અથવા"</string> -    <!-- no translation found for shortcut_helper_key_combinations_and_conjunction (6138186504075880224) --> -    <skip /> -    <!-- no translation found for shortcut_helper_key_combinations_forward_slash (1238652537199346970) --> -    <skip /> +    <string name="shortcut_helper_key_combinations_and_conjunction" msgid="6138186504075880224">"વત્તા"</string> +    <string name="shortcut_helper_key_combinations_forward_slash" msgid="1238652537199346970">"ફૉરવર્ડ સ્લૅશ"</string>      <string name="shortcut_helper_content_description_drag_handle" msgid="5092426406009848110">"ઑબ્જેક્ટ ખેંચવાનું હૅન્ડલ"</string>      <string name="shortcut_helper_keyboard_settings_buttons_label" msgid="6720967595915985259">"કીબોર્ડના સેટિંગ"</string>      <string name="shortcut_helper_customize_dialog_set_shortcut_button_label" msgid="4754492225010429382">"શૉર્ટકટ સેટ કરો"</string>      <string name="shortcut_helper_customize_dialog_remove_button_label" msgid="6546386970440176552">"કાઢી નાખો"</string> +    <!-- no translation found for shortcut_helper_customize_dialog_reset_button_label (7645535254306312685) --> +    <skip />      <string name="shortcut_helper_customize_dialog_cancel_button_label" msgid="5595546460431741178">"રદ કરો"</string>      <string name="shortcut_helper_add_shortcut_dialog_placeholder" msgid="9154297849458741995">"કી દબાવો"</string>      <string name="shortcut_customizer_key_combination_in_use_error_message" msgid="7693234470526626327">"કી સંયોજન પેહલેથી ઉપયોગમાં છે. અન્ય કી અજમાવી જુઓ."</string> diff --git a/packages/SystemUI/res/values-hi/strings.xml b/packages/SystemUI/res/values-hi/strings.xml index fafb045c5b45..474014ce3cea 100644 --- a/packages/SystemUI/res/values-hi/strings.xml +++ b/packages/SystemUI/res/values-hi/strings.xml @@ -529,7 +529,10 @@      <string name="communal_widgets_disclaimer_text" msgid="1423545475160506349">"किसी विजेट से कोई ऐप्लिकेशन खोलने के लिए, आपको अपनी पहचान की पुष्टि करनी होगी. ध्यान रखें कि आपके टैबलेट के लॉक होने पर भी, कोई व्यक्ति विजेट देख सकता है. ऐसा हो सकता है कि कुछ विजेट, लॉक स्क्रीन पर दिखाने के लिए न बने हों. इन्हें लॉक स्क्रीन पर जोड़ना असुरक्षित हो सकता है."</string>      <string name="communal_widgets_disclaimer_button" msgid="4423059765740780753">"ठीक है"</string>      <string name="glanceable_hub_lockscreen_affordance_label" msgid="1461611028615752141">"विजेट"</string> -    <string name="glanceable_hub_lockscreen_affordance_disabled_text" msgid="511359420883794513">"लॉक स्क्रीन पर शॉर्टकट के तौर पर विजेट जोड़ने के लिए, पक्का करें कि सेटिंग में यह सुविधा चालू हो."</string> +    <!-- no translation found for glanceable_hub_lockscreen_affordance_disabled_text (599170482297578735) --> +    <skip /> +    <!-- no translation found for glanceable_hub_lockscreen_affordance_action_button_label (7636151133344609375) --> +    <skip />      <string name="accessibility_multi_user_switch_switcher" msgid="5330448341251092660">"उपयोगकर्ता बदलें"</string>      <string name="accessibility_multi_user_list_switcher" msgid="8574105376229857407">"पुलडाउन मेन्यू"</string>      <string name="guest_exit_guest_dialog_message" msgid="8183450985628495709">"इस सेशन के सभी ऐप्लिकेशन और डेटा को हटा दिया जाएगा."</string> @@ -875,14 +878,10 @@      <string name="system_multitasking_splitscreen_focus_lhs" msgid="3164261844398662518">"स्प्लिट स्क्रीन पर, बाईं ओर या ऊपर के ऐप पर स्विच करने के लिए"</string>      <string name="system_multitasking_replace" msgid="7410071959803642125">"स्प्लिट स्क्रीन के दौरान: एक ऐप्लिकेशन को दूसरे ऐप्लिकेशन से बदलें"</string>      <string name="system_multitasking_move_to_next_display" msgid="6169737557526976997">"ऐक्टिव विंडो को एक से दूसरे डिसप्ले पर स्विच करें"</string> -    <!-- no translation found for system_desktop_mode_snap_left_window (8636204689945162298) --> -    <skip /> -    <!-- no translation found for system_desktop_mode_snap_right_window (2162560187639411929) --> -    <skip /> -    <!-- no translation found for system_desktop_mode_toggle_maximize_window (4084100093691768239) --> -    <skip /> -    <!-- no translation found for system_desktop_mode_minimize_window (1248714536732927092) --> -    <skip /> +    <string name="system_desktop_mode_snap_left_window" msgid="8636204689945162298">"विंडो को बाईं ओर ले जाएं"</string> +    <string name="system_desktop_mode_snap_right_window" msgid="2162560187639411929">"विंडो को दाईं ओर ले जाएं"</string> +    <string name="system_desktop_mode_toggle_maximize_window" msgid="4084100093691768239">"विंडो को बड़ा करें"</string> +    <string name="system_desktop_mode_minimize_window" msgid="1248714536732927092">"विंडो को छोटा करें"</string>      <string name="keyboard_shortcut_group_input" msgid="6888282716546625610">"इनपुट"</string>      <string name="input_switch_input_language_next" msgid="3782155659868227855">"अगली भाषा पर स्विच करने के लिए"</string>      <string name="input_switch_input_language_previous" msgid="6043341362202336623">"पिछली भाषा पर स्विच करने के लिए"</string> @@ -1419,7 +1418,6 @@      <string name="shortcut_helper_category_system_controls" msgid="3153344561395751020">"सिस्टम से जुड़े कंट्रोल"</string>      <string name="shortcut_helper_category_system_apps" msgid="6001757545472556810">"सिस्टम के ऐप्लिकेशन"</string>      <string name="shortcut_helper_category_multitasking" msgid="7413381961404090136">"मल्टीटास्किंग (एक साथ कई काम करना)"</string> -    <string name="shortcutHelper_category_recent_apps" msgid="7918731953612377145">"हाल ही में इस्तेमाल किए गए ऐप्लिकेशन"</string>      <string name="shortcutHelper_category_split_screen" msgid="1159669813444812244">"स्प्लिट स्क्रीन"</string>      <string name="shortcut_helper_category_input" msgid="8674018654124839566">"इनपुट"</string>      <string name="shortcut_helper_category_app_shortcuts" msgid="8010249408308587117">"ऐप शॉर्टकट"</string> @@ -1428,25 +1426,31 @@      <string name="shortcut_helper_title" msgid="8567500639300970049">"कीबोर्ड शॉर्टकट"</string>      <string name="shortcut_helper_customize_mode_title" msgid="1467657117101096033">"कीबोर्ड शॉर्टकट को पसंद के मुताबिक बनाएं"</string>      <string name="shortcut_customize_mode_remove_shortcut_dialog_title" msgid="7106420484940737208">"क्या आपको शॉर्टकट हटाना है?"</string> +    <!-- no translation found for shortcut_customize_mode_reset_shortcut_dialog_title (8131184731313717780) --> +    <skip />      <string name="shortcut_customize_mode_add_shortcut_description" msgid="6866025005347407696">"शॉर्टकट असाइन करने के लिए बटन दबाएं"</string>      <string name="shortcut_customize_mode_remove_shortcut_description" msgid="6851287900585057128">"ऐसा करने से, आपका कस्टम शॉर्टकट हमेशा के लिए मिट जाएगा."</string> +    <!-- no translation found for shortcut_customize_mode_reset_shortcut_description (2081849715634358684) --> +    <skip />      <string name="shortcut_helper_search_placeholder" msgid="5488547526269871819">"शॉर्टकट खोजें"</string>      <string name="shortcut_helper_no_search_results" msgid="8554756497996692160">"खोज का कोई नतीजा नहीं मिला"</string>      <string name="shortcut_helper_content_description_collapse_icon" msgid="8028015738431664954">"छोटा करने का आइकॉन"</string>      <string name="shortcut_helper_content_description_meta_key" msgid="3989315044342124818">"ऐक्शन या मेटा बटन का आइकॉन"</string>      <string name="shortcut_helper_content_description_plus_icon" msgid="6152683734278299020">"प्लस का आइकॉन"</string>      <string name="shortcut_helper_customize_button_text" msgid="3124983502748069338">"पसंद के मुताबिक बनाएं"</string> +    <!-- no translation found for shortcut_helper_reset_button_text (2548243844050633472) --> +    <skip />      <string name="shortcut_helper_done_button_text" msgid="7249905942125386191">"हो गया"</string>      <string name="shortcut_helper_content_description_expand_icon" msgid="1084435697860417390">"बड़ा करने का आइकॉन"</string>      <string name="shortcut_helper_key_combinations_or_separator" msgid="7082902112102125540">"या"</string> -    <!-- no translation found for shortcut_helper_key_combinations_and_conjunction (6138186504075880224) --> -    <skip /> -    <!-- no translation found for shortcut_helper_key_combinations_forward_slash (1238652537199346970) --> -    <skip /> +    <string name="shortcut_helper_key_combinations_and_conjunction" msgid="6138186504075880224">"प्लस"</string> +    <string name="shortcut_helper_key_combinations_forward_slash" msgid="1238652537199346970">"फ़ॉरवर्ड स्लैश"</string>      <string name="shortcut_helper_content_description_drag_handle" msgid="5092426406009848110">"खींचकर छोड़ने वाला हैंडल"</string>      <string name="shortcut_helper_keyboard_settings_buttons_label" msgid="6720967595915985259">"कीबोर्ड सेटिंग"</string>      <string name="shortcut_helper_customize_dialog_set_shortcut_button_label" msgid="4754492225010429382">"शॉर्टकट सेट करें"</string>      <string name="shortcut_helper_customize_dialog_remove_button_label" msgid="6546386970440176552">"हटाएं"</string> +    <!-- no translation found for shortcut_helper_customize_dialog_reset_button_label (7645535254306312685) --> +    <skip />      <string name="shortcut_helper_customize_dialog_cancel_button_label" msgid="5595546460431741178">"रद्द करें"</string>      <string name="shortcut_helper_add_shortcut_dialog_placeholder" msgid="9154297849458741995">"बटन दबाएं"</string>      <string name="shortcut_customizer_key_combination_in_use_error_message" msgid="7693234470526626327">"बटन का यह कॉम्बिनेशन पहले से इस्तेमाल किया जा रहा है. कोई दूसरा कॉम्बिनेशन आज़माएं."</string> diff --git a/packages/SystemUI/res/values-hr/strings.xml b/packages/SystemUI/res/values-hr/strings.xml index d1be021d49e0..35996ea1c1c9 100644 --- a/packages/SystemUI/res/values-hr/strings.xml +++ b/packages/SystemUI/res/values-hr/strings.xml @@ -529,7 +529,10 @@      <string name="communal_widgets_disclaimer_text" msgid="1423545475160506349">"Da biste otvorili aplikaciju pomoću widgeta, trebate potvrditi da ste to vi. Također napominjemo da ih svatko može vidjeti, čak i ako je vaš tablet zaključan. Neki widgeti možda nisu namijenjeni za zaključani zaslon, pa ih možda nije sigurno dodati ovdje."</string>      <string name="communal_widgets_disclaimer_button" msgid="4423059765740780753">"Shvaćam"</string>      <string name="glanceable_hub_lockscreen_affordance_label" msgid="1461611028615752141">"Widgeti"</string> -    <string name="glanceable_hub_lockscreen_affordance_disabled_text" msgid="511359420883794513">"Da biste dodali widgete na zaključani zaslon kao prečac, provjerite jesu li omogućeni u postavkama."</string> +    <!-- no translation found for glanceable_hub_lockscreen_affordance_disabled_text (599170482297578735) --> +    <skip /> +    <!-- no translation found for glanceable_hub_lockscreen_affordance_action_button_label (7636151133344609375) --> +    <skip />      <string name="accessibility_multi_user_switch_switcher" msgid="5330448341251092660">"Promjena korisnika"</string>      <string name="accessibility_multi_user_list_switcher" msgid="8574105376229857407">"padajući izbornik"</string>      <string name="guest_exit_guest_dialog_message" msgid="8183450985628495709">"Izbrisat će se sve aplikacije i podaci u ovoj sesiji."</string> @@ -875,14 +878,10 @@      <string name="system_multitasking_splitscreen_focus_lhs" msgid="3164261844398662518">"Prelazak na aplikaciju slijeva ili iznad uz podijeljeni zaslon"</string>      <string name="system_multitasking_replace" msgid="7410071959803642125">"Tijekom podijeljenog zaslona: zamijeni aplikaciju drugom"</string>      <string name="system_multitasking_move_to_next_display" msgid="6169737557526976997">"Premještanje aktivnog prozora između zaslona"</string> -    <!-- no translation found for system_desktop_mode_snap_left_window (8636204689945162298) --> -    <skip /> -    <!-- no translation found for system_desktop_mode_snap_right_window (2162560187639411929) --> -    <skip /> -    <!-- no translation found for system_desktop_mode_toggle_maximize_window (4084100093691768239) --> -    <skip /> -    <!-- no translation found for system_desktop_mode_minimize_window (1248714536732927092) --> -    <skip /> +    <string name="system_desktop_mode_snap_left_window" msgid="8636204689945162298">"Premještanje prozora ulijevo"</string> +    <string name="system_desktop_mode_snap_right_window" msgid="2162560187639411929">"Premještanje prozora udesno"</string> +    <string name="system_desktop_mode_toggle_maximize_window" msgid="4084100093691768239">"Maksimiziranje prozora"</string> +    <string name="system_desktop_mode_minimize_window" msgid="1248714536732927092">"Minimiziranje prozora"</string>      <string name="keyboard_shortcut_group_input" msgid="6888282716546625610">"Unos"</string>      <string name="input_switch_input_language_next" msgid="3782155659868227855">"Prelazak na sljedeći jezik"</string>      <string name="input_switch_input_language_previous" msgid="6043341362202336623">"Prelazak na prethodni jezik"</string> @@ -1419,7 +1418,6 @@      <string name="shortcut_helper_category_system_controls" msgid="3153344561395751020">"Kontrole sustava"</string>      <string name="shortcut_helper_category_system_apps" msgid="6001757545472556810">"Aplikacije sustava"</string>      <string name="shortcut_helper_category_multitasking" msgid="7413381961404090136">"Obavljanje više zadataka"</string> -    <string name="shortcutHelper_category_recent_apps" msgid="7918731953612377145">"Nedavne aplikacije"</string>      <string name="shortcutHelper_category_split_screen" msgid="1159669813444812244">"Podijeljeni zaslon"</string>      <string name="shortcut_helper_category_input" msgid="8674018654124839566">"Unos"</string>      <string name="shortcut_helper_category_app_shortcuts" msgid="8010249408308587117">"Prečaci aplikacija"</string> @@ -1428,25 +1426,31 @@      <string name="shortcut_helper_title" msgid="8567500639300970049">"Tipkovni prečaci"</string>      <string name="shortcut_helper_customize_mode_title" msgid="1467657117101096033">"Prilagodba tipkovnih prečaca"</string>      <string name="shortcut_customize_mode_remove_shortcut_dialog_title" msgid="7106420484940737208">"Želite li ukloniti prečac?"</string> +    <!-- no translation found for shortcut_customize_mode_reset_shortcut_dialog_title (8131184731313717780) --> +    <skip />      <string name="shortcut_customize_mode_add_shortcut_description" msgid="6866025005347407696">"Pritisnite tipku da biste dodijelili prečac"</string>      <string name="shortcut_customize_mode_remove_shortcut_description" msgid="6851287900585057128">"Time će se vaš prilagođeni prečac trajno izbrisati."</string> +    <!-- no translation found for shortcut_customize_mode_reset_shortcut_description (2081849715634358684) --> +    <skip />      <string name="shortcut_helper_search_placeholder" msgid="5488547526269871819">"Prečaci za pretraživanje"</string>      <string name="shortcut_helper_no_search_results" msgid="8554756497996692160">"Nema rezultata pretraživanja"</string>      <string name="shortcut_helper_content_description_collapse_icon" msgid="8028015738431664954">"Ikona za sažimanje"</string>      <string name="shortcut_helper_content_description_meta_key" msgid="3989315044342124818">"Ikona tipke za radnju odnosno meta tipka"</string>      <string name="shortcut_helper_content_description_plus_icon" msgid="6152683734278299020">"Ikona plusa"</string>      <string name="shortcut_helper_customize_button_text" msgid="3124983502748069338">"Prilagodi"</string> +    <!-- no translation found for shortcut_helper_reset_button_text (2548243844050633472) --> +    <skip />      <string name="shortcut_helper_done_button_text" msgid="7249905942125386191">"Gotovo"</string>      <string name="shortcut_helper_content_description_expand_icon" msgid="1084435697860417390">"Ikona za proširivanje"</string>      <string name="shortcut_helper_key_combinations_or_separator" msgid="7082902112102125540">"ili"</string> -    <!-- no translation found for shortcut_helper_key_combinations_and_conjunction (6138186504075880224) --> -    <skip /> -    <!-- no translation found for shortcut_helper_key_combinations_forward_slash (1238652537199346970) --> -    <skip /> +    <string name="shortcut_helper_key_combinations_and_conjunction" msgid="6138186504075880224">"plus"</string> +    <string name="shortcut_helper_key_combinations_forward_slash" msgid="1238652537199346970">"kosa crta"</string>      <string name="shortcut_helper_content_description_drag_handle" msgid="5092426406009848110">"Marker za povlačenje"</string>      <string name="shortcut_helper_keyboard_settings_buttons_label" msgid="6720967595915985259">"Postavke tipkovnice"</string>      <string name="shortcut_helper_customize_dialog_set_shortcut_button_label" msgid="4754492225010429382">"Postavite prečac"</string>      <string name="shortcut_helper_customize_dialog_remove_button_label" msgid="6546386970440176552">"Ukloni"</string> +    <!-- no translation found for shortcut_helper_customize_dialog_reset_button_label (7645535254306312685) --> +    <skip />      <string name="shortcut_helper_customize_dialog_cancel_button_label" msgid="5595546460431741178">"Odustani"</string>      <string name="shortcut_helper_add_shortcut_dialog_placeholder" msgid="9154297849458741995">"Pritisnite tipku"</string>      <string name="shortcut_customizer_key_combination_in_use_error_message" msgid="7693234470526626327">"Kombinacija tipki već se upotrebljava. Pokušajte s drugom tipkom."</string> diff --git a/packages/SystemUI/res/values-hu/strings.xml b/packages/SystemUI/res/values-hu/strings.xml index 4c5c36491359..c807aee30bb1 100644 --- a/packages/SystemUI/res/values-hu/strings.xml +++ b/packages/SystemUI/res/values-hu/strings.xml @@ -529,7 +529,10 @@      <string name="communal_widgets_disclaimer_text" msgid="1423545475160506349">"Ha modul használatával szeretne megnyitni egy alkalmazást, igazolnia kell a személyazonosságát. Ne felejtse továbbá, hogy bárki megtekintheti a modulokat, még akkor is, amikor zárolva van a táblagép. Előfordulhat, hogy bizonyos modulokat nem a lezárási képernyőn való használatra terveztek, ezért nem biztonságos a hozzáadásuk."</string>      <string name="communal_widgets_disclaimer_button" msgid="4423059765740780753">"Értem"</string>      <string name="glanceable_hub_lockscreen_affordance_label" msgid="1461611028615752141">"Modulok"</string> -    <string name="glanceable_hub_lockscreen_affordance_disabled_text" msgid="511359420883794513">"Ha szeretné gyorsparancsként hozzáadni a Modulok a lezárási képernyőn funkciót, győződjön meg arról, hogy a funkció engedélyezve van a beállításokban."</string> +    <!-- no translation found for glanceable_hub_lockscreen_affordance_disabled_text (599170482297578735) --> +    <skip /> +    <!-- no translation found for glanceable_hub_lockscreen_affordance_action_button_label (7636151133344609375) --> +    <skip />      <string name="accessibility_multi_user_switch_switcher" msgid="5330448341251092660">"Felhasználóváltás"</string>      <string name="accessibility_multi_user_list_switcher" msgid="8574105376229857407">"lehúzható menü"</string>      <string name="guest_exit_guest_dialog_message" msgid="8183450985628495709">"A munkamenetben található összes alkalmazás és adat törlődni fog."</string> @@ -875,14 +878,10 @@      <string name="system_multitasking_splitscreen_focus_lhs" msgid="3164261844398662518">"Váltás a bal oldalt, illetve fent lévő appra osztott képernyő esetén"</string>      <string name="system_multitasking_replace" msgid="7410071959803642125">"Osztott képernyőn: az egyik alkalmazás lecserélése egy másikra"</string>      <string name="system_multitasking_move_to_next_display" msgid="6169737557526976997">"Aktív ablak áthelyezése egyik kijelzőről a másikra"</string> -    <!-- no translation found for system_desktop_mode_snap_left_window (8636204689945162298) --> -    <skip /> -    <!-- no translation found for system_desktop_mode_snap_right_window (2162560187639411929) --> -    <skip /> -    <!-- no translation found for system_desktop_mode_toggle_maximize_window (4084100093691768239) --> -    <skip /> -    <!-- no translation found for system_desktop_mode_minimize_window (1248714536732927092) --> -    <skip /> +    <string name="system_desktop_mode_snap_left_window" msgid="8636204689945162298">"Ablak balra mozgatása"</string> +    <string name="system_desktop_mode_snap_right_window" msgid="2162560187639411929">"Ablak mozgatása jobbra"</string> +    <string name="system_desktop_mode_toggle_maximize_window" msgid="4084100093691768239">"Ablak teljes méretre állítása"</string> +    <string name="system_desktop_mode_minimize_window" msgid="1248714536732927092">"Ablak kis méretre állítása"</string>      <string name="keyboard_shortcut_group_input" msgid="6888282716546625610">"Bevitel"</string>      <string name="input_switch_input_language_next" msgid="3782155659868227855">"Váltás a következő nyelvre"</string>      <string name="input_switch_input_language_previous" msgid="6043341362202336623">"Váltás az előző nyelvre"</string> @@ -1419,7 +1418,6 @@      <string name="shortcut_helper_category_system_controls" msgid="3153344561395751020">"Rendszervezérlők"</string>      <string name="shortcut_helper_category_system_apps" msgid="6001757545472556810">"Rendszeralkalmazások"</string>      <string name="shortcut_helper_category_multitasking" msgid="7413381961404090136">"Multitasking"</string> -    <string name="shortcutHelper_category_recent_apps" msgid="7918731953612377145">"Legutóbbi alkalmazások"</string>      <string name="shortcutHelper_category_split_screen" msgid="1159669813444812244">"Osztott képernyő"</string>      <string name="shortcut_helper_category_input" msgid="8674018654124839566">"Bevitel"</string>      <string name="shortcut_helper_category_app_shortcuts" msgid="8010249408308587117">"Alkalmazásikonok"</string> @@ -1428,25 +1426,31 @@      <string name="shortcut_helper_title" msgid="8567500639300970049">"Billentyűparancsok"</string>      <string name="shortcut_helper_customize_mode_title" msgid="1467657117101096033">"A billentyűparancsok személyre szabása"</string>      <string name="shortcut_customize_mode_remove_shortcut_dialog_title" msgid="7106420484940737208">"Eltávolítja a billentyűparancsot?"</string> +    <!-- no translation found for shortcut_customize_mode_reset_shortcut_dialog_title (8131184731313717780) --> +    <skip />      <string name="shortcut_customize_mode_add_shortcut_description" msgid="6866025005347407696">"Nyomja meg a billentyűt a billentyűparancs hozzárendeléséhez"</string>      <string name="shortcut_customize_mode_remove_shortcut_description" msgid="6851287900585057128">"Ezzel véglegesen törli az egyéni billentyűparancsot."</string> +    <!-- no translation found for shortcut_customize_mode_reset_shortcut_description (2081849715634358684) --> +    <skip />      <string name="shortcut_helper_search_placeholder" msgid="5488547526269871819">"Billentyűparancsok keresése"</string>      <string name="shortcut_helper_no_search_results" msgid="8554756497996692160">"Nincsenek keresési találatok"</string>      <string name="shortcut_helper_content_description_collapse_icon" msgid="8028015738431664954">"Összecsukás ikon"</string>      <string name="shortcut_helper_content_description_meta_key" msgid="3989315044342124818">"Művelet vagy Meta billentyű ikonja"</string>      <string name="shortcut_helper_content_description_plus_icon" msgid="6152683734278299020">"Pluszikon"</string>      <string name="shortcut_helper_customize_button_text" msgid="3124983502748069338">"Személyre szabás"</string> +    <!-- no translation found for shortcut_helper_reset_button_text (2548243844050633472) --> +    <skip />      <string name="shortcut_helper_done_button_text" msgid="7249905942125386191">"Kész"</string>      <string name="shortcut_helper_content_description_expand_icon" msgid="1084435697860417390">"Kibontás ikon"</string>      <string name="shortcut_helper_key_combinations_or_separator" msgid="7082902112102125540">"vagy"</string> -    <!-- no translation found for shortcut_helper_key_combinations_and_conjunction (6138186504075880224) --> -    <skip /> -    <!-- no translation found for shortcut_helper_key_combinations_forward_slash (1238652537199346970) --> -    <skip /> +    <string name="shortcut_helper_key_combinations_and_conjunction" msgid="6138186504075880224">"plusz"</string> +    <string name="shortcut_helper_key_combinations_forward_slash" msgid="1238652537199346970">"törtvonal"</string>      <string name="shortcut_helper_content_description_drag_handle" msgid="5092426406009848110">"Fogópont"</string>      <string name="shortcut_helper_keyboard_settings_buttons_label" msgid="6720967595915985259">"Billentyűzetbeállítások"</string>      <string name="shortcut_helper_customize_dialog_set_shortcut_button_label" msgid="4754492225010429382">"Billentyűparancs beállítása"</string>      <string name="shortcut_helper_customize_dialog_remove_button_label" msgid="6546386970440176552">"Eltávolítás"</string> +    <!-- no translation found for shortcut_helper_customize_dialog_reset_button_label (7645535254306312685) --> +    <skip />      <string name="shortcut_helper_customize_dialog_cancel_button_label" msgid="5595546460431741178">"Mégse"</string>      <string name="shortcut_helper_add_shortcut_dialog_placeholder" msgid="9154297849458741995">"Nyomja le a billentyűt"</string>      <string name="shortcut_customizer_key_combination_in_use_error_message" msgid="7693234470526626327">"A billentyűkombináció már használatban van. Próbálkozzon másik billentyűvel."</string> diff --git a/packages/SystemUI/res/values-hy/strings.xml b/packages/SystemUI/res/values-hy/strings.xml index 065670098489..5603aff7f059 100644 --- a/packages/SystemUI/res/values-hy/strings.xml +++ b/packages/SystemUI/res/values-hy/strings.xml @@ -529,7 +529,10 @@      <string name="communal_widgets_disclaimer_text" msgid="1423545475160506349">"Վիջեթի միջոցով հավելված բացելու համար դուք պետք է հաստատեք ձեր ինքնությունը։ Նաև նկատի ունեցեք, որ ցանկացած ոք կարող է դիտել վիջեթները, նույնիսկ երբ ձեր պլանշետը կողպված է։ Որոշ վիջեթներ կարող են նախատեսված չլինել ձեր կողպէկրանի համար, և այստեղ դրանց ավելացնելը կարող է վտանգավոր լինել։"</string>      <string name="communal_widgets_disclaimer_button" msgid="4423059765740780753">"Եղավ"</string>      <string name="glanceable_hub_lockscreen_affordance_label" msgid="1461611028615752141">"Վիջեթներ"</string> -    <string name="glanceable_hub_lockscreen_affordance_disabled_text" msgid="511359420883794513">"Վիջեթները կողպէկրանին որպես դյուրանցում ավելացնելու համար համոզվեք, որ գործառույթը միացված է կարգավորումներում։"</string> +    <!-- no translation found for glanceable_hub_lockscreen_affordance_disabled_text (599170482297578735) --> +    <skip /> +    <!-- no translation found for glanceable_hub_lockscreen_affordance_action_button_label (7636151133344609375) --> +    <skip />      <string name="accessibility_multi_user_switch_switcher" msgid="5330448341251092660">"Անջատել օգտվողին"</string>      <string name="accessibility_multi_user_list_switcher" msgid="8574105376229857407">"իջնող ընտրացանկ"</string>      <string name="guest_exit_guest_dialog_message" msgid="8183450985628495709">"Այս աշխատաշրջանի բոլոր հավելվածներն ու տվյալները կջնջվեն:"</string> @@ -875,14 +878,10 @@      <string name="system_multitasking_splitscreen_focus_lhs" msgid="3164261844398662518">"Անցեք աջ կողմի կամ վերևի հավելվածին տրոհված էկրանի միջոցով"</string>      <string name="system_multitasking_replace" msgid="7410071959803642125">"Տրոհված էկրանի ռեժիմում մեկ հավելվածը փոխարինել մյուսով"</string>      <string name="system_multitasking_move_to_next_display" msgid="6169737557526976997">"Տեղափոխել ակտիվ պատուհանը էկրանների միջև"</string> -    <!-- no translation found for system_desktop_mode_snap_left_window (8636204689945162298) --> -    <skip /> -    <!-- no translation found for system_desktop_mode_snap_right_window (2162560187639411929) --> -    <skip /> -    <!-- no translation found for system_desktop_mode_toggle_maximize_window (4084100093691768239) --> -    <skip /> -    <!-- no translation found for system_desktop_mode_minimize_window (1248714536732927092) --> -    <skip /> +    <string name="system_desktop_mode_snap_left_window" msgid="8636204689945162298">"Պատուհանը տեղափոխել ձախ"</string> +    <string name="system_desktop_mode_snap_right_window" msgid="2162560187639411929">"Պատուհանը տեղափոխել աջ"</string> +    <string name="system_desktop_mode_toggle_maximize_window" msgid="4084100093691768239">"Ծավալել պատուհանը"</string> +    <string name="system_desktop_mode_minimize_window" msgid="1248714536732927092">"Ծալել պատուհանը"</string>      <string name="keyboard_shortcut_group_input" msgid="6888282716546625610">"Ներածում"</string>      <string name="input_switch_input_language_next" msgid="3782155659868227855">"Անցնել հաջորդ լեզվին"</string>      <string name="input_switch_input_language_previous" msgid="6043341362202336623">"Անցնել նախորդ լեզվին"</string> @@ -1419,7 +1418,6 @@      <string name="shortcut_helper_category_system_controls" msgid="3153344561395751020">"Համակարգի կառավարման տարրեր"</string>      <string name="shortcut_helper_category_system_apps" msgid="6001757545472556810">"Համակարգային հավելվածներ"</string>      <string name="shortcut_helper_category_multitasking" msgid="7413381961404090136">"Բազմախնդրություն"</string> -    <string name="shortcutHelper_category_recent_apps" msgid="7918731953612377145">"Վերջին օգտագործած հավելվածները"</string>      <string name="shortcutHelper_category_split_screen" msgid="1159669813444812244">"Տրոհված էկրան"</string>      <string name="shortcut_helper_category_input" msgid="8674018654124839566">"Ներածում"</string>      <string name="shortcut_helper_category_app_shortcuts" msgid="8010249408308587117">"Հավելվածի դյուրանցումներ"</string> @@ -1428,25 +1426,31 @@      <string name="shortcut_helper_title" msgid="8567500639300970049">"Ստեղնային դյուրանցումներ"</string>      <string name="shortcut_helper_customize_mode_title" msgid="1467657117101096033">"Կարգավորեք ստեղնային դյուրանցումներ"</string>      <string name="shortcut_customize_mode_remove_shortcut_dialog_title" msgid="7106420484940737208">"Հեռացնե՞լ դյուրանցումը"</string> +    <!-- no translation found for shortcut_customize_mode_reset_shortcut_dialog_title (8131184731313717780) --> +    <skip />      <string name="shortcut_customize_mode_add_shortcut_description" msgid="6866025005347407696">"Սեղմեք որևէ ստեղն՝ դյուրանցում նշանակելու համար"</string>      <string name="shortcut_customize_mode_remove_shortcut_description" msgid="6851287900585057128">"Ձեր հատուկ դյուրանցումն ընդմիշտ կջնջվի։"</string> +    <!-- no translation found for shortcut_customize_mode_reset_shortcut_description (2081849715634358684) --> +    <skip />      <string name="shortcut_helper_search_placeholder" msgid="5488547526269871819">"Դյուրանցումների որոնում"</string>      <string name="shortcut_helper_no_search_results" msgid="8554756497996692160">"Որոնման արդյունքներ չկան"</string>      <string name="shortcut_helper_content_description_collapse_icon" msgid="8028015738431664954">"Ծալել պատկերակը"</string>      <string name="shortcut_helper_content_description_meta_key" msgid="3989315044342124818">"Գործողության կամ Meta ստեղնի պատկերակ"</string>      <string name="shortcut_helper_content_description_plus_icon" msgid="6152683734278299020">"Պլյուս պատկերակ"</string>      <string name="shortcut_helper_customize_button_text" msgid="3124983502748069338">"Կարգավորել"</string> +    <!-- no translation found for shortcut_helper_reset_button_text (2548243844050633472) --> +    <skip />      <string name="shortcut_helper_done_button_text" msgid="7249905942125386191">"Պատրաստ է"</string>      <string name="shortcut_helper_content_description_expand_icon" msgid="1084435697860417390">"Ծավալել պատկերակը"</string>      <string name="shortcut_helper_key_combinations_or_separator" msgid="7082902112102125540">"կամ"</string> -    <!-- no translation found for shortcut_helper_key_combinations_and_conjunction (6138186504075880224) --> -    <skip /> -    <!-- no translation found for shortcut_helper_key_combinations_forward_slash (1238652537199346970) --> -    <skip /> +    <string name="shortcut_helper_key_combinations_and_conjunction" msgid="6138186504075880224">"գումարած"</string> +    <string name="shortcut_helper_key_combinations_forward_slash" msgid="1238652537199346970">"շեղ գիծ"</string>      <string name="shortcut_helper_content_description_drag_handle" msgid="5092426406009848110">"Տեղափոխման նշիչ"</string>      <string name="shortcut_helper_keyboard_settings_buttons_label" msgid="6720967595915985259">"Ստեղնաշարի կարգավորումներ"</string>      <string name="shortcut_helper_customize_dialog_set_shortcut_button_label" msgid="4754492225010429382">"Ստեղծել դյուրանցում"</string>      <string name="shortcut_helper_customize_dialog_remove_button_label" msgid="6546386970440176552">"Հեռացնել"</string> +    <!-- no translation found for shortcut_helper_customize_dialog_reset_button_label (7645535254306312685) --> +    <skip />      <string name="shortcut_helper_customize_dialog_cancel_button_label" msgid="5595546460431741178">"Չեղարկել"</string>      <string name="shortcut_helper_add_shortcut_dialog_placeholder" msgid="9154297849458741995">"Սեղմեք որևէ ստեղն"</string>      <string name="shortcut_customizer_key_combination_in_use_error_message" msgid="7693234470526626327">"Ստեղների համակցությունն արդեն օգտագործվում է։ Ընտրեք այլ ստեղն։"</string> diff --git a/packages/SystemUI/res/values-in/strings.xml b/packages/SystemUI/res/values-in/strings.xml index da121671232b..3820ab749854 100644 --- a/packages/SystemUI/res/values-in/strings.xml +++ b/packages/SystemUI/res/values-in/strings.xml @@ -529,7 +529,10 @@      <string name="communal_widgets_disclaimer_text" msgid="1423545475160506349">"Untuk membuka aplikasi menggunakan widget, Anda perlu memverifikasi diri Anda. Selain itu, harap ingat bahwa siapa saja dapat melihatnya, bahkan saat tablet Anda terkunci. Beberapa widget mungkin tidak dirancang untuk layar kunci Anda dan mungkin tidak aman untuk ditambahkan di sini."</string>      <string name="communal_widgets_disclaimer_button" msgid="4423059765740780753">"Oke"</string>      <string name="glanceable_hub_lockscreen_affordance_label" msgid="1461611028615752141">"Widget"</string> -    <string name="glanceable_hub_lockscreen_affordance_disabled_text" msgid="511359420883794513">"Untuk menambahkan Widget di layar kunci sebagai pintasan, pastikan Widget diaktifkan di setelan."</string> +    <!-- no translation found for glanceable_hub_lockscreen_affordance_disabled_text (599170482297578735) --> +    <skip /> +    <!-- no translation found for glanceable_hub_lockscreen_affordance_action_button_label (7636151133344609375) --> +    <skip />      <string name="accessibility_multi_user_switch_switcher" msgid="5330448341251092660">"Beralih pengguna"</string>      <string name="accessibility_multi_user_list_switcher" msgid="8574105376229857407">"menu pulldown"</string>      <string name="guest_exit_guest_dialog_message" msgid="8183450985628495709">"Semua aplikasi dan data dalam sesi ini akan dihapus."</string> @@ -875,14 +878,10 @@      <string name="system_multitasking_splitscreen_focus_lhs" msgid="3164261844398662518">"Beralih ke aplikasi di bagian kiri atau atas saat menggunakan layar terpisah"</string>      <string name="system_multitasking_replace" msgid="7410071959803642125">"Dalam layar terpisah: ganti salah satu aplikasi dengan yang lain"</string>      <string name="system_multitasking_move_to_next_display" msgid="6169737557526976997">"Memindahkan jendela aktif dari satu layar ke layar lainnya"</string> -    <!-- no translation found for system_desktop_mode_snap_left_window (8636204689945162298) --> -    <skip /> -    <!-- no translation found for system_desktop_mode_snap_right_window (2162560187639411929) --> -    <skip /> -    <!-- no translation found for system_desktop_mode_toggle_maximize_window (4084100093691768239) --> -    <skip /> -    <!-- no translation found for system_desktop_mode_minimize_window (1248714536732927092) --> -    <skip /> +    <string name="system_desktop_mode_snap_left_window" msgid="8636204689945162298">"Memindahkan jendela ke kiri"</string> +    <string name="system_desktop_mode_snap_right_window" msgid="2162560187639411929">"Memindahkan jendela ke kanan"</string> +    <string name="system_desktop_mode_toggle_maximize_window" msgid="4084100093691768239">"Memaksimalkan jendela"</string> +    <string name="system_desktop_mode_minimize_window" msgid="1248714536732927092">"Meminimalkan jendela"</string>      <string name="keyboard_shortcut_group_input" msgid="6888282716546625610">"Input"</string>      <string name="input_switch_input_language_next" msgid="3782155659868227855">"Beralih ke bahasa berikutnya"</string>      <string name="input_switch_input_language_previous" msgid="6043341362202336623">"Beralih ke bahasa sebelumnya"</string> @@ -1419,7 +1418,6 @@      <string name="shortcut_helper_category_system_controls" msgid="3153344561395751020">"Kontrol sistem"</string>      <string name="shortcut_helper_category_system_apps" msgid="6001757545472556810">"Aplikasi sistem"</string>      <string name="shortcut_helper_category_multitasking" msgid="7413381961404090136">"Multitasking"</string> -    <string name="shortcutHelper_category_recent_apps" msgid="7918731953612377145">"Aplikasi terbaru"</string>      <string name="shortcutHelper_category_split_screen" msgid="1159669813444812244">"Layar terpisah"</string>      <string name="shortcut_helper_category_input" msgid="8674018654124839566">"Input"</string>      <string name="shortcut_helper_category_app_shortcuts" msgid="8010249408308587117">"Pintasan aplikasi"</string> @@ -1428,25 +1426,31 @@      <string name="shortcut_helper_title" msgid="8567500639300970049">"Pintasan keyboard"</string>      <string name="shortcut_helper_customize_mode_title" msgid="1467657117101096033">"Menyesuaikan pintasan keyboard"</string>      <string name="shortcut_customize_mode_remove_shortcut_dialog_title" msgid="7106420484940737208">"Hapus pintasan?"</string> +    <!-- no translation found for shortcut_customize_mode_reset_shortcut_dialog_title (8131184731313717780) --> +    <skip />      <string name="shortcut_customize_mode_add_shortcut_description" msgid="6866025005347407696">"Tekan tombol untuk menetapkan pintasan"</string>      <string name="shortcut_customize_mode_remove_shortcut_description" msgid="6851287900585057128">"Tindakan ini akan menghapus pintasan kustom Anda secara permanen."</string> +    <!-- no translation found for shortcut_customize_mode_reset_shortcut_description (2081849715634358684) --> +    <skip />      <string name="shortcut_helper_search_placeholder" msgid="5488547526269871819">"Telusuri pintasan"</string>      <string name="shortcut_helper_no_search_results" msgid="8554756497996692160">"Tidak ada hasil penelusuran"</string>      <string name="shortcut_helper_content_description_collapse_icon" msgid="8028015738431664954">"Ikon ciutkan"</string>      <string name="shortcut_helper_content_description_meta_key" msgid="3989315044342124818">"Ikon tombol Tindakan atau Meta"</string>      <string name="shortcut_helper_content_description_plus_icon" msgid="6152683734278299020">"Ikon plus"</string>      <string name="shortcut_helper_customize_button_text" msgid="3124983502748069338">"Sesuaikan"</string> +    <!-- no translation found for shortcut_helper_reset_button_text (2548243844050633472) --> +    <skip />      <string name="shortcut_helper_done_button_text" msgid="7249905942125386191">"Selesai"</string>      <string name="shortcut_helper_content_description_expand_icon" msgid="1084435697860417390">"Ikon luaskan"</string>      <string name="shortcut_helper_key_combinations_or_separator" msgid="7082902112102125540">"atau"</string> -    <!-- no translation found for shortcut_helper_key_combinations_and_conjunction (6138186504075880224) --> -    <skip /> -    <!-- no translation found for shortcut_helper_key_combinations_forward_slash (1238652537199346970) --> -    <skip /> +    <string name="shortcut_helper_key_combinations_and_conjunction" msgid="6138186504075880224">"plus"</string> +    <string name="shortcut_helper_key_combinations_forward_slash" msgid="1238652537199346970">"garis miring"</string>      <string name="shortcut_helper_content_description_drag_handle" msgid="5092426406009848110">"Handel geser"</string>      <string name="shortcut_helper_keyboard_settings_buttons_label" msgid="6720967595915985259">"Setelan Keyboard"</string>      <string name="shortcut_helper_customize_dialog_set_shortcut_button_label" msgid="4754492225010429382">"Setel pintasan"</string>      <string name="shortcut_helper_customize_dialog_remove_button_label" msgid="6546386970440176552">"Hapus"</string> +    <!-- no translation found for shortcut_helper_customize_dialog_reset_button_label (7645535254306312685) --> +    <skip />      <string name="shortcut_helper_customize_dialog_cancel_button_label" msgid="5595546460431741178">"Batal"</string>      <string name="shortcut_helper_add_shortcut_dialog_placeholder" msgid="9154297849458741995">"Tekan tombol"</string>      <string name="shortcut_customizer_key_combination_in_use_error_message" msgid="7693234470526626327">"Kombinasi tombol sudah digunakan. Coba tombol lain."</string> diff --git a/packages/SystemUI/res/values-is/strings.xml b/packages/SystemUI/res/values-is/strings.xml index cee3ef4f6f5b..931c3dc172a3 100644 --- a/packages/SystemUI/res/values-is/strings.xml +++ b/packages/SystemUI/res/values-is/strings.xml @@ -529,7 +529,10 @@      <string name="communal_widgets_disclaimer_text" msgid="1423545475160506349">"Þú þarft að staðfesta að þetta sért þú til að geta opnað forrit með græju. Hafðu einnig í huga að hver sem er getur skoðað þær, jafnvel þótt spjaldtölvan sé læst. Sumar græjur eru hugsanlega ekki ætlaðar fyrir lásskjá og því gæti verið óöruggt að bæta þeim við hér."</string>      <string name="communal_widgets_disclaimer_button" msgid="4423059765740780753">"Ég skil"</string>      <string name="glanceable_hub_lockscreen_affordance_label" msgid="1461611028615752141">"Græjur"</string> -    <string name="glanceable_hub_lockscreen_affordance_disabled_text" msgid="511359420883794513">"Til að bæta „Græjur á lásskjá“ við sem flýtileið skaltu ganga úr skugga um að kveikt sé á eiginleikanum í stillingunum."</string> +    <!-- no translation found for glanceable_hub_lockscreen_affordance_disabled_text (599170482297578735) --> +    <skip /> +    <!-- no translation found for glanceable_hub_lockscreen_affordance_action_button_label (7636151133344609375) --> +    <skip />      <string name="accessibility_multi_user_switch_switcher" msgid="5330448341251092660">"Skipta um notanda"</string>      <string name="accessibility_multi_user_list_switcher" msgid="8574105376229857407">"Fellivalmynd"</string>      <string name="guest_exit_guest_dialog_message" msgid="8183450985628495709">"Öllum forritum og gögnum í þessari lotu verður eytt."</string> @@ -1415,7 +1418,6 @@      <string name="shortcut_helper_category_system_controls" msgid="3153344561395751020">"Kerfisstýringar"</string>      <string name="shortcut_helper_category_system_apps" msgid="6001757545472556810">"Kerfisforrit"</string>      <string name="shortcut_helper_category_multitasking" msgid="7413381961404090136">"Fjölvinnsla"</string> -    <string name="shortcutHelper_category_recent_apps" msgid="7918731953612377145">"Nýleg forrit"</string>      <string name="shortcutHelper_category_split_screen" msgid="1159669813444812244">"Skjáskipting"</string>      <string name="shortcut_helper_category_input" msgid="8674018654124839566">"Innsláttur"</string>      <string name="shortcut_helper_category_app_shortcuts" msgid="8010249408308587117">"Flýtileiðir forrita"</string> @@ -1424,14 +1426,20 @@      <string name="shortcut_helper_title" msgid="8567500639300970049">"Flýtilyklar"</string>      <string name="shortcut_helper_customize_mode_title" msgid="1467657117101096033">"Sérsníddu flýtilykla"</string>      <string name="shortcut_customize_mode_remove_shortcut_dialog_title" msgid="7106420484940737208">"Fjarlægja flýtileið?"</string> +    <!-- no translation found for shortcut_customize_mode_reset_shortcut_dialog_title (8131184731313717780) --> +    <skip />      <string name="shortcut_customize_mode_add_shortcut_description" msgid="6866025005347407696">"Ýttu á lykil til að stilla flýtileið"</string>      <string name="shortcut_customize_mode_remove_shortcut_description" msgid="6851287900585057128">"Þetta eyðir sérsniðnu flýtileiðinni varanlega."</string> +    <!-- no translation found for shortcut_customize_mode_reset_shortcut_description (2081849715634358684) --> +    <skip />      <string name="shortcut_helper_search_placeholder" msgid="5488547526269871819">"Leita að flýtileiðum"</string>      <string name="shortcut_helper_no_search_results" msgid="8554756497996692160">"Engar leitarniðurstöður"</string>      <string name="shortcut_helper_content_description_collapse_icon" msgid="8028015738431664954">"Minnka tákn"</string>      <string name="shortcut_helper_content_description_meta_key" msgid="3989315044342124818">"Tákn lýsilykils (aðgerðarlykils)"</string>      <string name="shortcut_helper_content_description_plus_icon" msgid="6152683734278299020">"Plústákn"</string>      <string name="shortcut_helper_customize_button_text" msgid="3124983502748069338">"Sérsníða"</string> +    <!-- no translation found for shortcut_helper_reset_button_text (2548243844050633472) --> +    <skip />      <string name="shortcut_helper_done_button_text" msgid="7249905942125386191">"Lokið"</string>      <string name="shortcut_helper_content_description_expand_icon" msgid="1084435697860417390">"Stækka tákn"</string>      <string name="shortcut_helper_key_combinations_or_separator" msgid="7082902112102125540">"eða"</string> @@ -1441,6 +1449,8 @@      <string name="shortcut_helper_keyboard_settings_buttons_label" msgid="6720967595915985259">"Stillingar lyklaborðs"</string>      <string name="shortcut_helper_customize_dialog_set_shortcut_button_label" msgid="4754492225010429382">"Stilltu flýtileið"</string>      <string name="shortcut_helper_customize_dialog_remove_button_label" msgid="6546386970440176552">"Fjarlægja"</string> +    <!-- no translation found for shortcut_helper_customize_dialog_reset_button_label (7645535254306312685) --> +    <skip />      <string name="shortcut_helper_customize_dialog_cancel_button_label" msgid="5595546460431741178">"Hætta við"</string>      <string name="shortcut_helper_add_shortcut_dialog_placeholder" msgid="9154297849458741995">"Ýttu á lykil"</string>      <string name="shortcut_customizer_key_combination_in_use_error_message" msgid="7693234470526626327">"Lyklasamsetningin er þegar í notkun. Prófaðu annan lykil."</string> diff --git a/packages/SystemUI/res/values-it/strings.xml b/packages/SystemUI/res/values-it/strings.xml index bc6f262aa932..7c2fc4f5a0ed 100644 --- a/packages/SystemUI/res/values-it/strings.xml +++ b/packages/SystemUI/res/values-it/strings.xml @@ -529,7 +529,10 @@      <string name="communal_widgets_disclaimer_text" msgid="1423545475160506349">"Per aprire un\'app utilizzando un widget, dovrai verificare la tua identità. Inoltre tieni presente che chiunque può vederlo, anche quando il tablet è bloccato. Alcuni widget potrebbero non essere stati progettati per la schermata di blocco e potrebbe non essere sicuro aggiungerli qui."</string>      <string name="communal_widgets_disclaimer_button" msgid="4423059765740780753">"Ok"</string>      <string name="glanceable_hub_lockscreen_affordance_label" msgid="1461611028615752141">"Widget"</string> -    <string name="glanceable_hub_lockscreen_affordance_disabled_text" msgid="511359420883794513">"Per aggiungere Widget alla schermata di blocco come scorciatoia, assicurati che sia abilitata nelle impostazioni."</string> +    <!-- no translation found for glanceable_hub_lockscreen_affordance_disabled_text (599170482297578735) --> +    <skip /> +    <!-- no translation found for glanceable_hub_lockscreen_affordance_action_button_label (7636151133344609375) --> +    <skip />      <string name="accessibility_multi_user_switch_switcher" msgid="5330448341251092660">"Cambio utente"</string>      <string name="accessibility_multi_user_list_switcher" msgid="8574105376229857407">"menu a discesa"</string>      <string name="guest_exit_guest_dialog_message" msgid="8183450985628495709">"Tutte le app e i dati di questa sessione verranno eliminati."</string> @@ -1415,7 +1418,6 @@      <string name="shortcut_helper_category_system_controls" msgid="3153344561395751020">"Controlli di sistema"</string>      <string name="shortcut_helper_category_system_apps" msgid="6001757545472556810">"App di sistema"</string>      <string name="shortcut_helper_category_multitasking" msgid="7413381961404090136">"Multitasking"</string> -    <string name="shortcutHelper_category_recent_apps" msgid="7918731953612377145">"App recenti"</string>      <string name="shortcutHelper_category_split_screen" msgid="1159669813444812244">"Schermo diviso"</string>      <string name="shortcut_helper_category_input" msgid="8674018654124839566">"Input"</string>      <string name="shortcut_helper_category_app_shortcuts" msgid="8010249408308587117">"Scorciatoie app"</string> @@ -1424,14 +1426,20 @@      <string name="shortcut_helper_title" msgid="8567500639300970049">"Scorciatoie da tastiera"</string>      <string name="shortcut_helper_customize_mode_title" msgid="1467657117101096033">"Personalizza scorciatoie da tastiera"</string>      <string name="shortcut_customize_mode_remove_shortcut_dialog_title" msgid="7106420484940737208">"Rimuovere scorciatoia?"</string> +    <!-- no translation found for shortcut_customize_mode_reset_shortcut_dialog_title (8131184731313717780) --> +    <skip />      <string name="shortcut_customize_mode_add_shortcut_description" msgid="6866025005347407696">"Premi un tasto per assegnare una scorciatoia"</string>      <string name="shortcut_customize_mode_remove_shortcut_description" msgid="6851287900585057128">"La scorciatoia personalizzata verrà eliminata definitivamente."</string> +    <!-- no translation found for shortcut_customize_mode_reset_shortcut_description (2081849715634358684) --> +    <skip />      <string name="shortcut_helper_search_placeholder" msgid="5488547526269871819">"Scorciatoie per la ricerca"</string>      <string name="shortcut_helper_no_search_results" msgid="8554756497996692160">"Nessun risultato di ricerca"</string>      <string name="shortcut_helper_content_description_collapse_icon" msgid="8028015738431664954">"Icona Comprimi"</string>      <string name="shortcut_helper_content_description_meta_key" msgid="3989315044342124818">"Icona tasto Azione o Meta"</string>      <string name="shortcut_helper_content_description_plus_icon" msgid="6152683734278299020">"Icona Più"</string>      <string name="shortcut_helper_customize_button_text" msgid="3124983502748069338">"Personalizza"</string> +    <!-- no translation found for shortcut_helper_reset_button_text (2548243844050633472) --> +    <skip />      <string name="shortcut_helper_done_button_text" msgid="7249905942125386191">"Fine"</string>      <string name="shortcut_helper_content_description_expand_icon" msgid="1084435697860417390">"Icona Espandi"</string>      <string name="shortcut_helper_key_combinations_or_separator" msgid="7082902112102125540">"oppure"</string> @@ -1441,6 +1449,8 @@      <string name="shortcut_helper_keyboard_settings_buttons_label" msgid="6720967595915985259">"Impostazioni tastiera"</string>      <string name="shortcut_helper_customize_dialog_set_shortcut_button_label" msgid="4754492225010429382">"Imposta scorciatoia"</string>      <string name="shortcut_helper_customize_dialog_remove_button_label" msgid="6546386970440176552">"Rimuovi"</string> +    <!-- no translation found for shortcut_helper_customize_dialog_reset_button_label (7645535254306312685) --> +    <skip />      <string name="shortcut_helper_customize_dialog_cancel_button_label" msgid="5595546460431741178">"Annulla"</string>      <string name="shortcut_helper_add_shortcut_dialog_placeholder" msgid="9154297849458741995">"Premi un tasto"</string>      <string name="shortcut_customizer_key_combination_in_use_error_message" msgid="7693234470526626327">"Combinazione di tasti già in uso. Prova con un altro tasto."</string> diff --git a/packages/SystemUI/res/values-iw/strings.xml b/packages/SystemUI/res/values-iw/strings.xml index 31f3e4e469e9..e481a777c15a 100644 --- a/packages/SystemUI/res/values-iw/strings.xml +++ b/packages/SystemUI/res/values-iw/strings.xml @@ -529,7 +529,10 @@      <string name="communal_widgets_disclaimer_text" msgid="1423545475160506349">"כדי לפתוח אפליקציה באמצעות ווידג\'ט, עליך לאמת את זהותך. בנוסף, כדאי לזכור שכל אחד יכול לראות את הווידג\'טים גם כשהטאבלט שלך נעול. יכול להיות שחלק מהווידג\'טים לא נועדו למסך הנעילה ושלא בטוח להוסיף אותם לכאן."</string>      <string name="communal_widgets_disclaimer_button" msgid="4423059765740780753">"הבנתי"</string>      <string name="glanceable_hub_lockscreen_affordance_label" msgid="1461611028615752141">"ווידג\'טים"</string> -    <string name="glanceable_hub_lockscreen_affordance_disabled_text" msgid="511359420883794513">"כדי להוסיף את קיצור דרך \"ווידג\'טים במסך הנעילה\", צריך לוודא שהתכונה הזו מופעלת בהגדרות."</string> +    <!-- no translation found for glanceable_hub_lockscreen_affordance_disabled_text (599170482297578735) --> +    <skip /> +    <!-- no translation found for glanceable_hub_lockscreen_affordance_action_button_label (7636151133344609375) --> +    <skip />      <string name="accessibility_multi_user_switch_switcher" msgid="5330448341251092660">"החלפת משתמש"</string>      <string name="accessibility_multi_user_list_switcher" msgid="8574105376229857407">"תפריט במשיכה למטה"</string>      <string name="guest_exit_guest_dialog_message" msgid="8183450985628495709">"כל האפליקציות והנתונים בסשן הזה יימחקו."</string> @@ -875,14 +878,10 @@      <string name="system_multitasking_splitscreen_focus_lhs" msgid="3164261844398662518">"מעבר לאפליקציה מימין או למעלה בזמן שימוש במסך מפוצל"</string>      <string name="system_multitasking_replace" msgid="7410071959803642125">"כשהמסך מפוצל: החלפה בין אפליקציה אחת לאחרת"</string>      <string name="system_multitasking_move_to_next_display" msgid="6169737557526976997">"העברת החלון הפעיל בין מסכים"</string> -    <!-- no translation found for system_desktop_mode_snap_left_window (8636204689945162298) --> -    <skip /> -    <!-- no translation found for system_desktop_mode_snap_right_window (2162560187639411929) --> -    <skip /> -    <!-- no translation found for system_desktop_mode_toggle_maximize_window (4084100093691768239) --> -    <skip /> -    <!-- no translation found for system_desktop_mode_minimize_window (1248714536732927092) --> -    <skip /> +    <string name="system_desktop_mode_snap_left_window" msgid="8636204689945162298">"העברת החלון שמאלה"</string> +    <string name="system_desktop_mode_snap_right_window" msgid="2162560187639411929">"העברת החלון ימינה"</string> +    <string name="system_desktop_mode_toggle_maximize_window" msgid="4084100093691768239">"הגדלת החלון"</string> +    <string name="system_desktop_mode_minimize_window" msgid="1248714536732927092">"מזעור החלון"</string>      <string name="keyboard_shortcut_group_input" msgid="6888282716546625610">"קלט"</string>      <string name="input_switch_input_language_next" msgid="3782155659868227855">"מעבר לשפה הבאה"</string>      <string name="input_switch_input_language_previous" msgid="6043341362202336623">"מעבר לשפה הקודמת"</string> @@ -1419,7 +1418,6 @@      <string name="shortcut_helper_category_system_controls" msgid="3153344561395751020">"הגדרות המערכת"</string>      <string name="shortcut_helper_category_system_apps" msgid="6001757545472556810">"אפליקציות מערכת"</string>      <string name="shortcut_helper_category_multitasking" msgid="7413381961404090136">"ריבוי משימות"</string> -    <string name="shortcutHelper_category_recent_apps" msgid="7918731953612377145">"אפליקציות שהיו בשימוש לאחרונה"</string>      <string name="shortcutHelper_category_split_screen" msgid="1159669813444812244">"מסך מפוצל"</string>      <string name="shortcut_helper_category_input" msgid="8674018654124839566">"קלט"</string>      <string name="shortcut_helper_category_app_shortcuts" msgid="8010249408308587117">"קיצורי דרך של אפליקציות"</string> @@ -1428,25 +1426,31 @@      <string name="shortcut_helper_title" msgid="8567500639300970049">"מקשי קיצור"</string>      <string name="shortcut_helper_customize_mode_title" msgid="1467657117101096033">"התאמה אישית של מקשי הקיצור"</string>      <string name="shortcut_customize_mode_remove_shortcut_dialog_title" msgid="7106420484940737208">"להסיר את קיצור הדרך?"</string> +    <!-- no translation found for shortcut_customize_mode_reset_shortcut_dialog_title (8131184731313717780) --> +    <skip />      <string name="shortcut_customize_mode_add_shortcut_description" msgid="6866025005347407696">"צריך להקיש על מקש כדי להקצות מקש קיצור"</string>      <string name="shortcut_customize_mode_remove_shortcut_description" msgid="6851287900585057128">"קיצור הדרך יימחק באופן סופי."</string> +    <!-- no translation found for shortcut_customize_mode_reset_shortcut_description (2081849715634358684) --> +    <skip />      <string name="shortcut_helper_search_placeholder" msgid="5488547526269871819">"קיצורי דרך לחיפוש"</string>      <string name="shortcut_helper_no_search_results" msgid="8554756497996692160">"אין תוצאות חיפוש"</string>      <string name="shortcut_helper_content_description_collapse_icon" msgid="8028015738431664954">"סמל הכיווץ"</string>      <string name="shortcut_helper_content_description_meta_key" msgid="3989315044342124818">"סמל מקש הפעולה (\"מטא\")"</string>      <string name="shortcut_helper_content_description_plus_icon" msgid="6152683734278299020">"סמל הפלוס"</string>      <string name="shortcut_helper_customize_button_text" msgid="3124983502748069338">"התאמה אישית"</string> +    <!-- no translation found for shortcut_helper_reset_button_text (2548243844050633472) --> +    <skip />      <string name="shortcut_helper_done_button_text" msgid="7249905942125386191">"סיום"</string>      <string name="shortcut_helper_content_description_expand_icon" msgid="1084435697860417390">"סמל ההרחבה"</string>      <string name="shortcut_helper_key_combinations_or_separator" msgid="7082902112102125540">"או"</string> -    <!-- no translation found for shortcut_helper_key_combinations_and_conjunction (6138186504075880224) --> -    <skip /> -    <!-- no translation found for shortcut_helper_key_combinations_forward_slash (1238652537199346970) --> -    <skip /> +    <string name="shortcut_helper_key_combinations_and_conjunction" msgid="6138186504075880224">"סימן חיבור (פלוס)"</string> +    <string name="shortcut_helper_key_combinations_forward_slash" msgid="1238652537199346970">"קו נטוי"</string>      <string name="shortcut_helper_content_description_drag_handle" msgid="5092426406009848110">"נקודת האחיזה לגרירה"</string>      <string name="shortcut_helper_keyboard_settings_buttons_label" msgid="6720967595915985259">"הגדרות המקלדת"</string>      <string name="shortcut_helper_customize_dialog_set_shortcut_button_label" msgid="4754492225010429382">"הגדרה של מקש קיצור"</string>      <string name="shortcut_helper_customize_dialog_remove_button_label" msgid="6546386970440176552">"הסרה"</string> +    <!-- no translation found for shortcut_helper_customize_dialog_reset_button_label (7645535254306312685) --> +    <skip />      <string name="shortcut_helper_customize_dialog_cancel_button_label" msgid="5595546460431741178">"ביטול"</string>      <string name="shortcut_helper_add_shortcut_dialog_placeholder" msgid="9154297849458741995">"יש ללחוץ על מקש"</string>      <string name="shortcut_customizer_key_combination_in_use_error_message" msgid="7693234470526626327">"שילוב המקשים הזה כבר בשימוש. אפשר לנסות מקש אחר."</string> diff --git a/packages/SystemUI/res/values-ja/strings.xml b/packages/SystemUI/res/values-ja/strings.xml index d5fb1a783692..1a2d0225c44f 100644 --- a/packages/SystemUI/res/values-ja/strings.xml +++ b/packages/SystemUI/res/values-ja/strings.xml @@ -529,7 +529,10 @@      <string name="communal_widgets_disclaimer_text" msgid="1423545475160506349">"ウィジェットを使用してアプリを起動するには、本人確認が必要です。タブレットがロックされた状態でも他のユーザーにウィジェットが表示されますので、注意してください。一部のウィジェットについてはロック画面での使用を想定していないため、ロック画面への追加は危険な場合があります。"</string>      <string name="communal_widgets_disclaimer_button" msgid="4423059765740780753">"OK"</string>      <string name="glanceable_hub_lockscreen_affordance_label" msgid="1461611028615752141">"ウィジェット"</string> -    <string name="glanceable_hub_lockscreen_affordance_disabled_text" msgid="511359420883794513">"ロック画面にウィジェットをショートカットとして追加するには、設定でウィジェットが有効になっていることをご確認ください。"</string> +    <!-- no translation found for glanceable_hub_lockscreen_affordance_disabled_text (599170482297578735) --> +    <skip /> +    <!-- no translation found for glanceable_hub_lockscreen_affordance_action_button_label (7636151133344609375) --> +    <skip />      <string name="accessibility_multi_user_switch_switcher" msgid="5330448341251092660">"ユーザーを切り替える"</string>      <string name="accessibility_multi_user_list_switcher" msgid="8574105376229857407">"プルダウン メニュー"</string>      <string name="guest_exit_guest_dialog_message" msgid="8183450985628495709">"このセッションでのアプリとデータはすべて削除されます。"</string> @@ -1415,7 +1418,6 @@      <string name="shortcut_helper_category_system_controls" msgid="3153344561395751020">"システム コントロール"</string>      <string name="shortcut_helper_category_system_apps" msgid="6001757545472556810">"システムアプリ"</string>      <string name="shortcut_helper_category_multitasking" msgid="7413381961404090136">"マルチタスク"</string> -    <string name="shortcutHelper_category_recent_apps" msgid="7918731953612377145">"最近使ったアプリ"</string>      <string name="shortcutHelper_category_split_screen" msgid="1159669813444812244">"分割画面"</string>      <string name="shortcut_helper_category_input" msgid="8674018654124839566">"入力"</string>      <string name="shortcut_helper_category_app_shortcuts" msgid="8010249408308587117">"アプリのショートカット"</string> @@ -1424,14 +1426,20 @@      <string name="shortcut_helper_title" msgid="8567500639300970049">"キーボード ショートカット"</string>      <string name="shortcut_helper_customize_mode_title" msgid="1467657117101096033">"キーボード ショートカットをカスタマイズする"</string>      <string name="shortcut_customize_mode_remove_shortcut_dialog_title" msgid="7106420484940737208">"ショートカットを削除しますか?"</string> +    <!-- no translation found for shortcut_customize_mode_reset_shortcut_dialog_title (8131184731313717780) --> +    <skip />      <string name="shortcut_customize_mode_add_shortcut_description" msgid="6866025005347407696">"ショートカットを割り当てるキーを押してください"</string>      <string name="shortcut_customize_mode_remove_shortcut_description" msgid="6851287900585057128">"この操作を行うと、カスタム ショートカットが完全に削除されます。"</string> +    <!-- no translation found for shortcut_customize_mode_reset_shortcut_description (2081849715634358684) --> +    <skip />      <string name="shortcut_helper_search_placeholder" msgid="5488547526269871819">"検索ショートカット"</string>      <string name="shortcut_helper_no_search_results" msgid="8554756497996692160">"検索結果がありません"</string>      <string name="shortcut_helper_content_description_collapse_icon" msgid="8028015738431664954">"閉じるアイコン"</string>      <string name="shortcut_helper_content_description_meta_key" msgid="3989315044342124818">"アクションキーまたはメタキーのアイコン"</string>      <string name="shortcut_helper_content_description_plus_icon" msgid="6152683734278299020">"プラスアイコン"</string>      <string name="shortcut_helper_customize_button_text" msgid="3124983502748069338">"カスタマイズ"</string> +    <!-- no translation found for shortcut_helper_reset_button_text (2548243844050633472) --> +    <skip />      <string name="shortcut_helper_done_button_text" msgid="7249905942125386191">"完了"</string>      <string name="shortcut_helper_content_description_expand_icon" msgid="1084435697860417390">"開くアイコン"</string>      <string name="shortcut_helper_key_combinations_or_separator" msgid="7082902112102125540">"または"</string> @@ -1441,6 +1449,8 @@      <string name="shortcut_helper_keyboard_settings_buttons_label" msgid="6720967595915985259">"キーボードの設定"</string>      <string name="shortcut_helper_customize_dialog_set_shortcut_button_label" msgid="4754492225010429382">"ショートカットの設定"</string>      <string name="shortcut_helper_customize_dialog_remove_button_label" msgid="6546386970440176552">"削除"</string> +    <!-- no translation found for shortcut_helper_customize_dialog_reset_button_label (7645535254306312685) --> +    <skip />      <string name="shortcut_helper_customize_dialog_cancel_button_label" msgid="5595546460431741178">"キャンセル"</string>      <string name="shortcut_helper_add_shortcut_dialog_placeholder" msgid="9154297849458741995">"キーを押してください"</string>      <string name="shortcut_customizer_key_combination_in_use_error_message" msgid="7693234470526626327">"このキーの組み合わせはすでに使用されています。別のキーを試してください。"</string> diff --git a/packages/SystemUI/res/values-ka/strings.xml b/packages/SystemUI/res/values-ka/strings.xml index 8bbb1812c2cd..d7fe2845a520 100644 --- a/packages/SystemUI/res/values-ka/strings.xml +++ b/packages/SystemUI/res/values-ka/strings.xml @@ -529,7 +529,10 @@      <string name="communal_widgets_disclaimer_text" msgid="1423545475160506349">"უნდა დაადასტუროთ თქვენი ვინაობა, რათა გახსნათ აპი ვიჯეტის გამოყენებით. გაითვალისწინეთ, რომ ნებისმიერს შეუძლია მათი ნახვა, მაშინაც კი, როცა ტაბლეტი დაბლოკილია. ზოგი ვიჯეტი შეიძლება არ იყოს გათვლილი თქვენი დაბლოკილი ეკრანისთვის და მათი აქ დამატება შეიძლება სახიფათო იყოს."</string>      <string name="communal_widgets_disclaimer_button" msgid="4423059765740780753">"გასაგებია"</string>      <string name="glanceable_hub_lockscreen_affordance_label" msgid="1461611028615752141">"ვიჯეტები"</string> -    <string name="glanceable_hub_lockscreen_affordance_disabled_text" msgid="511359420883794513">"ჩაკეტილ ეკრანზე ვიჯეტის მალსახმობის სახით დასამატებლად დარწმუნდით, რომ ის ჩართულია პარამეტრებიდან."</string> +    <!-- no translation found for glanceable_hub_lockscreen_affordance_disabled_text (599170482297578735) --> +    <skip /> +    <!-- no translation found for glanceable_hub_lockscreen_affordance_action_button_label (7636151133344609375) --> +    <skip />      <string name="accessibility_multi_user_switch_switcher" msgid="5330448341251092660">"მომხმარებლის გადართვა"</string>      <string name="accessibility_multi_user_list_switcher" msgid="8574105376229857407">"ჩამოშლადი მენიუ"</string>      <string name="guest_exit_guest_dialog_message" msgid="8183450985628495709">"ამ სესიის ყველა აპი და მონაცემი წაიშლება."</string> @@ -1415,7 +1418,6 @@      <string name="shortcut_helper_category_system_controls" msgid="3153344561395751020">"სისტემის მართვის საშუალებები"</string>      <string name="shortcut_helper_category_system_apps" msgid="6001757545472556810">"სისტემის აპები"</string>      <string name="shortcut_helper_category_multitasking" msgid="7413381961404090136">"მრავალამოცანიანი რეჟიმი"</string> -    <string name="shortcutHelper_category_recent_apps" msgid="7918731953612377145">"ბოლოდროინდელი აპები"</string>      <string name="shortcutHelper_category_split_screen" msgid="1159669813444812244">"ეკრანის გაყოფა"</string>      <string name="shortcut_helper_category_input" msgid="8674018654124839566">"შეყვანა"</string>      <string name="shortcut_helper_category_app_shortcuts" msgid="8010249408308587117">"აპის მალსახმობები"</string> @@ -1424,14 +1426,20 @@      <string name="shortcut_helper_title" msgid="8567500639300970049">"კლავიატურის მალსახმობები"</string>      <string name="shortcut_helper_customize_mode_title" msgid="1467657117101096033">"კლავიატურის მალსახმობების მორგება"</string>      <string name="shortcut_customize_mode_remove_shortcut_dialog_title" msgid="7106420484940737208">"გსურთ მალსახმობის წაშლა?"</string> +    <!-- no translation found for shortcut_customize_mode_reset_shortcut_dialog_title (8131184731313717780) --> +    <skip />      <string name="shortcut_customize_mode_add_shortcut_description" msgid="6866025005347407696">"მალსახმობის მინიჭებისთვის დააჭირეთ კლავიშს"</string>      <string name="shortcut_customize_mode_remove_shortcut_description" msgid="6851287900585057128">"ეს თქვენს მორგებულ მალსახმობებს სამუდამოდ წაშლის."</string> +    <!-- no translation found for shortcut_customize_mode_reset_shortcut_description (2081849715634358684) --> +    <skip />      <string name="shortcut_helper_search_placeholder" msgid="5488547526269871819">"ძიების მალსახმობები"</string>      <string name="shortcut_helper_no_search_results" msgid="8554756497996692160">"ძიების შედეგები არ არის"</string>      <string name="shortcut_helper_content_description_collapse_icon" msgid="8028015738431664954">"ხატულის ჩაკეცვა"</string>      <string name="shortcut_helper_content_description_meta_key" msgid="3989315044342124818">"მოქმედების ან მეტა კლავიშის ხატულა"</string>      <string name="shortcut_helper_content_description_plus_icon" msgid="6152683734278299020">"პლუსის ხატულა"</string>      <string name="shortcut_helper_customize_button_text" msgid="3124983502748069338">"მორგება"</string> +    <!-- no translation found for shortcut_helper_reset_button_text (2548243844050633472) --> +    <skip />      <string name="shortcut_helper_done_button_text" msgid="7249905942125386191">"მზადაა"</string>      <string name="shortcut_helper_content_description_expand_icon" msgid="1084435697860417390">"ხატულის გაფართოება"</string>      <string name="shortcut_helper_key_combinations_or_separator" msgid="7082902112102125540">"ან"</string> @@ -1441,6 +1449,8 @@      <string name="shortcut_helper_keyboard_settings_buttons_label" msgid="6720967595915985259">"კლავიატურის პარამეტრები"</string>      <string name="shortcut_helper_customize_dialog_set_shortcut_button_label" msgid="4754492225010429382">"მალსახმობის დაყენება"</string>      <string name="shortcut_helper_customize_dialog_remove_button_label" msgid="6546386970440176552">"ამოშლა"</string> +    <!-- no translation found for shortcut_helper_customize_dialog_reset_button_label (7645535254306312685) --> +    <skip />      <string name="shortcut_helper_customize_dialog_cancel_button_label" msgid="5595546460431741178">"გაუქმება"</string>      <string name="shortcut_helper_add_shortcut_dialog_placeholder" msgid="9154297849458741995">"დააჭირეთ კლავიშს"</string>      <string name="shortcut_customizer_key_combination_in_use_error_message" msgid="7693234470526626327">"კლავიშების კომბინაცია უკვე გამოიყენება. ცადეთ სხვა კლავიში."</string> diff --git a/packages/SystemUI/res/values-kk/strings.xml b/packages/SystemUI/res/values-kk/strings.xml index 4f112933a76f..92269a2a2e73 100644 --- a/packages/SystemUI/res/values-kk/strings.xml +++ b/packages/SystemUI/res/values-kk/strings.xml @@ -529,7 +529,10 @@      <string name="communal_widgets_disclaimer_text" msgid="1423545475160506349">"Қолданбаны виджет көмегімен ашу үшін жеке басыңызды растауыңыз керек. Сондай-ақ басқалар оларды планшетіңіз құлыптаулы кезде де көре алатынын ескеріңіз. Кейбір виджеттер құлып экранына арналмаған болады, сондықтан оларды мұнда қосу қауіпсіз болмауы мүмкін."</string>      <string name="communal_widgets_disclaimer_button" msgid="4423059765740780753">"Түсінікті"</string>      <string name="glanceable_hub_lockscreen_affordance_label" msgid="1461611028615752141">"Виджеттер"</string> -    <string name="glanceable_hub_lockscreen_affordance_disabled_text" msgid="511359420883794513">"To add Widgets on the lock screen as a shortcut, make sure it is enabled in settings."</string> +    <!-- no translation found for glanceable_hub_lockscreen_affordance_disabled_text (599170482297578735) --> +    <skip /> +    <!-- no translation found for glanceable_hub_lockscreen_affordance_action_button_label (7636151133344609375) --> +    <skip />      <string name="accessibility_multi_user_switch_switcher" msgid="5330448341251092660">"Пайдаланушыны ауыстыру"</string>      <string name="accessibility_multi_user_list_switcher" msgid="8574105376229857407">"ашылмалы мәзір"</string>      <string name="guest_exit_guest_dialog_message" msgid="8183450985628495709">"Осы сеанстағы барлық қолданба мен дерек жойылады."</string> @@ -875,14 +878,10 @@      <string name="system_multitasking_splitscreen_focus_lhs" msgid="3164261844398662518">"Бөлінген экранда сол не жоғары жақтағы қолданбаға ауысу"</string>      <string name="system_multitasking_replace" msgid="7410071959803642125">"Экранды бөлу кезінде: бір қолданбаны басқасымен алмастыру"</string>      <string name="system_multitasking_move_to_next_display" msgid="6169737557526976997">"Дисплейлер арасында қосулы терезені ауыстыру"</string> -    <!-- no translation found for system_desktop_mode_snap_left_window (8636204689945162298) --> -    <skip /> -    <!-- no translation found for system_desktop_mode_snap_right_window (2162560187639411929) --> -    <skip /> -    <!-- no translation found for system_desktop_mode_toggle_maximize_window (4084100093691768239) --> -    <skip /> -    <!-- no translation found for system_desktop_mode_minimize_window (1248714536732927092) --> -    <skip /> +    <string name="system_desktop_mode_snap_left_window" msgid="8636204689945162298">"Терезені сол жаққа жылжыту"</string> +    <string name="system_desktop_mode_snap_right_window" msgid="2162560187639411929">"Терезені оң жаққа жылжыту"</string> +    <string name="system_desktop_mode_toggle_maximize_window" msgid="4084100093691768239">"Терезені ұлғайту"</string> +    <string name="system_desktop_mode_minimize_window" msgid="1248714536732927092">"Терезені кішірейту"</string>      <string name="keyboard_shortcut_group_input" msgid="6888282716546625610">"Енгізу"</string>      <string name="input_switch_input_language_next" msgid="3782155659868227855">"Келесі тілге ауысу"</string>      <string name="input_switch_input_language_previous" msgid="6043341362202336623">"Алдыңғы тілге ауысу"</string> @@ -1419,7 +1418,6 @@      <string name="shortcut_helper_category_system_controls" msgid="3153344561395751020">"Жүйені басқару элементтері"</string>      <string name="shortcut_helper_category_system_apps" msgid="6001757545472556810">"Жүйелік қолданбалар"</string>      <string name="shortcut_helper_category_multitasking" msgid="7413381961404090136">"Мультитаскинг"</string> -    <string name="shortcutHelper_category_recent_apps" msgid="7918731953612377145">"Соңғы қолданбалар"</string>      <string name="shortcutHelper_category_split_screen" msgid="1159669813444812244">"Экранды бөлу"</string>      <string name="shortcut_helper_category_input" msgid="8674018654124839566">"Енгізу"</string>      <string name="shortcut_helper_category_app_shortcuts" msgid="8010249408308587117">"Қолданба таңбашалары"</string> @@ -1428,25 +1426,31 @@      <string name="shortcut_helper_title" msgid="8567500639300970049">"Перне тіркесімдері"</string>      <string name="shortcut_helper_customize_mode_title" msgid="1467657117101096033">"Пернелер тіркесімін бейімдеу"</string>      <string name="shortcut_customize_mode_remove_shortcut_dialog_title" msgid="7106420484940737208">"Жылдам пәрменді өшіру керек пе?"</string> +    <!-- no translation found for shortcut_customize_mode_reset_shortcut_dialog_title (8131184731313717780) --> +    <skip />      <string name="shortcut_customize_mode_add_shortcut_description" msgid="6866025005347407696">"Жылдам пәрменді тағайындау үшін пернені басыңыз."</string>      <string name="shortcut_customize_mode_remove_shortcut_description" msgid="6851287900585057128">"Арнаулы жылдам пәрменіңіз біржола жойылады."</string> +    <!-- no translation found for shortcut_customize_mode_reset_shortcut_description (2081849715634358684) --> +    <skip />      <string name="shortcut_helper_search_placeholder" msgid="5488547526269871819">"Іздеу жылдам пәрмендері"</string>      <string name="shortcut_helper_no_search_results" msgid="8554756497996692160">"Іздеу нәтижелері жоқ."</string>      <string name="shortcut_helper_content_description_collapse_icon" msgid="8028015738431664954">"Жию белгішесі"</string>      <string name="shortcut_helper_content_description_meta_key" msgid="3989315044342124818">"Әрекет немесе Meta пернесінің белгішесі"</string>      <string name="shortcut_helper_content_description_plus_icon" msgid="6152683734278299020">"Қосу белгішесі"</string>      <string name="shortcut_helper_customize_button_text" msgid="3124983502748069338">"Бейімдеу"</string> +    <!-- no translation found for shortcut_helper_reset_button_text (2548243844050633472) --> +    <skip />      <string name="shortcut_helper_done_button_text" msgid="7249905942125386191">"Дайын"</string>      <string name="shortcut_helper_content_description_expand_icon" msgid="1084435697860417390">"Жаю белгішесі"</string>      <string name="shortcut_helper_key_combinations_or_separator" msgid="7082902112102125540">"немесе"</string> -    <!-- no translation found for shortcut_helper_key_combinations_and_conjunction (6138186504075880224) --> -    <skip /> -    <!-- no translation found for shortcut_helper_key_combinations_forward_slash (1238652537199346970) --> -    <skip /> +    <string name="shortcut_helper_key_combinations_and_conjunction" msgid="6138186504075880224">"қосу"</string> +    <string name="shortcut_helper_key_combinations_forward_slash" msgid="1238652537199346970">"қиғаш сызық"</string>      <string name="shortcut_helper_content_description_drag_handle" msgid="5092426406009848110">"Сүйрейтін тетік"</string>      <string name="shortcut_helper_keyboard_settings_buttons_label" msgid="6720967595915985259">"Пернетақта параметрлері"</string>      <string name="shortcut_helper_customize_dialog_set_shortcut_button_label" msgid="4754492225010429382">"Жылдам пәрменді орнату"</string>      <string name="shortcut_helper_customize_dialog_remove_button_label" msgid="6546386970440176552">"Өшіру"</string> +    <!-- no translation found for shortcut_helper_customize_dialog_reset_button_label (7645535254306312685) --> +    <skip />      <string name="shortcut_helper_customize_dialog_cancel_button_label" msgid="5595546460431741178">"Бас тарту"</string>      <string name="shortcut_helper_add_shortcut_dialog_placeholder" msgid="9154297849458741995">"Пернені басыңыз"</string>      <string name="shortcut_customizer_key_combination_in_use_error_message" msgid="7693234470526626327">"Бұл пернелер тіркесімі қазір қолданыста. Басқа перне таңдаңыз."</string> diff --git a/packages/SystemUI/res/values-km/strings.xml b/packages/SystemUI/res/values-km/strings.xml index 33aeb7028cd0..13153c61ab46 100644 --- a/packages/SystemUI/res/values-km/strings.xml +++ b/packages/SystemUI/res/values-km/strings.xml @@ -529,7 +529,10 @@      <string name="communal_widgets_disclaimer_text" msgid="1423545475160506349">"ដើម្បីបើកកម្មវិធីដោយប្រើធាតុក្រាហ្វិក អ្នកនឹងត្រូវផ្ទៀងផ្ទាត់ថាជាអ្នក។ ទន្ទឹមនឹងនេះ សូមចងចាំថា នរណាក៏អាចមើលធាតុក្រាហ្វិកបាន សូម្បីពេលថេប្លេតរបស់អ្នកជាប់សោក៏ដោយ។ ធាតុក្រាហ្វិកមួយចំនួនប្រហែលមិនត្រូវបានរចនាឡើងសម្រាប់អេក្រង់ចាក់សោរបស់អ្នកទេ និងមិនមានសុវត្ថិភាពឡើយ បើបញ្ចូលទៅទីនេះ។"</string>      <string name="communal_widgets_disclaimer_button" msgid="4423059765740780753">"យល់ហើយ"</string>      <string name="glanceable_hub_lockscreen_affordance_label" msgid="1461611028615752141">"ធាតុក្រាហ្វិក"</string> -    <string name="glanceable_hub_lockscreen_affordance_disabled_text" msgid="511359420883794513">"ដើម្បីបញ្ចូលធាតុក្រាហ្វិកនៅលើអេក្រង់ចាក់សោជាផ្លូវកាត់ សូមប្រាកដថាវាត្រូវបានបើកនៅក្នុងការកំណត់។"</string> +    <!-- no translation found for glanceable_hub_lockscreen_affordance_disabled_text (599170482297578735) --> +    <skip /> +    <!-- no translation found for glanceable_hub_lockscreen_affordance_action_button_label (7636151133344609375) --> +    <skip />      <string name="accessibility_multi_user_switch_switcher" msgid="5330448341251092660">"ប្ដូរអ្នកប្រើ"</string>      <string name="accessibility_multi_user_list_switcher" msgid="8574105376229857407">"ម៉ឺនុយទាញចុះ"</string>      <string name="guest_exit_guest_dialog_message" msgid="8183450985628495709">"កម្មវិធី និងទិន្នន័យទាំងអស់ក្នុងវគ្គនេះនឹងត្រូវលុប។"</string> @@ -875,14 +878,10 @@      <string name="system_multitasking_splitscreen_focus_lhs" msgid="3164261844398662518">"ប្ដូរទៅកម្មវិធីនៅខាងឆ្វេង ឬខាងលើ ពេលកំពុងប្រើមុខងារបំបែកអេក្រង់"</string>      <string name="system_multitasking_replace" msgid="7410071959803642125">"ក្នុងអំឡុងពេលប្រើមុខងារបំបែកអេក្រង់៖ ជំនួសកម្មវិធីពីមួយទៅមួយទៀត"</string>      <string name="system_multitasking_move_to_next_display" msgid="6169737557526976997">"ផ្លាស់ទីវិនដូដែលសកម្មរវាងផ្ទាំងអេក្រង់"</string> -    <!-- no translation found for system_desktop_mode_snap_left_window (8636204689945162298) --> -    <skip /> -    <!-- no translation found for system_desktop_mode_snap_right_window (2162560187639411929) --> -    <skip /> -    <!-- no translation found for system_desktop_mode_toggle_maximize_window (4084100093691768239) --> -    <skip /> -    <!-- no translation found for system_desktop_mode_minimize_window (1248714536732927092) --> -    <skip /> +    <string name="system_desktop_mode_snap_left_window" msgid="8636204689945162298">"ផ្លាស់ទីវិនដូទៅឆ្វេង"</string> +    <string name="system_desktop_mode_snap_right_window" msgid="2162560187639411929">"ផ្លាស់ទីវិនដូទៅស្ដាំ"</string> +    <string name="system_desktop_mode_toggle_maximize_window" msgid="4084100093691768239">"ពង្រីកវិនដូ"</string> +    <string name="system_desktop_mode_minimize_window" msgid="1248714536732927092">"បង្រួមវិនដូ"</string>      <string name="keyboard_shortcut_group_input" msgid="6888282716546625610">"បញ្ចូល"</string>      <string name="input_switch_input_language_next" msgid="3782155659868227855">"ប្ដូរទៅភាសាបន្ទាប់"</string>      <string name="input_switch_input_language_previous" msgid="6043341362202336623">"ប្ដូរទៅភាសាមុន"</string> @@ -1419,7 +1418,6 @@      <string name="shortcut_helper_category_system_controls" msgid="3153344561395751020">"ការគ្រប់គ្រងប្រព័ន្ធ"</string>      <string name="shortcut_helper_category_system_apps" msgid="6001757545472556810">"កម្មវិធីប្រព័ន្ធ"</string>      <string name="shortcut_helper_category_multitasking" msgid="7413381961404090136">"ការធ្វើកិច្ចការច្រើន"</string> -    <string name="shortcutHelper_category_recent_apps" msgid="7918731953612377145">"កម្មវិធីថ្មីៗ"</string>      <string name="shortcutHelper_category_split_screen" msgid="1159669813444812244">"មុខងារបំបែកអេក្រង់"</string>      <string name="shortcut_helper_category_input" msgid="8674018654124839566">"ធាតុចូល"</string>      <string name="shortcut_helper_category_app_shortcuts" msgid="8010249408308587117">"ផ្លូវកាត់កម្មវិធី"</string> @@ -1428,25 +1426,31 @@      <string name="shortcut_helper_title" msgid="8567500639300970049">"ផ្លូវកាត់ក្ដារចុច"</string>      <string name="shortcut_helper_customize_mode_title" msgid="1467657117101096033">"ប្ដូរផ្លូវកាត់ក្ដារចុចតាមបំណង"</string>      <string name="shortcut_customize_mode_remove_shortcut_dialog_title" msgid="7106420484940737208">"ដកផ្លូវកាត់ចេញឬ?"</string> +    <!-- no translation found for shortcut_customize_mode_reset_shortcut_dialog_title (8131184731313717780) --> +    <skip />      <string name="shortcut_customize_mode_add_shortcut_description" msgid="6866025005347407696">"ចុចគ្រាប់ចុច ដើម្បីកំណត់ផ្លូវកាត់"</string>      <string name="shortcut_customize_mode_remove_shortcut_description" msgid="6851287900585057128">"ការធ្វើបែបនេះនឹងលុបផ្លូវកាត់ផ្ទាល់ខ្លួនរបស់អ្នកជាអចិន្ត្រៃយ៍។"</string> +    <!-- no translation found for shortcut_customize_mode_reset_shortcut_description (2081849715634358684) --> +    <skip />      <string name="shortcut_helper_search_placeholder" msgid="5488547526269871819">"ស្វែងរកផ្លូវកាត់"</string>      <string name="shortcut_helper_no_search_results" msgid="8554756497996692160">"គ្មានលទ្ធផលស្វែងរកទេ"</string>      <string name="shortcut_helper_content_description_collapse_icon" msgid="8028015738431664954">"រូបតំណាង \"បង្រួម\""</string>      <string name="shortcut_helper_content_description_meta_key" msgid="3989315044342124818">"រូបគ្រាប់ចុចសកម្មភាព ឬមេតា"</string>      <string name="shortcut_helper_content_description_plus_icon" msgid="6152683734278299020">"រូបសញ្ញាបូក"</string>      <string name="shortcut_helper_customize_button_text" msgid="3124983502748069338">"ប្ដូរតាមបំណង"</string> +    <!-- no translation found for shortcut_helper_reset_button_text (2548243844050633472) --> +    <skip />      <string name="shortcut_helper_done_button_text" msgid="7249905942125386191">"រួចរាល់"</string>      <string name="shortcut_helper_content_description_expand_icon" msgid="1084435697860417390">"រូបតំណាង \"ពង្រីក\""</string>      <string name="shortcut_helper_key_combinations_or_separator" msgid="7082902112102125540">"ឬ"</string> -    <!-- no translation found for shortcut_helper_key_combinations_and_conjunction (6138186504075880224) --> -    <skip /> -    <!-- no translation found for shortcut_helper_key_combinations_forward_slash (1238652537199346970) --> -    <skip /> +    <string name="shortcut_helper_key_combinations_and_conjunction" msgid="6138186504075880224">"បូក"</string> +    <string name="shortcut_helper_key_combinations_forward_slash" msgid="1238652537199346970">"សញ្ញា (/)"</string>      <string name="shortcut_helper_content_description_drag_handle" msgid="5092426406009848110">"ដងអូស"</string>      <string name="shortcut_helper_keyboard_settings_buttons_label" msgid="6720967595915985259">"ការកំណត់ក្ដារចុច"</string>      <string name="shortcut_helper_customize_dialog_set_shortcut_button_label" msgid="4754492225010429382">"កំណត់ផ្លូវកាត់"</string>      <string name="shortcut_helper_customize_dialog_remove_button_label" msgid="6546386970440176552">"ដកចេញ"</string> +    <!-- no translation found for shortcut_helper_customize_dialog_reset_button_label (7645535254306312685) --> +    <skip />      <string name="shortcut_helper_customize_dialog_cancel_button_label" msgid="5595546460431741178">"បោះបង់"</string>      <string name="shortcut_helper_add_shortcut_dialog_placeholder" msgid="9154297849458741995">"ចុចគ្រាប់ចុច"</string>      <string name="shortcut_customizer_key_combination_in_use_error_message" msgid="7693234470526626327">"កំពុងប្រើបន្សំគ្រាប់ចុចស្រាប់ហើយ។ សាកល្បងប្រើគ្រាប់ចុចផ្សេង។"</string> diff --git a/packages/SystemUI/res/values-kn/strings.xml b/packages/SystemUI/res/values-kn/strings.xml index ee06f2340f73..b83e9576edca 100644 --- a/packages/SystemUI/res/values-kn/strings.xml +++ b/packages/SystemUI/res/values-kn/strings.xml @@ -529,7 +529,10 @@      <string name="communal_widgets_disclaimer_text" msgid="1423545475160506349">"ವಿಜೆಟ್ ಅನ್ನು ಬಳಸಿಕೊಂಡು ಆ್ಯಪ್ ತೆರೆಯಲು, ಇದು ನೀವೇ ಎಂದು ನೀವು ದೃಢೀಕರಿಸಬೇಕಾಗುತ್ತದೆ. ಅಲ್ಲದೆ, ನಿಮ್ಮ ಟ್ಯಾಬ್ಲೆಟ್ ಲಾಕ್ ಆಗಿದ್ದರೂ ಸಹ ಯಾರಾದರೂ ಅವುಗಳನ್ನು ವೀಕ್ಷಿಸಬಹುದು ಎಂಬುದನ್ನು ನೆನಪಿನಲ್ಲಿಡಿ. ಕೆಲವು ವಿಜೆಟ್ಗಳು ನಿಮ್ಮ ಲಾಕ್ ಸ್ಕ್ರೀನ್ಗಾಗಿ ಉದ್ದೇಶಿಸದೇ ಇರಬಹುದು ಮತ್ತು ಇಲ್ಲಿ ಸೇರಿಸುವುದು ಸುರಕ್ಷಿತವಲ್ಲದಿರಬಹುದು."</string>      <string name="communal_widgets_disclaimer_button" msgid="4423059765740780753">"ಅರ್ಥವಾಯಿತು"</string>      <string name="glanceable_hub_lockscreen_affordance_label" msgid="1461611028615752141">"ವಿಜೆಟ್ಗಳು"</string> -    <string name="glanceable_hub_lockscreen_affordance_disabled_text" msgid="511359420883794513">"ಶಾರ್ಟ್ಕಟ್ನಂತೆ ಲಾಕ್ ಸ್ಕ್ರೀನ್ನಲ್ಲಿ ವಿಜೆಟ್ಗಳನ್ನು ಸೇರಿಸಲು, ಅದನ್ನು ಸೆಟ್ಟಿಂಗ್ಗಳಲ್ಲಿ ಸಕ್ರಿಯಗೊಳಿಸಲಾಗಿದೆಯೇ ಎಂದು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಿ."</string> +    <!-- no translation found for glanceable_hub_lockscreen_affordance_disabled_text (599170482297578735) --> +    <skip /> +    <!-- no translation found for glanceable_hub_lockscreen_affordance_action_button_label (7636151133344609375) --> +    <skip />      <string name="accessibility_multi_user_switch_switcher" msgid="5330448341251092660">"ಬಳಕೆದಾರರನ್ನು ಬದಲಿಸಿ"</string>      <string name="accessibility_multi_user_list_switcher" msgid="8574105376229857407">"ಪುಲ್ಡೌನ್ ಮೆನು"</string>      <string name="guest_exit_guest_dialog_message" msgid="8183450985628495709">"ಈ ಸೆಶನ್ನಲ್ಲಿನ ಎಲ್ಲಾ ಆ್ಯಪ್ಗಳು ಮತ್ತು ಡೇಟಾವನ್ನು ಅಳಿಸಲಾಗುತ್ತದೆ."</string> @@ -1415,7 +1418,6 @@      <string name="shortcut_helper_category_system_controls" msgid="3153344561395751020">"ಸಿಸ್ಟಂ ನಿಯಂತ್ರಣಗಳು"</string>      <string name="shortcut_helper_category_system_apps" msgid="6001757545472556810">"ಸಿಸ್ಟಂ ಆ್ಯಪ್ಗಳು"</string>      <string name="shortcut_helper_category_multitasking" msgid="7413381961404090136">"ಮಲ್ಟಿಟಾಸ್ಕಿಂಗ್"</string> -    <string name="shortcutHelper_category_recent_apps" msgid="7918731953612377145">"ಇತ್ತೀಚಿನ ಆ್ಯಪ್ಗಳು"</string>      <string name="shortcutHelper_category_split_screen" msgid="1159669813444812244">"ಸ್ಪ್ಲಿಟ್ ಸ್ಕ್ರೀನ್"</string>      <string name="shortcut_helper_category_input" msgid="8674018654124839566">"ಇನ್ಪುಟ್"</string>      <string name="shortcut_helper_category_app_shortcuts" msgid="8010249408308587117">"ಆ್ಯಪ್ ಶಾರ್ಟ್ಕಟ್ಗಳು"</string> @@ -1424,14 +1426,20 @@      <string name="shortcut_helper_title" msgid="8567500639300970049">"ಕೀಬೋರ್ಡ್ ಶಾರ್ಟ್ಕಟ್ಗಳು"</string>      <string name="shortcut_helper_customize_mode_title" msgid="1467657117101096033">"ಕೀಬೋರ್ಡ್ ಶಾರ್ಟ್ಕಟ್ಗಳನ್ನು ಕಸ್ಟಮೈಸ್ ಮಾಡಿ"</string>      <string name="shortcut_customize_mode_remove_shortcut_dialog_title" msgid="7106420484940737208">"ಶಾರ್ಟ್ಕಟ್ ಅನ್ನು ತೆಗೆದುಹಾಕಬೇಕೇ?"</string> +    <!-- no translation found for shortcut_customize_mode_reset_shortcut_dialog_title (8131184731313717780) --> +    <skip />      <string name="shortcut_customize_mode_add_shortcut_description" msgid="6866025005347407696">"ಶಾರ್ಟ್ಕಟ್ ಅನ್ನು ನಿಯೋಜಿಸಲು ಕೀಯನ್ನು ಒತ್ತಿರಿ"</string>      <string name="shortcut_customize_mode_remove_shortcut_description" msgid="6851287900585057128">"ಇದು ನಿಮ್ಮ ಕಸ್ಟಮ್ ಶಾರ್ಟ್ಕಟ್ ಅನ್ನು ಶಾಶ್ವತವಾಗಿ ಅಳಿಸುತ್ತದೆ."</string> +    <!-- no translation found for shortcut_customize_mode_reset_shortcut_description (2081849715634358684) --> +    <skip />      <string name="shortcut_helper_search_placeholder" msgid="5488547526269871819">"ಹುಡುಕಾಟದ ಶಾರ್ಟ್ಕಟ್ಗಳು"</string>      <string name="shortcut_helper_no_search_results" msgid="8554756497996692160">"ಯಾವುದೇ ಹುಡುಕಾಟ ಫಲಿತಾಂಶಗಳಿಲ್ಲ"</string>      <string name="shortcut_helper_content_description_collapse_icon" msgid="8028015738431664954">"ಕುಗ್ಗಿಸುವ ಐಕಾನ್"</string>      <string name="shortcut_helper_content_description_meta_key" msgid="3989315044342124818">"ಆ್ಯಕ್ಷನ್ ಅಥವಾ ಮೆಟಾ ಕೀ ಐಕಾನ್"</string>      <string name="shortcut_helper_content_description_plus_icon" msgid="6152683734278299020">"ಪ್ಲಸ್ ಐಕಾನ್"</string>      <string name="shortcut_helper_customize_button_text" msgid="3124983502748069338">"ಕಸ್ಟಮೈಸ್ ಮಾಡಿ"</string> +    <!-- no translation found for shortcut_helper_reset_button_text (2548243844050633472) --> +    <skip />      <string name="shortcut_helper_done_button_text" msgid="7249905942125386191">"ಮುಗಿದಿದೆ"</string>      <string name="shortcut_helper_content_description_expand_icon" msgid="1084435697860417390">"ವಿಸ್ತೃತಗೊಳಿಸುವ ಐಕಾನ್"</string>      <string name="shortcut_helper_key_combinations_or_separator" msgid="7082902112102125540">"ಅಥವಾ"</string> @@ -1441,6 +1449,8 @@      <string name="shortcut_helper_keyboard_settings_buttons_label" msgid="6720967595915985259">"ಕೀಬೋರ್ಡ್ ಸೆಟ್ಟಿಂಗ್ಗಳು"</string>      <string name="shortcut_helper_customize_dialog_set_shortcut_button_label" msgid="4754492225010429382">"ಶಾರ್ಟ್ಕಟ್ ಸೆಟ್ ಮಾಡಿ"</string>      <string name="shortcut_helper_customize_dialog_remove_button_label" msgid="6546386970440176552">"ತೆಗೆದುಹಾಕಿ"</string> +    <!-- no translation found for shortcut_helper_customize_dialog_reset_button_label (7645535254306312685) --> +    <skip />      <string name="shortcut_helper_customize_dialog_cancel_button_label" msgid="5595546460431741178">"ರದ್ದುಮಾಡಿ"</string>      <string name="shortcut_helper_add_shortcut_dialog_placeholder" msgid="9154297849458741995">"ಕೀ ಅನ್ನು ಒತ್ತಿರಿ"</string>      <string name="shortcut_customizer_key_combination_in_use_error_message" msgid="7693234470526626327">"ಕೀ ಸಂಯೋಜನೆಯು ಈಗಾಗಲೇ ಬಳಕೆಯಲ್ಲಿದೆ. ಮತ್ತೊಂದು ಕೀ ಬಳಸಿ ನೋಡಿ."</string> diff --git a/packages/SystemUI/res/values-ko/strings.xml b/packages/SystemUI/res/values-ko/strings.xml index 6dcf92cfb0ba..00b2450881fd 100644 --- a/packages/SystemUI/res/values-ko/strings.xml +++ b/packages/SystemUI/res/values-ko/strings.xml @@ -529,7 +529,10 @@      <string name="communal_widgets_disclaimer_text" msgid="1423545475160506349">"위젯을 사용하여 앱을 열려면 본인 인증을 해야 합니다. 또한 태블릿이 잠겨 있더라도 누구나 볼 수 있다는 점을 유의해야 합니다. 일부 위젯은 잠금 화면에 적합하지 않고 여기에 추가하기에 안전하지 않을 수 있습니다."</string>      <string name="communal_widgets_disclaimer_button" msgid="4423059765740780753">"확인"</string>      <string name="glanceable_hub_lockscreen_affordance_label" msgid="1461611028615752141">"위젯"</string> -    <string name="glanceable_hub_lockscreen_affordance_disabled_text" msgid="511359420883794513">"잠금 화면에 위젯을 바로가기로 추가하려면 설정에서 위젯을 사용 설정하세요."</string> +    <!-- no translation found for glanceable_hub_lockscreen_affordance_disabled_text (599170482297578735) --> +    <skip /> +    <!-- no translation found for glanceable_hub_lockscreen_affordance_action_button_label (7636151133344609375) --> +    <skip />      <string name="accessibility_multi_user_switch_switcher" msgid="5330448341251092660">"사용자 전환"</string>      <string name="accessibility_multi_user_list_switcher" msgid="8574105376229857407">"풀다운 메뉴"</string>      <string name="guest_exit_guest_dialog_message" msgid="8183450985628495709">"이 세션에 있는 모든 앱과 데이터가 삭제됩니다."</string> @@ -875,14 +878,10 @@      <string name="system_multitasking_splitscreen_focus_lhs" msgid="3164261844398662518">"화면 분할을 사용하는 중에 왼쪽 또는 위쪽에 있는 앱으로 전환하기"</string>      <string name="system_multitasking_replace" msgid="7410071959803642125">"화면 분할 중: 다른 앱으로 바꾸기"</string>      <string name="system_multitasking_move_to_next_display" msgid="6169737557526976997">"디스플레이 간 활성 창 이동"</string> -    <!-- no translation found for system_desktop_mode_snap_left_window (8636204689945162298) --> -    <skip /> -    <!-- no translation found for system_desktop_mode_snap_right_window (2162560187639411929) --> -    <skip /> -    <!-- no translation found for system_desktop_mode_toggle_maximize_window (4084100093691768239) --> -    <skip /> -    <!-- no translation found for system_desktop_mode_minimize_window (1248714536732927092) --> -    <skip /> +    <string name="system_desktop_mode_snap_left_window" msgid="8636204689945162298">"창을 왼쪽으로 이동"</string> +    <string name="system_desktop_mode_snap_right_window" msgid="2162560187639411929">"창을 오른쪽으로 이동"</string> +    <string name="system_desktop_mode_toggle_maximize_window" msgid="4084100093691768239">"창 최대화"</string> +    <string name="system_desktop_mode_minimize_window" msgid="1248714536732927092">"창 최소화"</string>      <string name="keyboard_shortcut_group_input" msgid="6888282716546625610">"입력"</string>      <string name="input_switch_input_language_next" msgid="3782155659868227855">"다음 언어로 전환"</string>      <string name="input_switch_input_language_previous" msgid="6043341362202336623">"이전 언어로 전환"</string> @@ -1419,7 +1418,6 @@      <string name="shortcut_helper_category_system_controls" msgid="3153344561395751020">"시스템 컨트롤"</string>      <string name="shortcut_helper_category_system_apps" msgid="6001757545472556810">"시스템 앱"</string>      <string name="shortcut_helper_category_multitasking" msgid="7413381961404090136">"멀티태스킹"</string> -    <string name="shortcutHelper_category_recent_apps" msgid="7918731953612377145">"최근 앱"</string>      <string name="shortcutHelper_category_split_screen" msgid="1159669813444812244">"화면 분할"</string>      <string name="shortcut_helper_category_input" msgid="8674018654124839566">"입력"</string>      <string name="shortcut_helper_category_app_shortcuts" msgid="8010249408308587117">"앱 단축키"</string> @@ -1428,25 +1426,31 @@      <string name="shortcut_helper_title" msgid="8567500639300970049">"단축키"</string>      <string name="shortcut_helper_customize_mode_title" msgid="1467657117101096033">"단축키 맞춤설정"</string>      <string name="shortcut_customize_mode_remove_shortcut_dialog_title" msgid="7106420484940737208">"바로가기를 제거하시겠습니까?"</string> +    <!-- no translation found for shortcut_customize_mode_reset_shortcut_dialog_title (8131184731313717780) --> +    <skip />      <string name="shortcut_customize_mode_add_shortcut_description" msgid="6866025005347407696">"키를 눌러 단축키 지정"</string>      <string name="shortcut_customize_mode_remove_shortcut_description" msgid="6851287900585057128">"맞춤 단축어가 영구적으로 삭제됩니다."</string> +    <!-- no translation found for shortcut_customize_mode_reset_shortcut_description (2081849715634358684) --> +    <skip />      <string name="shortcut_helper_search_placeholder" msgid="5488547526269871819">"검색 바로가기"</string>      <string name="shortcut_helper_no_search_results" msgid="8554756497996692160">"검색 결과 없음"</string>      <string name="shortcut_helper_content_description_collapse_icon" msgid="8028015738431664954">"접기 아이콘"</string>      <string name="shortcut_helper_content_description_meta_key" msgid="3989315044342124818">"작업 또는 메타 키 아이콘"</string>      <string name="shortcut_helper_content_description_plus_icon" msgid="6152683734278299020">"더하기 아이콘"</string>      <string name="shortcut_helper_customize_button_text" msgid="3124983502748069338">"맞춤설정"</string> +    <!-- no translation found for shortcut_helper_reset_button_text (2548243844050633472) --> +    <skip />      <string name="shortcut_helper_done_button_text" msgid="7249905942125386191">"완료"</string>      <string name="shortcut_helper_content_description_expand_icon" msgid="1084435697860417390">"확장 아이콘"</string>      <string name="shortcut_helper_key_combinations_or_separator" msgid="7082902112102125540">"또는"</string> -    <!-- no translation found for shortcut_helper_key_combinations_and_conjunction (6138186504075880224) --> -    <skip /> -    <!-- no translation found for shortcut_helper_key_combinations_forward_slash (1238652537199346970) --> -    <skip /> +    <string name="shortcut_helper_key_combinations_and_conjunction" msgid="6138186504075880224">"더하기"</string> +    <string name="shortcut_helper_key_combinations_forward_slash" msgid="1238652537199346970">"슬래시"</string>      <string name="shortcut_helper_content_description_drag_handle" msgid="5092426406009848110">"드래그 핸들"</string>      <string name="shortcut_helper_keyboard_settings_buttons_label" msgid="6720967595915985259">"키보드 설정"</string>      <string name="shortcut_helper_customize_dialog_set_shortcut_button_label" msgid="4754492225010429382">"단축키 설정"</string>      <string name="shortcut_helper_customize_dialog_remove_button_label" msgid="6546386970440176552">"삭제"</string> +    <!-- no translation found for shortcut_helper_customize_dialog_reset_button_label (7645535254306312685) --> +    <skip />      <string name="shortcut_helper_customize_dialog_cancel_button_label" msgid="5595546460431741178">"취소"</string>      <string name="shortcut_helper_add_shortcut_dialog_placeholder" msgid="9154297849458741995">"키를 누르세요."</string>      <string name="shortcut_customizer_key_combination_in_use_error_message" msgid="7693234470526626327">"이미 사용 중인 키 조합입니다. 다른 키를 사용해 보세요."</string> diff --git a/packages/SystemUI/res/values-ky/strings.xml b/packages/SystemUI/res/values-ky/strings.xml index 5a58507e46a5..a857f4ecb3b4 100644 --- a/packages/SystemUI/res/values-ky/strings.xml +++ b/packages/SystemUI/res/values-ky/strings.xml @@ -529,7 +529,10 @@      <string name="communal_widgets_disclaimer_text" msgid="1423545475160506349">"Колдонмону виджет аркылуу ачуу үчүн өзүңүздү ырасташыңыз керек. Алар кулпуланган планшетиңизде да көрүнүп турат. Кээ бир виджеттерди кулпуланган экранда колдоно албайсыз, андыктан аларды ал жерге кошпой эле койгонуңуз оң."</string>      <string name="communal_widgets_disclaimer_button" msgid="4423059765740780753">"Түшүндүм"</string>      <string name="glanceable_hub_lockscreen_affordance_label" msgid="1461611028615752141">"Виджеттер"</string> -    <string name="glanceable_hub_lockscreen_affordance_disabled_text" msgid="511359420883794513">"\"Кулпуланган экрандагы виджеттер\" функциясын ыкчам баскыч катары кошуу үчүн параметрлерге өтүп, анын иштетилгенин текшериңиз."</string> +    <!-- no translation found for glanceable_hub_lockscreen_affordance_disabled_text (599170482297578735) --> +    <skip /> +    <!-- no translation found for glanceable_hub_lockscreen_affordance_action_button_label (7636151133344609375) --> +    <skip />      <string name="accessibility_multi_user_switch_switcher" msgid="5330448341251092660">"Колдонуучуну которуу"</string>      <string name="accessibility_multi_user_list_switcher" msgid="8574105376229857407">"ылдый түшүүчү меню"</string>      <string name="guest_exit_guest_dialog_message" msgid="8183450985628495709">"Бул сеанстагы бардык колдонмолор жана аларга байланыштуу нерселер өчүрүлөт."</string> @@ -1415,7 +1418,6 @@      <string name="shortcut_helper_category_system_controls" msgid="3153344561395751020">"Системанын башкаруу элементтери"</string>      <string name="shortcut_helper_category_system_apps" msgid="6001757545472556810">"Системанын колдонмолору"</string>      <string name="shortcut_helper_category_multitasking" msgid="7413381961404090136">"Бир нече тапшырма аткаруу"</string> -    <string name="shortcutHelper_category_recent_apps" msgid="7918731953612377145">"Акыркы колдонмолор"</string>      <string name="shortcutHelper_category_split_screen" msgid="1159669813444812244">"Экранды бөлүү"</string>      <string name="shortcut_helper_category_input" msgid="8674018654124839566">"Киргизүү"</string>      <string name="shortcut_helper_category_app_shortcuts" msgid="8010249408308587117">"Колдонмонун ыкчам баскычтары"</string> @@ -1424,14 +1426,20 @@      <string name="shortcut_helper_title" msgid="8567500639300970049">"Ыкчам баскычтар"</string>      <string name="shortcut_helper_customize_mode_title" msgid="1467657117101096033">"Ыкчам баскычтарды ыңгайлаштыруу"</string>      <string name="shortcut_customize_mode_remove_shortcut_dialog_title" msgid="7106420484940737208">"Ыкчам баскыч өчүрүлсүнбү?"</string> +    <!-- no translation found for shortcut_customize_mode_reset_shortcut_dialog_title (8131184731313717780) --> +    <skip />      <string name="shortcut_customize_mode_add_shortcut_description" msgid="6866025005347407696">"Ыкчам баскычты дайындоо үчүн баскычты басыңыз"</string>      <string name="shortcut_customize_mode_remove_shortcut_description" msgid="6851287900585057128">"Ушуну менен жеке ыкчам баскычыңыз биротоло өчүрүлөт."</string> +    <!-- no translation found for shortcut_customize_mode_reset_shortcut_description (2081849715634358684) --> +    <skip />      <string name="shortcut_helper_search_placeholder" msgid="5488547526269871819">"Ыкчам баскычтарды издөө"</string>      <string name="shortcut_helper_no_search_results" msgid="8554756497996692160">"Эч нерсе табылган жок"</string>      <string name="shortcut_helper_content_description_collapse_icon" msgid="8028015738431664954">"Жыйыштыруу сүрөтчөсү"</string>      <string name="shortcut_helper_content_description_meta_key" msgid="3989315044342124818">"Аракет же Мета ачкыч сүрөтчөсү"</string>      <string name="shortcut_helper_content_description_plus_icon" msgid="6152683734278299020">"Кошуу сүрөтчөсү"</string>      <string name="shortcut_helper_customize_button_text" msgid="3124983502748069338">"Ыңгайлаштыруу"</string> +    <!-- no translation found for shortcut_helper_reset_button_text (2548243844050633472) --> +    <skip />      <string name="shortcut_helper_done_button_text" msgid="7249905942125386191">"Бүттү"</string>      <string name="shortcut_helper_content_description_expand_icon" msgid="1084435697860417390">"Жайып көрсөтүү сүрөтчөсү"</string>      <string name="shortcut_helper_key_combinations_or_separator" msgid="7082902112102125540">"же"</string> @@ -1441,6 +1449,8 @@      <string name="shortcut_helper_keyboard_settings_buttons_label" msgid="6720967595915985259">"Баскычтоп параметрлери"</string>      <string name="shortcut_helper_customize_dialog_set_shortcut_button_label" msgid="4754492225010429382">"Ыкчам баскычты тууралоо"</string>      <string name="shortcut_helper_customize_dialog_remove_button_label" msgid="6546386970440176552">"Өчүрүү"</string> +    <!-- no translation found for shortcut_helper_customize_dialog_reset_button_label (7645535254306312685) --> +    <skip />      <string name="shortcut_helper_customize_dialog_cancel_button_label" msgid="5595546460431741178">"Cancel"</string>      <string name="shortcut_helper_add_shortcut_dialog_placeholder" msgid="9154297849458741995">"Баскычты басыңыз"</string>      <string name="shortcut_customizer_key_combination_in_use_error_message" msgid="7693234470526626327">"Ачкычтардын айкалышы колдонулууда. Башка ачкычты байкап көрүңүз."</string> diff --git a/packages/SystemUI/res/values-lo/strings.xml b/packages/SystemUI/res/values-lo/strings.xml index 1cfd68ed3f81..19b216d6975c 100644 --- a/packages/SystemUI/res/values-lo/strings.xml +++ b/packages/SystemUI/res/values-lo/strings.xml @@ -529,7 +529,10 @@      <string name="communal_widgets_disclaimer_text" msgid="1423545475160506349">"ເພື່ອເປີດແອັບໂດຍໃຊ້ວິດເຈັດ, ທ່ານຈະຕ້ອງຢັ້ງຢືນວ່າແມ່ນທ່ານ. ນອກຈາກນັ້ນ, ກະລຸນາຮັບຊາບວ່າທຸກຄົນສາມາດເບິ່ງຂໍ້ມູນດັ່ງກ່າວໄດ້, ເຖິງແມ່ນວ່າແທັບເລັດຂອງທ່ານຈະລັອກຢູ່ກໍຕາມ. ວິດເຈັດບາງຢ່າງອາດບໍ່ໄດ້ມີໄວ້ສຳລັບໜ້າຈໍລັອກຂອງທ່ານ ແລະ ອາດບໍ່ປອດໄພທີ່ຈະເພີ່ມໃສ່ບ່ອນນີ້."</string>      <string name="communal_widgets_disclaimer_button" msgid="4423059765740780753">"ເຂົ້າໃຈແລ້ວ"</string>      <string name="glanceable_hub_lockscreen_affordance_label" msgid="1461611028615752141">"ວິດເຈັດ"</string> -    <string name="glanceable_hub_lockscreen_affordance_disabled_text" msgid="511359420883794513">"ເພື່ອເພີ່ມວິດເຈັດຢູ່ໜ້າຈໍລັອກເປັນທາງລັດ, ໃຫ້ແນ່ໃຈວ່າມັນຖືກເປີດການນຳໃຊ້ໃນການຕັ້ງຄ່າ."</string> +    <!-- no translation found for glanceable_hub_lockscreen_affordance_disabled_text (599170482297578735) --> +    <skip /> +    <!-- no translation found for glanceable_hub_lockscreen_affordance_action_button_label (7636151133344609375) --> +    <skip />      <string name="accessibility_multi_user_switch_switcher" msgid="5330448341251092660">"ສະຫຼັບຜູ້ໃຊ້"</string>      <string name="accessibility_multi_user_list_switcher" msgid="8574105376229857407">"ເມນູແບບດຶງລົງ"</string>      <string name="guest_exit_guest_dialog_message" msgid="8183450985628495709">"ແອັບຯແລະຂໍ້ມູນທັງໝົດໃນເຊດຊັນນີ້ຈະຖືກລຶບອອກ."</string> @@ -1415,7 +1418,6 @@      <string name="shortcut_helper_category_system_controls" msgid="3153344561395751020">"ການຄວບຄຸມລະບົບ"</string>      <string name="shortcut_helper_category_system_apps" msgid="6001757545472556810">"ແອັບລະບົບ"</string>      <string name="shortcut_helper_category_multitasking" msgid="7413381961404090136">"ການເຮັດຫຼາຍໜ້າວຽກພ້ອມກັນ"</string> -    <string name="shortcutHelper_category_recent_apps" msgid="7918731953612377145">"ແອັບຫຼ້າສຸດ"</string>      <string name="shortcutHelper_category_split_screen" msgid="1159669813444812244">"ແບ່ງໜ້າຈໍ"</string>      <string name="shortcut_helper_category_input" msgid="8674018654124839566">"ອິນພຸດ"</string>      <string name="shortcut_helper_category_app_shortcuts" msgid="8010249408308587117">"ທາງລັດແອັບ"</string> @@ -1424,14 +1426,20 @@      <string name="shortcut_helper_title" msgid="8567500639300970049">"ຄີລັດ"</string>      <string name="shortcut_helper_customize_mode_title" msgid="1467657117101096033">"ປັບແຕ່ງຄີລັດ"</string>      <string name="shortcut_customize_mode_remove_shortcut_dialog_title" msgid="7106420484940737208">"ລຶບທາງລັດອອກບໍ?"</string> +    <!-- no translation found for shortcut_customize_mode_reset_shortcut_dialog_title (8131184731313717780) --> +    <skip />      <string name="shortcut_customize_mode_add_shortcut_description" msgid="6866025005347407696">"ກົດປຸ່ມເພື່ອກຳນົດທາງລັດ"</string>      <string name="shortcut_customize_mode_remove_shortcut_description" msgid="6851287900585057128">"ການດຳເນີນການນີ້ຈະລຶບທາງລັດທີ່ກຳນົດເອງຂອງທ່ານຢ່າງຖາວອນ."</string> +    <!-- no translation found for shortcut_customize_mode_reset_shortcut_description (2081849715634358684) --> +    <skip />      <string name="shortcut_helper_search_placeholder" msgid="5488547526269871819">"ທາງລັດການຊອກຫາ"</string>      <string name="shortcut_helper_no_search_results" msgid="8554756497996692160">"ບໍ່ມີຜົນການຊອກຫາ"</string>      <string name="shortcut_helper_content_description_collapse_icon" msgid="8028015738431664954">"ໄອຄອນຫຍໍ້ລົງ"</string>      <string name="shortcut_helper_content_description_meta_key" msgid="3989315044342124818">"ໄອຄອນຄຳສັ່ງ ຫຼື ປຸ່ມ Meta"</string>      <string name="shortcut_helper_content_description_plus_icon" msgid="6152683734278299020">"ໄອຄອນໝາຍບວກ"</string>      <string name="shortcut_helper_customize_button_text" msgid="3124983502748069338">"ປັບແຕ່ງ"</string> +    <!-- no translation found for shortcut_helper_reset_button_text (2548243844050633472) --> +    <skip />      <string name="shortcut_helper_done_button_text" msgid="7249905942125386191">"ແລ້ວໆ"</string>      <string name="shortcut_helper_content_description_expand_icon" msgid="1084435697860417390">"ໄອຄອນຂະຫຍາຍ"</string>      <string name="shortcut_helper_key_combinations_or_separator" msgid="7082902112102125540">"ຫຼື"</string> @@ -1441,6 +1449,8 @@      <string name="shortcut_helper_keyboard_settings_buttons_label" msgid="6720967595915985259">"ການຕັ້ງຄ່າແປ້ນພິມ"</string>      <string name="shortcut_helper_customize_dialog_set_shortcut_button_label" msgid="4754492225010429382">"ຕັ້ງທາງລັດ"</string>      <string name="shortcut_helper_customize_dialog_remove_button_label" msgid="6546386970440176552">"ລຶບອອກ"</string> +    <!-- no translation found for shortcut_helper_customize_dialog_reset_button_label (7645535254306312685) --> +    <skip />      <string name="shortcut_helper_customize_dialog_cancel_button_label" msgid="5595546460431741178">"ຍົກເລີກ"</string>      <string name="shortcut_helper_add_shortcut_dialog_placeholder" msgid="9154297849458741995">"ກົດປຸ່ມ"</string>      <string name="shortcut_customizer_key_combination_in_use_error_message" msgid="7693234470526626327">"ນໍາໃຊ້ປຸ່ມປະສົມຢູ່ແລ້ວ. ໃຫ້ລອງປຸ່ມອື່ນ."</string> diff --git a/packages/SystemUI/res/values-lt/strings.xml b/packages/SystemUI/res/values-lt/strings.xml index 3c81e37d1233..6d4c775ab143 100644 --- a/packages/SystemUI/res/values-lt/strings.xml +++ b/packages/SystemUI/res/values-lt/strings.xml @@ -529,7 +529,10 @@      <string name="communal_widgets_disclaimer_text" msgid="1423545475160506349">"Kad galėtumėte atidaryti programą naudodami valdiklį, turėsite patvirtinti savo tapatybę. Be to, atminkite, kad bet kas gali peržiūrėti valdiklius net tada, kai planšetinis kompiuteris užrakintas. Kai kurie valdikliai gali būti neskirti jūsų užrakinimo ekranui ir gali būti nesaugu juos čia pridėti."</string>      <string name="communal_widgets_disclaimer_button" msgid="4423059765740780753">"Supratau"</string>      <string name="glanceable_hub_lockscreen_affordance_label" msgid="1461611028615752141">"Valdikliai"</string> -    <string name="glanceable_hub_lockscreen_affordance_disabled_text" msgid="511359420883794513">"Jei norite pridėti valdiklių šaukinį užrakinimo ekrane, įsitikinkite, kad tai įgalinta nustatymuose."</string> +    <!-- no translation found for glanceable_hub_lockscreen_affordance_disabled_text (599170482297578735) --> +    <skip /> +    <!-- no translation found for glanceable_hub_lockscreen_affordance_action_button_label (7636151133344609375) --> +    <skip />      <string name="accessibility_multi_user_switch_switcher" msgid="5330448341251092660">"Perjungti naudotoją"</string>      <string name="accessibility_multi_user_list_switcher" msgid="8574105376229857407">"išplečiamasis meniu"</string>      <string name="guest_exit_guest_dialog_message" msgid="8183450985628495709">"Bus ištrintos visos šios sesijos programos ir duomenys."</string> @@ -1415,7 +1418,6 @@      <string name="shortcut_helper_category_system_controls" msgid="3153344561395751020">"Sistemos valdikliai"</string>      <string name="shortcut_helper_category_system_apps" msgid="6001757545472556810">"Sistemos programos"</string>      <string name="shortcut_helper_category_multitasking" msgid="7413381961404090136">"Kelių užduočių atlikimas"</string> -    <string name="shortcutHelper_category_recent_apps" msgid="7918731953612377145">"Naujausios programos"</string>      <string name="shortcutHelper_category_split_screen" msgid="1159669813444812244">"Išskaidyto ekrano režimas"</string>      <string name="shortcut_helper_category_input" msgid="8674018654124839566">"Įvestis"</string>      <string name="shortcut_helper_category_app_shortcuts" msgid="8010249408308587117">"Programos spartieji klavišai"</string> @@ -1424,14 +1426,20 @@      <string name="shortcut_helper_title" msgid="8567500639300970049">"Spartieji klavišai"</string>      <string name="shortcut_helper_customize_mode_title" msgid="1467657117101096033">"Sparčiųjų klavišų tinkinimas"</string>      <string name="shortcut_customize_mode_remove_shortcut_dialog_title" msgid="7106420484940737208">"Pašalinti spartųjį klavišą?"</string> +    <!-- no translation found for shortcut_customize_mode_reset_shortcut_dialog_title (8131184731313717780) --> +    <skip />      <string name="shortcut_customize_mode_add_shortcut_description" msgid="6866025005347407696">"Paspauskite klavišą, kad priskirtumėte spartųjį klavišą"</string>      <string name="shortcut_customize_mode_remove_shortcut_description" msgid="6851287900585057128">"Bus visam laikui ištrintas tinkintas spartusis klavišas."</string> +    <!-- no translation found for shortcut_customize_mode_reset_shortcut_description (2081849715634358684) --> +    <skip />      <string name="shortcut_helper_search_placeholder" msgid="5488547526269871819">"Ieškoti sparčiųjų klavišų"</string>      <string name="shortcut_helper_no_search_results" msgid="8554756497996692160">"Nėra jokių paieškos rezultatų"</string>      <string name="shortcut_helper_content_description_collapse_icon" msgid="8028015738431664954">"Sutraukimo piktograma"</string>      <string name="shortcut_helper_content_description_meta_key" msgid="3989315044342124818">"Veiksmo arba metaduomenų klavišo piktograma"</string>      <string name="shortcut_helper_content_description_plus_icon" msgid="6152683734278299020">"Pliuso piktograma"</string>      <string name="shortcut_helper_customize_button_text" msgid="3124983502748069338">"Tinkinti"</string> +    <!-- no translation found for shortcut_helper_reset_button_text (2548243844050633472) --> +    <skip />      <string name="shortcut_helper_done_button_text" msgid="7249905942125386191">"Atlikta"</string>      <string name="shortcut_helper_content_description_expand_icon" msgid="1084435697860417390">"Išskleidimo piktograma"</string>      <string name="shortcut_helper_key_combinations_or_separator" msgid="7082902112102125540">"arba"</string> @@ -1441,6 +1449,8 @@      <string name="shortcut_helper_keyboard_settings_buttons_label" msgid="6720967595915985259">"Klaviatūros nustatymai"</string>      <string name="shortcut_helper_customize_dialog_set_shortcut_button_label" msgid="4754492225010429382">"Nustatyti spartųjį klavišą"</string>      <string name="shortcut_helper_customize_dialog_remove_button_label" msgid="6546386970440176552">"Pašalinti"</string> +    <!-- no translation found for shortcut_helper_customize_dialog_reset_button_label (7645535254306312685) --> +    <skip />      <string name="shortcut_helper_customize_dialog_cancel_button_label" msgid="5595546460431741178">"Atšaukti"</string>      <string name="shortcut_helper_add_shortcut_dialog_placeholder" msgid="9154297849458741995">"Paspauskite klavišą"</string>      <string name="shortcut_customizer_key_combination_in_use_error_message" msgid="7693234470526626327">"Klavišų derinys jau naudojamas. Bandykite naudoti kitą klavišą."</string> diff --git a/packages/SystemUI/res/values-lv/strings.xml b/packages/SystemUI/res/values-lv/strings.xml index 5b553d9a58b6..d5229462285f 100644 --- a/packages/SystemUI/res/values-lv/strings.xml +++ b/packages/SystemUI/res/values-lv/strings.xml @@ -529,7 +529,10 @@      <string name="communal_widgets_disclaimer_text" msgid="1423545475160506349">"Lai atvērtu lietotni, izmantojot logrīku, jums būs jāapstiprina sava identitāte. Turklāt ņemiet vērā, ka ikviens var skatīt logrīkus, pat ja planšetdators ir bloķēts. Iespējams, daži logrīki nav paredzēti izmantošanai bloķēšanas ekrānā, un var nebūt droši tos šeit pievienot."</string>      <string name="communal_widgets_disclaimer_button" msgid="4423059765740780753">"Labi"</string>      <string name="glanceable_hub_lockscreen_affordance_label" msgid="1461611028615752141">"Logrīki"</string> -    <string name="glanceable_hub_lockscreen_affordance_disabled_text" msgid="511359420883794513">"Lai varētu pievienot funkciju “Logrīki bloķēšanas ekrānā” kā saīsni, iestatījumos noteikti iespējojiet šo funkciju."</string> +    <!-- no translation found for glanceable_hub_lockscreen_affordance_disabled_text (599170482297578735) --> +    <skip /> +    <!-- no translation found for glanceable_hub_lockscreen_affordance_action_button_label (7636151133344609375) --> +    <skip />      <string name="accessibility_multi_user_switch_switcher" msgid="5330448341251092660">"Mainīt lietotāju"</string>      <string name="accessibility_multi_user_list_switcher" msgid="8574105376229857407">"novelkamā izvēlne"</string>      <string name="guest_exit_guest_dialog_message" msgid="8183450985628495709">"Tiks dzēstas visas šīs sesijas lietotnes un dati."</string> @@ -875,14 +878,10 @@      <string name="system_multitasking_splitscreen_focus_lhs" msgid="3164261844398662518">"Pāriet uz lietotni pa kreisi/augšā, kamēr izmantojat sadalīto ekrānu."</string>      <string name="system_multitasking_replace" msgid="7410071959803642125">"Ekrāna sadalīšanas režīmā: pārvietot lietotni no viena ekrāna uz otru"</string>      <string name="system_multitasking_move_to_next_display" msgid="6169737557526976997">"Pārvietot aktīvo logu starp displejiem"</string> -    <!-- no translation found for system_desktop_mode_snap_left_window (8636204689945162298) --> -    <skip /> -    <!-- no translation found for system_desktop_mode_snap_right_window (2162560187639411929) --> -    <skip /> -    <!-- no translation found for system_desktop_mode_toggle_maximize_window (4084100093691768239) --> -    <skip /> -    <!-- no translation found for system_desktop_mode_minimize_window (1248714536732927092) --> -    <skip /> +    <string name="system_desktop_mode_snap_left_window" msgid="8636204689945162298">"Pārvietot logu pa kreisi"</string> +    <string name="system_desktop_mode_snap_right_window" msgid="2162560187639411929">"Pārvietot logu pa labi"</string> +    <string name="system_desktop_mode_toggle_maximize_window" msgid="4084100093691768239">"Maksimizēt logu"</string> +    <string name="system_desktop_mode_minimize_window" msgid="1248714536732927092">"Minimizēt logu"</string>      <string name="keyboard_shortcut_group_input" msgid="6888282716546625610">"Ievade"</string>      <string name="input_switch_input_language_next" msgid="3782155659868227855">"Pārslēgt uz nākamo valodu"</string>      <string name="input_switch_input_language_previous" msgid="6043341362202336623">"Pārslēgt uz iepriekšējo valodu"</string> @@ -1419,7 +1418,6 @@      <string name="shortcut_helper_category_system_controls" msgid="3153344561395751020">"Sistēmas vadīklas"</string>      <string name="shortcut_helper_category_system_apps" msgid="6001757545472556810">"Sistēmas lietotnes"</string>      <string name="shortcut_helper_category_multitasking" msgid="7413381961404090136">"Vairākuzdevumu režīms"</string> -    <string name="shortcutHelper_category_recent_apps" msgid="7918731953612377145">"Pēdējās izmantotās lietotnes"</string>      <string name="shortcutHelper_category_split_screen" msgid="1159669813444812244">"Ekrāna sadalīšana"</string>      <string name="shortcut_helper_category_input" msgid="8674018654124839566">"Ievade"</string>      <string name="shortcut_helper_category_app_shortcuts" msgid="8010249408308587117">"Lietotņu saīsnes"</string> @@ -1428,25 +1426,31 @@      <string name="shortcut_helper_title" msgid="8567500639300970049">"Īsinājumtaustiņi"</string>      <string name="shortcut_helper_customize_mode_title" msgid="1467657117101096033">"Īsinājumtaustiņu pielāgošana"</string>      <string name="shortcut_customize_mode_remove_shortcut_dialog_title" msgid="7106420484940737208">"Vai noņemt saīsni?"</string> +    <!-- no translation found for shortcut_customize_mode_reset_shortcut_dialog_title (8131184731313717780) --> +    <skip />      <string name="shortcut_customize_mode_add_shortcut_description" msgid="6866025005347407696">"Lai piešķirtu īsinājumtaustiņu, nospiediet taustiņu"</string>      <string name="shortcut_customize_mode_remove_shortcut_description" msgid="6851287900585057128">"Veicot šo darbību, jūsu pielāgotā saīsne tiks neatgriezeniski izdzēsta."</string> +    <!-- no translation found for shortcut_customize_mode_reset_shortcut_description (2081849715634358684) --> +    <skip />      <string name="shortcut_helper_search_placeholder" msgid="5488547526269871819">"Meklēt saīsnes"</string>      <string name="shortcut_helper_no_search_results" msgid="8554756497996692160">"Nav meklēšanas rezultātu"</string>      <string name="shortcut_helper_content_description_collapse_icon" msgid="8028015738431664954">"Sakļaušanas ikona"</string>      <string name="shortcut_helper_content_description_meta_key" msgid="3989315044342124818">"Darbību jeb meta taustiņa ikona"</string>      <string name="shortcut_helper_content_description_plus_icon" msgid="6152683734278299020">"Pluszīmes ikona"</string>      <string name="shortcut_helper_customize_button_text" msgid="3124983502748069338">"Pielāgot"</string> +    <!-- no translation found for shortcut_helper_reset_button_text (2548243844050633472) --> +    <skip />      <string name="shortcut_helper_done_button_text" msgid="7249905942125386191">"Gatavs"</string>      <string name="shortcut_helper_content_description_expand_icon" msgid="1084435697860417390">"Izvēršanas ikona"</string>      <string name="shortcut_helper_key_combinations_or_separator" msgid="7082902112102125540">"vai"</string> -    <!-- no translation found for shortcut_helper_key_combinations_and_conjunction (6138186504075880224) --> -    <skip /> -    <!-- no translation found for shortcut_helper_key_combinations_forward_slash (1238652537199346970) --> -    <skip /> +    <string name="shortcut_helper_key_combinations_and_conjunction" msgid="6138186504075880224">"plus"</string> +    <string name="shortcut_helper_key_combinations_forward_slash" msgid="1238652537199346970">"uz priekšu vērstā slīpsvītra"</string>      <string name="shortcut_helper_content_description_drag_handle" msgid="5092426406009848110">"Vilkšanas turis"</string>      <string name="shortcut_helper_keyboard_settings_buttons_label" msgid="6720967595915985259">"Tastatūras iestatījumi"</string>      <string name="shortcut_helper_customize_dialog_set_shortcut_button_label" msgid="4754492225010429382">"Iestatīt īsinājumtaustiņu"</string>      <string name="shortcut_helper_customize_dialog_remove_button_label" msgid="6546386970440176552">"Noņemt"</string> +    <!-- no translation found for shortcut_helper_customize_dialog_reset_button_label (7645535254306312685) --> +    <skip />      <string name="shortcut_helper_customize_dialog_cancel_button_label" msgid="5595546460431741178">"Atcelt"</string>      <string name="shortcut_helper_add_shortcut_dialog_placeholder" msgid="9154297849458741995">"Nospiediet taustiņu"</string>      <string name="shortcut_customizer_key_combination_in_use_error_message" msgid="7693234470526626327">"Taustiņu kombinācija jau tiek izmantota. Izmēģiniet citu taustiņu."</string> diff --git a/packages/SystemUI/res/values-mk/strings.xml b/packages/SystemUI/res/values-mk/strings.xml index 32ee791b376c..f991c1b68aac 100644 --- a/packages/SystemUI/res/values-mk/strings.xml +++ b/packages/SystemUI/res/values-mk/strings.xml @@ -529,7 +529,10 @@      <string name="communal_widgets_disclaimer_text" msgid="1423545475160506349">"За да отворите апликација со помош на виџет, ќе треба да потврдите дека сте вие. Покрај тоа, имајте предвид дека секој може да ги гледа виџетите, дури и кога вашиот таблет е заклучен. Некои виџети можеби не се наменети за вашиот заклучен екран, па можеби не е безбедно да се додадат овде."</string>      <string name="communal_widgets_disclaimer_button" msgid="4423059765740780753">"Сфатив"</string>      <string name="glanceable_hub_lockscreen_affordance_label" msgid="1461611028615752141">"Виџети"</string> -    <string name="glanceable_hub_lockscreen_affordance_disabled_text" msgid="511359420883794513">"За да ја додадете „Виџети на заклучен екран“ како кратенка, проверете дали е овозможена во „Поставки“."</string> +    <!-- no translation found for glanceable_hub_lockscreen_affordance_disabled_text (599170482297578735) --> +    <skip /> +    <!-- no translation found for glanceable_hub_lockscreen_affordance_action_button_label (7636151133344609375) --> +    <skip />      <string name="accessibility_multi_user_switch_switcher" msgid="5330448341251092660">"Промени го корисникот"</string>      <string name="accessibility_multi_user_list_switcher" msgid="8574105376229857407">"паѓачко мени"</string>      <string name="guest_exit_guest_dialog_message" msgid="8183450985628495709">"Сите апликации и податоци во сесијава ќе се избришат."</string> @@ -875,14 +878,10 @@      <string name="system_multitasking_splitscreen_focus_lhs" msgid="3164261844398662518">"Префрлете се на апликацијата лево или горе при користењето поделен екран"</string>      <string name="system_multitasking_replace" msgid="7410071959803642125">"При поделен екран: префрлете ги аплик. од едната на другата страна"</string>      <string name="system_multitasking_move_to_next_display" msgid="6169737557526976997">"Движете го активниот прозорец меѓу екраните"</string> -    <!-- no translation found for system_desktop_mode_snap_left_window (8636204689945162298) --> -    <skip /> -    <!-- no translation found for system_desktop_mode_snap_right_window (2162560187639411929) --> -    <skip /> -    <!-- no translation found for system_desktop_mode_toggle_maximize_window (4084100093691768239) --> -    <skip /> -    <!-- no translation found for system_desktop_mode_minimize_window (1248714536732927092) --> -    <skip /> +    <string name="system_desktop_mode_snap_left_window" msgid="8636204689945162298">"Премести го прозорецот налево"</string> +    <string name="system_desktop_mode_snap_right_window" msgid="2162560187639411929">"Премести го прозорецот надесно"</string> +    <string name="system_desktop_mode_toggle_maximize_window" msgid="4084100093691768239">"Максимизирај го прозорецот"</string> +    <string name="system_desktop_mode_minimize_window" msgid="1248714536732927092">"Минимизирај го прозорецот"</string>      <string name="keyboard_shortcut_group_input" msgid="6888282716546625610">"Внесување"</string>      <string name="input_switch_input_language_next" msgid="3782155659868227855">"Префрлете на следниот јазик"</string>      <string name="input_switch_input_language_previous" msgid="6043341362202336623">"Префрлете на претходниот јазик"</string> @@ -1419,7 +1418,6 @@      <string name="shortcut_helper_category_system_controls" msgid="3153344561395751020">"Системски контроли"</string>      <string name="shortcut_helper_category_system_apps" msgid="6001757545472556810">"Системски апликации"</string>      <string name="shortcut_helper_category_multitasking" msgid="7413381961404090136">"Мултитаскинг"</string> -    <string name="shortcutHelper_category_recent_apps" msgid="7918731953612377145">"Неодамнешни апликации"</string>      <string name="shortcutHelper_category_split_screen" msgid="1159669813444812244">"Поделен екран"</string>      <string name="shortcut_helper_category_input" msgid="8674018654124839566">"Внесување"</string>      <string name="shortcut_helper_category_app_shortcuts" msgid="8010249408308587117">"Кратенки за апликации"</string> @@ -1428,25 +1426,31 @@      <string name="shortcut_helper_title" msgid="8567500639300970049">"Кратенки од тастатура"</string>      <string name="shortcut_helper_customize_mode_title" msgid="1467657117101096033">"Приспособете ги кратенките од тастатурата"</string>      <string name="shortcut_customize_mode_remove_shortcut_dialog_title" msgid="7106420484940737208">"Да се отстрани кратенката?"</string> +    <!-- no translation found for shortcut_customize_mode_reset_shortcut_dialog_title (8131184731313717780) --> +    <skip />      <string name="shortcut_customize_mode_add_shortcut_description" msgid="6866025005347407696">"Притиснете го копчето за да доделите кратенка"</string>      <string name="shortcut_customize_mode_remove_shortcut_description" msgid="6851287900585057128">"Ова ќе ја избрише вашата приспособена кратенка трајно."</string> +    <!-- no translation found for shortcut_customize_mode_reset_shortcut_description (2081849715634358684) --> +    <skip />      <string name="shortcut_helper_search_placeholder" msgid="5488547526269871819">"Пребарувајте кратенки"</string>      <string name="shortcut_helper_no_search_results" msgid="8554756497996692160">"Нема резултати од пребарување"</string>      <string name="shortcut_helper_content_description_collapse_icon" msgid="8028015738431664954">"Икона за собирање"</string>      <string name="shortcut_helper_content_description_meta_key" msgid="3989315044342124818">"Икона за дејство или копче за дејство"</string>      <string name="shortcut_helper_content_description_plus_icon" msgid="6152683734278299020">"Икона плус"</string>      <string name="shortcut_helper_customize_button_text" msgid="3124983502748069338">"Приспособете"</string> +    <!-- no translation found for shortcut_helper_reset_button_text (2548243844050633472) --> +    <skip />      <string name="shortcut_helper_done_button_text" msgid="7249905942125386191">"Готово"</string>      <string name="shortcut_helper_content_description_expand_icon" msgid="1084435697860417390">"Икона за проширување"</string>      <string name="shortcut_helper_key_combinations_or_separator" msgid="7082902112102125540">"или"</string> -    <!-- no translation found for shortcut_helper_key_combinations_and_conjunction (6138186504075880224) --> -    <skip /> -    <!-- no translation found for shortcut_helper_key_combinations_forward_slash (1238652537199346970) --> -    <skip /> +    <string name="shortcut_helper_key_combinations_and_conjunction" msgid="6138186504075880224">"плус"</string> +    <string name="shortcut_helper_key_combinations_forward_slash" msgid="1238652537199346970">"коса црта"</string>      <string name="shortcut_helper_content_description_drag_handle" msgid="5092426406009848110">"Рачка за влечење"</string>      <string name="shortcut_helper_keyboard_settings_buttons_label" msgid="6720967595915985259">"Поставки за тастатурата"</string>      <string name="shortcut_helper_customize_dialog_set_shortcut_button_label" msgid="4754492225010429382">"Поставете кратенка"</string>      <string name="shortcut_helper_customize_dialog_remove_button_label" msgid="6546386970440176552">"Отстрани"</string> +    <!-- no translation found for shortcut_helper_customize_dialog_reset_button_label (7645535254306312685) --> +    <skip />      <string name="shortcut_helper_customize_dialog_cancel_button_label" msgid="5595546460431741178">"Откажи"</string>      <string name="shortcut_helper_add_shortcut_dialog_placeholder" msgid="9154297849458741995">"Притиснете го копчето"</string>      <string name="shortcut_customizer_key_combination_in_use_error_message" msgid="7693234470526626327">"Комбинацијата на копчиња веќе се користи. Обидете се со друго копче."</string> diff --git a/packages/SystemUI/res/values-ml/strings.xml b/packages/SystemUI/res/values-ml/strings.xml index ed6653170df6..784c896771d1 100644 --- a/packages/SystemUI/res/values-ml/strings.xml +++ b/packages/SystemUI/res/values-ml/strings.xml @@ -529,7 +529,10 @@      <string name="communal_widgets_disclaimer_text" msgid="1423545475160506349">"വിജറ്റ് ഉപയോഗിച്ച് ഒരു ആപ്പ് തുറക്കാൻ, ഇത് നിങ്ങൾ തന്നെയാണെന്ന് പരിശോധിച്ചുറപ്പിക്കേണ്ടതുണ്ട്. നിങ്ങളുടെ ടാബ്ലെറ്റ് ലോക്കായിരിക്കുമ്പോഴും എല്ലാവർക്കും അത് കാണാനാകുമെന്നതും ഓർക്കുക. ചില വിജറ്റുകൾ നിങ്ങളുടെ ലോക്ക് സ്ക്രീനിന് ഉള്ളതായിരിക്കില്ല, അവ ഇവിടെ ചേർക്കുന്നത് സുരക്ഷിതവുമായിരിക്കില്ല."</string>      <string name="communal_widgets_disclaimer_button" msgid="4423059765740780753">"മനസ്സിലായി"</string>      <string name="glanceable_hub_lockscreen_affordance_label" msgid="1461611028615752141">"വിജറ്റുകൾ"</string> -    <string name="glanceable_hub_lockscreen_affordance_disabled_text" msgid="511359420883794513">"കുറുക്കുവഴിയായി ലോക്ക് സ്ക്രീനിൽ വിജറ്റുകൾ ചേർക്കാൻ, ക്രമീകരണത്തിൽ അത് പ്രവർത്തനക്ഷമമാക്കിയിട്ടുണ്ടെന്ന് ഉറപ്പാക്കുക."</string> +    <!-- no translation found for glanceable_hub_lockscreen_affordance_disabled_text (599170482297578735) --> +    <skip /> +    <!-- no translation found for glanceable_hub_lockscreen_affordance_action_button_label (7636151133344609375) --> +    <skip />      <string name="accessibility_multi_user_switch_switcher" msgid="5330448341251092660">"ഉപയോക്താവ് മാറുക"</string>      <string name="accessibility_multi_user_list_switcher" msgid="8574105376229857407">"പുൾഡൗൺ മെനു"</string>      <string name="guest_exit_guest_dialog_message" msgid="8183450985628495709">"ഈ സെഷനിലെ എല്ലാ ആപ്പുകളും ഡാറ്റയും ഇല്ലാതാക്കും."</string> @@ -875,14 +878,10 @@      <string name="system_multitasking_splitscreen_focus_lhs" msgid="3164261844398662518">"സ്ക്രീൻ വിഭജന മോഡ് ഉപയോഗിക്കുമ്പോൾ ഇടതുവശത്തെ/മുകളിലെ ആപ്പിലേക്ക് മാറൂ"</string>      <string name="system_multitasking_replace" msgid="7410071959803642125">"സ്ക്രീൻ വിഭജന മോഡിൽ: ഒരു ആപ്പിൽ നിന്ന് മറ്റൊന്നിലേക്ക് മാറുക"</string>      <string name="system_multitasking_move_to_next_display" msgid="6169737557526976997">"സജീവ വിൻഡോകൾ ഡിസ്പ്ലേകൾക്ക് ഇടയിൽ നീക്കുക"</string> -    <!-- no translation found for system_desktop_mode_snap_left_window (8636204689945162298) --> -    <skip /> -    <!-- no translation found for system_desktop_mode_snap_right_window (2162560187639411929) --> -    <skip /> -    <!-- no translation found for system_desktop_mode_toggle_maximize_window (4084100093691768239) --> -    <skip /> -    <!-- no translation found for system_desktop_mode_minimize_window (1248714536732927092) --> -    <skip /> +    <string name="system_desktop_mode_snap_left_window" msgid="8636204689945162298">"വിൻഡോ ഇടത്തേക്ക് നീക്കുക"</string> +    <string name="system_desktop_mode_snap_right_window" msgid="2162560187639411929">"വിൻഡോ വലത്തേക്ക് നീക്കുക"</string> +    <string name="system_desktop_mode_toggle_maximize_window" msgid="4084100093691768239">"വിൻഡോ വലുതാക്കുക"</string> +    <string name="system_desktop_mode_minimize_window" msgid="1248714536732927092">"വിൻഡോ ചെറുതാക്കുക"</string>      <string name="keyboard_shortcut_group_input" msgid="6888282716546625610">"ഇൻപുട്ട്"</string>      <string name="input_switch_input_language_next" msgid="3782155659868227855">"അടുത്ത ഭാഷയിലേക്ക് മാറുക"</string>      <string name="input_switch_input_language_previous" msgid="6043341362202336623">"മുമ്പത്തെ ഭാഷയിലേക്ക് മാറുക"</string> @@ -1419,7 +1418,6 @@      <string name="shortcut_helper_category_system_controls" msgid="3153344561395751020">"സിസ്റ്റം നിയന്ത്രണങ്ങൾ"</string>      <string name="shortcut_helper_category_system_apps" msgid="6001757545472556810">"സിസ്റ്റം ആപ്പുകൾ"</string>      <string name="shortcut_helper_category_multitasking" msgid="7413381961404090136">"മൾട്ടിടാസ്കിംഗ്"</string> -    <string name="shortcutHelper_category_recent_apps" msgid="7918731953612377145">"അടുത്തിടെ ഉപയോഗിച്ച ആപ്പുകൾ"</string>      <string name="shortcutHelper_category_split_screen" msgid="1159669813444812244">"സ്ക്രീൻ വിഭജന മോഡ്"</string>      <string name="shortcut_helper_category_input" msgid="8674018654124839566">"ഇൻപുട്ട്"</string>      <string name="shortcut_helper_category_app_shortcuts" msgid="8010249408308587117">"ആപ്പ് കുറുക്കുവഴികൾ"</string> @@ -1428,25 +1426,31 @@      <string name="shortcut_helper_title" msgid="8567500639300970049">"കീബോഡ് കുറുക്കുവഴികൾ"</string>      <string name="shortcut_helper_customize_mode_title" msgid="1467657117101096033">"കീബോർഡ് കുറുക്കുവഴികൾ ഇഷ്ടാനുസൃതമാക്കുക"</string>      <string name="shortcut_customize_mode_remove_shortcut_dialog_title" msgid="7106420484940737208">"കുറുക്കുവഴി നീക്കം ചെയ്യണോ?"</string> +    <!-- no translation found for shortcut_customize_mode_reset_shortcut_dialog_title (8131184731313717780) --> +    <skip />      <string name="shortcut_customize_mode_add_shortcut_description" msgid="6866025005347407696">"കുറുക്കുവഴി അസൈൻ ചെയ്യാൻ കീ അമർത്തുക"</string>      <string name="shortcut_customize_mode_remove_shortcut_description" msgid="6851287900585057128">"ഇത് നിങ്ങളുടെ ഇഷ്ടാനുസൃത കുറുക്കുവഴി ശാശ്വതമായി ഇല്ലാതാക്കും."</string> +    <!-- no translation found for shortcut_customize_mode_reset_shortcut_description (2081849715634358684) --> +    <skip />      <string name="shortcut_helper_search_placeholder" msgid="5488547526269871819">"തിരയൽ കുറുക്കുവഴികൾ"</string>      <string name="shortcut_helper_no_search_results" msgid="8554756497996692160">"തിരയൽ ഫലങ്ങളൊന്നുമില്ല"</string>      <string name="shortcut_helper_content_description_collapse_icon" msgid="8028015738431664954">"ചുരുക്കൽ ഐക്കൺ"</string>      <string name="shortcut_helper_content_description_meta_key" msgid="3989315044342124818">"ആക്ഷൻ/മെറ്റാ കീ ഐക്കൺ"</string>      <string name="shortcut_helper_content_description_plus_icon" msgid="6152683734278299020">"പ്ലസ് ഐക്കൺ"</string>      <string name="shortcut_helper_customize_button_text" msgid="3124983502748069338">"ഇഷ്ടാനുസൃതമാക്കുക"</string> +    <!-- no translation found for shortcut_helper_reset_button_text (2548243844050633472) --> +    <skip />      <string name="shortcut_helper_done_button_text" msgid="7249905942125386191">"പൂർത്തിയായി"</string>      <string name="shortcut_helper_content_description_expand_icon" msgid="1084435697860417390">"വികസിപ്പിക്കൽ ഐക്കൺ"</string>      <string name="shortcut_helper_key_combinations_or_separator" msgid="7082902112102125540">"അല്ലെങ്കിൽ"</string> -    <!-- no translation found for shortcut_helper_key_combinations_and_conjunction (6138186504075880224) --> -    <skip /> -    <!-- no translation found for shortcut_helper_key_combinations_forward_slash (1238652537199346970) --> -    <skip /> +    <string name="shortcut_helper_key_combinations_and_conjunction" msgid="6138186504075880224">"പ്ലസ്"</string> +    <string name="shortcut_helper_key_combinations_forward_slash" msgid="1238652537199346970">"ഫോർവേഡ് സ്ലാഷ്"</string>      <string name="shortcut_helper_content_description_drag_handle" msgid="5092426406009848110">"വലിച്ചിടുന്നതിനുള്ള ഹാൻഡിൽ"</string>      <string name="shortcut_helper_keyboard_settings_buttons_label" msgid="6720967595915985259">"കീബോർഡ് ക്രമീകരണം"</string>      <string name="shortcut_helper_customize_dialog_set_shortcut_button_label" msgid="4754492225010429382">"കുറുക്കുവഴി സജ്ജീകരിക്കുക"</string>      <string name="shortcut_helper_customize_dialog_remove_button_label" msgid="6546386970440176552">"നീക്കം ചെയ്യുക"</string> +    <!-- no translation found for shortcut_helper_customize_dialog_reset_button_label (7645535254306312685) --> +    <skip />      <string name="shortcut_helper_customize_dialog_cancel_button_label" msgid="5595546460431741178">"റദ്ദാക്കുക"</string>      <string name="shortcut_helper_add_shortcut_dialog_placeholder" msgid="9154297849458741995">"കീ അമർത്തുക"</string>      <string name="shortcut_customizer_key_combination_in_use_error_message" msgid="7693234470526626327">"കീ കോമ്പിനേഷൻ ഇതിനകം ഉപയോഗത്തിലുണ്ട്. മറ്റൊരു കീ പരീക്ഷിക്കുക."</string> diff --git a/packages/SystemUI/res/values-mn/strings.xml b/packages/SystemUI/res/values-mn/strings.xml index f2863d098675..6e60b718a6a1 100644 --- a/packages/SystemUI/res/values-mn/strings.xml +++ b/packages/SystemUI/res/values-mn/strings.xml @@ -529,7 +529,10 @@      <string name="communal_widgets_disclaimer_text" msgid="1423545475160506349">"Виджет ашиглан аппыг нээхийн тулд та өөрийгөө мөн болохыг баталгаажуулах шаардлагатай болно. Мөн таны таблет түгжээтэй байсан ч тэдгээрийг дурын хүн үзэж болохыг санаарай. Зарим виджет таны түгжээтэй дэлгэцэд зориулагдаагүй байж магадгүй ба энд нэмэхэд аюултай байж болзошгүй."</string>      <string name="communal_widgets_disclaimer_button" msgid="4423059765740780753">"Ойлголоо"</string>      <string name="glanceable_hub_lockscreen_affordance_label" msgid="1461611028615752141">"Виджет"</string> -    <string name="glanceable_hub_lockscreen_affordance_disabled_text" msgid="511359420883794513">"Түгжээтэй дэлгэц дээр товчлол байдлаар виджет нэмэхийн тулд тохиргоонд виджетийг идэвхжүүлсэн эсэхийг нягтална уу."</string> +    <!-- no translation found for glanceable_hub_lockscreen_affordance_disabled_text (599170482297578735) --> +    <skip /> +    <!-- no translation found for glanceable_hub_lockscreen_affordance_action_button_label (7636151133344609375) --> +    <skip />      <string name="accessibility_multi_user_switch_switcher" msgid="5330448341251092660">"Хэрэглэгчийг сэлгэх"</string>      <string name="accessibility_multi_user_list_switcher" msgid="8574105376229857407">"эвхмэл цэс"</string>      <string name="guest_exit_guest_dialog_message" msgid="8183450985628495709">"Энэ харилцан үйлдлийн бүх апп болон дата устах болно."</string> @@ -875,14 +878,10 @@      <string name="system_multitasking_splitscreen_focus_lhs" msgid="3164261844398662518">"Дэлгэц хуваахыг ашиглаж байхдаа зүүн талд эсвэл дээр байх апп руу сэлгэ"</string>      <string name="system_multitasking_replace" msgid="7410071959803642125">"Дэлгэц хуваах үеэр: аппыг нэгээс нөгөөгөөр солих"</string>      <string name="system_multitasking_move_to_next_display" msgid="6169737557526976997">"Идэвхтэй цонхыг дэлгэц хооронд зөөх"</string> -    <!-- no translation found for system_desktop_mode_snap_left_window (8636204689945162298) --> -    <skip /> -    <!-- no translation found for system_desktop_mode_snap_right_window (2162560187639411929) --> -    <skip /> -    <!-- no translation found for system_desktop_mode_toggle_maximize_window (4084100093691768239) --> -    <skip /> -    <!-- no translation found for system_desktop_mode_minimize_window (1248714536732927092) --> -    <skip /> +    <string name="system_desktop_mode_snap_left_window" msgid="8636204689945162298">"Цонхыг зүүн тийш зөөх"</string> +    <string name="system_desktop_mode_snap_right_window" msgid="2162560187639411929">"Цонхыг баруун тийш зөөх"</string> +    <string name="system_desktop_mode_toggle_maximize_window" msgid="4084100093691768239">"Цонхыг томруулах"</string> +    <string name="system_desktop_mode_minimize_window" msgid="1248714536732927092">"Цонхыг багасгах"</string>      <string name="keyboard_shortcut_group_input" msgid="6888282716546625610">"Оролт"</string>      <string name="input_switch_input_language_next" msgid="3782155659868227855">"Дараагийн хэл рүү сэлгэх"</string>      <string name="input_switch_input_language_previous" msgid="6043341362202336623">"Өмнөх хэл рүү сэлгэх"</string> @@ -1419,7 +1418,6 @@      <string name="shortcut_helper_category_system_controls" msgid="3153344561395751020">"Системийн тохиргоо"</string>      <string name="shortcut_helper_category_system_apps" msgid="6001757545472556810">"Системийн аппууд"</string>      <string name="shortcut_helper_category_multitasking" msgid="7413381961404090136">"Олон ажил зэрэг хийх"</string> -    <string name="shortcutHelper_category_recent_apps" msgid="7918731953612377145">"Саяхны аппууд"</string>      <string name="shortcutHelper_category_split_screen" msgid="1159669813444812244">"Дэлгэцийг хуваах"</string>      <string name="shortcut_helper_category_input" msgid="8674018654124839566">"Оролт"</string>      <string name="shortcut_helper_category_app_shortcuts" msgid="8010249408308587117">"Аппын товчлол"</string> @@ -1428,25 +1426,31 @@      <string name="shortcut_helper_title" msgid="8567500639300970049">"Товчлуурын шууд холбоос"</string>      <string name="shortcut_helper_customize_mode_title" msgid="1467657117101096033">"Товчлуурын шууд холбоосыг өөрчлөх"</string>      <string name="shortcut_customize_mode_remove_shortcut_dialog_title" msgid="7106420484940737208">"Товчлолыг хасах уу?"</string> +    <!-- no translation found for shortcut_customize_mode_reset_shortcut_dialog_title (8131184731313717780) --> +    <skip />      <string name="shortcut_customize_mode_add_shortcut_description" msgid="6866025005347407696">"Товчлол оноохын тулд товч дарна уу"</string>      <string name="shortcut_customize_mode_remove_shortcut_description" msgid="6851287900585057128">"Энэ нь таны захиалгат товчлолыг бүрмөсөн устгана."</string> +    <!-- no translation found for shortcut_customize_mode_reset_shortcut_description (2081849715634358684) --> +    <skip />      <string name="shortcut_helper_search_placeholder" msgid="5488547526269871819">"Товчлолууд хайх"</string>      <string name="shortcut_helper_no_search_results" msgid="8554756497996692160">"Ямар ч хайлтын илэрц байхгүй"</string>      <string name="shortcut_helper_content_description_collapse_icon" msgid="8028015738431664954">"Хураах дүрс тэмдэг"</string>      <string name="shortcut_helper_content_description_meta_key" msgid="3989315044342124818">"Үйлдлийн товч буюу өөрөөр Мета товчийн дүрс тэмдэг"</string>      <string name="shortcut_helper_content_description_plus_icon" msgid="6152683734278299020">"Нэмэх дүрс тэмдэг"</string>      <string name="shortcut_helper_customize_button_text" msgid="3124983502748069338">"Өөрчлөх"</string> +    <!-- no translation found for shortcut_helper_reset_button_text (2548243844050633472) --> +    <skip />      <string name="shortcut_helper_done_button_text" msgid="7249905942125386191">"Болсон"</string>      <string name="shortcut_helper_content_description_expand_icon" msgid="1084435697860417390">"Дэлгэх дүрс тэмдэг"</string>      <string name="shortcut_helper_key_combinations_or_separator" msgid="7082902112102125540">"эсвэл"</string> -    <!-- no translation found for shortcut_helper_key_combinations_and_conjunction (6138186504075880224) --> -    <skip /> -    <!-- no translation found for shortcut_helper_key_combinations_forward_slash (1238652537199346970) --> -    <skip /> +    <string name="shortcut_helper_key_combinations_and_conjunction" msgid="6138186504075880224">"нэмэх нь"</string> +    <string name="shortcut_helper_key_combinations_forward_slash" msgid="1238652537199346970">"урагшаа ташуу зураас"</string>      <string name="shortcut_helper_content_description_drag_handle" msgid="5092426406009848110">"Чирэх бариул"</string>      <string name="shortcut_helper_keyboard_settings_buttons_label" msgid="6720967595915985259">"Гарын тохиргоо"</string>      <string name="shortcut_helper_customize_dialog_set_shortcut_button_label" msgid="4754492225010429382">"Товчлол тохируулах"</string>      <string name="shortcut_helper_customize_dialog_remove_button_label" msgid="6546386970440176552">"Хасах"</string> +    <!-- no translation found for shortcut_helper_customize_dialog_reset_button_label (7645535254306312685) --> +    <skip />      <string name="shortcut_helper_customize_dialog_cancel_button_label" msgid="5595546460431741178">"Цуцлах"</string>      <string name="shortcut_helper_add_shortcut_dialog_placeholder" msgid="9154297849458741995">"Товч дарна уу"</string>      <string name="shortcut_customizer_key_combination_in_use_error_message" msgid="7693234470526626327">"Товчийн хослолыг аль хэдийн ашиглаж байна. Өөр товч туршиж үзнэ үү."</string> diff --git a/packages/SystemUI/res/values-mr/strings.xml b/packages/SystemUI/res/values-mr/strings.xml index 35ee42f838ef..c21a666026af 100644 --- a/packages/SystemUI/res/values-mr/strings.xml +++ b/packages/SystemUI/res/values-mr/strings.xml @@ -529,7 +529,10 @@      <string name="communal_widgets_disclaimer_text" msgid="1423545475160506349">"विजेट वापरून अॅप उघडण्यासाठी, तुम्हाला हे तुम्हीच असल्याची पडताळणी करावी लागेल. तसेच, लक्षात ठेवा, तुमचा टॅबलेट लॉक असतानादेखील कोणीही ती पाहू शकते. काही विजेट कदाचित तुमच्या लॉक स्क्रीनसाठी नाहीत आणि ती इथे जोडणे असुरक्षित असू शकते."</string>      <string name="communal_widgets_disclaimer_button" msgid="4423059765740780753">"समजले"</string>      <string name="glanceable_hub_lockscreen_affordance_label" msgid="1461611028615752141">"विजेट"</string> -    <string name="glanceable_hub_lockscreen_affordance_disabled_text" msgid="511359420883794513">"विजेट शॉर्टकट म्हणून लॉक स्क्रीनवर जोडण्यासाठी, सेटिंग्जमध्ये ती सुरू असल्याची खात्री करा."</string> +    <!-- no translation found for glanceable_hub_lockscreen_affordance_disabled_text (599170482297578735) --> +    <skip /> +    <!-- no translation found for glanceable_hub_lockscreen_affordance_action_button_label (7636151133344609375) --> +    <skip />      <string name="accessibility_multi_user_switch_switcher" msgid="5330448341251092660">"वापरकर्ता स्विच करा"</string>      <string name="accessibility_multi_user_list_switcher" msgid="8574105376229857407">"पुलडाउन मेनू"</string>      <string name="guest_exit_guest_dialog_message" msgid="8183450985628495709">"या सत्रातील सर्व अॅप्स आणि डेटा हटवला जाईल."</string> @@ -1415,7 +1418,6 @@      <string name="shortcut_helper_category_system_controls" msgid="3153344561395751020">"सिस्टीमची नियंत्रणे"</string>      <string name="shortcut_helper_category_system_apps" msgid="6001757545472556810">"सिस्टीम अॅप्स"</string>      <string name="shortcut_helper_category_multitasking" msgid="7413381961404090136">"मल्टिटास्किंग"</string> -    <string name="shortcutHelper_category_recent_apps" msgid="7918731953612377145">"अलीकडील अॅप्स"</string>      <string name="shortcutHelper_category_split_screen" msgid="1159669813444812244">"स्प्लिट स्क्रीन"</string>      <string name="shortcut_helper_category_input" msgid="8674018654124839566">"इनपुट"</string>      <string name="shortcut_helper_category_app_shortcuts" msgid="8010249408308587117">"अॅप शॉर्टकट"</string> @@ -1424,14 +1426,20 @@      <string name="shortcut_helper_title" msgid="8567500639300970049">"कीबोर्ड शॉर्टकट"</string>      <string name="shortcut_helper_customize_mode_title" msgid="1467657117101096033">"कीबोर्ड शॉर्टकट कस्टमाइझ करा"</string>      <string name="shortcut_customize_mode_remove_shortcut_dialog_title" msgid="7106420484940737208">"शॉर्टकट काढून टाकायचा आहे का?"</string> +    <!-- no translation found for shortcut_customize_mode_reset_shortcut_dialog_title (8131184731313717780) --> +    <skip />      <string name="shortcut_customize_mode_add_shortcut_description" msgid="6866025005347407696">"शॉर्टकट असाइन करण्यासाठी की प्रेस करा"</string>      <string name="shortcut_customize_mode_remove_shortcut_description" msgid="6851287900585057128">"यामुळे तुमचा कस्टम शॉर्टकट कायमचा हटवला जाईल."</string> +    <!-- no translation found for shortcut_customize_mode_reset_shortcut_description (2081849715634358684) --> +    <skip />      <string name="shortcut_helper_search_placeholder" msgid="5488547526269871819">"शोधण्यासाठी शॉर्टकट"</string>      <string name="shortcut_helper_no_search_results" msgid="8554756497996692160">"कोणतेही शोध परिणाम नाहीत"</string>      <string name="shortcut_helper_content_description_collapse_icon" msgid="8028015738431664954">"कोलॅप्स करा आयकन"</string>      <string name="shortcut_helper_content_description_meta_key" msgid="3989315044342124818">"कृती किंवा मेटा की आयकन"</string>      <string name="shortcut_helper_content_description_plus_icon" msgid="6152683734278299020">"अधिक आयकन"</string>      <string name="shortcut_helper_customize_button_text" msgid="3124983502748069338">"कस्टमाइझ करा"</string> +    <!-- no translation found for shortcut_helper_reset_button_text (2548243844050633472) --> +    <skip />      <string name="shortcut_helper_done_button_text" msgid="7249905942125386191">"पूर्ण झाले"</string>      <string name="shortcut_helper_content_description_expand_icon" msgid="1084435697860417390">"विस्तार करा आयकन"</string>      <string name="shortcut_helper_key_combinations_or_separator" msgid="7082902112102125540">"किंवा"</string> @@ -1441,6 +1449,8 @@      <string name="shortcut_helper_keyboard_settings_buttons_label" msgid="6720967595915985259">"कीबोर्ड सेटिंग्ज"</string>      <string name="shortcut_helper_customize_dialog_set_shortcut_button_label" msgid="4754492225010429382">"शॉर्टकट सेट करा"</string>      <string name="shortcut_helper_customize_dialog_remove_button_label" msgid="6546386970440176552">"काढून टाका"</string> +    <!-- no translation found for shortcut_helper_customize_dialog_reset_button_label (7645535254306312685) --> +    <skip />      <string name="shortcut_helper_customize_dialog_cancel_button_label" msgid="5595546460431741178">"रद्द करा"</string>      <string name="shortcut_helper_add_shortcut_dialog_placeholder" msgid="9154297849458741995">"की प्रेस करा"</string>      <string name="shortcut_customizer_key_combination_in_use_error_message" msgid="7693234470526626327">"की कॉम्बिनेशन आधीपासून वापरले जात आहे. दुसरी की वापरून पहा."</string> diff --git a/packages/SystemUI/res/values-ms/strings.xml b/packages/SystemUI/res/values-ms/strings.xml index cfb95a2b7908..62f85a5e9fb2 100644 --- a/packages/SystemUI/res/values-ms/strings.xml +++ b/packages/SystemUI/res/values-ms/strings.xml @@ -529,7 +529,10 @@      <string name="communal_widgets_disclaimer_text" msgid="1423545475160506349">"Untuk membuka apl menggunakan widget, anda perlu mengesahkan identiti anda. Selain itu, perlu diingat bahawa sesiapa sahaja boleh melihat widget tersebut, walaupun semasa tablet anda dikunci. Sesetengah widget mungkin tidak sesuai untuk skrin kunci anda dan mungkin tidak selamat untuk ditambahkan di sini."</string>      <string name="communal_widgets_disclaimer_button" msgid="4423059765740780753">"OK"</string>      <string name="glanceable_hub_lockscreen_affordance_label" msgid="1461611028615752141">"Widget"</string> -    <string name="glanceable_hub_lockscreen_affordance_disabled_text" msgid="511359420883794513">"Untuk menambahkan Widget pada skrin kunci sebagai pintasan, pastikan skrin kunci itu didayakan dalam tetapan."</string> +    <!-- no translation found for glanceable_hub_lockscreen_affordance_disabled_text (599170482297578735) --> +    <skip /> +    <!-- no translation found for glanceable_hub_lockscreen_affordance_action_button_label (7636151133344609375) --> +    <skip />      <string name="accessibility_multi_user_switch_switcher" msgid="5330448341251092660">"Tukar pengguna"</string>      <string name="accessibility_multi_user_list_switcher" msgid="8574105376229857407">"menu tarik turun"</string>      <string name="guest_exit_guest_dialog_message" msgid="8183450985628495709">"Semua apl dan data dalam sesi ini akan dipadam."</string> @@ -875,14 +878,10 @@      <string name="system_multitasking_splitscreen_focus_lhs" msgid="3164261844398662518">"Tukar kepada apl di sebelah kiri/atas semasa menggunakan skrin pisah"</string>      <string name="system_multitasking_replace" msgid="7410071959803642125">"Semasa skrin pisah: gantikan apl daripada satu apl kepada apl lain"</string>      <string name="system_multitasking_move_to_next_display" msgid="6169737557526976997">"Alihkan tetingkap aktif antara paparan"</string> -    <!-- no translation found for system_desktop_mode_snap_left_window (8636204689945162298) --> -    <skip /> -    <!-- no translation found for system_desktop_mode_snap_right_window (2162560187639411929) --> -    <skip /> -    <!-- no translation found for system_desktop_mode_toggle_maximize_window (4084100093691768239) --> -    <skip /> -    <!-- no translation found for system_desktop_mode_minimize_window (1248714536732927092) --> -    <skip /> +    <string name="system_desktop_mode_snap_left_window" msgid="8636204689945162298">"Alihkan tetingkap ke sebelah kiri"</string> +    <string name="system_desktop_mode_snap_right_window" msgid="2162560187639411929">"Alihkan tetingkap ke sebelah kanan"</string> +    <string name="system_desktop_mode_toggle_maximize_window" msgid="4084100093691768239">"Maksimumkan tetingkap"</string> +    <string name="system_desktop_mode_minimize_window" msgid="1248714536732927092">"Minimumkan tetingkap"</string>      <string name="keyboard_shortcut_group_input" msgid="6888282716546625610">"Input"</string>      <string name="input_switch_input_language_next" msgid="3782155659868227855">"Beralih kepada bahasa seterusnya"</string>      <string name="input_switch_input_language_previous" msgid="6043341362202336623">"Beralih kepada bahasa sebelumnya"</string> @@ -1419,7 +1418,6 @@      <string name="shortcut_helper_category_system_controls" msgid="3153344561395751020">"Kawalan sistem"</string>      <string name="shortcut_helper_category_system_apps" msgid="6001757545472556810">"Apl sistem"</string>      <string name="shortcut_helper_category_multitasking" msgid="7413381961404090136">"Berbilang tugas"</string> -    <string name="shortcutHelper_category_recent_apps" msgid="7918731953612377145">"Apl terbaharu"</string>      <string name="shortcutHelper_category_split_screen" msgid="1159669813444812244">"Skrin pisah"</string>      <string name="shortcut_helper_category_input" msgid="8674018654124839566">"Input"</string>      <string name="shortcut_helper_category_app_shortcuts" msgid="8010249408308587117">"Pintasan apl"</string> @@ -1428,25 +1426,31 @@      <string name="shortcut_helper_title" msgid="8567500639300970049">"Pintasan papan kekunci"</string>      <string name="shortcut_helper_customize_mode_title" msgid="1467657117101096033">"Sesuaikan pintasan papan kekunci"</string>      <string name="shortcut_customize_mode_remove_shortcut_dialog_title" msgid="7106420484940737208">"Alih keluar pintasan?"</string> +    <!-- no translation found for shortcut_customize_mode_reset_shortcut_dialog_title (8131184731313717780) --> +    <skip />      <string name="shortcut_customize_mode_add_shortcut_description" msgid="6866025005347407696">"Tekan kekunci untuk menetapkan pintasan"</string>      <string name="shortcut_customize_mode_remove_shortcut_description" msgid="6851287900585057128">"Tindakan ini akan memadamkan pintasan tersuai anda secara kekal."</string> +    <!-- no translation found for shortcut_customize_mode_reset_shortcut_description (2081849715634358684) --> +    <skip />      <string name="shortcut_helper_search_placeholder" msgid="5488547526269871819">"Pintasan carian"</string>      <string name="shortcut_helper_no_search_results" msgid="8554756497996692160">"Tiada hasil carian"</string>      <string name="shortcut_helper_content_description_collapse_icon" msgid="8028015738431664954">"Kuncupkan ikon"</string>      <string name="shortcut_helper_content_description_meta_key" msgid="3989315044342124818">"Ikon kekunci tindakan atau Meta"</string>      <string name="shortcut_helper_content_description_plus_icon" msgid="6152683734278299020">"Ikon tambah"</string>      <string name="shortcut_helper_customize_button_text" msgid="3124983502748069338">"Sesuaikan"</string> +    <!-- no translation found for shortcut_helper_reset_button_text (2548243844050633472) --> +    <skip />      <string name="shortcut_helper_done_button_text" msgid="7249905942125386191">"Selesai"</string>      <string name="shortcut_helper_content_description_expand_icon" msgid="1084435697860417390">"Kembangkan ikon"</string>      <string name="shortcut_helper_key_combinations_or_separator" msgid="7082902112102125540">"atau"</string> -    <!-- no translation found for shortcut_helper_key_combinations_and_conjunction (6138186504075880224) --> -    <skip /> -    <!-- no translation found for shortcut_helper_key_combinations_forward_slash (1238652537199346970) --> -    <skip /> +    <string name="shortcut_helper_key_combinations_and_conjunction" msgid="6138186504075880224">"tambah"</string> +    <string name="shortcut_helper_key_combinations_forward_slash" msgid="1238652537199346970">"garis condong ke hadapan"</string>      <string name="shortcut_helper_content_description_drag_handle" msgid="5092426406009848110">"Pemegang seret"</string>      <string name="shortcut_helper_keyboard_settings_buttons_label" msgid="6720967595915985259">"Tetapan Papan Kekunci"</string>      <string name="shortcut_helper_customize_dialog_set_shortcut_button_label" msgid="4754492225010429382">"Tetapkan pintasan"</string>      <string name="shortcut_helper_customize_dialog_remove_button_label" msgid="6546386970440176552">"Alih keluar"</string> +    <!-- no translation found for shortcut_helper_customize_dialog_reset_button_label (7645535254306312685) --> +    <skip />      <string name="shortcut_helper_customize_dialog_cancel_button_label" msgid="5595546460431741178">"Batal"</string>      <string name="shortcut_helper_add_shortcut_dialog_placeholder" msgid="9154297849458741995">"Tekan kekunci"</string>      <string name="shortcut_customizer_key_combination_in_use_error_message" msgid="7693234470526626327">"Gabungan kekunci sudah digunakan. Cuba kekunci lain."</string> diff --git a/packages/SystemUI/res/values-my/strings.xml b/packages/SystemUI/res/values-my/strings.xml index 8cce3718a571..393f2f2dd46b 100644 --- a/packages/SystemUI/res/values-my/strings.xml +++ b/packages/SystemUI/res/values-my/strings.xml @@ -529,7 +529,10 @@      <string name="communal_widgets_disclaimer_text" msgid="1423545475160506349">"ဝိဂျက်သုံး၍ အက်ပ်ဖွင့်ရန်အတွက် သင်ဖြစ်ကြောင်း အတည်ပြုရန်လိုသည်။ ထို့ပြင် သင့်တက်ဘလက် လော့ခ်ချထားချိန်၌ပင် မည်သူမဆို ၎င်းတို့ကို ကြည့်နိုင်ကြောင်း သတိပြုပါ။ ဝိဂျက်အချို့ကို လော့ခ်မျက်နှာပြင်အတွက် ရည်ရွယ်ထားခြင်း မရှိသဖြင့် ဤနေရာတွင် ထည့်ပါက မလုံခြုံနိုင်ပါ။"</string>      <string name="communal_widgets_disclaimer_button" msgid="4423059765740780753">"နားလည်ပြီ"</string>      <string name="glanceable_hub_lockscreen_affordance_label" msgid="1461611028615752141">"ဝိဂျက်များ"</string> -    <string name="glanceable_hub_lockscreen_affordance_disabled_text" msgid="511359420883794513">"လော့ခ်မျက်နှာပြင်တွင် ဖြတ်လမ်းလင့်ခ်အဖြစ် ‘ဝိဂျက်များ’ ထည့်ရန် ၎င်းကို ဆက်တင်များတွင်ဖွင့်ထားကြောင်း သေချာပါစေ။"</string> +    <!-- no translation found for glanceable_hub_lockscreen_affordance_disabled_text (599170482297578735) --> +    <skip /> +    <!-- no translation found for glanceable_hub_lockscreen_affordance_action_button_label (7636151133344609375) --> +    <skip />      <string name="accessibility_multi_user_switch_switcher" msgid="5330448341251092660">"အသုံးပြုသူကို ပြောင်းလဲရန်"</string>      <string name="accessibility_multi_user_list_switcher" msgid="8574105376229857407">"ဆွဲချမီနူး"</string>      <string name="guest_exit_guest_dialog_message" msgid="8183450985628495709">"ဒီချိတ်ဆက်မှု ထဲက အက်ပ်များ အားလုံး နှင့် ဒေတာကို ဖျက်ပစ်မည်။"</string> @@ -875,14 +878,10 @@      <string name="system_multitasking_splitscreen_focus_lhs" msgid="3164261844398662518">"မျက်နှာပြင် ခွဲ၍ပြသခြင်းသုံးစဉ် ဘယ် (သို့) အထက်ရှိအက်ပ်သို့ ပြောင်းရန်"</string>      <string name="system_multitasking_replace" msgid="7410071959803642125">"မျက်နှာပြင် ခွဲ၍ပြသစဉ်- အက်ပ်တစ်ခုကို နောက်တစ်ခုနှင့် အစားထိုးရန်"</string>      <string name="system_multitasking_move_to_next_display" msgid="6169737557526976997">"လက်ရှိဝင်းဒိုးကို ပြကွက်များအကြား ရွှေ့ခြင်း"</string> -    <!-- no translation found for system_desktop_mode_snap_left_window (8636204689945162298) --> -    <skip /> -    <!-- no translation found for system_desktop_mode_snap_right_window (2162560187639411929) --> -    <skip /> -    <!-- no translation found for system_desktop_mode_toggle_maximize_window (4084100093691768239) --> -    <skip /> -    <!-- no translation found for system_desktop_mode_minimize_window (1248714536732927092) --> -    <skip /> +    <string name="system_desktop_mode_snap_left_window" msgid="8636204689945162298">"ဝင်းဒိုးကို ဘယ်ဘက်ရွှေ့ရန်"</string> +    <string name="system_desktop_mode_snap_right_window" msgid="2162560187639411929">"ဝင်းဒိုးကို ညာဘက်ရွှေ့ရန်"</string> +    <string name="system_desktop_mode_toggle_maximize_window" msgid="4084100093691768239">"ဝင်ဒိုးကို ချဲ့ရန်"</string> +    <string name="system_desktop_mode_minimize_window" msgid="1248714536732927092">"ဝင်းဒိုးကို ချုံ့ရန်"</string>      <string name="keyboard_shortcut_group_input" msgid="6888282716546625610">"စာရိုက်ခြင်း"</string>      <string name="input_switch_input_language_next" msgid="3782155659868227855">"နောက်ဘာသာစကားသို့ ပြောင်းရန်"</string>      <string name="input_switch_input_language_previous" msgid="6043341362202336623">"ယခင်ဘာသာစကားသို့ ပြောင်းရန်"</string> @@ -1419,7 +1418,6 @@      <string name="shortcut_helper_category_system_controls" msgid="3153344561395751020">"စနစ် ထိန်းချုပ်မှုများ"</string>      <string name="shortcut_helper_category_system_apps" msgid="6001757545472556810">"စနစ် အက်ပ်များ"</string>      <string name="shortcut_helper_category_multitasking" msgid="7413381961404090136">"တစ်ပြိုင်နက် များစွာလုပ်ခြင်း"</string> -    <string name="shortcutHelper_category_recent_apps" msgid="7918731953612377145">"မကြာသေးမီက အက်ပ်များ"</string>      <string name="shortcutHelper_category_split_screen" msgid="1159669813444812244">"မျက်နှာပြင် ခွဲ၍ပြသခြင်း"</string>      <string name="shortcut_helper_category_input" msgid="8674018654124839566">"ထည့်သွင်းမှု"</string>      <string name="shortcut_helper_category_app_shortcuts" msgid="8010249408308587117">"အက်ပ်ဖြတ်လမ်းလင့်ခ်များ"</string> @@ -1428,25 +1426,31 @@      <string name="shortcut_helper_title" msgid="8567500639300970049">"လက်ကွက်ဖြတ်လမ်းများ"</string>      <string name="shortcut_helper_customize_mode_title" msgid="1467657117101096033">"လက်ကွက်ဖြတ်လမ်းများကို စိတ်ကြိုက်လုပ်ခြင်း"</string>      <string name="shortcut_customize_mode_remove_shortcut_dialog_title" msgid="7106420484940737208">"ဖြတ်လမ်းလင့်ခ် ဖယ်ရှားမလား။"</string> +    <!-- no translation found for shortcut_customize_mode_reset_shortcut_dialog_title (8131184731313717780) --> +    <skip />      <string name="shortcut_customize_mode_add_shortcut_description" msgid="6866025005347407696">"ဖြတ်လမ်းလင့်ခ်သတ်မှတ်ရန် ကီးကို နှိပ်ပါ"</string>      <string name="shortcut_customize_mode_remove_shortcut_description" msgid="6851287900585057128">"၎င်းသည် သင့်စိတ်ကြိုက် ဖြတ်လမ်းလင့်ခ်ကို အပြီးဖျက်ပါမည်။"</string> +    <!-- no translation found for shortcut_customize_mode_reset_shortcut_description (2081849715634358684) --> +    <skip />      <string name="shortcut_helper_search_placeholder" msgid="5488547526269871819">"ဖြတ်လမ်းများ ရှာရန်"</string>      <string name="shortcut_helper_no_search_results" msgid="8554756497996692160">"ရှာဖွေမှုရလဒ် မရှိပါ"</string>      <string name="shortcut_helper_content_description_collapse_icon" msgid="8028015738431664954">"လျှော့ပြရန် သင်္ကေတ"</string>      <string name="shortcut_helper_content_description_meta_key" msgid="3989315044342124818">"လုပ်ဆောင်ချက် (သို့) Meta ကီးသင်္ကေတ"</string>      <string name="shortcut_helper_content_description_plus_icon" msgid="6152683734278299020">"အပေါင်းသင်္ကေတ"</string>      <string name="shortcut_helper_customize_button_text" msgid="3124983502748069338">"စိတ်ကြိုက်လုပ်ရန်"</string> +    <!-- no translation found for shortcut_helper_reset_button_text (2548243844050633472) --> +    <skip />      <string name="shortcut_helper_done_button_text" msgid="7249905942125386191">"ပြီးပြီ"</string>      <string name="shortcut_helper_content_description_expand_icon" msgid="1084435697860417390">"ပိုပြရန် သင်္ကေတ"</string>      <string name="shortcut_helper_key_combinations_or_separator" msgid="7082902112102125540">"သို့မဟုတ်"</string> -    <!-- no translation found for shortcut_helper_key_combinations_and_conjunction (6138186504075880224) --> -    <skip /> -    <!-- no translation found for shortcut_helper_key_combinations_forward_slash (1238652537199346970) --> -    <skip /> +    <string name="shortcut_helper_key_combinations_and_conjunction" msgid="6138186504075880224">"အပေါင်း"</string> +    <string name="shortcut_helper_key_combinations_forward_slash" msgid="1238652537199346970">"ညာဘက်မျဉ်းစောင်း"</string>      <string name="shortcut_helper_content_description_drag_handle" msgid="5092426406009848110">"ဖိဆွဲအထိန်း"</string>      <string name="shortcut_helper_keyboard_settings_buttons_label" msgid="6720967595915985259">"ကီးဘုတ်ဆက်တင်များ"</string>      <string name="shortcut_helper_customize_dialog_set_shortcut_button_label" msgid="4754492225010429382">"ဖြတ်လမ်း သတ်မှတ်ရန်"</string>      <string name="shortcut_helper_customize_dialog_remove_button_label" msgid="6546386970440176552">"ဖယ်ရှားရန်"</string> +    <!-- no translation found for shortcut_helper_customize_dialog_reset_button_label (7645535254306312685) --> +    <skip />      <string name="shortcut_helper_customize_dialog_cancel_button_label" msgid="5595546460431741178">"မလုပ်တော့"</string>      <string name="shortcut_helper_add_shortcut_dialog_placeholder" msgid="9154297849458741995">"ကီးကို နှိပ်ပါ"</string>      <string name="shortcut_customizer_key_combination_in_use_error_message" msgid="7693234470526626327">"ကီးပေါင်းစပ်ခြင်းကို သုံးနေပြီးဖြစ်သည်။ အခြားကီးကို စမ်းကြည့်ပါ။"</string> diff --git a/packages/SystemUI/res/values-nb/strings.xml b/packages/SystemUI/res/values-nb/strings.xml index c863d19ca393..7454d632ee3a 100644 --- a/packages/SystemUI/res/values-nb/strings.xml +++ b/packages/SystemUI/res/values-nb/strings.xml @@ -529,7 +529,10 @@      <string name="communal_widgets_disclaimer_text" msgid="1423545475160506349">"For å åpne en app ved hjelp av en modul må du bekrefte at det er deg. Husk også at hvem som helst kan se dem, selv om nettbrettet er låst. Noen moduler er kanskje ikke laget for å være på låseskjermen og kan være utrygge å legge til der."</string>      <string name="communal_widgets_disclaimer_button" msgid="4423059765740780753">"Greit"</string>      <string name="glanceable_hub_lockscreen_affordance_label" msgid="1461611028615752141">"Moduler"</string> -    <string name="glanceable_hub_lockscreen_affordance_disabled_text" msgid="511359420883794513">"For å legge til moduler på låseskjermen som en snarvei, sørg for at de er slått på i innstillingene."</string> +    <!-- no translation found for glanceable_hub_lockscreen_affordance_disabled_text (599170482297578735) --> +    <skip /> +    <!-- no translation found for glanceable_hub_lockscreen_affordance_action_button_label (7636151133344609375) --> +    <skip />      <string name="accessibility_multi_user_switch_switcher" msgid="5330448341251092660">"Bytt bruker"</string>      <string name="accessibility_multi_user_list_switcher" msgid="8574105376229857407">"rullegardinmeny"</string>      <string name="guest_exit_guest_dialog_message" msgid="8183450985628495709">"Alle apper og data i denne økten blir slettet."</string> @@ -875,14 +878,10 @@      <string name="system_multitasking_splitscreen_focus_lhs" msgid="3164261844398662518">"Bytt til appen til venstre eller over mens du bruker delt skjerm"</string>      <string name="system_multitasking_replace" msgid="7410071959803642125">"I delt skjerm: Bytt ut en app"</string>      <string name="system_multitasking_move_to_next_display" msgid="6169737557526976997">"Flytt det aktive vinduet mellom skjermer"</string> -    <!-- no translation found for system_desktop_mode_snap_left_window (8636204689945162298) --> -    <skip /> -    <!-- no translation found for system_desktop_mode_snap_right_window (2162560187639411929) --> -    <skip /> -    <!-- no translation found for system_desktop_mode_toggle_maximize_window (4084100093691768239) --> -    <skip /> -    <!-- no translation found for system_desktop_mode_minimize_window (1248714536732927092) --> -    <skip /> +    <string name="system_desktop_mode_snap_left_window" msgid="8636204689945162298">"Flytt vinduet til venstre"</string> +    <string name="system_desktop_mode_snap_right_window" msgid="2162560187639411929">"Flytt vinduet til høyre"</string> +    <string name="system_desktop_mode_toggle_maximize_window" msgid="4084100093691768239">"Maksimer vinduet"</string> +    <string name="system_desktop_mode_minimize_window" msgid="1248714536732927092">"Minimerer vinduet"</string>      <string name="keyboard_shortcut_group_input" msgid="6888282716546625610">"Skrivespråk"</string>      <string name="input_switch_input_language_next" msgid="3782155659868227855">"Bytt til neste språk"</string>      <string name="input_switch_input_language_previous" msgid="6043341362202336623">"Bytt til forrige språk"</string> @@ -1419,7 +1418,6 @@      <string name="shortcut_helper_category_system_controls" msgid="3153344561395751020">"Systemkontroller"</string>      <string name="shortcut_helper_category_system_apps" msgid="6001757545472556810">"Systemapper"</string>      <string name="shortcut_helper_category_multitasking" msgid="7413381961404090136">"Multitasking"</string> -    <string name="shortcutHelper_category_recent_apps" msgid="7918731953612377145">"Nylige apper"</string>      <string name="shortcutHelper_category_split_screen" msgid="1159669813444812244">"Delt skjerm"</string>      <string name="shortcut_helper_category_input" msgid="8674018654124839566">"Inndata"</string>      <string name="shortcut_helper_category_app_shortcuts" msgid="8010249408308587117">"App-snarveier"</string> @@ -1428,25 +1426,31 @@      <string name="shortcut_helper_title" msgid="8567500639300970049">"Hurtigtaster"</string>      <string name="shortcut_helper_customize_mode_title" msgid="1467657117101096033">"Tilpass hurtigtastene"</string>      <string name="shortcut_customize_mode_remove_shortcut_dialog_title" msgid="7106420484940737208">"Vil du fjerne hurtigtasten?"</string> +    <!-- no translation found for shortcut_customize_mode_reset_shortcut_dialog_title (8131184731313717780) --> +    <skip />      <string name="shortcut_customize_mode_add_shortcut_description" msgid="6866025005347407696">"Trykk på en tast for å tilordne hurtigtasten"</string>      <string name="shortcut_customize_mode_remove_shortcut_description" msgid="6851287900585057128">"Dette fører til at den egendefinerte hurtigtasten slettes permanent."</string> +    <!-- no translation found for shortcut_customize_mode_reset_shortcut_description (2081849715634358684) --> +    <skip />      <string name="shortcut_helper_search_placeholder" msgid="5488547526269871819">"Snarveier til søk"</string>      <string name="shortcut_helper_no_search_results" msgid="8554756497996692160">"Ingen søkeresultater"</string>      <string name="shortcut_helper_content_description_collapse_icon" msgid="8028015738431664954">"Skjul-ikon"</string>      <string name="shortcut_helper_content_description_meta_key" msgid="3989315044342124818">"Handlings- eller Meta-tast-ikon"</string>      <string name="shortcut_helper_content_description_plus_icon" msgid="6152683734278299020">"Plussikon"</string>      <string name="shortcut_helper_customize_button_text" msgid="3124983502748069338">"Tilpass"</string> +    <!-- no translation found for shortcut_helper_reset_button_text (2548243844050633472) --> +    <skip />      <string name="shortcut_helper_done_button_text" msgid="7249905942125386191">"Ferdig"</string>      <string name="shortcut_helper_content_description_expand_icon" msgid="1084435697860417390">"Vis-ikon"</string>      <string name="shortcut_helper_key_combinations_or_separator" msgid="7082902112102125540">"eller"</string> -    <!-- no translation found for shortcut_helper_key_combinations_and_conjunction (6138186504075880224) --> -    <skip /> -    <!-- no translation found for shortcut_helper_key_combinations_forward_slash (1238652537199346970) --> -    <skip /> +    <string name="shortcut_helper_key_combinations_and_conjunction" msgid="6138186504075880224">"pluss"</string> +    <string name="shortcut_helper_key_combinations_forward_slash" msgid="1238652537199346970">"skråstrek"</string>      <string name="shortcut_helper_content_description_drag_handle" msgid="5092426406009848110">"Håndtak"</string>      <string name="shortcut_helper_keyboard_settings_buttons_label" msgid="6720967595915985259">"Tastaturinnstillinger"</string>      <string name="shortcut_helper_customize_dialog_set_shortcut_button_label" msgid="4754492225010429382">"Angi hurtigtast"</string>      <string name="shortcut_helper_customize_dialog_remove_button_label" msgid="6546386970440176552">"Fjern"</string> +    <!-- no translation found for shortcut_helper_customize_dialog_reset_button_label (7645535254306312685) --> +    <skip />      <string name="shortcut_helper_customize_dialog_cancel_button_label" msgid="5595546460431741178">"Avbryt"</string>      <string name="shortcut_helper_add_shortcut_dialog_placeholder" msgid="9154297849458741995">"Trykk på tasten"</string>      <string name="shortcut_customizer_key_combination_in_use_error_message" msgid="7693234470526626327">"Tastekombinasjonen brukes allerede. Prøv en annen tast."</string> diff --git a/packages/SystemUI/res/values-ne/strings.xml b/packages/SystemUI/res/values-ne/strings.xml index 681e32884a44..9b8af93ab0d6 100644 --- a/packages/SystemUI/res/values-ne/strings.xml +++ b/packages/SystemUI/res/values-ne/strings.xml @@ -529,7 +529,10 @@      <string name="communal_widgets_disclaimer_text" msgid="1423545475160506349">"विजेट प्रयोग गरी एप खोल्न तपाईंले आफ्नो पहिचान पुष्टि गर्नु पर्ने हुन्छ। साथै, तपाईंको ट्याब्लेट लक भएका बेला पनि सबै जनाले तिनलाई देख्न सक्छन् भन्ने कुरा ख्याल गर्नुहोस्। केही विजेटहरू लक स्क्रिनमा प्रयोग गर्ने उद्देश्यले नबनाइएका हुन सक्छन् र तिनलाई यहाँ हाल्नु सुरक्षित नहुन सक्छ।"</string>      <string name="communal_widgets_disclaimer_button" msgid="4423059765740780753">"बुझेँ"</string>      <string name="glanceable_hub_lockscreen_affordance_label" msgid="1461611028615752141">"विजेटहरू"</string> -    <string name="glanceable_hub_lockscreen_affordance_disabled_text" msgid="511359420883794513">"विजेटहरू लक स्क्रिनमा सर्टकटका रूपमा हाल्न सेटिङमा गई यो सुविधा अन गरिएको छ भन्ने सुनिश्चित गर्नुहोस्।"</string> +    <!-- no translation found for glanceable_hub_lockscreen_affordance_disabled_text (599170482297578735) --> +    <skip /> +    <!-- no translation found for glanceable_hub_lockscreen_affordance_action_button_label (7636151133344609375) --> +    <skip />      <string name="accessibility_multi_user_switch_switcher" msgid="5330448341251092660">"प्रयोगकर्ता फेर्नुहोस्"</string>      <string name="accessibility_multi_user_list_switcher" msgid="8574105376229857407">"पुलडाउन मेनु"</string>      <string name="guest_exit_guest_dialog_message" msgid="8183450985628495709">"यो सत्रमा भएका सबै एपहरू र डेटा मेटाइने छ।"</string> @@ -875,14 +878,10 @@      <string name="system_multitasking_splitscreen_focus_lhs" msgid="3164261844398662518">"स्प्लिट स्क्रिन प्रयोग गर्दै गर्दा बायाँ वा माथिको एप चलाउनुहोस्"</string>      <string name="system_multitasking_replace" msgid="7410071959803642125">"स्प्लिट स्क्रिन प्रयोग गरिएका बेला: एउटा स्क्रिनमा भएको एप अर्कोमा लैजानुहोस्"</string>      <string name="system_multitasking_move_to_next_display" msgid="6169737557526976997">"सक्रिय विन्डोलाई एउटा डिस्प्लेबाट सारेर अर्को डिस्प्लेमा लैजानुहोस्"</string> -    <!-- no translation found for system_desktop_mode_snap_left_window (8636204689945162298) --> -    <skip /> -    <!-- no translation found for system_desktop_mode_snap_right_window (2162560187639411929) --> -    <skip /> -    <!-- no translation found for system_desktop_mode_toggle_maximize_window (4084100093691768239) --> -    <skip /> -    <!-- no translation found for system_desktop_mode_minimize_window (1248714536732927092) --> -    <skip /> +    <string name="system_desktop_mode_snap_left_window" msgid="8636204689945162298">"विन्डो सारेर बायाँतिर लैजानुहोस्"</string> +    <string name="system_desktop_mode_snap_right_window" msgid="2162560187639411929">"विन्डो सारेर दायाँतिर लैजानुहोस्"</string> +    <string name="system_desktop_mode_toggle_maximize_window" msgid="4084100093691768239">"विन्डो म्याक्सिमाइज गर्नुहोस्"</string> +    <string name="system_desktop_mode_minimize_window" msgid="1248714536732927092">"विन्डो मिनिमाइज गर्नुहोस्"</string>      <string name="keyboard_shortcut_group_input" msgid="6888282716546625610">"इनपुट"</string>      <string name="input_switch_input_language_next" msgid="3782155659868227855">"अर्को भाषा प्रयोग गर्नुहोस्"</string>      <string name="input_switch_input_language_previous" msgid="6043341362202336623">"अघिल्लो भाषा प्रयोग गर्नुहोस्"</string> @@ -1419,7 +1418,6 @@      <string name="shortcut_helper_category_system_controls" msgid="3153344561395751020">"सिस्टमसँग सम्बन्धित नियन्त्रणहरू"</string>      <string name="shortcut_helper_category_system_apps" msgid="6001757545472556810">"सिस्टम एपहरू"</string>      <string name="shortcut_helper_category_multitasking" msgid="7413381961404090136">"एकै पटक एकभन्दा बढी एप चलाउन मिल्ने सुविधा"</string> -    <string name="shortcutHelper_category_recent_apps" msgid="7918731953612377145">"हालसालै चलाइएका एपहरू"</string>      <string name="shortcutHelper_category_split_screen" msgid="1159669813444812244">"स्प्लिट स्क्रिन"</string>      <string name="shortcut_helper_category_input" msgid="8674018654124839566">"इनपुट"</string>      <string name="shortcut_helper_category_app_shortcuts" msgid="8010249408308587117">"एपका सर्टकटहरू"</string> @@ -1428,25 +1426,31 @@      <string name="shortcut_helper_title" msgid="8567500639300970049">"किबोर्डका सर्टकटहरू"</string>      <string name="shortcut_helper_customize_mode_title" msgid="1467657117101096033">"किबोर्डका सर्टकटहरू कस्टमाइज गर्नुहोस्"</string>      <string name="shortcut_customize_mode_remove_shortcut_dialog_title" msgid="7106420484940737208">"सर्टकट हटाउने हो?"</string> +    <!-- no translation found for shortcut_customize_mode_reset_shortcut_dialog_title (8131184731313717780) --> +    <skip />      <string name="shortcut_customize_mode_add_shortcut_description" msgid="6866025005347407696">"सर्टकट असाइन गर्न की थिच्नुहोस्"</string>      <string name="shortcut_customize_mode_remove_shortcut_description" msgid="6851287900585057128">"यसो गर्नुभयो भने तपाईंको कस्टम सर्टकट सदाका लागि मेटिने छ।"</string> +    <!-- no translation found for shortcut_customize_mode_reset_shortcut_description (2081849715634358684) --> +    <skip />      <string name="shortcut_helper_search_placeholder" msgid="5488547526269871819">"खोजका सर्टकटहरू"</string>      <string name="shortcut_helper_no_search_results" msgid="8554756497996692160">"कुनै पनि खोज परिणाम भेटिएन"</string>      <string name="shortcut_helper_content_description_collapse_icon" msgid="8028015738431664954">"\"कोल्याप्स गर्नुहोस्\" आइकन"</string>      <string name="shortcut_helper_content_description_meta_key" msgid="3989315044342124818">"एक्सन वा Meta कीको आइकन"</string>      <string name="shortcut_helper_content_description_plus_icon" msgid="6152683734278299020">"प्लस आइकन"</string>      <string name="shortcut_helper_customize_button_text" msgid="3124983502748069338">"कस्टमाइज गर्नुहोस्"</string> +    <!-- no translation found for shortcut_helper_reset_button_text (2548243844050633472) --> +    <skip />      <string name="shortcut_helper_done_button_text" msgid="7249905942125386191">"पूरा भयो"</string>      <string name="shortcut_helper_content_description_expand_icon" msgid="1084435697860417390">"\"एक्स्पान्ड गर्नुहोस्\" आइकन"</string>      <string name="shortcut_helper_key_combinations_or_separator" msgid="7082902112102125540">"वा"</string> -    <!-- no translation found for shortcut_helper_key_combinations_and_conjunction (6138186504075880224) --> -    <skip /> -    <!-- no translation found for shortcut_helper_key_combinations_forward_slash (1238652537199346970) --> -    <skip /> +    <string name="shortcut_helper_key_combinations_and_conjunction" msgid="6138186504075880224">"प्लस"</string> +    <string name="shortcut_helper_key_combinations_forward_slash" msgid="1238652537199346970">"फर्वार्ड स्ल्यास"</string>      <string name="shortcut_helper_content_description_drag_handle" msgid="5092426406009848110">"ड्र्याग ह्यान्डल"</string>      <string name="shortcut_helper_keyboard_settings_buttons_label" msgid="6720967595915985259">"किबोर्डसम्बन्धी सेटिङ"</string>      <string name="shortcut_helper_customize_dialog_set_shortcut_button_label" msgid="4754492225010429382">"सर्टकट सेट गर्नुहोस्"</string>      <string name="shortcut_helper_customize_dialog_remove_button_label" msgid="6546386970440176552">"हटाउनुहोस्"</string> +    <!-- no translation found for shortcut_helper_customize_dialog_reset_button_label (7645535254306312685) --> +    <skip />      <string name="shortcut_helper_customize_dialog_cancel_button_label" msgid="5595546460431741178">"रद्द गर्नुहोस्"</string>      <string name="shortcut_helper_add_shortcut_dialog_placeholder" msgid="9154297849458741995">"की थिच्नुहोस्"</string>      <string name="shortcut_customizer_key_combination_in_use_error_message" msgid="7693234470526626327">"यो की कम्बिनेसन प्रयोग गरिसकिएको छ। अर्कै की प्रयोग गरी हेर्नुहोस्।"</string> diff --git a/packages/SystemUI/res/values-nl/strings.xml b/packages/SystemUI/res/values-nl/strings.xml index c5c08b113ac1..12f415609065 100644 --- a/packages/SystemUI/res/values-nl/strings.xml +++ b/packages/SystemUI/res/values-nl/strings.xml @@ -529,7 +529,10 @@      <string name="communal_widgets_disclaimer_text" msgid="1423545475160506349">"Als je een app wilt openen met een widget, moet je verifiëren dat jij het bent. Houd er ook rekening mee dat iedereen ze kan bekijken, ook als je tablet vergrendeld is. Bepaalde widgets zijn misschien niet bedoeld voor je vergrendelscherm en kunnen hier niet veilig worden toegevoegd."</string>      <string name="communal_widgets_disclaimer_button" msgid="4423059765740780753">"OK"</string>      <string name="glanceable_hub_lockscreen_affordance_label" msgid="1461611028615752141">"Widgets"</string> -    <string name="glanceable_hub_lockscreen_affordance_disabled_text" msgid="511359420883794513">"Als je Widgets als sneltoets wilt toevoegen aan het vergrendelscherm, zorg je dat deze is aangezet in de instellingen."</string> +    <!-- no translation found for glanceable_hub_lockscreen_affordance_disabled_text (599170482297578735) --> +    <skip /> +    <!-- no translation found for glanceable_hub_lockscreen_affordance_action_button_label (7636151133344609375) --> +    <skip />      <string name="accessibility_multi_user_switch_switcher" msgid="5330448341251092660">"Gebruiker wijzigen"</string>      <string name="accessibility_multi_user_list_switcher" msgid="8574105376229857407">"pull-downmenu"</string>      <string name="guest_exit_guest_dialog_message" msgid="8183450985628495709">"Alle apps en gegevens in deze sessie worden verwijderd."</string> @@ -875,14 +878,10 @@      <string name="system_multitasking_splitscreen_focus_lhs" msgid="3164261844398662518">"Naar de app links of bovenaan gaan als je een gesplitst scherm gebruikt"</string>      <string name="system_multitasking_replace" msgid="7410071959803642125">"Tijdens gesplitst scherm: een app vervangen door een andere"</string>      <string name="system_multitasking_move_to_next_display" msgid="6169737557526976997">"Actief venster verplaatsen tussen schermen"</string> -    <!-- no translation found for system_desktop_mode_snap_left_window (8636204689945162298) --> -    <skip /> -    <!-- no translation found for system_desktop_mode_snap_right_window (2162560187639411929) --> -    <skip /> -    <!-- no translation found for system_desktop_mode_toggle_maximize_window (4084100093691768239) --> -    <skip /> -    <!-- no translation found for system_desktop_mode_minimize_window (1248714536732927092) --> -    <skip /> +    <string name="system_desktop_mode_snap_left_window" msgid="8636204689945162298">"Venster naar links verplaatsen"</string> +    <string name="system_desktop_mode_snap_right_window" msgid="2162560187639411929">"Venster naar rechts verplaatsen"</string> +    <string name="system_desktop_mode_toggle_maximize_window" msgid="4084100093691768239">"Venster maximaliseren"</string> +    <string name="system_desktop_mode_minimize_window" msgid="1248714536732927092">"Venster minimaliseren"</string>      <string name="keyboard_shortcut_group_input" msgid="6888282716546625610">"Invoer"</string>      <string name="input_switch_input_language_next" msgid="3782155659868227855">"Overschakelen naar volgende taal"</string>      <string name="input_switch_input_language_previous" msgid="6043341362202336623">"Overschakelen naar vorige taal"</string> @@ -1419,7 +1418,6 @@      <string name="shortcut_helper_category_system_controls" msgid="3153344561395751020">"Systeemopties"</string>      <string name="shortcut_helper_category_system_apps" msgid="6001757545472556810">"Systeem-apps"</string>      <string name="shortcut_helper_category_multitasking" msgid="7413381961404090136">"Multitasking"</string> -    <string name="shortcutHelper_category_recent_apps" msgid="7918731953612377145">"Recente apps"</string>      <string name="shortcutHelper_category_split_screen" msgid="1159669813444812244">"Gesplitst scherm"</string>      <string name="shortcut_helper_category_input" msgid="8674018654124839566">"Invoer"</string>      <string name="shortcut_helper_category_app_shortcuts" msgid="8010249408308587117">"App-sneltoetsen"</string> @@ -1428,25 +1426,31 @@      <string name="shortcut_helper_title" msgid="8567500639300970049">"Sneltoetsen"</string>      <string name="shortcut_helper_customize_mode_title" msgid="1467657117101096033">"Sneltoetsen aanpassen"</string>      <string name="shortcut_customize_mode_remove_shortcut_dialog_title" msgid="7106420484940737208">"Sneltoets verwijderen?"</string> +    <!-- no translation found for shortcut_customize_mode_reset_shortcut_dialog_title (8131184731313717780) --> +    <skip />      <string name="shortcut_customize_mode_add_shortcut_description" msgid="6866025005347407696">"Druk op de toets om de sneltoets toe te wijzen"</string>      <string name="shortcut_customize_mode_remove_shortcut_description" msgid="6851287900585057128">"Hiermee wordt je aangepaste sneltoets definitief verwijderd."</string> +    <!-- no translation found for shortcut_customize_mode_reset_shortcut_description (2081849715634358684) --> +    <skip />      <string name="shortcut_helper_search_placeholder" msgid="5488547526269871819">"Sneltoetsen zoeken"</string>      <string name="shortcut_helper_no_search_results" msgid="8554756497996692160">"Geen zoekresultaten"</string>      <string name="shortcut_helper_content_description_collapse_icon" msgid="8028015738431664954">"Icoon voor samenvouwen"</string>      <string name="shortcut_helper_content_description_meta_key" msgid="3989315044342124818">"Icoon voor actie- of metatoets"</string>      <string name="shortcut_helper_content_description_plus_icon" msgid="6152683734278299020">"Plusicoon"</string>      <string name="shortcut_helper_customize_button_text" msgid="3124983502748069338">"Aanpassen"</string> +    <!-- no translation found for shortcut_helper_reset_button_text (2548243844050633472) --> +    <skip />      <string name="shortcut_helper_done_button_text" msgid="7249905942125386191">"Klaar"</string>      <string name="shortcut_helper_content_description_expand_icon" msgid="1084435697860417390">"Icoon voor uitvouwen"</string>      <string name="shortcut_helper_key_combinations_or_separator" msgid="7082902112102125540">"of"</string> -    <!-- no translation found for shortcut_helper_key_combinations_and_conjunction (6138186504075880224) --> -    <skip /> -    <!-- no translation found for shortcut_helper_key_combinations_forward_slash (1238652537199346970) --> -    <skip /> +    <string name="shortcut_helper_key_combinations_and_conjunction" msgid="6138186504075880224">"plus"</string> +    <string name="shortcut_helper_key_combinations_forward_slash" msgid="1238652537199346970">"slash"</string>      <string name="shortcut_helper_content_description_drag_handle" msgid="5092426406009848110">"Handgreep voor slepen"</string>      <string name="shortcut_helper_keyboard_settings_buttons_label" msgid="6720967595915985259">"Toetsenbordinstellingen"</string>      <string name="shortcut_helper_customize_dialog_set_shortcut_button_label" msgid="4754492225010429382">"Sneltoets instellen"</string>      <string name="shortcut_helper_customize_dialog_remove_button_label" msgid="6546386970440176552">"Verwijderen"</string> +    <!-- no translation found for shortcut_helper_customize_dialog_reset_button_label (7645535254306312685) --> +    <skip />      <string name="shortcut_helper_customize_dialog_cancel_button_label" msgid="5595546460431741178">"Annuleren"</string>      <string name="shortcut_helper_add_shortcut_dialog_placeholder" msgid="9154297849458741995">"Druk op een toets"</string>      <string name="shortcut_customizer_key_combination_in_use_error_message" msgid="7693234470526626327">"Toetsencombinatie is al in gebruik. Probeer een andere toets."</string> diff --git a/packages/SystemUI/res/values-or/strings.xml b/packages/SystemUI/res/values-or/strings.xml index b7d840ac9075..28d8cfc41d42 100644 --- a/packages/SystemUI/res/values-or/strings.xml +++ b/packages/SystemUI/res/values-or/strings.xml @@ -529,7 +529,10 @@      <string name="communal_widgets_disclaimer_text" msgid="1423545475160506349">"ଏକ ୱିଜେଟ ବ୍ୟବହାର କରି ଗୋଟିଏ ଆପ ଖୋଲିବା ପାଇଁ ଏହା ଆପଣ ଅଟନ୍ତି ବୋଲି ଆପଣଙ୍କୁ ଯାଞ୍ଚ କରିବାକୁ ହେବ। ଆହୁରି ମଧ୍ୟ, ଆପଣଙ୍କ ଟାବଲେଟ ଲକ ଥିଲେ ମଧ୍ୟ ଯେ କୌଣସି ବ୍ୟକ୍ତି ଏହାକୁ ଭ୍ୟୁ କରିପାରିବେ ବୋଲି ମନେ ରଖନ୍ତୁ। କିଛି ୱିଜେଟ ଆପଣଙ୍କ ଲକ ସ୍କ୍ରିନ ପାଇଁ ଉଦ୍ଦିଷ୍ଟ ହୋଇନଥାଇପାରେ ଏବଂ ଏଠାରେ ଯୋଗ କରିବା ଅସୁରକ୍ଷିତ ହୋଇପାରେ।"</string>      <string name="communal_widgets_disclaimer_button" msgid="4423059765740780753">"ବୁଝିଗଲି"</string>      <string name="glanceable_hub_lockscreen_affordance_label" msgid="1461611028615752141">"ୱିଜେଟ"</string> -    <string name="glanceable_hub_lockscreen_affordance_disabled_text" msgid="511359420883794513">"ଏକ ସର୍ଟକଟ ଭାବେ ଲକ ସ୍କ୍ରିନରେ ୱିଜାଟ ଯୋଗ କରିବାକୁ, ସୁନିଶ୍ଚିତ କରନ୍ତୁ ଯେ ଏହା ସେଟିଂସରେ ସକ୍ଷମ ହୋଇଛି।"</string> +    <!-- no translation found for glanceable_hub_lockscreen_affordance_disabled_text (599170482297578735) --> +    <skip /> +    <!-- no translation found for glanceable_hub_lockscreen_affordance_action_button_label (7636151133344609375) --> +    <skip />      <string name="accessibility_multi_user_switch_switcher" msgid="5330448341251092660">"ୟୁଜର୍ ବଦଳାନ୍ତୁ"</string>      <string name="accessibility_multi_user_list_switcher" msgid="8574105376229857407">"ପୁଲଡାଉନ ମେନୁ"</string>      <string name="guest_exit_guest_dialog_message" msgid="8183450985628495709">"ଏହି ସେସନର ସମସ୍ତ ଆପ୍ ଓ ଡାଟା ଡିଲିଟ୍ ହୋଇଯିବ।"</string> @@ -875,14 +878,10 @@      <string name="system_multitasking_splitscreen_focus_lhs" msgid="3164261844398662518">"ସ୍ପ୍ଲିଟ ସ୍କ୍ରିନ ବ୍ୟବହାର କରିବା ସମୟରେ ବାମପଟର ବା ଉପରର ଆପକୁ ସୁଇଚ କରନ୍ତୁ"</string>      <string name="system_multitasking_replace" msgid="7410071959803642125">"ସ୍ପ୍ଲିଟ ସ୍କ୍ରିନ ସମୟରେ: କୌଣସି ଆପକୁ ଗୋଟିଏରୁ ଅନ୍ୟ ଏକ ଆପରେ ବଦଳାନ୍ତୁ"</string>      <string name="system_multitasking_move_to_next_display" msgid="6169737557526976997">"ସକ୍ରିୟ ୱିଣ୍ଡୋକୁ ଡିସପ୍ଲେଗୁଡ଼ିକ ମଧ୍ୟରେ ମୁଭ କରନ୍ତୁ"</string> -    <!-- no translation found for system_desktop_mode_snap_left_window (8636204689945162298) --> -    <skip /> -    <!-- no translation found for system_desktop_mode_snap_right_window (2162560187639411929) --> -    <skip /> -    <!-- no translation found for system_desktop_mode_toggle_maximize_window (4084100093691768239) --> -    <skip /> -    <!-- no translation found for system_desktop_mode_minimize_window (1248714536732927092) --> -    <skip /> +    <string name="system_desktop_mode_snap_left_window" msgid="8636204689945162298">"ୱିଣ୍ଡୋକୁ ବାମକୁ ମୁଭ କରନ୍ତୁ"</string> +    <string name="system_desktop_mode_snap_right_window" msgid="2162560187639411929">"ୱିଣ୍ଡୋକୁ ଡାହାଣକୁ ମୁଭ କରନ୍ତୁ"</string> +    <string name="system_desktop_mode_toggle_maximize_window" msgid="4084100093691768239">"ୱିଣ୍ଡୋକୁ ବଡ଼ କରନ୍ତୁ"</string> +    <string name="system_desktop_mode_minimize_window" msgid="1248714536732927092">"ୱିଣ୍ଡୋକୁ ଛୋଟ କରନ୍ତୁ"</string>      <string name="keyboard_shortcut_group_input" msgid="6888282716546625610">"ଇନପୁଟ"</string>      <string name="input_switch_input_language_next" msgid="3782155659868227855">"ପରବର୍ତ୍ତୀ ଭାଷାକୁ ସୁଇଚ କରନ୍ତୁ"</string>      <string name="input_switch_input_language_previous" msgid="6043341362202336623">"ପୂର୍ବବର୍ତ୍ତୀ ଭାଷାକୁ ସୁଇଚ କରନ୍ତୁ"</string> @@ -1419,7 +1418,6 @@      <string name="shortcut_helper_category_system_controls" msgid="3153344561395751020">"ସିଷ୍ଟମ ନିୟନ୍ତ୍ରଣଗୁଡ଼ିକ"</string>      <string name="shortcut_helper_category_system_apps" msgid="6001757545472556810">"ସିଷ୍ଟମ ଆପ୍ସ"</string>      <string name="shortcut_helper_category_multitasking" msgid="7413381961404090136">"ମଲ୍ଟିଟାସ୍କିଂ"</string> -    <string name="shortcutHelper_category_recent_apps" msgid="7918731953612377145">"ବର୍ତ୍ତମାନର ଆପ୍ସ"</string>      <string name="shortcutHelper_category_split_screen" msgid="1159669813444812244">"ସ୍ପ୍ଲିଟ ସ୍କ୍ରିନ"</string>      <string name="shortcut_helper_category_input" msgid="8674018654124839566">"ଇନପୁଟ"</string>      <string name="shortcut_helper_category_app_shortcuts" msgid="8010249408308587117">"ଆପ ସର୍ଟକଟ"</string> @@ -1428,25 +1426,31 @@      <string name="shortcut_helper_title" msgid="8567500639300970049">"କୀବୋର୍ଡ ସର୍ଟକଟ"</string>      <string name="shortcut_helper_customize_mode_title" msgid="1467657117101096033">"କୀବୋର୍ଡ ସର୍ଟକଟଗୁଡ଼ିକୁ କଷ୍ଟମାଇଜ କରନ୍ତୁ"</string>      <string name="shortcut_customize_mode_remove_shortcut_dialog_title" msgid="7106420484940737208">"ସର୍ଟକଟକୁ କାଢ଼ି ଦେବେ?"</string> +    <!-- no translation found for shortcut_customize_mode_reset_shortcut_dialog_title (8131184731313717780) --> +    <skip />      <string name="shortcut_customize_mode_add_shortcut_description" msgid="6866025005347407696">"ସର୍ଟକଟ ଆସାଇନ କରିବା ପାଇଁ କୀ\'କୁ ଦବାନ୍ତୁ"</string>      <string name="shortcut_customize_mode_remove_shortcut_description" msgid="6851287900585057128">"ଏହା ଆପଣଙ୍କ କଷ୍ଟମ ସର୍ଟକଟକୁ ସ୍ଥାୟୀ ଭାବେ ଡିଲିଟ କରିଦେବ।"</string> +    <!-- no translation found for shortcut_customize_mode_reset_shortcut_description (2081849715634358684) --> +    <skip />      <string name="shortcut_helper_search_placeholder" msgid="5488547526269871819">"ସର୍ଚ୍ଚ ସର୍ଟକଟ"</string>      <string name="shortcut_helper_no_search_results" msgid="8554756497996692160">"କୌଣସି ସର୍ଚ୍ଚ ଫଳାଫଳ ନାହିଁ"</string>      <string name="shortcut_helper_content_description_collapse_icon" msgid="8028015738431664954">"ଆଇକନକୁ ସଙ୍କୁଚିତ କରନ୍ତୁ"</string>      <string name="shortcut_helper_content_description_meta_key" msgid="3989315044342124818">"ଆକ୍ସନ କିମ୍ବା ମେଟା କୀ ଆଇକନ"</string>      <string name="shortcut_helper_content_description_plus_icon" msgid="6152683734278299020">"ପ୍ଲସ ଆଇକନ"</string>      <string name="shortcut_helper_customize_button_text" msgid="3124983502748069338">"କଷ୍ଟମାଇଜ କରନ୍ତୁ"</string> +    <!-- no translation found for shortcut_helper_reset_button_text (2548243844050633472) --> +    <skip />      <string name="shortcut_helper_done_button_text" msgid="7249905942125386191">"ହୋଇଗଲା"</string>      <string name="shortcut_helper_content_description_expand_icon" msgid="1084435697860417390">"ଆଇକନକୁ ବିସ୍ତାର କରନ୍ତୁ"</string>      <string name="shortcut_helper_key_combinations_or_separator" msgid="7082902112102125540">"କିମ୍ବା"</string> -    <!-- no translation found for shortcut_helper_key_combinations_and_conjunction (6138186504075880224) --> -    <skip /> -    <!-- no translation found for shortcut_helper_key_combinations_forward_slash (1238652537199346970) --> -    <skip /> +    <string name="shortcut_helper_key_combinations_and_conjunction" msgid="6138186504075880224">"ପ୍ଲସ"</string> +    <string name="shortcut_helper_key_combinations_forward_slash" msgid="1238652537199346970">"ଫରୱାର୍ଡ ସ୍ଲାସ"</string>      <string name="shortcut_helper_content_description_drag_handle" msgid="5092426406009848110">"ଡ୍ରାଗ ହେଣ୍ଡେଲ"</string>      <string name="shortcut_helper_keyboard_settings_buttons_label" msgid="6720967595915985259">"କୀବୋର୍ଡ ସେଟିଂ"</string>      <string name="shortcut_helper_customize_dialog_set_shortcut_button_label" msgid="4754492225010429382">"ସର୍ଟକଟ ସେଟ କରନ୍ତୁ"</string>      <string name="shortcut_helper_customize_dialog_remove_button_label" msgid="6546386970440176552">"କାଢ଼ି ଦିଅନ୍ତୁ"</string> +    <!-- no translation found for shortcut_helper_customize_dialog_reset_button_label (7645535254306312685) --> +    <skip />      <string name="shortcut_helper_customize_dialog_cancel_button_label" msgid="5595546460431741178">"ବାତିଲ କରନ୍ତୁ"</string>      <string name="shortcut_helper_add_shortcut_dialog_placeholder" msgid="9154297849458741995">"କୀ ଦବାନ୍ତୁ"</string>      <string name="shortcut_customizer_key_combination_in_use_error_message" msgid="7693234470526626327">"କୀ କମ୍ବିନେସନ ପୂର୍ବରୁ ବ୍ୟବହାର କରାଯାଉଛି। ଅନ୍ୟ ଏକ କୀ ବ୍ୟବହାର କରି ଦେଖନ୍ତୁ।"</string> diff --git a/packages/SystemUI/res/values-pa/strings.xml b/packages/SystemUI/res/values-pa/strings.xml index 1dd40793b53e..9df55d6d431a 100644 --- a/packages/SystemUI/res/values-pa/strings.xml +++ b/packages/SystemUI/res/values-pa/strings.xml @@ -529,7 +529,10 @@      <string name="communal_widgets_disclaimer_text" msgid="1423545475160506349">"ਵਿਜੇਟ ਦੀ ਵਰਤੋਂ ਕਰ ਕੇ ਐਪ ਖੋਲ੍ਹਣ ਲਈ, ਤੁਹਾਨੂੰ ਇਹ ਪੁਸ਼ਟੀ ਕਰਨ ਦੀ ਲੋੜ ਪਵੇਗੀ ਕਿ ਇਹ ਤੁਸੀਂ ਹੀ ਹੋ। ਨਾਲ ਹੀ, ਇਹ ਵੀ ਧਿਆਨ ਵਿੱਚ ਰੱਖੋ ਕਿ ਕੋਈ ਵੀ ਉਨ੍ਹਾਂ ਨੂੰ ਦੇਖ ਸਕਦਾ ਹੈ, ਭਾਵੇਂ ਤੁਹਾਡਾ ਟੈਬਲੈੱਟ ਲਾਕ ਹੋਵੇ। ਹੋ ਸਕਦਾ ਹੈ ਕਿ ਕੁਝ ਵਿਜੇਟ ਤੁਹਾਡੀ ਲਾਕ ਸਕ੍ਰੀਨ ਲਈ ਨਾ ਬਣੇ ਹੋਣ ਅਤੇ ਉਨ੍ਹਾਂ ਨੂੰ ਇੱਥੇ ਸ਼ਾਮਲ ਕਰਨਾ ਅਸੁਰੱਖਿਅਤ ਹੋਵੇ।"</string>      <string name="communal_widgets_disclaimer_button" msgid="4423059765740780753">"ਸਮਝ ਲਿਆ"</string>      <string name="glanceable_hub_lockscreen_affordance_label" msgid="1461611028615752141">"ਵਿਜੇਟ"</string> -    <string name="glanceable_hub_lockscreen_affordance_disabled_text" msgid="511359420883794513">"ਲਾਕ ਸਕ੍ਰੀਨ \'ਤੇ ਵਿਜੇਟ ਨੂੰ ਸ਼ਾਰਟਕੱਟ ਵਜੋਂ ਸ਼ਾਮਲ ਕਰਨ ਲਈ, ਪੱਕਾ ਕਰੋ ਕਿ ਸੈਟਿੰਗਾਂ ਵਿੱਚ ਇਹ ਸੁਵਿਧਾ ਚਾਲੂ ਹੈ।"</string> +    <!-- no translation found for glanceable_hub_lockscreen_affordance_disabled_text (599170482297578735) --> +    <skip /> +    <!-- no translation found for glanceable_hub_lockscreen_affordance_action_button_label (7636151133344609375) --> +    <skip />      <string name="accessibility_multi_user_switch_switcher" msgid="5330448341251092660">"ਵਰਤੋਂਕਾਰ ਸਵਿੱਚ ਕਰੋ"</string>      <string name="accessibility_multi_user_list_switcher" msgid="8574105376229857407">"ਪੁੱਲਡਾਊਨ ਮੀਨੂ"</string>      <string name="guest_exit_guest_dialog_message" msgid="8183450985628495709">"ਇਸ ਸੈਸ਼ਨ ਵਿਚਲੀਆਂ ਸਾਰੀਆਂ ਐਪਾਂ ਅਤੇ ਡਾਟੇ ਨੂੰ ਮਿਟਾ ਦਿੱਤਾ ਜਾਵੇਗਾ।"</string> @@ -875,14 +878,10 @@      <string name="system_multitasking_splitscreen_focus_lhs" msgid="3164261844398662518">"ਸਪਲਿਟ ਸਕ੍ਰੀਨ ਦੀ ਵਰਤੋਂ ਕਰਨ ਵੇਲੇ ਖੱਬੇ ਜਾਂ ਉੱਪਰ ਮੌਜੂਦ ਐਪ \'ਤੇ ਸਵਿੱਚ ਕਰੋ"</string>      <string name="system_multitasking_replace" msgid="7410071959803642125">"ਸਪਲਿਟ ਸਕ੍ਰੀਨ ਦੌਰਾਨ: ਇੱਕ ਐਪ ਨਾਲ ਦੂਜੀ ਐਪ ਨੂੰ ਬਦਲੋ"</string>      <string name="system_multitasking_move_to_next_display" msgid="6169737557526976997">"ਕਿਰਿਆਸ਼ੀਲ ਵਿੰਡੋ ਨੂੰ ਇੱਕ ਤੋਂ ਦੂਜੇ ਡਿਸਪਲੇ \'ਤੇ ਲਿਜਾਓ"</string> -    <!-- no translation found for system_desktop_mode_snap_left_window (8636204689945162298) --> -    <skip /> -    <!-- no translation found for system_desktop_mode_snap_right_window (2162560187639411929) --> -    <skip /> -    <!-- no translation found for system_desktop_mode_toggle_maximize_window (4084100093691768239) --> -    <skip /> -    <!-- no translation found for system_desktop_mode_minimize_window (1248714536732927092) --> -    <skip /> +    <string name="system_desktop_mode_snap_left_window" msgid="8636204689945162298">"ਵਿੰਡੋ ਨੂੰ ਖੱਬੇ ਪਾਸੇ ਲਿਜਾਓ"</string> +    <string name="system_desktop_mode_snap_right_window" msgid="2162560187639411929">"ਵਿੰਡੋ ਨੂੰ ਸੱਜੇ ਪਾਸੇ ਲਿਜਾਓ"</string> +    <string name="system_desktop_mode_toggle_maximize_window" msgid="4084100093691768239">"ਵਿੰਡੋ ਨੂੰ ਵੱਡਾ ਕਰੋ"</string> +    <string name="system_desktop_mode_minimize_window" msgid="1248714536732927092">"ਵਿੰਡੋ ਨੂੰ ਛੋਟਾ ਕਰੋ"</string>      <string name="keyboard_shortcut_group_input" msgid="6888282716546625610">"ਇਨਪੁੱਟ"</string>      <string name="input_switch_input_language_next" msgid="3782155659868227855">"ਅਗਲੀ ਭਾਸ਼ਾ \'ਤੇ ਸਵਿੱਚ ਕਰੋ"</string>      <string name="input_switch_input_language_previous" msgid="6043341362202336623">"ਪਿਛਲੀ ਭਾਸ਼ਾ \'ਤੇ ਸਵਿੱਚ ਕਰੋ"</string> @@ -1419,7 +1418,6 @@      <string name="shortcut_helper_category_system_controls" msgid="3153344561395751020">"ਸਿਸਟਮ ਸੰਬੰਧੀ ਕੰਟਰੋਲ"</string>      <string name="shortcut_helper_category_system_apps" msgid="6001757545472556810">"ਸਿਸਟਮ ਐਪਾਂ"</string>      <string name="shortcut_helper_category_multitasking" msgid="7413381961404090136">"ਮਲਟੀਟਾਸਕਿੰਗ"</string> -    <string name="shortcutHelper_category_recent_apps" msgid="7918731953612377145">"ਹਾਲੀਆ ਐਪਾਂ"</string>      <string name="shortcutHelper_category_split_screen" msgid="1159669813444812244">"ਸਪਲਿਟ ਸਕ੍ਰੀਨ"</string>      <string name="shortcut_helper_category_input" msgid="8674018654124839566">"ਇਨਪੁੱਟ"</string>      <string name="shortcut_helper_category_app_shortcuts" msgid="8010249408308587117">"ਐਪ ਸ਼ਾਰਟਕੱਟ"</string> @@ -1428,25 +1426,31 @@      <string name="shortcut_helper_title" msgid="8567500639300970049">"ਕੀ-ਬੋਰਡ ਸ਼ਾਰਟਕੱਟ"</string>      <string name="shortcut_helper_customize_mode_title" msgid="1467657117101096033">"ਕੀ-ਬੋਰਡ ਸ਼ਾਰਟਕੱਟ ਵਿਉਂਤਬੱਧ ਕਰੋ"</string>      <string name="shortcut_customize_mode_remove_shortcut_dialog_title" msgid="7106420484940737208">"ਕੀ ਸ਼ਾਰਟਕੱਟ ਨੂੰ ਹਟਾਉਣਾ ਹੈ?"</string> +    <!-- no translation found for shortcut_customize_mode_reset_shortcut_dialog_title (8131184731313717780) --> +    <skip />      <string name="shortcut_customize_mode_add_shortcut_description" msgid="6866025005347407696">"ਸ਼ਾਰਟਕੱਟ ਨਿਰਧਾਰਿਤ ਕਰਨ ਲਈ ਕੁੰਜੀ ਦਬਾਓ"</string>      <string name="shortcut_customize_mode_remove_shortcut_description" msgid="6851287900585057128">"ਇਸ ਨਾਲ ਤੁਹਾਡੇ ਵਿਉਂਤੇ ਸ਼ਾਰਟਕੱਟ ਨੂੰ ਪੱਕੇ ਤੌਰ \'ਤੇ ਮਿਟਾ ਦਿੱਤਾ ਜਾਵੇਗਾ।"</string> +    <!-- no translation found for shortcut_customize_mode_reset_shortcut_description (2081849715634358684) --> +    <skip />      <string name="shortcut_helper_search_placeholder" msgid="5488547526269871819">"ਸ਼ਾਰਟਕੱਟ ਖੋਜੋ"</string>      <string name="shortcut_helper_no_search_results" msgid="8554756497996692160">"ਕੋਈ ਖੋਜ ਨਤੀਜਾ ਨਹੀਂ ਮਿਲਿਆ"</string>      <string name="shortcut_helper_content_description_collapse_icon" msgid="8028015738431664954">"ਪ੍ਰਤੀਕ ਨੂੰ ਸਮੇਟੋ"</string>      <string name="shortcut_helper_content_description_meta_key" msgid="3989315044342124818">"ਕਾਰਵਾਈ ਜਾਂ Meta ਕੁੰਜੀ ਪ੍ਰਤੀਕ"</string>      <string name="shortcut_helper_content_description_plus_icon" msgid="6152683734278299020">"ਜੋੜ-ਚਿੰਨ੍ਹ ਦਾ ਪ੍ਰਤੀਕ"</string>      <string name="shortcut_helper_customize_button_text" msgid="3124983502748069338">"ਵਿਉਂਤਬੱਧ ਕਰੋ"</string> +    <!-- no translation found for shortcut_helper_reset_button_text (2548243844050633472) --> +    <skip />      <string name="shortcut_helper_done_button_text" msgid="7249905942125386191">"ਹੋ ਗਿਆ"</string>      <string name="shortcut_helper_content_description_expand_icon" msgid="1084435697860417390">"ਪ੍ਰਤੀਕ ਦਾ ਵਿਸਤਾਰ ਕਰੋ"</string>      <string name="shortcut_helper_key_combinations_or_separator" msgid="7082902112102125540">"ਜਾਂ"</string> -    <!-- no translation found for shortcut_helper_key_combinations_and_conjunction (6138186504075880224) --> -    <skip /> -    <!-- no translation found for shortcut_helper_key_combinations_forward_slash (1238652537199346970) --> -    <skip /> +    <string name="shortcut_helper_key_combinations_and_conjunction" msgid="6138186504075880224">"ਪਲੱਸ"</string> +    <string name="shortcut_helper_key_combinations_forward_slash" msgid="1238652537199346970">"ਫਾਰਵਰਡ ਸਲੈਸ਼"</string>      <string name="shortcut_helper_content_description_drag_handle" msgid="5092426406009848110">"ਘਸੀਟਣ ਵਾਲਾ ਹੈਂਡਲ"</string>      <string name="shortcut_helper_keyboard_settings_buttons_label" msgid="6720967595915985259">"ਕੀ-ਬੋਰਡ ਸੈਟਿੰਗਾਂ"</string>      <string name="shortcut_helper_customize_dialog_set_shortcut_button_label" msgid="4754492225010429382">"ਸ਼ਾਰਟਕੱਟ ਸੈੱਟ ਕਰੋ"</string>      <string name="shortcut_helper_customize_dialog_remove_button_label" msgid="6546386970440176552">"ਹਟਾਓ"</string> +    <!-- no translation found for shortcut_helper_customize_dialog_reset_button_label (7645535254306312685) --> +    <skip />      <string name="shortcut_helper_customize_dialog_cancel_button_label" msgid="5595546460431741178">"ਰੱਦ ਕਰੋ"</string>      <string name="shortcut_helper_add_shortcut_dialog_placeholder" msgid="9154297849458741995">"ਕੁੰਜੀ ਦਬਾਓ"</string>      <string name="shortcut_customizer_key_combination_in_use_error_message" msgid="7693234470526626327">"ਕੁੰਜੀ ਸੁਮੇਲ ਪਹਿਲਾਂ ਹੀ ਵਰਤੋਂ ਵਿੱਚ ਹੈ। ਕੋਈ ਹੋਰ ਕੁੰਜੀ ਵਰਤ ਕੇ ਦੇਖੋ।"</string> diff --git a/packages/SystemUI/res/values-pl/strings.xml b/packages/SystemUI/res/values-pl/strings.xml index 82fe86153be2..9edb183e08d4 100644 --- a/packages/SystemUI/res/values-pl/strings.xml +++ b/packages/SystemUI/res/values-pl/strings.xml @@ -529,7 +529,10 @@      <string name="communal_widgets_disclaimer_text" msgid="1423545475160506349">"Aby otworzyć aplikację za pomocą widżetu, musisz potwierdzić swoją tożsamość. Pamiętaj też, że każdy będzie mógł wyświetlić widżety nawet wtedy, gdy tablet będzie zablokowany. Niektóre widżety mogą nie być przeznaczone do umieszczenia na ekranie blokady i ich dodanie w tym miejscu może być niebezpieczne."</string>      <string name="communal_widgets_disclaimer_button" msgid="4423059765740780753">"OK"</string>      <string name="glanceable_hub_lockscreen_affordance_label" msgid="1461611028615752141">"Widżety"</string> -    <string name="glanceable_hub_lockscreen_affordance_disabled_text" msgid="511359420883794513">"Aby dodać Widżety na ekranie blokady jako skrót, upewnij się, że ta opcja jest włączona w ustawieniach."</string> +    <!-- no translation found for glanceable_hub_lockscreen_affordance_disabled_text (599170482297578735) --> +    <skip /> +    <!-- no translation found for glanceable_hub_lockscreen_affordance_action_button_label (7636151133344609375) --> +    <skip />      <string name="accessibility_multi_user_switch_switcher" msgid="5330448341251092660">"Przełącz użytkownika"</string>      <string name="accessibility_multi_user_list_switcher" msgid="8574105376229857407">"menu"</string>      <string name="guest_exit_guest_dialog_message" msgid="8183450985628495709">"Wszystkie aplikacje i dane w tej sesji zostaną usunięte."</string> @@ -875,14 +878,10 @@      <string name="system_multitasking_splitscreen_focus_lhs" msgid="3164261844398662518">"Przełącz się na aplikację po lewej lub powyżej na podzielonym ekranie"</string>      <string name="system_multitasking_replace" msgid="7410071959803642125">"Podczas podzielonego ekranu: zastępowanie aplikacji"</string>      <string name="system_multitasking_move_to_next_display" msgid="6169737557526976997">"Przenieś aktywne okno na inny ekran"</string> -    <!-- no translation found for system_desktop_mode_snap_left_window (8636204689945162298) --> -    <skip /> -    <!-- no translation found for system_desktop_mode_snap_right_window (2162560187639411929) --> -    <skip /> -    <!-- no translation found for system_desktop_mode_toggle_maximize_window (4084100093691768239) --> -    <skip /> -    <!-- no translation found for system_desktop_mode_minimize_window (1248714536732927092) --> -    <skip /> +    <string name="system_desktop_mode_snap_left_window" msgid="8636204689945162298">"Przenieś okno w lewo"</string> +    <string name="system_desktop_mode_snap_right_window" msgid="2162560187639411929">"Przenieś okno w prawo"</string> +    <string name="system_desktop_mode_toggle_maximize_window" msgid="4084100093691768239">"Maksymalizuj okno"</string> +    <string name="system_desktop_mode_minimize_window" msgid="1248714536732927092">"Minimalizuj okno"</string>      <string name="keyboard_shortcut_group_input" msgid="6888282716546625610">"Wprowadzanie"</string>      <string name="input_switch_input_language_next" msgid="3782155659868227855">"Przełącz na następny język"</string>      <string name="input_switch_input_language_previous" msgid="6043341362202336623">"Przełącz na poprzedni język"</string> @@ -1419,7 +1418,6 @@      <string name="shortcut_helper_category_system_controls" msgid="3153344561395751020">"Systemowe elementy sterujące"</string>      <string name="shortcut_helper_category_system_apps" msgid="6001757545472556810">"Aplikacje systemowe"</string>      <string name="shortcut_helper_category_multitasking" msgid="7413381961404090136">"Wielozadaniowość"</string> -    <string name="shortcutHelper_category_recent_apps" msgid="7918731953612377145">"Ostatnie aplikacje"</string>      <string name="shortcutHelper_category_split_screen" msgid="1159669813444812244">"Podzielony ekran"</string>      <string name="shortcut_helper_category_input" msgid="8674018654124839566">"Wprowadzanie"</string>      <string name="shortcut_helper_category_app_shortcuts" msgid="8010249408308587117">"Skróty do aplikacji"</string> @@ -1428,25 +1426,31 @@      <string name="shortcut_helper_title" msgid="8567500639300970049">"Skróty klawiszowe"</string>      <string name="shortcut_helper_customize_mode_title" msgid="1467657117101096033">"Dostosuj skróty klawiszowe"</string>      <string name="shortcut_customize_mode_remove_shortcut_dialog_title" msgid="7106420484940737208">"Usunąć skrót?"</string> +    <!-- no translation found for shortcut_customize_mode_reset_shortcut_dialog_title (8131184731313717780) --> +    <skip />      <string name="shortcut_customize_mode_add_shortcut_description" msgid="6866025005347407696">"Naciśnij klawisz, aby przypisać skrót"</string>      <string name="shortcut_customize_mode_remove_shortcut_description" msgid="6851287900585057128">"Spowoduje to trwałe usunięcie skrótu niestandardowego."</string> +    <!-- no translation found for shortcut_customize_mode_reset_shortcut_description (2081849715634358684) --> +    <skip />      <string name="shortcut_helper_search_placeholder" msgid="5488547526269871819">"Skróty do wyszukiwania"</string>      <string name="shortcut_helper_no_search_results" msgid="8554756497996692160">"Brak wyników wyszukiwania"</string>      <string name="shortcut_helper_content_description_collapse_icon" msgid="8028015738431664954">"Ikona zwijania"</string>      <string name="shortcut_helper_content_description_meta_key" msgid="3989315044342124818">"Ikona klawisza działania/meta"</string>      <string name="shortcut_helper_content_description_plus_icon" msgid="6152683734278299020">"Ikona plusa"</string>      <string name="shortcut_helper_customize_button_text" msgid="3124983502748069338">"Dostosuj"</string> +    <!-- no translation found for shortcut_helper_reset_button_text (2548243844050633472) --> +    <skip />      <string name="shortcut_helper_done_button_text" msgid="7249905942125386191">"Gotowe"</string>      <string name="shortcut_helper_content_description_expand_icon" msgid="1084435697860417390">"Ikona rozwijania"</string>      <string name="shortcut_helper_key_combinations_or_separator" msgid="7082902112102125540">"lub"</string> -    <!-- no translation found for shortcut_helper_key_combinations_and_conjunction (6138186504075880224) --> -    <skip /> -    <!-- no translation found for shortcut_helper_key_combinations_forward_slash (1238652537199346970) --> -    <skip /> +    <string name="shortcut_helper_key_combinations_and_conjunction" msgid="6138186504075880224">"plus"</string> +    <string name="shortcut_helper_key_combinations_forward_slash" msgid="1238652537199346970">"ukośnik prawy"</string>      <string name="shortcut_helper_content_description_drag_handle" msgid="5092426406009848110">"Uchwyt do przeciągania"</string>      <string name="shortcut_helper_keyboard_settings_buttons_label" msgid="6720967595915985259">"Ustawienia klawiatury"</string>      <string name="shortcut_helper_customize_dialog_set_shortcut_button_label" msgid="4754492225010429382">"Ustaw skrót"</string>      <string name="shortcut_helper_customize_dialog_remove_button_label" msgid="6546386970440176552">"Usuń"</string> +    <!-- no translation found for shortcut_helper_customize_dialog_reset_button_label (7645535254306312685) --> +    <skip />      <string name="shortcut_helper_customize_dialog_cancel_button_label" msgid="5595546460431741178">"Anuluj"</string>      <string name="shortcut_helper_add_shortcut_dialog_placeholder" msgid="9154297849458741995">"Naciśnij klawisz"</string>      <string name="shortcut_customizer_key_combination_in_use_error_message" msgid="7693234470526626327">"Kombinacja klawiszy jest już używana. Użyj innego klawisza."</string> diff --git a/packages/SystemUI/res/values-pt-rBR/strings.xml b/packages/SystemUI/res/values-pt-rBR/strings.xml index e65dccb022d6..3871f7ab3c83 100644 --- a/packages/SystemUI/res/values-pt-rBR/strings.xml +++ b/packages/SystemUI/res/values-pt-rBR/strings.xml @@ -529,7 +529,10 @@      <string name="communal_widgets_disclaimer_text" msgid="1423545475160506349">"Para abrir um app usando um widget, você precisa confirmar sua identidade. E não se esqueça que qualquer pessoa pode ver os widgets, mesmo com o tablet bloqueado. Além disso, alguns apps não foram criados para a tela de bloqueio, é melhor manter a segurança."</string>      <string name="communal_widgets_disclaimer_button" msgid="4423059765740780753">"Entendi"</string>      <string name="glanceable_hub_lockscreen_affordance_label" msgid="1461611028615752141">"Widgets"</string> -    <string name="glanceable_hub_lockscreen_affordance_disabled_text" msgid="511359420883794513">"Para adicionar o recurso \"Widgets na tela de bloqueio\" como um atalho, verifique se os atalhos estão ativados nas configurações."</string> +    <!-- no translation found for glanceable_hub_lockscreen_affordance_disabled_text (599170482297578735) --> +    <skip /> +    <!-- no translation found for glanceable_hub_lockscreen_affordance_action_button_label (7636151133344609375) --> +    <skip />      <string name="accessibility_multi_user_switch_switcher" msgid="5330448341251092660">"Trocar usuário"</string>      <string name="accessibility_multi_user_list_switcher" msgid="8574105376229857407">"menu suspenso"</string>      <string name="guest_exit_guest_dialog_message" msgid="8183450985628495709">"Todos os apps e dados nesta sessão serão excluídos."</string> @@ -875,14 +878,10 @@      <string name="system_multitasking_splitscreen_focus_lhs" msgid="3164261844398662518">"Mudar para o app à esquerda ou acima ao usar a tela dividida"</string>      <string name="system_multitasking_replace" msgid="7410071959803642125">"Com a tela dividida: substituir um app por outro"</string>      <string name="system_multitasking_move_to_next_display" msgid="6169737557526976997">"Mover janela ativa entre telas"</string> -    <!-- no translation found for system_desktop_mode_snap_left_window (8636204689945162298) --> -    <skip /> -    <!-- no translation found for system_desktop_mode_snap_right_window (2162560187639411929) --> -    <skip /> -    <!-- no translation found for system_desktop_mode_toggle_maximize_window (4084100093691768239) --> -    <skip /> -    <!-- no translation found for system_desktop_mode_minimize_window (1248714536732927092) --> -    <skip /> +    <string name="system_desktop_mode_snap_left_window" msgid="8636204689945162298">"Mover janela para a esquerda"</string> +    <string name="system_desktop_mode_snap_right_window" msgid="2162560187639411929">"Mover janela para a direita"</string> +    <string name="system_desktop_mode_toggle_maximize_window" msgid="4084100093691768239">"Maximizar janela"</string> +    <string name="system_desktop_mode_minimize_window" msgid="1248714536732927092">"Minimizar janela"</string>      <string name="keyboard_shortcut_group_input" msgid="6888282716546625610">"Entrada"</string>      <string name="input_switch_input_language_next" msgid="3782155659868227855">"Mudar para o próximo idioma"</string>      <string name="input_switch_input_language_previous" msgid="6043341362202336623">"Mudar para o idioma anterior"</string> @@ -1419,7 +1418,6 @@      <string name="shortcut_helper_category_system_controls" msgid="3153344561395751020">"Controles do sistema"</string>      <string name="shortcut_helper_category_system_apps" msgid="6001757545472556810">"Apps do sistema"</string>      <string name="shortcut_helper_category_multitasking" msgid="7413381961404090136">"Multitarefas"</string> -    <string name="shortcutHelper_category_recent_apps" msgid="7918731953612377145">"Apps recentes"</string>      <string name="shortcutHelper_category_split_screen" msgid="1159669813444812244">"Tela dividida"</string>      <string name="shortcut_helper_category_input" msgid="8674018654124839566">"Entrada"</string>      <string name="shortcut_helper_category_app_shortcuts" msgid="8010249408308587117">"Atalhos de apps"</string> @@ -1428,25 +1426,31 @@      <string name="shortcut_helper_title" msgid="8567500639300970049">"Atalhos do teclado"</string>      <string name="shortcut_helper_customize_mode_title" msgid="1467657117101096033">"Personalizar atalhos de teclado"</string>      <string name="shortcut_customize_mode_remove_shortcut_dialog_title" msgid="7106420484940737208">"Remover atalho?"</string> +    <!-- no translation found for shortcut_customize_mode_reset_shortcut_dialog_title (8131184731313717780) --> +    <skip />      <string name="shortcut_customize_mode_add_shortcut_description" msgid="6866025005347407696">"Pressione a tecla para atribuir o atalho"</string>      <string name="shortcut_customize_mode_remove_shortcut_description" msgid="6851287900585057128">"Essa ação vai excluir permanentemente seu atalho personalizado."</string> +    <!-- no translation found for shortcut_customize_mode_reset_shortcut_description (2081849715634358684) --> +    <skip />      <string name="shortcut_helper_search_placeholder" msgid="5488547526269871819">"Pesquisar atalhos"</string>      <string name="shortcut_helper_no_search_results" msgid="8554756497996692160">"Nenhum resultado de pesquisa"</string>      <string name="shortcut_helper_content_description_collapse_icon" msgid="8028015738431664954">"Ícone \"Fechar\""</string>      <string name="shortcut_helper_content_description_meta_key" msgid="3989315044342124818">"Ícone da tecla de ação"</string>      <string name="shortcut_helper_content_description_plus_icon" msgid="6152683734278299020">"Ícone de adição"</string>      <string name="shortcut_helper_customize_button_text" msgid="3124983502748069338">"Personalizar"</string> +    <!-- no translation found for shortcut_helper_reset_button_text (2548243844050633472) --> +    <skip />      <string name="shortcut_helper_done_button_text" msgid="7249905942125386191">"Concluir"</string>      <string name="shortcut_helper_content_description_expand_icon" msgid="1084435697860417390">"Ícone \"Abrir\""</string>      <string name="shortcut_helper_key_combinations_or_separator" msgid="7082902112102125540">"ou"</string> -    <!-- no translation found for shortcut_helper_key_combinations_and_conjunction (6138186504075880224) --> -    <skip /> -    <!-- no translation found for shortcut_helper_key_combinations_forward_slash (1238652537199346970) --> -    <skip /> +    <string name="shortcut_helper_key_combinations_and_conjunction" msgid="6138186504075880224">"mais"</string> +    <string name="shortcut_helper_key_combinations_forward_slash" msgid="1238652537199346970">"barra para a direita"</string>      <string name="shortcut_helper_content_description_drag_handle" msgid="5092426406009848110">"Alça de arrastar"</string>      <string name="shortcut_helper_keyboard_settings_buttons_label" msgid="6720967595915985259">"Configurações do teclado"</string>      <string name="shortcut_helper_customize_dialog_set_shortcut_button_label" msgid="4754492225010429382">"Definir atalho"</string>      <string name="shortcut_helper_customize_dialog_remove_button_label" msgid="6546386970440176552">"Remover"</string> +    <!-- no translation found for shortcut_helper_customize_dialog_reset_button_label (7645535254306312685) --> +    <skip />      <string name="shortcut_helper_customize_dialog_cancel_button_label" msgid="5595546460431741178">"Cancelar"</string>      <string name="shortcut_helper_add_shortcut_dialog_placeholder" msgid="9154297849458741995">"Pressione a tecla"</string>      <string name="shortcut_customizer_key_combination_in_use_error_message" msgid="7693234470526626327">"Essa combinação de teclas já está em uso. Tente outra tecla."</string> diff --git a/packages/SystemUI/res/values-pt-rPT/strings.xml b/packages/SystemUI/res/values-pt-rPT/strings.xml index 3dcba3010e67..c0e65c74dea9 100644 --- a/packages/SystemUI/res/values-pt-rPT/strings.xml +++ b/packages/SystemUI/res/values-pt-rPT/strings.xml @@ -529,7 +529,10 @@      <string name="communal_widgets_disclaimer_text" msgid="1423545475160506349">"Para abrir uma app através de um widget, vai ter de validar a sua identidade. Além disso, tenha em atenção que qualquer pessoa pode ver os widgets, mesmo quando o tablet estiver bloqueado. Alguns widgets podem não se destinar ao ecrã de bloqueio e pode ser inseguro adicioná-los aqui."</string>      <string name="communal_widgets_disclaimer_button" msgid="4423059765740780753">"OK"</string>      <string name="glanceable_hub_lockscreen_affordance_label" msgid="1461611028615752141">"Widgets"</string> -    <string name="glanceable_hub_lockscreen_affordance_disabled_text" msgid="511359420883794513">"Para adicionar widgets ao ecrã de bloqueio como um atalho, certifique-se de que estão ativados nas definições."</string> +    <!-- no translation found for glanceable_hub_lockscreen_affordance_disabled_text (599170482297578735) --> +    <skip /> +    <!-- no translation found for glanceable_hub_lockscreen_affordance_action_button_label (7636151133344609375) --> +    <skip />      <string name="accessibility_multi_user_switch_switcher" msgid="5330448341251092660">"Mudar utilizador"</string>      <string name="accessibility_multi_user_list_switcher" msgid="8574105376229857407">"menu pendente"</string>      <string name="guest_exit_guest_dialog_message" msgid="8183450985628495709">"Todas as apps e dados desta sessão serão eliminados."</string> @@ -1415,7 +1418,6 @@      <string name="shortcut_helper_category_system_controls" msgid="3153344561395751020">"Controlos do sistema"</string>      <string name="shortcut_helper_category_system_apps" msgid="6001757545472556810">"Apps do sistema"</string>      <string name="shortcut_helper_category_multitasking" msgid="7413381961404090136">"Execução de várias tarefas em simultâneo"</string> -    <string name="shortcutHelper_category_recent_apps" msgid="7918731953612377145">"Apps recentes"</string>      <string name="shortcutHelper_category_split_screen" msgid="1159669813444812244">"Ecrã dividido"</string>      <string name="shortcut_helper_category_input" msgid="8674018654124839566">"Entrada"</string>      <string name="shortcut_helper_category_app_shortcuts" msgid="8010249408308587117">"Atalhos de apps"</string> @@ -1424,14 +1426,20 @@      <string name="shortcut_helper_title" msgid="8567500639300970049">"Atalhos de teclado"</string>      <string name="shortcut_helper_customize_mode_title" msgid="1467657117101096033">"Personalize os atalhos de teclado"</string>      <string name="shortcut_customize_mode_remove_shortcut_dialog_title" msgid="7106420484940737208">"Remover atalho?"</string> +    <!-- no translation found for shortcut_customize_mode_reset_shortcut_dialog_title (8131184731313717780) --> +    <skip />      <string name="shortcut_customize_mode_add_shortcut_description" msgid="6866025005347407696">"Prima a tecla para atribuir o atalho"</string>      <string name="shortcut_customize_mode_remove_shortcut_description" msgid="6851287900585057128">"Esta ação elimina o atalho personalizado permanentemente."</string> +    <!-- no translation found for shortcut_customize_mode_reset_shortcut_description (2081849715634358684) --> +    <skip />      <string name="shortcut_helper_search_placeholder" msgid="5488547526269871819">"Pesquisar atalhos"</string>      <string name="shortcut_helper_no_search_results" msgid="8554756497996692160">"Nenhum resultado da pesquisa"</string>      <string name="shortcut_helper_content_description_collapse_icon" msgid="8028015738431664954">"Ícone de reduzir"</string>      <string name="shortcut_helper_content_description_meta_key" msgid="3989315044342124818">"Ícone da tecla Meta ou de ação"</string>      <string name="shortcut_helper_content_description_plus_icon" msgid="6152683734278299020">"Ícone de mais"</string>      <string name="shortcut_helper_customize_button_text" msgid="3124983502748069338">"Personalizar"</string> +    <!-- no translation found for shortcut_helper_reset_button_text (2548243844050633472) --> +    <skip />      <string name="shortcut_helper_done_button_text" msgid="7249905942125386191">"Concluir"</string>      <string name="shortcut_helper_content_description_expand_icon" msgid="1084435697860417390">"Ícone de expandir"</string>      <string name="shortcut_helper_key_combinations_or_separator" msgid="7082902112102125540">"ou"</string> @@ -1441,6 +1449,8 @@      <string name="shortcut_helper_keyboard_settings_buttons_label" msgid="6720967595915985259">"Definições do teclado"</string>      <string name="shortcut_helper_customize_dialog_set_shortcut_button_label" msgid="4754492225010429382">"Configurar atalho"</string>      <string name="shortcut_helper_customize_dialog_remove_button_label" msgid="6546386970440176552">"Remover"</string> +    <!-- no translation found for shortcut_helper_customize_dialog_reset_button_label (7645535254306312685) --> +    <skip />      <string name="shortcut_helper_customize_dialog_cancel_button_label" msgid="5595546460431741178">"Cancelar"</string>      <string name="shortcut_helper_add_shortcut_dialog_placeholder" msgid="9154297849458741995">"Prima a tecla"</string>      <string name="shortcut_customizer_key_combination_in_use_error_message" msgid="7693234470526626327">"A combinação de teclas já está a ser usada. Experimente outra tecla."</string> diff --git a/packages/SystemUI/res/values-pt/strings.xml b/packages/SystemUI/res/values-pt/strings.xml index e65dccb022d6..3871f7ab3c83 100644 --- a/packages/SystemUI/res/values-pt/strings.xml +++ b/packages/SystemUI/res/values-pt/strings.xml @@ -529,7 +529,10 @@      <string name="communal_widgets_disclaimer_text" msgid="1423545475160506349">"Para abrir um app usando um widget, você precisa confirmar sua identidade. E não se esqueça que qualquer pessoa pode ver os widgets, mesmo com o tablet bloqueado. Além disso, alguns apps não foram criados para a tela de bloqueio, é melhor manter a segurança."</string>      <string name="communal_widgets_disclaimer_button" msgid="4423059765740780753">"Entendi"</string>      <string name="glanceable_hub_lockscreen_affordance_label" msgid="1461611028615752141">"Widgets"</string> -    <string name="glanceable_hub_lockscreen_affordance_disabled_text" msgid="511359420883794513">"Para adicionar o recurso \"Widgets na tela de bloqueio\" como um atalho, verifique se os atalhos estão ativados nas configurações."</string> +    <!-- no translation found for glanceable_hub_lockscreen_affordance_disabled_text (599170482297578735) --> +    <skip /> +    <!-- no translation found for glanceable_hub_lockscreen_affordance_action_button_label (7636151133344609375) --> +    <skip />      <string name="accessibility_multi_user_switch_switcher" msgid="5330448341251092660">"Trocar usuário"</string>      <string name="accessibility_multi_user_list_switcher" msgid="8574105376229857407">"menu suspenso"</string>      <string name="guest_exit_guest_dialog_message" msgid="8183450985628495709">"Todos os apps e dados nesta sessão serão excluídos."</string> @@ -875,14 +878,10 @@      <string name="system_multitasking_splitscreen_focus_lhs" msgid="3164261844398662518">"Mudar para o app à esquerda ou acima ao usar a tela dividida"</string>      <string name="system_multitasking_replace" msgid="7410071959803642125">"Com a tela dividida: substituir um app por outro"</string>      <string name="system_multitasking_move_to_next_display" msgid="6169737557526976997">"Mover janela ativa entre telas"</string> -    <!-- no translation found for system_desktop_mode_snap_left_window (8636204689945162298) --> -    <skip /> -    <!-- no translation found for system_desktop_mode_snap_right_window (2162560187639411929) --> -    <skip /> -    <!-- no translation found for system_desktop_mode_toggle_maximize_window (4084100093691768239) --> -    <skip /> -    <!-- no translation found for system_desktop_mode_minimize_window (1248714536732927092) --> -    <skip /> +    <string name="system_desktop_mode_snap_left_window" msgid="8636204689945162298">"Mover janela para a esquerda"</string> +    <string name="system_desktop_mode_snap_right_window" msgid="2162560187639411929">"Mover janela para a direita"</string> +    <string name="system_desktop_mode_toggle_maximize_window" msgid="4084100093691768239">"Maximizar janela"</string> +    <string name="system_desktop_mode_minimize_window" msgid="1248714536732927092">"Minimizar janela"</string>      <string name="keyboard_shortcut_group_input" msgid="6888282716546625610">"Entrada"</string>      <string name="input_switch_input_language_next" msgid="3782155659868227855">"Mudar para o próximo idioma"</string>      <string name="input_switch_input_language_previous" msgid="6043341362202336623">"Mudar para o idioma anterior"</string> @@ -1419,7 +1418,6 @@      <string name="shortcut_helper_category_system_controls" msgid="3153344561395751020">"Controles do sistema"</string>      <string name="shortcut_helper_category_system_apps" msgid="6001757545472556810">"Apps do sistema"</string>      <string name="shortcut_helper_category_multitasking" msgid="7413381961404090136">"Multitarefas"</string> -    <string name="shortcutHelper_category_recent_apps" msgid="7918731953612377145">"Apps recentes"</string>      <string name="shortcutHelper_category_split_screen" msgid="1159669813444812244">"Tela dividida"</string>      <string name="shortcut_helper_category_input" msgid="8674018654124839566">"Entrada"</string>      <string name="shortcut_helper_category_app_shortcuts" msgid="8010249408308587117">"Atalhos de apps"</string> @@ -1428,25 +1426,31 @@      <string name="shortcut_helper_title" msgid="8567500639300970049">"Atalhos do teclado"</string>      <string name="shortcut_helper_customize_mode_title" msgid="1467657117101096033">"Personalizar atalhos de teclado"</string>      <string name="shortcut_customize_mode_remove_shortcut_dialog_title" msgid="7106420484940737208">"Remover atalho?"</string> +    <!-- no translation found for shortcut_customize_mode_reset_shortcut_dialog_title (8131184731313717780) --> +    <skip />      <string name="shortcut_customize_mode_add_shortcut_description" msgid="6866025005347407696">"Pressione a tecla para atribuir o atalho"</string>      <string name="shortcut_customize_mode_remove_shortcut_description" msgid="6851287900585057128">"Essa ação vai excluir permanentemente seu atalho personalizado."</string> +    <!-- no translation found for shortcut_customize_mode_reset_shortcut_description (2081849715634358684) --> +    <skip />      <string name="shortcut_helper_search_placeholder" msgid="5488547526269871819">"Pesquisar atalhos"</string>      <string name="shortcut_helper_no_search_results" msgid="8554756497996692160">"Nenhum resultado de pesquisa"</string>      <string name="shortcut_helper_content_description_collapse_icon" msgid="8028015738431664954">"Ícone \"Fechar\""</string>      <string name="shortcut_helper_content_description_meta_key" msgid="3989315044342124818">"Ícone da tecla de ação"</string>      <string name="shortcut_helper_content_description_plus_icon" msgid="6152683734278299020">"Ícone de adição"</string>      <string name="shortcut_helper_customize_button_text" msgid="3124983502748069338">"Personalizar"</string> +    <!-- no translation found for shortcut_helper_reset_button_text (2548243844050633472) --> +    <skip />      <string name="shortcut_helper_done_button_text" msgid="7249905942125386191">"Concluir"</string>      <string name="shortcut_helper_content_description_expand_icon" msgid="1084435697860417390">"Ícone \"Abrir\""</string>      <string name="shortcut_helper_key_combinations_or_separator" msgid="7082902112102125540">"ou"</string> -    <!-- no translation found for shortcut_helper_key_combinations_and_conjunction (6138186504075880224) --> -    <skip /> -    <!-- no translation found for shortcut_helper_key_combinations_forward_slash (1238652537199346970) --> -    <skip /> +    <string name="shortcut_helper_key_combinations_and_conjunction" msgid="6138186504075880224">"mais"</string> +    <string name="shortcut_helper_key_combinations_forward_slash" msgid="1238652537199346970">"barra para a direita"</string>      <string name="shortcut_helper_content_description_drag_handle" msgid="5092426406009848110">"Alça de arrastar"</string>      <string name="shortcut_helper_keyboard_settings_buttons_label" msgid="6720967595915985259">"Configurações do teclado"</string>      <string name="shortcut_helper_customize_dialog_set_shortcut_button_label" msgid="4754492225010429382">"Definir atalho"</string>      <string name="shortcut_helper_customize_dialog_remove_button_label" msgid="6546386970440176552">"Remover"</string> +    <!-- no translation found for shortcut_helper_customize_dialog_reset_button_label (7645535254306312685) --> +    <skip />      <string name="shortcut_helper_customize_dialog_cancel_button_label" msgid="5595546460431741178">"Cancelar"</string>      <string name="shortcut_helper_add_shortcut_dialog_placeholder" msgid="9154297849458741995">"Pressione a tecla"</string>      <string name="shortcut_customizer_key_combination_in_use_error_message" msgid="7693234470526626327">"Essa combinação de teclas já está em uso. Tente outra tecla."</string> diff --git a/packages/SystemUI/res/values-ro/strings.xml b/packages/SystemUI/res/values-ro/strings.xml index 93333c0db9ae..5911c405fcdd 100644 --- a/packages/SystemUI/res/values-ro/strings.xml +++ b/packages/SystemUI/res/values-ro/strings.xml @@ -529,7 +529,10 @@      <string name="communal_widgets_disclaimer_text" msgid="1423545475160506349">"Pentru a deschide o aplicație folosind un widget, va trebui să-ți confirmi identitatea. În plus, reține că oricine poate să vadă widgeturile, chiar dacă tableta este blocată. Este posibil ca unele widgeturi să nu fi fost create pentru ecranul de blocare și poate fi nesigur să le adaugi aici."</string>      <string name="communal_widgets_disclaimer_button" msgid="4423059765740780753">"OK"</string>      <string name="glanceable_hub_lockscreen_affordance_label" msgid="1461611028615752141">"Widgeturi"</string> -    <string name="glanceable_hub_lockscreen_affordance_disabled_text" msgid="511359420883794513">"Pentru a adăuga widgeturi pe ecranul de blocare drept comandă rapidă, verifică dacă sunt activate în setări."</string> +    <!-- no translation found for glanceable_hub_lockscreen_affordance_disabled_text (599170482297578735) --> +    <skip /> +    <!-- no translation found for glanceable_hub_lockscreen_affordance_action_button_label (7636151133344609375) --> +    <skip />      <string name="accessibility_multi_user_switch_switcher" msgid="5330448341251092660">"Schimbă utilizatorul"</string>      <string name="accessibility_multi_user_list_switcher" msgid="8574105376229857407">"meniu vertical"</string>      <string name="guest_exit_guest_dialog_message" msgid="8183450985628495709">"Toate aplicațiile și datele din această sesiune vor fi șterse."</string> @@ -875,14 +878,10 @@      <string name="system_multitasking_splitscreen_focus_lhs" msgid="3164261844398662518">"Treci la aplicația din stânga sau de mai sus cu ecranul împărțit"</string>      <string name="system_multitasking_replace" msgid="7410071959803642125">"În modul ecran împărțit: înlocuiește o aplicație cu alta"</string>      <string name="system_multitasking_move_to_next_display" msgid="6169737557526976997">"Mută fereastra activă de pe un ecran pe altul"</string> -    <!-- no translation found for system_desktop_mode_snap_left_window (8636204689945162298) --> -    <skip /> -    <!-- no translation found for system_desktop_mode_snap_right_window (2162560187639411929) --> -    <skip /> -    <!-- no translation found for system_desktop_mode_toggle_maximize_window (4084100093691768239) --> -    <skip /> -    <!-- no translation found for system_desktop_mode_minimize_window (1248714536732927092) --> -    <skip /> +    <string name="system_desktop_mode_snap_left_window" msgid="8636204689945162298">"Mută fereastra spre stânga"</string> +    <string name="system_desktop_mode_snap_right_window" msgid="2162560187639411929">"Mută fereastra spre dreapta"</string> +    <string name="system_desktop_mode_toggle_maximize_window" msgid="4084100093691768239">"Maximizează fereastra"</string> +    <string name="system_desktop_mode_minimize_window" msgid="1248714536732927092">"Minimizează fereastra"</string>      <string name="keyboard_shortcut_group_input" msgid="6888282716546625610">"Introducere"</string>      <string name="input_switch_input_language_next" msgid="3782155659868227855">"Comută la următoarea limbă"</string>      <string name="input_switch_input_language_previous" msgid="6043341362202336623">"Comută la limba anterioară"</string> @@ -1419,7 +1418,6 @@      <string name="shortcut_helper_category_system_controls" msgid="3153344561395751020">"Comenzile sistemului"</string>      <string name="shortcut_helper_category_system_apps" msgid="6001757545472556810">"Aplicații de sistem"</string>      <string name="shortcut_helper_category_multitasking" msgid="7413381961404090136">"Multitasking"</string> -    <string name="shortcutHelper_category_recent_apps" msgid="7918731953612377145">"Aplicații recente"</string>      <string name="shortcutHelper_category_split_screen" msgid="1159669813444812244">"Ecran împărțit"</string>      <string name="shortcut_helper_category_input" msgid="8674018654124839566">"Intrare"</string>      <string name="shortcut_helper_category_app_shortcuts" msgid="8010249408308587117">"Comenzi rapide pentru aplicații"</string> @@ -1428,25 +1426,31 @@      <string name="shortcut_helper_title" msgid="8567500639300970049">"Comenzi rapide de la tastatură"</string>      <string name="shortcut_helper_customize_mode_title" msgid="1467657117101096033">"Personalizează comenzile rapide de la tastatură"</string>      <string name="shortcut_customize_mode_remove_shortcut_dialog_title" msgid="7106420484940737208">"Elimini comanda rapidă?"</string> +    <!-- no translation found for shortcut_customize_mode_reset_shortcut_dialog_title (8131184731313717780) --> +    <skip />      <string name="shortcut_customize_mode_add_shortcut_description" msgid="6866025005347407696">"Apasă tasta pentru a atribui comanda rapidă"</string>      <string name="shortcut_customize_mode_remove_shortcut_description" msgid="6851287900585057128">"Astfel, se va șterge definitiv comanda rapidă personalizată."</string> +    <!-- no translation found for shortcut_customize_mode_reset_shortcut_description (2081849715634358684) --> +    <skip />      <string name="shortcut_helper_search_placeholder" msgid="5488547526269871819">"Comenzi directe de căutare"</string>      <string name="shortcut_helper_no_search_results" msgid="8554756497996692160">"Niciun rezultat al căutării"</string>      <string name="shortcut_helper_content_description_collapse_icon" msgid="8028015738431664954">"Pictograma de restrângere"</string>      <string name="shortcut_helper_content_description_meta_key" msgid="3989315044342124818">"Pictograma pentru acțiune sau tastă Meta"</string>      <string name="shortcut_helper_content_description_plus_icon" msgid="6152683734278299020">"Pictograma plus"</string>      <string name="shortcut_helper_customize_button_text" msgid="3124983502748069338">"Personalizează"</string> +    <!-- no translation found for shortcut_helper_reset_button_text (2548243844050633472) --> +    <skip />      <string name="shortcut_helper_done_button_text" msgid="7249905942125386191">"Gata"</string>      <string name="shortcut_helper_content_description_expand_icon" msgid="1084435697860417390">"Pictograma de extindere"</string>      <string name="shortcut_helper_key_combinations_or_separator" msgid="7082902112102125540">"sau"</string> -    <!-- no translation found for shortcut_helper_key_combinations_and_conjunction (6138186504075880224) --> -    <skip /> -    <!-- no translation found for shortcut_helper_key_combinations_forward_slash (1238652537199346970) --> -    <skip /> +    <string name="shortcut_helper_key_combinations_and_conjunction" msgid="6138186504075880224">"plus"</string> +    <string name="shortcut_helper_key_combinations_forward_slash" msgid="1238652537199346970">"bară oblică spre dreapta"</string>      <string name="shortcut_helper_content_description_drag_handle" msgid="5092426406009848110">"Ghidaj de tragere"</string>      <string name="shortcut_helper_keyboard_settings_buttons_label" msgid="6720967595915985259">"Setările tastaturii"</string>      <string name="shortcut_helper_customize_dialog_set_shortcut_button_label" msgid="4754492225010429382">"Setează o comandă rapidă"</string>      <string name="shortcut_helper_customize_dialog_remove_button_label" msgid="6546386970440176552">"Elimină"</string> +    <!-- no translation found for shortcut_helper_customize_dialog_reset_button_label (7645535254306312685) --> +    <skip />      <string name="shortcut_helper_customize_dialog_cancel_button_label" msgid="5595546460431741178">"Anulează"</string>      <string name="shortcut_helper_add_shortcut_dialog_placeholder" msgid="9154297849458741995">"Apasă tasta"</string>      <string name="shortcut_customizer_key_combination_in_use_error_message" msgid="7693234470526626327">"Combinația de taste este deja folosită. Încearcă altă tastă."</string> diff --git a/packages/SystemUI/res/values-ru/strings.xml b/packages/SystemUI/res/values-ru/strings.xml index 4641e016af66..95c4ee3ffe1f 100644 --- a/packages/SystemUI/res/values-ru/strings.xml +++ b/packages/SystemUI/res/values-ru/strings.xml @@ -529,7 +529,10 @@      <string name="communal_widgets_disclaimer_text" msgid="1423545475160506349">"Чтобы открыть приложение, используя виджет, вам нужно будет подтвердить свою личность. Обратите внимание, что виджеты видны всем, даже если планшет заблокирован. Некоторые виджеты не предназначены для использования на заблокированном экране. Добавлять их туда может быть небезопасно."</string>      <string name="communal_widgets_disclaimer_button" msgid="4423059765740780753">"ОК"</string>      <string name="glanceable_hub_lockscreen_affordance_label" msgid="1461611028615752141">"Виджеты"</string> -    <string name="glanceable_hub_lockscreen_affordance_disabled_text" msgid="511359420883794513">"Чтобы добавить виджеты на заблокированный экран, включите в настройках параметр \"Виджеты на заблокированном экране\"."</string> +    <!-- no translation found for glanceable_hub_lockscreen_affordance_disabled_text (599170482297578735) --> +    <skip /> +    <!-- no translation found for glanceable_hub_lockscreen_affordance_action_button_label (7636151133344609375) --> +    <skip />      <string name="accessibility_multi_user_switch_switcher" msgid="5330448341251092660">"Сменить пользователя."</string>      <string name="accessibility_multi_user_list_switcher" msgid="8574105376229857407">"раскрывающееся меню"</string>      <string name="guest_exit_guest_dialog_message" msgid="8183450985628495709">"Все приложения и данные этого профиля будут удалены."</string> @@ -875,14 +878,10 @@      <string name="system_multitasking_splitscreen_focus_lhs" msgid="3164261844398662518">"Перейти к приложению слева или вверху на разделенном экране"</string>      <string name="system_multitasking_replace" msgid="7410071959803642125">"В режиме разделения экрана заменить одно приложение другим"</string>      <string name="system_multitasking_move_to_next_display" msgid="6169737557526976997">"Переместить активное окно между экранами"</string> -    <!-- no translation found for system_desktop_mode_snap_left_window (8636204689945162298) --> -    <skip /> -    <!-- no translation found for system_desktop_mode_snap_right_window (2162560187639411929) --> -    <skip /> -    <!-- no translation found for system_desktop_mode_toggle_maximize_window (4084100093691768239) --> -    <skip /> -    <!-- no translation found for system_desktop_mode_minimize_window (1248714536732927092) --> -    <skip /> +    <string name="system_desktop_mode_snap_left_window" msgid="8636204689945162298">"Переместить окно влево"</string> +    <string name="system_desktop_mode_snap_right_window" msgid="2162560187639411929">"Переместить окно вправо"</string> +    <string name="system_desktop_mode_toggle_maximize_window" msgid="4084100093691768239">"Развернуть окно"</string> +    <string name="system_desktop_mode_minimize_window" msgid="1248714536732927092">"Свернуть окно"</string>      <string name="keyboard_shortcut_group_input" msgid="6888282716546625610">"Ввод"</string>      <string name="input_switch_input_language_next" msgid="3782155659868227855">"Выбрать следующий язык"</string>      <string name="input_switch_input_language_previous" msgid="6043341362202336623">"Выбрать предыдущий язык"</string> @@ -1419,7 +1418,6 @@      <string name="shortcut_helper_category_system_controls" msgid="3153344561395751020">"Управление системой"</string>      <string name="shortcut_helper_category_system_apps" msgid="6001757545472556810">"Системные приложения"</string>      <string name="shortcut_helper_category_multitasking" msgid="7413381961404090136">"Многозадачность"</string> -    <string name="shortcutHelper_category_recent_apps" msgid="7918731953612377145">"Недавние приложения"</string>      <string name="shortcutHelper_category_split_screen" msgid="1159669813444812244">"Разделение экрана"</string>      <string name="shortcut_helper_category_input" msgid="8674018654124839566">"Ввод"</string>      <string name="shortcut_helper_category_app_shortcuts" msgid="8010249408308587117">"Быстрые клавиши для приложений"</string> @@ -1428,25 +1426,31 @@      <string name="shortcut_helper_title" msgid="8567500639300970049">"Быстрые клавиши"</string>      <string name="shortcut_helper_customize_mode_title" msgid="1467657117101096033">"Как настроить быстрые клавиши"</string>      <string name="shortcut_customize_mode_remove_shortcut_dialog_title" msgid="7106420484940737208">"Удалить сочетание клавиш?"</string> +    <!-- no translation found for shortcut_customize_mode_reset_shortcut_dialog_title (8131184731313717780) --> +    <skip />      <string name="shortcut_customize_mode_add_shortcut_description" msgid="6866025005347407696">"Нажмите клавишу, чтобы назначить сочетание клавиш."</string>      <string name="shortcut_customize_mode_remove_shortcut_description" msgid="6851287900585057128">"Настроенное сочетание будет безвозвратно удалено."</string> +    <!-- no translation found for shortcut_customize_mode_reset_shortcut_description (2081849715634358684) --> +    <skip />      <string name="shortcut_helper_search_placeholder" msgid="5488547526269871819">"Найти быстрые клавиши"</string>      <string name="shortcut_helper_no_search_results" msgid="8554756497996692160">"Ничего не найдено"</string>      <string name="shortcut_helper_content_description_collapse_icon" msgid="8028015738431664954">"Значок \"Свернуть\""</string>      <string name="shortcut_helper_content_description_meta_key" msgid="3989315044342124818">"Значок клавиши Meta для выполнения действия"</string>      <string name="shortcut_helper_content_description_plus_icon" msgid="6152683734278299020">"Значок плюса"</string>      <string name="shortcut_helper_customize_button_text" msgid="3124983502748069338">"Настроить"</string> +    <!-- no translation found for shortcut_helper_reset_button_text (2548243844050633472) --> +    <skip />      <string name="shortcut_helper_done_button_text" msgid="7249905942125386191">"Готово"</string>      <string name="shortcut_helper_content_description_expand_icon" msgid="1084435697860417390">"Значок \"Развернуть\""</string>      <string name="shortcut_helper_key_combinations_or_separator" msgid="7082902112102125540">"или"</string> -    <!-- no translation found for shortcut_helper_key_combinations_and_conjunction (6138186504075880224) --> -    <skip /> -    <!-- no translation found for shortcut_helper_key_combinations_forward_slash (1238652537199346970) --> -    <skip /> +    <string name="shortcut_helper_key_combinations_and_conjunction" msgid="6138186504075880224">"плюс"</string> +    <string name="shortcut_helper_key_combinations_forward_slash" msgid="1238652537199346970">"косая черта"</string>      <string name="shortcut_helper_content_description_drag_handle" msgid="5092426406009848110">"Маркер перемещения"</string>      <string name="shortcut_helper_keyboard_settings_buttons_label" msgid="6720967595915985259">"Настройки клавиатуры"</string>      <string name="shortcut_helper_customize_dialog_set_shortcut_button_label" msgid="4754492225010429382">"Задать сочетание клавиш"</string>      <string name="shortcut_helper_customize_dialog_remove_button_label" msgid="6546386970440176552">"Удалить"</string> +    <!-- no translation found for shortcut_helper_customize_dialog_reset_button_label (7645535254306312685) --> +    <skip />      <string name="shortcut_helper_customize_dialog_cancel_button_label" msgid="5595546460431741178">"Отмена"</string>      <string name="shortcut_helper_add_shortcut_dialog_placeholder" msgid="9154297849458741995">"Нажмите клавишу"</string>      <string name="shortcut_customizer_key_combination_in_use_error_message" msgid="7693234470526626327">"Это сочетание клавиш уже используется. Попробуйте другое."</string> diff --git a/packages/SystemUI/res/values-si/strings.xml b/packages/SystemUI/res/values-si/strings.xml index 7f85b6f7387f..36879d6b7cb0 100644 --- a/packages/SystemUI/res/values-si/strings.xml +++ b/packages/SystemUI/res/values-si/strings.xml @@ -529,7 +529,10 @@      <string name="communal_widgets_disclaimer_text" msgid="1423545475160506349">"විජට් එකක් භාවිතයෙන් යෙදුමක් විවෘත කිරීමට, ඔබට ඒ ඔබ බව සත්යාපනය කිරීමට අවශ්ය වනු ඇත. එසේම, ඔබේ ටැබ්ලටය අගුළු දමා ඇති විට පවා ඕනෑම කෙනෙකුට ඒවා බැලිය හැකි බව මතක තබා ගන්න. සමහර විජට් ඔබේ අගුළු තිරය සඳහා අදහස් කර නොතිබිය හැකි අතර මෙහි එක් කිරීමට අනාරක්ෂිත විය හැක."</string>      <string name="communal_widgets_disclaimer_button" msgid="4423059765740780753">"තේරුණා"</string>      <string name="glanceable_hub_lockscreen_affordance_label" msgid="1461611028615752141">"විජට්"</string> -    <string name="glanceable_hub_lockscreen_affordance_disabled_text" msgid="511359420883794513">"කෙටිමඟක් ලෙස අගුළු තිරය මත Widgets එක් කිරීමට, එය සැකසීම් තුළ සබල කර ඇති බවට වග බලා ගන්න."</string> +    <!-- no translation found for glanceable_hub_lockscreen_affordance_disabled_text (599170482297578735) --> +    <skip /> +    <!-- no translation found for glanceable_hub_lockscreen_affordance_action_button_label (7636151133344609375) --> +    <skip />      <string name="accessibility_multi_user_switch_switcher" msgid="5330448341251092660">"පරිශීලක මාරුව"</string>      <string name="accessibility_multi_user_list_switcher" msgid="8574105376229857407">"නිපතන මෙනුව"</string>      <string name="guest_exit_guest_dialog_message" msgid="8183450985628495709">"මෙම සැසියේ සියළුම යෙදුම් සහ දත්ත මකාවී."</string> @@ -875,14 +878,10 @@      <string name="system_multitasking_splitscreen_focus_lhs" msgid="3164261844398662518">"බෙදුම් තිරය භාවිත කරන අතරතුර වමේ හෝ ඉහළ ඇති යෙදුමට මාරු වන්න"</string>      <string name="system_multitasking_replace" msgid="7410071959803642125">"බෙදුම් තිරය අතරතුර: යෙදුමක් එකකින් තවත් එකක් ප්රතිස්ථාපනය කරන්න"</string>      <string name="system_multitasking_move_to_next_display" msgid="6169737557526976997">"සක්රිය කවුළුව සංදර්ශක අතර ගෙන යන්න"</string> -    <!-- no translation found for system_desktop_mode_snap_left_window (8636204689945162298) --> -    <skip /> -    <!-- no translation found for system_desktop_mode_snap_right_window (2162560187639411929) --> -    <skip /> -    <!-- no translation found for system_desktop_mode_toggle_maximize_window (4084100093691768239) --> -    <skip /> -    <!-- no translation found for system_desktop_mode_minimize_window (1248714536732927092) --> -    <skip /> +    <string name="system_desktop_mode_snap_left_window" msgid="8636204689945162298">"කවුළුව වමට ගෙන යන්න"</string> +    <string name="system_desktop_mode_snap_right_window" msgid="2162560187639411929">"කවුළුව දකුණට ගෙන යන්න"</string> +    <string name="system_desktop_mode_toggle_maximize_window" msgid="4084100093691768239">"කවුළුව විහිදන්න"</string> +    <string name="system_desktop_mode_minimize_window" msgid="1248714536732927092">"කවුළුව කුඩා කරන්න"</string>      <string name="keyboard_shortcut_group_input" msgid="6888282716546625610">"ආදානය"</string>      <string name="input_switch_input_language_next" msgid="3782155659868227855">"මීළඟ භාෂාවට මාරු වන්න"</string>      <string name="input_switch_input_language_previous" msgid="6043341362202336623">"පෙර භාෂාවට මාරු වන්න"</string> @@ -1419,7 +1418,6 @@      <string name="shortcut_helper_category_system_controls" msgid="3153344561395751020">"පද්ධති පාලන"</string>      <string name="shortcut_helper_category_system_apps" msgid="6001757545472556810">"පද්ධති යෙදුම්"</string>      <string name="shortcut_helper_category_multitasking" msgid="7413381961404090136">"බහුකාර්ය"</string> -    <string name="shortcutHelper_category_recent_apps" msgid="7918731953612377145">"මෑත යෙදුම්"</string>      <string name="shortcutHelper_category_split_screen" msgid="1159669813444812244">"බෙදුම් තිරය"</string>      <string name="shortcut_helper_category_input" msgid="8674018654124839566">"ආදානය"</string>      <string name="shortcut_helper_category_app_shortcuts" msgid="8010249408308587117">"යෙදුම් කෙටිමං"</string> @@ -1428,25 +1426,31 @@      <string name="shortcut_helper_title" msgid="8567500639300970049">"යතුරු පුවරු කෙටි මං"</string>      <string name="shortcut_helper_customize_mode_title" msgid="1467657117101096033">"යතුරුපුවරු කෙටිමං අභිරුචිකරණය කරන්න"</string>      <string name="shortcut_customize_mode_remove_shortcut_dialog_title" msgid="7106420484940737208">"කෙටිමඟ ඉවත් කරන්න ද?"</string> +    <!-- no translation found for shortcut_customize_mode_reset_shortcut_dialog_title (8131184731313717780) --> +    <skip />      <string name="shortcut_customize_mode_add_shortcut_description" msgid="6866025005347407696">"කෙටිමඟ පැවරීමට යතුර ඔබන්න"</string>      <string name="shortcut_customize_mode_remove_shortcut_description" msgid="6851287900585057128">"මෙය ඔබේ අභිරුචි කෙටිමඟ ස්ථිරවම මකනු ඇත."</string> +    <!-- no translation found for shortcut_customize_mode_reset_shortcut_description (2081849715634358684) --> +    <skip />      <string name="shortcut_helper_search_placeholder" msgid="5488547526269871819">"කෙටි මං සොයන්න"</string>      <string name="shortcut_helper_no_search_results" msgid="8554756497996692160">"සෙවීම් ප්රතිඵල නැත"</string>      <string name="shortcut_helper_content_description_collapse_icon" msgid="8028015738431664954">"හැකුළුම් නිරූපකය"</string>      <string name="shortcut_helper_content_description_meta_key" msgid="3989315044342124818">"ක්රියාව හෝ Meta යතුරු නිරූපකය"</string>      <string name="shortcut_helper_content_description_plus_icon" msgid="6152683734278299020">"ධන නිරූපකය"</string>      <string name="shortcut_helper_customize_button_text" msgid="3124983502748069338">"අභිරුචිකරණය කරන්න"</string> +    <!-- no translation found for shortcut_helper_reset_button_text (2548243844050633472) --> +    <skip />      <string name="shortcut_helper_done_button_text" msgid="7249905942125386191">"නිමයි"</string>      <string name="shortcut_helper_content_description_expand_icon" msgid="1084435697860417390">"දිගහැරීම් නිරූපකය"</string>      <string name="shortcut_helper_key_combinations_or_separator" msgid="7082902112102125540">"හෝ"</string> -    <!-- no translation found for shortcut_helper_key_combinations_and_conjunction (6138186504075880224) --> -    <skip /> -    <!-- no translation found for shortcut_helper_key_combinations_forward_slash (1238652537199346970) --> -    <skip /> +    <string name="shortcut_helper_key_combinations_and_conjunction" msgid="6138186504075880224">"ධන"</string> +    <string name="shortcut_helper_key_combinations_forward_slash" msgid="1238652537199346970">"ඉදිරියට ඉර"</string>      <string name="shortcut_helper_content_description_drag_handle" msgid="5092426406009848110">"ඇදීම් හැඬලය"</string>      <string name="shortcut_helper_keyboard_settings_buttons_label" msgid="6720967595915985259">"යතුරු පුවරු සැකසීම්"</string>      <string name="shortcut_helper_customize_dialog_set_shortcut_button_label" msgid="4754492225010429382">"කෙටිමඟ සකසන්න"</string>      <string name="shortcut_helper_customize_dialog_remove_button_label" msgid="6546386970440176552">"ඉවත් කරන්න"</string> +    <!-- no translation found for shortcut_helper_customize_dialog_reset_button_label (7645535254306312685) --> +    <skip />      <string name="shortcut_helper_customize_dialog_cancel_button_label" msgid="5595546460431741178">"අවලංගු කරන්න"</string>      <string name="shortcut_helper_add_shortcut_dialog_placeholder" msgid="9154297849458741995">"යතුර ඔබන්න"</string>      <string name="shortcut_customizer_key_combination_in_use_error_message" msgid="7693234470526626327">"යතුරු සංයෝජනය දැනටමත් භාවිත වේ. වෙනත් යතුරක් උත්සාහ කරන්න."</string> diff --git a/packages/SystemUI/res/values-sk/strings.xml b/packages/SystemUI/res/values-sk/strings.xml index 6dc7a66f7f8f..c972c180a484 100644 --- a/packages/SystemUI/res/values-sk/strings.xml +++ b/packages/SystemUI/res/values-sk/strings.xml @@ -529,7 +529,10 @@      <string name="communal_widgets_disclaimer_text" msgid="1423545475160506349">"Ak chcete otvoriť aplikáciu pomocou miniaplikácie, budete musieť overiť svoju totožnosť. Pamätajte, že si miniaplikáciu môže pozrieť ktokoľvek, aj keď máte tablet uzamknutý. Niektoré miniaplikácie možno nie sú určené pre uzamknutú obrazovku a ich pridanie tu môže byť nebezpečné."</string>      <string name="communal_widgets_disclaimer_button" msgid="4423059765740780753">"Dobre"</string>      <string name="glanceable_hub_lockscreen_affordance_label" msgid="1461611028615752141">"Miniaplikácie"</string> -    <string name="glanceable_hub_lockscreen_affordance_disabled_text" msgid="511359420883794513">"Ak chcete na uzamknutú obrazovku pridať miniaplikácie ako odkaz, uistite sa, že sú v nastaveniach povolené."</string> +    <!-- no translation found for glanceable_hub_lockscreen_affordance_disabled_text (599170482297578735) --> +    <skip /> +    <!-- no translation found for glanceable_hub_lockscreen_affordance_action_button_label (7636151133344609375) --> +    <skip />      <string name="accessibility_multi_user_switch_switcher" msgid="5330448341251092660">"Prepnutie používateľa"</string>      <string name="accessibility_multi_user_list_switcher" msgid="8574105376229857407">"rozbaľovacia ponuka"</string>      <string name="guest_exit_guest_dialog_message" msgid="8183450985628495709">"Všetky aplikácie a údaje v tejto relácii budú odstránené."</string> @@ -875,14 +878,10 @@      <string name="system_multitasking_splitscreen_focus_lhs" msgid="3164261844398662518">"Prechod na aplikáciu vľavo alebo hore pri rozdelenej obrazovke"</string>      <string name="system_multitasking_replace" msgid="7410071959803642125">"Počas rozdelenej obrazovky: nahradenie aplikácie inou"</string>      <string name="system_multitasking_move_to_next_display" msgid="6169737557526976997">"Presun aktívneho okna medzi obrazovkami"</string> -    <!-- no translation found for system_desktop_mode_snap_left_window (8636204689945162298) --> -    <skip /> -    <!-- no translation found for system_desktop_mode_snap_right_window (2162560187639411929) --> -    <skip /> -    <!-- no translation found for system_desktop_mode_toggle_maximize_window (4084100093691768239) --> -    <skip /> -    <!-- no translation found for system_desktop_mode_minimize_window (1248714536732927092) --> -    <skip /> +    <string name="system_desktop_mode_snap_left_window" msgid="8636204689945162298">"Presun okna doľava"</string> +    <string name="system_desktop_mode_snap_right_window" msgid="2162560187639411929">"Presun okna doprava"</string> +    <string name="system_desktop_mode_toggle_maximize_window" msgid="4084100093691768239">"Maximalizovanie okna"</string> +    <string name="system_desktop_mode_minimize_window" msgid="1248714536732927092">"Minimalizovanie okna"</string>      <string name="keyboard_shortcut_group_input" msgid="6888282716546625610">"Vstup"</string>      <string name="input_switch_input_language_next" msgid="3782155659868227855">"Prepnutie na ďalší jazyk"</string>      <string name="input_switch_input_language_previous" msgid="6043341362202336623">"Prepnutie na predchádzajúci jazyk"</string> @@ -1419,7 +1418,6 @@      <string name="shortcut_helper_category_system_controls" msgid="3153344561395751020">"Ovládanie systému"</string>      <string name="shortcut_helper_category_system_apps" msgid="6001757545472556810">"Systémové aplikácie"</string>      <string name="shortcut_helper_category_multitasking" msgid="7413381961404090136">"Multitasking"</string> -    <string name="shortcutHelper_category_recent_apps" msgid="7918731953612377145">"Nedávne aplikácie"</string>      <string name="shortcutHelper_category_split_screen" msgid="1159669813444812244">"Rozdelená obrazovka"</string>      <string name="shortcut_helper_category_input" msgid="8674018654124839566">"Vstup"</string>      <string name="shortcut_helper_category_app_shortcuts" msgid="8010249408308587117">"Skratky aplikácií"</string> @@ -1428,25 +1426,31 @@      <string name="shortcut_helper_title" msgid="8567500639300970049">"Klávesové skratky"</string>      <string name="shortcut_helper_customize_mode_title" msgid="1467657117101096033">"Prispôsobenie klávesových skratiek"</string>      <string name="shortcut_customize_mode_remove_shortcut_dialog_title" msgid="7106420484940737208">"Chcete skratku odstrániť?"</string> +    <!-- no translation found for shortcut_customize_mode_reset_shortcut_dialog_title (8131184731313717780) --> +    <skip />      <string name="shortcut_customize_mode_add_shortcut_description" msgid="6866025005347407696">"Stlačením klávesa priraďte skratku"</string>      <string name="shortcut_customize_mode_remove_shortcut_description" msgid="6851287900585057128">"Týmto natrvalo odstránite vlastnú skratku."</string> +    <!-- no translation found for shortcut_customize_mode_reset_shortcut_description (2081849715634358684) --> +    <skip />      <string name="shortcut_helper_search_placeholder" msgid="5488547526269871819">"Prehľadávať skratky"</string>      <string name="shortcut_helper_no_search_results" msgid="8554756497996692160">"Žiadne výsledky vyhľadávania"</string>      <string name="shortcut_helper_content_description_collapse_icon" msgid="8028015738431664954">"Ikona zbalenia"</string>      <string name="shortcut_helper_content_description_meta_key" msgid="3989315044342124818">"Ikona akčného klávesa alebo metaklávesa"</string>      <string name="shortcut_helper_content_description_plus_icon" msgid="6152683734278299020">"Ikona plus"</string>      <string name="shortcut_helper_customize_button_text" msgid="3124983502748069338">"Prispôsobiť"</string> +    <!-- no translation found for shortcut_helper_reset_button_text (2548243844050633472) --> +    <skip />      <string name="shortcut_helper_done_button_text" msgid="7249905942125386191">"Hotovo"</string>      <string name="shortcut_helper_content_description_expand_icon" msgid="1084435697860417390">"Ikona rozbalenia"</string>      <string name="shortcut_helper_key_combinations_or_separator" msgid="7082902112102125540">"alebo"</string> -    <!-- no translation found for shortcut_helper_key_combinations_and_conjunction (6138186504075880224) --> -    <skip /> -    <!-- no translation found for shortcut_helper_key_combinations_forward_slash (1238652537199346970) --> -    <skip /> +    <string name="shortcut_helper_key_combinations_and_conjunction" msgid="6138186504075880224">"plus"</string> +    <string name="shortcut_helper_key_combinations_forward_slash" msgid="1238652537199346970">"lomka"</string>      <string name="shortcut_helper_content_description_drag_handle" msgid="5092426406009848110">"Presúvadlo"</string>      <string name="shortcut_helper_keyboard_settings_buttons_label" msgid="6720967595915985259">"Nastavenia klávesnice"</string>      <string name="shortcut_helper_customize_dialog_set_shortcut_button_label" msgid="4754492225010429382">"Nastaviť skratku"</string>      <string name="shortcut_helper_customize_dialog_remove_button_label" msgid="6546386970440176552">"Odstrániť"</string> +    <!-- no translation found for shortcut_helper_customize_dialog_reset_button_label (7645535254306312685) --> +    <skip />      <string name="shortcut_helper_customize_dialog_cancel_button_label" msgid="5595546460431741178">"Zrušiť"</string>      <string name="shortcut_helper_add_shortcut_dialog_placeholder" msgid="9154297849458741995">"Stlačte kláves"</string>      <string name="shortcut_customizer_key_combination_in_use_error_message" msgid="7693234470526626327">"Kombinácia klávesov sa už používa. Skúste iný kláves."</string> diff --git a/packages/SystemUI/res/values-sl/strings.xml b/packages/SystemUI/res/values-sl/strings.xml index 74fbd06e15b2..914df7219f25 100644 --- a/packages/SystemUI/res/values-sl/strings.xml +++ b/packages/SystemUI/res/values-sl/strings.xml @@ -529,7 +529,10 @@      <string name="communal_widgets_disclaimer_text" msgid="1423545475160506349">"Če želite aplikacijo odpreti s pripomočkom, morate potrditi, da ste to vi. Upoštevajte tudi, da si jih lahko ogledajo vsi, tudi ko je tablični računalnik zaklenjen. Nekateri pripomočki morda niso predvideni za uporabo na zaklenjenem zaslonu, zato jih tukaj morda ni varno dodati."</string>      <string name="communal_widgets_disclaimer_button" msgid="4423059765740780753">"Razumem"</string>      <string name="glanceable_hub_lockscreen_affordance_label" msgid="1461611028615752141">"Pripomočki"</string> -    <string name="glanceable_hub_lockscreen_affordance_disabled_text" msgid="511359420883794513">"Če želite na zaklenjen zaslon dodati pripomočke kot bližnjico, morate to omogočiti v nastavitvah."</string> +    <!-- no translation found for glanceable_hub_lockscreen_affordance_disabled_text (599170482297578735) --> +    <skip /> +    <!-- no translation found for glanceable_hub_lockscreen_affordance_action_button_label (7636151133344609375) --> +    <skip />      <string name="accessibility_multi_user_switch_switcher" msgid="5330448341251092660">"Preklop med uporabniki"</string>      <string name="accessibility_multi_user_list_switcher" msgid="8574105376229857407">"spustni meni"</string>      <string name="guest_exit_guest_dialog_message" msgid="8183450985628495709">"Vse aplikacije in podatki v tej seji bodo izbrisani."</string> @@ -1415,7 +1418,6 @@      <string name="shortcut_helper_category_system_controls" msgid="3153344561395751020">"Sistemski kontrolniki"</string>      <string name="shortcut_helper_category_system_apps" msgid="6001757545472556810">"Sistemske aplikacije"</string>      <string name="shortcut_helper_category_multitasking" msgid="7413381961404090136">"Večopravilnost"</string> -    <string name="shortcutHelper_category_recent_apps" msgid="7918731953612377145">"Nedavne aplikacije"</string>      <string name="shortcutHelper_category_split_screen" msgid="1159669813444812244">"Razdeljen zaslon"</string>      <string name="shortcut_helper_category_input" msgid="8674018654124839566">"Vnos"</string>      <string name="shortcut_helper_category_app_shortcuts" msgid="8010249408308587117">"Bližnjice do aplikacij"</string> @@ -1424,14 +1426,20 @@      <string name="shortcut_helper_title" msgid="8567500639300970049">"Bližnjične tipke"</string>      <string name="shortcut_helper_customize_mode_title" msgid="1467657117101096033">"Prilagajanje bližnjičnih tipk"</string>      <string name="shortcut_customize_mode_remove_shortcut_dialog_title" msgid="7106420484940737208">"Želite odstraniti bližnjico?"</string> +    <!-- no translation found for shortcut_customize_mode_reset_shortcut_dialog_title (8131184731313717780) --> +    <skip />      <string name="shortcut_customize_mode_add_shortcut_description" msgid="6866025005347407696">"Pritisnite tipko za dodelitev bližnjice"</string>      <string name="shortcut_customize_mode_remove_shortcut_description" msgid="6851287900585057128">"S tem boste trajno izbrisali bližnjico po meri."</string> +    <!-- no translation found for shortcut_customize_mode_reset_shortcut_description (2081849715634358684) --> +    <skip />      <string name="shortcut_helper_search_placeholder" msgid="5488547526269871819">"Iskanje po bližnjicah"</string>      <string name="shortcut_helper_no_search_results" msgid="8554756497996692160">"Ni rezultatov iskanja"</string>      <string name="shortcut_helper_content_description_collapse_icon" msgid="8028015738431664954">"Ikona za strnitev"</string>      <string name="shortcut_helper_content_description_meta_key" msgid="3989315044342124818">"Ikona tipke za dejanje ali metapodatke"</string>      <string name="shortcut_helper_content_description_plus_icon" msgid="6152683734278299020">"Ikona znaka plus"</string>      <string name="shortcut_helper_customize_button_text" msgid="3124983502748069338">"Prilagodi"</string> +    <!-- no translation found for shortcut_helper_reset_button_text (2548243844050633472) --> +    <skip />      <string name="shortcut_helper_done_button_text" msgid="7249905942125386191">"Končano"</string>      <string name="shortcut_helper_content_description_expand_icon" msgid="1084435697860417390">"Ikona za razširitev"</string>      <string name="shortcut_helper_key_combinations_or_separator" msgid="7082902112102125540">"ali"</string> @@ -1441,6 +1449,8 @@      <string name="shortcut_helper_keyboard_settings_buttons_label" msgid="6720967595915985259">"Nastavitve tipkovnice"</string>      <string name="shortcut_helper_customize_dialog_set_shortcut_button_label" msgid="4754492225010429382">"Nastavite bližnjico"</string>      <string name="shortcut_helper_customize_dialog_remove_button_label" msgid="6546386970440176552">"Odstrani"</string> +    <!-- no translation found for shortcut_helper_customize_dialog_reset_button_label (7645535254306312685) --> +    <skip />      <string name="shortcut_helper_customize_dialog_cancel_button_label" msgid="5595546460431741178">"Prekliči"</string>      <string name="shortcut_helper_add_shortcut_dialog_placeholder" msgid="9154297849458741995">"Pritisnite tipko"</string>      <string name="shortcut_customizer_key_combination_in_use_error_message" msgid="7693234470526626327">"Kombinacija tipk je že v uporabi. Poskusite z drugo tipko."</string> diff --git a/packages/SystemUI/res/values-sq/strings.xml b/packages/SystemUI/res/values-sq/strings.xml index bd68061a13db..6a597f7bd8f8 100644 --- a/packages/SystemUI/res/values-sq/strings.xml +++ b/packages/SystemUI/res/values-sq/strings.xml @@ -306,8 +306,7 @@      <string name="turn_on_bluetooth" msgid="5681370462180289071">"Përdor Bluetooth-in"</string>      <string name="quick_settings_bluetooth_device_connected" msgid="7884777006729260996">"Lidhur"</string>      <string name="quick_settings_bluetooth_device_audio_sharing" msgid="1496358082943301670">"Ndarja e audios"</string> -    <!-- no translation found for quick_settings_bluetooth_device_audio_sharing_or_switch_active (8680997711431098238) --> -    <skip /> +    <string name="quick_settings_bluetooth_device_audio_sharing_or_switch_active" msgid="8680997711431098238">"Mbështet ndarjen e audios"</string>      <string name="quick_settings_bluetooth_device_saved" msgid="7549938728928069477">"Ruajtur"</string>      <string name="accessibility_quick_settings_bluetooth_device_tap_to_disconnect" msgid="415980329093277342">"shkëput"</string>      <string name="accessibility_quick_settings_bluetooth_device_tap_to_activate" msgid="3724301751036877403">"aktivizo"</string> @@ -530,7 +529,10 @@      <string name="communal_widgets_disclaimer_text" msgid="1423545475160506349">"Për të hapur një aplikacion duke përdorur një miniaplikacion, do të duhet të verifikosh që je ti. Ki parasysh gjithashtu që çdo person mund t\'i shikojë, edhe kur tableti yt është i kyçur. Disa miniaplikacione mund të mos jenë planifikuar për ekranin tënd të kyçjes dhe mund të mos jetë e sigurt t\'i shtosh këtu."</string>      <string name="communal_widgets_disclaimer_button" msgid="4423059765740780753">"E kuptova"</string>      <string name="glanceable_hub_lockscreen_affordance_label" msgid="1461611028615752141">"Miniaplikacionet"</string> -    <string name="glanceable_hub_lockscreen_affordance_disabled_text" msgid="511359420883794513">"Për të shtuar \"Miniaplikacionet në ekranin e kyçjes\" si shkurtore, sigurohu që kjo veçori të jetë aktivizuar te cilësimet."</string> +    <!-- no translation found for glanceable_hub_lockscreen_affordance_disabled_text (599170482297578735) --> +    <skip /> +    <!-- no translation found for glanceable_hub_lockscreen_affordance_action_button_label (7636151133344609375) --> +    <skip />      <string name="accessibility_multi_user_switch_switcher" msgid="5330448341251092660">"Ndërro përdorues"</string>      <string name="accessibility_multi_user_list_switcher" msgid="8574105376229857407">"menyja me tërheqje poshtë"</string>      <string name="guest_exit_guest_dialog_message" msgid="8183450985628495709">"Të gjitha aplikacionet dhe të dhënat në këtë sesion do të fshihen."</string> @@ -876,14 +878,10 @@      <string name="system_multitasking_splitscreen_focus_lhs" msgid="3164261844398662518">"Kalo tek aplikacioni në të majtë ose sipër kur përdor ekranin e ndarë"</string>      <string name="system_multitasking_replace" msgid="7410071959803642125">"Gjatë ekranit të ndarë: zëvendëso një aplikacion me një tjetër"</string>      <string name="system_multitasking_move_to_next_display" msgid="6169737557526976997">"Zhvendose dritaren aktive mes ekraneve"</string> -    <!-- no translation found for system_desktop_mode_snap_left_window (8636204689945162298) --> -    <skip /> -    <!-- no translation found for system_desktop_mode_snap_right_window (2162560187639411929) --> -    <skip /> -    <!-- no translation found for system_desktop_mode_toggle_maximize_window (4084100093691768239) --> -    <skip /> -    <!-- no translation found for system_desktop_mode_minimize_window (1248714536732927092) --> -    <skip /> +    <string name="system_desktop_mode_snap_left_window" msgid="8636204689945162298">"Zhvendos dritaren në të majtë"</string> +    <string name="system_desktop_mode_snap_right_window" msgid="2162560187639411929">"Zhvendos dritaren në të djathtë"</string> +    <string name="system_desktop_mode_toggle_maximize_window" msgid="4084100093691768239">"Maksimizo dritaren"</string> +    <string name="system_desktop_mode_minimize_window" msgid="1248714536732927092">"Minimizo dritaren"</string>      <string name="keyboard_shortcut_group_input" msgid="6888282716546625610">"Hyrja"</string>      <string name="input_switch_input_language_next" msgid="3782155659868227855">"Kalo te gjuha tjetër"</string>      <string name="input_switch_input_language_previous" msgid="6043341362202336623">"Kalo te gjuha e mëparshme"</string> @@ -1420,7 +1418,6 @@      <string name="shortcut_helper_category_system_controls" msgid="3153344561395751020">"Kontrollet e sistemit"</string>      <string name="shortcut_helper_category_system_apps" msgid="6001757545472556810">"Aplikacionet e sistemit"</string>      <string name="shortcut_helper_category_multitasking" msgid="7413381961404090136">"Kryerja e shumë detyrave"</string> -    <string name="shortcutHelper_category_recent_apps" msgid="7918731953612377145">"Aplikacionet e fundit"</string>      <string name="shortcutHelper_category_split_screen" msgid="1159669813444812244">"Ekrani i ndarë"</string>      <string name="shortcut_helper_category_input" msgid="8674018654124839566">"Hyrja"</string>      <string name="shortcut_helper_category_app_shortcuts" msgid="8010249408308587117">"Shkurtoret e aplikacionit"</string> @@ -1429,25 +1426,31 @@      <string name="shortcut_helper_title" msgid="8567500639300970049">"Shkurtoret e tastierës"</string>      <string name="shortcut_helper_customize_mode_title" msgid="1467657117101096033">"Personalizo shkurtoret e tastierës"</string>      <string name="shortcut_customize_mode_remove_shortcut_dialog_title" msgid="7106420484940737208">"Të hiqet shkurtorja?"</string> +    <!-- no translation found for shortcut_customize_mode_reset_shortcut_dialog_title (8131184731313717780) --> +    <skip />      <string name="shortcut_customize_mode_add_shortcut_description" msgid="6866025005347407696">"Shtyp tastin për të caktuar shkurtoren"</string>      <string name="shortcut_customize_mode_remove_shortcut_description" msgid="6851287900585057128">"Kjo do ta fshijë përgjithmonë shkurtoren tënde të personalizuar."</string> +    <!-- no translation found for shortcut_customize_mode_reset_shortcut_description (2081849715634358684) --> +    <skip />      <string name="shortcut_helper_search_placeholder" msgid="5488547526269871819">"Kërko për shkurtoret"</string>      <string name="shortcut_helper_no_search_results" msgid="8554756497996692160">"Asnjë rezultat kërkimi"</string>      <string name="shortcut_helper_content_description_collapse_icon" msgid="8028015738431664954">"Ikona e palosjes"</string>      <string name="shortcut_helper_content_description_meta_key" msgid="3989315044342124818">"Ikona e tastit të veprimit ose tastit Meta"</string>      <string name="shortcut_helper_content_description_plus_icon" msgid="6152683734278299020">"Ikona e plusit"</string>      <string name="shortcut_helper_customize_button_text" msgid="3124983502748069338">"Personalizo"</string> +    <!-- no translation found for shortcut_helper_reset_button_text (2548243844050633472) --> +    <skip />      <string name="shortcut_helper_done_button_text" msgid="7249905942125386191">"U krye"</string>      <string name="shortcut_helper_content_description_expand_icon" msgid="1084435697860417390">"Ikona e zgjerimit"</string>      <string name="shortcut_helper_key_combinations_or_separator" msgid="7082902112102125540">"ose"</string> -    <!-- no translation found for shortcut_helper_key_combinations_and_conjunction (6138186504075880224) --> -    <skip /> -    <!-- no translation found for shortcut_helper_key_combinations_forward_slash (1238652537199346970) --> -    <skip /> +    <string name="shortcut_helper_key_combinations_and_conjunction" msgid="6138186504075880224">"plus"</string> +    <string name="shortcut_helper_key_combinations_forward_slash" msgid="1238652537199346970">"vizë e pjerrët djathtas"</string>      <string name="shortcut_helper_content_description_drag_handle" msgid="5092426406009848110">"Doreza e zvarritjes"</string>      <string name="shortcut_helper_keyboard_settings_buttons_label" msgid="6720967595915985259">"Cilësimet e tastierës"</string>      <string name="shortcut_helper_customize_dialog_set_shortcut_button_label" msgid="4754492225010429382">"Cakto shkurtoren"</string>      <string name="shortcut_helper_customize_dialog_remove_button_label" msgid="6546386970440176552">"Hiq"</string> +    <!-- no translation found for shortcut_helper_customize_dialog_reset_button_label (7645535254306312685) --> +    <skip />      <string name="shortcut_helper_customize_dialog_cancel_button_label" msgid="5595546460431741178">"Anulo"</string>      <string name="shortcut_helper_add_shortcut_dialog_placeholder" msgid="9154297849458741995">"Shtyp tastin"</string>      <string name="shortcut_customizer_key_combination_in_use_error_message" msgid="7693234470526626327">"Kombinimi i tasteve është tashmë në përdorim. Provo një tast tjetër."</string> diff --git a/packages/SystemUI/res/values-sr/strings.xml b/packages/SystemUI/res/values-sr/strings.xml index cc18b668a281..560f4d700d22 100644 --- a/packages/SystemUI/res/values-sr/strings.xml +++ b/packages/SystemUI/res/values-sr/strings.xml @@ -529,7 +529,10 @@      <string name="communal_widgets_disclaimer_text" msgid="1423545475160506349">"Да бисте отворили апликацију која користи виџет, треба да потврдите да сте то ви. Имајте у виду да свако може да га види, чак и када је таблет закључан. Неки виџети можда нису намењени за закључани екран и можда није безбедно да их тамо додате."</string>      <string name="communal_widgets_disclaimer_button" msgid="4423059765740780753">"Важи"</string>      <string name="glanceable_hub_lockscreen_affordance_label" msgid="1461611028615752141">"Виџети"</string> -    <string name="glanceable_hub_lockscreen_affordance_disabled_text" msgid="511359420883794513">"Да бисте додали виџете на закључани екран као пречицу, уверите се да је то омогућено у подешавањима."</string> +    <!-- no translation found for glanceable_hub_lockscreen_affordance_disabled_text (599170482297578735) --> +    <skip /> +    <!-- no translation found for glanceable_hub_lockscreen_affordance_action_button_label (7636151133344609375) --> +    <skip />      <string name="accessibility_multi_user_switch_switcher" msgid="5330448341251092660">"Замени корисника"</string>      <string name="accessibility_multi_user_list_switcher" msgid="8574105376229857407">"падајући мени"</string>      <string name="guest_exit_guest_dialog_message" msgid="8183450985628495709">"Све апликације и подаци у овој сесији ће бити избрисани."</string> @@ -875,14 +878,10 @@      <string name="system_multitasking_splitscreen_focus_lhs" msgid="3164261844398662518">"Пређите у апликацију слева или изнад док користите подељени екран"</string>      <string name="system_multitasking_replace" msgid="7410071959803642125">"У режиму подељеног екрана: замена једне апликације другом"</string>      <string name="system_multitasking_move_to_next_display" msgid="6169737557526976997">"Премести активан прозор на следећи екран"</string> -    <!-- no translation found for system_desktop_mode_snap_left_window (8636204689945162298) --> -    <skip /> -    <!-- no translation found for system_desktop_mode_snap_right_window (2162560187639411929) --> -    <skip /> -    <!-- no translation found for system_desktop_mode_toggle_maximize_window (4084100093691768239) --> -    <skip /> -    <!-- no translation found for system_desktop_mode_minimize_window (1248714536732927092) --> -    <skip /> +    <string name="system_desktop_mode_snap_left_window" msgid="8636204689945162298">"Померите прозор налево"</string> +    <string name="system_desktop_mode_snap_right_window" msgid="2162560187639411929">"Померите прозор надесно"</string> +    <string name="system_desktop_mode_toggle_maximize_window" msgid="4084100093691768239">"Повећајте прозор"</string> +    <string name="system_desktop_mode_minimize_window" msgid="1248714536732927092">"Смањите прозор"</string>      <string name="keyboard_shortcut_group_input" msgid="6888282716546625610">"Унос"</string>      <string name="input_switch_input_language_next" msgid="3782155659868227855">"Пређи на следећи језик"</string>      <string name="input_switch_input_language_previous" msgid="6043341362202336623">"Пређи на претходни језик"</string> @@ -1419,7 +1418,6 @@      <string name="shortcut_helper_category_system_controls" msgid="3153344561395751020">"Системске контроле"</string>      <string name="shortcut_helper_category_system_apps" msgid="6001757545472556810">"Системске апликације"</string>      <string name="shortcut_helper_category_multitasking" msgid="7413381961404090136">"Обављање више задатака истовремено"</string> -    <string name="shortcutHelper_category_recent_apps" msgid="7918731953612377145">"Недавне апликације"</string>      <string name="shortcutHelper_category_split_screen" msgid="1159669813444812244">"Подељени екран"</string>      <string name="shortcut_helper_category_input" msgid="8674018654124839566">"Унос"</string>      <string name="shortcut_helper_category_app_shortcuts" msgid="8010249408308587117">"Пречице за апликације"</string> @@ -1428,25 +1426,31 @@      <string name="shortcut_helper_title" msgid="8567500639300970049">"Тастерске пречице"</string>      <string name="shortcut_helper_customize_mode_title" msgid="1467657117101096033">"Прилагодите тастерске пречице"</string>      <string name="shortcut_customize_mode_remove_shortcut_dialog_title" msgid="7106420484940737208">"Желите да уклоните пречицу?"</string> +    <!-- no translation found for shortcut_customize_mode_reset_shortcut_dialog_title (8131184731313717780) --> +    <skip />      <string name="shortcut_customize_mode_add_shortcut_description" msgid="6866025005347407696">"Притисните тастер да бисте доделили пречицу"</string>      <string name="shortcut_customize_mode_remove_shortcut_description" msgid="6851287900585057128">"Овим ћете трајно избрисати прилагођену пречицу."</string> +    <!-- no translation found for shortcut_customize_mode_reset_shortcut_description (2081849715634358684) --> +    <skip />      <string name="shortcut_helper_search_placeholder" msgid="5488547526269871819">"Претражите пречице"</string>      <string name="shortcut_helper_no_search_results" msgid="8554756497996692160">"Нема резултата претраге"</string>      <string name="shortcut_helper_content_description_collapse_icon" msgid="8028015738431664954">"Икона за скупљање"</string>      <string name="shortcut_helper_content_description_meta_key" msgid="3989315044342124818">"Икона тастера за радњу или мета тастера"</string>      <string name="shortcut_helper_content_description_plus_icon" msgid="6152683734278299020">"Икона знака плус"</string>      <string name="shortcut_helper_customize_button_text" msgid="3124983502748069338">"Прилагоди"</string> +    <!-- no translation found for shortcut_helper_reset_button_text (2548243844050633472) --> +    <skip />      <string name="shortcut_helper_done_button_text" msgid="7249905942125386191">"Готово"</string>      <string name="shortcut_helper_content_description_expand_icon" msgid="1084435697860417390">"Икона за проширивање"</string>      <string name="shortcut_helper_key_combinations_or_separator" msgid="7082902112102125540">"или"</string> -    <!-- no translation found for shortcut_helper_key_combinations_and_conjunction (6138186504075880224) --> -    <skip /> -    <!-- no translation found for shortcut_helper_key_combinations_forward_slash (1238652537199346970) --> -    <skip /> +    <string name="shortcut_helper_key_combinations_and_conjunction" msgid="6138186504075880224">"плус"</string> +    <string name="shortcut_helper_key_combinations_forward_slash" msgid="1238652537199346970">"коса црта унапред"</string>      <string name="shortcut_helper_content_description_drag_handle" msgid="5092426406009848110">"Маркер за превлачење"</string>      <string name="shortcut_helper_keyboard_settings_buttons_label" msgid="6720967595915985259">"Подешавања тастатуре"</string>      <string name="shortcut_helper_customize_dialog_set_shortcut_button_label" msgid="4754492225010429382">"Подеси пречицу"</string>      <string name="shortcut_helper_customize_dialog_remove_button_label" msgid="6546386970440176552">"Уклони"</string> +    <!-- no translation found for shortcut_helper_customize_dialog_reset_button_label (7645535254306312685) --> +    <skip />      <string name="shortcut_helper_customize_dialog_cancel_button_label" msgid="5595546460431741178">"Откажи"</string>      <string name="shortcut_helper_add_shortcut_dialog_placeholder" msgid="9154297849458741995">"Притисните тастер"</string>      <string name="shortcut_customizer_key_combination_in_use_error_message" msgid="7693234470526626327">"Комбинација тастера се већ користи. Пробајте са другим тастером."</string> diff --git a/packages/SystemUI/res/values-sv/strings.xml b/packages/SystemUI/res/values-sv/strings.xml index fae3c11f1344..2996033d36ad 100644 --- a/packages/SystemUI/res/values-sv/strings.xml +++ b/packages/SystemUI/res/values-sv/strings.xml @@ -529,7 +529,10 @@      <string name="communal_widgets_disclaimer_text" msgid="1423545475160506349">"Du måste verifiera din identitet innan du öppnar en app med en widget. Tänk också på att alla kan se dem, även när surfplattan är låst. Vissa widgetar kanske inte är avsedda för låsskärmen och det kan vara osäkert att lägga till dem här."</string>      <string name="communal_widgets_disclaimer_button" msgid="4423059765740780753">"OK"</string>      <string name="glanceable_hub_lockscreen_affordance_label" msgid="1461611028615752141">"Widgetar"</string> -    <string name="glanceable_hub_lockscreen_affordance_disabled_text" msgid="511359420883794513">"Om du vill lägga till widgetar på låsskärmen som en genväg måste du se till att de är aktiverade i inställningarna."</string> +    <!-- no translation found for glanceable_hub_lockscreen_affordance_disabled_text (599170482297578735) --> +    <skip /> +    <!-- no translation found for glanceable_hub_lockscreen_affordance_action_button_label (7636151133344609375) --> +    <skip />      <string name="accessibility_multi_user_switch_switcher" msgid="5330448341251092660">"Byt användare"</string>      <string name="accessibility_multi_user_list_switcher" msgid="8574105376229857407">"rullgardinsmeny"</string>      <string name="guest_exit_guest_dialog_message" msgid="8183450985628495709">"Alla appar och data i denna session kommer att raderas."</string> @@ -875,14 +878,10 @@      <string name="system_multitasking_splitscreen_focus_lhs" msgid="3164261844398662518">"Byt till appen till vänster eller ovanför när du använder delad skärm"</string>      <string name="system_multitasking_replace" msgid="7410071959803642125">"Med delad skärm: ersätt en app med en annan"</string>      <string name="system_multitasking_move_to_next_display" msgid="6169737557526976997">"Flytta det aktiva fönstret mellan skärmar"</string> -    <!-- no translation found for system_desktop_mode_snap_left_window (8636204689945162298) --> -    <skip /> -    <!-- no translation found for system_desktop_mode_snap_right_window (2162560187639411929) --> -    <skip /> -    <!-- no translation found for system_desktop_mode_toggle_maximize_window (4084100093691768239) --> -    <skip /> -    <!-- no translation found for system_desktop_mode_minimize_window (1248714536732927092) --> -    <skip /> +    <string name="system_desktop_mode_snap_left_window" msgid="8636204689945162298">"Flytta fönstret åt vänster"</string> +    <string name="system_desktop_mode_snap_right_window" msgid="2162560187639411929">"Flytta fönstret åt höger"</string> +    <string name="system_desktop_mode_toggle_maximize_window" msgid="4084100093691768239">"Maximera fönstret"</string> +    <string name="system_desktop_mode_minimize_window" msgid="1248714536732927092">"Minimera fönstret"</string>      <string name="keyboard_shortcut_group_input" msgid="6888282716546625610">"Inmatning"</string>      <string name="input_switch_input_language_next" msgid="3782155659868227855">"Byt till nästa språk"</string>      <string name="input_switch_input_language_previous" msgid="6043341362202336623">"Byt till föregående språk"</string> @@ -1419,7 +1418,6 @@      <string name="shortcut_helper_category_system_controls" msgid="3153344561395751020">"Systeminställningar"</string>      <string name="shortcut_helper_category_system_apps" msgid="6001757545472556810">"Systemappar"</string>      <string name="shortcut_helper_category_multitasking" msgid="7413381961404090136">"Multikörning"</string> -    <string name="shortcutHelper_category_recent_apps" msgid="7918731953612377145">"Senaste apparna"</string>      <string name="shortcutHelper_category_split_screen" msgid="1159669813444812244">"Delad skärm"</string>      <string name="shortcut_helper_category_input" msgid="8674018654124839566">"Inmatning"</string>      <string name="shortcut_helper_category_app_shortcuts" msgid="8010249408308587117">"Genvägar till appar"</string> @@ -1428,25 +1426,31 @@      <string name="shortcut_helper_title" msgid="8567500639300970049">"Kortkommandon"</string>      <string name="shortcut_helper_customize_mode_title" msgid="1467657117101096033">"Anpassa kortkommandon"</string>      <string name="shortcut_customize_mode_remove_shortcut_dialog_title" msgid="7106420484940737208">"Vill du ta bort kortkommandot?"</string> +    <!-- no translation found for shortcut_customize_mode_reset_shortcut_dialog_title (8131184731313717780) --> +    <skip />      <string name="shortcut_customize_mode_add_shortcut_description" msgid="6866025005347407696">"Tryck på tangenten för att tilldela ett kortkommando"</string>      <string name="shortcut_customize_mode_remove_shortcut_description" msgid="6851287900585057128">"Det anpassade kortkommandot raderas permanent."</string> +    <!-- no translation found for shortcut_customize_mode_reset_shortcut_description (2081849715634358684) --> +    <skip />      <string name="shortcut_helper_search_placeholder" msgid="5488547526269871819">"Sökgenvägar"</string>      <string name="shortcut_helper_no_search_results" msgid="8554756497996692160">"Inga sökresultat"</string>      <string name="shortcut_helper_content_description_collapse_icon" msgid="8028015738431664954">"Ikonen Komprimera"</string>      <string name="shortcut_helper_content_description_meta_key" msgid="3989315044342124818">"Ikon för åtgärdstangent"</string>      <string name="shortcut_helper_content_description_plus_icon" msgid="6152683734278299020">"Plusikon"</string>      <string name="shortcut_helper_customize_button_text" msgid="3124983502748069338">"Anpassa"</string> +    <!-- no translation found for shortcut_helper_reset_button_text (2548243844050633472) --> +    <skip />      <string name="shortcut_helper_done_button_text" msgid="7249905942125386191">"Klar"</string>      <string name="shortcut_helper_content_description_expand_icon" msgid="1084435697860417390">"Ikonen Utöka"</string>      <string name="shortcut_helper_key_combinations_or_separator" msgid="7082902112102125540">"eller"</string> -    <!-- no translation found for shortcut_helper_key_combinations_and_conjunction (6138186504075880224) --> -    <skip /> -    <!-- no translation found for shortcut_helper_key_combinations_forward_slash (1238652537199346970) --> -    <skip /> +    <string name="shortcut_helper_key_combinations_and_conjunction" msgid="6138186504075880224">"plus"</string> +    <string name="shortcut_helper_key_combinations_forward_slash" msgid="1238652537199346970">"snedstreck"</string>      <string name="shortcut_helper_content_description_drag_handle" msgid="5092426406009848110">"Handtag"</string>      <string name="shortcut_helper_keyboard_settings_buttons_label" msgid="6720967595915985259">"Tangentbordsinställningar"</string>      <string name="shortcut_helper_customize_dialog_set_shortcut_button_label" msgid="4754492225010429382">"Ange kortkommando"</string>      <string name="shortcut_helper_customize_dialog_remove_button_label" msgid="6546386970440176552">"Ta bort"</string> +    <!-- no translation found for shortcut_helper_customize_dialog_reset_button_label (7645535254306312685) --> +    <skip />      <string name="shortcut_helper_customize_dialog_cancel_button_label" msgid="5595546460431741178">"Avbryt"</string>      <string name="shortcut_helper_add_shortcut_dialog_placeholder" msgid="9154297849458741995">"Tryck på tangenten"</string>      <string name="shortcut_customizer_key_combination_in_use_error_message" msgid="7693234470526626327">"Tangentkombinationen används redan. Testa en annan tangent."</string> diff --git a/packages/SystemUI/res/values-sw/strings.xml b/packages/SystemUI/res/values-sw/strings.xml index d8581e8aa519..7084bbf4d6a6 100644 --- a/packages/SystemUI/res/values-sw/strings.xml +++ b/packages/SystemUI/res/values-sw/strings.xml @@ -529,7 +529,10 @@      <string name="communal_widgets_disclaimer_text" msgid="1423545475160506349">"Utahitaji kuthibitisha kuwa ni wewe ili ufungue programu ukitumia wijeti. Pia, kumbuka kuwa mtu yeyote anaweza kuziona, hata kishikwambi chako kikiwa kimefungwa. Huenda baadhi ya wijeti hazikukusudiwa kutumika kwenye skrini yako iliyofungwa na huenda si salama kuziweka hapa."</string>      <string name="communal_widgets_disclaimer_button" msgid="4423059765740780753">"Nimeelewa"</string>      <string name="glanceable_hub_lockscreen_affordance_label" msgid="1461611028615752141">"Wijeti"</string> -    <string name="glanceable_hub_lockscreen_affordance_disabled_text" msgid="511359420883794513">"Ili kuweka kipengele cha Wijeti kwenye skrini iliyofungwa kiwe njia ya mkato, hakikisha kimewashwa katika mipangilio."</string> +    <!-- no translation found for glanceable_hub_lockscreen_affordance_disabled_text (599170482297578735) --> +    <skip /> +    <!-- no translation found for glanceable_hub_lockscreen_affordance_action_button_label (7636151133344609375) --> +    <skip />      <string name="accessibility_multi_user_switch_switcher" msgid="5330448341251092660">"Badili mtumiaji"</string>      <string name="accessibility_multi_user_list_switcher" msgid="8574105376229857407">"menyu ya kuvuta chini"</string>      <string name="guest_exit_guest_dialog_message" msgid="8183450985628495709">"Data na programu zote katika kipindi hiki zitafutwa."</string> @@ -875,14 +878,10 @@      <string name="system_multitasking_splitscreen_focus_lhs" msgid="3164261844398662518">"Badilisha uende kwenye programu iliyo kushoto au juu unapotumia hali ya kugawa skrini"</string>      <string name="system_multitasking_replace" msgid="7410071959803642125">"Ukigawanya skrini: badilisha kutoka programu moja hadi nyingine"</string>      <string name="system_multitasking_move_to_next_display" msgid="6169737557526976997">"Hamisha dirisha linalotumika kati ya skrini moja na nyingine"</string> -    <!-- no translation found for system_desktop_mode_snap_left_window (8636204689945162298) --> -    <skip /> -    <!-- no translation found for system_desktop_mode_snap_right_window (2162560187639411929) --> -    <skip /> -    <!-- no translation found for system_desktop_mode_toggle_maximize_window (4084100093691768239) --> -    <skip /> -    <!-- no translation found for system_desktop_mode_minimize_window (1248714536732927092) --> -    <skip /> +    <string name="system_desktop_mode_snap_left_window" msgid="8636204689945162298">"Sogeza dirisha kushoto"</string> +    <string name="system_desktop_mode_snap_right_window" msgid="2162560187639411929">"Sogeza dirisha kulia"</string> +    <string name="system_desktop_mode_toggle_maximize_window" msgid="4084100093691768239">"Panua dirisha"</string> +    <string name="system_desktop_mode_minimize_window" msgid="1248714536732927092">"Punguza dirisha"</string>      <string name="keyboard_shortcut_group_input" msgid="6888282716546625610">"Vifaa vya kuingiza data"</string>      <string name="input_switch_input_language_next" msgid="3782155659868227855">"Badilisha utumie lugha inayofuata"</string>      <string name="input_switch_input_language_previous" msgid="6043341362202336623">"Badilisha utumie lugha iliyotangulia"</string> @@ -1419,7 +1418,6 @@      <string name="shortcut_helper_category_system_controls" msgid="3153344561395751020">"Vidhibiti vya mfumo"</string>      <string name="shortcut_helper_category_system_apps" msgid="6001757545472556810">"Programu za mfumo"</string>      <string name="shortcut_helper_category_multitasking" msgid="7413381961404090136">"Majukumu mengi"</string> -    <string name="shortcutHelper_category_recent_apps" msgid="7918731953612377145">"Programu za hivi majuzi"</string>      <string name="shortcutHelper_category_split_screen" msgid="1159669813444812244">"Gawa skrini"</string>      <string name="shortcut_helper_category_input" msgid="8674018654124839566">"Kifaa cha kuingiza data"</string>      <string name="shortcut_helper_category_app_shortcuts" msgid="8010249408308587117">"Njia za mikato za programu"</string> @@ -1428,25 +1426,31 @@      <string name="shortcut_helper_title" msgid="8567500639300970049">"Mikato ya kibodi"</string>      <string name="shortcut_helper_customize_mode_title" msgid="1467657117101096033">"Weka mapendeleo ya mikato ya kibodi"</string>      <string name="shortcut_customize_mode_remove_shortcut_dialog_title" msgid="7106420484940737208">"Ungependa kuondoa njia ya mkato?"</string> +    <!-- no translation found for shortcut_customize_mode_reset_shortcut_dialog_title (8131184731313717780) --> +    <skip />      <string name="shortcut_customize_mode_add_shortcut_description" msgid="6866025005347407696">"Bonyeza kitufe ukabidhi njia ya mkato"</string>      <string name="shortcut_customize_mode_remove_shortcut_description" msgid="6851287900585057128">"Hatua hii itaondoa kabisa njia yako maalum ya mkato."</string> +    <!-- no translation found for shortcut_customize_mode_reset_shortcut_description (2081849715634358684) --> +    <skip />      <string name="shortcut_helper_search_placeholder" msgid="5488547526269871819">"Njia mkato za kutafutia"</string>      <string name="shortcut_helper_no_search_results" msgid="8554756497996692160">"Hamna matokeo ya utafutaji"</string>      <string name="shortcut_helper_content_description_collapse_icon" msgid="8028015738431664954">"Kunja aikoni"</string>      <string name="shortcut_helper_content_description_meta_key" msgid="3989315044342124818">"Aikoni ya kitufe cha Vitendo au cha Meta"</string>      <string name="shortcut_helper_content_description_plus_icon" msgid="6152683734278299020">"Aikoni ya alama ya kujumlisha"</string>      <string name="shortcut_helper_customize_button_text" msgid="3124983502748069338">"Weka mapendeleo"</string> +    <!-- no translation found for shortcut_helper_reset_button_text (2548243844050633472) --> +    <skip />      <string name="shortcut_helper_done_button_text" msgid="7249905942125386191">"Nimemaliza"</string>      <string name="shortcut_helper_content_description_expand_icon" msgid="1084435697860417390">"Panua aikoni"</string>      <string name="shortcut_helper_key_combinations_or_separator" msgid="7082902112102125540">"au"</string> -    <!-- no translation found for shortcut_helper_key_combinations_and_conjunction (6138186504075880224) --> -    <skip /> -    <!-- no translation found for shortcut_helper_key_combinations_forward_slash (1238652537199346970) --> -    <skip /> +    <string name="shortcut_helper_key_combinations_and_conjunction" msgid="6138186504075880224">"na"</string> +    <string name="shortcut_helper_key_combinations_forward_slash" msgid="1238652537199346970">"mkwaju wa mbele"</string>      <string name="shortcut_helper_content_description_drag_handle" msgid="5092426406009848110">"Aikoni ya buruta"</string>      <string name="shortcut_helper_keyboard_settings_buttons_label" msgid="6720967595915985259">"Mipangilio ya Kibodi"</string>      <string name="shortcut_helper_customize_dialog_set_shortcut_button_label" msgid="4754492225010429382">"Weka njia ya mkato"</string>      <string name="shortcut_helper_customize_dialog_remove_button_label" msgid="6546386970440176552">"Ondoa"</string> +    <!-- no translation found for shortcut_helper_customize_dialog_reset_button_label (7645535254306312685) --> +    <skip />      <string name="shortcut_helper_customize_dialog_cancel_button_label" msgid="5595546460431741178">"Acha"</string>      <string name="shortcut_helper_add_shortcut_dialog_placeholder" msgid="9154297849458741995">"Bonyeza kitufe"</string>      <string name="shortcut_customizer_key_combination_in_use_error_message" msgid="7693234470526626327">"Tayari unatumia mchanganyiko wa vitufe. Jaribu kitufe kingine."</string> diff --git a/packages/SystemUI/res/values-ta/strings.xml b/packages/SystemUI/res/values-ta/strings.xml index f2145ff5d1aa..959e2e6d07ca 100644 --- a/packages/SystemUI/res/values-ta/strings.xml +++ b/packages/SystemUI/res/values-ta/strings.xml @@ -117,7 +117,7 @@      <string name="screenrecord_permission_dialog_warning_single_app" msgid="3738199712880063924">"ஓர் ஆப்ஸை ரெக்கார்டு செய்யும்போது அதில் காட்டப்படும் அல்லது பிளே செய்யப்படும் அனைத்தும் ரெக்கார்டு செய்யப்படும். எனவே கடவுச்சொற்கள், பேமெண்ட் விவரங்கள், மெசேஜ்கள், படங்கள், ஆடியோ, வீடியோ போன்றவை குறித்துக் கவனத்துடன் இருங்கள்."</string>      <string name="screenrecord_permission_dialog_continue_entire_screen" msgid="5557974446773486600">"திரையை ரெக்கார்டு செய்"</string>      <string name="screenrecord_app_selector_title" msgid="3854492366333954736">"ரெக்கார்டு செய்ய ஆப்ஸைத் தேர்வுசெய்தல்"</string> -    <string name="screenrecord_audio_label" msgid="6183558856175159629">"ஆடியோவை ரெக்கார்டு செய்"</string> +    <string name="screenrecord_audio_label" msgid="6183558856175159629">"ஆடியோவை ரெக்கார்டு செய்தல்"</string>      <string name="screenrecord_device_audio_label" msgid="9016927171280567791">"சாதன ஆடியோ"</string>      <string name="screenrecord_device_audio_description" msgid="4922694220572186193">"இசை, அழைப்புகள், ரிங்டோன்கள் போன்ற உங்கள் சாதனத்திலிருந்து வரும் ஒலி"</string>      <string name="screenrecord_mic_label" msgid="2111264835791332350">"மைக்ரோஃபோன்"</string> @@ -529,7 +529,10 @@      <string name="communal_widgets_disclaimer_text" msgid="1423545475160506349">"விட்ஜெட்டைப் பயன்படுத்தி ஆப்ஸைத் திறக்க, அது நீங்கள்தான் என்பதை உறுதிசெய்ய வேண்டும். அத்துடன், உங்கள் டேப்லெட் பூட்டப்பட்டிருந்தாலும்கூட அவற்றை யார் வேண்டுமானாலும் பார்க்கலாம் என்பதை நினைவில்கொள்ளுங்கள். சில விட்ஜெட்கள் உங்கள் பூட்டுத் திரைக்காக உருவாக்கப்பட்டவை அல்ல என்பதையும் அவற்றை இங்கே சேர்ப்பது பாதுகாப்பற்றதாக இருக்கக்கூடும் என்பதையும் நினைவில்கொள்ளுங்கள்."</string>      <string name="communal_widgets_disclaimer_button" msgid="4423059765740780753">"சரி"</string>      <string name="glanceable_hub_lockscreen_affordance_label" msgid="1461611028615752141">"விட்ஜெட்கள்"</string> -    <string name="glanceable_hub_lockscreen_affordance_disabled_text" msgid="511359420883794513">"\'பூட்டுத் திரையில் விட்ஜெட்கள்\' அம்சத்தை ஷார்ட்கட்டாகச் சேர்க்க, அமைப்புகளில் அது இயக்கப்பட்டுள்ளதை உறுதிப்படுத்தவும்."</string> +    <!-- no translation found for glanceable_hub_lockscreen_affordance_disabled_text (599170482297578735) --> +    <skip /> +    <!-- no translation found for glanceable_hub_lockscreen_affordance_action_button_label (7636151133344609375) --> +    <skip />      <string name="accessibility_multi_user_switch_switcher" msgid="5330448341251092660">"பயனரை மாற்று"</string>      <string name="accessibility_multi_user_list_switcher" msgid="8574105376229857407">"கீழ் இழுக்கும் மெனு"</string>      <string name="guest_exit_guest_dialog_message" msgid="8183450985628495709">"இந்த அமர்வின் எல்லா ஆப்ஸும் தரவும் நீக்கப்படும்."</string> @@ -875,14 +878,10 @@      <string name="system_multitasking_splitscreen_focus_lhs" msgid="3164261844398662518">"திரைப் பிரிப்பைப் பயன்படுத்தும்போது இடது/மேலே உள்ள ஆப்ஸுக்கு மாறுதல்"</string>      <string name="system_multitasking_replace" msgid="7410071959803642125">"திரைப் பிரிப்பின்போது: ஓர் ஆப்ஸுக்குப் பதிலாக மற்றொன்றை மாற்றுதல்"</string>      <string name="system_multitasking_move_to_next_display" msgid="6169737557526976997">"காட்சிகளுக்கு இடையே செயலில் உள்ள சாளரத்தை நகர்த்துதல்"</string> -    <!-- no translation found for system_desktop_mode_snap_left_window (8636204689945162298) --> -    <skip /> -    <!-- no translation found for system_desktop_mode_snap_right_window (2162560187639411929) --> -    <skip /> -    <!-- no translation found for system_desktop_mode_toggle_maximize_window (4084100093691768239) --> -    <skip /> -    <!-- no translation found for system_desktop_mode_minimize_window (1248714536732927092) --> -    <skip /> +    <string name="system_desktop_mode_snap_left_window" msgid="8636204689945162298">"சாளரத்தை இடதுபுறமாக நகர்த்துதல்"</string> +    <string name="system_desktop_mode_snap_right_window" msgid="2162560187639411929">"சாளரத்தை வலதுபுறமாக நகர்த்துதல்"</string> +    <string name="system_desktop_mode_toggle_maximize_window" msgid="4084100093691768239">"சாளரத்தைப் பெரிதாக்குதல்"</string> +    <string name="system_desktop_mode_minimize_window" msgid="1248714536732927092">"சாளரத்தைச் சிறிதாக்குதல்"</string>      <string name="keyboard_shortcut_group_input" msgid="6888282716546625610">"உள்ளீடு"</string>      <string name="input_switch_input_language_next" msgid="3782155659868227855">"அடுத்த மொழிக்கு மாற்றுதல்"</string>      <string name="input_switch_input_language_previous" msgid="6043341362202336623">"முந்தைய மொழிக்கு மாற்றுதல்"</string> @@ -1419,7 +1418,6 @@      <string name="shortcut_helper_category_system_controls" msgid="3153344561395751020">"சிஸ்டம் கட்டுப்பாடுகள்"</string>      <string name="shortcut_helper_category_system_apps" msgid="6001757545472556810">"சிஸ்டம் ஆப்ஸ்"</string>      <string name="shortcut_helper_category_multitasking" msgid="7413381961404090136">"பல வேலைகளைச் செய்தல்"</string> -    <string name="shortcutHelper_category_recent_apps" msgid="7918731953612377145">"சமீபத்திய ஆப்ஸ்"</string>      <string name="shortcutHelper_category_split_screen" msgid="1159669813444812244">"திரைப் பிரிப்பு"</string>      <string name="shortcut_helper_category_input" msgid="8674018654124839566">"உள்ளீடு"</string>      <string name="shortcut_helper_category_app_shortcuts" msgid="8010249408308587117">"ஆப்ஸ் ஷார்ட்கட்கள்"</string> @@ -1428,25 +1426,31 @@      <string name="shortcut_helper_title" msgid="8567500639300970049">"கீபோர்டு ஷார்ட்கட்கள்"</string>      <string name="shortcut_helper_customize_mode_title" msgid="1467657117101096033">"கீபோர்டு ஷார்ட்கட்களைப் பிரத்தியேகப்படுத்துதல்"</string>      <string name="shortcut_customize_mode_remove_shortcut_dialog_title" msgid="7106420484940737208">"ஷார்ட்கட்டை அகற்றவா?"</string> +    <!-- no translation found for shortcut_customize_mode_reset_shortcut_dialog_title (8131184731313717780) --> +    <skip />      <string name="shortcut_customize_mode_add_shortcut_description" msgid="6866025005347407696">"ஷார்ட்கட்டை அமைக்க பட்டனை அழுத்துங்கள்"</string>      <string name="shortcut_customize_mode_remove_shortcut_description" msgid="6851287900585057128">"இது உங்கள் பிரத்தியேக ஷார்ட்கட்டை நிரந்தரமாக நீக்கும்."</string> +    <!-- no translation found for shortcut_customize_mode_reset_shortcut_description (2081849715634358684) --> +    <skip />      <string name="shortcut_helper_search_placeholder" msgid="5488547526269871819">"ஷார்ட்கட்களைத் தேடுக"</string>      <string name="shortcut_helper_no_search_results" msgid="8554756497996692160">"தேடல் முடிவுகள் இல்லை"</string>      <string name="shortcut_helper_content_description_collapse_icon" msgid="8028015738431664954">"சுருக்குவதற்கான ஐகான்"</string>      <string name="shortcut_helper_content_description_meta_key" msgid="3989315044342124818">"ஆக்ஷன்/மெட்டா பட்டன் ஐகான்"</string>      <string name="shortcut_helper_content_description_plus_icon" msgid="6152683734278299020">"பிளஸ் ஐகான்"</string>      <string name="shortcut_helper_customize_button_text" msgid="3124983502748069338">"பிரத்தியேகப்படுத்தும்"</string> +    <!-- no translation found for shortcut_helper_reset_button_text (2548243844050633472) --> +    <skip />      <string name="shortcut_helper_done_button_text" msgid="7249905942125386191">"முடிந்தது"</string>      <string name="shortcut_helper_content_description_expand_icon" msgid="1084435697860417390">"விரிவாக்குவதற்கான ஐகான்"</string>      <string name="shortcut_helper_key_combinations_or_separator" msgid="7082902112102125540">"அல்லது"</string> -    <!-- no translation found for shortcut_helper_key_combinations_and_conjunction (6138186504075880224) --> -    <skip /> -    <!-- no translation found for shortcut_helper_key_combinations_forward_slash (1238652537199346970) --> -    <skip /> +    <string name="shortcut_helper_key_combinations_and_conjunction" msgid="6138186504075880224">"மற்றும்"</string> +    <string name="shortcut_helper_key_combinations_forward_slash" msgid="1238652537199346970">"ஃபார்வர்டு ஸ்லாஷ்"</string>      <string name="shortcut_helper_content_description_drag_handle" msgid="5092426406009848110">"இழுப்பதற்கான ஹேண்டில்"</string>      <string name="shortcut_helper_keyboard_settings_buttons_label" msgid="6720967595915985259">"கீபோர்டு அமைப்புகள்"</string>      <string name="shortcut_helper_customize_dialog_set_shortcut_button_label" msgid="4754492225010429382">"ஷார்ட்கட்டை அமையுங்கள்"</string>      <string name="shortcut_helper_customize_dialog_remove_button_label" msgid="6546386970440176552">"அகற்று"</string> +    <!-- no translation found for shortcut_helper_customize_dialog_reset_button_label (7645535254306312685) --> +    <skip />      <string name="shortcut_helper_customize_dialog_cancel_button_label" msgid="5595546460431741178">"ரத்துசெய்"</string>      <string name="shortcut_helper_add_shortcut_dialog_placeholder" msgid="9154297849458741995">"பட்டனை அழுத்துங்கள்"</string>      <string name="shortcut_customizer_key_combination_in_use_error_message" msgid="7693234470526626327">"பட்டன் சேர்க்கை ஏற்கெனவே பயன்பாட்டில் உள்ளது. வேறொரு பட்டனைப் பயன்படுத்திப் பார்க்கவும்."</string> diff --git a/packages/SystemUI/res/values-te/strings.xml b/packages/SystemUI/res/values-te/strings.xml index 2c7279657ea1..a66821b05386 100644 --- a/packages/SystemUI/res/values-te/strings.xml +++ b/packages/SystemUI/res/values-te/strings.xml @@ -529,7 +529,10 @@      <string name="communal_widgets_disclaimer_text" msgid="1423545475160506349">"విడ్జెట్ను ఉపయోగించి యాప్ను తెరవడానికి, ఇది మీరేనని వెరిఫై చేయాల్సి ఉంటుంది. అలాగే, మీ టాబ్లెట్ లాక్ చేసి ఉన్నప్పటికీ, ఎవరైనా వాటిని చూడగలరని గుర్తుంచుకోండి. కొన్ని విడ్జెట్లు మీ లాక్ స్క్రీన్కు తగినవి కాకపోవచ్చు, వాటిని ఇక్కడ జోడించడం సురక్షితం కాకపోవచ్చు."</string>      <string name="communal_widgets_disclaimer_button" msgid="4423059765740780753">"అర్థమైంది"</string>      <string name="glanceable_hub_lockscreen_affordance_label" msgid="1461611028615752141">"విడ్జెట్లు"</string> -    <string name="glanceable_hub_lockscreen_affordance_disabled_text" msgid="511359420883794513">"లాక్ స్క్రీన్లో విడ్జెట్లను షార్ట్కట్గా జోడించడానికి, ఇది సెట్టింగ్లలో ఎనేబుల్ చేసి ఉందని నిర్ధారించుకోండి."</string> +    <!-- no translation found for glanceable_hub_lockscreen_affordance_disabled_text (599170482297578735) --> +    <skip /> +    <!-- no translation found for glanceable_hub_lockscreen_affordance_action_button_label (7636151133344609375) --> +    <skip />      <string name="accessibility_multi_user_switch_switcher" msgid="5330448341251092660">"వినియోగదారుని మార్చు"</string>      <string name="accessibility_multi_user_list_switcher" msgid="8574105376229857407">"పుల్డౌన్ మెనూ"</string>      <string name="guest_exit_guest_dialog_message" msgid="8183450985628495709">"ఈ సెషన్లోని అన్ని యాప్లు మరియు డేటా తొలగించబడతాయి."</string> @@ -875,14 +878,10 @@      <string name="system_multitasking_splitscreen_focus_lhs" msgid="3164261844398662518">"స్ప్లిట్ స్క్రీన్ ఉపయోగిస్తున్నప్పుడు ఎడమ లేదా పైన యాప్నకు మారండి"</string>      <string name="system_multitasking_replace" msgid="7410071959803642125">"స్ప్లిట్ స్క్రీన్ సమయంలో: ఒక దాన్నుండి మరో దానికి యాప్ రీప్లేస్ చేయండి"</string>      <string name="system_multitasking_move_to_next_display" msgid="6169737557526976997">"యాక్టివ్ విండోను డిస్ప్లేల మధ్య తరలించండి"</string> -    <!-- no translation found for system_desktop_mode_snap_left_window (8636204689945162298) --> -    <skip /> -    <!-- no translation found for system_desktop_mode_snap_right_window (2162560187639411929) --> -    <skip /> -    <!-- no translation found for system_desktop_mode_toggle_maximize_window (4084100093691768239) --> -    <skip /> -    <!-- no translation found for system_desktop_mode_minimize_window (1248714536732927092) --> -    <skip /> +    <string name="system_desktop_mode_snap_left_window" msgid="8636204689945162298">"విండోను ఎడమ వైపునకు తరలించండి"</string> +    <string name="system_desktop_mode_snap_right_window" msgid="2162560187639411929">"విండోను కుడి వైపునకు తరలించండి"</string> +    <string name="system_desktop_mode_toggle_maximize_window" msgid="4084100093691768239">"విండోను విస్తరించండి"</string> +    <string name="system_desktop_mode_minimize_window" msgid="1248714536732927092">"విండోను కుదించండి"</string>      <string name="keyboard_shortcut_group_input" msgid="6888282716546625610">"ఇన్పుట్"</string>      <string name="input_switch_input_language_next" msgid="3782155659868227855">"తర్వాత భాషకు స్విచ్ అవ్వండి"</string>      <string name="input_switch_input_language_previous" msgid="6043341362202336623">"మునుపటి భాషకు స్విచ్ అవ్వండి"</string> @@ -1419,7 +1418,6 @@      <string name="shortcut_helper_category_system_controls" msgid="3153344561395751020">"సిస్టమ్ కంట్రోల్స్"</string>      <string name="shortcut_helper_category_system_apps" msgid="6001757545472556810">"సిస్టమ్ యాప్లు"</string>      <string name="shortcut_helper_category_multitasking" msgid="7413381961404090136">"మల్టీ-టాస్కింగ్"</string> -    <string name="shortcutHelper_category_recent_apps" msgid="7918731953612377145">"ఇటీవలి యాప్లు"</string>      <string name="shortcutHelper_category_split_screen" msgid="1159669813444812244">"స్ప్లిట్ స్క్రీన్"</string>      <string name="shortcut_helper_category_input" msgid="8674018654124839566">"ఇన్పుట్"</string>      <string name="shortcut_helper_category_app_shortcuts" msgid="8010249408308587117">"యాప్ షార్ట్కట్లు"</string> @@ -1428,25 +1426,31 @@      <string name="shortcut_helper_title" msgid="8567500639300970049">"కీబోర్డ్ షార్ట్కట్లు"</string>      <string name="shortcut_helper_customize_mode_title" msgid="1467657117101096033">"కీబోర్డ్ షార్ట్కట్లను అనుకూలంగా మార్చండి"</string>      <string name="shortcut_customize_mode_remove_shortcut_dialog_title" msgid="7106420484940737208">"షార్ట్కట్ను తీసివేయాలా?"</string> +    <!-- no translation found for shortcut_customize_mode_reset_shortcut_dialog_title (8131184731313717780) --> +    <skip />      <string name="shortcut_customize_mode_add_shortcut_description" msgid="6866025005347407696">"షార్ట్కట్ను కేటాయించడానికి కీని నొక్కండి"</string>      <string name="shortcut_customize_mode_remove_shortcut_description" msgid="6851287900585057128">"ఇది మీ అనుకూల షార్ట్కట్ను శాశ్వతంగా తొలగిస్తుంది."</string> +    <!-- no translation found for shortcut_customize_mode_reset_shortcut_description (2081849715634358684) --> +    <skip />      <string name="shortcut_helper_search_placeholder" msgid="5488547526269871819">"షార్ట్కట్లను వెతకండి"</string>      <string name="shortcut_helper_no_search_results" msgid="8554756497996692160">"సెర్చ్ ఫలితాలు ఏవీ లేవు"</string>      <string name="shortcut_helper_content_description_collapse_icon" msgid="8028015738431664954">"కుదించండి చిహ్నం"</string>      <string name="shortcut_helper_content_description_meta_key" msgid="3989315044342124818">"యాక్షన్ లేదా మెటా కీ చిహ్నం"</string>      <string name="shortcut_helper_content_description_plus_icon" msgid="6152683734278299020">"ప్లస్ చిహ్నం"</string>      <string name="shortcut_helper_customize_button_text" msgid="3124983502748069338">"అనుకూలంగా మార్చండి"</string> +    <!-- no translation found for shortcut_helper_reset_button_text (2548243844050633472) --> +    <skip />      <string name="shortcut_helper_done_button_text" msgid="7249905942125386191">"పూర్తయింది"</string>      <string name="shortcut_helper_content_description_expand_icon" msgid="1084435697860417390">"విస్తరించండి చిహ్నం"</string>      <string name="shortcut_helper_key_combinations_or_separator" msgid="7082902112102125540">"లేదా"</string> -    <!-- no translation found for shortcut_helper_key_combinations_and_conjunction (6138186504075880224) --> -    <skip /> -    <!-- no translation found for shortcut_helper_key_combinations_forward_slash (1238652537199346970) --> -    <skip /> +    <string name="shortcut_helper_key_combinations_and_conjunction" msgid="6138186504075880224">"ప్లస్ గుర్తు"</string> +    <string name="shortcut_helper_key_combinations_forward_slash" msgid="1238652537199346970">"ఫార్వర్డ్ స్లాష్"</string>      <string name="shortcut_helper_content_description_drag_handle" msgid="5092426406009848110">"లాగే హ్యాండిల్"</string>      <string name="shortcut_helper_keyboard_settings_buttons_label" msgid="6720967595915985259">"కీబోర్డ్ సెట్టింగ్లు"</string>      <string name="shortcut_helper_customize_dialog_set_shortcut_button_label" msgid="4754492225010429382">"షార్ట్కట్ను సెట్ చేయండి"</string>      <string name="shortcut_helper_customize_dialog_remove_button_label" msgid="6546386970440176552">"తీసివేయండి"</string> +    <!-- no translation found for shortcut_helper_customize_dialog_reset_button_label (7645535254306312685) --> +    <skip />      <string name="shortcut_helper_customize_dialog_cancel_button_label" msgid="5595546460431741178">"రద్దు చేయండి"</string>      <string name="shortcut_helper_add_shortcut_dialog_placeholder" msgid="9154297849458741995">"కీని నొక్కండి"</string>      <string name="shortcut_customizer_key_combination_in_use_error_message" msgid="7693234470526626327">"కీ కాంబినేషన్ ఇప్పటికే వినియోగంలో ఉంది. వేరొక కీని ట్రై చేయండి."</string> diff --git a/packages/SystemUI/res/values-th/strings.xml b/packages/SystemUI/res/values-th/strings.xml index 6ca696826be8..5ead29f4d155 100644 --- a/packages/SystemUI/res/values-th/strings.xml +++ b/packages/SystemUI/res/values-th/strings.xml @@ -529,7 +529,10 @@      <string name="communal_widgets_disclaimer_text" msgid="1423545475160506349">"หากต้องการเปิดแอปโดยใช้วิดเจ็ต คุณจะต้องยืนยันตัวตนของคุณ นอกจากนี้ โปรดทราบว่าผู้อื่นจะดูวิดเจ็ตเหล่านี้ได้แม้ว่าแท็บเล็ตจะล็อกอยู่ก็ตาม วิดเจ็ตบางอย่างอาจไม่ได้มีไว้สำหรับหน้าจอล็อกของคุณ และอาจไม่ปลอดภัยที่จะเพิ่มที่นี่"</string>      <string name="communal_widgets_disclaimer_button" msgid="4423059765740780753">"รับทราบ"</string>      <string name="glanceable_hub_lockscreen_affordance_label" msgid="1461611028615752141">"วิดเจ็ต"</string> -    <string name="glanceable_hub_lockscreen_affordance_disabled_text" msgid="511359420883794513">"หากต้องการเพิ่มวิดเจ็ตในหน้าจอล็อกเป็นทางลัด โปรดตรวจสอบว่าได้เปิดใช้วิดเจ็ตแล้วในการตั้งค่า"</string> +    <!-- no translation found for glanceable_hub_lockscreen_affordance_disabled_text (599170482297578735) --> +    <skip /> +    <!-- no translation found for glanceable_hub_lockscreen_affordance_action_button_label (7636151133344609375) --> +    <skip />      <string name="accessibility_multi_user_switch_switcher" msgid="5330448341251092660">"สลับผู้ใช้"</string>      <string name="accessibility_multi_user_list_switcher" msgid="8574105376229857407">"เมนูแบบเลื่อนลง"</string>      <string name="guest_exit_guest_dialog_message" msgid="8183450985628495709">"ระบบจะลบแอปและข้อมูลทั้งหมดในเซสชันนี้"</string> @@ -875,14 +878,10 @@      <string name="system_multitasking_splitscreen_focus_lhs" msgid="3164261844398662518">"เปลี่ยนไปใช้แอปทางด้านซ้ายหรือด้านบนขณะใช้โหมดแยกหน้าจอ"</string>      <string name="system_multitasking_replace" msgid="7410071959803642125">"ระหว่างใช้โหมดแยกหน้าจอ: เปลี่ยนแอปหนึ่งเป็นอีกแอปหนึ่ง"</string>      <string name="system_multitasking_move_to_next_display" msgid="6169737557526976997">"ย้ายหน้าต่างที่ใช้งานไปยังหน้าจอต่างๆ"</string> -    <!-- no translation found for system_desktop_mode_snap_left_window (8636204689945162298) --> -    <skip /> -    <!-- no translation found for system_desktop_mode_snap_right_window (2162560187639411929) --> -    <skip /> -    <!-- no translation found for system_desktop_mode_toggle_maximize_window (4084100093691768239) --> -    <skip /> -    <!-- no translation found for system_desktop_mode_minimize_window (1248714536732927092) --> -    <skip /> +    <string name="system_desktop_mode_snap_left_window" msgid="8636204689945162298">"ย้ายหน้าต่างไปทางซ้าย"</string> +    <string name="system_desktop_mode_snap_right_window" msgid="2162560187639411929">"ย้ายหน้าต่างไปทางขวา"</string> +    <string name="system_desktop_mode_toggle_maximize_window" msgid="4084100093691768239">"ขยายหน้าต่างเต็มหน้าจอ"</string> +    <string name="system_desktop_mode_minimize_window" msgid="1248714536732927092">"ย่อหน้าต่าง"</string>      <string name="keyboard_shortcut_group_input" msgid="6888282716546625610">"อินพุต"</string>      <string name="input_switch_input_language_next" msgid="3782155659868227855">"เปลี่ยนเป็นภาษาถัดไป"</string>      <string name="input_switch_input_language_previous" msgid="6043341362202336623">"เปลี่ยนเป็นภาษาก่อนหน้า"</string> @@ -1419,7 +1418,6 @@      <string name="shortcut_helper_category_system_controls" msgid="3153344561395751020">"การควบคุมระบบ"</string>      <string name="shortcut_helper_category_system_apps" msgid="6001757545472556810">"แอประบบ"</string>      <string name="shortcut_helper_category_multitasking" msgid="7413381961404090136">"การทํางานหลายอย่างพร้อมกัน"</string> -    <string name="shortcutHelper_category_recent_apps" msgid="7918731953612377145">"แอปล่าสุด"</string>      <string name="shortcutHelper_category_split_screen" msgid="1159669813444812244">"แยกหน้าจอ"</string>      <string name="shortcut_helper_category_input" msgid="8674018654124839566">"อินพุต"</string>      <string name="shortcut_helper_category_app_shortcuts" msgid="8010249408308587117">"แป้นพิมพ์ลัดของแอป"</string> @@ -1428,25 +1426,31 @@      <string name="shortcut_helper_title" msgid="8567500639300970049">"แป้นพิมพ์ลัด"</string>      <string name="shortcut_helper_customize_mode_title" msgid="1467657117101096033">"ปรับแต่งแป้นพิมพ์ลัด"</string>      <string name="shortcut_customize_mode_remove_shortcut_dialog_title" msgid="7106420484940737208">"นำแป้นพิมพ์ลัดออกใช่ไหม"</string> +    <!-- no translation found for shortcut_customize_mode_reset_shortcut_dialog_title (8131184731313717780) --> +    <skip />      <string name="shortcut_customize_mode_add_shortcut_description" msgid="6866025005347407696">"กดแป้นเพื่อกำหนดแป้นพิมพ์ลัด"</string>      <string name="shortcut_customize_mode_remove_shortcut_description" msgid="6851287900585057128">"การดำเนินการนี้จะลบแป้นพิมพ์ลัดที่กำหนดเองอย่างถาวร"</string> +    <!-- no translation found for shortcut_customize_mode_reset_shortcut_description (2081849715634358684) --> +    <skip />      <string name="shortcut_helper_search_placeholder" msgid="5488547526269871819">"ค้นหาแป้นพิมพ์ลัด"</string>      <string name="shortcut_helper_no_search_results" msgid="8554756497996692160">"ไม่พบผลการค้นหา"</string>      <string name="shortcut_helper_content_description_collapse_icon" msgid="8028015738431664954">"ไอคอนยุบ"</string>      <string name="shortcut_helper_content_description_meta_key" msgid="3989315044342124818">"ไอคอนการดำเนินการหรือแป้น Meta"</string>      <string name="shortcut_helper_content_description_plus_icon" msgid="6152683734278299020">"ไอคอนเครื่องหมายบวก"</string>      <string name="shortcut_helper_customize_button_text" msgid="3124983502748069338">"ปรับแต่ง"</string> +    <!-- no translation found for shortcut_helper_reset_button_text (2548243844050633472) --> +    <skip />      <string name="shortcut_helper_done_button_text" msgid="7249905942125386191">"เสร็จสิ้น"</string>      <string name="shortcut_helper_content_description_expand_icon" msgid="1084435697860417390">"ไอคอนขยาย"</string>      <string name="shortcut_helper_key_combinations_or_separator" msgid="7082902112102125540">"หรือ"</string> -    <!-- no translation found for shortcut_helper_key_combinations_and_conjunction (6138186504075880224) --> -    <skip /> -    <!-- no translation found for shortcut_helper_key_combinations_forward_slash (1238652537199346970) --> -    <skip /> +    <string name="shortcut_helper_key_combinations_and_conjunction" msgid="6138186504075880224">"บวก"</string> +    <string name="shortcut_helper_key_combinations_forward_slash" msgid="1238652537199346970">"เครื่องหมายทับ"</string>      <string name="shortcut_helper_content_description_drag_handle" msgid="5092426406009848110">"แฮนเดิลการลาก"</string>      <string name="shortcut_helper_keyboard_settings_buttons_label" msgid="6720967595915985259">"การตั้งค่าแป้นพิมพ์"</string>      <string name="shortcut_helper_customize_dialog_set_shortcut_button_label" msgid="4754492225010429382">"ตั้งค่าแป้นพิมพ์ลัด"</string>      <string name="shortcut_helper_customize_dialog_remove_button_label" msgid="6546386970440176552">"นำออก"</string> +    <!-- no translation found for shortcut_helper_customize_dialog_reset_button_label (7645535254306312685) --> +    <skip />      <string name="shortcut_helper_customize_dialog_cancel_button_label" msgid="5595546460431741178">"ยกเลิก"</string>      <string name="shortcut_helper_add_shortcut_dialog_placeholder" msgid="9154297849458741995">"กดแป้น"</string>      <string name="shortcut_customizer_key_combination_in_use_error_message" msgid="7693234470526626327">"มีการใช้แป้นที่กดร่วมกันนี้แล้ว โปรดลองใช้แป้นอื่น"</string> diff --git a/packages/SystemUI/res/values-tl/strings.xml b/packages/SystemUI/res/values-tl/strings.xml index 2e1d28684786..76375a363342 100644 --- a/packages/SystemUI/res/values-tl/strings.xml +++ b/packages/SystemUI/res/values-tl/strings.xml @@ -529,7 +529,10 @@      <string name="communal_widgets_disclaimer_text" msgid="1423545475160506349">"Para magbukas ng app gamit ang isang widget, kakailanganin mong i-verify na ikaw iyan. Bukod pa rito, tandaang puwedeng tingnan ng kahit na sino ang mga ito, kahit na naka-lock ang iyong tablet. Posibleng hindi para sa iyong lock screen ang ilang widget at posibleng hindi ligtas ang mga ito na idagdag dito."</string>      <string name="communal_widgets_disclaimer_button" msgid="4423059765740780753">"OK"</string>      <string name="glanceable_hub_lockscreen_affordance_label" msgid="1461611028615752141">"Mga Widget"</string> -    <string name="glanceable_hub_lockscreen_affordance_disabled_text" msgid="511359420883794513">"Para magdagdag ng Mga Widget sa lock screen bilang shortcut, tiyaking naka-enable ito sa mga setting."</string> +    <!-- no translation found for glanceable_hub_lockscreen_affordance_disabled_text (599170482297578735) --> +    <skip /> +    <!-- no translation found for glanceable_hub_lockscreen_affordance_action_button_label (7636151133344609375) --> +    <skip />      <string name="accessibility_multi_user_switch_switcher" msgid="5330448341251092660">"Magpalit ng user"</string>      <string name="accessibility_multi_user_list_switcher" msgid="8574105376229857407">"pulldown menu"</string>      <string name="guest_exit_guest_dialog_message" msgid="8183450985628495709">"Ide-delete ang lahat ng app at data sa session na ito."</string> @@ -875,14 +878,10 @@      <string name="system_multitasking_splitscreen_focus_lhs" msgid="3164261844398662518">"Lumipat sa app sa kaliwa o itaas habang ginagamit ang split screen"</string>      <string name="system_multitasking_replace" msgid="7410071959803642125">"Habang nasa split screen: magpalit-palit ng app"</string>      <string name="system_multitasking_move_to_next_display" msgid="6169737557526976997">"Ilipat ang aktibong window sa pagitan ng mga display"</string> -    <!-- no translation found for system_desktop_mode_snap_left_window (8636204689945162298) --> -    <skip /> -    <!-- no translation found for system_desktop_mode_snap_right_window (2162560187639411929) --> -    <skip /> -    <!-- no translation found for system_desktop_mode_toggle_maximize_window (4084100093691768239) --> -    <skip /> -    <!-- no translation found for system_desktop_mode_minimize_window (1248714536732927092) --> -    <skip /> +    <string name="system_desktop_mode_snap_left_window" msgid="8636204689945162298">"Ilipat ang window sa kaliwa"</string> +    <string name="system_desktop_mode_snap_right_window" msgid="2162560187639411929">"Ilipat ang window sa kanan"</string> +    <string name="system_desktop_mode_toggle_maximize_window" msgid="4084100093691768239">"I-maximize ang window"</string> +    <string name="system_desktop_mode_minimize_window" msgid="1248714536732927092">"I-minimize ang window"</string>      <string name="keyboard_shortcut_group_input" msgid="6888282716546625610">"Input"</string>      <string name="input_switch_input_language_next" msgid="3782155659868227855">"Lumipat sa susunod na wika"</string>      <string name="input_switch_input_language_previous" msgid="6043341362202336623">"Lumipat sa dating wika"</string> @@ -1419,7 +1418,6 @@      <string name="shortcut_helper_category_system_controls" msgid="3153344561395751020">"Mga kontrol ng system"</string>      <string name="shortcut_helper_category_system_apps" msgid="6001757545472556810">"Mga system app"</string>      <string name="shortcut_helper_category_multitasking" msgid="7413381961404090136">"Pag-multitask"</string> -    <string name="shortcutHelper_category_recent_apps" msgid="7918731953612377145">"Mga kamakailang app"</string>      <string name="shortcutHelper_category_split_screen" msgid="1159669813444812244">"Split screen"</string>      <string name="shortcut_helper_category_input" msgid="8674018654124839566">"Input"</string>      <string name="shortcut_helper_category_app_shortcuts" msgid="8010249408308587117">"Mga shortcut ng app"</string> @@ -1428,25 +1426,31 @@      <string name="shortcut_helper_title" msgid="8567500639300970049">"Mga keyboard shortcut"</string>      <string name="shortcut_helper_customize_mode_title" msgid="1467657117101096033">"I-customize ang mga keyboard shortcut"</string>      <string name="shortcut_customize_mode_remove_shortcut_dialog_title" msgid="7106420484940737208">"Alisin ang shortcut?"</string> +    <!-- no translation found for shortcut_customize_mode_reset_shortcut_dialog_title (8131184731313717780) --> +    <skip />      <string name="shortcut_customize_mode_add_shortcut_description" msgid="6866025005347407696">"Pindutin ang key para magtalaga ng shortcut"</string>      <string name="shortcut_customize_mode_remove_shortcut_description" msgid="6851287900585057128">"Permanente nitong ide-delete ang iyong custom na shortcut."</string> +    <!-- no translation found for shortcut_customize_mode_reset_shortcut_description (2081849715634358684) --> +    <skip />      <string name="shortcut_helper_search_placeholder" msgid="5488547526269871819">"Mga shortcut ng paghahanap"</string>      <string name="shortcut_helper_no_search_results" msgid="8554756497996692160">"Walang resulta ng paghahanap"</string>      <string name="shortcut_helper_content_description_collapse_icon" msgid="8028015738431664954">"I-collapse ang icon"</string>      <string name="shortcut_helper_content_description_meta_key" msgid="3989315044342124818">"Icon ng Action o Meta key"</string>      <string name="shortcut_helper_content_description_plus_icon" msgid="6152683734278299020">"Icon na plus"</string>      <string name="shortcut_helper_customize_button_text" msgid="3124983502748069338">"I-customize"</string> +    <!-- no translation found for shortcut_helper_reset_button_text (2548243844050633472) --> +    <skip />      <string name="shortcut_helper_done_button_text" msgid="7249905942125386191">"Tapos na"</string>      <string name="shortcut_helper_content_description_expand_icon" msgid="1084435697860417390">"I-expand ang icon"</string>      <string name="shortcut_helper_key_combinations_or_separator" msgid="7082902112102125540">"o"</string> -    <!-- no translation found for shortcut_helper_key_combinations_and_conjunction (6138186504075880224) --> -    <skip /> -    <!-- no translation found for shortcut_helper_key_combinations_forward_slash (1238652537199346970) --> -    <skip /> +    <string name="shortcut_helper_key_combinations_and_conjunction" msgid="6138186504075880224">"plus"</string> +    <string name="shortcut_helper_key_combinations_forward_slash" msgid="1238652537199346970">"forward slash"</string>      <string name="shortcut_helper_content_description_drag_handle" msgid="5092426406009848110">"Handle sa pag-drag"</string>      <string name="shortcut_helper_keyboard_settings_buttons_label" msgid="6720967595915985259">"Mga Setting ng Keyboard"</string>      <string name="shortcut_helper_customize_dialog_set_shortcut_button_label" msgid="4754492225010429382">"Magtakda ng shortcut"</string>      <string name="shortcut_helper_customize_dialog_remove_button_label" msgid="6546386970440176552">"Alisin"</string> +    <!-- no translation found for shortcut_helper_customize_dialog_reset_button_label (7645535254306312685) --> +    <skip />      <string name="shortcut_helper_customize_dialog_cancel_button_label" msgid="5595546460431741178">"Kanselahin"</string>      <string name="shortcut_helper_add_shortcut_dialog_placeholder" msgid="9154297849458741995">"Pindutin ang key"</string>      <string name="shortcut_customizer_key_combination_in_use_error_message" msgid="7693234470526626327">"Ginagamit na ang kumbinasyon ng key. Sumubok ng ibang key."</string> diff --git a/packages/SystemUI/res/values-tr/strings.xml b/packages/SystemUI/res/values-tr/strings.xml index 6628d23e6cab..e1484e3eef4d 100644 --- a/packages/SystemUI/res/values-tr/strings.xml +++ b/packages/SystemUI/res/values-tr/strings.xml @@ -529,7 +529,10 @@      <string name="communal_widgets_disclaimer_text" msgid="1423545475160506349">"Widget kullanarak bir uygulamayı açmak için kimliğinizi doğrulamanız gerekir. Ayrıca, tabletiniz kilitliyken bile widget\'ların herkes tarafından görüntülenebileceğini unutmayın. Bazı widget\'lar kilit ekranınız için tasarlanmamış olabileceğinden buraya eklenmeleri güvenli olmayabilir."</string>      <string name="communal_widgets_disclaimer_button" msgid="4423059765740780753">"Anladım"</string>      <string name="glanceable_hub_lockscreen_affordance_label" msgid="1461611028615752141">"Widget\'lar"</string> -    <string name="glanceable_hub_lockscreen_affordance_disabled_text" msgid="511359420883794513">"Kilit ekranında widget\'lar özelliğini kısayol olarak eklemek için ayarlarda bu özelliğin etkinleştirildiğinden emin olun."</string> +    <!-- no translation found for glanceable_hub_lockscreen_affordance_disabled_text (599170482297578735) --> +    <skip /> +    <!-- no translation found for glanceable_hub_lockscreen_affordance_action_button_label (7636151133344609375) --> +    <skip />      <string name="accessibility_multi_user_switch_switcher" msgid="5330448341251092660">"Kullanıcı değiştirme"</string>      <string name="accessibility_multi_user_list_switcher" msgid="8574105376229857407">"açılır menü"</string>      <string name="guest_exit_guest_dialog_message" msgid="8183450985628495709">"Bu oturumdaki tüm uygulamalar ve veriler silinecek."</string> @@ -875,14 +878,10 @@      <string name="system_multitasking_splitscreen_focus_lhs" msgid="3164261844398662518">"Bölünmüş ekran kullanırken soldaki veya üstteki uygulamaya geçiş yapın"</string>      <string name="system_multitasking_replace" msgid="7410071959803642125">"Bölünmüş ekran etkinken: Bir uygulamayı başkasıyla değiştir"</string>      <string name="system_multitasking_move_to_next_display" msgid="6169737557526976997">"Etkin pencereyi ekranlar arasında taşıma"</string> -    <!-- no translation found for system_desktop_mode_snap_left_window (8636204689945162298) --> -    <skip /> -    <!-- no translation found for system_desktop_mode_snap_right_window (2162560187639411929) --> -    <skip /> -    <!-- no translation found for system_desktop_mode_toggle_maximize_window (4084100093691768239) --> -    <skip /> -    <!-- no translation found for system_desktop_mode_minimize_window (1248714536732927092) --> -    <skip /> +    <string name="system_desktop_mode_snap_left_window" msgid="8636204689945162298">"Pencereyi sola taşı"</string> +    <string name="system_desktop_mode_snap_right_window" msgid="2162560187639411929">"Pencereyi sağa taşı"</string> +    <string name="system_desktop_mode_toggle_maximize_window" msgid="4084100093691768239">"Pencereyi ekranı kaplayacak şekilde büyüt"</string> +    <string name="system_desktop_mode_minimize_window" msgid="1248714536732927092">"Pencereyi simge durumuna küçült"</string>      <string name="keyboard_shortcut_group_input" msgid="6888282716546625610">"Giriş"</string>      <string name="input_switch_input_language_next" msgid="3782155659868227855">"Sonraki dile geç"</string>      <string name="input_switch_input_language_previous" msgid="6043341362202336623">"Önceki dile geç"</string> @@ -1419,7 +1418,6 @@      <string name="shortcut_helper_category_system_controls" msgid="3153344561395751020">"Sistem kontrolleri"</string>      <string name="shortcut_helper_category_system_apps" msgid="6001757545472556810">"Sistem uygulamaları"</string>      <string name="shortcut_helper_category_multitasking" msgid="7413381961404090136">"Çoklu görev"</string> -    <string name="shortcutHelper_category_recent_apps" msgid="7918731953612377145">"Son uygulamalar"</string>      <string name="shortcutHelper_category_split_screen" msgid="1159669813444812244">"Bölünmüş ekran"</string>      <string name="shortcut_helper_category_input" msgid="8674018654124839566">"Giriş"</string>      <string name="shortcut_helper_category_app_shortcuts" msgid="8010249408308587117">"Uygulama kısayolları"</string> @@ -1428,25 +1426,31 @@      <string name="shortcut_helper_title" msgid="8567500639300970049">"Klavye kısayolları"</string>      <string name="shortcut_helper_customize_mode_title" msgid="1467657117101096033">"Klavye kısayollarını özelleştirin"</string>      <string name="shortcut_customize_mode_remove_shortcut_dialog_title" msgid="7106420484940737208">"Kısayol kaldırılsın mı?"</string> +    <!-- no translation found for shortcut_customize_mode_reset_shortcut_dialog_title (8131184731313717780) --> +    <skip />      <string name="shortcut_customize_mode_add_shortcut_description" msgid="6866025005347407696">"Kısayol atamak için tuşa basın"</string>      <string name="shortcut_customize_mode_remove_shortcut_description" msgid="6851287900585057128">"Bu işlem, özel kısayolunuzu kalıcı olarak siler."</string> +    <!-- no translation found for shortcut_customize_mode_reset_shortcut_description (2081849715634358684) --> +    <skip />      <string name="shortcut_helper_search_placeholder" msgid="5488547526269871819">"Arama kısayolları"</string>      <string name="shortcut_helper_no_search_results" msgid="8554756497996692160">"Arama sonucu yok"</string>      <string name="shortcut_helper_content_description_collapse_icon" msgid="8028015738431664954">"Daralt simgesi"</string>      <string name="shortcut_helper_content_description_meta_key" msgid="3989315044342124818">"İşlem veya Meta tuşu simgesi"</string>      <string name="shortcut_helper_content_description_plus_icon" msgid="6152683734278299020">"Artı simgesi"</string>      <string name="shortcut_helper_customize_button_text" msgid="3124983502748069338">"Özelleştir"</string> +    <!-- no translation found for shortcut_helper_reset_button_text (2548243844050633472) --> +    <skip />      <string name="shortcut_helper_done_button_text" msgid="7249905942125386191">"Bitti"</string>      <string name="shortcut_helper_content_description_expand_icon" msgid="1084435697860417390">"Genişlet simgesi"</string>      <string name="shortcut_helper_key_combinations_or_separator" msgid="7082902112102125540">"veya"</string> -    <!-- no translation found for shortcut_helper_key_combinations_and_conjunction (6138186504075880224) --> -    <skip /> -    <!-- no translation found for shortcut_helper_key_combinations_forward_slash (1238652537199346970) --> -    <skip /> +    <string name="shortcut_helper_key_combinations_and_conjunction" msgid="6138186504075880224">"artı"</string> +    <string name="shortcut_helper_key_combinations_forward_slash" msgid="1238652537199346970">"eğik çizgi"</string>      <string name="shortcut_helper_content_description_drag_handle" msgid="5092426406009848110">"Sürükleme tutamacı"</string>      <string name="shortcut_helper_keyboard_settings_buttons_label" msgid="6720967595915985259">"Klavye Ayarları"</string>      <string name="shortcut_helper_customize_dialog_set_shortcut_button_label" msgid="4754492225010429382">"Kısayol ayarla"</string>      <string name="shortcut_helper_customize_dialog_remove_button_label" msgid="6546386970440176552">"Kaldır"</string> +    <!-- no translation found for shortcut_helper_customize_dialog_reset_button_label (7645535254306312685) --> +    <skip />      <string name="shortcut_helper_customize_dialog_cancel_button_label" msgid="5595546460431741178">"İptal"</string>      <string name="shortcut_helper_add_shortcut_dialog_placeholder" msgid="9154297849458741995">"Tuşa basın"</string>      <string name="shortcut_customizer_key_combination_in_use_error_message" msgid="7693234470526626327">"Tuş kombinasyonu zaten kullanılıyor. Başka bir tuş deneyin."</string> diff --git a/packages/SystemUI/res/values-uk/strings.xml b/packages/SystemUI/res/values-uk/strings.xml index 71845a3500fe..e4cc156cd454 100644 --- a/packages/SystemUI/res/values-uk/strings.xml +++ b/packages/SystemUI/res/values-uk/strings.xml @@ -529,7 +529,10 @@      <string name="communal_widgets_disclaimer_text" msgid="1423545475160506349">"Щоб відкрити додаток за допомогою віджета, вам потрібно буде підтвердити особу. Пам’ятайте також, що бачити віджети можуть усі, навіть коли планшет заблоковано. Можливо, деякі віджети не призначені для заблокованого екрана, і додавати їх на нього може бути небезпечно."</string>      <string name="communal_widgets_disclaimer_button" msgid="4423059765740780753">"OK"</string>      <string name="glanceable_hub_lockscreen_affordance_label" msgid="1461611028615752141">"Віджети"</string> -    <string name="glanceable_hub_lockscreen_affordance_disabled_text" msgid="511359420883794513">"Щоб додати ярлик для опції \"Показувати віджети на заблокованому екрані\", переконайтеся, що її ввімкнено в налаштуваннях."</string> +    <!-- no translation found for glanceable_hub_lockscreen_affordance_disabled_text (599170482297578735) --> +    <skip /> +    <!-- no translation found for glanceable_hub_lockscreen_affordance_action_button_label (7636151133344609375) --> +    <skip />      <string name="accessibility_multi_user_switch_switcher" msgid="5330448341251092660">"Змінити користувача"</string>      <string name="accessibility_multi_user_list_switcher" msgid="8574105376229857407">"спадне меню"</string>      <string name="guest_exit_guest_dialog_message" msgid="8183450985628495709">"Усі додатки й дані з цього сеансу буде видалено."</string> @@ -875,14 +878,10 @@      <string name="system_multitasking_splitscreen_focus_lhs" msgid="3164261844398662518">"Під час розділення екрана перемикатися на додаток ліворуч або вгорі"</string>      <string name="system_multitasking_replace" msgid="7410071959803642125">"Під час розділення екрана: замінити додаток іншим"</string>      <string name="system_multitasking_move_to_next_display" msgid="6169737557526976997">"Перемістити активне вікно між дисплеями"</string> -    <!-- no translation found for system_desktop_mode_snap_left_window (8636204689945162298) --> -    <skip /> -    <!-- no translation found for system_desktop_mode_snap_right_window (2162560187639411929) --> -    <skip /> -    <!-- no translation found for system_desktop_mode_toggle_maximize_window (4084100093691768239) --> -    <skip /> -    <!-- no translation found for system_desktop_mode_minimize_window (1248714536732927092) --> -    <skip /> +    <string name="system_desktop_mode_snap_left_window" msgid="8636204689945162298">"Перемістити вікно ліворуч"</string> +    <string name="system_desktop_mode_snap_right_window" msgid="2162560187639411929">"Перемістити вікно праворуч"</string> +    <string name="system_desktop_mode_toggle_maximize_window" msgid="4084100093691768239">"Розгорнути вікно"</string> +    <string name="system_desktop_mode_minimize_window" msgid="1248714536732927092">"Згорнути вікно"</string>      <string name="keyboard_shortcut_group_input" msgid="6888282716546625610">"Метод введення"</string>      <string name="input_switch_input_language_next" msgid="3782155659868227855">"Вибрати наступну мову"</string>      <string name="input_switch_input_language_previous" msgid="6043341362202336623">"Вибрати попередню мову"</string> @@ -1419,7 +1418,6 @@      <string name="shortcut_helper_category_system_controls" msgid="3153344561395751020">"Елементи керування системою"</string>      <string name="shortcut_helper_category_system_apps" msgid="6001757545472556810">"Системні додатки"</string>      <string name="shortcut_helper_category_multitasking" msgid="7413381961404090136">"Багатозадачність"</string> -    <string name="shortcutHelper_category_recent_apps" msgid="7918731953612377145">"Нещодавні додатки"</string>      <string name="shortcutHelper_category_split_screen" msgid="1159669813444812244">"Розділити екран"</string>      <string name="shortcut_helper_category_input" msgid="8674018654124839566">"Введення"</string>      <string name="shortcut_helper_category_app_shortcuts" msgid="8010249408308587117">"Комбінації клавіш для додатків"</string> @@ -1428,25 +1426,31 @@      <string name="shortcut_helper_title" msgid="8567500639300970049">"Комбінації клавіш"</string>      <string name="shortcut_helper_customize_mode_title" msgid="1467657117101096033">"Налаштуйте комбінації клавіш"</string>      <string name="shortcut_customize_mode_remove_shortcut_dialog_title" msgid="7106420484940737208">"Видалити комбінацію клавіш?"</string> +    <!-- no translation found for shortcut_customize_mode_reset_shortcut_dialog_title (8131184731313717780) --> +    <skip />      <string name="shortcut_customize_mode_add_shortcut_description" msgid="6866025005347407696">"Натисніть клавішу, щоб призначити комбінацію клавіш"</string>      <string name="shortcut_customize_mode_remove_shortcut_description" msgid="6851287900585057128">"Вашу власну комбінацію клавіш буде видалено назавжди."</string> +    <!-- no translation found for shortcut_customize_mode_reset_shortcut_description (2081849715634358684) --> +    <skip />      <string name="shortcut_helper_search_placeholder" msgid="5488547526269871819">"Комбінації клавіш для пошуку"</string>      <string name="shortcut_helper_no_search_results" msgid="8554756497996692160">"Нічого не знайдено"</string>      <string name="shortcut_helper_content_description_collapse_icon" msgid="8028015738431664954">"Значок згортання"</string>      <string name="shortcut_helper_content_description_meta_key" msgid="3989315044342124818">"Значок клавіші дії або метаклавіші"</string>      <string name="shortcut_helper_content_description_plus_icon" msgid="6152683734278299020">"Значок \"плюс\""</string>      <string name="shortcut_helper_customize_button_text" msgid="3124983502748069338">"Налаштувати"</string> +    <!-- no translation found for shortcut_helper_reset_button_text (2548243844050633472) --> +    <skip />      <string name="shortcut_helper_done_button_text" msgid="7249905942125386191">"Готово"</string>      <string name="shortcut_helper_content_description_expand_icon" msgid="1084435697860417390">"Значок розгортання"</string>      <string name="shortcut_helper_key_combinations_or_separator" msgid="7082902112102125540">"або"</string> -    <!-- no translation found for shortcut_helper_key_combinations_and_conjunction (6138186504075880224) --> -    <skip /> -    <!-- no translation found for shortcut_helper_key_combinations_forward_slash (1238652537199346970) --> -    <skip /> +    <string name="shortcut_helper_key_combinations_and_conjunction" msgid="6138186504075880224">"плюс"</string> +    <string name="shortcut_helper_key_combinations_forward_slash" msgid="1238652537199346970">"скісна риска"</string>      <string name="shortcut_helper_content_description_drag_handle" msgid="5092426406009848110">"Маркер переміщення"</string>      <string name="shortcut_helper_keyboard_settings_buttons_label" msgid="6720967595915985259">"Налаштування клавіатури"</string>      <string name="shortcut_helper_customize_dialog_set_shortcut_button_label" msgid="4754492225010429382">"Налаштувати комбінацію клавіш"</string>      <string name="shortcut_helper_customize_dialog_remove_button_label" msgid="6546386970440176552">"Видалити"</string> +    <!-- no translation found for shortcut_helper_customize_dialog_reset_button_label (7645535254306312685) --> +    <skip />      <string name="shortcut_helper_customize_dialog_cancel_button_label" msgid="5595546460431741178">"Скасувати"</string>      <string name="shortcut_helper_add_shortcut_dialog_placeholder" msgid="9154297849458741995">"Натисніть клавішу"</string>      <string name="shortcut_customizer_key_combination_in_use_error_message" msgid="7693234470526626327">"Комбінація клавіш уже використовується. Спробуйте іншу клавішу."</string> diff --git a/packages/SystemUI/res/values-ur/strings.xml b/packages/SystemUI/res/values-ur/strings.xml index 514244f40304..def880692411 100644 --- a/packages/SystemUI/res/values-ur/strings.xml +++ b/packages/SystemUI/res/values-ur/strings.xml @@ -529,7 +529,10 @@      <string name="communal_widgets_disclaimer_text" msgid="1423545475160506349">"ویجیٹ کے ذریعے ایپ کھولنے کے لیے آپ کو تصدیق کرنی ہوگی کہ یہ آپ ہی ہیں۔ نیز، ذہن میں رکھیں کہ کوئی بھی انہیں دیکھ سکتا ہے، یہاں تک کہ جب آپ کا ٹیبلیٹ مقفل ہو۔ ہو سکتا ہے کچھ ویجٹس آپ کی لاک اسکرین کے لیے نہ بنائے گئے ہوں اور یہاں شامل کرنا غیر محفوظ ہو سکتا ہے۔"</string>      <string name="communal_widgets_disclaimer_button" msgid="4423059765740780753">"سمجھ آ گئی"</string>      <string name="glanceable_hub_lockscreen_affordance_label" msgid="1461611028615752141">"ویجیٹس"</string> -    <string name="glanceable_hub_lockscreen_affordance_disabled_text" msgid="511359420883794513">"مقفل اسکرین پر ویجیٹس کو شارٹ کٹ کے بطور شامل کرنے کے لیے یقینی بنائیں کہ یہ ترتیبات میں فعال ہے۔"</string> +    <!-- no translation found for glanceable_hub_lockscreen_affordance_disabled_text (599170482297578735) --> +    <skip /> +    <!-- no translation found for glanceable_hub_lockscreen_affordance_action_button_label (7636151133344609375) --> +    <skip />      <string name="accessibility_multi_user_switch_switcher" msgid="5330448341251092660">"صارف سوئچ کریں"</string>      <string name="accessibility_multi_user_list_switcher" msgid="8574105376229857407">"پل ڈاؤن مینیو"</string>      <string name="guest_exit_guest_dialog_message" msgid="8183450985628495709">"اس سیشن میں موجود سبھی ایپس اور ڈیٹا کو حذف کر دیا جائے گا۔"</string> @@ -875,14 +878,10 @@      <string name="system_multitasking_splitscreen_focus_lhs" msgid="3164261844398662518">"اسپلٹ اسکرین کا استعمال کرتے ہوئے بائیں یا اوپر ایپ پر سوئچ کریں"</string>      <string name="system_multitasking_replace" msgid="7410071959803642125">"اسپلٹ اسکرین کے دوران: ایک ایپ کو دوسرے سے تبدیل کریں"</string>      <string name="system_multitasking_move_to_next_display" msgid="6169737557526976997">"فعال ونڈو کو ڈسپلیز کے مابین منتقل کریں"</string> -    <!-- no translation found for system_desktop_mode_snap_left_window (8636204689945162298) --> -    <skip /> -    <!-- no translation found for system_desktop_mode_snap_right_window (2162560187639411929) --> -    <skip /> -    <!-- no translation found for system_desktop_mode_toggle_maximize_window (4084100093691768239) --> -    <skip /> -    <!-- no translation found for system_desktop_mode_minimize_window (1248714536732927092) --> -    <skip /> +    <string name="system_desktop_mode_snap_left_window" msgid="8636204689945162298">"ونڈو کو دائیں طرف منتقل کریں"</string> +    <string name="system_desktop_mode_snap_right_window" msgid="2162560187639411929">"ونڈو کو بائیں طرف منتقل کریں"</string> +    <string name="system_desktop_mode_toggle_maximize_window" msgid="4084100093691768239">"ونڈو کو بڑا کریں"</string> +    <string name="system_desktop_mode_minimize_window" msgid="1248714536732927092">"ونڈو کو چھوٹا کریں"</string>      <string name="keyboard_shortcut_group_input" msgid="6888282716546625610">"ان پٹ"</string>      <string name="input_switch_input_language_next" msgid="3782155659868227855">"اگلی زبان پر سوئچ کریں"</string>      <string name="input_switch_input_language_previous" msgid="6043341362202336623">"پچھلی زبان پر سوئچ کریں"</string> @@ -1419,7 +1418,6 @@      <string name="shortcut_helper_category_system_controls" msgid="3153344561395751020">"سسٹم کنٹرولز"</string>      <string name="shortcut_helper_category_system_apps" msgid="6001757545472556810">"سسٹم ایپس"</string>      <string name="shortcut_helper_category_multitasking" msgid="7413381961404090136">"ملٹی ٹاسکنگ"</string> -    <string name="shortcutHelper_category_recent_apps" msgid="7918731953612377145">"حالیہ ایپس"</string>      <string name="shortcutHelper_category_split_screen" msgid="1159669813444812244">"اسپلٹ اسکرین"</string>      <string name="shortcut_helper_category_input" msgid="8674018654124839566">"ان پٹ"</string>      <string name="shortcut_helper_category_app_shortcuts" msgid="8010249408308587117">"ایپ شارٹ کٹس"</string> @@ -1428,25 +1426,31 @@      <string name="shortcut_helper_title" msgid="8567500639300970049">"کی بورڈ شارٹ کٹس"</string>      <string name="shortcut_helper_customize_mode_title" msgid="1467657117101096033">"کی بورڈ شارٹ کٹس کو حسب ضرورت بنائیں"</string>      <string name="shortcut_customize_mode_remove_shortcut_dialog_title" msgid="7106420484940737208">"شارٹ کٹ ہٹائیں؟"</string> +    <!-- no translation found for shortcut_customize_mode_reset_shortcut_dialog_title (8131184731313717780) --> +    <skip />      <string name="shortcut_customize_mode_add_shortcut_description" msgid="6866025005347407696">"شارٹ کٹ تفویض کرنے کے لیے کلید کو دبائیں"</string>      <string name="shortcut_customize_mode_remove_shortcut_description" msgid="6851287900585057128">"یہ آپ کا حسب ضرورت شارٹ کٹ مستقل طور پر حذف کر دے گا۔"</string> +    <!-- no translation found for shortcut_customize_mode_reset_shortcut_description (2081849715634358684) --> +    <skip />      <string name="shortcut_helper_search_placeholder" msgid="5488547526269871819">"تلاش کے شارٹ کٹس"</string>      <string name="shortcut_helper_no_search_results" msgid="8554756497996692160">"تلاش کا کوئی نتیجہ نہیں ہے"</string>      <string name="shortcut_helper_content_description_collapse_icon" msgid="8028015738431664954">"آئیکن سکیڑیں"</string>      <string name="shortcut_helper_content_description_meta_key" msgid="3989315044342124818">"کارروائی یا Meta کلید کا آئیکن"</string>      <string name="shortcut_helper_content_description_plus_icon" msgid="6152683734278299020">"پلس کا آئیکن"</string>      <string name="shortcut_helper_customize_button_text" msgid="3124983502748069338">"حسب ضرورت بنائیں"</string> +    <!-- no translation found for shortcut_helper_reset_button_text (2548243844050633472) --> +    <skip />      <string name="shortcut_helper_done_button_text" msgid="7249905942125386191">"ہو گیا"</string>      <string name="shortcut_helper_content_description_expand_icon" msgid="1084435697860417390">"آئیکن پھیلائیں"</string>      <string name="shortcut_helper_key_combinations_or_separator" msgid="7082902112102125540">"یا"</string> -    <!-- no translation found for shortcut_helper_key_combinations_and_conjunction (6138186504075880224) --> -    <skip /> -    <!-- no translation found for shortcut_helper_key_combinations_forward_slash (1238652537199346970) --> -    <skip /> +    <string name="shortcut_helper_key_combinations_and_conjunction" msgid="6138186504075880224">"پلس"</string> +    <string name="shortcut_helper_key_combinations_forward_slash" msgid="1238652537199346970">"فارورڈ سلیش"</string>      <string name="shortcut_helper_content_description_drag_handle" msgid="5092426406009848110">"گھسیٹنے کا ہینڈل"</string>      <string name="shortcut_helper_keyboard_settings_buttons_label" msgid="6720967595915985259">"کی بورڈ کی ترتیبات"</string>      <string name="shortcut_helper_customize_dialog_set_shortcut_button_label" msgid="4754492225010429382">"شارٹ کٹ سیٹ کریں"</string>      <string name="shortcut_helper_customize_dialog_remove_button_label" msgid="6546386970440176552">"ہٹائیں"</string> +    <!-- no translation found for shortcut_helper_customize_dialog_reset_button_label (7645535254306312685) --> +    <skip />      <string name="shortcut_helper_customize_dialog_cancel_button_label" msgid="5595546460431741178">"منسوخ کریں"</string>      <string name="shortcut_helper_add_shortcut_dialog_placeholder" msgid="9154297849458741995">"کلید کو دبائیں"</string>      <string name="shortcut_customizer_key_combination_in_use_error_message" msgid="7693234470526626327">"کلیدی مجموعہ پہلے سے استعمال میں ہے۔ دوسری کلید آزمائیں۔"</string> diff --git a/packages/SystemUI/res/values-uz/strings.xml b/packages/SystemUI/res/values-uz/strings.xml index 777be070e971..9dab9e1a8d51 100644 --- a/packages/SystemUI/res/values-uz/strings.xml +++ b/packages/SystemUI/res/values-uz/strings.xml @@ -529,7 +529,10 @@      <string name="communal_widgets_disclaimer_text" msgid="1423545475160506349">"Ilovani vidjet orqali ochish uchun shaxsingizni tasdiqlashingiz kerak. Shuningdek, planshet qulflanganda ham bu axborotlar hammaga koʻrinishini unutmang. Ayrim vidjetlar ekran qulfiga moslanmagan va ularni bu yerda chiqarish xavfli boʻlishi mumkin."</string>      <string name="communal_widgets_disclaimer_button" msgid="4423059765740780753">"OK"</string>      <string name="glanceable_hub_lockscreen_affordance_label" msgid="1461611028615752141">"Vidjetlar"</string> -    <string name="glanceable_hub_lockscreen_affordance_disabled_text" msgid="511359420883794513">"Ekran qulfiga yorliq sifatida vidjetlar kiritish uchun uning sozlamalarda yoqilganini tekshiring."</string> +    <!-- no translation found for glanceable_hub_lockscreen_affordance_disabled_text (599170482297578735) --> +    <skip /> +    <!-- no translation found for glanceable_hub_lockscreen_affordance_action_button_label (7636151133344609375) --> +    <skip />      <string name="accessibility_multi_user_switch_switcher" msgid="5330448341251092660">"Foydalanuvchini almashtirish"</string>      <string name="accessibility_multi_user_list_switcher" msgid="8574105376229857407">"tortib tushiriladigan menyu"</string>      <string name="guest_exit_guest_dialog_message" msgid="8183450985628495709">"Ushbu seansdagi barcha ilovalar va ma’lumotlar o‘chirib tashlanadi."</string> @@ -875,14 +878,10 @@      <string name="system_multitasking_splitscreen_focus_lhs" msgid="3164261844398662518">"Ajratilgan ekranda chapdagi yoki yuqoridagi ilovaga almashish"</string>      <string name="system_multitasking_replace" msgid="7410071959803642125">"Ajratilgan rejimda ilovalarni oʻzaro almashtirish"</string>      <string name="system_multitasking_move_to_next_display" msgid="6169737557526976997">"Faol oynani ekranlararo koʻchirish"</string> -    <!-- no translation found for system_desktop_mode_snap_left_window (8636204689945162298) --> -    <skip /> -    <!-- no translation found for system_desktop_mode_snap_right_window (2162560187639411929) --> -    <skip /> -    <!-- no translation found for system_desktop_mode_toggle_maximize_window (4084100093691768239) --> -    <skip /> -    <!-- no translation found for system_desktop_mode_minimize_window (1248714536732927092) --> -    <skip /> +    <string name="system_desktop_mode_snap_left_window" msgid="8636204689945162298">"Oynani chapga surish"</string> +    <string name="system_desktop_mode_snap_right_window" msgid="2162560187639411929">"Oynani oʻngga surish"</string> +    <string name="system_desktop_mode_toggle_maximize_window" msgid="4084100093691768239">"Oynani yoyish"</string> +    <string name="system_desktop_mode_minimize_window" msgid="1248714536732927092">"Oynani kichraytirish"</string>      <string name="keyboard_shortcut_group_input" msgid="6888282716546625610">"Kiritish"</string>      <string name="input_switch_input_language_next" msgid="3782155659868227855">"Keyingi tilga almashtirish"</string>      <string name="input_switch_input_language_previous" msgid="6043341362202336623">"Avvalgi tilga almashtirish"</string> @@ -1419,7 +1418,6 @@      <string name="shortcut_helper_category_system_controls" msgid="3153344561395751020">"Tizim boshqaruvi tugmalari"</string>      <string name="shortcut_helper_category_system_apps" msgid="6001757545472556810">"Tizim ilovalari"</string>      <string name="shortcut_helper_category_multitasking" msgid="7413381961404090136">"Multi-vazifalilik"</string> -    <string name="shortcutHelper_category_recent_apps" msgid="7918731953612377145">"Oxirgi ilovalar"</string>      <string name="shortcutHelper_category_split_screen" msgid="1159669813444812244">"Ekranni ikkiga ajratish"</string>      <string name="shortcut_helper_category_input" msgid="8674018654124839566">"Kiritish"</string>      <string name="shortcut_helper_category_app_shortcuts" msgid="8010249408308587117">"Ilova yorliqlari"</string> @@ -1428,25 +1426,31 @@      <string name="shortcut_helper_title" msgid="8567500639300970049">"Tezkor tugmalar"</string>      <string name="shortcut_helper_customize_mode_title" msgid="1467657117101096033">"Tezkor tugmalarni moslash"</string>      <string name="shortcut_customize_mode_remove_shortcut_dialog_title" msgid="7106420484940737208">"Tezkor tugma olib tashlansinmi?"</string> +    <!-- no translation found for shortcut_customize_mode_reset_shortcut_dialog_title (8131184731313717780) --> +    <skip />      <string name="shortcut_customize_mode_add_shortcut_description" msgid="6866025005347407696">"Tezkor tugma sozlash uchun tugmani bosing"</string>      <string name="shortcut_customize_mode_remove_shortcut_description" msgid="6851287900585057128">"Bunda maxsus tezkor tugma butunlay oʻchirib tashlanadi."</string> +    <!-- no translation found for shortcut_customize_mode_reset_shortcut_description (2081849715634358684) --> +    <skip />      <string name="shortcut_helper_search_placeholder" msgid="5488547526269871819">"Tezkor tugmalar qidiruvi"</string>      <string name="shortcut_helper_no_search_results" msgid="8554756497996692160">"Hech narsa topilmadi"</string>      <string name="shortcut_helper_content_description_collapse_icon" msgid="8028015738431664954">"Yigʻish belgisi"</string>      <string name="shortcut_helper_content_description_meta_key" msgid="3989315044342124818">"Amal bajarish uchun Meta tugmasi belgisi"</string>      <string name="shortcut_helper_content_description_plus_icon" msgid="6152683734278299020">"Plus belgisi"</string>      <string name="shortcut_helper_customize_button_text" msgid="3124983502748069338">"Moslash"</string> +    <!-- no translation found for shortcut_helper_reset_button_text (2548243844050633472) --> +    <skip />      <string name="shortcut_helper_done_button_text" msgid="7249905942125386191">"Tayyor"</string>      <string name="shortcut_helper_content_description_expand_icon" msgid="1084435697860417390">"Yoyish belgisi"</string>      <string name="shortcut_helper_key_combinations_or_separator" msgid="7082902112102125540">"yoki"</string> -    <!-- no translation found for shortcut_helper_key_combinations_and_conjunction (6138186504075880224) --> -    <skip /> -    <!-- no translation found for shortcut_helper_key_combinations_forward_slash (1238652537199346970) --> -    <skip /> +    <string name="shortcut_helper_key_combinations_and_conjunction" msgid="6138186504075880224">"plus"</string> +    <string name="shortcut_helper_key_combinations_forward_slash" msgid="1238652537199346970">"oldinga qiya chiziq"</string>      <string name="shortcut_helper_content_description_drag_handle" msgid="5092426406009848110">"Surish dastagi"</string>      <string name="shortcut_helper_keyboard_settings_buttons_label" msgid="6720967595915985259">"Klaviatura sozlamalari"</string>      <string name="shortcut_helper_customize_dialog_set_shortcut_button_label" msgid="4754492225010429382">"Tezkor tugma sozlash"</string>      <string name="shortcut_helper_customize_dialog_remove_button_label" msgid="6546386970440176552">"Olib tashlash"</string> +    <!-- no translation found for shortcut_helper_customize_dialog_reset_button_label (7645535254306312685) --> +    <skip />      <string name="shortcut_helper_customize_dialog_cancel_button_label" msgid="5595546460431741178">"Bekor qilish"</string>      <string name="shortcut_helper_add_shortcut_dialog_placeholder" msgid="9154297849458741995">"Tugmani bosing"</string>      <string name="shortcut_customizer_key_combination_in_use_error_message" msgid="7693234470526626327">"Bu tugmalar birikmasi band. Boshqasini ishlating."</string> diff --git a/packages/SystemUI/res/values-vi/strings.xml b/packages/SystemUI/res/values-vi/strings.xml index 6ea683a5af09..c709a31b57de 100644 --- a/packages/SystemUI/res/values-vi/strings.xml +++ b/packages/SystemUI/res/values-vi/strings.xml @@ -529,7 +529,10 @@      <string name="communal_widgets_disclaimer_text" msgid="1423545475160506349">"Để dùng tiện ích mở một ứng dụng, bạn cần xác minh danh tính của mình. Ngoài ra, hãy lưu ý rằng bất kỳ ai cũng có thể xem các tiện ích này, ngay cả khi máy tính bảng của bạn được khoá. Một số tiện ích có thể không dành cho màn hình khoá và không an toàn khi thêm vào đây."</string>      <string name="communal_widgets_disclaimer_button" msgid="4423059765740780753">"Tôi hiểu"</string>      <string name="glanceable_hub_lockscreen_affordance_label" msgid="1461611028615752141">"Tiện ích"</string> -    <string name="glanceable_hub_lockscreen_affordance_disabled_text" msgid="511359420883794513">"Để thêm Tiện ích dưới dạng lối tắt trên màn hình khoá, hãy đảm bảo bạn đã bật tính năng này trong phần cài đặt."</string> +    <!-- no translation found for glanceable_hub_lockscreen_affordance_disabled_text (599170482297578735) --> +    <skip /> +    <!-- no translation found for glanceable_hub_lockscreen_affordance_action_button_label (7636151133344609375) --> +    <skip />      <string name="accessibility_multi_user_switch_switcher" msgid="5330448341251092660">"Chuyển đổi người dùng"</string>      <string name="accessibility_multi_user_list_switcher" msgid="8574105376229857407">"trình đơn kéo xuống"</string>      <string name="guest_exit_guest_dialog_message" msgid="8183450985628495709">"Tất cả ứng dụng và dữ liệu trong phiên này sẽ bị xóa."</string> @@ -875,14 +878,10 @@      <string name="system_multitasking_splitscreen_focus_lhs" msgid="3164261844398662518">"Chuyển sang ứng dụng bên trái hoặc ở trên khi đang chia đôi màn hình"</string>      <string name="system_multitasking_replace" msgid="7410071959803642125">"Trong chế độ chia đôi màn hình: thay một ứng dụng bằng ứng dụng khác"</string>      <string name="system_multitasking_move_to_next_display" msgid="6169737557526976997">"Di chuyển cửa sổ đang hoạt động giữa các màn hình"</string> -    <!-- no translation found for system_desktop_mode_snap_left_window (8636204689945162298) --> -    <skip /> -    <!-- no translation found for system_desktop_mode_snap_right_window (2162560187639411929) --> -    <skip /> -    <!-- no translation found for system_desktop_mode_toggle_maximize_window (4084100093691768239) --> -    <skip /> -    <!-- no translation found for system_desktop_mode_minimize_window (1248714536732927092) --> -    <skip /> +    <string name="system_desktop_mode_snap_left_window" msgid="8636204689945162298">"Di chuyển cửa sổ sang trái"</string> +    <string name="system_desktop_mode_snap_right_window" msgid="2162560187639411929">"Di chuyển cửa sổ sang phải"</string> +    <string name="system_desktop_mode_toggle_maximize_window" msgid="4084100093691768239">"Phóng to cửa sổ"</string> +    <string name="system_desktop_mode_minimize_window" msgid="1248714536732927092">"Thu nhỏ cửa sổ"</string>      <string name="keyboard_shortcut_group_input" msgid="6888282716546625610">"Đầu vào"</string>      <string name="input_switch_input_language_next" msgid="3782155659868227855">"Chuyển sang ngôn ngữ tiếp theo"</string>      <string name="input_switch_input_language_previous" msgid="6043341362202336623">"Chuyển về ngôn ngữ trước"</string> @@ -1419,7 +1418,6 @@      <string name="shortcut_helper_category_system_controls" msgid="3153344561395751020">"Điều khiển hệ thống"</string>      <string name="shortcut_helper_category_system_apps" msgid="6001757545472556810">"Ứng dụng hệ thống"</string>      <string name="shortcut_helper_category_multitasking" msgid="7413381961404090136">"Đa nhiệm"</string> -    <string name="shortcutHelper_category_recent_apps" msgid="7918731953612377145">"Ứng dụng gần đây"</string>      <string name="shortcutHelper_category_split_screen" msgid="1159669813444812244">"Chia đôi màn hình"</string>      <string name="shortcut_helper_category_input" msgid="8674018654124839566">"Phương thức nhập"</string>      <string name="shortcut_helper_category_app_shortcuts" msgid="8010249408308587117">"Lối tắt ứng dụng"</string> @@ -1428,25 +1426,31 @@      <string name="shortcut_helper_title" msgid="8567500639300970049">"Phím tắt"</string>      <string name="shortcut_helper_customize_mode_title" msgid="1467657117101096033">"Tuỳ chỉnh phím tắt"</string>      <string name="shortcut_customize_mode_remove_shortcut_dialog_title" msgid="7106420484940737208">"Xoá lối tắt?"</string> +    <!-- no translation found for shortcut_customize_mode_reset_shortcut_dialog_title (8131184731313717780) --> +    <skip />      <string name="shortcut_customize_mode_add_shortcut_description" msgid="6866025005347407696">"Nhấn phím để chỉ định lối tắt"</string>      <string name="shortcut_customize_mode_remove_shortcut_description" msgid="6851287900585057128">"Thao tác này sẽ xoá vĩnh viễn lối tắt tuỳ chỉnh của bạn."</string> +    <!-- no translation found for shortcut_customize_mode_reset_shortcut_description (2081849715634358684) --> +    <skip />      <string name="shortcut_helper_search_placeholder" msgid="5488547526269871819">"Tìm lối tắt"</string>      <string name="shortcut_helper_no_search_results" msgid="8554756497996692160">"Không có kết quả tìm kiếm nào"</string>      <string name="shortcut_helper_content_description_collapse_icon" msgid="8028015738431664954">"Biểu tượng Thu gọn"</string>      <string name="shortcut_helper_content_description_meta_key" msgid="3989315044342124818">"Biểu tượng phím Meta (phím hành động)"</string>      <string name="shortcut_helper_content_description_plus_icon" msgid="6152683734278299020">"Biểu tượng dấu cộng"</string>      <string name="shortcut_helper_customize_button_text" msgid="3124983502748069338">"Tuỳ chỉnh"</string> +    <!-- no translation found for shortcut_helper_reset_button_text (2548243844050633472) --> +    <skip />      <string name="shortcut_helper_done_button_text" msgid="7249905942125386191">"Xong"</string>      <string name="shortcut_helper_content_description_expand_icon" msgid="1084435697860417390">"Biểu tượng Mở rộng"</string>      <string name="shortcut_helper_key_combinations_or_separator" msgid="7082902112102125540">"hoặc"</string> -    <!-- no translation found for shortcut_helper_key_combinations_and_conjunction (6138186504075880224) --> -    <skip /> -    <!-- no translation found for shortcut_helper_key_combinations_forward_slash (1238652537199346970) --> -    <skip /> +    <string name="shortcut_helper_key_combinations_and_conjunction" msgid="6138186504075880224">"dấu cộng"</string> +    <string name="shortcut_helper_key_combinations_forward_slash" msgid="1238652537199346970">"dấu gạch chéo lên"</string>      <string name="shortcut_helper_content_description_drag_handle" msgid="5092426406009848110">"Nút kéo"</string>      <string name="shortcut_helper_keyboard_settings_buttons_label" msgid="6720967595915985259">"Cài đặt bàn phím"</string>      <string name="shortcut_helper_customize_dialog_set_shortcut_button_label" msgid="4754492225010429382">"Đặt phím tắt"</string>      <string name="shortcut_helper_customize_dialog_remove_button_label" msgid="6546386970440176552">"Xoá"</string> +    <!-- no translation found for shortcut_helper_customize_dialog_reset_button_label (7645535254306312685) --> +    <skip />      <string name="shortcut_helper_customize_dialog_cancel_button_label" msgid="5595546460431741178">"Huỷ"</string>      <string name="shortcut_helper_add_shortcut_dialog_placeholder" msgid="9154297849458741995">"Nhấn phím"</string>      <string name="shortcut_customizer_key_combination_in_use_error_message" msgid="7693234470526626327">"Tổ hợp phím đã được sử dụng. Hãy thử một phím khác."</string> diff --git a/packages/SystemUI/res/values-zh-rCN/strings.xml b/packages/SystemUI/res/values-zh-rCN/strings.xml index bc9c31849549..a10650716c00 100644 --- a/packages/SystemUI/res/values-zh-rCN/strings.xml +++ b/packages/SystemUI/res/values-zh-rCN/strings.xml @@ -529,7 +529,10 @@      <string name="communal_widgets_disclaimer_text" msgid="1423545475160506349">"若要使用微件打开应用,您需要验证是您本人在操作。另外请注意,任何人都可以查看此类微件,即使您的平板电脑已锁定。有些微件可能不适合显示在锁定的屏幕中,因此添加到这里可能不安全。"</string>      <string name="communal_widgets_disclaimer_button" msgid="4423059765740780753">"知道了"</string>      <string name="glanceable_hub_lockscreen_affordance_label" msgid="1461611028615752141">"微件"</string> -    <string name="glanceable_hub_lockscreen_affordance_disabled_text" msgid="511359420883794513">"如要将微件作为快捷方式添加到锁屏界面,请确保已在设置中启用该功能。"</string> +    <!-- no translation found for glanceable_hub_lockscreen_affordance_disabled_text (599170482297578735) --> +    <skip /> +    <!-- no translation found for glanceable_hub_lockscreen_affordance_action_button_label (7636151133344609375) --> +    <skip />      <string name="accessibility_multi_user_switch_switcher" msgid="5330448341251092660">"切换用户"</string>      <string name="accessibility_multi_user_list_switcher" msgid="8574105376229857407">"下拉菜单"</string>      <string name="guest_exit_guest_dialog_message" msgid="8183450985628495709">"此会话中的所有应用和数据都将被删除。"</string> @@ -875,14 +878,10 @@      <string name="system_multitasking_splitscreen_focus_lhs" msgid="3164261844398662518">"使用分屏模式时,切换到左侧或上方的应用"</string>      <string name="system_multitasking_replace" msgid="7410071959803642125">"在分屏期间:将一个应用替换为另一个应用"</string>      <string name="system_multitasking_move_to_next_display" msgid="6169737557526976997">"在各个显示屏之间移动活动窗口"</string> -    <!-- no translation found for system_desktop_mode_snap_left_window (8636204689945162298) --> -    <skip /> -    <!-- no translation found for system_desktop_mode_snap_right_window (2162560187639411929) --> -    <skip /> -    <!-- no translation found for system_desktop_mode_toggle_maximize_window (4084100093691768239) --> -    <skip /> -    <!-- no translation found for system_desktop_mode_minimize_window (1248714536732927092) --> -    <skip /> +    <string name="system_desktop_mode_snap_left_window" msgid="8636204689945162298">"将窗口移至左侧"</string> +    <string name="system_desktop_mode_snap_right_window" msgid="2162560187639411929">"将窗口移至右侧"</string> +    <string name="system_desktop_mode_toggle_maximize_window" msgid="4084100093691768239">"最大化窗口"</string> +    <string name="system_desktop_mode_minimize_window" msgid="1248714536732927092">"最小化窗口"</string>      <string name="keyboard_shortcut_group_input" msgid="6888282716546625610">"输入"</string>      <string name="input_switch_input_language_next" msgid="3782155659868227855">"切换到下一种语言"</string>      <string name="input_switch_input_language_previous" msgid="6043341362202336623">"切换到上一种语言"</string> @@ -1419,7 +1418,6 @@      <string name="shortcut_helper_category_system_controls" msgid="3153344561395751020">"系统控件"</string>      <string name="shortcut_helper_category_system_apps" msgid="6001757545472556810">"系统应用"</string>      <string name="shortcut_helper_category_multitasking" msgid="7413381961404090136">"多任务处理"</string> -    <string name="shortcutHelper_category_recent_apps" msgid="7918731953612377145">"最近用过的应用"</string>      <string name="shortcutHelper_category_split_screen" msgid="1159669813444812244">"分屏"</string>      <string name="shortcut_helper_category_input" msgid="8674018654124839566">"输入"</string>      <string name="shortcut_helper_category_app_shortcuts" msgid="8010249408308587117">"应用快捷键"</string> @@ -1428,25 +1426,31 @@      <string name="shortcut_helper_title" msgid="8567500639300970049">"键盘快捷键"</string>      <string name="shortcut_helper_customize_mode_title" msgid="1467657117101096033">"自定义键盘快捷键"</string>      <string name="shortcut_customize_mode_remove_shortcut_dialog_title" msgid="7106420484940737208">"要移除快捷键吗?"</string> +    <!-- no translation found for shortcut_customize_mode_reset_shortcut_dialog_title (8131184731313717780) --> +    <skip />      <string name="shortcut_customize_mode_add_shortcut_description" msgid="6866025005347407696">"按下按键即可指定快捷键"</string>      <string name="shortcut_customize_mode_remove_shortcut_description" msgid="6851287900585057128">"此操作会永久删除您的自定义快捷键。"</string> +    <!-- no translation found for shortcut_customize_mode_reset_shortcut_description (2081849715634358684) --> +    <skip />      <string name="shortcut_helper_search_placeholder" msgid="5488547526269871819">"搜索快捷键"</string>      <string name="shortcut_helper_no_search_results" msgid="8554756497996692160">"无搜索结果"</string>      <string name="shortcut_helper_content_description_collapse_icon" msgid="8028015738431664954">"收起图标"</string>      <string name="shortcut_helper_content_description_meta_key" msgid="3989315044342124818">"操作键或元键图标"</string>      <string name="shortcut_helper_content_description_plus_icon" msgid="6152683734278299020">"加号图标"</string>      <string name="shortcut_helper_customize_button_text" msgid="3124983502748069338">"自定义"</string> +    <!-- no translation found for shortcut_helper_reset_button_text (2548243844050633472) --> +    <skip />      <string name="shortcut_helper_done_button_text" msgid="7249905942125386191">"完成"</string>      <string name="shortcut_helper_content_description_expand_icon" msgid="1084435697860417390">"展开图标"</string>      <string name="shortcut_helper_key_combinations_or_separator" msgid="7082902112102125540">"或"</string> -    <!-- no translation found for shortcut_helper_key_combinations_and_conjunction (6138186504075880224) --> -    <skip /> -    <!-- no translation found for shortcut_helper_key_combinations_forward_slash (1238652537199346970) --> -    <skip /> +    <string name="shortcut_helper_key_combinations_and_conjunction" msgid="6138186504075880224">"加号"</string> +    <string name="shortcut_helper_key_combinations_forward_slash" msgid="1238652537199346970">"正斜线"</string>      <string name="shortcut_helper_content_description_drag_handle" msgid="5092426406009848110">"拖动手柄"</string>      <string name="shortcut_helper_keyboard_settings_buttons_label" msgid="6720967595915985259">"键盘设置"</string>      <string name="shortcut_helper_customize_dialog_set_shortcut_button_label" msgid="4754492225010429382">"设置快捷键"</string>      <string name="shortcut_helper_customize_dialog_remove_button_label" msgid="6546386970440176552">"移除"</string> +    <!-- no translation found for shortcut_helper_customize_dialog_reset_button_label (7645535254306312685) --> +    <skip />      <string name="shortcut_helper_customize_dialog_cancel_button_label" msgid="5595546460431741178">"取消"</string>      <string name="shortcut_helper_add_shortcut_dialog_placeholder" msgid="9154297849458741995">"按下按键"</string>      <string name="shortcut_customizer_key_combination_in_use_error_message" msgid="7693234470526626327">"按键组合已被使用,请尝试使用其他按键。"</string> diff --git a/packages/SystemUI/res/values-zh-rHK/strings.xml b/packages/SystemUI/res/values-zh-rHK/strings.xml index 21477431d8fc..afbd4118f6ca 100644 --- a/packages/SystemUI/res/values-zh-rHK/strings.xml +++ b/packages/SystemUI/res/values-zh-rHK/strings.xml @@ -449,8 +449,8 @@      <string name="zen_modes_dialog_title" msgid="8854640808100096934">"模式"</string>      <string name="zen_modes_dialog_done" msgid="6654130880256438950">"完成"</string>      <string name="zen_modes_dialog_settings" msgid="2310248023728936697">"設定"</string> -    <string name="zen_mode_on" msgid="9085304934016242591">"開啟"</string> -    <string name="zen_mode_on_with_details" msgid="7416143430557895497">"開 • <xliff:g id="TRIGGER_DESCRIPTION">%1$s</xliff:g>"</string> +    <string name="zen_mode_on" msgid="9085304934016242591">"已開啟"</string> +    <string name="zen_mode_on_with_details" msgid="7416143430557895497">"已開啟 • <xliff:g id="TRIGGER_DESCRIPTION">%1$s</xliff:g>"</string>      <string name="zen_mode_off" msgid="1736604456618147306">"關閉"</string>      <string name="zen_mode_set_up" msgid="8231201163894922821">"未設定"</string>      <string name="zen_mode_no_manual_invocation" msgid="1769975741344633672">"在「設定」中管理"</string> @@ -529,7 +529,10 @@      <string name="communal_widgets_disclaimer_text" msgid="1423545475160506349">"如要使用小工具開啟應用程式,系統會要求你驗證身分。請注意,所有人都能查看小工具,即使平板電腦已鎖定亦然。部分小工具可能不適用於上鎖畫面,新增至這裡可能會有安全疑慮。"</string>      <string name="communal_widgets_disclaimer_button" msgid="4423059765740780753">"知道了"</string>      <string name="glanceable_hub_lockscreen_affordance_label" msgid="1461611028615752141">"小工具"</string> -    <string name="glanceable_hub_lockscreen_affordance_disabled_text" msgid="511359420883794513">"如要將小工具新增為上鎖畫面上的捷徑,請確認已在設定中啟用此功能。"</string> +    <!-- no translation found for glanceable_hub_lockscreen_affordance_disabled_text (599170482297578735) --> +    <skip /> +    <!-- no translation found for glanceable_hub_lockscreen_affordance_action_button_label (7636151133344609375) --> +    <skip />      <string name="accessibility_multi_user_switch_switcher" msgid="5330448341251092660">"切換使用者"</string>      <string name="accessibility_multi_user_list_switcher" msgid="8574105376229857407">"下拉式選單"</string>      <string name="guest_exit_guest_dialog_message" msgid="8183450985628495709">"這個工作階段中的所有應用程式和資料都會被刪除。"</string> @@ -875,14 +878,10 @@      <string name="system_multitasking_splitscreen_focus_lhs" msgid="3164261844398662518">"使用分割螢幕時,切換至左邊或上方的應用程式"</string>      <string name="system_multitasking_replace" msgid="7410071959803642125">"使用分割螢幕期間:更換應用程式"</string>      <string name="system_multitasking_move_to_next_display" msgid="6169737557526976997">"在不同畫面間移動使用中的視窗"</string> -    <!-- no translation found for system_desktop_mode_snap_left_window (8636204689945162298) --> -    <skip /> -    <!-- no translation found for system_desktop_mode_snap_right_window (2162560187639411929) --> -    <skip /> -    <!-- no translation found for system_desktop_mode_toggle_maximize_window (4084100093691768239) --> -    <skip /> -    <!-- no translation found for system_desktop_mode_minimize_window (1248714536732927092) --> -    <skip /> +    <string name="system_desktop_mode_snap_left_window" msgid="8636204689945162298">"將視窗移到左邊"</string> +    <string name="system_desktop_mode_snap_right_window" msgid="2162560187639411929">"將視窗移到右邊"</string> +    <string name="system_desktop_mode_toggle_maximize_window" msgid="4084100093691768239">"將視窗放到最大"</string> +    <string name="system_desktop_mode_minimize_window" msgid="1248714536732927092">"將視窗縮到最小"</string>      <string name="keyboard_shortcut_group_input" msgid="6888282716546625610">"輸入"</string>      <string name="input_switch_input_language_next" msgid="3782155659868227855">"切換至下一個語言"</string>      <string name="input_switch_input_language_previous" msgid="6043341362202336623">"切換至上一個語言"</string> @@ -1419,7 +1418,6 @@      <string name="shortcut_helper_category_system_controls" msgid="3153344561395751020">"系統控制項"</string>      <string name="shortcut_helper_category_system_apps" msgid="6001757545472556810">"系統應用程式"</string>      <string name="shortcut_helper_category_multitasking" msgid="7413381961404090136">"多工處理"</string> -    <string name="shortcutHelper_category_recent_apps" msgid="7918731953612377145">"最近使用的應用程式"</string>      <string name="shortcutHelper_category_split_screen" msgid="1159669813444812244">"分割螢幕"</string>      <string name="shortcut_helper_category_input" msgid="8674018654124839566">"輸入"</string>      <string name="shortcut_helper_category_app_shortcuts" msgid="8010249408308587117">"應用程式捷徑"</string> @@ -1428,25 +1426,31 @@      <string name="shortcut_helper_title" msgid="8567500639300970049">"鍵盤快速鍵"</string>      <string name="shortcut_helper_customize_mode_title" msgid="1467657117101096033">"自訂鍵盤快速鍵"</string>      <string name="shortcut_customize_mode_remove_shortcut_dialog_title" msgid="7106420484940737208">"要移除快速鍵嗎?"</string> +    <!-- no translation found for shortcut_customize_mode_reset_shortcut_dialog_title (8131184731313717780) --> +    <skip />      <string name="shortcut_customize_mode_add_shortcut_description" msgid="6866025005347407696">"按鍵即可指派快速鍵"</string>      <string name="shortcut_customize_mode_remove_shortcut_description" msgid="6851287900585057128">"這將永久刪除你的自訂快速鍵。"</string> +    <!-- no translation found for shortcut_customize_mode_reset_shortcut_description (2081849715634358684) --> +    <skip />      <string name="shortcut_helper_search_placeholder" msgid="5488547526269871819">"搜尋快速鍵"</string>      <string name="shortcut_helper_no_search_results" msgid="8554756497996692160">"沒有相符的搜尋結果"</string>      <string name="shortcut_helper_content_description_collapse_icon" msgid="8028015738431664954">"收合圖示"</string>      <string name="shortcut_helper_content_description_meta_key" msgid="3989315044342124818">"快捷操作鍵或修飾鍵圖示"</string>      <string name="shortcut_helper_content_description_plus_icon" msgid="6152683734278299020">"加號圖示"</string>      <string name="shortcut_helper_customize_button_text" msgid="3124983502748069338">"自訂"</string> +    <!-- no translation found for shortcut_helper_reset_button_text (2548243844050633472) --> +    <skip />      <string name="shortcut_helper_done_button_text" msgid="7249905942125386191">"完成"</string>      <string name="shortcut_helper_content_description_expand_icon" msgid="1084435697860417390">"展開圖示"</string>      <string name="shortcut_helper_key_combinations_or_separator" msgid="7082902112102125540">"或"</string> -    <!-- no translation found for shortcut_helper_key_combinations_and_conjunction (6138186504075880224) --> -    <skip /> -    <!-- no translation found for shortcut_helper_key_combinations_forward_slash (1238652537199346970) --> -    <skip /> +    <string name="shortcut_helper_key_combinations_and_conjunction" msgid="6138186504075880224">"加"</string> +    <string name="shortcut_helper_key_combinations_forward_slash" msgid="1238652537199346970">"正斜線"</string>      <string name="shortcut_helper_content_description_drag_handle" msgid="5092426406009848110">"拖曳控點"</string>      <string name="shortcut_helper_keyboard_settings_buttons_label" msgid="6720967595915985259">"鍵盤設定"</string>      <string name="shortcut_helper_customize_dialog_set_shortcut_button_label" msgid="4754492225010429382">"設定快速鍵"</string>      <string name="shortcut_helper_customize_dialog_remove_button_label" msgid="6546386970440176552">"移除"</string> +    <!-- no translation found for shortcut_helper_customize_dialog_reset_button_label (7645535254306312685) --> +    <skip />      <string name="shortcut_helper_customize_dialog_cancel_button_label" msgid="5595546460431741178">"取消"</string>      <string name="shortcut_helper_add_shortcut_dialog_placeholder" msgid="9154297849458741995">"按鍵"</string>      <string name="shortcut_customizer_key_combination_in_use_error_message" msgid="7693234470526626327">"此按鍵組合已在使用,請改用其他按鍵。"</string> diff --git a/packages/SystemUI/res/values-zh-rTW/strings.xml b/packages/SystemUI/res/values-zh-rTW/strings.xml index 13fb81c64450..03d70e145068 100644 --- a/packages/SystemUI/res/values-zh-rTW/strings.xml +++ b/packages/SystemUI/res/values-zh-rTW/strings.xml @@ -529,7 +529,10 @@      <string name="communal_widgets_disclaimer_text" msgid="1423545475160506349">"如要使用小工具開啟應用程式,需先驗證身分。請留意,即使平板電腦已鎖定,所有人都還是能查看小工具。某些小工具可能不適用於螢幕鎖定畫面,新增到此可能會有安全疑慮。"</string>      <string name="communal_widgets_disclaimer_button" msgid="4423059765740780753">"我知道了"</string>      <string name="glanceable_hub_lockscreen_affordance_label" msgid="1461611028615752141">"小工具"</string> -    <string name="glanceable_hub_lockscreen_affordance_disabled_text" msgid="511359420883794513">"如要將小工具新增為螢幕鎖定畫面上的捷徑,請確認已在設定中啟用這項功能。"</string> +    <!-- no translation found for glanceable_hub_lockscreen_affordance_disabled_text (599170482297578735) --> +    <skip /> +    <!-- no translation found for glanceable_hub_lockscreen_affordance_action_button_label (7636151133344609375) --> +    <skip />      <string name="accessibility_multi_user_switch_switcher" msgid="5330448341251092660">"切換使用者"</string>      <string name="accessibility_multi_user_list_switcher" msgid="8574105376229857407">"下拉式選單"</string>      <string name="guest_exit_guest_dialog_message" msgid="8183450985628495709">"這個工作階段中的所有應用程式和資料都會刪除。"</string> @@ -875,14 +878,10 @@      <string name="system_multitasking_splitscreen_focus_lhs" msgid="3164261844398662518">"使用分割畫面時,切換到左邊或上方的應用程式"</string>      <string name="system_multitasking_replace" msgid="7410071959803642125">"使用分割畫面期間:更換應用程式"</string>      <string name="system_multitasking_move_to_next_display" msgid="6169737557526976997">"在不同畫面間移動使用中的視窗"</string> -    <!-- no translation found for system_desktop_mode_snap_left_window (8636204689945162298) --> -    <skip /> -    <!-- no translation found for system_desktop_mode_snap_right_window (2162560187639411929) --> -    <skip /> -    <!-- no translation found for system_desktop_mode_toggle_maximize_window (4084100093691768239) --> -    <skip /> -    <!-- no translation found for system_desktop_mode_minimize_window (1248714536732927092) --> -    <skip /> +    <string name="system_desktop_mode_snap_left_window" msgid="8636204689945162298">"將視窗移至左側"</string> +    <string name="system_desktop_mode_snap_right_window" msgid="2162560187639411929">"將視窗移至右側"</string> +    <string name="system_desktop_mode_toggle_maximize_window" msgid="4084100093691768239">"將視窗放到最大"</string> +    <string name="system_desktop_mode_minimize_window" msgid="1248714536732927092">"將視窗縮到最小"</string>      <string name="keyboard_shortcut_group_input" msgid="6888282716546625610">"輸入"</string>      <string name="input_switch_input_language_next" msgid="3782155659868227855">"切換到下一個語言"</string>      <string name="input_switch_input_language_previous" msgid="6043341362202336623">"切換到上一個語言"</string> @@ -1419,7 +1418,6 @@      <string name="shortcut_helper_category_system_controls" msgid="3153344561395751020">"系統控制選項"</string>      <string name="shortcut_helper_category_system_apps" msgid="6001757545472556810">"系統應用程式"</string>      <string name="shortcut_helper_category_multitasking" msgid="7413381961404090136">"多工處理"</string> -    <string name="shortcutHelper_category_recent_apps" msgid="7918731953612377145">"最近使用的應用程式"</string>      <string name="shortcutHelper_category_split_screen" msgid="1159669813444812244">"分割畫面"</string>      <string name="shortcut_helper_category_input" msgid="8674018654124839566">"輸入"</string>      <string name="shortcut_helper_category_app_shortcuts" msgid="8010249408308587117">"應用程式捷徑"</string> @@ -1428,25 +1426,31 @@      <string name="shortcut_helper_title" msgid="8567500639300970049">"鍵盤快速鍵"</string>      <string name="shortcut_helper_customize_mode_title" msgid="1467657117101096033">"自訂鍵盤快速鍵"</string>      <string name="shortcut_customize_mode_remove_shortcut_dialog_title" msgid="7106420484940737208">"要移除快速鍵嗎?"</string> +    <!-- no translation found for shortcut_customize_mode_reset_shortcut_dialog_title (8131184731313717780) --> +    <skip />      <string name="shortcut_customize_mode_add_shortcut_description" msgid="6866025005347407696">"按下按鍵即可指派快速鍵"</string>      <string name="shortcut_customize_mode_remove_shortcut_description" msgid="6851287900585057128">"這項操作會永久刪除自訂快速鍵。"</string> +    <!-- no translation found for shortcut_customize_mode_reset_shortcut_description (2081849715634358684) --> +    <skip />      <string name="shortcut_helper_search_placeholder" msgid="5488547526269871819">"搜尋快速鍵"</string>      <string name="shortcut_helper_no_search_results" msgid="8554756497996692160">"找不到相符的搜尋結果"</string>      <string name="shortcut_helper_content_description_collapse_icon" msgid="8028015738431664954">"收合圖示"</string>      <string name="shortcut_helper_content_description_meta_key" msgid="3989315044342124818">"快捷操作鍵或修飾鍵圖示"</string>      <string name="shortcut_helper_content_description_plus_icon" msgid="6152683734278299020">"加號圖示"</string>      <string name="shortcut_helper_customize_button_text" msgid="3124983502748069338">"自訂"</string> +    <!-- no translation found for shortcut_helper_reset_button_text (2548243844050633472) --> +    <skip />      <string name="shortcut_helper_done_button_text" msgid="7249905942125386191">"完成"</string>      <string name="shortcut_helper_content_description_expand_icon" msgid="1084435697860417390">"展開圖示"</string>      <string name="shortcut_helper_key_combinations_or_separator" msgid="7082902112102125540">"或"</string> -    <!-- no translation found for shortcut_helper_key_combinations_and_conjunction (6138186504075880224) --> -    <skip /> -    <!-- no translation found for shortcut_helper_key_combinations_forward_slash (1238652537199346970) --> -    <skip /> +    <string name="shortcut_helper_key_combinations_and_conjunction" msgid="6138186504075880224">"加"</string> +    <string name="shortcut_helper_key_combinations_forward_slash" msgid="1238652537199346970">"斜線"</string>      <string name="shortcut_helper_content_description_drag_handle" msgid="5092426406009848110">"拖曳控點"</string>      <string name="shortcut_helper_keyboard_settings_buttons_label" msgid="6720967595915985259">"鍵盤設定"</string>      <string name="shortcut_helper_customize_dialog_set_shortcut_button_label" msgid="4754492225010429382">"設定快速鍵"</string>      <string name="shortcut_helper_customize_dialog_remove_button_label" msgid="6546386970440176552">"移除"</string> +    <!-- no translation found for shortcut_helper_customize_dialog_reset_button_label (7645535254306312685) --> +    <skip />      <string name="shortcut_helper_customize_dialog_cancel_button_label" msgid="5595546460431741178">"取消"</string>      <string name="shortcut_helper_add_shortcut_dialog_placeholder" msgid="9154297849458741995">"按下按鍵"</string>      <string name="shortcut_customizer_key_combination_in_use_error_message" msgid="7693234470526626327">"這個按鍵組合已在使用中,請改用其他按鍵。"</string> diff --git a/packages/SystemUI/res/values-zu/strings.xml b/packages/SystemUI/res/values-zu/strings.xml index f3230218ca65..b39c3e9a625b 100644 --- a/packages/SystemUI/res/values-zu/strings.xml +++ b/packages/SystemUI/res/values-zu/strings.xml @@ -529,7 +529,10 @@      <string name="communal_widgets_disclaimer_text" msgid="1423545475160506349">"Ukuze uvule i-app usebenzisa iwijethi, uzodinga ukuqinisekisa ukuthi nguwe. Futhi, khumbula ukuthi noma ubani angakwazi ukuzibuka, nanoma ithebhulethi yakho ikhiyiwe. Amanye amawijethi kungenzeka abengahloselwe ukukhiya isikrini sakho futhi kungenzeka awaphephile ukuthi angafakwa lapha."</string>      <string name="communal_widgets_disclaimer_button" msgid="4423059765740780753">"Ngiyezwa"</string>      <string name="glanceable_hub_lockscreen_affordance_label" msgid="1461611028615752141">"Amawijethi"</string> -    <string name="glanceable_hub_lockscreen_affordance_disabled_text" msgid="511359420883794513">"Ukufaka Amawijethi esikrinini sokukhiya njengesinqamuleli, qinisekisa ukuthi inikwe amandla kumasethingi."</string> +    <!-- no translation found for glanceable_hub_lockscreen_affordance_disabled_text (599170482297578735) --> +    <skip /> +    <!-- no translation found for glanceable_hub_lockscreen_affordance_action_button_label (7636151133344609375) --> +    <skip />      <string name="accessibility_multi_user_switch_switcher" msgid="5330448341251092660">"Shintsha umsebenzisi"</string>      <string name="accessibility_multi_user_list_switcher" msgid="8574105376229857407">"imenyu yokudonsela phansi"</string>      <string name="guest_exit_guest_dialog_message" msgid="8183450985628495709">"Wonke ama-app nedatha kulesi sikhathi azosuswa."</string> @@ -875,14 +878,10 @@      <string name="system_multitasking_splitscreen_focus_lhs" msgid="3164261844398662518">"Shintshela ku-app ngakwesokunxele noma ngaphezulu ngenkathi usebenzisa ukuhlukanisa isikrini"</string>      <string name="system_multitasking_replace" msgid="7410071959803642125">"Ngesikhathi sokuhlukaniswa kwesikrini: shintsha i-app ngenye"</string>      <string name="system_multitasking_move_to_next_display" msgid="6169737557526976997">"Hambisa iwindi elisebenzayo phakathi kwezibonisi"</string> -    <!-- no translation found for system_desktop_mode_snap_left_window (8636204689945162298) --> -    <skip /> -    <!-- no translation found for system_desktop_mode_snap_right_window (2162560187639411929) --> -    <skip /> -    <!-- no translation found for system_desktop_mode_toggle_maximize_window (4084100093691768239) --> -    <skip /> -    <!-- no translation found for system_desktop_mode_minimize_window (1248714536732927092) --> -    <skip /> +    <string name="system_desktop_mode_snap_left_window" msgid="8636204689945162298">"Hambisa iwindi liye kwesokudla"</string> +    <string name="system_desktop_mode_snap_right_window" msgid="2162560187639411929">"Hambisa iwindi liye kwesokudla"</string> +    <string name="system_desktop_mode_toggle_maximize_window" msgid="4084100093691768239">"Khulisa iwindi"</string> +    <string name="system_desktop_mode_minimize_window" msgid="1248714536732927092">"Nciphisa iwindi"</string>      <string name="keyboard_shortcut_group_input" msgid="6888282716546625610">"Okokufaka"</string>      <string name="input_switch_input_language_next" msgid="3782155659868227855">"Shintshela olimini olulandelayo"</string>      <string name="input_switch_input_language_previous" msgid="6043341362202336623">"Shintshela olimini lwangaphambili"</string> @@ -1419,7 +1418,6 @@      <string name="shortcut_helper_category_system_controls" msgid="3153344561395751020">"Izilawuli zesistimu"</string>      <string name="shortcut_helper_category_system_apps" msgid="6001757545472556810">"Ama-app esistimu"</string>      <string name="shortcut_helper_category_multitasking" msgid="7413381961404090136">"Ukwenza imisebenzi eminingi"</string> -    <string name="shortcutHelper_category_recent_apps" msgid="7918731953612377145">"Ama-app wakamuva"</string>      <string name="shortcutHelper_category_split_screen" msgid="1159669813444812244">"Hlukanisa isikrini"</string>      <string name="shortcut_helper_category_input" msgid="8674018654124839566">"Okokufaka"</string>      <string name="shortcut_helper_category_app_shortcuts" msgid="8010249408308587117">"Izinqamuleli Zohlelo lokusebenza"</string> @@ -1428,25 +1426,31 @@      <string name="shortcut_helper_title" msgid="8567500639300970049">"Izinqamuleli zekhibhodi"</string>      <string name="shortcut_helper_customize_mode_title" msgid="1467657117101096033">"Hlela izinqamuleli zekhibhodi ngendlela oyifisayo"</string>      <string name="shortcut_customize_mode_remove_shortcut_dialog_title" msgid="7106420484940737208">"Susa isinqamuleli?"</string> +    <!-- no translation found for shortcut_customize_mode_reset_shortcut_dialog_title (8131184731313717780) --> +    <skip />      <string name="shortcut_customize_mode_add_shortcut_description" msgid="6866025005347407696">"Cindezela ukhiye ukuze unikeze isinqamuleli"</string>      <string name="shortcut_customize_mode_remove_shortcut_description" msgid="6851287900585057128">"Lokhu kuzosula isinqamuleli sakho somuntu ngamunye unomphela."</string> +    <!-- no translation found for shortcut_customize_mode_reset_shortcut_description (2081849715634358684) --> +    <skip />      <string name="shortcut_helper_search_placeholder" msgid="5488547526269871819">"Sesha izinqamuleli"</string>      <string name="shortcut_helper_no_search_results" msgid="8554756497996692160">"Ayikho imiphumela yosesho"</string>      <string name="shortcut_helper_content_description_collapse_icon" msgid="8028015738431664954">"Goqa isithonjana"</string>      <string name="shortcut_helper_content_description_meta_key" msgid="3989315044342124818">"Isithonjana sesenzo noma seMeta"</string>      <string name="shortcut_helper_content_description_plus_icon" msgid="6152683734278299020">"Isithonjana sesengezo"</string>      <string name="shortcut_helper_customize_button_text" msgid="3124983502748069338">"Enza ngendlela oyifisayo"</string> +    <!-- no translation found for shortcut_helper_reset_button_text (2548243844050633472) --> +    <skip />      <string name="shortcut_helper_done_button_text" msgid="7249905942125386191">"Kwenziwe"</string>      <string name="shortcut_helper_content_description_expand_icon" msgid="1084435697860417390">"Nweba isithonjana"</string>      <string name="shortcut_helper_key_combinations_or_separator" msgid="7082902112102125540">"noma"</string> -    <!-- no translation found for shortcut_helper_key_combinations_and_conjunction (6138186504075880224) --> -    <skip /> -    <!-- no translation found for shortcut_helper_key_combinations_forward_slash (1238652537199346970) --> -    <skip /> +    <string name="shortcut_helper_key_combinations_and_conjunction" msgid="6138186504075880224">"hlanganisa"</string> +    <string name="shortcut_helper_key_combinations_forward_slash" msgid="1238652537199346970">"umugqa otshekele phambili"</string>      <string name="shortcut_helper_content_description_drag_handle" msgid="5092426406009848110">"Hudula isibambi"</string>      <string name="shortcut_helper_keyboard_settings_buttons_label" msgid="6720967595915985259">"Amasethingi Ekhibhodi"</string>      <string name="shortcut_helper_customize_dialog_set_shortcut_button_label" msgid="4754492225010429382">"Setha isinqamuleli"</string>      <string name="shortcut_helper_customize_dialog_remove_button_label" msgid="6546386970440176552">"Susa"</string> +    <!-- no translation found for shortcut_helper_customize_dialog_reset_button_label (7645535254306312685) --> +    <skip />      <string name="shortcut_helper_customize_dialog_cancel_button_label" msgid="5595546460431741178">"Khansela"</string>      <string name="shortcut_helper_add_shortcut_dialog_placeholder" msgid="9154297849458741995">"Cindezela ukhiye"</string>      <string name="shortcut_customizer_key_combination_in_use_error_message" msgid="7693234470526626327">"Inhlanganisela yokhiye isiyasetshenziswa kakade. Zama omunye ukhiye."</string> diff --git a/packages/SystemUI/res/values/config.xml b/packages/SystemUI/res/values/config.xml index 42e909244f84..113f3d2bc35e 100644 --- a/packages/SystemUI/res/values/config.xml +++ b/packages/SystemUI/res/values/config.xml @@ -172,6 +172,9 @@      <!-- Minimum display time for a heads up notification, in milliseconds. -->      <integer name="heads_up_notification_minimum_time">2000</integer> +    <!-- Minimum display time for a heads up notification if throttling is enabled, in milliseconds. --> +    <integer name="heads_up_notification_minimum_time_with_throttling">500</integer> +      <!-- Display time for a sticky heads up notification, in milliseconds. -->      <integer name="sticky_heads_up_notification_time">60000</integer> diff --git a/packages/SystemUI/src/com/android/systemui/keyboard/shortcut/data/source/SystemShortcutsSource.kt b/packages/SystemUI/src/com/android/systemui/keyboard/shortcut/data/source/SystemShortcutsSource.kt index 687ad9550b16..5060abdda247 100644 --- a/packages/SystemUI/src/com/android/systemui/keyboard/shortcut/data/source/SystemShortcutsSource.kt +++ b/packages/SystemUI/src/com/android/systemui/keyboard/shortcut/data/source/SystemShortcutsSource.kt @@ -54,7 +54,7 @@ constructor(@Main private val resources: Resources, private val inputManager: In          listOf(              KeyboardShortcutGroup(                  resources.getString(R.string.shortcut_helper_category_system_controls), -                hardwareShortcuts(deviceId) + systemControlsShortcuts(), +                systemControlsShortcuts() + hardwareShortcuts(deviceId),              ),              KeyboardShortcutGroup(                  resources.getString(R.string.shortcut_helper_category_system_apps), diff --git a/packages/SystemUI/src/com/android/systemui/keyboard/shortcut/domain/interactor/ShortcutHelperCategoriesInteractor.kt b/packages/SystemUI/src/com/android/systemui/keyboard/shortcut/domain/interactor/ShortcutHelperCategoriesInteractor.kt index 2385cc6a4c47..d62584644743 100644 --- a/packages/SystemUI/src/com/android/systemui/keyboard/shortcut/domain/interactor/ShortcutHelperCategoriesInteractor.kt +++ b/packages/SystemUI/src/com/android/systemui/keyboard/shortcut/domain/interactor/ShortcutHelperCategoriesInteractor.kt @@ -95,7 +95,7 @@ constructor(                  Shortcut(                      label = commonLabel,                      icon = groupedShortcuts.firstOrNull()?.icon, -                    commands = groupedShortcuts.flatMap { it.commands }, +                    commands = groupedShortcuts.flatMap { it.commands }.sortedBy { it.keys.size },                      contentDescription =                          toContentDescription(commonLabel, groupedShortcuts.flatMap { it.commands }),                  ) diff --git a/packages/SystemUI/src/com/android/systemui/keyguard/dagger/KeyguardModule.java b/packages/SystemUI/src/com/android/systemui/keyguard/dagger/KeyguardModule.java index 0101e099084e..096439b1008d 100644 --- a/packages/SystemUI/src/com/android/systemui/keyguard/dagger/KeyguardModule.java +++ b/packages/SystemUI/src/com/android/systemui/keyguard/dagger/KeyguardModule.java @@ -62,6 +62,7 @@ import com.android.systemui.keyguard.domain.interactor.KeyguardInteractor;  import com.android.systemui.keyguard.domain.interactor.KeyguardTransitionBootInteractor;  import com.android.systemui.keyguard.domain.interactor.StartKeyguardTransitionModule;  import com.android.systemui.keyguard.ui.transitions.DeviceEntryIconTransitionModule; +import com.android.systemui.keyguard.ui.view.AlternateBouncerWindowViewBinder;  import com.android.systemui.keyguard.ui.viewmodel.KeyguardQuickAffordancesCombinedViewModelModule;  import com.android.systemui.log.SessionTracker;  import com.android.systemui.navigationbar.NavigationModeController; @@ -248,4 +249,10 @@ public interface KeyguardModule {      @IntoMap      @ClassKey(KeyguardUpdateMonitor.class)      CoreStartable bindsKeyguardUpdateMonitor(KeyguardUpdateMonitor keyguardUpdateMonitor); + +    /***/ +    @Binds +    @IntoMap +    @ClassKey(AlternateBouncerWindowViewBinder.class) +    CoreStartable bindsAlternateBouncerWindowViewBinder(AlternateBouncerWindowViewBinder binder);  } diff --git a/packages/SystemUI/src/com/android/systemui/keyguard/domain/interactor/KeyguardDismissInteractor.kt b/packages/SystemUI/src/com/android/systemui/keyguard/domain/interactor/KeyguardDismissInteractor.kt index 2d7da38535b1..0a4022ad4de8 100644 --- a/packages/SystemUI/src/com/android/systemui/keyguard/domain/interactor/KeyguardDismissInteractor.kt +++ b/packages/SystemUI/src/com/android/systemui/keyguard/domain/interactor/KeyguardDismissInteractor.kt @@ -16,6 +16,7 @@  package com.android.systemui.keyguard.domain.interactor +import com.android.app.tracing.coroutines.launchTraced as launch  import com.android.internal.policy.IKeyguardDismissCallback  import com.android.systemui.bouncer.domain.interactor.AlternateBouncerInteractor  import com.android.systemui.bouncer.domain.interactor.PrimaryBouncerInteractor @@ -39,7 +40,6 @@ import kotlinx.coroutines.flow.combine  import kotlinx.coroutines.flow.filter  import kotlinx.coroutines.flow.map  import kotlinx.coroutines.flow.merge -import com.android.app.tracing.coroutines.launchTraced as launch  import kotlinx.coroutines.withContext  /** Encapsulates business logic for requesting the keyguard to dismiss/finish/done. */ @@ -53,8 +53,8 @@ constructor(      private val primaryBouncerInteractor: PrimaryBouncerInteractor,      private val selectedUserInteractor: SelectedUserInteractor,      private val dismissCallbackRegistry: DismissCallbackRegistry, +    private val alternateBouncerInteractor: AlternateBouncerInteractor,      trustRepository: TrustRepository, -    alternateBouncerInteractor: AlternateBouncerInteractor,      powerInteractor: PowerInteractor,  ) {      /* @@ -151,13 +151,16 @@ constructor(                      dismissCallbackRegistry.addCallback(callback)                  } -                // This will either show the bouncer, or dismiss the keyguard if insecure. -                // We currently need to request showing the primary bouncer in order to start a -                // transition to PRIMARY_BOUNCER. Once we refactor that so that starting the -                // transition is what causes the bouncer to show, we can remove this entire method, -                // and simply ask KeyguardTransitionInteractor to transition to a bouncer state or -                // dismiss keyguard. -                primaryBouncerInteractor.show(true) +                // This will either show the bouncer, or dismiss the keyguard if insecure. We +                // currently need to request showing the bouncer in order to start a transition to +                // *_BOUNCER. Once we refactor that so that starting the transition is what causes +                // the bouncer to show, we can remove this entire method, and simply call +                // KeyguardDismissTransitionInteractor#startDismissKeyguardTransition. +                if (alternateBouncerInteractor.canShowAlternateBouncer.value) { +                    alternateBouncerInteractor.forceShow() +                } else { +                    primaryBouncerInteractor.show(true) +                }              }          }      } diff --git a/packages/SystemUI/src/com/android/systemui/keyguard/ui/binder/AlternateBouncerViewBinder.kt b/packages/SystemUI/src/com/android/systemui/keyguard/ui/binder/AlternateBouncerViewBinder.kt index 7a368999ecc9..33783b515763 100644 --- a/packages/SystemUI/src/com/android/systemui/keyguard/ui/binder/AlternateBouncerViewBinder.kt +++ b/packages/SystemUI/src/com/android/systemui/keyguard/ui/binder/AlternateBouncerViewBinder.kt @@ -16,9 +16,7 @@  package com.android.systemui.keyguard.ui.binder -import android.graphics.PixelFormat  import android.util.Log -import android.view.Gravity  import android.view.LayoutInflater  import android.view.View  import android.view.ViewGroup @@ -36,6 +34,7 @@ import com.android.systemui.dagger.qualifiers.Application  import com.android.systemui.deviceentry.ui.binder.UdfpsAccessibilityOverlayBinder  import com.android.systemui.deviceentry.ui.view.UdfpsAccessibilityOverlay  import com.android.systemui.deviceentry.ui.viewmodel.AlternateBouncerUdfpsAccessibilityOverlayViewModel +import com.android.systemui.keyguard.ui.view.AlternateBouncerWindowViewLayoutParams  import com.android.systemui.keyguard.ui.view.DeviceEntryIconView  import com.android.systemui.keyguard.ui.viewmodel.AlternateBouncerDependencies  import com.android.systemui.keyguard.ui.viewmodel.AlternateBouncerUdfpsIconViewModel @@ -68,28 +67,6 @@ constructor(      private val windowManager: Lazy<WindowManager>,      private val layoutInflater: Lazy<LayoutInflater>,  ) : CoreStartable { -    private val layoutParams: WindowManager.LayoutParams -        get() = -            WindowManager.LayoutParams( -                    WindowManager.LayoutParams.MATCH_PARENT, -                    WindowManager.LayoutParams.MATCH_PARENT, -                    WindowManager.LayoutParams.TYPE_KEYGUARD_DIALOG, -                    WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN or -                        WindowManager.LayoutParams.FLAG_HARDWARE_ACCELERATED, -                    PixelFormat.TRANSLUCENT, -                ) -                .apply { -                    title = "AlternateBouncerView" -                    fitInsetsTypes = 0 // overrides default, avoiding status bars during layout -                    gravity = Gravity.TOP or Gravity.LEFT -                    layoutInDisplayCutoutMode = -                        WindowManager.LayoutParams.LAYOUT_IN_DISPLAY_CUTOUT_MODE_ALWAYS -                    privateFlags = -                        WindowManager.LayoutParams.PRIVATE_FLAG_TRUSTED_OVERLAY or -                            WindowManager.LayoutParams.PRIVATE_FLAG_NO_MOVE_ANIMATION -                    // Avoid announcing window title. -                    accessibilityTitle = " " -                }      private var alternateBouncerView: ConstraintLayout? = null @@ -176,7 +153,9 @@ constructor(                  as ConstraintLayout          Log.d(TAG, "Adding alternate bouncer view") -        windowManager.get().addView(alternateBouncerView, layoutParams) +        windowManager +            .get() +            .addView(alternateBouncerView, AlternateBouncerWindowViewLayoutParams.layoutParams)          alternateBouncerView!!.addOnAttachStateChangeListener(onAttachAddBackGestureHandler)      } diff --git a/packages/SystemUI/src/com/android/systemui/keyguard/ui/view/AlternateBouncerWindowViewBinder.kt b/packages/SystemUI/src/com/android/systemui/keyguard/ui/view/AlternateBouncerWindowViewBinder.kt new file mode 100644 index 000000000000..d3bc79eb89e2 --- /dev/null +++ b/packages/SystemUI/src/com/android/systemui/keyguard/ui/view/AlternateBouncerWindowViewBinder.kt @@ -0,0 +1,102 @@ +/* + * Copyright (C) 2024 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 com.android.systemui.keyguard.ui.view + +import android.content.Context +import android.view.View +import android.view.WindowManager +import android.widget.FrameLayout +import androidx.compose.ui.platform.ComposeView +import com.android.systemui.CoreStartable +import com.android.systemui.compose.ComposeInitializer +import com.android.systemui.dagger.SysUISingleton +import com.android.systemui.dagger.qualifiers.Application +import com.android.systemui.keyguard.ui.composable.AlternateBouncer +import com.android.systemui.keyguard.ui.viewmodel.AlternateBouncerDependencies +import com.android.systemui.keyguard.ui.viewmodel.AlternateBouncerViewModel +import com.android.systemui.lifecycle.repeatWhenAttached +import com.android.systemui.lifecycle.repeatWhenAttachedToWindow +import com.android.systemui.scene.shared.flag.SceneContainerFlag +import javax.inject.Inject +import kotlinx.coroutines.CoroutineScope +import kotlinx.coroutines.awaitCancellation +import kotlinx.coroutines.flow.distinctUntilChanged +import kotlinx.coroutines.flow.filter +import kotlinx.coroutines.launch + +/** Drives the showing and hiding of the alternate bouncer window. */ +@SysUISingleton +class AlternateBouncerWindowViewBinder +@Inject +constructor( +    @Application private val applicationScope: CoroutineScope, +    @Application private val context: Context, +    private val viewModel: AlternateBouncerViewModel, +    private val dependencies: AlternateBouncerDependencies, +    private val windowManager: WindowManager, +) : CoreStartable { + +    override fun start() { +        if (!SceneContainerFlag.isEnabled) { +            return +        } + +        applicationScope.launch { +            viewModel.isVisible +                .distinctUntilChanged() +                .filter { it } +                .collect { +                    windowManager.addView( +                        createView(), +                        AlternateBouncerWindowViewLayoutParams.layoutParams, +                    ) +                } +        } +    } + +    private fun createView(): View { +        val root = FrameLayout(context) +        val composeView = +            ComposeView(context).apply { +                setContent { +                    AlternateBouncer( +                        alternateBouncerDependencies = dependencies, +                        onHideAnimationFinished = { +                            if (root.isAttachedToWindow) { +                                windowManager.removeView(root) +                            } +                        }, +                    ) +                } +            } + +        root.repeatWhenAttached { +            root.repeatWhenAttachedToWindow { +                try { +                    ComposeInitializer.onAttachedToWindow(root) +                    root.addView(composeView) +                    awaitCancellation() +                } finally { +                    root.removeView(composeView) +                    ComposeInitializer.onDetachedFromWindow(root) +                } +            } +        } + +        return root +    } +} diff --git a/packages/SystemUI/src/com/android/systemui/keyguard/ui/view/AlternateBouncerWindowViewLayoutParams.kt b/packages/SystemUI/src/com/android/systemui/keyguard/ui/view/AlternateBouncerWindowViewLayoutParams.kt new file mode 100644 index 000000000000..5585c21aa217 --- /dev/null +++ b/packages/SystemUI/src/com/android/systemui/keyguard/ui/view/AlternateBouncerWindowViewLayoutParams.kt @@ -0,0 +1,46 @@ +/* + * Copyright (C) 2024 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 com.android.systemui.keyguard.ui.view + +import android.graphics.PixelFormat +import android.view.Gravity +import android.view.WindowManager + +object AlternateBouncerWindowViewLayoutParams { +    val layoutParams: WindowManager.LayoutParams +        get() = +            WindowManager.LayoutParams( +                    WindowManager.LayoutParams.MATCH_PARENT, +                    WindowManager.LayoutParams.MATCH_PARENT, +                    WindowManager.LayoutParams.TYPE_KEYGUARD_DIALOG, +                    WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN or +                        WindowManager.LayoutParams.FLAG_HARDWARE_ACCELERATED, +                    PixelFormat.TRANSLUCENT, +                ) +                .apply { +                    title = "AlternateBouncerView" +                    fitInsetsTypes = 0 // overrides default, avoiding status bars during layout +                    gravity = Gravity.TOP or Gravity.LEFT +                    layoutInDisplayCutoutMode = +                        WindowManager.LayoutParams.LAYOUT_IN_DISPLAY_CUTOUT_MODE_ALWAYS +                    privateFlags = +                        WindowManager.LayoutParams.PRIVATE_FLAG_TRUSTED_OVERLAY or +                            WindowManager.LayoutParams.PRIVATE_FLAG_NO_MOVE_ANIMATION +                    // Avoid announcing window title. +                    accessibilityTitle = " " +                } +} diff --git a/packages/SystemUI/src/com/android/systemui/mediaprojection/permission/BaseMediaProjectionPermissionDialogDelegate.kt b/packages/SystemUI/src/com/android/systemui/mediaprojection/permission/BaseMediaProjectionPermissionDialogDelegate.kt index 32de56f93427..e17255a7c2f0 100644 --- a/packages/SystemUI/src/com/android/systemui/mediaprojection/permission/BaseMediaProjectionPermissionDialogDelegate.kt +++ b/packages/SystemUI/src/com/android/systemui/mediaprojection/permission/BaseMediaProjectionPermissionDialogDelegate.kt @@ -50,22 +50,29 @@ abstract class BaseMediaProjectionPermissionDialogDelegate<T : AlertDialog>(      @ScreenShareMode val defaultSelectedMode: Int = screenShareOptions.first().mode,  ) : DialogDelegate<T>, AdapterView.OnItemSelectedListener {      private lateinit var dialogTitle: TextView -    private lateinit var startButton: TextView      private lateinit var cancelButton: TextView -    private lateinit var warning: TextView      private lateinit var screenShareModeSpinner: Spinner      protected lateinit var dialog: AlertDialog -    private var shouldLogCancel: Boolean = true -    var selectedScreenShareOption: ScreenShareOption = -        screenShareOptions.first { it.mode == defaultSelectedMode } +    protected lateinit var viewBinder: BaseMediaProjectionPermissionViewBinder + +    /** +     * Create the view binder for the permission dialog, this can be override by child classes to +     * support a different type of view binder +     */ +    open fun createViewBinder(): BaseMediaProjectionPermissionViewBinder { +        return BaseMediaProjectionPermissionViewBinder( +            screenShareOptions, +            appName, +            hostUid, +            mediaProjectionMetricsLogger, +            defaultSelectedMode, +            dialog, +        ) +    }      @CallSuper      override fun onStop(dialog: T) { -        // onStop can be called multiple times and we only want to log once. -        if (shouldLogCancel) { -            mediaProjectionMetricsLogger.notifyProjectionRequestCancelled(hostUid) -            shouldLogCancel = false -        } +        viewBinder.unbind()      }      @CallSuper @@ -75,12 +82,14 @@ abstract class BaseMediaProjectionPermissionDialogDelegate<T : AlertDialog>(          dialog.window?.setGravity(Gravity.CENTER)          dialog.setContentView(R.layout.screen_share_dialog)          dialogTitle = dialog.requireViewById(R.id.screen_share_dialog_title) -        warning = dialog.requireViewById(R.id.text_warning) -        startButton = dialog.requireViewById(android.R.id.button1)          cancelButton = dialog.requireViewById(android.R.id.button2)          updateIcon() -        initScreenShareOptions()          createOptionsView(getOptionsViewLayoutId()) +        if (!::viewBinder.isInitialized) { +            viewBinder = createViewBinder() +        } +        viewBinder.bind() +        initScreenShareSpinner()      }      private fun updateIcon() { @@ -93,18 +102,6 @@ abstract class BaseMediaProjectionPermissionDialogDelegate<T : AlertDialog>(          }      } -    private fun initScreenShareOptions() { -        selectedScreenShareOption = screenShareOptions.first { it.mode == defaultSelectedMode } -        setOptionSpecificFields() -        initScreenShareSpinner() -    } - -    private val warningText: String -        get() = dialog.context.getString(selectedScreenShareOption.warningText, appName) - -    private val startButtonText: String -        get() = dialog.context.getString(selectedScreenShareOption.startButtonText) -      private fun initScreenShareSpinner() {          val adapter = OptionsAdapter(dialog.context.applicationContext, screenShareOptions)          screenShareModeSpinner = dialog.requireViewById(R.id.screen_share_mode_options) @@ -128,18 +125,15 @@ abstract class BaseMediaProjectionPermissionDialogDelegate<T : AlertDialog>(      }      override fun onItemSelected(adapterView: AdapterView<*>?, view: View, pos: Int, id: Long) { -        selectedScreenShareOption = screenShareOptions[pos] -        setOptionSpecificFields() -    } - -    /** Sets fields on the dialog that change based on which option is selected. */ -    private fun setOptionSpecificFields() { -        warning.text = warningText -        startButton.text = startButtonText +        viewBinder.onItemSelected(pos)      }      override fun onNothingSelected(parent: AdapterView<*>?) {} +    fun getSelectedScreenShareOption(): ScreenShareOption { +        return viewBinder.selectedScreenShareOption +    } +      /** Protected methods for the text updates & functionality */      protected fun setDialogTitle(@StringRes stringId: Int) {          val title = dialog.context.getString(stringId, appName) @@ -147,10 +141,7 @@ abstract class BaseMediaProjectionPermissionDialogDelegate<T : AlertDialog>(      }      protected fun setStartButtonOnClickListener(listener: View.OnClickListener?) { -        startButton.setOnClickListener { view -> -            shouldLogCancel = false -            listener?.onClick(view) -        } +        viewBinder.setStartButtonOnClickListener(listener)      }      protected fun setCancelButtonOnClickListener(listener: View.OnClickListener?) { diff --git a/packages/SystemUI/src/com/android/systemui/mediaprojection/permission/BaseMediaProjectionPermissionViewBinder.kt b/packages/SystemUI/src/com/android/systemui/mediaprojection/permission/BaseMediaProjectionPermissionViewBinder.kt new file mode 100644 index 000000000000..728255d168f2 --- /dev/null +++ b/packages/SystemUI/src/com/android/systemui/mediaprojection/permission/BaseMediaProjectionPermissionViewBinder.kt @@ -0,0 +1,81 @@ +/* + * Copyright (C) 2024 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 com.android.systemui.mediaprojection.permission + +import android.app.AlertDialog +import android.view.View +import android.widget.TextView +import com.android.systemui.mediaprojection.MediaProjectionMetricsLogger +import com.android.systemui.res.R + +open class BaseMediaProjectionPermissionViewBinder( +    private val screenShareOptions: List<ScreenShareOption>, +    private val appName: String?, +    private val hostUid: Int, +    private val mediaProjectionMetricsLogger: MediaProjectionMetricsLogger, +    @ScreenShareMode val defaultSelectedMode: Int = screenShareOptions.first().mode, +    private val dialog: AlertDialog, +) { +    private lateinit var warning: TextView +    private lateinit var startButton: TextView +    var selectedScreenShareOption: ScreenShareOption = +        screenShareOptions.first { it.mode == defaultSelectedMode } +    private var shouldLogCancel: Boolean = true + +    fun unbind() { +        // unbind can be called multiple times and we only want to log once. +        if (shouldLogCancel) { +            mediaProjectionMetricsLogger.notifyProjectionRequestCancelled(hostUid) +            shouldLogCancel = false +        } +    } + +    open fun bind() { +        warning = dialog.requireViewById(R.id.text_warning) +        startButton = dialog.requireViewById(android.R.id.button1) +        initScreenShareOptions() +    } + +    private fun initScreenShareOptions() { +        selectedScreenShareOption = screenShareOptions.first { it.mode == defaultSelectedMode } +        setOptionSpecificFields() +    } + +    /** Sets fields on the dialog that change based on which option is selected. */ +    private fun setOptionSpecificFields() { +        warning.text = warningText +        startButton.text = startButtonText +    } + +    open fun onItemSelected(pos: Int) { +        selectedScreenShareOption = screenShareOptions[pos] +        setOptionSpecificFields() +    } + +    private val warningText: String +        get() = dialog.context.getString(selectedScreenShareOption.warningText, appName) + +    private val startButtonText: String +        get() = dialog.context.getString(selectedScreenShareOption.startButtonText) + +    fun setStartButtonOnClickListener(listener: View.OnClickListener?) { +        startButton.setOnClickListener { view -> +            shouldLogCancel = false +            listener?.onClick(view) +        } +    } +} diff --git a/packages/SystemUI/src/com/android/systemui/scene/ui/view/SceneWindowRootView.kt b/packages/SystemUI/src/com/android/systemui/scene/ui/view/SceneWindowRootView.kt index 7d7cab41cf96..c45906840385 100644 --- a/packages/SystemUI/src/com/android/systemui/scene/ui/view/SceneWindowRootView.kt +++ b/packages/SystemUI/src/com/android/systemui/scene/ui/view/SceneWindowRootView.kt @@ -5,7 +5,6 @@ import android.util.AttributeSet  import android.view.MotionEvent  import android.view.View  import android.view.WindowInsets -import com.android.systemui.keyguard.ui.viewmodel.AlternateBouncerDependencies  import com.android.systemui.qs.ui.adapter.QSSceneAdapter  import com.android.systemui.scene.shared.model.SceneContainerConfig  import com.android.systemui.scene.shared.model.SceneDataSourceDelegator @@ -35,7 +34,6 @@ class SceneWindowRootView(context: Context, attrs: AttributeSet?) : WindowRootVi          layoutInsetController: LayoutInsetsController,          sceneDataSourceDelegator: SceneDataSourceDelegator,          qsSceneAdapter: Provider<QSSceneAdapter>, -        alternateBouncerDependencies: AlternateBouncerDependencies,      ) {          setLayoutInsetsController(layoutInsetController)          SceneWindowRootViewBinder.bind( @@ -54,7 +52,6 @@ class SceneWindowRootView(context: Context, attrs: AttributeSet?) : WindowRootVi              },              dataSourceDelegator = sceneDataSourceDelegator,              qsSceneAdapter = qsSceneAdapter, -            alternateBouncerDependencies = alternateBouncerDependencies,          )      } diff --git a/packages/SystemUI/src/com/android/systemui/scene/ui/view/SceneWindowRootViewBinder.kt b/packages/SystemUI/src/com/android/systemui/scene/ui/view/SceneWindowRootViewBinder.kt index 1c15c74d5631..f7061d9af961 100644 --- a/packages/SystemUI/src/com/android/systemui/scene/ui/view/SceneWindowRootViewBinder.kt +++ b/packages/SystemUI/src/com/android/systemui/scene/ui/view/SceneWindowRootViewBinder.kt @@ -36,15 +36,12 @@ import com.android.internal.policy.ScreenDecorationsUtils  import com.android.systemui.common.ui.compose.windowinsets.CutoutLocation  import com.android.systemui.common.ui.compose.windowinsets.DisplayCutout  import com.android.systemui.common.ui.compose.windowinsets.ScreenDecorProvider -import com.android.systemui.keyguard.ui.composable.AlternateBouncer -import com.android.systemui.keyguard.ui.viewmodel.AlternateBouncerDependencies  import com.android.systemui.lifecycle.WindowLifecycleState  import com.android.systemui.lifecycle.repeatWhenAttached  import com.android.systemui.lifecycle.setSnapshotBinding  import com.android.systemui.lifecycle.viewModel  import com.android.systemui.qs.ui.adapter.QSSceneAdapter  import com.android.systemui.res.R -import com.android.systemui.scene.shared.flag.SceneContainerFlag  import com.android.systemui.scene.shared.model.SceneContainerConfig  import com.android.systemui.scene.shared.model.SceneDataSourceDelegator  import com.android.systemui.scene.ui.composable.Overlay @@ -77,7 +74,6 @@ object SceneWindowRootViewBinder {          onVisibilityChangedInternal: (isVisible: Boolean) -> Unit,          dataSourceDelegator: SceneDataSourceDelegator,          qsSceneAdapter: Provider<QSSceneAdapter>, -        alternateBouncerDependencies: AlternateBouncerDependencies,      ) {          val unsortedSceneByKey: Map<SceneKey, Scene> = scenes.associateBy { scene -> scene.key }          val sortedSceneByKey: Map<SceneKey, Scene> = @@ -148,20 +144,10 @@ object SceneWindowRootViewBinder {                      //  the SceneContainerView. This SharedNotificationContainer should contain NSSL                      //  due to the NotificationStackScrollLayoutSection (legacy) or                      //  NotificationSection (scene container) moving it there. -                    if (SceneContainerFlag.isEnabled) { -                        (sharedNotificationContainer.parent as? ViewGroup)?.removeView( -                            sharedNotificationContainer -                        ) -                        view.addView(sharedNotificationContainer) - -                        // TODO(b/358354906): use an overlay for the alternate bouncer -                        view.addView( -                            createAlternateBouncerView( -                                context = view.context, -                                alternateBouncerDependencies = alternateBouncerDependencies, -                            ) -                        ) -                    } +                    (sharedNotificationContainer.parent as? ViewGroup)?.removeView( +                        sharedNotificationContainer +                    ) +                    view.addView(sharedNotificationContainer)                      view.setSnapshotBinding { onVisibilityChangedInternal(viewModel.isVisible) }                      awaitCancellation() @@ -206,17 +192,6 @@ object SceneWindowRootViewBinder {          }      } -    private fun createAlternateBouncerView( -        context: Context, -        alternateBouncerDependencies: AlternateBouncerDependencies, -    ): ComposeView { -        return ComposeView(context).apply { -            setContent { -                AlternateBouncer(alternateBouncerDependencies = alternateBouncerDependencies) -            } -        } -    } -      // TODO(b/298525212): remove once Compose exposes window inset bounds.      private fun displayCutoutFromWindowInsets(          scope: CoroutineScope, diff --git a/packages/SystemUI/src/com/android/systemui/screenrecord/ScreenRecordPermissionDialogDelegate.kt b/packages/SystemUI/src/com/android/systemui/screenrecord/ScreenRecordPermissionDialogDelegate.kt index eb568f73a854..1da4c1d9469d 100644 --- a/packages/SystemUI/src/com/android/systemui/screenrecord/ScreenRecordPermissionDialogDelegate.kt +++ b/packages/SystemUI/src/com/android/systemui/screenrecord/ScreenRecordPermissionDialogDelegate.kt @@ -21,7 +21,6 @@ import android.app.PendingIntent  import android.content.Context  import android.content.Intent  import android.hardware.display.DisplayManager -import android.os.Build  import android.os.Bundle  import android.os.Handler  import android.os.Looper @@ -30,8 +29,6 @@ import android.os.UserHandle  import android.view.Display  import android.view.MotionEvent.ACTION_MOVE  import android.view.View -import android.view.View.GONE -import android.view.View.VISIBLE  import android.view.accessibility.AccessibilityNodeInfo  import android.widget.AdapterView  import android.widget.ArrayAdapter @@ -44,10 +41,10 @@ import com.android.systemui.mediaprojection.MediaProjectionCaptureTarget  import com.android.systemui.mediaprojection.MediaProjectionMetricsLogger  import com.android.systemui.mediaprojection.appselector.MediaProjectionAppSelectorActivity  import com.android.systemui.mediaprojection.permission.BaseMediaProjectionPermissionDialogDelegate +import com.android.systemui.mediaprojection.permission.BaseMediaProjectionPermissionViewBinder  import com.android.systemui.mediaprojection.permission.ENTIRE_SCREEN  import com.android.systemui.mediaprojection.permission.SINGLE_APP  import com.android.systemui.mediaprojection.permission.ScreenShareMode -import com.android.systemui.mediaprojection.permission.ScreenShareOption  import com.android.systemui.plugins.ActivityStarter  import com.android.systemui.res.R  import com.android.systemui.settings.UserContextProvider @@ -64,15 +61,15 @@ class ScreenRecordPermissionDialogDelegate(      private val activityStarter: ActivityStarter,      private val userContextProvider: UserContextProvider,      private val onStartRecordingClicked: Runnable?, -    mediaProjectionMetricsLogger: MediaProjectionMetricsLogger, +    private val mediaProjectionMetricsLogger: MediaProjectionMetricsLogger,      private val systemUIDialogFactory: SystemUIDialog.Factory,      @ScreenShareMode defaultSelectedMode: Int,      @StyleRes private val theme: Int,      private val context: Context, -    displayManager: DisplayManager, +    private val displayManager: DisplayManager,  ) :      BaseMediaProjectionPermissionDialogDelegate<SystemUIDialog>( -        createOptionList(displayManager), +        ScreenRecordPermissionViewBinder.createOptionList(displayManager),          appName = null,          hostUid = hostUid,          mediaProjectionMetricsLogger, @@ -119,10 +116,19 @@ class ScreenRecordPermissionDialogDelegate(      }      private lateinit var tapsSwitch: Switch -    private lateinit var tapsView: View      private lateinit var audioSwitch: Switch      private lateinit var options: Spinner +    override fun createViewBinder(): BaseMediaProjectionPermissionViewBinder { +        return ScreenRecordPermissionViewBinder( +            hostUid, +            mediaProjectionMetricsLogger, +            defaultSelectedMode, +            displayManager, +            dialog, +        ) +    } +      override fun createDialog(): SystemUIDialog {          return systemUIDialogFactory.create(this, context, theme)      } @@ -133,6 +139,7 @@ class ScreenRecordPermissionDialogDelegate(          dialog.setTitle(R.string.screenrecord_title)          setStartButtonOnClickListener { v: View? ->              onStartRecordingClicked?.run() +            val selectedScreenShareOption = getSelectedScreenShareOption()              if (selectedScreenShareOption.mode == ENTIRE_SCREEN) {                  requestScreenCapture(/* captureTarget= */ null, selectedScreenShareOption.displayId)              } @@ -168,6 +175,7 @@ class ScreenRecordPermissionDialogDelegate(      @SuppressLint("ClickableViewAccessibility")      private fun initRecordOptionsView() { +        // TODO(b/378514312): Move this function to ScreenRecordPermissionViewBinder          audioSwitch = dialog.requireViewById(R.id.screenrecord_audio_switch)          tapsSwitch = dialog.requireViewById(R.id.screenrecord_taps_switch) @@ -176,9 +184,6 @@ class ScreenRecordPermissionDialogDelegate(          audioSwitch.setOnTouchListener { _, event -> event.action == ACTION_MOVE }          tapsSwitch.setOnTouchListener { _, event -> event.action == ACTION_MOVE } -        tapsView = dialog.requireViewById(R.id.show_taps) -        updateTapsViewVisibility() -          options = dialog.requireViewById(R.id.screen_recording_options)          val a: ArrayAdapter<*> =              ScreenRecordingAdapter( @@ -206,15 +211,6 @@ class ScreenRecordPermissionDialogDelegate(          options.isLongClickable = false      } -    override fun onItemSelected(adapterView: AdapterView<*>?, view: View, pos: Int, id: Long) { -        super.onItemSelected(adapterView, view, pos, id) -        updateTapsViewVisibility() -    } - -    private fun updateTapsViewVisibility() { -        tapsView.visibility = if (selectedScreenShareOption.mode == SINGLE_APP) GONE else VISIBLE -    } -      /**       * Starts screen capture after some countdown       * @@ -226,7 +222,7 @@ class ScreenRecordPermissionDialogDelegate(          displayId: Int = Display.DEFAULT_DISPLAY,      ) {          val userContext = userContextProvider.userContext -        val showTaps = selectedScreenShareOption.mode != SINGLE_APP && tapsSwitch.isChecked +        val showTaps = getSelectedScreenShareOption().mode != SINGLE_APP && tapsSwitch.isChecked          val audioMode =              if (audioSwitch.isChecked) options.selectedItem as ScreenRecordingAudioSource              else ScreenRecordingAudioSource.NONE @@ -279,81 +275,5 @@ class ScreenRecordPermissionDialogDelegate(              )          private const val DELAY_MS: Long = 3000          private const val INTERVAL_MS: Long = 1000 - -        private val RECORDABLE_DISPLAY_TYPES = -            intArrayOf( -                Display.TYPE_OVERLAY, -                Display.TYPE_EXTERNAL, -                Display.TYPE_INTERNAL, -                Display.TYPE_WIFI, -            ) - -        private val filterDeviceTypeFlag: Boolean = -            com.android.media.projection.flags.Flags -                .mediaProjectionConnectedDisplayNoVirtualDevice() - -        private fun createOptionList(displayManager: DisplayManager): List<ScreenShareOption> { -            if (!com.android.media.projection.flags.Flags.mediaProjectionConnectedDisplay()) { -                return listOf( -                    ScreenShareOption( -                        SINGLE_APP, -                        R.string.screenrecord_permission_dialog_option_text_single_app, -                        R.string.screenrecord_permission_dialog_warning_single_app, -                        startButtonText = -                            R.string -                                .media_projection_entry_generic_permission_dialog_continue_single_app, -                    ), -                    ScreenShareOption( -                        ENTIRE_SCREEN, -                        R.string.screenrecord_permission_dialog_option_text_entire_screen, -                        R.string.screenrecord_permission_dialog_warning_entire_screen, -                        startButtonText = -                            R.string.screenrecord_permission_dialog_continue_entire_screen, -                        displayId = Display.DEFAULT_DISPLAY, -                        displayName = Build.MODEL, -                    ), -                ) -            } - -            return listOf( -                ScreenShareOption( -                    SINGLE_APP, -                    R.string.screenrecord_permission_dialog_option_text_single_app, -                    R.string.screenrecord_permission_dialog_warning_single_app, -                    startButtonText = -                        R.string -                            .media_projection_entry_generic_permission_dialog_continue_single_app, -                ), -                ScreenShareOption( -                    ENTIRE_SCREEN, -                    R.string.screenrecord_permission_dialog_option_text_entire_screen_for_display, -                    R.string.screenrecord_permission_dialog_warning_entire_screen, -                    startButtonText = -                        R.string.screenrecord_permission_dialog_continue_entire_screen, -                    displayId = Display.DEFAULT_DISPLAY, -                    displayName = Build.MODEL, -                ), -            ) + -                displayManager.displays -                    .filter { -                        it.displayId != Display.DEFAULT_DISPLAY && -                            (!filterDeviceTypeFlag || it.type in RECORDABLE_DISPLAY_TYPES) -                    } -                    .map { -                        ScreenShareOption( -                            ENTIRE_SCREEN, -                            R.string -                                .screenrecord_permission_dialog_option_text_entire_screen_for_display, -                            warningText = -                                R.string -                                    .media_projection_entry_app_permission_dialog_warning_entire_screen, -                            startButtonText = -                                R.string -                                    .media_projection_entry_app_permission_dialog_continue_entire_screen, -                            displayId = it.displayId, -                            displayName = it.name, -                        ) -                    } -        }      }  } diff --git a/packages/SystemUI/src/com/android/systemui/screenrecord/ScreenRecordPermissionViewBinder.kt b/packages/SystemUI/src/com/android/systemui/screenrecord/ScreenRecordPermissionViewBinder.kt new file mode 100644 index 000000000000..91c6b4769c99 --- /dev/null +++ b/packages/SystemUI/src/com/android/systemui/screenrecord/ScreenRecordPermissionViewBinder.kt @@ -0,0 +1,149 @@ +/* + * Copyright (C) 2024 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 com.android.systemui.screenrecord + +import android.annotation.SuppressLint +import android.app.AlertDialog +import android.hardware.display.DisplayManager +import android.os.Build +import android.view.Display +import android.view.View +import android.view.View.GONE +import android.view.View.VISIBLE +import com.android.systemui.mediaprojection.MediaProjectionMetricsLogger +import com.android.systemui.mediaprojection.permission.BaseMediaProjectionPermissionViewBinder +import com.android.systemui.mediaprojection.permission.ENTIRE_SCREEN +import com.android.systemui.mediaprojection.permission.SINGLE_APP +import com.android.systemui.mediaprojection.permission.ScreenShareMode +import com.android.systemui.mediaprojection.permission.ScreenShareOption +import com.android.systemui.res.R + +class ScreenRecordPermissionViewBinder( +    hostUid: Int, +    mediaProjectionMetricsLogger: MediaProjectionMetricsLogger, +    @ScreenShareMode defaultSelectedMode: Int, +    displayManager: DisplayManager, +    private val dialog: AlertDialog, +) : +    BaseMediaProjectionPermissionViewBinder( +        createOptionList(displayManager), +        appName = null, +        hostUid = hostUid, +        mediaProjectionMetricsLogger, +        defaultSelectedMode, +        dialog, +    ) { +    private lateinit var tapsView: View + +    override fun bind() { +        super.bind() +        initRecordOptionsView() +    } + +    @SuppressLint("ClickableViewAccessibility") +    private fun initRecordOptionsView() { +        tapsView = dialog.requireViewById(R.id.show_taps) +        updateTapsViewVisibility() +    } + +    override fun onItemSelected(pos: Int) { +        super.onItemSelected(pos) +        updateTapsViewVisibility() +    } + +    private fun updateTapsViewVisibility() { +        tapsView.visibility = if (selectedScreenShareOption.mode == SINGLE_APP) GONE else VISIBLE +    } + +    companion object { +        private val RECORDABLE_DISPLAY_TYPES = +            intArrayOf( +                Display.TYPE_OVERLAY, +                Display.TYPE_EXTERNAL, +                Display.TYPE_INTERNAL, +                Display.TYPE_WIFI, +            ) + +        private val filterDeviceTypeFlag: Boolean = +            com.android.media.projection.flags.Flags +                .mediaProjectionConnectedDisplayNoVirtualDevice() + +        fun createOptionList(displayManager: DisplayManager): List<ScreenShareOption> { +            if (!com.android.media.projection.flags.Flags.mediaProjectionConnectedDisplay()) { +                return listOf( +                    ScreenShareOption( +                        SINGLE_APP, +                        R.string.screenrecord_permission_dialog_option_text_single_app, +                        R.string.screenrecord_permission_dialog_warning_single_app, +                        startButtonText = +                            R.string +                                .media_projection_entry_generic_permission_dialog_continue_single_app, +                    ), +                    ScreenShareOption( +                        ENTIRE_SCREEN, +                        R.string.screenrecord_permission_dialog_option_text_entire_screen, +                        R.string.screenrecord_permission_dialog_warning_entire_screen, +                        startButtonText = +                            R.string.screenrecord_permission_dialog_continue_entire_screen, +                        displayId = Display.DEFAULT_DISPLAY, +                        displayName = Build.MODEL, +                    ), +                ) +            } + +            return listOf( +                ScreenShareOption( +                    SINGLE_APP, +                    R.string.screenrecord_permission_dialog_option_text_single_app, +                    R.string.screenrecord_permission_dialog_warning_single_app, +                    startButtonText = +                        R.string +                            .media_projection_entry_generic_permission_dialog_continue_single_app, +                ), +                ScreenShareOption( +                    ENTIRE_SCREEN, +                    R.string.screenrecord_permission_dialog_option_text_entire_screen_for_display, +                    R.string.screenrecord_permission_dialog_warning_entire_screen, +                    startButtonText = +                        R.string.screenrecord_permission_dialog_continue_entire_screen, +                    displayId = Display.DEFAULT_DISPLAY, +                    displayName = Build.MODEL, +                ), +            ) + +                displayManager.displays +                    .filter { +                        it.displayId != Display.DEFAULT_DISPLAY && +                            (!filterDeviceTypeFlag || it.type in RECORDABLE_DISPLAY_TYPES) +                    } +                    .map { +                        ScreenShareOption( +                            ENTIRE_SCREEN, +                            R.string +                                .screenrecord_permission_dialog_option_text_entire_screen_for_display, +                            warningText = +                                R.string +                                    .media_projection_entry_app_permission_dialog_warning_entire_screen, +                            startButtonText = +                                R.string +                                    .media_projection_entry_app_permission_dialog_continue_entire_screen, +                            displayId = it.displayId, +                            displayName = it.name, +                        ) +                    } +        } +    } +} diff --git a/packages/SystemUI/src/com/android/systemui/screenshot/ActionIntentExecutor.kt b/packages/SystemUI/src/com/android/systemui/screenshot/ActionIntentExecutor.kt index 7b01c36489fb..a365b7c5e9a1 100644 --- a/packages/SystemUI/src/com/android/systemui/screenshot/ActionIntentExecutor.kt +++ b/packages/SystemUI/src/com/android/systemui/screenshot/ActionIntentExecutor.kt @@ -37,7 +37,7 @@ import com.android.systemui.Flags  import com.android.systemui.dagger.SysUISingleton  import com.android.systemui.dagger.qualifiers.Application  import com.android.systemui.dagger.qualifiers.Main -import com.android.systemui.screenshot.proxy.SystemUiProxy +import com.android.systemui.screenshot.proxy.ScreenshotProxy  import com.android.systemui.settings.DisplayTracker  import com.android.systemui.shared.system.ActivityManagerWrapper  import com.android.systemui.statusbar.phone.CentralSurfaces @@ -55,7 +55,7 @@ constructor(      private val activityManagerWrapper: ActivityManagerWrapper,      @Application private val applicationScope: CoroutineScope,      @Main private val mainDispatcher: CoroutineDispatcher, -    private val systemUiProxy: SystemUiProxy, +    private val screenshotProxy: ScreenshotProxy,      private val displayTracker: DisplayTracker,  ) {      /** @@ -89,7 +89,7 @@ constructor(                  CentralSurfaces.SYSTEM_DIALOG_REASON_SCREENSHOT              )          } -        systemUiProxy.dismissKeyguard() +        screenshotProxy.dismissKeyguard()          var transitionOptions: ActivityOptions? = null          if (transitionCoordinator?.decor?.isAttachedToWindow == true) {              transitionCoordinator.startExit() @@ -127,7 +127,7 @@ constructor(      private suspend fun launchCrossProfileIntent(          user: UserHandle,          intent: Intent, -        bundle: Bundle? +        bundle: Bundle?,      ) {          val connector = getCrossProfileConnector(user)          val completion = CompletableDeferred<Unit>() diff --git a/packages/SystemUI/src/com/android/systemui/screenshot/dagger/ScreenshotModule.java b/packages/SystemUI/src/com/android/systemui/screenshot/dagger/ScreenshotModule.java index 90695fa00ceb..253e3a613083 100644 --- a/packages/SystemUI/src/com/android/systemui/screenshot/dagger/ScreenshotModule.java +++ b/packages/SystemUI/src/com/android/systemui/screenshot/dagger/ScreenshotModule.java @@ -38,7 +38,7 @@ import com.android.systemui.screenshot.appclips.AppClipsScreenshotHelperService;  import com.android.systemui.screenshot.appclips.AppClipsService;  import com.android.systemui.screenshot.message.MessageModule;  import com.android.systemui.screenshot.policy.ScreenshotPolicyModule; -import com.android.systemui.screenshot.proxy.SystemUiProxyModule; +import com.android.systemui.screenshot.proxy.ScreenshotProxyModule;  import com.android.systemui.screenshot.ui.viewmodel.ScreenshotViewModel;  import dagger.Binds; @@ -50,7 +50,7 @@ import dagger.multibindings.IntoMap;  /**   * Defines injectable resources for Screenshots   */ -@Module(includes = {ScreenshotPolicyModule.class, SystemUiProxyModule.class, MessageModule.class}) +@Module(includes = {ScreenshotPolicyModule.class, ScreenshotProxyModule.class, MessageModule.class})  public abstract class ScreenshotModule {      @Binds diff --git a/packages/SystemUI/src/com/android/systemui/screenshot/data/repository/DisplayContentRepositoryImpl.kt b/packages/SystemUI/src/com/android/systemui/screenshot/data/repository/DisplayContentRepositoryImpl.kt index e9599dcb026d..ec34808459c8 100644 --- a/packages/SystemUI/src/com/android/systemui/screenshot/data/repository/DisplayContentRepositoryImpl.kt +++ b/packages/SystemUI/src/com/android/systemui/screenshot/data/repository/DisplayContentRepositoryImpl.kt @@ -22,21 +22,21 @@ import android.app.IActivityTaskManager  import com.android.systemui.dagger.qualifiers.Background  import com.android.systemui.screenshot.data.model.DisplayContentModel  import com.android.systemui.screenshot.data.model.SystemUiState -import com.android.systemui.screenshot.proxy.SystemUiProxy +import com.android.systemui.screenshot.proxy.ScreenshotProxy  import javax.inject.Inject  import kotlinx.coroutines.CoroutineDispatcher  import kotlinx.coroutines.withContext  /**   * Implements DisplayTaskRepository using [IActivityTaskManager], along with [ProfileTypeRepository] - * and [SystemUiProxy]. + * and [ScreenshotProxy].   */  @SuppressLint("MissingPermission")  class DisplayContentRepositoryImpl  @Inject  constructor(      private val atmService: IActivityTaskManager, -    private val systemUiProxy: SystemUiProxy, +    private val screenshotProxy: ScreenshotProxy,      @Background private val background: CoroutineDispatcher,  ) : DisplayContentRepository { @@ -53,8 +53,8 @@ constructor(      ): DisplayContentModel {          return DisplayContentModel(              displayId, -            SystemUiState(systemUiProxy.isNotificationShadeExpanded()), -            rootTasks +            SystemUiState(screenshotProxy.isNotificationShadeExpanded()), +            rootTasks,          )      }  } diff --git a/packages/SystemUI/src/com/android/systemui/screenshot/IOnDoneCallback.aidl b/packages/SystemUI/src/com/android/systemui/screenshot/proxy/IOnDoneCallback.aidl index e15030f78234..fb97fa71480b 100644 --- a/packages/SystemUI/src/com/android/systemui/screenshot/IOnDoneCallback.aidl +++ b/packages/SystemUI/src/com/android/systemui/screenshot/proxy/IOnDoneCallback.aidl @@ -14,7 +14,7 @@   * limitations under the License.   */ -package com.android.systemui.screenshot; +package com.android.systemui.screenshot.proxy;  interface IOnDoneCallback {    void onDone(boolean success); diff --git a/packages/SystemUI/src/com/android/systemui/screenshot/IScreenshotProxy.aidl b/packages/SystemUI/src/com/android/systemui/screenshot/proxy/IScreenshotProxy.aidl index d2e3fbd65762..7b2f7e699521 100644 --- a/packages/SystemUI/src/com/android/systemui/screenshot/IScreenshotProxy.aidl +++ b/packages/SystemUI/src/com/android/systemui/screenshot/proxy/IScreenshotProxy.aidl @@ -14,9 +14,9 @@   * limitations under the License.   */ -package com.android.systemui.screenshot; +package com.android.systemui.screenshot.proxy; -import com.android.systemui.screenshot.IOnDoneCallback; +import com.android.systemui.screenshot.proxy.IOnDoneCallback;  /** Interface implemented by ScreenshotProxyService */  interface IScreenshotProxy { diff --git a/packages/SystemUI/src/com/android/systemui/screenshot/proxy/SystemUiProxy.kt b/packages/SystemUI/src/com/android/systemui/screenshot/proxy/ScreenshotProxy.kt index e3eb3c4de80a..b44168f70ce3 100644 --- a/packages/SystemUI/src/com/android/systemui/screenshot/proxy/SystemUiProxy.kt +++ b/packages/SystemUI/src/com/android/systemui/screenshot/proxy/ScreenshotProxy.kt @@ -24,7 +24,7 @@ package com.android.systemui.screenshot.proxy   *   * TODO: Rename and relocate 'ScreenshotProxyService' to this package and remove duplicate clients.   */ -interface SystemUiProxy { +interface ScreenshotProxy {      /** Indicate if the notification shade is "open"... (not in the fully collapsed position) */      suspend fun isNotificationShadeExpanded(): Boolean diff --git a/packages/SystemUI/src/com/android/systemui/screenshot/proxy/SystemUiProxyClient.kt b/packages/SystemUI/src/com/android/systemui/screenshot/proxy/ScreenshotProxyClient.kt index dcf58bde5f70..1158e2eb0ae5 100644 --- a/packages/SystemUI/src/com/android/systemui/screenshot/proxy/SystemUiProxyClient.kt +++ b/packages/SystemUI/src/com/android/systemui/screenshot/proxy/ScreenshotProxyClient.kt @@ -22,9 +22,6 @@ import android.content.Intent  import android.util.Log  import com.android.internal.infra.ServiceConnector  import com.android.systemui.dagger.qualifiers.Application -import com.android.systemui.screenshot.IOnDoneCallback -import com.android.systemui.screenshot.IScreenshotProxy -import com.android.systemui.screenshot.ScreenshotProxyService  import javax.inject.Inject  import kotlin.coroutines.resume  import kotlin.coroutines.suspendCoroutine @@ -32,8 +29,8 @@ import kotlinx.coroutines.CompletableDeferred  private const val TAG = "SystemUiProxy" -/** An implementation of [SystemUiProxy] using [ScreenshotProxyService]. */ -class SystemUiProxyClient @Inject constructor(@Application context: Context) : SystemUiProxy { +/** An implementation of [ScreenshotProxy] using [ScreenshotProxyService]. */ +class ScreenshotProxyClient @Inject constructor(@Application context: Context) : ScreenshotProxy {      @SuppressLint("ImplicitSamInstance")      private val proxyConnector: ServiceConnector<IScreenshotProxy> =          ServiceConnector.Impl( @@ -41,7 +38,7 @@ class SystemUiProxyClient @Inject constructor(@Application context: Context) : S              Intent(context, ScreenshotProxyService::class.java),              Context.BIND_AUTO_CREATE or Context.BIND_WAIVE_PRIORITY or Context.BIND_NOT_VISIBLE,              context.userId, -            IScreenshotProxy.Stub::asInterface +            IScreenshotProxy.Stub::asInterface,          )      override suspend fun isNotificationShadeExpanded(): Boolean = suspendCoroutine { k -> diff --git a/packages/SystemUI/src/com/android/systemui/screenshot/proxy/SystemUiProxyModule.kt b/packages/SystemUI/src/com/android/systemui/screenshot/proxy/ScreenshotProxyModule.kt index 4dd5cc4b55b4..797be9121ae8 100644 --- a/packages/SystemUI/src/com/android/systemui/screenshot/proxy/SystemUiProxyModule.kt +++ b/packages/SystemUI/src/com/android/systemui/screenshot/proxy/ScreenshotProxyModule.kt @@ -18,14 +18,13 @@ package com.android.systemui.screenshot.proxy  import android.app.Service  import com.android.systemui.dagger.SysUISingleton -import com.android.systemui.screenshot.ScreenshotProxyService  import dagger.Binds  import dagger.Module  import dagger.multibindings.ClassKey  import dagger.multibindings.IntoMap  @Module -interface SystemUiProxyModule { +interface ScreenshotProxyModule {      @Binds      @IntoMap @@ -34,5 +33,5 @@ interface SystemUiProxyModule {      @Binds      @SysUISingleton -    fun bindSystemUiProxy(systemUiProxyClient: SystemUiProxyClient): SystemUiProxy +    fun bindSystemUiProxy(screenshotProxyClient: ScreenshotProxyClient): ScreenshotProxy  } diff --git a/packages/SystemUI/src/com/android/systemui/screenshot/ScreenshotProxyService.kt b/packages/SystemUI/src/com/android/systemui/screenshot/proxy/ScreenshotProxyService.kt index 6df22f036273..a84f55268678 100644 --- a/packages/SystemUI/src/com/android/systemui/screenshot/ScreenshotProxyService.kt +++ b/packages/SystemUI/src/com/android/systemui/screenshot/proxy/ScreenshotProxyService.kt @@ -13,7 +13,8 @@   * See the License for the specific language governing permissions and   * limitations under the License.   */ -package com.android.systemui.screenshot + +package com.android.systemui.screenshot.proxy  import android.content.Intent  import android.os.IBinder @@ -67,7 +68,7 @@ constructor(                  null,                  true /* dismissShade */,                  true /* afterKeyguardGone */, -                true /* deferred */ +                true, /* deferred */              )          } diff --git a/packages/SystemUI/src/com/android/systemui/shade/ShadeViewProviderModule.kt b/packages/SystemUI/src/com/android/systemui/shade/ShadeViewProviderModule.kt index 15b22700072f..8937ce33cd38 100644 --- a/packages/SystemUI/src/com/android/systemui/shade/ShadeViewProviderModule.kt +++ b/packages/SystemUI/src/com/android/systemui/shade/ShadeViewProviderModule.kt @@ -33,7 +33,6 @@ import com.android.systemui.dagger.SysUISingleton  import com.android.systemui.dagger.qualifiers.Main  import com.android.systemui.flags.FeatureFlags  import com.android.systemui.keyguard.ui.view.KeyguardRootView -import com.android.systemui.keyguard.ui.viewmodel.AlternateBouncerDependencies  import com.android.systemui.privacy.OngoingPrivacyChip  import com.android.systemui.qs.ui.adapter.QSSceneAdapter  import com.android.systemui.res.R @@ -91,7 +90,6 @@ abstract class ShadeViewProviderModule {              layoutInsetController: NotificationInsetsController,              sceneDataSourceDelegator: Provider<SceneDataSourceDelegator>,              qsSceneAdapter: Provider<QSSceneAdapter>, -            alternateBouncerDependencies: Provider<AlternateBouncerDependencies>,          ): WindowRootView {              return if (SceneContainerFlag.isEnabled) {                  checkNoSceneDuplicates(scenesProvider.get()) @@ -107,7 +105,6 @@ abstract class ShadeViewProviderModule {                      layoutInsetController = layoutInsetController,                      sceneDataSourceDelegator = sceneDataSourceDelegator.get(),                      qsSceneAdapter = qsSceneAdapter, -                    alternateBouncerDependencies = alternateBouncerDependencies.get(),                  )                  sceneWindowRootView              } else { diff --git a/packages/SystemUI/src/com/android/systemui/shade/ui/viewmodel/ShadeUserActions.kt b/packages/SystemUI/src/com/android/systemui/shade/ui/viewmodel/ShadeUserActions.kt index dd1b58c47b63..c6752f867183 100644 --- a/packages/SystemUI/src/com/android/systemui/shade/ui/viewmodel/ShadeUserActions.kt +++ b/packages/SystemUI/src/com/android/systemui/shade/ui/viewmodel/ShadeUserActions.kt @@ -30,8 +30,8 @@ fun singleShadeActions(      isDownFromTopEdgeEnabled: Boolean = true,      requireTwoPointersForTopEdgeForQs: Boolean = false,  ): Array<Pair<UserAction, UserActionResult>> { -    val shadeUserActionResult = UserActionResult(Scenes.Shade, isIrreversible = true) -    val qsSceneUserActionResult = UserActionResult(Scenes.QuickSettings, isIrreversible = true) +    val shadeUserActionResult = UserActionResult(Scenes.Shade) +    val qsSceneUserActionResult = UserActionResult(Scenes.QuickSettings)      return buildList {              // Swiping down, not from the edge, always goes to shade.              add(Swipe.Down to shadeUserActionResult) @@ -53,7 +53,7 @@ fun singleShadeActions(  /** Returns collection of [UserAction] to [UserActionResult] pairs for opening the split shade. */  fun splitShadeActions(): Array<Pair<UserAction, UserActionResult>> { -    val shadeUserActionResult = UserActionResult(Scenes.Shade, ToSplitShade, isIrreversible = true) +    val shadeUserActionResult = UserActionResult(Scenes.Shade, ToSplitShade)      return arrayOf(          // Swiping down, not from the edge, always goes to shade.          Swipe.Down to shadeUserActionResult, @@ -66,10 +66,8 @@ fun splitShadeActions(): Array<Pair<UserAction, UserActionResult>> {  /** Returns collection of [UserAction] to [UserActionResult] pairs for opening the dual shade. */  fun dualShadeActions(): Array<Pair<UserAction, UserActionResult>> { -    val notifShadeUserActionResult = -        UserActionResult.ShowOverlay(Overlays.NotificationsShade, isIrreversible = true) -    val qsShadeuserActionResult = -        UserActionResult.ShowOverlay(Overlays.QuickSettingsShade, isIrreversible = true) +    val notifShadeUserActionResult = UserActionResult.ShowOverlay(Overlays.NotificationsShade) +    val qsShadeuserActionResult = UserActionResult.ShowOverlay(Overlays.QuickSettingsShade)      return arrayOf(          Swipe.Down to notifShadeUserActionResult,          Swipe.Down(fromSource = SceneContainerEdge.TopRight) to qsShadeuserActionResult, diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/domain/interactor/ActiveNotificationsInteractor.kt b/packages/SystemUI/src/com/android/systemui/statusbar/notification/domain/interactor/ActiveNotificationsInteractor.kt index cff5bef9fe69..6b93ee1c435e 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/domain/interactor/ActiveNotificationsInteractor.kt +++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/domain/interactor/ActiveNotificationsInteractor.kt @@ -79,11 +79,10 @@ constructor(      /** The notifications that are promoted and ongoing. Sorted by priority order. */      val promotedOngoingNotifications: Flow<List<ActiveNotificationModel>> =          if (StatusBarNotifChips.isEnabled) { -            // TODO(b/364653005): Filter all the notifications down to just the promoted ones.              // TODO(b/364653005): [ongoingCallNotification] should be incorporated into this flow              // instead of being separate.              topLevelRepresentativeNotifications -                .map { notifs -> notifs.filter { it.isPromoted } } +                .map { notifs -> notifs.filter { it.promotedContent != null } }                  .distinctUntilChanged()                  .flowOn(backgroundDispatcher)          } else { diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/domain/interactor/RenderNotificationListInteractor.kt b/packages/SystemUI/src/com/android/systemui/statusbar/notification/domain/interactor/RenderNotificationListInteractor.kt index 8bd7a1ab7a77..042389f7fde7 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/domain/interactor/RenderNotificationListInteractor.kt +++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/domain/interactor/RenderNotificationListInteractor.kt @@ -33,7 +33,6 @@ import com.android.systemui.statusbar.notification.collection.NotificationEntry  import com.android.systemui.statusbar.notification.collection.provider.SectionStyleProvider  import com.android.systemui.statusbar.notification.data.repository.ActiveNotificationListRepository  import com.android.systemui.statusbar.notification.data.repository.ActiveNotificationsStore -import com.android.systemui.statusbar.notification.promoted.PromotedNotificationsProvider  import com.android.systemui.statusbar.notification.promoted.shared.model.PromotedNotificationContentModel  import com.android.systemui.statusbar.notification.shared.ActiveNotificationEntryModel  import com.android.systemui.statusbar.notification.shared.ActiveNotificationGroupModel @@ -52,7 +51,6 @@ class RenderNotificationListInteractor  constructor(      private val repository: ActiveNotificationListRepository,      private val sectionStyleProvider: SectionStyleProvider, -    private val promotedNotificationsProvider: PromotedNotificationsProvider,  ) {      /**       * Sets the current list of rendered notification entries as displayed in the notification list. @@ -60,11 +58,7 @@ constructor(      fun setRenderedList(entries: List<ListEntry>) {          traceSection("RenderNotificationListInteractor.setRenderedList") {              repository.activeNotifications.update { existingModels -> -                buildActiveNotificationsStore( -                    existingModels, -                    sectionStyleProvider, -                    promotedNotificationsProvider, -                ) { +                buildActiveNotificationsStore(existingModels, sectionStyleProvider) {                      entries.forEach(::addListEntry)                      setRankingsMap(entries)                  } @@ -76,21 +70,13 @@ constructor(  private fun buildActiveNotificationsStore(      existingModels: ActiveNotificationsStore,      sectionStyleProvider: SectionStyleProvider, -    promotedNotificationsProvider: PromotedNotificationsProvider,      block: ActiveNotificationsStoreBuilder.() -> Unit,  ): ActiveNotificationsStore = -    ActiveNotificationsStoreBuilder( -            existingModels, -            sectionStyleProvider, -            promotedNotificationsProvider, -        ) -        .apply(block) -        .build() +    ActiveNotificationsStoreBuilder(existingModels, sectionStyleProvider).apply(block).build()  private class ActiveNotificationsStoreBuilder(      private val existingModels: ActiveNotificationsStore,      private val sectionStyleProvider: SectionStyleProvider, -    private val promotedNotificationsProvider: PromotedNotificationsProvider,  ) {      private val builder = ActiveNotificationsStore.Builder() @@ -163,7 +149,6 @@ private class ActiveNotificationsStoreBuilder(              key = key,              groupKey = sbn.groupKey,              whenTime = sbn.notification.`when`, -            isPromoted = promotedNotificationsProvider.shouldPromote(this),              isAmbient = sectionStyleProvider.isMinimized(this),              isRowDismissed = isRowDismissed,              isSilent = sectionStyleProvider.isSilent(this), @@ -190,7 +175,6 @@ private fun ActiveNotificationsStore.createOrReuse(      key: String,      groupKey: String?,      whenTime: Long, -    isPromoted: Boolean,      isAmbient: Boolean,      isRowDismissed: Boolean,      isSilent: Boolean, @@ -215,7 +199,6 @@ private fun ActiveNotificationsStore.createOrReuse(              key = key,              groupKey = groupKey,              whenTime = whenTime, -            isPromoted = isPromoted,              isAmbient = isAmbient,              isRowDismissed = isRowDismissed,              isSilent = isSilent, @@ -240,7 +223,6 @@ private fun ActiveNotificationsStore.createOrReuse(              key = key,              groupKey = groupKey,              whenTime = whenTime, -            isPromoted = isPromoted,              isAmbient = isAmbient,              isRowDismissed = isRowDismissed,              isSilent = isSilent, @@ -266,7 +248,6 @@ private fun ActiveNotificationModel.isCurrent(      key: String,      groupKey: String?,      whenTime: Long, -    isPromoted: Boolean,      isAmbient: Boolean,      isRowDismissed: Boolean,      isSilent: Boolean, @@ -290,7 +271,6 @@ private fun ActiveNotificationModel.isCurrent(          key != this.key -> false          groupKey != this.groupKey -> false          whenTime != this.whenTime -> false -        isPromoted != this.isPromoted -> false          isAmbient != this.isAmbient -> false          isRowDismissed != this.isRowDismissed -> false          isSilent != this.isSilent -> false diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/headsup/HeadsUpManagerImpl.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/headsup/HeadsUpManagerImpl.java index e13baf83e5e1..0b188afa1c35 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/headsup/HeadsUpManagerImpl.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/headsup/HeadsUpManagerImpl.java @@ -119,8 +119,7 @@ public class HeadsUpManagerImpl      protected int mAutoDismissTime;      protected DelayableExecutor mExecutor; -    @VisibleForTesting -    public final int mExtensionTime; +    private final int mExtensionTime;      // TODO(b/328393698) move the topHeadsUpRow logic to an interactor      private final MutableStateFlow<HeadsUpRowRepository> mTopHeadsUpRow = @@ -213,7 +212,8 @@ public class HeadsUpManagerImpl          mVisualStabilityProvider = visualStabilityProvider;          Resources resources = context.getResources();          mMinimumDisplayTime = NotificationThrottleHun.isEnabled() -                ? 500 : resources.getInteger(R.integer.heads_up_notification_minimum_time); +                ? resources.getInteger(R.integer.heads_up_notification_minimum_time_with_throttling) +                : resources.getInteger(R.integer.heads_up_notification_minimum_time);          mStickyForSomeTimeAutoDismissTime = resources.getInteger(                  R.integer.sticky_heads_up_notification_time);          mAutoDismissTime = resources.getInteger(R.integer.heads_up_notification_decay); diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/EnsureEnrViewsVisibility.kt b/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/EnsureEnrViewsVisibility.kt deleted file mode 100644 index aa63f4ddbd45..000000000000 --- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/EnsureEnrViewsVisibility.kt +++ /dev/null @@ -1,61 +0,0 @@ -/* - * Copyright (C) 2024 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 com.android.systemui.statusbar.notification.row - -import com.android.systemui.Flags -import com.android.systemui.flags.FlagToken -import com.android.systemui.flags.RefactorFlagUtils - -/** Helper for reading or using the ensure enr views visibility flag state. */ -@Suppress("NOTHING_TO_INLINE") -object EnsureEnrViewsVisibility { -    /** The aconfig flag name */ -    const val FLAG_NAME = Flags.FLAG_ENSURE_ENR_VIEWS_VISIBILITY - -    /** A token used for dependency declaration */ -    val token: FlagToken -        get() = FlagToken(FLAG_NAME, isEnabled) - -    /** Is the refactor enabled */ -    @JvmStatic -    inline val isEnabled -        get() = Flags.ensureEnrViewsVisibility() - -    /** -     * Called to ensure code is only run when the flag is enabled. This protects users from the -     * unintended behaviors caused by accidentally running new logic, while also crashing on an eng -     * build to ensure that the refactor author catches issues in testing. -     */ -    @JvmStatic -    inline fun isUnexpectedlyInLegacyMode() = -        RefactorFlagUtils.isUnexpectedlyInLegacyMode(isEnabled, FLAG_NAME) - -    /** -     * Called to ensure code is only run when the flag is disabled. This will throw an exception if -     * the flag is not enabled to ensure that the refactor author catches issues in testing. -     * Caution!! Using this check incorrectly will cause crashes in nextfood builds! -     */ -    @JvmStatic -    inline fun assertInNewMode() = RefactorFlagUtils.assertInNewMode(isEnabled, FLAG_NAME) - -    /** -     * Called to ensure code is only run when the flag is disabled. This will throw an exception if -     * the flag is enabled to ensure that the refactor author catches issues in testing. -     */ -    @JvmStatic -    inline fun assertInLegacyMode() = RefactorFlagUtils.assertInLegacyMode(isEnabled, FLAG_NAME) -} diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/ExpandableNotificationRow.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/ExpandableNotificationRow.java index 7ad65fc64735..c8811fd3b76d 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/ExpandableNotificationRow.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/ExpandableNotificationRow.java @@ -79,7 +79,6 @@ import com.android.internal.util.ContrastColorUtil;  import com.android.internal.widget.CachingIconView;  import com.android.internal.widget.CallLayout;  import com.android.systemui.Flags; -import com.android.systemui.flags.FeatureFlags;  import com.android.systemui.flags.RefactorFlag;  import com.android.systemui.plugins.FalsingManager;  import com.android.systemui.plugins.PluginListener; @@ -130,14 +129,12 @@ import com.android.systemui.statusbar.policy.dagger.RemoteInputViewSubcomponent;  import com.android.systemui.util.Compile;  import com.android.systemui.util.DumpUtilsKt;  import com.android.systemui.util.ListenerSet; -import com.android.systemui.wmshell.BubblesManager;  import java.io.PrintWriter;  import java.util.ArrayList;  import java.util.Arrays;  import java.util.List;  import java.util.Map; -import java.util.Optional;  import java.util.concurrent.TimeUnit;  import java.util.function.BooleanSupplier;  import java.util.function.Consumer; @@ -151,7 +148,6 @@ public class ExpandableNotificationRow extends ActivatableNotificationView          NotificationFadeAware.FadeOptimizedNotification {      private static final String TAG = "ExpandableNotifRow"; -    private static final boolean DEBUG = Compile.IS_DEBUG && Log.isLoggable(TAG, Log.DEBUG);      private static final boolean DEBUG_ONMEASURE =              Compile.IS_DEBUG && Log.isLoggable(TAG, Log.VERBOSE);      private static final int MENU_VIEW_INDEX = 0; @@ -186,12 +182,10 @@ public class ExpandableNotificationRow extends ActivatableNotificationView      private LayoutListener mLayoutListener;      private RowContentBindStage mRowContentBindStage;      private PeopleNotificationIdentifier mPeopleNotificationIdentifier; -    private Optional<BubblesManager> mBubblesManagerOptional;      private MetricsLogger mMetricsLogger;      private NotificationChildrenContainerLogger mChildrenContainerLogger;      private ColorUpdateLogger mColorUpdateLogger;      private NotificationDismissibilityProvider mDismissibilityProvider; -    private FeatureFlags mFeatureFlags;      private int mIconTransformContentShift;      private int mMaxHeadsUpHeightBeforeN;      private int mMaxHeadsUpHeightBeforeP; @@ -342,7 +336,7 @@ public class ExpandableNotificationRow extends ActivatableNotificationView       */      private boolean mIgnoreLockscreenConstraints; -    private OnClickListener mExpandClickListener = new OnClickListener() { +    private final OnClickListener mExpandClickListener = new OnClickListener() {          @Override          public void onClick(View v) {              toggleExpansionState(v, /* shouldLogExpandClickMetric = */true); @@ -431,13 +425,10 @@ public class ExpandableNotificationRow extends ActivatableNotificationView      @Nullable      private Runnable mOnIntrinsicHeightReachedRunnable; -    private float mTopRoundnessDuringLaunchAnimation; -    private float mBottomRoundnessDuringLaunchAnimation; -    private float mSmallRoundness; +    private final float mSmallRoundness; -    private ListenerSet<DismissButtonTargetVisibilityListener> -            mDismissButtonTargetVisibilityListeners -            = new ListenerSet(); +    private final ListenerSet<DismissButtonTargetVisibilityListener> +            mDismissButtonTargetVisibilityListeners = new ListenerSet<>();      public NotificationContentView[] getLayouts() {          return Arrays.copyOf(mLayouts, mLayouts.length); @@ -788,7 +779,7 @@ public class ExpandableNotificationRow extends ActivatableNotificationView          if (targetVisible != null) {              for (DismissButtonTargetVisibilityListener listener :                      mDismissButtonTargetVisibilityListeners) { -                listener.onTargetVisibilityChanged(targetVisible.booleanValue()); +                listener.onTargetVisibilityChanged(targetVisible);              }          } @@ -2024,7 +2015,6 @@ public class ExpandableNotificationRow extends ActivatableNotificationView              StatusBarStateController statusBarStateController,              PeopleNotificationIdentifier peopleNotificationIdentifier,              OnUserInteractionCallback onUserInteractionCallback, -            Optional<BubblesManager> bubblesManagerOptional,              NotificationGutsManager gutsManager,              NotificationDismissibilityProvider dismissibilityProvider,              MetricsLogger metricsLogger, @@ -2032,7 +2022,6 @@ public class ExpandableNotificationRow extends ActivatableNotificationView              ColorUpdateLogger colorUpdateLogger,              SmartReplyConstants smartReplyConstants,              SmartReplyController smartReplyController, -            FeatureFlags featureFlags,              IStatusBarService statusBarService,              UiEventLogger uiEventLogger) {          mEntry = entry; @@ -2067,13 +2056,11 @@ public class ExpandableNotificationRow extends ActivatableNotificationView              );          }          mOnUserInteractionCallback = onUserInteractionCallback; -        mBubblesManagerOptional = bubblesManagerOptional;          mNotificationGutsManager = gutsManager;          mMetricsLogger = metricsLogger;          mChildrenContainerLogger = childrenContainerLogger;          mColorUpdateLogger = colorUpdateLogger;          mDismissibilityProvider = dismissibilityProvider; -        mFeatureFlags = featureFlags;          setHapticFeedbackEnabled(!Flags.msdlFeedback());      } @@ -2470,10 +2457,6 @@ public class ExpandableNotificationRow extends ActivatableNotificationView                  : View.IMPORTANT_FOR_ACCESSIBILITY_NO_HIDE_DESCENDANTS);      } -    public CharSequence getActiveRemoteInputText() { -        return mPrivateLayout.getActiveRemoteInputText(); -    } -      /**       * Reset the translation with an animation.       */ @@ -2548,7 +2531,7 @@ public class ExpandableNotificationRow extends ActivatableNotificationView              return getTranslationX();          } -        if (mTranslateableViews != null && mTranslateableViews.size() > 0) { +        if (mTranslateableViews != null && !mTranslateableViews.isEmpty()) {              // All of the views in the list should have same translation, just use first one.              return mTranslateableViews.get(0).getTranslationX();          } @@ -2603,10 +2586,6 @@ public class ExpandableNotificationRow extends ActivatableNotificationView      }      private void updateChildrenVisibility() { -        if (EnsureEnrViewsVisibility.isEnabled()) { -            mPublicLayout.setVisibility(mShowingPublic ? View.VISIBLE : View.INVISIBLE); -        } -          boolean hideContentWhileLaunching = mExpandAnimationRunning && mGuts != null                  && mGuts.isExposed();          mPrivateLayout.setVisibility(!mShowingPublic && !mIsSummaryWithChildren @@ -2687,7 +2666,7 @@ public class ExpandableNotificationRow extends ActivatableNotificationView          int clipTopAmount = (int) MathUtils.lerp(startClipTopAmount, 0, params.getProgress());          if (mNotificationParent != null) {              float parentTranslationY = mNotificationParent.getTranslationY(); -            top -= parentTranslationY; +            top -= (int) parentTranslationY;              mNotificationParent.setTranslationZ(translationZ);              // When the expanding notification is below its parent, the parent must be clipped @@ -2714,9 +2693,6 @@ public class ExpandableNotificationRow extends ActivatableNotificationView          float absoluteCenterX = getLocationOnScreen()[0] + getWidth() / 2f - getTranslationX();          setTranslationX(params.getCenterX() - absoluteCenterX); -        final float maxRadius = getMaxRadius(); -        mTopRoundnessDuringLaunchAnimation = params.getTopCornerRadius() / maxRadius; -        mBottomRoundnessDuringLaunchAnimation = params.getBottomCornerRadius() / maxRadius;          invalidateOutline();          mBackgroundNormal.setExpandAnimationSize(params.getWidth(), actualHeight); @@ -2926,7 +2902,6 @@ public class ExpandableNotificationRow extends ActivatableNotificationView          }      } -      @Override      public int getHeightWithoutLockscreenConstraints() {          mIgnoreLockscreenConstraints = true; @@ -3166,13 +3141,7 @@ public class ExpandableNotificationRow extends ActivatableNotificationView              } else {                  mLogger.logSkipResetAllContentAlphas(getEntry());              } - -            if (!EnsureEnrViewsVisibility.isEnabled()) { -                // mPublicLayout.setVisibility moved to updateChildrenVisibility when the flag is on -                // in order to ensure public and private views are not visible -                // together at the same time. -                mPublicLayout.setVisibility(mShowingPublic ? View.VISIBLE : View.INVISIBLE); -            } +            mPublicLayout.setVisibility(mShowingPublic ? View.VISIBLE : View.INVISIBLE);              updateChildrenVisibility();          } else {              animateShowingPublic(delay, duration, mShowingPublic); @@ -3258,7 +3227,7 @@ public class ExpandableNotificationRow extends ActivatableNotificationView          notifyHeightChanged(/* needsAnimation= */ false);      } -    public void setChildrenExpanded(boolean expanded, boolean animate) { +    public void setChildrenExpanded(boolean expanded) {          mChildrenExpanded = expanded;          if (mChildrenContainer != null) {              mChildrenContainer.setChildrenExpanded(expanded); @@ -3910,10 +3879,6 @@ public class ExpandableNotificationRow extends ActivatableNotificationView          return mEntry.getSbn().getNotification().isMediaNotification();      } -    public boolean isGroupNotFullyVisible() { -        return getClipTopAmount() > 0 || getTranslationY() < 0; -    } -      public void setAboveShelf(boolean aboveShelf) {          boolean wasAboveShelf = isAboveShelf();          mAboveShelf = aboveShelf; @@ -4142,10 +4107,6 @@ public class ExpandableNotificationRow extends ActivatableNotificationView          mTargetPoint = p;      } -    public Point getTargetPoint() { -        return mTargetPoint; -    } -      /** Update the minimum roundness based on current state */      private void updateBaseRoundness() {          if (isChildInGroup()) { diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/ExpandableNotificationRowController.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/ExpandableNotificationRowController.java index a150f7f1f54e..e06280e36bc8 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/ExpandableNotificationRowController.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/ExpandableNotificationRowController.java @@ -35,7 +35,7 @@ import androidx.annotation.VisibleForTesting;  import com.android.internal.logging.MetricsLogger;  import com.android.internal.logging.UiEventLogger;  import com.android.internal.statusbar.IStatusBarService; -import com.android.systemui.flags.FeatureFlags; +import com.android.systemui.flags.FeatureFlagsClassic;  import com.android.systemui.flags.Flags;  import com.android.systemui.plugins.FalsingManager;  import com.android.systemui.plugins.PluginManager; @@ -51,6 +51,7 @@ import com.android.systemui.statusbar.notification.collection.render.GroupExpans  import com.android.systemui.statusbar.notification.collection.render.GroupMembershipManager;  import com.android.systemui.statusbar.notification.collection.render.NodeController;  import com.android.systemui.statusbar.notification.collection.render.NotifViewController; +import com.android.systemui.statusbar.notification.headsup.HeadsUpManager;  import com.android.systemui.statusbar.notification.people.PeopleNotificationIdentifier;  import com.android.systemui.statusbar.notification.row.dagger.AppName;  import com.android.systemui.statusbar.notification.row.dagger.NotificationKey; @@ -59,17 +60,14 @@ import com.android.systemui.statusbar.notification.stack.NotificationChildrenCon  import com.android.systemui.statusbar.notification.stack.NotificationListContainer;  import com.android.systemui.statusbar.notification.stack.ui.view.NotificationRowStatsLogger;  import com.android.systemui.statusbar.phone.KeyguardBypassController; -import com.android.systemui.statusbar.notification.headsup.HeadsUpManager;  import com.android.systemui.statusbar.policy.SmartReplyConstants;  import com.android.systemui.statusbar.policy.dagger.RemoteInputViewSubcomponent;  import com.android.systemui.util.time.SystemClock; -import com.android.systemui.wmshell.BubblesManager;  import com.google.android.msdl.data.model.MSDLToken;  import com.google.android.msdl.domain.MSDLPlayer;  import java.util.List; -import java.util.Optional;  import javax.inject.Inject;  import javax.inject.Named; @@ -108,10 +106,9 @@ public class ExpandableNotificationRowController implements NotifViewController      private final NotificationGutsManager mNotificationGutsManager;      private final OnUserInteractionCallback mOnUserInteractionCallback;      private final FalsingManager mFalsingManager; -    private final FeatureFlags mFeatureFlags; +    private final FeatureFlagsClassic mFeatureFlags;      private final boolean mAllowLongPress;      private final PeopleNotificationIdentifier mPeopleNotificationIdentifier; -    private final Optional<BubblesManager> mBubblesManagerOptional;      private final SmartReplyConstants mSmartReplyConstants;      private final SmartReplyController mSmartReplyController;      private final ExpandableNotificationRowDragController mDragController; @@ -271,9 +268,8 @@ public class ExpandableNotificationRowController implements NotifViewController              @Named(ALLOW_NOTIFICATION_LONG_PRESS_NAME) boolean allowLongPress,              OnUserInteractionCallback onUserInteractionCallback,              FalsingManager falsingManager, -            FeatureFlags featureFlags, +            FeatureFlagsClassic featureFlags,              PeopleNotificationIdentifier peopleNotificationIdentifier, -            Optional<BubblesManager> bubblesManagerOptional,              NotificationSettingsController settingsController,              ExpandableNotificationRowDragController dragController,              NotificationDismissibilityProvider dismissibilityProvider, @@ -303,7 +299,6 @@ public class ExpandableNotificationRowController implements NotifViewController          mAllowLongPress = allowLongPress;          mFeatureFlags = featureFlags;          mPeopleNotificationIdentifier = peopleNotificationIdentifier; -        mBubblesManagerOptional = bubblesManagerOptional;          mSettingsController = settingsController;          mDragController = dragController;          mMetricsLogger = metricsLogger; @@ -340,7 +335,6 @@ public class ExpandableNotificationRowController implements NotifViewController                  mStatusBarStateController,                  mPeopleNotificationIdentifier,                  mOnUserInteractionCallback, -                mBubblesManagerOptional,                  mNotificationGutsManager,                  mDismissibilityProvider,                  mMetricsLogger, @@ -348,7 +342,6 @@ public class ExpandableNotificationRowController implements NotifViewController                  mColorUpdateLogger,                  mSmartReplyConstants,                  mSmartReplyController, -                mFeatureFlags,                  mStatusBarService,                  mUiEventLogger          ); diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/shared/ActiveNotificationModel.kt b/packages/SystemUI/src/com/android/systemui/statusbar/notification/shared/ActiveNotificationModel.kt index a2b71551eca8..ab8be306ab5e 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/shared/ActiveNotificationModel.kt +++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/shared/ActiveNotificationModel.kt @@ -38,9 +38,6 @@ data class ActiveNotificationModel(      val groupKey: String?,      /** When this notification was posted. */      val whenTime: Long, -    // TODO(b/377566661): Make isPromoted just check if promotedContent != null. -    /** True if this notification should be promoted and false otherwise. */ -    val isPromoted: Boolean,      /** Is this entry in the ambient / minimized section (lowest priority)? */      val isAmbient: Boolean,      /** diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/NotificationChildrenContainer.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/NotificationChildrenContainer.java index cfca8307e703..c8e18a8fe5ca 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/NotificationChildrenContainer.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/NotificationChildrenContainer.java @@ -499,7 +499,7 @@ public class NotificationChildrenContainer extends ViewGroup          mGroupHeaderWrapper.setExpanded(mChildrenExpanded);          mGroupHeaderWrapper.onContentUpdated(mContainingNotification); - +        resetHeaderVisibilityIfNeeded(mGroupHeader, calculateDesiredHeader());          updateHeaderVisibility(false /* animate */);          updateChildrenAppearance(); @@ -535,6 +535,7 @@ public class NotificationChildrenContainer extends ViewGroup          invalidate();          mMinimizedGroupHeaderWrapper.onContentUpdated(mContainingNotification); +        resetHeaderVisibilityIfNeeded(mMinimizedGroupHeader, calculateDesiredHeader());          updateHeaderVisibility(false /* animate */);          updateChildrenAppearance();      } @@ -1127,7 +1128,7 @@ public class NotificationChildrenContainer extends ViewGroup          final int count = mAttachedChildren.size();          for (int childIdx = 0; childIdx < count; childIdx++) {              ExpandableNotificationRow child = mAttachedChildren.get(childIdx); -            child.setChildrenExpanded(childrenExpanded, false); +            child.setChildrenExpanded(childrenExpanded);          }          updateHeaderTouchability();      } diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/NotificationStackScrollLayout.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/NotificationStackScrollLayout.java index c7b3fd7842e2..b9e38abf8ab2 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/NotificationStackScrollLayout.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/NotificationStackScrollLayout.java @@ -99,7 +99,6 @@ import com.android.systemui.statusbar.NotificationShelf;  import com.android.systemui.statusbar.StatusBarState;  import com.android.systemui.statusbar.notification.ColorUpdateLogger;  import com.android.systemui.statusbar.notification.FakeShadowView; -import com.android.systemui.statusbar.notification.headsup.HeadsUpTouchHelper;  import com.android.systemui.statusbar.notification.LaunchAnimationParameters;  import com.android.systemui.statusbar.notification.NotificationTransitionAnimatorController;  import com.android.systemui.statusbar.notification.NotificationUtils; @@ -110,6 +109,8 @@ import com.android.systemui.statusbar.notification.emptyshade.shared.ModesEmptyS  import com.android.systemui.statusbar.notification.emptyshade.ui.view.EmptyShadeView;  import com.android.systemui.statusbar.notification.footer.shared.FooterViewRefactor;  import com.android.systemui.statusbar.notification.footer.ui.view.FooterView; +import com.android.systemui.statusbar.notification.headsup.HeadsUpTouchHelper; +import com.android.systemui.statusbar.notification.headsup.HeadsUpUtil;  import com.android.systemui.statusbar.notification.logging.NotificationLogger;  import com.android.systemui.statusbar.notification.row.ActivatableNotificationView;  import com.android.systemui.statusbar.notification.row.ExpandableNotificationRow; @@ -126,7 +127,6 @@ import com.android.systemui.statusbar.notification.stack.shared.model.ShadeScrol  import com.android.systemui.statusbar.notification.stack.ui.view.NotificationScrollView;  import com.android.systemui.statusbar.phone.HeadsUpAppearanceController;  import com.android.systemui.statusbar.phone.ScreenOffAnimationController; -import com.android.systemui.statusbar.notification.headsup.HeadsUpUtil;  import com.android.systemui.statusbar.policy.ScrollAdapter;  import com.android.systemui.statusbar.policy.SplitShadeStateController;  import com.android.systemui.util.Assert; @@ -6860,7 +6860,7 @@ public class NotificationStackScrollLayout              mExpandedGroupView = changedRow;              mNeedsAnimation = true;          } -        changedRow.setChildrenExpanded(expanded, animated); +        changedRow.setChildrenExpanded(expanded);          onChildHeightChanged(changedRow, false /* needsAnimation */);          runAfterAnimationFinished(new Runnable() { diff --git a/packages/SystemUI/tests/src/com/android/systemui/wmshell/BubblesTest.java b/packages/SystemUI/tests/src/com/android/systemui/wmshell/BubblesTest.java index df561ab58a78..192d66c44aa0 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/wmshell/BubblesTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/wmshell/BubblesTest.java @@ -113,7 +113,7 @@ import com.android.systemui.biometrics.AuthController;  import com.android.systemui.colorextraction.SysuiColorExtractor;  import com.android.systemui.deviceentry.domain.interactor.DeviceEntryUdfpsInteractor;  import com.android.systemui.dump.DumpManager; -import com.android.systemui.flags.FakeFeatureFlags; +import com.android.systemui.flags.FakeFeatureFlagsClassic;  import com.android.systemui.flags.SceneContainerFlagParameterizationKt;  import com.android.systemui.keyguard.KeyguardViewMediator;  import com.android.systemui.kosmos.KosmosJavaAdapter; @@ -368,7 +368,7 @@ public class BubblesTest extends SysuiTestCase {      private TestableLooper mTestableLooper;      private final FakeDisplayTracker mDisplayTracker = new FakeDisplayTracker(mContext); -    private final FakeFeatureFlags mFeatureFlags = new FakeFeatureFlags(); +    private final FakeFeatureFlagsClassic mFeatureFlags = new FakeFeatureFlagsClassic();      private UserHandle mUser0; diff --git a/packages/SystemUI/tests/utils/src/com/android/systemui/keyguard/domain/interactor/KeyguardDismissInteractorKosmos.kt b/packages/SystemUI/tests/utils/src/com/android/systemui/keyguard/domain/interactor/KeyguardDismissInteractorKosmos.kt index ace11573c7c6..339210c07437 100644 --- a/packages/SystemUI/tests/utils/src/com/android/systemui/keyguard/domain/interactor/KeyguardDismissInteractorKosmos.kt +++ b/packages/SystemUI/tests/utils/src/com/android/systemui/keyguard/domain/interactor/KeyguardDismissInteractorKosmos.kt @@ -38,8 +38,8 @@ val Kosmos.keyguardDismissInteractor by              primaryBouncerInteractor = primaryBouncerInteractor,              selectedUserInteractor = selectedUserInteractor,              dismissCallbackRegistry = dismissCallbackRegistry, -            trustRepository = trustRepository,              alternateBouncerInteractor = alternateBouncerInteractor, +            trustRepository = trustRepository,              powerInteractor = powerInteractor,          )      } diff --git a/packages/SystemUI/tests/utils/src/com/android/systemui/statusbar/notification/data/model/ActiveNotificationModelBuilder.kt b/packages/SystemUI/tests/utils/src/com/android/systemui/statusbar/notification/data/model/ActiveNotificationModelBuilder.kt index 2ec801620212..c6ae15df6859 100644 --- a/packages/SystemUI/tests/utils/src/com/android/systemui/statusbar/notification/data/model/ActiveNotificationModelBuilder.kt +++ b/packages/SystemUI/tests/utils/src/com/android/systemui/statusbar/notification/data/model/ActiveNotificationModelBuilder.kt @@ -29,7 +29,6 @@ fun activeNotificationModel(      key: String,      groupKey: String? = null,      whenTime: Long = 0L, -    isPromoted: Boolean = false,      isAmbient: Boolean = false,      isRowDismissed: Boolean = false,      isSilent: Boolean = false, @@ -53,7 +52,6 @@ fun activeNotificationModel(          key = key,          groupKey = groupKey,          whenTime = whenTime, -        isPromoted = isPromoted,          isAmbient = isAmbient,          isRowDismissed = isRowDismissed,          isSilent = isSilent, diff --git a/packages/SystemUI/tests/utils/src/com/android/systemui/statusbar/notification/domain/interactor/RenderNotificationListInteractorKosmos.kt b/packages/SystemUI/tests/utils/src/com/android/systemui/statusbar/notification/domain/interactor/RenderNotificationListInteractorKosmos.kt index 067193fb7aa9..f7acae9846df 100644 --- a/packages/SystemUI/tests/utils/src/com/android/systemui/statusbar/notification/domain/interactor/RenderNotificationListInteractorKosmos.kt +++ b/packages/SystemUI/tests/utils/src/com/android/systemui/statusbar/notification/domain/interactor/RenderNotificationListInteractorKosmos.kt @@ -19,13 +19,8 @@ package com.android.systemui.statusbar.notification.domain.interactor  import com.android.systemui.kosmos.Kosmos  import com.android.systemui.statusbar.notification.collection.provider.sectionStyleProvider  import com.android.systemui.statusbar.notification.data.repository.activeNotificationListRepository -import com.android.systemui.statusbar.notification.promoted.promotedNotificationsProvider  val Kosmos.renderNotificationListInteractor by      Kosmos.Fixture { -        RenderNotificationListInteractor( -            activeNotificationListRepository, -            sectionStyleProvider, -            promotedNotificationsProvider, -        ) +        RenderNotificationListInteractor(activeNotificationListRepository, sectionStyleProvider)      } diff --git a/packages/SystemUI/tests/utils/src/com/android/systemui/statusbar/notification/row/ExpandableNotificationRowBuilder.kt b/packages/SystemUI/tests/utils/src/com/android/systemui/statusbar/notification/row/ExpandableNotificationRowBuilder.kt index 2d3f68faf4b7..7126933154df 100644 --- a/packages/SystemUI/tests/utils/src/com/android/systemui/statusbar/notification/row/ExpandableNotificationRowBuilder.kt +++ b/packages/SystemUI/tests/utils/src/com/android/systemui/statusbar/notification/row/ExpandableNotificationRowBuilder.kt @@ -34,7 +34,7 @@ import com.android.systemui.TestableDependency  import com.android.systemui.classifier.FalsingManagerFake  import com.android.systemui.dump.DumpManager  import com.android.systemui.flags.FakeFeatureFlagsClassic -import com.android.systemui.flags.FeatureFlags +import com.android.systemui.flags.FeatureFlagsClassic  import com.android.systemui.flags.Flags  import com.android.systemui.log.logcatLogBuffer  import com.android.systemui.media.controls.util.MediaFeatureFlag @@ -92,8 +92,6 @@ import com.android.systemui.util.DeviceConfigProxyFake  import com.android.systemui.util.concurrency.FakeExecutor  import com.android.systemui.util.mockito.whenever  import com.android.systemui.util.time.FakeSystemClock -import com.android.systemui.wmshell.BubblesManager -import java.util.Optional  import java.util.concurrent.CountDownLatch  import java.util.concurrent.Executor  import java.util.concurrent.TimeUnit @@ -106,7 +104,7 @@ import org.mockito.Mockito  class ExpandableNotificationRowBuilder(      private val context: Context,      dependency: TestableDependency, -    private val featureFlags: FakeFeatureFlagsClassic = FakeFeatureFlagsClassic(), +    featureFlags: FakeFeatureFlagsClassic = FakeFeatureFlagsClassic(),  ) {      private val mMockLogger: ExpandableNotificationRowLogger @@ -137,7 +135,7 @@ class ExpandableNotificationRowBuilder(          featureFlags.setDefault(Flags.ENABLE_NOTIFICATIONS_SIMULATE_SLOW_MEASURE)          featureFlags.setDefault(Flags.BIGPICTURE_NOTIFICATION_LAZY_LOADING) -        dependency.injectTestDependency(FeatureFlags::class.java, featureFlags) +        dependency.injectTestDependency(FeatureFlagsClassic::class.java, featureFlags)          dependency.injectMockDependency(NotificationMediaManager::class.java)          dependency.injectMockDependency(NotificationShadeWindowController::class.java)          dependency.injectMockDependency(MediaOutputDialogManager::class.java) @@ -299,7 +297,7 @@ class ExpandableNotificationRowBuilder(      }      private fun getNotifRemoteViewsFactoryContainer( -        featureFlags: FeatureFlags +        featureFlags: FeatureFlagsClassic      ): NotifRemoteViewsFactoryContainer {          return NotifRemoteViewsFactoryContainerImpl(              featureFlags, @@ -380,7 +378,6 @@ class ExpandableNotificationRowBuilder(              mStatusBarStateController,              mPeopleNotificationIdentifier,              mOnUserInteractionCallback, -            Optional.of(Mockito.mock(BubblesManager::class.java, STUB_ONLY)),              Mockito.mock(NotificationGutsManager::class.java, STUB_ONLY),              mDismissibilityProvider,              Mockito.mock(MetricsLogger::class.java, STUB_ONLY), @@ -388,11 +385,10 @@ class ExpandableNotificationRowBuilder(              Mockito.mock(ColorUpdateLogger::class.java, STUB_ONLY),              mSmartReplyConstants,              mSmartReplyController, -            featureFlags,              Mockito.mock(IStatusBarService::class.java, STUB_ONLY),              Mockito.mock(UiEventLogger::class.java, STUB_ONLY),          ) -        row.setAboveShelfChangedListener { aboveShelf: Boolean -> } +        row.setAboveShelfChangedListener {}          mBindStage.getStageParams(entry).requireContentViews(extraInflationFlags)          inflateAndWait(entry)          return row @@ -410,7 +406,7 @@ class ExpandableNotificationRowBuilder(          private const val PKG = "com.android.systemui"          private const val UID = 1000          private val USER_HANDLE = UserHandle.of(ActivityManager.getCurrentUser()) -        private val INFLATION_FLAGS = +        private const val INFLATION_FLAGS =              FLAG_CONTENT_VIEW_CONTRACTED or FLAG_CONTENT_VIEW_EXPANDED or FLAG_CONTENT_VIEW_HEADS_UP          private const val IS_CONVERSATION_FLAG = "test.isConversation" diff --git a/packages/Vcn/service-b/src/com/android/server/vcn/VcnGatewayConnection.java b/packages/Vcn/service-b/src/com/android/server/vcn/VcnGatewayConnection.java index f024b5f05bf6..e50fc3a6e8b9 100644 --- a/packages/Vcn/service-b/src/com/android/server/vcn/VcnGatewayConnection.java +++ b/packages/Vcn/service-b/src/com/android/server/vcn/VcnGatewayConnection.java @@ -1228,10 +1228,7 @@ public class VcnGatewayConnection extends StateMachine {      @VisibleForTesting(visibility = Visibility.PRIVATE)      void setSafeModeAlarm() { -        final boolean isFlagSafeModeConfigEnabled = mVcnContext.getFeatureFlags().safeModeConfig(); -        logVdbg("isFlagSafeModeConfigEnabled " + isFlagSafeModeConfigEnabled); - -        if (isFlagSafeModeConfigEnabled && !mConnectionConfig.isSafeModeEnabled()) { +        if (!mConnectionConfig.isSafeModeEnabled()) {              logVdbg("setSafeModeAlarm: safe mode disabled");              return;          } diff --git a/services/accessibility/java/com/android/server/accessibility/AccessibilityManagerService.java b/services/accessibility/java/com/android/server/accessibility/AccessibilityManagerService.java index dbfafbde4898..5c1ad74fac93 100644 --- a/services/accessibility/java/com/android/server/accessibility/AccessibilityManagerService.java +++ b/services/accessibility/java/com/android/server/accessibility/AccessibilityManagerService.java @@ -1070,8 +1070,11 @@ public class AccessibilityManagerService extends IAccessibilityManager.Stub                                          newValue, restoredFromSdk);                              }                          } +                        // Currently in SUW, the user can't see gesture shortcut option as the +                        // navigation system is set to button navigation. We'll rely on the +                        // SettingsBackupAgent to restore the settings since we don't +                        // need to merge an empty gesture target.                          case Settings.Secure.ACCESSIBILITY_BUTTON_TARGETS, -                             Settings.Secure.ACCESSIBILITY_GESTURE_TARGETS,                               Settings.Secure.ACCESSIBILITY_QS_TARGETS,                               Settings.Secure.ACCESSIBILITY_SHORTCUT_TARGET_SERVICE ->                                  restoreShortcutTargets(newValue, diff --git a/services/appwidget/java/com/android/server/appwidget/AppWidgetServiceImpl.java b/services/appwidget/java/com/android/server/appwidget/AppWidgetServiceImpl.java index 762665c00e05..cffdfbd36532 100644 --- a/services/appwidget/java/com/android/server/appwidget/AppWidgetServiceImpl.java +++ b/services/appwidget/java/com/android/server/appwidget/AppWidgetServiceImpl.java @@ -330,6 +330,8 @@ class AppWidgetServiceImpl extends IAppWidgetService.Stub implements WidgetBacku      // Handler to the background thread that saves states to disk.      private Handler mSaveStateHandler; + +    private Handler mAlarmHandler;      // Handler to the background thread that saves generated previews to disk. All operations that      // modify saved previews must be run on this Handler.      private Handler mSavePreviewsHandler; @@ -373,6 +375,7 @@ class AppWidgetServiceImpl extends IAppWidgetService.Stub implements WidgetBacku          if (removeAppWidgetServiceIoFromCriticalPath()) {              mSaveStateHandler = new Handler(BackgroundThread.get().getLooper(),                      this::handleSaveMessage); +            mAlarmHandler = new Handler(BackgroundThread.get().getLooper());          } else {              mSaveStateHandler = BackgroundThread.getHandler();          } @@ -2739,10 +2742,15 @@ class AppWidgetServiceImpl extends IAppWidgetService.Stub implements WidgetBacku          }          if (provider.broadcast != null) {              final PendingIntent broadcast = provider.broadcast; -            mSaveStateHandler.post(() -> { -                    mAlarmManager.cancel(broadcast); -                    broadcast.cancel(); -            }); +            Runnable cancelRunnable = () -> { +                mAlarmManager.cancel(broadcast); +                broadcast.cancel(); +            }; +            if (removeAppWidgetServiceIoFromCriticalPath()) { +                mAlarmHandler.post(cancelRunnable); +            } else { +                mSaveStateHandler.post(cancelRunnable); +            }              provider.broadcast = null;          }      } @@ -3422,10 +3430,16 @@ class AppWidgetServiceImpl extends IAppWidgetService.Stub implements WidgetBacku                  // invariant and established the PendingIntent safely.                  final long period = Math.max(info.updatePeriodMillis, MIN_UPDATE_PERIOD);                  final PendingIntent broadcast = provider.broadcast; -                mSaveStateHandler.post(() -> + +                Runnable repeatRunnable = () -> {                      mAlarmManager.setInexactRepeating(AlarmManager.ELAPSED_REALTIME_WAKEUP, -                            SystemClock.elapsedRealtime() + period, period, broadcast) -                ); +                            SystemClock.elapsedRealtime() + period, period, broadcast); +                }; +                if (removeAppWidgetServiceIoFromCriticalPath()) { +                    mAlarmHandler.post(repeatRunnable); +                } else { +                    mSaveStateHandler.post(repeatRunnable); +                }              }          }      } diff --git a/services/backup/java/com/android/server/backup/UserBackupManagerService.java b/services/backup/java/com/android/server/backup/UserBackupManagerService.java index a90b693c5a1d..3025e2eaede0 100644 --- a/services/backup/java/com/android/server/backup/UserBackupManagerService.java +++ b/services/backup/java/com/android/server/backup/UserBackupManagerService.java @@ -314,8 +314,6 @@ public class UserBackupManagerService {      private static final String SERIAL_ID_FILE = "serial_id"; -    private static final String SKIP_USER_FACING_PACKAGES = "backup_skip_user_facing_packages"; -      private final @UserIdInt int mUserId;      private final BackupAgentTimeoutParameters mAgentTimeoutParameters;      private final TransportManager mTransportManager; @@ -3503,40 +3501,6 @@ public class UserBackupManagerService {          }      } -    /** -     * We want to skip backup/restore of certain packages if 'backup_skip_user_facing_packages' is -     * set to true in secure settings. See b/153940088 for details. -     * -     * TODO(b/154822946): Remove this logic in the next release. -     */ -    public List<PackageInfo> filterUserFacingPackages(List<PackageInfo> packages) { -        if (!shouldSkipUserFacingData()) { -            return packages; -        } - -        List<PackageInfo> filteredPackages = new ArrayList<>(packages.size()); -        for (PackageInfo packageInfo : packages)  { -            if (!shouldSkipPackage(packageInfo.packageName)) { -                filteredPackages.add(packageInfo); -            } else { -                Slog.i(TAG, "Will skip backup/restore for " + packageInfo.packageName); -            } -        } - -        return filteredPackages; -    } - -    @VisibleForTesting -    public boolean shouldSkipUserFacingData() { -        return Settings.Secure.getInt(mContext.getContentResolver(), SKIP_USER_FACING_PACKAGES, -                /* def */ 0) != 0; -    } - -    @VisibleForTesting -    public boolean shouldSkipPackage(String packageName) { -        return WALLPAPER_PACKAGE.equals(packageName); -    } -      private void updateStateForTransport(String newTransportName) {          // Publish the name change          Settings.Secure.putStringForUser(mContext.getContentResolver(), diff --git a/services/backup/java/com/android/server/backup/fullbackup/PerformFullTransportBackupTask.java b/services/backup/java/com/android/server/backup/fullbackup/PerformFullTransportBackupTask.java index 799494831f19..990c9416e38d 100644 --- a/services/backup/java/com/android/server/backup/fullbackup/PerformFullTransportBackupTask.java +++ b/services/backup/java/com/android/server/backup/fullbackup/PerformFullTransportBackupTask.java @@ -272,8 +272,6 @@ public class PerformFullTransportBackupTask extends FullBackupTask implements Ba              }          } -        mPackages = backupManagerService.filterUserFacingPackages(mPackages); -          Set<String> packageNames = Sets.newHashSet();          for (PackageInfo pkgInfo : mPackages) {              packageNames.add(pkgInfo.packageName); diff --git a/services/backup/java/com/android/server/backup/restore/PerformUnifiedRestoreTask.java b/services/backup/java/com/android/server/backup/restore/PerformUnifiedRestoreTask.java index dad84c86deef..ec9d340abe45 100644 --- a/services/backup/java/com/android/server/backup/restore/PerformUnifiedRestoreTask.java +++ b/services/backup/java/com/android/server/backup/restore/PerformUnifiedRestoreTask.java @@ -315,8 +315,6 @@ public class PerformUnifiedRestoreTask implements BackupRestoreTask {              }          } -        mAcceptSet = backupManagerService.filterUserFacingPackages(mAcceptSet); -          if (MORE_DEBUG) {              Slog.v(TAG, "Restore; accept set size is " + mAcceptSet.size());              for (PackageInfo info : mAcceptSet) { diff --git a/services/core/java/com/android/server/am/ActivityManagerService.java b/services/core/java/com/android/server/am/ActivityManagerService.java index f41aaeebc49f..ebe7fa5e5a3f 100644 --- a/services/core/java/com/android/server/am/ActivityManagerService.java +++ b/services/core/java/com/android/server/am/ActivityManagerService.java @@ -19334,7 +19334,8 @@ public class ActivityManagerService extends IActivityManager.Stub          if (!preventIntentRedirect()) return;          if (intent == null) return; -        if ((intent.getExtendedFlags() & Intent.EXTENDED_FLAG_NESTED_INTENT_KEYS_COLLECTED) == 0) { +        if (((intent.getExtendedFlags() & Intent.EXTENDED_FLAG_NESTED_INTENT_KEYS_COLLECTED) == 0) +                && intent.getExtras() != null && intent.getExtras().hasIntent()) {              Slog.wtf(TAG,                      "[IntentRedirect] The intent does not have its nested keys collected as a "                              + "preparation for creating intent creator tokens. Intent: " diff --git a/services/core/java/com/android/server/am/BatteryStatsService.java b/services/core/java/com/android/server/am/BatteryStatsService.java index 400ebfde1741..c27126a01a32 100644 --- a/services/core/java/com/android/server/am/BatteryStatsService.java +++ b/services/core/java/com/android/server/am/BatteryStatsService.java @@ -1251,12 +1251,10 @@ public final class BatteryStatsService extends IBatteryStats.Stub          }          private static float clampPowerMah(double powerMah, String consumer) { -            float resultPowerMah = 0; -            if (powerMah <= Float.MAX_VALUE && powerMah >= Float.MIN_VALUE) { -                resultPowerMah = (float) powerMah; -            } else { -                // Handle overflow appropriately -                Slog.wtfStack(TAG, consumer + " reported powerMah float overflow: " + powerMah); +            float resultPowerMah = Double.valueOf(powerMah).floatValue(); +            if (Float.isInfinite(resultPowerMah)) { +                resultPowerMah = 0; +                Slog.d(TAG, consumer + " reported powerMah float overflow : " + powerMah);              }              return resultPowerMah;          } @@ -1361,11 +1359,10 @@ public final class BatteryStatsService extends IBatteryStats.Stub              final String powerComponentName = batteryConsumer.getPowerComponentName(componentId);              final double consumedPowerMah = batteryConsumer.getConsumedPower(key); -            float powerMah = +            final float powerMah =                      clampPowerMah( -                            consumedPowerMah, "uidConsumer-" + uid + "-" + powerComponentName); +                            consumedPowerMah, "uid-" + uid + "-" + powerComponentName);              final long powerComponentDurationMillis = batteryConsumer.getUsageDurationMillis(key); -              if (powerMah == 0 && powerComponentDurationMillis == 0) {                  return true;              } diff --git a/services/core/java/com/android/server/input/InputDataStore.java b/services/core/java/com/android/server/input/InputDataStore.java new file mode 100644 index 000000000000..e8f21fe8fb74 --- /dev/null +++ b/services/core/java/com/android/server/input/InputDataStore.java @@ -0,0 +1,344 @@ +/* + * Copyright 2024 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 com.android.server.input; + +import android.hardware.input.AppLaunchData; +import android.hardware.input.InputGestureData; +import android.os.Environment; +import android.util.AtomicFile; +import android.util.Slog; +import android.util.SparseArray; +import android.util.Xml; + +import com.android.internal.annotations.VisibleForTesting; +import com.android.modules.utils.TypedXmlPullParser; +import com.android.modules.utils.TypedXmlSerializer; + +import org.xmlpull.v1.XmlPullParser; +import org.xmlpull.v1.XmlPullParserException; + +import java.io.File; +import java.io.FileNotFoundException; +import java.io.FileOutputStream; +import java.io.IOException; +import java.io.InputStream; +import java.io.OutputStream; +import java.nio.charset.StandardCharsets; +import java.util.ArrayList; +import java.util.List; + +/** + * Manages persistent state recorded by the input manager service as a set of XML files. + * Caller must acquire lock on the data store before accessing it. + */ +public final class InputDataStore { +    private static final String TAG = "InputDataStore"; + +    private static final String INPUT_MANAGER_DIRECTORY = "input"; + +    private static final String TAG_ROOT = "root"; + +    private static final String TAG_INPUT_GESTURE_LIST = "input_gesture_list"; +    private static final String TAG_INPUT_GESTURE = "input_gesture"; +    private static final String TAG_KEY_TRIGGER = "key_trigger"; +    private static final String TAG_TOUCHPAD_TRIGGER = "touchpad_trigger"; +    private static final String TAG_APP_LAUNCH_DATA = "app_launch_data"; + +    private static final String ATTR_KEY_TRIGGER_KEYCODE = "keycode"; +    private static final String ATTR_KEY_TRIGGER_MODIFIER_STATE = "modifiers"; +    private static final String ATTR_KEY_GESTURE_TYPE = "key_gesture_type"; +    private static final String ATTR_TOUCHPAD_TRIGGER_GESTURE_TYPE = "touchpad_gesture_type"; +    private static final String ATTR_APP_LAUNCH_DATA_CATEGORY = "category"; +    private static final String ATTR_APP_LAUNCH_DATA_ROLE = "role"; +    private static final String ATTR_APP_LAUNCH_DATA_PACKAGE_NAME = "package_name"; +    private static final String ATTR_APP_LAUNCH_DATA_CLASS_NAME = "class_name"; + +    private final FileInjector mInputGestureFileInjector; + +    public InputDataStore() { +        this(new FileInjector("input_gestures.xml")); +    } + +    public InputDataStore(final FileInjector inputGestureFileInjector) { +        mInputGestureFileInjector = inputGestureFileInjector; +    } + +    /** +     * Reads from the local disk storage the list of customized input gestures. +     * +     * @param userId The user id to fetch the gestures for. +     * @return List of {@link InputGestureData} which the user previously customized. +     */ +    public List<InputGestureData> loadInputGestures(int userId) { +        List<InputGestureData> inputGestureDataList; +        try { +            final InputStream inputStream = mInputGestureFileInjector.openRead(userId); +            inputGestureDataList = readInputGesturesXml(inputStream, false); +            inputStream.close(); +        } catch (IOException exception) { +            // In case we are unable to read from the file on disk or another IO operation error, +            // fail gracefully. +            Slog.e(TAG, "Failed to read from " + mInputGestureFileInjector.getAtomicFileForUserId( +                    userId), exception); +            return List.of(); +        } catch (Exception exception) { +            // In the case of any other exception, we want it to bubble up as this would be due +            // to malformed trusted XML data. +            throw new RuntimeException( +                    "Failed to read from " + mInputGestureFileInjector.getAtomicFileForUserId( +                            userId), exception); +        } +        return inputGestureDataList; +    } + +    /** +     * Writes to the local disk storage the list of customized input gestures provided as a param. +     * +     * @param userId               The user id to store the {@link InputGestureData} list under. +     * @param inputGestureDataList The list of custom input gestures for the given {@code userId}. +     */ +    public void saveInputGestures(int userId, List<InputGestureData> inputGestureDataList) { +        FileOutputStream outputStream = null; +        try { +            outputStream = mInputGestureFileInjector.startWrite(userId); +            writeInputGestureXml(outputStream, false, inputGestureDataList); +            mInputGestureFileInjector.finishWrite(userId, outputStream, true); +        } catch (IOException e) { +            Slog.e(TAG, +                    "Failed to write to file " + mInputGestureFileInjector.getAtomicFileForUserId( +                            userId), e); +            mInputGestureFileInjector.finishWrite(userId, outputStream, false); +        } +    } + +    @VisibleForTesting +    List<InputGestureData> readInputGesturesXml(InputStream stream, boolean utf8Encoded) +            throws XmlPullParserException, IOException { +        List<InputGestureData> inputGestureDataList = new ArrayList<>(); +        TypedXmlPullParser parser; +        if (utf8Encoded) { +            parser = Xml.newFastPullParser(); +            parser.setInput(stream, StandardCharsets.UTF_8.name()); +        } else { +            parser = Xml.resolvePullParser(stream); +        } +        int type; +        while ((type = parser.next()) != XmlPullParser.END_DOCUMENT) { +            if (type != XmlPullParser.START_TAG) { +                continue; +            } +            final String tag = parser.getName(); +            if (TAG_ROOT.equals(tag)) { +                continue; +            } + +            if (TAG_INPUT_GESTURE_LIST.equals(tag)) { +                inputGestureDataList.addAll(readInputGestureListFromXml(parser)); +            } +        } +        return inputGestureDataList; +    } + +    private InputGestureData readInputGestureFromXml(TypedXmlPullParser parser) +            throws XmlPullParserException, IOException, IllegalArgumentException { +        InputGestureData.Builder builder = new InputGestureData.Builder(); +        builder.setKeyGestureType(parser.getAttributeInt(null, ATTR_KEY_GESTURE_TYPE)); +        int outerDepth = parser.getDepth(); +        int type; +        while ((type = parser.next()) != XmlPullParser.END_DOCUMENT) { +            // If the parser has left the initial scope when it was called, break out. +            if (outerDepth > parser.getDepth()) { +                throw new RuntimeException( +                        "Parser has left the initial scope of the tag that was being parsed on " +                                + "line number: " +                                + parser.getLineNumber()); +            } + +            // If the parser has reached the closing tag for the Input Gesture, break out. +            if (type == XmlPullParser.END_TAG && parser.getName().equals(TAG_INPUT_GESTURE)) { +                break; +            } + +            if (type != XmlPullParser.START_TAG) { +                continue; +            } + +            final String tag = parser.getName(); +            if (TAG_KEY_TRIGGER.equals(tag)) { +                builder.setTrigger(InputGestureData.createKeyTrigger( +                        parser.getAttributeInt(null, ATTR_KEY_TRIGGER_KEYCODE), +                        parser.getAttributeInt(null, ATTR_KEY_TRIGGER_MODIFIER_STATE))); +            } else if (TAG_TOUCHPAD_TRIGGER.equals(tag)) { +                builder.setTrigger(InputGestureData.createTouchpadTrigger( +                        parser.getAttributeInt(null, ATTR_TOUCHPAD_TRIGGER_GESTURE_TYPE))); +            } else if (TAG_APP_LAUNCH_DATA.equals(tag)) { +                final String roleValue = parser.getAttributeValue(null, ATTR_APP_LAUNCH_DATA_ROLE); +                final String categoryValue = parser.getAttributeValue(null, +                        ATTR_APP_LAUNCH_DATA_CATEGORY); +                final String classNameValue = parser.getAttributeValue(null, +                        ATTR_APP_LAUNCH_DATA_CLASS_NAME); +                final String packageNameValue = parser.getAttributeValue(null, +                        ATTR_APP_LAUNCH_DATA_PACKAGE_NAME); +                final AppLaunchData appLaunchData = AppLaunchData.createLaunchData(categoryValue, +                        roleValue, packageNameValue, classNameValue); +                if (appLaunchData != null) { +                    builder.setAppLaunchData(appLaunchData); +                } +            } +        } +        return builder.build(); +    } + +    private List<InputGestureData> readInputGestureListFromXml(TypedXmlPullParser parser) throws +            XmlPullParserException, IOException { +        List<InputGestureData> inputGestureDataList = new ArrayList<>(); +        final int outerDepth = parser.getDepth(); +        int type; +        while ((type = parser.next()) != XmlPullParser.END_DOCUMENT) { +            // If the parser has left the initial scope when it was called, break out. +            if (outerDepth > parser.getDepth()) { +                throw new RuntimeException( +                        "Parser has left the initial scope of the tag that was being parsed on " +                                + "line number: " +                                + parser.getLineNumber()); +            } + +            // If the parser has reached the closing tag for the Input Gesture List, break out. +            if (type == XmlPullParser.END_TAG && parser.getName().equals(TAG_INPUT_GESTURE_LIST)) { +                break; +            } + +            if (type != XmlPullParser.START_TAG) { +                continue; +            } + +            final String tag = parser.getName(); +            if (TAG_INPUT_GESTURE.equals(tag)) { +                try { +                    inputGestureDataList.add(readInputGestureFromXml(parser)); +                } catch (IllegalArgumentException exception) { +                    Slog.w(TAG, "Invalid parameters for input gesture data: ", exception); +                    continue; +                } +            } +        } +        return inputGestureDataList; +    } + +    @VisibleForTesting +    void writeInputGestureXml(OutputStream stream, boolean utf8Encoded, +            List<InputGestureData> inputGestureDataList) throws IOException { +        final TypedXmlSerializer serializer; +        if (utf8Encoded) { +            serializer = Xml.newFastSerializer(); +            serializer.setOutput(stream, StandardCharsets.UTF_8.name()); +        } else { +            serializer = Xml.resolveSerializer(stream); +        } + +        serializer.startDocument(null, true); +        serializer.startTag(null, TAG_ROOT); +        writeInputGestureListToXml(serializer, inputGestureDataList); +        serializer.endTag(null, TAG_ROOT); +        serializer.endDocument(); +    } + +    private void writeInputGestureToXml(TypedXmlSerializer serializer, +            InputGestureData inputGestureData) throws IOException { +        serializer.startTag(null, TAG_INPUT_GESTURE); +        serializer.attributeInt(null, ATTR_KEY_GESTURE_TYPE, +                inputGestureData.getAction().keyGestureType()); + +        final InputGestureData.Trigger trigger = inputGestureData.getTrigger(); +        if (trigger instanceof InputGestureData.KeyTrigger keyTrigger) { +            serializer.startTag(null, TAG_KEY_TRIGGER); +            serializer.attributeInt(null, ATTR_KEY_TRIGGER_KEYCODE, keyTrigger.getKeycode()); +            serializer.attributeInt(null, ATTR_KEY_TRIGGER_MODIFIER_STATE, +                    keyTrigger.getModifierState()); +            serializer.endTag(null, TAG_KEY_TRIGGER); +        } else if (trigger instanceof InputGestureData.TouchpadTrigger touchpadTrigger) { +            serializer.startTag(null, TAG_TOUCHPAD_TRIGGER); +            serializer.attributeInt(null, ATTR_TOUCHPAD_TRIGGER_GESTURE_TYPE, +                    touchpadTrigger.getTouchpadGestureType()); +            serializer.endTag(null, TAG_TOUCHPAD_TRIGGER); +        } + +        if (inputGestureData.getAction().appLaunchData() != null) { +            serializer.startTag(null, TAG_APP_LAUNCH_DATA); +            final AppLaunchData appLaunchData = inputGestureData.getAction().appLaunchData(); +            if (appLaunchData instanceof AppLaunchData.RoleData roleData) { +                serializer.attribute(null, ATTR_APP_LAUNCH_DATA_ROLE, roleData.getRole()); +            } else if (appLaunchData +                    instanceof AppLaunchData.CategoryData categoryData) { +                serializer.attribute(null, ATTR_APP_LAUNCH_DATA_CATEGORY, +                        categoryData.getCategory()); +            } else if (appLaunchData instanceof AppLaunchData.ComponentData componentData) { +                serializer.attribute(null, ATTR_APP_LAUNCH_DATA_PACKAGE_NAME, +                        componentData.getPackageName()); +                serializer.attribute(null, ATTR_APP_LAUNCH_DATA_CLASS_NAME, +                        componentData.getClassName()); +            } +            serializer.endTag(null, TAG_APP_LAUNCH_DATA); +        } + +        serializer.endTag(null, TAG_INPUT_GESTURE); +    } + +    private void writeInputGestureListToXml(TypedXmlSerializer serializer, +            List<InputGestureData> inputGestureDataList) throws IOException { +        serializer.startTag(null, TAG_INPUT_GESTURE_LIST); +        for (final InputGestureData inputGestureData : inputGestureDataList) { +            writeInputGestureToXml(serializer, inputGestureData); +        } +        serializer.endTag(null, TAG_INPUT_GESTURE_LIST); +    } + +    @VisibleForTesting +    static class FileInjector { +        private final SparseArray<AtomicFile> mAtomicFileMap = new SparseArray<>(); +        private final String mFileName; + +        FileInjector(String fileName) { +            mFileName = fileName; +        } + +        InputStream openRead(int userId) throws FileNotFoundException { +            return getAtomicFileForUserId(userId).openRead(); +        } + +        FileOutputStream startWrite(int userId) throws IOException { +            return getAtomicFileForUserId(userId).startWrite(); +        } + +        void finishWrite(int userId, FileOutputStream os, boolean success) { +            if (success) { +                getAtomicFileForUserId(userId).finishWrite(os); +            } else { +                getAtomicFileForUserId(userId).failWrite(os); +            } +        } + +        AtomicFile getAtomicFileForUserId(int userId) { +            if (!mAtomicFileMap.contains(userId)) { +                mAtomicFileMap.put(userId, new AtomicFile(new File( +                        Environment.buildPath(Environment.getDataSystemDeDirectory(userId), +                                INPUT_MANAGER_DIRECTORY), mFileName))); +            } +            return mAtomicFileMap.get(userId); +        } +    } +} diff --git a/services/core/java/com/android/server/input/InputManagerService.java b/services/core/java/com/android/server/input/InputManagerService.java index 4454dd41a3c1..767a7232809d 100644 --- a/services/core/java/com/android/server/input/InputManagerService.java +++ b/services/core/java/com/android/server/input/InputManagerService.java @@ -181,6 +181,7 @@ public class InputManagerService extends IInputManager.Stub      private static final int MSG_RELOAD_DEVICE_ALIASES = 2;      private static final int MSG_DELIVER_TABLET_MODE_CHANGED = 3;      private static final int MSG_CURRENT_USER_CHANGED = 4; +    private static final int MSG_SYSTEM_READY = 5;      private static final int DEFAULT_VIBRATION_MAGNITUDE = 192;      private static final AdditionalDisplayInputProperties @@ -351,6 +352,9 @@ public class InputManagerService extends IInputManager.Stub      // Manages loading PointerIcons      private final PointerIconCache mPointerIconCache; +    // Manages storage and retrieval of input data. +    private final InputDataStore mInputDataStore; +      // Maximum number of milliseconds to wait for input event injection.      private static final int INJECTION_TIMEOUT_MILLIS = 30 * 1000; @@ -500,7 +504,9 @@ public class InputManagerService extends IInputManager.Stub                  injector.getUEventManager());          mKeyboardBacklightController = injector.getKeyboardBacklightController(mNative);          mStickyModifierStateController = new StickyModifierStateController(); -        mKeyGestureController = new KeyGestureController(mContext, injector.getLooper()); +        mInputDataStore = new InputDataStore(); +        mKeyGestureController = new KeyGestureController(mContext, injector.getLooper(), +                mInputDataStore);          mKeyboardLedController = new KeyboardLedController(mContext, injector.getLooper(),                  mNative);          mKeyRemapper = new KeyRemapper(mContext, mNative, mDataStore, injector.getLooper()); @@ -564,6 +570,14 @@ public class InputManagerService extends IInputManager.Stub          Watchdog.getInstance().addMonitor(this);      } +    private void onBootPhase(int phase) { +        // On ActivityManager thread, shift to handler to avoid blocking other system services in +        // this boot phase. +        if (phase == SystemService.PHASE_ACTIVITY_MANAGER_READY) { +            mHandler.sendEmptyMessage(MSG_SYSTEM_READY); +        } +    } +      // TODO(BT) Pass in parameter for bluetooth system      public void systemRunning() {          if (DEBUG) { @@ -3220,6 +3234,9 @@ public class InputManagerService extends IInputManager.Stub                  case MSG_CURRENT_USER_CHANGED:                      handleCurrentUserChanged((int) msg.obj);                      break; +                case MSG_SYSTEM_READY: +                    systemRunning(); +                    break;              }          }      } @@ -3424,10 +3441,7 @@ public class InputManagerService extends IInputManager.Stub          @Override          public void onBootPhase(int phase) { -            // Called on ActivityManager thread. -            if (phase == SystemService.PHASE_ACTIVITY_MANAGER_READY) { -                mService.systemRunning(); -            } +            mService.onBootPhase(phase);          }          @Override diff --git a/services/core/java/com/android/server/input/KeyGestureController.java b/services/core/java/com/android/server/input/KeyGestureController.java index 55d2de2b6865..99c01ce5c15a 100644 --- a/services/core/java/com/android/server/input/KeyGestureController.java +++ b/services/core/java/com/android/server/input/KeyGestureController.java @@ -92,6 +92,8 @@ final class KeyGestureController {                      | KeyEvent.META_SHIFT_ON;      private static final int MSG_NOTIFY_KEY_GESTURE_EVENT = 1; +    private static final int MSG_PERSIST_CUSTOM_GESTURES = 2; +    private static final int MSG_LOAD_CUSTOM_GESTURES = 3;      // must match: config_settingsKeyBehavior in config.xml      private static final int SETTINGS_KEY_BEHAVIOR_SETTINGS_ACTIVITY = 0; @@ -116,6 +118,8 @@ final class KeyGestureController {      private final SettingsObserver mSettingsObserver;      private final AppLaunchShortcutManager mAppLaunchShortcutManager;      private final InputGestureManager mInputGestureManager; +    @GuardedBy("mInputDataStore") +    private final InputDataStore mInputDataStore;      private static final Object mUserLock = new Object();      @UserIdInt      @GuardedBy("mUserLock") @@ -155,7 +159,7 @@ final class KeyGestureController {      /** Currently fully consumed key codes per device */      private final SparseArray<Set<Integer>> mConsumedKeysForDevice = new SparseArray<>(); -    KeyGestureController(Context context, Looper looper) { +    KeyGestureController(Context context, Looper looper, InputDataStore inputDataStore) {          mContext = context;          mHandler = new Handler(looper, this::handleMessage);          mSystemPid = Process.myPid(); @@ -175,6 +179,7 @@ final class KeyGestureController {          mSettingsObserver = new SettingsObserver(mHandler);          mAppLaunchShortcutManager = new AppLaunchShortcutManager(mContext);          mInputGestureManager = new InputGestureManager(mContext); +        mInputDataStore = inputDataStore;          initBehaviors();          initKeyCombinationRules();      } @@ -434,6 +439,13 @@ final class KeyGestureController {          mSettingsObserver.observe();          mAppLaunchShortcutManager.systemRunning();          mInputGestureManager.systemRunning(); + +        int userId; +        synchronized (mUserLock) { +            userId = mCurrentUserId; +        } +        // Load the system user's input gestures. +        mHandler.obtainMessage(MSG_LOAD_CUSTOM_GESTURES, userId).sendToTarget();      }      public boolean interceptKeyBeforeQueueing(KeyEvent event, int policyFlags) { @@ -955,6 +967,7 @@ final class KeyGestureController {          synchronized (mUserLock) {              mCurrentUserId = userId;          } +        mHandler.obtainMessage(MSG_LOAD_CUSTOM_GESTURES, userId).sendToTarget();      }      @MainThread @@ -995,6 +1008,17 @@ final class KeyGestureController {                  AidlKeyGestureEvent event = (AidlKeyGestureEvent) msg.obj;                  notifyKeyGestureEvent(event);                  break; +            case MSG_PERSIST_CUSTOM_GESTURES: { +                final int userId = (Integer) msg.obj; +                persistInputGestures(userId); +                break; +            } +            case MSG_LOAD_CUSTOM_GESTURES: { +                final int userId = (Integer) msg.obj; +                loadInputGestures(userId); +                break; +            } +          }          return true;      } @@ -1040,22 +1064,31 @@ final class KeyGestureController {      @InputManager.CustomInputGestureResult      public int addCustomInputGesture(@UserIdInt int userId,              @NonNull AidlInputGestureData inputGestureData) { -        return mInputGestureManager.addCustomInputGesture(userId, +        final int result = mInputGestureManager.addCustomInputGesture(userId,                  new InputGestureData(inputGestureData)); +        if (result == InputManager.CUSTOM_INPUT_GESTURE_RESULT_SUCCESS) { +            mHandler.obtainMessage(MSG_PERSIST_CUSTOM_GESTURES, userId).sendToTarget(); +        } +        return result;      }      @BinderThread      @InputManager.CustomInputGestureResult      public int removeCustomInputGesture(@UserIdInt int userId,              @NonNull AidlInputGestureData inputGestureData) { -        return mInputGestureManager.removeCustomInputGesture(userId, +        final int result = mInputGestureManager.removeCustomInputGesture(userId,                  new InputGestureData(inputGestureData)); +        if (result == InputManager.CUSTOM_INPUT_GESTURE_RESULT_SUCCESS) { +            mHandler.obtainMessage(MSG_PERSIST_CUSTOM_GESTURES, userId).sendToTarget(); +        } +        return result;      }      @BinderThread      public void removeAllCustomInputGestures(@UserIdInt int userId,              @Nullable InputGestureData.Filter filter) {          mInputGestureManager.removeAllCustomInputGestures(userId, filter); +        mHandler.obtainMessage(MSG_PERSIST_CUSTOM_GESTURES, userId).sendToTarget();      }      @BinderThread @@ -1166,6 +1199,26 @@ final class KeyGestureController {          }      } +    private void persistInputGestures(int userId) { +        synchronized (mInputDataStore) { +            final List<InputGestureData> inputGestureDataList = +                    mInputGestureManager.getCustomInputGestures(userId, +                            null); +            mInputDataStore.saveInputGestures(userId, inputGestureDataList); +        } +    } + +    private void loadInputGestures(int userId) { +        synchronized (mInputDataStore) { +            mInputGestureManager.removeAllCustomInputGestures(userId, null); +            final List<InputGestureData> inputGestureDataList = mInputDataStore.loadInputGestures( +                    userId); +            for (final InputGestureData inputGestureData : inputGestureDataList) { +                mInputGestureManager.addCustomInputGesture(userId, inputGestureData); +            } +        } +    } +      // A record of a registered key gesture event listener from one process.      private class KeyGestureHandlerRecord implements IBinder.DeathRecipient {          public final int mPid; diff --git a/services/core/java/com/android/server/location/contexthub/ContextHubEndpointBroker.java b/services/core/java/com/android/server/location/contexthub/ContextHubEndpointBroker.java index 53389cafecef..aa215ce8057f 100644 --- a/services/core/java/com/android/server/location/contexthub/ContextHubEndpointBroker.java +++ b/services/core/java/com/android/server/location/contexthub/ContextHubEndpointBroker.java @@ -24,6 +24,11 @@ import android.hardware.contexthub.HubServiceInfo;  import android.hardware.contexthub.IContextHubEndpoint;  import android.hardware.contexthub.IContextHubEndpointCallback;  import android.hardware.location.IContextHubTransactionCallback; +import android.os.IBinder; +import android.os.RemoteException; +import android.util.Log; + +import java.util.concurrent.atomic.AtomicBoolean;  /**   * A class that represents a broker for the endpoint registered by the client app. This class @@ -31,7 +36,8 @@ import android.hardware.location.IContextHubTransactionCallback;   *   * @hide   */ -public class ContextHubEndpointBroker extends IContextHubEndpoint.Stub { +public class ContextHubEndpointBroker extends IContextHubEndpoint.Stub +        implements IBinder.DeathRecipient {      private static final String TAG = "ContextHubEndpointBroker";      /** The context of the service. */ @@ -52,6 +58,9 @@ public class ContextHubEndpointBroker extends IContextHubEndpoint.Stub {      /** The remote callback interface for this endpoint. */      private final IContextHubEndpointCallback mContextHubEndpointCallback; +    /** True if this endpoint is registered with the service. */ +    private AtomicBoolean mIsRegistered = new AtomicBoolean(true); +      /* package */ ContextHubEndpointBroker(              Context context,              IContextHubWrapper contextHubProxy, @@ -72,27 +81,55 @@ public class ContextHubEndpointBroker extends IContextHubEndpoint.Stub {      }      @Override -    public int openSession(HubEndpointInfo destination, HubServiceInfo serviceInfo) { -        // TODO(b/378487799): Implement this -        return 0; +    public int openSession(HubEndpointInfo destination, HubServiceInfo serviceInfo) +            throws RemoteException { +        ContextHubServiceUtil.checkPermissions(mContext); +        if (!mIsRegistered.get()) throw new IllegalStateException("Endpoint is not registered"); +        int sessionId = mEndpointManager.reserveSessionId(); +        EndpointInfo halEndpointInfo = ContextHubServiceUtil.convertHalEndpointInfo(destination); +        try { +            mContextHubProxy.openEndpointSession( +                    sessionId, +                    halEndpointInfo.id, +                    mHalEndpointInfo.id, +                    serviceInfo == null ? null : serviceInfo.getServiceDescriptor()); +        } catch (RemoteException | IllegalArgumentException | UnsupportedOperationException e) { +            Log.e(TAG, "Exception while calling HAL openEndpointSession", e); +            mEndpointManager.returnSessionId(sessionId); +            throw e; +        } + +        return sessionId;      }      @Override -    public void closeSession(int sessionId, int reason) { -        // TODO(b/378487799): Implement this - +    public void closeSession(int sessionId, int reason) throws RemoteException { +        ContextHubServiceUtil.checkPermissions(mContext); +        if (!mIsRegistered.get()) throw new IllegalStateException("Endpoint is not registered"); +        try { +            mContextHubProxy.closeEndpointSession(sessionId, (byte) reason); +        } catch (RemoteException | IllegalArgumentException | UnsupportedOperationException e) { +            Log.e(TAG, "Exception while calling HAL closeEndpointSession", e); +            throw e; +        }      }      @Override      public void openSessionRequestComplete(int sessionId) {          // TODO(b/378487799): Implement this -      }      @Override      public void unregister() { -        // TODO(b/378487799): Implement this - +        ContextHubServiceUtil.checkPermissions(mContext); +        mIsRegistered.set(false); +        try { +            mContextHubProxy.unregisterEndpoint(mHalEndpointInfo); +        } catch (RemoteException e) { +            Log.e(TAG, "RemoteException while calling HAL unregisterEndpoint", e); +        } +        // TODO(b/378487799): Release reserved session IDs +        mEndpointManager.unregisterEndpoint(mEndpointInfo.getIdentifier().getEndpoint());      }      @Override @@ -105,4 +142,16 @@ public class ContextHubEndpointBroker extends IContextHubEndpoint.Stub {      public void sendMessageDeliveryStatus(int sessionId, int messageSeqNumber, byte errorCode) {          // TODO(b/381102453): Implement this      } + +    /** Invoked when the underlying binder of this broker has died at the client process. */ +    @Override +    public void binderDied() { +        unregister(); +    } + +    /* package */ void attachDeathRecipient() throws RemoteException { +        if (mContextHubEndpointCallback != null) { +            mContextHubEndpointCallback.asBinder().linkToDeath(this, 0 /* flags */); +        } +    }  } diff --git a/services/core/java/com/android/server/location/contexthub/ContextHubEndpointManager.java b/services/core/java/com/android/server/location/contexthub/ContextHubEndpointManager.java index 54ce74f7b2f1..fb64f99e5904 100644 --- a/services/core/java/com/android/server/location/contexthub/ContextHubEndpointManager.java +++ b/services/core/java/com/android/server/location/contexthub/ContextHubEndpointManager.java @@ -22,11 +22,15 @@ import android.hardware.contexthub.HubEndpointInfo;  import android.hardware.contexthub.IContextHubEndpoint;  import android.hardware.contexthub.IContextHubEndpointCallback;  import android.os.RemoteException; +import android.os.ServiceSpecificException;  import android.util.Log;  import com.android.internal.annotations.GuardedBy; +import java.util.Collections; +import java.util.HashMap;  import java.util.Map; +import java.util.Set;  import java.util.concurrent.ConcurrentHashMap;  /** @@ -40,6 +44,12 @@ import java.util.concurrent.ConcurrentHashMap;      /** The hub ID of the Context Hub Service. */      private static final long SERVICE_HUB_ID = 0x416e64726f696400L; +    /** The range of session IDs to use for endpoints */ +    private static final int SERVICE_SESSION_RANGE = 1024; + +    /** The length of the array that should be returned by HAL requestSessionIdRange */ +    private static final int SERVICE_SESSION_RANGE_LENGTH = 2; +      /** The context of the service. */      private final Context mContext; @@ -55,9 +65,57 @@ import java.util.concurrent.ConcurrentHashMap;      @GuardedBy("mEndpointLock")      private long mNextEndpointId = 0; +    /** The minimum session ID reservable by endpoints (retrieved from HAL) */ +    private final int mMinSessionId; + +    /** The minimum session ID reservable by endpoints (retrieved from HAL) */ +    private final int mMaxSessionId; + +    /** Variables for managing session ID creation */ +    private final Object mSessionIdLock = new Object(); + +    /** A set of session IDs that have been reserved by an endpoint. */ +    @GuardedBy("mSessionIdLock") +    private final Set<Integer> mReservedSessionIds = +            Collections.newSetFromMap(new HashMap<Integer, Boolean>()); + +    @GuardedBy("mSessionIdLock") +    private int mNextSessionId = 0; + +    /** Initialized to true if all initialization in the constructor succeeds. */ +    private final boolean mSessionIdsValid; +      /* package */ ContextHubEndpointManager(Context context, IContextHubWrapper contextHubProxy) {          mContext = context;          mContextHubProxy = contextHubProxy; +        int[] range = null; +        try { +            range = mContextHubProxy.requestSessionIdRange(SERVICE_SESSION_RANGE); +            if (range != null && range.length < SERVICE_SESSION_RANGE_LENGTH) { +                Log.e(TAG, "Invalid session ID range: range array size = " + range.length); +                range = null; +            } +        } catch (RemoteException | IllegalArgumentException | ServiceSpecificException e) { +            Log.e(TAG, "Exception while calling HAL requestSessionIdRange", e); +        } + +        if (range == null) { +            mMinSessionId = -1; +            mMaxSessionId = -1; +            mSessionIdsValid = false; +        } else { +            mMinSessionId = range[0]; +            mMaxSessionId = range[1]; +            if (!isSessionIdRangeValid(mMinSessionId, mMaxSessionId)) { +                Log.e( +                        TAG, +                        "Invalid session ID range: max=" + mMaxSessionId + " min=" + mMinSessionId); +                mSessionIdsValid = false; +            } else { +                mNextSessionId = mMinSessionId; +                mSessionIdsValid = true; +            } +        }      }      /** @@ -71,6 +129,9 @@ import java.util.concurrent.ConcurrentHashMap;      /* package */ IContextHubEndpoint registerEndpoint(              HubEndpointInfo pendingEndpointInfo, IContextHubEndpointCallback callback)              throws RemoteException { +        if (!mSessionIdsValid) { +            throw new IllegalStateException("ContextHubEndpointManager failed to initialize"); +        }          ContextHubEndpointBroker broker;          long endpointId = getNewEndpointId();          EndpointInfo halEndpointInfo = @@ -91,15 +152,65 @@ import java.util.concurrent.ConcurrentHashMap;                          callback);          mEndpointMap.put(endpointId, broker); -        // TODO(b/378487799): Add death recipient +        try { +            broker.attachDeathRecipient(); +        } catch (RemoteException e) { +            // The client process has died, so we close the connection and return null +            Log.e(TAG, "Failed to attach death recipient to client", e); +            broker.unregister(); +            return null; +        }          Log.d(TAG, "Registered endpoint with ID = " + endpointId);          return IContextHubEndpoint.Stub.asInterface(broker);      }      /** -     * @return an available endpoint ID +     * Reserves an available session ID for an endpoint. +     * +     * @throws IllegalStateException if no session ID was available. +     * @return The reserved session ID.       */ +    /* package */ int reserveSessionId() { +        int id = -1; +        synchronized (mSessionIdLock) { +            final int maxCapacity = mMaxSessionId - mMinSessionId + 1; +            if (mReservedSessionIds.size() >= maxCapacity) { +                throw new IllegalStateException("Too many sessions reserved"); +            } + +            id = mNextSessionId; +            for (int i = mMinSessionId; i <= mMaxSessionId; i++) { +                if (!mReservedSessionIds.contains(id)) { +                    mNextSessionId = (id == mMaxSessionId) ? mMinSessionId : id + 1; +                    break; +                } + +                id = (id == mMaxSessionId) ? mMinSessionId : id + 1; +            } + +            mReservedSessionIds.add(id); +        } +        return id; +    } + +    /** Returns a previously reserved session ID through {@link #reserveSessionId()}. */ +    /* package */ void returnSessionId(int sessionId) { +        synchronized (mSessionIdLock) { +            mReservedSessionIds.remove(sessionId); +        } +    } + +    /** +     * Unregisters an endpoint given its ID. +     * +     * @param endpointId The ID of the endpoint to unregister. +     */ +    /* package */ void unregisterEndpoint(long endpointId) { +        mEndpointMap.remove(endpointId); +    } + +    /** @return an available endpoint ID */      private long getNewEndpointId() {          synchronized (mEndpointLock) {              if (mNextEndpointId == Long.MAX_VALUE) { @@ -108,4 +219,8 @@ import java.util.concurrent.ConcurrentHashMap;              return mNextEndpointId++;          }      } + +    private boolean isSessionIdRangeValid(int minId, int maxId) { +        return (minId <= maxId) && (minId >= 0) && (maxId >= 0); +    }  } diff --git a/services/core/java/com/android/server/location/contexthub/IContextHubWrapper.java b/services/core/java/com/android/server/location/contexthub/IContextHubWrapper.java index 14d75b02d6b0..c79dc84ec2af 100644 --- a/services/core/java/com/android/server/location/contexthub/IContextHubWrapper.java +++ b/services/core/java/com/android/server/location/contexthub/IContextHubWrapper.java @@ -18,6 +18,7 @@ package com.android.server.location.contexthub;  import android.annotation.NonNull;  import android.annotation.Nullable;  import android.chre.flags.Flags; +import android.hardware.contexthub.EndpointId;  import android.hardware.contexthub.HostEndpointInfo;  import android.hardware.contexthub.HubEndpointInfo;  import android.hardware.contexthub.MessageDeliveryStatus; @@ -243,6 +244,23 @@ public abstract class IContextHubWrapper {      public void registerEndpoint(android.hardware.contexthub.EndpointInfo info)              throws RemoteException {} +    /** Unregisters a previously registered endpoint */ +    public int[] requestSessionIdRange(int size) throws RemoteException { +        return null; +    } + +    /** Opens an endpoint session between two endpoints */ +    public void openEndpointSession( +            int sessionId, EndpointId destination, EndpointId initiator, String serviceDescriptor) +            throws RemoteException {} + +    /** Closes a previously opened endpoint */ +    public void closeEndpointSession(int sessionId, byte reason) throws RemoteException {} + +    /** Unregisters a previously registered endpoint */ +    public void unregisterEndpoint(android.hardware.contexthub.EndpointInfo info) +            throws RemoteException {} +      /**       * @return True if this version of the Contexthub HAL supports Location setting notifications.       */ @@ -685,6 +703,48 @@ public abstract class IContextHubWrapper {              hub.registerEndpoint(info);          } +        @Override +        public int[] requestSessionIdRange(int size) throws RemoteException { +            android.hardware.contexthub.IContextHub hub = getHub(); +            if (hub == null) { +                return null; +            } +            return hub.requestSessionIdRange(size); +        } + +        @Override +        public void openEndpointSession( +                int sessionId, +                EndpointId destination, +                EndpointId initiator, +                String serviceDescriptor) +                throws RemoteException { +            android.hardware.contexthub.IContextHub hub = getHub(); +            if (hub == null) { +                return; +            } +            hub.openEndpointSession(sessionId, destination, initiator, serviceDescriptor); +        } + +        @Override +        public void closeEndpointSession(int sessionId, byte reason) throws RemoteException { +            android.hardware.contexthub.IContextHub hub = getHub(); +            if (hub == null) { +                return; +            } +            hub.closeEndpointSession(sessionId, reason); +        } + +        @Override +        public void unregisterEndpoint(android.hardware.contexthub.EndpointInfo info) +                throws RemoteException { +            android.hardware.contexthub.IContextHub hub = getHub(); +            if (hub == null) { +                return; +            } +            hub.unregisterEndpoint(info); +        } +          public boolean supportsLocationSettingNotifications() {              return true;          } diff --git a/services/core/java/com/android/server/power/hint/HintManagerService.java b/services/core/java/com/android/server/power/hint/HintManagerService.java index f1f1e6031718..987a84994451 100644 --- a/services/core/java/com/android/server/power/hint/HintManagerService.java +++ b/services/core/java/com/android/server/power/hint/HintManagerService.java @@ -325,36 +325,6 @@ public final class HintManagerService extends SystemService {          }          SupportInfo supportInfo = new SupportInfo(); -        supportInfo.usesSessions = isHintSessionSupported(); -        // Global boosts & modes aren't currently relevant for HMS clients -        supportInfo.boosts = 0; -        supportInfo.modes = 0; -        supportInfo.sessionHints = 0; -        supportInfo.sessionModes = 0; -        supportInfo.sessionTags = 0; -        if (isHintSessionSupported()) { -            if (mPowerHalVersion == 4) { -                // Assume we support the V4 hints & modes unless specified -                // otherwise; this is to avoid breaking backwards compat -                // since we historically just assumed they were. -                supportInfo.sessionHints = 31; // first 5 bits are ones -            } -            if (mPowerHalVersion == 5) { -                // Assume we support the V5 hints & modes unless specified -                // otherwise; this is to avoid breaking backwards compat -                // since we historically just assumed they were. - -                // Hal V5 has 8 modes, all of which it assumes are supported, -                // so we represent that by having the first 8 bits set -                supportInfo.sessionHints = 255; // first 8 bits are ones -                // Hal V5 has 1 mode which it assumes is supported, so we -                // represent that by having the first bit set -                supportInfo.sessionModes = 1; -                // Hal V5 has 5 tags, all of which it assumes are supported, -                // so we represent that by having the first 5 bits set -                supportInfo.sessionTags = 31; -            } -        }          supportInfo.headroom = new SupportInfo.HeadroomSupportInfo();          supportInfo.headroom.isCpuSupported = false;          supportInfo.headroom.isGpuSupported = false; diff --git a/services/core/java/com/android/server/wm/ActivityRecord.java b/services/core/java/com/android/server/wm/ActivityRecord.java index 9956d8580686..3467f947ece4 100644 --- a/services/core/java/com/android/server/wm/ActivityRecord.java +++ b/services/core/java/com/android/server/wm/ActivityRecord.java @@ -10332,7 +10332,15 @@ final class ActivityRecord extends WindowToken implements WindowManagerService.A                  .isVisibilityUnknown(this)) {              return false;          } -        if (!isVisibleRequested()) return true; +        if (!isVisibleRequested()) { +            // TODO(b/294925498): Remove this finishing check once we have accurate ready tracking. +            if (task != null && task.getPausingActivity() == this) { +                // Visibility of starting activities isn't calculated until pause-complete, so if +                // this is not paused yet, don't consider it ready. +                return false; +            } +            return true; +        }          if (mPendingRelaunchCount > 0) return false;          // Wait for attach. That is the earliest time where we know if there will be an associated          // display rotation. If we don't wait, the starting-window can finishDrawing first and diff --git a/services/core/java/com/android/server/wm/ActivityTaskManagerService.java b/services/core/java/com/android/server/wm/ActivityTaskManagerService.java index 8ff08187c698..0ebdaed1bc02 100644 --- a/services/core/java/com/android/server/wm/ActivityTaskManagerService.java +++ b/services/core/java/com/android/server/wm/ActivityTaskManagerService.java @@ -3794,6 +3794,12 @@ public class ActivityTaskManagerService extends IActivityTaskManager.Stub {              r.setPictureInPictureParams(params);              enterPipTransition.setPipActivity(r);              r.mAutoEnteringPip = isAutoEnter; + +            if (r.getTaskFragment() != null && r.getTaskFragment().isEmbeddedWithBoundsOverride() +                    && enterPipTransition != null) { +                enterPipTransition.addFlag(FLAG_IN_TASK_WITH_EMBEDDED_ACTIVITY); +            } +              getTransitionController().startCollectOrQueue(enterPipTransition, (deferred) -> {                  getTransitionController().requestStartTransition(enterPipTransition,                          r.getTask(), null /* remoteTransition */, null /* displayChange */); diff --git a/services/core/java/com/android/server/wm/Transition.java b/services/core/java/com/android/server/wm/Transition.java index 20481f25fa5c..1fc609b7d03a 100644 --- a/services/core/java/com/android/server/wm/Transition.java +++ b/services/core/java/com/android/server/wm/Transition.java @@ -1429,7 +1429,16 @@ class Transition implements BLASTSyncEngine.TransactionReadyListener {          // Commit wallpaper visibility after activity, because usually the wallpaper target token is          // an activity, and wallpaper's visibility depends on activity's visibility.          for (int i = mParticipants.size() - 1; i >= 0; --i) { -            final WallpaperWindowToken wt = mParticipants.valueAt(i).asWallpaperToken(); +            final WindowContainer<?> wc = mParticipants.valueAt(i); +            WallpaperWindowToken wt = wc.asWallpaperToken(); +            if (!Flags.ensureWallpaperInTransitions()) { +                if (wt == null) { +                    final WindowState windowState = wc.asWindowState(); +                    if (windowState != null) { +                        wt = windowState.mToken.asWallpaperToken(); +                    } +                } +            }              if (wt == null) continue;              final WindowState target = wt.mDisplayContent.mWallpaperController.getWallpaperTarget();              final boolean isTargetInvisible = target == null || !target.mToken.isVisible(); diff --git a/services/core/java/com/android/server/wm/WindowManagerService.java b/services/core/java/com/android/server/wm/WindowManagerService.java index 7e70e75820a3..00ade8088e82 100644 --- a/services/core/java/com/android/server/wm/WindowManagerService.java +++ b/services/core/java/com/android/server/wm/WindowManagerService.java @@ -7949,43 +7949,46 @@ public class WindowManagerService extends IWindowManager.Stub          @Override          public void waitForAllWindowsDrawn(Message message, long timeout, int displayId) {              Objects.requireNonNull(message.getTarget()); -            final WindowContainer<?> container = displayId == INVALID_DISPLAY -                    ? mRoot : mRoot.getDisplayContent(displayId); -            if (container == null) { -                // The waiting container doesn't exist, no need to wait to run the callback. Run and -                // return; -                message.sendToTarget(); -                return; -            }              boolean allWindowsDrawn = false;              synchronized (mGlobalLock) { -                if (displayId == INVALID_DISPLAY -                        && mRoot.getDefaultDisplay().mDisplayUpdater.waitForTransition(message)) { -                    // Use the ready-to-play of transition as the signal. -                    return; -                } -                container.waitForAllWindowsDrawn(); -                mWindowPlacerLocked.requestTraversal(); -                mH.removeMessages(H.WAITING_FOR_DRAWN_TIMEOUT, container); -                if (container.mWaitingForDrawn.isEmpty()) { -                    allWindowsDrawn = true; -                } else { -                    if (Trace.isTagEnabled(TRACE_TAG_WINDOW_MANAGER)) { -                        for (int i = 0; i < container.mWaitingForDrawn.size(); i++) { -                            traceStartWaitingForWindowDrawn(container.mWaitingForDrawn.get(i)); -                        } -                    } - -                    mWaitingForDrawnCallbacks.put(container, message); -                    mH.sendNewMessageDelayed(H.WAITING_FOR_DRAWN_TIMEOUT, container, timeout); -                    checkDrawnWindowsLocked(); -                } +                allWindowsDrawn = waitForAllWindowsDrawnLocked(message, timeout, displayId);              }              if (allWindowsDrawn) {                  message.sendToTarget();              }          } +        /** Return {@code true} if all windows have been drawn. */ +        private boolean waitForAllWindowsDrawnLocked(Message message, long timeout, int displayId) { +            final WindowContainer<?> container = displayId == INVALID_DISPLAY +                    ? mRoot : mRoot.getDisplayContent(displayId); +            if (container == null) { +                // The waiting container doesn't exist, no need to wait. Treat as drawn. +                return true; +            } +            if (displayId == INVALID_DISPLAY +                    && mRoot.getDefaultDisplay().mDisplayUpdater.waitForTransition(message)) { +                // Use the ready-to-play of transition as the signal. +                return false; +            } +            container.waitForAllWindowsDrawn(); +            mWindowPlacerLocked.requestTraversal(); +            mH.removeMessages(H.WAITING_FOR_DRAWN_TIMEOUT, container); +            if (container.mWaitingForDrawn.isEmpty()) { +                return true; +            } +            if (Trace.isTagEnabled(TRACE_TAG_WINDOW_MANAGER)) { +                for (int i = 0; i < container.mWaitingForDrawn.size(); i++) { +                    traceStartWaitingForWindowDrawn(container.mWaitingForDrawn.get(i)); +                } +            } + +            mWaitingForDrawnCallbacks.put(container, message); +            mH.sendNewMessageDelayed(H.WAITING_FOR_DRAWN_TIMEOUT, container, timeout); +            checkDrawnWindowsLocked(); +            return false; +        } +          @Override          public void setForcedDisplaySize(int displayId, int width, int height) {              WindowManagerService.this.setForcedDisplaySize(displayId, width, height); diff --git a/services/core/jni/com_android_server_input_InputManagerService.cpp b/services/core/jni/com_android_server_input_InputManagerService.cpp index 943019429c3f..5a457302108c 100644 --- a/services/core/jni/com_android_server_input_InputManagerService.cpp +++ b/services/core/jni/com_android_server_input_InputManagerService.cpp @@ -362,7 +362,7 @@ public:      void setMotionClassifierEnabled(bool enabled);      std::optional<std::string> getBluetoothAddress(int32_t deviceId);      void setStylusButtonMotionEventsEnabled(bool enabled); -    FloatPoint getMouseCursorPosition(ui::LogicalDisplayId displayId); +    vec2 getMouseCursorPosition(ui::LogicalDisplayId displayId);      void setStylusPointerIconEnabled(bool enabled);      void setInputMethodConnectionIsActive(bool isActive);      void setKeyRemapping(const std::map<int32_t, int32_t>& keyRemapping); @@ -441,7 +441,7 @@ public:      std::shared_ptr<PointerControllerInterface> createPointerController(              PointerControllerInterface::ControllerType type) override;      void notifyPointerDisplayIdChanged(ui::LogicalDisplayId displayId, -                                       const FloatPoint& position) override; +                                       const vec2& position) override;      void notifyMouseCursorFadedOnTyping() override;      /* --- InputFilterPolicyInterface implementation --- */ @@ -871,7 +871,7 @@ std::shared_ptr<PointerControllerInterface> NativeInputManager::createPointerCon  }  void NativeInputManager::notifyPointerDisplayIdChanged(ui::LogicalDisplayId pointerDisplayId, -                                                       const FloatPoint& position) { +                                                       const vec2& position) {      // Notify the Reader so that devices can be reconfigured.      { // acquire lock          std::scoped_lock _l(mLock); @@ -2023,7 +2023,7 @@ void NativeInputManager::setStylusButtonMotionEventsEnabled(bool enabled) {              InputReaderConfiguration::Change::STYLUS_BUTTON_REPORTING);  } -FloatPoint NativeInputManager::getMouseCursorPosition(ui::LogicalDisplayId displayId) { +vec2 NativeInputManager::getMouseCursorPosition(ui::LogicalDisplayId displayId) {      return mInputManager->getChoreographer().getMouseCursorPosition(displayId);  } diff --git a/services/credentials/java/com/android/server/credentials/CredentialManagerUi.java b/services/credentials/java/com/android/server/credentials/CredentialManagerUi.java index e73dacbed9a3..0c9a89bb0a30 100644 --- a/services/credentials/java/com/android/server/credentials/CredentialManagerUi.java +++ b/services/credentials/java/com/android/server/credentials/CredentialManagerUi.java @@ -22,6 +22,7 @@ import android.content.Context;  import android.content.Intent;  import android.credentials.CredentialManager;  import android.credentials.CredentialProviderInfo; +import android.credentials.flags.Flags;  import android.credentials.selection.DisabledProviderData;  import android.credentials.selection.IntentCreationResult;  import android.credentials.selection.IntentFactory; @@ -46,6 +47,12 @@ import java.util.UUID;  /** Initiates the Credential Manager UI and receives results. */  public class CredentialManagerUi { + +    private static final String SESSION_ID_TRACK_ONE = +            "com.android.server.credentials.CredentialManagerUi.SESSION_ID_TRACK_ONE"; +    private static final String SESSION_ID_TRACK_TWO = +            "com.android.server.credentials.CredentialManagerUi.SESSION_ID_TRACK_TWO"; +      @NonNull      private final CredentialManagerUiCallback mCallbacks;      @NonNull @@ -148,8 +155,8 @@ public class CredentialManagerUi {       * by the calling app process. The bottom-sheet navigates to the default page when the intent       * is invoked.       * -     * @param requestInfo            the information about the request -     * @param providerDataList       the list of provider data from remote providers +     * @param requestInfo      the information about the request +     * @param providerDataList the list of provider data from remote providers       */      public PendingIntent createPendingIntent(              RequestInfo requestInfo, ArrayList<ProviderData> providerDataList, @@ -175,6 +182,11 @@ public class CredentialManagerUi {                  mContext, intentCreationResult, mUserId);          Intent intent = intentCreationResult.getIntent();          intent.setAction(UUID.randomUUID().toString()); +        if (Flags.frameworkSessionIdMetricBundle()) { +            intent.putExtra(SESSION_ID_TRACK_ONE, +                    requestSessionMetric.getInitialPhaseMetric().getSessionIdCaller()); +            intent.putExtra(SESSION_ID_TRACK_TWO, requestSessionMetric.getSessionIdTrackTwo()); +        }          //TODO: Create unique pending intent using request code and cancel any pre-existing pending          // intents          return PendingIntent.getActivityAsUser( @@ -192,8 +204,8 @@ public class CredentialManagerUi {       * each autofill id and passed in as extras in the pending intent set as authentication       * of the pinned entry.       * -     * @param requestInfo            the information about the request -     * @param requestSessionMetric   the metric object for logging +     * @param requestInfo          the information about the request +     * @param requestSessionMetric the metric object for logging       */      public Intent createIntentForAutofill(RequestInfo requestInfo,              RequestSessionMetric requestSessionMetric) { diff --git a/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java b/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java index ac1219c35c3b..4d318f9036eb 100644 --- a/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java +++ b/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java @@ -26,6 +26,7 @@ import static android.Manifest.permission.MANAGE_DEVICE_POLICY_ACROSS_USERS_FULL  import static android.Manifest.permission.MANAGE_DEVICE_POLICY_ACROSS_USERS_SECURITY_CRITICAL;  import static android.Manifest.permission.MANAGE_DEVICE_POLICY_AIRPLANE_MODE;  import static android.Manifest.permission.MANAGE_DEVICE_POLICY_APPS_CONTROL; +import static android.Manifest.permission.MANAGE_DEVICE_POLICY_APP_FUNCTIONS;  import static android.Manifest.permission.MANAGE_DEVICE_POLICY_APP_RESTRICTIONS;  import static android.Manifest.permission.MANAGE_DEVICE_POLICY_ASSIST_CONTENT;  import static android.Manifest.permission.MANAGE_DEVICE_POLICY_AUDIO_OUTPUT; @@ -126,6 +127,7 @@ import static android.app.admin.DevicePolicyManager.ACTION_PROVISION_MANAGED_DEV  import static android.app.admin.DevicePolicyManager.ACTION_PROVISION_MANAGED_PROFILE;  import static android.app.admin.DevicePolicyManager.ACTION_PROVISION_MANAGED_USER;  import static android.app.admin.DevicePolicyManager.ACTION_SYSTEM_UPDATE_POLICY_CHANGED; +import static android.app.admin.DevicePolicyManager.APP_FUNCTIONS_NOT_CONTROLLED_BY_POLICY;  import static android.app.admin.DevicePolicyManager.CONTENT_PROTECTION_DISABLED;  import static android.app.admin.DevicePolicyManager.ContentProtectionPolicy;  import static android.app.admin.DevicePolicyManager.DELEGATION_APP_RESTRICTIONS; @@ -332,6 +334,7 @@ import android.app.admin.DevicePolicyCache;  import android.app.admin.DevicePolicyDrawableResource;  import android.app.admin.DevicePolicyEventLogger;  import android.app.admin.DevicePolicyManager; +import android.app.admin.DevicePolicyManager.AppFunctionsPolicy;  import android.app.admin.DevicePolicyManager.DeviceOwnerType;  import android.app.admin.DevicePolicyManager.DevicePolicyOperation;  import android.app.admin.DevicePolicyManager.OperationSafetyReason; @@ -9085,11 +9088,13 @@ public class DevicePolicyManagerService extends IDevicePolicyManager.Stub {          }          CallerIdentity caller = getCallerIdentity(who); -        if (!Flags.setAutoTimeEnabledCoexistence()) { +        if (Flags.setAutoTimeEnabledCoexistence()) { +            Preconditions.checkCallAuthorization(hasPermission(SET_TIME, caller.getPackageName())); +        } else {              Objects.requireNonNull(who, "ComponentName is null"); -        } -        Preconditions.checkCallAuthorization(isProfileOwnerOnUser0(caller) +            Preconditions.checkCallAuthorization(isProfileOwnerOnUser0(caller)                  || isProfileOwnerOfOrganizationOwnedDevice(caller) || isDefaultDeviceOwner(caller)); +        }          return mInjector.settingsGlobalGetInt(Global.AUTO_TIME, 0) > 0;      } @@ -9166,10 +9171,7 @@ public class DevicePolicyManagerService extends IDevicePolicyManager.Stub {          }          CallerIdentity caller = getCallerIdentity(who); - -        if (!Flags.setAutoTimeZoneEnabledCoexistence()) { -            Objects.requireNonNull(who, "ComponentName is null"); -        } +        Objects.requireNonNull(who, "ComponentName is null");          Preconditions.checkCallAuthorization(isProfileOwnerOnUser0(caller)                  || isProfileOwnerOfOrganizationOwnedDevice(caller) || isDefaultDeviceOwner(                  caller)); @@ -9193,10 +9195,15 @@ public class DevicePolicyManagerService extends IDevicePolicyManager.Stub {          }          CallerIdentity caller = getCallerIdentity(who); -        Objects.requireNonNull(who, "ComponentName is null"); -        Preconditions.checkCallAuthorization(isProfileOwnerOnUser0(caller) +        if (Flags.setAutoTimeZoneEnabledCoexistence()) { +            Preconditions.checkCallAuthorization( +                hasPermission(SET_TIME_ZONE, caller.getPackageName())); +        } else { +            Objects.requireNonNull(who, "ComponentName is null"); +            Preconditions.checkCallAuthorization(isProfileOwnerOnUser0(caller)                  || isProfileOwnerOfOrganizationOwnedDevice(caller) || isDefaultDeviceOwner(                  caller)); +        }          return mInjector.settingsGlobalGetInt(Global.AUTO_TIME_ZONE, 0) > 0;      } @@ -22970,6 +22977,7 @@ public class DevicePolicyManagerService extends IDevicePolicyManager.Stub {              MANAGE_DEVICE_POLICY_ACROSS_USERS_SECURITY_CRITICAL,              MANAGE_DEVICE_POLICY_AIRPLANE_MODE,              MANAGE_DEVICE_POLICY_APPS_CONTROL, +            MANAGE_DEVICE_POLICY_APP_FUNCTIONS,              MANAGE_DEVICE_POLICY_APP_RESTRICTIONS,              MANAGE_DEVICE_POLICY_AUDIO_OUTPUT,              MANAGE_DEVICE_POLICY_AUTOFILL, @@ -23057,6 +23065,7 @@ public class DevicePolicyManagerService extends IDevicePolicyManager.Stub {                      MANAGE_DEVICE_POLICY_ACCOUNT_MANAGEMENT,                      MANAGE_DEVICE_POLICY_ACROSS_USERS_SECURITY_CRITICAL,                      MANAGE_DEVICE_POLICY_APPS_CONTROL, +                    MANAGE_DEVICE_POLICY_APP_FUNCTIONS,                      MANAGE_DEVICE_POLICY_APP_RESTRICTIONS,                      MANAGE_DEVICE_POLICY_AUDIO_OUTPUT,                      MANAGE_DEVICE_POLICY_AUTOFILL, @@ -23306,6 +23315,8 @@ public class DevicePolicyManagerService extends IDevicePolicyManager.Stub {                  MANAGE_DEVICE_POLICY_ACROSS_USERS);          CROSS_USER_PERMISSIONS.put(MANAGE_DEVICE_POLICY_CONTENT_PROTECTION,                  MANAGE_DEVICE_POLICY_ACROSS_USERS); +        CROSS_USER_PERMISSIONS.put(MANAGE_DEVICE_POLICY_APP_FUNCTIONS, +                MANAGE_DEVICE_POLICY_ACROSS_USERS);          // These permissions may grant access to user data and therefore must be protected with          // MANAGE_DEVICE_POLICY_ACROSS_USERS_FULL for cross-user calls. @@ -23971,6 +23982,47 @@ public class DevicePolicyManagerService extends IDevicePolicyManager.Stub {          }      } +    @Override +    public void setAppFunctionsPolicy(String callerPackageName, @AppFunctionsPolicy int policy) { +        if (!android.app.appfunctions.flags.Flags.enableAppFunctionManager()) { +            return; +        } + +        CallerIdentity caller = getCallerIdentity(callerPackageName); +        int userId = caller.getUserId(); +        checkCanExecuteOrThrowUnsafe(DevicePolicyManager.OPERATION_SET_APP_FUNCTIONS_POLICY); +        EnforcingAdmin enforcingAdmin = +                enforcePermissionAndGetEnforcingAdmin( +                        /* who */null, MANAGE_DEVICE_POLICY_APP_FUNCTIONS, +                        callerPackageName, userId); + +        if (policy == APP_FUNCTIONS_NOT_CONTROLLED_BY_POLICY) { +            mDevicePolicyEngine.removeLocalPolicy( +                    PolicyDefinition.APP_FUNCTIONS, enforcingAdmin, userId); +        } else { +            mDevicePolicyEngine.setLocalPolicy( +                    PolicyDefinition.APP_FUNCTIONS, +                    enforcingAdmin, new IntegerPolicyValue(policy), +                    userId); +        } +    } + +    @Override +    public @AppFunctionsPolicy int getAppFunctionsPolicy(String callerPackageName, int userId) { +        if (!android.app.appfunctions.flags.Flags.enableAppFunctionManager()) { +            return APP_FUNCTIONS_NOT_CONTROLLED_BY_POLICY; +        } + +        CallerIdentity caller = getCallerIdentity(callerPackageName); +        enforceCanQuery(MANAGE_DEVICE_POLICY_APP_FUNCTIONS, callerPackageName, userId); +        Integer policy = +                mDevicePolicyEngine.getResolvedPolicy(PolicyDefinition.APP_FUNCTIONS, userId); +        if (policy == null) { +            return APP_FUNCTIONS_NOT_CONTROLLED_BY_POLICY; +        } +        return policy; +    } +      private void updateContentProtectionPolicyCache(@UserIdInt int userId) {          mPolicyCache.setContentProtectionPolicy(                  userId, diff --git a/services/devicepolicy/java/com/android/server/devicepolicy/PolicyDefinition.java b/services/devicepolicy/java/com/android/server/devicepolicy/PolicyDefinition.java index 24b16b7c2c60..e4db4bdd773f 100644 --- a/services/devicepolicy/java/com/android/server/devicepolicy/PolicyDefinition.java +++ b/services/devicepolicy/java/com/android/server/devicepolicy/PolicyDefinition.java @@ -318,6 +318,20 @@ final class PolicyDefinition<V> {              PolicyEnforcerCallbacks::setContentProtectionPolicy,              new IntegerPolicySerializer()); +    static PolicyDefinition<Integer> APP_FUNCTIONS = new PolicyDefinition<>( +            new NoArgsPolicyKey(DevicePolicyIdentifiers.APP_FUNCTIONS_POLICY), +            new MostRestrictive<>( +                    List.of( +                            new IntegerPolicyValue( +                                    DevicePolicyManager.APP_FUNCTIONS_DISABLED), +                            new IntegerPolicyValue( +                                    DevicePolicyManager.APP_FUNCTIONS_DISABLED_CROSS_PROFILE), +                            new IntegerPolicyValue( +                                    DevicePolicyManager.APP_FUNCTIONS_NOT_CONTROLLED_BY_POLICY))), +            POLICY_FLAG_LOCAL_ONLY_POLICY, +            PolicyEnforcerCallbacks::noOp, +            new IntegerPolicySerializer()); +      static PolicyDefinition<Integer> PASSWORD_COMPLEXITY = new PolicyDefinition<>(              new NoArgsPolicyKey(DevicePolicyIdentifiers.PASSWORD_COMPLEXITY_POLICY),              new MostRestrictive<>( @@ -398,6 +412,8 @@ final class PolicyDefinition<V> {                  USB_DATA_SIGNALING);          POLICY_DEFINITIONS.put(DevicePolicyIdentifiers.CONTENT_PROTECTION_POLICY,                  CONTENT_PROTECTION); +        POLICY_DEFINITIONS.put(DevicePolicyIdentifiers.APP_FUNCTIONS_POLICY, +                APP_FUNCTIONS);          // Intentionally not flagged since if the flag is flipped off on a device already          // having PASSWORD_COMPLEXITY policy in the on-device XML, it will cause the          // deserialization logic to break due to seeing an unknown tag. diff --git a/services/robotests/backup/src/com/android/server/backup/UserBackupManagerServiceTest.java b/services/robotests/backup/src/com/android/server/backup/UserBackupManagerServiceTest.java index 02e0bbfd3519..eb61a40e0ba5 100644 --- a/services/robotests/backup/src/com/android/server/backup/UserBackupManagerServiceTest.java +++ b/services/robotests/backup/src/com/android/server/backup/UserBackupManagerServiceTest.java @@ -30,13 +30,10 @@ import static org.mockito.ArgumentMatchers.anyInt;  import static org.mockito.ArgumentMatchers.eq;  import static org.mockito.Mockito.mock;  import static org.mockito.Mockito.never; -import static org.mockito.Mockito.spy;  import static org.mockito.Mockito.times;  import static org.mockito.Mockito.verify;  import static org.mockito.Mockito.when;  import static org.robolectric.Shadows.shadowOf; -import static org.testng.Assert.assertFalse; -import static org.testng.Assert.assertTrue;  import static org.testng.Assert.expectThrows;  import android.app.backup.BackupManager; @@ -90,7 +87,6 @@ import java.io.IOException;  import java.io.PrintWriter;  import java.io.StringWriter;  import java.util.ArrayList; -import java.util.Arrays;  import java.util.List;  /** @@ -110,7 +106,6 @@ public class UserBackupManagerServiceTest {      private static final String TAG = "BMSTest";      private static final String PACKAGE_1 = "some.package.1";      private static final String PACKAGE_2 = "some.package.2"; -    private static final String USER_FACING_PACKAGE = "user.facing.package";      private static final int USER_ID = 10;      @Mock private TransportManager mTransportManager; @@ -1213,47 +1208,6 @@ public class UserBackupManagerServiceTest {                  eq(packageTrackingReceiver), eq(UserHandle.of(USER_ID)), any(), any(), any());      } -    @Test -    public void testFilterUserFacingPackages_shouldSkipUserFacing_filtersUserFacing() { -        List<PackageInfo> packages = Arrays.asList(getPackageInfo(USER_FACING_PACKAGE), -                getPackageInfo(PACKAGE_1)); -        UserBackupManagerService backupManagerService = spy( -                createUserBackupManagerServiceAndRunTasks()); -        when(backupManagerService.shouldSkipUserFacingData()).thenReturn(true); -        when(backupManagerService.shouldSkipPackage(eq(USER_FACING_PACKAGE))).thenReturn(true); - -        List<PackageInfo> filteredPackages = backupManagerService.filterUserFacingPackages( -                packages); - -        assertFalse(containsPackage(filteredPackages, USER_FACING_PACKAGE)); -        assertTrue(containsPackage(filteredPackages, PACKAGE_1)); -    } - -    @Test -    public void testFilterUserFacingPackages_shouldNotSkipUserFacing_doesNotFilterUserFacing() { -        List<PackageInfo> packages = Arrays.asList(getPackageInfo(USER_FACING_PACKAGE), -                getPackageInfo(PACKAGE_1)); -        UserBackupManagerService backupManagerService = spy( -                createUserBackupManagerServiceAndRunTasks()); -        when(backupManagerService.shouldSkipUserFacingData()).thenReturn(false); -        when(backupManagerService.shouldSkipPackage(eq(USER_FACING_PACKAGE))).thenReturn(true); - -        List<PackageInfo> filteredPackages = backupManagerService.filterUserFacingPackages( -                packages); - -        assertTrue(containsPackage(filteredPackages, USER_FACING_PACKAGE)); -        assertTrue(containsPackage(filteredPackages, PACKAGE_1)); -    } - -    private static boolean containsPackage(List<PackageInfo> packages, String targetPackage) { -        for (PackageInfo packageInfo : packages) { -            if (targetPackage.equals(packageInfo.packageName)) { -                return true; -            } -        } -        return false; -    } -      private UserBackupManagerService createUserBackupManagerServiceAndRunTasks() {          return BackupManagerServiceTestUtils.createUserBackupManagerServiceAndRunTasks(                  USER_ID, mContext, mBackupThread, mBaseStateDir, mDataDir, mTransportManager); diff --git a/services/tests/performancehinttests/src/com/android/server/power/hint/HintManagerServiceTest.java b/services/tests/performancehinttests/src/com/android/server/power/hint/HintManagerServiceTest.java index a9b4ca1e7963..7248833d876c 100644 --- a/services/tests/performancehinttests/src/com/android/server/power/hint/HintManagerServiceTest.java +++ b/services/tests/performancehinttests/src/com/android/server/power/hint/HintManagerServiceTest.java @@ -182,12 +182,6 @@ public class HintManagerServiceTest {          ApplicationInfo applicationInfo = new ApplicationInfo();          applicationInfo.category = ApplicationInfo.CATEGORY_GAME;          mSupportInfo = new SupportInfo(); -        mSupportInfo.usesSessions = true; -        mSupportInfo.sessionHints = 5; -        mSupportInfo.sessionModes = 1; -        mSupportInfo.modes = 3; -        mSupportInfo.boosts = 3; -        mSupportInfo.sessionTags = 63;          mSupportInfo.headroom = new SupportInfo.HeadroomSupportInfo();          mSupportInfo.headroom.isCpuSupported = true;          mSupportInfo.headroom.cpuMinIntervalMillis = 2000; diff --git a/services/tests/powerstatstests/src/com/android/server/power/stats/BatteryExternalStatsWorkerTest.java b/services/tests/powerstatstests/src/com/android/server/power/stats/BatteryExternalStatsWorkerTest.java index d7b60cffa623..2b152315eec4 100644 --- a/services/tests/powerstatstests/src/com/android/server/power/stats/BatteryExternalStatsWorkerTest.java +++ b/services/tests/powerstatstests/src/com/android/server/power/stats/BatteryExternalStatsWorkerTest.java @@ -39,7 +39,6 @@ import android.hardware.power.stats.StateResidencyResult;  import android.os.Handler;  import android.os.Looper;  import android.os.connectivity.WifiActivityEnergyInfo; -import android.platform.test.ravenwood.RavenwoodConfig;  import android.power.PowerStatsInternal;  import android.util.IntArray;  import android.util.SparseArray; @@ -66,9 +65,6 @@ import java.util.concurrent.CompletableFuture;  @SuppressWarnings("GuardedBy")  @android.platform.test.annotations.DisabledOnRavenwood  public class BatteryExternalStatsWorkerTest { -    @RavenwoodConfig.Config -    public final RavenwoodConfig mRavenwood = new RavenwoodConfig.Builder().build(); -      private BatteryExternalStatsWorker mBatteryExternalStatsWorker;      private TestPowerStatsInternal mPowerStatsInternal;      private Handler mHandler; diff --git a/services/tests/powerstatstests/src/com/android/server/power/stats/processor/WakelockPowerStatsProcessorTest.java b/services/tests/powerstatstests/src/com/android/server/power/stats/processor/WakelockPowerStatsProcessorTest.java index f64dc083ca1a..ed3cda0f76ef 100644 --- a/services/tests/powerstatstests/src/com/android/server/power/stats/processor/WakelockPowerStatsProcessorTest.java +++ b/services/tests/powerstatstests/src/com/android/server/power/stats/processor/WakelockPowerStatsProcessorTest.java @@ -34,7 +34,6 @@ import static org.mockito.Mockito.mock;  import android.os.BatteryConsumer;  import android.os.PersistableBundle;  import android.os.Process; -import android.platform.test.ravenwood.RavenwoodConfig;  import com.android.internal.os.BatteryStatsHistory;  import com.android.internal.os.MonotonicClock; @@ -48,11 +47,6 @@ import org.junit.Rule;  import org.junit.Test;  public class WakelockPowerStatsProcessorTest { -    @RavenwoodConfig.Config -    public static final RavenwoodConfig sConfig = new RavenwoodConfig.Builder() -            .setProvideMainThread(true) -            .build(); -      @Rule      public final BatteryUsageStatsRule mStatsRule = new BatteryUsageStatsRule()              .setAveragePower(PowerProfile.POWER_CPU_IDLE, 720); diff --git a/telephony/java/android/telephony/CarrierConfigManager.java b/telephony/java/android/telephony/CarrierConfigManager.java index 7cfdec664a92..59cb5ff37874 100644 --- a/telephony/java/android/telephony/CarrierConfigManager.java +++ b/telephony/java/android/telephony/CarrierConfigManager.java @@ -10061,6 +10061,13 @@ public class CarrierConfigManager {              "satellite_nidd_apn_name_string";      /** +     * The display name that will be used for satellite functionality within the UI. +     * The default string value for this is "Satellite". +     * @hide +     */ +    public static final String KEY_SATELLITE_DISPLAY_NAME_STRING = "satellite_display_name_string"; + +    /**       * Default value {@code true}, meaning when an emergency call request comes in, if the device is       * in emergency satellite mode but hasn't sent the first satellite datagram, then exits       * satellite mode to allow the emergency call to go through. @@ -11343,6 +11350,7 @@ public class CarrierConfigManager {          sDefaults.putBoolean(KEY_EMERGENCY_MESSAGING_SUPPORTED_BOOL, false);          sDefaults.putInt(KEY_EMERGENCY_CALL_TO_SATELLITE_T911_HANDOVER_TIMEOUT_MILLIS_INT,                  (int) TimeUnit.SECONDS.toMillis(30)); +        sDefaults.putString(KEY_SATELLITE_DISPLAY_NAME_STRING, "");          sDefaults.putBoolean(KEY_SATELLITE_ESOS_SUPPORTED_BOOL, false);          sDefaults.putBoolean(KEY_SATELLITE_ROAMING_P2P_SMS_SUPPORTED_BOOL, false);          sDefaults.putString(KEY_SATELLITE_NIDD_APN_NAME_STRING, ""); diff --git a/telephony/java/android/telephony/satellite/SatelliteManager.java b/telephony/java/android/telephony/satellite/SatelliteManager.java index db5689b7a208..1025c1506d4a 100644 --- a/telephony/java/android/telephony/satellite/SatelliteManager.java +++ b/telephony/java/android/telephony/satellite/SatelliteManager.java @@ -292,6 +292,13 @@ public final class SatelliteManager {      /**       * Bundle key to get the response from +     * {@link #requestSatelliteDisplayName(Executor, OutcomeReceiver)}. +     * @hide +     */ +    public static final String KEY_SATELLITE_DISPLAY_NAME = "satellite_display_name"; + +    /** +     * Bundle key to get the response from       * {@link #requestSelectedNbIotSatelliteSubscriptionId(Executor, OutcomeReceiver)}.       * @hide       */ @@ -3594,6 +3601,65 @@ public final class SatelliteManager {      }      /** +     * Request to get the display name of satellite feature in the UI. +     * +     * @param executor The executor on which the callback will be called. +     * @param callback The callback object to which the result will be delivered. +     *                 If the request is successful, {@link OutcomeReceiver#onResult(Object)} +     *                 will return display name of the satellite feature in string format. Defaults +     *                 to satellite. If the request is not successful, +     *                 {@link OutcomeReceiver#onError(Throwable)} will return an error with +     *                 a SatelliteException. +     * +     * @throws SecurityException     if the caller doesn't have required permission. +     * @throws IllegalStateException if the Telephony process is not currently available. +     * @hide +     */ +    @RequiresPermission(Manifest.permission.SATELLITE_COMMUNICATION) +    public void requestSatelliteDisplayName( +            @NonNull @CallbackExecutor Executor executor, +            @NonNull OutcomeReceiver<String, SatelliteException> callback) { +        Objects.requireNonNull(executor); +        Objects.requireNonNull(callback); + +        try { +            ITelephony telephony = getITelephony(); +            if (telephony != null) { +                ResultReceiver receiver = new ResultReceiver(null) { +                    @Override +                    protected void onReceiveResult(int resultCode, Bundle resultData) { +                        if (resultCode == SATELLITE_RESULT_SUCCESS) { +                            if (resultData.containsKey(KEY_SATELLITE_DISPLAY_NAME)) { +                                String satelliteDisplayName = +                                        resultData.getString(KEY_SATELLITE_DISPLAY_NAME); +                                executor.execute(() -> Binder.withCleanCallingIdentity(() -> +                                        callback.onResult(satelliteDisplayName))); +                            } else { +                                loge("KEY_SATELLITE_DISPLAY_NAME does not exist."); +                                executor.execute(() -> Binder.withCleanCallingIdentity(() -> +                                        callback.onError(new SatelliteException( +                                                SATELLITE_RESULT_REQUEST_FAILED)))); +                            } +                        } else { +                            executor.execute(() -> Binder.withCleanCallingIdentity(() -> +                                    callback.onError(new SatelliteException(resultCode)))); +                        } +                    } +                }; +                telephony.requestSatelliteDisplayName(receiver); +            } else { +                loge("requestSatelliteDisplayName() invalid telephony"); +                executor.execute(() -> Binder.withCleanCallingIdentity(() -> callback.onError( +                        new SatelliteException(SATELLITE_RESULT_ILLEGAL_STATE)))); +            } +        } catch (RemoteException ex) { +            loge("requestSatelliteDisplayName() RemoteException: " + ex); +            executor.execute(() -> Binder.withCleanCallingIdentity(() -> callback.onError( +                    new SatelliteException(SATELLITE_RESULT_ILLEGAL_STATE)))); +        } +    } + +    /**       * Deliver the list of provisioned satellite subscriber infos.       *       * @param list The list of provisioned satellite subscriber infos. diff --git a/telephony/java/com/android/internal/telephony/ITelephony.aidl b/telephony/java/com/android/internal/telephony/ITelephony.aidl index 131f46bc790e..da7669fd81ad 100644 --- a/telephony/java/com/android/internal/telephony/ITelephony.aidl +++ b/telephony/java/com/android/internal/telephony/ITelephony.aidl @@ -3471,6 +3471,17 @@ interface ITelephony {      void requestSatelliteSubscriberProvisionStatus(in ResultReceiver result);      /** +     * Request to get the name to display for Satellite subscription. +     * +     * @param receiver The result receiver that returns the diplay name to be used for the satellite +     * subscription. +     * @hide +     */ +    @JavaPassthrough(annotation="@android.annotation.RequiresPermission(" +            + "android.Manifest.permission.SATELLITE_COMMUNICATION)") +    void requestSatelliteDisplayName(in ResultReceiver receiver); + +    /**       * Deliver the list of provisioned satellite subscriber infos.       *       * @param list The list of provisioned satellite subscriber infos. diff --git a/tests/Input/src/com/android/server/input/InputDataStoreTests.kt b/tests/Input/src/com/android/server/input/InputDataStoreTests.kt new file mode 100644 index 000000000000..78c828bafd8f --- /dev/null +++ b/tests/Input/src/com/android/server/input/InputDataStoreTests.kt @@ -0,0 +1,504 @@ +/* + * Copyright 2024 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 com.android.server.input + +import android.app.role.RoleManager +import android.content.Context +import android.content.ContextWrapper +import android.content.Intent +import android.hardware.input.AppLaunchData +import android.hardware.input.InputGestureData +import android.hardware.input.KeyGestureEvent +import android.platform.test.annotations.Presubmit +import android.util.AtomicFile +import android.view.KeyEvent +import androidx.test.core.app.ApplicationProvider +import java.io.ByteArrayInputStream +import java.io.ByteArrayOutputStream +import java.io.File +import java.io.FileOutputStream +import java.io.InputStream +import java.nio.charset.StandardCharsets +import kotlin.test.assertEquals +import org.junit.Before +import org.junit.Test +import org.mockito.Mockito + +/** + * Tests for {@link InputDataStore}. + * + * Build/Install/Run: + * atest InputTests:InputDataStoreTests + */ +@Presubmit +class InputDataStoreTests { + +    companion object { +        const val USER_ID = 1 +    } + +    private lateinit var context: Context +    private lateinit var inputDataStore: InputDataStore +    private lateinit var tempFile: File + +    @Before +    fun setup() { +        context = Mockito.spy(ContextWrapper(ApplicationProvider.getApplicationContext())) +        setupInputDataStore() +    } + +    private fun setupInputDataStore() { +        tempFile = File.createTempFile("input_gestures", ".xml") +        inputDataStore = InputDataStore(object : InputDataStore.FileInjector("input_gestures") { +            private val atomicFile: AtomicFile = AtomicFile(tempFile) + +            override fun openRead(userId: Int): InputStream? { +                return atomicFile.openRead() +            } + +            override fun startWrite(userId: Int): FileOutputStream? { +                return atomicFile.startWrite() +            } + +            override fun finishWrite(userId: Int, fos: FileOutputStream?, success: Boolean) { +                if (success) { +                    atomicFile.finishWrite(fos) +                } else { +                    atomicFile.failWrite(fos) +                } +            } +        }) +    } + +    private fun getPrintableXml(inputGestures: List<InputGestureData>): String { +        val outputStream = ByteArrayOutputStream() +        inputDataStore.writeInputGestureXml(outputStream, true, inputGestures) +        return outputStream.toString(StandardCharsets.UTF_8).trimIndent() +    } + +    @Test +    fun saveToDiskKeyGesturesOnly() { +        val inputGestures = listOf( +            InputGestureData.Builder() +                .setTrigger( +                    InputGestureData.createKeyTrigger( +                        KeyEvent.KEYCODE_H, +                        KeyEvent.META_META_ON +                    ) +                ) +                .setKeyGestureType(KeyGestureEvent.KEY_GESTURE_TYPE_HOME) +                .build(), +            InputGestureData.Builder() +                .setTrigger( +                    InputGestureData.createKeyTrigger( +                        KeyEvent.KEYCODE_1, +                        KeyEvent.META_META_ON or KeyEvent.META_CTRL_ON +                    ) +                ) +                .setKeyGestureType(KeyGestureEvent.KEY_GESTURE_TYPE_BACK) +                .build(), +            InputGestureData.Builder() +                .setTrigger( +                    InputGestureData.createKeyTrigger( +                        KeyEvent.KEYCODE_2, +                        KeyEvent.META_META_ON +                    ) +                ) +                .setKeyGestureType(KeyGestureEvent.KEY_GESTURE_TYPE_ALL_APPS) +                .build() +        ) + +        inputDataStore.saveInputGestures(USER_ID, inputGestures) +        assertEquals( +            inputGestures, +            inputDataStore.loadInputGestures(USER_ID), +            getPrintableXml(inputGestures) +        ) +    } + +    @Test +    fun saveToDiskTouchpadGestures() { +        val inputGestures = listOf( +            InputGestureData.Builder() +                .setTrigger( +                    InputGestureData.createTouchpadTrigger( +                        InputGestureData.TOUCHPAD_GESTURE_TYPE_THREE_FINGER_TAP +                    ) +                ) +                .setKeyGestureType(KeyGestureEvent.KEY_GESTURE_TYPE_HOME) +                .build() +        ) + +        inputDataStore.saveInputGestures(USER_ID, inputGestures) +        assertEquals( +            inputGestures, +            inputDataStore.loadInputGestures(USER_ID), +            getPrintableXml(inputGestures) +        ) +    } + +    @Test +    fun saveToDiskAppLaunchGestures() { +        val inputGestures = listOf( +            InputGestureData.Builder() +                .setTrigger( +                    InputGestureData.createTouchpadTrigger( +                        InputGestureData.TOUCHPAD_GESTURE_TYPE_THREE_FINGER_TAP +                    ) +                ) +                .setKeyGestureType(KeyGestureEvent.KEY_GESTURE_TYPE_LAUNCH_APPLICATION) +                .setAppLaunchData(AppLaunchData.createLaunchDataForRole(RoleManager.ROLE_BROWSER)) +                .build(), +            InputGestureData.Builder() +                .setTrigger( +                    InputGestureData.createKeyTrigger( +                        KeyEvent.KEYCODE_2, +                        KeyEvent.META_META_ON +                    ) +                ) +                .setKeyGestureType(KeyGestureEvent.KEY_GESTURE_TYPE_LAUNCH_APPLICATION) +                .setAppLaunchData(AppLaunchData.createLaunchDataForCategory(Intent.CATEGORY_APP_CONTACTS)) +                .build(), +            InputGestureData.Builder() +                .setTrigger( +                    InputGestureData.createKeyTrigger( +                        KeyEvent.KEYCODE_1, +                        KeyEvent.META_META_ON +                    ) +                ) +                .setKeyGestureType(KeyGestureEvent.KEY_GESTURE_TYPE_LAUNCH_APPLICATION) +                .setAppLaunchData( +                    AppLaunchData.createLaunchDataForComponent( +                        "com.test", +                        "com.test.BookmarkTest" +                    ) +                ) +                .build() +        ) + +        inputDataStore.saveInputGestures(USER_ID, inputGestures) +        assertEquals( +            inputGestures, +            inputDataStore.loadInputGestures(USER_ID), +            getPrintableXml(inputGestures) +        ) +    } + +    @Test +    fun saveToDiskCombinedGestures() { +        val inputGestures = listOf( +            InputGestureData.Builder() +                .setTrigger( +                    InputGestureData.createKeyTrigger( +                        KeyEvent.KEYCODE_1, +                        KeyEvent.META_META_ON or KeyEvent.META_CTRL_ON +                    ) +                ) +                .setKeyGestureType(KeyGestureEvent.KEY_GESTURE_TYPE_BACK) +                .build(), +            InputGestureData.Builder() +                .setTrigger( +                    InputGestureData.createKeyTrigger( +                        KeyEvent.KEYCODE_2, +                        KeyEvent.META_META_ON +                    ) +                ) +                .setKeyGestureType(KeyGestureEvent.KEY_GESTURE_TYPE_ALL_APPS) +                .build(), +            InputGestureData.Builder() +                .setTrigger( +                    InputGestureData.createTouchpadTrigger( +                        InputGestureData.TOUCHPAD_GESTURE_TYPE_THREE_FINGER_TAP +                    ) +                ) +                .setKeyGestureType(KeyGestureEvent.KEY_GESTURE_TYPE_HOME) +                .build(), +            InputGestureData.Builder() +                .setTrigger( +                    InputGestureData.createKeyTrigger( +                        KeyEvent.KEYCODE_9, +                        KeyEvent.META_META_ON +                    ) +                ) +                .setKeyGestureType(KeyGestureEvent.KEY_GESTURE_TYPE_LAUNCH_APPLICATION) +                .setAppLaunchData(AppLaunchData.createLaunchDataForCategory(Intent.CATEGORY_APP_CONTACTS)) +                .build(), +        ) + +        inputDataStore.saveInputGestures(USER_ID, inputGestures) +        assertEquals( +            inputGestures, +            inputDataStore.loadInputGestures(USER_ID), +            getPrintableXml(inputGestures) +        ) +    } + +    @Test +    fun validXmlParse() { +        val xmlData = """ +            <?xml version='1.0' encoding='utf-8' standalone='yes' ?> +            <root> +                <input_gesture_list> +                    <input_gesture key_gesture_type="3"> +                        <key_trigger keycode="8" modifiers="69632" /> +                    </input_gesture> +                    <input_gesture key_gesture_type="21"> +                        <key_trigger keycode="9" modifiers="65536" /> +                    </input_gesture> +                    <input_gesture key_gesture_type="1"> +                        <touchpad_trigger touchpad_gesture_type="1" /> +                    </input_gesture> +                </input_gesture_list> +            </root>""".trimIndent() +        val validInputGestures = listOf( +            InputGestureData.Builder() +                .setTrigger( +                    InputGestureData.createKeyTrigger( +                        KeyEvent.KEYCODE_1, +                        KeyEvent.META_META_ON or KeyEvent.META_CTRL_ON +                    ) +                ) +                .setKeyGestureType(KeyGestureEvent.KEY_GESTURE_TYPE_BACK) +                .build(), +            InputGestureData.Builder() +                .setTrigger( +                    InputGestureData.createKeyTrigger( +                        KeyEvent.KEYCODE_2, +                        KeyEvent.META_META_ON +                    ) +                ) +                .setKeyGestureType(KeyGestureEvent.KEY_GESTURE_TYPE_ALL_APPS) +                .build(), +            InputGestureData.Builder() +                .setTrigger( +                    InputGestureData.createTouchpadTrigger( +                        InputGestureData.TOUCHPAD_GESTURE_TYPE_THREE_FINGER_TAP +                    ) +                ) +                .setKeyGestureType(KeyGestureEvent.KEY_GESTURE_TYPE_HOME) +                .build() +        ) +        val inputStream = ByteArrayInputStream(xmlData.toByteArray(Charsets.UTF_8)) +        assertEquals( +            validInputGestures, +            inputDataStore.readInputGesturesXml(inputStream, true) +        ) +    } + +    @Test +    fun missingTriggerData() { +        val xmlData = """ +            <?xml version='1.0' encoding='utf-8' standalone='yes' ?> +            <root> +                <input_gesture_list> +                    <input_gesture key_gesture_type="3"> +                    </input_gesture> +                    <input_gesture key_gesture_type="21"> +                        <key_trigger keycode="9" modifiers="65536" /> +                    </input_gesture> +                    <input_gesture key_gesture_type="1"> +                        <touchpad_trigger touchpad_gesture_type="1" /> +                    </input_gesture> +                </input_gesture_list> +            </root>""".trimIndent() +        val validInputGestures = listOf( +            InputGestureData.Builder() +                .setTrigger( +                    InputGestureData.createKeyTrigger( +                        KeyEvent.KEYCODE_2, +                        KeyEvent.META_META_ON +                    ) +                ) +                .setKeyGestureType(KeyGestureEvent.KEY_GESTURE_TYPE_ALL_APPS) +                .build(), +            InputGestureData.Builder() +                .setTrigger( +                    InputGestureData.createTouchpadTrigger( +                        InputGestureData.TOUCHPAD_GESTURE_TYPE_THREE_FINGER_TAP +                    ) +                ) +                .setKeyGestureType(KeyGestureEvent.KEY_GESTURE_TYPE_HOME) +                .build() +        ) +        val inputStream = ByteArrayInputStream(xmlData.toByteArray(Charsets.UTF_8)) +        assertEquals( +            validInputGestures, +            inputDataStore.readInputGesturesXml(inputStream, true) +        ) +    } + +    @Test +    fun invalidKeycode() { +        val xmlData = """ +            <?xml version='1.0' encoding='utf-8' standalone='yes' ?> +            <root> +                <input_gesture_list> +                    <input_gesture key_gesture_type="3"> +                        <key_trigger keycode="8" modifiers="69632" /> +                    </input_gesture> +                    <input_gesture key_gesture_type="21"> +                        <key_trigger keycode="9999999" modifiers="65536" /> +                    </input_gesture> +                    <input_gesture key_gesture_type="1"> +                        <touchpad_trigger touchpad_gesture_type="1" /> +                    </input_gesture> +                </input_gesture_list> +            </root>""".trimIndent() +        val validInputGestures = listOf( +            InputGestureData.Builder() +                .setTrigger( +                    InputGestureData.createKeyTrigger( +                        KeyEvent.KEYCODE_1, +                        KeyEvent.META_META_ON or KeyEvent.META_CTRL_ON +                    ) +                ) +                .setKeyGestureType(KeyGestureEvent.KEY_GESTURE_TYPE_BACK) +                .build(), +            InputGestureData.Builder() +                .setTrigger( +                    InputGestureData.createTouchpadTrigger( +                        InputGestureData.TOUCHPAD_GESTURE_TYPE_THREE_FINGER_TAP +                    ) +                ) +                .setKeyGestureType(KeyGestureEvent.KEY_GESTURE_TYPE_HOME) +                .build() +        ) +        val inputStream = ByteArrayInputStream(xmlData.toByteArray(Charsets.UTF_8)) +        assertEquals( +            validInputGestures, +            inputDataStore.readInputGesturesXml(inputStream, true) +        ) +    } + +    @Test +    fun invalidTriggerName() { +        val xmlData = """ +            <?xml version='1.0' encoding='utf-8' standalone='yes' ?> +                <root> +                <input_gesture_list> +                    <input_gesture key_gesture_type="3"> +                        <key_trigger keycode="8" modifiers="69632" /> +                    </input_gesture> +                    <input_gesture key_gesture_type="21"> +                        <key_trigger keycode="9" modifiers="65536" /> +                    </input_gesture> +                    <input_gesture key_gesture_type="1"> +                        <invalid_trigger_name touchpad_gesture_type="1" /> +                    </input_gesture> +                </input_gesture_list> +            </root>""".trimIndent() +        val validInputGestures = listOf( +            InputGestureData.Builder() +                .setTrigger( +                    InputGestureData.createKeyTrigger( +                        KeyEvent.KEYCODE_1, +                        KeyEvent.META_META_ON or KeyEvent.META_CTRL_ON +                    ) +                ) +                .setKeyGestureType(KeyGestureEvent.KEY_GESTURE_TYPE_BACK) +                .build(), +            InputGestureData.Builder() +                .setTrigger( +                    InputGestureData.createKeyTrigger( +                        KeyEvent.KEYCODE_2, +                        KeyEvent.META_META_ON +                    ) +                ) +                .setKeyGestureType(KeyGestureEvent.KEY_GESTURE_TYPE_ALL_APPS) +                .build(), +        ) +        val inputStream = ByteArrayInputStream(xmlData.toByteArray(Charsets.UTF_8)) +        assertEquals( +            validInputGestures, +            inputDataStore.readInputGesturesXml(inputStream, true) +        ) +    } + +    @Test +    fun invalidTouchpadGestureType() { +        val xmlData = """ +            <?xml version='1.0' encoding='utf-8' standalone='yes' ?> +            <root> +                <input_gesture_list> +                    <input_gesture key_gesture_type="3"> +                        <key_trigger keycode="8" modifiers="69632" /> +                    </input_gesture> +                    <input_gesture key_gesture_type="21"> +                    <key_trigger keycode="9" modifiers="65536" /> +                    </input_gesture> +                    <input_gesture key_gesture_type="1"> +                        <touchpad_trigger touchpad_gesture_type="9999" /> +                    </input_gesture> +                </input_gesture_list> +            </root>""".trimIndent() +        val validInputGestures = listOf( +            InputGestureData.Builder() +                .setTrigger( +                    InputGestureData.createKeyTrigger( +                        KeyEvent.KEYCODE_1, +                        KeyEvent.META_META_ON or KeyEvent.META_CTRL_ON +                    ) +                ) +                .setKeyGestureType(KeyGestureEvent.KEY_GESTURE_TYPE_BACK) +                .build(), +            InputGestureData.Builder() +                .setTrigger( +                    InputGestureData.createKeyTrigger( +                        KeyEvent.KEYCODE_2, +                        KeyEvent.META_META_ON +                    ) +                ) +                .setKeyGestureType(KeyGestureEvent.KEY_GESTURE_TYPE_ALL_APPS) +                .build(), +        ) +        val inputStream = ByteArrayInputStream(xmlData.toByteArray(Charsets.UTF_8)) +        assertEquals( +            validInputGestures, +            inputDataStore.readInputGesturesXml(inputStream, true) +        ) +    } + +    @Test +    fun emptyInputGestureList() { +        val xmlData = """ +            <?xml version='1.0' encoding='utf-8' standalone='yes' ?> +            <root> +                <input_gesture_list> +                </input_gesture_list> +            </root>""".trimIndent() +        val inputStream = ByteArrayInputStream(xmlData.toByteArray(Charsets.UTF_8)) +        assertEquals( +            listOf(), +            inputDataStore.readInputGesturesXml(inputStream, true) +        ) +    } + +    @Test +    fun invalidTag() { +        val xmlData = """ +            <?xml version='1.0' encoding='utf-8' standalone='yes' ?> +            <root> +                <invalid_tag_name> +                </invalid_tag_name> +            </root>""".trimIndent() +        val inputStream = ByteArrayInputStream(xmlData.toByteArray(Charsets.UTF_8)) +        assertEquals( +            listOf(), +            inputDataStore.readInputGesturesXml(inputStream, true) +        ) +    } +}
\ No newline at end of file diff --git a/tests/Input/src/com/android/server/input/KeyGestureControllerTests.kt b/tests/Input/src/com/android/server/input/KeyGestureControllerTests.kt index 36a89f95aa6f..c6d281914f2c 100644 --- a/tests/Input/src/com/android/server/input/KeyGestureControllerTests.kt +++ b/tests/Input/src/com/android/server/input/KeyGestureControllerTests.kt @@ -40,6 +40,7 @@ import android.os.test.TestLooper  import android.platform.test.annotations.EnableFlags  import android.platform.test.annotations.Presubmit  import android.platform.test.flag.junit.SetFlagsRule +import android.util.AtomicFile  import android.view.InputDevice  import android.view.KeyCharacterMap  import android.view.KeyEvent @@ -50,6 +51,9 @@ import com.android.internal.R  import com.android.internal.annotations.Keep  import com.android.internal.util.FrameworkStatsLog  import com.android.modules.utils.testing.ExtendedMockitoRule +import java.io.File +import java.io.FileOutputStream +import java.io.InputStream  import junitparams.JUnitParamsRunner  import junitparams.Parameters  import org.junit.After @@ -123,6 +127,8 @@ class KeyGestureControllerTests {      private lateinit var keyGestureController: KeyGestureController      private lateinit var inputManagerGlobalSession: InputManagerGlobal.TestSession      private lateinit var testLooper: TestLooper +    private lateinit var tempFile: File +    private lateinit var inputDataStore: InputDataStore      private var events = mutableListOf<KeyGestureEvent>()      @Before @@ -133,6 +139,31 @@ class KeyGestureControllerTests {          setupBehaviors()          testLooper = TestLooper()          currentPid = Process.myPid() +        tempFile = File.createTempFile("input_gestures", ".xml") +        inputDataStore = +            InputDataStore(object : InputDataStore.FileInjector("input_gestures.xml") { +                private val atomicFile: AtomicFile = AtomicFile(tempFile) + +                override fun openRead(userId: Int): InputStream? { +                    return atomicFile.openRead() +                } + +                override fun startWrite(userId: Int): FileOutputStream? { +                    return atomicFile.startWrite() +                } + +                override fun finishWrite(userId: Int, fos: FileOutputStream?, success: Boolean) { +                    if (success) { +                        atomicFile.finishWrite(fos) +                    } else { +                        atomicFile.failWrite(fos) +                    } +                } + +                override fun getAtomicFileForUserId(userId: Int): AtomicFile { +                    return atomicFile +                } +            })      }      @After @@ -174,10 +205,12 @@ class KeyGestureControllerTests {      }      private fun setupKeyGestureController() { -        keyGestureController = KeyGestureController(context, testLooper.looper) +        keyGestureController = +            KeyGestureController(context, testLooper.looper, inputDataStore)          Mockito.`when`(iInputManager.getAppLaunchBookmarks())              .thenReturn(keyGestureController.appLaunchBookmarks)          keyGestureController.systemRunning() +        testLooper.dispatchAll()      }      private fun notifyHomeGestureCompleted() { @@ -1424,6 +1457,45 @@ class KeyGestureControllerTests {          testKeyGestureInternal(test)      } +    @Test +    @Parameters(method = "customInputGesturesTestArguments") +    fun testCustomKeyGesturesSavedAndLoadedByController(test: TestData) { +        val userId = 10 +        setupKeyGestureController() +        val builder = InputGestureData.Builder() +            .setKeyGestureType(test.expectedKeyGestureType) +            .setTrigger( +                InputGestureData.createKeyTrigger( +                    test.expectedKeys[0], +                    test.expectedModifierState +                ) +            ) +        if (test.expectedAppLaunchData != null) { +            builder.setAppLaunchData(test.expectedAppLaunchData) +        } +        val inputGestureData = builder.build() + +        keyGestureController.setCurrentUserId(userId) +        testLooper.dispatchAll() +        keyGestureController.addCustomInputGesture(userId, inputGestureData.aidlData) +        testLooper.dispatchAll() + +        // Reinitialize the gesture controller simulating a login/logout for the user. +        setupKeyGestureController() +        keyGestureController.setCurrentUserId(userId) +        testLooper.dispatchAll() +        val savedInputGestures = keyGestureController.getCustomInputGestures(userId, null) +        assertEquals( +            "Test: $test doesn't produce correct number of saved input gestures", +            1, +            savedInputGestures.size +        ) +        assertEquals( +            "Test: $test doesn't produce correct input gesture data", inputGestureData, +            InputGestureData(savedInputGestures[0]) +        ) +    } +      class TouchpadTestData(          val name: String,          val touchpadGestureType: Int, @@ -1502,6 +1574,39 @@ class KeyGestureControllerTests {          keyGestureController.unregisterKeyGestureHandler(handler, 0)      } +    @Test +    @Parameters(method = "customTouchpadGesturesTestArguments") +    fun testCustomTouchpadGesturesSavedAndLoadedByController(test: TouchpadTestData) { +        val userId = 10 +        setupKeyGestureController() +        val builder = InputGestureData.Builder() +            .setKeyGestureType(test.expectedKeyGestureType) +            .setTrigger(InputGestureData.createTouchpadTrigger(test.touchpadGestureType)) +        if (test.expectedAppLaunchData != null) { +            builder.setAppLaunchData(test.expectedAppLaunchData) +        } +        val inputGestureData = builder.build() +        keyGestureController.setCurrentUserId(userId) +        testLooper.dispatchAll() +        keyGestureController.addCustomInputGesture(userId, inputGestureData.aidlData) +        testLooper.dispatchAll() + +        // Reinitialize the gesture controller simulating a login/logout for the user. +        setupKeyGestureController() +        keyGestureController.setCurrentUserId(userId) +        testLooper.dispatchAll() +        val savedInputGestures = keyGestureController.getCustomInputGestures(userId, null) +        assertEquals( +            "Test: $test doesn't produce correct number of saved input gestures", +            1, +            savedInputGestures.size +        ) +        assertEquals( +            "Test: $test doesn't produce correct input gesture data", inputGestureData, +            InputGestureData(savedInputGestures[0]) +        ) +    } +      private fun testKeyGestureInternal(test: TestData) {          val handledEvents = mutableListOf<KeyGestureEvent>()          val handler = KeyGestureHandler { event, _ -> diff --git a/tests/vcn/java/com/android/server/vcn/VcnGatewayConnectionConnectedStateTest.java b/tests/vcn/java/com/android/server/vcn/VcnGatewayConnectionConnectedStateTest.java index 76be232c2fe3..74db6a5211a0 100644 --- a/tests/vcn/java/com/android/server/vcn/VcnGatewayConnectionConnectedStateTest.java +++ b/tests/vcn/java/com/android/server/vcn/VcnGatewayConnectionConnectedStateTest.java @@ -659,7 +659,6 @@ public class VcnGatewayConnectionConnectedStateTest extends VcnGatewayConnection      private void verifySetSafeModeAlarm(              boolean safeModeEnabledByCaller, -            boolean safeModeConfigFlagEnabled,              boolean expectingSafeModeEnabled)              throws Exception {          final VcnGatewayConnectionConfig config = @@ -670,7 +669,6 @@ public class VcnGatewayConnectionConnectedStateTest extends VcnGatewayConnection                  mock(VcnGatewayConnection.Dependencies.class);          setUpWakeupMessage(                  mSafeModeTimeoutAlarm, VcnGatewayConnection.SAFEMODE_TIMEOUT_ALARM, deps); -        doReturn(safeModeConfigFlagEnabled).when(mFeatureFlags).safeModeConfig();          final VcnGatewayConnection connection =                  new VcnGatewayConnection( @@ -694,37 +692,19 @@ public class VcnGatewayConnectionConnectedStateTest extends VcnGatewayConnection      }      @Test -    public void testSafeModeEnabled_configFlagEnabled() throws Exception { +    public void testSafeModeEnabled() throws Exception {          verifySetSafeModeAlarm(                  true /* safeModeEnabledByCaller */, -                true /* safeModeConfigFlagEnabled */,                  true /* expectingSafeModeEnabled */);      }      @Test -    public void testSafeModeEnabled_configFlagDisabled() throws Exception { -        verifySetSafeModeAlarm( -                true /* safeModeEnabledByCaller */, -                false /* safeModeConfigFlagEnabled */, -                true /* expectingSafeModeEnabled */); -    } - -    @Test -    public void testSafeModeDisabled_configFlagEnabled() throws Exception { +    public void testSafeModeDisabled() throws Exception {          verifySetSafeModeAlarm(                  false /* safeModeEnabledByCaller */, -                true /* safeModeConfigFlagEnabled */,                  false /* expectingSafeModeEnabled */);      } -    @Test -    public void testSafeModeDisabled_configFlagDisabled() throws Exception { -        verifySetSafeModeAlarm( -                false /* safeModeEnabledByCaller */, -                false /* safeModeConfigFlagEnabled */, -                true /* expectingSafeModeEnabled */); -    } -      private Consumer<VcnNetworkAgent> setupNetworkAndGetUnwantedCallback() {          triggerChildOpened();          mTestLooper.dispatchAll();  |