???.................????????.....???..............???......?????????
???................??????????....???............???.....???????????
???...............???.........???....???..........???....???..........???
???..............???...........???....???........???.....????????????
???..............???...........???.....???......???......??...?????????
???..............???...........???......???....???.......