Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 1 Nov 2010 15:10:09 GMT
From:      Alex Deiter <alex.deiter@gmail.com>
To:        freebsd-ports-bugs@FreeBSD.org
Subject:   Re: ports/151744: New port net/appkonference, a high-performance Asterisk voice/video conferencing plugin
Message-ID:  <201011011510.oA1FA9Zu072615@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help
The following reply was made to PR ports/151744; it has been noted by GNATS.

From: Alex Deiter <alex.deiter@gmail.com>
To: bug-followup@FreeBSD.org, alex.deiter@gmail.com
Cc:  
Subject: Re: ports/151744: New port net/appkonference, a high-performance
 Asterisk voice/video conferencing plugin
Date: Mon, 1 Nov 2010 17:35:15 +0300

 --20cf30549daf7a8c210493feb76d
 Content-Type: text/plain; charset=UTF-8
 
 Hi,
 
 New version for net/appkonference.
 
 Changes:
 
 - sync with GIT version
 - new patch for BigBlueButton compability
 
 --
 Alex Deiter
 
 --20cf30549daf7a8c210493feb76d
 Content-Type: text/plain; charset=US-ASCII; name="appkonference.shar.txt"
 Content-Disposition: attachment; filename="appkonference.shar.txt"
 Content-Transfer-Encoding: base64
 X-Attachment-Id: f_gfzg1qyg0
 
 IyBUaGlzIGlzIGEgc2hlbGwgYXJjaGl2ZS4gIFNhdmUgaXQgaW4gYSBmaWxlLCByZW1vdmUgYW55
 dGhpbmcgYmVmb3JlCiMgdGhpcyBsaW5lLCBhbmQgdGhlbiB1bnBhY2sgaXQgYnkgZW50ZXJpbmcg
 InNoIGZpbGUiLiAgTm90ZSwgaXQgbWF5CiMgY3JlYXRlIGRpcmVjdG9yaWVzOyBmaWxlcyBhbmQg
 ZGlyZWN0b3JpZXMgd2lsbCBiZSBvd25lZCBieSB5b3UgYW5kCiMgaGF2ZSBkZWZhdWx0IHBlcm1p
 c3Npb25zLgojCiMgVGhpcyBhcmNoaXZlIGNvbnRhaW5zOgojCiMJYXBwa29uZmVyZW5jZQojCWFw
 cGtvbmZlcmVuY2UvZmlsZXMKIwlhcHBrb25mZXJlbmNlL2ZpbGVzL3BhdGNoLWJpZ2JsdWVidXR0
 b24KIwlhcHBrb25mZXJlbmNlL3BrZy1kZXNjcgojCWFwcGtvbmZlcmVuY2UvZGlzdGluZm8KIwlh
 cHBrb25mZXJlbmNlL01ha2VmaWxlCiMKZWNobyBjIC0gYXBwa29uZmVyZW5jZQpta2RpciAtcCBh
 cHBrb25mZXJlbmNlID4gL2Rldi9udWxsIDI+JjEKZWNobyBjIC0gYXBwa29uZmVyZW5jZS9maWxl
 cwpta2RpciAtcCBhcHBrb25mZXJlbmNlL2ZpbGVzID4gL2Rldi9udWxsIDI+JjEKZWNobyB4IC0g
 YXBwa29uZmVyZW5jZS9maWxlcy9wYXRjaC1iaWdibHVlYnV0dG9uCnNlZCAncy9eWC8vJyA+YXBw
 a29uZmVyZW5jZS9maWxlcy9wYXRjaC1iaWdibHVlYnV0dG9uIDw8ICcxMGQwNTY0MDY5ODkzYzdl
 NTBiNGQ2Y2EzM2JhMTY5NCcKWC0tLSAuL0NIQU5HRVMub3JpZwkyMDEwLTA4LTE4IDE0OjU2OjIz
 LjAwMDAwMDAwMCArMDAwMApYKysrIC4vQ0hBTkdFUwkyMDEwLTExLTAxIDE3OjA3OjQ0LjAwMDAw
 MDAwMCArMDAwMApYQEAgLTE1NSwyNCArMTU1LDMgQEAKWCBDaGFuZ2VkIHByZXByb2Nlc3NvciBm
 bGFnLCBBUFBfS09ORkVSRU5DRV9ERUJVRywgc28gdGhhdCBkZWJ1ZyBsb2dnaW5nIGlzClggZW5h
 YmxlZCBvbmx5IGlmIGl0J3MgZGVmaW5lZC4gVG8gZW5hYmxlIGRlYnVnIGxvZ2dpbmc6IGVkaXQg
 dGhlIE1ha2VmaWxlIG9yClggc2V0IGl0IG9uIHRoZSBjb21tYW5kIGxpbmU6IG1ha2UgQVBQX0tP
 TkZFUkVOQ0VfREVCVUc9MS4KWC0KWC1SZW1vdmVkIGNoYW5uZWwgYW5kIGNvbmZlcmVuY2UgbmFt
 ZSBzdHJpbmdzIGZyb20gdGhlIG1lbWJlciBjb250cm9sIGJsb2NrLiBUaGUKWC1mb3JtZXIgY2Fu
 IGJlIHJlZmVyZW5jZWQgdmlhIHRoZSBjaGFubmVsIHBvaW50ZXIgaW4gdGhlIG1lbWJlciBjb250
 cm9sIGJsb2NrLgpYLVRoZSBsYXR0ZXIgY2FuIGJlIHJlZmVyZW5jZWQgdmlhIGEgcG9pbnRlciB0
 byBjb25mZXJlbmNlIGNvbnRyb2wgYmxvY2sgd2hpY2gKWC13YXMgYWRkZWQgdG8gdGhlIG1lbWJl
 ciBjb250b2wgYmxvY2sgZm9yIHRoaXMgcHVycG9zZS4KWC0KWC1DaGFuZ2VkIHRoZSBjb25mZXJl
 bmNlIHN0YXRlIGV2ZW50IGltcGxlbWVudGF0aW9uIHNvIHRoYXQgc3BlYWtpbmcvc2lsZW50Clgt
 bm90aWZpY2F0aW9ucyBhcmUgZ2VuZXJhdGVkIGluIHRoZSBtZW1iZXIgdGhyZWFkLiBUaGUgYWR2
 YW50YWdlIG9mIHRoaXMKWC1hcHByb2FjaCBpcyB0aGF0IGl0IGRvZXNuJ3QgcmVxdWlyZSB0aGUg
 Y29uZmVyZW5jZSB0aHJlYWQgdG8gcGVyaW9kaWNhbGx5Clgtc2NhbiB0aGUgbWVtYmVyIGxpc3Qg
 Zm9yIG1lbWJlciBzdGF0ZSBjaGFuZ2VzLgpYLQpYLUNoYW5nZWQgIngiIG9wdGlvbiBzbyB0aGF0
 IGFsbCBtZW1iZXJzIGFyZSBraWNrZWQgYW5kIHRoZSBjb25mZXJlbmNlIGVuZHMgd2hlbgpYLXRo
 ZSBsYXN0IG1vZGVyYXRvciBsZWF2ZXMgdGhlIGNvbmZlcmVuY2UuClgtClgtQWRkZWQgYSBNYWtl
 ZmlsZSB2YXJpYWJsZSBBQ19VU0VfU1BFRVguIFRoZSBkZWZhdWx0IHZhbHVlIGlzIHVuZGVmaW5l
 ZCwgdGhhdApYLWlzLCB0aGUgU1BFRVggY29kZWMgaXMgbm90IGF2YWlsYWJsZS4KWC0KWC1DaGFu
 Z2VkIHRoZSBmb3JtYXQgb2YgdGhlIGNvbmZlcmVuY2UgbGlzdCBjb21tYW5kLiBTcGVjaWZpY2Fs
 bHksIHJlbW92ZWQgdGhlClgtYnVja2V0IGZpZWxkIGFuZCBhZGRlZCBhIGR1cmF0aW9uIGZpZWxk
 LiBUaGUgZHVyYXRpb24gZmllbGQgaW5kaWNhdGVzIGVpdGhlcgpYLXRoZSBjb25mZXJlbmNlIGVs
 YXBzZWQgdGltZSB3aGVuIGNvbmZlcmVuY2VzIGFyZSBsaXN0ZWQgb3IgdGhlIG1lbWJlciBlbGFw
 c2VkClgtdGltZSB3aGVuIG1lbWJlcnMgYXJlIGxpc3RlZC4KWC0tLSAuL0RpYWxwbGFuLnR4dC5v
 cmlnCTIwMTAtMDgtMTAgMjA6MDM6NTQuMDAwMDAwMDAwICswMDAwClgrKysgLi9EaWFscGxhbi50
 eHQJMjAxMC0xMS0wMSAxNzowNzo0NC4wMDAwMDAwMDAgKzAwMDAKWEBAIC0xOSw5ICsxOSwxMCBA
 QApYIAknVicgOiBlbmFibGUgc3BlZXggcHJlcHJvY2Vzc2luZyBWb2ljZSBBY3Rpdml0eSBEZXRl
 Y3Rpb24gClggCSdEJyA6IGVuYWJsZSBzcGVleCBwcmVwcm9jZXNzaW5nIERlLW5vaXNlClggCSdB
 JyA6IGVuYWJsZSBzcGVleCBwcmVwcm9jZXNzaW5nIEF1dG9tYXRpYyBHYWluIENvbnRyb2wKWC0J
 J1QnIDogdGVsZXBob25lLCBzbyBzcGVleCBwcmVwcm9jZXNzaW5nIHNob3VsZCBiZSBlbmFibGVk
 ClgrCSdUJyA6IG1lbWJlciBjb25uZWN0cyB0aHJvdWdoIFphcHRlbCwgc28gc3BlZXggcHJlcHJv
 Y2Vzc2luZyBzaG91bGQgYmUgZW5hYmxlZApYIApYIAlEVE1GIG9wdGlvbnM6ClgrCSdzJyA6IGFs
 bG93cyBEVE1GIGZ1bmN0aW9ucyBsaWtlIG11dGluZywgZXRjIChzYW1lIGFzIE1lZXRNZSBtZW51
 OiAqMSA9IG11dGUvdW5tdXRlLCBldGMpClggCSdYJyA6IGVuYWJsZSBEVE1GIHN3aXRjaDogdmlk
 ZW8gY2FuIGJlIHN3aXRjaGVkIGJ5IHVzZXJzIHVzaW5nIERUTUYuIERvIG5vdCB1c2Ugd2l0aCAn
 UycuClggCSdSJyA6IGVuYWJsZSBEVE1GIHJlbGF5OiBEVE1GIHRvbmVzIGdlbmVyYXRlIGEgbWFu
 YWdlciBldmVudApYIAlJZiBuZWl0aGVyICdYJyBub3IgJ1InIGFyZSBwcmVzZW50LCBEVE1GIHRv
 bmVzIHdpbGwgYmUgZm9yd2FyZGVkIHRvIGFsbCBtZW1iZXJzIGluIHRoZSBjb25mZXJlbmNlClhA
 QCAtMzcsOSArMzgsMTUgQEAKWCAJTWlzY2VsbGFuZW91czoKWCAJJ3QnIDogbWVtYmVyIGFjY2Vw
 dHMgdGV4dCBiYXNlZCBjb250cm9sIG1lc3NhZ2VzLiAgVGhlIG1lc3NhZ2VzIGFyZSBkZXNjcmli
 ZWQgaW4gYSBzZXBhcmF0ZSBkb2N1bWVudApYIAknTicgOiBBc3N1bWUgdGhhdCB0aGUgbWVtYmVy
 IHN0YXJ0cyBvZmYgd2l0aCBjYW1lcmEgZGlzYWJsZWQuClgtCSd4JyA6IHdoZW4gdGhlIGxhc3Qg
 bW9kZXJhdG9yIGxlYXZlcywgYWxsIGNvbmZlcmVlcyBhcmUga2lja2VkIGFuZCBjb25mZXJlbmNl
 IGVuZHMuClgrCSd4JyA6IGlmIGEgbW9kZXJhdG9yIGxlYXZlcywgYWxsIGNvbmZlcmVlcyBhcmUg
 a2lja2VkIGFuZCBjb25mZXJlbmNlIGVuZHMuClggCSdhJyA6IFYgKyBUClggCSdIJyA6IHBsYXkg
 bXVzaWMgb24gaG9sZCBpZiBvbmx5IG9uZSBtZW1iZXIgaW4gY29uZmVyZW5jZQpYKwkndycgOiBw
 bGF5IG11c2ljIG9uIGhvbGQgZm9yIGFsbCBtZW1iZXJzIG9mIHRoZSBjb25mZXJlbmNlIHVudGls
 IGEgbWFya2VkIG1vZGVyYXRvciAobWFya2VkIHdpdGggJ00nIGZsYWcpIGpvaW5zClgrCSdyJyA6
 IHJlY29yZCB0aGUgY29uZmVyZW5jZS4gIGl0IHdpbGwgYmUgcmVjb3JkZWQgdG8gS09ORkVSRU5D
 RV9SRUNPUkRJTkdGSUxFIHdpdGggdGhlIGZvcm1hdCBLT05GRVJFTkNFX1JFQ09SRElOR0ZPUk1B
 VApYKwkJZGVmYXVsdCBmb3IgS09ORkVSRU5DRV9SRUNPUkRJTkdGSUxFIGlzOiBrb25mZXJlbmNl
 LXtjb25mZXJlbmNlLW5hbWV9LXttZW1iZXItdW5pcXVlaWR9ClgrCQlkZWZhdWx0IGZvciBLT05G
 RVJFTkNFX1JFQ09SRElOR0ZPUk1BVCBpczogd2F2ClgrCSduJyA6IGRvIG5vdCBjcmVhdGUgbmV3
 IGNvbmZlcmVuY2UsIG9ubHkgam9pbiBleGlzdGluZyBvbmVzLgpYKwkJaWYgY29uZmVyZW5jZSBk
 b2VzIG5vdCBleGlzdCBLT05GRVJFTkNFIGlzIHNldCB0byBOT1RGT1VORApYIApYIAlGdXR1cmUg
 ZGV2ZWxvcG1lbnQgKHRoZXNlIGFyZSBub3QgaW1wbGVtZW50ZWQgeWV0KToKWCAJPwpYQEAgLTU3
 LDYgKzY0LDcgQEAKWCAJbWF4X3VzZXJzPTxpbnQ+IDogTGltaXQgY29uZmVyZW5jZSBwYXJ0aWNp
 cGFudHMgdG8gbWF4X3VzZXJzClggCXR5cGU9PHN0cmluZz46IFR5cGUgaWRlbnRpZmllcgpYIAlz
 cHk9PHN0cmluZz46IENoYW5uZWwgbmFtZSB0byBzcHkKWCsJd2VsY29tZV9wcm9tcHQ9PHN0cmlu
 Zz46IEZpbGUgdG8gcGxheWJhY2sgYWZ0ZXIgYSBzdWNjZXNzZnVsIGpvaW4gKFBJTiB2ZXJpZmll
 ZCksIGJ1dCBiZWZvcmUgY29ubmVjdGluZyBjb25mZXJlbmNlIGF1ZGlvClggClggCTMuIEV4YW1w
 bGVzClggClgtLS0gLi9jbGkuYy5vcmlnCTIwMTAtMDgtMTggMTY6MTI6NDEuMDAwMDAwMDAwICsw
 MDAwClgrKysgLi9jbGkuYwkyMDEwLTExLTAxIDE3OjA3OjQ0LjAwMDAwMDAwMCArMDAwMApYQEAg
 LTkxLDcgKzkxLDcgQEAKWCAJaWYgKCBhcmdjIDwgMiApClggCQlyZXR1cm4gU0hPV1VTQUdFIDsK
 WCAKWC0JYXN0X2NsaSggZmQsICJhcHBfa29uZmVyZW5jZSByZWxlYXNlICVzXG4iLCBSRUxFQVNF
 KSA7ClgrCWFzdF9jbGkoIGZkLCAiYXBwX2tvbmZlcmVuY2UgcmV2aXNpb24gJXNcbiIsIFJFVklT
 SU9OKSA7ClggClggCXJldHVybiBTVUNDRVNTIDsKWCB9ClhAQCAtNTMyLDcgKzUzMiw3IEBAClgg
 CSAgICByZXR1cm4gRkFJTFVSRTsKWCAJfQpYIApYLQltZW1iZXItPm11dGVfYXVkaW8gPSAxOwpY
 KwltZW1iZXItPm11dGVkID0gbWVtYmVyLT5tdXRlX2F1ZGlvID0gMTsKWCAKWCAJaWYgKCAhLS1t
 ZW1iZXItPnVzZV9jb3VudCAmJiBtZW1iZXItPmRlbGV0ZV9mbGFnICkKWCAJCWFzdF9jb25kX3Np
 Z25hbCAoICZtZW1iZXItPmRlbGV0ZV92YXIgKSA7ClhAQCAtNTQxLDcgKzU0MSwxMSBAQApYIAlt
 YW5hZ2VyX2V2ZW50KApYIAkJRVZFTlRfRkxBR19DQUxMLApYIAkJIkNvbmZlcmVuY2VNZW1iZXJN
 dXRlIiwKWCsJCSJDb25mZXJlbmNlTmFtZTogJXNcclxuIgpYKwkJIk1lbWJlcklkOiAlZFxyXG4i
 ClggCQkiQ2hhbm5lbDogJXNcclxuIiwKWCsJCW1lbWJlci0+Y29uZl9uYW1lLApYKwkJbWVtYmVy
 LT5pZCwKWCAJCWNoYW5uZWwKWCAJKSA7ClggClhAQCAtNzQ1LDcgKzc0OSw3IEBAClggCSAgICBy
 ZXR1cm4gRkFJTFVSRTsKWCAJfQpYIApYLQltZW1iZXItPm11dGVfYXVkaW8gPSAwOwpYKwltZW1i
 ZXItPm11dGVkID0gbWVtYmVyLT5tdXRlX2F1ZGlvID0gMDsKWCAKWCAJaWYgKCAhLS1tZW1iZXIt
 PnVzZV9jb3VudCAmJiBtZW1iZXItPmRlbGV0ZV9mbGFnICkKWCAJCWFzdF9jb25kX3NpZ25hbCAo
 ICZtZW1iZXItPmRlbGV0ZV92YXIgKSA7ClhAQCAtNzUzLDggKzc1NywxMiBAQApYIApYIAltYW5h
 Z2VyX2V2ZW50KApYIAkJRVZFTlRfRkxBR19DQUxMLApYLQkJIkNvbmZlcmVuY2VNZW1iZXJVbm11
 dGUiLApYKwkJIkNvbmZlcmVuY2VNZW1iZXJVbm11dGUiClgrCQkiQ29uZmVyZW5jZU5hbWU6ICVz
 XHJcbiIKWCsJCSJNZW1iZXJJZDogJWRcclxuIgpYIAkJIkNoYW5uZWw6ICVzXHJcbiIsClgrCQlt
 ZW1iZXItPmNvbmZfbmFtZSwKWCsJCW1lbWJlci0+aWQsClggCQljaGFubmVsClggCSkgOwpYIApY
 LS0tIC4vTWFrZWZpbGUub3JpZwkyMDEwLTA4LTE4IDE2OjAyOjM4LjAwMDAwMDAwMCArMDAwMApY
 KysrIC4vTWFrZWZpbGUJMjAxMC0xMS0wMSAxNzoxMDoxNS4wMDAwMDAwMDAgKzAwMDAKWEBAIC0x
 OCwxMSArMTgsMTEgQEAKWCAjClggClggSU5TVEFMTF9QUkVGSVggOj0KWC1JTlNUQUxMX01PRFVM
 RVNfRElSIDo9ICQoSU5TVEFMTF9QUkVGSVgpL3Vzci9saWIvYXN0ZXJpc2svbW9kdWxlcwpYK0lO
 U1RBTExfTU9EVUxFU19ESVIgOj0gJChJTlNUQUxMX1BSRUZJWCkvJHtMT0NBTEJBU0V9L2xpYi9h
 c3Rlcmlzay9tb2R1bGVzClggClgtQVNURVJJU0tfSU5DTFVERV9ESVIgPz0gLi4vYXN0ZXJpc2sv
 aW5jbHVkZQpYK0FTVEVSSVNLX0lOQ0xVREVfRElSID89ICR7TE9DQUxCQVNFfS9pbmNsdWRlClgg
 ClgtUkVMRUFTRSA9IDEuNQpYK1JFVklTSU9OID0gMDEuMTEuMjAxMApYIApYICMgdHVybiBhcHBf
 a29uZmVyZW5jZSBkZWJ1Z2dpbmcgb24gb3Igb2ZmICggMCA9PSBPRkYsIDEgPT0gT04gKQpYIEFQ
 UF9LT05GRVJFTkNFX0RFQlVHID89IDAKWEBAIC02Nyw3ICs2Nyw3IEBAClggREVCVUcgOj0gLWcK
 WCAKWCBDRkxBR1MgPSAtcGlwZSAtV2FsbCAtV21pc3NpbmctcHJvdG90eXBlcyAtV21pc3Npbmct
 ZGVjbGFyYXRpb25zIC1NRCAtTVAgJChERUJVRykKWC1DUFBGTEFHUyA9ICQoSU5DTFVERSkgLURf
 UkVFTlRSQU5UIC1EX0dOVV9TT1VSQ0UgLURSRUxFQVNFPVwiJChSRUxFQVNFKVwiClgrQ1BQRkxB
 R1MgPSAkKElOQ0xVREUpIC1EX1JFRU5UUkFOVCAtRF9HTlVfU09VUkNFIC1EUkVWSVNJT049XCIk
 KFJFVklTSU9OKVwiClggI0NGTEFHUyArPSAtTzIKWCAjQ0ZMQUdTICs9IC1PMyAtbWFyY2g9cGVu
 dGl1bTMgLW1zc2UgLW1mcG1hdGg9c3NlLDM4NyAtZmZhc3QtbWF0aApYICMgUEVSRjogYmVsb3cg
 aXMgMTAlIGZhc3RlciB0aGFuIC1PMiBvciAtTzMgYWxvbmUuClhAQCAtODMsMTAgKzgzLDE2IEBA
 ClggQ1BQRkxBR1MgKz0gLURDUllQVE8KWCBDUFBGTEFHUyArPSAtRENIQU5ORUxfVEFCTEVfU0la
 RT0kKENIQU5ORUxfVEFCTEVfU0laRSkKWCBDUFBGTEFHUyArPSAtRENPTkZFUkVOQ0VfVEFCTEVf
 U0laRT0kKENPTkZFUkVOQ0VfVEFCTEVfU0laRSkKWC1DUFBGTEFHUyArPSAtRE9ORU1JWFRIUkVB
 RApYKyMgTk9URTogSW4gQXN0ZXJpc2tBdWRpb0tvbmYsIHdlIGRpc2FibGUgdGhlIE9ORU1JWFRI
 UkVBRCAiZmVhdHVyZSIKWCsjICAgSXQgY29uZmxpY3RzIHdpdGggdGhlIHJlY29yZGluZyBmZWF0
 dXJlIHdlIGFkZGVkIHNpbmNlIHRoZSBmb3JrIG9mIGFwcF9rb25mZXJlbmNlClgrIyAgIElmIHlv
 dSBoYXZlIHRoZSBzaW5nbGUgbWl4aW5nIHRocmVhZCBlbmFibGVkLCBzdGFydCBvbmUgY29uZmVy
 ZW5jZSByZWNvcmRpbmcsIGFuZApYKyMgICBvbmUgbm90IHJlY29yZGluZywgQXN0ZXJpc2sgZGll
 cy4gIFRoZSByZWNvcmRpbmcgZmVhdHVyZSBjb3VsZCBiZSB1cGRhdGVkIHRvIHdvcmsKWCsjICAg
 d2l0aCB0aGUgc2luZ2xlIG1peGluZyB0aHJlYWQsIGJ1dCB3ZSB3YW50IHRvIHRha2UgYWR2YW50
 YWdlIG9mIG11bHRpLWNvcmUKWCsjICAgcHJvY2Vzc29ycywgc28gd2UganVzdCBkaXNhYmxlIHRo
 ZSBzaW5nbGUgdGhyZWFkIHNldHRpbmcgaGVyZToKWCsjQ1BQRkxBR1MgKz0gLURPTkVNSVhUSFJF
 QUQKWCAKWCAjClgtIyBVbmNvbW1lbnQgdGhpcyBpZiB5b3Ugd2FudCBHLjcyOUEgc3VwcG9ydCAo
 bmVlZCB0byBoYXZlIHRoZSBhY3R1YWwgY29kZWMgaW5zdGFsbGVkKQpYKyMgVW5jb21tZW50IHRo
 aXMgaWYgeW91IHdhbnQgRy43MjlBIHN1cHBvcnQgKG5lZWQgdG8gaGF2ZSB0aGUgYWN0dWFsIGNv
 ZGVjIGluc3RhbGxlZApYICMKWCAjIENQUEZMQUdTICs9IC1EQUNfVVNFX0c3MjlBClggClhAQCAt
 OTYsOSArMTAyLDkgQEAKWCAjIENQUEZMQUdTICs9IC1EQUNfVVNFX0c3MjIKWCAKWCAjClgtIyBV
 bmNvbW1lbnQgdGhpcyBpZiB5b3Ugd2FudCBTUEVFWCBzdXBwb3J0IChuZWVkIHRvIGhhdmUgdGhl
 IGFjdHVhbCBjb2RlYyBpbnN0YWxsZWQpClgrIyBVbmNvbW1lbnQgdGhpcyBpZiB5b3Ugd2FudCBT
 cGVleCBXaWRlYmFuZCBzdXBwb3J0IChyZXF1aXJlcyBhc3RlcmlzayAxLjggb3IgYmFja3BvcnQg
 cGF0Y2gpClggIwpYLSMgQ1BQRkxBR1MgKz0gLURBQ19VU0VfU1BFRVgKWCsjIENQUEZMQUdTICs9
 IC1EQUNfVVNFX1NQRUVYMTYKWCAKWCBpZmVxICgkKEFQUF9LT05GRVJFTkNFX0RFQlVHKSwgMSkK
 WCBDUFBGTEFHUyArPSAtREFQUF9LT05GRVJFTkNFX0RFQlVHClhAQCAtMTU3LDEyICsxNjMsMTMg
 QEAKWCAJJChSTSkgJChUQVJHRVQpClggClggJChUQVJHRVQpOiAkKE9CSlMpClgtCSQoQ0MpIC1w
 ZyAkKFNPTElOSykgLW8gJEAgJChPQkpTKQpYKwkkKENDKSAkKFNPTElOSykgLW8gJEAgJChPQkpT
 KQpYIApYIHZhZF90ZXN0OiB2YWRfdGVzdC5vIGxpYnNwZWV4L3ByZXByb2Nlc3MubyBsaWJzcGVl
 eC9taXNjLm8gbGlic3BlZXgvc21hbGxmdC5vClggCSQoQ0MpICQoUFJPRklMRSkgLW8gJEAgJF4g
 LWxtClggClggaW5zdGFsbDoKWCsJJChJTlNUQUxMKSAtZCAkKElOU1RBTExfTU9EVUxFU19ESVIp
 ClggCSQoSU5TVEFMTCkgLW0gNzU1ICQoVEFSR0VUKSAkKElOU1RBTExfTU9EVUxFU19ESVIpClgg
 ClggClgtLS0gLi9hcHBfY29uZmVyZW5jZS5jLm9yaWcJMjAxMC0wOC0xOCAxNjoxNjo0Ni4wMDAw
 MDAwMDAgKzAwMDAKWCsrKyAuL2FwcF9jb25mZXJlbmNlLmMJMjAxMC0xMS0wMSAxNzowNzo0NC4w
 MDAwMDAwMDAgKzAwMDAKWEBAIC0yNywxNCArMjcsMTQgQEAKWCAKWCAjaW5jbHVkZSAiYXN0ZXJp
 c2suaCIKWCAKWC0vLyBTVk4gcmVsZWFzZSBudW1iZXIsIHByb3ZpZGVkIGJ5IG1ha2UKWC0jaWZu
 ZGVmIFJFTEVBU0UKWC0jZGVmaW5lIFJFTEVBU0UgInVua25vd24iClgrLy8gU1ZOIHJldmlzaW9u
 IG51bWJlciwgcHJvdmlkZWQgYnkgbWFrZQpYKyNpZm5kZWYgUkVWSVNJT04KWCsjZGVmaW5lIFJF
 VklTSU9OICJ1bmtub3duIgpYICNlbmRpZgpYIApYLXN0YXRpYyBjaGFyICpyZWxlYXNlID0gUkVM
 RUFTRTsKWCtzdGF0aWMgY2hhciAqcmV2aXNpb24gPSBSRVZJU0lPTjsKWCAKWC1BU1RFUklTS19G
 SUxFX1ZFUlNJT04oX19GSUxFX18sIFJFTEVBU0UpClgrQVNURVJJU0tfRklMRV9WRVJTSU9OKF9f
 RklMRV9fLCBSRVZJU0lPTikKWCAKWCAjaW5jbHVkZSAiYXBwX2NvbmZlcmVuY2UuaCIKWCAjaW5j
 bHVkZSAiY29tbW9uLmgiClhAQCAtNTksNyArNTksMTMgQEAKWCBzdGF0aWMgY2hhciAqc3lub3Bz
 aXMyID0gIkNoYW5uZWwgSW5kZXBlbmRlbnQgQ29uZmVyZW5jZSBDb3VudCI7Clggc3RhdGljIGNo
 YXIgKmRlc2NyaXAyID0gIkNoYW5uZWwgSW5kZXBlbmRlbnQgQ29uZmVyZW5jZSBDb3VudCBBcHBs
 aWNhdGlvbiI7ClggClgtc3RhdGljIGludCBhcHBfa29uZmVyZW5jZV9tYWluKHN0cnVjdCBhc3Rf
 Y2hhbm5lbCogY2hhbiwgdm9pZCogZGF0YSkKWCsjaWYgQVNURVJJU0tfVkVSU0lPTl9OVU0gPj0g
 MTA4MDAKWCt0eXBlZGVmIGNvbnN0IGNoYXIgKmFzdF9hcHBsaWNhdGlvbl9wYXJhbWV0ZXI7Clgr
 I2Vsc2UKWCt0eXBlZGVmIHZvaWQgKmFzdF9hcHBsaWNhdGlvbl9wYXJhbWV0ZXI7ClgrI2VuZGlm
 ClgrClgrc3RhdGljIGludCBhcHBfa29uZmVyZW5jZV9tYWluKHN0cnVjdCBhc3RfY2hhbm5lbCog
 Y2hhbiwgYXN0X2FwcGxpY2F0aW9uX3BhcmFtZXRlciBkYXRhKQpYIHsKWCAJaW50IHJlcyA7Clgg
 CXN0cnVjdCBhc3RfbW9kdWxlX3VzZXIgKnUgOwpYQEAgLTY3LDE0ICs3MywxNCBAQApYIAl1ID0g
 YXN0X21vZHVsZV91c2VyX2FkZChjaGFuKTsKWCAKWCAJLy8gY2FsbCBtZW1iZXIgdGhyZWFkIGZ1
 bmN0aW9uClgtCXJlcyA9IG1lbWJlcl9leGVjKCBjaGFuLCBkYXRhICkgOwpYKwlyZXMgPSBtZW1i
 ZXJfZXhlYyhjaGFuLCAoY29uc3QgY2hhciopIGRhdGEpOwpYIApYIAlhc3RfbW9kdWxlX3VzZXJf
 cmVtb3ZlKHUpOwpYIApYIAlyZXR1cm4gcmVzIDsKWCB9ClggClgtc3RhdGljIGludCBhcHBfa29u
 ZmVyZW5jZWNvdW50X21haW4oc3RydWN0IGFzdF9jaGFubmVsKiBjaGFuLCB2b2lkKiBkYXRhKQpY
 K3N0YXRpYyBpbnQgYXBwX2tvbmZlcmVuY2Vjb3VudF9tYWluKHN0cnVjdCBhc3RfY2hhbm5lbCog
 Y2hhbiwgYXN0X2FwcGxpY2F0aW9uX3BhcmFtZXRlciBkYXRhKQpYIHsKWCAJaW50IHJlcyA7Clgg
 CXN0cnVjdCBhc3RfbW9kdWxlX3VzZXIgKnUgOwpYQEAgLTgyLDcgKzg4LDcgQEAKWCAJdSA9IGFz
 dF9tb2R1bGVfdXNlcl9hZGQoY2hhbik7ClggClggCS8vIGNhbGwgY291bnQgdGhyZWFkIGZ1bmN0
 aW9uClgtCXJlcyA9IGNvdW50X2V4ZWMoIGNoYW4sIGRhdGEgKSA7ClgrCXJlcyA9IGNvdW50X2V4
 ZWMoY2hhbiwgKGNvbnN0IGNoYXIgKikgZGF0YSk7ClggClggCWFzdF9tb2R1bGVfdXNlcl9yZW1v
 dmUodSk7ClggClhAQCAtMTEyLDcgKzExOCw3IEBAClggewpYIAlpbnQgcmVzID0gMDsKWCAKWC0J
 YXN0X2xvZyggTE9HX05PVElDRSwgIkxvYWRpbmcgYXBwX2tvbmZlcmVuY2UgbW9kdWxlLCByZWxl
 YXNlPSVzXG4iLCByZWxlYXNlKSA7ClgrCWFzdF9sb2coIExPR19OT1RJQ0UsICJMb2FkaW5nIGFw
 cF9rb25mZXJlbmNlIG1vZHVsZSwgcmV2aXNpb249JXNcbiIsIHJldmlzaW9uKSA7ClggClggCWlu
 aXRfY29uZmVyZW5jZSgpIDsKWCAKWC0tLSAuL2FwcF9jb25mZXJlbmNlLmgub3JpZwkyMDEwLTA4
 LTE3IDE4OjE2OjM1LjAwMDAwMDAwMCArMDAwMApYKysrIC4vYXBwX2NvbmZlcmVuY2UuaAkyMDEw
 LTExLTAxIDE3OjA3OjQ0LjAwMDAwMDAwMCArMDAwMApYQEAgLTk0LDUzICs5NCwyMSBAQApYIC8v
 ICNkZWZpbmUgREVCVUdfT1VUUFVUX1BDTQpYIApYIC8vClgtLy8gISEhIFRIRVNFIENPTlNUQU5U
 UyBTSE9VTEQgQkUgQ0xFQU5FRCBVUCBBTkQgQ0xBUklGSUVEICEhIQpYKy8vIERlZmluZXMgcmVs
 YXRlZCB0byB0aGUgYXVkaW8gZm9ybWF0IGluIHdoaWNoIHRoZSBtaXhpbmcgaGFwcGVucy4KWCsv
 LyAoU2lnbmVkLCAxNi1iaXQgbGluZWFyLCA4IGtIeiBvciAxNiBrSHopClggLy8KWC0KWC0vLwpY
 LS8vIHNhbXBsZSBpbmZvcm1hdGlvbiBmb3IgQVNUX0ZPUk1BVF9TTElORUFSIGZvcm1hdApYLS8v
 ClgtClgtI2lmbmRlZglBQ19VU0VfRzcyMgpYLSNkZWZpbmUgQVNUX0NPTkZfU0FNUExFX1JBVEUg
 ODAwMApYKyNpZiBkZWZpbmVkKEFDX1VTRV9HNzIyKSB8fCBkZWZpbmVkKEFDX1VTRV9TUEVFWDE2
 KQpYKyNkZWZpbmUgQVNUX0NPTkZfU0FNUExFX1JBVEUJCTE2MDAwCS8qIEh6ICovClgrI2RlZmlu
 ZSBBU1RfQ09ORl9GT1JNQVQJCQlBU1RfRk9STUFUX1NMSU5FQVIxNgpYICNlbHNlClgtI2RlZmlu
 ZSBBU1RfQ09ORl9TQU1QTEVfUkFURSAxNjAwMApYKyNkZWZpbmUgQVNUX0NPTkZfU0FNUExFX1JB
 VEUJCTgwMDAJLyogSHogKi8KWCsjZGVmaW5lIEFTVF9DT05GX0ZPUk1BVAkJCUFTVF9GT1JNQVRf
 U0xJTkVBUgpYICNlbmRpZgpYLSNkZWZpbmUgQVNUX0NPTkZfU0FNUExFX1NJWkUgMTYKWC0jZGVm
 aW5lIEFTVF9DT05GX0ZSQU1FX0lOVEVSVkFMIDIwClgtLy9uZWlscyNkZWZpbmUgQVNUX0NPTkZf
 RlJBTUVfSU5URVJWQUwgMzAKWC0KWC0vLwpYLS8vIHNvLCBzaW5jZSB3ZSBjeWNsZSBhcHByb3hp
 bWF0ZWx5IGV2ZXJ5IDIwbXMsClgtLy8gd2UgY2FuIGNvbXB1dGUgdGhlIGZvbGxvd2luZyB2YWx1
 ZXM6ClgtLy8KWC0vLyAxNjAgc2FtcGxlcyBwZXIgMjAgbXMgZnJhbWUgLW9yLQpYLS8vICggODAw
 MCBzYW1wbGVzLXBlci1zZWNvbmQgKiAoIDIwIG1zIC8gMTAwMCBtcy1wZXItc2Vjb25kICkgKSA9
 IDE2MCBzYW1wbGVzClgtLy8KWC0vLyAzMjAgYnl0ZXMgKCAyNTYwIGJpdHMgKSBvZiBkYXRhICAy
 MCBtcyBmcmFtZSAtb3ItClgtLy8gKCAxNjAgc2FtcGxlcyAqIDE2IGJpdHMtcGVyLXNhbXBsZSAv
 IDggYml0cy1wZXItYnl0ZSApID0gMzIwIGJ5dGVzClgtLy8KWC0KWC0jaWZuZGVmCUFDX1VTRV9H
 NzIyClgtLy8gMTYwIHNhbXBsZXMgMTYtYml0IHNpZ25lZCBsaW5lYXIKWC0jZGVmaW5lIEFTVF9D
 T05GX0JMT0NLX1NBTVBMRVMgMTYwClgtI2Vsc2UKWC0jZGVmaW5lIEFTVF9DT05GX0JMT0NLX1NB
 TVBMRVMgMzIwClgtI2VuZGlmClgtClgtLy8gMiBieXRlcyBwZXIgc2FtcGxlICggaS5lLiAxNi1i
 aXQgKQpYLSNkZWZpbmUgQVNUX0NPTkZfQllURVNfUEVSX1NBTVBMRSAyClgtClgtI2lmbmRlZglB
 Q19VU0VfRzcyMgpYLS8vIDMyMCBieXRlcyBmb3IgZWFjaCAxNjAgc2FtcGxlIGZyYW1lIG9mIDE2
 LWJpdCBhdWRpbwpYLSNkZWZpbmUgQVNUX0NPTkZfRlJBTUVfREFUQV9TSVpFIDMyMApYLSNlbHNl
 ClgtI2RlZmluZSBBU1RfQ09ORl9GUkFNRV9EQVRBX1NJWkUgNjQwClgtI2VuZGlmClgtClgtLy8g
 MTAwMCBtcy1wZXItc2Vjb25kIC8gMjAgbXMtcGVyLWZyYW1lID0gNTAgZnJhbWVzLXBlci1zZWNv
 bmQKWC0jZGVmaW5lIEFTVF9DT05GX0ZSQU1FU19QRVJfU0VDT05EICggMTAwMCAvIEFTVF9DT05G
 X0ZSQU1FX0lOVEVSVkFMICkKWCsjZGVmaW5lIEFTVF9DT05GX0ZSQU1FX0lOVEVSVkFMCQkyMAkv
 KiBtcyAqLwpYIApYKyNkZWZpbmUgQVNUX0NPTkZfQkxPQ0tfU0FNUExFUwkJKEFTVF9DT05GX1NB
 TVBMRV9SQVRFICogQVNUX0NPTkZfRlJBTUVfSU5URVJWQUwgLyAxMDAwKQpYKyNkZWZpbmUgQVNU
 X0NPTkZfRlJBTUVfREFUQV9TSVpFCShBU1RfQ09ORl9CTE9DS19TQU1QTEVTICogMikKWCsjZGVm
 aW5lIEFTVF9DT05GX0ZSQU1FU19QRVJfU0VDT05ECSgxMDAwIC8gQVNUX0NPTkZfRlJBTUVfSU5U
 RVJWQUwpClggClggLy8KWCAvLyBidWZmZXIgYW5kIHF1ZXVlIHZhbHVlcwpYQEAgLTIyOSwxNSAr
 MTk3LDE2IEBAClggCQlBQ19VTEFXX0lOREVYLApYIAkJQUNfQUxBV19JTkRFWCwKWCAJCUFDX0dT
 TV9JTkRFWCwKWC0jaWZkZWYJQUNfVVNFX1NQRUVYClggCQlBQ19TUEVFWF9JTkRFWCwKWC0jZW5k
 aWYKWCAjaWZkZWYJQUNfVVNFX0c3MjlBClggCQlBQ19HNzI5QV9JTkRFWCwKWCAjZW5kaWYKWCAj
 aWZkZWYJQUNfVVNFX0c3MjIKWCAJCUFDX0c3MjJfSU5ERVgsClggI2VuZGlmClgrI2lmZGVmCUFD
 X1VTRV9TUEVFWDE2ClgrCQlBQ19TUEVFWDE2X0lOREVYLApYKyNlbmRpZgpYIAkJQUNfU1VQUE9S
 VEVEX0ZPUk1BVFMKWCAJCX0gOwpYIApYLS0tIC4vY29tbW9uLmgub3JpZwkyMDA5LTA5LTE3IDE1
 OjIxOjU5LjAwMDAwMDAwMCArMDAwMApYKysrIC4vY29tbW9uLmgJMjAxMC0xMS0wMSAxNzowNzo0
 NC4wMDAwMDAwMDAgKzAwMDAKWEBAIC0zMiwxNiArMzIsMTEgQEAKWCAjZGVmaW5lIF9BUFBfQ09O
 Rl9DT01NT05fSApYIApYICNpbmNsdWRlIDxhc3Rlcmlzay90aW1lLmg+ClgrI2luY2x1ZGUgPGFz
 dGVyaXNrL3ZlcnNpb24uaD4KWCAKWCAvLyB0eXBlZGVmIGluY2x1ZGVzClggI2luY2x1ZGUgImNv
 bmZfZnJhbWUuaCIKWCAKWC0vLyBmdW5jdGlvbiBpbmNsdWRlc2VlClgtLy8jaW5jbHVkZSAibWVt
 YmVyLmgiClgtI2luY2x1ZGUgImNvbmZlcmVuY2UuaCIKWC0jaW5jbHVkZSAiZnJhbWUuaCIKWC0j
 aW5jbHVkZSAiY2xpLmgiClgtClggLyogVXRpbGl0eSBmdW5jdGlvbnMgKi8KWCAKWCAvKiBMT0cg
 dGhlIHRpbWUgdGFrZW4gdG8gZXhlY3V0ZSBhIGZ1bmN0aW9uIChsaWtlIGxvY2sgYWNxdWlzaXRp
 b24gKi8KWEBAIC02NSw0ICs2MCw0NiBAQApYIApYIGNvbnN0IGNoYXIgKmFyZ3VtZW50X2RlbGlt
 aXRlciA7ClggClgrLy8gaGVscGVyIG1hY3JvcyBhbmQgZnVuY3Rpb25zIHRvIG1ha2UgYnVpbGRp
 bmcgZm9yIGRpZmZlcmVudCBhc3RlcmlzawpYKy8vIHZlcnNpb25zIGVhc2llcgpYKyNpZiBBU1RF
 UklTS19WRVJTSU9OX05VTSA+PSAxMDgwMApYKyNkZWZpbmUgQVNUX0ZSQU1FX1NVQkNMQVNTX0lO
 VChmKQkoKGYpLT5zdWJjbGFzcy5pbnRlZ2VyKQpYKyNkZWZpbmUgQVNUX0ZSQU1FX1NVQkNMQVNT
 X0NPREVDKGYpCSgoZiktPnN1YmNsYXNzLmNvZGVjKQpYKyNkZWZpbmUgQVNUX0ZNVF9GT1JNQVRf
 VAkJIiVsbHUiClgrClgrc3RhdGljIGlubGluZSBjb25zdCBjaGFyICphc3RfY2hhbm5lbF9jYWxs
 ZXJpZF9udW1iZXIoc3RydWN0IGFzdF9jaGFubmVsICpjaGFuKQpYK3sKWCsJcmV0dXJuIFNfQ09S
 KGNoYW4tPmNhbGxlci5pZC5udW1iZXIudmFsaWQsClgrCQkgICAgIGNoYW4tPmNhbGxlci5pZC5u
 dW1iZXIuc3RyLCAiPHVua25vd24+Iik7ClgrfQpYKwpYK3N0YXRpYyBpbmxpbmUgY29uc3QgY2hh
 ciAqYXN0X2NoYW5uZWxfY2FsbGVyaWRfbmFtZShzdHJ1Y3QgYXN0X2NoYW5uZWwgKmNoYW4pClgr
 ewpYKwlyZXR1cm4gU19DT1IoY2hhbi0+Y2FsbGVyLmlkLm5hbWUudmFsaWQsClgrCQkgICAgIGNo
 YW4tPmNhbGxlci5pZC5uYW1lLnN0ciwgIjx1bmtub3duPiIpOwpYK30KWCsjZWxzZQpYK3R5cGVk
 ZWYgdW5zaWduZWQgaW50IGZvcm1hdF90OwpYKwpYKyNkZWZpbmUgQVNUX0ZSQU1FX1NVQkNMQVNT
 X0lOVChmKQkoKGYpLT5zdWJjbGFzcykKWCsjZGVmaW5lIEFTVF9GUkFNRV9TVUJDTEFTU19DT0RF
 QyhmKQkoKGYpLT5zdWJjbGFzcykKWCsjZGVmaW5lIEFTVF9GTVRfRk9STUFUX1QJCSIldSIKWCsK
 WCtzdGF0aWMgaW5saW5lIGNvbnN0IGNoYXIgKmFzdF9jaGFubmVsX2NhbGxlcmlkX251bWJlcihz
 dHJ1Y3QgYXN0X2NoYW5uZWwgKmNoYW4pClgrewpYKwlyZXR1cm4gY2hhbi0+Y2lkLmNpZF9udW0g
 PyBjaGFuLT5jaWQuY2lkX251bSA6ICJ1bmtub3duIjsKWCt9ClgrClgrc3RhdGljIGlubGluZSBj
 b25zdCBjaGFyICphc3RfY2hhbm5lbF9jYWxsZXJpZF9uYW1lKHN0cnVjdCBhc3RfY2hhbm5lbCAq
 Y2hhbikKWCt7ClgrCXJldHVybiBjaGFuLT5jaWQuY2lkX25hbWUgPyBjaGFuLT5jaWQuY2lkX25h
 bWUgOiAidW5rbm93biI7ClgrfQpYKyNlbmRpZgpYKwpYKy8vIGZ1bmN0aW9uIGluY2x1ZGVzZWUK
 WCsvLyNpbmNsdWRlICJtZW1iZXIuaCIKWCsjaW5jbHVkZSAiY29uZmVyZW5jZS5oIgpYKyNpbmNs
 dWRlICJmcmFtZS5oIgpYKyNpbmNsdWRlICJjbGkuaCIKWCsKWCAjZW5kaWYKWC0tLSAuL2NvbmZf
 ZnJhbWUuaC5vcmlnCTIwMTAtMDgtMTcgMTQ6NTg6MDcuMDAwMDAwMDAwICswMDAwClgrKysgLi9j
 b25mX2ZyYW1lLmgJMjAxMC0xMS0wMSAxNzowNzo0NC4wMDAwMDAwMDAgKzAwMDAKWEBAIC01Myw2
 ICs1Myw5IEBAClggCS8vIHBvaW50ZXIgdG8gdGhlIGZyYW1lJ3Mgb3duZXIKWCAJc3RydWN0IGFz
 dF9jb25mX21lbWJlciogbWVtYmVyIDsgLy8gd2hvIHNlbnQgdGhpcyBmcmFtZQpYIApYKwkvLyBm
 cmFtZSBvd25lcidzIHNweSBwYXJ0bmVyClgrCXN0cnVjdCBhc3RfY29uZl9tZW1iZXIqIHNweV9w
 YXJ0bmVyIDsgLy8gc3B5ZXIgKG9yIHNweWVlKSB0byByZWNlaXZlIGZyYW1lClgrClggCS8vIGZy
 YW1lIG1ldGEgZGF0YQpYIC8vCXN0cnVjdCB0aW1ldmFsIHRpbWVzdGFtcCA7ClggLy8JdW5zaWdu
 ZWQgbG9uZyBjeWNsZWlkIDsKWC0tLSAuL2NvbmZlcmVuY2UuYy5vcmlnCTIwMTAtMDgtMTggMTQ6
 NTY6MjMuMDAwMDAwMDAwICswMDAwClgrKysgLi9jb25mZXJlbmNlLmMJMjAxMC0xMS0wMSAxNzow
 Nzo0NC4wMDAwMDAwMDAgKzAwMDAKWEBAIC0yOSwxNCArMjksMTcgQEAKWCAgKi8KWCAKWCAjaW5j
 bHVkZSAiYXN0ZXJpc2svYXV0b2NvbmZpZy5oIgpYKyNpbmNsdWRlICJhc3Rlcmlzay92ZXJzaW9u
 LmgiClggI2luY2x1ZGUgImNvbmZlcmVuY2UuaCIKWCAjaW5jbHVkZSAiYXN0ZXJpc2svdXRpbHMu
 aCIKWCsjaW5jbHVkZSAiYXN0ZXJpc2svZmlsZS5oIgpYIApYICNpbmNsdWRlICJhc3Rlcmlzay9h
 cHAuaCIKWCAjaW5jbHVkZSAiYXN0ZXJpc2svc2F5LmgiClggClggI2luY2x1ZGUgImFzdGVyaXNr
 L211c2ljb25ob2xkLmgiClggClgrClggLy8KWCAvLyBzdGF0aWMgdmFyaWFibGVzClggLy8KWEBA
 IC02NCw2ICs2Nyw3IEBAClggc3RhdGljIGludCB1cGRhdGVfbWVtYmVyX2Jyb2FkY2FzdGluZyhz
 dHJ1Y3QgYXN0X2NvbmZlcmVuY2UgKmNvbmYsIHN0cnVjdCBhc3RfY29uZl9tZW1iZXIgKm1lbWJl
 ciwgc3RydWN0IGNvbmZfZnJhbWUgKmNmciwgc3RydWN0IHRpbWV2YWwgdGltZSk7ClggI2VuZGlm
 ClggClgrClggLy8KWCAvLyBtYWluIGNvbmZlcmVuY2UgZnVuY3Rpb24KWCAvLwpYQEAgLTg2LDYg
 KzkwLDggQEAKWCAJc3RydWN0IGFzdF9jb25mX21lbWJlciAqZHRtZl9zb3VyY2VfbWVtYmVyOwpY
 ICNlbmRpZgpYIAlzdHJ1Y3QgY29uZl9mcmFtZSAqc3Bva2VuX2ZyYW1lcywgKnNlbmRfZnJhbWVz
 OwpYKwlzdHJ1Y3QgYXN0X2ZpbGVzdHJlYW0gKnMgPSBOVUxMOwpYKwljb25zdCBjaGFyICpyZWNm
 aWxlID0gTlVMTDsKWCAKWCAJLy8gY291bnQgbnVtYmVyIG9mIHNwZWFrZXJzLCBudW1iZXIgb2Yg
 bGlzdGVuZXJzClggCWludCBzcGVha2VyX2NvdW50IDsKWEBAIC05NCwxMyArMTAwLDkgQEAKWCAJ
 Ly9ERUJVRygiRW50ZXIgY29uZmVyZW5jZV9leGVjXG4iKSA7ClggClggCS8vIHRpbWVyIHRpbWVz
 dGFtcHMKWC0jaWZkZWYJVklERU8KWCAJc3RydWN0IHRpbWV2YWwgYmFzZSwgY3Vyciwgbm90aWZ5
 IDsKWCAJYmFzZSA9IG5vdGlmeSA9IGFzdF90dm5vdygpOwpYLSNlbHNlClgtCXN0cnVjdCB0aW1l
 dmFsIGJhc2UsIGN1cnIgOwpYLQliYXNlID0gYXN0X3R2bm93KCk7ClgtI2VuZGlmClgrClggCS8v
 IGhvbGRzIGRpZmZlcmVuY2VzIG9mIGN1cnIgYW5kIGJhc2UKWCAJbG9uZyB0aW1lX2RpZmYgPSAw
 IDsKWCAJbG9uZyB0aW1lX3NsZWVwID0gMCA7ClhAQCAtMjg2LDYgKzI4OCwyMSBAQApYIAkJCXNw
 ZWFrZXJfY291bnQgPSAwIDsKWCAJCQlsaXN0ZW5lcl9jb3VudCA9IDAgOwpYIApYKwkJCWlmIChj
 b25mLT5yZWNmaWxlICE9IHJlY2ZpbGUpClgrCQkJewpYKwkJCQlyZWNmaWxlID0gY29uZi0+cmVj
 ZmlsZTsKWCsJCQkJaWYgKHMpClgrCQkJCQlhc3RfY2xvc2VzdHJlYW0ocyk7ClgrCQkJCXMgPSBh
 c3Rfd3JpdGVmaWxlKGNvbmYtPnJlY2ZpbGUsIGNvbmYtPnJlY2Zvcm1hdCwgTlVMTCwKWCsJCQkJ
 CQkgIE9fQ1JFQVR8T19UUlVOQ3xPX1dST05MWSwgMCwgMDY0NCk7ClgrCQkJCWlmIChzKQpYKwkJ
 CQkJYXN0X2xvZyhMT0dfTk9USUNFLCAiUmVjb3JkaW5nIGNvbmZlcmVuY2UgdG8gJXMgaW4gZm9y
 bWF0ICVzXG4iLApYKwkJCQkJCWNvbmYtPnJlY2ZpbGUsIGNvbmYtPnJlY2Zvcm1hdCk7ClgrCQkJ
 fQpYKwpYKwkJCWlmIChzKQpYKwkJCQlsaXN0ZW5lcl9jb3VudCsrOwpYKwpYIAkJCS8vIGdldCBs
 aXN0IG9mIGNvbmZlcmVuY2UgbWVtYmVycwpYIAkJCW1lbWJlciA9IGNvbmYtPm1lbWJlcmxpc3Qg
 OwpYIApYQEAgLTM0MSw2ICszNTgsMjIgQEAKWCAJCQl7ClggCQkJCW1lbWJlcl9wcm9jZXNzX291
 dGdvaW5nX2ZyYW1lcyhjb25mLCBtZW1iZXIsIHNlbmRfZnJhbWVzKTsKWCAJCQl9ClgrClgrCQkJ
 aWYgKHMpClgrCQkJewpYKwkJCQljb25mX2ZyYW1lICpmOwpYKwkJCQlpbnQgZm91bmQgPSAwOwpY
 KwpYKwkJCQlmb3IgKGYgPSBzZW5kX2ZyYW1lczsgZiAhPSBOVUxMOyBmID0gZi0+bmV4dCkKWCsJ
 CQkJewpYKwkJCQkJaWYgKGYtPm1lbWJlciAhPSBOVUxMKQpYKwkJCQkJCWNvbnRpbnVlOwpYKwkJ
 CQkJYXN0X3dyaXRlc3RyZWFtKHMsIGYtPmZyKTsKWCsJCQkJCWZvdW5kID0gMTsKWCsJCQkJfQpY
 KwkJCQlpZiAoKCFmb3VuZCkgJiYgKGYgPSBnZXRfc2lsZW50X2ZyYW1lKCkpICE9IE5VTEwpClgr
 CQkJCQlhc3Rfd3JpdGVzdHJlYW0ocywgZi0+Y29udmVydGVkW0FDX1NMSU5FQVJfSU5ERVhdKTsK
 WCsJCQl9ClggI2lmZGVmCVZJREVPClggCQkJLy8tLS0tLS0tLy8KWCAJCQkvLyBWSURFTyAvLwpY
 QEAgLTUxNSwxNiArNTQ4LDI2IEBAClggCQkJCXNlbmRfZnJhbWVzID0gZGVsZXRlX2NvbmZfZnJh
 bWUoIHNlbmRfZnJhbWVzICkgOwpYIAkJCX0KWCAKWC0jaWZkZWYJVklERU8KWCsJCQkvLwpYKwkJ
 CS8vIG5vdGlmeSB0aGUgbWFuYWdlciBvZiBzdGF0ZSBjaGFuZ2VzIGV2ZXJ5IDEwMCBtaWxsaXNl
 Y29uZHMKWCsJCQkvLyB3ZSBwaWdneWJhY2sgb24gdGhpcyBmb3IgVkFEIHN3aXRjaGluZyBsb2dp
 YwpYKwkJCS8vClgrClggCQkJaWYgKCAoIGFzdF90dmRpZmZfbXMoY3Vyciwgbm90aWZ5KSAvIEFT
 VF9DT05GX05PVElGSUNBVElPTl9TTEVFUCApID49IDEgKQpYIAkJCXsKWCsjaWZkZWYJVklERU8K
 WCAJCQkJLy8gRG8gVkFEIHN3aXRjaGluZyBsb2dpYwpYKwkJCQkvLyBXZSBuZWVkIHRvIGRvIHRo
 aXMgaGVyZSBzaW5jZSBzZW5kX3N0YXRlX2NoYW5nZV9ub3RpZmljYXRpb25zClgrCQkJCS8vIHJl
 c2V0cyB0aGUgZmxhZ3MKWCAJCQkJaWYgKCAhY29uZi0+dmlkZW9fbG9ja2VkICkKWCAJCQkJCWRv
 X1ZBRF9zd2l0Y2hpbmcoY29uZik7ClgrI2VuZGlmClgrCQkJCS8vIHNlbmQgdGhlIG5vdGlmaWNh
 dGlvbnMKWCsJCQkJc2VuZF9zdGF0ZV9jaGFuZ2Vfbm90aWZpY2F0aW9ucyggY29uZi0+bWVtYmVy
 bGlzdCApIDsKWCsKWCAJCQkJLy8gaW5jcmVtZW50IHRoZSBub3RpZmljYXRpb24gdGltZXIgYmFz
 ZQpYIAkJCQlhZGRfbWlsbGlzZWNvbmRzKCAmbm90aWZ5LCBBU1RfQ09ORl9OT1RJRklDQVRJT05f
 U0xFRVAgKSA7ClggCQkJfQpYLSNlbmRpZgpYIApYIAkJCS8vIHJlbGVhc2UgY29uZmVyZW5jZSBs
 b2NrClggCQkJYXN0X3J3bG9ja191bmxvY2soICZjb25mLT5sb2NrICkgOwpYQEAgLTU0Niw2ICs1
 ODksOSBAQApYIAkvLyBleGl0IHRoZSBjb25mZXJlbmNlIHRocmVhZApYIAkvLwpYIApYKwlpZiAo
 cykKWCsJCWFzdF9jbG9zZXN0cmVhbShzKTsKWCsKWCAJREVCVUcoIkV4aXQgY29uZmVyZW5jZV9l
 eGVjXG4iKSA7ClggClggCS8vIGV4aXQgdGhlIHRocmVhZApYQEAgLTU3NywzNCArNjIzLDM5IEBA
 ClggCWFyZ3VtZW50X2RlbGltaXRlciA9ICggIXN0cmNtcChQQUNLQUdFX1ZFUlNJT04sIjEuNCIp
 ID8gInwiIDogIiwiICkgOwpYIH0KWCAKWC1zdHJ1Y3QgYXN0X2NvbmZlcmVuY2UqIGpvaW5fY29u
 ZmVyZW5jZSggc3RydWN0IGFzdF9jb25mX21lbWJlciogbWVtYmVyLCBjaGFyKiBjb25mX25hbWUs
 IGNoYXIqIG1heF91c2Vyc19mbGFnICkKWCtzdHJ1Y3QgYXN0X2NvbmZlcmVuY2UqIGpvaW5fY29u
 ZmVyZW5jZSggc3RydWN0IGFzdF9jb25mX21lbWJlciogbWVtYmVyLCBjb25zdCBjaGFyKiByZWNm
 aWxlLCBjb25zdCBjaGFyICpyZWNmb3JtYXQgKQpYIHsKWCAJc3RydWN0IGFzdF9jb25mZXJlbmNl
 KiBjb25mID0gTlVMTCA7ClggClggCS8vIGFjcXVpcmUgdGhlIGNvbmZlcmVuY2UgbGlzdCBsb2Nr
 ClggCWFzdF9tdXRleF9sb2NrKCZjb25mbGlzdF9sb2NrKTsKWCAKWC0KWC0KWCAJLy8gbG9vayBm
 b3IgYW4gZXhpc3RpbmcgY29uZmVyZW5jZQpYIAlERUJVRygiYXR0ZW1wdGluZyB0byBmaW5kIHJl
 cXVlc3RlZCBjb25mZXJlbmNlXG4iKSA7ClgtCWNvbmYgPSBmaW5kX2NvbmYoIGNvbmZfbmFtZSAp
 IDsKWCsJY29uZiA9IGZpbmRfY29uZiggbWVtYmVyLT5jb25mX25hbWUgKSA7ClggClggCS8vIHVu
 YWJsZSB0byBmaW5kIGFuIGV4aXN0aW5nIGNvbmZlcmVuY2UsIHRyeSB0byBjcmVhdGUgb25lClgg
 CWlmICggY29uZiA9PSBOVUxMICkKWCAJewpYLQkJLy8gY3JlYXRlIGEgbmV3IGNvbmZlcmVuY2UK
 WC0JCURFQlVHKCJhdHRlbXB0aW5nIHRvIGNyZWF0ZSByZXF1ZXN0ZWQgY29uZmVyZW5jZVxuIikg
 OwpYKwkJaWYgKCBtZW1iZXItPm5vX2NyZWF0ZV9mbGFnICkKWCsJCXsKWCsJCQlERUJVRygiY29u
 ZmVyZW5jZSBub3QgZm91bmQsIGFuZCBjcmVhdGUgb2YgbmV3IGNvbmZlcmVuY2Ugbm90IGFsbG93
 ZWRcbiIpIDsKWCsJCQlwYnhfYnVpbHRpbl9zZXR2YXJfaGVscGVyKG1lbWJlci0+Y2hhbiwgIktP
 TkZFUkVOQ0UiLCAiTk9URk9VTkQiKTsKWCsJCX0KWCsJCWVsc2UKWCsJCXsKWCsJCQkvLyBjcmVh
 dGUgYSBuZXcgY29uZmVyZW5jZQpYKwkJCURFQlVHKCJhdHRlbXB0aW5nIHRvIGNyZWF0ZSByZXF1
 ZXN0ZWQgY29uZmVyZW5jZVxuIikgOwpYIApYLQkJLy8gY3JlYXRlIHRoZSBuZXcgY29uZmVyZW5j
 ZSB3aXRoIG9uZSBtZW1iZXIKWC0JCWNvbmYgPSBjcmVhdGVfY29uZiggY29uZl9uYW1lLCBtZW1i
 ZXIgKSA7ClgrCQkJLy8gY3JlYXRlIHRoZSBuZXcgY29uZmVyZW5jZSB3aXRoIG9uZSBtZW1iZXIK
 WCsJCQljb25mID0gY3JlYXRlX2NvbmYoIG1lbWJlci0+Y29uZl9uYW1lLCBtZW1iZXIgKSA7Clgg
 ClgtCQkvLyByZXR1cm4gYW4gZXJyb3IgaWYgY3JlYXRlX2NvbmYoKSBmYWlsZWQKWC0JCS8vIG90
 aGVyd2lzZSBzZXQgdGhlIG1lbWJlcidzIHBvaW50ZXIgdG8gaXRzIGNvbmZlcmVuY2UKWC0JCWlm
 ICggY29uZiA9PSBOVUxMICkKWC0JCQlhc3RfbG9nKCBMT0dfRVJST1IsICJ1bmFibGUgdG8gZmlu
 ZCBvciBjcmVhdGUgcmVxdWVzdGVkIGNvbmZlcmVuY2VcbiIgKSA7ClgtCQllbHNlClgtCQkJbWVt
 YmVyLT5jb25mID0gY29uZiA7ClgrCQkJLy8gcmV0dXJuIGFuIGVycm9yIGlmIGNyZWF0ZV9jb25m
 KCkgZmFpbGVkClgrCQkJaWYgKCBjb25mID09IE5VTEwgKSB7ClgrCQkJCWFzdF9sb2coIExPR19F
 UlJPUiwgInVuYWJsZSB0byBmaW5kIG9yIGNyZWF0ZSByZXF1ZXN0ZWQgY29uZmVyZW5jZVxuIiAp
 IDsKWCsJCQkJcGJ4X2J1aWx0aW5fc2V0dmFyX2hlbHBlcihtZW1iZXItPmNoYW4sICJLT05GRVJF
 TkNFIiwgIk5PUkVTT1VSQ0VTIik7ClgrCQkJfQpYKwkJfQpYIAl9ClggCWVsc2UKWCAJewpYQEAg
 LTYxOCwxMSArNjY5LDE2IEBAClggCQkJYWRkX21lbWJlciggbWVtYmVyLCBjb25mICkgOwpYIAkJ
 fSBlbHNlIHsKWCAJCQlwYnhfYnVpbHRpbl9zZXR2YXJfaGVscGVyKG1lbWJlci0+Y2hhbiwgIktP
 TkZFUkVOQ0UiLCAiTUFYVVNFUlMiKTsKWC0JCQkqbWF4X3VzZXJzX2ZsYWcgPSAxOwpYIAkJCWNv
 bmYgPSBOVUxMOwpYIAkJfQpYIAl9ClggClgrCWlmIChjb25mICYmIHJlY2ZpbGUgJiYgIWNvbmYt
 PnJlY2ZpbGUpClgrCXsKWCsJCWNvbmYtPnJlY2ZpbGUgPSBzdHJkdXAocmVjZmlsZSk7ClgrCQlj
 b25mLT5yZWNmb3JtYXQgPSBzdHJkdXAocmVjZm9ybWF0KTsKWCsJfQpYKwpYIAkvLyByZWxlYXNl
 IHRoZSBjb25mZXJlbmNlIGxpc3QgbG9jawpYIAlhc3RfbXV0ZXhfdW5sb2NrKCZjb25mbGlzdF9s
 b2NrKTsKWCAKWEBAIC02NjgsNiArNzI0LDggQEAKWCAJLy8gaW5pdGlhbGl6ZSBjb25mZXJlbmNl
 ClggCS8vClggClgrCWNvbmYtPnJlY2ZpbGUgPSBOVUxMOwpYKwljb25mLT5yZWNmb3JtYXQgPSBO
 VUxMOwpYIAljb25mLT5uZXh0ID0gTlVMTCA7ClggCWNvbmYtPnByZXYgPSBOVUxMIDsKWCAJY29u
 Zi0+bWVtYmVybGlzdCA9IE5VTEwgOwpYQEAgLTcwOSwyOSArNzY3LDE4IEBAClggClggCS8vIGJ1
 aWxkIHRyYW5zbGF0aW9uIHBhdGhzClggCWNvbmYtPmZyb21fc2xpbmVhcl9wYXRoc1sgQUNfU0xJ
 TkVBUl9JTkRFWCBdID0gTlVMTCA7ClgtI2lmbmRlZiBBQ19VU0VfRzcyMgpYLQljb25mLT5mcm9t
 X3NsaW5lYXJfcGF0aHNbIEFDX1VMQVdfSU5ERVggXSA9IGFzdF90cmFuc2xhdG9yX2J1aWxkX3Bh
 dGgoIEFTVF9GT1JNQVRfVUxBVywgQVNUX0ZPUk1BVF9TTElORUFSICkgOwpYLQljb25mLT5mcm9t
 X3NsaW5lYXJfcGF0aHNbIEFDX0FMQVdfSU5ERVggXSA9IGFzdF90cmFuc2xhdG9yX2J1aWxkX3Bh
 dGgoIEFTVF9GT1JNQVRfQUxBVywgQVNUX0ZPUk1BVF9TTElORUFSICkgOwpYLQljb25mLT5mcm9t
 X3NsaW5lYXJfcGF0aHNbIEFDX0dTTV9JTkRFWCBdID0gYXN0X3RyYW5zbGF0b3JfYnVpbGRfcGF0
 aCggQVNUX0ZPUk1BVF9HU00sIEFTVF9GT1JNQVRfU0xJTkVBUiApIDsKWC0jaWZkZWYJQUNfVVNF
 X1NQRUVYClgtCWNvbmYtPmZyb21fc2xpbmVhcl9wYXRoc1sgQUNfU1BFRVhfSU5ERVggXSA9IGFz
 dF90cmFuc2xhdG9yX2J1aWxkX3BhdGgoIEFTVF9GT1JNQVRfU1BFRVgsIEFTVF9GT1JNQVRfU0xJ
 TkVBUiApIDsKWC0jZW5kaWYKWCsJY29uZi0+ZnJvbV9zbGluZWFyX3BhdGhzWyBBQ19VTEFXX0lO
 REVYIF0gPSBhc3RfdHJhbnNsYXRvcl9idWlsZF9wYXRoKCBBU1RfRk9STUFUX1VMQVcsIEFTVF9D
 T05GX0ZPUk1BVCApIDsKWCsJY29uZi0+ZnJvbV9zbGluZWFyX3BhdGhzWyBBQ19BTEFXX0lOREVY
 IF0gPSBhc3RfdHJhbnNsYXRvcl9idWlsZF9wYXRoKCBBU1RfRk9STUFUX0FMQVcsIEFTVF9DT05G
 X0ZPUk1BVCApIDsKWCsJY29uZi0+ZnJvbV9zbGluZWFyX3BhdGhzWyBBQ19HU01fSU5ERVggXSA9
 IGFzdF90cmFuc2xhdG9yX2J1aWxkX3BhdGgoIEFTVF9GT1JNQVRfR1NNLCBBU1RfQ09ORl9GT1JN
 QVQgKSA7ClgrCWNvbmYtPmZyb21fc2xpbmVhcl9wYXRoc1sgQUNfU1BFRVhfSU5ERVggXSA9IGFz
 dF90cmFuc2xhdG9yX2J1aWxkX3BhdGgoIEFTVF9GT1JNQVRfU1BFRVgsIEFTVF9DT05GX0ZPUk1B
 VCApIDsKWCAjaWZkZWYgQUNfVVNFX0c3MjlBClgtCWNvbmYtPmZyb21fc2xpbmVhcl9wYXRoc1sg
 QUNfRzcyOUFfSU5ERVggXSA9IGFzdF90cmFuc2xhdG9yX2J1aWxkX3BhdGgoIEFTVF9GT1JNQVRf
 RzcyOUEsIEFTVF9GT1JNQVRfU0xJTkVBUiApIDsKWC0jZW5kaWYKWC0jZWxzZQpYLQljb25mLT5m
 cm9tX3NsaW5lYXJfcGF0aHNbIEFDX1VMQVdfSU5ERVggXSA9IGFzdF90cmFuc2xhdG9yX2J1aWxk
 X3BhdGgoIEFTVF9GT1JNQVRfVUxBVywgQVNUX0ZPUk1BVF9TTElORUFSMTYgKSA7ClgtCWNvbmYt
 PmZyb21fc2xpbmVhcl9wYXRoc1sgQUNfQUxBV19JTkRFWCBdID0gYXN0X3RyYW5zbGF0b3JfYnVp
 bGRfcGF0aCggQVNUX0ZPUk1BVF9BTEFXLCBBU1RfRk9STUFUX1NMSU5FQVIxNiApIDsKWC0JY29u
 Zi0+ZnJvbV9zbGluZWFyX3BhdGhzWyBBQ19HU01fSU5ERVggXSA9IGFzdF90cmFuc2xhdG9yX2J1
 aWxkX3BhdGgoIEFTVF9GT1JNQVRfR1NNLCBBU1RfRk9STUFUX1NMSU5FQVIxNiApIDsKWC0jaWZk
 ZWYJQUNfVVNFX1NQRUVYClgtCWNvbmYtPmZyb21fc2xpbmVhcl9wYXRoc1sgQUNfU1BFRVhfSU5E
 RVggXSA9IGFzdF90cmFuc2xhdG9yX2J1aWxkX3BhdGgoIEFTVF9GT1JNQVRfU1BFRVgsIEFTVF9G
 T1JNQVRfU0xJTkVBUjE2ICkgOwpYLSNlbmRpZgpYLSNpZmRlZiBBQ19VU0VfRzcyOUEKWC0JY29u
 Zi0+ZnJvbV9zbGluZWFyX3BhdGhzWyBBQ19HNzI5QV9JTkRFWCBdID0gYXN0X3RyYW5zbGF0b3Jf
 YnVpbGRfcGF0aCggQVNUX0ZPUk1BVF9HNzI5QSwgQVNUX0ZPUk1BVF9TTElORUFSMTYgKSA7Clgr
 CWNvbmYtPmZyb21fc2xpbmVhcl9wYXRoc1sgQUNfRzcyOUFfSU5ERVggXSA9IGFzdF90cmFuc2xh
 dG9yX2J1aWxkX3BhdGgoIEFTVF9GT1JNQVRfRzcyOUEsIEFTVF9DT05GX0ZPUk1BVCApIDsKWCAj
 ZW5kaWYKWCAjaWZkZWYgQUNfVVNFX0c3MjIKWC0JY29uZi0+ZnJvbV9zbGluZWFyX3BhdGhzWyBB
 Q19HNzIyX0lOREVYIF0gPSBhc3RfdHJhbnNsYXRvcl9idWlsZF9wYXRoKCBBU1RfRk9STUFUX0c3
 MjIsIEFTVF9GT1JNQVRfU0xJTkVBUjE2ICkgOwpYKwljb25mLT5mcm9tX3NsaW5lYXJfcGF0aHNb
 IEFDX0c3MjJfSU5ERVggXSA9IGFzdF90cmFuc2xhdG9yX2J1aWxkX3BhdGgoIEFTVF9GT1JNQVRf
 RzcyMiwgQVNUX0NPTkZfRk9STUFUKSA7ClggI2VuZGlmClgrI2lmZGVmIEFDX1VTRV9TUEVFWDE2
 ClgrCWNvbmYtPmZyb21fc2xpbmVhcl9wYXRoc1sgQUNfU1BFRVgxNl9JTkRFWCBdID0gYXN0X3Ry
 YW5zbGF0b3JfYnVpbGRfcGF0aCggQVNUX0ZPUk1BVF9TUEVFWDE2LCBBU1RfQ09ORl9GT1JNQVQp
 IDsKWCAjZW5kaWYKWCAKWCAJLy8KWEBAIC04NTMsNiArOTAwLDEyIEBAClggClggCWlmICggY29u
 ZiA9PSBjb25mbGlzdCApClggCQljb25mbGlzdCA9IGNvbmZfdGVtcCA7ClgrCQkKWCsKWCsJaWYg
 KGNvbmYtPnJlY2ZpbGUpClgrCQlmcmVlKGNvbmYtPnJlY2ZpbGUpOwpYKwlpZiAoY29uZi0+cmVj
 Zm9ybWF0KQpYKwkJZnJlZShjb25mLT5yZWNmb3JtYXQpOwpYIApYIAlmcmVlKCBjb25mICkgOwpY
 IApYQEAgLTk1Nyw2ICsxMDEwLDMzIEBAClggCS8vIHVwZGF0ZSBjb25mZXJlbmNlIHN0YXRzClgg
 CWNvbmYtPm1lbWJlcmNvdW50Kys7ClggClgrCWlmICggbWVtYmVyLT53YWl0X2Zvcl9tb2RlcmF0
 b3JfZmxhZyA9PSAxICkKWCsJewpYKwkJaWYgKCAhbWVtYmVyLT5pc21vZGVyYXRvciAmJiBjb25m
 LT5zdGF0cy5tb2RlcmF0b3JzID09IDAgKQpYKwkJewpYKwkJCS8vIG5vIG1vZGVyYXRvciBpbiB0
 aGUgY29uZmVyZW5jZSB5ZXQgLSBzdGFydCBtdXNpYyBvbiBob2xkClgrCQkJYXN0X2xvZyggTE9H
 X05PVElDRSwgIm5vIG1vZGVyYXRvciBpbiB0aGUgY29uZmVyZW5jZSB5ZXQgLSBzdGFydCBtdXNp
 YyBvbiBob2xkXG4iICkgOwpYKwkJCWFzdF9tdXRleF9sb2NrKCAmbWVtYmVyLT5sb2NrICkgOwpY
 KwkJCW1lbWJlci0+bW9oX2ZsYWcgPSAxIDsKWCsJCQlhc3RfbXV0ZXhfdW5sb2NrKCAmbWVtYmVy
 LT5sb2NrICkgOwpYKwkJfQpYKwkJZWxzZSBpZiAoIG1lbWJlci0+aXNtb2RlcmF0b3IgJiYgY29u
 Zi0+bWVtYmVyY291bnQgPiAxICkKWCsJCXsKWCsJCQkvLyBtb2RlcmF0b3Igam9pbmluZyAtIHN0
 b3AgbXVzaWMgb24gaG9sZApYKwkJCWFzdF9sb2coIExPR19OT1RJQ0UsICJtb2RlcmF0b3Igam9p
 bmluZyAtIHN0b3AgbXVzaWMgb24gaG9sZFxuIiApOwpYKwkJCXN0cnVjdCBhc3RfY29uZl9tZW1i
 ZXIgKmN1cnJtZW1iZXI7ClgrCQkJZm9yICggY3Vycm1lbWJlciA9IGNvbmYtPm1lbWJlcmxpc3Qg
 OyBjdXJybWVtYmVyICE9IE5VTEwgOyBjdXJybWVtYmVyID0gY3Vycm1lbWJlci0+bmV4dCApClgr
 CQkJewpYKwkJCQlhc3RfbG9nKCBMT0dfTk9USUNFLCAic3RvcCBNT0ggZm9yIGNoYW5uZWw6ICVz
 XG4iLCBjdXJybWVtYmVyLT5jaGFuLT5uYW1lICk7ClgrCQkJCWFzdF9tdXRleF9sb2NrKCAmY3Vy
 cm1lbWJlci0+bG9jayApIDsKWCsJCQkJY3Vycm1lbWJlci0+bW9oX2ZsYWcgPSAwIDsKWCsJCQkJ
 Y3Vycm1lbWJlci0+cmVhZHlfZm9yX291dGdvaW5nID0gMTsKWCsJCQkJYXN0X21vaF9zdG9wKGN1
 cnJtZW1iZXItPmNoYW4pOwpYKwkJCQlhc3RfbXV0ZXhfdW5sb2NrKCAmY3Vycm1lbWJlci0+bG9j
 ayApIDsKWCsJCQl9ClgrCQl9ClgrCX0KWCsKWCAJaWYgKCBtZW1iZXItPmhvbGRfZmxhZyA9PSAx
 ICkKWCAJewpYIAkJaWYgICggY29uZi0+bWVtYmVyY291bnQgPT0gMSApClhAQCAtOTcwLDcgKzEw
 NTAsNyBAQApYIAkJCWFzdF9tdXRleF9sb2NrKCAmY29uZi0+bWVtYmVybGlzdC0+bG9jayApIDsK
 WCAJCQljb25mLT5tZW1iZXJsaXN0LT5tb2hfZmxhZyA9IDAgOwpYIAkJCWNvbmYtPm1lbWJlcmxp
 c3QtPnJlYWR5X2Zvcl9vdXRnb2luZyA9IDE7ClgtCQkJY29uZi0+bWVtYmVybGlzdC0+bW9oX3N0
 b3AgPSAxOwpYKwkJCWFzdF9tb2hfc3RvcChjb25mLT5tZW1iZXJsaXN0LT5jaGFuKTsKWCAJCQlh
 c3RfbXV0ZXhfdW5sb2NrKCAmY29uZi0+bWVtYmVybGlzdC0+bG9jayApIDsKWCAJCX0KWCAJfQpY
 QEAgLTEwNjEsNyArMTE0MSw3IEBAClggCXJldHVybiA7ClggfQpYIApYLXZvaWQgcmVtb3ZlX21l
 bWJlciggc3RydWN0IGFzdF9jb25mX21lbWJlciogbWVtYmVyLCBzdHJ1Y3QgYXN0X2NvbmZlcmVu
 Y2UqIGNvbmYsIGNoYXIqIGNvbmZfbmFtZSApClgrdm9pZCByZW1vdmVfbWVtYmVyKCBzdHJ1Y3Qg
 YXN0X2NvbmZfbWVtYmVyKiBtZW1iZXIsIHN0cnVjdCBhc3RfY29uZmVyZW5jZSogY29uZiApClgg
 ewpYIAlpbnQgbWVtYmVyY291bnQgOwpYIAlzaG9ydCBtb2RlcmF0b3JzIDsKWEBAIC0xMDg4LDcg
 KzExNjgsNyBAQApYIApYIAlhc3Rfcndsb2NrX3dybG9jayggJmNvbmYtPmxvY2sgKTsKWCAKWC0J
 aWYgKCBtZW1iZXItPmlzbW9kZXJhdG9yICYmIG1lbWJlci0+a2lja19jb25mZXJlZXMgJiYgY29u
 Zi0+c3RhdHMubW9kZXJhdG9ycyA9PSAxICkKWCsJaWYgKCBtZW1iZXItPmlzbW9kZXJhdG9yICYm
 IG1lbWJlci0+a2lja19jb25mZXJlZXMgKQpYIAkJY29uZi0+a2lja19mbGFnID0gMSA7ClggClgg
 I2lmZGVmCVZJREVPClhAQCAtMTEzOSw3ICsxMjE5LDcgQEAKWCAJCQkJLy8gbG9nIHNvbWUgYWNj
 b3VudGluZyBpbmZvcm1hdGlvbgpYIAkJCQkvLwpYIApYLQkJCQlERUJVRygibWVtYmVyIGFjY291
 bnRpbmcsIGNoYW5uZWwgPT4gJXMsIHRlID0+ICVsZCwgZmkgPT4gJWxkLCBmaWQgPT4gJWxkLCBm
 byA9PiAlbGQsIGZvZCA9PiAlbGQsIHR0ID0+ICVsZFxuIiwgbWVtYmVyLT5jaGFuLT5uYW1lLCBt
 ZW1iZXItPnRpbWVfZW50ZXJlZC50dl9zZWMsIG1lbWJlci0+ZnJhbWVzX2luLCBtZW1iZXItPmZy
 YW1lc19pbl9kcm9wcGVkLCBtZW1iZXItPmZyYW1lc19vdXQsIG1lbWJlci0+ZnJhbWVzX291dF9k
 cm9wcGVkLCB0dCkgOwpYKwkJCQlERUJVRygibWVtYmVyIGFjY291bnRpbmcsIGNoYW5uZWwgPT4g
 JXMsIHRlID0+ICVsZCwgZmkgPT4gJWxkLCBmaWQgPT4gJWxkLCBmbyA9PiAlbGQsIGZvZCA9PiAl
 bGQsIHR0ID0+ICVsZFxuIiwgbWVtYmVyLT5jaGFubmVsX25hbWUsIG1lbWJlci0+dGltZV9lbnRl
 cmVkLnR2X3NlYywgbWVtYmVyLT5mcmFtZXNfaW4sIG1lbWJlci0+ZnJhbWVzX2luX2Ryb3BwZWQs
 IG1lbWJlci0+ZnJhbWVzX291dCwgbWVtYmVyLT5mcmFtZXNfb3V0X2Ryb3BwZWQsIHR0KSA7Clgg
 CQkJfQpYICNlbmRpZgpYIAkJCS8vClhAQCAtMTE3MSw2ICsxMjUxLDIwIEBAClggClggCQkJLy8g
 dXBkYXRlIG1vZGVyYXRvciBjb3VudApYIAkJCW1vZGVyYXRvcnMgPSAoIW1lbWJlci0+aXNtb2Rl
 cmF0b3IgPyBjb25mLT5zdGF0cy5tb2RlcmF0b3JzIDogLS1jb25mLT5zdGF0cy5tb2RlcmF0b3Jz
 ICk7ClgrClgrCQkJaWYgKCBtZW1iZXItPmlzbW9kZXJhdG9yICYmIG1lbWJlci0+d2FpdF9mb3Jf
 bW9kZXJhdG9yX2ZsYWcgPT0gMSAmJiBtb2RlcmF0b3JzID09IDAgJiYgbWVtYmVyY291bnQgPiAw
 ICkKWCsJCQl7ClgrCQkJCWFzdF9sb2coIExPR19OT1RJQ0UsICJNb2RlcmF0b3IgbGVmdCAtIHBs
 YXlpbmcgTU9IIHVudGlsIGhlIHJldHVybnNcbiIpOwpYKwkJCQlzdHJ1Y3QgYXN0X2NvbmZfbWVt
 YmVyICpjdXJybWVtYmVyOwpYKwkJCQlmb3IgKCBjdXJybWVtYmVyID0gY29uZi0+bWVtYmVybGlz
 dCA7IGN1cnJtZW1iZXIgIT0gTlVMTCA7IGN1cnJtZW1iZXIgPSBjdXJybWVtYmVyLT5uZXh0ICkK
 WCsJCQkJewpYKwkJCQkJYXN0X2xvZyggTE9HX05PVElDRSwgInN0YXJ0IE1PSCBmb3IgY2hhbm5l
 bDogJXNcbiIsIGN1cnJtZW1iZXItPmNoYW4tPm5hbWUgKTsKWCsJCQkJCWFzdF9tdXRleF9sb2Nr
 KCAmY3Vycm1lbWJlci0+bG9jayApIDsKWCsJCQkJCWN1cnJtZW1iZXItPm1vaF9mbGFnID0gMTsK
 WCsJCQkJCWN1cnJtZW1iZXItPnJlYWR5X2Zvcl9vdXRnb2luZyA9IDE7ClgrCQkJCQlhc3RfbXV0
 ZXhfdW5sb2NrKCAmY3Vycm1lbWJlci0+bG9jayApIDsKWCsJCQkJfQpYKwkJCX0KWCAjaWZkZWYJ
 VklERU8KWCAJCQkvLyBDaGVjayBpZiBtZW1iZXIgaXMgdGhlIGRlZmF1bHQgb3IgY3VycmVudCB2
 aWRlbyBzb3VyY2UKWCAJCQlpZiAoIGNvbmYtPmN1cnJlbnRfdmlkZW9fc291cmNlX2lkID09IG1l
 bWJlci0+aWQgKQpYQEAgLTExOTMsNyArMTI4Nyw3IEBAClggCQkJCQkiQ29uZmVyZW5jZVZpZGVv
 QnJvYWRjYXN0T2ZmIiwKWCAJCQkJCSJDb25mZXJlbmNlTmFtZTogJXNcclxuQ2hhbm5lbDogJXNc
 clxuIiwKWCAJCQkJCWNvbmYtPm5hbWUsClgtCQkJCQltZW1iZXItPmNoYW4tPm5hbWUKWCsJCQkJ
 CW1lbWJlci0+Y2hhbm5lbF9uYW1lClggCQkJCQkpOwpYIAkJCX0KWCAKWEBAIC0xMjM5LDE0ICsx
 MzMzLDE0IEBAClggCQkiRHVyYXRpb246ICVsZFxyXG4iClggCQkiTW9kZXJhdG9yczogJWRcclxu
 IgpYIAkJIkNvdW50OiAlZFxyXG4iLApYLQkJY29uZl9uYW1lLApYKwkJbWVtYmVyLT5jb25mX25h
 bWUsClggCQltZW1iZXItPnR5cGUsClgtCQltZW1iZXItPmNoYW4tPnVuaXF1ZWlkLApYKwkJbWVt
 YmVyLT51bmlxdWVpZCwKWCAJCW1lbWJlci0+aWQsClggCQltZW1iZXItPmZsYWdzLApYLQkJbWVt
 YmVyLT5jaGFuLT5uYW1lLApYLQkJbWVtYmVyLT5jaGFuLT5jaWQuY2lkX251bSA/IG1lbWJlci0+
 Y2hhbi0+Y2lkLmNpZF9udW0gOiAidW5rbm93biIsClgtCQltZW1iZXItPmNoYW4tPmNpZC5jaWRf
 bmFtZSA/IG1lbWJlci0+Y2hhbi0+Y2lkLmNpZF9uYW1lOiAidW5rbm93biIsClgrCQltZW1iZXIt
 PmNoYW5uZWxfbmFtZSwKWCsJCWFzdF9jaGFubmVsX2NhbGxlcmlkX251bWJlcihtZW1iZXItPmNo
 YW4pLApYKwkJYXN0X2NoYW5uZWxfY2FsbGVyaWRfbmFtZShtZW1iZXItPmNoYW4pLApYIAkJdHQs
 ClggCQltb2RlcmF0b3JzLApYIAkJbWVtYmVyY291bnQKWEBAIC0xMjc2LDcgKzEzNzAsNyBAQApY
 IAkvLyBsb29wIHRocm91Z2ggY29uZiBsaXN0ClggCXdoaWxlICggY29uZiAhPSBOVUxMICkKWCAJ
 ewpYLQkJaWYgKCBzdHJjYXNlY21wKCAoY29uc3QgY2hhciopJihjb25mLT5uYW1lKSwgbmFtZSAp
 ID09IDAgKQpYKwkJaWYgKCBzdHJuY2FzZWNtcCggKGNvbnN0IGNoYXIqKSYoY29uZi0+bmFtZSks
 IG5hbWUsIDgwICkgPT0gMCApClggCQl7ClggCQkJLy8gbG9jayBjb25mZXJlbmNlClggCQkJLy8g
 YXN0X211dGV4X2xvY2soICYoY29uZi0+bG9jaykgKSA7ClhAQCAtMTMxMiw5ICsxNDA2LDYgQEAK
 WCAKWCBpbnQgc2hvd19jb25mZXJlbmNlX3N0YXRzICggaW50IGZkICkKWCB7ClgtCWludCBkdXJh
 dGlvbjsKWC0JY2hhciBkdXJhdGlvbl9zdHJbMTBdOwpYLQpYICAgICAgICAgLy8gbm8gY29uZmVy
 ZW5jZXMgZXhpc3QKWCAJaWYgKCBjb25mbGlzdCA9PSBOVUxMICkKWCAJewpYQEAgLTEzMjcsMTQg
 KzE0MTgsMTQgQEAKWCAKWCAJc3RydWN0IGFzdF9jb25mZXJlbmNlICpjb25mID0gY29uZmxpc3Qg
 OwpYIApYLQlhc3RfY2xpKCBmZCwgIiUtMjAuMjBzICUtMjAuMjBzICUtMjAuMjBzICUtMjAuMjBz
 XG4iLCAiTmFtZSIsICJNZW1iZXJzIiwgIlZvbHVtZSIsICJEdXJhdGlvbiIgKSA7ClgrCWFzdF9j
 bGkoIGZkLCAiJS0yMC4yMHMgJS0yMC4yMHMgJS0yMC4yMHMgJS0yMC4yMHNcbiIsICJOYW1lIiwg
 Ik1lbWJlcnMiLCAiVm9sdW1lIiwgIkJ1Y2tldCIgKSA7ClggClggCS8vIGxvb3AgdGhyb3VnaCBj
 b25mIGxpc3QKWCAJd2hpbGUgKCBjb25mICE9IE5VTEwgKQpYIAl7ClgtCQlkdXJhdGlvbiA9IChp
 bnQpKGFzdF90dmRpZmZfbXMoYXN0X3R2bm93KCksY29uZi0+c3RhdHMudGltZV9lbnRlcmVkKSAv
 IDEwMDApOwpYLQkJc25wcmludGYoZHVyYXRpb25fc3RyLCAxMCwgIiUwMmQ6JTAyZDolMDJkIiwg
 IGR1cmF0aW9uIC8gMzYwMCwgKGR1cmF0aW9uICUgMzYwMCkgLyA2MCwgZHVyYXRpb24gJSA2MCk7
 ClgtCQlhc3RfY2xpKCBmZCwgIiUtMjAuMjBzICUtMjBkICUtMjBkICUtMjAuMjBzXG4iLCBjb25m
 LT5uYW1lLCBjb25mLT5tZW1iZXJjb3VudCwgY29uZi0+dm9sdW1lLCBkdXJhdGlvbl9zdHIgKSA7
 ClgrCQlhc3RfY2xpKGZkLCAiJS0yMC4yMHMgJS0yMGQgJS0yMGQgJS0yMGRcbiIsClgrCQkJY29u
 Zi0+bmFtZSwgY29uZi0+bWVtYmVyY291bnQsIGNvbmYtPnZvbHVtZSwKWCsJCQkoaW50KShjb25m
 LT5idWNrZXQgLSBjb25mZXJlbmNlX3RhYmxlKSApIDsKWCAJCWNvbmYgPSBjb25mLT5uZXh0IDsK
 WCAJfQpYIApYQEAgLTEzNDksOCArMTQ0MCw2IEBAClggCXN0cnVjdCBhc3RfY29uZl9tZW1iZXIg
 Km1lbWJlcjsKWCAJY2hhciB2b2x1bWVfc3RyWzEwXTsKWCAJY2hhciBzcHlfc3RyWzEwXTsKWC0J
 aW50IGR1cmF0aW9uOwpYLQljaGFyIGR1cmF0aW9uX3N0clsxMF07ClggClggICAgICAgICAvLyBu
 byBjb25mZXJlbmNlcyBleGlzdApYIAlpZiAoIGNvbmZsaXN0ID09IE5VTEwgKQpYQEAgLTEzNjcs
 MTYgKzE0NTYsMTYgQEAKWCAJLy8gbG9vcCB0aHJvdWdoIGNvbmYgbGlzdApYIAl3aGlsZSAoIGNv
 bmYgIT0gTlVMTCApClggCXsKWC0JCWlmICggc3RyY2FzZWNtcCggKGNvbnN0IGNoYXIqKSYoY29u
 Zi0+bmFtZSksIG5hbWUgKSA9PSAwICkKWCsJCWlmICggc3RybmNhc2VjbXAoIChjb25zdCBjaGFy
 KikmKGNvbmYtPm5hbWUpLCBuYW1lLCA4MCApID09IDAgKQpYIAkJewpYIAkJCS8vIGFjcXVpcmUg
 Y29uZmVyZW5jZSBsb2NrClggCQkJYXN0X3J3bG9ja19yZGxvY2soJmNvbmYtPmxvY2spOwpYIApY
 IAkJCS8vIGFzdF9jbGkoZmQsICJDaGF0IG1vZGUgaXMgJXNcbiIsIGNvbmYtPmNoYXRfbW9kZV9v
 biA/ICJPTiIgOiAiT0ZGIik7ClggI2lmZGVmCVZJREVPClgtCQkJYXN0X2NsaSggZmQsICIlLTIw
 LjIwcyAlLTIwLjIwcyAlLTIwLjIwcyAlLTIwLjIwcyAlLTIwLjIwcyAlLTIwLjIwcyAlLTIwLjIw
 cyAlLTgwLjIwc1xuIiwgIlVzZXIgIyIsICJGbGFncyIsICJBdWRpbyIsICJWb2x1bWUiLCAiRHJp
 dmVyICMiLCAiRHVyYXRpb24iLCAiU3B5IiwgIkNoYW5uZWwiKTsKWCsJCQlhc3RfY2xpKCBmZCwg
 IiUtMjAuMjBzICUtMjAuMjBzICUtMjAuMjBzICUtMjAuMjBzICUtMjAuMjBzICUtMjAuMjBzICUt
 MjAuMjBzXG4iLCAiVXNlciAjIiwgIkNhbGxlcklETmFtZSIsICJDYWxsZXJJRCIsICJBdWRpbyIs
 ICJVbmlxdWVJRCIsICJDb25mZXJlbmNlIE5hbWUiLCAiQ2hhbm5lbCIpOwpYICNlbHNlClgtCQkJ
 YXN0X2NsaSggZmQsICIlLTIwLjIwcyAlLTIwLjIwcyAlLTIwLjIwcyAlLTIwLjIwcyAlLTIwLjIw
 cyAlLTIwLjIwcyAlLTgwLjIwc1xuIiwgIlVzZXIgIyIsICJGbGFncyIsICJBdWRpbyIsICJWb2x1
 bWUiLCAiRHVyYXRpb24iLCAiU3B5IiwgIkNoYW5uZWwiKTsKWCsJCQlhc3RfY2xpKCBmZCwgIiUt
 MjAuMjBzICUtMjAuMjBzICUtMjAuMjBzICUtMjAuMjBzICUtMjAuMjBzICUtMjAuMjBzICUtMjAu
 MjBzXG4iLCAiVXNlciAjIiwgIkNhbGxlcklETmFtZSIsICJDYWxsZXJJRCIsICJBdWRpbyIsICJV
 bmlxdWVJRCIsICJDb25mZXJlbmNlIE5hbWUiLCAiQ2hhbm5lbCIpOwpYICNlbmRpZgpYIAkJCS8v
 IGRvIHRoZSBiaXoKWCAJCQltZW1iZXIgPSBjb25mLT5tZW1iZXJsaXN0IDsKWEBAIC0xMzg3LDIw
 ICsxNDc2LDM0IEBAClggCQkJCQlzbnByaW50ZihzcHlfc3RyLCAxMCwgIiVkIiwgbWVtYmVyLT5z
 cHlfcGFydG5lci0+aWQpOwpYIAkJCQllbHNlClggCQkJCQlzdHJjcHkoc3B5X3N0ciAsICIqIik7
 ClgtCQkJCWR1cmF0aW9uID0gKGludCkoYXN0X3R2ZGlmZl9tcyhhc3RfdHZub3coKSxtZW1iZXIt
 PnRpbWVfZW50ZXJlZCkgLyAxMDAwKTsKWC0JCQkJc25wcmludGYoZHVyYXRpb25fc3RyLCAxMCwg
 IiUwMmQ6JTAyZDolMDJkIiwgIGR1cmF0aW9uIC8gMzYwMCwgKGR1cmF0aW9uICUgMzYwMCkgLyA2
 MCwgZHVyYXRpb24gJSA2MCk7ClggI2lmZGVmCVZJREVPClggCQkJCWlmICggbWVtYmVyLT5kcml2
 ZW5fbWVtYmVyID09IE5VTEwgKQpYIAkJCQl7ClgtCQkJCQlhc3RfY2xpKCBmZCwgIiUtMjBkICUt
 MjAuMjBzICUtMjAuMjBzICUtMjAuMjBzICUtMjAuMjBzICUtMjAuMjBzICUtMjAuMjBzICUtODBz
 XG4iLApYLQkJCQkJbWVtYmVyLT5pZCwgbWVtYmVyLT5mbGFncywgKG1lbWJlci0+bXV0ZV9hdWRp
 byA9PSAwID8gIlVubXV0ZWQiIDogIk11dGVkIiksIHZvbHVtZV9zdHIsICIqIiwgZHVyYXRpb25f
 c3RyLCBzcHlfc3RyLCBtZW1iZXItPmNoYW4tPm5hbWUpOwpYKwkJCQkJYXN0X2NsaSggZmQsICJN
 ZW1iZXJJZDogJS0yMGQgQ0lETmFtZTogJS0yMC4yMHMgQ0lEOiAlLTIwLjIwcyBNdXRlZDogJS0y
 MC4yMHMgVW5pcXVlSUQ6ICUtMjAuMjBzIENvbmZOYW1lOiAlLTIwLjIwcyBDaGFubmVsOiAlLTgw
 c1xuIiwKWCsJCQkJCQltZW1iZXItPmlkLApYKwkJCQkJCWFzdF9jaGFubmVsX2NhbGxlcmlkX25h
 bWUobWVtYmVyLT5jaGFuKSwKWCsJCQkJCQlhc3RfY2hhbm5lbF9jYWxsZXJpZF9udW1iZXIobWVt
 YmVyLT5jaGFuKSwKWCsJCQkJCQkobWVtYmVyLT5tdXRlX2F1ZGlvID09IDAgPyAiRmFsc2UiIDog
 IlRydWUiKSwKWCsJCQkJCQltZW1iZXItPnVuaXF1ZWlkLCBtZW1iZXItPmNvbmZfbmFtZSwgbWVt
 YmVyLT5jaGFubmVsX25hbWUpOwpYIAkJCQl9IGVsc2UgewpYLQkJCQkJYXN0X2NsaSggZmQsICIl
 LTIwZCAlLTIwLjIwcyAlLTIwLjIwcyAlLTIwLjIwcyAlLTIwZCAgJS0yMC4yMHMgJS0yMC4yMHMg
 JS04MHNcbiIsIG1lbWJlci0+aWQsIG1lbWJlci0+ZmxhZ3MsClgtCQkJCQkobWVtYmVyLT5tdXRl
 X2F1ZGlvID09IDAgPyAiVW5tdXRlZCIgOiAiTXV0ZWQiKSwgdm9sdW1lX3N0ciwgbWVtYmVyLT5k
 cml2ZW5fbWVtYmVyLT5pZCwgZHVyYXRpb25fc3RyLCBzcHlfc3RyLCBtZW1iZXItPmNoYW4tPm5h
 bWUpOwpYKwkJCQkJYXN0X2NsaSggZmQsICJNZW1iZXJJZDogJS0yMGQgQ0lETmFtZTogJS0yMC4y
 MHMgQ0lEOiAlLTIwLjIwcyBNdXRlZDogJS0yMC4yMHMgVW5pcXVlSUQ6ICUtMjAuMjBzIENvbmZO
 YW1lOiAlLTIwLjIwcyBTcGVha2luZzogJXMgQ2hhbm5lbDogJS04MHNcbiIsClgrCQkJCQkJbWVt
 YmVyLT5pZCwKWCsJCQkJCQlhc3RfY2hhbm5lbF9jYWxsZXJpZF9uYW1lKG1lbWJlci0+Y2hhbiks
 ClgrCQkJCQkJYXN0X2NoYW5uZWxfY2FsbGVyaWRfbnVtYmVyKG1lbWJlci0+Y2hhbiksClgrCQkJ
 CQkJKG1lbWJlci0+bXV0ZV9hdWRpbyA9PSAwID8gIkZhbHNlIiA6ICJUcnVlIiksClgrCQkJCQkJ
 bWVtYmVyLT51bmlxdWVpZCwgbWVtYmVyLT5jb25mX25hbWUsClgrCQkJCQkJKCggbWVtYmVyLT5z
 cGVha2luZ19zdGF0ZSA9PSAxICkgPyAiVHJ1ZSIgOiAiRmFsc2UiKSwKWCsJCQkJCQltZW1iZXIt
 PmNoYW5uZWxfbmFtZSk7ClggCQkJCX0KWCAjZWxzZQpYLQkJCQlhc3RfY2xpKCBmZCwgIiUtMjBk
 ICUtMjAuMjBzICUtMjAuMjBzICUtMjAuMjBzICUtMjAuMjBzICUtMjAuMjBzICUtODBzXG4iLApY
 LQkJCQltZW1iZXItPmlkLCBtZW1iZXItPmZsYWdzLCAobWVtYmVyLT5tdXRlX2F1ZGlvID09IDAg
 PyAiVW5tdXRlZCIgOiAiTXV0ZWQiKSwgdm9sdW1lX3N0ciwgZHVyYXRpb25fc3RyICwgc3B5X3N0
 ciwgbWVtYmVyLT5jaGFuLT5uYW1lKTsKWCsJCQkJYXN0X2NsaSggZmQsICJNZW1iZXJJZDogJS0y
 MGQgQ0lETmFtZTogJS0yMC4yMHMgQ0lEOiAlLTIwLjIwcyBNdXRlZDogJS0yMC4yMHMgVW5pcXVl
 SUQ6ICUtMjAuMjBzIENvbmZOYW1lOiAlLTIwLjIwcyBTcGVha2luZzogJXMgQ2hhbm5lbDogJS04
 MHNcbiIsClgrCQkJCQltZW1iZXItPmlkLApYKwkJCQkJYXN0X2NoYW5uZWxfY2FsbGVyaWRfbmFt
 ZShtZW1iZXItPmNoYW4pLApYKwkJCQkJYXN0X2NoYW5uZWxfY2FsbGVyaWRfbnVtYmVyKG1lbWJl
 ci0+Y2hhbiksClgrCQkJCQkobWVtYmVyLT5tdXRlX2F1ZGlvID09IDAgPyAiRmFsc2UiIDogIlRy
 dWUiKSwKWCsJCQkJCW1lbWJlci0+dW5pcXVlaWQsIG1lbWJlci0+Y29uZl9uYW1lLApYKwkJCQkJ
 KCggbWVtYmVyLT5zcGVha2luZ19zdGF0ZSA9PSAxICkgPyAiVHJ1ZSIgOiAiRmFsc2UiKSwKWCsJ
 CQkJCW1lbWJlci0+Y2hhbm5lbF9uYW1lKTsKWCAjZW5kaWYKWCAJCQkJbWVtYmVyID0gbWVtYmVy
 LT5uZXh0OwpYIAkJCX0KWEBAIC0xNDQ2LDcgKzE1NDksNyBAQApYIAkvLyBsb29wIHRocm91Z2gg
 Y29uZiBsaXN0ClggCXdoaWxlICggY29uZiAhPSBOVUxMICkKWCAJewpYLQkJaWYgKCBzdHJjYXNl
 Y21wKCAoY29uc3QgY2hhciopJihjb25mLT5uYW1lKSwgY29uZmZpbHRlciApID09IDAgKQpYKwkJ
 aWYgKCBzdHJuY2FzZWNtcCggKGNvbnN0IGNoYXIqKSYoY29uZi0+bmFtZSksIGNvbmZmaWx0ZXIs
 IDgwICkgPT0gMCApClggCQl7ClggCQkJLy8gZG8gdGhlIGJpegpYIAkJCW1lbWJlciA9IGNvbmYt
 Pm1lbWJlcmxpc3QgOwpYQEAgLTE0NjgsOSArMTU3MSw5IEBAClggCQkJCQkJIlxyXG4iLApYIAkJ
 CQkJCWNvbmYtPm5hbWUsClggCQkJCQkJbWVtYmVyLT5pZCwKWC0JCQkJCQltZW1iZXItPmNoYW4t
 Pm5hbWUsClgtCQkJCQkJbWVtYmVyLT5jaGFuLT5jaWQuY2lkX251bSA/IG1lbWJlci0+Y2hhbi0+
 Y2lkLmNpZF9udW0gOiAidW5rbm93biIsClgtCQkJCQkJbWVtYmVyLT5jaGFuLT5jaWQuY2lkX25h
 bWUgPyBtZW1iZXItPmNoYW4tPmNpZC5jaWRfbmFtZSA6ICJ1bmtub3duIiwKWCsJCQkJCQltZW1i
 ZXItPmNoYW5uZWxfbmFtZSwKWCsJCQkJCQlhc3RfY2hhbm5lbF9jYWxsZXJpZF9udW1iZXIobWVt
 YmVyLT5jaGFuKSwKWCsJCQkJCQlhc3RfY2hhbm5lbF9jYWxsZXJpZF9uYW1lKG1lbWJlci0+Y2hh
 biksClggCQkJCQkJbWVtYmVyLT5tdXRlX2F1ZGlvID8gIllFUyIgOiAiTk8iLApYICNpZmRlZglW
 SURFTwpYIAkJCQkJCW1lbWJlci0+bXV0ZV92aWRlbyA/ICJZRVMiIDogIk5PIiwKWEBAIC0xNTQ0
 LDcgKzE2NDcsNyBAQApYIAkvLyBsb29wIHRocm91Z2ggY29uZiBsaXN0ClggCXdoaWxlICggY29u
 ZiAhPSBOVUxMICkKWCAJewpYLQkJaWYgKCBzdHJjYXNlY21wKCAoY29uc3QgY2hhciopJihjb25m
 LT5uYW1lKSwgY29uZm5hbWUgKSA9PSAwICkKWCsJCWlmICggc3RybmNhc2VjbXAoIChjb25zdCBj
 aGFyKikmKGNvbmYtPm5hbWUpLCBjb25mbmFtZSwgODAgKSA9PSAwICkKWCAJCXsKWCAJCSAgICAg
 ICAgLy8gZG8gdGhlIGJpegpYIAkJCWFzdF9yd2xvY2tfcmRsb2NrKCAmY29uZi0+bG9jayApIDsK
 WEBAIC0xNjM3LDcgKzE3NDAsNyBAQApYIAkvLyBsb29wIHRocm91Z2ggY29uZiBsaXN0ClggCXdo
 aWxlICggY29uZiAhPSBOVUxMICkKWCAJewpYLQkJaWYgKCBzdHJjYXNlY21wKCAoY29uc3QgY2hh
 ciopJihjb25mLT5uYW1lKSwgY29uZm5hbWUgKSA9PSAwICkKWCsJCWlmICggc3RybmNhc2VjbXAo
 IChjb25zdCBjaGFyKikmKGNvbmYtPm5hbWUpLCBjb25mbmFtZSwgODAgKSA9PSAwICkKWCAJCXsK
 WCAJCSAgICAgICAgLy8gZG8gdGhlIGJpegpYIAkJCWFzdF9yd2xvY2tfcmRsb2NrKCAmY29uZi0+
 bG9jayApIDsKWEBAIC0xNjQ3LDEzICsxNzUwLDE3IEBAClggCQkJICAgIGlmIChtZW1iZXItPmlk
 ID09IHVzZXJfaWQpClggCQkJICAgICAgewpYIAkJCQkgICAgICBhc3RfbXV0ZXhfbG9jayggJm1l
 bWJlci0+bG9jayApIDsKWC0JCQkJICAgICAgbWVtYmVyLT5tdXRlX2F1ZGlvID0gMTsKWCsJCQkJ
 ICAgICAgbWVtYmVyLT5tdXRlZCA9IG1lbWJlci0+bXV0ZV9hdWRpbyA9IDE7ClggCQkJCSAgICAg
 IGFzdF9tdXRleF91bmxvY2soICZtZW1iZXItPmxvY2sgKSA7ClggCQkJCQltYW5hZ2VyX2V2ZW50
 KApYIAkJCQkJCUVWRU5UX0ZMQUdfQ0FMTCwKWCAJCQkJCQkiQ29uZmVyZW5jZU1lbWJlck11dGUi
 LApYKwkJCQkJCSJDb25mZXJlbmNlTmFtZTogJXNcclxuIgpYKwkJCQkJCSJNZW1iZXJJZDogJWRc
 clxuIgpYIAkJCQkJCSJDaGFubmVsOiAlc1xyXG4iLApYLQkJCQkJCW1lbWJlci0+Y2hhbi0+bmFt
 ZQpYKyAgICAgICAgICAgICAgICAJCQkJbWVtYmVyLT5jb25mX25hbWUsClgrICAgICAgICAgICAg
 ICAgIAkJCQltZW1iZXItPmlkLApYKwkJCQkJCW1lbWJlci0+Y2hhbm5lbF9uYW1lClggCQkJCQkp
 IDsKWCAJCQkJICAgICAgcmVzID0gMTsKWCAJCQkgICAgICB9ClhAQCAtMTY5Miw3ICsxNzk5LDcg
 QEAKWCAJLy8gbG9vcCB0aHJvdWdoIGNvbmYgbGlzdApYIAl3aGlsZSAoIGNvbmYgIT0gTlVMTCAp
 ClggCXsKWC0JCWlmICggc3RyY2FzZWNtcCggKGNvbnN0IGNoYXIqKSYoY29uZi0+bmFtZSksIGNv
 bmZuYW1lICkgPT0gMCApClgrCQlpZiAoIHN0cm5jYXNlY21wKCAoY29uc3QgY2hhciopJihjb25m
 LT5uYW1lKSwgY29uZm5hbWUsIDgwICkgPT0gMCApClggCQl7ClggCQkgICAgICAgIC8vIGRvIHRo
 ZSBiaXoKWCAJCQlhc3Rfcndsb2NrX3JkbG9jayggJmNvbmYtPmxvY2sgKSA7ClhAQCAtMTcwMiw3
 ICsxODA5LDcgQEAKWCAJCQkgICAgaWYgKCAhbWVtYmVyLT5pc21vZGVyYXRvciApClggCQkJICAg
 ICAgewpYIAkJCQkgICAgICBhc3RfbXV0ZXhfbG9jayggJm1lbWJlci0+bG9jayApIDsKWC0JCQkJ
 ICAgICAgbWVtYmVyLT5tdXRlX2F1ZGlvID0gMTsKWCsJCQkJICAgICAgbWVtYmVyLT5tdXRlZCA9
 IG1lbWJlci0+bXV0ZV9hdWRpbyA9IDE7ClggCQkJCSAgICAgIGFzdF9tdXRleF91bmxvY2soICZt
 ZW1iZXItPmxvY2sgKSA7ClggCQkJCSAgICAgIHJlcyA9IDE7ClggCQkJICAgICAgfQpYQEAgLTE3
 NDgsNyArMTg1NSw3IEBAClggCS8vIGxvb3AgdGhyb3VnaCBjb25mIGxpc3QKWCAJd2hpbGUgKCBj
 b25mICE9IE5VTEwgKQpYIAl7ClgtCQlpZiAoIHN0cmNhc2VjbXAoIChjb25zdCBjaGFyKikmKGNv
 bmYtPm5hbWUpLCBjb25mbmFtZSApID09IDAgKQpYKwkJaWYgKCBzdHJuY2FzZWNtcCggKGNvbnN0
 IGNoYXIqKSYoY29uZi0+bmFtZSksIGNvbmZuYW1lLCA4MCApID09IDAgKQpYIAkJewpYIAkJICAg
 ICAgICAvLyBkbyB0aGUgYml6ClggCQkJYXN0X3J3bG9ja19yZGxvY2soICZjb25mLT5sb2NrICkg
 OwpYQEAgLTE3NTgsMTMgKzE4NjUsMTcgQEAKWCAJCQkgICAgaWYgKG1lbWJlci0+aWQgPT0gdXNl
 cl9pZCkKWCAJCQkgICAgICB7ClggCQkJCSAgICAgIGFzdF9tdXRleF9sb2NrKCAmbWVtYmVyLT5s
 b2NrICkgOwpYLQkJCQkgICAgICBtZW1iZXItPm11dGVfYXVkaW8gPSAwOwpYKwkJCQkgICAgICBt
 ZW1iZXItPm11dGVkID0gbWVtYmVyLT5tdXRlX2F1ZGlvID0gMDsKWCAJCQkJICAgICAgYXN0X211
 dGV4X3VubG9jayggJm1lbWJlci0+bG9jayApIDsKWCAJCQkJCW1hbmFnZXJfZXZlbnQoClggCQkJ
 CQkJRVZFTlRfRkxBR19DQUxMLApYIAkJCQkJCSJDb25mZXJlbmNlTWVtYmVyVW5tdXRlIiwKWCsJ
 CQkJCQkiQ29uZmVyZW5jZU5hbWU6ICVzXHJcbiIKWCsJCQkJCQkiTWVtYmVySWQ6ICVkXHJcbiIK
 WCAJCQkJCQkiQ2hhbm5lbDogJXNcclxuIiwKWC0JCQkJCQltZW1iZXItPmNoYW4tPm5hbWUKWCsJ
 CQkJCQltZW1iZXItPmNvbmZfbmFtZSwKWCsJCQkJCQltZW1iZXItPmlkLApYKwkJCQkJCW1lbWJl
 ci0+Y2hhbm5lbF9uYW1lClggCQkJCQkpIDsKWCAJCQkJICAgICAgcmVzID0gMTsKWCAJCQkgICAg
 ICB9ClhAQCAtMTgwMyw3ICsxOTE0LDcgQEAKWCAJLy8gbG9vcCB0aHJvdWdoIGNvbmYgbGlzdApY
 IAl3aGlsZSAoIGNvbmYgIT0gTlVMTCApClggCXsKWC0JCWlmICggc3RyY2FzZWNtcCggKGNvbnN0
 IGNoYXIqKSYoY29uZi0+bmFtZSksIGNvbmZuYW1lICkgPT0gMCApClgrCQlpZiAoIHN0cm5jYXNl
 Y21wKCAoY29uc3QgY2hhciopJihjb25mLT5uYW1lKSwgY29uZm5hbWUsIDgwICkgPT0gMCApClgg
 CQl7ClggCQkgICAgICAgIC8vIGRvIHRoZSBiaXoKWCAJCQlhc3Rfcndsb2NrX3JkbG9jayggJmNv
 bmYtPmxvY2sgKSA7ClhAQCAtMTgxMyw3ICsxOTI0LDcgQEAKWCAJCQkgICAgaWYgKCAhbWVtYmVy
 LT5pc21vZGVyYXRvciApClggCQkJICAgICAgewpYIAkJCQkgICAgICBhc3RfbXV0ZXhfbG9jaygg
 Jm1lbWJlci0+bG9jayApIDsKWC0JCQkJICAgICAgbWVtYmVyLT5tdXRlX2F1ZGlvID0gMDsKWCsJ
 CQkJICAgICAgbWVtYmVyLT5tdXRlZCA9IG1lbWJlci0+bXV0ZV9hdWRpbyA9IDA7ClggCQkJCSAg
 ICAgIGFzdF9tdXRleF91bmxvY2soICZtZW1iZXItPmxvY2sgKSA7ClggCQkJCSAgICAgIHJlcyA9
 IDE7ClggCQkJICAgICAgfQpYQEAgLTE4NTksNyArMTk3MCw3IEBAClggCS8vIGxvb3AgdGhyb3Vn
 aCBjb25mIGxpc3QKWCAJd2hpbGUgKCBjb25mICE9IE5VTEwgKQpYIAl7ClgtCQlpZiAoIHN0cmNh
 c2VjbXAoIChjb25zdCBjaGFyKikmKGNvbmYtPm5hbWUpLCBjb25mbmFtZSApID09IDAgKQpYKwkJ
 aWYgKCBzdHJuY2FzZWNtcCggKGNvbnN0IGNoYXIqKSYoY29uZi0+bmFtZSksIGNvbmZuYW1lLCA4
 MCApID09IDAgKQpYIAkJewpYIAkJICAgICAgICAvLyBkbyB0aGUgYml6ClggCQkJYXN0X3J3bG9j
 a19yZGxvY2soICZjb25mLT5sb2NrICkgOwpYQEAgLTE5MTMsMTQgKzIwMjQsMTQgQEAKWCAJLy8g
 bG9vcCB0aHJvdWdoIGNvbmYgbGlzdApYIAl3aGlsZSAoIGNvbmYgIT0gTlVMTCApClggCXsKWC0J
 CWlmICggc3RyY2FzZWNtcCggKGNvbnN0IGNoYXIqKSYoY29uZi0+bmFtZSksIGNvbmZuYW1lICkg
 PT0gMCApClgrCQlpZiAoIHN0cm5jYXNlY21wKCAoY29uc3QgY2hhciopJihjb25mLT5uYW1lKSwg
 Y29uZm5hbWUsIDgwICkgPT0gMCApClggCQl7ClggCQkgICAgICAgIC8vIGRvIHRoZSBiaXoKWCAJ
 CQlhc3Rfcndsb2NrX3JkbG9jayggJmNvbmYtPmxvY2sgKSA7ClggCQkgICAgICAgIG1lbWJlciA9
 IGNvbmYtPm1lbWJlcmxpc3QgOwpYIAkJCXdoaWxlIChtZW1iZXIgIT0gTlVMTCkKWCAJCQl7Clgt
 CQkJCWlmIChzdHJjYXNlY21wKCBtZW1iZXItPmNoYW4tPm5hbWUsIHN0cmVhbWNoYW4gKSA9PSAw
 KQpYKwkJCQlpZiAoc3RybmNhc2VjbXAoIG1lbWJlci0+Y2hhbm5lbF9uYW1lLCBzdHJlYW1jaGFu
 LCA4MCApID09IDApClggCQkJCXsKWCAJCQkJCXN0cmVhbV9pZCA9IG1lbWJlci0+aWQ7ClggCQkJ
 CX0KWEBAIC0xOTM0LDcgKzIwNDUsNyBAQApYIAkJCQltZW1iZXIgPSBjb25mLT5tZW1iZXJsaXN0
 IDsKWCAJCQkJd2hpbGUgKG1lbWJlciAhPSBOVUxMKQpYIAkJCQl7ClgtCQkJCQlpZiAoc3RyY2Fz
 ZWNtcCggbWVtYmVyLT5jaGFuLT5uYW1lLCB1c2VyY2hhbiApID09IDApClgrCQkJCQlpZiAoc3Ry
 bmNhc2VjbXAoIG1lbWJlci0+Y2hhbm5lbF9uYW1lLCB1c2VyY2hhbiwgODAgKSA9PSAwKQpYIAkJ
 CQkJewpYIAkJCQkJCS8vIHN3aXRjaCB0aGUgdmlkZW8KWCAJCQkJCQlhc3RfbXV0ZXhfbG9jaygg
 Jm1lbWJlci0+bG9jayApIDsKWEBAIC0yMDE4LDcgKzIxMjksNyBAQApYIAkvLyBsb29wIHRocm91
 Z2ggY29uZiBsaXN0ClggCXdoaWxlICggY29uZiAhPSBOVUxMICkKWCAJewpYLQkJaWYgKCBzdHJj
 YXNlY21wKCAoY29uc3QgY2hhciopJihjb25mLT5uYW1lKSwgbmFtZSApID09IDAgKQpYKwkJaWYg
 KCBzdHJuY2FzZWNtcCggKGNvbnN0IGNoYXIqKSYoY29uZi0+bmFtZSksIG5hbWUsIDgwICkgPT0g
 MCApClggCQl7ClggCQkJLy8gY29weSBzdGF0cyBmb3IgZm91bmQgY29uZmVyZW5jZQpYIAkJCSpz
 dGF0cyA9IGNvbmYtPnN0YXRzIDsKWEBAIC0yMDQyLDcgKzIxNTMsNyBAQApYIAlBU1RfTElTVF9M
 T0NLICggYnVja2V0ICkgOwpYIApYIAlBU1RfTElTVF9UUkFWRVJTRSAoIGJ1Y2tldCwgbWVtYmVy
 LCBoYXNoX2VudHJ5ICkKWC0JCWlmICghc3RyY21wIChtZW1iZXItPmNoYW4tPm5hbWUsIGNoYW4p
 ICkgewpYKwkJaWYgKCFzdHJjbXAgKG1lbWJlci0+Y2hhbm5lbF9uYW1lLCBjaGFuKSApIHsKWCAJ
 CQlhc3RfbXV0ZXhfbG9jayAoJm1lbWJlci0+bG9jaykgOwpYIAkJCW1lbWJlci0+dXNlX2NvdW50
 KysgOwpYIAkJCWJyZWFrIDsKWEBAIC0yMTk1LDcgKzIzMDYsNyBAQApYIAkJCQkJY29uZi0+dmlk
 ZW9fbG9ja2VkID0gMTsKWCAJCQkJCXJlcyA9IDE7ClggClgtCQkJCQltYW5hZ2VyX2V2ZW50KEVW
 RU5UX0ZMQUdfQ0FMTCwgIkNvbmZlcmVuY2VMb2NrIiwgIkNvbmZlcmVuY2VOYW1lOiAlc1xyXG5D
 aGFubmVsOiAlc1xyXG4iLCBjb25mLT5uYW1lLCBtZW1iZXItPmNoYW4tPm5hbWUpOwpYKwkJCQkJ
 bWFuYWdlcl9ldmVudChFVkVOVF9GTEFHX0NBTEwsICJDb25mZXJlbmNlTG9jayIsICJDb25mZXJl
 bmNlTmFtZTogJXNcclxuQ2hhbm5lbDogJXNcclxuIiwgY29uZi0+bmFtZSwgbWVtYmVyLT5jaGFu
 bmVsX25hbWUpOwpYIAkJCQkJYnJlYWs7ClggCQkJCX0KWCAJCQl9ClhAQCAtMjIzNiwxMyArMjM0
 NywxMyBAQApYIApYIAkJCWZvciAoIG1lbWJlciA9IGNvbmYtPm1lbWJlcmxpc3QgOyBtZW1iZXIg
 IT0gTlVMTCA7IG1lbWJlciA9IG1lbWJlci0+bmV4dCApClggCQkJewpYLQkJCQlpZiAoIHN0cmNt
 cChjaGFubmVsLCBtZW1iZXItPmNoYW4tPm5hbWUpID09IDAgJiYgIW1lbWJlci0+bXV0ZV92aWRl
 byApClgrCQkJCWlmICggc3RyY21wKGNoYW5uZWwsIG1lbWJlci0+Y2hhbm5lbF9uYW1lKSA9PSAw
 ICYmICFtZW1iZXItPm11dGVfdmlkZW8gKQpYIAkJCQl7ClggCQkJCQlkb192aWRlb19zd2l0Y2hp
 bmcoY29uZiwgbWVtYmVyLT5pZCwgMCk7ClggCQkJCQljb25mLT52aWRlb19sb2NrZWQgPSAxOwpY
 IAkJCQkJcmVzID0gMTsKWCAKWC0JCQkJCW1hbmFnZXJfZXZlbnQoRVZFTlRfRkxBR19DQUxMLCAi
 Q29uZmVyZW5jZUxvY2siLCAiQ29uZmVyZW5jZU5hbWU6ICVzXHJcbkNoYW5uZWw6ICVzXHJcbiIs
 IGNvbmYtPm5hbWUsIG1lbWJlci0+Y2hhbi0+bmFtZSk7ClgrCQkJCQltYW5hZ2VyX2V2ZW50KEVW
 RU5UX0ZMQUdfQ0FMTCwgIkNvbmZlcmVuY2VMb2NrIiwgIkNvbmZlcmVuY2VOYW1lOiAlc1xyXG5D
 aGFubmVsOiAlc1xyXG4iLCBjb25mLT5uYW1lLCBtZW1iZXItPmNoYW5uZWxfbmFtZSk7ClggCQkJ
 CQlicmVhazsKWCAJCQkJfQpYIAkJCX0KWEBAIC0yMzMzLDcgKzI0NDQsNyBAQApYIAkJCQkJCWNv
 bmYtPmRlZmF1bHRfdmlkZW9fc291cmNlX2lkID0gbWVtYmVyX2lkOwpYIAkJCQkJCXJlcyA9IDE7
 ClggClgtCQkJCQkJbWFuYWdlcl9ldmVudChFVkVOVF9GTEFHX0NBTEwsICJDb25mZXJlbmNlRGVm
 YXVsdCIsICJDb25mZXJlbmNlTmFtZTogJXNcclxuQ2hhbm5lbDogJXNcclxuIiwgY29uZi0+bmFt
 ZSwgbWVtYmVyLT5jaGFuLT5uYW1lKTsKWCsJCQkJCQltYW5hZ2VyX2V2ZW50KEVWRU5UX0ZMQUdf
 Q0FMTCwgIkNvbmZlcmVuY2VEZWZhdWx0IiwgIkNvbmZlcmVuY2VOYW1lOiAlc1xyXG5DaGFubmVs
 OiAlc1xyXG4iLCBjb25mLT5uYW1lLCBtZW1iZXItPmNoYW5uZWxfbmFtZSk7ClggCQkJCQkJYnJl
 YWs7ClggCQkJCQl9ClggCQkJCX0KWEBAIC0yMzc4LDcgKzI0ODksNyBAQApYIAkJCXsKWCAJCQkJ
 Ly8gV2UgZG8gbm90IGFsbG93IHZpZGVvIG11dGVkIG1lbWJlcnMgb3IgbWVtYmVycyB0aGF0IGRv
 IG5vdCBzdXBwb3J0ClggCQkJCS8vIFZBRCBzd2l0Y2hpbmcgdG8gYmVjb21lIGRlZmF1bHRzClgt
 CQkJCWlmICggc3RyY21wKGNoYW5uZWwsIG1lbWJlci0+Y2hhbi0+bmFtZSkgPT0gMCAmJgpYKwkJ
 CQlpZiAoIHN0cmNtcChjaGFubmVsLCBtZW1iZXItPmNoYW5uZWxfbmFtZSkgPT0gMCAmJgpYIAkJ
 CQkgICAgICFtZW1iZXItPm11dGVfdmlkZW8gJiYKWCAJCQkJICAgICBtZW1iZXItPnZhZF9zd2l0
 Y2gKWCAJCQkJICAgKQpYQEAgLTIzODYsNyArMjQ5Nyw3IEBAClggCQkJCQljb25mLT5kZWZhdWx0
 X3ZpZGVvX3NvdXJjZV9pZCA9IG1lbWJlci0+aWQ7ClggCQkJCQlyZXMgPSAxOwpYIApYLQkJCQkJ
 bWFuYWdlcl9ldmVudChFVkVOVF9GTEFHX0NBTEwsICJDb25mZXJlbmNlRGVmYXVsdCIsICJDb25m
 ZXJlbmNlTmFtZTogJXNcclxuQ2hhbm5lbDogJXNcclxuIiwgY29uZi0+bmFtZSwgbWVtYmVyLT5j
 aGFuLT5uYW1lKTsKWCsJCQkJCW1hbmFnZXJfZXZlbnQoRVZFTlRfRkxBR19DQUxMLCAiQ29uZmVy
 ZW5jZURlZmF1bHQiLCAiQ29uZmVyZW5jZU5hbWU6ICVzXHJcbkNoYW5uZWw6ICVzXHJcbiIsIGNv
 bmYtPm5hbWUsIG1lbWJlci0+Y2hhbm5lbF9uYW1lKTsKWCAJCQkJCWJyZWFrOwpYIAkJCQl9Clgg
 CQkJfQpYQEAgLTI0MzYsNyArMjU0Nyw3IEBAClggCQkJCQkvLyByZWxlYXNlIG1lbWJlciBtdXRl
 eApYIAkJCQkJYXN0X211dGV4X3VubG9jayggJm1lbWJlci0+bG9jayApOwpYIApYLQkJCQkJbWFu
 YWdlcl9ldmVudChFVkVOVF9GTEFHX0NBTEwsICJDb25mZXJlbmNlVmlkZW9NdXRlIiwgIkNvbmZl
 cmVuY2VOYW1lOiAlc1xyXG5DaGFubmVsOiAlc1xyXG4iLCBjb25mLT5uYW1lLCBtZW1iZXItPmNo
 YW4tPm5hbWUpOwpYKwkJCQkJbWFuYWdlcl9ldmVudChFVkVOVF9GTEFHX0NBTEwsICJDb25mZXJl
 bmNlVmlkZW9NdXRlIiwgIkNvbmZlcmVuY2VOYW1lOiAlc1xyXG5DaGFubmVsOiAlc1xyXG4iLCBj
 b25mLT5uYW1lLCBtZW1iZXItPmNoYW5uZWxfbmFtZSk7ClggClggCQkJCQlpZiAoIG1lbWJlci0+
 aWQgPT0gY29uZi0+Y3VycmVudF92aWRlb19zb3VyY2VfaWQgKQpYIAkJCQkJewpYQEAgLTI0OTQs
 NyArMjYwNSw3IEBAClggCQkJCQkvLyByZWxlYXNlIG1lbWJlciBtdXRleApYIAkJCQkJYXN0X211
 dGV4X3VubG9jayggJm1lbWJlci0+bG9jayApOwpYIApYLQkJCQkJbWFuYWdlcl9ldmVudChFVkVO
 VF9GTEFHX0NBTEwsICJDb25mZXJlbmNlVmlkZW9Vbm11dGUiLCAiQ29uZmVyZW5jZU5hbWU6ICVz
 XHJcbkNoYW5uZWw6ICVzXHJcbiIsIGNvbmYtPm5hbWUsIG1lbWJlci0+Y2hhbi0+bmFtZSk7Clgr
 CQkJCQltYW5hZ2VyX2V2ZW50KEVWRU5UX0ZMQUdfQ0FMTCwgIkNvbmZlcmVuY2VWaWRlb1VubXV0
 ZSIsICJDb25mZXJlbmNlTmFtZTogJXNcclxuQ2hhbm5lbDogJXNcclxuIiwgY29uZi0+bmFtZSwg
 bWVtYmVyLT5jaGFubmVsX25hbWUpOwpYIApYIAkJCQkJcmVzID0gMTsKWCAJCQkJCWJyZWFrOwpY
 QEAgLTI1MzcsNyArMjY0OCw3IEBAClggClggCQkJZm9yICggbWVtYmVyID0gY29uZi0+bWVtYmVy
 bGlzdCA7IG1lbWJlciAhPSBOVUxMIDsgbWVtYmVyID0gbWVtYmVyLT5uZXh0ICkKWCAJCQl7Clgt
 CQkJCWlmICggc3RyY21wKGNoYW5uZWwsIG1lbWJlci0+Y2hhbi0+bmFtZSkgPT0gMCApClgrCQkJ
 CWlmICggc3RyY21wKGNoYW5uZWwsIG1lbWJlci0+Y2hhbm5lbF9uYW1lKSA9PSAwICkKWCAJCQkJ
 ewpYIAkJCQkJLy8gYWNxdWlyZSBtZW1iZXIgbXV0ZXgKWCAJCQkJCWFzdF9tdXRleF9sb2NrKCAm
 bWVtYmVyLT5sb2NrICk7ClhAQCAtMjU0Nyw3ICsyNjU4LDcgQEAKWCAJCQkJCS8vIHJlbGVhc2Ug
 bWVtYmVyIG11dGV4ClggCQkJCQlhc3RfbXV0ZXhfdW5sb2NrKCAmbWVtYmVyLT5sb2NrICk7Clgg
 ClgtCQkJCQltYW5hZ2VyX2V2ZW50KEVWRU5UX0ZMQUdfQ0FMTCwgIkNvbmZlcmVuY2VWaWRlb011
 dGUiLCAiQ29uZmVyZW5jZU5hbWU6ICVzXHJcbkNoYW5uZWw6ICVzXHJcbiIsIGNvbmYtPm5hbWUs
 IG1lbWJlci0+Y2hhbi0+bmFtZSk7ClgrCQkJCQltYW5hZ2VyX2V2ZW50KEVWRU5UX0ZMQUdfQ0FM
 TCwgIkNvbmZlcmVuY2VWaWRlb011dGUiLCAiQ29uZmVyZW5jZU5hbWU6ICVzXHJcbkNoYW5uZWw6
 ICVzXHJcbiIsIGNvbmYtPm5hbWUsIG1lbWJlci0+Y2hhbm5lbF9uYW1lKTsKWCAKWCAJCQkJCWlm
 ICggbWVtYmVyLT5pZCA9PSBjb25mLT5jdXJyZW50X3ZpZGVvX3NvdXJjZV9pZCApClggCQkJCQl7
 ClhAQCAtMjU5NSw3ICsyNzA2LDcgQEAKWCAKWCAJCQlmb3IgKCBtZW1iZXIgPSBjb25mLT5tZW1i
 ZXJsaXN0IDsgbWVtYmVyICE9IE5VTEwgOyBtZW1iZXIgPSBtZW1iZXItPm5leHQgKQpYIAkJCXsK
 WC0JCQkJaWYgKCBzdHJjbXAoY2hhbm5lbCwgbWVtYmVyLT5jaGFuLT5uYW1lKSA9PSAwICkKWCsJ
 CQkJaWYgKCBzdHJjbXAoY2hhbm5lbCwgbWVtYmVyLT5jaGFubmVsX25hbWUpID09IDAgKQpYIAkJ
 CQl7ClggCQkJCQkvLyBhY3F1aXJlIG1lbWJlciBtdXRleApYIAkJCQkJYXN0X211dGV4X2xvY2so
 ICZtZW1iZXItPmxvY2sgKTsKWEBAIC0yNjA1LDcgKzI3MTYsNyBAQApYIAkJCQkJLy8gcmVsZWFz
 ZSBtZW1iZXIgbXV0ZXgKWCAJCQkJCWFzdF9tdXRleF91bmxvY2soICZtZW1iZXItPmxvY2sgKTsK
 WCAKWC0JCQkJCW1hbmFnZXJfZXZlbnQoRVZFTlRfRkxBR19DQUxMLCAiQ29uZmVyZW5jZVZpZGVv
 VW5tdXRlIiwgIkNvbmZlcmVuY2VOYW1lOiAlc1xyXG5DaGFubmVsOiAlc1xyXG4iLCBjb25mLT5u
 YW1lLCBtZW1iZXItPmNoYW4tPm5hbWUpOwpYKwkJCQkJbWFuYWdlcl9ldmVudChFVkVOVF9GTEFH
 X0NBTEwsICJDb25mZXJlbmNlVmlkZW9Vbm11dGUiLCAiQ29uZmVyZW5jZU5hbWU6ICVzXHJcbkNo
 YW5uZWw6ICVzXHJcbiIsIGNvbmYtPm5hbWUsIG1lbWJlci0+Y2hhbm5lbF9uYW1lKTsKWCAKWCAJ
 CQkJCXJlcyA9IDE7ClggCQkJCQlicmVhazsKWEBAIC0yNjk0LDcgKzI4MDUsNyBAQApYIApYIAkJ
 CWZvciAoIG1lbWJlciA9IGNvbmYtPm1lbWJlcmxpc3QgOyBtZW1iZXIgIT0gTlVMTCA7IG1lbWJl
 ciA9IG1lbWJlci0+bmV4dCApClggCQkJewpYLQkJCQlpZiAoIHN0cmNtcChtZW1iZXItPmNoYW4t
 Pm5hbWUsIGNoYW5uZWwpID09IDAgKQpYKwkJCQlpZiAoIHN0cmNtcChtZW1iZXItPmNoYW5uZWxf
 bmFtZSwgY2hhbm5lbCkgPT0gMCApClggCQkJCXsKWCAJCQkJCXJlcyA9IHNlbmRfdGV4dF9tZXNz
 YWdlX3RvX21lbWJlcihtZW1iZXIsIHRleHQpID09IDA7ClggCQkJCQlicmVhazsKWEBAIC0yODgx
 LDkgKzI5OTIsOSBAQApYIAkJCWRzdCA9IE5VTEw7ClggCQkJZm9yICggbWVtYmVyID0gY29uZi0+
 bWVtYmVybGlzdCA7IG1lbWJlciAhPSBOVUxMIDsgbWVtYmVyID0gbWVtYmVyLT5uZXh0ICkKWCAJ
 CQl7ClgtCQkJCWlmICggc3RyY21wKHNyY19jaGFubmVsLCBtZW1iZXItPmNoYW4tPm5hbWUpID09
 IDAgKQpYKwkJCQlpZiAoIHN0cmNtcChzcmNfY2hhbm5lbCwgbWVtYmVyLT5jaGFubmVsX25hbWUp
 ID09IDAgKQpYIAkJCQkJc3JjID0gbWVtYmVyOwpYLQkJCQlpZiAoIGRzdF9jaGFubmVsICE9IE5V
 TEwgJiYgc3RyY21wKGRzdF9jaGFubmVsLCBtZW1iZXItPmNoYW4tPm5hbWUpID09IDAgKQpYKwkJ
 CQlpZiAoIGRzdF9jaGFubmVsICE9IE5VTEwgJiYgc3RyY21wKGRzdF9jaGFubmVsLCBtZW1iZXIt
 PmNoYW5uZWxfbmFtZSkgPT0gMCApClggCQkJCQlkc3QgPSBtZW1iZXI7ClggCQkJfQpYIAkJCWlm
 ICggc3JjICE9IE5VTEwgKQpYQEAgLTI5NjksNyArMzA4MCw3IEBAClggCQkJIkNvbmZlcmVuY2VW
 aWRlb1N3aXRjaCIsClggCQkJIkNvbmZlcmVuY2VOYW1lOiAlc1xyXG5DaGFubmVsOiAlc1xyXG4i
 LApYIAkJCWNvbmYtPm5hbWUsClgtCQkJbmV3X21lbWJlciA9PSBOVUxMID8gImVtcHR5IiA6IG5l
 d19tZW1iZXItPmNoYW4tPm5hbWUKWCsJCQluZXdfbWVtYmVyID09IE5VTEwgPyAiZW1wdHkiIDog
 bmV3X21lbWJlci0+Y2hhbm5lbF9uYW1lClggCQkJKTsKWCAKWCAJCWNvbmYtPmN1cnJlbnRfdmlk
 ZW9fc291cmNlX2lkID0gbmV3X2lkOwpYQEAgLTMwNDMsOSArMzE1NCw2IEBAClggCQlzb3VuZC0+
 c3RvcHBlZCA9IDE7ClggCQlzb3VuZCA9IG5leHQ7ClggCX0KWC0KWC0JCW1lbWJlci0+bXV0ZWQg
 PSAwOwpYLQpYIAlpZiAoICEtLW1lbWJlci0+dXNlX2NvdW50ICYmIG1lbWJlci0+ZGVsZXRlX2Zs
 YWcgKQpYIAkJYXN0X2NvbmRfc2lnbmFsICggJm1lbWJlci0+ZGVsZXRlX3ZhciApIDsKWCAJYXN0
 X211dGV4X3VubG9jaygmbWVtYmVyLT5sb2NrKTsKWEBAIC0zMDY2LDcgKzMxNzQsNyBAQApYIAkJ
 cmV0dXJuIDA7ClggCX0gZWxzZSBpZiAoIW1lbWJlci0+bm9yZWN2X2F1ZGlvICYmICFtZW1iZXIt
 Pm1vaF9mbGFnKQpYIAl7ClgtCQltZW1iZXItPm1vaF9mbGFnID0gbWVtYmVyLT5tdXRlZCA9IDE7
 ClgrCQltZW1iZXItPm1vaF9mbGFnID0gMTsKWCAJfQpYIApYIAlpZiAoICEtLW1lbWJlci0+dXNl
 X2NvdW50ICYmIG1lbWJlci0+ZGVsZXRlX2ZsYWcgKQpYQEAgLTMwODksNyArMzE5Nyw3IEBAClgg
 CQlyZXR1cm4gMDsKWCAJfSBlbHNlIGlmICghbWVtYmVyLT5ub3JlY3ZfYXVkaW8gJiYgbWVtYmVy
 LT5tb2hfZmxhZykKWCAJewpYLQkJbWVtYmVyLT5tb2hfc3RvcCA9IDE7ClgrCQlhc3RfbW9oX3N0
 b3AobWVtYmVyLT5jaGFuKTsKWCAKWCAJCW1lbWJlci0+bW9oX2ZsYWcgPSBtZW1iZXItPm11dGVk
 ID0gMDsKWCAJCW1lbWJlci0+cmVhZHlfZm9yX291dGdvaW5nID0gMTsKWEBAIC0zMTkzLDcgKzMz
 MDEsNyBAQApYIAkJCQkiQ29uZmVyZW5jZVZpZGVvQnJvYWRjYXN0T2ZmIiwKWCAJCQkJIkNvbmZl
 cmVuY2VOYW1lOiAlc1xyXG5DaGFubmVsOiAlc1xyXG4iLApYIAkJCQljb25mLT5uYW1lLApYLQkJ
 CQltZW1iZXItPmNoYW4tPm5hbWUKWCsJCQkJbWVtYmVyLT5jaGFubmVsX25hbWUKWCAJCQkJKTsK
 WCAJfSBlbHNlIGlmICggY2ZyICE9IE5VTEwgKQpYIAl7ClhAQCAtMzIwNSw3ICszMzEzLDcgQEAK
 WCAJCQkJIkNvbmZlcmVuY2VWaWRlb0Jyb2FkY2FzdE9uIiwKWCAJCQkJIkNvbmZlcmVuY2VOYW1l
 OiAlc1xyXG5DaGFubmVsOiAlc1xyXG4iLApYIAkJCQljb25mLT5uYW1lLApYLQkJCQltZW1iZXIt
 PmNoYW4tPm5hbWUKWCsJCQkJbWVtYmVyLT5jaGFubmVsX25hbWUKWCAJCQkJKTsKWCAJCX0KWCAJ
 fQpYQEAgLTMyMjgsNyArMzMzNiw3IEBAClggCXJldHVybiBoOwpYIH0KWCAKWC1pbnQgY291bnRf
 ZXhlYyggc3RydWN0IGFzdF9jaGFubmVsKiBjaGFuLCB2b2lkKiBkYXRhICkKWCtpbnQgY291bnRf
 ZXhlYyggc3RydWN0IGFzdF9jaGFubmVsKiBjaGFuLCBjb25zdCBjaGFyKiBkYXRhICkKWCB7Clgg
 CWludCByZXMgPSAwOwpYIAlzdHJ1Y3QgYXN0X2NvbmZlcmVuY2UgKmNvbmY7ClgtLS0gLi9jb25m
 ZXJlbmNlLmgub3JpZwkyMDEwLTA3LTI4IDIwOjQ0OjQ5LjAwMDAwMDAwMCArMDAwMApYKysrIC4v
 Y29uZmVyZW5jZS5oCTIwMTAtMTEtMDEgMTc6MDc6NDQuMDAwMDAwMDAwICswMDAwClhAQCAtMzks
 MTIgKzM5LDYgQEAKWCAjaW5jbHVkZSAiY29tbW9uLmgiClggClggLy8KWC0vLyBkZWZpbmVzClgt
 Ly8KWC0KWC0jZGVmaW5lIENPTkZfTkFNRV9MRU4gODAKWC0KWC0vLwpYIC8vIHN0cnVjdCBkZWNs
 YXJhdGlvbnMKWCAvLwpYIApYQEAgLTU3LDcgKzUxLDcgQEAKWCB0eXBlZGVmIHN0cnVjdCBhc3Rf
 Y29uZmVyZW5jZV9zdGF0cwpYIHsKWCAJLy8gY29uZmVyZW5jZSBuYW1lICggY29waWVkIGZvciBl
 YXNlIG9mIHVzZSApClgtCWNoYXIgbmFtZVtDT05GX05BTUVfTEVOICsgMV0gOwpYKwljaGFyIG5h
 bWVbMTI4XSA7ClggClggCS8vIHR5cGUgb2YgY29ubmVjdGlvbgpYIAl1bnNpZ25lZCBzaG9ydCBw
 aG9uZSA7ClhAQCAtODEsNyArNzUsMTEgQEAKWCBzdHJ1Y3QgYXN0X2NvbmZlcmVuY2UKWCB7Clgg
 CS8vIGNvbmZlcmVuY2UgbmFtZQpYLQljaGFyIG5hbWVbQ09ORl9OQU1FX0xFTiArIDFdIDsKWCsJ
 Y2hhciBuYW1lWzEyOF0gOwpYKwpYKwkvLyByZWNvcmRpbmcKWCsJY2hhciAqcmVjZmlsZTsKWCsJ
 Y2hhciAqcmVjZm9ybWF0OwpYIApYIAkvLyBjb25mZXJlbmNlIHZvbHVtZQpYIAlpbnQgdm9sdW1l
 OwpYQEAgLTE1Nyw5ICsxNTUsOSBAQApYIApYIGludCBoYXNoKCBjb25zdCBjaGFyICpjaGFubmVs
 X25hbWUgKSA7ClggClgtaW50IGNvdW50X2V4ZWMoIHN0cnVjdCBhc3RfY2hhbm5lbCogY2hhbiwg
 dm9pZCogZGF0YSApIDsKWCtpbnQgY291bnRfZXhlYyggc3RydWN0IGFzdF9jaGFubmVsKiBjaGFu
 LCBjb25zdCBjaGFyICpkYXRhICkgOwpYIApYLXN0cnVjdCBhc3RfY29uZmVyZW5jZSogam9pbl9j
 b25mZXJlbmNlKCBzdHJ1Y3QgYXN0X2NvbmZfbWVtYmVyKiBtZW1iZXIsIGNoYXIqIGNvbmZfbmFt
 ZSwgY2hhciogbWF4X3VzZXJzX2ZsYWcgKSA7Clgrc3RydWN0IGFzdF9jb25mZXJlbmNlKiBqb2lu
 X2NvbmZlcmVuY2UoIHN0cnVjdCBhc3RfY29uZl9tZW1iZXIqIG1lbWJlciwgY29uc3QgY2hhciog
 cmVjZmlsZSwgY29uc3QgY2hhciogcmVjZm9ybWF0ICkgOwpYIApYIGludCBlbmRfY29uZmVyZW5j
 ZSggY29uc3QgY2hhciAqbmFtZSwgaW50IGhhbmd1cCApIDsKWCAKWEBAIC0xNzAsNyArMTY4LDcg
 QEAKWCBpbnQgcXVldWVfZnJhbWVfZm9yX3NwZWFrZXIoIHN0cnVjdCBhc3RfY29uZmVyZW5jZSog
 Y29uZiwgc3RydWN0IGFzdF9jb25mX21lbWJlciogbWVtYmVyLCBjb25mX2ZyYW1lKiBmcmFtZSAp
 IDsKWCBpbnQgcXVldWVfc2lsZW50X2ZyYW1lKCBzdHJ1Y3QgYXN0X2NvbmZlcmVuY2UqIGNvbmYs
 IHN0cnVjdCBhc3RfY29uZl9tZW1iZXIqIG1lbWJlciApIDsKWCAKWC12b2lkIHJlbW92ZV9tZW1i
 ZXIoIHN0cnVjdCBhc3RfY29uZl9tZW1iZXIqIG1lbWJlciwgc3RydWN0IGFzdF9jb25mZXJlbmNl
 KiBjb25mLCBjaGFyKiBjb25mX25hbWUgKSA7Clgrdm9pZCByZW1vdmVfbWVtYmVyKCBzdHJ1Y3Qg
 YXN0X2NvbmZfbWVtYmVyKiBtZW1iZXIsIHN0cnVjdCBhc3RfY29uZmVyZW5jZSogY29uZiApIDsK
 WCAKWCAjaWZkZWYJVEVYVApYIGludCBzZW5kX3RleHRfbWVzc2FnZV90b19tZW1iZXIoc3RydWN0
 IGFzdF9jb25mX21lbWJlciAqbWVtYmVyLCBjb25zdCBjaGFyICp0ZXh0KTsKWC0tLSAuL2ZyYW1l
 LmMub3JpZwkyMDEwLTA4LTE3IDE0OjU4OjA3LjAwMDAwMDAwMCArMDAwMApYKysrIC4vZnJhbWUu
 YwkyMDEwLTExLTAxIDE3OjA3OjQ0LjAwMDAwMDAwMCArMDAwMApYQEAgLTEwMiw0MyArMTAyLDI2
 IEBAClggCWZyYW1lc19pbi0+Y29udmVydGVkWyBmcmFtZXNfaW4tPm1lbWJlci0+cmVhZF9mb3Jt
 YXRfaW5kZXggXSA9IGFzdF9mcmR1cCggZnJhbWVzX2luLT5mciApIDsKWCAKWCAJLy8gY29udmVy
 dCBmcmFtZSB0byBzbGluZWFyLCBpZiB3ZSBoYXZlIGEgcGF0aApYLQlpZiAoIShmcmFtZXNfaW4t
 PmZyID0gY29udmVydF9mcmFtZV90b19zbGluZWFyKCBmcmFtZXNfaW4tPm1lbWJlci0+dG9fc2xp
 bmVhciwgZnJhbWVzX2luLT5mcikpKQpYLQl7ClgtCQlhc3RfbG9nKCBMT0dfV0FSTklORywgIm1p
 eF9zaW5nbGVfc3BlYWtlcjogdW5hYmxlIHRvIGNvbnZlcnQgZnJhbWUgdG8gc2xpbmVhclxuIiAp
 IDsKWC0JCXJldHVybiBmcmFtZXNfaW4gOwpYLQl9ClgrCWZyYW1lc19pbi0+ZnIgPSBjb252ZXJ0
 X2ZyYW1lX3RvX3NsaW5lYXIoClgrCQlmcmFtZXNfaW4tPm1lbWJlci0+dG9fc2xpbmVhciwKWCsJ
 CWZyYW1lc19pbi0+ZnIKWCsJKSA7ClggClggCWlmICggKGZyYW1lc19pbi0+bWVtYmVyLT50YWxr
 X3ZvbHVtZSAhPSAwKSB8fCAodm9sdW1lICE9IDApICkKWCAJewpYIAkJYXN0X2ZyYW1lX2FkanVz
 dF92b2x1bWUoZnJhbWVzX2luLT5mciwgZnJhbWVzX2luLT5tZW1iZXItPnRhbGtfdm9sdW1lICsg
 dm9sdW1lKTsKWCAJfQpYIApYLQlpZiAoIWZyYW1lc19pbi0+bWVtYmVyLT5zcHlfcGFydG5lcikK
 WCsJaWYgKCBmcmFtZXNfaW4tPm1lbWJlci0+c3B5ZWVfY2hhbm5lbF9uYW1lID09IE5VTEwgKQpY
 IAl7ClgtCQkvLyBzcGVha2VyIGlzIG5laXRoZXIgYSBzcHllZSBub3IgYSBzcHllcgpYKwkJLy8g
 c2V0IGZyYW1lJ3Mgc3B5IHBhcnRuZXIKWCsJCWZyYW1lc19pbi0+c3B5X3BhcnRuZXIgPSBmcmFt
 ZXNfaW4tPm1lbWJlci0+c3B5X3BhcnRuZXIgOwpYKwpYIAkJLy8gc2V0IHRoZSBmcmFtZSdzIG1l
 bWJlciB0byBudWxsICggaS5lLiBhbGwgbGlzdGVuZXJzICkKWCAJCWZyYW1lc19pbi0+bWVtYmVy
 ID0gTlVMTCA7ClggCX0KWCAJZWxzZQpYLQl7ClgtCQkvLyBzcGVha2VyIGlzIGVpdGhlciBhIHNw
 eWVlIG9yIGEgc3B5ZXIKWC0JCWlmICggZnJhbWVzX2luLT5tZW1iZXItPnNweWVlX2NoYW5uZWxf
 bmFtZSA9PSBOVUxMICkKWC0JCXsKWC0JCQljb25mX2ZyYW1lICpzcHlfZnJhbWUgPSBjb3B5X2Nv
 bmZfZnJhbWUoZnJhbWVzX2luKTsKWC0KWC0JCQlpZiAoIHNweV9mcmFtZSAhPSAwICkKWC0JCQl7
 ClgtCQkJCWZyYW1lc19pbi0+bmV4dCA9IHNweV9mcmFtZTsKWC0JCQkJc3B5X2ZyYW1lLT5wcmV2
 ID0gZnJhbWVzX2luOwpYLQpYLQkJCQlzcHlfZnJhbWUtPm1lbWJlciA9IGZyYW1lc19pbi0+bWVt
 YmVyLT5zcHlfcGFydG5lcjsKWC0JCQl9ClgtClgtCQkJZnJhbWVzX2luLT5tZW1iZXIgPSBOVUxM
 IDsKWC0JCX0KWC0JCWVsc2UKWC0JCQlmcmFtZXNfaW4tPm1lbWJlciA9IGZyYW1lc19pbi0+bWVt
 YmVyLT5zcHlfcGFydG5lciA7ClgtCX0KWCsJCWZyYW1lc19pbi0+bWVtYmVyID0gZnJhbWVzX2lu
 LT5tZW1iZXItPnNweV9wYXJ0bmVyIDsKWCAKWCAJcmV0dXJuIGZyYW1lc19pbiA7ClggfQpYQEAg
 LTI0NCwxOCArMjI3LDIxIEBAClggCQllbHNlClggCQl7ClggCQkJLy9ERUJVRygiY29udmVydGlu
 ZyBmcmFtZSB0byBzbGluZWFyLCBjaGFubmVsID0+ICVzXG4iLCBjZl9zcG9rZW4tPm1lbWJlci0+
 Y2hhbm5lbF9uYW1lKSA7ClgtCQkJaWYgKCAhKGNmX3Nwb2tlbi0+ZnIgPSBjb252ZXJ0X2ZyYW1l
 X3RvX3NsaW5lYXIoIGNmX3Nwb2tlbi0+bWVtYmVyLT50b19zbGluZWFyLCBjZl9zcG9rZW4tPmZy
 KSkgKQpYLQkJCXsKWC0JCQkJYXN0X2xvZyggTE9HX1dBUk5JTkcsICJtaXhfbXVsdGlwbGVfc3Bl
 YWtlcnM6IHVuYWJsZSB0byBjb252ZXJ0IGZyYW1lIHRvIHNsaW5lYXJcbiIgKSA7ClgtCQkJCWNv
 bnRpbnVlOwpYLQkJCX0KWCsJCQljZl9zcG9rZW4tPmZyID0gY29udmVydF9mcmFtZV90b19zbGlu
 ZWFyKApYKwkJCQljZl9zcG9rZW4tPm1lbWJlci0+dG9fc2xpbmVhciwKWCsJCQkJY2Zfc3Bva2Vu
 LT5mcgpYKwkJCSkgOwpYIApYIAkJCWlmICgoIGNmX3Nwb2tlbi0+bWVtYmVyLT50YWxrX3ZvbHVt
 ZSAhPSAwICkgfHwgKHZvbHVtZSAhPSAwKSkKWCAJCQl7ClggCQkJCWFzdF9mcmFtZV9hZGp1c3Rf
 dm9sdW1lKGNmX3Nwb2tlbi0+ZnIsIGNmX3Nwb2tlbi0+bWVtYmVyLT50YWxrX3ZvbHVtZSArIHZv
 bHVtZSk7ClggCQkJfQpYIApYLQkJCWlmICggY2Zfc3Bva2VuLT5tZW1iZXItPnNweWVlX2NoYW5u
 ZWxfbmFtZSA9PSBOVUxMICkKWCsJCQlpZiAoIGNmX3Nwb2tlbi0+ZnIgPT0gTlVMTCApClgrCQkJ
 ewpYKwkJCQlhc3RfbG9nKCBMT0dfV0FSTklORywgInVuYWJsZSB0byBjb252ZXJ0IGZyYW1lIHRv
 IHNsaW5lYXJcbiIgKSA7ClgrCQkJfQpYKwkJCWVsc2UgaWYgKCBjZl9zcG9rZW4tPm1lbWJlci0+
 c3B5ZWVfY2hhbm5lbF9uYW1lID09IE5VTEwgKQpYIAkJCXsKWCAJCQkJLy8gY3JlYXRlIG5ldyBj
 b25mIGZyYW1lIHdpdGggbGFzdCBmcmFtZSBhcyAnbmV4dCcKWCAJCQkJY2Zfc2VuZEZyYW1lcyA9
 IGNyZWF0ZV9jb25mX2ZyYW1lKCBjZl9zcG9rZW4tPm1lbWJlciwgY2Zfc2VuZEZyYW1lcywgTlVM
 TCApIDsKWEBAIC0zOTcsMTEgKzM4Myw3IEBAClggCS8vIHdlIGRvbid0IG5lZWQgdG8gZHVwbGlj
 YXRlIHRoaXMgZnJhbWUgc2luY2UKWCAJLy8gdGhlIG5vcm1hbCB0cmFuc2xhdGlvbiB3b3VsZCBm
 cmVlIGl0IGFueXdheSwgc28KWCAJLy8gd2UnbGwganVzdCBwcmV0ZW5kIHdlIGZyZWUnZCBhbmQg
 bWFsbG9jJ2QgYSBuZXcgb25lLgpYLSNpZm5kZWYJQUNfVVNFX0c3MjIKWC0JaWYgKCBmci0+c3Vi
 Y2xhc3MgPT0gQVNUX0ZPUk1BVF9TTElORUFSICkKWC0jZWxzZQpYLQlpZiAoIGZyLT5zdWJjbGFz
 cyA9PSBBU1RfRk9STUFUX1NMSU5FQVIxNiApClgtI2VuZGlmClgrCWlmICggQVNUX0ZSQU1FX1NV
 QkNMQVNTX0NPREVDKGZyKSA9PSBBU1RfQ09ORl9GT1JNQVQgKQpYIAkJcmV0dXJuIGZyIDsKWCAK
 WCAJLy8gY2hlY2sgZm9yIG51bGwgdHJhbnNsYXRvciAoIGFmdGVyIHdlJ3ZlIGNoZWNrZWQgdGhh
 dCB3ZSBuZWVkIHRvIHRyYW5zbGF0ZSApClhAQCAtNDMyLDExICs0MTQsNyBAQApYIAl9ClggClgg
 CS8vIGlmIHRoZSBmcmFtZSBpcyBub3Qgc2xpbmVhciwgcmV0dXJuIGFuIGVycm9yClgtI2lmbmRl
 ZglBQ19VU0VfRzcyMgpYLQlpZiAoIGZyLT5zdWJjbGFzcyAhPSBBU1RfRk9STUFUX1NMSU5FQVIg
 KQpYLSNlbHNlClgtCWlmICggZnItPnN1YmNsYXNzICE9IEFTVF9GT1JNQVRfU0xJTkVBUjE2ICkK
 WC0jZW5kaWYKWCsJaWYgKCBBU1RfRlJBTUVfU1VCQ0xBU1NfQ09ERUMoZnIpICE9IEFTVF9DT05G
 X0ZPUk1BVCApClggCXsKWCAJCWFzdF9sb2coIExPR19FUlJPUiwgInVuYWJsZSB0byB0cmFuc2xh
 dGUgbm9uLXNsaW5lYXIgZnJhbWVcbiIgKSA7ClggCQlyZXR1cm4gTlVMTCA7ClhAQCAtNTQwLDYg
 KzUxOCw4IEBAClggCWNmLT5tZW1iZXIgPSBtZW1iZXIgOwpYIAkvLyBjZi0+cHJpb3JpdHkgPSAw
 IDsKWCAKWCsJY2YtPnNweV9wYXJ0bmVyID0gTlVMTCA7ClgrClggCWNmLT5wcmV2ID0gTlVMTCA7
 ClggCWNmLT5uZXh0ID0gbmV4dCA7ClggClhAQCAtNjQ2LDExICs2MjYsNyBAQApYIAl9ClggClgg
 CWYtPmZyYW1ldHlwZSA9IEFTVF9GUkFNRV9WT0lDRSA7ClgtI2lmbmRlZglBQ19VU0VfRzcyMgpY
 LQlmLT5zdWJjbGFzcyA9IEFTVF9GT1JNQVRfU0xJTkVBUiA7ClgtI2Vsc2UKWC0JZi0+c3ViY2xh
 c3MgPSBBU1RfRk9STUFUX1NMSU5FQVIxNiA7ClgtI2VuZGlmClgrCUFTVF9GUkFNRV9TVUJDTEFT
 U19DT0RFQyhmKSA9IEFTVF9DT05GX0ZPUk1BVCA7ClggCWYtPnNhbXBsZXMgPSBBU1RfQ09ORl9C
 TE9DS19TQU1QTEVTIDsKWCAJZi0+b2Zmc2V0ID0gQVNUX0ZSSUVORExZX09GRlNFVCA7ClggCWYt
 Pm1hbGxvY2QgPSBBU1RfTUFMTE9DRF9IRFIgfCBBU1RfTUFMTE9DRF9EQVRBIDsKWC0tLSAuL21l
 bWJlci5jLm9yaWcJMjAxMC0wOC0xNyAxODoxNjozNS4wMDAwMDAwMDAgKzAwMDAKWCsrKyAuL21l
 bWJlci5jCTIwMTAtMTEtMDEgMTc6MDc6NDQuMDAwMDAwMDAwICswMDAwClhAQCAtODcsNiArODcs
 NzggQEAKWCAJCQlhc3RfbXV0ZXhfdW5sb2NrKCAmbWVtYmVyLT5sb2NrICkgOwpYIAkJfQpYICNl
 bmRpZgpYKwpYKwkJaWYgKG1lbWJlci0+ZHRtZl9zdGFyX21lbnUpClgrCQl7ClgrCQkJYXN0X211
 dGV4X2xvY2soICZtZW1iZXItPmxvY2sgKSA7ClgrCQkJaWYgKEFTVF9GUkFNRV9TVUJDTEFTU19J
 TlQoZikgPT0gJyonKQpYKwkJCXsKWCsJCQkJbWVtYmVyLT5zdGFyX3ByZXNzZWQgPSAxOwpYKwkJ
 CQlERUJVRyggInN0YXIgd2FzIHByZXNzZWRcbiIgKTsKWCsJCQl9ClgrCQkJZWxzZQpYKwkJCXsK
 WCsJCQkJLy8gcmVzZXQgdGhpcyBpbW1lZGlhdGVseSBzbyB0aGF0IGZ1bmN0aW9ucyB0aGF0IGFs
 bG93IHJlcGVhdCBwcmVzc2VzICg0LCA2LCBldGMpIGNhbiByZXNldCBpdCB0byBzdGFyX3ByZXNz
 ZWQgPSAxClgrCQkJCXNob3J0IG1lbnUgPSBtZW1iZXItPnN0YXJfcHJlc3NlZDsKWCsJCQkJbWVt
 YmVyLT5zdGFyX3ByZXNzZWQgPSAwOwpYKwkJCQlpZiAobWVudSkKWCsJCQkJewpYKwkJCQkJc3dp
 dGNoIChBU1RfRlJBTUVfU1VCQ0xBU1NfSU5UKGYpKSB7ClgrCQkJCQljYXNlICcxJyA6ClgrCQkJ
 CQkJaWYgKG1lbWJlci0+bXV0ZV9hdWRpbyA9PSAwKQpYKwkJCQkJCXsKWCsJCQkJCQkJREVCVUco
 ICJtdXRpbmcgbWVtYmVyXG4iICk7ClgrCQkJCQkJCW1lbWJlci0+bXV0ZV9hdWRpbyA9IDE7Clgr
 CQkJCQkJCWlmIChtZW1iZXItPm1vaF9mbGFnKQpYKwkJCQkJCQkJYXN0X21vaF9zdG9wKG1lbWJl
 ci0+Y2hhbik7ClgrCQkJCQkJCWlmICghYXN0X3N0cmVhbWZpbGUobWVtYmVyLT5jaGFuLCAiY29u
 Zi1tdXRlZCIsIG1lbWJlci0+Y2hhbi0+bGFuZ3VhZ2UpKQpYKwkJCQkJCQkJYXN0X3dhaXRzdHJl
 YW0obWVtYmVyLT5jaGFuLCAiIik7ClgrCQkJCQkJCWlmIChtZW1iZXItPm1vaF9mbGFnKQpYKwkJ
 CQkJCQkJYXN0X21vaF9zdGFydChtZW1iZXItPmNoYW4sIE5VTEwsIE5VTEwpOwpYKwkJCQkJCX0K
 WCsJCQkJCQllbHNlIGlmIChtZW1iZXItPm11dGVfYXVkaW8gPT0gMSkKWCsJCQkJCQl7ClgrCQkJ
 CQkJCURFQlVHKCAidW5tdXRpbmcgbWVtYmVyXG4iICk7ClgrCQkJCQkJCW1lbWJlci0+bXV0ZV9h
 dWRpbyA9IDA7ClgrCQkJCQkJCWlmIChtZW1iZXItPm1vaF9mbGFnKQpYKwkJCQkJCQkJYXN0X21v
 aF9zdG9wKG1lbWJlci0+Y2hhbik7ClgrCQkJCQkJCWlmICghYXN0X3N0cmVhbWZpbGUobWVtYmVy
 LT5jaGFuLCAiY29uZi11bm11dGVkIiwgbWVtYmVyLT5jaGFuLT5sYW5ndWFnZSkpClgrCQkJCQkJ
 CQlhc3Rfd2FpdHN0cmVhbShtZW1iZXItPmNoYW4sICIiKTsKWCsJCQkJCQkJaWYgKG1lbWJlci0+
 bW9oX2ZsYWcpClgrCQkJCQkJCQlhc3RfbW9oX3N0YXJ0KG1lbWJlci0+Y2hhbiwgTlVMTCwgTlVM
 TCk7ClgrCQkJCQkJfQpYKwkJCQkJCWJyZWFrOwpYKwkJCQkJY2FzZSAnMicgOgpYKwkJCQkJCURF
 QlVHKCAibm90IGltcGxlbWVudGVkOiBsb2NrL3VubG9jayBjb25mZXJlbmNlXG4iICk7ClgrCQkJ
 CQkJYnJlYWs7ClgrCQkJCQljYXNlICczJyA6ClgrCQkJCQkJREVCVUcoICJub3QgaW1wbGVtZW50
 ZWQ6IGVqZWN0IGxhc3QgdXNlciB0aGF0IGpvaW5lZCBjb25mZXJlbmNlXG4iICk7ClgrCQkJCQkJ
 YnJlYWs7ClgrCQkJCQljYXNlICc0JyA6ClgrCQkJCQkJREVCVUcoICJub3QgaW1wbGVtZW50ZWQ6
 IGxvd2VyIHZvbHVtZVxuIiApOwpYKwkJCQkJCWJyZWFrOwpYKwkJCQkJY2FzZSAnNicgOgpYKwkJ
 CQkJCURFQlVHKCAibm90IGltcGxlbWVudGVkOiByYWlzZSB2b2x1bWVcbiIgKTsKWCsJCQkJCQli
 cmVhazsKWCsJCQkJCWNhc2UgJzgnIDoKWCsJCQkJCQkvLyB0aGlzIGlzIGEgbm8tb3AgLSBhbGxv
 d3Mgc3Rhcl9wcmVzc2VkIHRvIGJlIHJlc2V0IHRvIHplcm8gdG8gc3RvcCB2b2x1bWUgYWRqdXN0
 bWVudApYKwkJCQkJCWJyZWFrOwpYKwkJCQkJY2FzZSAnNycgOgpYKwkJCQkJCW1lbWJlci0+bGlz
 dGVuX3ZvbHVtZS0tOwpYKwkJCQkJCW1lbWJlci0+c3Rhcl9wcmVzc2VkID0gMTsKWCsJCQkJCQlE
 RUJVRyggImxvd2VyIG15IHZvbHVtZSAobm93OiAlZClcbiIsIG1lbWJlci0+bGlzdGVuX3ZvbHVt
 ZSApOwpYKwkJCQkJCWJyZWFrOwpYKwkJCQkJY2FzZSAnOScgOgpYKwkJCQkJCW1lbWJlci0+bGlz
 dGVuX3ZvbHVtZSsrOwpYKwkJCQkJCW1lbWJlci0+c3Rhcl9wcmVzc2VkID0gMTsKWCsJCQkJCQlE
 RUJVRyggInJhaXNlIG15IHZvbHVtZSAobm93OiAlZClcbiIsIG1lbWJlci0+bGlzdGVuX3ZvbHVt
 ZSApOwpYKwkJCQkJCWJyZWFrOwpYKwkJCQkJfQpYKwkJCQl9ClgrCQkJfQpYKwkJCWFzdF9tdXRl
 eF91bmxvY2soICZtZW1iZXItPmxvY2sgKSA7ClgrCQl9ClgrClggCQlpZiAobWVtYmVyLT5kdG1m
 X3JlbGF5KQpYIAkJewpYIAkJCS8vIG91dHB1dCB0byBtYW5hZ2VyLi4uClhAQCAtMTA1LDExICsx
 NzcsMTEgQEAKWCAJCQkJIk11dGU6ICVkXHJcbiIsClggCQkJCWNvbmYtPm5hbWUsClggCQkJCW1l
 bWJlci0+dHlwZSwKWC0JCQkJbWVtYmVyLT5jaGFuLT51bmlxdWVpZCwKWC0JCQkJbWVtYmVyLT5j
 aGFuLT5uYW1lLApYLQkJCQltZW1iZXItPmNoYW4tPmNpZC5jaWRfbnVtID8gbWVtYmVyLT5jaGFu
 LT5jaWQuY2lkX251bSA6ICJ1bmtub3duIiwKWC0JCQkJbWVtYmVyLT5jaGFuLT5jaWQuY2lkX25h
 bWUgPyBtZW1iZXItPmNoYW4tPmNpZC5jaWRfbmFtZSA6ICJ1bmtub3duIiwKWC0JCQkJZi0+c3Vi
 Y2xhc3MsClgrCQkJCW1lbWJlci0+dW5pcXVlaWQsClgrCQkJCW1lbWJlci0+Y2hhbm5lbF9uYW1l
 LApYKwkJCQlhc3RfY2hhbm5lbF9jYWxsZXJpZF9udW1iZXIobWVtYmVyLT5jaGFuKSwKWCsJCQkJ
 YXN0X2NoYW5uZWxfY2FsbGVyaWRfbmFtZShtZW1iZXItPmNoYW4pLApYKwkJCQlBU1RfRlJBTUVf
 U1VCQ0xBU1NfSU5UKGYpLApYIAkJCQljb25mLT5tZW1iZXJjb3VudCwKWCAJCQkJbWVtYmVyLT5m
 bGFncywKWCAJCQkJbWVtYmVyLT5tdXRlX2F1ZGlvClhAQCAtMTc4LDcgKzI1MCw4IEBAClggI2Vu
 ZGlmClggCWlmICgoZi0+ZnJhbWV0eXBlID09IEFTVF9GUkFNRV9WT0lDRQpYIAkJCSYmIChtZW1i
 ZXItPm11dGVfYXVkaW8gPT0gMQpYLQkJCQl8fCBtZW1iZXItPm11dGVkID09IDEpClgrCQkJCXx8
 IChtZW1iZXItPnNvdW5kcSAhPSBOVUxMICYmIG1lbWJlci0+bXV0ZWQgPT0gMSkKWCsJCQkJKQpY
 IAkJCSkKWCAjaWZkZWYJVklERU8KWCAJCXx8IChmLT5mcmFtZXR5cGUgPT0gQVNUX0ZSQU1FX1ZJ
 REVPClhAQCAtMjA2LDExICsyNzksNyBAQApYIAkJLy8KWCAJCWlmICgKWCAJCQltZW1iZXItPmRz
 cCAhPSBOVUxMClgtI2lmbmRlZglBQ19VU0VfRzcyMgpYLQkJCSYmIGYtPnN1YmNsYXNzID09IEFT
 VF9GT1JNQVRfU0xJTkVBUgpYLSNlbHNlClgtCQkJJiYgZi0+c3ViY2xhc3MgPT0gQVNUX0ZPUk1B
 VF9TTElORUFSMTYKWC0jZW5kaWYKWCsJCQkmJiBBU1RfRlJBTUVfU1VCQ0xBU1NfQ09ERUMoZikg
 PT0gQVNUX0NPTkZfRk9STUFUClggCQkJJiYgZi0+ZGF0YWxlbiA9PSBBU1RfQ09ORl9GUkFNRV9E
 QVRBX1NJWkUKWCAJCQkpClggCQl7ClhAQCAtMjI5LDE4ICsyOTgsNyBAQApYIAkJCQkJLy9ERUJV
 RygiaWdub3JlX3NwZWV4X2NvdW50ID0+ICVkXG4iLCBtZW1iZXItPmlnbm9yZV9zcGVleF9jb3Vu
 dCkgOwpYIApYIAkJCQkJLy8gc2tpcCBzcGVleF9wcmVwcm9jZXNzKCksIGFuZCBkZWNyZW1lbnQg
 Y291bnRlcgpYLQkJCQkJaWYgKCEtLW1lbWJlci0+aWdub3JlX3NwZWV4X2NvdW50ICkgewpYLQkJ
 CQkJCW1hbmFnZXJfZXZlbnQoClgtCQkJCQkJCUVWRU5UX0ZMQUdfQ0FMTCwKWC0JCQkJCQkJIkNv
 bmZlcmVuY2VTdGF0ZSIsClgtCQkJCQkJCSJDaGFubmVsOiAlc1xyXG4iClgtCQkJCQkJCSJGbGFn
 czogJXNcclxuIgpYLQkJCQkJCQkiU3RhdGU6ICVzXHJcbiIsClgtCQkJCQkJCW1lbWJlci0+Y2hh
 bi0+bmFtZSwKWC0JCQkJCQkJbWVtYmVyLT5mbGFncywKWC0JCQkJCQkJInNpbGVudCIKWC0JCQkJ
 CQkpIDsKWC0JCQkJCX0KWCsJCQkJCS0tbWVtYmVyLT5pZ25vcmVfc3BlZXhfY291bnQgOwpYIAkJ
 CQl9ClggCQkJCWVsc2UKWCAJCQkJewpYQEAgLTI1MCwxOCArMzA4LDYgQEAKWCAJCQl9ClggCQkJ
 ZWxzZQpYIAkJCXsKWC0JCQkJaWYgKCFtZW1iZXItPmlnbm9yZV9zcGVleF9jb3VudCkgewpYLQkJ
 CQkJbWFuYWdlcl9ldmVudCgKWC0JCQkJCQlFVkVOVF9GTEFHX0NBTEwsClgtCQkJCQkJIkNvbmZl
 cmVuY2VTdGF0ZSIsClgtCQkJCQkJIkNoYW5uZWw6ICVzXHJcbiIKWC0JCQkJCQkiRmxhZ3M6ICVz
 XHJcbiIKWC0JCQkJCQkiU3RhdGU6ICVzXHJcbiIsClgtCQkJCQkJbWVtYmVyLT5jaGFuLT5uYW1l
 LApYLQkJCQkJCW1lbWJlci0+ZmxhZ3MsClgtCQkJCQkJInNwZWFraW5nIgpYLQkJCQkJKSA7Clgt
 CQkJCX0KWCAJCQkJLy8gdm9pY2UgZGV0ZWN0ZWQsIHJlc2V0IHNraXAgY291bnQKWCAJCQkJbWVt
 YmVyLT5pZ25vcmVfc3BlZXhfY291bnQgPSBBU1RfQ09ORl9TS0lQX1NQRUVYX1BSRVBST0NFU1Mg
 OwpYIAkJCX0KWEBAIC0yODgsNyArMzM0LDcgQEAKWCAjZW5kaWYKWCAJZWxzZSBpZiAoClggCQlm
 LT5mcmFtZXR5cGUgPT0gQVNUX0ZSQU1FX0NPTlRST0wKWC0JCSYmIGYtPnN1YmNsYXNzID09IEFT
 VF9DT05UUk9MX0hBTkdVUApYKwkJJiYgQVNUX0ZSQU1FX1NVQkNMQVNTX0lOVChmKSA9PSBBU1Rf
 Q09OVFJPTF9IQU5HVVAKWCAJCSkKWCAJewpYIAkJLy8gaGFuZ3VwIHJlY2VpdmVkClhAQCAtMzI4
 LDcgKzM3NCw3IEBAClggCQkJICAgICAgICAgICAgICAiQ29uZmVyZW5jZUNhbWVyYURpc2FibGVk
 IiwKWCAJCQkgICAgICAgICAgICAgICJDb25mZXJlbmNlTmFtZTogJXNcclxuQ2hhbm5lbDogJXNc
 clxuIiwKWCAJCQkgICAgICAgICAgICAgIGNvbmYtPm5hbWUsClgtCQkJICAgICAgICAgICAgICBt
 ZW1iZXItPmNoYW4tPm5hbWUpOwpYKwkJCSAgICAgICAgICAgICAgbWVtYmVyLT5jaGFubmVsX25h
 bWUpOwpYIAkJCW1lbWJlci0+bm9fY2FtZXJhID0gMTsKWCAJCQlhc3RfbXV0ZXhfdW5sb2NrKCZt
 ZW1iZXItPmxvY2spOwpYIAkJfSBlbHNlIGlmICggc3RybmNtcChDQVNUREFUQTJQVFIoZi0+ZGF0
 YSwgY2hhciksIEFTVF9DT05GX0NPTlRST0xfQ0FNRVJBX0VOQUJMRUQsIHN0cmxlbihBU1RfQ09O
 Rl9DT05UUk9MX0NBTUVSQV9FTkFCTEVEKSkgPT0gMCApClhAQCAtMzM4LDcgKzM4NCw3IEBAClgg
 CQkJICAgICAgICAgICAgICAiQ29uZmVyZW5jZUNhbWVyYUVuYWJsZWQiLApYIAkJCSAgICAgICAg
 ICAgICAgIkNvbmZlcmVuY2VOYW1lOiAlc1xyXG5DaGFubmVsOiAlc1xyXG4iLApYIAkJCSAgICAg
 ICAgICAgICAgY29uZi0+bmFtZSwKWC0JCQkgICAgICAgICAgICAgIG1lbWJlci0+Y2hhbi0+bmFt
 ZSk7ClgrCQkJICAgICAgICAgICAgICBtZW1iZXItPmNoYW5uZWxfbmFtZSk7ClggCQkJbWVtYmVy
 LT5ub19jYW1lcmEgPSAwOwpYIAkJCWFzdF9tdXRleF91bmxvY2soJm1lbWJlci0+bG9jayk7Clgg
 CQl9IGVsc2UgaWYgKCBzdHJuY21wKENBU1REQVRBMlBUUihmLT5kYXRhLCBjaGFyKSwgQVNUX0NP
 TkZfQ09OVFJPTF9TVE9QX1ZJREVPX1RSQU5TTUlULCBzdHJsZW4oQVNUX0NPTkZfQ09OVFJPTF9T
 VE9QX1ZJREVPX1RSQU5TTUlUKSkgPT0gMCApClhAQCAtMzQ4LDcgKzM5NCw3IEBAClggCQkJICAg
 ICAgICAgICAgICAiQ29uZmVyZW5jZVN0b3BWaWRlb1RyYW5zbWl0IiwKWCAJCQkgICAgICAgICAg
 ICAgICJDb25mZXJlbmNlTmFtZTogJXNcclxuQ2hhbm5lbDogJXNcclxuIiwKWCAJCQkgICAgICAg
 ICAgICAgIGNvbmYtPm5hbWUsClgtCQkJICAgICAgICAgICAgICBtZW1iZXItPmNoYW4tPm5hbWUp
 OwpYKwkJCSAgICAgICAgICAgICAgbWVtYmVyLT5jaGFubmVsX25hbWUpOwpYIAkJCW1lbWJlci0+
 bm9yZWN2X3ZpZGVvID0gMTsKWCAJCQlhc3RfbXV0ZXhfdW5sb2NrKCZtZW1iZXItPmxvY2spOwpY
 IAkJfSBlbHNlIGlmICggc3RybmNtcChDQVNUREFUQTJQVFIoZi0+ZGF0YSwgY2hhciksIEFTVF9D
 T05GX0NPTlRST0xfU1RBUlRfVklERU9fVFJBTlNNSVQsIHN0cmxlbihBU1RfQ09ORl9DT05UUk9M
 X1NUQVJUX1ZJREVPX1RSQU5TTUlUKSkgPT0gMCApClhAQCAtMzU4LDcgKzQwNCw3IEBAClggCQkJ
 ICAgICAgICAgICAgICAiQ29uZmVyZW5jZVN0YXJ0VmlkZW9UcmFuc21pdCIsClggCQkJICAgICAg
 ICAgICAgICAiQ29uZmVyZW5jZU5hbWU6ICVzXHJcbkNoYW5uZWw6ICVzXHJcbiIsClggCQkJICAg
 ICAgICAgICAgICBjb25mLT5uYW1lLApYLQkJCSAgICAgICAgICAgICAgbWVtYmVyLT5jaGFuLT5u
 YW1lKTsKWCsJCQkgICAgICAgICAgICAgIG1lbWJlci0+Y2hhbm5lbF9uYW1lKTsKWCAJCQltZW1i
 ZXItPm5vcmVjdl92aWRlbyA9IDA7ClggCQkJYXN0X211dGV4X3VubG9jaygmbWVtYmVyLT5sb2Nr
 KTsKWCAJCX0KWEBAIC00MDgsOSArNDU0LDEzIEBAClggCQltYW5hZ2VyX2V2ZW50KApYIAkJCUVW
 RU5UX0ZMQUdfQ0FMTCwKWCAJCQkiQ29uZmVyZW5jZVNvdW5kQ29tcGxldGUiLApYKwkJCSJDb25m
 ZXJlbmNlTmFtZTogJXNcclxuIgpYKwkJCSJNZW1iZXJJZDogJWRcclxuIgpYIAkJCSJDaGFubmVs
 OiAlc1xyXG4iClggCQkJIlNvdW5kOiAlc1xyXG4iLApYLQkJCW1lbWJlci0+Y2hhbi0+bmFtZSwK
 WCsJCQltZW1iZXItPmNvbmZfbmFtZSwKWCsJCQltZW1iZXItPmlkLApYKwkJCW1lbWJlci0+Y2hh
 bm5lbF9uYW1lLApYIAkJCXRvYm9vdC0+bmFtZQpYIAkJKTsKWCAJfQpYQEAgLTQyMSwxNCArNDcx
 LDEyIEBAClggCWZyZWUodG9ib290KTsKWCAJaWYobWVtYmVyLT5zb3VuZHEpIGdvdG8gYWdhaW47
 ClggClgtCW1lbWJlci0+bXV0ZWQgPSAwOwpYLQpYIAlhc3RfbXV0ZXhfdW5sb2NrKCZtZW1iZXIt
 PmxvY2spOwpYIApYIAkvLyBpZiB3ZSBnZXQgaGVyZSwgd2UndmUgZ290dGVuIHRvIHRoZSBlbmQg
 b2YgdGhlIHF1ZXVlOyByZXNldCB3cml0ZSBmb3JtYXQKWCAJaWYgKCBhc3Rfc2V0X3dyaXRlX2Zv
 cm1hdCggbWVtYmVyLT5jaGFuLCBtZW1iZXItPndyaXRlX2Zvcm1hdCApIDwgMCApClggCXsKWC0J
 CWFzdF9sb2coIExPR19FUlJPUiwgInVuYWJsZSB0byBzZXQgd3JpdGUgZm9ybWF0IHRvICVkXG4i
 LApYKwkJYXN0X2xvZyggTE9HX0VSUk9SLCAidW5hYmxlIHRvIHNldCB3cml0ZSBmb3JtYXQgdG8g
 IiBBU1RfRk1UX0ZPUk1BVF9UICJcbiIsClggCQkgICAgbWVtYmVyLT53cml0ZV9mb3JtYXQgKSA7
 ClggCX0KWCAgICAgfSBlbHNlIHsKWEBAIC00NzQsNiArNTIyLDcgQEAKWCAJCQl9ClggCQl9IGVs
 c2UgewpYIAkJCWlmIChtZW1iZXItPm1vaF9mbGFnKSB7ClgrCQkJCW1lbWJlci0+bXV0ZWQgPSAx
 OwpYIAkJCQltZW1iZXItPnJlYWR5X2Zvcl9vdXRnb2luZyA9IDA7ClggCQkJCWRlbGV0ZV9jb25m
 X2ZyYW1lKCBjZiApIDsKWCAJCQkJYXN0X21vaF9zdGFydChtZW1iZXItPmNoYW4sIE5VTEwsIE5V
 TEwpOwpYQEAgLTUxMiw3ICs1NjEsNyBAQApYIAkJaWYgKCBhc3Rfd3JpdGUoIG1lbWJlci0+Y2hh
 biwgZiApICE9IDAgKQpYIAkJewpYIAkJCS8vIGxvZyAnZHJvcHBlZCcgb3V0Z29pbmcgZnJhbWUK
 WC0JCQlERUJVRygidW5hYmxlIHRvIHdyaXRlIHZvaWNlIGZyYW1lIHRvIGNoYW5uZWwsIGNoYW5u
 ZWwgPT4gJXNcbiIsIG1lbWJlci0+Y2hhbi0+bmFtZSkgOwpYKwkJCURFQlVHKCJ1bmFibGUgdG8g
 d3JpdGUgdm9pY2UgZnJhbWUgdG8gY2hhbm5lbCwgY2hhbm5lbCA9PiAlc1xuIiwgbWVtYmVyLT5j
 aGFubmVsX25hbWUpIDsKWCAKWCAJCQkvLyBhY2NvdW50aW5nOiBjb3VudCBkcm9wcGVkIG91dGdv
 aW5nIGZyYW1lcwpYIAkJCW1lbWJlci0+ZnJhbWVzX291dF9kcm9wcGVkKysgOwpYQEAgLTU0Nyw3
 ICs1OTYsNyBAQApYIAkJaWYgKCBhc3Rfd3JpdGVfdmlkZW8oIG1lbWJlci0+Y2hhbiwgZiApICE9
 IDEgKQpYIAkJewpYIAkJCS8vIGxvZyAnZHJvcHBlZCcgb3V0Z29pbmcgZnJhbWUKWC0JCQlERUJV
 RygidW5hYmxlIHRvIHdyaXRlIHZpZGVvIGZyYW1lIHRvIGNoYW5uZWwsIGNoYW5uZWwgPT4gJXNc
 biIsIG1lbWJlci0+Y2hhbi0+bmFtZSkgOwpYKwkJCURFQlVHKCJ1bmFibGUgdG8gd3JpdGUgdmlk
 ZW8gZnJhbWUgdG8gY2hhbm5lbCwgY2hhbm5lbCA9PiAlc1xuIiwgbWVtYmVyLT5jaGFubmVsX25h
 bWUpIDsKWCAKWCAJCQkvLyBhY2NvdW50aW5nOiBjb3VudCBkcm9wcGVkIG91dGdvaW5nIGZyYW1l
 cwpYIAkJCW1lbWJlci0+dmlkZW9fZnJhbWVzX291dF9kcm9wcGVkKysgOwpYQEAgLTU3NSw3ICs2
 MjQsNyBAQApYIAkJaWYgKCBhc3Rfd3JpdGUoIG1lbWJlci0+Y2hhbiwgY2YtPmZyICkgIT0gMCAp
 ClggCQl7ClggCQkJLy8gbG9nICdkcm9wcGVkJyBvdXRnb2luZyBmcmFtZQpYLQkJCURFQlVHKCJ1
 bmFibGUgdG8gd3JpdGUgZHRtZiBmcmFtZSB0byBjaGFubmVsLCBjaGFubmVsID0+ICVzXG4iLCBt
 ZW1iZXItPmNoYW4tPm5hbWUpIDsKWCsJCQlERUJVRygidW5hYmxlIHRvIHdyaXRlIGR0bWYgZnJh
 bWUgdG8gY2hhbm5lbCwgY2hhbm5lbCA9PiAlc1xuIiwgbWVtYmVyLT5jaGFubmVsX25hbWUpIDsK
 WCAKWCAJCQkvLyBhY2NvdW50aW5nOiBjb3VudCBkcm9wcGVkIG91dGdvaW5nIGZyYW1lcwpYIAkJ
 CW1lbWJlci0+ZHRtZl9mcmFtZXNfb3V0X2Ryb3BwZWQrKyA7ClhAQCAtNjAzLDcgKzY1Miw3IEBA
 ClggCQlpZiAoIGFzdF93cml0ZSggbWVtYmVyLT5jaGFuLCBjZi0+ZnIgKSAhPSAwICkKWCAJCXsK
 WCAJCQkvLyBsb2cgJ2Ryb3BwZWQnIG91dGdvaW5nIGZyYW1lClgtCQkJREVCVUcoInVuYWJsZSB0
 byB3cml0ZSB0ZXh0IGZyYW1lIHRvIGNoYW5uZWwsIGNoYW5uZWwgPT4gJXNcbiIsIG1lbWJlci0+
 Y2hhbi0+bmFtZSkgOwpYKwkJCURFQlVHKCJ1bmFibGUgdG8gd3JpdGUgdGV4dCBmcmFtZSB0byBj
 aGFubmVsLCBjaGFubmVsID0+ICVzXG4iLCBtZW1iZXItPmNoYW5uZWxfbmFtZSkgOwpYIApYIAkJ
 CS8vIGFjY291bnRpbmc6IGNvdW50IGRyb3BwZWQgb3V0Z29pbmcgZnJhbWVzClggCQkJbWVtYmVy
 LT50ZXh0X2ZyYW1lc19vdXRfZHJvcHBlZCsrIDsKWEBAIC02MjUsMTQgKzY3NCwxNSBAQApYIC8v
 IG1haW4gbWVtYmVyIHRocmVhZCBmdW5jdGlvbgpYIC8vClggClgtaW50IG1lbWJlcl9leGVjKCBz
 dHJ1Y3QgYXN0X2NoYW5uZWwqIGNoYW4sIHZvaWQqIGRhdGEgKQpYK2ludCBtZW1iZXJfZXhlYygg
 c3RydWN0IGFzdF9jaGFubmVsKiBjaGFuLCBjb25zdCBjaGFyKiBkYXRhICkKWCB7ClggLy8Jc3Ry
 dWN0IHRpbWV2YWwgc3RhcnQsIGVuZCA7ClggLy8Jc3RhcnQgPSBhc3RfdHZub3coKTsKWCAKWCAJ
 c3RydWN0IGFzdF9jb25mZXJlbmNlICpjb25mIDsKWC0JY2hhciBjb25mX25hbWVbQ09ORl9OQU1F
 X0xFTiArIDFdICA9IHsgMCB9OwpYIAlzdHJ1Y3QgYXN0X2NvbmZfbWVtYmVyICptZW1iZXIgOwpY
 Kwljb25zdCBjaGFyICpyZWNmaWxlID0gTlVMTCwgKnJlY2Zvcm1hdCA9IE5VTEw7ClgrCWNoYXIg
 cmVjZGVmYXVsdGZpbGVbQVNUX01BWF9FWFRFTlNJT05dOwpYIApYIAlzdHJ1Y3QgYXN0X2ZyYW1l
 ICpmIDsgLy8gZnJhbWUgcmVjZWl2ZWQgZnJvbSBhc3RfcmVhZCgpClggClhAQCAtNjYxLDcgKzcx
 MSw3IEBAClggClggCS8vREVCVUcoImNyZWF0aW5nIG5ldyBtZW1iZXIsIGlkID0+ICVzLCBmbGFn
 cyA9PiAlcywgcCA9PiAlc1xuIiwgaWQsIGZsYWdzLCBwcmlvcml0eSkgOwpYIApYLQltZW1iZXIg
 PSBjcmVhdGVfbWVtYmVyKCBjaGFuLCAoY29uc3QgY2hhciopKCBkYXRhICksIGNvbmZfbmFtZSAp
 IDsgLy8gZmxhZ3MsIGF0b2koIHByaW9yaXR5ICkgKSA7ClgrCW1lbWJlciA9IGNyZWF0ZV9tZW1i
 ZXIoIGNoYW4sIChjb25zdCBjaGFyKikoIGRhdGEgKSApIDsgLy8gZmxhZ3MsIGF0b2koIHByaW9y
 aXR5ICkgKSA7ClggClggCS8vIHVuYWJsZSB0byBjcmVhdGUgbWVtYmVyLCByZXR1cm4gYW4gZXJy
 b3IKWCAJaWYgKCBtZW1iZXIgPT0gTlVMTCApClhAQCAtNjkyLDE3ICs3NDIsMzIgQEAKWCAJfQpY
 IApYIAkvLwpYLQkvLyBzZXR1cCBhIGNvbmZlcmVuY2UgZm9yIHRoZSBuZXcgbWVtYmVyClgrCS8v
 IHJlY29yZGluZwpYIAkvLwpYKwlpZiAobWVtYmVyLT5yZWNvcmRfZmxhZykKWCsJewpYKwkJcmVj
 ZmlsZSA9IHBieF9idWlsdGluX2dldHZhcl9oZWxwZXIoY2hhbiwgIktPTkZFUkVOQ0VfUkVDT1JE
 SU5HRklMRSIpOwpYKwkJaWYgKCFyZWNmaWxlKSB7ClgrCQkJc25wcmludGYocmVjZGVmYXVsdGZp
 bGUsIHNpemVvZihyZWNkZWZhdWx0ZmlsZSksClgrCQkJCSAia29uZmVyZW5jZS0lcy0lcyIsIG1l
 bWJlci0+Y29uZl9uYW1lLCBtZW1iZXItPnVuaXF1ZWlkKTsKWCsJCQlyZWNmaWxlID0gcmVjZGVm
 YXVsdGZpbGU7ClgrCQl9ClggClgtCWNoYXIgbWF4X3VzZXJzX2ZsYWcgPSAwIDsKWC0JY29uZiA9
 IGpvaW5fY29uZmVyZW5jZSggbWVtYmVyLCBjb25mX25hbWUsICZtYXhfdXNlcnNfZmxhZyApIDsK
 WCsJCXJlY2Zvcm1hdCA9IHBieF9idWlsdGluX2dldHZhcl9oZWxwZXIoY2hhbiwgIktPTkZFUkVO
 Q0VfUkVDT1JESU5HRk9STUFUIik7ClgrCQlpZiAoIXJlY2Zvcm1hdCkKWCsJCQlyZWNmb3JtYXQg
 PSAid2F2IjsKWCsJfQpYIApYKwkvLwpYKwkvLyBzZXR1cCBhIGNvbmZlcmVuY2UgZm9yIHRoZSBu
 ZXcgbWVtYmVyClgrCS8vClgrClgrCWNvbmYgPSBqb2luX2NvbmZlcmVuY2UoIG1lbWJlciwgcmVj
 ZmlsZSwgcmVjZm9ybWF0ICkgOwpYIAlpZiAoIGNvbmYgPT0gTlVMTCApClggCXsKWC0JCWFzdF9s
 b2coIExPR19OT1RJQ0UsICJ1bmFibGUgdG8gc2V0dXAgbWVtYmVyIGNvbmZlcmVuY2UgJXM6IG1h
 eF91c2Vyc19mbGFnIGlzICVkXG4iLCBjb25mX25hbWUsIG1heF91c2Vyc19mbGFnICkgOwpYKwkJ
 YXN0X2xvZyggTE9HX05PVElDRSwgInVuYWJsZSB0byBzZXR1cCBtZW1iZXIgY29uZmVyZW5jZSAl
 c1xuIiwgbWVtYmVyLT5jb25mX25hbWUpIDsKWCAJCWRlbGV0ZV9tZW1iZXIoIG1lbWJlcikgOwpY
 LQkJcmV0dXJuIChtYXhfdXNlcnNfZmxhZyA/IDAgOiAtMSApIDsKWCsJCXJldHVybiAwOwpYIAl9
 ClggClggCS8vClhAQCAtNzE4LDcgKzc4Myw3IEBAClggCQkJc3B5ZWUtPnNweV9wYXJ0bmVyID0g
 bWVtYmVyOwpYIAkJCWFzdF9tdXRleF91bmxvY2soICZzcHllZS0+bG9jayApIDsKWCAKWC0JCQkv
 L0RFQlVHKCJTdGFydCBzcHllciAlcywgc3B5ZWUgaXMgJXNcbiIsIG1lbWJlci0+Y2hhbi0+bmFt
 ZSwgbWVtYmVyLT5zcHllZV9jaGFubmVsX25hbWUpIDsKWCsJCQkvL0RFQlVHKCJTdGFydCBzcHll
 ciAlcywgc3B5ZWUgaXMgJXNcbiIsIG1lbWJlci0+Y2hhbm5lbF9uYW1lLCBtZW1iZXItPnNweWVl
 X2NoYW5uZWxfbmFtZSkgOwpYIAkJfSBlbHNlClggCQl7ClggCQkJaWYgKCBzcHllZSAhPSBOVUxM
 ICkgewpYQEAgLTcyNyw4ICs3OTIsOCBAQApYIAkJCQlhc3RfbXV0ZXhfdW5sb2NrKCAmc3B5ZWUt
 PmxvY2sgKSA7ClggCQkJfQpYIAkJCXBieF9idWlsdGluX3NldHZhcl9oZWxwZXIobWVtYmVyLT5j
 aGFuLCAiS09ORkVSRU5DRSIsICJTUFlGQUlMRUQiICk7ClgtCQkJLy9ERUJVRygiRmFpbGVkIHRv
 IHN0YXJ0IHNweWVyICVzLCBzcHllZSBpcyAlc1xuIiwgbWVtYmVyLT5jaGFuLT5uYW1lLCBtZW1i
 ZXItPnNweWVlX2NoYW5uZWxfbmFtZSkgOwpYLQkJCXJlbW92ZV9tZW1iZXIoIG1lbWJlciwgY29u
 ZiwgY29uZl9uYW1lICkgOwpYKwkJCS8vREVCVUcoIkZhaWxlZCB0byBzdGFydCBzcHllciAlcywg
 c3B5ZWUgaXMgJXNcbiIsIG1lbWJlci0+Y2hhbm5lbF9uYW1lLCBtZW1iZXItPnNweWVlX2NoYW5u
 ZWxfbmFtZSkgOwpYKwkJCXJlbW92ZV9tZW1iZXIoIG1lbWJlciwgY29uZiApIDsKWCAJCQlyZXR1
 cm4gMCA7ClggCQl9ClggCX0gClhAQCAtNzUzLDI2ICs4MTgsNDkgQEAKWCAJCSJDaGFubmVsOiAl
 c1xyXG4iClggCQkiQ2FsbGVySUQ6ICVzXHJcbiIKWCAJCSJDYWxsZXJJRE5hbWU6ICVzXHJcbiIK
 WCsJCSJNdXRlZDogJXNcclxuIgpYKwkJIlNwZWFraW5nOiAlc1xyXG4iClggCQkiTW9kZXJhdG9y
 czogJWRcclxuIgpYIAkJIkNvdW50OiAlZFxyXG4iLApYIAkJY29uZi0+bmFtZSwKWCAJCW1lbWJl
 ci0+dHlwZSwKWC0JCW1lbWJlci0+Y2hhbi0+dW5pcXVlaWQsClgrCQltZW1iZXItPnVuaXF1ZWlk
 LApYIAkJbWVtYmVyLT5pZCwKWCAJCW1lbWJlci0+ZmxhZ3MsClgtCQltZW1iZXItPmNoYW4tPm5h
 bWUsClgtCQltZW1iZXItPmNoYW4tPmNpZC5jaWRfbnVtID8gbWVtYmVyLT5jaGFuLT5jaWQuY2lk
 X251bSA6ICJ1bmtub3duIiwKWC0JCW1lbWJlci0+Y2hhbi0+Y2lkLmNpZF9uYW1lID8gbWVtYmVy
 LT5jaGFuLT5jaWQuY2lkX25hbWU6ICJ1bmtub3duIiwKWCsJCW1lbWJlci0+Y2hhbm5lbF9uYW1l
 LApYKwkJYXN0X2NoYW5uZWxfY2FsbGVyaWRfbnVtYmVyKG1lbWJlci0+Y2hhbiksClgrCQlhc3Rf
 Y2hhbm5lbF9jYWxsZXJpZF9uYW1lKG1lbWJlci0+Y2hhbiksClgrCQkobWVtYmVyLT5tdXRlX2F1
 ZGlvID09IDAgPyAiRmFsc2UiIDogIlRydWUiKSwKWCsJCShtZW1iZXItPnNwZWFraW5nX3N0YXRl
 ID09IDEgPyAiVHJ1ZSIgOiAiRmFsc2UiKSwKWCAJCWNvbmYtPnN0YXRzLm1vZGVyYXRvcnMsClgg
 CQljb25mLT5tZW1iZXJjb3VudApYIAkpIDsKWCAKWCAJLy8KWCsJLy8gcGxheSB3ZWxjb21lIHBy
 b21wdApYKwkvLwpYKwlpZiAobWVtYmVyLT53ZWxjb21lX3Byb21wdCkgewpYKwkJYXN0X3N0b3Bz
 dHJlYW0oY2hhbik7ClgrCQlyZXMgPSBhc3Rfc3RyZWFtZmlsZShjaGFuLCBtZW1iZXItPndlbGNv
 bWVfcHJvbXB0LCBjaGFuLT5sYW5ndWFnZSk7ClgrCQlpZiAoIXJlcykgewpYKwkJCXJlcyA9IGFz
 dF93YWl0c3RyZWFtKGNoYW4sICIiKTsKWCsJCQlhc3Rfc3RvcHN0cmVhbShjaGFuKTsKWCsJCX0g
 ZWxzZSB7ClgrCQkJYXN0X2xvZyhMT0dfV0FSTklORywgIkZhaWxlZCB0byBwbGF5IHdlbGNvbWUg
 cHJvbXB0ICclcycgb24gY2hhbm5lbCAnJXMnIiwKWCsJCQkJbWVtYmVyLT53ZWxjb21lX3Byb21w
 dCwgY2hhbi0+bmFtZSk7ClgrCQl9ClgrCX0KWCsKWCsJLy8KWCAJLy8gcHJvY2VzcyBsb29wIGZv
 ciBuZXcgbWVtYmVyICggdGhpcyBydW5zIGluIGl0J3Mgb3duIHRocmVhZCApClggCS8vClggClgg
 CURFQlVHKCJiZWdpbiBtZW1iZXIgZXZlbnQgbG9vcCwgY2hhbm5lbCA9PiAlc1xuIiwgY2hhbi0+
 bmFtZSkgOwpYIApYKwkvLyB0aW1lciB0aW1lc3RhbXBzClgrCXN0cnVjdCB0aW1ldmFsIGJhc2Us
 IGN1cnIgOwpYKwliYXNlID0gYXN0X3R2bm93KCk7ClgrClggCS8vIHRlbGwgY29uZmVyZW5jZV9l
 eGVjIHdlJ3JlIHJlYWR5IGZvciBmcmFtZXMKWCAJbWVtYmVyLT5yZWFkeV9mb3Jfb3V0Z29pbmcg
 PSAxIDsKWCAJd2hpbGUgKCA0MiA9PSA0MiApClhAQCAtODA4LDcgKzg5Niw3IEBAClggCQkJLy8g
 bm8gZnJhbWUgaGFzIGFycml2ZWQgeWV0ClggCQkJLy8gYXN0X2xvZyggTE9HX05PVElDRSwgIm5v
 IGZyYW1lIGF2YWlsYWJsZSBmcm9tIGNoYW5uZWwsIGNoYW5uZWwgPT4gJXNcbiIsIGNoYW4tPm5h
 bWUgKSA7ClggCQl9ClgtCQllbHNlIGlmICggbGVmdCA+IDAgKQpYKwkJZWxzZSBpZiAoIGxlZnQg
 PiAwICYmIGNoYW4tPmZkbm8gIT0gQVNUX0dFTkVSQVRPUl9GRCApClggCQl7ClggCQkJLy8gYSBm
 cmFtZSBoYXMgY29tZSBpbiBiZWZvcmUgdGhlIGxhdGVuY3kgdGltZW91dApYIAkJCS8vIHdhcyBy
 ZWFjaGVkLCBzbyB3ZSBwcm9jZXNzIHRoZSBmcmFtZQpYQEAgLTgzNiwxNiArOTI0LDE0IEBAClgg
 CQkJcGJ4X2J1aWx0aW5fc2V0dmFyX2hlbHBlcihtZW1iZXItPmNoYW4sICJLT05GRVJFTkNFIiwg
 IktJQ0tFRCIgKTsKWCAJCQlicmVhazsKWCAJCX0KWC0JCQpYLQkJaWYgKCBtZW1iZXItPm1vaF9z
 dG9wICkgewpYLQkJCWFzdF9tb2hfc3RvcChtZW1iZXItPmNoYW4pOwpYLQkJCW1lbWJlci0+bW9o
 X3N0b3AgPSAwOwpYLQkJfQpYIApYIAkJLy8tLS0tLS0tLS0tLS0tLS0tLS8vClggCQkvLyBPVVRH
 T0lORyBGUkFNRVMgLy8KWCAJCS8vLS0tLS0tLS0tLS0tLS0tLS0vLwpYIApYKwkJLy8gdXBkYXRl
 IHRoZSBjdXJyZW50IHRpbWVzdGFtcHMKWCsJCWN1cnIgPSBhc3RfdHZub3coKTsKWCsKWCAJCWlm
 ICggIXByb2Nlc3Nfb3V0Z29pbmcobWVtYmVyKSApClggCQkJLy8gYmFjayB0byBwcm9jZXNzIGlu
 Y29taW5nIGZyYW1lcwpYIAkJCWNvbnRpbnVlIDsKWEBAIC04ODIsMTAgKzk2OCwxMCBAQApYIApY
 IAkJYXN0X211dGV4X3VubG9jayAoICZzcHllZS0+bG9jayApIDsKWCAKWC0JCS8vREVCVUcoIkVu
 ZCBzcHllciAlcywgc3B5ZWUgaXMgJXNcbiIsIG1lbWJlci0+Y2hhbi0+bmFtZSwgbWVtYmVyLT5z
 cHllZV9jaGFubmVsX25hbWUpIDsKWCsJCS8vREVCVUcoIkVuZCBzcHllciAlcywgc3B5ZWUgaXMg
 JXNcbiIsIG1lbWJlci0+Y2hhbm5lbF9uYW1lLCBtZW1iZXItPnNweWVlX2NoYW5uZWxfbmFtZSkg
 OwpYIAl9ClggClgtCXJlbW92ZV9tZW1iZXIoIG1lbWJlciwgY29uZiwgY29uZl9uYW1lICkgOwpY
 KwlyZW1vdmVfbWVtYmVyKCBtZW1iZXIsIGNvbmYgKSA7ClggCXJldHVybiAwIDsKWCB9ClggClhA
 QCAtOTE0LDExICsxMDAwLDQ0IEBAClggICAgICByZXR1cm4gTlVMTDsKWCB9ClggI2VuZGlmClgr
 Clgrc3RhdGljIGludCBjb252ZXJ0X2Zvcm1hdF90b19pbmRleChmb3JtYXRfdCBmb3JtYXQpClgr
 ewpYKwlzd2l0Y2ggKCBmb3JtYXQgKQpYKwl7ClgrCWNhc2UgQVNUX0NPTkZfRk9STUFUOgpYKwkJ
 cmV0dXJuIEFDX1NMSU5FQVJfSU5ERVg7ClgrCWNhc2UgQVNUX0ZPUk1BVF9VTEFXOgpYKwkJcmV0
 dXJuIEFDX1VMQVdfSU5ERVg7ClgrCWNhc2UgQVNUX0ZPUk1BVF9BTEFXOgpYKwkJcmV0dXJuIEFD
 X0FMQVdfSU5ERVg7ClgrCWNhc2UgQVNUX0ZPUk1BVF9HU006ClgrCQlyZXR1cm4gQUNfR1NNX0lO
 REVYOwpYKwljYXNlIEFTVF9GT1JNQVRfU1BFRVg6ClgrCQlyZXR1cm4gQUNfU1BFRVhfSU5ERVg7
 ClgrI2lmZGVmIEFDX1VTRV9HNzI5QQpYKwljYXNlIEFTVF9GT1JNQVRfRzcyOUE6ClgrCQlyZXR1
 cm4gQUNfRzcyOUFfSU5ERVg7ClgrI2VuZGlmClgrI2lmZGVmIEFDX1VTRV9HNzIyClgrCWNhc2Ug
 QVNUX0ZPUk1BVF9HNzIyOgpYKwkJcmV0dXJuIEFDX0c3MjJfSU5ERVg7ClgrI2VuZGlmClgrI2lm
 ZGVmIEFDX1VTRV9TUEVFWDE2ClgrCWNhc2UgQVNUX0ZPUk1BVF9TUEVFWDE2OgpYKwkJcmV0dXJu
 IEFDX1NQRUVYMTZfSU5ERVg7ClgrI2VuZGlmClgrCWRlZmF1bHQ6ClgrCQlicmVhazsKWCsJfQpY
 KwlyZXR1cm4gMDsKWCt9ClgrClggLy8KWCAvLyBtYW5hbmdlIG1lbWJlciBmdW5jdGlvbnMKWCAv
 LwpYIApYLXN0cnVjdCBhc3RfY29uZl9tZW1iZXIqIGNyZWF0ZV9tZW1iZXIoIHN0cnVjdCBhc3Rf
 Y2hhbm5lbCAqY2hhbiwgY29uc3QgY2hhciogZGF0YSwgY2hhciogY29uZl9uYW1lICkKWCtzdHJ1
 Y3QgYXN0X2NvbmZfbWVtYmVyKiBjcmVhdGVfbWVtYmVyKCBzdHJ1Y3QgYXN0X2NoYW5uZWwgKmNo
 YW4sIGNvbnN0IGNoYXIqIGRhdGEgKQpYIHsKWCAjaWZkZWYJQVBQX0tPTkZFUkVOQ0VfREVCVUcK
 WCAJLy8KWEBAIC05NTQsMjAgKzEwNzMsMjYgQEAKWCAKWCAJLy8gaW5pdGlhbGl6ZSBjdgpYIAlh
 c3RfY29uZF9pbml0KCAmbWVtYmVyLT5kZWxldGVfdmFyLCBOVUxMICkgOwpYKwkvLyBpbml0aWFs
 aXplIGZsYWcgYW5kIGNvdW50ClgrCW1lbWJlci0+ZGVsZXRlX2ZsYWcgPSBtZW1iZXItPnVzZV9j
 b3VudCA9IDAgOwpYIApYIAkvLyBEZWZhdWx0IHZhbHVlcyBmb3IgcGFyYW1ldGVycyB0aGF0IGNh
 biBnZXQgb3ZlcndyaXR0ZW4gYnkgZGlhbHBsYW4gYXJndW1lbnRzClggI2lmZGVmCVZJREVPClgg
 CW1lbWJlci0+dmlkZW9fc3RhcnRfdGltZW91dCA9IEFTVF9DT05GX1ZJREVPX1NUQVJUX1RJTUVP
 VVQ7ClggCW1lbWJlci0+dmlkZW9fc3RvcF90aW1lb3V0ID0gQVNUX0NPTkZfVklERU9fU1RPUF9U
 SU1FT1VUOwpYICNlbmRpZgpYKwltZW1iZXItPnByaW9yaXR5ID0gMDsKWCAJbWVtYmVyLT52YWRf
 cHJvYl9zdGFydCA9IEFTVF9DT05GX1BST0JfU1RBUlQ7ClggCW1lbWJlci0+dmFkX3Byb2JfY29u
 dGludWUgPSBBU1RfQ09ORl9QUk9CX0NPTlRJTlVFOwpYIAltZW1iZXItPm1heF91c2VycyA9IEFT
 VF9DT05GX01BWF9VU0VSUzsKWCsJbWVtYmVyLT50eXBlID0gTlVMTDsKWCsJbWVtYmVyLT5zcHll
 ZV9jaGFubmVsX25hbWUgPSBOVUxMOwpYKwltZW1iZXItPndlbGNvbWVfcHJvbXB0ID0gTlVMTDsK
 WCAKWCAJLy8KWCAJLy8gaW5pdGlhbGl6ZSBtZW1iZXIgd2l0aCBwYXNzZWQgZGF0YSB2YWx1ZXMK
 WCAJLy8KWC0JY2hhciBhcmdzdHJbMjU2XSA9IHsgMCB9OwpYKwljaGFyIGFyZ3N0clsyNTZdIDsK
 WCAKWCAJLy8gY29weSB0aGUgcGFzc2VkIGRhdGEKWCAJc3RybmNweSggYXJnc3RyLCBkYXRhLCBz
 aXplb2YoYXJnc3RyKSAtIDEgKSA7ClhAQCAtOTgxLDcgKzExMDYsOCBAQApYIAljaGFyICp0b2tl
 bjsKWCAJaWYgKCAoIHRva2VuID0gc3Ryc2VwKCAmc3RyaW5ncCwgYXJndW1lbnRfZGVsaW1pdGVy
 ICkgKSAhPSBOVUxMICkKWCAJewpYLQkJc3RybmNweSggY29uZl9uYW1lLCB0b2tlbiwgQ09ORl9O
 QU1FX0xFTiApIDsKWCsJCW1lbWJlci0+Y29uZl9uYW1lID0gbWFsbG9jKCBzdHJsZW4oIHRva2Vu
 ICkgKyAxICkgOwpYKwkJc3RyY3B5KCBtZW1iZXItPmNvbmZfbmFtZSwgdG9rZW4gKSA7ClggCX0K
 WCAJZWxzZQpYIAl7ClhAQCAtMTAxNSw2ICsxMTQxLDcgQEAKWCAJCXN0YXRpYyBjb25zdCBjaGFy
 IGFyZ19tYXhfdXNlcnNbXSA9ICJtYXhfdXNlcnMiOwpYIAkJc3RhdGljIGNvbnN0IGNoYXIgYXJn
 X2NvbmZfdHlwZVtdID0gInR5cGUiOwpYIAkJc3RhdGljIGNvbnN0IGNoYXIgYXJnX2NoYW5zcHlb
 XSA9ICJzcHkiOwpYKwkJc3RhdGljIGNvbnN0IGNoYXIgYXJnX3dlbGNvbWVwcm9tcHRbXSA9ICJ3
 ZWxjb21lX3Byb21wdCI7ClggClggCQljaGFyICp2YWx1ZSA9IHRva2VuOwpYIAkJY29uc3QgY2hh
 ciAqa2V5ID0gc3Ryc2VwKCZ2YWx1ZSwgIj0iKTsKWEBAIC0xMDYwLDYgKzExODcsMTEgQEAKWCAJ
 CQltZW1iZXItPnNweWVlX2NoYW5uZWxfbmFtZSA9IG1hbGxvYyggc3RybGVuKCB2YWx1ZSApICsg
 MSApIDsKWCAJCQlzdHJjcHkoIG1lbWJlci0+c3B5ZWVfY2hhbm5lbF9uYW1lLCB2YWx1ZSApIDsK
 WCAJCQlERUJVRygic3B5ZWUgY2hhbm5lbCBuYW1lIGlzICVzXG4iLCBtZW1iZXItPnNweWVlX2No
 YW5uZWxfbmFtZSkgOwpYKwkJfSBlbHNlIGlmICggc3RybmNhc2VjbXAoa2V5LCBhcmdfd2VsY29t
 ZXByb21wdCwgc2l6ZW9mKGFyZ193ZWxjb21lcHJvbXB0KSAtIDEpID09IDAgKQpYKwkJewpYKwkJ
 CW1lbWJlci0+d2VsY29tZV9wcm9tcHQgPSBtYWxsb2MoIHN0cmxlbiggdmFsdWUgKSArIDEgKSA7
 ClgrCQkJc3RyY3B5KCBtZW1iZXItPndlbGNvbWVfcHJvbXB0LCB2YWx1ZSApIDsKWCsJCQlERUJV
 Rygid2VsY29tZSBwcm9tcHQgaXMgJXNcbiIsIG1lbWJlci0+d2VsY29tZV9wcm9tcHQpIDsKWCAJ
 CX0gZWxzZQpYIAkJewpYIAkJCWFzdF9sb2coTE9HX1dBUk5JTkcsICJ1bmtub3duIHBhcmFtZXRl
 ciAlcyB3aXRoIHZhbHVlICVzXG4iLCBrZXksIHZhbHVlKSA7ClhAQCAtMTA3Myw2ICsxMjA1LDE0
 IEBAClggCS8vIGtlZXAgcG9pbnRlciB0byBtZW1iZXIncyBjaGFubmVsClggCW1lbWJlci0+Y2hh
 biA9IGNoYW4gOwpYIApYKwkvLyBjb3B5IHRoZSBjaGFubmVsIG5hbWUKWCsJbWVtYmVyLT5jaGFu
 bmVsX25hbWUgPSBtYWxsb2MoIHN0cmxlbiggY2hhbi0+bmFtZSApICsgMSApIDsKWCsJc3RyY3B5
 KCBtZW1iZXItPmNoYW5uZWxfbmFtZSwgY2hhbi0+bmFtZSApIDsKWCsKWCsJLy8gY29weSB0aGUg
 dW5pcXVlaWQKWCsJbWVtYmVyLT51bmlxdWVpZCA9IG1hbGxvYyggc3RybGVuKCBjaGFuLT51bmlx
 dWVpZCApICsgMSApIDsKWCsJc3RyY3B5KCBtZW1iZXItPnVuaXF1ZWlkLCBjaGFuLT51bmlxdWVp
 ZCApIDsKWCsKWCAJLy8gc2V0IGRlZmF1bHQgaWYgbm8gdHlwZSBwYXJhbWV0ZXIKWCAJaWYgKCFt
 ZW1iZXItPnR5cGUpIHsKWCAJCW1lbWJlci0+dHlwZSA9IG1hbGxvYyggc3RybGVuKCBBU1RfQ09O
 Rl9UWVBFX0RFRkFVTFQgKSArIDEgKSA7ClhAQCAtMTA4MCw5ICsxMjIwLDUzIEBAClggCQlERUJV
 RygidHlwZSA9ICVzXG4iLCBtZW1iZXItPnR5cGUpIDsKWCAJfQpYIApYKwkvLyBzcHlfcGFydG5l
 ciBkZWZhdWx0IGlzIE5VTEwKWCsJbWVtYmVyLT5zcHlfcGFydG5lciA9IE5VTEw7ClgrClgrCS8v
 ICggZGVmYXVsdCBjYW4gYmUgb3ZlcnJpZGRlbiBieSBwYXNzZWQgZmxhZ3MgKQpYKwltZW1iZXIt
 Pm11dGVfYXVkaW8gPSAwOwpYKyNpZmRlZglWSURFTwpYKwltZW1iZXItPm11dGVfdmlkZW8gPSAw
 OwpYKyNlbmRpZgpYKwltZW1iZXItPnRhbGtfdm9sdW1lID0gMDsKWCsJbWVtYmVyLT5saXN0ZW5f
 dm9sdW1lID0gMDsKWCsJbWVtYmVyLT5ub3JlY3ZfYXVkaW8gPSAwOwpYKyNpZmRlZglWSURFTwpY
 KwltZW1iZXItPm5vcmVjdl92aWRlbyA9IDA7ClgrCW1lbWJlci0+bm9fY2FtZXJhID0gMDsKWCsj
 ZW5kaWYKWCsJLy8gbW9kZXJhdG9yPwpYKwltZW1iZXItPmlzbW9kZXJhdG9yID0gMDsKWCsJbWVt
 YmVyLT5raWNrX2NvbmZlcmVlcyA9IDA7ClgrClgrCS8vIHJlYWR5IGZsYWcKWCsJbWVtYmVyLT5y
 ZWFkeV9mb3Jfb3V0Z29pbmcgPSAwIDsKWCsKWCsJLy8gaW5jb21pbmcgZnJhbWUgcXVldWUKWCsJ
 bWVtYmVyLT5pbkZyYW1lcyA9IE5VTEwgOwpYKwltZW1iZXItPmluRnJhbWVzVGFpbCA9IE5VTEwg
 OwpYKwltZW1iZXItPmluRnJhbWVzQ291bnQgPSAwIDsKWCsjaWZkZWYJVklERU8KWCsJbWVtYmVy
 LT5pblZpZGVvRnJhbWVzID0gTlVMTCA7ClgrCW1lbWJlci0+aW5WaWRlb0ZyYW1lc1RhaWwgPSBO
 VUxMIDsKWCsJbWVtYmVyLT5pblZpZGVvRnJhbWVzQ291bnQgPSAwIDsKWCsjZW5kaWYKWCsjaWZk
 ZWYJRFRNRgpYKwltZW1iZXItPmluRFRNRkZyYW1lcyA9IE5VTEwgOwpYKwltZW1iZXItPmluRFRN
 RkZyYW1lc1RhaWwgPSBOVUxMIDsKWCsJbWVtYmVyLT5pbkRUTUZGcmFtZXNDb3VudCA9IDAgOwpY
 KyNlbmRpZgpYKyNpZmRlZglURVhUClgrCW1lbWJlci0+aW5UZXh0RnJhbWVzID0gTlVMTCA7Clgr
 CW1lbWJlci0+aW5UZXh0RnJhbWVzVGFpbCA9IE5VTEwgOwpYKwltZW1iZXItPmluVGV4dEZyYW1l
 c0NvdW50ID0gMCA7ClgrI2VuZGlmClggI2lmZGVmCVZJREVPClggCW1lbWJlci0+Y29uZmVyZW5j
 ZSA9IDE7IC8vIHdlIGhhdmUgc3dpdGNoZWQgcmVxX2lkClgrCW1lbWJlci0+ZHRtZl9zd2l0Y2gg
 PSAwOyAvLyBubyBkdG1mIHN3aXRjaCBieSBkZWZhdWx0ClggI2VuZGlmClgrCW1lbWJlci0+ZHRt
 Zl9yZWxheSA9IDA7IC8vIG5vIGR0bWYgcmVsYXkgYnkgZGVmYXVsdApYKwltZW1iZXItPmR0bWZf
 c3Rhcl9tZW51ID0gMDsgLy8gbm8gZHRtZiBzdGFyIG1lbnUgYnkgZGVmYXVsdApYIApYIAkvLyBz
 dGFydCBvZiBkYXkgdmlkZW8gaWRzClggI2lmZGVmCVZJREVPClhAQCAtMTA5MCwyMyArMTI3NCwx
 MTMgQEAKWCAjZW5kaWYKWCAJbWVtYmVyLT5pZCA9IC0xOwpYIApYKwltZW1iZXItPmZpcnN0X2Zy
 YW1lX3JlY2VpdmVkID0gMDsgLy8gY2F1c2UgYSBGSVIgYWZ0ZXIgTkFUIGRlbGF5ClgrClgrCS8v
 IGxhc3QgZnJhbWUgY2FjaGluZwpYKwltZW1iZXItPmluRnJhbWVzUmVwZWF0TGFzdCA9IDAgOwpY
 KwltZW1iZXItPmluRnJhbWVzTGFzdCA9IE5VTEwgOwpYKwltZW1iZXItPm9rYXlUb0NhY2hlTGFz
 dCA9IDAgOwpYKwpYKwkvLyBvdXRnb2luZyBmcmFtZSBxdWV1ZQpYKwltZW1iZXItPm91dEZyYW1l
 cyA9IE5VTEwgOwpYKwltZW1iZXItPm91dEZyYW1lc1RhaWwgPSBOVUxMIDsKWCsJbWVtYmVyLT5v
 dXRGcmFtZXNDb3VudCA9IDAgOwpYKyNpZmRlZglWSURFTwpYKwltZW1iZXItPm91dFZpZGVvRnJh
 bWVzID0gTlVMTCA7ClgrCW1lbWJlci0+b3V0VmlkZW9GcmFtZXNUYWlsID0gTlVMTCA7ClgrCW1l
 bWJlci0+b3V0VmlkZW9GcmFtZXNDb3VudCA9IDAgOwpYKyNlbmRpZgpYKyNpZmRlZglEVE1GClgr
 CW1lbWJlci0+b3V0RFRNRkZyYW1lcyA9IE5VTEwgOwpYKwltZW1iZXItPm91dERUTUZGcmFtZXNU
 YWlsID0gTlVMTCA7ClgrCW1lbWJlci0+b3V0RFRNRkZyYW1lc0NvdW50ID0gMCA7ClgrI2VuZGlm
 ClgrI2lmZGVmCVRFWFQKWCsJbWVtYmVyLT5vdXRUZXh0RnJhbWVzID0gTlVMTCA7ClgrCW1lbWJl
 ci0+b3V0VGV4dEZyYW1lc1RhaWwgPSBOVUxMIDsKWCsJbWVtYmVyLT5vdXRUZXh0RnJhbWVzQ291
 bnQgPSAwIDsKWCsjZW5kaWYKWCAJLy8gKCBub3QgY3VycmVudGx5IHVzZWQgKQpYIAkvLyBtZW1i
 ZXItPnNhbXBsZXNwZXJmcmFtZSA9IEFTVF9DT05GX0JMT0NLX1NBTVBMRVMgOwpYIApYKwkvLyB1
 c2VkIGZvciBkZXRlcm1pbmluZyBuZWVkIHRvIG1peCBmcmFtZXMKWCsJLy8gYW5kIGZvciBtYW5h
 Z2VtZW50IGludGVyZmFjZSBub3RpZmljYXRpb24KWCsJLy8gYW5kIGZvciBWQUQgYmFzZWQgdmlk
 ZW8gc3dpdGNoaW5nClgrCW1lbWJlci0+c3BlYWtpbmdfc3RhdGVfbm90aWZ5ID0gMCA7ClgrCW1l
 bWJlci0+c3BlYWtpbmdfc3RhdGUgPSAwIDsKWCsJbWVtYmVyLT5sb2NhbF9zcGVha2luZ19zdGF0
 ZSA9IDA7ClgrCW1lbWJlci0+bGFzdF9zdGF0ZV9jaGFuZ2UgPSAoc3RydWN0IHRpbWV2YWwpezAs
 IDB9OwpYKwltZW1iZXItPnNwZWFrZXJfY291bnQgPSAwOwpYKyNpZmRlZglWSURFTwpYKwltZW1i
 ZXItPmRyaXZlbl9tZW1iZXIgPSBOVUxMOwpYKwpYKwltZW1iZXItPnZpZGVvX2Jyb2FkY2FzdF9h
 Y3RpdmUgPSAwOwpYKwltZW1iZXItPmxhc3RfdmlkZW9fZnJhbWVfdGltZSA9IChzdHJ1Y3QgdGlt
 ZXZhbCl7MCwgMH07ClgrClgrCW1lbWJlci0+dmlkZW9fc3RhcnRlZCA9IDA7ClgrI2VuZGlmClgr
 CS8vIGxpbmtlZC1saXN0IHBvaW50ZXJzClgrCW1lbWJlci0+bmV4dCA9IE5VTEwgOwpYKyNpZm5k
 ZWYJVklERU8KWCsJbWVtYmVyLT5wcmV2ID0gTlVMTCA7ClgrI2VuZGlmClgrCW1lbWJlci0+YnVj
 a2V0ID0gTlVMTCA7ClgrCS8vIGFjY291bnQgZGF0YQpYKwltZW1iZXItPmZyYW1lc19pbiA9IDAg
 OwpYKwltZW1iZXItPmZyYW1lc19pbl9kcm9wcGVkID0gMCA7ClgrCW1lbWJlci0+ZnJhbWVzX291
 dCA9IDAgOwpYKwltZW1iZXItPmZyYW1lc19vdXRfZHJvcHBlZCA9IDAgOwpYKyNpZmRlZglWSURF
 TwpYKwltZW1iZXItPnZpZGVvX2ZyYW1lc19pbiA9IDAgOwpYKwltZW1iZXItPnZpZGVvX2ZyYW1l
 c19pbl9kcm9wcGVkID0gMCA7ClgrCW1lbWJlci0+dmlkZW9fZnJhbWVzX291dCA9IDAgOwpYKwlt
 ZW1iZXItPnZpZGVvX2ZyYW1lc19vdXRfZHJvcHBlZCA9IDAgOwpYKyNlbmRpZgpYKyNpZmRlZglE
 VE1GClgrCW1lbWJlci0+ZHRtZl9mcmFtZXNfaW4gPSAwIDsKWCsJbWVtYmVyLT5kdG1mX2ZyYW1l
 c19pbl9kcm9wcGVkID0gMCA7ClgrCW1lbWJlci0+ZHRtZl9mcmFtZXNfb3V0ID0gMCA7ClgrCW1l
 bWJlci0+ZHRtZl9mcmFtZXNfb3V0X2Ryb3BwZWQgPSAwIDsKWCsjZW5kaWYKWCsjaWZkZWYJVEVY
 VApYKwltZW1iZXItPnRleHRfZnJhbWVzX2luID0gMCA7ClgrCW1lbWJlci0+dGV4dF9mcmFtZXNf
 aW5fZHJvcHBlZCA9IDAgOwpYKwltZW1iZXItPnRleHRfZnJhbWVzX291dCA9IDAgOwpYKwltZW1i
 ZXItPnRleHRfZnJhbWVzX291dF9kcm9wcGVkID0gMCA7ClgrI2VuZGlmClgrCS8vIGZvciBjb3Vu
 dGluZyBzZXF1ZW50aWFsbHkgZHJvcHBlZCBmcmFtZXMKWCsJbWVtYmVyLT5zZXF1ZW50aWFsX2Ry
 b3BzID0gMCA7ClgrCW1lbWJlci0+c2luY2VfZHJvcHBlZCA9IDAgOwpYKwpYKwkvLyBmbGFncwpY
 KwltZW1iZXItPmtpY2tfZmxhZyA9IDA7ClgrClggCS8vIHJlY29yZCBzdGFydCB0aW1lClggCS8v
 IGluaXQgZHJvcHBlZCBmcmFtZSB0aW1lc3RhbXBzClggCS8vIGluaXQgc3RhdGUgY2hhbmdlIHRp
 bWVzdGFtcApYIAltZW1iZXItPnRpbWVfZW50ZXJlZCA9ClggCQltZW1iZXItPmxhc3RfaW5fZHJv
 cHBlZCA9ClggCQltZW1iZXItPmxhc3Rfb3V0X2Ryb3BwZWQgPQpYLSNpZmRlZglWSURFTwpYLQkJ
 bWVtYmVyLT5sYXN0X3N0YXRlX2NoYW5nZSA9ClgtI2VuZGlmClgtCQlhc3RfdHZub3coKTsKWCsJ
 CW1lbWJlci0+bGFzdF9zdGF0ZV9jaGFuZ2UgPSBhc3RfdHZub3coKTsKWCsKWCAJLy8KWCAJLy8g
 cGFyc2UgcGFzc2VkIGZsYWdzClggCS8vClggClgrCS8vIHNpbGVuY2UgZGV0ZWN0aW9uIGZsYWdz
 IHcvIGRlZmF1bHRzClgrCW1lbWJlci0+dmFkX2ZsYWcgPSAwIDsKWCsJbWVtYmVyLT5kZW5vaXNl
 X2ZsYWcgPSAwIDsKWCsJbWVtYmVyLT5hZ2NfZmxhZyA9IDAgOwpYKwpYKwkvLyBpcyB0aGlzIG1l
 bWJlciB1c2luZyB0aGUgdGVsZXBob25lPwpYKwltZW1iZXItPnZpYV90ZWxlcGhvbmUgPSAwIDsK
 WCsKWCsJLy8gbW9oIGlmIG9ubHkgbWVtYmVyIGZsYWcKWCsJbWVtYmVyLT5ob2xkX2ZsYWcgPSAw
 IDsKWCsJbWVtYmVyLT53YWl0X2Zvcl9tb2RlcmF0b3JfZmxhZyA9IDAgOwpYKwkKWCsJbWVtYmVy
 LT5zdGFyX3ByZXNzZWQgPSAwOwpYKwpYIAkvLyB0ZW1wIHBvaW50ZXIgdG8gZmxhZ3Mgc3RyaW5n
 ClggCWNoYXIqIGZsYWdzID0gbWVtYmVyLT5mbGFncyA7ClggClhAQCAtMTEzMiw3ICsxNDA2LDcg
 QEAKWCAJCWVsc2UKWCAjZW5kaWYKWCAJCXsKWC0JCQkvLyBhbGxvd2VkIGZsYWdzIGFyZSBDLCBj
 LCBMLCBsLCBWLCBELCBBLCBDLCBYLCBSLCBULCB0LCBNLCBTLCB6LCBvLCBGLCBIClgrCQkJLy8g
 YWxsb3dlZCBmbGFncyBhcmUgQywgYywgTCwgbCwgViwgRCwgQSwgQywgWCwgciwgUiwgVCwgdCwg
 TSwgUywgeiwgbywgRiwgSCwgbgpYIAkJCS8vIG11dGUvbm9fcmVjdiBvcHRpb25zClggCQkJc3dp
 dGNoICggZmxhZ3NbaV0gKQpYIAkJCXsKWEBAIC0xMTUwLDcgKzE0MjQsNyBAQApYIAkJCWNhc2Ug
 J2wnOgpYIAkJCQltZW1iZXItPm5vcmVjdl9hdWRpbyA9IDE7ClggCQkJCWJyZWFrOwpYLSNpZiAo
 IFNJTERFVCA9PSAyICkKWCsKWCAJCQkJLy8gc3BlZXggcHJlcHJvY2Vzc2luZyBvcHRpb25zClgg
 CQkJY2FzZSAnVic6ClggCQkJCW1lbWJlci0+dmFkX2ZsYWcgPSAxIDsKWEBAIC0xMTYxLDcgKzE0
 MzUsNyBAQApYIAkJCWNhc2UgJ0EnOgpYIAkJCQltZW1iZXItPmFnY19mbGFnID0gMSA7ClggCQkJ
 CWJyZWFrIDsKWC0jZW5kaWYKWCsKWCAJCQkJLy8gZHRtZi9tb2RlcmF0b3IvdmlkZW8gc3dpdGNo
 aW5nIG9wdGlvbnMKWCAjaWZkZWYJVklERU8KWCAJCQljYXNlICdYJzoKWEBAIC0xMTcxLDYgKzE0
 NDUsMTIgQEAKWCAJCQljYXNlICdSJzoKWCAJCQkJbWVtYmVyLT5kdG1mX3JlbGF5ID0gMTsKWCAJ
 CQkJYnJlYWs7ClgrCQkJY2FzZSAncic6ClgrCQkJCW1lbWJlci0+cmVjb3JkX2ZsYWcgPSAxOwpY
 KwkJCQlicmVhazsKWCsJCQljYXNlICdzJzoKWCsJCQkJbWVtYmVyLT5kdG1mX3N0YXJfbWVudSA9
 IDE7ClgrCQkJCWJyZWFrOwpYICNpZmRlZglWSURFTwpYIAkJCWNhc2UgJ1MnOgpYIAkJCQltZW1i
 ZXItPnZhZF9zd2l0Y2ggPSAxOwpYQEAgLTExODIsNiArMTQ2Miw5IEBAClggCQkJY2FzZSAnTSc6
 ClggCQkJCW1lbWJlci0+aXNtb2RlcmF0b3IgPSAxOwpYIAkJCQlicmVhazsKWCsJCQljYXNlICdu
 JzoKWCsJCQkJbWVtYmVyLT5ub19jcmVhdGVfZmxhZyA9IDE7ClgrCQkJCWJyZWFrOwpYICNpZmRl
 ZglWSURFTwpYIAkJCWNhc2UgJ04nOgpYIAkJCQltZW1iZXItPm5vX2NhbWVyYSA9IDE7ClhAQCAt
 MTIwMywyNCArMTQ4NiwzMSBAQApYIAkJCWNhc2UgJ3gnOgpYIAkJCQltZW1iZXItPmtpY2tfY29u
 ZmVyZWVzID0gMTsKWCAJCQkJYnJlYWs7ClgtI2lmICggU0lMREVUID09IDIgKQpYKwpYIAkJCQkv
 L1RlbGVwaG9uZSBjb25uZWN0aW9uClggCQkJY2FzZSAnYSc6ClggCQkJCW1lbWJlci0+dmFkX2Zs
 YWcgPSAxIDsKWCAJCQljYXNlICdUJzoKWCAJCQkJbWVtYmVyLT52aWFfdGVsZXBob25lID0gMTsK
 WCAJCQkJYnJlYWs7ClgtI2VuZGlmClgrClggCQkJY2FzZSAnSCc6ClggCQkJCW1lbWJlci0+aG9s
 ZF9mbGFnID0gMTsKWCAJCQkJYnJlYWs7ClggClgrCQkJY2FzZSAndyc6ClgrCQkJCW1lbWJlci0+
 d2FpdF9mb3JfbW9kZXJhdG9yX2ZsYWcgPSAxOwpYKwkJCQlicmVhazsKWCsKWCAJCQlkZWZhdWx0
 OgpYIAkJCQlicmVhayA7ClggCQkJfQpYIAkJfQpYIAl9ClggClgrCS8vIHNldCB0aGUgZHNwIHRv
 IG51bGwgc28gc2lsZW5jZSBkZXRlY3Rpb24gaXMgZGlzYWJsZWQgYnkgZGVmYXVsdApYKwltZW1i
 ZXItPmRzcCA9IE5VTEwgOwpYKwpYICNpZiAoIFNJTERFVCA9PSAyICkKWCAJLy8KWCAJLy8gY29u
 ZmlndXJlIHNpbGVuY2UgZGV0ZWN0aW9uIGFuZCBwcmVwcm9jZXNzaW5nClhAQCAtMTI1OCwxNiAr
 MTU0OCw5IEBAClggClggCS8vIHNldCBtZW1iZXIncyBhdWRpbyBmb3JtYXRzLCB0YWtpbmcgZHNw
 IHByZXByb2Nlc3NpbmcgaW50byBhY2NvdW50ClggCS8vICggY2hhbi0+bmF0aXZlZm9ybWF0cywg
 QVNUX0ZPUk1BVF9TTElORUFSLCBBU1RfRk9STUFUX1VMQVcsIEFTVF9GT1JNQVRfR1NNICkKWC0j
 aWYgKCBTSUxERVQgPT0gMiApClgtI2lmbmRlZglBQ19VU0VfRzcyMgpYLQltZW1iZXItPnJlYWRf
 Zm9ybWF0ID0gKCBtZW1iZXItPmRzcCA9PSBOVUxMICkgPyBjaGFuLT5uYXRpdmVmb3JtYXRzIDog
 QVNUX0ZPUk1BVF9TTElORUFSIDsKWC0jZWxzZQpYLQltZW1iZXItPnJlYWRfZm9ybWF0ID0gKCBt
 ZW1iZXItPmRzcCA9PSBOVUxMICkgPyBjaGFuLT5uYXRpdmVmb3JtYXRzIDogQVNUX0ZPUk1BVF9T
 TElORUFSMTYgOwpYLSNlbmRpZgpYLSNlbHNlClgtCW1lbWJlci0+cmVhZF9mb3JtYXQgPSBjaGFu
 LT5uYXRpdmVmb3JtYXRzIDsKWC0jZW5kaWYKWCsJbWVtYmVyLT5yZWFkX2Zvcm1hdCA9ICggbWVt
 YmVyLT5kc3AgPT0gTlVMTCApID8gY2hhbi0+bmF0aXZlZm9ybWF0cyA6IEFTVF9DT05GX0ZPUk1B
 VCA7ClggCW1lbWJlci0+d3JpdGVfZm9ybWF0ID0gY2hhbi0+bmF0aXZlZm9ybWF0czsKWCsKWCAJ
 Ly8gMS4yIG9yIDEuMysKWCAjaWZkZWYgQVNUX0ZPUk1BVF9BVURJT19NQVNLClggClhAQCAtMTI3
 NiwxMDAgKzE1NTksMTkgQEAKWCAjZW5kaWYKWCAKWCAJLy90cmFuc2xhdGlvbiBwYXRocyAoIGFz
 dF90cmFuc2xhdG9yX2J1aWxkX3BhdGgoKSByZXR1cm5zIG51bGwgaWYgZm9ybWF0cyBtYXRjaCAp
 ClgtI2lmbmRlZglBQ19VU0VfRzcyMgpYLQltZW1iZXItPnRvX3NsaW5lYXIgPSBhc3RfdHJhbnNs
 YXRvcl9idWlsZF9wYXRoKCBBU1RfRk9STUFUX1NMSU5FQVIsIG1lbWJlci0+cmVhZF9mb3JtYXQg
 KSA7ClgtCW1lbWJlci0+ZnJvbV9zbGluZWFyID0gYXN0X3RyYW5zbGF0b3JfYnVpbGRfcGF0aCgg
 bWVtYmVyLT53cml0ZV9mb3JtYXQsIEFTVF9GT1JNQVRfU0xJTkVBUiApIDsKWC0jZWxzZQpYLQlt
 ZW1iZXItPnRvX3NsaW5lYXIgPSBhc3RfdHJhbnNsYXRvcl9idWlsZF9wYXRoKCBBU1RfRk9STUFU
 X1NMSU5FQVIxNiwgbWVtYmVyLT5yZWFkX2Zvcm1hdCApIDsKWC0JbWVtYmVyLT5mcm9tX3NsaW5l
 YXIgPSBhc3RfdHJhbnNsYXRvcl9idWlsZF9wYXRoKCBtZW1iZXItPndyaXRlX2Zvcm1hdCwgQVNU
 X0ZPUk1BVF9TTElORUFSMTYgKSA7ClgtI2VuZGlmClgrCW1lbWJlci0+dG9fc2xpbmVhciA9IGFz
 dF90cmFuc2xhdG9yX2J1aWxkX3BhdGgoIEFTVF9DT05GX0ZPUk1BVCwgbWVtYmVyLT5yZWFkX2Zv
 cm1hdCApIDsKWCsJbWVtYmVyLT5mcm9tX3NsaW5lYXIgPSBhc3RfdHJhbnNsYXRvcl9idWlsZF9w
 YXRoKCBtZW1iZXItPndyaXRlX2Zvcm1hdCwgQVNUX0NPTkZfRk9STUFUICkgOwpYIApYIAkvLyBp
 bmRleCBmb3IgY29udmVydGVkX2ZyYW1lcyBhcnJheQpYLQlzd2l0Y2ggKCBtZW1iZXItPndyaXRl
 X2Zvcm1hdCApClgtCXsKWC0jaWZuZGVmCUFDX1VTRV9HNzIyClgtCQljYXNlIEFTVF9GT1JNQVRf
 U0xJTkVBUjoKWC0jZWxzZQpYLQkJY2FzZSBBU1RfRk9STUFUX1NMSU5FQVIxNjoKWC0jZW5kaWYK
 WC0JCQltZW1iZXItPndyaXRlX2Zvcm1hdF9pbmRleCA9IEFDX1NMSU5FQVJfSU5ERVggOwpYLQkJ
 CWJyZWFrIDsKWC0KWC0JCWNhc2UgQVNUX0ZPUk1BVF9VTEFXOgpYLQkJCW1lbWJlci0+d3JpdGVf
 Zm9ybWF0X2luZGV4ID0gQUNfVUxBV19JTkRFWCA7ClgtCQkJYnJlYWsgOwpYLQpYLQkgICAgICAg
 IGNhc2UgQVNUX0ZPUk1BVF9BTEFXOgpYLQkJCW1lbWJlci0+d3JpdGVfZm9ybWF0X2luZGV4ID0g
 QUNfQUxBV19JTkRFWCA7ClgtCQkJYnJlYWsgOwpYLQpYLQkJY2FzZSBBU1RfRk9STUFUX0dTTToK
 WC0JCQltZW1iZXItPndyaXRlX2Zvcm1hdF9pbmRleCA9IEFDX0dTTV9JTkRFWCA7ClgtCQkJYnJl
 YWsgOwpYLSNpZmRlZglBQ19VU0VfU1BFRVgKWC0JCWNhc2UgQVNUX0ZPUk1BVF9TUEVFWDoKWC0J
 CQltZW1iZXItPndyaXRlX2Zvcm1hdF9pbmRleCA9IEFDX1NQRUVYX0lOREVYOwpYLQkJCWJyZWFr
 OwpYLSNlbmRpZgpYLSNpZmRlZiBBQ19VU0VfRzcyOUEKWC0JCWNhc2UgQVNUX0ZPUk1BVF9HNzI5
 QToKWC0JCQltZW1iZXItPndyaXRlX2Zvcm1hdF9pbmRleCA9IEFDX0c3MjlBX0lOREVYOwpYLQkJ
 CWJyZWFrOwpYLSNlbmRpZgpYLSNpZmRlZiBBQ19VU0VfRzcyMgpYLQkJY2FzZSBBU1RfRk9STUFU
 X0c3MjI6ClgtCQkJbWVtYmVyLT53cml0ZV9mb3JtYXRfaW5kZXggPSBBQ19HNzIyX0lOREVYOwpY
 LQkJCWJyZWFrOwpYLSNlbmRpZgpYLQkJZGVmYXVsdDoKWC0JCQlicmVhazsKWC0JfQpYLQpYLQkv
 LyBpbmRleCBmb3IgY29udmVydGVkX2ZyYW1lcyBhcnJheQpYLQlzd2l0Y2ggKCBtZW1iZXItPnJl
 YWRfZm9ybWF0ICkKWC0JewpYLSNpZm5kZWYJQUNfVVNFX0c3MjIKWC0JCWNhc2UgQVNUX0ZPUk1B
 VF9TTElORUFSOgpYLSNlbHNlClgtCQljYXNlIEFTVF9GT1JNQVRfU0xJTkVBUjE2OgpYLSNlbmRp
 ZgpYLQkJCW1lbWJlci0+cmVhZF9mb3JtYXRfaW5kZXggPSBBQ19TTElORUFSX0lOREVYIDsKWC0J
 CQlicmVhayA7ClgtClgtCQljYXNlIEFTVF9GT1JNQVRfVUxBVzoKWC0JCQltZW1iZXItPnJlYWRf
 Zm9ybWF0X2luZGV4ID0gQUNfVUxBV19JTkRFWCA7ClgtCQkJYnJlYWsgOwpYLQpYLQkJY2FzZSBB
 U1RfRk9STUFUX0FMQVc6ClgtCQkJbWVtYmVyLT5yZWFkX2Zvcm1hdF9pbmRleCA9IEFDX0FMQVdf
 SU5ERVggOwpYLQkJCWJyZWFrIDsKWC0KWC0JCWNhc2UgQVNUX0ZPUk1BVF9HU006ClgtCQkJbWVt
 YmVyLT5yZWFkX2Zvcm1hdF9pbmRleCA9IEFDX0dTTV9JTkRFWCA7ClgtCQkJYnJlYWsgOwpYLSNp
 ZmRlZglBQ19VU0VfU1BFRVgKWC0JCWNhc2UgQVNUX0ZPUk1BVF9TUEVFWDoKWC0JCQltZW1iZXIt
 PnJlYWRfZm9ybWF0X2luZGV4ID0gQUNfU1BFRVhfSU5ERVg7ClgtCQkJYnJlYWs7ClgtI2VuZGlm
 ClgtI2lmZGVmIEFDX1VTRV9HNzI5QQpYLQkJY2FzZSBBU1RfRk9STUFUX0c3MjlBOgpYLQkJCW1l
 bWJlci0+cmVhZF9mb3JtYXRfaW5kZXggPSBBQ19HNzI5QV9JTkRFWDsKWC0JCQlicmVhazsKWC0j
 ZW5kaWYKWC0jaWZkZWYgQUNfVVNFX0c3MjIKWC0JCWNhc2UgQVNUX0ZPUk1BVF9HNzIyOgpYLQkJ
 CW1lbWJlci0+cmVhZF9mb3JtYXRfaW5kZXggPSBBQ19HNzIyX0lOREVYOwpYLQkJCWJyZWFrOwpY
 LSNlbmRpZgpYLQkJZGVmYXVsdDoKWC0JCQlicmVhazsKWC0JfQpYKwltZW1iZXItPndyaXRlX2Zv
 cm1hdF9pbmRleCA9IGNvbnZlcnRfZm9ybWF0X3RvX2luZGV4KCBtZW1iZXItPndyaXRlX2Zvcm1h
 dCApOwpYKwltZW1iZXItPnJlYWRfZm9ybWF0X2luZGV4ID0gY29udmVydF9mb3JtYXRfdG9faW5k
 ZXgoIG1lbWJlci0+cmVhZF9mb3JtYXQgKTsKWCAKWCAJLy8gc21vb3RoZXIgZGVmYXVsdHMuClgt
 CW1lbWJlci0+c21vb3RoX211bHRpcGxlID0gMTsKWCsJbWVtYmVyLT5zbW9vdGhfbXVsdGlwbGUg
 PTE7ClggCW1lbWJlci0+c21vb3RoX3NpemVfaW4gPSAtMTsKWCAJbWVtYmVyLT5zbW9vdGhfc2l6
 ZV9vdXQgPSAtMTsKWCsJbWVtYmVyLT5pblNtb290aGVyPSBOVUxMOwpYKwltZW1iZXItPm91dFBh
 Y2tlcj0gTlVMTDsKWCAKWCAJc3dpdGNoIChtZW1iZXItPnJlYWRfZm9ybWF0KXsKWCAJCS8qIHRo
 ZXNlIGFzc3VtcHRpb25zIG1heSBiZSBpbmNvcnJlY3QgKi8KWEBAIC0xMzkyLDE4ICsxNTk0LDEy
 IEBAClggCQkJbWVtYmVyLT5zbW9vdGhfc2l6ZV9pbiAgPSAzOTsgIC8vIGJ5dGVzClggCQkJbWVt
 YmVyLT5zbW9vdGhfc2l6ZV9vdXQgPSAxNjA7IC8vIHNhbXBsZXMKWCAJCQkqLwpYLQkJCWJyZWFr
 OwpYLSNlbmRpZgpYLSNpZm5kZWYJQUNfVVNFX0c3MjIKWC0JCWNhc2UgQVNUX0ZPUk1BVF9TTElO
 RUFSOgpYLQkJCW1lbWJlci0+c21vb3RoX3NpemVfaW4gID0gMzIwOyAvL2J5dGVzClgtCQkJbWVt
 YmVyLT5zbW9vdGhfc2l6ZV9vdXQgPSAxNjA7IC8vc2FtcGxlcwpYLSNlbHNlClgtCQljYXNlIEFT
 VF9GT1JNQVRfU0xJTkVBUjE2OgpYLQkJCW1lbWJlci0+c21vb3RoX3NpemVfaW4gID0gNjQwOyAv
 L2J5dGVzClgtCQkJbWVtYmVyLT5zbW9vdGhfc2l6ZV9vdXQgPSAzMjA7IC8vc2FtcGxlcwpYICNl
 bmRpZgpYIAkJCWJyZWFrOwpYKwkJY2FzZSBBU1RfQ09ORl9GT1JNQVQ6ClgrCQkJbWVtYmVyLT5z
 bW9vdGhfc2l6ZV9pbiAgPSBBU1RfQ09ORl9GUkFNRV9EQVRBX1NJWkU7IC8vYnl0ZXMKWCsJCQlt
 ZW1iZXItPnNtb290aF9zaXplX291dCA9IEFTVF9DT05GX0JMT0NLX1NBTVBMRVM7IC8vc2FtcGxl
 cwpYKwkJCWJyZWFrOwpYICNpZmRlZiBBQ19VU0VfRzcyMgpYIAkJY2FzZSBBU1RfRk9STUFUX0c3
 MjI6ClggCQkJLyoKWEBAIC0xNDExLDcgKzE2MDcsOCBAQApYIAkJCWJyZWFrOwpYICNlbmRpZgpY
 IAkJZGVmYXVsdDoKWC0JCQlicmVhazsKWCsJCQltZW1iZXItPmluU21vb3RoZXIgPSBOVUxMOyAv
 L2Rvbid0IHVzZSBzbW9vdGhlciBmb3IgdGhpcyB0eXBlLgpYKwkJCS8vREVCVUcoInNtb290aGVy
 IGlzIE5VTEwgZm9yIG1lbWJlci0+cmVhZF9mb3JtYXQgPT4gJWRcbiIsIG1lbWJlci0+cmVhZF9m
 b3JtYXQpIDsKWCAJfQpYIApYIAlpZiAobWVtYmVyLT5zbW9vdGhfc2l6ZV9pbiA+IDApewpYQEAg
 LTE0NjYsNyArMTY2Myw3IEBAClggCWlmICggbWVtYmVyLT5mbGFncyAhPSBOVUxMICkKWCAJewpY
 IAkJLy8gISEhIERFQlVHSU5HICEhIQpYLQkJREVCVUcoImZyZWVpbmcgbWVtYmVyIGZsYWdzLCBu
 YW1lID0+ICVzXG4iLCBtZW1iZXItPmNoYW4tPm5hbWUpIDsKWCsJCURFQlVHKCJmcmVlaW5nIG1l
 bWJlciBmbGFncywgbmFtZSA9PiAlc1xuIiwgbWVtYmVyLT5jaGFubmVsX25hbWUpIDsKWCAJCWZy
 ZWUoIG1lbWJlci0+ZmxhZ3MgKSA7ClggCX0KWCAKWEBAIC0xNDc3LDcgKzE2NzQsNyBAQApYIAlj
 b25mX2ZyYW1lKiBjZiA7ClggClggCS8vICEhISBERUJVR0lORyAhISEKWC0JREVCVUcoImRlbGV0
 aW5nIG1lbWJlciBpbnB1dCBmcmFtZXMsIG5hbWUgPT4gJXNcbiIsIG1lbWJlci0+Y2hhbi0+bmFt
 ZSkgOwpYKwlERUJVRygiZGVsZXRpbmcgbWVtYmVyIGlucHV0IGZyYW1lcywgbmFtZSA9PiAlc1xu
 IiwgbWVtYmVyLT5jaGFubmVsX25hbWUpIDsKWCAKWCAJLy8gaW5jb21pbmcgZnJhbWVzClggCWNm
 ID0gbWVtYmVyLT5pbkZyYW1lcyA7ClhAQCAtMTUwMSw3ICsxNjk4LDcgQEAKWCAJfQpYICNlbmRp
 ZgpYIAkvLyAhISEgREVCVUdJTkcgISEhClgtCURFQlVHKCJkZWxldGluZyBtZW1iZXIgb3V0cHV0
 IGZyYW1lcywgbmFtZSA9PiAlc1xuIiwgbWVtYmVyLT5jaGFuLT5uYW1lKSA7ClgrCURFQlVHKCJk
 ZWxldGluZyBtZW1iZXIgb3V0cHV0IGZyYW1lcywgbmFtZSA9PiAlc1xuIiwgbWVtYmVyLT5jaGFu
 bmVsX25hbWUpIDsKWCAKWCAJLy8gb3V0Z29pbmcgZnJhbWVzClggCWNmID0gbWVtYmVyLT5vdXRG
 cmFtZXMgOwpYQEAgLTE1MjgsMTMgKzE3MjUsMTMgQEAKWCAJaWYgKCBtZW1iZXItPmRzcCAhPSBO
 VUxMICkKWCAJewpYIAkJLy8gISEhIERFQlVHSU5HICEhIQpYLQkJREVCVUcoImRlc3Ryb3lpbmcg
 bWVtYmVyIHByZXByb2Nlc3NvciwgbmFtZSA9PiAlc1xuIiwgbWVtYmVyLT5jaGFuLT5uYW1lKSA7
 ClgrCQlERUJVRygiZGVzdHJveWluZyBtZW1iZXIgcHJlcHJvY2Vzc29yLCBuYW1lID0+ICVzXG4i
 LCBtZW1iZXItPmNoYW5uZWxfbmFtZSkgOwpYIAkJc3BlZXhfcHJlcHJvY2Vzc19zdGF0ZV9kZXN0
 cm95KCBtZW1iZXItPmRzcCApIDsKWCAJfQpYICNlbmRpZgpYIApYIAkvLyAhISEgREVCVUdJTkcg
 ISEhClgtCURFQlVHKCJmcmVlaW5nIG1lbWJlciB0cmFuc2xhdG9yIHBhdGhzLCBuYW1lID0+ICVz
 XG4iLCBtZW1iZXItPmNoYW4tPm5hbWUpIDsKWCsJREVCVUcoImZyZWVpbmcgbWVtYmVyIHRyYW5z
 bGF0b3IgcGF0aHMsIG5hbWUgPT4gJXNcbiIsIG1lbWJlci0+Y2hhbm5lbF9uYW1lKSA7ClggClgg
 CS8vIGZyZWUgdGhlIG1peGluZyB0cmFuc2xhdG9ycwpYIAlhc3RfdHJhbnNsYXRvcl9mcmVlX3Bh
 dGgoIG1lbWJlci0+dG9fc2xpbmVhciApIDsKWEBAIC0xNTQ0LDEyICsxNzQxLDI3IEBAClggCS8v
 IG1lbWJlciBzbyB3ZSBjYW4gcmV0dXJuIGl0ClggCXN0cnVjdCBhc3RfY29uZl9tZW1iZXIqIG5t
 ID0gbWVtYmVyLT5uZXh0IDsKWCAKWCsJLy8gISEhIERFQlVHSU5HICEhIQpYKwlERUJVRygiZnJl
 ZWluZyBtZW1iZXIgY2hhbm5lbCBuYW1lLCBuYW1lID0+ICVzXG4iLCBtZW1iZXItPmNoYW5uZWxf
 bmFtZSkgOwpYKwpYKwkvLyBmcmVlIHRoZSBtZW1iZXIncyBjb3B5IGZvciB0aGUgY2hhbm5lbCBu
 YW1lClgrCWZyZWUoIG1lbWJlci0+Y2hhbm5lbF9uYW1lICkgOwpYKwpYKwkvLyBmcmVlIHRoZSBt
 ZW1iZXIncyBjb3B5IG9mIHRoZSB1bmlxdWVpZApYKwlmcmVlKCBtZW1iZXItPnVuaXF1ZWlkICkg
 OwpYKwpYKwkvLyBmcmVlIHRoZSBtZW1iZXIncyBjb3B5IG9mIHRoZSBjb25mZXJlbmNlIG5hbWUK
 WCsJZnJlZShtZW1iZXItPmNvbmZfbmFtZSk7ClgrClggCS8vIGZyZWUgdGhlIG1lbWJlcidzIGNv
 cHkgb2YgdGhlIGNvbmZlcmVuY2UgdHlwZQpYIAlmcmVlKG1lbWJlci0+dHlwZSk7ClggClggCS8v
 IGZyZWUgdGhlIG1lbWJlcidzIGNvcHkgb2YgdGhlIHNweWVlIGNoYW5uZWwgbmFtZQpYIAlmcmVl
 KG1lbWJlci0+c3B5ZWVfY2hhbm5lbF9uYW1lKTsKWCAKWCsJLy8gZnJlZSB0aGUgd2VsY29tZSBw
 cm9tcHQKWCsJZnJlZShtZW1iZXItPndlbGNvbWVfcHJvbXB0KTsKWCsKWCAJLy8gY2xlYXIgYWxs
 IHNvdW5kcwpYIAlzdHJ1Y3QgYXN0X2NvbmZfc291bmRxICpzb3VuZCA9IG1lbWJlci0+c291bmRx
 OwpYIAlzdHJ1Y3QgYXN0X2NvbmZfc291bmRxICpuZXh0OwpYQEAgLTE2ODgsOSArMTkwMCw3IEBA
 ClggClggY29uZl9mcmFtZSogZ2V0X2luY29taW5nX2ZyYW1lKCBzdHJ1Y3QgYXN0X2NvbmZfbWVt
 YmVyICptZW1iZXIgKQpYIHsKWC0jaWZkZWYgQVNUX0NPTkZfQ0FDSEVfTEFTVF9GUkFNRQpYIAlj
 b25mX2ZyYW1lICpjZl9yZXN1bHQ7ClgtI2VuZGlmClggI2lmZGVmCUFQUF9LT05GRVJFTkNFX0RF
 QlVHClggCS8vClggCS8vIHNhbml0eSBjaGVja3MKWEBAIC0xNzM3LDcgKzE5NDcsNyBAQApYIAkJ
 fQpYIAkJZWxzZQpYIAkJewpYLQkJCURFQlVHKCJyZXBlYXRpbmcgY2FjaGVkIGZyYW1lLCBjaGFu
 bmVsID0+ICVzLCBpbkZyYW1lc1JlcGVhdExhc3QgPT4gJWRcbiIsIG1lbWJlci0+Y2hhbi0+bmFt
 ZSwgbWVtYmVyLT5pbkZyYW1lc1JlcGVhdExhc3QpIDsKWCsJCQlERUJVRygicmVwZWF0aW5nIGNh
 Y2hlZCBmcmFtZSwgY2hhbm5lbCA9PiAlcywgaW5GcmFtZXNSZXBlYXRMYXN0ID0+ICVkXG4iLCBt
 ZW1iZXItPmNoYW5uZWxfbmFtZSwgbWVtYmVyLT5pbkZyYW1lc1JlcGVhdExhc3QpIDsKWCAKWCAJ
 CQkvLyBpbmNyZW1lbnQgY291bnRlcgpYIAkJCW1lbWJlci0+aW5GcmFtZXNSZXBlYXRMYXN0Kysg
 OwpYQEAgLTE3NTAsNyArMTk2MCw3IEBAClggCX0KWCAJZWxzZSBpZiAoIG1lbWJlci0+b2theVRv
 Q2FjaGVMYXN0ID09IDAgJiYgbWVtYmVyLT5pbkZyYW1lc0NvdW50ID49IDMgKQpYIAl7ClgtCQlE
 RUJVRygiZW5hYmxpbmcgY2FjaGVkIGZyYW1lLCBjaGFubmVsID0+ICVzLCBpbmNvbWluZyA9PiAl
 ZCwgb3V0Z29pbmcgPT4gJWRcbiIsIG1lbWJlci0+Y2hhbi0+bmFtZSwgbWVtYmVyLT5pbkZyYW1l
 c0NvdW50LCBtZW1iZXItPm91dEZyYW1lc0NvdW50KSA7ClgrCQlERUJVRygiZW5hYmxpbmcgY2Fj
 aGVkIGZyYW1lLCBjaGFubmVsID0+ICVzLCBpbmNvbWluZyA9PiAlZCwgb3V0Z29pbmcgPT4gJWRc
 biIsIG1lbWJlci0+Y2hhbm5lbF9uYW1lLCBtZW1iZXItPmluRnJhbWVzQ291bnQsIG1lbWJlci0+
 b3V0RnJhbWVzQ291bnQpIDsKWCAKWCAJCS8vIHR1cm4gb24gJ29rYXkgdG8gY2FjaGUnIGZsYWcK
 WCAJCW1lbWJlci0+b2theVRvQ2FjaGVMYXN0ID0gMSA7ClhAQCAtMTg1MSw3ICsyMDYxLDcgQEAK
 WCAJLy8gV2UgaGF2ZSB0byBkcm9wIGlmIHRoZSBxdWV1ZSBpcyBmdWxsIQpYIAlpZiAoIG1lbWJl
 ci0+aW5WaWRlb0ZyYW1lc0NvdW50ID49IEFTVF9DT05GX01BWF9WSURFT19RVUVVRSApClggCXsK
 WC0JCURFQlVHKCJ1bmFibGUgdG8gcXVldWUgaW5jb21pbmcgVklERU8gZnJhbWUsIGNoYW5uZWwg
 PT4gJXMsIGluY29taW5nID0+ICVkLCBvdXRnb2luZyA9PiAlZFxuIiwgbWVtYmVyLT5jaGFuLT5u
 YW1lLCBtZW1iZXItPmluVmlkZW9GcmFtZXNDb3VudCwgbWVtYmVyLT5vdXRWaWRlb0ZyYW1lc0Nv
 dW50KSA7ClgrCQlERUJVRygidW5hYmxlIHRvIHF1ZXVlIGluY29taW5nIFZJREVPIGZyYW1lLCBj
 aGFubmVsID0+ICVzLCBpbmNvbWluZyA9PiAlZCwgb3V0Z29pbmcgPT4gJWRcbiIsIG1lbWJlci0+
 Y2hhbm5lbF9uYW1lLCBtZW1iZXItPmluVmlkZW9GcmFtZXNDb3VudCwgbWVtYmVyLT5vdXRWaWRl
 b0ZyYW1lc0NvdW50KSA7ClggCQlhc3RfbXV0ZXhfdW5sb2NrKCZtZW1iZXItPmxvY2spOwpYIAkJ
 cmV0dXJuIC0xIDsKWCAJfQpYQEAgLTE5MjMsNyArMjEzMyw3IEBAClggCS8vIFdlIGhhdmUgdG8g
 ZHJvcCBpZiB0aGUgcXVldWUgaXMgZnVsbCEKWCAJaWYgKCBtZW1iZXItPmluRFRNRkZyYW1lc0Nv
 dW50ID49IEFTVF9DT05GX01BWF9EVE1GX1FVRVVFICkKWCAJewpYLQkJREVCVUcoInVuYWJsZSB0
 byBxdWV1ZSBpbmNvbWluZyBEVE1GIGZyYW1lLCBjaGFubmVsID0+ICVzLCBpbmNvbWluZyA9PiAl
 ZCwgb3V0Z29pbmcgPT4gJWRcbiIsIG1lbWJlci0+Y2hhbi0+bmFtZSwgbWVtYmVyLT5pbkRUTUZG
 cmFtZXNDb3VudCwgbWVtYmVyLT5vdXREVE1GRnJhbWVzQ291bnQpIDsKWCsJCURFQlVHKCJ1bmFi
 bGUgdG8gcXVldWUgaW5jb21pbmcgRFRNRiBmcmFtZSwgY2hhbm5lbCA9PiAlcywgaW5jb21pbmcg
 PT4gJWQsIG91dGdvaW5nID0+ICVkXG4iLCBtZW1iZXItPmNoYW5uZWxfbmFtZSwgbWVtYmVyLT5p
 bkRUTUZGcmFtZXNDb3VudCwgbWVtYmVyLT5vdXREVE1GRnJhbWVzQ291bnQpIDsKWCAJCWFzdF9t
 dXRleF91bmxvY2soJm1lbWJlci0+bG9jayk7ClggCQlyZXR1cm4gLTEgOwpYIAl9ClhAQCAtMjAx
 Miw3ICsyMjIyLDcgQEAKWCAJCQkJLy8gY291bnQgc2VxdWVudGlhbCBkcm9wcwpYIAkJCQltZW1i
 ZXItPnNlcXVlbnRpYWxfZHJvcHMrKyA7ClggClgtCQkJCURFQlVHKCJkcm9wcGluZyBmcmFtZSBm
 cm9tIGlucHV0IGJ1ZmZlciwgY2hhbm5lbCA9PiAlcywgaW5jb21pbmcgPT4gJWQsIG91dGdvaW5n
 ID0+ICVkXG4iLCBtZW1iZXItPmNoYW4tPm5hbWUsIG1lbWJlci0+aW5GcmFtZXNDb3VudCwgbWVt
 YmVyLT5vdXRGcmFtZXNDb3VudCkgOwpYKwkJCQlERUJVRygiZHJvcHBpbmcgZnJhbWUgZnJvbSBp
 bnB1dCBidWZmZXIsIGNoYW5uZWwgPT4gJXMsIGluY29taW5nID0+ICVkLCBvdXRnb2luZyA9PiAl
 ZFxuIiwgbWVtYmVyLT5jaGFubmVsX25hbWUsIG1lbWJlci0+aW5GcmFtZXNDb3VudCwgbWVtYmVy
 LT5vdXRGcmFtZXNDb3VudCkgOwpYIApYIAkJCQkvLyBhY2NvdW50aW5nOiBjb3VudCBkcm9wcGVk
 IGluY29taW5nIGZyYW1lcwpYIAkJCQltZW1iZXItPmZyYW1lc19pbl9kcm9wcGVkKysgOwpYQEAg
 LTIwMjgsNyArMjIzOCw3IEBAClggLyoKWCAJCQllbHNlClggCQkJewpYLQkJCQlERUJVRygiaW5w
 dXQgYnVmZmVyIGxhcmdlciB0aGFuIGRyb3AgdGhyZXNob2xkLCBjaGFubmVsID0+ICVzLCBpbmNv
 bWluZyA9PiAlZCwgb3V0Z29pbmcgPT4gJWRcbiIsIG1lbWJlci0+Y2hhbi0+bmFtZSwgbWVtYmVy
 LT5pbkZyYW1lc0NvdW50LCBtZW1iZXItPm91dEZyYW1lc0NvdW50KSA7ClgrCQkJCURFQlVHKCJp
 bnB1dCBidWZmZXIgbGFyZ2VyIHRoYW4gZHJvcCB0aHJlc2hvbGQsIGNoYW5uZWwgPT4gJXMsIGlu
 Y29taW5nID0+ICVkLCBvdXRnb2luZyA9PiAlZFxuIiwgbWVtYmVyLT5jaGFubmVsX25hbWUsIG1l
 bWJlci0+aW5GcmFtZXNDb3VudCwgbWVtYmVyLT5vdXRGcmFtZXNDb3VudCkgOwpYIAkJCX0KWCAq
 LwpYIAkJfQpYQEAgLTIwNDQsNyArMjI1NCw3IEBAClggCQkvLyBjb3VudCBzZXF1ZW50aWFsIGRy
 b3BzClggCQltZW1iZXItPnNlcXVlbnRpYWxfZHJvcHMrKyA7ClggClgtCQlERUJVRygidW5hYmxl
 IHRvIHF1ZXVlIGluY29taW5nIGZyYW1lLCBjaGFubmVsID0+ICVzLCBpbmNvbWluZyA9PiAlZCwg
 b3V0Z29pbmcgPT4gJWRcbiIsIG1lbWJlci0+Y2hhbi0+bmFtZSwgbWVtYmVyLT5pbkZyYW1lc0Nv
 dW50LCBtZW1iZXItPm91dEZyYW1lc0NvdW50KSA7ClgrCQlERUJVRygidW5hYmxlIHRvIHF1ZXVl
 IGluY29taW5nIGZyYW1lLCBjaGFubmVsID0+ICVzLCBpbmNvbWluZyA9PiAlZCwgb3V0Z29pbmcg
 PT4gJWRcbiIsIG1lbWJlci0+Y2hhbm5lbF9uYW1lLCBtZW1iZXItPmluRnJhbWVzQ291bnQsIG1l
 bWJlci0+b3V0RnJhbWVzQ291bnQpIDsKWCAKWCAJCS8vIGFjY291bnRpbmc6IGNvdW50IGRyb3Bw
 ZWQgaW5jb21pbmcgZnJhbWVzClggCQltZW1iZXItPmZyYW1lc19pbl9kcm9wcGVkKysgOwpYQEAg
 LTIyMTksNyArMjQyOSw3IEBAClggCS8vClggCWlmICggbWVtYmVyLT5vdXRGcmFtZXNDb3VudCA+
 PSBBU1RfQ09ORl9NQVhfUVVFVUUgKQpYIAl7ClgtCQlERUJVRygidW5hYmxlIHRvIHF1ZXVlIG91
 dGdvaW5nIGZyYW1lLCBjaGFubmVsID0+ICVzLCBpbmNvbWluZyA9PiAlZCwgb3V0Z29pbmcgPT4g
 JWRcbiIsIG1lbWJlci0+Y2hhbi0+bmFtZSwgbWVtYmVyLT5pbkZyYW1lc0NvdW50LCBtZW1iZXIt
 Pm91dEZyYW1lc0NvdW50KSA7ClgrCQlERUJVRygidW5hYmxlIHRvIHF1ZXVlIG91dGdvaW5nIGZy
 YW1lLCBjaGFubmVsID0+ICVzLCBpbmNvbWluZyA9PiAlZCwgb3V0Z29pbmcgPT4gJWRcbiIsIG1l
 bWJlci0+Y2hhbm5lbF9uYW1lLCBtZW1iZXItPmluRnJhbWVzQ291bnQsIG1lbWJlci0+b3V0RnJh
 bWVzQ291bnQpIDsKWCAKWCAJCS8vIGFjY291bnRpbmc6IGNvdW50IGRyb3BwZWQgb3V0Z29pbmcg
 ZnJhbWVzClggCQltZW1iZXItPmZyYW1lc19vdXRfZHJvcHBlZCsrIDsKWEBAIC0yMzg2LDcgKzI1
 OTYsNyBAQApYIAkvLwpYIAlpZiAoIG1lbWJlci0+b3V0VmlkZW9GcmFtZXNDb3VudCA+PSBBU1Rf
 Q09ORl9NQVhfVklERU9fUVVFVUUpClggCXsKWC0JCURFQlVHKCJ1bmFibGUgdG8gcXVldWUgb3V0
 Z29pbmcgVklERU8gZnJhbWUsIGNoYW5uZWwgPT4gJXMsIGluY29taW5nID0+ICVkLCBvdXRnb2lu
 ZyA9PiAlZFxuIiwgbWVtYmVyLT5jaGFuLT5uYW1lLCBtZW1iZXItPmluVmlkZW9GcmFtZXNDb3Vu
 dCwgbWVtYmVyLT5vdXRWaWRlb0ZyYW1lc0NvdW50KSA7ClgrCQlERUJVRygidW5hYmxlIHRvIHF1
 ZXVlIG91dGdvaW5nIFZJREVPIGZyYW1lLCBjaGFubmVsID0+ICVzLCBpbmNvbWluZyA9PiAlZCwg
 b3V0Z29pbmcgPT4gJWRcbiIsIG1lbWJlci0+Y2hhbm5lbF9uYW1lLCBtZW1iZXItPmluVmlkZW9G
 cmFtZXNDb3VudCwgbWVtYmVyLT5vdXRWaWRlb0ZyYW1lc0NvdW50KSA7ClggClggCQkvLyBhY2Nv
 dW50aW5nOiBjb3VudCBkcm9wcGVkIG91dGdvaW5nIGZyYW1lcwpYIAkJbWVtYmVyLT52aWRlb19m
 cmFtZXNfb3V0X2Ryb3BwZWQrKyA7ClhAQCAtMjU3Myw3ICsyNzgzLDcgQEAKWCAJLy8KWCAJaWYg
 KCBtZW1iZXItPm91dERUTUZGcmFtZXNDb3VudCA+PSBBU1RfQ09ORl9NQVhfRFRNRl9RVUVVRSkK
 WCAJewpYLQkJREVCVUcoInVuYWJsZSB0byBxdWV1ZSBvdXRnb2luZyBEVE1GIGZyYW1lLCBjaGFu
 bmVsID0+ICVzLCBpbmNvbWluZyA9PiAlZCwgb3V0Z29pbmcgPT4gJWRcbiIsIG1lbWJlci0+Y2hh
 bi0+bmFtZSwgbWVtYmVyLT5pbkRUTUZGcmFtZXNDb3VudCwgbWVtYmVyLT5vdXREVE1GRnJhbWVz
 Q291bnQpIDsKWCsJCURFQlVHKCJ1bmFibGUgdG8gcXVldWUgb3V0Z29pbmcgRFRNRiBmcmFtZSwg
 Y2hhbm5lbCA9PiAlcywgaW5jb21pbmcgPT4gJWQsIG91dGdvaW5nID0+ICVkXG4iLCBtZW1iZXIt
 PmNoYW5uZWxfbmFtZSwgbWVtYmVyLT5pbkRUTUZGcmFtZXNDb3VudCwgbWVtYmVyLT5vdXREVE1G
 RnJhbWVzQ291bnQpIDsKWCAKWCAJCS8vIGFjY291bnRpbmc6IGNvdW50IGRyb3BwZWQgb3V0Z29p
 bmcgZnJhbWVzClggCQltZW1iZXItPmR0bWZfZnJhbWVzX291dF9kcm9wcGVkKysgOwpYQEAgLTI2
 NTAsNyArMjg2MCw3IEBAClggCS8vClggCWlmICggbWVtYmVyLT5vdXRUZXh0RnJhbWVzQ291bnQg
 Pj0gQVNUX0NPTkZfTUFYX1RFWFRfUVVFVUUpClggCXsKWC0JCURFQlVHKCJ1bmFibGUgdG8gcXVl
 dWUgb3V0Z29pbmcgdGV4dCBmcmFtZSwgY2hhbm5lbCA9PiAlcywgaW5jb21pbmcgPT4gJWQsIG91
 dGdvaW5nID0+ICVkXG4iLCBtZW1iZXItPmNoYW4tPm5hbWUsIG1lbWJlci0+aW5UZXh0RnJhbWVz
 Q291bnQsIG1lbWJlci0+b3V0VGV4dEZyYW1lc0NvdW50KSA7ClgrCQlERUJVRygidW5hYmxlIHRv
 IHF1ZXVlIG91dGdvaW5nIHRleHQgZnJhbWUsIGNoYW5uZWwgPT4gJXMsIGluY29taW5nID0+ICVk
 LCBvdXRnb2luZyA9PiAlZFxuIiwgbWVtYmVyLT5jaGFubmVsX25hbWUsIG1lbWJlci0+aW5UZXh0
 RnJhbWVzQ291bnQsIG1lbWJlci0+b3V0VGV4dEZyYW1lc0NvdW50KSA7ClggClggCQkvLyBhY2Nv
 dW50aW5nOiBjb3VudCBkcm9wcGVkIG91dGdvaW5nIGZyYW1lcwpYIAkJbWVtYmVyLT50ZXh0X2Zy
 YW1lc19vdXRfZHJvcHBlZCsrIDsKWEBAIC0yNzAwLDYgKzI5MTAsNDcgQEAKWCAjZW5kaWYKWCAK
 WCAvLwpYKy8vIG1hbmFnZXIgZnVuY3Rpb25zClgrLy8KWCsKWCt2b2lkIHNlbmRfc3RhdGVfY2hh
 bmdlX25vdGlmaWNhdGlvbnMoIHN0cnVjdCBhc3RfY29uZl9tZW1iZXIqIG1lbWJlciApClgrewpY
 KwkvL0RFQlVHKCJzZW5kaW5nIHN0YXRlIGNoYW5nZSBub3RpZmljYXRpb25cbiIpIDsKWCsKWCsJ
 Ly8gbG9vcCB0aHJvdWdoIGxpc3Qgb2YgbWVtYmVycywgc2VuZGluZyBzdGF0ZSBjaGFuZ2VzClgr
 CXdoaWxlICggbWVtYmVyICE9IE5VTEwgKQpYKwl7ClgrCQkvLyBoYXMgdGhlIHN0YXRlIGNoYW5n
 ZWQgc2luY2UgbGFzdCB0aW1lIHRocm91Z2ggdGhpcyBsb29wPwpYKwkJaWYgKCBtZW1iZXItPnNw
 ZWFraW5nX3N0YXRlX25vdGlmeSApClgrCQl7ClgrCQkJbWFuYWdlcl9ldmVudCgKWCsJCQkJRVZF
 TlRfRkxBR19DQUxMLApYKwkJCQkiQ29uZmVyZW5jZVN0YXRlIiwKWCsJCQkJIkNvbmZlcmVuY2VO
 YW1lOiAlc1xyXG4iClgrCQkJCSJNZW1iZXJJZDogJWRcclxuIgpYKwkJCQkiQ2hhbm5lbDogJXNc
 clxuIgpYKwkJCQkiRmxhZ3M6ICVzXHJcbiIKWCsJCQkJIlN0YXRlOiAlc1xyXG4iLApYKwkJCQlt
 ZW1iZXItPmNvbmZfbmFtZSwKWCsJCQkJbWVtYmVyLT5pZCwKWCsJCQkJbWVtYmVyLT5jaGFubmVs
 X25hbWUsClgrCQkJCW1lbWJlci0+ZmxhZ3MsClgrCQkJCSggKCBtZW1iZXItPnNwZWFraW5nX3N0
 YXRlID09IDEgKSA/ICJzcGVha2luZyIgOiAic2lsZW50IiApClgrCQkJKSA7ClgrClgrCQkJREVC
 VUcoIm1lbWJlciBzdGF0ZSBjaGFuZ2VkLCBjaGFubmVsID0+ICVzLCBzdGF0ZSA9PiAlZCwgaW5j
 b21pbmcgPT4gJWQsIG91dGdvaW5nID0+ICVkXG4iLCBtZW1iZXItPmNoYW5uZWxfbmFtZSwgbWVt
 YmVyLT5zcGVha2luZ19zdGF0ZSwgbWVtYmVyLT5pbkZyYW1lc0NvdW50LCBtZW1iZXItPm91dEZy
 YW1lc0NvdW50KSA7ClgrClgrCQkJbWVtYmVyLT5zcGVha2luZ19zdGF0ZV9ub3RpZnkgPSAwOwpY
 KwkJfQpYKwpYKwkJLy8gbW92ZSB0aGUgcG9pbnRlciB0byB0aGUgbmV4dCBtZW1iZXIKWCsJCW1l
 bWJlciA9IG1lbWJlci0+bmV4dCA7ClgrCX0KWCsKWCsJcmV0dXJuIDsKWCt9ClgrClgrLy8KWCAv
 LyBhc3RfcGFja2VyLCBhZGFwdGVkIGZyb20gYXN0X3Ntb290aGVyClggLy8gcGFjayBtdWx0aXBs
 ZSBmcmFtZXMgdG9nZXRoZXIgaW50byBvbmUgcGFja2V0IG9uIHRoZSB3aXJlLgpYIC8vClhAQCAt
 MjcxMCw4ICsyOTYxLDggQEAKWCBzdHJ1Y3QgYXN0X3BhY2tlciB7ClggCWludCBmcmFtZXNpemU7
 IC8vIG51bWJlciBvZiBmcmFtZXMgcGVyIHBhY2tldCBvbiB0aGUgd2lyZS4KWCAJaW50IHNpemU7
 ClgrCWZvcm1hdF90IGZvcm1hdDsKWCAJaW50IHBhY2tldF9pbmRleDsKWC0JaW50IGZvcm1hdDsK
 WCAJaW50IHJlYWRkYXRhOwpYIAlpbnQgb3B0aW1pemFibGVzdHJlYW07ClggCWludCBmbGFnczsK
 WEBAIC0yNzYzLDEwICszMDE0LDEyIEBAClggCQlyZXR1cm4gLTE7ClggCX0KWCAJaWYgKCFzLT5m
 b3JtYXQpIHsKWC0JCXMtPmZvcm1hdCA9IGYtPnN1YmNsYXNzOwpYKwkJcy0+Zm9ybWF0ID0gQVNU
 X0ZSQU1FX1NVQkNMQVNTX0NPREVDKGYpOwpYIAkJcy0+c2FtcGxlcz0wOwpYLQl9IGVsc2UgaWYg
 KHMtPmZvcm1hdCAhPSBmLT5zdWJjbGFzcykgewpYLQkJYXN0X2xvZyhMT0dfV0FSTklORywgIlBh
 Y2tlciB3YXMgd29ya2luZyBvbiAlZCBmb3JtYXQgZnJhbWVzLCBub3cgdHJ5aW5nIHRvIGZlZWQg
 JWQ/XG4iLCBzLT5mb3JtYXQsIGYtPnN1YmNsYXNzKTsKWCsJfSBlbHNlIGlmIChzLT5mb3JtYXQg
 IT0gQVNUX0ZSQU1FX1NVQkNMQVNTX0NPREVDKGYpKSB7ClgrCQlhc3RfbG9nKExPR19XQVJOSU5H
 LCAiUGFja2VyIHdhcyB3b3JraW5nIG9uICIgQVNUX0ZNVF9GT1JNQVRfVCAiIGZvcm1hdCBmcmFt
 ZXMsICIKWCsJCQkJICAgICAibm93IHRyeWluZyB0byBmZWVkICIgQVNUX0ZNVF9GT1JNQVRfVCAi
 P1xuIiwKWCsJCQlzLT5mb3JtYXQsIEFTVF9GUkFNRV9TVUJDTEFTU19DT0RFQyhmKSk7ClggCQly
 ZXR1cm4gLTE7ClggCX0KWCAJaWYgKHMtPmxlbiArIGYtPmRhdGFsZW4gPiBQQUNLRVJfU0laRSkg
 ewpYQEAgLTI4MTUsNyArMzA2OCw3IEBAClggCQlsZW4gPSBzLT5sZW47ClggCS8qIE1ha2UgZnJh
 bWUgKi8KWCAJcy0+Zi5mcmFtZXR5cGUgPSBBU1RfRlJBTUVfVk9JQ0U7ClgtCXMtPmYuc3ViY2xh
 c3MgPSBzLT5mb3JtYXQ7ClgrCUFTVF9GUkFNRV9TVUJDTEFTU19DT0RFQygmcy0+ZikgPSBzLT5m
 b3JtYXQ7ClggCVNFVERBVEEyUFRSKHMtPmYuZGF0YSwgcy0+ZnJhbWVkYXRhICsgQVNUX0ZSSUVO
 RExZX09GRlNFVCk7ClggCXMtPmYub2Zmc2V0ID0gQVNUX0ZSSUVORExZX09GRlNFVDsKWCAJcy0+
 Zi5kYXRhbGVuID0gbGVuOwpYQEAgLTI4OTYsMTAgKzMxNDksMTQgQEAKWCAKWCAJZm9yICggOyBm
 cmFtZSAhPSBOVUxMIDsgZnJhbWUgPSBmcmFtZS0+bmV4dCApClggCXsKWC0JCS8vIGxvb2sgZm9y
 IHRoZSBsaXN0ZW5lcidzIGZyYW1lClgtCQlpZiAoIGZyYW1lLT5tZW1iZXIgIT0gTlVMTCApClgr
 CQkvLyB3ZSdyZSBsb29raW5nIGZvciBhIG51bGwgb3IgbWF0Y2hpbmcgbWVtYmVyClgrCQlpZiAo
 IGZyYW1lLT5tZW1iZXIgIT0gTlVMTCAmJiBmcmFtZS0+bWVtYmVyICE9IG1lbWJlciApClggCQkJ
 Y29udGludWUgOwpYIApYKwkJLy8gaWYgdGhpcyBtZW1iZXIgaXMgYSBzcHllciwgb25seSBxdWV1
 ZSBmcmFtZXMgZnJvbSB0aGUgc3B5ZWUKWCsJCWlmICggKCBtZW1iZXItPnNweWVlX2NoYW5uZWxf
 bmFtZSAhPSBOVUxMICYmIGZyYW1lLT5tZW1iZXIgPT0gTlVMTCApClgrCQkJJiYgKCBmcmFtZS0+
 c3B5X3BhcnRuZXIgPT0gTlVMTCB8fCBmcmFtZS0+c3B5X3BhcnRuZXIgIT0gbWVtYmVyICkgKQpY
 KwkJCWNvbnRpbnVlIDsKWCAjaWZkZWYJQVBQX0tPTkZFUkVOQ0VfREVCVUcKWCAJCWlmICggZnJh
 bWUtPmZyID09IE5VTEwgKQpYIAkJewpYQEAgLTI5MDgsNyArMzE2NSw3IEBAClggCQl9ClggI2Vu
 ZGlmClggCQkvLyBmaXJzdCwgdHJ5IGZvciBhIHByZS1jb252ZXJ0ZWQgZnJhbWUKWC0JCXFmID0g
 KG1lbWJlci0+bGlzdGVuX3ZvbHVtZSA9PSAwID8gZnJhbWUtPmNvbnZlcnRlZFttZW1iZXItPndy
 aXRlX2Zvcm1hdF9pbmRleF0gOiAwKTsKWCsJCXFmID0gKG1lbWJlci0+bGlzdGVuX3ZvbHVtZSA9
 PSAwICYmIG1lbWJlci0+c3B5X3BhcnRuZXIgPT0gTlVMTD8gZnJhbWUtPmNvbnZlcnRlZFsgbWVt
 YmVyLT53cml0ZV9mb3JtYXRfaW5kZXggXSA6IDApOwpYIApYIAkJLy8gY29udmVydCAoIGFuZCBz
 dG9yZSApIHRoZSBmcmFtZQpYIAkJaWYgKCBxZiA9PSBOVUxMICkKWEBAIC0yOTUzLDcgKzMyMTAs
 NyBAQApYIAkJCQkvL3FmID0gTlVMTCA7ClggCQkJfQpYIApYLQkJCWlmICggbWVtYmVyLT5saXN0
 ZW5fdm9sdW1lICE9IDAgKQpYKwkJCWlmIChtZW1iZXItPmxpc3Rlbl92b2x1bWUgIT0gMCB8fCBt
 ZW1iZXItPnNweV9wYXJ0bmVyICE9IE5VTEwpClggCQkJewpYIAkJCQkvLyBmcmVlIGZyYW1lICgg
 dGhlIHRyYW5zbGF0b3IncyBjb3B5ICkKWCAJCQkJYXN0X2ZyZnJlZSggcWYgKSA7ClhAQCAtMjk2
 MSw3ICszMjE4LDcgQEAKWCAJCX0KWCAJCWVsc2UKWCAJCXsKWC0JCQlhc3RfbG9nKCBMT0dfV0FS
 TklORywgInVuYWJsZSB0byB0cmFuc2xhdGUgb3V0Z29pbmcgbGlzdGVuZXIgZnJhbWUsIGNoYW5u
 ZWwgPT4gJXNcbiIsIG1lbWJlci0+Y2hhbi0+bmFtZSApIDsKWCsJCQlhc3RfbG9nKCBMT0dfV0FS
 TklORywgInVuYWJsZSB0byB0cmFuc2xhdGUgb3V0Z29pbmcgbGlzdGVuZXIgZnJhbWUsIGNoYW5u
 ZWwgPT4gJXNcbiIsIG1lbWJlci0+Y2hhbm5lbF9uYW1lICkgOwpYIAkJfQpYIApYIAkJLy8gc2V0
 IGZvdW5kIGZsYWcKWEBAIC0zMDI5LDcgKzMyODYsOCBAQApYIAkJLy8gc2hvcnQtY3V0IHBvaW50
 ZXIgdG8gdGhlIGFzdF9mcmFtZQpYIAkJcWYgPSBmcmFtZS0+ZnIgOwpYIApYLQkJaWYgKCAocWYt
 PnN1YmNsYXNzID09IG1lbWJlci0+d3JpdGVfZm9ybWF0KSAmJiAobWVtYmVyLT5saXN0ZW5fdm9s
 dW1lID09IDApICkKWCsJCWlmICggKEFTVF9GUkFNRV9TVUJDTEFTU19DT0RFQyhxZikgPT0gbWVt
 YmVyLT53cml0ZV9mb3JtYXQpICYmClgrCQkgICAgIChtZW1iZXItPmxpc3Rlbl92b2x1bWUgPT0g
 MCkgKQpYIAkJewpYIAkJCS8vIGZyYW1lIGlzIGFscmVhZHkgaW4gY29ycmVjdCBmb3JtYXQsIHNv
 IGp1c3QgcXVldWUgaXQKWCAKWEBAIC0zMDYxLDcgKzMzMTksNyBAQApYIAkJCX0KWCAJCQllbHNl
 ClggCQkJewpYLQkJCQlhc3RfbG9nKCBMT0dfV0FSTklORywgInVuYWJsZSB0byB0cmFuc2xhdGUg
 b3V0Z29pbmcgc3BlYWtlciBmcmFtZSwgY2hhbm5lbCA9PiAlc1xuIiwgbWVtYmVyLT5jaGFuLT5u
 YW1lICkgOwpYKwkJCQlhc3RfbG9nKCBMT0dfV0FSTklORywgInVuYWJsZSB0byB0cmFuc2xhdGUg
 b3V0Z29pbmcgc3BlYWtlciBmcmFtZSwgY2hhbm5lbCA9PiAlc1xuIiwgbWVtYmVyLT5jaGFubmVs
 X25hbWUgKSA7ClggCQkJfQpYIAkJfQpYIApYQEAgLTMxMzEsMTEgKzMzODksOCBAQApYIAkJLy8g
 dHJhbnNsYXRvcnMgc2VlbSB0byBiZSBzaW5nbGUtcHVycG9zZSwgaS5lLiB0aGV5ClggCQkvLyBj
 YW4ndCBiZSB1c2VkIHNpbXVsdGFuZW91c2x5IGZvciBtdWx0aXBsZSBhdWRpbyBzdHJlYW1zClgg
 CQkvLwpYLSNpZm5kZWYgQUNfVVNFX0c3MjIKWC0JCXN0cnVjdCBhc3RfdHJhbnNfcHZ0KiB0cmFu
 cyA9IGFzdF90cmFuc2xhdG9yX2J1aWxkX3BhdGgoIG1lbWJlci0+d3JpdGVfZm9ybWF0LCBBU1Rf
 Rk9STUFUX1NMSU5FQVIgKSA7ClgtI2Vsc2UKWC0JCXN0cnVjdCBhc3RfdHJhbnNfcHZ0KiB0cmFu
 cyA9IGFzdF90cmFuc2xhdG9yX2J1aWxkX3BhdGgoIG1lbWJlci0+d3JpdGVfZm9ybWF0LCBBU1Rf
 Rk9STUFUX1NMSU5FQVIxNiApIDsKWC0jZW5kaWYKWCsJCXN0cnVjdCBhc3RfdHJhbnNfcHZ0KiB0
 cmFucyA9IGFzdF90cmFuc2xhdG9yX2J1aWxkX3BhdGgoIG1lbWJlci0+d3JpdGVfZm9ybWF0LCBB
 U1RfQ09ORl9GT1JNQVQgKSA7ClgrClggCQlpZiAoIHRyYW5zICE9IE5VTEwgKQpYIAkJewpYIAkJ
 CS8vIGF0dGVtcHQgKCBmaXZlIHRpbWVzICkgdG8gZ2V0IGEgc2lsZW50IGZyYW1lClhAQCAtMzE3
 Miw3ICszNDI3LDcgQEAKWCAJfQpYIAllbHNlClggCXsKWC0JCWFzdF9sb2coIExPR19FUlJPUiwg
 InVuYWJsZSB0byB0cmFuc2xhdGUgb3V0Z29pbmcgc2lsZW50IGZyYW1lLCBjaGFubmVsID0+ICVz
 XG4iLCBtZW1iZXItPmNoYW4tPm5hbWUgKSA7ClgrCQlhc3RfbG9nKCBMT0dfRVJST1IsICJ1bmFi
 bGUgdG8gdHJhbnNsYXRlIG91dGdvaW5nIHNpbGVudCBmcmFtZSwgY2hhbm5lbCA9PiAlc1xuIiwg
 bWVtYmVyLT5jaGFubmVsX25hbWUgKSA7ClggCX0KWCAKWCAJcmV0dXJuIDAgOwpYQEAgLTMxODcs
 NTIgKzM0NDIsMzIgQEAKWCAJYXN0X211dGV4X2xvY2soJm1lbWJlci0+bG9jayk7ClggClggCS8v
 IHNraXAgbWVtYmVycyB0aGF0IGFyZSBub3QgcmVhZHkKWC0JLy8gc2tpcCBubyByZWNlaXZlIGF1
 ZGlvIGNsaWVudHMKWC0JaWYgKCBtZW1iZXItPnJlYWR5X2Zvcl9vdXRnb2luZyA9PSAwIHx8IG1l
 bWJlci0+bm9yZWN2X2F1ZGlvID09IDEgKQpYKwlpZiAoIG1lbWJlci0+cmVhZHlfZm9yX291dGdv
 aW5nID09IDAgKQpYIAl7ClggCQlhc3RfbXV0ZXhfdW5sb2NrKCZtZW1iZXItPmxvY2spOwpYIAkJ
 cmV0dXJuIDsKWCAJfQpYIApYLQlpZiAoIG1lbWJlci0+c3B5X3BhcnRuZXIgPT0gMCApClgrCS8v
 IHNraXAgbm8gcmVjZWl2ZSBhdWRpbyBjbGllbnRzClgrCWlmICggbWVtYmVyLT5ub3JlY3ZfYXVk
 aW8gKQpYIAl7ClgtCQkvLyBuZWl0aGVyIGEgc3B5ZXIgbm9yIGEgc3B5ZWUKWC0JCWlmICggbWVt
 YmVyLT5sb2NhbF9zcGVha2luZ19zdGF0ZSA9PSAwICkgClgtCQl7ClgtCQkJLy8gcXVldWUgbGlz
 dGVuZXIgZnJhbWUKWC0JCQlxdWV1ZV9mcmFtZV9mb3JfbGlzdGVuZXIoIGNvbmYsIG1lbWJlciwg
 c2VuZF9mcmFtZXMgKSA7ClgtCQl9ClgtCQllbHNlClgtCQl7ClgtCQkJLy8gcXVldWUgc3BlYWtl
 ciBmcmFtZQpYLQkJCXF1ZXVlX2ZyYW1lX2Zvcl9zcGVha2VyKCBjb25mLCBtZW1iZXIsIHNlbmRf
 ZnJhbWVzICkgOwpYLQkJfQpYKwkJYXN0X211dGV4X3VubG9jaygmbWVtYmVyLT5sb2NrKTsKWCsJ
 CXJldHVybjsKWCsJfQpYKwpYKwlpZiAoIG1lbWJlci0+bG9jYWxfc3BlYWtpbmdfc3RhdGUgPT0g
 MCApClgrCXsKWCsJCS8vIHF1ZXVlIGxpc3RlbmVyIGZyYW1lClgrCQlxdWV1ZV9mcmFtZV9mb3Jf
 bGlzdGVuZXIoIGNvbmYsIG1lbWJlciwgc2VuZF9mcmFtZXMgKSA7ClggCX0KWCAJZWxzZQpYIAl7
 ClgtCQkvLyBlaXRoZXIgYSBzcHllciBvciBhIHNweWVlClgtCQlpZiAoIG1lbWJlci0+c3B5ZWVf
 Y2hhbm5lbF9uYW1lICE9IE5VTEwgKQpYLQkJewpYLQkJCS8vIHNweWVyIC0tIGFsd2F5cyB1c2Ug
 bWVtYmVyIHRyYW5zbGF0b3IKWC0JCQlxdWV1ZV9mcmFtZV9mb3Jfc3BlYWtlciggY29uZiwgbWVt
 YmVyLCBzZW5kX2ZyYW1lcyApIDsKWC0JCX0KWC0JCWVsc2UKWC0JCXsKWC0JCQkvLyBzcHllZSAt
 LSB1c2UgbWVtYmVyIHRyYW5zbGF0b3IgaWYgc3B5ZWUgc3BlYWtpbmcgb3Igc3B5ZXIgd2hpc3Bl
 cmluZyB0byBzcHllZQpYLQkJCWlmICggbWVtYmVyLT5sb2NhbF9zcGVha2luZ19zdGF0ZSA9PSAx
 IHx8IG1lbWJlci0+c3B5X3BhcnRuZXItPmxvY2FsX3NwZWFraW5nX3N0YXRlID09IDEgKQpYLQkJ
 CXsKWC0JCQkJcXVldWVfZnJhbWVfZm9yX3NwZWFrZXIoIGNvbmYsIG1lbWJlciwgc2VuZF9mcmFt
 ZXMgKSA7ClgtCQkJfQpYLQkJCWVsc2UKWC0JCQl7ClgtCQkJCXF1ZXVlX2ZyYW1lX2Zvcl9saXN0
 ZW5lciggY29uZiwgbWVtYmVyLCBzZW5kX2ZyYW1lcyApIDsKWC0JCQl9ClgtCQl9ClgrCQkvLyBx
 dWV1ZSBzcGVha2VyIGZyYW1lClgrCQlxdWV1ZV9mcmFtZV9mb3Jfc3BlYWtlciggY29uZiwgbWVt
 YmVyLCBzZW5kX2ZyYW1lcyApIDsKWCAJfQpYLQpYIAlhc3RfbXV0ZXhfdW5sb2NrKCZtZW1iZXIt
 PmxvY2spOwpYIH0KWC0jaWZkZWYJVklERU8KWCsKWCAvLyBGdW5jdGlvbnMgdGhhdCB3aWxsIGlu
 Y3JlYXNlIGFuZCBkZWNyZWFzZSBzcGVha2VyX2NvdW50IGluIGEgc2VjdXJlIHdheSwgbG9ja2lu
 ZyB0aGUgbWVtYmVyIG11dGV4IGlmIHJlcXVpcmVkClggLy8gV2lsbCBhbHNvIHNldCBzcGVha2lu
 Z19zdGF0ZSBmbGFnLgpYIC8vIFJldHVybnMgdGhlIHByZXZpb3VzIHNwZWFraW5nIHN0YXRlClhA
 QCAtMzI4OSw3ICszNTI0LDcgQEAKWCAKWCAJcmV0dXJuIG9sZF9zdGF0ZTsKWCB9ClgtI2VuZGlm
 ClgrClggdm9pZCBtZW1iZXJfcHJvY2Vzc19zcG9rZW5fZnJhbWVzKHN0cnVjdCBhc3RfY29uZmVy
 ZW5jZSogY29uZiwKWCAJCQkJIHN0cnVjdCBhc3RfY29uZl9tZW1iZXIgKm1lbWJlciwKWCAJCQkJ
 IHN0cnVjdCBjb25mX2ZyYW1lICoqc3Bva2VuX2ZyYW1lcywKWEBAIC0zMzEyLDcgKzM1NDcsNyBA
 QApYIAkJJiYgbWVtYmVyLT5pbkZyYW1lc05lZWRlZCA+IDAKWCAJCSkKWCAJewpYLQkJREVCVUco
 ImNoYW5uZWwgPT4gJXMsIGluRnJhbWVzTmVlZGVkID0+ICVkLCBpbkZyYW1lc0NvdW50ID0+ICVk
 XG4iLCBtZW1iZXItPmNoYW4tPm5hbWUsIG1lbWJlci0+aW5GcmFtZXNOZWVkZWQsIG1lbWJlci0+
 aW5GcmFtZXNDb3VudCkgOwpYKwkJREVCVUcoImNoYW5uZWwgPT4gJXMsIGluRnJhbWVzTmVlZGVk
 ID0+ICVkLCBpbkZyYW1lc0NvdW50ID0+ICVkXG4iLCBtZW1iZXItPmNoYW5uZWxfbmFtZSwgbWVt
 YmVyLT5pbkZyYW1lc05lZWRlZCwgbWVtYmVyLT5pbkZyYW1lc0NvdW50KSA7ClggCX0KWCAjZW5k
 aWYKWCAJLy8gbm9uLWxpc3RlbmVyIG1lbWJlciBzaG91bGQgaGF2ZSBmcmFtZXMsClhAQCAtMzMy
 NywxNCArMzU2MiwxNSBAQApYIAkJLy8gZGVjcmVtZW50IG9ubHkgb24gc3RhdGUgdHJhbnNpdGlv
 bnMKWCAJCWlmICggbWVtYmVyLT5sb2NhbF9zcGVha2luZ19zdGF0ZSA9PSAxICkKWCAJCXsKWC0J
 CQltZW1iZXItPmxvY2FsX3NwZWFraW5nX3N0YXRlID0gMDsKWC0jaWZkZWYJVklERU8KWCAJCQlk
 ZWNyZW1lbnRfc3BlYWtlcl9jb3VudChtZW1iZXIsIDApOwpYKwkJCW1lbWJlci0+bG9jYWxfc3Bl
 YWtpbmdfc3RhdGUgPSAwOwpYIAkJCS8vIElmIHdlJ3JlIGRyaXZpbmcgYW5vdGhlciBtZW1iZXIs
 IGRlY3JlbWVudCBpdHMgc3BlYWtlciBjb3VudCBhcyB3ZWxsClgrI2lmZGVmCVZJREVPClggCQkJ
 aWYgKCBtZW1iZXItPmRyaXZlbl9tZW1iZXIgIT0gTlVMTCApClggCQkJCWRlY3JlbWVudF9zcGVh
 a2VyX2NvdW50KG1lbWJlci0+ZHJpdmVuX21lbWJlciwgMSk7ClggI2VuZGlmClggCQl9ClgrClgg
 CQkvLyBjb3VudCB0aGUgbGlzdGVuZXJzClggCQkoKmxpc3RlbmVyX2NvdW50KSsrIDsKWCAJfQpY
 QEAgLTMzNTAsMTkgKzM1ODYsMjEgQEAKWCAKWCAJCS8vIHBvaW50IHRoZSBsaXN0IGF0IHRoZSBu
 ZXcgZnJhbWUKWCAJCSpzcG9rZW5fZnJhbWVzID0gY2ZyIDsKWCsKWCAJCS8vIEluY3JlbWVudCBz
 cGVha2VyIGNvdW50IGZvciB1cyBhbmQgZm9yIGRyaXZlbiBtZW1iZXJzClggCQkvLyBUaGlzIGhh
 cHBlbnMgb25seSBvbiB0aGUgZmlyc3QgcmVjZWl2ZWQgZnJhbWUsIHNpbmNlIHdlIHdhbnQgdG8K
 WCAJCS8vIGluY3JlbWVudCBvbmx5IG9uIHN0YXRlIHRyYW5zaXRpb25zClggCQlpZiAoIG1lbWJl
 ci0+bG9jYWxfc3BlYWtpbmdfc3RhdGUgPT0gMCApClggCQl7ClgrCQkJaW5jcmVtZW50X3NwZWFr
 ZXJfY291bnQobWVtYmVyLCAwKTsKWCAJCQltZW1iZXItPmxvY2FsX3NwZWFraW5nX3N0YXRlID0g
 MTsKWCAjaWZkZWYJVklERU8KWC0JCQlpbmNyZW1lbnRfc3BlYWtlcl9jb3VudChtZW1iZXIsIDAp
 OwpYIAkJCS8vIElmIHdlJ3JlIGRyaXZpbmcgYW5vdGhlciBtZW1iZXIsIGluY3JlbWVudCBpdHMg
 c3BlYWtlciBjb3VudCBhcyB3ZWxsClggCQkJaWYgKCBtZW1iZXItPmRyaXZlbl9tZW1iZXIgIT0g
 TlVMTCApClggCQkJCWluY3JlbWVudF9zcGVha2VyX2NvdW50KG1lbWJlci0+ZHJpdmVuX21lbWJl
 ciwgMSk7ClggI2VuZGlmClggCQl9ClgrClggCQkvLyBjb3VudCB0aGUgc3BlYWtlcnMKWCAJCSgq
 c3BlYWtlcl9jb3VudCkrKyA7ClggCX0KWC0tLSAuL21lbWJlci5oLm9yaWcJMjAxMC0wOC0xMCAy
 MDowMzo1NC4wMDAwMDAwMDAgKzAwMDAKWCsrKyAuL21lbWJlci5oCTIwMTAtMTEtMDEgMTc6MDc6
 NDQuMDAwMDAwMDAwICswMDAwClhAQCAtNTUsNyArNTUsOSBAQApYIAlhc3RfbXV0ZXhfdCBsb2Nr
 IDsgLy8gbWVtYmVyIGRhdGEgbXV0ZXgKWCAKWCAJc3RydWN0IGFzdF9jaGFubmVsKiBjaGFuIDsg
 Ly8gbWVtYmVyJ3MgY2hhbm5lbApYLQlzdHJ1Y3QgYXN0X2NvbmZlcmVuY2UqIGNvbmYgOyAvLyBt
 ZW1iZXIncyBjb25mZXJlbmNlClgrCWNoYXIqIGNoYW5uZWxfbmFtZSA7IC8vIG1lbWJlcidzIGNo
 YW5uZWwgbmFtZQpYKwpYKwljaGFyKiB1bmlxdWVpZCA7ICAvLyBtZW1iZXIncyB1bmlxdWVpZApY
 IApYIAlhc3RfY29uZF90IGRlbGV0ZV92YXIgOyAvLyBkZWxldGUgY3YKWCAJY2hhciBkZWxldGVf
 ZmxhZyA7IC8vIGRlbGV0ZSBmbGFnClhAQCAtNjUsMTUgKzY3LDE3IEBAClggCWludCBwcmlvcml0
 eSA7CS8vIGhpZ2hlc3QgcHJpb3JpdHkgZ2V0cyB0aGUgY2hhbm5lbApYIAljaGFyKiBmbGFncyA7
 CS8vIHJhdyBtZW1iZXItdHlwZSBmbGFncwpYIAljaGFyICp0eXBlIDsJCS8vIGNvbmZlcmVuY2Ug
 dHlwZQpYKwljaGFyKiBjb25mX25hbWUgOwkJLy8gbmFtZSBvZiB0aGUgY29uZmVyZW5jZSB0aGF0
 IG93biB0aGlzIG1lbWJlcgpYIAljaGFyICpzcHllZV9jaGFubmVsX25hbWUgOyAvLyBzcHllZSAg
 Y2hhbm5lbCBuYW1lClgrCWNoYXIgKndlbGNvbWVfcHJvbXB0IDsKWCAJaW50IG1heF91c2VycyA7
 IC8vIHplcm8gb3IgbWF4IHVzZXJzIGZvciB0aGlzIGNvbmZlcmVuY2UKWC0jaWYgKCBTSUxERVQg
 PT0gMiApClgrClggCS8vIHZvaWNlIGZsYWdzClggCWludCB2YWRfZmxhZzsKWCAJaW50IGRlbm9p
 c2VfZmxhZzsKWCAJaW50IGFnY19mbGFnOwpYIAlpbnQgdmlhX3RlbGVwaG9uZTsKWC0jZW5kaWYK
 WCsKWCAJLy8gdmlkZW8gY29uZmVyZW5jZSBwYXJhbXMKWCAJaW50IGlkOwpYICNpZmRlZglWSURF
 TwpYQEAgLTkwLDEzICs5NCwyNCBAQApYIAlpbnQgdGFsa192b2x1bWU7ClggCWludCBsaXN0ZW5f
 dm9sdW1lOwpYIApYLQkvLyBtb2ggZmxhZ3MKWCsJLy8gbXVzaWMgb24gaG9sZCBmbGFnClggCWNo
 YXIgbW9oX2ZsYWc7ClgtCWNoYXIgbW9oX3N0b3A7ClggClggCS8vIGhvbGQgb3B0aW9uIGZsYWcK
 WCAJY2hhciBob2xkX2ZsYWc7ClggClgrCS8vIHJlY29yZGluZyB3YW50ZWQgZmxhZwpYKwljaGFy
 IHJlY29yZF9mbGFnOwpYKwpYKwkvLyB3YWl0IG9wdGlvbiBmbGFnClgrCWNoYXIgd2FpdF9mb3Jf
 bW9kZXJhdG9yX2ZsYWc7ClgrClgrCS8vIGNyZWF0aW9uIG9mIG5ldyBjb25mZXJlbmNlIG5vdCBh
 bGxvd2VkClgrCWNoYXIgbm9fY3JlYXRlX2ZsYWc7ClgrClgrCS8vIHRlbXAgZmxhZyBmb3Igd2hl
 biBzdGFyIGlzIHByZXNzZWQKWCsJY2hhciBzdGFyX3ByZXNzZWQ7ClgrClggCS8vIHRoaXMgbWVt
 YmVyIHdpbGwgbm90IGhlYXIvc2VlClggCWludCBub3JlY3ZfYXVkaW87ClggI2lmZGVmCVZJREVP
 ClhAQCAtMTQ3LDEyICsxNjIsMTIgQEAKWCAjaWZkZWYJVklERU8KWCAJdW5zaWduZWQgaW50IGlu
 VmlkZW9GcmFtZXNOZWVkZWQgOwpYICNlbmRpZgpYLSNpZmRlZglBU1RfQ09ORl9DQUNIRV9MQVNU
 X0ZSQU1FClgrClggCS8vIHVzZWQgd2hlbiBjYWNoaW5nIGxhc3QgZnJhbWUKWCAJY29uZl9mcmFt
 ZSogaW5GcmFtZXNMYXN0IDsKWCAJdW5zaWduZWQgaW50IGluRnJhbWVzUmVwZWF0TGFzdCA7Clgg
 CXVuc2lnbmVkIHNob3J0IG9rYXlUb0NhY2hlTGFzdCA7ClgtI2VuZGlmClgrClggCS8vIExMIG91
 dHB1dCBmcmFtZSBxdWV1ZQpYIAljb25mX2ZyYW1lKiBvdXRGcmFtZXMgOwpYIAljb25mX2ZyYW1l
 KiBvdXRGcmFtZXNUYWlsIDsKWEBAIC0xODYsNiArMjAxLDggQEAKWCAjZW5kaWYKWCAJLy8gcmVs
 YXkgZHRtZiB0byBtYW5hZ2VyPwpYIAlzaG9ydCBkdG1mX3JlbGF5OwpYKwkvLyBhbGxvdyAic3Rh
 ciIgZHRtZiBtZW51PwpYKwlzaG9ydCBkdG1mX3N0YXJfbWVudTsKWCAJLy8gaW5pdGlhbCBuYXQg
 ZGVsYXkgZmxhZwpYIAlzaG9ydCBmaXJzdF9mcmFtZV9yZWNlaXZlZDsKWCAjaWZkZWYJVEVYVApY
 QEAgLTIxMywxMyArMjMwLDExIEBAClggCS8vIHVzZWQgZm9yIGRldGVybWluaW5nIG5lZWQgdG8g
 bWl4IGZyYW1lcwpYIAkvLyBhbmQgZm9yIG1hbmFnZW1lbnQgaW50ZXJmYWNlIG5vdGlmaWNhdGlv
 bgpYIAkvLyBhbmQgZm9yIFZBRCBiYXNlZCB2aWRlbyBzd2l0Y2hpbmcKWC0jaWZkZWYJVklERU8K
 WCAJc2hvcnQgc3BlYWtpbmdfc3RhdGVfbm90aWZ5IDsKWCAJc2hvcnQgc3BlYWtpbmdfc3RhdGUg
 OyAvLyBUaGlzIGZsYWcgd2lsbCBiZSB0cnVlIGlmIHRoaXMgbWVtYmVyIG9yIGFueSBvZiBpdHMg
 ZHJpdmVycyBpcyBzcGVha2luZwpYKwlzaG9ydCBsb2NhbF9zcGVha2luZ19zdGF0ZTsgLy8gVGhp
 cyBmbGFnIHdpbGwgYmUgdHJ1ZSBvbmx5IGlmIHRoaXMgbWVtYmVyIGlzIHNwZWFraW5nClggCXN0
 cnVjdCB0aW1ldmFsIGxhc3Rfc3RhdGVfY2hhbmdlOwpYIAlpbnQgc3BlYWtlcl9jb3VudDsgLy8g
 TnVtYmVyIG9mIGRyaXZlcnMgKGluY2x1ZGluZyB0aGlzIG1lbWJlcikgdGhhdCBhcmUgc3BlYWtp
 bmcKWC0jZW5kaWYKWC0Jc2hvcnQgbG9jYWxfc3BlYWtpbmdfc3RhdGU7IC8vIFRoaXMgZmxhZyB3
 aWxsIGJlIHRydWUgb25seSBpZiB0aGlzIG1lbWJlciBpcyBzcGVha2luZwpYIApYICNpZmRlZglW
 SURFTwpYIAkvLyBTdHVmZiB1c2VkIHRvIGRldGVybWluZSB2aWRlbyBicm9hZGNhc3Qgc3RhdGUK
 WEBAIC0yODcsMTEgKzMwMiwxNCBAQApYIAlTcGVleFByZXByb2Nlc3NTdGF0ZSAqZHNwIDsKWCAg
 ICAgICAgIC8vIG51bWJlciBvZiBmcmFtZXMgdG8gaWdub3JlIHNwZWV4X3ByZXByb2Nlc3MoKQpY
 IAlpbnQgaWdub3JlX3NwZWV4X2NvdW50OwpYKyNlbHNlClgrCS8vIHBsYWNlaG9sZGVyIHdoZW4g
 cHJlcHJvY2Vzc2luZyBpcyBub3QgZW5hYmxlZApYKwl2b2lkKiBkc3AgOwpYICNlbmRpZgpYIApY
 IAkvLyBhdWRpbyBmb3JtYXQgdGhpcyBtZW1iZXIgaXMgdXNpbmcKWC0JaW50IHdyaXRlX2Zvcm1h
 dCA7ClgtCWludCByZWFkX2Zvcm1hdCA7ClgrCWZvcm1hdF90IHdyaXRlX2Zvcm1hdCA7ClgrCWZv
 cm1hdF90IHJlYWRfZm9ybWF0IDsKWCAKWCAJaW50IHdyaXRlX2Zvcm1hdF9pbmRleCA7ClggCWlu
 dCByZWFkX2Zvcm1hdF9pbmRleCA7ClhAQCAtMzE4LDExICszMzYsMTEgQEAKWCAvLyBmdW5jdGlv
 biBkZWNsYXJhdGlvbnMKWCAvLwpYIApYLWludCBtZW1iZXJfZXhlYyggc3RydWN0IGFzdF9jaGFu
 bmVsKiBjaGFuLCB2b2lkKiBkYXRhICkgOwpYK2ludCBtZW1iZXJfZXhlYyggc3RydWN0IGFzdF9j
 aGFubmVsKiBjaGFuLCBjb25zdCBjaGFyKiBkYXRhICkgOwpYIApYIHN0cnVjdCBhc3RfY29uZl9t
 ZW1iZXIqIGNoZWNrX2FjdGl2ZV92aWRlbyggaW50IGlkLCBzdHJ1Y3QgYXN0X2NvbmZlcmVuY2Ug
 KmNvbmYgKTsKWCAKWC1zdHJ1Y3QgYXN0X2NvbmZfbWVtYmVyKiBjcmVhdGVfbWVtYmVyKCBzdHJ1
 Y3QgYXN0X2NoYW5uZWwqIGNoYW4sIGNvbnN0IGNoYXIqIGRhdGEsIGNoYXIqIGNvbmZfbmFtZSAp
 IDsKWCtzdHJ1Y3QgYXN0X2NvbmZfbWVtYmVyKiBjcmVhdGVfbWVtYmVyKCBzdHJ1Y3QgYXN0X2No
 YW5uZWwqIGNoYW4sIGNvbnN0IGNoYXIqIGRhdGEgKSA7Clggc3RydWN0IGFzdF9jb25mX21lbWJl
 ciogZGVsZXRlX21lbWJlciggc3RydWN0IGFzdF9jb25mX21lbWJlciogbWVtYmVyICkgOwpYIApY
 IC8vIGluY29taW5nIHF1ZXVlClhAQCAtMzYxLDEwICszNzksMTIgQEAKWCAjaWZkZWYJVEVYVApY
 IGNvbmZfZnJhbWUqIGdldF9vdXRnb2luZ190ZXh0X2ZyYW1lKCBzdHJ1Y3QgYXN0X2NvbmZfbWVt
 YmVyKiBtZW1iZXIgKSA7ClggI2VuZGlmClgtI2lmZGVmCVZJREVPClgrClgrdm9pZCBzZW5kX3N0
 YXRlX2NoYW5nZV9ub3RpZmljYXRpb25zKCBzdHJ1Y3QgYXN0X2NvbmZfbWVtYmVyKiBtZW1iZXIg
 KSA7ClgrClggaW50IGluY3JlbWVudF9zcGVha2VyX2NvdW50KHN0cnVjdCBhc3RfY29uZl9tZW1i
 ZXIgKm1lbWJlciwgaW50IGxvY2spOwpYIGludCBkZWNyZW1lbnRfc3BlYWtlcl9jb3VudChzdHJ1
 Y3QgYXN0X2NvbmZfbWVtYmVyICptZW1iZXIsIGludCBsb2NrKTsKWC0jZW5kaWYKWCsKWCB2b2lk
 IG1lbWJlcl9wcm9jZXNzX3Nwb2tlbl9mcmFtZXMoc3RydWN0IGFzdF9jb25mZXJlbmNlKiBjb25m
 LApYIAkJCQkgIHN0cnVjdCBhc3RfY29uZl9tZW1iZXIgKm1lbWJlciwKWCAJCQkJICBzdHJ1Y3Qg
 Y29uZl9mcmFtZSAqKnNwb2tlbl9mcmFtZXMsCjEwZDA1NjQwNjk4OTNjN2U1MGI0ZDZjYTMzYmEx
 Njk0CmVjaG8geCAtIGFwcGtvbmZlcmVuY2UvcGtnLWRlc2NyCnNlZCAncy9eWC8vJyA+YXBwa29u
 ZmVyZW5jZS9wa2ctZGVzY3IgPDwgJ2VmNTc2YTRkMzk0NWQ0Y2ZjZjI0NDMwYWU4MWRlNzcwJwpY
 QXBwX2tvbmZlcmVuY2UgaXMgYSBjaGFubmVsLWluZGVwZW5kZW50IGNvbmZlcmVuY2UgYXBwbGlj
 YXRpb24uClhJdCBmZWF0dXJlcyBlZmZpY2llbnQgYXVkaW8gbWl4aW5nIGFsZ29yaXRobXMgYXMg
 d2VsbCBhcyB2aWRlbyBzZWxlY3Rpb24KWHN1cHBvcnQgYmFzZWQgb24gVkFELCBEVE1GIG9yIENM
 SS4gClgKWFdXVzogaHR0cDovL3NvdXJjZWZvcmdlLm5ldC9wcm9qZWN0cy9hcHBrb25mZXJlbmNl
 LwplZjU3NmE0ZDM5NDVkNGNmY2YyNDQzMGFlODFkZTc3MAplY2hvIHggLSBhcHBrb25mZXJlbmNl
 L2Rpc3RpbmZvCnNlZCAncy9eWC8vJyA+YXBwa29uZmVyZW5jZS9kaXN0aW5mbyA8PCAnZWE1MWUz
 NTBhYWQ1MzJiYjZhNTAwNWU4MGVjZTJlODAnClhNRDUgKGFwcGtvbmZlcmVuY2UtMS41LnRhci5n
 eikgPSAzYTExNmE3MWEwOGYyM2NlZjUxMGZhMGI0N2Q3MDVjYgpYU0hBMjU2IChhcHBrb25mZXJl
 bmNlLTEuNS50YXIuZ3opID0gNjQ3MGNjMzhiMDdhMTRiMjc5OTNiYzFlNmE1YzYzNjk0M2FlMzZl
 N2UyMzg1YTNlMTM2YjNiYzU1YTg3YWYyNwpYU0laRSAoYXBwa29uZmVyZW5jZS0xLjUudGFyLmd6
 KSA9IDE4Njg4MgplYTUxZTM1MGFhZDUzMmJiNmE1MDA1ZTgwZWNlMmU4MAplY2hvIHggLSBhcHBr
 b25mZXJlbmNlL01ha2VmaWxlCnNlZCAncy9eWC8vJyA+YXBwa29uZmVyZW5jZS9NYWtlZmlsZSA8
 PCAnYjg2MzE4MDA4NmM0M2M0NmE2MjU2NTQ5MjNhZjdlMjMnClgjIE5ldyBwb3J0cyBjb2xsZWN0
 aW9uIG1ha2VmaWxlIGZvcjoJbmV0L2FwcGtvbmZlcmVuY2UKWCMgRGF0ZSBjcmVhdGVkOgkJCQkx
 OSBPY3RvYmVyIDIwMTAKWCMgV2hvbToJCQkJCUFsZXggRGVpdGVyIDxBbGV4LkRlaXRlckBHbWFp
 bC5DT00+ClgjClgjICRGcmVlQlNEJApYIwpYClhQT1JUTkFNRT0JYXBwa29uZmVyZW5jZQpYUE9S
 VFZFUlNJT049CTEuNQpYQ0FURUdPUklFUz0JbmV0ClhNQVNURVJfU0lURVM9CVNGClgKWE1BSU5U
 QUlORVI9CWFsZXguZGVpdGVyQGdtYWlsLmNvbQpYQ09NTUVOVD0JSGlnaC1wZXJmb3JtYW5jZSBB
 c3RlcmlzayB2b2ljZS92aWRlbyBjb25mZXJlbmNpbmcgcGx1Z2luClgKWEJVSUxEX0RFUEVORFM9
 ICBhc3Rlcmlzazoke1BPUlRTRElSfS9uZXQvYXN0ZXJpc2sKWFJVTl9ERVBFTkRTPSAgICBhc3Rl
 cmlzazoke1BPUlRTRElSfS9uZXQvYXN0ZXJpc2sKWApYVVNFX0dNQUtFPQl5ZXMKWE1BS0VfRU5W
 PQlMT0NBTEJBU0U9JHtMT0NBTEJBU0V9ClhXUktTUkM9CQkke1dSS0RJUn0vJHtQT1JUTkFNRX0v
 a29uZmVyZW5jZQpYClhQTElTVF9GSUxFUz0JbGliL2FzdGVyaXNrL21vZHVsZXMvYXBwX2tvbmZl
 cmVuY2Uuc28KWApYLmluY2x1ZGUgPGJzZC5wb3J0Lm1rPgpiODYzMTgwMDg2YzQzYzQ2YTYyNTY1
 NDkyM2FmN2UyMwpleGl0Cgo=
 --20cf30549daf7a8c210493feb76d--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201011011510.oA1FA9Zu072615>