,8888b 
                        ________    P __ 8b
                  __d888888888888888 8""8 b
                d88P"""".      """""888 9 P
             w88P'        '._         "88b
           d8P           .-(_)-.w.       "8b. 
         d8P          w /   `,  \'8        "88  ,88.  
       _d8P         .8P(     | ,             "8 8  8888b
   _d888            "'   /-___-'`             88  8    8b
  d8P                                          888      8b
  8P d8                       .                88        8:
  8b "8                        :               88        8:
   8bw                         :              :8P8      8P
     "8b                       :             ,8P  888888P
      "8b                      ;           ,88P      d|
       88b                               ,88P       dP
      dP"88b                          ,888P 88b    dP
     dP   "88b____________________www88P      88bdP'
    dP       "88888888888888888888P''           88b
  d88n        d8                    .            "8b
 dP          d8                      .             8b  
 88         8b.                       :             8b
 88           88                       :            "8;
  8b       8b 88                       :             88
   8b       88P                        :             88
    "888888P'                          .             d8
        8b                            :             d8'
        ,8b                                      _d8P 
        8P888b                               __d88P  
        88 "8888b                        __d88P"8b
        88      "888888______________wd888P"      8b
       8P            ""8888888888888P""            88
      8P                                            88
     8P                     w_                      89
    88                       "b  w88                89
    8b                         8b"                  8P
    "8b                         8b                 dP 
     "88b                       8P               .dP
       "8888b________________d888w_           ..dP'
          """"888888888888888P    "888888888888P           


             .,%%%%%,.          ..,,,,..
           .%%%;%;%;%;%,   .,%%%%%%%,%%%%%%,.     .,,,,.
           %%%;a@@@@@a;;,%%%%%%%%%%%%%%%%%%%%%%,;%%;%;%;%%,
           %%%;@@@@@@a;,%%%%%%%%%%%%%%,%%%%%%%%%%;a@@@@a;%%%
           `%%%;@@@a;,%%%%%%%%%%%%%%%%%%%%%%%%%%%%;a@@@@;%%%
             `%%%;;,%%%%%%%%%%%%%% .%%%,%% .%%%%%%%;a@@;%%%'
                ```%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%;%%%%'
                  %%%%%%%%%%%%%%%%%%%'   #`%%%%%%%%%%'
                  %%%%%%%%%%%%%%%%%%%,.  .,%%%%%%%%%%
                  %%%%%%%%%%%%%%%;a@@@@a;a@@@a;%%%%%%
                  `%%%%%%%%%%%;a@@@a@@@@a;a@@a@a;%%%'
                   `%%%%%%%%%;@@@a@@@a@@@;a@a@a@;%%'    ..,,.
              ,sSSSSSs`%%%%%%%;@@@@@@@@@;a@@@@@;%'  .,%%%,;;;;,
            .S@S;;;;;SSs %%%%%%%%%%%%%%%%%%%%%%' .,%%%%%%,;;;;;;,
            S@@SSss;;;;sSs,s@SSSS@,sSSSSSSSSs,.%%%%%%%%%%%,;;;;;;,
            `S@@SSSSSSs;;Ss@@SSSS@@sSs;;;;;;S@s,%%%%%%%%%%%,;;;;;;
            .S@@SSSSSSSSSSs@@SSSS@@sSSSSSs;;;@@S,%%%%%%%%%%%%,;;;'
            S@@SSSSSSSSSSS'`@SSSS@s`SSSSSSSSs@S',%%%%%%%%%%%%%%'
           %`S@SSSSSSSSS'.SSSssssSSS`SSSSSSS@S'%%,%%%%%%%%%%'
         .%%%%,""""""%%.sSSSSS^SSSSSs%`SSSSSS'%%%%,%%%%%'
       .%%%%%%%%%%%%.sSSSSSSS'.sSSSSS,%%"""",%%%%%%,%'
      .%%%%%%%%%%%.sSSSSSSSS'.SSSSSSSS,%%%%%%%%%%%%%.
     .%.%.%.%.%.%.SSSSSSSSS',SSSS^SSSSS,%,%%%%%%%%%%%
     %;;;;;;;;;%,SSSSS^SSSS,,SSS',SSSS'%%%%%%%%%%%%%%,
     ;;;;;;;;;;;,SSSS'%`SS';%`S'%,SS'%%%%%,%%%%%%%%%%%
      `;;;;;;;;'%`SS'%%,S'%%%%,%,S'%%%%%%%%%%%%%%%%%%%
               %%%`S,%%%%%%%%%%%%%%%%%%%%,%%%%%%%%%%%'
               ;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
              .%`%%%%%%%%%%%%%%%%%%%%%%,%%%%%%%%%%%'%
              %%%`%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%'%%%.
             ;%%%%%`%%%%%%%%%%%%%%%%,%%%%%%%%%'%%%%%%%.
             %%%%%%%;%:%:%:%:%%%'`%%:%:%:%:%:%%%%%%%%%%,
             %%%%%%%%%%%%%%%%%%%. `%%%%%%%%%%%%%%%%%%%%%%,
             %%%%%%%%%%%%%%%%%%%%   `%%%%%%%%%%%%%%%%%%%%%%,
             %%%%%%%%%%%%%%%%%%%%.    `%%%%%%%%%%%%%%%%%%%%%%,
             %%%%%%%%%%%%%%%%%%%%%      `%%%%%%%%%%,%%%,%%%,%%%,
             %%%%%%%%,%%%,%%%,%%,%.       `%%%%%,;;;;;;;;;;;;;,%,
             `%%%%,;;;;;;;;;;;;;;,%        `%%,;;;;;;;;;;;;;;;;;;
              `%,;;;;;;;;;;;;;;;;;;         `;;;;;;;;;;;;;;;;;;;'
               `%;;;;;;;;;;;;;;;;;'           `;;;;;;;;;;;;;;;'
                 `;;;;;;;;;;;;;;'                '''''''''''