diff --git a/Makefile b/Makefile index 0c431ab66b08..ad4c0190712a 100644 --- a/Makefile +++ b/Makefile @@ -1,7 +1,7 @@ # SPDX-License-Identifier: GPL-2.0 VERSION = 5 PATCHLEVEL = 4 -SUBLEVEL = 5 +SUBLEVEL = 7 EXTRAVERSION = NAME = Kleptomaniac Octopus diff --git a/abi_gki_aarch64.xml b/abi_gki_aarch64.xml index 3e1ba2e2396e..3fd984e5edb7 100644 --- a/abi_gki_aarch64.xml +++ b/abi_gki_aarch64.xml @@ -2161,451 +2161,452 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - + + - + - + - + - + - - + + - - + + - + - + - - + + - + - + - + - + - + - + - + - + - + - + - - - + + + - + - + - - + + - + - + - - + + - + - + - + - + - - + + - - + + - + - + - + - - + + - + - + - + - + - - + + - - - + + + - + - - + + - + - + - + - + - - + + - + - + - + - - + + - - + + - + - - + + - + - - + + - + - + - + - - + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -2614,24 +2615,24 @@ - + - + - + - + - + - - - + + + @@ -2660,7 +2661,7 @@ - + @@ -2689,9 +2690,9 @@ - - - + + + @@ -2726,28 +2727,28 @@ - + - + - + - + - + - + @@ -2762,16 +2763,16 @@ - + - + - + - + @@ -2786,50 +2787,50 @@ - + - + - - + + - + - + - + - + - + - + - + - + - + - + - + @@ -2837,7 +2838,7 @@ - + @@ -2845,7 +2846,7 @@ - + @@ -2906,7 +2907,7 @@ - + @@ -2919,7 +2920,7 @@ - + @@ -2935,9 +2936,9 @@ - + - + @@ -2948,7 +2949,7 @@ - + @@ -2967,25 +2968,25 @@ - + - + - + - + - + - + - + @@ -3023,7 +3024,7 @@ - + @@ -3031,7 +3032,7 @@ - + @@ -3069,7 +3070,7 @@ - + @@ -3083,7 +3084,7 @@ - + @@ -3094,7 +3095,7 @@ - + @@ -3114,7 +3115,7 @@ - + @@ -3122,7 +3123,7 @@ - + @@ -3151,9 +3152,9 @@ - + - + @@ -3162,7 +3163,7 @@ - + @@ -3192,10 +3193,10 @@ - + - + @@ -3216,89 +3217,89 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -3307,22 +3308,22 @@ - + - + - + - + - + - + @@ -3340,68 +3341,68 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -3413,7 +3414,7 @@ - + @@ -3422,40 +3423,40 @@ - + - - + + - + - + - + - + - + - + - + - + - + @@ -3463,12 +3464,12 @@ - + - + - + @@ -3477,26 +3478,26 @@ - + - + - + - + - + - + @@ -3507,34 +3508,34 @@ - + - + - + - + - + - + - + @@ -3543,43 +3544,43 @@ - + - + - + - + - + - + - + - + - + - + - + @@ -3588,22 +3589,22 @@ - + - + - + - + @@ -3615,7 +3616,7 @@ - + @@ -3630,10 +3631,10 @@ - + - + @@ -3645,107 +3646,107 @@ - + - + - + - - - + + + - + - - - - + + + + - + - - - + + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -3753,61 +3754,61 @@ - - - + + + - + - + - + - + - + - + - - - + + + - + - + - - - + + + - + - + @@ -3819,41 +3820,41 @@ - + - + - + - + - + - + - + - + - - - - - + + + + + @@ -3864,10 +3865,10 @@ - + - + @@ -3887,36 +3888,36 @@ - + - + - + - + - + - + - + - + - + @@ -3931,7 +3932,7 @@ - + @@ -3943,43 +3944,43 @@ - + - + - + - + - + - + - + - + - + - + - + @@ -3988,43 +3989,43 @@ - + - + - + - + - + - + - + - + @@ -4036,19 +4037,19 @@ - + - + - + - + - + @@ -4057,7 +4058,7 @@ - + @@ -4075,7 +4076,7 @@ - + @@ -4083,54 +4084,54 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -4139,10 +4140,10 @@ - + - + @@ -4154,22 +4155,22 @@ - + - + - + - + - + @@ -4178,10 +4179,10 @@ - + - + @@ -4190,10 +4191,10 @@ - + - + @@ -4202,19 +4203,19 @@ - + - + - + - + - + @@ -4226,19 +4227,19 @@ - + - + - + - + - + @@ -4253,34 +4254,34 @@ - + - + - + - + - + - + @@ -4292,43 +4293,43 @@ - + - + - + - + - + - + - + - + - + @@ -4339,16 +4340,16 @@ - + - + - + - + @@ -4366,7 +4367,7 @@ - + @@ -4374,42 +4375,42 @@ - + - + - - + + - + - + - + - + - - + + - + - + - + - + - + @@ -4417,29 +4418,29 @@ - + - + - + - + - + - + - + - + - + @@ -4456,65 +4457,65 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -4523,16 +4524,16 @@ - + - + - + - + @@ -4540,13 +4541,13 @@ - + - + - + @@ -4561,16 +4562,16 @@ - + - + - + @@ -4585,29 +4586,29 @@ - + - + - + - + - + - + - + - + @@ -4622,7 +4623,7 @@ - + @@ -4643,7 +4644,7 @@ - + @@ -4661,7 +4662,7 @@ - + @@ -4712,34 +4713,34 @@ - + - + - + - + - + - + - + @@ -4748,33 +4749,33 @@ - + - + - + - - + + - + - - - - + + + + - + - - + + @@ -4782,7 +4783,7 @@ - + @@ -4791,21 +4792,21 @@ - + - - + + - - + + - + @@ -4814,103 +4815,103 @@ - + - + - + - + - + - + - - - - + - + - - - - + - + + + + - + - - - - + - + + + + - + - + - - - - + - + - + - + - + - + + + + - + + + + - + - + - + - + - + - + @@ -4919,31 +4920,31 @@ - + - + - + - + - + - + @@ -4952,16 +4953,16 @@ - + - + - + @@ -4970,10 +4971,10 @@ - + - + @@ -5030,7 +5031,7 @@ - + @@ -5063,10 +5064,10 @@ - + - + @@ -5075,13 +5076,13 @@ - + - + - + @@ -5093,13 +5094,13 @@ - + - + @@ -5120,52 +5121,52 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -5177,10 +5178,10 @@ - + - + @@ -5189,7 +5190,7 @@ - + @@ -5204,46 +5205,46 @@ - + - + - + - + - + - + - + - + - + - + - + @@ -5258,10 +5259,10 @@ - + - + @@ -5270,34 +5271,34 @@ - + - + - + - + - + - + - + @@ -5306,16 +5307,16 @@ - + - + - + @@ -5339,7 +5340,7 @@ - + @@ -5351,13 +5352,13 @@ - + - + - + @@ -5366,42 +5367,45 @@ - + - + - + - + - + - + + + + - - + + - + - + @@ -5409,21 +5413,21 @@ - - + + - + - + - + @@ -5447,25 +5451,25 @@ - + - + - + - + - + - + @@ -5473,7 +5477,7 @@ - + @@ -5499,7 +5503,7 @@ - + @@ -5556,7 +5560,7 @@ - + @@ -5582,10 +5586,10 @@ - + - + @@ -5593,7 +5597,7 @@ - + @@ -5607,27 +5611,27 @@ - + - + - + - + - + - + - + - + @@ -5645,7 +5649,7 @@ - + @@ -5669,79 +5673,79 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - + + - + - + - + - + - + - + - + - + - + @@ -5770,46 +5774,46 @@ - + - + - + - + - + - + - + - - - + + + - + - + - + - + - + @@ -5823,27 +5827,27 @@ - - + + - + - + - + - + - + - + - + @@ -5857,7 +5861,7 @@ - + @@ -5868,44 +5872,44 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -5920,60 +5924,60 @@ - + - + - + - + - + - + - + - + - + - + - + - + - - + + - + - + - - - - + + + + - + @@ -5988,43 +5992,43 @@ - - - + + + - + - + - + - + - + - + - + - - + + @@ -6032,20 +6036,20 @@ - + - + - + - + - + @@ -6063,10 +6067,10 @@ - + - + @@ -6075,16 +6079,16 @@ - + - + - + @@ -6093,17 +6097,17 @@ - + - + - + - + - + @@ -6112,7 +6116,7 @@ - + @@ -6124,21 +6128,21 @@ - + - + - + - + - + @@ -6147,10 +6151,10 @@ - + - + @@ -6159,44 +6163,44 @@ - + - + - + - + - + - + - + - + - + - + - + - + @@ -6207,161 +6211,161 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - + + + - + - - + + - + - + - + - + - + - + - + - + - + - + @@ -6369,51 +6373,51 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -6422,63 +6426,63 @@ - + - - + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -6490,7 +6494,7 @@ - + @@ -6501,16 +6505,16 @@ - + - + - + - + @@ -6519,51 +6523,51 @@ - - + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -6575,7 +6579,7 @@ - + @@ -6586,9 +6590,9 @@ - + - + @@ -6597,12 +6601,12 @@ - + - + @@ -6613,84 +6617,84 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - + + - + - + @@ -6711,7 +6715,7 @@ - + @@ -6720,10 +6724,10 @@ - + - + @@ -6746,7 +6750,7 @@ - + @@ -6754,38 +6758,38 @@ - + - + - + - + - + - + - + - + - + - + - + @@ -6812,43 +6816,43 @@ - + - + - + - + - + - + - + - + - + - + - + - + @@ -6860,81 +6864,81 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -6970,28 +6974,28 @@ - + - + - + - + - + - + - + - + @@ -7000,7 +7004,7 @@ - + @@ -7018,22 +7022,22 @@ - + - + - + - + - + - + @@ -7042,274 +7046,274 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -7317,7 +7321,7 @@ - + @@ -7325,8 +7329,8 @@ - - + + @@ -7397,219 +7401,219 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - + + - + - + - + @@ -7618,9 +7622,9 @@ - + - + @@ -7629,9 +7633,9 @@ - + - + @@ -7640,18 +7644,18 @@ - + - + - + - + @@ -7662,7 +7666,7 @@ - + @@ -7672,7 +7676,7 @@ - + @@ -7682,7 +7686,7 @@ - + @@ -7697,13 +7701,13 @@ - + - + - + @@ -7817,7 +7821,7 @@ - + @@ -7832,140 +7836,140 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - + + - + - + - - - + + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -7974,7 +7978,7 @@ - + @@ -7986,20 +7990,20 @@ - + - + - + - - - + + + @@ -8007,19 +8011,19 @@ - + - + - + - + - + @@ -8027,43 +8031,43 @@ - + - + - + - + - + - + - + - + - + - - + + - + - + - - + + @@ -8071,8 +8075,8 @@ - - + + @@ -8089,20 +8093,20 @@ - + - + - - + + - - + + @@ -8110,8 +8114,8 @@ - - + + @@ -8119,11 +8123,11 @@ - + - - + + @@ -8131,13 +8135,13 @@ - + - + @@ -8211,7 +8215,7 @@ - + @@ -8246,7 +8250,7 @@ - + @@ -8272,15 +8276,15 @@ - + - + - + - + @@ -8297,21 +8301,21 @@ - + - + - + - + - + @@ -8319,13 +8323,13 @@ - + - + - + @@ -8334,39 +8338,39 @@ - + - + - + - + - + - + - + - + - + - + @@ -8375,18 +8379,18 @@ - + - + - + - + @@ -8395,23 +8399,23 @@ - + - + - + - + - + - + @@ -8421,9 +8425,9 @@ - + - + @@ -8433,39 +8437,39 @@ - + - + - + - + - + - + - + - + - + - + - + @@ -8474,49 +8478,49 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -8524,177 +8528,177 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -8732,7 +8736,7 @@ - + @@ -8746,7 +8750,7 @@ - + @@ -8760,7 +8764,7 @@ - + @@ -8777,7 +8781,7 @@ - + @@ -8848,7 +8852,7 @@ - + @@ -8877,7 +8881,7 @@ - + @@ -8891,7 +8895,7 @@ - + @@ -8908,14 +8912,14 @@ - + - + @@ -8926,7 +8930,7 @@ - + @@ -8937,30 +8941,30 @@ - + - + - + - + - + - + - + @@ -8969,51 +8973,51 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -9031,7 +9035,7 @@ - + @@ -9045,7 +9049,7 @@ - + @@ -9065,7 +9069,7 @@ - + @@ -9082,7 +9086,7 @@ - + @@ -9096,7 +9100,7 @@ - + @@ -9113,23 +9117,23 @@ - + - + - + - + - + @@ -9141,7 +9145,7 @@ - + @@ -9149,7 +9153,7 @@ - + @@ -9160,7 +9164,7 @@ - + @@ -9189,7 +9193,7 @@ - + @@ -9206,7 +9210,7 @@ - + @@ -9214,7 +9218,7 @@ - + @@ -9229,7 +9233,7 @@ - + @@ -9243,7 +9247,7 @@ - + @@ -9272,7 +9276,7 @@ - + @@ -9286,18 +9290,18 @@ - + - + - + - + - + @@ -9326,7 +9330,7 @@ - + @@ -9341,19 +9345,19 @@ - - + + - + - + - + - + @@ -9367,47 +9371,47 @@ - + - + - + - + - + - + - + - + - + - + - - + + - + - + @@ -9415,24 +9419,24 @@ - + - + - + - + - + - + - + @@ -9440,10 +9444,10 @@ - + - + @@ -9451,23 +9455,23 @@ - + - + - + - + - + - + @@ -9476,41 +9480,41 @@ - + - - - + + + - + - + - + - + - + - + - + @@ -9522,10 +9526,10 @@ - + - + @@ -9534,39 +9538,39 @@ - + - + - + - + - + - + - + - + - + - + @@ -9574,7 +9578,7 @@ - + @@ -9591,7 +9595,7 @@ - + @@ -9599,73 +9603,73 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - + + - + - + - + @@ -9683,7 +9687,7 @@ - + @@ -9692,7 +9696,7 @@ - + @@ -9700,15 +9704,15 @@ - + - + - + @@ -9717,19 +9721,19 @@ - + - + - + - + - + @@ -9747,24 +9751,24 @@ - + - + - + - + - + - + @@ -9773,13 +9777,13 @@ - + - + - + @@ -9788,46 +9792,46 @@ - + - + - + - + - + - + - + - + - + - + - + - + @@ -9842,12 +9846,12 @@ - + - + - + @@ -9859,110 +9863,110 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -9971,7 +9975,7 @@ - + @@ -9986,10 +9990,10 @@ - + - + @@ -10030,15 +10034,15 @@ - + - + - + - + @@ -10053,15 +10057,15 @@ - + - + - + - + @@ -10079,10 +10083,10 @@ - + - + @@ -10108,7 +10112,7 @@ - + @@ -10116,24 +10120,24 @@ - + - + - + - + - + - + @@ -10151,15 +10155,15 @@ - + - + - + - + @@ -10167,13 +10171,13 @@ - - + + - + - + @@ -10182,12 +10186,12 @@ - + - + - + @@ -10196,28 +10200,28 @@ - + - + - + - + - + - + @@ -10228,24 +10232,24 @@ - + - + - + - + - + @@ -10254,62 +10258,62 @@ - + - - - + + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -10318,31 +10322,31 @@ - + - + - + - + - + - + - + - + @@ -10354,28 +10358,28 @@ - + - + - + - + - + - + - + @@ -10387,22 +10391,22 @@ - + - + - + - + - + - + @@ -10420,98 +10424,98 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -10519,78 +10523,78 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -10599,62 +10603,62 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - + + - - + + @@ -10671,19 +10675,19 @@ - + - + - + - + @@ -10725,10 +10729,10 @@ - + - + @@ -10746,7 +10750,7 @@ - + @@ -10755,10 +10759,10 @@ - + - + @@ -10803,10 +10807,10 @@ - + - + @@ -10827,16 +10831,16 @@ - + - + - + - + @@ -10850,28 +10854,28 @@ - + - + - + - + - + - + - + @@ -10889,7 +10893,7 @@ - + @@ -10898,7 +10902,7 @@ - + @@ -10906,14 +10910,14 @@ - + - + @@ -10923,87 +10927,90 @@ + + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - + + - + @@ -11012,7 +11019,7 @@ - + @@ -11023,15 +11030,15 @@ - + - + - + @@ -11050,13 +11057,13 @@ - + - + @@ -11064,7 +11071,7 @@ - + @@ -11073,12 +11080,12 @@ - + - + - + @@ -11087,10 +11094,10 @@ - + - + @@ -11102,13 +11109,13 @@ - + - + @@ -11120,81 +11127,81 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - + + - + - + @@ -11203,23 +11210,23 @@ - + - + - + - + - + @@ -11233,24 +11240,24 @@ - + - + - + - + - + - + @@ -11258,7 +11265,7 @@ - + @@ -11266,7 +11273,7 @@ - + @@ -11277,12 +11284,12 @@ - + - + - + @@ -11315,19 +11322,19 @@ - + - + - + - + - + @@ -11338,7 +11345,7 @@ - + @@ -11347,38 +11354,38 @@ - - + + - + - - + + - + - + - + - + - + - + - + @@ -11389,7 +11396,7 @@ - + @@ -11398,21 +11405,21 @@ - + - + - + - + - + - + @@ -11420,15 +11427,15 @@ - + - - + + @@ -11452,41 +11459,49 @@ - + + + + + + + + + - + - + - + - + - + - + - + - + - + - + @@ -11498,12 +11513,12 @@ - + - + - + @@ -11515,16 +11530,16 @@ - + - + - + - + @@ -11533,10 +11548,10 @@ - + - + @@ -11548,32 +11563,32 @@ - - + + - + - + - + - + - + - - + + - + @@ -11588,60 +11603,60 @@ - + - + - + - + - + - + - - + + - + - - - + + + - + - - + + - + - + @@ -11649,84 +11664,84 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -11734,83 +11749,83 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -11821,240 +11836,240 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - + + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -12066,36 +12081,36 @@ - + - + - + - + - + - + - + - + - + - + - + @@ -12104,10 +12119,10 @@ - + - + @@ -12119,40 +12134,40 @@ - + - + - + - + - + - + - + - + - + - + - + - + @@ -12173,7 +12188,7 @@ - + @@ -12359,10 +12374,10 @@ - + - + @@ -12371,7 +12386,7 @@ - + @@ -12380,10 +12395,10 @@ - + - + @@ -12416,7 +12431,7 @@ - + @@ -12431,13 +12446,13 @@ - + - + @@ -12446,15 +12461,15 @@ - + - + - + - + @@ -12463,16 +12478,16 @@ - + - + - + @@ -12481,18 +12496,18 @@ - + - + - + - + @@ -12501,42 +12516,42 @@ - + - + - + - + - + - + - + - + - + - + - + - + @@ -12548,29 +12563,29 @@ - + - + - + - + - + - + - + - + @@ -12587,15 +12602,15 @@ - + - + - + - + @@ -12607,12 +12622,12 @@ - + - + - + @@ -12623,52 +12638,52 @@ - + - + - + - + - + - + - + - + - + - - - - + + + + - + - + - + @@ -12677,7 +12692,7 @@ - + @@ -12686,7 +12701,7 @@ - + @@ -12695,7 +12710,7 @@ - + @@ -12712,107 +12727,107 @@ - + - + - + - - - + + + - + - + - + - + - + - + - + - - + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -12833,31 +12848,31 @@ - + - + - + - + - + - + - + - + - + @@ -12866,36 +12881,36 @@ - + - + - + - + - + - + - + - + - + - + @@ -12946,7 +12961,7 @@ - + @@ -12991,79 +13006,79 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -13072,27 +13087,27 @@ - + - + - + - + - + - + - + - + @@ -13101,9 +13116,9 @@ - + - + @@ -13112,7 +13127,7 @@ - + @@ -13120,7 +13135,7 @@ - + @@ -13129,7 +13144,7 @@ - + @@ -13150,60 +13165,60 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -13241,40 +13256,40 @@ - + - + - + - + - + - + - + - + - + - + - + - + @@ -13286,43 +13301,43 @@ - + - + - + - + - + - + - + - + - + - + - + - + @@ -13354,28 +13369,28 @@ - + - + - + - + - + - + @@ -13390,13 +13405,13 @@ - + - + - + @@ -13405,10 +13420,10 @@ - + - + @@ -13416,120 +13431,120 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -13547,7 +13562,7 @@ - + @@ -13556,7 +13571,7 @@ - + @@ -13568,13 +13583,13 @@ - + - + - + @@ -13583,12 +13598,12 @@ - + - + - + @@ -13618,15 +13633,15 @@ - + - + - + @@ -13662,88 +13677,88 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -13751,13 +13766,13 @@ - + - + @@ -13766,55 +13781,55 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -13823,33 +13838,33 @@ - + - + - + - + - + - + - + - + - + @@ -13866,84 +13881,84 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -13952,18 +13967,18 @@ - + - + - + - + - + @@ -13975,10 +13990,10 @@ - + - + @@ -13999,66 +14014,66 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - + + - + - + @@ -14066,20 +14081,20 @@ - + - + - + - + - + @@ -14088,7 +14103,7 @@ - + @@ -14103,7 +14118,7 @@ - + @@ -14112,29 +14127,29 @@ - + - + - + - + - + - + - + - + - + @@ -14145,15 +14160,15 @@ - + - + - + - + @@ -14162,31 +14177,31 @@ - + - + - + - + - + - + - + @@ -14195,7 +14210,7 @@ - + @@ -14204,27 +14219,27 @@ - + - + - + - + - + - + @@ -14241,41 +14256,41 @@ - + - + - + - + - - + + - + - + - + - + - + @@ -14287,7 +14302,7 @@ - + @@ -14297,41 +14312,41 @@ - + - + - + - + - + - + - + - + - + @@ -14339,7 +14354,7 @@ - + @@ -14347,7 +14362,7 @@ - + @@ -14361,60 +14376,60 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -14441,25 +14456,25 @@ - + - + - + - + - + @@ -14476,52 +14491,52 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -14529,12 +14544,12 @@ - + - + - + @@ -14546,16 +14561,16 @@ - + - + - + @@ -14585,37 +14600,37 @@ - + - + - + - + - + - + - + - + - + - + @@ -14636,7 +14651,7 @@ - + @@ -14681,54 +14696,54 @@ - + - + - + - + - + - + - + - + - + - - + + - + - + @@ -14736,23 +14751,23 @@ - + - + - + - + - + - + - + @@ -14778,7 +14793,7 @@ - + @@ -14786,9 +14801,9 @@ - + - + @@ -14923,57 +14938,57 @@ - + - + - + - + - + - + - + - + - + - + - - - - - + + + + + - + - + - + - + @@ -14987,7 +15002,7 @@ - + @@ -14996,23 +15011,23 @@ - + - + - + - + - + - + @@ -15020,25 +15035,25 @@ - + - + - + - - + + - + - + @@ -15049,57 +15064,57 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - + + + @@ -15107,55 +15122,55 @@ - + - + - + - + - + - + - + - + - + - - + + - + - + - + - + - + - + @@ -15166,7 +15181,7 @@ - + @@ -15174,15 +15189,15 @@ - + - + - + @@ -15193,32 +15208,32 @@ - - + + - + - + - + - + - + - + - + - - - - + + + + @@ -15229,36 +15244,36 @@ - + - + - + - + - + - + - + - + @@ -15268,21 +15283,21 @@ - + - + - + - - + + - + @@ -15297,12 +15312,12 @@ - + - + - + @@ -15326,12 +15341,12 @@ - + - + - + @@ -15352,13 +15367,13 @@ - + - + - + @@ -15399,7 +15414,7 @@ - + @@ -15407,10 +15422,10 @@ - + - + @@ -15424,7 +15439,7 @@ - + @@ -15435,30 +15450,30 @@ - + - + - + - + - + - + - + - + - + @@ -15466,41 +15481,41 @@ - + - + - + - + - - + + - + - + - + - + - + - + - + @@ -15511,58 +15526,58 @@ - - - + + + - + - + - + - + - + - + - + - + - + - - + + - + - + - + @@ -15570,7 +15585,7 @@ - + @@ -15578,16 +15593,16 @@ - + - + - + @@ -15595,7 +15610,7 @@ - + @@ -15612,29 +15627,29 @@ - + - + - + - + - + - + - + - + - + @@ -15645,19 +15660,19 @@ - + - + - + - + - - + + @@ -15665,15 +15680,15 @@ - + - + - + - + @@ -15685,55 +15700,55 @@ - - + + - + - + - + - + - + - + - - - - - - + + + + + + - + - + - + - + - + - + @@ -15744,21 +15759,21 @@ - + - + - + - + - + @@ -15776,39 +15791,39 @@ - + - + - + - + - + - + - + - + @@ -15817,18 +15832,18 @@ - + - + - + - + @@ -15840,7 +15855,7 @@ - + @@ -15849,7 +15864,7 @@ - + @@ -15858,33 +15873,33 @@ - + - + - + - + - + - + - + - + - + @@ -15898,7 +15913,7 @@ - + @@ -15906,101 +15921,101 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -16012,7 +16027,7 @@ - + @@ -16024,81 +16039,81 @@ - + - + - + - + - + - + - + - + - + - - + + - + - - + + - + - + - + - + - + - + - + - + - + - + - - + + @@ -16112,80 +16127,80 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -16211,7 +16226,7 @@ - + @@ -16234,10 +16249,10 @@ - + - + @@ -16255,21 +16270,21 @@ - + - + - + - + @@ -16295,33 +16310,33 @@ - + - + - - + + - + - + - + - + - + @@ -16339,16 +16354,16 @@ - + - + - + @@ -16357,13 +16372,13 @@ - + - + - + @@ -16375,29 +16390,29 @@ - + - + - + - + - + - + - + - + @@ -16415,84 +16430,84 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -16500,77 +16515,77 @@ - + - + - - + + - - + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -16585,12 +16600,12 @@ - + - + - + @@ -16602,153 +16617,153 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - + + + - + - + @@ -16757,13 +16772,13 @@ - + - + @@ -16772,19 +16787,19 @@ - + - + - + - + @@ -16793,63 +16808,63 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -16860,7 +16875,7 @@ - + @@ -16874,20 +16889,20 @@ - + - + - + - + - + @@ -16895,7 +16910,7 @@ - + @@ -16904,15 +16919,15 @@ - + - + - + @@ -16924,7 +16939,7 @@ - + @@ -16932,7 +16947,7 @@ - + @@ -16949,7 +16964,7 @@ - + @@ -16963,13 +16978,13 @@ - + - + - + @@ -16998,23 +17013,23 @@ - + - + - + - + - + - + @@ -17035,7 +17050,7 @@ - + @@ -17043,7 +17058,7 @@ - + @@ -17057,7 +17072,7 @@ - + @@ -17065,20 +17080,20 @@ - + - + - + - + - + - + @@ -17090,2767 +17105,2768 @@ - - - - - - + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + - + - - + + - + - - + + - + - + - - - + + + - - - - - + + + + + - - - - - - - - - - - - + + + - + + - + - - - + + + - - - - + + + - + + + + + + + + + + - - - - - - - - + + + + - + + + + + - - - - - - - - - + - - - + + - - + + - - - + + + + - - - - - - - - - + + + - - + + - - - + + + + - - + + + + - - - - + + + - - - - + + - - - - - - - - + + - - + + + - - + + - - - - - + + + + + + - - - + + - + - - - - + + + + + - - - - + + + - - + + + + - + + - - + + + + - - - + + - - - + + + + + - - - - - - + - + - - - + + - + + + - - - + + + + - - - + + + - + - - + + + - - - - + + + - - - + - - - + + - - + + + + - + + + - - + + + - - - + - - - - + - - - - - - + + - + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - + + - - + + - - + + + + + + + + + + + + + + + + + - - + + - - - + + + - - + + - + - - - - - - - - - - - - - - - - + + - - + - - - + + - + - + + + - - + + - - + + - - - - - + - - - - - - + + - - + + - - + + + + + - - + + - + - + + + + + + + + + + + + + + + + + + + + - + - - + + - - + + - - + + - + - - + + - + - - + + - + - - + + - - - - - - - - - - - - - - - - - - - - - + - + + - + + + - - - + + + - + - - + + - + + + - - + + - + + - - + + + - - - + - - - - - + - + - + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - + + + - - + + + + - - + + + + - - + + + + - - - + + - - + + - - - + + - - + + + - + + + + - - + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - + - - + + + - - - - + + + - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - + + + - - - - - + - - - - - - - - - - + + + + + - - - + + + + + + + - - - - - - + + + + + - + + + + + + + + + + - + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - + + - - - - - - + + + - - + + + + - - - + + + + - - + + + + + + - - + + - - - - - - - + + + + + + + - + - - - - - - - + + + + + + + - + - + + - + - + - - + + - - + + - + - - - + + - - + + - - + + + - - - + + - - + + - - - + + - + + - - - + - - - + + - + - + - + + - - + + + + + + + + + + + + + + + + + + + + - - + + - - + + - - + + - - + + - - - - - - - - - - - - - - - - - - - - + + + - - + + + + - - - + + - - - - - + + - - + + - - + + + - - - - + + + + + - - - + + - - - - + + - - + + + + - - - + + + - - + + + + - - + + - - + + + - - - + + - - - + + - - + + - - - - + + + - - - - + + - - + + - + + + + - - - + + + + + - + + - - + - - - + + + - - - + + - - + + + - - + + - - + + - - - + + - + - + - - - + + + - - + + - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + - - - + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - + + + + + + + + + + + + + + + + - + + + + + - - - - - - - - - - - + + - - + + + + + + + + + + + + + + + + + + + + - + - + - + - - + + - + - - - - - - - - - - - - - - - - - - - + + + - - - - - + - - - + - - - + + + + + - + + + + + + + + + + + + + + + + + + + + + - - + + - - + + - - + + - + - - - + + + - + - + - - - + + + - + - - - - - - - - - - - - + + - + + + - - - - + + + - - + + + + + + + + + + + - - + + - + - - - - - - - + + + - + + + + + - - - - - - - - - - - - - - - - + + - + + - - - + + + - - + + + - - - - + + - + - - + + - - + + - + + + + + + + + + + + + + + + - + - - - - - - - - - - - - - - - - + - - - - - - - + + + + + + - - - - + + - - - + - - - - + + + + + + + - - - - - - - + + + + - - - + + + - - - + + + + - - + + + + + + + - - - + + + - - - + + + - + - - - - + + + - - - - - + + + - - - - - + + - - - + - - - + - + - - + - - + + + + + + + + - + + - - - - - - - - - + + + + + + - - - + + + + + + - - - + + + - - - + + - - + + + + + + + + - + + + + + + + + + + + + + + @@ -19858,688 +19874,688 @@ - + - + - + - + - - - - - - - - - - - - - - - - - + + + + - + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - + + + - - + + - - - + + + + - + + + + + + + + + + + + + + + + - - - - - - - - - - - - - + - - - + - - - - + + - - + + + - - - - - + + - - + + + - + - - + + + + + + - - + + + + - - + + - - - + + - - - + - - + - + + + + + + + + + + + + + + + + - + - - - - - - - - - - - - - - + - + - - + + - - + - - - - + - + + - - + + - + + + + - + - - - + + - - - - + - - - - - + - - + + + - - - - + + + + - - - - + + + + - - + + - + + - - - + - - + + - + + - + + - + + + + + - - - + + + + - - - + - - - - + - + + + - + + + - - + + + + - - + - + - - - + + - + + - - + - + + + - - - - - - + - + + - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - + + - - - + + - - - + + + + - - - + + - - - - + + + + - - - + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + - - - + + + + + + + + + + + + + + + + + - - + + - + - + - + - + - - - - - - - - - - - - - - - + - - - + - - + - + + + - + + + - - + - + - - - + + + - - + - - + + - - + + - + + + + + + + + + + + + + + + + - + - - - + + + - - + + - - + + - + - + - - - - - - - - - - - - - - - - - - - - + + + + - + + - - + + + + + + + + + + + + + + + + + - + - + - + - + - + - + @@ -20547,15 +20563,15 @@ - + - + - + @@ -20563,53 +20579,53 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -20622,7 +20638,7 @@ - + @@ -20633,15 +20649,15 @@ - + - + - + @@ -20649,7 +20665,7 @@ - + @@ -20662,7 +20678,7 @@ - + @@ -20673,7 +20689,7 @@ - + @@ -20681,9 +20697,9 @@ - + - + @@ -20697,48 +20713,48 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -20746,7 +20762,7 @@ - + @@ -20754,16 +20770,16 @@ - - - - - - - - + + + + + + + + @@ -20773,9 +20789,9 @@ - + - + @@ -20785,12 +20801,12 @@ - + - + @@ -20806,13 +20822,13 @@ - + - - + + @@ -20828,18 +20844,18 @@ - + - + - + - + @@ -20858,45 +20874,45 @@ - + - + - + - + - + - + - + - + - + - + - + - + @@ -20904,13 +20920,13 @@ - + - + - + @@ -20918,178 +20934,178 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - - - - - - + + + + + + + + - + - - + + - + - + - - + + - - + + - + - + - + - + - + - + - + - - - + + + - + - - + + - + - + - + - + - + - - + + - - + + @@ -21116,24 +21132,24 @@ - - + + - - - - + + + + - + - + - + @@ -21163,224 +21179,223 @@ - - - + + - - + + - + - + - - + + - - + + - + - + - + - + - - - - - + - - + + - - + + - - + + - - + + - - - - - - - - - - - - - - - - - - - - - - - - + + - - + + + + + + + + + + + + + + + + + + + + + + + + - - + + - - + + - - + + - + + + + + - - + + - + - - + + - + - + - - + + - + - + - - + + - + - + - + - - + + - + - + - + - + - - + + - + - + - + - + - - + + - + - + - - - - + + + + - + @@ -21409,7 +21424,7 @@ - + @@ -21418,16 +21433,16 @@ - + - + - + @@ -21469,10 +21484,10 @@ - + - + @@ -21481,10 +21496,10 @@ - + - + @@ -21496,7 +21511,7 @@ - + @@ -21508,10 +21523,10 @@ - + - + @@ -21529,19 +21544,19 @@ - + - + - + - + @@ -21562,21 +21577,21 @@ - + - + - + - + - + @@ -21584,7 +21599,7 @@ - + @@ -21601,15 +21616,15 @@ - + - + - + - + @@ -21617,38 +21632,38 @@ - + - + - + - + - - + + - + - + @@ -21657,7 +21672,7 @@ - + @@ -21672,7 +21687,7 @@ - + @@ -21680,18 +21695,18 @@ - + - + - + - + @@ -21706,7 +21721,7 @@ - + @@ -21727,7 +21742,7 @@ - + @@ -21745,7 +21760,7 @@ - + @@ -21796,34 +21811,34 @@ - + - + - + - + - + - + - + @@ -21832,15 +21847,15 @@ - + - + - + @@ -21903,15 +21918,15 @@ - + - + - + - + @@ -21926,13 +21941,13 @@ - + - + - + @@ -21961,13 +21976,13 @@ - + - + - + @@ -21988,16 +22003,16 @@ - + - + - + - + @@ -22008,7 +22023,7 @@ - + @@ -22019,10 +22034,10 @@ - + - + @@ -22033,15 +22048,15 @@ - + - + - + - + @@ -22049,7 +22064,7 @@ - + @@ -22060,29 +22075,29 @@ - + - + - + - + - + - + - + @@ -22093,15 +22108,15 @@ - + - + - + - + @@ -22146,28 +22161,28 @@ - + - + - + - + - + - + - + - + @@ -22209,21 +22224,21 @@ - + - + - + - + - + @@ -22232,16 +22247,16 @@ - + - + - + @@ -22264,10 +22279,10 @@ - + - + @@ -22275,7 +22290,7 @@ - + @@ -22286,28 +22301,28 @@ - + - + - + - - - + + + - + - + @@ -22316,13 +22331,13 @@ - - + + - + - + @@ -22345,16 +22360,16 @@ - + - + - + - + @@ -22371,7 +22386,7 @@ - + @@ -22383,22 +22398,22 @@ - + - + - + - + - + @@ -22421,12 +22436,12 @@ - + - + @@ -22435,7 +22450,7 @@ - + @@ -22444,113 +22459,113 @@ - + - + - + - - + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -22564,25 +22579,25 @@ - + - + - + - + - + - + - + @@ -22591,31 +22606,31 @@ - + - + - + - + - + - + @@ -22623,30 +22638,30 @@ - + - + - + - + - + - + - + - + @@ -22658,129 +22673,129 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -22789,74 +22804,74 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -22868,7 +22883,7 @@ - + @@ -22889,22 +22904,22 @@ - + - + - + - + - + - + @@ -22919,7 +22934,7 @@ - + @@ -22928,78 +22943,75 @@ - + - + - + - + - + + + + + + + - - - - - - - + - + - + - - + + - + - + - + - - + + - - + + - + - + - - - - - + + - + - + - + @@ -23013,7 +23025,7 @@ - + @@ -23040,7 +23052,7 @@ - + @@ -23060,21 +23072,21 @@ - + - + - + - + - + @@ -23082,51 +23094,51 @@ - + - + - + - + - + - + - + - + - - + + - + - + - + - + @@ -23138,18 +23150,18 @@ - + - + - + - + @@ -23160,52 +23172,41 @@ - + - + - + - + - - - - - - - - - - - - + - + - + - + - + - + - + - + @@ -23220,12 +23221,12 @@ - + - + - + @@ -23234,23 +23235,23 @@ - + - + - + - + - + - + - + @@ -23271,10 +23272,10 @@ - + - + @@ -23283,7 +23284,7 @@ - + @@ -23292,10 +23293,10 @@ - + - + @@ -23304,33 +23305,30 @@ - + - + - - - - + - + - + - + - + - + @@ -23339,13 +23337,13 @@ - + - + - + @@ -23366,16 +23364,16 @@ - + - + - + @@ -23384,7 +23382,7 @@ - + @@ -23393,7 +23391,7 @@ - + @@ -23417,27 +23415,27 @@ - + - + - + - + - + - + - + - + @@ -23448,56 +23446,56 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -23505,15 +23503,15 @@ - + - + - + @@ -23536,33 +23534,33 @@ - + - + - + - + - + - + - + - + - + - + @@ -23571,13 +23569,13 @@ - + - + @@ -23598,13 +23596,13 @@ - + - + @@ -23628,7 +23626,7 @@ - + @@ -23637,13 +23635,13 @@ - + - + - + @@ -23652,16 +23650,16 @@ - + - + - + @@ -23676,7 +23674,7 @@ - + @@ -23685,13 +23683,13 @@ - + - + - + @@ -23703,28 +23701,28 @@ - + - + - + - + - + @@ -23745,18 +23743,18 @@ - + - + - + - + - + @@ -23768,19 +23766,19 @@ - + - + - + - + - + @@ -23788,19 +23786,19 @@ - + - + - + - + @@ -23812,25 +23810,25 @@ - + - + - + - + - + - + @@ -23839,25 +23837,25 @@ - + - + - + - + - + - + @@ -23866,22 +23864,22 @@ - + - - + + - + - + - + @@ -23889,7 +23887,7 @@ - + @@ -23897,43 +23895,43 @@ - + - - - + + + - + - + - + - + - + - + - + @@ -23942,7 +23940,7 @@ - + @@ -23951,119 +23949,119 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - - + + + + - + @@ -24075,7 +24073,7 @@ - + @@ -24084,7 +24082,7 @@ - + @@ -24102,43 +24100,43 @@ - + - + - + - + - + - + - + - + - + - - + + - + @@ -24162,10 +24160,10 @@ - + - + @@ -24189,13 +24187,13 @@ - + - + @@ -24204,7 +24202,7 @@ - + @@ -24216,7 +24214,7 @@ - + @@ -24231,29 +24229,29 @@ - + - + - + - + - + - + - + @@ -24262,7 +24260,7 @@ - + @@ -24275,7 +24273,7 @@ - + @@ -24292,24 +24290,24 @@ - + - + - + - + - + - + @@ -24318,13 +24316,13 @@ - + - + - + @@ -24339,10 +24337,10 @@ - + - + @@ -24354,24 +24352,24 @@ - + - + - + - + - + - + @@ -24380,34 +24378,34 @@ - + - + - + - + - + - + - + - + - + @@ -24463,67 +24461,67 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -24607,10 +24605,10 @@ - + - + @@ -24622,7 +24620,7 @@ - + @@ -24630,10 +24628,10 @@ - + - + @@ -24645,11 +24643,11 @@ - + - - + + @@ -24666,20 +24664,20 @@ - + - + - + - - - + + + - + @@ -24691,21 +24689,21 @@ - - + + - + - + - + @@ -24714,23 +24712,23 @@ - + - + - + - - - + + + @@ -24738,174 +24736,174 @@ - + - - + + - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + - - - - - - + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + - - - - - - - + + + + + + + - + + @@ -24928,7 +24926,7 @@ - + @@ -24937,323 +24935,323 @@ - + - - - + + + - - + + - - - - - - - + + - - + + + + + + + - - - + + + - - - - - + - - - + + + + + + + - - - - - - - - + - + + + + - - + + + + + + - - - - - - - + + - - - + + - - + + + - - - + + + - - + - - + + + + + + + + - + - - + + - - - - - - - + + - - - + + + + + + + + - - - - - - - - + + + + - - - + - - - + + + - + + + + + + + - - + + - - + + - - + + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + + + + + + - - - + + - - - + + + - + + + - - + + + + + + - - + + - + - + - + - + - + - + - + - + - + @@ -25263,7 +25261,7 @@ - + @@ -25281,46 +25279,46 @@ - - - + + + - - - + + + - - + + - + - + - + - - - + + + - + - + @@ -25330,56 +25328,56 @@ - - + + - + - - + + - - - - - - - + + + + + + + - - + + - + - - + + - + - + - - + + - + - + @@ -25387,21 +25385,21 @@ - + - + - + - + - + - + @@ -25410,7 +25408,7 @@ - + @@ -25428,29 +25426,29 @@ - + - + - + - + - + - + - + - + @@ -25462,7 +25460,7 @@ - + @@ -25486,7 +25484,7 @@ - + @@ -25518,31 +25516,31 @@ - + - + - + - + - + - + - + - + @@ -25554,12 +25552,12 @@ - + - + - + @@ -25570,21 +25568,21 @@ - - + + - + - + - + - + - + @@ -25599,21 +25597,21 @@ - + - + - + - + - + @@ -25625,10 +25623,10 @@ - + - + @@ -25643,87 +25641,87 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -25750,10 +25748,10 @@ - + - + @@ -25764,22 +25762,22 @@ - + - + - + - + - + @@ -25790,9 +25788,9 @@ - + - + @@ -25801,24 +25799,24 @@ - + - + - + - + - + - + - + @@ -25826,15 +25824,15 @@ - + - + - + @@ -25843,10 +25841,10 @@ - + - + @@ -25864,7 +25862,7 @@ - + @@ -25882,24 +25880,24 @@ - + - + - + - + - + @@ -25910,24 +25908,24 @@ - + - + - + - + - + - + @@ -25938,7 +25936,7 @@ - + @@ -25947,7 +25945,7 @@ - + @@ -25962,25 +25960,25 @@ - + - + - + - + - + @@ -25995,40 +25993,40 @@ - + - + - + - + - + - + - + - + - + - + @@ -26043,7 +26041,7 @@ - + @@ -26061,10 +26059,10 @@ - + - + @@ -26076,49 +26074,49 @@ - + - + - + - + - + - + - + - + - + - + @@ -26130,7 +26128,7 @@ - + @@ -26139,22 +26137,22 @@ - - + + - + - - + + - + - + @@ -26165,7 +26163,7 @@ - + @@ -26182,7 +26180,7 @@ - + @@ -26207,7 +26205,7 @@ - + @@ -26324,7 +26322,7 @@ - + @@ -26333,13 +26331,13 @@ - + - + - + @@ -26347,9 +26345,9 @@ - + - + @@ -26364,7 +26362,7 @@ - + @@ -26373,7 +26371,7 @@ - + @@ -26388,23 +26386,23 @@ - + - + - + - + - + @@ -26414,9 +26412,9 @@ - + - + @@ -26424,15 +26422,15 @@ - + - + - + - + @@ -26443,10 +26441,10 @@ - + - + @@ -26472,13 +26470,13 @@ - + - + - + @@ -26492,7 +26490,7 @@ - + @@ -26500,10 +26498,10 @@ - + - + @@ -26520,18 +26518,18 @@ - + - + - + - + @@ -26542,7 +26540,7 @@ - + @@ -26550,16 +26548,16 @@ - - + + - + - + @@ -26571,7 +26569,7 @@ - + @@ -26580,7 +26578,7 @@ - + @@ -26592,19 +26590,19 @@ - + - + - + - + - + @@ -26613,20 +26611,20 @@ - + - + - + - + - + @@ -26635,24 +26633,24 @@ - + - + - - + + - + - + @@ -26681,15 +26679,15 @@ - + - + - + @@ -26718,7 +26716,7 @@ - + @@ -26726,7 +26724,7 @@ - + @@ -26734,7 +26732,7 @@ - + @@ -26742,7 +26740,7 @@ - + @@ -26750,15 +26748,15 @@ - + - + - + @@ -26770,20 +26768,20 @@ - + - + - + - + - + - + @@ -26795,9 +26793,9 @@ - + - + @@ -26809,37 +26807,37 @@ - - + + - + - + - + - + - + - + - + - + @@ -26848,8 +26846,8 @@ - - + + @@ -26860,18 +26858,18 @@ - + - + - + - + @@ -26883,10 +26881,10 @@ - + - + @@ -26901,231 +26899,231 @@ - + - + - + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - + + - + - - + + - + - + - + - + - + - + - + - + - - - - - + - - + - - + + + - + - - - + + - + - + + - - + + + + + + - - - - - + - - + - - + + - - - + + - - + + + - + + - - + - + + + + + + - + @@ -27140,33 +27138,33 @@ - - + + - + - + - + - + - + - - + + @@ -27179,18 +27177,15 @@ - - - - + - + - + - + @@ -27201,173 +27196,58 @@ - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + - + - + - + - + - + - + - + - + - - + + - - + + - + @@ -27381,29 +27261,29 @@ - - + + - + - + - + - + @@ -27418,18 +27298,18 @@ - + - - + + - + - + @@ -27443,68 +27323,68 @@ - - + + - + - + - - + + - - + + - + - - + + - + - + - - + + - + - - + + - + - - + + - + @@ -27513,43 +27393,43 @@ - + - + - + - + - + - + - + - - - + + + - + @@ -27560,7 +27440,7 @@ - + @@ -27579,25 +27459,25 @@ - - + + - + - + - + - - + + @@ -27611,17 +27491,17 @@ - + - + - + - + @@ -27631,30 +27511,30 @@ - + - + - + - - - + + + - + - + @@ -27662,7 +27542,7 @@ - + @@ -27674,19 +27554,19 @@ - + - + - + - + - + @@ -27695,48 +27575,48 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -27749,127 +27629,127 @@ - + - + - + - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + - + - + - + - + - + - + - + - + - - - - + + + + - + - - - - + + + + - - - + + + - - - - + + + + - - - + + + - + - - + + - + - - + + - - - + + + - - + + - - + + @@ -27877,63 +27757,63 @@ - - + + - + - - + + - + - - + + - + - - + + - + - - + + - + - - + + - + - + - + - + - - + + - + @@ -27954,34 +27834,34 @@ - + - + - + - - - + + + - - + + - + - + - + - + @@ -27989,7 +27869,7 @@ - + @@ -28000,27 +27880,27 @@ - + - - + + - + - + - + - + @@ -28031,61 +27911,61 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -28093,7 +27973,7 @@ - + @@ -28101,26 +27981,26 @@ - - + + - + - + - + - + - + @@ -28133,7 +28013,7 @@ - + @@ -28144,7 +28024,7 @@ - + @@ -28155,7 +28035,7 @@ - + @@ -28163,18 +28043,18 @@ - + - + - + @@ -28183,68 +28063,95 @@ - - - - - - - + - + - + - - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - + - + - + - + - + - + - - - - + + + + - + - + - - + + @@ -28283,22 +28190,22 @@ - + - + - - + + - + @@ -28312,18 +28219,18 @@ - + - + - + @@ -28335,7 +28242,7 @@ - + @@ -28351,22 +28258,22 @@ - + - + - + - + - + @@ -28374,40 +28281,40 @@ - - + + - - - - + + + + - - - - + + + + - - + + - - + + - - - + + + - - - - + + + + @@ -28418,11 +28325,11 @@ - + - - + + @@ -28436,17 +28343,17 @@ - + - + - - - - + + + + @@ -28474,11 +28381,11 @@ - + - + @@ -28533,16 +28440,16 @@ - + - + - + - + @@ -28563,10 +28470,10 @@ - + - + @@ -28581,8 +28488,8 @@ - - + + @@ -28592,7 +28499,7 @@ - + @@ -28606,16 +28513,16 @@ - + - + - - + + @@ -28623,32 +28530,32 @@ - - + + - - - - - - - - + + + + + + + + - - - - - + + + + + - - - - - + + + + + @@ -28663,27 +28570,27 @@ - + - + - + - + - + - + - + - + @@ -28693,9 +28600,9 @@ - + - + @@ -28706,20 +28613,20 @@ - + - + - - + + - + @@ -28731,36 +28638,36 @@ - + - - + + - - + + - - + + - + - + - + @@ -28775,8 +28682,8 @@ - - + + @@ -28795,61 +28702,61 @@ - + - + - + - + - - - + + + - + - + - + - + - + - + - + - + - + - + @@ -28858,7 +28765,7 @@ - + @@ -28868,7 +28775,7 @@ - + @@ -28876,13 +28783,13 @@ - + - + @@ -28893,39 +28800,39 @@ - + - + - + - + - + - + - + - + - + - + - + @@ -28935,23 +28842,23 @@ - + - + - + - + - + - + @@ -28965,15 +28872,15 @@ - + - + - + @@ -28985,33 +28892,33 @@ - - - + + + + + + + + + + - - - - - - + + + + + - - - - - - - - - - - + + + + + - + - - + + @@ -29024,7 +28931,7 @@ - + @@ -29042,85 +28949,85 @@ - + - + - + - + - - - + + + - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - - - - - - - - - - - + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + @@ -29131,10 +29038,10 @@ - + - + @@ -29146,7 +29053,7 @@ - + @@ -29157,66 +29064,66 @@ - - - + + + - - + + - + - - + + - + - + - + - + - + - + - + - + - + - + - + @@ -29227,7 +29134,7 @@ - + @@ -29238,10 +29145,10 @@ - + - + @@ -29255,7 +29162,7 @@ - + @@ -29266,27 +29173,27 @@ - + - + - + - + - + - + - + @@ -29295,7 +29202,7 @@ - + @@ -29307,89 +29214,89 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - + + - + - - - - - + + + + + - - - - - - + + + + + + - + @@ -29398,188 +29305,188 @@ - - - - - - - - + + + + + + + + + + + + + + + + + - - - - - - + + + + + - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + - + - + - + - + - + - + - + - - + + - + - - + + - - + + - + - - + + - - + + - - + + - - - + + + - - + + - + - - - - + + + + - - + + - + - - - + + + - - + + - - + + - - - + + + - - - + + + - - - - + + + + - + - + - - - - - - - - + + + + + + + + - + @@ -29587,7 +29494,7 @@ - + @@ -29599,39 +29506,39 @@ - + - + - + - + - + - + - + - + - + - + - + @@ -29640,16 +29547,16 @@ - + - + - + - + @@ -29664,19 +29571,19 @@ - + - + - + - + - + @@ -29688,19 +29595,19 @@ - + - + - + - + @@ -29712,10 +29619,10 @@ - + - + @@ -29730,16 +29637,16 @@ - + - + - + - + @@ -29754,7 +29661,7 @@ - + @@ -29778,16 +29685,16 @@ - + - + - + @@ -29808,22 +29715,22 @@ - + - + - + - + - + - + @@ -29832,19 +29739,19 @@ - + - + - + - + - + @@ -29853,101 +29760,101 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -29960,7 +29867,7 @@ - + @@ -29973,62 +29880,62 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - + + @@ -30036,123 +29943,123 @@ - - + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -30182,19 +30089,19 @@ - + - + - + - + - + @@ -30203,10 +30110,10 @@ - + - + @@ -30220,54 +30127,54 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -30276,7 +30183,7 @@ - + @@ -30287,22 +30194,22 @@ - + - + - + - + - - + + @@ -30310,10 +30217,10 @@ - + - + @@ -30321,29 +30228,29 @@ - + - + - + - + - + - + - + - + @@ -30352,12 +30259,12 @@ - + - + - + @@ -30366,25 +30273,25 @@ - + - + - + - + - + - + - + @@ -30396,44 +30303,44 @@ - + - + - + - + - + - + - + - + - + - + - + @@ -30456,52 +30363,52 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -30524,31 +30431,31 @@ - + - + - + - + - + - + - + - + @@ -30566,20 +30473,20 @@ - + - + - + - - + + @@ -30587,34 +30494,34 @@ - + - + - + - + - + - + - + - + - + - + - + @@ -30643,20 +30550,20 @@ - + - + - + - + - + @@ -30665,18 +30572,18 @@ - + - + - + - + - + @@ -30685,10 +30592,10 @@ - + - + @@ -30696,7 +30603,7 @@ - + @@ -30704,54 +30611,54 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -30762,7 +30669,7 @@ - + @@ -30771,7 +30678,7 @@ - + @@ -30800,7 +30707,7 @@ - + @@ -30808,32 +30715,32 @@ - + - + - + - + - + - + - + - + @@ -30842,17 +30749,17 @@ - + - + - + - - + + @@ -30860,107 +30767,107 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -30975,7 +30882,7 @@ - + @@ -30996,7 +30903,7 @@ - + @@ -31014,7 +30921,7 @@ - + @@ -31065,34 +30972,34 @@ - + - + - + - + - + - + - + @@ -31101,14 +31008,14 @@ - + - - + + @@ -31116,13 +31023,13 @@ - + - + @@ -31130,535 +31037,535 @@ - - + + - + - + - + - + - + - + - + - + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - + + + + + + + + - - + + - - - + + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - - + + - - + + - - + + - - + + - + - - + + - - + + - - - + + + - - - + + + - + - - + + - - - - + + + + - - - + + + - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + - - - + + + + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - - + + - - + + - - + + - + - + - + - - - + + + - - + + - - + + - - - + + + - - + + - - + + - - + + - - + + - - + + - - - + + + - - - - + + + + - - + + - - + + - - + + - - + + - - - + + + - + - + - + - + - + - + - + - + - + - + - + - - - + + + - + - - + + - + - + @@ -31679,94 +31586,94 @@ - + - + - - + + - - + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - - + + + + - + @@ -31789,7 +31696,7 @@ - + @@ -31798,45 +31705,45 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -31851,49 +31758,49 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -31902,14 +31809,14 @@ - + - + - + - + @@ -31918,50 +31825,50 @@ - + - + - + - + - + - + - - + + - + - + - + - + - + @@ -31970,98 +31877,98 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -32073,15 +31980,15 @@ - + - + - + - + @@ -32093,7 +32000,7 @@ - + @@ -32101,29 +32008,29 @@ - + - + - + - + - + - + - + - + @@ -32132,156 +32039,156 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - + - - + + - - + + - - - + + + - - + + - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - + + - - - + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - + + - - + + - - + + - - - - + + + + - + - + - + @@ -32295,7 +32202,7 @@ - + @@ -32307,9 +32214,9 @@ - + - + @@ -32321,43 +32228,43 @@ - + - - + + - + - + - + - + - + - + - + @@ -32367,29 +32274,29 @@ - - + + - + - + - + - + @@ -32398,147 +32305,147 @@ - + - + - + - + - - + + - - + + - + - + - + - + - + - - + + - + - - + + - + - + - + - + - + - - + + - - + + - + - - + + - + - + - + - + - + - - + + - - + + @@ -32547,26 +32454,18 @@ - - - + + + - - - - - - - - - - - + + + @@ -32574,7 +32473,7 @@ - + @@ -32587,36 +32486,36 @@ - - - + + + - + - + - + - + - - + + - + @@ -32633,16 +32532,16 @@ - + - + - + - + @@ -32654,7 +32553,7 @@ - + @@ -32662,59 +32561,59 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -32726,16 +32625,16 @@ - - + + - + - + - + @@ -32746,199 +32645,199 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - - - - + + + + - + - + - + - + - + - + - + - + - + - + - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - + + - - + + - - + + - + - - + + - - + + + + + + + + + + + + - - - - + - - - - - + + + - - - - - - - + + - - + + - - - + + + - - + + - - - + + + - - + + - - - - - - + + - - + + + + + + @@ -32951,165 +32850,166 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - - + + - - - - + + + + + - - + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -33162,25 +33062,31 @@ + + + + + + - - + + - - - - - - - - + + - + - + + + + + + + @@ -33249,7 +33155,7 @@ - + @@ -33291,55 +33197,55 @@ - - + + - + - - - - - + + - + - + - + - - + + - - + + - + - + - + - + + + + - + - + @@ -33348,43 +33254,43 @@ - + - + - + - + - + - + - + - + - + - + @@ -33393,63 +33299,63 @@ - + - + - + - + - + - + - + - + - + - + - + - + - - + + - + - + - + - + - + @@ -33457,46 +33363,46 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -33516,37 +33422,37 @@ - + - + - + - + - + - + - + - + - - + + - + @@ -33554,98 +33460,99 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - + + - - + + - - + + - + - - + + - - - + + + - - + + - - - + + + - - - + + + - - - - + + + + - + + + + + - - - - - - + + @@ -33653,110 +33560,110 @@ - - - + + + - + - + - + - + - + - + - + - + - + - + - - - - - - - + + + + + + + - + - - + + - + - + - + - + - + - + - - + + - - + + - - + + - - - + + + - - - + + + @@ -33770,112 +33677,112 @@ - - + + - + - - + + - + - + - + - + - - - + + + - + - + - + - + - + - + - - - - - - - + + + + + + + - - + + - - - + + + - - - - + + + + - - + + - - + + - + - + - + - - - + + + - + - + @@ -33899,22 +33806,22 @@ - + - + - + - + @@ -33922,20 +33829,20 @@ - + - + - + - + - + - + @@ -33956,13 +33863,13 @@ - + - + - + @@ -33971,25 +33878,25 @@ - + - + - + - + - + - + @@ -33998,7 +33905,7 @@ - + @@ -34010,7 +33917,7 @@ - + @@ -34024,7 +33931,7 @@ - + @@ -34039,16 +33946,16 @@ - + - + - + @@ -34069,19 +33976,19 @@ - + - + - + - + @@ -34174,50 +34081,50 @@ - + - + - + - + - + - + - + - + - + - + - + - + @@ -34243,7 +34150,7 @@ - + @@ -34258,16 +34165,16 @@ - + - + - + - + @@ -34312,7 +34219,7 @@ - + @@ -34332,8 +34239,8 @@ - - + + @@ -34341,113 +34248,113 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -34461,12 +34368,12 @@ - + - + - + @@ -34475,26 +34382,26 @@ - + - + - + - + - + - + @@ -34503,193 +34410,193 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - + - + - + - + - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - + + - - - + + + - - + + - - - + + + - - - + + + - - + + - - + + - + - - - - - + + + + + - + - + - + - + @@ -34701,33 +34608,33 @@ - + - + - + - + - + - + - + - + @@ -34742,7 +34649,7 @@ - + @@ -34750,7 +34657,7 @@ - + @@ -34758,16 +34665,16 @@ - + - + - + - + @@ -34803,24 +34710,24 @@ - + - + - + - + - + - + @@ -34829,120 +34736,120 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -34950,7 +34857,7 @@ - + @@ -34959,14 +34866,14 @@ - + - + @@ -34989,21 +34896,21 @@ - + - + - + - + - + - + @@ -35039,16 +34946,16 @@ - + - + - + - + @@ -35057,7 +34964,7 @@ - + @@ -35072,31 +34979,31 @@ - + - + - + - + - - + + - + @@ -35105,16 +35012,16 @@ - + - + - + @@ -35132,83 +35039,83 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -35217,63 +35124,63 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -35282,19 +35189,19 @@ - + - + - + - + @@ -35303,278 +35210,278 @@ - + - + - + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - + - + - + - + - + - + - - + + - - - - + + + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - - + + + - - - - + + + + - - - + + + - - + + - - + + - - + + - - + + - - - + + + - - + + - - + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + @@ -35584,83 +35491,83 @@ - + - - + + - - + + - + - + - + - + - - - - + + + + - - + + - - - - + + + + - + - + - + - + - + - + - + - + - + - + - + - + @@ -35672,10 +35579,10 @@ - + - + @@ -35708,16 +35615,16 @@ - + - + - + - + @@ -35726,129 +35633,129 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -35860,7 +35767,7 @@ - + @@ -35874,10 +35781,10 @@ - + - + @@ -35885,12 +35792,12 @@ - + - + - + @@ -35902,125 +35809,125 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - + - + - + - - + + - - - + + + - - - + + + - - + + - - - + + + - - + + - - + + - + - - + + - + - - - + + + - - + + - - + + - - + + - + - + - + - + @@ -36029,7 +35936,7 @@ - + @@ -36047,12 +35954,12 @@ - + - + - + @@ -36061,115 +35968,115 @@ - + - + - + - + - + - + - + - + - - - - - - + + + + + + - + - + - + - + - - - + + + - - + + - - + + - - + + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -36190,10 +36097,10 @@ - + - + @@ -36202,7 +36109,7 @@ - + @@ -36214,21 +36121,21 @@ - + - + - + - + - + - + @@ -36240,10 +36147,10 @@ - + - + @@ -36252,19 +36159,19 @@ - + - + - + - + - + @@ -36276,30 +36183,30 @@ - + - + - + - + - + - + @@ -36308,12 +36215,12 @@ - + - + - + @@ -36331,56 +36238,56 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -36389,22 +36296,22 @@ - + - + - + - + - + @@ -36413,7 +36320,7 @@ - + @@ -36443,16 +36350,16 @@ - + - + - + - + @@ -36473,7 +36380,7 @@ - + @@ -36482,21 +36389,21 @@ - + - + - + - + - + @@ -36517,204 +36424,204 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - - + + + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -36749,10 +36656,10 @@ - + - + @@ -36778,28 +36685,28 @@ - + - + - + - + - + - + @@ -36808,7 +36715,7 @@ - + @@ -36825,15 +36732,15 @@ - + - + - + - + @@ -36847,413 +36754,413 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - + - - + + - + - + - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - + + - - + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - + + + - - + + - - + + - - - + + + - - + + - - + + - - + + - - + + - + - + - + - + - + @@ -37262,7 +37169,7 @@ - + @@ -37271,70 +37178,70 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -37342,58 +37249,58 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -37408,16 +37315,16 @@ - + - + - + - + @@ -37426,13 +37333,13 @@ - + - + - + @@ -37441,10 +37348,10 @@ - + - + @@ -37459,7 +37366,7 @@ - + @@ -37471,43 +37378,43 @@ - + - + - + - + - + - + - + - + - + - + - + @@ -37518,10 +37425,10 @@ - + - + @@ -37538,36 +37445,36 @@ - + - + - + - + - + - + - + - + - + @@ -37578,7 +37485,7 @@ - + @@ -37613,33 +37520,33 @@ - + - + - + - + - + - + - + - + - + @@ -37648,91 +37555,91 @@ - + - - - + + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -37741,16 +37648,16 @@ - + - + - + - + @@ -37759,16 +37666,16 @@ - + - + - + - + @@ -37780,36 +37687,36 @@ - + - + - + - + - + - + - + - + - + @@ -37818,7 +37725,7 @@ - + @@ -37827,7 +37734,7 @@ - + @@ -37841,34 +37748,34 @@ - + - + - + - + - + - + - + - + - + @@ -37886,85 +37793,85 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - + + @@ -37975,13 +37882,13 @@ - - + + - + - + @@ -37991,46 +37898,46 @@ - + - + - + - + - + - + - + - + - + - + - + - - + + @@ -38041,55 +37948,55 @@ - - - + + + - + - + - + - + - + - + - + - + - + - + - + - + @@ -38097,15 +38004,15 @@ - + - + - + - + @@ -38126,10 +38033,10 @@ - + - + @@ -38143,9 +38050,9 @@ - + - + @@ -38154,10 +38061,10 @@ - + - + @@ -38178,7 +38085,7 @@ - + @@ -38190,39 +38097,39 @@ - + - + - + - + - + - + - + - + - + @@ -38230,116 +38137,116 @@ - + - + - + - + - + - + - + - + - + - + - + - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + @@ -38350,297 +38257,297 @@ - + - - + + - - - - + + + + - + - + - + - - - - + + + + - + - + - - - + + + - + - + - - - + + + - + - - - + + + - + - + - - + + + + + + + + + + - - - - - - - - - + - + - - - + + + - + - - - - + + + + - + - - - + + + - + - + - - - + + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - + + + + + + + + + + + + + + + - - - - + + - - + + - - - - + + - - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - + + + + - - + + - - - + + + - - + + - - + + - - + + - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - - + + + - - - - + + + + - - + + - - + + - - + + - + - + - - + + - - + + @@ -38651,7 +38558,7 @@ - + @@ -38660,36 +38567,36 @@ - + - + - + - + - + - + - + - - + + - + - + @@ -38701,7 +38608,7 @@ - + @@ -38716,10 +38623,10 @@ - + - + @@ -38730,13 +38637,13 @@ - + - + - + @@ -38745,37 +38652,37 @@ - + - + - + - + - + - + - + - + - + - + - + @@ -38787,121 +38694,121 @@ - + - + - + - + - + - + - + - + - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + - + - + - + - + - + - + - + - + - + - + - - + + - - + + - + - - + + - - - + + + - - + + - + @@ -38913,7 +38820,7 @@ - + @@ -38921,232 +38828,232 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - - - - + + + + + + - + - + - - + + - - + + - - - + + + - - + + - - + + - - + + - + - + - + - + - + - + - - + + - + - + - + - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + - + - - + + - - + + - + - + - + - + - + - + - + - + - + @@ -39170,82 +39077,82 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -39254,13 +39161,13 @@ - + - + - + @@ -39284,7 +39191,7 @@ - + @@ -39308,49 +39215,49 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -39358,28 +39265,28 @@ - + - + - + - + - + - + @@ -39388,22 +39295,22 @@ - + - + - + - + @@ -39412,7 +39319,7 @@ - + @@ -39427,7 +39334,7 @@ - + @@ -39445,57 +39352,57 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -39510,13 +39417,13 @@ - + - + @@ -39558,10 +39465,10 @@ - + - + @@ -39573,184 +39480,184 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -39771,35 +39678,35 @@ - + - + - + - + - + - + - + - + - + - + @@ -39811,62 +39718,62 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -39887,87 +39794,87 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -39976,40 +39883,40 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -40026,19 +39933,19 @@ - + - + - + - + - + @@ -40081,7 +39988,7 @@ - + @@ -40089,7 +39996,7 @@ - + @@ -40179,7 +40086,7 @@ - + @@ -40191,13 +40098,13 @@ - + - + @@ -40206,42 +40113,42 @@ - + - + - + - + - + - + - + - + - + - + - + - + @@ -40253,7 +40160,7 @@ - + @@ -40268,9 +40175,9 @@ - + - + @@ -40279,61 +40186,61 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -40342,16 +40249,16 @@ - + - + - + - + @@ -40366,10 +40273,10 @@ - + - + @@ -40378,22 +40285,22 @@ - + - + - + - + - + - + @@ -40405,7 +40312,7 @@ - + @@ -40420,12 +40327,12 @@ - + - + - + @@ -40434,16 +40341,16 @@ - + - + - + - + @@ -40452,140 +40359,140 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -40597,50 +40504,50 @@ - + - + - + - + - + - + - + - - + + - + - + - + - + @@ -40655,7 +40562,7 @@ - + @@ -40669,12 +40576,12 @@ - + - + - + @@ -40683,17 +40590,17 @@ - + - + - - - + + + @@ -40710,109 +40617,109 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -40851,22 +40758,22 @@ - + - + - + - + - + - + @@ -40881,68 +40788,68 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -40956,7 +40863,7 @@ - + @@ -40968,23 +40875,23 @@ - + - + - + - + - + - + @@ -40993,21 +40900,21 @@ - + - + - + - + - + @@ -41027,7 +40934,7 @@ - + @@ -41041,52 +40948,52 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -41104,13 +41011,13 @@ - + - + @@ -41136,16 +41043,16 @@ - + - + - + - + @@ -41196,10 +41103,10 @@ - + - + @@ -41210,7 +41117,7 @@ - + @@ -41230,13 +41137,13 @@ - + - + - + @@ -41251,30 +41158,30 @@ - + - + - + - + - + - + - + - + - + @@ -41304,28 +41211,28 @@ - + - + - + - + - + - + - + - + @@ -41340,7 +41247,7 @@ - + @@ -41366,7 +41273,7 @@ - + @@ -41410,9 +41317,9 @@ - + - + @@ -41439,13 +41346,13 @@ - + - + - + @@ -41453,90 +41360,90 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -41556,7 +41463,7 @@ - + @@ -41576,7 +41483,7 @@ - + @@ -41602,38 +41509,38 @@ - + - + - + - + - + - + - + - + - + - + - + @@ -41647,7 +41554,7 @@ - + @@ -41655,35 +41562,35 @@ - + - + - + - + - + - + - + - + @@ -41694,7 +41601,7 @@ - + @@ -41703,7 +41610,7 @@ - + @@ -41724,19 +41631,19 @@ - + - + - + - + @@ -41745,24 +41652,24 @@ - + - + - + - + - + - + @@ -41770,10 +41677,10 @@ - + - + @@ -41781,77 +41688,77 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -41869,27 +41776,27 @@ - + - + - + - + - + - + - + @@ -41901,51 +41808,51 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -41959,116 +41866,116 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -42092,7 +41999,7 @@ - + @@ -42103,7 +42010,7 @@ - + @@ -42117,37 +42024,37 @@ - - + + - + - + - + - + - + - + - + - + - + - + @@ -42185,43 +42092,43 @@ - + - + - + - + - + - + - + - + - + @@ -42230,7 +42137,7 @@ - + @@ -42242,121 +42149,121 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -42364,46 +42271,46 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -42411,934 +42318,934 @@ - + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - + + + - + - + - - - + + + - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + + + - - - - - - - - - - + + + + + + + - - + + + - - - + + + + + + + + - - - - + + + - - + + + - - - - - - - - - - - - - - - - - - - - - - - - + + + + - - - + + - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + - + + + - + - - - - + + - - + + + - - - - + + + + - - - + + - - - + + + + - + + + + + - - - + + + + + - + + + + + + + - - + + + + + - - - + + + + + + - - - - + + + + + - - + + + - - - - + + + - - - + - + - - - - - + + + + + + - - - - - - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + + + + - - - + + - - + + - - - + + + + - - - - - - + + + - - + + - + + - - - - + - - - - - - - - - - - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - + + - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + + - - + + + + - - - - + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + + + + + + + + + + - + + - + + - - - + - - + - + + - + + + - - + + + - + + - - + - - + - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + - - + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - + + - - + + - - + + - - + + - - - + + + - + - - + + - + - + - + - - + + - - + + @@ -43346,10 +43253,10 @@ - + - + @@ -43358,15 +43265,62 @@ - + - + - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -43381,50 +43335,50 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -43433,24 +43387,24 @@ - + - + - + - + - + - + - + @@ -43459,7 +43413,7 @@ - + @@ -43467,47 +43421,47 @@ - + - + - + - + - + - + - + - + - + - + - + - + @@ -43530,28 +43484,28 @@ - + - + - + - + - + - + @@ -43566,13 +43520,13 @@ - + - + @@ -43584,27 +43538,27 @@ - + - + - - + + - + - + - + - + - + @@ -43622,89 +43576,89 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -43716,24 +43670,24 @@ - + - + - + - + - + - + @@ -43754,238 +43708,239 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + - - + + - - + + - - + + - - - + + + - + - - + + - - + + - - - + + + - - - - - + + + + + - - + + - - + + - + - - - - - + + + + + - - + + - - - + + + - - + + - - + + - - + + - - + + - - + + - - + + - - - + + + - + - + - + - + - - - + + + - + - + - + - + - + - + - + - + @@ -43996,7 +43951,7 @@ - + @@ -44005,13 +43960,13 @@ - + - + - + @@ -44026,21 +43981,21 @@ - + - + - + - + @@ -44049,36 +44004,36 @@ - + - + - + - + - + - + - + - + - + @@ -44089,10 +44044,10 @@ - + - + @@ -44107,7 +44062,7 @@ - + @@ -44116,83 +44071,83 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -44201,21 +44156,21 @@ - + - + - + - + - + - + @@ -44226,283 +44181,283 @@ - + - + - + - + - + - + - + - - + + - + - + - + - + - + - + - + - + - + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - - + + + - - + + - + - - - + + + - - - + + + - - - + + + - - + + - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + + - - - + + + + - - - + + + - - + + + + - - - - + + - + - - + + - - + - - + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - + + - - + + - + - - + + - - + + - + - - + + - - + + - + - - + + - - + + - - + + - + @@ -44516,12 +44471,12 @@ - + - + @@ -44534,135 +44489,135 @@ - - + + - - + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -44686,37 +44641,45 @@ - + - + - + - + - + - + - + - + + + + + + + + + @@ -44739,21 +44702,21 @@ - + - + - + - + @@ -44761,246 +44724,246 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + - + - + - + - - - + + + - + - - - - + + + + - - - - - + + + + + - - + + - + - - + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + - - + + - - - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - + + - + - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - + + - - + + - - + + - - - - - + + + + + - - + + - - - + + + - - - + + + - - + + - + - + - + - + - + - - + + - - + + @@ -45009,16 +44972,16 @@ - + - + - + - + @@ -45027,13 +44990,13 @@ - + - + @@ -45045,67 +45008,67 @@ - + - + - + - + - + - + - + - - - + + + - + - + - + - + - + - + - + @@ -45115,100 +45078,73 @@ - - - - - + + + + + - - + + - + - + - + - + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + - - - - - + + + + + - + - + - + @@ -45217,388 +45153,388 @@ - - + + - + - + - + - + - + - + - - + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - + + - - + + - - + + - + - + - + - + - + - + - + - + - + @@ -45613,7 +45549,7 @@ - + @@ -45634,7 +45570,7 @@ - + @@ -45652,7 +45588,7 @@ - + @@ -45703,34 +45639,34 @@ - + - + - + - + - + - + - + @@ -45739,18 +45675,18 @@ - + - + - + - + @@ -45763,7 +45699,7 @@ - + @@ -45774,7 +45710,7 @@ - + @@ -45785,7 +45721,7 @@ - + @@ -45793,18 +45729,18 @@ - + - + - + @@ -45813,15 +45749,15 @@ - + - + - + @@ -45832,7 +45768,7 @@ - + @@ -45841,85 +45777,112 @@ - - + + - + - - - - - + + + + + - - + + - + - - - + + + - - - + + + - + - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - + + + + + - - + + - + - - + + - + @@ -45937,20 +45900,20 @@ - + - + - + - + - - + + @@ -45959,46 +45922,46 @@ - + - + - + - - + + - + - + - - + + - + - - - + + + - + @@ -46010,37 +45973,37 @@ - + - - - + + + - + - + - + - - + + @@ -46048,83 +46011,83 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -46132,15 +46095,15 @@ - - - + + + - + @@ -46148,76 +46111,76 @@ - + - + - - + + - + - + - + - + - + - + - - + + - - + + - - + + - + - + - + - - + + @@ -46228,52 +46191,52 @@ - + - + - + - - - + + + - - + + - + - - + + - + - - + + - + - + @@ -46287,16 +46250,16 @@ - + - + - + - + @@ -46305,19 +46268,19 @@ - + - + - + @@ -46325,7 +46288,7 @@ - + @@ -46333,41 +46296,41 @@ - + - + - - - - + + + + - + - + - + - + - + - + - + @@ -46376,78 +46339,78 @@ - + - + - + - + - + - + - + - + - + - + - - + + - + - - + + - - + + - - + + - - - + + + - - + + @@ -46458,33 +46421,33 @@ - + - - - + + + - + - + - + - + - + @@ -46495,10 +46458,10 @@ - + - + @@ -46507,58 +46470,58 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -46639,31 +46602,31 @@ - + - + - + - + - + - + - + @@ -46675,7 +46638,7 @@ - + @@ -46685,9 +46648,9 @@ - + - + @@ -46708,12 +46671,12 @@ - + - + - + @@ -46722,10 +46685,10 @@ - + - + @@ -46746,16 +46709,16 @@ - + - + - + - + @@ -46770,20 +46733,20 @@ - + - + - + - + - + - + @@ -46792,10 +46755,10 @@ - + - + @@ -46807,7 +46770,7 @@ - + @@ -46821,7 +46784,7 @@ - + @@ -46833,7 +46796,7 @@ - + @@ -46847,10 +46810,10 @@ - + - + @@ -46858,13 +46821,13 @@ - + - + - + @@ -46872,7 +46835,7 @@ - + @@ -46887,13 +46850,13 @@ - + - + - + @@ -46908,27 +46871,27 @@ - + - + - + - + - + - + - + - + @@ -46936,13 +46899,13 @@ - + - + @@ -46953,10 +46916,10 @@ - + - + @@ -46970,7 +46933,7 @@ - + @@ -46979,10 +46942,10 @@ - + - + @@ -46996,19 +46959,19 @@ - + - + - + - + - + @@ -47025,7 +46988,7 @@ - + @@ -47036,30 +46999,30 @@ - + - + - + - + - + - + - + @@ -47067,7 +47030,7 @@ - + @@ -47085,7 +47048,7 @@ - + @@ -47111,24 +47074,24 @@ - + - + - + - + - + @@ -47155,33 +47118,33 @@ - + - + - + - + - + - + - + @@ -47210,31 +47173,31 @@ - + - + - + - + - + - + @@ -47242,7 +47205,7 @@ - + @@ -47256,57 +47219,57 @@ - - + + + + + + + + + + + + + - - - - - - - - - - - - - - - - + + + + + - - + + - + - - - - - - + + + + + + - + - + - + - + @@ -47315,13 +47278,13 @@ - + - + - + @@ -47330,19 +47293,19 @@ - + - + - + - + @@ -47387,48 +47350,48 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -47449,13 +47412,13 @@ - + - + - + @@ -47473,10 +47436,10 @@ - + - + @@ -47491,10 +47454,10 @@ - + - + @@ -47512,18 +47475,18 @@ - + - + - + - + @@ -47535,8 +47498,8 @@ - - + + @@ -47550,7 +47513,7 @@ - + @@ -47561,142 +47524,142 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -47705,97 +47668,97 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -47803,53 +47766,53 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -47858,48 +47821,48 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -47920,12 +47883,12 @@ - + - + - + @@ -47999,18 +47962,18 @@ - + - + - + - + @@ -48027,15 +47990,15 @@ - + - + - + - + @@ -48043,13 +48006,13 @@ - + - + @@ -48075,21 +48038,21 @@ - + - + - + - + @@ -48100,15 +48063,15 @@ - + - + - + - + @@ -48117,13 +48080,13 @@ - + - + @@ -48134,7 +48097,7 @@ - + @@ -48143,372 +48106,372 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - + + - - + + - - + + - - + + - + - + - - + + - - + + - - + + - + - + - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + - + + - - + - - + - + - - + + - + + + + + + - - + + - + + - - - + + + - - + + - - - - - - + + + - - - - - - - + + + + + + + + - - + + + + - - + + + + + + - - - + + + + - - - + - - - + + - - - - - + + - - - - - - + + - - - - + - + + - - - - - - - - - - - - - - - - - - - - - - - - - + - - + + - - + + - - + + - - + + - - - + + + - + - + + + + + + + + + + + + + + + + + - - - - - + - - - - - - - - - - - - - - + + - - - + + + - - - + + + - - - + + + - - + + - - + + @@ -48516,13 +48479,13 @@ - + - + @@ -48546,51 +48509,51 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -48598,10 +48561,10 @@ - + - + @@ -48625,7 +48588,7 @@ - + @@ -48643,7 +48606,7 @@ - + @@ -48663,15 +48626,15 @@ - + - + - + - + @@ -48680,36 +48643,36 @@ - + - + - + - + - + - + - + - + - + - + @@ -48721,7 +48684,7 @@ - + @@ -48729,59 +48692,59 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -48790,191 +48753,191 @@ - - - - - + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + - - + + - - + + - - + + - + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - + + - + - - - - - - - - - - - - - - - - - - - - - - - - - - + - - + + - - - + + + - - - - - + + + + + + + + + + + + + + + + + + + - - - - - - + - - - + + + - - - - - - - - - - - - + + + - - + + - + - + - + - + - + - + - + - + @@ -48985,37 +48948,37 @@ - + - + - + - + - + - + - + - + - + - + - + @@ -49030,64 +48993,64 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -49096,7 +49059,7 @@ - + @@ -49111,30 +49074,30 @@ - + - + - + - + - + - + - + - + @@ -49142,7 +49105,7 @@ - + @@ -49151,185 +49114,185 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -49346,15 +49309,15 @@ - + - + - + - + @@ -49363,27 +49326,27 @@ - + - + - + - + - + - + - + - + @@ -49394,10 +49357,10 @@ - + - + @@ -49406,30 +49369,30 @@ - + - + - + - + - + - + - + - + @@ -49441,7 +49404,7 @@ - + @@ -49450,117 +49413,117 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - + - + @@ -49569,104 +49532,104 @@ - + - + - + - - + + - - - - + + + + - - - - + + + + - - + + - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - + + + - - - - + + - - - - - + + - - - - + + + - - - - - + + - - - - - - - - - - - - - - - - - - - - - - - - + + - - + + @@ -49675,14 +49638,14 @@ - + - + @@ -49711,36 +49674,36 @@ - + - - + + - - + + - + - + - + - + - + - + @@ -49752,10 +49715,10 @@ - + - + @@ -49764,16 +49727,16 @@ - + - + - + - + @@ -49785,7 +49748,7 @@ - + @@ -49794,233 +49757,233 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - - - - - - - - - - - - + + + + + + + + + + + + + + - - + + - - + + - - - + + + - - - + + + - - - + + + - - - + + + - - + + - - + + - - + + - - + + - + - - + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -50037,10 +50000,10 @@ - + - + @@ -50064,7 +50027,7 @@ - + @@ -50076,31 +50039,31 @@ - + - + - + - + - + - + - + - + @@ -50127,28 +50090,28 @@ - + - + - + - + - + - + @@ -50159,30 +50122,30 @@ - + - + - + - + - + - + - + - + @@ -50191,40 +50154,40 @@ - + - + - + - + - + - + - + - + - + - + - + - + @@ -50235,32 +50198,32 @@ - + - + - + - + - + - + - + @@ -50269,13 +50232,13 @@ - + - + @@ -50284,47 +50247,47 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -50366,13 +50329,13 @@ - + - + - + @@ -50381,89 +50344,89 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -50471,9 +50434,9 @@ - + - + @@ -50482,25 +50445,25 @@ - + - + - + - + - + - + @@ -50509,9 +50472,9 @@ - + - + @@ -50523,27 +50486,27 @@ - + - + - + - + - + - + - + @@ -50554,220 +50517,220 @@ - + - + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - - + + - - + + - - + + - + - + - - - + + + - - - - + + + + - - - + + + - + - - + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + - - + + + - + + - - + + + - - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - + + - - - - - - + - - + + - - + + - - + + - - + + - + - + - + - + @@ -50776,28 +50739,28 @@ - + - + - + - + - + - + - + - + @@ -50812,7 +50775,7 @@ - + @@ -50821,7 +50784,7 @@ - + @@ -50830,10 +50793,10 @@ - + - + @@ -50845,17 +50808,17 @@ - + - + - + @@ -50863,15 +50826,15 @@ - + - + - + @@ -50883,12 +50846,12 @@ - + - + - + @@ -50900,131 +50863,131 @@ - - - - - - - - - - - + + + + + + + + + + + - - - + + + - + - - - + + + - - + + - - - + + + - - - + + + - - + + - - + + - - - + + + - + - - + + - + - + - + - + - + - + - + - + - + - - + + - + - + - + @@ -51035,7 +50998,7 @@ - + @@ -51047,7 +51010,7 @@ - + @@ -51061,10 +51024,10 @@ - + - + @@ -51072,34 +51035,34 @@ - + - + - + - + - + - + - - + + - + - + @@ -51107,21 +51070,21 @@ - + - + - + - + - + - + @@ -51141,7 +51104,7 @@ - + @@ -51161,7 +51124,7 @@ - + @@ -51178,9 +51141,9 @@ - + - + @@ -51189,318 +51152,318 @@ - + - - - + + + + + + - + - - + + - - - - + + + + + - + - - - - - - + + + + + - - - - - - - - - - - - - + + + + + + + + + + - + - - - + + + - - + + + - - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - + + - - + + - - + + - - + + + + + + - - + + - - - - - - + + - + - - - + + + - - + + - - - + + + - - - + + + - - + + - + - - - - + + + + - - - + + + - - + + - - - + + + - - - + + + - - + + - - + + - + - + - + - + - + - + - + - + - - - + + + - + - - + + - + - + - + - + - - + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -51508,30 +51471,30 @@ - + - + - + - + - + - + - + @@ -51546,55 +51509,55 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -51602,12 +51565,12 @@ - + - + - + @@ -51622,7 +51585,7 @@ - + @@ -51637,11 +51600,11 @@ - + - - + + @@ -51649,10 +51612,10 @@ - + - + @@ -51678,7 +51641,7 @@ - + @@ -51692,26 +51655,26 @@ - + - + - + - + - + - + @@ -51719,7 +51682,7 @@ - + @@ -51728,30 +51691,30 @@ - + - + - + - + - + - + - + - + @@ -51763,9 +51726,9 @@ - + - + @@ -51774,33 +51737,33 @@ - + - + - + - + - + - + - + - + - + @@ -51812,55 +51775,55 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -51872,80 +51835,80 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -51954,33 +51917,33 @@ - + - + - + - + - + - + - + - + - + @@ -51992,10 +51955,10 @@ - + - + @@ -52009,7 +51972,7 @@ - + @@ -52020,7 +51983,7 @@ - + @@ -52034,9 +51997,9 @@ - + - + @@ -52045,10 +52008,10 @@ - + - + @@ -52059,7 +52022,7 @@ - + @@ -52082,24 +52045,24 @@ - + - + - + - + - + - + - + @@ -52110,9 +52073,9 @@ - + - + @@ -52121,73 +52084,73 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -52196,88 +52159,88 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -52285,60 +52248,60 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -52347,26 +52310,26 @@ - + - + - + - + - + - + - + @@ -52375,7 +52338,7 @@ - + @@ -52387,10 +52350,10 @@ - + - + @@ -52402,25 +52365,25 @@ - + - + - + - + - + - + - + @@ -52441,10 +52404,10 @@ - + - + @@ -52453,24 +52416,24 @@ - + - + - + - + - + - + - + @@ -52479,39 +52442,39 @@ - + - + - + - + - + - + - + - + - + - + @@ -52526,22 +52489,22 @@ - + - + - + - + - + @@ -52553,28 +52516,28 @@ - + - + - + - + - + - + @@ -52586,33 +52549,33 @@ - + - + - + - + - + - + - + - + - + @@ -52621,7 +52584,7 @@ - + @@ -52633,44 +52596,44 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -52682,24 +52645,24 @@ - + - + - + - + - + - + @@ -52708,7 +52671,7 @@ - + @@ -52717,21 +52680,21 @@ - + - + - + - + - + - + @@ -52743,16 +52706,16 @@ - + - + - + @@ -52773,22 +52736,22 @@ - + - + - + - + - + @@ -52797,13 +52760,13 @@ - + - + - + @@ -52817,31 +52780,31 @@ - + - + - + - + - + - + - + - + @@ -52862,13 +52825,13 @@ - + - + - + @@ -52886,36 +52849,36 @@ - + - + - + - + - + - + - + - + - + - + - + @@ -52953,244 +52916,244 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + + + + + + + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + - + - + - + - + - + - + - + - + - - + + - + - - + + - - + + - - + + - - + + - - + + - + - + - + - + @@ -53198,21 +53161,21 @@ - + - + - - + + - + @@ -53220,231 +53183,231 @@ - - + + - + - + - + - + + + + + + + + + + + + + + + + + + + + + + + - + + + - - + + + - + + + - - - - - - - - - - - - - - - - - - - - - - - - + + + - - - - - - - - + + - - + + - - - + + + - - + + - - + + - - + + - - + + - - - + + + + + + + + + + + + + + + + + - + + - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - + - - - + + + - - + + - + - + - + - - + + - + - - + + - - + + - - - + + + - + - + - + - + - + - + - + - + - + - + @@ -53452,93 +53415,93 @@ - - - - + + + + - + - + - - + + - - + + - - + + - - + + - - - + + + - + - + - + - - + + - + - + - + - - + + - + - + - - + + - - + + - + @@ -53546,24 +53509,24 @@ - + - + - + - + - + - + - + @@ -53592,54 +53555,54 @@ - + - + - + - - + + - + - + - + - + - + - + - - + + - + - + - + @@ -53678,13 +53641,13 @@ - + - + @@ -53699,16 +53662,16 @@ - + - + - + - + @@ -53720,48 +53683,48 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -53770,10 +53733,10 @@ - + - + @@ -53782,42 +53745,42 @@ - + - + - + - + - + - + - + - + - + - + - + @@ -53826,25 +53789,25 @@ - + - + - + - + - + @@ -53856,7 +53819,7 @@ - + @@ -53865,125 +53828,125 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -53992,8 +53955,8 @@ - - + + @@ -54021,7 +53984,7 @@ - + @@ -54032,24 +53995,24 @@ - + - + - + - + - + - + @@ -54058,9 +54021,9 @@ - + - + @@ -54069,74 +54032,74 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -54145,203 +54108,203 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - + + - + - + @@ -54355,67 +54318,67 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -54423,9 +54386,9 @@ - + - + @@ -54434,33 +54397,33 @@ - + - + - + - + - + - + - + - + - + - + @@ -54469,257 +54432,257 @@ - + - + - + - + - + - + - + - + - + - + - + - + - - - - - - - + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - + + + + + + + + + + - - - - - + + + + + + + - + + - - - + + - - - - + + + - + + - - - + + - - + + - - + + + - - - + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - + + - + - + - + - + - - - + + + - + - - + + - - - + + + - - + + - - - - - + + + + + - - + + - - - - - - + + + + + + @@ -54729,144 +54692,144 @@ - - - + + + - - + + - - - - - - - - + + + - - - + + + + + + + + - - + + - - - + + + - + - - - + + + - + - + - - + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -54875,15 +54838,15 @@ - + - + - + - + @@ -54892,7 +54855,7 @@ - + @@ -54906,35 +54869,35 @@ - + - + - + - + - + - + - + - + - + @@ -54951,50 +54914,50 @@ - + - + - + - + - + - + - + - - + + - + - + - + - + - + @@ -55003,7 +54966,7 @@ - + @@ -55021,22 +54984,22 @@ - + - + - + - + - + - + @@ -55045,15 +55008,15 @@ - + - + - + - + @@ -55074,10 +55037,10 @@ - + - + @@ -55098,87 +55061,87 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -55187,29 +55150,29 @@ - + - + - + - + - + - + - + - - + + @@ -55218,354 +55181,354 @@ - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + - + - + - + - - - + + + - - + + - + - - + + - - - + + + - + - + - + - + - + - + - + - + - + - - - + + + - + - + - - + + - + - + - + - - - + + + - + - + - - + + - + - - + + - + - - - - + + + + - + - - - - + + + + - + - + - - + + - + - - - + + + - + - + - + - + - + - + - - - + + + - - + + - + - - - + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - + + + + + - - - + + + - - - + + + - - - - + + + + - - - - + + + + - - + + - - + + - - + + - - + + - + @@ -55582,11 +55545,11 @@ - + - - + + @@ -55595,110 +55558,110 @@ - - - + + + - + - + - + - + - + - + - + - + - + - + - + - + - - - - + + + + - - + + - + - + - - - + + + - - - + + + - - + + - + - + - + - + - + - + @@ -55706,188 +55669,188 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - + + - + - + - + - - + + - + - + - + - + - + - + - + - + - + - + - + - - + + - - + + - - + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -55899,34 +55862,34 @@ - + - + - + - + - + - + - + - + @@ -55941,19 +55904,19 @@ - + - + - + - + @@ -55962,7 +55925,7 @@ - + @@ -55971,16 +55934,16 @@ - + - + - + - + @@ -55992,16 +55955,16 @@ - + - + - + - + @@ -56010,16 +55973,16 @@ - + - + - + - + @@ -56028,25 +55991,25 @@ - + - + - + - + - + - + @@ -56055,19 +56018,19 @@ - + - + - + - + @@ -56079,72 +56042,72 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -56164,12 +56127,12 @@ - + - + - + @@ -56184,7 +56147,7 @@ - + @@ -56195,7 +56158,7 @@ - + @@ -56218,24 +56181,24 @@ - + - + - + - + - + - + @@ -56244,9 +56207,9 @@ - + - + @@ -56255,22 +56218,22 @@ - + - + - + - + - + @@ -56279,19 +56242,19 @@ - + - + - + - + @@ -56302,7 +56265,7 @@ - + @@ -56313,12 +56276,12 @@ - + - + @@ -56327,10 +56290,10 @@ - + - + @@ -56339,43 +56302,43 @@ - + - + - + - + - + - + - + - + - + @@ -56396,38 +56359,38 @@ - + - + - + - + - + - + - + - + - + - + - + @@ -56435,15 +56398,15 @@ - + - + - + - + @@ -56451,18 +56414,18 @@ - + - + - + - + @@ -56474,7 +56437,7 @@ - + @@ -56483,28 +56446,28 @@ - + - + - + - + - + - + - + - + @@ -56513,7 +56476,7 @@ - + @@ -56522,13 +56485,13 @@ - + - + - + @@ -56564,7 +56527,7 @@ - + @@ -56576,7 +56539,7 @@ - + @@ -56594,23 +56557,23 @@ - + - + - + - + - + - + @@ -56622,16 +56585,16 @@ - + - + - + @@ -56639,7 +56602,7 @@ - + @@ -56647,7 +56610,7 @@ - + @@ -56665,74 +56628,74 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -56759,7 +56722,7 @@ - + @@ -56768,13 +56731,13 @@ - + - + @@ -56788,15 +56751,15 @@ - + - + - + - + @@ -56805,10 +56768,10 @@ - + - + @@ -56819,15 +56782,15 @@ - + - + - + - + @@ -56842,43 +56805,43 @@ - + - + - + - + - + - + - + - + - + - + - + - + @@ -56887,67 +56850,67 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -56955,74 +56918,74 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -57030,16 +56993,16 @@ - + - + - + - + @@ -57048,39 +57011,39 @@ - + - + - + - + - + - + @@ -57088,24 +57051,24 @@ - + - + - + - + - + - + - + @@ -57117,7 +57080,7 @@ - + @@ -57128,7 +57091,7 @@ - + @@ -57136,57 +57099,57 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -57206,27 +57169,27 @@ - + - + - + - + - + - + @@ -57234,51 +57197,51 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -57286,354 +57249,354 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -57641,21 +57604,21 @@ - + - + - + - + - + - + @@ -57664,52 +57627,52 @@ - + - + - + - + - + - + - + - + - + - + - + @@ -57724,36 +57687,36 @@ - + - + - + - + - + - + - + - + - + - + - + @@ -57780,13 +57743,13 @@ - + - + @@ -57797,13 +57760,13 @@ - + - + @@ -57818,22 +57781,22 @@ - + - + - + - + - + @@ -57847,7 +57810,7 @@ - + @@ -57855,64 +57818,64 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -57927,58 +57890,58 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -57987,19 +57950,19 @@ - + - + - + - + - + @@ -58008,32 +57971,32 @@ - + - + - + - + - + - + - + - + - + @@ -58053,34 +58016,34 @@ - + - + - + - + - + - + - + - + - + - + @@ -58098,16 +58061,16 @@ - + - + - + @@ -58116,16 +58079,16 @@ - + - + - + - + @@ -58140,22 +58103,22 @@ - + - + - + - + - + - + @@ -58167,47 +58130,47 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -58215,7 +58178,7 @@ - + @@ -58232,10 +58195,10 @@ - + - + @@ -58273,7 +58236,7 @@ - + @@ -58293,13 +58256,13 @@ - + - + - + @@ -58308,27 +58271,27 @@ - + - + - + - + - + - + - + - + @@ -58337,34 +58300,34 @@ - + - + - + - + - + - + - + @@ -58373,57 +58336,57 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -58435,19 +58398,19 @@ - + - + - + - + @@ -58456,12 +58419,12 @@ - + - + - + @@ -58472,10 +58435,10 @@ - + - + @@ -58484,30 +58447,30 @@ - + - + - + - + - + - + - + - + - + @@ -58515,9 +58478,9 @@ - + - + @@ -58526,16 +58489,16 @@ - + - + - + @@ -58544,28 +58507,28 @@ - + - + - + - + - + - + - + @@ -58574,64 +58537,64 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -58640,85 +58603,85 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -58727,19 +58690,19 @@ - + - + - + - + - + @@ -58748,43 +58711,43 @@ - + - + - + - + - + - + - + - + - + - + @@ -58793,24 +58756,24 @@ - + - + - + - + - + - + @@ -58819,35 +58782,35 @@ - + - + - + - + - + - + - + - + - + - + - + @@ -58868,24 +58831,24 @@ - + - + - + - + - + - + @@ -58912,35 +58875,35 @@ - + - + - + - + - + - + - + - + - + @@ -58949,7 +58912,7 @@ - + @@ -58964,21 +58927,21 @@ - + - + - + - + - + - + @@ -58986,18 +58949,18 @@ - + - + - + - + @@ -59005,45 +58968,45 @@ - + - + - + - + - + - + - + - + - + - + - + @@ -59052,7 +59015,7 @@ - + @@ -59061,53 +59024,53 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -59119,61 +59082,61 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -59181,54 +59144,54 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -59260,7 +59223,7 @@ - + @@ -59277,934 +59240,934 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - + - + - + + + + + + + + + + + + + + + + + + + + + + + + + - + + - - + + + - - + + + - - + + + - - + + + - - + + + - - + + - - - + + + + - - + + - - - + + + + - - - + + + - - - + + + - - + + - - - - + + + - - + + - - - + + - - + + - - - - - - - - - - - - - - - - - - - - + + - - - - + + + + - - - + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + - - - - + + + + - - - - - + + + + - - - - - + + + + - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - + + + + + - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - + + + - - - + + + - + - + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + - - - + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - - + + - - - - + + + + - + - + - + - + @@ -60213,49 +60176,49 @@ - + - + - + - + - - + + - - + + - - - - + + + + - - - + + + - + - - + + - + @@ -60270,7 +60233,7 @@ - + @@ -60279,57 +60242,57 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -60338,36 +60301,36 @@ - + - + - + - + - + - - + + - - - + + + @@ -60383,47 +60346,47 @@ - + - + - + - + - + - + - + - + @@ -60439,9 +60402,9 @@ - + - + @@ -60449,7 +60412,7 @@ - + @@ -60481,75 +60444,81 @@ - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - + - - - - - - - + - + + + + + + + + + + + + + - + + + + + + + + + + + + + - + + + + + + + + + + + + + + + + + + + diff --git a/abi_gki_aarch64_0c3bbf2246b4.xml b/abi_gki_aarch64_c66e32e8.xml old mode 100644 new mode 100755 similarity index 88% rename from abi_gki_aarch64_0c3bbf2246b4.xml rename to abi_gki_aarch64_c66e32e8.xml index ec6cc64ea942..11eb749f81dc --- a/abi_gki_aarch64_0c3bbf2246b4.xml +++ b/abi_gki_aarch64_c66e32e8.xml @@ -2030,6 +2030,7 @@ + @@ -2421,6 +2422,7 @@ + @@ -2777,6 +2779,7 @@ + @@ -2870,6 +2873,8 @@ + + @@ -3910,6 +3915,8 @@ + + @@ -5726,6 +5733,7 @@ + @@ -5769,6 +5777,10 @@ + + + + @@ -6239,11 +6251,21 @@ + + + + + + + + + + @@ -6258,6 +6280,7 @@ + @@ -6485,6 +6508,8 @@ + + @@ -6623,6 +6648,8 @@ + + @@ -6637,6 +6664,9 @@ + + + @@ -6939,6 +6969,15 @@ + + + + + + + + + @@ -9021,7 +9060,6 @@ - @@ -9215,6 +9253,7 @@ + @@ -9961,6 +10000,8 @@ + + @@ -9994,7 +10035,6 @@ - @@ -10083,7 +10123,6 @@ - @@ -10340,6 +10379,10 @@ + + + + @@ -10358,6 +10401,8 @@ + + @@ -10401,7 +10446,7 @@ - + @@ -10607,13 +10652,14 @@ + - + @@ -10683,6 +10729,7 @@ + @@ -10893,7 +10940,7 @@ - + @@ -11090,61 +11137,61 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -11631,7 +11678,7 @@ - + @@ -11639,24 +11686,27 @@ - + + + + + + - + - - - + @@ -11868,6 +11918,14 @@ + + + + + + + + @@ -11888,26 +11946,18 @@ - + - + - + - + - - - - - - - - @@ -12165,7 +12215,7 @@ - + @@ -12917,9 +12967,9 @@ - + - + @@ -13028,7 +13078,7 @@ - + @@ -14168,7 +14218,7 @@ - + @@ -16513,8 +16563,8 @@ - - + + @@ -17535,13 +17585,13 @@ - + - + - + @@ -17640,7 +17690,7 @@ - + @@ -22167,12 +22217,11 @@ - - + - + @@ -22200,98 +22249,99 @@ - - + + - - + + - + - + - + - + - + - + - - + + - + - + - - + + - + - - + + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -22324,7 +22374,7 @@ - + @@ -22392,7 +22442,7 @@ - + @@ -22436,7 +22486,7 @@ - + @@ -22453,15 +22503,15 @@ - + + + + + - - - - @@ -22615,7 +22665,7 @@ - + @@ -22677,7 +22727,7 @@ - + @@ -22777,10 +22827,10 @@ - + - + @@ -22839,7 +22889,7 @@ - + @@ -22940,7 +22990,7 @@ - + @@ -22949,7 +22999,7 @@ - + @@ -22963,15 +23013,15 @@ - + - + - + @@ -23012,7 +23062,7 @@ - + @@ -23132,7 +23182,7 @@ - + @@ -23277,7 +23327,7 @@ - + @@ -24026,7 +24076,7 @@ - + @@ -24036,13 +24086,16 @@ + + + - + - + @@ -24054,7 +24107,7 @@ - + @@ -24067,68 +24120,68 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -24139,7 +24192,7 @@ - + @@ -24147,10 +24200,10 @@ - + - + @@ -24170,10 +24223,10 @@ - + - + @@ -24185,10 +24238,10 @@ - + - + @@ -24197,15 +24250,15 @@ - + - + - + @@ -24228,77 +24281,77 @@ - - + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -24310,7 +24363,7 @@ - + @@ -24343,10 +24396,10 @@ - + - + @@ -24361,7 +24414,7 @@ - + @@ -24370,13 +24423,13 @@ - + - + - + @@ -24384,56 +24437,53 @@ + + + + + + - - - - - - - + - + - + - - + + - + - + - + - - + + - + - + - + - - - - + - + @@ -24441,7 +24491,7 @@ - + @@ -24482,7 +24532,7 @@ - + @@ -24508,7 +24558,7 @@ - + @@ -24535,32 +24585,32 @@ - + - + - + - + - + - + - + @@ -24613,17 +24663,6 @@ - - - - - - - - - - - @@ -24662,276 +24701,273 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - - - + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -24957,13 +24993,13 @@ - + - + - + @@ -25082,7 +25118,7 @@ - + @@ -25412,7 +25448,7 @@ - + @@ -25668,10 +25704,10 @@ - + - + @@ -25724,7 +25760,7 @@ - + @@ -25773,7 +25809,7 @@ - + @@ -25820,7 +25856,7 @@ - + @@ -25984,10 +26020,10 @@ - + - + @@ -26002,7 +26038,7 @@ - + @@ -26017,10 +26053,10 @@ - + - + @@ -26029,7 +26065,7 @@ - + @@ -26062,7 +26098,7 @@ - + @@ -26640,16 +26676,16 @@ - + - + - + - + @@ -26657,16 +26693,16 @@ - + - + - + - + @@ -26677,121 +26713,121 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -26800,7 +26836,7 @@ - + @@ -26814,10 +26850,10 @@ - + - + @@ -26861,65 +26897,7 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + @@ -26945,13 +26923,13 @@ - + - + - + @@ -26965,7 +26943,7 @@ - + @@ -26973,10 +26951,10 @@ - + - + @@ -27001,7 +26979,7 @@ - + @@ -27015,7 +26993,7 @@ - + @@ -27023,16 +27001,16 @@ - - + + - + - + @@ -27044,7 +27022,7 @@ - + @@ -27053,7 +27031,7 @@ - + @@ -27065,19 +27043,19 @@ - + - + - + - + - + @@ -27086,20 +27064,20 @@ - + - + - + - + - + @@ -27108,18 +27086,18 @@ - + - + - - + + - + @@ -27127,71 +27105,71 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -27199,7 +27177,7 @@ - + @@ -27207,25 +27185,25 @@ - + - + - + - + - + - + - + @@ -27246,29 +27224,29 @@ - + - + - + - + - + - + - + - + @@ -27282,18 +27260,18 @@ - + - + - + - + @@ -27317,13 +27295,13 @@ - + - + - + @@ -27334,22 +27312,22 @@ - + - + - + - + - + @@ -27360,7 +27338,7 @@ - + @@ -27371,40 +27349,40 @@ - + - + - + - + - + - + - - + + - + - + - + - + @@ -27416,25 +27394,25 @@ - + - + - + - + - + @@ -27458,18 +27436,18 @@ - + - + - + @@ -27483,8 +27461,8 @@ - - + + @@ -27506,450 +27484,451 @@ - - - - + + + + - + - + - - - - + + + + - - - - + + + + - - - - - + + + + + - + - - - - - - - - + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - - + + + - - + + - + - - - + + + + + + + + + - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - + - + - - + + - - - + + + - - - + + + + - + - - - + + + - - + + - + - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - - + + + - + - + - + - + - + - + - - + + - - + + - - + + - - + + - - + + - + - + - + - + - + - + - + - - + + - - + + - - + + - - + + - - + + - - + + - + - - + + - - + + - - - + + + - + - + - + - + - + - + - + - + - + - + - + - + @@ -27957,47 +27936,47 @@ - + - + - + - + - + - + - + - + - + - - + + - + - + - + @@ -28012,17 +27991,17 @@ - + - + - + - + @@ -28032,15 +28011,15 @@ - + - + - + @@ -28050,66 +28029,66 @@ - + - + - - + + - - + + - + - - + + - + - + - + - - + + - + - + - + @@ -28120,137 +28099,137 @@ - + - + - + - + - - + + - - + + - - + + - + - + - + - + - + - + - + - + - + - + - + - - + + - + - + - + - + - + - - + + - + - + - + - + - + @@ -28260,42 +28239,42 @@ - + - + - + - + - + - + - - - + + + - + - + @@ -28307,7 +28286,7 @@ - + @@ -28323,6 +28302,64 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -28508,7 +28545,7 @@ - + @@ -28524,7 +28561,7 @@ - + @@ -28852,7 +28889,7 @@ - + @@ -28960,10 +28997,10 @@ - + - + @@ -28980,7 +29017,7 @@ - + @@ -29888,15 +29925,26 @@ - - + + + - + + + + + + + + + + + - + @@ -30018,7 +30066,7 @@ - + @@ -30054,7 +30102,7 @@ - + @@ -30068,7 +30116,7 @@ - + @@ -30076,19 +30124,19 @@ - + - + - + - + @@ -30120,7 +30168,7 @@ - + @@ -30156,15 +30204,15 @@ - + - + - + - + @@ -30182,7 +30230,7 @@ - + @@ -30205,7 +30253,7 @@ - + @@ -30216,10 +30264,10 @@ - + - + @@ -30237,15 +30285,15 @@ - + - + - + @@ -30260,26 +30308,815 @@ - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -30308,58 +31145,229 @@ - - + + - + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - - - - - - - - - - - - - + - - - + - + - + - + @@ -30369,7 +31377,7 @@ - + @@ -30380,29 +31388,23 @@ - - - - - - - + - + - + - + @@ -30564,9 +31566,9 @@ - - - + + + @@ -30598,42 +31600,42 @@ - + - + - - + + - + - - + + - + - + - + @@ -30643,7 +31645,7 @@ - + @@ -30663,22 +31665,22 @@ - - + + - - + + - + - + - + @@ -30687,15 +31689,15 @@ - + - - - + + + @@ -30705,30 +31707,30 @@ - + - + - - + + - + - + - + @@ -30742,11 +31744,11 @@ - - - - - + + + + + @@ -30764,7 +31766,7 @@ - + @@ -30785,7 +31787,7 @@ - + @@ -30847,20 +31849,20 @@ - + - + - + - + @@ -30957,8 +31959,8 @@ - - + + @@ -30999,711 +32001,8 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + @@ -31713,7 +32012,7 @@ - + @@ -31727,7 +32026,7 @@ - + @@ -31762,8 +32061,8 @@ - - + + @@ -31771,185 +32070,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -31958,7 +32078,7 @@ - + @@ -31969,10 +32089,10 @@ - + - + @@ -31987,16 +32107,16 @@ - + - + - + @@ -32010,18 +32130,18 @@ - + - - - - - - + + + + + + @@ -32034,62 +32154,62 @@ - - + + - - + + - + - + - + - - + + - - - + + + - - + + - - + + - - + + - - + + - + - + @@ -32100,9 +32220,9 @@ - + - + @@ -32111,7 +32231,7 @@ - + @@ -32120,7 +32240,7 @@ - + @@ -32138,7 +32258,7 @@ - + @@ -32147,7 +32267,7 @@ - + @@ -32155,9 +32275,9 @@ - + - + @@ -32172,7 +32292,7 @@ - + @@ -32196,7 +32316,7 @@ - + @@ -32237,7 +32357,7 @@ - + @@ -32246,10 +32366,10 @@ - + - + @@ -32264,23 +32384,23 @@ - + - + - + - + @@ -32288,21 +32408,21 @@ - + - - - - - - - - - - + + + + + + + + + + @@ -32336,20 +32456,20 @@ - + - + - + @@ -32369,24 +32489,24 @@ - + - + - + - + - + @@ -32417,17 +32537,17 @@ - + - + - + @@ -32487,7 +32607,7 @@ - + @@ -32657,9 +32777,9 @@ - - - + + + @@ -32678,7 +32798,7 @@ - + @@ -32705,7 +32825,7 @@ - + @@ -32736,7 +32856,7 @@ - + @@ -32746,7 +32866,7 @@ - + @@ -32755,7 +32875,7 @@ - + @@ -32767,19 +32887,19 @@ - + - + - + - + @@ -32787,42 +32907,33 @@ - + - + - - - - + - - - - - - - - - + + + - + - - + + - - + + - + @@ -32830,28 +32941,28 @@ - + - - + + - - + + - - + + - + @@ -32859,23 +32970,23 @@ - + - - + + - - + + - + @@ -32883,23 +32994,23 @@ - + - - + + - - + + - + @@ -32907,17 +33018,17 @@ - + - + - + @@ -32926,7 +33037,7 @@ - + @@ -32934,14 +33045,14 @@ - + - + - + @@ -32959,26 +33070,26 @@ - + - + - + - + - + @@ -32987,32 +33098,32 @@ - + - + - + - + - + - + - + @@ -33034,9 +33145,9 @@ - - - + + + @@ -33044,81 +33155,81 @@ - - + + - + - - + + - + - + - + - + - - + + - + - + - + - - - - + + + + - + - + - + - + - + - + - + - + @@ -33127,7 +33238,7 @@ - + @@ -33273,7 +33384,7 @@ - + @@ -33285,11 +33396,11 @@ - + - + - + @@ -33302,7 +33413,7 @@ - + @@ -33313,7 +33424,7 @@ - + @@ -33324,7 +33435,7 @@ - + @@ -33332,7 +33443,7 @@ - + @@ -33342,18 +33453,18 @@ - + - + - + @@ -33362,15 +33473,15 @@ - + - + - + @@ -33381,31 +33492,31 @@ - - - - - - - + + + + + + + - + - + - + - + - + @@ -33436,7 +33547,7 @@ - + @@ -33456,43 +33567,43 @@ - - - - - + + + + + - + - + - - + + - - + + - + - + - + - + @@ -33500,388 +33611,383 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - - - - + - + - + - + - + - - + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -33889,13 +33995,13 @@ - + - + - + @@ -33906,47 +34012,47 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -33955,7 +34061,7 @@ - + @@ -33966,15 +34072,15 @@ - + - + - + - + @@ -34082,10 +34188,10 @@ - + - + @@ -34094,53 +34200,53 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -34148,7 +34254,7 @@ - + @@ -34159,23 +34265,23 @@ - + - + - + - - - + + + @@ -34198,16 +34304,16 @@ - + - + - + - + @@ -34236,22 +34342,22 @@ - + - + - + - + - + @@ -34274,7 +34380,7 @@ - + @@ -34288,7 +34394,7 @@ - + @@ -34297,31 +34403,31 @@ - + - + - + - + - + - - + + - - + + @@ -34329,14 +34435,14 @@ - + - - + + @@ -34344,7 +34450,7 @@ - + @@ -34353,13 +34459,13 @@ - + - + - + @@ -34368,162 +34474,162 @@ - - - - - - - - - - - - - - - - - - - - + + + + + - - - - - - - - - - - - + + + + + + + + + + + + + + - - - - - - - + + + + + + + + + + + + + + + + - - + + + + + + - - - - - + + + + + - - + + - - + + - - + + - + - - - - + + + + - - + + - + - + - + - - - - - + + + + + - - - + + + - - - - + + + + - - - + + + - - + + - + - - - + + + - - + + - + - - + + - - - - - - - - - - - - + + - - + - + + + + + + + + + + + + @@ -34531,57 +34637,57 @@ - - + + - - + + - + - - + + - - + + - - - + + + - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + @@ -34605,158 +34711,158 @@ - - - - - + + + + + - - - - + + + + - - + + - - - + + + - - - + + + - - - + + + - - + + - - - + + + - + - + - + - - + + - - + + - - + + - + - + - + - + - + - + - + - - + + - - + + - + - + - - + + - + - + - - + + - + - + @@ -34764,15 +34870,15 @@ - + - + - + - + @@ -34783,60 +34889,60 @@ - - - - + + + + - + - + - - - + + + - + - + - - - + + + - + - + @@ -34851,7 +34957,7 @@ - + @@ -34861,33 +34967,33 @@ - + - + - + - + - - + + - + @@ -34895,7 +35001,7 @@ - + @@ -34903,41 +35009,41 @@ - - + + - + - + - + - + - + - - + + - - + + - - + + @@ -35006,32 +35112,32 @@ - + - + - - - - - - + + + + + + - - + + - - + + - + @@ -35043,44 +35149,44 @@ - + - + - - + + - + - + - + - + - + - + @@ -35097,70 +35203,70 @@ - - - - + + + + - + - + - + - - + + - + - + - + - + - + - + - + - - + + - - + + - - + + - + @@ -35171,224 +35277,224 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -35397,15 +35503,15 @@ - + - + - + @@ -35416,7 +35522,7 @@ - + @@ -35424,53 +35530,53 @@ - - + + - + - + - - + + - + - + - + - + - + - + - + - + - + @@ -35481,125 +35587,98 @@ - + - + - + - + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + - + - + - - - + + + - + - + - + - + - + - + - - - + + + - + - + - - - + + + - - - + + + @@ -35615,22 +35694,22 @@ - + - + - - + + - + - + @@ -35639,7 +35718,7 @@ - + @@ -35657,10 +35736,10 @@ - - - - + + + + @@ -35669,42 +35748,42 @@ - + - + - + - - + + - + - + - - - + + + - + - + - + - + @@ -35712,27 +35791,27 @@ - + - + - + - + - + - + @@ -35747,12 +35826,12 @@ - + - - - + + + @@ -35769,15 +35848,15 @@ - + - + - + @@ -35798,7 +35877,7 @@ - + @@ -35808,14 +35887,14 @@ - - - - - - - - + + + + + + + + @@ -35823,11 +35902,11 @@ - + - + @@ -35840,17 +35919,17 @@ - + - + - + @@ -35866,15 +35945,15 @@ - + - + - + @@ -35887,15 +35966,15 @@ - + - + - + @@ -35903,7 +35982,7 @@ - + @@ -35911,79 +35990,79 @@ - + - - + + - - + + - - + + - - + + - + - - + + - - - + + + - - - - + + + + - + - + - + - + - + - + - + - + @@ -36019,16 +36098,16 @@ - + - + - + - + @@ -36073,7 +36152,7 @@ - + @@ -36081,16 +36160,16 @@ - + - + - + - + @@ -36101,22 +36180,22 @@ - + - + - + - + - + @@ -36124,109 +36203,109 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -36234,7 +36313,7 @@ - + @@ -36249,16 +36328,16 @@ - + - + - + - + @@ -36273,42 +36352,42 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -36321,7 +36400,7 @@ - + @@ -36329,11 +36408,11 @@ - + - - + + @@ -36347,13 +36426,13 @@ - + - + - + @@ -36361,7 +36440,7 @@ - + @@ -36369,16 +36448,16 @@ - + - + - + - + @@ -36414,24 +36493,24 @@ - + - + - + - + - + - + @@ -36443,7 +36522,7 @@ - + @@ -36466,17 +36545,17 @@ - - + + - + - + @@ -36485,16 +36564,16 @@ - + - + - + @@ -36515,15 +36594,15 @@ - - - + + + - + @@ -36534,13 +36613,13 @@ - + - + - + @@ -36548,59 +36627,59 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + @@ -36617,164 +36696,164 @@ - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - + + + + + + + + - - - + + + - - + + + + + + + + + + + + + + - - - - + + + + - - + + + + + + + + + + + + + + + + + + + + + - - + + + + + + + + - + - + - - + + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - + - - + + - - - + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -36782,13 +36861,13 @@ - + - + @@ -36803,12 +36882,12 @@ - + - + @@ -36849,12 +36928,12 @@ - + - + @@ -36864,8 +36943,8 @@ - - + + @@ -36873,7 +36952,7 @@ - + @@ -36899,7 +36978,7 @@ - + @@ -36907,20 +36986,20 @@ - + - + - - + + @@ -36934,50 +37013,50 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -37003,7 +37082,7 @@ - + @@ -37011,31 +37090,31 @@ - + - + - + - + - - - - + + + + - + @@ -37055,53 +37134,53 @@ - + - + - + - + - + - + - + - + - + - - + + @@ -37112,84 +37191,84 @@ - - + + - - + + - + - + - + - + - + - + - + - - + + - + - + - + - + - - + + - + - - + + @@ -37198,7 +37277,7 @@ - + @@ -37217,7 +37296,7 @@ - + @@ -37235,24 +37314,24 @@ - - + + - + - + - + - - + + - + @@ -37260,25 +37339,25 @@ - + - + - + - + - + - + @@ -37286,48 +37365,48 @@ - - + + - + - - - + + + - + - + - + - - + + - - + + - + - + - + @@ -37339,101 +37418,101 @@ - + - + - + - + - + - + - + - - + + - + - + - + - + - + - + - - + + - + - - + + - + - + - + - + - + - + - + @@ -37451,14 +37530,14 @@ - + - - - + + + @@ -37466,9 +37545,9 @@ - - - + + + @@ -37489,8 +37568,8 @@ - - + + @@ -37503,7 +37582,7 @@ - + @@ -37512,14 +37591,14 @@ - + - + - + @@ -37547,7 +37626,7 @@ - + @@ -37567,7 +37646,7 @@ - + @@ -37599,7 +37678,7 @@ - + @@ -37615,12 +37694,12 @@ - + - + @@ -37811,7 +37890,7 @@ - + @@ -37836,28 +37915,28 @@ - + - + - + - - + + - - + + @@ -37868,9 +37947,9 @@ - + - + @@ -37878,7 +37957,7 @@ - + @@ -37891,7 +37970,7 @@ - + @@ -37899,25 +37978,25 @@ - + - + - - + + - + - + - - + + @@ -37925,8 +38004,8 @@ - - + + @@ -37934,7 +38013,7 @@ - + @@ -37942,7 +38021,7 @@ - + @@ -37950,25 +38029,25 @@ - - - - - - - - + + - - - - - - - - - - + + + + + + + + + + + + + + + + @@ -37987,19 +38066,19 @@ - - + + - - + + - - + + - + @@ -38017,7 +38096,7 @@ - + @@ -38026,17 +38105,17 @@ - + - + - + @@ -38051,7 +38130,7 @@ - + @@ -38064,11 +38143,11 @@ - + - + @@ -38078,28 +38157,28 @@ - + - - + + - - + + - - + + - - + + @@ -38146,7 +38225,7 @@ - + @@ -38220,7 +38299,7 @@ - + @@ -38238,15 +38317,15 @@ - - - - - + + + + + - - + + @@ -38259,11 +38338,11 @@ - + - + @@ -38275,48 +38354,48 @@ - + - + - - + + - + - + - + - + - - + + - + - + @@ -38333,17 +38412,17 @@ - + - + - + - + @@ -38361,7 +38440,7 @@ - + @@ -38376,36 +38455,36 @@ - + - + - + - + - + - + - + - + @@ -38416,14 +38495,14 @@ - - - - - - - - + + + + + + + + @@ -38437,11 +38516,11 @@ - + - + @@ -38455,16 +38534,16 @@ - + - + - + @@ -38481,18 +38560,18 @@ - + - + - - + + - + @@ -38511,28 +38590,28 @@ - - + + - - - + + + - - + + - - + + - + @@ -38546,23 +38625,23 @@ - + - + - + - + @@ -38588,18 +38667,18 @@ - + - + - + - + @@ -38614,9 +38693,9 @@ - + - + @@ -38628,33 +38707,33 @@ - - - - + + + + - - + + - + - + - - + + - - + + @@ -38665,13 +38744,13 @@ - + - + @@ -38698,10 +38777,10 @@ - + - + @@ -38731,7 +38810,7 @@ - + @@ -38743,36 +38822,36 @@ - + - + - + - + - + - + - + - + - + - + - + @@ -38801,7 +38880,7 @@ - + @@ -38809,10 +38888,10 @@ - + - + @@ -38820,17 +38899,17 @@ - + - + - - + + @@ -38838,10 +38917,10 @@ - + - + @@ -38850,12 +38929,12 @@ - + - + @@ -38863,124 +38942,124 @@ - - - - - - - - - - + + + + - - - - - - - + + + + + + + + + + + + + - + - + - - - + + + - + - + - + - + - + - + - + - - + + - + - + - + - + - + - + - + - + - + - + - + - - + + - + - + - + @@ -38992,42 +39071,42 @@ - + - + - + - + - + - + - + - + - + - + - + - + @@ -39056,7 +39135,7 @@ - + @@ -39089,7 +39168,7 @@ - + @@ -39097,88 +39176,88 @@ - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + - + - + - - + + - - - + + + - - - + + + - - + + - - + + - - + + - - + + - + - - - + + + - - + + - + - + - + - + @@ -39196,7 +39275,7 @@ - + @@ -39205,28 +39284,28 @@ - + - + - + - + - + - + - + - + @@ -39247,7 +39326,7 @@ - + @@ -39256,7 +39335,7 @@ - + @@ -39264,76 +39343,76 @@ - - - - - - + + + + + + - + - + - + - + - - + + - + - + - + - + - - + + - - + + - + - + - + - + @@ -39355,101 +39434,101 @@ - - - - - - - - - + + + + + + + + + - - - + + + - - - - - + + + + + - - - - - + + + + + - - - - + + + + - - - - + + + + - - - - - + + + + + - - - - - - - + + + + + + + - - - - - - + + + + + + - + - + - - - - - + + + + + - + - + - + - + @@ -39460,19 +39539,19 @@ - + - + - + @@ -39483,7 +39562,7 @@ - + @@ -39491,19 +39570,19 @@ - - - - - - - - - + + + + + + + + + - + @@ -39511,11 +39590,11 @@ - + - + @@ -39529,8 +39608,8 @@ - - + + @@ -39578,27 +39657,27 @@ - + - - + + - - + + - + - + @@ -39612,7 +39691,7 @@ - + @@ -39621,45 +39700,45 @@ - + - - + + - + - - - - - - + + + + + + - + - + - + - + - - + + @@ -39668,33 +39747,33 @@ - + - - - - - - - - - - - - + + + + + + + + + + + + - + - + @@ -39704,9 +39783,9 @@ - - - + + + @@ -39726,7 +39805,7 @@ - + @@ -39744,9 +39823,9 @@ - + - + @@ -39755,183 +39834,183 @@ - + - + - + - + - - + + - + - + - + - - + + - + - + - + - + - - + + - - + + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - + - + - + - + - + - + - + - + - + - - + + - + - + - + - + - - + + - + - + - + @@ -39942,7 +40021,7 @@ - + @@ -39950,18 +40029,18 @@ - + - + - + - + @@ -39969,7 +40048,7 @@ - + @@ -40005,28 +40084,28 @@ - + - + - + - + - + - + - + - + @@ -40035,7 +40114,7 @@ - + @@ -40053,22 +40132,22 @@ - + - + - + - + - + - + @@ -40152,13 +40231,13 @@ - + - + - + @@ -40170,25 +40249,25 @@ - + - + - + - + - + - + @@ -40197,22 +40276,22 @@ - + - + - + - + @@ -40221,13 +40300,13 @@ - + - + @@ -40236,10 +40315,10 @@ - + - + @@ -40251,13 +40330,13 @@ - + - + - + @@ -40272,37 +40351,37 @@ - + - + - + - + - + - + - + @@ -40311,19 +40390,19 @@ - + - + - + - + - + @@ -40344,7 +40423,7 @@ - + @@ -40352,7 +40431,7 @@ - + @@ -40360,8 +40439,8 @@ - - + + @@ -40432,241 +40511,241 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - + + - + - + - + - + - + - + - + - + - + - + @@ -40678,7 +40757,7 @@ - + @@ -40690,20 +40769,20 @@ - + - + - + - + - - - + + + @@ -40723,7 +40802,7 @@ - + @@ -40731,34 +40810,34 @@ - + - + - + - + - + - + - + - + - + - - + + @@ -40766,8 +40845,8 @@ - - + + @@ -40775,8 +40854,8 @@ - - + + @@ -40799,14 +40878,14 @@ - - + + - - + + @@ -40814,8 +40893,8 @@ - - + + @@ -40826,8 +40905,8 @@ - - + + @@ -40841,256 +40920,253 @@ - + - + - + - + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - + + + - + - - - - + - + - - + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - + @@ -41098,59 +41174,59 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -41158,106 +41234,106 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -41287,33 +41363,33 @@ - + - + - + - + - + - + - + - + - + - + @@ -41330,7 +41406,7 @@ - + @@ -41353,18 +41429,18 @@ - + - + - + - + @@ -41373,7 +41449,7 @@ - + @@ -41394,10 +41470,10 @@ - + - + @@ -41414,7 +41490,7 @@ - + @@ -41422,15 +41498,15 @@ - + - + - + - + @@ -41440,9 +41516,9 @@ - + - + @@ -41452,31 +41528,31 @@ - + - + - + - + - + - + - + - + @@ -41511,10 +41587,10 @@ - + - + @@ -41523,22 +41599,22 @@ - + - + - + - + - + - + @@ -41567,7 +41643,7 @@ - + @@ -41594,7 +41670,7 @@ - + @@ -41629,7 +41705,7 @@ - + @@ -41641,13 +41717,13 @@ - + - + - + @@ -41656,7 +41732,7 @@ - + @@ -41665,16 +41741,16 @@ - + - + - + - + @@ -41689,36 +41765,36 @@ - + - + - + - + - + - + - + - + - + @@ -41726,10 +41802,10 @@ - + - + @@ -41738,7 +41814,7 @@ - + @@ -41762,7 +41838,7 @@ - + @@ -41771,7 +41847,7 @@ - + @@ -41779,9 +41855,9 @@ - + - + @@ -41792,7 +41868,7 @@ - + @@ -41808,9 +41884,9 @@ - + - + @@ -41821,12 +41897,12 @@ - + - + - + @@ -41840,25 +41916,25 @@ - + - + - + - + - + - + - + @@ -41896,7 +41972,7 @@ - + @@ -41910,10 +41986,10 @@ - + - + @@ -41928,13 +42004,13 @@ - + - + - + @@ -41948,7 +42024,7 @@ - + @@ -41956,10 +42032,10 @@ - + - + @@ -41973,21 +42049,21 @@ - + - + - + - + @@ -42001,7 +42077,7 @@ - + @@ -42010,24 +42086,24 @@ - + - + - + - + - + - + @@ -42057,10 +42133,10 @@ - + - + @@ -42081,72 +42157,72 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -42157,14 +42233,14 @@ - + - - + + @@ -42193,7 +42269,7 @@ - + @@ -42201,15 +42277,15 @@ - + - + - + - + @@ -42230,7 +42306,7 @@ - + @@ -42238,7 +42314,7 @@ - + @@ -42252,7 +42328,7 @@ - + @@ -42263,15 +42339,15 @@ - + - + - + @@ -42285,15 +42361,15 @@ - + - + - + - + @@ -42302,29 +42378,29 @@ - + - + - + - + - + - + - + - + @@ -42338,13 +42414,13 @@ - + - + - + @@ -42352,177 +42428,177 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -42542,7 +42618,7 @@ - + @@ -42560,7 +42636,7 @@ - + @@ -42574,7 +42650,7 @@ - + @@ -42585,10 +42661,10 @@ - + - + @@ -42605,7 +42681,7 @@ - + @@ -42676,7 +42752,7 @@ - + @@ -42705,7 +42781,7 @@ - + @@ -42719,7 +42795,7 @@ - + @@ -42736,14 +42812,14 @@ - + - + @@ -42754,7 +42830,7 @@ - + @@ -42762,86 +42838,86 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -42858,7 +42934,7 @@ - + @@ -42872,7 +42948,7 @@ - + @@ -42892,7 +42968,7 @@ - + @@ -42909,7 +42985,7 @@ - + @@ -42923,7 +42999,7 @@ - + @@ -42940,23 +43016,23 @@ - + - + - + - + - + - + @@ -42965,10 +43041,10 @@ - + - + @@ -42976,7 +43052,7 @@ - + @@ -42987,7 +43063,7 @@ - + @@ -43016,7 +43092,7 @@ - + @@ -43033,7 +43109,7 @@ - + @@ -43056,7 +43132,7 @@ - + @@ -43067,10 +43143,10 @@ - + - + @@ -43099,7 +43175,7 @@ - + @@ -43116,15 +43192,15 @@ - + - + - + - + @@ -43162,13 +43238,13 @@ - + - + @@ -43179,7 +43255,7 @@ - + @@ -43193,27 +43269,27 @@ - + - + - + - + - + - + - + - + @@ -43221,24 +43297,24 @@ - + - + - + - + - + - + @@ -43246,10 +43322,10 @@ - + - + @@ -43257,10 +43333,10 @@ - + - + @@ -43271,9 +43347,9 @@ - + - + @@ -43282,41 +43358,41 @@ - + - - - + + + - + - + - + - + - + - + - + @@ -43328,10 +43404,10 @@ - + - + @@ -43349,30 +43425,30 @@ - + - + - + - + - + - + - + - + @@ -43380,7 +43456,7 @@ - + @@ -43397,7 +43473,7 @@ - + @@ -43405,52 +43481,52 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -43459,9 +43535,9 @@ - + - + @@ -43471,10 +43547,10 @@ - + - + @@ -43492,7 +43568,7 @@ - + @@ -43507,19 +43583,19 @@ - + - + - + - + - + @@ -43576,13 +43652,13 @@ - + - + - + @@ -43597,7 +43673,7 @@ - + @@ -43630,7 +43706,7 @@ - + @@ -43687,7 +43763,7 @@ - + @@ -43696,65 +43772,65 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -43765,21 +43841,21 @@ - + - + - + - + @@ -43790,7 +43866,7 @@ - + @@ -43803,7 +43879,7 @@ - + @@ -43816,13 +43892,13 @@ - + - + @@ -43840,10 +43916,10 @@ - + - + @@ -43870,8 +43946,8 @@ - - + + @@ -43879,8 +43955,8 @@ - - + + @@ -43888,108 +43964,108 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -44016,7 +44092,7 @@ - + @@ -44025,16 +44101,16 @@ - + - + - + - + @@ -44046,10 +44122,10 @@ - + - + @@ -44072,8 +44148,8 @@ - - + + @@ -44081,8 +44157,8 @@ - - + + @@ -44093,7 +44169,7 @@ - + @@ -44107,7 +44183,7 @@ - + @@ -44115,10 +44191,10 @@ - + - + @@ -44132,9 +44208,9 @@ - + - + @@ -44146,10 +44222,10 @@ - + - + @@ -44176,7 +44252,7 @@ - + @@ -44191,9 +44267,9 @@ - + - + @@ -44205,17 +44281,17 @@ - + - + - + - - + + @@ -44223,7 +44299,7 @@ - + @@ -44231,89 +44307,89 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - + + @@ -44321,13 +44397,13 @@ - + - + @@ -44335,21 +44411,21 @@ - - + + - + - + - + - + @@ -44363,7 +44439,7 @@ - + @@ -44386,37 +44462,37 @@ - + - + - + - + - + - + - + - + - + - + @@ -44431,7 +44507,7 @@ - + @@ -44469,10 +44545,10 @@ - + - + @@ -44496,20 +44572,20 @@ - + - + - + - - + + @@ -44517,7 +44593,7 @@ - + @@ -44525,26 +44601,26 @@ - + - + - + - + - + - + - + - + @@ -44573,20 +44649,20 @@ - + - + - + - + - + @@ -44595,18 +44671,18 @@ - + - + - + - + - + @@ -44615,10 +44691,10 @@ - + - + @@ -44626,7 +44702,7 @@ - + @@ -44634,23 +44710,23 @@ - + - + - + - - + + - + - + @@ -44662,27 +44738,27 @@ - + - + - + - + - + - + - + @@ -44693,7 +44769,7 @@ - + @@ -44702,7 +44778,7 @@ - + @@ -44731,7 +44807,7 @@ - + @@ -44742,34 +44818,34 @@ - + - + - + - + - + - + - + - - - + + + @@ -44777,10 +44853,10 @@ - + - + @@ -44789,15 +44865,15 @@ - + - + - + @@ -44805,19 +44881,19 @@ - - + + - + - + @@ -44835,7 +44911,7 @@ - + @@ -44844,7 +44920,7 @@ - + @@ -44861,13 +44937,13 @@ - + - + @@ -44885,24 +44961,24 @@ - + - + - + - + - + @@ -44911,10 +44987,10 @@ - + - + @@ -44926,16 +45002,16 @@ - + - + - + - + @@ -44947,22 +45023,22 @@ - + - + - + - + @@ -44980,12 +45056,12 @@ - + - + - + @@ -44997,107 +45073,107 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -45109,7 +45185,7 @@ - + @@ -45124,10 +45200,10 @@ - + - + @@ -45168,7 +45244,7 @@ - + @@ -45191,7 +45267,7 @@ - + @@ -45199,7 +45275,7 @@ - + @@ -45217,12 +45293,12 @@ - + - + - + @@ -45246,7 +45322,7 @@ - + @@ -45254,16 +45330,16 @@ - + - + - + @@ -45289,23 +45365,23 @@ - + - + - + - + - + @@ -45319,28 +45395,28 @@ - + - + - + - + - + - + @@ -45351,10 +45427,10 @@ - + - + @@ -45363,12 +45439,12 @@ - + - + @@ -45379,7 +45455,7 @@ - + @@ -45396,7 +45472,7 @@ - + @@ -45407,70 +45483,70 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -45478,18 +45554,18 @@ - + - + - + @@ -45519,7 +45595,7 @@ - + @@ -45531,7 +45607,7 @@ - + @@ -45542,13 +45618,13 @@ - + - + - + @@ -45556,7 +45632,7 @@ - + @@ -45565,7 +45641,7 @@ - + @@ -45573,68 +45649,68 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -45663,17 +45739,17 @@ - + - + - + - - - + + + @@ -45687,20 +45763,20 @@ - + - + - + - + - + @@ -45712,7 +45788,7 @@ - + @@ -45720,18 +45796,18 @@ - + - + - + - + @@ -45739,17 +45815,17 @@ - + - + - + @@ -45757,456 +45833,455 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - + - + - + @@ -46217,1364 +46292,1360 @@ - - + + - + - - - + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + - - + + - - - - - + + + - - - + + - - - - + + + + + + - + + - - + + - - - + + + + + - - - + + + - - - - + + + + - - + - - + - - + - - - + + + - - - - + + + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + - - - + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - + + - - - + + + + + + + + - - - - - + - - - + + + + + - - - - - - - + + + + - - - - - - - + + + - + + + + + - - + + + - - - - - + + + - - + + + + + - - - - - - - - - - + + + + + + + - - - - - - + - + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - - + + - - + + + + - - + + + + - - + + + + + + - - - + + - - + + + - + - - + - - - - - - + + + + + + + - + - + + - - + + - - + + - + - - - + + - - + + - - + + - - - + + - - + + + - - - + + - - - + + - - - + + - - - + + - + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + - - + + - - + + - - + + - - + + - - + + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - - + + - - - - + + - - - + + + - - - - + + + + + - - + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - - - - + - - + + + - + + + - - - + + - + + + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - - + + - + - + - + - - + + - + - + - + - - + + - + - + - + - + - + - + - - - + + + - + - - + + - + - + - + - - + + - - + + - - + + - - + + - - + + - - - + + + - - - + + + - - + + - - - - + + + + - - + + - - - + + + - - + + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - + - - + + + - - + + + + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + - - + + - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + - - + + + + + + - - - + + - - + + + + + + + + + + + - - + + - - - - - - - - - - - + + + + + + + + + + + - + - + - - + + - + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + - - - - + + + - - - - - - - + + - - + + + - - - + + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + - - + + - - + + - - + + - + - - - - - - - - - - - - - - + + + + + + + + + + + + + + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + - - + + + + - - + - + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - + - - + + + - - + + - - - + - - + + - - - + + - + - - - + + + - - + + - - + + + - - + + + - - + + - - + + - + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - + + - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + - - + + - + - - - + + + - - - + + + - - + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -47584,22 +47655,22 @@ - - + + - + - + - - + + @@ -47608,7 +47679,7 @@ - + @@ -47619,7 +47690,7 @@ - + @@ -47628,59 +47699,59 @@ - + - + - + - + - + - - - - - + + + + + - + - + - + - + - + - - - - + + + + - + - + - + @@ -47698,16 +47769,16 @@ - - + + - + - + @@ -47719,93 +47790,93 @@ - - - - - - - - - - - - - + + + + + + + + + + + + + - + - + - + - + - + - + - + - + - + - + - - - + + + - - - + + + - - - + + + - + - - - + + + - + - + @@ -47815,7 +47886,7 @@ - + @@ -47837,19 +47908,19 @@ - + - + - + - + @@ -47870,15 +47941,15 @@ - + - + - + @@ -47892,16 +47963,16 @@ - + - + - + @@ -47910,13 +47981,13 @@ - + - + @@ -47924,7 +47995,7 @@ - + @@ -47936,7 +48007,7 @@ - + @@ -47948,16 +48019,16 @@ - + - + - + - + @@ -48026,10 +48097,10 @@ - + - + @@ -48037,10 +48108,10 @@ - + - + @@ -48057,10 +48128,10 @@ - + - + @@ -48080,7 +48151,7 @@ - + @@ -48088,230 +48159,230 @@ - + - - - - - - + + + + + + - - + + - + - + - + - + - + - + - + - + - + - - + + - + - + - - + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -48320,8 +48391,8 @@ - - + + @@ -48332,7 +48403,7 @@ - + @@ -48359,7 +48430,7 @@ - + @@ -48389,7 +48460,7 @@ - + @@ -48398,10 +48469,10 @@ - + - + @@ -48413,7 +48484,7 @@ - + @@ -48463,7 +48534,7 @@ - + @@ -48471,18 +48542,18 @@ - + - + - + - + @@ -48490,29 +48561,29 @@ - + - + - + - + - + - + - + - + @@ -48520,16 +48591,16 @@ - + - + - + @@ -48544,7 +48615,7 @@ - + @@ -48552,23 +48623,23 @@ - + - + - + - + - + @@ -48580,7 +48651,7 @@ - + @@ -48588,28 +48659,28 @@ - + - + - - + + - + - + @@ -48621,46 +48692,46 @@ - + - + - + - - - - + + - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + - - + + + + - + @@ -48668,7 +48739,7 @@ - + @@ -48689,17 +48760,17 @@ - + - + - + - + @@ -48709,35 +48780,35 @@ - - + + - + - - + + - + - + - + - + @@ -48750,11 +48821,11 @@ - + - + @@ -48763,53 +48834,53 @@ - + - + - + - - - - - - - - - - - - + + - + + + + + + + + + + + - - + + - - + + - - + + @@ -48817,27 +48888,27 @@ - + - - + + - - + + - - + + - + @@ -48845,116 +48916,116 @@ - - + + - + - + - + - + - + - + - + - - + + - + - + - + - + - - + + - + - + - + - + - + - + - + - + - + - + @@ -48970,7 +49041,7 @@ - + @@ -48982,7 +49053,7 @@ - + @@ -49010,23 +49081,23 @@ - + - - + + - + - + @@ -49039,30 +49110,30 @@ - + - + - + - + - + - + - + @@ -49074,10 +49145,10 @@ - - + + - + @@ -49086,11 +49157,11 @@ - + - - + + @@ -49113,31 +49184,31 @@ - - - - - - + + + + + + - + - + - + - - + + - + @@ -49148,54 +49219,54 @@ - + - - + + - - + + - + - + - + - + - + - + - + @@ -49203,7 +49274,7 @@ - + @@ -49212,7 +49283,7 @@ - + @@ -49222,7 +49293,7 @@ - + @@ -49233,7 +49304,7 @@ - + @@ -49245,7 +49316,7 @@ - + @@ -49258,7 +49329,7 @@ - + @@ -49272,7 +49343,7 @@ - + @@ -49287,7 +49358,7 @@ - + @@ -49308,6 +49379,12 @@ + + + + + + @@ -49317,24 +49394,24 @@ - + - + - + - + @@ -49357,7 +49434,7 @@ - + @@ -49368,83 +49445,83 @@ - + - + - + - + - + - + - + - + - + - + - + - + - - + + - - + + - + - + - + - + - + - - + + - - + + - + @@ -49452,13 +49529,13 @@ - + - + - + @@ -49470,16 +49547,16 @@ - + - + - + - + @@ -49494,19 +49571,19 @@ - + - + - + - + - + @@ -49539,26 +49616,26 @@ - + - + - + - + - + - + - + - + @@ -49567,25 +49644,25 @@ - + - + - + - + - + - + - + @@ -49595,7 +49672,7 @@ - + @@ -49616,7 +49693,7 @@ - + @@ -49731,20 +49808,20 @@ - + - + - + - + @@ -49766,9 +49843,9 @@ - + - + @@ -49777,15 +49854,15 @@ - + - + - + - + @@ -49809,15 +49886,15 @@ - + - + - + @@ -49832,21 +49909,21 @@ - + - + - + - + - + @@ -49858,7 +49935,7 @@ - + @@ -49873,7 +49950,7 @@ - + @@ -49882,24 +49959,24 @@ - + - + - + - + @@ -49907,7 +49984,7 @@ - + @@ -49916,7 +49993,7 @@ - + @@ -49924,15 +50001,15 @@ - + - + - + - + @@ -49940,12 +50017,12 @@ - + - + - + @@ -49954,9 +50031,9 @@ - + - + @@ -49980,9 +50057,9 @@ - + - + @@ -49994,10 +50071,10 @@ - + - + @@ -50005,12 +50082,12 @@ - + - + @@ -50022,7 +50099,7 @@ - + @@ -50033,7 +50110,7 @@ - + @@ -50044,71 +50121,71 @@ - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + - - - - - - + + + + + + + + + + + - + - - - - + + + + - - + + - + - - - + + + - + - - - + + + - - - - - + + + + + - + @@ -50120,123 +50197,123 @@ - - + + - + - + - + - + - + - + - + - + - + - - - - - - - + + + + + + + - - + + - - + + - - + + - + - + - + - + - - - - - - - - - - - - - - - - - - - - - - - + - + + + + + + + + + + + + + + + + + + + + + + + - + - + - + - + @@ -50245,41 +50322,41 @@ - + - + - + - + - + - + - - + + - - - + + + - - - + + + @@ -50287,7 +50364,7 @@ - + @@ -50298,20 +50375,20 @@ - + - + - + - + @@ -50323,11 +50400,11 @@ - - + + - + @@ -50419,13 +50496,13 @@ - + - + @@ -50442,13 +50519,13 @@ - + - + - + @@ -50460,71 +50537,71 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -50532,35 +50609,35 @@ - + - + - + - + - - - - - - - - - - - - + + + + + + + + + + + + @@ -50594,87 +50671,87 @@ - - + + - - + + - + - - - - - - - - - + + + + + + + + + - - - - - - - - - + + + + + + + + + - - + + - - - - - - + + + + + + - - - - + + + + - - - - + + + + - + - + - + - + - + - + - + @@ -50686,38 +50763,38 @@ - + - + - + - + - + - + - + - + @@ -50727,9 +50804,9 @@ - + - + @@ -50737,7 +50814,7 @@ - + @@ -50745,42 +50822,42 @@ - + - + - + - + - + - + - + - + - + - + - + @@ -50788,13 +50865,13 @@ - + - + - + @@ -50808,65 +50885,65 @@ - + - + - - - - - - - - + + + + + + + + - + - + - + - - + + - - - + + + - - + + - + - - - + + + - - + + @@ -50897,7 +50974,7 @@ - + @@ -50917,9 +50994,9 @@ - + - + @@ -50931,8 +51008,8 @@ - - + + @@ -50949,13 +51026,13 @@ - + - + - + @@ -50963,14 +51040,14 @@ - + - + @@ -50990,7 +51067,7 @@ - + @@ -51000,118 +51077,118 @@ - - - - - + + + - - - + + + - - - - - - - - - + + + + + + + + + + + - - + + - - - - - - - - - - - - + - - + + + + + + + + + + + + + - - - - - - - - + + + + + + + + - + - - + + - - - + + + - - - - - - - - - - + + - + + + + + + + + + - - + + @@ -51125,293 +51202,293 @@ - - - + + + - - + + - - + + - - - - + + + + - - + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - + + - - + + - - + + - - - - + + + + - - - + + + - - - - + + + + - - - - + + + + - - - - - + + + + + - - - - - + + + + + - - - + + + - - - + + + - - - + + + - - + + - - + + - - - - + + + + - - + + - - + + - - - - + + + + - - - - + + + + - - - + + + - - - + + + - - - - - + + + + + - - - - - + + + + + - - - - - - - + + + + + + + - - - + + + - - + + - - - - + + + + - - + + - - - + + + - - - + + + - - - - - + + + + + - - - - + + + + - - - + + + - - - - - - - - + + + + + + + + - - - - - - - - + + + + + + + + - - - + + + - - - - + + + + - - - - + + + + - - - + + + - - - + + + - - - + + + - + - + - + @@ -51421,15 +51498,15 @@ - + - + - + @@ -51441,7 +51518,7 @@ - + @@ -51450,21 +51527,21 @@ - + - + - + - + @@ -51500,11 +51577,11 @@ - + - + @@ -51545,7 +51622,7 @@ - + @@ -51559,7 +51636,7 @@ - + @@ -51610,14 +51687,14 @@ - + - - - + + + @@ -51641,8 +51718,8 @@ - - + + @@ -51656,7 +51733,7 @@ - + @@ -51672,7 +51749,7 @@ - + @@ -51697,19 +51774,19 @@ - + - + - + - + - + @@ -51722,7 +51799,7 @@ - + @@ -51733,7 +51810,7 @@ - + @@ -51744,7 +51821,7 @@ - + @@ -51752,13 +51829,13 @@ - + - + @@ -51772,15 +51849,15 @@ - + - + - + @@ -51791,22 +51868,22 @@ - + - + - + - + @@ -51814,14 +51891,14 @@ - + - + @@ -51831,11 +51908,11 @@ - - + + - + @@ -51843,10 +51920,10 @@ - + - + @@ -51877,7 +51954,7 @@ - + @@ -51886,53 +51963,53 @@ - + - + - + - + - + - + - - + + - + - + - + - + - + @@ -51946,7 +52023,7 @@ - + @@ -51966,17 +52043,17 @@ - - - - - + + + - - + + + + @@ -52035,18 +52112,18 @@ - + - + - + - + @@ -52056,43 +52133,43 @@ - + - + - + - + - + - + - + - + - + @@ -52107,24 +52184,24 @@ - + - + - + - + - + @@ -52132,10 +52209,10 @@ - + - + @@ -52143,9 +52220,9 @@ - + - + @@ -52172,7 +52249,7 @@ - + @@ -52196,10 +52273,10 @@ - + - + @@ -52208,18 +52285,18 @@ - + - + - + - + - + @@ -52228,15 +52305,15 @@ - + - + - + @@ -52245,7 +52322,7 @@ - + @@ -52255,7 +52332,7 @@ - + @@ -52263,13 +52340,13 @@ - + - + @@ -52283,7 +52360,7 @@ - + @@ -52300,16 +52377,16 @@ - + - + - + @@ -52319,7 +52396,7 @@ - + @@ -52327,13 +52404,13 @@ - + - + @@ -52351,30 +52428,30 @@ - + - + - - - - - - - - - - - - - + + + + + + + + + + + + + @@ -52388,7 +52465,7 @@ - + @@ -52400,23 +52477,23 @@ - - - + + + - - - + + + - - + + - - + + @@ -52523,7 +52600,7 @@ - + @@ -52542,7 +52619,7 @@ - + @@ -52580,70 +52657,70 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -52657,7 +52734,7 @@ - + @@ -52710,12 +52787,12 @@ - + - + @@ -52733,21 +52810,21 @@ - + - + - + - + @@ -52761,7 +52838,7 @@ - + @@ -52769,22 +52846,22 @@ - + - + - + - + - + @@ -52798,20 +52875,20 @@ - + - + - + - + - + @@ -52823,15 +52900,15 @@ - + - + - + @@ -52839,7 +52916,7 @@ - + @@ -52859,17 +52936,17 @@ - - - - + + + + - + @@ -52878,7 +52955,7 @@ - + @@ -52888,7 +52965,7 @@ - + @@ -52932,7 +53009,7 @@ - + @@ -52953,8 +53030,8 @@ - - + + @@ -52962,15 +53039,15 @@ - - + + - + - + @@ -52986,50 +53063,50 @@ - + - + - + - + - + - + - + - + - + - + - + @@ -53040,7 +53117,7 @@ - + @@ -53067,7 +53144,7 @@ - + @@ -53076,7 +53153,7 @@ - + @@ -53110,14 +53187,14 @@ - - + + - - + + @@ -53125,203 +53202,131 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + - - - - + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + - - - - + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - - - - + + + + - - - - - - + + + + + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -53389,11 +53394,11 @@ - + - + @@ -53500,7 +53505,7 @@ - + @@ -53509,15 +53514,15 @@ - + - + - + @@ -53534,12 +53539,12 @@ - + - + @@ -53578,82 +53583,82 @@ - - + - + + - - - + + + - - - + + + - - - + + + - - - - - + + + + + - - - + + + - - + + - - - + + + - - - + + + - - - - + + + + - - + + - - - + + + - - - + + + - + - + - - + + @@ -53661,11 +53666,11 @@ - + - + @@ -53685,10 +53690,10 @@ - + - + @@ -53709,7 +53714,7 @@ - + @@ -53733,13 +53738,13 @@ - + - + - + @@ -53750,28 +53755,28 @@ - + - + - + - + - + - - - + + + - + @@ -53787,7 +53792,7 @@ - + @@ -53813,27 +53818,27 @@ - + - + - + - + - + @@ -53844,38 +53849,38 @@ - + - + - + - + - + - + - + - + - + - - - - + + + + @@ -53922,15 +53927,15 @@ - - + + - + - + @@ -53951,7 +53956,7 @@ - + @@ -53990,24 +53995,8 @@ - - - - - - - - - - - - - - - - - + @@ -54041,20 +54030,20 @@ - + - - + + - + - + @@ -54066,7 +54055,7 @@ - + @@ -54087,12 +54076,12 @@ - + - + @@ -54107,84 +54096,84 @@ - + - + - + - + - - + + - + - + - + - + - + - + - + - + - + - - + + - + - - - - - + + + + + - + @@ -54196,16 +54185,16 @@ - + - + - + @@ -54270,7 +54259,7 @@ - + @@ -54298,12 +54287,12 @@ - - + + - + @@ -54311,20 +54300,20 @@ - + - - - + + + - + - + @@ -54336,18 +54325,18 @@ - + - + - + - + @@ -54356,24 +54345,24 @@ - - - + + + - + - + - + @@ -54381,162 +54370,162 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - + + - + @@ -54554,23 +54543,23 @@ - + - - - - - - - - - - + + + + + + + + + + @@ -54588,15 +54577,15 @@ - - - + + + - - + + @@ -54611,7 +54600,7 @@ - + @@ -54628,7 +54617,7 @@ - + @@ -54650,39 +54639,39 @@ - + - - - + + + - - + + - - + + - - + + - - + + - - + + @@ -54690,7 +54679,7 @@ - + @@ -54701,18 +54690,18 @@ - + - + - + @@ -54740,50 +54729,50 @@ - + - + - + - + - + - + - + - + - + - + @@ -54797,7 +54786,7 @@ - + @@ -54812,10 +54801,10 @@ - + - + @@ -54833,26 +54822,26 @@ - + - + - + - + - + @@ -54923,7 +54912,7 @@ - + @@ -54935,25 +54924,25 @@ - - + + - + - + - - + + - + @@ -54967,7 +54956,7 @@ - + @@ -54975,7 +54964,7 @@ - + @@ -54983,7 +54972,7 @@ - + @@ -55000,45 +54989,45 @@ - + - + - + - + - + - + - + - + - + - + @@ -55073,325 +55062,325 @@ - - - - - - + + + + + + - - - - + + + + - - - + + + - - + + - - + + - - + + - - + + - - + + - - - - + + + + - - - + + + - - - - + + + + - - - - - - + + + + + + - - - - + + + + - - - - - + + + + + - - - - + + + + - - - - + + + + - - - - - - + + + + + + - - - - - + + + + + - - - + + + - - - + + + - - - + + + - - - - - - + + + + + + - - - - - + + + + + - - - - - - + + + + + + - - - - - + + + + + - - - - + + + + - - - - - + + + + + - - - + + + - - - - - + + + + + - - - - - - + + + + + + - - - - - + + + + + - - - - - + + + + + - - - - + + + + - - - - + + + + - - - + + + - - - - - + + + + + - - - - + + + + - - - - - + + + + + - - - - + + + + - - - - - - + + + + + + - - - - - + + + + + - - - - - - - - + + + + + + + + - - - - - - - + + + + + + + - - - + + + - - - - + + + + - - - + + + - - - - + + + + - - + + - - - - + + + + - - - - - + + + + + - - - - + + + + - + @@ -55399,7 +55388,7 @@ - + @@ -55417,24 +55406,24 @@ - + - + - - + + - + @@ -55452,7 +55441,7 @@ - + @@ -55467,10 +55456,10 @@ - - - - + + + + @@ -55495,7 +55484,7 @@ - + @@ -55503,7 +55492,7 @@ - + @@ -55512,15 +55501,15 @@ - + - + - - + + @@ -55533,29 +55522,29 @@ - + - - - + + + - + - + - + - + - + @@ -55570,21 +55559,21 @@ - + - + - + - + - + - + @@ -55592,13 +55581,13 @@ - + - + @@ -55606,18 +55595,18 @@ - + - + - + - + @@ -55625,35 +55614,35 @@ - + - + - + - + - + - + - + - + - + - + @@ -55692,7 +55681,7 @@ - + @@ -55710,7 +55699,7 @@ - + @@ -55719,13 +55708,13 @@ - + - + @@ -55743,21 +55732,21 @@ - + - + - + - + - + @@ -55790,9 +55779,9 @@ - + - + @@ -55810,7 +55799,7 @@ - + @@ -55818,7 +55807,7 @@ - + @@ -55839,7 +55828,7 @@ - + @@ -55847,7 +55836,7 @@ - + @@ -55855,23 +55844,23 @@ - + - + - + - + - + - + @@ -55880,17 +55869,17 @@ - + - + - + - + @@ -55911,10 +55900,10 @@ - + - + @@ -55926,136 +55915,136 @@ - + - + - + - + - + - + - + - - - - - - - - - + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - - - - + + + + - - + + - + - + - - - + + + - - - + + + - + - - - + + + - + - - + + - - + + - - + + - - + + - + - + - - - - + + + + @@ -56065,13 +56054,13 @@ - - + + - + @@ -56079,7 +56068,7 @@ - + @@ -56091,12 +56080,12 @@ - + - + @@ -56258,13 +56247,13 @@ - + - - - + + + @@ -56281,14 +56270,14 @@ - + - - - - - + + + + + @@ -56300,8 +56289,8 @@ - - + + @@ -56390,23 +56379,23 @@ - - + + - - + + - + @@ -56422,7 +56411,7 @@ - + @@ -56434,7 +56423,7 @@ - + @@ -56445,7 +56434,7 @@ - + @@ -56540,25 +56529,25 @@ - - + + - + - + - - + + @@ -56571,20 +56560,20 @@ - + - + - + @@ -56603,7 +56592,7 @@ - + @@ -56618,7 +56607,7 @@ - + @@ -56635,13 +56624,13 @@ - + - + - + @@ -56665,15 +56654,15 @@ - + - + - + @@ -56681,7 +56670,7 @@ - + @@ -56689,53 +56678,53 @@ - + - - + + - - + + - + - + - - + + - + - + - + - + @@ -56744,7 +56733,7 @@ - + @@ -56755,10 +56744,10 @@ - + - + @@ -56801,7 +56790,7 @@ - + @@ -57038,11 +57027,11 @@ - + - + @@ -57056,7 +57045,7 @@ - + @@ -57067,13 +57056,13 @@ - - - - - - - + + + + + + + @@ -57086,8 +57075,8 @@ - - + + @@ -57154,9 +57143,9 @@ - + - + @@ -57224,17 +57213,17 @@ - + - + - + @@ -57300,18 +57289,18 @@ - + - + - + - + @@ -57365,18 +57354,18 @@ - + - + - + @@ -57390,16 +57379,16 @@ - + - + - + @@ -57441,7 +57430,7 @@ - + @@ -57451,12 +57440,12 @@ - + - + @@ -57468,10 +57457,10 @@ - + - + @@ -57482,7 +57471,7 @@ - + @@ -57493,7 +57482,7 @@ - + @@ -57508,7 +57497,7 @@ - + @@ -57519,18 +57508,18 @@ - - - - - - - - + + + + + + + + - + @@ -57548,8 +57537,8 @@ - - + + @@ -57570,8 +57559,8 @@ - - + + @@ -57583,19 +57572,19 @@ - + - + - + - + - - + + @@ -57646,17 +57635,17 @@ - + - + - - + + @@ -57666,10 +57655,10 @@ - + - + @@ -57700,7 +57689,7 @@ - + @@ -57708,62 +57697,62 @@ - + - - + + - + - - + + - + - + - + - + - + - + - + @@ -57771,7 +57760,7 @@ - + @@ -57779,10 +57768,10 @@ - + - + @@ -57796,43 +57785,43 @@ - - - + + + - + - + - - + + - - + + - + - + - + - + @@ -57842,30 +57831,30 @@ - + - + - + - + - + - + @@ -57876,22 +57865,22 @@ - + - - - - - + + + + + - + - + @@ -57912,28 +57901,28 @@ - + - - - + + + - - - - + + + + - - + + - + - + @@ -57941,7 +57930,7 @@ - + @@ -57954,70 +57943,60 @@ - + - + - - - - + + + + - - - - + + + + - - - - + + + + - - - - - - + + + + + + - - - - + + + + - - - - - + + + + + - - - - - - - + + + + + + + - - - - - - - - - - - + @@ -58027,135 +58006,145 @@ - - - - + + + + + + + + - - - + + + + - - - - + + + - - - + + + + - - - - - - - - - - + + + - - - - + + + + + + + + + + - - - - + + + + - - - - - - - - + + + + - - - - - - - - + + + + + + + + - - - - + + + + + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + + + + + + + - - - + + + - - - + + + - - + + - - + + - - + + - - + + - + - + - + @@ -58168,7 +58157,7 @@ - + @@ -58179,7 +58168,7 @@ - + @@ -58190,7 +58179,7 @@ - + @@ -58198,18 +58187,18 @@ - + - + - + @@ -58274,7 +58263,7 @@ - + @@ -58377,7 +58366,7 @@ - + @@ -58387,12 +58376,12 @@ - - - - - - + + + + + + @@ -58402,20 +58391,20 @@ - - - + + + - + - + @@ -58431,24 +58420,24 @@ - + - + - - + + - - + + @@ -58479,13 +58468,13 @@ - + - + - + @@ -58527,35 +58516,35 @@ - + - + - + - + - + - + - + - + - + - + @@ -58564,7 +58553,7 @@ - + @@ -58572,7 +58561,7 @@ - + @@ -58593,7 +58582,7 @@ - + @@ -58601,7 +58590,7 @@ - + @@ -58612,96 +58601,96 @@ - - - - - - - - - - - + + + + + + + + + + + - - + + - + - - + + - + - - - - - + - + - - + - + + + + + + - + - + - + - + - - + + - - + + - + - - - + + + - - + + @@ -58725,11 +58714,11 @@ - + - - + + @@ -58737,8 +58726,8 @@ - - + + @@ -58755,14 +58744,14 @@ - - + + - + - + @@ -58770,7 +58759,7 @@ - + @@ -58814,18 +58803,18 @@ - + - + - - + + - + @@ -58834,7 +58823,7 @@ - + @@ -58846,24 +58835,24 @@ - + - + - + - + - + - + - + @@ -58878,7 +58867,7 @@ - + @@ -58898,7 +58887,7 @@ - + @@ -58918,7 +58907,7 @@ - + @@ -58932,10 +58921,10 @@ - + - + @@ -58949,24 +58938,24 @@ - + - + - + - + - + @@ -58974,12 +58963,12 @@ - + - + @@ -58988,62 +58977,62 @@ - + - - - - - - - - - + + + + + + + + - + + - + - + - - + + - + - - + + - - + + - - + + @@ -59066,21 +59055,21 @@ - + - + - + @@ -59098,11 +59087,11 @@ - + - + @@ -59182,8 +59171,8 @@ - - + + @@ -59201,7 +59190,7 @@ - + @@ -59213,7 +59202,7 @@ - + @@ -59225,10 +59214,10 @@ - - + + - + @@ -59240,9 +59229,9 @@ - + - + @@ -59272,9 +59261,9 @@ - + - + @@ -59286,10 +59275,10 @@ - - - - + + + + @@ -59400,11 +59389,11 @@ - + - + @@ -59443,9 +59432,9 @@ - + - + @@ -59469,7 +59458,7 @@ - + @@ -59492,17 +59481,17 @@ - - - + + + - + - + @@ -59510,43 +59499,43 @@ - + - + - + - - - + + + - + - + - - + + - + - + - - - + + + @@ -59591,12 +59580,12 @@ - + - - + + @@ -59605,13 +59594,13 @@ - + - + - + @@ -59623,15 +59612,15 @@ - - - + + + - - + + @@ -59642,7 +59631,7 @@ - + @@ -59656,63 +59645,63 @@ - + - + - + - + - - + + - + - + - + - + - + - - - - - - - - + + + + + + + + - + - + @@ -59746,14 +59735,14 @@ - + - + @@ -59761,63 +59750,63 @@ - + - + - + - + - - - - - - - - - + + - + + + + + + + + - + - + - + - - - + + + @@ -59826,11 +59815,11 @@ - - + + - + @@ -59844,13 +59833,13 @@ - + - + @@ -59858,108 +59847,47 @@ - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + - + - + - + - + - + - + - + @@ -60002,7 +59930,7 @@ - + @@ -60163,14 +60091,14 @@ - + - + @@ -60199,74 +60127,74 @@ - + - + - + - + - + - - - - - - + + + + + + - + - + - + - + - + - + - + - + - + - + @@ -60280,12 +60208,12 @@ - + - + @@ -60293,7 +60221,7 @@ - + @@ -60301,9 +60229,9 @@ - - - + + + @@ -60397,7 +60325,7 @@ - + @@ -60405,18 +60333,18 @@ - + - + - - - + + + @@ -60431,7 +60359,7 @@ - + @@ -60451,7 +60379,7 @@ - + @@ -60469,13 +60397,13 @@ - + - + @@ -60486,7 +60414,7 @@ - + @@ -60523,12 +60451,12 @@ - + + + - + - - @@ -60537,30 +60465,30 @@ - + - + - + - + - + @@ -60569,29 +60497,29 @@ - + - + - + - + - + @@ -60696,19 +60624,19 @@ - - + + - + - + - + @@ -60717,12 +60645,12 @@ - + - + @@ -60731,64 +60659,64 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -60799,15 +60727,15 @@ - + - + - + - + @@ -60816,226 +60744,226 @@ - + - + - + - + - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + - + - - + + - + - - + + - - + + - + - + - - + + - + - + - + - - + + - + - - + + - + + + + + + + + + + - - - - - - - - - - + - - + + - - + + + + + + + + + + + - - - - - - - - - - - + + - - + + - + - + - + - + - + - + - - + + - - + + - + - + - + - + - + - + - + - - + + - - + + - + - - + + - + - + - + @@ -61074,23 +61002,23 @@ - + - + - + - + - + - + - + @@ -61099,22 +61027,22 @@ - + - + - + - + - + - + @@ -61132,7 +61060,7 @@ - + @@ -61141,10 +61069,10 @@ - + - + @@ -61165,7 +61093,7 @@ - + @@ -61173,10 +61101,10 @@ - + - + @@ -61191,13 +61119,13 @@ - + - + - + @@ -61218,7 +61146,7 @@ - + @@ -61263,16 +61191,16 @@ - + - + - + - + @@ -61293,13 +61221,13 @@ - + - + - + @@ -61317,7 +61245,7 @@ - + @@ -61326,7 +61254,7 @@ - + @@ -61335,16 +61263,16 @@ - + - - + + - + @@ -61395,17 +61323,17 @@ - + - + - - + + @@ -61416,10 +61344,10 @@ - - - - + + + + @@ -61427,10 +61355,10 @@ - + - + @@ -61459,7 +61387,7 @@ - + @@ -61467,7 +61395,7 @@ - + @@ -61479,9 +61407,9 @@ - + - + @@ -61499,42 +61427,42 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -61548,13 +61476,13 @@ - - + + - + - + @@ -61572,164 +61500,164 @@ - - - - - - - - - - - - + + + + + + + + + + + + - + - + - + - + - + - + - + - + - + - + - + - + - - + + - - + + - - + + - - + + - - + + - - + + - + - + - - + + - - + + - - + + - - - + + + - - - + + + - - - + + + - + - + - + - + @@ -61738,79 +61666,79 @@ - + - + - + - + - + - + - + - + - + - + - + - - + + - - + + - - + + - + - + @@ -61819,40 +61747,40 @@ - + - + - - + + - - + + - - + + - - + + - + - + @@ -61860,11 +61788,11 @@ - + - + @@ -61875,15 +61803,15 @@ - + - + - + - + @@ -61895,52 +61823,52 @@ - + - + - + - + - + - + - + - + - + - - - + + + - + - - + + @@ -61950,12 +61878,12 @@ - + - + @@ -61967,7 +61895,7 @@ - + @@ -62012,7 +61940,7 @@ - + @@ -62028,12 +61956,12 @@ - - - + + + - + @@ -62092,13 +62020,13 @@ - + - + - + @@ -62116,7 +62044,7 @@ - + @@ -62131,13 +62059,13 @@ - + - + @@ -62146,7 +62074,7 @@ - + @@ -62229,7 +62157,7 @@ - + @@ -62237,10 +62165,10 @@ - + - + @@ -62252,18 +62180,18 @@ - + - - - + + + + + - - - - - + + + @@ -62272,10 +62200,10 @@ - + - - + + @@ -62291,14 +62219,14 @@ - + - + - - + + @@ -62309,55 +62237,55 @@ - + - + - + - - + + - + - + - - + + - - - + + + - + - + @@ -62365,68 +62293,68 @@ - - + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -62446,10 +62374,10 @@ - + - + @@ -62458,30 +62386,30 @@ - + - + - + - + - + - + - + - - + + @@ -62489,7 +62417,7 @@ - + @@ -62524,7 +62452,7 @@ - + @@ -62713,19 +62641,19 @@ - + - + - + @@ -62737,7 +62665,7 @@ - + @@ -62745,7 +62673,7 @@ - + @@ -62754,18 +62682,18 @@ - + - + - + - + @@ -62801,16 +62729,16 @@ - + - + - + - + @@ -62818,12 +62746,12 @@ - + - + - + @@ -62831,10 +62759,10 @@ - + - + @@ -62849,12 +62777,12 @@ - + - + - + @@ -62862,50 +62790,50 @@ - + - - - - + + + + + + + - - - - - - - + + + + - + - + - - + + - - + + - + - + - + @@ -62913,23 +62841,23 @@ - - + + - - - + + + - - + + - + @@ -62940,7 +62868,7 @@ - + @@ -62958,7 +62886,7 @@ - + @@ -62970,15 +62898,15 @@ - + - + - + - + @@ -62995,7 +62923,7 @@ - + @@ -63018,12 +62946,12 @@ - + - + - + @@ -63044,7 +62972,7 @@ - + @@ -63056,20 +62984,20 @@ - + - + - + - + - + @@ -63078,10 +63006,10 @@ - + - + @@ -63095,7 +63023,7 @@ - + @@ -63115,7 +63043,7 @@ - + @@ -63136,25 +63064,25 @@ - - - - + + + + - + - - + + - + @@ -63169,23 +63097,23 @@ - + - + - + - + - + @@ -63199,7 +63127,7 @@ - + @@ -63258,50 +63186,50 @@ - - + + - + - + - + - - + + - + - + - + - - + + - - + + - + - + @@ -63310,8 +63238,8 @@ - - + + @@ -63350,7 +63278,7 @@ - + @@ -63378,14 +63306,14 @@ - + - + - + @@ -63393,7 +63321,7 @@ - + @@ -63401,9 +63329,9 @@ - + - + @@ -63412,11 +63340,11 @@ - - - - - + + + + + @@ -63454,7 +63382,7 @@ - + @@ -63489,7 +63417,7 @@ - + @@ -63517,7 +63445,7 @@ - + @@ -63545,7 +63473,7 @@ - + @@ -63558,7 +63486,7 @@ - + @@ -63568,7 +63496,7 @@ - + @@ -63580,7 +63508,7 @@ - + @@ -63588,7 +63516,7 @@ - + @@ -63606,30 +63534,30 @@ - + - + - + - + - + - + - + - + - + @@ -63650,7 +63578,7 @@ - + @@ -63659,7 +63587,7 @@ - + @@ -63672,49 +63600,49 @@ - - - - - - + + + + + + - + - + - + - + + + + + + + + + - - - - - - - - - + - - + + - - + + @@ -63722,8 +63650,8 @@ - - + + @@ -63770,17 +63698,17 @@ - + - + - + @@ -63791,7 +63719,7 @@ - + @@ -63804,6 +63732,14 @@ + + + + + + + + @@ -63817,14 +63753,14 @@ - + - + - + @@ -63852,15 +63788,15 @@ - + - + - + @@ -63869,7 +63805,7 @@ - + @@ -63910,16 +63846,16 @@ - + - + - + @@ -63931,28 +63867,28 @@ - + - + - - - - - + + + + + - - + + @@ -63963,7 +63899,7 @@ - + @@ -63975,11 +63911,11 @@ - + - + - + @@ -63992,7 +63928,7 @@ - + @@ -64003,7 +63939,7 @@ - + @@ -64014,7 +63950,7 @@ - + @@ -64022,21 +63958,29 @@ - + - + - + - + + + + + + + + + @@ -64061,32 +64005,32 @@ - - - - - - - - - - - + + + + + + + + + + + + - - + - + - + @@ -64111,7 +64055,7 @@ - + @@ -64137,14 +64081,14 @@ - + - + @@ -64182,7 +64126,7 @@ - + @@ -64196,18 +64140,18 @@ - + - + - + @@ -64226,7 +64170,7 @@ - + @@ -64270,55 +64214,55 @@ - - + + - - + + - + - - + + - + - + - - + + - + - - + + - + @@ -64356,50 +64300,42 @@ - - + + - + - + - + - + - + - - - - - - - - - - + + - + @@ -64408,7 +64344,7 @@ - + @@ -64419,19 +64355,19 @@ - + - + - + - + @@ -64445,22 +64381,22 @@ - - - - - - - - - - - - - + + + + + + + + + + + + + - + @@ -64473,7 +64409,7 @@ - + @@ -64541,42 +64477,42 @@ - - - + + + - - - + + + - + - + - + - + - - + + - - + + @@ -64590,7 +64526,7 @@ - + @@ -64598,7 +64534,7 @@ - + @@ -64607,7 +64543,7 @@ - + @@ -64615,7 +64551,7 @@ - + @@ -64629,9 +64565,9 @@ + - - + @@ -64666,106 +64602,106 @@ - + - + - + - + - + - - + + - + - + - + - + - + - + - + - + - + - + - + - - + + - + - + - + - + - + @@ -64777,17 +64713,17 @@ - + - + - + @@ -64815,7 +64751,7 @@ - + @@ -64823,10 +64759,10 @@ - + - + @@ -64847,7 +64783,7 @@ - + @@ -64858,7 +64794,7 @@ - + @@ -64881,48 +64817,48 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -64937,140 +64873,140 @@ - + - + - - - - - + + + + + + - + - - - + + - + - + - + - + - - + + - + - + - + - + - + - + - + - + - + - + - - + + + + + + - + - - - - - + - - + + - - + + - - + + - + - + - + - + - + @@ -65091,7 +65027,7 @@ - + @@ -65099,40 +65035,40 @@ - + - + - + - + - + - + - + - + - + @@ -65162,15 +65098,15 @@ - + - + - + - + @@ -65178,7 +65114,7 @@ - + @@ -65186,54 +65122,54 @@ - + - + - + - + - + - - + + - + - + - + - + - + @@ -65269,15 +65205,15 @@ - + - + - + - + @@ -65285,31 +65221,31 @@ - + - + - + - + - + - + - + - + - + - + @@ -65330,92 +65266,92 @@ - + - + - + - + - + - + - + - + - + + - - - - - - - + + + + + + - + - + - - + + - + - - + + - - + + - - + + - - + + - + - + - + @@ -65425,13 +65361,13 @@ - + - + @@ -65440,49 +65376,49 @@ - + - + - + - + - - + + - - - - + + + + - - + + - - + + - - + + - + @@ -65508,7 +65444,7 @@ - + @@ -65528,36 +65464,36 @@ - + - + - + - + - + - + - + - + - + - + - + @@ -65568,64 +65504,64 @@ - + - + - + - + - - - - - - + + + + + + + - - + - - + + - - + + - + - + - + - + - + @@ -65634,97 +65570,97 @@ - + - + - + - + - - + + - + - - - + + + - + - + - + - - + + - - + + - - + + - + - + - + - + - + - + - + - + - + - + - + @@ -65739,195 +65675,195 @@ - + - + - + - + - - + + + - - - - - - - + + + + + + - + - + - + - + - + - + - - + + - - + + - - + + - + - + - + - + - + - - + + - + - - - + + + - + - + - - + + + + + + - + + + - + + - - - + - - - - - - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -65936,7 +65872,7 @@ - + @@ -65956,35 +65892,35 @@ - + - + - + - + - + - + - - - - - - - + + + + + + + + - - - + + - + @@ -65994,72 +65930,72 @@ - + - + - + - - + + + + + + - - - - - + - - + + - - + + - - + + - + - + - + - + - + - + - + - + @@ -66068,7 +66004,7 @@ - + @@ -66088,53 +66024,53 @@ - - + + + - - - - - + + + + - + - + - + - - + + - - + + - - + + - - + + - - + + - + @@ -66184,30 +66120,30 @@ - + - + - + - + - + - + - + @@ -66216,7 +66152,7 @@ - + @@ -66239,21 +66175,21 @@ - + - + - + - + - + - + @@ -66262,110 +66198,110 @@ - - - - + + + + + - - + - - - - + + + + - + - + - + - + - + + + + + - - - - - + - + - + - + - + - + - + - + - - - - - + + + + + - + - + - + - + - - + + @@ -66373,13 +66309,13 @@ - - + + - - + + @@ -66394,33 +66330,33 @@ - + - + - + - - + + - + - + - + @@ -66428,24 +66364,24 @@ - + - + - - + + - + - + @@ -66453,24 +66389,24 @@ - + - + - - + + - + - + @@ -66478,235 +66414,235 @@ - - + + - + - - + + - + - + - - - + + + - + - + - + - + - + - + - - - - - - - - - - - - + + + + + + + + + + + + - - + + - - + + - - + + - - + + - + - - + + - - + + - - + + - - + + - - + + - - - + + + - + - + - + - + - + - + - + - + - - + + - + - + - + - + - + - + - + - - - + + + - + - - + + - + - + - + - - + + - - + + - + - + - + - - + + - + - + - + - + - - + + @@ -66715,65 +66651,65 @@ - + - + - + - - + + - + - + - + - + - + - + - + - + - + - + - + @@ -66785,59 +66721,59 @@ - + - - - - - - - + + + + + + + - + - + - + - - + + - + - + - + - + @@ -66851,29 +66787,29 @@ - + - + - + - + - + - + - + @@ -66882,14 +66818,14 @@ - - - - - - + + + + + + - + @@ -66898,7 +66834,7 @@ - + @@ -66910,46 +66846,46 @@ - + - + - + - + - - + + - - + + - - + + - + @@ -66960,12 +66896,12 @@ - + - + @@ -66980,14 +66916,14 @@ - - - - - - + + + + + + - + @@ -67004,46 +66940,46 @@ - - + + - - + + - - - + + + - - + + - - - - - - + + + + + + - + @@ -67056,26 +66992,26 @@ - + - - + + - - + + - + @@ -67086,40 +67022,40 @@ - - - + + + - + - + - + - + - + - + - + @@ -67130,25 +67066,25 @@ - + + - - - - + + + - - + + - - + + @@ -67156,30 +67092,30 @@ - + - - + + - + - + - + - + - + @@ -67203,44 +67139,44 @@ - - - + + + - + - - + + - + - + - + - - + + - + @@ -67251,30 +67187,22 @@ - + - + - + - + - - - - - - - - - + @@ -67282,7 +67210,7 @@ - + @@ -67300,7 +67228,7 @@ - + @@ -67378,39 +67306,39 @@ - - - - - + + + + + - + - - - + + + - - - + + + - + - + - + - + - + @@ -67419,10 +67347,10 @@ - + - + @@ -67488,10 +67416,10 @@ - - + + - + @@ -67499,25 +67427,25 @@ - + - + - + - + - + - + @@ -67526,7 +67454,7 @@ - + @@ -67538,12 +67466,12 @@ - + - + - + @@ -67573,24 +67501,24 @@ - + - - - - + + + + - + - + - + @@ -67599,115 +67527,115 @@ - + - - + + - - + + - - + + - - + + - + - + - + - + - + + + - - - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - + + @@ -67745,9 +67673,9 @@ - - - + + + @@ -67772,144 +67700,144 @@ - - - - - + + + + + - - - - - + + + + + - - + + - - - + + + - - - - - + + + + + - - - + + + - - - + + + - - + + - - - - - + + + + + - - - - - + + + + + - - + + - - - - - + + + + + - - - - + + + + - - + + - - - - - + + + + + - - - + + + - - - + + + - - + + - + - + - + - + - - + + - + - + - + - + - + @@ -67924,13 +67852,13 @@ - + - + @@ -67938,15 +67866,15 @@ - + - + - + @@ -67964,16 +67892,16 @@ - + - + - + @@ -67985,22 +67913,22 @@ - + - + - + - + @@ -68009,7 +67937,7 @@ - + @@ -68045,10 +67973,10 @@ - + - + @@ -68059,7 +67987,7 @@ - + @@ -68076,7 +68004,7 @@ - + @@ -68091,7 +68019,7 @@ - + @@ -68102,10 +68030,10 @@ - + - + @@ -68119,7 +68047,7 @@ - + @@ -68130,24 +68058,24 @@ - + - + - + - + - + - + @@ -68159,7 +68087,7 @@ - + @@ -68171,7 +68099,7 @@ - + @@ -68179,74 +68107,74 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - + + @@ -68254,23 +68182,23 @@ - - - - - + + + + + - - - - - - + + + + + + - + @@ -68303,7 +68231,7 @@ - + @@ -68312,7 +68240,7 @@ - + @@ -68323,52 +68251,52 @@ - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + - - - - - - - + + + + + + - - - - - - - - - - - + + + + + + + + + + + - - - - - - + + + + + @@ -68390,17 +68318,17 @@ - + - + - + @@ -68422,123 +68350,123 @@ - + - + - - + + - - + + - - + + - - + + - - + + - + - - - + + + - - + + - + - + - - + + - - + + - - + + - + + + + + + + + + + - + + - + + - - - - - - - - - - - - - + + - + - - - - + + + + @@ -68621,7 +68549,7 @@ - + @@ -68646,11 +68574,11 @@ - + - + @@ -68677,7 +68605,7 @@ - + @@ -68692,7 +68620,7 @@ - + @@ -68701,23 +68629,23 @@ - + - + - + - - + + @@ -68737,7 +68665,7 @@ - + @@ -68745,11 +68673,11 @@ - + - + @@ -68823,7 +68751,7 @@ - + @@ -68833,7 +68761,7 @@ - + @@ -68848,13 +68776,13 @@ - - + + - + @@ -68922,7 +68850,7 @@ - + @@ -68942,27 +68870,27 @@ - - - - + + + + - + - - + + - + @@ -68982,7 +68910,6 @@ - @@ -69002,7 +68929,7 @@ - + @@ -69025,7 +68952,7 @@ - + @@ -69049,7 +68976,7 @@ - + @@ -69064,7 +68991,7 @@ - + @@ -69106,19 +69033,19 @@ - + - + - + @@ -69167,7 +69094,7 @@ - + @@ -69176,17 +69103,17 @@ - + - + - + @@ -69195,7 +69122,7 @@ - + @@ -69203,7 +69130,7 @@ - + @@ -69211,7 +69138,7 @@ - + @@ -69221,28 +69148,28 @@ - + - + - + - + - + @@ -69258,23 +69185,23 @@ - - + + - - + + - + - + @@ -69288,9 +69215,9 @@ - + - + @@ -69301,14 +69228,14 @@ - + - + @@ -69329,20 +69256,6 @@ - - - - - - - - - - - - - - @@ -69365,42 +69278,38 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -69414,9 +69323,10 @@ - - - + + + + @@ -69428,17 +69338,17 @@ - + - + - + @@ -69460,8 +69370,8 @@ - - + + @@ -69531,12 +69441,12 @@ - + - + @@ -69544,13 +69454,13 @@ - - + + - + @@ -69569,12 +69479,12 @@ - + - + @@ -69590,7 +69500,7 @@ - + @@ -69598,61 +69508,61 @@ - + - + - + - + - + - + - + - + - - + + - + - + @@ -69660,12 +69570,12 @@ - + - + - + @@ -69689,16 +69599,17 @@ - - - - - + + + + + + - + @@ -69727,7 +69638,7 @@ - + @@ -69743,12 +69654,12 @@ - + - + @@ -69759,51 +69670,51 @@ - + - + - + - + - + - + - + - + - + - + - + - - - - - - - - - - - - + + + + + + + + + + + + @@ -69814,31 +69725,31 @@ - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + - - + + @@ -69852,21 +69763,21 @@ - - + + - + - + @@ -69892,96 +69803,97 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - - + + - + - + - - + + - - + + - + - - - - + + + + + - + - + - + - + @@ -69990,7 +69902,7 @@ - + @@ -70041,16 +69953,16 @@ - + - + - + @@ -70109,25 +70021,31 @@ + + + + + + - - + + - + - + - + - - + + - + @@ -70196,7 +70114,7 @@ - + @@ -70238,55 +70156,55 @@ - - + + - + - - - - - + + - + - + - + - - + + - - + + - + - + - + - + + + + - + - + @@ -70295,13 +70213,13 @@ - + - + @@ -70310,10 +70228,10 @@ - + - + @@ -70343,7 +70261,7 @@ - + @@ -70361,33 +70279,33 @@ - + - + - + - + - + - + - - + + - + - + @@ -70396,7 +70314,7 @@ - + @@ -70404,34 +70322,34 @@ - + - + - + - + - + - + - + - + - + - + @@ -70440,10 +70358,10 @@ - + - + @@ -70466,34 +70384,34 @@ - + - + - + - + - + - + - + - - + + - + @@ -70501,113 +70419,114 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + - - + + - - + + - - + + - - + + - - - + + + - - + + - - + + - - - + + + - - - - + + + + - - + + - - + + - - + + - + - - + + - + @@ -70627,13 +70546,13 @@ - + - + - + @@ -70645,7 +70564,7 @@ - + @@ -70653,59 +70572,59 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -70717,16 +70636,16 @@ - - + + - + - + - + @@ -70746,187 +70665,187 @@ - + - + - + - + - + - + - + - + - + - + - + - - - - + + + + - + - + - + - + - + - + - + - + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + - - + + - - + + - + - - + + - - + + - - - + + + + - - - + + - - - - - + - - - + + + + + + + - - + + - - + + - - + + - - + + - - + + - - - + + + - - + + - - + + @@ -70972,25 +70891,25 @@ - + - + - + - + - + - + - + @@ -70998,14 +70917,14 @@ - - - - - + + + + + - + @@ -71049,14 +70968,14 @@ - + - + @@ -71064,7 +70983,7 @@ - + @@ -71108,37 +71027,37 @@ - + - + - + - + - + - + - + - + - + @@ -71153,7 +71072,7 @@ - + @@ -71161,8 +71080,8 @@ - - + + @@ -71170,34 +71089,34 @@ - - - - - + + + + + - - + + - + - + - + - + @@ -71208,12 +71127,12 @@ - + - + @@ -71225,7 +71144,7 @@ - + @@ -71239,16 +71158,16 @@ - + - + - + @@ -71263,7 +71182,7 @@ - + @@ -71271,13 +71190,13 @@ - + - + @@ -71289,73 +71208,73 @@ - - + + - + - + - + - - + + - - + + - - + + - - + + - - + + - - + + - + @@ -71398,7 +71317,7 @@ - + @@ -71444,26 +71363,26 @@ - + - + - + - - - + + + @@ -71477,12 +71396,12 @@ - + - + - + @@ -71496,7 +71415,7 @@ - + @@ -71508,13 +71427,13 @@ - - - - - - - + + + + + + + @@ -71556,7 +71475,7 @@ - + @@ -71570,7 +71489,7 @@ - + @@ -71620,38 +71539,38 @@ - + - + - + - + - - + + - + - + @@ -71659,7 +71578,7 @@ - + @@ -71682,7 +71601,7 @@ - + @@ -71690,36 +71609,36 @@ - + - + - + - + - + - + - + @@ -71727,28 +71646,28 @@ - - + + - - - - - - + + + + + + - + - + @@ -71757,22 +71676,22 @@ - + - + - - - - - - + + + + + + @@ -71853,7 +71772,7 @@ - + @@ -71886,11 +71805,11 @@ - + - + @@ -71903,7 +71822,7 @@ - + @@ -71911,14 +71830,14 @@ - + - + @@ -71937,7 +71856,7 @@ - + @@ -71952,7 +71871,7 @@ - + @@ -71960,19 +71879,19 @@ - + - + - - + + @@ -72007,40 +71926,40 @@ - + - + - - + + - + - + - + - + @@ -72056,7 +71975,7 @@ - + @@ -72073,66 +71992,66 @@ - + - + - + - + - + - + - + - + - + - + - + @@ -72144,38 +72063,38 @@ - + - + - + - + - + - + @@ -72183,7 +72102,7 @@ - + @@ -72191,7 +72110,7 @@ - + @@ -72199,13 +72118,13 @@ - + - + @@ -72213,7 +72132,7 @@ - + @@ -72258,7 +72177,7 @@ - + @@ -72266,10 +72185,10 @@ - + - + @@ -72281,15 +72200,15 @@ - + - + - + @@ -72297,33 +72216,33 @@ - + - - - - - - - - + + + + + + + + - + - + - + - + - + @@ -72333,32 +72252,32 @@ - + - + - + - + - + - + - - + + @@ -72375,11 +72294,11 @@ - + - + @@ -72387,64 +72306,64 @@ - + - + - + - + - + - + - + - + - + - + - + - - + + - + - + @@ -72458,36 +72377,36 @@ - + - + - + - + - - + + - + - + @@ -72496,13 +72415,13 @@ - - + + - + - + @@ -72510,48 +72429,48 @@ - - - + + + - + - + - - + + - + - + - + - + - + @@ -72597,12 +72516,12 @@ - - + + - - + + @@ -72642,20 +72561,20 @@ - - - - + + + + - + - + @@ -72667,7 +72586,7 @@ - + @@ -72685,13 +72604,13 @@ - + - + @@ -72703,7 +72622,7 @@ - + @@ -72721,14 +72640,14 @@ - + - + @@ -72742,7 +72661,7 @@ - + @@ -72763,14 +72682,14 @@ - + - + @@ -72784,7 +72703,7 @@ - + @@ -72829,7 +72748,7 @@ - + @@ -72840,7 +72759,7 @@ - + @@ -72856,12 +72775,12 @@ - + - + @@ -72876,8 +72795,8 @@ - - + + @@ -72885,26 +72804,26 @@ - + - + - - + + - + - + @@ -72913,15 +72832,15 @@ - + - + - + @@ -72930,71 +72849,71 @@ - + - - + + - + - + - + - + - - - - - - + + + + + + - + - + - + - + - + - + - + - + @@ -73003,53 +72922,53 @@ - + - + - + - + - + - + - + - + - + @@ -73076,9 +72995,9 @@ - - - + + + @@ -73104,14 +73023,14 @@ - + - + @@ -73126,34 +73045,34 @@ - - + + - + - + - + - + - + @@ -73172,7 +73091,7 @@ - + @@ -73186,12 +73105,12 @@ - - + + - - + + @@ -73206,7 +73125,7 @@ - + @@ -73263,15 +73182,15 @@ - + - + - + @@ -73291,99 +73210,99 @@ - + - + - + - + - + - + - + - + - - - - - - - - - + + + + + + + + + - - + + - - + + - - + + - - - + + + - - + + - - + + - + - + - + - + - + - - + + - + @@ -73394,7 +73313,7 @@ - + @@ -73403,8 +73322,8 @@ - - + + @@ -73427,14 +73346,14 @@ - - - - + + + + - + @@ -73442,12 +73361,12 @@ - + - + @@ -73456,38 +73375,38 @@ - + - + - + - + - + - + - + - + @@ -73499,55 +73418,55 @@ - + - + - + - + - + - + - - + + - + - + - - + + @@ -73557,7 +73476,7 @@ - + @@ -73567,7 +73486,7 @@ - + @@ -73577,73 +73496,73 @@ - + - + - + - + - + - + - - - + + + - - - - + + + + - + - + - + - + - + - + - + @@ -73652,21 +73571,21 @@ - + - + - - - - - - - + + + + + + + - + @@ -73674,20 +73593,20 @@ - + - + - + - + @@ -73702,7 +73621,7 @@ - + @@ -73711,16 +73630,16 @@ - + - + - + @@ -73730,19 +73649,19 @@ - + - + - + - + - + @@ -73750,13 +73669,13 @@ - + - + - + @@ -73783,14 +73702,14 @@ - - - - - - + + + + + + - + @@ -73800,7 +73719,7 @@ - + @@ -73808,26 +73727,26 @@ - + - - + + - - + + - - - + + + - + - - + + @@ -73860,27 +73779,27 @@ - - + + - - + + - - + + - + - + - - + + - + @@ -73889,18 +73808,18 @@ - + - + - - - + + + @@ -73927,19 +73846,19 @@ - + - + - + @@ -73949,35 +73868,35 @@ - + - - + + - + - + - - + + - + - + - + @@ -74000,13 +73919,13 @@ - + - + @@ -74014,7 +73933,7 @@ - + @@ -74043,29 +73962,29 @@ - - + + - - + + - - + + - + - - - + + + - - + + @@ -74085,11 +74004,11 @@ - + - - + + @@ -74100,55 +74019,55 @@ - - + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -74160,69 +74079,69 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - - + + + + - - + + - + - + - - + + @@ -74233,165 +74152,165 @@ - - - + + + - + - + - - - - + + + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - + + - + - + - + - - - + + + - + - + - + - + - + - - + + - + - + - - - + + + - - - + + + @@ -74402,19 +74321,19 @@ - + - - + + - + - + - + @@ -74447,37 +74366,37 @@ - + - + - + - + - + - + - + - - + + - - + + @@ -74488,8 +74407,8 @@ - - + + @@ -74500,55 +74419,55 @@ - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + - + - + - + - + - + - - + + - + @@ -74556,11 +74475,11 @@ - + - + @@ -74568,15 +74487,15 @@ - + - + - + @@ -74586,15 +74505,15 @@ - + - + - + @@ -74602,54 +74521,54 @@ - + - + - + - + - + - + - + - - + + - + - + - + @@ -74659,38 +74578,38 @@ - + - + - + - + - + - - - + + + - - + + - - + + @@ -74700,9 +74619,9 @@ - + - + @@ -74714,46 +74633,46 @@ - - + + - - + + - - + + - - + + - - + + - - + + - - + + - + - + - + - + - + @@ -74771,34 +74690,34 @@ - + - + - + - + - + - + - + - + - + @@ -74807,37 +74726,37 @@ - + - + - - - - + + + + - + - + - + - + - + - + - - + + @@ -74851,16 +74770,16 @@ - - + + - - + + @@ -74871,8 +74790,8 @@ - - + + @@ -74881,8 +74800,8 @@ - - + + @@ -74893,34 +74812,34 @@ - + - + - + - + - - + + - + - + - + - + - + @@ -74950,29 +74869,29 @@ - + - + - + - + - + - - + + @@ -74980,33 +74899,33 @@ - - - - - - - - - - - - + + + + + + + + + + + + - + - + - - + + @@ -75015,7 +74934,7 @@ - + @@ -75036,7 +74955,7 @@ - + @@ -75044,13 +74963,13 @@ - + - + @@ -75060,7 +74979,7 @@ - + @@ -75068,15 +74987,15 @@ - + - - + + - + @@ -75084,7 +75003,7 @@ - + @@ -75097,7 +75016,7 @@ - + @@ -75105,7 +75024,7 @@ - + @@ -75114,12 +75033,12 @@ - + - + @@ -75130,14 +75049,14 @@ - + - + - + @@ -75146,24 +75065,24 @@ - + - - - + + + - - - - + + + + - + @@ -75175,15 +75094,15 @@ - + - + - + @@ -75195,37 +75114,37 @@ - + - + - + - + - + - + - + - + - + @@ -75238,77 +75157,77 @@ - - + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -75316,12 +75235,12 @@ - + - + - + @@ -75330,7 +75249,7 @@ - + @@ -75339,53 +75258,53 @@ - - - - + + + + - - - + + + - + - + - + - + - - + + - + - + - + - + - + - + @@ -75394,50 +75313,50 @@ - + - + - + - + - + - + - - - - - - - - - - - + + + + + + + + + + + - + - + - - + + @@ -75448,79 +75367,79 @@ - + - + - + - + - - + + - - - + + + - + - - - + + + - - + + - - - + + + - - + + - + - + - + - + - + - + - + @@ -75528,60 +75447,60 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -75589,14 +75508,14 @@ - + - + @@ -75607,14 +75526,14 @@ - + - + @@ -75671,7 +75590,7 @@ - + @@ -75681,7 +75600,7 @@ - + @@ -75708,11 +75627,11 @@ - + - + @@ -75723,46 +75642,46 @@ - + - + - + - + - + - + - + - + - + - + - + @@ -75775,8 +75694,8 @@ - - + + @@ -75793,38 +75712,38 @@ - + - - - + + + - + - + - - + + - + - + @@ -75833,43 +75752,43 @@ - + - + - + - - + + - - - - + + + + - + - + @@ -75910,7 +75829,7 @@ - + @@ -75918,23 +75837,23 @@ - + - - - - - - + + + + + + - + - + @@ -75944,7 +75863,7 @@ - + @@ -75964,28 +75883,28 @@ - - + + - + - + - + - + @@ -75995,63 +75914,63 @@ - + - - - + + + - + - + - + - - + + - + - + - + - + - + - - - - - + + + + + - + @@ -76060,7 +75979,7 @@ - + @@ -76068,110 +75987,110 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - + + + - + - - - + + + - - - + + + - - + + - + - + @@ -76179,7 +76098,7 @@ - + @@ -76191,48 +76110,48 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -76253,7 +76172,7 @@ - + @@ -76330,15 +76249,15 @@ - + - + - + @@ -76352,235 +76271,235 @@ - + - - - - - - - - - - - - + + + + + + + + + + + + - + - - + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - + + - + - + - - + + - - + + - + - + - + - + - + - + - + - + - + - + - - + + - + - - + + - - + + - + - - + + - - - + + + - - - + + + - + - - - + + + - + - + - - + + - - - + + + - + @@ -76610,13 +76529,13 @@ - + - + - + @@ -76625,24 +76544,24 @@ - + - + - + - + - + @@ -76651,16 +76570,16 @@ - + - + - + @@ -76671,27 +76590,27 @@ - + - + - + - + - + - + - + - + @@ -76699,16 +76618,16 @@ - + - + - + @@ -76716,15 +76635,15 @@ - + - + - + - + @@ -76732,7 +76651,7 @@ - + @@ -76743,44 +76662,44 @@ - + - + - + - + - + - + - + - + - + - + - + - + @@ -76808,21 +76727,21 @@ - + - + - + - + - + @@ -76833,7 +76752,7 @@ - + @@ -76842,7 +76761,7 @@ - + @@ -76853,7 +76772,7 @@ - + @@ -76870,21 +76789,21 @@ - + - + - + - + @@ -76893,43 +76812,43 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -76938,13 +76857,13 @@ - + - + @@ -76956,51 +76875,51 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -77018,10 +76937,10 @@ - + - + @@ -77030,13 +76949,13 @@ - + - + - + @@ -77050,133 +76969,133 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - + - - + + - - + + - - + + - + - + - + - + - + - + - - + + - + - + - + - + - + - + - + @@ -77184,7 +77103,7 @@ - + @@ -77215,41 +77134,41 @@ - + - + - + - + - - + + - + - + - + - + - + @@ -77265,217 +77184,217 @@ - + - + - + - + - + - + - + - + - + - + - + - - + + - - + + - - - + + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - + + + - - + + - - + + - - + + - - + + - - - + + + - - + + - - + + - + - + - + - + - + - + - + - + - - + + - - + + - - + + @@ -77483,33 +77402,33 @@ - - + + - + - - + + - - + + - - + + @@ -77523,39 +77442,39 @@ - - - - + + + + + + + + + - - - - - - + - + - + - - + + - + - + - + @@ -77563,108 +77482,355 @@ - + - - - + + + - - - + + + - - + + - - + + - + - - + + - - - + + + - - - - - + + + + + - - - - - + + + + + - + - + - + - + - + - + - + - - + + - - - - - - - - - - - + + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -77676,7 +77842,7 @@ - + @@ -77684,7 +77850,7 @@ - + @@ -77693,10 +77859,10 @@ - + - + @@ -77717,7 +77883,7 @@ - + @@ -77729,7 +77895,7 @@ - + @@ -77738,15 +77904,15 @@ - + - + - + @@ -77758,7 +77924,7 @@ - + @@ -77766,10 +77932,10 @@ - + - + @@ -77786,7 +77952,7 @@ - + @@ -77806,181 +77972,181 @@ - + - + - + - - - - - - - - - - - - - + + + + + + + + + + + + + - + - + - - + + - + - + - + - - + + - + - + - + - + - - + + - + - - + + - + - - + + - - + + - - + + - + - + - + - - + + - + - - + + - + - - + + - + - - + + - + - + - + - - + + - + @@ -77988,205 +78154,205 @@ - + - + - - - + + + - + - + - + - + - + - + - + - + - + - - + + - - + + - + - + - - + + - - + + - + - + - + - + - + - + - + - + - + - + - + - + - + - - + + - - + + - + - + - - + + - - + + - + - + - + @@ -78197,59 +78363,59 @@ - - + + - - + + - - + + - - + + - + - + - + - - + + - + - - + + - - + + @@ -78258,72 +78424,72 @@ - - + + - - + + - - + + - - + + - + - + - + - + - - + + - - + + - + - + - + @@ -78346,7 +78512,7 @@ - + @@ -78357,8 +78523,8 @@ - - + + @@ -78375,25 +78541,25 @@ - + - + - - + + - + @@ -78402,52 +78568,52 @@ - + - + - + - - - + + + - + - + - + - + - + - - + + - + @@ -78461,24 +78627,24 @@ - + - + - + - + - + @@ -78487,7 +78653,7 @@ - + @@ -78496,45 +78662,45 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -78542,7 +78708,7 @@ - + @@ -78550,196 +78716,196 @@ - + - + - + - + - + - + - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + - - - + + + - + - + - + - + - - + + - + - + - + - + - + - - + + - - + + - + - + - + - + - + - + - + - - - - - - - - + + - - - - + + + + - - - + + + + + + + + + - - - - + + + + - - - - + + + + - - - + + + - - - - + + + + - - + + - + @@ -78747,49 +78913,49 @@ - + - + - + - + - + - + - + - + @@ -78797,7 +78963,7 @@ - + @@ -78805,7 +78971,7 @@ - + @@ -78813,137 +78979,137 @@ - - - + + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - + + + @@ -78960,7 +79126,7 @@ - + @@ -78970,46 +79136,46 @@ - + - + - + - + - - + + - - + + - + - + - + @@ -79024,19 +79190,19 @@ - + - + - + - + @@ -79063,42 +79229,42 @@ - + - + - + - + - + - + - + - + - + - + - + - + @@ -79112,279 +79278,279 @@ - + - + - + - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + - + - + - + - + - - + + - + - - - - - + + + + + - - + + - - - + + + - - - - - + + + + + - - - - + + + + - - - + + + - - + + - - + + - - - - - - - + + + + + + + - - + + - - + + - - - - - - - + + + + + + + - - - - - + + + + + - - + + - + - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - - + + + - - - - + + + + - - - + + + - - + + - - + + - - + + - + - + - + - - + + - - + + - - + + - + - + - + - + - + - + - + - - + + - + - + - + - + - + @@ -79395,16 +79561,16 @@ - + - + - + @@ -79432,7 +79598,7 @@ - + @@ -79444,14 +79610,14 @@ - - - - - - + + + + + + - + @@ -79460,237 +79626,237 @@ - + - + - + - + - + - + - + - + - + - + - + - + - - + + - + - - + + - - + + - + - + - + - + - - + + - - + + - - + + - + - + - + - + - + - + - - + + - - + + - + - - + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -79700,7 +79866,7 @@ - + @@ -79716,158 +79882,159 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - - + + + + - - + + - - + + - + - + - + - + - + + - + @@ -79878,30 +80045,30 @@ - - - + + + - - - - + + + + - - + + - - - + + + - - - + + + - - + + @@ -79909,97 +80076,97 @@ - + - - + + - + - + - + - - + + - - + + - - + + - + - + - + - + - + - + - + - + - + - + - + @@ -80007,58 +80174,58 @@ - - + + - + - - + + - + - + - + - + - + - - - - + + + + - + - + - + @@ -80076,13 +80243,13 @@ - - + + - - + + @@ -80091,41 +80258,41 @@ - + - + - + - + - + - + - + - - + + - + @@ -80156,11 +80323,11 @@ - + - + @@ -80171,7 +80338,7 @@ - + @@ -80183,21 +80350,137 @@ - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - + @@ -80205,21 +80488,21 @@ - + - + - + - + @@ -80231,199 +80514,199 @@ - + - + - + - + - + - + - + - + - + - - + + - + - + - + - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + - - + + - - + + - - - + + + - - + + - - + + - - + + - - + + - - + + - + - - + + - - - - - + + + + + - - - - - - + + + + + + - - + + - - - + + + - - - - + + + + - - - + + + - - + + - - - - - + + + + + - - + + - + - - - + + + - - - + + + - - - + + + - - + + - - - - + + + + - - + + - - - + + + - - + + - - - + + + - + @@ -80433,16 +80716,16 @@ - - + + - + - + @@ -80462,19 +80745,19 @@ - + - + - + - + @@ -80530,7 +80813,7 @@ - + @@ -80548,16 +80831,16 @@ - + - + - + @@ -80566,38 +80849,38 @@ - + - + - + - + - + - + - + - + - + - + - + - + @@ -80609,10 +80892,10 @@ - + - + @@ -80639,7 +80922,7 @@ - + @@ -80647,66 +80930,66 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -80735,10 +81018,10 @@ - + - + @@ -80746,7 +81029,7 @@ - + @@ -80754,13 +81037,13 @@ - + - + @@ -80769,14 +81052,14 @@ - + - + @@ -80793,13 +81076,13 @@ - + - + @@ -80816,94 +81099,94 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + @@ -80920,201 +81203,201 @@ - + - + - + - - - + + + - - + + - + - - + + - - + + - + - - + + - - + + - - + + - + - - + + - + - - + + - + - - + + - - + + - - + + - - + + - - + + - - + + - - - + + + - - - + + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - + - - + + - - + + - + - + - + - + - + - + - + @@ -81123,40 +81406,40 @@ - + - + - + - + - + - + - + - + - + - + @@ -81174,7 +81457,7 @@ - + @@ -81182,7 +81465,7 @@ - + @@ -81193,21 +81476,21 @@ - + - + - + @@ -81216,7 +81499,7 @@ - + @@ -81229,7 +81512,7 @@ - + @@ -81240,35 +81523,35 @@ - + - + - + - + - + - + @@ -81283,10 +81566,10 @@ - + - + @@ -81303,9 +81586,9 @@ - + - + @@ -81317,16 +81600,16 @@ - + - + - + - + @@ -81338,7 +81621,7 @@ - + @@ -81357,14 +81640,14 @@ - + - + @@ -81375,7 +81658,7 @@ - + @@ -81388,9 +81671,9 @@ - + - + @@ -81405,13 +81688,13 @@ - + - + @@ -81423,9 +81706,9 @@ - + - + @@ -81434,16 +81717,16 @@ - + - + - + - + @@ -81458,18 +81741,18 @@ - + - + - + @@ -81477,29 +81760,29 @@ - + - + - + - + - + - + - + - + - + @@ -81508,17 +81791,17 @@ - + - + - + - + - + @@ -81530,138 +81813,138 @@ - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -81669,32 +81952,32 @@ - + - + - + - + - + - + - + @@ -81703,10 +81986,10 @@ - + - + @@ -81715,13 +81998,13 @@ - + - + @@ -81735,43 +82018,43 @@ - + - + - + - + - + - + - + - + - + @@ -81791,34 +82074,34 @@ - + - + - + - + - + - + - + - + @@ -81830,7 +82113,7 @@ - + @@ -81848,13 +82131,13 @@ - + - + @@ -81880,16 +82163,16 @@ - + - + - + - + @@ -81940,10 +82223,10 @@ - + - + @@ -81954,7 +82237,7 @@ - + @@ -81998,27 +82281,27 @@ - + - + - + - + - + - + - + - + @@ -82084,7 +82367,7 @@ - + @@ -82110,7 +82393,7 @@ - + @@ -82154,7 +82437,7 @@ - + @@ -82183,13 +82466,13 @@ - + - + - + @@ -82197,90 +82480,90 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -82300,7 +82583,7 @@ - + @@ -82320,7 +82603,7 @@ - + @@ -82346,10 +82629,10 @@ - + - + @@ -82363,13 +82646,13 @@ - + - + - + @@ -82377,7 +82660,7 @@ - + @@ -82391,15 +82674,15 @@ - + - + - + @@ -82407,82 +82690,82 @@ - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - + + + - + - - + + - - + + - + - + - + @@ -82490,132 +82773,132 @@ - - - + + + - + - + - + - + - - + + - - - + + + - - - + + + - - + + - - - + + + - - + + - - + + - - + + - - - + + + - + - + - + - + - - + + - - + + - - + + - - - + + + - - - + + + - - - + + + - - - - + + + + - - + + - + @@ -82628,34 +82911,183 @@ - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + - + - + - + - + - + - + @@ -82663,7 +83095,7 @@ - + @@ -82672,16 +83104,16 @@ - + - + - + @@ -82695,7 +83127,7 @@ - + @@ -82706,25 +83138,25 @@ - - - - - - - - + + + + + + + + - + - + - + @@ -82737,7 +83169,7 @@ - + @@ -82748,7 +83180,7 @@ - + @@ -82760,7 +83192,7 @@ - + @@ -82772,25 +83204,25 @@ - + - + - + - + - + @@ -82798,135 +83230,135 @@ - + - + - + - - + + - - - + + + - - + + - + - + - - + + - + - + - + - + - + - + - + - - + + - + - + - + - + - + - + - + - + - + - - + + @@ -82937,38 +83369,38 @@ - + - + - + - + - + - + - + - + - + - + - + @@ -82977,87 +83409,87 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -83071,10 +83503,10 @@ - + - + @@ -83082,9 +83514,9 @@ - + - + @@ -83096,77 +83528,77 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - + - + - + - + - + - + - + - + - + - + @@ -83176,17 +83608,17 @@ - + - + - + @@ -83199,80 +83631,80 @@ - + - - + + - - - + + + - - - + + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - - + + + - + - + - + @@ -83284,113 +83716,113 @@ - - - - - + + + + + - + - + - - + + - + - - + + - + - + - + - + - + - + - + - + - + - - + + - - + + - + - - + + - - + + - + - + - + - + - + - + @@ -83400,173 +83832,173 @@ - + - + - + - + - + - + - + - + - + - + - - + + - - + + - - + + - - + + - + - + - + - + - - + + - - + + - + - + - + - + - - + + - + - + - + - - + + - - + + - + - + - + - + - + @@ -83576,13 +84008,13 @@ - + - + @@ -83592,17 +84024,17 @@ - + - + - + @@ -83619,20 +84051,20 @@ - + - + - + - + - - + + @@ -83640,36 +84072,36 @@ - - - - - + + + + + - + - + - - + + - + - - + + - + @@ -83678,13 +84110,13 @@ - + - + @@ -83693,10 +84125,10 @@ - + - + @@ -83705,10 +84137,10 @@ - + - + @@ -83716,12 +84148,12 @@ - + - + - + @@ -83729,21 +84161,21 @@ - + - + - + - + - + @@ -83751,7 +84183,7 @@ - + @@ -83760,19 +84192,19 @@ - + - + - + - + @@ -83780,7 +84212,7 @@ - + @@ -83789,7 +84221,7 @@ - + @@ -83797,7 +84229,7 @@ - + @@ -83805,25 +84237,25 @@ - + - + - + - + - + - + @@ -83831,10 +84263,10 @@ - + - + @@ -83842,25 +84274,25 @@ - + - + - + - + - - + + - + @@ -83873,9 +84305,9 @@ - + - + @@ -83884,12 +84316,12 @@ - + - + - + @@ -83898,12 +84330,12 @@ - + - + - + @@ -83911,12 +84343,12 @@ - + - + - + @@ -83924,19 +84356,19 @@ - + - + - + - + @@ -83949,7 +84381,7 @@ - + @@ -83963,47 +84395,47 @@ - + - - - - + + + + - + - + - + - + - + - + - + - + - + - + @@ -84014,68 +84446,23 @@ - - + - + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + @@ -84092,7 +84479,7 @@ - + @@ -84112,7 +84499,7 @@ - + @@ -84120,7 +84507,7 @@ - + @@ -84147,7 +84534,7 @@ - + @@ -84179,7 +84566,7 @@ - + @@ -84205,13 +84592,13 @@ - + - + @@ -84237,90 +84624,86 @@ - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -84328,12 +84711,12 @@ - + - + - + @@ -84354,81 +84737,81 @@ - + - + - + - + - + - + - - - - - - + + + + + + - - + + - + - - - + + + - - + + - + - + - + - + - + - + - + - + @@ -84437,7 +84820,7 @@ - + @@ -84446,7 +84829,7 @@ - + @@ -84460,10 +84843,10 @@ - + - + @@ -84472,16 +84855,16 @@ - + - + - + - + @@ -84505,85 +84888,85 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - + + @@ -84594,13 +84977,13 @@ - - + + - + @@ -84610,46 +84993,46 @@ - + - + - + - + - + - + - + - + - + - + - - + + @@ -84660,24 +85043,24 @@ - - - + + + - + - + - + @@ -84700,15 +85083,15 @@ - + - + - + @@ -84716,7 +85099,7 @@ - + @@ -84724,7 +85107,7 @@ - + @@ -84745,10 +85128,10 @@ - + - + @@ -84762,9 +85145,9 @@ - + - + @@ -84773,10 +85156,10 @@ - + - + @@ -84797,7 +85180,7 @@ - + @@ -84809,27 +85192,27 @@ - + - + - + - + - + - + @@ -84838,10 +85221,10 @@ - + - + @@ -84849,15 +85232,15 @@ - + - + - + @@ -84874,7 +85257,7 @@ - + @@ -84897,104 +85280,104 @@ - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - - - + + + - - + + - - + + - - + + - - + + - - + + - + - + - + - - + + @@ -85003,180 +85386,180 @@ - + - + - + - + - - + + - - + + - + - - + + - + - + - - + + - + - - + + - + - + - - - + + + - + - - + + - + - + - - + + - + - - + + - + - - + + - + - - + + - + - - + + - + - + - - + + - + - - + + - + - - - - - + + + + + - - + + - - + + - - - + + + - - + + - - - + + + - + - - + + - + - + - + @@ -85184,29 +85567,29 @@ - + - + - + - - - + + + - + - + @@ -85216,33 +85599,33 @@ - - + + - - + + - - + + - + - - + + - + - + - + @@ -85266,20 +85649,20 @@ - + - + - + @@ -85290,55 +85673,55 @@ - - + + - + - - - + + + - - - + + + - - - + + + - - + + - + - + - + - + @@ -85355,20 +85738,20 @@ - + - + - + - - - - + + + + - + @@ -85377,23 +85760,23 @@ - + - + - + - + - + - + @@ -85401,14 +85784,14 @@ - - + + - + - + @@ -85429,13 +85812,13 @@ - + - + - + @@ -85450,16 +85833,16 @@ - + - + - + @@ -85471,7 +85854,7 @@ - + @@ -85483,7 +85866,7 @@ - + @@ -85497,7 +85880,7 @@ - + @@ -85512,13 +85895,13 @@ - + - + @@ -85542,19 +85925,19 @@ - + - + - + - + @@ -85647,15 +86030,15 @@ - + - + - + @@ -85664,33 +86047,33 @@ - + - + - + - + - + - + - + @@ -85731,16 +86114,16 @@ - + - + - + - + @@ -85785,7 +86168,7 @@ - + @@ -85805,7 +86188,7 @@ - + @@ -85813,113 +86196,113 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -85933,12 +86316,12 @@ - + - + - + @@ -85947,21 +86330,21 @@ - + - + - + - + - + @@ -85987,22 +86370,22 @@ - + - + - + - + @@ -86010,12 +86393,12 @@ - + - + @@ -86024,524 +86407,524 @@ - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - - - - + + + + - - - - + + + + - - - - + + + + - - + + - - - - - + + + + + - - - + + + - - - - - - + + + + + + - - - - + + + + - - + + - - + + - - + + - - - + + + - - + + - - + + - - - + + + - - - - + + + + - - - + + + - - + + - - - - + + + + - - + + - - - - + + + + - - - + + + - - - + + + - - - - - + + + + + - - - - + + + + - - - - + + + + - - + + - - - - + + + + - - + + - - - + + + - - + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - - + + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - - + + + + - - + + - - + + - + - - + + - - + + - - - + + + - - + + - - + + - - - + + + - - + + - + - - + + - - - + + + - - - - + + + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - + + @@ -86550,37 +86933,37 @@ - + - + - + - + - + - - - + + + - + @@ -86597,31 +86980,31 @@ - + - + - + - - + + - - + + - + @@ -86629,32 +87012,32 @@ - + - + - + - - + + - + - + @@ -86671,9 +87054,9 @@ - + - + @@ -86700,48 +87083,48 @@ - - + + - + - + - + - + - + - + - + - + - + - + @@ -86751,7 +87134,7 @@ - + @@ -86760,10 +87143,10 @@ - + - + @@ -86773,7 +87156,7 @@ - + @@ -86785,13 +87168,13 @@ - + - + @@ -86799,32 +87182,32 @@ - - - + + + - + - + - + - + - + - + @@ -86832,69 +87215,69 @@ - + - + - + - - + + - + - + - + - + - + - - + + - + - + - + - + - + @@ -86902,7 +87285,7 @@ - + @@ -86910,89 +87293,89 @@ - + - - + + - + - + - + - + - - + + - + - + - + - + - + - + - - + + - - + + - - + + - + - + - + @@ -87002,7 +87385,7 @@ - + @@ -87010,118 +87393,118 @@ - - + + - - + + - + - + - + - + - + - + - + - + - + - + - + - + - + - - + + - + - + - + - + - - + + - - + + - - + + @@ -87129,8 +87512,8 @@ - - + + @@ -87138,153 +87521,153 @@ - - + + - - + + - + - + - + - + - - + + - - + + - + - + - + - + - + - + - - + + - - + + - - + + - - + + - - - + + + - - + + - + - + - - + + - - + + - - - + + + - - - + + + - + - + - + - + - + @@ -87296,56 +87679,56 @@ - - + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -87369,7 +87752,7 @@ - + @@ -87378,7 +87761,7 @@ - + @@ -87390,97 +87773,97 @@ - - - - - - - - - - + + + + + + + + + + - + - + - - + + - + - + - + - - + + - - + + - - + + - + - + - + - - + + - + - + - + - + @@ -87491,55 +87874,55 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -87572,13 +87955,13 @@ - + - + - + @@ -87587,10 +87970,10 @@ - + - + @@ -87605,7 +87988,7 @@ - + @@ -87632,28 +88015,28 @@ - + - + - + - + - + @@ -87664,10 +88047,10 @@ - + - + @@ -87684,18 +88067,18 @@ - + - + - + - + - + @@ -87704,16 +88087,16 @@ - + - + - + @@ -87724,7 +88107,7 @@ - + @@ -87759,80 +88142,80 @@ - - - + + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -87852,90 +88235,90 @@ - + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + - - - + + + - + - + - - - + + + - + - + - + - - + + @@ -87947,144 +88330,149 @@ - - + + - - + + - + - + - - - + + + + + + + + - - - + + + - - - + + + - - - + + + - - - - - - + + + + + + - - - + + + - - + + - - + + - - - + + + - - - + + + - - - + + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - - + + + - - - - + + + + - - + + - - + + - - + + @@ -88092,10 +88480,10 @@ - - + + - + @@ -88149,7 +88537,7 @@ - + @@ -88158,19 +88546,19 @@ - + - + - + - + - + @@ -88179,15 +88567,15 @@ - + - + - + - + @@ -88196,16 +88584,16 @@ - + - + - + - + @@ -88220,10 +88608,10 @@ - + - + @@ -88244,15 +88632,15 @@ - + - + - + - + @@ -88263,25 +88651,25 @@ - + - - - - - - - - - - + + + + + + + + + + - + - + @@ -88293,168 +88681,168 @@ - + - - + + - + - + - - + + - - + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - + + + - - + + - + - + - + - + - + - + - + - + - + - + - + @@ -88468,19 +88856,19 @@ - + - + - + - + - + @@ -88500,52 +88888,52 @@ - - - - - + + + + + - - - + + + - + - + - + - - - - + + + + - + - + - + - + @@ -88557,51 +88945,51 @@ - + - - - + + + - + - + - + - + - + - + - + - + - + @@ -88609,10 +88997,10 @@ - + - + @@ -88621,7 +89009,7 @@ - + @@ -88629,258 +89017,258 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + - - + + - - + + - - + + - - + + - - - + + + - - + + - - - - + + + + - - - - - + + + + + - - + + - - + + - - - + + + - - - + + + - - - + + + - - - + + + - - + + - - - - + + + + - - - - + + + + - - + + - - + + - - - + + + - - + + - - + + - - - + + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - + - - + + @@ -88919,11 +89307,11 @@ - + - + @@ -88942,13 +89330,13 @@ - - + + - + @@ -88977,35 +89365,35 @@ - + - + - + - + - + - + - + - + - + @@ -89023,58 +89411,58 @@ - - - - - - + + + + + + - + - + - + - + - - + + - - + + - - + + - - + + - - + + - + @@ -89088,8 +89476,8 @@ - - + + @@ -89105,11 +89493,11 @@ - + - + @@ -89155,7 +89543,7 @@ - + @@ -89172,12 +89560,12 @@ - + - + @@ -89408,7 +89796,7 @@ - + @@ -89425,7 +89813,7 @@ - + @@ -89433,16 +89821,16 @@ - + - + - + @@ -89468,22 +89856,22 @@ - + - + - + - + - + - + @@ -89493,7 +89881,7 @@ - + @@ -89510,44 +89898,44 @@ - + - + - + - + - + - + - + - + - + - + - + - + @@ -89558,7 +89946,7 @@ - + @@ -89566,9 +89954,9 @@ - + - + @@ -89580,7 +89968,7 @@ - + @@ -89588,53 +89976,53 @@ - - - - - - - - - + + + + + + + + + - - + + - + - + - - + + - - + + - - + + - + - + @@ -89643,23 +90031,23 @@ - - + + - + - + - + - + @@ -89685,7 +90073,7 @@ - + @@ -89694,16 +90082,16 @@ - + - + - + - + @@ -89712,9 +90100,9 @@ - + - + @@ -89726,7 +90114,7 @@ - + @@ -89740,7 +90128,7 @@ - + @@ -89751,7 +90139,7 @@ - + @@ -89759,123 +90147,123 @@ - + - + - + - + - + - + - + - + - + - - - - - - - - + + + + + + + + - + - - - + + + - - + + - - + + - + - + - - - - - - + + + + + + - - - - + + + + - - - + + + - - - + + + - - - - - + + + + + - - - - + + + + - - - - - + + + + + - - + + - - - - - + + + + + - - - + + + - - + + @@ -89892,69 +90280,69 @@ - + - - + + - + - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + - + - - + + - + - + - + - + - + - + - + @@ -89972,19 +90360,19 @@ - + - + - + - + - + @@ -89998,22 +90386,22 @@ - + - + - + - + @@ -90061,7 +90449,7 @@ - + @@ -90079,16 +90467,16 @@ - + - + - + @@ -90097,19 +90485,19 @@ - + - + - + - + - + @@ -90117,129 +90505,129 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -90266,7 +90654,7 @@ - + @@ -90278,25 +90666,25 @@ - + - + - + - + - + - + @@ -90319,19 +90707,19 @@ - + - + - + @@ -90376,11 +90764,11 @@ - + - - + + @@ -90391,7 +90779,7 @@ - + @@ -90403,7 +90791,7 @@ - + @@ -90414,7 +90802,7 @@ - + @@ -90422,7 +90810,7 @@ - + @@ -90524,13 +90912,13 @@ - + - + @@ -90573,12 +90961,12 @@ - + - + - + @@ -90587,15 +90975,15 @@ - + - + - + @@ -90615,12 +91003,12 @@ - + - + - + @@ -90659,21 +91047,21 @@ - + - + - + - + @@ -90700,13 +91088,13 @@ - + - + @@ -90748,7 +91136,7 @@ - + @@ -90772,169 +91160,169 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -90961,7 +91349,7 @@ - + @@ -90970,26 +91358,26 @@ - + - + - + - + - + - + - + @@ -91001,62 +91389,62 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -91077,10 +91465,10 @@ - + - + @@ -91088,32 +91476,32 @@ - + - + - + - + - + - + - + @@ -91125,16 +91513,16 @@ - + - + - + @@ -91145,7 +91533,7 @@ - + @@ -91166,7 +91554,7 @@ - + @@ -91174,18 +91562,18 @@ - + - + - + - + - + @@ -91199,7 +91587,7 @@ - + @@ -91216,24 +91604,24 @@ - + - + - + - + - + - + @@ -91248,50 +91636,50 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -91300,16 +91688,16 @@ - + - + - + @@ -91318,60 +91706,60 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -91383,16 +91771,16 @@ - + - + - + - + @@ -91407,10 +91795,10 @@ - + - + @@ -91419,22 +91807,22 @@ - + - + - + - + - + @@ -91446,7 +91834,7 @@ - + @@ -91461,89 +91849,89 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -91552,27 +91940,27 @@ - + - + - + - + - + @@ -91602,73 +91990,73 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -91677,7 +92065,7 @@ - + @@ -91740,61 +92128,61 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -91805,7 +92193,7 @@ - + @@ -91814,7 +92202,7 @@ - + @@ -91841,13 +92229,13 @@ - + - + @@ -91856,9 +92244,9 @@ - + - + @@ -91873,7 +92261,7 @@ - + @@ -91881,10 +92269,10 @@ - + - + @@ -91892,77 +92280,77 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -91980,7 +92368,7 @@ - + @@ -91989,17 +92377,17 @@ - + - + - + - + @@ -92017,15 +92405,15 @@ - + - + - + @@ -92034,24 +92422,24 @@ - + - + - + - + - + - + @@ -92060,7 +92448,7 @@ - + @@ -92068,12 +92456,12 @@ - + - + - + @@ -92088,26 +92476,26 @@ - + - + - + - + - + - + - + @@ -92131,7 +92519,7 @@ - + @@ -92142,7 +92530,7 @@ - + @@ -92156,12 +92544,12 @@ - + - + - + @@ -92176,36 +92564,36 @@ - + - + - + - + - + - + - + - + - + - + - + @@ -92243,23 +92631,23 @@ - + - + - + - + @@ -92267,19 +92655,19 @@ - + - + - + - + @@ -92309,33 +92697,33 @@ - + - + - + - + - + - + - + - + - + - + @@ -92346,53 +92734,53 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -92412,34 +92800,34 @@ - + - + - + - + - + - + - + - + @@ -92456,9 +92844,9 @@ - + - + @@ -92497,22 +92885,22 @@ - + - + - + - + - + - + @@ -92527,68 +92915,68 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -92602,7 +92990,7 @@ - + @@ -92617,7 +93005,7 @@ - + @@ -92625,62 +93013,62 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -92710,7 +93098,7 @@ - + @@ -92722,44 +93110,44 @@ - + - + - + - + - + - + - + - + - + - + @@ -92773,50 +93161,50 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -92825,100 +93213,100 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -92945,9 +93333,9 @@ - + - + @@ -92956,35 +93344,35 @@ - + - + - + - + - + - + - + - + - + @@ -92993,21 +93381,21 @@ - + - + - + - + - + @@ -93027,7 +93415,7 @@ - + @@ -93035,15 +93423,15 @@ - + - + - + - + @@ -93052,16 +93440,16 @@ - + - + - + @@ -93075,819 +93463,819 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - + - - + + - + - - + + - + - + - + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - - - - - - + + + - - - - - - - - - - + + - - - - - + + - - - - + + - - - - + + - - - + + - - - - - - - - + + + - - - + + + + - - - - + + + - - - - - + + + + - - - - - - - - - - + + + - - - - - - - - - - - - - - - + + - - - - - - - - - - - - - - - - + + - - - - - - - + + + - - - - - - + + + - - - - + + + - - - - + + + - - - - - + + + - - - - - - - + + + - - - - - - - - - - - - - + + + - - + - - - - + - - - + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - + + + - - + + - - + + - - + + - - + + - + - - + + - - - - + + + + - - - + + + - - - - + + + + - - - + + + - - - + + + - + - - - + + + - - - + + + - + - - + + - - - + + + - - + + - - + + - - - + + + - - + + - - - - - + + + + + - - - - + + + + @@ -93896,333 +94284,333 @@ - + - - - + + + - - - + + + - - - - - + + + + + - - - - + + + + - - - + + + - - + + - - - + + + - - + + - + - - + + - - + + - - - - + + + + - - - - + + + + - - + + - + - - + + - - - + + + - - - - + + + + - - + + - + - - + + - - + + - - + + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - + - - + + + - - + + - + - - + - - + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - + - + - - - - - - + + + + + + - + - + @@ -94234,7 +94622,7 @@ - + @@ -94243,13 +94631,13 @@ - + - + @@ -94266,12 +94654,12 @@ - + - + @@ -94283,7 +94671,7 @@ - + @@ -94297,20 +94685,20 @@ - + - + - + - + @@ -94322,18 +94710,18 @@ - - - - - - - - - - + + + + + + + + + + - + @@ -94377,42 +94765,42 @@ - + - + - + - - + + - - + + - - + + - - + + @@ -94426,7 +94814,7 @@ - + @@ -94434,29 +94822,29 @@ - + - + - + - - + + - + - - + + @@ -94474,30 +94862,30 @@ - - - + + + - - + + - - + + - + - + - + @@ -94511,7 +94899,7 @@ - + @@ -94609,10 +94997,10 @@ - + - + @@ -94654,7 +95042,7 @@ - + @@ -94716,10 +95104,10 @@ - + - + @@ -94782,7 +95170,7 @@ - + @@ -94793,141 +95181,141 @@ - - - - - + + + + + - + - - + + - + - - - - - - - - + + + + + + + + - + - - + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - + + - - + + - - + + - + - + - + - + - + - + @@ -94936,10 +95324,10 @@ - + - + @@ -94948,10 +95336,10 @@ - + - + @@ -94960,7 +95348,7 @@ - + @@ -94972,10 +95360,10 @@ - + - + @@ -95002,18 +95390,18 @@ - + - + - + - + - + @@ -95048,37 +95436,37 @@ - + - + - + - + - + - + - + - + - + @@ -95086,7 +95474,7 @@ - + @@ -95101,13 +95489,13 @@ - + - + - + @@ -95116,15 +95504,15 @@ - + - + - + - + @@ -95133,7 +95521,7 @@ - + @@ -95148,10 +95536,10 @@ - + - + @@ -95159,50 +95547,50 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -95211,18 +95599,18 @@ - + - + - + - + @@ -95245,7 +95633,7 @@ - + @@ -95254,12 +95642,12 @@ - + - + @@ -95270,7 +95658,7 @@ - + @@ -95281,15 +95669,15 @@ - + - - + + - + @@ -95297,15 +95685,15 @@ - + - + - + @@ -95316,7 +95704,7 @@ - + @@ -95324,10 +95712,10 @@ - + - + @@ -95338,12 +95726,12 @@ - + - + @@ -95357,15 +95745,15 @@ - + - + - + - + @@ -95428,13 +95816,13 @@ - + - + - + @@ -95443,7 +95831,7 @@ - + @@ -95454,7 +95842,7 @@ - + @@ -95462,23 +95850,23 @@ - + - + - + - + - + - + - + @@ -95528,7 +95916,7 @@ - + @@ -95539,32 +95927,32 @@ - + - + - + - + - + - + - + - + - + - + @@ -95584,18 +95972,18 @@ - + - + - + - + - + @@ -95606,7 +95994,7 @@ - + @@ -95615,7 +96003,7 @@ - + @@ -95638,7 +96026,7 @@ - + @@ -95652,17 +96040,17 @@ - + - + - + - + @@ -95683,10 +96071,10 @@ - + - + @@ -95694,7 +96082,7 @@ - + @@ -95715,7 +96103,7 @@ - + @@ -95729,218 +96117,218 @@ - + - + - + - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + - + - + - - + + - - + + - - + + - + - - + + - - - + + + - - + + - - + + - - - - + + + + - - - - - + + + + + - - - + + + - - - - - + + + + + - - - + + + - - - - - + + + + + - - - - + + + + - - - - + + + + - - - - - + + + + + - - - + + + - - - + + + - - - + + + - - + + - - - + + + - - - + + + - - + + - - + + - - - + + + - + - - - + + + - + - + - + - + - + - + - + - + - + - + @@ -95951,9 +96339,9 @@ - + - + @@ -95965,24 +96353,24 @@ - + - + - + - + - + - + @@ -96003,23 +96391,23 @@ - - - - - - - - - + + + + + + + + + - - + + - - + + @@ -96027,125 +96415,125 @@ - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - + - - + + - + - + - - + + - + - - + + - - + + - - + + - + - + - + - + - + - + - - - + + + @@ -96154,100 +96542,100 @@ - + - - + + - - + + - - + + - + - - - + + + - - + + - - + + - - + + - - - + + + - + - - - + + + - + - - - - + + + + - + - - + + - - + + - - + + - - + + - - + + - + @@ -96257,229 +96645,229 @@ - + - + - + - + - - + + - - + + - - + + - - + + - + - - + + - - + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - - - - - - - - - + + + + + + + + + + + - - + + - - - - + + + + - - + + - - + + - - - + + + - - - - + + + + - - + + - - - - + + + + - - - + + + - + - - - + + + - - - + + + - + - + - + - + - + - + - + - + - + @@ -96487,13 +96875,13 @@ - + - + @@ -96502,30 +96890,30 @@ - + - + - + - + - + - + - + - + @@ -96540,7 +96928,7 @@ - + @@ -96551,7 +96939,7 @@ - + @@ -96581,12 +96969,12 @@ - + - + @@ -96595,7 +96983,7 @@ - + @@ -96606,7 +96994,7 @@ - + @@ -96633,71 +97021,71 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -96718,21 +97106,21 @@ - + - + - + - + - + @@ -96743,12 +97131,12 @@ - + - + - + @@ -96757,303 +97145,303 @@ - + - + - - + + - + - + - + - + - + - + - + - + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - + - - + + - - - - - + + + + + - - - - + + + + - - - - + + + + - - + + - - + + - - - + + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - - + + + - - + + - - + + - - + + - - - + + + - - + + - - + + - - + + - + - - + + - - + + - + - - + + - - + + - + - + - - + + - - + + - - + + - - + + - + - + - + - - + + - - + + - - + + - - + + - + - + - + @@ -97065,75 +97453,75 @@ - - - - + + + + - + - - + + - - + + - + - - - + + + - - + + - - - + + + - - + + - - + + - - + + - + - - + + - - + + @@ -97141,8 +97529,8 @@ - - + + @@ -97150,122 +97538,120 @@ - - + + - - + + - + - + - + - + - + - - + - + - + - + - + - + - + - + - + - + - + - + - - - - - - + + + + + - + - + - + - + - + - - + + - - + + - + - - + + - + @@ -97277,28 +97663,28 @@ - - + + - + - + - - + + - - + + - + @@ -97313,7 +97699,7 @@ - + @@ -97331,7 +97717,7 @@ - + @@ -97339,29 +97725,29 @@ - - - - - + + + + + - + - - + + - + - + - + @@ -97382,7 +97768,7 @@ - + @@ -97406,132 +97792,132 @@ - - - - + + + + - - - - + + + + - - + + - - + + - - + + - - - + + + - - + + - - + + - + - - + + - + - + - + - + - - + + - - + + - + - + - + - + - + - + - + - + - + - + @@ -97543,7 +97929,7 @@ - + @@ -97554,40 +97940,40 @@ - + - + - + - + - - + + - - + + - - + + - + - + - + @@ -97614,7 +98000,7 @@ - + @@ -97622,32 +98008,32 @@ - + - + - + - + - + - + - + - + @@ -97666,17 +98052,17 @@ - + - + - + @@ -97684,10 +98070,10 @@ - + - + @@ -97696,7 +98082,7 @@ - + @@ -97705,7 +98091,7 @@ - + @@ -97716,20 +98102,20 @@ - + - - + + - - + + - - + + @@ -97740,29 +98126,29 @@ - - + + - + - + - + - + - + @@ -97771,37 +98157,37 @@ - + - + - - + + - + - + - + - + - + @@ -97812,47 +98198,47 @@ - - - + + + - + - + - - + + - - - + + + - - + + - - + + - - + + - + - - + + @@ -97865,7 +98251,7 @@ - + @@ -97873,7 +98259,7 @@ - + @@ -97881,22 +98267,22 @@ - - - + + + - + - - + + - - + + @@ -97904,23 +98290,23 @@ - + - + - - + + - + - + @@ -97930,9 +98316,9 @@ - + - + @@ -97959,179 +98345,175 @@ - + - - - - - - + + + + + + - + - + - - + + - - + + - + - + - - + + - - + + - + - - + + - - + + - - + + - + - + - - + + - - - - + + + + - + - + - + - - - - - + + + + + - + - + - - + + - - - + - - - + - + - + - + - - - + + + - + - + - + - + - + @@ -98178,47 +98560,49 @@ - - - - - - - + + + + + + + + + - + - - + + - - + + - - + + - + - + - + - + @@ -98228,85 +98612,107 @@ - + - + - + + + + + + + + + + + + + + + + + + + + + + + - + - + - + - + - - + + - - - + + + - - + + - - + + - - + + - - + + - - - + + + - + - + - - - + + + - + @@ -98316,44 +98722,44 @@ - + - - + + - - - + + + - - - + + + - - + + - - + + - - + + - + @@ -98367,11 +98773,11 @@ - - - - - + + + + + @@ -98384,133 +98790,133 @@ - + - + - - + + - - + + - + - + - - - + + + - - - + + + - - + + - + - + - + - - + + - + - - + + - - + + - - + + - + - + - - + + - + - + - - + + - - - + + + - - + + - - - - + + + + - - - + + + - + @@ -98519,12 +98925,12 @@ - + - + - + @@ -98533,47 +98939,47 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -98594,10 +99000,10 @@ - + - + @@ -98606,7 +99012,7 @@ - + @@ -98617,13 +99023,13 @@ - + - + - + @@ -98632,32 +99038,32 @@ - + - + - + - + - + - + - + - + - + @@ -98674,92 +99080,92 @@ - - - - - - - - - - - - + + + + + + + + + + + + - - - - + + + + - + - + - - - + + + - + - + - - - + + + - - - + + + - + - + - - - + + + - - - - - + + + + + - - - + + + - - + + - + @@ -98767,7 +99173,7 @@ - + @@ -98776,79 +99182,87 @@ - + - + + + + + + + + + - - - + + + - + - - + + - + - - - + + + - - + + - - + + - - + + - + - + - + - + - + - + @@ -98858,15 +99272,15 @@ - + - + - - + + - + @@ -98876,52 +99290,52 @@ - + - - + + - - - + + + - - + + - - + + - + - + - + @@ -98929,52 +99343,52 @@ - + - + - + - + - + - - + + - - + + - - + + - - + + - - + + - + @@ -98982,12 +99396,12 @@ - + - + @@ -99002,530 +99416,530 @@ - - - - + + + + - + - - + + - + - + - + - + - + - - + + - + - + - - + + - + - + - + - + - + - + - + - - + + - + - + - + - - + + - - + + - + - + - + - - - + + + - - - + + + - - - - + + + + - + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - + + - - + + - + - + - + - - + + - - + + - - + + - + - + - - - + + + - - - + + + - - - + + + - + - + - - - + + + - + - + - - + + - - + + - - + + - - + + - + - - + + - + - - - + + + - + - + - + - + - + - + - + - + - - + + - - - + + + - + - - - + + + - + - - + + - - + + - + - + - - + + - + - - + + - - + + - + - + - + - - + + - + - + - + - - + + - + - + - + - + - + - + - + - + - + - + - + - + - - + + - - + + - + - + - + - + - + - + - + - + - + - + @@ -99534,76 +99948,76 @@ - + - + - - + + - - - + + + - + - + - - + + - + - + - + - - - + + + - - - + + + - - - + + + - + @@ -99611,243 +100025,243 @@ - - - - + + + + - + - + - + - + - + - - + + - - + + - + - + - - + + - + - - - + + + - + - - - + + + - + - + - + - + - + - + - + - - + + - + - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - + - + - + - + - - - + + + - + - - + + - - + + - + - + - + - - + + - + - + - - + + - + - - + + - - + + - - + + - + - + - + - + @@ -99865,131 +100279,131 @@ - - + + - + - + - + - + - + - + - + - - + + - + - + - + - - + + - - + + - - + + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -100001,242 +100415,242 @@ - + - + - + - + - + - - - - + + + + - + - + - - - - + + + + - - + + - + - + - + - + - + - - + + - + - + - - - - - + + + + + - + - - + + - + - + - - + + - - + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - + - + - + @@ -100252,24 +100666,24 @@ - + - + - + - - - + + + - - - + + + @@ -100278,113 +100692,113 @@ - + - + - + - - + + - + - + - + - + - + - + - - + + - + - + - + - + - - + + - + - + - + - + - + - + - - + + - - + + - - + + - + - - + + @@ -100392,7 +100806,7 @@ - + @@ -100400,56 +100814,56 @@ - + - - - - - - - + + + + + + + - + - + - - + + - - + + - - + + - + - - + + - + @@ -100463,45 +100877,45 @@ - - + + - + - + - + - + - + - + - + - + - + - + @@ -100510,7 +100924,7 @@ - + @@ -100522,29 +100936,29 @@ - + - + - + - + - + - + - + @@ -100573,16 +100987,16 @@ - + - + - + @@ -100591,12 +101005,12 @@ - + - + @@ -100605,70 +101019,70 @@ - + - + - + - + - + - - - - - - - - - - - - - - + + + + + + + + + + + + + + - + - - - + + + - + - + - + - + - + - + @@ -100680,31 +101094,31 @@ - - + + - + - + - + - + - + @@ -100712,125 +101126,125 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - + + - + - + - + - - + + - + - + - - + + - - - + + + - - - + + + - - + + @@ -100842,38 +101256,38 @@ - + - + - + - + - + - + - + - + @@ -100882,7 +101296,7 @@ - + @@ -100890,58 +101304,58 @@ - + - + - + - + - + - - - - - - - - + + + + + + + + - - - + + + - - + + - - + + - + @@ -100956,33 +101370,33 @@ - + - + - + - + - + - + @@ -100990,21 +101404,21 @@ - + - + - + - + - + - + @@ -101019,7 +101433,7 @@ - + @@ -101027,13 +101441,13 @@ - + - + - + @@ -101044,7 +101458,7 @@ - + @@ -101061,13 +101475,13 @@ - + - + - + @@ -101082,15 +101496,15 @@ - + - + - + @@ -101099,48 +101513,7 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + @@ -101154,7 +101527,7 @@ - + @@ -101172,7 +101545,7 @@ - + @@ -101181,22 +101554,21 @@ - + - - - - - - - - - + + + + + + + + @@ -101205,14 +101577,14 @@ - + - + @@ -101225,45 +101597,45 @@ - + - + - + - + - + - + - + @@ -101299,27 +101671,27 @@ - + - + - + - + - + @@ -101351,19 +101723,19 @@ - + - + - + @@ -101386,7 +101758,7 @@ - + @@ -101421,68 +101793,68 @@ - + - + - + - + - + - + - + - + - + - + - + - + @@ -101494,7 +101866,7 @@ - + @@ -101527,40 +101899,40 @@ - - + + - + - + - + - + - + - + - + - + - + @@ -101571,48 +101943,48 @@ - + - + - - - - - - - - - - + + + + + + + + + + - + - + - + - + @@ -101625,7 +101997,7 @@ - + @@ -101642,12 +102014,12 @@ - + - + @@ -101656,34 +102028,34 @@ - + - + - + - + - + - + - + @@ -101696,35 +102068,35 @@ - - - + + + - + - + - + - + - + - + - + @@ -101750,7 +102122,7 @@ - + @@ -101764,7 +102136,7 @@ - + @@ -101772,52 +102144,52 @@ - + - + - + - + - + - - - - + + + + - + - + - + - + @@ -101833,12 +102205,12 @@ - + - + @@ -101846,26 +102218,26 @@ - + - + - + - + - + - + @@ -101873,42 +102245,42 @@ - + - + - + - - - - - - - - - - + + + + + + + + + + - + - + - + @@ -101918,7 +102290,7 @@ - + @@ -101926,94 +102298,94 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -102030,7 +102402,7 @@ - + @@ -102045,193 +102417,193 @@ - + - + - + - + - + - + - + - + - - - - - - - - - - - - + + + + + + + + + + + + - + - + - + - + - + - + - + - + - + - + - + - + - + - - + + - + - - + + - + - + - - + + - + - + - - + + - - + + - + - + - + - + - - + + - - + + - - + + @@ -102258,12 +102630,12 @@ - - - - + + + + - + @@ -102272,10 +102644,10 @@ - - + + - + @@ -102290,36 +102662,36 @@ - - + + - + - - + + - - + + - - + + @@ -102384,7 +102756,7 @@ - + @@ -102428,13 +102800,13 @@ - + - + @@ -102442,12 +102814,12 @@ - + - + @@ -102456,90 +102828,90 @@ - + - + - - - + + + - + - + - + - + - - + + - + - + - + - + - + - + - + - + - + - + - - - - + + + + - + - + - + - + @@ -102562,15 +102934,15 @@ - - + + - + @@ -102586,7 +102958,7 @@ - + @@ -102598,7 +102970,7 @@ - + @@ -102607,14 +102979,14 @@ - + - + - + @@ -102626,7 +102998,7 @@ - + @@ -102640,7 +103012,7 @@ - + @@ -102654,7 +103026,7 @@ - + @@ -102667,7 +103039,7 @@ - + @@ -102679,22 +103051,22 @@ - + - + - + - + @@ -102705,7 +103077,7 @@ - + @@ -102713,7 +103085,7 @@ - + @@ -102721,17 +103093,17 @@ - + - + - + @@ -102740,7 +103112,7 @@ - + @@ -102763,7 +103135,7 @@ - + @@ -102791,39 +103163,39 @@ - + - + - + - + - + - + - - + + - + @@ -102835,17 +103207,17 @@ - + - - + + - + @@ -102854,20 +103226,20 @@ - - + + - + - + @@ -102876,36 +103248,36 @@ - + - + - - + + - + - + - + - + - + @@ -102913,12 +103285,12 @@ - + - + - + @@ -102927,47 +103299,47 @@ - - - - - - + + + + + + - + - + - + - - + + - + - + - + - + - + - + @@ -102975,17 +103347,17 @@ - - + + - + - + @@ -103105,7 +103477,7 @@ - + @@ -103115,40 +103487,40 @@ - + - - + + - + - + - - + + - - + + - - + + @@ -103329,7 +103701,7 @@ - + @@ -103422,23 +103794,391 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - + - + - + @@ -103446,7 +104186,7 @@ - + @@ -103460,7 +104200,7 @@ - + @@ -103498,16 +104238,16 @@ - + - + - + @@ -103521,11 +104261,11 @@ - - + + - + @@ -103539,24 +104279,24 @@ - - - - + + + + - + - + - + @@ -103567,7 +104307,7 @@ - + @@ -103575,7 +104315,7 @@ - + @@ -103585,30 +104325,30 @@ - + - - + + - + - + - + - + @@ -103616,16 +104356,16 @@ - - + + - + - + - + @@ -103640,10 +104380,10 @@ - + - + @@ -103697,49 +104437,49 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -103760,10 +104500,10 @@ - + - + @@ -103787,7 +104527,7 @@ - + @@ -103802,7 +104542,7 @@ - + @@ -103829,20 +104569,12 @@ - + - - - - - - - - - - - + + + @@ -103856,60 +104588,60 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -103918,48 +104650,48 @@ - - - - + + + + - + - - - - - - - + + + + + + + - + - + - + - + @@ -103967,43 +104699,43 @@ - + - + - + - + - + - + - + - + - + - + - + @@ -104011,7 +104743,7 @@ - + @@ -104022,7 +104754,7 @@ - + @@ -104039,40 +104771,40 @@ - + - + - + - + - + - + - + - + - + - + @@ -104081,31 +104813,31 @@ - + - + - + - + - + - + - + - + @@ -104132,13 +104864,13 @@ - + - + - + @@ -104153,7 +104885,7 @@ - + @@ -104179,9 +104911,9 @@ - + - + @@ -104199,7 +104931,7 @@ - + @@ -104216,169 +104948,169 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - + + - + - - + + - + - + - + - - + + - - - + + + - + - - + + - + - - - + + + - + - - - + + + - + - - + + - + - + - + - + - + - + - + - + - + - + - + @@ -104387,7 +105119,7 @@ - + @@ -104397,7 +105129,7 @@ - + @@ -104407,138 +105139,138 @@ - + - - + + - - + + - + - + - + - + - + - + - + - + - + - + - + - + - + - - + + - - + + - - + + - + - + - + - + - + @@ -104546,94 +105278,86 @@ - + - + - - + + - + - + - - + + - - + + - + - + - + - - - - - - - - - + - + - + - + - + - + - + @@ -104641,10 +105365,10 @@ - + - + @@ -104659,38 +105383,38 @@ - + - - - + + + - + - - - + + + - + - - - - + + + + - + - + - + @@ -104726,16 +105450,16 @@ - + - + - + - + @@ -104743,7 +105467,7 @@ - + @@ -104770,10 +105494,10 @@ - + - + @@ -104788,19 +105512,19 @@ - + - + - + - + - + @@ -104821,7 +105545,7 @@ - + @@ -104851,52 +105575,52 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -104905,15 +105629,15 @@ - + - + - + @@ -104943,7 +105667,7 @@ - + @@ -105002,7 +105726,7 @@ - + @@ -105037,101 +105761,101 @@ - + - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + - - - + + + - + - - - + + + - + - - + + - - - - + + + + - - - + + + - - + + - - + + - - - + + + - - - - + + + + - - + + - - - + + + - - + + - - + + - - + + @@ -105143,32 +105867,32 @@ - - + + - + - - + + - + - - + + - + - + @@ -105179,7 +105903,7 @@ - + @@ -105239,7 +105963,7 @@ - + @@ -105251,16 +105975,16 @@ - + - + - + @@ -105268,7 +105992,7 @@ - + @@ -105276,10 +106000,10 @@ - + - + @@ -105302,24 +106026,24 @@ - + - + - + - + - + @@ -105361,59 +106085,59 @@ - - - - - - - + + + + + + + - + - - + + - + - + - - + + - + - + - + - - + + - + @@ -105421,30 +106145,30 @@ - - + + - + - - - + + + - + - + @@ -105467,45 +106191,45 @@ - + - + - + - + - + - + - + - + - + - + @@ -105522,13 +106246,13 @@ - + - + - + @@ -105537,7 +106261,7 @@ - + @@ -105546,7 +106270,7 @@ - + @@ -105582,27 +106306,27 @@ - + - + - + - + - + - + - + @@ -105617,45 +106341,45 @@ - + - + - + - - - - - - - - - - + + + + + + + + + + - - + + - - + + - - - + + + - - + + @@ -105665,43 +106389,43 @@ - - + + - + - + - - - - - + + + + + - + - + - + - + @@ -105711,11 +106435,11 @@ - + - + @@ -105728,115 +106452,115 @@ - + - + - + - + - - + + - - + + - + - + - + - + - + - - + + - + - + - + - + - + - + - + - + - + - + - + - + @@ -105846,18 +106570,18 @@ - + - - + + - + @@ -105865,61 +106589,61 @@ - + - + - + - + - + - + - - - + + + - + - - + + - + - + - + - + @@ -105931,54 +106655,54 @@ - + - - + + - + - + - + - + - - + + - - + + - - - - + + + + - - + + - + @@ -105998,63 +106722,63 @@ - - - + + + - + - + - + - - + + - - + + - - + + - - + + - + - + - + - + - + @@ -106071,29 +106795,29 @@ - + - + - + - - + + - + - - - - + + + + - + @@ -106186,19 +106910,19 @@ - + - + - + - + @@ -106378,13 +107102,13 @@ - + - + @@ -106396,7 +107120,7 @@ - + @@ -106405,7 +107129,7 @@ - + @@ -106437,13 +107161,13 @@ - + - + - + @@ -106545,7 +107269,7 @@ - + @@ -106578,7 +107302,7 @@ - + @@ -106596,7 +107320,7 @@ - + @@ -106604,79 +107328,79 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -106742,10 +107466,10 @@ - + - + @@ -106757,18 +107481,18 @@ - + - + - + - + @@ -106813,10 +107537,10 @@ - + - + @@ -106831,10 +107555,10 @@ - + - + @@ -106852,7 +107576,7 @@ - + @@ -106860,7 +107584,7 @@ - + @@ -106877,24 +107601,24 @@ - + - + - + - + - + - + - + @@ -106945,7 +107669,7 @@ - + @@ -106954,7 +107678,7 @@ - + @@ -106962,7 +107686,7 @@ - + @@ -106972,7 +107696,7 @@ - + @@ -106980,11 +107704,11 @@ - + - - + + @@ -106996,220 +107720,220 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - + - + - + - + - - - + + + - + - + - + - + - + - + - + - + - - - + + + - + - - - + + + - + - - + + - - - + + + - - + + - - + + - - + + - - - + + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - + - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - + - + - + - + @@ -107230,78 +107954,78 @@ - + - - - + + + - + - + - + - + - + - - + + - + - + - + - + - + - - - - + + + + - + - + - + @@ -107328,7 +108052,7 @@ - + @@ -107339,28 +108063,28 @@ - + - + - + - + - + - + - + - + @@ -107386,8 +108110,8 @@ - - + + @@ -107413,57 +108137,57 @@ - + - + - - - - - - - - - - + + + + + + + + + + - + - + - + - - + + - - + + - - + + - + @@ -107473,7 +108197,7 @@ - + @@ -107483,12 +108207,12 @@ - + - + @@ -107499,35 +108223,35 @@ - - + + - - - + + + - - - + + + - - + + - + - + @@ -107547,7 +108271,7 @@ - + @@ -107561,24 +108285,24 @@ - + - + - - + + - + - + @@ -107587,28 +108311,28 @@ - + - + - + - + - + - + @@ -107616,73 +108340,73 @@ - - + + - + - - + + - + - + - - + + - - + + - - + + - + - + - + - + - + - + - + - - + + @@ -107691,7 +108415,7 @@ - + @@ -107706,44 +108430,44 @@ - + - + - + - + - + - + - + - + @@ -107752,17 +108476,17 @@ - - - + + + - + - - - + + + @@ -107775,26 +108499,26 @@ - + - + - - + + - + - + @@ -107806,62 +108530,62 @@ - + - + - - + + - + - - + + - + - + - - + + - + - + - - - - + + + + - + @@ -107869,7 +108593,7 @@ - + @@ -107882,28 +108606,28 @@ - + - + - + - + - + - + @@ -107911,38 +108635,38 @@ - + - + - + - + - + - + - + - + @@ -107975,47 +108699,47 @@ - + - + - - + + - - + + - + - + - + - + - + - + - + @@ -108027,31 +108751,31 @@ - + - + - + - + - + - + - + - + @@ -108060,7 +108784,7 @@ - + @@ -108084,13 +108808,13 @@ - + - + @@ -108099,7 +108823,7 @@ - + @@ -108120,7 +108844,7 @@ - + @@ -108162,25 +108886,25 @@ - + - + - + - + @@ -108195,28 +108919,28 @@ - + - + - + - + - + - + @@ -108225,7 +108949,7 @@ - + @@ -108237,33 +108961,33 @@ - + - + - + - + - + - + - + - + @@ -108277,9 +109001,9 @@ - + - + @@ -108288,19 +109012,19 @@ - + - + - + - + - + @@ -108314,12 +109038,12 @@ - + - + - + @@ -108331,10 +109055,10 @@ - + - + @@ -108343,10 +109067,10 @@ - + - + @@ -108357,43 +109081,43 @@ - + - + - + - + - + - + - + - + - + - + @@ -108403,18 +109127,18 @@ - + - + - + - + - + @@ -108429,7 +109153,7 @@ - + @@ -108471,29 +109195,29 @@ - + - + - + - + - + - + - + - + - + @@ -108501,7 +109225,7 @@ - + @@ -108524,26 +109248,26 @@ - + - + - + - + - + - + - + - + @@ -108554,74 +109278,74 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -108644,7 +109368,7 @@ - + @@ -108660,48 +109384,48 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -108709,7 +109433,7 @@ - + @@ -108732,7 +109456,7 @@ - + @@ -108740,59 +109464,59 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -108804,42 +109528,42 @@ - + - + - + - + - + - + - + - + - + - + @@ -108853,23 +109577,23 @@ - + - + - + - + - + - + - + @@ -108887,15 +109611,15 @@ - + - + - + @@ -108903,7 +109627,7 @@ - + @@ -108912,10 +109636,10 @@ - + - + @@ -108927,14 +109651,14 @@ - + - + @@ -108945,16 +109669,16 @@ - + - + - + @@ -108963,7 +109687,7 @@ - + @@ -109005,10 +109729,10 @@ - + - + @@ -109016,13 +109740,13 @@ - + - + - + @@ -109034,7 +109758,7 @@ - + @@ -109048,7 +109772,7 @@ - + @@ -109062,10 +109786,10 @@ - + - + @@ -109086,15 +109810,15 @@ - + - + - + @@ -109102,7 +109826,7 @@ - + @@ -109125,7 +109849,7 @@ - + @@ -109139,7 +109863,7 @@ - + @@ -109153,7 +109877,7 @@ - + @@ -109176,13 +109900,13 @@ - + - + - + @@ -109194,7 +109918,7 @@ - + @@ -109208,7 +109932,7 @@ - + @@ -109235,7 +109959,7 @@ - + @@ -109249,48 +109973,48 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + @@ -109298,58 +110022,58 @@ - + - - - - + + + + - + - + - + - + - - - + + + - - - + + + - - - + + + @@ -109357,187 +110081,187 @@ - - + + - + - + - - - + + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - - + + + - + - + - + - + - - + + - - - + + + - - - + + + - - - - - + + + + + - - - + + + - - - - + + + + - - + + - - + + - + - - + + - - + + - - - - + + + + - - + + - - + + - - + + - - + + - + - + - - + + - + - + - - - + + + - + @@ -109575,7 +110299,7 @@ - + @@ -109597,29 +110321,29 @@ - + - - - + + + - - + + - + - + - + @@ -109628,21 +110352,21 @@ - + - + - + - + - + - + @@ -109650,7 +110374,7 @@ - + @@ -109661,7 +110385,7 @@ - + @@ -109669,27 +110393,27 @@ - + - + - + - + - + @@ -109697,12 +110421,12 @@ - + - + - + @@ -109711,9 +110435,9 @@ - + - + @@ -109722,7 +110446,7 @@ - + @@ -109730,24 +110454,24 @@ - + - + - + - + - + - + @@ -109755,7 +110479,7 @@ - + @@ -109776,10 +110500,10 @@ - - + + - + @@ -109794,45 +110518,45 @@ - + - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + - + - + - + @@ -109840,79 +110564,79 @@ - - - + + + - - + + - + - - + + - + - - - + + + - + - + - - + + - + - + - + - + - + - + - + - - + + @@ -109922,131 +110646,131 @@ - + - - + + - - + + - + - + - - + + - + - - + + - - + + - - + + - - + + - + - + - + - - + + - - - + + + - - - + + + - - + + - - - + + + - - + + - - - - + + + + - - - + + + - - + + - + - + - + @@ -110054,133 +110778,133 @@ - + - + - + - + - + - + - - - - - - - - + + + + + + + + - + - + - + - + - + - + - + - + - + - + - + - + - + - - + + - + - + - + - + - - + + - - + + @@ -110188,8 +110912,8 @@ - - + + @@ -110197,19 +110921,19 @@ - - + + - - + + - - - + + + @@ -110232,16 +110956,16 @@ - + - + - + - + @@ -110294,7 +111018,7 @@ - + @@ -110308,63 +111032,63 @@ - - - - - - + + + + + + - - + + - - + + - - + + - - + + - + - + - + - + - + - - + + - - + + @@ -110372,23 +111096,23 @@ - + - - + + - + - + - + @@ -110396,19 +111120,19 @@ - + - + - + - + @@ -110417,13 +111141,13 @@ - + - + @@ -110432,28 +111156,28 @@ - + - + - + - + - + @@ -110462,10 +111186,10 @@ - + - + @@ -110474,10 +111198,10 @@ - + - + @@ -110486,7 +111210,7 @@ - + @@ -110500,67 +111224,67 @@ - - - - - - - - - - + + + + + + + + + + - - + + - + - - + + - - + + - - + + - - - + + + - - + + - - + + - + - + - + @@ -110599,13 +111323,13 @@ - + - + @@ -110647,10 +111371,10 @@ - + - + @@ -110659,15 +111383,15 @@ - + - + - + - + @@ -110679,7 +111403,7 @@ - + @@ -110688,109 +111412,109 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -110798,15 +111522,15 @@ - + - + - + @@ -110815,8 +111539,8 @@ - - + + @@ -110844,306 +111568,306 @@ - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + - + - + - + - - + + - + - - + + - - + + - - + + - + - + - + - + - + - + - + - + - + - + - + - - + + - - + + - - + + - - + + - - + + - - + + - + - - + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - + + - - + + - - + + - - + + - - + + - - + + - - - + + + - - - + + + - - + + - - + + - - + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -111154,8 +111878,8 @@ - - + + @@ -111167,79 +111891,79 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -111247,7 +111971,7 @@ - + @@ -111255,7 +111979,7 @@ - + @@ -111263,7 +111987,7 @@ - + @@ -111271,35 +111995,35 @@ - + - + - + - + - + - + @@ -111307,7 +112031,7 @@ - + @@ -111316,38 +112040,38 @@ - + - + - + - - + + - - - - - - - - - + + + + + + + + + - + - + - - + + @@ -111358,25 +112082,25 @@ - + - + - + - + @@ -111395,227 +112119,227 @@ - + - + - - + + - - + + - - - + + + - - - - - + + + + + - - - - - + + + + + - - - - - - + + + + + + - - + + - - + + - - + + - - + + - - - + + + - - + + - - - - - + + + + + - - + + - - + + - - + + - - + + - - - + + + - - + + - - + + - - + + - - + + - - - + + + - - + + - - + + - - + + - - + + - - + + - - + + - - - - + + + + - - - - - + + + + + - - + + - - + + - - - + + + - - - + + + - - + + - - + + - - + + - - - - - + + + + + - - - - + + + + - - - + + + - - - + + + - - - - + + + + - - + + - - - + + + - + @@ -111624,88 +112348,88 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -111716,56 +112440,56 @@ - + - + - + - + - - + + - + - + - + - + - + - + - + - + - - + + - + @@ -111782,85 +112506,86 @@ - - + + - + - + - + - - + + - + - - + + - + - + - + - - - + + + - + - - - + + + - + - - - - - - - - - - - - - - + + + + + + + + + + + + + + + - + @@ -111871,7 +112596,7 @@ - + @@ -111882,7 +112607,7 @@ - + @@ -111890,21 +112615,21 @@ - + - + - + - + @@ -111930,7 +112655,7 @@ - + @@ -111949,21 +112674,21 @@ - + - + - - + + - + @@ -111981,56 +112706,56 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -112039,7 +112764,7 @@ - + @@ -112065,82 +112790,82 @@ - + - - - - - - - - - - - - - - + + + + + + + + + + + + + + - + - + - + - + - + - + - + - + - + - + - + - - + + - - + + - + @@ -112149,7 +112874,7 @@ - + @@ -112159,7 +112884,7 @@ - + @@ -112167,7 +112892,7 @@ - + @@ -112175,41 +112900,41 @@ - + - + - + - + - + - + - + - - - + + + - + @@ -112217,123 +112942,123 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - + + @@ -112359,7 +113084,7 @@ - + @@ -112368,7 +113093,7 @@ - + @@ -112415,104 +113140,104 @@ - + - - - + + + - + - + - + - + - + - + - + - + - - - - + + + + - + - + - + - + - + - + - + - + - + - + - + @@ -112548,9 +113273,9 @@ - + - + @@ -112559,13 +113284,13 @@ - + - + @@ -112594,15 +113319,15 @@ - + - + - + - + @@ -112611,7 +113336,7 @@ - + @@ -112626,7 +113351,7 @@ - + @@ -112640,7 +113365,7 @@ - + @@ -112652,7 +113377,7 @@ - + @@ -112666,10 +113391,10 @@ - + - + @@ -112677,13 +113402,13 @@ - + - + @@ -112709,14 +113434,14 @@ - + - + @@ -112757,15 +113482,15 @@ - + - + - + - + @@ -112804,7 +113529,7 @@ - + @@ -112816,13 +113541,13 @@ - + - + @@ -112834,7 +113559,7 @@ - + @@ -112849,7 +113574,7 @@ - + @@ -112858,13 +113583,13 @@ - + - + - + @@ -112873,7 +113598,7 @@ - + @@ -112884,10 +113609,10 @@ - + - + @@ -112896,7 +113621,7 @@ - + @@ -112905,37 +113630,37 @@ - + - + - + - + - + - + - + - + - + - + @@ -113028,22 +113753,22 @@ - + - + - + - + - + @@ -113052,7 +113777,7 @@ - + @@ -113064,7 +113789,7 @@ - + @@ -113074,7 +113799,7 @@ - + @@ -113115,13 +113840,13 @@ - + - + - + @@ -113136,12 +113861,12 @@ - + - + @@ -113149,7 +113874,7 @@ - + @@ -113164,13 +113889,13 @@ - + - + - + @@ -113185,27 +113910,27 @@ - + - + - + - + - + - + - + - + @@ -113213,13 +113938,13 @@ - + - + @@ -113233,7 +113958,7 @@ - + @@ -113247,7 +113972,7 @@ - + @@ -113256,10 +113981,10 @@ - + - + @@ -113276,16 +114001,16 @@ - + - + - + - + @@ -113302,7 +114027,7 @@ - + @@ -113313,21 +114038,21 @@ - + - + - + - + - + @@ -113336,7 +114061,7 @@ - + @@ -113344,7 +114069,7 @@ - + @@ -113362,7 +114087,7 @@ - + @@ -113370,16 +114095,16 @@ - + - + - + @@ -113387,7 +114112,7 @@ - + @@ -113401,7 +114126,7 @@ - + @@ -113409,46 +114134,46 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -113460,7 +114185,7 @@ - + @@ -113483,13 +114208,13 @@ - + - + - + @@ -113546,13 +114271,13 @@ - + - + - + @@ -113569,8 +114294,8 @@ - - + + @@ -113584,184 +114309,184 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + - - + + - + - + - + - + - + - + - + - + - + - + - + - + - + - - + + - - + + - - + + - + - + - - + + - + - + - + - - + + - + - + - + - + - + - + - + @@ -113771,7 +114496,7 @@ - + @@ -113781,7 +114506,7 @@ - + @@ -113791,7 +114516,7 @@ - + @@ -113801,7 +114526,7 @@ - + @@ -113810,68 +114535,68 @@ - - + + - - + + - - + + - - - + + + - - + + - - + + - - + + - - - + + + - - - + + + - - + + - + - + - + - + @@ -113880,10 +114605,10 @@ - + - + @@ -113895,22 +114620,22 @@ - + - + - + - + - + - + @@ -113930,7 +114655,7 @@ - + @@ -113942,7 +114667,7 @@ - + @@ -113962,18 +114687,18 @@ - + - + - + - + @@ -113987,64 +114712,64 @@ - + - + - + - - - - - - - - - - + + + + + + + + + + - + - + - + - - + + - - + + - - + + - + - - + + - + @@ -114061,14 +114786,14 @@ - + - + @@ -114082,13 +114807,13 @@ - + - + - + @@ -114097,21 +114822,21 @@ - + - + - + - + @@ -114119,7 +114844,7 @@ - + @@ -114140,45 +114865,45 @@ - + - + - + - + - + - + - + - + - + - + - + - + @@ -114193,7 +114918,7 @@ - + @@ -114201,7 +114926,7 @@ - + @@ -114209,93 +114934,93 @@ - - - - - - - - - - - - - + + + + + + + + + + + + + - - - - - + + + + + - - - - - + + + + + - + - + - + - + - + - + - + - + - + - - + + - + - - + + - + - - + + - + - - + + - + @@ -114307,140 +115032,140 @@ - + - + - - + + - - + + - - - + + + - - + + - - + + - - + + - - + + - + - + - + - + - + - + - - + + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - - + + + + - + - + @@ -114452,13 +115177,13 @@ - + - + @@ -114467,19 +115192,19 @@ - + - + - + - + @@ -114533,37 +115258,37 @@ - + - + - + - + - + - + - + - + - + @@ -114574,140 +115299,140 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -114718,52 +115443,52 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -114775,40 +115500,40 @@ - + - + - + - + - + - + - + - + - + - + - + @@ -114816,50 +115541,50 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -114867,13 +115592,13 @@ - + - + @@ -114899,13 +115624,13 @@ - + - + @@ -114916,97 +115641,97 @@ - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + - + - - + + - + - - + + - - + + - + - + @@ -115018,136 +115743,136 @@ - - + + - - + + - - + + - - + + - - + + - - + + - + - + - + - + - + - + - - + + - + - + - - + + - + - + - + - + - + - - - + + + - - + + - - + + - - + + - - + + - - + + - - + + @@ -115155,263 +115880,263 @@ - - + + - - - + + + - - - + + + - - - + + + - - - - + + + + - - - + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - + + - - + + - - - + + + - - - + + + - - + + - - - + + + - - + + - - + + - - + + - - + + - - + + - - - + + + - - + + - - + + - - + + - - - + + + - - - + + + - - - + + + - - + + - - + + - + - + - + - + - - + + - - + + - + - + - + - + - + - + - + - + - + - + - + - - + + - + - + - + - + - + - + @@ -115422,7 +116147,7 @@ - + @@ -115431,7 +116156,7 @@ - + @@ -115440,54 +116165,54 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -115504,7 +116229,7 @@ - + @@ -115515,10 +116240,10 @@ - + - + @@ -115535,7 +116260,7 @@ - + @@ -115549,7 +116274,7 @@ - + @@ -115563,10 +116288,10 @@ - + - + @@ -115589,7 +116314,7 @@ - + @@ -115606,16 +116331,16 @@ - + - + - + @@ -115629,10 +116354,10 @@ - + - + @@ -115643,13 +116368,13 @@ - + - + @@ -115666,7 +116391,7 @@ - + @@ -115677,10 +116402,10 @@ - + - + @@ -115691,13 +116416,13 @@ - + - + @@ -115708,10 +116433,10 @@ - + - + @@ -115720,13 +116445,13 @@ - + - + @@ -115737,34 +116462,34 @@ - + - + - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + - + @@ -115776,7 +116501,7 @@ - + @@ -115785,7 +116510,7 @@ - + @@ -115794,8 +116519,8 @@ - - + + @@ -115805,15 +116530,15 @@ - + - + - + @@ -115821,14 +116546,14 @@ - + - + @@ -115836,181 +116561,181 @@ - + - + - + - + - + - + - - + + - + - + - + - + - + - + - - - - - + + + + + - - + + - + - - + + - - + + - - + + - - - + + + - + - + - + - + - + - + - + - + - + - + - + - + - - + + - - + + - - + + - + - + @@ -116019,7 +116744,7 @@ - + @@ -116027,110 +116752,110 @@ - + - - + + - - + + - + - + - + - + - + - + - - + + - + - + - + - + - + - + - + - + - + - - + + - + - + - + @@ -116141,7 +116866,7 @@ - + @@ -116151,7 +116876,7 @@ - + @@ -116167,7 +116892,7 @@ - + @@ -116182,58 +116907,58 @@ - + - + - + - + - + - + - + - + - + - + - - - + + + - + - - + + - + @@ -116241,72 +116966,72 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -116315,69 +117040,69 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -116385,219 +117110,219 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -116606,48 +117331,48 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -116655,13 +117380,13 @@ - + - + @@ -116688,48 +117413,48 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -116764,7 +117489,7 @@ - + @@ -116782,7 +117507,7 @@ - + @@ -116802,50 +117527,50 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -116859,722 +117584,722 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - + - - + + - - - - - + + + + + - + - - + + - - + + - - + + - - - + + + - - - + + + - - + + - - - + + + - - + + - - - + + + - - - + + + - - + + - - - + + + - - + + - - + + - - + + - - + + - - + + - - - + + + - - + + - - + + - - + + - - - + + + - - - + + + - - - - - + + + + + - - - + + + - - + + - - + + - + - - + + - - + + - - - + + + - - + + - - - + + + - - + + - - + + - - + + - - - + + + - - - + + + - - - - + + + + - - - + + + - + - + - + - + - + - + - + - + - + - - + + - - - + + + - - + + - + - - + + - + - - + + - - - + + + - - - - + + + + - - + + - - - + + + - - - - - + + + + + - - - + + + - - + + - - + + - - + + - - - + + + - - + + - + - - + + - + - + - + - + - + - - - - - - - + + + + + + + - - + + - + - + - + - + - + - + - + - - + + - - + + - - + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - + + + - - - - + + + + - - - - - + + + + + - - - + + + - - - + + + - - - + + + - - - - + + + + - + - - - + + + - - + + - - + + - - + + - - + + - + - + - + - + - + - + - + @@ -117586,21 +118311,21 @@ - + - + - + - + - + - + @@ -117609,7 +118334,7 @@ - + @@ -117621,13 +118346,13 @@ - + - + - + @@ -117636,7 +118361,7 @@ - + @@ -117687,7 +118412,7 @@ - + @@ -117705,13 +118430,13 @@ - + - + @@ -117726,10 +118451,10 @@ - + - + @@ -117737,15 +118462,15 @@ - + - + - + @@ -117754,44 +118479,44 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -117800,23 +118525,7 @@ - - - - - - - - - - - - - - - - - + @@ -117827,24 +118536,24 @@ - + - + - + - + - + @@ -117856,7 +118565,7 @@ - + @@ -117867,12 +118576,12 @@ - + - + - + @@ -117881,49 +118590,49 @@ - - - - - - - - - - - - + + + + + + + + + + + + - - - + + + - - + + - - + + - - + + - - + + - - + + - - + + @@ -117931,7 +118640,7 @@ - + @@ -117948,28 +118657,28 @@ - + - + - + - + - + - + - + @@ -117981,7 +118690,7 @@ - + @@ -117993,10 +118702,10 @@ - + - + @@ -118010,126 +118719,126 @@ - + - + - + - + - + - + - + - + - + - - - - - - - - - + + + + + + + + + - + - + - + - + - + - + - + - - + + - + - + - + - - + + - - - + + + - - + + - - + + - + - - + + - + - + @@ -118141,7 +118850,7 @@ - + @@ -118150,103 +118859,103 @@ - + - - + + - + - + - + - + - + - + - + - + - + - + - - + + - + - + - + - - + + - + - + - + - + @@ -118257,7 +118966,7 @@ - + @@ -118266,7 +118975,7 @@ - + @@ -118302,16 +119011,16 @@ - + - + - + - + @@ -118323,13 +119032,13 @@ - + - + - + @@ -118341,19 +119050,19 @@ - + - + - + - + - + @@ -118383,16 +119092,16 @@ - + - + - + @@ -118406,7 +119115,7 @@ - + @@ -118420,27 +119129,27 @@ - + - + - + - + - + - + - + - + @@ -118455,33 +119164,33 @@ - + - + - + - + - + - + - + - + @@ -118489,7 +119198,7 @@ - + @@ -118497,32 +119206,32 @@ - + - + - + - + - + - + - + - + - + - + @@ -118536,18 +119245,18 @@ - + - + - + - + - + @@ -118555,25 +119264,25 @@ - + - + - + - + - + @@ -118581,19 +119290,19 @@ - + - + - + - + @@ -118601,7 +119310,7 @@ - + @@ -118621,12 +119330,12 @@ - + - + - + @@ -118635,7 +119344,7 @@ - + @@ -118655,7 +119364,7 @@ - + @@ -118666,10 +119375,10 @@ - + - + @@ -118678,30 +119387,30 @@ - + - + - + - + - + - + - + - + @@ -118713,7 +119422,7 @@ - + @@ -118722,7 +119431,7 @@ - + @@ -118733,7 +119442,7 @@ - + @@ -118750,100 +119459,100 @@ - + - + - + - + - + - + - + - + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - + - + - + @@ -118852,107 +119561,107 @@ - + - + - + - + - + - + - - + + - - + + - - + + - + - + - + - + - - + + - + - + - + - + - + - + - + - + - + - + @@ -118965,98 +119674,98 @@ - - + + - - - + + + - - - - + + + + - - + + - - - + + + - - + + - - + + - - + + - - + + - - - - + + + + - - + + - - - + + + - - + + - - + + - - + + - - + + - - - + + + - - + + @@ -119064,7 +119773,7 @@ - + @@ -119081,154 +119790,154 @@ - - - + + + - + - + - + - + - + - + - - + + - + - + - + - + - + - + - + - + - + - + - - + + - + - + - + - + - - + + - + - + - + - + - + - + - + - - + + - + @@ -119246,97 +119955,97 @@ - + - + - + - + - + - + - + - + - + - - + + - - + + - + - - + + - - + + - - + + - + - + - + - + - + @@ -119350,13 +120059,13 @@ - + - + @@ -119368,10 +120077,10 @@ - + - + @@ -119392,7 +120101,7 @@ - + @@ -119409,25 +120118,25 @@ - + - - - - - - + + + + + + - - + + - + @@ -119437,12 +120146,12 @@ - + - + @@ -119453,15 +120162,15 @@ - + - + - + @@ -119481,39 +120190,39 @@ - + - + - + - + - + - + - + - + - + - + @@ -119522,12 +120231,12 @@ - + - + @@ -119538,379 +120247,379 @@ - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + - + - - - + + + - + - + - + - - - + + + - - - + + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - + + - + - + - - + + - - + + - + - - + + - + - - - - - + + + + + - + - + - + - + - - + + - - + + - - - + + + - - - + + + - - + + - - + + - - - + + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - + + + - + - + - + - + - + - + - + - + - + - - + + - + - + @@ -119919,7 +120628,7 @@ - + @@ -119934,7 +120643,7 @@ - + @@ -119958,19 +120667,19 @@ - + - + - + - + @@ -119979,18 +120688,18 @@ - + - + - + - + @@ -120002,10 +120711,10 @@ - + - + @@ -120025,40 +120734,40 @@ - + - + - + - + - + - + - + - + - + - + @@ -120079,13 +120788,13 @@ - + - + @@ -120094,15 +120803,15 @@ - + - + - + - + @@ -120111,73 +120820,73 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -120186,20 +120895,20 @@ - + - + - + - + - + - + @@ -120211,15 +120920,15 @@ - + - + - + @@ -120227,7 +120936,7 @@ - + @@ -120235,35 +120944,35 @@ - + - + - + - + - + - + - + - + - + - + @@ -120284,7 +120993,7 @@ - + @@ -120294,7 +121003,7 @@ - + @@ -120302,159 +121011,159 @@ - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - + + - + - + - + - - + + - - + + - + - - + + - - + + - - + + - - - - + + + + - - - + + + - - + + - - + + - - + + - - - + + + - - + + - - + + - - + + - - + + - + - + - + - + - + - + - + - + @@ -120463,166 +121172,166 @@ - - - - - + + + + + - + - + - + - + - - + + - + - - + + - - + + - + - - + + - - + + - + - + - + - + - + - + - - - + + + - - + + - + - + - + - + - + - - - + + + - - + + - + - + - + - + - - + + - + - + - + - + - + - + - + @@ -120634,85 +121343,85 @@ - + - + - + - + - + - + - - - - - + + + + + - + - + - + - - + + - + - + - + - - + + - + - + - + - - + + - - + + - + - + - + @@ -120720,104 +121429,104 @@ - + - + - + - + - + - + - + - + - + - + - - + + - - + + - + - + - - + + - + - + - + - - - - - + + + + + - + - + - + - + - + - + - + @@ -120826,31 +121535,31 @@ - + - + - + - + - + - + - + @@ -120874,22 +121583,22 @@ - + - + - + - + - + @@ -120915,18 +121624,18 @@ - + - + - + - + @@ -120935,27 +121644,27 @@ - + - + - + - + - + - + - + @@ -120970,16 +121679,16 @@ - + - + - + - + @@ -120994,7 +121703,7 @@ - + @@ -121006,83 +121715,83 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -121099,18 +121808,18 @@ - + - + - + - + @@ -121131,7 +121840,7 @@ - + @@ -121139,7 +121848,7 @@ - + @@ -121150,45 +121859,45 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -121199,10 +121908,10 @@ - + - + @@ -121225,15 +121934,15 @@ - + - + - + @@ -121260,15 +121969,15 @@ - + - + - + @@ -121289,7 +121998,7 @@ - + @@ -121297,84 +122006,84 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - + + @@ -121382,34 +122091,34 @@ - + - + - + - + - + - + - + - + - + @@ -121423,7 +122132,7 @@ - + @@ -121459,7 +122168,7 @@ - + @@ -121468,18 +122177,18 @@ - + - + - + - + @@ -121489,30 +122198,30 @@ - + - + - + - + - + - + - + - + - + @@ -121526,7 +122235,7 @@ - + @@ -121540,15 +122249,15 @@ - + - + - + @@ -121557,7 +122266,7 @@ - + @@ -121571,7 +122280,7 @@ - + @@ -121583,12 +122292,12 @@ - + - + @@ -121597,32 +122306,32 @@ - + - + - + - + - + - + - + - + - + @@ -121664,77 +122373,77 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -121760,10 +122469,10 @@ - + - + @@ -121777,7 +122486,7 @@ - + @@ -121791,10 +122500,10 @@ - + - + @@ -121820,10 +122529,10 @@ - + - + @@ -121840,16 +122549,16 @@ - + - + - + @@ -121857,13 +122566,13 @@ - + - + - + @@ -121877,13 +122586,13 @@ - + - + - + @@ -121894,13 +122603,13 @@ - + - + - + @@ -121911,18 +122620,18 @@ - + - + - + - + - + @@ -121936,10 +122645,10 @@ - + - + @@ -121948,10 +122657,10 @@ - + - + @@ -121962,20 +122671,20 @@ - + - + - + - + - + @@ -121984,42 +122693,42 @@ - + - + - + - + - + - + - + - + - + - + - + - + @@ -122028,14 +122737,14 @@ - + - + @@ -122043,13 +122752,13 @@ - + - + - + @@ -122057,26 +122766,26 @@ - + - + - + - + - + - + - + @@ -122091,20 +122800,20 @@ - + - + - + - + - + - + @@ -122113,12 +122822,12 @@ - + - + - + @@ -122128,380 +122837,380 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -122516,7 +123225,7 @@ - + @@ -122527,50 +123236,50 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -122599,7 +123308,7 @@ - + @@ -122608,7 +123317,7 @@ - + @@ -122616,7 +123325,7 @@ - + @@ -122633,7 +123342,7 @@ - + @@ -122642,7 +123351,7 @@ - + @@ -122651,10 +123360,10 @@ - + - + @@ -122662,10 +123371,10 @@ - + - + @@ -122673,9 +123382,9 @@ - + - + @@ -122684,7 +123393,7 @@ - + @@ -122696,15 +123405,15 @@ - + - + - + - + @@ -122712,10 +123421,10 @@ - + - + @@ -122723,7 +123432,7 @@ - + @@ -122737,10 +123446,10 @@ - + - + @@ -122757,10 +123466,10 @@ - + - + @@ -122769,7 +123478,7 @@ - + @@ -122778,10 +123487,10 @@ - + - + @@ -122801,10 +123510,10 @@ - + - + @@ -122812,13 +123521,13 @@ - + - + @@ -122826,16 +123535,16 @@ - + - + - + @@ -122846,7 +123555,7 @@ - + @@ -122854,7 +123563,7 @@ - + @@ -122871,10 +123580,10 @@ - + - + @@ -122885,16 +123594,16 @@ - + - + - + @@ -122905,10 +123614,10 @@ - + - + @@ -122934,7 +123643,7 @@ - + @@ -122952,12 +123661,12 @@ - + - + @@ -122969,7 +123678,7 @@ - + @@ -122981,12 +123690,12 @@ - + - + @@ -122998,7 +123707,7 @@ - + @@ -123007,7 +123716,7 @@ - + @@ -123015,7 +123724,7 @@ - + @@ -123036,7 +123745,7 @@ - + @@ -123053,7 +123762,7 @@ - + @@ -123071,13 +123780,13 @@ - + - + - + @@ -123085,9 +123794,9 @@ - + - + @@ -123099,18 +123808,18 @@ - + - + - + - + @@ -123118,13 +123827,13 @@ - + - + - + @@ -123135,19 +123844,19 @@ - + - + - + - + @@ -123155,26 +123864,26 @@ - + - + - + - + - + @@ -123186,12 +123895,12 @@ - + - + @@ -123203,7 +123912,7 @@ - + @@ -123214,13 +123923,13 @@ - + - + - + @@ -123231,19 +123940,19 @@ - + - + - + @@ -123251,18 +123960,18 @@ - + - + - + - + - + @@ -123274,7 +123983,7 @@ - + @@ -123282,20 +123991,20 @@ - + - + - + - + - + - + @@ -123303,26 +124012,26 @@ - + - + - + - + - + - + - + - + @@ -123330,31 +124039,31 @@ - + - + - + - + - + - + - + - + - + @@ -123362,7 +124071,7 @@ - + @@ -123371,10 +124080,10 @@ - + - + @@ -123382,7 +124091,7 @@ - + @@ -123391,10 +124100,10 @@ - + - + @@ -123417,10 +124126,10 @@ - + - + @@ -123431,21 +124140,21 @@ - + - + - + - + - + @@ -123453,7 +124162,7 @@ - + @@ -123473,7 +124182,7 @@ - + @@ -123490,870 +124199,870 @@ - + - + - + - + - + - + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - + - + - + - - - + + + - - + + - - + + - - + + - - + + - - + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - + + - - - - + + + + - - - + + + - - + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - + + - - - - - + + + + + - - - + + + - - + + - + - - + + - - + + - - + + - - + + - - - + + + - - + + - - + + - + - - + + - + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - - + + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - + + + - - - + + + - - + + - + @@ -124361,139 +125070,139 @@ - - + + - - + + - + - + - - - - + + + + - - + + - - + + - - + + - - + + - + - - + + - + - + - + - + - + - - - + + + - + - + - + - - - + + + - - - - + + + + - + - + - - + + - + - + - + - + - + @@ -124503,33 +125212,33 @@ - + - + - - + + - + - + - + @@ -124538,13 +125247,13 @@ - + - + - + @@ -124565,21 +125274,21 @@ - + - + - + - + - + @@ -124588,21 +125297,21 @@ - + - + - + - + - + - + @@ -124613,10 +125322,10 @@ - + - + @@ -124658,10 +125367,10 @@ - + - + @@ -124670,7 +125379,7 @@ - + @@ -124688,13 +125397,13 @@ - + - + @@ -124706,52 +125415,52 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -124760,37 +125469,37 @@ - + - + - + - + - + - + - + - + - + - + @@ -124798,22 +125507,22 @@ - + - + - + - + - + @@ -124833,12 +125542,12 @@ - + - + @@ -124871,7 +125580,7 @@ - + @@ -124885,21 +125594,21 @@ - + - + - + - + - + - + @@ -124926,7 +125635,7 @@ - + @@ -124964,7 +125673,7 @@ - + @@ -124982,7 +125691,7 @@ - + @@ -125017,15 +125726,15 @@ - + - + - + - + @@ -125069,7 +125778,7 @@ - + @@ -125105,16 +125814,16 @@ - + - + - + @@ -125122,26 +125831,26 @@ - + - + - + - + - + - + - + - + @@ -125159,9 +125868,9 @@ - + - + @@ -125179,21 +125888,21 @@ - + - + - + - + - + - + @@ -125232,27 +125941,27 @@ - + - + - + - + - + - + - + - + @@ -125264,12 +125973,12 @@ - + - + - + @@ -125284,7 +125993,7 @@ - + @@ -125307,24 +126016,24 @@ - + - + - + - + - + @@ -125338,7 +126047,7 @@ - + @@ -125354,7 +126063,7 @@ - + @@ -125362,120 +126071,120 @@ - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - + - + - + - + - + - - + + - + - - + + - + - - + + - - + + - - + + - - + + - - + + - + - - + + - - + + - - + + - + @@ -125483,11 +126192,11 @@ - + - + @@ -125495,23 +126204,23 @@ - + - - - + + + - + - + @@ -125520,41 +126229,41 @@ - + - + - + - + - + - + - + - + - + - + - + @@ -125562,7 +126271,7 @@ - + @@ -125580,7 +126289,7 @@ - + @@ -125588,17 +126297,17 @@ - + - + - + @@ -125609,21 +126318,21 @@ - + - + - + - + - + - + @@ -125637,13 +126346,13 @@ - + - + @@ -125655,115 +126364,115 @@ - + - + - + - + - - - - - - - - - - - - + + + + + + + + + + + + - - + + - - + + - - + + - + - - + + - + - + - - + + - - - + + + - - + + - - - + + + - - + + - - - + + + - - - + + + - - + + - + - + - + @@ -125772,7 +126481,7 @@ - + @@ -125787,7 +126496,7 @@ - + @@ -125799,36 +126508,36 @@ - + - + - - - - + + + + - + - + - + - + - + @@ -125836,297 +126545,297 @@ - - - + + + - + - + - + - + - - + + - + - - + + - + - - + + - + - - + + - - + + - - + + - - + + - - - + + + - + - + - + - + - + - + - + - + - + - - + + - - + + - - + + - - - - + + + + - - - - + + + + - - - - - + + + + + - - - + + + - - + + - - + + - - - - - + + + + + - - - - - - + + + + + + - - - - + + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - - + + + + - - - - - - + + + + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - - + + + + - - - + + + - - + + - + - - - - + + + + - + - - + + - + - - + + - - + + - + - + @@ -126141,164 +126850,164 @@ - + - + - + - + - + - + - - - - - - - + + + + + + + - + - + - + - + - + - + - + - + - + - + - + - - + + - - + + - - + + - - + + - + - - + + - - + + - + - + - - + + - + - + - + - + - + - + - + - + - + - + - + @@ -126309,7 +127018,7 @@ - + @@ -126318,24 +127027,24 @@ - + - + - - - - - - + + + + + + - + - + @@ -126365,32 +127074,32 @@ - - - + + + - - - + + + - + - + - + @@ -126412,22 +127121,22 @@ - - - - + + + + - + - + - + @@ -126468,19 +127177,19 @@ - + - + - + - + @@ -126498,7 +127207,7 @@ - + @@ -126510,7 +127219,7 @@ - + @@ -126561,53 +127270,53 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -126625,13 +127334,13 @@ - + - + - + @@ -126643,7 +127352,7 @@ - + @@ -126652,7 +127361,7 @@ - + @@ -126662,12 +127371,12 @@ - + - + @@ -126682,13 +127391,13 @@ - + - + @@ -126699,18 +127408,18 @@ - + - + - + - + @@ -126722,13 +127431,13 @@ - + - + @@ -126740,158 +127449,158 @@ - + - + - + - + - + - + - + - + - + - + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - + - + - + - + - + - + - - + + - - - + + + - - + + - - + + - - + + - + - + - - + + - - + + - - + + - + - + - + - + @@ -126902,20 +127611,20 @@ - - - + + + - - - - + + + + - + @@ -126923,64 +127632,64 @@ - - + + - - + + - - - + + + - - - - - + + + + + - - + + - - + + - + - - + + - - + + - + - + - + - + - + @@ -126996,7 +127705,7 @@ - + @@ -127007,13 +127716,13 @@ - + - + @@ -127024,60 +127733,60 @@ - - - - - - + + + + + + - - - + + + - - - + + + - - + + - + - - + + - + - + - - + + - - + + @@ -127086,7 +127795,7 @@ - + @@ -127095,20 +127804,20 @@ - - + + - + - - + + - + @@ -127129,22 +127838,22 @@ - - + + - - + + - + - + @@ -127158,16 +127867,8 @@ - - - - - - - - - - + + @@ -127175,107 +127876,107 @@ - + - - + + - + - - + + - - + + - - + + - + - + - + - - + + - + - + - + - + - + - + - + - + - + - + - + - + @@ -127284,22 +127985,22 @@ - + - + - + - + - + @@ -127307,7 +128008,7 @@ - + @@ -127315,14 +128016,14 @@ - - + + - + @@ -127333,128 +128034,128 @@ - - + + - + - - + + - - + + - - - + + + - - + + - - - + + + - - + + - - + + - - + + - - + + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -127464,7 +128165,7 @@ - + @@ -127487,47 +128188,47 @@ - + - + - + - + - + - - + + - - + + - + - + - + - + @@ -127563,75 +128264,75 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -127640,7 +128341,7 @@ - + @@ -127655,7 +128356,7 @@ - + @@ -127668,7 +128369,7 @@ - + @@ -127742,7 +128443,7 @@ - + @@ -127750,12 +128451,12 @@ - + - + @@ -127764,13 +128465,13 @@ - + - + - + @@ -127812,13 +128513,13 @@ - + - + - + @@ -127827,7 +128528,7 @@ - + @@ -127839,70 +128540,70 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -127917,7 +128618,7 @@ - + @@ -127932,39 +128633,39 @@ - + - + - + - + - + - + - + - + - + - + @@ -127972,9 +128673,9 @@ - + - + @@ -127983,7 +128684,7 @@ - + @@ -128010,9 +128711,9 @@ - + - + @@ -128024,27 +128725,27 @@ - + - + - + - + - + - + - + @@ -128055,15 +128756,15 @@ - + - + - + @@ -128078,15 +128779,15 @@ - + - + - + @@ -128095,22 +128796,22 @@ - + - + - + - + - + - + @@ -128140,7 +128841,7 @@ - + @@ -128152,7 +128853,7 @@ - + @@ -128167,14 +128868,14 @@ - + - + @@ -128182,7 +128883,7 @@ - + @@ -128211,16 +128912,16 @@ - + - + - + - + @@ -128228,7 +128929,7 @@ - + @@ -128242,352 +128943,352 @@ - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - + - + - + - + - + - + - - + + - - + + - + - + - + - + - - - + + + - - - + + + - - + + - + - + - + - + - - - + + + - - - + + + - - - + + + - - - + + + - + - + - - - + + + - - + + - - - + + + - - - + + + - - + + - - - + + + - - - - + + + + - - - - + + + + - - - + + + - - - + + + - - - + + + - - + + - - + + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - - - + + + - - - + + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - + + + - - + + - - + + - + @@ -128599,89 +129300,89 @@ - - + + - + - - + + - - + + - + - + - + - + - + - - + + - - + + - - + + - + - + - + - + - + - + - + @@ -128699,16 +129400,16 @@ - + - + - + - + @@ -128720,42 +129421,42 @@ - + - + - - + + - + - + - + - + - + - + - + @@ -128766,100 +129467,100 @@ - + - + - + - + - + - + - + - - - - - - - - + + + + + + + + - + - + - - + + - - - - - - + + + + + + - - - + + + - - - - - - + + + + + + - - - + + + - + - + - + - + - - + + - + - + - + @@ -128868,10 +129569,10 @@ - + - + @@ -128895,7 +129596,7 @@ - + @@ -128907,19 +129608,19 @@ - + - + - + - + - + @@ -128964,22 +129665,22 @@ - + - + - + - + - + @@ -128990,30 +129691,30 @@ - + - + - + - + - + - + - + - + @@ -129025,132 +129726,132 @@ - + - + - + - + - + - - - - - - - - + + + + + + + + - - + + - - + + - + - - + + - - + + - - + + - - + + - + - + - + - + - - - - + + + + - - - + + + - - + + - - + + - + - - + + - - + + - - + + - - + + - + - + - + @@ -129192,9 +129893,9 @@ - + - + @@ -129206,107 +129907,107 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - - - + + + + + - - - - - - - - - - - + + + + + + + + + + + - - - - - - + + + + + + - + @@ -129315,150 +130016,159 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + - - + + - - + + - - + + - + - - - + + + - - - + + + - - + + - - + + - - + + - + - - - + + + - - + + - + - - + + - + - - + + - + - - + + - - + + - - - + + + - - - + + + - + - + - - - + + + + + + + + + + + + @@ -129478,7 +130188,7 @@ - + @@ -129493,10 +130203,10 @@ - + - + @@ -129505,7 +130215,7 @@ - + @@ -129553,19 +130263,19 @@ - + - + - + - + @@ -129574,7 +130284,7 @@ - + @@ -129582,7 +130292,7 @@ - + @@ -129590,7 +130300,7 @@ - + @@ -129598,7 +130308,7 @@ - + @@ -129607,11 +130317,16 @@ - - - - - + + + + + + + + + + @@ -129623,30 +130338,30 @@ - + - + - + - - + + - - + + - + @@ -129656,68 +130371,101 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + - + - + @@ -129728,28 +130476,28 @@ - + - + - + - + - - - - - - + + + + + + @@ -129760,92 +130508,92 @@ - + - + - - + + - - + + - + - - + + - + - + - + - - + + - + - + - + - - + + - - + + - + - + - - + + - + - + - + @@ -129853,7 +130601,7 @@ - + @@ -129861,36 +130609,36 @@ - + - + - + - + - + - + - + - + - + @@ -129902,24 +130650,24 @@ - + - + - + - + - - + + @@ -129930,35 +130678,35 @@ - - - - - + + + + + - + - + - + - + - + - + - + @@ -129970,7 +130718,7 @@ - + @@ -129985,7 +130733,7 @@ - + @@ -130006,7 +130754,7 @@ - + @@ -130023,36 +130771,36 @@ - - - - + + + + - - + + - + - + - - + + - + - + - + - - + + @@ -130063,10 +130811,10 @@ - + - + @@ -130078,7 +130826,7 @@ - + @@ -130089,12 +130837,12 @@ - + - + @@ -130109,10 +130857,10 @@ - + - + @@ -130121,7 +130869,7 @@ - + @@ -130151,7 +130899,7 @@ - + @@ -130204,150 +130952,150 @@ - + - + - - - - - + + + + + - - - + + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - + + - + - + - - + + - - + + - + - + - + - + @@ -130380,10 +131128,10 @@ - + - + @@ -130392,10 +131140,10 @@ - + - + @@ -130404,13 +131152,13 @@ - + - + @@ -130428,7 +131176,7 @@ - + @@ -130436,15 +131184,15 @@ - + - + - + - + @@ -130462,7 +131210,7 @@ - + @@ -130470,128 +131218,128 @@ - + - + - + - + - + - + - + - + - + - + - - + + - + - + - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + - - + + - - + + - - + + - - - - + + + + - - - + + + - - - + + + - - + + - + - - + + - - - + + + - - + + - - - + + + - + - - + + @@ -130599,49 +131347,49 @@ - + - + - + - + - - + + - + - + - - + + - - - + + + - + - + - + @@ -130667,25 +131415,25 @@ - + - + - + - + - + - + @@ -130697,7 +131445,7 @@ - + @@ -130706,7 +131454,7 @@ - + @@ -130739,22 +131487,22 @@ - + - + - + - + @@ -130772,7 +131520,7 @@ - + @@ -130785,7 +131533,7 @@ - + @@ -130808,30 +131556,30 @@ - + - + - + - + - + - + @@ -130842,19 +131590,19 @@ - + - + - + - + @@ -130869,7 +131617,7 @@ - + @@ -130880,7 +131628,7 @@ - + @@ -130905,7 +131653,7 @@ - + @@ -130918,9 +131666,9 @@ - + - + @@ -130929,7 +131677,7 @@ - + @@ -130937,12 +131685,12 @@ - + - + - + @@ -130978,7 +131726,7 @@ - + @@ -130986,25 +131734,25 @@ - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + - - + + @@ -131015,12 +131763,12 @@ - + - + - + @@ -131028,38 +131776,38 @@ - + - + - + - + - + - - - + + + - - + + @@ -131071,32 +131819,32 @@ - - + + - - + + - - + + - - + + - - + + - + @@ -131122,7 +131870,7 @@ - + @@ -131134,7 +131882,7 @@ - + @@ -131164,47 +131912,47 @@ - + - + - + - + - + - + - + - + - + - + - + @@ -131212,27 +131960,27 @@ - + - + - + - + - + @@ -131243,20 +131991,20 @@ - + - - - - - - - - + + + + + + + + @@ -131267,50 +132015,50 @@ - + - + - + - + - + - + - + - - + + - - + + - - + + @@ -131321,22 +132069,22 @@ - + - + - + - + @@ -131353,7 +132101,7 @@ - + @@ -131380,13 +132128,13 @@ - + - + @@ -131394,108 +132142,61 @@ - - + + - + - + - + - + - + - + - - + + - + - + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + @@ -131509,152 +132210,61 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + - + - + - + - + - + - + - - - - - - - - - + + + + + + + - + - + - + - + @@ -131662,7 +132272,7 @@ - + @@ -131685,27 +132295,27 @@ - + - + - + - + - + @@ -131713,12 +132323,12 @@ - + - + @@ -131731,59 +132341,59 @@ - + - + - + - + - + - + - + - + - + - + - - + + - + - - + + - + @@ -131804,47 +132414,47 @@ - + - + - - + + - + - + - + - + - + - + @@ -131867,16 +132477,16 @@ - + - + - + @@ -131885,18 +132495,18 @@ - + - + - + - + @@ -131908,7 +132518,7 @@ - + @@ -131919,64 +132529,64 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -131985,31 +132595,31 @@ - + - + - + - - - - - - - - - + + + + + + + + + - + @@ -132019,14 +132629,14 @@ - - + + - + @@ -132034,47 +132644,47 @@ - + - + - - + + - - + + - + - + - + - + - + - + @@ -132090,11 +132700,11 @@ - + - + @@ -132106,36 +132716,36 @@ - + - + - + - + - + - + - + @@ -132154,73 +132764,73 @@ - + - - + + - - + + - + - - + + - - + + - - + + - - - - + + + + - + - - + + - + - + - + - + @@ -132234,9 +132844,9 @@ - + - + @@ -132257,63 +132867,63 @@ - - + + - + - + - + - + - + - + - + - + - + - + - + - + @@ -132321,62 +132931,62 @@ - + - + - + - + - + - - + + - + - + - + - - + + - + - + - + @@ -132390,71 +133000,71 @@ - + - + - + - + - + - + - - + + - - + + - - + + - - + + - + - + - + - + - + @@ -132462,93 +133072,93 @@ - - + + - + - + - + - - + + - + - + - + - + - - + + - + - + - + - + - + - + - - + + - + - + @@ -132556,36 +133166,36 @@ - + - + - + - + - + - + - + - + - + - + @@ -132597,22 +133207,22 @@ - + - + - + - + - + - + @@ -132620,10 +133230,10 @@ - + - + @@ -132631,7 +133241,7 @@ - + @@ -132642,101 +133252,101 @@ - + - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + - + - + - + - + - + - + - + - + - + - - + + - + - + - + - + - + - + - + - + - + - + @@ -132747,30 +133357,30 @@ - + - + - + - + - + - + - + - + @@ -132788,7 +133398,7 @@ - + @@ -132811,59 +133421,59 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -132871,26 +133481,26 @@ - + - + - + - + - + - + - + @@ -132901,38 +133511,38 @@ - + - + - + - + - + - + - + - + - + - + - + - + @@ -132952,222 +133562,222 @@ - + - + - + - + - + - + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - + - - + + - - + + - + - - + + - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - + - + @@ -133227,61 +133837,61 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - + + - + @@ -133308,10 +133918,10 @@ - + - + @@ -133320,8 +133930,8 @@ - - + + @@ -133338,58 +133948,58 @@ - - + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - - + + + + @@ -133415,7 +134025,7 @@ - + @@ -133424,8 +134034,8 @@ - - + + @@ -133436,13 +134046,13 @@ - - - - - - - + + + + + + + @@ -133462,18 +134072,18 @@ - - - - - - - - - - + + + + + + + + + + - + @@ -133485,12 +134095,12 @@ - - - - + + + + - + @@ -133499,19 +134109,19 @@ - + - + - + - + - + @@ -133541,7 +134151,7 @@ - + @@ -133550,13 +134160,13 @@ - + - + @@ -133571,7 +134181,7 @@ - + @@ -133604,7 +134214,7 @@ - + @@ -133625,9 +134235,9 @@ - - - + + + @@ -133650,196 +134260,196 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + - + - - + + - + - - - + + + - + - - - + + + - + - - + + - + - - + + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + - - - - + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + - + - + - + @@ -133854,27 +134464,27 @@ - + - + - + - + - + - + @@ -133882,75 +134492,75 @@ - + - + - + - + - + - + - + - - - - - - - - - + + + + + + + + + - - + + - + - + - + - + - + - + - + @@ -133958,15 +134568,15 @@ - - + + - + - - + + @@ -133974,26 +134584,26 @@ - + - + - + - + @@ -134007,14 +134617,14 @@ - + - + - + @@ -134026,32 +134636,32 @@ - - + + - + - - - + + + - - + + - + - + @@ -134059,22 +134669,22 @@ - + - - + + - + - + @@ -134083,10 +134693,10 @@ - + - + @@ -134095,51 +134705,51 @@ - + - + - + - - + + - + - - + + - - + + - + - + - + - + - + @@ -134166,28 +134776,28 @@ - + - + - + - + - + @@ -134220,28 +134830,28 @@ - + - + - + - + - + - + - + @@ -134265,7 +134875,7 @@ - + @@ -134279,13 +134889,13 @@ - + - + @@ -134293,10 +134903,10 @@ - + - + @@ -134313,7 +134923,7 @@ - + @@ -134322,10 +134932,10 @@ - + - + @@ -134336,7 +134946,7 @@ - + @@ -134357,7 +134967,7 @@ - + @@ -134378,19 +134988,19 @@ - + - + - + @@ -134422,18 +135032,18 @@ - + - + - + - + @@ -134448,12 +135058,12 @@ - + - + @@ -134462,58 +135072,58 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -134530,12 +135140,12 @@ - + - + @@ -134546,125 +135156,125 @@ - + - + - + - + - + - + - + - + - + - + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - + - + - + - + - + - - + + - + - + - + @@ -134673,29 +135283,29 @@ - - + + - + - + - - + + - + @@ -134703,7 +135313,7 @@ - + @@ -134711,215 +135321,215 @@ - + - + - + - + - + - - - + + + - - + + - + - + - + - + - - - + + + - + - - + + - - - + + + - - - + + + - - - - + + + + - - - + + + - - - - - - + + + + + + - - - + + + - - + + - - + + - - + + - - + + - + - - + + - - + + - - + + - - - - + + + + - - - - + + + + - - - + + + - - - + + + - - - + + + - + - - + + - + - + - - + + - + - + - + - + - + @@ -134929,19 +135539,19 @@ - + - + - + @@ -134951,57 +135561,57 @@ - + - + - - + + - + - + - + - + - + - - - + + + - + @@ -135009,16 +135619,16 @@ - + - + - + - + @@ -135030,13 +135640,13 @@ - - - - - + + + + + - + @@ -135045,12 +135655,12 @@ - + - + @@ -135063,7 +135673,7 @@ - + @@ -135073,7 +135683,7 @@ - + @@ -135092,7 +135702,7 @@ - + @@ -135101,15 +135711,15 @@ - + - + - + @@ -135117,22 +135727,22 @@ - + - + - + - + @@ -135164,13 +135774,13 @@ - + - + @@ -135184,25 +135794,25 @@ - - + + - + - + - + @@ -135210,7 +135820,7 @@ - + @@ -135218,7 +135828,7 @@ - + @@ -135250,7 +135860,7 @@ - + @@ -135258,15 +135868,15 @@ - + - - + + - + @@ -135276,15 +135886,15 @@ - + - + - + @@ -135304,7 +135914,7 @@ - + @@ -135318,23 +135928,23 @@ - - + + - + - + - + @@ -135345,13 +135955,13 @@ - + - + @@ -135375,38 +135985,38 @@ - - + + - + - + - + - + - + - + @@ -135414,15 +136024,15 @@ - + - + - + @@ -135430,13 +136040,13 @@ - + - + @@ -135444,19 +136054,19 @@ - + - + - + @@ -135465,9 +136075,9 @@ - + - + @@ -135480,13 +136090,13 @@ - + - + @@ -135494,19 +136104,19 @@ - + - + - + - + @@ -135514,22 +136124,22 @@ - + - + - + - + - + @@ -135538,7 +136148,7 @@ - + @@ -135555,14 +136165,14 @@ - - + + - + @@ -135571,34 +136181,34 @@ - + - + - - - + + + - + - + - + @@ -135606,7 +136216,7 @@ - + @@ -135654,7 +136264,7 @@ - + @@ -135698,27 +136308,27 @@ - + - + - + - + - - + + - + - - + + @@ -135729,11 +136339,11 @@ - + - - + + @@ -135741,7 +136351,7 @@ - + @@ -135752,7 +136362,7 @@ - + @@ -135764,19 +136374,19 @@ - + - + - + - - - - - + + + + + @@ -135789,115 +136399,115 @@ - + - - + + - - + + - + - + + + + - + - + - + - + - + - - + + - + - + - - - - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -135907,18 +136517,18 @@ - + - + - + - + - + @@ -135926,107 +136536,91 @@ - - - - - - + + + + + + - + - + - + - + - - - + + + - - + + - - + + - - - - - - - - - - - - - - - - - - + + - - + + - - + + - - + + - - + + - - + + - + - + - + @@ -136041,7 +136635,7 @@ - + @@ -136050,15 +136644,15 @@ - + - + - + @@ -136073,7 +136667,7 @@ - + @@ -136082,27 +136676,27 @@ - + - + - + - + - + - + - + - + @@ -136116,139 +136710,139 @@ - + - + - + - - - - - - - - - - - - - + + + + + + + + + + + + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - + + - - + + - - + + - - - - + + + + - - + + - - + + - - + + - - + + - + - + - + @@ -136257,40 +136851,40 @@ - + - + - + - + - + - - - - - + + + + + - + - + - + @@ -136306,245 +136900,245 @@ - + - + - + - + - - + + - + - + - + - + - + - + - + - - + + - - + + - - - + + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - + + - - + + - - + + - - + + - - + + - - + + - + - + - + - + - + - + - + - + - + @@ -136562,7 +137156,7 @@ - + @@ -136571,12 +137165,12 @@ - + - + - + @@ -136585,25 +137179,25 @@ - + - + - + - + - + - + - + @@ -136618,179 +137212,179 @@ - + - - - + + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - + + - - + + - + - + - + - + - - + + - + - + - + - + - + - + - + - - + + - - + + - - - - - - + + + + + + - + - + @@ -136807,10 +137401,10 @@ - + - + @@ -136822,13 +137416,13 @@ - + - + @@ -136837,19 +137431,19 @@ - + - + - + - + @@ -136864,7 +137458,7 @@ - + @@ -136873,13 +137467,13 @@ - + - + - + @@ -136894,9 +137488,9 @@ - + - + @@ -136911,7 +137505,7 @@ - + @@ -136938,13 +137532,13 @@ - + - + @@ -136965,7 +137559,7 @@ - + @@ -137003,7 +137597,7 @@ - + @@ -137020,21 +137614,21 @@ - + - + - + - + - + @@ -137049,7 +137643,7 @@ - + @@ -137058,39 +137652,39 @@ - + - + - + - + - + - + - + - - + + @@ -137098,52 +137692,52 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -137152,118 +137746,117 @@ - + - + - + - + - + - + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - + - + - - - + + + - - - + + + - - - + + + - - - + + + - + @@ -137281,7 +137874,7 @@ - + @@ -137293,223 +137886,223 @@ - + - + - + - + - + - + - + - + - - + + - - - - + + + + - - - - - + + + + + - - - - - - + + + + + + - - - - - - + + + + + + - - - - - + + + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - + + - - + + - - - + + + - - - - + + + + - - - - + + + + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - - + + + + - + - - + + @@ -137523,18 +138116,18 @@ - + - + - + - + @@ -137562,145 +138155,145 @@ - - - - - + + + + + - - + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - + + - + - - + + - + - - + + - + - + - + - + - + - + @@ -137726,24 +138319,24 @@ - + - + - + - + - + - + @@ -137755,10 +138348,10 @@ - + - + @@ -137766,10 +138359,10 @@ - + - + @@ -137780,10 +138373,10 @@ - + - + @@ -137792,82 +138385,87 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + + + + + + @@ -137875,56 +138473,56 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -137936,7 +138534,7 @@ - + @@ -137944,102 +138542,102 @@ - + - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - - + + - + - + - - + + - - + + - - + + - - + + - - + + - - - + + + - - + + - - + + - - + + @@ -138054,21 +138652,21 @@ - + - - + + - + - + @@ -138086,22 +138684,22 @@ - + - + - + - + - + - + @@ -138109,7 +138707,7 @@ - + @@ -138121,7 +138719,7 @@ - + @@ -138133,19 +138731,19 @@ - + - + - + - + @@ -138153,25 +138751,25 @@ - + - + - + - + - + @@ -138188,7 +138786,7 @@ - + @@ -138196,12 +138794,12 @@ - + - + @@ -138210,67 +138808,67 @@ - + - + - + - + - + - + - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + - + - + - + - + @@ -138279,65 +138877,65 @@ - + - + - + - + - - + + - - + + - + - + - - + + - - + + - - - + + + - - + + @@ -138346,29 +138944,29 @@ - - + + - - + + - - + + - + - + @@ -138397,7 +138995,7 @@ - + @@ -138409,16 +139007,16 @@ - + - + - + @@ -138438,18 +139036,18 @@ - + - + - + @@ -138458,7 +139056,7 @@ - + @@ -138475,94 +139073,94 @@ - - - - - - - + + + + + + + - + - + - - + + - + - - + + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -138570,7 +139168,7 @@ - + @@ -138580,67 +139178,67 @@ - - + + - - + + - + - + - + - + - + - + - + - + - + - + @@ -138649,7 +139247,7 @@ - + @@ -138661,7 +139259,7 @@ - + @@ -138673,7 +139271,7 @@ - + @@ -138681,28 +139279,28 @@ - + - + - + - + - + - + - + - + - + @@ -138711,7 +139309,7 @@ - + @@ -138720,55 +139318,55 @@ - - - - - - + + + + + + - + - + - + - + - + - - + + - - + + - - + + - + - + @@ -138776,13 +139374,13 @@ - + - + @@ -138791,7 +139389,7 @@ - + @@ -138809,7 +139407,7 @@ - + @@ -138817,16 +139415,16 @@ - + - + - + - + @@ -138838,20 +139436,20 @@ - + - + - + - + @@ -138866,31 +139464,31 @@ - - - - - - - - + + + + + + + + - + - + - + - + @@ -138899,59 +139497,59 @@ - + - + - + - + - - + + - - + + - + - + - + - + - + - - - + + + - - + + @@ -138959,8 +139557,8 @@ - - + + @@ -138969,12 +139567,12 @@ - - + + - - + + @@ -138988,13 +139586,13 @@ - + - + @@ -139006,7 +139604,7 @@ - + @@ -139036,7 +139634,7 @@ - + @@ -139045,7 +139643,7 @@ - + @@ -139063,7 +139661,7 @@ - + @@ -139078,7 +139676,7 @@ - + @@ -139092,10 +139690,10 @@ - + - + @@ -139104,7 +139702,7 @@ - + @@ -139119,15 +139717,15 @@ - + - + - + - + @@ -139147,48 +139745,48 @@ - + - + - + - + - + - + - + - + - + - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + @@ -139202,7 +139800,7 @@ - + @@ -139213,51 +139811,51 @@ - - + + - - + + - - + + - - + + - - + + - + - - + + - - + + @@ -139265,8 +139863,8 @@ - - + + @@ -139274,95 +139872,95 @@ - - + + - - + + - - - + + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -139384,64 +139982,64 @@ - + - + - + - - + + - + - - + + - - + + - - + + - + - + - + - + - + - + - + @@ -139450,34 +140048,34 @@ - + - - + + - + - + - + - + - + @@ -139486,19 +140084,19 @@ - + - + - - + + - + - + @@ -139510,31 +140108,31 @@ - + - + - + - - + + - + - + - + - + - + @@ -139545,7 +140143,7 @@ - + @@ -139556,7 +140154,7 @@ - + @@ -139564,128 +140162,128 @@ - + - + - + - + - + - - + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - + + - + - + - - + + - + - + - + @@ -139709,9 +140307,9 @@ - + - + @@ -139732,170 +140330,170 @@ - + - + - + - + - + - + - + - - - - - - - - - - - - - - + + + + + + + + + + + + + + - + - + - + - + - + - - + + - - + + - - + + - - + + - - - + + + - - + + - - - + + + - + - + - + - + - + - + - + - - + + - - + + - + - + - - - + + + - - + + - - - + + + - - - + + + - - + + - + @@ -139909,8 +140507,8 @@ - - + + @@ -139918,18 +140516,18 @@ - - + + - - - + + + - - + + @@ -139944,86 +140542,86 @@ - + - + - + - + - + - + - + - + - + - + - - - - + + + + - - + + - + - + - + - + - - + + - + - + - + - + @@ -140037,78 +140635,78 @@ - - + + - + - - + + - + - - + + - + - - + + - - + + - - + + - + - - + + - - - + + + - - + + - + - + - + @@ -140117,7 +140715,7 @@ - + @@ -140126,10 +140724,10 @@ - + - + @@ -140146,49 +140744,49 @@ - - - + + + - + - + - + - + - - + + - + - - + + - + - + @@ -140200,13 +140798,13 @@ - + - + @@ -140215,7 +140813,7 @@ - + @@ -140233,42 +140831,42 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -140285,15 +140883,15 @@ - + - + - + @@ -140305,89 +140903,89 @@ - - - - - - - - - - - - - - + + + + + + + + + + + + + + - + - + - - + + - - + + - - + + - - - + + + - - - + + + - - + + - - + + - - + + - - + + - + - - + + - + @@ -140404,12 +141002,12 @@ - + - + @@ -140421,10 +141019,10 @@ - + - + @@ -140439,10 +141037,10 @@ - + - + @@ -140463,7 +141061,7 @@ - + @@ -140472,7 +141070,7 @@ - + @@ -140489,30 +141087,30 @@ - + - + - + - + - + - + - + - + - + @@ -140524,16 +141122,16 @@ - + - + - + - + @@ -140575,157 +141173,157 @@ - + - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + - - - - - + + + + + - - + + - - + + - - - + + + - - + + - - + + - - + + - - - + + + - - - - + + + + - - - - + + + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - + - - + + - - + + - + - + - + - + - + - - + + - + @@ -140743,13 +141341,13 @@ - + - + - + @@ -140761,7 +141359,7 @@ - + @@ -140773,12 +141371,12 @@ - + - + @@ -140787,21 +141385,21 @@ - + - + - + - + - + @@ -140816,25 +141414,25 @@ - + - + - + - + - + @@ -140843,16 +141441,16 @@ - + - + - + @@ -140864,7 +141462,7 @@ - + @@ -140876,9 +141474,9 @@ - + - + @@ -140893,7 +141491,7 @@ - + @@ -140901,68 +141499,68 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -140983,18 +141581,18 @@ - + - + - + - + - + @@ -141014,8 +141612,8 @@ - - + + @@ -141023,7 +141621,7 @@ - + @@ -141037,12 +141635,12 @@ - + - + - + @@ -141051,13 +141649,13 @@ - + - + - + @@ -141066,19 +141664,19 @@ - + - + - + - + @@ -141087,16 +141685,16 @@ - + - + - + @@ -141126,37 +141724,37 @@ - + - + - + - + - + - + - + - + - + - + - + @@ -141171,13 +141769,13 @@ - + - + - + @@ -141195,62 +141793,62 @@ - + - + - + - + - - - - + + + + - + - + - + - + - + - + - + - + - + - - + + - + - + - + @@ -141291,12 +141889,12 @@ - + - + - + @@ -141305,10 +141903,10 @@ - + - + @@ -141319,14 +141917,14 @@ - + - - + + @@ -141340,230 +141938,230 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - + - + - + - + - - - + + + - - + + - - + + - - + + - - + + - - - + + + - - - - - - + + + + + + - - + + - - + + - - + + - - - + + + - - + + - - + + - - + + - + - + - + - + - + - + - + - - - + + + - - - + + + - - + + - - + + - - + + - - - - - + + + + + - - - - + + + + - - - + + + - - - - + + + + - + - - + + - + - + - + @@ -141577,11 +142175,11 @@ - - - + + + - + @@ -141590,34 +142188,34 @@ - + - + - + - + - + - + - + @@ -141631,18 +142229,18 @@ - + - + - + - + @@ -141654,252 +142252,250 @@ - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + - + - + - + - - + + - + - + - + - + - + - + - + - + - - - + + + - - + + - - + + - + - - + + - + - - + + - + - - + + - + - - + + - + - + - + - + - + - + - + - - + + - - + + - - - + + + - - - + + + - + - + - + - + - + - + - + - + - - - + - + - + - + - + - + - + - + - + - + - + @@ -141922,12 +142518,14 @@ + + - + - + @@ -141935,7 +142533,7 @@ - + @@ -141943,26 +142541,26 @@ - + - + - + - + - + @@ -141972,51 +142570,51 @@ - + - + - + - - + + - + - + - + - + - + @@ -142037,77 +142635,77 @@ - - - - + + + + - - + + - - - + + + - - - + + + - + - - + + - - + + - + - + - - + + - - + + - + - + - - + + - - + + - + - + @@ -142119,22 +142717,22 @@ - + - + - + - + - + @@ -142146,21 +142744,21 @@ - + - + - + - + - + - + @@ -142171,7 +142769,7 @@ - + @@ -142197,27 +142795,27 @@ - + - + - + - + - + - + @@ -142253,7 +142851,7 @@ - + @@ -142262,35 +142860,35 @@ - + - + - + - + - + - + - + - + - + - + - + @@ -142307,10 +142905,10 @@ - + - + @@ -142322,10 +142920,10 @@ - + - + @@ -142339,178 +142937,178 @@ - + - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + - + - + - + - + - + - + - + - + - - + + - - + + - - + + - + - + - + - + - + - + - + - + - + - + - + - + - - + + - - + + - - + + - - + + - + - - + + - - + + - - + + - - + + - + - + @@ -142518,13 +143116,13 @@ - + - + @@ -142536,65 +143134,65 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -142606,15 +143204,15 @@ - + - + - + - + @@ -142641,23 +143239,23 @@ - + - + - + - + - + @@ -142665,269 +143263,285 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + + + + + + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + + + + + + + + + + + - + - + @@ -142944,7 +143558,7 @@ - + @@ -142964,13 +143578,13 @@ - + - + - + @@ -142978,207 +143592,207 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + - + - + - + - - + + - + - - + + - - + + - - + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - + + - - + + - + - - + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -143211,7 +143825,7 @@ - + @@ -143226,13 +143840,13 @@ - + - + @@ -143244,47 +143858,47 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -143305,24 +143919,24 @@ - + - + - + - + - + - + @@ -143346,27 +143960,27 @@ - + - + - + - + - + - + @@ -143374,21 +143988,21 @@ - + - + - + - + - + - + @@ -143397,15 +144011,15 @@ - + - + - + @@ -143417,10 +144031,10 @@ - + - + @@ -143440,113 +144054,113 @@ - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + - + - + - + - - - + + + - + - + - + - + - + - + - + - + - - + + - - + + - - + + - - + + - - + + - - + + - + - + @@ -143554,7 +144168,7 @@ - + @@ -143563,66 +144177,66 @@ - - + + - + - + - + - + - + - + - + - + - - + + - - + + - + - + - + - + - + - + @@ -143634,13 +144248,13 @@ - + - + - + @@ -143691,10 +144305,10 @@ - + - + @@ -143715,7 +144329,7 @@ - + @@ -143727,21 +144341,21 @@ - + - + - + - + - + @@ -143750,24 +144364,24 @@ - + - + - + - + - + @@ -143833,13 +144447,13 @@ - + - + - + @@ -143848,10 +144462,10 @@ - + - + @@ -143916,7 +144530,7 @@ - + @@ -143928,7 +144542,7 @@ - + @@ -143939,9 +144553,9 @@ - + - + @@ -143956,25 +144570,25 @@ - + - + - + - + - + - + - + @@ -144070,18 +144684,18 @@ - + - + - + - + @@ -144090,21 +144704,21 @@ - + - + - + - + @@ -144115,70 +144729,70 @@ - + - + - + - + - + - + - + - - - - - - - - - - - + + + + + + + + + + + - - - + + + - - + + - - - + + + - + - + - + - + @@ -144189,10 +144803,10 @@ - + - + @@ -144201,14 +144815,14 @@ - - - + + + - - + + - + @@ -144234,60 +144848,60 @@ - - + + - + - - + + - - + + - + - + - + - + - + - + - + - + - + - + @@ -144298,7 +144912,7 @@ - + @@ -144307,7 +144921,7 @@ - + @@ -144322,7 +144936,7 @@ - + @@ -144334,43 +144948,43 @@ - + - + - + - + - + - + - + - + - + - + - + - + @@ -144385,13 +144999,13 @@ - + - + @@ -144400,31 +145014,31 @@ - + - + - + - + - + @@ -144454,13 +145068,13 @@ - + - + - + @@ -144475,14 +145089,14 @@ - + - + - + @@ -144494,35 +145108,35 @@ - + - + - + - + - + - + - + @@ -144536,7 +145150,7 @@ - + @@ -144554,7 +145168,7 @@ - + @@ -144563,7 +145177,7 @@ - + @@ -144575,10 +145189,10 @@ - + - + @@ -144587,81 +145201,81 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -144694,7 +145308,7 @@ - + @@ -144703,9 +145317,9 @@ - + - + @@ -144717,16 +145331,16 @@ - + - + - + @@ -144777,28 +145391,28 @@ - + - + - + - + - + - + @@ -144813,13 +145427,13 @@ - + - + @@ -144861,9 +145475,9 @@ - + - + @@ -144872,16 +145486,16 @@ - + - + - + @@ -144894,66 +145508,66 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -144961,19 +145575,19 @@ - + - + - + - + @@ -144984,7 +145598,7 @@ - + @@ -144992,18 +145606,18 @@ - + - + - + - + - + @@ -145014,7 +145628,7 @@ - + @@ -145025,13 +145639,13 @@ - + - + - + @@ -145039,10 +145653,10 @@ - + - + @@ -145063,35 +145677,35 @@ - + - + - + - + - + - + - + - + @@ -145102,21 +145716,21 @@ - + - + - + - + - + - + @@ -145124,7 +145738,7 @@ - + @@ -145132,15 +145746,15 @@ - + - + - + @@ -145151,37 +145765,37 @@ - + - + - + - + - + - + - + - + - + - + - + @@ -145202,7 +145816,7 @@ - + @@ -145213,7 +145827,7 @@ - + @@ -145228,10 +145842,10 @@ - + - + @@ -145249,7 +145863,7 @@ - + @@ -145261,42 +145875,42 @@ - + - + - + - + - + - + - + - + - + - + @@ -145326,7 +145940,7 @@ - + @@ -145334,19 +145948,19 @@ - + - + - + @@ -145355,7 +145969,7 @@ - + @@ -145364,19 +145978,19 @@ - + - + - + - + - + @@ -145433,10 +146047,10 @@ - + - + @@ -145447,7 +146061,7 @@ - + @@ -145476,47 +146090,47 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -145527,28 +146141,28 @@ - + - + - + - + - + - + @@ -145561,109 +146175,109 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -145681,13 +146295,13 @@ - + - + @@ -145696,18 +146310,18 @@ - + - + - + - + @@ -145722,15 +146336,15 @@ - + - + - + @@ -145769,7 +146383,7 @@ - + @@ -145777,19 +146391,19 @@ - + - + - + - + @@ -145804,10 +146418,10 @@ - + - + @@ -145836,7 +146450,7 @@ - + @@ -145863,16 +146477,16 @@ - + - + - + @@ -145901,7 +146515,7 @@ - + @@ -145924,70 +146538,70 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -145996,18 +146610,18 @@ - + - + - + - + @@ -146018,15 +146632,15 @@ - + - + - + - + @@ -146037,9 +146651,9 @@ - + - + @@ -146063,138 +146677,138 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - + - + - + - + - + - + @@ -146205,15 +146819,15 @@ - - + + - + - + @@ -146222,20 +146836,20 @@ - + - - + + - - + + - + @@ -146244,65 +146858,65 @@ - + - + - + - + - - + + - - + + - - + + - + - - + + - - + + - + - - - + + + - - + + @@ -146311,12 +146925,12 @@ - + - + @@ -146336,21 +146950,21 @@ - + - + - - + + @@ -146358,8 +146972,8 @@ - - + + @@ -146373,353 +146987,353 @@ - + - + - - + + - + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - + + + - - + + - + - - - + + + - - + + - - + + - + - - - - + + + + - - - + + + - - + + - - - + + + - - - - + + + + - - + + - - + + - - - + + + - - + + - - + + - - + + - - + + - - + + - - + + - - - + + + - - + + - - + + - - + + - + - - + + - - + + - - + + - + - - + + - + - - + + - - - + + + - - - + + + - - - + + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - - + + + - - - + + + - - + + - - + + - - - + + + - - - + + + - + - - - - + + + + - - + + - - + + - - - + + + - - - + + + - - + + - - - + + + - - + + @@ -146736,229 +147350,229 @@ - + - + - + - - - - + + + + - + - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - + - + - + - - - + + + - - + + - - + + - - + + - + - - + + - - + + - - + + - - + + - - + + - - + + - + - - + + - + - + - - - + + + - - + + - + - + - + - + - + - + - + - + - - - + + + - + - + - + - + @@ -146972,7 +147586,7 @@ - + @@ -146989,7 +147603,7 @@ - + @@ -147015,86 +147629,86 @@ - + - + - + - + - - - + + + - + - - + + - + - + - + - + - + - + - - + + - - + + - + - + - + - + - + - + @@ -147106,7 +147720,7 @@ - + @@ -147117,26 +147731,26 @@ - + - + - + - + @@ -147144,17 +147758,17 @@ - + - + - + @@ -147162,7 +147776,7 @@ - + @@ -147170,7 +147784,7 @@ - + @@ -147178,12 +147792,12 @@ - + - + @@ -147191,7 +147805,7 @@ - + @@ -147199,7 +147813,7 @@ - + @@ -147207,149 +147821,149 @@ - + - + - + - + - + - + - + - + - + - - + + - - + + - - + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - + + + - - - - + + + + - - - - + + + + - + - + - + - + - + - + - + @@ -147357,196 +147971,196 @@ - + - + - + - + - + - + - + - - - - + + + + - - + + - + - + - - - - + + + + - - - - + + + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - + - - + + - - + + - - + + - - + + - + - - + + - - + + - - + + - - + + - - + + - - - + + + - + @@ -147557,15 +148171,15 @@ - + - + - + @@ -147573,7 +148187,7 @@ - + @@ -147581,27 +148195,27 @@ - - + + - + - + - + - - + + @@ -147609,7 +148223,7 @@ - + @@ -147620,7 +148234,7 @@ - + @@ -147634,12 +148248,12 @@ - + - + @@ -147648,7 +148262,7 @@ - + @@ -147662,7 +148276,7 @@ - + @@ -147676,77 +148290,77 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -147763,56 +148377,56 @@ - + - + - + - + - + - + - + - - + + - + - - + + - + - + - + - + @@ -147821,146 +148435,146 @@ - - + + - + - + - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + - + - + - + - + - + - + - + - - + + - - - + + + - - - + + + - - + + - - + + - - + + - - + + - - - + + + - + - + - + @@ -147971,11 +148585,11 @@ - + - + @@ -147984,7 +148598,7 @@ - + @@ -147992,11 +148606,11 @@ - + - + @@ -148004,41 +148618,41 @@ - - + + - + - - + + - - + + - - + + - - + + - + @@ -148046,7 +148660,7 @@ - + @@ -148054,7 +148668,7 @@ - + @@ -148062,7 +148676,7 @@ - + @@ -148070,89 +148684,89 @@ - - + + - + - + - + - + - + - - - - + + + + - + - - - + + + - + - + - - - + + + - + - + - + - + - - + + - + - + @@ -148160,7 +148774,7 @@ - + @@ -148171,90 +148785,7 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + @@ -148262,12 +148793,12 @@ - + - + - + @@ -148300,8 +148831,8 @@ - - + + @@ -148312,47 +148843,47 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -148360,7 +148891,7 @@ - + @@ -148371,7 +148902,7 @@ - + @@ -148388,12 +148919,12 @@ - + - + - + @@ -148423,9 +148954,9 @@ - + - + @@ -148434,12 +148965,12 @@ - + - + - + @@ -148454,13 +148985,13 @@ - + - + - + @@ -148472,55 +149003,55 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -148535,16 +149066,16 @@ - + - + - + @@ -148556,28 +149087,28 @@ - + - + - + - + - + - + - + @@ -148594,15 +149125,15 @@ - + - + - + - + @@ -148614,7 +149145,7 @@ - + @@ -148640,7 +149171,7 @@ - + @@ -148652,12 +149183,12 @@ - + - + - + @@ -148669,9 +149200,9 @@ - + - + @@ -148680,9 +149211,9 @@ - + - + @@ -148694,7 +149225,7 @@ - + @@ -148705,10 +149236,10 @@ - + - + @@ -148719,7 +149250,7 @@ - + @@ -148742,24 +149273,24 @@ - + - + - + - + - + - + - + @@ -148770,9 +149301,9 @@ - + - + @@ -148784,7 +149315,7 @@ - + @@ -148798,25 +149329,25 @@ - + - + - + - + - + - + - + @@ -148827,7 +149358,7 @@ - + @@ -148838,16 +149369,16 @@ - + - + - + - + @@ -148858,43 +149389,43 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -148903,7 +149434,7 @@ - + @@ -148912,7 +149443,7 @@ - + @@ -148923,7 +149454,7 @@ - + @@ -148964,18 +149495,18 @@ - + - + - + - + - + @@ -148987,19 +149518,19 @@ - + - + - + - + @@ -149032,13 +149563,13 @@ - + - + - + @@ -149049,7 +149580,7 @@ - + @@ -149061,18 +149592,18 @@ - + - + - + - + - + @@ -149084,21 +149615,21 @@ - + - + - + - + @@ -149106,23 +149637,23 @@ - + - + - + - + - + - + @@ -149140,10 +149671,10 @@ - + - + @@ -149152,18 +149683,18 @@ - + - + - + - + - + @@ -149187,7 +149718,7 @@ - + @@ -149199,17 +149730,17 @@ - + - + - + - + - + @@ -149230,10 +149761,10 @@ - + - + @@ -149242,24 +149773,24 @@ - + - + - + - + - + - + @@ -149268,13 +149799,13 @@ - + - + @@ -149282,7 +149813,7 @@ - + @@ -149293,7 +149824,7 @@ - + @@ -149304,113 +149835,113 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - + - + - + - + - + - + - + @@ -149418,21 +149949,21 @@ - + - + - + - + - + - + @@ -149440,33 +149971,33 @@ - + - + - + - + - - - + + + - + - - + + @@ -149475,7 +150006,7 @@ - + @@ -149491,40 +150022,40 @@ - + - + - + - + - + - + - + @@ -149533,119 +150064,119 @@ - + - - - - + + + + - - - + + + - + - - + + - - - + + + - + - + - + - + - + - - + + - - + + - - + + - - + + - - + + - + - + - + - + @@ -149653,7 +150184,7 @@ - + @@ -149661,32 +150192,32 @@ - - + + - - + + - - + + - + - + @@ -149694,7 +150225,7 @@ - + @@ -149702,51 +150233,51 @@ - + - + - + - - + + - + - + - + - - + + - + @@ -149754,7 +150285,7 @@ - + @@ -149762,14 +150293,14 @@ - - + + - + @@ -149777,7 +150308,7 @@ - + @@ -149785,18 +150316,18 @@ - + - + - + @@ -149804,12 +150335,12 @@ - + - + @@ -149822,101 +150353,101 @@ - - + + - - + + - - + + - + - - + + - - + + - + - - + + - + - - + + - + - - + + - - - + + + - - - + + + - - - + + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - + @@ -149924,7 +150455,7 @@ - + @@ -149932,7 +150463,7 @@ - + @@ -149940,7 +150471,7 @@ - + @@ -149950,19 +150481,19 @@ - + - + - + - + - + @@ -149976,13 +150507,13 @@ - + - + - + @@ -150006,7 +150537,7 @@ - + @@ -150014,7 +150545,7 @@ - + @@ -150022,7 +150553,7 @@ - + @@ -150030,23 +150561,23 @@ - + - + - + - + - + - + @@ -150062,10 +150593,10 @@ - + - + @@ -150073,7 +150604,7 @@ - + @@ -150093,43 +150624,43 @@ - + - + - + - - - - - - - - - - - - - + + + + + + + + + + + + + - + - + - + @@ -150165,13 +150696,13 @@ - + - + @@ -150227,51 +150758,51 @@ - + - + - + - + - + - + - - + + - + - + - + - + - + - + @@ -150296,11 +150827,11 @@ - + - + @@ -150310,7 +150841,7 @@ - + @@ -150336,7 +150867,7 @@ - + @@ -150375,7 +150906,7 @@ - + @@ -150388,7 +150919,7 @@ - + @@ -150396,7 +150927,7 @@ - + @@ -150410,15 +150941,15 @@ - + - + - + @@ -150428,14 +150959,14 @@ - + - + - + @@ -150446,71 +150977,71 @@ - + - + - + - + - + - + - + - + - + - + - - + + - + - + @@ -150527,7 +151058,7 @@ - + @@ -150552,16 +151083,16 @@ - + - + - + @@ -150570,19 +151101,19 @@ - + - - + + - + @@ -150604,11 +151135,11 @@ - + - + @@ -150629,12 +151160,12 @@ - + - + @@ -150692,48 +151223,48 @@ - + - + - - + + - + - + - + - + - - + + - + @@ -150747,7 +151278,7 @@ - + @@ -150761,73 +151292,73 @@ - + - + - - + + - + - + - + - + - + - + - + - + - - + + - + - + - + - + - + @@ -150841,7 +151372,7 @@ - + @@ -150855,73 +151386,73 @@ - + - - + + - - + + - - + + - + - - + + - + - + - - + + - + - + - + - + - + @@ -150932,10 +151463,10 @@ - + - + @@ -150946,26 +151477,26 @@ - + - + - - - + + + - + - - - + + + - + @@ -150973,39 +151504,39 @@ - - + + - - + + - - + + - - + + - - - - - - + + + + + + - + @@ -151013,120 +151544,120 @@ - + - - - - + + + + - - - - + + + + - - - - + + + + - - + + - - - + + + - - - + + + - + - + - + - + - + - - + + - - - + + + - - + + - + - - - + + + - - + + - + - - + + - + - + - + - + - + @@ -151135,10 +151666,10 @@ - - - - + + + + @@ -151163,53 +151694,53 @@ - + - + - + - + - + - + - + - - + + - - - + + + - - + + - - + + @@ -151228,60 +151759,60 @@ - - + + - + - + - + - + - + - + - + - - + + - + - + - + - + - + @@ -151312,32 +151843,32 @@ - + - + - + - + - + - + - + - + - + @@ -151346,13 +151877,13 @@ - + - + @@ -151363,22 +151894,22 @@ - + - + - + - + - + @@ -151413,23 +151944,23 @@ - + - + - + - + - + - + @@ -151438,29 +151969,29 @@ - + - + - + - + - + - + - + - + @@ -151469,7 +152000,7 @@ - + @@ -151513,7 +152044,7 @@ - + @@ -151525,16 +152056,16 @@ - + - + - + @@ -151545,12 +152076,12 @@ - + - + - + @@ -151562,12 +152093,12 @@ - + - + - + @@ -151576,9 +152107,9 @@ - + - + @@ -151587,7 +152118,7 @@ - + @@ -151596,175 +152127,175 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - + + - + @@ -151773,52 +152304,52 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -151832,67 +152363,67 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -151900,9 +152431,9 @@ - + - + @@ -151911,7 +152442,7 @@ - + @@ -151919,19 +152450,19 @@ - + - + - + - + - + @@ -151946,64 +152477,64 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -152014,7 +152545,7 @@ - + @@ -152025,12 +152556,12 @@ - + - + @@ -152044,25 +152575,25 @@ - + - + - + - + - + - + @@ -152070,23 +152601,23 @@ - + - + - + - + - + - + - + @@ -152094,7 +152625,7 @@ - + @@ -152102,52 +152633,52 @@ - + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + - + @@ -152155,29 +152686,29 @@ - - + + - - + + - + - - + + - - - + + + @@ -152187,24 +152718,24 @@ - + - + - + - - + + - + @@ -152212,28 +152743,28 @@ - - + + - - + + - + - + - + - + - - - + + + @@ -152242,14 +152773,14 @@ - - + + - + - + @@ -152258,13 +152789,13 @@ - + - + - + @@ -152273,7 +152804,7 @@ - + @@ -152306,7 +152837,7 @@ - + @@ -152315,15 +152846,15 @@ - + - + - + @@ -152368,7 +152899,7 @@ - + @@ -152379,7 +152910,7 @@ - + @@ -152390,15 +152921,15 @@ - + - + - + - + @@ -152415,31 +152946,31 @@ - + - + - + - + - + - + - + @@ -152454,10 +152985,10 @@ - + - + @@ -152468,13 +152999,13 @@ - + - + - + @@ -152482,15 +153013,15 @@ - + - + - + @@ -152498,16 +153029,16 @@ - + - + - + - + @@ -152516,7 +153047,7 @@ - + @@ -152524,24 +153055,24 @@ - + - + - + - + - + - + @@ -152578,13 +153109,13 @@ - + - - + + @@ -152593,16 +153124,16 @@ - + - + - + - - + + @@ -152619,8 +153150,8 @@ - - + + @@ -152631,239 +153162,239 @@ - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + - + - + - + - + - + - + - - - + + + - - + + - + - - + + - - + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - + + @@ -152872,32 +153403,32 @@ - + - + - + - - + + - + - + - + @@ -152919,78 +153450,78 @@ - - + + - + - + - + - + - + - - + + - - + + - + - + - + - - + + - - + + - + @@ -152998,37 +153529,37 @@ - + - + - + - + - + - + - + - + @@ -153037,44 +153568,44 @@ - + - + - + - - - + + + - + - + - + - + @@ -153083,21 +153614,21 @@ - + - + - + - + - + - + @@ -153106,7 +153637,7 @@ - + @@ -153115,7 +153646,7 @@ - + @@ -153123,11 +153654,11 @@ - + - + @@ -153136,8 +153667,8 @@ - - + + @@ -153154,86 +153685,86 @@ - + - + - + - + - + - + - - + + - + - + - + - + - + - + - + - + - + - + - - + + - - + + @@ -153241,335 +153772,335 @@ - - - + + + - - + + - - + + - - + + - - + + - + - - + + - - - + + + - - + + - + - - - - + + + + - - - + + + - - - + + + - - + + - - + + - + - + - + - + - + - + - + - + - + - + - + - - - + + + - + - - + + - + - - + + - - + + - + - + - + - - + + - + - + - + - + - + - - + + - - - + + + - - + + - + - + - + - - - - + + + + - + - + - + - + - + - + - + - - - + + + - + - + - + - - - + + + - + - + - - + + - - - + + + - + - + - + - + - + - + - + @@ -153578,29 +154109,29 @@ - + - + - + - + - + - + - + @@ -153630,22 +154161,22 @@ - - + + - + - + - + - + @@ -153657,28 +154188,28 @@ - + - + - + - + - + - + - + - + @@ -153689,9 +154220,9 @@ - + - + @@ -153703,7 +154234,7 @@ - + @@ -153712,7 +154243,7 @@ - + @@ -153723,9 +154254,9 @@ - + - + @@ -153737,7 +154268,7 @@ - + @@ -153745,7 +154276,7 @@ - + @@ -153753,7 +154284,7 @@ - + @@ -153770,12 +154301,12 @@ - + - + @@ -153789,25 +154320,25 @@ - + - + - - - - - - - - + + + + + + + + - - + + @@ -153816,21 +154347,21 @@ - - + + - + - - + + - - + + @@ -153840,202 +154371,202 @@ - + - + - - - + + + - + - + - - + + - - + + - - - - + + + + - - - - + + + + - - - + + + - - - + + + - + - + - + - + - + - + - - + + - - + + - - + + - + - + - + - + - + - + - + - - + + - - + + - - + + - + - + - - + + - - + + - - + + - + - + - + - + - + - + - + @@ -154056,15 +154587,15 @@ - + - + - + - + @@ -154072,7 +154603,7 @@ - + @@ -154080,111 +154611,111 @@ - + - + - + - + - - - - + + + + - + - + - + - + - + - + - - + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -154194,7 +154725,7 @@ - + @@ -154202,213 +154733,213 @@ - - - - - - - - + + + + + + + + - - + + - - - + + + - - - + + + - - - + + + - - - - - + + + + + - - - - - + + + + + - - - - - - + + + + + + - - - - - - + + + + + + - - + + - - - + + + - - - - - - + + + + + + - - + + - - - - - - + + + + + + - - - + + + - - - + + + - - - + + + - - - - + + + + - - - - + + + + - - - + + + - - - + + + - - - + + + - - - - + + + + - - - + + + - - - - - + + + + + - - - - - + + + + + - - - - + + + + - - - + + + - - + + - - - - - - + + + + + + - - - - - - + + + + + + - - - - - - + + + + + + - - - - + + + + - - + + - - + + - - - + + + @@ -154416,25 +154947,25 @@ - + - + - + - + - + - + - + @@ -154454,24 +154985,24 @@ - - - - - - - - - - + + + + + + + + + + - - - - + + + + @@ -154494,15 +155025,15 @@ - + - - + + @@ -154516,27 +155047,27 @@ - + - + - + - + - + - + @@ -154550,7 +155081,7 @@ - + @@ -154567,60 +155098,60 @@ - + - + - - + + - + - + - + - - + + - - - + + + - - - + + + - - - + + + @@ -154628,51 +155159,51 @@ - + - + - - - + + + - - - + + + - + - + - + - + - + - - + + - - + + - + @@ -154698,18 +155229,18 @@ - + - + - + - + @@ -154717,15 +155248,15 @@ - + - - + + - + @@ -154734,12 +155265,12 @@ - + - + @@ -154750,52 +155281,52 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - + + @@ -154812,180 +155343,180 @@ - + - - - - - - - - - - + + + + + + + + + + - - + + - + - - + + - - - + + + - + - - + + - - - + + + - + - - + + - + - - - + + + - - + + - + - + - + - + - + - + - + - + - + - - - - - - + + + + + + - - + + - - + + - + - + - + - + - + - + - + - + - + - + - + - - + + - + @@ -154993,8 +155524,8 @@ - - + + @@ -155002,7 +155533,7 @@ - + @@ -155022,7 +155553,7 @@ - + @@ -155030,58 +155561,58 @@ - + - + - + - + - - + + - + - + - + - - + + - + - + @@ -155094,7 +155625,7 @@ - + @@ -155102,59 +155633,59 @@ - + - - - - + + + + - + - - + + - - + + - - + + - + - + - + - + - - + + - + - + - + @@ -155162,152 +155693,152 @@ - - + + - - + + - + - + - - + + - + - + - - + + - + - + - + - + - - + + - - + + - - + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -155315,57 +155846,57 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -155379,25 +155910,25 @@ - + - + - + - + - + - + - + - + @@ -155406,7 +155937,7 @@ - + @@ -155414,7 +155945,7 @@ - + @@ -155429,12 +155960,12 @@ - + - + - + @@ -155446,7 +155977,7 @@ - + @@ -155455,310 +155986,310 @@ - + - + - + - - + + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - + - + - + - - + + - + - + - + - + - + - + - + - + - + - + - + - - + + - - + + - - - + + + - + - + - - + + - + - - - + + + - + - - - - + + + + - - - + + + - - - + + + - + - + - + - + - + - + - + - - - - + + + + @@ -155766,46 +156297,46 @@ - - + + - - + + - + - + - + - + - + - - + + - + - + @@ -155826,113 +156357,113 @@ - + - + - - + + - - + + - - - + + + - - + + - - - + + + - - - + + + - + - + - + - + - + - + - - + + - + - - + + - + - + - + - + - + - + - + - + @@ -155946,10 +156477,10 @@ - + - + @@ -155961,7 +156492,7 @@ - + @@ -155970,35 +156501,35 @@ - + - + - + - + - - + + - + - + - + @@ -156009,8 +156540,8 @@ - - + + @@ -156023,7 +156554,7 @@ - + @@ -156033,7 +156564,7 @@ - + @@ -156041,77 +156572,77 @@ - + - + - + - - + + - - + + - + - + - + - + - + - + - + - + - + @@ -156141,39 +156672,39 @@ - + - + - + - + - + - - + + - - + + - + - - + + @@ -156182,46 +156713,46 @@ - - + + - + - + - + - + - - - + + + - + - + - - + + - + - + @@ -156238,7 +156769,7 @@ - + @@ -156258,119 +156789,119 @@ - + - + - + - + - + - + - + - + - + - - - - - - - - + + + + + + + + - - + + - - + + - + - + - + - + - + - + - - - + + + - + - + - - + + - - + + - - - + + + - + - + - + - + - + @@ -156378,10 +156909,10 @@ - + - + @@ -156395,7 +156926,7 @@ - + @@ -156403,143 +156934,143 @@ - - - - - - - + + + + + + + - + - + - - - - + + + + - - - - - + + + + + - + - + - + - + - + - + - + - - + + - - + + - + - + - - + + - + - + - - + + - - + + - + - - + + - + - + - + - + - + - + - + - + @@ -156548,8 +157079,8 @@ - - + + @@ -156557,7 +157088,7 @@ - + @@ -156569,9 +157100,9 @@ - + - + @@ -156580,7 +157111,7 @@ - + @@ -156595,40 +157126,40 @@ - + - + - + - + - + - + - + - + - + - + - + @@ -156636,7 +157167,7 @@ - + @@ -156645,37 +157176,37 @@ - + - + - + - + - + - + - + - + - + - + - + @@ -156700,8 +157231,8 @@ - - + + @@ -156712,21 +157243,21 @@ - + - + - + - + - + - + @@ -156737,145 +157268,145 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - + - + - + - + - - - + + + - - + + - + - + - - - - + + + + - - - - + + + + - - - + + + - + - - + + - + - - - - + + + + - + - - + + - + - + - - + + - - - + + + @@ -156884,9 +157415,9 @@ - - - + + + @@ -156897,9 +157428,9 @@ - - - + + + @@ -156908,11 +157439,11 @@ - - + + - - + + @@ -156920,85 +157451,85 @@ - + - - + + - + - + - - - + + + - - + + - + - + - - + + - + - + - + - - + + - + - + - - + + - + - - - - + + + + - - - - + + + + - - + + - - + + - - + + @@ -157007,126 +157538,126 @@ - + - + - + - - - + + + - - - + + + - + - + - - + + - + - - + + - + - - + + - + - - - + + + - - + + - + - + - + - - + + - - + + - - + + - + - + - + - - + + - + - - + + - - + + - + @@ -157134,16 +157665,16 @@ - + - + - + - + @@ -157152,9 +157683,9 @@ - + - + @@ -157172,7 +157703,7 @@ - + @@ -157180,23 +157711,23 @@ - + - + - + - + - + - + - + @@ -157204,69 +157735,69 @@ - - - - - - - - + + + + + + + + - + - + - - - + + + - + - + - - + + - + - + - + - + - + - - + + - - + + - + @@ -157274,7 +157805,7 @@ - + @@ -157283,25 +157814,25 @@ - + - + - + - + - + @@ -157309,9 +157840,9 @@ - + - + @@ -157320,9 +157851,9 @@ - + - + @@ -157334,7 +157865,7 @@ - + @@ -157343,7 +157874,7 @@ - + @@ -157354,27 +157885,27 @@ - + - + - + - + - + - + - + - + @@ -157386,60 +157917,60 @@ - - - - - - - - - - - - - + + + + + + + + + + + + + - + - + - + - + - + - + - + - + - + @@ -157448,17 +157979,17 @@ - + - + - + @@ -157466,7 +157997,7 @@ - + @@ -157476,11 +158007,11 @@ - - + + - + @@ -157490,29 +158021,29 @@ - + - + - - + + - + - + - + - + @@ -157521,37 +158052,37 @@ - + - + - + - - + + - + - + - + - + @@ -157574,28 +158105,28 @@ - + - + - + - + - + - + - + - + @@ -157610,18 +158141,18 @@ - + - + - + - + - + @@ -157636,7 +158167,7 @@ - + @@ -157644,28 +158175,28 @@ - + - + - + - + - + - + @@ -157676,31 +158207,31 @@ - + - + - + - + - - - - - - - - - - - - + + + + + + + + + + + + @@ -157708,28 +158239,28 @@ - + - + - + - - + + - + @@ -157737,37 +158268,37 @@ - + - + - - + + - + - + - + - - + + - + - - + + - - + + @@ -157778,18 +158309,18 @@ - + - + - + - + @@ -157803,33 +158334,33 @@ - + - + - + - + - + - + - + - + - + @@ -157840,40 +158371,40 @@ - + - + - + - + - + - + - + - + - + - + - + - + @@ -157882,259 +158413,259 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - + + + + - - + + - + - - + + - + - + - + - - + + - + - + - - + + - - - + + + - - - + + + - + - + - + - - - - + + + + - - + + - + - + - + - - - - + + + + - - - - + + + + - - - + + + - - + + - + - - - + + + - - + + - + - + - + - + - + - - + + - - + + - + - + - + - - + + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - - - + + + + + - + @@ -158142,7 +158673,7 @@ - + @@ -158152,79 +158683,79 @@ - - + + - + - + - + - + - + - + - + - - - - + + + + - + - - - - + + + + - + - + - + - + - - - - + + + + @@ -158240,11 +158771,11 @@ - + - + @@ -158253,24 +158784,24 @@ - + - + - + - + @@ -158279,10 +158810,10 @@ - + - + @@ -158291,67 +158822,67 @@ - + - + - - - + + + - + - + - - + + - - + + - - + + - - + + - - + + - - + + @@ -158359,20 +158890,20 @@ - + - + - + @@ -158380,7 +158911,7 @@ - + @@ -158389,19 +158920,19 @@ - + - - + + - + @@ -158412,50 +158943,50 @@ - + - + - + - + - + - + - + - + - + - + - + - - - - - - - - - + + + + + + + + + @@ -158465,11 +158996,11 @@ - + - + @@ -158500,58 +159031,66 @@ - + - + - - - + + + - + - + - - + + - + - + - - - - + - - - - - - + + + + + + + + + + + + + + + + + - + - + - - + + @@ -158559,42 +159098,42 @@ - + - + - + - - + + - + - + - + - + - - - + + + - + @@ -158602,54 +159141,54 @@ - - + + - - - + + + - + - + - - - + + + - + - - + + - - - + + + - + - - + + @@ -158658,14 +159197,14 @@ - + - + @@ -158679,16 +159218,16 @@ - - + + - + - + @@ -158697,39 +159236,39 @@ - + - + - + - + - + - + - + - + - + - + - + - + @@ -158738,77 +159277,69 @@ - + - - - - - - - - - - - - - - - - - - + + + + + + + + + + - - + + - - + + - - - + + + - - - + + + - + - + - + - - + + - + - - + + - + - + - + @@ -158819,131 +159350,131 @@ - - - - - - - - - - - + + + + + + + + + + + - + - + - + - - - + + + - - - + + + - + - + - - + + - + - - - - - - + + + + + + - + - + - + - - - + + + - + - + - + - - + + - - + + - - + + - + - + - + - + @@ -158951,10 +159482,10 @@ - + - + @@ -158965,25 +159496,25 @@ - - - + + + - + - + - + @@ -158993,89 +159524,89 @@ - + - + - + - - + + - + - + - + - + - + - + - + - + - + - - + + - + - + - + - + - + - + @@ -159084,10 +159615,10 @@ - - + + - + @@ -159096,21 +159627,21 @@ - - + + - + - - + + @@ -159120,20 +159651,20 @@ - + - + - + - + @@ -159142,12 +159673,12 @@ - + - + - + @@ -159156,58 +159687,58 @@ - - + + - + - - + + - + - + - - + + - - + + - - + + - - + + - - + + @@ -159215,13 +159746,13 @@ - + - + @@ -159247,80 +159778,80 @@ - - - + + + - + - - - + + + - + - + - + - - - + + + - - + + - + - - + + - + - + - + - + - + - - + + - + - + - + @@ -159330,16 +159861,16 @@ - + - + - + - - + + @@ -159347,8 +159878,8 @@ - - + + @@ -159356,16 +159887,16 @@ - - + + - + - + - + @@ -159375,16 +159906,16 @@ - + - + - + - - + + @@ -159392,8 +159923,8 @@ - - + + @@ -159401,133 +159932,133 @@ - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + - + - - - + + + - + - - + + - - + + - + - - + + - - + + - + - + - - + + - + - + - + - + - - + + - + - + - - + + - + - - + + - + - + - + - + - + - - + + - + - + - - + + - + - - + + - + - + @@ -159535,48 +160066,48 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -159596,13 +160127,13 @@ - + - + - + @@ -159625,13 +160156,13 @@ - + - + - + @@ -159642,7 +160173,7 @@ - + @@ -159653,7 +160184,7 @@ - + @@ -159685,13 +160216,13 @@ - + - + - + @@ -159720,7 +160251,7 @@ - + @@ -159740,16 +160271,16 @@ - + - + - + - + @@ -159772,7 +160303,7 @@ - + @@ -159792,7 +160323,7 @@ - + @@ -159800,7 +160331,7 @@ - + @@ -159817,10 +160348,10 @@ - + - + @@ -159846,7 +160377,7 @@ - + @@ -159860,54 +160391,54 @@ - - - - - - - - - + + + + + + + + + - - + + - - + + - - - + + + - - - + + + - - + + - + - + - + - + - + @@ -159915,34 +160446,34 @@ - + - + - + - + - + - + - + - - - + + + @@ -159950,23 +160481,23 @@ - - + + - - - + + + - + - - + + @@ -159974,52 +160505,52 @@ - + - - + + - + - + - - + + - + - + - - + + @@ -160030,8 +160561,8 @@ - - + + @@ -160040,25 +160571,25 @@ - - + + - + - + - + - + @@ -160069,23 +160600,23 @@ - + - + - - + + - + - + @@ -160094,14 +160625,14 @@ - - + + - - + + @@ -160112,16 +160643,16 @@ - - + + - + - + @@ -160136,7 +160667,7 @@ - + @@ -160147,63 +160678,63 @@ - - + + - + - - - + + + - + - + - - - - + + + + - + - + - + - + - + - + @@ -160214,7 +160745,7 @@ - + @@ -160223,30 +160754,30 @@ - + - + - + - + - + - + - + @@ -160279,10 +160810,10 @@ - + - + @@ -160292,10 +160823,10 @@ - + - + @@ -160307,32 +160838,32 @@ - + - + - + - + - + - + - + - + - + @@ -160365,7 +160896,7 @@ - + @@ -160376,7 +160907,7 @@ - + @@ -160385,117 +160916,117 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -160503,18 +161034,18 @@ - + - + - + - + - + @@ -160522,58 +161053,58 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - + @@ -160582,38 +161113,38 @@ - + - + - + - + - + - + - + - + @@ -160621,19 +161152,19 @@ - + - + - - + + - + @@ -160644,13 +161175,13 @@ - - + + - - + + @@ -160667,17 +161198,17 @@ - + - + - + @@ -160687,17 +161218,17 @@ - + - + - + @@ -160721,7 +161252,7 @@ - + @@ -160729,43 +161260,43 @@ - + - + - + - + - + - + - + - + @@ -160774,29 +161305,29 @@ - + - + - + - + - + - - - + + + @@ -160804,65 +161335,65 @@ - - - + + + - + - + - - + + - + - - + + - - + + - - - + + + - + - + - - + + - - + + - + - - - - + + + + @@ -160870,7 +161401,7 @@ - + @@ -160884,15 +161415,15 @@ - + - - - + + + @@ -160903,48 +161434,48 @@ - + - + - + - - - + + + - + - - - + + + - + - + - + @@ -160956,7 +161487,7 @@ - + @@ -160965,26 +161496,26 @@ - + - + - + - + - + - + @@ -160992,38 +161523,38 @@ - + - + - + - - - + + + - + - + - + - + @@ -161033,26 +161564,26 @@ - - + + - - + + - + - + - + - + - + @@ -161064,43 +161595,43 @@ - + - + - - - - - - - - + + + + + + + + - + - + - + - + - + @@ -161121,7 +161652,7 @@ - + @@ -161168,44 +161699,44 @@ - + - + - + - + - + - + - + - + - + - + @@ -161214,7 +161745,7 @@ - + @@ -161240,44 +161771,44 @@ - - - + + + - + - + - + - + - + - + - + - + - + @@ -161286,17 +161817,17 @@ - + - + - + @@ -161313,15 +161844,15 @@ - - + + - + @@ -161329,7 +161860,7 @@ - + @@ -161337,7 +161868,7 @@ - + @@ -161345,7 +161876,7 @@ - + @@ -161355,12 +161886,12 @@ - + - - + + @@ -161368,16 +161899,16 @@ - + - - + + - + - + @@ -161387,35 +161918,35 @@ - - - + + + - + - - + + - - + + - + - + - - + + @@ -161432,15 +161963,15 @@ - + - + - + @@ -161473,12 +162004,12 @@ - + - + - + @@ -161514,30 +162045,30 @@ - - + + - + - - + + - - + + - + - + - + @@ -161550,8 +162081,8 @@ - - + + @@ -161562,113 +162093,113 @@ - + - + - + - + - + - + - + - - - - + + + + - - - - + + + + - - + + - - + + - - + + - - + + - - - - + + + + - + - + - + - - - - + + + + - - - + + + - + - + - - + + - + @@ -161676,7 +162207,7 @@ - + @@ -161684,13 +162215,13 @@ - + - + - + @@ -161791,16 +162322,16 @@ - + - + - + - + @@ -161821,16 +162352,16 @@ - + - + - + - + @@ -161839,10 +162370,10 @@ - + - + @@ -161857,11 +162388,11 @@ - + - - + + @@ -161875,31 +162406,31 @@ - + - + - + - - + + - + - + @@ -161907,7 +162438,7 @@ - + @@ -161915,7 +162446,7 @@ - + @@ -161923,7 +162454,7 @@ - + @@ -161931,60 +162462,60 @@ - - + + - - + + - - - + + + - + - + - + - + - + - + - + - + @@ -161992,7 +162523,7 @@ - + @@ -162000,12 +162531,12 @@ - - + + - + @@ -162013,7 +162544,7 @@ - + @@ -162021,21 +162552,21 @@ - + - + - + - + @@ -162082,9 +162613,9 @@ - + - + @@ -162093,211 +162624,211 @@ - + - + - + - + - + - + - + - - - - - - - - - - + + + + + + + + + + - + - + - + - + - - - + + + - + - + - + - - + + - + - - - - + + + + - - - + + + - - - - - + + + + + - - - - - - - + + + + + + + - - - + + + - - + + - - - + + + - + - - + + - + - + - + - + - + - - - - - + + + + + - + - + - - + + - + - + - + - + - + - + - + - + - + @@ -162309,95 +162840,95 @@ - + - + - + - + - + - + - - - - - - - + + + + + + + - - + + - - + + - + - + - + - + - + - - - + + + - + - - + + - + - + - + - + @@ -162416,121 +162947,121 @@ - - + + - + - - + + - - - + + + - + - - - + + + - - - + + + - + - - - - + + + + - + - - + + - + - + - - - + + + - - + + - - + + - + - + - + - + - - + + - - + + - + - + - + - + - + - + - + @@ -162623,7 +163154,7 @@ - + @@ -162635,7 +163166,7 @@ - + @@ -162728,7 +163259,7 @@ - + @@ -162761,7 +163292,7 @@ - + @@ -162851,13 +163382,13 @@ - + - + - + @@ -162908,36 +163439,36 @@ - + - + - + - + - + - + - + - + - + @@ -162955,25 +163486,25 @@ - + - + - + - + - + @@ -163003,30 +163534,30 @@ - + - + - + - + - + - + - + @@ -163038,7 +163569,7 @@ - + @@ -163101,21 +163632,21 @@ - + - + - + - + - + @@ -163127,7 +163658,7 @@ - + @@ -163136,7 +163667,7 @@ - + @@ -163145,7 +163676,7 @@ - + @@ -163196,16 +163727,16 @@ - + - + - + - + @@ -163214,10 +163745,10 @@ - + - + @@ -163225,7 +163756,7 @@ - + @@ -163272,7 +163803,7 @@ - + @@ -163283,19 +163814,19 @@ - + - + - + @@ -163303,10 +163834,10 @@ - + - + @@ -163314,23 +163845,23 @@ - + - + - + - + - + - + @@ -163342,7 +163873,7 @@ - + @@ -163354,7 +163885,7 @@ - + @@ -163366,7 +163897,7 @@ - + @@ -163380,22 +163911,22 @@ - + - + - + - + - + @@ -163403,7 +163934,7 @@ - + @@ -163417,9 +163948,9 @@ - + - + @@ -163428,15 +163959,15 @@ - + - + - + - + @@ -163444,7 +163975,7 @@ - + @@ -163453,7 +163984,7 @@ - + @@ -163462,7 +163993,7 @@ - + @@ -163477,7 +164008,7 @@ - + @@ -163494,21 +164025,21 @@ - + - + - + - + - + - + @@ -163523,24 +164054,24 @@ - + - + - + - + - + - + @@ -163549,7 +164080,7 @@ - + @@ -163578,7 +164109,7 @@ - + @@ -163595,7 +164126,7 @@ - + @@ -163621,12 +164152,12 @@ - + - + - + @@ -163634,7 +164165,7 @@ - + @@ -163642,7 +164173,7 @@ - + @@ -163653,7 +164184,7 @@ - + @@ -163664,7 +164195,7 @@ - + @@ -163672,12 +164203,12 @@ - + - + - + @@ -163686,35 +164217,35 @@ - + - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + - + - + @@ -163729,50 +164260,50 @@ - + - + - + - + - + - - + + - - + + - - + + - - - + + + - + @@ -163780,9 +164311,9 @@ - + - + @@ -163791,25 +164322,25 @@ - + - + - + - + - + @@ -163821,44 +164352,44 @@ - - + + - - + + - + - + - + - + - + - + - + @@ -163880,16 +164411,16 @@ - + - + - + @@ -163902,15 +164433,15 @@ - + - + - + @@ -163919,13 +164450,13 @@ - + - + @@ -163943,53 +164474,53 @@ - + - - - + + + - - + + - + - + - + - + - + - + - + @@ -163997,46 +164528,46 @@ - - + + - + - + - + - + - - + + - + - + - + @@ -164045,12 +164576,12 @@ - - + + - + @@ -164072,25 +164603,25 @@ - + - + - + - + - - + + - + @@ -164101,50 +164632,50 @@ - + - - - + + + - + - + - - + + - + - + - + - + - + @@ -164155,7 +164686,7 @@ - + @@ -164168,11 +164699,11 @@ - + - + @@ -164180,10 +164711,10 @@ - - - - + + + + @@ -164192,7 +164723,7 @@ - + @@ -164201,50 +164732,50 @@ - + - + - + - + - + - + - + - + - + - + @@ -164252,7 +164783,7 @@ - + @@ -164263,84 +164794,84 @@ - + - + - - - + + + - + - + - + - - + + - - + + - - + + - - + + - - + + - - + + - + - - + + - + @@ -164348,43 +164879,43 @@ - - + + - + - + - + - + - + - + - + @@ -164401,7 +164932,7 @@ - + @@ -164421,66 +164952,37 @@ - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + - - + - + - - + + - + - + @@ -164489,13 +164991,13 @@ - - + + - + @@ -164521,15 +165023,15 @@ - + - + - - - + + + @@ -164550,65 +165052,65 @@ - + - + - - + + - + - + - + - + - + - + - + - - - + + + - - + + - + - + - + - + @@ -164616,14 +165118,14 @@ - + - + @@ -164643,10 +165145,10 @@ - + - + @@ -164655,19 +165157,19 @@ - - - + + + - - + + - + @@ -164675,8 +165177,8 @@ - - + + @@ -164686,7 +165188,7 @@ - + @@ -164700,7 +165202,7 @@ - + @@ -164738,58 +165240,58 @@ - + - + - + - + - + - + - + - - - - - - - + + + + + + + - + - + - + - + - + - - + + @@ -164810,15 +165312,15 @@ - + - - + + @@ -164826,7 +165328,7 @@ - + @@ -164837,7 +165339,7 @@ - + @@ -164851,34 +165353,34 @@ - + - - + + - - - + + + - + - - - + + + - - + + @@ -164888,26 +165390,26 @@ - + - + - + - + - + - + - + @@ -164921,18 +165423,18 @@ - + - + - + - + - + @@ -164964,31 +165466,31 @@ - + - + - + - - - - - - - - - - - + + + + + + + + + + + - - + + - - + + @@ -165008,9 +165510,9 @@ - + - + @@ -165018,8 +165520,8 @@ - - + + @@ -165028,54 +165530,54 @@ - + - + - + - + - + - + - + - + - - + + - + - - + + - + - + - + @@ -165128,7 +165630,7 @@ - + @@ -165137,21 +165639,21 @@ - + - + - + - + - + @@ -165166,13 +165668,13 @@ - - - + + + - - - + + + @@ -165182,35 +165684,35 @@ - + - + - + - - + + - - + + - + - + - + @@ -165243,10 +165745,10 @@ - + - + @@ -165258,10 +165760,10 @@ - + - + @@ -165270,7 +165772,7 @@ - + @@ -165282,7 +165784,7 @@ - + @@ -165302,12 +165804,12 @@ - + - + - + @@ -165319,24 +165821,24 @@ - + - + - + - + - + - + @@ -165353,204 +165855,196 @@ - + - + - + - - - - - - - - + + + + + + + + - + - + - + - - + + - + - + - - + + - + - - + + - - + + - + - + - + - + - + - + - + - - - + + + - - - + + + - + - + - + - - - - - - - - - + - - + + - + - + - + - - - - + + + + - + - + - + - + - + - + - + @@ -165561,7 +166055,7 @@ - + @@ -165585,15 +166079,15 @@ - + - + - + @@ -165601,75 +166095,75 @@ - + - + - + - + - + - - - - - - + + + + + + - + - + - - - - + + + + - - + + - - + + - - + + - - + + - + - + - - + + @@ -165683,37 +166177,37 @@ - + - + - + - - + + - - + + - + - + - + @@ -165740,7 +166234,7 @@ - + @@ -165751,18 +166245,18 @@ - - + + - + - + - + - + @@ -165772,28 +166266,28 @@ - + - + - + - + - + - + - + @@ -165807,8 +166301,8 @@ - - + + @@ -165820,58 +166314,58 @@ - + - + - + - + - + - + - + - - - + + + - + - + - - + + - - - - - - - - + + + + + + + + @@ -165883,21 +166377,21 @@ - + - + - + - + - - + + @@ -165914,11 +166408,11 @@ - + - + @@ -165932,24 +166426,24 @@ - + - + - + - + - + - + @@ -165964,24 +166458,24 @@ - + - + - + - + - + - + - + @@ -165990,10 +166484,10 @@ - + - + @@ -166005,40 +166499,40 @@ - - - + + + - + - + - - - - + + + + - + - + - + @@ -166061,15 +166555,15 @@ - + - + - + - + @@ -166081,24 +166575,24 @@ - + - + - + - + - + - + - + @@ -166107,10 +166601,10 @@ - + - + @@ -166137,10 +166631,10 @@ - + - + @@ -166149,7 +166643,7 @@ - + @@ -166157,35 +166651,35 @@ - - + + - + - + - - - - + + + + - + - + @@ -166199,7 +166693,7 @@ - + @@ -166217,7 +166711,7 @@ - + @@ -166237,15 +166731,15 @@ - + - + - + @@ -166262,27 +166756,27 @@ - + - + - + - + - + - + - + - + @@ -166291,111 +166785,111 @@ - - - - - - - - - - - - + + + + + + + + + + + + - - + + - + - + - - + + - + - + - - + + - - + + - - + + - - - + + + - + - + - + - + - + - - + + - - + + - - + + - + - - - + + + - - - + + + @@ -166407,28 +166901,28 @@ - + - + - + - + - + - + - - + + @@ -166437,19 +166931,19 @@ - + - + - + @@ -166458,7 +166952,7 @@ - + @@ -166484,9 +166978,9 @@ - + - + @@ -166495,38 +166989,38 @@ - + - + - + - + - + - + - + - + - + - + - + @@ -166553,40 +167047,40 @@ - + - + - + - + - + - + - + - + - + - + - + - + @@ -166594,25 +167088,25 @@ - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + - + @@ -166622,24 +167116,24 @@ - - + + - + - + - + - + @@ -166648,7 +167142,7 @@ - + @@ -166658,11 +167152,11 @@ - - + + - + @@ -166673,7 +167167,7 @@ - + @@ -166682,61 +167176,61 @@ - + - - + + - + - + - + - - - + + + - + - - - + + + - + - - - + + + - + - + @@ -166747,77 +167241,77 @@ - - + + - + - + - + - + - + - - + + - + - - + + - + - + - - + + - - - - + + + + - - + + - + - + - + - + @@ -166832,7 +167326,7 @@ - + @@ -166849,7 +167343,7 @@ - + @@ -166860,47 +167354,47 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -166921,12 +167415,12 @@ - + - + - + @@ -166935,7 +167429,7 @@ - + @@ -166943,121 +167437,121 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - + - + - + - + - - + + - + - + - + @@ -167068,64 +167562,64 @@ - + - + - + - - - + + + - - + + - + - + - + - + - + - + - + @@ -167133,39 +167627,39 @@ - + - + - - + + - + - + - - + + - + - + @@ -167174,43 +167668,43 @@ - + - - + + - + - + - + - + - + - - + + - + @@ -167219,72 +167713,72 @@ - - + + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -167302,88 +167796,88 @@ - + - - + + - + - - + + - + - - + + - - + + - + - - - + + + - - + + - - - + + + - - - - + + + + - - + + - - + + - + - + - + - + - + - + @@ -167391,15 +167885,15 @@ - + - + - + - + @@ -167411,7 +167905,7 @@ - + @@ -167419,27 +167913,27 @@ - - - - + + + + - + - + - + - - + + @@ -167459,7 +167953,7 @@ - + @@ -167473,7 +167967,7 @@ - + @@ -167485,17 +167979,17 @@ - + - + - + @@ -167509,27 +168003,27 @@ - + - + - + - + - + - + - + - + @@ -167537,7 +168031,7 @@ - + @@ -167545,7 +168039,7 @@ - + @@ -167556,12 +168050,12 @@ - + - + @@ -167578,47 +168072,47 @@ - + - + - + - + - + - + - + - + - + - + @@ -167632,41 +168126,41 @@ - + - + - + - + - + - + - - + + - + - + @@ -167676,15 +168170,15 @@ - + - + - + @@ -167694,60 +168188,60 @@ - - + + - - + + - + - + - - + + - + - + - + - + - - - + + + - + - + @@ -167765,7 +168259,7 @@ - + @@ -167791,7 +168285,7 @@ - + @@ -167823,37 +168317,37 @@ - + - + - + - + - + - - - - - + + + + + - + - + - + @@ -167864,12 +168358,12 @@ - + - + @@ -167881,56 +168375,56 @@ - + - + - - - + + + - - - - + + + + - - - + + + - + - - + + - - - + + + - + - + - + @@ -167949,45 +168443,45 @@ - - + + - + - - + + - - + + - + - + - - + + - - - - + + + + @@ -167997,8 +168491,8 @@ - - + + @@ -168007,56 +168501,56 @@ - + - + - - + + - + - - + + - + - + - + - - + + - + - - - + + + - + - - + + - + - - + + - + @@ -168069,7 +168563,7 @@ - + @@ -168083,7 +168577,7 @@ - + @@ -168095,17 +168589,17 @@ - + - + - + @@ -168113,7 +168607,7 @@ - + @@ -168121,7 +168615,7 @@ - + @@ -168129,7 +168623,7 @@ - + @@ -168138,7 +168632,7 @@ - + @@ -168148,9 +168642,9 @@ - + - + @@ -168159,63 +168653,63 @@ - + - + - + - + - + - + - + - + - + - + - + - - - + + + - + - - + + - + - + - + @@ -168236,109 +168730,109 @@ - + - + - - + + - + - + - - + + - + - - + + - + - - - + + + - - - + + + - - - - + + + + - + - - + + - - + + - - + + - - + + - - + + - - - - + + + + - + - + @@ -168346,57 +168840,57 @@ - + - + - + - - - - + + + + - - - + + + - + - - + + - + - + - + - + - - + + - + - + @@ -168405,60 +168899,60 @@ - - + + - + - + - + - + - + - + - + - + - + - + - - - - - + + + + + - - + + @@ -168469,22 +168963,22 @@ - + - - + + - + - - + + - + @@ -168492,7 +168986,7 @@ - + @@ -168501,12 +168995,12 @@ - + - + @@ -168515,15 +169009,15 @@ - + - + - + - + @@ -168535,48 +169029,48 @@ - + - + - + - + - + - + - + - + - + - + - + @@ -168590,24 +169084,24 @@ - + - + - + - + - + - + @@ -168622,13 +169116,13 @@ - + - + - + @@ -168648,10 +169142,10 @@ - + - + @@ -168666,30 +169160,30 @@ - - + + - + - + - - - - + + + + - + @@ -168710,44 +169204,44 @@ - - - + + + - - - + + + - - - - + + + + - - - - - - - - + + + + + + + + - + @@ -168757,22 +169251,22 @@ - + - + - + - + - - + + @@ -168791,7 +169285,7 @@ - + @@ -168852,169 +169346,169 @@ - + - - - + + + - - - + + + - + - - + + - - - + + + - + - + - + - + - + - + - + - - + + - + - - - + + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - + @@ -169023,11 +169517,11 @@ - + - + @@ -169036,92 +169530,92 @@ - + - + - - - - + + + + - + - + - + - - + + - + - + - - + + - + - - + + - - + + - + - - - - + + + + - - - - + + + + - + - - + + - + - + - + - - - - + + + + @@ -169135,60 +169629,60 @@ - + - + - + - + - + - - + + - + - + - - + + - - + + - + - + @@ -169198,12 +169692,12 @@ - + - + @@ -169215,38 +169709,38 @@ - - + + - + - + - + - + - - + + - + @@ -169254,37 +169748,37 @@ - + - + - - - - - + + + + + - + - + - + - + @@ -169293,63 +169787,63 @@ - - - + + + - + - - - - + + + + - + - - - - + + + + - + - - + + - + - - + + - - + + - - - + + + @@ -169360,9 +169854,9 @@ - + - + @@ -169381,38 +169875,38 @@ - + - + - + - - - + + + - + - + - + - + - + - + @@ -169421,7 +169915,7 @@ - + @@ -169439,16 +169933,16 @@ - + - + - + - + @@ -169475,16 +169969,16 @@ - + - + - + @@ -169505,7 +169999,7 @@ - + @@ -169516,10 +170010,10 @@ - + - + @@ -169534,10 +170028,10 @@ - + - + @@ -169576,10 +170070,10 @@ - + - + @@ -169633,25 +170127,25 @@ - + - + - + - + - + - + - + @@ -169675,22 +170169,22 @@ - - + + - + - + - + - + @@ -169698,7 +170192,7 @@ - + @@ -169706,17 +170200,17 @@ - + - + - + - + - + @@ -169725,7 +170219,7 @@ - + @@ -169733,15 +170227,15 @@ - + - + - + @@ -169764,7 +170258,7 @@ - + @@ -169782,7 +170276,7 @@ - + @@ -169791,26 +170285,26 @@ - - - - - - + + + + + + - + - + - + @@ -169819,7 +170313,7 @@ - + @@ -169827,38 +170321,38 @@ - + - + - + - + - + - + - + @@ -169869,16 +170363,16 @@ - + - + - + @@ -169886,71 +170380,71 @@ - - + + - - + + - - + + - + - - - + + + - - + + - - + + - - + + - + - + - + - + @@ -169964,35 +170458,35 @@ - + - - + + - - + + - + - + - - + + - - - + + + @@ -170015,31 +170509,31 @@ - + - + - + - + - + - + - + - + @@ -170057,10 +170551,10 @@ - + - + @@ -170072,10 +170566,10 @@ - + - + @@ -170261,7 +170755,7 @@ - + @@ -170420,10 +170914,10 @@ - + - + @@ -170465,7 +170959,7 @@ - + @@ -170483,7 +170977,7 @@ - + @@ -170492,13 +170986,13 @@ - + - + @@ -170528,52 +171022,52 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - - + + - + - + @@ -170587,15 +171081,15 @@ - + - + - + @@ -170610,7 +171104,7 @@ - + @@ -170622,7 +171116,7 @@ - + @@ -170643,7 +171137,7 @@ - + @@ -170652,7 +171146,7 @@ - + @@ -170660,7 +171154,7 @@ - + @@ -170680,7 +171174,7 @@ - + @@ -170712,7 +171206,7 @@ - + @@ -170720,22 +171214,22 @@ - + - + - + - + - + - + @@ -170743,25 +171237,25 @@ - + - + - + - + @@ -170791,7 +171285,7 @@ - + @@ -170854,7 +171348,7 @@ - + @@ -170920,7 +171414,7 @@ - + @@ -170929,168 +171423,168 @@ - + - + - + - + - + - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - + + - - - + + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - + - + - + @@ -171138,7 +171632,7 @@ - + @@ -171153,7 +171647,7 @@ - + @@ -171161,7 +171655,7 @@ - + @@ -171173,15 +171667,15 @@ - + - + - + - + @@ -171193,22 +171687,22 @@ - + - + - + - + @@ -171241,7 +171735,7 @@ - + @@ -171415,10 +171909,10 @@ - + - + @@ -171430,13 +171924,13 @@ - + - + @@ -171447,124 +171941,124 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - - - - - - - - - - - + + + + + + + + + + + + + - - - - + + + + - - - - - + + + + + - - - + + + - - - + + + - - + + - - - + + + - - + + - - + + - - + + - - + + - - + + - + @@ -171575,15 +172069,15 @@ - + - + - + - + @@ -171592,120 +172086,120 @@ - - - - - + + + + + - + - + - - - + + + - - - + + + - + - + - + - - - + + + - + - - - + + + - + - + - + - + - - + + - - + + - - + + - + - - + + - - + + - + - - - + + + - - - + + + - + @@ -171716,8 +172210,8 @@ - - + + @@ -171741,9 +172235,9 @@ - + - + @@ -171753,7 +172247,7 @@ - + @@ -171762,7 +172256,7 @@ - + @@ -171771,11 +172265,11 @@ - + - + @@ -171792,7 +172286,7 @@ - + @@ -171804,16 +172298,16 @@ - + - + - + @@ -171825,10 +172319,10 @@ - + - + @@ -171837,12 +172331,12 @@ - + - + @@ -171871,7 +172365,7 @@ - + @@ -171879,7 +172373,7 @@ - + @@ -171888,13 +172382,13 @@ - + - + @@ -171960,31 +172454,31 @@ - + - + - + - + - + - + - + @@ -171994,24 +172488,24 @@ - + - + - + - + - + - + @@ -172029,9 +172523,9 @@ - + - + @@ -172049,13 +172543,13 @@ - + - + @@ -172067,55 +172561,55 @@ - - - - - - - - + + + + + + + + - + - + - + - + - + - + - + - + - + - + - + - + - + - - + + - + @@ -172124,17 +172618,17 @@ - + - + - + @@ -172145,51 +172639,51 @@ - - + + - + - + - + - + - + - + - + - - + + - - + + - - + + - - + + @@ -172197,104 +172691,104 @@ - + - - + + - + - + - + - - + + - + - + - + - + - + - + - + - + - + - + - + - - + + - + - + - + - + - + - + - + - + @@ -172321,13 +172815,13 @@ - + - + @@ -172363,13 +172857,13 @@ - + - + @@ -172393,10 +172887,10 @@ - + - + @@ -172423,7 +172917,7 @@ - + @@ -172432,13 +172926,13 @@ - + - + - + @@ -172450,25 +172944,25 @@ - + - + - + - + - + - + @@ -172507,18 +173001,18 @@ - + - + - + - + @@ -172526,9 +173020,9 @@ - + - + @@ -172552,7 +173046,7 @@ - + @@ -172560,13 +173054,13 @@ - + - + @@ -172586,12 +173080,12 @@ - + - + - + @@ -172606,7 +173100,7 @@ - + @@ -172617,7 +173111,7 @@ - + @@ -172640,19 +173134,19 @@ - + - + - + - + @@ -172666,9 +173160,9 @@ - + - + @@ -172683,7 +173177,7 @@ - + @@ -172692,7 +173186,7 @@ - + @@ -172710,10 +173204,10 @@ - + - + @@ -172724,7 +173218,7 @@ - + @@ -172735,12 +173229,12 @@ - + - + @@ -172749,7 +173243,7 @@ - + @@ -172761,7 +173255,7 @@ - + @@ -172773,16 +173267,16 @@ - + - + - + @@ -172791,13 +173285,13 @@ - + - + - + @@ -172818,38 +173312,38 @@ - + - + - + - + - + - + - + - + - + @@ -172857,15 +173351,15 @@ - + - + - + @@ -172873,18 +173367,18 @@ - + - + - + - + @@ -172905,10 +173399,10 @@ - + - + @@ -172920,13 +173414,13 @@ - + - + - + @@ -172935,7 +173429,7 @@ - + @@ -172944,13 +173438,13 @@ - + - + - + @@ -172986,7 +173480,7 @@ - + @@ -172998,7 +173492,7 @@ - + @@ -173016,18 +173510,18 @@ - + - + - + - + @@ -173044,16 +173538,16 @@ - + - + - + @@ -173061,7 +173555,7 @@ - + @@ -173087,33 +173581,33 @@ - + - + - + - + - + - + - + - + - + - + @@ -173128,13 +173622,13 @@ - + - + @@ -173143,12 +173637,12 @@ - + - + - + @@ -173181,7 +173675,7 @@ - + @@ -173190,13 +173684,13 @@ - + - + @@ -173210,15 +173704,15 @@ - + - + - + - + @@ -173227,10 +173721,10 @@ - + - + @@ -173241,15 +173735,15 @@ - + - + - + @@ -173264,7 +173758,7 @@ - + @@ -173275,12 +173769,12 @@ - + - + - + @@ -173292,15 +173786,15 @@ - + - + - + - + @@ -173309,22 +173803,22 @@ - + - + - + - + - + @@ -173338,7 +173832,7 @@ - + @@ -173352,15 +173846,15 @@ - + - + - + - + @@ -173369,7 +173863,7 @@ - + @@ -173377,74 +173871,74 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -173452,16 +173946,16 @@ - + - + - + - + @@ -173470,39 +173964,39 @@ - + - + - + - + - + - + @@ -173510,24 +174004,24 @@ - + - + - + - + - + - + - + @@ -173539,7 +174033,7 @@ - + @@ -173550,7 +174044,7 @@ - + @@ -173558,15 +174052,15 @@ - + - + - + - + @@ -173580,18 +174074,18 @@ - + - + - + - + @@ -173600,15 +174094,15 @@ - + - + - + @@ -173628,27 +174122,27 @@ - + - + - + - + - + - + @@ -173656,18 +174150,7 @@ - - - - - - - - - - - - + @@ -173675,18 +174158,18 @@ - + - + - + - + @@ -173697,10 +174180,10 @@ - + - + @@ -173729,333 +174212,333 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -174063,7 +174546,7 @@ - + @@ -174072,12 +174555,12 @@ - + - + - + @@ -174092,19 +174575,19 @@ - + - + - + - + @@ -174116,22 +174599,22 @@ - + - + - + - + - + @@ -174146,10 +174629,10 @@ - + - + @@ -174202,13 +174685,13 @@ - + - + @@ -174225,7 +174708,7 @@ - + @@ -174240,7 +174723,7 @@ - + @@ -174255,7 +174738,7 @@ - + @@ -174269,7 +174752,7 @@ - + @@ -174277,48 +174760,48 @@ - + - + - + - + - + - + - + - + - + - + - + - + @@ -174329,12 +174812,12 @@ - + - + @@ -174364,10 +174847,10 @@ - + - + @@ -174376,7 +174859,7 @@ - + @@ -174409,7 +174892,7 @@ - + @@ -174418,10 +174901,10 @@ - + - + @@ -174430,21 +174913,21 @@ - + - + - + - + - + @@ -174455,7 +174938,7 @@ - + @@ -174493,16 +174976,16 @@ - + - + - + - + @@ -174520,10 +175003,10 @@ - + - + @@ -174541,13 +175024,13 @@ - + - + - + @@ -174568,7 +175051,7 @@ - + @@ -174589,7 +175072,7 @@ - + @@ -174618,7 +175101,7 @@ - + @@ -174629,7 +175112,7 @@ - + @@ -174637,7 +175120,7 @@ - + @@ -174654,10 +175137,10 @@ - + - + @@ -174695,7 +175178,7 @@ - + @@ -174730,7 +175213,7 @@ - + @@ -174810,7 +175293,7 @@ - + @@ -174819,9 +175302,9 @@ - + - + @@ -174869,7 +175352,7 @@ - + @@ -174878,12 +175361,12 @@ - + - + - + @@ -174912,9 +175395,9 @@ - + - + @@ -174929,7 +175412,7 @@ - + @@ -174937,9 +175420,9 @@ - + - + @@ -174948,7 +175431,7 @@ - + @@ -174966,28 +175449,28 @@ - + - + - + - + - + - + - + @@ -174996,23 +175479,23 @@ - + - + - + - + - + @@ -175021,7 +175504,7 @@ - + @@ -175039,9 +175522,9 @@ - + - + @@ -175053,7 +175536,7 @@ - + @@ -175062,16 +175545,16 @@ - + - + - + - + @@ -175083,7 +175566,7 @@ - + @@ -175100,9 +175583,9 @@ - + - + @@ -175117,12 +175600,12 @@ - + - + - + @@ -175137,7 +175620,7 @@ - + @@ -175149,10 +175632,10 @@ - + - + @@ -175170,22 +175653,22 @@ - + - + - + - + - + @@ -175215,24 +175698,24 @@ - + - + - + - + - + - + @@ -175241,15 +175724,15 @@ - + - + - + - + @@ -175257,7 +175740,7 @@ - + @@ -175293,21 +175776,21 @@ - + - + - + - + - + @@ -175337,7 +175820,7 @@ - + @@ -175360,9 +175843,9 @@ - + - + @@ -175386,10 +175869,10 @@ - + - + @@ -175400,7 +175883,7 @@ - + @@ -175408,7 +175891,7 @@ - + @@ -175419,7 +175902,7 @@ - + @@ -175427,45 +175910,45 @@ - + - + - + - + - + - + - + - + - + - + - + @@ -175474,7 +175957,7 @@ - + @@ -175486,18 +175969,18 @@ - + - + - + - + @@ -175505,7 +175988,7 @@ - + @@ -175513,7 +175996,7 @@ - + @@ -175521,12 +176004,12 @@ - + - + - + @@ -175547,7 +176030,7 @@ - + @@ -175571,16 +176054,16 @@ - + - + - + @@ -175595,7 +176078,7 @@ - + @@ -175603,7 +176086,7 @@ - + @@ -175611,7 +176094,7 @@ - + @@ -175625,15 +176108,15 @@ - + - + - + - + @@ -175645,12 +176128,12 @@ - + - + @@ -175682,7 +176165,7 @@ - + @@ -175699,35 +176182,35 @@ - + - + - + - + - + - + - + - + - + @@ -175757,16 +176240,16 @@ - + - + - + @@ -175778,500 +176261,500 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - + - + - + - + - + - + - + - + - - + + - - + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - - + + + + + - - - + + + - - - + + + - + - - - + + + - - - + + + - + - - - + + + - + - - - + + + - + - - - + + + - - - + + + - - + + - - - + + + - + - - - + + + @@ -176282,377 +176765,377 @@ - - - + + + - - - - - + + + + + - - - - + + + + - - - - + + + + - - - + + + - - - + + + - + - - - + + + - + - - - + + + - + - - - - + + + + - - - - + + + + - - - - + + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - + - - - + + + - + - - - + + + - - - + + + - + - - + + - - + + - - + + - - - + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - + + + - - - + + + - - - + + + - - - + + + - + - + - - + + - - - + + + - - - + + + - - + + - - - + + + - - - - + + + + - - - + + + - - - + + + - - + + - - - + + + - + - + - + - + @@ -176661,7 +177144,7 @@ - + @@ -176688,31 +177171,31 @@ - + - + - + - + - + - + - + - + @@ -176721,52 +177204,60 @@ - + - + - + - + - - - - - - - - - + + + + + + + + + - - + + - + - + - + - + - + - + - + + + + + + + + + @@ -176777,13 +177268,13 @@ - + - + - + @@ -176791,10 +177282,10 @@ - + - + @@ -176818,7 +177309,7 @@ - + @@ -176826,44 +177317,44 @@ - + - + - - - - - - - - - - - + + + + + + + + + + + - + - + - - + + - + @@ -176871,35 +177362,35 @@ - + - + - + - + - + - + - + - + - + @@ -176907,22 +177398,22 @@ - + - + - + - + - + @@ -176939,128 +177430,128 @@ - + - + - - - + + + - - + + - - + + - + - + - + - + - + - + - - + + - - + + - - - - + + + + - - + + - + - + - + - + - - + + - + - - + + - + - + - + - + - + @@ -177072,237 +177563,237 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -177313,29 +177804,29 @@ - + - + - + - + - + - + - + @@ -177349,7 +177840,7 @@ - + @@ -177363,10 +177854,10 @@ - + - + @@ -177377,10 +177868,10 @@ - + - + @@ -177388,19 +177879,19 @@ - + - + - + - + - + @@ -177408,51 +177899,51 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -177460,7 +177951,7 @@ - + @@ -177468,7 +177959,7 @@ - + @@ -177476,13 +177967,13 @@ - + - + - + @@ -177490,18 +177981,18 @@ - + - + - + - + @@ -177515,10 +178006,10 @@ - + - + @@ -177526,7 +178017,7 @@ - + @@ -177537,47 +178028,47 @@ - + - + - + - + - + - - - - + + + + - + - - + + - - + + - + - + @@ -177588,38 +178079,38 @@ - + - + - - + + - - - + + + - - + + - - - + + + @@ -177627,78 +178118,51 @@ - + - - - + + + - + - - + + - - + + - - + + - - - + + + - - - + + + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - + @@ -177710,7 +178174,18 @@ - + + + + + + + + + + + + @@ -177857,7 +178332,7 @@ - + @@ -178145,9 +178620,9 @@ - + - + @@ -178168,38 +178643,38 @@ - + - + - + - + - + - + - + @@ -178243,29 +178718,29 @@ - + - + - + - + - + - + - + @@ -178282,23 +178757,23 @@ - - - - - - + + + + + + - - - + + + - - - - + + + + @@ -178311,23 +178786,23 @@ - - + + - + - + - - - + + + @@ -178336,17 +178811,17 @@ - + - + - + @@ -178355,62 +178830,62 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -178419,20 +178894,20 @@ - + - - + + - + @@ -178441,26 +178916,26 @@ - + - + - + - + @@ -178468,25 +178943,25 @@ - - + + - - + + - + - + - + @@ -178496,7 +178971,7 @@ - + @@ -178504,51 +178979,51 @@ - - + + - + - + - - + + - + - - + + - - + + - + - + @@ -178557,11 +179032,11 @@ - - + + - - + + @@ -178570,43 +179045,43 @@ - + - + - - + + - - + + - + - + - + - + @@ -178615,30 +179090,30 @@ - - + + - - - + + + - + - + - + @@ -178653,7 +179128,7 @@ - + @@ -178661,7 +179136,7 @@ - + @@ -178676,13 +179151,13 @@ - + - + - + @@ -178705,19 +179180,19 @@ - + - + - + - + @@ -178735,31 +179210,31 @@ - + - - + + - - + + - - + + - + - + @@ -178769,7 +179244,7 @@ - + @@ -178777,54 +179252,54 @@ - - - + + + - - - + + + - + - - - + + + - - - + + + - - + + - - - + + + - - + + - + @@ -178832,10 +179307,10 @@ - + - + @@ -178844,32 +179319,32 @@ - + - + - + - + - + - + - + @@ -178883,7 +179358,7 @@ - + @@ -178892,7 +179367,7 @@ - + @@ -178913,10 +179388,10 @@ - + - + @@ -178973,7 +179448,7 @@ - + @@ -178984,29 +179459,29 @@ - + - - - + + + - - + + - + - + @@ -179014,118 +179489,118 @@ - + - + - + - + - + - + - + - + - + - + - + - - - + + + - - - + + + - - - + + + - - - + + + - + - + - + - + - + - + - - + + - + - + - + - + - + @@ -179191,10 +179666,10 @@ - + - + @@ -179206,7 +179681,7 @@ - + @@ -179221,7 +179696,7 @@ - + @@ -179244,16 +179719,16 @@ - + - + - + @@ -179261,15 +179736,7 @@ - - - - - - - - - + @@ -179277,7 +179744,15 @@ - + + + + + + + + + @@ -179285,7 +179760,7 @@ - + @@ -179296,15 +179771,15 @@ - + - + - + @@ -179333,328 +179808,328 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -179672,13 +180147,13 @@ - + - + - + @@ -179702,34 +180177,34 @@ - + - + - + - + - + - + - + - + @@ -179746,20 +180221,20 @@ - + - + - + - + - + - + @@ -179768,18 +180243,18 @@ - + - + - + - + - + @@ -179794,13 +180269,13 @@ - + - + - + @@ -179809,13 +180284,13 @@ - + - + - + @@ -179895,7 +180370,7 @@ - + @@ -179916,10 +180391,10 @@ - + - + @@ -179937,7 +180412,7 @@ - + @@ -179949,10 +180424,10 @@ - + - + @@ -179967,13 +180442,13 @@ - + - + @@ -179988,21 +180463,21 @@ - + - + - + - + - + - + @@ -180010,10 +180485,10 @@ - + - + @@ -180027,7 +180502,7 @@ - + @@ -180041,23 +180516,23 @@ - + - + - + - + - + - + @@ -180069,15 +180544,15 @@ - + - + - + @@ -180103,23 +180578,23 @@ - + - + - + - + - + - + - + @@ -180128,7 +180603,7 @@ - + @@ -180142,32 +180617,32 @@ - + - + - + - + - + - + - + - + - + - + @@ -180175,40 +180650,40 @@ - + - + - + - + - + - + - + - + - + - + - + - + @@ -180216,7 +180691,7 @@ - + @@ -180239,10 +180714,10 @@ - + - + @@ -180253,12 +180728,12 @@ - + - + - + @@ -180276,7 +180751,7 @@ - + @@ -180286,7 +180761,7 @@ - + @@ -180297,7 +180772,7 @@ - + @@ -180306,74 +180781,74 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -180382,38 +180857,38 @@ - + - + - + - + - + - + - + - + - + - + @@ -180437,574 +180912,574 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - + - + - + - + - - + + - - - + + + - - - - - - + + + + + + - - - + + + - - + + + + + + + + + + + + + - - - - + + + + - - - + + + + - - - - - - - - - - - - - - - - + + + + - - - - + + + + - - - - - + + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - + - - - - + + + + - - - - + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + - - - + + + + + + + + + + + + + + + + + + + + + - - - + + + + + + + + + + + + + + + + - + - - + + + + + + + + - - + + - - + + - - + + - - + + - - - + + + - - - + + + - - - + + + - - + + - - - + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - - - - + + + + - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - + + - - - + + + - - + + - - + + @@ -181012,33 +181487,33 @@ - + - + - + - + - + - + - + - + @@ -181052,54 +181527,54 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -181117,7 +181592,7 @@ - + @@ -181128,15 +181603,15 @@ - - + + - + - + @@ -181160,86 +181635,86 @@ - + - + - + - + - - + + - + - - - + + + - - - + + + - - - + + + - - - - + + + + - - - + + + - + - + - + - + - - + + - + - + - + - + @@ -181248,63 +181723,63 @@ - - + + - + - + - + - + - - + + - + - + - + - + - + @@ -181312,19 +181787,19 @@ - + - + - + @@ -181332,14 +181807,14 @@ - + - + @@ -181347,54 +181822,54 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -181412,126 +181887,142 @@ - - - - - - - - - - - - - + + + + + + + + + + + + + - + - + - - + + - + - - - + + + - + - + - + - + - + - + - - - + + + - + - - - + + + - + - - + + - + - + - + - + - - + + - + - + + + + + + + + + + + + + + + + + - + - + - + - + - + - + @@ -181539,47 +182030,47 @@ - + - + - + - - + + - - + + - + - + - + - + - + @@ -181587,17 +182078,17 @@ - + - + - + @@ -181605,118 +182096,118 @@ - + - + - + - + - + - + - + - + - + - + - - - - - - + + + + + + - - + + - + - - + + - + - + - - + + - - + + - + - + - + - + - - - + + + - - - - + + + + - - + + - - + + - - + + - + @@ -181724,98 +182215,98 @@ - - + + - - + + - - + + - - + + - - + + - + - + - + - - - + + + - - - + + + - + - + - + - + - + - + - - - + + + - - - - - + + + + + - + - + @@ -181826,13 +182317,13 @@ - + - + - + @@ -181843,220 +182334,209 @@ - - - - - + + + + + - + - + - - + + - - - + + + - - + + - - + + - - + + - - + + - - + + - + - + - + - + - + - + - + - + - + - - + + - - + + - - + + - + - - + + - + - + - + - + - + - + - - + + - + - + - + - + - + - + - - + + - - - + + + - - - - - - - - - - - - - + + - + - + - + - - + + - + - + - + @@ -182064,22 +182544,22 @@ - - + + - - + + - - - + + + - + @@ -182088,27 +182568,27 @@ - + - + - + - + - + - + - + - + @@ -182132,23 +182612,23 @@ - + - + - + - + - + - + @@ -182166,7 +182646,7 @@ - + @@ -182205,30 +182685,30 @@ - + - + - + - + - + - + @@ -182239,21 +182719,21 @@ - + - + - + - + - + - + @@ -182261,7 +182741,7 @@ - + @@ -182272,15 +182752,15 @@ - + - + - + @@ -182288,7 +182768,7 @@ - + @@ -182302,88 +182782,88 @@ - - - - - - - - - - - - - + + + + + + + + + + + + + - - + + - + - + - - + + - + - + - + - + - - + + - + - - + + - + - - + + - - - + + + - - + + - - + + - - + + - + @@ -182396,95 +182876,95 @@ - + - + - + - + - - - - - + + + + + - + - + - + - + - + - + - + - + - + - + - + - - + + - + - + - + - + - - + + @@ -182521,14 +183001,14 @@ - + - + @@ -182539,7 +183019,7 @@ - + @@ -182547,7 +183027,7 @@ - + @@ -182559,30 +183039,30 @@ - + - + - - + + - + - + @@ -182594,20 +183074,20 @@ - - + + - + - + - + @@ -182619,13 +183099,13 @@ - - - - - + + + + + - + @@ -182633,7 +183113,7 @@ - + @@ -182641,7 +183121,7 @@ - + @@ -182649,54 +183129,54 @@ - + - + - - + + - + - + - + - + - + - + - + @@ -182704,70 +183184,70 @@ - + - + - - - + + + - - + + - - + + - - + + - - + + - + - + - + - - - + + + - - + + - + - - + + - - + + @@ -182864,7 +183344,7 @@ - + @@ -182878,8 +183358,8 @@ - - + + @@ -182890,7 +183370,7 @@ - + @@ -182902,26 +183382,26 @@ - - + + - + - + - + - + @@ -182932,18 +183412,18 @@ - + - + - + - + - + @@ -182960,19 +183440,19 @@ - + - + - + - + - + @@ -182980,10 +183460,10 @@ - - - - + + + + @@ -182993,65 +183473,65 @@ - + - + - + - + - + - + - + - + - - + + - + - + @@ -183059,32 +183539,32 @@ - - + + - - + + - + - + - + @@ -183093,83 +183573,83 @@ - + - + - + - - - - - + + + + + - - + + - + - + - - + + - + - + - + - + - + - + - + - + - + @@ -183177,99 +183657,99 @@ - + - + - + - - + + - - + + - + - - + + - - - + + + - - - - + + + + - - - - - + + + + + - - + + - - - - + + + + - + - - + + - - - + + + - - - - + + + + - - - - - + + + + + @@ -183366,7 +183846,7 @@ - + @@ -183376,32 +183856,32 @@ - + - + - - + + - + - - + + @@ -183446,45 +183926,45 @@ - - + + - - + + - - + + - - + + - + - + - + - + @@ -183492,14 +183972,14 @@ - + - + @@ -183519,7 +183999,7 @@ - + @@ -183532,14 +184012,14 @@ - + - + @@ -183552,7 +184032,7 @@ - + @@ -183563,9 +184043,9 @@ - + - + @@ -183573,9 +184053,9 @@ - + - + @@ -183593,17 +184073,17 @@ - + - + - + - - + + @@ -183611,105 +184091,105 @@ - - - - + + + + - + - + - + - + - + - - + + - - + + - - + + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -183717,1213 +184197,533 @@ - + - - - - - - - - - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + - - + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + - - - - + - - - - + - - - - + - - - - + - - - - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - + - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -184934,10 +184734,10 @@ - + - + @@ -184961,7 +184761,7 @@ - + @@ -184982,7 +184782,7 @@ - + @@ -185009,7 +184809,7 @@ - + @@ -185063,19 +184863,19 @@ - + - + - + @@ -185084,10 +184884,10 @@ - + - + @@ -185108,22 +184908,22 @@ - + - + - + - + @@ -185138,7 +184938,7 @@ - + @@ -185156,183 +184956,72 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + @@ -185367,9 +185056,9 @@ - + - + @@ -185414,85 +185103,88 @@ - + - + - + - + - + - + - + - + - + - + - + - - + + + + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -185521,7 +185213,7 @@ - + @@ -185574,7 +185266,7 @@ - + @@ -185702,7 +185394,7 @@ - + @@ -185786,7 +185478,7 @@ - + @@ -185801,7 +185493,7 @@ - + @@ -185821,7 +185513,7 @@ - + @@ -185832,7 +185524,7 @@ - + @@ -185849,7 +185541,7 @@ - + @@ -185875,7 +185567,7 @@ - + @@ -185889,7 +185581,7 @@ - + @@ -185897,7 +185589,7 @@ - + @@ -185906,41 +185598,13 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - + @@ -185951,1083 +185615,46 @@ - + - + - + + + + + + + + + - + - + - + - + - + - + - - - - - - - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + @@ -187036,56 +185663,87 @@ - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - - + + - + - + - - + + - + @@ -187096,94 +185754,172 @@ - - + + + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + + + + + + + + + + + + + + + + - - + + - - + + - - + + - - + + - - + + - - + + - - - + + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + @@ -187233,25 +185969,25 @@ - - + + - + - + - + - + @@ -187259,690 +185995,998 @@ - - + + - + - + - + - + - + - - + + - + - + - - - + + + - - - + + + - - - + + + - - + + - - + + - - + + - - - + + + - - - + + + - - - + + + - - + + - - + + - - + + - - - + + + - - + + - - - + + + - - - - - + + + + + - - - - + + + + - - - - - + + + + + - - + + - - + + - - + + - - - + + + - - + + - + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - + - - - - + - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - + - + - - - - - - - - - - - - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - - - - - - - - - - - - - - - - - - - + - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - - + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -188019,16 +187063,16 @@ - + - + - + @@ -188040,27 +187084,27 @@ - + - + - + - + - + - + @@ -188072,39 +187116,39 @@ - + - + - + - + - + - + - + - + - + @@ -188112,35 +187156,35 @@ - + - + - - - - - + + + + + - - + + - - - + + + - - - + + + @@ -188148,21 +187192,21 @@ - - + + - + - + - + - + @@ -188180,27 +187224,27 @@ - + - + - + - + - + - + - + @@ -188218,74 +187262,74 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -188300,13 +187344,13 @@ - + - + @@ -188327,13 +187371,13 @@ - + - + @@ -188342,13 +187386,13 @@ - + - + @@ -188371,10 +187415,10 @@ - + - + @@ -188394,12 +187438,12 @@ - + - + - + @@ -188411,10 +187455,10 @@ - + - + @@ -188423,7 +187467,7 @@ - + @@ -188444,30 +187488,30 @@ - + - + - + - + - + - + - + - + - + @@ -188478,46 +187522,46 @@ - + - + - + - + - + - + - + - + - + - + - + @@ -188526,392 +187570,392 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - + + - + - - + + - - + + - + - - - + + + - - - + + + - - + + - - + + - + - - + + - - + + - - + + - - + + - - + + - - + + - - - - - + + + + + - - + + - - + + - - - + + + - - - + + + - - + + - + - - - + + + - - + + - - - + + + - - + + - - - + + + - - + + - + - - - + + + - - - + + + - - + + - + - + - + - + - + - + - + - + - - - - - - - - - - - - - - + + + + + + + + + + + + + + - - - - + + + + - + - + - - + + - + - + - + - + - - + + - - + + - - - - - + + + + + - - - - + + + + - - - - + + + + - - - - - - - - - - - - + + + + + + + + + + + + - - - - + + + + - - - - + + + + - - - - - - - - + + + + + + + + - - - + + + - - - + + + - - + + - - - - - + + + + + - - + + - - - - + + + + - - - + + + - - + + - - - + + + - - + + - + @@ -188919,43 +187963,43 @@ - + - + - + - + - - - + + + - + - + - - + + - - + + @@ -188969,9 +188013,9 @@ - - - + + + @@ -188980,28 +188024,28 @@ - + - + - + - - + + - + - - + + - + @@ -189009,23 +188053,23 @@ - + - + - + - + @@ -189033,31 +188077,31 @@ - + - + - - + + - + - - + + - + @@ -189067,17 +188111,17 @@ - + - + - + - + @@ -189088,6 +188132,573 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -189104,100 +188715,100 @@ - + - + - + - + - + - + - + - + - + - + - + - - - - - + + + + + - + - + - + - + - + - + - + - + - + - + - + - + @@ -189235,17 +188846,17 @@ - - - + + + - + - - + + @@ -189253,7 +188864,7 @@ - + @@ -189261,7 +188872,7 @@ - + @@ -189269,7 +188880,7 @@ - + @@ -189278,241 +188889,195 @@ - + - + - + - + - + - + - + - + - + - + - + - + - - + + - - + + - + - + - - + + - + - + - - + + - + - + - + - + - + - + - + - + - + - - + + - - + + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + - - - + - - - - - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - + @@ -189638,117 +189203,17 @@ - + - - - - - - - - + + + + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + @@ -189843,6 +189308,59 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -189915,13 +189433,13 @@ - - + + - + - + @@ -189942,7 +189460,7 @@ - + @@ -189951,10 +189469,10 @@ - + - + @@ -189969,86 +189487,1049 @@ - - + + - + - - + + - - + + - - + + - - + + - + - - + + - - + + - - + + - - + + - + - + - + - + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -190069,4 +190550,110 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/arch/arm/boot/dts/motorola-cpcap-mapphone.dtsi b/arch/arm/boot/dts/motorola-cpcap-mapphone.dtsi index d1eae47b83f6..82f7ae030600 100644 --- a/arch/arm/boot/dts/motorola-cpcap-mapphone.dtsi +++ b/arch/arm/boot/dts/motorola-cpcap-mapphone.dtsi @@ -160,12 +160,12 @@ regulator-enable-ramp-delay = <1000>; }; - /* Used by DSS */ + /* Used by DSS and is the "zerov_regulator" trigger for SoC off mode */ vcsi: VCSI { regulator-min-microvolt = <1800000>; regulator-max-microvolt = <1800000>; regulator-enable-ramp-delay = <1000>; - regulator-boot-on; + regulator-always-on; }; vdac: VDAC { diff --git a/arch/arm/boot/dts/s3c6410-mini6410.dts b/arch/arm/boot/dts/s3c6410-mini6410.dts index 0e159c884f97..1aeac33b0d34 100644 --- a/arch/arm/boot/dts/s3c6410-mini6410.dts +++ b/arch/arm/boot/dts/s3c6410-mini6410.dts @@ -165,6 +165,10 @@ }; }; +&clocks { + clocks = <&fin_pll>; +}; + &sdhci0 { pinctrl-names = "default"; pinctrl-0 = <&sd0_clk>, <&sd0_cmd>, <&sd0_cd>, <&sd0_bus4>; diff --git a/arch/arm/boot/dts/s3c6410-smdk6410.dts b/arch/arm/boot/dts/s3c6410-smdk6410.dts index a9a5689dc462..3bf6c450a26e 100644 --- a/arch/arm/boot/dts/s3c6410-smdk6410.dts +++ b/arch/arm/boot/dts/s3c6410-smdk6410.dts @@ -69,6 +69,10 @@ }; }; +&clocks { + clocks = <&fin_pll>; +}; + &sdhci0 { pinctrl-names = "default"; pinctrl-0 = <&sd0_clk>, <&sd0_cmd>, <&sd0_cd>, <&sd0_bus4>; diff --git a/arch/arm/include/asm/system_misc.h b/arch/arm/include/asm/system_misc.h index 66f6a3ae68d2..98b37340376b 100644 --- a/arch/arm/include/asm/system_misc.h +++ b/arch/arm/include/asm/system_misc.h @@ -13,7 +13,6 @@ extern void cpu_init(void); void soft_restart(unsigned long); -extern void (*arm_pm_restart)(enum reboot_mode reboot_mode, const char *cmd); extern void (*arm_pm_idle)(void); #ifdef CONFIG_HARDEN_BRANCH_PREDICTOR diff --git a/arch/arm/kernel/reboot.c b/arch/arm/kernel/reboot.c index bb18ed0539f4..1076b26aa699 100644 --- a/arch/arm/kernel/reboot.c +++ b/arch/arm/kernel/reboot.c @@ -18,7 +18,6 @@ typedef void (*phys_reset_t)(unsigned long, bool); /* * Function pointers to optional machine specific functions */ -void (*arm_pm_restart)(enum reboot_mode reboot_mode, const char *cmd); void (*pm_power_off)(void); EXPORT_SYMBOL(pm_power_off); @@ -138,10 +137,7 @@ void machine_restart(char *cmd) local_irq_disable(); smp_send_stop(); - if (arm_pm_restart) - arm_pm_restart(reboot_mode, cmd); - else - do_kernel_restart(cmd); + do_kernel_restart(cmd); /* Give a grace period for failure to restart of 1s */ mdelay(1000); diff --git a/arch/arm/kernel/setup.c b/arch/arm/kernel/setup.c index d0a464e317ea..d403648195de 100644 --- a/arch/arm/kernel/setup.c +++ b/arch/arm/kernel/setup.c @@ -1073,6 +1073,20 @@ void __init hyp_mode_check(void) #endif } +static void (*__arm_pm_restart)(enum reboot_mode reboot_mode, const char *cmd); + +static int arm_restart(struct notifier_block *nb, unsigned long action, + void *data) +{ + __arm_pm_restart(action, data); + return NOTIFY_DONE; +} + +static struct notifier_block arm_restart_nb = { + .notifier_call = arm_restart, + .priority = 128, +}; + void __init setup_arch(char **cmdline_p) { const struct machine_desc *mdesc; @@ -1132,8 +1146,10 @@ void __init setup_arch(char **cmdline_p) paging_init(mdesc); request_standard_resources(mdesc); - if (mdesc->restart) - arm_pm_restart = mdesc->restart; + if (mdesc->restart) { + __arm_pm_restart = mdesc->restart; + register_restart_handler(&arm_restart_nb); + } unflatten_device_tree(); diff --git a/arch/arm/mach-prima2/rstc.c b/arch/arm/mach-prima2/rstc.c index 9d56606ac87f..825dd5fcc37b 100644 --- a/arch/arm/mach-prima2/rstc.c +++ b/arch/arm/mach-prima2/rstc.c @@ -64,11 +64,18 @@ static struct reset_controller_dev sirfsoc_reset_controller = { #define SIRFSOC_SYS_RST_BIT BIT(31) -static void sirfsoc_restart(enum reboot_mode mode, const char *cmd) +static int sirfsoc_restart(struct notifier_block *nb, unsigned long action, + void *data) { writel(SIRFSOC_SYS_RST_BIT, sirfsoc_rstc_base); + return NOTIFY_DONE; } +static struct notifier_block sirfsoc_restart_nb = { + .notifier_call = sirfsoc_restart, + .priority = 192, +}; + static int sirfsoc_rstc_probe(struct platform_device *pdev) { struct device_node *np = pdev->dev.of_node; @@ -79,7 +86,7 @@ static int sirfsoc_rstc_probe(struct platform_device *pdev) } sirfsoc_reset_controller.of_node = np; - arm_pm_restart = sirfsoc_restart; + register_restart_handler(&sirfsoc_restart_nb); if (IS_ENABLED(CONFIG_RESET_CONTROLLER)) reset_controller_register(&sirfsoc_reset_controller); diff --git a/arch/arm/mach-tegra/reset-handler.S b/arch/arm/mach-tegra/reset-handler.S index 67b763fea005..e3f34815c9da 100644 --- a/arch/arm/mach-tegra/reset-handler.S +++ b/arch/arm/mach-tegra/reset-handler.S @@ -44,16 +44,16 @@ ENTRY(tegra_resume) cmp r6, #TEGRA20 beq 1f @ Yes /* Clear the flow controller flags for this CPU. */ - cpu_to_csr_reg r1, r0 + cpu_to_csr_reg r3, r0 mov32 r2, TEGRA_FLOW_CTRL_BASE - ldr r1, [r2, r1] + ldr r1, [r2, r3] /* Clear event & intr flag */ orr r1, r1, \ #FLOW_CTRL_CSR_INTR_FLAG | FLOW_CTRL_CSR_EVENT_FLAG movw r0, #0x3FFD @ enable, cluster_switch, immed, bitmaps @ & ext flags for CPU power mgnt bic r1, r1, r0 - str r1, [r2] + str r1, [r2, r3] 1: mov32 r9, 0xc09 diff --git a/arch/arm/xen/enlighten.c b/arch/arm/xen/enlighten.c index dd6804a64f1a..7728a86019e0 100644 --- a/arch/arm/xen/enlighten.c +++ b/arch/arm/xen/enlighten.c @@ -29,6 +29,7 @@ #include #include #include +#include #include #include #include @@ -180,11 +181,18 @@ void xen_reboot(int reason) BUG_ON(rc); } -static void xen_restart(enum reboot_mode reboot_mode, const char *cmd) +static int xen_restart(struct notifier_block *nb, unsigned long action, + void *data) { xen_reboot(SHUTDOWN_reboot); + + return NOTIFY_DONE; } +static struct notifier_block xen_restart_nb = { + .notifier_call = xen_restart, + .priority = 192, +}; static void xen_power_off(void) { @@ -405,7 +413,7 @@ static int __init xen_pm_init(void) return -ENODEV; pm_power_off = xen_power_off; - arm_pm_restart = xen_restart; + register_restart_handler(&xen_restart_nb); if (!xen_initial_domain()) { struct timespec64 ts; xen_read_wallclock(&ts); diff --git a/arch/arm64/boot/dts/hisilicon/hi3660-drm.dtsi b/arch/arm64/boot/dts/hisilicon/hi3660-drm.dtsi new file mode 100644 index 000000000000..c7f497c8e1c3 --- /dev/null +++ b/arch/arm64/boot/dts/hisilicon/hi3660-drm.dtsi @@ -0,0 +1,114 @@ +/{ + dpe: dpe@E8600000 { + compatible = "hisilicon,hi3660-dpe"; + status = "ok"; + + reg = <0x0 0xE8600000 0x0 0x80000>, + <0x0 0xFFF35000 0 0x1000>, + <0x0 0xFFF0A000 0 0x1000>, + <0x0 0xFFF31000 0 0x1000>, + <0x0 0xE86C0000 0 0x10000>; + interrupts = <0 245 4>; + + clocks = <&crg_ctrl HI3660_ACLK_GATE_DSS>, + <&crg_ctrl HI3660_PCLK_GATE_DSS>, + <&crg_ctrl HI3660_CLK_GATE_EDC0>, + <&crg_ctrl HI3660_CLK_GATE_LDI0>, + <&crg_ctrl HI3660_CLK_GATE_LDI1>, + <&sctrl HI3660_CLK_GATE_DSS_AXI_MM>, + <&sctrl HI3660_PCLK_GATE_MMBUF>; + clock-names = "aclk_dss", + "pclk_dss", + "clk_edc0", + "clk_ldi0", + "clk_ldi1", + "clk_dss_axi_mm", + "pclk_mmbuf"; + + dma-coherent; + + port { + dpe_out: endpoint { + remote-endpoint = <&dsi_in>; + }; + }; + + iommu_info { + start-addr = <0x8000>; + size = <0xbfff8000>; + }; + }; + + dsi: dsi@E8601000 { + compatible = "hisilicon,hi3660-dsi"; + status = "ok"; + + reg = <0 0xE8601000 0 0x7F000>, + <0 0xFFF35000 0 0x1000>; + + clocks = <&crg_ctrl HI3660_CLK_GATE_TXDPHY0_REF>, + <&crg_ctrl HI3660_CLK_GATE_TXDPHY1_REF>, + <&crg_ctrl HI3660_CLK_GATE_TXDPHY0_CFG>, + <&crg_ctrl HI3660_CLK_GATE_TXDPHY1_CFG>, + <&crg_ctrl HI3660_PCLK_GATE_DSI0>, + <&crg_ctrl HI3660_PCLK_GATE_DSI1>; + clock-names = "clk_txdphy0_ref", + "clk_txdphy1_ref", + "clk_txdphy0_cfg", + "clk_txdphy1_cfg", + "pclk_dsi0", + "pclk_dsi1"; + + #address-cells = <1>; + #size-cells = <0>; + mux-gpio = <&gpio2 4 0>; + + ports { + #address-cells = <1>; + #size-cells = <0>; + + port@0 { + reg = <0>; + dsi_in: endpoint { + remote-endpoint = <&dpe_out>; + }; + }; + + port@1 { + #address-cells = <1>; + #size-cells = <0>; + reg = <1>; + + dsi_out0: endpoint@0 { + reg = <0>; + remote-endpoint = <&adv7533_in>; + }; + + dsi_out1: endpoint@1 { + reg = <1>; + remote-endpoint = <&panel0_in>; + }; + }; + }; + + panel@1 { + compatible = "hisilicon,mipi-hikey"; + #address-cells = <2>; + #size-cells = <2>; + status = "ok"; + reg = <1>; + panel-width-mm = <94>; + panel-height-mm = <151>; + vdd-supply = <&ldo3>; + pwr-en-gpio = <&gpio27 0 0>; + bl-en-gpio = <&gpio27 2 0>; + pwm-gpio = <&gpio22 6 0>; + + port { + panel0_in: endpoint { + remote-endpoint = <&dsi_out1>; + }; + }; + }; + }; +}; diff --git a/arch/arm64/boot/dts/hisilicon/hi3660-gpu.dtsi b/arch/arm64/boot/dts/hisilicon/hi3660-gpu.dtsi new file mode 100644 index 000000000000..0cce0ce3adbc --- /dev/null +++ b/arch/arm64/boot/dts/hisilicon/hi3660-gpu.dtsi @@ -0,0 +1,19 @@ +/{ + gpu: mali@E82C0000 { + compatible = "arm,malit6xx", "arm,mali-midgard"; + #cooling-cells = <3>; /* min followed by max */ + gpu_outstanding = <0x0>; + reg = <0x0 0xE82C0000 0x0 0x4000>; + interrupts = <0 258 4 0 259 4 0 260 4>; + interrupt-names = "JOB", "MMU", "GPU"; + operating-points = < + /* */ + 178000 650000 + 400000 700000 + 533000 800000 + 807000 900000 + 960000 1000000 + 1037000 1100000 + >; + }; +}; diff --git a/arch/arm64/boot/dts/hisilicon/hi3660-hikey960.dts b/arch/arm64/boot/dts/hisilicon/hi3660-hikey960.dts index e035cf195b19..2d2288c7bee1 100644 --- a/arch/arm64/boot/dts/hisilicon/hi3660-hikey960.dts +++ b/arch/arm64/boot/dts/hisilicon/hi3660-hikey960.dts @@ -10,9 +10,13 @@ #include "hi3660.dtsi" #include "hikey960-pinctrl.dtsi" +#include "hi3660-drm.dtsi" +#include "hi3660-gpu.dtsi" + #include #include #include +#include / { model = "HiKey960"; @@ -45,6 +49,23 @@ #size-cells = <2>; ranges; + fastboot_cma: fastboot-cma-mem { + reg = <0x0 0x16c00000 0x0 0x4000000>; + compatible = "shared-dma-pool"; + hisi,cma-sec; + reusable; + }; + + uefi-reboot-mode { + reg = <0x0 0x32100000 0x0 0x00001000>; + no-map; + }; + + bl31 { + reg = <0x0 0x20200000 0x0 0x200000>; + no-map; + }; + ramoops@32000000 { compatible = "ramoops"; reg = <0x0 0x32000000 0x0 0x00100000>; @@ -52,6 +73,14 @@ console-size = <0x00020000>; ftrace-size = <0x00020000>; }; + + /* global autoconfigured region for contiguous allocations */ + linux,cma { + compatible = "shared-dma-pool"; + reg = <0x0 0x20C00000 0x0 0x4000000>; + reusable; + linux,cma-default; + }; }; reboot-mode-syscon@32100000 { @@ -196,6 +225,59 @@ method = "smc"; }; }; + + hisi_hikey_usb: hisi_hikey_usb { + compatible = "hisilicon,gpio_hubv1"; + typec-vbus-gpios = <&gpio25 2 GPIO_ACTIVE_HIGH>; + otg-switch-gpios = <&gpio25 6 GPIO_ACTIVE_HIGH>; + hub-vdd33-en-gpios = <&gpio5 6 GPIO_ACTIVE_HIGH>; + pinctrl-names = "default"; + pinctrl-0 = <&usbhub5734_pmx_func>; + usb-role-switch; + + port { + #address-cells = <1>; + #size-cells = <0>; + + hikey_usb_ep0: endpoint@0 { + reg = <0>; + remote-endpoint = <&dwc3_role_switch>; + }; + hikey_usb_ep1: endpoint@1 { + reg = <1>; + remote-endpoint = <&rt1711h_ep>; + }; + }; + }; + + i2s2: hi3660_i2s { + compatible = "hisilicon,hi3660-i2s-1.0"; + reg = <0x0 0xe804f800 0x0 0x400>, + <0x0 0xe804e000 0x0 0x400>; + pinctrl-names = "default"; + pinctrl-0 = <&i2s2_pmx_func &i2s2_cfg_func>; + dmas = <&asp_dmac 18 &asp_dmac 19>; + dma-names = "rx", "tx"; + #sound-dai-cells = <0>; + }; + + sound { + compatible = "simple-audio-card"; + simple-audio-card,name = "hikey-hdmi"; + simple-audio-card,format = "i2s"; + + simple-audio-card,bitclock-master = <&sound_master>; + simple-audio-card,frame-master = <&sound_master>; + + sound_master: simple-audio-card,cpu { + sound-dai = <&i2s2>; + }; + + simple-audio-card,codec { + sound-dai = <&adv7533>; + }; + }; + }; /* @@ -526,11 +608,54 @@ &i2c1 { status = "okay"; + rt1711h: rt1711h@4e { + compatible = "richtek,rt1711h"; + reg = <0x4e>; + status = "ok"; + interrupt-parent = <&gpio27>; + interrupts = <3 IRQ_TYPE_LEVEL_LOW>; + pinctrl-names = "default"; + pinctrl-0 = <&usb_cfg_func>; + + usb_con: connector { + compatible = "usb-c-connector"; + label = "USB-C"; + data-role = "dual"; + power-role = "dual"; + try-power-role = "sink"; + source-pdos = ; + sink-pdos = ; + op-sink-microwatt = <10000000>; + + ports { + #address-cells = <1>; + #size-cells = <0>; + port@1 { + reg = <1>; + usb_con_ss: endpoint { + remote-endpoint = <&dwc3_ss>; + }; + }; + }; + }; + port { + #address-cells = <1>; + #size-cells = <0>; + + rt1711h_ep: endpoint@0 { + reg = <0>; + remote-endpoint = <&hikey_usb_ep1>; + }; + }; + }; + adv7533: adv7533@39 { status = "ok"; compatible = "adi,adv7533"; reg = <0x39>; }; + }; &i2c7 { diff --git a/arch/arm64/boot/dts/hisilicon/hi3660.dtsi b/arch/arm64/boot/dts/hisilicon/hi3660.dtsi index 253cc345f143..f6a501e4963b 100644 --- a/arch/arm64/boot/dts/hisilicon/hi3660.dtsi +++ b/arch/arm64/boot/dts/hisilicon/hi3660.dtsi @@ -355,6 +355,12 @@ #clock-cells = <1>; }; + pmctrl: pmctrl@fff31000 { + compatible = "hisilicon,hi3660-pmctrl", "syscon"; + reg = <0x0 0xfff31000 0x0 0x1000>; + #clock-cells = <1>; + }; + pmuctrl: crg_ctrl@fff34000 { compatible = "hisilicon,hi3660-pmuctrl", "syscon"; reg = <0x0 0xfff34000 0x0 0x1000>; @@ -367,6 +373,13 @@ #clock-cells = <1>; }; + reboot { + compatible = "hisilicon,hi3660-reboot"; + pmu-regmap = <&pmuctrl>; + sctrl-regmap = <&sctrl>; + reboot-offset = <0x4>; + }; + iomcu: iomcu@ffd7e000 { compatible = "hisilicon,hi3660-iomcu", "syscon"; reg = <0x0 0xffd7e000 0x0 0x1000>; @@ -431,7 +444,28 @@ resets = <&iomcu_rst 0x20 4>; pinctrl-names = "default"; pinctrl-0 = <&i2c1_pmx_func &i2c1_cfg_func>; - status = "disabled"; + status = "ok"; + + adv7533: adv7533@39 { + status = "ok"; + compatible = "adi,adv7533"; + reg = <0x39>; + v1p2-supply = <&ldo3>; + vdd-supply = <&ldo3>; + interrupt-parent = <&gpio1>; + interrupts = <1 2>; + pd-gpio = <&gpio5 1 0>; + sel-gpio = <&gpio2 4 0>; + adi,dsi-lanes = <4>; + adi,disable-timing-generator; + #sound-dai-cells = <0>; + + port { + adv7533_in: endpoint { + remote-endpoint = <&dsi_out0>; + }; + }; + }; }; i2c3: i2c@fdf0c000 { @@ -1152,6 +1186,70 @@ }; }; }; + + usb3_otg_bc: usb3_otg_bc@ff200000 { + compatible = "syscon", "simple-mfd"; + reg = <0x0 0xff200000 0x0 0x1000>; + + usb_phy: usb-phy { + compatible = "hisilicon,hi3660-usb-phy"; + #phy-cells = <0>; + hisilicon,pericrg-syscon = <&crg_ctrl>; + hisilicon,pctrl-syscon = <&pctrl>; + hisilicon,eye-diagram-param = <0x22466e4>; + }; + }; + + + dwc3: dwc3@ff100000 { + compatible = "snps,dwc3"; + reg = <0x0 0xff100000 0x0 0x100000>; + + clocks = <&crg_ctrl HI3660_CLK_ABB_USB>, + <&crg_ctrl HI3660_ACLK_GATE_USB3OTG>; + clock-names = "ref", "bus_early"; + + assigned-clocks = <&crg_ctrl HI3660_ACLK_GATE_USB3OTG>; + assigned-clock-rates = <229000000>; + + resets = <&crg_rst 0x90 8>, + <&crg_rst 0x90 7>, + <&crg_rst 0x90 6>, + <&crg_rst 0x90 5>; + + interrupts = <0 159 4>, <0 161 4>; + phys = <&usb_phy>; + phy-names = "usb3-phy"; + + dr_mode = "otg"; + maximum-speed = "super-speed"; + phy_type = "utmi"; + snps,dis-del-phy-power-chg-quirk; + snps,lfps_filter_quirk; + snps,dis_u2_susphy_quirk; + snps,dis_u3_susphy_quirk; + snps,tx_de_emphasis_quirk; + snps,tx_de_emphasis = <1>; + snps,dis_enblslpm_quirk; + snps,gctl-reset-quirk; + usb-role-switch; + role-switch-default-mode = "host"; + + port { + #address-cells = <1>; + #size-cells = <0>; + + dwc3_role_switch: endpoint@0 { + reg = <0>; + remote-endpoint = <&hikey_usb_ep0>; + }; + + dwc3_ss: endpoint@1 { + reg = <1>; + remote-endpoint = <&usb_con_ss>; + }; + }; + }; }; }; diff --git a/arch/arm64/configs/gki_defconfig b/arch/arm64/configs/gki_defconfig index 3cb92b29572a..9bc9ef51c81d 100644 --- a/arch/arm64/configs/gki_defconfig +++ b/arch/arm64/configs/gki_defconfig @@ -45,6 +45,7 @@ CONFIG_SCHED_MC=y CONFIG_NR_CPUS=32 CONFIG_SECCOMP=y CONFIG_PARAVIRT=y +CONFIG_ARM64_SW_TTBR0_PAN=y CONFIG_COMPAT=y CONFIG_ARMV8_DEPRECATED=y CONFIG_SWP_EMULATION=y @@ -81,8 +82,8 @@ CONFIG_MODVERSIONS=y CONFIG_BLK_INLINE_ENCRYPTION=y CONFIG_GKI_HACKS_TO_FIX=y # CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set +CONFIG_BINFMT_MISC=m CONFIG_MEMORY_HOTPLUG=y -CONFIG_TRANSPARENT_HUGEPAGE=y CONFIG_CMA=y CONFIG_CMA_AREAS=16 CONFIG_ZSMALLOC=y @@ -204,7 +205,10 @@ CONFIG_MAC80211=y # CONFIG_MAC80211_RC_MINSTREL is not set CONFIG_RFKILL=y CONFIG_PCI=y +CONFIG_PCIEPORTBUS=y +# CONFIG_PCIEAER is not set CONFIG_PCI_HOST_GENERIC=y +CONFIG_PCIE_QCOM=y CONFIG_PCIE_KIRIN=y CONFIG_FW_LOADER_USER_HELPER=y CONFIG_FW_LOADER_USER_HELPER_FALLBACK=y @@ -212,6 +216,7 @@ CONFIG_FW_LOADER_USER_HELPER_FALLBACK=y # CONFIG_ALLOW_DEV_COREDUMP is not set CONFIG_DEBUG_DEVRES=y CONFIG_GNSS=y +CONFIG_GNSS_CMDLINE_SERIAL=m CONFIG_ZRAM=y CONFIG_BLK_DEV_LOOP=y CONFIG_BLK_DEV_RAM=y diff --git a/arch/arm64/include/asm/system_misc.h b/arch/arm64/include/asm/system_misc.h index 1ab63cfbbaf1..d02c5e5ea015 100644 --- a/arch/arm64/include/asm/system_misc.h +++ b/arch/arm64/include/asm/system_misc.h @@ -32,8 +32,6 @@ void hook_debug_fault_code(int nr, int (*fn)(unsigned long, unsigned int, struct mm_struct; extern void __show_regs(struct pt_regs *); -extern void (*arm_pm_restart)(enum reboot_mode reboot_mode, const char *cmd); - #endif /* __ASSEMBLY__ */ #endif /* __ASM_SYSTEM_MISC_H */ diff --git a/arch/arm64/kernel/process.c b/arch/arm64/kernel/process.c index 226329045a7b..5b56e2773bbf 100644 --- a/arch/arm64/kernel/process.c +++ b/arch/arm64/kernel/process.c @@ -67,8 +67,6 @@ EXPORT_SYMBOL(__stack_chk_guard); void (*pm_power_off)(void); EXPORT_SYMBOL_GPL(pm_power_off); -void (*arm_pm_restart)(enum reboot_mode reboot_mode, const char *cmd); - static void __cpu_do_idle(void) { dsb(sy); @@ -208,10 +206,7 @@ void machine_restart(char *cmd) efi_reboot(reboot_mode, NULL); /* Now call the architecture specific reboot code. */ - if (arm_pm_restart) - arm_pm_restart(reboot_mode, cmd); - else - do_kernel_restart(cmd); + do_kernel_restart(cmd); /* * Whoops - the architecture was unable to reboot. diff --git a/arch/arm64/kernel/psci.c b/arch/arm64/kernel/psci.c index 86b32e9eae80..5fadf6bb358e 100644 --- a/arch/arm64/kernel/psci.c +++ b/arch/arm64/kernel/psci.c @@ -82,7 +82,8 @@ static void cpu_psci_cpu_die(unsigned int cpu) static int cpu_psci_cpu_kill(unsigned int cpu) { - int err, i; + int err; + unsigned long start, end; if (!psci_ops.affinity_info) return 0; @@ -92,16 +93,18 @@ static int cpu_psci_cpu_kill(unsigned int cpu) * while it is dying. So, try again a few times. */ - for (i = 0; i < 10; i++) { + start = jiffies; + end = start + msecs_to_jiffies(100); + do { err = psci_ops.affinity_info(cpu_logical_map(cpu), 0); if (err == PSCI_0_2_AFFINITY_LEVEL_OFF) { - pr_info("CPU%d killed.\n", cpu); + pr_info("CPU%d killed (polled %d ms)\n", cpu, + jiffies_to_msecs(jiffies - start)); return 0; } - msleep(10); - pr_info("Retrying again to check for CPU kill\n"); - } + usleep_range(100, 1000); + } while (time_before(jiffies, end)); pr_warn("CPU%d may not have shut down cleanly (AFFINITY_INFO reports %d)\n", cpu, err); diff --git a/arch/arm64/kvm/sys_regs.c b/arch/arm64/kvm/sys_regs.c index 46822afc57e0..01a515e0171e 100644 --- a/arch/arm64/kvm/sys_regs.c +++ b/arch/arm64/kvm/sys_regs.c @@ -2360,8 +2360,11 @@ static const struct sys_reg_desc *index_to_sys_reg_desc(struct kvm_vcpu *vcpu, if ((id & KVM_REG_ARM_COPROC_MASK) != KVM_REG_ARM64_SYSREG) return NULL; + if (!index_to_params(id, ¶ms)) + return NULL; + table = get_target_table(vcpu->arch.target, true, &num); - r = find_reg_by_id(id, ¶ms, table, num); + r = find_reg(¶ms, table, num); if (!r) r = find_reg(¶ms, sys_reg_descs, ARRAY_SIZE(sys_reg_descs)); diff --git a/arch/mips/include/asm/barrier.h b/arch/mips/include/asm/barrier.h index 9228f7386220..fb842965d541 100644 --- a/arch/mips/include/asm/barrier.h +++ b/arch/mips/include/asm/barrier.h @@ -218,13 +218,14 @@ * ordering will be done by smp_llsc_mb() and friends. */ #if defined(CONFIG_WEAK_REORDERING_BEYOND_LLSC) && defined(CONFIG_SMP) -#define __WEAK_LLSC_MB " sync \n" -#define smp_llsc_mb() __asm__ __volatile__(__WEAK_LLSC_MB : : :"memory") -#define __LLSC_CLOBBER +# define __WEAK_LLSC_MB sync +# define smp_llsc_mb() \ + __asm__ __volatile__(__stringify(__WEAK_LLSC_MB) : : :"memory") +# define __LLSC_CLOBBER #else -#define __WEAK_LLSC_MB " \n" -#define smp_llsc_mb() do { } while (0) -#define __LLSC_CLOBBER "memory" +# define __WEAK_LLSC_MB +# define smp_llsc_mb() do { } while (0) +# define __LLSC_CLOBBER "memory" #endif #ifdef CONFIG_CPU_CAVIUM_OCTEON diff --git a/arch/mips/include/asm/futex.h b/arch/mips/include/asm/futex.h index b83b0397462d..110220705e97 100644 --- a/arch/mips/include/asm/futex.h +++ b/arch/mips/include/asm/futex.h @@ -16,6 +16,7 @@ #include #include #include +#include #include #define __futex_atomic_op(insn, ret, oldval, uaddr, oparg) \ @@ -32,7 +33,7 @@ " .set arch=r4000 \n" \ "2: sc $1, %2 \n" \ " beqzl $1, 1b \n" \ - __WEAK_LLSC_MB \ + __stringify(__WEAK_LLSC_MB) " \n" \ "3: \n" \ " .insn \n" \ " .set pop \n" \ @@ -50,19 +51,19 @@ "i" (-EFAULT) \ : "memory"); \ } else if (cpu_has_llsc) { \ - loongson_llsc_mb(); \ __asm__ __volatile__( \ " .set push \n" \ " .set noat \n" \ " .set push \n" \ " .set "MIPS_ISA_ARCH_LEVEL" \n" \ + " " __SYNC(full, loongson3_war) " \n" \ "1: "user_ll("%1", "%4")" # __futex_atomic_op\n" \ " .set pop \n" \ " " insn " \n" \ " .set "MIPS_ISA_ARCH_LEVEL" \n" \ "2: "user_sc("$1", "%2")" \n" \ " beqz $1, 1b \n" \ - __WEAK_LLSC_MB \ + __stringify(__WEAK_LLSC_MB) " \n" \ "3: \n" \ " .insn \n" \ " .set pop \n" \ @@ -147,7 +148,7 @@ futex_atomic_cmpxchg_inatomic(u32 *uval, u32 __user *uaddr, " .set arch=r4000 \n" "2: sc $1, %2 \n" " beqzl $1, 1b \n" - __WEAK_LLSC_MB + __stringify(__WEAK_LLSC_MB) " \n" "3: \n" " .insn \n" " .set pop \n" @@ -164,13 +165,13 @@ futex_atomic_cmpxchg_inatomic(u32 *uval, u32 __user *uaddr, "i" (-EFAULT) : "memory"); } else if (cpu_has_llsc) { - loongson_llsc_mb(); __asm__ __volatile__( "# futex_atomic_cmpxchg_inatomic \n" " .set push \n" " .set noat \n" " .set push \n" " .set "MIPS_ISA_ARCH_LEVEL" \n" + " " __SYNC(full, loongson3_war) " \n" "1: "user_ll("%1", "%3")" \n" " bne %1, %z4, 3f \n" " .set pop \n" @@ -178,8 +179,7 @@ futex_atomic_cmpxchg_inatomic(u32 *uval, u32 __user *uaddr, " .set "MIPS_ISA_ARCH_LEVEL" \n" "2: "user_sc("$1", "%2")" \n" " beqz $1, 1b \n" - __WEAK_LLSC_MB - "3: \n" + "3: " __SYNC_ELSE(full, loongson3_war, __WEAK_LLSC_MB) "\n" " .insn \n" " .set pop \n" " .section .fixup,\"ax\" \n" @@ -194,7 +194,6 @@ futex_atomic_cmpxchg_inatomic(u32 *uval, u32 __user *uaddr, : GCC_OFF_SMALL_ASM() (*uaddr), "Jr" (oldval), "Jr" (newval), "i" (-EFAULT) : "memory"); - loongson_llsc_mb(); } else return -ENOSYS; diff --git a/arch/mips/include/asm/pgtable-64.h b/arch/mips/include/asm/pgtable-64.h index 93a9dce31f25..813dfe5f45a5 100644 --- a/arch/mips/include/asm/pgtable-64.h +++ b/arch/mips/include/asm/pgtable-64.h @@ -18,10 +18,12 @@ #include #define __ARCH_USE_5LEVEL_HACK -#if defined(CONFIG_PAGE_SIZE_64KB) && !defined(CONFIG_MIPS_VA_BITS_48) +#if CONFIG_PGTABLE_LEVELS == 2 #include -#elif !(defined(CONFIG_PAGE_SIZE_4KB) && defined(CONFIG_MIPS_VA_BITS_48)) +#elif CONFIG_PGTABLE_LEVELS == 3 #include +#else +#include #endif /* @@ -216,6 +218,9 @@ static inline unsigned long pgd_page_vaddr(pgd_t pgd) return pgd_val(pgd); } +#define pgd_phys(pgd) virt_to_phys((void *)pgd_val(pgd)) +#define pgd_page(pgd) (pfn_to_page(pgd_phys(pgd) >> PAGE_SHIFT)) + static inline pud_t *pud_offset(pgd_t *pgd, unsigned long address) { return (pud_t *)pgd_page_vaddr(*pgd) + pud_index(address); diff --git a/arch/mips/ralink/Kconfig b/arch/mips/ralink/Kconfig index 1434fa60f3db..94e9ce994494 100644 --- a/arch/mips/ralink/Kconfig +++ b/arch/mips/ralink/Kconfig @@ -51,6 +51,7 @@ choice select MIPS_GIC select COMMON_CLK select CLKSRC_MIPS_GIC + select HAVE_PCI if PCI_MT7621 endchoice choice diff --git a/arch/powerpc/include/asm/spinlock.h b/arch/powerpc/include/asm/spinlock.h index e9a960e28f3c..cac95a3f30c2 100644 --- a/arch/powerpc/include/asm/spinlock.h +++ b/arch/powerpc/include/asm/spinlock.h @@ -36,10 +36,12 @@ #endif #ifdef CONFIG_PPC_PSERIES +DECLARE_STATIC_KEY_FALSE(shared_processor); + #define vcpu_is_preempted vcpu_is_preempted static inline bool vcpu_is_preempted(int cpu) { - if (!firmware_has_feature(FW_FEATURE_SPLPAR)) + if (!static_branch_unlikely(&shared_processor)) return false; return !!(be32_to_cpu(lppaca_of(cpu).yield_count) & 1); } diff --git a/arch/powerpc/kernel/irq.c b/arch/powerpc/kernel/irq.c index 5645bc9cbc09..add67498c126 100644 --- a/arch/powerpc/kernel/irq.c +++ b/arch/powerpc/kernel/irq.c @@ -619,8 +619,6 @@ void __do_irq(struct pt_regs *regs) trace_irq_entry(regs); - check_stack_overflow(); - /* * Query the platform PIC for the interrupt & ack it. * @@ -652,6 +650,8 @@ void do_IRQ(struct pt_regs *regs) irqsp = hardirq_ctx[raw_smp_processor_id()]; sirqsp = softirq_ctx[raw_smp_processor_id()]; + check_stack_overflow(); + /* Already there ? */ if (unlikely(cursp == irqsp || cursp == sirqsp)) { __do_irq(regs); diff --git a/arch/powerpc/kvm/book3s_hv_rmhandlers.S b/arch/powerpc/kvm/book3s_hv_rmhandlers.S index 0496e66aaa56..c6fbbd29bd87 100644 --- a/arch/powerpc/kvm/book3s_hv_rmhandlers.S +++ b/arch/powerpc/kvm/book3s_hv_rmhandlers.S @@ -1117,7 +1117,7 @@ END_FTR_SECTION_IFSET(CPU_FTR_ARCH_300) ld r7, VCPU_GPR(R7)(r4) bne ret_to_ultra - lwz r0, VCPU_CR(r4) + ld r0, VCPU_CR(r4) mtcr r0 ld r0, VCPU_GPR(R0)(r4) @@ -1137,7 +1137,7 @@ END_FTR_SECTION_IFSET(CPU_FTR_ARCH_300) * R3 = UV_RETURN */ ret_to_ultra: - lwz r0, VCPU_CR(r4) + ld r0, VCPU_CR(r4) mtcr r0 ld r0, VCPU_GPR(R3)(r4) diff --git a/arch/powerpc/platforms/pseries/setup.c b/arch/powerpc/platforms/pseries/setup.c index 0a40201f315f..0c8421dd01ab 100644 --- a/arch/powerpc/platforms/pseries/setup.c +++ b/arch/powerpc/platforms/pseries/setup.c @@ -74,6 +74,9 @@ #include "pseries.h" #include "../../../../drivers/pci/pci.h" +DEFINE_STATIC_KEY_FALSE(shared_processor); +EXPORT_SYMBOL_GPL(shared_processor); + int CMO_PrPSP = -1; int CMO_SecPSP = -1; unsigned long CMO_PageSize = (ASM_CONST(1) << IOMMU_PAGE_SHIFT_4K); @@ -758,6 +761,10 @@ static void __init pSeries_setup_arch(void) if (firmware_has_feature(FW_FEATURE_LPAR)) { vpa_init(boot_cpuid); + + if (lppaca_shared_proc(get_lppaca())) + static_branch_enable(&shared_processor); + ppc_md.power_save = pseries_lpar_idle; ppc_md.enable_pmcs = pseries_lpar_enable_pmcs; #ifdef CONFIG_PCI_IOV diff --git a/arch/s390/crypto/sha_common.c b/arch/s390/crypto/sha_common.c index d39e0f079217..686fe7aa192f 100644 --- a/arch/s390/crypto/sha_common.c +++ b/arch/s390/crypto/sha_common.c @@ -74,14 +74,17 @@ int s390_sha_final(struct shash_desc *desc, u8 *out) struct s390_sha_ctx *ctx = shash_desc_ctx(desc); unsigned int bsize = crypto_shash_blocksize(desc->tfm); u64 bits; - unsigned int n, mbl_offset; + unsigned int n; + int mbl_offset; n = ctx->count % bsize; bits = ctx->count * 8; - mbl_offset = s390_crypto_shash_parmsize(ctx->func) / sizeof(u32); + mbl_offset = s390_crypto_shash_parmsize(ctx->func); if (mbl_offset < 0) return -EINVAL; + mbl_offset = mbl_offset / sizeof(u32); + /* set total msg bit length (mbl) in CPACF parmblock */ switch (ctx->func) { case CPACF_KLMD_SHA_1: diff --git a/arch/s390/include/asm/pgalloc.h b/arch/s390/include/asm/pgalloc.h index bccb8f4a63e2..77606c4acd58 100644 --- a/arch/s390/include/asm/pgalloc.h +++ b/arch/s390/include/asm/pgalloc.h @@ -56,7 +56,12 @@ static inline p4d_t *p4d_alloc_one(struct mm_struct *mm, unsigned long address) crst_table_init(table, _REGION2_ENTRY_EMPTY); return (p4d_t *) table; } -#define p4d_free(mm, p4d) crst_table_free(mm, (unsigned long *) p4d) + +static inline void p4d_free(struct mm_struct *mm, p4d_t *p4d) +{ + if (!mm_p4d_folded(mm)) + crst_table_free(mm, (unsigned long *) p4d); +} static inline pud_t *pud_alloc_one(struct mm_struct *mm, unsigned long address) { @@ -65,7 +70,12 @@ static inline pud_t *pud_alloc_one(struct mm_struct *mm, unsigned long address) crst_table_init(table, _REGION3_ENTRY_EMPTY); return (pud_t *) table; } -#define pud_free(mm, pud) crst_table_free(mm, (unsigned long *) pud) + +static inline void pud_free(struct mm_struct *mm, pud_t *pud) +{ + if (!mm_pud_folded(mm)) + crst_table_free(mm, (unsigned long *) pud); +} static inline pmd_t *pmd_alloc_one(struct mm_struct *mm, unsigned long vmaddr) { @@ -83,6 +93,8 @@ static inline pmd_t *pmd_alloc_one(struct mm_struct *mm, unsigned long vmaddr) static inline void pmd_free(struct mm_struct *mm, pmd_t *pmd) { + if (mm_pmd_folded(mm)) + return; pgtable_pmd_page_dtor(virt_to_page(pmd)); crst_table_free(mm, (unsigned long *) pmd); } diff --git a/arch/s390/include/asm/timex.h b/arch/s390/include/asm/timex.h index 64539c221672..2dc9eb4e1acc 100644 --- a/arch/s390/include/asm/timex.h +++ b/arch/s390/include/asm/timex.h @@ -10,8 +10,9 @@ #ifndef _ASM_S390_TIMEX_H #define _ASM_S390_TIMEX_H -#include +#include #include +#include /* The value of the TOD clock for 1.1.1970. */ #define TOD_UNIX_EPOCH 0x7d91048bca000000ULL @@ -186,15 +187,18 @@ extern unsigned char tod_clock_base[16] __aligned(8); /** * get_clock_monotonic - returns current time in clock rate units * - * The caller must ensure that preemption is disabled. * The clock and tod_clock_base get changed via stop_machine. - * Therefore preemption must be disabled when calling this - * function, otherwise the returned value is not guaranteed to - * be monotonic. + * Therefore preemption must be disabled, otherwise the returned + * value is not guaranteed to be monotonic. */ static inline unsigned long long get_tod_clock_monotonic(void) { - return get_tod_clock() - *(unsigned long long *) &tod_clock_base[1]; + unsigned long long tod; + + preempt_disable_notrace(); + tod = get_tod_clock() - *(unsigned long long *) &tod_clock_base[1]; + preempt_enable_notrace(); + return tod; } /** diff --git a/arch/s390/kernel/dis.c b/arch/s390/kernel/dis.c index 7abe6ae261b4..f304802ecf7b 100644 --- a/arch/s390/kernel/dis.c +++ b/arch/s390/kernel/dis.c @@ -461,10 +461,11 @@ static int print_insn(char *buffer, unsigned char *code, unsigned long addr) ptr += sprintf(ptr, "%%c%i", value); else if (operand->flags & OPERAND_VR) ptr += sprintf(ptr, "%%v%i", value); - else if (operand->flags & OPERAND_PCREL) - ptr += sprintf(ptr, "%lx", (signed int) value - + addr); - else if (operand->flags & OPERAND_SIGNED) + else if (operand->flags & OPERAND_PCREL) { + void *pcrel = (void *)((int)value + addr); + + ptr += sprintf(ptr, "%px", pcrel); + } else if (operand->flags & OPERAND_SIGNED) ptr += sprintf(ptr, "%i", value); else ptr += sprintf(ptr, "%u", value); @@ -536,7 +537,7 @@ void show_code(struct pt_regs *regs) else *ptr++ = ' '; addr = regs->psw.addr + start - 32; - ptr += sprintf(ptr, "%016lx: ", addr); + ptr += sprintf(ptr, "%px: ", (void *)addr); if (start + opsize >= end) break; for (i = 0; i < opsize; i++) @@ -564,7 +565,7 @@ void print_fn_code(unsigned char *code, unsigned long len) opsize = insn_length(*code); if (opsize > len) break; - ptr += sprintf(ptr, "%p: ", code); + ptr += sprintf(ptr, "%px: ", code); for (i = 0; i < opsize; i++) ptr += sprintf(ptr, "%02x", code[i]); *ptr++ = '\t'; diff --git a/arch/s390/kernel/perf_cpum_cf.c b/arch/s390/kernel/perf_cpum_cf.c index 48d48b6187c0..0eb1d1cc53a8 100644 --- a/arch/s390/kernel/perf_cpum_cf.c +++ b/arch/s390/kernel/perf_cpum_cf.c @@ -199,7 +199,7 @@ static const int cpumf_generic_events_user[] = { [PERF_COUNT_HW_BUS_CYCLES] = -1, }; -static int __hw_perf_event_init(struct perf_event *event) +static int __hw_perf_event_init(struct perf_event *event, unsigned int type) { struct perf_event_attr *attr = &event->attr; struct hw_perf_event *hwc = &event->hw; @@ -207,7 +207,7 @@ static int __hw_perf_event_init(struct perf_event *event) int err = 0; u64 ev; - switch (attr->type) { + switch (type) { case PERF_TYPE_RAW: /* Raw events are used to access counters directly, * hence do not permit excludes */ @@ -294,17 +294,16 @@ static int __hw_perf_event_init(struct perf_event *event) static int cpumf_pmu_event_init(struct perf_event *event) { + unsigned int type = event->attr.type; int err; - switch (event->attr.type) { - case PERF_TYPE_HARDWARE: - case PERF_TYPE_HW_CACHE: - case PERF_TYPE_RAW: - err = __hw_perf_event_init(event); - break; - default: + if (type == PERF_TYPE_HARDWARE || type == PERF_TYPE_RAW) + err = __hw_perf_event_init(event, type); + else if (event->pmu->type == type) + /* Registered as unknown PMU */ + err = __hw_perf_event_init(event, PERF_TYPE_RAW); + else return -ENOENT; - } if (unlikely(err) && event->destroy) event->destroy(event); @@ -553,7 +552,7 @@ static int __init cpumf_pmu_init(void) return -ENODEV; cpumf_pmu.attr_groups = cpumf_cf_event_group(); - rc = perf_pmu_register(&cpumf_pmu, "cpum_cf", PERF_TYPE_RAW); + rc = perf_pmu_register(&cpumf_pmu, "cpum_cf", -1); if (rc) pr_err("Registering the cpum_cf PMU failed with rc=%i\n", rc); return rc; diff --git a/arch/s390/kernel/perf_cpum_cf_diag.c b/arch/s390/kernel/perf_cpum_cf_diag.c index 2654e348801a..e949ab832ed7 100644 --- a/arch/s390/kernel/perf_cpum_cf_diag.c +++ b/arch/s390/kernel/perf_cpum_cf_diag.c @@ -243,13 +243,13 @@ static int cf_diag_event_init(struct perf_event *event) int err = -ENOENT; debug_sprintf_event(cf_diag_dbg, 5, - "%s event %p cpu %d config %#llx " + "%s event %p cpu %d config %#llx type:%u " "sample_type %#llx cf_diag_events %d\n", __func__, - event, event->cpu, attr->config, attr->sample_type, - atomic_read(&cf_diag_events)); + event, event->cpu, attr->config, event->pmu->type, + attr->sample_type, atomic_read(&cf_diag_events)); if (event->attr.config != PERF_EVENT_CPUM_CF_DIAG || - event->attr.type != PERF_TYPE_RAW) + event->attr.type != event->pmu->type) goto out; /* Raw events are used to access counters directly, @@ -693,7 +693,7 @@ static int __init cf_diag_init(void) } debug_register_view(cf_diag_dbg, &debug_sprintf_view); - rc = perf_pmu_register(&cf_diag, "cpum_cf_diag", PERF_TYPE_RAW); + rc = perf_pmu_register(&cf_diag, "cpum_cf_diag", -1); if (rc) { debug_unregister_view(cf_diag_dbg, &debug_sprintf_view); debug_unregister(cf_diag_dbg); diff --git a/arch/s390/kernel/perf_event.c b/arch/s390/kernel/perf_event.c index fcb6c2e92b07..1e75cc983546 100644 --- a/arch/s390/kernel/perf_event.c +++ b/arch/s390/kernel/perf_event.c @@ -224,9 +224,13 @@ void perf_callchain_kernel(struct perf_callchain_entry_ctx *entry, struct pt_regs *regs) { struct unwind_state state; + unsigned long addr; - unwind_for_each_frame(&state, current, regs, 0) - perf_callchain_store(entry, state.ip); + unwind_for_each_frame(&state, current, regs, 0) { + addr = unwind_get_return_address(&state); + if (!addr || perf_callchain_store(entry, addr)) + return; + } } /* Perf definitions for PMU event attributes in sysfs */ diff --git a/arch/s390/mm/maccess.c b/arch/s390/mm/maccess.c index 1864a8bb9622..59ad7997fed1 100644 --- a/arch/s390/mm/maccess.c +++ b/arch/s390/mm/maccess.c @@ -70,7 +70,7 @@ void notrace s390_kernel_write(void *dst, const void *src, size_t size) spin_unlock_irqrestore(&s390_kernel_write_lock, flags); } -static int __memcpy_real(void *dest, void *src, size_t count) +static int __no_sanitize_address __memcpy_real(void *dest, void *src, size_t count) { register unsigned long _dest asm("2") = (unsigned long) dest; register unsigned long _len1 asm("3") = (unsigned long) count; @@ -91,19 +91,23 @@ static int __memcpy_real(void *dest, void *src, size_t count) return rc; } -static unsigned long _memcpy_real(unsigned long dest, unsigned long src, - unsigned long count) +static unsigned long __no_sanitize_address _memcpy_real(unsigned long dest, + unsigned long src, + unsigned long count) { int irqs_disabled, rc; unsigned long flags; if (!count) return 0; - flags = __arch_local_irq_stnsm(0xf8UL); + flags = arch_local_irq_save(); irqs_disabled = arch_irqs_disabled_flags(flags); if (!irqs_disabled) trace_hardirqs_off(); + __arch_local_irq_stnsm(0xf8); // disable DAT rc = __memcpy_real((void *) dest, (void *) src, (size_t) count); + if (flags & PSW_MASK_DAT) + __arch_local_irq_stosm(0x04); // enable DAT if (!irqs_disabled) trace_hardirqs_on(); __arch_local_irq_ssm(flags); diff --git a/arch/s390/net/bpf_jit_comp.c b/arch/s390/net/bpf_jit_comp.c index ce88211b9c6c..c8c16b5eed6b 100644 --- a/arch/s390/net/bpf_jit_comp.c +++ b/arch/s390/net/bpf_jit_comp.c @@ -23,6 +23,7 @@ #include #include #include +#include #include #include #include @@ -1369,7 +1370,7 @@ struct bpf_prog *bpf_int_jit_compile(struct bpf_prog *fp) } memset(&jit, 0, sizeof(jit)); - jit.addrs = kcalloc(fp->len + 1, sizeof(*jit.addrs), GFP_KERNEL); + jit.addrs = kvcalloc(fp->len + 1, sizeof(*jit.addrs), GFP_KERNEL); if (jit.addrs == NULL) { fp = orig_fp; goto out; @@ -1422,7 +1423,7 @@ skip_init_ctx: if (!fp->is_func || extra_pass) { bpf_prog_fill_jited_linfo(fp, jit.addrs + 1); free_addrs: - kfree(jit.addrs); + kvfree(jit.addrs); kfree(jit_data); fp->aux->jit_data = NULL; } diff --git a/arch/sh/include/cpu-sh4/cpu/sh7734.h b/arch/sh/include/cpu-sh4/cpu/sh7734.h index 96f0246ad2f2..82b63208135a 100644 --- a/arch/sh/include/cpu-sh4/cpu/sh7734.h +++ b/arch/sh/include/cpu-sh4/cpu/sh7734.h @@ -134,7 +134,7 @@ enum { GPIO_FN_EX_WAIT1, GPIO_FN_SD1_DAT0_A, GPIO_FN_DREQ2, GPIO_FN_CAN1_TX_C, GPIO_FN_ET0_LINK_C, GPIO_FN_ET0_ETXD5_A, GPIO_FN_EX_WAIT0, GPIO_FN_TCLK1_B, - GPIO_FN_RD_WR, GPIO_FN_TCLK0, + GPIO_FN_RD_WR, GPIO_FN_TCLK0, GPIO_FN_CAN_CLK_B, GPIO_FN_ET0_ETXD4, GPIO_FN_EX_CS5, GPIO_FN_SD1_CMD_A, GPIO_FN_ATADIR, GPIO_FN_QSSL_B, GPIO_FN_ET0_ETXD3_A, GPIO_FN_EX_CS4, GPIO_FN_SD1_WP_A, GPIO_FN_ATAWR, GPIO_FN_QMI_QIO1_B, diff --git a/arch/x86/configs/gki_defconfig b/arch/x86/configs/gki_defconfig index 6dfd4b399bf5..2e02a1cce49f 100644 --- a/arch/x86/configs/gki_defconfig +++ b/arch/x86/configs/gki_defconfig @@ -57,7 +57,7 @@ CONFIG_MODVERSIONS=y CONFIG_BLK_INLINE_ENCRYPTION=y CONFIG_GKI_HACKS_TO_FIX=y # CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set -CONFIG_TRANSPARENT_HUGEPAGE=y +CONFIG_BINFMT_MISC=m CONFIG_CMA=y CONFIG_CMA_AREAS=16 CONFIG_ZSMALLOC=y @@ -178,12 +178,15 @@ CONFIG_MAC80211=y # CONFIG_MAC80211_RC_MINSTREL is not set CONFIG_RFKILL=y CONFIG_PCI=y +CONFIG_PCIEPORTBUS=y +# CONFIG_PCIEAER is not set CONFIG_FW_LOADER_USER_HELPER=y CONFIG_FW_LOADER_USER_HELPER_FALLBACK=y # CONFIG_FW_CACHE is not set # CONFIG_ALLOW_DEV_COREDUMP is not set CONFIG_DEBUG_DEVRES=y CONFIG_GNSS=y +CONFIG_GNSS_CMDLINE_SERIAL=m CONFIG_OF=y CONFIG_ZRAM=y CONFIG_BLK_DEV_LOOP=y @@ -322,6 +325,7 @@ CONFIG_ION_SYSTEM_HEAP=y CONFIG_ION_SYSTEM_CONTIG_HEAP=y CONFIG_PM_DEVFREQ=y CONFIG_IIO=y +CONFIG_RAS=y CONFIG_ANDROID=y CONFIG_ANDROID_BINDER_IPC=y CONFIG_EXT4_FS=y diff --git a/arch/x86/include/asm/crash.h b/arch/x86/include/asm/crash.h index 0acf5ee45a21..ef5638f641f2 100644 --- a/arch/x86/include/asm/crash.h +++ b/arch/x86/include/asm/crash.h @@ -2,6 +2,8 @@ #ifndef _ASM_X86_CRASH_H #define _ASM_X86_CRASH_H +struct kimage; + int crash_load_segments(struct kimage *image); int crash_copy_backup_region(struct kimage *image); int crash_setup_memmap_entries(struct kimage *image, diff --git a/arch/x86/include/asm/fixmap.h b/arch/x86/include/asm/fixmap.h index 0c47aa82e2e2..28183ee3cc42 100644 --- a/arch/x86/include/asm/fixmap.h +++ b/arch/x86/include/asm/fixmap.h @@ -156,7 +156,7 @@ extern pte_t *kmap_pte; extern pte_t *pkmap_page_table; void __native_set_fixmap(enum fixed_addresses idx, pte_t pte); -void native_set_fixmap(enum fixed_addresses idx, +void native_set_fixmap(unsigned /* enum fixed_addresses */ idx, phys_addr_t phys, pgprot_t flags); #ifndef CONFIG_PARAVIRT_XXL diff --git a/arch/x86/include/asm/syscall_wrapper.h b/arch/x86/include/asm/syscall_wrapper.h index e046a405743d..90eb70df0b18 100644 --- a/arch/x86/include/asm/syscall_wrapper.h +++ b/arch/x86/include/asm/syscall_wrapper.h @@ -48,12 +48,13 @@ * To keep the naming coherent, re-define SYSCALL_DEFINE0 to create an alias * named __ia32_sys_*() */ -#define SYSCALL_DEFINE0(sname) \ - SYSCALL_METADATA(_##sname, 0); \ - asmlinkage long __x64_sys_##sname(void); \ - ALLOW_ERROR_INJECTION(__x64_sys_##sname, ERRNO); \ - SYSCALL_ALIAS(__ia32_sys_##sname, __x64_sys_##sname); \ - asmlinkage long __x64_sys_##sname(void) + +#define SYSCALL_DEFINE0(sname) \ + SYSCALL_METADATA(_##sname, 0); \ + asmlinkage long __x64_sys_##sname(const struct pt_regs *__unused);\ + ALLOW_ERROR_INJECTION(__x64_sys_##sname, ERRNO); \ + SYSCALL_ALIAS(__ia32_sys_##sname, __x64_sys_##sname); \ + asmlinkage long __x64_sys_##sname(const struct pt_regs *__unused) #define COND_SYSCALL(name) \ cond_syscall(__x64_sys_##name); \ @@ -181,11 +182,11 @@ * macros to work correctly. */ #ifndef SYSCALL_DEFINE0 -#define SYSCALL_DEFINE0(sname) \ - SYSCALL_METADATA(_##sname, 0); \ - asmlinkage long __x64_sys_##sname(void); \ - ALLOW_ERROR_INJECTION(__x64_sys_##sname, ERRNO); \ - asmlinkage long __x64_sys_##sname(void) +#define SYSCALL_DEFINE0(sname) \ + SYSCALL_METADATA(_##sname, 0); \ + asmlinkage long __x64_sys_##sname(const struct pt_regs *__unused);\ + ALLOW_ERROR_INJECTION(__x64_sys_##sname, ERRNO); \ + asmlinkage long __x64_sys_##sname(const struct pt_regs *__unused) #endif #ifndef COND_SYSCALL diff --git a/arch/x86/kernel/apic/io_apic.c b/arch/x86/kernel/apic/io_apic.c index d6af97fd170a..f0262cb5657a 100644 --- a/arch/x86/kernel/apic/io_apic.c +++ b/arch/x86/kernel/apic/io_apic.c @@ -1727,9 +1727,10 @@ static bool io_apic_level_ack_pending(struct mp_chip_data *data) static inline bool ioapic_irqd_mask(struct irq_data *data) { - /* If we are moving the irq we need to mask it */ + /* If we are moving the IRQ we need to mask it */ if (unlikely(irqd_is_setaffinity_pending(data))) { - mask_ioapic_irq(data); + if (!irqd_irq_masked(data)) + mask_ioapic_irq(data); return true; } return false; @@ -1766,7 +1767,9 @@ static inline void ioapic_irqd_unmask(struct irq_data *data, bool masked) */ if (!io_apic_level_ack_pending(data->chip_data)) irq_move_masked_irq(data); - unmask_ioapic_irq(data); + /* If the IRQ is masked in the core, leave it: */ + if (!irqd_irq_masked(data)) + unmask_ioapic_irq(data); } } #else diff --git a/arch/x86/kernel/cpu/mce/amd.c b/arch/x86/kernel/cpu/mce/amd.c index 6ea7fdc82f3c..259f3f4e2e5f 100644 --- a/arch/x86/kernel/cpu/mce/amd.c +++ b/arch/x86/kernel/cpu/mce/amd.c @@ -266,10 +266,10 @@ static void smca_configure(unsigned int bank, unsigned int cpu) smca_set_misc_banks_map(bank, cpu); /* Return early if this bank was already initialized. */ - if (smca_banks[bank].hwid) + if (smca_banks[bank].hwid && smca_banks[bank].hwid->hwid_mcatype != 0) return; - if (rdmsr_safe_on_cpu(cpu, MSR_AMD64_SMCA_MCx_IPID(bank), &low, &high)) { + if (rdmsr_safe(MSR_AMD64_SMCA_MCx_IPID(bank), &low, &high)) { pr_warn("Failed to read MCA_IPID for bank %d\n", bank); return; } diff --git a/arch/x86/kernel/cpu/mce/core.c b/arch/x86/kernel/cpu/mce/core.c index 743370ee4983..aecb15ba66cd 100644 --- a/arch/x86/kernel/cpu/mce/core.c +++ b/arch/x86/kernel/cpu/mce/core.c @@ -814,8 +814,8 @@ static int mce_no_way_out(struct mce *m, char **msg, unsigned long *validp, if (quirk_no_way_out) quirk_no_way_out(i, m, regs); + m->bank = i; if (mce_severity(m, mca_cfg.tolerant, &tmp, true) >= MCE_PANIC_SEVERITY) { - m->bank = i; mce_read_aux(m, i); *msg = tmp; return 1; diff --git a/arch/x86/kernel/cpu/mce/therm_throt.c b/arch/x86/kernel/cpu/mce/therm_throt.c index 6e2becf547c5..bc441d68d060 100644 --- a/arch/x86/kernel/cpu/mce/therm_throt.c +++ b/arch/x86/kernel/cpu/mce/therm_throt.c @@ -188,7 +188,7 @@ static void therm_throt_process(bool new_event, int event, int level) /* if we just entered the thermal event */ if (new_event) { if (event == THERMAL_THROTTLING_EVENT) - pr_crit("CPU%d: %s temperature above threshold, cpu clock throttled (total events = %lu)\n", + pr_warn("CPU%d: %s temperature above threshold, cpu clock throttled (total events = %lu)\n", this_cpu, level == CORE_LEVEL ? "Core" : "Package", state->count); diff --git a/arch/x86/kernel/early-quirks.c b/arch/x86/kernel/early-quirks.c index 4cba91ec8049..606711f5ebf8 100644 --- a/arch/x86/kernel/early-quirks.c +++ b/arch/x86/kernel/early-quirks.c @@ -710,6 +710,8 @@ static struct chipset early_qrk[] __initdata = { */ { PCI_VENDOR_ID_INTEL, 0x0f00, PCI_CLASS_BRIDGE_HOST, PCI_ANY_ID, 0, force_disable_hpet}, + { PCI_VENDOR_ID_INTEL, 0x3e20, + PCI_CLASS_BRIDGE_HOST, PCI_ANY_ID, 0, force_disable_hpet}, { PCI_VENDOR_ID_INTEL, 0x3ec4, PCI_CLASS_BRIDGE_HOST, PCI_ANY_ID, 0, force_disable_hpet}, { PCI_VENDOR_ID_BROADCOM, 0x4331, diff --git a/arch/x86/kvm/cpuid.c b/arch/x86/kvm/cpuid.c index 53dbcca9af09..b1d5a8c94a57 100644 --- a/arch/x86/kvm/cpuid.c +++ b/arch/x86/kvm/cpuid.c @@ -402,7 +402,8 @@ static inline void do_cpuid_7_mask(struct kvm_cpuid_entry2 *entry, int index) entry->edx |= F(SPEC_CTRL); if (boot_cpu_has(X86_FEATURE_STIBP)) entry->edx |= F(INTEL_STIBP); - if (boot_cpu_has(X86_FEATURE_SSBD)) + if (boot_cpu_has(X86_FEATURE_SPEC_CTRL_SSBD) || + boot_cpu_has(X86_FEATURE_AMD_SSBD)) entry->edx |= F(SPEC_CTRL_SSBD); /* * We emulate ARCH_CAPABILITIES in software even @@ -759,7 +760,8 @@ static inline int __do_cpuid_func(struct kvm_cpuid_entry2 *entry, u32 function, entry->ebx |= F(AMD_IBRS); if (boot_cpu_has(X86_FEATURE_STIBP)) entry->ebx |= F(AMD_STIBP); - if (boot_cpu_has(X86_FEATURE_SSBD)) + if (boot_cpu_has(X86_FEATURE_SPEC_CTRL_SSBD) || + boot_cpu_has(X86_FEATURE_AMD_SSBD)) entry->ebx |= F(AMD_SSBD); if (!boot_cpu_has_bug(X86_BUG_SPEC_STORE_BYPASS)) entry->ebx |= F(AMD_SSB_NO); diff --git a/arch/x86/lib/x86-opcode-map.txt b/arch/x86/lib/x86-opcode-map.txt index e0b85930dd77..0a0e9112f284 100644 --- a/arch/x86/lib/x86-opcode-map.txt +++ b/arch/x86/lib/x86-opcode-map.txt @@ -333,7 +333,7 @@ AVXcode: 1 06: CLTS 07: SYSRET (o64) 08: INVD -09: WBINVD +09: WBINVD | WBNOINVD (F3) 0a: 0b: UD2 (1B) 0c: @@ -364,7 +364,7 @@ AVXcode: 1 # a ModR/M byte. 1a: BNDCL Gv,Ev (F3) | BNDCU Gv,Ev (F2) | BNDMOV Gv,Ev (66) | BNDLDX Gv,Ev 1b: BNDCN Gv,Ev (F2) | BNDMOV Ev,Gv (66) | BNDMK Gv,Ev (F3) | BNDSTX Ev,Gv -1c: +1c: Grp20 (1A),(1C) 1d: 1e: 1f: NOP Ev @@ -792,6 +792,8 @@ f3: Grp17 (1A) f5: BZHI Gy,Ey,By (v) | PEXT Gy,By,Ey (F3),(v) | PDEP Gy,By,Ey (F2),(v) f6: ADCX Gy,Ey (66) | ADOX Gy,Ey (F3) | MULX By,Gy,rDX,Ey (F2),(v) f7: BEXTR Gy,Ey,By (v) | SHLX Gy,Ey,By (66),(v) | SARX Gy,Ey,By (F3),(v) | SHRX Gy,Ey,By (F2),(v) +f8: MOVDIR64B Gv,Mdqq (66) | ENQCMD Gv,Mdqq (F2) | ENQCMDS Gv,Mdqq (F3) +f9: MOVDIRI My,Gy EndTable Table: 3-byte opcode 2 (0x0f 0x3a) @@ -943,9 +945,9 @@ GrpTable: Grp6 EndTable GrpTable: Grp7 -0: SGDT Ms | VMCALL (001),(11B) | VMLAUNCH (010),(11B) | VMRESUME (011),(11B) | VMXOFF (100),(11B) -1: SIDT Ms | MONITOR (000),(11B) | MWAIT (001),(11B) | CLAC (010),(11B) | STAC (011),(11B) -2: LGDT Ms | XGETBV (000),(11B) | XSETBV (001),(11B) | VMFUNC (100),(11B) | XEND (101)(11B) | XTEST (110)(11B) +0: SGDT Ms | VMCALL (001),(11B) | VMLAUNCH (010),(11B) | VMRESUME (011),(11B) | VMXOFF (100),(11B) | PCONFIG (101),(11B) | ENCLV (000),(11B) +1: SIDT Ms | MONITOR (000),(11B) | MWAIT (001),(11B) | CLAC (010),(11B) | STAC (011),(11B) | ENCLS (111),(11B) +2: LGDT Ms | XGETBV (000),(11B) | XSETBV (001),(11B) | VMFUNC (100),(11B) | XEND (101)(11B) | XTEST (110)(11B) | ENCLU (111),(11B) 3: LIDT Ms 4: SMSW Mw/Rv 5: rdpkru (110),(11B) | wrpkru (111),(11B) @@ -1020,7 +1022,7 @@ GrpTable: Grp15 3: vstmxcsr Md (v1) | WRGSBASE Ry (F3),(11B) 4: XSAVE | ptwrite Ey (F3),(11B) 5: XRSTOR | lfence (11B) -6: XSAVEOPT | clwb (66) | mfence (11B) +6: XSAVEOPT | clwb (66) | mfence (11B) | TPAUSE Rd (66),(11B) | UMONITOR Rv (F3),(11B) | UMWAIT Rd (F2),(11B) 7: clflush | clflushopt (66) | sfence (11B) EndTable @@ -1051,6 +1053,10 @@ GrpTable: Grp19 6: vscatterpf1qps/d Wx (66),(ev) EndTable +GrpTable: Grp20 +0: cldemote Mb +EndTable + # AMD's Prefetch Group GrpTable: GrpP 0: PREFETCH diff --git a/arch/x86/math-emu/fpu_system.h b/arch/x86/math-emu/fpu_system.h index f98a0c956764..9b41391867dc 100644 --- a/arch/x86/math-emu/fpu_system.h +++ b/arch/x86/math-emu/fpu_system.h @@ -107,6 +107,8 @@ static inline bool seg_writable(struct desc_struct *d) #define FPU_access_ok(y,z) if ( !access_ok(y,z) ) \ math_abort(FPU_info,SIGSEGV) #define FPU_abort math_abort(FPU_info, SIGSEGV) +#define FPU_copy_from_user(to, from, n) \ + do { if (copy_from_user(to, from, n)) FPU_abort; } while (0) #undef FPU_IGNORE_CODE_SEGV #ifdef FPU_IGNORE_CODE_SEGV @@ -122,7 +124,7 @@ static inline bool seg_writable(struct desc_struct *d) #define FPU_code_access_ok(z) FPU_access_ok((void __user *)FPU_EIP,z) #endif -#define FPU_get_user(x,y) get_user((x),(y)) -#define FPU_put_user(x,y) put_user((x),(y)) +#define FPU_get_user(x,y) do { if (get_user((x),(y))) FPU_abort; } while (0) +#define FPU_put_user(x,y) do { if (put_user((x),(y))) FPU_abort; } while (0) #endif diff --git a/arch/x86/math-emu/reg_ld_str.c b/arch/x86/math-emu/reg_ld_str.c index f3779743d15e..fe6246ff9887 100644 --- a/arch/x86/math-emu/reg_ld_str.c +++ b/arch/x86/math-emu/reg_ld_str.c @@ -85,7 +85,7 @@ int FPU_load_extended(long double __user *s, int stnr) RE_ENTRANT_CHECK_OFF; FPU_access_ok(s, 10); - __copy_from_user(sti_ptr, s, 10); + FPU_copy_from_user(sti_ptr, s, 10); RE_ENTRANT_CHECK_ON; return FPU_tagof(sti_ptr); @@ -1126,9 +1126,9 @@ void frstor(fpu_addr_modes addr_modes, u_char __user *data_address) /* Copy all registers in stack order. */ RE_ENTRANT_CHECK_OFF; FPU_access_ok(s, 80); - __copy_from_user(register_base + offset, s, other); + FPU_copy_from_user(register_base + offset, s, other); if (offset) - __copy_from_user(register_base, s + other, offset); + FPU_copy_from_user(register_base, s + other, offset); RE_ENTRANT_CHECK_ON; for (i = 0; i < 8; i++) { diff --git a/arch/x86/mm/pgtable.c b/arch/x86/mm/pgtable.c index 3e4b9035bb9a..7bd2c3a52297 100644 --- a/arch/x86/mm/pgtable.c +++ b/arch/x86/mm/pgtable.c @@ -643,8 +643,8 @@ void __native_set_fixmap(enum fixed_addresses idx, pte_t pte) fixmaps_set++; } -void native_set_fixmap(enum fixed_addresses idx, phys_addr_t phys, - pgprot_t flags) +void native_set_fixmap(unsigned /* enum fixed_addresses */ idx, + phys_addr_t phys, pgprot_t flags) { /* Sanitize 'prot' against any unsupported bits: */ pgprot_val(flags) &= __default_kernel_pte_mask; diff --git a/arch/xtensa/include/asm/syscall.h b/arch/xtensa/include/asm/syscall.h index 359ab40e935a..c90fb944f9d8 100644 --- a/arch/xtensa/include/asm/syscall.h +++ b/arch/xtensa/include/asm/syscall.h @@ -51,7 +51,7 @@ static inline void syscall_set_return_value(struct task_struct *task, struct pt_regs *regs, int error, long val) { - regs->areg[0] = (long) error ? error : val; + regs->areg[2] = (long) error ? error : val; } #define SYSCALL_MAX_ARGS 6 diff --git a/arch/xtensa/mm/kasan_init.c b/arch/xtensa/mm/kasan_init.c index af7152560bc3..b771459778fe 100644 --- a/arch/xtensa/mm/kasan_init.c +++ b/arch/xtensa/mm/kasan_init.c @@ -56,7 +56,9 @@ static void __init populate(void *start, void *end) for (k = 0; k < PTRS_PER_PTE; ++k, ++j) { phys_addr_t phys = - memblock_phys_alloc(PAGE_SIZE, PAGE_SIZE); + memblock_phys_alloc_range(PAGE_SIZE, PAGE_SIZE, + 0, + MEMBLOCK_ALLOC_ANYWHERE); if (!phys) panic("Failed to allocate page table page\n"); diff --git a/arch/xtensa/mm/tlb.c b/arch/xtensa/mm/tlb.c index 59153d0aa890..b43f03620843 100644 --- a/arch/xtensa/mm/tlb.c +++ b/arch/xtensa/mm/tlb.c @@ -216,6 +216,8 @@ static int check_tlb_entry(unsigned w, unsigned e, bool dtlb) unsigned tlbidx = w | (e << PAGE_SHIFT); unsigned r0 = dtlb ? read_dtlb_virtual(tlbidx) : read_itlb_virtual(tlbidx); + unsigned r1 = dtlb ? + read_dtlb_translation(tlbidx) : read_itlb_translation(tlbidx); unsigned vpn = (r0 & PAGE_MASK) | (e << PAGE_SHIFT); unsigned pte = get_pte_for_vaddr(vpn); unsigned mm_asid = (get_rasid_register() >> 8) & ASID_MASK; @@ -231,8 +233,6 @@ static int check_tlb_entry(unsigned w, unsigned e, bool dtlb) } if (tlb_asid == mm_asid) { - unsigned r1 = dtlb ? read_dtlb_translation(tlbidx) : - read_itlb_translation(tlbidx); if ((pte ^ r1) & PAGE_MASK) { pr_err("%cTLB: way: %u, entry: %u, mapping: %08x->%08x, PTE: %08x\n", dtlb ? 'D' : 'I', w, e, r0, r1, pte); diff --git a/block/bio.c b/block/bio.c index 07b9ead615e2..13eaf39b3499 100644 --- a/block/bio.c +++ b/block/bio.c @@ -753,10 +753,12 @@ bool __bio_try_merge_page(struct bio *bio, struct page *page, if (WARN_ON_ONCE(bio_flagged(bio, BIO_CLONED))) return false; - if (bio->bi_vcnt > 0 && !bio_full(bio, len)) { + if (bio->bi_vcnt > 0) { struct bio_vec *bv = &bio->bi_io_vec[bio->bi_vcnt - 1]; if (page_is_mergeable(bv, page, len, off, same_page)) { + if (bio->bi_iter.bi_size > UINT_MAX - len) + return false; bv->bv_len += len; bio->bi_iter.bi_size += len; return true; diff --git a/block/blk-iocost.c b/block/blk-iocost.c index e01267f99183..27ca68621137 100644 --- a/block/blk-iocost.c +++ b/block/blk-iocost.c @@ -1212,7 +1212,7 @@ static enum hrtimer_restart iocg_waitq_timer_fn(struct hrtimer *timer) return HRTIMER_NORESTART; } -static void iocg_kick_delay(struct ioc_gq *iocg, struct ioc_now *now, u64 cost) +static bool iocg_kick_delay(struct ioc_gq *iocg, struct ioc_now *now, u64 cost) { struct ioc *ioc = iocg->ioc; struct blkcg_gq *blkg = iocg_to_blkg(iocg); @@ -1229,11 +1229,11 @@ static void iocg_kick_delay(struct ioc_gq *iocg, struct ioc_now *now, u64 cost) /* clear or maintain depending on the overage */ if (time_before_eq64(vtime, now->vnow)) { blkcg_clear_delay(blkg); - return; + return false; } if (!atomic_read(&blkg->use_delay) && time_before_eq64(vtime, now->vnow + vmargin)) - return; + return false; /* use delay */ if (cost) { @@ -1250,10 +1250,11 @@ static void iocg_kick_delay(struct ioc_gq *iocg, struct ioc_now *now, u64 cost) oexpires = ktime_to_ns(hrtimer_get_softexpires(&iocg->delay_timer)); if (hrtimer_is_queued(&iocg->delay_timer) && abs(oexpires - expires) <= margin_ns / 4) - return; + return true; hrtimer_start_range_ns(&iocg->delay_timer, ns_to_ktime(expires), margin_ns / 4, HRTIMER_MODE_ABS); + return true; } static enum hrtimer_restart iocg_delay_timer_fn(struct hrtimer *timer) @@ -1739,7 +1740,9 @@ static void ioc_rqos_throttle(struct rq_qos *rqos, struct bio *bio) */ if (bio_issue_as_root_blkg(bio) || fatal_signal_pending(current)) { atomic64_add(abs_cost, &iocg->abs_vdebt); - iocg_kick_delay(iocg, &now, cost); + if (iocg_kick_delay(iocg, &now, cost)) + blkcg_schedule_throttle(rqos->q, + (bio->bi_opf & REQ_SWAP) == REQ_SWAP); return; } diff --git a/crypto/Kconfig b/crypto/Kconfig index 9e524044d312..29472fb795f3 100644 --- a/crypto/Kconfig +++ b/crypto/Kconfig @@ -309,6 +309,7 @@ config CRYPTO_AEGIS128 config CRYPTO_AEGIS128_SIMD bool "Support SIMD acceleration for AEGIS-128" depends on CRYPTO_AEGIS128 && ((ARM || ARM64) && KERNEL_MODE_NEON) + depends on !ARM || CC_IS_CLANG || GCC_VERSION >= 40800 default y config CRYPTO_AEGIS128_AESNI_SSE2 diff --git a/crypto/Makefile b/crypto/Makefile index fcb1ee679782..aa740c8492b9 100644 --- a/crypto/Makefile +++ b/crypto/Makefile @@ -93,7 +93,7 @@ obj-$(CONFIG_CRYPTO_AEGIS128) += aegis128.o aegis128-y := aegis128-core.o ifeq ($(ARCH),arm) -CFLAGS_aegis128-neon-inner.o += -ffreestanding -march=armv7-a -mfloat-abi=softfp +CFLAGS_aegis128-neon-inner.o += -ffreestanding -march=armv8-a -mfloat-abi=softfp CFLAGS_aegis128-neon-inner.o += -mfpu=crypto-neon-fp-armv8 aegis128-$(CONFIG_CRYPTO_AEGIS128_SIMD) += aegis128-neon.o aegis128-neon-inner.o endif diff --git a/crypto/asymmetric_keys/asym_tpm.c b/crypto/asymmetric_keys/asym_tpm.c index 76d2ce3a1b5b..5154e280ada2 100644 --- a/crypto/asymmetric_keys/asym_tpm.c +++ b/crypto/asymmetric_keys/asym_tpm.c @@ -486,6 +486,7 @@ static int tpm_key_encrypt(struct tpm_key *tk, if (ret < 0) goto error_free_tfm; + ret = -ENOMEM; req = akcipher_request_alloc(tfm, GFP_KERNEL); if (!req) goto error_free_tfm; diff --git a/crypto/asymmetric_keys/public_key.c b/crypto/asymmetric_keys/public_key.c index 364b9df9d631..d7f43d4ea925 100644 --- a/crypto/asymmetric_keys/public_key.c +++ b/crypto/asymmetric_keys/public_key.c @@ -184,6 +184,7 @@ static int software_key_eds_op(struct kernel_pkey_params *params, if (IS_ERR(tfm)) return PTR_ERR(tfm); + ret = -ENOMEM; req = akcipher_request_alloc(tfm, GFP_KERNEL); if (!req) goto error_free_tfm; diff --git a/drivers/acpi/button.c b/drivers/acpi/button.c index 4a2cde2c536a..ce93a355bd1c 100644 --- a/drivers/acpi/button.c +++ b/drivers/acpi/button.c @@ -78,6 +78,17 @@ static const struct dmi_system_id lid_blacklst[] = { DMI_MATCH(DMI_BIOS_VERSION, "BYT70A.YNCHENG.WIN.007"), }, }, + { + /* + * Medion Akoya E2215T, notification of the LID device only + * happens on close, not on open and _LID always returns closed. + */ + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "MEDION"), + DMI_MATCH(DMI_PRODUCT_NAME, "E2215T MD60198"), + }, + .driver_data = (void *)(long)ACPI_BUTTON_LID_INIT_OPEN, + }, {} }; diff --git a/drivers/ata/libata-core.c b/drivers/ata/libata-core.c index 28c492be0a57..74c9b3032d46 100644 --- a/drivers/ata/libata-core.c +++ b/drivers/ata/libata-core.c @@ -6708,6 +6708,9 @@ void ata_host_detach(struct ata_host *host) { int i; + /* Ensure ata_port probe has completed */ + async_synchronize_full(); + for (i = 0; i < host->n_ports; i++) ata_port_detach(host->ports[i]); diff --git a/drivers/base/firmware_loader/builtin/Makefile b/drivers/base/firmware_loader/builtin/Makefile index 37e5ae387400..4a66888e7253 100644 --- a/drivers/base/firmware_loader/builtin/Makefile +++ b/drivers/base/firmware_loader/builtin/Makefile @@ -8,7 +8,8 @@ fwdir := $(addprefix $(srctree)/,$(filter-out /%,$(fwdir)))$(filter /%,$(fwdir)) obj-y := $(addsuffix .gen.o, $(subst $(quote),,$(CONFIG_EXTRA_FIRMWARE))) FWNAME = $(patsubst $(obj)/%.gen.S,%,$@) -FWSTR = $(subst /,_,$(subst .,_,$(subst -,_,$(FWNAME)))) +comma := , +FWSTR = $(subst $(comma),_,$(subst /,_,$(subst .,_,$(subst -,_,$(FWNAME))))) ASM_WORD = $(if $(CONFIG_64BIT),.quad,.long) ASM_ALIGN = $(if $(CONFIG_64BIT),3,2) PROGBITS = $(if $(CONFIG_ARM),%,@)progbits diff --git a/drivers/block/loop.c b/drivers/block/loop.c index f6f77eaa7217..ef6e251857c8 100644 --- a/drivers/block/loop.c +++ b/drivers/block/loop.c @@ -417,18 +417,20 @@ out_free_page: return ret; } -static int lo_discard(struct loop_device *lo, struct request *rq, loff_t pos) +static int lo_fallocate(struct loop_device *lo, struct request *rq, loff_t pos, + int mode) { /* - * We use punch hole to reclaim the free space used by the - * image a.k.a. discard. However we do not support discard if - * encryption is enabled, because it may give an attacker - * useful information. + * We use fallocate to manipulate the space mappings used by the image + * a.k.a. discard/zerorange. However we do not support this if + * encryption is enabled, because it may give an attacker useful + * information. */ struct file *file = lo->lo_backing_file; - int mode = FALLOC_FL_PUNCH_HOLE | FALLOC_FL_KEEP_SIZE; int ret; + mode |= FALLOC_FL_KEEP_SIZE; + if ((!file->f_op->fallocate) || lo->lo_encrypt_key_size) { ret = -EOPNOTSUPP; goto out; @@ -596,9 +598,17 @@ static int do_req_filebacked(struct loop_device *lo, struct request *rq) switch (req_op(rq)) { case REQ_OP_FLUSH: return lo_req_flush(lo, rq); - case REQ_OP_DISCARD: case REQ_OP_WRITE_ZEROES: - return lo_discard(lo, rq, pos); + /* + * If the caller doesn't want deallocation, call zeroout to + * write zeroes the range. Otherwise, punch them out. + */ + return lo_fallocate(lo, rq, pos, + (rq->cmd_flags & REQ_NOUNMAP) ? + FALLOC_FL_ZERO_RANGE : + FALLOC_FL_PUNCH_HOLE); + case REQ_OP_DISCARD: + return lo_fallocate(lo, rq, pos, FALLOC_FL_PUNCH_HOLE); case REQ_OP_WRITE: if (lo->transfer) return lo_write_transfer(lo, rq, pos); diff --git a/drivers/block/nbd.c b/drivers/block/nbd.c index 57532465fb83..b4607dd96185 100644 --- a/drivers/block/nbd.c +++ b/drivers/block/nbd.c @@ -1296,10 +1296,10 @@ static int nbd_start_device_ioctl(struct nbd_device *nbd, struct block_device *b mutex_unlock(&nbd->config_lock); ret = wait_event_interruptible(config->recv_wq, atomic_read(&config->recv_threads) == 0); - if (ret) { + if (ret) sock_shutdown(nbd); - flush_workqueue(nbd->recv_workq); - } + flush_workqueue(nbd->recv_workq); + mutex_lock(&nbd->config_lock); nbd_bdev_reset(bdev); /* user requested, ignore socket errors */ diff --git a/drivers/bluetooth/btusb.c b/drivers/bluetooth/btusb.c index a9c35ebb30f8..23e606aaaea4 100644 --- a/drivers/bluetooth/btusb.c +++ b/drivers/bluetooth/btusb.c @@ -3807,8 +3807,8 @@ static int btusb_probe(struct usb_interface *intf, btusb_check_needs_reset_resume(intf); } -#ifdef CONFIG_BT_HCIBTUSB_RTL - if (id->driver_info & BTUSB_REALTEK) { + if (IS_ENABLED(CONFIG_BT_HCIBTUSB_RTL) && + (id->driver_info & BTUSB_REALTEK)) { hdev->setup = btrtl_setup_realtek; hdev->shutdown = btrtl_shutdown_realtek; hdev->cmd_timeout = btusb_rtl_cmd_timeout; @@ -3819,7 +3819,6 @@ static int btusb_probe(struct usb_interface *intf, */ set_bit(BTUSB_WAKEUP_DISABLE, &data->flags); } -#endif if (id->driver_info & BTUSB_AMP) { /* AMP controllers do not support SCO packets */ diff --git a/drivers/char/hw_random/omap3-rom-rng.c b/drivers/char/hw_random/omap3-rom-rng.c index 38b719017186..648e39ce6bd9 100644 --- a/drivers/char/hw_random/omap3-rom-rng.c +++ b/drivers/char/hw_random/omap3-rom-rng.c @@ -121,7 +121,8 @@ static int omap3_rom_rng_remove(struct platform_device *pdev) { cancel_delayed_work_sync(&idle_work); hwrng_unregister(&omap3_rom_rng_ops); - clk_disable_unprepare(rng_clk); + if (!rng_idle) + clk_disable_unprepare(rng_clk); return 0; } diff --git a/drivers/char/ipmi/ipmi_msghandler.c b/drivers/char/ipmi/ipmi_msghandler.c index 2aab80e19ae0..3c8a559506e8 100644 --- a/drivers/char/ipmi/ipmi_msghandler.c +++ b/drivers/char/ipmi/ipmi_msghandler.c @@ -448,6 +448,8 @@ enum ipmi_stat_indexes { #define IPMI_IPMB_NUM_SEQ 64 struct ipmi_smi { + struct module *owner; + /* What interface number are we? */ int intf_num; @@ -1220,6 +1222,11 @@ int ipmi_create_user(unsigned int if_num, if (rv) goto out_kfree; + if (!try_module_get(intf->owner)) { + rv = -ENODEV; + goto out_kfree; + } + /* Note that each existing user holds a refcount to the interface. */ kref_get(&intf->refcount); @@ -1349,6 +1356,7 @@ static void _ipmi_destroy_user(struct ipmi_user *user) } kref_put(&intf->refcount, intf_free); + module_put(intf->owner); } int ipmi_destroy_user(struct ipmi_user *user) @@ -2459,7 +2467,7 @@ static int __get_device_id(struct ipmi_smi *intf, struct bmc_device *bmc) * been recently fetched, this will just use the cached data. Otherwise * it will run a new fetch. * - * Except for the first time this is called (in ipmi_register_smi()), + * Except for the first time this is called (in ipmi_add_smi()), * this will always return good data; */ static int __bmc_get_device_id(struct ipmi_smi *intf, struct bmc_device *bmc, @@ -3377,10 +3385,11 @@ static void redo_bmc_reg(struct work_struct *work) kref_put(&intf->refcount, intf_free); } -int ipmi_register_smi(const struct ipmi_smi_handlers *handlers, - void *send_info, - struct device *si_dev, - unsigned char slave_addr) +int ipmi_add_smi(struct module *owner, + const struct ipmi_smi_handlers *handlers, + void *send_info, + struct device *si_dev, + unsigned char slave_addr) { int i, j; int rv; @@ -3406,7 +3415,7 @@ int ipmi_register_smi(const struct ipmi_smi_handlers *handlers, return rv; } - + intf->owner = owner; intf->bmc = &intf->tmp_bmc; INIT_LIST_HEAD(&intf->bmc->intfs); mutex_init(&intf->bmc->dyn_mutex); @@ -3514,7 +3523,7 @@ int ipmi_register_smi(const struct ipmi_smi_handlers *handlers, return rv; } -EXPORT_SYMBOL(ipmi_register_smi); +EXPORT_SYMBOL(ipmi_add_smi); static void deliver_smi_err_response(struct ipmi_smi *intf, struct ipmi_smi_msg *msg, diff --git a/drivers/char/tpm/tpm-dev-common.c b/drivers/char/tpm/tpm-dev-common.c index 2ec47a69a2a6..b23b0b999232 100644 --- a/drivers/char/tpm/tpm-dev-common.c +++ b/drivers/char/tpm/tpm-dev-common.c @@ -61,6 +61,12 @@ static void tpm_dev_async_work(struct work_struct *work) mutex_lock(&priv->buffer_mutex); priv->command_enqueued = false; + ret = tpm_try_get_ops(priv->chip); + if (ret) { + priv->response_length = ret; + goto out; + } + ret = tpm_dev_transmit(priv->chip, priv->space, priv->data_buffer, sizeof(priv->data_buffer)); tpm_put_ops(priv->chip); @@ -68,6 +74,7 @@ static void tpm_dev_async_work(struct work_struct *work) priv->response_length = ret; mod_timer(&priv->user_read_timer, jiffies + (120 * HZ)); } +out: mutex_unlock(&priv->buffer_mutex); wake_up_interruptible(&priv->async_wait); } @@ -204,6 +211,7 @@ ssize_t tpm_common_write(struct file *file, const char __user *buf, if (file->f_flags & O_NONBLOCK) { priv->command_enqueued = true; queue_work(tpm_dev_wq, &priv->async_work); + tpm_put_ops(priv->chip); mutex_unlock(&priv->buffer_mutex); return size; } diff --git a/drivers/char/tpm/tpm_tis_core.c b/drivers/char/tpm/tpm_tis_core.c index 270f43acbb77..f528fc39ea6b 100644 --- a/drivers/char/tpm/tpm_tis_core.c +++ b/drivers/char/tpm/tpm_tis_core.c @@ -899,13 +899,13 @@ int tpm_tis_core_init(struct device *dev, struct tpm_tis_data *priv, int irq, if (wait_startup(chip, 0) != 0) { rc = -ENODEV; - goto out_err; + goto err_start; } /* Take control of the TPM's interrupt hardware and shut it off */ rc = tpm_tis_read32(priv, TPM_INT_ENABLE(priv->locality), &intmask); if (rc < 0) - goto out_err; + goto err_start; intmask |= TPM_INTF_CMD_READY_INT | TPM_INTF_LOCALITY_CHANGE_INT | TPM_INTF_DATA_AVAIL_INT | TPM_INTF_STS_VALID_INT; @@ -914,21 +914,21 @@ int tpm_tis_core_init(struct device *dev, struct tpm_tis_data *priv, int irq, rc = tpm_chip_start(chip); if (rc) - goto out_err; + goto err_start; + rc = tpm2_probe(chip); - tpm_chip_stop(chip); if (rc) - goto out_err; + goto err_probe; rc = tpm_tis_read32(priv, TPM_DID_VID(0), &vendor); if (rc < 0) - goto out_err; + goto err_probe; priv->manufacturer_id = vendor; rc = tpm_tis_read8(priv, TPM_RID(0), &rid); if (rc < 0) - goto out_err; + goto err_probe; dev_info(dev, "%s TPM (device-id 0x%X, rev-id %d)\n", (chip->flags & TPM_CHIP_FLAG_TPM2) ? "2.0" : "1.2", @@ -937,13 +937,13 @@ int tpm_tis_core_init(struct device *dev, struct tpm_tis_data *priv, int irq, probe = probe_itpm(chip); if (probe < 0) { rc = -ENODEV; - goto out_err; + goto err_probe; } /* Figure out the capabilities */ rc = tpm_tis_read32(priv, TPM_INTF_CAPS(priv->locality), &intfcaps); if (rc < 0) - goto out_err; + goto err_probe; dev_dbg(dev, "TPM interface capabilities (0x%x):\n", intfcaps); @@ -977,10 +977,9 @@ int tpm_tis_core_init(struct device *dev, struct tpm_tis_data *priv, int irq, if (tpm_get_timeouts(chip)) { dev_err(dev, "Could not get TPM timeouts and durations\n"); rc = -ENODEV; - goto out_err; + goto err_probe; } - tpm_chip_start(chip); chip->flags |= TPM_CHIP_FLAG_IRQ; if (irq) { tpm_tis_probe_irq_single(chip, intmask, IRQF_SHARED, @@ -991,18 +990,20 @@ int tpm_tis_core_init(struct device *dev, struct tpm_tis_data *priv, int irq, } else { tpm_tis_probe_irq(chip, intmask); } - tpm_chip_stop(chip); } + tpm_chip_stop(chip); + rc = tpm_chip_register(chip); if (rc) - goto out_err; - - if (chip->ops->clk_enable != NULL) - chip->ops->clk_enable(chip, false); + goto err_start; return 0; -out_err: + +err_probe: + tpm_chip_stop(chip); + +err_start: if ((chip->ops != NULL) && (chip->ops->clk_enable != NULL)) chip->ops->clk_enable(chip, false); diff --git a/drivers/clk/imx/clk-composite-8m.c b/drivers/clk/imx/clk-composite-8m.c index 388bdb94f841..d3486ee79ab5 100644 --- a/drivers/clk/imx/clk-composite-8m.c +++ b/drivers/clk/imx/clk-composite-8m.c @@ -142,6 +142,7 @@ struct clk *imx8m_clk_composite_flags(const char *name, mux->reg = reg; mux->shift = PCG_PCS_SHIFT; mux->mask = PCG_PCS_MASK; + mux->lock = &imx_ccm_lock; div = kzalloc(sizeof(*div), GFP_KERNEL); if (!div) @@ -161,6 +162,7 @@ struct clk *imx8m_clk_composite_flags(const char *name, gate_hw = &gate->hw; gate->reg = reg; gate->bit_idx = PCG_CGC_SHIFT; + gate->lock = &imx_ccm_lock; hw = clk_hw_register_composite(NULL, name, parent_names, num_parents, mux_hw, &clk_mux_ops, div_hw, diff --git a/drivers/clk/imx/clk-imx7ulp.c b/drivers/clk/imx/clk-imx7ulp.c index 2022d9bead91..a0f650150367 100644 --- a/drivers/clk/imx/clk-imx7ulp.c +++ b/drivers/clk/imx/clk-imx7ulp.c @@ -40,6 +40,7 @@ static const struct clk_div_table ulp_div_table[] = { { .val = 5, .div = 16, }, { .val = 6, .div = 32, }, { .val = 7, .div = 64, }, + { /* sentinel */ }, }; static const int pcc2_uart_clk_ids[] __initconst = { diff --git a/drivers/clk/imx/clk-pll14xx.c b/drivers/clk/imx/clk-pll14xx.c index 7a815ec76aa5..d43b4a3c0de8 100644 --- a/drivers/clk/imx/clk-pll14xx.c +++ b/drivers/clk/imx/clk-pll14xx.c @@ -153,7 +153,7 @@ static int clk_pll14xx_wait_lock(struct clk_pll14xx *pll) { u32 val; - return readl_poll_timeout(pll->base, val, val & LOCK_TIMEOUT_US, 0, + return readl_poll_timeout(pll->base, val, val & LOCK_STATUS, 0, LOCK_TIMEOUT_US); } diff --git a/drivers/cpufreq/cpufreq-dt-platdev.c b/drivers/cpufreq/cpufreq-dt-platdev.c index bca8d1f47fd2..3282defe14d4 100644 --- a/drivers/cpufreq/cpufreq-dt-platdev.c +++ b/drivers/cpufreq/cpufreq-dt-platdev.c @@ -180,4 +180,4 @@ create_pdev: -1, data, sizeof(struct cpufreq_dt_platform_data))); } -device_initcall(cpufreq_dt_platdev_init); +core_initcall(cpufreq_dt_platdev_init); diff --git a/drivers/cpufreq/cpufreq.c b/drivers/cpufreq/cpufreq.c index ef9f5595fae0..b2e0a258c8c4 100644 --- a/drivers/cpufreq/cpufreq.c +++ b/drivers/cpufreq/cpufreq.c @@ -2673,6 +2673,13 @@ int cpufreq_register_driver(struct cpufreq_driver *driver_data) if (cpufreq_disabled()) return -ENODEV; + /* + * The cpufreq core depends heavily on the availability of device + * structure, make sure they are available before proceeding further. + */ + if (!get_cpu_device(0)) + return -EPROBE_DEFER; + if (!driver_data || !driver_data->verify || !driver_data->init || !(driver_data->setpolicy || driver_data->target_index || driver_data->target) || diff --git a/drivers/cpufreq/cpufreq_conservative.c b/drivers/cpufreq/cpufreq_conservative.c index b66e81c06a57..737ff3b9c2c0 100644 --- a/drivers/cpufreq/cpufreq_conservative.c +++ b/drivers/cpufreq/cpufreq_conservative.c @@ -346,7 +346,7 @@ struct cpufreq_governor *cpufreq_default_governor(void) return CPU_FREQ_GOV_CONSERVATIVE; } -fs_initcall(cpufreq_gov_dbs_init); +core_initcall(cpufreq_gov_dbs_init); #else module_init(cpufreq_gov_dbs_init); #endif diff --git a/drivers/cpufreq/cpufreq_ondemand.c b/drivers/cpufreq/cpufreq_ondemand.c index dced033875bf..82a4d37ddecb 100644 --- a/drivers/cpufreq/cpufreq_ondemand.c +++ b/drivers/cpufreq/cpufreq_ondemand.c @@ -483,7 +483,7 @@ struct cpufreq_governor *cpufreq_default_governor(void) return CPU_FREQ_GOV_ONDEMAND; } -fs_initcall(cpufreq_gov_dbs_init); +core_initcall(cpufreq_gov_dbs_init); #else module_init(cpufreq_gov_dbs_init); #endif diff --git a/drivers/cpufreq/cpufreq_performance.c b/drivers/cpufreq/cpufreq_performance.c index aaa04dfcacd9..def9afe0f5b8 100644 --- a/drivers/cpufreq/cpufreq_performance.c +++ b/drivers/cpufreq/cpufreq_performance.c @@ -50,5 +50,5 @@ MODULE_AUTHOR("Dominik Brodowski "); MODULE_DESCRIPTION("CPUfreq policy governor 'performance'"); MODULE_LICENSE("GPL"); -fs_initcall(cpufreq_gov_performance_init); +core_initcall(cpufreq_gov_performance_init); module_exit(cpufreq_gov_performance_exit); diff --git a/drivers/cpufreq/cpufreq_powersave.c b/drivers/cpufreq/cpufreq_powersave.c index c143dc237d87..1ae66019eb83 100644 --- a/drivers/cpufreq/cpufreq_powersave.c +++ b/drivers/cpufreq/cpufreq_powersave.c @@ -43,7 +43,7 @@ struct cpufreq_governor *cpufreq_default_governor(void) return &cpufreq_gov_powersave; } -fs_initcall(cpufreq_gov_powersave_init); +core_initcall(cpufreq_gov_powersave_init); #else module_init(cpufreq_gov_powersave_init); #endif diff --git a/drivers/cpufreq/cpufreq_userspace.c b/drivers/cpufreq/cpufreq_userspace.c index cbd81c58cb8f..b43e7cd502c5 100644 --- a/drivers/cpufreq/cpufreq_userspace.c +++ b/drivers/cpufreq/cpufreq_userspace.c @@ -147,7 +147,7 @@ struct cpufreq_governor *cpufreq_default_governor(void) return &cpufreq_gov_userspace; } -fs_initcall(cpufreq_gov_userspace_init); +core_initcall(cpufreq_gov_userspace_init); #else module_init(cpufreq_gov_userspace_init); #endif diff --git a/drivers/cpufreq/sun50i-cpufreq-nvmem.c b/drivers/cpufreq/sun50i-cpufreq-nvmem.c index eca32e443716..9907a165135b 100644 --- a/drivers/cpufreq/sun50i-cpufreq-nvmem.c +++ b/drivers/cpufreq/sun50i-cpufreq-nvmem.c @@ -25,7 +25,7 @@ static struct platform_device *cpufreq_dt_pdev, *sun50i_cpufreq_pdev; /** - * sun50i_cpufreq_get_efuse() - Parse and return efuse value present on SoC + * sun50i_cpufreq_get_efuse() - Determine speed grade from efuse value * @versions: Set to the value parsed from efuse * * Returns 0 if success. @@ -69,21 +69,16 @@ static int sun50i_cpufreq_get_efuse(u32 *versions) return PTR_ERR(speedbin); efuse_value = (*speedbin >> NVMEM_SHIFT) & NVMEM_MASK; - switch (efuse_value) { - case 0b0001: - *versions = 1; - break; - case 0b0011: - *versions = 2; - break; - default: - /* - * For other situations, we treat it as bin0. - * This vf table can be run for any good cpu. - */ + + /* + * We treat unexpected efuse values as if the SoC was from + * the slowest bin. Expected efuse values are 1-3, slowest + * to fastest. + */ + if (efuse_value >= 1 && efuse_value <= 3) + *versions = efuse_value - 1; + else *versions = 0; - break; - } kfree(speedbin); return 0; diff --git a/drivers/crypto/atmel-aes.c b/drivers/crypto/atmel-aes.c index 00920a2b95ce..db99cee1991c 100644 --- a/drivers/crypto/atmel-aes.c +++ b/drivers/crypto/atmel-aes.c @@ -145,7 +145,7 @@ struct atmel_aes_xts_ctx { u32 key2[AES_KEYSIZE_256 / sizeof(u32)]; }; -#ifdef CONFIG_CRYPTO_DEV_ATMEL_AUTHENC +#if IS_ENABLED(CONFIG_CRYPTO_DEV_ATMEL_AUTHENC) struct atmel_aes_authenc_ctx { struct atmel_aes_base_ctx base; struct atmel_sha_authenc_ctx *auth; @@ -157,7 +157,7 @@ struct atmel_aes_reqctx { u32 lastc[AES_BLOCK_SIZE / sizeof(u32)]; }; -#ifdef CONFIG_CRYPTO_DEV_ATMEL_AUTHENC +#if IS_ENABLED(CONFIG_CRYPTO_DEV_ATMEL_AUTHENC) struct atmel_aes_authenc_reqctx { struct atmel_aes_reqctx base; @@ -486,7 +486,7 @@ static inline bool atmel_aes_is_encrypt(const struct atmel_aes_dev *dd) return (dd->flags & AES_FLAGS_ENCRYPT); } -#ifdef CONFIG_CRYPTO_DEV_ATMEL_AUTHENC +#if IS_ENABLED(CONFIG_CRYPTO_DEV_ATMEL_AUTHENC) static void atmel_aes_authenc_complete(struct atmel_aes_dev *dd, int err); #endif @@ -515,7 +515,7 @@ static void atmel_aes_set_iv_as_last_ciphertext_block(struct atmel_aes_dev *dd) static inline int atmel_aes_complete(struct atmel_aes_dev *dd, int err) { -#ifdef CONFIG_CRYPTO_DEV_ATMEL_AUTHENC +#if IS_ENABLED(CONFIG_CRYPTO_DEV_ATMEL_AUTHENC) if (dd->ctx->is_aead) atmel_aes_authenc_complete(dd, err); #endif @@ -1980,7 +1980,7 @@ static struct crypto_alg aes_xts_alg = { } }; -#ifdef CONFIG_CRYPTO_DEV_ATMEL_AUTHENC +#if IS_ENABLED(CONFIG_CRYPTO_DEV_ATMEL_AUTHENC) /* authenc aead functions */ static int atmel_aes_authenc_start(struct atmel_aes_dev *dd); @@ -2467,7 +2467,7 @@ static void atmel_aes_unregister_algs(struct atmel_aes_dev *dd) { int i; -#ifdef CONFIG_CRYPTO_DEV_ATMEL_AUTHENC +#if IS_ENABLED(CONFIG_CRYPTO_DEV_ATMEL_AUTHENC) if (dd->caps.has_authenc) for (i = 0; i < ARRAY_SIZE(aes_authenc_algs); i++) crypto_unregister_aead(&aes_authenc_algs[i]); @@ -2514,7 +2514,7 @@ static int atmel_aes_register_algs(struct atmel_aes_dev *dd) goto err_aes_xts_alg; } -#ifdef CONFIG_CRYPTO_DEV_ATMEL_AUTHENC +#if IS_ENABLED(CONFIG_CRYPTO_DEV_ATMEL_AUTHENC) if (dd->caps.has_authenc) { for (i = 0; i < ARRAY_SIZE(aes_authenc_algs); i++) { err = crypto_register_aead(&aes_authenc_algs[i]); @@ -2526,7 +2526,7 @@ static int atmel_aes_register_algs(struct atmel_aes_dev *dd) return 0; -#ifdef CONFIG_CRYPTO_DEV_ATMEL_AUTHENC +#if IS_ENABLED(CONFIG_CRYPTO_DEV_ATMEL_AUTHENC) /* i = ARRAY_SIZE(aes_authenc_algs); */ err_aes_authenc_alg: for (j = 0; j < i; j++) @@ -2716,7 +2716,7 @@ static int atmel_aes_probe(struct platform_device *pdev) atmel_aes_get_cap(aes_dd); -#ifdef CONFIG_CRYPTO_DEV_ATMEL_AUTHENC +#if IS_ENABLED(CONFIG_CRYPTO_DEV_ATMEL_AUTHENC) if (aes_dd->caps.has_authenc && !atmel_sha_authenc_is_ready()) { err = -EPROBE_DEFER; goto iclk_unprepare; diff --git a/drivers/crypto/atmel-authenc.h b/drivers/crypto/atmel-authenc.h index cbd37a2edada..d6de810df44f 100644 --- a/drivers/crypto/atmel-authenc.h +++ b/drivers/crypto/atmel-authenc.h @@ -12,7 +12,7 @@ #ifndef __ATMEL_AUTHENC_H__ #define __ATMEL_AUTHENC_H__ -#ifdef CONFIG_CRYPTO_DEV_ATMEL_AUTHENC +#if IS_ENABLED(CONFIG_CRYPTO_DEV_ATMEL_AUTHENC) #include #include diff --git a/drivers/crypto/atmel-sha.c b/drivers/crypto/atmel-sha.c index 84cb8748a795..d32626458e67 100644 --- a/drivers/crypto/atmel-sha.c +++ b/drivers/crypto/atmel-sha.c @@ -2212,7 +2212,7 @@ static struct ahash_alg sha_hmac_algs[] = { }, }; -#ifdef CONFIG_CRYPTO_DEV_ATMEL_AUTHENC +#if IS_ENABLED(CONFIG_CRYPTO_DEV_ATMEL_AUTHENC) /* authenc functions */ static int atmel_sha_authenc_init2(struct atmel_sha_dev *dd); diff --git a/drivers/crypto/inside-secure/safexcel.c b/drivers/crypto/inside-secure/safexcel.c index 294debd435b6..991a4425f006 100644 --- a/drivers/crypto/inside-secure/safexcel.c +++ b/drivers/crypto/inside-secure/safexcel.c @@ -1120,6 +1120,8 @@ static int safexcel_request_ring_irq(void *pdev, int irqid, irq_name, irq); return irq; } + } else { + return -ENXIO; } ret = devm_request_threaded_irq(dev, irq, handler, diff --git a/drivers/crypto/sunxi-ss/sun4i-ss-cipher.c b/drivers/crypto/sunxi-ss/sun4i-ss-cipher.c index 6536fd4bee65..7e5e092a23b3 100644 --- a/drivers/crypto/sunxi-ss/sun4i-ss-cipher.c +++ b/drivers/crypto/sunxi-ss/sun4i-ss-cipher.c @@ -72,7 +72,8 @@ static int noinline_for_stack sun4i_ss_opti_poll(struct skcipher_request *areq) oi = 0; oo = 0; do { - todo = min3(rx_cnt, ileft, (mi.length - oi) / 4); + todo = min(rx_cnt, ileft); + todo = min_t(size_t, todo, (mi.length - oi) / 4); if (todo) { ileft -= todo; writesl(ss->base + SS_RXFIFO, mi.addr + oi, todo); @@ -87,7 +88,8 @@ static int noinline_for_stack sun4i_ss_opti_poll(struct skcipher_request *areq) rx_cnt = SS_RXFIFO_SPACES(spaces); tx_cnt = SS_TXFIFO_SPACES(spaces); - todo = min3(tx_cnt, oleft, (mo.length - oo) / 4); + todo = min(tx_cnt, oleft); + todo = min_t(size_t, todo, (mo.length - oo) / 4); if (todo) { oleft -= todo; readsl(ss->base + SS_TXFIFO, mo.addr + oo, todo); @@ -239,7 +241,8 @@ static int sun4i_ss_cipher_poll(struct skcipher_request *areq) * todo is the number of consecutive 4byte word that we * can read from current SG */ - todo = min3(rx_cnt, ileft / 4, (mi.length - oi) / 4); + todo = min(rx_cnt, ileft / 4); + todo = min_t(size_t, todo, (mi.length - oi) / 4); if (todo && !ob) { writesl(ss->base + SS_RXFIFO, mi.addr + oi, todo); @@ -253,8 +256,8 @@ static int sun4i_ss_cipher_poll(struct skcipher_request *areq) * we need to be able to write all buf in one * pass, so it is why we min() with rx_cnt */ - todo = min3(rx_cnt * 4 - ob, ileft, - mi.length - oi); + todo = min(rx_cnt * 4 - ob, ileft); + todo = min_t(size_t, todo, mi.length - oi); memcpy(buf + ob, mi.addr + oi, todo); ileft -= todo; oi += todo; @@ -274,7 +277,8 @@ static int sun4i_ss_cipher_poll(struct skcipher_request *areq) spaces = readl(ss->base + SS_FCSR); rx_cnt = SS_RXFIFO_SPACES(spaces); tx_cnt = SS_TXFIFO_SPACES(spaces); - dev_dbg(ss->dev, "%x %u/%u %u/%u cnt=%u %u/%u %u/%u cnt=%u %u\n", + dev_dbg(ss->dev, + "%x %u/%zu %u/%u cnt=%u %u/%zu %u/%u cnt=%u %u\n", mode, oi, mi.length, ileft, areq->cryptlen, rx_cnt, oo, mo.length, oleft, areq->cryptlen, tx_cnt, ob); @@ -282,7 +286,8 @@ static int sun4i_ss_cipher_poll(struct skcipher_request *areq) if (!tx_cnt) continue; /* todo in 4bytes word */ - todo = min3(tx_cnt, oleft / 4, (mo.length - oo) / 4); + todo = min(tx_cnt, oleft / 4); + todo = min_t(size_t, todo, (mo.length - oo) / 4); if (todo) { readsl(ss->base + SS_TXFIFO, mo.addr + oo, todo); oleft -= todo * 4; @@ -308,7 +313,8 @@ static int sun4i_ss_cipher_poll(struct skcipher_request *areq) * no more than remaining buffer * no need to test against oleft */ - todo = min(mo.length - oo, obl - obo); + todo = min_t(size_t, + mo.length - oo, obl - obo); memcpy(mo.addr + oo, bufo + obo, todo); oleft -= todo; obo += todo; diff --git a/drivers/crypto/sunxi-ss/sun4i-ss-hash.c b/drivers/crypto/sunxi-ss/sun4i-ss-hash.c index fcffba5ef927..1369c5fa3087 100644 --- a/drivers/crypto/sunxi-ss/sun4i-ss-hash.c +++ b/drivers/crypto/sunxi-ss/sun4i-ss-hash.c @@ -272,8 +272,8 @@ static int sun4i_hash(struct ahash_request *areq) */ while (op->len < 64 && i < end) { /* how many bytes we can read from current SG */ - in_r = min3(mi.length - in_i, end - i, - 64 - op->len); + in_r = min(end - i, 64 - op->len); + in_r = min_t(size_t, mi.length - in_i, in_r); memcpy(op->buf + op->len, mi.addr + in_i, in_r); op->len += in_r; i += in_r; @@ -293,8 +293,8 @@ static int sun4i_hash(struct ahash_request *areq) } if (mi.length - in_i > 3 && i < end) { /* how many bytes we can read from current SG */ - in_r = min3(mi.length - in_i, areq->nbytes - i, - ((mi.length - in_i) / 4) * 4); + in_r = min_t(size_t, mi.length - in_i, areq->nbytes - i); + in_r = min_t(size_t, ((mi.length - in_i) / 4) * 4, in_r); /* how many bytes we can write in the device*/ todo = min3((u32)(end - i) / 4, rx_cnt, (u32)in_r / 4); writesl(ss->base + SS_RXFIFO, mi.addr + in_i, todo); @@ -320,8 +320,8 @@ static int sun4i_hash(struct ahash_request *areq) if ((areq->nbytes - i) < 64) { while (i < areq->nbytes && in_i < mi.length && op->len < 64) { /* how many bytes we can read from current SG */ - in_r = min3(mi.length - in_i, areq->nbytes - i, - 64 - op->len); + in_r = min(areq->nbytes - i, 64 - op->len); + in_r = min_t(size_t, mi.length - in_i, in_r); memcpy(op->buf + op->len, mi.addr + in_i, in_r); op->len += in_r; i += in_r; diff --git a/drivers/crypto/virtio/virtio_crypto_algs.c b/drivers/crypto/virtio/virtio_crypto_algs.c index 42d19205166b..673fb29fda53 100644 --- a/drivers/crypto/virtio/virtio_crypto_algs.c +++ b/drivers/crypto/virtio/virtio_crypto_algs.c @@ -105,8 +105,6 @@ virtio_crypto_alg_validate_key(int key_len, uint32_t *alg) *alg = VIRTIO_CRYPTO_CIPHER_AES_CBC; break; default: - pr_err("virtio_crypto: Unsupported key length: %d\n", - key_len); return -EINVAL; } return 0; @@ -484,6 +482,11 @@ static int virtio_crypto_ablkcipher_encrypt(struct ablkcipher_request *req) /* Use the first data virtqueue as default */ struct data_queue *data_vq = &vcrypto->data_vq[0]; + if (!req->nbytes) + return 0; + if (req->nbytes % AES_BLOCK_SIZE) + return -EINVAL; + vc_req->dataq = data_vq; vc_req->alg_cb = virtio_crypto_dataq_sym_callback; vc_sym_req->ablkcipher_ctx = ctx; @@ -504,6 +507,11 @@ static int virtio_crypto_ablkcipher_decrypt(struct ablkcipher_request *req) /* Use the first data virtqueue as default */ struct data_queue *data_vq = &vcrypto->data_vq[0]; + if (!req->nbytes) + return 0; + if (req->nbytes % AES_BLOCK_SIZE) + return -EINVAL; + vc_req->dataq = data_vq; vc_req->alg_cb = virtio_crypto_dataq_sym_callback; vc_sym_req->ablkcipher_ctx = ctx; diff --git a/drivers/crypto/vmx/Makefile b/drivers/crypto/vmx/Makefile index cab32cfec9c4..709670d2b553 100644 --- a/drivers/crypto/vmx/Makefile +++ b/drivers/crypto/vmx/Makefile @@ -3,13 +3,13 @@ obj-$(CONFIG_CRYPTO_DEV_VMX_ENCRYPT) += vmx-crypto.o vmx-crypto-objs := vmx.o aesp8-ppc.o ghashp8-ppc.o aes.o aes_cbc.o aes_ctr.o aes_xts.o ghash.o ifeq ($(CONFIG_CPU_LITTLE_ENDIAN),y) -TARGET := linux-ppc64le +override flavour := linux-ppc64le else -TARGET := linux-ppc64 +override flavour := linux-ppc64 endif quiet_cmd_perl = PERL $@ - cmd_perl = $(PERL) $(<) $(TARGET) > $(@) + cmd_perl = $(PERL) $(<) $(flavour) > $(@) targets += aesp8-ppc.S ghashp8-ppc.S diff --git a/drivers/dma-buf/sync_file.c b/drivers/dma-buf/sync_file.c index 25c5c071645b..91185db9a952 100644 --- a/drivers/dma-buf/sync_file.c +++ b/drivers/dma-buf/sync_file.c @@ -221,7 +221,7 @@ static struct sync_file *sync_file_merge(const char *name, struct sync_file *a, a_fences = get_fences(a, &a_num_fences); b_fences = get_fences(b, &b_num_fences); if (a_num_fences > INT_MAX - b_num_fences) - return NULL; + goto err; num_fences = a_num_fences + b_num_fences; diff --git a/drivers/edac/amd64_edac.c b/drivers/edac/amd64_edac.c index c1d4536ae466..cc5e56d752c8 100644 --- a/drivers/edac/amd64_edac.c +++ b/drivers/edac/amd64_edac.c @@ -2936,6 +2936,7 @@ static int init_csrows_df(struct mem_ctl_info *mci) dimm->mtype = pvt->dram_type; dimm->edac_mode = edac_mode; dimm->dtype = dev_type; + dimm->grain = 64; } } @@ -3012,6 +3013,7 @@ static int init_csrows(struct mem_ctl_info *mci) dimm = csrow->channels[j]->dimm; dimm->mtype = pvt->dram_type; dimm->edac_mode = edac_mode; + dimm->grain = 64; } } diff --git a/drivers/edac/ghes_edac.c b/drivers/edac/ghes_edac.c index 296e714bf553..523dd56a798c 100644 --- a/drivers/edac/ghes_edac.c +++ b/drivers/edac/ghes_edac.c @@ -231,6 +231,7 @@ void ghes_edac_report_mem_error(int sev, struct cper_sec_mem_err *mem_err) /* Cleans the error report buffer */ memset(e, 0, sizeof (*e)); e->error_count = 1; + e->grain = 1; strcpy(e->label, "unknown label"); e->msg = pvt->msg; e->other_detail = pvt->other_detail; @@ -326,7 +327,7 @@ void ghes_edac_report_mem_error(int sev, struct cper_sec_mem_err *mem_err) /* Error grain */ if (mem_err->validation_bits & CPER_MEM_VALID_PA_MASK) - e->grain = ~(mem_err->physical_addr_mask & ~PAGE_MASK); + e->grain = ~mem_err->physical_addr_mask + 1; /* Memory error location, mapped on e->location */ p = e->location; @@ -442,8 +443,13 @@ void ghes_edac_report_mem_error(int sev, struct cper_sec_mem_err *mem_err) if (p > pvt->other_detail) *(p - 1) = '\0'; + /* Sanity-check driver-supplied grain value. */ + if (WARN_ON_ONCE(!e->grain)) + e->grain = 1; + + grain_bits = fls_long(e->grain - 1); + /* Generate the trace event */ - grain_bits = fls_long(e->grain); snprintf(pvt->detail_location, sizeof(pvt->detail_location), "APEI location: %s %s", e->location, e->other_detail); trace_mc_event(type, e->msg, e->label, e->error_count, diff --git a/drivers/extcon/extcon-sm5502.c b/drivers/extcon/extcon-sm5502.c index dc43847ad2b0..b3d93baf4fc5 100644 --- a/drivers/extcon/extcon-sm5502.c +++ b/drivers/extcon/extcon-sm5502.c @@ -65,6 +65,10 @@ struct sm5502_muic_info { /* Default value of SM5502 register to bring up MUIC device. */ static struct reg_data sm5502_reg_data[] = { { + .reg = SM5502_REG_RESET, + .val = SM5502_REG_RESET_MASK, + .invert = true, + }, { .reg = SM5502_REG_CONTROL, .val = SM5502_REG_CONTROL_MASK_INT_MASK, .invert = false, diff --git a/drivers/extcon/extcon-sm5502.h b/drivers/extcon/extcon-sm5502.h index 9dbb634d213b..ce1f1ec310c4 100644 --- a/drivers/extcon/extcon-sm5502.h +++ b/drivers/extcon/extcon-sm5502.h @@ -237,6 +237,8 @@ enum sm5502_reg { #define DM_DP_SWITCH_UART ((DM_DP_CON_SWITCH_UART <name = "reserved"; + res->flags = IORESOURCE_MEM; + res->start = addr; + res->end = addr + size - 1; + + /* we expect a conflict with a 'System RAM' region */ + parent = request_resource_conflict(&iomem_resource, res); + return parent ? request_resource(parent, res) : 0; +} + int __ref efi_mem_reserve_persistent(phys_addr_t addr, u64 size) { struct linux_efi_memreserve *rsv; @@ -994,7 +1012,7 @@ int __ref efi_mem_reserve_persistent(phys_addr_t addr, u64 size) rsv->entry[index].size = size; memunmap(rsv); - return 0; + return efi_mem_reserve_iomem(addr, size); } memunmap(rsv); } @@ -1004,6 +1022,12 @@ int __ref efi_mem_reserve_persistent(phys_addr_t addr, u64 size) if (!rsv) return -ENOMEM; + rc = efi_mem_reserve_iomem(__pa(rsv), SZ_4K); + if (rc) { + free_page((unsigned long)rsv); + return rc; + } + /* * The memremap() call above assumes that a linux_efi_memreserve entry * never crosses a page boundary, so let's ensure that this remains true @@ -1020,7 +1044,7 @@ int __ref efi_mem_reserve_persistent(phys_addr_t addr, u64 size) efi_memreserve_root->next = __pa(rsv); spin_unlock(&efi_mem_reserve_persistent_lock); - return 0; + return efi_mem_reserve_iomem(addr, size); } static int __init efi_memreserve_root_init(void) diff --git a/drivers/fsi/fsi-core.c b/drivers/fsi/fsi-core.c index 1f76740f33b6..9282239b4d95 100644 --- a/drivers/fsi/fsi-core.c +++ b/drivers/fsi/fsi-core.c @@ -544,6 +544,31 @@ static int fsi_slave_scan(struct fsi_slave *slave) return 0; } +static unsigned long aligned_access_size(size_t offset, size_t count) +{ + unsigned long offset_unit, count_unit; + + /* Criteria: + * + * 1. Access size must be less than or equal to the maximum access + * width or the highest power-of-two factor of offset + * 2. Access size must be less than or equal to the amount specified by + * count + * + * The access width is optimal if we can calculate 1 to be strictly + * equal while still satisfying 2. + */ + + /* Find 1 by the bottom bit of offset (with a 4 byte access cap) */ + offset_unit = BIT(__builtin_ctzl(offset | 4)); + + /* Find 2 by the top bit of count */ + count_unit = BIT(8 * sizeof(unsigned long) - 1 - __builtin_clzl(count)); + + /* Constrain the maximum access width to the minimum of both criteria */ + return BIT(__builtin_ctzl(offset_unit | count_unit)); +} + static ssize_t fsi_slave_sysfs_raw_read(struct file *file, struct kobject *kobj, struct bin_attribute *attr, char *buf, loff_t off, size_t count) @@ -559,8 +584,7 @@ static ssize_t fsi_slave_sysfs_raw_read(struct file *file, return -EINVAL; for (total_len = 0; total_len < count; total_len += read_len) { - read_len = min_t(size_t, count, 4); - read_len -= off & 0x3; + read_len = aligned_access_size(off, count - total_len); rc = fsi_slave_read(slave, off, buf + total_len, read_len); if (rc) @@ -587,8 +611,7 @@ static ssize_t fsi_slave_sysfs_raw_write(struct file *file, return -EINVAL; for (total_len = 0; total_len < count; total_len += write_len) { - write_len = min_t(size_t, count, 4); - write_len -= off & 0x3; + write_len = aligned_access_size(off, count - total_len); rc = fsi_slave_write(slave, off, buf + total_len, write_len); if (rc) diff --git a/drivers/gnss/Kconfig b/drivers/gnss/Kconfig index a0404ce155a6..81f665d3af35 100644 --- a/drivers/gnss/Kconfig +++ b/drivers/gnss/Kconfig @@ -54,4 +54,19 @@ config GNSS_UBX_SERIAL If unsure, say N. +config GNSS_CMDLINE_SERIAL + tristate "Command line test driver for GNSS" + depends on SERIAL_DEV_BUS + select GNSS_SERIAL + ---help--- + Say Y here if you want to test the GNSS subsystem but do not have a + way to communicate a binding through firmware such as DT or ACPI. + The correct serdev device and protocol type must be specified on + the module command line. + + To compile this driver as a module, choose M here: the module will + be called gnss-cmdline. + + If unsure, say N. + endif # GNSS diff --git a/drivers/gnss/Makefile b/drivers/gnss/Makefile index 451f11401ecc..1d27659f5a7a 100644 --- a/drivers/gnss/Makefile +++ b/drivers/gnss/Makefile @@ -17,3 +17,6 @@ gnss-sirf-y := sirf.o obj-$(CONFIG_GNSS_UBX_SERIAL) += gnss-ubx.o gnss-ubx-y := ubx.o + +obj-$(CONFIG_GNSS_CMDLINE_SERIAL) += gnss-cmdline.o +gnss-cmdline-y := cmdline.o diff --git a/drivers/gnss/cmdline.c b/drivers/gnss/cmdline.c new file mode 100644 index 000000000000..3e1d24636b8c --- /dev/null +++ b/drivers/gnss/cmdline.c @@ -0,0 +1,139 @@ +// SPDX-License-Identifier: GPL-2.0 +/* + * Test driver for GNSS. This driver requires the serdev binding and protocol + * type to be specified on the module command line. + * + * Copyright 2019 Google LLC + */ + +#include +#include +#include +#include +#include +#include +#include + +#include "serial.h" + +#define GNSS_CMDLINE_MODULE_NAME "gnss-cmdline" + +#define gnss_cmdline_err(...) \ + pr_err(GNSS_CMDLINE_MODULE_NAME ": " __VA_ARGS__) + +static char *serdev; +module_param(serdev, charp, 0644); +MODULE_PARM_DESC(serdev, "serial device to wrap"); + +static int type; +module_param(type, int, 0644); +MODULE_PARM_DESC(serdev, "GNSS protocol type (see 'enum gnss_type')"); + +static struct serdev_device *serdev_device; + +static int name_match(struct device *dev, void *data) +{ + return strstr(dev_name(dev), data) != NULL; +} + +static int __init gnss_cmdline_init(void) +{ + struct device *serial_dev, *port_dev, *serdev_dev; + char *driver_name, *port_name, *serdev_name; + char *serdev_dup, *serdev_dup_sep; + struct gnss_serial *gserial; + int err = -ENODEV; + + /* User did not set the serdev module parameter */ + if (!serdev) + return 0; + + if (type < 0 || type >= GNSS_TYPE_COUNT) { + gnss_cmdline_err("invalid gnss type '%d'\n", type); + return -EINVAL; + } + + serdev_dup = serdev_dup_sep = kstrdup(serdev, GFP_KERNEL); + if (!serdev_dup) + return -ENOMEM; + + driver_name = strsep(&serdev_dup_sep, "/"); + if (!driver_name) { + gnss_cmdline_err("driver name missing\n"); + goto err_free_serdev_dup; + } + + port_name = strsep(&serdev_dup_sep, "/"); + if (!port_name) { + gnss_cmdline_err("port name missing\n"); + goto err_free_serdev_dup; + } + + serdev_name = strsep(&serdev_dup_sep, "/"); + if (!serdev_name) { + gnss_cmdline_err("serdev name missing\n"); + goto err_free_serdev_dup; + } + + /* Find the driver device instance (e.g. serial8250) */ + serial_dev = bus_find_device_by_name(&platform_bus_type, + NULL, driver_name); + if (!serial_dev) { + gnss_cmdline_err("no device '%s'\n", driver_name); + goto err_free_serdev_dup; + } + + /* Find the port device instance (e.g. serial0) */ + port_dev = device_find_child(serial_dev, port_name, name_match); + if (!port_dev) { + gnss_cmdline_err("no port '%s'\n", port_name); + goto err_free_serdev_dup; + } + + /* Find the serdev device instance (e.g. serial0-0) */ + serdev_dev = device_find_child(port_dev, serdev_name, name_match); + if (!serdev_dev) { + gnss_cmdline_err("no serdev '%s'\n", serdev_name); + goto err_free_serdev_dup; + } + + gserial = gnss_serial_allocate(to_serdev_device(serdev_dev), 0); + if (IS_ERR(gserial)) { + err = PTR_ERR(gserial); + goto err_free_serdev_dup; + } + + gserial->gdev->type = type; + + err = gnss_serial_register(gserial); + if (err) { + gnss_serial_free(gserial); + goto err_free_serdev_dup; + } + + serdev_device = to_serdev_device(serdev_dev); + err = 0; +err_free_serdev_dup: + kfree(serdev_dup); + return err; +} + +static void __exit gnss_cmdline_exit(void) +{ + struct gnss_serial *gserial; + + if (!serdev_device) + return; + + gserial = serdev_device_get_drvdata(serdev_device); + + gnss_serial_deregister(gserial); + gnss_serial_free(gserial); +} + +module_init(gnss_cmdline_init); +module_exit(gnss_cmdline_exit); + +MODULE_AUTHOR("Alistair Delva "); +MODULE_DESCRIPTION("GNSS command line driver"); +MODULE_LICENSE("GPL v2"); diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c index 5652cc72ed3a..81842ba8cd75 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c @@ -859,6 +859,9 @@ static int amdgpu_debugfs_test_ib(struct seq_file *m, void *data) struct amdgpu_device *adev = dev->dev_private; int r = 0, i; + /* Avoid accidently unparking the sched thread during GPU reset */ + mutex_lock(&adev->lock_reset); + /* hold on the scheduler */ for (i = 0; i < AMDGPU_MAX_RINGS; i++) { struct amdgpu_ring *ring = adev->rings[i]; @@ -884,6 +887,8 @@ static int amdgpu_debugfs_test_ib(struct seq_file *m, void *data) kthread_unpark(ring->sched.thread); } + mutex_unlock(&adev->lock_reset); + return 0; } @@ -1036,6 +1041,9 @@ static int amdgpu_debugfs_ib_preempt(void *data, u64 val) if (!fences) return -ENOMEM; + /* Avoid accidently unparking the sched thread during GPU reset */ + mutex_lock(&adev->lock_reset); + /* stop the scheduler */ kthread_park(ring->sched.thread); @@ -1075,6 +1083,8 @@ failure: /* restart the scheduler */ kthread_unpark(ring->sched.thread); + mutex_unlock(&adev->lock_reset); + ttm_bo_unlock_delayed_workqueue(&adev->mman.bdev, resched); if (fences) diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_gmc.h b/drivers/gpu/drm/amd/amdgpu/amdgpu_gmc.h index b6e1d98ef01e..aef6c396bd58 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_gmc.h +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_gmc.h @@ -77,6 +77,7 @@ struct amdgpu_gmc_fault { struct amdgpu_vmhub { uint32_t ctx0_ptb_addr_lo32; uint32_t ctx0_ptb_addr_hi32; + uint32_t vm_inv_eng0_sem; uint32_t vm_inv_eng0_req; uint32_t vm_inv_eng0_ack; uint32_t vm_context0_cntl; diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_test.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_test.c index b66d29d5ffa2..b158230af8db 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_test.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_test.c @@ -138,6 +138,7 @@ static void amdgpu_do_test_moves(struct amdgpu_device *adev) } dma_fence_put(fence); + fence = NULL; r = amdgpu_bo_kmap(vram_obj, &vram_map); if (r) { @@ -183,6 +184,7 @@ static void amdgpu_do_test_moves(struct amdgpu_device *adev) } dma_fence_put(fence); + fence = NULL; r = amdgpu_bo_kmap(gtt_obj[i], >t_map); if (r) { diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_trace.h b/drivers/gpu/drm/amd/amdgpu/amdgpu_trace.h index 77674a7b9616..91899d28fa72 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_trace.h +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_trace.h @@ -170,7 +170,7 @@ TRACE_EVENT(amdgpu_cs_ioctl, __field(unsigned int, context) __field(unsigned int, seqno) __field(struct dma_fence *, fence) - __field(char *, ring_name) + __string(ring, to_amdgpu_ring(job->base.sched)->name) __field(u32, num_ibs) ), @@ -179,12 +179,12 @@ TRACE_EVENT(amdgpu_cs_ioctl, __assign_str(timeline, AMDGPU_JOB_GET_TIMELINE_NAME(job)) __entry->context = job->base.s_fence->finished.context; __entry->seqno = job->base.s_fence->finished.seqno; - __entry->ring_name = to_amdgpu_ring(job->base.sched)->name; + __assign_str(ring, to_amdgpu_ring(job->base.sched)->name) __entry->num_ibs = job->num_ibs; ), TP_printk("sched_job=%llu, timeline=%s, context=%u, seqno=%u, ring_name=%s, num_ibs=%u", __entry->sched_job_id, __get_str(timeline), __entry->context, - __entry->seqno, __entry->ring_name, __entry->num_ibs) + __entry->seqno, __get_str(ring), __entry->num_ibs) ); TRACE_EVENT(amdgpu_sched_run_job, @@ -195,7 +195,7 @@ TRACE_EVENT(amdgpu_sched_run_job, __string(timeline, AMDGPU_JOB_GET_TIMELINE_NAME(job)) __field(unsigned int, context) __field(unsigned int, seqno) - __field(char *, ring_name) + __string(ring, to_amdgpu_ring(job->base.sched)->name) __field(u32, num_ibs) ), @@ -204,12 +204,12 @@ TRACE_EVENT(amdgpu_sched_run_job, __assign_str(timeline, AMDGPU_JOB_GET_TIMELINE_NAME(job)) __entry->context = job->base.s_fence->finished.context; __entry->seqno = job->base.s_fence->finished.seqno; - __entry->ring_name = to_amdgpu_ring(job->base.sched)->name; + __assign_str(ring, to_amdgpu_ring(job->base.sched)->name) __entry->num_ibs = job->num_ibs; ), TP_printk("sched_job=%llu, timeline=%s, context=%u, seqno=%u, ring_name=%s, num_ibs=%u", __entry->sched_job_id, __get_str(timeline), __entry->context, - __entry->seqno, __entry->ring_name, __entry->num_ibs) + __entry->seqno, __get_str(ring), __entry->num_ibs) ); @@ -468,7 +468,7 @@ TRACE_EVENT(amdgpu_ib_pipe_sync, TP_PROTO(struct amdgpu_job *sched_job, struct dma_fence *fence), TP_ARGS(sched_job, fence), TP_STRUCT__entry( - __field(const char *,name) + __string(ring, sched_job->base.sched->name); __field(uint64_t, id) __field(struct dma_fence *, fence) __field(uint64_t, ctx) @@ -476,14 +476,14 @@ TRACE_EVENT(amdgpu_ib_pipe_sync, ), TP_fast_assign( - __entry->name = sched_job->base.sched->name; + __assign_str(ring, sched_job->base.sched->name) __entry->id = sched_job->base.id; __entry->fence = fence; __entry->ctx = fence->context; __entry->seqno = fence->seqno; ), TP_printk("job ring=%s, id=%llu, need pipe sync to fence=%p, context=%llu, seq=%u", - __entry->name, __entry->id, + __get_str(ring), __entry->id, __entry->fence, __entry->ctx, __entry->seqno) ); diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c index 5251352f5922..c7514f743409 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c @@ -1034,10 +1034,8 @@ int amdgpu_vm_flush(struct amdgpu_ring *ring, struct amdgpu_job *job, bool need_ id->oa_base != job->oa_base || id->oa_size != job->oa_size); bool vm_flush_needed = job->vm_needs_flush; - bool pasid_mapping_needed = id->pasid != job->pasid || - !id->pasid_mapping || - !dma_fence_is_signaled(id->pasid_mapping); struct dma_fence *fence = NULL; + bool pasid_mapping_needed = false; unsigned patch_offset = 0; int r; @@ -1047,6 +1045,12 @@ int amdgpu_vm_flush(struct amdgpu_ring *ring, struct amdgpu_job *job, bool need_ pasid_mapping_needed = true; } + mutex_lock(&id_mgr->lock); + if (id->pasid != job->pasid || !id->pasid_mapping || + !dma_fence_is_signaled(id->pasid_mapping)) + pasid_mapping_needed = true; + mutex_unlock(&id_mgr->lock); + gds_switch_needed &= !!ring->funcs->emit_gds_switch; vm_flush_needed &= !!ring->funcs->emit_vm_flush && job->vm_pd_addr != AMDGPU_BO_INVALID_OFFSET; @@ -1086,9 +1090,11 @@ int amdgpu_vm_flush(struct amdgpu_ring *ring, struct amdgpu_job *job, bool need_ } if (pasid_mapping_needed) { + mutex_lock(&id_mgr->lock); id->pasid = job->pasid; dma_fence_put(id->pasid_mapping); id->pasid_mapping = dma_fence_get(fence); + mutex_unlock(&id_mgr->lock); } dma_fence_put(fence); diff --git a/drivers/gpu/drm/amd/amdgpu/gfx_v10_0.c b/drivers/gpu/drm/amd/amdgpu/gfx_v10_0.c index 53090eae0082..596722e79a26 100644 --- a/drivers/gpu/drm/amd/amdgpu/gfx_v10_0.c +++ b/drivers/gpu/drm/amd/amdgpu/gfx_v10_0.c @@ -1785,27 +1785,52 @@ static void gfx_v10_0_enable_gui_idle_interrupt(struct amdgpu_device *adev, WREG32_SOC15(GC, 0, mmCP_INT_CNTL_RING0, tmp); } -static void gfx_v10_0_init_csb(struct amdgpu_device *adev) +static int gfx_v10_0_init_csb(struct amdgpu_device *adev) { + int r; + + if (adev->in_gpu_reset) { + r = amdgpu_bo_reserve(adev->gfx.rlc.clear_state_obj, false); + if (r) + return r; + + r = amdgpu_bo_kmap(adev->gfx.rlc.clear_state_obj, + (void **)&adev->gfx.rlc.cs_ptr); + if (!r) { + adev->gfx.rlc.funcs->get_csb_buffer(adev, + adev->gfx.rlc.cs_ptr); + amdgpu_bo_kunmap(adev->gfx.rlc.clear_state_obj); + } + + amdgpu_bo_unreserve(adev->gfx.rlc.clear_state_obj); + if (r) + return r; + } + /* csib */ WREG32_SOC15(GC, 0, mmRLC_CSIB_ADDR_HI, adev->gfx.rlc.clear_state_gpu_addr >> 32); WREG32_SOC15(GC, 0, mmRLC_CSIB_ADDR_LO, adev->gfx.rlc.clear_state_gpu_addr & 0xfffffffc); WREG32_SOC15(GC, 0, mmRLC_CSIB_LENGTH, adev->gfx.rlc.clear_state_size); + + return 0; } -static void gfx_v10_0_init_pg(struct amdgpu_device *adev) +static int gfx_v10_0_init_pg(struct amdgpu_device *adev) { int i; + int r; - gfx_v10_0_init_csb(adev); + r = gfx_v10_0_init_csb(adev); + if (r) + return r; for (i = 0; i < adev->num_vmhubs; i++) amdgpu_gmc_flush_gpu_tlb(adev, 0, i, 0); /* TODO: init power gating */ - return; + return 0; } void gfx_v10_0_rlc_stop(struct amdgpu_device *adev) @@ -1907,7 +1932,10 @@ static int gfx_v10_0_rlc_resume(struct amdgpu_device *adev) r = gfx_v10_0_wait_for_rlc_autoload_complete(adev); if (r) return r; - gfx_v10_0_init_pg(adev); + + r = gfx_v10_0_init_pg(adev); + if (r) + return r; /* enable RLC SRM */ gfx_v10_0_rlc_enable_srm(adev); @@ -1933,7 +1961,10 @@ static int gfx_v10_0_rlc_resume(struct amdgpu_device *adev) return r; } - gfx_v10_0_init_pg(adev); + r = gfx_v10_0_init_pg(adev); + if (r) + return r; + adev->gfx.rlc.funcs->start(adev); if (adev->firmware.load_type == AMDGPU_FW_LOAD_RLC_BACKDOOR_AUTO) { @@ -2400,7 +2431,7 @@ static int gfx_v10_0_wait_for_rlc_autoload_complete(struct amdgpu_device *adev) return 0; } -static void gfx_v10_0_cp_gfx_enable(struct amdgpu_device *adev, bool enable) +static int gfx_v10_0_cp_gfx_enable(struct amdgpu_device *adev, bool enable) { int i; u32 tmp = RREG32_SOC15(GC, 0, mmCP_ME_CNTL); @@ -2413,7 +2444,17 @@ static void gfx_v10_0_cp_gfx_enable(struct amdgpu_device *adev, bool enable) adev->gfx.gfx_ring[i].sched.ready = false; } WREG32_SOC15(GC, 0, mmCP_ME_CNTL, tmp); - udelay(50); + + for (i = 0; i < adev->usec_timeout; i++) { + if (RREG32_SOC15(GC, 0, mmCP_STAT) == 0) + break; + udelay(1); + } + + if (i >= adev->usec_timeout) + DRM_ERROR("failed to %s cp gfx\n", enable ? "unhalt" : "halt"); + + return 0; } static int gfx_v10_0_cp_gfx_load_pfp_microcode(struct amdgpu_device *adev) diff --git a/drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c b/drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c index 97cf0b536873..c9ba2ec6d038 100644 --- a/drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c +++ b/drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c @@ -2930,7 +2930,8 @@ static void gfx_v9_0_init_pg(struct amdgpu_device *adev) * And it's needed by gfxoff feature. */ if (adev->gfx.rlc.is_rlc_v2_1) { - gfx_v9_1_init_rlc_save_restore_list(adev); + if (adev->asic_type == CHIP_VEGA12) + gfx_v9_1_init_rlc_save_restore_list(adev); gfx_v9_0_enable_save_restore_machine(adev); } diff --git a/drivers/gpu/drm/amd/amdgpu/gfxhub_v1_0.c b/drivers/gpu/drm/amd/amdgpu/gfxhub_v1_0.c index 6ce37ce77d14..d6fbdc6c0548 100644 --- a/drivers/gpu/drm/amd/amdgpu/gfxhub_v1_0.c +++ b/drivers/gpu/drm/amd/amdgpu/gfxhub_v1_0.c @@ -365,6 +365,8 @@ void gfxhub_v1_0_init(struct amdgpu_device *adev) hub->ctx0_ptb_addr_hi32 = SOC15_REG_OFFSET(GC, 0, mmVM_CONTEXT0_PAGE_TABLE_BASE_ADDR_HI32); + hub->vm_inv_eng0_sem = + SOC15_REG_OFFSET(GC, 0, mmVM_INVALIDATE_ENG0_SEM); hub->vm_inv_eng0_req = SOC15_REG_OFFSET(GC, 0, mmVM_INVALIDATE_ENG0_REQ); hub->vm_inv_eng0_ack = diff --git a/drivers/gpu/drm/amd/amdgpu/gfxhub_v2_0.c b/drivers/gpu/drm/amd/amdgpu/gfxhub_v2_0.c index db10640a3b2f..fbe06c13a09c 100644 --- a/drivers/gpu/drm/amd/amdgpu/gfxhub_v2_0.c +++ b/drivers/gpu/drm/amd/amdgpu/gfxhub_v2_0.c @@ -350,6 +350,8 @@ void gfxhub_v2_0_init(struct amdgpu_device *adev) hub->ctx0_ptb_addr_hi32 = SOC15_REG_OFFSET(GC, 0, mmGCVM_CONTEXT0_PAGE_TABLE_BASE_ADDR_HI32); + hub->vm_inv_eng0_sem = + SOC15_REG_OFFSET(GC, 0, mmGCVM_INVALIDATE_ENG0_SEM); hub->vm_inv_eng0_req = SOC15_REG_OFFSET(GC, 0, mmGCVM_INVALIDATE_ENG0_REQ); hub->vm_inv_eng0_ack = diff --git a/drivers/gpu/drm/amd/amdgpu/gmc_v10_0.c b/drivers/gpu/drm/amd/amdgpu/gmc_v10_0.c index 5c7d5f73f54f..a7ba4c6cf7a1 100644 --- a/drivers/gpu/drm/amd/amdgpu/gmc_v10_0.c +++ b/drivers/gpu/drm/amd/amdgpu/gmc_v10_0.c @@ -235,6 +235,29 @@ static void gmc_v10_0_flush_vm_hub(struct amdgpu_device *adev, uint32_t vmid, const unsigned eng = 17; unsigned int i; + spin_lock(&adev->gmc.invalidate_lock); + /* + * It may lose gpuvm invalidate acknowldege state across power-gating + * off cycle, add semaphore acquire before invalidation and semaphore + * release after invalidation to avoid entering power gated state + * to WA the Issue + */ + + /* TODO: It needs to continue working on debugging with semaphore for GFXHUB as well. */ + if (vmhub == AMDGPU_MMHUB_0 || + vmhub == AMDGPU_MMHUB_1) { + for (i = 0; i < adev->usec_timeout; i++) { + /* a read return value of 1 means semaphore acuqire */ + tmp = RREG32_NO_KIQ(hub->vm_inv_eng0_sem + eng); + if (tmp & 0x1) + break; + udelay(1); + } + + if (i >= adev->usec_timeout) + DRM_ERROR("Timeout waiting for sem acquire in VM flush!\n"); + } + WREG32_NO_KIQ(hub->vm_inv_eng0_req + eng, tmp); /* @@ -254,6 +277,17 @@ static void gmc_v10_0_flush_vm_hub(struct amdgpu_device *adev, uint32_t vmid, udelay(1); } + /* TODO: It needs to continue working on debugging with semaphore for GFXHUB as well. */ + if (vmhub == AMDGPU_MMHUB_0 || + vmhub == AMDGPU_MMHUB_1) + /* + * add semaphore release after invalidation, + * write with 0 means semaphore release + */ + WREG32_NO_KIQ(hub->vm_inv_eng0_sem + eng, 0); + + spin_unlock(&adev->gmc.invalidate_lock); + if (i < adev->usec_timeout) return; @@ -338,6 +372,20 @@ static uint64_t gmc_v10_0_emit_flush_gpu_tlb(struct amdgpu_ring *ring, uint32_t req = gmc_v10_0_get_invalidate_req(vmid, 0); unsigned eng = ring->vm_inv_eng; + /* + * It may lose gpuvm invalidate acknowldege state across power-gating + * off cycle, add semaphore acquire before invalidation and semaphore + * release after invalidation to avoid entering power gated state + * to WA the Issue + */ + + /* TODO: It needs to continue working on debugging with semaphore for GFXHUB as well. */ + if (ring->funcs->vmhub == AMDGPU_MMHUB_0 || + ring->funcs->vmhub == AMDGPU_MMHUB_1) + /* a read return value of 1 means semaphore acuqire */ + amdgpu_ring_emit_reg_wait(ring, + hub->vm_inv_eng0_sem + eng, 0x1, 0x1); + amdgpu_ring_emit_wreg(ring, hub->ctx0_ptb_addr_lo32 + (2 * vmid), lower_32_bits(pd_addr)); @@ -348,6 +396,15 @@ static uint64_t gmc_v10_0_emit_flush_gpu_tlb(struct amdgpu_ring *ring, hub->vm_inv_eng0_ack + eng, req, 1 << vmid); + /* TODO: It needs to continue working on debugging with semaphore for GFXHUB as well. */ + if (ring->funcs->vmhub == AMDGPU_MMHUB_0 || + ring->funcs->vmhub == AMDGPU_MMHUB_1) + /* + * add semaphore release after invalidation, + * write with 0 means semaphore release + */ + amdgpu_ring_emit_wreg(ring, hub->vm_inv_eng0_sem + eng, 0); + return pd_addr; } diff --git a/drivers/gpu/drm/amd/amdgpu/gmc_v9_0.c b/drivers/gpu/drm/amd/amdgpu/gmc_v9_0.c index f91337030dc0..d7caca042173 100644 --- a/drivers/gpu/drm/amd/amdgpu/gmc_v9_0.c +++ b/drivers/gpu/drm/amd/amdgpu/gmc_v9_0.c @@ -448,6 +448,24 @@ static uint32_t gmc_v9_0_get_invalidate_req(unsigned int vmid, return req; } +/** + * gmc_v9_0_use_invalidate_semaphore - judge whether to use semaphore + * + * @adev: amdgpu_device pointer + * @vmhub: vmhub type + * + */ +static bool gmc_v9_0_use_invalidate_semaphore(struct amdgpu_device *adev, + uint32_t vmhub) +{ + return ((vmhub == AMDGPU_MMHUB_0 || + vmhub == AMDGPU_MMHUB_1) && + (!amdgpu_sriov_vf(adev)) && + (!(adev->asic_type == CHIP_RAVEN && + adev->rev_id < 0x8 && + adev->pdev->device == 0x15d8))); +} + /* * GART * VMID 0 is the physical GPU addresses as used by the kernel. @@ -467,6 +485,7 @@ static uint32_t gmc_v9_0_get_invalidate_req(unsigned int vmid, static void gmc_v9_0_flush_gpu_tlb(struct amdgpu_device *adev, uint32_t vmid, uint32_t vmhub, uint32_t flush_type) { + bool use_semaphore = gmc_v9_0_use_invalidate_semaphore(adev, vmhub); const unsigned eng = 17; u32 j, tmp; struct amdgpu_vmhub *hub; @@ -491,6 +510,28 @@ static void gmc_v9_0_flush_gpu_tlb(struct amdgpu_device *adev, uint32_t vmid, } spin_lock(&adev->gmc.invalidate_lock); + + /* + * It may lose gpuvm invalidate acknowldege state across power-gating + * off cycle, add semaphore acquire before invalidation and semaphore + * release after invalidation to avoid entering power gated state + * to WA the Issue + */ + + /* TODO: It needs to continue working on debugging with semaphore for GFXHUB as well. */ + if (use_semaphore) { + for (j = 0; j < adev->usec_timeout; j++) { + /* a read return value of 1 means semaphore acuqire */ + tmp = RREG32_NO_KIQ(hub->vm_inv_eng0_sem + eng); + if (tmp & 0x1) + break; + udelay(1); + } + + if (j >= adev->usec_timeout) + DRM_ERROR("Timeout waiting for sem acquire in VM flush!\n"); + } + WREG32_NO_KIQ(hub->vm_inv_eng0_req + eng, tmp); /* @@ -506,7 +547,17 @@ static void gmc_v9_0_flush_gpu_tlb(struct amdgpu_device *adev, uint32_t vmid, break; udelay(1); } + + /* TODO: It needs to continue working on debugging with semaphore for GFXHUB as well. */ + if (use_semaphore) + /* + * add semaphore release after invalidation, + * write with 0 means semaphore release + */ + WREG32_NO_KIQ(hub->vm_inv_eng0_sem + eng, 0); + spin_unlock(&adev->gmc.invalidate_lock); + if (j < adev->usec_timeout) return; @@ -516,11 +567,25 @@ static void gmc_v9_0_flush_gpu_tlb(struct amdgpu_device *adev, uint32_t vmid, static uint64_t gmc_v9_0_emit_flush_gpu_tlb(struct amdgpu_ring *ring, unsigned vmid, uint64_t pd_addr) { + bool use_semaphore = gmc_v9_0_use_invalidate_semaphore(ring->adev, ring->funcs->vmhub); struct amdgpu_device *adev = ring->adev; struct amdgpu_vmhub *hub = &adev->vmhub[ring->funcs->vmhub]; uint32_t req = gmc_v9_0_get_invalidate_req(vmid, 0); unsigned eng = ring->vm_inv_eng; + /* + * It may lose gpuvm invalidate acknowldege state across power-gating + * off cycle, add semaphore acquire before invalidation and semaphore + * release after invalidation to avoid entering power gated state + * to WA the Issue + */ + + /* TODO: It needs to continue working on debugging with semaphore for GFXHUB as well. */ + if (use_semaphore) + /* a read return value of 1 means semaphore acuqire */ + amdgpu_ring_emit_reg_wait(ring, + hub->vm_inv_eng0_sem + eng, 0x1, 0x1); + amdgpu_ring_emit_wreg(ring, hub->ctx0_ptb_addr_lo32 + (2 * vmid), lower_32_bits(pd_addr)); @@ -531,6 +596,14 @@ static uint64_t gmc_v9_0_emit_flush_gpu_tlb(struct amdgpu_ring *ring, hub->vm_inv_eng0_ack + eng, req, 1 << vmid); + /* TODO: It needs to continue working on debugging with semaphore for GFXHUB as well. */ + if (use_semaphore) + /* + * add semaphore release after invalidation, + * write with 0 means semaphore release + */ + amdgpu_ring_emit_wreg(ring, hub->vm_inv_eng0_sem + eng, 0); + return pd_addr; } diff --git a/drivers/gpu/drm/amd/amdgpu/mmhub_v1_0.c b/drivers/gpu/drm/amd/amdgpu/mmhub_v1_0.c index 04cd4b6f95d4..641f1258f08d 100644 --- a/drivers/gpu/drm/amd/amdgpu/mmhub_v1_0.c +++ b/drivers/gpu/drm/amd/amdgpu/mmhub_v1_0.c @@ -418,6 +418,8 @@ void mmhub_v1_0_init(struct amdgpu_device *adev) hub->ctx0_ptb_addr_hi32 = SOC15_REG_OFFSET(MMHUB, 0, mmVM_CONTEXT0_PAGE_TABLE_BASE_ADDR_HI32); + hub->vm_inv_eng0_sem = + SOC15_REG_OFFSET(MMHUB, 0, mmVM_INVALIDATE_ENG0_SEM); hub->vm_inv_eng0_req = SOC15_REG_OFFSET(MMHUB, 0, mmVM_INVALIDATE_ENG0_REQ); hub->vm_inv_eng0_ack = diff --git a/drivers/gpu/drm/amd/amdgpu/mmhub_v2_0.c b/drivers/gpu/drm/amd/amdgpu/mmhub_v2_0.c index b39bea6f54e9..096bb883c29d 100644 --- a/drivers/gpu/drm/amd/amdgpu/mmhub_v2_0.c +++ b/drivers/gpu/drm/amd/amdgpu/mmhub_v2_0.c @@ -341,6 +341,8 @@ void mmhub_v2_0_init(struct amdgpu_device *adev) hub->ctx0_ptb_addr_hi32 = SOC15_REG_OFFSET(MMHUB, 0, mmMMVM_CONTEXT0_PAGE_TABLE_BASE_ADDR_HI32); + hub->vm_inv_eng0_sem = + SOC15_REG_OFFSET(MMHUB, 0, mmMMVM_INVALIDATE_ENG0_SEM); hub->vm_inv_eng0_req = SOC15_REG_OFFSET(MMHUB, 0, mmMMVM_INVALIDATE_ENG0_REQ); hub->vm_inv_eng0_ack = diff --git a/drivers/gpu/drm/amd/amdgpu/mmhub_v9_4.c b/drivers/gpu/drm/amd/amdgpu/mmhub_v9_4.c index 9ed178fa241c..fb161c83e409 100644 --- a/drivers/gpu/drm/amd/amdgpu/mmhub_v9_4.c +++ b/drivers/gpu/drm/amd/amdgpu/mmhub_v9_4.c @@ -502,6 +502,10 @@ void mmhub_v9_4_init(struct amdgpu_device *adev) SOC15_REG_OFFSET(MMHUB, 0, mmVML2VC0_VM_CONTEXT0_PAGE_TABLE_BASE_ADDR_HI32) + i * MMHUB_INSTANCE_REGISTER_OFFSET; + hub[i]->vm_inv_eng0_sem = + SOC15_REG_OFFSET(MMHUB, 0, + mmVML2VC0_VM_INVALIDATE_ENG0_SEM) + + i * MMHUB_INSTANCE_REGISTER_OFFSET; hub[i]->vm_inv_eng0_req = SOC15_REG_OFFSET(MMHUB, 0, mmVML2VC0_VM_INVALIDATE_ENG0_REQ) + diff --git a/drivers/gpu/drm/amd/amdgpu/psp_v11_0.c b/drivers/gpu/drm/amd/amdgpu/psp_v11_0.c index 10166104b8a3..d483684db95b 100644 --- a/drivers/gpu/drm/amd/amdgpu/psp_v11_0.c +++ b/drivers/gpu/drm/amd/amdgpu/psp_v11_0.c @@ -398,6 +398,34 @@ static bool psp_v11_0_support_vmr_ring(struct psp_context *psp) return false; } +static int psp_v11_0_ring_stop(struct psp_context *psp, + enum psp_ring_type ring_type) +{ + int ret = 0; + struct amdgpu_device *adev = psp->adev; + + /* Write the ring destroy command*/ + if (psp_v11_0_support_vmr_ring(psp)) + WREG32_SOC15(MP0, 0, mmMP0_SMN_C2PMSG_101, + GFX_CTRL_CMD_ID_DESTROY_GPCOM_RING); + else + WREG32_SOC15(MP0, 0, mmMP0_SMN_C2PMSG_64, + GFX_CTRL_CMD_ID_DESTROY_RINGS); + + /* there might be handshake issue with hardware which needs delay */ + mdelay(20); + + /* Wait for response flag (bit 31) */ + if (psp_v11_0_support_vmr_ring(psp)) + ret = psp_wait_for(psp, SOC15_REG_OFFSET(MP0, 0, mmMP0_SMN_C2PMSG_101), + 0x80000000, 0x80000000, false); + else + ret = psp_wait_for(psp, SOC15_REG_OFFSET(MP0, 0, mmMP0_SMN_C2PMSG_64), + 0x80000000, 0x80000000, false); + + return ret; +} + static int psp_v11_0_ring_create(struct psp_context *psp, enum psp_ring_type ring_type) { @@ -407,6 +435,12 @@ static int psp_v11_0_ring_create(struct psp_context *psp, struct amdgpu_device *adev = psp->adev; if (psp_v11_0_support_vmr_ring(psp)) { + ret = psp_v11_0_ring_stop(psp, ring_type); + if (ret) { + DRM_ERROR("psp_v11_0_ring_stop_sriov failed!\n"); + return ret; + } + /* Write low address of the ring to C2PMSG_102 */ psp_ring_reg = lower_32_bits(ring->ring_mem_mc_addr); WREG32_SOC15(MP0, 0, mmMP0_SMN_C2PMSG_102, psp_ring_reg); @@ -451,33 +485,6 @@ static int psp_v11_0_ring_create(struct psp_context *psp, return ret; } -static int psp_v11_0_ring_stop(struct psp_context *psp, - enum psp_ring_type ring_type) -{ - int ret = 0; - struct amdgpu_device *adev = psp->adev; - - /* Write the ring destroy command*/ - if (psp_v11_0_support_vmr_ring(psp)) - WREG32_SOC15(MP0, 0, mmMP0_SMN_C2PMSG_101, - GFX_CTRL_CMD_ID_DESTROY_GPCOM_RING); - else - WREG32_SOC15(MP0, 0, mmMP0_SMN_C2PMSG_64, - GFX_CTRL_CMD_ID_DESTROY_RINGS); - - /* there might be handshake issue with hardware which needs delay */ - mdelay(20); - - /* Wait for response flag (bit 31) */ - if (psp_v11_0_support_vmr_ring(psp)) - ret = psp_wait_for(psp, SOC15_REG_OFFSET(MP0, 0, mmMP0_SMN_C2PMSG_101), - 0x80000000, 0x80000000, false); - else - ret = psp_wait_for(psp, SOC15_REG_OFFSET(MP0, 0, mmMP0_SMN_C2PMSG_64), - 0x80000000, 0x80000000, false); - - return ret; -} static int psp_v11_0_ring_destroy(struct psp_context *psp, enum psp_ring_type ring_type) diff --git a/drivers/gpu/drm/amd/amdgpu/si_ih.c b/drivers/gpu/drm/amd/amdgpu/si_ih.c index 57bb5f9e08b2..88ae27a5a03d 100644 --- a/drivers/gpu/drm/amd/amdgpu/si_ih.c +++ b/drivers/gpu/drm/amd/amdgpu/si_ih.c @@ -64,7 +64,8 @@ static int si_ih_irq_init(struct amdgpu_device *adev) u32 interrupt_cntl, ih_cntl, ih_rb_cntl; si_ih_disable_interrupts(adev); - WREG32(INTERRUPT_CNTL2, adev->irq.ih.gpu_addr >> 8); + /* set dummy read address to dummy page address */ + WREG32(INTERRUPT_CNTL2, adev->dummy_page_addr >> 8); interrupt_cntl = RREG32(INTERRUPT_CNTL); interrupt_cntl &= ~IH_DUMMY_RD_OVERRIDE; interrupt_cntl &= ~IH_REQ_NONSNOOP_EN; diff --git a/drivers/gpu/drm/amd/amdgpu/soc15.h b/drivers/gpu/drm/amd/amdgpu/soc15.h index a3dde0c31f57..a1d4ea69a284 100644 --- a/drivers/gpu/drm/amd/amdgpu/soc15.h +++ b/drivers/gpu/drm/amd/amdgpu/soc15.h @@ -28,8 +28,8 @@ #include "nbio_v7_0.h" #include "nbio_v7_4.h" -#define SOC15_FLUSH_GPU_TLB_NUM_WREG 4 -#define SOC15_FLUSH_GPU_TLB_NUM_REG_WAIT 1 +#define SOC15_FLUSH_GPU_TLB_NUM_WREG 6 +#define SOC15_FLUSH_GPU_TLB_NUM_REG_WAIT 3 extern const struct amd_ip_funcs soc15_common_ip_funcs; diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager.c b/drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager.c index d985e31fcc1e..f335f73919d1 100644 --- a/drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager.c +++ b/drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager.c @@ -1676,7 +1676,8 @@ static int allocate_hiq_sdma_mqd(struct device_queue_manager *dqm) struct kfd_dev *dev = dqm->dev; struct kfd_mem_obj *mem_obj = &dqm->hiq_sdma_mqd; uint32_t size = dqm->mqd_mgrs[KFD_MQD_TYPE_SDMA]->mqd_size * - dev->device_info->num_sdma_engines * + (dev->device_info->num_sdma_engines + + dev->device_info->num_xgmi_sdma_engines) * dev->device_info->num_sdma_queues_per_engine + dqm->mqd_mgrs[KFD_MQD_TYPE_HIQ]->mqd_size; diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_interrupt.c b/drivers/gpu/drm/amd/amdkfd/kfd_interrupt.c index c56ac47cd318..bc47f6a44456 100644 --- a/drivers/gpu/drm/amd/amdkfd/kfd_interrupt.c +++ b/drivers/gpu/drm/amd/amdkfd/kfd_interrupt.c @@ -62,6 +62,11 @@ int kfd_interrupt_init(struct kfd_dev *kfd) } kfd->ih_wq = alloc_workqueue("KFD IH", WQ_HIGHPRI, 1); + if (unlikely(!kfd->ih_wq)) { + kfifo_free(&kfd->ih_fifo); + dev_err(kfd_chardev(), "Failed to allocate KFD IH workqueue\n"); + return -ENOMEM; + } spin_lock_init(&kfd->interrupt_lock); INIT_WORK(&kfd->interrupt_work, interrupt_wq); diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c index 4139f129eafb..4e9c15c409ba 100644 --- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c +++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c @@ -940,6 +940,11 @@ static int dm_late_init(void *handle) params.backlight_lut_array_size = 16; params.backlight_lut_array = linear_lut; + /* Min backlight level after ABM reduction, Don't allow below 1% + * 0xFFFF x 0.01 = 0x28F + */ + params.min_abm_backlight = 0x28F; + /* todo will enable for navi10 */ if (adev->asic_type <= CHIP_RAVEN) { ret = dmcu_load_iram(dmcu, params); diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_pp_smu.c b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_pp_smu.c index f4cfa0caeba8..785322cd4c6c 100644 --- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_pp_smu.c +++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_pp_smu.c @@ -342,7 +342,8 @@ bool dm_pp_get_clock_levels_by_type( if (adev->powerplay.pp_funcs && adev->powerplay.pp_funcs->get_clock_by_type) { if (adev->powerplay.pp_funcs->get_clock_by_type(pp_handle, dc_to_pp_clock_type(clk_type), &pp_clks)) { - /* Error in pplib. Provide default values. */ + /* Error in pplib. Provide default values. */ + get_default_clock_levels(clk_type, dc_clks); return true; } } else if (adev->smu.funcs && adev->smu.funcs->get_clock_by_type) { diff --git a/drivers/gpu/drm/amd/display/dc/clk_mgr/dcn20/dcn20_clk_mgr.c b/drivers/gpu/drm/amd/display/dc/clk_mgr/dcn20/dcn20_clk_mgr.c index 3e8ac303bd52..23ec283eb07b 100644 --- a/drivers/gpu/drm/amd/display/dc/clk_mgr/dcn20/dcn20_clk_mgr.c +++ b/drivers/gpu/drm/amd/display/dc/clk_mgr/dcn20/dcn20_clk_mgr.c @@ -320,6 +320,8 @@ void dcn2_update_clocks_fpga(struct clk_mgr *clk_mgr, struct dc_state *context, bool safe_to_lower) { + struct clk_mgr_internal *clk_mgr_int = TO_CLK_MGR_INTERNAL(clk_mgr); + struct dc_clocks *new_clocks = &context->bw_ctx.bw.dcn.clk; /* Min fclk = 1.2GHz since all the extra scemi logic seems to run off of it */ int fclk_adj = new_clocks->fclk_khz > 1200000 ? new_clocks->fclk_khz : 1200000; @@ -357,14 +359,18 @@ void dcn2_update_clocks_fpga(struct clk_mgr *clk_mgr, clk_mgr->clks.dispclk_khz = new_clocks->dispclk_khz; } - /* Both fclk and dppclk ref are run on the same scemi clock so we - * need to keep the same value for both + /* Both fclk and ref_dppclk run on the same scemi clock. + * So take the higher value since the DPP DTO is typically programmed + * such that max dppclk is 1:1 with ref_dppclk. */ if (clk_mgr->clks.fclk_khz > clk_mgr->clks.dppclk_khz) clk_mgr->clks.dppclk_khz = clk_mgr->clks.fclk_khz; if (clk_mgr->clks.dppclk_khz > clk_mgr->clks.fclk_khz) clk_mgr->clks.fclk_khz = clk_mgr->clks.dppclk_khz; + // Both fclk and ref_dppclk run on the same scemi clock. + clk_mgr_int->dccg->ref_dppclk = clk_mgr->clks.fclk_khz; + dm_set_dcn_clocks(clk_mgr->ctx, &clk_mgr->clks); } diff --git a/drivers/gpu/drm/amd/display/dc/clk_mgr/dcn21/rn_clk_mgr_vbios_smu.c b/drivers/gpu/drm/amd/display/dc/clk_mgr/dcn21/rn_clk_mgr_vbios_smu.c index 50984c1811bb..468c6bb0e311 100644 --- a/drivers/gpu/drm/amd/display/dc/clk_mgr/dcn21/rn_clk_mgr_vbios_smu.c +++ b/drivers/gpu/drm/amd/display/dc/clk_mgr/dcn21/rn_clk_mgr_vbios_smu.c @@ -33,7 +33,7 @@ #include "mp/mp_12_0_0_sh_mask.h" #define REG(reg_name) \ - (MP1_BASE.instance[0].segment[mm ## reg_name ## _BASE_IDX] + mm ## reg_name) + (MP0_BASE.instance[0].segment[mm ## reg_name ## _BASE_IDX] + mm ## reg_name) #define FN(reg_name, field) \ FD(reg_name##__##field) diff --git a/drivers/gpu/drm/amd/display/dc/core/dc_link.c b/drivers/gpu/drm/amd/display/dc/core/dc_link.c index ca20b150afcc..067f5579f452 100644 --- a/drivers/gpu/drm/amd/display/dc/core/dc_link.c +++ b/drivers/gpu/drm/amd/display/dc/core/dc_link.c @@ -2169,8 +2169,10 @@ static void disable_link(struct dc_link *link, enum signal_type signal) dp_set_fec_ready(link, false); } #endif - } else - link->link_enc->funcs->disable_output(link->link_enc, signal); + } else { + if (signal != SIGNAL_TYPE_VIRTUAL) + link->link_enc->funcs->disable_output(link->link_enc, signal); + } if (signal == SIGNAL_TYPE_DISPLAY_PORT_MST) { /* MST disable link only when no stream use the link */ @@ -2217,7 +2219,7 @@ static bool dp_active_dongle_validate_timing( break; } - if (dongle_caps->dongle_type != DISPLAY_DONGLE_DP_HDMI_CONVERTER || + if (dpcd_caps->dongle_type != DISPLAY_DONGLE_DP_HDMI_CONVERTER || dongle_caps->extendedCapValid == false) return true; @@ -2767,6 +2769,15 @@ void core_link_enable_stream( CONTROLLER_DP_TEST_PATTERN_VIDEOMODE, COLOR_DEPTH_UNDEFINED); + /* This second call is needed to reconfigure the DIG + * as a workaround for the incorrect value being applied + * from transmitter control. + */ + if (!dc_is_virtual_signal(pipe_ctx->stream->signal)) + stream->link->link_enc->funcs->setup( + stream->link->link_enc, + pipe_ctx->stream->signal); + #ifdef CONFIG_DRM_AMD_DC_DSC_SUPPORT if (pipe_ctx->stream->timing.flags.DSC) { if (dc_is_dp_signal(pipe_ctx->stream->signal) || diff --git a/drivers/gpu/drm/amd/display/dc/core/dc_link_dp.c b/drivers/gpu/drm/amd/display/dc/core/dc_link_dp.c index f5742719b5d9..5a583707d198 100644 --- a/drivers/gpu/drm/amd/display/dc/core/dc_link_dp.c +++ b/drivers/gpu/drm/amd/display/dc/core/dc_link_dp.c @@ -2545,6 +2545,7 @@ static void get_active_converter_info( uint8_t data, struct dc_link *link) { union dp_downstream_port_present ds_port = { .byte = data }; + memset(&link->dpcd_caps.dongle_caps, 0, sizeof(link->dpcd_caps.dongle_caps)); /* decode converter info*/ if (!ds_port.fields.PORT_PRESENT) { @@ -2691,6 +2692,7 @@ static void dp_wa_power_up_0010FA(struct dc_link *link, uint8_t *dpcd_data, * keep receiver powered all the time.*/ case DP_BRANCH_DEVICE_ID_0010FA: case DP_BRANCH_DEVICE_ID_0080E1: + case DP_BRANCH_DEVICE_ID_00E04C: link->wa_flags.dp_keep_receiver_powered = true; break; diff --git a/drivers/gpu/drm/amd/display/dc/core/dc_link_hwss.c b/drivers/gpu/drm/amd/display/dc/core/dc_link_hwss.c index 79438c4f1e20..a519dbc5ecb6 100644 --- a/drivers/gpu/drm/amd/display/dc/core/dc_link_hwss.c +++ b/drivers/gpu/drm/amd/display/dc/core/dc_link_hwss.c @@ -277,7 +277,8 @@ void dp_retrain_link_dp_test(struct dc_link *link, if (pipes[i].stream != NULL && !pipes[i].top_pipe && !pipes[i].prev_odm_pipe && pipes[i].stream->link != NULL && - pipes[i].stream_res.stream_enc != NULL) { + pipes[i].stream_res.stream_enc != NULL && + pipes[i].stream->link == link) { udelay(100); pipes[i].stream_res.stream_enc->funcs->dp_blank( diff --git a/drivers/gpu/drm/amd/display/dc/core/dc_stream.c b/drivers/gpu/drm/amd/display/dc/core/dc_stream.c index bf1d7bb90e0f..bb09243758fe 100644 --- a/drivers/gpu/drm/amd/display/dc/core/dc_stream.c +++ b/drivers/gpu/drm/amd/display/dc/core/dc_stream.c @@ -423,10 +423,10 @@ bool dc_stream_add_writeback(struct dc *dc, if (dwb->funcs->is_enabled(dwb)) { /* writeback pipe already enabled, only need to update */ - dc->hwss.update_writeback(dc, stream_status, wb_info); + dc->hwss.update_writeback(dc, stream_status, wb_info, dc->current_state); } else { /* Enable writeback pipe from scratch*/ - dc->hwss.enable_writeback(dc, stream_status, wb_info); + dc->hwss.enable_writeback(dc, stream_status, wb_info, dc->current_state); } } diff --git a/drivers/gpu/drm/amd/display/dc/dce/dce_abm.c b/drivers/gpu/drm/amd/display/dc/dce/dce_abm.c index 58bd131d5b48..7700a855d77c 100644 --- a/drivers/gpu/drm/amd/display/dc/dce/dce_abm.c +++ b/drivers/gpu/drm/amd/display/dc/dce/dce_abm.c @@ -77,6 +77,9 @@ static bool dce_abm_set_pipe(struct abm *abm, uint32_t controller_id) /* notifyDMCUMsg */ REG_UPDATE(MASTER_COMM_CNTL_REG, MASTER_COMM_INTERRUPT, 1); + REG_WAIT(MASTER_COMM_CNTL_REG, MASTER_COMM_INTERRUPT, 0, + 1, 80000); + return true; } diff --git a/drivers/gpu/drm/amd/display/dc/dcn20/dcn20_hwseq.c b/drivers/gpu/drm/amd/display/dc/dcn20/dcn20_hwseq.c index 1212da12c414..937a8ba81160 100644 --- a/drivers/gpu/drm/amd/display/dc/dcn20/dcn20_hwseq.c +++ b/drivers/gpu/drm/amd/display/dc/dcn20/dcn20_hwseq.c @@ -1103,6 +1103,25 @@ void dcn20_pipe_control_lock( if (pipe->plane_state != NULL) flip_immediate = pipe->plane_state->flip_immediate; + if (flip_immediate && lock) { + const int TIMEOUT_FOR_FLIP_PENDING = 100000; + int i; + + for (i = 0; i < TIMEOUT_FOR_FLIP_PENDING; ++i) { + if (!pipe->plane_res.hubp->funcs->hubp_is_flip_pending(pipe->plane_res.hubp)) + break; + udelay(1); + } + + if (pipe->bottom_pipe != NULL) { + for (i = 0; i < TIMEOUT_FOR_FLIP_PENDING; ++i) { + if (!pipe->bottom_pipe->plane_res.hubp->funcs->hubp_is_flip_pending(pipe->bottom_pipe->plane_res.hubp)) + break; + udelay(1); + } + } + } + /* In flip immediate and pipe splitting case, we need to use GSL * for synchronization. Only do setup on locking and on flip type change. */ @@ -1337,7 +1356,8 @@ bool dcn20_update_bandwidth( static void dcn20_enable_writeback( struct dc *dc, const struct dc_stream_status *stream_status, - struct dc_writeback_info *wb_info) + struct dc_writeback_info *wb_info, + struct dc_state *context) { struct dwbc *dwb; struct mcif_wb *mcif_wb; @@ -1354,7 +1374,7 @@ static void dcn20_enable_writeback( optc->funcs->set_dwb_source(optc, wb_info->dwb_pipe_inst); /* set MCIF_WB buffer and arbitration configuration */ mcif_wb->funcs->config_mcif_buf(mcif_wb, &wb_info->mcif_buf_params, wb_info->dwb_params.dest_height); - mcif_wb->funcs->config_mcif_arb(mcif_wb, &dc->current_state->bw_ctx.bw.dcn.bw_writeback.mcif_wb_arb[wb_info->dwb_pipe_inst]); + mcif_wb->funcs->config_mcif_arb(mcif_wb, &context->bw_ctx.bw.dcn.bw_writeback.mcif_wb_arb[wb_info->dwb_pipe_inst]); /* Enable MCIF_WB */ mcif_wb->funcs->enable_mcif(mcif_wb); /* Enable DWB */ diff --git a/drivers/gpu/drm/amd/display/dc/dcn20/dcn20_optc.c b/drivers/gpu/drm/amd/display/dc/dcn20/dcn20_optc.c index 2137e2be2140..dda90995ba93 100644 --- a/drivers/gpu/drm/amd/display/dc/dcn20/dcn20_optc.c +++ b/drivers/gpu/drm/amd/display/dc/dcn20/dcn20_optc.c @@ -287,6 +287,10 @@ void optc2_get_optc_source(struct timing_generator *optc, *num_of_src_opp = 2; else *num_of_src_opp = 1; + + /* Work around VBIOS not updating OPTC_NUM_OF_INPUT_SEGMENT */ + if (*src_opp_id_1 == 0xf) + *num_of_src_opp = 1; } void optc2_set_dwb_source(struct timing_generator *optc, diff --git a/drivers/gpu/drm/amd/display/dc/dcn20/dcn20_resource.c b/drivers/gpu/drm/amd/display/dc/dcn20/dcn20_resource.c index 6b2f2f1a1c9c..78b2cc2e122f 100644 --- a/drivers/gpu/drm/amd/display/dc/dcn20/dcn20_resource.c +++ b/drivers/gpu/drm/amd/display/dc/dcn20/dcn20_resource.c @@ -1765,7 +1765,7 @@ int dcn20_populate_dml_pipes_from_context( pipe_cnt = i; continue; } - if (!resource_are_streams_timing_synchronizable( + if (dc->debug.disable_timing_sync || !resource_are_streams_timing_synchronizable( res_ctx->pipe_ctx[pipe_cnt].stream, res_ctx->pipe_ctx[i].stream)) { synchronized_vblank = false; @@ -2474,6 +2474,7 @@ bool dcn20_fast_validate_bw( &context->res_ctx, dc->res_pool, pipe, hsplit_pipe)) goto validate_fail; + dcn20_build_mapped_resource(dc, context, pipe->stream); } else dcn20_split_stream_for_mpc( &context->res_ctx, dc->res_pool, @@ -3040,7 +3041,7 @@ static void cap_soc_clocks( static void update_bounding_box(struct dc *dc, struct _vcs_dpi_soc_bounding_box_st *bb, struct pp_smu_nv_clock_table *max_clocks, unsigned int *uclk_states, unsigned int num_states) { - struct _vcs_dpi_voltage_scaling_st calculated_states[MAX_CLOCK_LIMIT_STATES] = {0}; + struct _vcs_dpi_voltage_scaling_st calculated_states[MAX_CLOCK_LIMIT_STATES]; int i; int num_calculated_states = 0; int min_dcfclk = 0; @@ -3048,6 +3049,8 @@ static void update_bounding_box(struct dc *dc, struct _vcs_dpi_soc_bounding_box_ if (num_states == 0) return; + memset(calculated_states, 0, sizeof(calculated_states)); + if (dc->bb_overrides.min_dcfclk_mhz > 0) min_dcfclk = dc->bb_overrides.min_dcfclk_mhz; else diff --git a/drivers/gpu/drm/amd/display/dc/dcn21/dcn21_hubbub.c b/drivers/gpu/drm/amd/display/dc/dcn21/dcn21_hubbub.c index d1266741763b..f5f6b4a0f0aa 100644 --- a/drivers/gpu/drm/amd/display/dc/dcn21/dcn21_hubbub.c +++ b/drivers/gpu/drm/amd/display/dc/dcn21/dcn21_hubbub.c @@ -22,6 +22,7 @@ * Authors: AMD * */ +#include #include "dm_services.h" #include "dcn20/dcn20_hubbub.h" #include "dcn21_hubbub.h" @@ -71,30 +72,39 @@ static uint32_t convert_and_clamp( void dcn21_dchvm_init(struct hubbub *hubbub) { struct dcn20_hubbub *hubbub1 = TO_DCN20_HUBBUB(hubbub); + uint32_t riommu_active; + int i; //Init DCHVM block REG_UPDATE(DCHVM_CTRL0, HOSTVM_INIT_REQ, 1); //Poll until RIOMMU_ACTIVE = 1 - //TODO: Figure out interval us and retry count - REG_WAIT(DCHVM_RIOMMU_STAT0, RIOMMU_ACTIVE, 1, 5, 100); + for (i = 0; i < 100; i++) { + REG_GET(DCHVM_RIOMMU_STAT0, RIOMMU_ACTIVE, &riommu_active); - //Reflect the power status of DCHUBBUB - REG_UPDATE(DCHVM_RIOMMU_CTRL0, HOSTVM_POWERSTATUS, 1); + if (riommu_active) + break; + else + udelay(5); + } - //Start rIOMMU prefetching - REG_UPDATE(DCHVM_RIOMMU_CTRL0, HOSTVM_PREFETCH_REQ, 1); + if (riommu_active) { + //Reflect the power status of DCHUBBUB + REG_UPDATE(DCHVM_RIOMMU_CTRL0, HOSTVM_POWERSTATUS, 1); - // Enable dynamic clock gating - REG_UPDATE_4(DCHVM_CLK_CTRL, - HVM_DISPCLK_R_GATE_DIS, 0, - HVM_DISPCLK_G_GATE_DIS, 0, - HVM_DCFCLK_R_GATE_DIS, 0, - HVM_DCFCLK_G_GATE_DIS, 0); + //Start rIOMMU prefetching + REG_UPDATE(DCHVM_RIOMMU_CTRL0, HOSTVM_PREFETCH_REQ, 1); - //Poll until HOSTVM_PREFETCH_DONE = 1 - //TODO: Figure out interval us and retry count - REG_WAIT(DCHVM_RIOMMU_STAT0, HOSTVM_PREFETCH_DONE, 1, 5, 100); + // Enable dynamic clock gating + REG_UPDATE_4(DCHVM_CLK_CTRL, + HVM_DISPCLK_R_GATE_DIS, 0, + HVM_DISPCLK_G_GATE_DIS, 0, + HVM_DCFCLK_R_GATE_DIS, 0, + HVM_DCFCLK_G_GATE_DIS, 0); + + //Poll until HOSTVM_PREFETCH_DONE = 1 + REG_WAIT(DCHVM_RIOMMU_STAT0, HOSTVM_PREFETCH_DONE, 1, 5, 100); + } } static int hubbub21_init_dchub(struct hubbub *hubbub, diff --git a/drivers/gpu/drm/amd/display/dc/inc/hw_sequencer.h b/drivers/gpu/drm/amd/display/dc/inc/hw_sequencer.h index 3a938cd414ea..f6cc2d6f576d 100644 --- a/drivers/gpu/drm/amd/display/dc/inc/hw_sequencer.h +++ b/drivers/gpu/drm/amd/display/dc/inc/hw_sequencer.h @@ -321,10 +321,12 @@ struct hw_sequencer_funcs { struct dc_state *context); void (*update_writeback)(struct dc *dc, const struct dc_stream_status *stream_status, - struct dc_writeback_info *wb_info); + struct dc_writeback_info *wb_info, + struct dc_state *context); void (*enable_writeback)(struct dc *dc, const struct dc_stream_status *stream_status, - struct dc_writeback_info *wb_info); + struct dc_writeback_info *wb_info, + struct dc_state *context); void (*disable_writeback)(struct dc *dc, unsigned int dwb_pipe_inst); #endif diff --git a/drivers/gpu/drm/amd/display/include/ddc_service_types.h b/drivers/gpu/drm/amd/display/include/ddc_service_types.h index 18961707db23..9ad49da50a17 100644 --- a/drivers/gpu/drm/amd/display/include/ddc_service_types.h +++ b/drivers/gpu/drm/amd/display/include/ddc_service_types.h @@ -31,6 +31,8 @@ #define DP_BRANCH_DEVICE_ID_0022B9 0x0022B9 #define DP_BRANCH_DEVICE_ID_00001A 0x00001A #define DP_BRANCH_DEVICE_ID_0080E1 0x0080e1 +#define DP_BRANCH_DEVICE_ID_90CC24 0x90CC24 +#define DP_BRANCH_DEVICE_ID_00E04C 0x00E04C enum ddc_result { DDC_RESULT_UNKNOWN = 0, diff --git a/drivers/gpu/drm/amd/display/modules/freesync/freesync.c b/drivers/gpu/drm/amd/display/modules/freesync/freesync.c index ec70c9b12e1a..0978c698f0f8 100644 --- a/drivers/gpu/drm/amd/display/modules/freesync/freesync.c +++ b/drivers/gpu/drm/amd/display/modules/freesync/freesync.c @@ -743,6 +743,10 @@ void mod_freesync_build_vrr_params(struct mod_freesync *mod_freesync, nominal_field_rate_in_uhz = mod_freesync_calc_nominal_field_rate(stream); + /* Rounded to the nearest Hz */ + nominal_field_rate_in_uhz = 1000000ULL * + div_u64(nominal_field_rate_in_uhz + 500000, 1000000); + min_refresh_in_uhz = in_config->min_refresh_in_uhz; max_refresh_in_uhz = in_config->max_refresh_in_uhz; @@ -996,14 +1000,13 @@ unsigned long long mod_freesync_calc_nominal_field_rate( const struct dc_stream_state *stream) { unsigned long long nominal_field_rate_in_uhz = 0; + unsigned int total = stream->timing.h_total * stream->timing.v_total; - /* Calculate nominal field rate for stream */ + /* Calculate nominal field rate for stream, rounded up to nearest integer */ nominal_field_rate_in_uhz = stream->timing.pix_clk_100hz / 10; nominal_field_rate_in_uhz *= 1000ULL * 1000ULL * 1000ULL; - nominal_field_rate_in_uhz = div_u64(nominal_field_rate_in_uhz, - stream->timing.h_total); - nominal_field_rate_in_uhz = div_u64(nominal_field_rate_in_uhz, - stream->timing.v_total); + + nominal_field_rate_in_uhz = div_u64(nominal_field_rate_in_uhz, total); return nominal_field_rate_in_uhz; } diff --git a/drivers/gpu/drm/amd/display/modules/power/power_helpers.c b/drivers/gpu/drm/amd/display/modules/power/power_helpers.c index 05e2be856037..ba1aafe40512 100644 --- a/drivers/gpu/drm/amd/display/modules/power/power_helpers.c +++ b/drivers/gpu/drm/amd/display/modules/power/power_helpers.c @@ -115,7 +115,7 @@ static const struct abm_parameters * const abm_settings[] = { /* NOTE: iRAM is 256B in size */ struct iram_table_v_2 { /* flags */ - uint16_t flags; /* 0x00 U16 */ + uint16_t min_abm_backlight; /* 0x00 U16 */ /* parameters for ABM2.0 algorithm */ uint8_t min_reduction[NUM_AMBI_LEVEL][NUM_AGGR_LEVEL]; /* 0x02 U0.8 */ @@ -140,10 +140,10 @@ struct iram_table_v_2 { /* For reading PSR State directly from IRAM */ uint8_t psr_state; /* 0xf0 */ - uint8_t dmcu_mcp_interface_version; /* 0xf1 */ - uint8_t dmcu_abm_feature_version; /* 0xf2 */ - uint8_t dmcu_psr_feature_version; /* 0xf3 */ - uint16_t dmcu_version; /* 0xf4 */ + uint8_t dmcu_mcp_interface_version; /* 0xf1 */ + uint8_t dmcu_abm_feature_version; /* 0xf2 */ + uint8_t dmcu_psr_feature_version; /* 0xf3 */ + uint16_t dmcu_version; /* 0xf4 */ uint8_t dmcu_state; /* 0xf6 */ uint16_t blRampReduction; /* 0xf7 */ @@ -164,42 +164,43 @@ struct iram_table_v_2_2 { uint8_t max_reduction[NUM_AMBI_LEVEL][NUM_AGGR_LEVEL]; /* 0x16 U0.8 */ uint8_t bright_pos_gain[NUM_AMBI_LEVEL][NUM_AGGR_LEVEL]; /* 0x2a U2.6 */ uint8_t dark_pos_gain[NUM_AMBI_LEVEL][NUM_AGGR_LEVEL]; /* 0x3e U2.6 */ - uint8_t hybrid_factor[NUM_AGGR_LEVEL]; /* 0x52 U0.8 */ - uint8_t contrast_factor[NUM_AGGR_LEVEL]; /* 0x56 U0.8 */ - uint8_t deviation_gain[NUM_AGGR_LEVEL]; /* 0x5a U0.8 */ - uint8_t iir_curve[NUM_AMBI_LEVEL]; /* 0x5e U0.8 */ - uint8_t min_knee[NUM_AGGR_LEVEL]; /* 0x63 U0.8 */ - uint8_t max_knee[NUM_AGGR_LEVEL]; /* 0x67 U0.8 */ - uint8_t pad[21]; /* 0x6b U0.8 */ + uint8_t hybrid_factor[NUM_AGGR_LEVEL]; /* 0x52 U0.8 */ + uint8_t contrast_factor[NUM_AGGR_LEVEL]; /* 0x56 U0.8 */ + uint8_t deviation_gain[NUM_AGGR_LEVEL]; /* 0x5a U0.8 */ + uint8_t iir_curve[NUM_AMBI_LEVEL]; /* 0x5e U0.8 */ + uint8_t min_knee[NUM_AGGR_LEVEL]; /* 0x63 U0.8 */ + uint8_t max_knee[NUM_AGGR_LEVEL]; /* 0x67 U0.8 */ + uint16_t min_abm_backlight; /* 0x6b U16 */ + uint8_t pad[19]; /* 0x6d U0.8 */ /* parameters for crgb conversion */ - uint16_t crgb_thresh[NUM_POWER_FN_SEGS]; /* 0x80 U3.13 */ - uint16_t crgb_offset[NUM_POWER_FN_SEGS]; /* 0x90 U1.15 */ - uint16_t crgb_slope[NUM_POWER_FN_SEGS]; /* 0xa0 U4.12 */ + uint16_t crgb_thresh[NUM_POWER_FN_SEGS]; /* 0x80 U3.13 */ + uint16_t crgb_offset[NUM_POWER_FN_SEGS]; /* 0x90 U1.15 */ + uint16_t crgb_slope[NUM_POWER_FN_SEGS]; /* 0xa0 U4.12 */ /* parameters for custom curve */ /* thresholds for brightness --> backlight */ - uint16_t backlight_thresholds[NUM_BL_CURVE_SEGS]; /* 0xb0 U16.0 */ + uint16_t backlight_thresholds[NUM_BL_CURVE_SEGS]; /* 0xb0 U16.0 */ /* offsets for brightness --> backlight */ - uint16_t backlight_offsets[NUM_BL_CURVE_SEGS]; /* 0xd0 U16.0 */ + uint16_t backlight_offsets[NUM_BL_CURVE_SEGS]; /* 0xd0 U16.0 */ /* For reading PSR State directly from IRAM */ - uint8_t psr_state; /* 0xf0 */ - uint8_t dmcu_mcp_interface_version; /* 0xf1 */ - uint8_t dmcu_abm_feature_version; /* 0xf2 */ - uint8_t dmcu_psr_feature_version; /* 0xf3 */ - uint16_t dmcu_version; /* 0xf4 */ - uint8_t dmcu_state; /* 0xf6 */ + uint8_t psr_state; /* 0xf0 */ + uint8_t dmcu_mcp_interface_version; /* 0xf1 */ + uint8_t dmcu_abm_feature_version; /* 0xf2 */ + uint8_t dmcu_psr_feature_version; /* 0xf3 */ + uint16_t dmcu_version; /* 0xf4 */ + uint8_t dmcu_state; /* 0xf6 */ - uint8_t dummy1; /* 0xf7 */ - uint8_t dummy2; /* 0xf8 */ - uint8_t dummy3; /* 0xf9 */ - uint8_t dummy4; /* 0xfa */ - uint8_t dummy5; /* 0xfb */ - uint8_t dummy6; /* 0xfc */ - uint8_t dummy7; /* 0xfd */ - uint8_t dummy8; /* 0xfe */ - uint8_t dummy9; /* 0xff */ + uint8_t dummy1; /* 0xf7 */ + uint8_t dummy2; /* 0xf8 */ + uint8_t dummy3; /* 0xf9 */ + uint8_t dummy4; /* 0xfa */ + uint8_t dummy5; /* 0xfb */ + uint8_t dummy6; /* 0xfc */ + uint8_t dummy7; /* 0xfd */ + uint8_t dummy8; /* 0xfe */ + uint8_t dummy9; /* 0xff */ }; #pragma pack(pop) @@ -271,7 +272,8 @@ void fill_iram_v_2(struct iram_table_v_2 *ram_table, struct dmcu_iram_parameters { unsigned int set = params.set; - ram_table->flags = 0x0; + ram_table->min_abm_backlight = + cpu_to_be16(params.min_abm_backlight); ram_table->deviation_gain = 0xb3; ram_table->blRampReduction = @@ -445,6 +447,9 @@ void fill_iram_v_2_2(struct iram_table_v_2_2 *ram_table, struct dmcu_iram_parame ram_table->flags = 0x0; + ram_table->min_abm_backlight = + cpu_to_be16(params.min_abm_backlight); + ram_table->deviation_gain[0] = 0xb3; ram_table->deviation_gain[1] = 0xa8; ram_table->deviation_gain[2] = 0x98; @@ -588,6 +593,10 @@ void fill_iram_v_2_3(struct iram_table_v_2_2 *ram_table, struct dmcu_iram_parame unsigned int set = params.set; ram_table->flags = 0x0; + + ram_table->min_abm_backlight = + cpu_to_be16(params.min_abm_backlight); + for (i = 0; i < NUM_AGGR_LEVEL; i++) { ram_table->hybrid_factor[i] = abm_settings[set][i].brightness_gain; ram_table->contrast_factor[i] = abm_settings[set][i].contrast_factor; diff --git a/drivers/gpu/drm/amd/display/modules/power/power_helpers.h b/drivers/gpu/drm/amd/display/modules/power/power_helpers.h index da5df00fedce..e54157026330 100644 --- a/drivers/gpu/drm/amd/display/modules/power/power_helpers.h +++ b/drivers/gpu/drm/amd/display/modules/power/power_helpers.h @@ -38,6 +38,7 @@ struct dmcu_iram_parameters { unsigned int backlight_lut_array_size; unsigned int backlight_ramping_reduction; unsigned int backlight_ramping_start; + unsigned int min_abm_backlight; unsigned int set; }; diff --git a/drivers/gpu/drm/amd/powerplay/amdgpu_smu.c b/drivers/gpu/drm/amd/powerplay/amdgpu_smu.c index 4acf139ea014..58c091ab67b2 100644 --- a/drivers/gpu/drm/amd/powerplay/amdgpu_smu.c +++ b/drivers/gpu/drm/amd/powerplay/amdgpu_smu.c @@ -1344,7 +1344,10 @@ static int smu_suspend(void *handle) int ret; struct amdgpu_device *adev = (struct amdgpu_device *)handle; struct smu_context *smu = &adev->smu; - bool baco_feature_is_enabled = smu_feature_is_enabled(smu, SMU_FEATURE_BACO_BIT); + bool baco_feature_is_enabled = false; + + if(!(adev->flags & AMD_IS_APU)) + baco_feature_is_enabled = smu_feature_is_enabled(smu, SMU_FEATURE_BACO_BIT); ret = smu_system_features_control(smu, false); if (ret) diff --git a/drivers/gpu/drm/amd/powerplay/hwmgr/vega20_baco.c b/drivers/gpu/drm/amd/powerplay/hwmgr/vega20_baco.c index df6ff9252401..b068d1c7b44d 100644 --- a/drivers/gpu/drm/amd/powerplay/hwmgr/vega20_baco.c +++ b/drivers/gpu/drm/amd/powerplay/hwmgr/vega20_baco.c @@ -29,7 +29,7 @@ #include "vega20_baco.h" #include "vega20_smumgr.h" - +#include "amdgpu_ras.h" static const struct soc15_baco_cmd_entry clean_baco_tbl[] = { @@ -74,6 +74,7 @@ int vega20_baco_get_state(struct pp_hwmgr *hwmgr, enum BACO_STATE *state) int vega20_baco_set_state(struct pp_hwmgr *hwmgr, enum BACO_STATE state) { struct amdgpu_device *adev = (struct amdgpu_device *)(hwmgr->adev); + struct amdgpu_ras *ras = amdgpu_ras_get_context(adev); enum BACO_STATE cur_state; uint32_t data; @@ -84,10 +85,11 @@ int vega20_baco_set_state(struct pp_hwmgr *hwmgr, enum BACO_STATE state) return 0; if (state == BACO_STATE_IN) { - data = RREG32_SOC15(THM, 0, mmTHM_BACO_CNTL); - data |= 0x80000000; - WREG32_SOC15(THM, 0, mmTHM_BACO_CNTL, data); - + if (!ras || !ras->supported) { + data = RREG32_SOC15(THM, 0, mmTHM_BACO_CNTL); + data |= 0x80000000; + WREG32_SOC15(THM, 0, mmTHM_BACO_CNTL, data); + } if(smum_send_msg_to_smc_with_parameter(hwmgr, PPSMC_MSG_EnterBaco, 0)) return -EINVAL; diff --git a/drivers/gpu/drm/amd/powerplay/renoir_ppt.c b/drivers/gpu/drm/amd/powerplay/renoir_ppt.c index e62bfba51562..e5283dafc414 100644 --- a/drivers/gpu/drm/amd/powerplay/renoir_ppt.c +++ b/drivers/gpu/drm/amd/powerplay/renoir_ppt.c @@ -183,11 +183,13 @@ static int renoir_print_clk_levels(struct smu_context *smu, int i, size = 0, ret = 0; uint32_t cur_value = 0, value = 0, count = 0, min = 0, max = 0; DpmClocks_t *clk_table = smu->smu_table.clocks_table; - SmuMetrics_t metrics = {0}; + SmuMetrics_t metrics; if (!clk_table || clk_type >= SMU_CLK_COUNT) return -EINVAL; + memset(&metrics, 0, sizeof(metrics)); + ret = smu_update_table(smu, SMU_TABLE_SMU_METRICS, 0, (void *)&metrics, false); if (ret) diff --git a/drivers/gpu/drm/arm/display/komeda/komeda_crtc.c b/drivers/gpu/drm/arm/display/komeda/komeda_crtc.c index 624d257da20f..52c42569a111 100644 --- a/drivers/gpu/drm/arm/display/komeda/komeda_crtc.c +++ b/drivers/gpu/drm/arm/display/komeda/komeda_crtc.c @@ -250,6 +250,7 @@ komeda_crtc_atomic_enable(struct drm_crtc *crtc, { komeda_crtc_prepare(to_kcrtc(crtc)); drm_crtc_vblank_on(crtc); + WARN_ON(drm_crtc_vblank_get(crtc)); komeda_crtc_do_flush(crtc, old); } @@ -319,6 +320,7 @@ komeda_crtc_atomic_disable(struct drm_crtc *crtc, } } + drm_crtc_vblank_put(crtc); drm_crtc_vblank_off(crtc); komeda_crtc_unprepare(kcrtc); } diff --git a/drivers/gpu/drm/bridge/adv7511/adv7511_drv.c b/drivers/gpu/drm/bridge/adv7511/adv7511_drv.c index 9e13e466e72c..f9e07b46d2d6 100644 --- a/drivers/gpu/drm/bridge/adv7511/adv7511_drv.c +++ b/drivers/gpu/drm/bridge/adv7511/adv7511_drv.c @@ -356,6 +356,9 @@ static void __adv7511_power_on(struct adv7511 *adv7511) regmap_update_bits(adv7511->regmap, ADV7511_REG_POWER2, ADV7511_REG_POWER2_HPD_SRC_MASK, ADV7511_REG_POWER2_HPD_SRC_NONE); + + /* HACK: If we don't delay here edid probing doesn't work properly */ + msleep(200); } static void adv7511_power_on(struct adv7511 *adv7511) diff --git a/drivers/gpu/drm/bridge/analogix-anx78xx.c b/drivers/gpu/drm/bridge/analogix-anx78xx.c index 3c7cc5af735c..56df07cdab68 100644 --- a/drivers/gpu/drm/bridge/analogix-anx78xx.c +++ b/drivers/gpu/drm/bridge/analogix-anx78xx.c @@ -715,7 +715,9 @@ static int anx78xx_init_pdata(struct anx78xx *anx78xx) /* 1.0V digital core power regulator */ pdata->dvdd10 = devm_regulator_get(dev, "dvdd10"); if (IS_ERR(pdata->dvdd10)) { - DRM_ERROR("DVDD10 regulator not found\n"); + if (PTR_ERR(pdata->dvdd10) != -EPROBE_DEFER) + DRM_ERROR("DVDD10 regulator not found\n"); + return PTR_ERR(pdata->dvdd10); } @@ -1332,7 +1334,9 @@ static int anx78xx_i2c_probe(struct i2c_client *client, err = anx78xx_init_pdata(anx78xx); if (err) { - DRM_ERROR("Failed to initialize pdata: %d\n", err); + if (err != -EPROBE_DEFER) + DRM_ERROR("Failed to initialize pdata: %d\n", err); + return err; } diff --git a/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c b/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c index 521d689413c8..1326f2c734bf 100644 --- a/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c +++ b/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c @@ -36,6 +36,7 @@ #include "dw-hdmi-cec.h" #include "dw-hdmi.h" +#define DDC_CI_ADDR 0x37 #define DDC_SEGMENT_ADDR 0x30 #define HDMI_EDID_LEN 512 @@ -398,6 +399,15 @@ static int dw_hdmi_i2c_xfer(struct i2c_adapter *adap, u8 addr = msgs[0].addr; int i, ret = 0; + if (addr == DDC_CI_ADDR) + /* + * The internal I2C controller does not support the multi-byte + * read and write operations needed for DDC/CI. + * TOFIX: Blacklist the DDC/CI address until we filter out + * unsupported I2C operations. + */ + return -EOPNOTSUPP; + dev_dbg(hdmi->dev, "xfer: num: %d, addr: %#x\n", num, addr); for (i = 0; i < num; i++) { @@ -2023,7 +2033,7 @@ static int dw_hdmi_setup(struct dw_hdmi *hdmi, struct drm_display_mode *mode) /* HDMI Initialization Step E - Configure audio */ hdmi_clk_regenerator_update_pixel_clock(hdmi); - hdmi_enable_audio_clk(hdmi, true); + hdmi_enable_audio_clk(hdmi, hdmi->audio_enable); } /* not for DVI mode */ diff --git a/drivers/gpu/drm/drm_dp_mst_topology.c b/drivers/gpu/drm/drm_dp_mst_topology.c index 82add736e17d..86c17896b532 100644 --- a/drivers/gpu/drm/drm_dp_mst_topology.c +++ b/drivers/gpu/drm/drm_dp_mst_topology.c @@ -2465,9 +2465,11 @@ int drm_dp_update_payload_part1(struct drm_dp_mst_topology_mgr *mgr) drm_dp_mst_topology_put_port(port); } - for (i = 0; i < mgr->max_payloads; i++) { - if (mgr->payloads[i].payload_state != DP_PAYLOAD_DELETE_LOCAL) + for (i = 0; i < mgr->max_payloads; /* do nothing */) { + if (mgr->payloads[i].payload_state != DP_PAYLOAD_DELETE_LOCAL) { + i++; continue; + } DRM_DEBUG_KMS("removing payload %d\n", i); for (j = i; j < mgr->max_payloads - 1; j++) { diff --git a/drivers/gpu/drm/drm_edid.c b/drivers/gpu/drm/drm_edid.c index a174d8e6b6eb..9e4f99c06afe 100644 --- a/drivers/gpu/drm/drm_edid.c +++ b/drivers/gpu/drm/drm_edid.c @@ -3734,7 +3734,7 @@ cea_db_offsets(const u8 *cea, int *start, int *end) if (*end < 4 || *end > 127) return -ERANGE; } else { - return -ENOTSUPP; + return -EOPNOTSUPP; } return 0; @@ -4432,7 +4432,7 @@ int drm_edid_to_sad(struct edid *edid, struct cea_sad **sads) if (cea_revision(cea) < 3) { DRM_DEBUG_KMS("SAD: wrong CEA revision\n"); - return -ENOTSUPP; + return -EOPNOTSUPP; } if (cea_db_offsets(cea, &start, &end)) { @@ -4493,7 +4493,7 @@ int drm_edid_to_speaker_allocation(struct edid *edid, u8 **sadb) if (cea_revision(cea) < 3) { DRM_DEBUG_KMS("SAD: wrong CEA revision\n"); - return -ENOTSUPP; + return -EOPNOTSUPP; } if (cea_db_offsets(cea, &start, &end)) { diff --git a/drivers/gpu/drm/drm_mipi_dbi.c b/drivers/gpu/drm/drm_mipi_dbi.c index 1961f713aaab..f8154316a3b0 100644 --- a/drivers/gpu/drm/drm_mipi_dbi.c +++ b/drivers/gpu/drm/drm_mipi_dbi.c @@ -955,7 +955,7 @@ static int mipi_dbi_typec1_command(struct mipi_dbi *dbi, u8 *cmd, int ret; if (mipi_dbi_command_is_read(dbi, *cmd)) - return -ENOTSUPP; + return -EOPNOTSUPP; MIPI_DBI_DEBUG_COMMAND(*cmd, parameters, num); @@ -1187,8 +1187,7 @@ static ssize_t mipi_dbi_debugfs_command_write(struct file *file, struct mipi_dbi_dev *dbidev = m->private; u8 val, cmd = 0, parameters[64]; char *buf, *pos, *token; - unsigned int i; - int ret, idx; + int i, ret, idx; if (!drm_dev_enter(&dbidev->drm, &idx)) return -ENODEV; diff --git a/drivers/gpu/drm/drm_vblank.c b/drivers/gpu/drm/drm_vblank.c index fd1fbc77871f..552ec82e9bc5 100644 --- a/drivers/gpu/drm/drm_vblank.c +++ b/drivers/gpu/drm/drm_vblank.c @@ -1581,7 +1581,7 @@ int drm_wait_vblank_ioctl(struct drm_device *dev, void *data, unsigned int flags, pipe, high_pipe; if (!dev->irq_enabled) - return -EINVAL; + return -EOPNOTSUPP; if (vblwait->request.type & _DRM_VBLANK_SIGNAL) return -EINVAL; @@ -1838,7 +1838,7 @@ int drm_crtc_get_sequence_ioctl(struct drm_device *dev, void *data, return -EOPNOTSUPP; if (!dev->irq_enabled) - return -EINVAL; + return -EOPNOTSUPP; crtc = drm_crtc_find(dev, file_priv, get_seq->crtc_id); if (!crtc) @@ -1896,7 +1896,7 @@ int drm_crtc_queue_sequence_ioctl(struct drm_device *dev, void *data, return -EOPNOTSUPP; if (!dev->irq_enabled) - return -EINVAL; + return -EOPNOTSUPP; crtc = drm_crtc_find(dev, file_priv, queue_seq->crtc_id); if (!crtc) diff --git a/drivers/gpu/drm/exynos/exynos_hdmi.c b/drivers/gpu/drm/exynos/exynos_hdmi.c index bc1565f1822a..09aa73c0f2ad 100644 --- a/drivers/gpu/drm/exynos/exynos_hdmi.c +++ b/drivers/gpu/drm/exynos/exynos_hdmi.c @@ -852,6 +852,10 @@ static enum drm_connector_status hdmi_detect(struct drm_connector *connector, static void hdmi_connector_destroy(struct drm_connector *connector) { + struct hdmi_context *hdata = connector_to_hdmi(connector); + + cec_notifier_conn_unregister(hdata->notifier); + drm_connector_unregister(connector); drm_connector_cleanup(connector); } @@ -935,6 +939,7 @@ static int hdmi_create_connector(struct drm_encoder *encoder) { struct hdmi_context *hdata = encoder_to_hdmi(encoder); struct drm_connector *connector = &hdata->connector; + struct cec_connector_info conn_info; int ret; connector->interlace_allowed = true; @@ -957,6 +962,15 @@ static int hdmi_create_connector(struct drm_encoder *encoder) DRM_DEV_ERROR(hdata->dev, "Failed to attach bridge\n"); } + cec_fill_conn_info_from_drm(&conn_info, connector); + + hdata->notifier = cec_notifier_conn_register(hdata->dev, NULL, + &conn_info); + if (!hdata->notifier) { + ret = -ENOMEM; + DRM_DEV_ERROR(hdata->dev, "Failed to allocate CEC notifier\n"); + } + return ret; } @@ -1528,8 +1542,8 @@ static void hdmi_disable(struct drm_encoder *encoder) */ mutex_unlock(&hdata->mutex); cancel_delayed_work(&hdata->hotplug_work); - cec_notifier_set_phys_addr(hdata->notifier, - CEC_PHYS_ADDR_INVALID); + if (hdata->notifier) + cec_notifier_phys_addr_invalidate(hdata->notifier); return; } @@ -2006,12 +2020,6 @@ static int hdmi_probe(struct platform_device *pdev) } } - hdata->notifier = cec_notifier_get(&pdev->dev); - if (hdata->notifier == NULL) { - ret = -ENOMEM; - goto err_hdmiphy; - } - pm_runtime_enable(dev); audio_infoframe = &hdata->audio.infoframe; @@ -2023,7 +2031,7 @@ static int hdmi_probe(struct platform_device *pdev) ret = hdmi_register_audio_device(hdata); if (ret) - goto err_notifier_put; + goto err_rpm_disable; ret = component_add(&pdev->dev, &hdmi_component_ops); if (ret) @@ -2034,8 +2042,7 @@ static int hdmi_probe(struct platform_device *pdev) err_unregister_audio: platform_device_unregister(hdata->audio.pdev); -err_notifier_put: - cec_notifier_put(hdata->notifier); +err_rpm_disable: pm_runtime_disable(dev); err_hdmiphy: @@ -2054,12 +2061,10 @@ static int hdmi_remove(struct platform_device *pdev) struct hdmi_context *hdata = platform_get_drvdata(pdev); cancel_delayed_work_sync(&hdata->hotplug_work); - cec_notifier_set_phys_addr(hdata->notifier, CEC_PHYS_ADDR_INVALID); component_del(&pdev->dev, &hdmi_component_ops); platform_device_unregister(hdata->audio.pdev); - cec_notifier_put(hdata->notifier); pm_runtime_disable(&pdev->dev); if (!IS_ERR(hdata->reg_hdmi_en)) diff --git a/drivers/gpu/drm/gma500/oaktrail_crtc.c b/drivers/gpu/drm/gma500/oaktrail_crtc.c index 167c10767dd4..900e5499249d 100644 --- a/drivers/gpu/drm/gma500/oaktrail_crtc.c +++ b/drivers/gpu/drm/gma500/oaktrail_crtc.c @@ -129,6 +129,7 @@ static bool mrst_sdvo_find_best_pll(const struct gma_limit_t *limit, s32 freq_error, min_error = 100000; memset(best_clock, 0, sizeof(*best_clock)); + memset(&clock, 0, sizeof(clock)); for (clock.m = limit->m.min; clock.m <= limit->m.max; clock.m++) { for (clock.n = limit->n.min; clock.n <= limit->n.max; @@ -185,6 +186,7 @@ static bool mrst_lvds_find_best_pll(const struct gma_limit_t *limit, int err = target; memset(best_clock, 0, sizeof(*best_clock)); + memset(&clock, 0, sizeof(clock)); for (clock.m = limit->m.min; clock.m <= limit->m.max; clock.m++) { for (clock.p1 = limit->p1.min; clock.p1 <= limit->p1.max; diff --git a/drivers/gpu/drm/hisilicon/Makefile b/drivers/gpu/drm/hisilicon/Makefile old mode 100644 new mode 100755 diff --git a/drivers/gpu/drm/hisilicon/kirin/Kconfig b/drivers/gpu/drm/hisilicon/kirin/Kconfig index 290553e2f6b4..0f2a29e84296 100644 --- a/drivers/gpu/drm/hisilicon/kirin/Kconfig +++ b/drivers/gpu/drm/hisilicon/kirin/Kconfig @@ -6,7 +6,37 @@ config DRM_HISI_KIRIN select DRM_GEM_CMA_HELPER select DRM_KMS_CMA_HELPER select DRM_MIPI_DSI + select DRM_PANEL help - Choose this option if you have a hisilicon Kirin chipsets(hi6220). + Choose this option if you have a hisilicon Kirin chipsets. If M is selected the module will be called kirin-drm. +if DRM_HISI_KIRIN +config DRM_HISI_KIRIN620 + bool "DRM Support for Hisilicon Kirin620 Platform" + default n + depends on DRM_HISI_KIRIN + select DRM_KMS_HELPER + select DRM_GEM_CMA_HELPER + select DRM_KMS_CMA_HELPER + select DRM_MIPI_DSI + select DRM_PANEL + help + Choose this option if you have hisilicon Kirin Chipset(kirin620). + It includes kirin620 ade and dsi drivers. + If y is to build kirin620 drm into kirin drm drivers. + +config DRM_HISI_KIRIN960 + bool "DRM Support for Hisilicon Kirin960 Platform" + default n + depends on DRM_HISI_KIRIN + select DRM_KMS_HELPER + select DRM_GEM_CMA_HELPER + select DRM_KMS_CMA_HELPER + select DRM_MIPI_DSI + select DRM_PANEL + help + Choose this option if you have hisilicon Kirin Chipset(kirin960), such + as hikey board. It includes kirin620 dpe and dsi drivers. + If y is to build kirin960 drm into kirin drm drivers. +endif diff --git a/drivers/gpu/drm/hisilicon/kirin/Makefile b/drivers/gpu/drm/hisilicon/kirin/Makefile index d9323f66a7d4..d00c948534ec 100644 --- a/drivers/gpu/drm/hisilicon/kirin/Makefile +++ b/drivers/gpu/drm/hisilicon/kirin/Makefile @@ -1,6 +1,14 @@ # SPDX-License-Identifier: GPL-2.0-only -kirin-drm-y := kirin_drm_drv.o \ - kirin_drm_ade.o +EXTRA_CFLAGS += \ + -Iinclude/drm -obj-$(CONFIG_DRM_HISI_KIRIN) += kirin-drm.o dw_drm_dsi.o +kirin-drm-y := kirin_drm_drv.o +kirin-drm-$(CONFIG_DRM_HISI_KIRIN620) += kirin_drm_ade.o +kirin-drm-$(CONFIG_DRM_HISI_KIRIN960) += kirin_drm_dpe.o + +kirin-dsi-y := kirin_drm_dsi.o +kirin-dsi-$(CONFIG_DRM_HISI_KIRIN620) += kirin/dw_drm_dsi.o +kirin-dsi-$(CONFIG_DRM_HISI_KIRIN960) += kirin960/dw_drm_dsi.o + +obj-$(CONFIG_DRM_HISI_KIRIN) += kirin-drm.o kirin-dsi.o diff --git a/drivers/gpu/drm/hisilicon/kirin/dw_dsi_reg.h b/drivers/gpu/drm/hisilicon/kirin/dw_dsi_reg.h index 19e81ff64fac..6c31ee0b487f 100644 --- a/drivers/gpu/drm/hisilicon/kirin/dw_dsi_reg.h +++ b/drivers/gpu/drm/hisilicon/kirin/dw_dsi_reg.h @@ -8,7 +8,7 @@ #define __DW_DSI_REG_H__ #define MASK(x) (BIT(x) - 1) - +#define DEFAULT_MAX_TX_ESC_CLK (10 * 1000000UL) //for hikey960 /* * regs */ @@ -52,6 +52,50 @@ #define VID_VACTIVE_LINES 0x60 /* Vertical resolution */ #define VID_PKT_SIZE 0x3C /* Video packet size */ #define VID_MODE_CFG 0x38 /* Video mode configuration */ +/***************************for hikey960***********************************/ +#define GEN_HDR 0x6c +#define GEN_HDATA(data) (((data) & 0xffff) << 8) +#define GEN_HDATA_MASK (0xffff << 8) +#define GEN_HTYPE(type) (((type) & 0xff) << 0) +#define GEN_HTYPE_MASK 0xff +#define GEN_PLD_DATA 0x70 +#define CMD_PKT_STATUS 0x74 +#define GEN_CMD_EMPTY BIT(0) +#define GEN_CMD_FULL BIT(1) +#define GEN_PLD_W_EMPTY BIT(2) +#define GEN_PLD_W_FULL BIT(3) +#define GEN_PLD_R_EMPTY BIT(4) +#define GEN_PLD_R_FULL BIT(5) +#define GEN_RD_CMD_BUSY BIT(6) +#define CMD_MODE_CFG 0x68 +#define MAX_RD_PKT_SIZE_LP BIT(24) +#define DCS_LW_TX_LP BIT(19) +#define DCS_SR_0P_TX_LP BIT(18) +#define DCS_SW_1P_TX_LP BIT(17) +#define DCS_SW_0P_TX_LP BIT(16) +#define GEN_LW_TX_LP BIT(14) +#define GEN_SR_2P_TX_LP BIT(13) +#define GEN_SR_1P_TX_LP BIT(12) +#define GEN_SR_0P_TX_LP BIT(11) +#define GEN_SW_2P_TX_LP BIT(10) +#define GEN_SW_1P_TX_LP BIT(9) +#define GEN_SW_0P_TX_LP BIT(8) +#define EN_ACK_RQST BIT(1) +#define EN_TEAR_FX BIT(0) +#define CMD_PKT_STATUS_TIMEOUT_US 20000 +#define CMD_MODE_ALL_LP (MAX_RD_PKT_SIZE_LP | \ + DCS_LW_TX_LP | \ + DCS_SR_0P_TX_LP | \ + DCS_SW_1P_TX_LP | \ + DCS_SW_0P_TX_LP | \ + GEN_LW_TX_LP | \ + GEN_SR_2P_TX_LP | \ + GEN_SR_1P_TX_LP | \ + GEN_SR_0P_TX_LP | \ + GEN_SW_2P_TX_LP | \ + GEN_SW_1P_TX_LP | \ + GEN_SW_0P_TX_LP) +/***************************for hikey960***********************************/ #define PHY_TMR_CFG 0x9C /* Data lanes timing configuration */ #define BTA_TO_CNT 0x8C /* Response timeout definition */ #define PHY_TMR_LPCLK_CFG 0x98 /* clock lane timing configuration */ diff --git a/drivers/gpu/drm/hisilicon/kirin/dw_drm_dsi.c b/drivers/gpu/drm/hisilicon/kirin/kirin/dw_drm_dsi.c similarity index 74% rename from drivers/gpu/drm/hisilicon/kirin/dw_drm_dsi.c rename to drivers/gpu/drm/hisilicon/kirin/kirin/dw_drm_dsi.c index 5bf8138941de..100f502f1b17 100644 --- a/drivers/gpu/drm/hisilicon/kirin/dw_drm_dsi.c +++ b/drivers/gpu/drm/hisilicon/kirin/kirin/dw_drm_dsi.c @@ -9,6 +9,7 @@ * Xinliang Liu * Xinliang Liu * Xinwei Kong + * Da Lv */ #include @@ -25,97 +26,10 @@ #include #include -#include "dw_dsi_reg.h" +#include "../kirin_drm_dsi.h" +#include "../dw_dsi_reg.h" #define MAX_TX_ESC_CLK 10 -#define ROUND(x, y) ((x) / (y) + \ - ((x) % (y) * 10 / (y) >= 5 ? 1 : 0)) -#define PHY_REF_CLK_RATE 19200000 -#define PHY_REF_CLK_PERIOD_PS (1000000000 / (PHY_REF_CLK_RATE / 1000)) - -#define encoder_to_dsi(encoder) \ - container_of(encoder, struct dw_dsi, encoder) -#define host_to_dsi(host) \ - container_of(host, struct dw_dsi, host) - -struct mipi_phy_params { - u32 clk_t_lpx; - u32 clk_t_hs_prepare; - u32 clk_t_hs_zero; - u32 clk_t_hs_trial; - u32 clk_t_wakeup; - u32 data_t_lpx; - u32 data_t_hs_prepare; - u32 data_t_hs_zero; - u32 data_t_hs_trial; - u32 data_t_ta_go; - u32 data_t_ta_get; - u32 data_t_wakeup; - u32 hstx_ckg_sel; - u32 pll_fbd_div5f; - u32 pll_fbd_div1f; - u32 pll_fbd_2p; - u32 pll_enbwt; - u32 pll_fbd_p; - u32 pll_fbd_s; - u32 pll_pre_div1p; - u32 pll_pre_p; - u32 pll_vco_750M; - u32 pll_lpf_rs; - u32 pll_lpf_cs; - u32 clklp2hs_time; - u32 clkhs2lp_time; - u32 lp2hs_time; - u32 hs2lp_time; - u32 clk_to_data_delay; - u32 data_to_clk_delay; - u32 lane_byte_clk_kHz; - u32 clk_division; -}; - -struct dsi_hw_ctx { - void __iomem *base; - struct clk *pclk; -}; - -struct dw_dsi { - struct drm_encoder encoder; - struct drm_bridge *bridge; - struct mipi_dsi_host host; - struct drm_display_mode cur_mode; - struct dsi_hw_ctx *ctx; - struct mipi_phy_params phy; - - u32 lanes; - enum mipi_dsi_pixel_format format; - unsigned long mode_flags; - bool enable; -}; - -struct dsi_data { - struct dw_dsi dsi; - struct dsi_hw_ctx ctx; -}; - -struct dsi_phy_range { - u32 min_range_kHz; - u32 max_range_kHz; - u32 pll_vco_750M; - u32 hstx_ckg_sel; -}; - -static const struct dsi_phy_range dphy_range_info[] = { - { 46875, 62500, 1, 7 }, - { 62500, 93750, 0, 7 }, - { 93750, 125000, 1, 6 }, - { 125000, 187500, 0, 6 }, - { 187500, 250000, 1, 5 }, - { 250000, 375000, 0, 5 }, - { 375000, 500000, 1, 4 }, - { 500000, 750000, 0, 4 }, - { 750000, 1000000, 1, 0 }, - { 1000000, 1500000, 0, 0 } -}; static u32 dsi_calc_phy_rate(u32 req_kHz, struct mipi_phy_params *phy) { @@ -567,24 +481,7 @@ static void dsi_mipi_init(struct dw_dsi *dsi) dsi->lanes, mode->clock, phy->lane_byte_clk_kHz); } -static void dsi_encoder_disable(struct drm_encoder *encoder) -{ - struct dw_dsi *dsi = encoder_to_dsi(encoder); - struct dsi_hw_ctx *ctx = dsi->ctx; - void __iomem *base = ctx->base; - - if (!dsi->enable) - return; - - writel(0, base + PWR_UP); - writel(0, base + LPCLK_CTRL); - writel(0, base + PHY_RSTZ); - clk_disable_unprepare(ctx->pclk); - - dsi->enable = false; -} - -static void dsi_encoder_enable(struct drm_encoder *encoder) +static void dsi_encoder_enable_sub(struct drm_encoder *encoder) { struct dw_dsi *dsi = encoder_to_dsi(encoder); struct dsi_hw_ctx *ctx = dsi->ctx; @@ -600,8 +497,6 @@ static void dsi_encoder_enable(struct drm_encoder *encoder) } dsi_mipi_init(dsi); - - dsi->enable = true; } static enum drm_mode_status dsi_encoder_phy_mode_valid( @@ -670,60 +565,6 @@ static enum drm_mode_status dsi_encoder_mode_valid(struct drm_encoder *encoder, return MODE_OK; } -static void dsi_encoder_mode_set(struct drm_encoder *encoder, - struct drm_display_mode *mode, - struct drm_display_mode *adj_mode) -{ - struct dw_dsi *dsi = encoder_to_dsi(encoder); - - drm_mode_copy(&dsi->cur_mode, adj_mode); -} - -static int dsi_encoder_atomic_check(struct drm_encoder *encoder, - struct drm_crtc_state *crtc_state, - struct drm_connector_state *conn_state) -{ - /* do nothing */ - return 0; -} - -static const struct drm_encoder_helper_funcs dw_encoder_helper_funcs = { - .atomic_check = dsi_encoder_atomic_check, - .mode_valid = dsi_encoder_mode_valid, - .mode_set = dsi_encoder_mode_set, - .enable = dsi_encoder_enable, - .disable = dsi_encoder_disable -}; - -static const struct drm_encoder_funcs dw_encoder_funcs = { - .destroy = drm_encoder_cleanup, -}; - -static int dw_drm_encoder_init(struct device *dev, - struct drm_device *drm_dev, - struct drm_encoder *encoder) -{ - int ret; - u32 crtc_mask = drm_of_find_possible_crtcs(drm_dev, dev->of_node); - - if (!crtc_mask) { - DRM_ERROR("failed to find crtc mask\n"); - return -EINVAL; - } - - encoder->possible_crtcs = crtc_mask; - ret = drm_encoder_init(drm_dev, encoder, &dw_encoder_funcs, - DRM_MODE_ENCODER_DSI, NULL); - if (ret) { - DRM_ERROR("failed to init dsi encoder\n"); - return ret; - } - - drm_encoder_helper_add(encoder, &dw_encoder_helper_funcs); - - return 0; -} - static int dsi_host_attach(struct mipi_dsi_host *host, struct mipi_dsi_device *mdsi) { @@ -769,54 +610,6 @@ static int dsi_host_init(struct device *dev, struct dw_dsi *dsi) return 0; } -static int dsi_bridge_init(struct drm_device *dev, struct dw_dsi *dsi) -{ - struct drm_encoder *encoder = &dsi->encoder; - struct drm_bridge *bridge = dsi->bridge; - int ret; - - /* associate the bridge to dsi encoder */ - ret = drm_bridge_attach(encoder, bridge, NULL); - if (ret) { - DRM_ERROR("failed to attach external bridge\n"); - return ret; - } - - return 0; -} - -static int dsi_bind(struct device *dev, struct device *master, void *data) -{ - struct dsi_data *ddata = dev_get_drvdata(dev); - struct dw_dsi *dsi = &ddata->dsi; - struct drm_device *drm_dev = data; - int ret; - - ret = dw_drm_encoder_init(dev, drm_dev, &dsi->encoder); - if (ret) - return ret; - - ret = dsi_host_init(dev, dsi); - if (ret) - return ret; - - ret = dsi_bridge_init(drm_dev, dsi); - if (ret) - return ret; - - return 0; -} - -static void dsi_unbind(struct device *dev, struct device *master, void *data) -{ - /* do nothing */ -} - -static const struct component_ops dsi_ops = { - .bind = dsi_bind, - .unbind = dsi_unbind, -}; - static int dsi_parse_dt(struct platform_device *pdev, struct dw_dsi *dsi) { struct dsi_hw_ctx *ctx = dsi->ctx; @@ -848,54 +641,13 @@ static int dsi_parse_dt(struct platform_device *pdev, struct dw_dsi *dsi) return 0; } -static int dsi_probe(struct platform_device *pdev) -{ - struct dsi_data *data; - struct dw_dsi *dsi; - struct dsi_hw_ctx *ctx; - int ret; - - data = devm_kzalloc(&pdev->dev, sizeof(*data), GFP_KERNEL); - if (!data) { - DRM_ERROR("failed to allocate dsi data.\n"); - return -ENOMEM; - } - dsi = &data->dsi; - ctx = &data->ctx; - dsi->ctx = ctx; - - ret = dsi_parse_dt(pdev, dsi); - if (ret) - return ret; - - platform_set_drvdata(pdev, data); - - return component_add(&pdev->dev, &dsi_ops); -} - -static int dsi_remove(struct platform_device *pdev) -{ - component_del(&pdev->dev, &dsi_ops); - - return 0; -} - -static const struct of_device_id dsi_of_match[] = { - {.compatible = "hisilicon,hi6220-dsi"}, - { } +const struct kirin_dsi_ops kirin_dsi_620 = { + .version = KIRIN620_DSI, + .parse_dt = dsi_parse_dt, + .host_init = dsi_host_init, + .encoder_enable = dsi_encoder_enable_sub, + .encoder_valid = dsi_encoder_mode_valid }; -MODULE_DEVICE_TABLE(of, dsi_of_match); - -static struct platform_driver dsi_driver = { - .probe = dsi_probe, - .remove = dsi_remove, - .driver = { - .name = "dw-dsi", - .of_match_table = dsi_of_match, - }, -}; - -module_platform_driver(dsi_driver); MODULE_AUTHOR("Xinliang Liu "); MODULE_AUTHOR("Xinliang Liu "); diff --git a/drivers/gpu/drm/hisilicon/kirin/kirin960/dw_drm_dsi.c b/drivers/gpu/drm/hisilicon/kirin/kirin960/dw_drm_dsi.c new file mode 100644 index 000000000000..84f0b76aba2d --- /dev/null +++ b/drivers/gpu/drm/hisilicon/kirin/kirin960/dw_drm_dsi.c @@ -0,0 +1,1220 @@ +/* + * DesignWare MIPI DSI Host Controller v1.02 driver + * + * Copyright (c) 2016 Linaro Limited. + * Copyright (c) 2014-2016 Hisilicon Limited. + * + * Author: + * + * + * + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. + * + */ + +#include +#include +#include +#include +#include +#include