diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index f537415..100a071 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -704,7 +704,7 @@
         </activity>
 
         <activity android:name="Settings$CombinedBiometricProfileSettingsActivity"
-                  android:label="@string/security_settings_biometric_preference_title"
+                  android:label="@string/security_settings_work_biometric_preference_title"
                   android:exported="false">
             <meta-data android:name="com.android.settings.FRAGMENT_CLASS"
                        android:value="com.android.settings.biometrics.combination.CombinedBiometricProfileSettings" />
@@ -1358,7 +1358,7 @@
         <activity
             android:name="Settings$SmartAutoRotateSettingsActivity"
             android:label="@string/accelerometer_title"
-            android:icon="@drawable/ic_screen_rotation_24dp"
+            android:icon="@drawable/ic_screen_rotation"
             android:exported="true">
             <intent-filter android:priority="1">
                 <action android:name="android.settings.AUTO_ROTATE_SETTINGS" />
@@ -4204,7 +4204,6 @@
                 <action android:name="android.settings.SYNC_SETTINGS" />
                 <category android:name="android.intent.category.BROWSABLE" />
                 <category android:name="android.intent.category.DEFAULT" />
-                <data android:scheme="package" />
             </intent-filter>
             <intent-filter android:priority="1">
                 <action android:name="android.settings.CREDENTIAL_PROVIDER" />
@@ -4827,6 +4826,22 @@
         </receiver>
 
         <activity
+            android:name=".notetask.shortcut.CreateNoteTaskShortcutActivity"
+            android:enabled="false"
+            android:exported="true"
+            android:excludeFromRecents="true"
+            android:resizeableActivity="false"
+            android:theme="@android:style/Theme.NoDisplay"
+            android:label="@string/note_task_button_label"
+            android:icon="@drawable/ic_note_task_shortcut_widget">
+
+            <intent-filter>
+                <action android:name="android.intent.action.CREATE_SHORTCUT" />
+                <category android:name="android.intent.category.DEFAULT" />
+            </intent-filter>
+        </activity>
+
+        <activity
             android:name="com.android.settings.bluetooth.QrCodeScanModeActivity"
             android:permission="android.permission.BLUETOOTH_CONNECT"
             android:exported="true">
diff --git a/OWNERS b/OWNERS
index 881e2c7..6d4f95f 100644
--- a/OWNERS
+++ b/OWNERS
@@ -2,21 +2,18 @@
 android-settings-core-eng+gerrit@google.com
 
 # People who can approve changes for submission
-arcwang@google.com
+cantol@google.com
 chaohuiw@google.com
 chiujason@google.com
-cyl@google.com
+dswliu@google.com
 edgarwang@google.com
-llz@google.com
 millchen@google.com
 songchenxi@google.com
-stanleytfwang@google.com
 sunnyshao@google.com
 yantingyang@google.com
 ykhung@google.com
 
 # Emergency only
-lijun@google.com
 wangqi@google.com
 yanglu@google.com
 
diff --git a/color-check-baseline.xml b/color-check-baseline.xml
index 2fd63fc..509d9ae 100644
--- a/color-check-baseline.xml
+++ b/color-check-baseline.xml
@@ -4437,6 +4437,22 @@
         priority="4"
         summary="Using hardcoded color"
         explanation="Hardcoded color values are bad because theme changes cannot be uniformly applied.Instead use the theme specific colors such as `?android:attr/textColorPrimary` in attributes.&#xA;This ensures that a theme change from a light to a dark theme can be uniformlyapplied across the app."
+        errorLine1="            android:color=&quot;@color/homepage_display_background&quot; />"
+        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="res/drawable/ic_screen_rotation.xml"
+            line="24"
+            column="13"/>
+    </issue>
+
+    <issue
+        id="HardCodedColor"
+        severity="Error"
+        message="Avoid using hardcoded color"
+        category="Correctness"
+        priority="4"
+        summary="Using hardcoded color"
+        explanation="Hardcoded color values are bad because theme changes cannot be uniformly applied.Instead use the theme specific colors such as `?android:attr/textColorPrimary` in attributes.&#xA;This ensures that a theme change from a light to a dark theme can be uniformlyapplied across the app."
         errorLine1="    &lt;background android:drawable=&quot;@color/shortcut_background&quot;/>"
         errorLine2="                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
diff --git a/res/drawable/ic_note_task_shortcut_widget.xml b/res/drawable/ic_note_task_shortcut_widget.xml
new file mode 100644
index 0000000..e37c22a
--- /dev/null
+++ b/res/drawable/ic_note_task_shortcut_widget.xml
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="utf-8"?><!--
+  ~ Copyright (C) 2023 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.
+  -->
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+    android:width="24dp"
+    android:height="24dp"
+    android:viewportHeight="24"
+    android:viewportWidth="24">
+    <path
+        android:fillAlpha="1"
+        android:fillColor="#636C6F"
+        android:fillType="nonZero"
+        android:pathData="M17.6258,4.96L19.0358,6.37L7.4058,18.01L5.9958,16.6L17.6258,4.96ZM16.1358,3.62L4.1258,15.63L3.0158,19.83C2.9058,20.45 3.3858,21 3.9958,21C4.0558,21 4.1058,21 4.1658,20.99L8.3658,19.88L20.3758,7.86C20.7758,7.46 20.9958,6.93 20.9958,6.37C20.9958,5.81 20.7758,5.28 20.3758,4.88L19.1058,3.61C18.7158,3.22 18.1858,3 17.6258,3C17.0658,3 16.5358,3.22 16.1358,3.62Z" />
+    <path
+        android:fillAlpha="1"
+        android:fillColor="#636C6F"
+        android:fillType="nonZero"
+        android:pathData="M20.1936,15.3369C20.3748,16.3837 19.9151,17.5414 18.8846,18.7597C19.1546,18.872 19.4576,18.9452 19.7724,18.9867C20.0839,19.0278 20.3683,19.0325 20.5749,19.0266C20.6772,19.0236 20.7578,19.0181 20.8101,19.0138C20.8362,19.0116 20.855,19.0097 20.8657,19.0085L20.8754,19.0074L20.875,19.0075C21.4217,18.9385 21.9214,19.325 21.9918,19.8718C22.0624,20.4195 21.6756,20.9208 21.1279,20.9914L21,19.9996C21.1279,20.9914 21.1265,20.9916 21.1265,20.9916L21.1249,20.9918L21.1211,20.9923L21.1107,20.9935L21.0795,20.997C21.0542,20.9998 21.0199,21.0032 20.9775,21.0067C20.8929,21.0138 20.7753,21.0216 20.6323,21.0257C20.3481,21.0339 19.9533,21.0279 19.5109,20.9695C18.873,20.8854 18.0393,20.6793 17.3106,20.1662C16.9605,20.3559 16.5876,20.4952 16.2299,20.6003C15.5742,20.7927 14.8754,20.8968 14.2534,20.9534C13.6801,21.0055 13.4553,21.0037 13.1015,21.0008C13.0689,21.0005 13.0352,21.0002 13,21H12.8594C12.8214,21.0002 12.785,21.0006 12.7504,21.0009C12.6524,21.0019 12.5683,21.0027 12.5,21H12.0562C12.0277,21.0003 12.0054,21.0006 11.9926,21.001L11.9751,21H9L11,19H11.9795C11.9929,18.9997 12.0064,18.9997 12.0199,19H12.4117C12.4534,18.9996 12.4864,18.9995 12.5,19H12.9675C12.977,18.9999 12.9878,18.9999 13,19C13.0446,19.0003 13.0859,19.0007 13.1249,19.0011C13.4259,19.0038 13.591,19.0054 14.0723,18.9616C14.6201,18.9118 15.1795,18.8242 15.6665,18.6813C15.753,18.6559 15.8346,18.6295 15.9114,18.6022C15.0315,17.2981 14.7125,16.1044 15.015,15.0829C15.4095,13.7511 16.6784,13.2418 17.7026,13.2864C18.7262,13.3309 19.954,13.9529 20.1936,15.3369ZM16.9327,15.6508C16.873,15.8523 16.8651,16.3878 17.4697,17.334C18.2007,16.4284 18.2585,15.8839 18.2229,15.6781C18.1939,15.5108 18.0297,15.3025 17.6157,15.2845C17.2025,15.2665 16.9885,15.4626 16.9327,15.6508Z" />
+</vector>
diff --git a/res/drawable/ic_screen_rotation.xml b/res/drawable/ic_screen_rotation.xml
new file mode 100644
index 0000000..f1bde27
--- /dev/null
+++ b/res/drawable/ic_screen_rotation.xml
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+  Copyright (C) 2023 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.
+  -->
+
+<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
+
+    <item>
+        <com.android.settingslib.widget.AdaptiveIconShapeDrawable
+            android:width="@dimen/dashboard_tile_image_size"
+            android:height="@dimen/dashboard_tile_image_size"
+            android:color="@color/homepage_display_background" />
+    </item>
+
+    <item
+        android:width="@dimen/dashboard_tile_foreground_image_size"
+        android:height="@dimen/dashboard_tile_foreground_image_size"
+        android:start="@dimen/dashboard_tile_foreground_image_inset"
+        android:top="@dimen/dashboard_tile_foreground_image_inset"
+        android:drawable="@drawable/ic_screen_rotation_24dp" />
+</layer-list>
diff --git a/res/drawable/ic_trackpad_bottom_right_click.xml b/res/drawable/ic_trackpad_bottom_right_click.xml
new file mode 100644
index 0000000..ec85830
--- /dev/null
+++ b/res/drawable/ic_trackpad_bottom_right_click.xml
@@ -0,0 +1,25 @@
+<!--
+    Copyright (C) 2023 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.
+-->
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+        android:width="24dp"
+        android:height="24dp"
+        android:viewportWidth="960"
+        android:viewportHeight="960"
+        android:tint="?android:attr/colorControlNormal">
+    <path
+        android:fillColor="@android:color/white"
+        android:pathData="M120,840L120,780L780,780Q780,780 780,780Q780,780 780,780L780,120L840,120L840,780Q840,804.75 822.38,822.38Q804.75,840 780,840L120,840ZM599.91,670Q571,670 550.5,649.41Q530,628.82 530,599.91Q530,571 550.59,550.5Q571.18,530 600.09,530Q629,530 649.5,550.59Q670,571.18 670,600.09Q670,629 649.41,649.5Q628.82,670 599.91,670ZM220,480L220,420L378,420L119,161L161,119L420,378L420,220L480,220L480,480L220,480Z"/>
+</vector>
\ No newline at end of file
diff --git a/res/drawable/ic_trackpad_pointer_speed.xml b/res/drawable/ic_trackpad_pointer_speed.xml
index 4e9abeb..128282f 100644
--- a/res/drawable/ic_trackpad_pointer_speed.xml
+++ b/res/drawable/ic_trackpad_pointer_speed.xml
@@ -14,12 +14,12 @@
     limitations under the License.
 -->
 <vector xmlns:android="http://schemas.android.com/apk/res/android"
-        android:width="24.0dp"
-        android:height="24.0dp"
-        android:viewportWidth="48.0"
-        android:viewportHeight="48.0"
+        android:width="24dp"
+        android:height="24dp"
+        android:viewportWidth="960"
+        android:viewportHeight="960"
         android:tint="?android:attr/colorControlNormal">
     <path
         android:fillColor="@android:color/white"
-        android:pathData="M6.05,24.35V21.35H12.35V24.35ZM11.75,35.9 L9.75,33.9 14.15,29.5 16.15,31.5ZM14.15,16.05 L9.75,11.65 11.75,9.65 16.15,14.05ZM37,40.05 L27.6,30.65 25.4,37.45 20.2,19.45 37.8,25 30.9,27.45 40.25,36.8ZM21.85,12.3V6H24.85V12.3ZM32.55,16.05 L30.55,14.05 34.95,9.65 36.95,11.65Z"/>
+        android:pathData="M407,635Q430,658 473.5,656.5Q517,655 537,624L753,285L418,504Q388,524 386,568Q384,612 407,635ZM478,161Q535,161 597,179.5Q659,198 716,243L664,280Q619,250 567.5,235.5Q516,221 477.98,221Q337.51,221 238.75,321.21Q140,421.43 140,563.98Q140,609 152.5,655Q165,701 188,740L767,740Q789,704 802,656Q815,608 815,562Q815,520 802.5,471.5Q790,423 758,382L797,330Q835,386 854,442.5Q873,499 875,556Q877,616 863,669Q849,722 822,767Q810,790 796.5,795Q783,800 763,800L192,800Q175,800 158.5,791.5Q142,783 134,767Q108,719 94,669.5Q80,620 80,564Q80,481 111.5,407.5Q143,334 197,279.5Q251,225 323.68,193Q396.36,161 478,161ZM469,492L469,492Q469,492 469,492Q469,492 469,492Q469,492 469,492Q469,492 469,492Q469,492 469,492Q469,492 469,492L469,492L469,492L469,492Q469,492 469,492Q469,492 469,492Q469,492 469,492Q469,492 469,492Z"/>
 </vector>
\ No newline at end of file
diff --git a/res/layout/flash_notification_preview_preference.xml b/res/layout/flash_notification_preview_preference.xml
index ecc6f4f..b4be0f6 100644
--- a/res/layout/flash_notification_preview_preference.xml
+++ b/res/layout/flash_notification_preview_preference.xml
@@ -34,7 +34,7 @@
             android:id="@android:id/title"
             android:layout_height="wrap_content"
             android:layout_width="wrap_content"
-            android:layout_gravity="center_vertical"
+            android:layout_gravity="start|center_vertical"
             android:paddingVertical="@dimen/settingslib_switch_title_margin"
             android:ellipsize="end"
             android:textAppearance="?android:attr/textAppearanceListItem"
diff --git a/res/layout/locale_dialog.xml b/res/layout/locale_dialog.xml
index cbdb37e..480c0e2 100644
--- a/res/layout/locale_dialog.xml
+++ b/res/layout/locale_dialog.xml
@@ -21,7 +21,9 @@
     android:paddingStart="@dimen/admin_details_dialog_padding"
     android:paddingEnd="@dimen/admin_details_dialog_padding"
     android:paddingBottom="@dimen/admin_details_dialog_padding_bottom"
-    android:orientation="vertical">
+    android:orientation="vertical"
+    android:layoutDirection="locale"
+    android:textDirection="locale">
     <LinearLayout
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
@@ -41,7 +43,8 @@
             android:layout_height="wrap_content"
             android:layout_marginTop="16dp"
             android:gravity="center_horizontal"
-            android:textAppearance="@style/TextAppearance.AdminDialogTitle"/>
+            android:textAppearance="@style/TextAppearance.AdminDialogTitle"
+            android:textAlignment="textStart"/>
     </LinearLayout>
 
     <ScrollView
@@ -51,15 +54,16 @@
         <LinearLayout
             android:layout_width="match_parent"
             android:layout_height="wrap_content"
+            android:gravity="center_horizontal"
             android:orientation="vertical">
             <TextView
                 android:id="@+id/dialog_msg"
                 android:layout_width="match_parent"
                 android:layout_height="wrap_content"
                 android:maxLength="200"
-                android:gravity="left"
                 android:autoLink="email|phone|web"
-                android:textColor="?android:attr/textColorSecondary"/>
+                android:textColor="?android:attr/textColorSecondary"
+                android:textAlignment="textStart"/>
         </LinearLayout>
     </ScrollView>
 </LinearLayout>
diff --git a/res/layout/locale_order_list.xml b/res/layout/locale_order_list.xml
index acde145..5c1db15 100644
--- a/res/layout/locale_order_list.xml
+++ b/res/layout/locale_order_list.xml
@@ -14,11 +14,11 @@
      limitations under the License.
 -->
 
-<androidx.core.widget.NestedScrollView xmlns:android="http://schemas.android.com/apk/res/android"
-            android:layout_width="match_parent"
-            android:layout_height="match_parent"
-            android:layoutDirection="locale"
-            android:textDirection="locale">
+<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
+             android:layout_width="match_parent"
+             android:layout_height="match_parent"
+             android:layoutDirection="locale"
+             android:textDirection="locale">
 
     <LinearLayout
         android:layout_width="match_parent"
@@ -48,4 +48,4 @@
 
     </LinearLayout>
 
