Snap for 6921388 from 842e8b8860c3c7c1cf5a35a258623d8771a3ab13 to qt-aml-tzdata-release

Change-Id: Idd59a4e0fc150f62ded358cb91017a407c37e4eb
diff --git a/METADATA b/METADATA
new file mode 100644
index 0000000..d97975c
--- /dev/null
+++ b/METADATA
@@ -0,0 +1,3 @@
+third_party {
+  license_type: NOTICE
+}
diff --git a/NOTICE b/NOTICE
deleted file mode 100644
index d645695..0000000
--- a/NOTICE
+++ /dev/null
@@ -1,202 +0,0 @@
-
-                                 Apache License
-                           Version 2.0, January 2004
-                        http://www.apache.org/licenses/
-
-   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
-   1. Definitions.
-
-      "License" shall mean the terms and conditions for use, reproduction,
-      and distribution as defined by Sections 1 through 9 of this document.
-
-      "Licensor" shall mean the copyright owner or entity authorized by
-      the copyright owner that is granting the License.
-
-      "Legal Entity" shall mean the union of the acting entity and all
-      other entities that control, are controlled by, or are under common
-      control with that entity. For the purposes of this definition,
-      "control" means (i) the power, direct or indirect, to cause the
-      direction or management of such entity, whether by contract or
-      otherwise, or (ii) ownership of fifty percent (50%) or more of the
-      outstanding shares, or (iii) beneficial ownership of such entity.
-
-      "You" (or "Your") shall mean an individual or Legal Entity
-      exercising permissions granted by this License.
-
-      "Source" form shall mean the preferred form for making modifications,
-      including but not limited to software source code, documentation
-      source, and configuration files.
-
-      "Object" form shall mean any form resulting from mechanical
-      transformation or translation of a Source form, including but
-      not limited to compiled object code, generated documentation,
-      and conversions to other media types.
-
-      "Work" shall mean the work of authorship, whether in Source or
-      Object form, made available under the License, as indicated by a
-      copyright notice that is included in or attached to the work
-      (an example is provided in the Appendix below).
-
-      "Derivative Works" shall mean any work, whether in Source or Object
-      form, that is based on (or derived from) the Work and for which the
-      editorial revisions, annotations, elaborations, or other modifications
-      represent, as a whole, an original work of authorship. For the purposes
-      of this License, Derivative Works shall not include works that remain
-      separable from, or merely link (or bind by name) to the interfaces of,
-      the Work and Derivative Works thereof.
-
-      "Contribution" shall mean any work of authorship, including
-      the original version of the Work and any modifications or additions
-      to that Work or Derivative Works thereof, that is intentionally
-      submitted to Licensor for inclusion in the Work by the copyright owner
-      or by an individual or Legal Entity authorized to submit on behalf of
-      the copyright owner. For the purposes of this definition, "submitted"
-      means any form of electronic, verbal, or written communication sent
-      to the Licensor or its representatives, including but not limited to
-      communication on electronic mailing lists, source code control systems,
-      and issue tracking systems that are managed by, or on behalf of, the
-      Licensor for the purpose of discussing and improving the Work, but
-      excluding communication that is conspicuously marked or otherwise
-      designated in writing by the copyright owner as "Not a Contribution."
-
-      "Contributor" shall mean Licensor and any individual or Legal Entity
-      on behalf of whom a Contribution has been received by Licensor and
-      subsequently incorporated within the Work.
-
-   2. Grant of Copyright License. Subject to the terms and conditions of
-      this License, each Contributor hereby grants to You a perpetual,
-      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
-      copyright license to reproduce, prepare Derivative Works of,
-      publicly display, publicly perform, sublicense, and distribute the
-      Work and such Derivative Works in Source or Object form.
-
-   3. Grant of Patent License. Subject to the terms and conditions of
-      this License, each Contributor hereby grants to You a perpetual,
-      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
-      (except as stated in this section) patent license to make, have made,
-      use, offer to sell, sell, import, and otherwise transfer the Work,
-      where such license applies only to those patent claims licensable
-      by such Contributor that are necessarily infringed by their
-      Contribution(s) alone or by combination of their Contribution(s)
-      with the Work to which such Contribution(s) was submitted. If You
-      institute patent litigation against any entity (including a
-      cross-claim or counterclaim in a lawsuit) alleging that the Work
-      or a Contribution incorporated within the Work constitutes direct
-      or contributory patent infringement, then any patent licenses
-      granted to You under this License for that Work shall terminate
-      as of the date such litigation is filed.
-
-   4. Redistribution. You may reproduce and distribute copies of the
-      Work or Derivative Works thereof in any medium, with or without
-      modifications, and in Source or Object form, provided that You
-      meet the following conditions:
-
-      (a) You must give any other recipients of the Work or
-          Derivative Works a copy of this License; and
-
-      (b) You must cause any modified files to carry prominent notices
-          stating that You changed the files; and
-
-      (c) You must retain, in the Source form of any Derivative Works
-          that You distribute, all copyright, patent, trademark, and
-          attribution notices from the Source form of the Work,
-          excluding those notices that do not pertain to any part of
-          the Derivative Works; and
-
-      (d) If the Work includes a "NOTICE" text file as part of its
-          distribution, then any Derivative Works that You distribute must
-          include a readable copy of the attribution notices contained
-          within such NOTICE file, excluding those notices that do not
-          pertain to any part of the Derivative Works, in at least one
-          of the following places: within a NOTICE text file distributed
-          as part of the Derivative Works; within the Source form or
-          documentation, if provided along with the Derivative Works; or,
-          within a display generated by the Derivative Works, if and
-          wherever such third-party notices normally appear. The contents
-          of the NOTICE file are for informational purposes only and
-          do not modify the License. You may add Your own attribution
-          notices within Derivative Works that You distribute, alongside
-          or as an addendum to the NOTICE text from the Work, provided
-          that such additional attribution notices cannot be construed
-          as modifying the License.
-
-      You may add Your own copyright statement to Your modifications and
-      may provide additional or different license terms and conditions
-      for use, reproduction, or distribution of Your modifications, or
-      for any such Derivative Works as a whole, provided Your use,
-      reproduction, and distribution of the Work otherwise complies with
-      the conditions stated in this License.
-
-   5. Submission of Contributions. Unless You explicitly state otherwise,
-      any Contribution intentionally submitted for inclusion in the Work
-      by You to the Licensor shall be under the terms and conditions of
-      this License, without any additional terms or conditions.
-      Notwithstanding the above, nothing herein shall supersede or modify
-      the terms of any separate license agreement you may have executed
-      with Licensor regarding such Contributions.
-
-   6. Trademarks. This License does not grant permission to use the trade
-      names, trademarks, service marks, or product names of the Licensor,
-      except as required for reasonable and customary use in describing the
-      origin of the Work and reproducing the content of the NOTICE file.
-
-   7. Disclaimer of Warranty. Unless required by applicable law or
-      agreed to in writing, Licensor provides the Work (and each
-      Contributor provides its Contributions) on an "AS IS" BASIS,
-      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
-      implied, including, without limitation, any warranties or conditions
-      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
-      PARTICULAR PURPOSE. You are solely responsible for determining the
-      appropriateness of using or redistributing the Work and assume any
-      risks associated with Your exercise of permissions under this License.
-
-   8. Limitation of Liability. In no event and under no legal theory,
-      whether in tort (including negligence), contract, or otherwise,
-      unless required by applicable law (such as deliberate and grossly
-      negligent acts) or agreed to in writing, shall any Contributor be
-      liable to You for damages, including any direct, indirect, special,
-      incidental, or consequential damages of any character arising as a
-      result of this License or out of the use or inability to use the
-      Work (including but not limited to damages for loss of goodwill,
-      work stoppage, computer failure or malfunction, or any and all
-      other commercial damages or losses), even if such Contributor
-      has been advised of the possibility of such damages.
-
-   9. Accepting Warranty or Additional Liability. While redistributing
-      the Work or Derivative Works thereof, You may choose to offer,
-      and charge a fee for, acceptance of support, warranty, indemnity,
-      or other liability obligations and/or rights consistent with this
-      License. However, in accepting such obligations, You may act only
-      on Your own behalf and on Your sole responsibility, not on behalf
-      of any other Contributor, and only if You agree to indemnify,
-      defend, and hold each Contributor harmless for any liability
-      incurred by, or claims asserted against, such Contributor by reason
-      of your accepting any such warranty or additional liability.
-
-   END OF TERMS AND CONDITIONS
-
-   APPENDIX: How to apply the Apache License to your work.
-
-      To apply the Apache License to your work, attach the following
-      boilerplate notice, with the fields enclosed by brackets "[]"
-      replaced with your own identifying information. (Don't include
-      the brackets!)  The text should be enclosed in the appropriate
-      comment syntax for the file format. We also recommend that a
-      file or class name and description of purpose be included on the
-      same "printed page" as the copyright notice for easier
-      identification within third-party archives.
-
-   Copyright [yyyy] [name of copyright owner]
-
-   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.
diff --git a/OWNERS b/OWNERS
index 6394dc4..32e40bf 100644
--- a/OWNERS
+++ b/OWNERS
@@ -2,3 +2,5 @@
 # Please update this list if you find better candidates.
 alehmer@google.com
 spfetsch@google.com
+gkasten@google.com
+taikuo@google.com
diff --git a/android/WALT/WALT.iml b/android/WALT/WALT.iml
index 628d221..f8948c5 100644
--- a/android/WALT/WALT.iml
+++ b/android/WALT/WALT.iml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<module external.linked.project.id="WALT" external.linked.project.path="$MODULE_DIR$" external.root.project.path="$MODULE_DIR$" external.system.id="GRADLE" external.system.module.group="" external.system.module.version="unspecified" type="JAVA_MODULE" version="4">
+<module external.linked.project.id="WALT" external.linked.project.path="$MODULE_DIR$" external.root.project.path="$MODULE_DIR$" external.system.id="GRADLE" type="JAVA_MODULE" version="4">
   <component name="FacetManager">
     <facet type="java-gradle" name="Java-Gradle">
       <configuration>
diff --git a/android/WALT/app/build.gradle b/android/WALT/app/build.gradle
index 531142e..d3fd5ae 100644
--- a/android/WALT/app/build.gradle
+++ b/android/WALT/app/build.gradle
@@ -1,49 +1,54 @@
-apply plugin: 'com.android.model.application'
+apply plugin: 'com.android.application'
 
