         dP       oo .8888b   dP                                            dP                                         dP
         88          88   "   88                                            88                                         88
.d8888b. 88d888b. dP 88aaa  d8888P .d8888b. 88d888b.    88d888b. .d8888b. d8888P d888888b dP  dP  dP .d8888b. 88d888b. 88  .dP
Y8ooooo. 88'  `88 88 88       88   88ooood8 88'  `88    88'  `88 88ooood8   88      .d8P' 88  88  88 88ooood8 88'  `88 88888"
      88 88    88 88 88       88   88.  ... 88          88    88 88.  ...   88    .Y8P    88.88b.88' 88.  ... 88       88  `8b.
`88888P' dP    dP dP dP       dP   `88888P' dP          dP    dP `88888P'   dP   d888888P 8888P Y8P  `88888P' dP       dP   `YP
