From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from out30-97.freemail.mail.aliyun.com (out30-97.freemail.mail.aliyun.com [115.124.30.97]) by sourceware.org (Postfix) with ESMTPS id 902D63858D1E for ; Fri, 12 Jan 2024 03:26:38 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 902D63858D1E Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=linux.alibaba.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=linux.alibaba.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 902D63858D1E Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=115.124.30.97 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1705030010; cv=none; b=cl33hmwRX92KC2LyFL/zoSNTMUgTsKlDd74efxZyo9jLdTDhT4xph6kwvEUtZZjg4QiR2mQ/FTNN1NA1iNLksECAL6hBeYjAuz5i5Egz5YLxlH11FJg2AY8gp27flATWXWtX3NHhz5zBb4Fb2HH4xjdokZH4hNWR9Hi1uU/t04M= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1705030010; c=relaxed/simple; bh=B1QF3NkvSwzNvBtEDT1/2sfjYmV0KjGkH/di4s4RJmI=; h=Date:From:To:Message-ID:Subject:MIME-Version; b=UJthxuVwdW1rfOW4kv01MpkxhmLNC7KX9qzZ/4xpxVhUyrCOnY240lmlD1vkRGsHgibGCbYHc2iKqWYbTtyQ/GEg3ofkrwJCNlqXOTL5Im1c6Urz3MbN3nNmesmYZwhaCV0CALEK+V5uh3Lhcw53AhdkaOAQojDDuoeQUy22RBo= ARC-Authentication-Results: i=1; server2.sourceware.org X-Alimail-AntiSpam:AC=PASS;BC=-1|-1;BR=01201311R101e4;CH=green;DM=||false|;DS=||;FP=0|-1|-1|-1|0|-1|-1|-1;HT=ay29a033018046050;MF=cooper.joshua@linux.alibaba.com;NM=1;PH=DW;RN=10;SR=0;TI=W4_0.2.3_v5ForWebDing_21250504_1705029940410_o7001c15m; Received: from WS-web (cooper.joshua@linux.alibaba.com[W4_0.2.3_v5ForWebDing_21250504_1705029940410_o7001c15m]) at Fri, 12 Jan 2024 11:26:35 +0800 Date: Fri, 12 Jan 2024 11:26:35 +0800 From: "joshua" To: "juzhe.zhong@rivai.ai" , "gcc-patches" Cc: "Jim Wilson" , "palmer" , "andrew" , "philipp.tomsich" , "jeffreyalaw" , "christoph.muellner" , "jinma" , "cooper.qu" Reply-To: "joshua" Message-ID: <9e66a4f4-aede-4635-86a7-704e38d12969.cooper.joshua@linux.alibaba.com> Subject: =?UTF-8?B?UmXvvJpSZe+8mltQQVRDSCB2NV0gUklTQy1WOiBBZGQgc3VwcG9ydCBmb3IgeHRoZWFkdmVj?= =?UTF-8?B?dG9yLXNwZWNpZmljIGludHJpbnNpY3Mu?= X-Mailer: [Alimail-Mailagent revision 79][W4_0.2.3][v5ForWebDing][Chrome] MIME-Version: 1.0 x-aliyun-im-through: {"mailThroughImNew":true} References: <8E1E4F840925E219+202401120914001592984@rivai.ai> x-aliyun-mail-creator: W4_0.2.3_v5ForWebDing_SFRTW96aWxsYS81LjAgKFdpbmRvd3MgTlQgMTAuMDsgV2luNjQ7IHg2NCkgQXBwbGVXZWJLaXQvNTM3LjM2IChLSFRNTCwgbGlrZSBHZWNrbykgQ2hyb21lLzEyMC4wLjAuMCBTYWZhcmkvNTM3LjM2IEVkZy8xMjAuMC4wLjA=Ch In-Reply-To: <8E1E4F840925E219+202401120914001592984@rivai.ai> Content-Type: multipart/alternative; boundary="----=ALIBOUNDARY_39049_7f6572571700_65a0b16b_133de" X-Spam-Status: No, score=-18.5 required=5.0 tests=BAYES_00,BODY_8BITS,ENV_AND_HDR_SPF_MATCH,GIT_PATCH_0,HTML_MESSAGE,KAM_DMARC_STATUS,KAM_SHORT,RCVD_IN_DNSWL_NONE,SPF_HELO_NONE,SPF_PASS,TXREP,T_SCC_BODY_TEXT_LINE,UNPARSEABLE_RELAY,URIBL_BLACK,USER_IN_DEF_SPF_WL autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: ------=ALIBOUNDARY_39049_7f6572571700_65a0b16b_133de Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: base64 SSBoYXZlIHJlc2VudCBhbGwgdGhlIHBhdGNoZXMgaW4gYSBuZXcgcGF0Y2hz ZXQgdGhyZWFkLgpUaGUgVEFSR0VUX1hUSEVBRFZFQ1RPUiBmb3Igc2V4dC96 ZXh0IGluIAoiSGFuZGxlIGRpZmZlcmVuY2VzIGJldHdlZW4gWFRoZWFkdmVj dG9yIGFuZCBWZWN0b3IiCmhhdmUgYmVlbiByZW1vdmVkLCBhbmQgYWxsIHRo ZSBjaGFuZ2Vsb2cgaGF2ZSBiZWVuIHVwZGF0ZWQuCltQQVRDSCB2NV0gUklT Qy1WOiBTdXBwb3J0IFhUaGVhZFZlY3RvciBleHRlbnNpb24gKGdudS5vcmcp IDxodHRwczovL2djYy5nbnUub3JnL3BpcGVybWFpbC9nY2MtcGF0Y2hlcy8y MDI0LUphbnVhcnkvNjQyNzgwLmh0bWwgPgotLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0K5Y+R5Lu25Lq677yaanV6aGUuemhvbmdAcml2YWkuYWkgPGp1emhlLnpo b25nQHJpdmFpLmFpPgrlj5HpgIHml7bpl7TvvJoyMDI05bm0MeaciDEy5pel KOaYn+acn+S6lCkgMDk6MTQK5pS25Lu25Lq677yaImNvb3Blci5qb3NodWEi PGNvb3Blci5qb3NodWFAbGludXguYWxpYmFiYS5jb20+OyAiZ2NjLXBhdGNo ZXMiPGdjYy1wYXRjaGVzQGdjYy5nbnUub3JnPgrmioTjgIDpgIHvvJpKaW0g V2lsc29uPGppbS53aWxzb24uZ2NjQGdtYWlsLmNvbT47IHBhbG1lcjxwYWxt ZXJAZGFiYmVsdC5jb20+OyBhbmRyZXc8YW5kcmV3QHNpZml2ZS5jb20+OyAi cGhpbGlwcC50b21zaWNoIjxwaGlsaXBwLnRvbXNpY2hAdnJ1bGwuZXU+OyBq ZWZmcmV5YWxhdzxqZWZmcmV5YWxhd0BnbWFpbC5jb20+OyAiY2hyaXN0b3Bo Lm11ZWxsbmVyIjxjaHJpc3RvcGgubXVlbGxuZXJAdnJ1bGwuZXU+OyBqaW5t YTxqaW5tYUBsaW51eC5hbGliYWJhLmNvbT47ICJjb29wZXIucXUiPGNvb3Bl ci5xdUBsaW51eC5hbGliYWJhLmNvbT4K5Li744CA6aKY77yaUmU6IOWbnuWk je+8mltQQVRDSCB2NV0gUklTQy1WOiBBZGQgc3VwcG9ydCBmb3IgeHRoZWFk dmVjdG9yLXNwZWNpZmljIGludHJpbnNpY3MuCkkgbm90aWNlIHRoZSBjaGFu Z2Vsb2cgaXMgaW5jb3JyZWN0LiBQbHogdXBkYXRlIHRoZSBjaGFuZ2UgbG9n OgpnY2MvQ2hhbmdlTG9nOiAqIGNvbmZpZy5nY2M6IEFkZCBmaWxlcyBmb3Ig WFRoZWFkVmVjdG9yIGludHJpbnNpY3MuICogY29uZmlnL3Jpc2N2L2F1dG92 ZWMubWQ6IEd1YXJkIFhUaGVhZFZlY3Rvci4gKiBjb25maWcvcmlzY3Yvcmlz Y3YtYy5jYzogQWRkIHByYWdtYSBmb3IgWFRoZWFkVmVjdG9yLiAqIGNvbmZp Zy9yaXNjdi9yaXNjdi1zdHJpbmcuY2MgKGV4cGFuZF9ibG9ja19tb3ZlKTog R3VhcmQgWFRoZWFkVmVjdG9yLiAqIGNvbmZpZy9yaXNjdi9yaXNjdi1zdHJp bmcuY2MgKHZsc19tb2RlX3ZhbGlkX3ApOiBBdm9pZCBhdXRvdmVjLiAqIGNv bmZpZy9yaXNjdi9yaXNjdi12ZWN0b3ItYnVpbHRpbnMtc2hhcGVzLmNjIChj aGVja190eXBlKTogKGJ1aWxkX29uZSk6IE5ldyBmdW5jdGlvbi4gKiBjb25m aWcvcmlzY3YvcmlzY3YtdmVjdG9yLWJ1aWx0aW5zLmNjIChERUZfUlZWX0ZV TkNUSU9OKTogKERFRl9USEVBRF9SVlZfRlVOQ1RJT04pOiBBZGQgbmV3IG1h cmNvcy4gKGNoZWNrX3JlcXVpcmVkX2V4dGVuc2lvbnMpOiAoaGFuZGxlX3By YWdtYV92ZWN0b3IpOiAqIGNvbmZpZy9yaXNjdi9yaXNjdi12ZWN0b3ItYnVp bHRpbnMuaCAoUlZWX1JFUVVJUkVfVkVDVE9SKTogKFJWVl9SRVFVSVJFX1hU SEVBRFZFQ1RPUik6IEFkZCBSVlZfUkVRVUlSRV9WRUNUT1IgYW5kIFJWVl9S RVFVSVJFX1hUSEVBRFZFQ1RPUi4gKHN0cnVjdCBmdW5jdGlvbl9ncm91cF9p bmZvKTogKiBjb25maWcvcmlzY3YvcmlzY3YtdmVjdG9yLXN3aXRjaC5kZWYg KEVOVFJZKTogRGlzYWJsZSBmcmFjdGlvbmFsIG1vZGUgZm9yIHRoZSBYVGhl YWRWZWN0b3IgZXh0ZW5zaW9uLiAoVFVQTEVfRU5UUlkpOiBMaWtld2lzZS4g KiBjb25maWcvcmlzY3YvcmlzY3YtdnNldHZsLmNjOiBBZGQgZnVuY3Rpb25z IGZvciB4dGhlYWR2ZWN0b3IuICogY29uZmlnL3Jpc2N2L3Jpc2N2LmNjIChy aXNjdl92X2V4dF92bHNfbW9kZV9wKTogR3VhcmQgWFRoZWFkVmVjdG9yLiAo cmlzY3Zfdl9hZGp1c3RfYnl0ZXNpemUpOiBMaWtld2lzZS4gKHJpc2N2X3By ZWZlcnJlZF9zaW1kX21vZGUpOiBMaWtld3NpZS4gKHJpc2N2X2F1dG92ZWN0 b3JpemVfdmVjdG9yX21vZGVzKTogTGlrZXdpc2UuIChyaXNjdl92ZWN0b3Jf bW9kZV9zdXBwb3J0ZWRfYW55X3RhcmdldF9wKTogTGlrZXdpc2UuIChUQVJH RVRfVkVDVE9SX01PREVfU1VQUE9SVEVEX0FOWV9UQVJHRVRfUCk6IExpa2V3 aXNlLiAqIGNvbmZpZy9yaXNjdi92ZWN0b3IubWQ6IEluY2x1ZGUgdGhlYWQt dmVjdG9yLm1kLiAqIGNvbmZpZy9yaXNjdi9yaXNjdl90aF92ZWN0b3IuaDog TmV3IGZpbGUuICogY29uZmlnL3Jpc2N2L3RoZWFkLXZlY3Rvci5tZDogTmV3 IGZpbGUuClRoZSBjaGFuZ2xvZyBkb2Vzbid0IG1hdGNoIHlvdXIgcGF0Y2gu IEkgc3VzcGVjdCB5b3Ugb3RoZXIgcGF0Y2hlcyBoYXZlIHNhbWUgaXNzdWVz LgpQbHogdXBkYXRlIHRoZW0gYW5kIHJlc2VuZC4KanV6aGUuemhvbmdAcml2 YWkuYWkK5Y+R5Lu25Lq677yaIGpvc2h1YSA8bWFpbHRvOmNvb3Blci5qb3No dWFAbGludXguYWxpYmFiYS5jb20gPgrlj5HpgIHml7bpl7TvvJogMjAyNC0w MS0xMiAwODo0OQrmlLbku7bkurrvvJog6ZKf5bGF5ZOyIDxtYWlsdG86anV6 aGUuemhvbmdAcml2YWkuYWkgPjsgZ2NjLXBhdGNoZXMgPG1haWx0bzpnY2Mt cGF0Y2hlc0BnY2MuZ251Lm9yZyA+CuaKhOmAge+8miBqaW0ud2lsc29uLmdj YyA8bWFpbHRvOmppbS53aWxzb24uZ2NjQGdtYWlsLmNvbSA+OyBwYWxtZXIg PG1haWx0bzpwYWxtZXJAZGFiYmVsdC5jb20gPjsgYW5kcmV3IDxtYWlsdG86 YW5kcmV3QHNpZml2ZS5jb20gPjsgcGhpbGlwcC50b21zaWNoIDxtYWlsdG86 cGhpbGlwcC50b21zaWNoQHZydWxsLmV1ID47IEplZmYgTGF3IDxtYWlsdG86 amVmZnJleWFsYXdAZ21haWwuY29tID47IENocmlzdG9waCBNw7xsbG5lciA8 bWFpbHRvOmNocmlzdG9waC5tdWVsbG5lckB2cnVsbC5ldSA+OyBqaW5tYSA8 bWFpbHRvOmppbm1hQGxpbnV4LmFsaWJhYmEuY29tID47IENvb3BlciBRdSA8 bWFpbHRvOmNvb3Blci5xdUBsaW51eC5hbGliYWJhLmNvbSA+CuS4u+mimO+8 miDlm57lpI3vvJpSZe+8mltQQVRDSCB2NV0gUklTQy1WOiBBZGQgc3VwcG9y dCBmb3IgeHRoZWFkdmVjdG9yLXNwZWNpZmljIGludHJpbnNpY3MuClRoZSBj aGFuZ2VzIHRvIGxtdWwgYW5kIHNldyBhcmUgb25seSBkb25lIGZvciB2Ym9v bCwKd2hpY2ggaXMgUlZWTUY2NEJJL1JWVk1GMzJCSS9SVlZNRjE2QkksIGlu IHRoZQppbnRyaW5zaWNzIHdpdGggbWFzay4gVGhhdCBpcyBiZWNhdXNlIHRo ZWFkdmVjdG9yIGhhcyBubwpsb2FkL3N0b3JlIG1hc2sgaW5zdHJ1Y3Rpb25z LgpsbXVsIGFuZCBzZXcgaW4gb3RoZXIgbm9uLWJvb2wgdHlwZXMgZG8gbm90 IG5lZWQKdG8gYmUgbW9kaWZpZWQuIEkgZG9u4oCZdCB0aGluayBkaXJlY3Rs eSBjaGFuZ2UgZ2V0X3NldwphbmQgZ2V0X3ZsbXVsIGlzIHJlYXNvbmFibGUu CisgKGFuZCAoZXFfYXR0ciAidHlwZSIgInZsZGUsdnN0ZSx2bHNlZ2RlLHZz c2VndGUsdmxzZWdkcyx2c3NlZ3RzLFwgKyB2bHNlZ2RmZix2c3NlZ3R1eCx2 bHNlZ2RveCx2bHNlZ2R1eCIpICsgKG1hdGNoX3Rlc3QgIlRBUkdFVF9YVEhF QURWRUNUT1IiKSkgKyAoY29uc3RfaW50IElOVkFMSURfQVRUUklCVVRFKVdo eSBkbyB5b3UgYWRkIHRoaXMgPwp0aGVhZHZlY3RvciBkb2VzIG5vdCBoYXZl IHNldyBpbiBsb2FkL3N0b3JlaW5zdHJ1Y3Rpb25zLiBJbiBPMiwgdmVjdG9y IHdpbGwgcmVtb3ZlIG9uZXZzZXR2bCBmb3IgdHdvIGNvbnNlY3V0aXZlIHZs ZSB3aXRoIGRpZmZlcmVudHNldy4gSG93ZXZlciwgdGhpbmdzIHdpbGwgZ28g d3JvbmcgdW5kZXIgdGhpc29wdGltaXphdGlvbiBmb3IgdGhlYWR2ZWN0b3Iu Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQrlj5Hku7bkurrvvJrpkp/lsYXlk7Ig PGp1emhlLnpob25nQHJpdmFpLmFpPgrlj5HpgIHml7bpl7TvvJoyMDI05bm0 MeaciDEy5pelKOaYn+acn+S6lCkgMDc6MjIK5pS25Lu25Lq677yaImNvb3Bl ci5qb3NodWEiPGNvb3Blci5qb3NodWFAbGludXguYWxpYmFiYS5jb20+OyAi Z2NjLXBhdGNoZXMiPGdjYy1wYXRjaGVzQGdjYy5nbnUub3JnPgrmioTjgIDp gIHvvJoiamltLndpbHNvbi5nY2MiPGppbS53aWxzb24uZ2NjQGdtYWlsLmNv bT47IHBhbG1lcjxwYWxtZXJAZGFiYmVsdC5jb20+OyBhbmRyZXc8YW5kcmV3 QHNpZml2ZS5jb20+OyAicGhpbGlwcC50b21zaWNoIjxwaGlsaXBwLnRvbXNp Y2hAdnJ1bGwuZXU+OyBKZWZmIExhdzxqZWZmcmV5YWxhd0BnbWFpbC5jb20+ OyAiQ2hyaXN0b3BoIE3DvGxsbmVyIjxjaHJpc3RvcGgubXVlbGxuZXJAdnJ1 bGwuZXU+OyBqaW5tYTxqaW5tYUBsaW51eC5hbGliYWJhLmNvbT47IENvb3Bl ciBRdTxjb29wZXIucXVAbGludXguYWxpYmFiYS5jb20+CuS4u+OAgOmimO+8 mlJlOiBSZe+8mltQQVRDSCB2NV0gUklTQy1WOiBBZGQgc3VwcG9ydCBmb3Ig eHRoZWFkdmVjdG9yLXNwZWNpZmljIGludHJpbnNpY3MuCkFsc28sIHlvdSBk b24ndCBuZWVkIHRvIGNoYW5nZSB0aGVzZToKLUVOVFJZIChSVlZNRjY0Qkks IFRBUkdFVF9NSU5fVkxFTiA+IDMyLCBMTVVMX0Y4LCA2NCkgLUVOVFJZIChS VlZNRjMyQkksIHRydWUsIExNVUxfRjQsIDMyKSAtRU5UUlkgKFJWVk1GMTZC SSwgdHJ1ZSwgTE1VTF9GMiwgMTYpICtFTlRSWSAoUlZWTUY2NEJJLCBUQVJH RVRfTUlOX1ZMRU4gPiAzMiwgVEFSR0VUX1hUSEVBRFZFQ1RPUiA/IExNVUxf MSA6TE1VTF9GOCwgNjQpICtFTlRSWSAoUlZWTUYzMkJJLCB0cnVlLCBUQVJH RVRfWFRIRUFEVkVDVE9SID8gTE1VTF8xIDpMTVVMX0Y0LCAzMikgK0VOVFJZ IChSVlZNRjE2QkksIHRydWUsIFRBUkdFVF9YVEhFQURWRUNUT1IgPyBMTVVM XzEgOiBMTVVMX0YyICwgMTYpCllvdSBzaG91bGQgc3BlY2lmeSB0aGVzZSBj YXNlcyBpbiAKZW51bSB2bG11bF90eXBlCmdldF92bG11bCAobWFjaGluZV9t b2RlIG1vZGUpCkFuZCBkb24ndCBjaGFuZ2U6CiAoZGVmaW5lX2F0dHIgInNl dyIgIiIgLSAoY29uZCBbKGVxX2F0dHIgIm1vZGUiICJSVlZNRjY0QkksUlZW TUYzMkJJLFJWVk1GMTZCSSxSVlZNRjhCSSxSVlZNRjRCSSxSVlZNRjJCSSxS VlZNMUJJLFwgKyAoY29uZCBbKGVxX2F0dHIgIm1vZGUiICJSVlZNRjhCSSxS VlZNRjRCSSxSVlZNRjJCSSxSVlZNMUJJLFwgUlZWTThRSSxSVlZNNFFJLFJW Vk0yUUksUlZWTTFRSSxSVlZNRjJRSSxSVlZNRjRRSSxSVlZNRjhRSSxcIFJW Vk0xeDhRSSxSVlZNRjJ4OFFJLFJWVk1GNHg4UUksUlZWTUY4eDhRSSxcIFJW Vk0xeDdRSSxSVlZNRjJ4N1FJLFJWVk1GNHg3UUksUlZWTUY4eDdRSSxcIEBA IC05OSw2ICs5OSwxOCBAQCBWMVFJLFYyUUksVjRRSSxWOFFJLFYxNlFJLFYz MlFJLFY2NFFJLFYxMjhRSSxWMjU2UUksVjUxMlFJLFYxMDI0UUksVjIwNDhR SSxWNDA5NlFJLFwgVjFCSSxWMkJJLFY0QkksVjhCSSxWMTZCSSxWMzJCSSxW NjRCSSxWMTI4QkksVjI1NkJJLFY1MTJCSSxWMTAyNEJJLFYyMDQ4QkksVjQw OTZCSSIpIChjb25zdF9pbnQgOCkgKyAoZXFfYXR0ciAibW9kZSIgIlJWVk1G MTZCSSIpICsgKGlmX3RoZW5fZWxzZSAobWF0Y2hfdGVzdCAiVEFSR0VUX1hU SEVBRFZFQ1RPUiIpICsgKGNvbnN0X2ludCAxNikgKyAoY29uc3RfaW50IDgp KSArIChlcV9hdHRyICJtb2RlIiAiUlZWTUYzMkJJIikgKyAoaWZfdGhlbl9l bHNlIChtYXRjaF90ZXN0ICJUQVJHRVRfWFRIRUFEVkVDVE9SIikgKyAoY29u c3RfaW50IDMyKSArIChjb25zdF9pbnQgOCkpICsgKGVxX2F0dHIgIm1vZGUi ICJSVlZNRjY0QkkiKSArIChpZl90aGVuX2Vsc2UgKG1hdGNoX3Rlc3QgIlRB UkdFVF9YVEhFQURWRUNUT1IiKSArIChjb25zdF9pbnQgNjQpICsgKGNvbnN0 X2ludCA4KSkgKGVxX2F0dHIgIm1vZGUiICJSVlZNOEhJLFJWVk00SEksUlZW TTJISSxSVlZNMUhJLFJWVk1GMkhJLFJWVk1GNEhJLFwgUlZWTTF4OEhJLFJW Vk1GMng4SEksUlZWTUY0eDhISSxcIFJWVk0xeDdISSxSVlZNRjJ4N0hJLFJW Vk1GNHg3SEksXCBAQCAtMTU5LDkgKzE3MSw5IEBAIChlcV9hdHRyICJtb2Rl IiAiUlZWTTRRSSxSVlZNRjJCSSIpIChzeW1ib2xfcmVmICJyaXNjdl92ZWN0 b3I6OkxNVUxfNCIpIChlcV9hdHRyICJtb2RlIiAiUlZWTTJRSSxSVlZNRjRC SSIpIChzeW1ib2xfcmVmICJyaXNjdl92ZWN0b3I6OkxNVUxfMiIpIChlcV9h dHRyICJtb2RlIiAiUlZWTTFRSSxSVlZNRjhCSSIpIChzeW1ib2xfcmVmICJy aXNjdl92ZWN0b3I6OkxNVUxfMSIpIC0gKGVxX2F0dHIgIm1vZGUiICJSVlZN RjJRSSxSVlZNRjE2QkkiKSAoc3ltYm9sX3JlZiAicmlzY3ZfdmVjdG9yOjpM TVVMX0YyIikgLSAoZXFfYXR0ciAibW9kZSIgIlJWVk1GNFFJLFJWVk1GMzJC SSIpIChzeW1ib2xfcmVmICJyaXNjdl92ZWN0b3I6OkxNVUxfRjQiKSAtIChl cV9hdHRyICJtb2RlIiAiUlZWTUY4UUksUlZWTUY2NEJJIikgKHN5bWJvbF9y ZWYgInJpc2N2X3ZlY3Rvcjo6TE1VTF9GOCIpICsgKGVxX2F0dHIgIm1vZGUi ICJSVlZNRjJRSSxSVlZNRjE2QkkiKSAoc3ltYm9sX3JlZiAiVEFSR0VUX1hU SEVBRFZFQ1RPUiA/IHJpc2N2X3ZlY3Rvcjo6TE1VTF8xIDogcmlzY3ZfdmVj dG9yOjpMTVVMX0YyIikgKyAoZXFfYXR0ciAibW9kZSIgIlJWVk1GNFFJLFJW Vk1GMzJCSSIpIChzeW1ib2xfcmVmICJUQVJHRVRfWFRIRUFEVkVDVE9SID8g cmlzY3ZfdmVjdG9yOjpMTVVMXzEgOiByaXNjdl92ZWN0b3I6OkxNVUxfRjQi KSArIChlcV9hdHRyICJtb2RlIiAiUlZWTUY4UUksUlZWTUY2NEJJIikgKHN5 bWJvbF9yZWYgIlRBUkdFVF9YVEhFQURWRUNUT1IgPyByaXNjdl92ZWN0b3I6 OkxNVUxfMSA6IHJpc2N2X3ZlY3Rvcjo6TE1VTF9GOCIpWW91IHNob3VsZCBj aGFuZ2UgCi8qIEhlbHBlciBmdW5jdGlvbiB0byBnZXQgU0VXIG9wZXJhbmQu IFdlIGFsd2F5cyBoYXZlIFNFVyB2YWx1ZSBmb3IKIGFsbCBSVlYgaW5zdHJ1 Y3Rpb25zIHRoYXQgaGF2ZSBWVFlQRSBPUC4gKi8KdWludDhfdApnZXRfc2V3 IChydHhfaW5zbiAqcmluc24pCnsKcmV0dXJuIGdldF9hdHRyX3NldyAocmlu c24pOwp9Ci8qIEhlbHBlciBmdW5jdGlvbiB0byBnZXQgVkxNVUwgb3BlcmFu ZC4gV2UgYWx3YXlzIGhhdmUgVkxNVUwgdmFsdWUgZm9yCiBhbGwgUlZWIGlu c3RydWN0aW9ucyB0aGF0IGhhdmUgVlRZUEUgT1AuICovCmVudW0gdmxtdWxf dHlwZQpnZXRfdmxtdWwgKHJ0eF9pbnNuICpyaW5zbikKewogcmV0dXJuIChl bnVtIHZsbXVsX3R5cGUpIGdldF9hdHRyX3ZsbXVsIChyaW5zbik7Cn0KKyAo YW5kIChlcV9hdHRyICJ0eXBlIiAidmxkZSx2c3RlLHZsc2VnZGUsdnNzZWd0 ZSx2bHNlZ2RzLHZzc2VndHMsXCArIHZsc2VnZGZmLHZzc2VndHV4LHZsc2Vn ZG94LHZsc2VnZHV4IikgKyAobWF0Y2hfdGVzdCAiVEFSR0VUX1hUSEVBRFZF Q1RPUiIpKSArIChjb25zdF9pbnQgSU5WQUxJRF9BVFRSSUJVVEUpV2h5IGRv IHlvdSBhZGQgdGhpcyA/Cmp1emhlLnpob25nQHJpdmFpLmFpCuWPkeS7tuS6 uu+8miBqb3NodWEgPG1haWx0bzpjb29wZXIuam9zaHVhQGxpbnV4LmFsaWJh YmEuY29tID4K5Y+R6YCB5pe26Ze077yaIDIwMjQtMDEtMTEgMjI6MTEK5pS2 5Lu25Lq677yaIGp1emhlLnpob25nQHJpdmFpLmFpIDxtYWlsdG86anV6aGUu emhvbmdAcml2YWkuYWkgPjsgZ2NjLXBhdGNoZXMgPG1haWx0bzpnY2MtcGF0 Y2hlc0BnY2MuZ251Lm9yZyA+CuaKhOmAge+8miBKaW0gV2lsc29uIDxtYWls dG86amltLndpbHNvbi5nY2NAZ21haWwuY29tID47IHBhbG1lciA8bWFpbHRv OnBhbG1lckBkYWJiZWx0LmNvbSA+OyBhbmRyZXcgPG1haWx0bzphbmRyZXdA c2lmaXZlLmNvbSA+OyBwaGlsaXBwLnRvbXNpY2ggPG1haWx0bzpwaGlsaXBw LnRvbXNpY2hAdnJ1bGwuZXUgPjsgamVmZnJleWFsYXcgPG1haWx0bzpqZWZm cmV5YWxhd0BnbWFpbC5jb20gPjsgY2hyaXN0b3BoLm11ZWxsbmVyIDxtYWls dG86Y2hyaXN0b3BoLm11ZWxsbmVyQHZydWxsLmV1ID47IGppbm1hIDxtYWls dG86amlubWFAbGludXguYWxpYmFiYS5jb20gPjsgY29vcGVyLnF1IDxtYWls dG86Y29vcGVyLnF1QGxpbnV4LmFsaWJhYmEuY29tID4K5Li76aKY77yaIFJl 77yaUmXvvJpbUEFUQ0ggdjVdIFJJU0MtVjogQWRkIHN1cHBvcnQgZm9yIHh0 aGVhZHZlY3Rvci1zcGVjaWZpYyBpbnRyaW5zaWNzLgpJcyB0aGUgcGF0Y2gg d2l0aCAhVEFSR0VUX1hUSEVBRFZFQ1RPUiBmb3Igc2V4dC96ZXh0CnBhdHRl cm5zIHJlbW92ZWQgT0sgdG8gY29tbWl0PwpodHRwczovL2djYy5nbnUub3Jn L3BpcGVybWFpbC9nY2MtcGF0Y2hlcy8yMDI0LUphbnVhcnkvNjQyNjU3Lmh0 bWwgPGh0dHBzOi8vZ2NjLmdudS5vcmcvcGlwZXJtYWlsL2djYy1wYXRjaGVz LzIwMjQtSmFudWFyeS82NDI2NTcuaHRtbCA+Ci0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQrlj5Hku7bkurrvvJpqdXpoZS56aG9uZ0ByaXZhaS5haSA8anV6aGUu emhvbmdAcml2YWkuYWk+CuWPkemAgeaXtumXtO+8mjIwMjTlubQx5pyIMTHm l6Uo5pif5pyf5ZubKSAxODo1NgrmlLbku7bkurrvvJoiY29vcGVyLmpvc2h1 YSI8Y29vcGVyLmpvc2h1YUBsaW51eC5hbGliYWJhLmNvbT47ICJnY2MtcGF0 Y2hlcyI8Z2NjLXBhdGNoZXNAZ2NjLmdudS5vcmc+CuaKhOOAgOmAge+8mkpp bSBXaWxzb248amltLndpbHNvbi5nY2NAZ21haWwuY29tPjsgcGFsbWVyPHBh bG1lckBkYWJiZWx0LmNvbT47IGFuZHJldzxhbmRyZXdAc2lmaXZlLmNvbT47 ICJwaGlsaXBwLnRvbXNpY2giPHBoaWxpcHAudG9tc2ljaEB2cnVsbC5ldT47 IGplZmZyZXlhbGF3PGplZmZyZXlhbGF3QGdtYWlsLmNvbT47ICJjaHJpc3Rv cGgubXVlbGxuZXIiPGNocmlzdG9waC5tdWVsbG5lckB2cnVsbC5ldT47IGpp bm1hPGppbm1hQGxpbnV4LmFsaWJhYmEuY29tPjsgImNvb3Blci5xdSI8Y29v cGVyLnF1QGxpbnV4LmFsaWJhYmEuY29tPgrkuLvjgIDpopjvvJpSZTogUmXv vJpbUEFUQ0ggdjVdIFJJU0MtVjogQWRkIHN1cHBvcnQgZm9yIHh0aGVhZHZl Y3Rvci1zcGVjaWZpYyBpbnRyaW5zaWNzLgpZZXMuCmp1emhlLnpob25nQHJp dmFpLmFpCuWPkeS7tuS6uu+8miBqb3NodWEK5Y+R6YCB5pe26Ze077yaIDIw MjQtMDEtMTEgMTg6NTQK5pS25Lu25Lq677yaIGp1emhlLnpob25nQHJpdmFp LmFpOyBnY2MtcGF0Y2hlcwrmioTpgIHvvJogSmltIFdpbHNvbjsgcGFsbWVy OyBhbmRyZXc7IHBoaWxpcHAudG9tc2ljaDsgamVmZnJleWFsYXc7IGNocmlz dG9waC5tdWVsbG5lcjsgamlubWE7IGNvb3Blci5xdQrkuLvpopjvvJogUmXv vJpbUEFUQ0ggdjVdIFJJU0MtVjogQWRkIHN1cHBvcnQgZm9yIHh0aGVhZHZl Y3Rvci1zcGVjaWZpYyBpbnRyaW5zaWNzLgpEbyB5b3UgbWVhbiByZW1vdmlu ZyBUQVJHRVRfWFRIRUFEVkVDVE9SIGZvciBzZXh0L3pleHQgcGF0dGVybnMK YW5kIHRoZW4gcmVzZW5kaW5nIHRoZSAiUklTQy1WOiBIYW5kbGUgZGlmZmVy ZW5jZXMgYmV0d2VlbiBYVGhlYWR2ZWN0b3IKYW5kIFZlY3RvciIgcGF0Y2g/ Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQrlj5Hku7bkurrvvJpqdXpoZS56aG9u Z0ByaXZhaS5haSA8anV6aGUuemhvbmdAcml2YWkuYWk+CuWPkemAgeaXtumX tO+8mjIwMjTlubQx5pyIMTHml6Uo5pif5pyf5ZubKSAxNzo1NwrmlLbku7bk urrvvJoiY29vcGVyLmpvc2h1YSI8Y29vcGVyLmpvc2h1YUBsaW51eC5hbGli YWJhLmNvbT47ICJnY2MtcGF0Y2hlcyI8Z2NjLXBhdGNoZXNAZ2NjLmdudS5v cmc+CuaKhOOAgOmAge+8mkppbSBXaWxzb248amltLndpbHNvbi5nY2NAZ21h aWwuY29tPjsgcGFsbWVyPHBhbG1lckBkYWJiZWx0LmNvbT47IGFuZHJldzxh bmRyZXdAc2lmaXZlLmNvbT47ICJwaGlsaXBwLnRvbXNpY2giPHBoaWxpcHAu dG9tc2ljaEB2cnVsbC5ldT47IGplZmZyZXlhbGF3PGplZmZyZXlhbGF3QGdt YWlsLmNvbT47ICJjaHJpc3RvcGgubXVlbGxuZXIiPGNocmlzdG9waC5tdWVs bG5lckB2cnVsbC5ldT47ICJjb29wZXIuam9zaHVhIjxjb29wZXIuam9zaHVh QGxpbnV4LmFsaWJhYmEuY29tPjsgamlubWE8amlubWFAbGludXguYWxpYmFi YS5jb20+OyAiY29vcGVyLnF1Ijxjb29wZXIucXVAbGludXguYWxpYmFiYS5j b20+CuS4u+OAgOmimO+8mlJlOiBbUEFUQ0ggdjVdIFJJU0MtVjogQWRkIHN1 cHBvcnQgZm9yIHh0aGVhZHZlY3Rvci1zcGVjaWZpYyBpbnRyaW5zaWNzLgpM R1RNLiBDb3VsZCB5b3UgcmVzZW5kIHRoZSBwYXRjaCAiUklTQy1WOiBIYW5k bGUgZGlmZmVyZW5jZXMgYmV0d2VlbiBYVGhlYWR2ZWN0b3IgYW5kIFZlY3Rv cgpUaGFua3MuCmp1emhlLnpob25nQHJpdmFpLmFpCkZyb206IEp1biBTaGEg KEpvc2h1YSkKRGF0ZTogMjAyNC0wMS0xMSAxNzo1MgpUbzogZ2NjLXBhdGNo ZXMKQ0M6IGppbS53aWxzb24uZ2NjOyBwYWxtZXI7IGFuZHJldzsgcGhpbGlw cC50b21zaWNoOyBqZWZmcmV5YWxhdzsgY2hyaXN0b3BoLm11ZWxsbmVyOyBq dXpoZS56aG9uZzsgSnVuIFNoYSAoSm9zaHVhKTsgSmluIE1hOyBYaWFubWlh byBRdQpTdWJqZWN0OiBbUEFUQ0ggdjVdIFJJU0MtVjogQWRkIHN1cHBvcnQg Zm9yIHh0aGVhZHZlY3Rvci1zcGVjaWZpYyBpbnRyaW5zaWNzLgpUaGlzIHBh dGNoIG9ubHkgaW52b2x2ZXMgdGhlIGdlbmVyYXRpb24gb2YgeHRoZWFkdmVj dG9yCnNwZWNpYWwgbG9hZC9zdG9yZSBpbnN0cnVjdGlvbnMgYW5kIHZleHQg aW5zdHJ1Y3Rpb25zLgpnY2MvQ2hhbmdlTG9nOgogKiBjb25maWcvcmlzY3Yv cmlzY3YtdmVjdG9yLWJ1aWx0aW5zLWJhc2VzLmNjCiAoY2xhc3MgdGhfbG9h ZHN0b3JlX3dpZHRoKTogRGVmaW5lIG5ldyBidWlsdGluIGJhc2VzLgogKGNs YXNzIHRoX2V4dHJhY3QpOiBEZWZpbmUgbmV3IGJ1aWx0aW4gYmFzZXMuCiAo QkFTRSk6IERlZmluZSBuZXcgYnVpbHRpbiBiYXNlcy4KICogY29uZmlnL3Jp c2N2L3Jpc2N2LXZlY3Rvci1idWlsdGlucy1iYXNlcy5oOgogRGVmaW5lIG5l dyBidWlsdGluIGNsYXNzLgogKiBjb25maWcvcmlzY3YvcmlzY3YtdmVjdG9y LWJ1aWx0aW5zLXNoYXBlcy5jYwogKHN0cnVjdCB0aF9sb2Fkc3RvcmVfd2lk dGhfZGVmKTogRGVmaW5lIG5ldyBidWlsdGluIHNoYXBlcy4KIChzdHJ1Y3Qg dGhfaW5kZXhlZF9sb2Fkc3RvcmVfd2lkdGhfZGVmKToKIERlZmluZSBuZXcg YnVpbHRpbiBzaGFwZXMuCiAoc3RydWN0IHRoX2V4dHJhY3RfZGVmKTogRGVm aW5lIG5ldyBidWlsdGluIHNoYXBlcy4KIChTSEFQRSk6IERlZmluZSBuZXcg YnVpbHRpbiBzaGFwZXMuCiAqIGNvbmZpZy9yaXNjdi9yaXNjdi12ZWN0b3It YnVpbHRpbnMtc2hhcGVzLmg6CiBEZWZpbmUgbmV3IGJ1aWx0aW4gc2hhcGVz LgogKiBjb25maWcvcmlzY3YvcmlzY3YtdmVjdG9yLWJ1aWx0aW5zLmNjIChE RUZfUlZWX0ZVTkNUSU9OKToKICogY29uZmlnL3Jpc2N2L3Jpc2N2LXZlY3Rv ci1idWlsdGlucy5oIChlbnVtIHJlcXVpcmVkX2V4dCk6CiAoc3RydWN0IGZ1 bmN0aW9uX2dyb3VwX2luZm8pOgogKiBjb25maWcvcmlzY3YvdC1yaXNjdjog QWRkIHRoZWFkLXZlY3Rvci1idWlsdGlucy1mdW5jdGlvbnMuZGVmCiAqIGNv bmZpZy9yaXNjdi90aGVhZC12ZWN0b3IubWQKIChAcHJlZF9tb3Zfd2lkdGg8 dmxtZW1fb3BfYXR0cj48bW9kZT4pOiBBZGQgbmV3IHBhdHRlcm5zLgogKCpw cmVkX21vdl93aWR0aDx2bG1lbV9vcF9hdHRyPjxtb2RlPik6IExpa2V3aXNl LgogKEBwcmVkX3N0b3JlX3dpZHRoPHZsbWVtX29wX2F0dHI+PG1vZGU+KTog TGlrZXdpc2UuCiAoQHByZWRfc3RyaWRlZF9sb2FkX3dpZHRoPHZsbWVtX29w X2F0dHI+PG1vZGU+KTogTGlrZXdpc2UuCiAoQHByZWRfc3RyaWRlZF9zdG9y ZV93aWR0aDx2bG1lbV9vcF9hdHRyPjxtb2RlPik6IExpa2V3aXNlLgogKEBw cmVkX2luZGV4ZWRfbG9hZF93aWR0aDx2bG1lbV9vcF9hdHRyPjxtb2RlPik6 IExpa2V3aXNlLgogKEBwcmVkX2luZGV4ZWRfPHZsbWVtX29yZGVyX2F0dHI+ c3RvcmVfd2lkdGg8dmxtZW1fb3BfYXR0cj48bW9kZT4pOgogKEBwcmVkX3Ro X2V4dHJhY3Q8bW9kZT4pOiBMaWtld2lzZS4KICgqcHJlZF90aF9leHRyYWN0 PG1vZGU+KTogTGlrZXdpc2UuCiAqIGNvbmZpZy9yaXNjdi90aGVhZC12ZWN0 b3ItYnVpbHRpbnMtZnVuY3Rpb25zLmRlZjogTmV3IGZpbGUuCmdjYy90ZXN0 c3VpdGUvQ2hhbmdlTG9nOgogKiBnY2MudGFyZ2V0L3Jpc2N2L3J2di94dGhl YWR2ZWN0b3IvdmxiLXZzYi5jOiBOZXcgdGVzdC4KICogZ2NjLnRhcmdldC9y aXNjdi9ydnYveHRoZWFkdmVjdG9yL3ZsYnUtdnNiLmM6IE5ldyB0ZXN0Lgog KiBnY2MudGFyZ2V0L3Jpc2N2L3J2di94dGhlYWR2ZWN0b3IvdmxoLXZzaC5j OiBOZXcgdGVzdC4KICogZ2NjLnRhcmdldC9yaXNjdi9ydnYveHRoZWFkdmVj dG9yL3ZsaHUtdnNoLmM6IE5ldyB0ZXN0LgogKiBnY2MudGFyZ2V0L3Jpc2N2 L3J2di94dGhlYWR2ZWN0b3Ivdmx3LXZzdy5jOiBOZXcgdGVzdC4KICogZ2Nj LnRhcmdldC9yaXNjdi9ydnYveHRoZWFkdmVjdG9yL3Zsd3UtdnN3LmM6IE5l dyB0ZXN0LgpDby1hdXRob3JlZC1ieTogSmluIE1hIDxqaW5tYUBsaW51eC5h bGliYWJhLmNvbT4KQ28tYXV0aG9yZWQtYnk6IFhpYW5taWFvIFF1IDxjb29w ZXIucXVAbGludXguYWxpYmFiYS5jb20+CkNvLWF1dGhvcmVkLWJ5OiBDaHJp c3RvcGggTcO8bGxuZXIgPGNocmlzdG9waC5tdWVsbG5lckB2cnVsbC5ldT4K LS0tCiAuLi4vcmlzY3YvcmlzY3YtdmVjdG9yLWJ1aWx0aW5zLWJhc2VzLmNj IHwgMTM5ICsrKysrKysrKysKIC4uLi9yaXNjdi9yaXNjdi12ZWN0b3ItYnVp bHRpbnMtYmFzZXMuaCB8IDMxICsrKwogLi4uL3Jpc2N2L3Jpc2N2LXZlY3Rv ci1idWlsdGlucy1zaGFwZXMuY2MgfCAxNjAgKysrKysrKysrKysKIC4uLi9y aXNjdi9yaXNjdi12ZWN0b3ItYnVpbHRpbnMtc2hhcGVzLmggfCAzICsKIGdj Yy9jb25maWcvcmlzY3YvcmlzY3YtdmVjdG9yLWJ1aWx0aW5zLmNjIHwgNzAg KysrKysKIGdjYy9jb25maWcvcmlzY3YvcmlzY3YtdmVjdG9yLWJ1aWx0aW5z LmggfCAzICsKIGdjYy9jb25maWcvcmlzY3YvdC1yaXNjdiB8IDEgKwogLi4u L3Jpc2N2L3RoZWFkLXZlY3Rvci1idWlsdGlucy1mdW5jdGlvbnMuZGVmIHwg MzkgKysrCiBnY2MvY29uZmlnL3Jpc2N2L3RoZWFkLXZlY3Rvci5tZCB8IDI1 MCArKysrKysrKysrKysrKysrKysKIC4uLi9yaXNjdi9ydnYveHRoZWFkdmVj dG9yL3ZsYi12c2IuYyB8IDY4ICsrKysrCiAuLi4vcmlzY3YvcnZ2L3h0aGVh ZHZlY3Rvci92bGJ1LXZzYi5jIHwgNjggKysrKysKIC4uLi9yaXNjdi9ydnYv eHRoZWFkdmVjdG9yL3ZsaC12c2guYyB8IDY4ICsrKysrCiAuLi4vcmlzY3Yv cnZ2L3h0aGVhZHZlY3Rvci92bGh1LXZzaC5jIHwgNjggKysrKysKIC4uLi9y aXNjdi9ydnYveHRoZWFkdmVjdG9yL3Zsdy12c3cuYyB8IDY4ICsrKysrCiAu Li4vcmlzY3YvcnZ2L3h0aGVhZHZlY3Rvci92bHd1LXZzdy5jIHwgNjggKysr KysKIDE1IGZpbGVzIGNoYW5nZWQsIDExMDQgaW5zZXJ0aW9ucygrKQogY3Jl YXRlIG1vZGUgMTAwNjQ0IGdjYy9jb25maWcvcmlzY3YvdGhlYWQtdmVjdG9y LWJ1aWx0aW5zLWZ1bmN0aW9ucy5kZWYKIGNyZWF0ZSBtb2RlIDEwMDY0NCBn Y2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L3h0aGVhZHZlY3Rv ci92bGItdnNiLmMKIGNyZWF0ZSBtb2RlIDEwMDY0NCBnY2MvdGVzdHN1aXRl L2djYy50YXJnZXQvcmlzY3YvcnZ2L3h0aGVhZHZlY3Rvci92bGJ1LXZzYi5j CiBjcmVhdGUgbW9kZSAxMDA2NDQgZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0 L3Jpc2N2L3J2di94dGhlYWR2ZWN0b3IvdmxoLXZzaC5jCiBjcmVhdGUgbW9k ZSAxMDA2NDQgZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di94 dGhlYWR2ZWN0b3IvdmxodS12c2guYwogY3JlYXRlIG1vZGUgMTAwNjQ0IGdj Yy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYveHRoZWFkdmVjdG9y L3Zsdy12c3cuYwogY3JlYXRlIG1vZGUgMTAwNjQ0IGdjYy90ZXN0c3VpdGUv Z2NjLnRhcmdldC9yaXNjdi9ydnYveHRoZWFkdmVjdG9yL3Zsd3UtdnN3LmMK ZGlmZiAtLWdpdCBhL2djYy9jb25maWcvcmlzY3YvcmlzY3YtdmVjdG9yLWJ1 aWx0aW5zLWJhc2VzLmNjIGIvZ2NjL2NvbmZpZy9yaXNjdi9yaXNjdi12ZWN0 b3ItYnVpbHRpbnMtYmFzZXMuY2MKaW5kZXggMWFhNmUzYzY2NjUuLmI2ZjZl NGZmMzdlIDEwMDY0NAotLS0gYS9nY2MvY29uZmlnL3Jpc2N2L3Jpc2N2LXZl Y3Rvci1idWlsdGlucy1iYXNlcy5jYworKysgYi9nY2MvY29uZmlnL3Jpc2N2 L3Jpc2N2LXZlY3Rvci1idWlsdGlucy1iYXNlcy5jYwpAQCAtMjE0MSw2ICsy MTQxLDgzIEBAIHB1YmxpYzoKIH0KIH07CisvKiBJbXBsZW1lbnRzCisgKiB0 aC52bChiL2gvdylbdV0udi90aC52cyhiL2gvdylbdV0udi90aC52bHMoYi9o L3cpW3VdLnYvdGgudnNzKGIvaC93KVt1XS52LworICogdGgudmx4KGIvaC93 KVt1XS52L3RoLnZzW3VdeChiL2gvdykudgorICogY29kZWdlbi4gKi8KK3Rl bXBsYXRlPGJvb2wgU1RPUkVfUCwgbHN0X3R5cGUgTFNUX1RZUEUsIGludCBV TlNQRUM+CitjbGFzcyB0aF9sb2Fkc3RvcmVfd2lkdGggOiBwdWJsaWMgZnVu Y3Rpb25fYmFzZQoreworcHVibGljOgorIGJvb2wgYXBwbHlfdGFpbF9wb2xp Y3lfcCAoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiAhU1RPUkVfUDsgfQor IGJvb2wgYXBwbHlfbWFza19wb2xpY3lfcCAoKSBjb25zdCBvdmVycmlkZSB7 IHJldHVybiAhU1RPUkVfUDsgfQorCisgdW5zaWduZWQgaW50IGNhbGxfcHJv cGVydGllcyAoY29uc3QgZnVuY3Rpb25faW5zdGFuY2UgJikgY29uc3Qgb3Zl cnJpZGUKKyB7CisgaWYgKFNUT1JFX1ApCisgcmV0dXJuIENQX1dSSVRFX01F TU9SWTsKKyBlbHNlCisgcmV0dXJuIENQX1JFQURfTUVNT1JZOworIH0KKwor IGJvb2wgY2FuX2JlX292ZXJsb2FkZWRfcCAoZW51bSBwcmVkaWNhdGlvbl90 eXBlX2luZGV4IHByZWQpIGNvbnN0IG92ZXJyaWRlCisgeworIGlmIChTVE9S RV9QIHx8IExTVF9UWVBFID09IExTVF9JTkRFWEVEKQorIHJldHVybiB0cnVl OworIHJldHVybiBwcmVkICE9IFBSRURfVFlQRV9ub25lOworIH0KKworIHJ0 eCBleHBhbmQgKGZ1bmN0aW9uX2V4cGFuZGVyICZlKSBjb25zdCBvdmVycmlk ZQorIHsKKyBnY2NfYXNzZXJ0IChUQVJHRVRfWFRIRUFEVkVDVE9SKTsKKyBp ZiAoTFNUX1RZUEUgPT0gTFNUX0lOREVYRUQpCisgeworIGlmIChTVE9SRV9Q KQorIHJldHVybiBlLnVzZV9leGFjdF9pbnNuICgKKyBjb2RlX2Zvcl9wcmVk X2luZGV4ZWRfc3RvcmVfd2lkdGggKFVOU1BFQywgVU5TUEVDLAorIGUudmVj dG9yX21vZGUgKCkpKTsKKyBlbHNlCisgcmV0dXJuIGUudXNlX2V4YWN0X2lu c24gKAorIGNvZGVfZm9yX3ByZWRfaW5kZXhlZF9sb2FkX3dpZHRoIChVTlNQ RUMsIGUudmVjdG9yX21vZGUgKCkpKTsKKyB9CisgZWxzZSBpZiAoTFNUX1RZ UEUgPT0gTFNUX1NUUklERUQpCisgeworIGlmIChTVE9SRV9QKQorIHJldHVy biBlLnVzZV9jb250aWd1b3VzX3N0b3JlX2luc24gKAorIGNvZGVfZm9yX3By ZWRfc3RyaWRlZF9zdG9yZV93aWR0aCAoVU5TUEVDLCBlLnZlY3Rvcl9tb2Rl ICgpKSk7CisgZWxzZQorIHJldHVybiBlLnVzZV9jb250aWd1b3VzX2xvYWRf aW5zbiAoCisgY29kZV9mb3JfcHJlZF9zdHJpZGVkX2xvYWRfd2lkdGggKFVO U1BFQywgZS52ZWN0b3JfbW9kZSAoKSkpOworIH0KKyBlbHNlCisgeworIGlm IChTVE9SRV9QKQorIHJldHVybiBlLnVzZV9jb250aWd1b3VzX3N0b3JlX2lu c24gKAorIGNvZGVfZm9yX3ByZWRfc3RvcmVfd2lkdGggKFVOU1BFQywgZS52 ZWN0b3JfbW9kZSAoKSkpOworIGVsc2UKKyByZXR1cm4gZS51c2VfY29udGln dW91c19sb2FkX2luc24gKAorIGNvZGVfZm9yX3ByZWRfbW92X3dpZHRoIChV TlNQRUMsIGUudmVjdG9yX21vZGUgKCkpKTsKKyB9CisgfQorfTsKKworLyog SW1wbGVtZW50cyB2ZXh0Lngudi4gKi8KK2NsYXNzIHRoX2V4dHJhY3QgOiBw dWJsaWMgZnVuY3Rpb25fYmFzZQoreworcHVibGljOgorIGJvb2wgYXBwbHlf dmxfcCAoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBmYWxzZTsgfQorIGJv b2wgYXBwbHlfdGFpbF9wb2xpY3lfcCAoKSBjb25zdCBvdmVycmlkZSB7IHJl dHVybiBmYWxzZTsgfQorIGJvb2wgYXBwbHlfbWFza19wb2xpY3lfcCAoKSBj b25zdCBvdmVycmlkZSB7IHJldHVybiBmYWxzZTsgfQorIGJvb2wgdXNlX21h c2tfcHJlZGljYXRpb25fcCAoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBm YWxzZTsgfQorIGJvb2wgaGFzX21lcmdlX29wZXJhbmRfcCAoKSBjb25zdCBv dmVycmlkZSB7IHJldHVybiBmYWxzZTsgfQorCisgcnR4IGV4cGFuZCAoZnVu Y3Rpb25fZXhwYW5kZXIgJmUpIGNvbnN0IG92ZXJyaWRlCisgeworIGdjY19h c3NlcnQgKFRBUkdFVF9YVEhFQURWRUNUT1IpOworIHJldHVybiBlLnVzZV9l eGFjdF9pbnNuIChjb2RlX2Zvcl9wcmVkX3RoX2V4dHJhY3QgKGUudmVjdG9y X21vZGUgKCkpKTsKKyB9Cit9OworCiAvKiBCZWxvdyBpbXBsZW1lbnRzIGFy ZSB2ZWN0b3IgY3J5cHRvICovCiAvKiBJbXBsZW1lbnRzIHZhbmRuLlt2dix2 eF0gKi8KIGNsYXNzIHZhbmRuIDogcHVibGljIGZ1bmN0aW9uX2Jhc2UKQEAg LTI2MDMsNiArMjY4MCwzNyBAQCBzdGF0aWMgQ09OU1RFWFBSIGNvbnN0IHNl Z19pbmRleGVkX2xvYWQ8VU5TUEVDX09SREVSRUQ+IHZsb3hzZWdfb2JqOwog c3RhdGljIENPTlNURVhQUiBjb25zdCBzZWdfaW5kZXhlZF9zdG9yZTxVTlNQ RUNfVU5PUkRFUkVEPiB2c3V4c2VnX29iajsKIHN0YXRpYyBDT05TVEVYUFIg Y29uc3Qgc2VnX2luZGV4ZWRfc3RvcmU8VU5TUEVDX09SREVSRUQ+IHZzb3hz ZWdfb2JqOwogc3RhdGljIENPTlNURVhQUiBjb25zdCB2bHNlZ2ZmIHZsc2Vn ZmZfb2JqOworc3RhdGljIENPTlNURVhQUiBjb25zdCB0aF9sb2Fkc3RvcmVf d2lkdGg8ZmFsc2UsIExTVF9VTklUX1NUUklERSwgVU5TUEVDX1RIX1ZMQj4g dmxiX29iajsKK3N0YXRpYyBDT05TVEVYUFIgY29uc3QgdGhfbG9hZHN0b3Jl X3dpZHRoPGZhbHNlLCBMU1RfVU5JVF9TVFJJREUsIFVOU1BFQ19USF9WTEJV PiB2bGJ1X29iajsKK3N0YXRpYyBDT05TVEVYUFIgY29uc3QgdGhfbG9hZHN0 b3JlX3dpZHRoPGZhbHNlLCBMU1RfVU5JVF9TVFJJREUsIFVOU1BFQ19USF9W TEg+IHZsaF9vYmo7CitzdGF0aWMgQ09OU1RFWFBSIGNvbnN0IHRoX2xvYWRz dG9yZV93aWR0aDxmYWxzZSwgTFNUX1VOSVRfU1RSSURFLCBVTlNQRUNfVEhf VkxIVT4gdmxodV9vYmo7CitzdGF0aWMgQ09OU1RFWFBSIGNvbnN0IHRoX2xv YWRzdG9yZV93aWR0aDxmYWxzZSwgTFNUX1VOSVRfU1RSSURFLCBVTlNQRUNf VEhfVkxXPiB2bHdfb2JqOworc3RhdGljIENPTlNURVhQUiBjb25zdCB0aF9s b2Fkc3RvcmVfd2lkdGg8ZmFsc2UsIExTVF9VTklUX1NUUklERSwgVU5TUEVD X1RIX1ZMV1U+IHZsd3Vfb2JqOworc3RhdGljIENPTlNURVhQUiBjb25zdCB0 aF9sb2Fkc3RvcmVfd2lkdGg8dHJ1ZSwgTFNUX1VOSVRfU1RSSURFLCBVTlNQ RUNfVEhfVkxCPiB2c2Jfb2JqOworc3RhdGljIENPTlNURVhQUiBjb25zdCB0 aF9sb2Fkc3RvcmVfd2lkdGg8dHJ1ZSwgTFNUX1VOSVRfU1RSSURFLCBVTlNQ RUNfVEhfVkxIPiB2c2hfb2JqOworc3RhdGljIENPTlNURVhQUiBjb25zdCB0 aF9sb2Fkc3RvcmVfd2lkdGg8dHJ1ZSwgTFNUX1VOSVRfU1RSSURFLCBVTlNQ RUNfVEhfVkxXPiB2c3dfb2JqOworc3RhdGljIENPTlNURVhQUiBjb25zdCB0 aF9sb2Fkc3RvcmVfd2lkdGg8ZmFsc2UsIExTVF9TVFJJREVELCBVTlNQRUNf VEhfVkxTQj4gdmxzYl9vYmo7CitzdGF0aWMgQ09OU1RFWFBSIGNvbnN0IHRo X2xvYWRzdG9yZV93aWR0aDxmYWxzZSwgTFNUX1NUUklERUQsIFVOU1BFQ19U SF9WTFNCVT4gdmxzYnVfb2JqOworc3RhdGljIENPTlNURVhQUiBjb25zdCB0 aF9sb2Fkc3RvcmVfd2lkdGg8ZmFsc2UsIExTVF9TVFJJREVELCBVTlNQRUNf VEhfVkxTSD4gdmxzaF9vYmo7CitzdGF0aWMgQ09OU1RFWFBSIGNvbnN0IHRo X2xvYWRzdG9yZV93aWR0aDxmYWxzZSwgTFNUX1NUUklERUQsIFVOU1BFQ19U SF9WTFNIVT4gdmxzaHVfb2JqOworc3RhdGljIENPTlNURVhQUiBjb25zdCB0 aF9sb2Fkc3RvcmVfd2lkdGg8ZmFsc2UsIExTVF9TVFJJREVELCBVTlNQRUNf VEhfVkxTVz4gdmxzd19vYmo7CitzdGF0aWMgQ09OU1RFWFBSIGNvbnN0IHRo X2xvYWRzdG9yZV93aWR0aDxmYWxzZSwgTFNUX1NUUklERUQsIFVOU1BFQ19U SF9WTFNXVT4gdmxzd3Vfb2JqOworc3RhdGljIENPTlNURVhQUiBjb25zdCB0 aF9sb2Fkc3RvcmVfd2lkdGg8dHJ1ZSwgTFNUX1NUUklERUQsIFVOU1BFQ19U SF9WTFNCPiB2c3NiX29iajsKK3N0YXRpYyBDT05TVEVYUFIgY29uc3QgdGhf bG9hZHN0b3JlX3dpZHRoPHRydWUsIExTVF9TVFJJREVELCBVTlNQRUNfVEhf VkxTSD4gdnNzaF9vYmo7CitzdGF0aWMgQ09OU1RFWFBSIGNvbnN0IHRoX2xv YWRzdG9yZV93aWR0aDx0cnVlLCBMU1RfU1RSSURFRCwgVU5TUEVDX1RIX1ZM U1c+IHZzc3dfb2JqOworc3RhdGljIENPTlNURVhQUiBjb25zdCB0aF9sb2Fk c3RvcmVfd2lkdGg8ZmFsc2UsIExTVF9JTkRFWEVELCBVTlNQRUNfVEhfVkxY Qj4gdmx4Yl9vYmo7CitzdGF0aWMgQ09OU1RFWFBSIGNvbnN0IHRoX2xvYWRz dG9yZV93aWR0aDxmYWxzZSwgTFNUX0lOREVYRUQsIFVOU1BFQ19USF9WTFhC VT4gdmx4YnVfb2JqOworc3RhdGljIENPTlNURVhQUiBjb25zdCB0aF9sb2Fk c3RvcmVfd2lkdGg8ZmFsc2UsIExTVF9JTkRFWEVELCBVTlNQRUNfVEhfVkxY SD4gdmx4aF9vYmo7CitzdGF0aWMgQ09OU1RFWFBSIGNvbnN0IHRoX2xvYWRz dG9yZV93aWR0aDxmYWxzZSwgTFNUX0lOREVYRUQsIFVOU1BFQ19USF9WTFhI VT4gdmx4aHVfb2JqOworc3RhdGljIENPTlNURVhQUiBjb25zdCB0aF9sb2Fk c3RvcmVfd2lkdGg8ZmFsc2UsIExTVF9JTkRFWEVELCBVTlNQRUNfVEhfVkxY Vz4gdmx4d19vYmo7CitzdGF0aWMgQ09OU1RFWFBSIGNvbnN0IHRoX2xvYWRz dG9yZV93aWR0aDxmYWxzZSwgTFNUX0lOREVYRUQsIFVOU1BFQ19USF9WTFhX VT4gdmx4d3Vfb2JqOworc3RhdGljIENPTlNURVhQUiBjb25zdCB0aF9sb2Fk c3RvcmVfd2lkdGg8dHJ1ZSwgTFNUX0lOREVYRUQsIFVOU1BFQ19USF9WTFhC PiB2c3hiX29iajsKK3N0YXRpYyBDT05TVEVYUFIgY29uc3QgdGhfbG9hZHN0 b3JlX3dpZHRoPHRydWUsIExTVF9JTkRFWEVELCBVTlNQRUNfVEhfVkxYSD4g dnN4aF9vYmo7CitzdGF0aWMgQ09OU1RFWFBSIGNvbnN0IHRoX2xvYWRzdG9y ZV93aWR0aDx0cnVlLCBMU1RfSU5ERVhFRCwgVU5TUEVDX1RIX1ZMWFc+IHZz eHdfb2JqOworc3RhdGljIENPTlNURVhQUiBjb25zdCB0aF9sb2Fkc3RvcmVf d2lkdGg8dHJ1ZSwgTFNUX0lOREVYRUQsIFVOU1BFQ19USF9WU1VYQj4gdnN1 eGJfb2JqOworc3RhdGljIENPTlNURVhQUiBjb25zdCB0aF9sb2Fkc3RvcmVf d2lkdGg8dHJ1ZSwgTFNUX0lOREVYRUQsIFVOU1BFQ19USF9WU1VYSD4gdnN1 eGhfb2JqOworc3RhdGljIENPTlNURVhQUiBjb25zdCB0aF9sb2Fkc3RvcmVf d2lkdGg8dHJ1ZSwgTFNUX0lOREVYRUQsIFVOU1BFQ19USF9WU1VYVz4gdnN1 eHdfb2JqOworc3RhdGljIENPTlNURVhQUiBjb25zdCB0aF9leHRyYWN0IHZl eHRfeF92X29iajsKIC8qIENyeXB0byBWZWN0b3IgKi8KIHN0YXRpYyBDT05T VEVYUFIgY29uc3QgdmFuZG4gdmFuZG5fb2JqOwpAQCAtMjg5NCw2ICszMDAy LDM3IEBAIEJBU0UgKHZsb3hzZWcpCiBCQVNFICh2c3V4c2VnKQogQkFTRSAo dnNveHNlZykKIEJBU0UgKHZsc2VnZmYpCitCQVNFICh2bGIpCitCQVNFICh2 bGgpCitCQVNFICh2bHcpCitCQVNFICh2bGJ1KQorQkFTRSAodmxodSkKK0JB U0UgKHZsd3UpCitCQVNFICh2c2IpCitCQVNFICh2c2gpCitCQVNFICh2c3cp CitCQVNFICh2bHNiKQorQkFTRSAodmxzaCkKK0JBU0UgKHZsc3cpCitCQVNF ICh2bHNidSkKK0JBU0UgKHZsc2h1KQorQkFTRSAodmxzd3UpCitCQVNFICh2 c3NiKQorQkFTRSAodnNzaCkKK0JBU0UgKHZzc3cpCitCQVNFICh2bHhiKQor QkFTRSAodmx4aCkKK0JBU0UgKHZseHcpCitCQVNFICh2bHhidSkKK0JBU0Ug KHZseGh1KQorQkFTRSAodmx4d3UpCitCQVNFICh2c3hiKQorQkFTRSAodnN4 aCkKK0JBU0UgKHZzeHcpCitCQVNFICh2c3V4YikKK0JBU0UgKHZzdXhoKQor QkFTRSAodnN1eHcpCitCQVNFICh2ZXh0X3hfdikKIC8qIENyeXB0byB2ZWN0 b3IgKi8KIEJBU0UgKHZhbmRuKQogQkFTRSAodmJyZXYpCmRpZmYgLS1naXQg YS9nY2MvY29uZmlnL3Jpc2N2L3Jpc2N2LXZlY3Rvci1idWlsdGlucy1iYXNl cy5oIGIvZ2NjL2NvbmZpZy9yaXNjdi9yaXNjdi12ZWN0b3ItYnVpbHRpbnMt YmFzZXMuaAppbmRleCA4N2M3ZjQzYTQyMy4uMWYyYzk0ZDM1NDEgMTAwNjQ0 Ci0tLSBhL2djYy9jb25maWcvcmlzY3YvcmlzY3YtdmVjdG9yLWJ1aWx0aW5z LWJhc2VzLmgKKysrIGIvZ2NjL2NvbmZpZy9yaXNjdi9yaXNjdi12ZWN0b3It YnVpbHRpbnMtYmFzZXMuaApAQCAtMjgwLDYgKzI4MCwzNyBAQCBleHRlcm4g Y29uc3QgZnVuY3Rpb25fYmFzZSAqY29uc3QgdmxveHNlZzsKIGV4dGVybiBj b25zdCBmdW5jdGlvbl9iYXNlICpjb25zdCB2c3V4c2VnOwogZXh0ZXJuIGNv bnN0IGZ1bmN0aW9uX2Jhc2UgKmNvbnN0IHZzb3hzZWc7CiBleHRlcm4gY29u c3QgZnVuY3Rpb25fYmFzZSAqY29uc3QgdmxzZWdmZjsKK2V4dGVybiBjb25z dCBmdW5jdGlvbl9iYXNlICpjb25zdCB2bGI7CitleHRlcm4gY29uc3QgZnVu Y3Rpb25fYmFzZSAqY29uc3QgdmxoOworZXh0ZXJuIGNvbnN0IGZ1bmN0aW9u X2Jhc2UgKmNvbnN0IHZsdzsKK2V4dGVybiBjb25zdCBmdW5jdGlvbl9iYXNl ICpjb25zdCB2bGJ1OworZXh0ZXJuIGNvbnN0IGZ1bmN0aW9uX2Jhc2UgKmNv bnN0IHZsaHU7CitleHRlcm4gY29uc3QgZnVuY3Rpb25fYmFzZSAqY29uc3Qg dmx3dTsKK2V4dGVybiBjb25zdCBmdW5jdGlvbl9iYXNlICpjb25zdCB2c2I7 CitleHRlcm4gY29uc3QgZnVuY3Rpb25fYmFzZSAqY29uc3QgdnNoOworZXh0 ZXJuIGNvbnN0IGZ1bmN0aW9uX2Jhc2UgKmNvbnN0IHZzdzsKK2V4dGVybiBj b25zdCBmdW5jdGlvbl9iYXNlICpjb25zdCB2bHNiOworZXh0ZXJuIGNvbnN0 IGZ1bmN0aW9uX2Jhc2UgKmNvbnN0IHZsc2g7CitleHRlcm4gY29uc3QgZnVu Y3Rpb25fYmFzZSAqY29uc3QgdmxzdzsKK2V4dGVybiBjb25zdCBmdW5jdGlv bl9iYXNlICpjb25zdCB2bHNidTsKK2V4dGVybiBjb25zdCBmdW5jdGlvbl9i YXNlICpjb25zdCB2bHNodTsKK2V4dGVybiBjb25zdCBmdW5jdGlvbl9iYXNl ICpjb25zdCB2bHN3dTsKK2V4dGVybiBjb25zdCBmdW5jdGlvbl9iYXNlICpj b25zdCB2c3NiOworZXh0ZXJuIGNvbnN0IGZ1bmN0aW9uX2Jhc2UgKmNvbnN0 IHZzc2g7CitleHRlcm4gY29uc3QgZnVuY3Rpb25fYmFzZSAqY29uc3QgdnNz dzsKK2V4dGVybiBjb25zdCBmdW5jdGlvbl9iYXNlICpjb25zdCB2bHhiOwor ZXh0ZXJuIGNvbnN0IGZ1bmN0aW9uX2Jhc2UgKmNvbnN0IHZseGg7CitleHRl cm4gY29uc3QgZnVuY3Rpb25fYmFzZSAqY29uc3Qgdmx4dzsKK2V4dGVybiBj b25zdCBmdW5jdGlvbl9iYXNlICpjb25zdCB2bHhidTsKK2V4dGVybiBjb25z dCBmdW5jdGlvbl9iYXNlICpjb25zdCB2bHhodTsKK2V4dGVybiBjb25zdCBm dW5jdGlvbl9iYXNlICpjb25zdCB2bHh3dTsKK2V4dGVybiBjb25zdCBmdW5j dGlvbl9iYXNlICpjb25zdCB2c3hiOworZXh0ZXJuIGNvbnN0IGZ1bmN0aW9u X2Jhc2UgKmNvbnN0IHZzeGg7CitleHRlcm4gY29uc3QgZnVuY3Rpb25fYmFz ZSAqY29uc3QgdnN4dzsKK2V4dGVybiBjb25zdCBmdW5jdGlvbl9iYXNlICpj b25zdCB2c3V4YjsKK2V4dGVybiBjb25zdCBmdW5jdGlvbl9iYXNlICpjb25z dCB2c3V4aDsKK2V4dGVybiBjb25zdCBmdW5jdGlvbl9iYXNlICpjb25zdCB2 c3V4dzsKK2V4dGVybiBjb25zdCBmdW5jdGlvbl9iYXNlICpjb25zdCB2ZXh0 X3hfdjsKIC8qIEJlbG93IGZ1bmN0aW9uX2Jhc2UgYXJlIFZlY3RybyBDcnlw dG8qLwogZXh0ZXJuIGNvbnN0IGZ1bmN0aW9uX2Jhc2UgKmNvbnN0IHZhbmRu OwogZXh0ZXJuIGNvbnN0IGZ1bmN0aW9uX2Jhc2UgKmNvbnN0IHZicmV2Owpk aWZmIC0tZ2l0IGEvZ2NjL2NvbmZpZy9yaXNjdi9yaXNjdi12ZWN0b3ItYnVp bHRpbnMtc2hhcGVzLmNjIGIvZ2NjL2NvbmZpZy9yaXNjdi9yaXNjdi12ZWN0 b3ItYnVpbHRpbnMtc2hhcGVzLmNjCmluZGV4IDFlNGY0ZDUzZGU2Li44ZTkw YjE3YTk0YiAxMDA2NDQKLS0tIGEvZ2NjL2NvbmZpZy9yaXNjdi9yaXNjdi12 ZWN0b3ItYnVpbHRpbnMtc2hhcGVzLmNjCisrKyBiL2djYy9jb25maWcvcmlz Y3YvcmlzY3YtdmVjdG9yLWJ1aWx0aW5zLXNoYXBlcy5jYwpAQCAtMjExLDYg KzIxMSwxNDYgQEAgc3RydWN0IGluZGV4ZWRfbG9hZHN0b3JlX2RlZiA6IHB1 YmxpYyBmdW5jdGlvbl9zaGFwZQogfQogfTsKKy8qIEFkZCBvbmUgZnVuY3Rp b24gaW5zdGFuY2UgZm9yIEdST1VQLCB1c2luZyBvcGVyYW5kIHN1ZmZpeCBh dCBpbmRleCBPSSwKKyBtb2RlIHN1ZmZpeCBhdCBpbmRleCBQQUlSICYmIGJp IGFuZCBwcmVkaWNhdGlvbiBzdWZmaXggYXQgaW5kZXggcHJlZF9pZHguICov CitzdGF0aWMgdm9pZAorYnVpbGRfdGhfbG9hZHN0b3JlIChmdW5jdGlvbl9i dWlsZGVyICZiLCBjb25zdCBmdW5jdGlvbl9ncm91cF9pbmZvICZncm91cCwK KyB1bnNpZ25lZCBpbnQgcHJlZF9pZHgsIHVuc2lnbmVkIGludCB2ZWNfdHlw ZV9pZHgpCit7CisgYXV0b192ZWM8dHJlZSwgNT4gYXJndW1lbnRfdHlwZXM7 CisgZnVuY3Rpb25faW5zdGFuY2UgZnVuY3Rpb25faW5zdGFuY2UgKGdyb3Vw LmJhc2VfbmFtZSwgKmdyb3VwLmJhc2UsCisgKmdyb3VwLnNoYXBlLAorIGdy b3VwLm9wc19pbmZvcy50eXBlc1t2ZWNfdHlwZV9pZHhdLAorIGdyb3VwLnBy ZWRzW3ByZWRfaWR4XSwgJmdyb3VwLm9wc19pbmZvcyk7CisgdHJlZSByZXR1 cm5fdHlwZSA9IGdyb3VwLm9wc19pbmZvcy5yZXQuZ2V0X3RyZWVfdHlwZSAo CisgZ3JvdXAub3BzX2luZm9zLnR5cGVzW3ZlY190eXBlX2lkeF0uaW5kZXgp OworIGIuYWxsb2NhdGVfYXJndW1lbnRfdHlwZXMgKGZ1bmN0aW9uX2luc3Rh bmNlLCBhcmd1bWVudF90eXBlcyk7CisgYi5hcHBseV9wcmVkaWNhdGlvbiAo ZnVuY3Rpb25faW5zdGFuY2UsIHJldHVybl90eXBlLCBhcmd1bWVudF90eXBl cyk7CisKKyBpZiAoVEFSR0VUX1hUSEVBRFZFQ1RPUiAmJiAhY2hlY2tfdHlw ZSAocmV0dXJuX3R5cGUsIGFyZ3VtZW50X3R5cGVzKSkKKyByZXR1cm47CisK KyB0cmVlIHR5cGUgPSBidWlsdGluX3R5cGVzW2dyb3VwLm9wc19pbmZvcy50 eXBlc1t2ZWNfdHlwZV9pZHhdLmluZGV4XS52ZWN0b3I7CisgaWYgKHN0cnN0 ciAoZ3JvdXAuYmFzZV9uYW1lLCAibCIpCisgJiYgc3Ryc3RyIChncm91cC5i YXNlX25hbWUsICJ1IikKKyAmJiAhVFlQRV9VTlNJR05FRCAoVFJFRV9UWVBF ICh0eXBlKSkpCisgcmV0dXJuOworCisgaWYgKHN0cnN0ciAoZ3JvdXAuYmFz ZV9uYW1lLCAibCIpCisgJiYgIXN0cnN0ciAoZ3JvdXAuYmFzZV9uYW1lLCAi dSIpCisgJiYgVFlQRV9VTlNJR05FRCAoVFJFRV9UWVBFICh0eXBlKSkpCisg cmV0dXJuOworCisgbWFjaGluZV9tb2RlIG1vZGUgPSBUWVBFX01PREUgKHR5 cGUpOworIGludCBzZXcgPSBHRVRfTU9ERV9CSVRTSVpFIChHRVRfTU9ERV9J Tk5FUiAobW9kZSkpOworIGlmIChzdHJzdHIgKGdyb3VwLmJhc2VfbmFtZSwg ImgiKSAmJiBzZXcgPT0gOCkKKyByZXR1cm47CisKKyBpZiAoc3Ryc3RyIChn cm91cC5iYXNlX25hbWUsICJ3IikgJiYgKHNldyA9PSA4IHx8IHNldyA9PTE2 KSkKKyByZXR1cm47CisKKyBiLmFkZF9vdmVybG9hZGVkX2Z1bmN0aW9uIChm dW5jdGlvbl9pbnN0YW5jZSwgKmdyb3VwLnNoYXBlKTsKKyBiLmFkZF91bmlx dWVfZnVuY3Rpb24gKGZ1bmN0aW9uX2luc3RhbmNlLCAoKmdyb3VwLnNoYXBl KSwgcmV0dXJuX3R5cGUsCisgYXJndW1lbnRfdHlwZXMpOworfQorCisvKiB0 aF9sb2Fkc3RvcmVfd2lkdGhfZGVmIGNsYXNzLiAqLworc3RydWN0IHRoX2xv YWRzdG9yZV93aWR0aF9kZWYgOiBwdWJsaWMgYnVpbGRfYmFzZQoreworIHZv aWQgYnVpbGQgKGZ1bmN0aW9uX2J1aWxkZXIgJmIsCisgY29uc3QgZnVuY3Rp b25fZ3JvdXBfaW5mbyAmZ3JvdXApIGNvbnN0IG92ZXJyaWRlCisgeworIGZv ciAodW5zaWduZWQgaW50IHByZWRfaWR4ID0gMDsgZ3JvdXAucHJlZHNbcHJl ZF9pZHhdICE9IE5VTV9QUkVEX1RZUEVTOworICsrcHJlZF9pZHgpCisgewor IGZvciAodW5zaWduZWQgaW50IHZlY190eXBlX2lkeCA9IDA7CisgZ3JvdXAu b3BzX2luZm9zLnR5cGVzW3ZlY190eXBlX2lkeF0uaW5kZXggIT0gTlVNX1ZF Q1RPUl9UWVBFUzsKKyArK3ZlY190eXBlX2lkeCkKKyB7CisgYnVpbGRfdGhf bG9hZHN0b3JlIChiLCBncm91cCwgcHJlZF9pZHgsIHZlY190eXBlX2lkeCk7 CisgfQorIH0KKyB9CisKKyBjaGFyICpnZXRfbmFtZSAoZnVuY3Rpb25fYnVp bGRlciAmYiwgY29uc3QgZnVuY3Rpb25faW5zdGFuY2UgJmluc3RhbmNlLAor IGJvb2wgb3ZlcmxvYWRlZF9wKSBjb25zdCBvdmVycmlkZQorIHsKKyAvKiBS ZXR1cm4gbnVsbHB0ciBpZiBpdCBjYW4gbm90IGJlIG92ZXJsb2FkZWQuICov CisgaWYgKG92ZXJsb2FkZWRfcCAmJiAhaW5zdGFuY2UuYmFzZS0+Y2FuX2Jl X292ZXJsb2FkZWRfcCAoaW5zdGFuY2UucHJlZCkpCisgcmV0dXJuIG51bGxw dHI7CisKKyBiLmFwcGVuZF9uYW1lICgiX19yaXNjdl90aF8iKTsKKyBiLmFw cGVuZF9uYW1lIChpbnN0YW5jZS5iYXNlX25hbWUpOworCisgLyogdm9wX3Yg LS0+IHZvcF92Xzx0eXBlPi4gKi8KKyBpZiAoIW92ZXJsb2FkZWRfcCkKKyB7 CisgLyogdm9wIC0tPiB2b3Bfdi4gKi8KKyBiLmFwcGVuZF9uYW1lIChvcGVy YW5kX3N1ZmZpeGVzW2luc3RhbmNlLm9wX2luZm8tPm9wXSk7CisgLyogdm9w X3YgLS0+IHZvcF92Xzx0eXBlPi4gKi8KKyBiLmFwcGVuZF9uYW1lICh0eXBl X3N1ZmZpeGVzW2luc3RhbmNlLnR5cGUuaW5kZXhdLnZlY3Rvcik7CisgfQor CisgLyogQWNjb3JkaW5nIHRvIHJ2di1pbnRyaW5zaWMtZG9jLCBpdCBkb2Vz IG5vdCBhZGQgIl9tIiBzdWZmaXgKKyBmb3Igdm9wX20gQysrIG92ZXJsb2Fk ZWQgQVBJLiAqLworIGlmIChvdmVybG9hZGVkX3AgJiYgaW5zdGFuY2UucHJl ZCA9PSBQUkVEX1RZUEVfbSkKKyByZXR1cm4gYi5maW5pc2hfbmFtZSAoKTsK KyBiLmFwcGVuZF9uYW1lIChwcmVkaWNhdGlvbl9zdWZmaXhlc1tpbnN0YW5j ZS5wcmVkXSk7CisgcmV0dXJuIGIuZmluaXNoX25hbWUgKCk7CisgfQorfTsK KworCisvKiB0aF9pbmRleGVkX2xvYWRzdG9yZV93aWR0aF9kZWYgY2xhc3Mu ICovCitzdHJ1Y3QgdGhfaW5kZXhlZF9sb2Fkc3RvcmVfd2lkdGhfZGVmIDog cHVibGljIGZ1bmN0aW9uX3NoYXBlCit7Cisgdm9pZCBidWlsZCAoZnVuY3Rp b25fYnVpbGRlciAmYiwKKyBjb25zdCBmdW5jdGlvbl9ncm91cF9pbmZvICZn cm91cCkgY29uc3Qgb3ZlcnJpZGUKKyB7CisgZm9yICh1bnNpZ25lZCBpbnQg cHJlZF9pZHggPSAwOyBncm91cC5wcmVkc1twcmVkX2lkeF0gIT0gTlVNX1BS RURfVFlQRVM7CisgKytwcmVkX2lkeCkKKyB7CisgZm9yICh1bnNpZ25lZCBp bnQgdmVjX3R5cGVfaWR4ID0gMDsKKyBncm91cC5vcHNfaW5mb3MudHlwZXNb dmVjX3R5cGVfaWR4XS5pbmRleCAhPSBOVU1fVkVDVE9SX1RZUEVTOworICsr dmVjX3R5cGVfaWR4KQorIHsKKyB0cmVlIGluZGV4X3R5cGUgPSBncm91cC5v cHNfaW5mb3MuYXJnc1sxXS5nZXRfdHJlZV90eXBlICgKKyBncm91cC5vcHNf aW5mb3MudHlwZXNbdmVjX3R5cGVfaWR4XS5pbmRleCk7CisgaWYgKCFpbmRl eF90eXBlKQorIGNvbnRpbnVlOworIGJ1aWxkX3RoX2xvYWRzdG9yZSAoYiwg Z3JvdXAsIHByZWRfaWR4LCB2ZWNfdHlwZV9pZHgpOworIH0KKyB9CisgfQor CisgY2hhciAqZ2V0X25hbWUgKGZ1bmN0aW9uX2J1aWxkZXIgJmIsIGNvbnN0 IGZ1bmN0aW9uX2luc3RhbmNlICZpbnN0YW5jZSwKKyBib29sIG92ZXJsb2Fk ZWRfcCkgY29uc3Qgb3ZlcnJpZGUKKyB7CisKKyAvKiBSZXR1cm4gbnVsbHB0 ciBpZiBpdCBjYW4gbm90IGJlIG92ZXJsb2FkZWQuICovCisgaWYgKG92ZXJs b2FkZWRfcCAmJiAhaW5zdGFuY2UuYmFzZS0+Y2FuX2JlX292ZXJsb2FkZWRf cCAoaW5zdGFuY2UucHJlZCkpCisgcmV0dXJuIG51bGxwdHI7CisKKyBiLmFw cGVuZF9uYW1lICgiX19yaXNjdl90aF8iKTsKKyBiLmFwcGVuZF9uYW1lIChp bnN0YW5jZS5iYXNlX25hbWUpOworIC8qIHZvcF92IC0tPiB2b3Bfdl88dHlw ZT4uICovCisgaWYgKCFvdmVybG9hZGVkX3ApCisgeworIC8qIHZvcCAtLT4g dm9wX3YuICovCisgYi5hcHBlbmRfbmFtZSAob3BlcmFuZF9zdWZmaXhlc1tp bnN0YW5jZS5vcF9pbmZvLT5vcF0pOworIC8qIHZvcF92IC0tPiB2b3Bfdl88 dHlwZT4uICovCisgYi5hcHBlbmRfbmFtZSAodHlwZV9zdWZmaXhlc1tpbnN0 YW5jZS50eXBlLmluZGV4XS52ZWN0b3IpOworIH0KKworIC8qIEFjY29yZGlu ZyB0byBydnYtaW50cmluc2ljLWRvYywgaXQgZG9lcyBub3QgYWRkICJfbSIg c3VmZml4CisgZm9yIHZvcF9tIEMrKyBvdmVybG9hZGVkIEFQSS4gKi8KKyBp ZiAob3ZlcmxvYWRlZF9wICYmIGluc3RhbmNlLnByZWQgPT0gUFJFRF9UWVBF X20pCisgcmV0dXJuIGIuZmluaXNoX25hbWUgKCk7CisgYi5hcHBlbmRfbmFt ZSAocHJlZGljYXRpb25fc3VmZml4ZXNbaW5zdGFuY2UucHJlZF0pOworIHJl dHVybiBiLmZpbmlzaF9uYW1lICgpOworIH0KK307CisKIC8qIGFsdV9kZWYg Y2xhc3MuICovCiBzdHJ1Y3QgYWx1X2RlZiA6IHB1YmxpYyBidWlsZF9iYXNl CiB7CkBAIC02MzIsNiArNzcyLDIzIEBAIHN0cnVjdCByZWR1Y19hbHVfZGVm IDogcHVibGljIGJ1aWxkX2Jhc2UKIH0KIH07CisvKiB0aF9leHRyYWN0X2Rl ZiBjbGFzcy4gKi8KK3N0cnVjdCB0aF9leHRyYWN0X2RlZiA6IHB1YmxpYyBi dWlsZF9iYXNlCit7CisgY2hhciAqZ2V0X25hbWUgKGZ1bmN0aW9uX2J1aWxk ZXIgJmIsIGNvbnN0IGZ1bmN0aW9uX2luc3RhbmNlICZpbnN0YW5jZSwKKyBi b29sIG92ZXJsb2FkZWRfcCkgY29uc3Qgb3ZlcnJpZGUKKyB7CisgYi5hcHBl bmRfbmFtZSAoIl9fcmlzY3ZfdGhfIik7CisgYi5hcHBlbmRfbmFtZSAoaW5z dGFuY2UuYmFzZV9uYW1lKTsKKworIGlmIChvdmVybG9hZGVkX3ApCisgcmV0 dXJuIGIuZmluaXNoX25hbWUgKCk7CisgYi5hcHBlbmRfbmFtZSAodHlwZV9z dWZmaXhlc1tpbnN0YW5jZS50eXBlLmluZGV4XS52ZWN0b3IpOworIGIuYXBw ZW5kX25hbWUgKHR5cGVfc3VmZml4ZXNbaW5zdGFuY2UudHlwZS5pbmRleF0u c2NhbGFyKTsKKyByZXR1cm4gYi5maW5pc2hfbmFtZSAoKTsKKyB9Cit9Owor CiAvKiBzY2FsYXJfbW92ZV9kZWYgY2xhc3MuICovCiBzdHJ1Y3Qgc2NhbGFy X21vdmVfZGVmIDogcHVibGljIGJ1aWxkX2Jhc2UKIHsKQEAgLTEwOTQsNiAr MTI1MSw4IEBAIFNIQVBFKHZzZXR2bCwgdnNldHZsKQogU0hBUEUodnNldHZs LCB2c2V0dmxtYXgpCiBTSEFQRShsb2Fkc3RvcmUsIGxvYWRzdG9yZSkKIFNI QVBFKGluZGV4ZWRfbG9hZHN0b3JlLCBpbmRleGVkX2xvYWRzdG9yZSkKK1NI QVBFKHRoX2xvYWRzdG9yZV93aWR0aCwgdGhfbG9hZHN0b3JlX3dpZHRoKQor U0hBUEUodGhfaW5kZXhlZF9sb2Fkc3RvcmVfd2lkdGgsIHRoX2luZGV4ZWRf bG9hZHN0b3JlX3dpZHRoKQogU0hBUEUoYWx1LCBhbHUpCiBTSEFQRShhbHVf ZnJtLCBhbHVfZnJtKQogU0hBUEUod2lkZW5fYWx1LCB3aWRlbl9hbHUpCkBA IC0xMTA2LDYgKzEyNjUsNyBAQCBTSEFQRShtb3ZlLCBtb3ZlKQogU0hBUEUo bWFza19hbHUsIG1hc2tfYWx1KQogU0hBUEUocmVkdWNfYWx1LCByZWR1Y19h bHUpCiBTSEFQRShyZWR1Y19hbHVfZnJtLCByZWR1Y19hbHVfZnJtKQorU0hB UEUodGhfZXh0cmFjdCwgdGhfZXh0cmFjdCkKIFNIQVBFKHNjYWxhcl9tb3Zl LCBzY2FsYXJfbW92ZSkKIFNIQVBFKHZ1bmRlZmluZWQsIHZ1bmRlZmluZWQp CiBTSEFQRShtaXNjLCBtaXNjKQpkaWZmIC0tZ2l0IGEvZ2NjL2NvbmZpZy9y aXNjdi9yaXNjdi12ZWN0b3ItYnVpbHRpbnMtc2hhcGVzLmggYi9nY2MvY29u ZmlnL3Jpc2N2L3Jpc2N2LXZlY3Rvci1idWlsdGlucy1zaGFwZXMuaAppbmRl eCBhYzJhMjhjZTAxNy4uYTc2MjRkMGZhYmQgMTAwNjQ0Ci0tLSBhL2djYy9j b25maWcvcmlzY3YvcmlzY3YtdmVjdG9yLWJ1aWx0aW5zLXNoYXBlcy5oCisr KyBiL2djYy9jb25maWcvcmlzY3YvcmlzY3YtdmVjdG9yLWJ1aWx0aW5zLXNo YXBlcy5oCkBAIC0yOCw2ICsyOCw4IEBAIGV4dGVybiBjb25zdCBmdW5jdGlv bl9zaGFwZSAqY29uc3QgdnNldHZsOwogZXh0ZXJuIGNvbnN0IGZ1bmN0aW9u X3NoYXBlICpjb25zdCB2c2V0dmxtYXg7CiBleHRlcm4gY29uc3QgZnVuY3Rp b25fc2hhcGUgKmNvbnN0IGxvYWRzdG9yZTsKIGV4dGVybiBjb25zdCBmdW5j dGlvbl9zaGFwZSAqY29uc3QgaW5kZXhlZF9sb2Fkc3RvcmU7CitleHRlcm4g Y29uc3QgZnVuY3Rpb25fc2hhcGUgKmNvbnN0IHRoX2xvYWRzdG9yZV93aWR0 aDsKK2V4dGVybiBjb25zdCBmdW5jdGlvbl9zaGFwZSAqY29uc3QgdGhfaW5k ZXhlZF9sb2Fkc3RvcmVfd2lkdGg7CiBleHRlcm4gY29uc3QgZnVuY3Rpb25f c2hhcGUgKmNvbnN0IGFsdTsKIGV4dGVybiBjb25zdCBmdW5jdGlvbl9zaGFw ZSAqY29uc3QgYWx1X2ZybTsKIGV4dGVybiBjb25zdCBmdW5jdGlvbl9zaGFw ZSAqY29uc3Qgd2lkZW5fYWx1OwpAQCAtNDEsNiArNDMsNyBAQCBleHRlcm4g Y29uc3QgZnVuY3Rpb25fc2hhcGUgKmNvbnN0IG1hc2tfYWx1OwogZXh0ZXJu IGNvbnN0IGZ1bmN0aW9uX3NoYXBlICpjb25zdCByZWR1Y19hbHU7CiBleHRl cm4gY29uc3QgZnVuY3Rpb25fc2hhcGUgKmNvbnN0IHJlZHVjX2FsdV9mcm07 CiBleHRlcm4gY29uc3QgZnVuY3Rpb25fc2hhcGUgKmNvbnN0IHNjYWxhcl9t b3ZlOworZXh0ZXJuIGNvbnN0IGZ1bmN0aW9uX3NoYXBlICpjb25zdCB0aF9l eHRyYWN0OwogZXh0ZXJuIGNvbnN0IGZ1bmN0aW9uX3NoYXBlICpjb25zdCB2 dW5kZWZpbmVkOwogZXh0ZXJuIGNvbnN0IGZ1bmN0aW9uX3NoYXBlICpjb25z dCBtaXNjOwogZXh0ZXJuIGNvbnN0IGZ1bmN0aW9uX3NoYXBlICpjb25zdCB2 c2V0OwpkaWZmIC0tZ2l0IGEvZ2NjL2NvbmZpZy9yaXNjdi9yaXNjdi12ZWN0 b3ItYnVpbHRpbnMuY2MgYi9nY2MvY29uZmlnL3Jpc2N2L3Jpc2N2LXZlY3Rv ci1idWlsdGlucy5jYwppbmRleCAyNWUwYjZlNTZkZS4uNDRiOWZlYzE4OTgg MTAwNjQ0Ci0tLSBhL2djYy9jb25maWcvcmlzY3YvcmlzY3YtdmVjdG9yLWJ1 aWx0aW5zLmNjCisrKyBiL2djYy9jb25maWcvcmlzY3YvcmlzY3YtdmVjdG9y LWJ1aWx0aW5zLmNjCkBAIC05MzQsNiArOTM0LDMyIEBAIHN0YXRpYyBDT05T VEVYUFIgY29uc3QgcnZ2X2FyZ190eXBlX2luZm8gZXh0X3ZjcmVhdGVfYXJn c1tdCiA9IHtydnZfYXJnX3R5cGVfaW5mbyAoUlZWX0JBU0VfdmVjdG9yKSwK IHJ2dl9hcmdfdHlwZV9pbmZvX2VuZH07CisvKiBBIGxpc3Qgb2YgYXJncyBm b3IgdmVjdG9yX3R5cGUgZnVuYyAoY29uc3Qgc2NhbGFyX3R5cGUgKiwgc2l6 ZV90KQorICogZnVuY3Rpb24uICovCitzdGF0aWMgQ09OU1RFWFBSIGNvbnN0 IHJ2dl9hcmdfdHlwZV9pbmZvIHNjYWxhcl9jb25zdF9wdHJfc2l6ZV9hcmdz W10KKyA9IHtydnZfYXJnX3R5cGVfaW5mbyAoUlZWX0JBU0Vfc2NhbGFyX2Nv bnN0X3B0ciksCisgcnZ2X2FyZ190eXBlX2luZm8gKFJWVl9CQVNFX3NpemUp LCBydnZfYXJnX3R5cGVfaW5mb19lbmR9OworCisvKiBBIGxpc3Qgb2YgYXJn cyBmb3IgdmVjdG9yX3R5cGUgZnVuYyAoY29uc3Qgc2NhbGFyX3R5cGUgKiwg ZWV3OF9pbmRleF90eXBlKQorICogZnVuY3Rpb24uICovCitzdGF0aWMgQ09O U1RFWFBSIGNvbnN0IHJ2dl9hcmdfdHlwZV9pbmZvIHNjYWxhcl9jb25zdF9w dHJfaW5kZXhfYXJnc1tdCisgPSB7cnZ2X2FyZ190eXBlX2luZm8gKFJWVl9C QVNFX3NjYWxhcl9jb25zdF9wdHIpLAorIHJ2dl9hcmdfdHlwZV9pbmZvIChS VlZfQkFTRV91bnNpZ25lZF92ZWN0b3IpLCBydnZfYXJnX3R5cGVfaW5mb19l bmR9OworCisvKiBBIGxpc3Qgb2YgYXJncyBmb3Igdm9pZCBmdW5jIChzY2Fs YXJfdHlwZSAqLCBlZXc4X2luZGV4X3R5cGUsIHZlY3Rvcl90eXBlKQorICog ZnVuY3Rpb24uICovCitzdGF0aWMgQ09OU1RFWFBSIGNvbnN0IHJ2dl9hcmdf dHlwZV9pbmZvIHNjYWxhcl9wdHJfaW5kZXhfYXJnc1tdCisgPSB7cnZ2X2Fy Z190eXBlX2luZm8gKFJWVl9CQVNFX3NjYWxhcl9wdHIpLAorIHJ2dl9hcmdf dHlwZV9pbmZvIChSVlZfQkFTRV91bnNpZ25lZF92ZWN0b3IpLAorIHJ2dl9h cmdfdHlwZV9pbmZvIChSVlZfQkFTRV92ZWN0b3IpLCBydnZfYXJnX3R5cGVf aW5mb19lbmR9OworCisvKiBBIGxpc3Qgb2YgYXJncyBmb3Igdm9pZCBmdW5j IChzY2FsYXJfdHlwZSAqLCBzaXplX3QsIHZlY3Rvcl90eXBlKQorICogZnVu Y3Rpb24uICovCitzdGF0aWMgQ09OU1RFWFBSIGNvbnN0IHJ2dl9hcmdfdHlw ZV9pbmZvIHNjYWxhcl9wdHJfc2l6ZV9hcmdzW10KKyA9IHtydnZfYXJnX3R5 cGVfaW5mbyAoUlZWX0JBU0Vfc2NhbGFyX3B0ciksCisgcnZ2X2FyZ190eXBl X2luZm8gKFJWVl9CQVNFX3NpemUpLCBydnZfYXJnX3R5cGVfaW5mbyAoUlZW X0JBU0VfdmVjdG9yKSwKKyBydnZfYXJnX3R5cGVfaW5mb19lbmR9OworCiAv KiBBIGxpc3Qgb2Ygbm9uZSBwcmVkcyB0aGF0IHdpbGwgYmUgcmVnaXN0ZXJl ZCBmb3IgaW50cmluc2ljIGZ1bmN0aW9ucy4gKi8KIHN0YXRpYyBDT05TVEVY UFIgY29uc3QgcHJlZGljYXRpb25fdHlwZV9pbmRleCBub25lX3ByZWRzW10K ID0ge1BSRURfVFlQRV9ub25lLCBOVU1fUFJFRF9UWVBFU307CkBAIC0xNDU1 LDYgKzE0ODEsMTQgQEAgc3RhdGljIENPTlNURVhQUiBjb25zdCBydnZfb3Bf aW5mbyBpdV9zaGlmdF92dnZfb3BzCiBydnZfYXJnX3R5cGVfaW5mbyAoUlZW X0JBU0VfdmVjdG9yKSwgLyogUmV0dXJuIHR5cGUgKi8KIHNoaWZ0X3Z2X2Fy Z3MgLyogQXJncyAqL307CisvKiBBIHN0YXRpYyBvcGVyYW5kIGluZm9ybWF0 aW9uIGZvciBzY2FsYXJfdHlwZSBmdW5jICh2ZWN0b3JfdHlwZSwgc2l6ZV90 KQorICogZnVuY3Rpb24gcmVnaXN0cmF0aW9uLiAqLworc3RhdGljIENPTlNU RVhQUiBjb25zdCBydnZfb3BfaW5mbyBpdV94X3NfdV9vcHMKKyA9IHtpdV9v cHMsIC8qIFR5cGVzICovCisgT1BfVFlQRV92eCwgLyogU3VmZml4ICovCisg cnZ2X2FyZ190eXBlX2luZm8gKFJWVl9CQVNFX3NjYWxhciksIC8qIFJldHVy biB0eXBlICovCisgdl9zaXplX2FyZ3MgLyogQXJncyAqL307CisKIC8qIEEg c3RhdGljIG9wZXJhbmQgaW5mb3JtYXRpb24gZm9yIHZlY3Rvcl90eXBlIGZ1 bmMgKHZlY3Rvcl90eXBlLCBzaXplX3QpCiAqIGZ1bmN0aW9uIHJlZ2lzdHJh dGlvbi4gKi8KIHN0YXRpYyBDT05TVEVYUFIgY29uc3QgcnZ2X29wX2luZm8g aXVfc2hpZnRfdnZ4X29wcwpAQCAtMjYzOCw2ICsyNjcyLDM4IEBAIHN0YXRp YyBDT05TVEVYUFIgY29uc3QgcnZ2X29wX2luZm8gYWxsX3ZfdmNyZWF0ZV9s bXVsNF94Ml9vcHMKIHJ2dl9hcmdfdHlwZV9pbmZvIChSVlZfQkFTRV92bG11 bF9leHRfeDIpLCAvKiBSZXR1cm4gdHlwZSAqLwogZXh0X3ZjcmVhdGVfYXJn cyAvKiBBcmdzICovfTsKKy8qIEEgc3RhdGljIG9wZXJhbmQgaW5mb3JtYXRp b24gZm9yIHZlY3Rvcl90eXBlIGZ1bmMgKGNvbnN0IHNjYWxhcl90eXBlICos CisgKiBzaXplX3QpIGZ1bmN0aW9uIHJlZ2lzdHJhdGlvbi4gKi8KK3N0YXRp YyBDT05TVEVYUFIgY29uc3QgcnZ2X29wX2luZm8gYWxsX3Zfc2NhbGFyX2Nv bnN0X3B0cl9zaXplX29wcworID0ge2FsbF9vcHMsIC8qIFR5cGVzICovCisg T1BfVFlQRV92LCAvKiBTdWZmaXggKi8KKyBydnZfYXJnX3R5cGVfaW5mbyAo UlZWX0JBU0VfdmVjdG9yKSwgLyogUmV0dXJuIHR5cGUgKi8KKyBzY2FsYXJf Y29uc3RfcHRyX3NpemVfYXJncyAvKiBBcmdzICovfTsKKworLyogQSBzdGF0 aWMgb3BlcmFuZCBpbmZvcm1hdGlvbiBmb3Igdm9pZCBmdW5jIChzY2FsYXJf dHlwZSAqLCBzaXplX3QsCisgKiB2ZWN0b3JfdHlwZSkgZnVuY3Rpb24gcmVn aXN0cmF0aW9uLiAqLworc3RhdGljIENPTlNURVhQUiBjb25zdCBydnZfb3Bf aW5mbyBhbGxfdl9zY2FsYXJfcHRyX3NpemVfb3BzCisgPSB7YWxsX29wcywg LyogVHlwZXMgKi8KKyBPUF9UWVBFX3YsIC8qIFN1ZmZpeCAqLworIHJ2dl9h cmdfdHlwZV9pbmZvIChSVlZfQkFTRV92b2lkKSwgLyogUmV0dXJuIHR5cGUg Ki8KKyBzY2FsYXJfcHRyX3NpemVfYXJncyAvKiBBcmdzICovfTsKKworLyog QSBzdGF0aWMgb3BlcmFuZCBpbmZvcm1hdGlvbiBmb3IgdmVjdG9yX3R5cGUg ZnVuYyAoY29uc3Qgc2NhbGFyX3R5cGUgKiwKKyAqIGluZGV4X3R5cGUpIGZ1 bmN0aW9uIHJlZ2lzdHJhdGlvbi4gKi8KK3N0YXRpYyBDT05TVEVYUFIgY29u c3QgcnZ2X29wX2luZm8gYWxsX3Zfc2NhbGFyX2NvbnN0X3B0cl9pbmRleF9v cHMKKyA9IHthbGxfb3BzLCAvKiBUeXBlcyAqLworIE9QX1RZUEVfdiwgLyog U3VmZml4ICovCisgcnZ2X2FyZ190eXBlX2luZm8gKFJWVl9CQVNFX3ZlY3Rv ciksIC8qIFJldHVybiB0eXBlICovCisgc2NhbGFyX2NvbnN0X3B0cl9pbmRl eF9hcmdzIC8qIEFyZ3MgKi99OworCisvKiBBIHN0YXRpYyBvcGVyYW5kIGlu Zm9ybWF0aW9uIGZvciB2b2lkIGZ1bmMgKHNjYWxhcl90eXBlICosIGluZGV4 X3R5cGUsCisgKiB2ZWN0b3JfdHlwZSkgZnVuY3Rpb24gcmVnaXN0cmF0aW9u LiAqLworc3RhdGljIENPTlNURVhQUiBjb25zdCBydnZfb3BfaW5mbyBhbGxf dl9zY2FsYXJfcHRyX2luZGV4X29wcworID0ge2FsbF9vcHMsIC8qIFR5cGVz ICovCisgT1BfVFlQRV92LCAvKiBTdWZmaXggKi8KKyBydnZfYXJnX3R5cGVf aW5mbyAoUlZWX0JBU0Vfdm9pZCksIC8qIFJldHVybiB0eXBlICovCisgc2Nh bGFyX3B0cl9pbmRleF9hcmdzIC8qIEFyZ3MgKi99OworCiAvKiBBIHN0YXRp YyBvcGVyYW5kIGluZm9ybWF0aW9uIGZvciB2ZWN0b3JfdHlwZSBmdW5jICh2 ZWN0b3JfdHlwZSkuCiBTb21lIGlucyBqdXN0IHN1cHBvcnRzIFNFVz0zMiwg c3VjaCBhcyBjcnlwdG8gdmVjdG9sIFp2a2cgZXh0ZW5zaW9uLgogKiBmdW5j dGlvbiByZWdpc3RyYXRpb24uICovCkBAIC0yODE2LDYgKzI4ODIsMTAgQEAg c3RhdGljIGZ1bmN0aW9uX2dyb3VwX2luZm8gZnVuY3Rpb25fZ3JvdXBzW10g PSB7CiAjZGVmaW5lIERFRl9SVlZfRlVOQ1RJT04oTkFNRSwgU0hBUEUsIFBS RURTLCBPUFNfSU5GTykgXAogeyNOQU1FLCAmYmFzZXM6Ok5BTUUsICZzaGFw ZXM6OlNIQVBFLCBQUkVEUywgT1BTX0lORk8sIFJFUVVJUkVEX0VYVEVOU0lP TlN9LAogI2luY2x1ZGUgInJpc2N2LXZlY3Rvci1idWlsdGlucy1mdW5jdGlv bnMuZGVmIgorI3VuZGVmIERFRl9SVlZfRlVOQ1RJT04KKyNkZWZpbmUgREVG X1JWVl9GVU5DVElPTihOQU1FLCBTSEFQRSwgUFJFRFMsIE9QU19JTkZPKSBc CisgeyNOQU1FLCAmYmFzZXM6Ok5BTUUsICZzaGFwZXM6OlNIQVBFLCBQUkVE UywgT1BTX0lORk8sIFJFUVVJUkVEX0VYVEVOU0lPTlN9LAorI2luY2x1ZGUg InRoZWFkLXZlY3Rvci1idWlsdGlucy1mdW5jdGlvbnMuZGVmIgogfTsKIC8q IFRoZSBSVlYgdHlwZXMsIHdpdGggdGhlaXIgYnVpbHQtaW4KZGlmZiAtLWdp dCBhL2djYy9jb25maWcvcmlzY3YvcmlzY3YtdmVjdG9yLWJ1aWx0aW5zLmgg Yi9nY2MvY29uZmlnL3Jpc2N2L3Jpc2N2LXZlY3Rvci1idWlsdGlucy5oCmlu ZGV4IDU0Yzg4MjRmZjkyLi4yMmZlZDYwYjRjMyAxMDA2NDQKLS0tIGEvZ2Nj L2NvbmZpZy9yaXNjdi9yaXNjdi12ZWN0b3ItYnVpbHRpbnMuaAorKysgYi9n Y2MvY29uZmlnL3Jpc2N2L3Jpc2N2LXZlY3Rvci1idWlsdGlucy5oCkBAIC0x MjMsNiArMTIzLDcgQEAgZW51bSByZXF1aXJlZF9leHQKIFpWS05IQl9FWFQs IC8qIENyeXB0byB2ZWN0b3IgWnZrbmhiIHN1Yi1leHQgKi8KIFpWS1NFRF9F WFQsIC8qIENyeXB0byB2ZWN0b3IgWnZrc2VkIHN1Yi1leHQgKi8KIFpWS1NI X0VYVCwgLyogQ3J5cHRvIHZlY3RvciBadmtzaCBzdWItZXh0ICovCisgWFRI RUFEVkVDVE9SX0VYVCwgLyogWFRoZWFkVmVjdG9yIGV4dGVuc2lvbiAqLwog fTsKIC8qIEVudW1lcmF0ZXMgdGhlIFJWViBvcGVyYW5kIHR5cGVzLiAqLwpA QCAtMjUyLDYgKzI1Myw4IEBAIHN0cnVjdCBmdW5jdGlvbl9ncm91cF9pbmZv CiByZXR1cm4gVEFSR0VUX1pWS1NFRDsKIGNhc2UgWlZLU0hfRVhUOgogcmV0 dXJuIFRBUkdFVF9aVktTSDsKKyBjYXNlIFhUSEVBRFZFQ1RPUl9FWFQ6Cisg cmV0dXJuIFRBUkdFVF9YVEhFQURWRUNUT1I7CiBkZWZhdWx0OgogZ2NjX3Vu cmVhY2hhYmxlICgpOwogfQpkaWZmIC0tZ2l0IGEvZ2NjL2NvbmZpZy9yaXNj di90LXJpc2N2IGIvZ2NjL2NvbmZpZy9yaXNjdi90LXJpc2N2CmluZGV4IDMy ZGU2Yjg1MWMxLi4zODQ5NDMyMGQ4YiAxMDA2NDQKLS0tIGEvZ2NjL2NvbmZp Zy9yaXNjdi90LXJpc2N2CisrKyBiL2djYy9jb25maWcvcmlzY3YvdC1yaXNj dgpAQCAtMSw2ICsxLDcgQEAKIFJJU0NWX0JVSUxUSU5TX0ggPSAkKHNyY2Rp cikvY29uZmlnL3Jpc2N2L3Jpc2N2LXZlY3Rvci1idWlsdGlucy5oIFwKICQo c3JjZGlyKS9jb25maWcvcmlzY3YvcmlzY3YtdmVjdG9yLWJ1aWx0aW5zLmRl ZiBcCiAkKHNyY2RpcikvY29uZmlnL3Jpc2N2L3Jpc2N2LXZlY3Rvci1idWls dGlucy1mdW5jdGlvbnMuZGVmIFwKKyAkKHNyY2RpcikvY29uZmlnL3Jpc2N2 L3RoZWFkLXZlY3Rvci1idWlsdGlucy1mdW5jdGlvbnMuZGVmIFwKIHJpc2N2 LXZlY3Rvci10eXBlLWluZGV4ZXIuZ2VuLmRlZgogcmlzY3YtYnVpbHRpbnMu bzogJChzcmNkaXIpL2NvbmZpZy9yaXNjdi9yaXNjdi1idWlsdGlucy5jYyAk KENPTkZJR19IKSBcCmRpZmYgLS1naXQgYS9nY2MvY29uZmlnL3Jpc2N2L3Ro ZWFkLXZlY3Rvci1idWlsdGlucy1mdW5jdGlvbnMuZGVmIGIvZ2NjL2NvbmZp Zy9yaXNjdi90aGVhZC12ZWN0b3ItYnVpbHRpbnMtZnVuY3Rpb25zLmRlZgpu ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uZmQzYmEy OWJhZTkKLS0tIC9kZXYvbnVsbAorKysgYi9nY2MvY29uZmlnL3Jpc2N2L3Ro ZWFkLXZlY3Rvci1idWlsdGlucy1mdW5jdGlvbnMuZGVmCkBAIC0wLDAgKzEs MzkgQEAKKyNpZm5kZWYgREVGX1JWVl9GVU5DVElPTgorI2RlZmluZSBERUZf UlZWX0ZVTkNUSU9OKE5BTUUsIFNIQVBFLCBQUkVEUywgT1BTX0lORk8pCisj ZW5kaWYKKworI2RlZmluZSBSRVFVSVJFRF9FWFRFTlNJT05TIFhUSEVBRFZF Q1RPUl9FWFQKK0RFRl9SVlZfRlVOQ1RJT04gKHZsYiwgdGhfbG9hZHN0b3Jl X3dpZHRoLCBmdWxsX3ByZWRzLCBhbGxfdl9zY2FsYXJfY29uc3RfcHRyX29w cykKK0RFRl9SVlZfRlVOQ1RJT04gKHZsaCwgdGhfbG9hZHN0b3JlX3dpZHRo LCBmdWxsX3ByZWRzLCBhbGxfdl9zY2FsYXJfY29uc3RfcHRyX29wcykKK0RF Rl9SVlZfRlVOQ1RJT04gKHZsdywgdGhfbG9hZHN0b3JlX3dpZHRoLCBmdWxs X3ByZWRzLCBhbGxfdl9zY2FsYXJfY29uc3RfcHRyX29wcykKK0RFRl9SVlZf RlVOQ1RJT04gKHZsYnUsIHRoX2xvYWRzdG9yZV93aWR0aCwgZnVsbF9wcmVk cywgYWxsX3Zfc2NhbGFyX2NvbnN0X3B0cl9vcHMpCitERUZfUlZWX0ZVTkNU SU9OICh2bGh1LCB0aF9sb2Fkc3RvcmVfd2lkdGgsIGZ1bGxfcHJlZHMsIGFs bF92X3NjYWxhcl9jb25zdF9wdHJfb3BzKQorREVGX1JWVl9GVU5DVElPTiAo dmx3dSwgdGhfbG9hZHN0b3JlX3dpZHRoLCBmdWxsX3ByZWRzLCBhbGxfdl9z Y2FsYXJfY29uc3RfcHRyX29wcykKK0RFRl9SVlZfRlVOQ1RJT04gKHZzYiwg dGhfbG9hZHN0b3JlX3dpZHRoLCBub25lX21fcHJlZHMsIGFsbF92X3NjYWxh cl9wdHJfb3BzKQorREVGX1JWVl9GVU5DVElPTiAodnNoLCB0aF9sb2Fkc3Rv cmVfd2lkdGgsIG5vbmVfbV9wcmVkcywgYWxsX3Zfc2NhbGFyX3B0cl9vcHMp CitERUZfUlZWX0ZVTkNUSU9OICh2c3csIHRoX2xvYWRzdG9yZV93aWR0aCwg bm9uZV9tX3ByZWRzLCBhbGxfdl9zY2FsYXJfcHRyX29wcykKK0RFRl9SVlZf RlVOQ1RJT04gKHZsc2IsIHRoX2xvYWRzdG9yZV93aWR0aCwgZnVsbF9wcmVk cywgYWxsX3Zfc2NhbGFyX2NvbnN0X3B0cl9zaXplX29wcykKK0RFRl9SVlZf RlVOQ1RJT04gKHZsc2gsIHRoX2xvYWRzdG9yZV93aWR0aCwgZnVsbF9wcmVk cywgYWxsX3Zfc2NhbGFyX2NvbnN0X3B0cl9zaXplX29wcykKK0RFRl9SVlZf RlVOQ1RJT04gKHZsc3csIHRoX2xvYWRzdG9yZV93aWR0aCwgZnVsbF9wcmVk cywgYWxsX3Zfc2NhbGFyX2NvbnN0X3B0cl9zaXplX29wcykKK0RFRl9SVlZf RlVOQ1RJT04gKHZsc2J1LCB0aF9sb2Fkc3RvcmVfd2lkdGgsIGZ1bGxfcHJl ZHMsIGFsbF92X3NjYWxhcl9jb25zdF9wdHJfc2l6ZV9vcHMpCitERUZfUlZW X0ZVTkNUSU9OICh2bHNodSwgdGhfbG9hZHN0b3JlX3dpZHRoLCBmdWxsX3By ZWRzLCBhbGxfdl9zY2FsYXJfY29uc3RfcHRyX3NpemVfb3BzKQorREVGX1JW Vl9GVU5DVElPTiAodmxzd3UsIHRoX2xvYWRzdG9yZV93aWR0aCwgZnVsbF9w cmVkcywgYWxsX3Zfc2NhbGFyX2NvbnN0X3B0cl9zaXplX29wcykKK0RFRl9S VlZfRlVOQ1RJT04gKHZzc2IsIHRoX2xvYWRzdG9yZV93aWR0aCwgbm9uZV9t X3ByZWRzLCBhbGxfdl9zY2FsYXJfcHRyX3NpemVfb3BzKQorREVGX1JWVl9G VU5DVElPTiAodnNzaCwgdGhfbG9hZHN0b3JlX3dpZHRoLCBub25lX21fcHJl ZHMsIGFsbF92X3NjYWxhcl9wdHJfc2l6ZV9vcHMpCitERUZfUlZWX0ZVTkNU SU9OICh2c3N3LCB0aF9sb2Fkc3RvcmVfd2lkdGgsIG5vbmVfbV9wcmVkcywg YWxsX3Zfc2NhbGFyX3B0cl9zaXplX29wcykKK0RFRl9SVlZfRlVOQ1RJT04g KHZseGIsIHRoX2luZGV4ZWRfbG9hZHN0b3JlX3dpZHRoLCBmdWxsX3ByZWRz LCBhbGxfdl9zY2FsYXJfY29uc3RfcHRyX2luZGV4X29wcykKK0RFRl9SVlZf RlVOQ1RJT04gKHZseGgsIHRoX2luZGV4ZWRfbG9hZHN0b3JlX3dpZHRoLCBm dWxsX3ByZWRzLCBhbGxfdl9zY2FsYXJfY29uc3RfcHRyX2luZGV4X29wcykK K0RFRl9SVlZfRlVOQ1RJT04gKHZseHcsIHRoX2luZGV4ZWRfbG9hZHN0b3Jl X3dpZHRoLCBmdWxsX3ByZWRzLCBhbGxfdl9zY2FsYXJfY29uc3RfcHRyX2lu ZGV4X29wcykKK0RFRl9SVlZfRlVOQ1RJT04gKHZseGJ1LCB0aF9pbmRleGVk X2xvYWRzdG9yZV93aWR0aCwgZnVsbF9wcmVkcywgYWxsX3Zfc2NhbGFyX2Nv bnN0X3B0cl9pbmRleF9vcHMpCitERUZfUlZWX0ZVTkNUSU9OICh2bHhodSwg dGhfaW5kZXhlZF9sb2Fkc3RvcmVfd2lkdGgsIGZ1bGxfcHJlZHMsIGFsbF92 X3NjYWxhcl9jb25zdF9wdHJfaW5kZXhfb3BzKQorREVGX1JWVl9GVU5DVElP TiAodmx4d3UsIHRoX2luZGV4ZWRfbG9hZHN0b3JlX3dpZHRoLCBmdWxsX3By ZWRzLCBhbGxfdl9zY2FsYXJfY29uc3RfcHRyX2luZGV4X29wcykKK0RFRl9S VlZfRlVOQ1RJT04gKHZzeGIsIHRoX2luZGV4ZWRfbG9hZHN0b3JlX3dpZHRo LCBub25lX21fcHJlZHMsIGFsbF92X3NjYWxhcl9wdHJfaW5kZXhfb3BzKQor REVGX1JWVl9GVU5DVElPTiAodnN4aCwgdGhfaW5kZXhlZF9sb2Fkc3RvcmVf d2lkdGgsIG5vbmVfbV9wcmVkcywgYWxsX3Zfc2NhbGFyX3B0cl9pbmRleF9v cHMpCitERUZfUlZWX0ZVTkNUSU9OICh2c3h3LCB0aF9pbmRleGVkX2xvYWRz dG9yZV93aWR0aCwgbm9uZV9tX3ByZWRzLCBhbGxfdl9zY2FsYXJfcHRyX2lu ZGV4X29wcykKK0RFRl9SVlZfRlVOQ1RJT04gKHZzdXhiLCB0aF9pbmRleGVk X2xvYWRzdG9yZV93aWR0aCwgbm9uZV9tX3ByZWRzLCBhbGxfdl9zY2FsYXJf cHRyX2luZGV4X29wcykKK0RFRl9SVlZfRlVOQ1RJT04gKHZzdXhoLCB0aF9p bmRleGVkX2xvYWRzdG9yZV93aWR0aCwgbm9uZV9tX3ByZWRzLCBhbGxfdl9z Y2FsYXJfcHRyX2luZGV4X29wcykKK0RFRl9SVlZfRlVOQ1RJT04gKHZzdXh3 LCB0aF9pbmRleGVkX2xvYWRzdG9yZV93aWR0aCwgbm9uZV9tX3ByZWRzLCBh bGxfdl9zY2FsYXJfcHRyX2luZGV4X29wcykKK0RFRl9SVlZfRlVOQ1RJT04g KHZleHRfeF92LCB0aF9leHRyYWN0LCBub25lX3ByZWRzLCBpdV94X3NfdV9v cHMpCisjdW5kZWYgUkVRVUlSRURfRVhURU5TSU9OUworCisjdW5kZWYgREVG X1JWVl9GVU5DVElPTgpkaWZmIC0tZ2l0IGEvZ2NjL2NvbmZpZy9yaXNjdi90 aGVhZC12ZWN0b3IubWQgYi9nY2MvY29uZmlnL3Jpc2N2L3RoZWFkLXZlY3Rv ci5tZAppbmRleCA2OTZiODE1MjUyZC4uNWZlOWJhMDhjNGUgMTAwNjQ0Ci0t LSBhL2djYy9jb25maWcvcmlzY3YvdGhlYWQtdmVjdG9yLm1kCisrKyBiL2dj Yy9jb25maWcvcmlzY3YvdGhlYWQtdmVjdG9yLm1kCkBAIC0xLDcgKzEsOTUg QEAKIChkZWZpbmVfY19lbnVtICJ1bnNwZWMiIFsKKyBVTlNQRUNfVEhfVkxC CisgVU5TUEVDX1RIX1ZMQlUKKyBVTlNQRUNfVEhfVkxICisgVU5TUEVDX1RI X1ZMSFUKKyBVTlNQRUNfVEhfVkxXCisgVU5TUEVDX1RIX1ZMV1UKKworIFVO U1BFQ19USF9WTFNCCisgVU5TUEVDX1RIX1ZMU0JVCisgVU5TUEVDX1RIX1ZM U0gKKyBVTlNQRUNfVEhfVkxTSFUKKyBVTlNQRUNfVEhfVkxTVworIFVOU1BF Q19USF9WTFNXVQorCisgVU5TUEVDX1RIX1ZMWEIKKyBVTlNQRUNfVEhfVkxY QlUKKyBVTlNQRUNfVEhfVkxYSAorIFVOU1BFQ19USF9WTFhIVQorIFVOU1BF Q19USF9WTFhXCisgVU5TUEVDX1RIX1ZMWFdVCisKKyBVTlNQRUNfVEhfVlNV WEIKKyBVTlNQRUNfVEhfVlNVWEgKKyBVTlNQRUNfVEhfVlNVWFcKKwogVU5T UEVDX1RIX1ZXTERTVAogXSkKKyhkZWZpbmVfaW50X2l0ZXJhdG9yIFVOU1BF Q19USF9WTE1FTV9PUCBbCisgVU5TUEVDX1RIX1ZMQiBVTlNQRUNfVEhfVkxC VQorIFVOU1BFQ19USF9WTEggVU5TUEVDX1RIX1ZMSFUKKyBVTlNQRUNfVEhf VkxXIFVOU1BFQ19USF9WTFdVCitdKQorCisoZGVmaW5lX2ludF9pdGVyYXRv ciBVTlNQRUNfVEhfVkxTTUVNX09QIFsKKyBVTlNQRUNfVEhfVkxTQiBVTlNQ RUNfVEhfVkxTQlUKKyBVTlNQRUNfVEhfVkxTSCBVTlNQRUNfVEhfVkxTSFUK KyBVTlNQRUNfVEhfVkxTVyBVTlNQRUNfVEhfVkxTV1UKK10pCisKKyhkZWZp bmVfaW50X2l0ZXJhdG9yIFVOU1BFQ19USF9WTFhNRU1fT1AgWworIFVOU1BF Q19USF9WTFhCIFVOU1BFQ19USF9WTFhCVQorIFVOU1BFQ19USF9WTFhIIFVO U1BFQ19USF9WTFhIVQorIFVOU1BFQ19USF9WTFhXIFVOU1BFQ19USF9WTFhX VQorXSkKKworKGRlZmluZV9pbnRfYXR0ciB2bG1lbV9vcF9hdHRyIFsKKyAo VU5TUEVDX1RIX1ZMQiAiYiIpIChVTlNQRUNfVEhfVkxCVSAiYnUiKQorIChV TlNQRUNfVEhfVkxIICJoIikgKFVOU1BFQ19USF9WTEhVICJodSIpCisgKFVO U1BFQ19USF9WTFcgInciKSAoVU5TUEVDX1RIX1ZMV1UgInd1IikKKyAoVU5T UEVDX1RIX1ZMU0IgImIiKSAoVU5TUEVDX1RIX1ZMU0JVICJidSIpCisgKFVO U1BFQ19USF9WTFNIICJoIikgKFVOU1BFQ19USF9WTFNIVSAiaHUiKQorIChV TlNQRUNfVEhfVkxTVyAidyIpIChVTlNQRUNfVEhfVkxTV1UgInd1IikKKyAo VU5TUEVDX1RIX1ZMWEIgImIiKSAoVU5TUEVDX1RIX1ZMWEJVICJidSIpCisg KFVOU1BFQ19USF9WTFhIICJoIikgKFVOU1BFQ19USF9WTFhIVSAiaHUiKQor IChVTlNQRUNfVEhfVkxYVyAidyIpIChVTlNQRUNfVEhfVkxYV1UgInd1IikK KyAoVU5TUEVDX1RIX1ZTVVhCICJiIikKKyAoVU5TUEVDX1RIX1ZTVVhIICJo IikKKyAoVU5TUEVDX1RIX1ZTVVhXICJ3IikKK10pCisKKyhkZWZpbmVfaW50 X2F0dHIgdmxtZW1fb3JkZXJfYXR0ciBbCisgKFVOU1BFQ19USF9WTFhCICIi KQorIChVTlNQRUNfVEhfVkxYSCAiIikKKyAoVU5TUEVDX1RIX1ZMWFcgIiIp CisgKFVOU1BFQ19USF9WU1VYQiAidSIpCisgKFVOU1BFQ19USF9WU1VYSCAi dSIpCisgKFVOU1BFQ19USF9WU1VYVyAidSIpCitdKQorCisoZGVmaW5lX2lu dF9pdGVyYXRvciBVTlNQRUNfVEhfVlNNRU1fT1AgWworIFVOU1BFQ19USF9W TEIKKyBVTlNQRUNfVEhfVkxICisgVU5TUEVDX1RIX1ZMVworXSkKKworKGRl ZmluZV9pbnRfaXRlcmF0b3IgVU5TUEVDX1RIX1ZTU01FTV9PUCBbCisgVU5T UEVDX1RIX1ZMU0IKKyBVTlNQRUNfVEhfVkxTSAorIFVOU1BFQ19USF9WTFNX CitdKQorCisoZGVmaW5lX2ludF9pdGVyYXRvciBVTlNQRUNfVEhfVlNYTUVN X09QIFsKKyBVTlNQRUNfVEhfVkxYQgorIFVOU1BFQ19USF9WTFhICisgVU5T UEVDX1RIX1ZMWFcKKyBVTlNQRUNfVEhfVlNVWEIKKyBVTlNQRUNfVEhfVlNV WEgKKyBVTlNQRUNfVEhfVlNVWFcKK10pCisKIChkZWZpbmVfbW9kZV9pdGVy YXRvciBWX1ZMU19WVCBbViBWTFMgVlRdKQogKGRlZmluZV9tb2RlX2l0ZXJh dG9yIFZfVkJfVkxTX1ZUIFtWIFZCIFZMUyBWVF0pCkBAIC0xMDAsMyArMTg4 LDE2NSBAQAogfQogWyhzZXRfYXR0ciAidHlwZSIgInZsZG0sdnN0bSx2bWFs dSx2bWFsdSx2bWFsdSIpCiAoc2V0X2F0dHIgIm1vZGUiICI8TU9ERT4iKV0p CisKKyhkZWZpbmVfZXhwYW5kICJAcHJlZF9tb3Zfd2lkdGg8dmxtZW1fb3Bf YXR0cj48bW9kZT4iCisgWyhzZXQgKG1hdGNoX29wZXJhbmQ6Vl9WTFMgMCAi bm9uaW1tZWRpYXRlX29wZXJhbmQiKQorIChpZl90aGVuX2Vsc2U6Vl9WTFMK KyAodW5zcGVjOjxWTT4KKyBbKG1hdGNoX29wZXJhbmQ6PFZNPiAxICJ2ZWN0 b3JfbWFza19vcGVyYW5kIikKKyAobWF0Y2hfb3BlcmFuZCA0ICJ2ZWN0b3Jf bGVuZ3RoX29wZXJhbmQiKQorIChtYXRjaF9vcGVyYW5kIDUgImNvbnN0X2lu dF9vcGVyYW5kIikKKyAobWF0Y2hfb3BlcmFuZCA2ICJjb25zdF9pbnRfb3Bl cmFuZCIpCisgKG1hdGNoX29wZXJhbmQgNyAiY29uc3RfaW50X29wZXJhbmQi KQorIChyZWc6U0kgVkxfUkVHTlVNKQorIChyZWc6U0kgVlRZUEVfUkVHTlVN KV0gVU5TUEVDX1RIX1ZMTUVNX09QKQorIChtYXRjaF9vcGVyYW5kOlZfVkxT IDMgInZlY3Rvcl9tb3ZlX29wZXJhbmQiKQorIChtYXRjaF9vcGVyYW5kOlZf VkxTIDIgInZlY3Rvcl9tZXJnZV9vcGVyYW5kIikpKV0KKyAiVEFSR0VUX1hU SEVBRFZFQ1RPUiIKKyB7fSkKKworKGRlZmluZV9pbnNuX2FuZF9zcGxpdCAi KnByZWRfbW92X3dpZHRoPHZsbWVtX29wX2F0dHI+PG1vZGU+IgorIFsoc2V0 IChtYXRjaF9vcGVyYW5kOlZfVkxTIDAgIm5vbmltbWVkaWF0ZV9vcGVyYW5k IiAiPXZyLCB2ciwgdmQsIG0sIHZyLCB2ciIpCisgKGlmX3RoZW5fZWxzZTpW X1ZMUworICh1bnNwZWM6PFZNPgorIFsobWF0Y2hfb3BlcmFuZDo8Vk0+IDEg InZlY3Rvcl9tYXNrX29wZXJhbmQiICJ2bVdjMSwgV2MxLCB2bSwgdm1XYzEs IFdjMSwgV2MxIikKKyAobWF0Y2hfb3BlcmFuZCA0ICJ2ZWN0b3JfbGVuZ3Ro X29wZXJhbmQiICIgckssIHJLLCBySywgckssIHJLLCBySyIpCisgKG1hdGNo X29wZXJhbmQgNSAiY29uc3RfaW50X29wZXJhbmQiICIgaSwgaSwgaSwgaSwg aSwgaSIpCisgKG1hdGNoX29wZXJhbmQgNiAiY29uc3RfaW50X29wZXJhbmQi ICIgaSwgaSwgaSwgaSwgaSwgaSIpCisgKG1hdGNoX29wZXJhbmQgNyAiY29u c3RfaW50X29wZXJhbmQiICIgaSwgaSwgaSwgaSwgaSwgaSIpCisgKHJlZzpT SSBWTF9SRUdOVU0pCisgKHJlZzpTSSBWVFlQRV9SRUdOVU0pXSBVTlNQRUNf VEhfVkxNRU1fT1ApCisgKG1hdGNoX29wZXJhbmQ6Vl9WTFMgMyAicmVnX29y X21lbV9vcGVyYW5kIiAiIG0sIG0sIG0sIHZyLCB2ciwgdnIiKQorIChtYXRj aF9vcGVyYW5kOlZfVkxTIDIgInZlY3Rvcl9tZXJnZV9vcGVyYW5kIiAiIDAs IHZ1LCB2dSwgdnUsIHZ1LCAwIikpKV0KKyAiKFRBUkdFVF9YVEhFQURWRUNU T1IKKyAmJiAocmVnaXN0ZXJfb3BlcmFuZCAob3BlcmFuZHNbMF0sIDxNT0RF Pm1vZGUpCisgfHwgcmVnaXN0ZXJfb3BlcmFuZCAob3BlcmFuZHNbM10sIDxN T0RFPm1vZGUpKSkiCisgIkAKKyB2bDx2bG1lbV9vcF9hdHRyPi52XHQlMCwl MyVwMQorIHZsPHZsbWVtX29wX2F0dHI+LnZcdCUwLCUzCisgdmw8dmxtZW1f b3BfYXR0cj4udlx0JTAsJTMsJTEudAorIHZzPHZsbWVtX29wX2F0dHI+LnZc dCUzLCUwJXAxCisgdm12LnYudlx0JTAsJTMKKyB2bXYudi52XHQlMCwlMyIK KyAiJiYgcmlzY3ZfdmVjdG9yOjp3aG9sZV9yZWdfdG9fcmVnX21vdmVfcCAo b3BlcmFuZHMsIDxNT0RFPm1vZGUsIDcpIgorIFsoc2V0IChtYXRjaF9kdXAg MCkgKG1hdGNoX2R1cCAzKSldCisgIiIKKyBbKHNldF9hdHRyICJ0eXBlIiAi dmxkZSx2bGRlLHZsZGUsdnN0ZSx2aW1vdix2aW1vdiIpCisgKHNldF9hdHRy ICJtb2RlIiAiPE1PREU+IildKQorCisoZGVmaW5lX2luc24gIkBwcmVkX3N0 b3JlX3dpZHRoPHZsbWVtX29wX2F0dHI+PG1vZGU+IgorIFsoc2V0IChtYXRj aF9vcGVyYW5kOlZJIDAgIm1lbW9yeV9vcGVyYW5kIiAiK20iKQorIChpZl90 aGVuX2Vsc2U6VkkKKyAodW5zcGVjOjxWTT4KKyBbKG1hdGNoX29wZXJhbmQ6 PFZNPiAxICJ2ZWN0b3JfbWFza19vcGVyYW5kIiAidm1XYzEiKQorIChtYXRj aF9vcGVyYW5kIDMgInZlY3Rvcl9sZW5ndGhfb3BlcmFuZCIgIiBySyIpCisg KG1hdGNoX29wZXJhbmQgNCAiY29uc3RfaW50X29wZXJhbmQiICIgaSIpCisg KHJlZzpTSSBWTF9SRUdOVU0pCisgKHJlZzpTSSBWVFlQRV9SRUdOVU0pXSBV TlNQRUNfVEhfVlNNRU1fT1ApCisgKG1hdGNoX29wZXJhbmQ6VkkgMiAicmVn aXN0ZXJfb3BlcmFuZCIgIiB2ciIpCisgKG1hdGNoX2R1cCAwKSkpXQorICJU QVJHRVRfWFRIRUFEVkVDVE9SIgorICJ2czx2bG1lbV9vcF9hdHRyPi52XHQl MiwlMCVwMSIKKyBbKHNldF9hdHRyICJ0eXBlIiAidnN0ZSIpCisgKHNldF9h dHRyICJtb2RlIiAiPE1PREU+IikKKyAoc2V0IChhdHRyICJhdmxfdHlwZV9p ZHgiKSAoY29uc3RfaW50IDQpKQorIChzZXRfYXR0ciAidmxfb3BfaWR4IiAi MyIpXSkKKworKGRlZmluZV9pbnNuICJAcHJlZF9zdHJpZGVkX2xvYWRfd2lk dGg8dmxtZW1fb3BfYXR0cj48bW9kZT4iCisgWyhzZXQgKG1hdGNoX29wZXJh bmQ6VkkgMCAicmVnaXN0ZXJfb3BlcmFuZCIgIj12ciwgdnIsIHZkIikKKyAo aWZfdGhlbl9lbHNlOlZJCisgKHVuc3BlYzo8Vk0+CisgWyhtYXRjaF9vcGVy YW5kOjxWTT4gMSAidmVjdG9yX21hc2tfb3BlcmFuZCIgInZtV2MxLCBXYzEs IHZtIikKKyAobWF0Y2hfb3BlcmFuZCA1ICJ2ZWN0b3JfbGVuZ3RoX29wZXJh bmQiICIgckssIHJLLCBySyIpCisgKG1hdGNoX29wZXJhbmQgNiAiY29uc3Rf aW50X29wZXJhbmQiICIgaSwgaSwgaSIpCisgKG1hdGNoX29wZXJhbmQgNyAi Y29uc3RfaW50X29wZXJhbmQiICIgaSwgaSwgaSIpCisgKG1hdGNoX29wZXJh bmQgOCAiY29uc3RfaW50X29wZXJhbmQiICIgaSwgaSwgaSIpCisgKHJlZzpT SSBWTF9SRUdOVU0pCisgKHJlZzpTSSBWVFlQRV9SRUdOVU0pXSBVTlNQRUNf VEhfVkxTTUVNX09QKQorICh1bnNwZWM6VkkKKyBbKG1hdGNoX29wZXJhbmQ6 VkkgMyAibWVtb3J5X29wZXJhbmQiICIgbSwgbSwgbSIpCisgKG1hdGNoX29w ZXJhbmQgNCAicG1vZGVfcmVnX29yXzBfb3BlcmFuZCIgIiBySiwgckosIHJK IildIFVOU1BFQ19USF9WTFNNRU1fT1ApCisgKG1hdGNoX29wZXJhbmQ6Vkkg MiAidmVjdG9yX21lcmdlX29wZXJhbmQiICIgMCwgdnUsIHZ1IikpKV0KKyAi VEFSR0VUX1hUSEVBRFZFQ1RPUiIKKyAidmxzPHZsbWVtX29wX2F0dHI+LnZc dCUwLCUzLCV6NCVwMSIKKyBbKHNldF9hdHRyICJ0eXBlIiAidmxkcyIpCisg KHNldF9hdHRyICJtb2RlIiAiPE1PREU+IildKQorCisoZGVmaW5lX2luc24g IkBwcmVkX3N0cmlkZWRfc3RvcmVfd2lkdGg8dmxtZW1fb3BfYXR0cj48bW9k ZT4iCisgWyhzZXQgKG1hdGNoX29wZXJhbmQ6VkkgMCAibWVtb3J5X29wZXJh bmQiICIrbSIpCisgKGlmX3RoZW5fZWxzZTpWSQorICh1bnNwZWM6PFZNPgor IFsobWF0Y2hfb3BlcmFuZDo8Vk0+IDEgInZlY3Rvcl9tYXNrX29wZXJhbmQi ICJ2bVdjMSIpCisgKG1hdGNoX29wZXJhbmQgNCAidmVjdG9yX2xlbmd0aF9v cGVyYW5kIiAiIHJLIikKKyAobWF0Y2hfb3BlcmFuZCA1ICJjb25zdF9pbnRf b3BlcmFuZCIgIiBpIikKKyAocmVnOlNJIFZMX1JFR05VTSkKKyAocmVnOlNJ IFZUWVBFX1JFR05VTSldIFVOU1BFQ19USF9WU1NNRU1fT1ApCisgKHVuc3Bl YzpWSQorIFsobWF0Y2hfb3BlcmFuZCAyICJwbW9kZV9yZWdfb3JfMF9vcGVy YW5kIiAiIHJKIikKKyAobWF0Y2hfb3BlcmFuZDpWSSAzICJyZWdpc3Rlcl9v cGVyYW5kIiAiIHZyIildIFVOU1BFQ19USF9WU1NNRU1fT1ApCisgKG1hdGNo X2R1cCAwKSkpXQorICJUQVJHRVRfWFRIRUFEVkVDVE9SIgorICJ2c3M8dmxt ZW1fb3BfYXR0cj4udlx0JTMsJTAsJXoyJXAxIgorIFsoc2V0X2F0dHIgInR5 cGUiICJ2c3RzIikKKyAoc2V0X2F0dHIgIm1vZGUiICI8TU9ERT4iKQorIChz ZXQgKGF0dHIgImF2bF90eXBlX2lkeCIpIChjb25zdF9pbnQgNSkpXSkKKwor KGRlZmluZV9pbnNuICJAcHJlZF9pbmRleGVkX2xvYWRfd2lkdGg8dmxtZW1f b3BfYXR0cj48bW9kZT4iCisgWyhzZXQgKG1hdGNoX29wZXJhbmQ6VkkgMCAi cmVnaXN0ZXJfb3BlcmFuZCIgIj12ZCwgdnIsdmQsIHZyIikKKyAoaWZfdGhl bl9lbHNlOlZJCisgKHVuc3BlYzo8Vk0+CisgWyhtYXRjaF9vcGVyYW5kOjxW TT4gMSAidmVjdG9yX21hc2tfb3BlcmFuZCIgIiB2bSxXYzEsdm0sV2MxIikK KyAobWF0Y2hfb3BlcmFuZCA1ICJ2ZWN0b3JfbGVuZ3RoX29wZXJhbmQiICIg ckssIHJLLHJLLCBySyIpCisgKG1hdGNoX29wZXJhbmQgNiAiY29uc3RfaW50 X29wZXJhbmQiICIgaSwgaSwgaSwgaSIpCisgKG1hdGNoX29wZXJhbmQgNyAi Y29uc3RfaW50X29wZXJhbmQiICIgaSwgaSwgaSwgaSIpCisgKG1hdGNoX29w ZXJhbmQgOCAiY29uc3RfaW50X29wZXJhbmQiICIgaSwgaSwgaSwgaSIpCisg KHJlZzpTSSBWTF9SRUdOVU0pCisgKHJlZzpTSSBWVFlQRV9SRUdOVU0pXSBV TlNQRUNfVEhfVkxYTUVNX09QKQorICh1bnNwZWM6VkkKKyBbKG1hdGNoX29w ZXJhbmQgMyAicG1vZGVfcmVnX29yXzBfb3BlcmFuZCIgIiBySiwgckosckos IHJKIikKKyAobWVtOkJMSyAoc2NyYXRjaCkpCisgKG1hdGNoX29wZXJhbmQ6 VkkgNCAicmVnaXN0ZXJfb3BlcmFuZCIgIiB2ciwgdnIsdnIsIHZyIildIFVO U1BFQ19USF9WTFhNRU1fT1ApCisgKG1hdGNoX29wZXJhbmQ6VkkgMiAidmVj dG9yX21lcmdlX29wZXJhbmQiICIgdnUsIHZ1LCAwLCAwIikpKV0KKyAiVEFS R0VUX1hUSEVBRFZFQ1RPUiIKKyAidmx4PHZsbWVtX29wX2F0dHI+LnZcdCUw LCglejMpLCU0JXAxIgorIFsoc2V0X2F0dHIgInR5cGUiICJ2bGR1eCIpCisg KHNldF9hdHRyICJtb2RlIiAiPE1PREU+IildKQorCisoZGVmaW5lX2luc24g IkBwcmVkX2luZGV4ZWRfPHZsbWVtX29yZGVyX2F0dHI+c3RvcmVfd2lkdGg8 dmxtZW1fb3BfYXR0cj48bW9kZT4iCisgWyhzZXQgKG1lbTpCTEsgKHNjcmF0 Y2gpKQorICh1bnNwZWM6QkxLCisgWyh1bnNwZWM6PFZNPgorIFsobWF0Y2hf b3BlcmFuZDo8Vk0+IDAgInZlY3Rvcl9tYXNrX29wZXJhbmQiICJ2bVdjMSIp CisgKG1hdGNoX29wZXJhbmQgNCAidmVjdG9yX2xlbmd0aF9vcGVyYW5kIiAi IHJLIikKKyAobWF0Y2hfb3BlcmFuZCA1ICJjb25zdF9pbnRfb3BlcmFuZCIg IiBpIikKKyAocmVnOlNJIFZMX1JFR05VTSkKKyAocmVnOlNJIFZUWVBFX1JF R05VTSldIFVOU1BFQ19USF9WU1hNRU1fT1ApCisgKG1hdGNoX29wZXJhbmQg MSAicG1vZGVfcmVnX29yXzBfb3BlcmFuZCIgIiBySiIpCisgKG1hdGNoX29w ZXJhbmQ6VkkgMiAicmVnaXN0ZXJfb3BlcmFuZCIgIiB2ciIpCisgKG1hdGNo X29wZXJhbmQ6VkkgMyAicmVnaXN0ZXJfb3BlcmFuZCIgIiB2ciIpXSBVTlNQ RUNfVEhfVlNYTUVNX09QKSldCisgIlRBUkdFVF9YVEhFQURWRUNUT1IiCisg InZzPHZsbWVtX29yZGVyX2F0dHI+eDx2bG1lbV9vcF9hdHRyPi52XHQlMywo JXoxKSwlMiVwMCIKKyBbKHNldF9hdHRyICJ0eXBlIiAidnN0dXgiKQorIChz ZXRfYXR0ciAibW9kZSIgIjxNT0RFPiIpXSkKKworKGRlZmluZV9leHBhbmQg IkBwcmVkX3RoX2V4dHJhY3Q8bW9kZT4iCisgWyhzZXQgKG1hdGNoX29wZXJh bmQ6PFZFTD4gMCAicmVnaXN0ZXJfb3BlcmFuZCIpCisgKHVuc3BlYzo8VkVM PgorIFsodmVjX3NlbGVjdDo8VkVMPgorIChtYXRjaF9vcGVyYW5kOlZfVkxT SSAxICJyZWdpc3Rlcl9vcGVyYW5kIikKKyAocGFyYWxsZWwgWyhtYXRjaF9v cGVyYW5kOkRJIDIgInJlZ2lzdGVyX29wZXJhbmQiICJyIildKSkKKyAocmVn OlNJIFZUWVBFX1JFR05VTSldIFVOU1BFQ19WUFJFRElDQVRFKSldCisgIlRB UkdFVF9YVEhFQURWRUNUT1IiCit7fSkKKworKGRlZmluZV9pbnNuICIqcHJl ZF90aF9leHRyYWN0PG1vZGU+IgorIFsoc2V0IChtYXRjaF9vcGVyYW5kOjxW RUw+IDAgInJlZ2lzdGVyX29wZXJhbmQiICI9ciIpCisgKHVuc3BlYzo8VkVM PgorIFsodmVjX3NlbGVjdDo8VkVMPgorIChtYXRjaF9vcGVyYW5kOlZfVkxT SSAxICJyZWdpc3Rlcl9vcGVyYW5kIiAidnIiKQorIChwYXJhbGxlbCBbKG1h dGNoX29wZXJhbmQ6REkgMiAicmVnaXN0ZXJfb3BlcmFuZCIgInIiKV0pKQor IChyZWc6U0kgVlRZUEVfUkVHTlVNKV0gVU5TUEVDX1ZQUkVESUNBVEUpKV0K KyAiVEFSR0VUX1hUSEVBRFZFQ1RPUiIKKyAidmV4dC54LnZcdCUwLCUxLCUy IgorIFsoc2V0X2F0dHIgInR5cGUiICJ2aW1vdnZ4IikKKyAoc2V0X2F0dHIg Im1vZGUiICI8TU9ERT4iKV0pCmRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRl L2djYy50YXJnZXQvcmlzY3YvcnZ2L3h0aGVhZHZlY3Rvci92bGItdnNiLmMg Yi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L3h0aGVhZHZl Y3Rvci92bGItdnNiLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw MDAwMDAwMDAuLjNjMTJjMTI0NTk3Ci0tLSAvZGV2L251bGwKKysrIGIvZ2Nj L3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di94dGhlYWR2ZWN0b3Iv dmxiLXZzYi5jCkBAIC0wLDAgKzEsNjggQEAKKy8qIHsgZGctZG8gY29tcGls ZSB9ICovCisvKiB7IGRnLW9wdGlvbnMgIi1tYXJjaD1ydjMyZ2N4dGhlYWR2 ZWN0b3IgLW1hYmk9aWxwMzJkIC1PMyIgfSAqLworLyogeyBkZy1maW5hbCB7 IGNoZWNrLWZ1bmN0aW9uLWJvZGllcyAiKioiICIiIH0gfSAqLworI2luY2x1 ZGUgInJpc2N2X3RoX3ZlY3Rvci5oIgorCisvKgorKiogZjE6CisqKiB0aC52 c2V0aXZsaVx0emVybyw0LGUzMixtMSx0dSxtYQorKiogdGgudmxiXC52XHR2 WzAtOV0rLDBcKFthLXgwLTldK1wpCisqKiB0aC52bGJcLnZcdHZbMC05XSss MFwoW2EteDAtOV0rXCkKKyoqIHRoLnZhZGRcLnZ2XHR2WzAtOV0rLFxzKnZb MC05XSssXHMqdlswLTldKworKiogdGgudmFkZFwudnZcdHZbMC05XSssXHMq dlswLTldKyxccyp2WzAtOV0rCisqKiB0aC52c2JcLnZcdHZbMC05XSssMFwo W2EteDAtOV0rXCkKKyoqIHJldAorKi8KK3ZvaWQgZjEgKHZvaWQgKiBpbiwg dm9pZCAqb3V0KQoreworIHZpbnQzMm0xX3QgdiA9IF9fcmlzY3ZfdGhfdmxi X3ZfaTMybTEgKGluLCA0KTsKKyB2aW50MzJtMV90IHYyID0gX19yaXNjdl90 aF92bGJfdl9pMzJtMV90dSAodiwgaW4sIDQpOworIHZpbnQzMm0xX3QgdjMg PSBfX3Jpc2N2X3ZhZGRfdnZfaTMybTEgKHYyLCB2MiwgNCk7CisgdmludDMy bTFfdCB2NCA9IF9fcmlzY3ZfdmFkZF92dl9pMzJtMV90dSAodjMsIHYyLCB2 MiwgNCk7CisgX19yaXNjdl90aF92c2Jfdl9pMzJtMSAob3V0LCB2NCwgNCk7 Cit9CisKKy8qCisqKiBmMjoKKyoqIHRoLnZzZXR2bGlcdFthLXgwLTldKyx6 ZXJvLGU4LG1mNCx0YSxtYQorKiogdGgudmxtLnZcdHZbMC05XSssMFwoW2Et eDAtOV0rXCkKKyoqIHRoLnZzZXRpdmxpXHR6ZXJvLDQsZTMyLG0xLHRhLG1h CisqKiB0aC52bGIudlx0dlswLTldKywwXChbYS14MC05XStcKSx2MC50Cisq KiB0aC52YWRkXC52dlx0dlswLTldKyxccyp2WzAtOV0rLFxzKnZbMC05XSsK KyoqIHRoLnZhZGRcLnZ2XHR2WzEtOV1bMC05XT8sXHMqdlswLTldKyxccyp2 WzAtOV0rLFxzKnYwLnQKKyoqIHRoLnZzYi52XHR2WzAtOV0rLDBcKFthLXgw LTldK1wpCisqKiByZXQKKyovCit2b2lkIGYyICh2b2lkICogaW4sIHZvaWQg Km91dCkKK3sKKyB2Ym9vbDMyX3QgbWFzayA9ICoodmJvb2wzMl90KilpbjsK KyBhc20gdm9sYXRpbGUgKCIiOjo6Im1lbW9yeSIpOworIHZpbnQzMm0xX3Qg diA9IF9fcmlzY3ZfdGhfdmxiX3ZfaTMybTEgKGluLCA0KTsKKyB2aW50MzJt MV90IHYyID0gX19yaXNjdl90aF92bGJfdl9pMzJtMV9tIChtYXNrLCBpbiwg NCk7CisgdmludDMybTFfdCB2MyA9IF9fcmlzY3ZfdmFkZF92dl9pMzJtMSAo djIsIHYyLCA0KTsKKyB2aW50MzJtMV90IHY0ID0gX19yaXNjdl92YWRkX3Z2 X2kzMm0xX20gKG1hc2ssIHYzLCB2MywgNCk7CisgX19yaXNjdl90aF92c2Jf dl9pMzJtMSAob3V0LCB2NCwgNCk7Cit9CisKKy8qCisqKiBmMzoKKyoqIHRo LnZzZXR2bGlcdFthLXgwLTldKyx6ZXJvLGU4LG1mNCx0YSxtYQorKiogdGgu dmxtLnZcdHZbMC05XSssMFwoW2EteDAtOV0rXCkKKyoqIHRoLnZzZXRpdmxp XHR6ZXJvLDQsZTMyLG0xLHR1LG11CisqKiB0aC52bGJcLnZcdHZbMC05XSss MFwoW2EteDAtOV0rXCkKKyoqIHRoLnZsYi52XHR2WzAtOV0rLDBcKFthLXgw LTldK1wpLHYwLnQKKyoqIHRoLnZhZGRcLnZ2XHR2WzAtOV0rLFxzKnZbMC05 XSssXHMqdlswLTldKworKiogdGgudmFkZFwudnZcdHZbMS05XVswLTldPyxc cyp2WzAtOV0rLFxzKnZbMC05XSssXHMqdjAudAorKiogdGgudnNiLnZcdHZb MC05XSssMFwoW2EteDAtOV0rXCkKKyoqIHJldAorKi8KK3ZvaWQgZjMgKHZv aWQgKiBpbiwgdm9pZCAqb3V0KQoreworIHZib29sMzJfdCBtYXNrID0gKih2 Ym9vbDMyX3QqKWluOworIGFzbSB2b2xhdGlsZSAoIiI6OjoibWVtb3J5Iik7 CisgdmludDMybTFfdCB2ID0gX19yaXNjdl90aF92bGJfdl9pMzJtMSAoaW4s IDQpOworIHZpbnQzMm0xX3QgdjIgPSBfX3Jpc2N2X3RoX3ZsYl92X2kzMm0x X3R1bXUgKG1hc2ssIHYsIGluLCA0KTsKKyB2aW50MzJtMV90IHYzID0gX19y aXNjdl92YWRkX3Z2X2kzMm0xICh2MiwgdjIsIDQpOworIHZpbnQzMm0xX3Qg djQgPSBfX3Jpc2N2X3ZhZGRfdnZfaTMybTFfdHVtdSAobWFzaywgdjMsIHYy LCB2MiwgNCk7CisgX19yaXNjdl90aF92c2Jfdl9pMzJtMSAob3V0LCB2NCwg NCk7Cit9CmRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQv cmlzY3YvcnZ2L3h0aGVhZHZlY3Rvci92bGJ1LXZzYi5jIGIvZ2NjL3Rlc3Rz dWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di94dGhlYWR2ZWN0b3IvdmxidS12 c2IuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4u MzBiZWYzNjkzNzUKLS0tIC9kZXYvbnVsbAorKysgYi9nY2MvdGVzdHN1aXRl L2djYy50YXJnZXQvcmlzY3YvcnZ2L3h0aGVhZHZlY3Rvci92bGJ1LXZzYi5j CkBAIC0wLDAgKzEsNjggQEAKKy8qIHsgZGctZG8gY29tcGlsZSB9ICovCisv KiB7IGRnLW9wdGlvbnMgIi1tYXJjaD1ydjMyZ2N4dGhlYWR2ZWN0b3IgLW1h Ymk9aWxwMzJkIC1PMyIgfSAqLworLyogeyBkZy1maW5hbCB7IGNoZWNrLWZ1 bmN0aW9uLWJvZGllcyAiKioiICIiIH0gfSAqLworI2luY2x1ZGUgInJpc2N2 X3RoX3ZlY3Rvci5oIgorCisvKgorKiogZjE6CisqKiB0aC52c2V0aXZsaVx0 emVybyw0LGUzMixtMSx0dSxtYQorKiogdGgudmxidVwudlx0dlswLTldKyww XChbYS14MC05XStcKQorKiogdGgudmxidVwudlx0dlswLTldKywwXChbYS14 MC05XStcKQorKiogdGgudmFkZFwudmlcdHZbMC05XSssXHMqdlswLTldKyxc cyotMTYKKyoqIHRoLnZhZGRcLnZpXHR2WzAtOV0rLFxzKnZbMC05XSssXHMq LTE2CisqKiB0aC52c2JcLnZcdHZbMC05XSssMFwoW2EteDAtOV0rXCkKKyoq IHJldAorKi8KK3ZvaWQgZjEgKHZvaWQgKiBpbiwgdm9pZCAqb3V0LCB1aW50 MzJfdCB4KQoreworIHZ1aW50MzJtMV90IHYgPSBfX3Jpc2N2X3RoX3ZsYnVf dl91MzJtMSAoaW4sIDQpOworIHZ1aW50MzJtMV90IHYyID0gX19yaXNjdl90 aF92bGJ1X3ZfdTMybTFfdHUgKHYsIGluLCA0KTsKKyB2dWludDMybTFfdCB2 MyA9IF9fcmlzY3ZfdmFkZF92eF91MzJtMSAodjIsIC0xNiwgNCk7CisgdnVp bnQzMm0xX3QgdjQgPSBfX3Jpc2N2X3ZhZGRfdnhfdTMybTFfdHUgKHYzLCB2 MiwgLTE2LCA0KTsKKyBfX3Jpc2N2X3RoX3ZzYl92X3UzMm0xIChvdXQsIHY0 LCA0KTsKK30KKworLyoKKyoqIGYyOgorKiogdGgudnNldHZsaVx0W2EteDAt OV0rLHplcm8sZTgsbWY0LHRhLG1hCisqKiB0aC52bG0udlx0dlswLTldKyww XChbYS14MC05XStcKQorKiogdGgudnNldGl2bGlcdHplcm8sNCxlMzIsbTEs dGEsbWEKKyoqIHRoLnZsYnUudlx0dlswLTldKywwXChbYS14MC05XStcKSx2 MC50CisqKiB0aC52YWRkXC52aVx0dlswLTldKyxccyp2WzAtOV0rLFxzKi0x NgorKiogdGgudmFkZFwudmlcdHZbMS05XVswLTldPyxccyp2WzAtOV0rLFxz Ki0xNixccyp2MC50CisqKiB0aC52c2Iudlx0dlswLTldKywwXChbYS14MC05 XStcKQorKiogcmV0CisqLwordm9pZCBmMiAodm9pZCAqIGluLCB2b2lkICpv dXQsIHVpbnQzMl90IHgpCit7CisgdmJvb2wzMl90IG1hc2sgPSAqKHZib29s MzJfdCopaW47CisgYXNtIHZvbGF0aWxlICgiIjo6OiJtZW1vcnkiKTsKKyB2 dWludDMybTFfdCB2ID0gX19yaXNjdl90aF92bGJ1X3ZfdTMybTEgKGluLCA0 KTsKKyB2dWludDMybTFfdCB2MiA9IF9fcmlzY3ZfdGhfdmxidV92X3UzMm0x X20gKG1hc2ssIGluLCA0KTsKKyB2dWludDMybTFfdCB2MyA9IF9fcmlzY3Zf dmFkZF92eF91MzJtMSAodjIsIC0xNiwgNCk7CisgdnVpbnQzMm0xX3QgdjQg PSBfX3Jpc2N2X3ZhZGRfdnhfdTMybTFfbSAobWFzaywgdjMsIC0xNiwgNCk7 CisgX19yaXNjdl90aF92c2Jfdl91MzJtMSAob3V0LCB2NCwgNCk7Cit9CisK Ky8qCisqKiBmMzoKKyoqIHRoLnZzZXR2bGlcdFthLXgwLTldKyx6ZXJvLGU4 LG1mNCx0YSxtYQorKiogdGgudmxtLnZcdHZbMC05XSssMFwoW2EteDAtOV0r XCkKKyoqIHRoLnZzZXRpdmxpXHR6ZXJvLDQsZTMyLG0xLHR1LG11CisqKiB0 aC52bGJ1XC52XHR2WzAtOV0rLDBcKFthLXgwLTldK1wpCisqKiB0aC52bGJ1 LnZcdHZbMC05XSssMFwoW2EteDAtOV0rXCksdjAudAorKiogdGgudmFkZFwu dmlcdHZbMC05XSssXHMqdlswLTldKyxccyotMTYKKyoqIHRoLnZhZGRcLnZp XHR2WzEtOV1bMC05XT8sXHMqdlswLTldKyxccyotMTYsXHMqdjAudAorKiog dGgudnNiLnZcdHZbMC05XSssMFwoW2EteDAtOV0rXCkKKyoqIHJldAorKi8K K3ZvaWQgZjMgKHZvaWQgKiBpbiwgdm9pZCAqb3V0LCB1aW50MzJfdCB4KQor eworIHZib29sMzJfdCBtYXNrID0gKih2Ym9vbDMyX3QqKWluOworIGFzbSB2 b2xhdGlsZSAoIiI6OjoibWVtb3J5Iik7CisgdnVpbnQzMm0xX3QgdiA9IF9f cmlzY3ZfdGhfdmxidV92X3UzMm0xIChpbiwgNCk7CisgdnVpbnQzMm0xX3Qg djIgPSBfX3Jpc2N2X3RoX3ZsYnVfdl91MzJtMV90dW11IChtYXNrLCB2LCBp biwgNCk7CisgdnVpbnQzMm0xX3QgdjMgPSBfX3Jpc2N2X3ZhZGRfdnhfdTMy bTEgKHYyLCAtMTYsIDQpOworIHZ1aW50MzJtMV90IHY0ID0gX19yaXNjdl92 YWRkX3Z4X3UzMm0xX3R1bXUgKG1hc2ssIHYzLCB2MiwgLTE2LCA0KTsKKyBf X3Jpc2N2X3RoX3ZzYl92X3UzMm0xIChvdXQsIHY0LCA0KTsKK30KZGlmZiAt LWdpdCBhL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYveHRo ZWFkdmVjdG9yL3ZsaC12c2guYyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdl dC9yaXNjdi9ydnYveHRoZWFkdmVjdG9yL3ZsaC12c2guYwpuZXcgZmlsZSBt b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uM2M4YjVjY2MxNmIKLS0t IC9kZXYvbnVsbAorKysgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlz Y3YvcnZ2L3h0aGVhZHZlY3Rvci92bGgtdnNoLmMKQEAgLTAsMCArMSw2OCBA QAorLyogeyBkZy1kbyBjb21waWxlIH0gKi8KKy8qIHsgZGctb3B0aW9ucyAi LW1hcmNoPXJ2MzJnY3h0aGVhZHZlY3RvciAtbWFiaT1pbHAzMmQgLU8zIiB9 ICovCisvKiB7IGRnLWZpbmFsIHsgY2hlY2stZnVuY3Rpb24tYm9kaWVzICIq KiIgIiIgfSB9ICovCisjaW5jbHVkZSAicmlzY3ZfdGhfdmVjdG9yLmgiCisK Ky8qCisqKiBmMToKKyoqIHRoLnZzZXRpdmxpXHR6ZXJvLDQsZTMyLG0xLHR1 LG1hCisqKiB0aC52bGhcLnZcdHZbMC05XSssMFwoW2EteDAtOV0rXCkKKyoq IHRoLnZsaFwudlx0dlswLTldKywwXChbYS14MC05XStcKQorKiogdGgudmFk ZFwudmlcdHZbMC05XSssXHMqdlswLTldKyxccyotMTYKKyoqIHRoLnZhZGRc LnZpXHR2WzAtOV0rLFxzKnZbMC05XSssXHMqLTE2CisqKiB0aC52c2hcLnZc dHZbMC05XSssMFwoW2EteDAtOV0rXCkKKyoqIHJldAorKi8KK3ZvaWQgZjEg KHZvaWQgKiBpbiwgdm9pZCAqb3V0LCBpbnQzMl90IHgpCit7CisgdmludDMy bTFfdCB2ID0gX19yaXNjdl90aF92bGhfdl9pMzJtMSAoaW4sIDQpOworIHZp bnQzMm0xX3QgdjIgPSBfX3Jpc2N2X3RoX3ZsaF92X2kzMm0xX3R1ICh2LCBp biwgNCk7CisgdmludDMybTFfdCB2MyA9IF9fcmlzY3ZfdmFkZF92eF9pMzJt MSAodjIsIC0xNiwgNCk7CisgdmludDMybTFfdCB2NCA9IF9fcmlzY3ZfdmFk ZF92eF9pMzJtMV90dSAodjMsIHYyLCAtMTYsIDQpOworIF9fcmlzY3ZfdGhf dnNoX3ZfaTMybTEgKG91dCwgdjQsIDQpOworfQorCisvKgorKiogZjI6Cisq KiB0aC52c2V0dmxpXHRbYS14MC05XSssemVybyxlOCxtZjQsdGEsbWEKKyoq IHRoLnZsbS52XHR2WzAtOV0rLDBcKFthLXgwLTldK1wpCisqKiB0aC52c2V0 aXZsaVx0emVybyw0LGUzMixtMSx0YSxtYQorKiogdGgudmxoLnZcdHZbMC05 XSssMFwoW2EteDAtOV0rXCksdjAudAorKiogdGgudmFkZFwudmlcdHZbMC05 XSssXHMqdlswLTldKyxccyotMTYKKyoqIHRoLnZhZGRcLnZpXHR2WzEtOV1b MC05XT8sXHMqdlswLTldKyxccyotMTYsXHMqdjAudAorKiogdGgudnNoLnZc dHZbMC05XSssMFwoW2EteDAtOV0rXCkKKyoqIHJldAorKi8KK3ZvaWQgZjIg KHZvaWQgKiBpbiwgdm9pZCAqb3V0LCBpbnQzMl90IHgpCit7CisgdmJvb2wz Ml90IG1hc2sgPSAqKHZib29sMzJfdCopaW47CisgYXNtIHZvbGF0aWxlICgi Ijo6OiJtZW1vcnkiKTsKKyB2aW50MzJtMV90IHYgPSBfX3Jpc2N2X3RoX3Zs aF92X2kzMm0xIChpbiwgNCk7CisgdmludDMybTFfdCB2MiA9IF9fcmlzY3Zf dGhfdmxoX3ZfaTMybTFfbSAobWFzaywgaW4sIDQpOworIHZpbnQzMm0xX3Qg djMgPSBfX3Jpc2N2X3ZhZGRfdnhfaTMybTEgKHYyLCAtMTYsIDQpOworIHZp bnQzMm0xX3QgdjQgPSBfX3Jpc2N2X3ZhZGRfdnhfaTMybTFfbSAobWFzaywg djMsIC0xNiwgNCk7CisgX19yaXNjdl90aF92c2hfdl9pMzJtMSAob3V0LCB2 NCwgNCk7Cit9CisKKy8qCisqKiBmMzoKKyoqIHRoLnZzZXR2bGlcdFthLXgw LTldKyx6ZXJvLGU4LG1mNCx0YSxtYQorKiogdGgudmxtLnZcdHZbMC05XSss MFwoW2EteDAtOV0rXCkKKyoqIHRoLnZzZXRpdmxpXHR6ZXJvLDQsZTMyLG0x LHR1LG11CisqKiB0aC52bGhcLnZcdHZbMC05XSssMFwoW2EteDAtOV0rXCkK KyoqIHRoLnZsaC52XHR2WzAtOV0rLDBcKFthLXgwLTldK1wpLHYwLnQKKyoq IHRoLnZhZGRcLnZpXHR2WzAtOV0rLFxzKnZbMC05XSssXHMqLTE2CisqKiB0 aC52YWRkXC52aVx0dlsxLTldWzAtOV0/LFxzKnZbMC05XSssXHMqLTE2LFxz KnYwLnQKKyoqIHRoLnZzaC52XHR2WzAtOV0rLDBcKFthLXgwLTldK1wpCisq KiByZXQKKyovCit2b2lkIGYzICh2b2lkICogaW4sIHZvaWQgKm91dCwgaW50 MzJfdCB4KQoreworIHZib29sMzJfdCBtYXNrID0gKih2Ym9vbDMyX3QqKWlu OworIGFzbSB2b2xhdGlsZSAoIiI6OjoibWVtb3J5Iik7CisgdmludDMybTFf dCB2ID0gX19yaXNjdl90aF92bGhfdl9pMzJtMSAoaW4sIDQpOworIHZpbnQz Mm0xX3QgdjIgPSBfX3Jpc2N2X3RoX3ZsaF92X2kzMm0xX3R1bXUgKG1hc2ss IHYsIGluLCA0KTsKKyB2aW50MzJtMV90IHYzID0gX19yaXNjdl92YWRkX3Z4 X2kzMm0xICh2MiwgLTE2LCA0KTsKKyB2aW50MzJtMV90IHY0ID0gX19yaXNj dl92YWRkX3Z4X2kzMm0xX3R1bXUgKG1hc2ssIHYzLCB2MiwgLTE2LCA0KTsK KyBfX3Jpc2N2X3RoX3ZzaF92X2kzMm0xIChvdXQsIHY0LCA0KTsKK30KZGlm ZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYv eHRoZWFkdmVjdG9yL3ZsaHUtdnNoLmMgYi9nY2MvdGVzdHN1aXRlL2djYy50 YXJnZXQvcmlzY3YvcnZ2L3h0aGVhZHZlY3Rvci92bGh1LXZzaC5jCm5ldyBm aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5iN2MwMDQwNGYx OAotLS0gL2Rldi9udWxsCisrKyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdl dC9yaXNjdi9ydnYveHRoZWFkdmVjdG9yL3ZsaHUtdnNoLmMKQEAgLTAsMCAr MSw2OCBAQAorLyogeyBkZy1kbyBjb21waWxlIH0gKi8KKy8qIHsgZGctb3B0 aW9ucyAiLW1hcmNoPXJ2MzJnY3h0aGVhZHZlY3RvciAtbWFiaT1pbHAzMmQg LU8zIiB9ICovCisvKiB7IGRnLWZpbmFsIHsgY2hlY2stZnVuY3Rpb24tYm9k aWVzICIqKiIgIiIgfSB9ICovCisjaW5jbHVkZSAicmlzY3ZfdGhfdmVjdG9y LmgiCisKKy8qCisqKiBmMToKKyoqIHRoLnZzZXRpdmxpXHR6ZXJvLDQsZTMy LG0xLHR1LG1hCisqKiB0aC52bGh1XC52XHR2WzAtOV0rLDBcKFthLXgwLTld K1wpCisqKiB0aC52bGh1XC52XHR2WzAtOV0rLDBcKFthLXgwLTldK1wpCisq KiB0aC52YWRkXC52aVx0dlswLTldKyxccyp2WzAtOV0rLFxzKi0xNgorKiog dGgudmFkZFwudmlcdHZbMC05XSssXHMqdlswLTldKyxccyotMTYKKyoqIHRo LnZzaFwudlx0dlswLTldKywwXChbYS14MC05XStcKQorKiogcmV0CisqLwor dm9pZCBmMSAodm9pZCAqIGluLCB2b2lkICpvdXQsIHVpbnQzMl90IHgpCit7 CisgdnVpbnQzMm0xX3QgdiA9IF9fcmlzY3ZfdGhfdmxodV92X3UzMm0xIChp biwgNCk7CisgdnVpbnQzMm0xX3QgdjIgPSBfX3Jpc2N2X3RoX3ZsaHVfdl91 MzJtMV90dSAodiwgaW4sIDQpOworIHZ1aW50MzJtMV90IHYzID0gX19yaXNj dl92YWRkX3Z4X3UzMm0xICh2MiwgLTE2LCA0KTsKKyB2dWludDMybTFfdCB2 NCA9IF9fcmlzY3ZfdmFkZF92eF91MzJtMV90dSAodjMsIHYyLCAtMTYsIDQp OworIF9fcmlzY3ZfdGhfdnNoX3ZfdTMybTEgKG91dCwgdjQsIDQpOworfQor CisvKgorKiogZjI6CisqKiB0aC52c2V0dmxpXHRbYS14MC05XSssemVybyxl OCxtZjQsdGEsbWEKKyoqIHRoLnZsbS52XHR2WzAtOV0rLDBcKFthLXgwLTld K1wpCisqKiB0aC52c2V0aXZsaVx0emVybyw0LGUzMixtMSx0YSxtYQorKiog dGgudmxodS52XHR2WzAtOV0rLDBcKFthLXgwLTldK1wpLHYwLnQKKyoqIHRo LnZhZGRcLnZpXHR2WzAtOV0rLFxzKnZbMC05XSssXHMqLTE2CisqKiB0aC52 YWRkXC52aVx0dlsxLTldWzAtOV0/LFxzKnZbMC05XSssXHMqLTE2LFxzKnYw LnQKKyoqIHRoLnZzaC52XHR2WzAtOV0rLDBcKFthLXgwLTldK1wpCisqKiBy ZXQKKyovCit2b2lkIGYyICh2b2lkICogaW4sIHZvaWQgKm91dCwgdWludDMy X3QgeCkKK3sKKyB2Ym9vbDMyX3QgbWFzayA9ICoodmJvb2wzMl90KilpbjsK KyBhc20gdm9sYXRpbGUgKCIiOjo6Im1lbW9yeSIpOworIHZ1aW50MzJtMV90 IHYgPSBfX3Jpc2N2X3RoX3ZsaHVfdl91MzJtMSAoaW4sIDQpOworIHZ1aW50 MzJtMV90IHYyID0gX19yaXNjdl90aF92bGh1X3ZfdTMybTFfbSAobWFzaywg aW4sIDQpOworIHZ1aW50MzJtMV90IHYzID0gX19yaXNjdl92YWRkX3Z4X3Uz Mm0xICh2MiwgLTE2LCA0KTsKKyB2dWludDMybTFfdCB2NCA9IF9fcmlzY3Zf dmFkZF92eF91MzJtMV9tIChtYXNrLCB2MywgLTE2LCA0KTsKKyBfX3Jpc2N2 X3RoX3ZzaF92X3UzMm0xIChvdXQsIHY0LCA0KTsKK30KKworLyoKKyoqIGYz OgorKiogdGgudnNldHZsaVx0W2EteDAtOV0rLHplcm8sZTgsbWY0LHRhLG1h CisqKiB0aC52bG0udlx0dlswLTldKywwXChbYS14MC05XStcKQorKiogdGgu dnNldGl2bGlcdHplcm8sNCxlMzIsbTEsdHUsbXUKKyoqIHRoLnZsaHVcLnZc dHZbMC05XSssMFwoW2EteDAtOV0rXCkKKyoqIHRoLnZsaHUudlx0dlswLTld KywwXChbYS14MC05XStcKSx2MC50CisqKiB0aC52YWRkXC52aVx0dlswLTld Kyxccyp2WzAtOV0rLFxzKi0xNgorKiogdGgudmFkZFwudmlcdHZbMS05XVsw LTldPyxccyp2WzAtOV0rLFxzKi0xNixccyp2MC50CisqKiB0aC52c2gudlx0 dlswLTldKywwXChbYS14MC05XStcKQorKiogcmV0CisqLwordm9pZCBmMyAo dm9pZCAqIGluLCB2b2lkICpvdXQsIHVpbnQzMl90IHgpCit7CisgdmJvb2wz Ml90IG1hc2sgPSAqKHZib29sMzJfdCopaW47CisgYXNtIHZvbGF0aWxlICgi Ijo6OiJtZW1vcnkiKTsKKyB2dWludDMybTFfdCB2ID0gX19yaXNjdl90aF92 bGh1X3ZfdTMybTEgKGluLCA0KTsKKyB2dWludDMybTFfdCB2MiA9IF9fcmlz Y3ZfdGhfdmxodV92X3UzMm0xX3R1bXUgKG1hc2ssIHYsIGluLCA0KTsKKyB2 dWludDMybTFfdCB2MyA9IF9fcmlzY3ZfdmFkZF92eF91MzJtMSAodjIsIC0x NiwgNCk7CisgdnVpbnQzMm0xX3QgdjQgPSBfX3Jpc2N2X3ZhZGRfdnhfdTMy bTFfdHVtdSAobWFzaywgdjMsIHYyLCAtMTYsIDQpOworIF9fcmlzY3ZfdGhf dnNoX3ZfdTMybTEgKG91dCwgdjQsIDQpOworfQpkaWZmIC0tZ2l0IGEvZ2Nj L3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di94dGhlYWR2ZWN0b3Iv dmx3LXZzdy5jIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2 di94dGhlYWR2ZWN0b3Ivdmx3LXZzdy5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0 CmluZGV4IDAwMDAwMDAwMDAwLi4xN2E1MzAxMmFjZgotLS0gL2Rldi9udWxs CisrKyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYveHRo ZWFkdmVjdG9yL3Zsdy12c3cuYwpAQCAtMCwwICsxLDY4IEBACisvKiB7IGRn LWRvIGNvbXBpbGUgfSAqLworLyogeyBkZy1vcHRpb25zICItbWFyY2g9cnYz MmdjeHRoZWFkdmVjdG9yIC1tYWJpPWlscDMyZCAtTzMiIH0gKi8KKy8qIHsg ZGctZmluYWwgeyBjaGVjay1mdW5jdGlvbi1ib2RpZXMgIioqIiAiIiB9IH0g Ki8KKyNpbmNsdWRlICJyaXNjdl90aF92ZWN0b3IuaCIKKworLyoKKyoqIGYx OgorKiogdGgudnNldGl2bGlcdHplcm8sNCxlMzIsbTEsdHUsbWEKKyoqIHRo LnZsd1wudlx0dlswLTldKywwXChbYS14MC05XStcKQorKiogdGgudmx3XC52 XHR2WzAtOV0rLDBcKFthLXgwLTldK1wpCisqKiB0aC52YWRkXC52eFx0dlsw LTldKyxccyp2WzAtOV0rLFxzKlthLXgwLTldKworKiogdGgudmFkZFwudnhc dHZbMC05XSssXHMqdlswLTldKyxccypbYS14MC05XSsKKyoqIHRoLnZzd1wu dlx0dlswLTldKywwXChbYS14MC05XStcKQorKiogcmV0CisqLwordm9pZCBm MSAodm9pZCAqIGluLCB2b2lkICpvdXQsIGludDMyX3QgeCkKK3sKKyB2aW50 MzJtMV90IHYgPSBfX3Jpc2N2X3RoX3Zsd192X2kzMm0xIChpbiwgNCk7Cisg dmludDMybTFfdCB2MiA9IF9fcmlzY3ZfdGhfdmx3X3ZfaTMybTFfdHUgKHYs IGluLCA0KTsKKyB2aW50MzJtMV90IHYzID0gX19yaXNjdl92YWRkX3Z4X2kz Mm0xICh2MiwgeCwgNCk7CisgdmludDMybTFfdCB2NCA9IF9fcmlzY3ZfdmFk ZF92eF9pMzJtMV90dSAodjMsIHYyLCB4LCA0KTsKKyBfX3Jpc2N2X3RoX3Zz d192X2kzMm0xIChvdXQsIHY0LCA0KTsKK30KKworLyoKKyoqIGYyOgorKiog dGgudnNldHZsaVx0W2EteDAtOV0rLHplcm8sZTgsbWY0LHRhLG1hCisqKiB0 aC52bG0udlx0dlswLTldKywwXChbYS14MC05XStcKQorKiogdGgudnNldGl2 bGlcdHplcm8sNCxlMzIsbTEsdGEsbWEKKyoqIHRoLnZsdy52XHR2WzAtOV0r LDBcKFthLXgwLTldK1wpLHYwLnQKKyoqIHRoLnZhZGRcLnZ4XHR2WzAtOV0r LFxzKnZbMC05XSssXHMqW2EteDAtOV0rCisqKiB0aC52YWRkXC52eFx0dlsx LTldWzAtOV0/LFxzKnZbMC05XSssXHMqW2EteDAtOV0rLFxzKnYwLnQKKyoq IHRoLnZzdy52XHR2WzAtOV0rLDBcKFthLXgwLTldK1wpCisqKiByZXQKKyov Cit2b2lkIGYyICh2b2lkICogaW4sIHZvaWQgKm91dCwgaW50MzJfdCB4KQor eworIHZib29sMzJfdCBtYXNrID0gKih2Ym9vbDMyX3QqKWluOworIGFzbSB2 b2xhdGlsZSAoIiI6OjoibWVtb3J5Iik7CisgdmludDMybTFfdCB2ID0gX19y aXNjdl90aF92bHdfdl9pMzJtMSAoaW4sIDQpOworIHZpbnQzMm0xX3QgdjIg PSBfX3Jpc2N2X3RoX3Zsd192X2kzMm0xX20gKG1hc2ssIGluLCA0KTsKKyB2 aW50MzJtMV90IHYzID0gX19yaXNjdl92YWRkX3Z4X2kzMm0xICh2MiwgeCwg NCk7CisgdmludDMybTFfdCB2NCA9IF9fcmlzY3ZfdmFkZF92eF9pMzJtMV9t IChtYXNrLCB2MywgeCwgNCk7CisgX19yaXNjdl90aF92c3dfdl9pMzJtMSAo b3V0LCB2NCwgNCk7Cit9CisKKy8qCisqKiBmMzoKKyoqIHRoLnZzZXR2bGlc dFthLXgwLTldKyx6ZXJvLGU4LG1mNCx0YSxtYQorKiogdGgudmxtLnZcdHZb MC05XSssMFwoW2EteDAtOV0rXCkKKyoqIHRoLnZzZXRpdmxpXHR6ZXJvLDQs ZTMyLG0xLHR1LG11CisqKiB0aC52bHdcLnZcdHZbMC05XSssMFwoW2EteDAt OV0rXCkKKyoqIHRoLnZsdy52XHR2WzAtOV0rLDBcKFthLXgwLTldK1wpLHYw LnQKKyoqIHRoLnZhZGRcLnZ4XHR2WzAtOV0rLFxzKnZbMC05XSssXHMqW2Et eDAtOV0rCisqKiB0aC52YWRkXC52eFx0dlsxLTldWzAtOV0/LFxzKnZbMC05 XSssXHMqW2EteDAtOV0rLFxzKnYwLnQKKyoqIHRoLnZzdy52XHR2WzAtOV0r LDBcKFthLXgwLTldK1wpCisqKiByZXQKKyovCit2b2lkIGYzICh2b2lkICog aW4sIHZvaWQgKm91dCwgaW50MzJfdCB4KQoreworIHZib29sMzJfdCBtYXNr ID0gKih2Ym9vbDMyX3QqKWluOworIGFzbSB2b2xhdGlsZSAoIiI6OjoibWVt b3J5Iik7CisgdmludDMybTFfdCB2ID0gX19yaXNjdl90aF92bHdfdl9pMzJt MSAoaW4sIDQpOworIHZpbnQzMm0xX3QgdjIgPSBfX3Jpc2N2X3RoX3Zsd192 X2kzMm0xX3R1bXUgKG1hc2ssIHYsIGluLCA0KTsKKyB2aW50MzJtMV90IHYz ID0gX19yaXNjdl92YWRkX3Z4X2kzMm0xICh2MiwgeCwgNCk7CisgdmludDMy bTFfdCB2NCA9IF9fcmlzY3ZfdmFkZF92eF9pMzJtMV90dW11IChtYXNrLCB2 MywgdjIsIHgsIDQpOworIF9fcmlzY3ZfdGhfdnN3X3ZfaTMybTEgKG91dCwg djQsIDQpOworfQpkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFy Z2V0L3Jpc2N2L3J2di94dGhlYWR2ZWN0b3Ivdmx3dS12c3cuYyBiL2djYy90 ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYveHRoZWFkdmVjdG9yL3Zs d3UtdnN3LmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw MDAuLmIxODdjZmM4NTJiCi0tLSAvZGV2L251bGwKKysrIGIvZ2NjL3Rlc3Rz dWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di94dGhlYWR2ZWN0b3Ivdmx3dS12 c3cuYwpAQCAtMCwwICsxLDY4IEBACisvKiB7IGRnLWRvIGNvbXBpbGUgfSAq LworLyogeyBkZy1vcHRpb25zICItbWFyY2g9cnYzMmdjeHRoZWFkdmVjdG9y IC1tYWJpPWlscDMyZCAtTzMiIH0gKi8KKy8qIHsgZGctZmluYWwgeyBjaGVj ay1mdW5jdGlvbi1ib2RpZXMgIioqIiAiIiB9IH0gKi8KKyNpbmNsdWRlICJy aXNjdl90aF92ZWN0b3IuaCIKKworLyoKKyoqIGYxOgorKiogdGgudnNldGl2 bGlcdHplcm8sNCxlMzIsbTEsdHUsbWEKKyoqIHRoLnZsd3VcLnZcdHZbMC05 XSssMFwoW2EteDAtOV0rXCkKKyoqIHRoLnZsd3VcLnZcdHZbMC05XSssMFwo W2EteDAtOV0rXCkKKyoqIHRoLnZhZGRcLnZpXHR2WzAtOV0rLFxzKnZbMC05 XSssXHMqLTE2CisqKiB0aC52YWRkXC52aVx0dlswLTldKyxccyp2WzAtOV0r LFxzKi0xNgorKiogdGgudnN3XC52XHR2WzAtOV0rLDBcKFthLXgwLTldK1wp CisqKiByZXQKKyovCit2b2lkIGYxICh2b2lkICogaW4sIHZvaWQgKm91dCwg dWludDMyX3QgeCkKK3sKKyB2dWludDMybTFfdCB2ID0gX19yaXNjdl90aF92 bHd1X3ZfdTMybTEgKGluLCA0KTsKKyB2dWludDMybTFfdCB2MiA9IF9fcmlz Y3ZfdGhfdmx3dV92X3UzMm0xX3R1ICh2LCBpbiwgNCk7CisgdnVpbnQzMm0x X3QgdjMgPSBfX3Jpc2N2X3ZhZGRfdnhfdTMybTEgKHYyLCAtMTYsIDQpOwor IHZ1aW50MzJtMV90IHY0ID0gX19yaXNjdl92YWRkX3Z4X3UzMm0xX3R1ICh2 MywgdjIsIC0xNiwgNCk7CisgX19yaXNjdl90aF92c3dfdl91MzJtMSAob3V0 LCB2NCwgNCk7Cit9CisKKy8qCisqKiBmMjoKKyoqIHRoLnZzZXR2bGlcdFth LXgwLTldKyx6ZXJvLGU4LG1mNCx0YSxtYQorKiogdGgudmxtLnZcdHZbMC05 XSssMFwoW2EteDAtOV0rXCkKKyoqIHRoLnZzZXRpdmxpXHR6ZXJvLDQsZTMy LG0xLHRhLG1hCisqKiB0aC52bHd1LnZcdHZbMC05XSssMFwoW2EteDAtOV0r XCksdjAudAorKiogdGgudmFkZFwudmlcdHZbMC05XSssXHMqdlswLTldKyxc cyotMTYKKyoqIHRoLnZhZGRcLnZpXHR2WzEtOV1bMC05XT8sXHMqdlswLTld KyxccyotMTYsXHMqdjAudAorKiogdGgudnN3LnZcdHZbMC05XSssMFwoW2Et eDAtOV0rXCkKKyoqIHJldAorKi8KK3ZvaWQgZjIgKHZvaWQgKiBpbiwgdm9p ZCAqb3V0LCB1aW50MzJfdCB4KQoreworIHZib29sMzJfdCBtYXNrID0gKih2 Ym9vbDMyX3QqKWluOworIGFzbSB2b2xhdGlsZSAoIiI6OjoibWVtb3J5Iik7 CisgdnVpbnQzMm0xX3QgdiA9IF9fcmlzY3ZfdGhfdmx3dV92X3UzMm0xIChp biwgNCk7CisgdnVpbnQzMm0xX3QgdjIgPSBfX3Jpc2N2X3RoX3Zsd3Vfdl91 MzJtMV9tIChtYXNrLCBpbiwgNCk7CisgdnVpbnQzMm0xX3QgdjMgPSBfX3Jp c2N2X3ZhZGRfdnhfdTMybTEgKHYyLCAtMTYsIDQpOworIHZ1aW50MzJtMV90 IHY0ID0gX19yaXNjdl92YWRkX3Z4X3UzMm0xX20gKG1hc2ssIHYzLCAtMTYs IDQpOworIF9fcmlzY3ZfdGhfdnN3X3ZfdTMybTEgKG91dCwgdjQsIDQpOwor fQorCisvKgorKiogZjM6CisqKiB0aC52c2V0dmxpXHRbYS14MC05XSssemVy byxlOCxtZjQsdGEsbWEKKyoqIHRoLnZsbS52XHR2WzAtOV0rLDBcKFthLXgw LTldK1wpCisqKiB0aC52c2V0aXZsaVx0emVybyw0LGUzMixtMSx0dSxtdQor KiogdGgudmx3dVwudlx0dlswLTldKywwXChbYS14MC05XStcKQorKiogdGgu dmx3dS52XHR2WzAtOV0rLDBcKFthLXgwLTldK1wpLHYwLnQKKyoqIHRoLnZh ZGRcLnZpXHR2WzAtOV0rLFxzKnZbMC05XSssXHMqLTE2CisqKiB0aC52YWRk XC52aVx0dlsxLTldWzAtOV0/LFxzKnZbMC05XSssXHMqLTE2LFxzKnYwLnQK KyoqIHRoLnZzdy52XHR2WzAtOV0rLDBcKFthLXgwLTldK1wpCisqKiByZXQK KyovCit2b2lkIGYzICh2b2lkICogaW4sIHZvaWQgKm91dCwgdWludDMyX3Qg eCkKK3sKKyB2Ym9vbDMyX3QgbWFzayA9ICoodmJvb2wzMl90KilpbjsKKyBh c20gdm9sYXRpbGUgKCIiOjo6Im1lbW9yeSIpOworIHZ1aW50MzJtMV90IHYg PSBfX3Jpc2N2X3RoX3Zsd3Vfdl91MzJtMSAoaW4sIDQpOworIHZ1aW50MzJt MV90IHYyID0gX19yaXNjdl90aF92bHd1X3ZfdTMybTFfdHVtdSAobWFzaywg diwgaW4sIDQpOworIHZ1aW50MzJtMV90IHYzID0gX19yaXNjdl92YWRkX3Z4 X3UzMm0xICh2MiwgLTE2LCA0KTsKKyB2dWludDMybTFfdCB2NCA9IF9fcmlz Y3ZfdmFkZF92eF91MzJtMV90dW11IChtYXNrLCB2MywgdjIsIC0xNiwgNCk7 CisgX19yaXNjdl90aF92c3dfdl91MzJtMSAob3V0LCB2NCwgNCk7Cit9Ci0t IAoyLjE3LjEK ------=ALIBOUNDARY_39049_7f6572571700_65a0b16b_133de--