-</androidx.core.widget.NestedScrollView>
+</FrameLayout>
diff --git a/res/raw/lottie_system_nav_fully_gestural_with_nav.json b/res/raw/lottie_system_nav_fully_gestural_with_nav.json
new file mode 100644
index 0000000..a2aad5f
--- /dev/null
+++ b/res/raw/lottie_system_nav_fully_gestural_with_nav.json
@@ -0,0 +1 @@
+{"v":"5.10.0","fr":60,"ip":0,"op":954,"w":412,"h":300,"nm":"Gesture_Nav","ddd":0,"assets":[{"id":"comp_0","nm":"Frame","fr":60,"layers":[{"ddd":0,"ind":1,"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":[28.043,27.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":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[1.083,1.05],[1.517,0],[1.067,-1.067],[0,-1.517],[-0.55,-0.867],[-0.9,-0.467],[0,0],[0.183,0.433],[0,0.483],[-0.667,0.667],[-0.983,0],[-0.683,-0.683],[0,-0.95],[0.183,-0.417],[0.3,-0.333],[0,0],[0,0],[-0.35,0.767],[0,0.8]],"o":[[-1.067,-1.067],[-1.533,0],[-1.067,1.05],[0,1.1],[0.55,0.867],[0,0],[-0.317,-0.317],[-0.167,-0.433],[0,-0.95],[0.683,-0.683],[0.95,0],[0.7,0.667],[0,0.483],[-0.183,0.4],[0,0],[0,0],[0.717,-0.567],[0.367,-0.783],[0,-1.517]],"v":[[3.457,-8.9],[-0.418,-10.5],[-4.318,-8.9],[-5.918,-5.05],[-5.093,-2.1],[-2.918,-0.1],[-2.918,-2.55],[-3.668,-3.675],[-3.918,-5.05],[-2.918,-7.475],[-0.418,-8.5],[2.032,-7.475],[3.082,-5.05],[2.807,-3.7],[2.082,-2.6],[2.082,-0.675],[2.932,-0.675],[4.532,-2.675],[5.082,-5.05]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[-0.25,-0.117],[-0.283,0],[0,0],[-0.383,0.3],[-0.083,0.483],[0,0],[0.2,0.4],[0.4,0.183],[0,0],[0.083,0.017],[0.083,0],[0,0],[0,0],[0.483,0.483],[0.7,0],[0.483,-0.483],[0,-0.7],[0,0],[0,0],[0.3,-0.133],[0.233,-0.233],[0,0],[0,0]],"o":[[0.25,0.1],[0,0],[0.483,0],[0.383,-0.317],[0,0],[0.083,-0.433],[-0.183,-0.417],[0,0],[-0.067,-0.05],[-0.067,-0.033],[0,0],[0,0],[0,-0.7],[-0.483,-0.483],[-0.7,0],[-0.483,0.483],[0,0],[0,0],[-0.317,-0.083],[-0.283,0.117],[0,0],[0,0],[0.183,0.183]],"v":[[-2.168,10.35],[-1.368,10.5],[5.032,10.5],[6.332,10.05],[7.032,8.85],[7.932,3.4],[7.757,2.15],[6.882,1.25],[3.182,-0.55],[2.957,-0.65],[2.732,-0.7],[2.082,-0.7],[2.082,-5],[1.357,-6.775],[-0.418,-7.5],[-2.193,-6.775],[-2.918,-5],[-2.918,3.15],[-4.868,2.7],[-5.793,2.775],[-6.568,3.3],[-7.968,4.75],[-2.818,9.9]],"c":true},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ind":2,"ty":"sh","ix":3,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[-0.083,0.083],[-0.15,0],[-0.083,-0.1],[0,-0.15],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,-0.15],[0.1,-0.1],[0.15,0],[0.1,0.083],[0,0],[0,0],[0,0],[0,0]],"v":[[5.032,8.5],[-1.368,8.5],[-5.168,4.7],[-0.918,5.6],[-0.918,-5],[-0.793,-5.35],[-0.418,-5.5],[-0.068,-5.35],[0.082,-5],[0.082,1],[1.832,1],[5.982,3.05]],"c":true},"ix":2},"nm":"Path 3","mn":"ADBE Vector Shape - Group","hd":false},{"ind":3,"ty":"sh","ix":4,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0.1,0],[0.15,0],[0.1,0],[0,0]],"o":[[0,0],[0,0],[0,0],[-0.083,0],[-0.15,0],[-0.083,0],[0,0]],"v":[[-1.368,8.5],[5.032,8.5],[0.082,8.5],[-0.068,8.5],[-0.418,8.5],[-0.793,8.5],[-0.918,8.5]],"c":true},"ix":2},"nm":"Path 4","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.121568627656,0.121568627656,0.121568627656,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"icon","np":6,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":3000,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":2,"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":[28,28,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":[56,56],"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.749019622803,0.776470601559,0.858823537827,1],"ix":4},"o":{"a":0,"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 12580","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":3000,"st":0,"ct":1,"bm":0}]}],"layers":[{"ddd":0,"ind":1,"ty":0,"nm":"Touch Target","refId":"comp_0","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[395,283,0],"ix":2,"l":2},"a":{"a":0,"k":[56,56,0],"ix":1,"l":2},"s":{"a":0,"k":[105.93,105.93,100],"ix":6,"l":2}},"ao":0,"w":56,"h":56,"ip":0,"op":3000,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":"Device 2","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[206.809,148.489,0],"ix":2,"l":2},"a":{"a":0,"k":[205.809,148.489,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[5.243,0],[0,0],[0,5.243],[0,0],[-5.243,0],[0,0],[0,-5.243]],"o":[[0,5.243],[0,0],[-5.243,0],[0,0],[0,-5.243],[0,0],[5.243,0],[0,0]],"v":[[63,114.112],[53.491,123.622],[-55.867,123.622],[-65.376,114.112],[-65.376,-114.113],[-55.867,-123.623],[53.491,-123.623],[63,-114.113]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0,1.312],[0,0],[1.312,0],[0,0],[6.554,0],[0,0],[0,-6.554],[0,0],[-6.554,0],[0,0],[0,6.555],[0,0],[0,1.313],[0,0],[1.312,0],[0,0]],"o":[[0,0],[0,-1.312],[0,0],[0,-6.554],[0,0],[-6.554,0],[0,0],[0,6.555],[0,0],[6.554,0],[0,0],[1.312,0],[0,0],[0,-1.313],[0,0],[1.312,0]],"v":[[67.754,-52.302],[67.754,-61.812],[65.378,-64.189],[65.378,-114.113],[53.491,-126],[-55.867,-126],[-67.754,-114.113],[-67.754,114.112],[-55.867,126],[53.491,126],[65.378,114.112],[65.378,-2.378],[67.754,-4.755],[67.754,-28.529],[65.378,-30.906],[65.378,-49.925]],"c":true},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.501960813999,0.525490224361,0.54509806633,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[205.809,148.489],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Device","np":4,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1800,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":3,"ty":4,"nm":"Gesture_8","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[193,175,0],"ix":2,"l":2},"a":{"a":0,"k":[19,-16,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":[26,26],"ix":2},"p":{"a":0,"k":[19,-16],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.101960785687,0.450980395079,0.909803926945,1],"ix":4},"o":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":897,"s":[0]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":908,"s":[100]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":911,"s":[100]},{"t":917,"s":[0]}],"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false}],"ip":897,"op":917,"st":860,"ct":1,"bm":0},{"ddd":0,"ind":4,"ty":4,"nm":"Gesture_7","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[174.5,273.75,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":[{"d":1,"ty":"el","s":{"a":0,"k":[26,26],"ix":2},"p":{"a":1,"k":[{"i":{"x":0.5,"y":1},"o":{"x":0.5,"y":0},"t":778,"s":[-2,-99],"to":[13.5,0],"ti":[-13.5,0]},{"t":819,"s":[79,-99]}],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.101960785687,0.450980395079,0.909803926945,1],"ix":4},"o":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":760,"s":[0]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":775,"s":[100]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":825,"s":[100]},{"t":835,"s":[0]}],"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false}],"ip":760,"op":835,"st":718,"ct":1,"bm":0},{"ddd":0,"ind":5,"ty":4,"nm":"Matte 8","td":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[206.809,148.489,0],"ix":2,"l":2},"a":{"a":0,"k":[205.809,148.489,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":[130,249.922],"ix":2},"p":{"a":0,"k":[204,149],"ix":3},"r":{"a":0,"k":8,"ix":4},"nm":"Bg","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.315594613552,0.315594613552,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":571,"op":681,"st":529,"ct":1,"bm":0},{"ddd":0,"ind":6,"ty":4,"nm":"Gesture_6","tt":1,"tp":5,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[174.5,273.75,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":[{"d":1,"ty":"el","s":{"a":0,"k":[26,26],"ix":2},"p":{"a":1,"k":[{"i":{"x":0.5,"y":1},"o":{"x":0.5,"y":0},"t":589,"s":[19,-6],"to":[0,-11.333],"ti":[0,11.333]},{"t":630,"s":[19,-74]}],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.101960785687,0.450980395079,0.909803926945,1],"ix":4},"o":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":571,"s":[0]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":586,"s":[100]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":670,"s":[100]},{"t":680,"s":[0]}],"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false}],"ip":571,"op":681,"st":529,"ct":1,"bm":0},{"ddd":0,"ind":7,"ty":4,"nm":"Matte 7","td":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[206.809,148.489,0],"ix":2,"l":2},"a":{"a":0,"k":[205.809,148.489,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":[130,249.922],"ix":2},"p":{"a":0,"k":[204,149],"ix":3},"r":{"a":0,"k":8,"ix":4},"nm":"Bg","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.315594613552,0.315594613552,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":442,"op":515,"st":400,"ct":1,"bm":0},{"ddd":0,"ind":8,"ty":4,"nm":"Gesture_5","tt":1,"tp":7,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[155,160,0],"ix":2,"l":2},"a":{"a":0,"k":[19,-16,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":[26,26],"ix":2},"p":{"a":1,"k":[{"i":{"x":0.5,"y":1},"o":{"x":0.5,"y":0},"t":460,"s":[129,-16],"to":[0,0],"ti":[0,0]},{"t":496,"s":[70,-16]}],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.101960785687,0.450980395079,0.909803926945,1],"ix":4},"o":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":442,"s":[0]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":457,"s":[100]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":509,"s":[100]},{"t":515,"s":[0]}],"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false}],"ip":442,"op":515,"st":400,"ct":1,"bm":0},{"ddd":0,"ind":9,"ty":4,"nm":"Gesture_4","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[220.75,130,0],"ix":2,"l":2},"a":{"a":0,"k":[19,-16,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":[26,26],"ix":2},"p":{"a":0,"k":[19,-16],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.101960785687,0.450980395079,0.909803926945,1],"ix":4},"o":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":370,"s":[0]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":381,"s":[100]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":384,"s":[100]},{"t":390,"s":[0]}],"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false}],"ip":370,"op":390,"st":333,"ct":1,"bm":0},{"ddd":0,"ind":10,"ty":4,"nm":"Matte 9","td":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[206.809,148.489,0],"ix":2,"l":2},"a":{"a":0,"k":[205.809,148.489,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":[130,249.922],"ix":2},"p":{"a":0,"k":[204,149],"ix":3},"r":{"a":0,"k":8,"ix":4},"nm":"Bg","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.315594613552,0.315594613552,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":236,"op":309,"st":194,"ct":1,"bm":0},{"ddd":0,"ind":11,"ty":4,"nm":"Gesture_3","tt":1,"tp":10,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[155,160,0],"ix":2,"l":2},"a":{"a":0,"k":[19,-16,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":[26,26],"ix":2},"p":{"a":1,"k":[{"i":{"x":0.5,"y":1},"o":{"x":0.5,"y":0},"t":254,"s":[10,-16],"to":[0,0],"ti":[0,0]},{"t":290,"s":[70,-16]}],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.101960785687,0.450980395079,0.909803926945,1],"ix":4},"o":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":236,"s":[0]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":251,"s":[100]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":303,"s":[100]},{"t":309,"s":[0]}],"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false}],"ip":236,"op":309,"st":194,"ct":1,"bm":0},{"ddd":0,"ind":12,"ty":4,"nm":"Gesture_2","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[219.375,227.125,0],"ix":2,"l":2},"a":{"a":0,"k":[19,-16,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":[26,26],"ix":2},"p":{"a":0,"k":[19,-16],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.101960785687,0.450980395079,0.909803926945,1],"ix":4},"o":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":140,"s":[0]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":151,"s":[100]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":154,"s":[100]},{"t":160,"s":[0]}],"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false}],"ip":140,"op":160,"st":103,"ct":1,"bm":0},{"ddd":0,"ind":13,"ty":4,"nm":"Matte 6","td":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[206.809,148.489,0],"ix":2,"l":2},"a":{"a":0,"k":[205.809,148.489,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":[130,249.922],"ix":2},"p":{"a":0,"k":[204,149],"ix":3},"r":{"a":0,"k":8,"ix":4},"nm":"Bg","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.315594613552,0.315594613552,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":42,"op":78,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":14,"ty":4,"nm":"Gesture_1","tt":1,"tp":13,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[174.5,266.75,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":[{"d":1,"ty":"el","s":{"a":0,"k":[26,26],"ix":2},"p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.65,"y":0},"t":60,"s":[19,0],"to":[0,-22.833],"ti":[0,22.833]},{"t":77,"s":[19,-137]}],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.101960785687,0.450980395079,0.909803926945,1],"ix":4},"o":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":42,"s":[0]},{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":57,"s":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":71,"s":[100]},{"t":77,"s":[0]}],"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false}],"ip":42,"op":78,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":15,"ty":4,"nm":"Nav 2","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[205.809,148.489,0],"ix":2,"l":2},"a":{"a":0,"k":[205.809,148.489,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.588,0],[0,0],[0,0.586],[-0.587,0],[0,0],[0,-0.588]],"o":[[0,0],[-0.587,0],[0,-0.588],[0,0],[0.588,0],[0,0.586]],"v":[[10.273,1.064],[-10.274,1.064],[-11.337,0.001],[-10.274,-1.063],[10.273,-1.063],[11.337,0.001]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.501960813999,0.525490224361,0.54509806633,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[206.247,265.909],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":672,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":680,"s":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":913,"s":[100]},{"t":921,"s":[0]}],"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Nav","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":672,"op":922,"st":502,"ct":1,"bm":0},{"ddd":0,"ind":16,"ty":4,"nm":"Nav","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":597,"s":[100]},{"t":600,"s":[0]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[205.809,148.489,0],"ix":2,"l":2},"a":{"a":0,"k":[205.809,148.489,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.588,0],[0,0],[0,0.586],[-0.587,0],[0,0],[0,-0.588]],"o":[[0,0],[-0.587,0],[0,-0.588],[0,0],[0.588,0],[0,0.586]],"v":[[10.273,1.064],[-10.274,1.064],[-11.337,0.001],[-10.274,-1.063],[10.273,-1.063],[11.337,0.001]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.501960813999,0.525490224361,0.54509806633,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[206.247,265.909],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":170,"s":[0]},{"t":178,"s":[100]}],"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Nav","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":170,"op":601,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":17,"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":[206.809,148.489,0],"ix":2,"l":2},"a":{"a":0,"k":[205.809,148.489,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"rc","d":2,"s":{"a":0,"k":[130,249.922],"ix":2},"p":{"a":0,"k":[204,149],"ix":3},"r":{"a":0,"k":8,"ix":4},"nm":"Bg","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":778,"op":1105,"st":589,"ct":1,"bm":0},{"ddd":0,"ind":18,"ty":4,"nm":"Switch","parent":24,"tt":1,"tp":17,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.5,"y":1},"o":{"x":0.5,"y":0},"t":778,"s":[206.025,175.213,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.667,"y":0.667},"o":{"x":0.333,"y":0.333},"t":819,"s":[346.542,175.213,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":827,"s":[346.542,175.213,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.667,"y":0.667},"o":{"x":0.333,"y":0.333},"t":842,"s":[368.094,175.213,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0,"y":1},"o":{"x":0.4,"y":0},"t":913,"s":[368.094,175.213,0],"to":[0,0,0],"ti":[0,0,0]},{"t":933,"s":[396.094,175.213,0]}],"ix":2,"l":2},"a":{"a":0,"k":[205.809,148.489,0],"ix":1,"l":2},"s":{"a":0,"k":[172.414,172.414,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,-5.641],[5.641,0],[0,5.641],[-5.641,0]],"o":[[0,5.641],[-5.641,0],[0,-5.641],[5.641,0]],"v":[[10.214,0],[0,10.213],[-10.214,0],[0,-10.213]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.501960813999,0.525490224361,0.54509806633,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[204.62,44.592],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":699,"s":[0]},{"t":707,"s":[100]}],"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Icon","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.524,0],[0,0],[0,0.524],[0,0],[-0.525,0],[0,0],[0,-0.524],[0,0]],"o":[[0,0],[-0.525,0],[0,0],[0,-0.524],[0,0],[0.524,0],[0,0],[0,0.524]],"v":[[13.25,3.747],[-13.25,3.747],[-14.2,2.798],[-14.2,-2.798],[-13.25,-3.747],[13.25,-3.747],[14.2,-2.798],[14.2,2.798]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.909803981407,0.917647118662,0.929411824544,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[201.825,210.532],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.333],"y":[0]},"t":599,"s":[0]},{"t":617,"s":[100]}],"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"M7","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.607,0],[0,0],[0,0.608],[0,0],[-0.608,0],[0,0],[0,-0.607],[0,0]],"o":[[0,0],[-0.608,0],[0,0],[0,-0.607],[0,0],[0.607,0],[0,0],[0,0.608]],"v":[[17.933,3.747],[-17.932,3.747],[-19.033,2.647],[-19.033,-2.648],[-17.932,-3.747],[17.933,-3.747],[19.033,-2.648],[19.033,2.647]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.909803981407,0.917647118662,0.929411824544,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[206.657,193.187],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.333],"y":[0]},"t":599,"s":[0]},{"t":617,"s":[100]}],"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"M6","np":2,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.565,0],[0,0],[0,0.565],[0,0],[-0.565,0],[0,0],[0,-0.565],[0,0]],"o":[[0,0],[-0.565,0],[0,0],[0,-0.565],[0,0],[0.565,0],[0,0],[0,0.565]],"v":[[13.698,3.745],[-15.445,3.747],[-16.468,2.725],[-16.468,-2.725],[-15.445,-3.747],[13.698,-3.75],[14.721,-2.727],[14.721,2.722]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.909803981407,0.917647118662,0.929411824544,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[204.093,175.841],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.333],"y":[0]},"t":599,"s":[0]},{"t":617,"s":[100]}],"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"M5","np":2,"cix":2,"bm":0,"ix":3,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.607,0],[0,0],[0,0.608],[0,0],[-0.608,0],[0,0],[0,-0.607],[0,0]],"o":[[0,0],[-0.608,0],[0,0],[0,-0.607],[0,0],[0.607,0],[0,0],[0,0.608]],"v":[[13.631,3.744],[-17.932,3.747],[-19.033,2.647],[-19.033,-2.648],[-17.932,-3.747],[13.631,-3.75],[14.731,-2.651],[14.731,2.644]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.909803981407,0.917647118662,0.929411824544,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[206.657,158.587],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.333],"y":[0]},"t":599,"s":[0]},{"t":617,"s":[100]}],"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"M4","np":2,"cix":2,"bm":0,"ix":4,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.665,0],[0,0],[0,0.664],[0,0],[-0.665,0],[0,0],[0,-0.664],[0,0]],"o":[[0,0],[-0.665,0],[0,0],[0,-0.664],[0,0],[0.665,0],[0,0],[0,0.664]],"v":[[3.162,3.745],[-21.576,3.747],[-22.779,2.545],[-22.779,-2.544],[-21.576,-3.747],[3.162,-3.75],[4.365,-2.547],[4.365,2.542]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.909803981407,0.917647118662,0.929411824544,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[210.404,141.093],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.333],"y":[0]},"t":599,"s":[0]},{"t":617,"s":[100]}],"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"M3","np":2,"cix":2,"bm":0,"ix":5,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.516,0],[0,0],[0,0.516],[0,0],[-0.516,0],[0,0],[0,-0.516],[0,0]],"o":[[0,0],[-0.516,0],[0,0],[0,-0.516],[0,0],[0.516,0],[0,0],[0,0.516]],"v":[[16.94,3.745],[-12.774,3.747],[-13.707,2.814],[-13.707,-2.813],[-12.774,-3.747],[16.94,-3.75],[17.874,-2.816],[17.874,2.812]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.909803981407,0.917647118662,0.929411824544,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[201.332,123.748],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.333],"y":[0]},"t":599,"s":[0]},{"t":617,"s":[100]}],"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"M2","np":2,"cix":2,"bm":0,"ix":6,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.566,0],[0,0],[0,0.567],[0,0],[-0.566,0],[0,0],[0,-0.567],[0,0]],"o":[[0,0],[-0.566,0],[0,0],[0,-0.567],[0,0],[0.566,0],[0,0],[0,0.567]],"v":[[22.664,3.745],[-15.541,3.747],[-16.566,2.722],[-16.566,-2.72],[-15.541,-3.747],[22.664,-3.75],[23.69,-2.723],[23.69,2.719]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.909803981407,0.917647118662,0.929411824544,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[204.192,106.494],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.333],"y":[0]},"t":599,"s":[0]},{"t":617,"s":[100]}],"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"M1","np":2,"cix":2,"bm":0,"ix":7,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,-3.022],[3.023,0],[0,3.022],[-3.023,0]],"o":[[0,3.022],[-3.023,0],[0,-3.022],[3.023,0]],"v":[[5.473,0],[0,5.474],[-5.473,0],[0,-5.473]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.847058883368,0.854902020623,0.870588295133,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 3","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"fl","c":{"a":0,"k":[0.847058883368,0.854902020623,0.870588295133,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 2","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"fl","c":{"a":0,"k":[0.847058883368,0.854902020623,0.870588295133,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[178.158,210.432],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.333],"y":[0]},"t":599,"s":[0]},{"t":617,"s":[100]}],"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"A7","np":4,"cix":2,"bm":0,"ix":8,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,-3.022],[3.023,0],[0,3.022],[-3.023,0]],"o":[[0,3.022],[-3.023,0],[0,-3.022],[3.023,0]],"v":[[5.473,0],[0,5.473],[-5.473,0],[0,-5.474]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.807843197093,0.89019613827,0.996078491211,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[178.158,193.076],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.333],"y":[0]},"t":599,"s":[0]},{"t":617,"s":[100]}],"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"A6","np":2,"cix":2,"bm":0,"ix":9,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,-3.022],[3.023,0],[0,3.023],[-3.023,0]],"o":[[0,3.023],[-3.023,0],[0,-3.022],[3.023,0]],"v":[[5.473,-0.001],[0,5.473],[-5.473,-0.001],[0,-5.474]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.847058883368,0.854902020623,0.870588295133,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 3","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"fl","c":{"a":0,"k":[0.847058883368,0.854902020623,0.870588295133,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 2","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"fl","c":{"a":0,"k":[0.847058883368,0.854902020623,0.870588295133,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[178.158,175.72],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.333],"y":[0]},"t":599,"s":[0]},{"t":617,"s":[100]}],"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"A5","np":4,"cix":2,"bm":0,"ix":10,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,-3.022],[3.023,0],[0,3.022],[-3.023,0]],"o":[[0,3.022],[-3.023,0],[0,-3.022],[3.023,0]],"v":[[5.473,0],[0,5.473],[-5.473,0],[0,-5.473]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.807843197093,0.89019613827,0.996078491211,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[178.158,158.364],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.333],"y":[0]},"t":599,"s":[0]},{"t":617,"s":[100]}],"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"A4","np":2,"cix":2,"bm":0,"ix":11,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,-3.022],[3.023,0],[0,3.023],[-3.023,0]],"o":[[0,3.023],[-3.023,0],[0,-3.022],[3.023,0]],"v":[[5.473,0],[0,5.473],[-5.473,0],[0,-5.473]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.847058883368,0.854902020623,0.870588295133,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 3","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"fl","c":{"a":0,"k":[0.847058883368,0.854902020623,0.870588295133,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 2","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"fl","c":{"a":0,"k":[0.847058883368,0.854902020623,0.870588295133,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[178.158,141.008],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.333],"y":[0]},"t":599,"s":[0]},{"t":617,"s":[100]}],"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"A3","np":4,"cix":2,"bm":0,"ix":12,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,-3.023],[3.023,0],[0,3.022],[-3.023,0]],"o":[[0,3.022],[-3.023,0],[0,-3.023],[3.023,0]],"v":[[5.473,0],[0,5.473],[-5.473,0],[0,-5.473]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.807843197093,0.89019613827,0.996078491211,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[178.158,123.653],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.333],"y":[0]},"t":599,"s":[0]},{"t":617,"s":[100]}],"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"A2","np":2,"cix":2,"bm":0,"ix":13,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,-3.022],[3.023,0],[0,3.022],[-3.023,0]],"o":[[0,3.022],[-3.023,0],[0,-3.022],[3.023,0]],"v":[[5.473,0],[0,5.473],[-5.473,0],[0,-5.473]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.807843197093,0.89019613827,0.996078491211,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[178.158,106.297],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.333],"y":[0]},"t":599,"s":[0]},{"t":617,"s":[100]}],"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"A1","np":2,"cix":2,"bm":0,"ix":14,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.5,"y":1},"o":{"x":0.5,"y":0},"t":589,"s":[{"i":[[-3.585,0],[0,0],[0,-4.682],[0,0],[0,0],[0,0]],"o":[[0,0],[3.586,0],[0,0],[0,0],[0,0],[0,-4.682]],"v":[[-34.189,-5.132],[34.344,-5.124],[40.837,3.352],[40.369,12.92],[-40.369,12.92],[-40.369,3.337]],"c":true}]},{"t":630,"s":[{"i":[[-3.585,0],[0,0],[0,-4.682],[0,0],[0,0],[0,0]],"o":[[0,0],[3.586,0],[0,0],[0,0],[0,0],[0,-4.682]],"v":[[-33.44,-12.972],[34.313,-12.972],[40.806,-4.496],[40.806,12.868],[-39.932,12.868],[-39.932,-4.496]],"c":true}]}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.909803981407,0.917647118662,0.929411824544,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[204.621,79.268],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":605,"s":[0]},{"t":610,"s":[100]}],"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Header","np":2,"cix":2,"bm":0,"ix":15,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.5,"y":1},"o":{"x":0.5,"y":0},"t":589,"s":[{"i":[[4.522,0],[0,0],[0,-4.522],[0,0],[-4.523,0],[0,0],[0,4.522],[0,0]],"o":[[0,0],[-4.523,0],[0,0],[0,4.522],[0,0],[4.522,0],[0,0],[0,-4.522]],"v":[[32.648,-74.48],[-31.712,-74.48],[-39.901,-66.292],[-40.368,74.088],[-32.179,82.276],[32.181,82.276],[40.368,74.088],[40.836,-66.292]],"c":true}]},{"t":630,"s":[{"i":[[4.522,0],[0,0],[0,-4.522],[0,0],[-4.523,0],[0,0],[0,4.522],[0,0]],"o":[[0,0],[-4.523,0],[0,0],[0,4.522],[0,0],[4.522,0],[0,0],[0,-4.522]],"v":[[32.674,-81.201],[-31.686,-81.201],[-39.875,-73.013],[-40.368,74.087],[-32.179,82.275],[32.181,82.275],[40.368,74.087],[40.862,-73.013]],"c":true}]}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[204.62,148.624],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":603,"s":[0]},{"t":617,"s":[100]}],"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Main_app","np":2,"cix":2,"bm":0,"ix":16,"mn":"ADBE Vector Group","hd":false},{"ty":"tr","p":{"a":1,"k":[{"i":{"x":0.2,"y":1},"o":{"x":0.4,"y":0},"t":672,"s":[204.621,129.624],"to":[0,0],"ti":[0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":687,"s":[204.621,149],"to":[0,0],"ti":[0,0]},{"t":699,"s":[204.621,148]}],"ix":2},"a":{"a":0,"k":[204.621,148.624],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.2,0.2],"y":[1,1]},"o":{"x":[0.4,0.4],"y":[0,0]},"t":672,"s":[93,93]},{"i":{"x":[0.667,0.667],"y":[1,1]},"o":{"x":[0.333,0.333],"y":[0,0]},"t":687,"s":[100.5,100.5]},{"t":699,"s":[100,100]}],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":16,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false}],"ip":778,"op":2389,"st":589,"ct":1,"bm":0},{"ddd":0,"ind":19,"ty":4,"nm":"Switch","parent":24,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[206.025,175.213,0],"ix":2,"l":2},"a":{"a":0,"k":[205.809,148.489,0],"ix":1,"l":2},"s":{"a":0,"k":[172.414,172.414,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,-5.641],[5.641,0],[0,5.641],[-5.641,0]],"o":[[0,5.641],[-5.641,0],[0,-5.641],[5.641,0]],"v":[[10.214,0],[0,10.213],[-10.214,0],[0,-10.213]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.501960813999,0.525490224361,0.54509806633,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[204.62,44.592],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":699,"s":[0]},{"t":707,"s":[100]}],"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Icon","np":2,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.524,0],[0,0],[0,0.524],[0,0],[-0.525,0],[0,0],[0,-0.524],[0,0]],"o":[[0,0],[-0.525,0],[0,0],[0,-0.524],[0,0],[0.524,0],[0,0],[0,0.524]],"v":[[13.25,3.747],[-13.25,3.747],[-14.2,2.798],[-14.2,-2.798],[-13.25,-3.747],[13.25,-3.747],[14.2,-2.798],[14.2,2.798]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.909803981407,0.917647118662,0.929411824544,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[201.825,210.532],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.333],"y":[0]},"t":599,"s":[0]},{"t":617,"s":[100]}],"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"M7","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.607,0],[0,0],[0,0.608],[0,0],[-0.608,0],[0,0],[0,-0.607],[0,0]],"o":[[0,0],[-0.608,0],[0,0],[0,-0.607],[0,0],[0.607,0],[0,0],[0,0.608]],"v":[[17.933,3.747],[-17.932,3.747],[-19.033,2.647],[-19.033,-2.648],[-17.932,-3.747],[17.933,-3.747],[19.033,-2.648],[19.033,2.647]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.909803981407,0.917647118662,0.929411824544,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[206.657,193.187],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.333],"y":[0]},"t":599,"s":[0]},{"t":617,"s":[100]}],"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"M6","np":2,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.565,0],[0,0],[0,0.565],[0,0],[-0.565,0],[0,0],[0,-0.565],[0,0]],"o":[[0,0],[-0.565,0],[0,0],[0,-0.565],[0,0],[0.565,0],[0,0],[0,0.565]],"v":[[13.698,3.745],[-15.445,3.747],[-16.468,2.725],[-16.468,-2.725],[-15.445,-3.747],[13.698,-3.75],[14.721,-2.727],[14.721,2.722]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.909803981407,0.917647118662,0.929411824544,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[204.093,175.841],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.333],"y":[0]},"t":599,"s":[0]},{"t":617,"s":[100]}],"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"M5","np":2,"cix":2,"bm":0,"ix":3,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.607,0],[0,0],[0,0.608],[0,0],[-0.608,0],[0,0],[0,-0.607],[0,0]],"o":[[0,0],[-0.608,0],[0,0],[0,-0.607],[0,0],[0.607,0],[0,0],[0,0.608]],"v":[[13.631,3.744],[-17.932,3.747],[-19.033,2.647],[-19.033,-2.648],[-17.932,-3.747],[13.631,-3.75],[14.731,-2.651],[14.731,2.644]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.909803981407,0.917647118662,0.929411824544,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[206.657,158.587],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.333],"y":[0]},"t":599,"s":[0]},{"t":617,"s":[100]}],"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"M4","np":2,"cix":2,"bm":0,"ix":4,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.665,0],[0,0],[0,0.664],[0,0],[-0.665,0],[0,0],[0,-0.664],[0,0]],"o":[[0,0],[-0.665,0],[0,0],[0,-0.664],[0,0],[0.665,0],[0,0],[0,0.664]],"v":[[3.162,3.745],[-21.576,3.747],[-22.779,2.545],[-22.779,-2.544],[-21.576,-3.747],[3.162,-3.75],[4.365,-2.547],[4.365,2.542]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.909803981407,0.917647118662,0.929411824544,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[210.404,141.093],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.333],"y":[0]},"t":599,"s":[0]},{"t":617,"s":[100]}],"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"M3","np":2,"cix":2,"bm":0,"ix":5,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.516,0],[0,0],[0,0.516],[0,0],[-0.516,0],[0,0],[0,-0.516],[0,0]],"o":[[0,0],[-0.516,0],[0,0],[0,-0.516],[0,0],[0.516,0],[0,0],[0,0.516]],"v":[[16.94,3.745],[-12.774,3.747],[-13.707,2.814],[-13.707,-2.813],[-12.774,-3.747],[16.94,-3.75],[17.874,-2.816],[17.874,2.812]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.909803981407,0.917647118662,0.929411824544,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[201.332,123.748],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.333],"y":[0]},"t":599,"s":[0]},{"t":617,"s":[100]}],"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"M2","np":2,"cix":2,"bm":0,"ix":6,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.566,0],[0,0],[0,0.567],[0,0],[-0.566,0],[0,0],[0,-0.567],[0,0]],"o":[[0,0],[-0.566,0],[0,0],[0,-0.567],[0,0],[0.566,0],[0,0],[0,0.567]],"v":[[22.664,3.745],[-15.541,3.747],[-16.566,2.722],[-16.566,-2.72],[-15.541,-3.747],[22.664,-3.75],[23.69,-2.723],[23.69,2.719]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.909803981407,0.917647118662,0.929411824544,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[204.192,106.494],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.333],"y":[0]},"t":599,"s":[0]},{"t":617,"s":[100]}],"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"M1","np":2,"cix":2,"bm":0,"ix":7,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,-3.022],[3.023,0],[0,3.022],[-3.023,0]],"o":[[0,3.022],[-3.023,0],[0,-3.022],[3.023,0]],"v":[[5.473,0],[0,5.474],[-5.473,0],[0,-5.473]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.847058883368,0.854902020623,0.870588295133,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 3","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"fl","c":{"a":0,"k":[0.847058883368,0.854902020623,0.870588295133,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 2","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"fl","c":{"a":0,"k":[0.847058883368,0.854902020623,0.870588295133,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[178.158,210.432],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.333],"y":[0]},"t":599,"s":[0]},{"t":617,"s":[100]}],"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"A7","np":4,"cix":2,"bm":0,"ix":8,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,-3.022],[3.023,0],[0,3.022],[-3.023,0]],"o":[[0,3.022],[-3.023,0],[0,-3.022],[3.023,0]],"v":[[5.473,0],[0,5.473],[-5.473,0],[0,-5.474]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.807843197093,0.89019613827,0.996078491211,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[178.158,193.076],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.333],"y":[0]},"t":599,"s":[0]},{"t":617,"s":[100]}],"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"A6","np":2,"cix":2,"bm":0,"ix":9,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,-3.022],[3.023,0],[0,3.023],[-3.023,0]],"o":[[0,3.023],[-3.023,0],[0,-3.022],[3.023,0]],"v":[[5.473,-0.001],[0,5.473],[-5.473,-0.001],[0,-5.474]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.847058883368,0.854902020623,0.870588295133,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 3","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"fl","c":{"a":0,"k":[0.847058883368,0.854902020623,0.870588295133,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 2","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"fl","c":{"a":0,"k":[0.847058883368,0.854902020623,0.870588295133,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[178.158,175.72],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.333],"y":[0]},"t":599,"s":[0]},{"t":617,"s":[100]}],"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"A5","np":4,"cix":2,"bm":0,"ix":10,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,-3.022],[3.023,0],[0,3.022],[-3.023,0]],"o":[[0,3.022],[-3.023,0],[0,-3.022],[3.023,0]],"v":[[5.473,0],[0,5.473],[-5.473,0],[0,-5.473]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.807843197093,0.89019613827,0.996078491211,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[178.158,158.364],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.333],"y":[0]},"t":599,"s":[0]},{"t":617,"s":[100]}],"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"A4","np":2,"cix":2,"bm":0,"ix":11,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,-3.022],[3.023,0],[0,3.023],[-3.023,0]],"o":[[0,3.023],[-3.023,0],[0,-3.022],[3.023,0]],"v":[[5.473,0],[0,5.473],[-5.473,0],[0,-5.473]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.847058883368,0.854902020623,0.870588295133,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 3","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"fl","c":{"a":0,"k":[0.847058883368,0.854902020623,0.870588295133,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 2","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"fl","c":{"a":0,"k":[0.847058883368,0.854902020623,0.870588295133,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[178.158,141.008],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.333],"y":[0]},"t":599,"s":[0]},{"t":617,"s":[100]}],"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"A3","np":4,"cix":2,"bm":0,"ix":12,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,-3.023],[3.023,0],[0,3.022],[-3.023,0]],"o":[[0,3.022],[-3.023,0],[0,-3.023],[3.023,0]],"v":[[5.473,0],[0,5.473],[-5.473,0],[0,-5.473]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.807843197093,0.89019613827,0.996078491211,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[178.158,123.653],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.333],"y":[0]},"t":599,"s":[0]},{"t":617,"s":[100]}],"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"A2","np":2,"cix":2,"bm":0,"ix":13,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,-3.022],[3.023,0],[0,3.022],[-3.023,0]],"o":[[0,3.022],[-3.023,0],[0,-3.022],[3.023,0]],"v":[[5.473,0],[0,5.473],[-5.473,0],[0,-5.473]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.807843197093,0.89019613827,0.996078491211,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[178.158,106.297],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.333],"y":[0]},"t":599,"s":[0]},{"t":617,"s":[100]}],"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"A1","np":2,"cix":2,"bm":0,"ix":14,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.5,"y":1},"o":{"x":0.5,"y":0},"t":589,"s":[{"i":[[-3.585,0],[0,0],[0,-4.682],[0,0],[0,0],[0,0]],"o":[[0,0],[3.586,0],[0,0],[0,0],[0,0],[0,-4.682]],"v":[[-34.189,-5.132],[34.344,-5.124],[40.837,3.352],[40.369,12.92],[-40.369,12.92],[-40.369,3.337]],"c":true}]},{"t":630,"s":[{"i":[[-3.585,0],[0,0],[0,-4.682],[0,0],[0,0],[0,0]],"o":[[0,0],[3.586,0],[0,0],[0,0],[0,0],[0,-4.682]],"v":[[-33.44,-12.972],[34.313,-12.972],[40.806,-4.496],[40.806,12.868],[-39.932,12.868],[-39.932,-4.496]],"c":true}]}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.909803981407,0.917647118662,0.929411824544,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[204.621,79.268],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":605,"s":[0]},{"t":610,"s":[100]}],"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Header","np":2,"cix":2,"bm":0,"ix":15,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.5,"y":1},"o":{"x":0.5,"y":0},"t":589,"s":[{"i":[[4.522,0],[0,0],[0,-4.522],[0,0],[-4.523,0],[0,0],[0,4.522],[0,0]],"o":[[0,0],[-4.523,0],[0,0],[0,4.522],[0,0],[4.522,0],[0,0],[0,-4.522]],"v":[[32.648,-74.48],[-31.712,-74.48],[-39.901,-66.292],[-40.368,74.088],[-32.179,82.276],[32.181,82.276],[40.368,74.088],[40.836,-66.292]],"c":true}]},{"t":630,"s":[{"i":[[4.522,0],[0,0],[0,-4.522],[0,0],[-4.523,0],[0,0],[0,4.522],[0,0]],"o":[[0,0],[-4.523,0],[0,0],[0,4.522],[0,0],[4.522,0],[0,0],[0,-4.522]],"v":[[32.674,-81.201],[-31.686,-81.201],[-39.875,-73.013],[-40.368,74.087],[-32.179,82.275],[32.181,82.275],[40.368,74.087],[40.862,-73.013]],"c":true}]}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[204.62,148.624],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":603,"s":[0]},{"t":617,"s":[100]}],"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Main_app","np":2,"cix":2,"bm":0,"ix":16,"mn":"ADBE Vector Group","hd":false},{"ty":"tr","p":{"a":1,"k":[{"i":{"x":0.2,"y":1},"o":{"x":0.4,"y":0},"t":672,"s":[204.621,129.624],"to":[0,0],"ti":[0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":687,"s":[204.621,149],"to":[0,0],"ti":[0,0]},{"t":699,"s":[204.621,148]}],"ix":2},"a":{"a":0,"k":[204.621,148.624],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.2,0.2],"y":[1,1]},"o":{"x":[0.4,0.4],"y":[0,0]},"t":672,"s":[93,93]},{"i":{"x":[0.667,0.667],"y":[1,1]},"o":{"x":[0.333,0.333],"y":[0,0]},"t":687,"s":[100.5,100.5]},{"t":699,"s":[100,100]}],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":16,"cix":2,"bm":0,"ix":3,"mn":"ADBE Vector Group","hd":false}],"ip":589,"op":778,"st":589,"ct":1,"bm":0},{"ddd":0,"ind":20,"ty":4,"nm":"Matte 10","td":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[207,148.489,0],"ix":2,"l":2},"a":{"a":0,"k":[205.809,148.489,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"rc","d":2,"s":{"a":0,"k":[130,249.922],"ix":2},"p":{"a":0,"k":[204,149],"ix":3},"r":{"a":0,"k":8,"ix":4},"nm":"Bg","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":778,"op":1141,"st":589,"ct":1,"bm":0},{"ddd":0,"ind":21,"ty":4,"nm":"Icon","parent":23,"tt":1,"tp":20,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[203.81,-8.757,0],"ix":2,"l":2},"a":{"a":0,"k":[10.5,-105.5,0],"ix":1,"l":2},"s":{"a":0,"k":[152.672,152.672,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[21,21],"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.501960813999,0.525490224361,0.54509806633,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[10.5,-105.5],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":778,"op":2578,"st":778,"ct":1,"bm":0},{"ddd":0,"ind":22,"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":[207,148.489,0],"ix":2,"l":2},"a":{"a":0,"k":[205.809,148.489,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"rc","d":2,"s":{"a":0,"k":[130,249.922],"ix":2},"p":{"a":0,"k":[204,149],"ix":3},"r":{"a":0,"k":8,"ix":4},"nm":"Bg","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":589,"op":1141,"st":589,"ct":1,"bm":0},{"ddd":0,"ind":23,"ty":4,"nm":"News","tt":1,"tp":22,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.2,"y":1},"o":{"x":0.4,"y":0},"t":630,"s":[95.309,129.736,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":645,"s":[120.309,129.736,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.667,"y":0.667},"o":{"x":0.333,"y":0.333},"t":657,"s":[118.809,129.736,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.2,"y":1},"o":{"x":0.4,"y":0},"t":672,"s":[118.809,129.736,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":687,"s":[112.809,148.489,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.667,"y":0.667},"o":{"x":0.303,"y":0.303},"t":699,"s":[113.059,147.489,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.5,"y":1},"o":{"x":0.5,"y":0},"t":778,"s":[113.059,147.489,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.325,"y":0},"t":819,"s":[194.809,147.489,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":827,"s":[194.888,147.496,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.333,"y":0.333},"t":842,"s":[207.309,147.496,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.2,"y":1},"o":{"x":0.4,"y":0},"t":913,"s":[207.309,147.496,0],"to":[0,0,0],"ti":[0,0,0]},{"t":933,"s":[207.809,148.489,0]}],"ix":2,"l":2},"a":{"a":0,"k":[205.809,148.489,0],"ix":1,"l":2},"s":{"a":1,"k":[{"i":{"x":[0.2,0.2,0.2],"y":[1,1,1]},"o":{"x":[0.4,0.4,0.4],"y":[0,0,0]},"t":630,"s":[61.5,61.5,100]},{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":645,"s":[61.5,61.5,100]},{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":657,"s":[61.5,61.5,100]},{"i":{"x":[0.2,0.2,0.2],"y":[1,1,1]},"o":{"x":[0.4,0.4,0.4],"y":[0,0,0]},"t":672,"s":[61.5,61.5,100]},{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":687,"s":[65.7,65.7,100]},{"i":{"x":[0.833,0.833,0.833],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":699,"s":[65.5,65.5,100]},{"i":{"x":[0,0,0.2],"y":[1,1,1]},"o":{"x":[0.4,0.4,0.4],"y":[0,0,0]},"t":913,"s":[65.5,65.5,100]},{"t":933,"s":[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.588,0],[0,0],[0,0.586],[-0.587,0],[0,0],[0,-0.588]],"o":[[0,0],[-0.587,0],[0,-0.588],[0,0],[0.588,0],[0,0.586]],"v":[[10.273,1.064],[-10.274,1.064],[-11.337,0.001],[-10.274,-1.063],[10.273,-1.063],[11.337,0.001]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.501960813999,0.525490224361,0.54509806633,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[206.247,265.909],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[1.804,0],[0,0],[0,1.805],[0,0],[-1.804,0],[0,0],[0,-1.804],[0,0]],"o":[[0,0],[-1.804,0],[0,0],[0,-1.804],[0,0],[1.804,0],[0,0],[0,1.805]],"v":[[50.721,40.146],[-50.722,40.146],[-53.988,36.879],[-53.988,-36.879],[-50.722,-40.146],[50.721,-40.146],[53.988,-36.879],[53.988,36.879]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.854902020623,0.862745157878,0.878431432387,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[205.892,150.065],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 4","np":2,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.544,0],[0,0],[0,0.544],[0,0],[-0.544,0],[0,0],[0,-0.544],[0,0]],"o":[[0,0],[-0.544,0],[0,0],[0,-0.544],[0,0],[0.544,0],[0,0],[0,0.544]],"v":[[36.749,2.254],[-36.749,2.254],[-37.732,1.27],[-37.732,-1.269],[-36.749,-2.254],[36.749,-2.254],[37.732,-1.269],[37.732,1.27]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.854902020623,0.862745157878,0.878431432387,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[189.636,227.641],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 5","np":2,"cix":2,"bm":0,"ix":3,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.65,0],[0,0],[0,0.65],[0,0],[-0.649,0],[0,0],[0,-0.65],[0,0]],"o":[[0,0],[-0.649,0],[0,0],[0,-0.65],[0,0],[0.65,0],[0,0],[0,0.65]],"v":[[52.81,2.254],[-52.812,2.254],[-53.988,1.077],[-53.988,-1.076],[-52.812,-2.254],[52.81,-2.254],[53.988,-1.076],[53.988,1.077]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.854902020623,0.862745157878,0.878431432387,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[205.892,249.393],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 6","np":2,"cix":2,"bm":0,"ix":4,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.65,0],[0,0],[0,0.651],[0,0],[-0.649,0],[0,0],[0,-0.649],[0,0]],"o":[[0,0],[-0.649,0],[0,0],[0,-0.649],[0,0],[0.65,0],[0,0],[0,0.651]],"v":[[52.81,2.254],[-52.812,2.254],[-53.988,1.076],[-53.988,-1.077],[-52.812,-2.254],[52.81,-2.254],[53.988,-1.077],[53.988,1.076]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.854902020623,0.862745157878,0.878431432387,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[205.892,240.676],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 7","np":2,"cix":2,"bm":0,"ix":5,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.65,0],[0,0],[0,0.651],[0,0],[-0.649,0],[0,0],[0,-0.649],[0,0]],"o":[[0,0],[-0.649,0],[0,0],[0,-0.649],[0,0],[0.65,0],[0,0],[0,0.651]],"v":[[52.81,2.253],[-52.812,2.253],[-53.988,1.077],[-53.988,-1.076],[-52.812,-2.253],[52.81,-2.253],[53.988,-1.076],[53.988,1.077]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.854902020623,0.862745157878,0.878431432387,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[205.892,218.65],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 8","np":2,"cix":2,"bm":0,"ix":6,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.65,0],[0,0],[0,0.651],[0,0],[-0.649,0],[0,0],[0,-0.65],[0,0]],"o":[[0,0],[-0.649,0],[0,0],[0,-0.65],[0,0],[0.65,0],[0,0],[0,0.651]],"v":[[52.81,2.253],[-52.812,2.253],[-53.988,1.077],[-53.988,-1.077],[-52.812,-2.254],[52.81,-2.254],[53.988,-1.077],[53.988,1.077]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.854902020623,0.862745157878,0.878431432387,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[205.892,209.932],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 9","np":2,"cix":2,"bm":0,"ix":7,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.65,0],[0,0],[0,0.65],[0,0],[-0.649,0],[0,0],[0,-0.65],[0,0]],"o":[[0,0],[-0.649,0],[0,0],[0,-0.65],[0,0],[0.65,0],[0,0],[0,0.65]],"v":[[52.81,2.254],[-52.812,2.254],[-53.988,1.077],[-53.988,-1.076],[-52.812,-2.253],[52.81,-2.253],[53.988,-1.076],[53.988,1.077]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.854902020623,0.862745157878,0.878431432387,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[205.892,201.214],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 10","np":2,"cix":2,"bm":0,"ix":8,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.783,0],[0,0],[0,0.783],[0,0],[-0.783,0],[0,0],[0,-0.783],[0,0]],"o":[[0,0],[-0.783,0],[0,0],[0,-0.783],[0,0],[0.783,0],[0,0],[0,0.783]],"v":[[37.779,4.508],[-37.779,4.508],[-39.197,3.09],[-39.197,-3.089],[-37.779,-4.508],[37.779,-4.508],[39.197,-3.089],[39.197,3.09]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.854902020623,0.862745157878,0.878431432387,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[191.101,96.446],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 11","np":2,"cix":2,"bm":0,"ix":9,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.849,0],[0,0],[0,0.85],[0,0],[-0.849,0],[0,0],[0,-0.849],[0,0]],"o":[[0,0],[-0.849,0],[0,0],[0,-0.849],[0,0],[0.849,0],[0,0],[0,0.85]],"v":[[44.544,4.508],[-44.543,4.508],[-46.081,2.97],[-46.081,-2.969],[-44.543,-4.508],[44.544,-4.508],[46.081,-2.969],[46.081,2.97]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.854902020623,0.862745157878,0.878431432387,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[197.984,83.913],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 12","np":2,"cix":2,"bm":0,"ix":10,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.783,0],[0,0],[0,0.783],[0,0],[-0.783,0],[0,0],[0,-0.783],[0,0]],"o":[[0,0],[-0.783,0],[0,0],[0,-0.783],[0,0],[0.783,0],[0,0],[0,0.783]],"v":[[37.779,4.507],[-37.779,4.507],[-39.197,3.089],[-39.197,-3.089],[-37.779,-4.507],[37.779,-4.507],[39.197,-3.089],[39.197,3.089]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.854902020623,0.862745157878,0.878431432387,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[191.101,71.382],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 13","np":2,"cix":2,"bm":0,"ix":11,"mn":"ADBE Vector Group","hd":false},{"ty":"tr","p":{"a":0,"k":[203.892,166.924],"ix":2},"a":{"a":0,"k":[205.892,166.924],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 15","np":11,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-6.352,0],[0,0],[0,-6.352],[0,0],[0,0],[0,0]],"o":[[0,0],[6.351,0],[0,0],[0,0],[0,0],[0,-6.352]],"v":[[-53.748,-15.977],[52.031,-15.968],[63.531,-4.467],[63.531,15.986],[-65.249,15.977],[-65.249,-4.476]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.909803981407,0.917647118662,0.929411824544,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[204.621,39.692],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 14","np":2,"cix":2,"bm":0,"ix":3,"mn":"ADBE Vector Group","hd":false},{"ty":"rc","d":2,"s":{"a":0,"k":[130,249.922],"ix":2},"p":{"a":0,"k":[204,149],"ix":3},"r":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":672,"s":[10]},{"t":687,"s":[11]}],"ix":4},"nm":"Bg","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":589,"op":1116,"st":589,"ct":1,"bm":0},{"ddd":0,"ind":24,"ty":4,"nm":"List","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":619,"s":[100]},{"t":624,"s":[0]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.5,"y":1},"o":{"x":0.5,"y":0},"t":589,"s":[207.309,149.489,0],"to":[-0.271,-2.75,0],"ti":[0.271,2.75,0]},{"t":630,"s":[205.684,132.989,0]}],"ix":2,"l":2},"a":{"a":0,"k":[205.809,148.489,0],"ix":1,"l":2},"s":{"a":1,"k":[{"i":{"x":[0.5,0.5,0.667],"y":[1,1,1]},"o":{"x":[0.5,0.5,0.333],"y":[0,0,0]},"t":589,"s":[100,100,100]},{"t":630,"s":[58,58,100]}],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.5,"y":1},"o":{"x":0.5,"y":0},"t":589,"s":[{"i":[[-5.795,0],[0,0],[0,-5.74],[0,0],[0,0],[0,0]],"o":[[0,0],[5.796,0],[0,0],[0,0],[0,0],[0,-5.74]],"v":[[-54.755,-15.843],[54.756,-15.843],[65.249,-5.45],[65.249,15.843],[-65.248,15.843],[-65.248,-5.45]],"c":true}]},{"t":630,"s":[{"i":[[-5.795,0],[0,0],[0,-5.74],[0,0],[0,0],[0,0]],"o":[[0,0],[5.796,0],[0,0],[0,0],[0,0],[0,-5.74]],"v":[[-54.697,-28.343],[54.814,-28.343],[65.307,-17.95],[65.249,15.843],[-65.248,15.843],[-65.19,-17.95]],"c":true}]}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.909803981407,0.917647118662,0.929411824544,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[204.62,39.528],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":517,"s":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":527,"s":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":612,"s":[100]},{"t":617,"s":[0]}],"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Header","np":2,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-1.185,0],[0,0],[0,-0.697],[0,0],[1.186,0],[0,0],[0,0.697],[0,0]],"o":[[0,0],[1.186,0],[0,0],[0,0.697],[0,0],[-1.185,0],[0,0],[0,-0.697]],"v":[[-30.315,-2.84],[30.314,-2.84],[32.461,-1.577],[32.461,1.578],[30.314,2.84],[-30.315,2.84],[-32.461,1.578],[-32.461,-1.577]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.909803981407,0.917647118662,0.929411824544,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[208.562,71.266],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":517,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":527,"s":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":612,"s":[100]},{"t":617,"s":[0]}],"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"L1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.673,0],[0,0],[0,-0.697],[0,0],[0.673,0],[0,0],[0,0.697],[0,0]],"o":[[0,0],[0.673,0],[0,0],[0,0.697],[0,0],[-0.673,0],[0,0],[0,-0.697]],"v":[[-20.709,-2.524],[20.71,-2.524],[21.928,-1.262],[21.928,1.262],[20.71,2.524],[-20.709,2.524],[-21.927,1.262],[-21.927,-1.262]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.909803981407,0.917647118662,0.929411824544,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[198.028,79.398],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":517,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":527,"s":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":612,"s":[100]},{"t":617,"s":[0]}],"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"L2","np":2,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.94,0],[0,0],[0,-0.697],[0,0],[0.94,0],[0,0],[0,0.697],[0,0]],"o":[[0,0],[0.94,0],[0,0],[0,0.697],[0,0],[-0.94,0],[0,0],[0,-0.697]],"v":[[-24.039,-2.84],[24.039,-2.84],[25.741,-1.577],[25.741,1.578],[24.039,2.84],[-24.039,2.84],[-25.741,1.578],[-25.741,-1.577]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.909803981407,0.917647118662,0.929411824544,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[201.841,98.147],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":517,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":527,"s":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":612,"s":[100]},{"t":617,"s":[0]}],"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"L3","np":2,"cix":2,"bm":0,"ix":3,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.525,0],[0,0],[0,-0.697],[0,0],[0.525,0],[0,0],[0,0.697],[0,0]],"o":[[0,0],[0.525,0],[0,0],[0,0.697],[0,0],[-0.525,0],[0,0],[0,-0.697]],"v":[[-16.163,-2.524],[16.163,-2.524],[17.114,-1.262],[17.114,1.262],[16.163,2.524],[-16.163,2.524],[-17.114,1.262],[-17.114,-1.262]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.909803981407,0.917647118662,0.929411824544,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[193.214,106.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":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":517,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":527,"s":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":612,"s":[100]},{"t":617,"s":[0]}],"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"L4","np":2,"cix":2,"bm":0,"ix":4,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.625,0],[0,0],[0,-0.697],[0,0],[0.625,0],[0,0],[0,0.697],[0,0]],"o":[[0,0],[0.625,0],[0,0],[0,0.697],[0,0],[-0.625,0],[0,0],[0,-0.697]],"v":[[-15.982,-2.84],[15.982,-2.84],[17.114,-1.577],[17.114,1.578],[15.982,2.84],[-15.982,2.84],[-17.113,1.578],[-17.113,-1.577]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.909803981407,0.917647118662,0.929411824544,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[193.214,125.764],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":517,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":527,"s":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":612,"s":[100]},{"t":617,"s":[0]}],"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"L5","np":2,"cix":2,"bm":0,"ix":5,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.673,0],[0,0],[0,-0.697],[0,0],[0.673,0],[0,0],[0,0.697],[0,0]],"o":[[0,0],[0.673,0],[0,0],[0,0.697],[0,0],[-0.673,0],[0,0],[0,-0.697]],"v":[[-20.709,-2.524],[20.71,-2.524],[21.928,-1.262],[21.928,1.262],[20.71,2.524],[-20.709,2.524],[-21.927,1.262],[-21.927,-1.262]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.909803981407,0.917647118662,0.929411824544,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[198.028,133.897],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":517,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":527,"s":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":612,"s":[100]},{"t":617,"s":[0]}],"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"L6","np":2,"cix":2,"bm":0,"ix":6,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-1.003,0],[0,0],[0,-0.698],[0,0],[1.003,0],[0,0],[0,0.697],[0,0]],"o":[[0,0],[1.003,0],[0,0],[0,0.697],[0,0],[-1.003,0],[0,0],[0,-0.698]],"v":[[-25.65,-2.839],[25.65,-2.839],[27.467,-1.577],[27.467,1.578],[25.65,2.84],[-25.65,2.84],[-27.466,1.578],[-27.466,-1.577]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.909803981407,0.917647118662,0.929411824544,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[203.567,154.44],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":517,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":527,"s":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":612,"s":[100]},{"t":617,"s":[0]}],"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"L7","np":2,"cix":2,"bm":0,"ix":7,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.673,0],[0,0],[0,-0.698],[0,0],[0.673,0],[0,0],[0,0.697],[0,0]],"o":[[0,0],[0.673,0],[0,0],[0,0.697],[0,0],[-0.673,0],[0,0],[0,-0.698]],"v":[[-20.709,-2.525],[20.71,-2.525],[21.928,-1.262],[21.928,1.262],[20.71,2.525],[-20.709,2.525],[-21.927,1.262],[-21.927,-1.262]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.909803981407,0.917647118662,0.929411824544,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[198.028,162.572],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":517,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":527,"s":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":612,"s":[100]},{"t":617,"s":[0]}],"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"L8","np":2,"cix":2,"bm":0,"ix":8,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.521,0],[0,0],[0,-0.697],[0,0],[0.521,0],[0,0],[0,0.697],[0,0]],"o":[[0,0],[0.521,0],[0,0],[0,0.697],[0,0],[-0.521,0],[0,0],[0,-0.697]],"v":[[-13.317,-2.84],[13.317,-2.84],[14.26,-1.577],[14.26,1.577],[13.317,2.84],[-13.317,2.84],[-14.26,1.577],[-14.26,-1.577]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.909803981407,0.917647118662,0.929411824544,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[190.361,182.208],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":517,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":527,"s":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":612,"s":[100]},{"t":617,"s":[0]}],"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"L9","np":2,"cix":2,"bm":0,"ix":9,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.762,0],[0,0],[0,-0.698],[0,0],[0.761,0],[0,0],[0,0.697],[0,0]],"o":[[0,0],[0.761,0],[0,0],[0,0.697],[0,0],[-0.762,0],[0,0],[0,-0.698]],"v":[[-23.453,-2.525],[23.454,-2.525],[24.833,-1.262],[24.833,1.262],[23.454,2.525],[-23.453,2.525],[-24.833,1.262],[-24.833,-1.262]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.909803981407,0.917647118662,0.929411824544,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[200.933,190.34],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":517,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":527,"s":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":612,"s":[100]},{"t":617,"s":[0]}],"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Line10","np":2,"cix":2,"bm":0,"ix":10,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-1.129,0],[0,0],[0,-0.697],[0,0],[1.129,0],[0,0],[0,0.697],[0,0]],"o":[[0,0],[1.129,0],[0,0],[0,0.697],[0,0],[-1.129,0],[0,0],[0,-0.697]],"v":[[-28.873,-2.839],[28.873,-2.839],[30.917,-1.577],[30.917,1.578],[28.873,2.84],[-28.873,2.84],[-30.917,1.578],[-30.917,-1.577]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.909803981407,0.917647118662,0.929411824544,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[207.017,208.894],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":517,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":527,"s":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":612,"s":[100]},{"t":617,"s":[0]}],"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"L11","np":2,"cix":2,"bm":0,"ix":11,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.697,0],[0,0],[0,-0.698],[0,0],[0.697,0],[0,0],[0,0.697],[0,0]],"o":[[0,0],[0.697,0],[0,0],[0,0.697],[0,0],[-0.697,0],[0,0],[0,-0.698]],"v":[[-21.454,-2.524],[21.454,-2.524],[22.716,-1.261],[22.716,1.262],[21.454,2.525],[-21.454,2.525],[-22.717,1.262],[-22.717,-1.261]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.909803981407,0.917647118662,0.929411824544,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[198.817,217.026],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":517,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":527,"s":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":612,"s":[100]},{"t":617,"s":[0]}],"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"L12","np":2,"cix":2,"bm":0,"ix":12,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.697,0],[0,0],[0,-0.698],[0,0],[0.696,0],[0,0],[0,0.697],[0,0]],"o":[[0,0],[0.696,0],[0,0],[0,0.697],[0,0],[-0.697,0],[0,0],[0,-0.698]],"v":[[-17.826,-2.84],[17.827,-2.84],[19.089,-1.577],[19.089,1.577],[17.827,2.84],[-17.826,2.84],[-19.089,1.577],[-19.089,-1.577]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.909803981407,0.917647118662,0.929411824544,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[195.189,237.737],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":517,"s":[7]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":527,"s":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":612,"s":[100]},{"t":617,"s":[0]}],"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"L13","np":2,"cix":2,"bm":0,"ix":13,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.697,0],[0,0],[0,-0.698],[0,0],[0.697,0],[0,0],[0,0.696],[0,0]],"o":[[0,0],[0.697,0],[0,0],[0,0.696],[0,0],[-0.697,0],[0,0],[0,-0.698]],"v":[[-21.454,-2.524],[21.454,-2.524],[22.716,-1.262],[22.716,1.262],[21.454,2.524],[-21.454,2.524],[-22.717,1.262],[-22.717,-1.262]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.909803981407,0.917647118662,0.929411824544,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[198.817,245.87],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":517,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":527,"s":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":612,"s":[100]},{"t":617,"s":[0]}],"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"L14","np":2,"cix":2,"bm":0,"ix":14,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,-4.835],[4.835,0],[0,4.836],[-4.836,0]],"o":[[0,4.836],[-4.836,0],[0,-4.835],[4.835,0]],"v":[[8.755,0],[0,8.756],[-8.756,0],[0,-8.755]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.847058883368,0.854902020623,0.870588295133,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 3","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"fl","c":{"a":0,"k":[0.847058883368,0.854902020623,0.870588295133,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 2","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"fl","c":{"a":0,"k":[0.847058883368,0.854902020623,0.870588295133,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[160.956,241.646],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":517,"s":[0]},{"t":527,"s":[100]}],"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Av7","np":4,"cix":2,"bm":0,"ix":15,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,-4.836],[4.835,0],[0,4.835],[-4.836,0]],"o":[[0,4.835],[-4.836,0],[0,-4.836],[4.835,0]],"v":[[8.755,0],[0,8.755],[-8.756,0],[0,-8.755]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.807843148708,0.890196084976,0.996078431606,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 3","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[160.956,213.88],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":517,"s":[0]},{"t":527,"s":[100]}],"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Av6","np":4,"cix":2,"bm":0,"ix":16,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,-4.836],[4.835,0],[0,4.835],[-4.836,0]],"o":[[0,4.835],[-4.836,0],[0,-4.836],[4.835,0]],"v":[[8.755,0.001],[0,8.756],[-8.756,0.001],[0,-8.756]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.847058883368,0.854902020623,0.870588295133,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 3","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"fl","c":{"a":0,"k":[0.847058883368,0.854902020623,0.870588295133,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 2","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"fl","c":{"a":0,"k":[0.847058883368,0.854902020623,0.870588295133,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[160.956,186.116],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":517,"s":[0]},{"t":527,"s":[100]}],"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Av5","np":4,"cix":2,"bm":0,"ix":17,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,-4.836],[4.835,0],[0,4.835],[-4.836,0]],"o":[[0,4.835],[-4.836,0],[0,-4.836],[4.835,0]],"v":[[8.755,0],[0,8.755],[-8.756,0],[0,-8.756]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.807843148708,0.890196084976,0.996078431606,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 3","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[160.956,158.351],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":517,"s":[0]},{"t":527,"s":[100]}],"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Av4","np":4,"cix":2,"bm":0,"ix":18,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,-4.835],[4.835,0],[0,4.835],[-4.836,0]],"o":[[0,4.835],[-4.836,0],[0,-4.835],[4.835,0]],"v":[[8.755,0],[0,8.755],[-8.756,0],[0,-8.755]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.847058883368,0.854902020623,0.870588295133,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 3","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"fl","c":{"a":0,"k":[0.847058883368,0.854902020623,0.870588295133,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 2","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"fl","c":{"a":0,"k":[0.847058883368,0.854902020623,0.870588295133,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[160.956,130.586],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":517,"s":[0]},{"t":527,"s":[100]}],"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Av3","np":4,"cix":2,"bm":0,"ix":19,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,-4.836],[4.835,0],[0,4.835],[-4.836,0]],"o":[[0,4.835],[-4.836,0],[0,-4.836],[4.835,0]],"v":[[8.755,0],[0,8.755],[-8.756,0],[0,-8.755]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.807843148708,0.890196084976,0.996078431606,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 3","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[160.956,102.822],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":517,"s":[0]},{"t":527,"s":[100]}],"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Av2","np":4,"cix":2,"bm":0,"ix":20,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,-4.835],[4.835,0],[0,4.835],[-4.836,0]],"o":[[0,4.835],[-4.836,0],[0,-4.835],[4.835,0]],"v":[[8.755,0],[0,8.755],[-8.756,0],[0,-8.755]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.807843148708,0.890196084976,0.996078431606,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 6","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[160.956,75.057],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":517,"s":[0]},{"t":527,"s":[100]}],"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Av1","np":7,"cix":2,"bm":0,"ix":21,"mn":"ADBE Vector Group","hd":false},{"ty":"tr","p":{"a":0,"k":[196.611,158.352],"ix":2},"a":{"a":0,"k":[196.611,158.352],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"UI","np":21,"cix":2,"bm":0,"ix":3,"mn":"ADBE Vector Group","hd":false},{"ty":"rc","d":1,"s":{"a":1,"k":[{"i":{"x":[0.5,0.5],"y":[1,1]},"o":{"x":[0.5,0.5],"y":[0,0]},"t":589,"s":[131,244.5]},{"t":630,"s":[129.5,246]}],"ix":2},"p":{"a":1,"k":[{"i":{"x":0.5,"y":1},"o":{"x":0.5,"y":0},"t":589,"s":[204.5,150],"to":[0,0.167],"ti":[0,-0.167]},{"t":630,"s":[204.5,151]}],"ix":3},"r":{"a":0,"k":13,"ix":4},"nm":"Bg","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":517,"s":[0]},{"t":527,"s":[100]}],"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false}],"ip":517,"op":672,"st":517,"ct":1,"bm":0},{"ddd":0,"ind":25,"ty":4,"nm":"OV_BG","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[206,147.925,0],"ix":2,"l":2},"a":{"a":0,"k":[-2.043,-2.075,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,-6.075],[0,0],[6.075,0],[0,0],[0,6.075],[0,0],[-6.075,0],[0,0]],"o":[[0,0],[0,6.075],[0,0],[-6.075,0],[0,0],[0,-6.075],[0,0],[6.075,0]],"v":[[67.108,-113.375],[67.108,114.475],[56.108,125.475],[-54.457,125.425],[-65.457,114.425],[-65.457,-113.425],[-54.457,-124.425],[56.108,-124.375]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0,0,0,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-3.59,-1.696],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[98.392,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Rectangle 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":589,"op":2389,"st":589,"ct":1,"bm":0},{"ddd":0,"ind":26,"ty":4,"nm":"Matte 4","td":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[207.309,148.364,0],"ix":2,"l":2},"a":{"a":0,"k":[205.809,148.489,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":[130,249.922],"ix":2},"p":{"a":0,"k":[204,149],"ix":3},"r":{"a":0,"k":12,"ix":4},"nm":"Bg","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.315594613552,0.315594613552,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":390,"op":529,"st":390,"ct":1,"bm":0},{"ddd":0,"ind":27,"ty":4,"nm":"Text","tt":1,"tp":26,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[206.809,148.489,0],"ix":2,"l":2},"a":{"a":0,"k":[205.809,148.489,0],"ix":1,"l":2},"s":{"a":1,"k":[{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":513,"s":[100,100,100]},{"t":528,"s":[95,95,100]}],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[5.526,-7.728],[3.864,-9.39],[-5.526,0],[3.864,9.39],[5.526,7.728],[-2.202,0]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.231372563979,0.250980392157,0.262745098039,1],"ix":4},"o":{"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.2,"y":1},"o":{"x":0.5,"y":0},"t":462,"s":[275.798,160.048],"to":[-4.167,0],"ti":[4.167,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":498,"s":[250.798,160.048],"to":[0,0],"ti":[0,0]},{"i":{"x":0.338,"y":1},"o":{"x":0.465,"y":0},"t":511,"s":[250.798,160.048],"to":[0,0],"ti":[0,0]},{"t":521,"s":[275.798,160.048]}],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":473,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":481,"s":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":514,"s":[100]},{"t":519,"s":[0]}],"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 25","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-0.616,1.208],[-1.062,0.541],[-3.162,0],[0,0],[-1.208,-0.616],[-0.541,-1.063],[0,-3.163],[0,0],[0.616,-1.208],[1.062,-0.541],[3.163,0],[0,0],[1.209,0.616],[0.541,1.062],[0,3.163]],"o":[[0,-3.163],[0.541,-1.063],[1.209,-0.616],[0,0],[3.163,0],[1.062,0.541],[0.616,1.208],[0,0],[0,3.163],[-0.541,1.062],[-1.208,0.616],[0,0],[-3.162,0],[-1.062,-0.541],[-0.616,-1.208],[0,0]],"v":[[-42.351,-8.533],[-41.735,-14.485],[-39.268,-16.952],[-33.316,-17.568],[33.317,-17.568],[39.268,-16.952],[41.736,-14.485],[42.352,-8.533],[42.352,8.533],[41.736,14.485],[39.268,16.952],[33.317,17.568],[-33.316,17.568],[-39.268,16.952],[-41.735,14.485],[-42.351,8.533]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.807843197093,0.89019613827,0.996078491211,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[221.15,84.532],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":390,"s":[0]},{"t":400,"s":[100]}],"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"M1","np":2,"cix":2,"bm":0,"ix":3,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,3.119],[-3.119,0],[0,0],[0,-3.119],[3.119,0],[0,0]],"o":[[0,-3.119],[0,0],[3.119,0],[0,3.119],[0,0],[-3.119,0]],"v":[[-33.411,0],[-27.764,-5.647],[27.763,-5.647],[33.411,0],[27.763,5.647],[-27.764,5.647]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.909803981407,0.917647118662,0.929411824544,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[183.975,119.04],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":390,"s":[0]},{"t":400,"s":[100]}],"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"M2","np":2,"cix":2,"bm":0,"ix":4,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,3.119],[-3.119,0],[0,0],[-1.208,-0.616],[-0.541,-1.063],[0,-3.162],[0,0],[0.137,-0.269],[0.236,-0.12],[0.703,0],[0,0]],"o":[[0,-3.119],[0,0],[3.162,0],[1.062,0.541],[0.616,1.208],[0,0],[0,0.703],[-0.12,0.236],[-0.268,0.137],[0,0],[-3.119,0]],"v":[[-17.881,0],[-12.235,-5.647],[8.848,-5.647],[14.798,-5.031],[17.266,-2.563],[17.882,3.388],[17.882,3.639],[17.745,4.962],[17.197,5.51],[15.874,5.647],[-12.235,5.647]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.807843197093,0.89019613827,0.996078491211,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[245.62,134.86],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":390,"s":[0]},{"t":400,"s":[100]}],"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"M3","np":2,"cix":2,"bm":0,"ix":5,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-0.616,1.208],[-1.062,0.542],[-3.162,0],[0,0],[-0.268,-0.137],[-0.12,-0.236],[0,-0.703],[0,0],[0.616,-1.208],[1.062,-0.542],[3.163,0],[0,0],[1.209,0.616],[0.541,1.062],[0,3.163]],"o":[[0,-3.163],[0.541,-1.063],[1.209,-0.615],[0,0],[0.703,0],[0.236,0.12],[0.137,0.268],[0,0],[0,3.163],[-0.541,1.062],[-1.208,0.616],[0,0],[-3.162,0],[-1.062,-0.542],[-0.616,-1.208],[0,0]],"v":[[-42.351,-2.573],[-41.735,-8.525],[-39.268,-10.993],[-33.316,-11.607],[40.344,-11.607],[41.667,-11.471],[42.215,-10.923],[42.352,-9.6],[42.352,2.572],[41.736,8.524],[39.268,10.992],[33.317,11.607],[-33.316,11.607],[-39.268,10.992],[-41.735,8.524],[-42.351,2.572]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.807843197093,0.89019613827,0.996078491211,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[221.15,155.369],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":390,"s":[0]},{"t":400,"s":[100]}],"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"M4","np":2,"cix":2,"bm":0,"ix":6,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,3.119],[-3.119,0],[0,0],[0,-3.118],[3.118,0],[0,0]],"o":[[0,-3.118],[0,0],[3.118,0],[0,3.119],[0,0],[-3.119,0]],"v":[[-28.391,0],[-22.745,-5.646],[22.745,-5.646],[28.391,0],[22.745,5.646],[-22.745,5.646]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.909803981407,0.917647118662,0.929411824544,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[178.955,181.861],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":390,"s":[0]},{"t":400,"s":[100]}],"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"M5","np":2,"cix":2,"bm":0,"ix":7,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-0.616,1.209],[-1.062,0.541],[-3.162,0],[0,0],[-1.208,-0.616],[-0.541,-1.063],[0,-3.162],[0,0],[0.616,-1.208],[1.062,-0.541],[3.163,0],[0,0],[1.209,0.616],[0.541,1.062],[0,3.163]],"o":[[0,-3.162],[0.541,-1.063],[1.209,-0.616],[0,0],[3.163,0],[1.062,0.541],[0.616,1.209],[0,0],[0,3.163],[-0.541,1.062],[-1.208,0.616],[0,0],[-3.162,0],[-1.062,-0.541],[-0.616,-1.208],[0,0]],"v":[[-42.351,-2.573],[-41.735,-8.525],[-39.268,-10.992],[-33.316,-11.607],[33.317,-11.607],[39.268,-10.992],[41.736,-8.525],[42.352,-2.573],[42.352,2.573],[41.736,8.525],[39.268,10.992],[33.317,11.607],[-33.316,11.607],[-39.268,10.992],[-41.735,8.525],[-42.351,2.573]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.807843197093,0.89019613827,0.996078491211,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[221.15,208.354],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":390,"s":[0]},{"t":400,"s":[100]}],"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"M6","np":2,"cix":2,"bm":0,"ix":8,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-3.812,0],[0,0],[0,-3.812],[3.811,0],[0,0],[0,3.812]],"o":[[0,0],[3.811,0],[0,3.812],[0,0],[-3.812,0],[0,-3.812]],"v":[[-48.626,-6.902],[48.626,-6.902],[55.527,0],[48.626,6.902],[-48.626,6.902],[-55.528,0]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.909803981407,0.917647118662,0.929411824544,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2,"ix":5},"lc":1,"lj":1,"ml":10,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[204.5,247.036],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":390,"s":[0]},{"t":400,"s":[100]}],"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Field","np":2,"cix":2,"bm":0,"ix":9,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":513,"s":[{"i":[[-5.74,0],[0,0],[0,-5.74],[0,0],[0,0],[0,0]],"o":[[0,0],[5.74,0],[0,0],[0,0],[0,0],[0,-5.74]],"v":[[-54.25,-21.843],[54.214,-21.843],[70.125,-5.357],[70.125,15.935],[-69.625,15.935],[-69.625,-5.357]],"c":true}]},{"t":528,"s":[{"i":[[-5.74,0],[0,0],[0,-5.74],[0,0],[0,0],[0,0]],"o":[[0,0],[5.74,0],[0,0],[0,0],[0,0],[0,-5.74]],"v":[[-54.25,-27.895],[54.214,-27.895],[70.125,-11.41],[70.125,9.882],[-69.625,9.882],[-69.625,-11.41]],"c":true}]}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.909803981407,0.917647118662,0.929411824544,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[204.523,40.213],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":390,"s":[0]},{"t":400,"s":[100]}],"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Header","np":2,"cix":2,"bm":0,"ix":10,"mn":"ADBE Vector Group","hd":false},{"ty":"rc","d":1,"s":{"a":0,"k":[130,249],"ix":2},"p":{"a":0,"k":[204,148],"ix":3},"r":{"a":0,"k":9,"ix":4},"nm":"Bg","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":390,"s":[0]},{"t":400,"s":[100]}],"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false}],"ip":390,"op":529,"st":218,"ct":1,"bm":0},{"ddd":0,"ind":28,"ty":4,"nm":"List","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[207.309,149.489,0],"ix":2,"l":2},"a":{"a":0,"k":[205.809,148.489,0],"ix":1,"l":2},"s":{"a":1,"k":[{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":386,"s":[100,100,100]},{"t":401,"s":[105,105,100]}],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":386,"s":[{"i":[[-5.795,0],[0,0],[0,-5.74],[0,0],[0,0],[0,0]],"o":[[0,0],[5.796,0],[0,0],[0,0],[0,0],[0,-5.74]],"v":[[-54.755,-15.843],[54.756,-15.843],[65.249,-5.45],[65.249,15.843],[-65.248,15.843],[-65.248,-5.45]],"c":true}]},{"t":401,"s":[{"i":[[-5.795,0],[0,0],[0,-5.74],[0,0],[0,0],[0,0]],"o":[[0,0],[5.796,0],[0,0],[0,0],[0,0],[0,-5.74]],"v":[[-51.429,-8.596],[51.96,-8.578],[62.47,0.863],[62.504,19.774],[-61.871,19.756],[-61.906,0.845]],"c":true}]}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.909803981407,0.917647118662,0.929411824544,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[204.62,39.528],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":309,"s":[100]},{"t":319,"s":[100]}],"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Header","np":2,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-1.185,0],[0,0],[0,-0.697],[0,0],[1.186,0],[0,0],[0,0.697],[0,0]],"o":[[0,0],[1.186,0],[0,0],[0,0.697],[0,0],[-1.185,0],[0,0],[0,-0.697]],"v":[[-30.315,-2.84],[30.314,-2.84],[32.461,-1.577],[32.461,1.578],[30.314,2.84],[-30.315,2.84],[-32.461,1.578],[-32.461,-1.577]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.909803981407,0.917647118662,0.929411824544,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[208.562,71.266],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":309,"s":[0]},{"t":319,"s":[100]}],"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"L1","np":2,"cix":2,"bm":0,"ix":3,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.673,0],[0,0],[0,-0.697],[0,0],[0.673,0],[0,0],[0,0.697],[0,0]],"o":[[0,0],[0.673,0],[0,0],[0,0.697],[0,0],[-0.673,0],[0,0],[0,-0.697]],"v":[[-20.709,-2.524],[20.71,-2.524],[21.928,-1.262],[21.928,1.262],[20.71,2.524],[-20.709,2.524],[-21.927,1.262],[-21.927,-1.262]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.909803981407,0.917647118662,0.929411824544,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[198.028,79.398],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":309,"s":[0]},{"t":319,"s":[100]}],"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"L2","np":2,"cix":2,"bm":0,"ix":4,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.94,0],[0,0],[0,-0.697],[0,0],[0.94,0],[0,0],[0,0.697],[0,0]],"o":[[0,0],[0.94,0],[0,0],[0,0.697],[0,0],[-0.94,0],[0,0],[0,-0.697]],"v":[[-24.039,-2.84],[24.039,-2.84],[25.741,-1.577],[25.741,1.578],[24.039,2.84],[-24.039,2.84],[-25.741,1.578],[-25.741,-1.577]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.909803981407,0.917647118662,0.929411824544,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[201.841,98.147],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":309,"s":[0]},{"t":319,"s":[100]}],"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"L3","np":2,"cix":2,"bm":0,"ix":5,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.525,0],[0,0],[0,-0.697],[0,0],[0.525,0],[0,0],[0,0.697],[0,0]],"o":[[0,0],[0.525,0],[0,0],[0,0.697],[0,0],[-0.525,0],[0,0],[0,-0.697]],"v":[[-16.163,-2.524],[16.163,-2.524],[17.114,-1.262],[17.114,1.262],[16.163,2.524],[-16.163,2.524],[-17.114,1.262],[-17.114,-1.262]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.909803981407,0.917647118662,0.929411824544,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[193.214,106.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":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":309,"s":[0]},{"t":319,"s":[100]}],"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"L4","np":2,"cix":2,"bm":0,"ix":6,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.625,0],[0,0],[0,-0.697],[0,0],[0.625,0],[0,0],[0,0.697],[0,0]],"o":[[0,0],[0.625,0],[0,0],[0,0.697],[0,0],[-0.625,0],[0,0],[0,-0.697]],"v":[[-15.982,-2.84],[15.982,-2.84],[17.114,-1.577],[17.114,1.578],[15.982,2.84],[-15.982,2.84],[-17.113,1.578],[-17.113,-1.577]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.909803981407,0.917647118662,0.929411824544,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[193.214,125.764],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":309,"s":[0]},{"t":319,"s":[100]}],"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"L5","np":2,"cix":2,"bm":0,"ix":7,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.673,0],[0,0],[0,-0.697],[0,0],[0.673,0],[0,0],[0,0.697],[0,0]],"o":[[0,0],[0.673,0],[0,0],[0,0.697],[0,0],[-0.673,0],[0,0],[0,-0.697]],"v":[[-20.709,-2.524],[20.71,-2.524],[21.928,-1.262],[21.928,1.262],[20.71,2.524],[-20.709,2.524],[-21.927,1.262],[-21.927,-1.262]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.909803981407,0.917647118662,0.929411824544,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[198.028,133.897],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":309,"s":[0]},{"t":319,"s":[100]}],"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"L6","np":2,"cix":2,"bm":0,"ix":8,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-1.003,0],[0,0],[0,-0.698],[0,0],[1.003,0],[0,0],[0,0.697],[0,0]],"o":[[0,0],[1.003,0],[0,0],[0,0.697],[0,0],[-1.003,0],[0,0],[0,-0.698]],"v":[[-25.65,-2.839],[25.65,-2.839],[27.467,-1.577],[27.467,1.578],[25.65,2.84],[-25.65,2.84],[-27.466,1.578],[-27.466,-1.577]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.909803981407,0.917647118662,0.929411824544,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[203.567,154.44],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":309,"s":[0]},{"t":319,"s":[100]}],"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"L7","np":2,"cix":2,"bm":0,"ix":9,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.673,0],[0,0],[0,-0.698],[0,0],[0.673,0],[0,0],[0,0.697],[0,0]],"o":[[0,0],[0.673,0],[0,0],[0,0.697],[0,0],[-0.673,0],[0,0],[0,-0.698]],"v":[[-20.709,-2.525],[20.71,-2.525],[21.928,-1.262],[21.928,1.262],[20.71,2.525],[-20.709,2.525],[-21.927,1.262],[-21.927,-1.262]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.909803981407,0.917647118662,0.929411824544,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[198.028,162.572],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":309,"s":[0]},{"t":319,"s":[100]}],"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"L8","np":2,"cix":2,"bm":0,"ix":10,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.521,0],[0,0],[0,-0.697],[0,0],[0.521,0],[0,0],[0,0.697],[0,0]],"o":[[0,0],[0.521,0],[0,0],[0,0.697],[0,0],[-0.521,0],[0,0],[0,-0.697]],"v":[[-13.317,-2.84],[13.317,-2.84],[14.26,-1.577],[14.26,1.577],[13.317,2.84],[-13.317,2.84],[-14.26,1.577],[-14.26,-1.577]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.909803981407,0.917647118662,0.929411824544,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[190.361,182.208],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":309,"s":[0]},{"t":319,"s":[100]}],"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"L9","np":2,"cix":2,"bm":0,"ix":11,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.762,0],[0,0],[0,-0.698],[0,0],[0.761,0],[0,0],[0,0.697],[0,0]],"o":[[0,0],[0.761,0],[0,0],[0,0.697],[0,0],[-0.762,0],[0,0],[0,-0.698]],"v":[[-23.453,-2.525],[23.454,-2.525],[24.833,-1.262],[24.833,1.262],[23.454,2.525],[-23.453,2.525],[-24.833,1.262],[-24.833,-1.262]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.909803981407,0.917647118662,0.929411824544,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[200.933,190.34],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":309,"s":[0]},{"t":319,"s":[100]}],"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Line10","np":2,"cix":2,"bm":0,"ix":12,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-1.129,0],[0,0],[0,-0.697],[0,0],[1.129,0],[0,0],[0,0.697],[0,0]],"o":[[0,0],[1.129,0],[0,0],[0,0.697],[0,0],[-1.129,0],[0,0],[0,-0.697]],"v":[[-28.873,-2.839],[28.873,-2.839],[30.917,-1.577],[30.917,1.578],[28.873,2.84],[-28.873,2.84],[-30.917,1.578],[-30.917,-1.577]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.909803981407,0.917647118662,0.929411824544,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[207.017,208.894],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":309,"s":[0]},{"t":319,"s":[100]}],"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"L11","np":2,"cix":2,"bm":0,"ix":13,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.697,0],[0,0],[0,-0.698],[0,0],[0.697,0],[0,0],[0,0.697],[0,0]],"o":[[0,0],[0.697,0],[0,0],[0,0.697],[0,0],[-0.697,0],[0,0],[0,-0.698]],"v":[[-21.454,-2.524],[21.454,-2.524],[22.716,-1.261],[22.716,1.262],[21.454,2.525],[-21.454,2.525],[-22.717,1.262],[-22.717,-1.261]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.909803981407,0.917647118662,0.929411824544,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[198.817,217.026],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":309,"s":[0]},{"t":319,"s":[100]}],"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"L12","np":2,"cix":2,"bm":0,"ix":14,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.697,0],[0,0],[0,-0.698],[0,0],[0.696,0],[0,0],[0,0.697],[0,0]],"o":[[0,0],[0.696,0],[0,0],[0,0.697],[0,0],[-0.697,0],[0,0],[0,-0.698]],"v":[[-17.826,-2.84],[17.827,-2.84],[19.089,-1.577],[19.089,1.577],[17.827,2.84],[-17.826,2.84],[-19.089,1.577],[-19.089,-1.577]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.909803981407,0.917647118662,0.929411824544,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[195.189,237.737],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":309,"s":[7]},{"t":319,"s":[100]}],"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"L13","np":2,"cix":2,"bm":0,"ix":15,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.697,0],[0,0],[0,-0.698],[0,0],[0.697,0],[0,0],[0,0.696],[0,0]],"o":[[0,0],[0.697,0],[0,0],[0,0.696],[0,0],[-0.697,0],[0,0],[0,-0.698]],"v":[[-21.454,-2.524],[21.454,-2.524],[22.716,-1.262],[22.716,1.262],[21.454,2.524],[-21.454,2.524],[-22.717,1.262],[-22.717,-1.262]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.909803981407,0.917647118662,0.929411824544,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[198.817,245.87],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":309,"s":[0]},{"t":319,"s":[100]}],"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"L14","np":2,"cix":2,"bm":0,"ix":16,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,-4.835],[4.835,0],[0,4.836],[-4.836,0]],"o":[[0,4.836],[-4.836,0],[0,-4.835],[4.835,0]],"v":[[8.755,0],[0,8.756],[-8.756,0],[0,-8.755]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.847058883368,0.854902020623,0.870588295133,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 3","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"fl","c":{"a":0,"k":[0.847058883368,0.854902020623,0.870588295133,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 2","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"fl","c":{"a":0,"k":[0.847058883368,0.854902020623,0.870588295133,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[160.956,241.646],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":309,"s":[0]},{"t":319,"s":[100]}],"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Av7","np":4,"cix":2,"bm":0,"ix":17,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,-4.836],[4.835,0],[0,4.835],[-4.836,0]],"o":[[0,4.835],[-4.836,0],[0,-4.836],[4.835,0]],"v":[[8.755,0],[0,8.755],[-8.756,0],[0,-8.755]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.807843148708,0.890196084976,0.996078431606,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 3","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[160.956,213.88],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":309,"s":[0]},{"t":319,"s":[100]}],"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Av6","np":4,"cix":2,"bm":0,"ix":18,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,-4.836],[4.835,0],[0,4.835],[-4.836,0]],"o":[[0,4.835],[-4.836,0],[0,-4.836],[4.835,0]],"v":[[8.755,0.001],[0,8.756],[-8.756,0.001],[0,-8.756]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.847058883368,0.854902020623,0.870588295133,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 3","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"fl","c":{"a":0,"k":[0.847058883368,0.854902020623,0.870588295133,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 2","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"fl","c":{"a":0,"k":[0.847058883368,0.854902020623,0.870588295133,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[160.956,186.116],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":309,"s":[0]},{"t":319,"s":[100]}],"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Av5","np":4,"cix":2,"bm":0,"ix":19,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,-4.836],[4.835,0],[0,4.835],[-4.836,0]],"o":[[0,4.835],[-4.836,0],[0,-4.836],[4.835,0]],"v":[[8.755,0],[0,8.755],[-8.756,0],[0,-8.756]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.807843148708,0.890196084976,0.996078431606,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 3","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[160.956,158.351],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":309,"s":[0]},{"t":319,"s":[100]}],"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Av4","np":4,"cix":2,"bm":0,"ix":20,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,-4.835],[4.835,0],[0,4.835],[-4.836,0]],"o":[[0,4.835],[-4.836,0],[0,-4.835],[4.835,0]],"v":[[8.755,0],[0,8.755],[-8.756,0],[0,-8.755]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.847058883368,0.854902020623,0.870588295133,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 3","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"fl","c":{"a":0,"k":[0.847058883368,0.854902020623,0.870588295133,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 2","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"fl","c":{"a":0,"k":[0.847058883368,0.854902020623,0.870588295133,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[160.956,130.586],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":309,"s":[0]},{"t":319,"s":[100]}],"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Av3","np":4,"cix":2,"bm":0,"ix":21,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,-4.836],[4.835,0],[0,4.835],[-4.836,0]],"o":[[0,4.835],[-4.836,0],[0,-4.836],[4.835,0]],"v":[[8.755,0],[0,8.755],[-8.756,0],[0,-8.755]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.807843148708,0.890196084976,0.996078431606,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 3","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[160.956,102.822],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":309,"s":[0]},{"t":319,"s":[100]}],"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Av2","np":4,"cix":2,"bm":0,"ix":22,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,-4.835],[4.835,0],[0,4.835],[-4.836,0]],"o":[[0,4.835],[-4.836,0],[0,-4.835],[4.835,0]],"v":[[8.755,0],[0,8.755],[-8.756,0],[0,-8.755]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.807843148708,0.890196084976,0.996078431606,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 6","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[160.956,75.057],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":309,"s":[0]},{"t":319,"s":[100]}],"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Av1","np":7,"cix":2,"bm":0,"ix":23,"mn":"ADBE Vector Group","hd":false},{"ty":"rc","d":1,"s":{"a":1,"k":[{"i":{"x":[0.667,0.667],"y":[1,1]},"o":{"x":[0.333,0.333],"y":[0,0]},"t":386,"s":[131,245]},{"t":401,"s":[124,235]}],"ix":2},"p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":386,"s":[204.5,150],"to":[0,-0.333],"ti":[0,0.333]},{"t":401,"s":[204.5,148]}],"ix":3},"r":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":386,"s":[13]},{"t":401,"s":[10]}],"ix":4},"nm":"Bg","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":309,"s":[0]},{"t":319,"s":[100]}],"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false}],"ip":309,"op":402,"st":309,"ct":1,"bm":0},{"ddd":0,"ind":29,"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":[207.309,148.364,0],"ix":2,"l":2},"a":{"a":0,"k":[205.809,148.489,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":[130,249.922],"ix":2},"p":{"a":0,"k":[204,149],"ix":3},"r":{"a":0,"k":12,"ix":4},"nm":"Bg","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.315594613552,0.315594613552,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":182,"op":321,"st":182,"ct":1,"bm":0},{"ddd":0,"ind":30,"ty":4,"nm":"Text","tt":1,"tp":29,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[206.809,148.489,0],"ix":2,"l":2},"a":{"a":0,"k":[205.809,148.489,0],"ix":1,"l":2},"s":{"a":1,"k":[{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":305,"s":[100,100,100]},{"t":320,"s":[95,95,100]}],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[5.526,-7.728],[3.864,-9.39],[-5.526,0],[3.864,9.39],[5.526,7.728],[-2.202,0]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.231372563979,0.250980392157,0.262745098039,1],"ix":4},"o":{"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.2,"y":1},"o":{"x":0.5,"y":0},"t":254,"s":[132.798,160.048],"to":[4.333,0],"ti":[-4.333,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":290,"s":[158.798,160.048],"to":[0,0],"ti":[0,0]},{"i":{"x":0.338,"y":1},"o":{"x":0.465,"y":0},"t":303,"s":[158.798,160.048],"to":[0,0],"ti":[0,0]},{"t":313,"s":[132.798,160.048]}],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":265,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":273,"s":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":306,"s":[100]},{"t":311,"s":[0]}],"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 25","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-0.616,1.208],[-1.062,0.541],[-3.162,0],[0,0],[-1.208,-0.616],[-0.541,-1.063],[0,-3.163],[0,0],[0.616,-1.208],[1.062,-0.541],[3.163,0],[0,0],[1.209,0.616],[0.541,1.062],[0,3.163]],"o":[[0,-3.163],[0.541,-1.063],[1.209,-0.616],[0,0],[3.163,0],[1.062,0.541],[0.616,1.208],[0,0],[0,3.163],[-0.541,1.062],[-1.208,0.616],[0,0],[-3.162,0],[-1.062,-0.541],[-0.616,-1.208],[0,0]],"v":[[-42.351,-8.533],[-41.735,-14.485],[-39.268,-16.952],[-33.316,-17.568],[33.317,-17.568],[39.268,-16.952],[41.736,-14.485],[42.352,-8.533],[42.352,8.533],[41.736,14.485],[39.268,16.952],[33.317,17.568],[-33.316,17.568],[-39.268,16.952],[-41.735,14.485],[-42.351,8.533]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.807843197093,0.89019613827,0.996078491211,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[221.15,84.532],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"M1","np":2,"cix":2,"bm":0,"ix":3,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,3.119],[-3.119,0],[0,0],[0,-3.119],[3.119,0],[0,0]],"o":[[0,-3.119],[0,0],[3.119,0],[0,3.119],[0,0],[-3.119,0]],"v":[[-33.411,0],[-27.764,-5.647],[27.763,-5.647],[33.411,0],[27.763,5.647],[-27.764,5.647]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.909803981407,0.917647118662,0.929411824544,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[183.975,119.04],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"M2","np":2,"cix":2,"bm":0,"ix":4,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,3.119],[-3.119,0],[0,0],[-1.208,-0.616],[-0.541,-1.063],[0,-3.162],[0,0],[0.137,-0.269],[0.236,-0.12],[0.703,0],[0,0]],"o":[[0,-3.119],[0,0],[3.162,0],[1.062,0.541],[0.616,1.208],[0,0],[0,0.703],[-0.12,0.236],[-0.268,0.137],[0,0],[-3.119,0]],"v":[[-17.881,0],[-12.235,-5.647],[8.848,-5.647],[14.798,-5.031],[17.266,-2.563],[17.882,3.388],[17.882,3.639],[17.745,4.962],[17.197,5.51],[15.874,5.647],[-12.235,5.647]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.807843197093,0.89019613827,0.996078491211,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[245.62,134.86],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"M3","np":2,"cix":2,"bm":0,"ix":5,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-0.616,1.208],[-1.062,0.542],[-3.162,0],[0,0],[-0.268,-0.137],[-0.12,-0.236],[0,-0.703],[0,0],[0.616,-1.208],[1.062,-0.542],[3.163,0],[0,0],[1.209,0.616],[0.541,1.062],[0,3.163]],"o":[[0,-3.163],[0.541,-1.063],[1.209,-0.615],[0,0],[0.703,0],[0.236,0.12],[0.137,0.268],[0,0],[0,3.163],[-0.541,1.062],[-1.208,0.616],[0,0],[-3.162,0],[-1.062,-0.542],[-0.616,-1.208],[0,0]],"v":[[-42.351,-2.573],[-41.735,-8.525],[-39.268,-10.993],[-33.316,-11.607],[40.344,-11.607],[41.667,-11.471],[42.215,-10.923],[42.352,-9.6],[42.352,2.572],[41.736,8.524],[39.268,10.992],[33.317,11.607],[-33.316,11.607],[-39.268,10.992],[-41.735,8.524],[-42.351,2.572]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.807843197093,0.89019613827,0.996078491211,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[221.15,155.369],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"M4","np":2,"cix":2,"bm":0,"ix":6,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,3.119],[-3.119,0],[0,0],[0,-3.118],[3.118,0],[0,0]],"o":[[0,-3.118],[0,0],[3.118,0],[0,3.119],[0,0],[-3.119,0]],"v":[[-28.391,0],[-22.745,-5.646],[22.745,-5.646],[28.391,0],[22.745,5.646],[-22.745,5.646]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.909803981407,0.917647118662,0.929411824544,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[178.955,181.861],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"M5","np":2,"cix":2,"bm":0,"ix":7,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-0.616,1.209],[-1.062,0.541],[-3.162,0],[0,0],[-1.208,-0.616],[-0.541,-1.063],[0,-3.162],[0,0],[0.616,-1.208],[1.062,-0.541],[3.163,0],[0,0],[1.209,0.616],[0.541,1.062],[0,3.163]],"o":[[0,-3.162],[0.541,-1.063],[1.209,-0.616],[0,0],[3.163,0],[1.062,0.541],[0.616,1.209],[0,0],[0,3.163],[-0.541,1.062],[-1.208,0.616],[0,0],[-3.162,0],[-1.062,-0.541],[-0.616,-1.208],[0,0]],"v":[[-42.351,-2.573],[-41.735,-8.525],[-39.268,-10.992],[-33.316,-11.607],[33.317,-11.607],[39.268,-10.992],[41.736,-8.525],[42.352,-2.573],[42.352,2.573],[41.736,8.525],[39.268,10.992],[33.317,11.607],[-33.316,11.607],[-39.268,10.992],[-41.735,8.525],[-42.351,2.573]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.807843197093,0.89019613827,0.996078491211,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[221.15,208.354],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"M6","np":2,"cix":2,"bm":0,"ix":8,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-3.812,0],[0,0],[0,-3.812],[3.811,0],[0,0],[0,3.812]],"o":[[0,0],[3.811,0],[0,3.812],[0,0],[-3.812,0],[0,-3.812]],"v":[[-48.626,-6.902],[48.626,-6.902],[55.527,0],[48.626,6.902],[-48.626,6.902],[-55.528,0]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.909803981407,0.917647118662,0.929411824544,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2,"ix":5},"lc":1,"lj":1,"ml":10,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[204.5,247.036],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Field","np":2,"cix":2,"bm":0,"ix":9,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":305,"s":[{"i":[[-5.74,0],[0,0],[0,-5.74],[0,0],[0,0],[0,0]],"o":[[0,0],[5.74,0],[0,0],[0,0],[0,0],[0,-5.74]],"v":[[-54.25,-21.843],[54.214,-21.843],[70.125,-5.357],[70.125,15.935],[-69.625,15.935],[-69.625,-5.357]],"c":true}]},{"t":320,"s":[{"i":[[-5.74,0],[0,0],[0,-5.74],[0,0],[0,0],[0,0]],"o":[[0,0],[5.74,0],[0,0],[0,0],[0,0],[0,-5.74]],"v":[[-54.25,-27.895],[54.214,-27.895],[70.125,-11.41],[70.125,9.882],[-69.625,9.882],[-69.625,-11.41]],"c":true}]}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.909803981407,0.917647118662,0.929411824544,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[204.523,40.213],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"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":2,"cix":2,"bm":0,"ix":10,"mn":"ADBE Vector Group","hd":false},{"ty":"rc","d":1,"s":{"a":0,"k":[130,249],"ix":2},"p":{"a":0,"k":[204,148],"ix":3},"r":{"a":0,"k":9,"ix":4},"nm":"Bg","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":182,"op":321,"st":10,"ct":1,"bm":0},{"ddd":0,"ind":31,"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":1,"k":[{"i":{"x":0.05,"y":1},"o":{"x":0.3,"y":0},"t":160,"s":[219.684,227.239,0],"to":[-11.917,-12.833,0],"ti":[-0.083,37.333,0]},{"t":182,"s":[207.809,146.364,0]}],"ix":2,"l":2},"a":{"a":0,"k":[205.809,148.489,0],"ix":1,"l":2},"s":{"a":1,"k":[{"i":{"x":[0.05,0.05,0.2],"y":[1,1,1]},"o":{"x":[0.3,0.3,0.4],"y":[0,0,0]},"t":160,"s":[11.5,11.5,100]},{"t":182,"s":[100,100,100]}],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"rc","d":1,"s":{"a":1,"k":[{"i":{"x":[0.319,0.319],"y":[1,1]},"o":{"x":[0.333,0.333],"y":[0,0]},"t":163,"s":[130,130]},{"t":172,"s":[130,249.922]}],"ix":2},"p":{"a":0,"k":[204,149],"ix":3},"r":{"a":1,"k":[{"i":{"x":[0.319],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":163,"s":[93]},{"t":172,"s":[12]}],"ix":4},"nm":"Bg","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.315594613552,0.315594613552,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":160,"op":182,"st":160,"ct":1,"bm":0},{"ddd":0,"ind":32,"ty":4,"nm":"Text","tt":1,"tp":31,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.05,"y":1},"o":{"x":0.3,"y":0},"t":160,"s":[219.738,229.864,0],"to":[-9.998,-11.917,0],"ti":[0.498,38.167,0]},{"t":182,"s":[206.809,148.489,0]}],"ix":2,"l":2},"a":{"a":0,"k":[205.809,148.489,0],"ix":1,"l":2},"s":{"a":1,"k":[{"i":{"x":[0.05,0.05,0.2],"y":[1,1,1]},"o":{"x":[0.3,0.3,0.4],"y":[0,0,0]},"t":160,"s":[11.5,11.5,100]},{"t":182,"s":[100,100,100]}],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-0.616,1.208],[-1.062,0.541],[-3.162,0],[0,0],[-1.208,-0.616],[-0.541,-1.063],[0,-3.163],[0,0],[0.616,-1.208],[1.062,-0.541],[3.163,0],[0,0],[1.209,0.616],[0.541,1.062],[0,3.163]],"o":[[0,-3.163],[0.541,-1.063],[1.209,-0.616],[0,0],[3.163,0],[1.062,0.541],[0.616,1.208],[0,0],[0,3.163],[-0.541,1.062],[-1.208,0.616],[0,0],[-3.162,0],[-1.062,-0.541],[-0.616,-1.208],[0,0]],"v":[[-42.351,-8.533],[-41.735,-14.485],[-39.268,-16.952],[-33.316,-17.568],[33.317,-17.568],[39.268,-16.952],[41.736,-14.485],[42.352,-8.533],[42.352,8.533],[41.736,14.485],[39.268,16.952],[33.317,17.568],[-33.316,17.568],[-39.268,16.952],[-41.735,14.485],[-42.351,8.533]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":162,"s":[0.780392169952,0.921568632126,0.831372559071,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":168,"s":[1,1,1,1]},{"t":180,"s":[0.807843197093,0.89019613827,0.996078491211,1]}],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[221.15,84.532],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"M1","np":2,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,3.119],[-3.119,0],[0,0],[0,-3.119],[3.119,0],[0,0]],"o":[[0,-3.119],[0,0],[3.119,0],[0,3.119],[0,0],[-3.119,0]],"v":[[-33.411,0],[-27.764,-5.647],[27.763,-5.647],[33.411,0],[27.763,5.647],[-27.764,5.647]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":162,"s":[0.780392169952,0.921568632126,0.831372559071,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":168,"s":[1,1,1,1]},{"t":180,"s":[0.909803981407,0.917647118662,0.929411824544,1]}],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[183.975,119.04],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"M2","np":2,"cix":2,"bm":0,"ix":3,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,3.119],[-3.119,0],[0,0],[-1.208,-0.616],[-0.541,-1.063],[0,-3.162],[0,0],[0.137,-0.269],[0.236,-0.12],[0.703,0],[0,0]],"o":[[0,-3.119],[0,0],[3.162,0],[1.062,0.541],[0.616,1.208],[0,0],[0,0.703],[-0.12,0.236],[-0.268,0.137],[0,0],[-3.119,0]],"v":[[-17.881,0],[-12.235,-5.647],[8.848,-5.647],[14.798,-5.031],[17.266,-2.563],[17.882,3.388],[17.882,3.639],[17.745,4.962],[17.197,5.51],[15.874,5.647],[-12.235,5.647]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":162,"s":[0.780392169952,0.921568632126,0.831372559071,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":168,"s":[1,1,1,1]},{"t":180,"s":[0.807843197093,0.89019613827,0.996078491211,1]}],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[245.62,134.86],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"M3","np":2,"cix":2,"bm":0,"ix":4,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-0.616,1.208],[-1.062,0.542],[-3.162,0],[0,0],[-0.268,-0.137],[-0.12,-0.236],[0,-0.703],[0,0],[0.616,-1.208],[1.062,-0.542],[3.163,0],[0,0],[1.209,0.616],[0.541,1.062],[0,3.163]],"o":[[0,-3.163],[0.541,-1.063],[1.209,-0.615],[0,0],[0.703,0],[0.236,0.12],[0.137,0.268],[0,0],[0,3.163],[-0.541,1.062],[-1.208,0.616],[0,0],[-3.162,0],[-1.062,-0.542],[-0.616,-1.208],[0,0]],"v":[[-42.351,-2.573],[-41.735,-8.525],[-39.268,-10.993],[-33.316,-11.607],[40.344,-11.607],[41.667,-11.471],[42.215,-10.923],[42.352,-9.6],[42.352,2.572],[41.736,8.524],[39.268,10.992],[33.317,11.607],[-33.316,11.607],[-39.268,10.992],[-41.735,8.524],[-42.351,2.572]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":162,"s":[0.780392169952,0.921568632126,0.831372559071,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":168,"s":[1,1,1,1]},{"t":180,"s":[0.807843197093,0.89019613827,0.996078491211,1]}],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[221.15,155.369],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"M4","np":2,"cix":2,"bm":0,"ix":5,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,3.119],[-3.119,0],[0,0],[0,-3.118],[3.118,0],[0,0]],"o":[[0,-3.118],[0,0],[3.118,0],[0,3.119],[0,0],[-3.119,0]],"v":[[-28.391,0],[-22.745,-5.646],[22.745,-5.646],[28.391,0],[22.745,5.646],[-22.745,5.646]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":162,"s":[0.780392169952,0.921568632126,0.831372559071,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":168,"s":[1,1,1,1]},{"t":180,"s":[0.909803981407,0.917647118662,0.929411824544,1]}],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[178.955,181.861],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"M5","np":2,"cix":2,"bm":0,"ix":6,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-0.616,1.209],[-1.062,0.541],[-3.162,0],[0,0],[-1.208,-0.616],[-0.541,-1.063],[0,-3.162],[0,0],[0.616,-1.208],[1.062,-0.541],[3.163,0],[0,0],[1.209,0.616],[0.541,1.062],[0,3.163]],"o":[[0,-3.162],[0.541,-1.063],[1.209,-0.616],[0,0],[3.163,0],[1.062,0.541],[0.616,1.209],[0,0],[0,3.163],[-0.541,1.062],[-1.208,0.616],[0,0],[-3.162,0],[-1.062,-0.541],[-0.616,-1.208],[0,0]],"v":[[-42.351,-2.573],[-41.735,-8.525],[-39.268,-10.992],[-33.316,-11.607],[33.317,-11.607],[39.268,-10.992],[41.736,-8.525],[42.352,-2.573],[42.352,2.573],[41.736,8.525],[39.268,10.992],[33.317,11.607],[-33.316,11.607],[-39.268,10.992],[-41.735,8.525],[-42.351,2.573]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":162,"s":[0.780392169952,0.921568632126,0.831372559071,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":168,"s":[1,1,1,1]},{"t":180,"s":[0.807843197093,0.89019613827,0.996078491211,1]}],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[221.15,208.354],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"M6","np":2,"cix":2,"bm":0,"ix":7,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-3.812,0],[0,0],[0,-3.812],[3.811,0],[0,0],[0,3.812]],"o":[[0,0],[3.811,0],[0,3.812],[0,0],[-3.812,0],[0,-3.812]],"v":[[-48.626,-6.902],[48.626,-6.902],[55.527,0],[48.626,6.902],[-48.626,6.902],[-55.528,0]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":162,"s":[0.780392169952,0.921568632126,0.831372559071,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":168,"s":[1,1,1,1]},{"t":180,"s":[0.909803981407,0.917647118662,0.929411824544,1]}],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2,"ix":5},"lc":1,"lj":1,"ml":10,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[204.5,247.036],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Field","np":2,"cix":2,"bm":0,"ix":8,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-5.74,0],[0,0],[0,-5.74],[0,0],[0,0],[0,0]],"o":[[0,0],[5.74,0],[0,0],[0,0],[0,0],[0,-5.74]],"v":[[-54.232,-15.843],[54.232,-15.843],[64.625,-5.45],[64.625,15.843],[-64.625,15.843],[-64.625,-5.45]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":162,"s":[0.780392169952,0.921568632126,0.831372559071,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":168,"s":[1,1,1,1]},{"t":180,"s":[0.909803981407,0.917647118662,0.929411824544,1]}],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[204.523,40.213],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"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":2,"cix":2,"bm":0,"ix":9,"mn":"ADBE Vector Group","hd":false},{"ty":"rc","d":1,"s":{"a":0,"k":[130,249],"ix":2},"p":{"a":0,"k":[204,148],"ix":3},"r":{"a":0,"k":9,"ix":4},"nm":"Bg","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":162,"s":[0.780392169952,0.921568632126,0.831372559071,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":168,"s":[1,1,1,1]},{"t":180,"s":[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":160,"op":182,"st":10,"ct":1,"bm":0},{"ddd":0,"ind":33,"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":1,"k":[{"i":{"x":0.2,"y":1},"o":{"x":0.65,"y":0},"t":60,"s":[206.809,146.489,0],"to":[0.042,-61.458,0],"ti":[8.458,-161.542,0]},{"t":90,"s":[190.934,229,0]}],"ix":2,"l":2},"a":{"a":0,"k":[205.809,148.489,0],"ix":1,"l":2},"s":{"a":1,"k":[{"i":{"x":[0.2,0.2,0.2],"y":[1,1,1]},"o":{"x":[0.51,0.51,0.4],"y":[0,0,0]},"t":60,"s":[100,100,100]},{"t":90,"s":[11.5,11.5,100]}],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"rc","d":1,"s":{"a":1,"k":[{"i":{"x":[0.425,0.433],"y":[1,1]},"o":{"x":[0.455,0.463],"y":[0,0]},"t":66,"s":[130,249.922]},{"t":85,"s":[130,130]}],"ix":2},"p":{"a":0,"k":[204,149],"ix":3},"r":{"a":1,"k":[{"i":{"x":[0.425],"y":[1]},"o":{"x":[0.455],"y":[0]},"t":66,"s":[8]},{"t":85,"s":[93]}],"ix":4},"nm":"Bg","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.315594613552,0.315594613552,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":91,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":34,"ty":4,"nm":"News","tt":1,"tp":33,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.2,"y":1},"o":{"x":0.65,"y":0},"t":60,"s":[207.809,148.489,0],"to":[0.292,-74.458,0],"ti":[8.458,-161.542,0]},{"t":90,"s":[190.934,234.239,0]}],"ix":2,"l":2},"a":{"a":0,"k":[205.809,148.489,0],"ix":1,"l":2},"s":{"a":1,"k":[{"i":{"x":[0.2,0.2,0.2],"y":[1,1,1]},"o":{"x":[0.65,0.65,0.4],"y":[0,0,0]},"t":60,"s":[100,100,100]},{"t":90,"s":[11,11,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.588,0],[0,0],[0,0.586],[-0.587,0],[0,0],[0,-0.588]],"o":[[0,0],[-0.587,0],[0,-0.588],[0,0],[0.588,0],[0,0.586]],"v":[[10.273,1.064],[-10.274,1.064],[-11.337,0.001],[-10.274,-1.063],[10.273,-1.063],[11.337,0.001]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.501960813999,0.525490224361,0.54509806633,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[206.247,265.909],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[1.804,0],[0,0],[0,1.805],[0,0],[-1.804,0],[0,0],[0,-1.804],[0,0]],"o":[[0,0],[-1.804,0],[0,0],[0,-1.804],[0,0],[1.804,0],[0,0],[0,1.805]],"v":[[50.721,40.146],[-50.722,40.146],[-53.988,36.879],[-53.988,-36.879],[-50.722,-40.146],[50.721,-40.146],[53.988,-36.879],[53.988,36.879]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":70,"s":[0.854902020623,0.862745157878,0.878431432387,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":76,"s":[1,1,1,1]},{"t":82,"s":[1,0.815686285496,0.807843148708,1]}],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[205.892,150.065],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 4","np":2,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.544,0],[0,0],[0,0.544],[0,0],[-0.544,0],[0,0],[0,-0.544],[0,0]],"o":[[0,0],[-0.544,0],[0,0],[0,-0.544],[0,0],[0.544,0],[0,0],[0,0.544]],"v":[[36.749,2.254],[-36.749,2.254],[-37.732,1.27],[-37.732,-1.269],[-36.749,-2.254],[36.749,-2.254],[37.732,-1.269],[37.732,1.27]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":70,"s":[0.854902020623,0.862745157878,0.878431432387,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":76,"s":[1,1,1,1]},{"t":82,"s":[1,0.815686285496,0.807843148708,1]}],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[189.636,227.641],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 5","np":2,"cix":2,"bm":0,"ix":3,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.65,0],[0,0],[0,0.65],[0,0],[-0.649,0],[0,0],[0,-0.65],[0,0]],"o":[[0,0],[-0.649,0],[0,0],[0,-0.65],[0,0],[0.65,0],[0,0],[0,0.65]],"v":[[52.81,2.254],[-52.812,2.254],[-53.988,1.077],[-53.988,-1.076],[-52.812,-2.254],[52.81,-2.254],[53.988,-1.076],[53.988,1.077]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":70,"s":[0.854902020623,0.862745157878,0.878431432387,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":76,"s":[1,1,1,1]},{"t":82,"s":[1,0.815686285496,0.807843148708,1]}],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[205.892,249.393],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 6","np":2,"cix":2,"bm":0,"ix":4,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.65,0],[0,0],[0,0.651],[0,0],[-0.649,0],[0,0],[0,-0.649],[0,0]],"o":[[0,0],[-0.649,0],[0,0],[0,-0.649],[0,0],[0.65,0],[0,0],[0,0.651]],"v":[[52.81,2.254],[-52.812,2.254],[-53.988,1.076],[-53.988,-1.077],[-52.812,-2.254],[52.81,-2.254],[53.988,-1.077],[53.988,1.076]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":70,"s":[0.854902020623,0.862745157878,0.878431432387,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":76,"s":[1,1,1,1]},{"t":82,"s":[1,0.815686285496,0.807843148708,1]}],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[205.892,240.676],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 7","np":2,"cix":2,"bm":0,"ix":5,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.65,0],[0,0],[0,0.651],[0,0],[-0.649,0],[0,0],[0,-0.649],[0,0]],"o":[[0,0],[-0.649,0],[0,0],[0,-0.649],[0,0],[0.65,0],[0,0],[0,0.651]],"v":[[52.81,2.253],[-52.812,2.253],[-53.988,1.077],[-53.988,-1.076],[-52.812,-2.253],[52.81,-2.253],[53.988,-1.076],[53.988,1.077]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":70,"s":[0.854902020623,0.862745157878,0.878431432387,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":76,"s":[1,1,1,1]},{"t":82,"s":[1,0.815686285496,0.807843148708,1]}],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[205.892,218.65],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 8","np":2,"cix":2,"bm":0,"ix":6,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.65,0],[0,0],[0,0.651],[0,0],[-0.649,0],[0,0],[0,-0.65],[0,0]],"o":[[0,0],[-0.649,0],[0,0],[0,-0.65],[0,0],[0.65,0],[0,0],[0,0.651]],"v":[[52.81,2.253],[-52.812,2.253],[-53.988,1.077],[-53.988,-1.077],[-52.812,-2.254],[52.81,-2.254],[53.988,-1.077],[53.988,1.077]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":70,"s":[0.854902020623,0.862745157878,0.878431432387,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":76,"s":[1,1,1,1]},{"t":82,"s":[1,0.815686285496,0.807843148708,1]}],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[205.892,209.932],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 9","np":2,"cix":2,"bm":0,"ix":7,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.65,0],[0,0],[0,0.65],[0,0],[-0.649,0],[0,0],[0,-0.65],[0,0]],"o":[[0,0],[-0.649,0],[0,0],[0,-0.65],[0,0],[0.65,0],[0,0],[0,0.65]],"v":[[52.81,2.254],[-52.812,2.254],[-53.988,1.077],[-53.988,-1.076],[-52.812,-2.253],[52.81,-2.253],[53.988,-1.076],[53.988,1.077]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":70,"s":[0.854902020623,0.862745157878,0.878431432387,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":76,"s":[1,1,1,1]},{"t":82,"s":[1,0.815686285496,0.807843148708,1]}],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[205.892,201.214],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 10","np":2,"cix":2,"bm":0,"ix":8,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.783,0],[0,0],[0,0.783],[0,0],[-0.783,0],[0,0],[0,-0.783],[0,0]],"o":[[0,0],[-0.783,0],[0,0],[0,-0.783],[0,0],[0.783,0],[0,0],[0,0.783]],"v":[[37.779,4.508],[-37.779,4.508],[-39.197,3.09],[-39.197,-3.089],[-37.779,-4.508],[37.779,-4.508],[39.197,-3.089],[39.197,3.09]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":70,"s":[0.854902020623,0.862745157878,0.878431432387,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":76,"s":[1,1,1,1]},{"t":82,"s":[1,0.815686285496,0.807843148708,1]}],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[191.101,96.446],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 11","np":2,"cix":2,"bm":0,"ix":9,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.849,0],[0,0],[0,0.85],[0,0],[-0.849,0],[0,0],[0,-0.849],[0,0]],"o":[[0,0],[-0.849,0],[0,0],[0,-0.849],[0,0],[0.849,0],[0,0],[0,0.85]],"v":[[44.544,4.508],[-44.543,4.508],[-46.081,2.97],[-46.081,-2.969],[-44.543,-4.508],[44.544,-4.508],[46.081,-2.969],[46.081,2.97]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":70,"s":[0.854902020623,0.862745157878,0.878431432387,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":76,"s":[1,1,1,1]},{"t":82,"s":[1,0.815686285496,0.807843148708,1]}],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[197.984,83.913],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 12","np":2,"cix":2,"bm":0,"ix":10,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.783,0],[0,0],[0,0.783],[0,0],[-0.783,0],[0,0],[0,-0.783],[0,0]],"o":[[0,0],[-0.783,0],[0,0],[0,-0.783],[0,0],[0.783,0],[0,0],[0,0.783]],"v":[[37.779,4.507],[-37.779,4.507],[-39.197,3.089],[-39.197,-3.089],[-37.779,-4.507],[37.779,-4.507],[39.197,-3.089],[39.197,3.089]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":70,"s":[0.854902020623,0.862745157878,0.878431432387,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":76,"s":[1,1,1,1]},{"t":82,"s":[1,0.815686285496,0.807843148708,1]}],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[191.101,71.382],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 13","np":2,"cix":2,"bm":0,"ix":11,"mn":"ADBE Vector Group","hd":false},{"ty":"tr","p":{"a":0,"k":[203.892,166.924],"ix":2},"a":{"a":0,"k":[205.892,166.924],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 15","np":11,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-6.352,0],[0,0],[0,-6.352],[0,0],[0,0],[0,0]],"o":[[0,0],[6.351,0],[0,0],[0,0],[0,0],[0,-6.352]],"v":[[-53.748,-15.977],[53.749,-15.977],[65.249,-4.476],[65.249,15.977],[-65.249,15.977],[-65.249,-4.476]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":70,"s":[0.909803981407,0.917647118662,0.929411824544,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":76,"s":[1,1,1,1]},{"t":82,"s":[1,0.815686285496,0.807843148708,1]}],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[204.621,39.692],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 14","np":2,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"rc","d":2,"s":{"a":0,"k":[130,249.922],"ix":2},"p":{"a":0,"k":[204,149],"ix":3},"r":{"a":0,"k":8,"ix":4},"nm":"Bg","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":76,"s":[1,1,1,1]},{"t":82,"s":[1,0.815686285496,0.807843148708,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":91,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":35,"ty":4,"nm":"Homescreen_UI","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[204.621,240.334,0],"ix":2,"l":2},"a":{"a":0,"k":[204.621,236.334,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,-3.744],[3.744,0],[0,3.744],[-3.744,0]],"o":[[0,3.744],[-3.744,0],[0,-3.744],[3.744,0]],"v":[[6.78,0],[0.001,6.779],[-6.779,0],[0.001,-6.779]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.937254965305,0.741176486015,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[248.092,223],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[120,120],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"YELLOW","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,-3.744],[3.744,0],[0,3.744],[-3.744,0]],"o":[[0,3.744],[-3.744,0],[0,-3.744],[3.744,0]],"v":[[6.78,0],[0.001,6.779],[-6.779,0],[0.001,-6.779]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.780392229557,0.92156869173,0.831372618675,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[219.211,223],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[120,120],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":160,"s":[100]},{"t":162,"s":[1]}],"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"GREEN","np":2,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,-3.744],[3.744,0],[0,3.744],[-3.744,0]],"o":[[0,3.744],[-3.744,0],[0,-3.744],[3.744,0]],"v":[[6.78,0],[0.001,6.779],[-6.779,0],[0.001,-6.779]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.8156863451,0.807843208313,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[190.33,223],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[120,120],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":85,"s":[0]},{"t":90,"s":[100]}],"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"RED","np":2,"cix":2,"bm":0,"ix":3,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,-3.744],[3.744,0],[0,3.744],[-3.744,0]],"o":[[0,3.744],[-3.744,0],[0,-3.744],[3.744,0]],"v":[[6.779,0],[0,6.779],[-6.78,0],[0,-6.779]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.807843208313,0.890196144581,0.996078491211,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[161.45,223],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[120,120],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"BLUE","np":2,"cix":2,"bm":0,"ix":4,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[3.904,0],[0,0],[0,3.905],[-3.904,0],[0,0],[0,-3.905]],"o":[[0,0],[-3.904,0],[0,-3.905],[0,0],[3.904,0],[0,3.905]],"v":[[44.152,7.099],[-44.152,7.099],[-51.251,0],[-44.152,-7.099],[44.152,-7.099],[51.251,0]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.235294118524,0.250980407,0.262745112181,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[204.621,246.672],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"QSB","np":2,"cix":2,"bm":0,"ix":5,"mn":"ADBE Vector Group","hd":false},{"ty":"tr","p":{"a":1,"k":[{"i":{"x":0.2,"y":1},"o":{"x":0.65,"y":0},"t":60,"s":[205.809,143.489],"to":[0,1.085],"ti":[0,-0.833]},{"i":{"x":0.414,"y":1},"o":{"x":0.333,"y":0},"t":90,"s":[205.809,150],"to":[0,0.833],"ti":[0,0.252]},{"t":120,"s":[205.809,148.489]}],"ix":2},"a":{"a":0,"k":[205.809,148.489],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":65,"s":[0]},{"t":73,"s":[100]}],"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Home_LT","np":5,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":182,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":36,"ty":4,"nm":"Nav","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[205.809,148.489,0],"ix":2,"l":2},"a":{"a":0,"k":[205.809,148.489,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.588,0],[0,0],[0,0.586],[-0.587,0],[0,0],[0,-0.588]],"o":[[0,0],[-0.587,0],[0,-0.588],[0,0],[0.588,0],[0,0.586]],"v":[[10.273,1.064],[-10.274,1.064],[-11.337,0.001],[-10.274,-1.063],[10.273,-1.063],[11.337,0.001]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.501960813999,0.525490224361,0.54509806633,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[206.247,265.909],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":65,"s":[0]},{"t":73,"s":[100]}],"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Nav","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":170,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":37,"ty":4,"nm":"WHITE_BG","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[206.809,148.489,0],"ix":2,"l":2},"a":{"a":0,"k":[205.809,148.489,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,-6.075],[0,0],[6.075,0],[0,0],[0,6.075],[0,0],[-6.075,0],[0,0]],"o":[[0,0],[0,6.075],[0,0],[-6.075,0],[0,0],[0,-6.075],[0,0],[6.075,0]],"v":[[270.125,35.078],[270.125,262.5],[259.125,273.5],[150,273.461],[139,262.461],[139,35.039],[150,24.039],[259.125,24.078]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false}],"ip":303,"op":540,"st":-42,"ct":1,"bm":0},{"ddd":0,"ind":38,"ty":4,"nm":"BLACK_BG","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[206.809,148.489,0],"ix":2,"l":2},"a":{"a":0,"k":[205.809,148.489,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,-6.075],[0,0],[6.075,0],[0,0],[0,6.075],[0,0],[-6.075,0],[0,0]],"o":[[0,0],[0,6.075],[0,0],[-6.075,0],[0,0],[0,-6.075],[0,0],[6.075,0]],"v":[[270.125,35.078],[270.125,262.5],[259.125,273.5],[150,273.461],[139,262.461],[139,35.039],[150,24.039],[259.125,24.078]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0,0,0,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false}],"ip":0,"op":1216,"st":-42,"ct":1,"bm":0}],"markers":[]}
\ No newline at end of file
diff --git a/res/values/strings.xml b/res/values/strings.xml
index dea4320..505aac0 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -410,9 +410,9 @@
     <!-- The summary of default string for each regional preference. [CHAR LIMIT=50] -->
     <string name="default_string_of_regional_preference">Use app default</string>
     <!-- The title of Celsius for preference of temperature unit. [CHAR LIMIT=50] -->
-    <string name="celsius_temperature_unit">Celsius(\u00B0C)</string>
+    <string name="celsius_temperature_unit">Celsius (\u00B0C)</string>
     <!-- The title of Fahrenheit for preference of temperature unit. [CHAR LIMIT=50] -->
-    <string name="fahrenheit_temperature_unit">Fahrenheit(\u00B0F)</string>
+    <string name="fahrenheit_temperature_unit">Fahrenheit (\u00B0F)</string>
     <!-- The title of sunday for preference of first day of week. [CHAR LIMIT=50] -->
     <string name="sunday_first_day_of_week">Sunday</string>
     <!-- The title of monday for preference of first day of week. [CHAR LIMIT=50] -->
@@ -427,6 +427,12 @@
     <string name="friday_first_day_of_week">Friday</string>
     <!-- The title of saturday for preference of first day of week. [CHAR LIMIT=50] -->
     <string name="saturday_first_day_of_week">Saturday</string>
+    <!-- Title for regional preference footer. [CHAR LIMIT=NONE] -->
+    <string name="title_regional_pref_footer">If an app doesn’t support regional preferences, the app will use its default locale settings.</string>
+    <!-- Description for text in regional preference footer. [CHAR LIMIT=NONE] -->
+    <string name="desc_regional_pref_footer_learn_more">Learn more about language preferences.</string>
+    <!-- TODO(b/277573274): Update the learn more url in the regional preference. -->
+    <string name="regional_pref_footer_learn_more_link" translatable="false">https://support.google.com/android</string>
 
     <!-- The title of the confirmation dialog shown when the user selects one / several languages and tries to remove them [CHAR LIMIT=60] -->
     <string name="dlg_remove_locales_title">{count, plural,
@@ -871,12 +877,16 @@
     <string name="biometric_settings_use_face_or_fingerprint_preference_summary">Using face or fingerprint</string>
     <!-- Button text shown during enrollment to proceed after a child user has handed the device to a parent or guardian. [CHAR LIMIT=22] -->
     <string name="biometric_settings_hand_back_to_guardian_ok">OK</string>
-    <!-- Dialog title for dialog which shows when trying to add fingerprint in split mode. [CHAR LIMIT=45] -->
+    <!-- Dialog title for dialog which shows when trying to add face in split mode. [CHAR LIMIT=NONE] -->
+    <string name="biometric_settings_add_face_in_split_mode_title">Can\u2019t set up Face Unlock</string>
+    <!-- Dialog message for dialog which shows when trying to add face in split mode. [CHAR LIMIT=NONE] -->
+    <string name="biometric_settings_add_face_in_split_mode_message">Exit split screen to set up Face Unlock</string>
+    <!-- Dialog title for dialog which shows when trying to add fingerprint in split mode. [CHAR LIMIT=80] -->
     <string name="biometric_settings_add_fingerprint_in_split_mode_title">Can\u2019t set up fingerprint</string>
-    <!-- Dialog message for dialog which shows when trying to add fingerprint in split mode. [CHAR LIMIT=45] -->
+    <!-- Dialog message for dialog which shows when trying to add fingerprint in split mode. [CHAR LIMIT=NONE] -->
     <string name="biometric_settings_add_fingerprint_in_split_mode_message">Exit split screen to set up Fingerprint Unlock</string>
-    <!-- Button text shown in adding fingerprint dialog that allows the user to go back to the settings page [CHAR LIMIT=22] -->
-    <string name="biometric_settings_add_fingerprint_in_split_mode_ok">OK</string>
+    <!-- Button text shown in adding biometrics dialog that allows the user to go back to the settings page [CHAR LIMIT=22] -->
+    <string name="biometric_settings_add_biometrics_in_split_mode_ok">OK</string>
 
     <!-- Title of dialog shown when the user tries to skip setting up a screen lock, warning them of potential consequences of not doing so [CHAR LIMIT=30]-->
     <string name="lock_screen_intro_skip_title">Skip screen lock?</string>
@@ -11524,9 +11534,12 @@
     <!-- Summary for UWB preference. [CHAR_LIMIT=NONE]-->
     <string name="uwb_settings_summary">Helps identify the relative position of nearby devices that have UWB</string>
 
-    <!-- Summary for UWB preference when airplane mode is disabled. [CHAR_LIMIT=NONE]-->
+    <!-- Summary for UWB preference when airplane mode is enabled. [CHAR_LIMIT=NONE]-->
     <string name="uwb_settings_summary_airplane_mode">Turn off airplane mode to use UWB </string>
 
+    <!-- Summary for UWB preference when UWB is unavailable due to regulatory requirements. [CHAR_LIMIT=NONE]-->
+    <string name="uwb_settings_summary_no_uwb_regulatory">UWB is unavailable in the current location</string>
+
     <!-- Label for the camera use toggle [CHAR LIMIT=40] -->
     <string name="camera_toggle_title">Camera access</string>
     <!-- Label for the camera use toggle [CHAR LIMIT=40] -->
@@ -12034,4 +12047,7 @@
 
     <!-- Warning message when we try to dock an app not supporting multiple instances split into multiple sides [CHAR LIMIT=NONE] -->
     <string name="dock_multi_instances_not_supported_text">"This app can only be opened in 1 window"</string>
+
+    <!-- [CHAR LIMIT=30] Label used to open Note Task -->
+    <string name="note_task_button_label">Notetaking</string>
 </resources>
diff --git a/res/xml/regional_preference_main_page.xml b/res/xml/regional_preference_main_page.xml
index de9d3d8..27a1d83 100644
--- a/res/xml/regional_preference_main_page.xml
+++ b/res/xml/regional_preference_main_page.xml
@@ -66,4 +66,11 @@
             android:value="arg_value_language_select" />
     </Preference>
 
+    <com.android.settingslib.widget.FooterPreference
+        android:key="regional_pref_footer"
+        android:title="@string/title_regional_pref_footer"
+        android:selectable="false"
+        settings:searchable="false"
+        settings:controller="com.android.settings.regionalpreferences.RegionalFooterPreferenceController"/>
+
 </PreferenceScreen>
diff --git a/res/xml/trackpad_settings.xml b/res/xml/trackpad_settings.xml
index 4a0897d..19ce259 100644
--- a/res/xml/trackpad_settings.xml
+++ b/res/xml/trackpad_settings.xml
@@ -47,7 +47,7 @@
         android:key="trackpad_bottom_right_tap"
         android:title="@string/trackpad_bottom_right_tap_title"
         android:summary="@string/trackpad_bottom_right_tap_summary"
-        android:icon="@drawable/ic_trackpad_reverse_scrolling"
+        android:icon="@drawable/ic_trackpad_bottom_right_click"
         settings:controller="com.android.settings.inputmethod.TrackpadBottomPreferenceController"
         android:order="30"/>
 
diff --git a/src/com/android/settings/Utils.java b/src/com/android/settings/Utils.java
index aadca5c..388a510 100644
--- a/src/com/android/settings/Utils.java
+++ b/src/com/android/settings/Utils.java
@@ -986,17 +986,6 @@
         return false;
     }
 
-    /**
-     * Return the resource id to represent the install status for an app
-     */
-    @StringRes
-    public static int getInstallationStatus(ApplicationInfo info) {
-        if ((info.flags & ApplicationInfo.FLAG_INSTALLED) == 0) {
-            return R.string.not_installed;
-        }
-        return info.enabled ? R.string.installed : R.string.disabled;
-    }
-
     private static boolean isVolumeValid(VolumeInfo volume) {
         return (volume != null) && (volume.getType() == VolumeInfo.TYPE_PRIVATE)
                 && volume.isMountedReadable();
diff --git a/src/com/android/settings/biometrics/BiometricsSplitScreenDialog.java b/src/com/android/settings/biometrics/BiometricsSplitScreenDialog.java
new file mode 100644
index 0000000..c1ecee8
--- /dev/null
+++ b/src/com/android/settings/biometrics/BiometricsSplitScreenDialog.java
@@ -0,0 +1,83 @@
+/*
+ * Copyright (C) 2023 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.settings.biometrics;
+
+import static android.hardware.biometrics.BiometricAuthenticator.TYPE_FACE;
+
+import android.app.Dialog;
+import android.app.settings.SettingsEnums;
+import android.content.DialogInterface;
+import android.hardware.biometrics.BiometricAuthenticator;
+import android.os.Bundle;
+
+import androidx.appcompat.app.AlertDialog;
+
+import com.android.settings.R;
+import com.android.settings.core.instrumentation.InstrumentedDialogFragment;
+
+/**
+ * This alert dialog shows when fingerprint is being added in multi window mode.
+ */
+public class BiometricsSplitScreenDialog extends InstrumentedDialogFragment {
+    private static final String KEY_BIOMETRICS_MODALITY = "biometrics_modality";
+
+    @BiometricAuthenticator.Modality
+    private int mBiometricsModality;
+
+    /** Returns the new instance of the class */
+    public static BiometricsSplitScreenDialog newInstance(
+            @BiometricAuthenticator.Modality int biometricsModality) {
+        final BiometricsSplitScreenDialog dialog = new BiometricsSplitScreenDialog();
+        final Bundle args = new Bundle();
+        args.putInt(KEY_BIOMETRICS_MODALITY, biometricsModality);
+        dialog.setArguments(args);
+        return dialog;
+    }
+
+    @Override
+    public Dialog onCreateDialog(Bundle savedInstanceState) {
+        mBiometricsModality = getArguments().getInt(KEY_BIOMETRICS_MODALITY);
+        int titleId;
+        int messageId;
+        switch (mBiometricsModality) {
+            case TYPE_FACE:
+                titleId = R.string.biometric_settings_add_face_in_split_mode_title;
+                messageId = R.string.biometric_settings_add_face_in_split_mode_message;
+                break;
+            default:
+                titleId = R.string.biometric_settings_add_fingerprint_in_split_mode_title;
+                messageId = R.string.biometric_settings_add_fingerprint_in_split_mode_message;
+        }
+        AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
+        builder.setTitle(titleId)
+                .setMessage(messageId)
+                .setPositiveButton(
+                        R.string.biometric_settings_add_biometrics_in_split_mode_ok,
+                        (DialogInterface.OnClickListener) (dialog, which) -> dialog.dismiss());
+        return builder.create();
+    }
+
+    @Override
+    public int getMetricsCategory() {
+        switch (mBiometricsModality) {
+            case TYPE_FACE:
+                return SettingsEnums.DIALOG_ADD_FACE_ERROR_IN_SPLIT_MODE;
+            default:
+                return SettingsEnums.DIALOG_ADD_FINGERPRINT_ERROR_IN_SPLIT_MODE;
+        }
+    }
+}
diff --git a/src/com/android/settings/biometrics/combination/BiometricsSettingsBase.java b/src/com/android/settings/biometrics/combination/BiometricsSettingsBase.java
index a57426f..7b02b9d 100644
--- a/src/com/android/settings/biometrics/combination/BiometricsSettingsBase.java
+++ b/src/com/android/settings/biometrics/combination/BiometricsSettingsBase.java
@@ -16,6 +16,8 @@
 package com.android.settings.biometrics.combination;
 
 import static android.app.Activity.RESULT_OK;
+import static android.hardware.biometrics.BiometricAuthenticator.TYPE_FACE;
+import static android.hardware.biometrics.BiometricAuthenticator.TYPE_FINGERPRINT;
 
 import static com.android.settings.password.ChooseLockPattern.RESULT_FINISHED;
 
@@ -41,7 +43,7 @@
 import com.android.settings.Utils;
 import com.android.settings.biometrics.BiometricEnrollBase;
 import com.android.settings.biometrics.BiometricUtils;
-import com.android.settings.biometrics.fingerprint.FingerprintSettings.FingerprintSettingsFragment;
+import com.android.settings.biometrics.BiometricsSplitScreenDialog;
 import com.android.settings.core.SettingsBaseActivity;
 import com.android.settings.dashboard.DashboardFragment;
 import com.android.settings.password.ChooseLockGeneric;
@@ -143,6 +145,18 @@
         // since FingerprintSettings and FaceSettings revoke the challenge when finishing.
         if (getFacePreferenceKey().equals(key)) {
             mDoNotFinishActivity = true;
+
+            //  If it's split mode and there is no enrolled face, show the dialog. (if there is
+            //  enrolled face, FaceSettingsEnrollButtonPreferenceController#onClick will handle
+            //  the dialog)
+            if (getActivity().isInMultiWindowMode() && !mFaceManager.hasEnrolledTemplates(
+                    mUserId)) {
+                BiometricsSplitScreenDialog.newInstance(TYPE_FACE).show(
+                        getActivity().getSupportFragmentManager(),
+                        BiometricsSplitScreenDialog.class.getName());
+                return true;
+            }
+
             mFaceManager.generateChallenge(mUserId, (sensorId, userId, challenge) -> {
                 try {
                     final byte[] token = requestGatekeeperHat(context, mGkPwHandle, mUserId,
@@ -168,10 +182,14 @@
         } else if (getFingerprintPreferenceKey().equals(key)) {
             mDoNotFinishActivity = true;
 
-            if (shouldSkipForUdfpsInMultiWindowMode()) {
-                new FingerprintSettingsFragment.FingerprintSplitScreenDialog().show(
+            //  If it's split mode and there is no enrolled fingerprint, show the dialog. (if
+            //  there is enrolled fingerprint, FingerprintSettingsFragment#onPreferenceTreeClick
+            //  will handle the dialog)
+            if (getActivity().isInMultiWindowMode() && !mFingerprintManager.hasEnrolledFingerprints(
+                    mUserId)) {
+                BiometricsSplitScreenDialog.newInstance(TYPE_FINGERPRINT).show(
                         getActivity().getSupportFragmentManager(),
-                        FingerprintSettingsFragment.FingerprintSplitScreenDialog.class.getName());
+                        BiometricsSplitScreenDialog.class.getName());
                 return true;
             }
 
@@ -386,27 +404,4 @@
             return 0;
         }
     }
-
-    /**
-     * Returns whether the click should be skipped.
-     * True if the following conditions are all met:
-     * 1. It's split mode.
-     * 2. It's udfps.
-     * 3. There is no enrolled fingerprint. (If there is enrolled fingerprint, FingerprintSettings
-     * will handle the adding fingerprint.
-     */
-    private boolean shouldSkipForUdfpsInMultiWindowMode() {
-        if (!getActivity().isInMultiWindowMode() || mFingerprintManager.hasEnrolledFingerprints(
-                mUserId)) {
-            return false;
-        }
-
-        for (FingerprintSensorPropertiesInternal prop :
-                mFingerprintManager.getSensorPropertiesInternal()) {
-            if (prop.isAnyUdfpsType()) {
-                return true;
-            }
-        }
-        return false;
-    }
 }
diff --git a/src/com/android/settings/biometrics/face/FaceSettings.java b/src/com/android/settings/biometrics/face/FaceSettings.java
index bc9e8e2..cf2c09b 100644
--- a/src/com/android/settings/biometrics/face/FaceSettings.java
+++ b/src/com/android/settings/biometrics/face/FaceSettings.java
@@ -18,6 +18,7 @@
 
 import static android.app.Activity.RESULT_OK;
 import static android.app.admin.DevicePolicyResources.Strings.Settings.FACE_SETTINGS_FOR_WORK_TITLE;
+import static android.hardware.biometrics.BiometricAuthenticator.TYPE_FACE;
 
 import static com.android.settings.biometrics.BiometricEnrollBase.CONFIRM_REQUEST;
 import static com.android.settings.biometrics.BiometricEnrollBase.ENROLL_REQUEST;
@@ -42,6 +43,7 @@
 import com.android.settings.Utils;
 import com.android.settings.biometrics.BiometricEnrollBase;
 import com.android.settings.biometrics.BiometricUtils;
+import com.android.settings.biometrics.BiometricsSplitScreenDialog;
 import com.android.settings.dashboard.DashboardFragment;
 import com.android.settings.overlay.FeatureFactory;
 import com.android.settings.password.ChooseLockSettingsHelper;
@@ -101,8 +103,25 @@
         mEnrollButton.setVisible(true);
     };
 
-    private final FaceSettingsEnrollButtonPreferenceController.Listener mEnrollListener = intent ->
-            startActivityForResult(intent, ENROLL_REQUEST);
+    private final FaceSettingsEnrollButtonPreferenceController.Listener mEnrollListener =
+            new FaceSettingsEnrollButtonPreferenceController.Listener() {
+                @Override
+                public boolean checkInMultiWindowMode() {
+                    if (!getActivity().isInMultiWindowMode()) {
+                        return false;
+                    }
+                    // If it's in split mode, show the error dialog.
+                    BiometricsSplitScreenDialog.newInstance(TYPE_FACE).show(
+                            getActivity().getSupportFragmentManager(),
+                            BiometricsSplitScreenDialog.class.getName());
+                    return true;
+                }
+
+                @Override
+                public void onStartEnrolling(Intent intent) {
+                    FaceSettings.this.startActivityForResult(intent, ENROLL_REQUEST);
+                }
+            };
 
     /**
      * @param context
@@ -332,7 +351,6 @@
             } else if (controller instanceof FaceSettingsEnrollButtonPreferenceController) {
                 mEnrollController = (FaceSettingsEnrollButtonPreferenceController) controller;
                 mEnrollController.setListener(mEnrollListener);
-                mEnrollController.setActivity((SettingsActivity) getActivity());
             }
         }
 
diff --git a/src/com/android/settings/biometrics/face/FaceSettingsEnrollButtonPreferenceController.java b/src/com/android/settings/biometrics/face/FaceSettingsEnrollButtonPreferenceController.java
index b3e0e1e..a35e865 100644
--- a/src/com/android/settings/biometrics/face/FaceSettingsEnrollButtonPreferenceController.java
+++ b/src/com/android/settings/biometrics/face/FaceSettingsEnrollButtonPreferenceController.java
@@ -26,7 +26,6 @@
 import androidx.preference.Preference;
 
 import com.android.settings.R;
-import com.android.settings.SettingsActivity;
 import com.android.settings.core.BasePreferenceController;
 import com.android.settings.password.ChooseLockSettingsHelper;
 import com.android.settingslib.widget.LayoutPreference;
@@ -47,7 +46,6 @@
 
     private int mUserId;
     private byte[] mToken;
-    private SettingsActivity mActivity;
     private Button mButton;
     private boolean mIsClicked;
     private Listener mListener;
@@ -77,6 +75,11 @@
 
     @Override
     public void onClick(View v) {
+        // If it's in multi window mode, do not start the introduction intent.
+        if (mListener != null && mListener.checkInMultiWindowMode()) {
+            return;
+        }
+
         mIsClicked = true;
         final Intent intent = new Intent();
         intent.setClassName(SETTINGS_PACKAGE_NAME, FaceEnrollIntroduction.class.getName());
@@ -109,10 +112,6 @@
         return wasClicked;
     }
 
-    public void setActivity(SettingsActivity activity) {
-        mActivity = activity;
-    }
-
     public void setListener(Listener listener) {
         mListener = listener;
     }
@@ -122,6 +121,12 @@
      */
     public interface Listener {
         /**
+         * Called to check whether it's in multi window mode
+         * @return Whether it's in multi window mode.
+         */
+        boolean checkInMultiWindowMode();
+
+        /**
          * Called when the user has indicated an intent to begin enrolling a new face.
          * @param intent The Intent that should be used to launch face enrollment.
          */
diff --git a/src/com/android/settings/biometrics/fingerprint/FingerprintSettings.java b/src/com/android/settings/biometrics/fingerprint/FingerprintSettings.java
index 0e2c3d6..88a05c3 100644
--- a/src/com/android/settings/biometrics/fingerprint/FingerprintSettings.java
+++ b/src/com/android/settings/biometrics/fingerprint/FingerprintSettings.java
@@ -20,6 +20,7 @@
 import static android.app.admin.DevicePolicyResources.Strings.Settings.FINGERPRINT_UNLOCK_DISABLED_EXPLANATION;
 import static android.app.admin.DevicePolicyResources.Strings.Settings.WORK_PROFILE_FINGERPRINT_LAST_DELETE_MESSAGE;
 import static android.app.admin.DevicePolicyResources.UNDEFINED;
+import static android.hardware.biometrics.BiometricAuthenticator.TYPE_FINGERPRINT;
 
 import static com.android.settings.Utils.SETTINGS_PACKAGE_NAME;
 import static com.android.settings.biometrics.BiometricEnrollBase.EXTRA_FROM_SETTINGS_SUMMARY;
@@ -67,6 +68,7 @@
 import com.android.settings.Utils;
 import com.android.settings.biometrics.BiometricEnrollBase;
 import com.android.settings.biometrics.BiometricUtils;
+import com.android.settings.biometrics.BiometricsSplitScreenDialog;
 import com.android.settings.biometrics.GatekeeperPasswordProvider;
 import com.android.settings.biometrics2.ui.model.EnrollmentRequest;
 import com.android.settings.biometrics2.ui.view.FingerprintEnrollmentActivity;
@@ -695,12 +697,12 @@
         public boolean onPreferenceTreeClick(Preference pref) {
             final String key = pref.getKey();
             if (KEY_FINGERPRINT_ADD.equals(key)) {
-                // If it's udfps in split mode, show the error dialog and don't need to show adding
+                // If it's in split mode, show the error dialog and don't need to show adding
                 // fingerprint intent.
-                if (shouldSkipForUdfpsInMultiWindowMode()) {
-                    new FingerprintSplitScreenDialog().show(
+                if (getActivity().isInMultiWindowMode()) {
+                    BiometricsSplitScreenDialog.newInstance(TYPE_FINGERPRINT).show(
                             getActivity().getSupportFragmentManager(),
-                            FingerprintSplitScreenDialog.class.getName());
+                            BiometricsSplitScreenDialog.class.getName());
                     return true;
                 }
 
@@ -1007,14 +1009,6 @@
             updatePreferences();
         }
 
-        /**
-         * Returns whether the click should be skipped.
-         * True if it's udfps and it's in split mode.
-         */
-        private boolean shouldSkipForUdfpsInMultiWindowMode() {
-            return getActivity().isInMultiWindowMode() && isUdfps();
-        }
-
         private final Runnable mFingerprintLockoutReset = new Runnable() {
             @Override
             public void run() {
@@ -1264,29 +1258,6 @@
                 return alertDialog;
             }
         }
-
-        /**
-         * This alert dialog shows when fingerprint is being added in multi window mode.
-         */
-        public static class FingerprintSplitScreenDialog extends InstrumentedDialogFragment {
-            @Override
-            public Dialog onCreateDialog(Bundle savedInstanceState) {
-                AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
-                builder.setTitle(
-                                R.string.biometric_settings_add_fingerprint_in_split_mode_title)
-                        .setMessage(
-                                R.string.biometric_settings_add_fingerprint_in_split_mode_message)
-                        .setPositiveButton(
-                                R.string.biometric_settings_add_fingerprint_in_split_mode_ok,
-                                (DialogInterface.OnClickListener) (dialog, which) -> dialog.dismiss());
-                return builder.create();
-            }
-
-            @Override
-            public int getMetricsCategory() {
-                return SettingsEnums.DIALOG_ADD_FINGERPRINT_ERROR_IN_SPLIT_MODE;
-            }
-        }
     }
 
     public static class FingerprintPreference extends TwoTargetPreference {
diff --git a/src/com/android/settings/biometrics2/ui/view/FingerprintEnrollEnrollingIconTouchDialog.java b/src/com/android/settings/biometrics2/ui/view/FingerprintEnrollEnrollingIconTouchDialog.java
index e86d755..f4fe7ff 100644
--- a/src/com/android/settings/biometrics2/ui/view/FingerprintEnrollEnrollingIconTouchDialog.java
+++ b/src/com/android/settings/biometrics2/ui/view/FingerprintEnrollEnrollingIconTouchDialog.java
@@ -18,14 +18,11 @@
 
 import android.app.Dialog;
 import android.app.settings.SettingsEnums;
-import android.content.Context;
 import android.os.Bundle;
 
 import androidx.appcompat.app.AlertDialog;
-import androidx.lifecycle.ViewModelProvider;
 
 import com.android.settings.R;
-import com.android.settings.biometrics2.ui.viewmodel.FingerprintEnrollEnrollingViewModel;
 import com.android.settings.core.instrumentation.InstrumentedDialogFragment;
 
 /**
@@ -33,15 +30,6 @@
  */
 public class FingerprintEnrollEnrollingIconTouchDialog extends InstrumentedDialogFragment {
 
-    private FingerprintEnrollEnrollingViewModel mViewModel;
-
-    @Override
-    public void onAttach(Context context) {
-        mViewModel = new ViewModelProvider(getActivity()).get(
-                FingerprintEnrollEnrollingViewModel.class);
-        super.onAttach(context);
-    }
-
     @Override
     public Dialog onCreateDialog(Bundle savedInstanceState) {
         AlertDialog.Builder builder = new AlertDialog.Builder(getActivity(),
@@ -50,10 +38,7 @@
                 .setMessage(R.string.security_settings_fingerprint_enroll_touch_dialog_message)
                 .setPositiveButton(
                         R.string.security_settings_fingerprint_enroll_dialog_ok,
-                        (dialog, which) -> {
-                            dialog.dismiss();
-                            mViewModel.onIconTouchDialogDismiss();
-                        });
+                        (dialog, which) -> dialog.dismiss());
         return builder.create();
     }
 
diff --git a/src/com/android/settings/biometrics2/ui/view/FingerprintEnrollmentActivity.java b/src/com/android/settings/biometrics2/ui/view/FingerprintEnrollmentActivity.java
index 62928af..d84ce61 100644
--- a/src/com/android/settings/biometrics2/ui/view/FingerprintEnrollmentActivity.java
+++ b/src/com/android/settings/biometrics2/ui/view/FingerprintEnrollmentActivity.java
@@ -27,7 +27,6 @@
 import static com.android.settings.biometrics2.ui.viewmodel.AutoCredentialViewModel.CREDENTIAL_IS_GENERATING_CHALLENGE;
 import static com.android.settings.biometrics2.ui.viewmodel.AutoCredentialViewModel.CREDENTIAL_VALID;
 import static com.android.settings.biometrics2.ui.viewmodel.FingerprintEnrollEnrollingViewModel.ErrorDialogData;
-import static com.android.settings.biometrics2.ui.viewmodel.FingerprintEnrollEnrollingViewModel.FINGERPRINT_ENROLL_ENROLLING_ACTION_DISMISS_ICON_TOUCH_DIALOG;
 import static com.android.settings.biometrics2.ui.viewmodel.FingerprintEnrollEnrollingViewModel.FINGERPRINT_ENROLL_ENROLLING_ACTION_DONE;
 import static com.android.settings.biometrics2.ui.viewmodel.FingerprintEnrollEnrollingViewModel.FINGERPRINT_ENROLL_ENROLLING_ACTION_SHOW_ICON_TOUCH_DIALOG;
 import static com.android.settings.biometrics2.ui.viewmodel.FingerprintEnrollEnrollingViewModel.FINGERPRINT_ENROLL_ENROLLING_CANCELED_BECAUSE_BACK_PRESSED;
@@ -518,10 +517,6 @@
                         SKIP_SETUP_FIND_FPS_DIALOG_TAG);
                 break;
             }
-            case FINGERPRINT_ENROLL_ENROLLING_ACTION_DISMISS_ICON_TOUCH_DIALOG: {
-                onSetActivityResult(new ActivityResult(BiometricEnrollBase.RESULT_TIMEOUT, null));
-                break;
-            }
             case FINGERPRINT_ENROLL_ENROLLING_CANCELED_BECAUSE_BACK_PRESSED: {
                 if (getSupportFragmentManager().getBackStackEntryCount() > 0) {
                     getSupportFragmentManager().popBackStack();
diff --git a/src/com/android/settings/biometrics2/ui/viewmodel/FingerprintEnrollEnrollingViewModel.java b/src/com/android/settings/biometrics2/ui/viewmodel/FingerprintEnrollEnrollingViewModel.java
index 025c58b..12584ee 100644
--- a/src/com/android/settings/biometrics2/ui/viewmodel/FingerprintEnrollEnrollingViewModel.java
+++ b/src/com/android/settings/biometrics2/ui/viewmodel/FingerprintEnrollEnrollingViewModel.java
@@ -61,24 +61,18 @@
     public static final int FINGERPRINT_ENROLL_ENROLLING_ACTION_SHOW_ICON_TOUCH_DIALOG = 1;
 
     /**
-     * Icon touch dialog dismiss
-     */
-    public static final int FINGERPRINT_ENROLL_ENROLLING_ACTION_DISMISS_ICON_TOUCH_DIALOG = 2;
-
-    /**
      * Has got latest cancelled event due to user skip
      */
-    public static final int FINGERPRINT_ENROLL_ENROLLING_CANCELED_BECAUSE_USER_SKIP = 3;
+    public static final int FINGERPRINT_ENROLL_ENROLLING_CANCELED_BECAUSE_USER_SKIP = 2;
 
     /**
      * Has got latest cancelled event due to back key
      */
-    public static final int FINGERPRINT_ENROLL_ENROLLING_CANCELED_BECAUSE_BACK_PRESSED = 4;
+    public static final int FINGERPRINT_ENROLL_ENROLLING_CANCELED_BECAUSE_BACK_PRESSED = 3;
 
     @IntDef(prefix = { "FINGERPRINT_ENROLL_ENROLLING_ACTION_" }, value = {
             FINGERPRINT_ENROLL_ENROLLING_ACTION_DONE,
             FINGERPRINT_ENROLL_ENROLLING_ACTION_SHOW_ICON_TOUCH_DIALOG,
-            FINGERPRINT_ENROLL_ENROLLING_ACTION_DISMISS_ICON_TOUCH_DIALOG,
             FINGERPRINT_ENROLL_ENROLLING_CANCELED_BECAUSE_USER_SKIP,
             FINGERPRINT_ENROLL_ENROLLING_CANCELED_BECAUSE_BACK_PRESSED
     })
@@ -116,7 +110,6 @@
     private final Vibrator mVibrator;
 
     private final MutableLiveData<Integer> mActionLiveData = new MutableLiveData<>();
-    private final MutableLiveData<Integer> mIconTouchDialogLiveData = new MutableLiveData<>();
     private final MutableLiveData<ErrorDialogData> mErrorDialogLiveData = new MutableLiveData<>();
     private final MutableLiveData<Integer> mErrorDialogActionLiveData = new MutableLiveData<>();
 
@@ -234,17 +227,6 @@
     }
 
     /**
-     * Icon touch dialog dismiss
-     */
-    public void onIconTouchDialogDismiss() {
-        final int action = FINGERPRINT_ENROLL_ENROLLING_ACTION_DISMISS_ICON_TOUCH_DIALOG;
-        if (DEBUG) {
-            Log.d(TAG, "onIconTouchDialogDismiss, post action " + action);
-        }
-        mActionLiveData.postValue(action);
-    }
-
-    /**
      * get enroll stage threshold
      */
     public float getEnrollStageThreshold(int index) {
diff --git a/src/com/android/settings/development/DevelopmentSettingsDashboardFragment.java b/src/com/android/settings/development/DevelopmentSettingsDashboardFragment.java
index 68fe08e..acc0e7c 100644
--- a/src/com/android/settings/development/DevelopmentSettingsDashboardFragment.java
+++ b/src/com/android/settings/development/DevelopmentSettingsDashboardFragment.java
@@ -16,6 +16,7 @@
 
 package com.android.settings.development;
 
+import static android.provider.Settings.Global.DEVELOPMENT_SETTINGS_ENABLED;
 import static android.service.quicksettings.TileService.ACTION_QS_TILE_PREFERENCES;
 
 import android.app.Activity;
@@ -27,12 +28,18 @@
 import android.bluetooth.BluetoothProfile;
 import android.content.BroadcastReceiver;
 import android.content.ComponentName;
+import android.content.ContentResolver;
 import android.content.Context;
 import android.content.Intent;
 import android.content.IntentFilter;
+import android.database.ContentObserver;
+import android.net.Uri;
 import android.os.Bundle;
+import android.os.Handler;
+import android.os.Looper;
 import android.os.SystemProperties;
 import android.os.UserManager;
+import android.provider.Settings;
 import android.text.TextUtils;
 import android.util.Log;
 import android.view.LayoutInflater;
@@ -173,11 +180,48 @@
         }
     };
 
+    private final Uri mDevelopEnabled = Settings.Global.getUriFor(DEVELOPMENT_SETTINGS_ENABLED);
+    private final ContentObserver mDeveloperSettingsObserver = new ContentObserver(new Handler(
+            Looper.getMainLooper())) {
+
+        @Override
+        public void onChange(boolean selfChange, Uri uri) {
+            super.onChange(selfChange, uri);
+            final boolean developmentEnabledState =
+                    DevelopmentSettingsEnabler.isDevelopmentSettingsEnabled(getContext());
+            final boolean switchState = mSwitchBar.isChecked();
+
+            // when developer options is enabled, but it is disabled by other privilege apps like:
+            // adb command, we should disable all items and finish the activity.
+            if (developmentEnabledState != switchState) {
+                if (developmentEnabledState) {
+                    return;
+                }
+                disableDeveloperOptions();
+                getActivity().runOnUiThread(() -> finishFragment());
+            }
+        }
+    };
+
     public DevelopmentSettingsDashboardFragment() {
         super(UserManager.DISALLOW_DEBUGGING_FEATURES);
     }
 
     @Override
+    public void onStart() {
+        super.onStart();
+        final ContentResolver cr = getContext().getContentResolver();
+        cr.registerContentObserver(mDevelopEnabled, false, mDeveloperSettingsObserver);
+    }
+
+    @Override
+    public void onStop() {
+        super.onStop();
+        final ContentResolver cr = getContext().getContentResolver();
+        cr.unregisterContentObserver(mDeveloperSettingsObserver);
+    }
+
+    @Override
     public void onCreate(Bundle icicle) {
         super.onCreate(icicle);
         SearchMenuController.init(this);
diff --git a/src/com/android/settings/fuelgauge/BatterySaverModeVoiceActivity.java b/src/com/android/settings/fuelgauge/BatterySaverModeVoiceActivity.java
index 04624bb..c4e5ce6 100644
--- a/src/com/android/settings/fuelgauge/BatterySaverModeVoiceActivity.java
+++ b/src/com/android/settings/fuelgauge/BatterySaverModeVoiceActivity.java
@@ -18,6 +18,8 @@
 
 import static android.provider.Settings.EXTRA_BATTERY_SAVER_MODE_ENABLED;
 
+import static com.android.settingslib.fuelgauge.BatterySaverLogging.SAVER_ENABLED_VOICE;
+
 import android.content.Intent;
 import android.util.Log;
 
@@ -36,7 +38,7 @@
         if (intent.hasExtra(EXTRA_BATTERY_SAVER_MODE_ENABLED)) {
             if (BatterySaverUtils.setPowerSaveMode(this,
                     intent.getBooleanExtra(EXTRA_BATTERY_SAVER_MODE_ENABLED, false),
-                    /*needFirstTimeWarning=*/ true)) {
+                    /*needFirstTimeWarning=*/ true, SAVER_ENABLED_VOICE)) {
                 notifySuccess(null);
             } else {
                 Log.v(TAG, "Unable to set power mode");
diff --git a/src/com/android/settings/fuelgauge/batterysaver/BatterySaverButtonPreferenceController.java b/src/com/android/settings/fuelgauge/batterysaver/BatterySaverButtonPreferenceController.java
index 73ec42b..be364ee 100644
--- a/src/com/android/settings/fuelgauge/batterysaver/BatterySaverButtonPreferenceController.java
+++ b/src/com/android/settings/fuelgauge/batterysaver/BatterySaverButtonPreferenceController.java
@@ -16,6 +16,8 @@
 
 package com.android.settings.fuelgauge.batterysaver;
 
+import static com.android.settingslib.fuelgauge.BatterySaverLogging.SAVER_ENABLED_SETTINGS;
+
 import android.content.ContentResolver;
 import android.content.Context;
 import android.net.Uri;
@@ -103,7 +105,7 @@
     @Override
     public boolean setChecked(boolean stateOn) {
         return BatterySaverUtils.setPowerSaveMode(mContext, stateOn,
-                false /* needFirstTimeWarning */);
+                false /* needFirstTimeWarning */, SAVER_ENABLED_SETTINGS);
     }
 
     @Override
diff --git a/src/com/android/settings/fuelgauge/batterytip/actions/BatterySaverAction.java b/src/com/android/settings/fuelgauge/batterytip/actions/BatterySaverAction.java
index 0a92215..6f823e9 100644
--- a/src/com/android/settings/fuelgauge/batterytip/actions/BatterySaverAction.java
+++ b/src/com/android/settings/fuelgauge/batterytip/actions/BatterySaverAction.java
@@ -16,6 +16,8 @@
 
 package com.android.settings.fuelgauge.batterytip.actions;
 
+import static com.android.settingslib.fuelgauge.BatterySaverLogging.SAVER_ENABLED_UNKNOWN;
+
 import android.app.settings.SettingsEnums;
 import android.content.Context;
 
@@ -31,7 +33,8 @@
      */
     @Override
     public void handlePositiveAction(int metricsKey) {
-        BatterySaverUtils.setPowerSaveMode(mContext, true, /*needFirstTimeWarning*/ true);
+        BatterySaverUtils.setPowerSaveMode(mContext, true, /*needFirstTimeWarning*/ true,
+                SAVER_ENABLED_UNKNOWN);
         mMetricsFeatureProvider.action(mContext,
                 SettingsEnums.ACTION_TIP_TURN_ON_BATTERY_SAVER, metricsKey);
     }
diff --git a/src/com/android/settings/fuelgauge/batteryusage/BatteryChartView.java b/src/com/android/settings/fuelgauge/batteryusage/BatteryChartView.java
index b17ccaa..445a5d1 100644
--- a/src/com/android/settings/fuelgauge/batteryusage/BatteryChartView.java
+++ b/src/com/android/settings/fuelgauge/batteryusage/BatteryChartView.java
@@ -16,6 +16,7 @@
 package com.android.settings.fuelgauge.batteryusage;
 
 import static com.android.settings.Utils.formatPercentage;
+import static com.android.settings.fuelgauge.batteryusage.BatteryChartViewModel.AxisLabelPosition.BETWEEN_TRAPEZOIDS;
 
 import static java.lang.Math.round;
 import static java.util.Objects.requireNonNull;
@@ -29,6 +30,7 @@
 import android.graphics.Path;
 import android.graphics.Rect;
 import android.os.Bundle;
+import android.util.ArraySet;
 import android.util.AttributeSet;
 import android.util.Log;
 import android.view.HapticFeedbackConstants;
@@ -52,13 +54,13 @@
 import java.util.ArrayList;
 import java.util.List;
 import java.util.Locale;
+import java.util.Set;
 
 /** A widget component to draw chart graph. */
 public class BatteryChartView extends AppCompatImageView implements View.OnClickListener {
     private static final String TAG = "BatteryChartView";
 
     private static final int DIVIDER_COLOR = Color.parseColor("#CDCCC5");
-    private static final long UPDATE_STATE_DELAYED_TIME = 500L;
 
     /** A callback listener for selected group index is updated. */
     public interface OnSelectListener {
@@ -70,6 +72,7 @@
     private final Rect mIndent = new Rect();
     private final Rect[] mPercentageBounds = new Rect[]{new Rect(), new Rect(), new Rect()};
     private final List<Rect> mAxisLabelsBounds = new ArrayList<>();
+    private final Set<Integer> mLabelDrawnIndexes = new ArraySet<>();
 
     private BatteryChartViewModel mViewModel;
     private int mHoveredIndex = BatteryChartViewModel.SELECTED_INDEX_INVALID;
@@ -80,6 +83,7 @@
     private int mTrapezoidColor;
     private int mTrapezoidSolidColor;
     private int mTrapezoidHoverColor;
+    private int mDefaultTextColor;
     private int mTextPadding;
     private Paint mDividerPaint;
     private Paint mTrapezoidPaint;
@@ -134,6 +138,7 @@
             // Pre-draws the view first to load style atttributions into paint.
             textView.draw(new Canvas());
             mTextPaint = textView.getPaint();
+            mDefaultTextColor = mTextPaint.getColor();
         } else {
             mTextPaint = null;
         }
@@ -332,6 +337,7 @@
         final int height = getHeight() - mIndent.top - mIndent.bottom;
         // Draws the top divider line for 100% curve.
         float offsetY = mIndent.top + mDividerWidth * .5f;
+        mDividerPaint.setColor(DIVIDER_COLOR);
         canvas.drawLine(0, offsetY, width, offsetY, mDividerPaint);
         drawPercentage(canvas, /*index=*/ 0, offsetY);
 
@@ -351,6 +357,7 @@
     private void drawPercentage(Canvas canvas, int index, float offsetY) {
         if (mTextPaint != null) {
             mTextPaint.setTextAlign(Paint.Align.RIGHT);
+            mTextPaint.setColor(mDefaultTextColor);
             canvas.drawText(
                     mPercentages[index],
                     getWidth(),
@@ -367,18 +374,6 @@
         final float bottomY = getHeight() - mIndent.bottom;
         final float startY = bottomY - mDividerHeight;
         final float trapezoidSlotOffset = mTrapezoidHOffset + mDividerWidth * .5f;
-        // Draws each vertical dividers.
-        float startX = mDividerWidth * .5f;
-        for (int index = 0; index < dividerCount; index++) {
-            canvas.drawLine(startX, startY, startX, bottomY, mDividerPaint);
-            final float nextX = startX + mDividerWidth + unitWidth;
-            // Updates the trapezoid slots for drawing.
-            if (index < mTrapezoidSlots.length) {
-                mTrapezoidSlots[index].mLeft = round(startX + trapezoidSlotOffset);
-                mTrapezoidSlots[index].mRight = round(nextX - trapezoidSlotOffset);
-            }
-            startX = nextX;
-        }
         // Draws the axis label slot information.
         if (mViewModel != null) {
             final float baselineY = getHeight() - mTextPadding;
@@ -404,6 +399,26 @@
             }
             drawAxisLabels(canvas, axisLabelDisplayAreas, baselineY);
         }
+        // Draws each vertical dividers.
+        float startX = mDividerWidth * .5f;
+        for (int index = 0; index < dividerCount; index++) {
+            float dividerY = bottomY;
+            if (mViewModel.axisLabelPosition() == BETWEEN_TRAPEZOIDS
+                    && mLabelDrawnIndexes.contains(index)) {
+                mDividerPaint.setColor(mTrapezoidSolidColor);
+                dividerY += mDividerHeight / 4f;
+            } else {
+                mDividerPaint.setColor(DIVIDER_COLOR);
+            }
+            canvas.drawLine(startX, startY, startX, dividerY, mDividerPaint);
+            final float nextX = startX + mDividerWidth + unitWidth;
+            // Updates the trapezoid slots for drawing.
+            if (index < mTrapezoidSlots.length) {
+                mTrapezoidSlots[index].mLeft = round(startX + trapezoidSlotOffset);
+                mTrapezoidSlots[index].mRight = round(nextX - trapezoidSlotOffset);
+            }
+            startX = nextX;
+        }
     }
 
     /** Gets all the axis label texts displaying area positions if they are shown. */
@@ -432,9 +447,12 @@
 
     private void drawAxisLabels(Canvas canvas, final Rect[] displayAreas, final float baselineY) {
         final int lastIndex = displayAreas.length - 1;
+        mLabelDrawnIndexes.clear();
         // Suppose first and last labels are always able to draw.
         drawAxisLabelText(canvas, 0, displayAreas[0], baselineY);
+        mLabelDrawnIndexes.add(0);
         drawAxisLabelText(canvas, lastIndex, displayAreas[lastIndex], baselineY);
+        mLabelDrawnIndexes.add(lastIndex);
         drawAxisLabelsBetweenStartIndexAndEndIndex(canvas, displayAreas, 0, lastIndex, baselineY);
     }
 
@@ -458,6 +476,7 @@
                 return;
             }
             drawAxisLabelText(canvas, middleIndex, displayAreas[middleIndex], baselineY);
+            mLabelDrawnIndexes.add(middleIndex);
             drawAxisLabelsBetweenStartIndexAndEndIndex(
                     canvas, displayAreas, startIndex, middleIndex, baselineY);
             drawAxisLabelsBetweenStartIndexAndEndIndex(
@@ -471,7 +490,9 @@
                 return;
             }
             drawAxisLabelText(canvas, middleIndex1, displayAreas[middleIndex1], baselineY);
+            mLabelDrawnIndexes.add(middleIndex1);
             drawAxisLabelText(canvas, middleIndex2, displayAreas[middleIndex2], baselineY);
+            mLabelDrawnIndexes.add(middleIndex2);
             drawAxisLabelsBetweenStartIndexAndEndIndex(
                     canvas, displayAreas, startIndex, middleIndex1, baselineY);
             drawAxisLabelsBetweenStartIndexAndEndIndex(
@@ -488,12 +509,14 @@
 
     private void drawAxisLabelText(
             Canvas canvas, final int index, final Rect displayArea, final float baselineY) {
+        mTextPaint.setColor(mTrapezoidSolidColor);
         mTextPaint.setTextAlign(Paint.Align.CENTER);
         canvas.drawText(
                 mViewModel.getText(index),
                 displayArea.centerX(),
                 baselineY,
                 mTextPaint);
+        mLabelDrawnIndexes.add(index);
     }
 
     private void drawTrapezoids(Canvas canvas) {
diff --git a/src/com/android/settings/gestures/SystemNavigationGestureSettings.java b/src/com/android/settings/gestures/SystemNavigationGestureSettings.java
index 4379a42..ced469a 100644
--- a/src/com/android/settings/gestures/SystemNavigationGestureSettings.java
+++ b/src/com/android/settings/gestures/SystemNavigationGestureSettings.java
@@ -75,6 +75,13 @@
 
     private static final String KEY_SHOW_A11Y_TUTORIAL_DIALOG = "show_a11y_tutorial_dialog_bool";
 
+    static final String LAUNCHER_PACKAGE_NAME = "com.google.android.apps.nexuslauncher";
+
+    static final String ACTION_GESTURE_SANDBOX = "com.android.quickstep.action.GESTURE_SANDBOX";
+
+    final Intent mLaunchSandboxIntent = new Intent(ACTION_GESTURE_SANDBOX)
+            .setPackage(LAUNCHER_PACKAGE_NAME);
+
     private static final int MIN_LARGESCREEN_WIDTH_DP = 600;
 
     private boolean mA11yTutorialDialogShown = false;
@@ -121,6 +128,7 @@
             mVideoPreference.applyDynamicColor();
         }
         setIllustrationVideo(mVideoPreference, getDefaultKey());
+        setIllustrationClickListener(mVideoPreference, getDefaultKey());
 
         migrateOverlaySensitivityToSettings(context, mOverlayManager);
     }
@@ -221,9 +229,39 @@
         setCurrentSystemNavigationMode(mOverlayManager, key);
         setIllustrationVideo(mVideoPreference, key);
         setGestureNavigationTutorialDialog(key);
+        setIllustrationClickListener(mVideoPreference, key);
         return true;
     }
 
+    private boolean isGestureTutorialAvailable() {
+        Context context = getContext();
+        return context != null
+                && mLaunchSandboxIntent.resolveActivity(context.getPackageManager()) != null;
+    }
+
+    private void setIllustrationClickListener(IllustrationPreference videoPref,
+            String systemNavKey) {
+
+        switch (systemNavKey) {
+            case KEY_SYSTEM_NAV_GESTURAL:
+                if (isGestureTutorialAvailable()){
+                    videoPref.setOnPreferenceClickListener(preference -> {
+                        startActivity(mLaunchSandboxIntent.putExtra("use_tutorial_menu", true));
+                        return true;
+                    });
+                } else {
+                    videoPref.setOnPreferenceClickListener(null);
+                }
+
+                break;
+            case KEY_SYSTEM_NAV_2BUTTONS:
+            case KEY_SYSTEM_NAV_3BUTTONS:
+            default:
+                videoPref.setOnPreferenceClickListener(null);
+                break;
+        }
+    }
+
     static void migrateOverlaySensitivityToSettings(Context context,
             IOverlayManager overlayManager) {
         if (!SystemNavigationPreferenceController.isGestureNavigationEnabled(context)) {
@@ -278,11 +316,16 @@
         }
     }
 
-    private static void setIllustrationVideo(IllustrationPreference videoPref,
+    private void setIllustrationVideo(IllustrationPreference videoPref,
             String systemNavKey) {
         switch (systemNavKey) {
             case KEY_SYSTEM_NAV_GESTURAL:
-                videoPref.setLottieAnimationResId(R.raw.lottie_system_nav_fully_gestural);
+                if (isGestureTutorialAvailable()) {
+                    videoPref.setLottieAnimationResId(
+                            R.raw.lottie_system_nav_fully_gestural_with_nav);
+                } else {
+                    videoPref.setLottieAnimationResId(R.raw.lottie_system_nav_fully_gestural);
+                }
                 break;
             case KEY_SYSTEM_NAV_2BUTTONS:
                 videoPref.setLottieAnimationResId(R.raw.lottie_system_nav_2_button);
diff --git a/src/com/android/settings/homepage/contextualcards/conditional/BatterySaverConditionController.java b/src/com/android/settings/homepage/contextualcards/conditional/BatterySaverConditionController.java
index b90c1b5..416b690 100644
--- a/src/com/android/settings/homepage/contextualcards/conditional/BatterySaverConditionController.java
+++ b/src/com/android/settings/homepage/contextualcards/conditional/BatterySaverConditionController.java
@@ -16,6 +16,8 @@
 
 package com.android.settings.homepage.contextualcards.conditional;
 
+import static com.android.settingslib.fuelgauge.BatterySaverLogging.SAVER_ENABLED_UNKNOWN;
+
 import android.app.settings.SettingsEnums;
 import android.content.Context;
 import android.os.PowerManager;
@@ -68,7 +70,7 @@
     @Override
     public void onActionClick() {
         BatterySaverUtils.setPowerSaveMode(mAppContext, false,
-                /*needFirstTimeWarning*/ false);
+                /*needFirstTimeWarning*/ false, SAVER_ENABLED_UNKNOWN);
     }
 
     @Override
diff --git a/src/com/android/settings/inputmethod/ModifierKeysPickerDialogFragment.java b/src/com/android/settings/inputmethod/ModifierKeysPickerDialogFragment.java
index f1d7e7f..14578af 100644
--- a/src/com/android/settings/inputmethod/ModifierKeysPickerDialogFragment.java
+++ b/src/com/android/settings/inputmethod/ModifierKeysPickerDialogFragment.java
@@ -18,6 +18,7 @@
 
 import static android.view.WindowManager.LayoutParams.TYPE_SYSTEM_DIALOG;
 
+import android.app.Activity;
 import android.app.AlertDialog;
 import android.app.Dialog;
 import android.content.Context;
@@ -52,11 +53,13 @@
 
 public class ModifierKeysPickerDialogFragment extends DialogFragment {
 
+    static final String DEFAULT_KEY = "default_key";
+    static final String SELECTION_KEY = "delection_key";
+
     private Preference mPreference;
     private String mKeyDefaultName;
     private String mKeyFocus;
-    private Context mContext;
-    private InputManager mIm;
+    private Activity mActivity;
 
     private List<int[]> mRemappableKeyList =
             new ArrayList<>(Arrays.asList(
@@ -67,36 +70,41 @@
 
     private Map<String, int[]> mRemappableKeyMap = new HashMap<>();
 
-    public ModifierKeysPickerDialogFragment() {
-    }
+    public ModifierKeysPickerDialogFragment() {}
 
-    public ModifierKeysPickerDialogFragment(Preference preference, InputManager inputManager) {
-        mPreference = preference;
-        mKeyDefaultName = preference.getTitle().toString();
-        mKeyFocus = preference.getSummary().toString();
-        mIm = inputManager;
+    @Override
+    public void onSaveInstanceState(Bundle savedInstanceState) {
+        savedInstanceState.putString(SELECTION_KEY, mKeyFocus);
+        super.onSaveInstanceState(savedInstanceState);
     }
 
     @Override
     public Dialog onCreateDialog(Bundle savedInstanceState) {
         super.onCreateDialog(savedInstanceState);
-        mContext = getActivity();
+
+        mActivity = getActivity();
+        InputManager inputManager = mActivity.getSystemService(InputManager.class);
+        mKeyDefaultName = getArguments().getString(DEFAULT_KEY);
+        mKeyFocus = getArguments().getString(SELECTION_KEY);
+        if (savedInstanceState != null) {
+            mKeyFocus = savedInstanceState.getString(SELECTION_KEY);
+        }
         List<String> modifierKeys = new ArrayList<String>(Arrays.asList(
-                mContext.getString(R.string.modifier_keys_caps_lock),
-                mContext.getString(R.string.modifier_keys_ctrl),
-                mContext.getString(R.string.modifier_keys_meta),
-                mContext.getString(R.string.modifier_keys_alt)));
+                mActivity.getString(R.string.modifier_keys_caps_lock),
+                mActivity.getString(R.string.modifier_keys_ctrl),
+                mActivity.getString(R.string.modifier_keys_meta),
+                mActivity.getString(R.string.modifier_keys_alt)));
         for (int i = 0; i < modifierKeys.size(); i++) {
             mRemappableKeyMap.put(modifierKeys.get(i), mRemappableKeyList.get(i));
         }
 
         View dialoglayout  =
-                LayoutInflater.from(mContext).inflate(R.layout.modifier_key_picker_dialog, null);
-        AlertDialog.Builder dialogBuilder = new AlertDialog.Builder(mContext);
+                LayoutInflater.from(mActivity).inflate(R.layout.modifier_key_picker_dialog, null);
+        AlertDialog.Builder dialogBuilder = new AlertDialog.Builder(mActivity);
         dialogBuilder.setView(dialoglayout);
 
         TextView summary = dialoglayout.findViewById(R.id.modifier_key_picker_summary);
-        CharSequence summaryText = mContext.getString(
+        CharSequence summaryText = mActivity.getString(
                 R.string.modifier_keys_picker_summary, mKeyDefaultName);
         summary.setText(summaryText);
 
@@ -119,14 +127,14 @@
             Spannable itemSummary;
             if (selectedItem.equals(mKeyDefaultName)) {
                 itemSummary = new SpannableString(
-                        mContext.getString(R.string.modifier_keys_default_summary));
+                        mActivity.getString(R.string.modifier_keys_default_summary));
                 itemSummary.setSpan(
                         new ForegroundColorSpan(getColorOfTextColorSecondary()),
                         0, itemSummary.length(), 0);
                 // Set keys to default.
                 int[] keys = mRemappableKeyMap.get(mKeyDefaultName);
                 for (int i = 0; i < keys.length; i++) {
-                    mIm.remapModifierKey(keys[i], keys[i]);
+                    inputManager.remapModifierKey(keys[i], keys[i]);
                 }
             } else {
                 itemSummary = new SpannableString(selectedItem);
@@ -136,29 +144,29 @@
                 int[] fromKeys = mRemappableKeyMap.get(mKeyDefaultName);
                 int[] toKeys = mRemappableKeyMap.get(selectedItem);
                 // CAPS_LOCK only one key, so always choose the left key for remapping.
-                if (isKeyCapsLock(mContext, mKeyDefaultName)) {
-                    mIm.remapModifierKey(fromKeys[0], toKeys[0]);
+                if (isKeyCapsLock(mActivity, mKeyDefaultName)) {
+                    inputManager.remapModifierKey(fromKeys[0], toKeys[0]);
                 }
                 // Remap KEY_LEFT and KEY_RIGHT to CAPS_LOCK.
-                if (!isKeyCapsLock(mContext, mKeyDefaultName)
-                        && isKeyCapsLock(mContext, selectedItem)) {
-                    mIm.remapModifierKey(fromKeys[0], toKeys[0]);
-                    mIm.remapModifierKey(fromKeys[1], toKeys[0]);
+                if (!isKeyCapsLock(mActivity, mKeyDefaultName)
+                        && isKeyCapsLock(mActivity, selectedItem)) {
+                    inputManager.remapModifierKey(fromKeys[0], toKeys[0]);
+                    inputManager.remapModifierKey(fromKeys[1], toKeys[0]);
                 }
                 // Auto handle left and right keys remapping.
-                if (!isKeyCapsLock(mContext, mKeyDefaultName)
-                        && !isKeyCapsLock(mContext, selectedItem)) {
-                    mIm.remapModifierKey(fromKeys[0], toKeys[0]);
-                    mIm.remapModifierKey(fromKeys[1], toKeys[1]);
+                if (!isKeyCapsLock(mActivity, mKeyDefaultName)
+                        && !isKeyCapsLock(mActivity, selectedItem)) {
+                    inputManager.remapModifierKey(fromKeys[0], toKeys[0]);
+                    inputManager.remapModifierKey(fromKeys[1], toKeys[1]);
                 }
             }
-            mPreference.setSummary(itemSummary);
-            modifierKeyDialog.dismiss();
+            dismiss();
+            mActivity.recreate();
         });
 
         Button cancelButton = dialoglayout.findViewById(R.id.modifier_key_cancel_button);
         cancelButton.setOnClickListener(v -> {
-            modifierKeyDialog.dismiss();
+            dismiss();
         });
 
         final Window window = modifierKeyDialog.getWindow();
@@ -207,16 +215,17 @@
         @Override
         public View getView(int i, View view, ViewGroup viewGroup) {
             if (view == null) {
-                view = LayoutInflater.from(mContext).inflate(R.layout.modifier_key_item, null);
+                view = LayoutInflater.from(mActivity).inflate(R.layout.modifier_key_item, null);
             }
             TextView textView = view.findViewById(R.id.modifier_key_text);
             ImageView checkIcon = view.findViewById(R.id.modifier_key_check_icon);
             textView.setText(mList.get(i));
             if (mCurrentItem == i) {
+                mKeyFocus = mList.get(i);
                 textView.setTextColor(getColorOfColorAccentPrimaryVariant());
                 checkIcon.setImageAlpha(255);
                 view.setBackground(
-                        mContext.getDrawable(R.drawable.modifier_key_lisetview_background));
+                        mActivity.getDrawable(R.drawable.modifier_key_lisetview_background));
             } else {
                 textView.setTextColor(getColorOfTextColorPrimary());
                 checkIcon.setImageAlpha(0);
@@ -235,15 +244,15 @@
     }
 
     private int getColorOfTextColorPrimary() {
-        return Utils.getColorAttrDefaultColor(mContext, android.R.attr.textColorPrimary);
+        return Utils.getColorAttrDefaultColor(mActivity, android.R.attr.textColorPrimary);
     }
 
     private int getColorOfTextColorSecondary() {
-        return Utils.getColorAttrDefaultColor(mContext, android.R.attr.textColorSecondary);
+        return Utils.getColorAttrDefaultColor(mActivity, android.R.attr.textColorSecondary);
     }
 
     private int getColorOfColorAccentPrimaryVariant() {
         return Utils.getColorAttrDefaultColor(
-                mContext, com.android.internal.R.attr.materialColorPrimaryContainer);
+                mActivity, com.android.internal.R.attr.materialColorPrimaryContainer);
     }
 }
diff --git a/src/com/android/settings/inputmethod/ModifierKeysPreferenceController.java b/src/com/android/settings/inputmethod/ModifierKeysPreferenceController.java
index 780a980..91caf29 100644
--- a/src/com/android/settings/inputmethod/ModifierKeysPreferenceController.java
+++ b/src/com/android/settings/inputmethod/ModifierKeysPreferenceController.java
@@ -18,12 +18,12 @@
 
 import android.content.Context;
 import android.hardware.input.InputManager;
+import android.os.Bundle;
 import android.text.Spannable;
 import android.text.SpannableString;
 import android.text.style.ForegroundColorSpan;
 import android.view.KeyEvent;
 
-import androidx.fragment.app.DialogFragment;
 import androidx.fragment.app.Fragment;
 import androidx.fragment.app.FragmentManager;
 import androidx.preference.Preference;
@@ -41,8 +41,8 @@
 
 public class ModifierKeysPreferenceController extends BasePreferenceController {
 
-    private static String KEY_TAG = "modifier_keys_dialog_tag";
-    private static String KEY_RESTORE_PREFERENCE = "modifier_keys_restore";
+    private static final String KEY_TAG = "modifier_keys_dialog_tag";
+    private static final String KEY_RESTORE_PREFERENCE = "modifier_keys_restore";
 
     private static final String KEY_PREFERENCE_CAPS_LOCK = "modifier_keys_caps_lock";
     private static final String KEY_PREFERENCE_CTRL = "modifier_keys_ctrl";
@@ -52,6 +52,7 @@
     private Fragment mParent;
     private FragmentManager mFragmentManager;
     private final InputManager mIm;
+    private PreferenceScreen mScreen;
 
     private final List<Integer> mRemappableKeys = new ArrayList<>(
             Arrays.asList(
@@ -82,40 +83,39 @@
     @Override
     public void displayPreference(PreferenceScreen screen) {
         super.displayPreference(screen);
-
         if (mParent == null) {
             return;
         }
+        mScreen = screen;
+        refreshUi();
+    }
 
+    private void refreshUi() {
         for (Map.Entry<Integer, Integer> entry : mIm.getModifierKeyRemapping().entrySet()) {
             int fromKey = entry.getKey();
             int toKey = entry.getValue();
             int index = mRemappableKeys.indexOf(toKey);
 
             if (isCtrl(fromKey) && mRemappableKeys.contains(toKey)) {
-                Preference preference = screen.findPreference(KEY_PREFERENCE_CTRL);
+                Preference preference = mScreen.findPreference(KEY_PREFERENCE_CTRL);
                 preference.setSummary(changeSummaryColor(mKeyNames[index]));
             }
 
             if (isMeta(fromKey) && mRemappableKeys.contains(toKey)) {
-                Preference preference = screen.findPreference(KEY_PREFERENCE_META);
+                Preference preference = mScreen.findPreference(KEY_PREFERENCE_META);
                 preference.setSummary(changeSummaryColor(mKeyNames[index]));
             }
 
             if (isAlt(fromKey) && mRemappableKeys.contains(toKey)) {
-                Preference preference = screen.findPreference(KEY_PREFERENCE_ALT);
+                Preference preference = mScreen.findPreference(KEY_PREFERENCE_ALT);
                 preference.setSummary(changeSummaryColor(mKeyNames[index]));
             }
 
             if (isCapLock(fromKey) && mRemappableKeys.contains(toKey)) {
-                Preference preference = screen.findPreference(KEY_PREFERENCE_CAPS_LOCK);
+                Preference preference = mScreen.findPreference(KEY_PREFERENCE_CAPS_LOCK);
                 preference.setSummary(changeSummaryColor(mKeyNames[index]));
             }
         }
-
-        // The dialog screen depends on the previous selected key's fragment.
-        // In the rotation scenario, we should remove the previous dialog screen first.
-        clearPreviousDialog();
     }
 
     @Override
@@ -133,19 +133,18 @@
     }
 
     private void showModifierKeysDialog(Preference preference) {
-        ModifierKeysPickerDialogFragment fragment =
-                new ModifierKeysPickerDialogFragment(preference, mIm);
-        fragment.setTargetFragment(mParent, 0);
-        fragment.show(mFragmentManager, KEY_TAG);
-    }
-
-    private void clearPreviousDialog() {
         mFragmentManager = mParent.getFragmentManager();
-        DialogFragment preKeysDialogFragment =
-                (DialogFragment) mFragmentManager.findFragmentByTag(KEY_TAG);
-        if (preKeysDialogFragment != null) {
-            preKeysDialogFragment.dismiss();
-        }
+        ModifierKeysPickerDialogFragment fragment = new ModifierKeysPickerDialogFragment();
+        fragment.setTargetFragment(mParent, 0);
+        Bundle bundle = new Bundle();
+        bundle.putString(
+                ModifierKeysPickerDialogFragment.DEFAULT_KEY,
+                preference.getTitle().toString());
+        bundle.putString(
+                ModifierKeysPickerDialogFragment.SELECTION_KEY,
+                preference.getSummary().toString());
+        fragment.setArguments(bundle);
+        fragment.show(mFragmentManager, KEY_TAG);
     }
 
     private Spannable changeSummaryColor(String summary) {
diff --git a/src/com/android/settings/inputmethod/ModifierKeysResetDialogFragment.java b/src/com/android/settings/inputmethod/ModifierKeysResetDialogFragment.java
index 4ca5ddd..755e9dd 100644
--- a/src/com/android/settings/inputmethod/ModifierKeysResetDialogFragment.java
+++ b/src/com/android/settings/inputmethod/ModifierKeysResetDialogFragment.java
@@ -18,25 +18,19 @@
 
 import static android.view.WindowManager.LayoutParams.TYPE_SYSTEM_DIALOG;
 
+import android.app.Activity;
 import android.app.AlertDialog;
 import android.app.Dialog;
-import android.content.Context;
 import android.hardware.input.InputManager;
 import android.os.Bundle;
-import android.text.Spannable;
-import android.text.SpannableString;
-import android.text.style.ForegroundColorSpan;
 import android.view.LayoutInflater;
 import android.view.View;
 import android.view.Window;
 import android.widget.Button;
 
 import androidx.fragment.app.DialogFragment;
-import androidx.preference.Preference;
-import androidx.preference.PreferenceScreen;
 
 import com.android.settings.R;
-import com.android.settingslib.Utils;
 
 public class ModifierKeysResetDialogFragment extends DialogFragment {
     private static final String MODIFIER_KEYS_CAPS_LOCK = "modifier_keys_caps_lock";
@@ -44,41 +38,36 @@
     private static final String MODIFIER_KEYS_META = "modifier_keys_meta";
     private static final String MODIFIER_KEYS_ALT = "modifier_keys_alt";
 
-    private PreferenceScreen mScreen;
-    private InputManager mIm;
     private String[] mKeys = {
             MODIFIER_KEYS_CAPS_LOCK,
             MODIFIER_KEYS_CTRL,
             MODIFIER_KEYS_META,
             MODIFIER_KEYS_ALT};
 
-    public ModifierKeysResetDialogFragment() {
-    }
-
-    public ModifierKeysResetDialogFragment(PreferenceScreen screen, InputManager inputManager) {
-        mScreen = screen;
-        mIm = inputManager;
-    }
+    public ModifierKeysResetDialogFragment() {}
 
     @Override
     public Dialog onCreateDialog(Bundle savedInstanceState) {
         super.onCreateDialog(savedInstanceState);
-        Context mContext = getActivity();
+
+        Activity activity = getActivity();
+        InputManager inputManager = activity.getSystemService(InputManager.class);
         View dialoglayout =
-                LayoutInflater.from(mContext).inflate(R.layout.modifier_key_reset_dialog, null);
-        AlertDialog.Builder dialogBuilder = new AlertDialog.Builder(mContext);
+                LayoutInflater.from(activity).inflate(R.layout.modifier_key_reset_dialog, null);
+        AlertDialog.Builder dialogBuilder = new AlertDialog.Builder(activity);
         dialogBuilder.setView(dialoglayout);
         AlertDialog modifierKeyResetDialog = dialogBuilder.create();
 
         Button restoreButton = dialoglayout.findViewById(R.id.modifier_key_reset_restore_button);
         restoreButton.setOnClickListener(v -> {
-            resetToDefault();
-            modifierKeyResetDialog.dismiss();
+            inputManager.clearAllModifierKeyRemappings();
+            dismiss();
+            activity.recreate();
         });
 
         Button cancelButton = dialoglayout.findViewById(R.id.modifier_key_reset_cancel_button);
         cancelButton.setOnClickListener(v -> {
-            modifierKeyResetDialog.dismiss();
+            dismiss();
         });
 
         final Window window = modifierKeyResetDialog.getWindow();
@@ -86,25 +75,4 @@
 
         return modifierKeyResetDialog;
     }
-
-    private void resetToDefault() {
-        Context mContext = getActivity();
-        for (int i = 0; i < mKeys.length; i++) {
-            Preference preference = mScreen.findPreference(mKeys[i]);
-            Spannable title = new SpannableString(
-                    mContext.getString(R.string.modifier_keys_default_summary));
-            title.setSpan(
-                    new ForegroundColorSpan(getColorOfTextColorSecondary()),
-                    0, title.length(), 0);
-            preference.setSummary(title);
-        }
-
-        if (mIm != null) {
-            mIm.clearAllModifierKeyRemappings();
-        }
-    }
-
-    private int getColorOfTextColorSecondary() {
-        return Utils.getColorAttrDefaultColor(getActivity(), android.R.attr.textColorSecondary);
-    }
 }
diff --git a/src/com/android/settings/inputmethod/ModifierKeysRestorePreferenceController.java b/src/com/android/settings/inputmethod/ModifierKeysRestorePreferenceController.java
index 4e72fbd..3171487 100644
--- a/src/com/android/settings/inputmethod/ModifierKeysRestorePreferenceController.java
+++ b/src/com/android/settings/inputmethod/ModifierKeysRestorePreferenceController.java
@@ -17,12 +17,10 @@
 package com.android.settings.inputmethod;
 
 import android.content.Context;
-import android.hardware.input.InputManager;
 import android.text.Spannable;
 import android.text.SpannableString;
 import android.text.style.ForegroundColorSpan;
 
-import androidx.fragment.app.DialogFragment;
 import androidx.fragment.app.Fragment;
 import androidx.fragment.app.FragmentManager;
 import androidx.preference.Preference;
@@ -34,16 +32,14 @@
 
 public class ModifierKeysRestorePreferenceController extends BasePreferenceController {
 
-    private static String KEY_TAG = "modifier_keys_dialog_tag";
+    private static final String KEY_TAG = "modifier_keys_restore_dialog_tag";
 
     private Fragment mParent;
     private FragmentManager mFragmentManager;
     private PreferenceScreen mScreen;
-    private final InputManager mIm;
 
     public ModifierKeysRestorePreferenceController(Context context, String key) {
         super(context, key);
-        mIm = context.getSystemService(InputManager.class);
     }
 
     public void setFragment(Fragment parent) {
@@ -57,9 +53,6 @@
             return;
         }
         mScreen = screen;
-        // The dialog screen depends on the previous selected key's fragment.
-        // In the rotation scenario, we should remove the previous dialog first.
-        clearPreviousDialog();
         setResetKeyColor();
     }
 
@@ -78,8 +71,8 @@
     }
 
     private void showResetDialog() {
-        ModifierKeysResetDialogFragment fragment =
-                new ModifierKeysResetDialogFragment(mScreen, mIm);
+        mFragmentManager = mParent.getFragmentManager();
+        ModifierKeysResetDialogFragment fragment = new ModifierKeysResetDialogFragment();
         fragment.setTargetFragment(mParent, 0);
         fragment.show(mFragmentManager, KEY_TAG);
     }
@@ -98,13 +91,4 @@
         return Utils.getColorAttrDefaultColor(
                 mParent.getActivity(), com.android.internal.R.attr.materialColorPrimaryContainer);
     }
-
-    private void clearPreviousDialog() {
-        mFragmentManager = mParent.getFragmentManager();
-        DialogFragment preResetDialogFragment =
-                (DialogFragment) mFragmentManager.findFragmentByTag(KEY_TAG);
-        if (preResetDialogFragment != null) {
-            preResetDialogFragment.dismiss();
-        }
-    }
 }
diff --git a/src/com/android/settings/localepicker/LocaleHelperPreferenceController.java b/src/com/android/settings/localepicker/LocaleHelperPreferenceController.java
index 05c7401..a639c9d 100644
--- a/src/com/android/settings/localepicker/LocaleHelperPreferenceController.java
+++ b/src/com/android/settings/localepicker/LocaleHelperPreferenceController.java
@@ -17,6 +17,8 @@
 package com.android.settings.localepicker;
 
 import android.content.Context;
+import android.content.Intent;
+import android.util.Log;
 
 import androidx.annotation.VisibleForTesting;
 import androidx.preference.PreferenceScreen;
@@ -65,10 +67,14 @@
     }
 
     private void openLocaleLearnMoreLink() {
-        mContext.startActivity(
-                HelpUtils.getHelpIntent(
-                        mContext,
-                        mContext.getString(R.string.link_locale_picker_footer_learn_more),
-                        /*backupContext=*/""));
+        Intent intent = HelpUtils.getHelpIntent(
+                mContext,
+                mContext.getString(R.string.link_locale_picker_footer_learn_more),
+                mContext.getClass().getName());
+        if (intent != null) {
+            mContext.startActivity(intent);
+        } else {
+            Log.w(TAG, "HelpIntent is null");
+        }
     }
 }
diff --git a/src/com/android/settings/localepicker/LocaleListEditor.java b/src/com/android/settings/localepicker/LocaleListEditor.java
index bdb9295..6317f24 100644
--- a/src/com/android/settings/localepicker/LocaleListEditor.java
+++ b/src/com/android/settings/localepicker/LocaleListEditor.java
@@ -329,6 +329,7 @@
         list.setLayoutManager(llm);
 
         list.setHasFixedSize(true);
+        list.setNestedScrollingEnabled(false);
         mAdapter.setRecyclerView(list);
         list.setAdapter(mAdapter);
 
diff --git a/src/com/android/settings/network/MobileNetworkRepository.java b/src/com/android/settings/network/MobileNetworkRepository.java
index 170d921..e55ba26 100644
--- a/src/com/android/settings/network/MobileNetworkRepository.java
+++ b/src/com/android/settings/network/MobileNetworkRepository.java
@@ -37,6 +37,9 @@
 import android.util.IndentingPrintWriter;
 import android.util.Log;
 
+import androidx.annotation.GuardedBy;
+import androidx.lifecycle.LifecycleOwner;
+
 import com.android.settings.network.telephony.MobileNetworkUtils;
 import com.android.settings.overlay.FeatureFactory;
 import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
@@ -58,13 +61,6 @@
 import java.util.concurrent.Executors;
 import java.util.stream.Collectors;
 
-import androidx.annotation.GuardedBy;
-import androidx.lifecycle.Lifecycle;
-import androidx.lifecycle.LifecycleObserver;
-import androidx.lifecycle.LifecycleOwner;
-import androidx.lifecycle.LiveData;
-import androidx.lifecycle.Observer;
-
 public class MobileNetworkRepository extends SubscriptionManager.OnSubscriptionsChangedListener {
 
     private static final String TAG = "MobileNetworkRepository";
@@ -392,6 +388,7 @@
         mActiveSubInfoEntityList = availableSubInfoEntityList.stream()
                 .filter(SubscriptionInfoEntity::isActiveSubscription)
                 .filter(SubscriptionInfoEntity::isSubscriptionVisible)
+                .sorted((e1, e2) -> Integer.compare(e1.simSlotIndex, e2.simSlotIndex))
                 .collect(Collectors.toList());
         if (DEBUG) {
             Log.d(TAG, "onActiveSubInfoChanged, activeSubInfoEntityList = "
diff --git a/src/com/android/settings/notetask/shortcut/CreateNoteTaskShortcutActivity.kt b/src/com/android/settings/notetask/shortcut/CreateNoteTaskShortcutActivity.kt
new file mode 100644
index 0000000..b984622
--- /dev/null
+++ b/src/com/android/settings/notetask/shortcut/CreateNoteTaskShortcutActivity.kt
@@ -0,0 +1,113 @@
+/*
+ * Copyright (C) 2023 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.settings.notetask.shortcut
+
+import android.app.Activity
+import android.app.role.RoleManager
+import android.app.role.RoleManager.ROLE_NOTES
+import android.content.ComponentName
+import android.content.Context
+import android.content.Intent
+import android.content.pm.ShortcutInfo
+import android.content.pm.ShortcutManager
+import android.graphics.drawable.Icon
+import android.os.Bundle
+import android.os.PersistableBundle
+import android.os.UserHandle
+import androidx.activity.ComponentActivity
+import androidx.core.content.getSystemService
+import com.android.settings.R
+
+/**
+ * Activity responsible for create a shortcut for notes action. If the shortcut is enabled, a new
+ * shortcut will appear in the widget picker. If the shortcut is selected, the Activity here will be
+ * launched, creating a new shortcut for [CreateNoteTaskShortcutActivity], and will finish.
+ *
+ * @see <a
+ *   href="https://developer.android.com/develop/ui/views/launch/shortcuts/creating-shortcuts#custom-pinned">Creating
+ *   a custom shortcut activity</a>
+ */
+internal class CreateNoteTaskShortcutActivity : ComponentActivity() {
+
+    override fun onCreate(savedInstanceState: Bundle?) {
+        val roleManager = requireNotNull(getSystemService<RoleManager>())
+        val shortcutManager = requireNotNull(getSystemService<ShortcutManager>())
+
+        super.onCreate(savedInstanceState)
+
+        val shortcutInfo = roleManager.createNoteShortcutInfoAsUser(context = this, user)
+        val shortcutIntent = shortcutManager.createShortcutResultIntent(shortcutInfo)
+        setResult(Activity.RESULT_OK, shortcutIntent)
+
+        finish()
+    }
+
+    private companion object {
+
+        private const val SHORTCUT_ID = "note_task_shortcut_id"
+        private const val EXTRA_SHORTCUT_BADGE_OVERRIDE_PACKAGE =
+                "extra_shortcut_badge_override_package"
+        private const val ACTION_LAUNCH_NOTE_TASK = "com.android.systemui.action.LAUNCH_NOTE_TASK"
+
+        private fun RoleManager.createNoteShortcutInfoAsUser(
+                context: Context,
+                user: UserHandle,
+        ): ShortcutInfo? {
+            val systemUiComponent = context.getSystemUiComponent() ?: return null
+
+            val extras = PersistableBundle()
+            getDefaultRoleHolderAsUser(ROLE_NOTES, user)?.let { packageName ->
+                // Set custom app badge using the icon from ROLES_NOTES default app.
+                extras.putString(EXTRA_SHORTCUT_BADGE_OVERRIDE_PACKAGE, packageName)
+            }
+
+            val icon = Icon.createWithResource(context, R.drawable.ic_note_task_shortcut_widget)
+
+            val intent = Intent(ACTION_LAUNCH_NOTE_TASK).apply {
+                setPackage(systemUiComponent.packageName)
+            }
+
+            return ShortcutInfo.Builder(context, SHORTCUT_ID)
+                    .setIntent(intent)
+                    .setShortLabel(context.getString(R.string.note_task_button_label))
+                    .setLongLived(true)
+                    .setIcon(icon)
+                    .setExtras(extras)
+                    .build()
+        }
+
+        private fun RoleManager.getDefaultRoleHolderAsUser(
+                role: String,
+                user: UserHandle,
+        ): String? = getRoleHoldersAsUser(role, user).firstOrNull()
+
+        private fun Context.getSystemUiComponent(): ComponentName? {
+            val flattenName = getString(
+                    com.android.internal.R.string.config_systemUIServiceComponent)
+            check(flattenName.isNotEmpty()) {
+                "No 'com.android.internal.R.string.config_systemUIServiceComponent' resource"
+            }
+            return try {
+                ComponentName.unflattenFromString(flattenName)
+            } catch (e: RuntimeException) {
+                val message = "Invalid component name defined by 'com.android.internal.R.string." +
+                        "config_systemUIServiceComponent' resource: $flattenName"
+                throw IllegalStateException(message, e)
+            }
+        }
+    }
+}
diff --git a/src/com/android/settings/regionalpreferences/RegionalFooterPreferenceController.java b/src/com/android/settings/regionalpreferences/RegionalFooterPreferenceController.java
new file mode 100644
index 0000000..6ba9d18
--- /dev/null
+++ b/src/com/android/settings/regionalpreferences/RegionalFooterPreferenceController.java
@@ -0,0 +1,74 @@
+/**
+ * Copyright (C) 2023 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.settings.regionalpreferences;
+
+import android.content.Context;
+import android.content.Intent;
+import android.util.Log;
+
+import androidx.annotation.VisibleForTesting;
+import androidx.preference.PreferenceScreen;
+
+import com.android.settings.R;
+import com.android.settings.core.BasePreferenceController;
+import com.android.settingslib.HelpUtils;
+import com.android.settingslib.widget.FooterPreference;
+
+/**
+ * Preference controller for regional preference footer.
+ */
+public class RegionalFooterPreferenceController extends BasePreferenceController {
+
+    private static final String TAG = "RegionalFooterPreferenceController";
+
+    public RegionalFooterPreferenceController(Context context, String preferenceKey) {
+        super(context, preferenceKey);
+    }
+
+    @Override
+    public int getAvailabilityStatus() {
+        return AVAILABLE_UNSEARCHABLE;
+    }
+
+    @Override
+    public void displayPreference(PreferenceScreen screen) {
+        super.displayPreference(screen);
+        FooterPreference footerPreference = screen.findPreference(getPreferenceKey());
+        setupFooterPreference(footerPreference);
+    }
+
+    @VisibleForTesting
+    void setupFooterPreference(FooterPreference footerPreference) {
+        if (footerPreference != null) {
+            footerPreference.setLearnMoreAction(v -> openLocaleLearnMoreLink());
+            footerPreference.setLearnMoreText(mContext.getString(
+                    R.string.desc_regional_pref_footer_learn_more));
+        }
+    }
+
+    private void openLocaleLearnMoreLink() {
+        Intent intent = HelpUtils.getHelpIntent(
+                mContext,
+                mContext.getString(R.string.regional_pref_footer_learn_more_link),
+                mContext.getClass().getName());
+        if (intent != null) {
+            mContext.startActivity(intent);
+        } else {
+            Log.w(TAG, "HelpIntent is null");
+        }
+    }
+}
diff --git a/src/com/android/settings/security/MemtagHelper.java b/src/com/android/settings/security/MemtagHelper.java
index b04dcf9..a09a219 100644
--- a/src/com/android/settings/security/MemtagHelper.java
+++ b/src/com/android/settings/security/MemtagHelper.java
@@ -17,6 +17,7 @@
 package com.android.settings.security;
 
 import android.os.SystemProperties;
+import android.text.TextUtils;
 
 import com.android.internal.os.Zygote;
 import com.android.settings.R;
@@ -25,18 +26,15 @@
 import java.util.Arrays;
 
 public class MemtagHelper {
+    public static final String DEVICE_CONFIG_PROP =
+            "persist.device_config.runtime_native_boot.bootloader_override";
+
     public static boolean isForcedOff() {
-        return "force_off"
-                .equals(
-                        SystemProperties.get(
-                                "persist.device_config.memory_safety_native_boot.bootloader_override"));
+        return TextUtils.equals("force_on", SystemProperties.get(DEVICE_CONFIG_PROP));
     }
 
     public static boolean isForcedOn() {
-        return "force_on"
-                .equals(
-                        SystemProperties.get(
-                                "persist.device_config.memory_safety_native_boot.bootloader_override"));
+        return TextUtils.equals("force_on", SystemProperties.get(DEVICE_CONFIG_PROP));
     }
 
     public static boolean isChecked() {
diff --git a/src/com/android/settings/spa/app/AllAppList.kt b/src/com/android/settings/spa/app/AllAppList.kt
index d357299..8bd1884 100644
--- a/src/com/android/settings/spa/app/AllAppList.kt
+++ b/src/com/android/settings/spa/app/AllAppList.kt
@@ -38,6 +38,7 @@
 import com.android.settingslib.spa.widget.ui.SpinnerOption
 import com.android.settingslib.spaprivileged.model.app.AppListModel
 import com.android.settingslib.spaprivileged.model.app.AppRecord
+import com.android.settingslib.spaprivileged.model.app.installed
 import com.android.settingslib.spaprivileged.template.app.AppList
 import com.android.settingslib.spaprivileged.template.app.AppListInput
 import com.android.settingslib.spaprivileged.template.app.AppListItem
@@ -75,6 +76,7 @@
         title = stringResource(R.string.all_apps),
         listModel = rememberContext(::AllAppListModel),
         showInstantApps = true,
+        matchAnyUserForAdmin = true,
         moreOptions = { ResetAppPreferences(resetAppDialogPresenter::open) },
         appList = appList,
     )
@@ -133,8 +135,13 @@
         return remember {
             derivedStateOf {
                 storageSummary.value +
-                    when (isDisabled(record)) {
-                        true -> System.lineSeparator() + context.getString(R.string.disabled)
+                    when {
+                        !record.app.installed -> {
+                            System.lineSeparator() + context.getString(R.string.not_installed)
+                        }
+                        isDisabled(record) -> {
+                            System.lineSeparator() + context.getString(R.string.disabled)
+                        }
                         else -> ""
                     }
             }
diff --git a/src/com/android/settings/spa/app/appinfo/AppLaunchButton.kt b/src/com/android/settings/spa/app/appinfo/AppLaunchButton.kt
index a1c3273..c7eb02d 100644
--- a/src/com/android/settings/spa/app/appinfo/AppLaunchButton.kt
+++ b/src/com/android/settings/spa/app/appinfo/AppLaunchButton.kt
@@ -16,6 +16,7 @@
 
 package com.android.settings.spa.app.appinfo
 
+import android.content.ActivityNotFoundException
 import android.content.Intent
 import android.content.pm.ApplicationInfo
 import androidx.compose.material.icons.Icons
@@ -37,6 +38,11 @@
         text = context.getString(R.string.launch_instant_app),
         imageVector = Icons.Outlined.Launch,
     ) {
-        context.startActivityAsUser(intent, app.userHandle)
+        try {
+            context.startActivityAsUser(intent, app.userHandle)
+        } catch (_: ActivityNotFoundException) {
+            // Only happens after package changes like uninstall, and before page auto refresh or
+            // close, so ignore this exception is safe.
+        }
     }
 }
diff --git a/src/com/android/settings/spa/app/appinfo/AppNotificationPreference.kt b/src/com/android/settings/spa/app/appinfo/AppNotificationPreference.kt
index e1792a9..490a98c 100644
--- a/src/com/android/settings/spa/app/appinfo/AppNotificationPreference.kt
+++ b/src/com/android/settings/spa/app/appinfo/AppNotificationPreference.kt
@@ -30,8 +30,10 @@
 import com.android.settings.spa.notification.AppNotificationRepository
 import com.android.settings.spa.notification.IAppNotificationRepository
 import com.android.settingslib.spa.framework.compose.rememberContext
+import com.android.settingslib.spa.framework.compose.stateOf
 import com.android.settingslib.spa.widget.preference.Preference
 import com.android.settingslib.spa.widget.preference.PreferenceModel
+import com.android.settingslib.spaprivileged.model.app.installed
 import kotlinx.coroutines.Dispatchers
 import kotlinx.coroutines.flow.flow
 import kotlinx.coroutines.flow.flowOn
@@ -53,6 +55,7 @@
         override val summary = summaryFlow.collectAsStateWithLifecycle(
             initialValue = stringResource(R.string.summary_placeholder)
         )
+        override val enabled = stateOf(app.installed)
         override val onClick = { navigateToAppNotificationSettings(context, app) }
     })
 }
diff --git a/src/com/android/settings/spa/app/appinfo/PackageInfoPresenter.kt b/src/com/android/settings/spa/app/appinfo/PackageInfoPresenter.kt
index a03fec7..52c8ad7 100644
--- a/src/com/android/settings/spa/app/appinfo/PackageInfoPresenter.kt
+++ b/src/com/android/settings/spa/app/appinfo/PackageInfoPresenter.kt
@@ -141,7 +141,9 @@
     private fun getPackageInfo() =
         packageManagers.getPackageInfoAsUser(
             packageName = packageName,
-            flags = PackageManager.MATCH_DISABLED_COMPONENTS or PackageManager.GET_PERMISSIONS,
+            flags = PackageManager.MATCH_ANY_USER or
+                PackageManager.MATCH_DISABLED_COMPONENTS or
+                PackageManager.GET_PERMISSIONS,
             userId = userId,
         )
 }
diff --git a/src/com/android/settings/spa/app/specialaccess/PictureInPicture.kt b/src/com/android/settings/spa/app/specialaccess/PictureInPicture.kt
index 56c16df..9fc358b 100644
--- a/src/com/android/settings/spa/app/specialaccess/PictureInPicture.kt
+++ b/src/com/android/settings/spa/app/specialaccess/PictureInPicture.kt
@@ -28,6 +28,7 @@
 import com.android.settings.R
 import com.android.settingslib.spaprivileged.model.app.AppOpsController
 import com.android.settingslib.spaprivileged.model.app.AppRecord
+import com.android.settingslib.spaprivileged.model.app.installed
 import com.android.settingslib.spaprivileged.model.app.userId
 import com.android.settingslib.spaprivileged.template.app.TogglePermissionAppListModel
 import com.android.settingslib.spaprivileged.template.app.TogglePermissionAppListProvider
@@ -67,11 +68,12 @@
         }
 
     override fun transformItem(app: ApplicationInfo): PictureInPictureRecord {
-        val packageInfo =
-            packageManager.getPackageInfoAsUser(app.packageName, GET_ACTIVITIES_FLAGS, app.userId)
         return createPictureInPictureRecord(
             app = app,
-            isSupport = packageInfo.supportsPictureInPicture(),
+            isSupport = app.installed &&
+                packageManager
+                    .getPackageInfoAsUser(app.packageName, GET_ACTIVITIES_FLAGS, app.userId)
+                    .supportsPictureInPicture(),
         )
     }
 
diff --git a/src/com/android/settings/support/SupportDashboardActivity.java b/src/com/android/settings/support/SupportDashboardActivity.java
index b8a22b9..4654858 100644
--- a/src/com/android/settings/support/SupportDashboardActivity.java
+++ b/src/com/android/settings/support/SupportDashboardActivity.java
@@ -17,7 +17,6 @@
 
 import android.app.Activity;
 import android.content.Context;
-import android.content.Intent;
 import android.os.Bundle;
 
 import com.android.settings.R;
@@ -37,6 +36,9 @@
 @SearchIndexable
 public class SupportDashboardActivity extends Activity implements Indexable {
 
+    public static final String ACTION_SUPPORT_SETTINGS =
+            "com.android.settings.action.SUPPORT_SETTINGS";
+
     @Override
     protected void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
@@ -70,7 +72,7 @@
                     data.summaryOn = context.getString(R.string.support_summary);
                     data.intentTargetPackage = context.getPackageName();
                     data.intentTargetClass = SupportDashboardActivity.class.getName();
-                    data.intentAction = Intent.ACTION_MAIN;
+                    data.intentAction = ACTION_SUPPORT_SETTINGS;
                     data.key = SUPPORT_SEARCH_INDEX_KEY;
                     result.add(data);
 
diff --git a/src/com/android/settings/uwb/UwbPreferenceController.java b/src/com/android/settings/uwb/UwbPreferenceController.java
index fb0836d..7f19765 100644
--- a/src/com/android/settings/uwb/UwbPreferenceController.java
+++ b/src/com/android/settings/uwb/UwbPreferenceController.java
@@ -16,6 +16,11 @@
 
 package com.android.settings.uwb;
 
+import static android.uwb.UwbManager.AdapterStateCallback.STATE_CHANGED_REASON_SYSTEM_REGULATION;
+import static android.uwb.UwbManager.AdapterStateCallback.STATE_DISABLED;
+import static android.uwb.UwbManager.AdapterStateCallback.STATE_ENABLED_ACTIVE;
+import static android.uwb.UwbManager.AdapterStateCallback.STATE_ENABLED_INACTIVE;
+
 import static androidx.lifecycle.Lifecycle.Event.ON_START;
 import static androidx.lifecycle.Lifecycle.Event.ON_STOP;
 
@@ -25,7 +30,7 @@
 import android.content.IntentFilter;
 import android.content.pm.PackageManager;
 import android.os.Handler;
-import android.provider.Settings;
+import android.os.HandlerExecutor;
 import android.uwb.UwbManager;
 import android.uwb.UwbManager.AdapterStateCallback;
 
@@ -39,52 +44,68 @@
 import com.android.settings.core.TogglePreferenceController;
 
 import java.util.concurrent.Executor;
-import java.util.concurrent.Executors;
 
 /** Controller for "UWB" toggle. */
 public class UwbPreferenceController extends TogglePreferenceController implements
-        AdapterStateCallback, LifecycleObserver {
-    @VisibleForTesting
-    static final String KEY_UWB_SETTINGS = "uwb_settings";
-    @VisibleForTesting
-    UwbManager mUwbManager;
-    @VisibleForTesting
-    boolean mAirplaneModeOn;
-    @VisibleForTesting
+        LifecycleObserver {
+    private final UwbManager mUwbManager;
+    private final UwbUtils mUwbUtils;
+    private boolean mAirplaneModeOn;
+    private /* @AdapterStateCallback.State */ int mState;
+    private /* @AdapterStateCallback.StateChangedReason */ int mStateReason;
     private final BroadcastReceiver mAirplaneModeChangedReceiver;
+    private final AdapterStateCallback mAdapterStateCallback;
     private final Executor mExecutor;
     private final Handler mHandler;
     private Preference mPreference;
 
-    public UwbPreferenceController(Context context, String key) {
+    @VisibleForTesting
+    public UwbPreferenceController(Context context, String key, UwbUtils uwbUtils) {
         super(context, key);
-        mExecutor = Executors.newSingleThreadExecutor();
         mHandler = new Handler(context.getMainLooper());
+        mExecutor = new HandlerExecutor(mHandler);
+        mUwbUtils = uwbUtils;
         if (isUwbSupportedOnDevice()) {
             mUwbManager = context.getSystemService(UwbManager.class);
-        }
-        mAirplaneModeOn = Settings.Global.getInt(mContext.getContentResolver(),
-                Settings.Global.AIRPLANE_MODE_ON, 0) == 1;
-        mAirplaneModeChangedReceiver = new BroadcastReceiver() {
-            @Override
-            public void onReceive(Context context, Intent intent) {
-                mAirplaneModeOn = Settings.Global.getInt(mContext.getContentResolver(),
-                        Settings.Global.AIRPLANE_MODE_ON, 0) == 1;
+            mAirplaneModeChangedReceiver = new BroadcastReceiver() {
+                @Override
+                public void onReceive(Context context, Intent intent) {
+                    mAirplaneModeOn = mUwbUtils.isAirplaneModeOn(mContext);
+                    updateState(mPreference);
+                }
+            };
+            mAdapterStateCallback = (state, reason) -> {
+                mState = state;
+                mStateReason = reason;
                 updateState(mPreference);
-            }
-        };
+            };
+        } else {
+            mUwbManager = null;
+            mAirplaneModeChangedReceiver = null;
+            mAdapterStateCallback = null;
+        }
+    }
+
+    public UwbPreferenceController(Context context, String key) {
+        this(context, key, new UwbUtils());
     }
 
     public boolean isUwbSupportedOnDevice() {
         return mContext.getPackageManager().hasSystemFeature(PackageManager.FEATURE_UWB);
     }
 
+    private boolean isUwbDisabledDueToRegulatory() {
+        return mState == STATE_DISABLED && mStateReason == STATE_CHANGED_REASON_SYSTEM_REGULATION;
+    }
+
     @Override
     public int getAvailabilityStatus() {
         if (!isUwbSupportedOnDevice()) {
             return UNSUPPORTED_ON_DEVICE;
         } else if (mAirplaneModeOn) {
             return DISABLED_DEPENDENT_SETTING;
+        } else if (isUwbDisabledDueToRegulatory()) {
+            return CONDITIONALLY_UNAVAILABLE;
         } else {
             return AVAILABLE;
         }
@@ -101,14 +122,11 @@
         if (!isUwbSupportedOnDevice()) {
             return false;
         }
-        int state = mUwbManager.getAdapterState();
-        return state == STATE_ENABLED_ACTIVE || state == STATE_ENABLED_INACTIVE;
+        return mState == STATE_ENABLED_ACTIVE || mState == STATE_ENABLED_INACTIVE;
     }
 
     @Override
     public boolean setChecked(boolean isChecked) {
-        mAirplaneModeOn = Settings.Global.getInt(mContext.getContentResolver(),
-                Settings.Global.AIRPLANE_MODE_ON, 0) == 1;
         if (isUwbSupportedOnDevice()) {
             if (mAirplaneModeOn) {
                 mUwbManager.setUwbEnabled(false);
@@ -119,32 +137,25 @@
         return true;
     }
 
-    @Override
-    public void onStateChanged(int state, int reason) {
-        Runnable runnable = () -> updateState(mPreference);
-        mHandler.post(runnable);
-    }
-
     /** Called when activity starts being displayed to user. */
     @OnLifecycleEvent(ON_START)
     public void onStart() {
         if (isUwbSupportedOnDevice()) {
-            mUwbManager.registerAdapterStateCallback(mExecutor, this);
-        }
-        if (mAirplaneModeChangedReceiver != null) {
+            mState = mUwbManager.getAdapterState();
+            mStateReason = AdapterStateCallback.STATE_CHANGED_REASON_ERROR_UNKNOWN;
+            mAirplaneModeOn = mUwbUtils.isAirplaneModeOn(mContext);
+            mUwbManager.registerAdapterStateCallback(mExecutor, mAdapterStateCallback);
             mContext.registerReceiver(mAirplaneModeChangedReceiver,
-                    new IntentFilter(Intent.ACTION_AIRPLANE_MODE_CHANGED));
+                    new IntentFilter(Intent.ACTION_AIRPLANE_MODE_CHANGED), null, mHandler);
+            refreshSummary(mPreference);
         }
-        refreshSummary(mPreference);
     }
 
     /** Called when activity stops being displayed to user. */
     @OnLifecycleEvent(ON_STOP)
     public void onStop() {
         if (isUwbSupportedOnDevice()) {
-            mUwbManager.unregisterAdapterStateCallback(this);
-        }
-        if (mAirplaneModeChangedReceiver != null) {
+            mUwbManager.unregisterAdapterStateCallback(mAdapterStateCallback);
             mContext.unregisterReceiver(mAirplaneModeChangedReceiver);
         }
     }
@@ -153,13 +164,16 @@
     public void updateState(Preference preference) {
         super.updateState(preference);
         preference.setEnabled(!mAirplaneModeOn);
-        refreshSummary(preference);
+        refreshSummary(mPreference);
     }
 
     @Override
     public CharSequence getSummary() {
         if (mAirplaneModeOn) {
             return mContext.getResources().getString(R.string.uwb_settings_summary_airplane_mode);
+        } else if (isUwbDisabledDueToRegulatory()) {
+            return mContext.getResources().getString(
+                    R.string.uwb_settings_summary_no_uwb_regulatory);
         } else {
             return mContext.getResources().getString(R.string.uwb_settings_summary);
         }
diff --git a/src/com/android/settings/uwb/UwbUtils.java b/src/com/android/settings/uwb/UwbUtils.java
new file mode 100644
index 0000000..940e1af
--- /dev/null
+++ b/src/com/android/settings/uwb/UwbUtils.java
@@ -0,0 +1,34 @@
+/*
+ * Copyright (C) 2023 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.settings.uwb;
+
+import android.content.Context;
+import android.provider.Settings;
+
+/**
+ * Utils to help mock static methods in {@link UwbPreferenceController}.
+ */
+public class UwbUtils {
+    /**
+     * Returns whether airplane mode is on or off.
+     */
+    public boolean isAirplaneModeOn(Context context) {
+        return Settings.Global.getInt(context.getContentResolver(),
+                Settings.Global.AIRPLANE_MODE_ON, 0) == 1;
+    }
+}
+
diff --git a/src/com/android/settings/wifi/WifiConfigController2.java b/src/com/android/settings/wifi/WifiConfigController2.java
index 9a29c1c..f92b58f 100644
--- a/src/com/android/settings/wifi/WifiConfigController2.java
+++ b/src/com/android/settings/wifi/WifiConfigController2.java
@@ -592,28 +592,32 @@
             return null;
         }
 
-        WifiConfiguration config = new WifiConfiguration();
-
+        WifiConfiguration config;
         if (mWifiEntry == null) {
+            config = new WifiConfiguration();
             config.SSID = "\"" + mSsidView.getText().toString() + "\"";
             // If the user adds a network manually, assume that it is hidden.
             config.hiddenSSID = mHiddenSettingsSpinner.getSelectedItemPosition() == HIDDEN_NETWORK;
-        } else if (!mWifiEntry.isSaved()) {
-            config.SSID = "\"" + mWifiEntry.getTitle() + "\"";
+        } else if (mWifiEntry.isSaved()) {
+            config = new WifiConfiguration(mWifiEntry.getWifiConfiguration());
         } else {
-            config.networkId = mWifiEntry.getWifiConfiguration().networkId;
-            config.hiddenSSID = mWifiEntry.getWifiConfiguration().hiddenSSID;
+            config = new WifiConfiguration();
+            config.SSID = "\"" + mWifiEntry.getTitle() + "\"";
         }
 
         config.shared = mSharedCheckBox.isChecked();
 
         switch (mWifiEntrySecurity) {
             case WifiEntry.SECURITY_NONE:
-                config.setSecurityParams(WifiConfiguration.SECURITY_TYPE_OPEN);
+                if (mWifiEntry == null || !mWifiEntry.isSaved()) {
+                    config.setSecurityParams(WifiConfiguration.SECURITY_TYPE_OPEN);
+                }
                 break;
 
             case WifiEntry.SECURITY_WEP:
-                config.setSecurityParams(WifiConfiguration.SECURITY_TYPE_WEP);
+                if (mWifiEntry == null || !mWifiEntry.isSaved()) {
+                    config.setSecurityParams(WifiConfiguration.SECURITY_TYPE_WEP);
+                }
                 if (mPasswordView.length() != 0) {
                     int length = mPasswordView.length();
                     String password = mPasswordView.getText().toString();
@@ -628,7 +632,9 @@
                 break;
 
             case WifiEntry.SECURITY_PSK:
-                config.setSecurityParams(WifiConfiguration.SECURITY_TYPE_PSK);
+                if (mWifiEntry == null || !mWifiEntry.isSaved()) {
+                    config.setSecurityParams(WifiConfiguration.SECURITY_TYPE_PSK);
+                }
                 if (mPasswordView.length() != 0) {
                     String password = mPasswordView.getText().toString();
                     if (password.matches("[0-9A-Fa-f]{64}")) {
@@ -642,13 +648,16 @@
             case WifiEntry.SECURITY_EAP:
             case WifiEntry.SECURITY_EAP_WPA3_ENTERPRISE:
             case WifiEntry.SECURITY_EAP_SUITE_B:
-                if (mWifiEntrySecurity == WifiEntry.SECURITY_EAP_SUITE_B) {
-                    // allowedSuiteBCiphers will be set according to certificate type
-                    config.setSecurityParams(WifiConfiguration.SECURITY_TYPE_EAP_SUITE_B);
-                } else if (mWifiEntrySecurity == WifiEntry.SECURITY_EAP_WPA3_ENTERPRISE) {
-                    config.setSecurityParams(WifiConfiguration.SECURITY_TYPE_EAP_WPA3_ENTERPRISE);
-                } else {
-                    config.setSecurityParams(WifiConfiguration.SECURITY_TYPE_EAP);
+                if (mWifiEntry == null || !mWifiEntry.isSaved()) {
+                    if (mWifiEntrySecurity == WifiEntry.SECURITY_EAP_SUITE_B) {
+                        // allowedSuiteBCiphers will be set according to certificate type
+                        config.setSecurityParams(WifiConfiguration.SECURITY_TYPE_EAP_SUITE_B);
+                    } else if (mWifiEntrySecurity == WifiEntry.SECURITY_EAP_WPA3_ENTERPRISE) {
+                        config.setSecurityParams(
+                                WifiConfiguration.SECURITY_TYPE_EAP_WPA3_ENTERPRISE);
+                    } else {
+                        config.setSecurityParams(WifiConfiguration.SECURITY_TYPE_EAP);
+                    }
                 }
                 config.enterpriseConfig = new WifiEnterpriseConfig();
                 int eapMethod = mEapMethodSpinner.getSelectedItemPosition();
@@ -790,7 +799,9 @@
                 }
                 break;
             case WifiEntry.SECURITY_SAE:
-                config.setSecurityParams(WifiConfiguration.SECURITY_TYPE_SAE);
+                if (mWifiEntry == null || !mWifiEntry.isSaved()) {
+                    config.setSecurityParams(WifiConfiguration.SECURITY_TYPE_SAE);
+                }
                 if (mPasswordView.length() != 0) {
                     String password = mPasswordView.getText().toString();
                     config.preSharedKey = '"' + password + '"';
@@ -798,7 +809,9 @@
                 break;
 
             case WifiEntry.SECURITY_OWE:
-                config.setSecurityParams(WifiConfiguration.SECURITY_TYPE_OWE);
+                if (mWifiEntry == null || !mWifiEntry.isSaved()) {
+                    config.setSecurityParams(WifiConfiguration.SECURITY_TYPE_OWE);
+                }
                 break;
 
             default:
diff --git a/tests/robotests/Android.bp b/tests/robotests/Android.bp
index 9cc8439..94febff 100644
--- a/tests/robotests/Android.bp
+++ b/tests/robotests/Android.bp
@@ -42,6 +42,7 @@
         "androidx.test.core",
         "androidx.test.runner",
         "androidx.test.ext.junit",
+        "frameworks-base-testutils",
         "guava",
         "jsr305",
         "settings-contextual-card-protos-lite",
diff --git a/tests/robotests/src/com/android/settings/UtilsTest.java b/tests/robotests/src/com/android/settings/UtilsTest.java
index 7303b74..f0a18ec 100644
--- a/tests/robotests/src/com/android/settings/UtilsTest.java
+++ b/tests/robotests/src/com/android/settings/UtilsTest.java
@@ -161,30 +161,6 @@
     }
 
     @Test
-    public void getInstallationStatus_notInstalled_shouldReturnUninstalled() {
-        assertThat(Utils.getInstallationStatus(new ApplicationInfo()))
-                .isEqualTo(R.string.not_installed);
-    }
-
-    @Test
-    public void getInstallationStatus_enabled_shouldReturnInstalled() {
-        final ApplicationInfo info = new ApplicationInfo();
-        info.flags = ApplicationInfo.FLAG_INSTALLED;
-        info.enabled = true;
-
-        assertThat(Utils.getInstallationStatus(info)).isEqualTo(R.string.installed);
-    }
-
-    @Test
-    public void getInstallationStatus_disabled_shouldReturnDisabled() {
-        final ApplicationInfo info = new ApplicationInfo();
-        info.flags = ApplicationInfo.FLAG_INSTALLED;
-        info.enabled = false;
-
-        assertThat(Utils.getInstallationStatus(info)).isEqualTo(R.string.disabled);
-    }
-
-    @Test
     public void isProfileOrDeviceOwner_deviceOwnerApp_returnTrue() {
         when(mDevicePolicyManager.isDeviceOwnerAppOnAnyUser(PACKAGE_NAME)).thenReturn(true);
 
diff --git a/tests/robotests/src/com/android/settings/biometrics/combination/CombinedBiometricProfileSettingsTest.java b/tests/robotests/src/com/android/settings/biometrics/combination/CombinedBiometricProfileSettingsTest.java
index 8da4a41..d879401 100644
--- a/tests/robotests/src/com/android/settings/biometrics/combination/CombinedBiometricProfileSettingsTest.java
+++ b/tests/robotests/src/com/android/settings/biometrics/combination/CombinedBiometricProfileSettingsTest.java
@@ -16,11 +16,9 @@
 
 package com.android.settings.biometrics.combination;
 
-import static android.hardware.fingerprint.FingerprintSensorProperties.TYPE_POWER_BUTTON;
 import static android.hardware.fingerprint.FingerprintSensorProperties.TYPE_UDFPS_OPTICAL;
 
 import static com.android.settings.biometrics.combination.BiometricsSettingsBase.CONFIRM_REQUEST;
-import static com.android.settings.biometrics.fingerprint.FingerprintSettings.FingerprintSettingsFragment;
 import static com.android.settings.password.ChooseLockPattern.RESULT_FINISHED;
 
 import static com.google.common.truth.Truth.assertThat;
@@ -35,7 +33,6 @@
 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 android.content.Context;
@@ -44,7 +41,6 @@
 import android.hardware.biometrics.SensorProperties;
 import android.hardware.face.FaceManager;
 import android.hardware.fingerprint.FingerprintManager;
-import android.hardware.fingerprint.FingerprintSensorProperties;
 import android.hardware.fingerprint.FingerprintSensorPropertiesInternal;
 import android.os.Bundle;
 import android.view.LayoutInflater;
@@ -62,6 +58,7 @@
 import androidx.test.core.app.ApplicationProvider;
 
 import com.android.settings.R;
+import com.android.settings.biometrics.BiometricsSplitScreenDialog;
 import com.android.settings.password.ChooseLockSettingsHelper;
 import com.android.settings.testutils.FakeFeatureFactory;
 import com.android.settings.testutils.shadow.ShadowFragment;
@@ -322,46 +319,24 @@
     }
 
     @Test
-    public void testClickFingerprintUnlockInMultiWindow_onUdfpsDevice_withoutEnrolledFp_showsDialog() {
-        clickFingerprintUnlockInSplitScreenMode(TYPE_UDFPS_OPTICAL, /*hasEnrolledFingerprint*/
-                false);
-
-        verify(mBiometricSettingsAppPreferenceController, times(0)).handlePreferenceTreeClick(
-                any());
-        verify(mFragmentTransaction).add(any(),
-                eq(FingerprintSettingsFragment.FingerprintSplitScreenDialog.class.getName()));
+    public void testClickFingerprintUnlock_inMultiWindow_withoutEnrolledFp_showsDialog() {
+        testClickFingerprintUnlock(true /* isInMultiWindow */, false /* hasEnrolledFingerprint */);
+        verifyShowsDialogAfterClickingUnlock();
     }
 
     @Test
-    public void testClickFingerprintUnlockInMultiWindow_onUdfpsDevice_withEnrolledFp_noDialog() {
-        clickFingerprintUnlockInSplitScreenMode(TYPE_UDFPS_OPTICAL, /*hasEnrolledFingerprint*/true);
-
-        verify(mBiometricSettingsAppPreferenceController).handlePreferenceTreeClick(
-                mPreferenceCaptor.capture());
-        List<Preference> capturedPreferences = mPreferenceCaptor.getAllValues();
-        assertThat(capturedPreferences.size()).isEqualTo(1);
-        assertThat(capturedPreferences.get(0).getKey()).isEqualTo(
-                mFragment.getFingerprintPreferenceKey());
-        verify(mFragmentTransaction, never()).add(any(),
-                eq(FingerprintSettingsFragment.FingerprintSplitScreenDialog.class.getName()));
+    public void testClickFingerprintUnlock_inMultiWindow_withEnrolledFp_noDialog() {
+        testClickFingerprintUnlock(true /* isInMultiWindow */, true /* hasEnrolledFingerprint */);
+        verifyNoDialogAfterClickingUnlock(mFragment.getFingerprintPreferenceKey());
     }
 
     @Test
-    public void testClickFingerprintUnlockInMultiWindow_onSfpsDevice_withoutEnrolledFp_noDialog() {
-        clickFingerprintUnlockInSplitScreenMode(TYPE_POWER_BUTTON, /*hasEnrolledFingerprint*/false);
-
-        verify(mBiometricSettingsAppPreferenceController).handlePreferenceTreeClick(
-                mPreferenceCaptor.capture());
-        List<Preference> capturedPreferences = mPreferenceCaptor.getAllValues();
-        assertThat(capturedPreferences.size()).isEqualTo(1);
-        assertThat(capturedPreferences.get(0).getKey()).isEqualTo(
-                mFragment.getFingerprintPreferenceKey());
-        verify(mFragmentTransaction, never()).add(any(),
-                eq(FingerprintSettingsFragment.FingerprintSplitScreenDialog.class.getName()));
+    public void testClickFingerprintUnlock_inFullScreen_withoutEnrolledFp_noDialog() {
+        testClickFingerprintUnlock(false /* isInMultiWindow */, false /* hasEnrolledFingerprint */);
+        verifyNoDialogAfterClickingUnlock(mFragment.getFingerprintPreferenceKey());
     }
 
-    private void clickFingerprintUnlockInSplitScreenMode(
-            @FingerprintSensorProperties.SensorType int sensorType,
+    private void testClickFingerprintUnlock(boolean isInMultiWindow,
             boolean hasEnrolledFingerprint) {
         final ArrayList<FingerprintSensorPropertiesInternal> props = new ArrayList<>();
         props.add(new FingerprintSensorPropertiesInternal(
@@ -369,7 +344,7 @@
                 SensorProperties.STRENGTH_STRONG,
                 1 /* maxEnrollmentsPerUser */,
                 new ArrayList<ComponentInfoInternal>(),
-                sensorType,
+                TYPE_UDFPS_OPTICAL,
                 true /* resetLockoutRequiresHardwareAuthToken */));
         doReturn(props).when(mFingerprintManager).getSensorPropertiesInternal();
 
@@ -384,7 +359,7 @@
         FragmentManager fragmentManager = mock(FragmentManager.class);
         doReturn(fragmentManager).when(mActivity).getSupportFragmentManager();
         doReturn(mFragmentTransaction).when(fragmentManager).beginTransaction();
-        doReturn(true).when(mActivity).isInMultiWindowMode();
+        doReturn(isInMultiWindow).when(mActivity).isInMultiWindowMode();
         doReturn(hasEnrolledFingerprint).when(mFingerprintManager).hasEnrolledFingerprints(
                 anyInt());
 
@@ -399,6 +374,69 @@
         preference.setKey(mFragment.getFingerprintPreferenceKey());
         mFragment.onPreferenceTreeClick(preference);
     }
+
+    @Test
+    public void testClickFaceUnlock_inMultiWindow_withoutEnrolledFp_showsDialog() {
+        testClickFaceUnlock(true /* isInMultiWindow */, false /*hasEnrolledFace*/);
+        verifyShowsDialogAfterClickingUnlock();
+    }
+
+    @Test
+    public void testClickFaceUnlock_inMultiWindow_withEnrolledFp_noDialog() {
+        testClickFaceUnlock(true /* isInMultiWindow */, true /* hasEnrolledFace */);
+        verifyNoDialogAfterClickingUnlock(mFragment.getFacePreferenceKey());
+    }
+
+    @Test
+    public void testClickFaceUnlock_inFullScreen_withoutEnrolledFp_noDialog() {
+        testClickFaceUnlock(false /* isInMultiWindow */ , false /* hasEnrolledFace */);
+        verifyNoDialogAfterClickingUnlock(mFragment.getFacePreferenceKey());
+    }
+
+    private void testClickFaceUnlock(boolean isInMultiWindow, boolean hasEnrolledFace) {
+        doAnswer(invocation -> {
+            final FaceManager.GenerateChallengeCallback callback =
+                    invocation.getArgument(1);
+            callback.onGenerateChallengeResult(0, 0, 1L);
+            return null;
+        }).when(mFaceManager).generateChallenge(anyInt(), any());
+        doReturn(new byte[] { 1 }).when(mFragment).requestGatekeeperHat(any(), anyLong(), anyInt(),
+                anyLong());
+        FragmentManager fragmentManager = mock(FragmentManager.class);
+        doReturn(fragmentManager).when(mActivity).getSupportFragmentManager();
+        doReturn(mFragmentTransaction).when(fragmentManager).beginTransaction();
+        doReturn(isInMultiWindow).when(mActivity).isInMultiWindowMode();
+        doReturn(hasEnrolledFace).when(mFaceManager).hasEnrolledTemplates(
+                anyInt());
+
+        // Start fragment
+        mFragment.onAttach(mContext);
+        mFragment.onCreate(null);
+        mFragment.onCreateView(LayoutInflater.from(mContext), mock(ViewGroup.class), Bundle.EMPTY);
+        mFragment.onResume();
+
+        // User clicks on "Face Unlock"
+        final Preference preference = new Preference(mContext);
+        preference.setKey(mFragment.getFacePreferenceKey());
+        mFragment.onPreferenceTreeClick(preference);
+    }
+
+    private void verifyNoDialogAfterClickingUnlock(String preferenceKey) {
+        verify(mBiometricSettingsAppPreferenceController).handlePreferenceTreeClick(
+                mPreferenceCaptor.capture());
+        List<Preference> capturedPreferences = mPreferenceCaptor.getAllValues();
+        assertThat(capturedPreferences).hasSize(1);
+        assertThat(capturedPreferences.get(0).getKey()).isEqualTo(preferenceKey);
+        verify(mFragmentTransaction, never()).add(any(),
+                eq(BiometricsSplitScreenDialog.class.getName()));
+    }
+
+    private void verifyShowsDialogAfterClickingUnlock() {
+        verify(mBiometricSettingsAppPreferenceController, never()).handlePreferenceTreeClick(any());
+        verify(mFragmentTransaction).add(any(),
+                eq(BiometricsSplitScreenDialog.class.getName()));
+    }
+
     /**
      * a test fragment that initializes PreferenceScreen for testing.
      */
diff --git a/tests/robotests/src/com/android/settings/biometrics/fingerprint/FingerprintSettingsFragmentTest.java b/tests/robotests/src/com/android/settings/biometrics/fingerprint/FingerprintSettingsFragmentTest.java
index 19eb42c..2bc81e6 100644
--- a/tests/robotests/src/com/android/settings/biometrics/fingerprint/FingerprintSettingsFragmentTest.java
+++ b/tests/robotests/src/com/android/settings/biometrics/fingerprint/FingerprintSettingsFragmentTest.java
@@ -16,7 +16,6 @@
 
 package com.android.settings.biometrics.fingerprint;
 
-import static android.hardware.fingerprint.FingerprintSensorProperties.TYPE_POWER_BUTTON;
 import static android.hardware.fingerprint.FingerprintSensorProperties.TYPE_UDFPS_OPTICAL;
 
 import static com.android.settings.biometrics.fingerprint.FingerprintSettings.FingerprintSettingsFragment;
@@ -40,7 +39,6 @@
 import android.hardware.biometrics.ComponentInfoInternal;
 import android.hardware.biometrics.SensorProperties;
 import android.hardware.fingerprint.FingerprintManager;
-import android.hardware.fingerprint.FingerprintSensorProperties;
 import android.hardware.fingerprint.FingerprintSensorPropertiesInternal;
 import android.os.Bundle;
 import android.view.LayoutInflater;
@@ -52,6 +50,7 @@
 import androidx.preference.Preference;
 import androidx.test.core.app.ApplicationProvider;
 
+import com.android.settings.biometrics.BiometricsSplitScreenDialog;
 import com.android.settings.password.ChooseLockSettingsHelper;
 import com.android.settings.testutils.FakeFeatureFactory;
 import com.android.settings.testutils.shadow.ShadowFragment;
@@ -111,6 +110,8 @@
         doReturn(fragmentManager).when(mActivity).getSupportFragmentManager();
 
         doNothing().when(mFragment).startActivityForResult(any(Intent.class), anyInt());
+
+        setSensor();
     }
 
     @After
@@ -119,9 +120,7 @@
     }
 
     @Test
-    public void testAddFingerprint_onUdfpsDevice_inFullScreen_noDialog() {
-        setSensorType(TYPE_UDFPS_OPTICAL);
-
+    public void testAddFingerprint_inFullScreen_noDialog() {
         // Start fragment
         mFragment.onAttach(mContext);
         mFragment.onCreate(null);
@@ -135,14 +134,12 @@
 
         verify(mFragment).startActivityForResult(any(), eq(ADD_FINGERPRINT_REQUEST));
         verify(mFragmentTransaction, never()).add(any(),
-                eq(FingerprintSettingsFragment.FingerprintSplitScreenDialog.class.getName()));
+                eq(BiometricsSplitScreenDialog.class.getName()));
 
     }
 
     @Test
-    public void testAddFingerprint_onUdfpsDevice_inMultiWindow_showsDialog() {
-        setSensorType(TYPE_UDFPS_OPTICAL);
-
+    public void testAddFingerprint_inMultiWindow_showsDialog() {
         // Start fragment
         mFragment.onAttach(mContext);
         mFragment.onCreate(null);
@@ -157,40 +154,17 @@
         mFragment.onPreferenceTreeClick(preference);
 
         verify(mFragment, times(0)).startActivityForResult(any(), eq(ADD_FINGERPRINT_REQUEST));
-        verify(mFragmentTransaction).add(any(),
-                eq(FingerprintSettingsFragment.FingerprintSplitScreenDialog.class.getName()));
+        verify(mFragmentTransaction).add(any(), eq(BiometricsSplitScreenDialog.class.getName()));
     }
 
-    @Test
-    public void testAddFingerprint_onSfpsDevice_inMultiWindow_noDialog() {
-        setSensorType(TYPE_POWER_BUTTON);
-
-        // Start fragment
-        mFragment.onAttach(mContext);
-        mFragment.onCreate(null);
-        mFragment.onCreateView(LayoutInflater.from(mContext), mock(ViewGroup.class), Bundle.EMPTY);
-        mFragment.onResume();
-
-        doReturn(true).when(mActivity).isInMultiWindowMode();
-
-        // Click "Add Fingerprint"
-        final Preference preference = new Preference(mContext);
-        preference.setKey(KEY_FINGERPRINT_ADD);
-        mFragment.onPreferenceTreeClick(preference);
-
-        verify(mFragment).startActivityForResult(any(), eq(ADD_FINGERPRINT_REQUEST));
-        verify(mFragmentTransaction, never()).add(any(),
-                eq(FingerprintSettingsFragment.FingerprintSplitScreenDialog.class.getName()));
-    }
-
-    private void setSensorType(@FingerprintSensorProperties.SensorType int sensorType) {
+    private void setSensor() {
         final ArrayList<FingerprintSensorPropertiesInternal> props = new ArrayList<>();
         props.add(new FingerprintSensorPropertiesInternal(
                 0 /* sensorId */,
                 SensorProperties.STRENGTH_STRONG,
                 1 /* maxEnrollmentsPerUser */,
                 new ArrayList<ComponentInfoInternal>(),
-                sensorType,
+                TYPE_UDFPS_OPTICAL,
                 true /* resetLockoutRequiresHardwareAuthToken */));
         doReturn(props).when(mFingerprintManager).getSensorPropertiesInternal();
     }
diff --git a/tests/robotests/src/com/android/settings/security/MemtagHelperTest.java b/tests/robotests/src/com/android/settings/security/MemtagHelperTest.java
index 4ef7de4..e3be8e2 100644
--- a/tests/robotests/src/com/android/settings/security/MemtagHelperTest.java
+++ b/tests/robotests/src/com/android/settings/security/MemtagHelperTest.java
@@ -33,8 +33,6 @@
 public class MemtagHelperTest {
     private final String mMemtagProperty = "arm64.memtag.bootctl";
     private final String mMemtagSupportedProperty = "ro.arm64.memtag.bootctl_settings_toggle";
-    private final String mDeviceConfigOverride =
-            "persist.device_config.memory_safety_native_boot.bootloader_override";
 
     @Test
     public void isChecked_empty_isFalse() {
@@ -80,7 +78,7 @@
 
     @Test
     public void getAvailabilityStatus_isForcedOff_isDISABLED_DEPENDENT_SETTING() {
-        ShadowSystemProperties.override(mDeviceConfigOverride, "force_off");
+        ShadowSystemProperties.override(MemtagHelper.DEVICE_CONFIG_PROP, "force_off");
         ShadowSystemProperties.override(mMemtagSupportedProperty, "true");
         assertThat(MemtagHelper.getAvailabilityStatus())
                 .isEqualTo(BasePreferenceController.DISABLED_DEPENDENT_SETTING);
@@ -88,7 +86,7 @@
 
     @Test
     public void getAvailabilityStatus_isForcedOn_isDISABLED_DEPENDENT_SETTING() {
-        ShadowSystemProperties.override(mDeviceConfigOverride, "force_on");
+        ShadowSystemProperties.override(MemtagHelper.DEVICE_CONFIG_PROP, "force_on");
         ShadowSystemProperties.override(mMemtagSupportedProperty, "true");
         assertThat(MemtagHelper.getAvailabilityStatus())
                 .isEqualTo(BasePreferenceController.DISABLED_DEPENDENT_SETTING);
@@ -96,7 +94,7 @@
 
     @Test
     public void getAvailabilityStatus_isUnsupported_isUNSUPPORTED_ON_DEVICE() {
-        ShadowSystemProperties.override(mDeviceConfigOverride, "");
+        ShadowSystemProperties.override(MemtagHelper.DEVICE_CONFIG_PROP, "");
         ShadowSystemProperties.override(mMemtagSupportedProperty, "false");
         assertThat(MemtagHelper.getAvailabilityStatus())
                 .isEqualTo(BasePreferenceController.UNSUPPORTED_ON_DEVICE);
@@ -127,7 +125,7 @@
     @Config(shadows = {ZygoteShadow.class})
     public void getSummary_memtagAndZygoteSupportsMemoryTagging_memtag_on() {
         ZygoteShadow.setSupportsMemoryTagging(true);
-        ShadowSystemProperties.override(mDeviceConfigOverride, "");
+        ShadowSystemProperties.override(MemtagHelper.DEVICE_CONFIG_PROP, "");
         ShadowSystemProperties.override(mMemtagProperty, "memtag");
         assertThat(MemtagHelper.getSummary()).isEqualTo(R.string.memtag_on);
     }
@@ -136,7 +134,7 @@
     @Config(shadows = {ZygoteShadow.class})
     public void getSummary_noMemtagAndZygoteSupportsMemoryTagging_memtag_off_pending() {
         ZygoteShadow.setSupportsMemoryTagging(true);
-        ShadowSystemProperties.override(mDeviceConfigOverride, "");
+        ShadowSystemProperties.override(MemtagHelper.DEVICE_CONFIG_PROP, "");
         ShadowSystemProperties.override(mMemtagProperty, "");
         assertThat(MemtagHelper.getSummary()).isEqualTo(R.string.memtag_off_pending);
     }
@@ -145,7 +143,7 @@
     @Config(shadows = {ZygoteShadow.class})
     public void getSummary_noMemtagAndNoZygoteSupportsMemoryTagging_memtag_off() {
         ZygoteShadow.setSupportsMemoryTagging(false);
-        ShadowSystemProperties.override(mDeviceConfigOverride, "");
+        ShadowSystemProperties.override(MemtagHelper.DEVICE_CONFIG_PROP, "");
         ShadowSystemProperties.override(mMemtagProperty, "");
         assertThat(MemtagHelper.getSummary()).isEqualTo(R.string.memtag_off);
     }
@@ -154,7 +152,7 @@
     @Config(shadows = {ZygoteShadow.class})
     public void getSummary_memtagAndNoZygoteSupportsMemoryTagging_memtag_on_pending() {
         ZygoteShadow.setSupportsMemoryTagging(false);
-        ShadowSystemProperties.override(mDeviceConfigOverride, "");
+        ShadowSystemProperties.override(MemtagHelper.DEVICE_CONFIG_PROP, "");
         ShadowSystemProperties.override(mMemtagProperty, "memtag");
         assertThat(MemtagHelper.getSummary()).isEqualTo(R.string.memtag_on_pending);
     }
@@ -163,7 +161,7 @@
     @Config(shadows = {ZygoteShadow.class})
     public void getSummary_forceOffOverride_memtag_force_off() {
         ZygoteShadow.setSupportsMemoryTagging(false);
-        ShadowSystemProperties.override(mDeviceConfigOverride, "force_off");
+        ShadowSystemProperties.override(MemtagHelper.DEVICE_CONFIG_PROP, "force_off");
         ShadowSystemProperties.override(mMemtagProperty, "memtag");
         assertThat(MemtagHelper.getSummary()).isEqualTo(R.string.memtag_force_off);
     }
@@ -172,20 +170,20 @@
     @Config(shadows = {ZygoteShadow.class})
     public void getSummary_forceOffOverride_memtag_force_on() {
         ZygoteShadow.setSupportsMemoryTagging(false);
-        ShadowSystemProperties.override(mDeviceConfigOverride, "force_on");
+        ShadowSystemProperties.override(MemtagHelper.DEVICE_CONFIG_PROP, "force_on");
         ShadowSystemProperties.override(mMemtagProperty, "memtag");
         assertThat(MemtagHelper.getSummary()).isEqualTo(R.string.memtag_force_on);
     }
 
     @Test
     public void isForcedOn_forceOnOverride_isTrue() {
-        ShadowSystemProperties.override(mDeviceConfigOverride, "force_on");
+        ShadowSystemProperties.override(MemtagHelper.DEVICE_CONFIG_PROP, "force_on");
         assertThat(MemtagHelper.isForcedOn()).isTrue();
     }
 
     @Test
     public void isForcedOff_forceOffOverride_isTrue() {
-        ShadowSystemProperties.override(mDeviceConfigOverride, "force_off");
+        ShadowSystemProperties.override(MemtagHelper.DEVICE_CONFIG_PROP, "force_off");
         assertThat(MemtagHelper.isForcedOff()).isTrue();
     }
 }
diff --git a/tests/robotests/src/com/android/settings/support/SupportDashboardActivityTest.java b/tests/robotests/src/com/android/settings/support/SupportDashboardActivityTest.java
index 0124551..f510994 100644
--- a/tests/robotests/src/com/android/settings/support/SupportDashboardActivityTest.java
+++ b/tests/robotests/src/com/android/settings/support/SupportDashboardActivityTest.java
@@ -16,6 +16,8 @@
 
 package com.android.settings.support;
 
+import static com.android.settings.support.SupportDashboardActivity.ACTION_SUPPORT_SETTINGS;
+
 import static com.google.common.truth.Truth.assertThat;
 
 import android.content.Context;
@@ -59,7 +61,7 @@
                 mContext.getString(R.string.page_tab_title_support));
         assertThat(value.intentTargetPackage).isEqualTo(mContext.getPackageName());
         assertThat(value.intentTargetClass).isEqualTo(SupportDashboardActivity.class.getName());
-        assertThat(value.intentAction).isEqualTo(Intent.ACTION_MAIN);
+        assertThat(value.intentAction).isEqualTo(ACTION_SUPPORT_SETTINGS);
     }
 
     @Test
diff --git a/tests/robotests/src/com/android/settings/uwb/UwbPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/uwb/UwbPreferenceControllerTest.java
index 94d797a..23aca51 100644
--- a/tests/robotests/src/com/android/settings/uwb/UwbPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/uwb/UwbPreferenceControllerTest.java
@@ -16,110 +16,157 @@
 
 package com.android.settings.uwb;
 
+import static android.uwb.UwbManager.AdapterStateCallback.STATE_CHANGED_REASON_SYSTEM_POLICY;
+import static android.uwb.UwbManager.AdapterStateCallback.STATE_CHANGED_REASON_SYSTEM_REGULATION;
+import static android.uwb.UwbManager.AdapterStateCallback.STATE_DISABLED;
+import static android.uwb.UwbManager.AdapterStateCallback.STATE_ENABLED_ACTIVE;
+import static android.uwb.UwbManager.AdapterStateCallback.STATE_ENABLED_INACTIVE;
+
 import static com.google.common.truth.Truth.assertThat;
 
+import static org.mockito.Mockito.any;
+import static org.mockito.Mockito.anyString;
 import static org.mockito.Mockito.clearInvocations;
 import static org.mockito.Mockito.doReturn;
+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 android.content.BroadcastReceiver;
 import android.content.Context;
+import android.content.Intent;
 import android.content.pm.PackageManager;
+import android.content.res.Resources;
+import android.os.test.TestLooper;
 import android.uwb.UwbManager;
 
+import androidx.preference.Preference;
+import androidx.preference.PreferenceScreen;
+
+import com.android.settings.R;
 import com.android.settings.core.BasePreferenceController;
 
 import org.junit.Before;
 import org.junit.Rule;
 import org.junit.Test;
 import org.junit.runner.RunWith;
+import org.mockito.ArgumentCaptor;
 import org.mockito.Mock;
 import org.mockito.junit.MockitoJUnit;
 import org.mockito.junit.MockitoRule;
 import org.robolectric.RobolectricTestRunner;
-import org.robolectric.RuntimeEnvironment;
 
 /** Unit tests for UWB preference toggle. */
 @RunWith(RobolectricTestRunner.class)
 public class UwbPreferenceControllerTest {
+    private static final String TEST_SUMMARY = "uwb";
+    private static final String TEST_AIRPLANE_SUMMARY = "apm_uwb";
+    private static final String TEST_NO_UWB_REGULATORY_SUMMARY = "regulatory_uwb";
     @Rule
     public MockitoRule rule = MockitoJUnit.rule();
 
+    @Mock
     private Context mContext;
+    @Mock
     private PackageManager mPackageManager;
     private UwbPreferenceController mController;
-
+    private ArgumentCaptor<UwbManager.AdapterStateCallback> mAdapterStateCallbackArgumentCaptor =
+            ArgumentCaptor.forClass(UwbManager.AdapterStateCallback.class);
+    private ArgumentCaptor<BroadcastReceiver> mBroadcastReceiverArgumentCaptor =
+            ArgumentCaptor.forClass(BroadcastReceiver.class);
+    private TestLooper mTestLooper;
     @Mock
     private UwbManager mUwbManager;
+    @Mock
+    private UwbUtils mUwbUtils;
+    @Mock
+    private Preference mPreference;
+    @Mock
+    private PreferenceScreen mPreferenceScreen;
+    @Mock
+    private Resources mResources;
 
     @Before
-    public void setUp() {
-        mContext = spy(RuntimeEnvironment.application);
-        mPackageManager = spy(mContext.getPackageManager());
-        mController = new UwbPreferenceController(mContext, "uwb_settings");
-        mController.mUwbManager = mUwbManager;
-    }
-
-    @Test
-    public void getAvailabilityStatus_uwbDisabled_shouldReturnDisabled() {
+    public void setUp() throws Exception {
+        mTestLooper = new TestLooper();
         doReturn(mPackageManager).when(mContext).getPackageManager();
         doReturn(true).when(mPackageManager)
                 .hasSystemFeature(PackageManager.FEATURE_UWB);
-        mController.mAirplaneModeOn = true;
+        when(mResources.getString(R.string.uwb_settings_summary))
+                .thenReturn(TEST_SUMMARY);
+        when(mResources.getString(R.string.uwb_settings_summary_airplane_mode))
+                .thenReturn(TEST_AIRPLANE_SUMMARY);
+        when(mResources.getString(R.string.uwb_settings_summary_no_uwb_regulatory))
+                .thenReturn(TEST_NO_UWB_REGULATORY_SUMMARY);
+        when(mContext.getMainLooper()).thenReturn(mTestLooper.getLooper());
+        when(mContext.getSystemService(UwbManager.class)).thenReturn(mUwbManager);
+        when(mContext.getResources()).thenReturn(mResources);
+        when(mUwbUtils.isAirplaneModeOn(any())).thenReturn(false);
+        doReturn(STATE_ENABLED_ACTIVE).when(mUwbManager).getAdapterState();
+        mController = new UwbPreferenceController(mContext, "uwb_settings", mUwbUtils);
+        when(mPreferenceScreen.findPreference(anyString())).thenReturn(mPreference);
+        mController.displayPreference(mPreferenceScreen);
+    }
 
+    private void startControllerAndCaptureCallbacks() {
+        mController.onStart();
+        verify(mContext).registerReceiver(
+                mBroadcastReceiverArgumentCaptor.capture(), any(), any(), any());
+        verify(mUwbManager).registerAdapterStateCallback(
+                any(), mAdapterStateCallbackArgumentCaptor.capture());
+    }
+
+    @Test
+    public void getAvailabilityStatus_uwbDisabled_shouldReturnDisabled() throws Exception {
+        when(mUwbUtils.isAirplaneModeOn(any())).thenReturn(true);
+        startControllerAndCaptureCallbacks();
         assertThat(mController.getAvailabilityStatus())
                 .isEqualTo(BasePreferenceController.DISABLED_DEPENDENT_SETTING);
     }
 
     @Test
-    public void getAvailabilityStatus_uwbShown_shouldReturnAvailable() {
-        doReturn(mPackageManager).when(mContext).getPackageManager();
-        doReturn(true).when(mPackageManager)
-                .hasSystemFeature(PackageManager.FEATURE_UWB);
-        mController.mAirplaneModeOn = false;
-
+    public void getAvailabilityStatus_uwbShown_shouldReturnAvailable() throws Exception {
+        when(mUwbUtils.isAirplaneModeOn(any())).thenReturn(false);
+        startControllerAndCaptureCallbacks();
         assertThat(mController.getAvailabilityStatus())
                 .isEqualTo(BasePreferenceController.AVAILABLE);
     }
 
     @Test
     public void getAvailabilityStatus_uwbNotShown_shouldReturnUnsupported() {
-        doReturn(mPackageManager).when(mContext).getPackageManager();
         doReturn(false).when(mPackageManager)
                 .hasSystemFeature(PackageManager.FEATURE_UWB);
 
+        mController.onStart();
+        verify(mContext, never()).registerReceiver(any(), any(), any(), any());
+        verify(mUwbManager, never()).registerAdapterStateCallback(any(), any());
         assertThat(mController.getAvailabilityStatus())
                 .isEqualTo(BasePreferenceController.UNSUPPORTED_ON_DEVICE);
     }
 
     @Test
     public void isChecked_uwbEnabled_shouldReturnTrue() {
-        doReturn(mPackageManager).when(mContext).getPackageManager();
-        doReturn(true).when(mPackageManager)
-                .hasSystemFeature(PackageManager.FEATURE_UWB);
-        doReturn(mController.STATE_ENABLED_ACTIVE).when(mUwbManager).getAdapterState();
+        doReturn(STATE_ENABLED_ACTIVE).when(mUwbManager).getAdapterState();
 
+        startControllerAndCaptureCallbacks();
         assertThat(mController.isChecked()).isTrue();
     }
 
     @Test
     public void isChecked_uwbDisabled_shouldReturnFalse() {
-        doReturn(mPackageManager).when(mContext).getPackageManager();
-        doReturn(true).when(mPackageManager)
-                .hasSystemFeature(PackageManager.FEATURE_UWB);
-        doReturn(mController.STATE_DISABLED).when(mUwbManager).getAdapterState();
+        doReturn(STATE_DISABLED).when(mUwbManager).getAdapterState();
 
+        startControllerAndCaptureCallbacks();
         assertThat(mController.isChecked()).isFalse();
     }
 
     @Test
     public void setChecked_uwbDisabled_shouldEnableUwb() {
         clearInvocations(mUwbManager);
-        doReturn(mPackageManager).when(mContext).getPackageManager();
-        doReturn(true).when(mPackageManager)
-                .hasSystemFeature(PackageManager.FEATURE_UWB);
 
+        startControllerAndCaptureCallbacks();
         mController.setChecked(true);
 
         verify(mUwbManager).setUwbEnabled(true);
@@ -129,14 +176,65 @@
     @Test
     public void setChecked_uwbEnabled_shouldDisableUwb() {
         clearInvocations(mUwbManager);
-        doReturn(mPackageManager).when(mContext).getPackageManager();
-        doReturn(true).when(mPackageManager)
-                .hasSystemFeature(PackageManager.FEATURE_UWB);
 
+        startControllerAndCaptureCallbacks();
         mController.setChecked(false);
 
         verify(mUwbManager).setUwbEnabled(false);
         verify(mUwbManager, never()).setUwbEnabled(true);
     }
+
+    @Test
+    public void updateStateAndSummary_uwbDisabledAndEnabled() {
+        startControllerAndCaptureCallbacks();
+        clearInvocations(mUwbManager, mPreference);
+
+        mAdapterStateCallbackArgumentCaptor.getValue().onStateChanged(
+                STATE_DISABLED, STATE_CHANGED_REASON_SYSTEM_POLICY);
+
+        verify(mPreference).setEnabled(true);
+        assertThat(mController.isChecked()).isFalse();
+        verify(mPreference, times(2)).setSummary(TEST_SUMMARY);
+
+        mAdapterStateCallbackArgumentCaptor.getValue().onStateChanged(
+                STATE_ENABLED_INACTIVE, STATE_CHANGED_REASON_SYSTEM_POLICY);
+
+        verify(mPreference, times(2)).setEnabled(true);
+        assertThat(mController.isChecked()).isTrue();
+        verify(mPreference, times(4)).setSummary(TEST_SUMMARY);
+    }
+
+    @Test
+    public void updateStateAndSummary_apmEnabledAndDisabled() {
+        startControllerAndCaptureCallbacks();
+        clearInvocations(mUwbManager, mPreference);
+
+        when(mUwbUtils.isAirplaneModeOn(any())).thenReturn(true);
+        mBroadcastReceiverArgumentCaptor.getValue().onReceive(
+                mock(Context.class), mock(Intent.class));
+
+        verify(mPreference).setEnabled(false);
+        verify(mPreference, times(2)).setSummary(TEST_AIRPLANE_SUMMARY);
+
+        when(mUwbUtils.isAirplaneModeOn(any())).thenReturn(false);
+        mBroadcastReceiverArgumentCaptor.getValue().onReceive(
+                mock(Context.class), mock(Intent.class));
+
+        verify(mPreference).setEnabled(true);
+        verify(mPreference, times(2)).setSummary(TEST_SUMMARY);
+    }
+
+    @Test
+    public void updateStateAndSummary_uwbDisabledDueToRegulatory() {
+        startControllerAndCaptureCallbacks();
+        clearInvocations(mUwbManager, mPreference);
+
+        mAdapterStateCallbackArgumentCaptor.getValue().onStateChanged(
+                STATE_DISABLED, STATE_CHANGED_REASON_SYSTEM_REGULATION);
+
+        assertThat(mController.getAvailabilityStatus())
+                .isEqualTo(BasePreferenceController.CONDITIONALLY_UNAVAILABLE);
+        verify(mPreference, times(2)).setSummary(TEST_NO_UWB_REGULATORY_SUMMARY);
+    }
 }
 
diff --git a/tests/robotests/src/com/android/settings/wifi/WifiConfigController2Test.java b/tests/robotests/src/com/android/settings/wifi/WifiConfigController2Test.java
index ad086b7..faaa0fa 100644
--- a/tests/robotests/src/com/android/settings/wifi/WifiConfigController2Test.java
+++ b/tests/robotests/src/com/android/settings/wifi/WifiConfigController2Test.java
@@ -470,7 +470,7 @@
 
     private void checkSavedMacRandomizedValue(int macRandomizedValue) {
         when(mWifiEntry.isSaved()).thenReturn(true);
-        final WifiConfiguration mockWifiConfig = mock(WifiConfiguration.class);
+        final WifiConfiguration mockWifiConfig = spy(new WifiConfiguration());
         when(mockWifiConfig.getIpConfiguration()).thenReturn(mock(IpConfiguration.class));
         when(mWifiEntry.getWifiConfiguration()).thenReturn(mockWifiConfig);
         mockWifiConfig.macRandomizationSetting = macRandomizedValue;
@@ -809,9 +809,10 @@
     private void setUpModifyingSavedPeapConfigController() {
         when(mWifiEntry.isSaved()).thenReturn(true);
         when(mWifiEntry.getSecurity()).thenReturn(WifiEntry.SECURITY_EAP);
-        final WifiConfiguration mockWifiConfig = mock(WifiConfiguration.class);
+        final WifiConfiguration mockWifiConfig = spy(new WifiConfiguration());
+        mockWifiConfig.setSecurityParams(WifiConfiguration.SECURITY_TYPE_EAP);
         when(mockWifiConfig.getIpConfiguration()).thenReturn(mock(IpConfiguration.class));
-        final WifiEnterpriseConfig mockWifiEnterpriseConfig = mock(WifiEnterpriseConfig.class);
+        final WifiEnterpriseConfig mockWifiEnterpriseConfig = spy(new WifiEnterpriseConfig());
         when(mockWifiEnterpriseConfig.getEapMethod()).thenReturn(Eap.PEAP);
         mockWifiConfig.enterpriseConfig = mockWifiEnterpriseConfig;
         when(mWifiEntry.getWifiConfiguration()).thenReturn(mockWifiConfig);
@@ -980,8 +981,8 @@
 
     private void setUpModifyingSavedCertificateConfigController(String savedCaCertificate,
             String savedUserCertificate) {
-        final WifiConfiguration mockWifiConfig = mock(WifiConfiguration.class);
-        final WifiEnterpriseConfig mockWifiEnterpriseConfig = mock(WifiEnterpriseConfig.class);
+        final WifiConfiguration mockWifiConfig = spy(new WifiConfiguration());
+        final WifiEnterpriseConfig mockWifiEnterpriseConfig = spy(new WifiEnterpriseConfig());
 
         mockWifiConfig.enterpriseConfig = mockWifiEnterpriseConfig;
         when(mWifiEntry.isSaved()).thenReturn(true);
diff --git a/tests/spa_unit/src/com/android/settings/spa/app/AllAppListTest.kt b/tests/spa_unit/src/com/android/settings/spa/app/AllAppListTest.kt
index b5dfddc..2e7752e 100644
--- a/tests/spa_unit/src/com/android/settings/spa/app/AllAppListTest.kt
+++ b/tests/spa_unit/src/com/android/settings/spa/app/AllAppListTest.kt
@@ -147,6 +147,7 @@
         val listModel = AllAppListModel(context) { stateOf(SUMMARY) }
         val disabledApp = ApplicationInfo().apply {
             packageName = PACKAGE_NAME
+            flags = ApplicationInfo.FLAG_INSTALLED
             enabled = false
         }
 
@@ -159,6 +160,23 @@
         assertThat(summaryState.value).isEqualTo("$SUMMARY${System.lineSeparator()}Disabled")
     }
 
+    @Test
+    fun allAppListModel_getSummaryWhenNotInstalled() {
+        val listModel = AllAppListModel(context) { stateOf(SUMMARY) }
+        val notInstalledApp = ApplicationInfo().apply {
+            packageName = PACKAGE_NAME
+        }
+
+        lateinit var summaryState: State<String>
+        composeTestRule.setContent {
+            summaryState =
+                listModel.getSummary(option = 0, record = AppRecordWithSize(app = notInstalledApp))
+        }
+
+        assertThat(summaryState.value)
+            .isEqualTo("$SUMMARY${System.lineSeparator()}Not installed for this user")
+    }
+
     private fun getAppListInput(): AppListInput<AppRecordWithSize> {
         lateinit var input: AppListInput<AppRecordWithSize>
         composeTestRule.setContent {
@@ -192,6 +210,7 @@
         const val SUMMARY = "Summary"
         val APP = ApplicationInfo().apply {
             packageName = PACKAGE_NAME
+            flags = ApplicationInfo.FLAG_INSTALLED
         }
     }
 }
diff --git a/tests/spa_unit/src/com/android/settings/spa/app/appinfo/AppNotificationPreferenceTest.kt b/tests/spa_unit/src/com/android/settings/spa/app/appinfo/AppNotificationPreferenceTest.kt
index c54d35f..37f3a11 100644
--- a/tests/spa_unit/src/com/android/settings/spa/app/appinfo/AppNotificationPreferenceTest.kt
+++ b/tests/spa_unit/src/com/android/settings/spa/app/appinfo/AppNotificationPreferenceTest.kt
@@ -21,6 +21,7 @@
 import androidx.compose.runtime.CompositionLocalProvider
 import androidx.compose.ui.platform.LocalContext
 import androidx.compose.ui.test.assertIsDisplayed
+import androidx.compose.ui.test.assertIsNotEnabled
 import androidx.compose.ui.test.junit4.createComposeRule
 import androidx.compose.ui.test.onNodeWithText
 import androidx.compose.ui.test.onRoot
@@ -72,7 +73,7 @@
 
     @Test
     fun title_displayed() {
-        setContent()
+        setContent(APP)
 
         composeTestRule.onNodeWithText(context.getString(R.string.notifications_label))
             .assertIsDisplayed()
@@ -80,14 +81,25 @@
 
     @Test
     fun summary_displayed() {
-        setContent()
+        setContent(APP)
 
         composeTestRule.onNodeWithText(SUMMARY).assertIsDisplayed()
     }
 
     @Test
+    fun whenNotInstalled_disable() {
+        setContent(ApplicationInfo().apply {
+            packageName = PACKAGE_NAME
+            uid = UID
+        })
+
+        composeTestRule.onNodeWithText(context.getString(R.string.notifications_label))
+            .assertIsNotEnabled()
+    }
+
+    @Test
     fun onClick_startActivity() {
-        setContent()
+        setContent(APP)
 
         composeTestRule.onRoot().performClick()
         composeTestRule.delay()
@@ -102,10 +114,10 @@
         }
     }
 
-    private fun setContent() {
+    private fun setContent(app: ApplicationInfo) {
         composeTestRule.setContent {
             CompositionLocalProvider(LocalContext provides context) {
-                AppNotificationPreference(app = APP, repository = repository)
+                AppNotificationPreference(app = app, repository = repository)
             }
         }
     }
@@ -116,6 +128,7 @@
         val APP = ApplicationInfo().apply {
             packageName = PACKAGE_NAME
             uid = UID
+            flags = ApplicationInfo.FLAG_INSTALLED
         }
         const val SUMMARY = "Summary"
     }
diff --git a/tests/spa_unit/src/com/android/settings/spa/app/specialaccess/PictureInPictureTest.kt b/tests/spa_unit/src/com/android/settings/spa/app/specialaccess/PictureInPictureTest.kt
index 5e2b8c6..f90d639 100644
--- a/tests/spa_unit/src/com/android/settings/spa/app/specialaccess/PictureInPictureTest.kt
+++ b/tests/spa_unit/src/com/android/settings/spa/app/specialaccess/PictureInPictureTest.kt
@@ -167,6 +167,7 @@
         const val PICTURE_IN_PICTURE_PACKAGE_NAME = "picture.in.picture.package.name"
         val PICTURE_IN_PICTURE_APP = ApplicationInfo().apply {
             packageName = PICTURE_IN_PICTURE_PACKAGE_NAME
+            flags = ApplicationInfo.FLAG_INSTALLED
         }
         val PICTURE_IN_PICTURE_PACKAGE_INFO = PackageInfo().apply {
             packageName = PICTURE_IN_PICTURE_PACKAGE_NAME
diff --git a/tests/uitests/src/com/android/settings/biometrics2/ui/view/FingerprintEnrollmentActivityTest.java b/tests/uitests/src/com/android/settings/biometrics2/ui/view/FingerprintEnrollmentActivityTest.java
index cffc452..ae32651 100644
--- a/tests/uitests/src/com/android/settings/biometrics2/ui/view/FingerprintEnrollmentActivityTest.java
+++ b/tests/uitests/src/com/android/settings/biometrics2/ui/view/FingerprintEnrollmentActivityTest.java
@@ -33,6 +33,7 @@
 import android.support.test.uiautomator.UiObject2;
 import android.support.test.uiautomator.Until;
 
+import androidx.annotation.NonNull;
 import androidx.test.InstrumentationRegistry;
 import androidx.test.runner.AndroidJUnit4;
 
@@ -54,18 +55,25 @@
     private static final String SETTINGS_PACKAGE_NAME = "com.android.settings";
     private static final String ACTIVITY_CLASS_NAME =
             "com.android.settings.biometrics2.ui.view.FingerprintEnrollmentActivity";
-    public static final String EXTRA_IS_SETUP_FLOW = "isSetupFlow";
+    private static final String EXTRA_IS_SETUP_FLOW = "isSetupFlow";
+    private static final String EXTRA_SKIP_FIND_SENSOR = "skip_find_sensor";
     private static final String EXTRA_FROM_SETTINGS_SUMMARY = "from_settings_summary";
     private static final String EXTRA_PAGE_TRANSITION_TYPE = "page_transition_type";
     private static final String EXTRA_KEY_GK_PW_HANDLE = "gk_pw_handle";
     private static final String TEST_PIN = "1234";
 
+    private static final String UDFPS_ENROLLING_TITLE = "Touch & hold the fingerprint sensor";
+    private static final String SFPS_ENROLLING_TITLE =
+            "Lift, then touch. Move your finger slightly each time.";
+    private static final String RFPS_ENROLLING_TITLE = "Lift, then touch again";
+
     private UiDevice mDevice;
     private byte[] mToken = new byte[]{};
     private Context mContext;
     private boolean mFingerprintPropCallbackLaunched;
     private boolean mCanAssumeUdfps;
     private boolean mCanAssumeSfps;
+    private String mEnrollingTitle;
 
     private static final int IDLE_TIMEOUT = 10000;
 
@@ -94,6 +102,13 @@
                         final FingerprintSensorPropertiesInternal prop = list.get(0);
                         mCanAssumeUdfps = prop.isAnyUdfpsType();
                         mCanAssumeSfps = prop.isAnySidefpsType();
+                        if (mCanAssumeUdfps) {
+                            mEnrollingTitle = UDFPS_ENROLLING_TITLE;
+                        } else if (mCanAssumeSfps) {
+                            mEnrollingTitle = SFPS_ENROLLING_TITLE;
+                        } else {
+                            mEnrollingTitle = RFPS_ENROLLING_TITLE;
+                        }
                     }
                 });
 
@@ -106,8 +121,9 @@
     }
 
     @Test
-    public void testLaunchChooseLock() {
-        launchFingerprintEnrollActivity(false, null);
+    public void testIntroChooseLock() {
+        final Intent intent = newActivityIntent();
+        mContext.startActivity(intent);
         assertThat(mDevice.wait(Until.hasObject(By.text("Choose your backup screen lock method")),
                 IDLE_TIMEOUT)).isTrue();
     }
@@ -135,12 +151,12 @@
     }
 
     @Test
-    public void testLaunchWithGkPwHandle_withUdfps_clickStart() {
+    public void testIntroWithGkPwHandle_withUdfps_clickStart() {
         assumeTrue(mCanAssumeUdfps);
 
         LockScreenUtil.setLockscreen(LockScreenUtil.LockscreenType.PIN, TEST_PIN, true);
 
-        launchFingerprintEnrollActivityWithGkPwHandle(false);
+        launchIntroWithGkPwHandle(false);
 
         // Intro page
         verifyIntroPage();
@@ -159,17 +175,16 @@
         startBtn.click();
 
         // Enrolling page
-        assertThat(mDevice.wait(Until.hasObject(By.text("Touch & hold the fingerprint sensor")),
-                IDLE_TIMEOUT)).isTrue();
+        assertThat(mDevice.wait(Until.hasObject(By.text(mEnrollingTitle)), IDLE_TIMEOUT)).isTrue();
     }
 
     @Test
-    public void testLaunchWithGkPwHandle_withUdfps_clickLottie() {
+    public void testIntroWithGkPwHandle_withUdfps_clickLottie() {
         assumeTrue(mCanAssumeUdfps);
 
         LockScreenUtil.setLockscreen(LockScreenUtil.LockscreenType.PIN, TEST_PIN, true);
 
-        launchFingerprintEnrollActivityWithGkPwHandle(false);
+        launchIntroWithGkPwHandle(false);
 
         // Intro page
         verifyIntroPage();
@@ -188,17 +203,16 @@
         lottie.click();
 
         // Enrolling page
-        assertThat(mDevice.wait(Until.hasObject(By.text("Touch & hold the fingerprint sensor")),
-                IDLE_TIMEOUT)).isTrue();
+        assertThat(mDevice.wait(Until.hasObject(By.text(mEnrollingTitle)), IDLE_TIMEOUT)).isTrue();
     }
 
     @Test
-    public void testLaunchWithGkPwHandle_withSfps() {
+    public void testIntroWithGkPwHandle_withSfps() {
         assumeTrue(mCanAssumeSfps);
 
         LockScreenUtil.setLockscreen(LockScreenUtil.LockscreenType.PIN, TEST_PIN, true);
 
-        launchFingerprintEnrollActivityWithGkPwHandle(false);
+        launchIntroWithGkPwHandle(false);
 
         // Intro page
         verifyIntroPage();
@@ -216,12 +230,12 @@
     }
 
     @Test
-    public void testLaunchWithGkPwHandle_withRfps() {
+    public void testIntroWithGkPwHandle_withRfps() {
         assumeFalse(mCanAssumeUdfps || mCanAssumeSfps);
 
         LockScreenUtil.setLockscreen(LockScreenUtil.LockscreenType.PIN, TEST_PIN, true);
 
-        launchFingerprintEnrollActivityWithGkPwHandle(false);
+        launchIntroWithGkPwHandle(false);
 
         // Intro page
         verifyIntroPage();
@@ -241,10 +255,10 @@
     }
 
     @Test
-    public void testLaunchWithGkPwHandle_clickNoThanksInIntroPage() {
+    public void testIntroWithGkPwHandle_clickNoThanksInIntroPage() {
         LockScreenUtil.setLockscreen(LockScreenUtil.LockscreenType.PIN, TEST_PIN, true);
 
-        launchFingerprintEnrollActivityWithGkPwHandle(false);
+        launchIntroWithGkPwHandle(false);
 
         // Intro page
         verifyIntroPage();
@@ -258,10 +272,10 @@
     }
 
     @Test
-    public void testLaunchWithGkPwHandle_clickSkipInFindSensor() {
+    public void testIntroWithGkPwHandle_clickSkipInFindSensor() {
         LockScreenUtil.setLockscreen(LockScreenUtil.LockscreenType.PIN, TEST_PIN, true);
 
-        launchFingerprintEnrollActivityWithGkPwHandle(false);
+        launchIntroWithGkPwHandle(false);
 
         // Intro page
         verifyIntroPage();
@@ -282,10 +296,10 @@
     }
 
     @Test
-    public void testLaunchWithGkPwHandle_clickSkipAnywayInFindFpsDialog_whenIsSuw() {
+    public void testIntroWithGkPwHandle_clickSkipAnywayInFindFpsDialog_whenIsSuw() {
         LockScreenUtil.setLockscreen(LockScreenUtil.LockscreenType.PIN, TEST_PIN, true);
 
-        launchFingerprintEnrollActivityWithGkPwHandle(true);
+        launchIntroWithGkPwHandle(true);
 
         // Intro page
         verifyIntroPage();
@@ -315,10 +329,10 @@
     }
 
     @Test
-    public void testLaunchWithGkPwHandle_clickGoBackInFindFpsDialog_whenIsSuw() {
+    public void testIntroWithGkPwHandle_clickGoBackInFindFpsDialog_whenIsSuw() {
         LockScreenUtil.setLockscreen(LockScreenUtil.LockscreenType.PIN, TEST_PIN, true);
 
-        launchFingerprintEnrollActivityWithGkPwHandle(true);
+        launchIntroWithGkPwHandle(true);
 
         // Intro page
         verifyIntroPage();
@@ -346,43 +360,138 @@
     }
 
     @Test
-    public void testLaunchCheckPin() {
+    public void testIntroCheckPin() {
         LockScreenUtil.setLockscreen(LockScreenUtil.LockscreenType.PIN, TEST_PIN, true);
-        launchFingerprintEnrollActivity(false, null);
+        final Intent intent = newActivityIntent();
+        mContext.startActivity(intent);
         assertThat(mDevice.wait(Until.hasObject(By.text("Enter your device PIN to continue")),
                 IDLE_TIMEOUT)).isTrue();
     }
 
+    @Test
+    public void testEnrollingWithGkPwHandle() {
+        LockScreenUtil.setLockscreen(LockScreenUtil.LockscreenType.PIN, TEST_PIN, true);
+
+        launchEnrollingWithGkPwHandle();
+
+        // Enrolling screen
+        mDevice.waitForIdle();
+        assertThat(mDevice.wait(Until.hasObject(By.text(mEnrollingTitle)), IDLE_TIMEOUT)).isTrue();
+    }
+
+    @Test
+    public void testEnrollingIconTouchDialog_withSfps() {
+        assumeTrue(mCanAssumeSfps);
+
+        LockScreenUtil.setLockscreen(LockScreenUtil.LockscreenType.PIN, TEST_PIN, true);
+
+        launchEnrollingWithGkPwHandle();
+
+        // Enrolling screen
+        mDevice.waitForIdle();
+        assertThat(mDevice.wait(Until.hasObject(By.text(mEnrollingTitle)), IDLE_TIMEOUT)).isTrue();
+
+        final UiObject2 lottie = mDevice.findObject(By.res(SETTINGS_PACKAGE_NAME,
+                "illustration_lottie"));
+        assertThat(lottie).isNotNull();
+
+        lottie.click();
+        lottie.click();
+        lottie.click();
+
+        // IconTouchDialog
+        mDevice.waitForIdle();
+        assertThat(mDevice.wait(Until.hasObject(By.text("Touch the sensor instead")), IDLE_TIMEOUT))
+                .isTrue();
+        final UiObject2 okButton = mDevice.findObject(By.text("OK"));
+        assertThat(okButton).isNotNull();
+
+        okButton.click();
+
+        // Enrolling screen again
+        mDevice.waitForIdle();
+        assertThat(mDevice.wait(Until.hasObject(By.text(mEnrollingTitle)), IDLE_TIMEOUT)).isTrue();
+    }
+
+    @Test
+    public void testEnrollingIconTouchDialog_withRfps() {
+        assumeFalse(mCanAssumeUdfps || mCanAssumeSfps);
+
+        LockScreenUtil.setLockscreen(LockScreenUtil.LockscreenType.PIN, TEST_PIN, true);
+
+        launchEnrollingWithGkPwHandle();
+
+        // Enrolling screen
+        mDevice.waitForIdle();
+        assertThat(mDevice.wait(Until.hasObject(By.text(mEnrollingTitle)), IDLE_TIMEOUT)).isTrue();
+
+        final UiObject2 lottie = mDevice.findObject(By.res(SETTINGS_PACKAGE_NAME,
+                "fingerprint_progress_bar"));
+        assertThat(lottie).isNotNull();
+
+        lottie.click();
+        lottie.click();
+        lottie.click();
+
+        // IconTouchDialog
+        mDevice.waitForIdle();
+        assertThat(mDevice.wait(Until.hasObject(By.text("Whoops, that\u2019s not the sensor")),
+                IDLE_TIMEOUT)).isTrue();
+        final UiObject2 okButton = mDevice.findObject(By.text("OK"));
+        assertThat(okButton).isNotNull();
+
+        okButton.click();
+
+        // Enrolling screen again
+        mDevice.waitForIdle();
+        assertThat(mDevice.wait(Until.hasObject(By.text(mEnrollingTitle)), IDLE_TIMEOUT)).isTrue();
+    }
+
     @After
     public void tearDown() throws Exception {
         LockScreenUtil.resetLockscreen(TEST_PIN);
         mDevice.pressHome();
     }
 
-    private void launchFingerprintEnrollActivityWithGkPwHandle(boolean isSuw) {
+    private void launchIntroWithGkPwHandle(boolean isSuw) {
         LockPatternUtils lockPatternUtils = new LockPatternUtils(mContext);
         final LockscreenCredential lockscreenCredential = LockscreenCredential.createPin(TEST_PIN);
         final int userId = UserHandle.myUserId();
         final LockPatternChecker.OnVerifyCallback onVerifyCallback = (response, timeoutMs) -> {
-            launchFingerprintEnrollActivity(isSuw, response.getGatekeeperPasswordHandle());
+            final Intent intent = newActivityIntent();
+            if (isSuw) {
+                intent.putExtra(EXTRA_IS_SETUP_FLOW, true);
+            }
+            intent.putExtra(EXTRA_KEY_GK_PW_HANDLE, response.getGatekeeperPasswordHandle());
+            mContext.startActivity(intent);
         };
         LockPatternChecker.verifyCredential(lockPatternUtils, lockscreenCredential,
                 userId, LockPatternUtils.VERIFY_FLAG_REQUEST_GK_PW_HANDLE, onVerifyCallback);
     }
 
-    private void launchFingerprintEnrollActivity(boolean isSuw, Long gkPwHandle) {
+    private void launchEnrollingWithGkPwHandle() {
+        LockPatternUtils lockPatternUtils = new LockPatternUtils(mContext);
+        final LockscreenCredential lockscreenCredential = LockscreenCredential.createPin(TEST_PIN);
+        final int userId = UserHandle.myUserId();
+        final LockPatternChecker.OnVerifyCallback onVerifyCallback = (response, timeoutMs) -> {
+            final Intent intent = newActivityIntent();
+            intent.putExtra(EXTRA_SKIP_FIND_SENSOR, true);
+            intent.putExtra(EXTRA_KEY_GK_PW_HANDLE, response.getGatekeeperPasswordHandle());
+            mContext.startActivity(intent);
+        };
+        LockPatternChecker.verifyCredential(lockPatternUtils, lockscreenCredential,
+                userId, LockPatternUtils.VERIFY_FLAG_REQUEST_GK_PW_HANDLE, onVerifyCallback);
+    }
+
+    @NonNull
+    private Intent newActivityIntent() {
         Intent intent = new Intent();
         intent.setClassName(SETTINGS_PACKAGE_NAME, ACTIVITY_CLASS_NAME);
-        if (isSuw) {
-            intent.putExtra(EXTRA_IS_SETUP_FLOW, true);
-        }
         intent.putExtra(EXTRA_FROM_SETTINGS_SUMMARY, true);
         intent.putExtra(EXTRA_PAGE_TRANSITION_TYPE, 1);
         intent.putExtra(Intent.EXTRA_USER_ID, mContext.getUserId());
-        if (gkPwHandle != null) {
-            intent.putExtra(EXTRA_KEY_GK_PW_HANDLE, gkPwHandle);
-        }
         intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_NEW_TASK);
-        mContext.startActivity(intent);
+        return intent;
+
     }
 }
diff --git a/tests/unit/src/com/android/settings/biometrics/face/FaceSettingsEnrollButtonPreferenceControllerTest.java b/tests/unit/src/com/android/settings/biometrics/face/FaceSettingsEnrollButtonPreferenceControllerTest.java
new file mode 100644
index 0000000..6474561
--- /dev/null
+++ b/tests/unit/src/com/android/settings/biometrics/face/FaceSettingsEnrollButtonPreferenceControllerTest.java
@@ -0,0 +1,80 @@
+/*
+ * Copyright (C) 2023 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.settings.biometrics.face;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.Mockito.never;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
+
+import android.content.Context;
+import android.widget.Button;
+
+import androidx.test.ext.junit.runners.AndroidJUnit4;
+
+import org.junit.Before;
+import org.junit.Rule;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.Mock;
+import org.mockito.junit.MockitoJUnit;
+import org.mockito.junit.MockitoRule;
+
+@RunWith(AndroidJUnit4.class)
+public class FaceSettingsEnrollButtonPreferenceControllerTest {
+    @Rule
+    public final MockitoRule mMockitoRule = MockitoJUnit.rule();
+    @Mock
+    private Context mContext;
+    @Mock
+    private Button mButton;
+    @Mock
+    private FaceSettingsEnrollButtonPreferenceController.Listener mListener;
+
+    private FaceSettingsEnrollButtonPreferenceController mController;
+
+    @Before
+    public void setUp() {
+        mController = new FaceSettingsEnrollButtonPreferenceController(mContext);
+        mController.setListener(mListener);
+    }
+
+    @Test
+    public void isSliceable_returnFalse() {
+        assertThat(mController.isSliceable()).isFalse();
+    }
+
+    @Test
+    public void testOnClick_inFullScreen() {
+        when(mListener.checkInMultiWindowMode()).thenReturn(false);
+        mController.onClick(mButton);
+
+        assertThat(mController.isClicked()).isTrue();
+        verify(mListener).onStartEnrolling(any());
+    }
+
+    @Test
+    public void testOnClick_inMultiWindow() {
+        when(mListener.checkInMultiWindowMode()).thenReturn(true);
+        mController.onClick(mButton);
+
+        assertThat(mController.isClicked()).isFalse();
+        verify(mListener, never()).onStartEnrolling(any());
+    }
+}
diff --git a/tests/unit/src/com/android/settings/biometrics2/ui/viewmodel/FingerprintEnrollEnrollingViewModelTest.java b/tests/unit/src/com/android/settings/biometrics2/ui/viewmodel/FingerprintEnrollEnrollingViewModelTest.java
index 4de1057..fb0937e 100644
--- a/tests/unit/src/com/android/settings/biometrics2/ui/viewmodel/FingerprintEnrollEnrollingViewModelTest.java
+++ b/tests/unit/src/com/android/settings/biometrics2/ui/viewmodel/FingerprintEnrollEnrollingViewModelTest.java
@@ -21,7 +21,6 @@
 import static android.hardware.fingerprint.FingerprintSensorProperties.TYPE_UDFPS_ULTRASONIC;
 
 import static com.android.settings.biometrics2.ui.viewmodel.FingerprintEnrollEnrollingViewModel.ErrorDialogData;
-import static com.android.settings.biometrics2.ui.viewmodel.FingerprintEnrollEnrollingViewModel.FINGERPRINT_ENROLL_ENROLLING_ACTION_DISMISS_ICON_TOUCH_DIALOG;
 import static com.android.settings.biometrics2.ui.viewmodel.FingerprintEnrollEnrollingViewModel.FINGERPRINT_ENROLL_ENROLLING_ACTION_SHOW_ICON_TOUCH_DIALOG;
 import static com.android.settings.biometrics2.ui.viewmodel.FingerprintEnrollEnrollingViewModel.FINGERPRINT_ENROLL_ENROLLING_CANCELED_BECAUSE_BACK_PRESSED;
 import static com.android.settings.biometrics2.ui.viewmodel.FingerprintEnrollEnrollingViewModel.FINGERPRINT_ENROLL_ENROLLING_CANCELED_BECAUSE_USER_SKIP;
@@ -103,10 +102,6 @@
         mViewModel.showIconTouchDialog();
         assertThat(actionLiveData.getValue()).isEqualTo(
                 FINGERPRINT_ENROLL_ENROLLING_ACTION_SHOW_ICON_TOUCH_DIALOG);
-
-        mViewModel.onIconTouchDialogDismiss();
-        assertThat(actionLiveData.getValue()).isEqualTo(
-                FINGERPRINT_ENROLL_ENROLLING_ACTION_DISMISS_ICON_TOUCH_DIALOG);
     }
 
     @Test
diff --git a/tests/unit/src/com/android/settings/regionalpreferences/RegionalFooterPreferenceControllerTest.java b/tests/unit/src/com/android/settings/regionalpreferences/RegionalFooterPreferenceControllerTest.java
new file mode 100644
index 0000000..f019793
--- /dev/null
+++ b/tests/unit/src/com/android/settings/regionalpreferences/RegionalFooterPreferenceControllerTest.java
@@ -0,0 +1,62 @@
+/**
+ * Copyright (C) 2023 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.settings.regionalpreferences;
+
+import static org.mockito.Mockito.anyString;
+import static org.mockito.Mockito.verify;
+
+import android.content.Context;
+import android.os.Looper;
+
+import androidx.test.core.app.ApplicationProvider;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
+
+import com.android.settingslib.widget.FooterPreference;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.Mock;
+import org.mockito.MockitoAnnotations;
+
+@RunWith(AndroidJUnit4.class)
+public class RegionalFooterPreferenceControllerTest {
+
+    private static String KEY_FOOTER_PREFERENCE = "regional_pref_footer";
+    private Context mContext;
+    private RegionalFooterPreferenceController mRegionalFooterPreferenceController;
+
+    @Mock
+    private FooterPreference mMockFooterPreference;
+
+    @Before
+    public void setUp() {
+        MockitoAnnotations.initMocks(this);
+        if (Looper.myLooper() == null) {
+            Looper.prepare();
+        }
+        mContext = ApplicationProvider.getApplicationContext();
+        mRegionalFooterPreferenceController = new RegionalFooterPreferenceController(mContext,
+                KEY_FOOTER_PREFERENCE);
+    }
+
+    @Test
+    public void setupFooterPreference_shouldSetAsTextInLearnMore() {
+        mRegionalFooterPreferenceController.setupFooterPreference(mMockFooterPreference);
+        verify(mMockFooterPreference).setLearnMoreText(anyString());
+    }
+}
