Print a Singing Angel Keeping with a festive theme, print a carol singing angel with the shortest possible code. The angel is raising money for the homeless, so must be able to sing all three of the below songs available at request. To illustrate she can sing them, the title of the song must be placed within the speech bubble. This song title will be input by the user. Examples include:


Mother Mary
Jingle Bells
Silent Night


Input: 

Title: 1 of the 3 songs. 

Output:

                  ____________
(\   ___   /)    /            \
( \ (‘o‘) / )   /              \
(           )  &lt;                              
 (  ‘&gt; &lt;’  )    \              /
    /    \       \____________/
   /      \  
  ‘ – “ - ‘


Please paste the result of your singing angel along with the song: "Silent Night".

Speech Bubble Rules:

The speech bubble must always have a frame of 12 underscore lines long.

The title of the song must always start on the second line.

The title of the song must always start 3 underscore spaces inside the bubble.

                  123456789...
(\   ___   /)    /            \
( \ (‘o‘) / )   /    Song      \
(           )  &lt;     Title                     
 (  ‘&gt; &lt;’  )    \              /
    /    \       \____________/
   /      \  
  ‘ – “ - ‘


Examples below:

                  ____________
(\   ___   /)    /            \
( \ (‘o‘) / )   /    Mother    \
(           )  &lt;     Mary                     
 (  ‘&gt; &lt;’  )    \              /
    /    \       \____________/
   /      \  
  ‘ – “ - ‘

                  ____________
(\   ___   /)    /            \
( \ (‘o‘) / )   /    Jingle    \
(           )  &lt;     Bells                         
 (  ‘&gt; &lt;’  )    \              /
    /    \       \____________/
   /      \  
  ‘ – “ - ‘

                  ____________
(\   ___   /)    /            \
( \ (‘o‘) / )   /    Silent    \
(           )  &lt;     Night                         
 (  ‘&gt; &lt;’  )    \              /
    /    \       \____________/
   /      \  
  ‘ – “ - ‘
JS (ES6), 328 330 bytes

a=(b,c)=>b.repeat(c);f=prompt().split(" ");if(f[1].length&lt;5)f[1]+=" ";console.log(a(" ",18)+a("_",12)+`
(\\   ___   /)    /`+a(" ",12)+`\\
( \\ (‘o‘) / )   /    `+f[0]+`    \\
(`+a(" ",11)+`)  &lt;     `+f[1]+a(" ",21)+`
 (  ‘> &lt;’  )    \\`+a(" ",14)+`/
    /    \\       \\`+a("_",12)+`/
   /      \\  
  ‘ – “ - ‘`)


1 helper function (a gets charcode (one char shorter) and repeats c times)
1 variable for getting input via prompt() and doing a split to array
arguably abuses the special cases there but still does the job
I assumed the extra 21 spaces in the middle column were needed




a=(b,c)=&gt;b.repeat(c);f=prompt().split(" ");if(f[1].length&lt;5)f[1]+=" ";console.log(a(" ",18)+a("_",12)+`
(\\   ___   /)    /`+a(" ",12)+`\\
( \\ (‘o‘) / )   /    `+f[0]+`    \\
(`+a(" ",11)+`)  &lt;     `+f[1]+a(" ",21)+`
 (  ‘&gt; &lt;’  )    \\`+a(" ",14)+`/
    /    \\       \\`+a("_",12)+`/
   /      \\  
  ‘ – “ - ‘`)