Question: > 
> *No, not that thing in powerpoint*
> 
> 
> 

You will be given a string, and a 2D array of boolean values. The 2D array will represent a picture.

You will be creating art out of it.

Let me show you how.

The steps to art
================

First, you create a square which fits the 2d array, with the string.

Like if the string is 'PPCG', and the picture is 4x3, the square should be like this.

```
PPCG
PCGP
CGPP
GPPC

```

Now in the square, erase all characters which the corresponding boolean is 0, or the corresponding boolean doesn't exist.

Let me show you. If the 2D array is

```
1001
0110
1001

```

And the square is same to the above (above this one), the result should be like:

```
P  G
 CG 
C  P

```

Now output the result.

Test data is not made yet. Will add ASAP.
=========================================

Rules
=====

* General [code-golf](/questions/tagged/code-golf "show questions tagged 'code-golf'") rules apply, including loopholes.

Answer: 
[Python 2](https://docs.python.org/2/), ~~89~~ ~~81~~ ~~88~~ 86 bytes
=====================================================================

```python
i=input();n=k=len(i)-2
print i
exec'print i[~k]+" "*n+i[k];k-=1;'*n
if~k:print i[::-1]

```

[Try it online!](https://tio.run/##NcqxCoAgEADQ3a@QFktx0FHxS8IpjI6LS8OgFn/dlhofvPzU7SDbOwSgfNVx8hQw7IlGmLRl@QSqHFi60yI@zA2jGvggScGM0aMOxgtJDNaG7k/OaRN7F6WIFw "Python 2 – Try It Online")
[APL](https://www.dyalog.com/), 58 bytes
========================================

```
{(' ',⍵)[x+(x←∘.{((c-1)=⍺⌈⍵)∨0=⍺⌊⍵}⍨r)×o⌊⌽⊖o←∘.⌈⍨r←⍳c←≢⍵]}

```

With `⎕IO←0`.

[Try it online!](https://tio.run/##SyzI0U2pTMzJT////1HfVE//R20TDLjSgGS1hrqCus6j3q2a0RXaGhVAkUcdM/SqNTSSdQ01bR/17nrU0wGSfdSxwgDC7QJyax/1rijSPDw9H8ztfNQ1DULmQ/WDNa0oAvF6NyeDqM5FQG2xtf//pymoJ6pzAUlDI2Mw7ZGak5OvqA4A)

**How?**

`c←≢⍵` - length of the string

`r←⍳` - range

`o←∘.⌈⍨` - outer product with minimum

```
123
223
333

```

`o⌊⌽⊖` - minimalize with itself turned 180o

```
123  ⌊  333  =  123
223  ⌊  322  =  222
333  ⌊  321  =  321

```

`×` - multiply with

`x←∘....⍨r` - outer product of the range with

    `((c-1)=⍺⌈⍵)∨0=⍺⌊⍵` - the frame of the matrix

```
111  ×  123  =  123
101  ×  222  =  202
111  ×  321  =  321

```

`x+` - add the frame

```
111  +  123  =  234
101  +  202  =  303
111  +  321  =  432

```

`(' ',⍵)[...]` - get by index from the string concatenated to space