From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 93815 invoked by alias); 3 Jan 2019 05:35:34 -0000 Mailing-List: contact libc-alpha-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: libc-alpha-owner@sourceware.org Received: (qmail 93804 invoked by uid 89); 3 Jan 2019 05:35:34 -0000 Authentication-Results: sourceware.org; auth=none X-Spam-SWARE-Status: No, score=-3.9 required=5.0 tests=BAYES_00,GARBLED_FROM,GARBLED_SUBJECT,GIT_PATCH_1,GIT_PATCH_3,RCVD_IN_DNSWL_NONE,SPF_PASS,TIME_LIMIT_EXCEEDED autolearn=unavailable version=3.3.2 spammy=safety, List, dozens, rep X-HELO: out0-143.mail.aliyun.com X-Alimail-AntiSpam:AC=PASS;BC=-1|-1;BR=01201311R111e4;CH=green;FP=0|-1|-1|-1|0|-1|-1|-1;HT=e01e01542;MF=ling.ml@antfin.com;NM=1;PH=DW;RN=4;SR=0;TI=W4_5459015_v5ForWebDing_0AC26465_1546493696285_o7001c6061; Date: Thu, 03 Jan 2019 05:35:00 -0000 From: "=?UTF-8?B?6ams5YeMKOW9puWGmyk=?=" Return-Path: "=?UTF-8?B?6ams5YeMKOW9puWGmyk=?=" To: "libc-alpha" , "=?UTF-8?B?THUsIEhvbmdqaXU=?=" , "=?UTF-8?B?WGlhbywgV2VpMw==?=" Cc: "ling.ma.program" Reply-To: "=?UTF-8?B?6ams5YeMKOW9puWGmyk=?=" Message-ID: Subject: =?UTF-8?B?6L2s5Y+R77yaW1BBVENIXSBOVU1BIHNwaW5sb2NrIFtCWiAjMjM5NjJd?= MIME-Version: 1.0 Return-Path: References: <20181226025019.38752-1-ling.ma@MacBook-Pro-8.local>,<7D8A82D6-6F0A-4860-856A-EB0C8CD13E9C@antfin.com>,<0a474516-b8c8-48cf-aeea-e57c77b78cbd.ling.ml@antfin.com> x-aliyun-mail-creator: W4_5459015_v5ForWebDing_NTMTW96aWxsYS81LjAgKE1hY2ludG9zaDsgSW50ZWwgTWFjIE9TIFggMTBfMTNfNikgQXBwbGVXZWJLaXQvNTM3LjM2IChLSFRNTCwgbGlrZSBHZWNrbykgQ2hyb21lLzcxLjAuMzU3OC45OCBTYWZhcmkvNTM3LjM2XQ In-Reply-To: <0a474516-b8c8-48cf-aeea-e57c77b78cbd.ling.ml@antfin.com> Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: base64 X-SW-Source: 2019-01/txt/msg00060.txt.bz2 QXBwZW5kIHRlc3QgZGF0YSBvbiA0cy1Ta3lsYWtlIHBsYXRmb3JtICw5NiBw aHlzaWNhbCBjb3JlcyB3aXRoIDc1NEdSQU0sIEhUPW9mZgogCjEuIG9yaWdp bmFsIHNwaW5sb2NrCiQuL3RzdC12YXJpYWJsZS1vdmVyaGVhZApOdW1iZXIg b2YgcHJvY2Vzc29yczogOTYsIFNpbmdsZSB0aHJlYWR0aW1lIDMwNDMzNzQ4 CiAKTnVtYmVyIG9mIHRocmVhZHM6ICAgIDIsIFRvdGFsdGltZSAgICAgIDEy NDYzNjExOCwgT3ZlcmhlYWQ6IDIuMDUKTnVtYmVyIG9mIHRocmVhZHM6ICAg IDQsIFRvdGFsdGltZSAgICAgIDgyMjQ5OTQyNiwgT3ZlcmhlYWQ6IDYuNzYK TnVtYmVyIG9mIHRocmVhZHM6ICAgIDgsIFRvdGFsdGltZSAgICAgNDAwNzQ3 NzE5MiwgT3ZlcmhlYWQ6IDE2LjQ2Ck51bWJlciBvZiB0aHJlYWRzOiAgIDE2 LCBUb3RhbHRpbWUgICAgMjMyMDgxNDYxMzQsIE92ZXJoZWFkOiA0Ny42NgpO dW1iZXIgb2YgdGhyZWFkczogICAzMiwgVG90YWx0aW1lICAgMTMwNzc2OTE4 MjM4LCBPdmVyaGVhZDogMTM0LjI4Ck51bWJlciBvZiB0aHJlYWRzOiAgIDY0 LCBUb3RhbHRpbWUgIDEwMzA3NjU3OTUwOTQsIE92ZXJoZWFkOiA1MjkuMjEK TnVtYmVyIG9mIHRocmVhZHM6ICAgOTYsIFRvdGFsdGltZSAgNDM1MDYwMTQ0 MTg4NCwgT3ZlcmhlYWQ6IDE0ODkuMTAKTnVtYmVyIG9mIHRocmVhZHM6ICAx MjgsIFRvdGFsdGltZSAgOTM2MjQ5ODI1NTU5NiwgT3ZlcmhlYWQ6IDI0MDMu NDAKTnVtYmVyIG9mIHRocmVhZHM6ICAyNTYsIFRvdGFsIHRpbWU3NjcyNzc2 MjE0NDg2MCwgT3ZlcmhlYWQ6IDk4NDguMjEKTnVtYmVyIG9mIHRocmVhZHM6 ICAzNTIsIFRvdGFsIHRpbWUyMDQ3NDE3NTk2NjY2MDQsIE92ZXJoZWFkOiAx OTExMi4xMApOdW1iZXIgb2YgdGhyZWFkczogIDM4NCwgVG90YWwgdGltZTI2 NzE1MjU0MzE2MjUxMiwgT3ZlcmhlYWQ6IDIyODU5LjgxCiAKMi4gbnVtYSBz cGlubG9jawokLi90c3QtbnVtYS12YXJpYWJsZS1vdmVyaGVhZApOdW1iZXIg b2YgcHJvY2Vzc29yczogOTYsIFNpbmdsZSB0aHJlYWR0aW1lIDMzNTgyOTIw CiAKTnVtYmVyIG9mIHRocmVhZHM6ICAgIDIsIFRvdGFsdGltZSAgICAgIDEy OTc2Njg5MCwgT3ZlcmhlYWQ6IDEuOTMKTnVtYmVyIG9mIHRocmVhZHM6ICAg IDQsIFRvdGFsdGltZSAgICAgIDM5MjAwNjU3OCwgT3ZlcmhlYWQ6IDIuOTIK TnVtYmVyIG9mIHRocmVhZHM6ICAgIDgsIFRvdGFsdGltZSAgICAgIDc5NTgz MTY2NiwgT3ZlcmhlYWQ6IDIuOTYKTnVtYmVyIG9mIHRocmVhZHM6ICAgMTYs IFRvdGFsdGltZSAgICAgMjQ2MTkxNjA2NiwgT3ZlcmhlYWQ6IDQuNTgKTnVt YmVyIG9mIHRocmVhZHM6ICAgMzIsIFRvdGFsdGltZSAgICAgODMwNjI5ODI1 OCwgT3ZlcmhlYWQ6IDcuNzMKTnVtYmVyIG9mIHRocmVhZHM6ICAgNjQsIFRv dGFsdGltZSAgICAzMTE4MTQ3MTE5MCwgT3ZlcmhlYWQ6IDE0LjUxCk51bWJl ciBvZiB0aHJlYWRzOiAgIDk2LCBUb3RhbHRpbWUgICAgNjMyNDk0OTAzMTAs IE92ZXJoZWFkOiAxOS42MgpOdW1iZXIgb2YgdGhyZWFkczogIDEyOCwgVG90 YWx0aW1lICAgMTY3Mjc0NDI3MzIwLCBPdmVyaGVhZDogMzguOTEKTnVtYmVy IG9mIHRocmVhZHM6ICAyNTYsIFRvdGFsdGltZSAgMjA2MTM1MzI5NTgyNiwg T3ZlcmhlYWQ6IDIzOS43NwpOdW1iZXIgb2YgdGhyZWFkczogIDM1MiwgVG90 YWx0aW1lICA3MjAzNzUxNzQwMTE4LCBPdmVyaGVhZDogNjA5LjM5Ck51bWJl ciBvZiB0aHJlYWRzOiAgMzg0LCBUb3RhbHRpbWUgIDY1NjU1NjAzNjY3MDgs IE92ZXJoZWFkOiA1MDkuMTIKIApUaGUgYWJvdmUgZGF0YSB0ZWxsIHVzIHRo ZSBudW1hIHNwaW5sb2NraW1wcm92ZSBwZXJmb3JtYW5jZSB1cHRvIDY4WCBv biA5NiBjb3JlCiAKQXBwcmVjaWF0ZSB5b3VyIGFueSBjb21tZW50cwpUaGFu a3MgYSBsb3QKTGluZwotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K5Y+R5Lu25Lq6 77ya6ams5YeMKOW9puWGmykgPGxpbmcubWxAYW50ZmluLmNvbT4K5Y+R6YCB 5pe26Ze077yaMjAxOeW5tDHmnIgz5pelKOaYn+acn+WbmykgMTI6MDUK5pS2 5Lu25Lq677yaTWEgTGluZyA8bGluZy5tYS5wcm9ncmFtQGdtYWlsLmNvbT47 IGxpYmMtYWxwaGEgPGxpYmMtYWxwaGFAc291cmNld2FyZS5vcmc+CuaKhOOA gOmAge+8mmhvbmdqaXUubHUgPGhvbmdqaXUubHVAaW50ZWwuY29tPjsgV2Vp IFhpYW8gPHdlaTMueGlhb0BpbnRlbC5jb20+CuS4u+OAgOmimO+8mlJlOiBb UEFUQ0hdIE5VTUEgc3BpbmxvY2sgW0JaICMyMzk2Ml0KCgpIaSBhbGwsCkhp IGFsbCwKSW4gdGhlIHBhdGNoIHdlIHByb3ZpZGUgdGhlIHRlc3QgY2FzZSAo dXBkYXRlIG9uIHNoYXJlZCBkYXRhKSB0byBzaW11bGF0ZSBvdXIgcmVhbCB3 b3JrbG9hZCwgCnRoZSB0ZXN0IGNhc2Ugc2hvd3MgZGF0YSBhcyBiZWxvdzoK KFRlc3Rpbmcgb24gMiBzb2NrZXRzIHBsYXRmb3JtICwgMTA0IGNvcmVzIHdp dGggMjU2RyBSQU0sIEhUPW9uKQoxLiBvcmlnaW5hbCBzcGlubG9jawojLi90 c3QtdmFyaWFibGUtb3ZlcmhlYWQgCk51bWJlciBvZiBwcm9jZXNzb3JzOiAx MDQsIFNpbmdsZSB0aHJlYWQgdGltZSAyNDkxMzcwMgoKTnVtYmVyIG9mIHRo cmVhZHM6ICAgIDIsIFRvdGFsIHRpbWUgICAgICAxMzgzMTEwMjYsIE92ZXJo ZWFkOiAyLjc4Ck51bWJlciBvZiB0aHJlYWRzOiAgICA0LCBUb3RhbCB0aW1l ICAgICAgNjQzMzA4MjkwLCBPdmVyaGVhZDogNi40NgpOdW1iZXIgb2YgdGhy ZWFkczogICAgOCwgVG90YWwgdGltZSAgICAgMjYwNzAyNDg3MiwgT3Zlcmhl YWQ6IDEzLjA4Ck51bWJlciBvZiB0aHJlYWRzOiAgIDE2LCBUb3RhbCB0aW1l ICAgIDEyMTk2ODUyODk2LCBPdmVyaGVhZDogMzAuNjAKTnVtYmVyIG9mIHRo cmVhZHM6ICAgMzIsIFRvdGFsIHRpbWUgICAgODAxNDEyMzA3MDYsIE92ZXJo ZWFkOiAxMDAuNTIKTnVtYmVyIG9mIHRocmVhZHM6ICAgNjQsIFRvdGFsIHRp bWUgICAzODU0OTU0NTcyNzQsIE92ZXJoZWFkOiAyNDEuNzcKTnVtYmVyIG9m IHRocmVhZHM6ICAxMDQsIFRvdGFsIHRpbWUgICA4ODU0NzI0NTE3NjIsIE92 ZXJoZWFkOiAzNDEuNzUKTnVtYmVyIG9mIHRocmVhZHM6ICAxMjgsIFRvdGFs IHRpbWUgIDE1NDMyNjcxMDg5NDQsIE92ZXJoZWFkOiA0ODMuOTQKTnVtYmVy IG9mIHRocmVhZHM6ICAyNTYsIFRvdGFsIHRpbWUgMTE3ODA1NDE2MzYwNTQs IE92ZXJoZWFkOiAxODQ3LjA5Ck51bWJlciBvZiB0aHJlYWRzOiAgMzYwLCBU b3RhbCB0aW1lIDMyMDAwODk3NTMzNTI4LCBPdmVyaGVhZDogMzU2Ny45NwpO dW1iZXIgb2YgdGhyZWFkczogIDQxNiwgVG90YWwgdGltZSA0ODg2MjUwMjE0 NzA1NiwgT3ZlcmhlYWQ6IDQ3MTQuNTkKCjIuIG51bWEgc3BpbmxvY2sKIy4v dHN0LW51bWEtdmFyaWFibGUtb3ZlcmhlYWQKTnVtYmVyIG9mIHByb2Nlc3Nv cnM6IDEwNCwgU2luZ2xlIHRocmVhZCB0aW1lIDI3OTA2MTc4CgpOdW1iZXIg b2YgdGhyZWFkczogICAgMiwgVG90YWwgdGltZSAgICAgIDEzNzkxMTk0Miwg T3ZlcmhlYWQ6IDIuNDcKTnVtYmVyIG9mIHRocmVhZHM6ICAgIDQsIFRvdGFs IHRpbWUgICAgICAzMzkyNTE3MTAsIE92ZXJoZWFkOiAzLjA0Ck51bWJlciBv ZiB0aHJlYWRzOiAgICA4LCBUb3RhbCB0aW1lICAgICAgNzIzNjYzNDY2LCBP dmVyaGVhZDogMy4yNApOdW1iZXIgb2YgdGhyZWFkczogICAxNiwgVG90YWwg dGltZSAgICAgMjM4MDA1MDM0OCwgT3ZlcmhlYWQ6IDUuMzMKTnVtYmVyIG9m IHRocmVhZHM6ICAgMzIsIFRvdGFsIHRpbWUgICAgIDgwODQ4NTU3MzgsIE92 ZXJoZWFkOiA5LjA1Ck51bWJlciBvZiB0aHJlYWRzOiAgIDY0LCBUb3RhbCB0 aW1lICAgIDI3NjQ2NTA3ODgwLCBPdmVyaGVhZDogMTUuNDgKTnVtYmVyIG9m IHRocmVhZHM6ICAxMDQsIFRvdGFsIHRpbWUgICAgNjU0NzA1Njc1NDgsIE92 ZXJoZWFkOiAyMi41NgpOdW1iZXIgb2YgdGhyZWFkczogIDEyOCwgVG90YWwg dGltZSAgICA5Nzk2Njc4NTA3NiwgT3ZlcmhlYWQ6IDI3LjQzCk51bWJlciBv ZiB0aHJlYWRzOiAgMjU2LCBUb3RhbCB0aW1lICAxMTEwMTY4MzA5NDQ4LCBP dmVyaGVhZDogMTU1LjQwCk51bWJlciBvZiB0aHJlYWRzOiAgMzYwLCBUb3Rh bCB0aW1lICAyNTE2MDE1MTU4NzQwLCBPdmVyaGVhZDogMjUwLjQ0Ck51bWJl ciBvZiB0aHJlYWRzOiAgNDE2LCBUb3RhbCB0aW1lICA0MjE5MjMzMDc4NDcy LCBPdmVyaGVhZDogMzYzLjQ1CgpUaGUgYWJvdmUgZGF0YSB0ZWxsIHVzIHRo ZSBudW1hIHNwaW5sb2NrIGltcHJvdmUgcGVyZm9ybWFuY2UgdXB0byAxNVgs IApPdXIgcmVhbCBvbmxpbmUgd29ya2xvYWQgaW5kaWNhdGUgbnVtYSBzcGlu bG9jayBpbXByb3ZlIHRoZSBzeXN0ZW0gdGhyb3VnaHB1dCAxNC41JS4KCkFw cHJlY2lhdGUgeW91ciBhbnkgY29tbWVudHMuCgpUaGFua3MgYSBsb3QKTGlu ZwoKIOWcqCAyMDE4LzEyLzI2IOS4iuWNiDEwOjUw77yM4oCcTWEgTGluZ+KA nTxsaW5nLm1hLnByb2dyYW1AZ21haWwuY29tPiDlhpnlhaU6CgogICAgRnJv bTogImxpbmcubWEiIDxsaW5nLm1sQGFudGZpbi5jb20+CiAgICAKICAgIE9u IG11bHRpLXNvY2tldCBzeXN0ZW1zLCBtZW1vcnkgaXMgc2hhcmVkIGFjcm9z cyB0aGUgZW50aXJlIHN5c3RlbS4KICAgIERhdGEgYWNjZXNzIHRvIHRoZSBs b2NhbCBzb2NrZXQgaXMgbXVjaCBmYXN0ZXIgdGhhbiB0aGUgcmVtb3RlIHNv Y2tldAogICAgYW5kIGRhdGEgYWNjZXNzIHRvIHRoZSBsb2NhbCBjb3JlIGlz IGZhc3RlciB0aGFuIHNpYmxpbmcgY29yZXMgb24gdGhlCiAgICBzYW1lIHNv Y2tldC4gIEZvciBzZXJpYWxpemVkIHdvcmtsb2FkcyB3aXRoIGNvbnZlbnRp b25hbCBzcGlubG9jaywKICAgIHdoZW4gdGhlcmUgaXMgaGlnaCBzcGlubG9j ayBjb250ZW50aW9uIGJldHdlZW4gdGhyZWFkcywgbG9jayBwaW5nLXBvbmcK ICAgIGFtb25nIHNvY2tldHMgYmVjb21lcyB0aGUgYm90dGxlbmVjayBhbmQg dGhyZWFkcyBzcGVuZCBtYWpvcml0eSBvZgogICAgdGhlaXIgdGltZSBpbiBz cGlubG9jayBvdmVyaGVhZC4KICAgIAogICAgT24gbXVsdGktc29ja2V0IHN5 c3RlbXMsIHRoZSBrZXlzIHRvIG91ciBOVU1BIHNwaW5sb2NrIHBlcmZvcm1h bmNlCiAgICBhcmUgdG8gbWluaW1pemUgY3Jvc3Mtc29ja2V0IHRyYWZmaWMg YXMgd2VsbCBhcyBsb2NhbGl6ZSB0aGUgc2VyaWFsaXplZAogICAgd29ya2xv YWQgdG8gb25lIGNvcmUgZm9yIGV4ZWN1dGlvbi4gIFRoZSBiYXNpYyBwcmlu Y2lwbGVzIG9mIE5VTUEKICAgIHNwaW5sb2NrIGFyZSBtYWlubHkgY29uc2lz dGVkIG9mIGZvbGxvd2luZyBhcHByb2FjaGVzLCB3aGljaCByZWR1Y2UKICAg IGRhdGEgbW92ZW1lbnQgYW5kIGFjY2VsZXJhdGUgY3JpdGljYWwgc2VjdGlv biwgZXZlbnR1YWxseSBnaXZlIHVzCiAgICBzaWduaWZpY2FudCBwZXJmb3Jt YW5jZSBpbXByb3ZlbWVudC4KICAgIAogICAgMS4gTUNTIHNwaW5sb2NrCiAg ICBNQ1Mgc3BpbmxvY2sgaGVscCB1cyB0byByZWR1Y2UgdGhlIHVzZWxlc3Mg bG9jayBtb3ZlbWVudCBpbiB0aGUKICAgIHNwaW5uaW5nIHN0YXRlLiAgVGhp cyBwYXBlciBwcm92aWRlcyBhIGdvb2QgZGVzY3JpcHRpb24gZm9yIHRoaXMK ICAgIGtpbmQgb2YgbG9jazoKICAgIDxodHRwOi8vd3d3LmNpc2UudWZsLmVk dS90ci9ET0MvUkVQLTE5OTItNzEucGRmPgogICAgCiAgICAyLiBDcml0aWNh bCBTZWN0aW9uIEludGVncmF0aW9uIChDU0kpCiAgICBFc3NlbnRpYWxseSBz cGlubG9jayBpcyBzaW1pbGFyIHRvIHRoYXQgb25lIGNvcmUgY29tcGxldGUg Y3JpdGljYWwKICAgIHNlY3Rpb25zIG9uZSBieSBvbmUuIFNvIHdoZW4gY29u dGVudGlvbiBoYXBwZW4sIHRoZSBzZXJpYWxpemVkIHdvcmtzCiAgICBhcmUg c2VudCB0byB0aGUgY29yZSB3aG8gaXMgdGhlIGxvY2sgb3duZXIgYW5kIHJl c3BvbnNpYmxlIHRvIGV4ZWN1dGUKICAgIHRoZW0sIHRoYXQgY2FuIHNhdmUg bXVjaCB0aW1lIGFuZCBwb3dlciwgYmVjYXVzZSBhbGwgc2hhcmVkIGRhdGEg YXJlCiAgICBsb2NhdGVkIGluIHByaXZhdGUgY2FjaGUgb2YgdGhlIGxvY2sg b3duZXIuCiAgICAKICAgIFdlIGltcGxlbWVudGVkIHRoaXMgbWVjaGFuaXNt IGJhc2VkIG9uIHF1ZXVlZCBzcGlubG9jayBpbiBrZXJuZWwsIHRoYXQKICAg IHNwZWVkcyB1cCBjcml0aWNhbCBzZWN0aW9uLCBhbmQgcmVkdWNlcyB0aGUg cHJvYmFiaWxpdHkgb2YgY29udGVudGlvbi4KICAgIFRoZSBwYXBlciBwcm92 aWRlcyBhIGdvb2QgZGVzY3JpcHRpb24gZm9yIHRoaXMga2luZCBvZiBsb2Nr OgogICAgPGh0dHBzOi8vdXNlcnMuZWNlLmNtdS5lZHUvfm9tdXRsdS9wdWIv YWNzX2FzcGxvczA5LnBkZj4KICAgIAogICAgMy4gTlVNQSBBd2FyZSBTcGlu bG9jayAoTkFTKQogICAgQ3VycmVudGx5IG11bHRpLXNvY2tldCBzeXN0ZW1z IGdpdmUgdXMgYmV0dGVyIHBlcmZvcm1hbmNlIHBlciB3YXR0LAogICAgaG93 ZXZlciB0aGF0IGFsc28gaW52b2x2ZXMgbW9yZSBjb21wbGV4IHN5bmNocm9u aXphdGlvbiByZXF1aXJlbWVudCwKICAgIGJlY2F1c2Ugb2ZmLWNoaXAgZGF0 YSBtb3ZlbWVudCBpcyBtdWNoIHNsb3dlci4gV2UgdXNlIGRpc3RyaWJ1dGVk CiAgICBzeW5jaHJvbml6YXRpb24gbWVjaGFuaXNtIHRvIGRlY3JlYXNlIExv Y2sgY2FjaGUgbGluZSB0byBhbmQgZnJvbQogICAgZGlmZmVyZW50IG5vZGVz LiBUaGUgcGFwZXIgcHJvdmlkZXMgYSBnb29kIGRlc2NyaXB0aW9uIGZvciB0 aGlzIGtpbmQKICAgIG9mIGxvY2s6CiAgICA8aHR0cHM6Ly93d3cudXNlbml4 Lm9yZy9zeXN0ZW0vZmlsZXMvY29uZmVyZW5jZS9hdGMxNy9hdGMxNy1rYXNo eWFwLnBkZj4KICAgIAogICAgNC4gWWllbGQgU2NoZWR1bGUKICAgIFdoZW4g dGhyZWFkcyBhcmUgYXBwbHlpbmcgZm9yIENyaXRpY2FsIFNlY3Rpb24gSW50 ZWdyYXRpb24oQ1NJKSB3aXRoCiAgICBrbm93biBjb250ZW50aW9uLCB0aGV5 IHdpbGwgZGVsZWdhdGUgd29yayB0byB0aGUgdGhyZWFkIHdobyBpcyB0aGUK ICAgIGxvY2sgb3duZXIsIGFuZCB3YWl0IGZvciB3b3JrIHRvIGJlIGNvbXBs ZXRlZC4gIFRoZSByZXNvdXJjZXMgd2hpY2gKICAgIHRoZXkgYXJlIHVzaW5n IHNob3VsZCBiZSB0cmFuc2ZlcnJlZCB0byBvdGhlciB0aHJlYWRzLiBJbiBv cmRlciB0bwogICAgYWNjZWxlcmF0ZSB0aGUgc2NlbmFyaW8sIHdlIGludHJv ZHVjZSB5aWVsZF9zY2hlZCBmdW5jdGlvbiBkdXJpbmcKICAgIHNwaW5uaW5n IHN0YWdlLgogICAgCiAgICA1LiBPcHRpbWl6YXRpb24gd2hlbiBOVU1BIGlz IE9OIG9yIE9GRi4KICAgIEFsdGhvdWdoIHByb2dyYW1zIGNhbiBhY2Nlc3Mg bWVtb3J5IHdpdGggbG93ZXIgbGF0ZW5jeSB3aGVuIE5VTUEgaXMKICAgIGVu YWJsZWQsIHNvbWUgcHJvZ3JhbXMgbWF5IG5lZWQgbW9yZSBtZW1vcnkgYmFu ZHdpZHRoIGZvciBjb21wdXRhdGlvbgogICAgd2l0aCBOVU1BIGRpc2FibGVk LiAgV2UgYWxzbyBvcHRpbWl6ZSBtdWx0aS1zb2NrZXQgc3lzdGVtcyB3aXRo IE5VTUEKICAgIGRpc2FibGVkLgogICAgCiAgICBOVU1BIHNwaW5sb2NrIGZs b3cgY2hhcnQgKGFzc3VtaW5nIHRoZXJlIGFyZSAyIENQVSBub2Rlcyk6CiAg ICAKICAgIDEuIFRocmVhZHMgZnJvbSBub2RlXzAvbm9kZV8xIGFjcXVpcmUg bG9jYWwgbG9jayBmb3Igbm9kZV8wLzEKICAgIHJlc3BlY3RpdmVseS4gIElm IHRoZSB0aHJlYWQgc3VjY2VlZHMgaW4gYWNxdWlyaW5nIGxvY2FsIGxvY2ss IGl0CiAgICBnb2VzIHRvIHN0ZXAgMiwgb3RoZXJ3aXNlIHB1c2hlcyBjcml0 aWNhbCBmdW5jdGlvbiBpbnRvIGN1cnJlbnQKICAgIGxvY2FsIHdvcmsgcXVl dWUsIGFuZCBlbnRlcnMgaW50byBzcGlubmluZyBzdGFnZSB3aXRoIE1DUyBt b2RlLgogICAgCiAgICAyLiBUaHJlYWRzIGZyb20gbm9kZV8wL25vZGVfMSBh Y3F1aXJlIHRoZSBnbG9iYWwgbG9jay4gIElmIGl0IHN1Y2NlZWRzCiAgICBp biBhY3F1aXJpbmcgdGhlIGdsb2JhbCBsb2NrIGFzIHRoZSBsb2NrIG93bmVy LCBpdCBnb2VzIHRvIHN0ZXAgMywKICAgIG90aGVyd2lzZSB3YWl0cyB1bnRp bCB0aGUgbG9jayBvd25lciB0aHJlYWQgcmVsZWFzZXMgdGhlIGdsb2JhbCBs b2NrLgogICAgCiAgICAzLiBUaGUgbG9jayBvd25lciB0aHJlYWQgZnJvbSBu b2RlXzAvMSBlbnRlcnMgaW50byBjcml0aWNhbCBzZWN0aW9uLAogICAgY2xl YW5zIHVwIHdvcmsgcXVldWUgYnkgcGVyZm9ybWluZyBhbGwgbG9jYWwgY3Jp dGljYWwgZnVuY3Rpb25zCiAgICBwdXNoZWQgYXQgc3RlcCAxIHdpdGggQ1NJ IG9uIGJlaGFsZiBvZiBvdGhlciB0aHJlYWRzIGFuZCBpbmZvcm1zCiAgICB0 aG9zZSBzcGlubmluZyB0aHJlYWRzIHRoYXQgdGhlaXIgd29ya3MgaGF2ZSBi ZWVuIGRvbmUuICBJdCB0aGVuCiAgICByZWxlYXNlcyB0aGUgbG9jYWwgbG9j ay4KICAgIAogICAgNC4gVGhlIGxvY2sgb3duZXIgdGhyZWFkIGZyZWVzIGds b2JhbCBsb2NrLiAgSWYgYW5vdGhlciB0aHJlYWQgaXMKICAgIHdhaXRpbmcg YXQgc3RlcCAyLCB0aGUgbG9jayBvd25lciB0aHJlYWQgcGFzc2VzIHRoZSBn bG9iYWwgbG9jayB0bwogICAgdGhlIHdhaXRpbmcgdGhyZWFkIGFuZCByZXR1 cm5zLiAgVGhlIG5ldyBsb2NrIG93bmVyIHRocmVhZCBlbnRlcnMKICAgIGlu dG8gc3RlcCAzLiAgSWYgbm8gdGhyZWFkcyBhcmUgd2FpdGluZywgdGhlIGxv Y2sgb3duZXIgdGhyZWFkCiAgICByZWxlYXNlcyB0aGUgZ2xvYmFsIGxvY2sg YW5kIHJldHVybnMuICBUaGUgd2hvbGUgY3JpdGljYWwgc2VjdGlvbgogICAg cHJvY2VzcyBpcyBjb21wbGV0ZWQuCiAgICAKICAgIFN0ZXBzIDEgYW5kIDIg bWl0aWdhdGUgZ2xvYmFsIGxvY2sgY29udGVudGlvbi4gIE9ubHkgb25lIHRo cmVhZAogICAgZnJvbSBkaWZmZXJlbnQgbm9kZXMgd2lsbCBjb21wZXRlIGZv ciB0aGUgZ2xvYmFsIGxvY2sgaW4gc3RlcCAyLgogICAgU3RlcCAzIHJlZHVj ZXMgdGhlIGdsb2JhbCBsb2NrICYgc2hhcmVkIGRhdGEgbW92ZW1lbnQgYmVj YXVzZSB0aGV5CiAgICBhcmUgbG9jYXRlZCBpbiB0aGUgc2FtZSBub2RlIGFz IHdlbGwgYXMgdGhlIHNhbWUgY29yZS4gIE91ciBkYXRhCiAgICBzaG93cyB0 aGF0IENyaXRpY2FsIFNlY3Rpb24gSW50ZWdyYXRpb24gKENTSSkgaW1wcm92 ZXMgZGF0YSBsb2NhbGl0eQogICAgYW5kIE5VTUEtYXdhcmUgc3BpbmxvY2sg KE5BUykgaGVscHMgQ1NJIGJhbGFuY2UgdGhlIHdvcmtsb2FkLgogICAgCiAg ICBOVU1BIHNwaW5sb2NrIGNhbiBncmVhdGx5IHNwZWVkIHVwIGNyaXRpY2Fs IHNlY3Rpb24gb24gbXVsdGktc29ja2V0CiAgICBzeXN0ZW1zLiAgSXQgc2hv dWxkIGltcHJvdmUgc3BpbmxvY2sgcGVyZm9ybWFuY2Ugb24gYWxsIG11bHRp LXNvY2tldAogICAgc3lzdGVtcy4gCiAgICAKICAgIDIwMTgtMTItMjQgIExp bmcgTWEgIDxsaW5nLm1sQGFudGZpbi5jb20+CiAgICAgICAgIEguSi4gTHUg IDxob25naml1Lmx1QGludGVsLmNvbT4KICAgICAgICAgV2VpIFhpYW8gIDx3 ZWkzLnhpYW9AaW50ZWwuY29tPgogICAgCiAgICAgW0JaICMyMzk2Ml0KICAg ICAqIE5FV1M6IE1lbnRpb24gTlVNQSBzcGlubG9jay4KICAgICAqIG1hbnVh bC9leGFtcGxlcy9udW1hLXNwaW5sb2NrLmM6IE5ldyBmaWxlLgogICAgICog c3lzZGVwcy91bml4L3N5c3YvbGludXgvbnVtYS1zcGlubG9jay1wcml2YXRl Lmg6IExpa2V3aXNlLgogICAgICogc3lzZGVwcy91bml4L3N5c3YvbGludXgv bnVtYS1zcGlubG9jay5jOiBMaWtld2lzZS4KICAgICAqIHN5c2RlcHMvdW5p eC9zeXN2L2xpbnV4L251bWEtc3BpbmxvY2suaDogTGlrZXdpc2UuCiAgICAg KiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9udW1hX3NwaW5sb2NrX2FsbG9j LmM6IExpa2V3aXNlLgogICAgICogc3lzZGVwcy91bml4L3N5c3YvbGludXgv eDg2L3RzdC1udW1hLXZhcmlhYmxlLW92ZXJoZWFkLmM6CiAgICAgTGlrZXdp c2UuCiAgICAgKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC94ODYvdHN0LXZh cmlhYmxlLW92ZXJoZWFkLXNrZWxldG9uLmM6CiAgICAgTGlrZXdpc2UuCiAg ICAgKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC94ODYvdHN0LXZhcmlhYmxl LW92ZXJoZWFkLmM6IExpa2V3aXNlLgogICAgICogbWFudWFsL3RocmVhZHMu dGV4aTogRG9jdW1lbnQgTlVNQSBzcGlubG9jay4KICAgICAqIHN5c2RlcHMv dW5peC9zeXN2L2xpbnV4L01ha2VmaWxlIChsaWJwdGhyZWFkLXN5c2RlcF9y b3V0aW5lcyk6CiAgICAgQWRkIG51bWFfc3BpbmxvY2tfYWxsb2MgYW5kIG51 bWEtc3BpbmxvY2suCiAgICAgKHN5c2RlcF9oZWFkZXJzKTogQWRkIG51bWEt c3BpbmxvY2suaC4KICAgICAqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L1Zl cnNpb25zIChsaWJwdGhyZWFkKTogQWRkCiAgICAgbnVtYV9zcGlubG9ja19h bGxvYywgbnVtYV9zcGlubG9ja19mcmVlLCBudW1hX3NwaW5sb2NrX2luaXQK ICAgICBhbmQgbnVtYV9zcGlubG9ja19hcHBseSB0byBHTElCQ18yLjI5Lgog ICAgICogc3lzZGVwcy91bml4L3N5c3YvbGludXgvYWFyY2g2NC9saWJwdGhy ZWFkLmFiaWxpc3Q6IEFkZAogICAgIG51bWFfc3BpbmxvY2tfYWxsb2MsIG51 bWFfc3BpbmxvY2tfYXBwbHksIG51bWFfc3BpbmxvY2tfZnJlZQogICAgIGFu ZCBudW1hX3NwaW5sb2NrX2luaXQuCiAgICAgKiBzeXNkZXBzL3VuaXgvc3lz di9saW51eC9hbHBoYS9saWJwdGhyZWFkLmFiaWxpc3Q6IExpa2V3aXNlLgog ICAgICogc3lzZGVwcy91bml4L3N5c3YvbGludXgvYXJtL2xpYnB0aHJlYWQu YWJpbGlzdDogTGlrZXdpc2UuCiAgICAgKiBzeXNkZXBzL3VuaXgvc3lzdi9s aW51eC9jc2t5L2xpYnB0aHJlYWQuYWJpbGlzdDogTGlrZXdpc2UuCiAgICAg KiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9ocHBhL2xpYnB0aHJlYWQuYWJp bGlzdDogTGlrZXdpc2UuCiAgICAgKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51 eC9pMzg2L2xpYnB0aHJlYWQuYWJpbGlzdDogTGlrZXdpc2UuCiAgICAgKiBz eXNkZXBzL3VuaXgvc3lzdi9saW51eC9pYTY0L2xpYnB0aHJlYWQuYWJpbGlz dDogTGlrZXdpc2UuCiAgICAgKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9t NjhrL2NvbGRmaXJlL2xpYnB0aHJlYWQuYWJpbGlzdDoKICAgICBMaWtld2lz ZS4KICAgICAqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L202OGsvbTY4MHgw L2xpYnB0aHJlYWQuYWJpbGlzdDogTGlrZXdpc2UuCiAgICAgKiBzeXNkZXBz L3VuaXgvc3lzdi9saW51eC9taWNyb2JsYXplL2xpYnB0aHJlYWQuYWJpbGlz dDogTGlrZXdpc2UuCiAgICAgKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9t aXBzL21pcHMzMi9saWJwdGhyZWFkLmFiaWxpc3Q6IExpa2V3aXNlLgogICAg ICogc3lzZGVwcy91bml4L3N5c3YvbGludXgvbWlwcy9taXBzNjQvbGlicHRo cmVhZC5hYmlsaXN0OiBMaWtld2lzZS4KICAgICAqIHN5c2RlcHMvdW5peC9z eXN2L2xpbnV4L25pb3MyL2xpYnB0aHJlYWQuYWJpbGlzdDogTGlrZXdpc2Uu CiAgICAgKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9wb3dlcnBjL3Bvd2Vy cGMzMi9saWJwdGhyZWFkLmFiaWxpc3Q6CiAgICAgTGlrZXdpc2UuCiAgICAg KiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9wb3dlcnBjL3Bvd2VycGM2NC9i ZS9saWJwdGhyZWFkLmFiaWxpc3Q6CiAgICAgTGlrZXdpc2UuCiAgICAgKiBz eXNkZXBzL3VuaXgvc3lzdi9saW51eC9wb3dlcnBjL3Bvd2VycGM2NC9sZS9s aWJwdGhyZWFkLmFiaWxpc3Q6CiAgICAgTGlrZXdpc2UuCiAgICAgKiBzeXNk ZXBzL3VuaXgvc3lzdi9saW51eC9yaXNjdi9ydjY0L2xpYnB0aHJlYWQuYWJp bGlzdDogTGlrZXdpc2UuCiAgICAgKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51 eC9zMzkwL3MzOTAtMzIvbGlicHRocmVhZC5hYmlsaXN0OgogICAgIExpa2V3 aXNlLgogICAgICogc3lzZGVwcy91bml4L3N5c3YvbGludXgvczM5MC9zMzkw LTY0L2xpYnB0aHJlYWQuYWJpbGlzdDoKICAgICBMaWtld2lzZS4KICAgICAq IHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L3NoL2xpYnB0aHJlYWQuYWJpbGlz dDogTGlrZXdpc2UuCiAgICAgKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9z cGFyYy9zcGFyYzMyL2xpYnB0aHJlYWQuYWJpbGlzdDoKICAgICBMaWtld2lz ZS4KICAgICAqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L3NwYXJjL3NwYXJj NjQvbGlicHRocmVhZC5hYmlsaXN0OgogICAgIExpa2V3aXNlLgogICAgICog c3lzZGVwcy91bml4L3N5c3YvbGludXgveDg2XzY0LzY0L2xpYnB0aHJlYWQu YWJpbGlzdDogTGlrZXdpc2UuCiAgICAgKiBzeXNkZXBzL3VuaXgvc3lzdi9s aW51eC94ODZfNjQveDMyL2xpYnB0aHJlYWQuYWJpbGlzdDogTGlrZXdpc2Uu CiAgICAgKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC94ODYvTWFrZWZpbGUg KHh0ZXN0cyk6IEFkZAogICAgIHRzdC12YXJpYWJsZS1vdmVyaGVhZCBhbmQg dHN0LW51bWEtdmFyaWFibGUtb3ZlcmhlYWQuCiAgICAgCiAgICAKICAgIFNp Z25lZC1vZmYtYnk6IExpbmcgTWEgIDxsaW5nLm1sQGFudGZpbi5jb20+CiAg ICBTaWduZWQtb2ZmLWJ5OiBILkouIEx1ICA8aG9uZ2ppdS5sdUBpbnRlbC5j b20+CiAgICBTaWduZWQtb2ZmLWJ5OiBXZWkgWGlhbyAgPHdlaTMueGlhb0Bp bnRlbC5jb20+CiAgICAtLS0KICAgICBORVdTICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMyArCiAgICAgbWFu dWFsL2V4YW1wbGVzL251bWEtc3BpbmxvY2suYyAgICAgICAgICAgICAgICAg ICAgfCAgOTkgKysrKysrCiAgICAgbWFudWFsL3RocmVhZHMudGV4aSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAxMDUgKysrKysrCiAgICAg c3lzZGVwcy91bml4L3N5c3YvbGludXgvTWFrZWZpbGUgICAgICAgICAgICAg ICAgICAgfCAgIDIgKwogICAgIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L1Zl cnNpb25zICAgICAgICAgICAgICAgICAgIHwgICA5ICsKICAgICBzeXNkZXBz L3VuaXgvc3lzdi9saW51eC9hYXJjaDY0L2xpYnB0aHJlYWQuYWJpbGlzdCB8 ICAgNCArCiAgICAgc3lzZGVwcy91bml4L3N5c3YvbGludXgvYWxwaGEvbGli cHRocmVhZC5hYmlsaXN0ICAgfCAgIDQgKwogICAgIHN5c2RlcHMvdW5peC9z eXN2L2xpbnV4L2FybS9saWJwdGhyZWFkLmFiaWxpc3QgICAgIHwgICA0ICsK ICAgICBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9jc2t5L2xpYnB0aHJlYWQu YWJpbGlzdCAgICB8ICAgNCArCiAgICAgc3lzZGVwcy91bml4L3N5c3YvbGlu dXgvaHBwYS9saWJwdGhyZWFkLmFiaWxpc3QgICAgfCAgIDQgKwogICAgIHN5 c2RlcHMvdW5peC9zeXN2L2xpbnV4L2kzODYvbGlicHRocmVhZC5hYmlsaXN0 ICAgIHwgICA0ICsKICAgICBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9pYTY0 L2xpYnB0aHJlYWQuYWJpbGlzdCAgICB8ICAgNCArCiAgICAgLi4uL3N5c3Yv bGludXgvbTY4ay9jb2xkZmlyZS9saWJwdGhyZWFkLmFiaWxpc3QgICAgfCAg IDQgKwogICAgIC4uLi91bml4L3N5c3YvbGludXgvbTY4ay9tNjgweDAvbGli cHRocmVhZC5hYmlsaXN0IHwgICA0ICsKICAgICAuLi4vdW5peC9zeXN2L2xp bnV4L21pY3JvYmxhemUvbGlicHRocmVhZC5hYmlsaXN0ICB8ICAgNCArCiAg ICAgLi4uL3VuaXgvc3lzdi9saW51eC9taXBzL21pcHMzMi9saWJwdGhyZWFk LmFiaWxpc3QgfCAgIDQgKwogICAgIC4uLi91bml4L3N5c3YvbGludXgvbWlw cy9taXBzNjQvbGlicHRocmVhZC5hYmlsaXN0IHwgICA0ICsKICAgICBzeXNk ZXBzL3VuaXgvc3lzdi9saW51eC9uaW9zMi9saWJwdGhyZWFkLmFiaWxpc3Qg ICB8ICAgNCArCiAgICAgc3lzZGVwcy91bml4L3N5c3YvbGludXgvbnVtYS1z cGlubG9jay1wcml2YXRlLmggICAgfCAgMzggKysKICAgICBzeXNkZXBzL3Vu aXgvc3lzdi9saW51eC9udW1hLXNwaW5sb2NrLmMgICAgICAgICAgICB8IDMy NyArKysrKysrKysrKysrKysrKysKICAgICBzeXNkZXBzL3VuaXgvc3lzdi9s aW51eC9udW1hLXNwaW5sb2NrLmggICAgICAgICAgICB8ICA2NCArKysrCiAg ICAgc3lzZGVwcy91bml4L3N5c3YvbGludXgvbnVtYV9zcGlubG9ja19hbGxv Yy5jICAgICAgfCAzMDQgKysrKysrKysrKysrKysrKwogICAgIC4uLi9saW51 eC9wb3dlcnBjL3Bvd2VycGMzMi9saWJwdGhyZWFkLmFiaWxpc3QgICAgIHwg ICA0ICsKICAgICAuLi4vbGludXgvcG93ZXJwYy9wb3dlcnBjNjQvYmUvbGli cHRocmVhZC5hYmlsaXN0ICB8ICAgNCArCiAgICAgLi4uL2xpbnV4L3Bvd2Vy cGMvcG93ZXJwYzY0L2xlL2xpYnB0aHJlYWQuYWJpbGlzdCAgfCAgIDQgKwog ICAgIC4uLi91bml4L3N5c3YvbGludXgvcmlzY3YvcnY2NC9saWJwdGhyZWFk LmFiaWxpc3QgIHwgICA0ICsKICAgICAuLi4vc3lzdi9saW51eC9zMzkwL3Mz OTAtMzIvbGlicHRocmVhZC5hYmlsaXN0ICAgICB8ICAgNCArCiAgICAgLi4u L3N5c3YvbGludXgvczM5MC9zMzkwLTY0L2xpYnB0aHJlYWQuYWJpbGlzdCAg ICAgfCAgIDQgKwogICAgIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L3NoL2xp YnB0aHJlYWQuYWJpbGlzdCAgICAgIHwgICA0ICsKICAgICAuLi4vc3lzdi9s aW51eC9zcGFyYy9zcGFyYzMyL2xpYnB0aHJlYWQuYWJpbGlzdCAgICB8ICAg NCArCiAgICAgLi4uL3N5c3YvbGludXgvc3BhcmMvc3BhcmM2NC9saWJwdGhy ZWFkLmFiaWxpc3QgICAgfCAgIDQgKwogICAgIHN5c2RlcHMvdW5peC9zeXN2 L2xpbnV4L3g4Ni9NYWtlZmlsZSAgICAgICAgICAgICAgIHwgICAxICsKICAg ICAuLi4vc3lzdi9saW51eC94ODYvdHN0LW51bWEtdmFyaWFibGUtb3Zlcmhl YWQuYyAgICB8ICA1MyArKysKICAgICAuLi4vbGludXgveDg2L3RzdC12YXJp YWJsZS1vdmVyaGVhZC1za2VsZXRvbi5jICAgICB8IDM4NCArKysrKysrKysr KysrKysrKysrKysKICAgICAuLi4vdW5peC9zeXN2L2xpbnV4L3g4Ni90c3Qt dmFyaWFibGUtb3ZlcmhlYWQuYyAgICB8ICA0NyArKysKICAgICAuLi4vdW5p eC9zeXN2L2xpbnV4L3g4Nl82NC82NC9saWJwdGhyZWFkLmFiaWxpc3QgICB8 ICAgNCArCiAgICAgLi4uL3VuaXgvc3lzdi9saW51eC94ODZfNjQveDMyL2xp YnB0aHJlYWQuYWJpbGlzdCAgfCAgIDQgKwogICAgIDM3IGZpbGVzIGNoYW5n ZWQsIDE1MzIgaW5zZXJ0aW9ucygrKQogICAgIGNyZWF0ZSBtb2RlIDEwMDY0 NCBtYW51YWwvZXhhbXBsZXMvbnVtYS1zcGlubG9jay5jCiAgICAgY3JlYXRl IG1vZGUgMTAwNjQ0IHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L251bWEtc3Bp bmxvY2stcHJpdmF0ZS5oCiAgICAgY3JlYXRlIG1vZGUgMTAwNjQ0IHN5c2Rl cHMvdW5peC9zeXN2L2xpbnV4L251bWEtc3BpbmxvY2suYwogICAgIGNyZWF0 ZSBtb2RlIDEwMDY0NCBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9udW1hLXNw aW5sb2NrLmgKICAgICBjcmVhdGUgbW9kZSAxMDA2NDQgc3lzZGVwcy91bml4 L3N5c3YvbGludXgvbnVtYV9zcGlubG9ja19hbGxvYy5jCiAgICAgY3JlYXRl IG1vZGUgMTAwNjQ0IHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L3g4Ni90c3Qt bnVtYS12YXJpYWJsZS1vdmVyaGVhZC5jCiAgICAgY3JlYXRlIG1vZGUgMTAw NjQ0IHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L3g4Ni90c3QtdmFyaWFibGUt b3ZlcmhlYWQtc2tlbGV0b24uYwogICAgIGNyZWF0ZSBtb2RlIDEwMDY0NCBz eXNkZXBzL3VuaXgvc3lzdi9saW51eC94ODYvdHN0LXZhcmlhYmxlLW92ZXJo ZWFkLmMKICAgIAogICAgZGlmZiAtLWdpdCBhL05FV1MgYi9ORVdTCiAgICBp bmRleCBjZDI5ZWM3Li4wNzY0ZDBkIDEwMDY0NAogICAgLS0tIGEvTkVXUwog ICAgKysrIGIvTkVXUwogICAgQEAgLTksNiArOSw5IEBAIFZlcnNpb24gMi4y OQogICAgIAogICAgIE1ham9yIG5ldyBmZWF0dXJlczoKICAgICAKICAgICsq IE5VTUEgc3BpbmxvY2sgaXMgYWRkZWQgdG8gcHJvdmlkZSBhIHNwaW5sb2Nr IGltcGxlbWVudGF0aW9uIG9wdGltaXplZAogICAgKyAgZm9yIG11bHRpLXNv Y2tldCBOVU1BIHN5c3RlbXMuCiAgICArCiAgICAgKiBUaGUgZ2V0Y3B1IHdy YXBwZXIgZnVuY3Rpb24gaGFzIGJlZW4gYWRkZWQsIHdoaWNoIHJldHVybnMg dGhlIGN1cnJlbnRseQogICAgICAgdXNlZCBDUFUgYW5kIE5VTUEgbm9kZS4g IFRoaXMgZnVuY3Rpb24gaXMgTGludXgtc3BlY2lmaWMuCiAgICAgCiAgICBk aWZmIC0tZ2l0IGEvbWFudWFsL2V4YW1wbGVzL251bWEtc3BpbmxvY2suYyBi L21hbnVhbC9leGFtcGxlcy9udW1hLXNwaW5sb2NrLmMKICAgIG5ldyBmaWxl IG1vZGUgMTAwNjQ0CiAgICBpbmRleCAwMDAwMDAwLi5jYTk4NDQzCiAgICAt LS0gL2Rldi9udWxsCiAgICArKysgYi9tYW51YWwvZXhhbXBsZXMvbnVtYS1z cGlubG9jay5jCiAgICBAQCAtMCwwICsxLDk5IEBACiAgICArLyogTlVNQSBz cGlubG9jayBleGFtcGxlLgogICAgKyAgIENvcHlyaWdodCAoQykgMjAxOCBG cmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KICAgICsKICAgICsgICBU aGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3Ry aWJ1dGUgaXQgYW5kL29yCiAgICArICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0 ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKICAgICsg ICBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlv bjsgZWl0aGVyIHZlcnNpb24gMgogICAgKyAgIG9mIHRoZSBMaWNlbnNlLCBv ciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgogICAgKwog ICAgKyAgIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9w ZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAogICAgKyAgIGJ1dCBXSVRIT1VU IEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJh bnR5IG9mCiAgICArICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9S IEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQogICAgKyAgIEdOVSBH ZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiAgICAr CiAgICArICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0 aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwogICAgKyAgIExpY2Vuc2Ug YWxvbmcgd2l0aCB0aGUgR05VIEMgTGlicmFyeTsgaWYgbm90LCBzZWUKICAg ICsgICA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uCiAgICArKi8K ICAgICsKICAgICsjaW5jbHVkZSA8cHRocmVhZC5oPgogICAgKyNpbmNsdWRl IDxzdGRpby5oPgogICAgKyNpbmNsdWRlIDxzdGRsaWIuaD4KICAgICsjaW5j bHVkZSA8dW5pc3RkLmg+CiAgICArI2luY2x1ZGUgPGVycm5vLmg+CiAgICAr I2luY2x1ZGUgPHN0cmluZy5oPgogICAgKyNpbmNsdWRlIDxudW1hLXNwaW5s b2NrLmg+CiAgICArCiAgICArI2RlZmluZSBOVU1fVEhSRUFEUyAyMAogICAg KwogICAgK3N0cnVjdCBudW1hX3NwaW5sb2NrICpsb2NrOwogICAgKwogICAg K3N0cnVjdCB3b3JrX3RvZG9fYXJndW1lbnQKICAgICt7CiAgICArICB2b2lk ICphcmc7CiAgICArfTsKICAgICsKICAgICtzdGF0aWMgdm9pZCAqCiAgICAr d29ya190b2RvICh2b2lkICp2KQogICAgK3sKICAgICsgIC8qIERvIHRoZSBy ZWFsIHdvcmsgd2l0aCBwLT5hcmcuICovCiAgICArICBzdHJ1Y3Qgd29ya190 b2RvX2FyZ3VtZW50ICpwID0gdjsKICAgICsgIC8qIFJldHVybiB2YWx1ZSBp cyBzZXQgdG8gbG9ja19pbmZvLnJlc3VsdC4gKi8KICAgICsgIHJldHVybiBO VUxMOwogICAgK30KICAgICsKICAgICt2b2lkICoKICAgICt3b3JrX3RocmVh ZCAodm9pZCAqYXJnKQogICAgK3sKICAgICsgIHN0cnVjdCB3b3JrX3RvZG9f YXJndW1lbnQgd29ya190b2RvX2FyZzsKICAgICsgIHN0cnVjdCBudW1hX3Nw aW5sb2NrX2luZm8gbG9ja19pbmZvOwogICAgKwogICAgKyAgaWYgKG51bWFf c3BpbmxvY2tfaW5pdCAobG9jaywgJmxvY2tfaW5mbykpCiAgICArICAgIHsK ICAgICsgICAgICBwcmludGYgKCJudW1hX3NwaW5sb2NrX2luaXQgZmFpbHVy ZTogJW1cbiIpOwogICAgKyAgICAgIGV4aXQgKDEpOwogICAgKyAgICB9CiAg ICArCiAgICArICB3b3JrX3RvZG9fYXJnLmFyZyA9IGFyZzsKICAgICsgIGxv Y2tfaW5mby5hcmd1bWVudCA9ICZ3b3JrX3RvZG9fYXJnOwogICAgKyAgbG9j a19pbmZvLndvcmtsb2FkID0gd29ya190b2RvOwogICAgKwogICAgKyAgbnVt YV9zcGlubG9ja19hcHBseSAoJmxvY2tfaW5mbyk7CiAgICArCiAgICArICBy ZXR1cm4gbG9ja19pbmZvLnJlc3VsdDsKICAgICt9CiAgICArCiAgICAraW50 CiAgICArbWFpbiAoaW50IGFyZ2MsIGNoYXIgKiphcmd2KQogICAgK3sKICAg ICsgIGxvY2sgPSBudW1hX3NwaW5sb2NrX2FsbG9jICgpOwogICAgKyAgcHRo cmVhZF90IHRocltOVU1fVEhSRUFEU107CiAgICArICB2b2lkICpyZXNbTlVN X1RIUkVBRFNdOwogICAgKyAgaW50IG51bXRocmVhZHMgPSBOVU1fVEhSRUFE UzsKICAgICsgIGludCBpOwogICAgKwogICAgKyAgZm9yIChpID0gMDsgaSA8 IE5VTV9USFJFQURTOyBpKyspCiAgICArICAgIHsKICAgICsgICAgICBpbnQg ZXJyX3JldCA9IHB0aHJlYWRfY3JlYXRlICgmdGhyW2ldLCBOVUxMLCB3b3Jr X3RocmVhZCwKICAgICsgICAgICAgICh2b2lkICopIChpbnRwdHJfdCkgaSk7 CiAgICArICAgICAgaWYgKGVycl9yZXQgIT0gMCkKICAgICsgewogICAgKyAg IHByaW50ZiAoInB0aHJlYWRfY3JlYXRlIGZhaWxlZDogJWQsICVzXG4iLAog ICAgKyAgICBpLCBzdHJlcnJvciAoaSkpOwogICAgKyAgIG51bXRocmVhZHMg PSBpOwogICAgKyAgIGJyZWFrOwogICAgKyB9CiAgICArICAgIH0KICAgICsK ICAgICsgIGZvciAoaSA9IDA7IGkgPCBudW10aHJlYWRzOyBpKyspCiAgICAr ICAgIHsKICAgICsgICAgICBpZiAocHRocmVhZF9qb2luICh0aHJbaV0sICh2 b2lkICopICZyZXNbaV0pID09IDApCiAgICArIGZyZWUgKHJlc1tpXSk7CiAg ICArICAgICAgZWxzZQogICAgKyBwcmludGYgKCJwdGhyZWFkX2pvaW4gZmFp bHVyZTogJW1cbiIpOwogICAgKyAgICB9CiAgICArCiAgICArICBudW1hX3Nw aW5sb2NrX2ZyZWUgKGxvY2spOwogICAgKwogICAgKyAgcmV0dXJuIDA7CiAg ICArfQogICAgZGlmZiAtLWdpdCBhL21hbnVhbC90aHJlYWRzLnRleGkgYi9t YW51YWwvdGhyZWFkcy50ZXhpCiAgICBpbmRleCA4N2ZkYTdkLi5lODJhZTBk IDEwMDY0NAogICAgLS0tIGEvbWFudWFsL3RocmVhZHMudGV4aQogICAgKysr IGIvbWFudWFsL3RocmVhZHMudGV4aQogICAgQEAgLTYyNSw2ICs2MjUsOSBA QCB0aGUgc3RhbmRhcmQuCiAgICAgQG1lbnUKICAgICAqIERlZmF1bHQgVGhy ZWFkIEF0dHJpYnV0ZXM6OiAgICAgICAgICAgICBTZXR0aW5nIGRlZmF1bHQg YXR0cmlidXRlcyBmb3IKICAgICAgICAgICAgdGhyZWFkcyBpbiBhIHByb2Nl c3MuCiAgICArKiBOVU1BIFNwaW5sb2NrOjogICAgICAgICAgICAgICAgICAg ICAgICAgU3BpbmxvY2sgb3B0aW1pemVkIGZvcgogICAgKyAgICAgICBtdWx0 aS1zb2NrZXQgTlVNQSBwbGF0Zm9ybS4KICAgICsqIE5VTUEgU3BpbmxvY2sg RXhhbXBsZTo6ICAgICAgICAgICAgICAgICBBIE5VTUEgc3BpbmxvY2sgZXhh bXBsZS4KICAgICBAZW5kIG1lbnUKICAgICAKICAgICBAbm9kZSBEZWZhdWx0 IFRocmVhZCBBdHRyaWJ1dGVzCiAgICBAQCAtNjY5LDYgKzY3MiwxMDggQEAg VGhlIHN5c3RlbSBkb2VzIG5vdCBoYXZlIHN1ZmZpY2llbnQgbWVtb3J5Lgog ICAgIEBlbmQgdGFibGUKICAgICBAZW5kIGRlZnR5cGVmdW4KICAgICAKICAg ICtAbm9kZSBOVU1BIFNwaW5sb2NrCiAgICArQHN1YnN1YnNlY3Rpb24gU3Bp bmxvY2sgb3B0aW1pemVkIGZvciBtdWx0aS1ub2RlIE5VTUEgc3lzdGVtcwog ICAgKwogICAgK1RvIGltcHJvdmUgcGVyZm9ybWFuY2Ugb24gbXVsdGktc29j a2V0IE5VTUEgcGxhdGZvcm1zIGZvciBzZXJpYWxpemVkCiAgICArcmVnaW9u IHByb3RlY3RlZCBieSBzcGlubG9jaywgQHRoZWdsaWJje30gaW1wbGVtZW50 cyBhIE5VTUEgc3BpbmxvY2sKICAgICtvYmplY3QsIHdoaWNoIG1pbmltaXpl cyBjcm9zcy1zb2NrZXQgdHJhZmZpYyBhbmQgc2VuZHMgdGhlIHByb3RlY3Rl ZAogICAgK3NlcmlhbGl6ZWQgcmVnaW9uIHRvIG9uZSBjb3JlIGZvciBleGVj dXRpb24gdG8gcmVkdWNlIHNwaW5sb2NrIGNvbnRlbnRpb24KICAgICtvdmVy aGVhZC4KICAgICsKICAgICtUaGUgZnVuZGFtZW50YWwgZGF0YSB0eXBlcyBm b3IgYSBOVU1BIHNwaW5sb2NrIGFyZQogICAgK0Bjb2Rle251bWFfc3Bpbmxv Y2t9IGFuZCBAY29kZXtudW1hX3NwaW5sb2NrX2luZm99OgogICAgKwogICAg K0BkZWZ0cCB7RGF0YSBUeXBlfSB7c3RydWN0IG51bWFfc3BpbmxvY2t9CiAg ICArQHN0YW5kYXJkc3tMaW51eCwgbnVtYS1zcGlubG9jay5ofQogICAgK1Ro aXMgZGF0YSB0eXBlIGlzIGFuIG9wYXF1ZSBzdHJ1Y3R1cmUuICBBIEBjb2Rl e251bWFfc3BpbmxvY2t9IHBvaW50ZXIKICAgICt1bmlxdWVseSBpZGVudGlm aWVzIGEgTlVNQSBzcGlubG9jayBvYmplY3QuCiAgICArQGVuZCBkZWZ0cAog ICAgKwogICAgK0BkZWZ0cCB7RGF0YSBUeXBlfSB7c3RydWN0IG51bWFfc3Bp bmxvY2tfaW5mb30KICAgICtAc3RhbmRhcmRze0xpbnV4LCBudW1hLXNwaW5s b2NrLmh9CiAgICArCiAgICArVGhpcyBkYXRhIHR5cGUgdW5pcXVlbHkgaWRl bnRpZmllcyBhIE5VTUEgc3BpbmxvY2sgaW5mb3JtYXRpb24gb2JqZWN0IGZv cgogICAgK2EgdGhyZWFkLiAgSXQgaGFzIHRoZSBmb2xsb3dpbmcgbWVtYmVy cywgYW5kIG90aGVycyBpbnRlcm5hbCB0byBOVU1BCiAgICArc3BpbmxvY2sg aW1wbGVtZW5hdGlvbjoKICAgICsKICAgICtAdGFibGUgQGNvZGUKICAgICtA aXRlbSB2b2lkICooKndvcmtsb2FkKSAodm9pZCAqKQogICAgK0EgZnVuY3Rp b24gcG9pbnRlciB0byB0aGUgd29ya2xvYWQgZnVuY3Rpb24gc2VyaWFsaXpl ZCBieSBzcGlubG9jay4KICAgICtAaXRlbSB2b2lkICphcmd1bWVudAogICAg K0EgcG9pbnRlciB0byBhcmd1bWVudCBwYXNzZWQgdG8gdGhlIEB2YXJ7d29y a2xvYWR9IGZ1bmN0aW9uIHBvaW50ZXIuCiAgICArQGl0ZW0gdm9pZCAqcmVz dWx0CiAgICArUmV0dXJuIHZhbHVlIGZyb20gdGhlIEB2YXJ7d29ya2xvYWR9 IGZ1bmN0aW9uIHBvaW50ZXIuCiAgICArQGVuZCB0YWJsZQogICAgKwogICAg K0BlbmQgZGVmdHAKICAgICsKICAgICtUaGUgZm9sbG93aW5nIGZ1bmN0aW9u cyBhcmUgcHJvdmlkZWQgZm9yIE5VTUEgc3BpbmxvY2sgb2JqZWN0czoKICAg ICsKICAgICtAZGVmdHlwZWZ1biBzdHJ1Y3QgbnVtYV9zcGlubG9jayAqbnVt YV9zcGlubG9ja19hbGxvYyAodm9pZCkKICAgICtAc3RhbmRhcmRze0xpbnV4 LCBudW1hLXNwaW5sb2NrLmh9CiAgICArQHNhZmV0eXtAcHJlbGlte31AbXRz YWZle31AYXN1bnNhZmV7QGFzdWxvY2t7fX1AYWN1bnNhZmV7QGFjdWxvY2t7 fSBAYWNzZmR7fSBAYWNzbWVte319fQogICAgKwogICAgK1RoaXMgZnVuY3Rp b24gcmV0dXJucyBhIHBvaW50ZXIgdG8gYSBuZXdseSBhbGxvY2F0ZWQgTlVN QSBzcGlubG9jayBvciBhCiAgICArbnVsbCBwb2ludGVyIGlmIHRoZSBOVU1B IHNwaW5sb2NrIGNvdWxkIG5vdCBiZSBhbGxvY2F0ZWQsIHNldHRpbmcKICAg ICtAY29kZXtlcnJub30gdG8gQGNvZGV7RU5PTUVNfS4gIENhbGxlciBzaG91 bGQgY2FsbAogICAgK0Bjb2Rle251bWFfc3BpbmxvY2tfZnJlZX0gb24gdGhl IE5VTUEgc3BpbmxvY2sgcG9pbnRlciB0byBmcmVlIHRoZQogICAgK21lbW9y eSBzcGFjZSB3aGVuIGl0IGlzIG5vIGxvbmdlciBuZWVkZWQuCiAgICArCiAg ICArVGhpcyBmdW5jdGlvbiBpcyBMaW51eC1zcGVjaWZpYyBhbmQgaXMgZGVj bGFyZWQgaW4gQGZpbGV7bnVtYS1zcGlubG9jay5ofS4KICAgICtAZW5kIGRl ZnR5cGVmdW4KICAgICsKICAgICtAZGVmdHlwZWZ1biB2b2lkIG51bWFfc3Bp bmxvY2tfZnJlZSAoc3RydWN0IG51bWFfc3BpbmxvY2sgKkB2YXJ7bG9ja30p CiAgICArQHN0YW5kYXJkc3tMaW51eCwgbnVtYS1zcGlubG9jay5ofQogICAg K0BzYWZldHl7QHByZWxpbXt9QG10c2FmZXt9QGFzdW5zYWZle0Bhc3Vsb2Nr e319QGFjdW5zYWZle0BhY3Vsb2Nre30gQGFjc2Zke30gQGFjc21lbXt9fX0K ICAgICsKICAgICtGcmVlIHRoZSBtZW1vcnkgc3BhY2UgcG9pbnRlZCB0byBi eSBAdmFye2xvY2t9LCB3aGljaCBtdXN0IGhhdmUgYmVlbgogICAgK3JldHVy bmVkIGJ5IGEgcHJldmlvdXMgY2FsbCB0byBAY29kZXtudW1hX3NwaW5sb2Nr X2FsbG9jfS4gIE90aGVyd2lzZSwKICAgICtvciBpZiBAY29kZXtudW1hX3Nw aW5sb2NrX2ZyZWUgKEB2YXJ7bG9ja30pfSBoYXMgYWxyZWFkeSBiZWVuIGNh bGxlZAogICAgK2JlZm9yZSwgdW5kZWZpbmVkIGJlaGF2aW9yIG9jY3Vycy4K ICAgICsKICAgICtUaGlzIGZ1bmN0aW9uIGlzIExpbnV4LXNwZWNpZmljIGFu ZCBpcyBkZWNsYXJlZCBpbiBAZmlsZXtudW1hLXNwaW5sb2NrLmh9LgogICAg K0BlbmQgZGVmdHlwZWZ1bgogICAgKwogICAgK0BkZWZ0eXBlZnVuIGludCBu dW1hX3NwaW5sb2NrX2luaXQgKHN0cnVjdCBudW1hX3NwaW5sb2NrICpAdmFy e2xvY2t9LAogICAgK3N0cnVjdCBudW1hX3NwaW5sb2NrX2luZm8gKkB2YXJ7 aW5mb30pCiAgICArQHN0YW5kYXJkc3tMaW51eCwgbnVtYS1zcGlubG9jay5o fQogICAgK0BzYWZldHl7QHByZWxpbXt9QG10c2FmZXt9QGFzc2FmZXt9QGFj c2FmZXt9fQogICAgKwogICAgK0luaXRpYWxpemUgdGhlIE5VTUEgc3Bpbmxv Y2sgaW5mb3JtYXRpb24gYmxvY2sgcG9pbnRlZCB0byBieSBAdmFye2luZm99 CiAgICArd2l0aCBhIE5VTUEgc3BpbmxvY2sgcG9pbnRlciBAdmFye2xvY2t9 LiAgVGhlIHJldHVybiB2YWx1ZSBpcyBAY29kZXswfSBvbgogICAgK3N1Y2Nl c3MgYW5kIEBjb2Rley0xfSBvbiBmYWlsdXJlLiAgVGhlIGZvbGxvd2luZyBA Y29kZXtlcnJub30gZXJyb3IKICAgICtjb2RlcyBhcmUgZGVmaW5lZCBmb3Ig dGhpcyBmdW5jdGlvbjoKICAgICsKICAgICtAdGFibGUgQGNvZGUKICAgICtA aXRlbSBFTk9TWVMKICAgICtUaGUgb3BlcmF0aW5nIHN5c3RlbSBkb2VzIG5v dCBzdXBwb3J0IHRoZSBAY29kZXtnZXRjcHV9IGZ1bmN0aW9uLgogICAgK0Bl bmQgdGFibGUKICAgICsKICAgICtUaGlzIGZ1bmN0aW9uIGlzIExpbnV4LXNw ZWNpZmljIGFuZCBpcyBkZWNsYXJlZCBpbiBAZmlsZXtudW1hLXNwaW5sb2Nr Lmh9LgogICAgK0BlbmQgZGVmdHlwZWZ1bgogICAgKwogICAgK0BkZWZ0eXBl ZnVuIHZvaWQgbnVtYV9zcGlubG9ja19hcHBseSAoc3RydWN0IG51bWFfc3Bp bmxvY2tfaW5mbyAqQHZhcntpbmZvfSkKICAgICtAc3RhbmRhcmRze0xpbnV4 LCBudW1hLXNwaW5sb2NrLmh9CiAgICArQHNhZmV0eXtAcHJlbGlte31AbXRz YWZle31AYXNzYWZle31AYWNzYWZle319CiAgICArCiAgICArQXBwbHkgZm9y IHNwaW5sb2NrIHdpdGggYSBOVU1BIHNwaW5sb2NrIGluZm9ybWF0aW9uIGJs b2NrIHBvaW50ZWQgdG8gYnkKICAgICtAdmFye2luZm99LiAgV2hlbiBAY29k ZXtudW1hX3NwaW5sb2NrX2FwcGx5fSByZXR1cm5zLCB0aGUgc3BpbmxvY2sg aXMKICAgICtyZWxlYXNlZCBhbmQgdGhlIEB2YXJ7cmVzdWx0fSBtZW1iZXIg b2YgQHZhcntpbmZvfSBjb250YWlucyB0aGUgcmV0dXJuCiAgICArdmFsdWUg b2YgdGhlIEB2YXJ7d29ya2xvYWR9IG1lbWJlci4KICAgICsKICAgICtUaGlz IGZ1bmN0aW9uIGlzIExpbnV4LXNwZWNpZmljIGFuZCBpcyBkZWNsYXJlZCBp biBAZmlsZXtudW1hLXNwaW5sb2NrLmh9LgogICAgK0BlbmQgZGVmdHlwZWZ1 bgogICAgKwogICAgK0Bub2RlIE5VTUEgU3BpbmxvY2sgRXhhbXBsZQogICAg K0BzdWJzdWJzZWN0aW9uIE5VTUEgU3BpbmxvY2sgRXhhbXBsZQogICAgKwog ICAgK0EgTlVNQSBzcGlubG9jayBleGFtcGxlOgogICAgKwogICAgK0BzbWFs bGV4YW1wbGUKICAgICtAaW5jbHVkZSBudW1hLXNwaW5sb2NrLmMudGV4aQog ICAgK0BlbmQgc21hbGxleGFtcGxlCiAgICArCiAgICAgQGMgRklYTUUgdGhl c2UgYXJlIHVuZG9jdW1lbnRlZDoKICAgICBAYyBwdGhyZWFkX2F0Zm9yawog ICAgIEBjIHB0aHJlYWRfYXR0cl9kZXN0cm95CiAgICBkaWZmIC0tZ2l0IGEv c3lzZGVwcy91bml4L3N5c3YvbGludXgvTWFrZWZpbGUgYi9zeXNkZXBzL3Vu aXgvc3lzdi9saW51eC9NYWtlZmlsZQogICAgaW5kZXggZjgyNzQ1NS4uMzM2 MTU5NyAxMDA2NDQKICAgIC0tLSBhL3N5c2RlcHMvdW5peC9zeXN2L2xpbnV4 L01ha2VmaWxlCiAgICArKysgYi9zeXNkZXBzL3VuaXgvc3lzdi9saW51eC9N YWtlZmlsZQogICAgQEAgLTIyMiw2ICsyMjIsOCBAQCBDRkxBR1MtZ2FpLmMg Kz0gLURORUVEX05FVExJTksKICAgICBlbmRpZgogICAgIAogICAgIGlmZXEg KCQoc3ViZGlyKSxucHRsKQogICAgK2xpYnB0aHJlYWQtc3lzZGVwX3JvdXRp bmVzICs9IG51bWFfc3BpbmxvY2tfYWxsb2MgbnVtYS1zcGlubG9jawogICAg K3N5c2RlcF9oZWFkZXJzICs9IG51bWEtc3BpbmxvY2suaAogICAgIHRlc3Rz ICs9IHRzdC1hbGlnbi1jbG9uZSB0c3QtZ2V0cGlkMSBcCiAgICAgIHRzdC10 aHJlYWQtYWZmaW5pdHktcHRocmVhZCB0c3QtdGhyZWFkLWFmZmluaXR5LXB0 aHJlYWQyIFwKICAgICAgdHN0LXRocmVhZC1hZmZpbml0eS1zY2hlZAogICAg ZGlmZiAtLWdpdCBhL3N5c2RlcHMvdW5peC9zeXN2L2xpbnV4L1ZlcnNpb25z IGIvc3lzZGVwcy91bml4L3N5c3YvbGludXgvVmVyc2lvbnMKICAgIGluZGV4 IGYxZTEyZDkuLjdjZTdlMmIgMTAwNjQ0CiAgICAtLS0gYS9zeXNkZXBzL3Vu aXgvc3lzdi9saW51eC9WZXJzaW9ucwogICAgKysrIGIvc3lzZGVwcy91bml4 L3N5c3YvbGludXgvVmVyc2lvbnMKICAgIEBAIC0xODUsMyArMTg1LDEyIEBA IGxpYmMgewogICAgICAgICBfX25ldGxpbmtfYXNzZXJ0X3Jlc3BvbnNlOwog ICAgICAgfQogICAgIH0KICAgICsKICAgICtsaWJwdGhyZWFkIHsKICAgICsg IEdMSUJDXzIuMjkgewogICAgKyAgICBudW1hX3NwaW5sb2NrX2FsbG9jOwog ICAgKyAgICBudW1hX3NwaW5sb2NrX2ZyZWU7CiAgICArICAgIG51bWFfc3Bp bmxvY2tfaW5pdDsKICAgICsgICAgbnVtYV9zcGlubG9ja19hcHBseTsKICAg ICsgIH0KICAgICt9CiAgICBkaWZmIC0tZ2l0IGEvc3lzZGVwcy91bml4L3N5 c3YvbGludXgvYWFyY2g2NC9saWJwdGhyZWFkLmFiaWxpc3QgYi9zeXNkZXBz L3VuaXgvc3lzdi9saW51eC9hYXJjaDY0L2xpYnB0aHJlYWQuYWJpbGlzdAog ICAgaW5kZXggOWE5ZTRjZS4uZWI1NGE4MyAxMDA2NDQKICAgIC0tLSBhL3N5 c2RlcHMvdW5peC9zeXN2L2xpbnV4L2FhcmNoNjQvbGlicHRocmVhZC5hYmls aXN0CiAgICArKysgYi9zeXNkZXBzL3VuaXgvc3lzdi9saW51eC9hYXJjaDY0 L2xpYnB0aHJlYWQuYWJpbGlzdAogICAgQEAgLTI0MywzICsyNDMsNyBAQCBH TElCQ18yLjI4IHRzc19jcmVhdGUgRgogICAgIEdMSUJDXzIuMjggdHNzX2Rl bGV0ZSBGCiAgICAgR0xJQkNfMi4yOCB0c3NfZ2V0IEYKICAgICBHTElCQ18y LjI4IHRzc19zZXQgRgogICAgK0dMSUJDXzIuMjkgbnVtYV9zcGlubG9ja19h bGxvYyBGCiAgICArR0xJQkNfMi4yOSBudW1hX3NwaW5sb2NrX2FwcGx5IEYK ICAgICtHTElCQ18yLjI5IG51bWFfc3BpbmxvY2tfZnJlZSBGCiAgICArR0xJ QkNfMi4yOSBudW1hX3NwaW5sb2NrX2luaXQgRgogICAgZGlmZiAtLWdpdCBh L3N5c2RlcHMvdW5peC9zeXN2L2xpbnV4L2FscGhhL2xpYnB0aHJlYWQuYWJp bGlzdCBiL3N5c2RlcHMvdW5peC9zeXN2L2xpbnV4L2FscGhhL2xpYnB0aHJl YWQuYWJpbGlzdAogICAgaW5kZXggYjQxMzAwNy4uZGQwODc5NiAxMDA2NDQK ICAgIC0tLSBhL3N5c2RlcHMvdW5peC9zeXN2L2xpbnV4L2FscGhhL2xpYnB0 aHJlYWQuYWJpbGlzdAogICAgKysrIGIvc3lzZGVwcy91bml4L3N5c3YvbGlu dXgvYWxwaGEvbGlicHRocmVhZC5hYmlsaXN0CiAgICBAQCAtMjI3LDYgKzIy NywxMCBAQCBHTElCQ18yLjI4IHRzc19jcmVhdGUgRgogICAgIEdMSUJDXzIu MjggdHNzX2RlbGV0ZSBGCiAgICAgR0xJQkNfMi4yOCB0c3NfZ2V0IEYKICAg ICBHTElCQ18yLjI4IHRzc19zZXQgRgogICAgK0dMSUJDXzIuMjkgbnVtYV9z cGlubG9ja19hbGxvYyBGCiAgICArR0xJQkNfMi4yOSBudW1hX3NwaW5sb2Nr X2FwcGx5IEYKICAgICtHTElCQ18yLjI5IG51bWFfc3BpbmxvY2tfZnJlZSBG CiAgICArR0xJQkNfMi4yOSBudW1hX3NwaW5sb2NrX2luaXQgRgogICAgIEdM SUJDXzIuMy4yIHB0aHJlYWRfY29uZF9icm9hZGNhc3QgRgogICAgIEdMSUJD XzIuMy4yIHB0aHJlYWRfY29uZF9kZXN0cm95IEYKICAgICBHTElCQ18yLjMu MiBwdGhyZWFkX2NvbmRfaW5pdCBGCiAgICBkaWZmIC0tZ2l0IGEvc3lzZGVw cy91bml4L3N5c3YvbGludXgvYXJtL2xpYnB0aHJlYWQuYWJpbGlzdCBiL3N5 c2RlcHMvdW5peC9zeXN2L2xpbnV4L2FybS9saWJwdGhyZWFkLmFiaWxpc3QK ICAgIGluZGV4IGFmODJhNGMuLjQ1YTVjNWEgMTAwNjQ0CiAgICAtLS0gYS9z eXNkZXBzL3VuaXgvc3lzdi9saW51eC9hcm0vbGlicHRocmVhZC5hYmlsaXN0 CiAgICArKysgYi9zeXNkZXBzL3VuaXgvc3lzdi9saW51eC9hcm0vbGlicHRo cmVhZC5hYmlsaXN0CiAgICBAQCAtMjcsNiArMjcsMTAgQEAgR0xJQkNfMi4y OCB0c3NfY3JlYXRlIEYKICAgICBHTElCQ18yLjI4IHRzc19kZWxldGUgRgog ICAgIEdMSUJDXzIuMjggdHNzX2dldCBGCiAgICAgR0xJQkNfMi4yOCB0c3Nf c2V0IEYKICAgICtHTElCQ18yLjI5IG51bWFfc3BpbmxvY2tfYWxsb2MgRgog ICAgK0dMSUJDXzIuMjkgbnVtYV9zcGlubG9ja19hcHBseSBGCiAgICArR0xJ QkNfMi4yOSBudW1hX3NwaW5sb2NrX2ZyZWUgRgogICAgK0dMSUJDXzIuMjkg bnVtYV9zcGlubG9ja19pbml0IEYKICAgICBHTElCQ18yLjQgX0lPX2Zsb2Nr ZmlsZSBGCiAgICAgR0xJQkNfMi40IF9JT19mdHJ5bG9ja2ZpbGUgRgogICAg IEdMSUJDXzIuNCBfSU9fZnVubG9ja2ZpbGUgRgogICAgZGlmZiAtLWdpdCBh L3N5c2RlcHMvdW5peC9zeXN2L2xpbnV4L2Nza3kvbGlicHRocmVhZC5hYmls aXN0IGIvc3lzZGVwcy91bml4L3N5c3YvbGludXgvY3NreS9saWJwdGhyZWFk LmFiaWxpc3QKICAgIGluZGV4IGVhNGI3OWEuLmNmNjVmNzIgMTAwNjQ0CiAg ICAtLS0gYS9zeXNkZXBzL3VuaXgvc3lzdi9saW51eC9jc2t5L2xpYnB0aHJl YWQuYWJpbGlzdAogICAgKysrIGIvc3lzZGVwcy91bml4L3N5c3YvbGludXgv Y3NreS9saWJwdGhyZWFkLmFiaWxpc3QKICAgIEBAIC03Myw2ICs3MywxMCBA QCBHTElCQ18yLjI5IG10eF90aW1lZGxvY2sgRgogICAgIEdMSUJDXzIuMjkg bXR4X3RyeWxvY2sgRgogICAgIEdMSUJDXzIuMjkgbXR4X3VubG9jayBGCiAg ICAgR0xJQkNfMi4yOSBuYW5vc2xlZXAgRgogICAgK0dMSUJDXzIuMjkgbnVt YV9zcGlubG9ja19hbGxvYyBGCiAgICArR0xJQkNfMi4yOSBudW1hX3NwaW5s b2NrX2FwcGx5IEYKICAgICtHTElCQ18yLjI5IG51bWFfc3BpbmxvY2tfZnJl ZSBGCiAgICArR0xJQkNfMi4yOSBudW1hX3NwaW5sb2NrX2luaXQgRgogICAg IEdMSUJDXzIuMjkgb3BlbiBGCiAgICAgR0xJQkNfMi4yOSBvcGVuNjQgRgog ICAgIEdMSUJDXzIuMjkgcGF1c2UgRgogICAgZGlmZiAtLWdpdCBhL3N5c2Rl cHMvdW5peC9zeXN2L2xpbnV4L2hwcGEvbGlicHRocmVhZC5hYmlsaXN0IGIv c3lzZGVwcy91bml4L3N5c3YvbGludXgvaHBwYS9saWJwdGhyZWFkLmFiaWxp c3QKICAgIGluZGV4IGJjYmEwN2YuLmE4MDQ3NWYgMTAwNjQ0CiAgICAtLS0g YS9zeXNkZXBzL3VuaXgvc3lzdi9saW51eC9ocHBhL2xpYnB0aHJlYWQuYWJp bGlzdAogICAgKysrIGIvc3lzZGVwcy91bml4L3N5c3YvbGludXgvaHBwYS9s aWJwdGhyZWFkLmFiaWxpc3QKICAgIEBAIC0yMTksNiArMjE5LDEwIEBAIEdM SUJDXzIuMjggdHNzX2NyZWF0ZSBGCiAgICAgR0xJQkNfMi4yOCB0c3NfZGVs ZXRlIEYKICAgICBHTElCQ18yLjI4IHRzc19nZXQgRgogICAgIEdMSUJDXzIu MjggdHNzX3NldCBGCiAgICArR0xJQkNfMi4yOSBudW1hX3NwaW5sb2NrX2Fs bG9jIEYKICAgICtHTElCQ18yLjI5IG51bWFfc3BpbmxvY2tfYXBwbHkgRgog ICAgK0dMSUJDXzIuMjkgbnVtYV9zcGlubG9ja19mcmVlIEYKICAgICtHTElC Q18yLjI5IG51bWFfc3BpbmxvY2tfaW5pdCBGCiAgICAgR0xJQkNfMi4zLjIg cHRocmVhZF9jb25kX2Jyb2FkY2FzdCBGCiAgICAgR0xJQkNfMi4zLjIgcHRo cmVhZF9jb25kX2Rlc3Ryb3kgRgogICAgIEdMSUJDXzIuMy4yIHB0aHJlYWRf Y29uZF9pbml0IEYKICAgIGRpZmYgLS1naXQgYS9zeXNkZXBzL3VuaXgvc3lz di9saW51eC9pMzg2L2xpYnB0aHJlYWQuYWJpbGlzdCBiL3N5c2RlcHMvdW5p eC9zeXN2L2xpbnV4L2kzODYvbGlicHRocmVhZC5hYmlsaXN0CiAgICBpbmRl eCBiZWNlODZkLi40MGFjMDVhIDEwMDY0NAogICAgLS0tIGEvc3lzZGVwcy91 bml4L3N5c3YvbGludXgvaTM4Ni9saWJwdGhyZWFkLmFiaWxpc3QKICAgICsr KyBiL3N5c2RlcHMvdW5peC9zeXN2L2xpbnV4L2kzODYvbGlicHRocmVhZC5h YmlsaXN0CiAgICBAQCAtMjI3LDYgKzIyNywxMCBAQCBHTElCQ18yLjI4IHRz c19jcmVhdGUgRgogICAgIEdMSUJDXzIuMjggdHNzX2RlbGV0ZSBGCiAgICAg R0xJQkNfMi4yOCB0c3NfZ2V0IEYKICAgICBHTElCQ18yLjI4IHRzc19zZXQg RgogICAgK0dMSUJDXzIuMjkgbnVtYV9zcGlubG9ja19hbGxvYyBGCiAgICAr R0xJQkNfMi4yOSBudW1hX3NwaW5sb2NrX2FwcGx5IEYKICAgICtHTElCQ18y LjI5IG51bWFfc3BpbmxvY2tfZnJlZSBGCiAgICArR0xJQkNfMi4yOSBudW1h X3NwaW5sb2NrX2luaXQgRgogICAgIEdMSUJDXzIuMy4yIHB0aHJlYWRfY29u ZF9icm9hZGNhc3QgRgogICAgIEdMSUJDXzIuMy4yIHB0aHJlYWRfY29uZF9k ZXN0cm95IEYKICAgICBHTElCQ18yLjMuMiBwdGhyZWFkX2NvbmRfaW5pdCBG CiAgICBkaWZmIC0tZ2l0IGEvc3lzZGVwcy91bml4L3N5c3YvbGludXgvaWE2 NC9saWJwdGhyZWFkLmFiaWxpc3QgYi9zeXNkZXBzL3VuaXgvc3lzdi9saW51 eC9pYTY0L2xpYnB0aHJlYWQuYWJpbGlzdAogICAgaW5kZXggY2NjOTQ0OS4u NWIxOTBmNiAxMDA2NDQKICAgIC0tLSBhL3N5c2RlcHMvdW5peC9zeXN2L2xp bnV4L2lhNjQvbGlicHRocmVhZC5hYmlsaXN0CiAgICArKysgYi9zeXNkZXBz L3VuaXgvc3lzdi9saW51eC9pYTY0L2xpYnB0aHJlYWQuYWJpbGlzdAogICAg QEAgLTIxOSw2ICsyMTksMTAgQEAgR0xJQkNfMi4yOCB0c3NfY3JlYXRlIEYK ICAgICBHTElCQ18yLjI4IHRzc19kZWxldGUgRgogICAgIEdMSUJDXzIuMjgg dHNzX2dldCBGCiAgICAgR0xJQkNfMi4yOCB0c3Nfc2V0IEYKICAgICtHTElC Q18yLjI5IG51bWFfc3BpbmxvY2tfYWxsb2MgRgogICAgK0dMSUJDXzIuMjkg bnVtYV9zcGlubG9ja19hcHBseSBGCiAgICArR0xJQkNfMi4yOSBudW1hX3Nw aW5sb2NrX2ZyZWUgRgogICAgK0dMSUJDXzIuMjkgbnVtYV9zcGlubG9ja19p bml0IEYKICAgICBHTElCQ18yLjMuMiBwdGhyZWFkX2NvbmRfYnJvYWRjYXN0 IEYKICAgICBHTElCQ18yLjMuMiBwdGhyZWFkX2NvbmRfZGVzdHJveSBGCiAg ICAgR0xJQkNfMi4zLjIgcHRocmVhZF9jb25kX2luaXQgRgogICAgZGlmZiAt LWdpdCBhL3N5c2RlcHMvdW5peC9zeXN2L2xpbnV4L202OGsvY29sZGZpcmUv bGlicHRocmVhZC5hYmlsaXN0IGIvc3lzZGVwcy91bml4L3N5c3YvbGludXgv bTY4ay9jb2xkZmlyZS9saWJwdGhyZWFkLmFiaWxpc3QKICAgIGluZGV4IGFm ODJhNGMuLjQ1YTVjNWEgMTAwNjQ0CiAgICAtLS0gYS9zeXNkZXBzL3VuaXgv c3lzdi9saW51eC9tNjhrL2NvbGRmaXJlL2xpYnB0aHJlYWQuYWJpbGlzdAog ICAgKysrIGIvc3lzZGVwcy91bml4L3N5c3YvbGludXgvbTY4ay9jb2xkZmly ZS9saWJwdGhyZWFkLmFiaWxpc3QKICAgIEBAIC0yNyw2ICsyNywxMCBAQCBH TElCQ18yLjI4IHRzc19jcmVhdGUgRgogICAgIEdMSUJDXzIuMjggdHNzX2Rl bGV0ZSBGCiAgICAgR0xJQkNfMi4yOCB0c3NfZ2V0IEYKICAgICBHTElCQ18y LjI4IHRzc19zZXQgRgogICAgK0dMSUJDXzIuMjkgbnVtYV9zcGlubG9ja19h bGxvYyBGCiAgICArR0xJQkNfMi4yOSBudW1hX3NwaW5sb2NrX2FwcGx5IEYK ICAgICtHTElCQ18yLjI5IG51bWFfc3BpbmxvY2tfZnJlZSBGCiAgICArR0xJ QkNfMi4yOSBudW1hX3NwaW5sb2NrX2luaXQgRgogICAgIEdMSUJDXzIuNCBf SU9fZmxvY2tmaWxlIEYKICAgICBHTElCQ18yLjQgX0lPX2Z0cnlsb2NrZmls ZSBGCiAgICAgR0xJQkNfMi40IF9JT19mdW5sb2NrZmlsZSBGCiAgICBkaWZm IC0tZ2l0IGEvc3lzZGVwcy91bml4L3N5c3YvbGludXgvbTY4ay9tNjgweDAv bGlicHRocmVhZC5hYmlsaXN0IGIvc3lzZGVwcy91bml4L3N5c3YvbGludXgv bTY4ay9tNjgweDAvbGlicHRocmVhZC5hYmlsaXN0CiAgICBpbmRleCBiZWNl ODZkLi40MGFjMDVhIDEwMDY0NAogICAgLS0tIGEvc3lzZGVwcy91bml4L3N5 c3YvbGludXgvbTY4ay9tNjgweDAvbGlicHRocmVhZC5hYmlsaXN0CiAgICAr KysgYi9zeXNkZXBzL3VuaXgvc3lzdi9saW51eC9tNjhrL202ODB4MC9saWJw dGhyZWFkLmFiaWxpc3QKICAgIEBAIC0yMjcsNiArMjI3LDEwIEBAIEdMSUJD XzIuMjggdHNzX2NyZWF0ZSBGCiAgICAgR0xJQkNfMi4yOCB0c3NfZGVsZXRl IEYKICAgICBHTElCQ18yLjI4IHRzc19nZXQgRgogICAgIEdMSUJDXzIuMjgg dHNzX3NldCBGCiAgICArR0xJQkNfMi4yOSBudW1hX3NwaW5sb2NrX2FsbG9j IEYKICAgICtHTElCQ18yLjI5IG51bWFfc3BpbmxvY2tfYXBwbHkgRgogICAg K0dMSUJDXzIuMjkgbnVtYV9zcGlubG9ja19mcmVlIEYKICAgICtHTElCQ18y LjI5IG51bWFfc3BpbmxvY2tfaW5pdCBGCiAgICAgR0xJQkNfMi4zLjIgcHRo cmVhZF9jb25kX2Jyb2FkY2FzdCBGCiAgICAgR0xJQkNfMi4zLjIgcHRocmVh ZF9jb25kX2Rlc3Ryb3kgRgogICAgIEdMSUJDXzIuMy4yIHB0aHJlYWRfY29u ZF9pbml0IEYKICAgIGRpZmYgLS1naXQgYS9zeXNkZXBzL3VuaXgvc3lzdi9s aW51eC9taWNyb2JsYXplL2xpYnB0aHJlYWQuYWJpbGlzdCBiL3N5c2RlcHMv dW5peC9zeXN2L2xpbnV4L21pY3JvYmxhemUvbGlicHRocmVhZC5hYmlsaXN0 CiAgICBpbmRleCA1MDY3Mzc1Li5lNjUzOWJmIDEwMDY0NAogICAgLS0tIGEv c3lzZGVwcy91bml4L3N5c3YvbGludXgvbWljcm9ibGF6ZS9saWJwdGhyZWFk LmFiaWxpc3QKICAgICsrKyBiL3N5c2RlcHMvdW5peC9zeXN2L2xpbnV4L21p Y3JvYmxhemUvbGlicHRocmVhZC5hYmlsaXN0CiAgICBAQCAtMjQzLDMgKzI0 Myw3IEBAIEdMSUJDXzIuMjggdHNzX2NyZWF0ZSBGCiAgICAgR0xJQkNfMi4y OCB0c3NfZGVsZXRlIEYKICAgICBHTElCQ18yLjI4IHRzc19nZXQgRgogICAg IEdMSUJDXzIuMjggdHNzX3NldCBGCiAgICArR0xJQkNfMi4yOSBudW1hX3Nw aW5sb2NrX2FsbG9jIEYKICAgICtHTElCQ18yLjI5IG51bWFfc3BpbmxvY2tf YXBwbHkgRgogICAgK0dMSUJDXzIuMjkgbnVtYV9zcGlubG9ja19mcmVlIEYK ICAgICtHTElCQ18yLjI5IG51bWFfc3BpbmxvY2tfaW5pdCBGCiAgICBkaWZm IC0tZ2l0IGEvc3lzZGVwcy91bml4L3N5c3YvbGludXgvbWlwcy9taXBzMzIv bGlicHRocmVhZC5hYmlsaXN0IGIvc3lzZGVwcy91bml4L3N5c3YvbGludXgv bWlwcy9taXBzMzIvbGlicHRocmVhZC5hYmlsaXN0CiAgICBpbmRleCAwMjE0 NDk2Li43NmVkY2I4IDEwMDY0NAogICAgLS0tIGEvc3lzZGVwcy91bml4L3N5 c3YvbGludXgvbWlwcy9taXBzMzIvbGlicHRocmVhZC5hYmlsaXN0CiAgICAr KysgYi9zeXNkZXBzL3VuaXgvc3lzdi9saW51eC9taXBzL21pcHMzMi9saWJw dGhyZWFkLmFiaWxpc3QKICAgIEBAIC0yMjcsNiArMjI3LDEwIEBAIEdMSUJD XzIuMjggdHNzX2NyZWF0ZSBGCiAgICAgR0xJQkNfMi4yOCB0c3NfZGVsZXRl IEYKICAgICBHTElCQ18yLjI4IHRzc19nZXQgRgogICAgIEdMSUJDXzIuMjgg dHNzX3NldCBGCiAgICArR0xJQkNfMi4yOSBudW1hX3NwaW5sb2NrX2FsbG9j IEYKICAgICtHTElCQ18yLjI5IG51bWFfc3BpbmxvY2tfYXBwbHkgRgogICAg K0dMSUJDXzIuMjkgbnVtYV9zcGlubG9ja19mcmVlIEYKICAgICtHTElCQ18y LjI5IG51bWFfc3BpbmxvY2tfaW5pdCBGCiAgICAgR0xJQkNfMi4zLjIgcHRo cmVhZF9jb25kX2Jyb2FkY2FzdCBGCiAgICAgR0xJQkNfMi4zLjIgcHRocmVh ZF9jb25kX2Rlc3Ryb3kgRgogICAgIEdMSUJDXzIuMy4yIHB0aHJlYWRfY29u ZF9pbml0IEYKICAgIGRpZmYgLS1naXQgYS9zeXNkZXBzL3VuaXgvc3lzdi9s aW51eC9taXBzL21pcHM2NC9saWJwdGhyZWFkLmFiaWxpc3QgYi9zeXNkZXBz L3VuaXgvc3lzdi9saW51eC9taXBzL21pcHM2NC9saWJwdGhyZWFkLmFiaWxp c3QKICAgIGluZGV4IDAyMTQ0OTYuLjc2ZWRjYjggMTAwNjQ0CiAgICAtLS0g YS9zeXNkZXBzL3VuaXgvc3lzdi9saW51eC9taXBzL21pcHM2NC9saWJwdGhy ZWFkLmFiaWxpc3QKICAgICsrKyBiL3N5c2RlcHMvdW5peC9zeXN2L2xpbnV4 L21pcHMvbWlwczY0L2xpYnB0aHJlYWQuYWJpbGlzdAogICAgQEAgLTIyNyw2 ICsyMjcsMTAgQEAgR0xJQkNfMi4yOCB0c3NfY3JlYXRlIEYKICAgICBHTElC Q18yLjI4IHRzc19kZWxldGUgRgogICAgIEdMSUJDXzIuMjggdHNzX2dldCBG CiAgICAgR0xJQkNfMi4yOCB0c3Nfc2V0IEYKICAgICtHTElCQ18yLjI5IG51 bWFfc3BpbmxvY2tfYWxsb2MgRgogICAgK0dMSUJDXzIuMjkgbnVtYV9zcGlu bG9ja19hcHBseSBGCiAgICArR0xJQkNfMi4yOSBudW1hX3NwaW5sb2NrX2Zy ZWUgRgogICAgK0dMSUJDXzIuMjkgbnVtYV9zcGlubG9ja19pbml0IEYKICAg ICBHTElCQ18yLjMuMiBwdGhyZWFkX2NvbmRfYnJvYWRjYXN0IEYKICAgICBH TElCQ18yLjMuMiBwdGhyZWFkX2NvbmRfZGVzdHJveSBGCiAgICAgR0xJQkNf Mi4zLjIgcHRocmVhZF9jb25kX2luaXQgRgogICAgZGlmZiAtLWdpdCBhL3N5 c2RlcHMvdW5peC9zeXN2L2xpbnV4L25pb3MyL2xpYnB0aHJlYWQuYWJpbGlz dCBiL3N5c2RlcHMvdW5peC9zeXN2L2xpbnV4L25pb3MyL2xpYnB0aHJlYWQu YWJpbGlzdAogICAgaW5kZXggNzhjYWMyYS4uMzE0MWQwOCAxMDA2NDQKICAg IC0tLSBhL3N5c2RlcHMvdW5peC9zeXN2L2xpbnV4L25pb3MyL2xpYnB0aHJl YWQuYWJpbGlzdAogICAgKysrIGIvc3lzZGVwcy91bml4L3N5c3YvbGludXgv bmlvczIvbGlicHRocmVhZC5hYmlsaXN0CiAgICBAQCAtMjQxLDMgKzI0MSw3 IEBAIEdMSUJDXzIuMjggdHNzX2NyZWF0ZSBGCiAgICAgR0xJQkNfMi4yOCB0 c3NfZGVsZXRlIEYKICAgICBHTElCQ18yLjI4IHRzc19nZXQgRgogICAgIEdM SUJDXzIuMjggdHNzX3NldCBGCiAgICArR0xJQkNfMi4yOSBudW1hX3NwaW5s b2NrX2FsbG9jIEYKICAgICtHTElCQ18yLjI5IG51bWFfc3BpbmxvY2tfYXBw bHkgRgogICAgK0dMSUJDXzIuMjkgbnVtYV9zcGlubG9ja19mcmVlIEYKICAg ICtHTElCQ18yLjI5IG51bWFfc3BpbmxvY2tfaW5pdCBGCiAgICBkaWZmIC0t Z2l0IGEvc3lzZGVwcy91bml4L3N5c3YvbGludXgvbnVtYS1zcGlubG9jay1w cml2YXRlLmggYi9zeXNkZXBzL3VuaXgvc3lzdi9saW51eC9udW1hLXNwaW5s b2NrLXByaXZhdGUuaAogICAgbmV3IGZpbGUgbW9kZSAxMDA2NDQKICAgIGlu ZGV4IDAwMDAwMDAuLjBmN2EzYmUKICAgIC0tLSAvZGV2L251bGwKICAgICsr KyBiL3N5c2RlcHMvdW5peC9zeXN2L2xpbnV4L251bWEtc3BpbmxvY2stcHJp dmF0ZS5oCiAgICBAQCAtMCwwICsxLDM4IEBACiAgICArLyogSW50ZXJuYWwg ZGVmaW5pdGlvbnMgYW5kIGRlY2xhcmF0aW9ucyBmb3IgTlVNQSBzcGlubG9j ay4KICAgICsgICBDb3B5cmlnaHQgKEMpIDIwMTggRnJlZSBTb2Z0d2FyZSBG b3VuZGF0aW9uLCBJbmMuCiAgICArICAgVGhpcyBmaWxlIGlzIHBhcnQgb2Yg dGhlIEdOVSBDIExpYnJhcnkuCiAgICArCiAgICArICAgVGhlIEdOVSBDIExp YnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUg aXQgYW5kL29yCiAgICArICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBv ZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwogICAgKyAgIExpY2Vu c2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRp b247IGVpdGhlcgogICAgKyAgIHZlcnNpb24gMi4xIG9mIHRoZSBMaWNlbnNl LCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgogICAg KwogICAgKyAgIFRoZSBHTlUgQyBMaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGlu IHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiAgICArICAgYnV0 IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxp ZWQgd2FycmFudHkgb2YKICAgICsgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklU TkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQog ICAgKyAgIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3Jl IGRldGFpbHMuCiAgICArCiAgICArICAgWW91IHNob3VsZCBoYXZlIHJlY2Vp dmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwog ICAgKyAgIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGUgR05VIEMgTGlicmFyeTsg aWYgbm90LCBzZWUKICAgICsgICA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vu c2VzLz4uICAqLwogICAgKwogICAgKyNpbmNsdWRlICJudW1hLXNwaW5sb2Nr LmgiCiAgICArCiAgICArLyogVGhlIGdsb2JhbCBOVU1BIHNwaW5sb2NrLiAg Ki8KICAgICtzdHJ1Y3QgbnVtYV9zcGlubG9jawogICAgK3sKICAgICsgIC8q IExpc3Qgb2YgdGhyZWFkcyB3aG8gb3ducyB0aGUgZ2xvYmFsIE5VTUEgc3Bp bmxvY2suICAqLwogICAgKyAgc3RydWN0IG51bWFfc3BpbmxvY2tfaW5mbyAq b3duZXI7CiAgICArICAvKiBUaGUgbWF4aW1pdW0gTlVNQSBub2RlIG51bWJl ci4gICovCiAgICArICB1bnNpZ25lZCBpbnQgbWF4X25vZGU7CiAgICArICAv KiBOb24temVybyBmb3Igc2luZ2xlIG5vZGUgc3lzdGVtLiAgKi8KICAgICsg IHVuc2lnbmVkIGludCBzaW5nbGVfbm9kZTsKICAgICsgIC8qIFRoZSBtYXhp bWl1bSBDUFUgbnVtYmVyLiAgVXNlZCBvbmx5IHdoZW4gTlVNQSBpcyBkaXNh YmxlZC4gICovCiAgICArICB1bnNpZ25lZCBpbnQgbWF4X2NwdTsKICAgICsg IC8qIEFycmF5IG9mIHBoeXNpY2FsX3BhY2thZ2VfaWQgb2YgZWFjaCBjb3Jl IGlmIGl0IGlzbid0IE5VTEwuICBVc2VkCiAgICArICAgICBvbmx5IHdoZW4g TlVNQSBpcyBkaXNhYmxlZC4qLwogICAgKyAgdW5zaWduZWQgaW50ICpwaHlz aWNhbF9wYWNrYWdlX2lkX3A7CiAgICArICAvKiBBcnJheXMgb2YgbGlzdHMg b2YgdGhyZWFkcyB3aG8gYXJlIHNwaW5uaW5nIGZvciB0aGUgbG9jYWwgTlVN QSBsb2NrCiAgICArICAgICBvbiBOVU1BIG5vZGVzIGluZGV4ZWQgYnkgTlVN QSBub2RlIG51bWJlci4gICovCiAgICArICBzdHJ1Y3QgbnVtYV9zcGlubG9j a19pbmZvICpsaXN0c1tdOwogICAgK307CiAgICBkaWZmIC0tZ2l0IGEvc3lz ZGVwcy91bml4L3N5c3YvbGludXgvbnVtYS1zcGlubG9jay5jIGIvc3lzZGVw cy91bml4L3N5c3YvbGludXgvbnVtYS1zcGlubG9jay5jCiAgICBuZXcgZmls ZSBtb2RlIDEwMDY0NAogICAgaW5kZXggMDAwMDAwMC4uYTE0MWU3ZAogICAg LS0tIC9kZXYvbnVsbAogICAgKysrIGIvc3lzZGVwcy91bml4L3N5c3YvbGlu dXgvbnVtYS1zcGlubG9jay5jCiAgICBAQCAtMCwwICsxLDMyNyBAQAogICAg Ky8qIE5VTUEgc3BpbmxvY2sKICAgICsgICBDb3B5cmlnaHQgKEMpIDIwMTgg RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCiAgICArICAgVGhpcyBm aWxlIGlzIHBhcnQgb2YgdGhlIEdOVSBDIExpYnJhcnkuCiAgICArCiAgICAr ICAgVGhlIEdOVSBDIExpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNh biByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgICArICAgbW9kaWZ5IGl0IHVu ZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1Ymxp YwogICAgKyAgIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNv ZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgogICAgKyAgIHZlcnNpb24gMi4x IG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRl ciB2ZXJzaW9uLgogICAgKwogICAgKyAgIFRoZSBHTlUgQyBMaWJyYXJ5IGlz IGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2Vm dWwsCiAgICArICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0 IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKICAgICsgICBNRVJDSEFO VEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0Uu ICBTZWUgdGhlIEdOVQogICAgKyAgIExlc3NlciBHZW5lcmFsIFB1YmxpYyBM aWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiAgICArCiAgICArICAgWW91IHNo b3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBH ZW5lcmFsIFB1YmxpYwogICAgKyAgIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGUg R05VIEMgTGlicmFyeTsgaWYgbm90LCBzZWUKICAgICsgICA8aHR0cDovL3d3 dy5nbnUub3JnL2xpY2Vuc2VzLz4uICAqLwogICAgKwogICAgKyNpbmNsdWRl IDxjb25maWcuaD4KICAgICsjaW5jbHVkZSA8c3RyaW5nLmg+CiAgICArI2lu Y2x1ZGUgPHN0ZGxpYi5oPgogICAgKyNpbmNsdWRlIDxzY2hlZC5oPgogICAg KyNpZm5kZWYgSEFWRV9HRVRDUFUKICAgICsjaW5jbHVkZSA8dW5pc3RkLmg+ CiAgICArI2luY2x1ZGUgPHN5c2NhbGwuaD4KICAgICsjZW5kaWYKICAgICsj aW5jbHVkZSA8ZXJybm8uaD4KICAgICsjaW5jbHVkZSA8YXRvbWljLmg+CiAg ICArI2luY2x1ZGUgIm51bWEtc3BpbmxvY2stcHJpdmF0ZS5oIgogICAgKwog ICAgKyNpZiAhZGVmaW5lZCBIQVZFX0dFVENQVSAmJiBkZWZpbmVkIF9MSUJD CiAgICArIyBkZWZpbmUgSEFWRV9HRVRDUFUKICAgICsjZW5kaWYKICAgICsK ICAgICsvKiBPbiBtdWx0aS1zb2NrZXQgc3lzdGVtcywgbWVtb3J5IGlzIHNo YXJlZCBhY3Jvc3MgdGhlIGVudGlyZSBzeXN0ZW0uCiAgICArICAgRGF0YSBh Y2Nlc3MgdG8gdGhlIGxvY2FsIHNvY2tldCBpcyBtdWNoIGZhc3RlciB0aGFu IHRoZSByZW1vdGUgc29ja2V0CiAgICArICAgYW5kIGRhdGEgYWNjZXNzIHRv IHRoZSBsb2NhbCBjb3JlIGlzIGZhc3RlciB0aGFuIHNpYmxpbmcgY29yZXMg b24gdGhlCiAgICArICAgc2FtZSBzb2NrZXQuICBGb3Igc2VyaWFsaXplZCB3 b3JrbG9hZHMgd2l0aCBjb252ZW50aW9uYWwgc3BpbmxvY2ssCiAgICArICAg d2hlbiB0aGVyZSBpcyBoaWdoIHNwaW5sb2NrIGNvbnRlbnRpb24gYmV0d2Vl biB0aHJlYWRzLCBsb2NrIHBpbmctcG9uZwogICAgKyAgIGFtb25nIHNvY2tl dHMgYmVjb21lcyB0aGUgYm90dGxlbmVjayBhbmQgdGhyZWFkcyBzcGVuZCBt YWpvcml0eSBvZgogICAgKyAgIHRoZWlyIHRpbWUgaW4gc3BpbmxvY2sgb3Zl cmhlYWQuCiAgICArCiAgICArICAgT24gbXVsdGktc29ja2V0IHN5c3RlbXMs IHRoZSBrZXlzIHRvIG91ciBOVU1BIHNwaW5sb2NrIHBlcmZvcm1hbmNlCiAg ICArICAgYXJlIHRvIG1pbmltaXplIGNyb3NzLXNvY2tldCB0cmFmZmljIGFz IHdlbGwgYXMgbG9jYWxpemUgdGhlIHNlcmlhbGl6ZWQKICAgICsgICB3b3Jr bG9hZCB0byBvbmUgY29yZSBmb3IgZXhlY3V0aW9uLiAgVGhlIGJhc2ljIHBy aW5jaXBsZXMgb2YgTlVNQQogICAgKyAgIHNwaW5sb2NrIGFyZSBtYWlubHkg Y29uc2lzdGVkIG9mIGZvbGxvd2luZyBhcHByb2FjaGVzLCB3aGljaCByZWR1 Y2UKICAgICsgICBkYXRhIG1vdmVtZW50IGFuZCBhY2NlbGVyYXRlIGNyaXRp Y2FsIHNlY3Rpb24sIGV2ZW50dWFsbHkgZ2l2ZSB1cwogICAgKyAgIHNpZ25p ZmljYW50IHBlcmZvcm1hbmNlIGltcHJvdmVtZW50LgogICAgKwogICAgKyAg IDEuIE1DUyBzcGlubG9jawogICAgKyAgIE1DUyBzcGlubG9jayBoZWxwIHVz IHRvIHJlZHVjZSB0aGUgdXNlbGVzcyBsb2NrIG1vdmVtZW50IGluIHRoZQog ICAgKyAgIHNwaW5uaW5nIHN0YXRlLiAgVGhpcyBwYXBlciBwcm92aWRlcyBh IGdvb2QgZGVzY3JpcHRpb24gZm9yIHRoaXMKICAgICsgICBraW5kIG9mIGxv Y2s6CiAgICArICAgPGh0dHA6Ly93d3cuY2lzZS51ZmwuZWR1L3RyL0RPQy9S RVAtMTk5Mi03MS5wZGY+CiAgICArCiAgICArICAgMi4gQ3JpdGljYWwgU2Vj dGlvbiBJbnRlZ3JhdGlvbiAoQ1NJKQogICAgKyAgIEVzc2VudGlhbGx5IHNw aW5sb2NrIGlzIHNpbWlsYXIgdG8gdGhhdCBvbmUgY29yZSBjb21wbGV0ZSBj cml0aWNhbAogICAgKyAgIHNlY3Rpb25zIG9uZSBieSBvbmUuIFNvIHdoZW4g Y29udGVudGlvbiBoYXBwZW4sIHRoZSBzZXJpYWxpemVkIHdvcmtzCiAgICAr ICAgYXJlIHNlbnQgdG8gdGhlIGNvcmUgd2hvIGlzIHRoZSBsb2NrIG93bmVy IGFuZCByZXNwb25zaWJsZSB0byBleGVjdXRlCiAgICArICAgdGhlbSwgdGhh dCBjYW4gc2F2ZSBtdWNoIHRpbWUgYW5kIHBvd2VyLCBiZWNhdXNlIGFsbCBz aGFyZWQgZGF0YSBhcmUKICAgICsgICBsb2NhdGVkIGluIHByaXZhdGUgY2Fj aGUgb2YgdGhlIGxvY2sgb3duZXIuCiAgICArCiAgICArICAgV2UgaW1wbGVt ZW50ZWQgdGhpcyBtZWNoYW5pc20gYmFzZWQgb24gcXVldWVkIHNwaW5sb2Nr IGluIGtlcm5lbCwgdGhhdAogICAgKyAgIHNwZWVkcyB1cCBjcml0aWNhbCBz ZWN0aW9uLCBhbmQgcmVkdWNlcyB0aGUgcHJvYmFiaWxpdHkgb2YgY29udGVu dGlvbi4KICAgICsgICBUaGUgcGFwZXIgcHJvdmlkZXMgYSBnb29kIGRlc2Ny aXB0aW9uIGZvciB0aGlzIGtpbmQgb2YgbG9jazoKICAgICsgICA8aHR0cHM6 Ly91c2Vycy5lY2UuY211LmVkdS9+b211dGx1L3B1Yi9hY3NfYXNwbG9zMDku cGRmPgogICAgKwogICAgKyAgIDMuIE5VTUEgQXdhcmUgU3BpbmxvY2sgKE5B UykKICAgICsgICBDdXJyZW50bHkgbXVsdGktc29ja2V0IHN5c3RlbXMgZ2l2 ZSB1cyBiZXR0ZXIgcGVyZm9ybWFuY2UgcGVyIHdhdHQsCiAgICArICAgaG93 ZXZlciB0aGF0IGFsc28gaW52b2x2ZXMgbW9yZSBjb21wbGV4IHN5bmNocm9u aXphdGlvbiByZXF1aXJlbWVudCwKICAgICsgICBiZWNhdXNlIG9mZi1jaGlw IGRhdGEgbW92ZW1lbnQgaXMgbXVjaCBzbG93ZXIuIFdlIHVzZSBkaXN0cmli dXRlZAogICAgKyAgIHN5bmNocm9uaXphdGlvbiBtZWNoYW5pc20gdG8gZGVj cmVhc2UgTG9jayBjYWNoZSBsaW5lIHRvIGFuZCBmcm9tCiAgICArICAgZGlm ZmVyZW50IG5vZGVzLiBUaGUgcGFwZXIgcHJvdmlkZXMgYSBnb29kIGRlc2Ny aXB0aW9uIGZvciB0aGlzIGtpbmQKICAgICsgICBvZiBsb2NrOgogICAgKyAg IDxodHRwczovL3d3dy51c2VuaXgub3JnL3N5c3RlbS9maWxlcy9jb25mZXJl bmNlL2F0YzE3L2F0YzE3LWthc2h5YXAucGRmPgogICAgKwogICAgKyAgIDQu IFlpZWxkIFNjaGVkdWxlCiAgICArICAgV2hlbiB0aHJlYWRzIGFyZSBhcHBs eWluZyBmb3IgQ3JpdGljYWwgU2VjdGlvbiBJbnRlZ3JhdGlvbihDU0kpIHdp dGgKICAgICsgICBrbm93biBjb250ZW50aW9uLCB0aGV5IHdpbGwgZGVsZWdh dGUgd29yayB0byB0aGUgdGhyZWFkIHdobyBpcyB0aGUKICAgICsgICBsb2Nr IG93bmVyLCBhbmQgd2FpdCBmb3Igd29yayB0byBiZSBjb21wbGV0ZWQuICBU aGUgcmVzb3VyY2VzIHdoaWNoCiAgICArICAgdGhleSBhcmUgdXNpbmcgc2hv dWxkIGJlIHRyYW5zZmVycmVkIHRvIG90aGVyIHRocmVhZHMuIEluIG9yZGVy IHRvCiAgICArICAgYWNjZWxlcmF0ZSB0aGUgc2NlbmFyaW8sIHdlIGludHJv ZHVjZSB5aWVsZF9zY2hlZCBmdW5jdGlvbiBkdXJpbmcKICAgICsgICBzcGlu bmluZyBzdGFnZS4KICAgICsKICAgICsgICA1LiBPcHRpbWl6YXRpb24gd2hl biBOVU1BIGlzIE9OIG9yIE9GRi4KICAgICsgICBBbHRob3VnaCBwcm9ncmFt cyBjYW4gYWNjZXNzIG1lbW9yeSB3aXRoIGxvd2VyIGxhdGVuY3kgd2hlbiBO VU1BIGlzCiAgICArICAgZW5hYmxlZCwgc29tZSBwcm9ncmFtcyBtYXkgbmVl ZCBtb3JlIG1lbW9yeSBiYW5kd2lkdGggZm9yIGNvbXB1dGF0aW9uCiAgICAr ICAgd2l0aCBOVU1BIGRpc2FibGVkLiAgV2UgYWxzbyBvcHRpbWl6ZSBtdWx0 aS1zb2NrZXQgc3lzdGVtcyB3aXRoIE5VTUEKICAgICsgICBkaXNhYmxlZC4K ICAgICsKICAgICsgICBOVU1BIHNwaW5sb2NrIGZsb3cgY2hhcnQgKGFzc3Vt aW5nIHRoZXJlIGFyZSAyIENQVSBub2Rlcyk6CiAgICArCiAgICArICAgMS4g VGhyZWFkcyBmcm9tIG5vZGVfMC9ub2RlXzEgYWNxdWlyZSBsb2NhbCBsb2Nr IGZvciBub2RlXzAvMQogICAgKyAgIHJlc3BlY3RpdmVseS4gIElmIHRoZSB0 aHJlYWQgc3VjY2VlZHMgaW4gYWNxdWlyaW5nIGxvY2FsIGxvY2ssIGl0CiAg ICArICAgZ29lcyB0byBzdGVwIDIsIG90aGVyd2lzZSBwdXNoZXMgY3JpdGlj YWwgZnVuY3Rpb24gaW50byBjdXJyZW50CiAgICArICAgbG9jYWwgd29yayBx dWV1ZSwgYW5kIGVudGVycyBpbnRvIHNwaW5uaW5nIHN0YWdlIHdpdGggTUNT IG1vZGUuCiAgICArCiAgICArICAgMi4gVGhyZWFkcyBmcm9tIG5vZGVfMC9u b2RlXzEgYWNxdWlyZSB0aGUgZ2xvYmFsIGxvY2suICBJZiBpdCBzdWNjZWVk cwogICAgKyAgIGluIGFjcXVpcmluZyB0aGUgZ2xvYmFsIGxvY2sgYXMgdGhl IGxvY2sgb3duZXIsIGl0IGdvZXMgdG8gc3RlcCAzLAogICAgKyAgIG90aGVy d2lzZSB3YWl0cyB1bnRpbCB0aGUgbG9jayBvd25lciB0aHJlYWQgcmVsZWFz ZXMgdGhlIGdsb2JhbCBsb2NrLgogICAgKwogICAgKyAgIDMuIFRoZSBsb2Nr IG93bmVyIHRocmVhZCBmcm9tIG5vZGVfMC8xIGVudGVycyBpbnRvIGNyaXRp Y2FsIHNlY3Rpb24sCiAgICArICAgY2xlYW5zIHVwIHdvcmsgcXVldWUgYnkg cGVyZm9ybWluZyBhbGwgbG9jYWwgY3JpdGljYWwgZnVuY3Rpb25zCiAgICAr ICAgcHVzaGVkIGF0IHN0ZXAgMSB3aXRoIENTSSBvbiBiZWhhbGYgb2Ygb3Ro ZXIgdGhyZWFkcyBhbmQgaW5mb3JtcwogICAgKyAgIHRob3NlIHNwaW5uaW5n IHRocmVhZHMgdGhhdCB0aGVpciB3b3JrcyBoYXZlIGJlZW4gZG9uZS4gIEl0 IHRoZW4KICAgICsgICByZWxlYXNlcyB0aGUgbG9jYWwgbG9jay4KICAgICsK ICAgICsgICA0LiBUaGUgbG9jayBvd25lciB0aHJlYWQgZnJlZXMgZ2xvYmFs IGxvY2suICBJZiBhbm90aGVyIHRocmVhZCBpcwogICAgKyAgIHdhaXRpbmcg YXQgc3RlcCAyLCB0aGUgbG9jayBvd25lciB0aHJlYWQgcGFzc2VzIHRoZSBn bG9iYWwgbG9jayB0bwogICAgKyAgIHRoZSB3YWl0aW5nIHRocmVhZCBhbmQg cmV0dXJucy4gIFRoZSBuZXcgbG9jayBvd25lciB0aHJlYWQgZW50ZXJzCiAg ICArICAgaW50byBzdGVwIDMuICBJZiBubyB0aHJlYWRzIGFyZSB3YWl0aW5n LCB0aGUgbG9jayBvd25lciB0aHJlYWQKICAgICsgICByZWxlYXNlcyB0aGUg Z2xvYmFsIGxvY2sgYW5kIHJldHVybnMuICBUaGUgd2hvbGUgY3JpdGljYWwg c2VjdGlvbgogICAgKyAgIHByb2Nlc3MgaXMgY29tcGxldGVkLgogICAgKwog ICAgKyAgIFN0ZXBzIDEgYW5kIDIgbWl0aWdhdGUgZ2xvYmFsIGxvY2sgY29u dGVudGlvbi4gIE9ubHkgb25lIHRocmVhZAogICAgKyAgIGZyb20gZGlmZmVy ZW50IG5vZGVzIHdpbGwgY29tcGV0ZSBmb3IgdGhlIGdsb2JhbCBsb2NrIGlu IHN0ZXAgMi4KICAgICsgICBTdGVwIDMgcmVkdWNlcyB0aGUgZ2xvYmFsIGxv Y2sgJiBzaGFyZWQgZGF0YSBtb3ZlbWVudCBiZWNhdXNlIHRoZXkKICAgICsg ICBhcmUgbG9jYXRlZCBpbiB0aGUgc2FtZSBub2RlIGFzIHdlbGwgYXMgdGhl IHNhbWUgY29yZS4gIE91ciBkYXRhCiAgICArICAgc2hvd3MgdGhhdCBDcml0 aWNhbCBTZWN0aW9uIEludGVncmF0aW9uIChDU0kpIGltcHJvdmVzIGRhdGEg bG9jYWxpdHkKICAgICsgICBhbmQgTlVNQS1hd2FyZSBzcGlubG9jayAoTkFT KSBoZWxwcyBDU0kgYmFsYW5jZSB0aGUgd29ya2xvYWQuCiAgICArCiAgICAr ICAgTlVNQSBzcGlubG9jayBjYW4gZ3JlYXRseSBzcGVlZCB1cCBjcml0aWNh bCBzZWN0aW9uIG9uIG11bHRpLXNvY2tldAogICAgKyAgIHN5c3RlbXMuICBJ dCBzaG91bGQgaW1wcm92ZSBzcGlubG9jayBwZXJmb3JtYW5jZSBvbiBhbGwg bXVsdGktc29ja2V0CiAgICArICAgc3lzdGVtcy4KICAgICsKICAgICsgICBO T1RFOiBMaVRMIDxodHRwczovL2dpdGh1Yi5jb20vbXVsdGljb3JlLWxvY2tz L2xpdGw+LCBpcyBhbiBvcGVuLXNvdXJjZQogICAgKyAgIHByb2plY3QgdGhh dCBwcm92aWRlcyBpbXBsZW1lbnRhdGlvbnMgb2YgZG96ZW5zIG9mIHZhcmlv dXMgbG9ja3MsCiAgICArICAgaW5jbHVkaW5nIHNldmVyYWwgc3RhdGUtb2Yt dGhlLWFydCBOVU1BLWF3YXJlIHNwaW5sb2Nrcy4gIEFtb25nIHRoZW0KICAg ICsKICAgICsgICAxLiBIaWVyYXJjaGljYWwgTUNTIChITUNTKSBzcGlubG9j ay4gIE1pbGluZCBDaGFiYmksIE1pY2hhZWwgRmFnYW4sCiAgICArICAgYW5k IEpvaG4gTWVsbG9yLUNydW1tZXkuIEhpZ2ggUGVyZm9ybWFuY2UgTG9ja3Mg Zm9yIE11bHRpLWxldmVsIE5VTUEKICAgICsgICBTeXN0ZW1zLiAgSW4gUHJv Y2VlZGluZ3Mgb2YgdGhlIEFDTSBTSUdQTEFOIFN5bXBvc2l1bSBvbiBQcmlu Y2lwbGVzCiAgICArICAgYW5kIFByYWN0aWNlIG9mIFBhcmFsbGVsIFByb2dy YW1taW5nIChQUG9QUCksIHBhZ2VzIDIxNeKAkzIyNiwgMjAxNS4KICAgICsK ICAgICsgICAyLiBDb2hvcnQtTUNTIChDLU1DUykgc3BpbmxvY2suICBEYXZl IERpY2UsIFZpcmVuZHJhIEouIE1hcmF0aGUsIGFuZAogICAgKyAgIE5pciBT aGF2aXQuICBMb2NrIENvaG9ydGluZzogQSBHZW5lcmFsIFRlY2huaXF1ZSBm b3IgRGVzaWduaW5nIE5VTUEKICAgICsgICBMb2Nrcy4gQUNNIFRyYW5zLiBQ YXJhbGxlbCBDb21wdXQuLCAxKDIpOjEzOjHigJMxMzo0MiwgMjAxNS4KICAg ICsgKi8KICAgICsKICAgICsvKiBHZXQgdGhlIG5leHQgdGhyZWFkIHBvaW50 ZWQgdG8gYnkgKk5FWFRfUC4gIE5COiBXZSBtdXN0IHVzZSBhIHdoaWxlCiAg ICArICAgc3BpbiBsb29wIHRvIGxvYWQgTkVYVF9QIHNpbmNlIHRoZXJlIGlz IGEgc21hbGwgd2luZG93IGJlZm9yZSAqTkVYVF9QCiAgICArICAgaXMgdXBk YXRlZC4gICovCiAgICArCiAgICArc3RhdGljIGlubGluZSBzdHJ1Y3QgbnVt YV9zcGlubG9ja19pbmZvICoKICAgICtnZXRfbnVtYV9zcGlubG9ja19pbmZv X25leHQgKHN0cnVjdCBudW1hX3NwaW5sb2NrX2luZm8gKipuZXh0X3ApCiAg ICArewogICAgKyAgc3RydWN0IG51bWFfc3BpbmxvY2tfaW5mbyAqbmV4dDsK ICAgICsgIHdoaWxlICghKG5leHQgPSBhdG9taWNfbG9hZF9yZWxheGVkIChu ZXh0X3ApKSkKICAgICsgICAgYXRvbWljX3NwaW5fbm9wICgpOwogICAgKyAg cmV0dXJuIG5leHQ7CiAgICArfQogICAgKwogICAgKy8qIFdoaWxlIGhvbGRp bmcgdGhlIGdsb2JhbCBOVU1BIHNwaW5sb2NrLCBydW4gdGhlIHdvcmtsb2Fk IG9mIHRoZQogICAgKyAgIHRocmVhZCBwb2ludGVkIHRvIGJ5IFNFTEYgZmly c3QsIHRoZW4gcnVuIHRoZSB3b3JrbG9hZCBmb3IgZWFjaAogICAgKyAgIHRo cmVhZCBvbiB0aGUgdGhyZWFkIGxpc3QgcG9pbnRlZCB0byBieSBIRUFEX1Ag YW5kIHdha2UgdXAgdGhlCiAgICArICAgdGhyZWFkIHNvIHRoYXQgYWxsIHdv cmtsb2FkcyBydW4gb24gYSBzaW5nbGUgcHJvY2Vzc29yLiAgKi8KICAgICsK ICAgICtzdGF0aWMgaW5saW5lIHZvaWQKICAgICtydW5fbnVtYV9zcGlubG9j ayAoc3RydWN0IG51bWFfc3BpbmxvY2tfaW5mbyAqc2VsZiwKICAgICsgICAg IHN0cnVjdCBudW1hX3NwaW5sb2NrX2luZm8gKipoZWFkX3ApCiAgICArewog ICAgKyAgc3RydWN0IG51bWFfc3BpbmxvY2tfaW5mbyAqbmV4dCwgKmN1cnJl bnQ7CiAgICArCiAgICArICAvKiBSdW4gdGhlIFNFTEYncyB3b3JrbG9hZC4g Ki8KICAgICsgIHNlbGYtPnJlc3VsdCA9IHNlbGYtPndvcmtsb2FkIChzZWxm LT5hcmd1bWVudCk7CiAgICArCiAgICArICAvKiBQcm9jZXNzIHdvcmtsb2Fk cyBmb3IgdGhlIHJlc3Qgb2YgdGhyZWFkcyBvbiB0aGUgdGhyZWFkIGxpc3Qu CiAgICArICAgICBOQjogVGhlIHRocmVhZCBsaXN0IG1heSBiZSBwcmVwZW5k ZWQgYnkgb3RoZXIgdGhyZWFkcyBhdCB0aGUKICAgICsgICAgIHNhbWUgdGlt ZS4gICovCiAgICArCiAgICArcmV0cnk6CiAgICArICAgLyogSWYgU0VMRiBp cyB0aGUgZmlyc3QgdGhyZWFkIG9mIHRoZSB0aHJlYWQgbGlzdCBwb2ludGVk IHRvIGJ5CiAgICArICAgICAgSEVBRF9QLCBjbGVhciB0aGUgdGhyZWFkIGxp c3QuICAqLwogICAgKyAgY3VycmVudCA9IGF0b21pY19jb21wYXJlX2FuZF9l eGNoYW5nZV92YWxfYWNxIChoZWFkX3AsIE5VTEwsIHNlbGYpOwogICAgKyAg aWYgKGN1cnJlbnQgPT0gc2VsZikKICAgICsgICAgewogICAgKyAgICAgIC8q IFNpbmNlIFNFTEYgaXMgdGhlIG9ubHkgdGhyZWFkIG9uIHRoZSBsaXN0LCBj bGVhciBTRUxGJ3MgcGVuZGluZwogICAgKyAgICAgICAgIGZpZWxkIGFuZCBy ZXR1cm4uICAqLwogICAgKyAgICAgIGF0b21pY19zdG9yZV9yZWxlYXNlICgm Y3VycmVudC0+cGVuZGluZywgMCk7CiAgICArICAgICAgcmV0dXJuOwogICAg KyAgICB9CiAgICArCiAgICArICAvKiBDVVJSRU5UIHdpbGwgaGF2ZSB0aGUg cHJldmlvdXMgZmlyc3QgdGhyZWFkIG9mIHRoZSB0aHJlYWQgbGlzdAogICAg KyAgICAgcG9pbnRlZCB0byBieSBIRUFEX1AgYW5kICpIRUFEX1Agd2lsbCBw b2ludCB0byBTRUxGLiAgKi8KICAgICsgIGN1cnJlbnQgPSBhdG9taWNfZXhj aGFuZ2VfYWNxdWlyZSAoaGVhZF9wLCBzZWxmKTsKICAgICsKICAgICsgIC8q IE5COiBObyBuZWVkIHRvIGNoZWNrIGlmIENVUlJFTlQgPT0gU0VMRiBoZXJl IHNpbmNlIFNFTEYgY2FuIG5ldmVyCiAgICArICAgICBiZSBDVVJSRU5ULiAg Ki8KICAgICsKICAgICtyZXBlYXQ6CiAgICArICAvKiBHZXQgdGhlIG5leHQg dGhyZWFkLiAgKi8KICAgICsgIG5leHQgPSBnZXRfbnVtYV9zcGlubG9ja19p bmZvX25leHQgKCZjdXJyZW50LT5uZXh0KTsKICAgICsKICAgICsgIC8qIFJ1 biB0aGUgQ1VSUkVOVCdzIHdvcmtsb2FkIGFuZCBjbGVhciBDVVJSRU5UJ3Mg cGVuZGluZyBmaWVsZC4gKi8KICAgICsgIGN1cnJlbnQtPnJlc3VsdCA9IGN1 cnJlbnQtPndvcmtsb2FkIChjdXJyZW50LT5hcmd1bWVudCk7CiAgICArICBj dXJyZW50LT5wZW5kaW5nID0gMDsKICAgICsKICAgICsgIC8qIFByb2Nlc3Mg dGhlIHdvcmtsb2FkIGZvciBlYWNoIHRocmVhZCBmcm9tIENVUlJFTlQgdG8g U0VMRiBvbiB0aGUKICAgICsgICAgIHRocmVhZCBsaXN0LiAgRG9uJ3QgcGFz cyBiZXlvbmQgU0VMRiBzaW5jZSBTRUxGIGlzIHRoZSBsYXN0IHRocmVhZAog ICAgKyAgICAgb24gdGhlIGxpc3QuICAqLwogICAgKyAgaWYgKG5leHQgPT0g c2VsZikKICAgICsgICAgZ290byByZXRyeTsKICAgICsgIGN1cnJlbnQgPSBu ZXh0OwogICAgKyAgZ290byByZXBlYXQ7CiAgICArfQogICAgKwogICAgKy8q IEFwcGx5IGZvciB0aGUgTlVNQSBzcGlubG9jayB3aXRoIHRoZSBOVU1BIHNw aW5sb2NrIGluZm8gZGF0YSBwb2ludGVkCiAgICArICAgdG8gYnkgU0VMRi4g ICovCiAgICArCiAgICArdm9pZAogICAgK251bWFfc3BpbmxvY2tfYXBwbHkg KHN0cnVjdCBudW1hX3NwaW5sb2NrX2luZm8gKnNlbGYpCiAgICArewogICAg KyAgc3RydWN0IG51bWFfc3BpbmxvY2sgKmxvY2sgPSBzZWxmLT5sb2NrOwog ICAgKyAgc3RydWN0IG51bWFfc3BpbmxvY2tfaW5mbyAqZmlyc3QsICpuZXh0 OwogICAgKyAgc3RydWN0IG51bWFfc3BpbmxvY2tfaW5mbyAqKmhlYWRfcDsK ICAgICsKICAgICsgIHNlbGYtPm5leHQgPSBOVUxMOwogICAgKyAgLyogV2Ug d2FudCB0aGUgZ2xvYmFsIE5VTUEgc3BpbmxvY2suICAqLwogICAgKyAgc2Vs Zi0+cGVuZGluZyA9IDE7CiAgICArICAvKiBTZWxlY3QgdGhlIGxvY2FsIE5V TUEgc3BpbmxvY2sgbGlzdCBieSB0aGUgTlVNQSBub2RlIG51bWJlci4gICov CiAgICArICBoZWFkX3AgPSAmbG9jay0+bGlzdHNbc2VsZi0+bm9kZV07CiAg ICArICAvKiBGSVJTVCB3aWxsIGhhdmUgdGhlIHByZXZpb3VzIGZpcnN0IHRo cmVhZCBvZiB0aGUgbG9jYWwgTlVNQSBzcGlubG9jawogICAgKyAgICAgbGlz dCBhbmQgKkhFQURfUCB3aWxsIHBvaW50IHRvIFNFTEYuICAqLwogICAgKyAg Zmlyc3QgPSBhdG9taWNfZXhjaGFuZ2VfYWNxdWlyZSAoaGVhZF9wLCBzZWxm KTsKICAgICsgIGlmIChmaXJzdCkKICAgICsgICAgewogICAgKyAgICAgIC8q IFNFTEYgaGFzIGJlZW4gcHJlcGVuZGVkIHRvIHRoZSB0aHJlYWQgbGlzdCBw b2ludGVkIHRvIGJ5CiAgICArICBIRUFEX1AuICBOQjogVGhlcmUgaXMgYSBz bWFsbCB3aW5kb3cgYmV0d2VlbiB1cGRhdGluZwogICAgKyAgKkhFQURfUCBh bmQgc2VsZi0+bmV4dC4gICovCiAgICArICAgICAgYXRvbWljX3N0b3JlX3Jl bGVhc2UgKCZzZWxmLT5uZXh0LCBmaXJzdCk7CiAgICArICAgICAgLyogTGV0 IG90aGVyIHRocmVhZHMgcnVuIGZpcnN0IHNpbmNlIGFub3RoZXIgdGhyZWFk IHdpbGwgcnVuIG91cgogICAgKyAgd29ya2xvYWQgZm9yIHVzLiAgKi8KICAg ICsgICAgICBzY2hlZF95aWVsZCAoKTsKICAgICsgICAgICAvKiBTcGluIHVu dGlsIG91ciBQRU5ESU5HIGlzIGNsZWFyZWQuICAqLwogICAgKyAgICAgIHdo aWxlIChhdG9taWNfbG9hZF9yZWxheGVkICgmc2VsZi0+cGVuZGluZykpCiAg ICArIGF0b21pY19zcGluX25vcCAoKTsKICAgICsgICAgICByZXR1cm47CiAg ICArICAgIH0KICAgICsKICAgICsgIC8qIE5COiBOb3cgU0VMRiBtdXN0IGJl IHRoZSBvbmx5IHRocmVhZCBvbiB0aGUgdGhyZWFkIGxpc3QgcG9pbnRlZAog ICAgKyAgICAgdG8gYnkgSEVBRF9QLiAgU2luY2UgdGhyZWFkIGlzIGFsd2F5 cyBwcmVwZW5kZWQgdG8gSEVBRF9QLCB3ZQogICAgKyAgICAgY2FuIHVzZSAq SEVBRF9QID09IFNFTEYgdG8gY2hlY2sgaWYgU0VMRiBpcyB0aGUgb25seSB0 aHJlYWQgb24KICAgICsgICAgIHRoZSB0aHJlYWQgbGlzdC4gICovCiAgICAr CiAgICArICBpZiAoX19nbGliY191bmxpa2VseSAobG9jay0+c2luZ2xlX25v ZGUpKQogICAgKyAgICB7CiAgICArICAgICAgLyogSWYgdGhlcmUgaXMgb25s eSBvbmUgbm9kZSwgdGhlcmUgaXMgbm8gbmVlZCBmb3IgdGhlIGdsb2JhbAog ICAgKyAgICAgICAgIE5VTUEgc3BpbmxvY2suICAqLwogICAgKyAgICAgIHJ1 bl9udW1hX3NwaW5sb2NrIChzZWxmLCBoZWFkX3ApOwogICAgKyAgICAgIHJl dHVybjsKICAgICsgICAgfQogICAgKwogICAgKyAgLyogRklSU1Qgd2lsbCBo YXZlIHRoZSBwcmV2aW91cyBmaXJzdCB0aHJlYWQgb2YgdGhlIGxvY2FsIE5V TUEgc3BpbmxvY2sKICAgICsgICAgIGxpc3Qgb2YgdGhyZWFkcyB3aGljaCBo b2xkcyB0aGUgZ2xvYmFsIE5VTUEgc3BpbmxvY2ssIHdoaWNoIHdpbGwKICAg ICsgICAgIHBvaW50IHRvIFNFTEYuICAqLwogICAgKyAgZmlyc3QgPSBhdG9t aWNfZXhjaGFuZ2VfYWNxdWlyZSAoJmxvY2stPm93bmVyLCBzZWxmKTsKICAg ICsgIGlmIChmaXJzdCkKICAgICsgICAgewogICAgKyAgICAgIC8qIFNFTEYg aGFzIGJlZW4gcHJlcGVuZGVkIHRvIHRoZSB0aHJlYWQgbGlzdCBwb2ludGVk IHRvIGJ5CiAgICArICBsb2NrLT5vd25lci4gIE5COiBUaGVyZSBpcyBhIHNt YWxsIHdpbmRvdyBiZXR3ZWVuIHVwZGF0aW5nCiAgICArICAqSEVBRF9QIGFu ZCBmaXJzdC0+bmV4dC4gICovCiAgICArICAgICAgYXRvbWljX3N0b3JlX3Jl bGVhc2UgKCZmaXJzdC0+bmV4dCwgc2VsZik7CiAgICArICAgICAgLyogU3Bp biB1bnRpbCB0aGUgbGlzdCBvZiB0aHJlYWRzIHdoaWNoIGhvbGRzIHRoZSBn bG9iYWwgTlVNQQogICAgKyAgc3BpbmxvY2sgY2xlYXJzIG91ciBQRU5ESU5H LiAgKi8KICAgICsgICAgICB3aGlsZSAoYXRvbWljX2xvYWRfcmVsYXhlZCAo JnNlbGYtPnBlbmRpbmcpKQogICAgKyBhdG9taWNfc3Bpbl9ub3AgKCk7CiAg ICArICAgIH0KICAgICsKICAgICsgIC8qIFdlIGdldCB0aGUgZ2xvYmFsIE5V TUEgc3BpbmxvY2sgbm93LiAgUnVuIG91ciB3b3JrbG9hZC4gICovCiAgICAr ICBydW5fbnVtYV9zcGlubG9jayAoc2VsZiwgaGVhZF9wKTsKICAgICsKICAg ICsgIC8qIFNFTEYgaXMgdGhlIG9ubHkgdGhyZWFkIG9uIHRoZSBsaXN0IGlm IFNFTEYgaXMgdGhlIGZpcnN0IHRocmVhZAogICAgKyAgICAgb2YgdGhlIHRo cmVhZCBsaXN0IHBvaW50ZWQgdG8gYnkgbG9jay0+b3duZXIuICBJbiB0aGlz IGNhc2UsIHdlCiAgICArICAgICBzaW1wbHkgcmV0dXJuLiAgKi8KICAgICsg IGlmICghYXRvbWljX2NvbXBhcmVfYW5kX2V4Y2hhbmdlX2Jvb2xfYWNxICgm bG9jay0+b3duZXIsIE5VTEwsIHNlbGYpKQogICAgKyAgICByZXR1cm47CiAg ICArCiAgICArICAvKiBXYWtlIHVwIHRoZSBuZXh0IHRocmVhZC4gICovCiAg ICArICBuZXh0ID0gZ2V0X251bWFfc3BpbmxvY2tfaW5mb19uZXh0ICgmc2Vs Zi0+bmV4dCk7CiAgICArICBhdG9taWNfc3RvcmVfcmVsZWFzZSAoJm5leHQt PnBlbmRpbmcsIDApOwogICAgK30KICAgICsKICAgICsvKiBJbml0aWFsaXpl IHRoZSBOVU1BIHNwaW5sb2NrIGluZm8gZGF0YSBwb2ludGVkIHRvIGJ5IElO Rk8gZnJvbSBhCiAgICArICAgcG9pbnRlciB0byB0aGUgTlVNQSBzcGlubG9j aywgTE9DSy4gICovCiAgICArCiAgICAraW50CiAgICArbnVtYV9zcGlubG9j a19pbml0IChzdHJ1Y3QgbnVtYV9zcGlubG9jayAqbG9jaywKICAgICsgICAg c3RydWN0IG51bWFfc3BpbmxvY2tfaW5mbyAqaW5mbykKICAgICt7CiAgICAr ICBtZW1zZXQgKGluZm8sIDAsIHNpemVvZiAoKmluZm8pKTsKICAgICsgIGlu Zm8tPmxvY2sgPSBsb2NrOwogICAgKyAgLyogRm9yIHNpbmdsZSBub2RlIHN5 c3RlbSwgdXNlIDAgYXMgdGhlIE5VTUEgbm9kZSBudW1iZXIuICAqLwogICAg KyAgaWYgKGxvY2stPnNpbmdsZV9ub2RlKQogICAgKyAgICByZXR1cm4gMDsK ICAgICsgIC8qIE5COiBVc2UgdGhlIE5VTUEgbm9kZSBudW1iZXIgZnJvbSBn ZXRjcHUgdG8gc2VsZWN0IHRoZSBsb2NhbCBOVU1BCiAgICArICAgICBzcGlu bG9jayBsaXN0LiAgKi8KICAgICsgIHVuc2lnbmVkIGludCBjcHU7CiAgICAr ICB1bnNpZ25lZCBpbnQgbm9kZTsKICAgICsjaWZkZWYgSEFWRV9HRVRDUFUK ICAgICsgIGludCBlcnJfcmV0ID0gZ2V0Y3B1ICgmY3B1LCAmbm9kZSk7CiAg ICArI2Vsc2UKICAgICsgIGludCBlcnJfcmV0ID0gc3lzY2FsbCAoU1lTX2dl dGNwdSwgJmNwdSwgJm5vZGUsIE5VTEwpOwogICAgKyNlbmRpZgogICAgKyAg aWYgKGVycl9yZXQpCiAgICArICAgIHJldHVybiBlcnJfcmV0OwogICAgKyAg aWYgKGxvY2stPnBoeXNpY2FsX3BhY2thZ2VfaWRfcCkKICAgICsgICAgewog ICAgKyAgICAgIC8qIENhbiBpdCBldmVyIGhhcHBlbj8gICovCiAgICArICAg ICAgaWYgKGNwdSA+IGxvY2stPm1heF9jcHUpCiAgICArIGNwdSA9IGxvY2st Pm1heF9jcHU7CiAgICArICAgICAgLyogTkI6IElmIE5VTUEgaXMgZGlzYWJs ZWQsIHVzZSBwaHlzaWNhbF9wYWNrYWdlX2lkLiAgKi8KICAgICsgICAgICBu b2RlID0gbG9jay0+cGh5c2ljYWxfcGFja2FnZV9pZF9wW2NwdV07CiAgICAr ICAgIH0KICAgICsgIC8qIENhbiBpdCBldmVyIGhhcHBlbj8gICovCiAgICAr ICBpZiAobm9kZSA+IGxvY2stPm1heF9ub2RlKQogICAgKyAgICBub2RlID0g bG9jay0+bWF4X25vZGU7CiAgICArICBpbmZvLT5ub2RlID0gbm9kZTsKICAg ICsgIHJldHVybiBlcnJfcmV0OwogICAgK30KICAgICsKICAgICt2b2lkCiAg ICArbnVtYV9zcGlubG9ja19mcmVlIChzdHJ1Y3QgbnVtYV9zcGlubG9jayAq bG9jaykKICAgICt7CiAgICArICBpZiAobG9jay0+cGh5c2ljYWxfcGFja2Fn ZV9pZF9wKQogICAgKyAgICBmcmVlIChsb2NrLT5waHlzaWNhbF9wYWNrYWdl X2lkX3ApOwogICAgKyAgZnJlZSAobG9jayk7CiAgICArfQogICAgZGlmZiAt LWdpdCBhL3N5c2RlcHMvdW5peC9zeXN2L2xpbnV4L251bWEtc3BpbmxvY2su aCBiL3N5c2RlcHMvdW5peC9zeXN2L2xpbnV4L251bWEtc3BpbmxvY2suaAog ICAgbmV3IGZpbGUgbW9kZSAxMDA2NDQKICAgIGluZGV4IDAwMDAwMDAuLmIx N2JkYTUKICAgIC0tLSAvZGV2L251bGwKICAgICsrKyBiL3N5c2RlcHMvdW5p eC9zeXN2L2xpbnV4L251bWEtc3BpbmxvY2suaAogICAgQEAgLTAsMCArMSw2 NCBAQAogICAgKy8qIENvcHlyaWdodCAoQykgMjAxOCBGcmVlIFNvZnR3YXJl IEZvdW5kYXRpb24sIEluYy4KICAgICsgICBUaGlzIGZpbGUgaXMgcGFydCBv ZiB0aGUgR05VIEMgTGlicmFyeS4KICAgICsKICAgICsgICBUaGUgR05VIEMg TGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0 ZSBpdCBhbmQvb3IKICAgICsgICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1z IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCiAgICArICAgTGlj ZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRh dGlvbjsgZWl0aGVyCiAgICArICAgdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vu c2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiAg ICArCiAgICArICAgVGhlIEdOVSBDIExpYnJhcnkgaXMgZGlzdHJpYnV0ZWQg aW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKICAgICsgICBi dXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1w bGllZCB3YXJyYW50eSBvZgogICAgKyAgIE1FUkNIQU5UQUJJTElUWSBvciBG SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05V CiAgICArICAgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1v cmUgZGV0YWlscy4KICAgICsKICAgICsgICBZb3Ugc2hvdWxkIGhhdmUgcmVj ZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGlj CiAgICArICAgTGljZW5zZSBhbG9uZyB3aXRoIHRoZSBHTlUgQyBMaWJyYXJ5 OyBpZiBub3QsIHNlZQogICAgKyAgIDxodHRwOi8vd3d3LmdudS5vcmcvbGlj ZW5zZXMvPi4gICovCiAgICArCiAgICArI2lmbmRlZiBfTlVNQV9TUElOTE9D S19ICiAgICArI2RlZmluZSBfTlVNQV9TUElOTE9DS19ICiAgICArCiAgICAr I2luY2x1ZGUgPGZlYXR1cmVzLmg+CiAgICArCiAgICArX19CRUdJTl9ERUNM UwogICAgKwogICAgKy8qIFRoZSBOVU1BIHNwaW5sb2NrLiAgKi8KICAgICtz dHJ1Y3QgbnVtYV9zcGlubG9jazsKICAgICsKICAgICsvKiBUaGUgTlVNQSBz cGlubG9jayBpbmZvcm1hdGlvbiBmb3IgZWFjaCB0aHJlYWQuICAqLwogICAg K3N0cnVjdCBudW1hX3NwaW5sb2NrX2luZm8KICAgICt7CiAgICArICAvKiBU aGUgd29ya2xvYWQgZnVuY3Rpb24gb2YgdGhpcyB0aHJlYWQuICAqLwogICAg KyAgdm9pZCAqKCp3b3JrbG9hZCkgKHZvaWQgKik7CiAgICArICAvKiBUaGUg YXJndW1lbnQgcG9pbnRlciBwYXNzZWQgdG8gdGhlIHdvcmtsb2FkIGZ1bmN0 aW9uLiAgKi8KICAgICsgIHZvaWQgKmFyZ3VtZW50OwogICAgKyAgLyogVGhl IHJldHVybiB2YWx1ZSBvZiB0aGUgd29ya2xvYWQgZnVuY3Rpb24uICAqLwog ICAgKyAgdm9pZCAqcmVzdWx0OwogICAgKyAgLyogVGhlIHBvaW50ZXIgdG8g dGhlIE5VTUEgc3BpbmxvY2suICAqLwogICAgKyAgc3RydWN0IG51bWFfc3Bp bmxvY2sgKmxvY2s7CiAgICArICAvKiBUaGUgbmV4dCB0aHJlYWQgb24gdGhl IGxvY2FsIE5VTUEgc3BpbmxvY2sgdGhyZWFkIGxpc3QuICAqLwogICAgKyAg c3RydWN0IG51bWFfc3BpbmxvY2tfaW5mbyAqbmV4dDsKICAgICsgIC8qIFRo ZSBOVU1BIG5vZGUgbnVtYmVyLiAgKi8KICAgICsgIHVuc2lnbmVkIGludCBu b2RlOwogICAgKyAgLyogTm9uLXplcm8gdG8gaW5kaWNhdGUgdGhhdCB0aGUg dGhyZWFkIHdhbnRzIHRoZSBOVU1BIHNwaW5sb2NrLiAgKi8KICAgICsgIGlu dCBwZW5kaW5nOwogICAgKyAgLyogUmVzZXJ2ZWQgZm9yIGZ1dHVyZSB1c2Uu ICAqLwogICAgKyAgdm9pZCAqX19yZXNlcnZlZFs0XTsKICAgICt9OwogICAg KwogICAgKy8qIFJldHVybiBhIHBvaW50ZXIgdG8gYSBuZXdseSBhbGxvY2F0 ZWQgTlVNQSBzcGlubG9jay4gICovCiAgICArZXh0ZXJuIHN0cnVjdCBudW1h X3NwaW5sb2NrICpudW1hX3NwaW5sb2NrX2FsbG9jICh2b2lkKTsKICAgICsK ICAgICsvKiBGcmVlIHRoZSBtZW1vcnkgc3BhY2Ugb2YgdGhlIE5VTUEgc3Bp bmxvY2suICAqLwogICAgK2V4dGVybiB2b2lkIG51bWFfc3BpbmxvY2tfZnJl ZSAoc3RydWN0IG51bWFfc3BpbmxvY2sgKik7CiAgICArCiAgICArLyogSW5p dGlhbGl6ZSB0aGUgTlVNQSBzcGlubG9jayBpbmZvcm1hdGlvbiBibG9jay4g ICovCiAgICArZXh0ZXJuIGludCBudW1hX3NwaW5sb2NrX2luaXQgKHN0cnVj dCBudW1hX3NwaW5sb2NrICosCiAgICArICAgICAgICAgIHN0cnVjdCBudW1h X3NwaW5sb2NrX2luZm8gKik7CiAgICArCiAgICArLyogQXBwbHkgZm9yIHNw aW5sb2NrIHdpdGggYSBOVU1BIHNwaW5sb2NrIGluZm9ybWF0aW9uIGJsb2Nr LiAgKi8KICAgICtleHRlcm4gdm9pZCBudW1hX3NwaW5sb2NrX2FwcGx5IChz dHJ1Y3QgbnVtYV9zcGlubG9ja19pbmZvICopOwogICAgKwogICAgK19fRU5E X0RFQ0xTCiAgICArCiAgICArI2VuZGlmIC8qIG51bWEtc3BpbmxvY2suaCAq LwogICAgZGlmZiAtLWdpdCBhL3N5c2RlcHMvdW5peC9zeXN2L2xpbnV4L251 bWFfc3BpbmxvY2tfYWxsb2MuYyBiL3N5c2RlcHMvdW5peC9zeXN2L2xpbnV4 L251bWFfc3BpbmxvY2tfYWxsb2MuYwogICAgbmV3IGZpbGUgbW9kZSAxMDA2 NDQKICAgIGluZGV4IDAwMDAwMDAuLjhmZjRlMWEKICAgIC0tLSAvZGV2L251 bGwKICAgICsrKyBiL3N5c2RlcHMvdW5peC9zeXN2L2xpbnV4L251bWFfc3Bp bmxvY2tfYWxsb2MuYwogICAgQEAgLTAsMCArMSwzMDQgQEAKICAgICsvKiBJ bml0aWFsaXphdGlvbiBvZiBOVU1BIHNwaW5sb2NrLgogICAgKyAgIENvcHly aWdodCAoQykgMjAxOCBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4K ICAgICsgICBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgR05VIEMgTGlicmFy eS4KICAgICsKICAgICsgICBUaGUgR05VIEMgTGlicmFyeSBpcyBmcmVlIHNv ZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAgICsg ICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2Vy IEdlbmVyYWwgUHVibGljCiAgICArICAgTGljZW5zZSBhcyBwdWJsaXNoZWQg YnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCiAgICAr ICAgdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9w dGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiAgICArCiAgICArICAgVGhlIEdO VSBDIExpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBp dCB3aWxsIGJlIHVzZWZ1bCwKICAgICsgICBidXQgV0lUSE9VVCBBTlkgV0FS UkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgog ICAgKyAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJ Q1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCiAgICArICAgTGVzc2VyIEdl bmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KICAgICsK ICAgICsgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRo ZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCiAgICArICAgTGljZW5zZSBh bG9uZyB3aXRoIHRoZSBHTlUgQyBMaWJyYXJ5OyBpZiBub3QsIHNlZQogICAg KyAgIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4gICovCiAgICAr CiAgICArI2luY2x1ZGUgPGFzc2VydC5oPgogICAgKyNpbmNsdWRlIDxjdHlw ZS5oPgogICAgKyNpbmNsdWRlIDxzdHJpbmcuaD4KICAgICsjaW5jbHVkZSA8 ZGlyZW50Lmg+CiAgICArI2luY2x1ZGUgPHN0ZGlvLmg+CiAgICArI2luY2x1 ZGUgPGxpbWl0cy5oPgogICAgKyNpZmRlZiBfTElCQwogICAgKyMgaW5jbHVk ZSA8bm90LWNhbmNlbC5oPgogICAgKyNlbHNlCiAgICArIyBpbmNsdWRlIDxz dGRsaWIuaD4KICAgICsjIGluY2x1ZGUgPHVuaXN0ZC5oPgogICAgKyMgaW5j bHVkZSA8ZmNudGwuaD4KICAgICsjIGRlZmluZSBfX29wZW5fbm9jYW5jZWwg IG9wZW4KICAgICsjIGRlZmluZSBfX2Nsb3NlX25vY2FuY2VsX25vc3RhdHVz IGNsb3NlCiAgICArIyBkZWZpbmUgX19yZWFkX25vY2FuY2VsICByZWFkCiAg ICArI2VuZGlmCiAgICArCiAgICArI2luY2x1ZGUgIm51bWEtc3BpbmxvY2st cHJpdmF0ZS5oIgogICAgKwogICAgK3N0YXRpYyBjaGFyICoKICAgICtuZXh0 X2xpbmUgKGludCBmZCwgY2hhciAqY29uc3QgYnVmZmVyLCBjaGFyICoqY3As IGNoYXIgKipyZSwKICAgICsgICAgY2hhciAqY29uc3QgYnVmZmVyX2VuZCkK ICAgICt7CiAgICArICBjaGFyICpyZXMgPSAqY3A7CiAgICArICBjaGFyICpu bCA9IG1lbWNociAoKmNwLCAnXG4nLCAqcmUgLSAqY3ApOwogICAgKyAgaWYg KG5sID09IE5VTEwpCiAgICArICAgIHsKICAgICsgICAgICBpZiAoKmNwICE9 IGJ1ZmZlcikKICAgICsgewogICAgKyAgIGlmICgqcmUgPT0gYnVmZmVyX2Vu ZCkKICAgICsgICAgIHsKICAgICsgICAgICAgbWVtbW92ZSAoYnVmZmVyLCAq Y3AsICpyZSAtICpjcCk7CiAgICArICAgICAgICpyZSA9IGJ1ZmZlciArICgq cmUgLSAqY3ApOwogICAgKyAgICAgICAqY3AgPSBidWZmZXI7CiAgICArCiAg ICArICAgICAgIHNzaXplX3QgbiA9IF9fcmVhZF9ub2NhbmNlbCAoZmQsICpy ZSwgYnVmZmVyX2VuZCAtICpyZSk7CiAgICArICAgICAgIGlmIChuIDwgMCkK ICAgICsgIHJldHVybiBOVUxMOwogICAgKwogICAgKyAgICAgICAqcmUgKz0g bjsKICAgICsKICAgICsgICAgICAgbmwgPSBtZW1jaHIgKCpjcCwgJ1xuJywg KnJlIC0gKmNwKTsKICAgICsgICAgICAgd2hpbGUgKG5sID09IE5VTEwgJiYg KnJlID09IGJ1ZmZlcl9lbmQpCiAgICArICB7CiAgICArICAgIC8qIFRydW5j YXRlIHRvbyBsb25nIGxpbmVzLiAgKi8KICAgICsgICAgKnJlID0gYnVmZmVy ICsgMyAqIChidWZmZXJfZW5kIC0gYnVmZmVyKSAvIDQ7CiAgICArICAgIG4g PSBfX3JlYWRfbm9jYW5jZWwgKGZkLCAqcmUsIGJ1ZmZlcl9lbmQgLSAqcmUp OwogICAgKyAgICBpZiAobiA8IDApCiAgICArICAgICAgcmV0dXJuIE5VTEw7 CiAgICArCiAgICArICAgIG5sID0gbWVtY2hyICgqcmUsICdcbicsIG4pOwog ICAgKyAgICAqKnJlID0gJ1xuJzsKICAgICsgICAgKnJlICs9IG47CiAgICAr ICB9CiAgICArICAgICB9CiAgICArICAgZWxzZQogICAgKyAgICAgbmwgPSBt ZW1jaHIgKCpjcCwgJ1xuJywgKnJlIC0gKmNwKTsKICAgICsKICAgICsgICBy ZXMgPSAqY3A7CiAgICArIH0KICAgICsKICAgICsgICAgICBpZiAobmwgPT0g TlVMTCkKICAgICsgbmwgPSAqcmUgLSAxOwogICAgKyAgICB9CiAgICArCiAg ICArICAqY3AgPSBubCArIDE7CiAgICArICBhc3NlcnQgKCpjcCA8PSAqcmUp OwogICAgKwogICAgKyAgcmV0dXJuIHJlcyA9PSAqcmUgPyBOVUxMIDogcmVz OwogICAgK30KICAgICsKICAgICtzdGF0aWMgaW50CiAgICArc2VsZWN0X2Nw dSAoY29uc3Qgc3RydWN0IGRpcmVudCAqZCkKICAgICt7CiAgICArICAvKiBS ZXR1cm4gMSBmb3IgImNwdVhYWCIgd2hlcmUgWFhYIGFyZSBkaWdpdHMuICAq LwogICAgKyAgaWYgKHN0cm5jbXAgKGQtPmRfbmFtZSwgImNwdSIsIHNpemVv ZiAoImNwdSIpIC0gMSkgPT0gMCkKICAgICsgICAgewogICAgKyAgICAgIGNv bnN0IGNoYXIgKnAgPSBkLT5kX25hbWUgKyAzOwogICAgKwogICAgKyAgICAg IGlmICgqcCA9PSAnXDAnKQogICAgKyByZXR1cm4gMDsKICAgICsKICAgICsg ICAgICBkbwogICAgKyB7CiAgICArICAgaWYgKCFpc2RpZ2l0ICgqcCkpCiAg ICArICAgICByZXR1cm4gMDsKICAgICsgICBwKys7CiAgICArIH0KICAgICsg ICAgICB3aGlsZSAoKnAgIT0gJ1wwJyk7CiAgICArCiAgICArICAgICAgcmV0 dXJuIDE7CiAgICArICAgIH0KICAgICsgIHJldHVybiAwOwogICAgK30KICAg ICsKICAgICsvKiBBbGxvY2F0ZSBhIE5VTUEgc3BpbmxvY2sgYW5kIHJldHVy biBhIHBvaW50ZXIgdG8gaXQuICBDYWxsZXIgc2hvdWxkCiAgICArICAgY2Fs bCBudW1hX3NwaW5sb2NrX2ZyZWUgb24gdGhlIE5VTUEgc3BpbmxvY2sgcG9p bnRlciB0byBmcmVlIHRoZQogICAgKyAgIG1lbW9yeSB3aGVuIGl0IGlzIG5v IGxvbmdlciBuZWVkZWQuICAqLwogICAgKwogICAgK3N0cnVjdCBudW1hX3Nw aW5sb2NrICoKICAgICtudW1hX3NwaW5sb2NrX2FsbG9jICh2b2lkKQogICAg K3sKICAgICsgIGNvbnN0IHNpemVfdCBidWZmZXJfc2l6ZSA9IDEwMjQ7CiAg ICArICBjaGFyIGJ1ZmZlcltidWZmZXJfc2l6ZV07CiAgICArICBjaGFyICpi dWZmZXJfZW5kID0gYnVmZmVyICsgYnVmZmVyX3NpemU7CiAgICArICBjaGFy ICpjcCA9IGJ1ZmZlcl9lbmQ7CiAgICArICBjaGFyICpyZSA9IGJ1ZmZlcl9l bmQ7CiAgICArCiAgICArICBjb25zdCBpbnQgZmxhZ3MgPSBPX1JET05MWSB8 IE9fQ0xPRVhFQzsKICAgICsgIGludCBmZCA9IF9fb3Blbl9ub2NhbmNlbCAo Ii9zeXMvZGV2aWNlcy9zeXN0ZW0vbm9kZS9vbmxpbmUiLCBmbGFncyk7CiAg ICArICBjaGFyICpsOwogICAgKyAgdW5zaWduZWQgaW50IG1heF9ub2RlID0g MDsKICAgICsgIHVuc2lnbmVkIGludCBub2RlX2NvdW50ID0gMDsKICAgICsg IGlmIChmZCAhPSAtMSkKICAgICsgICAgewogICAgKyAgICAgIGwgPSBuZXh0 X2xpbmUgKGZkLCBidWZmZXIsICZjcCwgJnJlLCBidWZmZXJfZW5kKTsKICAg ICsgICAgICBpZiAobCAhPSBOVUxMKQogICAgKyBkbwogICAgKyAgIHsKICAg ICsgICAgIGNoYXIgKmVuZHA7CiAgICArICAgICB1bnNpZ25lZCBsb25nIGlu dCBuID0gc3RydG91bCAobCwgJmVuZHAsIDEwKTsKICAgICsgICAgIGlmIChs ID09IGVuZHApCiAgICArICAgICAgIHsKICAgICsgIG5vZGVfY291bnQgPSAx OwogICAgKyAgYnJlYWs7CiAgICArICAgICAgIH0KICAgICsKICAgICsgICAg IHVuc2lnbmVkIGxvbmcgaW50IG0gPSBuOwogICAgKyAgICAgaWYgKCplbmRw ID09ICctJykKICAgICsgICAgICAgewogICAgKyAgbCA9IGVuZHAgKyAxOwog ICAgKyAgbSA9IHN0cnRvdWwgKGwsICZlbmRwLCAxMCk7CiAgICArICBpZiAo bCA9PSBlbmRwKQogICAgKyAgICB7CiAgICArICAgICAgbm9kZV9jb3VudCA9 IDE7CiAgICArICAgICAgYnJlYWs7CiAgICArICAgIH0KICAgICsgICAgICAg fQogICAgKwogICAgKyAgICAgbm9kZV9jb3VudCArPSBtIC0gbiArIDE7CiAg ICArCiAgICArICAgICBpZiAobSA+PSBtYXhfbm9kZSkKICAgICsgICAgICAg bWF4X25vZGUgPSBtOwogICAgKwogICAgKyAgICAgbCA9IGVuZHA7CiAgICAr ICAgICB3aGlsZSAobCA8IHJlICYmIGlzc3BhY2UgKCpsKSkKICAgICsgICAg ICAgKytsOwogICAgKyAgIH0KICAgICsgd2hpbGUgKGwgPCByZSk7CiAgICAr CiAgICArICAgICAgX19jbG9zZV9ub2NhbmNlbF9ub3N0YXR1cyAoZmQpOwog ICAgKyAgICB9CiAgICArCiAgICArICAvKiBOQjogU29tZSBOVU1BIG5vZGVz IG1heSBub3QgYmUgYXZhaWxhYmxlLCBpZiB0aGUgbnVtYmVyIG9mIE5VTUEK ICAgICsgICAgIG5vZGVzIGlzIDEsIHNldCB0aGUgbWF4aW1pdW0gTlVNQSBu b2RlIG51bWJlciB0byAwLiAgKi8KICAgICsgIGlmIChub2RlX2NvdW50ID09 IDEpCiAgICArICAgIG1heF9ub2RlID0gMDsKICAgICsKICAgICsgIHVuc2ln bmVkIGludCBtYXhfY3B1ID0gMDsKICAgICsgIHVuc2lnbmVkIGludCAqcGh5 c2ljYWxfcGFja2FnZV9pZF9wID0gTlVMTDsKICAgICsKICAgICsgIGlmICht YXhfbm9kZSA9PSAwKQogICAgKyAgICB7CiAgICArICAgICAgLyogVGhlcmUg aXMgYXQgbGVhc3QgMSBub2RlLiAgKi8KICAgICsgICAgICBub2RlX2NvdW50 ID0gMTsKICAgICsKICAgICsgICAgICAvKiBJZiBOVU1BIGlzIGRpc2FibGVk LCB1c2UgcGh5c2ljYWxfcGFja2FnZV9pZCBpbnN0ZWFkLiAgKi8KICAgICsg ICAgICBzdHJ1Y3QgZGlyZW50ICoqY3B1X2xpc3Q7CiAgICArICAgICAgaW50 IG5wcm9jcyA9IHNjYW5kaXIgKCIvc3lzL2RldmljZXMvc3lzdGVtL2NwdSIs ICZjcHVfbGlzdCwKICAgICsgICAgICAgc2VsZWN0X2NwdSwgTlVMTCk7CiAg ICArICAgICAgaWYgKG5wcm9jcyA+IDApCiAgICArIHsKICAgICsgICBpbnQg aTsKICAgICsgICB1bnNpZ25lZCBpbnQgKmNwdV9pZF9wID0gTlVMTDsKICAg ICsKICAgICsgICAvKiBGaW5kIHRoZSBtYXhpbXVtIENQVSBudW1iZXIuICAq LwogICAgKyAgIGlmIChwb3NpeF9tZW1hbGlnbiAoKHZvaWQgKiopICZjcHVf aWRfcCwKICAgICsgICAgICAgICBfX2FsaWdub2ZfXyAodm9pZCAqKSwKICAg ICsgICAgICAgICBucHJvY3MgKiBzaXplb2YgKHVuc2lnbmVkIGludCkpID09 IDApCiAgICArICAgICB7CiAgICArICAgICAgIGZvciAoaSA9IDA7IGkgPCBu cHJvY3M7IGkrKykKICAgICsgIHsKICAgICsgICAgdW5zaWduZWQgaW50IGNw dV9pZAogICAgKyAgICAgID0gc3RydG91bCAoY3B1X2xpc3RbaV0tPmRfbmFt ZSArIDMsIE5VTEwsIDEwKTsKICAgICsgICAgY3B1X2lkX3BbaV0gPSBjcHVf aWQ7CiAgICArICAgIGlmIChjcHVfaWQgPiBtYXhfY3B1KQogICAgKyAgICAg IG1heF9jcHUgPSBjcHVfaWQ7CiAgICArICB9CiAgICArCiAgICArICAgICAg IGlmIChwb3NpeF9tZW1hbGlnbiAoKHZvaWQgKiopICZwaHlzaWNhbF9wYWNr YWdlX2lkX3AsCiAgICArICAgICAgX19hbGlnbm9mX18gKHZvaWQgKiksCiAg ICArICAgICAgKChtYXhfY3B1ICsgMSkKICAgICsgICAgICAgKiBzaXplb2Yg KHVuc2lnbmVkIGludCkpKSA9PSAwKQogICAgKyAgewogICAgKyAgICBtZW1z ZXQgKHBoeXNpY2FsX3BhY2thZ2VfaWRfcCwgMCwKICAgICsgICAgICgobWF4 X2NwdSArIDEpICogc2l6ZW9mICh1bnNpZ25lZCBpbnQpKSk7CiAgICArCiAg ICArICAgIG1heF9ub2RlID0gVUlOVF9NQVg7CiAgICArCiAgICArICAgIC8q IEdldCBwaHlzaWNhbF9wYWNrYWdlX2lkLiAgKi8KICAgICsgICAgY2hhciBw YXRoWyhzaXplb2YgKCIvc3lzL2RldmljZXMvc3lzdGVtL2NwdSIpCiAgICAr ICAgICAgICArIDMgKiBzaXplb2YgKHVuc2lnbmVkIGxvbmcgaW50KQogICAg KyAgICAgICAgKyBzaXplb2YgKCIvdG9wb2xvZ3kvcGh5c2ljYWxfcGFja2Fn ZV9pZCIpKV07CiAgICArICAgIGZvciAoaSA9IDA7IGkgPCBucHJvY3M7IGkr KykKICAgICsgICAgICB7CiAgICArICAgICAgICBzdHJ1Y3QgZGlyZW50ICpk ID0gY3B1X2xpc3RbaV07CiAgICArICAgICAgICBpZiAoc25wcmludGYgKHBh dGgsIHNpemVvZiAocGF0aCksCiAgICArICAgICAgICAiL3N5cy9kZXZpY2Vz L3N5c3RlbS9jcHUvJXMvdG9wb2xvZ3kvcGh5c2ljYWxfcGFja2FnZV9pZCIs CiAgICArICAgICAgICBkLT5kX25hbWUpID4gMCkKICAgICsgICB7CiAgICAr ICAgICBmZCA9IF9fb3Blbl9ub2NhbmNlbCAocGF0aCwgZmxhZ3MpOwogICAg KyAgICAgaWYgKGZkICE9IC0xKQogICAgKyAgICAgICB7CiAgICArICAgICAg ICAgaWYgKF9fcmVhZF9ub2NhbmNlbCAoZmQsIGJ1ZmZlciwKICAgICsgICAg ICAgICBidWZmZXJfc2l6ZSkgPiAwKQogICAgKyAgICB7CiAgICArICAgICAg Y2hhciAqZW5kcDsKICAgICsgICAgICB1bnNpZ25lZCBsb25nIGludCBwYWNr YWdlX2lkCiAgICArICAgICAgICA9IHN0cnRvdWwgKGJ1ZmZlciwgJmVuZHAs IDEwKTsKICAgICsgICAgICBpZiAocGFja2FnZV9pZCAhPSBVTE9OR19NQVgK ICAgICsgICAgICAgICAgJiYgKmJ1ZmZlciAhPSAnXDAnCiAgICArICAgICAg ICAgICYmICgqZW5kcCA9PSAnXDAnIHx8ICplbmRwID09ICdcbicpKQogICAg KyAgICAgICAgewogICAgKyAgICAgICAgICBwaHlzaWNhbF9wYWNrYWdlX2lk X3BbY3B1X2lkX3BbaV1dCiAgICArICAgICA9IHBhY2thZ2VfaWQ7CiAgICAr ICAgICAgICAgIGlmIChtYXhfbm9kZSA9PSBVSU5UX01BWCkKICAgICsgICAg IHsKICAgICsgICAgICAgLyogVGhpcyBpcyB0aGUgZmlyc3Qgbm9kZS4gICov CiAgICArICAgICAgIG1heF9ub2RlID0gcGFja2FnZV9pZDsKICAgICsgICAg IH0KICAgICsgICAgICAgICAgZWxzZSBpZiAocGFja2FnZV9pZCAhPSBtYXhf bm9kZSkKICAgICsgICAgIHsKICAgICsgICAgICAgLyogTkI6IFdlIG9ubHkg bmVlZCB0byBrbm93IGlmCiAgICArICAgICAgICAgIE5PREVfQ09VTlQgPiAx LiAgKi8KICAgICsgICAgICAgbm9kZV9jb3VudCA9IDI7CiAgICArICAgICAg IGlmIChwYWNrYWdlX2lkID4gbWF4X25vZGUpCiAgICArICAgICAgICAgbWF4 X25vZGUgPSBwYWNrYWdlX2lkOwogICAgKyAgICAgfQogICAgKyAgICAgICAg fQogICAgKyAgICB9CiAgICArICAgICAgICAgX19jbG9zZV9ub2NhbmNlbF9u b3N0YXR1cyAoZmQpOwogICAgKyAgICAgICB9CiAgICArICAgfQogICAgKwog ICAgKyAgICAgICAgZnJlZSAoZCk7CiAgICArICAgICAgfQogICAgKyAgfQog ICAgKwogICAgKyAgICAgICBmcmVlIChjcHVfaWRfcCk7CiAgICArICAgICB9 CiAgICArICAgZWxzZQogICAgKyAgICAgewogICAgKyAgICAgICBmb3IgKGkg PSAwOyBpIDwgbnByb2NzOyBpKyspCiAgICArICBmcmVlIChjcHVfbGlzdFtp XSk7CiAgICArICAgICB9CiAgICArCiAgICArICAgZnJlZSAoY3B1X2xpc3Qp OwogICAgKyB9CiAgICArICAgIH0KICAgICsKICAgICsgIGlmIChwaHlzaWNh bF9wYWNrYWdlX2lkX3AgIT0gTlVMTCAmJiBub2RlX2NvdW50ID09IDEpCiAg ICArICAgIHsKICAgICsgICAgICAvKiBUaGVyZSBpcyBvbmx5IG9uZSBub2Rl LiAgTm8gbmVlZCBmb3IgcGh5c2ljYWxfcGFja2FnZV9pZF9wLiAgKi8KICAg ICsgICAgICBmcmVlIChwaHlzaWNhbF9wYWNrYWdlX2lkX3ApOwogICAgKyAg ICAgIHBoeXNpY2FsX3BhY2thZ2VfaWRfcCA9IE5VTEw7CiAgICArICAgICAg bWF4X2NwdSA9IDA7CiAgICArICAgIH0KICAgICsKICAgICsgIC8qIEFsbG9j YXRlIGFuIGFycmF5IG9mIHN0cnVjdCBudW1hX3NwaW5sb2NrX2luZm8gcG9p bnRlcnMgdG8gaG9sZCBpbmZvCiAgICArICAgICBmb3IgYWxsIE5VTUEgbm9k ZXMgd2l0aCBOVU1BIG5vZGUgbnVtYmVyIGZyb20gZ2V0Y3B1ICgpIGFzIGlu ZGV4LiAgKi8KICAgICsgIHNpemVfdCBzaXplID0gKHNpemVvZiAoc3RydWN0 IG51bWFfc3BpbmxvY2spCiAgICArICAgKyAoKG1heF9ub2RlICsgMSkKICAg ICsgICAgICAqIHNpemVvZiAoc3RydWN0IG51bWFfc3BpbmxvY2tfaW5mbyAq KSkpOwogICAgKyAgc3RydWN0IG51bWFfc3BpbmxvY2sgKmxvY2s7CiAgICAr ICBpZiAocG9zaXhfbWVtYWxpZ24gKCh2b2lkICoqKSAmbG9jaywKICAgICsg ICAgICAgIF9fYWxpZ25vZl9fIChzdHJ1Y3QgbnVtYV9zcGlubG9ja19pbmZv ICopLCBzaXplKSkKICAgICsgICAgcmV0dXJuIE5VTEw7CiAgICArICBtZW1z ZXQgKGxvY2ssIDAsIHNpemUpOwogICAgKwogICAgKyAgbG9jay0+bWF4X25v ZGUgPSBtYXhfbm9kZTsKICAgICsgIGxvY2stPnNpbmdsZV9ub2RlID0gbm9k ZV9jb3VudCA9PSAxOwogICAgKyAgbG9jay0+bWF4X2NwdSA9IG1heF9jcHU7 CiAgICArICBsb2NrLT5waHlzaWNhbF9wYWNrYWdlX2lkX3AgPSBwaHlzaWNh bF9wYWNrYWdlX2lkX3A7CiAgICArCiAgICArICByZXR1cm4gbG9jazsKICAg ICt9CiAgICBkaWZmIC0tZ2l0IGEvc3lzZGVwcy91bml4L3N5c3YvbGludXgv cG93ZXJwYy9wb3dlcnBjMzIvbGlicHRocmVhZC5hYmlsaXN0IGIvc3lzZGVw cy91bml4L3N5c3YvbGludXgvcG93ZXJwYy9wb3dlcnBjMzIvbGlicHRocmVh ZC5hYmlsaXN0CiAgICBpbmRleCAwOWU4NDQ3Li5kYmE3ZGY2IDEwMDY0NAog ICAgLS0tIGEvc3lzZGVwcy91bml4L3N5c3YvbGludXgvcG93ZXJwYy9wb3dl cnBjMzIvbGlicHRocmVhZC5hYmlsaXN0CiAgICArKysgYi9zeXNkZXBzL3Vu aXgvc3lzdi9saW51eC9wb3dlcnBjL3Bvd2VycGMzMi9saWJwdGhyZWFkLmFi aWxpc3QKICAgIEBAIC0yMjcsNiArMjI3LDEwIEBAIEdMSUJDXzIuMjggdHNz X2NyZWF0ZSBGCiAgICAgR0xJQkNfMi4yOCB0c3NfZGVsZXRlIEYKICAgICBH TElCQ18yLjI4IHRzc19nZXQgRgogICAgIEdMSUJDXzIuMjggdHNzX3NldCBG CiAgICArR0xJQkNfMi4yOSBudW1hX3NwaW5sb2NrX2FsbG9jIEYKICAgICtH TElCQ18yLjI5IG51bWFfc3BpbmxvY2tfYXBwbHkgRgogICAgK0dMSUJDXzIu MjkgbnVtYV9zcGlubG9ja19mcmVlIEYKICAgICtHTElCQ18yLjI5IG51bWFf c3BpbmxvY2tfaW5pdCBGCiAgICAgR0xJQkNfMi4zLjIgcHRocmVhZF9jb25k X2Jyb2FkY2FzdCBGCiAgICAgR0xJQkNfMi4zLjIgcHRocmVhZF9jb25kX2Rl c3Ryb3kgRgogICAgIEdMSUJDXzIuMy4yIHB0aHJlYWRfY29uZF9pbml0IEYK ICAgIGRpZmYgLS1naXQgYS9zeXNkZXBzL3VuaXgvc3lzdi9saW51eC9wb3dl cnBjL3Bvd2VycGM2NC9iZS9saWJwdGhyZWFkLmFiaWxpc3QgYi9zeXNkZXBz L3VuaXgvc3lzdi9saW51eC9wb3dlcnBjL3Bvd2VycGM2NC9iZS9saWJwdGhy ZWFkLmFiaWxpc3QKICAgIGluZGV4IDgzMDA5NTguLmE3NjNjMGEgMTAwNjQ0 CiAgICAtLS0gYS9zeXNkZXBzL3VuaXgvc3lzdi9saW51eC9wb3dlcnBjL3Bv d2VycGM2NC9iZS9saWJwdGhyZWFkLmFiaWxpc3QKICAgICsrKyBiL3N5c2Rl cHMvdW5peC9zeXN2L2xpbnV4L3Bvd2VycGMvcG93ZXJwYzY0L2JlL2xpYnB0 aHJlYWQuYWJpbGlzdAogICAgQEAgLTI3LDYgKzI3LDEwIEBAIEdMSUJDXzIu MjggdHNzX2NyZWF0ZSBGCiAgICAgR0xJQkNfMi4yOCB0c3NfZGVsZXRlIEYK ICAgICBHTElCQ18yLjI4IHRzc19nZXQgRgogICAgIEdMSUJDXzIuMjggdHNz X3NldCBGCiAgICArR0xJQkNfMi4yOSBudW1hX3NwaW5sb2NrX2FsbG9jIEYK ICAgICtHTElCQ18yLjI5IG51bWFfc3BpbmxvY2tfYXBwbHkgRgogICAgK0dM SUJDXzIuMjkgbnVtYV9zcGlubG9ja19mcmVlIEYKICAgICtHTElCQ18yLjI5 IG51bWFfc3BpbmxvY2tfaW5pdCBGCiAgICAgR0xJQkNfMi4zIF9JT19mbG9j a2ZpbGUgRgogICAgIEdMSUJDXzIuMyBfSU9fZnRyeWxvY2tmaWxlIEYKICAg ICBHTElCQ18yLjMgX0lPX2Z1bmxvY2tmaWxlIEYKICAgIGRpZmYgLS1naXQg YS9zeXNkZXBzL3VuaXgvc3lzdi9saW51eC9wb3dlcnBjL3Bvd2VycGM2NC9s ZS9saWJwdGhyZWFkLmFiaWxpc3QgYi9zeXNkZXBzL3VuaXgvc3lzdi9saW51 eC9wb3dlcnBjL3Bvd2VycGM2NC9sZS9saWJwdGhyZWFkLmFiaWxpc3QKICAg IGluZGV4IDlhOWU0Y2UuLmViNTRhODMgMTAwNjQ0CiAgICAtLS0gYS9zeXNk ZXBzL3VuaXgvc3lzdi9saW51eC9wb3dlcnBjL3Bvd2VycGM2NC9sZS9saWJw dGhyZWFkLmFiaWxpc3QKICAgICsrKyBiL3N5c2RlcHMvdW5peC9zeXN2L2xp bnV4L3Bvd2VycGMvcG93ZXJwYzY0L2xlL2xpYnB0aHJlYWQuYWJpbGlzdAog ICAgQEAgLTI0MywzICsyNDMsNyBAQCBHTElCQ18yLjI4IHRzc19jcmVhdGUg RgogICAgIEdMSUJDXzIuMjggdHNzX2RlbGV0ZSBGCiAgICAgR0xJQkNfMi4y OCB0c3NfZ2V0IEYKICAgICBHTElCQ18yLjI4IHRzc19zZXQgRgogICAgK0dM SUJDXzIuMjkgbnVtYV9zcGlubG9ja19hbGxvYyBGCiAgICArR0xJQkNfMi4y OSBudW1hX3NwaW5sb2NrX2FwcGx5IEYKICAgICtHTElCQ18yLjI5IG51bWFf c3BpbmxvY2tfZnJlZSBGCiAgICArR0xJQkNfMi4yOSBudW1hX3NwaW5sb2Nr X2luaXQgRgogICAgZGlmZiAtLWdpdCBhL3N5c2RlcHMvdW5peC9zeXN2L2xp bnV4L3Jpc2N2L3J2NjQvbGlicHRocmVhZC5hYmlsaXN0IGIvc3lzZGVwcy91 bml4L3N5c3YvbGludXgvcmlzY3YvcnY2NC9saWJwdGhyZWFkLmFiaWxpc3QK ICAgIGluZGV4IGMzNzBmZGEuLjM2NmZjYWMgMTAwNjQ0CiAgICAtLS0gYS9z eXNkZXBzL3VuaXgvc3lzdi9saW51eC9yaXNjdi9ydjY0L2xpYnB0aHJlYWQu YWJpbGlzdAogICAgKysrIGIvc3lzZGVwcy91bml4L3N5c3YvbGludXgvcmlz Y3YvcnY2NC9saWJwdGhyZWFkLmFiaWxpc3QKICAgIEBAIC0yMzUsMyArMjM1 LDcgQEAgR0xJQkNfMi4yOCB0c3NfY3JlYXRlIEYKICAgICBHTElCQ18yLjI4 IHRzc19kZWxldGUgRgogICAgIEdMSUJDXzIuMjggdHNzX2dldCBGCiAgICAg R0xJQkNfMi4yOCB0c3Nfc2V0IEYKICAgICtHTElCQ18yLjI5IG51bWFfc3Bp bmxvY2tfYWxsb2MgRgogICAgK0dMSUJDXzIuMjkgbnVtYV9zcGlubG9ja19h cHBseSBGCiAgICArR0xJQkNfMi4yOSBudW1hX3NwaW5sb2NrX2ZyZWUgRgog ICAgK0dMSUJDXzIuMjkgbnVtYV9zcGlubG9ja19pbml0IEYKICAgIGRpZmYg LS1naXQgYS9zeXNkZXBzL3VuaXgvc3lzdi9saW51eC9zMzkwL3MzOTAtMzIv bGlicHRocmVhZC5hYmlsaXN0IGIvc3lzZGVwcy91bml4L3N5c3YvbGludXgv czM5MC9zMzkwLTMyL2xpYnB0aHJlYWQuYWJpbGlzdAogICAgaW5kZXggZDA1 NDY4Zi4uNzg2ZDhlMSAxMDA2NDQKICAgIC0tLSBhL3N5c2RlcHMvdW5peC9z eXN2L2xpbnV4L3MzOTAvczM5MC0zMi9saWJwdGhyZWFkLmFiaWxpc3QKICAg ICsrKyBiL3N5c2RlcHMvdW5peC9zeXN2L2xpbnV4L3MzOTAvczM5MC0zMi9s aWJwdGhyZWFkLmFiaWxpc3QKICAgIEBAIC0yMjksNiArMjI5LDEwIEBAIEdM SUJDXzIuMjggdHNzX2NyZWF0ZSBGCiAgICAgR0xJQkNfMi4yOCB0c3NfZGVs ZXRlIEYKICAgICBHTElCQ18yLjI4IHRzc19nZXQgRgogICAgIEdMSUJDXzIu MjggdHNzX3NldCBGCiAgICArR0xJQkNfMi4yOSBudW1hX3NwaW5sb2NrX2Fs bG9jIEYKICAgICtHTElCQ18yLjI5IG51bWFfc3BpbmxvY2tfYXBwbHkgRgog ICAgK0dMSUJDXzIuMjkgbnVtYV9zcGlubG9ja19mcmVlIEYKICAgICtHTElC Q18yLjI5IG51bWFfc3BpbmxvY2tfaW5pdCBGCiAgICAgR0xJQkNfMi4zLjIg cHRocmVhZF9jb25kX2Jyb2FkY2FzdCBGCiAgICAgR0xJQkNfMi4zLjIgcHRo cmVhZF9jb25kX2Rlc3Ryb3kgRgogICAgIEdMSUJDXzIuMy4yIHB0aHJlYWRf Y29uZF9pbml0IEYKICAgIGRpZmYgLS1naXQgYS9zeXNkZXBzL3VuaXgvc3lz di9saW51eC9zMzkwL3MzOTAtNjQvbGlicHRocmVhZC5hYmlsaXN0IGIvc3lz ZGVwcy91bml4L3N5c3YvbGludXgvczM5MC9zMzkwLTY0L2xpYnB0aHJlYWQu YWJpbGlzdAogICAgaW5kZXggZTgxNjFhYS4uZGQ3YzUyZiAxMDA2NDQKICAg IC0tLSBhL3N5c2RlcHMvdW5peC9zeXN2L2xpbnV4L3MzOTAvczM5MC02NC9s aWJwdGhyZWFkLmFiaWxpc3QKICAgICsrKyBiL3N5c2RlcHMvdW5peC9zeXN2 L2xpbnV4L3MzOTAvczM5MC02NC9saWJwdGhyZWFkLmFiaWxpc3QKICAgIEBA IC0yMjEsNiArMjIxLDEwIEBAIEdMSUJDXzIuMjggdHNzX2NyZWF0ZSBGCiAg ICAgR0xJQkNfMi4yOCB0c3NfZGVsZXRlIEYKICAgICBHTElCQ18yLjI4IHRz c19nZXQgRgogICAgIEdMSUJDXzIuMjggdHNzX3NldCBGCiAgICArR0xJQkNf Mi4yOSBudW1hX3NwaW5sb2NrX2FsbG9jIEYKICAgICtHTElCQ18yLjI5IG51 bWFfc3BpbmxvY2tfYXBwbHkgRgogICAgK0dMSUJDXzIuMjkgbnVtYV9zcGlu bG9ja19mcmVlIEYKICAgICtHTElCQ18yLjI5IG51bWFfc3BpbmxvY2tfaW5p dCBGCiAgICAgR0xJQkNfMi4zLjIgcHRocmVhZF9jb25kX2Jyb2FkY2FzdCBG CiAgICAgR0xJQkNfMi4zLjIgcHRocmVhZF9jb25kX2Rlc3Ryb3kgRgogICAg IEdMSUJDXzIuMy4yIHB0aHJlYWRfY29uZF9pbml0IEYKICAgIGRpZmYgLS1n aXQgYS9zeXNkZXBzL3VuaXgvc3lzdi9saW51eC9zaC9saWJwdGhyZWFkLmFi aWxpc3QgYi9zeXNkZXBzL3VuaXgvc3lzdi9saW51eC9zaC9saWJwdGhyZWFk LmFiaWxpc3QKICAgIGluZGV4IGJjYmEwN2YuLmE4MDQ3NWYgMTAwNjQ0CiAg ICAtLS0gYS9zeXNkZXBzL3VuaXgvc3lzdi9saW51eC9zaC9saWJwdGhyZWFk LmFiaWxpc3QKICAgICsrKyBiL3N5c2RlcHMvdW5peC9zeXN2L2xpbnV4L3No L2xpYnB0aHJlYWQuYWJpbGlzdAogICAgQEAgLTIxOSw2ICsyMTksMTAgQEAg R0xJQkNfMi4yOCB0c3NfY3JlYXRlIEYKICAgICBHTElCQ18yLjI4IHRzc19k ZWxldGUgRgogICAgIEdMSUJDXzIuMjggdHNzX2dldCBGCiAgICAgR0xJQkNf Mi4yOCB0c3Nfc2V0IEYKICAgICtHTElCQ18yLjI5IG51bWFfc3BpbmxvY2tf YWxsb2MgRgogICAgK0dMSUJDXzIuMjkgbnVtYV9zcGlubG9ja19hcHBseSBG CiAgICArR0xJQkNfMi4yOSBudW1hX3NwaW5sb2NrX2ZyZWUgRgogICAgK0dM SUJDXzIuMjkgbnVtYV9zcGlubG9ja19pbml0IEYKICAgICBHTElCQ18yLjMu MiBwdGhyZWFkX2NvbmRfYnJvYWRjYXN0IEYKICAgICBHTElCQ18yLjMuMiBw dGhyZWFkX2NvbmRfZGVzdHJveSBGCiAgICAgR0xJQkNfMi4zLjIgcHRocmVh ZF9jb25kX2luaXQgRgogICAgZGlmZiAtLWdpdCBhL3N5c2RlcHMvdW5peC9z eXN2L2xpbnV4L3NwYXJjL3NwYXJjMzIvbGlicHRocmVhZC5hYmlsaXN0IGIv c3lzZGVwcy91bml4L3N5c3YvbGludXgvc3BhcmMvc3BhcmMzMi9saWJwdGhy ZWFkLmFiaWxpc3QKICAgIGluZGV4IGI0MTMwMDcuLmRkMDg3OTYgMTAwNjQ0 CiAgICAtLS0gYS9zeXNkZXBzL3VuaXgvc3lzdi9saW51eC9zcGFyYy9zcGFy YzMyL2xpYnB0aHJlYWQuYWJpbGlzdAogICAgKysrIGIvc3lzZGVwcy91bml4 L3N5c3YvbGludXgvc3BhcmMvc3BhcmMzMi9saWJwdGhyZWFkLmFiaWxpc3QK ICAgIEBAIC0yMjcsNiArMjI3LDEwIEBAIEdMSUJDXzIuMjggdHNzX2NyZWF0 ZSBGCiAgICAgR0xJQkNfMi4yOCB0c3NfZGVsZXRlIEYKICAgICBHTElCQ18y LjI4IHRzc19nZXQgRgogICAgIEdMSUJDXzIuMjggdHNzX3NldCBGCiAgICAr R0xJQkNfMi4yOSBudW1hX3NwaW5sb2NrX2FsbG9jIEYKICAgICtHTElCQ18y LjI5IG51bWFfc3BpbmxvY2tfYXBwbHkgRgogICAgK0dMSUJDXzIuMjkgbnVt YV9zcGlubG9ja19mcmVlIEYKICAgICtHTElCQ18yLjI5IG51bWFfc3Bpbmxv Y2tfaW5pdCBGCiAgICAgR0xJQkNfMi4zLjIgcHRocmVhZF9jb25kX2Jyb2Fk Y2FzdCBGCiAgICAgR0xJQkNfMi4zLjIgcHRocmVhZF9jb25kX2Rlc3Ryb3kg RgogICAgIEdMSUJDXzIuMy4yIHB0aHJlYWRfY29uZF9pbml0IEYKICAgIGRp ZmYgLS1naXQgYS9zeXNkZXBzL3VuaXgvc3lzdi9saW51eC9zcGFyYy9zcGFy YzY0L2xpYnB0aHJlYWQuYWJpbGlzdCBiL3N5c2RlcHMvdW5peC9zeXN2L2xp bnV4L3NwYXJjL3NwYXJjNjQvbGlicHRocmVhZC5hYmlsaXN0CiAgICBpbmRl eCBjY2M5NDQ5Li41YjE5MGY2IDEwMDY0NAogICAgLS0tIGEvc3lzZGVwcy91 bml4L3N5c3YvbGludXgvc3BhcmMvc3BhcmM2NC9saWJwdGhyZWFkLmFiaWxp c3QKICAgICsrKyBiL3N5c2RlcHMvdW5peC9zeXN2L2xpbnV4L3NwYXJjL3Nw YXJjNjQvbGlicHRocmVhZC5hYmlsaXN0CiAgICBAQCAtMjE5LDYgKzIxOSwx MCBAQCBHTElCQ18yLjI4IHRzc19jcmVhdGUgRgogICAgIEdMSUJDXzIuMjgg dHNzX2RlbGV0ZSBGCiAgICAgR0xJQkNfMi4yOCB0c3NfZ2V0IEYKICAgICBH TElCQ18yLjI4IHRzc19zZXQgRgogICAgK0dMSUJDXzIuMjkgbnVtYV9zcGlu bG9ja19hbGxvYyBGCiAgICArR0xJQkNfMi4yOSBudW1hX3NwaW5sb2NrX2Fw cGx5IEYKICAgICtHTElCQ18yLjI5IG51bWFfc3BpbmxvY2tfZnJlZSBGCiAg ICArR0xJQkNfMi4yOSBudW1hX3NwaW5sb2NrX2luaXQgRgogICAgIEdMSUJD XzIuMy4yIHB0aHJlYWRfY29uZF9icm9hZGNhc3QgRgogICAgIEdMSUJDXzIu My4yIHB0aHJlYWRfY29uZF9kZXN0cm95IEYKICAgICBHTElCQ18yLjMuMiBw dGhyZWFkX2NvbmRfaW5pdCBGCiAgICBkaWZmIC0tZ2l0IGEvc3lzZGVwcy91 bml4L3N5c3YvbGludXgveDg2L01ha2VmaWxlIGIvc3lzZGVwcy91bml4L3N5 c3YvbGludXgveDg2L01ha2VmaWxlCiAgICBpbmRleCAwMmNhMzZjLi4yOWQ0 MWFkIDEwMDY0NAogICAgLS0tIGEvc3lzZGVwcy91bml4L3N5c3YvbGludXgv eDg2L01ha2VmaWxlCiAgICArKysgYi9zeXNkZXBzL3VuaXgvc3lzdi9saW51 eC94ODYvTWFrZWZpbGUKICAgIEBAIC0xNCw2ICsxNCw3IEBAIGVuZGlmCiAg ICAgaWZlcSAoJChzdWJkaXIpLG5wdGwpCiAgICAgbGlicHRocmVhZC1zeXNk ZXBfcm91dGluZXMgKz0gZWxpc2lvbi1sb2NrIGVsaXNpb24tdW5sb2NrIGVs aXNpb24tdGltZWQgXAogICAgICAgICAgICAgIGVsaXNpb24tdHJ5bG9jawog ICAgK3h0ZXN0cyArPSB0c3QtdmFyaWFibGUtb3ZlcmhlYWQgdHN0LW51bWEt dmFyaWFibGUtb3ZlcmhlYWQKICAgICBDRkxBR1MtZWxpc2lvbi1sb2NrLmMg Kz0gLW1ydG0KICAgICBDRkxBR1MtZWxpc2lvbi11bmxvY2suYyArPSAtbXJ0 bQogICAgIENGTEFHUy1lbGlzaW9uLXRpbWVkLmMgKz0gLW1ydG0KICAgIGRp ZmYgLS1naXQgYS9zeXNkZXBzL3VuaXgvc3lzdi9saW51eC94ODYvdHN0LW51 bWEtdmFyaWFibGUtb3ZlcmhlYWQuYyBiL3N5c2RlcHMvdW5peC9zeXN2L2xp bnV4L3g4Ni90c3QtbnVtYS12YXJpYWJsZS1vdmVyaGVhZC5jCiAgICBuZXcg ZmlsZSBtb2RlIDEwMDY0NAogICAgaW5kZXggMDAwMDAwMC4uN2NiODU0Mgog ICAgLS0tIC9kZXYvbnVsbAogICAgKysrIGIvc3lzZGVwcy91bml4L3N5c3Yv bGludXgveDg2L3RzdC1udW1hLXZhcmlhYmxlLW92ZXJoZWFkLmMKICAgIEBA IC0wLDAgKzEsNTMgQEAKICAgICsvKiBUZXN0IGNhc2UgZm9yIE5VTUEgc3Bp bmxvY2sgb3ZlcmhlYWQuCiAgICArICAgQ29weXJpZ2h0IChDKSAyMDE4IEZy ZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgogICAgKyAgIFRoaXMgZmls ZSBpcyBwYXJ0IG9mIHRoZSBHTlUgQyBMaWJyYXJ5LgogICAgKwogICAgKyAg IFRoZSBHTlUgQyBMaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4g cmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICAgKyAgIG1vZGlmeSBpdCB1bmRl ciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMK ICAgICsgICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0 d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKICAgICsgICB2ZXJzaW9uIDIuMSBv ZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIg dmVyc2lvbi4KICAgICsKICAgICsgICBUaGUgR05VIEMgTGlicmFyeSBpcyBk aXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVs LAogICAgKyAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBl dmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiAgICArICAgTUVSQ0hBTlRB QklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAg U2VlIHRoZSBHTlUKICAgICsgICBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGlj ZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgogICAgKwogICAgKyAgIFlvdSBzaG91 bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2Vu ZXJhbCBQdWJsaWMKICAgICsgICBMaWNlbnNlIGFsb25nIHdpdGggdGhlIEdO VSBDIExpYnJhcnk7IGlmIG5vdCwgc2VlCiAgICArICAgPGh0dHA6Ly93d3cu Z251Lm9yZy9saWNlbnNlcy8+LiAgKi8KICAgICsKICAgICsjaWZuZGVmIF9H TlVfU09VUkNFCiAgICArIyBkZWZpbmUgX0dOVV9TT1VSQ0UKICAgICsjZW5k aWYKICAgICsjaW5jbHVkZSAibnVtYS1zcGlubG9jay5oIgogICAgKwogICAg K3N0cnVjdCBudW1hX3NwaW5sb2NrICpsb2NrOwogICAgKwogICAgK3N0cnVj dCB3b3JrX3RvZG9fYXJndW1lbnQKICAgICt7CiAgICArICB1bnNpZ25lZCBs b25nICp2MTsKICAgICsgIHVuc2lnbmVkIGxvbmcgKnYyOwogICAgKyAgdW5z aWduZWQgbG9uZyAqdjM7CiAgICArICB1bnNpZ25lZCBsb25nICp2NDsKICAg ICt9OwogICAgKwogICAgK3N0YXRpYyB2b2lkICoKICAgICt3b3JrX3RvZG8g KHZvaWQgKnYpCiAgICArewogICAgKyAgc3RydWN0IHdvcmtfdG9kb19hcmd1 bWVudCAqcCA9IHY7CiAgICArICB1bnNpZ25lZCBsb25nIHJldDsKICAgICsg ICpwLT52MSA9ICpwLT52MSArIDE7CiAgICArICAqcC0+djIgPSAqcC0+djIg KyAxOwogICAgKyAgcmV0ID0gX19zeW5jX3ZhbF9jb21wYXJlX2FuZF9zd2Fw IChwLT52NCwgMCwgMSk7CiAgICArICAqcC0+djMgPSAqcC0+djMgKyByZXQ7 CiAgICArICByZXR1cm4gKHZvaWQgKikgMjsKICAgICt9CiAgICArCiAgICAr c3RhdGljIGlubGluZSB2b2lkCiAgICArZG9fd29yayAoc3RydWN0IG51bWFf c3BpbmxvY2tfaW5mbyAqbG9ja19pbmZvKQogICAgK3sKICAgICsgIG51bWFf c3BpbmxvY2tfYXBwbHkgKGxvY2tfaW5mbyk7CiAgICArfQogICAgKwogICAg KyNkZWZpbmUgVVNFX05VTUFfU1BJTkxPQ0sKICAgICsjaW5jbHVkZSAidHN0 LXZhcmlhYmxlLW92ZXJoZWFkLXNrZWxldG9uLmMiCiAgICBkaWZmIC0tZ2l0 IGEvc3lzZGVwcy91bml4L3N5c3YvbGludXgveDg2L3RzdC12YXJpYWJsZS1v dmVyaGVhZC1za2VsZXRvbi5jIGIvc3lzZGVwcy91bml4L3N5c3YvbGludXgv eDg2L3RzdC12YXJpYWJsZS1vdmVyaGVhZC1za2VsZXRvbi5jCiAgICBuZXcg ZmlsZSBtb2RlIDEwMDY0NAogICAgaW5kZXggMDAwMDAwMC4uNGI4M2RmYgog ICAgLS0tIC9kZXYvbnVsbAogICAgKysrIGIvc3lzZGVwcy91bml4L3N5c3Yv bGludXgveDg2L3RzdC12YXJpYWJsZS1vdmVyaGVhZC1za2VsZXRvbi5jCiAg ICBAQCAtMCwwICsxLDM4NCBAQAogICAgKy8qIFRlc3QgY2FzZSBza2VsZXRv biBmb3Igc3BpbmxvY2sgb3ZlcmhlYWQuCiAgICArICAgQ29weXJpZ2h0IChD KSAyMDE4IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgogICAgKyAg IFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBHTlUgQyBMaWJyYXJ5LgogICAg KwogICAgKyAgIFRoZSBHTlUgQyBMaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7 IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICAgKyAgIG1vZGlm eSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJh bCBQdWJsaWMKICAgICsgICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUg RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKICAgICsgICB2ZXJz aW9uIDIuMSBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBh bnkgbGF0ZXIgdmVyc2lvbi4KICAgICsKICAgICsgICBUaGUgR05VIEMgTGli cmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwg YmUgdXNlZnVsLAogICAgKyAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsg d2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiAgICArICAg TUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQ VVJQT1NFLiAgU2VlIHRoZSBHTlUKICAgICsgICBMZXNzZXIgR2VuZXJhbCBQ dWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgogICAgKwogICAgKyAg IFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBM ZXNzZXIgR2VuZXJhbCBQdWJsaWMKICAgICsgICBMaWNlbnNlIGFsb25nIHdp dGggdGhlIEdOVSBDIExpYnJhcnk7IGlmIG5vdCwgc2VlCiAgICArICAgPGh0 dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LiAgKi8KICAgICsKICAgICsv KiBDaGVjayBzcGlubG9jayBvdmVyaGVhZCB3aXRoIGxhcmdlIG51bWJlciB0 aHJlYWRzLiAgQ3JpdGljYWwgcmVnaW9uIGlzCiAgICArICAgdmVyeSBzbW1h bGwuICBDcml0aWNhbCByZWdpb24gKyBzcGlubG9jayBvdmVyaGVhZCBhcmVu J3Qgbm90aWNlYWJsZQogICAgKyAgIHdoZW4gbnVtYmVyIG9mIHRocmVhZHMg aXMgc21hbGwuICBXaGVuIHRocmVhZCBudW1iZXIgaW5jcmVhc2VzLAogICAg KyAgIHNwaW5sb2NrIG92ZXJoZWFkIGJlY29tZSB0aGUgYm90dGxlbmVjay4g IEl0IHNob3dzIHVwIGluIHdhbGwgdGltZQogICAgKyAgIG9mIHRocmVhZCBl eGVjdXRpb24uICAqLwogICAgKwogICAgKyNpZm5kZWYgX0dOVV9TT1VSQ0UK ICAgICsjIGRlZmluZSBfR05VX1NPVVJDRQogICAgKyNlbmRpZgogICAgKyNp bmNsdWRlIDxjb25maWcuaD4KICAgICsjaW5jbHVkZSA8dW5pc3RkLmg+CiAg ICArI2luY2x1ZGUgPHN0ZGlvLmg+CiAgICArI2luY2x1ZGUgPHB0aHJlYWQu aD4KICAgICsjaW5jbHVkZSA8c2NoZWQuaD4KICAgICsjaW5jbHVkZSA8c3Rk bGliLmg+CiAgICArI2luY2x1ZGUgPHN0cmluZy5oPgogICAgKyNpbmNsdWRl IDxzdGRpbnQuaD4KICAgICsjaW5jbHVkZSA8c3lzL3RpbWUuaD4KICAgICsj aW5jbHVkZSA8c3lzL3BhcmFtLmg+CiAgICArI2luY2x1ZGUgPGVycm5vLmg+ CiAgICArI2lmZGVmIE1PRFVMRV9OQU1FCiAgICArIyBpbmNsdWRlIDxjcHUt ZmVhdHVyZXMuaD4KICAgICsjIGluY2x1ZGUgPHN1cHBvcnQvdGVzdC1kcml2 ZXIuaD4KICAgICsjZW5kaWYKICAgICsKICAgICsjaWZuZGVmIFVTRV9QVEhS RUFEX0FUVFJfU0VUQUZGSU5JVFlfTlAKICAgICsjIGRlZmluZSBVU0VfUFRI UkVBRF9BVFRSX1NFVEFGRklOSVRZX05QIDEKICAgICsjZW5kaWYKICAgICsK ICAgICsjZGVmaW5lIG1lbW9yeV9iYXJyaWVyKCkgX19hc20gKCIiIDo6OiAi bWVtb3J5IikKICAgICsjZGVmaW5lIHBhdXNlKCkgX19hc20gICgicmVwIDsg bm9wIiA6OjogIm1lbW9yeSIpCiAgICArCiAgICArI2RlZmluZSBDQUNIRUxJ TkVfU0laRSA2NAogICAgKyNkZWZpbmUgQ0FDSEVfQUxJR05FRCBfX2F0dHJp YnV0ZV9fKChhbGlnbmVkKENBQ0hFTElORV9TSVpFKSkpCiAgICArCiAgICAr I2RlZmluZSBjb25zdGFudF90aW1lIDUKICAgICt1bnNpZ25lZCBsb25nIGdf dmFsIENBQ0hFX0FMSUdORUQ7CiAgICArdW5zaWduZWQgbG9uZyBnX3ZhbDIg Q0FDSEVfQUxJR05FRDsKICAgICt1bnNpZ25lZCBsb25nIGdfdmFsMyBDQUNI RV9BTElHTkVEOwogICAgK3Vuc2lnbmVkIGxvbmcgY21wbG9jayBDQUNIRV9B TElHTkVEOwogICAgK3N0cnVjdCBjb3VudAogICAgK3sKICAgICsgIHVuc2ln bmVkIGxvbmcgbG9uZyB0b3RhbDsKICAgICsgIHVuc2lnbmVkIGxvbmcgbG9u ZyBzcGlubG9jazsKICAgICsgIHVuc2lnbmVkIGxvbmcgbG9uZyB3YWxsOwog ICAgK30gX19hdHRyaWJ1dGVfXygoYWxpZ25lZCgxMjgpKSk7CiAgICArCiAg ICArc3RydWN0IGNvdW50ICpnY291bnQ7CiAgICArCiAgICArLyogVGhlIHRp bWUgY29uc3VtZWQgYnkgb25lIHVwZGF0ZSBpcyBhYm91dCAyMDAgVFNDcy4g ICovCiAgICArc3RhdGljIGludCBkZWxheV90aW1lX3VubG9ja2VkID0gNDAw OwogICAgKwogICAgK3N0cnVjdCBvcHMKICAgICt7CiAgICArICB2b2lkICoo KnRlc3QpICh2b2lkICphcmcpOwogICAgKyAgdm9pZCAoKnByaW50X3RocmVh ZCkgKHZvaWQgKnJlcywgaW50KTsKICAgICt9ICpvcHM7CiAgICArCiAgICAr c3RydWN0IHN0YXRzX3Jlc3VsdAogICAgK3sKICAgICsgIHVuc2lnbmVkIGxv bmcgbnVtOwogICAgK307CiAgICArCiAgICArdm9pZCAqd29ya190aHJlYWQg KHZvaWQgKmFyZyk7CiAgICArCiAgICArI2RlZmluZSBpdGVyYXRpb25zICgx MDAwMCAqIDUpCiAgICArCiAgICArc3RhdGljIHZvbGF0aWxlIGludCBzdGFy dF90aHJlYWQ7CiAgICArCiAgICArLyogRGVsYXkgc29tZSBmaXhlZCB0aW1l ICovCiAgICArc3RhdGljIHZvaWQKICAgICtkZWxheV90c2MgKHVuc2lnbmVk IG4pCiAgICArewogICAgKyAgdW5zaWduZWQgbG9uZyBsb25nIHN0YXJ0LCBj dXJyZW50LCBkaWZmOwogICAgKyAgdW5zaWduZWQgaW50IGF1eDsKICAgICsg IHN0YXJ0ID0gX19idWlsdGluX2lhMzJfcmR0c2NwICgmYXV4KTsKICAgICsg IHdoaWxlICgxKQogICAgKyAgICB7CiAgICArICAgICAgY3VycmVudCA9IF9f YnVpbHRpbl9pYTMyX3JkdHNjcCAoJmF1eCk7CiAgICArICAgICAgZGlmZiA9 IGN1cnJlbnQgLSBzdGFydDsKICAgICsgICAgICBpZiAoZGlmZiA8IG4pCiAg ICArIHBhdXNlICgpOwogICAgKyAgICAgIGVsc2UKICAgICsgYnJlYWs7CiAg ICArICAgIH0KICAgICt9CiAgICArCiAgICArc3RhdGljIHZvaWQKICAgICt3 YWl0X2FfYml0IChpbnQgZGVsYXlfdGltZSkKICAgICt7CiAgICArICBpZiAo ZGVsYXlfdGltZSA+IDApCiAgICArICAgIGRlbGF5X3RzYyAoZGVsYXlfdGlt ZSk7CiAgICArfQogICAgKwogICAgKyNpZm5kZWYgVVNFX05VTUFfU1BJTkxP Q0sKICAgICtzdGF0aWMgaW5saW5lIHZvaWQKICAgICt3b3JrX3RvZG8gKHZv aWQpCiAgICArewogICAgKyAgdW5zaWduZWQgbG9uZyByZXQ7CiAgICArICBn X3ZhbCA9IGdfdmFsICsgMTsKICAgICsgIGdfdmFsMiA9IGdfdmFsMiArIDE7 CiAgICArICByZXQgPSBfX3N5bmNfdmFsX2NvbXBhcmVfYW5kX3N3YXAgKCZj bXBsb2NrLCAwLCAxKTsKICAgICsgIGdfdmFsMyA9IGdfdmFsMyArIDEgKyBy ZXQ7CiAgICArfQogICAgKyNlbmRpZgogICAgKwogICAgK3ZvaWQgKgogICAg K3dvcmtfdGhyZWFkICh2b2lkICphcmcpCiAgICArewogICAgKyAgbG9uZyBp OwogICAgKyAgdW5zaWduZWQgbG9uZyBwaWQgPSAodW5zaWduZWQgbG9uZykg YXJnOwogICAgKyAgc3RydWN0IHN0YXRzX3Jlc3VsdCAqcmVzOwogICAgKyAg dW5zaWduZWQgbG9uZyBsb25nIHN0YXJ0LCBlbmQ7CiAgICArICBpbnQgZXJy X3JldCA9IHBvc2l4X21lbWFsaWduICgodm9pZCAqKikmcmVzLCBDQUNIRUxJ TkVfU0laRSwKICAgICsgICAgcm91bmR1cCAoc2l6ZW9mICgqcmVzKSwgQ0FD SEVMSU5FX1NJWkUpKTsKICAgICsgIGlmIChlcnJfcmV0KQogICAgKyAgICB7 CiAgICArICAgICAgcHJpbnRmICgicG9zaXhfbWVtYWxpZ24gZmFpbHVyZTog JXNcbiIsIHN0cmVycm9yIChlcnJfcmV0KSk7CiAgICArICAgICAgZXhpdCAo ZXJyX3JldCk7CiAgICArICAgIH0KICAgICsgIGxvbmcgbnVtID0gMDsKICAg ICsKICAgICsjaWZkZWYgVVNFX05VTUFfU1BJTkxPQ0sKICAgICsgIHN0cnVj dCB3b3JrX3RvZG9fYXJndW1lbnQgd29ya190b2RvX2FyZzsKICAgICsgIHN0 cnVjdCBudW1hX3NwaW5sb2NrX2luZm8gbG9ja19pbmZvOwogICAgKwogICAg KyAgaWYgKG51bWFfc3BpbmxvY2tfaW5pdCAobG9jaywgJmxvY2tfaW5mbykp CiAgICArICAgIHsKICAgICsgICAgICBwcmludGYgKCJudW1hX3NwaW5sb2Nr X2luaXQgZmFpbHVyZTogJW1cbiIpOwogICAgKyAgICAgIGV4aXQgKDEpOwog ICAgKyAgICB9CiAgICArCiAgICArICB3b3JrX3RvZG9fYXJnLnYxID0gJmdf dmFsOwogICAgKyAgd29ya190b2RvX2FyZy52MiA9ICZnX3ZhbDI7CiAgICAr ICB3b3JrX3RvZG9fYXJnLnYzID0gJmdfdmFsMzsKICAgICsgIHdvcmtfdG9k b19hcmcudjQgPSAmY21wbG9jazsKICAgICsgIGxvY2tfaW5mby5hcmd1bWVu dCA9ICZ3b3JrX3RvZG9fYXJnOwogICAgKyAgbG9ja19pbmZvLndvcmtsb2Fk ID0gd29ya190b2RvOwogICAgKyNlbmRpZgogICAgKwogICAgKyAgd2hpbGUg KCFzdGFydF90aHJlYWQpCiAgICArICAgIHBhdXNlICgpOwogICAgKwogICAg KyAgdW5zaWduZWQgaW50IGF1eDsKICAgICsgIHN0YXJ0ID0gX19idWlsdGlu X2lhMzJfcmR0c2NwICgmYXV4KTsKICAgICsgIGZvciAoaSA9IDA7IGkgPCBp dGVyYXRpb25zOyBpKyspCiAgICArICAgIHsKICAgICsjaWZkZWYgVVNFX05V TUFfU1BJTkxPQ0sKICAgICsgICAgICBkb193b3JrICgmbG9ja19pbmZvKTsK ICAgICsjZWxzZQogICAgKyAgICAgIGRvX3dvcmsgKCk7CiAgICArI2VuZGlm CiAgICArICAgICAgd2FpdF9hX2JpdCAoZGVsYXlfdGltZV91bmxvY2tlZCk7 CiAgICArICAgICAgbnVtKys7CiAgICArICAgIH0KICAgICsgIGVuZCA9IF9f YnVpbHRpbl9pYTMyX3JkdHNjcCAoJmF1eCk7CiAgICArICBnY291bnRbcGlk XS50b3RhbCA9IGVuZCAtIHN0YXJ0OwogICAgKyAgcmVzLT5udW0gPSBudW07 CiAgICArCiAgICArICByZXR1cm4gcmVzOwogICAgK30KICAgICsKICAgICt2 b2lkCiAgICAraW5pdF9nbG9iYWxfZGF0YSh2b2lkKQogICAgK3sKICAgICsg IGdfdmFsID0gMDsKICAgICsgIGdfdmFsMiA9IDA7CiAgICArICBnX3ZhbDMg PSAwOwogICAgKyAgY21wbG9jayA9IDA7CiAgICArfQogICAgKwogICAgK3Zv aWQKICAgICt0ZXN0X3RocmVhZHMgKGludCBudW10aHJlYWRzLCBpbnQgbnVt cHJvY3MsIHVuc2lnbmVkIGxvbmcgdGltZSkKICAgICt7CiAgICArICBzdGFy dF90aHJlYWQgPSAwOwogICAgKwogICAgKyNpZmRlZiBVU0VfTlVNQV9TUElO TE9DSwogICAgKyAgbG9jayA9IG51bWFfc3BpbmxvY2tfYWxsb2MgKCk7CiAg ICArI2VuZGlmCiAgICArCiAgICArICBtZW1vcnlfYmFycmllciAoKTsKICAg ICsKICAgICsgIHB0aHJlYWRfdCB0aHJbbnVtdGhyZWFkc107CiAgICArICB2 b2lkICpyZXNbbnVtdGhyZWFkc107CiAgICArICBpbnQgaTsKICAgICsKICAg ICsgIGluaXRfZ2xvYmFsX2RhdGEgKCk7CiAgICArICBmb3IgKGkgPSAwOyBp IDwgbnVtdGhyZWFkczsgaSsrKQogICAgKyAgICB7CiAgICArICAgICAgcHRo cmVhZF9hdHRyX3QgYXR0cjsKICAgICsgICAgICBjb25zdCBwdGhyZWFkX2F0 dHJfdCAqYXR0cnAgPSBOVUxMOwogICAgKyAgICAgIGlmIChVU0VfUFRIUkVB RF9BVFRSX1NFVEFGRklOSVRZX05QKQogICAgKyB7CiAgICArICAgYXR0cnAg PSAmYXR0cjsKICAgICsgICBwdGhyZWFkX2F0dHJfaW5pdCAoJmF0dHIpOwog ICAgKyAgIGNwdV9zZXRfdCBzZXQ7CiAgICArICAgQ1BVX1pFUk8gKCZzZXQp OwogICAgKyAgIGludCBjcHUgPSBpICUgbnVtcHJvY3M7CiAgICArICAgKHZv aWQpIENQVV9TRVQgKGNwdSwgJnNldCk7CiAgICArICAgcHRocmVhZF9hdHRy X3NldGFmZmluaXR5X25wICgmYXR0ciwgc2l6ZW9mIChjcHVfc2V0X3QpLCAm c2V0KTsKICAgICsgfQogICAgKyAgICAgIGludCBlcnJfcmV0ID0gcHRocmVh ZF9jcmVhdGUgKCZ0aHJbaV0sIGF0dHJwLCBvcHMtPnRlc3QsCiAgICArICAg ICAgICAodm9pZCAqKSh1aW50cHRyX3QpIGkpOwogICAgKyAgICAgIGlmIChl cnJfcmV0ICE9IDApCiAgICArIHsKICAgICsgICBwcmludGYgKCJwdGhyZWFk X2NyZWF0ZSBmYWlsZWQ6ICVkLCAlc1xuIiwKICAgICsgICAgaSwgc3RyZXJy b3IgKGkpKTsKICAgICsgICBudW10aHJlYWRzID0gaTsKICAgICsgICBicmVh azsKICAgICsgfQogICAgKyAgICB9CiAgICArCiAgICArICBtZW1vcnlfYmFy cmllciAoKTsKICAgICsgIHN0YXJ0X3RocmVhZCA9IDE7CiAgICArICBtZW1v cnlfYmFycmllciAoKTsKICAgICsgIHNjaGVkX3lpZWxkICgpOwogICAgKwog ICAgKyAgaWYgKHRpbWUpCiAgICArICAgIHsKICAgICsgICAgICBzdHJ1Y3Qg dGltZXNwZWMgdHMgPQogICAgKyB7CiAgICArICAgdHMudHZfc2VjID0gdGlt ZSwKICAgICsgICB0cy50dl9uc2VjID0gMAogICAgKyB9OwogICAgKyAgICAg IGNsb2NrX25hbm9zbGVlcCAoQ0xPQ0tfTU9OT1RPTklDLCAwLCAmdHMsIE5V TEwpOwogICAgKyAgICAgIG1lbW9yeV9iYXJyaWVyICgpOwogICAgKyAgICB9 CiAgICArCiAgICArICBmb3IgKGkgPSAwOyBpIDwgbnVtdGhyZWFkczsgaSsr KQogICAgKyAgICB7CiAgICArICAgICAgaWYgKHB0aHJlYWRfam9pbiAodGhy W2ldLCAodm9pZCAqKSAmcmVzW2ldKSA9PSAwKQogICAgKyBmcmVlIChyZXNb aV0pOwogICAgKyAgICAgIGVsc2UKICAgICsgcHJpbnRmICgicHRocmVhZF9q b2luIGZhaWx1cmU6ICVtXG4iKTsKICAgICsgICAgfQogICAgKwogICAgKyNp ZmRlZiBVU0VfTlVNQV9TUElOTE9DSwogICAgKyAgbnVtYV9zcGlubG9ja19m cmVlIChsb2NrKTsKICAgICsjZW5kaWYKICAgICt9CiAgICArCiAgICArc3Ry dWN0IG9wcyBoYXNod29ya19vcHMgPQogICAgK3sKICAgICsgIC50ZXN0ID0g d29ya190aHJlYWQsCiAgICArfTsKICAgICsKICAgICtzdHJ1Y3Qgb3BzICpv cHM7CiAgICArCiAgICArc3RhdGljIHN0cnVjdCBjb3VudAogICAgK3RvdGFs X2Nvc3QgKGludCBudW10aHJlYWRzLCBpbnQgbnVtcHJvY3MpCiAgICArewog ICAgKyAgaW50IGk7CiAgICArICB1bnNpZ25lZCBsb25nIGxvbmcgdG90YWwg PSAwOwogICAgKyAgdW5zaWduZWQgbG9uZyBsb25nIHNwaW5sb2NrID0gMDsK ICAgICsKICAgICsgIG1lbXNldCAoZ2NvdW50LCAwLCBzaXplb2YoZ2NvdW50 WzBdKSAqIG51bXRocmVhZHMpOwogICAgKwogICAgKyAgdW5zaWduZWQgbG9u ZyBsb25nIHN0YXJ0LCBlbmQsIGRpZmY7CiAgICArICB1bnNpZ25lZCBpbnQg YXV4OwogICAgKwogICAgKyAgc3RhcnQgPSBfX2J1aWx0aW5faWEzMl9yZHRz Y3AgKCZhdXgpOwogICAgKyAgdGVzdF90aHJlYWRzIChudW10aHJlYWRzLCBu dW1wcm9jcywgY29uc3RhbnRfdGltZSk7CiAgICArICBlbmQgPSBfX2J1aWx0 aW5faWEzMl9yZHRzY3AgKCZhdXgpOwogICAgKyAgZGlmZiA9IGVuZCAtIHN0 YXJ0OwogICAgKwogICAgKyAgZm9yIChpID0gMDsgaSA8IG51bXRocmVhZHM7 IGkrKykKICAgICsgICAgewogICAgKyAgICAgIHRvdGFsICs9IGdjb3VudFtp XS50b3RhbDsKICAgICsgICAgICBzcGlubG9jayArPSBnY291bnRbaV0uc3Bp bmxvY2s7CiAgICArICAgIH0KICAgICsKICAgICsgIHN0cnVjdCBjb3VudCBj b3N0ID0geyB0b3RhbCwgc3BpbmxvY2ssIGRpZmYgfTsKICAgICsgIHJldHVy biBjb3N0OwogICAgK30KICAgICsKICAgICsjaWZkZWYgTU9EVUxFX05BTUUK ICAgICtzdGF0aWMgaW50CiAgICArZG9fdGVzdCAodm9pZCkKICAgICt7CiAg ICArICBpZiAoIUNQVV9GRUFUVVJFX1VTQUJMRSAoUkRUU0NQKSkKICAgICsg ICAgcmV0dXJuIEVYSVRfVU5TVVBQT1JURUQ7CiAgICArI2Vsc2UKICAgICtp bnQKICAgICttYWluICh2b2lkKQogICAgK3sKICAgICsjZW5kaWYKICAgICsg IGludCBudW1wcm9jcyA9IHN5c2NvbmYgKF9TQ19OUFJPQ0VTU09SU19PTkxO KTsKICAgICsKICAgICsgIC8qIE92ZXJzdWJzY3JpYmUgQ1BVLiAgKi8KICAg ICsgIGludCBudW10aHJlYWRzID0gNCAqIG51bXByb2NzOwogICAgKwogICAg KyAgb3BzID0gJmhhc2h3b3JrX29wczsKICAgICsKICAgICsgIGludCBlcnJf cmV0ID0gcG9zaXhfbWVtYWxpZ24gKCh2b2lkICoqKSZnY291bnQsIDQwOTYs CiAgICArICAgIHNpemVvZihnY291bnRbMF0pICogbnVtdGhyZWFkcyk7CiAg ICArICBpZiAoZXJyX3JldCkKICAgICsgICAgewogICAgKyAgICAgIHByaW50 ZiAoInBvc2l4X21lbWFsaWduIGZhaWx1cmU6ICVzXG4iLCBzdHJlcnJvciAo ZXJyX3JldCkpOwogICAgKyAgICAgIGV4aXQgKGVycl9yZXQpOwogICAgKyAg ICB9CiAgICArCiAgICArICBzdHJ1Y3QgY291bnQgY29zdCwgY29zdDE7CiAg ICArICBkb3VibGUgb3ZlcmhlYWQ7CiAgICArICBpbnQgaSwgbGFzdDsKICAg ICsgIGludCBsYXN0X2luY3JlbWVudCA9IG51bXByb2NzIDwgMTYgPyAxNiA6 IG51bXByb2NzOwogICAgKyAgaW50IG51bXByb2NzX2RvbmUgPSAwOwogICAg KyAgaW50IG51bXByb2NzX3Jlc2V0ID0gMDsKICAgICsgIGNvc3QxID0gdG90 YWxfY29zdCAoMSwgbnVtcHJvY3MpOwogICAgKwogICAgKyAgcHJpbnRmICgi TnVtYmVyIG9mIHByb2Nlc3NvcnM6ICVkLCBTaW5nbGUgdGhyZWFkIHRpbWUg JWxsZFxuXG4iLAogICAgKyAgIG51bXByb2NzLCBjb3N0MS50b3RhbCk7CiAg ICArCiAgICArICBmb3IgKGxhc3QgPSBpID0gMjsgaSA8PSBudW10aHJlYWRz OykKICAgICsgICAgewogICAgKyAgICAgIGxhc3QgPSBpOwogICAgKyAgICAg IGNvc3QgPSB0b3RhbF9jb3N0IChpLCBudW1wcm9jcyk7CiAgICArICAgICAg b3ZlcmhlYWQgPSBjb3N0LnRvdGFsOwogICAgKyAgICAgIG92ZXJoZWFkIC89 IGk7CiAgICArICAgICAgb3ZlcmhlYWQgLz0gY29zdDEudG90YWw7CiAgICAr ICAgICAgcHJpbnRmICgiTnVtYmVyIG9mIHRocmVhZHM6ICU0ZCwgVG90YWwg dGltZSAlMTRsbGQsIE92ZXJoZWFkOiAlLjJmXG4iLAogICAgKyAgICAgICBp LCBjb3N0LnRvdGFsLCBvdmVyaGVhZCk7CiAgICArICAgICAgaWYgKChpICog MikgPCBudW1wcm9jcykKICAgICsgaSA9IGkgKiAyOwogICAgKyAgICAgIGVs c2UgaWYgKG51bXByb2NzX2RvbmUpCiAgICArIHsKICAgICsgICBpZiAobnVt cHJvY3NfcmVzZXQpCiAgICArICAgICB7CiAgICArICAgICAgIGkgPSBudW1w cm9jc19yZXNldDsKICAgICsgICAgICAgbnVtcHJvY3NfcmVzZXQgPSAwOwog ICAgKyAgICAgfQogICAgKyAgIGVsc2UKICAgICsgICAgIHsKICAgICsgICAg ICAgaWYgKChpICogMikgPCBudW10aHJlYWRzKQogICAgKyAgaSA9IGkgKiAy OwogICAgKyAgICAgICBlbHNlCiAgICArICBpID0gaSArIGxhc3RfaW5jcmVt ZW50OwogICAgKyAgICAgfQogICAgKyB9CiAgICArICAgICAgZWxzZQogICAg KyB7CiAgICArICAgaWYgKG51bXByb2NzICE9IDIgKiBpKQogICAgKyAgICAg bnVtcHJvY3NfcmVzZXQgPSAyICogaTsKICAgICsgICBpID0gbnVtcHJvY3M7 CiAgICArICAgbnVtcHJvY3NfZG9uZSA9IDE7CiAgICArIH0KICAgICsgICAg fQogICAgKwogICAgKyAgaWYgKGxhc3QgIT0gbnVtdGhyZWFkcykKICAgICsg ICAgewogICAgKyAgICAgIGkgPSBudW10aHJlYWRzOwogICAgKyAgICAgIGNv c3QgPSB0b3RhbF9jb3N0IChpLCBudW1wcm9jcyk7CiAgICArICAgICAgb3Zl cmhlYWQgPSBjb3N0LnRvdGFsOwogICAgKyAgICAgIG92ZXJoZWFkIC89IGk7 CiAgICArICAgICAgb3ZlcmhlYWQgLz0gY29zdDEudG90YWw7CiAgICArICAg ICAgcHJpbnRmICgiTnVtYmVyIG9mIHRocmVhZHM6ICU0ZCwgVG90YWwgdGlt ZSAlMTRsbGQsIE92ZXJoZWFkOiAlLjJmXG4iLAogICAgKyAgICAgICBpLCBj b3N0LnRvdGFsLCBvdmVyaGVhZCk7CiAgICArICAgIH0KICAgICsKICAgICsg IGZyZWUgKGdjb3VudCk7CiAgICArICByZXR1cm4gMDsKICAgICt9CiAgICAr CiAgICArI2lmZGVmIE1PRFVMRV9OQU1FCiAgICArIyBkZWZpbmUgVElNRU9V VCA5MDAKICAgICsjIGluY2x1ZGUgPHN1cHBvcnQvdGVzdC1kcml2ZXIuYz4K ICAgICsjZW5kaWYKICAgIGRpZmYgLS1naXQgYS9zeXNkZXBzL3VuaXgvc3lz di9saW51eC94ODYvdHN0LXZhcmlhYmxlLW92ZXJoZWFkLmMgYi9zeXNkZXBz L3VuaXgvc3lzdi9saW51eC94ODYvdHN0LXZhcmlhYmxlLW92ZXJoZWFkLmMK ICAgIG5ldyBmaWxlIG1vZGUgMTAwNjQ0CiAgICBpbmRleCAwMDAwMDAwLi5i M2NlNTY3CiAgICAtLS0gL2Rldi9udWxsCiAgICArKysgYi9zeXNkZXBzL3Vu aXgvc3lzdi9saW51eC94ODYvdHN0LXZhcmlhYmxlLW92ZXJoZWFkLmMKICAg IEBAIC0wLDAgKzEsNDcgQEAKICAgICsvKiBUZXN0IGNhc2UgZm9yIHNwaW5s b2NrIG92ZXJoZWFkLgogICAgKyAgIENvcHlyaWdodCAoQykgMjAxOCBGcmVl IFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KICAgICsgICBUaGlzIGZpbGUg aXMgcGFydCBvZiB0aGUgR05VIEMgTGlicmFyeS4KICAgICsKICAgICsgICBU aGUgR05VIEMgTGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJl ZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAgICsgICBtb2RpZnkgaXQgdW5kZXIg dGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCiAg ICArICAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdh cmUgRm91bmRhdGlvbjsgZWl0aGVyCiAgICArICAgdmVyc2lvbiAyLjEgb2Yg dGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZl cnNpb24uCiAgICArCiAgICArICAgVGhlIEdOVSBDIExpYnJhcnkgaXMgZGlz dHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwK ICAgICsgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZl biB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgogICAgKyAgIE1FUkNIQU5UQUJJ TElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNl ZSB0aGUgR05VCiAgICArICAgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vu c2UgZm9yIG1vcmUgZGV0YWlscy4KICAgICsKICAgICsgICBZb3Ugc2hvdWxk IGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVy YWwgUHVibGljCiAgICArICAgTGljZW5zZSBhbG9uZyB3aXRoIHRoZSBHTlUg QyBMaWJyYXJ5OyBpZiBub3QsIHNlZQogICAgKyAgIDxodHRwOi8vd3d3Lmdu dS5vcmcvbGljZW5zZXMvPi4gICovCiAgICArCiAgICArI2lmbmRlZiBfR05V X1NPVVJDRQogICAgKyMgZGVmaW5lIF9HTlVfU09VUkNFCiAgICArI2VuZGlm CiAgICArI2luY2x1ZGUgPHB0aHJlYWQuaD4KICAgICsKICAgICtzdHJ1Y3QK ICAgICt7CiAgICArICBwdGhyZWFkX3NwaW5sb2NrX3QgdGVzdGxvY2s7CiAg ICArICBjaGFyIHBhZFs2NCAtIHNpemVvZiAocHRocmVhZF9zcGlubG9ja190 KV07CiAgICArfSB0ZXN0IF9fYXR0cmlidXRlX18oKGFsaWduZWQoNjQpKSk7 CiAgICArCiAgICArc3RhdGljIHZvaWQKICAgICtfX2F0dHJpYnV0ZV9fKChj b25zdHJ1Y3RvcikpCiAgICAraW5pdF9zcGluICh2b2lkKQogICAgK3sKICAg ICsgIHB0aHJlYWRfc3Bpbl9pbml0ICgmdGVzdC50ZXN0bG9jaywgMCk7CiAg ICArfQogICAgKwogICAgK3N0YXRpYyB2b2lkIHdvcmtfdG9kbyAodm9pZCk7 CiAgICArCiAgICArc3RhdGljIGlubGluZSB2b2lkCiAgICArZG9fd29yayAo dm9pZCkKICAgICt7CiAgICArICBwdGhyZWFkX3NwaW5fbG9jaygmdGVzdC50 ZXN0bG9jayk7CiAgICArICB3b3JrX3RvZG8gKCk7CiAgICArICBwdGhyZWFk X3NwaW5fdW5sb2NrKCZ0ZXN0LnRlc3Rsb2NrKTsKICAgICt9CiAgICArCiAg ICArI2luY2x1ZGUgInRzdC12YXJpYWJsZS1vdmVyaGVhZC1za2VsZXRvbi5j IgogICAgZGlmZiAtLWdpdCBhL3N5c2RlcHMvdW5peC9zeXN2L2xpbnV4L3g4 Nl82NC82NC9saWJwdGhyZWFkLmFiaWxpc3QgYi9zeXNkZXBzL3VuaXgvc3lz di9saW51eC94ODZfNjQvNjQvbGlicHRocmVhZC5hYmlsaXN0CiAgICBpbmRl eCA5MzFjODI3Li5lOTA1MzJlIDEwMDY0NAogICAgLS0tIGEvc3lzZGVwcy91 bml4L3N5c3YvbGludXgveDg2XzY0LzY0L2xpYnB0aHJlYWQuYWJpbGlzdAog ICAgKysrIGIvc3lzZGVwcy91bml4L3N5c3YvbGludXgveDg2XzY0LzY0L2xp YnB0aHJlYWQuYWJpbGlzdAogICAgQEAgLTIxOSw2ICsyMTksMTAgQEAgR0xJ QkNfMi4yOCB0c3NfY3JlYXRlIEYKICAgICBHTElCQ18yLjI4IHRzc19kZWxl dGUgRgogICAgIEdMSUJDXzIuMjggdHNzX2dldCBGCiAgICAgR0xJQkNfMi4y OCB0c3Nfc2V0IEYKICAgICtHTElCQ18yLjI5IG51bWFfc3BpbmxvY2tfYWxs b2MgRgogICAgK0dMSUJDXzIuMjkgbnVtYV9zcGlubG9ja19hcHBseSBGCiAg ICArR0xJQkNfMi4yOSBudW1hX3NwaW5sb2NrX2ZyZWUgRgogICAgK0dMSUJD XzIuMjkgbnVtYV9zcGlubG9ja19pbml0IEYKICAgICBHTElCQ18yLjMuMiBw dGhyZWFkX2NvbmRfYnJvYWRjYXN0IEYKICAgICBHTElCQ18yLjMuMiBwdGhy ZWFkX2NvbmRfZGVzdHJveSBGCiAgICAgR0xJQkNfMi4zLjIgcHRocmVhZF9j b25kX2luaXQgRgogICAgZGlmZiAtLWdpdCBhL3N5c2RlcHMvdW5peC9zeXN2 L2xpbnV4L3g4Nl82NC94MzIvbGlicHRocmVhZC5hYmlsaXN0IGIvc3lzZGVw cy91bml4L3N5c3YvbGludXgveDg2XzY0L3gzMi9saWJwdGhyZWFkLmFiaWxp c3QKICAgIGluZGV4IGMwOWM5YjAuLmM3NGZlYmIgMTAwNjQ0CiAgICAtLS0g YS9zeXNkZXBzL3VuaXgvc3lzdi9saW51eC94ODZfNjQveDMyL2xpYnB0aHJl YWQuYWJpbGlzdAogICAgKysrIGIvc3lzZGVwcy91bml4L3N5c3YvbGludXgv eDg2XzY0L3gzMi9saWJwdGhyZWFkLmFiaWxpc3QKICAgIEBAIC0yNDMsMyAr MjQzLDcgQEAgR0xJQkNfMi4yOCB0c3NfY3JlYXRlIEYKICAgICBHTElCQ18y LjI4IHRzc19kZWxldGUgRgogICAgIEdMSUJDXzIuMjggdHNzX2dldCBGCiAg ICAgR0xJQkNfMi4yOCB0c3Nfc2V0IEYKICAgICtHTElCQ18yLjI5IG51bWFf c3BpbmxvY2tfYWxsb2MgRgogICAgK0dMSUJDXzIuMjkgbnVtYV9zcGlubG9j a19hcHBseSBGCiAgICArR0xJQkNfMi4yOSBudW1hX3NwaW5sb2NrX2ZyZWUg RgogICAgK0dMSUJDXzIuMjkgbnVtYV9zcGlubG9ja19pbml0IEYKICAgIC0t IAogICAgMS44LjMuMQogICAgCgoKCgo=