-model {
-    android {
-        compileSdkVersion 25
-        buildToolsVersion "25.0.2"
 
-        defaultConfig {
-            applicationId "org.chromium.latency.walt"
-            minSdkVersion.apiLevel 17
-            targetSdkVersion.apiLevel 23
-            versionCode 8
-            versionName "0.1.7"
-        }
-        ndk {
-            moduleName "sync_clock_jni"
-            CFlags.addAll "-I${project.rootDir}/app/src/main/jni".toString(), "-g", "-DUSE_LIBLOG", "-Werror"
-            ldLibs.addAll "OpenSLES", "log"
-        }
-        buildTypes {
-            release {
+android {
+    compileSdkVersion 29
+    buildToolsVersion '29.0.3'
+
+    defaultConfig {
+        applicationId "org.chromium.latency.walt"
+        minSdkVersion 21
+        targetSdkVersion 29
+        versionCode 9
+        versionName "0.1.9"
+    }
+
+    externalNativeBuild.ndkBuild {
+        path 'src/main/jni/Android.mk'
+    }
+
+    buildTypes {
+        release {
                 minifyEnabled false
-                proguardFiles.add(file("proguard-rules.pro"))
-            }
-            debug {
-                ndk {
-                    debuggable true
-                }
+        }
+        debug {
+            ndk {
+                debuggable true
             }
         }
     }
+
+    ndkVersion "21.0.6113669"
+
+    lintOptions {
+        abortOnError false
+    }
 }
 
 dependencies {
-    compile 'com.android.support:appcompat-v7:25.1.0'
-    compile 'com.android.support:design:25.1.0'
-    compile 'com.android.support:preference-v7:25.1.0'
-    compile 'com.android.support:preference-v14:25.1.0'
-    compile 'com.github.PhilJay:MPAndroidChart:v3.0.1'
-    testCompile 'junit:junit:4.12'
-    testCompile 'org.mockito:mockito-core:1.10.19'
-    testCompile ('org.powermock:powermock-api-mockito:1.6.2') {
+    implementation 'androidx.appcompat:appcompat:1.1.0'
+    implementation 'com.google.android.material:material:1.1.0'
+    implementation 'androidx.preference:preference:1.1.1'
+    implementation 'androidx.legacy:legacy-preference-v14:1.0.0'
+    implementation 'com.github.PhilJay:MPAndroidChart:v3.0.1'
+    implementation 'androidx.localbroadcastmanager:localbroadcastmanager:1.0.0'
+    testImplementation 'junit:junit:4.13'
+    testImplementation 'org.mockito:mockito-core:1.10.19'
+    testImplementation ('org.powermock:powermock-api-mockito:1.6.6') {
         exclude module: 'hamcrest-core'
         exclude module: 'objenesis'
     }
-    testCompile ('org.powermock:powermock-module-junit4:1.6.2') {
+    testImplementation ('org.powermock:powermock-module-junit4:1.6.6') {
         exclude module: 'hamcrest-core'
         exclude module: 'objenesis'
     }
diff --git a/android/WALT/app/src/main/AndroidManifest.xml b/android/WALT/app/src/main/AndroidManifest.xml
index 869b5e8..992d368 100644
--- a/android/WALT/app/src/main/AndroidManifest.xml
+++ b/android/WALT/app/src/main/AndroidManifest.xml
@@ -1,5 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:tools="http://schemas.android.com/tools"
     package="org.chromium.latency.walt">
 
     <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
@@ -9,9 +10,12 @@
 
     <application
         android:allowBackup="true"
+        android:supportsRtl="true"
+        android:fullBackupContent="@xml/backup_rules"
         android:icon="@mipmap/ic_launcher"
         android:label="@string/app_name"
-        android:theme="@style/AppTheme">
+        android:theme="@style/AppTheme"
+        tools:ignore="LockedOrientationActivity">
         <activity
             android:name="org.chromium.latency.walt.MainActivity"
             android:label="@string/app_name"
diff --git a/android/WALT/app/src/main/java/org/chromium/latency/walt/AboutFragment.java b/android/WALT/app/src/main/java/org/chromium/latency/walt/AboutFragment.java
index 08b4e4f..2dce815 100644
--- a/android/WALT/app/src/main/java/org/chromium/latency/walt/AboutFragment.java
+++ b/android/WALT/app/src/main/java/org/chromium/latency/walt/AboutFragment.java
@@ -19,11 +19,13 @@
 
 import android.os.Build;
 import android.os.Bundle;
-import android.support.v4.app.Fragment;
 import android.view.LayoutInflater;
 import android.view.View;
 import android.view.ViewGroup;
 import android.widget.TextView;
+import java.util.Locale;
+
+import androidx.fragment.app.Fragment;
 
 
 /**
@@ -46,7 +48,7 @@
     public void onResume() {
         super.onResume();
         TextView textView = (TextView) getActivity().findViewById(R.id.txt_build_info);
-        String text = String.format("WALT v%s  (versionCode=%d)\n",
+        String text = String.format(Locale.US, "WALT v%s  (versionCode=%d)\n",
                 BuildConfig.VERSION_NAME, BuildConfig.VERSION_CODE);
         text += "WALT protocol version: " + WaltDevice.PROTOCOL_VERSION + "\n";
         text += "Android Build ID: " + Build.DISPLAY + "\n";
diff --git a/android/WALT/app/src/main/java/org/chromium/latency/walt/AccelerometerFragment.java b/android/WALT/app/src/main/java/org/chromium/latency/walt/AccelerometerFragment.java
new file mode 100644
index 0000000..4f39547
--- /dev/null
+++ b/android/WALT/app/src/main/java/org/chromium/latency/walt/AccelerometerFragment.java
@@ -0,0 +1,379 @@
+/*
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.chromium.latency.walt;
+
+import static org.chromium.latency.walt.Utils.argmax;
+import static org.chromium.latency.walt.Utils.interp;
+import static org.chromium.latency.walt.Utils.max;
+import static org.chromium.latency.walt.Utils.mean;
+import static org.chromium.latency.walt.Utils.min;
+
+import android.content.BroadcastReceiver;
+import android.content.Context;
+import android.content.Intent;
+import android.graphics.Color;
+import android.hardware.Sensor;
+import android.hardware.SensorEvent;
+import android.hardware.SensorEventListener;
+import android.hardware.SensorManager;
+import android.os.Bundle;
+import android.os.Handler;
+import android.os.SystemClock;
+import android.text.method.ScrollingMovementMethod;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.TextView;
+import android.widget.Toast;
+
+import androidx.fragment.app.Fragment;
+
+import com.github.mikephil.charting.charts.ScatterChart;
+import com.github.mikephil.charting.components.Description;
+import com.github.mikephil.charting.data.Entry;
+import com.github.mikephil.charting.data.ScatterData;
+import com.github.mikephil.charting.data.ScatterDataSet;
+
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Locale;
+
+public class AccelerometerFragment extends Fragment implements
+        View.OnClickListener, SensorEventListener {
+
+    private static final int MAX_TEST_LENGTH_MS = 10000;
+    private SimpleLogger logger;
+    private WaltDevice waltDevice;
+    private TextView logTextView;
+    private View startButton;
+    private ScatterChart latencyChart;
+    private View latencyChartLayout;
+    private StringBuilder accelerometerData;
+    private List<AccelerometerEvent> phoneAccelerometerData = new ArrayList<>();
+    private Handler handler = new Handler();
+    private SensorManager sensorManager;
+    private Sensor accelerometer;
+    private double realTimeOffsetMs;
+    private boolean isTestRunning = false;
+
+    Runnable finishAccelerometer = new Runnable() {
+        @Override
+        public void run() {
+            isTestRunning = false;
+            waltDevice.stopListener();
+            waltDevice.clearTriggerHandler();
+            calculateAndDrawLatencyChart(accelerometerData.toString());
+            startButton.setEnabled(true);
+            accelerometerData = new StringBuilder();
+            LogUploader.uploadIfAutoEnabled(getContext());
+        }
+    };
+
+    private BroadcastReceiver logReceiver = new BroadcastReceiver() {
+        @Override
+        public void onReceive(Context context, Intent intent) {
+            String msg = intent.getStringExtra("message");
+            AccelerometerFragment.this.appendLogText(msg);
+        }
+    };
+
+    private WaltDevice.TriggerHandler triggerHandler = new WaltDevice.TriggerHandler() {
+        @Override
+        public void onReceive(WaltDevice.TriggerMessage tmsg) {
+            logger.log("ERROR: Accelerometer trigger got a trigger message, " +
+                    "this should never happen.");
+        }
+
+        @Override
+        public void onReceiveRaw(String s) {
+            if (s.trim().equals("end")) {
+                // Remove the delayed callback and run it now
+                handler.removeCallbacks(finishAccelerometer);
+                handler.post(finishAccelerometer);
+            } else {
+                accelerometerData.append(s);
+            }
+        }
+    };
+
+    Runnable startAccelerometer = new Runnable() {
+        @Override
+        public void run() {
+            waltDevice.setTriggerHandler(triggerHandler);
+            try {
+                waltDevice.command(WaltDevice.CMD_ACCELEROMETER);
+            } catch (IOException e) {
+                logger.log("Error sending command CMD_ACCELEROMETER: " + e.getMessage());
+                startButton.setEnabled(true);
+                return;
+            }
+
+            logger.log("=== Accelerometer Test ===\n");
+            isTestRunning = true;
+            handler.postDelayed(finishAccelerometer, MAX_TEST_LENGTH_MS);
+        }
+    };
+
+    public AccelerometerFragment() {
+        // Required empty public constructor
+    }
+
+    static List<Entry> getEntriesFromString(final String latencyString) {
+        List<Entry> entries = new ArrayList<>();
+        // "o" marks the start of the accelerometer data
+        int startIndex = latencyString.indexOf("o") + 1;
+
+        String[] brightnessStrings =
+                latencyString.substring(startIndex).trim().split("\n");
+        for (String str : brightnessStrings) {
+            String[] arr = str.split(" ");
+            final float timestampMs = Integer.parseInt(arr[0]) / 1000f;
+            final float value = Integer.parseInt(arr[1]);
+            entries.add(new Entry(timestampMs, value));
+        }
+        return entries;
+    }
+
+    static List<Entry> smoothEntries(List<Entry> entries, int windowSize) {
+        List<Entry> smoothEntries = new ArrayList<>();
+        for (int i = windowSize; i < entries.size() - windowSize; i++) {
+            final float time = entries.get(i).getX();
+            float avg = 0;
+            for (int j = i - windowSize; j <= i + windowSize; j++) {
+                avg += entries.get(j).getY() / (2 * windowSize + 1);
+            }
+            smoothEntries.add(new Entry(time, avg));
+        }
+        return smoothEntries;
+    }
+
+    static double[] findShifts(List<Entry> phoneEntries, List<Entry> waltEntries) {
+        double[] phoneTimes = new double[phoneEntries.size()];
+        double[] phoneValues = new double[phoneEntries.size()];
+        double[] waltTimes = new double[waltEntries.size()];
+        double[] waltValues = new double[waltEntries.size()];
+
+        for (int i = 0; i < phoneTimes.length; i++) {
+            phoneTimes[i] = phoneEntries.get(i).getX();
+            phoneValues[i] = phoneEntries.get(i).getY();
+        }
+
+        for (int i = 0; i < waltTimes.length; i++) {
+            waltTimes[i] = waltEntries.get(i).getX();
+            waltValues[i] = waltEntries.get(i).getY();
+        }
+
+        double[] shiftCorrelations = new double[401];
+        for (int i = 0; i < shiftCorrelations.length; i++) {
+            double shift = i / 10.;
+            final double[] shiftedPhoneTimes = new double[phoneTimes.length];
+            for (int j = 0; j < phoneTimes.length; j++) {
+                shiftedPhoneTimes[j] = phoneTimes[j] - shift;
+            }
+            final double[] interpolatedValues = interp(shiftedPhoneTimes, waltTimes, waltValues);
+            double sum = 0;
+            for (int j = 0; j < shiftedPhoneTimes.length; j++) {
+                // Calculate square dot product of phone and walt values
+                sum += Math.pow(phoneValues[j] * interpolatedValues[j], 2);
+            }
+            shiftCorrelations[i] = sum;
+        }
+        return shiftCorrelations;
+    }
+
+    @Override
+    public View onCreateView(LayoutInflater inflater, ViewGroup container,
+                             Bundle savedInstanceState) {
+        logger = SimpleLogger.getInstance(getContext());
+        waltDevice = WaltDevice.getInstance(getContext());
+
+        // Inflate the layout for this fragment
+        final View view = inflater.inflate(R.layout.fragment_accelerometer, container, false);
+        logTextView = (TextView) view.findViewById(R.id.txt_log);
+        startButton = view.findViewById(R.id.button_start);
+        latencyChart = (ScatterChart) view.findViewById(R.id.latency_chart);
+        latencyChartLayout = view.findViewById(R.id.latency_chart_layout);
+        logTextView.setMovementMethod(new ScrollingMovementMethod());
+        view.findViewById(R.id.button_close_chart).setOnClickListener(this);
+        sensorManager = (SensorManager) getContext().getSystemService(Context.SENSOR_SERVICE);
+        accelerometer = sensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER);
+        if (accelerometer == null) {
+            logger.log("ERROR! Accelerometer sensor not found");
+        }
+        return view;
+    }
+
+    @Override
+    public void onResume() {
+        super.onResume();
+        logTextView.setText(logger.getLogText());
+        logger.registerReceiver(logReceiver);
+        startButton.setOnClickListener(this);
+        sensorManager.registerListener(
+                AccelerometerFragment.this, accelerometer, SensorManager.SENSOR_DELAY_FASTEST);
+    }
+
+    @Override
+    public void onPause() {
+        logger.unregisterReceiver(logReceiver);
+        sensorManager.unregisterListener(AccelerometerFragment.this, accelerometer);
+        super.onPause();
+    }
+
+    public void appendLogText(String msg) {
+        logTextView.append(msg + "\n");
+    }
+
+    void startMeasurement() {
+        logger.log("Starting accelerometer latency measurement");
+        try {
+            accelerometerData = new StringBuilder();
+            phoneAccelerometerData.clear();
+            waltDevice.syncClock();
+            waltDevice.startListener();
+            realTimeOffsetMs =
+                    SystemClock.elapsedRealtimeNanos() / 1e6 - waltDevice.clock.micros() / 1e3;
+        } catch (IOException e) {
+            logger.log("Error syncing clocks: " + e.getMessage());
+            startButton.setEnabled(true);
+            return;
+        }
+        Toast.makeText(getContext(), "Start shaking the phone and WALT!", Toast.LENGTH_LONG).show();
+        handler.postDelayed(startAccelerometer, 500);
+    }
+
+    /**
+     * Handler for all the button clicks on this screen.
+     */
+    @Override
+    public void onClick(View v) {
+        if (v.getId() == R.id.button_start) {
+            latencyChartLayout.setVisibility(View.GONE);
+            startButton.setEnabled(false);
+            startMeasurement();
+            return;
+        }
+
+        if (v.getId() == R.id.button_close_chart) {
+            latencyChartLayout.setVisibility(View.GONE);
+        }
+    }
+
+    private void calculateAndDrawLatencyChart(final String latencyString) {
+        List<Entry> phoneEntries = new ArrayList<>();
+        List<Entry> waltEntries = getEntriesFromString(latencyString);
+        List<Entry> waltSmoothEntries = smoothEntries(waltEntries, 4);
+
+        for (AccelerometerEvent e : phoneAccelerometerData) {
+            phoneEntries.add(new Entry(e.callbackTimeMs, e.value));
+        }
+
+        while (phoneEntries.get(0).getX() < waltSmoothEntries.get(0).getX()) {
+            // This event is earlier than any walt event, so discard it
+            phoneEntries.remove(0);
+        }
+
+        while (phoneEntries.get(phoneEntries.size() - 1).getX() >
+                waltSmoothEntries.get(waltSmoothEntries.size() - 1).getX()) {
+            // This event is later than any walt event, so discard it
+            phoneEntries.remove(phoneEntries.size() - 1);
+        }
+
+        // Adjust waltEntries so min and max is the same as phoneEntries
+        float phoneMean = mean(phoneEntries);
+        float phoneMax = max(phoneEntries);
+        float phoneMin = min(phoneEntries);
+        float waltMin = min(waltSmoothEntries);
+        float phoneRange = phoneMax - phoneMin;
+        float waltRange = max(waltSmoothEntries) - waltMin;
+        for (Entry e : waltSmoothEntries) {
+            e.setY((e.getY() - waltMin) * (phoneRange / waltRange) + phoneMin - phoneMean);
+        }
+
+        // Adjust phoneEntries so mean=0
+        for (Entry e : phoneEntries) {
+            e.setY(e.getY() - phoneMean);
+        }
+
+        double[] shifts = findShifts(phoneEntries, waltSmoothEntries);
+        double bestShift = argmax(shifts) / 10d;
+        logger.log(String.format(Locale.US, "Accelerometer latency: %.1fms", bestShift));
+
+        double[] deltasKernelToCallback = new double[phoneAccelerometerData.size()];
+        for (int i = 0; i < deltasKernelToCallback.length; i++) {
+            deltasKernelToCallback[i] = phoneAccelerometerData.get(i).callbackTimeMs -
+                    phoneAccelerometerData.get(i).kernelTimeMs;
+        }
+
+        logger.log(String.format(
+            Locale.US, "Mean kernel-to-callback latency: %.1fms", mean(deltasKernelToCallback)));
+
+        List<Entry> phoneEntriesShifted = new ArrayList<>();
+        for (Entry e : phoneEntries) {
+            phoneEntriesShifted.add(new Entry((float) (e.getX() - bestShift), e.getY()));
+        }
+
+        drawLatencyChart(phoneEntriesShifted, waltSmoothEntries);
+    }
+
+    private void drawLatencyChart(List<Entry> phoneEntriesShifted, List<Entry> waltEntries) {
+        final ScatterDataSet dataSetWalt =
+                new ScatterDataSet(waltEntries, "WALT Events");
+        dataSetWalt.setColor(Color.BLUE);
+        dataSetWalt.setScatterShape(ScatterChart.ScatterShape.CIRCLE);
+        dataSetWalt.setScatterShapeSize(8f);
+
+        final ScatterDataSet dataSetPhoneShifted =
+                new ScatterDataSet(phoneEntriesShifted, "Phone Events Shifted");
+        dataSetPhoneShifted.setColor(Color.RED);
+        dataSetPhoneShifted.setScatterShapeSize(10f);
+        dataSetPhoneShifted.setScatterShape(ScatterChart.ScatterShape.X);
+
+        final ScatterData scatterData = new ScatterData(dataSetWalt, dataSetPhoneShifted);
+        final Description desc = new Description();
+        desc.setText("");
+        desc.setTextSize(12f);
+        latencyChart.setDescription(desc);
+        latencyChart.setData(scatterData);
+        latencyChart.invalidate();
+        latencyChartLayout.setVisibility(View.VISIBLE);
+    }
+
+    @Override
+    public void onSensorChanged(SensorEvent event) {
+        if (isTestRunning) {
+            phoneAccelerometerData.add(new AccelerometerEvent(event));
+        }
+    }
+
+    @Override
+    public void onAccuracyChanged(Sensor sensor, int accuracy) {
+    }
+
+    private class AccelerometerEvent {
+        float callbackTimeMs;
+        float kernelTimeMs;
+        float value;
+
+        AccelerometerEvent(SensorEvent event) {
+            callbackTimeMs = waltDevice.clock.micros() / 1e3f;
+            kernelTimeMs = (float) (event.timestamp / 1e6f - realTimeOffsetMs);
+            value = event.values[2];
+        }
+    }
+}
diff --git a/android/WALT/app/src/main/java/org/chromium/latency/walt/AudioFragment.java b/android/WALT/app/src/main/java/org/chromium/latency/walt/AudioFragment.java
index 65452ff..3db3723 100644
--- a/android/WALT/app/src/main/java/org/chromium/latency/walt/AudioFragment.java
+++ b/android/WALT/app/src/main/java/org/chromium/latency/walt/AudioFragment.java
@@ -16,6 +16,8 @@
 
 package org.chromium.latency.walt;
 
+import static org.chromium.latency.walt.Utils.getIntPreference;
+
 import android.Manifest;
 import android.content.BroadcastReceiver;
 import android.content.Context;
@@ -24,8 +26,6 @@
 import android.graphics.Color;
 import android.media.AudioManager;
 import android.os.Bundle;
-import android.support.v4.app.Fragment;
-import android.support.v4.content.ContextCompat;
 import android.text.method.ScrollingMovementMethod;
 import android.view.LayoutInflater;
 import android.view.View;
@@ -34,6 +34,9 @@
 import android.widget.Spinner;
 import android.widget.TextView;
 
+import androidx.core.content.ContextCompat;
+import androidx.fragment.app.Fragment;
+
 import com.github.mikephil.charting.charts.LineChart;
 import com.github.mikephil.charting.components.Description;
 import com.github.mikephil.charting.components.LimitLine;
@@ -45,8 +48,6 @@
 import java.util.List;
 import java.util.Locale;
 
-import static org.chromium.latency.walt.Utils.getIntPreference;
-
 /**
  * A simple {@link Fragment} subclass.
  */
diff --git a/android/WALT/app/src/main/java/org/chromium/latency/walt/AutoRunFragment.java b/android/WALT/app/src/main/java/org/chromium/latency/walt/AutoRunFragment.java
index f2f2a7f..71f5979 100644
--- a/android/WALT/app/src/main/java/org/chromium/latency/walt/AutoRunFragment.java
+++ b/android/WALT/app/src/main/java/org/chromium/latency/walt/AutoRunFragment.java
@@ -21,14 +21,15 @@
 import android.content.Intent;
 import android.os.Bundle;
 import android.os.Handler;
-import android.support.annotation.NonNull;
-import android.support.v4.app.Fragment;
 import android.text.method.ScrollingMovementMethod;
 import android.view.LayoutInflater;
 import android.view.View;
 import android.view.ViewGroup;
 import android.widget.TextView;
 
+import androidx.annotation.NonNull;
+import androidx.fragment.app.Fragment;
+
 import java.io.FileWriter;
 import java.io.IOException;
 import java.util.Iterator;
diff --git a/android/WALT/app/src/main/java/org/chromium/latency/walt/BaseUsbConnection.java b/android/WALT/app/src/main/java/org/chromium/latency/walt/BaseUsbConnection.java
index f0e6c62..4726d12 100644
--- a/android/WALT/app/src/main/java/org/chromium/latency/walt/BaseUsbConnection.java
+++ b/android/WALT/app/src/main/java/org/chromium/latency/walt/BaseUsbConnection.java
@@ -24,7 +24,8 @@
 import android.hardware.usb.UsbDevice;
 import android.hardware.usb.UsbDeviceConnection;
 import android.hardware.usb.UsbManager;
-import android.support.v4.content.LocalBroadcastManager;
+
+import androidx.localbroadcastmanager.content.LocalBroadcastManager;
 
 import java.util.HashMap;
 import java.util.Locale;
@@ -44,7 +45,7 @@
     protected UsbDeviceConnection usbConnection;
 
     public BaseUsbConnection(Context context) {
-        this.context = context;
+        this.context = context.getApplicationContext();
         usbManager = (UsbManager) this.context.getSystemService(Context.USB_SERVICE);
         logger = SimpleLogger.getInstance(context);
         broadcastManager = LocalBroadcastManager.getInstance(context);
@@ -184,7 +185,8 @@
 
     public UsbDevice findUsbDevice() {
 
-        logger.log(String.format("Looking for TeensyUSB VID=0x%x PID=0x%x", getVid(), getPid()));
+        logger.log(String.format(Locale.US,
+            "Looking for TeensyUSB VID=0x%x PID=0x%x", getVid(), getPid()));
 
         HashMap<String, UsbDevice> deviceHash = usbManager.getDeviceList();
         if (deviceHash.size() == 0) {
diff --git a/android/WALT/app/src/main/java/org/chromium/latency/walt/CrashLogActivity.java b/android/WALT/app/src/main/java/org/chromium/latency/walt/CrashLogActivity.java
index 00e80ed..f2ce3d1 100644
--- a/android/WALT/app/src/main/java/org/chromium/latency/walt/CrashLogActivity.java
+++ b/android/WALT/app/src/main/java/org/chromium/latency/walt/CrashLogActivity.java
@@ -17,10 +17,11 @@
 package org.chromium.latency.walt;
 
 import android.os.Bundle;
-import android.support.v7.app.AppCompatActivity;
 import android.text.method.ScrollingMovementMethod;
 import android.widget.TextView;
 
+import androidx.appcompat.app.AppCompatActivity;
+
 
 /**
  * A separate activity to display exception trace on the screen in case of a crash.
diff --git a/android/WALT/app/src/main/java/org/chromium/latency/walt/DiagnosticsFragment.java b/android/WALT/app/src/main/java/org/chromium/latency/walt/DiagnosticsFragment.java
index 65ec3bf..17b0f2f 100644
--- a/android/WALT/app/src/main/java/org/chromium/latency/walt/DiagnosticsFragment.java
+++ b/android/WALT/app/src/main/java/org/chromium/latency/walt/DiagnosticsFragment.java
@@ -21,13 +21,14 @@
 import android.content.Context;
 import android.content.Intent;
 import android.os.Bundle;
-import android.support.v4.app.Fragment;
 import android.text.method.ScrollingMovementMethod;
 import android.view.LayoutInflater;
 import android.view.View;
 import android.view.ViewGroup;
 import android.widget.TextView;
 
+import androidx.fragment.app.Fragment;
+
 
 /**
  * This screen allows to perform different tasks useful for diagnostics.
diff --git a/android/WALT/app/src/main/java/org/chromium/latency/walt/DragLatencyFragment.java b/android/WALT/app/src/main/java/org/chromium/latency/walt/DragLatencyFragment.java
index af03e36..9453c04 100644
--- a/android/WALT/app/src/main/java/org/chromium/latency/walt/DragLatencyFragment.java
+++ b/android/WALT/app/src/main/java/org/chromium/latency/walt/DragLatencyFragment.java
@@ -16,12 +16,12 @@
 
 package org.chromium.latency.walt;
 
+import android.annotation.SuppressLint;
 import android.content.BroadcastReceiver;
 import android.content.Context;
 import android.content.Intent;
 import android.graphics.Color;
 import android.os.Bundle;
-import android.support.v4.app.Fragment;
 import android.text.method.ScrollingMovementMethod;
 import android.view.LayoutInflater;
 import android.view.MotionEvent;
@@ -29,6 +29,8 @@
 import android.view.ViewGroup;
 import android.widget.TextView;
 
+import androidx.fragment.app.Fragment;
+
 import com.github.mikephil.charting.charts.ScatterChart;
 import com.github.mikephil.charting.components.Description;
 import com.github.mikephil.charting.data.Entry;
@@ -67,6 +69,7 @@
         }
     };
 
+    @SuppressLint("ClickableViewAccessibility")
     private View.OnTouchListener touchListener = new View.OnTouchListener() {
         @Override
         public boolean onTouch(View v, MotionEvent event) {
@@ -143,6 +146,7 @@
     /**
      * @return true if measurement was successfully started
      */
+    @SuppressLint("ClickableViewAccessibility")
     boolean startMeasurement() {
         logger.log("Starting drag latency test");
         try {
@@ -185,6 +189,7 @@
         updateCountsDisplay();
     }
 
+    @SuppressLint("ClickableViewAccessibility")
     void finishAndShowStats() {
         touchCatcher.stopAnimation();
         waltDevice.stopListener();
diff --git a/android/WALT/app/src/main/java/org/chromium/latency/walt/FastPathSurfaceView.java b/android/WALT/app/src/main/java/org/chromium/latency/walt/FastPathSurfaceView.java
index 449627f..0c5ad59 100644
--- a/android/WALT/app/src/main/java/org/chromium/latency/walt/FastPathSurfaceView.java
+++ b/android/WALT/app/src/main/java/org/chromium/latency/walt/FastPathSurfaceView.java
@@ -22,13 +22,14 @@
 import android.graphics.Paint;
 import android.graphics.Rect;
 import android.os.Build;
-import android.support.annotation.RequiresApi;
 import android.util.AttributeSet;
 import android.view.Surface;
 import android.view.SurfaceHolder;
 import android.view.SurfaceView;
 import android.widget.Toast;
 
+import androidx.annotation.RequiresApi;
+
 import java.lang.reflect.InvocationTargetException;
 import java.lang.reflect.Method;
 
diff --git a/android/WALT/app/src/main/java/org/chromium/latency/walt/FrontPageFragment.java b/android/WALT/app/src/main/java/org/chromium/latency/walt/FrontPageFragment.java
index cb125e3..84fbbbe 100644
--- a/android/WALT/app/src/main/java/org/chromium/latency/walt/FrontPageFragment.java
+++ b/android/WALT/app/src/main/java/org/chromium/latency/walt/FrontPageFragment.java
@@ -18,13 +18,14 @@
 
 import android.graphics.Color;
 import android.os.Bundle;
-import android.support.v4.app.Fragment;
 import android.view.LayoutInflater;
 import android.view.View;
 import android.view.ViewGroup;
 import android.widget.ImageView;
 import android.widget.TextView;
 
+import androidx.fragment.app.Fragment;
+
 
 /**
  * A simple {@link Fragment} subclass.
diff --git a/android/WALT/app/src/main/java/org/chromium/latency/walt/LogFragment.java b/android/WALT/app/src/main/java/org/chromium/latency/walt/LogFragment.java
index 069d032..1e26b32 100644
--- a/android/WALT/app/src/main/java/org/chromium/latency/walt/LogFragment.java
+++ b/android/WALT/app/src/main/java/org/chromium/latency/walt/LogFragment.java
@@ -17,25 +17,26 @@
 package org.chromium.latency.walt;
 
 
-import android.app.Activity;
 import android.content.BroadcastReceiver;
 import android.content.Context;
 import android.content.Intent;
 import android.os.Bundle;
-import android.support.v4.app.Fragment;
 import android.text.method.ScrollingMovementMethod;
 import android.view.LayoutInflater;
 import android.view.View;
 import android.view.ViewGroup;
 import android.widget.TextView;
 
+import androidx.appcompat.app.AppCompatActivity;
+import androidx.fragment.app.Fragment;
+
 
 /**
  * A screen that shows the log.
  */
 public class LogFragment extends Fragment {
 
-    private Activity activity;
+    private AppCompatActivity activity;
     private SimpleLogger logger;
     TextView textView;
 
@@ -56,7 +57,7 @@
     @Override
     public View onCreateView(LayoutInflater inflater, ViewGroup container,
                              Bundle savedInstanceState) {
-        activity = getActivity();
+        activity = (AppCompatActivity) getActivity();
         logger = SimpleLogger.getInstance(getContext());
         // Inflate the layout for this fragment
         return inflater.inflate(R.layout.fragment_log, container, false);
diff --git a/android/WALT/app/src/main/java/org/chromium/latency/walt/LogUploader.java b/android/WALT/app/src/main/java/org/chromium/latency/walt/LogUploader.java
index a73f456..aa10f74 100644
--- a/android/WALT/app/src/main/java/org/chromium/latency/walt/LogUploader.java
+++ b/android/WALT/app/src/main/java/org/chromium/latency/walt/LogUploader.java
@@ -17,7 +17,8 @@
 package org.chromium.latency.walt;
 
 import android.content.Context;
-import android.support.v4.content.AsyncTaskLoader;
+
+import androidx.loader.content.AsyncTaskLoader;
 
 import java.io.BufferedOutputStream;
 import java.io.IOException;
diff --git a/android/WALT/app/src/main/java/org/chromium/latency/walt/MainActivity.java b/android/WALT/app/src/main/java/org/chromium/latency/walt/MainActivity.java
index ac1df47..81a637b 100644
--- a/android/WALT/app/src/main/java/org/chromium/latency/walt/MainActivity.java
+++ b/android/WALT/app/src/main/java/org/chromium/latency/walt/MainActivity.java
@@ -16,6 +16,8 @@
 
 package org.chromium.latency.walt;
 
+import static org.chromium.latency.walt.Utils.getBooleanPreference;
+
 import android.Manifest;
 import android.content.DialogInterface;
 import android.content.Intent;
@@ -30,18 +32,6 @@
 import android.os.Environment;
 import android.os.Handler;
 import android.os.StrictMode;
-import android.preference.PreferenceManager;
-import android.support.annotation.NonNull;
-import android.support.v4.app.ActivityCompat;
-import android.support.v4.app.Fragment;
-import android.support.v4.app.FragmentManager;
-import android.support.v4.app.FragmentTransaction;
-import android.support.v4.content.ContextCompat;
-import android.support.v4.content.Loader;
-import android.support.v4.content.LocalBroadcastManager;
-import android.support.v7.app.AlertDialog;
-import android.support.v7.app.AppCompatActivity;
-import android.support.v7.widget.Toolbar;
 import android.util.Log;
 import android.view.Menu;
 import android.view.MenuItem;
@@ -49,7 +39,18 @@
 import android.widget.EditText;
 import android.widget.Toast;
 
-import org.chromium.latency.walt.programmer.Programmer;
+import androidx.annotation.NonNull;
+import androidx.appcompat.app.AlertDialog;
+import androidx.appcompat.app.AppCompatActivity;
+import androidx.appcompat.widget.Toolbar;
+import androidx.core.app.ActivityCompat;
+import androidx.core.content.ContextCompat;
+import androidx.fragment.app.Fragment;
+import androidx.fragment.app.FragmentManager;
+import androidx.fragment.app.FragmentTransaction;
+import androidx.loader.content.Loader;
+import androidx.localbroadcastmanager.content.LocalBroadcastManager;
+import androidx.preference.PreferenceManager;
 
 import java.io.File;
 import java.io.FileOutputStream;
@@ -59,7 +60,7 @@
 import java.util.Date;
 import java.util.Locale;
 
-import static org.chromium.latency.walt.Utils.getBooleanPreference;
+import org.chromium.latency.walt.programmer.Programmer;
 
 public class MainActivity extends AppCompatActivity {
     private static final String TAG = "WALT";
@@ -218,7 +219,7 @@
         broadcastManager = LocalBroadcastManager.getInstance(this);
 
         // Add basic version and device info to the log
-        logger.log(String.format("WALT v%s  (versionCode=%d)",
+        logger.log(String.format(Locale.US, "WALT v%s  (versionCode=%d)",
                 BuildConfig.VERSION_NAME, BuildConfig.VERSION_CODE));
         logger.log("WALT protocol version " + WaltDevice.PROTOCOL_VERSION);
         logger.log("DEVICE INFO:");
@@ -325,6 +326,11 @@
         switchScreen(newFragment, "Drag Latency");
     }
 
+    public void onClickAccelerometer(View view) {
+        AccelerometerFragment newFragment = new AccelerometerFragment();
+        switchScreen(newFragment, "Accelerometer Latency");
+    }
+
     public void onClickOpenLog(View view) {
         LogFragment logFragment = new LogFragment();
         // menu.findItem(R.id.action_help).setVisible(false);
@@ -349,13 +355,8 @@
     }
 
     public void onClickPing(View view) {
-        long t1 = waltDevice.clock.micros();
         try {
-            waltDevice.command(WaltDevice.CMD_PING);
-            long dt = waltDevice.clock.micros() - t1;
-            logger.log(String.format(Locale.US,
-                    "Ping reply in %.1fms", dt / 1000.
-            ));
+            waltDevice.ping();
         } catch (IOException e) {
             logger.log("Error sending ping: " + e.getMessage());
         }
@@ -487,7 +488,7 @@
 
         // A reasonable world readable location,on many phones it's /storage/emulated/Documents
         // TODO: make this location configurable?
-        File path = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOCUMENTS);
+        File path = getExternalFilesDir(Environment.DIRECTORY_DOCUMENTS);
         File file = null;
         FileOutputStream outStream = null;
 
@@ -511,7 +512,7 @@
     }
 
     public void clearLogFile() {
-        File path = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOCUMENTS);
+        File path = getExternalFilesDir(Environment.DIRECTORY_DOCUMENTS);
         try {
             File file = new File(path, LOG_FILENAME);
             file.delete();
@@ -541,7 +542,8 @@
     }
 
     private static boolean startsWithHttp(String url) {
-        return url.toLowerCase().startsWith("http://") || url.toLowerCase().startsWith("https://");
+        return url.toLowerCase(Locale.getDefault()).startsWith("http://") ||
+            url.toLowerCase(Locale.getDefault()).startsWith("https://");
     }
 
     private void showUploadLogDialog() {
diff --git a/android/WALT/app/src/main/java/org/chromium/latency/walt/MidiFragment.java b/android/WALT/app/src/main/java/org/chromium/latency/walt/MidiFragment.java
index c6f1118..8d3fe6a 100644
--- a/android/WALT/app/src/main/java/org/chromium/latency/walt/MidiFragment.java
+++ b/android/WALT/app/src/main/java/org/chromium/latency/walt/MidiFragment.java
@@ -20,13 +20,14 @@
 import android.content.Context;
 import android.content.Intent;
 import android.os.Bundle;
-import android.support.v4.app.Fragment;
 import android.text.method.ScrollingMovementMethod;
 import android.view.LayoutInflater;
 import android.view.View;
 import android.view.ViewGroup;
 import android.widget.TextView;
 
+import androidx.fragment.app.Fragment;
+
 import java.util.Locale;
 
 public class MidiFragment extends Fragment
diff --git a/android/WALT/app/src/main/java/org/chromium/latency/walt/NumberPickerPreference.java b/android/WALT/app/src/main/java/org/chromium/latency/walt/NumberPickerPreference.java
index 9d71d42..cf4ef55 100644
--- a/android/WALT/app/src/main/java/org/chromium/latency/walt/NumberPickerPreference.java
+++ b/android/WALT/app/src/main/java/org/chromium/latency/walt/NumberPickerPreference.java
@@ -19,13 +19,15 @@
 import android.content.Context;
 import android.content.res.TypedArray;
 import android.os.Bundle;
-import android.support.annotation.NonNull;
-import android.support.v7.preference.DialogPreference;
-import android.support.v7.preference.PreferenceDialogFragmentCompat;
 import android.util.AttributeSet;
 import android.view.View;
 
+import androidx.annotation.NonNull;
+import androidx.preference.DialogPreference;
+import androidx.preference.PreferenceDialogFragmentCompat;
+
 public class NumberPickerPreference extends DialogPreference {
+    private boolean isInitSet = false;
     private int currentValue;
     private int maxValue;
     private int minValue;
@@ -62,9 +64,13 @@
     }
 
     public void setValue(int value) {
-        currentValue = value;
-        persistInt(currentValue);
-        setSummary(String.format(defaultSummary, getValue()));
+        boolean changed = (currentValue != value);
+        if (changed || !isInitSet) {
+            isInitSet = true;
+            currentValue = value;
+            persistInt(currentValue);
+            setSummary(String.format(defaultSummary, getValue()));
+        }
     }
 
     @Override
@@ -73,8 +79,8 @@
     }
 
     @Override
-    protected void onSetInitialValue(boolean restorePersistedValue, Object defaultValue) {
-        setValue(restorePersistedValue ? getPersistedInt(currentValue) : (Integer) defaultValue);
+    protected void onSetInitialValue(Object defaultValue) {
+        setValue((Integer) defaultValue);
     }
 
     public static class NumberPickerPreferenceDialogFragmentCompat
diff --git a/android/WALT/app/src/main/java/org/chromium/latency/walt/ScreenResponseFragment.java b/android/WALT/app/src/main/java/org/chromium/latency/walt/ScreenResponseFragment.java
index 629ed7d..d1ebfac 100644
--- a/android/WALT/app/src/main/java/org/chromium/latency/walt/ScreenResponseFragment.java
+++ b/android/WALT/app/src/main/java/org/chromium/latency/walt/ScreenResponseFragment.java
@@ -16,16 +16,15 @@
 
 package org.chromium.latency.walt;
 
+import static org.chromium.latency.walt.Utils.getBooleanPreference;
+import static org.chromium.latency.walt.Utils.getIntPreference;
+
 import android.content.BroadcastReceiver;
 import android.content.Context;
 import android.content.Intent;
 import android.graphics.Color;
 import android.os.Bundle;
 import android.os.Handler;
-import android.support.v4.app.Fragment;
-import android.support.v7.app.ActionBar;
-import android.support.v7.app.AlertDialog;
-import android.support.v7.app.AppCompatActivity;
 import android.text.method.ScrollingMovementMethod;
 import android.view.Choreographer;
 import android.view.LayoutInflater;
@@ -36,6 +35,11 @@
 import android.widget.Spinner;
 import android.widget.TextView;
 
+import androidx.appcompat.app.ActionBar;
+import androidx.appcompat.app.AlertDialog;
+import androidx.appcompat.app.AppCompatActivity;
+import androidx.fragment.app.Fragment;
+
 import com.github.mikephil.charting.charts.LineChart;
 import com.github.mikephil.charting.components.Description;
 import com.github.mikephil.charting.data.Entry;
@@ -47,9 +51,6 @@
 import java.util.List;
 import java.util.Locale;
 
-import static org.chromium.latency.walt.Utils.getBooleanPreference;
-import static org.chromium.latency.walt.Utils.getIntPreference;
-
 /**
  * Measurement of screen response time when switching between black and white.
  */
diff --git a/android/WALT/app/src/main/java/org/chromium/latency/walt/SettingsFragment.java b/android/WALT/app/src/main/java/org/chromium/latency/walt/SettingsFragment.java
index 4f74fc4..ace30cc 100644
--- a/android/WALT/app/src/main/java/org/chromium/latency/walt/SettingsFragment.java
+++ b/android/WALT/app/src/main/java/org/chromium/latency/walt/SettingsFragment.java
@@ -18,19 +18,21 @@
 
 
 import android.os.Bundle;
-import android.support.annotation.Nullable;
-import android.support.v4.app.DialogFragment;
-import android.support.v4.app.Fragment;
-import android.support.v4.app.FragmentTransaction;
-import android.support.v4.content.ContextCompat;
-import android.support.v7.preference.Preference;
-import android.support.v7.preference.PreferenceFragmentCompat;
-import android.support.v7.preference.PreferenceScreen;
-import android.support.v7.widget.Toolbar;
 import android.view.View;
 
+import androidx.annotation.Nullable;
+import androidx.appcompat.widget.Toolbar;
+import androidx.core.content.ContextCompat;
+import androidx.fragment.app.DialogFragment;
+import androidx.fragment.app.Fragment;
+import androidx.fragment.app.FragmentTransaction;
+import androidx.preference.Preference;
+import androidx.preference.PreferenceFragmentCompat;
+import androidx.preference.PreferenceScreen;
 
-public class SettingsFragment extends PreferenceFragmentCompat implements PreferenceFragmentCompat.OnPreferenceStartScreenCallback {
+
+public class SettingsFragment extends PreferenceFragmentCompat implements
+    PreferenceFragmentCompat.OnPreferenceStartScreenCallback {
 
     private Toolbar toolbar;
 
@@ -70,8 +72,8 @@
             DialogFragment fragment = NumberPickerPreference.
                     NumberPickerPreferenceDialogFragmentCompat.newInstance(preference.getKey());
             fragment.setTargetFragment(this, 0);
-            fragment.show(getFragmentManager(),
-                    "android.support.v7.preference.PreferenceFragment.DIALOG");
+            fragment.show(getParentFragmentManager(),
+                    "androidx.preference.PreferenceFragment.DIALOG");
         } else {
             super.onDisplayPreferenceDialog(preference);
         }
@@ -90,7 +92,8 @@
         args.putString(PreferenceFragmentCompat.ARG_PREFERENCE_ROOT, preferenceScreen.getKey());
         fragment.setArguments(args);
 
-        FragmentTransaction ft = preferenceFragmentCompat.getFragmentManager().beginTransaction();
+        FragmentTransaction ft = preferenceFragmentCompat.
+                getParentFragmentManager().beginTransaction();
         ft.add(R.id.fragment_container, fragment, preferenceScreen.getKey());
         ft.addToBackStack(preferenceScreen.getTitle().toString());
         ft.commit();
diff --git a/android/WALT/app/src/main/java/org/chromium/latency/walt/SimpleLogger.java b/android/WALT/app/src/main/java/org/chromium/latency/walt/SimpleLogger.java
index 6059e0f..9244377 100644
--- a/android/WALT/app/src/main/java/org/chromium/latency/walt/SimpleLogger.java
+++ b/android/WALT/app/src/main/java/org/chromium/latency/walt/SimpleLogger.java
@@ -20,7 +20,9 @@
 import android.content.Context;
 import android.content.Intent;
 import android.content.IntentFilter;
-import android.support.v4.content.LocalBroadcastManager;
+
+import androidx.localbroadcastmanager.content.LocalBroadcastManager;
+
 import android.util.Log;
 
 /**
diff --git a/android/WALT/app/src/main/java/org/chromium/latency/walt/TapLatencyFragment.java b/android/WALT/app/src/main/java/org/chromium/latency/walt/TapLatencyFragment.java
index e26a328..ca0e80b 100644
--- a/android/WALT/app/src/main/java/org/chromium/latency/walt/TapLatencyFragment.java
+++ b/android/WALT/app/src/main/java/org/chromium/latency/walt/TapLatencyFragment.java
@@ -16,11 +16,11 @@
 
 package org.chromium.latency.walt;
 
+import android.annotation.SuppressLint;
 import android.content.BroadcastReceiver;
 import android.content.Context;
 import android.content.Intent;
 import android.os.Bundle;
-import android.support.v4.app.Fragment;
 import android.text.method.ScrollingMovementMethod;
 import android.view.LayoutInflater;
 import android.view.MotionEvent;
@@ -29,6 +29,8 @@
 import android.widget.ImageButton;
 import android.widget.TextView;
 
+import androidx.fragment.app.Fragment;
+
 import java.io.IOException;
 import java.util.ArrayList;
 import java.util.Locale;
@@ -71,6 +73,7 @@
         }
     };
 
+    @SuppressLint("ClickableViewAccessibility")
     private View.OnTouchListener touchListener = new View.OnTouchListener() {
         @Override
         public boolean onTouch(View v, MotionEvent event) {
@@ -212,6 +215,7 @@
         moveCountsView.setText(String.format(Locale.US, "⇄ %d", moveCount));
     }
 
+    @SuppressLint("ClickableViewAccessibility")
     void restartMeasurement() {
         logger.log("\n## Restarting tap latency measurement. Re-sync clocks ...");
         try {
@@ -241,6 +245,7 @@
         tapCatcherView.setOnTouchListener(touchListener);
     }
 
+    @SuppressLint("ClickableViewAccessibility")
     void finishAndShowStats() {
         tapCatcherView.setOnTouchListener(null);
         waltDevice.checkDrift();
diff --git a/android/WALT/app/src/main/java/org/chromium/latency/walt/TraceLogger.java b/android/WALT/app/src/main/java/org/chromium/latency/walt/TraceLogger.java
index 6fdb8d9..964e9c6 100644
--- a/android/WALT/app/src/main/java/org/chromium/latency/walt/TraceLogger.java
+++ b/android/WALT/app/src/main/java/org/chromium/latency/walt/TraceLogger.java
@@ -25,6 +25,7 @@
 import java.io.OutputStreamWriter;
 import java.text.DecimalFormat;
 import java.util.ArrayList;
+import java.util.Locale;
 
 /**
  * Used to log events for Android systrace
@@ -58,12 +59,13 @@
         StringBuilder sb = new StringBuilder();
         int pid = android.os.Process.myPid();
         for (TraceEvent e : traceEvents) {
-            sb.append(String.format(
-                    "WALTThread-1234 (%d) [000] ...1 %s: tracing_mark_write: B|%d|%s|description=%s|WALT\n",
-                    pid, df.format(e.startTimeMicros / 1e6), pid, e.title, e.description));
-            sb.append(String.format(
-                    "WALTThread-1234 (%d) [000] ...1 %s: tracing_mark_write: E|%d|%s||WALT\n",
-                    pid, df.format(e.finishTimeMicros / 1e6), pid, e.title));
+            sb.append(String.format(Locale.US,
+                "WALTThread-1234 (%d) [000] ...1 %s: tracing_mark_write: "
+                    + "B|%d|%s|description=%s|WALT\n",
+                pid, df.format(e.startTimeMicros / 1e6), pid, e.title, e.description));
+            sb.append(String.format(Locale.US,
+                "WALTThread-1234 (%d) [000] ...1 %s: tracing_mark_write: E|%d|%s||WALT\n",
+                pid, df.format(e.finishTimeMicros / 1e6), pid, e.title));
         }
         return sb.toString();
     }
@@ -85,7 +87,7 @@
             OutputStreamWriter writer = new OutputStreamWriter(new FileOutputStream(file, true));
             writer.write(getLogText());
             writer.close();
-            logger.log(String.format("TraceLogger wrote %d events to %s",
+            logger.log(String.format(Locale.US, "TraceLogger wrote %d events to %s",
                     traceEvents.size(), file.getAbsolutePath()));
         } catch (IOException e) {
             logger.log("ERROR: IOException writing to trace.txt");
diff --git a/android/WALT/app/src/main/java/org/chromium/latency/walt/UsMotionEvent.java b/android/WALT/app/src/main/java/org/chromium/latency/walt/UsMotionEvent.java
index e961949..f68e461 100644
--- a/android/WALT/app/src/main/java/org/chromium/latency/walt/UsMotionEvent.java
+++ b/android/WALT/app/src/main/java/org/chromium/latency/walt/UsMotionEvent.java
@@ -20,6 +20,7 @@
 import android.view.MotionEvent;
 
 import java.lang.reflect.Method;
+import java.util.Locale;
 
 /**
  * A convenient representation of MotionEvent events
@@ -71,13 +72,13 @@
 
 
     public String toString() {
-        return String.format("%d %f %f",
+        return String.format(Locale.US, "%d %f %f",
                 kernelTime, x, y);
 
     }
 
     public String toStringLong() {
-        return String.format("Event: t=%d x=%.1f y=%.1f slot=%d num=%d %s",
+        return String.format(Locale.US, "Event: t=%d x=%.1f y=%.1f slot=%d num=%d %s",
                 kernelTime, x, y, slot, num, actionToString(action));
 
     }
@@ -119,7 +120,7 @@
     private long getEventTimeMicro(MotionEvent event) {
         long t_nanos = -1;
         try {
-            Class cls = Class.forName("android.view.MotionEvent");
+            Class<?> cls = Class.forName("android.view.MotionEvent");
             Method myTimeGetter = cls.getMethod("getEventTimeNano");
             t_nanos = (long) myTimeGetter.invoke(event);
         } catch (Exception e) {
@@ -132,7 +133,7 @@
     private long getHistoricalEventTimeMicro(MotionEvent event, int pos) {
         long t_nanos = -1;
         try {
-            Class cls = Class.forName("android.view.MotionEvent");
+            Class<?> cls = Class.forName("android.view.MotionEvent");
             Method myTimeGetter = cls.getMethod("getHistoricalEventTimeNano", new Class[] {int.class});
             t_nanos = (long) myTimeGetter.invoke(event, new Object[]{pos});
         } catch (Exception e) {
diff --git a/android/WALT/app/src/main/java/org/chromium/latency/walt/Utils.java b/android/WALT/app/src/main/java/org/chromium/latency/walt/Utils.java
index 19c7488..46796e2 100644
--- a/android/WALT/app/src/main/java/org/chromium/latency/walt/Utils.java
+++ b/android/WALT/app/src/main/java/org/chromium/latency/walt/Utils.java
@@ -18,11 +18,15 @@
 
 import android.content.Context;
 import android.content.SharedPreferences;
-import android.preference.PreferenceManager;
-import android.support.annotation.StringRes;
+
+import androidx.preference.PreferenceManager;
+import androidx.annotation.StringRes;
+
+import com.github.mikephil.charting.data.Entry;
 
 import java.util.ArrayList;
 import java.util.Collections;
+import java.util.List;
 
 /**
  * Kitchen sink for small utility functions
@@ -120,6 +124,11 @@
         return sb.toString();
     }
 
+    public static int argmax(double[] a) {
+        int imax = 0;
+        for (int i=1; i<a.length; i++) if (a[i] > a[imax]) imax = i;
+        return imax;
+    }
 
     public static int argmin(double[] a) {
         int imin = 0;
@@ -177,6 +186,30 @@
         return preferences.getString(context.getString(keyId), defaultValue);
     }
 
+    static float min(List<Entry> entries) {
+        float min = Float.MAX_VALUE;
+        for (Entry e : entries) {
+            min = Math.min(min, e.getY());
+        }
+        return min;
+    }
+
+    static float max(List<Entry> entries) {
+        float max = Float.MIN_VALUE;
+        for (Entry e : entries) {
+            max = Math.max(max, e.getY());
+        }
+        return max;
+    }
+
+    static float mean(List<Entry> entries) {
+        float mean = 0;
+        for (Entry e : entries) {
+            mean += e.getY()/entries.size();
+        }
+        return mean;
+    }
+
     public enum ListenerState {
         RUNNING,
         STARTING,
diff --git a/android/WALT/app/src/main/java/org/chromium/latency/walt/WaltDevice.java b/android/WALT/app/src/main/java/org/chromium/latency/walt/WaltDevice.java
index 8ec2cb4..631afb8 100644
--- a/android/WALT/app/src/main/java/org/chromium/latency/walt/WaltDevice.java
+++ b/android/WALT/app/src/main/java/org/chromium/latency/walt/WaltDevice.java
@@ -23,6 +23,7 @@
 import android.util.Log;
 
 import java.io.IOException;
+import java.util.Locale;
 
 /**
  * A singleton used as an interface for the physical WALT device.
@@ -31,7 +32,7 @@
 
     private static final int DEFAULT_DRIFT_LIMIT_US = 1500;
     private static final String TAG = "WaltDevice";
-    public static final String PROTOCOL_VERSION = "5";
+    public static final String PROTOCOL_VERSION = "6";
 
     // Teensy side commands. Each command is a single char
     // Based on #defines section in walt.ino
@@ -56,6 +57,7 @@
     static final char CMD_BEEP_STOP        = 'S'; // Stop generating tone
     static final char CMD_MIDI             = 'M'; // Start listening for a MIDI message
     static final char CMD_NOTE             = 'N'; // Generate a MIDI NoteOn message
+    static final char CMD_ACCELEROMETER    = 'O'; // Generate a MIDI NoteOn message
 
     private static final int BYTE_BUFFER_SIZE = 1024 * 4;
     private byte[] buffer = new byte[BYTE_BUFFER_SIZE];
@@ -221,6 +223,19 @@
         }
     }
 
+    public void ping() throws IOException {
+        if (!isConnected() || clock == null) {
+            throw new IOException("Not connected to WALT");
+        }
+
+        long t1 = clock.micros();
+        command(CMD_PING);
+        long dt = clock.micros() - t1;
+        logger.log(String.format(Locale.US,
+                "Ping reply in %.1fms", dt / 1000.
+        ));
+    }
+
     public void syncClock() throws IOException {
         clock = connection.syncClock();
     }
@@ -247,7 +262,7 @@
             return;
         }
         int drift = Math.abs(clock.getMeanLag());
-        String msg = String.format("Remote clock delayed between %d and %d us",
+        String msg = String.format(Locale.US, "Remote clock delayed between %d and %d us",
                 clock.minLag, clock.maxLag);
         // TODO: Convert the limit to user editable preference
         if (drift > DEFAULT_DRIFT_LIMIT_US) {
diff --git a/android/WALT/app/src/main/java/org/chromium/latency/walt/programmer/FirmwareImage.java b/android/WALT/app/src/main/java/org/chromium/latency/walt/programmer/FirmwareImage.java
index d2feb01..0f8b1ef 100644
--- a/android/WALT/app/src/main/java/org/chromium/latency/walt/programmer/FirmwareImage.java
+++ b/android/WALT/app/src/main/java/org/chromium/latency/walt/programmer/FirmwareImage.java
@@ -24,6 +24,7 @@
 import java.io.InputStreamReader;
 import java.text.ParseException;
 import java.util.Arrays;
+import java.util.Locale;
 
 class FirmwareImage {
     private static final String TAG = "FirmwareImage";
@@ -89,7 +90,8 @@
                 return;
             }
             default: {
-                throw new ParseException(String.format("Unknown code '%x'", code), cur);
+                throw new ParseException(String.format(
+                    Locale.US, "Unknown code '%x'", code), cur);
             }
         }
     }
@@ -119,8 +121,8 @@
                 dest[addr + i] = parseByte(line, pos + i * 2);
                 mask[addr + i] = true;
             } catch (ArrayIndexOutOfBoundsException e) {
-                throw new ParseException(String.format("Address '%x' out of range", addr + i),
-                        pos + i * 2);
+                throw new ParseException(String.format(Locale.US,
+                    "Address '%x' out of range", addr + i), pos + i * 2);
             }
         }
     }
diff --git a/android/WALT/app/src/main/jni/Android.bp b/android/WALT/app/src/main/jni/Android.bp
deleted file mode 100644
index a789f4b..0000000
--- a/android/WALT/app/src/main/jni/Android.bp
+++ /dev/null
@@ -1,37 +0,0 @@
-// Copyright (C) 2015 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.
-//
-
-cc_library_shared {
-    name: "sync_clock_jni",
-    srcs: [
-        "sync_clock_jni.c",
-        "sync_clock.c",
-        "player.c",
-    ],
-
-    cflags: [
-        "-g",
-        "-DUSE_LIBLOG",
-        "-Werror",
-    ],
-
-    shared_libs: [
-        // needed for logcat
-        "libcutils",
-
-        "libOpenSLES",
-        "liblog",
-    ],
-}
diff --git a/android/WALT/app/src/main/jni/Android.mk b/android/WALT/app/src/main/jni/Android.mk
new file mode 100644
index 0000000..edf1ddf
--- /dev/null
+++ b/android/WALT/app/src/main/jni/Android.mk
@@ -0,0 +1,27 @@
+# Copyright (C) 2015 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.
+#
+
+LOCAL_PATH := $(call my-dir)
+
+include $(CLEAR_VARS)
+
+LOCAL_MODULE    := sync_clock_jni
+LOCAL_SRC_FILES := sync_clock_jni.c sync_clock.c player.c
+
+LOCAL_CFLAGS := -g -DUSE_LIBLOG -Werror -Wno-deprecated-declarations
+
+LOCAL_LDLIBS := -lOpenSLES -llog
+
+include $(BUILD_SHARED_LIBRARY)
diff --git a/android/WALT/app/src/main/jni/Application.mk b/android/WALT/app/src/main/jni/Application.mk
index 7c01d06..a6cb06d 100644
--- a/android/WALT/app/src/main/jni/Application.mk
+++ b/android/WALT/app/src/main/jni/Application.mk
@@ -14,4 +14,4 @@
 #
 
 APP_ABI := all
-APP_PLATFORM := android-9
+APP_PLATFORM := android-21
diff --git a/android/WALT/app/src/main/res/drawable/ic_brightness_7_black_24dp.xml b/android/WALT/app/src/main/res/drawable/ic_brightness_7_black_24dp.xml
deleted file mode 100644
index e504de1..0000000
--- a/android/WALT/app/src/main/res/drawable/ic_brightness_7_black_24dp.xml
+++ /dev/null
@@ -1,9 +0,0 @@
-<vector xmlns:android="http://schemas.android.com/apk/res/android"
-        android:width="24dp"
-        android:height="24dp"
-        android:viewportWidth="24.0"
-        android:viewportHeight="24.0">
-    <path
-        android:fillColor="#FF000000"
-        android:pathData="M20,8.69V4h-4.69L12,0.69 8.69,4H4v4.69L0.69,12 4,15.31V20h4.69L12,23.31 15.31,20H20v-4.69L23.31,12 20,8.69zM12,18c-3.31,0 -6,-2.69 -6,-6s2.69,-6 6,-6 6,2.69 6,6 -2.69,6 -6,6zm0,-10c-2.21,0 -4,1.79 -4,4s1.79,4 4,4 4,-1.79 4,-4 -1.79,-4 -4,-4z"/>
-</vector>
diff --git a/android/WALT/app/src/main/res/drawable/ic_chevron_left_black_24dp.xml b/android/WALT/app/src/main/res/drawable/ic_chevron_left_black_24dp.xml
deleted file mode 100644
index e6bb3ca..0000000
--- a/android/WALT/app/src/main/res/drawable/ic_chevron_left_black_24dp.xml
+++ /dev/null
@@ -1,9 +0,0 @@
-<vector xmlns:android="http://schemas.android.com/apk/res/android"
-        android:width="24dp"
-        android:height="24dp"
-        android:viewportWidth="24.0"
-        android:viewportHeight="24.0">
-    <path
-        android:fillColor="#FF000000"
-        android:pathData="M15.41,7.41L14,6l-6,6 6,6 1.41,-1.41L10.83,12z"/>
-</vector>
diff --git a/android/WALT/app/src/main/res/drawable/ic_equalizer_black_24dp.xml b/android/WALT/app/src/main/res/drawable/ic_equalizer_black_24dp.xml
deleted file mode 100644
index 6322102..0000000
--- a/android/WALT/app/src/main/res/drawable/ic_equalizer_black_24dp.xml
+++ /dev/null
@@ -1,9 +0,0 @@
-<vector xmlns:android="http://schemas.android.com/apk/res/android"
-        android:width="24dp"
-        android:height="24dp"
-        android:viewportWidth="24.0"
-        android:viewportHeight="24.0">
-    <path
-        android:fillColor="#FF000000"
-        android:pathData="M10,20h4V4h-4v16zm-6,0h4v-8H4v8zM16,9v11h4V9h-4z"/>
-</vector>
diff --git a/android/WALT/app/src/main/res/drawable/ic_help_black_24dp.xml b/android/WALT/app/src/main/res/drawable/ic_help_black_24dp.xml
deleted file mode 100644
index a3936eb..0000000
--- a/android/WALT/app/src/main/res/drawable/ic_help_black_24dp.xml
+++ /dev/null
@@ -1,9 +0,0 @@
-<vector xmlns:android="http://schemas.android.com/apk/res/android"
-        android:width="24dp"
-        android:height="24dp"
-        android:viewportWidth="24.0"
-        android:viewportHeight="24.0">
-    <path
-        android:fillColor="#FF000000"
-        android:pathData="M12,2C6.48,2 2,6.48 2,12s4.48,10 10,10 10,-4.48 10,-10S17.52,2 12,2zm1,17h-2v-2h2v2zm2.07,-7.75l-0.9,0.92C13.45,12.9 13,13.5 13,15h-2v-0.5c0,-1.1 0.45,-2.1 1.17,-2.83l1.24,-1.26c0.37,-0.36 0.59,-0.86 0.59,-1.41 0,-1.1 -0.9,-2 -2,-2s-2,0.9 -2,2H8c0,-2.21 1.79,-4 4,-4s4,1.79 4,4c0,0.88 -0.36,1.68 -0.93,2.25z"/>
-</vector>
diff --git a/android/WALT/app/src/main/res/drawable/ic_import_export_black_24dp.xml b/android/WALT/app/src/main/res/drawable/ic_import_export_black_24dp.xml
deleted file mode 100644
index cac4f1f..0000000
--- a/android/WALT/app/src/main/res/drawable/ic_import_export_black_24dp.xml
+++ /dev/null
@@ -1,9 +0,0 @@
-<vector xmlns:android="http://schemas.android.com/apk/res/android"
-        android:width="24dp"
-        android:height="24dp"
-        android:viewportWidth="24.0"
-        android:viewportHeight="24.0">
-    <path
-        android:fillColor="#FF000000"
-        android:pathData="M9,3L5,6.99h3V14h2V6.99h3L9,3zm7,14.01V10h-2v7.01h-3L15,21l4,-3.99h-3z"/>
-</vector>
diff --git a/android/WALT/app/src/main/res/drawable/ic_mic_black_24dp.xml b/android/WALT/app/src/main/res/drawable/ic_mic_black_24dp.xml
deleted file mode 100644
index 15356bb..0000000
--- a/android/WALT/app/src/main/res/drawable/ic_mic_black_24dp.xml
+++ /dev/null
@@ -1,9 +0,0 @@
-<vector xmlns:android="http://schemas.android.com/apk/res/android"
-        android:width="24dp"
-        android:height="24dp"
-        android:viewportWidth="24.0"
-        android:viewportHeight="24.0">
-    <path
-        android:fillColor="#FF000000"
-        android:pathData="M12,14c1.66,0 2.99,-1.34 2.99,-3L15,5c0,-1.66 -1.34,-3 -3,-3S9,3.34 9,5v6c0,1.66 1.34,3 3,3zm5.3,-3c0,3 -2.54,5.1 -5.3,5.1S6.7,14 6.7,11H5c0,3.41 2.72,6.23 6,6.72V21h2v-3.28c3.28,-0.48 6,-3.3 6,-6.72h-1.7z"/>
-</vector>
diff --git a/android/WALT/app/src/main/res/drawable/ic_music_note_black_24dp.xml b/android/WALT/app/src/main/res/drawable/ic_music_note_black_24dp.xml
index 2e5b3cc..fb95660 100644
--- a/android/WALT/app/src/main/res/drawable/ic_music_note_black_24dp.xml
+++ b/android/WALT/app/src/main/res/drawable/ic_music_note_black_24dp.xml
@@ -5,5 +5,5 @@
 android:viewportHeight="24.0">
 <path
     android:fillColor="#FF000000"
-    android:pathData="M12 3v10.55c-.59-.34-1.27-.55-2-.55-2.21 0-4 1.79-4 4s1.79 4 4 4 4-1.79 4-4V7h4V3h-6z"/>
+    android:pathData="M12 3v10.55c-0.59-0.34-1.27-0.55-2-0.55-2.21 0-4 1.79-4 4s1.79 4 4 4 4-1.79 4-4V7h4V3h-6z"/>
 </vector>
\ No newline at end of file
diff --git a/android/WALT/app/src/main/res/drawable/ic_settings_black_24dp.xml b/android/WALT/app/src/main/res/drawable/ic_settings_black_24dp.xml
index ace746c..896ea9d 100644
--- a/android/WALT/app/src/main/res/drawable/ic_settings_black_24dp.xml
+++ b/android/WALT/app/src/main/res/drawable/ic_settings_black_24dp.xml
@@ -5,5 +5,5 @@
         android:viewportHeight="24.0">
     <path
         android:fillColor="#FF000000"
-        android:pathData="M19.43,12.98c0.04,-0.32 0.07,-0.64 0.07,-0.98s-0.03,-0.66 -0.07,-0.98l2.11,-1.65c0.19,-0.15 0.24,-0.42 0.12,-0.64l-2,-3.46c-0.12,-0.22 -0.39,-0.3 -0.61,-0.22l-2.49,1c-0.52,-0.4 -1.08,-0.73 -1.69,-0.98l-0.38,-2.65C14.46,2.18 14.25,2 14,2h-4c-0.25,0 -0.46,0.18 -0.49,0.42l-0.38,2.65c-0.61,0.25 -1.17,0.59 -1.69,0.98l-2.49,-1c-0.23,-0.09 -0.49,0 -0.61,0.22l-2,3.46c-0.13,0.22 -0.07,0.49 0.12,0.64l2.11,1.65c-0.04,0.32 -0.07,0.65 -0.07,0.98s0.03,0.66 0.07,0.98l-2.11,1.65c-0.19,0.15 -0.24,0.42 -0.12,0.64l2,3.46c0.12,0.22 0.39,0.3 0.61,0.22l2.49,-1c0.52,0.4 1.08,0.73 1.69,0.98l0.38,2.65c0.03,0.24 0.24,0.42 0.49,0.42h4c0.25,0 0.46,-0.18 0.49,-0.42l0.38,-2.65c0.61,-0.25 1.17,-0.59 1.69,-0.98l2.49,1c0.23,0.09 0.49,0 0.61,-0.22l2,-3.46c0.12,-0.22 0.07,-0.49 -0.12,-0.64l-2.11,-1.65zM12,15.5c-1.93,0 -3.5,-1.57 -3.5,-3.5s1.57,-3.5 3.5,-3.5 3.5,1.57 3.5,3.5 -1.57,3.5 -3.5,3.5z"/>
+        android:pathData="M19.1,12.9a2.8,2.8 0,0 0,0.1 -0.9,2.8 2.8,0 0,0 -0.1,-0.9l2.1,-1.6a0.7,0.7 0,0 0,0.1 -0.6L19.4,5.5a0.7,0.7 0,0 0,-0.6 -0.2l-2.4,1a6.5,6.5 0,0 0,-1.6 -0.9l-0.4,-2.6a0.5,0.5 0,0 0,-0.5 -0.4H10.1a0.5,0.5 0,0 0,-0.5 0.4L9.3,5.4a5.6,5.6 0,0 0,-1.7 0.9l-2.4,-1a0.4,0.4 0,0 0,-0.5 0.2l-2,3.4c-0.1,0.2 0,0.4 0.2,0.6l2,1.6a2.8,2.8 0,0 0,-0.1 0.9,2.8 2.8,0 0,0 0.1,0.9L2.8,14.5a0.7,0.7 0,0 0,-0.1 0.6l1.9,3.4a0.7,0.7 0,0 0,0.6 0.2l2.4,-1a6.5,6.5 0,0 0,1.6 0.9l0.4,2.6a0.5,0.5 0,0 0,0.5 0.4h3.8a0.5,0.5 0,0 0,0.5 -0.4l0.3,-2.6a5.6,5.6 0,0 0,1.7 -0.9l2.4,1a0.4,0.4 0,0 0,0.5 -0.2l2,-3.4c0.1,-0.2 0,-0.4 -0.2,-0.6ZM12,15.6A3.6,3.6 0,1 1,15.6 12,3.6 3.6,0 0,1 12,15.6Z"/>
 </vector>
diff --git a/android/WALT/app/src/main/res/drawable/ic_system_update_alt_black_24dp.xml b/android/WALT/app/src/main/res/drawable/ic_system_update_alt_black_24dp.xml
index ec96a71..6ce20c7 100644
--- a/android/WALT/app/src/main/res/drawable/ic_system_update_alt_black_24dp.xml
+++ b/android/WALT/app/src/main/res/drawable/ic_system_update_alt_black_24dp.xml
@@ -5,5 +5,5 @@
     android:viewportHeight="24.0">
     <path
         android:fillColor="#FF000000"
-        android:pathData="M12 16.5l4-4h-3v-9h-2v9H8l4 4zm9-13h-6v1.99h6v14.03H3V5.49h6V3.5H3c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h18c1.1 0 2-.9 2-2v-14c0-1.1-.9-2-2-2z"/>
+        android:pathData="M12 16.5l4-4h-3v-9h-2v9H8l4 4zm9-13h-6v1.99h6v14.03H3V5.49h6V3.5H3c-1.1 0-2 0.9-2 2v14c0 1.1 0.9 2 2 2h18c1.1 0 2-0.9 2-2v-14c0-1.1-0.9-2-2-2z"/>
 </vector>
diff --git a/android/WALT/app/src/main/res/layout/activity_main.xml b/android/WALT/app/src/main/res/layout/activity_main.xml
index 57e7679..ad9a864 100644
--- a/android/WALT/app/src/main/res/layout/activity_main.xml
+++ b/android/WALT/app/src/main/res/layout/activity_main.xml
@@ -1,27 +1,20 @@
-<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:tools="http://schemas.android.com/tools"
     android:layout_width="match_parent"
     android:layout_height="match_parent"
+    android:orientation="vertical"
     tools:context=".MainActivity">
 
-    <LinearLayout
+    <include
+        android:id="@+id/toolbar_main"
+        layout="@layout/toolbar" />
+
+    <FrameLayout
+        android:id="@+id/fragment_container"
         android:layout_width="match_parent"
-        android:layout_height="match_parent"
-        android:orientation="vertical">
+        android:layout_height="match_parent">
 
 
-        <include
-            android:id="@+id/toolbar_main"
-            layout="@layout/toolbar" />
+    </FrameLayout>
 
-        <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
-            android:id="@+id/fragment_container"
-            android:layout_width="match_parent"
-            android:layout_height="match_parent">
-
-
-        </FrameLayout>
-
-    </LinearLayout>
-
-</RelativeLayout>
+</LinearLayout>
\ No newline at end of file
diff --git a/android/WALT/app/src/main/res/layout/dialog_upload.xml b/android/WALT/app/src/main/res/layout/dialog_upload.xml
index be990a2..88983d7 100644
--- a/android/WALT/app/src/main/res/layout/dialog_upload.xml
+++ b/android/WALT/app/src/main/res/layout/dialog_upload.xml
@@ -9,7 +9,8 @@
         android:id="@+id/edit_text"
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
-        android:hint="Enter URL"
+        android:hint="@string/hint_url"
+        android:autofillHints="Enter URL"
         android:inputType="textUri" />
 
     <ProgressBar
diff --git a/android/WALT/app/src/main/res/layout/fragment_accelerometer.xml b/android/WALT/app/src/main/res/layout/fragment_accelerometer.xml
new file mode 100644
index 0000000..693287f
--- /dev/null
+++ b/android/WALT/app/src/main/res/layout/fragment_accelerometer.xml
@@ -0,0 +1,80 @@
+<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto"
+    xmlns:tools="http://schemas.android.com/tools"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    tools:context="org.chromium.latency.walt.TapLatencyFragment">
+
+    <LinearLayout
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"
+        android:orientation="vertical">
+
+        <LinearLayout
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:orientation="horizontal">
+
+            <View android:layout_height="match_parent"
+                android:layout_width="0dp"
+                android:layout_weight="1" />
+
+            <ImageButton
+                android:id="@+id/button_start"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:tint="@color/button_tint"
+                app:srcCompat="@drawable/ic_play_arrow_black_24dp"
+                android:contentDescription="@string/start" />
+
+        </LinearLayout>
+
+        <FrameLayout
+            android:layout_width="match_parent"
+            android:layout_height="match_parent">
+
+            <LinearLayout
+                android:layout_width="match_parent"
+                android:layout_height="match_parent"
+                android:orientation="vertical">
+
+                <RelativeLayout
+                    android:id="@+id/latency_chart_layout"
+                    android:layout_width="match_parent"
+                    android:visibility="gone"
+                    android:layout_height="0dp"
+                    android:layout_weight="1"
+                    android:layout_margin="5dp"
+                    android:background="@drawable/border">
+
+                    <com.github.mikephil.charting.charts.ScatterChart
+                        android:id="@+id/latency_chart"
+                        android:layout_width="match_parent"
+                        android:layout_height="match_parent"
+                        android:layout_margin="5dp" />
+
+                    <Button
+                        android:id="@+id/button_close_chart"
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:layout_alignTop="@id/latency_chart"
+                        android:layout_alignEnd="@id/latency_chart"
+                        android:tint="@color/button_tint"
+                        android:layout_margin="5dp"
+                        android:text="@string/close" />
+                </RelativeLayout>
+
+                <TextView
+                    android:id="@+id/txt_log"
+                    android:layout_width="match_parent"
+                    android:layout_height="0dp"
+                    android:layout_weight="1"
+                    android:background="#000000"
+                    android:gravity="bottom"
+                    android:textColor="#ffffff"
+                    android:scrollbars="vertical" />
+
+            </LinearLayout>
+        </FrameLayout>
+    </LinearLayout>
+</FrameLayout>
diff --git a/android/WALT/app/src/main/res/layout/fragment_audio.xml b/android/WALT/app/src/main/res/layout/fragment_audio.xml
index e11f157..190f658 100644
--- a/android/WALT/app/src/main/res/layout/fragment_audio.xml
+++ b/android/WALT/app/src/main/res/layout/fragment_audio.xml
@@ -19,24 +19,26 @@
                 android:id="@+id/button_stop_audio"
                 android:layout_width="wrap_content"
                 android:layout_height="wrap_content"
-                android:layout_alignParentLeft="true"
+                android:layout_alignParentStart="true"
                 android:tint="@color/button_tint"
-                android:src="@drawable/ic_stop_black_24dp" />
+                walt:srcCompat="@drawable/ic_stop_black_24dp"
+                android:contentDescription="@string/stop" />
 
             <ImageButton
                 android:id="@+id/button_start_audio"
                 android:layout_width="wrap_content"
                 android:layout_height="wrap_content"
-                android:layout_alignParentRight="true"
+                android:layout_alignParentEnd="true"
                 android:tint="@color/button_tint"
-                android:src="@drawable/ic_play_arrow_black_24dp" />
+                walt:srcCompat="@drawable/ic_play_arrow_black_24dp"
+                android:contentDescription="@string/start" />
 
             <Spinner
                 android:id="@+id/spinner_audio_mode"
                 android:layout_height="45dp"
                 android:layout_width="fill_parent"
-                android:layout_toRightOf="@id/button_stop_audio"
-                android:layout_toLeftOf="@id/button_start_audio"
+                android:layout_toEndOf="@id/button_stop_audio"
+                android:layout_toStartOf="@id/button_start_audio"
                 android:prompt="@string/audio_mode"/>
 
         </RelativeLayout>
diff --git a/android/WALT/app/src/main/res/layout/fragment_diagnostics.xml b/android/WALT/app/src/main/res/layout/fragment_diagnostics.xml
index 82a3cae..2950bac 100644
--- a/android/WALT/app/src/main/res/layout/fragment_diagnostics.xml
+++ b/android/WALT/app/src/main/res/layout/fragment_diagnostics.xml
@@ -1,4 +1,5 @@
 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto"
     xmlns:tools="http://schemas.android.com/tools"
     android:layout_width="match_parent"
     android:layout_height="match_parent"
@@ -23,7 +24,8 @@
 
                 <ImageView
                     style="@style/MenuIconStyle"
-                    android:src="@drawable/ic_usb_black_24dp" />
+                    app:srcCompat="@drawable/ic_usb_black_24dp"
+                    android:contentDescription="@string/reconnect" />
 
                 <LinearLayout
                     android:layout_width="match_parent"
@@ -33,12 +35,12 @@
 
                     <TextView
                         style="@style/MenuTextTop"
-                        android:text="Reconnect" />
+                        android:text="@string/reconnect" />
 
                     <TextView
                         android:visibility="gone"
                         style="@style/MenuTextBottom"
-                        android:text="TBD: Conn status" />
+                        android:text="@string/tbd_conn_status" />
 
 
                 </LinearLayout>
@@ -54,7 +56,8 @@
 
                 <ImageView
                     style="@style/MenuIconStyle"
-                    android:src="@drawable/ic_swap_horiz_black_24dp" />
+                    app:srcCompat="@drawable/ic_swap_horiz_black_24dp"
+                    android:contentDescription="@string/ping" />
 
                 <LinearLayout
                     android:layout_width="match_parent"
@@ -64,11 +67,11 @@
 
                     <TextView
                         style="@style/MenuTextTop"
-                        android:text="Ping" />
+                        android:text="@string/ping" />
 
                     <TextView
                         style="@style/MenuTextBottom"
-                        android:text="Ping over USB with 1 byte" />
+                        android:text="@string/ping_over_usb_with_1_byte" />
 
 
                 </LinearLayout>
@@ -84,7 +87,8 @@
 
                 <ImageView
                     style="@style/MenuIconStyle"
-                    android:src="@drawable/ic_schedule_black_24dp" />
+                    app:srcCompat="@drawable/ic_schedule_black_24dp"
+                    android:contentDescription="@string/re_sync_clocks" />
 
                 <LinearLayout
                     android:layout_width="match_parent"
@@ -94,7 +98,7 @@
 
                     <TextView
                         style="@style/MenuTextTop"
-                        android:text="Re-sync clocks" />
+                        android:text="@string/re_sync_clocks" />
 
                 </LinearLayout>
             </LinearLayout>
@@ -109,7 +113,8 @@
 
                 <ImageView
                     style="@style/MenuIconStyle"
-                    android:src="@drawable/ic_timelapse_black_24dp" />
+                    app:srcCompat="@drawable/ic_timelapse_black_24dp"
+                    android:contentDescription="@string/check_clock_drift" />
 
                 <LinearLayout
                     android:layout_width="match_parent"
@@ -119,11 +124,11 @@
 
                     <TextView
                         style="@style/MenuTextTop"
-                        android:text="Check clock drift" />
+                        android:text="@string/check_clock_drift" />
 
                     <TextView
                         style="@style/MenuTextBottom"
-                        android:text="Check how much clocks diverged" />
+                        android:text="@string/check_how_much_clocks_diverged" />
 
 
                 </LinearLayout>
@@ -139,7 +144,8 @@
 
                 <ImageView
                     style="@style/MenuIconStyle"
-                    android:src="@drawable/ic_system_update_alt_black_24dp" />
+                    app:srcCompat="@drawable/ic_system_update_alt_black_24dp"
+                    android:contentDescription="@string/update_walt_firmware" />
 
                 <LinearLayout
                     android:layout_width="match_parent"
@@ -149,11 +155,11 @@
 
                     <TextView
                         style="@style/MenuTextTop"
-                        android:text="Update WALT Firmware" />
+                        android:text="@string/update_walt_firmware" />
 
                     <TextView
                         style="@style/MenuTextBottom"
-                        android:text="Please press the button on the Teensy first" />
+                        android:text="@string/please_press_the_button_on_the_teensy_first" />
 
 
                 </LinearLayout>
diff --git a/android/WALT/app/src/main/res/layout/fragment_drag_latency.xml b/android/WALT/app/src/main/res/layout/fragment_drag_latency.xml
index f9b65d0..a5e36c6 100644
--- a/android/WALT/app/src/main/res/layout/fragment_drag_latency.xml
+++ b/android/WALT/app/src/main/res/layout/fragment_drag_latency.xml
@@ -1,4 +1,5 @@
 <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto"
     xmlns:tools="http://schemas.android.com/tools"
     android:layout_width="match_parent"
     android:layout_height="match_parent"
@@ -19,21 +20,24 @@
                 android:layout_width="wrap_content"
                 android:layout_height="wrap_content"
                 android:tint="@color/button_tint"
-                android:src="@drawable/ic_refresh_black_24dp" />
+                app:srcCompat="@drawable/ic_refresh_black_24dp"
+                android:contentDescription="@string/restart" />
 
             <ImageButton
                 android:id="@+id/button_start_drag"
                 android:layout_width="wrap_content"
                 android:layout_height="wrap_content"
                 android:tint="@color/button_tint"
-                android:src="@drawable/ic_play_arrow_black_24dp" />
+                app:srcCompat="@drawable/ic_play_arrow_black_24dp"
+                android:contentDescription="@string/start" />
 
             <ImageButton
                 android:id="@+id/button_finish_drag"
                 android:layout_width="wrap_content"
                 android:layout_height="wrap_content"
                 android:tint="@color/button_tint"
-                android:src="@drawable/ic_check_black_24dp" />
+                app:srcCompat="@drawable/ic_check_black_24dp"
+                android:contentDescription="@string/finish" />
         </LinearLayout>
 
         <FrameLayout
@@ -49,7 +53,7 @@
                     android:layout_width="match_parent"
                     android:layout_height="wrap_content"
                     android:background="#000000"
-                    android:gravity="right"
+                    android:gravity="end"
                     android:orientation="horizontal">
 
                     <TextView
@@ -92,11 +96,11 @@
                         android:id="@+id/button_close_chart"
                         android:layout_width="wrap_content"
                         android:layout_height="wrap_content"
-                        android:layout_alignParentRight="true"
-                        android:layout_alignParentTop="true"
+                        android:layout_alignEnd="@id/latency_chart"
+                        android:layout_alignTop="@id/latency_chart"
                         android:tint="@color/button_tint"
                         android:layout_margin="5dp"
-                        android:text="Close" />
+                        android:text="@string/close" />
                 </RelativeLayout>
 
                 <TextView
diff --git a/android/WALT/app/src/main/res/layout/fragment_front_page.xml b/android/WALT/app/src/main/res/layout/fragment_front_page.xml
index ec3a95a..43ef542 100644
--- a/android/WALT/app/src/main/res/layout/fragment_front_page.xml
+++ b/android/WALT/app/src/main/res/layout/fragment_front_page.xml
@@ -1,4 +1,5 @@
 <ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto"
     xmlns:tools="http://schemas.android.com/tools"
     android:layout_width="fill_parent"
     android:layout_height="fill_parent"
@@ -16,7 +17,8 @@
 
             <ImageView
                 style="@style/MenuIconStyle"
-                android:src="@drawable/ic_search_black_24dp" />
+                app:srcCompat="@drawable/ic_search_black_24dp"
+                android:contentDescription="@string/diagnostics" />
 
             <LinearLayout
                 android:layout_width="match_parent"
@@ -26,11 +28,11 @@
 
                 <TextView
                     style="@style/MenuTextTop"
-                    android:text="Diagnostics" />
+                    android:text="@string/diagnostics" />
 
                 <TextView
                     style="@style/MenuTextBottom"
-                    android:text="TBD: Connection/sync status"
+                    android:text="@string/tbd_connection_sync_status"
                     android:visibility="gone" />
 
 
@@ -47,7 +49,8 @@
 
             <ImageView
                 style="@style/MenuIconStyle"
-                android:src="@drawable/ic_radio_button_checked_black_24dp" />
+                app:srcCompat="@drawable/ic_radio_button_checked_black_24dp"
+                android:contentDescription="@string/tap_latency" />
 
             <LinearLayout
                 android:layout_width="match_parent"
@@ -57,7 +60,7 @@
 
                 <TextView
                     style="@style/MenuTextTop"
-                    android:text="Tap latency" />
+                    android:text="@string/tap_latency" />
 
             </LinearLayout>
         </LinearLayout>
@@ -72,7 +75,8 @@
 
             <ImageView
                 style="@style/MenuIconStyle"
-                android:src="@drawable/ic_swap_vert_black_24dp" />
+                app:srcCompat="@drawable/ic_swap_vert_black_24dp"
+                android:contentDescription="@string/drag_latency" />
 
             <LinearLayout
                 android:layout_width="match_parent"
@@ -82,7 +86,7 @@
 
                 <TextView
                     style="@style/MenuTextTop"
-                    android:text="Drag latency" />
+                    android:text="@string/drag_latency" />
 
             </LinearLayout>
         </LinearLayout>
@@ -97,7 +101,8 @@
 
             <ImageView
                 style="@style/MenuIconStyle"
-                android:src="@drawable/ic_brightness_medium_black_24dp" />
+                app:srcCompat="@drawable/ic_brightness_medium_black_24dp"
+                android:contentDescription="@string/screen_response" />
 
             <LinearLayout
                 android:layout_width="match_parent"
@@ -107,7 +112,7 @@
 
                 <TextView
                     style="@style/MenuTextTop"
-                    android:text="Screen response" />
+                    android:text="@string/screen_response" />
 
             </LinearLayout>
         </LinearLayout>
@@ -122,7 +127,8 @@
 
             <ImageView
                 style="@style/MenuIconStyle"
-                android:src="@drawable/ic_volume_up_black_24dp" />
+                app:srcCompat="@drawable/ic_volume_up_black_24dp"
+                android:contentDescription="@string/audio_latency" />
 
             <LinearLayout
                 android:layout_width="match_parent"
@@ -132,7 +138,7 @@
 
                 <TextView
                     style="@style/MenuTextTop"
-                    android:text="Audio latency" />
+                    android:text="@string/audio_latency" />
 
             </LinearLayout>
         </LinearLayout>
@@ -149,7 +155,8 @@
                 android:id="@+id/midi_image"
                 style="@style/MenuIconStyle"
                 android:tint="@color/ColorDisabled"
-                android:src="@drawable/ic_music_note_black_24dp" />
+                app:srcCompat="@drawable/ic_music_note_black_24dp"
+                android:contentDescription="@string/midi_latency" />
 
             <LinearLayout
                 android:layout_width="match_parent"
@@ -161,7 +168,7 @@
                     android:id="@+id/midi_text"
                     style="@style/MenuTextTop"
                     android:textColor="@color/ColorDisabled"
-                    android:text="MIDI latency" />
+                    android:text="@string/midi_latency" />
 
             </LinearLayout>
         </LinearLayout>
@@ -176,7 +183,8 @@
 
             <ImageView
                 style="@style/MenuIconStyle"
-                android:src="@drawable/ic_receipt_black_24dp" />
+                app:srcCompat="@drawable/ic_receipt_black_24dp"
+                android:contentDescription="@string/view_log" />
 
             <LinearLayout
                 android:layout_width="match_parent"
@@ -186,7 +194,7 @@
 
                 <TextView
                     style="@style/MenuTextTop"
-                    android:text="View log" />
+                    android:text="@string/view_log" />
 
             </LinearLayout>
         </LinearLayout>
@@ -194,6 +202,32 @@
 
         <View style="@style/MenuDivider" />
 
+        <!-- Accelerometer -->
+        <LinearLayout
+            style="@style/MenuItemStyle"
+            android:onClick="onClickAccelerometer">
+
+            <ImageView
+                style="@style/MenuIconStyle"
+                app:srcCompat="@drawable/ic_swap_horiz_black_24dp"
+                android:contentDescription="@string/accelerometer_latency" />
+
+            <LinearLayout
+                android:layout_width="match_parent"
+                android:layout_height="match_parent"
+                android:gravity="center_vertical"
+                android:orientation="vertical">
+
+                <TextView
+                    style="@style/MenuTextTop"
+                    android:text="@string/accelerometer_latency" />
+
+            </LinearLayout>
+        </LinearLayout>
+        <!-- End of Accelerometer -->
+
+        <View style="@style/MenuDivider" />
+
         <!-- Settings -->
         <LinearLayout
             style="@style/MenuItemStyle"
@@ -201,7 +235,8 @@
 
             <ImageView
                 style="@style/MenuIconStyle"
-                android:src="@drawable/ic_settings_black_24dp" />
+                app:srcCompat="@drawable/ic_settings_black_24dp"
+                android:contentDescription="@string/settings" />
 
             <LinearLayout
                 android:layout_width="match_parent"
@@ -211,7 +246,7 @@
 
                 <TextView
                     style="@style/MenuTextTop"
-                    android:text="Settings" />
+                    android:text="@string/settings" />
 
 
             </LinearLayout>
@@ -227,7 +262,8 @@
 
             <ImageView
                 style="@style/MenuIconStyle"
-                android:src="@drawable/ic_help_outline_black_24dp" />
+                app:srcCompat="@drawable/ic_help_outline_black_24dp"
+                android:contentDescription="@string/about" />
 
             <LinearLayout
                 android:layout_width="match_parent"
@@ -237,7 +273,7 @@
 
                 <TextView
                     style="@style/MenuTextTop"
-                    android:text="About" />
+                    android:text="@string/about" />
 
             </LinearLayout>
         </LinearLayout>
diff --git a/android/WALT/app/src/main/res/layout/fragment_midi.xml b/android/WALT/app/src/main/res/layout/fragment_midi.xml
index 70f9be5..fba287f 100644
--- a/android/WALT/app/src/main/res/layout/fragment_midi.xml
+++ b/android/WALT/app/src/main/res/layout/fragment_midi.xml
@@ -21,7 +21,8 @@
                 android:layout_height="wrap_content"
                 android:layout_alignParentStart="true"
                 android:tint="@color/button_tint"
-                android:src="@drawable/ic_input_black_24dp" />
+                walt:srcCompat="@drawable/ic_input_black_24dp"
+                android:contentDescription="@string/start_midi_in" />
 
             <ImageButton
                 android:id="@+id/button_start_midi_out"
@@ -29,7 +30,8 @@
                 android:layout_height="wrap_content"
                 android:layout_alignParentEnd="true"
                 android:tint="@color/button_tint"
-                android:src="@drawable/ic_output_black_24dp" />
+                walt:srcCompat="@drawable/ic_output_black_24dp"
+                android:contentDescription="@string/start_midi_out" />
         </RelativeLayout>
 
         <org.chromium.latency.walt.HistogramChart
diff --git a/android/WALT/app/src/main/res/layout/fragment_screen_response.xml b/android/WALT/app/src/main/res/layout/fragment_screen_response.xml
index b789579..fc7c107 100644
--- a/android/WALT/app/src/main/res/layout/fragment_screen_response.xml
+++ b/android/WALT/app/src/main/res/layout/fragment_screen_response.xml
@@ -20,24 +20,26 @@
                 android:id="@+id/button_stop_screen_response"
                 android:layout_width="wrap_content"
                 android:layout_height="wrap_content"
-                android:layout_alignParentLeft="true"
+                android:layout_alignParentStart="true"
                 android:tint="@color/button_tint"
-                android:src="@drawable/ic_stop_black_24dp" />
+                walt:srcCompat="@drawable/ic_stop_black_24dp"
+                android:contentDescription="@string/stop" />
 
             <ImageButton
                 android:id="@+id/button_start_screen_response"
                 android:layout_width="wrap_content"
                 android:layout_height="wrap_content"
-                android:layout_alignParentRight="true"
+                android:layout_alignParentEnd="true"
                 android:tint="@color/button_tint"
-                android:src="@drawable/ic_play_arrow_black_24dp" />
+                walt:srcCompat="@drawable/ic_play_arrow_black_24dp"
+                android:contentDescription="@string/start" />
 
             <Spinner
                 android:id="@+id/spinner_screen_response"
                 android:layout_height="45dp"
                 android:layout_width="fill_parent"
-                android:layout_toRightOf="@id/button_stop_screen_response"
-                android:layout_toLeftOf="@id/button_start_screen_response"
+                android:layout_toEndOf="@id/button_stop_screen_response"
+                android:layout_toStartOf="@id/button_start_screen_response"
                 android:prompt="@string/screen_response_mode"/>
         </RelativeLayout>
 
diff --git a/android/WALT/app/src/main/res/layout/fragment_tap_latency.xml b/android/WALT/app/src/main/res/layout/fragment_tap_latency.xml
index 2c701d2..28f4327 100644
--- a/android/WALT/app/src/main/res/layout/fragment_tap_latency.xml
+++ b/android/WALT/app/src/main/res/layout/fragment_tap_latency.xml
@@ -18,17 +18,19 @@
                 android:id="@+id/button_finish_tap"
                 android:layout_width="wrap_content"
                 android:layout_height="wrap_content"
-                android:layout_alignParentLeft="true"
+                android:layout_alignParentStart="true"
                 android:tint="@color/button_tint"
-                android:src="@drawable/ic_check_black_24dp" />
+                walt:srcCompat="@drawable/ic_check_black_24dp"
+                android:contentDescription="@string/finish" />
 
             <ImageButton
                 android:id="@+id/button_restart_tap"
                 android:layout_width="wrap_content"
                 android:layout_height="wrap_content"
-                android:layout_alignParentRight="true"
+                android:layout_alignParentEnd="true"
                 android:tint="@color/button_tint"
-                android:src="@drawable/ic_play_arrow_black_24dp" />
+                walt:srcCompat="@drawable/ic_play_arrow_black_24dp"
+                android:contentDescription="@string/restart" />
         </RelativeLayout>
 
         <FrameLayout
@@ -44,7 +46,7 @@
                     android:layout_width="match_parent"
                     android:layout_height="wrap_content"
                     android:background="#000000"
-                    android:gravity="right"
+                    android:gravity="end"
                     android:orientation="horizontal">
 
                     <TextView
diff --git a/android/WALT/app/src/main/res/layout/histogram.xml b/android/WALT/app/src/main/res/layout/histogram.xml
index ca6dc1e..bdbda12 100644
--- a/android/WALT/app/src/main/res/layout/histogram.xml
+++ b/android/WALT/app/src/main/res/layout/histogram.xml
@@ -15,9 +15,9 @@
         android:id="@+id/button_close_bar_chart"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
-        android:layout_alignParentRight="true"
-        android:layout_alignParentTop="true"
+        android:layout_alignTop="@id/bar_chart"
+        android:layout_alignEnd="@id/bar_chart"
         android:tint="@color/button_tint"
         android:layout_margin="5dp"
-        android:text="Close" />
+        android:text="@string/close" />
 </RelativeLayout>
diff --git a/android/WALT/app/src/main/res/layout/line_chart.xml b/android/WALT/app/src/main/res/layout/line_chart.xml
index 7de4cfb..a846a13 100644
--- a/android/WALT/app/src/main/res/layout/line_chart.xml
+++ b/android/WALT/app/src/main/res/layout/line_chart.xml
@@ -15,9 +15,9 @@
         android:id="@+id/button_close_chart"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
-        android:layout_alignParentRight="true"
-        android:layout_alignParentTop="true"
+        android:layout_alignTop="@id/chart"
+        android:layout_alignEnd="@id/chart"
         android:tint="@color/button_tint"
         android:layout_margin="5dp"
-        android:text="Close" />
+        android:text="@string/close" />
 </RelativeLayout>
diff --git a/android/WALT/app/src/main/res/layout/toolbar.xml b/android/WALT/app/src/main/res/layout/toolbar.xml
index d02028d..c932cdb 100644
--- a/android/WALT/app/src/main/res/layout/toolbar.xml
+++ b/android/WALT/app/src/main/res/layout/toolbar.xml
@@ -1,8 +1,7 @@
 <?xml version="1.0" encoding="utf-8"?>
-<android.support.v7.widget.Toolbar xmlns:android="http://schemas.android.com/apk/res/android"
+<androidx.appcompat.widget.Toolbar xmlns:android="http://schemas.android.com/apk/res/android"
     android:layout_width="match_parent"
     android:layout_height="wrap_content"
-    android:background="@color/ColorPrimary"
     android:elevation="4dp">
 
-</android.support.v7.widget.Toolbar>
\ No newline at end of file
+</androidx.appcompat.widget.Toolbar>
\ No newline at end of file
diff --git a/android/WALT/app/src/main/res/menu/menu_main.xml b/android/WALT/app/src/main/res/menu/menu_main.xml
index 6333e6d..e34957b 100644
--- a/android/WALT/app/src/main/res/menu/menu_main.xml
+++ b/android/WALT/app/src/main/res/menu/menu_main.xml
@@ -7,21 +7,21 @@
     <item
         android:id="@+id/action_upload"
         android:orderInCategory="180"
-        android:title="Upload"
+        android:title="@string/upload"
         android:icon="@drawable/ic_file_upload_black_24dp"
         app:showAsAction="ifRoom" />
 
     <item
         android:id="@+id/action_share"
         android:orderInCategory="190"
-        android:title="Share"
+        android:title="@string/share"
         android:icon="@drawable/ic_share_black_24dp"
         app:showAsAction="ifRoom" />
 
     <item
         android:id="@+id/action_help"
         android:orderInCategory="200"
-        android:title="Help"
+        android:title="@string/help"
         android:icon="@drawable/ic_help_outline_black_24dp"
         app:showAsAction="ifRoom" />
 
diff --git a/android/WALT/app/src/main/res/raw/walt.hex b/android/WALT/app/src/main/res/raw/walt.hex
index 21fccf6..daaa3ec 100644
--- a/android/WALT/app/src/main/res/raw/walt.hex
+++ b/android/WALT/app/src/main/res/raw/walt.hex
@@ -1,16 +1,16 @@
-:1000000000180020C100000069250000352500000F

-:100010003525000035250000352500003525000078

-:100020003525000035250000352500006925000034

-:100030006925000035250000692500002525000000

-:100040006925000069250000692500006925000078

-:100050006925000069250000692500006925000068

-:100060006925000069250000692500006925000058

-:10007000A92B000049300000E1350000692500008F

-:100080006925000069250000692500006925000038

-:100090006925000069250000013B0000692500007A

-:1000A0004113000069250000692500006925000052

-:1000B0006925000069250000692500006925000008

-:1000C00038B502F055FA454A454B1A60454A464B49

+:1000000000180020C1000000F1250000BD250000FF

+:10001000BD250000BD250000BD250000BD25000058

+:10002000BD250000BD250000BD250000F125000014

+:10003000F1250000BD250000F1250000AD250000E0

+:10004000F1250000F1250000F1250000F125000058

+:10005000F1250000F1250000F1250000F125000048

+:10006000F1250000F1250000F1250000F125000038

+:10007000312C0000D130000069360000F12500006D

+:10008000F1250000F1250000F1250000F125000018

+:10009000F1250000F1250000893B0000F12500005A

+:1000A000C9130000F1250000F1250000F125000032

+:1000B000F1250000F1250000F1250000F1250000E8

+:1000C00038B502F099FA454A454B1A60454A464B05

 :1000D0001A60464A464B1A60464B0822197811426C

 :1000E00002D019780A431A70434B2A221A7000234F

 :1000F000424A43499A188A4204D24249C9580433B1

@@ -26,11 +26,11 @@
 :10019000FCD52549254A1160224A20211170997900

 :1001A0000C220A400C2AFAD1214A224B1A60224A18

 :1001B000224B1A60224B00221A60224B07221A603F

-:1001C000214A224B1A6062B600F092FF04F044FB11

-:1001D00002F0D4F902F04CF9FEE7C046300004F01A

+:1001C000214A224B1A6062B600F0D6FF04F088FB89

+:1001D00002F018FA02F090F9FEE7C046300004F091

 :1001E00034800440823F0000388004400100000F4A

 :1001F0003C80044002D0074000E00740700200202D

-:10020000600400205055000064040020D80800203D

+:1002000060040020D855000064040020D8080020B5

 :100210000000000000F9FF1F00E400E008ED00E02E

 :100220000050064000400640000001104480044099

 :10023000C0000505048004407FBB000014E000E01E

@@ -65,1333 +65,1342 @@
 :10040000FFFFFFFFFFFFFFFFFFFFFFFFDEF9FFFF23

 :1004100010B5064C2378002B07D1054B002B02D0DA

 :10042000044800E000BF0123237010BD60040020D9

-:10043000000000005055000008B5084B002B03D009

+:1004300000000000D855000008B5084B002B03D081

 :100440000748084900E000BF07480368002B03D0B5

 :10045000064B002B00D0984708BDC04600000000A6

-:1004600050550000640400206004002000000000DB

-:1004700010B5041C00F0FEFD2368C01A10BDFFFF7C

+:10046000D855000064040020600400200000000053

+:1004700010B5041C00F042FE2368C01A10BDFFFF37

 :1004800010B50948FFF7F4FF084C20600E2000F07B

-:100490009BFDA36841424141C9B201330C20616018

-:1004A000A36000F071FD10BD100500209C04002029

-:1004B00008B5011C014801F0CFFF08BDEC04002085

-:1004C00008B5011C014801F0C0FF08BDEC04002084

-:1004D00000B58DB0021C084904A804F0D1FA04A9A3

-:1004E000684601F033FF6846FFF7EAFF684601F00F

-:1004F000E9FE0DB000BDC0460C51000000B58DB046

-:10050000021C084904A804F0BBFA04A9684601F0DB

-:100510001DFF6846FFF7D4FF684601F0D3FE0DB01B

-:1005200000BDC0461051000030B5134B85B01D789A

-:10053000124C002D0AD02068A16801F0EFFA01F0FA

-:100540001FFB201CF02101F03BFF12E00C48A268C9

-:10055000036821685B68984701F042FD291C6846E2

-:1005600001F0F4FE201C694601F022FF684601F00C

-:10057000A9FE05B030BDC0460C050020EC040020EB

+:10049000DFFDA36841424141C9B201330C206160D4

+:1004A000A36000F0B5FD10BD100500209C040020E5

+:1004B00008B5011C014802F013F808BDEC04002047

+:1004C00008B5011C014802F004F808BDEC04002046

+:1004D00000B58DB0021C084904A804F015FB04A95E

+:1004E000684601F077FF6846FFF7EAFF684601F0CB

+:1004F0002DFF0DB000BDC0469451000000B58DB079

+:10050000021C084904A804F0FFFA04A9684601F097

+:1005100061FF6846FFF7D4FF684601F017FF0DB092

+:1005200000BDC0469851000030B5134B85B01D7812

+:10053000124C002D0AD02068A16801F033FB01F0B5

+:1005400063FB201CF02101F07FFF12E00C48A26841

+:10055000036821685B68984701F086FD291C68469E

+:1005600001F038FF201C694601F066FF684601F083

+:10057000EDFE05B030BDC0460C050020EC040020A7

 :100580009806002008B5054B0A201B78002B00D0E8

 :10059000F720FFF78DFFFFF7C7FF08BD0C05002010

 :1005A00010B5141CCAB01A0CD2B2031C00910194ED

-:1005B0000AA8084904F064FA0AA906A801F0C6FED0

-:1005C00006A8FFF77DFF06A801F07CFEFFF7DAFF23

-:1005D0004AB010BD14510000031C413B192B01D837

+:1005B0000AA8084904F0A8FA0AA906A801F00AFF47

+:1005C00006A8FFF77DFF06A801F0C0FEFFF7DAFFDF

+:1005D0004AB010BD9C510000031C413B192B01D8AF

 :1005E000203004E0031C613B192B01D82038C0B235

 :1005F000704708B5FFF7F0FFFFF75AFFFFF7C2FF9C

 :1006000008BDFFFF10B5054C0021201C2C2204F072

-:1006100075F901235B42636010BDC046BC04002035

+:10061000B9F901235B42636010BDC046BC040020F1

 :1006200010B572B6FFF7EEFF00240D4B0021E05825

-:100630001022043404F062F9142CF6D1094B4C2238

+:100630001022043404F0A6F9142CF6D1094B4C22F4

 :100640009A73094B53229A73084B47229A73084BAB

 :1006500041229A73074B4D229A7362B610BDC04671

 :10066000740200209C04002014050020FC040020DB

 :10067000AC0400207C04002010B50B20012100F008

-:10068000B5FC0C20012100F0B1FC0D20012100F08F

-:10069000ADFC1420002100F0A9FC0F20002100F087

-:1006A000A5FC0E20022100F0A1FC0E200C49042222

-:1006B00000F02CFC0B4B00221A700124FFF7B0FF56

-:1006C000094B211C0D201C7000F05EFC211C0B202E

-:1006D00000F05AFC0C20211C00F056FC10BDC04656

-:1006E000810400000C050020E804002030B50B2038

-:1006F00085B0012100F048FCFA24A400142000F089

-:1007000057FB051C1248FFF7B3FEFFF7E1FE202060

-:10071000FFF7CEFE28B2FFF7DBFEFFF733FFE12342

-:100720005B01013BFDD1013C002CE7D1211C0B20DA

-:1007300000F02AFC0749684601F008FE6846FFF70A

-:10074000BFFE684601F0BEFDFFF71CFF05B030BDDF

-:1007500010050020235100007FB5041E5A2C16D12D

-:1007600072B600F087FCB14B1860FFF74BFFB04B3F

-:1007700001221A7062B60025AE4B291C0B201D7099

-:1007800000F002FC0C20291C00F0FEFBECE05428D9

-:100790000FD1A949684601F0D9FD6846FFF790FEE0

-:1007A000684601F08FFDA148FFF762FEFFF7A6FE45

-:1007B00039E1502800D1D7E0442803D10A2000F0C5

-:1007C0007DFCD1E0031C313B082B0AD89748FFF78A

-:1007D0004FFE2F3C964B0122A4005242E0505A603B

-:1007E00023E1522811D1924A00245368591C5160C8

-:1007F000082902DCD91C89008C58981CFFF768FE78

-:100800003A20FFF755FE201CFDE0492819D1884BFE

-:10081000012252425A6000241D1C884B013BFDD12D

-:100820008248FFF725FEA300EB189860201C3130AA

-:10083000C0B20134FFF73CFEFFF7A4FE092CECD157

-:10084000F3E0462802D1FFF7EBFE8DE0562811D1E8

-:10085000FFF7C2FEFFF72CFE2020FFF729FE7849A4

-:10086000684601F073FD6846FFF72AFE684601F00E

-:1008700029FDD8E047280BD1724C2068FFF728FEED

-:10088000FFF780FE00232360A36001232373CCE0E5

-:10089000412801D16C4B1DE0422812D16348FFF77B

-:1008A000E7FD6A490022051C172001F049FC201CC5

-:1008B000FFF792FEFFF7FCFD2020FFF7F9FD281C53

-:1008C000A1E0532803D1172001F0CEFC4CE04D28C5

-:1008D00006D15F4B00221A609A6001221A7342E02F

-:1008E0004E2820D1514E5B4A316868468B180093E0

-:1008F000FFF7BEFD051C201CFFF76EFEFFF7D8FDBD

-:100900002020FFF7D5FD281CFFF7F8FDFFF73AFE82

-:10091000301CFFF7ADFDA842FAD34F4801F0B4F800

-:1009200001F02EF981E043280ED1142000F040FAA6

-:100930004A4C0123191C221C6E2800DC0023636032

-:1009400051731173432017E0632804D1434B0022F5

-:100950005A731A7308E0452801D1404C12E04C2824

-:1009600004D13F4B01225A73201C05E06C2806D1AC

-:100970003B4B00225A736C20FFF73BFE55E04A28A0

-:1009800009D1374CE36820686168A268FFF708FE68

-:100990000023A36049E0552804D1FFF72AFEFFF7A2

-:1009A000A5FE42E0512831D1FFF716FEFFF780FD8A

-:1009B0002C49684601F0CAFC6846FFF781FD68468D

-:1009C00001F080FC0F2000F0F3F9FFF781FD2649CC

-:1009D000684601F0BBFC6846FFF772FD684601F00F

-:1009E00071FC142000F0E4F9FFF772FD1F4968461E

-:1009F00001F0ACFC6846FFF763FD684601F062FC5D

-:100A00000E2000F0D5F9FFF763FD0CE018496846A9

-:100A100001F09CFC6846FFF753FD684601F052FC6C

-:100A2000201CFFF745FDFFF7ADFD7FBD1005002041

-:100A3000BC040020E804002027510000102E000014

-:100A40002A510000FC040020AC04002088130000A0

-:100A50007C040020F0D8FFFF09903C6314050020BF

-:100A60009C0400202C510000305100003C5100003B

-:100A700047510000F0B5624C87B021780D2000F09E

-:100A800083FA604D2B7B002B13D00F2000F090F9E0

-:100A9000E1239B0098420CDD5B48FFF7E9FCAB6863

-:100AA00001220133AB6000232B732378286053406D

-:100AB0002370564D2B7B002B11D0162000F078F9B7

-:100AC00014280CDD5048FFF7D3FCAB68012201333A

-:100AD000AB6000232B7323782860534023700120E0

-:100AE00001F068F8061C701E8641F6B20196002ED1

-:100AF00007D0474D2B7B002B03D0464B1F78002F90

-:100B00006ED0454D2B7B002B19D0142000F050F9EE

-:100B10006968002902D16E2802DC10E059280EDC39

-:100B20003948FFF7A5FCAB6801220133AB6023789D

-:100B30006E68534023707342734128606B600024D9

-:100B400072B6364B0021E3585A7B8A420BD09F681D

-:100B50008F4208DD324A1D1C101CC4CDC4C02D6854

-:100B600005609960012162B6002906D02C4B1868F7

-:100B700059689A68DB68FFF713FD0434142CDFD141

-:100B8000019E002E22D0234B1B78042B18D1254B1D

-:100B900002A8197801394B425941234BC9B2197047

-:100BA000002903D0F02101F015FC01E001F0CEFB9B

-:100BB00002A91E4801F0FCFB02A801F083FB05E03E

-:100BC000052B03D1174B1878FFF7C6FD01F066F926

-:100BD000002812D001F01AF9C0B2FFF7BDFD0CE0F9

-:100BE0000948FFF745FCAB6801220133AB6023786D

-:100BF000286053402F73237083E707B0F0BDC046D1

-:100C0000E8040020FC04002010050020AC040020B3

-:100C10007C040020860800201405002074020020B7

-:100C20008C040020880800200C050020EC04002023

-:100C300010B500F01FFA064B064C18600021201C6E

-:100C400001F084FB201C0449044A03F0EDFD10BDB3

-:100C500010050020EC040020C522000070020020D6

-:100C6000F0B51E4B1A6880231A40FAD172B61C4B9D

-:100C70001978002930D01B490C681B490F681B49A3

-:100C80003C190E681A49A4190D681A4964190868B4

-:100C900019492418096819486418A4B21849640845

-:100CA0000C43A4B20460174C174800682568174C21

-:100CB000AC462768164C60442668164CC019256857

-:100CC000154C801924684019001980B2400801436E

-:100CD000124889B201601A7062B6F0BD24B00340B8

-:100CE0002505002038B003403CB0034040B003402D

-:100CF00044B0034048B003404CB003402CB0034024

-:100D00000080FFFF5CB0034058B0034060B0034078

-:100D100064B0034068B003406CB0034030B003409F

-:100D20001B4B1C4A19781C4B082901D1002102E0F9

-:100D30000A2903D138211160132206E00C2901D1C0

-:100D4000342100E03C21116012221A60134B1A7802

-:100D5000134B002A01D0002200E001221A60114B3F

-:100D60001A78114B012A01D880220CE0042A01D8FC

-:100D7000842208E0082A01D8852204E0102A01D83C

-:100D8000862200E087221A60084B01221A70704701

-:100D90008802002008B003400CB003402705002063

-:100DA00020B003408902002024B003402505002024

-:100DB000031C70B50020272B32D81A4AD45CFF2CB4

-:100DC0002ED0194B1B78834201D0FFF749FF72B632

-:100DD000164B1022610605D51968914319603F230F

-:100DE0001C4002E019680A431A60114B114D0122A0

-:100DF0001C602A7062B61E1C72B633681A0608D5CB

-:100E00000D4B186800232B7062B60C4B1B781841F1

-:100E100006E02B78002BDBD062B601F05FFBEBE73E

-:100E200070BDC04659510000250500200CB003409C

-:100E300000B003402605002010B003402405002028

-:100E40007047FFFF38B5074B1C681C60064BDA681B

-:100E50001D1CA30700D590472B69620700D5984752

-:100E600038BDC046A09004408C02002038B5244B09

-:100E7000244C1D681D60636A2A0700D59847A36A41

-:100E8000EA0600D59847E36A6A0600D59847236BBF

-:100E90002A0600D59847636BAA0600D59847E36BEE

-:100EA000EA0700D59847A36DAA0700D59847E36DD8

-:100EB0006A0700D59847144B1D681D60A368EA07B0

-:100EC00000D5984763692A0600D59847A369EA06C2

-:100ED00000D59847E3696A0700D59847236A2A072F

-:100EE00000D59847A36BAA0700D59847236DAA069B

-:100EF00000D59847636D6A0600D5984738BDC0464F

-:100F0000A0B004408C020020A0C0044070B5041EB4

-:100F10001A2C2CD8042A2AD8101C02F0BDFE07096E

-:100F2000050B03000B2306E00A2304E0082302E07C

-:100F30000C2300E009230C2262430D480D4E821859

-:100F40000D485268051CB8352E600C4DBC3005604C

-:100F500072B60B481568A40028400A4D1060615114

-:100F60008021490408431B041843106062B670BD19

-:100F700084510000450E000000F9FF1F6D0E0000B7

-:100F8000FFFFF0FF8C02002010B51A2818D80C23A0

-:100F900058430C4A835810181C7D027A224205D00F

-:100FA000002901D01A710BE01A7209E043681A682F

-:100FB000002902D003210A4301E002218A431A607A

-:100FC00010BDC0468451000000231A280AD80C2303

-:100FD0005843054A81581018027A0B7C13405A1E58

-:100FE0009341DBB2181C704784510000F0B51A28F9

-:100FF0003DD80C273D1C45431D4A54196368161CF7

-:10100000012901D0042912D1784332583018147DB7

-:10101000007A20431075A22252001A60202204296F

-:1010200001D1196814E0196891430A1C1EE0AA58FE

-:10103000247A107DA0431075002902D08A1E012A4F

-:1010400012D8802252001A60022903D11A680321A3

-:101050000A430BE003290AD11A6802210A431A60E5

-:101060001A6801218A4301E00422FF321A60F0BDB0

-:101070008451000072B60C4B0C491A680C4B1B686B

-:10108000096862B6480104D532219142894149423A

-:101090005B18FA20800043430648821A0648424300

-:1010A000920D98187047C04618E000E004ED00E08B

-:1010B000280500207FBB00005555010038B5041CF1

-:1010C000FFF7D8FF051C002C0FD0FFF7D3FF074B0D

-:1010D000401B984206D9013C002C06D0FA239B0005

-:1010E000ED18F2E701F0FAF9EFE738BDE703000089

-:1010F0001D4B8022D20510B51A60802212061A609C

-:101100001A4B002018601A491A4B1B4A19602823F1

-:1011100013601A4A1A4C13601A4A13601A4A136071

-:101120001A4A13601A4A136009222260194C20607F

-:10113000194C2160194C2360194C2360194C226012

-:10114000194C20601948016019490B6019490B605E

-:10115000194B1A60FFF7E4FDC8204000FFF7AEFF0F

-:1011600000F0D8FB10BDC04600E100E00480034061

-:10117000FFBF0000088003400C8003401480034040

-:10118000008003401C800340248003402C800340E7

-:101190003480034004900340089003400C900340C7

-:1011A000149003400090034004A0034008A00340B3

-:1011B0000CA0034014A0034000A00340F0B50B4F67

-:1011C00002223B780A4E1A43D2000A4DB4186060DE

-:1011D00028788824002800D0C82409040C43B4507F

-:1011E00001225040534028703B70F0BDA005002004

-:1011F00000F8FF1F20060020431E10B5042B0FD857

-:1012000072B6084A99008858002807D044685B00E5

-:101210008C50054A01889C5A611A995262B600E0C6

-:10122000002010BD8C0500207C080020431E0020FB

-:10123000042B09D872B6054A9B009B58002B02D09C

-:1012400001305B68FAE762B67047C046E4050020EB

-:1012500038B572B60123164A9A18013A1278110766

-:101260001CD5144A5C01A5589900002D05D113190D

-:1012700008305860104BA3500AE001242143C900F4

-:101280008C58002C0AD15318083058600B4B8B50E7

-:101290000B4B1A78013A1A7062B608E00133062B3C

-:1012A000D9D162B6064B00221A7000F0A7FB38BDF8

-:1012B000F052000000F8FF1F88004000C800400006

-:1012C00016060020421E10B5042A30D802238000E2

-:1012D0001843174BC0001B1872B6164CA05C0328AD

-:1012E00009D802F0D9FC140216050833022011E0D7

-:1012F000083304200EE01048920014580F4B002CC5

-:1013000001D1115001E09858416099500EE003203E

-:1013100000E00520A0540A1C08325A6088221807F1

-:1013200000D5C822098809040A431A6062B610BDB4

-:1013300000F8FF1F44050020E4050020F805002008

-:10134000F7B5B6490C780E1CE4B262071FD5B44B52

-:101350001B78002B18D0B34A1378DBB2002B05D0D2

-:10136000013BDBB21370002B00D100BEAE4A1378F4

-:10137000DBB2002B06D0013BDBB21370002B01D196

-:1013800000F05CFE00F0FCFBA44D04232B7008254C

-:10139000221C2A4000D154E2A44BA54C1B78DBB29E

-:1013A0001E099A08002E00D0DDE1D50065192F68CE

-:1013B0006A68B806000F01380C2800D9D0E102F0A5

-:1013C00075FC93019301CF01CF01CF01CF01CF0174

-:1013D000CF01AC01CF01CF01CF010D0095491368BA

-:1013E000954F526895482960954D964900263B6077

-:1013F0007A609BB201222E602661A66102708B4248

-:1014000018D8D021C9008B4200D3E5E0812191405A

-:101410008B4200D1C2E006D8802B00D1A9E0822BFC

-:1014200000D1ABE0F5E0884A934200D1C5E0A022AC

-:10143000D20017E085498B4200D152E10DD88821B6

-:1014400009018B4200D18EE090221201934200D01C

-:10145000DFE0BA78724B1A7009E07D4A934200D1FE

-:10146000CFE07C4A0026934200D115E1D1E0A319D8

-:10147000196A090603D5586A083800F0BFFA083619

-:10148000A02EF4D100252E1C734AA858002805D0A0

-:101490004368019300F0B2FA0198F7E76E496F4B89

-:1014A0006F4A4851E850A858002805D04368019376

-:1014B00000F0A4FA0198F7E76A4B6B4AE850730012

-:1014C000D0526749694B4851F05C0238032807D86D

-:1014D00002F0E2FB02040204002200E001229A551D

-:1014E00001360435052ECFD1614A00231370012542

-:1014F000161C604BEA18604B9200EB18013B1B78FE

-:101500001370190720D500F05BFA6B01002805D095

-:10151000E21808305060594AE25003E0E050337856

-:101520000133337000F04CFA0122AB001343DB00AF

-:10153000002805D0E218083050603E4AE25003E02F

-:10154000E050337801333370AB0002221A43D200EB

-:101550000021A1500322134393400135E150062D91

-:10156000C7D10E1C98E02E4B454C1B78161C2370DF

-:1015700093E0434C2670667002268EE0BB88052BF4

-:1015800047D83F4C3F4D9B00267066705B191B7817

-:101590000226334200D180E022707EE0BA887F23A9

-:1015A0001340052B35DC7E88002E32D135499B0057

-:1015B0005B181A7802218A4329E0BA887F231340F6

-:1015C000052B26DC7E88002E23D12E4A9B009B18FB

-:1015D0001A7802210A431AE07A88B9882A4B5C6893

-:1015E000002C16D01888904209D15888884206D11C

-:1015F000120A032A01D126784FE01E894DE00C33F0

-:10160000EDE7224B1A68224B1A60BA78214B1A7008

-:1016100042E01C4B0F221A7063E0C0468020074056

-:101620001F060020A10500205C0600209020074036

-:1016300000F8FF1FC80040000C0600202006002014

-:101640002C0500208106000002030000212000007C

-:1016500021220000212300008C05002030050020FD

-:10166000E4050020F80500207C0800204405002047

-:101670001606002030C80110F0520000880040001B

-:1016800017060020C0200740F8520000280500205F

-:10169000D00800206C060020341CFB889E4200D934

-:1016A0001E1C371E402F00D94027201C391CFFF775

-:1016B00085FDE419F61B03D1351C402F04D010E042

-:1016C0004025B54200D9351C201C291CFFF776FDAA

-:1016D0006419761B01D1402D03D1754D754B2C60DB

-:1016E0001E800122744B3AE0744B1988744B994266

-:1016F00010D10023D05C7349C8540133072BF9D1B2

-:101700000B68862B02D1704B0F221A700020011C2F

-:10171000FFF754FD6D4B2B6022E0654F3D68002DB7

-:1017200013D064490E88341E402C00D94024281C54

-:10173000211CFFF743FD361B5E4AB6B21680002E11

-:1017400001D1402C00D12E193E605C4BA02219889B

-:10175000D200914204D100225A709A785C4B1A70E0

-:101760000122554B61E0D200A4186068013E0838A0

-:10177000F6B22B4036D000F041F95649B00042583D

-:10178000554B002A1BD055684550111C985D0831F7

-:10179000616003280BD802F07FFA020406080321D7

-:1017A00004E0022102E0052100E00421995588238C

-:1017B000270700D5C8231288120413433CE0985D24

-:1017C000032808D802F068FA39390204002200E040

-:1017D00001229A5531E02C40624262410324A41A4E

-:1017E0009C552AE062880280002A20D03B4D43802D

-:1017F0004360B3005F593A49002F01D1585101E0CD

-:10180000CD586860C850374B7600F15A5218F252E2

-:1018100000F0D6F8002804D00830606021070AD50F

-:1018200007E0314B20601A7801321A7005E02C4233

-:1018300001D0264B00E02D4B23602D4A0823137066

-:101840007FE5012004421ED01B4902230B70294B67

-:10185000264C1A70284B294D1C609C60284C1A613C

-:10186000DC609A615D60274B0D241C70264CFF23C1

-:101870002370174C33702270244A1370244B9F221C

-:101880001A70087013E063B2002B04DA1D4B0D22AE

-:101890001A708023337002231C4204D01A4A117834

-:1018A000C9B21170337010231C4200D03370F7BDE1

-:1018B0002C05002014060020942007400C06002070

-:1018C00021200000C8080020A1050020C800400019

-:1018D00098200740E4050020440500208C050020E6

-:1018E000300500207C0800201606002088004000FB

-:1018F00080200740A005002000F8FF1F4C050020B5

-:10190000A4050020C0200740882007408C20074005

-:101910008420074010B501F0D9FE00221A4B0021A7

-:10192000D150981808324160A82AF7D1174A802070

-:101930001468C00220431060180A154AC0B2107023

-:10194000180C144AC0B21070134A1B0E1370134ABD

-:10195000FF231370124A13481370134A13700122A5

-:1019600002701248017012490A70124A11689943B4

-:101970000B1C70210B4313600F4B802252041A6022

-:101980000E4B10221A7010BD00F8FF1F3480044067

-:101990009C200740B0200740B4200740802007402B

-:1019A000882007409420074010200740002107406E

-:1019B0008420074018E400E000E100E0082107402F

-:1019C00038B572B60B4C2568281C02F003FA1D28A6

-:1019D00002D962B600200CE080231B06C3409D4361

-:1019E000256062B648235843034B18180023036050

-:1019F000436038BDF802002000FAFF1F10B5041C38

-:101A00000E484821201A02F05BF91D2815D80C4B0E

-:101A10001B78002B07D00B4B1B78002B03D0201C0E

-:101A2000FFF716FC09E072B68022074B1206C2408F

-:101A3000101C1A681043186062B610BD00FAFF1F30

-:101A4000160600201F060020F802002038B50B4CB7

-:101A5000051C21783C2908D1094B1B68002B04D0B8

-:101A60000848002298470023237023783B2B03D893

-:101A70005A1C2270034AD55438BDC046870800203E

-:101A80004C0600208B080020F8B51F4D1F4C012389

-:101A90002B702368061C002B1DD11D4F1D4B1B787E

-:101AA000002B2FD00420FFF7C1FB052804D9013FEC

-:101AB000194B002F06D108E0FFF782FF20600028B5

-:101AC000F5D008E01A78002A02D001221A7019E035

-:101AD00000F004FDE2E7104B002221681A704A88EA

-:101AE000531C92008A1896600F2B01D84B8007E098

-:101AF00040230B800420FFF7E5FBFFF761FF206028

-:101B000000232B70F8BDC0463C0600204406002090

-:101B1000E14200001F0600204806002038B5041CE2

-:101B20000D1C032D0ED92078637800021B04184386

-:101B300004231843A378033D1B061843FFF7A4FFB3

-:101B40000334EEE7032D09D12078637800021B04EB

-:101B5000184307231843A3781B060DE0022D06D176

-:101B60002078637800021B041843062304E0012D4B

-:101B700005D12078052300021843FFF785FF38BD03

-:101B800010B50A4B1B78002B0ED1094C2168002997

-:101B90000AD04B88002B07D09B000B800420FFF756

-:101BA00091FBFFF70DFF206010BDC0463C060020F2

-:101BB00044060020F8B5834C071C2368251C002B25

-:101BC00012D1814B1B78002B00D1E2E00520FFF7FA

-:101BD00013FB2060002800D1DBE00688002E03D133

-:101BE000FFF70CFF2660D4E0286843889A0892002B

-:101BF0008218946802880433934201D2438005E03E

-:101C0000FFF7FCFE0520FFF7F7FA28600F23251CDD

-:101C10001D40200A061C2A1C1E40083A0136062ACE

-:101C200000D980E0002F02D0B74200D0B1E0220BF3

-:101C30001340082D0AD1082B00D0AAE0634B0022E4

-:101C40001A70634B1B68934232D163E0092D1AD19D

-:101C5000092B00D09DE0220E5C4B210C002A09D0FC

-:101C6000012018705B4B1B68002B53D0F0B2C9B237

-:101C7000D2B206E01A70564B1B68002B4AD0F0B265

-:101C8000C9B2984746E00A2D07D10A2B00D080E060

-:101C90004E4B02221A70504B07E00B2D0DD10B2B2F

-:101CA00077D14A4B03221A704C4B1B68002B31D062

-:101CB000210CF0B2C9B2220EE3E70C2D06D10C2B99

-:101CC00067D1424B04221A70454B07E00D2D0DD110

-:101CD0000D2B5ED13D4B05221A70424B1B68002B29

-:101CE00018D0210CF0B2C9B2984713E00E2D50D194

-:101CF0000E2B4ED1354B06221A703B4B1B68002B26

-:101D000008D0FE21620C890111406202520EF0B22D

-:101D100011439847354B220C1E70354B240E1A7018

-:101D2000344B1C704CE0042D08D1C0B2FFF78EFE7E

-:101D3000200CC0B2FFF78AFE200E28E06B1F022B9A

-:101D40001ED8C0B2FFF782FE052D08D0200CC0B20D

-:101D5000FFF77CFE072D02D1200EFFF777FE264B02

-:101D6000234A1978117000221A70184B07221A7032

-:101D7000224B1B68002B23D02148012298471FE0EB

-:101D80000F2D12D11C4B1B78002B04D0C0B2FFF7D3

-:101D90005DFE002015E00D4B08221A70194B1B68E0

-:101DA000002BB7D0C0B29847B4E7022DF1D1074B52

-:101DB00009221A70144B1B68002B01D0200C984785

-:101DC0000120F8BD500600201F06002086080020D4

-:101DD0002806002058060020340600205406002063

-:101DE0002C06002038060020300600208A0800203B

-:101DF0008808002089080020870800204C06002061

-:101E00008B080020400600202406002038B5114C25

-:101E10002368002B0CD020684288531C8218157A46

-:101E20000288934212D3FFF7E9FD002323600EE0FE

-:101E3000094B1B78002B02D10120404208E0022010

-:101E4000FFF7DAF920600028E5D1F5E74380281C88

-:101E500038BDC046680600201F06002010B50D4C96

-:101E60002368002B03D02368002B0ED103E00A4B1C

-:101E70001B78002B02D10120404209E00220FFF72D

-:101E8000BBF920600028EED1F5E75A889B18187A34

-:101E900010BDC046680600201F060020054B58886C

-:101EA000054B1B68002B03D01A885B88D31AC01817

-:101EB0007047C0467C0800206806002010B50A4B19

-:101EC0001B78002B0FD0094C2068002803D0FFF7A7

-:101ED00095FD002323600220FFF78EF9002802D031

-:101EE000FFF78CFDF7E710BD1F06002068060020F5

-:101EF000F7B5304D0123071C0C1C2B70002C56D05D

-:101F00002D4E3068002827D12C4A01922C4B1B788B

-:101F1000DBB2002B03D12B700120404249E00320AB

-:101F2000FFF784F9072808D801232B70FFF748FD35

-:101F3000214B186000280FD128700198214B0138DF

-:101F40000190002802D01A78002A02D001221A70CB

-:101F5000E2E700F0C3FAD9E71A4B002231681A70A1

-:101F60004B884020C01A0094844200D90090181C6D

-:101F7000009A08309B1808184B800190A41A00237F

-:101F80000098834204D0F85C019AD0540133F7E7FB

-:101F9000FF184B883F2B06D940230B800320FFF707

-:101FA00091F900233360084B05221A70A6E72C70C4

-:101FB000201CFEBD5D0600206006002009750000A3

-:101FC0001F060020640600205C06002007B56B4653

-:101FD000D8710733181C0121FFF78AFF0EBDFFFFE0

-:101FE000F8B5124B1B78002B1ED0114F114B3C68DB

-:101FF00001261E70104D002C09D000262E7063881B

-:1020000003202380211CFFF75DF93E6009E0FFF704

-:10201000D7FC011E04D003202C70FFF753F900E019

-:102020002E70044A00231370F8BDC0461F0600201E

-:10203000600600205D0600205C06002038B50E4BCF

-:102040001D78EDB2002D15D10C4C2168002906D069

-:102050004B8803200B80FFF735F925600AE0FFF776

-:10206000AFFC011E03D00320FFF72CF902E0044B64

-:1020700001221A7038BDC0465D06002060060020AF

-:102080005C06002010B5041C01F0FCFD201C10BDF6

-:10209000214B70B518681E1C2049214A002809D020

-:1020A000127809680A71421E511D01D10322524261

-:1020B0001A6030E00B6812781A4D1A702B68002BEA

-:1020C00023D0194B00211C68201C01F065FE00285C

-:1020D00016D1201C154901F069FE002810D11449C1

-:1020E000201C02F091F8FC21890502F0B7F901F0FB

-:1020F0008FFE021E272A03D90E480F4901F0AAFDC0

-:102100002B68336000232B6005E00A4801F0BAFD1C

-:102110000A4BFF221A7070BD900600208406002032

-:102120008C0600208806002094060020ABAA2A4DC9

-:102130000000C0417006002091200000FC02002039

-:10214000F8B5051C0C1C1A2874D8002A08D0101CDD

-:102150004843FA21890001F0B3FD4600013601E051

-:1021600003267642201C02F00FFB011C324801F0CE

-:1021700067FE0C236B43314A041CD3185F6872B6A8

-:102180002F4B19788D4215D12E4D296801F0F4FDA1

-:102190002D4B002806D0186801220240013A9619FA

-:1021A0001E6046E0294A1968166001220A402C6028

-:1021B0001A603EE0264B1A2903D826491868097888

-:1021C00001701F490D700C214D4351595519081CC0

-:1021D000083018601F4A287A1070087272B61B689F

-:1021E0001278197B0A431A7362B6A2235B003B6024

-:1021F000154B201C1E60134B00211C6001F0CCFD10

-:10220000002816D1201C144901F0D0FD002810D15F

-:102210001249201C01F0F8FFFC21890502F01EF98B

-:1022200001F0F6FD021E272A03D90D480D4901F0E1

-:1022300011FD62B6F8BDC0460024F4488451000088

-:10224000FC02002094060020900600208806002052

-:10225000840600208C060020ABAA2A4D0000C04155

-:10226000700600209120000010B51A280FD872B611

-:10227000074C2378834209D1064801F003FD064B41

-:10228000064A1B6812781A70FF23237062B610BDCD

-:10229000FC02002070060020840600208C0600202E

-:1022A00008B505480023037004498023044A43739A

-:1022B00002F0BAFA08BDC046700600208520000072

-:1022C0007002002010B5041C006802F0EBFA201C1C

-:1022D00010BD38B5041C0D1C0068013102F0B2FBC2

-:1022E000002801D021C4012038BD436810B5041C6A

-:1022F0008B4208D2FFF7EDFF002805D0A368002B22

-:1023000001D122681370012010BDF8B5041C0F1C08

-:10231000151E05D10368002B00D01A7000230DE0B4

-:10232000111CFFF7E2FF061C2068002E08D10028D0

-:1023300002D002F0B7FA266000236360A36003E0D6

-:10234000A560391C02F0BEFB201CF8BD38B5002387

-:10235000041C0D1C0360436083600373994207D023

-:10236000081C02F0B7FB291C021C201CFFF7CDFF44

-:10237000201C38BD38B5051C00680C1C00280CD08A

-:102380006A688B689A4206D3096802F09BFBA268D0

-:102390000023AA600AE002F085FA236862682B60D5

-:1023A000A3686A60AB60002323606360A36038BDEC

-:1023B00010B5041E8C4201D0FFF7DCFF201C10BDBD

-:1023C00007B5002201AB19705A70191C0122FFF7E2

-:1023D0009CFF0EBD10B50023041C036043608360A6

-:1023E0000373FFF7EDFF201C10BDF7B50368171C42

-:1023F0000022041C0D1C86680092994206D39A198B

-:10240000914203D2CB1A019301230093002F1AD0DB

-:10241000BE19201C311CFFF768FF002813D0009B59

-:10242000A0682168002B09D0019A081889183A1C65

-:1024300002F042FA22680023935503E00818291C91

-:1024400002F040FBA660201CFEBD08B50B1C9A687C

-:102450000968FFF7CAFF08BD13B5002201AB041CD1

-:1024600019705A70191C0122FFF7BFFF201C16BDFE

-:1024700008B5FEF701F9FEF7FDFA00F02FF8FAE7CC

-:1024800008B5FFF70BFD08BD08B5FFF7BFFC08BD99

-:1024900008B5FFF7E3FC08BD08B5FFF7A1FD08BDCF

-:1024A00008B5FFF70BFD08BD08B5081CFFF78EFD4A

-:1024B00008BD08B5081C111CFFF71AFD08BD7047C0

-:1024C000044B00221A711A73FA21034A8900996099

-:1024D0001A60704798060020D052000010B5104CCA

-:1024E0002378002B1BD101232370FFF7D7FC002892

-:1024F00001D0FFF7E4FF00F0E5FA002801D001F079

-:10250000AFF900F02FFD002801D001F049FA00F0EA

-:10251000F5FF002801D001F0E3FA0023237010BD7D

-:10252000A8060020024B1A6801321A607047C046A4

-:102530002805002010B50B4C23685A0301D5FEF77F

-:10254000FFFE23685A0501D500F02EFB23681A050B

-:1025500001D500F079FD2368DA04ECD501F040F8EC

-:10256000E9E7C0463480044008B5FFF7E3FFFFFF0A

-:10257000014B00221A607047008104407047FFFF42

-:10258000024A136818181060181C704700030020D6

-:10259000EFF31380002821D1EFF31082002A1FD11E

-:1025A000EFF30583002B0FD0101C0F2B0ED91A1C34

-:1025B000103A92080B4903209200034052188340BE

-:1025C0001068D840C0B201E080204000EFF31182D3

-:1025D000002A05D0824203D2101C01E001204042B3

-:1025E0007047C04600E400E0F8B5061C0D1C171C3F

-:1025F0000024301C391C01F0A7FB092901D8303117

-:1026000000E03731C9B22955301C391C01F058FBA4

-:10261000061E01D00134ECE72B1958702B1C5A1BF5

-:10262000A24206DA1A78295D19702A550133013C55

-:10263000F5E7281CF8BDFFFF264B80221968D20061

-:102640000A431A60244A00231370244A1370244A50

-:102650001370244A1370244A1370244B1B78032BE5

-:1026600009D0152B04D0002B08D1214A214B04E0BE

-:102670001F4A214B01E0214A214B1A60214B1B7854

-:10268000042B0BD0052B05D0012B0BD1D1229200AE

-:102690001D4B06E0D12292001C4B02E091221C4B04

-:1026A00092001A601B4BC204D20E1A70C0B20022F4

-:1026B00058709A702C22DA70174BFF2219689143D8

-:1026C0000A1C40210A431A60144B802252011A60EE

-:1026D0007047C0463480044035070020B106002012

-:1026E0003C07002036070020B0060020F20600203C

-:1026F0001303000040A0044018C00440130200006F

-:10270000049004400403002044A004401CC0044082

-:102710000890044000A006400CE400E000E100E066

-:1027200010B5174B132299789143032202400A43B4

-:10273000410701D510210A439A700F221049024027

-:10274000042A03D18A79402422438A715A791021BC

-:102750008A43084200D00A435A7199791022914362

-:10276000840600D51143064A9971C10506D55378F0

-:1027700011782020DBB201431170537010BDC046A8

-:1027800000A0064008B5124B1B685A051ED5114B18

-:102790001B78DBB2002B02D0FFF7A0FEF7E70E4A52

-:1027A0008021490111600D4A0D49D3700422FF3286

-:1027B0000A600C490A600C4A13700C4A13700C4BE7

-:1027C0001B68002B02D00B4A12781A7108BDC04654

-:1027D00034800440B006002080E100E000A0064004

-:1027E00040A0044044A0044035070020B10600206A

-:1027F000AC060020F306002038B5041C0B4B1D78F6

-:10280000EDB2002DFAD1201C0121FEF7EFFB291CAF

-:10281000201CFEF7B9FB0C225443054B054AE15836

-:102820001C191160044B227A1A7038BDB0060020C2

-:1028300084510000380700203407002030B50029FB

-:1028400001D080231843224A1378141C98423ED0AA

-:10285000204A1268550539D57F221340042B0FD02A

-:1028600004D8012B0FD100221B4B0BE0052B04D009

-:10287000182B08D10022194B04E00022184B01E06C

-:10288000184B00221A604423002900D060237F22C5

-:102890000240042A15D006D8012A17D1C02292007E

-:1028A00013430D4A11E0052A06D0182A0ED18022C2

-:1028B000D2001343094A08E0C02292001343084A99

-:1028C00003E0802292001343064A1360207030BD5B

-:1028D000040300203480044044A0044050D004404D

-:1028E0001CC004400890044010B51A4A137898425E

-:1028F0002ED0194909684C0529D5032B0FD004D8CF

-:10290000002B0FD115490B600CE0152B04D0192BAF

-:1029100008D10021124B04E00021124B01E0124BC0

-:102920000021196003280FD004D800280FD10F49C7

-:102930000A4B0BE0152804D0192808D10C49084B84

-:1029400004E00A49074B01E00A49074B196010707F

-:1029500010BDC046F20600203480044040A0044070

-:1029600054D0044018C004400490044013030000F5

-:10297000130400001302000038B50E4B1A68002340

-:10298000510514D50C4C1A2810D80C2343430B4A7C

-:102990000B4D9958D3181B7A216001212B70FEF73B

-:1029A00025FB23682A781A72012300E02360181C93

-:1029B00038BDC04634800440AC060020845100007D

-:1029C000F306002000207047F8B5214B071C1B6858

-:1029D0005A053BD51F4B1B68002B02D01E4A1278AC

-:1029E0001A711E4E002334783F220134A2425B410B

-:1029F0005B421C401A4D2B78A3421CD1FFF7C8FD47

-:102A0000402813DC174A13795BB2002BF2DA2B78DB

-:102A1000002101333F209842494149420B4012496D

-:102A2000C95CDBB2C9B2D1712B70E3E7FF28E1DDED

-:102A3000FFF754FDDEE70C4BFFB21F550B4B012295

-:102A40001A70084BE4B2AC223470DA70F8BDC0469C

-:102A50003480044038070020340700203C07002061

-:102A60003607002000A00640B2060020B006002075

-:102A700038B5041C4518AC4204D02078FFF7A4FFF9

-:102A80000134F8E738BDFFFF08B5044B1B78002B75

-:102A900002D0FFF723FDF8E708BDC046B0060020CE

-:102AA000064B074A1B781078DBB2C0B2834201D3D1

-:102AB0003F3000E00138C01A7047C0463C07002094

-:102AC00036070020054B1878054BC0B21B78DBB2E7

-:102AD000984200D24030C01A7047C04635070020E7

-:102AE000B106002010B5124B12491A780B78D2B2F9

-:102AF000DBB29A4219D001333F2400209C4240416E

-:102B0000404203400C48DCB2C05C0C700B49C0B2C0

-:102B1000096800290BD09A4200D24032D31A1A2BEE

-:102B200005DC074B1B780B7201E00120404210BD11

-:102B300035070020B1060020F4060020AC06002076

-:102B4000F30600200A4B1A780A4B1B78DBB29A4234

-:102B50000AD0013300223F21994252415242134090

-:102B6000054AD05CC0B201E0012040427047C04637

-:102B700035070020B1060020F4060020064B1A7825

-:102B8000064BD2B21A70064B1B68002B02D0054AC6

-:102B900012781A727047C046B1060020350700202F

-:102BA000AC060020F306002030B5254A13799906BB

-:102BB00012D52449D4790B78002001333F259D425A

-:102BC0004041404203402048E4B20078834203D0B1

-:102BD0001E48C454DBB20B70D178194CC9B24BB249

-:102BE000002B1ADA23795BB2002B16DA184B19483E

-:102BF0001D780378DBB29D4202D16C23E3700CE0B8

-:102C0000013300243F259D42644164422340124C1D

-:102C1000E45CDBB2E4B2D4710370402319420ED0FD

-:102C2000117919420BD00D4B002119700C4B1B6808

-:102C30008B4202D00B49097819722C23D37030BD16

-:102C400000A0064035070020B1060020F406002051

-:102C50003C07002036070020B2060020B006002006

-:102C60003807002034070020164B80221968120113

-:102C70000A431A60144A00231370144A144913704B

-:102C8000144A1370144A1370144A1370144A1160D2

-:102C9000144AD12189001160134AC104C90EC0B27F

-:102CA0001170507093702C23D370104B104A196818

-:102CB0000A408021C9010A431A600E4B802292010A

-:102CC0001A60704734800440B00700204507002098

-:102CD00013030000B8070020B107002044070020BC

-:102CE0000CB0044010B0044000B006400CE400E01A

-:102CF000FF00FFFF00E100E010B5174B13229978A9

-:102D00009143032202400A43410701D510210A439F

-:102D10009A700F2210490240042A03D18A79402474

-:102D200022438A715A7910218A43084200D00A430B

-:102D30005A71997910229143840600D51143064AAD

-:102D40009971C10506D5537811782020DBB2014373

-:102D50001170537010BDC04600B0064008B5124B4C

-:102D60001B681A051ED5114B1B78DBB2002B02D055

-:102D7000FFF7B4FBF7E70E4A8021890111600D4A85

-:102D80000D49D3700422FF320A600C490A600C4AD4

-:102D900013700C4A13700C4B1B68002B02D00B4AAB

-:102DA00012781A7108BDC0463480044044070020E0

-:102DB00080E100E000B006400CB0044010B00440D8

-:102DC000B007002045070020400700206E070020C4

-:102DD00038B5041C0B4B1D78EDB2002DFAD1201C28

-:102DE0000121FEF703F9291C201CFEF7CDF80C2267

-:102DF0005443054B054AE1581C191160044B227AD3

-:102E00001A7038BD4407002084510000B407002028

-:102E1000AF0700207047704738B50E4B1A68002383

-:102E2000110514D50C4C1A2810D80C2343430B4A17

-:102E30000B4D9958D3181B7A216001212B70FEF796

-:102E4000D5F823682A781A72012300E02360181C41

-:102E500038BDC04634800440400700208451000043

-:102E60006E07002000207047F8B5214B071C1B6837

-:102E70001A053BD51F4B1B68002B02D01E4A127847

-:102E80001A711E4E0023347827220134A2425B417E

-:102E90005B421C401A4D2B78A3421CD1FFF778FBF4

-:102EA000402813DC174A13795BB2002BF2DA2B7837

-:102EB0000021013327209842494149420B401249E1

-:102EC000C95CDBB2C9B2D1712B70E3E7FF28E1DD49

-:102ED000FFF704FBDEE70C4BFFB21F550B4B012243

-:102EE0001A70084BE4B2AC223470DA70F8BDC046F8

-:102EF00034800440B4070020AF070020B80700204A

-:102F0000B107002000B0064046070020440700201B

-:102F100038B5041C4518AC4204D02078FFF7A4FF54

-:102F20000134F8E738BDFFFF08B5044B1B78002BD0

-:102F300002D0FFF7D3FAF8E708BDC04644070020E7

-:102F4000064B074A1B781078DBB2C0B2834201D32C

-:102F5000273000E00138C01A7047C046B80700208B

-:102F6000B1070020054B1878054BC0B21B78DBB2C7

-:102F7000984200D24030C01A7047C046B0070020C7

-:102F80004507002010B5124B12491A780B78D2B2BF

-:102F9000DBB29A4219D001333F2400209C424041C9

-:102FA000404203400C48DCB2C05C0C700B49C0B21C

-:102FB000096800290BD09A4200D24032D31A1A2B4A

-:102FC00005DC074B1B780B7201E00120404210BD6D

-:102FD000B0070020450700206F07002040070020B1

-:102FE0006E0700200A4B1A780A4B1B78DBB29A4214

-:102FF0000AD0013300223F219942524152421340EC

-:10300000054AD05CC0B201E0012040427047C04692

-:10301000B0070020450700206F070020064B1A78F4

-:10302000064BD2B21A70064B1B68002B02D0054A21

-:1030300012781A727047C04645070020B00700207A

-:10304000400700206E07002030B5254A1379990605

-:1030500012D52449D4790B78002001333F259D42B5

-:103060004041404203402048E4B20078834203D00C

-:103070001E48C454DBB20B70D178194CC9B24BB2A4

-:10308000002B1ADA23795BB2002B16DA184B194899

-:103090001D780378DBB29D4202D16C23E3700CE013

-:1030A0000133002427259D42644164422340124C91

-:1030B000E45CDBB2E4B2D4710370402319420ED059

-:1030C000117919420BD00D4B002119700C4B1B6864

-:1030D0008B4202D00B49097819722C23D37030BD72

-:1030E00000B00640B0070020450700206F07002011

-:1030F000B8070020B1070020460700204407002041

-:10310000B4070020AF070020204B8022196852012D

-:103110000A431A601E4A002313701E4A13701E4A87

-:1031200013701E4A13701E4A13701E4B1B78062B19

-:1031300004D0072B05D11C4A1C4B01E01A4A1C4B3A

-:103140001A601C4B1B78082B05D0142B07D1D122F9

-:103150009200194B02E0D122184B92001A60184BD2

-:10316000C204D20E1A70C0B2002258709A702C227B

-:10317000DA70144B144A19680A408021C9030A43C3

-:103180001A60124B8022D2011A60704734800440CA

-:103190002C080020C1070020340800202D08002042

-:1031A000C0070020050300201303000008C00440EE

-:1031B00010C004400603002014C004400CC00440AA

-:1031C00000C006400CE400E0FFFF00FF00E100E06B

-:1031D00010B5174B132299789143032202400A43FA

-:1031E000410701D510210A439A700F22104902406D

-:1031F000042A03D18A79402422438A715A79102102

-:103200008A43084200D00A435A71997910229143A7

-:10321000840600D51143064A9971C10506D5537835

-:1032200011782020DBB201431170537010BDC046ED

-:1032300000C0064008B5124B1B68DA041ED5114BBE

-:103240001B78DBB2002B02D0FFF748F9F7E70E4AF4

-:103250008021C90111600D4A0D49D3700422FF324B

-:103260000A600C490A600C4A13700C4A13700C4B2C

-:103270001B68002B02D00B4A12781A7108BDC04699

-:1032800034800440C007002080E100E000C0064018

-:1032900008C004400CC004402C080020C1070020D6

-:1032A000BC070020EA07002038B5041C0B4B1D7832

-:1032B000EDB2002DFAD1201C0121FDF797FE291C4B

-:1032C000201CFDF761FE0C225443054B054AE158D2

-:1032D0001C191160044B227A1A7038BDC0070020F7

-:1032E00084510000300800202B08002030B5002950

-:1032F00001D080231843154A1378141C984224D017

-:10330000134A1268D5041FD57F221340082B04D01E

-:10331000142B05D100220F4B01E00F4B00221A6045

-:103320004423002900D060237F220240082A06D0CF

-:10333000142A09D1C02292001343064A03E0C02296

-:1033400092001343044A1360207030BD060300202E

-:103350003480044014C004400CC0044010B50F4A2F

-:103360001378984218D00E490968CC0413D5062B5F

-:1033700004D0072B05D100210A4B01E00A4B0021A4

-:103380001960062804D0072805D10849054B01E03B

-:103390000649054B1960107010BDC046050300209A

-:1033A0003480044008C0044010C0044013030000EF

-:1033B00038B50E4B1A680023D10414D50C4C1A28CA

-:1033C00010D80C2343430B4A0B4D9958D3181B7A42

-:1033D000216001212B70FDF709FE23682A781A72FB

-:1033E000012300E02360181C38BDC046348004402F

-:1033F000BC07002084510000EA070020002070472D

-:10340000F8B5214B071C1B68DA043BD51F4B1B6822

-:10341000002B02D01E4A12781A711E4E00233478F7

-:1034200027220134A2425B415B421C401A4D2B789B

-:10343000A3421CD1FFF7ACF8402813DC174A1379DC

-:103440005BB2002BF2DA2B7800210133272098425F

-:10345000494149420B401249C95CDBB2C9B2D17142

-:103460002B70E3E7FF28E1DDFFF738F8DEE70C4BD0

-:10347000FFB21F550B4B01221A70084BE4B2AC226D

-:103480003470DA70F8BDC046348004403008002043

-:103490002B080020340800202D08002000C0064022

-:1034A000C2070020C007002038B5041C4518AC42F4

-:1034B00004D02078FFF7A4FF0134F8E738BDFFFF00

-:1034C00008B5044B1B78002B02D0FFF707F8F8E78C

-:1034D00008BDC046C0070020064B074A1B7810787D

-:1034E000DBB2C0B2834201D3273000E00138C01AFA

-:1034F0007047C046340800202D080020054B18787E

-:10350000054BC0B21B78DBB2984200D24030C01AE3

-:103510007047C0462C080020C107002010B5124B90

-:1035200012491A780B78D2B2DBB29A4219D0013321

-:103530003F2400209C424041404203400C48DCB202

-:10354000C05C0C700B49C0B2096800290BD09A42CC

-:1035500000D24032D31A1A2B05DC074B1B780B72B2

-:1035600001E00120404210BD2C080020C1070020CE

-:10357000EB070020BC070020EA0700200A4B1A785E

-:103580000A4B1B78DBB29A420AD0013300223F215A

-:103590009942524152421340054AD05CC0B201E008

-:1035A000012040427047C0462C080020C10700207F

-:1035B000EB070020064B1A78064BD2B21A70064B66

-:1035C0001B68002B02D0054A12781A727047C04659

-:1035D000C10700202C080020BC070020EA070020BB

-:1035E00030B52E4A1379990624D52D49D4790B7814

-:1035F000002001333F259D4240414042034029487D

-:10360000E4B20078834203D02748C454D8B208708B

-:103610002649086800280DD025490978C9B28B428F

-:1036200001D35B1A01E05B1A4033272B02DD214BEB

-:103630001B780371D178194CC9B24BB2002B1ADA3E

-:1036400023795BB2002B16DA1B4B19481D780378DF

-:10365000DBB29D4202D16C23E3700CE00133002405

-:1036600027259D42644164422340144CE45CDBB254

-:10367000E4B2D4710370402319420ED0117919427B

-:103680000BD00F4B002119700E4B1B688B4202D0E0

-:103690000D49097819722C23D37030BD00C0064043

-:1036A0002C080020C1070020EB070020BC070020E9

-:1036B0002D080020EA07002034080020C20700205F

-:1036C000C0070020300800202B0800201FB572B66C

-:1036D000154B70221A70154A41211170144A0F219E

-:1036E000117080221A701A7852B2002AFBDA114B3C

-:1036F000186862B6104B984201D80A23584301ACAF

-:10370000211C0A22FEF770FF0023E15C0B4A00290E

-:1037100005D058001018013341800A2BF5D1013330

-:103720005B0013701FBDC04600000240070002404E

-:1037300006000240080002407F969800E403002043

-:1037400008B50368C9B21B68984708BD08B5036887

-:10375000C9B21B68984708BD08B50368C9B21B68A1

-:10376000984708BD08B50368C9B21B68984708BDEB

-:1037700008B5044B4808C01800F0A2FAFEF75CFF39

-:1037800008BDC046C0C62D0010B5064B4808C0187D

-:10379000141C00F095FAFEF74FFF201CFEF7C0FF47

-:1037A00010BDC046C0C62D0008B5FEF7EBFF08BD32

-:1037B00008B5081CFFF720F808BD08B5081CFFF77E

-:1037C00093F808BD08B5081C111CFFF737F808BDB1

-:1037D00008B5081CFFF7D0F8431E9841C0B208BDD9

-:1037E00008B5081CFFF7EEF8431E9841C0B208BDAB

-:1037F00008B5FFF767F908BD08B5FFF7A3F908BDDD

-:1038000008B5FFF76FF908BD08B5FFF73DF908BD2A

-:1038100008B5FFF7B3F908BD08B5FFF741F908BDD2

-:1038200008B5081CFFF7D0F8012008BD08B5081C32

-:10383000FFF7CAF8012008BD10B5081C141C111CA4

-:10384000FFF716F9201C10BD38B5081C0D1C01F03F

-:1038500041F9041C211C281CFFF70AF9201C38BD63

-:103860007047FFFF044B00221A711A73FA21034AB2

-:10387000890099601A60704738080020585300008A

-:1038800008B50368C9B21B68984708BD08B5036846

-:10389000C9B21B68984708BD08B50368C9B21B6860

-:1038A000984708BD08B50368C9B21B68984708BDAA

-:1038B00008B5044B4808C01800F002FAFFF7D4F925

-:1038C00008BDC04660E3160010B5064B4808C01896

-:1038D000141C00F0F5F9FFF7C7F9201CFFF70CFAEC

-:1038E00010BDC04660E3160008B5FFF737FA08BD03

-:1038F00008B5081CFFF76CFA08BD08B5081CFFF7EF

-:103900008AFA08BD08B5081C111CFFF783FA08BD28

-:1039100008B5081CFFF780FA431E9841C0B208BDE5

-:1039200008B5081CFFF79EFA431E9841C0B208BDB7

-:1039300008B5FFF717FB08BD08B5FFF753FB08BD37

-:1039400008B5FFF71FFB08BD08B5FFF7EDFA08BD86

-:1039500008B5FFF763FB08BD08B5FFF7F1FA08BD2E

-:1039600008B5081CFFF780FA012008BD08B5081C3F

-:10397000FFF77AFA012008BD10B5081C141C111CB1

-:10398000FFF7C6FA201C10BD38B5081C0D1C01F04D

-:10399000A1F8041C211C281CFFF7BAFA201C38BD12

-:1039A0007047FFFF044B00221A711A73FA21034A71

-:1039B000890099601A60704748080020B8530000D9

-:1039C00008B50368C9B21B68984708BD08B5036805

-:1039D000C9B21B68984708BD08B50368C9B21B681F

-:1039E000984708BD08B50368C9B21B68984708BD69

-:1039F00008B5044B4808C01800F062F9FFF784FBD3

-:103A000008BDC04660E3160010B5064B4808C01854

-:103A1000141C00F055F9FFF777FB201CFFF7D8FBCB

-:103A200010BDC04660E3160008B5FFF703FC08BDF3

-:103A300008B5081CFFF738FC08BD08B5081CFFF7DF

-:103A40008DFC08BD08B5081C111CFFF74FFC08BD14

-:103A500008B5081CFFF7ACFC431E9841C0B208BD76

-:103A600008B5081CFFF7CAFC431E9841C0B208BD48

-:103A700008B5FFF743FD08BD08B5FFF77FFD08BD9A

-:103A800008B5FFF74BFD08BD08B5FFF719FD08BDE8

-:103A900008B5FFF78FFD08BD08B5FFF71DFD08BD90

-:103AA00008B5081CFFF7ACFC012008BD08B5081CD0

-:103AB000FFF7A6FC012008BD10B5081C141C111C42

-:103AC000FFF7F2FC201C10BD38B5081C0D1C01F0DE

-:103AD00001F8041C211C281CFFF7E6FC201C38BD43

-:103AE0007047FFFF044B00221A711A73FA21034A30

-:103AF000890099601A607047580800201854000027

-:103B000008B50B4B1A68002A04D001221A60094B31

-:103B10001B689847084B1B78002B08D0074B1A6886

-:103B2000002A04D001221A60024B5B68984708BD46

-:103B30000C7103406C0800206A0800201C710340CF

-:103B4000064B8022196812040A431A60044B0022B3

-:103B50001A60044B01221A707047C0463C80044032

-:103B6000007003406A080020054B01221A60054BD3

-:103B7000054A19680A401A60044B00221A707047FF

-:103B8000007003403C800440FFFF7FFF6A08002074

-:103B900070B544780E4D0F4E23015A199B190E4DE6

-:103BA0000669A40042606651002483601C601160B5

-:103BB00003221A60094B417B094A18680904024034

-:103BC0000A431A60074B8022D2031A6070BDC046B8

-:103BD00000710340087103406C08002014E400E009

-:103BE000FFFF00FF00E100E0F8B50C4B061C1B785E

-:103BF0000F1C002B01D1FFF7A3FF094D2C78002CDF

-:103C000004D06B780020834207D10124301C7470EB

-:103C1000391CFFF7BDFF01202855F8BD6A080020B8

-:103C20006808002008B5836800221A608021074BCD

-:103C3000C90319604178064B5A541A78002A04D1F6

-:103C40005B78002B01D1FFF78FFF08BD80E100E01A

-:103C50006808002070B50378041C0E1C151C002B8E

-:103C600003D0FFF7DFFF002323702661201C291CEF

-:103C7000FFF7BAFF002802D00123237000E0207074

-:103C8000207870BD037810B5041C002B01D0FFF71D

-:103C9000C9FF0023237010BD02B4714649084900D2

-:103CA000095C49008E4402BC7047C04603B47146AB

-:103CB000490840004900095A49008E4403BC704736

-:103CC000002934D00123002210B488422CD30124CF

-:103CD0002407A14204D2814202D209011B01F8E764

-:103CE000E400A14204D2814202D249005B00F8E71D

-:103CF000884201D3401A1A434C08A04202D3001B49

-:103D00005C0822438C08A04202D3001B9C0822437B

-:103D1000CC08A04202D3001BDC082243002803D0B9

-:103D20001B0901D00909E3E7101C10BC70470028EB

-:103D300001D00020C04307B4024802A140180290FD

-:103D400003BDC046190000000029F0D003B5FFF7FD

-:103D5000B9FF0EBC4243891A1847C0467047C04697

-:103D60008446081C6146FFE71FB500F001FA0028F1

-:103D700001D40021C8421FBD10B500F087F94042B0

-:103D8000013010BD10B500F0F3F9002801DB002070

-:103D900010BD012010BDC04610B500F0E9F90028A3

-:103DA00001DD002010BD012010BDC04610B500F09F

-:103DB00097F9002801DC002010BD012010BDC0468D

-:103DC00010B500F08DF9002801DA002010BD0120A7

-:103DD00010BDC0461C2101231B04984201D3000CD6

-:103DE00010391B0A984201D3000A08391B0998426E

-:103DF00001D30009043902A2105C40187047C04684

-:103E000004030202010101010000000000000000A3

-:103E10009E2110B5C905041CFFF7D2FF002803D16D

-:103E2000201C00F091FC10BD9E21C905201C00F053

-:103E300015FB00F089FC80231B06C018F3E7C04681

-:103E4000F0B55F4656464D464446F0B4460245003E

-:103E5000C00F85B00F1C760A2D0E804641D0FF2D75

-:103E600026D08024240400212643F6007F3D894685

-:103E70008B46F90F7C027800640A000E00918A4696

-:103E80003CD0FF2834D080231B041C430023E400D3

-:103E90007F380193009F4346019A7B4049469C46E8

-:103EA00011430F2900D971E0764F89007F58BF4632

-:103EB000002E3ED10822022391469B46D9E75A465E

-:103EC000341CC24601920199022937D0032900D13E

-:103ED000CFE0012900D0ABE053460B400022002682

-:103EE00032E0002E19D10421012289469346C0E711

-:103EF000221C531E9A4102320192CBE701270197FF

-:103F0000002CC7D0201CFFF765FF431F9C40762381

-:103F10005B420021181A0191BCE7301CFFF75AFFE1

-:103F20007625431F9E406D4200232D1A99469B46DD

-:103F30009FE70C23032199468B469AE7D446012339

-:103F400067463B40FF2200267602D205700ADB0757

-:103F50001043184305B03CBC90469946A246AB4678

-:103F6000F0BD80260023F603FF22EDE700220026A5

-:103F7000EAE78020C00306423BD0044239D1061C48

-:103F800026437602760A009BFF22DDE7281A03907B

-:103F900076016401A64239D3361B1A22012301207F

-:103FA000311C5B007600002901DBB44201D8361BCE

-:103FB0000343013A002AF3DC741EA641341C1C435F

-:103FC000039A7F32002A27DD630704D00F232340A2

-:103FD000042B00D00434270103D52B4B039A1C403B

-:103FE0008032FE2A0BDD012361460B40FF220026B2

-:103FF000AAE706437602760A4346FF22A4E7A40115

-:1040000001236746660AD2B23B409DE7039F1B220D

-:10401000013F03970023C2E77E23039F5B42DB1B24

-:104020001B2B07DD012361460B40002200268BE796

-:10403000D446C5E7221CDA40039B9E339C40231CD8

-:104040005C1EA34113435A0704D00F221A40042ACE

-:1040500000D004335F0105D5012361460B400122E6

-:10406000002671E79E01624601231340760A002272

-:104070006AE78026F60326437602760A5346FF2235

-:1040800062E7C04670540000FFFFFFF74A02430298

-:1040900070B55C0A550A43004A001B0EC60F120E8B

-:1040A000C90FFF2B05D0FF2A08D0012093420BD067

-:1040B00070BD0120002CFBD1FF2AF6D10120002D7C

-:1040C000F6D101209342F3D1AC42F1D18E4205D01A

-:1040D000002BEDD1201C441EA041E9E70020E7E7BA

-:1040E0004A024302F0B55C0A550A43004A001B0E1F

-:1040F000C60F120EC90FFF2B31D0FF2A34D0002B70

-:1041000016D1604260418446002A14D0002820D194

-:104110008E4217D1934215DC04DBAC4212D800204A

-:10412000AC4212D2704270414042012318430CE06D

-:10413000002AEDD194466F426F416046002805D1B8

-:10414000002FE5D0704201231843F0BD0020002F5E

-:10415000FBD148424841404201231843F5E7002C77

-:10416000CBD002204042F0E7002DC8D0F9E7C0468E

-:104170004A024302F0B55C0A550A43004A001B0E8E

-:10418000C60F120EC90FFF2B27D0FF2A29D0002BF4

-:1041900010D0002A15D194466F426F416046002826

-:1041A00015D00020002F04D148424841404201234D

-:1041B0001843F0BD604260418446002AECD00028DC

-:1041C000F2D18E4211D0704201231843F1E7002F43

-:1041D000F7D0704201231843EBE70220002CE8D10E

-:1041E000D3E70220002DE4D1D1E79342EBDC04DBDE

-:1041F000AC42E8D80020AC42DBD270427041404271

-:1042000001231843D5E7C046F0B55F4656464D46F4

-:104210004446F0B44402460083B00F1C640A360ED4

-:10422000C50F002E41D0FF2E22D080231B0400207A

-:104230001C43E4007F3E82468046391C4B007F02CF

-:10424000C90F7F0A1B0E8B463BD0FF2B34D0802238

-:1042500012041743FF007F3B00215A466A40019237

-:1042600052460A430F2A63D87A48920082589746EA

-:10427000002C3FD10822022392469846DDE70195A3

-:10428000404602282AD1019A01251540FF23002427

-:104290006402DB05600AED071843284303B03CBC09

-:1042A00090469946A246AB46F0BD002C27D104208B

-:1042B000012282469046C0E7391C4A1E91410231D4

-:1042C000CBE70121002FC8D0381CFFF783FD431F27

-:1042D0009F4076235B421B1A0021BEE7032800D1D2

-:1042E000AEE001284FD1019842461040C5B20023EC

-:1042F0000024CDE70C2303209A4680469DE7201C2E

-:10430000FFF768FD7626431F9C4076420023361A4D

-:104310009A46984691E780240025E403FF23B7E7F7

-:104320005B463C1C01938846AAE73C1C8846A7E7ED

-:10433000250C24043A0C240C3F04F6183F0C211CD5

-:10434000231C794353436F435543FB180A0C9B18B6

-:10435000B1469F4202D980225202AD1809041A04C4

-:10436000090C521894011B0C611E8C41920EED1821

-:104370001443AD012C43230105D50122630801201C

-:10438000144081441C434B467F33002B2DDD6007D6

-:1043900004D00F222240042A00D00434220103D585

-:1043A0002D4B1C404B468033FE2B17DD019B012516

-:1043B0001D400024FF236BE78020C003044208D087

-:1043C000074206D1041C3C436402640A5D46FF2395

-:1043D0005EE704436402640AFF2359E70198A401DD

-:1043E0000125640ADBB2054052E77E235B424A4660

-:1043F0009B1A1B2B05DD019B01251D40002400237A

-:1044000046E7221CDA404B469E339C40231C5C1E30

-:10441000A3411343580704D00F221A40042A00D0A6

-:1044200004335A0105D5019B01251D4000240123B9

-:104430002EE701989C010125640A0540002327E727

-:104440008027FF03019B3C43640201251D40640A51

-:10445000FF231DE7B0540000FFFFFFF7F8B5C20FC0

-:10446000430244004D024800240E161C9B09000E16

-:10447000C90FAD09FF2800D183E0012779408A42A6

-:104480005CD0221A002A00DC8EE000281ED1002D0C

-:1044900000D07AE0580704D00F221A40042A00D036

-:1044A00004338021C90401221940324000293AD046

-:1044B0000134FF2C00D183E09B015B0A5B02E4B274

-:1044C000E405580AD20720431043F8BDFF2CE1D081

-:1044D0008021C9040D431B2A00DD31E1291C202065

-:1044E000D140821A95406A1E95410D435B1B5801CD

-:1044F000D0D59B019F09381CFFF76CFC421F9740E9

-:1045000094425FDC141B1F231B1B3A1C9F40611C41

-:104510003B1CCA405F1EBB4113430024BAE7131E75

-:10452000B8D100230022DB08FF2C04D1002B47D098

-:104530008020C00303435B025B0ABFE7211A002906

-:1045400044DD002827D0FF2CA4D08020C0040543E0

-:104550001B2900DDF2E0281C2027C840791A8D4075

-:10456000691E8D4105435B19590100D492E701345E

-:10457000FF2C59D0734901221A400B405B081343AA

-:1045800088E7002D00D07AE777E7013A002AADD01E

-:10459000FF2CA0D17EE7002D00D17BE70139002957

-:1045A000E1D0FF2CD4D175E7002A1BD1621CD2B216

-:1045B000012A4BDD5F1B7A0123D5EF1A0E1C9AE707

-:1045C00000237BE75F4BA41A3B4063E7002946D1F9

-:1045D000611CC8B2012829DDFF2924D0EB185B0833

-:1045E0000C1C57E7002C13D0FF2818D08024E404BB

-:1045F000524223431B2A4DDD0123EB1A041C0E1CDF

-:1046000075E7002F00D076E70023002200248AE718

-:10461000002B3BD0D243002AEFD0FF28EAD12B1C3D

-:10462000FF240E1C36E7FF2400237CE7002C5CD11E

-:10463000002B00D180E0002D00D12BE75B19580141

-:1046400000D427E73F4A0124134023E7002C15D16B

-:10465000002B40D1002D63D02B1C0E1C1AE7002C20

-:1046600021D1002B54D0C943002904D0FF284CD0BD

-:104670001B2958DD01235B19041C75E7002B19D198

-:10468000002D48D02B1C0E1CFF2403E72B1C041C00

-:104690000E1CFFE61C1C2026D440B21A93405A1E62

-:1046A00093412343A9E7FF282FD08024E404494203

-:1046B0002343DDE7FF24002D00D1EBE68022DB0859

-:1046C000D203134204D0ED08154201D12B1C0E1C5D

-:1046D000DB00FF24DEE6002D00D1DBE65A1B500193

-:1046E00000D41CE7EB1A0E1CD4E6002B0DD0FF24DF

-:1046F000002D00D1CEE68022DB08D2031342E7D0A2

-:10470000ED081542E4D12B1CE2E72B1CFF24C1E687

-:104710002B1C041CBEE6802300229B04FF2402E71E

-:10472000231C0022FFE61C1C2027CC40791A8B405A

-:10473000591E8B4123439EE72B1CABE6012512E754

-:104740000125D3E6FFFFFFFB4302590A4300C20FD6

-:104750001B0E00207E2B0DDD9D2B0CDC8020000429

-:104760000143952B0ADC9620C31AD9404842002AFF

-:1047700000D1081C7047034BD018FBE7963B9940CB

-:10478000F4E7C046FFFFFF7F10B5041E33D0FFF7EC

-:1047900021FB9E231B1A962B09DC083884406402F7

-:1047A000640ADBB26402DB05600A184310BD992B72

-:1047B0000ADD0522121A211CD1400A1C011C1B31E2

-:1047C0008C40611E8C411443052801DD421F94403A

-:1047D000144A2240610704D00F210C40042C00D061

-:1047E000043251010AD59F23181AFF2816D09401CC

-:1047F000640AC3B2D6E700230024D3E7D208FF2B14

-:1048000003D05402640ADBB2CCE7002A06D080242D

-:10481000E40314436402640AFF23C3E7FF23002474

-:10482000C0E7C046FFFFFFFB08B5031C081C191CAE

-:1048300000F002F808BDFFFF38B5051C05480C1C48

-:10484000131C002804D00220291C221C00E000BFF9

-:1048500038BDC0460000000070B50E4B0E4D002460

-:10486000ED1AAD101E1CAC4204D0A300F3589847BB

-:104870000134F8E700F058FE084B094D0024ED1A0A

-:10488000AD101E1CAC4204D0A300F358984701346D

-:10489000F8E770BD34550000345500003455000071

-:1048A0005055000008B5034B011C186800F02EF8A5

-:1048B00008BDC0465C04002010B50023934203D01D

-:1048C000CC5CC4540133F9E710BD70B5814201D30B

-:1048D00000230CE08C18A042FAD28518131C013B6F

-:1048E0000BD351426618F65C6918CE54F7E7934231

-:1048F00003D0CC5CC4540133F9E770BD031C8218AB

-:10490000934202D019700133FAE7704730B500299D

-:1049100040D004390B68002B00DAC9181E4A13680E

-:10492000141C002B02D14B60116033E099420FD26E

-:1049300008680A189A4205D113685268C0180860BE

-:104940004A6000E04B60216024E08A4203D8131CD7

-:104950005A68002AF9D11D685C198C420BD109688C

-:10496000691858181960904214D1146852680919CE

-:1049700019605A600EE08C4202D90C23036009E0F2

-:1049800008680C18944203D1146852680019086032

-:104990004A60596030BDC0467808002070B50323D6

-:1049A000CD1C9D430835061C0C2D01D20C2501E0C1

-:1049B000002D3FDB8D423DD3204B1C681A1C211C6F

-:1049C000002913D00868431B0DD40B2B02D90B60B0

-:1049D000CC181EE08C4202D1636813601AE048686C

-:1049E00060600C1C16E00C1C4968E9E7144C206858

-:1049F000002803D1301C00F031F82060301C291C45

-:104A000000F02CF8431C15D0C41C03239C438442A3

-:104A10000AD12560201C0B300722231D9043C31AA6

-:104A20000BD05A42E25008E0211A301C00F016F870

-:104A30000130EED10C233360002070BD78080020D7

-:104A40007408002008B50A1C0349031C0868191CD7

-:104A500000F02DFB08BDC0465C04002038B5074CB3

-:104A60000023051C081C2360FDF78AFD431C03D1AD

-:104A70002368002B00D02B6038BDC046D40800202E

-:104A80000EB400B59CB01DAB04CB822202A99200EB

-:104A90008A810A4A02908A604A6101225242CA818E

-:104AA000074A086110681D9A019300F07BF8029A8A

-:104AB000002313701CB008BC03B01847FFFFFF7F32

-:104AC0005C040020031C0A7801311A700133002AAB

-:104AD000F9D170470023C25C0133002AFBD1581E74

-:104AE0007047FFFFF0B58D6885B0071C0C1C039262

-:104AF0000193AB4245D390228B89D20013423DD023

-:104B000062690326564309692068F20F401A961914

-:104B10000290021C0198013212187610964200D2BF

-:104B2000161C381C5A050FD5311CFFF737FF051E20

-:104B300013D0029A2169FFF7BFFEA289184B1340D8

-:104B400080221343A38111E0321C00F0B0FA051E4D

-:104B50000CD1381C2169FFF7D9FE0C233B60A389D7

-:104B6000402213430120A381404217E0029B2561AC

-:104B7000ED1825606661019DF61AA6600198A842AD

-:104B800000D2019D2A1C20680399FFF79EFEA268AF

-:104B90000020531BA36023685D19256005B0F0BD9C

-:104BA0007FFBFFFFF0B59FB0039005938B890E1C30

-:104BB000171C19060FD53269002A0CD14021FFF7C6

-:104BC000EDFE30603061002803D103990C230B60A7

-:104BD000C9E04023736106AD00236B6120236B762F

-:104BE0003023AB763C1C2378002B03D1E21B0292CE

-:104BF00011D003E0252BF9D00134F4E70398311CE0

-:104C00003A1C029BFFF76EFF013000D1A6E06969F4

-:104C1000029A8B186B612378002B00D19EE0012251

-:104C200052426A606A4600235B3201342B60EB60BB

-:104C3000AB601370AB654E4F2178381C052200F035

-:104C40002BFA002807D0C71B2B680120B840184357

-:104C500028600134EFE72B68D90603D56A46202186

-:104C60005B3211701A0703D56A462B215B32117033

-:104C700022782A2A01D0099B0EE0059A111D12689C

-:104C80000591002A01DB099204E05242EA60022207

-:104C900013432B60013409E02278303A092A04D802

-:104CA0000A214B4301349B18F6E7099323782E2BF6

-:104CB00018D163782A2B09D1059B02341A1D1B6871

-:104CC0000592002B0DDA01235B420AE00134002338

-:104CD0002278303A092A04D80A214B4301349B1820

-:104CE000F6E70793234F2178381C032200F0D4F90C

-:104CF000002806D0C71B2B684020B8401843286006

-:104D0000013421781C480622671C297600F0C4F97A

-:104D1000002812D0194B002B06D1059B0722073320

-:104D200093430833059314E005AB00930398291CC3

-:104D3000321C134B00E000BF07E005AB0093039863

-:104D4000291C321C0E4B00F091F80490049901319B

-:104D500004D06A69049953186B6143E7B3895A0612

-:104D600001D40B9801E0012040421FB0F0BDC046C5

-:104D7000F2540000F8540000FC5400000000000051

-:104D8000E54A0000F7B5151C01930A698B68061CFB

-:104D90000C1C934200DA131C221C2B604332127845

-:104DA000002A01D001332B602068800602D52B68D1

-:104DB00002332B60216806270F401FD0231C43338A

-:104DC0001B785A1E9341226892061FD5E118403184

-:104DD0003020C870211C5A1C45310978A218403275

-:104DE0000233D17012E0221C301C019919320123C8

-:104DF000089FB847013011D0009F01370097E06845

-:104E00002968009F431A9F42EDDBD7E7221C301C24

-:104E100001994332089FB847013002D10120404236

-:104E200023E0206806212B68E26801400025042960

-:104E300003D1D51AEB43DB171D40A26823699A42C0

-:104E400001DDD31AED1800270097009FAF420BDA5F

-:104E5000221C301C01991A320123089FB8470130E7

-:104E6000DCD0009F0137EFE70020FEBDF0B50D1C40

-:104E70008BB0433506920590079304950B7E0C1C6E

-:104E8000109A6E2B00D1A7E011D8632B22D009D83D

-:104E9000002B00D1B0E0582B00D0C0E045310B70A2

-:104EA0007B4D4EE0642B1CD0692B1AD0B7E0732BDE

-:104EB00000D1A5E009D86F2B29D0702B00D0AEE02F

-:104EC0000E68202333430B6036E0752B1FD0782B00

-:104ED00032D0A4E013680D1C191D423511601B6807

-:104EE0009FE0216813680E0603D5191D11601E6826

-:104EF00005E04806F9D5191D116000215E5E644B7E

-:104F0000002E3BDA049D2D2276422A7036E021687D

-:104F100013680E0603D5191D11601E6804E04806CB

-:104F2000F9D5191D1E881160594B227E039308275D

-:104F30006F2A1ED00A271CE0231C78214533554DCB

-:104F4000197011682368081D039510601E0601D5AD

-:104F50000E6802E05806FBD50E88D90702D520223C

-:104F6000134323601027002E03D1226820239A4385

-:104F70002260231C002243331A7001E003930A27A6

-:104F80006368A360002B03DB25680422954325603A

-:104F9000002E02D1049D002B0ED0049D301C391C24

-:104FA000FEF7D2FE0398013D435C301C2B70391C88

-:104FB000FEF786FE061EF1D1082F09D12168C90728

-:104FC00006D5626823699A4202DC013D30232B70CA

-:104FD000049E731B23612AE008681368496905066B

-:104FE00004D5181D10601B68196005E04606F8D549

-:104FF000181D10601B68198000232361049D16E0B2

-:105000001368191D11601D68281CFFF763FD636894

-:105010002061984200D923612069606004E0251C6A

-:1050200042352B7001232361049E00233370079EB9

-:1050300005980096211C09AA069BFFF7A3FE0130E4

-:1050400002D10120404221E02A1C059806992369DB

-:10505000079DA8470130F4D02668B60705D4099B00

-:10506000E068984212DA181C10E00025E0680999FF

-:10507000431A9D42F3DA221C05980699193201233E

-:10508000079EB0470130DCD00135EFE70BB0F0BD33

-:105090000355000014550000C9B28218904204D094

-:1050A00003788B4202D00130F8E700207047F8B552

-:1050B000061C0C1C151C002904D1111CFFF76EFCEA

-:1050C000041C18E0002A03D1FFF720FC2C1C12E07E

-:1050D00000F013F8A8420ED2301C291CFFF75EFC2A

-:1050E000071E07D0211C2A1CFFF7E6FB301C211CE1

-:1050F000FFF70CFC3C1C201CF8BD04390B68181F82

-:10510000002B02DAC8581B18181F7047256C640062

-:10511000256C75004720256320256C6420256420BC

-:10512000256400656E6400742000350020473A0055

-:105130002050445F73637265656E3A002050445F8F

-:105140006C617365723A00556E6B6E6F776E20639B

-:105150006F6D6D616E643A2000050E08090D0C0636

-:10516000070F0B004417FF050E08090D0C06070F6B

-:105170000B004417FFFFFFFFFFFFFFFFFFFFFF1ABA

-:105180001BFFFFFF420000F840A0044001000000A8

-:10519000420000F844A0044002000000C00000F8F3

-:1051A00000C0044001000000000000F8049004402A

-:1051B00002000000000000F8089004400400000015

-:1051C000C00000F81CC0044080000000C00000F8CF

-:1051D00010C0044010000000C00000F808C00440E7

-:1051E00004000000C00000F80CC0044008000000EB

-:1051F000800000F80CB0044008000000800000F8B7

-:1052000010B0044010000000800000F818B0044006

-:1052100040000000800000F81CB004408000000046

-:10522000800000F814B0044020000000C00000F826

-:1052300004C0044002000000800000F800B00440F8

-:1052400001000000400000F800A004400100000040

-:10525000400000F804A0044002000000400000F8F4

-:105260000CA0044008000000400000F808A0044022

-:1052700004000000C00000F814C00440200000003A

-:10528000C00000F818C0044040000000800000F892

-:1052900004B0044002000000800000F808B00440A0

-:1052A00004000000020100F850D00440100000008B

-:1052B000020100F854D0044020000000030100F86F

-:1052C00078D0044040000000000000000000000012

-:1052D000A9240000B32400008124000089240000D8

-:1052E0009124000099240000A12400000000000087

-:1052F0001519151519FFFFFF000100000703002015

-:10530000120000000002000032030020950000009F

-:1053100000030000E0030020000000000103090476

-:105320001A0300200000000002030904C803002043

-:105330000000000003030904E40300200000000053

-:10534000000000000000000000000000FFFFFFFF61

-:105350000000000000000000213800003938000083

-:10536000F137000001380000F9370000093800006B

-:105370007137000089370000A9370000B1370000FD

-:10538000BB370000C5370000D1370000E13700000F

-:105390001138000019380000413700004D37000077

-:1053A0005937000065370000493800002D380000EB

-:1053B00000000000000000006139000079390000A1

-:1053C0003139000041390000393900004939000005

-:1053D000B1380000C9380000E9380000F138000099

-:1053E000FB380000053900001139000021390000A8

-:1053F0005139000059390000813800008D38000013

-:1054000099380000A5380000893900006D39000086

-:105410000000000000000000A13A0000B93A0000BE

-:10542000713A0000813A0000793A0000893A0000A0

-:10543000F1390000093A0000293A0000313A000031

-:105440003B3A0000453A0000513A0000613A000042

-:10545000913A0000993A0000C1390000CD390000AE

-:10546000D9390000E5390000C93A0000AD3A000022

-:105470008C3F00003E3F00006C3F0000C63E000035

-:105480006C3F0000623F00006C3F0000C63E000021

-:105490003E3F00003E3F0000623F0000C63E00006D

-:1054A000BE3E0000BE3E0000BE3E0000723F000057

-:1054B000304300002A4300002A430000204300003C

-:1054C000804200008042000016430000204300009C

-:1054D000804200001643000080420000204300008C

-:1054E0007E4200007E4200007E420000B843000081

-:1054F0004300232D302B2000686C4C006566674507

-:10550000464700303132333435363738394142433B

-:1055100044454600303132333435363738396162EC

-:105520006364656600FFFFFFF8B5C046F8BC08BCC1

-:105530009E46704739040000310C0000A122000093

-:10554000C124000065380000A5390000E53A0000DC

-:10555000000000009C04002014050020AC04002082

-:105560007C040020FC0400200A040000410E00001E

-:10557000410E0000410E0000410E0000410E0000EF

-:10558000410E0000410E0000410E0000410E0000DF

-:10559000410E0000410E0000410E0000410E0000CF

-:1055A000410E0000410E0000410E0000410E0000BF

-:1055B000410E0000410E0000410E0000410E0000AF

-:1055C000410E0000410E0000410E0000410E00009F

-:1055D000410E0000410E0000FFFFFFFFFF00000032

-:1055E000D80800200107081201010100000040C096

-:1055F000168904000201020301001803540065002B

-:1056000065006E00730079006400750069006E002B

-:105610006F0009029500030100C032080B0002026E

-:105620000201040904000001020201000524001027

-:1056300001052401010104240206052406000107D6

-:1056400005810310004009040100020A0000000760

-:105650000502024000000705830240000009040221

-:10566000000201030000072401000141000624029A

-:1056700001010006240202020009240301030102C1

-:10568000010009240302040101010009050502408B

-:105690000000000005250101010905840240000009

-:1056A0000000052501010300180354006500650092

-:1056B0006E007300790020004D004900440049004D

-:1056C000040309040C0300000000000000000000B7

-:1056D00000000000000000000000000000000000CA

-:1056E00000000000000000000000000000000000BA

-:1056F000000000000000000000000000F054000066

-:105700000000000000000000000000000000000099

-:105710000000000000000000000000000000000089

-:105720000000000000000000000000000000000079

-:10573000000000000000000000000000FC0300204A

+:10068000F9FC0C20012100F0F5FC0D20012100F007

+:10069000F1FC1420002100F0EDFC0F20002100F0FF

+:1006A000E9FC1020002100F0E5FC0E20022100F002

+:1006B000E1FC0E200C49042200F06CFC0B4B0022E4

+:1006C0001A700124FFF7ACFF094B211C0D201C7090

+:1006D00000F09EFC211C0B2000F09AFC0C20211C39

+:1006E00000F096FC10BDC046810400000C050020FF

+:1006F000E804002030B50B2085B0012100F088FC13

+:10070000FA24A400142000F097FB051C1248FFF700

+:10071000AFFEFFF7DDFE2020FFF7CAFE28B2FFF78D

+:10072000D7FEFFF72FFFE1235B01013BFDD1013C29

+:10073000002CE7D1211C0B2000F06AFC0749684619

+:1007400001F048FE6846FFF7BBFE684601F0FEFD7B

+:10075000FFF718FF05B030BD10050020AB510000B9

+:1007600030B50B2085B0012100F052FCFA242401A1

+:10077000102000F061FB051C1248FFF779FEFFF71F

+:10078000A7FE2020FFF794FE281CFFF7A1FEFFF72D

+:10079000F9FEE1235B01013BFDD1013C002CE7D1D7

+:1007A000211C0B2000F034FC0749684601F012FEC2

+:1007B0006846FFF785FE684601F0C8FDFFF7E2FED8

+:1007C00005B030BD10050020AB5100007FB5041E00

+:1007D0005A2C16D172B600F091FCB64B1860FFF798

+:1007E00011FFB54B01221A7062B60025B34B291CCC

+:1007F0000B201D7000F00CFC0C20291C00F008FCE4

+:1008000018E054280FD1AE49684601F0E3FD684670

+:10081000FFF756FE684601F099FDA648FFF728FE4F

+:10082000FFF76CFE42E1502804D0442806D10A208C

+:1008300000F088FC201CFFF7DCFE39E1031C313B93

+:10084000082B0AD89B48FFF713FE2F3C9A4B012236

+:10085000A4005242E0505A602AE1522811D1964A2F

+:1008600000245368591C5160082902DCD91C8900F6

+:100870008C58981CFFF72CFE3A20FFF719FE201C1D

+:1008800004E1492819D18C4B012252425A600024BC

+:100890001D1C8C4B013BFDD18648FFF7E9FDA300F1

+:1008A000EB189860201C3130C0B20134FFF700FE15

+:1008B000FFF768FE092CECD1FAE0462802D1FFF7D9

+:1008C000AFFEB7E7562811D1FFF786FEFFF7F0FD20

+:1008D0002020FFF7EDFD7C49684601F07BFD68466E

+:1008E000FFF7EEFD684601F031FDDFE047280BD150

+:1008F000764C2068FFF7ECFDFFF744FE00232360F1

+:10090000A36001232373D3E0412801D1704B1DE084

+:10091000422812D16748FFF7ABFD6E490022051C43

+:10092000172001F051FC201CFFF756FEFFF7C0FD19

+:100930002020FFF7BDFD281CA8E0532803D1172075

+:1009400001F0D6FC76E74D2807D1634B00221A60F0

+:100950009A6001221A735A736CE74E2820D1554EC3

+:100960005E4A316868468B180093FFF781FD051CCD

+:10097000201CFFF731FEFFF79BFD2020FFF798FDBD

+:10098000281CFFF7BBFDFFF7FDFD301CFFF770FDD6

+:10099000A842FAD3524801F0BBF801F035F987E0DC

+:1009A00043280ED1142000F047FA4E4C0123191CA5

+:1009B000221C6E2800DC00236360517311734320F6

+:1009C00039E7632804D1474B00225A731A7331E781

+:1009D000452801D1434C11E04C2805D1424B01225E

+:1009E0005A7300229A6025E76C2804D13E4B0022FE

+:1009F0005A736C201FE74A2809D13B4CE3682068F2

+:100A00006168A268FFF7CCFD0023A36050E0552881

+:100A100004D1FFF7EEFDFFF76DFE49E04F2804D14A

+:100A2000FFF7E7FDFFF79CFE42E0512831D1FFF7C9

+:100A3000D3FDFFF73DFD2D49684601F0CBFC68462C

+:100A4000FFF73EFD684601F081FC0F2000F0F4F94D

+:100A5000FFF73EFD2649684601F0BCFC6846FFF7FB

+:100A60002FFD684601F072FC142000F0E5F9FFF755

+:100A70002FFD2049684601F0ADFC6846FFF720FDD8

+:100A8000684601F063FC0E2000F0D6F9FFF720FD68

+:100A90000CE01949684601F09DFC6846FFF710FD1F

+:100AA000684601F053FC201CFFF702FDFFF76AFDCA

+:100AB0007FBDC04610050020BC040020E8040020D3

+:100AC000AF510000102E0000B2510000FC040020C5

+:100AD000AC040020881300007C040020F0D8FFFF45

+:100AE00009903C63140500209C040020B4510000D0

+:100AF000B8510000C4510000CF510000F0B5624C65

+:100B000087B021780D2000F083FA604D2B7B002BFD

+:100B100013D00F2000F090F9E1239B0098420CDDE8

+:100B20005B48FFF7A5FCAB6801220133AB600023F3

+:100B30002B732378286053402370564D2B7B002B5A

+:100B400011D0162000F078F914280CDD5048FFF77A

+:100B50008FFCAB6801220133AB6000232B73237839

+:100B6000286053402370012001F068F8061C701EB5

+:100B70008641F6B20196002E07D0474D2B7B002B05

+:100B800003D0464B1F78002F6ED0454D2B7B002B9A

+:100B900019D0142000F050F96968002902D16E289C

+:100BA00002DC10E059280EDC3948FFF761FCAB6825

+:100BB00001220133AB6023786E6853402370734287

+:100BC000734128606B60002472B6364B0021E358F5

+:100BD0005A7B8A420BD09F688F4208DD324A1D1C27

+:100BE000101CC4CDC4C02D6805609960012162B697

+:100BF000002906D02C4B186859689A68DB68FFF703

+:100C0000CFFC0434142CDFD1019E002E22D0234BC4

+:100C10001B78042B18D1254B02A8197801394B42B7

+:100C20005941234BC9B21970002903D0F02101F0BA

+:100C300015FC01E001F0CEFB02A91E4801F0FCFB0F

+:100C400002A801F083FB05E0052B03D1174B1878B0

+:100C5000FFF7BCFD01F066F9002812D001F01AF987

+:100C6000C0B2FFF7B3FD0CE00948FFF701FCAB6829

+:100C700001220133AB602378286053402F73237027

+:100C800083E707B0F0BDC046E8040020FC04002064

+:100C900010050020AC0400207C0400208608002001

+:100CA00014050020740200208C0400208808002015

+:100CB0000C050020EC04002010B500F01FFA064BD4

+:100CC000064C18600021201C01F084FB201C044904

+:100CD000044A03F0EDFD10BD10050020EC040020D7

+:100CE0004D23000070020020F0B51E4B1A688023CF

+:100CF0001A40FAD172B61C4B1978002930D01B4922

+:100D00000C681B490F681B493C190E681A49A41945

+:100D10000D681A496419086819492418096819489E

+:100D20006418A4B2184964080C43A4B20460174CB8

+:100D3000174800682568174CAC462768164C604475

+:100D40002668164CC0192568154C8019246840196E

+:100D5000001980B240080143124889B201601A703C

+:100D600062B6F0BD24B003402505002038B0034032

+:100D70003CB0034040B0034044B0034048B003409F

+:100D80004CB003402CB003400080FFFF5CB0034038

+:100D900058B0034060B0034064B0034068B0034003

+:100DA0006CB0034030B003401B4B1C4A19781C4BFD

+:100DB000082901D1002102E00A2903D1382111605C

+:100DC000132206E00C2901D1342100E03C211160FE

+:100DD00012221A60134B1A78134B002A01D00022FA

+:100DE00000E001221A60114B1A78114B012A01D838

+:100DF00080220CE0042A01D8842208E0082A01D8C5

+:100E0000852204E0102A01D8862200E087221A6099

+:100E1000084B01221A7070478802002008B0034076

+:100E20000CB003402705002020B0034089020020B9

+:100E300024B0034025050020031C70B50020272B9B

+:100E400032D81A4AD45CFF2C2ED0194B1B7883421F

+:100E500001D0FFF749FF72B6164B1022610605D587

+:100E60001968914319603F231C4002E019680A4346

+:100E70001A60114B114D01221C602A7062B61E1CB3

+:100E800072B633681A0608D50D4B186800232B700C

+:100E900062B60C4B1B78184106E02B78002BDBD098

+:100EA00062B601F05FFBEBE770BDC046E1510000A8

+:100EB000250500200CB0034000B0034026050020AB

+:100EC00010B00340240500207047FFFF38B5074BE2

+:100ED0001C681C60064BDA681D1CA30700D59047F0

+:100EE0002B69620700D5984738BDC046A0900440E2

+:100EF0008C02002038B5244B244C1D681D60636AA9

+:100F00002A0700D59847A36AEA0600D59847E36AFE

+:100F10006A0600D59847236B2A0600D59847636B6D

+:100F2000AA0600D59847E36BEA0700D59847A36D5A

+:100F3000AA0700D59847E36D6A0700D59847144B78

+:100F40001D681D60A368EA0700D5984763692A06F3

+:100F500000D59847A369EA0600D59847E3696A0770

+:100F600000D59847236A2A0700D59847A36BAA079C

+:100F700000D59847236DAA0600D59847636D6A0689

+:100F800000D5984738BDC046A0B004408C02002070

+:100F9000A0C0044070B5041E1A2C2CD8042A2AD8EC

+:100FA000101C02F0BDFE0709050B03000B2306E031

+:100FB0000A2304E0082302E00C2300E009230C22AA

+:100FC00062430D480D4E82180D485268051CB83515

+:100FD0002E600C4DBC30056072B60B481568A4003D

+:100FE00028400A4D106061518021490408431B04C8

+:100FF0001843106062B670BD0C520000CD0E0000A8

+:1010000000F9FF1FF50E0000FFFFF0FF8C0200202B

+:1010100010B51A2818D80C2358430C4A83581018B6

+:101020001C7D027A224205D0002901D01A710BE002

+:101030001A7209E043681A68002902D003210A43A2

+:1010400001E002218A431A6010BDC0460C52000024

+:1010500000231A280AD80C235843054A815810182F

+:10106000027A0B7C13405A1E9341DBB2181C704766

+:101070000C520000F0B51A283DD80C273D1C454302

+:101080001D4A54196368161C012901D0042912D184

+:10109000784332583018147D007A20431075A2220C

+:1010A00052001A602022042901D1196814E019683D

+:1010B00091430A1C1EE0AA58247A107DA0431075A3

+:1010C000002902D08A1E012A12D8802252001A60FA

+:1010D000022903D11A6803210A430BE003290AD12C

+:1010E0001A6802210A431A601A6801218A4301E042

+:1010F0000422FF321A60F0BD0C52000072B60C4B95

+:101100000C491A680C4B1B68096862B6480104D583

+:1011100032219142894149425B18FA2080004343C1

+:101120000648821A06484243920D98187047C046F6

+:1011300018E000E004ED00E0280500207FBB00007F

+:101140005555010038B5041CFFF7D8FF051C002CCD

+:101150000FD0FFF7D3FF074B401B984206D9013C45

+:10116000002C06D0FA239B00ED18F2E701F0FAF903

+:10117000EFE738BDE70300001D4B8022D20510B514

+:101180001A60802212061A601A4B002018601A4951

+:101190001A4B1B4A1960282313601A4A1A4C136011

+:1011A0001A4A13601A4A13601A4A13601A4A1360E3

+:1011B00009222260194C2060194C2160194C2360CF

+:1011C000194C2360194C2260194C206019480160A9

+:1011D00019490B6019490B60194B1A60FFF7E4FDC0

+:1011E000C8204000FFF7AEFF00F0D8FB10BDC0469E

+:1011F00000E100E004800340FFBF000008800340DE

+:101200000C80034014800340008003401C80034096

+:10121000248003402C80034034800340049003402A

+:10122000089003400C90034014900340009003404A

+:1012300004A0034008A003400CA0034014A00340F6

+:1012400000A00340F0B50B4F02223B780A4E1A4330

+:10125000D2000A4DB418606028788824002800D095

+:10126000C82409040C43B450012250405340287054

+:101270003B70F0BDA005002000F8FF1F20060020F5

+:10128000431E10B5042B0FD872B6084A990088582F

+:10129000002807D044685B008C50054A01889C5A9E

+:1012A000611A995262B600E0002010BD8C05002042

+:1012B0007C080020431E0020042B09D872B6054A82

+:1012C0009B009B58002B02D001305B68FAE762B6A6

+:1012D0007047C046E405002038B572B60123164AAF

+:1012E0009A18013A127811071CD5144A5C01A558C6

+:1012F0009900002D05D1131908305860104BA350E8

+:101300000AE001242143C9008C58002C0AD153184B

+:10131000083058600B4B8B500B4B1A78013A1A70FF

+:1013200062B608E00133062BD9D162B6064B002223

+:101330001A7000F0A7FB38BD7853000000F8FF1FBB

+:1013400088004000C800400016060020421E10B56C

+:10135000042A30D8022380001843174BC0001B1802

+:1013600072B6164CA05C032809D802F0D9FC14020E

+:1013700016050833022011E0083304200EE010485F

+:10138000920014580F4B002C01D1115001E09858D5

+:10139000416099500EE0032000E00520A0540A1C93

+:1013A00008325A608822180700D5C8220988090423

+:1013B0000A431A6062B610BD00F8FF1F4405002002

+:1013C000E4050020F8050020F7B5B6490C780E1C9E

+:1013D000E4B262071FD5B44B1B78002B18D0B34A78

+:1013E0001378DBB2002B05D0013BDBB21370002B6E

+:1013F00000D100BEAE4A1378DBB2002B06D0013B11

+:10140000DBB21370002B01D100F05CFE00F0FCFB9E

+:10141000A44D04232B700825221C2A4000D154E23D

+:10142000A44BA54C1B78DBB21E099A08002E00D0F5

+:10143000DDE1D50065192F686A68B806000F01382C

+:101440000C2800D9D0E102F075FC93019301CF0183

+:10145000CF01CF01CF01CF01CF01AC01CF01CF012F

+:10146000CF010D0095491368954F52689548296042

+:10147000954D964900263B607A609BB201222E6012

+:101480002661A66102708B4218D8D021C9008B4218

+:1014900000D3E5E0812191408B4200D1C2E006D823

+:1014A000802B00D1A9E0822B00D1ABE0F5E0884A87

+:1014B000934200D1C5E0A022D20017E085498B42BB

+:1014C00000D152E10DD8882109018B4200D18EE074

+:1014D00090221201934200D0DFE0BA78724B1A706A

+:1014E00009E07D4A934200D1CFE07C4A0026934236

+:1014F00000D115E1D1E0A319196A090603D5586A8C

+:10150000083800F0BFFA0836A02EF4D100252E1CB2

+:10151000734AA858002805D04368019300F0B2FA36

+:101520000198F7E76E496F4B6F4A4851E850A85849

+:10153000002805D04368019300F0A4FA0198F7E76A

+:101540006A4B6B4AE8507300D0526749694B485167

+:10155000F05C0238032807D802F0E2FB0204020420

+:10156000002200E001229A5501360435052ECFD124

+:10157000614A002313700125161C604BEA18604B6A

+:101580009200EB18013B1B781370190720D500F06F

+:101590005BFA6B01002805D0E21808305060594A08

+:1015A000E25003E0E05033780133337000F04CFA3E

+:1015B0000122AB001343DB00002805D0E2180830FD

+:1015C00050603E4AE25003E0E0503378013333701C

+:1015D000AB0002221A43D2000021A1500322134380

+:1015E00093400135E150062DC7D10E1C98E02E4BDB

+:1015F000454C1B78161C237093E0434C2670667094

+:1016000002268EE0BB88052B47D83F4C3F4D9B0000

+:10161000267066705B191B780226334200D180E089

+:1016200022707EE0BA887F231340052B35DC7E884C

+:10163000002E32D135499B005B181A7802218A436B

+:1016400029E0BA887F231340052B26DC7E88002EF4

+:1016500023D12E4A9B009B181A7802210A431AE0D4

+:101660007A88B9882A4B5C68002C16D0188890427A

+:1016700009D15888884206D1120A032A01D1267856

+:101680004FE01E894DE00C33EDE7224B1A68224BE8

+:101690001A60BA78214B1A7042E01C4B0F221A7064

+:1016A00063E0C046802007401F060020A1050020FF

+:1016B0005C0600209020074000F8FF1FC800400093

+:1016C0000C060020200600202C05002081060000CA

+:1016D000020300002120000021220000212300003D

+:1016E0008C05002030050020E4050020F8050020CE

+:1016F0007C080020440500201606002030C8011098

+:10170000785300008800400017060020C0200740E2

+:101710008053000028050020D00800206C0600201F

+:10172000341CFB889E4200D91E1C371E402F00D956

+:101730004027201C391CFFF785FDE419F61B03D157

+:10174000351C402F04D010E04025B54200D9351C8F

+:10175000201C291CFFF776FD6419761B01D1402D52

+:1017600003D1754D754B2C601E800122744B3AE0FD

+:10177000744B1988744B994210D10023D05C734983

+:10178000C8540133072BF9D10B68862B02D1704B5B

+:101790000F221A700020011CFFF754FD6D4B2B60C7

+:1017A00022E0654F3D68002D13D064490E88341E39

+:1017B000402C00D94024281C211CFFF743FD361B78

+:1017C0005E4AB6B21680002E01D1402C00D12E19EF

+:1017D0003E605C4BA0221988D200914204D10022C5

+:1017E0005A709A785C4B1A700122554B61E0D20016

+:1017F000A4186068013E0838F6B22B4036D000F0DD

+:1018000041F95649B0004258554B002A1BD0556843

+:101810004550111C985D0831616003280BD802F017

+:101820007FFA02040608032104E0022102E00521F8

+:1018300000E0042199558823270700D5C823128882

+:10184000120413433CE0985D032808D802F068FABC

+:1018500039390204002200E001229A5531E02C407F

+:10186000624262410324A41A9C552AE062880280E5

+:10187000002A20D03B4D43804360B3005F593A4972

+:10188000002F01D1585101E0CD586860C850374B46

+:101890007600F15A5218F25200F0D6F8002804D01F

+:1018A0000830606021070AD507E0314B20601A78C4

+:1018B00001321A7005E02C4201D0264B00E02D4B7E

+:1018C00023602D4A082313707FE5012004421ED0B7

+:1018D0001B4902230B70294B264C1A70284B294DAB

+:1018E0001C609C60284C1A61DC609A615D60274B2B

+:1018F0000D241C70264CFF232370174C337022706C

+:10190000244A1370244B9F221A70087013E063B2AC

+:10191000002B04DA1D4B0D221A7080233370022332

+:101920001C4204D01A4A1178C9B2117033701023C6

+:101930001C4200D03370F7BD2C0500201406002097

+:10194000942007400C06002021200000C808002039

+:10195000A1050020C800400098200740E4050020B1

+:10196000440500208C050020300500207C08002064

+:10197000160600208800400080200740A0050020B7

+:1019800000F8FF1F4C050020A4050020C0200740E0

+:10199000882007408C2007408420074010B501F0C4

+:1019A000D9FE00221A4B0021D1509818083241600C

+:1019B000A82AF7D1174A80201468C002204310607B

+:1019C000180A154AC0B21070180C144AC0B2107030

+:1019D000134A1B0E1370134AFF231370124A134845

+:1019E0001370134A137001220270124801701249D9

+:1019F0000A70124A116899430B1C70210B43136043

+:101A00000F4B802252041A600E4B10221A7010BD28

+:101A100000F8FF1F348004409C200740B02007409E

+:101A2000B4200740802007408820074094200740CA

+:101A300010200740002107408420074018E400E000

+:101A400000E100E00821074038B572B60B4C25686C

+:101A5000281C02F003FA1D2802D962B600200CE00F

+:101A600080231B06C3409D43256062B6482358432C

+:101A7000034B181800230360436038BDF8020020B0

+:101A800000FAFF1F10B5041C0E484821201A02F06E

+:101A90005BF91D2815D80C4B1B78002B07D00B4B7E

+:101AA0001B78002B03D0201CFFF716FC09E072B650

+:101AB0008022074B1206C240101C1A68104318609F

+:101AC00062B610BD00FAFF1F160600201F06002098

+:101AD000F802002038B50B4C051C21783C2908D1B0

+:101AE000094B1B68002B04D00848002298470023AC

+:101AF000237023783B2B03D85A1C2270034AD554F9

+:101B000038BDC046870800204C0600208B08002006

+:101B1000F8B51F4D1F4C01232B702368061C002BAA

+:101B20001DD11D4F1D4B1B78002B2FD00420FFF71C

+:101B3000C1FB052804D9013F194B002F06D108E04D

+:101B4000FFF782FF20600028F5D008E01A78002A0D

+:101B500002D001221A7019E000F004FDE2E7104BF8

+:101B6000002221681A704A88531C92008A189660D5

+:101B70000F2B01D84B8007E040230B800420FFF798

+:101B8000E5FBFFF761FF206000232B70F8BDC04626

+:101B90003C06002044060020E14200001F06002011

+:101BA0004806002038B5041C0D1C032D0ED92078E2

+:101BB000637800021B04184304231843A378033DF1

+:101BC0001B061843FFF7A4FF0334EEE7032D09D1EA

+:101BD0002078637800021B04184307231843A37876

+:101BE0001B060DE0022D06D12078637800021B044D

+:101BF0001843062304E0012D05D1207805230002B7

+:101C00001843FFF785FF38BD10B50A4B1B78002B32

+:101C10000ED1094C216800290AD04B88002B07D02F

+:101C20009B000B800420FFF791FBFFF70DFF206066

+:101C300010BDC0463C06002044060020F8B5834C89

+:101C4000071C2368251C002B12D1814B1B78002B0D

+:101C500000D1E2E00520FFF713FB2060002800D14F

+:101C6000DBE00688002E03D1FFF70CFF2660D4E0EE

+:101C7000286843889A08920082189468028804337E

+:101C8000934201D2438005E0FFF7FCFE0520FFF7F9

+:101C9000F7FA28600F23251C1D40200A061C2A1C69

+:101CA0001E40083A0136062A00D980E0002F02D0F3

+:101CB000B74200D0B1E0220B1340082D0AD1082B07

+:101CC00000D0AAE0634B00221A70634B1B6893425A

+:101CD00032D163E0092D1AD1092B00D09DE0220EEC

+:101CE0005C4B210C002A09D0012018705B4B1B684B

+:101CF000002B53D0F0B2C9B2D2B206E01A70564BE4

+:101D00001B68002B4AD0F0B2C9B2984746E00A2DB2

+:101D100007D10A2B00D080E04E4B02221A70504BA4

+:101D200007E00B2D0DD10B2B77D14A4B03221A70F4

+:101D30004C4B1B68002B31D0210CF0B2C9B2220EE3

+:101D4000E3E70C2D06D10C2B67D1424B04221A700D

+:101D5000454B07E00D2D0DD10D2B5ED13D4B0522DE

+:101D60001A70424B1B68002B18D0210CF0B2C9B27C

+:101D7000984713E00E2D50D10E2B4ED1354B062235

+:101D80001A703B4B1B68002B08D0FE21620C8901A6

+:101D900011406202520EF0B211439847354B220CAB

+:101DA0001E70354B240E1A70344B1C704CE0042D01

+:101DB00008D1C0B2FFF78EFE200CC0B2FFF78AFE3A

+:101DC000200E28E06B1F022B1ED8C0B2FFF782FE48

+:101DD000052D08D0200CC0B2FFF77CFE072D02D1E4

+:101DE000200EFFF777FE264B234A19781170002248

+:101DF0001A70184B07221A70224B1B68002B23D035

+:101E00002148012298471FE00F2D12D11C4B1B784F

+:101E1000002B04D0C0B2FFF75DFE002015E00D4B93

+:101E200008221A70194B1B68002BB7D0C0B2984714

+:101E3000B4E7022DF1D1074B09221A70144B1B682D

+:101E4000002B01D0200C98470120F8BD500600203F

+:101E50001F060020860800202806002058060020C3

+:101E600034060020540600202C06002038060020EE

+:101E7000300600208A0800208808002089080020F9

+:101E8000870800204C0600208B0800204006002018

+:101E90002406002038B5114C2368002B0CD0206894

+:101EA0004288531C8218157A0288934212D3FFF796

+:101EB000E9FD002323600EE0094B1B78002B02D1C3

+:101EC0000120404208E00220FFF7DAF920600028F4

+:101ED000E5D1F5E74380281C38BDC04668060020E0

+:101EE0001F06002010B50D4C2368002B03D023687B

+:101EF000002B0ED103E00A4B1B78002B02D10120EE

+:101F0000404209E00220FFF7BBF920600028EED133

+:101F1000F5E75A889B18187A10BDC046680600205D

+:101F20001F060020054B5888054B1B68002B03D06B

+:101F30001A885B88D31AC0187047C0467C080020F6

+:101F40006806002010B50A4B1B78002B0FD0094CF7

+:101F50002068002803D0FFF795FD002323600220AE

+:101F6000FFF78EF9002802D0FFF78CFDF7E710BDD0

+:101F70001F06002068060020F7B5304D0123071C1E

+:101F80000C1C2B70002C56D02D4E3068002827D109

+:101F90002C4A01922C4B1B78DBB2002B03D12B7007

+:101FA0000120404249E00320FFF784F9072808D8C0

+:101FB00001232B70FFF748FD214B186000280FD13B

+:101FC00028700198214B01380190002802D01A781E

+:101FD000002A02D001221A70E2E700F0C3FAD9E722

+:101FE0001A4B002231681A704B884020C01A0094A6

+:101FF000844200D90090181C009A08309B180818D9

+:102000004B800190A41A00230098834204D0F85C0E

+:10201000019AD0540133F7E7FF184B883F2B06D9BC

+:1020200040230B800320FFF791F900233360084B16

+:1020300005221A70A6E72C70201CFEBD5D0600204C

+:1020400060060020097500001F06002064060020BD

+:102050005C06002007B56B46D8710733181C0121B8

+:10206000FFF78AFF0EBDFFFFF8B5124B1B78002B60

+:102070001ED0114F114B3C6801261E70104D002CD4

+:1020800009D000262E70638803202380211CFFF7CF

+:102090005DF93E6009E0FFF7D7FC011E04D0032084

+:1020A0002C70FFF753F900E02E70044A00231370E0

+:1020B000F8BDC0461F060020600600205D06002017

+:1020C0005C06002038B50E4B1D78EDB2002D15D101

+:1020D0000C4C2168002906D04B8803200B80FFF7A9

+:1020E00035F925600AE0FFF7AFFC011E03D003209D

+:1020F000FFF72CF902E0044B01221A7038BDC046EC

+:102100005D060020600600205C06002010B5041C5F

+:1021100001F0FCFD201C10BD214B70B518681E1C81

+:102120002049214A002809D0127809680A71421E04

+:10213000511D01D1032252421A6030E00B6812781F

+:102140001A4D1A702B68002B23D0194B00211C68E4

+:10215000201C01F065FE002816D1201C154901F055

+:1021600069FE002810D11449201C02F091F8FC21CE

+:10217000890502F0B7F901F08FFE021E272A03D964

+:102180000E480F4901F0AAFD2B68336000232B6035

+:1021900005E00A4801F0BAFD0A4BFF221A7070BD33

+:1021A00090060020840600208C060020880600206F

+:1021B00094060020ABAA2A4D0000C0417006002002

+:1021C00019210000FC020020F8B5051C0C1C1A287F

+:1021D00074D8002A08D0101C4843FA21890001F065

+:1021E000B3FD4600013601E003267642201C02F0D2

+:1021F0000FFB011C324801F067FE0C236B43314A90

+:10220000041CD3185F6872B62F4B19788D4215D114

+:102210002E4D296801F0F4FD2D4B002806D01868DA

+:1022200001220240013A96191E6046E0294A1968C7

+:10223000166001220A402C601A603EE0264B1A29E3

+:1022400003D826491868097801701F490D700C21C0

+:102250004D4351595519081C083018601F4A287AF7

+:102260001070087272B61B681278197B0A431A73D1

+:1022700062B6A2235B003B60154B201C1E60134B13

+:1022800000211C6001F0CCFD002816D1201C14494F

+:1022900001F0D0FD002810D11249201C01F0F8FFF8

+:1022A000FC21890502F01EF901F0F6FD021E272A25

+:1022B00003D90D480D4901F011FD62B6F8BDC046C5

+:1022C0000024F4480C520000FC0200209406002078

+:1022D0009006002088060020840600208C0600203E

+:1022E000ABAA2A4D0000C041700600201921000051

+:1022F00010B51A280FD872B6074C2378834209D13B

+:10230000064801F003FD064B064A1B6812781A7056

+:10231000FF23237062B610BDFC020020700600206F

+:10232000840600208C06002008B5054800230370B1

+:1023300004498023044A437302F0BAFA08BDC04638

+:10234000700600200D2100007002002010B5041C52

+:10235000006802F0EBFA201C10BD38B5041C0D1CFF

+:102360000068013102F0B2FB002801D021C4012035

+:1023700038BD436810B5041C8B4208D2FFF7EDFF4F

+:10238000002805D0A368002B01D12268137001201A

+:1023900010BDF8B5041C0F1C151E05D10368002BD9

+:1023A00000D01A7000230DE0111CFFF7E2FF061C9D

+:1023B0002068002E08D1002802D002F0B7FA26606B

+:1023C00000236360A36003E0A560391C02F0BEFB3C

+:1023D000201CF8BD38B50023041C0D1C03604360AD

+:1023E00083600373994207D0081C02F0B7FB291CD5

+:1023F000021C201CFFF7CDFF201C38BD38B5051C82

+:1024000000680C1C00280CD06A688B689A4206D3BE

+:10241000096802F09BFBA2680023AA600AE002F0B0

+:1024200085FA236862682B60A3686A60AB6000234A

+:1024300023606360A36038BD10B5041E8C4201D0D8

+:10244000FFF7DCFF201C10BD07B5002201AB19709F

+:102450005A70191C0122FFF79CFF0EBD10B5002316

+:10246000041C0360436083600373FFF7EDFF201CCF

+:1024700010BDF7B50368171C0022041C0D1C8668EC

+:102480000092994206D39A19914203D2CB1A019332

+:1024900001230093002F1AD0BE19201C311CFFF716

+:1024A00068FF002813D0009BA0682168002B09D08A

+:1024B000019A081889183A1C02F042FA226800238F

+:1024C000935503E00818291C02F040FBA660201C6D

+:1024D000FEBD08B50B1C9A680968FFF7CAFF08BD66

+:1024E00013B5002201AB041C19705A70191C01228B

+:1024F000FFF7BFFF201C16BD08B5FEF7BDF8FEF7BD

+:10250000FDFA00F02FF8FAE708B5FFF70BFD08BD5C

+:1025100008B5FFF7BFFC08BD08B5FFF7E3FC08BD31

+:1025200008B5FFF7A1FD08BD08B5FFF70BFD08BD15

+:1025300008B5081CFFF78EFD08BD08B5081C111C66

+:10254000FFF71AFD08BD7047044B00221A711A7379

+:10255000FA21034A890099601A60704798060020A2

+:102560005853000010B5104C2378002B1BD10123C9

+:102570002370FFF7D7FC002801D0FFF7E4FF00F03D

+:10258000E5FA002801D001F0AFF900F02FFD002896

+:1025900001D001F049FA00F0F5FF002801D001F068

+:1025A000E3FA0023237010BDA8060020024B1A682E

+:1025B00001321A607047C0462805002010B50B4C48

+:1025C00023685A0301D5FEF7FFFE23685A0501D59B

+:1025D00000F02EFB23681A0501D500F079FD236871

+:1025E000DA04ECD501F040F8E9E7C0463480044055

+:1025F00008B5FFF7E3FFFFFF014B00221A607047A9

+:10260000008104407047FFFF024A136818181060E9

+:10261000181C704700030020EFF31380002821D11D

+:10262000EFF31082002A1FD1EFF30583002B0FD0A8

+:10263000101C0F2B0ED91A1C103A92080B490320BC

+:1026400092000340521883401068D840C0B201E0A5

+:1026500080204000EFF31182002A05D0824203D28D

+:10266000101C01E0012040427047C04600E400E039

+:10267000F8B5061C0D1C171C0024301C391C01F079

+:10268000A7FB092901D8303100E03731C9B22955FB

+:10269000301C391C01F058FB061E01D00134ECE758

+:1026A0002B1958702B1C5A1BA24206DA1A78295D86

+:1026B00019702A550133013CF5E7281CF8BDFFFFCE

+:1026C000264B80221968D2000A431A60244A00234C

+:1026D0001370244A1370244A1370244A1370244A36

+:1026E0001370244B1B78032B09D0152B04D0002B1F

+:1026F00008D1214A214B04E01F4A214B01E0214A25

+:10270000214B1A60214B1B78042B0BD0052B05D0D5

+:10271000012B0BD1D12292001D4B06E0D122920059

+:102720001C4B02E091221C4B92001A601B4BC2040E

+:10273000D20E1A70C0B2002258709A702C22DA7031

+:10274000174BFF22196891430A1C40210A431A6063

+:10275000144B802252011A607047C04634800440F6

+:1027600035070020B10600203C0700203607002076

+:10277000B0060020F20600201303000040A0044031

+:1027800018C0044013020000049004400403002019

+:1027900044A004401CC004400890044000A006402F

+:1027A0000CE400E000E100E010B5174B132299782B

+:1027B0009143032202400A43410701D510210A43F5

+:1027C0009A700F2210490240042A03D18A794024CA

+:1027D00022438A715A7910218A43084200D00A4361

+:1027E0005A71997910229143840600D51143064A03

+:1027F0009971C10506D5537811782020DBB20143C9

+:102800001170537010BDC04600A0064008B5124BB1

+:102810001B685A051ED5114B1B78DBB2002B02D06A

+:10282000FFF7A0FEF7E70E4A8021490111600D4A2B

+:102830000D49D3700422FF320A600C490A600C4A29

+:1028400013700C4A13700C4B1B68002B02D00B4A00

+:1028500012781A7108BDC04634800440B0060020CA

+:1028600080E100E000A0064040A0044044A00440F5

+:1028700035070020B1060020AC060020F30600203A

+:1028800038B5041C0B4B1D78EDB2002DFAD1201C7D

+:102890000121FEF7EFFB291C201CFEF7B9FB0C22DF

+:1028A0005443054B054AE1581C191160044B227A28

+:1028B0001A7038BDB00600200C5200003807002006

+:1028C0003407002030B5002901D080231843224A64

+:1028D0001378141C98423ED0204A1268550539D509

+:1028E0007F221340042B0FD004D8012B0FD10022DC

+:1028F0001B4B0BE0052B04D0182B08D10022194BE1

+:1029000004E00022184B01E0184B00221A60442317

+:10291000002900D060237F220240042A15D006D867

+:10292000012A17D1C022920013430D4A11E0052A53

+:1029300006D0182A0ED18022D2001343094A08E09B

+:10294000C02292001343084A03E0802292001343FE

+:10295000064A1360207030BD040300203480044018

+:1029600044A0044050D004401CC0044008900440DF

+:1029700010B51A4A137898422ED0194909684C05A7

+:1029800029D5032B0FD004D8002B0FD115490B608C

+:102990000CE0152B04D0192B08D10021124B04E0B8

+:1029A0000021124B01E0124B0021196003280FD0C7

+:1029B00004D800280FD10F490A4B0BE0152804D08A

+:1029C000192808D10C49084B04E00A49074B01E0DB

+:1029D0000A49074B1960107010BDC046F20600206E

+:1029E0003480044040A0044054D0044018C0044047

+:1029F00004900440130300001304000013020000BD

+:102A000038B50E4B1A680023510514D50C4C1A2802

+:102A100010D80C2343430B4A0B4D9958D3181B7AFB

+:102A2000216001212B70FEF725FB23682A781A729A

+:102A3000012300E02360181C38BDC04634800440E8

+:102A4000AC0600200C520000F30600200020704766

+:102A5000F8B5214B071C1B685A053BD51F4B1B685B

+:102A6000002B02D01E4A12781A711E4E00233478B1

+:102A70003F220134A2425B415B421C401A4D2B783D

+:102A8000A3421CD1FFF7C8FD402813DC174A137975

+:102A90005BB2002BF2DA2B78002101333F20984201

+:102AA000494149420B401249C95CDBB2C9B2D171FC

+:102AB0002B70E3E7FF28E1DDFFF754FDDEE70C4B69

+:102AC000FFB21F550B4B01221A70084BE4B2AC2227

+:102AD0003470DA70F8BDC0463480044038070020F6

+:102AE000340700203C0700203607002000A00640E5

+:102AF000B2060020B006002038B5041C4518AC42D0

+:102B000004D02078FFF7A4FF0134F8E738BDFFFFB9

+:102B100008B5044B1B78002B02D0FFF723FDF8E724

+:102B200008BDC046B0060020064B074A1B78107847

+:102B3000DBB2C0B2834201D33F3000E00138C01A9B

+:102B40007047C0463C07002036070020054B187828

+:102B5000054BC0B21B78DBB2984200D24030C01A9D

+:102B60007047C04635070020B106002010B5124B53

+:102B700012491A780B78D2B2DBB29A4219D00133DB

+:102B80003F2400209C424041404203400C48DCB2BC

+:102B9000C05C0C700B49C0B2096800290BD09A4286

+:102BA00000D24032D31A1A2B05DC074B1B780B726C

+:102BB00001E00120404210BD35070020B106002091

+:102BC000F4060020AC060020F30600200A4B1A7819

+:102BD0000A4B1B78DBB29A420AD0013300223F2114

+:102BE0009942524152421340054AD05CC0B201E0C2

+:102BF000012040427047C04635070020B106002042

+:102C0000F4060020064B1A78064BD2B21A70064B17

+:102C10001B68002B02D0054A12781A727047C04612

+:102C2000B106002035070020AC060020F306002086

+:102C300030B5254A1379990612D52449D4790B78F1

+:102C4000002001333F259D4240414042034020483F

+:102C5000E4B20078834203D01E48C454DBB20B7048

+:102C6000D178194CC9B24BB2002B1ADA23795BB276

+:102C7000002B16DA184B19481D780378DBB29D42F9

+:102C800002D16C23E3700CE0013300243F259D4208

+:102C9000644164422340124CE45CDBB2E4B2D47180

+:102CA0000370402319420ED0117919420BD00D4BFD

+:102CB000002119700C4B1B688B4202D00B4909781C

+:102CC00019722C23D37030BD00A0064035070020B8

+:102CD000B1060020F40600203C0700203607002043

+:102CE000B2060020B006002038070020340700207C

+:102CF000164B8022196812010A431A60144A0023F5

+:102D00001370144A14491370144A1370144A137040

+:102D1000144A1370144A1160144AD12189001160B9

+:102D2000134AC104C90EC0B21170507093702C23A5

+:102D3000D370104B104A19680A408021C9010A4318

+:102D40001A600E4B802292011A6070473480044052

+:102D5000B00700204507002013030000B80700203B

+:102D6000B1070020440700200CB0044010B004401C

+:102D700000B006400CE400E0FF00FFFF00E100E0CF

+:102D800010B5174B132299789143032202400A434E

+:102D9000410701D510210A439A700F2210490240C1

+:102DA000042A03D18A79402422438A715A79102156

+:102DB0008A43084200D00A435A71997910229143FC

+:102DC000840600D51143064A9971C10506D553788A

+:102DD00011782020DBB201431170537010BDC04642

+:102DE00000B0064008B5124B1B681A051ED5114BE2

+:102DF0001B78DBB2002B02D0FFF7B4FBF7E70E4ADB

+:102E00008021890111600D4A0D49D3700422FF32DF

+:102E10000A600C490A600C4A13700C4A13700C4B80

+:102E20001B68002B02D00B4A12781A7108BDC046ED

+:102E3000348004404407002080E100E000B00640F8

+:102E40000CB0044010B00440B0070020450700203B

+:102E5000400700206E07002038B5041C0B4B1D787E

+:102E6000EDB2002DFAD1201C0121FEF703F9291C37

+:102E7000201CFEF7CDF80C225443054B054AE158BF

+:102E80001C191160044B227A1A7038BD44070020C7

+:102E90000C520000B4070020AF07002070477047B5

+:102EA00038B50E4B1A680023110514D50C4C1A289E

+:102EB00010D80C2343430B4A0B4D9958D3181B7A57

+:102EC000216001212B70FEF7D5F823682A781A7249

+:102ED000012300E02360181C38BDC0463480044044

+:102EE000400700200C5200006E07002000207047B1

+:102EF000F8B5214B071C1B681A053BD51F4B1B68F7

+:102F0000002B02D01E4A12781A711E4E002334780C

+:102F100027220134A2425B415B421C401A4D2B78B0

+:102F2000A3421CD1FFF778FB402813DC174A137922

+:102F30005BB2002BF2DA2B78002101332720984274

+:102F4000494149420B401249C95CDBB2C9B2D17157

+:102F50002B70E3E7FF28E1DDFFF704FBDEE70C4B16

+:102F6000FFB21F550B4B01221A70084BE4B2AC2282

+:102F70003470DA70F8BDC04634800440B4070020D5

+:102F8000AF070020B8070020B107002000B00640BE

+:102F9000460700204407002038B5041C4518AC4201

+:102FA00004D02078FFF7A4FF0134F8E738BDFFFF15

+:102FB00008B5044B1B78002B02D0FFF7D3FAF8E7D3

+:102FC00008BDC04644070020064B074A1B7810780E

+:102FD000DBB2C0B2834201D3273000E00138C01A0F

+:102FE0007047C046B8070020B1070020054B18788D

+:102FF000054BC0B21B78DBB2984200D24030C01AF9

+:103000007047C046B00700204507002010B5124B9E

+:1030100012491A780B78D2B2DBB29A4219D0013336

+:103020003F2400209C424041404203400C48DCB217

+:10303000C05C0C700B49C0B2096800290BD09A42E1

+:1030400000D24032D31A1A2B05DC074B1B780B72C7

+:1030500001E00120404210BDB007002045070020DC

+:103060006F070020400700206E0700200A4B1A78E7

+:103070000A4B1B78DBB29A420AD0013300223F216F

+:103080009942524152421340054AD05CC0B201E01D

+:10309000012040427047C046B0070020450700208D

+:1030A0006F070020064B1A78064BD2B21A70064BF7

+:1030B0001B68002B02D0054A12781A727047C0466E

+:1030C00045070020B0070020400700206E070020C1

+:1030D00030B5254A1379990612D52449D4790B784D

+:1030E000002001333F259D4240414042034020489B

+:1030F000E4B20078834203D01E48C454DBB20B70A4

+:10310000D178194CC9B24BB2002B1ADA23795BB2D1

+:10311000002B16DA184B19481D780378DBB29D4254

+:1031200002D16C23E3700CE00133002427259D427B

+:10313000644164422340124CE45CDBB2E4B2D471DB

+:103140000370402319420ED0117919420BD00D4B58

+:10315000002119700C4B1B688B4202D00B49097877

+:1031600019722C23D37030BD00B00640B007002088

+:10317000450700206F070020B8070020B107002096

+:103180004607002044070020B4070020AF070020B6

+:10319000204B8022196852010A431A601E4A0023FC

+:1031A00013701E4A13701E4A13701E4A13701E4A73

+:1031B00013701E4B1B78062B04D0072B05D11C4A1D

+:1031C0001C4B01E01A4A1C4B1A601C4B1B78082B45

+:1031D00005D0142B07D1D1229200194B02E0D12245

+:1031E000184B92001A60184BC204D20E1A70C0B26B

+:1031F000002258709A702C22DA70144B144A196805

+:103200000A408021C9030A431A60124B8022D2016E

+:103210001A607047348004402C080020C107002049

+:10322000340800202D080020C007002005030020DE

+:103230001303000008C0044010C00440060300202F

+:1032400014C004400CC0044000C006400CE400E080

+:10325000FFFF00FF00E100E010B5174B1322997843

+:103260009143032202400A43410701D510210A433A

+:103270009A700F2210490240042A03D18A7940240F

+:1032800022438A715A7910218A43084200D00A43A6

+:103290005A71997910229143840600D51143064A48

+:1032A0009971C10506D5537811782020DBB201430E

+:1032B0001170537010BDC04600C0064008B5124BD7

+:1032C0001B68DA041ED5114B1B78DBB2002B02D031

+:1032D000FFF748F9F7E70E4A8021C90111600D4A4E

+:1032E0000D49D3700422FF320A600C490A600C4A6F

+:1032F00013700C4A13700C4B1B68002B02D00B4A46

+:1033000012781A7108BDC04634800440C0070020FE

+:1033100080E100E000C0064008C004400CC004404A

+:103320002C080020C1070020BC070020EA0700206D

+:1033300038B5041C0B4B1D78EDB2002DFAD1201CC2

+:103340000121FDF797FE291C201CFDF761FE0C22D0

+:103350005443054B054AE1581C191160044B227A6D

+:103360001A7038BDC00700200C5200003008002041

+:103370002B08002030B5002901D080231843154ABE

+:103380001378141C984224D0134A1268D5041FD510

+:103390007F221340082B04D0142B05D100220F4BA1

+:1033A00001E00F4B00221A604423002900D0602363

+:1033B0007F220240082A06D0142A09D1C022920096

+:1033C0001343064A03E0C02292001343044A1360E9

+:1033D000207030BD060300203480044014C0044037

+:1033E0000CC0044010B50F4A1378984218D00E490B

+:1033F0000968CC0413D5062B04D0072B05D1002176

+:103400000A4B01E00A4B00211960062804D0072866

+:1034100005D10849054B01E00649054B19601070BC

+:1034200010BDC046050300203480044008C004409D

+:1034300010C004401303000038B50E4B1A68002377

+:10344000D10414D50C4C1A2810D80C2343430B4A32

+:103450000B4D9958D3181B7A216001212B70FDF771

+:1034600009FE23682A781A72012300E02360181CE1

+:1034700038BDC04634800440BC0700200C52000018

+:10348000EA07002000207047F8B5214B071C1B6895

+:10349000DA043BD51F4B1B68002B02D01E4A127862

+:1034A0001A711E4E0023347827220134A2425B4158

+:1034B0005B421C401A4D2B78A3421CD1FFF7ACF89D

+:1034C000402813DC174A13795BB2002BF2DA2B7811

+:1034D0000021013327209842494149420B401249BB

+:1034E000C95CDBB2C9B2D1712B70E3E7FF28E1DD23

+:1034F000FFF738F8DEE70C4BFFB21F550B4B0122EC

+:103500001A70084BE4B2AC223470DA70F8BDC046D1

+:1035100034800440300800202B08002034080020AC

+:103520002D08002000C00640C2070020C007002070

+:1035300038B5041C4518AC4204D02078FFF7A4FF2E

+:103540000134F8E738BDFFFF08B5044B1B78002BAA

+:1035500002D0FFF707F8F8E708BDC046C007002013

+:10356000064B074A1B781078DBB2C0B2834201D306

+:10357000273000E00138C01A7047C04634080020E8

+:103580002D080020054B1878054BC0B21B78DBB224

+:10359000984200D24030C01A7047C0462C08002024

+:1035A000C107002010B5124B12491A780B78D2B21D

+:1035B000DBB29A4219D001333F2400209C424041A3

+:1035C000404203400C48DCB2C05C0C700B49C0B2F6

+:1035D000096800290BD09A4200D24032D31A1A2B24

+:1035E00005DC074B1B780B7201E00120404210BD47

+:1035F0002C080020C1070020EB070020BC0700209A

+:10360000EA0700200A4B1A780A4B1B78DBB29A4271

+:103610000AD0013300223F219942524152421340C5

+:10362000054AD05CC0B201E0012040427047C0466C

+:103630002C080020C1070020EB070020064B1A7859

+:10364000064BD2B21A70064B1B68002B02D0054AFB

+:1036500012781A727047C046C10700202C0800205B

+:10366000BC070020EA07002030B52E4A13799906DE

+:1036700024D52D49D4790B78002001333F259D4274

+:103680004041404203402948E4B20078834203D0DD

+:103690002748C454D8B208702649086800280DD0BD

+:1036A00025490978C9B28B4201D35B1A01E05B1A44

+:1036B0004033272B02DD214B1B780371D178194C45

+:1036C000C9B24BB2002B1ADA23795BB2002B16DA9F

+:1036D0001B4B19481D780378DBB29D4202D16C2345

+:1036E000E3700CE00133002427259D4264416442CD

+:1036F0002340144CE45CDBB2E4B2D4710370402389

+:1037000019420ED0117919420BD00F4B00211970BC

+:103710000E4B1B688B4202D00D49097819722C237D

+:10372000D37030BD00C006402C080020C107002027

+:10373000EB070020BC0700202D080020EA0700202E

+:1037400034080020C2070020C007002030080020F5

+:103750002B0800201FB572B6154B70221A70154A3F

+:1037600041211170144A0F21117080221A701A78A9

+:1037700052B2002AFBDA114B186862B6104B98421D

+:1037800001D80A23584301AC211C0A22FEF770FF1E

+:103790000023E15C0B4A002905D0580010180133C2

+:1037A00041800A2BF5D101335B0013701FBDC04669

+:1037B00000000240070002400600024008000240EC

+:1037C0007F969800E403002008B50368C9B21B681F

+:1037D000984708BD08B50368C9B21B68984708BD7B

+:1037E00008B50368C9B21B68984708BD08B50368E7

+:1037F000C9B21B68984708BD08B5044B4808C018F3

+:1038000000F0A2FAFEF75CFF08BDC046C0C62D005E

+:1038100010B5064B4808C018141C00F095FAFEF7C6

+:103820004FFF201CFEF7C0FF10BDC046C0C62D00D4

+:1038300008B5FEF7EBFF08BD08B5081CFFF720F838

+:1038400008BD08B5081CFFF793F808BD08B5081CAB

+:10385000111CFFF737F808BD08B5081CFFF7D0F8B2

+:10386000431E9841C0B208BD08B5081CFFF7EEF82A

+:10387000431E9841C0B208BD08B5FFF767F908BDFF

+:1038800008B5FFF7A3F908BD08B5FFF76FF908BD44

+:1038900008B5FFF73DF908BD08B5FFF7B3F908BD56

+:1038A00008B5FFF741F908BD08B5081CFFF7D0F8C7

+:1038B000012008BD08B5081CFFF7CAF8012008BDA3

+:1038C00010B5081C141C111CFFF716F9201C10BDA4

+:1038D00038B5081C0D1C01F041F9041C211C281CE2

+:1038E000FFF70AF9201C38BD7047FFFF044B002288

+:1038F0001A711A73FA21034A890099601A60704795

+:1039000038080020E053000008B50368C9B21B68FE

+:10391000984708BD08B50368C9B21B68984708BD39

+:1039200008B50368C9B21B68984708BD08B50368A5

+:10393000C9B21B68984708BD08B5044B4808C018B1

+:1039400000F002FAFFF7D4F908BDC04660E31600A4

+:1039500010B5064B4808C018141C00F0F5F9FFF725

+:10396000C7F9201CFFF70CFA10BDC04660E3160033

+:1039700008B5FFF737FA08BD08B5081CFFF76CFA61

+:1039800008BD08B5081CFFF78AFA08BD08B5081C71

+:10399000111CFFF783FA08BD08B5081CFFF780FA71

+:1039A000431E9841C0B208BD08B5081CFFF79EFA37

+:1039B000431E9841C0B208BD08B5FFF717FB08BD0C

+:1039C00008B5FFF753FB08BD08B5FFF71FFB08BD9F

+:1039D00008B5FFF7EDFA08BD08B5FFF763FB08BDB2

+:1039E00008B5FFF7F1FA08BD08B5081CFFF780FA23

+:1039F000012008BD08B5081CFFF77AFA012008BDB0

+:103A000010B5081C141C111CFFF7C6FA201C10BDB1

+:103A100038B5081C0D1C01F0A1F8041C211C281C41

+:103A2000FFF7BAFA201C38BD7047FFFF044B002295

+:103A30001A711A73FA21034A890099601A60704753

+:103A4000480800204054000008B50368C9B21B684C

+:103A5000984708BD08B50368C9B21B68984708BDF8

+:103A600008B50368C9B21B68984708BD08B5036864

+:103A7000C9B21B68984708BD08B5044B4808C01870

+:103A800000F062F9FFF784FB08BDC04660E3160052

+:103A900010B5064B4808C018141C00F055F9FFF784

+:103AA00077FB201CFFF7D8FB10BDC04660E3160073

+:103AB00008B5FFF703FC08BD08B5081CFFF738FC84

+:103AC00008BD08B5081CFFF78DFC08BD08B5081C2B

+:103AD000111CFFF74FFC08BD08B5081CFFF7ACFC34

+:103AE000431E9841C0B208BD08B5081CFFF7CAFCC8

+:103AF000431E9841C0B208BD08B5FFF743FD08BD9D

+:103B000008B5FFF77FFD08BD08B5FFF74BFD08BD01

+:103B100008B5FFF719FD08BD08B5FFF78FFD08BD13

+:103B200008B5FFF71DFD08BD08B5081CFFF7ACFC84

+:103B3000012008BD08B5081CFFF7A6FC012008BD40

+:103B400010B5081C141C111CFFF7F2FC201C10BD42

+:103B500038B5081C0D1C01F001F8041C211C281CA0

+:103B6000FFF7E6FC201C38BD7047FFFF044B002226

+:103B70001A711A73FA21034A890099601A60704712

+:103B800058080020A054000008B50B4B1A68002A02

+:103B900004D001221A60094B1B689847084B1B7818

+:103BA000002B08D0074B1A68002A04D001221A60A3

+:103BB000024B5B68984708BD0C7103406C080020FD

+:103BC0006A0800201C710340064B80221968120409

+:103BD0000A431A60044B00221A60044B01221A7037

+:103BE0007047C0463C800440007003406A080020D3

+:103BF000054B01221A60054B054A19680A401A60F4

+:103C0000044B00221A707047007003403C8004404F

+:103C1000FFFF7FFF6A08002070B544780E4D0F4EFD

+:103C200023015A199B190E4D0669A4004260665182

+:103C3000002483601C60116003221A60094B417BE1

+:103C4000094A1868090402400A431A60074B802297

+:103C5000D2031A6070BDC046007103400871034072

+:103C60006C08002014E400E0FFFF00FF00E100E02A

+:103C7000F8B50C4B061C1B780F1C002B01D1FFF76D

+:103C8000A3FF094D2C78002C04D06B7800208342D0

+:103C900007D10124301C7470391CFFF7BDFF0120CF

+:103CA0002855F8BD6A0800206808002008B5836818

+:103CB00000221A608021074BC90319604178064B26

+:103CC0005A541A78002A04D15B78002B01D1FFF7EF

+:103CD0008FFF08BD80E100E06808002070B5037820

+:103CE000041C0E1C151C002B03D0FFF7DFFF002364

+:103CF00023702661201C291CFFF7BAFF002802D080

+:103D00000123237000E02070207870BD037810B587

+:103D1000041C002B01D0FFF7C9FF0023237010BD46

+:103D200002B4714649084900095C49008E4402BC4E

+:103D30007047C04603B47146490840004900095A1B

+:103D400049008E4403BC7047002934D0012300226F

+:103D500010B488422CD301242407A14204D281420A

+:103D600002D209011B01F8E7E400A14204D281421A

+:103D700002D249005B00F8E7884201D3401A1A4397

+:103D80004C08A04202D3001B5C0822438C08A042CE

+:103D900002D3001B9C082243CC08A04202D3001B84

+:103DA000DC082243002803D01B0901D00909E3E7FE

+:103DB000101C10BC7047002801D00020C04307B47D

+:103DC000024802A14018029003BDC046190000003D

+:103DD0000029F0D003B5FFF7B9FF0EBC4243891AA2

+:103DE0001847C0467047C0468446081C6146FFE736

+:103DF0001FB500F001FA002801D40021C8421FBD00

+:103E000010B500F087F94042013010BD10B500F048

+:103E1000F3F9002801DB002010BD012010BDC046D1

+:103E200010B500F0E9F9002801DD002010BD0120E7

+:103E300010BDC04610B500F097F9002801DC002045

+:103E400010BD012010BDC04610B500F08DF900284E

+:103E500001DA002010BD012010BDC0461C21012345

+:103E60001B04984201D3000C10391B0A984201D35D

+:103E7000000A08391B09984201D30009043902A23B

+:103E8000105C40187047C0460403020201010101A2

+:103E900000000000000000009E2110B5C905041CB0

+:103EA000FFF7D2FF002803D1201C00F091FC10BDC9

+:103EB0009E21C905201C00F015FB00F089FC802321

+:103EC0001B06C018F3E7C046F0B55F4656464D46A0

+:103ED0004446F0B446024500C00F85B00F1C760A78

+:103EE0002D0E804641D0FF2D26D0802424040021B1

+:103EF0002643F6007F3D89468B46F90F7C02780009

+:103F0000640A000E00918A463CD0FF2834D08023FA

+:103F10001B041C430023E4007F380193009F4346A9

+:103F2000019A7B4049469C4611430F2900D971E014

+:103F3000764F89007F58BF46002E3ED108220223CB

+:103F400091469B46D9E75A46341CC24601920199D4

+:103F5000022937D0032900D1CFE0012900D0ABE0FE

+:103F600053460B400022002632E0002E19D10421D6

+:103F7000012289469346C0E7221C531E9A41023211

+:103F80000192CBE701270197002CC7D0201CFFF737

+:103F900065FF431F9C4076235B420021181A019164

+:103FA000BCE7301CFFF75AFF7625431F9E406D4249

+:103FB00000232D1A99469B469FE70C23032199461F

+:103FC0008B469AE7D446012367463B40FF220026F2

+:103FD0007602D205700ADB071043184305B03CBCDB

+:103FE00090469946A246AB46F0BD80260023F603D4

+:103FF000FF22EDE700220026EAE78020C003064208

+:104000003BD0044239D1061C26437602760A009B37

+:10401000FF22DDE7281A039076016401A64239D316

+:10402000361B1A2201230120311C5B007600002977

+:1040300001DBB44201D8361B0343013A002AF3DC0A

+:10404000741EA641341C1C43039A7F32002A27DDCC

+:10405000630704D00F232340042B00D0043427012E

+:1040600003D52B4B039A1C408032FE2A0BDD012323

+:1040700061460B40FF220026AAE706437602760A35

+:104080004346FF22A4E7A40101236746660AD2B291

+:104090003B409DE7039F1B22013F03970023C2E79C

+:1040A0007E23039F5B42DB1B1B2B07DD0123614645

+:1040B0000B40002200268BE7D446C5E7221CDA40DD

+:1040C000039B9E339C40231C5C1EA34113435A0751

+:1040D00004D00F221A40042A00D004335F0105D512

+:1040E000012361460B400122002671E79E016246D2

+:1040F00001231340760A00226AE78026F60326434E

+:104100007602760A5346FF2262E7C046F854000062

+:10411000FFFFFFF74A02430270B55C0A550A4300ED

+:104120004A001B0EC60F120EC90FFF2B05D0FF2A27

+:1041300008D0012093420BD070BD0120002CFBD190

+:10414000FF2AF6D10120002DF6D101209342F3D1B0

+:10415000AC42F1D18E4205D0002BEDD1201C441E83

+:10416000A041E9E70020E7E74A024302F0B55C0A14

+:10417000550A43004A001B0EC60F120EC90FFF2B33

+:1041800031D0FF2A34D0002B16D1604260418446E2

+:10419000002A14D0002820D18E4217D1934215DC7A

+:1041A00004DBAC4212D80020AC4212D27042704103

+:1041B0004042012318430CE0002AEDD194466F429F

+:1041C0006F416046002805D1002FE5D070420123E1

+:1041D0001843F0BD0020002FFBD148424841404227

+:1041E00001231843F5E7002CCBD002204042F0E732

+:1041F000002DC8D0F9E7C0464A024302F0B55C0A78

+:10420000550A43004A001B0EC60F120EC90FFF2BA2

+:1042100027D0FF2A29D0002B10D0002A15D1944690

+:104220006F426F416046002815D00020002F04D156

+:1042300048424841404201231843F0BD604260417A

+:104240008446002AECD00028F2D18E4211D0704270

+:1042500001231843F1E7002FF7D0704201231843E0

+:10426000EBE70220002CE8D1D3E70220002DE4D1B7

+:10427000D1E79342EBDC04DBAC42E8D80020AC424F

+:10428000DBD270427041404201231843D5E7C0465B

+:10429000F0B55F4656464D464446F0B444024600EB

+:1042A00083B00F1C640A360EC50F002E41D0FF2EBE

+:1042B00022D080231B0400201C43E4007F3E824662

+:1042C0008046391C4B007F02C90F7F0A1B0E8B46AC

+:1042D0003BD0FF2B34D0802212041743FF007F3BDA

+:1042E00000215A466A40019252460A430F2A63D877

+:1042F0007A48920082589746002C3FD10822022328

+:1043000092469846DDE70195404602282AD1019A57

+:1043100001251540FF2300246402DB05600AED0738

+:104320001843284303B03CBC90469946A246AB468E

+:10433000F0BD002C27D10420012282469046C0E720

+:10434000391C4A1E91410231CBE70121002FC8D010

+:10435000381CFFF783FD431F9F4076235B421B1AE7

+:104360000021BEE7032800D1AEE001284FD101981B

+:1043700042461040C5B200230024CDE70C230320A1

+:104380009A4680469DE7201CFFF768FD7626431F6E

+:104390009C4076420023361A9A46984691E780243C

+:1043A0000025E403FF23B7E75B463C1C01938846E6

+:1043B000AAE73C1C8846A7E7250C24043A0C240CE9

+:1043C0003F04F6183F0C211C231C794353436F43D1

+:1043D0005543FB180A0C9B18B1469F4202D9802214

+:1043E0005202AD1809041A04090C521894011B0C4E

+:1043F000611E8C41920EED181443AD012C43230134

+:1044000005D5012263080120144081441C434B461A

+:104410007F33002B2DDD600704D00F222240042AB9

+:1044200000D00434220103D52D4B1C404B46803371

+:10443000FE2B17DD019B01251D400024FF236BE7A8

+:104440008020C003044208D0074206D1041C3C432C

+:104450006402640A5D46FF235EE704436402640A63

+:10446000FF2359E70198A4010125640ADBB2054046

+:1044700052E77E235B424A469B1A1B2B05DD019BBC

+:1044800001251D400024002346E7221CDA404B464C

+:104490009E339C40231C5C1EA3411343580704D049

+:1044A0000F221A40042A00D004335A0105D5019B7B

+:1044B00001251D40002401232EE701989C010125C0

+:1044C000640A0540002327E78027FF03019B3C4344

+:1044D000640201251D40640AFF231DE738550000D2

+:1044E000FFFFFFF7F8B5C20F430244004D0248003A

+:1044F000240E161C9B09000EC90FAD09FF2800D120

+:1045000083E0012779408A425CD0221A002A00DC2D

+:104510008EE000281ED1002D00D07AE0580704D08C

+:104520000F221A40042A00D004338021C90401223A

+:104530001940324000293AD00134FF2C00D183E0E9

+:104540009B015B0A5B02E4B2E405580AD2072043F0

+:104550001043F8BDFF2CE1D08021C9040D431B2A74

+:1045600000DD31E1291C2020D140821A95406A1ECD

+:1045700095410D435B1B5801D0D59B019F09381C09

+:10458000FFF76CFC421F974094425FDC141B1F2313

+:104590001B1B3A1C9F40611C3B1CCA405F1EBB4159

+:1045A00013430024BAE7131EB8D100230022DB080E

+:1045B000FF2C04D1002B47D08020C00303435B02B3

+:1045C0005B0ABFE7211A002944DD002827D0FF2C11

+:1045D000A4D08020C00405431B2900DDF2E0281C84

+:1045E0002027C840791A8D40691E8D4105435B190B

+:1045F000590100D492E70134FF2C59D073490122AC

+:104600001A400B405B08134388E7002D00D07AE77F

+:1046100077E7013A002AADD0FF2CA0D17EE7002D2C

+:1046200000D17BE701390029E1D0FF2CD4D175E717

+:10463000002A1BD1621CD2B2012A4BDD5F1B7A011A

+:1046400023D5EF1A0E1C9AE700237BE75F4BA41AD1

+:104650003B4063E7002946D1611CC8B2012829DD2F

+:10466000FF2924D0EB185B080C1C57E7002C13D053

+:10467000FF2818D08024E404524223431B2A4DDD36

+:104680000123EB1A041C0E1C75E7002F00D076E7FF

+:104690000023002200248AE7002B3BD0D243002ACB

+:1046A000EFD0FF28EAD12B1CFF240E1C36E7FF2495

+:1046B00000237CE7002C5CD1002B00D180E0002D92

+:1046C00000D12BE75B19580100D427E73F4A0124AA

+:1046D000134023E7002C15D1002B40D1002D63D0CF

+:1046E0002B1C0E1C1AE7002C21D1002B54D0C943DF

+:1046F000002904D0FF284CD01B2958DD01235B1969

+:10470000041C75E7002B19D1002D48D02B1C0E1C62

+:10471000FF2403E72B1C041C0E1CFFE61C1C202698

+:10472000D440B21A93405A1E93412343A9E7FF286D

+:104730002FD08024E40449422343DDE7FF24002DE9

+:1047400000D1EBE68022DB08D203134204D0ED084F

+:10475000154201D12B1C0E1CDB00FF24DEE6002DD0

+:1047600000D1DBE65A1B500100D41CE7EB1A0E1CEB

+:10477000D4E6002B0DD0FF24002D00D1CEE6802200

+:10478000DB08D2031342E7D0ED081542E4D12B1C1D

+:10479000E2E72B1CFF24C1E62B1C041CBEE6802391

+:1047A00000229B04FF2402E7231C0022FFE61C1CBE

+:1047B0002027CC40791A8B40591E8B4123439EE71A

+:1047C0002B1CABE6012512E70125D3E6FFFFFFFB1B

+:1047D0004302590A4300C20F1B0E00207E2B0DDD41

+:1047E0009D2B0CDC802000040143952B0ADC9620D5

+:1047F000C31AD9404842002A00D1081C7047034B15

+:10480000D018FBE7963B9940F4E7C046FFFFFF7FD7

+:1048100010B5041E33D0FFF721FB9E231B1A962BE5

+:1048200009DC083884406402640ADBB26402DB05F8

+:10483000600A184310BD992B0ADD0522121A211CAB

+:10484000D1400A1C011C1B318C40611E8C41144359

+:10485000052801DD421F9440144A2240610704D01C

+:104860000F210C40042C00D0043251010AD59F23A3

+:10487000181AFF2816D09401640AC3B2D6E70023A1

+:104880000024D3E7D208FF2B03D05402640ADBB222

+:10489000CCE7002A06D08024E40314436402640AAF

+:1048A000FF23C3E7FF230024C0E7C046FFFFFFFB51

+:1048B00008B5031C081C191C00F002F808BDFFFF16

+:1048C00038B5051C05480C1C131C002804D0022018

+:1048D000291C221C00E000BF38BDC04600000000BB

+:1048E00070B50E4B0E4D0024ED1AAD101E1CAC42DF

+:1048F00004D0A300F35898470134F8E700F058FEBD

+:10490000084B094D0024ED1AAD101E1CAC4204D01A

+:10491000A300F35898470134F8E770BDBC55000078

+:10492000BC550000BC550000D855000008B5034B2D

+:10493000011C186800F02EF808BDC0465C04002079

+:1049400010B50023934203D0CC5CC4540133F9E783

+:1049500010BD70B5814201D300230CE08C18A04239

+:10496000FAD28518131C013B0BD351426618F65C32

+:104970006918CE54F7E7934203D0CC5CC45401339A

+:10498000F9E770BD031C8218934202D019700133FD

+:10499000FAE7704730B5002940D004390B68002B86

+:1049A00000DAC9181E4A1368141C002B02D14B6090

+:1049B000116033E099420FD208680A189A4205D173

+:1049C00013685268C01808604A6000E04B602160BC

+:1049D00024E08A4203D8131C5A68002AF9D11D68C2

+:1049E0005C198C420BD109686918581819609042FB

+:1049F00014D114685268091919605A600EE08C428B

+:104A000002D90C23036009E008680C18944203D112

+:104A100014685268001908604A60596030BDC04689

+:104A20007808002070B50323CD1C9D430835061C73

+:104A30000C2D01D20C2501E0002D3FDB8D423DD332

+:104A4000204B1C681A1C211C002913D00868431B2A

+:104A50000DD40B2B02D90B60CC181EE08C4202D176

+:104A6000636813601AE0486860600C1C16E00C1C58

+:104A70004968E9E7144C2068002803D1301C00F095

+:104A800031F82060301C291C00F02CF8431C15D094

+:104A9000C41C03239C4384420AD12560201C0B3094

+:104AA0000722231D9043C31A0BD05A42E25008E05C

+:104AB000211A301C00F016F80130EED10C233360BF

+:104AC000002070BD780800207408002008B50A1C7A

+:104AD0000349031C0868191C00F02DFB08BDC046E3

+:104AE0005C04002038B5074C0023051C081C23601B

+:104AF000FDF78AFD431C03D12368002B00D02B60F7

+:104B000038BDC046D40800200EB400B59CB01DAB23

+:104B100004CB822202A992008A810A4A02908A600A

+:104B20004A6101225242CA81074A086110681D9AEF

+:104B3000019300F07BF8029A002313701CB008BCAC

+:104B400003B01847FFFFFF7F5C040020031C0A78B6

+:104B500001311A700133002AF9D170470023C25C79

+:104B60000133002AFBD1581E7047FFFFF0B58D6856

+:104B700085B0071C0C1C03920193AB4245D39022D5

+:104B80008B89D20013423DD06269032656430969DE

+:104B90002068F20F401A96190290021C0198013207

+:104BA00012187610964200D2161C381C5A050FD5E2

+:104BB000311CFFF737FF051E13D0029A2169FFF75A

+:104BC000BFFEA289184B134080221343A38111E03A

+:104BD000321C00F0B0FA051E0CD1381C2169FFF719

+:104BE000D9FE0C233B60A389402213430120A381FB

+:104BF000404217E0029B2561ED1825606661019D2A

+:104C0000F61AA6600198A84200D2019D2A1C2068CD

+:104C10000399FFF79EFEA2680020531BA360236840

+:104C20005D19256005B0F0BD7FFBFFFFF0B59FB0BB

+:104C3000039005938B890E1C171C19060FD532693A

+:104C4000002A0CD14021FFF7EDFE306030610028D2

+:104C500003D103990C230B60C9E04023736106ADB7

+:104C600000236B6120236B763023AB763C1C2378CA

+:104C7000002B03D1E21B029211D003E0252BF9D0C7

+:104C80000134F4E70398311C3A1C029BFFF76EFFD6

+:104C9000013000D1A6E06969029A8B186B61237814

+:104CA000002B00D19EE0012252426A606A46002336

+:104CB0005B3201342B60EB60AB601370AB654E4F21

+:104CC0002178381C052200F02BFA002807D0C71BDA

+:104CD0002B680120B840184328600134EFE72B68A7

+:104CE000D90603D56A4620215B3211701A0703D515

+:104CF0006A462B215B32117022782A2A01D0099B47

+:104D00000EE0059A111D12680591002A01DB099237

+:104D100004E05242EA60022213432B60013409E0AE

+:104D20002278303A092A04D80A214B4301349B18CF

+:104D3000F6E7099323782E2B18D163782A2B09D113

+:104D4000059B02341A1D1B680592002B0DDA012306

+:104D50005B420AE0013400232278303A092A04D861

+:104D60000A214B4301349B18F6E70793234F217820

+:104D7000381C032200F0D4F9002806D0C71B2B688A

+:104D80004020B84018432860013421781C4806228E

+:104D9000671C297600F0C4F9002812D0194B002BAB

+:104DA00006D1059B0722073393430833059314E08C

+:104DB00005AB00930398291C321C134B00E000BF85

+:104DC00007E005AB00930398291C321C0E4B00F042

+:104DD00091F804900499013104D06A690499531838

+:104DE0006B6143E7B3895A0601D40B9801E00120B7

+:104DF00040421FB0F0BDC0467A550000805500000B

+:104E000084550000000000006D4B0000F7B5151C34

+:104E100001930A698B68061C0C1C934200DA131C70

+:104E2000221C2B6043321278002A01D001332B6000

+:104E30002068800602D52B6802332B602168062784

+:104E40000F401FD0231C43331B785A1E9341226806

+:104E500092061FD5E11840313020C870211C5A1C21

+:104E600045310978A21840320233D17012E0221C79

+:104E7000301C019919320123089FB847013011D025

+:104E8000009F01370097E0682968009F431A9F42FE

+:104E9000EDDBD7E7221C301C01994332089FB8474D

+:104EA000013002D10120404223E0206806212B6816

+:104EB000E26801400025042903D1D51AEB43DB1732

+:104EC0001D40A26823699A4201DDD31AED1800271C

+:104ED0000097009FAF420BDA221C301C01991A3256

+:104EE0000123089FB8470130DCD0009F0137EFE76E

+:104EF0000020FEBDF0B50D1C8BB043350692059029

+:104F0000079304950B7E0C1C109A6E2B00D1A7E022

+:104F100011D8632B22D009D8002B00D1B0E0582B38

+:104F200000D0C0E045310B707B4D4EE0642B1CD0AF

+:104F3000692B1AD0B7E0732B00D1A5E009D86F2BED

+:104F400029D0702B00D0AEE00E68202333430B60D5

+:104F500036E0752B1FD0782B32D0A4E013680D1CDF

+:104F6000191D423511601B689FE0216813680E0609

+:104F700003D5191D11601E6805E04806F9D5191DF5

+:104F8000116000215E5E644B002E3BDA049D2D22F1

+:104F900076422A7036E0216813680E0603D5191D83

+:104FA00011601E6804E04806F9D5191D1E881160BD

+:104FB000594B227E039308276F2A1ED00A271CE034

+:104FC000231C78214533554D197011682368081D3D

+:104FD000039510601E0601D50E6802E05806FBD549

+:104FE0000E88D90702D52022134323601027002EF4

+:104FF00003D1226820239A432260231C00224333DA

+:105000001A7001E003930A276368A360002B03DB97

+:105010002568042295432560002E02D1049D002BB3

+:105020000ED0049D301C391CFEF7D2FE0398013DC2

+:10503000435C301C2B70391CFEF786FE061EF1D136

+:10504000082F09D12168C90706D5626823699A42E9

+:1050500002DC013D30232B70049E731B23612AE088

+:10506000086813684969050604D5181D10601B6897

+:10507000196005E04606F8D5181D10601B681980F8

+:1050800000232361049D16E01368191D11601D683B

+:10509000281CFFF763FD63682061984200D92361F3

+:1050A0002069606004E0251C42352B7001232361D8

+:1050B000049E00233370079E05980096211C09AAC0

+:1050C000069BFFF7A3FE013002D10120404221E000

+:1050D0002A1C059806992369079DA8470130F4D03A

+:1050E0002668B60705D4099BE068984212DA181CB6

+:1050F00010E00025E0680999431A9D42F3DA221C6A

+:105100000598069919320123079EB0470130DCD07B

+:105110000135EFE70BB0F0BD8B5500009C5500004A

+:10512000C9B28218904204D003788B4202D0013079

+:10513000F8E700207047F8B5061C0C1C151C002968

+:1051400004D1111CFFF76EFC041C18E0002A03D1E7

+:10515000FFF720FC2C1C12E000F013F8A8420ED23E

+:10516000301C291CFFF75EFC071E07D0211C2A1CDF

+:10517000FFF7E6FB301C211CFFF70CFC3C1C201C3D

+:10518000F8BD04390B68181F002B02DAC8581B1829

+:10519000181F7047256C6400256C75004720256337

+:1051A00020256C6420256420256400656E640074ED

+:1051B0002000360020473A002050445F7363726538

+:1051C000656E3A002050445F6C617365723A005519

+:1051D0006E6B6E6F776E20636F6D6D616E643A20DB

+:1051E00000050E08090D0C06070F0B004417FF05FC

+:1051F0000E08090D0C06070F0B004417FFFFFFFFF9

+:10520000FFFFFFFFFFFFFF1A1BFFFFFF420000F839

+:1052100040A0044001000000420000F844A0044007

+:1052200002000000C00000F800C0044001000000BF

+:10523000000000F80490044002000000000000F8A4

+:105240000890044004000000C00000F81CC00440A6

+:1052500080000000C00000F810C0044010000000F2

+:10526000C00000F808C0044004000000C00000F8BE

+:105270000CC0044008000000800000F80CB004409E

+:1052800008000000800000F810B00440100000008A

+:10529000800000F818B0044040000000800000F8D2

+:1052A0001CB0044080000000800000F814B00440EE

+:1052B00020000000C00000F804C00440020000000C

+:1052C000800000F800B0044001000000400000F839

+:1052D00000A0044001000000400000F804A00440C9

+:1052E00002000000400000F80CA00440080000008C

+:1052F000400000F808A0044004000000C00000F8CE

+:1053000014C0044020000000C00000F818C0044091

+:1053100040000000800000F804B0044002000000DB

+:10532000800000F808B0044004000000020100F80A

+:1053300050D0044010000000020100F854D0044096

+:1053400020000000030100F878D004404000000075

+:105350000000000000000000312500003B25000097

+:105360000925000011250000192500002125000055

+:1053700029250000000000001519151519FFFFFF71

+:1053800000010000070300201200000000020000DE

+:10539000320300209500000000030000E00300201D

+:1053A00000000000010309041A03002000000000AF

+:1053B00002030904C80300200000000003030904DD

+:1053C000E4030020000000000000000000000000D6

+:1053D00000000000FFFFFFFF0000000000000000D1

+:1053E000A9380000C1380000793800008938000071

+:1053F0008138000091380000F937000011380000B2

+:105400003138000039380000433800004D380000C2

+:10541000593800006938000099380000A1380000B0

+:10542000C9370000D5370000E1370000ED37000034

+:10543000D1380000B5380000000000000000000076

+:10544000E9390000013A0000B9390000C93900000B

+:10545000C1390000D139000039390000513900004C

+:105460007139000079390000833900008D3900005E

+:1054700099390000A9390000D9390000E13900004C

+:105480000939000015390000213900002D390000CC

+:10549000113A0000F5390000000000000000000093

+:1054A000293B0000413B0000F93A0000093B0000A5

+:1054B000013B0000113B0000793A0000913A0000E6

+:1054C000B13A0000B93A0000C33A0000CD3A0000FA

+:1054D000D93A0000E93A0000193B0000213B0000E6

+:1054E000493A0000553A0000613A00006D3A000068

+:1054F000513B0000353B000014400000C63F000057

+:10550000F43F00004E3F0000F43F0000EA3F00007F

+:10551000F43F00004E3F0000C63F0000C63F0000C1

+:10552000EA3F00004E3F0000463F0000463F0000BB

+:10553000463F0000FA3F0000B8430000B2430000BD

+:10554000B2430000A84300000843000008430000E5

+:105550009E430000A8430000084300009E43000053

+:1055600008430000A8430000064300000643000073

+:1055700006430000404400004300232D302B200050

+:10558000686C4C00656667454647003031323334FD

+:10559000353637383941424344454600303132339D

+:1055A00034353637383961626364656600FFFFFF62

+:1055B000F8B5C046F8BC08BC9E46704739040000E8

+:1055C000B90C00002923000049250000ED38000037

+:0855D0002D3A00006D3B0000C4

+:1055D800000000009C04002014050020AC040020FA

+:1055E8007C040020FC0400200A040000C90E00000E

+:1055F800C90E0000C90E0000C90E0000C90E000047

+:10560800C90E0000C90E0000C90E0000C90E000036

+:10561800C90E0000C90E0000C90E0000C90E000026

+:10562800C90E0000C90E0000C90E0000C90E000016

+:10563800C90E0000C90E0000C90E0000C90E000006

+:10564800C90E0000C90E0000C90E0000C90E0000F6

+:10565800C90E0000C90E0000FFFFFFFFFF00000099

+:10566800D80800200107081201010100000040C00D

+:1056780016890400020102030100180354006500A2

+:1056880065006E00730079006400750069006E00A3

+:105698006F0009029500030100C032080B000202E6

+:1056A800020104090400000102020100052400109F

+:1056B800010524010101042402060524060001074E

+:1056C80005810310004009040100020A00000007D8

+:1056D8000502024000000705830240000009040299

+:1056E8000002010300000724010001410006240212

+:1056F8000101000624020202000924030103010239

+:105708000100092403020401010100090505024002

+:105718000000000005250101010905840240000080

+:105728000000052501010300180354006500650009

+:105738006E007300790020004D00490044004900C4

+:10574800040309040C03000000000000000000002E

+:105758000000000000000000000000000000000041

+:105768000000000000000000000000000000000031

+:105778000000000000000000000000007855000054

+:105788000000000000000000000000000000000011

+:105798000000000000000000000000000000000001

+:1057A80000000000000000000000000000000000F1

+:1057B800000000000000000000000000FC030020C2

 :00000001FF

diff --git a/android/WALT/app/src/main/res/values/dimens.xml b/android/WALT/app/src/main/res/values/dimens.xml
index 47c8224..5ee798a 100644
--- a/android/WALT/app/src/main/res/values/dimens.xml
+++ b/android/WALT/app/src/main/res/values/dimens.xml
@@ -1,5 +1,4 @@
 <resources>
     <!-- Default screen margins, per the Android Design guidelines. -->
     <dimen name="activity_horizontal_margin">16dp</dimen>
-    <dimen name="activity_vertical_margin">16dp</dimen>
 </resources>
diff --git a/android/WALT/app/src/main/res/values/strings.xml b/android/WALT/app/src/main/res/values/strings.xml
index 7204eaa..bc83273 100644
--- a/android/WALT/app/src/main/res/values/strings.xml
+++ b/android/WALT/app/src/main/res/values/strings.xml
@@ -1,7 +1,6 @@
 <resources>
     <string name="app_name">WALT</string>
 
-    <string name="action_settings">Settings</string>
     <string name="title_activity_crash_log">Crash Log</string>
     <string name="protocol_version_mismatch">WALT reports protocol version %1$s, which is not
         supported. Please program WALT to a firmware with protocol version %2$s. To do this
@@ -16,6 +15,7 @@
     <string name="disclaimer">DISCLAIMER: This is not an official Google product.</string>
     <string name="more_info">A WALT device is required to run the latency tests. For more information, visit github.com/google/walt</string>
     <string name="privacy_policy">Privacy policy:\ngithub.com/google/walt/blob/master/docs/PrivacyPolicy.md</string>
+    <string name="hint_url">Enter URL</string>
     <string name="preference_screen_blinks" translatable="false">pref_screen_blinks</string>
     <string name="preference_audio_in_reps" translatable="false">pref_audio_in_reps</string>
     <string name="preference_audio_in_threshold" translatable="false">pref_audio_in_threshold</string>
@@ -29,6 +29,36 @@
     <string name="preference_screen_fullscreen">pref_screen_fullscreen</string>
     <string name="preference_log_url">pref_log_url</string>
     <string name="preference_auto_upload_log">pref_auto_upload_log</string>
+    <string name="start">Start</string>
+    <string name="close">Close</string>
+    <string name="reconnect">Reconnect</string>
+    <string name="tbd_conn_status">TBD: Conn status</string>
+    <string name="tap_latency">Tap latency</string>
+    <string name="drag_latency">Drag latency</string>
+    <string name="screen_response">Screen response</string>
+    <string name="audio_latency">Audio latency</string>
+    <string name="midi_latency">MIDI latency</string>
+    <string name="view_log">View log</string>
+    <string name="accelerometer_latency">Accelerometer latency</string>
+    <string name="settings">Settings</string>
+    <string name="about">About</string>
+    <string name="diagnostics">Diagnostics</string>
+    <string name="tbd_connection_sync_status">TBD: Connection/sync status</string>
+    <string name="ping">Ping</string>
+    <string name="ping_over_usb_with_1_byte">Ping over USB with 1 byte</string>
+    <string name="re_sync_clocks">Re-sync clocks</string>
+    <string name="check_clock_drift">Check clock drift</string>
+    <string name="check_how_much_clocks_diverged">Check how much clocks diverged</string>
+    <string name="update_walt_firmware">Update WALT Firmware</string>
+    <string name="please_press_the_button_on_the_teensy_first">Please press the button on the Teensy first</string>
+    <string name="finish">Finish</string>
+    <string name="restart">Restart</string>
+    <string name="stop">Stop</string>
+    <string name="start_midi_in">Start MIDI in</string>
+    <string name="start_midi_out">Start MIDI out</string>
+    <string name="upload">Upload</string>
+    <string name="share">Share</string>
+    <string name="help">Help</string>
     <string-array name="audio_mode_array">
         <item>Continuous Playback Latency</item>
         <item>Continuous Recording Latency</item>
diff --git a/android/WALT/app/src/main/res/values/styles.xml b/android/WALT/app/src/main/res/values/styles.xml
index 02095e7..05e7a67 100644
--- a/android/WALT/app/src/main/res/values/styles.xml
+++ b/android/WALT/app/src/main/res/values/styles.xml
@@ -6,7 +6,6 @@
         <item name="colorPrimaryDark">@color/ColorPrimaryDark</item>
         <item name="colorAccent">@color/ColorAccent</item>
         <item name="preferenceTheme">@style/PreferenceThemeOverlay.v14.Material</item>
-        <item name="android:imageButtonStyle">@style/ImageButtonStyle</item>
         <item name="imageButtonStyle">@style/ImageButtonStyle</item>
         <!-- the homeAsUpIndicator doesn't work with either png or xml icons -->
         <!--<item name="android:homeAsUpIndicator">@drawable/ic_chevron_left_black_24dp</item> -->
@@ -16,7 +15,7 @@
     <style name="MenuDivider">
         <item name="android:layout_width">match_parent</item>
         <item name="android:layout_height">1dp</item>
-        <item name="android:background">?android:attr/listDivider</item>
+        <item name="background">?android:attr/listDivider</item>
         <item name="android:layout_marginLeft">72dp</item>
     </style>
 
diff --git a/android/WALT/app/src/main/res/xml/backup_rules.xml b/android/WALT/app/src/main/res/xml/backup_rules.xml
new file mode 100644
index 0000000..0e782d2
--- /dev/null
+++ b/android/WALT/app/src/main/res/xml/backup_rules.xml
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8"?>
+<full-backup-content>
+  <include domain="root" />
+</full-backup-content>
\ No newline at end of file
diff --git a/android/WALT/app/src/main/res/xml/preferences.xml b/android/WALT/app/src/main/res/xml/preferences.xml
index 6482571..58a64f6 100644
--- a/android/WALT/app/src/main/res/xml/preferences.xml
+++ b/android/WALT/app/src/main/res/xml/preferences.xml
@@ -1,7 +1,7 @@
-<android.support.v7.preference.PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:walt="http://schemas.android.com/apk/res/org.chromium.latency.walt">
+<androidx.preference.PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:walt="http://schemas.android.com/apk/res-auto">
 
-    <android.support.v7.preference.PreferenceScreen
+    <androidx.preference.PreferenceScreen
         android:key="pref_general_screen"
         android:persistent="false"
         android:title="General">
@@ -28,9 +28,9 @@
 
         </PreferenceCategory>
 
-    </android.support.v7.preference.PreferenceScreen>
+    </androidx.preference.PreferenceScreen>
 
-    <android.support.v7.preference.PreferenceScreen
+    <androidx.preference.PreferenceScreen
         android:key="pref_tap_screen"
         android:persistent="false"
         android:title="Tap latency">
@@ -40,9 +40,9 @@
             android:title="Show live histogram for tap test"
             android:defaultValue="true" />
 
-    </android.support.v7.preference.PreferenceScreen>
+    </androidx.preference.PreferenceScreen>
 
-    <android.support.v7.preference.PreferenceScreen
+    <androidx.preference.PreferenceScreen
         android:key="pref_screen_response_screen"
         android:persistent="false"
         android:title="Screen response">
@@ -71,9 +71,9 @@
             android:title="Test in fullscreen mode"
             android:defaultValue="true" />
 
-    </android.support.v7.preference.PreferenceScreen>
+    </androidx.preference.PreferenceScreen>
 
-    <android.support.v7.preference.PreferenceScreen
+    <androidx.preference.PreferenceScreen
         android:key="pref_audio_screen"
         android:persistent="false"
         android:title="Audio">
@@ -105,9 +105,9 @@
             walt:maxValue="100000"
             walt:minValue="1" />
 
-    </android.support.v7.preference.PreferenceScreen>
+    </androidx.preference.PreferenceScreen>
 
-    <android.support.v7.preference.PreferenceScreen
+    <androidx.preference.PreferenceScreen
         android:key="pref_midi_screen"
         android:persistent="false"
         android:title="MIDI">
@@ -130,6 +130,6 @@
             walt:maxValue="1000"
             walt:minValue="1" />
 
-    </android.support.v7.preference.PreferenceScreen>
+    </androidx.preference.PreferenceScreen>
 
-</android.support.v7.preference.PreferenceScreen>
+</androidx.preference.PreferenceScreen>
diff --git a/android/WALT/app/src/test/java/org/chromium/latency/walt/AccelerometerFragmentTest.java b/android/WALT/app/src/test/java/org/chromium/latency/walt/AccelerometerFragmentTest.java
new file mode 100644
index 0000000..7a70426
--- /dev/null
+++ b/android/WALT/app/src/test/java/org/chromium/latency/walt/AccelerometerFragmentTest.java
@@ -0,0 +1,60 @@
+/*
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.chromium.latency.walt;
+
+import com.github.mikephil.charting.data.Entry;
+
+import org.junit.Test;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Random;
+
+import static org.junit.Assert.assertEquals;
+
+public class AccelerometerFragmentTest {
+
+    @Test
+    public void testSmoothEntries() {
+        Random rand = new Random(1234);
+        List<Entry> entries = new ArrayList<>();
+        for (int i = 1; i <= 400; i++) {
+            entries.add(new Entry(i, i + rand.nextFloat()*0.01f));
+        }
+        final List<Entry> smoothEntries = AccelerometerFragment.smoothEntries(entries, 4);
+        for (Entry e : smoothEntries) {
+            assertEquals(e.getX(), e.getY(), 1e-2);
+        }
+    }
+
+    @Test
+    public void testFindShifts() {
+        Random rand = new Random(5678);
+        List<Entry> phoneEntries = new ArrayList<>();
+        List<Entry> waltEntries = new ArrayList<>();
+        for (int i = 0; i < 1000; i++) {
+            if (i % 3 == 0)
+                phoneEntries.add(new Entry(i, (float) Math.sin((i - 12)*Math.PI/100)));
+            waltEntries.add(new Entry(i, (float) Math.sin(i*Math.PI/100)*rand.nextFloat() + rand.nextFloat()*0.2f - 0.1f));
+        }
+        final double[] shifts = AccelerometerFragment.findShifts(phoneEntries, waltEntries);
+        for (double d : shifts) {
+            System.out.println(d);
+        }
+        assertEquals(12, Utils.argmax(shifts)/10d, 1e-9);
+    }
+}
diff --git a/android/WALT/app/src/test/java/org/chromium/latency/walt/HistogramChartTest.java b/android/WALT/app/src/test/java/org/chromium/latency/walt/HistogramChartTest.java
index 8365719..c43eca1 100644
--- a/android/WALT/app/src/test/java/org/chromium/latency/walt/HistogramChartTest.java
+++ b/android/WALT/app/src/test/java/org/chromium/latency/walt/HistogramChartTest.java
@@ -29,7 +29,7 @@
 
 import java.util.ArrayList;
 
-import static junit.framework.Assert.assertEquals;
+import static org.junit.Assert.assertEquals;
 import static org.mockito.Matchers.anyInt;
 import static org.mockito.Mockito.when;
 import static org.powermock.api.mockito.PowerMockito.mockStatic;
diff --git a/android/WALT/app/src/test/java/org/chromium/latency/walt/TraceLoggerTest.java b/android/WALT/app/src/test/java/org/chromium/latency/walt/TraceLoggerTest.java
index ed617cb..f3a3c0d 100644
--- a/android/WALT/app/src/test/java/org/chromium/latency/walt/TraceLoggerTest.java
+++ b/android/WALT/app/src/test/java/org/chromium/latency/walt/TraceLoggerTest.java
@@ -21,7 +21,7 @@
 import org.powermock.core.classloader.annotations.PrepareForTest;
 import org.powermock.modules.junit4.PowerMockRunner;
 
-import static junit.framework.Assert.assertTrue;
+import static org.junit.Assert.assertTrue;
 import static org.mockito.Mockito.when;
 import static org.powermock.api.mockito.PowerMockito.mockStatic;
 
diff --git a/android/WALT/app/src/test/java/org/chromium/latency/walt/UtilsTest.java b/android/WALT/app/src/test/java/org/chromium/latency/walt/UtilsTest.java
index bf77e05..33d8454 100644
--- a/android/WALT/app/src/test/java/org/chromium/latency/walt/UtilsTest.java
+++ b/android/WALT/app/src/test/java/org/chromium/latency/walt/UtilsTest.java
@@ -16,15 +16,18 @@
 
 package org.chromium.latency.walt;
 
+import com.github.mikephil.charting.data.Entry;
+
 import org.junit.Test;
 
 import java.util.ArrayList;
+import java.util.List;
 import java.util.Random;
 
 import static java.lang.Double.NaN;
-import static junit.framework.Assert.assertEquals;
+import static org.junit.Assert.assertEquals;
 import static org.hamcrest.core.Is.is;
-import static org.junit.Assert.assertThat;
+import static org.hamcrest.MatcherAssert.assertThat;
 
 public class UtilsTest {
 
@@ -159,4 +162,31 @@
         }
         assertEquals(latency, Utils.findBestShift(laserTimes, touchTimes, touchY), 1e-6);
     }
+
+    @Test
+    public void testMeanEntries() {
+        List<Entry> entries = new ArrayList<>();
+        for (int i = 1; i <= 10; i++) {
+            entries.add(new Entry(i, i));
+        }
+        assertEquals(5.5, Utils.mean(entries), 1e-12);
+    }
+
+    @Test
+    public void testMinEntries() {
+        List<Entry> entries = new ArrayList<>();
+        for (int i = 1; i <= 10; i++) {
+            entries.add(new Entry(i, i));
+        }
+        assertEquals(1, Utils.min(entries), 1e-12);
+    }
+
+    @Test
+    public void testMaxEntries() {
+        List<Entry> entries = new ArrayList<>();
+        for (int i = 1; i <= 10; i++) {
+            entries.add(new Entry(i, i));
+        }
+        assertEquals(10, Utils.max(entries), 1e-12);
+    }
 }
diff --git a/android/WALT/build.gradle b/android/WALT/build.gradle
index aaedccb..fddf29e 100644
--- a/android/WALT/build.gradle
+++ b/android/WALT/build.gradle
@@ -2,10 +2,11 @@
 
 buildscript {
     repositories {
+        google()
         jcenter()
     }
     dependencies {
-        classpath 'com.android.tools.build:gradle-experimental:0.8.3'
+        classpath 'com.android.tools.build:gradle:3.6.3'
 
         // NOTE: Do not place your application dependencies here; they belong
         // in the individual module build.gradle files
@@ -14,7 +15,12 @@
 
 allprojects {
     repositories {
+        google()
         jcenter()
         maven { url "https://jitpack.io" }
     }
+
+    tasks.withType(JavaCompile) {
+        options.compilerArgs << "-Xlint:unchecked" << "-Xlint:deprecation"
+    }
 }
diff --git a/android/WALT/gradle.properties b/android/WALT/gradle.properties
index 1d3591c..915f0e6 100644
--- a/android/WALT/gradle.properties
+++ b/android/WALT/gradle.properties
@@ -15,4 +15,6 @@
 # When configured, Gradle will run in incubating parallel mode.
 # This option should only be used with decoupled projects. More details, visit
 # http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects
-# org.gradle.parallel=true
\ No newline at end of file
+# org.gradle.parallel=true
+android.enableJetifier=true
+android.useAndroidX=true
\ No newline at end of file
diff --git a/android/WALT/gradle/wrapper/gradle-wrapper.jar b/android/WALT/gradle/wrapper/gradle-wrapper.jar
index 05ef575..01b8bf6 100644
--- a/android/WALT/gradle/wrapper/gradle-wrapper.jar
+++ b/android/WALT/gradle/wrapper/gradle-wrapper.jar
Binary files differ
diff --git a/android/WALT/gradle/wrapper/gradle-wrapper.properties b/android/WALT/gradle/wrapper/gradle-wrapper.properties
index aa3841f..674bdda 100644
--- a/android/WALT/gradle/wrapper/gradle-wrapper.properties
+++ b/android/WALT/gradle/wrapper/gradle-wrapper.properties
@@ -1,6 +1,5 @@
-#Tue Nov 29 15:45:52 EST 2016
 distributionBase=GRADLE_USER_HOME
 distributionPath=wrapper/dists
 zipStoreBase=GRADLE_USER_HOME
 zipStorePath=wrapper/dists
-distributionUrl=https\://services.gradle.org/distributions/gradle-2.14.1-all.zip
+distributionUrl=https\://services.gradle.org/distributions/gradle-5.6.4-all.zip
diff --git a/android/WALT/gradlew b/android/WALT/gradlew
index 9d82f78..cccdd3d 100755
--- a/android/WALT/gradlew
+++ b/android/WALT/gradlew
@@ -1,4 +1,4 @@
-#!/usr/bin/env bash
+#!/usr/bin/env sh
 
 ##############################################################################
 ##
@@ -6,42 +6,6 @@
 ##
 ##############################################################################
 
-# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
-DEFAULT_JVM_OPTS=""
-
-APP_NAME="Gradle"
-APP_BASE_NAME=`basename "$0"`
-
-# Use the maximum available, or set MAX_FD != -1 to use that value.
-MAX_FD="maximum"
-
-warn ( ) {
-    echo "$*"
-}
-
-die ( ) {
-    echo
-    echo "$*"
-    echo
-    exit 1
-}
-
-# OS specific support (must be 'true' or 'false').
-cygwin=false
-msys=false
-darwin=false
-case "`uname`" in
-  CYGWIN* )
-    cygwin=true
-    ;;
-  Darwin* )
-    darwin=true
-    ;;
-  MINGW* )
-    msys=true
-    ;;
-esac
-
 # Attempt to set APP_HOME
 # Resolve links: $0 may be a link
 PRG="$0"
@@ -60,6 +24,46 @@
 APP_HOME="`pwd -P`"
 cd "$SAVED" >/dev/null
 
+APP_NAME="Gradle"
+APP_BASE_NAME=`basename "$0"`
+
+# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
+DEFAULT_JVM_OPTS=""
+
+# Use the maximum available, or set MAX_FD != -1 to use that value.
+MAX_FD="maximum"
+
+warn () {
+    echo "$*"
+}
+
+die () {
+    echo
+    echo "$*"
+    echo
+    exit 1
+}
+
+# OS specific support (must be 'true' or 'false').
+cygwin=false
+msys=false
+darwin=false
+nonstop=false
+case "`uname`" in
+  CYGWIN* )
+    cygwin=true
+    ;;
+  Darwin* )
+    darwin=true
+    ;;
+  MINGW* )
+    msys=true
+    ;;
+  NONSTOP* )
+    nonstop=true
+    ;;
+esac
+
 CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
 
 # Determine the Java command to use to start the JVM.
@@ -85,7 +89,7 @@
 fi
 
 # Increase the maximum file descriptors if we can.
-if [ "$cygwin" = "false" -a "$darwin" = "false" ] ; then
+if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then
     MAX_FD_LIMIT=`ulimit -H -n`
     if [ $? -eq 0 ] ; then
         if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then
@@ -150,11 +154,19 @@
     esac
 fi
 
-# Split up the JVM_OPTS And GRADLE_OPTS values into an array, following the shell quoting and substitution rules
-function splitJvmOpts() {
-    JVM_OPTS=("$@")
+# Escape application args
+save () {
+    for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done
+    echo " "
 }
-eval splitJvmOpts $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS
-JVM_OPTS[${#JVM_OPTS[*]}]="-Dorg.gradle.appname=$APP_BASE_NAME"
+APP_ARGS=$(save "$@")
 
-exec "$JAVACMD" "${JVM_OPTS[@]}" -classpath "$CLASSPATH" org.gradle.wrapper.GradleWrapperMain "$@"
+# Collect all arguments for the java command, following the shell quoting and substitution rules
+eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS"
+
+# by default we should be in the correct project dir, but when run from Finder on Mac, the cwd is wrong
+if [ "$(uname)" = "Darwin" ] && [ "$HOME" = "$PWD" ]; then
+  cd "$(dirname "$0")"
+fi
+
+exec "$JAVACMD" "$@"
diff --git a/android/WALT/gradlew.bat b/android/WALT/gradlew.bat
index aec9973..e95643d 100644
--- a/android/WALT/gradlew.bat
+++ b/android/WALT/gradlew.bat
@@ -8,14 +8,14 @@
 @rem Set local scope for the variables with windows NT shell

 if "%OS%"=="Windows_NT" setlocal

 

-@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.

-set DEFAULT_JVM_OPTS=

-

 set DIRNAME=%~dp0

 if "%DIRNAME%" == "" set DIRNAME=.

 set APP_BASE_NAME=%~n0

 set APP_HOME=%DIRNAME%

 

+@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.

+set DEFAULT_JVM_OPTS=

+

 @rem Find java.exe

 if defined JAVA_HOME goto findJavaFromJavaHome

 

@@ -46,10 +46,9 @@
 goto fail

 

 :init

-@rem Get command-line arguments, handling Windowz variants

+@rem Get command-line arguments, handling Windows variants

 

 if not "%OS%" == "Windows_NT" goto win9xME_args

-if "%@eval[2+2]" == "4" goto 4NT_args

 

 :win9xME_args

 @rem Slurp the command line arguments.

@@ -60,11 +59,6 @@
 if "x%~1" == "x" goto execute

 

 set CMD_LINE_ARGS=%*

-goto execute

-

-:4NT_args

-@rem Get arguments from the 4NT Shell from JP Software

-set CMD_LINE_ARGS=%$

 

 :execute

 @rem Setup the command line

diff --git a/arduino/walt/walt.ino b/arduino/walt/walt.ino
index ddb7c95..4704383 100644
--- a/arduino/walt/walt.ino
+++ b/arduino/walt/walt.ino
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-#define VERSION                 "5"
+#define VERSION                 "6"
 
 // Commands
 // Digits 1 to 9 reserved for clock sync
@@ -46,6 +46,8 @@
 #define CMD_MIDI                'M'
 #define CMD_NOTE                'N'
 
+#define CMD_ACCELEROMETER_CURVE 'O'
+
 #define NOTE_DELAY 10000 // 10 ms
 
 // Message types for MIDI encapsulation
@@ -64,6 +66,7 @@
 #define PD_LASER_PIN 14
 #define PD_SCREEN_PIN 20  // Same as A6
 #define G_PIN 15          // Same as A1
+#define GZ_PIN 16         // Same as A2
 #define AUDIO_PIN 22      // Same as A8
 #define MIC_PIN 23        // Same as A9
 
@@ -211,6 +214,7 @@
   // Sensors
   pinMode(PD_SCREEN_PIN, INPUT);
   pinMode(G_PIN, INPUT);
+  pinMode(GZ_PIN, INPUT);
   pinMode(PD_LASER_PIN, INPUT_PULLUP);
   attachInterrupt(PD_LASER_PIN, irq_laser, CHANGE);
 
@@ -244,6 +248,25 @@
   send_line();
 }
 
+void run_accelerometer_curve() {
+  int i;
+  long t;
+  int v;
+  digitalWrite(DEBUG_LED1, HIGH);
+  for (i = 0; i < 4000; i++) {
+    v = analogRead(GZ_PIN);
+    t = time_us;
+    send(t);
+    send(' ');
+    send(v);
+    send_line();
+    delayMicroseconds(450);
+  }
+  digitalWrite(DEBUG_LED1, LOW);
+  send("end");
+  send_line();
+}
+
 void process_command(char cmd) {
   int i;
   if (cmd == CMD_SYNC_ZERO) {
@@ -359,6 +382,10 @@
     send_ack(CMD_BRIGHTNESS_CURVE);
     // This blocks all other execution for about 1 second
     run_brightness_curve();
+  } else if (cmd == CMD_ACCELEROMETER_CURVE) {
+    send_ack(CMD_ACCELEROMETER_CURVE);
+    // This blocks all other execution for about 2 seconds
+    run_accelerometer_curve();
   } else if (cmd == CMD_SAMPLE_ALL) {
     send(flip_case(cmd));
     send(" G:");
diff --git a/docs/DragLatency.md b/docs/DragLatency.md
index 3797e4e..739f477 100644
--- a/docs/DragLatency.md
+++ b/docs/DragLatency.md
@@ -1,6 +1,11 @@
 ## Drag / scroll latency
 
-For detailed instructions on how to perform the measurement refer to the [usage doc](usage/WALT_usage.md#dragscroll-latency).
+See also:
+ * Instructions on how to perform the measurement in the [usage doc](usage/WALT_usage.md#dragscroll-latency)
+ * [Video demonstration](https://www.youtube.com/watch?v=pVy5AYVzf7Q&list=PLd6Fi7WgXfcB4Ma6A-5rPlr1jptNR3RxQ&index=4)
+ * A [video](https://plus.google.com/+FrancoisBeaufort/posts/XctAif2nv4U) showing the measurement
+performed using a robotic stylus
+
 
 For drag (or scroll) latency WALT uses a laser that shines across the touch device and hits a detector on the
 other side. The microcontroller monitors the state of the laser detector and reports (over usb) when
@@ -8,10 +13,6 @@
 and interrupts a laser beam. Touch events from the pad and laser events are then processed together
 to deduce the delay.
 
-A [video](https://plus.google.com/+FrancoisBeaufort/posts/XctAif2nv4U) showing the measurement
-performed using a robotic stylus.
-
-
 ![Drag/scroll latency measurement](usage/images/drag.png)
 
 Sample measurements
diff --git a/docs/ScreenLatency.md b/docs/ScreenLatency.md
index 8a7f1a5..ea8b301 100644
--- a/docs/ScreenLatency.md
+++ b/docs/ScreenLatency.md
@@ -1,5 +1,9 @@
 ## Screen latency
 
+See also:
+ * [Video demonstration](https://www.youtube.com/watch?v=FePSFTxBux4&list=PLd6Fi7WgXfcB4Ma6A-5rPlr1jptNR3RxQ&index=3)
+ * [Screen latency section in the usage doc](usage/WALT_usage.md#screen-response-latency)
+
 WALT can detect when screen changes color between white and black using a photodiode.
 
 ![Photo of bottom side of WALT](WALT_bottom_view.png)
diff --git a/docs/TapLatency.md b/docs/TapLatency.md
index a3f84ae..fd3ddac 100644
--- a/docs/TapLatency.md
+++ b/docs/TapLatency.md
@@ -27,6 +27,10 @@
 | Nexus 5X     | NRD91P (7.0)   |           25.0 |           22.5 |                  2.4 |
 | Nexus 7      | LMY47Q (5.1)   |           29.6 |           31.0 |                  1.4 |
 | Nexus 9      | MMB29K (6.0.1) |           18.7 |           19.9 |                  1.3 |
+| Pixel C      | NMF26H (7.1.1) |           23.8 |           24.3 |                  1.1 |
+| Pixel        | NHG47K (7.1.2) |            9.6 |           28.1 |                  2.0 |
+| Pixel XL     | NHG47K (7.1.2) |           14.2 |           14.4 |                  1.8 |
+
 
 
 ![Tap measurement](usage/images/tap.png)
diff --git a/docs/usage/WALT_usage.md b/docs/usage/WALT_usage.md
index 24fd990..a77e5d7 100644
--- a/docs/usage/WALT_usage.md
+++ b/docs/usage/WALT_usage.md
@@ -6,7 +6,7 @@
 About WALT:
 
  * Source code: https://github.com/google/walt
- * [Youtube playlist](https://www.youtube.com/playlist?list=PLd6Fi7WgXfcCEJg1FDqNCoQfpWo7W3J5a)
+ * YouTube [playlist 1](https://www.youtube.com/playlist?list=PLd6Fi7WgXfcCEJg1FDqNCoQfpWo7W3J5a) and [playlist 2](https://www.youtube.com/playlist?list=PLd6Fi7WgXfcB4Ma6A-5rPlr1jptNR3RxQ)
  * [Android Developers blog post](http://android-developers.blogspot.com/2016/04/a-new-method-to-measure-touch-and-audio.html)
 
 ## Prerequisites
@@ -32,6 +32,8 @@
 
 ## Setup
 
+[Video demonstration](https://www.youtube.com/watch?v=qR48GPepyxU&list=PLd6Fi7WgXfcB4Ma6A-5rPlr1jptNR3RxQ&index=2)
+
  * Install and run the [WALT Android App](https://play.google.com/store/apps/details?id=org.kamrik.latency.walt&hl=en)
  * Connect WALT to the Android headset using the 3.5mm male to male TRRS cable
  * Connect WALT to the Android USB port using the cables above. (see photo at top of doc)
@@ -136,6 +138,8 @@
 
 ## Screen response latency
 
+[Video demonstration](https://www.youtube.com/watch?v=FePSFTxBux4&list=PLd6Fi7WgXfcB4Ma6A-5rPlr1jptNR3RxQ&index=3)
+
  * Tap screen response
  * Set screen brightness to maximum. On phones using PWM for screen backlight brightness control, yo man need to turn adaptive brightness off (settings -> Display -> Adaptive Brightness)
  * Position WALT with the screen sensor looking at the screen (the light sensor recessed into the large plastic surface).
@@ -231,6 +235,8 @@
 
 ## Drag/scroll latency
 
+[Video demonstration](https://www.youtube.com/watch?v=pVy5AYVzf7Q&list=PLd6Fi7WgXfcB4Ma6A-5rPlr1jptNR3RxQ&index=4)
+
 Drag latency is measured by dragging a finger up and down along the screen. The finger interrupts a laser beam positioned across the screen. By comparing the timings of those beam interruptions with Android touch events the WALT app calculates the delay.
 
 
diff --git a/hardware/WALT_schematic.pdf b/hardware/WALT_schematic.pdf
index de1f247..4157d62 100644
--- a/hardware/WALT_schematic.pdf
+++ b/hardware/WALT_schematic.pdf
Binary files differ
diff --git a/pywalt/README.md b/pywalt/README.md
index 2d5031e..bc8da91 100644
--- a/pywalt/README.md
+++ b/pywalt/README.md
@@ -9,24 +9,26 @@
 
 Synopsis:
 ```
-$ ./walt.py --help
-usage: walt.py [-h] [-i INPUT] [-s SERIAL] [-t TYPE] [-l LOGDIR] [-n N]
-               [-p PORT] [-d]
+$ walt --help  
+usage: walt [-h] [-i INPUT] [-s SERIAL] [-t TYPE] [-l LOGDIR] [-n N] [-p PORT]
+            [-d]
 
-Run the touchpad drag latency test using WALT Latency Timer
+Run a latency test using WALT Latency Timer
 
 optional arguments:
   -h, --help            show this help message and exit
   -i INPUT, --input INPUT
-                        input device, e.g: 6 or /dev/input/event6 (default: )
+                        input device, e.g: 6 or /dev/input/event6 (default:
+                        None)
   -s SERIAL, --serial SERIAL
                         WALT serial port (default: /dev/ttyACM0)
-  -t TYPE, --type TYPE  Test type: drag|tap|screen|sanity|curve|bridge
-                        (default: drag)
+  -t TYPE, --type TYPE  Test type:
+                        drag|tap|screen|sanity|curve|bridge|tapaudio|tapblink
+                        (default: None)
   -l LOGDIR, --logdir LOGDIR
                         where to store logs (default: /tmp)
   -n N                  Number of laser toggles to read (default: 40)
-  -p PORT, --port PORT  Port to listen on for the TCP bridge (default: 50007)
+  -p PORT, --port PORT  port to listen on for the TCP bridge (default: 50007)
   -d, --debug           talk more (default: False)
  ```
 
diff --git a/pywalt/pywalt/walt.py b/pywalt/pywalt/walt.py
index 9987f4f..82536fd 100644
--- a/pywalt/pywalt/walt.py
+++ b/pywalt/pywalt/walt.py
@@ -674,7 +674,7 @@
             sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
             sock.setsockopt(socket.SOL_SOCKET, socket.SO_KEEPALIVE, 1)
             sock.bind((self.host, self.port))
-            sock.listen(1)
+            sock.listen(10)
             while True:
                 print('Listening on port %d' % self.port)
                 net, addr = sock.accept()