[Question]
  [
Tomorrow, November 23rd, is [Thanksgiving Day](https://en.wikipedia.org/wiki/Thanksgiving) in the United States. To prepare, you need to cook up some ASCII turkeys. However, since you're late in planning, you need a program (or function) to help you with how many birds you need to prepare.
```
      .---.   _
    .'     './ )
   /   _   _/ /\
 =(_____) (__/_/==
===================
```
The turkeys you found are rather on the small side, so you've figured out the following ratios -- one turkey will feed:
* four people who only like [white meat](https://en.wikipedia.org/wiki/White_meat) and three people who only like dark meat
* or seven people who don't care either way
* or a combination thereof.
Meaning, there are a total of 4 servings of white meat and 3 servings of dark meat in any given turkey. Further, you can't purchase and cook a partial turkey.
For example, for 3 people who only like white meat, 6 people who only like dark meat, and 3 people who don't care, you'll need two turkeys. That gives 8 servings of white and 6 servings of dark, which is enough to satisfy everyone and have some leftover white meat:
```
      .---.   _         .---.   _
    .'     './ )      .'     './ )
   /   _   _/ /\     /   _   _/ /\
 =(_____) (__/_/== =(_____) (__/_/==
=====================================
```
For 20 people who don't care, you'll need three turkeys, and have either a little bit of white or dark leftover:
```
      .---.   _         .---.   _         .---.   _
    .'     './ )      .'     './ )      .'     './ )
   /   _   _/ /\     /   _   _/ /\     /   _   _/ /\
 =(_____) (__/_/== =(_____) (__/_/== =(_____) (__/_/==
=======================================================
```
And so on.
### Rules
* The three inputs can be in any order you choose, and in [any convenient format](http://meta.codegolf.stackexchange.com/q/2447/42963). Please indicate in your answer how the input is taken.
* There will never be a requirement for more than 25 turkeys (so a maximum of 175 people to feed).
* Leading/trailing newlines or other whitespace are optional, provided that the characters line up appropriately.
* Either a full program or a function are acceptable. If a function, you can return the output rather than printing it.
* Output can be to the console, returned as a list of strings, returned as a single string, etc.
* [Standard loopholes](http://meta.codegolf.stackexchange.com/q/1061/42963) are forbidden.
* This is [code-golf](/questions/tagged/code-golf "show questions tagged 'code-golf'") so all usual golfing rules apply, and the shortest code (in bytes) wins.
  
[Answer]
# Befunge-93, ~~231~~ 224 bytes
```
p&:10p3+4/:&:20p2+3/\-:v
v<0-1:+*`0:-\/7+++&g02<0
>"   _   .---.      "vg`
>"  ) /.'     '.    "v0*
>"  \/ /_   _   /   "v1+
>"==/_/__( )_____(= "v6:
v^0-1 _$"v"000g1+:>v v^<
:#,_$:^1,+55:p+1p00< >>>
_$$99+*"=":>,#:\:#->#1_@
```
[Try it online!](http://befunge.tryitonline.net/#code=cCY6MTBwMys0LzomOjIwcDIrMy9cLTp2CnY8MC0xOisqYDA6LVwvNysrKyZnMDI8MAo+IiAgIF8gICAuLS0tLiAgICAgICJ2Z2AKPiIgICkgLy4nICAgICAnLiAgICAidjAqCj4iICBcLyAvXyAgIF8gICAvICAgInYxKwo+Ij09L18vX18oIClfX19fXyg9ICJ2NjoKdl4wLTEgXyQidiIwMDBnMSs6PnYgdl48CjojLF8kOl4xLCs1NTpwKzFwMDA8ID4+PgpfJCQ5OSsqIj0iOj4sIzpcOiMtPiMxX0A&input=MyA2IDM)
The three values are read from stdin in the order: white meat, dark meat, don't care.
[Answer]
# [APL (Dyalog)](https://www.dyalog.com/), ~~120~~ ~~118~~ 104 bytes
*14 bytes saved thanks to @Adám*
```
{,/(⌈⌈/4 3 7÷⍨⍵,⍺++/⍵)/⊂'='⍪⍨' .-_''/)\=('[4 19⍴10 10⊤¯35+⎕UCS'###(##-:77-&(#F*####+,&0N&&)#,N0Z&d++#']}
```
[Try it online!](https://tio.run/##SyzI0U2pTMzJT///qG@qp/@jtgkG/9OAZLWOvsajng4g0jdRMFYwP7z9Ue@KR71bdR717tLW1geyNPUfdTWp26o/6l0FlFJX0NONV1fX14yx1VCPNlEwtHzUu8XQQMHQ4FHXkkPrjU21geaHOgerKysraygr61qZm@uqaSi7aQH5yto6agZ@amqayjp@BlFqKdrayuqxtf//GyqkAa025jIG02ZcRgZAhoGCAZcFkDY0VLAEAA)
The picky white and dark are on the right, the non picky on the left.
Too bad most of the byte count is taken by the string currently.
**How?**
`⍵,⍺++/⍵` - creates array of whity, darky and sum of them all plus non pickys
`4 3 7÷⍨` - divide by how many of them gets their wishes from one chicken
`⌈/` - take the highest estimate of the three - so if we have extremely high amount of dark meat seekers, they won't be left aside
`⌈` - ceiling, in case only a half-chicken is in demand
Then we create a string, enclose it with `⊂`, then repeat the eclosed matrix the calculated chickens times with `/`, and finally concatenate all chickens with `,/`.
[Answer]
# [Python 2](https://docs.python.org/2/), 142 bytes
```
lambda w,d,n:[min(e)+-min(-w/3,-d/4,-(w+d+n)/7)*e.center(18)for e in"  .---.   _"," .'     './ )","/   _   _/ /\\","=(_____) (__/_/==","="*18]
```
[Try it online!](https://tio.run/##FY5RCoMwEESvsuTHrCZZWksrBU9iRGyNNKWuIinS06fJwPCY9zXbL7xWPse5tfEzLo9phENNiu/d4lk6rHSmPqhWeqKL0vKopoqRblg683Qc3C5PDc7rDg48CwCjtTYAMAglwBSQUxgCTJuyzyUga5No5ZCDkEgDtW12ojw1fdx2z6GwXJj3mj7MsvS8fYNExNjVCq4K6v4P "Python 2 – Try It Online")
-16 bytes thanks to Lynn  
-4 bytes thanks to Mr. Xcoder 
and back to a lambda xD
[Answer]
# [SOGL V0.12](https://github.com/dzaima/SOGL), 65 [bytes](https://github.com/dzaima/SOGL/blob/master/chartable.md)
```
N∫4*κ:F3*.-:h+.-¹χ∆>?F"Ωeχ&i[A⁄╔■§‼╗╝│¼ο≠≈⁹,Ρ⁴žγūž℮3zl3βΜ%G‘'³n*←
```
[Try it Here!](https://dzaima.github.io/SOGLOnline/?code=TiV1MjIyQjQqJXUwM0JBJTNBRjMqLi0lM0FoKy4tJUI5JXUwM0M3JXUyMjA2JTNFJTNGRiUyMiV1MDNBOWUldTAzQzclMjZpJTVCQSV1MjA0NCV1MjU1NCV1MjVBMCVBNyV1MjAzQyV1MjU1NyV1MjU1RCV1MjUwMiVCQyV1MDNCRiV1MjI2MCV1MjI0OCV1MjA3OSUyQyV1MDNBMSV1MjA3NCV1MDE3RSV1MDNCMyV1MDE2QiV1MDE3RSV1MjEyRTN6bDMldTAzQjIldTAzOUMlMjVHJXUyMDE4JTI3JUIzbioldTIxOTA_,inputs=MyUwQTYlMEEz)
Order of inputs is `white`, `dark`, and then `either`.
[Answer]
# [Python 2](https://docs.python.org/2/), ~~197~~ ~~189~~ 174 bytes
thanks to [Erik the Outgolfer](https://codegolf.stackexchange.com/users/41024/erik-the-outgolfer) for -12 bytes  
thanks to [Jonathan Frech](https://codegolf.stackexchange.com/users/73111/jonathan-frech) for -1 byte
```
a,b,c=input()
for i in range(5):print'='[i<4:]+(' '+"   =   (  /_ . _ ' _.  _- __-  )-   .  ( '__ ./_ / /_ /_ )\\/   =   ="[i::4],'='*18)[i>3]*max((6+c+a+b)/7,a+3>>2,(b+2)/3)
```
[Try it online!](https://tio.run/##LYxJCsIwGIX3nuLRTRITm44qwfYibQlpccjCtJQKevr4C8L7Nm9aPttjDkWMTo1qanxYXhsXu9u8wsMHrC7cr7wWZll92FjDOn@pzCA5A5MJgIbggLZIYcFgU8AeYAkIgmzKmaWcOvpXJIm@1/9xk3TemGpQdL7Pz6LzbTnsn@7N@VFO0slR6JNysmzbQvFRFkKXIsZaZSrPvg "Python 2 – Try It Online")
[Answer]
# [Charcoal](https://github.com/somebody1234/Charcoal), 76 bytes
```
”{‴∨➙×95;{；Ｃ.ÞgＦ⁷Ｊ*←λ|⁸ＫＫ][§Ｘ⎚¦»Ｚ◧↘gⅉ✳⟧F⎇≧h”×=¹⁹ＮθＮηＦ⊖⌈⌈⟦∕θ³∕η⁴∕⁺⁺θηＮ⁷⟧Ｃ¹⁸¦⁰
```
[Try it online!](https://tio.run/##XY3BaoNAEIbvPsXgJTOwukpbkhA8mUsOKTn0VosYs4kL7mo2Gtqn346m0NIfdn@@b4fZuqlc3VWt9wen7YAhzImjKIq5y8LOuJjtIpZAs5HT23QkyKJglWE5hYBbljLLChvSJngsfdNG3TDMQgHpmljvbD8Or6M5KofXf9wwnzsHuFW1U0bZQZ0wV7rV9oL76lOb0eD7Vt/1SeFVwBMJ@KFGwPMvHdrx9rh4qmH/9xdiXtIHcSDv@i9MVwIS2nifJsFLkPjo3n4D "Charcoal – Try It Online") Link is to verbose version of code. Explanation:
```
”{‴∨➙×95;{；Ｃ.ÞgＦ⁷Ｊ*←λ|⁸ＫＫ][§Ｘ⎚¦»Ｚ◧↘gⅉ✳⟧F⎇≧h”
```
Print a 1-space-indented turkey.
```
×=¹⁹
```
Print the table.
```
ＮθＮη
```
Input the number of dark and white meat eaters.
```
Ｆ⊖⌈⌈⟦∕θ³∕η⁴∕⁺⁺θηＮ⁷⟧
```
Repeat one less than the ceiling of the maximum of a) one third of the number of dark meat eaters b) one quarter of the number of white meat eaters c) one seventh of the number of diners.
```
Ｃ¹⁸¦⁰
```
Make a copy of the turkey.
[Answer]
# Excel VBA, ~~222~~ ~~219~~ ~~211~~ 198 Bytes
Anonymous VBE immediate window function that takes input from range `[A1:C1]` with order of white meat, dark meat, and indifferent in that order and outputs to the range `[D1]`. 
```
[D1]=[Int(Max((A1+3)/4,(B1+2)/5,Sum(1:1,6)/7))]:For Each s In Split("      .---.   _   1    .'     './ )  1   /   _   _/ /\  1 =(_____) (__/_/==1",1):[E1]=s:?[Rept(E1,D1)]:Next:?[Rept("=",18*D1+1)]
```
Initially the solution finds the correct number of turkeys and then it repeats the turkey pattern that many times. Ideally this would then be directly outputted onto the VBE immediate window as shown by the function below
```
[D1]=[Int(Max((A1+3)/4,(B1+2)/5,Sum(1:1,6)/7))]:For Each s In Split("      .---.   _   1    .'     './ )  1   /   _   _/ /\  1 =(_____) (__/_/==1",1):[E1]=s:?[Rept(E1,D1)]:Next:?[Rept("=",18*D1+1)]
```
This version does initially produce the correct response, however, it is immediately autoformatted by the compiler, as `_` is the line continutation character, and is thus moved to have only one  (space) character to its left, breaking the pattern.
Example shown below for clarity
```
[A1:C1]=Array(0,0,20):[D1].Clear
[D1]=[Int(Max((A1+3)/4,(B1+2)/5,Sum(1:1,6)/7))]:For Each s In Split("      .---.   _   1    .'     './ )  1   /   _   _/ /\  1 =(_____) (__/_/==1",1):[E1]=s:?[Rept(E1,D1)]:Next:?[Rept("=",18*D1+1)]
'' Note that the `_` to the right has moved     V
      .---.   _         .---.   _         .---. _
    .'     './ )      .'     './ )      .'     './ )  
   /   _   _/ /\     /   _   _/ /\     /   _   _/ /\  
 =(_____) (__/_/== =(_____) (__/_/== =(_____) (__/_/==
=======================================================
```
To correct this the last space character (, char 32) before the `_` in line one of the output is replaced with a non-breaking space (, char 160, `Alt + 255`) 
```
      .---.   _         .---.   _         .---.   _   
    .'     './ )      .'     './ )      .'     './ )  
   /   _   _/ /\     /   _   _/ /\     /   _   _/ /\  
 =(_____) (__/_/== =(_____) (__/_/== =(_____) (__/_/==
=======================================================
```
-3 bytes for use of `1` delimited split statement
-8 bytes for use moving `=`'s into the split and using string addition over concatenation
-13 bytes for use of a non-breaking space to prevent autoformatting of the output
[Answer]
# [Kotlin](https://kotlinlang.org), ~~207~~ 198 bytes
thanks to [Taylor Scott](https://codegolf.stackexchange.com/users/61846/taylor-scott) for -7 bytes
```
{a,b,c->val n=maxOf((a+3)/4,(b+2)/3,(6+c+a+b)/7);arrayOf("      .---.   _   ","    .'     './ )  ","   /   _   _/ /\\  "," =(_____) (__/_/==").map{println(it.repeat(n))};println("=".repeat(n*18+1))}
```
~~This does not work on [TIO](https://tio.run/##PY7NS8NAEMXv/SuGvXTG/WqtX7RuwKMnD@KtECalKYvJGtZVlNC/PW6icWDmwe@9gff6lhofhk9uoN7iY0gK5kOgC3gJPoEbelaVOuhizAXX8tdTjchyQ/ZKYSUvyW4U3siDZFmRvaUdx8jfOSRgGqO1NlnLvEJN0CwnZ2ks0AztX6S0YPf7X@qwHIcgqy2tc4JMy13fRR9SE9AnE4/dkRMGovNuxsKJf36xvpPrbA71R4CWfUCOp/ctPIwl759TfjkVBP1iLFTjtVqpFS3Oww8 "Kotlin – Try It Online") yet, as it requires *Kotlin 1.1*~~
[Try it online!](https://tio.run/##PY7NS8NAEMXv/SuGvXTG/WqtX7RuwKMnD@KtECalKYvJGtZVlNC/PW6icWDmwe@9gff6lhofhk9uoN7iY0gK5kOgC3gJPoEbelaVOuhizAXX8tdTjchyQ/ZKYSUvyW4U3siDZFmRvaUdx8jfOSRgGqO1NlnLvEJN0CwnZ2ks0AztX6S0YPf7X@qwHIcgqy2tc4JMy13fRR9SE9AnE4/dkRMGovNuxsKJf36xvpPrbA71R4CWfUCOp/ctPIwl759TfjkVBP1iLFTjtVqpFS3Oww8 "Kotlin – Try It Online")
[Answer]
# JavaScript (ES6), ~~180~~ 179 bytes
Outputs an array of strings.
```
(a,b,c)=>[...`      .---.   _   
    .'     './ )  
   /   _   _/ /\\  
 =(_____) (__/_/==`.split`
`.map(l=>l.repeat(n=Math.max((6+c+a+b)/7,a+3>>4,(b+2)/3)|0)),'='.repeat(18*n+1)]
```
```
f=
(a,b,c)=>[...`      .---.   _   
    .'     './ )  
   /   _   _/ /\\  
  =(_____) (__/_/==`.split`
`.map(l=>l.repeat(n=Math.max((6+c+a+b)/7,a+3>>4,(b+2)/3)|0)),'='.repeat(18*n+1)]
console.log(f(3, 2, 3))
console.log(f(0, 0, 20))
```
---
# JavaScript (ES6), ~~182~~ 181 bytes
Outputs a single string.
```
(a,b,c)=>`      .---.   _   
    .'     './ )  
   /   _   _/ /\\  
 =(_____) (__/_/==
${'='.repeat(18)}`.split`
`.map(l=>l.repeat(Math.max((6+c+a+b)/7,a+3>>4,(b+2)/3))).join`
`+'='
```
```
f=
(a,b,c)=>`      .---.   _   
    .'     './ )  
   /   _   _/ /\\  
 =(_____) (__/_/==
${'='.repeat(18)}`.split`
`.map(l=>l.repeat(Math.max((6+c+a+b)/7,a+3>>4,(b+2)/3))).join`
`+'='
console.log(f(3, 2, 3))
console.log(f(0, 0, 20))
```
*-1 byte (Arnauld): `a+3>>4` instead of `(a+3)/4)`*
]