Output the full name of titin Titin is a protein found in muscle tissue. It is a pretty big protein, and its full chemical name is giant as well. Comprising 189819 characters, the full name of titin would take about 3.5 hours to pronounce. Your task is to output this entire name!
Details
The full name can be found here: Gist (this file does not include the trailing newline)
The MD5 hash of the output is ec73f8229f7f8f2e542c316a41cbfff4 (without a trailing newline) or 628c6eb157eb1de675cfc5b91a8149ce (with a trailing newline).

You may not access an external resource, be it a file or an internet location.
You must output only the exact text from the pastebin to STDOUT or STDERR. Nothing else should be output to your chosen output stream; leading and trailing whitespace are acceptable.
You may not assume there will be any input, but you may assume that there will be no input if needed.
You may output anything to the other output stream (STDOUT if you chose to output to STDERR and vice versa)
Standard loopholes apply

This is a code-golf challenge, so the shortest program in bytes wins!
EDIT
This is NOT a duplicate of the Rick Astley &quot;Never Gonna Give You Up&quot; challenge. Besides the tags, they're not even similar. In that one, output is a multi-line song with a few sections that repeats the first two words of every line. In this one, output is a fairly compressible string with 189819 letters. Please don't close-vote this as a dupe of that.
JavaScript (ES6), 16840 16825 16814 bytes

Saved a couple of bytes by:


inserting the last acid prefix in the packed string as suggested by ETHproductions
choosing the next character group in a slightly more efficient way when there's a tie




Assumes Windows-1252 character encoding. Outputs without a trailing newline.

Below is a simplified version without any actual data.

[...Array(256)].map((_,i)=&gt;i&lt;52|i&gt;126&amp;i&lt;161|i==92|i==96?0:s=s.split(String.fromCharCode(i)).join(`...dictionary...`.slice(j,j+=2)),j=0,s=`...packed_data...`)&amp;&amp;[...s].map(c=&gt;'methion|threon|glutamin|alan|prol|phen|leuc|ser|val|glutam|glyc|histid|isoleuc|tryptoph|argin|aspart|lys|asparagin|tyros|cystein'.split`|`[c.charCodeAt()-32]).join`yl`+'ine'


And here is the full version:

Try it online!

The TIO link includes some additional code to print the MD5 of the output rather than printing the output itself:

ec73f8229f7f8f2e542c316a41cbfff4

How?

This was compressed by:


Mapping the 20 distinct amino acids to ASCII characters 32 to 51.
Repeatedly replacing the most frequent 2-character group by a new ASCII character in the following ranges:


52-91
93-95
97-126
161-255



Which leaves us with a dictionary of 336 bytes (168 entries of 2 characters) and a final compressed string of 16161 bytes.

The above code is doing the exact opposite.