Output a binary path from a number For an integer n that satisfies n &gt; 0, write its value as a right-descending path based on its binary representation.

Rules


The first (most significant) set bit is always in the top-left corner.
When the next bit is set (a 1), draw a character ("filled") on the next line in the same column as the previous character drawn. Try to use spaces ("empty") to fill, but any character will do as long as it's always the same.
When the next bit is unset (a 0), draw a character ("filled") on the same line immediately to the the right of the previous character drawn.
Your code must support numbers with at least 20 significant bits.
Write a full program, a function, a lambda, etc. but no snippet.
No leading spaces (or "empty" char) / lines allowed
Any number of trailing spaces (or "empty" char) / lines allowed
Any kind of 1D input is accepted: number, string, array of booleans, etc. Keep the order of bits untouched though.
Any kind of visual 2D output is accepted: on stdout, a string (with any two distinct values representing "filled" and "empty"), you can even output a matrix if you want. A list of numbers seems hard to reconcile with the "no heading spaces" rule, but I'm open to it if you find a way to use it. Note: if you chose to print or return a string, the characters used must be ASCII characters in the codepoints range [32-126].
Standard loopholes are banned.
This is codegolf so the shortest code wins.


Examples

Input: 1

*


Input: 2

**


Input: 3

*
*


Input: 4

***


Input: 5

**
 *


Input: 6

*
**


Input: 7

*
*
*


Input: 25

*
***
  *


Input: 699050

**
 **
  **
   **
    **
     **
      **
       **
        **
         **


Input: 1047552

*
*
*
*
*
*
*
*
*
***********


Input: 525311

**********
         *
         *
         *
         *
         *
         *
         *
         *
         *
         *
MATL, 14 bytes

J_iB^YsJ+'o-'&amp;XG


Produces graphical output as a path starting at coordinates (0,0). Try it at MATL Online! Or see some offline examples below:


Input 7:



Output:


Input 699050:



Output:




If you prefer, you can see the path as complex coordinates for 9 bytes:

J_iB^YsJ+


Try it online!

Explanation

J_      % Push -1j (minus imaginary unit)
i       % Push input number
B       % Convert to binary. Gives an array of 0 and 1 digits
^       % Power, element-wise. A 0 digit gives 1, a 1 digit gives -1j
Ys      % Cumulative sum. Produces the path in the complex plane
J+      % Add 1j, element-wise. This makes the complex path start at 0
'o-'    % Push this string, which defines plot makers
&amp;XG     % Plot