diff --git a/android/GKI_VERSION b/android/GKI_VERSION
index ec1af1d442a9..e351f5baec42 100644
--- a/android/GKI_VERSION
+++ b/android/GKI_VERSION
@@ -1 +1 @@
-LTS_5.4.254_d43ac48de222
+LTS_5.4.259_81334f26ac70
diff --git a/android/abi_gki_aarch64_d57e792d0bd9.xml b/android/abi_gki_aarch64_81334f26ac70.xml
similarity index 98%
rename from android/abi_gki_aarch64_d57e792d0bd9.xml
rename to android/abi_gki_aarch64_81334f26ac70.xml
index 9e356922a5de..8645ac3c5e69 100644
--- a/android/abi_gki_aarch64_d57e792d0bd9.xml
+++ b/android/abi_gki_aarch64_81334f26ac70.xml
@@ -2036,6 +2036,7 @@
+
@@ -2220,6 +2221,7 @@
+
@@ -4151,24 +4153,24 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -4345,7 +4347,7 @@
-
+
@@ -4379,12 +4381,12 @@
-
+
-
+
-
+
@@ -4551,29 +4553,29 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -5059,23 +5061,23 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -5123,159 +5125,159 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -5412,36 +5414,36 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -6304,7 +6306,7 @@
-
+
@@ -6452,63 +6454,63 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -6554,12 +6556,12 @@
-
+
-
+
-
+
@@ -7604,24 +7606,24 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -8726,18 +8728,18 @@
-
+
-
+
-
+
-
+
-
+
@@ -11022,15 +11024,15 @@
-
+
-
+
-
+
-
+
@@ -15385,57 +15387,57 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -16144,21 +16146,21 @@
-
+
-
+
-
+
-
+
-
+
-
+
@@ -17292,45 +17294,45 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -17525,45 +17527,45 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -18038,50 +18040,50 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -18900,7 +18902,7 @@
-
+
@@ -20301,7 +20303,7 @@
-
+
@@ -20330,7 +20332,7 @@
-
+
@@ -20785,7 +20787,7 @@
-
+
@@ -20963,7 +20965,7 @@
-
+
@@ -20987,7 +20989,7 @@
-
+
@@ -21033,7 +21035,6 @@
-
@@ -21644,7 +21645,7 @@
-
+
@@ -21747,7 +21748,7 @@
-
+
@@ -21879,18 +21880,18 @@
-
+
-
+
-
+
-
+
-
+
@@ -21976,7 +21977,7 @@
-
+
@@ -22068,7 +22069,7 @@
-
+
@@ -22183,7 +22184,7 @@
-
+
@@ -22507,7 +22508,7 @@
-
+
@@ -22826,6 +22827,7 @@
+
@@ -23001,7 +23003,7 @@
-
+
@@ -23123,12 +23125,12 @@
-
+
-
+
@@ -23822,7 +23824,7 @@
-
+
@@ -23864,14 +23866,14 @@
-
-
-
+
+
+
-
-
-
+
+
+
@@ -23888,66 +23890,66 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -23979,19 +23981,19 @@
-
-
+
+
-
+
-
+
-
+
-
+
@@ -24018,45 +24020,45 @@
-
-
-
-
-
+
+
+
+
+
-
-
-
-
+
+
+
+
-
-
-
-
+
+
+
+
-
-
-
-
-
-
+
+
+
+
+
+
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
@@ -24141,7 +24143,7 @@
-
+
@@ -24234,39 +24236,39 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -24891,42 +24893,42 @@
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
-
+
+
-
-
+
+
@@ -27853,24 +27855,24 @@
-
+
-
+
-
+
-
+
-
+
@@ -27980,12 +27982,12 @@
-
+
-
+
@@ -29130,25 +29132,25 @@
-
-
+
+
-
-
-
+
+
+
-
-
+
+
-
-
+
+
-
-
+
+
@@ -30915,48 +30917,48 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -31037,48 +31039,48 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -31089,54 +31091,54 @@
-
-
-
-
+
+
+
+
-
-
-
-
-
+
+
+
+
+
-
-
-
-
-
+
+
+
+
+
-
-
-
-
+
+
+
+
-
-
+
+
-
-
-
-
+
+
+
+
-
-
-
-
+
+
+
+
-
-
+
+
-
-
+
+
@@ -31535,7 +31537,7 @@
-
+
@@ -35105,12 +35107,12 @@
-
-
+
+
-
-
+
+
@@ -35251,14 +35253,14 @@
-
-
-
+
+
+
-
-
-
+
+
+
@@ -35275,15 +35277,15 @@
-
-
-
+
+
+
-
-
-
-
+
+
+
+
@@ -35292,15 +35294,15 @@
-
-
-
+
+
+
-
-
-
-
+
+
+
+
@@ -35308,44 +35310,44 @@
-
-
+
+
-
-
-
+
+
+
-
-
-
-
+
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -35371,14 +35373,14 @@
-
-
-
+
+
+
-
-
-
+
+
+
@@ -35386,8 +35388,8 @@
-
-
+
+
@@ -35395,35 +35397,35 @@
-
-
-
+
+
+
-
-
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
-
-
-
+
+
+
+
+
+
@@ -35498,7 +35500,7 @@
-
+
@@ -35913,8 +35915,8 @@
-
-
+
+
@@ -48431,21 +48433,21 @@
-
+
-
+
-
+
-
+
-
+
-
+
@@ -50352,7 +50354,7 @@
-
+
@@ -50428,7 +50430,6 @@
-
@@ -50849,7 +50850,6 @@
-
@@ -60216,23 +60216,7 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
@@ -60241,74 +60225,7 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
@@ -60524,9 +60441,6 @@
-
-
-
@@ -60588,13 +60502,9 @@
-
-
-
-
@@ -60879,17 +60789,6 @@
-
-
-
-
-
-
-
-
-
-
-
@@ -61349,9 +61248,6 @@
-
-
-
@@ -61466,60 +61362,6 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -61541,44 +61383,6 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -61953,14 +61757,6 @@
-
-
-
-
-
-
-
-
@@ -62004,15 +61800,10 @@
-
-
-
-
-
@@ -63128,26 +62919,26 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -63283,98 +63074,6 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -63948,15 +63647,11 @@
-
-
-
-
@@ -64284,6 +63979,17 @@
+
+
+
+
+
+
+
+
+
+
+
@@ -64521,9 +64227,9 @@
-
+
-
+
@@ -64698,15 +64404,15 @@
-
+
-
+
-
+
-
+
@@ -64785,9 +64491,6 @@
-
-
-
@@ -64834,7 +64537,6 @@
-
@@ -64894,10 +64596,12 @@
+
+
+
-
@@ -65094,58 +64798,6 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -65245,67 +64897,67 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -65456,60 +65108,60 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -65690,7 +65342,6 @@
-
@@ -65741,26 +65392,6 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -65807,89 +65438,7 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
@@ -65980,18 +65529,18 @@
-
+
-
+
-
+
-
+
-
+
@@ -66023,7 +65572,6 @@
-
@@ -66215,30 +65763,30 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -66287,260 +65835,10 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
-
-
-
@@ -66548,14 +65846,7 @@
-
-
-
-
-
-
-
@@ -66575,86 +65866,6 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -66773,181 +65984,22 @@
-
-
+
-
+
+
+
+
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
-
@@ -66956,14 +66008,6 @@
-
-
-
-
-
-
-
-
@@ -66981,18 +66025,7 @@
-
-
-
-
-
-
-
-
-
-
-
@@ -67029,17 +66062,6 @@
-
-
-
-
-
-
-
-
-
-
-
@@ -67078,98 +66100,10 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
@@ -67214,90 +66148,15 @@
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
@@ -67309,34 +66168,11 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -67353,10 +66189,6 @@
-
-
-
-
@@ -67472,7 +66304,6 @@
-
@@ -67672,6 +66503,7 @@
+
@@ -67829,10 +66661,53 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -67866,6 +66741,296 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -68016,7 +67181,7 @@
-
+
@@ -69196,7 +68361,7 @@
-
+
@@ -69799,21 +68964,21 @@
-
+
-
+
-
+
-
+
@@ -69826,62 +68991,6 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -70035,7 +69144,7 @@
-
+
@@ -70043,6 +69152,62 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -70091,7 +69256,7 @@
-
+
@@ -70099,7 +69264,7 @@
-
+
@@ -70139,7 +69304,7 @@
-
+
@@ -70163,7 +69328,7 @@
-
+
@@ -73434,44 +72599,44 @@
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
@@ -73866,7 +73031,7 @@
-
+
@@ -73895,7 +73060,7 @@
-
+
@@ -73955,7 +73120,7 @@
-
+
@@ -73979,7 +73144,7 @@
-
+
@@ -73989,28 +73154,28 @@
-
+
-
+
-
+
-
+
-
+
@@ -74040,7 +73205,7 @@
-
+
@@ -74170,7 +73335,7 @@
-
+
@@ -74209,7 +73374,7 @@
-
+
@@ -74231,7 +73396,7 @@
-
+
@@ -74365,7 +73530,7 @@
-
+
@@ -74686,11 +73851,11 @@
-
+
-
+
@@ -74744,11 +73909,11 @@
-
+
-
+
@@ -75092,54 +74257,54 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -75206,7 +74371,7 @@
-
+
@@ -75555,7 +74720,7 @@
-
+
@@ -76452,7 +75617,7 @@
-
+
@@ -77120,9 +76285,9 @@
-
-
-
+
+
+
@@ -77133,83 +76298,83 @@
-
-
-
+
+
+
-
-
-
+
+
+
-
-
+
+
-
-
+
+
-
-
-
+
+
+
-
-
-
-
+
+
+
+
-
-
+
+
-
-
-
-
+
+
+
+
-
-
-
-
+
+
+
+
-
-
+
+
-
-
-
+
+
+
-
-
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
-
+
+
+
+
@@ -77217,16 +76382,16 @@
-
-
+
+
-
-
+
+
-
-
+
+
@@ -77333,22 +76498,22 @@
-
+
-
+
-
+
-
+
@@ -77471,56 +76636,56 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -77539,8 +76704,8 @@
-
-
+
+
@@ -77584,24 +76749,24 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -77665,22 +76830,27 @@
-
-
+
+
+
-
-
-
+
+
-
-
-
+
+
+
-
-
+
+
+
+
+
+
+
@@ -79631,9 +78801,9 @@
-
+
-
+
@@ -80054,18 +79224,18 @@
-
+
-
+
-
+
-
+
-
+
@@ -80799,14 +79969,6 @@
-
-
-
-
-
-
-
-
@@ -80821,14 +79983,6 @@
-
-
-
-
-
-
-
-
@@ -81081,6 +80235,14 @@
+
+
+
+
+
+
+
+
@@ -81115,6 +80277,14 @@
+
+
+
+
+
+
+
+
@@ -81882,7 +81052,7 @@
-
+
@@ -84180,7 +83350,7 @@
-
+
@@ -85153,7 +84323,7 @@
-
+
@@ -86032,12 +85202,12 @@
-
+
-
+
@@ -87027,27 +86197,27 @@
-
-
-
+
+
+
-
-
+
+
-
-
-
+
+
+
-
-
+
+
-
-
-
+
+
+
@@ -91247,7 +90417,7 @@
-
+
@@ -94256,8 +93426,6 @@
-
-
@@ -94632,16 +93800,16 @@
-
-
-
-
-
-
+
+
+
+
+
+
-
-
+
+
@@ -94915,54 +94083,54 @@
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
-
-
+
+
+
+
+
-
-
-
-
+
+
+
+
-
-
-
+
+
+
-
-
-
-
+
+
+
+
-
-
-
-
-
+
+
+
+
+
-
-
-
-
-
-
-
+
+
+
+
+
+
+
@@ -95186,41 +94354,41 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -95449,22 +94617,22 @@
-
-
-
+
+
+
-
-
+
+
-
-
+
+
-
-
-
+
+
+
@@ -95886,7 +95054,7 @@
-
+
@@ -95899,7 +95067,7 @@
-
+
@@ -96509,12 +95677,12 @@
-
+
-
+
-
+
@@ -97104,24 +96272,24 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -97200,18 +96368,18 @@
-
+
-
+
-
+
-
+
-
+
@@ -100093,188 +99261,188 @@
-
-
+
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -100543,39 +99711,39 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -100964,21 +100132,21 @@
-
+
-
+
-
+
-
+
-
+
-
+
@@ -101298,12 +100466,12 @@
-
+
-
+
-
+
@@ -101311,63 +100479,63 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -101451,24 +100619,24 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -101943,57 +101111,57 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -104861,15 +104029,15 @@
-
+
-
+
-
+
-
+
@@ -105948,60 +105116,60 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -108404,7 +107572,7 @@
-
+
@@ -108821,42 +107989,42 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -108938,202 +108106,202 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -109162,21 +108330,21 @@
-
+
-
+
-
+
-
+
-
+
-
+
@@ -109208,50 +108376,50 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -111819,7 +110987,7 @@
-
+
@@ -111849,13 +111017,13 @@
-
+
-
+
@@ -111882,12 +111050,12 @@
-
+
-
+
@@ -113650,18 +112818,18 @@
-
+
-
+
-
+
-
+
-
+
@@ -114028,12 +113196,12 @@
-
+
-
+
@@ -114183,7 +113351,7 @@
-
+
@@ -114229,7 +113397,7 @@
-
+
@@ -114284,92 +113452,9 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
@@ -114402,30 +113487,30 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -114541,7 +113626,20 @@
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -114671,232 +113769,8 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
@@ -115618,67 +114492,67 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -118077,26 +116951,26 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -120123,18 +118997,18 @@
-
+
-
+
-
+
-
+
-
+
@@ -122972,7 +121846,7 @@
-
+
@@ -122980,7 +121854,7 @@
-
+
@@ -123265,7 +122139,7 @@
-
+
@@ -123384,7 +122258,7 @@
-
+
@@ -123424,19 +122298,19 @@
-
+
-
+
-
+
-
+
@@ -123462,7 +122336,7 @@
-
+
@@ -123483,18 +122357,18 @@
-
+
-
+
-
+
-
+
-
+
@@ -123514,12 +122388,12 @@
-
+
-
+
@@ -123876,9 +122750,9 @@
-
+
-
+
@@ -123963,71 +122837,71 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -126596,7 +125470,7 @@
-
+
@@ -126642,6 +125516,10 @@
+
+
+
+
@@ -126674,10 +125552,6 @@
-
-
-
-
@@ -126947,7 +125821,7 @@
-
+
@@ -127274,7 +126148,7 @@
-
+
@@ -128068,12 +126942,12 @@
-
-
-
-
-
-
+
+
+
+
+
+
@@ -128414,6 +127288,8 @@
+
+
@@ -129347,29 +128223,29 @@
-
+
-
+
-
+
-
+
-
+
@@ -129384,7 +128260,7 @@
-
+
@@ -130413,7 +129289,7 @@
-
+
@@ -130429,7 +129305,7 @@
-
+
@@ -130444,7 +129320,7 @@
-
+
@@ -130636,7 +129512,7 @@
-
+
@@ -130806,7 +129682,7 @@
-
+
@@ -130920,7 +129796,7 @@
-
+
@@ -131361,18 +130237,18 @@
-
+
-
+
-
+
-
+
-
+
@@ -131401,49 +130277,49 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -131498,19 +130374,19 @@
-
+
-
+
-
+
-
+
@@ -131764,7 +130640,7 @@
-
+
@@ -131961,18 +130837,18 @@
-
+
-
+
-
+
-
+
-
+
@@ -132001,12 +130877,12 @@
-
-
+
+
-
-
+
+
@@ -132094,10 +130970,10 @@
-
-
-
-
+
+
+
+
@@ -132153,13 +131029,13 @@
-
+
-
+
@@ -132168,12 +131044,12 @@
-
+
-
+
@@ -132377,34 +131253,34 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -132425,10 +131301,10 @@
-
-
-
-
+
+
+
+
@@ -132443,15 +131319,15 @@
-
-
+
+
-
-
-
-
-
+
+
+
+
+
@@ -132463,47 +131339,47 @@
-
-
-
-
-
+
+
+
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
@@ -132517,8 +131393,8 @@
-
-
+
+
@@ -132529,22 +131405,22 @@
-
+
-
+
-
+
-
+
@@ -132557,8 +131433,8 @@
-
-
+
+
@@ -132589,7 +131465,7 @@
-
+
@@ -132715,14 +131591,14 @@
-
+
-
+
@@ -133029,10 +131905,10 @@
-
-
-
-
+
+
+
+
@@ -133299,7 +132175,7 @@
-
+
@@ -133381,18 +132257,18 @@
-
-
-
+
+
+
-
+
-
-
-
+
+
+
@@ -133403,21 +132279,21 @@
-
+
-
+
-
+
-
+
-
+
-
+
@@ -133632,10 +132508,10 @@
-
-
-
-
+
+
+
+
@@ -133882,7 +132758,7 @@
-
+
@@ -134174,274 +133050,9 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -134518,7 +133129,7 @@
-
+
@@ -134564,30 +133175,28 @@
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
@@ -134749,13 +133358,6 @@
-
-
-
-
-
-
-
@@ -134763,10 +133365,6 @@
-
-
-
-
@@ -135069,7 +133667,7 @@
-
+
@@ -135335,7 +133933,7 @@
-
+
@@ -135348,8 +133946,8 @@
-
-
+
+
@@ -135525,11 +134123,11 @@
-
-
-
-
-
+
+
+
+
+
@@ -135545,6 +134143,89 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -135725,6 +134406,149 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -136003,7 +134827,7 @@
-
+
@@ -136012,56 +134836,56 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -136102,14 +134926,16 @@
+
-
-
+
+
+
-
-
+
+
@@ -136120,118 +134946,118 @@
-
-
-
-
-
+
+
+
+
+
-
-
-
-
+
+
+
+
-
-
-
-
-
+
+
+
+
+
-
-
-
+
+
+
-
-
-
-
-
+
+
+
+
+
-
-
-
-
+
+
+
+
-
-
-
-
+
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
-
-
-
+
+
+
+
+
+
-
-
-
-
-
-
+
+
+
+
+
+
-
-
-
-
+
+
+
+
-
-
-
-
-
+
+
+
+
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -136279,21 +135105,21 @@
-
+
-
+
-
+
-
+
@@ -136370,7 +135196,7 @@
-
+
@@ -136442,27 +135268,27 @@
-
-
-
-
-
+
+
+
+
+
-
-
-
-
-
-
-
+
+
+
+
+
+
+
-
-
-
-
-
+
+
+
+
+
@@ -136505,56 +135331,56 @@
-
-
-
-
-
-
+
+
+
+
+
+
-
-
-
-
+
+
+
+
-
-
-
-
-
-
-
+
+
+
+
+
+
+
-
-
-
-
+
+
+
+
-
-
-
-
-
+
+
+
+
+
-
-
-
+
+
+
-
-
-
-
-
-
+
+
+
+
+
+
-
+
@@ -136608,6 +135434,7 @@
+
@@ -136620,6 +135447,9 @@
+
+
+
@@ -136654,350 +135484,357 @@
-
+
+
+
+
+
+
+
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -137011,100 +135848,100 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -137129,98 +135966,98 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -137229,34 +136066,34 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -137267,6 +136104,471 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -137320,38 +136622,105 @@
-
+
-
+
-
-
-
-
+
-
+
+
+
+
+
+
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -137454,29 +136823,6 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -137699,44 +137045,44 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -137747,863 +137093,543 @@
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -138612,51 +137638,51 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -138681,15 +137707,15 @@
-
+
-
+
-
+
-
+
@@ -138697,23 +137723,23 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -138744,102 +137770,102 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -138851,12 +137877,12 @@
-
+
-
+
-
+
@@ -138865,189 +137891,189 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -139058,296 +138084,296 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -139358,285 +138384,285 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -139645,12 +138671,12 @@
-
+
-
+
-
+
@@ -139662,169 +138688,169 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -139835,15 +138861,15 @@
-
+
-
+
-
+
-
+
@@ -139854,26 +138880,26 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -139881,145 +138907,145 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -140030,46 +139056,46 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -140077,111 +139103,111 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -140191,43 +139217,43 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -140307,6 +139333,10 @@
+
+
+
+
@@ -140331,6 +139361,7 @@
+
@@ -140418,7 +139449,13 @@
+
+
+
+
+
+
@@ -140440,6 +139477,7 @@
+
@@ -140459,14 +139497,14 @@
-
+
-
+
@@ -140485,6 +139523,13 @@
+
+
+
+
+
+
+
@@ -140965,70 +140010,70 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -141036,13 +140081,13 @@
-
+
-
+
@@ -141051,17 +140096,21 @@
-
+
-
+
+
+
+
+
@@ -141094,25 +140143,25 @@
-
+
-
+
-
+
-
+
@@ -141122,7 +140171,7 @@
-
+
@@ -141151,7 +140200,6 @@
-
@@ -141598,138 +140646,138 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
-
-
-
+
+
+
-
-
-
-
-
+
+
+
+
+
-
-
+
+
-
-
-
-
+
+
+
+
-
-
-
-
-
-
+
+
+
+
+
+
-
-
-
-
-
+
+
+
+
+
-
-
-
-
-
+
+
+
+
+
-
-
-
-
-
+
+
+
+
+
-
-
-
-
-
-
-
+
+
+
+
+
+
+
-
-
-
-
-
+
+
+
+
+
-
-
-
-
-
-
+
+
+
+
+
+
-
-
-
+
+
+
-
-
-
-
-
-
+
+
+
+
+
+
-
-
-
+
+
+
-
-
-
-
+
+
+
+
-
-
-
-
+
+
+
+
@@ -141747,7 +140795,7 @@
-
+
@@ -141761,33 +140809,33 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -142226,50 +141274,50 @@
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
+
+
+
+
+
+
-
-
-
+
+
+
@@ -142289,56 +141337,56 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -142348,30 +141396,30 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -142400,7 +141448,6 @@
-
@@ -142894,7 +141941,7 @@
-
+
@@ -142992,6 +142039,456 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -144091,7 +143588,6 @@
-
@@ -144099,32 +143595,6 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -144148,7 +143618,7 @@
-
+
@@ -144542,7 +144012,6 @@
-
@@ -144649,47 +144118,6 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -144988,7 +144416,7 @@
-
+
@@ -145041,17 +144469,6 @@
-
-
-
-
-
-
-
-
-
-
-
@@ -145515,19 +144932,10 @@
-
-
-
-
-
-
-
-
-
@@ -146661,365 +146069,6 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -147459,7 +146508,7 @@
-
+
@@ -147701,24 +146750,13 @@
-
-
-
-
-
-
-
-
-
-
-
@@ -147765,16 +146803,6 @@
-
-
-
-
-
-
-
-
-
-
@@ -147898,75 +146926,30 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -147978,22 +146961,12 @@
-
-
-
-
-
-
-
-
-
-
diff --git a/android/abi_gki_aarch64_qcom b/android/abi_gki_aarch64_qcom
index 4a3bcea83190..ac6f0fc833ee 100644
--- a/android/abi_gki_aarch64_qcom
+++ b/android/abi_gki_aarch64_qcom
@@ -2062,6 +2062,7 @@
rpmsg_set_signals
rpmsg_trysend
rpmsg_unregister_device
+ rpmsg_register_device_override
rtc_add_group
rtc_class_close
rtc_class_open
diff --git a/arch/arm/configs/vendor/sdxlemur-debug.config b/arch/arm/configs/vendor/sdxlemur-debug.config
index 33b0155a4128..a645ca71e380 100644
--- a/arch/arm/configs/vendor/sdxlemur-debug.config
+++ b/arch/arm/configs/vendor/sdxlemur-debug.config
@@ -38,3 +38,4 @@ CONFIG_BUG_ON_DATA_CORRUPTION=y
CONFIG_DEBUG_CREDENTIALS=y
CONFIG_QCOM_MEMORY_DUMP_V2=y
CONFIG_LKDTM=m
+CONFIG_SLUB_DEBUG=y
diff --git a/arch/arm/configs/vendor/sdxlemur.config b/arch/arm/configs/vendor/sdxlemur.config
index eb3bd9d5e827..a816f4605758 100644
--- a/arch/arm/configs/vendor/sdxlemur.config
+++ b/arch/arm/configs/vendor/sdxlemur.config
@@ -350,6 +350,8 @@ CONFIG_POWER_RESET_QCOM_DOWNLOAD_MODE_DEFAULT=y
CONFIG_POWER_RESET_QCOM_REBOOT_REASON=y
CONFIG_POWER_RESET_MSM=y
CONFIG_QCOM_MINIDUMP=y
+CONFIG_QCOM_MINIDUMP_FTRACE=y
+CONFIG_QCOM_MINIDUMP_PANIC_DUMP=y
CONFIG_ENABLE_SFE=y
# CONFIG_ENABLE_VMALLOC_SAVING is not set
# CONFIG_SLUB_DEBUG is not set
@@ -510,3 +512,4 @@ CONFIG_ANDROID_BINDER_IPC=y
CONFIG_ANDROID_BINDERFS=y
CONFIG_ANDROID_BINDER_DEVICES="binder,hwbinder,vndbinder"
# CONFIG_ANDROID_BINDER_IPC_SELFTEST is not set
+CONFIG_IPC_LOG_MINIDUMP_BUFFERS=16
diff --git a/drivers/devfreq/devfreq.c b/drivers/devfreq/devfreq.c
index 877157fc8b24..88afaed2cb61 100644
--- a/drivers/devfreq/devfreq.c
+++ b/drivers/devfreq/devfreq.c
@@ -595,8 +595,8 @@ static void devfreq_dev_release(struct device *dev)
devfreq->profile->exit(devfreq->dev.parent);
mutex_destroy(&devfreq->lock);
- srcu_cleanup_notifier_head(&devfreq->transition_notifier_list);
event_mutex_destroy(devfreq);
+ srcu_cleanup_notifier_head(&devfreq->transition_notifier_list);
kfree(devfreq);
}
diff --git a/drivers/firmware/qcom_scm.c b/drivers/firmware/qcom_scm.c
index ea41ae1d5bf5..5b6543836b50 100644
--- a/drivers/firmware/qcom_scm.c
+++ b/drivers/firmware/qcom_scm.c
@@ -1229,6 +1229,7 @@ static void qcom_scm_shutdown(struct platform_device *pdev)
{
qcom_scm_disable_sdi();
qcom_scm_halt_spmi_pmic_arbiter();
+ /* Clean shutdown, disable download mode to allow normal restart */
qcom_scm_set_download_mode(QCOM_DOWNLOAD_NODUMP, 0);
}
diff --git a/drivers/input/misc/qcom-hv-haptics.c b/drivers/input/misc/qcom-hv-haptics.c
index 029970344159..7f79ba9af213 100644
--- a/drivers/input/misc/qcom-hv-haptics.c
+++ b/drivers/input/misc/qcom-hv-haptics.c
@@ -1,7 +1,7 @@
// SPDX-License-Identifier: GPL-2.0-only
/*
* Copyright (c) 2020-2021, The Linux Foundation. All rights reserved.
- * Copyright (c) 2022 Qualcomm Innovation Center, Inc. All rights reserved.
+ * Copyright (c) 2022-2023, Qualcomm Innovation Center, Inc. All rights reserved.
*/
#include
@@ -3035,6 +3035,11 @@ static ssize_t pattern_s_dbgfs_write(struct file *fp,
goto exit;
}
+ if (i >= ARRAY_SIZE(tmp)) {
+ pr_err("too many patterns in input string\n");
+ rc = -EINVAL;
+ goto exit;
+ }
tmp[i++] = val;
}
diff --git a/drivers/power/reset/qcom-dload-mode.c b/drivers/power/reset/qcom-dload-mode.c
index 113db59c2aab..ec181d36f373 100644
--- a/drivers/power/reset/qcom-dload-mode.c
+++ b/drivers/power/reset/qcom-dload-mode.c
@@ -24,7 +24,7 @@ enum qcom_download_dest {
struct qcom_dload {
struct notifier_block panic_nb;
- struct notifier_block reboot_nb;
+ struct notifier_block restart_nb;
struct kobject kobj;
bool in_panic;
@@ -251,28 +251,15 @@ static int qcom_dload_panic(struct notifier_block *this, unsigned long event,
return NOTIFY_OK;
}
-static int qcom_dload_reboot(struct notifier_block *this, unsigned long event,
+static int qcom_dload_restart(struct notifier_block *this, unsigned long event,
void *ptr)
{
char *cmd = ptr;
- struct qcom_dload *poweroff = container_of(this, struct qcom_dload,
- reboot_nb);
- /* Clean shutdown, disable dump mode to allow normal restart */
- if (!poweroff->in_panic)
- set_download_mode(QCOM_DOWNLOAD_NODUMP);
-
- if (cmd) {
- if (!strcmp(cmd, "edl")) {
- early_pcie_init_enable ? set_download_mode(QCOM_EDLOAD_PCI_MODE)
- : set_download_mode(QCOM_DOWNLOAD_EDL);
- }
- else if (!strcmp(cmd, "qcom_dload"))
- msm_enable_dump_mode(true);
- }
-
- if (current_download_mode != QCOM_DOWNLOAD_NODUMP)
+ if (cmd && !strcmp(cmd, "edl")) {
+ set_download_mode(QCOM_DOWNLOAD_EDL);
reboot_mode = REBOOT_WARM;
+ }
return NOTIFY_OK;
}
@@ -381,9 +368,14 @@ static int qcom_dload_probe(struct platform_device *pdev)
atomic_notifier_chain_register(&panic_notifier_list,
&poweroff->panic_nb);
- poweroff->reboot_nb.notifier_call = qcom_dload_reboot;
- poweroff->reboot_nb.priority = 255;
- register_reboot_notifier(&poweroff->reboot_nb);
+ poweroff->restart_nb.notifier_call = qcom_dload_restart;
+ /* Here, Restart handler priority should be higher than
+ * of restart handler present in scm driver so that
+ * reboot_mode set by this handler seen by SCM's one
+ * for EDL mode.
+ */
+ poweroff->restart_nb.priority = 131;
+ register_restart_handler(&poweroff->restart_nb);
platform_set_drvdata(pdev, poweroff);
@@ -396,7 +388,7 @@ static int qcom_dload_remove(struct platform_device *pdev)
atomic_notifier_chain_unregister(&panic_notifier_list,
&poweroff->panic_nb);
- unregister_reboot_notifier(&poweroff->reboot_nb);
+ unregister_restart_handler(&poweroff->restart_nb);
if (poweroff->dload_dest_addr)
iounmap(poweroff->dload_dest_addr);
diff --git a/drivers/soc/qcom/dcc_v2.c b/drivers/soc/qcom/dcc_v2.c
index 00bb1defa415..1e877c8fe67e 100644
--- a/drivers/soc/qcom/dcc_v2.c
+++ b/drivers/soc/qcom/dcc_v2.c
@@ -612,7 +612,7 @@ static bool is_dcc_enabled(struct dcc_drvdata *drvdata)
bool dcc_enable = false;
int list;
- for (list = 0; list < DCC_MAX_LINK_LIST; list++) {
+ for (list = 0; list < drvdata->nr_link_list; list++) {
if (drvdata->enable[list]) {
dcc_enable = true;
break;
diff --git a/drivers/soc/qcom/minidump_log.c b/drivers/soc/qcom/minidump_log.c
index 921e2a6ea63b..ac26549bf15e 100644
--- a/drivers/soc/qcom/minidump_log.c
+++ b/drivers/soc/qcom/minidump_log.c
@@ -656,10 +656,16 @@ static void md_dump_task_info(struct task_struct *task, char *status,
se = &task->se;
if (task == curr) {
+#ifdef CONFIG_ARM64
seq_buf_printf(md_runq_seq_buf,
"[status: curr] pid: %d comm: %s preempt: %#x\n",
task_pid_nr(task), task->comm,
task->thread_info.preempt_count);
+#else
+ seq_buf_printf(md_runq_seq_buf,
+ "[status: curr] pid: %d comm: %s\n",
+ task_pid_nr(task), task->comm);
+#endif
return;
}
diff --git a/drivers/soc/qcom/peripheral-loader.c b/drivers/soc/qcom/peripheral-loader.c
index b7f17cc80d22..3ab98373a2b2 100644
--- a/drivers/soc/qcom/peripheral-loader.c
+++ b/drivers/soc/qcom/peripheral-loader.c
@@ -383,6 +383,10 @@ static int pil_do_minidump(struct pil_desc *desc, void *ramdump_dev)
pil_err(desc, "%s: Minidump collection failed for subsys %s rc:%d\n",
__func__, desc->name, ret);
+#ifdef CONFIG_QGKI_MSM_BOOT_TIME_MARKER
+ if (!strcmp(desc->name, "modem"))
+ update_marker("M - Modem Dump completed");
+#endif
if (desc->subsys_vmid > 0)
ret = pil_assign_mem_to_subsys(desc, priv->region_start,
(priv->region_end - priv->region_start));
diff --git a/include/net/tcp.h b/include/net/tcp.h
index 776cfbfd1f73..cedb4f70b115 100644
--- a/include/net/tcp.h
+++ b/include/net/tcp.h
@@ -362,6 +362,7 @@ extern int tcp_proc_delayed_ack_control(struct ctl_table *table, int write,
void __user *buffer, size_t *length,
loff_t *ppos);
+void tcp_enter_quickack_mode(struct sock *sk, unsigned int max_quickacks);
static inline void tcp_dec_quickack_mode(struct sock *sk)
{
struct inet_connection_sock *icsk = inet_csk(sk);
diff --git a/net/ipv4/tcp_input.c b/net/ipv4/tcp_input.c
index c6d014344a7f..d35dafac1273 100644
--- a/net/ipv4/tcp_input.c
+++ b/net/ipv4/tcp_input.c
@@ -236,7 +236,7 @@ static void tcp_incr_quickack(struct sock *sk, unsigned int max_quickacks)
icsk->icsk_ack.quick = quickacks;
}
-static void tcp_enter_quickack_mode(struct sock *sk, unsigned int max_quickacks)
+void tcp_enter_quickack_mode(struct sock *sk, unsigned int max_quickacks)
{
struct inet_connection_sock *icsk = inet_csk(sk);
diff --git a/net/qrtr/smd.c b/net/qrtr/smd.c
index 45626f99dad6..705e6523e1b2 100644
--- a/net/qrtr/smd.c
+++ b/net/qrtr/smd.c
@@ -93,6 +93,7 @@ static int qcom_smd_qrtr_probe(struct rpmsg_device *rpdev)
svc_arr, size);
}
rc = qrtr_endpoint_register(&qdev->ep, net_id, rt, svc_arr);
+ kfree(svc_arr);
if (rc)
return rc;