Bạn hãy bắt đầu vui vẻ nhé! Dùng thử miễn phí

Siri

5,845
654
Đánh giá
440bài đánh giá
Đánh giá được đặt ở chế độ riêng tư sẽ không hiển thị.
Yuika
18/06/2025 (Thứ 4) 19:49
Thank you for pointing out my mistake.Thank you for the fun time today.
Imari
17/06/2025 (Thứ 3) 09:56
Siri先生ととても楽しくレッスンができました。
先生に笑顔で話してもらえると、私は拙い英語でも、間違っていると思っても、話すことができます。
今日は楽しいレッスンをありがとうございました。
私は、またSiri先生のレッスンが受けられる日を楽しみにしています
Michiaki
16/06/2025 (Thứ 2) 07:58
She is great at leading lessons and makes learning enjoyable.
Kiyomi
09/06/2025 (Thứ 2) 09:26
わかりやすい。
よかったです。
Rie
04/06/2025 (Thứ 4) 11:56
電波のせいか、声が途切れ途切れになる事が多かった。
ゆっくり話してくれるので聞き取りやすかったです!
Hana
28/05/2025 (Thứ 4) 15:57
Siri先生の授業を初めて受けました。
Siri先生は面白くて、とても話が聞き取りやすいし、わかりやすいです。
なのでとてもおすすめします!
Ẩn danh
22/05/2025 (Thứ 5) 13:48
最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最
Rinko
02/06/2026 (Thứ 3) 16:08
♡Siri先生のいいところ♡
笑顔☺️
親しみやすい🥰
面白い🤣
発音が綺麗✨
チャットで説明してくれる💬    などほかにもたくさんあります!
⭐︎Siri先生の悪いところ⭐︎
何もない
Siri先生はとーってもおすすめです!♡私もまたしたいです♡ 小5女子🔰
Natsuki
15/05/2025 (Thứ 5) 16:27
強いて言うと、話すときに面白くしてくれたり、顔をちゃんと見て話をしてくれた。
評価が高いのも納得
Taiki
14/05/2025 (Thứ 4) 16:57
楽しかったです。
Bạn có thể viết đánh giá sau khi học với giáo viên đó.