From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 7536 invoked by alias); 2 Nov 2018 05:31:13 -0000 Mailing-List: contact gcc-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-patches-owner@gcc.gnu.org Received: (qmail 7196 invoked by uid 89); 2 Nov 2018 05:30:51 -0000 Authentication-Results: sourceware.org; auth=none X-Spam-SWARE-Status: No, score=-14.3 required=5.0 tests=AWL,BAYES_00,ENV_AND_HDR_SPF_MATCH,GIT_PATCH_2,RCVD_IN_DNSWL_NONE,SPF_PASS,UNPARSEABLE_RELAY,USER_IN_DEF_SPF_WL autolearn=ham version=3.3.2 spammy=UD:tree-vect-loop.c, quality, H*c:HHHHHHHH X-HELO: out30-132.freemail.mail.aliyun.com Received: from out30-132.freemail.mail.aliyun.com (HELO out30-132.freemail.mail.aliyun.com) (115.124.30.132) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Fri, 02 Nov 2018 05:30:46 +0000 X-Alimail-AntiSpam:AC=PASS;BC=-1|-1;BR=01201311R191e4;CH=green;FP=0|-1|-1|-1|0|-1|-1|-1;HT=e01f04389;MF=bin.cheng@linux.alibaba.com;NM=1;PH=DW;RN=3;SR=0;TI=W4_5379462_DEFAULT_0AC264B0_1541133635750_o7001c300t; Received: from WS-web (bin.cheng@linux.alibaba.com[W4_5379462_DEFAULT_0AC264B0_1541133635750_o7001c300t]) by e01e04423.eu6 at Fri, 02 Nov 2018 13:30:05 +0800 Date: Fri, 02 Nov 2018 05:31:00 -0000 From: "bin.cheng" Return-Path: "bin.cheng" To: "GCC Patches" Cc: "Jan Hubicka" , "Richard Biener" Reply-To: "bin.cheng" Message-ID: <7002062a-a7fd-4d38-9bb4-10cff9b66b53.bin.cheng@linux.alibaba.com> Subject: =?UTF-8?B?UmU6IFtQQVRDSCBBdXRvRkRPLzJdVHJlYXQgWkVSTyBhcyBjb21tb24gcHJvZmlsZSBwcm9i?= =?UTF-8?B?YWJpbGl0eS9jb3VudA==?= MIME-Version: 1.0 Return-Path: References: <7f153787-f390-4661-92aa-06d47cefbbf5.bin.cheng@linux.alibaba.com>, In-Reply-To: x-aliyun-mail-creator: W4_5379462_DEFAULT_QvNTW96aWxsYS81LjAgKE1hY2ludG9zaDsgSW50ZWwgTWFjIE9TIFggMTBfMTNfNCkgQXBwbGVXZWJLaXQvNjA1LjEuMTUgKEtIVE1MLCBsaWtlIEdlY2tvKSBWZXJzaW9uLzExLjEgU2FmYXJpLzYwNS4xLjE1La Content-Type: multipart/mixed; boundary="----=ALIBOUNDARY_108766_4b849940_5bdbe0dd_1a95b9" X-SW-Source: 2018-11/txt/msg00068.txt.bz2 This is a multi-part message in MIME format. ------=ALIBOUNDARY_108766_4b849940_5bdbe0dd_1a95b9 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: base64 Content-length: 6715 LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tClNlbmRlcjpSaWNoYXJkIEJpZW5lciA8 cmljaGFyZC5ndWVudGhlckBnbWFpbC5jb20+ClNlbnQgYXQ6MjAxOCBPY3Qg MzEgKFdlZCkgMTc6MTEKVG86YmluLmNoZW5nIDxiaW4uY2hlbmdAbGludXgu YWxpYmFiYS5jb20+OyBKYW4gSHViaWNrYSA8aHViaWNrYUB1Y3cuY3o+CkNj OkdDQyBQYXRjaGVzIDxnY2MtcGF0Y2hlc0BnY2MuZ251Lm9yZz4KU3ViamVj dDpSZTogW1BBVENIIEF1dG9GRE8vMl1UcmVhdCBaRVJPIGFzIGNvbW1vbiBw cm9maWxlIHByb2JhYmlsaXR5L2NvdW50Cj4gCj4gCj4gT24gV2VkLCBPY3Qg MzEsIDIwMTggYXQgNzozMCBBTSBiaW4uY2hlbmcgPGJpbi5jaGVuZ0BsaW51 eC5hbGliYWJhLmNvbT4gd3JvdGU6Cj4+Cj4+IEhpLAo+PiBJbiBuZXcgcHJv ZmlsZSBwcm9iYWJpbGl0eS9jb3VudCBpbmZyYSwgd2UgaGF2ZSBkaWZmZXJl bnQgcHJlY2lzaW9uIHF1YWxpdHkgY2F0ZWdvcmllcywKPj4gYW5kIHByb2Jh YmlsaXRpZXMvY291bnRzIG9mIGRpZmZlcmVudCBjYXRlZ29yaWVzIGFyZSBu b3Qgc3VwcG9zZWQgdG8gYmUgY29tcGFyZWQgb3IKPj4gY2FsY3VsYXRlZC4g IFRob3VnaCBpbiBnZW5lcmFsIGlzIGFuIGltcHJvdmVtZW50LCBpdCBpbnRy b2R1Y2VzIHVuZXhwZWN0ZWQgYmVoYXZpb3IuCj4+IFNwZWNpZmljYWxseSwg Y2xhc3MgcHJvZmlsZV9wcm9iYWJsaXR5IGFuZCBwcm9maWxlX2NvdW50IHRo ZW1zZWx2ZXMgYXJlIGltcGxlbWVudGVkCj4+IGJ5IGNvbXBhcmluZyBwcm9i YWJpbGl0aWVzL2NvdW50cyBhZ2FpbnN0IHByb2ZpbGVfY291bnQ6Onplcm8o KS4gIHdoaWxlIHplcm8oKSBpcyBvZgo+PiBwcm9maWxlX3ByZWNpc2lvbiBj YXRlZ29yeSwgaXQncyBhbHdheXMgY29tcGFyZWQgZGlmZmVyZW50IHRvIHpl cm8gb2Ygb3RoZXIgcHJlY2lzaW9uCj4+IGNhdGVnb3JpZXMgaW5jbHVkaW5n IGFmZG8uCj4+Cj4+IEkgY2FuIHNlZSB0d28gd2F5cyBmaXhpbmcgdGhpczog MSkgVHJlYXQgemVybyBhcyBhIGNvbW1vbiBwcm9iYWJpbGl0eS9jb3VudCBy ZWdhcmRsZXNzCj4+IG9mIGl0cyBjYXRlZ29yeTsgMikgUHJvdmlkZSBhbiAi aXNfemVybyIgbWV0aG9kIHJhdGhlciB0aGFuIHJlbHlpbmcgb24gIj09IiBj b21wYXJpc29uCj4+IGFnYWluc3QgcHJvYmFiaWxpdHlfY291bnQ6Onplcm8o KS4gIDIpIHJlcXVpcmVzIGxvdHMgb2YgY29kZSBjaGFuZ2VzIHNvIEkgd2Vu dCB3aXRoIDEpCj4+IGluIHRoaXMgcGF0Y2ggc2V0LiAgVGhpcyBwYXRjaCBk b2Vzbid0IGhhbmRsZSAiYWx3YXlzIiBidXQgaXQgbWlnaHQgYmUuCj4+Cj4+ IFRoaXMgcGF0Y2ggYWxzbyBjb3JyZWN0cyBhIG1pbm9yIGlzc3VlIHdoZXJl IHdlIHRyeSB0byBpbnZlcnQgYW4gdW5pbml0aWFsaXplZCB2YWx1ZS4KPj4K Pj4gQm9vdHN0cmFwIGFuZCB0ZXN0IG9uIHg4Nl82NCBpbiBwYXRjaCBzZXQu ICBJcyBpdCBPSz8KPiAKClRoYW5rcyBmb3IgYWxsIHRoZSByZXZpZXdzLgoK PiBJJ2xsIGRlZmVyIG9uIHRoZSBlbWl0X3N0b3JlX2ZsYWdfZm9yY2UgY2hh bmdlLCBsaWtld2lzZSBmb3IgdGhlIHplcm8KCkFzIEplZmYgcG9pbnRlZCBv dXQgdG9vLCB0aGlzIGlzIGRpc2NhcmRlZCBub3cuCgo+IGhhbmRsaW5nIGlu Cj4gY29tcGFyZXMgLSBJIGRvbid0IHRoaW5rIHplcm9zIG9mIGRpZmZlcmVu dCBxdWFsaXRpZXMgc2hvdWxkIGNvbXBhcmUgZXF1YWwuCj4gV291bGQgY29t cGFyZXMgYWdhaW5zdCA6OmFsd2F5cygpIG5vdCBoYXZlIHRoZSB2ZXJ5IHNh bWUgaXNzdWU/Cj4gTGlrZXdpc2UgOjpldmVuKCksCj4gOjpsaWtlbHkoKSwg ZXRjLj8gIFRob3NlIGFsd2F5cyBnZXQgZ3Vlc3NlZCBxdWFsaXR5LgoKSW4g dGhpcyB2ZXJzaW9uLCBJIHdlbnQgd2l0aCB0aGUgc2Vjb25kIG1ldGhvZCB3 aGljaCBhZGRzIG5ldmVyX3AvemVyb19wCm1lbWJlciBmdW5jdGlvbiBmb3Ig cHJvYmFiaWxpdHkgYW5kIGNvdW50LiAgQ2hlY2sgb24gWkVSTyB2YWx1ZSB3 b24ndCBmYWlsCnVuZXhwZWN0ZWQgbm93LiAgVGhlIHBhdGNoIGFsc28gbWFr ZXMgc29tZSBvdGhlciBjaGFuZ2VzIHRoYXQgYXZvaWRzCnNob3J0LWNpcmN1 aXQgcmV0dXJuaW5nIG9uIFpFUk8gcHJvYmFiaWxpdHkvY291bnQgYW5kIGxl dC4KCj4gCj4gVGhlIGludmVydCBjaGFuZ2UgbG9va3MgT0sgdG8gbWUuICBU aGUgcmVsYXRlZCBjaGFuZ2UgdG8gdGhlIGFsd2F5cygpIEFQSSB3b3VsZAo+ IHN1Z2dlc3QgdG8gcmVwbGFjZSBndWVzc2VkX2Fsd2F5cygpIHdpdGggYWx3 YXlzIChndWVzc2VkKSBhbmQgYWxzbyBkbyBzaW1pbGFyCj4gY2hhbmdlcyB0 aHJvdWdob3V0IHRoZSB3aG9sZSBBUEkuLi4KVGhlIGludmVydCBwYXJ0IGlz IHNwbGl0IGFzIGEgc3RhbmRhbG9uZSBwYXRjaC4gIEkgdGhpbmsgYWRkaW5n IGEgZGVmYXVsdCBwcmVjaXNpb24KcGFyYW1ldGVyIHRvIG1lbWJlciBmdW5j dGlvbnMgaXMgYSBsaXR0bGUgYml0IGJldHRlciB0aGFuIGhhdmluZyB2YXJp b3VzIHZlcnNpb24KZnVuY3Rpb25zIGhlcmUsIGxpa2UgeW91IG1lbnRpb25l ZCBmb3IgZnJvbV9nY292X3R5cGUuCgpCb290c3RyYXAgYW5kIHRlc3Qgb24g eDg2XzY0IGluIHBhdGNoIHNldC4gIEl0IGZpeGVzIGFsbCAoMTMpIElDRSBh dXRvZmRvIHRlc3RzLgoKVGhhbmtzLApiaW4KMjAxOC0xMS0wMiAgQmluIENo ZW5nICA8YmluLmNoZW5nQGxpbnV4LmFsaWJhYmEuY29tPgoKCSogcHJvZmls ZS1jb3VudC5oIChwcm9maWxlX3Byb2JhYmlsaXR5OjphbHdheXMpOiBBZGQg cGFyYW1ldGVyLgoJKHByb2ZpbGVfcHJvYmFiaWxpdHk6OmludmVydCk6IERv bid0IGludmVydCB1bmluaXRpYWxpemVkIHByb2JhYmlsaXR5LgoKMjAxOC0x MS0wMiAgQmluIENoZW5nICA8YmluLmNoZW5nQGxpbnV4LmFsaWJhYmEuY29t PgoKCSogcHJvZmlsZS1jb3VudC5oIChwcm9maWxlX3Byb2JhYmlsaXR5Ojpu ZXZlcl9wKTogTmV3LgoJKHByb2ZpbGVfcHJvYmFiaWxpdHk6Om9wZXJhdG9y KywgKz0sIC0sIC09LCAqLCAqPSwgLywgLz0pOiBDaGVjayBaRVJPCglwcm9i YWJpbGl0eSB1c2luZyBuZXZlcl9wLgoJKHByb2ZpbGVfcHJvYmFiaWxpdHk6 OmFwcGx5X3NjYWxlKTogTGlrZXdpc2UuCgkocHJvZmlsZV9wcm9iYWJpbGl0 eTo6YXBwbHkpOiBDaGVjayB1c2luZyB1bmluaXRpYWxpemVkX3AuCgkocHJv ZmlsZV9jb3VudDo6emVyb19wKTogTmV3LgoJKHByb2ZpbGVfY291bnQ6OmNv bXBhdGlibGVfcCk6IENoZWNrIFpFUk8gY291bnQgdXNpbmcgemVyb19wLgoJ KHByb2ZpbGVfY291bnQ6Om9wZXJhdG9yKywgKz0sIDwsID4sIDw9LCA+PSwg YXBwbHlfc2NhbGUpOiBMaWtld2lzZS4KCShwcm9maWxlX2NvdW50OjphcHBs eV9wcm9iYWJpbGl0eSwgcHJvYmFiaWxpdHlfaW4pOiBMaWtld2lzZS4KCShw cm9maWxlX2NvdW50OjpvcGVyYXRvci0sIC09KTogTGlrZXdpc2UuICBEb24n dCBxdWljayByZXR1cm4gaWYgUkhTCglwcm9maWxlX2NvdW50IGlzIFpFUk8u CgkocHJvZmlsZV9jb3VudDo6bWF4KTogRG9uJ3QgcXVpY2sgcmV0dXJuIGlu IGNhc2Ugb2YgWkVSTyBjb3VudC4KCSogcHJvZmlsZS1jb3VudC5jIChwcm9m aWxlX2NvdW50Ojp0b19mcmVxdWVuY3kpOiBDaGVjayBaRVJPIHByb2ZpbGUK CXByb2JhYmlsaXR5IG9yIGNvdW50IHVzaW5nIG5ldmVyX3Agb3IgemVyb19w LgoJKHByb2ZpbGVfY291bnQ6OnRvX2NncmFwaF9mcmVxdWVuY3ksIHRvX3Ny ZWFsX3NjYWxlKTogTGlrZXdpc2UuCgkocHJvZmlsZV9jb3VudDo6YWRqdXN0 X2Zvcl9pcGFfc2NhbGluZyk6IExpa2V3aXNlLgoJKHByb2ZpbGVfY291bnQ6 OmNvbWJpbmVfd2l0aF9pcGFfY291bnQpOiBMaWtld2lzZS4KCShwcm9maWxl X3Byb2JhYmlsaXR5Ojpjb21iaW5lX3dpdGhfY291bnQpOiBMaWtld2lzZS4K CSogYmItcmVvcmRlci5jIChzYW5pdGl6ZV9ob3RfcGF0aHMpOiBMaWtld2lz ZS4KCSogY2ZnLmMgKHVwZGF0ZV9iYl9wcm9maWxlX2Zvcl90aHJlYWRpbmcp OiBMaWtld2lzZS4KCShzY2FsZV9iYnNfZnJlcXVlbmNpZXNfcHJvZmlsZV9j b3VudCk6IExpa2V3aXNlLgoJKiBpcGEtcHJvZmlsZS5jIChpcGFfcHJvcGFn YXRlX2ZyZXF1ZW5jeV8xKTogTGlrZXdpc2UuCgkoaXBhX3Byb3BhZ2F0ZV9m cmVxdWVuY3kpOiBMaWtld2lzZS4KCSogaXBhLXV0aWxpdHkuYyAoaXBhX21l cmdlX3Byb2ZpbGVzKTogTGlrZXdpc2UuCgkqIHByZWRpY3QuYyAobWF5YmVf aG90X2NvdW50X3AsIHByb2JhYmx5X25ldmVyX2V4ZWN1dGVkKTogTGlrZXdp c2UuCgkocHJvYmFibHlfbmV2ZXJfZXhlY3V0ZWRfYmJfcCwgdW5saWtlbHlf ZXhlY3V0ZWRfc3RtdF9wKTogTGlrZXdpc2UuCgkoY29tYmluZV9wcmVkaWN0 aW9uc19mb3JfYmIpOiBMaWtld2lzZS4KCShkcm9wX3Byb2ZpbGUsIGhhbmRs ZV9taXNzaW5nX3Byb2ZpbGVzKTogTGlrZXdpc2UuCgkocHJvcGFnYXRlX3Vu bGlrZWx5X2Jic19mb3J3YXJkKTogTGlrZXdpc2UuCgkoZGV0ZXJtaW5lX3Vu bGlrZWx5X2Jicyk6IExpa2V3aXNlLgoJKGVzdGltYXRlX2JiX2ZyZXF1ZW5j aWVzKTogTGlrZXdpc2UuCgkoY29tcHV0ZV9mdW5jdGlvbl9mcmVxdWVuY3ks IGZvcmNlX2VkZ2VfY29sZCk6IExpa2V3aXNlLgoJKiBwcm9maWxlLmMgKGNv bXB1dGVfYnJhbmNoX3Byb2JhYmlsaXRpZXMpOiBMaWtld2lzZS4KCSogc2hy aW5rLXdyYXAuYyAodHJ5X3Nocmlua193cmFwcGluZyk6IExpa2V3aXNlLgoJ KiB0cmVlLXNzYS1sb29wLW1hbmlwLmMgKHNjYWxlX2RvbWluYXRlZF9ibG9j a3NfaW5fbG9vcCk6IExpa2V3aXNlLgoJKHRyZWVfdHJhbnNmb3JtX2FuZF91 bnJvbGxfbG9vcCk6IExpa2V3aXNlLgoJKiB0cmVlLXNzYS10aHJlYWR1cGRh dGUuYyAodXBkYXRlX3Byb2ZpbGUpOiBMaWtld2lzZS4KCSogdHJlZS12ZWN0 LWxvb3AuYyAoc2NhbGVfcHJvZmlsZV9mb3JfdmVjdF9sb29wKTogTGlrZXdp c2Uu ------=ALIBOUNDARY_108766_4b849940_5bdbe0dd_1a95b9 Content-Type: application/octet-stream Content-Disposition: attachment; filename="=?UTF-8?B?MDAwMi1Eb250LWludmVydC11bmluaXRpYWxpemVkLXZhbHVlLnBhdGNo?=" Content-Transfer-Encoding: base64 Content-length: 1879 RnJvbSAwNjMwN2YxYjg2YzYxOWI4NzQ5NGM1NzNlYjU0MzQyYTI1Nzc4ZDcx IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBjaGVuZ2JpbiA8Ymlu LmNoZW5nQGxpbnV4LmFsaWJhYmEuY29tPgpEYXRlOiBUaHUsIDEgTm92IDIw MTggMTI6MTI6NDQgKzA4MDAKU3ViamVjdDogW1BBVENIIDIvNV0gRG9udCBp bnZlcnQgdW5pbml0aWFsaXplZCB2YWx1ZQoKLS0tCiBnY2MvcHJvZmlsZS1j b3VudC5oIHwgMTAgKysrKysrLS0tLQogMSBmaWxlIGNoYW5nZWQsIDYgaW5z ZXJ0aW9ucygrKSwgNCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9nY2Mv cHJvZmlsZS1jb3VudC5oIGIvZ2NjL3Byb2ZpbGUtY291bnQuaAppbmRleCBm NGQwYzM0MGEwYS4uNDI4OWJjNWEwMDQgMTAwNjQ0Ci0tLSBhL2djYy9wcm9m aWxlLWNvdW50LmgKKysrIGIvZ2NjL3Byb2ZpbGUtY291bnQuaApAQCAtMjAw LDExICsyMDAsMTEgQEAgcHVibGljOgogICAgICAgcmV0Lm1fcXVhbGl0eSA9 IHByb2ZpbGVfZ3Vlc3NlZDsKICAgICAgIHJldHVybiByZXQ7CiAgICAgfQot ICBzdGF0aWMgcHJvZmlsZV9wcm9iYWJpbGl0eSBhbHdheXMgKCkKKyAgc3Rh dGljIHByb2ZpbGVfcHJvYmFiaWxpdHkgYWx3YXlzIChlbnVtIHByb2ZpbGVf cXVhbGl0eSBxID0gcHJvZmlsZV9wcmVjaXNlKQogICAgIHsKICAgICAgIHBy b2ZpbGVfcHJvYmFiaWxpdHkgcmV0OwogICAgICAgcmV0Lm1fdmFsID0gbWF4 X3Byb2JhYmlsaXR5OwotICAgICAgcmV0Lm1fcXVhbGl0eSA9IHByb2ZpbGVf cHJlY2lzZTsKKyAgICAgIHJldC5tX3F1YWxpdHkgPSBxOwogICAgICAgcmV0 dXJuIHJldDsKICAgICB9CiAgIC8qIFByb2JhYmlsaXRpZXMgd2hpY2ggaGFz IG5vdCBiZWVuIGluaXRpYWxpemVkLiBFaXRoZXIgYmVjYXVzZQpAQCAtNDU5 LDEwICs0NTksMTIgQEAgcHVibGljOgogICAgICAgcmV0dXJuIFJESVYgKHZh bCAqIG1fdmFsLCBtYXhfcHJvYmFiaWxpdHkpOwogICAgIH0KIAotICAvKiBS ZXR1cm4gMS0qVEhJUy4gICovCisgIC8qIFJldHVybiAxLSpUSElTLiAgSXQn cyBtZWFuaW5nbGVzcyB0byBpbnZlcnQgYW4gdW5pbml0aWFsaXplZCB2YWx1 ZS4gICovCiAgIHByb2ZpbGVfcHJvYmFiaWxpdHkgaW52ZXJ0ICgpIGNvbnN0 CiAgICAgewotICAgICAgcmV0dXJuIHByb2ZpbGVfcHJvYmFiaWxpdHk6OmFs d2F5cygpIC0gKnRoaXM7CisgICAgICBpZiAoISBpbml0aWFsaXplZF9wICgp KQorCXJldHVybiAqdGhpczsKKyAgICAgIHJldHVybiBwcm9maWxlX3Byb2Jh YmlsaXR5OjphbHdheXMgKG1fcXVhbGl0eSkgLSAqdGhpczsKICAgICB9CiAK ICAgLyogUmV0dXJuIFRISVMgd2l0aCBxdWFsaXR5IGRyb3BwZWQgdG8gR1VF U1NFRC4gICovCi0tIAoyLjE0LjQuNDQuZzIwNDViYjYKCg== ------=ALIBOUNDARY_108766_4b849940_5bdbe0dd_1a95b9 Content-Type: application/octet-stream Content-Disposition: attachment; filename="=?UTF-8?B?MDAwMy1DaGVjay16ZXJvLXByb2JhYmlsaXR5LWNvdW50LXVzaW5nLW1lbWJlci1mdW5jdGlvbi5wYXRjaA==?=" Content-Transfer-Encoding: base64 Content-length: 38609 RnJvbSA1YjBlMzhkMTQ2ZmY4Y2Y2MThlYWIxNDRmNDY2MDFkNzRjNWNkMWU1 IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBjaGVuZ2JpbiA8Ymlu LmNoZW5nQGxpbnV4LmFsaWJhYmEuY29tPgpEYXRlOiBUaHUsIDEgTm92IDIw MTggMTI6MTA6MzcgKzA4MDAKU3ViamVjdDogW1BBVENIIDMvNV0gQ2hlY2sg emVybyBwcm9iYWJpbGl0eSBjb3VudCB1c2luZyBtZW1iZXIgZnVuY3Rpb24u CgotLS0KIGdjYy9iYi1yZW9yZGVyLmMgICAgICAgICAgICB8ICA2ICstLQog Z2NjL2NmZy5jICAgICAgICAgICAgICAgICAgIHwgIDQgKy0KIGdjYy9pcGEt cHJvZmlsZS5jICAgICAgICAgICB8ICA2ICstLQogZ2NjL2lwYS11dGlscy5j ICAgICAgICAgICAgIHwgIDYgKy0tCiBnY2MvcHJlZGljdC5jICAgICAgICAg ICAgICAgfCA2NCArKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tCiBn Y2MvcHJvZmlsZS1jb3VudC5jICAgICAgICAgfCAxOCArKysrLS0tLS0KIGdj Yy9wcm9maWxlLWNvdW50LmggICAgICAgICB8IDkyICsrKysrKysrKysrKysr KysrKysrKystLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogZ2NjL3Byb2ZpbGUu YyAgICAgICAgICAgICAgIHwgIDIgKy0KIGdjYy9zaHJpbmstd3JhcC5jICAg ICAgICAgICB8ICAyICstCiBnY2MvdHJlZS1zc2EtbG9vcC1tYW5pcC5jICAg fCAgNCArLQogZ2NjL3RyZWUtc3NhLXRocmVhZHVwZGF0ZS5jIHwgIDIgKy0K IGdjYy90cmVlLXZlY3QtbG9vcC5jICAgICAgICB8ICAyICstCiAxMiBmaWxl cyBjaGFuZ2VkLCAxMDMgaW5zZXJ0aW9ucygrKSwgMTA1IGRlbGV0aW9ucygt KQoKZGlmZiAtLWdpdCBhL2djYy9iYi1yZW9yZGVyLmMgYi9nY2MvYmItcmVv cmRlci5jCmluZGV4IGUyMGRmMTYwNzIzLi4zMzUwNzk5YTFiMSAxMDA2NDQK LS0tIGEvZ2NjL2JiLXJlb3JkZXIuYworKysgYi9nY2MvYmItcmVvcmRlci5j CkBAIC0xNTcyLDggKzE1NzIsNyBAQCBzYW5pdGl6ZV9ob3RfcGF0aHMgKGJv b2wgd2Fsa191cCwgdW5zaWduZWQgaW50IGNvbGRfYmJfY291bnQsCiAgICAg ICAgICAgICBjb250aW51ZTsKIAogCSAgLyogRG8gbm90IGV4cGVjdCBwcm9m aWxlIGluc2FuaXRpZXMgd2hlbiBwcm9maWxlIHdhcyBub3QgYWRqdXN0ZWQu ICAqLwotCSAgaWYgKGUtPnByb2JhYmlsaXR5ID09IHByb2ZpbGVfcHJvYmFi aWxpdHk6Om5ldmVyICgpCi0JICAgICAgfHwgZS0+Y291bnQgKCkgPT0gcHJv ZmlsZV9jb3VudDo6emVybyAoKSkKKwkgIGlmIChlLT5wcm9iYWJpbGl0eS5u ZXZlcl9wICgpIHx8IChlLT5jb3VudCAoKSkuemVyb19wICgpKQogCSAgICBj b250aW51ZTsKIAogICAgICAgICAgIGlmIChCQl9QQVJUSVRJT04gKHJlYWNo X2JiKSAhPSBCQl9DT0xEX1BBUlRJVElPTikKQEAgLTE2MDQsOCArMTYwMyw3 IEBAIHNhbml0aXplX2hvdF9wYXRocyAoYm9vbCB3YWxrX3VwLCB1bnNpZ25l ZCBpbnQgY29sZF9iYl9jb3VudCwKICAgICAgICAgICBpZiAoZS0+ZmxhZ3Mg JiBFREdFX0RGU19CQUNLKQogICAgICAgICAgICAgY29udGludWU7CiAJICAv KiBEbyBub3QgZXhwZWN0IHByb2ZpbGUgaW5zYW5pdGllcyB3aGVuIHByb2Zp bGUgd2FzIG5vdCBhZGp1c3RlZC4gICovCi0JICBpZiAoZS0+cHJvYmFiaWxp dHkgPT0gcHJvZmlsZV9wcm9iYWJpbGl0eTo6bmV2ZXIgKCkKLQkgICAgICB8 fCBlLT5jb3VudCAoKSA9PSBwcm9maWxlX2NvdW50Ojp6ZXJvICgpKQorCSAg aWYgKGUtPnByb2JhYmlsaXR5Lm5ldmVyX3AgKCkgfHwgKGUtPmNvdW50ICgp KS56ZXJvX3AgKCkpCiAJICAgIGNvbnRpbnVlOwogICAgICAgICAgIC8qIFNl bGVjdCB0aGUgaG90dGVzdCBlZGdlIHVzaW5nIHRoZSBlZGdlIGNvdW50LCBp ZiBpdCBpcyBub24temVybywKICAgICAgICAgICAgICB0aGVuIGZhbGxiYWNr IHRvIHRoZSBlZGdlIHByb2JhYmlsaXR5LiAgKi8KZGlmZiAtLWdpdCBhL2dj Yy9jZmcuYyBiL2djYy9jZmcuYwppbmRleCA3YmU4OWQ0MDYwNC4uMWY3NzY0 NDRmODUgMTAwNjQ0Ci0tLSBhL2djYy9jZmcuYworKysgYi9nY2MvY2ZnLmMK QEAgLTkxMSw3ICs5MTEsNyBAQCB1cGRhdGVfYmJfcHJvZmlsZV9mb3JfdGhy ZWFkaW5nIChiYXNpY19ibG9jayBiYiwKICAgLyogTm93IHJlc2NhbGUgdGhl IHByb2JhYmlsaXRpZXMuICAqLwogICB0YWtlbl9lZGdlLT5wcm9iYWJpbGl0 eSAtPSBwcm9iOwogICBwcm9iID0gcHJvYi5pbnZlcnQgKCk7Ci0gIGlmIChw cm9iID09IHByb2ZpbGVfcHJvYmFiaWxpdHk6Om5ldmVyICgpKQorICBpZiAo cHJvYi5uZXZlcl9wICgpKQogICAgIHsKICAgICAgIGlmIChkdW1wX2ZpbGUp CiAJZnByaW50ZiAoZHVtcF9maWxlLCAiRWRnZSBwcm9iYWJpbGl0aWVzIG9m IGJiICVpIGhhcyBiZWVuIHJlc2V0LCAiCkBAIC05NDAsNyArOTQwLDcgQEAg c2NhbGVfYmJzX2ZyZXF1ZW5jaWVzX3Byb2ZpbGVfY291bnQgKGJhc2ljX2Js b2NrICpiYnMsIGludCBuYmJzLAogCQkJCSAgICAgcHJvZmlsZV9jb3VudCBu dW0sIHByb2ZpbGVfY291bnQgZGVuKQogewogICBpbnQgaTsKLSAgaWYgKG51 bSA9PSBwcm9maWxlX2NvdW50Ojp6ZXJvICgpIHx8IGRlbi5ub256ZXJvX3Ag KCkpCisgIGlmIChudW0uemVyb19wICgpIHx8IGRlbi5ub256ZXJvX3AgKCkp CiAgICAgZm9yIChpID0gMDsgaSA8IG5iYnM7IGkrKykKICAgICAgIGJic1tp XS0+Y291bnQgPSBiYnNbaV0tPmNvdW50LmFwcGx5X3NjYWxlIChudW0sIGRl bik7CiB9CmRpZmYgLS1naXQgYS9nY2MvaXBhLXByb2ZpbGUuYyBiL2djYy9p cGEtcHJvZmlsZS5jCmluZGV4IGM3NGY0YTRhNDFkLi42OWU5MjQzMTMyMyAx MDA2NDQKLS0tIGEvZ2NjL2lwYS1wcm9maWxlLmMKKysrIGIvZ2NjL2lwYS1w cm9maWxlLmMKQEAgLTMyNCw3ICszMjQsNyBAQCBpcGFfcHJvcGFnYXRlX2Zy ZXF1ZW5jeV8xIChzdHJ1Y3QgY2dyYXBoX25vZGUgKm5vZGUsIHZvaWQgKmRh dGEpCiAJIGl0IGlzIGV4ZWN1dGVkIGJ5IHRoZSB0cmFpbiBydW4uICBUcmFu c2ZlciB0aGUgZnVuY3Rpb24gb25seSBpZiBhbGwKIAkgY2FsbGVycyBhcmUg dW5saWtlbHkgZXhlY3V0ZWQuICAqLwogICAgICAgaWYgKHByb2ZpbGVfaW5m bwotCSAgJiYgIShlZGdlLT5jYWxsZWUtPmNvdW50LmlwYSAoKSA9PSBwcm9m aWxlX2NvdW50Ojp6ZXJvICgpKQorCSAgJiYgISgoZWRnZS0+Y2FsbGVlLT5j b3VudC5pcGEgKCkpLnplcm9fcCAoKSkKIAkgICYmIChlZGdlLT5jYWxsZXIt PmZyZXF1ZW5jeSAhPSBOT0RFX0ZSRVFVRU5DWV9VTkxJS0VMWV9FWEVDVVRF RAogCSAgICAgIHx8IChlZGdlLT5jYWxsZXItPmdsb2JhbC5pbmxpbmVkX3Rv CiAJCSAgJiYgZWRnZS0+Y2FsbGVyLT5nbG9iYWwuaW5saW5lZF90by0+ZnJl cXVlbmN5CkBAIC00MjgsOCArNDI4LDggQEAgaXBhX3Byb3BhZ2F0ZV9mcmVx dWVuY3kgKHN0cnVjdCBjZ3JhcGhfbm9kZSAqbm9kZSkKICAgaWYgKG5vZGUt PmNvdW50LiBpcGEoKS5pbml0aWFsaXplZF9wICgpKQogICAgIHsKICAgICAg IGJvb2wgaG90ID0gZmFsc2U7Ci0gICAgICBpZiAoIShub2RlLT5jb3VudC4g aXBhKCkgPT0gcHJvZmlsZV9jb3VudDo6emVybyAoKSkKLQkgICYmIG5vZGUt PmNvdW50LiBpcGEoKSA+PSBnZXRfaG90X2JiX3RocmVzaG9sZCAoKSkKKyAg ICAgIGlmICghKChub2RlLT5jb3VudC5pcGEgKCkpLnplcm9fcCAoKSkKKwkg ICYmIG5vZGUtPmNvdW50LmlwYSAoKSA+PSBnZXRfaG90X2JiX3RocmVzaG9s ZCAoKSkKIAlob3QgPSB0cnVlOwogICAgICAgaWYgKCFob3QpCiAJaG90IHw9 IGNvbnRhaW5zX2hvdF9jYWxsX3AgKG5vZGUpOwpkaWZmIC0tZ2l0IGEvZ2Nj L2lwYS11dGlscy5jIGIvZ2NjL2lwYS11dGlscy5jCmluZGV4IDk5ODU3MjFm N2RhLi5kOThlMjI0NjNkYSAxMDA2NDQKLS0tIGEvZ2NjL2lwYS11dGlscy5j CisrKyBiL2djYy9pcGEtdXRpbHMuYwpAQCAtNTMwLDkgKzUzMCw5IEBAIGlw YV9tZXJnZV9wcm9maWxlcyAoc3RydWN0IGNncmFwaF9ub2RlICpkc3QsCiAJ ICAgICBwaWNrIG1vcmUgaW5mb3JtYXRpdmUgb25lICh0aGF0IGlzIG5vbnpl cm8gSVBBIGlmIG90aGVyIGlzCiAJICAgICB1bmluaXRpYWxpemVkLCBndWVz c2VkIG9yIGdsb2JhbDApLiAgICovCiAJICBpZiAoIWRzdGJiLT5jb3VudC5p cGEgKCkuaW5pdGlhbGl6ZWRfcCAoKQotCSAgICAgIHx8IChkc3RiYi0+Y291 bnQuaXBhICgpID09IHByb2ZpbGVfY291bnQ6Onplcm8gKCkKKwkgICAgICB8 fCAoKGRzdGJiLT5jb3VudC5pcGEgKCkpLnplcm9fcCAoKQogCQkgICYmIChz cmNiYi0+Y291bnQuaXBhICgpLmluaXRpYWxpemVkX3AgKCkKLQkJICAgICAg JiYgIShzcmNiYi0+Y291bnQuaXBhICgpID09IHByb2ZpbGVfY291bnQ6Onpl cm8gKCkpKSkpCisJCSAgICAgICYmICEoKHNyY2JiLT5jb3VudC5pcGEgKCkp Lnplcm9fcCAoKSkpKSkKIAkgICAgewogCSAgICAgIGRzdGJiLT5jb3VudCA9 IHNyY2JiLT5jb3VudDsKIAkgICAgICBmb3IgKGkgPSAwOyBpIDwgRURHRV9D T1VOVCAoc3JjYmItPnN1Y2NzKTsgaSsrKQpAQCAtNTQ0LDcgKzU0NCw3IEBA IGlwYV9tZXJnZV9wcm9maWxlcyAoc3RydWN0IGNncmFwaF9ub2RlICpkc3Qs CiAJCX0KIAkgICAgfQkKIAkgIGVsc2UgaWYgKHNyY2JiLT5jb3VudC5pcGEg KCkuaW5pdGlhbGl6ZWRfcCAoKQotCQkgICAmJiAhKHNyY2JiLT5jb3VudC5p cGEgKCkgPT0gcHJvZmlsZV9jb3VudDo6emVybyAoKSkpCisJCSAgICYmICEo KHNyY2JiLT5jb3VudC5pcGEgKCkpLnplcm9fcCAoKSkpCiAJICAgIHsKIAkg ICAgICBmb3IgKGkgPSAwOyBpIDwgRURHRV9DT1VOVCAoc3JjYmItPnN1Y2Nz KTsgaSsrKQogCQl7CmRpZmYgLS1naXQgYS9nY2MvcHJlZGljdC5jIGIvZ2Nj L3ByZWRpY3QuYwppbmRleCBhYjJkYzhlZDAzMS4uMjRkN2M3YjQ1ZDIgMTAw NjQ0Ci0tLSBhL2djYy9wcmVkaWN0LmMKKysrIGIvZ2NjL3ByZWRpY3QuYwpA QCAtMTU1LDcgKzE1NSw3IEBAIG1heWJlX2hvdF9jb3VudF9wIChzdHJ1Y3Qg ZnVuY3Rpb24gKmZ1biwgcHJvZmlsZV9jb3VudCBjb3VudCkKIHsKICAgaWYg KCFjb3VudC5pbml0aWFsaXplZF9wICgpKQogICAgIHJldHVybiB0cnVlOwot ICBpZiAoY291bnQuaXBhICgpID09IHByb2ZpbGVfY291bnQ6Onplcm8gKCkp CisgIGlmICgoY291bnQuaXBhICgpKS56ZXJvX3AgKCkpCiAgICAgcmV0dXJu IGZhbHNlOwogICBpZiAoIWNvdW50LmlwYV9wICgpKQogICAgIHsKQEAgLTIx Miw3ICsyMTIsNyBAQCBwcm9iYWJseV9uZXZlcl9leGVjdXRlZCAoc3RydWN0 IGZ1bmN0aW9uICpmdW4sCiAgICAgICAgICAgICAgICAgICAgICAgICAgcHJv ZmlsZV9jb3VudCBjb3VudCkKIHsKICAgZ2NjX2NoZWNraW5nX2Fzc2VydCAo ZnVuKTsKLSAgaWYgKGNvdW50LmlwYSAoKSA9PSBwcm9maWxlX2NvdW50Ojp6 ZXJvICgpKQorICBpZiAoKGNvdW50LmlwYSAoKSkuemVyb19wICgpKQogICAg IHJldHVybiB0cnVlOwogICAvKiBEbyBub3QgdHJ1c3QgYWRqdXN0ZWQgY291 bnRzLiAgVGhpcyB3aWxsIG1ha2UgdXMgdG8gZHJvcCBpbnQgY29sZCBzZWN0 aW9uCiAgICAgIGNvZGUgd2l0aCBsb3cgZXhlY3V0aW9uIGNvdW50IGFzIGEg cmVzdWx0IG9mIGlubGluaW5nLiBUaGVzZSBsb3cgY291bnRzCkBAIC0yNDgs OCArMjQ4LDggQEAgcHJvYmFibHlfbmV2ZXJfZXhlY3V0ZWRfYmJfcCAoc3Ry dWN0IGZ1bmN0aW9uICpmdW4sIGNvbnN0X2Jhc2ljX2Jsb2NrIGJiKQogc3Rh dGljIGJvb2wKIHVubGlrZWx5X2V4ZWN1dGVkX2VkZ2VfcCAoZWRnZSBlKQog ewotICByZXR1cm4gKGUtPmNvdW50ICgpID09IHByb2ZpbGVfY291bnQ6Onpl cm8gKCkKLQkgIHx8IGUtPnByb2JhYmlsaXR5ID09IHByb2ZpbGVfcHJvYmFi aWxpdHk6Om5ldmVyICgpKQorICByZXR1cm4gKChlLT5jb3VudCAoKSkuemVy b19wICgpCisJICB8fCBlLT5wcm9iYWJpbGl0eS5uZXZlcl9wICgpKQogCSB8 fCAoZS0+ZmxhZ3MgJiAoRURHRV9FSCB8IEVER0VfRkFLRSkpOwogfQogCkBA IC04MTAsNyArODEwLDcgQEAgdW5saWtlbHlfZXhlY3V0ZWRfc3RtdF9wIChn aW1wbGUgKnN0bXQpCiBzdGF0aWMgYm9vbAogdW5saWtlbHlfZXhlY3V0ZWRf YmJfcCAoYmFzaWNfYmxvY2sgYmIpCiB7Ci0gIGlmIChiYi0+Y291bnQgPT0g cHJvZmlsZV9jb3VudDo6emVybyAoKSkKKyAgaWYgKGJiLT5jb3VudC56ZXJv X3AgKCkpCiAgICAgcmV0dXJuIHRydWU7CiAgIGlmIChiYiA9PSBFTlRSWV9C TE9DS19QVFJfRk9SX0ZOIChjZnVuKSB8fCBiYiA9PSBFWElUX0JMT0NLX1BU Ul9GT1JfRk4gKGNmdW4pKQogICAgIHJldHVybiBmYWxzZTsKQEAgLTExODcs NyArMTE4Nyw3IEBAIGNvbWJpbmVfcHJlZGljdGlvbnNfZm9yX2JiIChiYXNp Y19ibG9jayBiYiwgYm9vbCBkcnlfcnVuKQogICAgICAgICBlLT5wcm9iYWJp bGl0eSA9IHByb2ZpbGVfcHJvYmFiaWxpdHk6Om5ldmVyICgpOwogICAgICBp ZiAoIWUtPnByb2JhYmlsaXR5LmluaXRpYWxpemVkX3AgKCkpCiAgICAgICAg IG51bmtub3duKys7Ci0gICAgIGVsc2UgaWYgKGUtPnByb2JhYmlsaXR5ID09 IHByb2ZpbGVfcHJvYmFiaWxpdHk6Om5ldmVyICgpKQorICAgICBlbHNlIGlm IChlLT5wcm9iYWJpbGl0eS5uZXZlcl9wICgpKQogCW56ZXJvKys7CiAgICAg fQogCkBAIC0zNDUyLDcgKzM0NTIsNyBAQCBkcm9wX3Byb2ZpbGUgKHN0cnVj dCBjZ3JhcGhfbm9kZSAqbm9kZSwgcHJvZmlsZV9jb3VudCBjYWxsX2NvdW50 KQogICAgICAgYm9vbCBjbGVhcl96ZXJvcwogCSA9ICFFTlRSWV9CTE9DS19Q VFJfRk9SX0ZOIChmbiktPmNvdW50Lm5vbnplcm9fcCAoKTsKICAgICAgIEZP Ul9BTExfQkJfRk4gKGJiLCBmbikKLQlpZiAoY2xlYXJfemVyb3MgfHwgIShi Yi0+Y291bnQgPT0gcHJvZmlsZV9jb3VudDo6emVybyAoKSkpCisJaWYgKGNs ZWFyX3plcm9zIHx8ICEoYmItPmNvdW50Lnplcm9fcCAoKSkpCiAJICBiYi0+ Y291bnQgPSBiYi0+Y291bnQuZ3Vlc3NlZF9sb2NhbCAoKTsKICAgICAgIGZu LT5jZmctPmNvdW50X21heCA9IGZuLT5jZmctPmNvdW50X21heC5ndWVzc2Vk X2xvY2FsICgpOwogICAgIH0KQEAgLTM1NDMsNyArMzU0Myw3IEBAIGhhbmRs ZV9taXNzaW5nX3Byb2ZpbGVzICh2b2lkKQogICAgICAgICAgIHN0cnVjdCBj Z3JhcGhfbm9kZSAqY2FsbGVlID0gZS0+Y2FsbGVlOwogICAgICAgICAgIHN0 cnVjdCBmdW5jdGlvbiAqZm4gPSBERUNMX1NUUlVDVF9GVU5DVElPTiAoY2Fs bGVlLT5kZWNsKTsKIAotICAgICAgICAgIGlmICghKGUtPmNvdW50LmlwYSAo KSA9PSBwcm9maWxlX2NvdW50Ojp6ZXJvICgpKQorICAgICAgICAgIGlmICgh KChlLT5jb3VudC5pcGEgKCkpLnplcm9fcCAoKSkKIAkgICAgICAmJiBjYWxs ZWUtPmNvdW50LmlwYSAoKS5ub256ZXJvX3AgKCkpCiAgICAgICAgICAgICBj b250aW51ZTsKICAgICAgICAgICBpZiAoKERFQ0xfQ09NREFUIChjYWxsZWUt PmRlY2wpIHx8IERFQ0xfRVhURVJOQUwgKGNhbGxlZS0+ZGVjbCkpCkBAIC0z NjI3LDcgKzM2MjcsNyBAQCBwcm9wYWdhdGVfdW5saWtlbHlfYmJzX2Zvcndh cmQgKHZvaWQpCiAgIGVkZ2VfaXRlcmF0b3IgZWk7CiAgIGVkZ2UgZTsKIAot ICBpZiAoIShFTlRSWV9CTE9DS19QVFJfRk9SX0ZOIChjZnVuKS0+Y291bnQg PT0gcHJvZmlsZV9jb3VudDo6emVybyAoKSkpCisgIGlmICghKEVOVFJZX0JM T0NLX1BUUl9GT1JfRk4gKGNmdW4pLT5jb3VudC56ZXJvX3AgKCkpKQogICAg IHsKICAgICAgIEVOVFJZX0JMT0NLX1BUUl9GT1JfRk4gKGNmdW4pLT5hdXgg PSAodm9pZCAqKShzaXplX3QpIDE7CiAgICAgICB3b3JrbGlzdC5zYWZlX3B1 c2ggKEVOVFJZX0JMT0NLX1BUUl9GT1JfRk4gKGNmdW4pKTsKQEAgLTM2MzYs OCArMzYzNiw4IEBAIHByb3BhZ2F0ZV91bmxpa2VseV9iYnNfZm9yd2FyZCAo dm9pZCkKIAl7CiAJICBiYiA9IHdvcmtsaXN0LnBvcCAoKTsKIAkgIEZPUl9F QUNIX0VER0UgKGUsIGVpLCBiYi0+c3VjY3MpCi0JICAgIGlmICghKGUtPmNv dW50ICgpID09IHByb2ZpbGVfY291bnQ6Onplcm8gKCkpCi0JCSYmICEoZS0+ ZGVzdC0+Y291bnQgPT0gcHJvZmlsZV9jb3VudDo6emVybyAoKSkKKwkgICAg aWYgKCEoKGUtPmNvdW50ICgpKS56ZXJvX3AgKCkpCisJCSYmICEoZS0+ZGVz dC0+Y291bnQuemVyb19wICgpKQogCQkmJiAhZS0+ZGVzdC0+YXV4KQogCSAg ICAgIHsKIAkJZS0+ZGVzdC0+YXV4ID0gKHZvaWQgKikoc2l6ZV90KSAxOwpA QCAtMzY1MCw3ICszNjUwLDcgQEAgcHJvcGFnYXRlX3VubGlrZWx5X2Jic19m b3J3YXJkICh2b2lkKQogICAgIHsKICAgICAgIGlmICghYmItPmF1eCkKIAl7 Ci0JICBpZiAoIShiYi0+Y291bnQgPT0gcHJvZmlsZV9jb3VudDo6emVybyAo KSkKKwkgIGlmICghKGJiLT5jb3VudC56ZXJvX3AgKCkpCiAJICAgICAgJiYg KGR1bXBfZmlsZSAmJiAoZHVtcF9mbGFncyAmIFRERl9ERVRBSUxTKSkpCiAJ ICAgIGZwcmludGYgKGR1bXBfZmlsZSwKIAkJICAgICAiQmFzaWMgYmxvY2sg JWkgaXMgbWFya2VkIHVubGlrZWx5IGJ5IGZvcndhcmQgcHJvcFxuIiwKQEAg LTM2NzcsNyArMzY3Nyw3IEBAIGRldGVybWluZV91bmxpa2VseV9iYnMgKCkK IAogICBGT1JfRUFDSF9CQl9GTiAoYmIsIGNmdW4pCiAgICAgewotICAgICAg aWYgKCEoYmItPmNvdW50ID09IHByb2ZpbGVfY291bnQ6Onplcm8gKCkpCisg ICAgICBpZiAoIShiYi0+Y291bnQuemVyb19wICgpKQogCSAgJiYgdW5saWtl bHlfZXhlY3V0ZWRfYmJfcCAoYmIpKQogCXsKICAgICAgICAgICBpZiAoZHVt cF9maWxlICYmIChkdW1wX2ZsYWdzICYgVERGX0RFVEFJTFMpKQpAQCAtMzY4 Nyw3ICszNjg3LDcgQEAgZGV0ZXJtaW5lX3VubGlrZWx5X2JicyAoKQogCX0K IAogICAgICAgRk9SX0VBQ0hfRURHRSAoZSwgZWksIGJiLT5zdWNjcykKLQlp ZiAoIShlLT5wcm9iYWJpbGl0eSA9PSBwcm9maWxlX3Byb2JhYmlsaXR5Ojpu ZXZlciAoKSkKKwlpZiAoIShlLT5wcm9iYWJpbGl0eS5uZXZlcl9wICgpKQog CSAgICAmJiB1bmxpa2VseV9leGVjdXRlZF9lZGdlX3AgKGUpKQogCSAgewog ICAgICAgICAgICAgaWYgKGR1bXBfZmlsZSAmJiAoZHVtcF9mbGFncyAmIFRE Rl9ERVRBSUxTKSkKQEAgLTM3MDMsMTMgKzM3MDMsMTMgQEAgZGV0ZXJtaW5l X3VubGlrZWx5X2JicyAoKQogICBhdXRvX3ZlYzxpbnQsIDY0PiBuc3VjY3M7 CiAgIG5zdWNjcy5zYWZlX2dyb3dfY2xlYXJlZCAobGFzdF9iYXNpY19ibG9j a19mb3JfZm4gKGNmdW4pKTsKICAgRk9SX0FMTF9CQl9GTiAoYmIsIGNmdW4p Ci0gICAgaWYgKCEoYmItPmNvdW50ID09IHByb2ZpbGVfY291bnQ6Onplcm8g KCkpCisgICAgaWYgKCEoYmItPmNvdW50Lnplcm9fcCAoKSkKIAkmJiBiYiAh PSBFWElUX0JMT0NLX1BUUl9GT1JfRk4gKGNmdW4pKQogICAgICAgewogCW5z dWNjc1tiYi0+aW5kZXhdID0gMDsKICAgICAgICAgRk9SX0VBQ0hfRURHRSAo ZSwgZWksIGJiLT5zdWNjcykKLQkgIGlmICghKGUtPnByb2JhYmlsaXR5ID09 IHByb2ZpbGVfcHJvYmFiaWxpdHk6Om5ldmVyICgpKQotCSAgICAgICYmICEo ZS0+ZGVzdC0+Y291bnQgPT0gcHJvZmlsZV9jb3VudDo6emVybyAoKSkpCisJ ICBpZiAoIShlLT5wcm9iYWJpbGl0eS5uZXZlcl9wICgpKQorCSAgICAgICYm ICEoZS0+ZGVzdC0+Y291bnQuemVyb19wICgpKSkKIAkgICAgbnN1Y2NzW2Ji LT5pbmRleF0rKzsKIAlpZiAoIW5zdWNjc1tiYi0+aW5kZXhdKQogCSAgd29y a2xpc3Quc2FmZV9wdXNoIChiYik7CkBAIC0zNzE3LDcgKzM3MTcsNyBAQCBk ZXRlcm1pbmVfdW5saWtlbHlfYmJzICgpCiAgIHdoaWxlICh3b3JrbGlzdC5s ZW5ndGggKCkgPiAwKQogICAgIHsKICAgICAgIGJiID0gd29ya2xpc3QucG9w ICgpOwotICAgICAgaWYgKGJiLT5jb3VudCA9PSBwcm9maWxlX2NvdW50Ojp6 ZXJvICgpKQorICAgICAgaWYgKGJiLT5jb3VudC56ZXJvX3AgKCkpCiAJY29u dGludWU7CiAgICAgICBpZiAoYmIgIT0gRU5UUllfQkxPQ0tfUFRSX0ZPUl9G TiAoY2Z1bikpCiAJewpAQCAtMzc0Myw5ICszNzQzLDkgQEAgZGV0ZXJtaW5l X3VubGlrZWx5X2JicyAoKQogCQkgYmItPmluZGV4KTsKICAgICAgIGJiLT5j b3VudCA9IHByb2ZpbGVfY291bnQ6Onplcm8gKCk7CiAgICAgICBGT1JfRUFD SF9FREdFIChlLCBlaSwgYmItPnByZWRzKQotCWlmICghKGUtPnByb2JhYmls aXR5ID09IHByb2ZpbGVfcHJvYmFiaWxpdHk6Om5ldmVyICgpKSkKKwlpZiAo IShlLT5wcm9iYWJpbGl0eS5uZXZlcl9wICgpKSkKIAkgIHsKLQkgICAgaWYg KCEoZS0+c3JjLT5jb3VudCA9PSBwcm9maWxlX2NvdW50Ojp6ZXJvICgpKSkK KwkgICAgaWYgKCEoZS0+c3JjLT5jb3VudC56ZXJvX3AgKCkpKQogCSAgICAg IHsKIAkJZ2NjX2NoZWNraW5nX2Fzc2VydCAobnN1Y2NzW2UtPnNyYy0+aW5k ZXhdID4gMCk7CiAJICAgICAgICBuc3VjY3NbZS0+c3JjLT5pbmRleF0tLTsK QEAgLTM3NTYsMTAgKzM3NTYsMTAgQEAgZGV0ZXJtaW5lX3VubGlrZWx5X2Ji cyAoKQogICAgIH0KICAgLyogRmluYWxseSBhbGwgZWRnZXMgZnJvbSBub24t MCByZWdpb25zIHRvIDAgYXJlIHVubGlrZWx5LiAgKi8KICAgRk9SX0FMTF9C Ql9GTiAoYmIsIGNmdW4pCi0gICAgaWYgKCEoYmItPmNvdW50ID09IHByb2Zp bGVfY291bnQ6Onplcm8gKCkpKQorICAgIGlmICghKGJiLT5jb3VudC56ZXJv X3AgKCkpKQogICAgICAgRk9SX0VBQ0hfRURHRSAoZSwgZWksIGJiLT5zdWNj cykKLQlpZiAoIShlLT5wcm9iYWJpbGl0eSA9PSBwcm9maWxlX3Byb2JhYmls aXR5OjpuZXZlciAoKSkKLQkgICAgJiYgZS0+ZGVzdC0+Y291bnQgPT0gcHJv ZmlsZV9jb3VudDo6emVybyAoKSkKKwlpZiAoIShlLT5wcm9iYWJpbGl0eS5u ZXZlcl9wICgpKQorCSAgICAmJiBlLT5kZXN0LT5jb3VudC56ZXJvX3AgKCkp CiAJICAgewogCSAgICAgaWYgKGR1bXBfZmlsZSAmJiAoZHVtcF9mbGFncyAm IFRERl9ERVRBSUxTKSkKIAkgICAgICAgZnByaW50ZiAoZHVtcF9maWxlLCAi RWRnZSAlaS0+JWkgaXMgdW5saWtlbHkgYmVjYXVzZSAiCkBAIC0zNzY3LDcg KzM3NjcsNyBAQCBkZXRlcm1pbmVfdW5saWtlbHlfYmJzICgpCiAJCQliYi0+ aW5kZXgsIGUtPmRlc3QtPmluZGV4KTsKIAkgICAgIGUtPnByb2JhYmlsaXR5 ID0gcHJvZmlsZV9wcm9iYWJpbGl0eTo6bmV2ZXIgKCk7CiAJICAgfQotICBp ZiAoRU5UUllfQkxPQ0tfUFRSX0ZPUl9GTiAoY2Z1biktPmNvdW50ID09IHBy b2ZpbGVfY291bnQ6Onplcm8gKCkpCisgIGlmIChFTlRSWV9CTE9DS19QVFJf Rk9SX0ZOIChjZnVuKS0+Y291bnQuemVyb19wICgpKQogICAgIGNncmFwaF9u b2RlOjpnZXQgKGN1cnJlbnRfZnVuY3Rpb25fZGVjbCktPmNvdW50ID0gcHJv ZmlsZV9jb3VudDo6emVybyAoKTsKIH0KIApAQCAtMzg0OSw3ICszODQ5LDcg QEAgZXN0aW1hdGVfYmJfZnJlcXVlbmNpZXMgKGJvb2wgZm9yY2UpCiAKIAkg IC8qIElmIHdlIGhhdmUgcHJvZmlsZSBmZWVkYmFjayBpbiB3aGljaCB0aGlz IGZ1bmN0aW9uIHdhcyBuZXZlcgogCSAgICAgZXhlY3V0ZWQsIHRoZW4gcHJl c2VydmUgdGhpcyBpbmZvLiAgKi8KLQkgIGlmICghKGJiLT5jb3VudCA9PSBw cm9maWxlX2NvdW50Ojp6ZXJvICgpKSkKKwkgIGlmICghKGJiLT5jb3VudC56 ZXJvX3AgKCkpKQogCSAgICBiYi0+Y291bnQgPSBjb3VudC5ndWVzc2VkX2xv Y2FsICgpLmNvbWJpbmVfd2l0aF9pcGFfY291bnQgKGlwYV9jb3VudCk7CiAg ICAgICAgICAgY2Z1bi0+Y2ZnLT5jb3VudF9tYXggPSBjZnVuLT5jZmctPmNv dW50X21heC5tYXggKGJiLT5jb3VudCk7CiAJfQpAQCAtMzg3Nyw3ICszODc3 LDcgQEAgY29tcHV0ZV9mdW5jdGlvbl9mcmVxdWVuY3kgKHZvaWQpCiAgICAg ewogICAgICAgaW50IGZsYWdzID0gZmxhZ3NfZnJvbV9kZWNsX29yX3R5cGUg KGN1cnJlbnRfZnVuY3Rpb25fZGVjbCk7CiAgICAgICBpZiAoKEVOVFJZX0JM T0NLX1BUUl9GT1JfRk4gKGNmdW4pLT5jb3VudC5pcGFfcCAoKQotCSAgICYm IEVOVFJZX0JMT0NLX1BUUl9GT1JfRk4gKGNmdW4pLT5jb3VudC5pcGEoKSA9 PSBwcm9maWxlX2NvdW50Ojp6ZXJvICgpKQorCSAgICYmIChFTlRSWV9CTE9D S19QVFJfRk9SX0ZOIChjZnVuKS0+Y291bnQuaXBhKCkpLnplcm9fcCAoKSkK IAkgIHx8IGxvb2t1cF9hdHRyaWJ1dGUgKCJjb2xkIiwgREVDTF9BVFRSSUJV VEVTIChjdXJyZW50X2Z1bmN0aW9uX2RlY2wpKQogCSAgICAgIT0gTlVMTCkK IAl7CkBAIC0zODk5LDcgKzM4OTksNyBAQCBjb21wdXRlX2Z1bmN0aW9uX2Zy ZXF1ZW5jeSAodm9pZCkKIAogICBub2RlLT5mcmVxdWVuY3kgPSBOT0RFX0ZS RVFVRU5DWV9VTkxJS0VMWV9FWEVDVVRFRDsKICAgd2Fybl9mdW5jdGlvbl9j b2xkIChjdXJyZW50X2Z1bmN0aW9uX2RlY2wpOwotICBpZiAoRU5UUllfQkxP Q0tfUFRSX0ZPUl9GTiAoY2Z1biktPmNvdW50LmlwYSgpID09IHByb2ZpbGVf Y291bnQ6Onplcm8gKCkpCisgIGlmICgoRU5UUllfQkxPQ0tfUFRSX0ZPUl9G TiAoY2Z1biktPmNvdW50LmlwYSgpKS56ZXJvX3AgKCkpCiAgICAgcmV0dXJu OwogICBGT1JfRUFDSF9CQl9GTiAoYmIsIGNmdW4pCiAgICAgewpAQCAtNDI0 Miw3ICs0MjQyLDcgQEAgZm9yY2VfZWRnZV9jb2xkIChlZGdlIGUsIGJvb2wg aW1wb3NzaWJsZSkKIAogICAvKiBJZiBlZGdlIGlzIGFscmVhZHkgaW1wcm9i YWJseSBvciBjb2xkLCBqdXN0IHJldHVybi4gICovCiAgIGlmIChlLT5wcm9i YWJpbGl0eSA8PSBnb2FsCi0gICAgICAmJiAoIWltcG9zc2libGUgfHwgZS0+ Y291bnQgKCkgPT0gcHJvZmlsZV9jb3VudDo6emVybyAoKSkpCisgICAgICAm JiAoIWltcG9zc2libGUgfHwgKGUtPmNvdW50ICgpKS56ZXJvX3AgKCkpKQog ICAgIHJldHVybjsKICAgRk9SX0VBQ0hfRURHRSAoZTIsIGVpLCBlLT5zcmMt PnN1Y2NzKQogICAgIGlmIChlMiAhPSBlKQpAQCAtNDI4OCw3ICs0Mjg4LDcg QEAgZm9yY2VfZWRnZV9jb2xkIChlZGdlIGUsIGJvb2wgaW1wb3NzaWJsZSkK ICAgICAgaXMgdW5saWtlbHkuICAqLwogICBlbHNlCiAgICAgewotICAgICAg aWYgKHByb2Jfc3VtID09IHByb2ZpbGVfcHJvYmFiaWxpdHk6Om5ldmVyICgp KQorICAgICAgaWYgKHByb2Jfc3VtLm5ldmVyX3AgKCkpCiAgICAgICAgIGUt PnByb2JhYmlsaXR5ID0gcHJvZmlsZV9wcm9iYWJpbGl0eTo6YWx3YXlzICgp OwogICAgICAgZWxzZQogCXsKQEAgLTQzMDEsOSArNDMwMSw5IEBAIGZvcmNl X2VkZ2VfY29sZCAoZWRnZSBlLCBib29sIGltcG9zc2libGUpCiAgICAgICBp ZiAoY3VycmVudF9pcl90eXBlICgpICE9IElSX0dJTVBMRQogCSAgJiYgZS0+ c3JjICE9IEVOVFJZX0JMT0NLX1BUUl9GT1JfRk4gKGNmdW4pKQogCXVwZGF0 ZV9icl9wcm9iX25vdGUgKGUtPnNyYyk7Ci0gICAgICBpZiAoZS0+c3JjLT5j b3VudCA9PSBwcm9maWxlX2NvdW50Ojp6ZXJvICgpKQorICAgICAgaWYgKGUt PnNyYy0+Y291bnQuemVyb19wICgpKQogCXJldHVybjsKLSAgICAgIGlmIChj b3VudF9zdW0gPT0gcHJvZmlsZV9jb3VudDo6emVybyAoKSAmJiBpbXBvc3Np YmxlKQorICAgICAgaWYgKGNvdW50X3N1bS56ZXJvX3AgKCkgJiYgaW1wb3Nz aWJsZSkKIAl7CiAJICBib29sIGZvdW5kID0gZmFsc2U7CiAJICBpZiAoZS0+ c3JjID09IEVOVFJZX0JMT0NLX1BUUl9GT1JfRk4gKGNmdW4pKQpAQCAtNDM0 MCw3ICs0MzQwLDcgQEAgZm9yY2VfZWRnZV9jb2xkIChlZGdlIGUsIGJvb2wg aW1wb3NzaWJsZSkKIAkgQkIgaGFzIG9ubHkgb25lIHByZWRlY2VzdG9yLiAg VGhpcyBpcyBjb21tb24gY2FzZSB3aGVuIHdlIGFyZSB1cGRhdGluZwogCSBh ZnRlciBsb29wIHRyYW5zZm9ybXMuICAqLwogICAgICAgaWYgKCEocHJvYl9z dW0gPiBwcm9maWxlX3Byb2JhYmlsaXR5OjpuZXZlciAoKSkKLQkgICYmIGNv dW50X3N1bSA9PSBwcm9maWxlX2NvdW50Ojp6ZXJvICgpCisJICAmJiBjb3Vu dF9zdW0uemVyb19wICgpCiAJICAmJiBzaW5nbGVfcHJlZF9wIChlLT5zcmMp ICYmIGUtPnNyYy0+Y291bnQudG9fZnJlcXVlbmN5IChjZnVuKQogCSAgICAg PiAoaW1wb3NzaWJsZSA/IDAgOiAxKSkKIAl7CmRpZmYgLS1naXQgYS9nY2Mv cHJvZmlsZS1jb3VudC5jIGIvZ2NjL3Byb2ZpbGUtY291bnQuYwppbmRleCBm NGFiMjQ0ZTNhMy4uMGU2MTA5Y2Q3YjggMTAwNjQ0Ci0tLSBhL2djYy9wcm9m aWxlLWNvdW50LmMKKysrIGIvZ2NjL3Byb2ZpbGUtY291bnQuYwpAQCAtMjU4 LDcgKzI1OCw3IEBAIHByb2ZpbGVfY291bnQ6OnRvX2ZyZXF1ZW5jeSAoc3Ry dWN0IGZ1bmN0aW9uICpmdW4pIGNvbnN0CiB7CiAgIGlmICghaW5pdGlhbGl6 ZWRfcCAoKSkKICAgICByZXR1cm4gQkJfRlJFUV9NQVg7Ci0gIGlmICgqdGhp cyA9PSBwcm9maWxlX2NvdW50Ojp6ZXJvICgpKQorICBpZiAodGhpcy0+emVy b19wICgpKQogICAgIHJldHVybiAwOwogICBnY2NfYXNzZXJ0IChSRUdfQlJf UFJPQl9CQVNFID09IEJCX0ZSRVFfTUFYCiAJICAgICAgJiYgZnVuLT5jZmct PmNvdW50X21heC5pbml0aWFsaXplZF9wICgpKTsKQEAgLTI3Nyw3ICsyNzcs NyBAQCBwcm9maWxlX2NvdW50Ojp0b19jZ3JhcGhfZnJlcXVlbmN5IChwcm9m aWxlX2NvdW50IGVudHJ5X2JiX2NvdW50KSBjb25zdAogewogICBpZiAoIWlu aXRpYWxpemVkX3AgKCkgfHwgIWVudHJ5X2JiX2NvdW50LmluaXRpYWxpemVk X3AgKCkpCiAgICAgcmV0dXJuIENHUkFQSF9GUkVRX0JBU0U7Ci0gIGlmICgq dGhpcyA9PSBwcm9maWxlX2NvdW50Ojp6ZXJvICgpKQorICBpZiAodGhpcy0+ emVyb19wICgpKQogICAgIHJldHVybiAwOwogICBnY2NfY2hlY2tpbmdfYXNz ZXJ0IChlbnRyeV9iYl9jb3VudC5pbml0aWFsaXplZF9wICgpKTsKICAgdWlu dDY0X3Qgc2NhbGU7CkBAIC0zMDAsNyArMzAwLDcgQEAgcHJvZmlsZV9jb3Vu dDo6dG9fc3JlYWxfc2NhbGUgKHByb2ZpbGVfY291bnQgaW4sIGJvb2wgKmtu b3duKSBjb25zdAogICAgIH0KICAgaWYgKGtub3duKQogICAgICprbm93biA9 IHRydWU7Ci0gIGlmICgqdGhpcyA9PSBwcm9maWxlX2NvdW50Ojp6ZXJvICgp KQorICBpZiAodGhpcy0+emVyb19wICgpKQogICAgIHJldHVybiAwOwogCiAg IGlmICghaW4ubV92YWwpCkBAIC0zMjcsNyArMzI3LDcgQEAgcHJvZmlsZV9j b3VudDo6YWRqdXN0X2Zvcl9pcGFfc2NhbGluZyAocHJvZmlsZV9jb3VudCAq bnVtLAogICBpZiAoKm51bSA9PSAqZGVuKQogICAgIHJldHVybjsKICAgLyog U2NhbGluZyB0byB6ZXJvIGlzIGFsd2F5cyB6ZXJvLiAgKi8KLSAgaWYgKCpu dW0gPT0gcHJvZmlsZV9jb3VudDo6emVybyAoKSkKKyAgaWYgKG51bS0+emVy b19wICgpKQogICAgIHJldHVybjsKICAgLyogSWYgZGVuIGlzIG5vbi16ZXJv IHdlIGFyZSBzYWZlLiAgKi8KICAgaWYgKGRlbi0+Zm9yY2Vfbm9uemVybyAo KSA9PSAqZGVuKQpAQCAtMzQ5LDkgKzM0OSw5IEBAIHByb2ZpbGVfY291bnQ6 OmNvbWJpbmVfd2l0aF9pcGFfY291bnQgKHByb2ZpbGVfY291bnQgaXBhKQog ICBpcGEgPSBpcGEuaXBhICgpOwogICBpZiAoaXBhLm5vbnplcm9fcCAoKSkK ICAgICByZXR1cm4gaXBhOwotICBpZiAoIWlwYS5pbml0aWFsaXplZF9wICgp IHx8ICp0aGlzID09IHByb2ZpbGVfY291bnQ6Onplcm8gKCkpCisgIGlmICgh aXBhLmluaXRpYWxpemVkX3AgKCkgfHwgdGhpcy0+emVyb19wICgpKQogICAg IHJldHVybiAqdGhpczsKLSAgaWYgKGlwYSA9PSBwcm9maWxlX2NvdW50Ojp6 ZXJvICgpKQorICBpZiAoaXBhLnplcm9fcCAoKSkKICAgICByZXR1cm4gdGhp cy0+Z2xvYmFsMCAoKTsKICAgcmV0dXJuIHRoaXMtPmdsb2JhbDBhZGp1c3Rl ZCAoKTsKIH0KQEAgLTM4NywxMCArMzg3LDEwIEBAIHByb2ZpbGVfcHJvYmFi aWxpdHk6OmNvbWJpbmVfd2l0aF9jb3VudCAocHJvZmlsZV9jb3VudCBjb3Vu dDEsCiAgICAgIElmIGNvdW50cyBhcmUgbm9uemVybyB3ZSBjYW4gZGlzdHJp YnV0ZSBhY2NvcmRpbmdseS4gSW4gcmVtYWluaW5nCiAgICAgIGNhc2VzIGp1 c3QgYXZyZWFnZSB0aGUgdmFsdWVzIGFuZCBob3BlIGZvciB0aGUgYmVzdC4g ICovCiAgIGlmICgqdGhpcyA9PSBvdGhlciB8fCBjb3VudDEgPT0gY291bnQy Ci0gICAgICB8fCAoY291bnQyID09IHByb2ZpbGVfY291bnQ6Onplcm8gKCkK LQkgICYmICEoY291bnQxID09IHByb2ZpbGVfY291bnQ6Onplcm8gKCkpKSkK KyAgICAgIHx8IChjb3VudDIuemVyb19wICgpCisJICAmJiAhKGNvdW50MS56 ZXJvX3AgKCkpKSkKICAgICByZXR1cm4gKnRoaXM7Ci0gIGlmIChjb3VudDEg PT0gcHJvZmlsZV9jb3VudDo6emVybyAoKSAmJiAhKGNvdW50MiA9PSBwcm9m aWxlX2NvdW50Ojp6ZXJvICgpKSkKKyAgaWYgKGNvdW50MS56ZXJvX3AgKCkg JiYgIShjb3VudDIuemVyb19wICgpKSkKICAgICByZXR1cm4gb3RoZXI7CiAg IGVsc2UgaWYgKGNvdW50MS5ub256ZXJvX3AgKCkgfHwgY291bnQyLm5vbnpl cm9fcCAoKSkKICAgICByZXR1cm4gKnRoaXMgKiBjb3VudDEucHJvYmFiaWxp dHlfaW4gKGNvdW50MSArIGNvdW50MikKZGlmZiAtLWdpdCBhL2djYy9wcm9m aWxlLWNvdW50LmggYi9nY2MvcHJvZmlsZS1jb3VudC5oCmluZGV4IDQyODli YzVhMDA0Li4yYjVlMzI2OTI1MCAxMDA2NDQKLS0tIGEvZ2NjL3Byb2ZpbGUt Y291bnQuaAorKysgYi9nY2MvcHJvZmlsZS1jb3VudC5oCkBAIC0yMTgsNiAr MjE4LDExIEBAIHB1YmxpYzoKICAgICB9CiAKIAorICAvKiBSZXR1cm4gdHJ1 ZSBpZiB2YWx1ZSBpcyB6ZXJvLiAgKi8KKyAgYm9vbCBuZXZlcl9wICgpIGNv bnN0CisgICAgeworICAgICAgcmV0dXJuIG1fdmFsID09IDA7CisgICAgfQog ICAvKiBSZXR1cm4gdHJ1ZSBpZiB2YWx1ZSBoYXMgYmVlbiBpbml0aWFsaXpl ZC4gICovCiAgIGJvb2wgaW5pdGlhbGl6ZWRfcCAoKSBjb25zdAogICAgIHsK QEAgLTI4OCw5ICsyOTMsOSBAQCBwdWJsaWM6CiAgICAgfQogICBwcm9maWxl X3Byb2JhYmlsaXR5IG9wZXJhdG9yKyAoY29uc3QgcHJvZmlsZV9wcm9iYWJp bGl0eSAmb3RoZXIpIGNvbnN0CiAgICAgewotICAgICAgaWYgKG90aGVyID09 IHByb2ZpbGVfcHJvYmFiaWxpdHk6Om5ldmVyICgpKQorICAgICAgaWYgKG90 aGVyLm5ldmVyX3AgKCkpCiAJcmV0dXJuICp0aGlzOwotICAgICAgaWYgKCp0 aGlzID09IHByb2ZpbGVfcHJvYmFiaWxpdHk6Om5ldmVyICgpKQorICAgICAg aWYgKHRoaXMtPm5ldmVyX3AgKCkpCiAJcmV0dXJuIG90aGVyOwogICAgICAg aWYgKCFpbml0aWFsaXplZF9wICgpIHx8ICFvdGhlci5pbml0aWFsaXplZF9w ICgpKQogCXJldHVybiBwcm9maWxlX3Byb2JhYmlsaXR5Ojp1bmluaXRpYWxp emVkICgpOwpAQCAtMzAyLDkgKzMwNyw5IEBAIHB1YmxpYzoKICAgICB9CiAg IHByb2ZpbGVfcHJvYmFiaWxpdHkgJm9wZXJhdG9yKz0gKGNvbnN0IHByb2Zp bGVfcHJvYmFiaWxpdHkgJm90aGVyKQogICAgIHsKLSAgICAgIGlmIChvdGhl ciA9PSBwcm9maWxlX3Byb2JhYmlsaXR5OjpuZXZlciAoKSkKKyAgICAgIGlm IChvdGhlci5uZXZlcl9wICgpKQogCXJldHVybiAqdGhpczsKLSAgICAgIGlm ICgqdGhpcyA9PSBwcm9maWxlX3Byb2JhYmlsaXR5OjpuZXZlciAoKSkKKyAg ICAgIGlmICh0aGlzLT5uZXZlcl9wICgpKQogCXsKIAkgICp0aGlzID0gb3Ro ZXI7CiAJICByZXR1cm4gKnRoaXM7CkBAIC0zMjAsOCArMzI1LDcgQEAgcHVi bGljOgogICAgIH0KICAgcHJvZmlsZV9wcm9iYWJpbGl0eSBvcGVyYXRvci0g KGNvbnN0IHByb2ZpbGVfcHJvYmFiaWxpdHkgJm90aGVyKSBjb25zdAogICAg IHsKLSAgICAgIGlmICgqdGhpcyA9PSBwcm9maWxlX3Byb2JhYmlsaXR5Ojpu ZXZlciAoKQotCSAgfHwgb3RoZXIgPT0gcHJvZmlsZV9wcm9iYWJpbGl0eTo6 bmV2ZXIgKCkpCisgICAgICBpZiAodGhpcy0+bmV2ZXJfcCAoKSkKIAlyZXR1 cm4gKnRoaXM7CiAgICAgICBpZiAoIWluaXRpYWxpemVkX3AgKCkgfHwgIW90 aGVyLmluaXRpYWxpemVkX3AgKCkpCiAJcmV0dXJuIHByb2ZpbGVfcHJvYmFi aWxpdHk6OnVuaW5pdGlhbGl6ZWQgKCk7CkBAIC0zMzIsOCArMzM2LDcgQEAg cHVibGljOgogICAgIH0KICAgcHJvZmlsZV9wcm9iYWJpbGl0eSAmb3BlcmF0 b3ItPSAoY29uc3QgcHJvZmlsZV9wcm9iYWJpbGl0eSAmb3RoZXIpCiAgICAg ewotICAgICAgaWYgKCp0aGlzID09IHByb2ZpbGVfcHJvYmFiaWxpdHk6Om5l dmVyICgpCi0JICB8fCBvdGhlciA9PSBwcm9maWxlX3Byb2JhYmlsaXR5Ojpu ZXZlciAoKSkKKyAgICAgIGlmICh0aGlzLT5uZXZlcl9wICgpKQogCXJldHVy biAqdGhpczsKICAgICAgIGlmICghaW5pdGlhbGl6ZWRfcCAoKSB8fCAhb3Ro ZXIuaW5pdGlhbGl6ZWRfcCAoKSkKIAlyZXR1cm4gKnRoaXMgPSBwcm9maWxl X3Byb2JhYmlsaXR5Ojp1bmluaXRpYWxpemVkICgpOwpAQCAtMzQ2LDggKzM0 OSw3IEBAIHB1YmxpYzoKICAgICB9CiAgIHByb2ZpbGVfcHJvYmFiaWxpdHkg b3BlcmF0b3IqIChjb25zdCBwcm9maWxlX3Byb2JhYmlsaXR5ICZvdGhlcikg Y29uc3QKICAgICB7Ci0gICAgICBpZiAoKnRoaXMgPT0gcHJvZmlsZV9wcm9i YWJpbGl0eTo6bmV2ZXIgKCkKLQkgIHx8IG90aGVyID09IHByb2ZpbGVfcHJv YmFiaWxpdHk6Om5ldmVyICgpKQorICAgICAgaWYgKHRoaXMtPm5ldmVyX3Ag KCkgfHwgb3RoZXIubmV2ZXJfcCAoKSkKIAlyZXR1cm4gcHJvZmlsZV9wcm9i YWJpbGl0eTo6bmV2ZXIgKCk7CiAgICAgICBpZiAoIWluaXRpYWxpemVkX3Ag KCkgfHwgIW90aGVyLmluaXRpYWxpemVkX3AgKCkpCiAJcmV0dXJuIHByb2Zp bGVfcHJvYmFiaWxpdHk6OnVuaW5pdGlhbGl6ZWQgKCk7CkBAIC0zNTgsOCAr MzYwLDcgQEAgcHVibGljOgogICAgIH0KICAgcHJvZmlsZV9wcm9iYWJpbGl0 eSAmb3BlcmF0b3IqPSAoY29uc3QgcHJvZmlsZV9wcm9iYWJpbGl0eSAmb3Ro ZXIpCiAgICAgewotICAgICAgaWYgKCp0aGlzID09IHByb2ZpbGVfcHJvYmFi aWxpdHk6Om5ldmVyICgpCi0JICB8fCBvdGhlciA9PSBwcm9maWxlX3Byb2Jh YmlsaXR5OjpuZXZlciAoKSkKKyAgICAgIGlmICh0aGlzLT5uZXZlcl9wICgp IHx8IG90aGVyLm5ldmVyX3AgKCkpCiAJcmV0dXJuICp0aGlzID0gcHJvZmls ZV9wcm9iYWJpbGl0eTo6bmV2ZXIgKCk7CiAgICAgICBpZiAoIWluaXRpYWxp emVkX3AgKCkgfHwgIW90aGVyLmluaXRpYWxpemVkX3AgKCkpCiAJcmV0dXJu ICp0aGlzID0gcHJvZmlsZV9wcm9iYWJpbGl0eTo6dW5pbml0aWFsaXplZCAo KTsKQEAgLTM3Miw3ICszNzMsNyBAQCBwdWJsaWM6CiAgICAgfQogICBwcm9m aWxlX3Byb2JhYmlsaXR5IG9wZXJhdG9yLyAoY29uc3QgcHJvZmlsZV9wcm9i YWJpbGl0eSAmb3RoZXIpIGNvbnN0CiAgICAgewotICAgICAgaWYgKCp0aGlz ID09IHByb2ZpbGVfcHJvYmFiaWxpdHk6Om5ldmVyICgpKQorICAgICAgaWYg KHRoaXMtPm5ldmVyX3AgKCkpCiAJcmV0dXJuIHByb2ZpbGVfcHJvYmFiaWxp dHk6Om5ldmVyICgpOwogICAgICAgaWYgKCFpbml0aWFsaXplZF9wICgpIHx8 ICFvdGhlci5pbml0aWFsaXplZF9wICgpKQogCXJldHVybiBwcm9maWxlX3By b2JhYmlsaXR5Ojp1bmluaXRpYWxpemVkICgpOwpAQCAtMzk5LDcgKzQwMCw3 IEBAIHB1YmxpYzoKICAgICB9CiAgIHByb2ZpbGVfcHJvYmFiaWxpdHkgJm9w ZXJhdG9yLz0gKGNvbnN0IHByb2ZpbGVfcHJvYmFiaWxpdHkgJm90aGVyKQog ICAgIHsKLSAgICAgIGlmICgqdGhpcyA9PSBwcm9maWxlX3Byb2JhYmlsaXR5 OjpuZXZlciAoKSkKKyAgICAgIGlmICh0aGlzLT5uZXZlcl9wICgpKQogCXJl dHVybiAqdGhpcyA9IHByb2ZpbGVfcHJvYmFiaWxpdHk6Om5ldmVyICgpOwog ICAgICAgaWYgKCFpbml0aWFsaXplZF9wICgpIHx8ICFvdGhlci5pbml0aWFs aXplZF9wICgpKQogCXJldHVybiAqdGhpcyA9IHByb2ZpbGVfcHJvYmFiaWxp dHk6OnVuaW5pdGlhbGl6ZWQgKCk7CkBAIC00NTQsNyArNDU1LDcgQEAgcHVi bGljOgogCiAgIGdjb3ZfdHlwZSBhcHBseSAoZ2Nvdl90eXBlIHZhbCkgY29u c3QKICAgICB7Ci0gICAgICBpZiAoKnRoaXMgPT0gcHJvZmlsZV9wcm9iYWJp bGl0eTo6dW5pbml0aWFsaXplZCAoKSkKKyAgICAgIGlmICghIGluaXRpYWxp emVkX3AgKCkpCiAJcmV0dXJuIHZhbCAvIDI7CiAgICAgICByZXR1cm4gUkRJ ViAodmFsICogbV92YWwsIG1heF9wcm9iYWJpbGl0eSk7CiAgICAgfQpAQCAt NDg2LDcgKzQ4Nyw3IEBAIHB1YmxpYzoKICAgLyogUmV0dXJuICpUSElTICog TlVNIC8gREVOLiAgKi8KICAgcHJvZmlsZV9wcm9iYWJpbGl0eSBhcHBseV9z Y2FsZSAoaW50NjRfdCBudW0sIGludDY0X3QgZGVuKSBjb25zdAogICAgIHsK LSAgICAgIGlmICgqdGhpcyA9PSBwcm9maWxlX3Byb2JhYmlsaXR5OjpuZXZl ciAoKSkKKyAgICAgIGlmICh0aGlzLT5uZXZlcl9wICgpKQogCXJldHVybiAq dGhpczsKICAgICAgIGlmICghaW5pdGlhbGl6ZWRfcCAoKSkKIAlyZXR1cm4g cHJvZmlsZV9wcm9iYWJpbGl0eTo6dW5pbml0aWFsaXplZCAoKTsKQEAgLTY1 Nyw4ICs2NTgsNyBAQCBwcml2YXRlOgogICAgIHsKICAgICAgIGlmICghaW5p dGlhbGl6ZWRfcCAoKSB8fCAhb3RoZXIuaW5pdGlhbGl6ZWRfcCAoKSkKIAly ZXR1cm4gdHJ1ZTsKLSAgICAgIGlmICgqdGhpcyA9PSBwcm9maWxlX2NvdW50 Ojp6ZXJvICgpCi0JICB8fCBvdGhlciA9PSBwcm9maWxlX2NvdW50Ojp6ZXJv ICgpKQorICAgICAgaWYgKHRoaXMtPnplcm9fcCAoKSB8fCBvdGhlci56ZXJv X3AgKCkpCiAJcmV0dXJuIHRydWU7CiAgICAgICByZXR1cm4gaXBhX3AgKCkg PT0gb3RoZXIuaXBhX3AgKCk7CiAgICAgfQpAQCAtNzA0LDYgKzcwNCwxMSBA QCBwdWJsaWM6CiAgICAgICByZXR1cm4gbV92YWw7CiAgICAgfQogCisgIC8q IFJldHVybiB0cnVlIGlmIHZhbHVlIGlzIHplcm8uICAqLworICBib29sIHpl cm9fcCAoKSBjb25zdAorICAgIHsKKyAgICAgIHJldHVybiBtX3ZhbCA9PSAw OworICAgIH0KICAgLyogUmV0dXJuIHRydWUgaWYgdmFsdWUgaGFzIGJlZW4g aW5pdGlhbGl6ZWQuICAqLwogICBib29sIGluaXRpYWxpemVkX3AgKCkgY29u c3QKICAgICB7CkBAIC03NjAsOSArNzY1LDkgQEAgcHVibGljOgogICAgIH0K ICAgcHJvZmlsZV9jb3VudCBvcGVyYXRvcisgKGNvbnN0IHByb2ZpbGVfY291 bnQgJm90aGVyKSBjb25zdAogICAgIHsKLSAgICAgIGlmIChvdGhlciA9PSBw cm9maWxlX2NvdW50Ojp6ZXJvICgpKQorICAgICAgaWYgKG90aGVyLnplcm9f cCAoKSkKIAlyZXR1cm4gKnRoaXM7Ci0gICAgICBpZiAoKnRoaXMgPT0gcHJv ZmlsZV9jb3VudDo6emVybyAoKSkKKyAgICAgIGlmICh0aGlzLT56ZXJvX3Ag KCkpCiAJcmV0dXJuIG90aGVyOwogICAgICAgaWYgKCFpbml0aWFsaXplZF9w ICgpIHx8ICFvdGhlci5pbml0aWFsaXplZF9wICgpKQogCXJldHVybiBwcm9m aWxlX2NvdW50Ojp1bmluaXRpYWxpemVkICgpOwpAQCAtNzc1LDkgKzc4MCw5 IEBAIHB1YmxpYzoKICAgICB9CiAgIHByb2ZpbGVfY291bnQgJm9wZXJhdG9y Kz0gKGNvbnN0IHByb2ZpbGVfY291bnQgJm90aGVyKQogICAgIHsKLSAgICAg IGlmIChvdGhlciA9PSBwcm9maWxlX2NvdW50Ojp6ZXJvICgpKQorICAgICAg aWYgKG90aGVyLnplcm9fcCAoKSkKIAlyZXR1cm4gKnRoaXM7Ci0gICAgICBp ZiAoKnRoaXMgPT0gcHJvZmlsZV9jb3VudDo6emVybyAoKSkKKyAgICAgIGlm ICh0aGlzLT56ZXJvX3AgKCkpCiAJewogCSAgKnRoaXMgPSBvdGhlcjsKIAkg IHJldHVybiAqdGhpczsKQEAgLTc5NCw3ICs3OTksNyBAQCBwdWJsaWM6CiAg ICAgfQogICBwcm9maWxlX2NvdW50IG9wZXJhdG9yLSAoY29uc3QgcHJvZmls ZV9jb3VudCAmb3RoZXIpIGNvbnN0CiAgICAgewotICAgICAgaWYgKCp0aGlz ID09IHByb2ZpbGVfY291bnQ6Onplcm8gKCkgfHwgb3RoZXIgPT0gcHJvZmls ZV9jb3VudDo6emVybyAoKSkKKyAgICAgIGlmICh0aGlzLT56ZXJvX3AgKCkp CiAJcmV0dXJuICp0aGlzOwogICAgICAgaWYgKCFpbml0aWFsaXplZF9wICgp IHx8ICFvdGhlci5pbml0aWFsaXplZF9wICgpKQogCXJldHVybiBwcm9maWxl X2NvdW50Ojp1bmluaXRpYWxpemVkICgpOwpAQCAtODA2LDcgKzgxMSw3IEBA IHB1YmxpYzoKICAgICB9CiAgIHByb2ZpbGVfY291bnQgJm9wZXJhdG9yLT0g KGNvbnN0IHByb2ZpbGVfY291bnQgJm90aGVyKQogICAgIHsKLSAgICAgIGlm ICgqdGhpcyA9PSBwcm9maWxlX2NvdW50Ojp6ZXJvICgpIHx8IG90aGVyID09 IHByb2ZpbGVfY291bnQ6Onplcm8gKCkpCisgICAgICBpZiAodGhpcy0+emVy b19wICgpKQogCXJldHVybiAqdGhpczsKICAgICAgIGlmICghaW5pdGlhbGl6 ZWRfcCAoKSB8fCAhb3RoZXIuaW5pdGlhbGl6ZWRfcCAoKSkKIAlyZXR1cm4g KnRoaXMgPSBwcm9maWxlX2NvdW50Ojp1bmluaXRpYWxpemVkICgpOwpAQCAt ODMyLDkgKzgzNyw5IEBAIHB1YmxpYzoKICAgICB7CiAgICAgICBpZiAoIWlu aXRpYWxpemVkX3AgKCkgfHwgIW90aGVyLmluaXRpYWxpemVkX3AgKCkpCiAJ cmV0dXJuIGZhbHNlOwotICAgICAgaWYgKCp0aGlzID09IHByb2ZpbGVfY291 bnQ6Onplcm8gKCkpCi0JcmV0dXJuICEob3RoZXIgPT0gcHJvZmlsZV9jb3Vu dDo6emVybyAoKSk7Ci0gICAgICBpZiAob3RoZXIgPT0gcHJvZmlsZV9jb3Vu dDo6emVybyAoKSkKKyAgICAgIGlmICh0aGlzLT56ZXJvX3AgKCkpCisJcmV0 dXJuICEob3RoZXIuemVyb19wICgpKTsKKyAgICAgIGlmIChvdGhlci56ZXJv X3AgKCkpCiAJcmV0dXJuIGZhbHNlOwogICAgICAgZ2NjX2NoZWNraW5nX2Fz c2VydCAoY29tcGF0aWJsZV9wIChvdGhlcikpOwogICAgICAgcmV0dXJuIG1f dmFsIDwgb3RoZXIubV92YWw7CkBAIC04NDMsMTAgKzg0OCwxMCBAQCBwdWJs aWM6CiAgICAgewogICAgICAgaWYgKCFpbml0aWFsaXplZF9wICgpIHx8ICFv dGhlci5pbml0aWFsaXplZF9wICgpKQogCXJldHVybiBmYWxzZTsKLSAgICAg IGlmICgqdGhpcyAgPT0gcHJvZmlsZV9jb3VudDo6emVybyAoKSkKKyAgICAg IGlmICh0aGlzLT56ZXJvX3AgKCkpCiAJcmV0dXJuIGZhbHNlOwotICAgICAg aWYgKG90aGVyID09IHByb2ZpbGVfY291bnQ6Onplcm8gKCkpCi0JcmV0dXJu ICEoKnRoaXMgPT0gcHJvZmlsZV9jb3VudDo6emVybyAoKSk7CisgICAgICBp ZiAob3RoZXIuemVyb19wICgpKQorCXJldHVybiAhKHRoaXMtPnplcm9fcCAo KSk7CiAgICAgICBnY2NfY2hlY2tpbmdfYXNzZXJ0IChjb21wYXRpYmxlX3Ag KG90aGVyKSk7CiAgICAgICByZXR1cm4gaW5pdGlhbGl6ZWRfcCAoKSAmJiBv dGhlci5pbml0aWFsaXplZF9wICgpICYmIG1fdmFsID4gb3RoZXIubV92YWw7 CiAgICAgfQpAQCAtODY3LDEwICs4NzIsMTAgQEAgcHVibGljOgogICAgIHsK ICAgICAgIGlmICghaW5pdGlhbGl6ZWRfcCAoKSB8fCAhb3RoZXIuaW5pdGlh bGl6ZWRfcCAoKSkKIAlyZXR1cm4gZmFsc2U7Ci0gICAgICBpZiAoKnRoaXMg PT0gcHJvZmlsZV9jb3VudDo6emVybyAoKSkKKyAgICAgIGlmICh0aGlzLT56 ZXJvX3AgKCkpCiAJcmV0dXJuIHRydWU7Ci0gICAgICBpZiAob3RoZXIgPT0g cHJvZmlsZV9jb3VudDo6emVybyAoKSkKLQlyZXR1cm4gKCp0aGlzID09IHBy b2ZpbGVfY291bnQ6Onplcm8gKCkpOworICAgICAgaWYgKG90aGVyLnplcm9f cCAoKSkKKwlyZXR1cm4gKHRoaXMtPnplcm9fcCAoKSk7CiAgICAgICBnY2Nf Y2hlY2tpbmdfYXNzZXJ0IChjb21wYXRpYmxlX3AgKG90aGVyKSk7CiAgICAg ICByZXR1cm4gbV92YWwgPD0gb3RoZXIubV92YWw7CiAgICAgfQpAQCAtODc4 LDEwICs4ODMsMTAgQEAgcHVibGljOgogICAgIHsKICAgICAgIGlmICghaW5p dGlhbGl6ZWRfcCAoKSB8fCAhb3RoZXIuaW5pdGlhbGl6ZWRfcCAoKSkKIAly ZXR1cm4gZmFsc2U7Ci0gICAgICBpZiAob3RoZXIgPT0gcHJvZmlsZV9jb3Vu dDo6emVybyAoKSkKKyAgICAgIGlmIChvdGhlci56ZXJvX3AgKCkpCiAJcmV0 dXJuIHRydWU7Ci0gICAgICBpZiAoKnRoaXMgPT0gcHJvZmlsZV9jb3VudDo6 emVybyAoKSkKLQlyZXR1cm4gIShvdGhlciA9PSBwcm9maWxlX2NvdW50Ojp6 ZXJvICgpKTsKKyAgICAgIGlmICh0aGlzLT56ZXJvX3AgKCkpCisJcmV0dXJu ICEob3RoZXIuemVyb19wICgpKTsKICAgICAgIGdjY19jaGVja2luZ19hc3Nl cnQgKGNvbXBhdGlibGVfcCAob3RoZXIpKTsKICAgICAgIHJldHVybiBtX3Zh bCA+PSBvdGhlci5tX3ZhbDsKICAgICB9CkBAIC05MjUsMTAgKzkzMCw2IEBA IHB1YmxpYzoKIAlyZXR1cm4gb3RoZXI7CiAgICAgICBpZiAoIW90aGVyLmlu aXRpYWxpemVkX3AgKCkpCiAJcmV0dXJuICp0aGlzOwotICAgICAgaWYgKCp0 aGlzID09IHByb2ZpbGVfY291bnQ6Onplcm8gKCkpCi0JcmV0dXJuIG90aGVy OwotICAgICAgaWYgKG90aGVyID09IHByb2ZpbGVfY291bnQ6Onplcm8gKCkp Ci0JcmV0dXJuICp0aGlzOwogICAgICAgZ2NjX2NoZWNraW5nX2Fzc2VydCAo Y29tcGF0aWJsZV9wIChvdGhlcikpOwogICAgICAgaWYgKG1fdmFsIDwgb3Ro ZXIubV92YWwgfHwgKG1fdmFsID09IG90aGVyLm1fdmFsCiAJCQkJICAmJiBt X3F1YWxpdHkgPCBvdGhlci5tX3F1YWxpdHkpKQpAQCAtOTU0LDkgKzk1NSw5 IEBAIHB1YmxpYzoKICAgLyogU2NhbGUgY291bnRlciBhY2NvcmRpbmcgdG8g UFJPQi4gICovCiAgIHByb2ZpbGVfY291bnQgYXBwbHlfcHJvYmFiaWxpdHkg KHByb2ZpbGVfcHJvYmFiaWxpdHkgcHJvYikgY29uc3QKICAgICB7Ci0gICAg ICBpZiAoKnRoaXMgPT0gcHJvZmlsZV9jb3VudDo6emVybyAoKSkKKyAgICAg IGlmICh0aGlzLT56ZXJvX3AgKCkpCiAJcmV0dXJuICp0aGlzOwotICAgICAg aWYgKHByb2IgPT0gcHJvZmlsZV9wcm9iYWJpbGl0eTo6bmV2ZXIgKCkpCisg ICAgICBpZiAocHJvYi5uZXZlcl9wICgpKQogCXJldHVybiBwcm9maWxlX2Nv dW50Ojp6ZXJvICgpOwogICAgICAgaWYgKCFpbml0aWFsaXplZF9wICgpKQog CXJldHVybiBwcm9maWxlX2NvdW50Ojp1bmluaXRpYWxpemVkICgpOwpAQCAt OTg2LDkgKzk4Nyw5IEBAIHB1YmxpYzoKICAgICB9CiAgIHByb2ZpbGVfY291 bnQgYXBwbHlfc2NhbGUgKHByb2ZpbGVfY291bnQgbnVtLCBwcm9maWxlX2Nv dW50IGRlbikgY29uc3QKICAgICB7Ci0gICAgICBpZiAoKnRoaXMgPT0gcHJv ZmlsZV9jb3VudDo6emVybyAoKSkKKyAgICAgIGlmICh0aGlzLT56ZXJvX3Ag KCkpCiAJcmV0dXJuICp0aGlzOwotICAgICAgaWYgKG51bSA9PSBwcm9maWxl X2NvdW50Ojp6ZXJvICgpKQorICAgICAgaWYgKG51bS56ZXJvX3AgKCkpCiAJ cmV0dXJuIG51bTsKICAgICAgIGlmICghaW5pdGlhbGl6ZWRfcCAoKSB8fCAh bnVtLmluaXRpYWxpemVkX3AgKCkgfHwgIWRlbi5pbml0aWFsaXplZF9wICgp KQogCXJldHVybiBwcm9maWxlX2NvdW50Ojp1bmluaXRpYWxpemVkICgpOwpA QCAtMTA3MSw4ICsxMDcyLDcgQEAgcHVibGljOgogICAgICBPVkVSQUxMLiAg Ki8KICAgcHJvZmlsZV9wcm9iYWJpbGl0eSBwcm9iYWJpbGl0eV9pbiAoY29u c3QgcHJvZmlsZV9jb3VudCBvdmVyYWxsKSBjb25zdAogICAgIHsKLSAgICAg IGlmICgqdGhpcyA9PSBwcm9maWxlX2NvdW50Ojp6ZXJvICgpCi0JICAmJiAh KG92ZXJhbGwgPT0gcHJvZmlsZV9jb3VudDo6emVybyAoKSkpCisgICAgICBp ZiAodGhpcy0+emVyb19wICgpICYmICEob3ZlcmFsbC56ZXJvX3AgKCkpKQog CXJldHVybiBwcm9maWxlX3Byb2JhYmlsaXR5OjpuZXZlciAoKTsKICAgICAg IGlmICghaW5pdGlhbGl6ZWRfcCAoKSB8fCAhb3ZlcmFsbC5pbml0aWFsaXpl ZF9wICgpCiAJICB8fCAhb3ZlcmFsbC5tX3ZhbCkKZGlmZiAtLWdpdCBhL2dj Yy9wcm9maWxlLmMgYi9nY2MvcHJvZmlsZS5jCmluZGV4IDIxMzAzMTliMDgx Li43MGM2YzU5NTc4ZCAxMDA2NDQKLS0tIGEvZ2NjL3Byb2ZpbGUuYworKysg Yi9nY2MvcHJvZmlsZS5jCkBAIC03MDcsNyArNzA3LDcgQEAgY29tcHV0ZV9i cmFuY2hfcHJvYmFiaWxpdGllcyAodW5zaWduZWQgY2ZnX2NoZWNrc3VtLCB1 bnNpZ25lZCBsaW5lbm9fY2hlY2tzdW0pCiAgICAgIGRldGVybWluZWQgemVy byBjb3VudHMuICAqLwogICBlbHNlCiAgICAgRk9SX0FMTF9CQl9GTiAoYmIs IGNmdW4pCi0gICAgICBpZiAoIShiYi0+Y291bnQgPT0gcHJvZmlsZV9jb3Vu dDo6emVybyAoKSkpCisgICAgICBpZiAoIShiYi0+Y291bnQuemVyb19wICgp KSkKICAgICAgICAgYmItPmNvdW50ID0gYmItPmNvdW50Lmdsb2JhbDAgKCk7 CiAKICAgYmJfZ2Nvdl9jb3VudHMucmVsZWFzZSAoKTsKZGlmZiAtLWdpdCBh L2djYy9zaHJpbmstd3JhcC5jIGIvZ2NjL3Nocmluay13cmFwLmMKaW5kZXgg MWFkNzM3OTg3NDcuLjg4MDIxZjExYzc0IDEwMDY0NAotLS0gYS9nY2Mvc2hy aW5rLXdyYXAuYworKysgYi9nY2Mvc2hyaW5rLXdyYXAuYwpAQCAtOTIyLDcg KzkyMiw3IEBAIHRyeV9zaHJpbmtfd3JhcHBpbmcgKGVkZ2UgKmVudHJ5X2Vk Z2UsIHJ0eF9pbnNuICpwcm9sb2d1ZV9zZXEpCiAJaWYgKGR1bXBfZmlsZSkK IAkgIGZwcmludGYgKGR1bXBfZmlsZSwgIkR1cGxpY2F0ZWQgJWQgdG8gJWRc biIsIGJiLT5pbmRleCwgZHVwLT5pbmRleCk7CiAJCi0JaWYgKG51bSA9PSBw cm9maWxlX2NvdW50Ojp6ZXJvICgpIHx8IGRlbi5ub256ZXJvX3AgKCkpCisJ aWYgKG51bS56ZXJvX3AgKCkgfHwgZGVuLm5vbnplcm9fcCAoKSkKIAkgIGJi LT5jb3VudCA9IGJiLT5jb3VudC5hcHBseV9zY2FsZSAobnVtLCBkZW4pOwog CWR1cC0+Y291bnQgLT0gYmItPmNvdW50OwogICAgICAgfQpkaWZmIC0tZ2l0 IGEvZ2NjL3RyZWUtc3NhLWxvb3AtbWFuaXAuYyBiL2djYy90cmVlLXNzYS1s b29wLW1hbmlwLmMKaW5kZXggNWFjZWU2Yzk4ZjMuLjZiNjM4OGZjODVlIDEw MDY0NAotLS0gYS9nY2MvdHJlZS1zc2EtbG9vcC1tYW5pcC5jCisrKyBiL2dj Yy90cmVlLXNzYS1sb29wLW1hbmlwLmMKQEAgLTEwOTUsNyArMTA5NSw3IEBA IHNjYWxlX2RvbWluYXRlZF9ibG9ja3NfaW5fbG9vcCAoc3RydWN0IGxvb3Ag Kmxvb3AsIGJhc2ljX2Jsb2NrIGJiLAogewogICBiYXNpY19ibG9jayBzb247 CiAKLSAgaWYgKCFkZW4ubm9uemVyb19wICgpICYmICEobnVtID09IHByb2Zp bGVfY291bnQ6Onplcm8gKCkpKQorICBpZiAoIWRlbi5ub256ZXJvX3AgKCkg JiYgIShudW0uemVyb19wICgpKSkKICAgICByZXR1cm47CiAKICAgZm9yIChz b24gPSBmaXJzdF9kb21fc29uIChDRElfRE9NSU5BVE9SUywgYmIpOwpAQCAt MTM3OCw3ICsxMzc4LDcgQEAgdHJlZV90cmFuc2Zvcm1fYW5kX3Vucm9sbF9s b29wIChzdHJ1Y3QgbG9vcCAqbG9vcCwgdW5zaWduZWQgZmFjdG9yLAogICAg IHsKICAgICAgIC8qIEF2b2lkIGRyb3BwaW5nIGxvb3AgYm9keSBwcm9maWxl IGNvdW50ZXIgdG8gMCBiZWNhdXNlIG9mIHplcm8gY291bnQKIAkgaW4gbG9v cCdzIHByZWhlYWRlci4gICovCi0gICAgICBpZiAoZnJlcV9oLm5vbnplcm9f cCAoKSAmJiAhKGZyZXFfZSA9PSBwcm9maWxlX2NvdW50Ojp6ZXJvICgpKSkK KyAgICAgIGlmIChmcmVxX2gubm9uemVyb19wICgpICYmICEoZnJlcV9lLnpl cm9fcCAoKSkpCiAgICAgICAgIGZyZXFfZSA9IGZyZXFfZS5mb3JjZV9ub256 ZXJvICgpOwogICAgICAgc2NhbGVfbG9vcF9mcmVxdWVuY2llcyAobG9vcCwg ZnJlcV9lLnByb2JhYmlsaXR5X2luIChmcmVxX2gpKTsKICAgICB9CmRpZmYg LS1naXQgYS9nY2MvdHJlZS1zc2EtdGhyZWFkdXBkYXRlLmMgYi9nY2MvdHJl ZS1zc2EtdGhyZWFkdXBkYXRlLmMKaW5kZXggODA4MGRmZjc2ZDAuLjc3Yjgy MmMyM2U3IDEwMDY0NAotLS0gYS9nY2MvdHJlZS1zc2EtdGhyZWFkdXBkYXRl LmMKKysrIGIvZ2NjL3RyZWUtc3NhLXRocmVhZHVwZGF0ZS5jCkBAIC04OTAs NyArODkwLDcgQEAgdXBkYXRlX3Byb2ZpbGUgKGVkZ2UgZXBhdGgsIGVkZ2Ug ZWR1cCwgcHJvZmlsZV9jb3VudCBwYXRoX2luX2NvdW50LAogICAgICAgZHVw X2Jsb2NrLT5jb3VudCA9IHBhdGhfaW5fY291bnQ7CiAgICAgfQogCi0gIGlm IChwYXRoX2luX2NvdW50ID09IHByb2ZpbGVfY291bnQ6Onplcm8gKCkpCisg IGlmIChwYXRoX2luX2NvdW50Lnplcm9fcCAoKSkKICAgICByZXR1cm47CiAK ICAgcHJvZmlsZV9jb3VudCBmaW5hbF9jb3VudCA9IGVwYXRoLT5jb3VudCAo KSAtIHBhdGhfb3V0X2NvdW50OwpkaWZmIC0tZ2l0IGEvZ2NjL3RyZWUtdmVj dC1sb29wLmMgYi9nY2MvdHJlZS12ZWN0LWxvb3AuYwppbmRleCAxNzdiMjg0 ZTljNi4uMmE0N2IyMDE3OGQgMTAwNjQ0Ci0tLSBhL2djYy90cmVlLXZlY3Qt bG9vcC5jCisrKyBiL2djYy90cmVlLXZlY3QtbG9vcC5jCkBAIC04MDg0LDcg KzgwODQsNyBAQCBzY2FsZV9wcm9maWxlX2Zvcl92ZWN0X2xvb3AgKHN0cnVj dCBsb29wICpsb29wLCB1bnNpZ25lZCB2ZikKIAogICAgICAgLyogQXZvaWQg ZHJvcHBpbmcgbG9vcCBib2R5IHByb2ZpbGUgY291bnRlciB0byAwIGJlY2F1 c2Ugb2YgemVybyBjb3VudAogCSBpbiBsb29wJ3MgcHJlaGVhZGVyLiAgKi8K LSAgICAgIGlmICghKGZyZXFfZSA9PSBwcm9maWxlX2NvdW50Ojp6ZXJvICgp KSkKKyAgICAgIGlmICghKGZyZXFfZS56ZXJvX3AgKCkpKQogICAgICAgICBm cmVxX2UgPSBmcmVxX2UuZm9yY2Vfbm9uemVybyAoKTsKICAgICAgIHAgPSBm cmVxX2UuYXBwbHlfc2NhbGUgKG5ld19lc3Rfbml0ZXIgKyAxLCAxKS5wcm9i YWJpbGl0eV9pbiAoZnJlcV9oKTsKICAgICAgIHNjYWxlX2xvb3BfZnJlcXVl bmNpZXMgKGxvb3AsIHApOwotLSAKMi4xNC40LjQ0LmcyMDQ1YmI2Cgo= ------=ALIBOUNDARY_108766_4b849940_5bdbe0dd_1a95b9--