__,,o7o+cbc#c#7#dv+v,_\.
                                         _oo#88MHHHMRMHHH9H991DH8H968S8FFFcc+v_.
                                   .,o#MMMHH888$8888ZRH8RHMR896MRHMMH868MZ88H7$S}c+_.
                               .,dHMM9MMMMRkkRZ8FF1S88Z86HZHH8HMMMMMHMHMHMMHH8SkH$1S8kb\.
                            _ddMMMHMM9HHMMMMMHHHMH8886kMMMMMMMMMMMMMMMMMMMMMMMH$$FD818MMMH7_
                         _dHMMMMMMMMHMMMMMMHMMMMMMMMMMMMRM99RMMHMMHMMMMMMMMMMMHS8S88Z88HMMMMHb_
                      .oHMMMMMMHMMMMMMMMMHMMMMMHH8MHM9MMMMMMMMMMMMMMMM9MMMMMMMMH688H18881HMMMMMH7.
                    ,dMMM66HHHMMHMMMMMMMMMMMMMMMMMMMMMMMMMHMMM9MMHMMMMMMMM6MMMHMMMMH8M6D8$6HMMMMMM#_
                  ,HMMM998HMM98$888$6$R89HMMMMMMMMMMMMMMMMHHMMMMMMMMMMMMMMMMMMMHL?\|$9MMMMMMM9MMMMMMH_
                ,HHMM88DMMH9D688666HkR8Z8MMMMMMMMH8MHMMMMMM8ZMMMMMMMR*98MMMMMMH?/L::?##MMMMMMMMMMMMMMMH\
              .d888F18888HR66HMR6888$8688MMMMM9HHMMMMMMMH*PP?:?8MHMMMMM8"?P?:S::%::%:/?MMMMMMMMMMMMMMMMMc,
             ?H8]$9$$R8Z88MH9H888H1188RRM88RMMRMMP?$HHS?:::S:!$?$7?\7H$L::\:::?://::%::8MMMMMMMMMMMMRMMMMM7
           .866MM8ZH8$H$S888kH8Z$88$FF11$881$$D7D:$!i\(:%::S!:/;-S::/L::7\::%|:7:::7?HiMMMMMMMHMMMHMMMMMMMMH,
          ?8SMMHRH8FFFkH88Z8$8Z88$Z888%k68$$?:/??/\?\::\::.S::7;:/:'/\\::\:::%::%::/MM:79MMMMMMMMMMMMMMMMMMMM7
        .?118MHM1RRH88ZkRH$8Z$kFF888$H%kk8\//::/:::S:\:::7;:7!::%::%:/?\:?L:/L::\L/b8Mk::$HMMMMMMMMM9MMHMMMHMMb.
       .$$ZkMMM8M88888Zk88FF88$8S$R8$88$:/:\L;:L:\L::7;:|:L:/L:/L::%:\:',?:%::7;\HMMMMMH;:#MMMMMHMMMMMHMMMMMMMH#.
      .$18$MRHMFkkkk66888$88888$H8$8Sk:/:\L::S.!(/:::::%::%::%::%::L:/L:/%:::S::HMMMMMMMMb$MMMMMMMMMMMMMHMMMMMM9H.
      8$88MMMMkMH1HRMRH8881S888ZkR8S7::L:\L::S:\::|7\:7:',7;:::7\::%::7;::S::S:,MMMMMMMMMMMHMMMMMMMMMMMMMMHMMHMHM#.
     /ZR$SMMMHHH:^#HMM688S$k68$S:$8S://:?:7\:/::/::/::/\:S::\\::\L:L:/:\:/L:/L:/7)::ZHMMMMMMMMMMMMMMMMMMMMMRMMMHRMk.
    {Z88ZHHMMMR\:S::MMR81$8889::%:!/S\:::|7::7/:\\::7::/:::7\?:::?:%:\::L,:;:\L::/L:8cTMMMMMMMMMMMMMMMMMMHMMM9MMMHMb
   |8818%k8HMMMc:i7:?#\?$9HHH8:\:;:L:\://:::\:?L:/L:/:L::\::\\\L??7::%::S:\L/:/L:/L:.M69MMM9MMMMMHMMMHMMMMMHMMHHMHMH|
   H$8$8ZDZHM9M8D?::7;:(7HM[L:S|dd::/L::S:\:;::S::\:::7;:\\'|\\L:\L:7\:7:\\:/:?:7?/7:9MM#M8MMHMMMMMMMMMMMMMMM6MM9MM6M.
  |$S8$F11889MMP?::/:?)\:MMH:\//#P:%::S:::S::\::\?\//\:|7\L::7;::7):\:?!\\:/;:::%:?/:MMM~:HMMMHMMMMMMMMM9MMM6MHM6MHHHL
 ,8S8888$$$SL?:||/|S:/L|MMk/S:\\7;:\7:/;:7::?:/\|(Li:\:::7;:/::7;-S:::i\|!/S::%::7\/8MMMH8MMMMMMMMMMMMMMMMM6MMMMHHHMHH.
 |Z888S8$HZ87?:7:/:\!%::#H?\/L::?;:7::/\\//::7?:/L:::\!iS::7;::/L:/L\\/S::%::7:\\/HMMMMMH|?MMMMMRMMMMMHMMMHMMMHMHMMHHM|
 $k818$8$881k:/::/:?:/;:::S:/L::S\\:/|S7\:?%\L:%::%::7;:7:/:/:\::%::?::S::7::;:%!:MMMMMMM$/MMMMMMMMMMMMMHMMMHM9HMRM8MMk
.88S88Z8H$SM|/L::|:L\L:::/:\:?i,:||S;:LL//L::7;:::%::7:\L:\7\:!(/:7;:7;:7;:$RL8c:$HMMMMMS:%HMMMMMMHMM6MMMM6MMHMMMRMM9HM
.R/1$Z8Z$R8M:\::::7Hc:L::%::%:7::S::\\/:/7:/L:/L:/L::%::%::\\:7::?:-%::%::bMH#MHHi/8MMLS;7MMMMMMMMM6MMMMHMM6MMHHM9MHMH6|
|$S$8$88%kHM:7:\\:\HH:7\::S.\//7\:/::\\:/L:7\::7;-%::7;-%::%::S::\\:7::\::7:+MMMMb$HM\[bMMMMMMMMHMMM9MMMMRMM9MMMHRMHM8R|
:F88$$88%kMb:S:://:8M8:::%:?\:7i\)::/:7;:/:L::Si.!\\/:\:\:7:::\::\:\::\::\L:PMMMMMMMH|HMMMMMMMMMMMMMMHMHMMM9MHMH6MHHRM9|
|Z$$81%R$8HM,:/:::,8#H86:%::L::7\:::L:?::\\:\::%::%::7;-%::7;:L:\:/::7;:::S::S9MMMMMMMMMMMMMMMMMMMMMMMMHM6MM9MHRMHHMHMH|
i8Sk8Sk8$8HM7:;-%::%\|:#MbS::::L:iiS::L:::\?\::\\::7::.?:/L::%::\L;:/::/:::L::/HMMMMMMMMMMMMMM9MMM6MMMHMMHMHHMHRM9HM8HH:
:8Sk8$ZR8$9F:7:S/:\\:/:L8MMMM#L:7\:7:/::7:7?:/\\:7::L::S:\:;:\::7;-%:\:;:7)!::?MMMMMMMMMMMMMMMMMMMMM9M6MMMRMMRM9M9HM9RM:
.88$S[8%FS$[7:\:::|S:;\HMMMMMMM//)::/;:|%:/L:S:\\S/:\%\L|:7/L://::::S:::S:\::\MMMMMMMMMMMMRMMMMMHMMMMHMHMHHMHM9MHRMH6HH
 4S$818%F881HH88#d8#HMMMMMMMMMMM?L;:%::S::7:/L:/:(//;:/:i7|::L:\:/::/::/:\::\HM\MMMMMMMMMMMMM6MMMMHMMMMH6MHMHRMH6MHH6M$'
 |S$8$8Z8$Z8ZRHMMMMMMMMMMMMMMMMMHH|7\:/;::S::7:::\7|\\/%:L?::7;:/:\\:L:/L:78MMHdMMMMMMRMMMMMMMMMHMRMMHM9HMMHHM96MH6M8R|
  k8S6$DZ$8S$D8ZMMHMMMHMMMMMMMMMMM$::%:/L:/L:/:\bb8HbL::%::\\:|?\:|%?|SdHMMMMMMMMMMMMMMMMMHMMMHM9MMHHM9HHRMHHMHHHRHRM8'
  |Z888$$Z8$k8SMMMMMMMMMMMMMMMMMMM?;:7:::::7id8MMMMMHL\\::\\:?:/)iHMH?9MMMMMMMMR78MMMMMMMMMM9MHMM9MM6MMHMHRMMHHHHHHHH?
  -Z$\\8Z8{S8HMRMMHMHM6MMMMMMMMMMMH::7::7??MMMMMMMMMMMZ:7\:\L/:?!/HMHdMMMMMMMMM8:HMMHMMRM6MMMMMM9MHHM6MHHRMHH6H6M9HM8-
   |8Z8$ZHRMMHHMM9MMMM9MMMHMMMMMMMMLL;::8MMMMMMMMMMMMML8d8|::.S:|;:?#MMMMMMMMMMH\ZZH#MMMMMMHMMHMMHMHHMHMH8MHR6M9H9H9!
    ?$8ZHHMHMMHHMHMHM9MRMMMMRMMMMMMM//:LHMMMMMMMM6MMMMMMMH!/7::|?L:|:HMMMMMMMMMHHR8H\MMMHM6MHMMHMMHHHM9HM9HH96MH6HR}
    `$8k88M8MHMHMHMHM6MMMM6MMMMMMMMML\?dHMMMMMMMMMMMMMMMMMk|MHd:/:-!7MMMMMMMHMMHMM[8P:HHM6MHHMHM8MHM96M9HHH6M8DM8DF-
     `Lk8H9MRHMHMM96M6MHMHMMHMHMRMMMMHMR:HMMMMMMM6MMMMMMMM|MMMMH8LdHMMMMM9MMMMHMHM$H:$MMM9MHRMHRMRMRM8RHH98M8H6M8R'
      `8Z8HDMRHMHMMHH6MHMHMHMMRMMMMMMMMM8HMMMMMMMMMMMHMMMMb7HMMMMMMMMMMMMMM6P?*MHMMMMMRMHHMHRM6RMHHH9H9M9HHH9RHH8-
       `$88MHHHHHM9MH6M6M6MMHHHMRMHMHMMHMMHMHMMHMHMMMMM8*HMM:??HMMMMHMHM6HP|\?HMHMHMHHMPHHRR8HM8$Z8Z$?k8DRM9H6RR'
         ZMHMHRMH6M9MHM96M6MMMHMHM6MMMHMMMMMHMMMM6MMHMMM8:78H:\TMM9MMHMPP::|7-8M8S$8HH6DMHH6k61Z6(F888H8H96H8H8
          |RM$8ZHMHRHM8M9MHHMHM9MM9MHMMMHM6MM6M9M6HMHMHMM8k7:?b{HMHRM?7:::/;-ZMP|L8H6M8M8HHHH8MH8H8DM9RM8HH96+
           `FM$$9HMHRMMHRMHHMHM9MHM9HMHMMHM9M9MM9HMMMMMM9MRHc::788HMRH?\::?-8MMd|Z/M96M96MH6M9HHRHP86MHH8M98-
             *8S$HM8M8R6M6HHMM9MHMHRMHMHM6MM9M6MMHMHHMHMM9MMHH?/L:HHHMHM6MMHM6MHdM9M98HHM8RM8H9HH6$8{kH8M8*
              "\6HHMHRM6MHMHH9MHMH6MHHMH6MHMHMHMHMHMHHMHMHHMHM9M#8$?ZZ*?L$9H898#S6H9dHM8M8$8Z888HZ$$S(HF}'
                `89HH9HHH8RMH6MH96MHMHH6MHMHMRMHRMMHHMHRMM6MM9RM6MRMHMHMHHM9M9HR6MHHH8898Z$$/Z$$Z{%Z$88"
                  `86HH9RM96MHH9H6MHRM6MHHHHHRM6M8RMMHHRMHRHM9MHH6MHRMRHM9M9HHRMHHH8\S1S$$S$$\$$\Z/S$"
                    `986H8M8RMHHRMHDM9HMHRMM8M6MHRMHHM9HMHH6M6MH6MHRM6MRM96M9MH8R8ZZ$Z/SLZ{T)S$$\$/'
                      `^8M8RMHRHM8RM9M86MH8MHDMH6MHM8RM9HRMHHH6M9HMHHHH9HHHHH$884%$$Z$Z/]?$S1?$S^'
                         '*\RH6HRMH6M8M8RMHHRM9HRHH8M9MHHRMHRHH6MH8M8RM9R$F$$]%$k8)S$$\Z/$Z8$^"
                            `?4898RH8RRM9HRHH6HH9RM96HH8R6HH96HHH8MHHH6M8$\1%$Z?}$Zdd8MH8$"''
                               `"*86RMHDRHRHH6H6HH8H6H9RM8RMH8RM9RM8RH8R6k$\$88SH9DRH8^''
                                   `'^#898R6H6H6H6HH9RHRHM98H6HH89HH6HH8H8H9HD6M87L'`
                                        `"'L8LHFM8M89H8H8MH9M86M8M896H6H888/+'''
                                               '""'"`^L**+\*/*+**/"7''"'''