
....................................................................................................................................................................................
............................................................`.......................................................................................................................
.........................................................````.......................................`...............................................................................
.........................................`................`..............................................................................```........................................
.......................................```................................................................................................``........................................
.....................................`````...```....................................................................................................................................
....................................``````...`.`............................................`..`....................................................................................
...................................```````...````...````..................................`.```````.................................................................................
...................................``````...`````.``````````...................................`.``.........................................``....`.................................
..................................```````...`````.`````.``````............................`````````.......................................````....```...............................
...............................`````````.....````.``````````````.........................``````````...................................`..``````..``````.............................
.............................`````````.......````.``````````````..........................................................................`````...``````............................
............................`````````........``````````````````........................````````````````..............................``````````...``````............................
............................`````````......```````````````````.........................`....````````````.............................``````````....`````............................
............................`````````....`````````````````````............``.`..........;.........```..`.......................`....```````````.....```````.........................
..............................```````....``````````````````...............................;;.;;;;;;.`.``.........................``````````````.......```````.......................
.......................```......````.....````````````````......`.........................;+;;+++++++;...............................````````````......````````......................
......................`````......```.....```````````````.......`.....................;+++++;;;+++++;+;.............................```````````````....````````......................
.....................```````.............``````````````.......```....................;++++++++++++++;;;;.............................`````````````....`````````.....................
....................````````............`````````............```......``.......```...;;;++++++++++++++;;.............................``````````````....`````........................
...................``````````..........``````````...........````....................;;+++++++++++++++++;;.```.........................```.`````````....````.........................
...................```````````........``````````...........`````............```....;;;+++++++++++++++++;;;................................`````````.................................
...................``````````.........`````````............`````............```....;;;++++++++++++++++++;;.`````...........................```````..............```.................
.................`````````````.......`````````.....``......`````...................;;;+++++++++++++++++++;.```.`...........................`````````................................
...............`````````````````.....````````.....`````.....````.........``````....;;;;;;;;;;;;;;;;;;++++;.....................`............````````..........`````.................
..............``````````````````.....```````......``````....````........````````...;;;;;;;;..;;......;;++;..````..............................```````.........````````..............
.............`````````````````````....````........````````..````.................;;;;;;;;;;...........;++;..``.`..............`................```````........`..```.``.............
.............`````````````````````..............``````````...```........````````.;+;;;;;;;;...........;++;....................`................```````.......``````````.............
.............`````````````````````..............``````````....``.........``````..;+;;;;;;;;;..........;;+;..``.``...............................`````.......````````````............
.............`````````````````````..............````````.................``````..++;;;;;;;;;..........;;++...`.``.................................```............``````````.........
.............````````````````````........````...```````....``...........````````.;+;;;;;;;;;..;;......;;+;..................................................````````````````........
.............```````````````````..........`````....````....```.........`````````.;+;;;;;;;;;;.;;......;;+;..`````......................`....................`````````````````.......
.............````````````````````.....`...`````....````...````.........``````....;;;;;;;+++;;;;;;;;;..;;+;...````...........................................`..``````````````.......
.......``...``````````````````````...``....````......``...````..........````````.;;;;;;;;;;;;;;;;;;;;;;;;......................................``..........``````````````````.......
......```...``````````````````````...```...````.........````````.........```````.;;;;;;;;;;;;;..;;..;;;;;.```````.`.............................`..........``````````````````.......
.....````...``````````````````````...```....``..```.....````````............`.``..;;;;;;;;;;;;..;;;;;;;;..`..`.``..............................``...........`````````````````.......
.....```....``````````````````````...````.......````....````````...........```.;;;..;;;;;;;;;;...;;;;..;......................````.............`...........``````````````````.......
.....````....```````````````````.....````.......``````..````````...........``..;;...;;;;;;;;;;.........;...`.````................`.........................```````````````````...`..
...```````....`````````````````.....``````......```````.````````...............;;;..;;;;;;;;;;.........;;....`.``.............`````..................`.....```````````````````...``.
..````````.......``````````........`````````....```````.```````.......``........;;..;;;;;;;;;;........;;;.....................`.```....``............`.....````````````````````..```
.````...``........`````````........`````````....```````.````````......```.......;;..;;;;;;;;;;;;;.....;;.....`..................``....```..................`````````````````````.```
..................`````````............`````....```````..```````......``........;;;;;;;;;;;;;;;;.....;;;......................`.```...````.`......````......``````````````````...```
..................````````......................````````.``````..................;;.;;;;;;;;;...................................```..`````.`.....``````......````````````````..`````
...................`````.........................```````.```````....................;;;;;;;;;;...................................`...`````.`....````..``........`````````......`````
....................````..........................``````.``````.............``......;;;;;;;;;;;;;.............................`.``...``````.....................`````````......`````
..```````....`.``....``.......`.....```.`.........``````..`````.............``......;;;;;;;;;;;;;;.............`..............`.``...``````.....................`````````...........
...```````````````........`````.`..``````....``....`````..`````...........`..```....;;;;;;;;;;;...;..................................`````.......................```````............
...````````````````......``````.`````````...```....`````..`````...........``````.....;;;;;;;;;;..;;;.........``.................``...`````........................`````.............
...````````````````.....````````````````....```....`````...````........``..```.....;;;;;;;;;;;..;;;..........`.......................````............``....``......````.............
...```````````````......````````````````....``......````.....``.......```..........;;;;;;;;;;;.;;;;............``...................`````............```.```````....``...`````..````
....``````````````......```````````````.....``.``....``...............```.``.......;;;;;;;;;;;;;;;;..................................```....```....``````````````.......````````````
....``````````````......```````````````.....``.```...`...``...........```..`.......;;;;;;;;;;;;;;;;...................................`.....````....``````````````.....`````````````
....`````````````........``````````````.....``...........```...........``..........;;;;;;;;;;;;;;;;...................................`....````......`````````````.....`````````````
....`````````````........``````````````....``...........````.......................;;;;;;;;;;;;;;;;.....```................................`````.....``````````````....`````````````
....``````````````.......`````.```````...................`.```.....................;;;;;;;;;;;;;;;......````................................````.......````````````.....````````````
...````````````````....```````.````````.................```````......................;;;;;;;;;;;;;;;.+..`.``..................................``.......````````````.....````````````
....`````````.`````....```````.`````.``.................``.```.................;...;......;;;;;;;;;;.++.````..........................................````````````.......```````````
.....```.````..``......```````..``````.......`..........``````...........;;;;;;;..;;;;;;;;;;;;;;;;;;.+++..``......................`...................````````````......````````````
.....````````.`````.....````.............................`````.........;;;;;++;;..;;;;;;;;;;;;;;;;;..++++;.........................`..................`````````````....`````````````
............`.`````....``````........................................;;;++++++;;...;;;;;;;;;;;;;;;...++++++;;...............................```........````.````````...`````````````
..............`````...``````...............``.............````....;;;+++++++++;;...;;;;;;.;;;;;;;;..;+++++++++;...............................`........````.````````...`````````````
```............```.....``................````..................;;;;++++++++++++;...;;;;;;;;;;;;;;...;+++++++++++;.........................................`...``````...`````````````
```.....................................``..................;;;;+++++++++++++++;...;;;;;;.;;;;;;....+++++++++*+++++;..........................``..............```````..`````````````
```....................................```````.....`......;;;++++++++++++***+++....;;;;;;.;;;;;.....+++++++++++++++++;.........................`...............``````..````````.....
.```....``.............................```````.....`......++++++++++++*+****+++....;;;;;;.;;;;......+++++++++++++++++++;..........................``..............```..``````.......
.```....```..`.............``..`.......``................;+++++++++++++*****+++....;;;;;;;;;;.......+++++++++++++++++++++;.....................``````...................`...........
.`.....`````.`.............`...`.`.....``````.....```....+++++++++++++*+****+++....;;;;;;;;........;+++++++++++++++++++++++;...................`````................................
.`.....`````.``................```.....```````....````..;+++++++++++++**+****++...;;;;++;;.........+++++++++++++++++++++++++;...................`.````.......``..............`````..
........`````````.......````.............`````.......`..;+++++++++++++**+****+++++;;;;;;.;........+++++++++++++++++++++++++++;.................```````.......```............```````.
.......``````````.......````...`........`````....````...+++++++++++++***++******++;;;+++;;;;.....;++++++++++++++++++++++++++++................````````.......````..........````````.
......``````````..............``.`.......`````...```....+++++++++++++****++*****+++;;;;;;++++;...;++++++++++++++++++++++++++++...................````.....`.....``........`````````.
.......`..``.````.....```......``........````....`.....;+++++++++++++***********+++++;;;;;;;;;;;++++++++++++++++++++*+++++++++;.................````.........```````.....``````````.
.......``````````......`````.............`..`....``....;++++++++++++************++;;;;;;++++;;..;++++++++++*++++++++*+++++++++;................````.......``.```````.....``````````.
.......````````.........```....``........````....`.....++++++++++++*+***********++++;.....;;++++++++++++++++*++++++*+++++++++++................````......```......```....``````````.
.........`````.............................`..........;++++++**++++*************++;;;..;+;;...;;+++++++++++++*+++++*+++++++++++................````......``..````````....```````````
..`......`````........................................++++++***+++**************++;....;;+++++;;;+++++++++++**++++**+++++++++++................````.......``.```````......``````````
.`.......````.............`...........................++++++****++***************+++;;.;;...;+++++++++++++++****+***+++++++++++.................`.........``.`````........``````````
..`.`.....`..........................................;+++++++***++***************+;;...;+++;;.;;++++++++++++********+++++++++++................................```.........````````.
.````................................................;+++++++***++***************++;...;;;;+++++++++++++++++********+++++++++++.....................```.......````.........``````...
.```................`................................+++++++**********************++;..;;;...;++++++++++++++********+++++++++++....................`````......```............````...
.``````.........`....................................+++++++*********************+;.;;.+++++;;;+++++++++++**********+++++++++++....................``````.....................```...
....`.........`.``...`............`..................+++++++*********************++;;+;;.;;++***++++++++++**********++++;;+++++....................``````............```............
.............`..................................``...++++*************************++++;++;;..;;+++++++++++**********+++;;;;;+++....................```````............``.`..........
.................................................`..;+++*+************************+..;;;+++++++++++++++++***********++;;;;;;;++...........`.......``````````......``````````......``
.`..`...............................................;++***************************++;;;;..;;++**++++++++************++;;;;;;;;;..................````````````....```````.````....```
.``.````......``.....`..........................``..;+++**************************++;+;+++;;;;++++++++++************++;;;;;;;;;..........................................``.`....```
.......`.........................................`..;+++**************************+;.;;;;+++++++++++++++*************+;;;;;;;;;.......``````........................................
.`..`.`.............................................;++****************************+++;;;;;;;++++++*****************++;;;;;;;;;.........````.....````````````.....```````````.....``
.`..`.`......`.`..`..`..............................;+++**************************++;+;+++++;;+++++*****************+;;;;;;;;;;.........``.......````````````.....``````.````.....``
....`..............................................;;++****************************+;;;;;+++***++++*****************+;;;;;;;;;;.........`.............```````.....```.....```.....``
..................................................;;+++*****************************++;;;;;;;++++*******************+;;;;;;;;;;...................```````````.....``````.````.....``
...``.`...........................................;;++*********************+++++***+;+;+++++++*+********************+;;;;;;;;;;....................``````````.....````.`.````.....``
.................................................;;;++****************++++;;;;;+++*+++;;;;;++**+********************+;;;;;;;;;+....................``````````.....````....```.....``
.................................................;+++***************+;;;;;;;;;;+++**++++++;;;+++********************++;;;;;;;++;....................`.```````.............```.....``
................................................+++****************+;;;;;;;;;;;++***++;;++**************************+++;;;;;;+++.....;.;............`````````......``.....```.....``
...............................................;+******************+;;;;;;;;;;++****++;;;;;;+***********************+++;;;;;++++.....;;.............`````````.............```......`
..............................................;+++++*************++;;;;;;;;;;;;+****+++++++++***********************++++;;;++++;.....;;;............................................
...........................;;.................;++++*++++******+++;;;;;;;;;;;;;;+****++;;+++*************************+++++;;;+++......;;;..............```````.............```.......
..........................;;;..............;.;;+***+++++*++**++;;++;;;;;;;;;;;++****++++;;;;+***********************+++++;;;+*+;.....;;;.................``.`.............```.......
..........................;;;..............;;;++***++++++++**++++++;+;;;;;;;;;++****++++****************************+++++;;+***+;.....;.......;.....................................
.........................;;;;...............;;++**+++++++****++***++++;;;;;;;;+*****+++++;++*************************+++++++*****+...;;;......;.....................................
......................;;;;;;;;;;;;;;;;......;;;+**+++++******+****++++;;;;;;;;+*****+++++++++**************************+++++******+;.;;;.....;;;....................................
.........................;;;................;;.+**+*********++****+++++;;;;;;;+*****+++;+*****************************************++;.;;;....;;;;...................................
.........................;;;................;;.+++**********+******++++;;;;;;+******++++++++******************************+*******+*;.;;;;;..;;;;.............;.....................
.........................;;;................;..;++**********+******++++++++++*******++++++++******************************+******++*+;.;;;;...;;;...................................
.........................;;;................;..;++*****************+++++++***********++;;++**************************************+**+;.;;;;...;;;...............;...................
........;;...............;;;..................;;+*******************++++*************++****+*************************************+***+..;;;;;;;;;.............;;;;..................
........;;;..............;;;..................;;+************************************++++++**************************************+**++...;;;;;;;;.............;;;;..................
.......;;;;.............;;;;.................;;;++**************+********************+++++++****************************************+;....;;;;;;;.............;;;;..................
........;;;.............;;;;...............;;;;;;+**+********++++********************++********************************************+;.....;;;;;;;.............;;;;..............;...
.......;;;;.............;;;;;..............;;;;...;+++*******+++*********************++;++++***************************************+.....;;;;;;;;.............;;;;.............;;;..
;;;;...;;;;.............;;;;...............;;.......;;++*****+++*********************+++++++**************************************+;........;;;;;;............;;;;.............;;;..
;;;;;.;;;;;;;;;;;;;;;;;;;;;;;;;;...........;;.........;;;;+++;;+*********************+++******************************************+;......;;;;;;;;........;;;.;;;;.............;;;..
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;.;.;;;;;;;;;;;;;********+*************+++++++**************************************;;....;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;....;;;;.
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;.;;;;;.......;;;;;;;;;**********************++******************************************+;;..;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;........;;;;;;;;**********************+++++++*************************************+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;........;;;;;;;+**********************++++++**************************************+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;..;;...;;;;;;;;+**********************++++***************************************+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;......;;;;;;;;;+**********************++****************************************+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+**********************++******************************;;;++***+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+**********************+*******************************;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+*********************++*******************************+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+*********************++*+++++*************************+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;**********************++*+++++*************************+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;**********************++*+++++**************************+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+**********************++*+++++**************************+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+**********************++*+++++***************************+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+**********************++*+++++****************************+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+**********************++*+++++****************************+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+**********************++**++++*****************************+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+**********************++**+++++****************************+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+*********++***********++**+++++****************************+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+*********++***********++**+++++****************************+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;