# 時間行動 ## 3分前行動 - 時計を目立たせる - 班の気づいた人が声をかける - 自分が意識する。 1. 自分が意識する。 > しっかり時計をみる。 > 時間を把握する。 > 授業の準備する。 > トランプで遊ぶ時間を朝・中休み・昼休み・放課後にする。 2. 班の気づいた人が声をかける。 ばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかば