MiraculousLegendas / get-flash-videos

Automatically exported from code.google.com/p/get-flash-videos
1 stars 0 forks source link

Channel 4 site changes - download fails #379

Open GoogleCodeExporter opened 8 years ago

GoogleCodeExporter commented 8 years ago
What steps will reproduce the problem?
1. get_flash_videos http://....../4od#nnnnnn
2.
3.

What is the expected output? What do you see instead?
rtmpdump starting download...

What version of the product are you using? On what operating system?
Latest, OpenBSD current amd64

Please provide any additional information below.
The swf file has changed from 11.21.2 to 11.23.4, some programmes still work, 
depending on the streamURL returned by ais.channel4.com in the xml. Rather than 
a url ending with rtmpe://......mp4, it returns with http://.....fm4, a http 
query returns xml data, this now appear to allow additional media bit rate 
selection.

Original issue reported on code.google.com by njtaylor...@gmail.com on 13 Apr 2012 at 9:19

GoogleCodeExporter commented 8 years ago
This is very interesting--hopefully Channel 4 will soon be offering programmes 
at decent resolution.

All the videos I've tried so far have worked. Please provide a URL which 
doesn't work so I can have a look.

Original comment by zakflash...@gmail.com on 15 Apr 2012 at 3:14

GoogleCodeExporter commented 8 years ago
Try this one...

http://www.channel4.com/programmes/homeland/4od#3311268

They switched to a video/f4f stream...

http://stream-recorder.com/forum/tags/f4f/

My test program... 

$ perl ch4_f4vdownload.pl 
http://www.channel4.com/programmes/homeland/4od#3311268
Fetched from http://www.channel4.com/programmes/homeland/4od#3311268
Fetched from http://ais.channel4.com/asset/3311268
Fetched from 
http://ak.abrstream.channel4.com/CH4_08_02_24_52804008001002_003_16x9_1500000_.f
4m
Bitrate   400 CH4_08_02_24_52804008001002_003_16x9_0500000_
Bitrate   700 CH4_08_02_24_52804008001002_003_16x9_0800000_
Bitrate   872 CH4_08_02_24_52804008001002_003_16x9_1000000_
Bitrate  1072 CH4_08_02_24_52804008001002_003_16x9_1200000_
Bitrate  1372 CH4_08_02_24_52804008001002_003_16x9_1500000_
Selected Bitrate = 400
Fetched Fragment 
http://ak.abrstream.channel4.com/CH4_08_02_24_52804008001002_003_16x9_0500000_Se
g1-Frag1
Fetched Fragment 
http://ak.abrstream.channel4.com/CH4_08_02_24_52804008001002_003_16x9_0500000_Se
g1-Frag2

Original comment by njtaylor...@gmail.com on 16 Apr 2012 at 12:49

GoogleCodeExporter commented 8 years ago
Interesting, I wasn't aware of f4f. I've done a little bit of research and 
looked at the f4m file you linked to. I'm a bit concerned about the amount of 
DRM-related junk in it. Are the videos themselves encrypted to the max, or is 
it just the metadata that's encrypted? Interestingly mplayer seems to detect 
the first fragment as MPEG 4 / H264.

From what I've seen, neither ffmpeg nor mplayer support assembling these 
fragments into a single file. I had a look and found various Adobe 
specifications and ActionScript code (links below) but didn't have the time to 
investigate fully. (i.e. I don't know if the fragments contain a little bit of 
metadata and then the video data, making it relatively easy to reassemble, or 
what's going on.) 

http://download.macromedia.com/f4v/video_file_format_spec_v10_1.pdf
http://opensource.adobe.com/svn/opensource/osmf/trunk/framework/OSMF/org/osmf/ne
t/httpstreaming/
http://help.adobe.com/en_US/HTTPStreaming/1.0/Using/WS9463dbe8dbe45c4c-c126f3b12
60533756d-7ffc.html

Could you share your test script please?

Original comment by zakflash...@gmail.com on 16 Apr 2012 at 6:25

GoogleCodeExporter commented 8 years ago
From what I found, they may not be using the DRM, or if they are it's
only a small part before the segment fragments. I couldn't see drm in
the Fragments I looked at, might be in later ones.

Part of the video is in metadata, for each bitrate, and refers to audio
video mp4a/avc1.

Attaching the test script, excuse muddle I am middle of attempting to
assemble the fragments. Might have taken wrong turn trying to create flv
file. Wasn't sure if I need to just put fragments together, or needed to
put the mdat boxes together. Internals of video files is new to me.

The DRM block in the fm4 file, have b64 decoded once, but contains
within it a B64 block, that tells you how to fetch the key. Haven't
looked at that yet.

Seen the documents above, also found my way to this one
ISO_14496-15_AVCFF.pdf.

Original comment by njtaylor...@gmail.com on 16 Apr 2012 at 7:03

GoogleCodeExporter commented 8 years ago
Attachment striped when sent by e-mail..

Original comment by njtaylor...@gmail.com on 16 Apr 2012 at 7:26

Attachments:

GoogleCodeExporter commented 8 years ago
Interesting, I've had a look at your test script and it seems you've done lots 
more investigation than I have.

How are you meant to determine the number of segments and fragments? It doesn't 
seem to be mentioned in the XML, and when I dumped the Flash player's memory, I 
only see Seg1-Frag1 and Seg1-Frag2--no obvious details of the total number of 
segments.

The only interesting thing I've discovered, which probably isn't that 
surprising when you think about it, is that the memory dump contains 
org.osmf.net.httpstreaming.f4f::HTTPStreamingF4FStreamInfo, implying that they 
are indeed using the ActionScript classes we expected. That could give clues 
for how to implement this maybe.

Original comment by zakflash...@gmail.com on 17 Apr 2012 at 8:53

GoogleCodeExporter commented 8 years ago
this is what I just completed the from decoding the bootstrap b64
encoded - in the .f4m file... I get the following information

BOX abst 139
Timescale 1000
CurrentMediaTime 2846080
29 29
drm
Seg Type asrt len 25
  Segment Run Count 1
    First Segment 1 Frag per Seg 712
  reached - 25 25
Frag Type afrt len 70
  TimeScale 1000
  Frag Run Count 3
    first frag 1  Frag timestamp 0 Frag duration 4000
    first frag 712  Frag timestamp 2844000 Frag duration 2100
    frag - end of presentation
  reached - 70 70
Reached 139
139 Eof of Boxes Fragment Reached

712 is the correct number of fragments, 4000*711+2100 = 2846100
2846100 about 48mins + advert makes it 1hr about right duration.
Each fragment about 4seconds.

The abst box contains one or more asrt boxes followed by one or more
afrt boxes, those boxes contain a list of segments and fragments.
Each fragment also contains a abst box with asrt and afrt boxes within.

I revised the script, for now using download copies in files, to save
repeated downloading.

Original comment by njtaylor...@gmail.com on 17 Apr 2012 at 10:47

GoogleCodeExporter commented 8 years ago
second test script, uses files instead of downloading each time.

Original comment by njtaylor...@gmail.com on 18 Apr 2012 at 1:43

Attachments:

GoogleCodeExporter commented 8 years ago
I'm guessing this doesn't download a completed joined file from the fragments? 
I ran the test script with a recent ch4 program and had message "could not open"

Original comment by mathew.h...@gmail.com on 19 Apr 2012 at 8:46

GoogleCodeExporter commented 8 years ago
The file reads are done by readfile subroutine, 
my $raw_xml =  readfile "asset";
$raw_xml = readfile "CH4_08_02_24_52804008001002_003_16x9_1500000_.f4m";
    $streamdata = readfile "CH4_08_02_24_52804008001002_003_16x9_1500000_Seg1-Frag$i";

Uses files called asset = xml contents from
http://ais.channel4.com/asset/3311268

file called CH4_08_02_24_52804008001002_003_16x9_1500000_.f4m
http://ak.abrstream.channel4.com/CH4_08_02_24_52804008001002_003_16x9_1500000_.f
4m

Script to download Fragments, uses OpenBSD ftp, may need to change to 
curl/wget...
i=1
while ([[ $i -lt 713 ]] )
do
  ftp http://ak.abrstream.channel4.com/CH4_08_02_24_52804008001002_003_16x9_1500000_Seg1-Frag${i}
  i=$(($i+1))
done

AMF0 decode of meta data gives this...
Metadata
$VAR1 = 'onMetaData';
$VAR2 = {
          'custdef' => [],
          'audiosamplerate' => '24000',
          'videocodecid' => 'avc1',
          'width' => '1024',
          'audiocodecid' => 'mp4a',
          'aacaot' => '0',
          'audiochannels' => '2',
          'videoframerate' => '25',
          'trackinfo' => [
                           {
                             'length' => '71150000',
                             'language' => 'eng',
                             'timescale' => '25000'
                           },
                           {
                             'length' => '68306944',
                             'language' => 'eng',
                             'timescale' => '24000'
                           }
                         ],
          'duration' => '2846.12266666667',
          'height' => '576',
          'avclevel' => '40',
          'avcprofile' => '77'
        };

That's for highest bit rate...

Original comment by njtaylor...@gmail.com on 19 Apr 2012 at 11:46

GoogleCodeExporter commented 8 years ago
I guess the question is can this be made into a plugin?

Original comment by mathew.h...@gmail.com on 19 Apr 2012 at 6:35

GoogleCodeExporter commented 8 years ago
The channel 4 plugin, would get the streamURL from the asset xml, as it
currently does if starts rtmp use rtmpdump as before. if starts http,
then calls a new utility routine FlashVideos::F4V .....
Then it could be used by other site plug-ins, for this type of streaming.

Original comment by njtaylor...@gmail.com on 19 Apr 2012 at 7:50

GoogleCodeExporter commented 8 years ago
Perhaps I'm missing something but when I tried to play the resulting media file 
(though only containing 3 fragments), VLC didn't recognise it as a media file...

As for integration into get_flash_videos, I recommend another downloader class 
like FlashVideo::Downloader and FlashVideo::RTMPDownloader: 
FlashVideo::F4VStreamDownloader or similar. If a plugin or site module returned 
a F4V URL, get_flash_videos would just invoke the appropriate method on an 
instance of the F4VStreamDownloader class.

As 4oD finally offers (it seems) different quality settings for videos, support 
for that should be added to Channel4.pm too. See lib/FlashVideo/Site/Youtube.pm 
for an example.

Original comment by zakflash...@gmail.com on 19 Apr 2012 at 9:30

GoogleCodeExporter commented 8 years ago
The f4v stream is based on mpeg4 - however the header parts are in the
stream url xml/.f4m file, and are in a different form to mp4. The first
step was decoding that, then the next stage is to create the mp4 header
for the file.

This is getting to far ahead from where I am at the moment.

I have done this before for ITV and Channel5 plugins. Again getting a
basic download working first, then I can look at this.

Original comment by njtaylor...@gmail.com on 20 Apr 2012 at 12:16

GoogleCodeExporter commented 8 years ago
I'm scratching my head with this one. I'll watch this space for a plugin update.

Original comment by mathew.h...@gmail.com on 21 Apr 2012 at 12:35

GoogleCodeExporter commented 8 years ago
Any news on progress on getting a completed download working?

Original comment by mathew.h...@gmail.com on 27 Apr 2012 at 11:47

GoogleCodeExporter commented 8 years ago
On 04/27/12 12:47, get-flash-videos@googlecode.com wrote:

Had to take a break, should be able to get back to looking at this soon.

Original comment by njtaylor...@gmail.com on 1 May 2012 at 4:02

GoogleCodeExporter commented 8 years ago
[deleted comment]
GoogleCodeExporter commented 8 years ago
Tried cat-ting fragments together but no go with mplayer or vlc; also tried php 
script from stream recorder site which gave me a video file 13b long! I suspect 
the 4od videos may be protected by Adobe Flash Access Protection.

Original comment by jtaylor...@gmail.com on 14 May 2012 at 7:43

GoogleCodeExporter commented 8 years ago
jtaylor: if read njtaylor's previous comments on this issue, you'll see that 
he's provided a script to combine the fragments together. It's not as simple as 
just cat-ing them, because that won't give you the FLV header. If you look at 
ch4combine.pl (line 323) you'll see there's code to generate the FLV header, 
though it's commented out. It's not commented out in ch4test.pl, njtaylor's 
other script.

njtaylor's previous investigation suggests that the video data itself isn't 
DRM'd--but it's just not obvious to figure out how to put the files together. 
The FLV file format spec and the documentation for HTTP streaming aren't 
exactly easy going.

I'd really like to get this working though, as use of it is going to increase. 
BBC trialled it last year for a Grand Prix too, worked pretty well.

Original comment by zakflash...@gmail.com on 15 May 2012 at 8:05

GoogleCodeExporter commented 8 years ago
The script I referred to (AdobeHDS.php) is here:
https://github.com/K-S-V/Scripts

(from http://stream-recorder.com/forum/adobe-hds-fragment-joiner-t12074.html)

PHP script that assembles an flv file from the f4f fragments. Can someone else 
try it on 4od fragments?

Original comment by jtaylor...@gmail.com on 16 May 2012 at 7:56

GoogleCodeExporter commented 8 years ago
I tried it but also just got a 13 byte file - it just contains the FLV header. 
I used http://www.channel4.com/programmes/the-cleveland-show/4od#3345377 as my 
test. njtaylor's script only downloads 2 segments (intentionally).

I've had a bit of a look at AdobeHDS.php. It can only handle packet types of 
audio (0x08) or video (0x09) yet the packet types in the F4F files I have from 
4od are 40 and 41. Nevertheless it's probably a good starting point.

Original comment by zakflash...@gmail.com on 16 May 2012 at 8:01

GoogleCodeExporter commented 8 years ago
The AdobeDS.php script does not work, 

I added these two lines after line 293..
          $packetFlags = $packetType & 0xe0;
          $packetType = $packetType & 0x01f;

That gives some output, not output that can be played. Rather than 0x08 
or 0x09 for audio / video the type is 0x28 and 0x29, the flag bits 
indicate some form of encryption.

The .f4m xml contains Additional data contains a bundle of x509 certificates 
in some format. Along with the infromation AES-CBC and Key Length 16 (128 
bits), and 
the Metadata, combining the frag misses the header information.

Below is the output from my current script of some packets, with 
encrypted/decrypted 
audio/video using the wrong key and padding hasn't been removed after 
decryption yet either. 
1st 4 Columns are from the trun box, Hint Track, 
filt = Number of  filters to be applied
Name = Filter name, 'SE' = Selective Encryption,
FiltLen = Length of filter params
EFlag = 80 if Encrypted.
IV = AES Initial Value Vector.
PLen = Packet data length
TSize = Tag Size (Size - 4, Leng + 11)

Durat  Size   Flags     COffs Type Leng  Timesta StrID Aud/VidHdr filt Name 
Filtlen EFlag IV                                PLen TSize
    0,    57, 02000000,     0 28      42       0     0 af00          1 SE        17    80 a2d058b12ccf1dbb80e628e7e5259cf0    16    53
8b198d489ecee8c70ce405db8435e0fa
f579849c92167dec92173a9a2b60f670
    0,   124, 02000000,     0 29     109       0     0 1700000000    1 SE        17    80 3ee9d9b96150cbb8da29ec4f1d916c4d    80   120
0590f7259960135822837b7be9473c664522adde040d19fffc3b6c10f348ed98f84726d1a00cb938
7c3301c168431263
0747269bbf12b197cc54ae44d2a38dccf759241069ac502acd80eb73ecb53e221426240eb3f4add2
984646d59e3dba1e
    0,   124, 02000000,     0 29     109       0     0 1700000000    1 SE        17    80 03e9b73d360f687b0d225272bfbae920    80   120
7ac605873791e2fd84ec208e04484139ae002139e22210ffcf84478d5f0025b1cdbea837788c1faa
8583b9b11106c327
e39d6c246a0eda4ab431490b500f82af673d9de2d89ff73aa046fc3ea822ad44a61a49350b460015
1e88bdbf050bcaa4
    0,  1052, 02000000,     0 29    1037       0     0 1701000028    1 SE        17    80 1f8739e36948d56496d3e3ec11fe3b72  1008  1048
8882bf6d197979790a54c060b884ef3396149fa3f61dee6d4986244d4142040a80f561e21b155be8
fa5531929192f164
65303868989d21b6ea7d265b300c29b61193ae996b56369288141bcfc85b9e5f585953a0833cfbc3
094caec37702424d
   40,   329, 01010000,     0 28     314       0     0 af01          1 SE        17    80 32eadcaabe27fa8c24b2234624fdd870   288   325
d0f6b28e6286f10a5819f396c182e43e5864fb32d51df8297542f34fd6cdc6d11b68825e5efe06ad
fffbdd145671d4ed
73bc8c58aa3adef0b5865b1afeaa948cd06bef3657cca2d213ce5c92690b7f172efc5d701ee61cd3
66249c3b8b1296aa
    2,  2572, 01010000,     0 29    2557      40     0 2701000050    1 SE        17    80 ae186b61c5b1c49ec84c0dfacdd37aa3  2528  2568
6557069fbbb724631c1392ea90801d2deb8ea1c06307b3818b6e4e9a00792114ca60e5284035f2a6
39a65961b600b59c
f02ae1023bb1b8420ff46092d5d0315b888d69c0e9670ed9df35a7805acc211ef6f6c8f377164da7
074b0d1f0b75c887
   38,   393, 01010000,     0 28     378      42     0 af01          1 SE        17    80 1e5eff1d9fc9e56bf94ad482aa2aaaed   352   389
af293fb6d06a5ea7fac8c4123f7affdb9f5af19f50dc3c9df07b20b0d0d3f21b5f7eff8034b3c34b
c554c6540c305fe3
1600970b80b69e94089dd444698afda83ee3c522b682d5ecb6d6456b940e60980c06a3831dd5bc7e
577a89537151455c
    5,   300, 01010000,     0 29     285      80     0 2701000000    1 SE        17    80 83ba7dabe9b55061d32dd07b1420c6b3   256   296
fc34fa26fb6914f63e93a8b2456fada33fdcf6c1f9df802722b3f306b0c834fd39ba10583d0afec4
fca31e78319cb7f8
e05aba102124556bdd0f1633c3d9cb622da7fdfc0954a86ca55713fd1d6b3c682aaa76eee0f8d253
2976a330c77195a6
.....

I need to find the 16 byte(128bit) key.

Original comment by njtaylor...@gmail.com on 17 May 2012 at 3:22

GoogleCodeExporter commented 8 years ago
Looks like the key is

    n9cLieYkqwzNCqvi

Original comment by moss...@gmail.com on 23 Jun 2012 at 9:55

GoogleCodeExporter commented 8 years ago
are we getting close too having a means to download 4od yet?

Original comment by mark.cro...@gmail.com on 10 Jul 2012 at 7:05

GoogleCodeExporter commented 8 years ago
The existing support works with many videos--only some use HDS. I would like to 
see HDS support too but I don't have the time to work on it, and evidently 
njtaylor doesn't either.

Perhaps someone can use njtaylor's investigation and the key and try to produce 
a working download script. If someone does this I will consider integrating it 
into gfv.

Original comment by zakflash...@gmail.com on 10 Jul 2012 at 8:06

GoogleCodeExporter commented 8 years ago
See http://code.google.com/p/get-flash-videos/issues/detail?id=428 for some 
insights.  Who knows?  Might help.

Cheers,

-- 
Cristian

Original comment by Cristian...@gmail.com on 17 Oct 2012 at 4:44

GoogleCodeExporter commented 8 years ago
njtaylor: can you please post the most up-to-date script that you have? I 
wonder if with the possible key provided by mossytc, your script and K-S-V's 
scripts (https://github.com/K-S-V/Scripts) we could try to hack something 
together.

Channel 4 is increasing using HDS and there are lots of shows I now can't watch 
:(

Original comment by zakflash...@gmail.com on 30 Oct 2012 at 8:20

GoogleCodeExporter commented 8 years ago
current script.

run using perl ch4_f4v_flv.pl url
url should end in 6 digits like these
http://www.channel4.com/programmes/suburgatory/4od#3417498
http://www.channel4.com/programmes/suburgatory/4od?intcmp=homecatchup~3431801

limited to 4 fragments.. url will be set if not given.
create a directory with the 6 digits, downloads once into directory, then on 
uses directory. lots of print / output can be taken out. Needs Convert::ASN1.

Original comment by njtaylor...@gmail.com on 31 Oct 2012 at 9:04

Attachments:

GoogleCodeExporter commented 8 years ago
[deleted comment]
GoogleCodeExporter commented 8 years ago
The code was posted by request in a non working state, the key to decrypt the 
stream is not known so the video can't be played. This is to allow others to 
look at finding the key. Until the key is found it is unknown if the flv file 
created is in the correct format.

Original comment by njtaylor...@gmail.com on 7 Nov 2012 at 1:18

GoogleCodeExporter commented 8 years ago
slist is still there but is not detected by the script, however i got round 
that by manually adding the details. the key seems to be in the swf file, 
contractid from the xml is another potential for the key 
http://ais.channel4.com/asset/3412042?1346634890, the token would be my best 
guess where the key is as it seems to be long similar to a 128bit key. im going 
to do some packet capturing just as it about to begin and end the key will be 
hidden or obvious but finding it is the hard bit.

Original comment by andrewcr...@gmail.com on 7 Nov 2012 at 6:45

GoogleCodeExporter commented 8 years ago
mmmmm seems i might have stumble upon the key without realizing it

see attach file ive not a clue how i got it

Original comment by andrewcr...@gmail.com on 7 Nov 2012 at 6:54

Attachments:

GoogleCodeExporter commented 8 years ago
and it seems i have got hold of another xml file not sure where from but it has 
some interesting data

<drmAdditionalHeader
         drmContentId="293409"
         id="drmMetadata5154"
    >
        AgARfEFkZGl0aW9uYWxIZWFkZXIDAApFbmNyeXB0aW9uAwAHVmVyc2lvbgBAAAAAAAAAAAAGTWV0aG9kAgAIU3RhbmRhcmQABUZsYWdzAAAAAAAAAAAAAAZQYXJhbXMDAAdWZXJzaW9uAD/wAAAAAAAAABNFbmNyeXB0aW9uQWxnb3JpdGhtAgAHQUVTLUNCQwAQRW5jcnlwdGlvblBhcmFtcwMACUtleUxlbmd0aABAMAAAAAAAAAAACQAHS2V5SW5mbwMAB3N1YlR5cGUCAA1GbGFzaEFjY2Vzc3YyAA5GTVJNU19NRVRBREFUQQMACE1ldGFkYXRhAiCETUlJWVhnWUpLb1pJaHZjTkFRY0NvSUlZVHpDQ0dFc0NBUUV4Q3pBSkJnVXJEZ01DR2dVQU1JSUlEUVlKS29aSWh2Y05BUWNCb0lJSC9nU0NCL293Z2dmMkFnRUNNSUlCYkRDQ0FXZ0NBUU1DQVFJRUpFWTROVVV6TlRrNUxUVXpOVEF0TXpGRU1TMUNOekUwTFRJM1JUQkdSVEZETmtRM05UR0I0REJaRENsamIyMHVZV1J2WW1VdVpteGhjMmhoWTJObGMzTXVjbWxuYUhSekxteHBZMlZ1YzJWVmMyRm5aYUFzTVNvd0VBWUpLb1pJaHZjdkF3WU9vQU1CQWY4d0ZnWUpLb1pJaHZjdkF3WU5vQU1CQWYraEJBSUNBU3d3Z1lJTUlXTnZiUzVoWkc5aVpTNW1iR0Z6YUdGalkyVnpjeTV5YVdkb2RITXVjR3hoZWFCZE1Wc3dGd1lKS29aSWh2Y3ZBd1lFb0FNQkFmK2hCVEFEQWdFQ01CNEdDU3FHU0liM0x3TUdCNkFEQVFIL29Rd3dDcUFEQ2dFQ29RTUtBUU13SUFZSktvWklodmN2QXdZTG9BTUJBZitoRGpBTW9BTUtBUUtoQlRBRENnRURvQXdNQ2pNdU1DNHhMakEyTlRXaEVBd09RelF0Vms5RUxUUnZaQzV3YjJ5ak1qRXdNQzRNS21OdmJTNWhaRzlpWlM1bWJHRnphR0ZqWTJWemN5NWhkSFJ5YVdKMWRHVnpMbUZ1YjI1NWJXOTFjekVBcGdNQkFmOHhnZ1R3TUlJRTdERWtEQ0pvZEhSd09pOHZabUY0TG1NMExtRjNjeTV5WldSaVpXVnRaV1JwWVM1amIyMHZNSUlFd2pDQ0E2cWdBd0lCQWdJUWJDcnpZWE1xTGpWeW40ZXh5ZVRscURBTkJna3Foa2lHOXcwQkFRc0ZBREJsTVFzd0NRWURWUVFHRXdKVlV6RWpNQ0VHQTFVRUNoTWFRV1J2WW1VZ1UzbHpkR1Z0Y3lCSmJtTnZjbkJ2Y21GMFpXUXhNVEF2QmdOVkJBTVRLRUZrYjJKbElFWnNZWE5vSUVGalkyVnpjeUJEZFhOMGIyMWxjaUJDYjI5MGMzUnlZWEFnUTBFd0hoY05NVEl3TVRJME1EQXdNREF3V2hjTk1UUXdNVEl6TWpNMU9UVTVXakNCaHpFTE1Ba0dBMVVFQmhNQ1ZWTXhJekFoQmdOVkJBb1VHa0ZrYjJKbElGTjVjM1JsYlhNZ1NXNWpiM0p3YjNKaGRHVmtNUkl3RUFZRFZRUUxGQWxVY21GdWMzQnZjblF4R3pBWkJnTlZCQXNVRWtGa2IySmxJRVpzWVhOb0lFRmpZMlZ6Y3pFaU1DQUdBMVVFQXd3WlVrVkVRa1ZGVFVWRVNVRXRWRk5RVkMweU1ERXlNREV5TXpDQm56QU5CZ2txaGtpRzl3MEJBUUVGQUFPQmpRQXdnWWtDZ1lFQTNjbGRtNFNIMVJSR0prV09lUUtBZklDMnlGc21kMGNUSFM5UUtucFNzdEEwaXJibE9lSTU2V3VmcXpYb0QvUEtmSEZ6OWhXak50OUtoWFJodTQ2U0NPeUNxUkk0REtZZDgxeXVtaDZXblQ5N1l0bmJIV0poY2l1aUg3bkFvNTBDbFNOb2JCWEkvUm1YZXJKUzZ0WkJYb09TL3BPamlkRTJ4eW1abkt3d0Rma0NBd0VBQWFPQ0FjMHdnZ0hKTUdrR0ExVWRId1JpTUdBd1hxQmNvRnFHV0doMGRIQTZMeTlqY213ekxtRmtiMkpsTG1OdmJTOUJaRzlpWlZONWMzUmxiWE5KYm1OdmNuQnZjbUYwWldSR2JHRnphRUZqWTJWemMwTjFjM1J2YldWeVFtOXZkSE4wY21Gd0wweGhkR1Z6ZEVOU1RDNWpjbXd3Q3dZRFZSMFBCQVFEQWdTd01JSGtCZ05WSFNBRWdkd3dnZGt3Z2RZR0NpcUdTSWIzTHdNSkFBQXdnY2N3TWdZSUt3WUJCUVVIQWdFV0ptaDBkSEE2THk5M2QzY3VZV1J2WW1VdVkyOXRMMmR2TDJac1lYTm9ZV05qWlhOelgyTndNSUdRQmdnckJnRUZCUWNDQWpDQmd4cUJnRlJvYVhNZ1kyVnlkR2xtYVdOaGRHVWdhR0Z6SUdKbFpXNGdhWE56ZFdWa0lHbHVJR0ZqWTI5eVpHRnVZMlVnZDJsMGFDQjBhR1VnUVdSdlltVWdSbXhoYzJnZ1FXTmpaWE56SUVOUVV5QnNiMk5oZEdWa0lHRjBJR2gwZEhBNkx5OTNkM2N1WVdSdlltVXVZMjl0TDJkdkwyWnNZWE5vWVdOalpYTnpYMk53TUI4R0ExVWRJd1FZTUJhQUZCb2tadzhrUGlncHNMbmlkWTZGQVYybG45RE1NQjBHQTFVZERnUVdCQlRWdWYwM2R2STRrYjJ5SjdHOWgvM3JPRURkMERBVkJnTlZIU1VFRGpBTUJnb3Foa2lHOXk4RENRRTNNQkVHQ2lxR1NJYjNMd01KQWdVRUF3SUJBREFOQmdrcWhraUc5dzBCQVFzRkFBT0NBUUVBWnFlQlUyQm1ld2hzdDducGVDZ04vcHhndnpFZGZVNUdacDhkUld4cVVFRGVtSVZNdkNwRy92TWxRYWFuZHl3OVBQSnJQTW1RblhHR2V3SUpyTko4YjQ2MnJuc3ZLb1ZkWXJVYVMxeUI0dU96eHdHRzRzdUF5bWdWNkhCcTJsTXIyUUtOaWg4SzRQWjYrdFBucmhuU2ZBd0wzUEJ1U3I2MVFLcGN2RWZyM253QXQxQmcyUEVaR3BSalJMUjcySE5RVjJGV3FBa0tsait1RWwzRFJvTmtiUmNZb0JVRHNGQS8ydGpCYmM1WXBXZTRFOTJaMGtMZkhuZ1gwUElqL0h0aWFubnY4S3czOEowMnhsZGZzWFUySzYwNWVlMXd3YzJNcHRwZXBVM0FrZHR2WlgrMUJGWWJYZEVKYmROakNVN3RiQ2JmODVQNHhxMjQxc2w5aWRaRnBqQ0I4Z1FKVFdwcmVrNUVRVFVBR0E4eU1ERXlNRGt5TURFd01EazFOVm9FZ1lCME4xZnlPOFZoV0J2TFFWdjZOZWpjeit1ZWlhU2ZEMTBLOHFGUTU0bVZNL01pY1ZXdFhKZzBlbFBqNWZJZndnbFJrQVdMeER1dmJDNWFJL1VXMlhZV1c5YlluYmF3cVlONjBTeUJTd3RTaSszalBIWnVMN2Z6YUxKU1Z1RzFpdGNBZmZna2YyMmxRdXVBNkRGVDdHZnFmTGpWaFVpbkFtZGp5U0xIZDJqUnhqQWhCZ2txaGtpRzl5OERDQUlFRk9pRm1XT1hwS0xXTmM1SWVBTkJOWndDUmZkbG9BZ0VCakk1TXpRd09hRWtEQ0pvZEhSd09pOHZabUY0TG1NMExtRjNjeTV5WldSaVpXVnRaV1JwWVM1amIyMHZNSGt3WlRFTE1Ba0dBMVVFQmhNQ1ZWTXhJekFoQmdOVkJBb1RHa0ZrYjJKbElGTjVjM1JsYlhNZ1NXNWpiM0p3YjNKaGRHVmtNVEV3THdZRFZRUURFeWhCWkc5aVpTQkdiR0Z6YUNCQlkyTmxjM01nUTNWemRHOXRaWElnUW05dmRITjBjbUZ3SUVOQkFoQWtoSVhhODNLYkR2THhvN3hobUQyOG9CME1Hekl1TUM0eU1ERXlNRGt5TURFd01EazFOWHBmVWtWTVJVRlRSYUNDRHFRd2dnVEJNSUlEcWFBREFnRUNBaEFraElYYTgzS2JEdkx4bzd4aG1EMjhNQTBHQ1NxR1NJYjNEUUVCQ3dVQU1HVXhDekFKQmdOVkJBWVRBbFZUTVNNd0lRWURWUVFLRXhwQlpHOWlaU0JUZVhOMFpXMXpJRWx1WTI5eWNHOXlZWFJsWkRFeE1DOEdBMVVFQXhNb1FXUnZZbVVnUm14aGMyZ2dRV05qWlhOeklFTjFjM1J2YldWeUlFSnZiM1J6ZEhKaGNDQkRRVEFlRncweE1qQXhNalF3TURBd01EQmFGdzB4TkRBeE1qTXlNelU1TlRsYU1JR0dNUXN3Q1FZRFZRUUdFd0pWVXpFak1DRUdBMVVFQ2hRYVFXUnZZbVVnVTNsemRHVnRjeUJKYm1OdmNuQnZjbUYwWldReEVUQVBCZ05WQkFzVUNGQmhZMnRoWjJWeU1Sc3dHUVlEVlFRTEZCSkJaRzlpWlNCR2JHRnphQ0JCWTJObGMzTXhJakFnQmdOVkJBTU1HVkpGUkVKRlJVMUZSRWxCTFZCTFIxSXRNakF4TWpBeE1qTXdnWjh3RFFZSktvWklodmNOQVFFQkJRQURnWTBBTUlHSkFvR0JBTFIwNlU5cG1jUjRocldXS2Y5dWdLMUZGWEJzaEpMbTJTenhaYnliSEV1a1N4RGhYMHNTMWg1VDJLbHg0bUMrSjU2emExMHRXelFac2hzaSt2czRCdzc2TzRwUTVhQ0pLYXhzT0N5NHppUzY0QzZmQTBsaUdEQ21Zdy9GME84ZlZCWjMrVTdzNjJoM1lpUEEwVUMxdmU4SnBOY1c1Yk83SnJxcU4rd1hmenF6QWdNQkFBR2pnZ0hOTUlJQnlUQnBCZ05WSFI4RVlqQmdNRjZnWEtCYWhsaG9kSFJ3T2k4dlkzSnNNeTVoWkc5aVpTNWpiMjB2UVdSdlltVlRlWE4wWlcxelNXNWpiM0p3YjNKaGRHVmtSbXhoYzJoQlkyTmxjM05EZFhOMGIyMWxja0p2YjNSemRISmhjQzlNWVhSbGMzUkRVa3d1WTNKc01Bc0dBMVVkRHdRRUF3SUVzRENCNUFZRFZSMGdCSUhjTUlIWk1JSFdCZ29xaGtpRzl5OERDUUFBTUlISE1ESUdDQ3NHQVFVRkJ3SUJGaVpvZEhSd09pOHZkM2QzTG1Ga2IySmxMbU52YlM5bmJ5OW1iR0Z6YUdGalkyVnpjMTlqY0RDQmtBWUlLd1lCQlFVSEFnSXdnWU1hZ1lCVWFHbHpJR05sY25ScFptbGpZWFJsSUdoaGN5QmlaV1Z1SUdsemMzVmxaQ0JwYmlCaFkyTnZjbVJoYm1ObElIZHBkR2dnZEdobElFRmtiMkpsSUVac1lYTm9JRUZqWTJWemN5QkRVRk1nYkc5allYUmxaQ0JoZENCb2RIUndPaTh2ZDNkM0xtRmtiMkpsTG1OdmJTOW5ieTltYkdGemFHRmpZMlZ6YzE5amNEQWZCZ05WSFNNRUdEQVdnQlFhSkdjUEpENG9LYkM1NG5XT2hRRmRwWi9RekRBZEJnTlZIUTRFRmdRVTJkaGE0K3lMYkJ0Z3huaVBZSW9KeEJ6eEFwQXdGUVlEVlIwbEJBNHdEQVlLS29aSWh2Y3ZBd2tCTmpBUkJnb3Foa2lHOXk4RENRSUZCQU1DQVFBd0RRWUpLb1pJaHZjTkFRRUxCUUFEZ2dFQkFDVm80ZVU4SnowbmRlUzU2Qi9lQ3JScEtxNFp2N1NCVWRLUnlLZXAyS1JmbEZRNXV0SEZsVWlVMlRTdk9vZ3hDdHhsSjZndHhwOXZnYmJvVng4N1dTV2VvMWVqSmtHbUV3SjNaOTQ4ZFlZZHRZMFl3My9KWmJEK0doeTZhLzlyV1dYSWpJQlFiUk5mdmVYVUxpYW5wZG43Uk9jQldzY01JalU2UFord2tDQ1B6YTkwTVBsTi9DRWNFdDlXclZQTmtibzM5M1l6QkRLOTF5azVra0p5UzF3LzFValpHeFRvYW1yWDJENWlSV0d3aDVUbzV2LzRnbSsxcTVTZkZXN0lJSjlqKzg1dTU4TUJFaUhLQ3pVUEI1TkJ3UlZwZ1VmelN6V2tLQVo3NDdWOVVncUFsSWsycnBWcW16QTlEN3Zna0JVYUlBWGpYOUxJM1V3cTM0MlZCUFV3Z2dUVk1JSUR2YUFEQWdFQ0FoQTB0bnBuZUxkNVJDYnBDQlFuOGwydU1BMEdDU3FHU0liM0RRRUJDd1VBTUZjeEN6QUpCZ05WQkFZVEFsVlRNU013SVFZRFZRUUtFeHBCWkc5aVpTQlRlWE4wWlcxeklFbHVZMjl5Y0c5eVlYUmxaREVqTUNFR0ExVUVBeE1hUVdSdlltVWdSbXhoYzJnZ1FXTmpaWE56SUZKdmIzUWdRMEV3SGhjTk1Ea3hNVEV3TURBd01EQXdXaGNOTWpreE1UQTVNak0xT1RVNVdqQmZNUXN3Q1FZRFZRUUdFd0pWVXpFak1DRUdBMVVFQ2hNYVFXUnZZbVVnVTNsemRHVnRjeUJKYm1OdmNuQnZjbUYwWldReEt6QXBCZ05WQkFNVElrRmtiMkpsSUVac1lYTm9JRUZqWTJWemN5QkpiblJsY20xbFpHbGhkR1VnUTBFd2dnRWlNQTBHQ1NxR1NJYjNEUUVCQVFVQUE0SUJEd0F3Z2dFS0FvSUJBUUMrVndqYmgxVDZPT0k3QW5zVy9rRG9OZVpscVhoWGhJNVcwaExJYSszZVBLTUNETGlLNSt3OGczTDU0VDlQRStRclpMQ2ZVUmtsalRPTWxJdVZrT0N4c0hZOFlKSGVXTTZxanVtT005SVVucisvOU1pNXQ1bWZTdEVRZHk4amRhZTUwSHd2b3hHdE9YYlphNjNhbmN3Z2p2S3ZJMGZPSHJZeGsyK3g5U3R4czBseUpWdkRQT2JBQmQzNTZnMytXWXdnUWFLOWdDSWI1UkpVeGR2UU1hNUgwWUNoZG5PcVEvcTZiT0lSRWllSmlRb0cvR2czcTJqT1NxWFJkcW11ZUQ3VGVLSHg4d3Zzc0xPZlRTQVowV0g3Q0orYnh3eHVZNmVlbGdwSnM5bUhpVEh4UWFBcjMxYjZucDlRY0czYTJ2aXVhV21BNTN0NlBZalBjMUE3SWFqbEFnTUJBQUdqZ2dHVE1JSUJqekFPQmdOVkhROEJBZjhFQkFNQ0FRWXdFZ1lEVlIwVEFRSC9CQWd3QmdFQi93SUJBVENCNUFZRFZSMGdCSUhjTUlIWk1JSFdCZ29xaGtpRzl5OERDUUFBTUlISE1ESUdDQ3NHQVFVRkJ3SUJGaVpvZEhSd09pOHZkM2QzTG1Ga2IySmxMbU52YlM5bmJ5OW1iR0Z6YUdGalkyVnpjMTlqY0RDQmtBWUlLd1lCQlFVSEFnSXdnWU1hZ1lCVWFHbHpJR05sY25ScFptbGpZWFJsSUdoaGN5QmlaV1Z1SUdsemMzVmxaQ0JwYmlCaFkyTnZjbVJoYm1ObElIZHBkR2dnZEdobElFRmtiMkpsSUVac1lYTm9JRUZqWTJWemN5QkRVRk1nYkc5allYUmxaQ0JoZENCb2RIUndPaTh2ZDNkM0xtRmtiMkpsTG1OdmJTOW5ieTltYkdGemFHRmpZMlZ6YzE5amNEQkNCZ05WSFI4RU96QTVNRGVnTmFBemhqRm9kSFJ3T2k4dlkzSnNNaTVoWkc5aVpTNWpiMjB2UVdSdlltVXZSbXhoYzJoQlkyTmxjM05TYjI5MFEwRXVZM0pzTUIwR0ExVWREZ1FXQkJUekxuVmhSQmxBaXBHTVRyRldXazdQVEVBMzhEQWZCZ05WSFNNRUdEQVdnQlNIZlM4K0pnVEN4TGVNMEtyaWd6K1k5eXJlWmpBTkJna3Foa2lHOXcwQkFRc0ZBQU9DQVFFQW00YUZxai9sMG9HempZeFRTRjkxMFpRcldYZElhVGo1dFV6c0I0MVM5TnB3WUhPTkRKYXh6bWtvbGhiSTJpVnYzd01JcEhMRE4ycG1mS20yRDZTbHliOU92cmhONU1Db2F6cEVWODgzVy9UUG5qRmd6cUU0RVliNEFFRlJZRW9PVTdpNGFWUERVVHMzVDJKVHhENG9jZUJIQVBxbXcrQXFoSVk5eHpJbGlYY2NxVy9XeHhUd2ZDWXFJOC9IdW5jNG02aVdKQTBWM1IxYTFMK0pEWVZiZE9NMlpxSXJBY3dVMjBPLzhUcS9xQlFLNjZ1U0FjR0UwZHR2cFV0am04K1RNYlRoSHhkdENjMlJ6TGpYbFN0a1Q0YzFIdERlbVJrSk01RWk3ZWR4djcvSklYWEMzTFFFYVhrWUFYWkQrVlc1REUvRnU0YmFkWSt4UE1VdVAvSXdsVENDQlFJd2dnUHFvQU1DQVFJQ0VEd0V5eFBEVFMyekxnUDUvYlRpZFlRd0RRWUpLb1pJaHZjTkFRRUxCUUF3WHpFTE1Ba0dBMVVFQmhNQ1ZWTXhJekFoQmdOVkJBb1RHa0ZrYjJKbElGTjVjM1JsYlhNZ1NXNWpiM0p3YjNKaGRHVmtNU3N3S1FZRFZRUURFeUpCWkc5aVpTQkdiR0Z6YUNCQlkyTmxjM01nU1c1MFpYSnRaV1JwWVhSbElFTkJNQjRYRFRBNU1URXhNREF3TURBd01Gb1hEVEkwTVRFd09USXpOVGsxT1Zvd1pURUxNQWtHQTFVRUJoTUNWVk14SXpBaEJnTlZCQW9UR2tGa2IySmxJRk41YzNSbGJYTWdTVzVqYjNKd2IzSmhkR1ZrTVRFd0x3WURWUVFERXloQlpHOWlaU0JHYkdGemFDQkJZMk5sYzNNZ1EzVnpkRzl0WlhJZ1FtOXZkSE4wY21Gd0lFTkJNSUlCSWpBTkJna3Foa2lHOXcwQkFRRUZBQU9DQVE4QU1JSUJDZ0tDQVFFQXM4c1pJMTFGYWttSFpIaWJyaUVrQWlHSGhaZ1RqanlVNU01UlI5NlFjSEQwUWlPeGVZNFE4RkFsSnFvVWNzT2RjbGIrT3lTMnJudFBWSXAwVnlnZGR1Nm5TUzRTYWljUWNoUExKeEhqUy9FUlJrSTBhZXB2SFYxZWw2TGRjRFhRLzllVXZRbll3NjlSTmRieVM5Q0hBZTI3R01QQmpwNFpLNHlkUFQ0U2VnSTZKYmw4L0FucHBBSWVyZ1BMS29HWVl4NmFmdEhBaVViR1FIcUlHM1YxUmpacTU1Vlh2ZWVTQm5kS1k5bWMwT3RaRVpkK08xdTlRS2t0dTFxNTRYbCtUWHU2c3hLMU1sajRjM3dYMytqdG1KMzY5UTVLMm5wM3ZqbjRFcVlERmw3WWlhRG43bzVaS1IwRDdGVU1QdWNnNzFIbWsyUHFjSGNRNGY2Y2xWeUhHd0lEQVFBQm80SUJzakNDQWE0d0VnWURWUjBUQVFIL0JBZ3dCZ0VCL3dJQkFEQ0I1QVlEVlIwZ0JJSGNNSUhaTUlIV0Jnb3Foa2lHOXk4RENRQUFNSUhITURJR0NDc0dBUVVGQndJQkZpWm9kSFJ3T2k4dmQzZDNMbUZrYjJKbExtTnZiUzluYnk5bWJHRnphR0ZqWTJWemMxOWpjRENCa0FZSUt3WUJCUVVIQWdJd2dZTWFnWUJVYUdseklHTmxjblJwWm1sallYUmxJR2hoY3lCaVpXVnVJR2x6YzNWbFpDQnBiaUJoWTJOdmNtUmhibU5sSUhkcGRHZ2dkR2hsSUVGa2IySmxJRVpzWVhOb0lFRmpZMlZ6Y3lCRFVGTWdiRzlqWVhSbFpDQmhkQ0JvZEhSd09pOHZkM2QzTG1Ga2IySmxMbU52YlM5bmJ5OW1iR0Z6YUdGalkyVnpjMTlqY0RBVkJnTlZIU1VFRGpBTUJnb3Foa2lHOXk4RENRRUNNQTRHQTFVZER3RUIvd1FFQXdJQkJqQktCZ05WSFI4RVF6QkJNRCtnUGFBN2hqbG9kSFJ3T2k4dlkzSnNNaTVoWkc5aVpTNWpiMjB2UVdSdlltVXZSbXhoYzJoQlkyTmxjM05KYm5SbGNtMWxaR2xoZEdWRFFTNWpjbXd3SFFZRFZSME9CQllFRkJva1p3OGtQaWdwc0xuaWRZNkZBVjJsbjlETU1COEdBMVVkSXdRWU1CYUFGUE11ZFdGRUdVQ0trWXhPc1ZaYVRzOU1RRGZ3TUEwR0NTcUdTSWIzRFFFQkN3VUFBNElCQVFBVnF6Si8zcnlZZFpCanFNZExKcGM1aE5haXVEbWVROXJiOGNFNzFOL21TUkFSZCtjaStBZ2VDMjhnRVk5UTB6QnhVY1hkeDRhQkdpWVpZNFhhQ1habXFJZEdEOEsxMWJtUXhoVkpTOFRaaWpwOVduWkVwenhydG0vUFhsemJiWFNlNWU1SEVRVnR6WnFYT29vYzAvUXkyNWpWNjByODZ4ZTVwWWpjc290MjVEd2xudThqa0xzSFdSRGJvSVNYbDBJRE55U3gyMWpnbWMvSjFLa1IvMzVxRmxtQjhKRWxBN2YwaDRCTnJYbjNKeklrNERJVEtNamt6WnIycXljQmZmUlJlcCtENkh2UTBQNk9oMDJXVVVxWlVCajRrbDB4ekFnUmkrYzZCeUw0TnQ1d3ZzSXc3WjhFNmVsZ2NHampMYUI2bEhRTk0yWUkzMjIxUzRCV0NzamNNWUlCZmpDQ0FYb0NBUUV3ZVRCbE1Rc3dDUVlEVlFRR0V3SlZVekVqTUNFR0ExVUVDaE1hUVdSdlltVWdVM2x6ZEdWdGN5QkpibU52Y25CdmNtRjBaV1F4TVRBdkJnTlZCQU1US0VGa2IySmxJRVpzWVhOb0lFRmpZMlZ6Y3lCRGRYTjBiMjFsY2lCQ2IyOTBjM1J5WVhBZ1EwRUNFQ1NFaGRyemNwc084dkdqdkdHWVBid3dDUVlGS3c0REFob0ZBS0JkTUJnR0NTcUdTSWIzRFFFSkF6RUxCZ2txaGtpRzl3MEJCd0V3SEFZSktvWklodmNOQVFrRk1ROFhEVEV5TURreU1ERXdNRGsxTlZvd0l3WUpLb1pJaHZjTkFRa0VNUllFRkIweU16VzlvYmJwaHUrVm1ZT1NxRDM1Y1loV01BMEdDU3FHU0liM0RRRUJBUVVBQklHQXBlWGRIdzVqYXNEMUVENklBYXBsOC9CKzlLZVVkL3lYUEd1dzR3UmdMYUo3WWV2VTFvaDUzaE1HeVZMZUZLRmRRbVVnS2Eza0RDYlRrbWNwRXc5T0x3cEtDZ3MrMXpOOHNNOTFja1JoenpRaWtNRUNwU1kvK2Y4OWVSUDZ1bno3elN2RGg5andsdGJ5Slk4VWdnbnRwSDRTUFdIczFac1RnQzNRYXFqUVFXYz0AAAkAAAkAAAkAAAkAAAk=
    </drmAdditionalHeader>

Original comment by andrewcr...@gmail.com on 7 Nov 2012 at 6:58

Attachments:

GoogleCodeExporter commented 8 years ago
[deleted comment]
GoogleCodeExporter commented 8 years ago
ok i have been doing some packet capturing here is the wireshark file with the 
relevant information relating to 4od packet 1330 has some interesting 
information in the http data section, then packet 1405 acknowledges the packet 
1330 and it the server then keeps on repeating this. this could be the key to 
time team episode above Data: 
7b2265787069726564223a66616c73652c22617373657449...

Original comment by andrewcr...@gmail.com on 7 Nov 2012 at 9:21

Attachments:

GoogleCodeExporter commented 8 years ago
david i just took a look at your link and here is something more interesting

<bootstrapInfo profile="named" id="bootstrap1242">
AAAAi2Fic3QAAAAAAAAAAgAAAAPoAAAAAAAVwoAAAAAAAAAAAAAAAAAAAQAAABlhc3J0AAAAAAAAAAAB
AAAAAQAAAWUBAAAARmFmcnQAAAAAAAAD6AAAAAADAAAAAQAAAAAAAAAAAAAPoAAAAWUAAAAAABW6gAAA
B9AAAAAAAAAAAAAAAAAAAAAAAA==
</bootstrapInfo>
<drmAdditionalHeader drmContentId="323443" id="drmMetadata8468">
AgARfEFkZGl0aW9uYWxIZWFkZXIDAApFbmNyeXB0aW9uAwAHVmVyc2lvbgBAAAAAAAAAAAAGTWV0aG9k
AgAIU3RhbmRhcmQABUZsYWdzAAAAAAAAAAAAAAZQYXJhbXMDAAdWZXJzaW9uAD/wAAAAAAAAABNFbmNy
eXB0aW9uQWxnb3JpdGhtAgAHQUVTLUNCQwAQRW5jcnlwdGlvblBhcmFtcwMACUtleUxlbmd0aABAMAAA
AAAAAAAACQAHS2V5SW5mbwMAB3N1YlR5cGUCAA1GbGFzaEFjY2Vzc3YyAA5GTVJNU19NRVRBREFUQQMA
CE1ldGFkYXRhAiCETUlJWVhnWUpLb1pJaHZjTkFRY0NvSUlZVHpDQ0dFc0NBUUV4Q3pBSkJnVXJEZ01D
R2dVQU1JSUlEUVlKS29aSWh2Y05BUWNCb0lJSC9nU0NCL293Z2dmMkFnRUNNSUlCYkRDQ0FXZ0NBUU1D
QVFJRUpFWTROVVV6TlRrNUxUVXpOVEF0TXpGRU1TMUNOekUwTFRJM1JUQkdSVEZETmtRM05UR0I0REJa
RENsamIyMHVZV1J2WW1VdVpteGhjMmhoWTJObGMzTXVjbWxuYUhSekxteHBZMlZ1YzJWVmMyRm5aYUFz
TVNvd0VBWUpLb1pJaHZjdkF3WU9vQU1CQWY4d0ZnWUpLb1pJaHZjdkF3WU5vQU1CQWYraEJBSUNBU3d3
Z1lJTUlXTnZiUzVoWkc5aVpTNW1iR0Z6YUdGalkyVnpjeTV5YVdkb2RITXVjR3hoZWFCZE1Wc3dGd1lK
S29aSWh2Y3ZBd1lFb0FNQkFmK2hCVEFEQWdFQ01CNEdDU3FHU0liM0x3TUdCNkFEQVFIL29Rd3dDcUFE
Q2dFQ29RTUtBUU13SUFZSktvWklodmN2QXdZTG9BTUJBZitoRGpBTW9BTUtBUUtoQlRBRENnRURvQXdN
Q2pNdU1DNHhMakEyTlRXaEVBd09RelF0Vms5RUxUUnZaQzV3YjJ5ak1qRXdNQzRNS21OdmJTNWhaRzlp
WlM1bWJHRnphR0ZqWTJWemN5NWhkSFJ5YVdKMWRHVnpMbUZ1YjI1NWJXOTFjekVBcGdNQkFmOHhnZ1R3
TUlJRTdERWtEQ0pvZEhSd09pOHZabUY0TG1NMExtRjNjeTV5WldSaVpXVnRaV1JwWVM1amIyMHZNSUlF
d2pDQ0E2cWdBd0lCQWdJUWJDcnpZWE1xTGpWeW40ZXh5ZVRscURBTkJna3Foa2lHOXcwQkFRc0ZBREJs
TVFzd0NRWURWUVFHRXdKVlV6RWpNQ0VHQTFVRUNoTWFRV1J2WW1VZ1UzbHpkR1Z0Y3lCSmJtTnZjbkJ2
Y21GMFpXUXhNVEF2QmdOVkJBTVRLRUZrYjJKbElFWnNZWE5vSUVGalkyVnpjeUJEZFhOMGIyMWxjaUJD
YjI5MGMzUnlZWEFnUTBFd0hoY05NVEl3TVRJME1EQXdNREF3V2hjTk1UUXdNVEl6TWpNMU9UVTVXakNC
aHpFTE1Ba0dBMVVFQmhNQ1ZWTXhJekFoQmdOVkJBb1VHa0ZrYjJKbElGTjVjM1JsYlhNZ1NXNWpiM0p3
YjNKaGRHVmtNUkl3RUFZRFZRUUxGQWxVY21GdWMzQnZjblF4R3pBWkJnTlZCQXNVRWtGa2IySmxJRVpz
WVhOb0lFRmpZMlZ6Y3pFaU1DQUdBMVVFQXd3WlVrVkVRa1ZGVFVWRVNVRXRWRk5RVkMweU1ERXlNREV5
TXpDQm56QU5CZ2txaGtpRzl3MEJBUUVGQUFPQmpRQXdnWWtDZ1lFQTNjbGRtNFNIMVJSR0prV09lUUtB
ZklDMnlGc21kMGNUSFM5UUtucFNzdEEwaXJibE9lSTU2V3VmcXpYb0QvUEtmSEZ6OWhXak50OUtoWFJo
dTQ2U0NPeUNxUkk0REtZZDgxeXVtaDZXblQ5N1l0bmJIV0poY2l1aUg3bkFvNTBDbFNOb2JCWEkvUm1Y
ZXJKUzZ0WkJYb09TL3BPamlkRTJ4eW1abkt3d0Rma0NBd0VBQWFPQ0FjMHdnZ0hKTUdrR0ExVWRId1Jp
TUdBd1hxQmNvRnFHV0doMGRIQTZMeTlqY213ekxtRmtiMkpsTG1OdmJTOUJaRzlpWlZONWMzUmxiWE5K
Ym1OdmNuQnZjbUYwWldSR2JHRnphRUZqWTJWemMwTjFjM1J2YldWeVFtOXZkSE4wY21Gd0wweGhkR1Z6
ZEVOU1RDNWpjbXd3Q3dZRFZSMFBCQVFEQWdTd01JSGtCZ05WSFNBRWdkd3dnZGt3Z2RZR0NpcUdTSWIz
THdNSkFBQXdnY2N3TWdZSUt3WUJCUVVIQWdFV0ptaDBkSEE2THk5M2QzY3VZV1J2WW1VdVkyOXRMMmR2
TDJac1lYTm9ZV05qWlhOelgyTndNSUdRQmdnckJnRUZCUWNDQWpDQmd4cUJnRlJvYVhNZ1kyVnlkR2xt
YVdOaGRHVWdhR0Z6SUdKbFpXNGdhWE56ZFdWa0lHbHVJR0ZqWTI5eVpHRnVZMlVnZDJsMGFDQjBhR1Vn
UVdSdlltVWdSbXhoYzJnZ1FXTmpaWE56SUVOUVV5QnNiMk5oZEdWa0lHRjBJR2gwZEhBNkx5OTNkM2N1
WVdSdlltVXVZMjl0TDJkdkwyWnNZWE5vWVdOalpYTnpYMk53TUI4R0ExVWRJd1FZTUJhQUZCb2tadzhr
UGlncHNMbmlkWTZGQVYybG45RE1NQjBHQTFVZERnUVdCQlRWdWYwM2R2STRrYjJ5SjdHOWgvM3JPRURk
MERBVkJnTlZIU1VFRGpBTUJnb3Foa2lHOXk4RENRRTNNQkVHQ2lxR1NJYjNMd01KQWdVRUF3SUJBREFO
QmdrcWhraUc5dzBCQVFzRkFBT0NBUUVBWnFlQlUyQm1ld2hzdDducGVDZ04vcHhndnpFZGZVNUdacDhk
Uld4cVVFRGVtSVZNdkNwRy92TWxRYWFuZHl3OVBQSnJQTW1RblhHR2V3SUpyTko4YjQ2MnJuc3ZLb1Zk
WXJVYVMxeUI0dU96eHdHRzRzdUF5bWdWNkhCcTJsTXIyUUtOaWg4SzRQWjYrdFBucmhuU2ZBd0wzUEJ1
U3I2MVFLcGN2RWZyM253QXQxQmcyUEVaR3BSalJMUjcySE5RVjJGV3FBa0tsait1RWwzRFJvTmtiUmNZ
b0JVRHNGQS8ydGpCYmM1WXBXZTRFOTJaMGtMZkhuZ1gwUElqL0h0aWFubnY4S3czOEowMnhsZGZzWFUy
SzYwNWVlMXd3YzJNcHRwZXBVM0FrZHR2WlgrMUJGWWJYZEVKYmROakNVN3RiQ2JmODVQNHhxMjQxc2w5
aWRaRnBqQ0I4Z1FKVFhwSmVrNUVVWG9BR0E4eU1ERXlNVEF6TVRFd01EZ3dOVm9FZ1lCbHRlOEhheVBI
QUpMNzA3QmtNdmNFSnFsY0lyTFA1d1VTdkRLN09NUWx6M1M1ci9KMXpQTzhmTk5saDRRLzNqa3EzYkJM
S21tbzY1U3FncXJuZ05LZHl0K3gycE13Z0hkZVFUenQ2dGRSSXhSZU1aR0JmbnN5YkFMRlJTQUJMTXh5
UkIwZEk4eHNMSE40TVBkTU1ieUVkMkRGbWt2T3dTaHltc3NBYkhMS0FqQWhCZ2txaGtpRzl5OERDQUlF
Rk9pRm1XT1hwS0xXTmM1SWVBTkJOWndDUmZkbG9BZ0VCak15TXpRME02RWtEQ0pvZEhSd09pOHZabUY0
TG1NMExtRjNjeTV5WldSaVpXVnRaV1JwWVM1amIyMHZNSGt3WlRFTE1Ba0dBMVVFQmhNQ1ZWTXhJekFo
QmdOVkJBb1RHa0ZrYjJKbElGTjVjM1JsYlhNZ1NXNWpiM0p3YjNKaGRHVmtNVEV3THdZRFZRUURFeWhC
Wkc5aVpTQkdiR0Z6YUNCQlkyTmxjM01nUTNWemRHOXRaWElnUW05dmRITjBjbUZ3SUVOQkFoQWtoSVhh
ODNLYkR2THhvN3hobUQyOG9CME1Hekl1TUM0eU1ERXlNVEF6TVRFd01EZ3dOWHBmVWtWTVJVRlRSYUND
RHFRd2dnVEJNSUlEcWFBREFnRUNBaEFraElYYTgzS2JEdkx4bzd4aG1EMjhNQTBHQ1NxR1NJYjNEUUVC
Q3dVQU1HVXhDekFKQmdOVkJBWVRBbFZUTVNNd0lRWURWUVFLRXhwQlpHOWlaU0JUZVhOMFpXMXpJRWx1
WTI5eWNHOXlZWFJsWkRFeE1DOEdBMVVFQXhNb1FXUnZZbVVnUm14aGMyZ2dRV05qWlhOeklFTjFjM1J2
YldWeUlFSnZiM1J6ZEhKaGNDQkRRVEFlRncweE1qQXhNalF3TURBd01EQmFGdzB4TkRBeE1qTXlNelU1
TlRsYU1JR0dNUXN3Q1FZRFZRUUdFd0pWVXpFak1DRUdBMVVFQ2hRYVFXUnZZbVVnVTNsemRHVnRjeUJK
Ym1OdmNuQnZjbUYwWldReEVUQVBCZ05WQkFzVUNGQmhZMnRoWjJWeU1Sc3dHUVlEVlFRTEZCSkJaRzlp
WlNCR2JHRnphQ0JCWTJObGMzTXhJakFnQmdOVkJBTU1HVkpGUkVKRlJVMUZSRWxCTFZCTFIxSXRNakF4
TWpBeE1qTXdnWjh3RFFZSktvWklodmNOQVFFQkJRQURnWTBBTUlHSkFvR0JBTFIwNlU5cG1jUjRocldX
S2Y5dWdLMUZGWEJzaEpMbTJTenhaYnliSEV1a1N4RGhYMHNTMWg1VDJLbHg0bUMrSjU2emExMHRXelFa
c2hzaSt2czRCdzc2TzRwUTVhQ0pLYXhzT0N5NHppUzY0QzZmQTBsaUdEQ21Zdy9GME84ZlZCWjMrVTdz
NjJoM1lpUEEwVUMxdmU4SnBOY1c1Yk83SnJxcU4rd1hmenF6QWdNQkFBR2pnZ0hOTUlJQnlUQnBCZ05W
SFI4RVlqQmdNRjZnWEtCYWhsaG9kSFJ3T2k4dlkzSnNNeTVoWkc5aVpTNWpiMjB2UVdSdlltVlRlWE4w
WlcxelNXNWpiM0p3YjNKaGRHVmtSbXhoYzJoQlkyTmxjM05EZFhOMGIyMWxja0p2YjNSemRISmhjQzlN
WVhSbGMzUkRVa3d1WTNKc01Bc0dBMVVkRHdRRUF3SUVzRENCNUFZRFZSMGdCSUhjTUlIWk1JSFdCZ29x
aGtpRzl5OERDUUFBTUlISE1ESUdDQ3NHQVFVRkJ3SUJGaVpvZEhSd09pOHZkM2QzTG1Ga2IySmxMbU52
YlM5bmJ5OW1iR0Z6YUdGalkyVnpjMTlqY0RDQmtBWUlLd1lCQlFVSEFnSXdnWU1hZ1lCVWFHbHpJR05s
Y25ScFptbGpZWFJsSUdoaGN5QmlaV1Z1SUdsemMzVmxaQ0JwYmlCaFkyTnZjbVJoYm1ObElIZHBkR2dn
ZEdobElFRmtiMkpsSUVac1lYTm9JRUZqWTJWemN5QkRVRk1nYkc5allYUmxaQ0JoZENCb2RIUndPaTh2
ZDNkM0xtRmtiMkpsTG1OdmJTOW5ieTltYkdGemFHRmpZMlZ6YzE5amNEQWZCZ05WSFNNRUdEQVdnQlFh
SkdjUEpENG9LYkM1NG5XT2hRRmRwWi9RekRBZEJnTlZIUTRFRmdRVTJkaGE0K3lMYkJ0Z3huaVBZSW9K
eEJ6eEFwQXdGUVlEVlIwbEJBNHdEQVlLS29aSWh2Y3ZBd2tCTmpBUkJnb3Foa2lHOXk4RENRSUZCQU1D
QVFBd0RRWUpLb1pJaHZjTkFRRUxCUUFEZ2dFQkFDVm80ZVU4SnowbmRlUzU2Qi9lQ3JScEtxNFp2N1NC
VWRLUnlLZXAyS1JmbEZRNXV0SEZsVWlVMlRTdk9vZ3hDdHhsSjZndHhwOXZnYmJvVng4N1dTV2VvMWVq
SmtHbUV3SjNaOTQ4ZFlZZHRZMFl3My9KWmJEK0doeTZhLzlyV1dYSWpJQlFiUk5mdmVYVUxpYW5wZG43
Uk9jQldzY01JalU2UFord2tDQ1B6YTkwTVBsTi9DRWNFdDlXclZQTmtibzM5M1l6QkRLOTF5azVra0p5
UzF3LzFValpHeFRvYW1yWDJENWlSV0d3aDVUbzV2LzRnbSsxcTVTZkZXN0lJSjlqKzg1dTU4TUJFaUhL
Q3pVUEI1TkJ3UlZwZ1VmelN6V2tLQVo3NDdWOVVncUFsSWsycnBWcW16QTlEN3Zna0JVYUlBWGpYOUxJ
M1V3cTM0MlZCUFV3Z2dUVk1JSUR2YUFEQWdFQ0FoQTB0bnBuZUxkNVJDYnBDQlFuOGwydU1BMEdDU3FH
U0liM0RRRUJDd1VBTUZjeEN6QUpCZ05WQkFZVEFsVlRNU013SVFZRFZRUUtFeHBCWkc5aVpTQlRlWE4w
WlcxeklFbHVZMjl5Y0c5eVlYUmxaREVqTUNFR0ExVUVBeE1hUVdSdlltVWdSbXhoYzJnZ1FXTmpaWE56
SUZKdmIzUWdRMEV3SGhjTk1Ea3hNVEV3TURBd01EQXdXaGNOTWpreE1UQTVNak0xT1RVNVdqQmZNUXN3
Q1FZRFZRUUdFd0pWVXpFak1DRUdBMVVFQ2hNYVFXUnZZbVVnVTNsemRHVnRjeUJKYm1OdmNuQnZjbUYw
WldReEt6QXBCZ05WQkFNVElrRmtiMkpsSUVac1lYTm9JRUZqWTJWemN5QkpiblJsY20xbFpHbGhkR1Vn
UTBFd2dnRWlNQTBHQ1NxR1NJYjNEUUVCQVFVQUE0SUJEd0F3Z2dFS0FvSUJBUUMrVndqYmgxVDZPT0k3
QW5zVy9rRG9OZVpscVhoWGhJNVcwaExJYSszZVBLTUNETGlLNSt3OGczTDU0VDlQRStRclpMQ2ZVUmts
alRPTWxJdVZrT0N4c0hZOFlKSGVXTTZxanVtT005SVVucisvOU1pNXQ1bWZTdEVRZHk4amRhZTUwSHd2
b3hHdE9YYlphNjNhbmN3Z2p2S3ZJMGZPSHJZeGsyK3g5U3R4czBseUpWdkRQT2JBQmQzNTZnMytXWXdn
UWFLOWdDSWI1UkpVeGR2UU1hNUgwWUNoZG5PcVEvcTZiT0lSRWllSmlRb0cvR2czcTJqT1NxWFJkcW11
ZUQ3VGVLSHg4d3Zzc0xPZlRTQVowV0g3Q0orYnh3eHVZNmVlbGdwSnM5bUhpVEh4UWFBcjMxYjZucDlR
Y0czYTJ2aXVhV21BNTN0NlBZalBjMUE3SWFqbEFnTUJBQUdqZ2dHVE1JSUJqekFPQmdOVkhROEJBZjhF
QkFNQ0FRWXdFZ1lEVlIwVEFRSC9CQWd3QmdFQi93SUJBVENCNUFZRFZSMGdCSUhjTUlIWk1JSFdCZ29x
aGtpRzl5OERDUUFBTUlISE1ESUdDQ3NHQVFVRkJ3SUJGaVpvZEhSd09pOHZkM2QzTG1Ga2IySmxMbU52
YlM5bmJ5OW1iR0Z6YUdGalkyVnpjMTlqY0RDQmtBWUlLd1lCQlFVSEFnSXdnWU1hZ1lCVWFHbHpJR05s
Y25ScFptbGpZWFJsSUdoaGN5QmlaV1Z1SUdsemMzVmxaQ0JwYmlCaFkyTnZjbVJoYm1ObElIZHBkR2dn
ZEdobElFRmtiMkpsSUVac1lYTm9JRUZqWTJWemN5QkRVRk1nYkc5allYUmxaQ0JoZENCb2RIUndPaTh2
ZDNkM0xtRmtiMkpsTG1OdmJTOW5ieTltYkdGemFHRmpZMlZ6YzE5amNEQkNCZ05WSFI4RU96QTVNRGVn
TmFBemhqRm9kSFJ3T2k4dlkzSnNNaTVoWkc5aVpTNWpiMjB2UVdSdlltVXZSbXhoYzJoQlkyTmxjM05T
YjI5MFEwRXVZM0pzTUIwR0ExVWREZ1FXQkJUekxuVmhSQmxBaXBHTVRyRldXazdQVEVBMzhEQWZCZ05W
SFNNRUdEQVdnQlNIZlM4K0pnVEN4TGVNMEtyaWd6K1k5eXJlWmpBTkJna3Foa2lHOXcwQkFRc0ZBQU9D
QVFFQW00YUZxai9sMG9HempZeFRTRjkxMFpRcldYZElhVGo1dFV6c0I0MVM5TnB3WUhPTkRKYXh6bWtv
bGhiSTJpVnYzd01JcEhMRE4ycG1mS20yRDZTbHliOU92cmhONU1Db2F6cEVWODgzVy9UUG5qRmd6cUU0
RVliNEFFRlJZRW9PVTdpNGFWUERVVHMzVDJKVHhENG9jZUJIQVBxbXcrQXFoSVk5eHpJbGlYY2NxVy9X
eHhUd2ZDWXFJOC9IdW5jNG02aVdKQTBWM1IxYTFMK0pEWVZiZE9NMlpxSXJBY3dVMjBPLzhUcS9xQlFL
NjZ1U0FjR0UwZHR2cFV0am04K1RNYlRoSHhkdENjMlJ6TGpYbFN0a1Q0YzFIdERlbVJrSk01RWk3ZWR4
djcvSklYWEMzTFFFYVhrWUFYWkQrVlc1REUvRnU0YmFkWSt4UE1VdVAvSXdsVENDQlFJd2dnUHFvQU1D
QVFJQ0VEd0V5eFBEVFMyekxnUDUvYlRpZFlRd0RRWUpLb1pJaHZjTkFRRUxCUUF3WHpFTE1Ba0dBMVVF
QmhNQ1ZWTXhJekFoQmdOVkJBb1RHa0ZrYjJKbElGTjVjM1JsYlhNZ1NXNWpiM0p3YjNKaGRHVmtNU3N3
S1FZRFZRUURFeUpCWkc5aVpTQkdiR0Z6YUNCQlkyTmxjM01nU1c1MFpYSnRaV1JwWVhSbElFTkJNQjRY
RFRBNU1URXhNREF3TURBd01Gb1hEVEkwTVRFd09USXpOVGsxT1Zvd1pURUxNQWtHQTFVRUJoTUNWVk14
SXpBaEJnTlZCQW9UR2tGa2IySmxJRk41YzNSbGJYTWdTVzVqYjNKd2IzSmhkR1ZrTVRFd0x3WURWUVFE
RXloQlpHOWlaU0JHYkdGemFDQkJZMk5sYzNNZ1EzVnpkRzl0WlhJZ1FtOXZkSE4wY21Gd0lFTkJNSUlC
SWpBTkJna3Foa2lHOXcwQkFRRUZBQU9DQVE4QU1JSUJDZ0tDQVFFQXM4c1pJMTFGYWttSFpIaWJyaUVr
QWlHSGhaZ1RqanlVNU01UlI5NlFjSEQwUWlPeGVZNFE4RkFsSnFvVWNzT2RjbGIrT3lTMnJudFBWSXAw
VnlnZGR1Nm5TUzRTYWljUWNoUExKeEhqUy9FUlJrSTBhZXB2SFYxZWw2TGRjRFhRLzllVXZRbll3NjlS
TmRieVM5Q0hBZTI3R01QQmpwNFpLNHlkUFQ0U2VnSTZKYmw4L0FucHBBSWVyZ1BMS29HWVl4NmFmdEhB
aVViR1FIcUlHM1YxUmpacTU1Vlh2ZWVTQm5kS1k5bWMwT3RaRVpkK08xdTlRS2t0dTFxNTRYbCtUWHU2
c3hLMU1sajRjM3dYMytqdG1KMzY5UTVLMm5wM3ZqbjRFcVlERmw3WWlhRG43bzVaS1IwRDdGVU1QdWNn
NzFIbWsyUHFjSGNRNGY2Y2xWeUhHd0lEQVFBQm80SUJzakNDQWE0d0VnWURWUjBUQVFIL0JBZ3dCZ0VC
L3dJQkFEQ0I1QVlEVlIwZ0JJSGNNSUhaTUlIV0Jnb3Foa2lHOXk4RENRQUFNSUhITURJR0NDc0dBUVVG
QndJQkZpWm9kSFJ3T2k4dmQzZDNMbUZrYjJKbExtTnZiUzluYnk5bWJHRnphR0ZqWTJWemMxOWpjRENC
a0FZSUt3WUJCUVVIQWdJd2dZTWFnWUJVYUdseklHTmxjblJwWm1sallYUmxJR2hoY3lCaVpXVnVJR2x6
YzNWbFpDQnBiaUJoWTJOdmNtUmhibU5sSUhkcGRHZ2dkR2hsSUVGa2IySmxJRVpzWVhOb0lFRmpZMlZ6
Y3lCRFVGTWdiRzlqWVhSbFpDQmhkQ0JvZEhSd09pOHZkM2QzTG1Ga2IySmxMbU52YlM5bmJ5OW1iR0Z6
YUdGalkyVnpjMTlqY0RBVkJnTlZIU1VFRGpBTUJnb3Foa2lHOXk4RENRRUNNQTRHQTFVZER3RUIvd1FF
QXdJQkJqQktCZ05WSFI4RVF6QkJNRCtnUGFBN2hqbG9kSFJ3T2k4dlkzSnNNaTVoWkc5aVpTNWpiMjB2
UVdSdlltVXZSbXhoYzJoQlkyTmxjM05KYm5SbGNtMWxaR2xoZEdWRFFTNWpjbXd3SFFZRFZSME9CQllF
RkJva1p3OGtQaWdwc0xuaWRZNkZBVjJsbjlETU1COEdBMVVkSXdRWU1CYUFGUE11ZFdGRUdVQ0trWXhP
c1ZaYVRzOU1RRGZ3TUEwR0NTcUdTSWIzRFFFQkN3VUFBNElCQVFBVnF6Si8zcnlZZFpCanFNZExKcGM1
aE5haXVEbWVROXJiOGNFNzFOL21TUkFSZCtjaStBZ2VDMjhnRVk5UTB6QnhVY1hkeDRhQkdpWVpZNFhh
Q1habXFJZEdEOEsxMWJtUXhoVkpTOFRaaWpwOVduWkVwenhydG0vUFhsemJiWFNlNWU1SEVRVnR6WnFY
T29vYzAvUXkyNWpWNjByODZ4ZTVwWWpjc290MjVEd2xudThqa0xzSFdSRGJvSVNYbDBJRE55U3gyMWpn
bWMvSjFLa1IvMzVxRmxtQjhKRWxBN2YwaDRCTnJYbjNKeklrNERJVEtNamt6WnIycXljQmZmUlJlcCtE
Nkh2UTBQNk9oMDJXVVVxWlVCajRrbDB4ekFnUmkrYzZCeUw0TnQ1d3ZzSXc3WjhFNmVsZ2NHampMYUI2
bEhRTk0yWUkzMjIxUzRCV0NzamNNWUlCZmpDQ0FYb0NBUUV3ZVRCbE1Rc3dDUVlEVlFRR0V3SlZVekVq
TUNFR0ExVUVDaE1hUVdSdlltVWdVM2x6ZEdWdGN5QkpibU52Y25CdmNtRjBaV1F4TVRBdkJnTlZCQU1U
S0VGa2IySmxJRVpzWVhOb0lFRmpZMlZ6Y3lCRGRYTjBiMjFsY2lCQ2IyOTBjM1J5WVhBZ1EwRUNFQ1NF
aGRyemNwc084dkdqdkdHWVBid3dDUVlGS3c0REFob0ZBS0JkTUJnR0NTcUdTSWIzRFFFSkF6RUxCZ2tx
aGtpRzl3MEJCd0V3SEFZSktvWklodmNOQVFrRk1ROFhEVEV5TVRBek1URXdNRGd3TlZvd0l3WUpLb1pJ
aHZjTkFRa0VNUllFRlBHOWhWTXp1UENUT0FVQWVMVWtodmRVL0lBNE1BMEdDU3FHU0liM0RRRUJBUVVB
QklHQVg4TTgxWjNCT0p1WXpaejRoWkhnc1F4Qm9XOTl6TmZHTU1wbmY0UndrK2VmYzhtT0VndWlFdDVz
U2syNW0vMGdrRlZJS1QwK0N5RVhwRXh2NE15czhJYXFQS3VmbjBQbVZzSHhlbzIzTjBSVW9peWZ0NzRR
TS9ZMTNQTmlsbnRZaUo2KzBZUStsUDNCWmRtSWpPNGlKWStLczU2K3lpSkZmeGhXTTJBM0U5WT0AAAkA
AAkAAAkAAAkAAAk=
</drmAdditionalHeader>
<media streamId="CH4_08_02_24_52710219001001_001_16x9_0500000_" 
url="CH4_08_02_24_52710219001001_001_16x9_0500000_" bitrate="400" 
bootstrapInfoId="bootstrap1242" drmAdditionalHeaderId="drmMetadata8468">
<metadata>
AgAKb25NZXRhRGF0YQgAAAAAAAhkdXJhdGlvbgBAlkhc17kArwAFd2lkdGgAQIAAAAAAAAAABmhlaWdo
dABAcgAAAAAAAAAMdmlkZW9jb2RlY2lkAgAEYXZjMQAMYXVkaW9jb2RlY2lkAgAEbXA0YQAKYXZjcHJv
ZmlsZQBAU0AAAAAAAAAIYXZjbGV2ZWwAQD4AAAAAAAAABmFhY2FvdAAAAAAAAAAAAAAOdmlkZW9mcmFt
ZXJhdGUAQDkAAAAAAAAAD2F1ZGlvc2FtcGxlcmF0ZQBA13AAAAAAAAANYXVkaW9jaGFubmVscwBAAAAA
AAAAAAAJdHJhY2tpbmZvCgAAAAIDAAZsZW5ndGgAQYD/zoAAAAAACXRpbWVzY2FsZQBA2GoAAAAAAAAI
bGFuZ3VhZ2UCAANlbmcAAAkDAAZsZW5ndGgAQYBSAAAAAAAACXRpbWVzY2FsZQBA13AAAAAAAAAIbGFu
Z3VhZ2UCAANlbmcAAAkAB2N1c3RkZWYKAAAAAAAACQ==
</metadata>
</media>

note how the media file calls the bootstrap and drmheaderinfo and has it own 
metadata that is where the key is

Original comment by andrewcr...@gmail.com on 7 Nov 2012 at 9:26

GoogleCodeExporter commented 8 years ago
and here is base64 decode of the drm string david posted

�|AdditionalHeader�
Encryption�Version�@��������Method�Standard�Flags�
�����������Params�Version�?��������Enc
ryptionAlgorithm�AES-CBC�EncryptionParams�    KeyLength�@0�����
����� �KeyInfo�subType�
FlashAccessv2�FMRMS_METADATA�Metadata 
�MIIYXgYJKoZIhvcNAQcCoIIYTzCCGEsCAQExCzAJBgUrDgMCGgUAMIIIDQYJKoZIhvcNAQcBoIIH/
gSCB/owggf2AgECMIIBbDCCAWgCAQMCAQIEJEY4NUUzNTk5LTUzNTAtMzFEMS1CNzE0LTI3RTBGRTFDN
kQ3NTGB4DBZDCljb20uYWRvYmUuZmxhc2hhY2Nlc3MucmlnaHRzLmxpY2Vuc2VVc2FnZaAsMSowEAYJK
oZIhvcvAwYOoAMBAf8wFgYJKoZIhvcvAwYNoAMBAf+hBAICASwwgYIMIWNvbS5hZG9iZS5mbGFzaGFjY
2Vzcy5yaWdodHMucGxheaBdMVswFwYJKoZIhvcvAwYEoAMBAf+hBTADAgECMB4GCSqGSIb3LwMGB6ADA
QH/oQwwCqADCgECoQMKAQMwIAYJKoZIhvcvAwYLoAMBAf+hDjAMoAMKAQKhBTADCgEDoAwMCjMuMC4xL
jA2NTWhEAwOQzQtVk9ELTRvZC5wb2yjMjEwMC4MKmNvbS5hZG9iZS5mbGFzaGFjY2Vzcy5hdHRyaWJ1d
GVzLmFub255bW91czEApgMBAf8xggTwMIIE7DEkDCJodHRwOi8vZmF4LmM0LmF3cy5yZWRiZWVtZWRpY
S5jb20vMIIEwjCCA6qgAwIBAgIQbCrzYXMqLjVyn4exyeTlqDANBgkqhkiG9w0BAQsFADBlMQswCQYDV
QQGEwJVUzEjMCEGA1UEChMaQWRvYmUgU3lzdGVtcyBJbmNvcnBvcmF0ZWQxMTAvBgNVBAMTKEFkb2JlI
EZsYXNoIEFjY2VzcyBDdXN0b21lciBCb290c3RyYXAgQ0EwHhcNMTIwMTI0MDAwMDAwWhcNMTQwMTIzM
jM1OTU5WjCBhzELMAkGA1UEBhMCVVMxIzAhBgNVBAoUGkFkb2JlIFN5c3RlbXMgSW5jb3Jwb3JhdGVkM
RIwEAYDVQQLFAlUcmFuc3BvcnQxGzAZBgNVBAsUEkFkb2JlIEZsYXNoIEFjY2VzczEiMCAGA1UEAwwZU
kVEQkVFTUVESUEtVFNQVC0yMDEyMDEyMzCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA3cldm4SH1
RRGJkWOeQKAfIC2yFsmd0cTHS9QKnpSstA0irblOeI56WufqzXoD/PKfHFz9hWjNt9KhXRhu46SCOyCq
RI4DKYd81yumh6WnT97YtnbHWJhciuiH7nAo50ClSNobBXI/RmXerJS6tZBXoOS/pOjidE2xymZnKwwD
fkCAwEAAaOCAc0wggHJMGkGA1UdHwRiMGAwXqBcoFqGWGh0dHA6Ly9jcmwzLmFkb2JlLmNvbS9BZG9iZ
VN5c3RlbXNJbmNvcnBvcmF0ZWRGbGFzaEFjY2Vzc0N1c3RvbWVyQm9vdHN0cmFwL0xhdGVzdENSTC5jc
mwwCwYDVR0PBAQDAgSwMIHkBgNVHSAEgdwwgdkwgdYGCiqGSIb3LwMJAAAwgccwMgYIKwYBBQUHAgEWJ
mh0dHA6Ly93d3cuYWRvYmUuY29tL2dvL2ZsYXNoYWNjZXNzX2NwMIGQBggrBgEFBQcCAjCBgxqBgFRoa
XMgY2VydGlmaWNhdGUgaGFzIGJlZW4gaXNzdWVkIGluIGFjY29yZGFuY2Ugd2l0aCB0aGUgQWRvYmUgR
mxhc2ggQWNjZXNzIENQUyBsb2NhdGVkIGF0IGh0dHA6Ly93d3cuYWRvYmUuY29tL2dvL2ZsYXNoYWNjZ
XNzX2NwMB8GA1UdIwQYMBaAFBokZw8kPigpsLnidY6FAV2ln9DMMB0GA1UdDgQWBBTVuf03dvI4kb2yJ
7G9h/3rOEDd0DAVBgNVHSUEDjAMBgoqhkiG9y8DCQE3MBEGCiqGSIb3LwMJAgUEAwIBADANBgkqhkiG9
w0BAQsFAAOCAQEAZqeBU2Bmewhst7npeCgN/pxgvzEdfU5GZp8dRWxqUEDemIVMvCpG/vMlQaandyw9P
PJrPMmQnXGGewIJrNJ8b462rnsvKoVdYrUaS1yB4uOzxwGG4suAymgV6HBq2lMr2QKNih8K4PZ6+tPnr
hnSfAwL3PBuSr61QKpcvEfr3nwAt1Bg2PEZGpRjRLR72HNQV2FWqAkKlj+uEl3DRoNkbRcYoBUDsFA/2
tjBbc5YpWe4E92Z0kLfHngX0PIj/Htiannv8Kw38J02xldfsXU2K605ee1wwc2MptpepU3AkdtvZX+1B
FYbXdEJbdNjCU7tbCbf85P4xq241sl9idZFpjCB8gQJTXpJek5EUXoAGA8yMDEyMTAzMTEwMDgwNVoEg
YBlte8HayPHAJL707BkMvcEJqlcIrLP5wUSvDK7OMQlz3S5r/J1zPO8fNNlh4Q/3jkq3bBLKmmo65Sqg
qrngNKdyt+x2pMwgHdeQTzt6tdRIxReMZGBfnsybALFRSABLMxyRB0dI8xsLHN4MPdMMbyEd2DFmkvOw
ShymssAbHLKAjAhBgkqhkiG9y8DCAIEFOiFmWOXpKLWNc5IeANBNZwCRfdloAgEBjMyMzQ0M6EkDCJod
HRwOi8vZmF4LmM0LmF3cy5yZWRiZWVtZWRpYS5jb20vMHkwZTELMAkGA1UEBhMCVVMxIzAhBgNVBAoTG
kFkb2JlIFN5c3RlbXMgSW5jb3Jwb3JhdGVkMTEwLwYDVQQDEyhBZG9iZSBGbGFzaCBBY2Nlc3MgQ3Vzd
G9tZXIgQm9vdHN0cmFwIENBAhAkhIXa83KbDvLxo7xhmD28oB0MGzIuMC4yMDEyMTAzMTEwMDgwNXpfU
kVMRUFTRaCCDqQwggTBMIIDqaADAgECAhAkhIXa83KbDvLxo7xhmD28MA0GCSqGSIb3DQEBCwUAMGUxC
zAJBgNVBAYTAlVTMSMwIQYDVQQKExpBZG9iZSBTeXN0ZW1zIEluY29ycG9yYXRlZDExMC8GA1UEAxMoQ
WRvYmUgRmxhc2ggQWNjZXNzIEN1c3RvbWVyIEJvb3RzdHJhcCBDQTAeFw0xMjAxMjQwMDAwMDBaFw0xN
DAxMjMyMzU5NTlaMIGGMQswCQYDVQQGEwJVUzEjMCEGA1UEChQaQWRvYmUgU3lzdGVtcyBJbmNvcnBvc
mF0ZWQxETAPBgNVBAsUCFBhY2thZ2VyMRswGQYDVQQLFBJBZG9iZSBGbGFzaCBBY2Nlc3MxIjAgBgNVB
AMMGVJFREJFRU1FRElBLVBLR1ItMjAxMjAxMjMwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBALR06
U9pmcR4hrWWKf9ugK1FFXBshJLm2SzxZbybHEukSxDhX0sS1h5T2Klx4mC+J56za10tWzQZshsi+vs4B
w76O4pQ5aCJKaxsOCy4ziS64C6fA0liGDCmYw/F0O8fVBZ3+U7s62h3YiPA0UC1ve8JpNcW5bO7JrqqN
+wXfzqzAgMBAAGjggHNMIIByTBpBgNVHR8EYjBgMF6gXKBahlhodHRwOi8vY3JsMy5hZG9iZS5jb20vQ
WRvYmVTeXN0ZW1zSW5jb3Jwb3JhdGVkRmxhc2hBY2Nlc3NDdXN0b21lckJvb3RzdHJhcC9MYXRlc3RDU
kwuY3JsMAsGA1UdDwQEAwIEsDCB5AYDVR0gBIHcMIHZMIHWBgoqhkiG9y8DCQAAMIHHMDIGCCsGAQUFB
wIBFiZodHRwOi8vd3d3LmFkb2JlLmNvbS9nby9mbGFzaGFjY2Vzc19jcDCBkAYIKwYBBQUHAgIwgYMag
YBUaGlzIGNlcnRpZmljYXRlIGhhcyBiZWVuIGlzc3VlZCBpbiBhY2NvcmRhbmNlIHdpdGggdGhlIEFkb
2JlIEZsYXNoIEFjY2VzcyBDUFMgbG9jYXRlZCBhdCBodHRwOi8vd3d3LmFkb2JlLmNvbS9nby9mbGFza
GFjY2Vzc19jcDAfBgNVHSMEGDAWgBQaJGcPJD4oKbC54nWOhQFdpZ/QzDAdBgNVHQ4EFgQU2dha4+yLb
BtgxniPYIoJxBzxApAwFQYDVR0lBA4wDAYKKoZIhvcvAwkBNjARBgoqhkiG9y8DCQIFBAMCAQAwDQYJK
oZIhvcNAQELBQADggEBACVo4eU8Jz0ndeS56B/eCrRpKq4Zv7SBUdKRyKep2KRflFQ5utHFlUiU2TSvO
ogxCtxlJ6gtxp9vgbboVx87WSWeo1ejJkGmEwJ3Z948dYYdtY0Yw3/JZbD+Ghy6a/9rWWXIjIBQbRNfv
eXULianpdn7ROcBWscMIjU6PZ+wkCCPza90MPlN/CEcEt9WrVPNkbo393YzBDK91yk5kkJyS1w/1UjZG
xToamrX2D5iRWGwh5To5v/4gm+1q5SfFW7IIJ9j+85u58MBEiHKCzUPB5NBwRVpgUfzSzWkKAZ747V9U
gqAlIk2rpVqmzA9D7vgkBUaIAXjX9LI3Uwq342VBPUwggTVMIIDvaADAgECAhA0tnpneLd5RCbpCBQn8
l2uMA0GCSqGSIb3DQEBCwUAMFcxCzAJBgNVBAYTAlVTMSMwIQYDVQQKExpBZG9iZSBTeXN0ZW1zIEluY
29ycG9yYXRlZDEjMCEGA1UEAxMaQWRvYmUgRmxhc2ggQWNjZXNzIFJvb3QgQ0EwHhcNMDkxMTEwMDAwM
DAwWhcNMjkxMTA5MjM1OTU5WjBfMQswCQYDVQQGEwJVUzEjMCEGA1UEChMaQWRvYmUgU3lzdGVtcyBJb
mNvcnBvcmF0ZWQxKzApBgNVBAMTIkFkb2JlIEZsYXNoIEFjY2VzcyBJbnRlcm1lZGlhdGUgQ0EwggEiM
A0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC+Vwjbh1T6OOI7AnsW/kDoNeZlqXhXhI5W0hLIa+3eP
KMCDLiK5+w8g3L54T9PE+QrZLCfURkljTOMlIuVkOCxsHY8YJHeWM6qjumOM9IUnr+/9Mi5t5mfStEQd
y8jdae50HwvoxGtOXbZa63ancwgjvKvI0fOHrYxk2+x9Stxs0lyJVvDPObABd356g3+WYwgQaK9gCIb5
RJUxdvQMa5H0YChdnOqQ/q6bOIREieJiQoG/Gg3q2jOSqXRdqmueD7TeKHx8wvssLOfTSAZ0WH7CJ+bx
wxuY6eelgpJs9mHiTHxQaAr31b6np9QcG3a2viuaWmA53t6PYjPc1A7IajlAgMBAAGjggGTMIIBjzAOB
gNVHQ8BAf8EBAMCAQYwEgYDVR0TAQH/BAgwBgEB/wIBATCB5AYDVR0gBIHcMIHZMIHWBgoqhkiG9y8DC
QAAMIHHMDIGCCsGAQUFBwIBFiZodHRwOi8vd3d3LmFkb2JlLmNvbS9nby9mbGFzaGFjY2Vzc19jcDCBk
AYIKwYBBQUHAgIwgYMagYBUaGlzIGNlcnRpZmljYXRlIGhhcyBiZWVuIGlzc3VlZCBpbiBhY2NvcmRhb
mNlIHdpdGggdGhlIEFkb2JlIEZsYXNoIEFjY2VzcyBDUFMgbG9jYXRlZCBhdCBodHRwOi8vd3d3LmFkb
2JlLmNvbS9nby9mbGFzaGFjY2Vzc19jcDBCBgNVHR8EOzA5MDegNaAzhjFodHRwOi8vY3JsMi5hZG9iZ
S5jb20vQWRvYmUvRmxhc2hBY2Nlc3NSb290Q0EuY3JsMB0GA1UdDgQWBBTzLnVhRBlAipGMTrFWWk7PT
EA38DAfBgNVHSMEGDAWgBSHfS8+JgTCxLeM0Krigz+Y9yreZjANBgkqhkiG9w0BAQsFAAOCAQEAm4aFq
j/l0oGzjYxTSF910ZQrWXdIaTj5tUzsB41S9NpwYHONDJaxzmkolhbI2iVv3wMIpHLDN2pmfKm2D6Sly
b9OvrhN5MCoazpEV883W/TPnjFgzqE4EYb4AEFRYEoOU7i4aVPDUTs3T2JTxD4oceBHAPqmw+AqhIY9x
zIliXccqW/WxxTwfCYqI8/Hunc4m6iWJA0V3R1a1L+JDYVbdOM2ZqIrAcwU20O/8Tq/qBQK66uSAcGE0
dtvpUtjm8+TMbThHxdtCc2RzLjXlStkT4c1HtDemRkJM5Ei7edxv7/JIXXC3LQEaXkYAXZD+VW5DE/Fu
4badY+xPMUuP/IwlTCCBQIwggPqoAMCAQICEDwEyxPDTS2zLgP5/bTidYQwDQYJKoZIhvcNAQELBQAwX
zELMAkGA1UEBhMCVVMxIzAhBgNVBAoTGkFkb2JlIFN5c3RlbXMgSW5jb3Jwb3JhdGVkMSswKQYDVQQDE
yJBZG9iZSBGbGFzaCBBY2Nlc3MgSW50ZXJtZWRpYXRlIENBMB4XDTA5MTExMDAwMDAwMFoXDTI0MTEwO
TIzNTk1OVowZTELMAkGA1UEBhMCVVMxIzAhBgNVBAoTGkFkb2JlIFN5c3RlbXMgSW5jb3Jwb3JhdGVkM
TEwLwYDVQQDEyhBZG9iZSBGbGFzaCBBY2Nlc3MgQ3VzdG9tZXIgQm9vdHN0cmFwIENBMIIBIjANBgkqh
kiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAs8sZI11FakmHZHibriEkAiGHhZgTjjyU5M5RR96QcHD0QiOxe
Y4Q8FAlJqoUcsOdclb+OyS2rntPVIp0Vygddu6nSS4SaicQchPLJxHjS/ERRkI0aepvHV1el6LdcDXQ/
9eUvQnYw69RNdbyS9CHAe27GMPBjp4ZK4ydPT4SegI6Jbl8/AnppAIergPLKoGYYx6aftHAiUbGQHqIG
3V1RjZq55VXveeSBndKY9mc0OtZEZd+O1u9QKktu1q54Xl+TXu6sxK1Mlj4c3wX3+jtmJ369Q5K2np3v
jn4EqYDFl7YiaDn7o5ZKR0D7FUMPucg71Hmk2PqcHcQ4f6clVyHGwIDAQABo4IBsjCCAa4wEgYDVR0TA
QH/BAgwBgEB/wIBADCB5AYDVR0gBIHcMIHZMIHWBgoqhkiG9y8DCQAAMIHHMDIGCCsGAQUFBwIBFiZod
HRwOi8vd3d3LmFkb2JlLmNvbS9nby9mbGFzaGFjY2Vzc19jcDCBkAYIKwYBBQUHAgIwgYMagYBUaGlzI
GNlcnRpZmljYXRlIGhhcyBiZWVuIGlzc3VlZCBpbiBhY2NvcmRhbmNlIHdpdGggdGhlIEFkb2JlIEZsY
XNoIEFjY2VzcyBDUFMgbG9jYXRlZCBhdCBodHRwOi8vd3d3LmFkb2JlLmNvbS9nby9mbGFzaGFjY2Vzc
19jcDAVBgNVHSUEDjAMBgoqhkiG9y8DCQECMA4GA1UdDwEB/wQEAwIBBjBKBgNVHR8EQzBBMD+gPaA7h
jlodHRwOi8vY3JsMi5hZG9iZS5jb20vQWRvYmUvRmxhc2hBY2Nlc3NJbnRlcm1lZGlhdGVDQS5jcmwwH
QYDVR0OBBYEFBokZw8kPigpsLnidY6FAV2ln9DMMB8GA1UdIwQYMBaAFPMudWFEGUCKkYxOsVZaTs9MQ
DfwMA0GCSqGSIb3DQEBCwUAA4IBAQAVqzJ/3ryYdZBjqMdLJpc5hNaiuDmeQ9rb8cE71N/mSRARd+ci+
AgeC28gEY9Q0zBxUcXdx4aBGiYZY4XaCXZmqIdGD8K11bmQxhVJS8TZijp9WnZEpzxrtm/PXlzbbXSe5
e5HEQVtzZqXOooc0/Qy25jV60r86xe5pYjcsot25Dwlnu8jkLsHWRDboISXl0IDNySx21jgmc/J1KkR/
35qFlmB8JElA7f0h4BNrXn3JzIk4DITKMjkzZr2qycBffRRep+D6HvQ0P6Oh02WUUqZUBj4kl0xzAgRi
+c6ByL4Nt5wvsIw7Z8E6elgcGjjLaB6lHQNM2YI3221S4BWCsjcMYIBfjCCAXoCAQEweTBlMQswCQYDV
QQGEwJVUzEjMCEGA1UEChMaQWRvYmUgU3lzdGVtcyBJbmNvcnBvcmF0ZWQxMTAvBgNVBAMTKEFkb2JlI
EZsYXNoIEFjY2VzcyBDdXN0b21lciBCb290c3RyYXAgQ0ECECSEhdrzcpsO8vGjvGGYPbwwCQYFKw4DA
hoFAKBdMBgGCSqGSIb3DQEJAzELBgkqhkiG9w0BBwEwHAYJKoZIhvcNAQkFMQ8XDTEyMTAzMTEwMDgwN
VowIwYJKoZIhvcNAQkEMRYEFPG9hVMzuPCTOAUAeLUkhvdU/IA4MA0GCSqGSIb3DQEBAQUABIGAX8M81
Z3BOJuYzZz4hZHgsQxBoW99zNfGMMpnf4Rwk+efc8mOEguiEt5sSk25m/0gkFVIKT0+CyEXpExv4Mys8
IaqPKufn0PmVsHxeo23N0RUoiyft74QM/Y13PNilntYiJ6+0YQ+lP3BZdmIjO4iJY+Ks56+yiJFfxhWM
2A3E9Y=��   ��  ��  ��  ��  

Original comment by andrewcr...@gmail.com on 7 Nov 2012 at 9:28

GoogleCodeExporter commented 8 years ago
Updated script, this should now work for url's like

http://www.channel4.com/programmes/channel-4-news/4od

returns most recent or

http://www.channel4.com/programmes/time-team-specials/4od#3412042?1346634890
where http://ais.channel4.com/asset/3412042?1346634890 was used when
http://ais.channel4.com/asset/3412042 should be used, otherwise part of the xml 
returned is missing - comment 32.

Comment 33 - ch4_f4v_flv.pl outputs the der file.
Comment 35 - already handles that...
Comment 37, 38 - already handled the drm string large chunk of data is in 
AMF0/Base 64/ASN1 format - the ANS1 format is in the .der file. 

Original comment by njtaylor...@gmail.com on 8 Nov 2012 at 12:08

Attachments:

GoogleCodeExporter commented 8 years ago
[deleted comment]
GoogleCodeExporter commented 8 years ago
This is not a typical certificate - doesn't start with -----BEGIN 
CERTIFICATE----- at least. However even if you add -----BEGIN CERTIFICATE----- 
and -----END CERTIFICATE-----, it will still not decode. 

Original comment by aulisme...@gmail.com on 8 Nov 2012 at 1:31

GoogleCodeExporter commented 8 years ago
[deleted comment]
GoogleCodeExporter commented 8 years ago
When I looked at the traffic, there was some traffic with redbeemedia, which 
appears in the .der, which is the point I reached. I was going to look at the 
message / response, to see if the key was in the response. redbeemedia has 
channel 4 as a client, could just be advert related. Flash Access from what I 
have seen is meant to send a request and get the key in a response, this is why 
I stuck the ASN1 decoding in.

The .der is too large for a single certificate, I split it up had 3 files

This is what I used to look at the .der file - the asn1parse told me it's pkcs7

openssl pkcs7 -inform DER -in ch4_xxx.der -print_certs -text

openssl asn1parse -inform DER -in ch4_xxx.der

Original comment by njtaylor...@gmail.com on 8 Nov 2012 at 2:51

GoogleCodeExporter commented 8 years ago
If you do ... (need openssl asn1parse to find offset/size of large bit stream..)

dd if=ch4_xxx.der of=xx.der bs=1 skip=62 count=2042

openssl asn1parse inform der -in xx.der

to view the ASN1 string contained within

Original comment by njtaylor...@gmail.com on 8 Nov 2012 at 3:17

GoogleCodeExporter commented 8 years ago
Red Bee Media are actually the technological designers of all this new security 
system process for 4oD.

Original comment by aulisme...@gmail.com on 8 Nov 2012 at 4:05

GoogleCodeExporter commented 8 years ago
Red Bee Media servers are being called 4 times in the example I use ( 
http://www.channel4.com/programmes/the-album-chart-show/4od#3420568 ).
This URL called twice: 
http://fax.c4.aws.redbeemedia.com//flashaccess/getServerVersion/v3 but gets 404.
This URL also twice: http://fax.c4.aws.redbeemedia.com//flashaccess/license/v1
If you open this up in your browser, you will see "License Server is setup 
correctly.". This is apparently an access point where it is supposed to get the 
key from.

All these requests are POST requests. What is being sent to the server is 
something I cannot understand just yet, probably some other kind of a key, it 
has "Adobe Systems Incorporated110/U(Adobe Flash Access Customer 
Bootstrap" in it, the rest is encoded somehow. What's more interesting, http 
response is empty, so the key value is not there. Or at least I can't see it.

Red Bee Media uses Nevion’s Flashlink solutions for Channel 4's content 
transport
http://tinyurl.com/ayff3fz

Original comment by aulisme...@gmail.com on 8 Nov 2012 at 4:47

GoogleCodeExporter commented 8 years ago
the script still doesnt detect slist at least for this one

C:\Users\Andy\Downloads>perl ch4_f4v_flv.pl http://www.channel4.com/programmes/t
ime-team-specials/4od#3412042
URL http://www.channel4.com/programmes/time-team-specials/4od#3412042
Using ch4_3412042 as storage directory
Page url http://www.channel4.com/programmes/time-team-specials/4od#3412042
Used ch4_3412042/3412042.html from cache for http://www.channel4.com/programmes/
time-team-specials/4od#3412042
swf player 4odplayer-11.31.1.swf
Used ch4_3412042/asset.xml from cache for http://ais.channel4.com/asset/3412042
Stream URL http://ll.abrstream.channel4.com/CH4_08_02_24_45569001001003_003_16x9
_1500000_.f4m
Use of uninitialized value $slist in concatenation (.) or string at ch4_f4v_flv.
pl line 601.
Slist
Token jZGfXUrmGGW2uXKUQFIjgBlHc4hA0t9QZqvEDPwjNrmIlM0FPSpWT7wnAfVFcAY0RvmZxRZjuc
aUBnzVX0Wp0cxI46F4pAPj5U5Ul0rDosBz9IA8v8kdgzId8SPzY+j7jZdr5vgvT7RNRte4B37ESpxw4T
TuicmLHxdpXbYvLgVX7xtT8qsbbrVlAO+ReuSv
Use of uninitialized value $slist in concatenation (.) or string at ch4_f4v_flv.
pl line 605.
Unable to open ch4_3412042/

i can by pass it that not a problem

Original comment by andrewcr...@gmail.com on 8 Nov 2012 at 8:15

GoogleCodeExporter commented 8 years ago
substr outside of string at ch4_f4v_flv.pl line 849.
set_iv: initial value must be the blocksize (16 bytes), but was 451013 bytes at
ch4_f4v_flv.pl line 850.

once i bypass it with teh data direct that wha ti get.

also i noticed something strange, when you use ais with assest code direct you 
get slist but when you use it wil other strings it doesnt have a slist tag but 
a e tag

Original comment by andrewcr...@gmail.com on 8 Nov 2012 at 8:19

GoogleCodeExporter commented 8 years ago
<slist>CH4_08_02_24_45569001001003_003_16x9_1500000_.f4m</slist>
<cdn>ak</cdn>
after adding the ?
<cdn>ll</cdn>
<e>1352362900</e>

Original comment by andrewcr...@gmail.com on 8 Nov 2012 at 8:34

GoogleCodeExporter commented 8 years ago
i output the file to text so you can look at it, weirdly before it crashes it 
got one almighty huge data string

Original comment by andrewcr...@gmail.com on 8 Nov 2012 at 9:44

Attachments: