From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from smtpbgbr2.qq.com (smtpbgbr2.qq.com [54.207.22.56]) by sourceware.org (Postfix) with ESMTPS id C7186385DC0A for ; Tue, 12 Sep 2023 07:47:02 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org C7186385DC0A Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=rivai.ai Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=rivai.ai X-QQ-mid: bizesmtp90t1694504814tp192zze Received: from LAPTOP-EPITNQBU ( [61.144.172.134]) by bizesmtp.qq.com (ESMTP) with id ; Tue, 12 Sep 2023 15:46:53 +0800 (CST) X-QQ-SSF: 01400000000000G0V000000A0000000 X-QQ-FEAT: 7YFKcddXaggjuPUqHmbTP11ef2VLGMP8bq9pKDFwbYYRBKG9gF4PyLctqfuTQ Kn8O7Mrla+rekgNw0/cowmN89aEwoI2v8kePjrNoDBdEq7AC7TPipu+AiBgb9lOq4tKnTAN /5Q4Rd0OYa4ZyU5rx2Fih1LiMTqx0nTRBl3CR7up5JxVDlKATwMvHmWPYfrm3W/GkWLbOEz JVMhhNgstjLvZgQa2QbJyflrRl+69kfvZkQbtTsNF6mZ9TIGsG0jtDNMAc4SBbBMdW6AuMC /pH0o0ezeip1yI1l8Xg4XnQ881NA7E1gGirHPZZLE5FKhulW74HTS9OExscJzpLn+sw923t sXD2Zjb98t0nbKGj5Vf9QtYizu8XQBNhPbxGHCDhahu4o29DLd+sZtVwYuwOlqi5hdcrO5e 2RtgtJIbhFPrv2PlrfzVmXHgzlWW3B+A X-QQ-GoodBg: 2 X-BIZMAIL-ID: 58572711966980659 Date: Tue, 12 Sep 2023 15:46:53 +0800 From: "juzhe.zhong@rivai.ai" To: pan2.li , gcc-patches Cc: pan2.li , yanzhang.wang , kito.cheng Subject: Re: [PATCH v2] RISC-V: Implement RESOLVE_OVERLOADED_BUILTIN for RVV intrinsic References: <20230911075727.2536198-1-pan2.li@intel.com>, <20230912072038.1230798-1-pan2.li@intel.com> X-Priority: 3 X-GUID: 37579DA8-B32A-4CED-A9C1-E8B2712ABD12 X-Has-Attach: no X-Mailer: Foxmail 7.2.16.188[cn] Mime-Version: 1.0 Message-ID: Content-Type: multipart/alternative; boundary="----=_001_NextPart824684673868_=----" X-QQ-SENDSIZE: 520 Feedback-ID: bizesmtp:rivai.ai:qybglogicsvrgz:qybglogicsvrgz7a-one-0 X-Spam-Status: No, score=-8.6 required=5.0 tests=BAYES_00,GIT_PATCH_0,HTML_MESSAGE,KAM_DMARC_STATUS,KAM_SHORT,MIME_BASE64_TEXT,RCVD_IN_BARRACUDACENTRAL,RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H2,SPF_HELO_PASS,SPF_PASS,TXREP 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: This is a multi-part message in MIME format. ------=_001_NextPart824684673868_=---- Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: base64 SSB0aGluayBpdCdzIGJldHRlciB0byBtb3ZlICdnZXRfbm9uX292ZXJsb2Fk ZWRfaW5zdGFuY2UnIGludG8gZnVuY3Rpb25fYmFzZS4NCg0KKyAgICAgIC8q IFRvIGF2b2lkIEFQSSBjb25mbGljdGluZywgd2UgdXNlIHZvaWQgcmV0dXJu IHR5cGUgYW5kIHZvaWQgYXJndW1lbnQNCisgZm9yIHRoZSBvdmVybG9hZGVk IGZ1bmN0aW9uIHJlZ2lzdGVyLCBsaWtlIGFhcmNoNjQtc3ZlLiAgKi8NCg0K UGx6IHJld3JpdGUgdGhlIGNvbW1lbnRzLCBkb24ndCBtZW50aW9uIGFhcmNo NjQgc3ZlLg0KDQpDb3VsZCB5b3UgcnVuIHlvdXIgcnZ2IGludHJpbnNpYyBh cGkgY2kgd2l0aCB0aGlzIHBhdGNoPw0KSSBhbSB3b3JyeWluZyB0aGF0IHRo ZSByZXNvbHZlIHN0dWZmIHdpbGwgZGVzdHJveSB0aGUgZXhpc3RpbmcgQVBp IHN1cHBvcnQuDQoNCg0KDQoNCmp1emhlLnpob25nQHJpdmFpLmFpDQogDQpG cm9tOiBwYW4yLmxpDQpEYXRlOiAyMDIzLTA5LTEyIDE1OjIwDQpUbzogZ2Nj LXBhdGNoZXMNCkNDOiBqdXpoZS56aG9uZzsgcGFuMi5saTsgeWFuemhhbmcu d2FuZzsga2l0by5jaGVuZw0KU3ViamVjdDogW1BBVENIIHYyXSBSSVNDLVY6 IEltcGxlbWVudCBSRVNPTFZFX09WRVJMT0FERURfQlVJTFRJTiBmb3IgUlZW IGludHJpbnNpYw0KRnJvbTogUGFuIExpIDxwYW4yLmxpQGludGVsLmNvbT4N CiANClVwZGF0ZSBpbiB2MjoNCiANCiogQWRkIGdldF9ub25fb3ZlcmxvYWRl ZF9pbnN0YW5jZSBmb3IgZnVuY3Rpb24gaW5zdGFuY2UuDQoqIEZpeCBvdmVy bG9hZCBjaGVjayBmb3IgcG9saWN5IGZ1bmN0aW9uLg0KKiBFbnJpY2ggdGhl IHRlc3QgY2FzZXMgY2hlY2suDQogDQpPcmlnaW5hbCBsb2c6DQogDQpUaGlz IHBhdGNoIHdvdWxkIGxpa2UgYWRkIHRoZSBmcmFtZXdvcmsgdG8gc3VwcG9y dCB0aGUgUlZWIG92ZXJsb2FkZWQNCmludHJpbnNpYyBBUEkgaW4gcmlzY3Yt eHh4LXh4eC1nY2MsIGxpa2UgcmlzY3YteHh4LXh4eC1nKysgZGlkLg0KIA0K SG93ZXZlciwgaXQgYWxtb3N0IGxldmVyYWdlIHRoZSBob29rIFRBUkdFVF9S RVNPTFZFX09WRVJMT0FERURfQlVJTFRJTg0Kd2l0aCBiZWxvdyBzdGVwcy4N CiANCiogUmVnaXN0ZXIgb3ZlcmxvYWRlZCBmdW5jdGlvbnMuDQoqIEFkZCBm dW5jdGlvbl9yZXNvbHZlciBmb3Igb3ZlcmxvYWRlZCBmdW5jdGlvbiByZXNv bHZpbmcuDQoqIEFkZCByZXNvbHZlIEFQSSBmb3IgZnVuY3Rpb24gc2hhcGUg d2l0aCBkZWZhdWx0IGltcGxlbWVudGF0aW9uLg0KKiBJbXBsZW1lbnQgSE9P SyBmb3IgbmF2aWdhdGluZyB0aGUgb3ZlcmxvYWRlZCBBUEkgdG8gbm9uLW92 ZXJsb2FkZWQgQVBJLg0KIA0KV2UgdmFsaWRhdGVkIHRoaXMgZnJhbWV3b3Jr IGJ5IHRoZSB2bXZfdiBpbnRyaW5zaWMgQVBJKHMpLCBhbmQgd2Ugd2lsbA0K YWRkIG1vcmUgaW50cmlucyBBUEkgc3VwcG9ydCBpbiB0aGUgdW5kZXJseWlu ZyBwYXRjaGVzLg0KIA0KZ2NjL0NoYW5nZUxvZzoNCiANCiogY29uZmlnL3Jp c2N2L3Jpc2N2LWMuY2MNCihyaXNjdl9yZXNvbHZlX292ZXJsb2FkZWRfYnVp bHRpbik6IE5ldyBmdW5jdGlvbiBmb3IgdGhlIGhvb2suDQoocmlzY3ZfcmVn aXN0ZXJfcHJhZ21hcyk6IFJlZ2lzdGVyIHRoZSBob29rDQoqIGNvbmZpZy9y aXNjdi9yaXNjdi1wcm90b3MuaCAocmVzb2x2ZV9vdmVybG9hZGVkX2J1aWx0 aW4pOiBOZXcgZGVjbC4NCiogY29uZmlnL3Jpc2N2L3Jpc2N2LXZlY3Rvci1i dWlsdGlucy1zaGFwZXMuY2MgKGJ1aWxkX29uZSk6DQpSZWdpc3RlciBvdmVy bG9hZGVkIGZ1bmN0aW9uLg0KKHN0cnVjdCBvdmVybG9hZGVkX2Jhc2UpOiBO ZXcgc3RydWN0IGZvciBvdmVybG9hZGVkIHNoYXBlLg0KKHN0cnVjdCBub25f b3ZlcmxvYWRlZF9iYXNlKTogTmV3IHN0cnVjdCBmb3Igbm9uIG92ZXJsb2Fk ZWQgc2hhcGUuDQooc3RydWN0IG1vdmVfZGVmKTogSW5oZXJpdCBvdmVybG9h ZGVkIHNoYXBlLg0KKiBjb25maWcvcmlzY3YvcmlzY3YtdmVjdG9yLWJ1aWx0 aW5zLmNjDQooZnVuY3Rpb25faW5zdGFuY2U6OmdldF9ub25fb3ZlcmxvYWRl ZF9pbnN0YW5jZSk6IE5ldyBBUEkgaW1wbC4NCihmdW5jdGlvbl9idWlsZGVy OjphZGRfZnVuY3Rpb24pOiBBZGQgb3ZlcmxvYWRlZCBhcmcuDQooZnVuY3Rp b25fcmVzb2x2ZXI6OmZ1bmN0aW9uX3Jlc29sdmVyKTogTmV3IGNvbnN0cnVj dG9yLg0KKGZ1bmN0aW9uX2J1aWxkZXI6OmFkZF9vdmVybG9hZGVkX2Z1bmN0 aW9uKTogTmV3IEFQSSBpbXBsLg0KKGZ1bmN0aW9uX3Jlc29sdmVyOjpyZXNv bHZlKTogRGl0dG8uDQooZnVuY3Rpb25fcmVzb2x2ZXI6Omxvb2t1cCk6IERp dHRvLg0KKGZ1bmN0aW9uX3Jlc29sdmVyOjpnZXRfc3ViX2NvZGUpOiBEaXR0 by4NCihyZXNvbHZlX292ZXJsb2FkZWRfYnVpbHRpbik6IE5ldyBmdW5jdGlv biBpbXBsLg0KKiBjb25maWcvcmlzY3YvcmlzY3YtdmVjdG9yLWJ1aWx0aW5z Lmg6DQooY2xhc3MgZnVuY3Rpb25fcmVzb2x2ZXIpOiBOZXcgY2xhc3MuDQog DQpnY2MvdGVzdHN1aXRlL0NoYW5nZUxvZzoNCiANCiogZ2NjLnRhcmdldC9y aXNjdi9ydnYvYmFzZS9vdmVybG9hZGVkX3J2MzJfdm12X3YuYzogTmV3IHRl c3QuDQoqIGdjYy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2Uvb3ZlcmxvYWRlZF9y djY0X3Ztdl92LmM6IE5ldyB0ZXN0Lg0KKiBnY2MudGFyZ2V0L3Jpc2N2L3J2 di9iYXNlL292ZXJsb2FkZWRfdm12X3YuaDogTmV3IHRlc3QuDQogDQpTaWdu ZWQtb2ZmLWJ5OiBQYW4gTGkgPHBhbjIubGlAaW50ZWwuY29tPg0KLS0tDQpn Y2MvY29uZmlnL3Jpc2N2L3Jpc2N2LWMuY2MgICAgICAgICAgICAgICAgICAg fCAgMzYgKysrKw0KZ2NjL2NvbmZpZy9yaXNjdi9yaXNjdi1wcm90b3MuaCAg ICAgICAgICAgICAgIHwgICAxICsNCi4uLi9yaXNjdi9yaXNjdi12ZWN0b3It YnVpbHRpbnMtc2hhcGVzLmNjICAgICB8ICAyMCArKy0NCmdjYy9jb25maWcv cmlzY3YvcmlzY3YtdmVjdG9yLWJ1aWx0aW5zLmNjICAgICB8IDE1NSArKysr KysrKysrKysrKysrKy0NCmdjYy9jb25maWcvcmlzY3YvcmlzY3YtdmVjdG9y LWJ1aWx0aW5zLmggICAgICB8ICAzNSArKystDQouLi4vcmlzY3YvcnZ2L2Jh c2Uvb3ZlcmxvYWRlZF9ydjMyX3Ztdl92LmMgICAgfCAgIDggKw0KLi4uL3Jp c2N2L3J2di9iYXNlL292ZXJsb2FkZWRfcnY2NF92bXZfdi5jICAgIHwgICA4 ICsNCi4uLi9yaXNjdi9ydnYvYmFzZS9vdmVybG9hZGVkX3Ztdl92LmggICAg ICAgICB8ICAyNyArKysNCjggZmlsZXMgY2hhbmdlZCwgMjg3IGluc2VydGlv bnMoKyksIDMgZGVsZXRpb25zKC0pDQpjcmVhdGUgbW9kZSAxMDA2NDQgZ2Nj L3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL292ZXJsb2Fk ZWRfcnYzMl92bXZfdi5jDQpjcmVhdGUgbW9kZSAxMDA2NDQgZ2NjL3Rlc3Rz dWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL292ZXJsb2FkZWRfcnY2 NF92bXZfdi5jDQpjcmVhdGUgbW9kZSAxMDA2NDQgZ2NjL3Rlc3RzdWl0ZS9n Y2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL292ZXJsb2FkZWRfdm12X3YuaA0K IA0KZGlmZiAtLWdpdCBhL2djYy9jb25maWcvcmlzY3YvcmlzY3YtYy5jYyBi L2djYy9jb25maWcvcmlzY3YvcmlzY3YtYy5jYw0KaW5kZXggMjgzMDUyYWUz MTMuLjA2MGVkZDMxMjlkIDEwMDY0NA0KLS0tIGEvZ2NjL2NvbmZpZy9yaXNj di9yaXNjdi1jLmNjDQorKysgYi9nY2MvY29uZmlnL3Jpc2N2L3Jpc2N2LWMu Y2MNCkBAIC0yMjAsMTEgKzIyMCw0NyBAQCByaXNjdl9jaGVja19idWlsdGlu X2NhbGwgKGxvY2F0aW9uX3QgbG9jLCB2ZWM8bG9jYXRpb25fdD4gYXJnX2xv YywgdHJlZSBmbmRlY2wsDQogICBnY2NfdW5yZWFjaGFibGUgKCk7DQp9DQor LyogSW1wbGVtZW50IFRBUkdFVF9SRVNPTFZFX09WRVJMT0FERURfQlVJTFRJ Ti4gICovDQorc3RhdGljIHRyZWUNCityaXNjdl9yZXNvbHZlX292ZXJsb2Fk ZWRfYnVpbHRpbiAodW5zaWduZWQgaW50IHVuY2FzdF9sb2NhdGlvbiwgdHJl ZSBmbmRlY2wsDQorICAgdm9pZCAqdW5jYXN0X2FyZ2xpc3QpDQorew0KKyAg dmVjPHRyZWUsIHZhX2djPiBlbXB0eSA9IHt9Ow0KKyAgbG9jYXRpb25fdCBs b2MgPSAobG9jYXRpb25fdCkgdW5jYXN0X2xvY2F0aW9uOw0KKyAgdmVjPHRy ZWUsIHZhX2djPiAqYXJnbGlzdCA9ICh2ZWM8dHJlZSwgdmFfZ2M+ICopIHVu Y2FzdF9hcmdsaXN0Ow0KKyAgdW5zaWduZWQgaW50IGNvZGUgPSBERUNMX01E X0ZVTkNUSU9OX0NPREUgKGZuZGVjbCk7DQorICB1bnNpZ25lZCBpbnQgc3Vi Y29kZSA9IGNvZGUgPj4gUklTQ1ZfQlVJTFRJTl9TSElGVDsNCisgIHRyZWUg bmV3X2ZuZGVjbCA9IE5VTExfVFJFRTsNCisNCisgIGlmICghYXJnbGlzdCkN CisgICAgYXJnbGlzdCA9ICZlbXB0eTsNCisNCisgIHN3aXRjaCAoY29kZSAm IFJJU0NWX0JVSUxUSU5fQ0xBU1MpDQorICAgIHsNCisgICAgY2FzZSBSSVND Vl9CVUlMVElOX0dFTkVSQUw6DQorICAgICAgYnJlYWs7DQorICAgIGNhc2Ug UklTQ1ZfQlVJTFRJTl9WRUNUT1I6DQorICAgICAgbmV3X2ZuZGVjbCA9IHJp c2N2X3ZlY3Rvcjo6cmVzb2x2ZV9vdmVybG9hZGVkX2J1aWx0aW4gKGxvYywg c3ViY29kZSwNCisgICAgICBhcmdsaXN0KTsNCisgICAgICBicmVhazsNCisg ICAgZGVmYXVsdDoNCisgICAgICBnY2NfdW5yZWFjaGFibGUgKCk7DQorICAg IH0NCisNCisgIGlmIChuZXdfZm5kZWNsID09IE5VTExfVFJFRSkNCisgICAg cmV0dXJuIG5ld19mbmRlY2w7DQorDQorICByZXR1cm4gYnVpbGRfZnVuY3Rp b25fY2FsbF92ZWMgKGxvYywgdk5VTEwsIG5ld19mbmRlY2wsIGFyZ2xpc3Qs IE5VTEwsDQorICAgZm5kZWNsKTsNCit9DQorDQovKiBJbXBsZW1lbnQgUkVH SVNURVJfVEFSR0VUX1BSQUdNQVMuICAqLw0Kdm9pZA0KcmlzY3ZfcmVnaXN0 ZXJfcHJhZ21hcyAodm9pZCkNCnsNCisgIHRhcmdldG0ucmVzb2x2ZV9vdmVy bG9hZGVkX2J1aWx0aW4gPSByaXNjdl9yZXNvbHZlX292ZXJsb2FkZWRfYnVp bHRpbjsNCiAgIHRhcmdldG0uY2hlY2tfYnVpbHRpbl9jYWxsID0gcmlzY3Zf Y2hlY2tfYnVpbHRpbl9jYWxsOw0KKw0KICAgY19yZWdpc3Rlcl9wcmFnbWEg KCJyaXNjdiIsICJpbnRyaW5zaWMiLCByaXNjdl9wcmFnbWFfaW50cmluc2lj KTsNCn0NCmRpZmYgLS1naXQgYS9nY2MvY29uZmlnL3Jpc2N2L3Jpc2N2LXBy b3Rvcy5oIGIvZ2NjL2NvbmZpZy9yaXNjdi9yaXNjdi1wcm90b3MuaA0KaW5k ZXggNmRiZjZiOWY5NDMuLjVkMjQ5MmRkMDMxIDEwMDY0NA0KLS0tIGEvZ2Nj L2NvbmZpZy9yaXNjdi9yaXNjdi1wcm90b3MuaA0KKysrIGIvZ2NjL2NvbmZp Zy9yaXNjdi9yaXNjdi1wcm90b3MuaA0KQEAgLTM4MSw2ICszODEsNyBAQCBn aW1wbGUgKmdpbXBsZV9mb2xkX2J1aWx0aW4gKHVuc2lnbmVkIGludCwgZ2lt cGxlX3N0bXRfaXRlcmF0b3IgKiwgZ2NhbGwgKik7DQpydHggZXhwYW5kX2J1 aWx0aW4gKHVuc2lnbmVkIGludCwgdHJlZSwgcnR4KTsNCmJvb2wgY2hlY2tf YnVpbHRpbl9jYWxsIChsb2NhdGlvbl90LCB2ZWM8bG9jYXRpb25fdD4sIHVu c2lnbmVkIGludCwNCiAgIHRyZWUsIHVuc2lnbmVkIGludCwgdHJlZSAqKTsN Cit0cmVlIHJlc29sdmVfb3ZlcmxvYWRlZF9idWlsdGluIChsb2NhdGlvbl90 LCB1bnNpZ25lZCBpbnQsIHZlYzx0cmVlLCB2YV9nYz4gKik7DQpib29sIGNv bnN0X3ZlY19hbGxfc2FtZV9pbl9yYW5nZV9wIChydHgsIEhPU1RfV0lERV9J TlQsIEhPU1RfV0lERV9JTlQpOw0KYm9vbCBsZWdpdGltaXplX21vdmUgKHJ0 eCwgcnR4KTsNCnZvaWQgZW1pdF92bG1heF92c2V0dmwgKG1hY2hpbmVfbW9k ZSwgcnR4KTsNCmRpZmYgLS1naXQgYS9nY2MvY29uZmlnL3Jpc2N2L3Jpc2N2 LXZlY3Rvci1idWlsdGlucy1zaGFwZXMuY2MgYi9nY2MvY29uZmlnL3Jpc2N2 L3Jpc2N2LXZlY3Rvci1idWlsdGlucy1zaGFwZXMuY2MNCmluZGV4IGY4ZmRl Yzg2M2U2Li4xYzFhMmNjOTQ4OCAxMDA2NDQNCi0tLSBhL2djYy9jb25maWcv cmlzY3YvcmlzY3YtdmVjdG9yLWJ1aWx0aW5zLXNoYXBlcy5jYw0KKysrIGIv Z2NjL2NvbmZpZy9yaXNjdi9yaXNjdi12ZWN0b3ItYnVpbHRpbnMtc2hhcGVz LmNjDQpAQCAtNDksNiArNDksOCBAQCBidWlsZF9vbmUgKGZ1bmN0aW9uX2J1 aWxkZXIgJmIsIGNvbnN0IGZ1bmN0aW9uX2dyb3VwX2luZm8gJmdyb3VwLA0K ICAgICBncm91cC5vcHNfaW5mb3MudHlwZXNbdmVjX3R5cGVfaWR4XS5pbmRl eCk7DQogICBiLmFsbG9jYXRlX2FyZ3VtZW50X3R5cGVzIChmdW5jdGlvbl9p bnN0YW5jZSwgYXJndW1lbnRfdHlwZXMpOw0KICAgYi5hcHBseV9wcmVkaWNh dGlvbiAoZnVuY3Rpb25faW5zdGFuY2UsIHJldHVybl90eXBlLCBhcmd1bWVu dF90eXBlcyk7DQorDQorICBiLmFkZF9vdmVybG9hZGVkX2Z1bmN0aW9uIChm dW5jdGlvbl9pbnN0YW5jZSwgKmdyb3VwLnNoYXBlKTsNCiAgIGIuYWRkX3Vu aXF1ZV9mdW5jdGlvbiAoZnVuY3Rpb25faW5zdGFuY2UsICgqZ3JvdXAuc2hh cGUpLCByZXR1cm5fdHlwZSwNCmFyZ3VtZW50X3R5cGVzKTsNCn0NCkBAIC04 Nyw2ICs4OSwyMiBAQCBzdHJ1Y3QgYnVpbGRfYmFzZSA6IHB1YmxpYyBmdW5j dGlvbl9zaGFwZQ0KICAgfQ0KfTsNCitzdHJ1Y3Qgb3ZlcmxvYWRlZF9iYXNl IDogcHVibGljIGJ1aWxkX2Jhc2UNCit7DQorICB0cmVlIHJlc29sdmUgKGZ1 bmN0aW9uX3Jlc29sdmVyICZyKSBjb25zdCBvdmVycmlkZQ0KKyAgew0KKyAg ICByZXR1cm4gci5sb29rdXAgKCk7DQorICB9DQorfTsNCisNCitzdHJ1Y3Qg bm9uX292ZXJsb2FkZWRfYmFzZSA6IHB1YmxpYyBidWlsZF9iYXNlDQorew0K KyAgdHJlZSByZXNvbHZlIChmdW5jdGlvbl9yZXNvbHZlciAmKSBjb25zdCBv dmVycmlkZQ0KKyAgew0KKyAgICBnY2NfdW5yZWFjaGFibGUgKCk7DQorICB9 DQorfTsNCisNCi8qIHZzZXR2bF9kZWYgY2xhc3MuICAqLw0Kc3RydWN0IHZz ZXR2bF9kZWYgOiBwdWJsaWMgYnVpbGRfYmFzZQ0Kew0KQEAgLTUyNSw3ICs1 NDMsNyBAQCBzdHJ1Y3QgbmFycm93X2FsdV9kZWYgOiBwdWJsaWMgYnVpbGRf YmFzZQ0KfTsNCi8qIG1vdmVfZGVmIGNsYXNzLiBIYW5kbGUgdm12LnYudi92 bXYudi54LiAgKi8NCi1zdHJ1Y3QgbW92ZV9kZWYgOiBwdWJsaWMgYnVpbGRf YmFzZQ0KK3N0cnVjdCBtb3ZlX2RlZiA6IHB1YmxpYyBvdmVybG9hZGVkX2Jh c2UNCnsNCiAgIGNoYXIgKmdldF9uYW1lIChmdW5jdGlvbl9idWlsZGVyICZi LCBjb25zdCBmdW5jdGlvbl9pbnN0YW5jZSAmaW5zdGFuY2UsDQogIGJvb2wg b3ZlcmxvYWRlZF9wKSBjb25zdCBvdmVycmlkZQ0KZGlmZiAtLWdpdCBhL2dj Yy9jb25maWcvcmlzY3YvcmlzY3YtdmVjdG9yLWJ1aWx0aW5zLmNjIGIvZ2Nj L2NvbmZpZy9yaXNjdi9yaXNjdi12ZWN0b3ItYnVpbHRpbnMuY2MNCmluZGV4 IDZkOTlmOTcwZWFkLi40MWVjYmI0ODQ2MSAxMDA2NDQNCi0tLSBhL2djYy9j b25maWcvcmlzY3YvcmlzY3YtdmVjdG9yLWJ1aWx0aW5zLmNjDQorKysgYi9n Y2MvY29uZmlnL3Jpc2N2L3Jpc2N2LXZlY3Rvci1idWlsdGlucy5jYw0KQEAg LTgwLDYgKzgwLDEwIEBAIHB1YmxpYzoNCiAgIC8qIFRoZSBkZWNsIGl0c2Vs Zi4gICovDQogICB0cmVlIEdUWSAoKHNraXApKSBkZWNsOw0KKw0KKyAgLyog VHJ1ZSBpZiB0aGUgZGVjbCByZXByZXNlbnRzIGFuIG92ZXJsb2FkZWQgZnVu Y3Rpb24gdGhhdCBuZWVkcyB0byBiZQ0KKyAgICAgcmVzb2x2ZWQgYnkgZnVu Y3Rpb25fcmVzb2x2ZXIuICAqLw0KKyAgYm9vbCBvdmVybG9hZGVkX3A7DQp9 Ow0KLyogSGFzaCB0cmFpdHMgZm9yIHJlZ2lzdGVyZWRfZnVuY3Rpb24uICAq Lw0KQEAgLTMxOTYsNiArMzIwMCw3NyBAQCBmdW5jdGlvbl9pbnN0YW5jZTo6 Y291bGRfdHJhcF9wICgpIGNvbnN0DQogICByZXR1cm4gZmFsc2U7DQp9DQor LyogVHJ5IHRvIGdldCB0aGUgbm9uLW92ZXJsb2FkZWQgZnVuY3Rpb24gaW5z dGFuY2UuDQorICAgQWZ0ZXIgd2UgcmVnaXN0ZXIgdGhlIG92ZXJsb2FkZWQg dGhlIGZ1bmN0aW9ucywgdGhlIHJlZ2lzdGVyZWQgZnVuY3Rpb25zDQorICAg dGFibGUgbWF5IGxvb2sgbGlrZToNCisNCisgICArLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rDQor ICAgfCBpbmRleCAgfCBuYW1lICAgICAgICAgICAgICAgICAgICAgIHwga2lu ZCAgICAgICAgICAgICAgfA0KKyAgICstLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSsNCisgICB8IDEy NDczMyB8IF9fcmlzY3Zfdm12X3YgICAgICAgICAgICAgfCBPdmVybG9hZGVk ICAgICAgICB8IDwtIEhvb2sgZnVuIGNvZGUNCisgICArLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0r DQorICAgfCAxMjQ3MzUgfCBfX3Jpc2N2X3Ztdl92X3ZfaThtZjggICAgIHwg Tm9uLW92ZXJsb2FkZWQgICAgfA0KKyAgICstLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSsNCisgICB8 IDEyNDczNyB8IF9fcmlzY3Zfdm12X3YgICAgICAgICAgICAgfCBQbGFjZWhv bGRlciAgICAgICB8DQorICAgKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKw0KKyAgIHwgMTI0NzM5 IHwgX19yaXNjdl92bXZfdiAgICAgICAgICAgICB8IE92ZXJsb2FkZWQgICAg ICAgIHwNCisgICArLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rDQorICAgfCAxMjQ3NDEgfCBfX3Jp c2N2X3Ztdl92X3ZfaThtZjQgICAgIHwgTm9uLW92ZXJsb2FkZWQgICAgfA0K KyAgICstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tLSsNCisgICB8IDEyNDc0MyB8IF9fcmlzY3Zfdm12 X3YgICAgICAgICAgICAgfCBQbGFjZWhvbGRlciAgICAgICB8DQorICAgKy0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0tKw0KKyAgIHwgMTI0NzQ1IHwgX19yaXNjdl92bXZfdiAgICAg ICAgICAgICB8IE92ZXJsb2FkZWQgICAgICAgIHwNCisgICArLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t LS0rDQorICAgfCAxMjQ3NDcgfCBfX3Jpc2N2X3Ztdl92X3ZfaThtZjIgICAg IHwgTm9uLW92ZXJsb2FkZWQgICAgfA0KKyAgICstLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSsNCisg ICB8IDEyNDc0OSB8IF9fcmlzY3Zfdm12X3YgICAgICAgICAgICAgfCBQbGFj ZWhvbGRlciAgICAgICB8DQorICAgKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKw0KKyAgIHwgMTI0 NzUxIHwgX19yaXNjdl92bXZfdiAgICAgICAgICAgICB8IE92ZXJsb2FkZWQg ICAgICAgIHwNCisgICArLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rDQorICAgfCAxMjQ3NTMgfCBf X3Jpc2N2X3Ztdl92X3ZfaThtMSAgICAgIHwgTm9uLW92ZXJsb2FkZWQgICAg fA0KKyAgICstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0tLSsNCisgICB8IDEyNDc1NSB8IF9fcmlzY3Zf dm12X3YgICAgICAgICAgICAgfCBQbGFjZWhvbGRlciAgICAgICB8DQorICAg Ky0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLS0tKw0KKw0KKyAgIFdoZW4gd2UgcmVzb2x2ZSB0aGUgb3Zl cmxvYWRlZCBBUEkgZnJvbSB0aGUgaG9vaywgd2UgYWx3YXlzIGdldCB0aGUg Zmlyc3QNCisgICBmdW5jdGlvbiBjb2RlIG9mIG9uZSBBUEkgZ3JvdXAgKGFr YSB2bXZfdiBhcyBhYm92ZSB0YWJsZSkuIFdlIHdpbGwgc2VhcmNoDQorICAg c3RhcnQgZnJvbSB0aGF0IGluZGV4IHRvIGZpbmQgdGhlIG9ubHkgb25lIG5v bi1vdmVybG9hZGVkIEFQSSB3aXRoIGV4YWN0bHkNCisgICB0aGUgc2FtZSBh cmdsaXN0LiBPciBOVUxMIGluc3RhbmNlIHdpbGwgYmUgcmV0dXJuZWQuDQor ICovDQorZnVuY3Rpb25faW5zdGFuY2UgKg0KK2Z1bmN0aW9uX2luc3RhbmNl OjpnZXRfbm9uX292ZXJsb2FkZWRfaW5zdGFuY2UgKHVuc2lnbmVkIGludCBj b2RlLA0KKyB2ZWM8dHJlZSwgdmFfZ2M+ICZhcmdsaXN0KSBjb25zdA0KK3sN CisgIHVuc2lnbmVkIGludCBjb2RlX2xpbWl0ID0gdmVjX3NhZmVfbGVuZ3Ro IChyZWdpc3RlcmVkX2Z1bmN0aW9ucyk7DQorDQorICBmb3IgKHVuc2lnbmVk IGZ1bl9jb2RlID0gY29kZTsgZnVuX2NvZGUgPCBjb2RlX2xpbWl0OyBmdW5f Y29kZSsrKQ0KKyAgICB7DQorICAgICAgcmVnaXN0ZXJlZF9mdW5jdGlvbiAq cmZ1biA9ICgqcmVnaXN0ZXJlZF9mdW5jdGlvbnMpW2Z1bl9jb2RlXTsNCisg ICAgICBmdW5jdGlvbl9pbnN0YW5jZSBpbnN0YW5jZSA9IHJmdW4tPmluc3Rh bmNlOw0KKw0KKyAgICAgIGlmIChyZnVuLT5vdmVybG9hZGVkX3ApDQorIGNv bnRpbnVlOw0KKw0KKyAgICAgIHVuc2lnbmVkIGs7DQorICAgICAgY29uc3Qg cnZ2X2FyZ190eXBlX2luZm8gKmFyZ3MgPSBpbnN0YW5jZS5vcF9pbmZvLT5h cmdzOw0KKw0KKyAgICAgIGZvciAoayA9IDA7IGFyZ3Nba10uYmFzZV90eXBl ICE9IE5VTV9CQVNFX1RZUEVTOyBrKyspDQorIHsNCisgICBpZiAoayA+PSBh cmdsaXN0Lmxlbmd0aCAoKSkNCisgICAgIGJyZWFrOw0KKw0KKyAgIGlmIChU WVBFX01PREUgKGluc3RhbmNlLmdldF9hcmdfdHlwZSAoaykpDQorICAgICAh PSBUWVBFX01PREUgKFRSRUVfVFlQRSAoYXJnbGlzdFtrXSkpKQ0KKyAgICAg YnJlYWs7DQorIH0NCisNCisgaWYgKGFyZ3Nba10uYmFzZV90eXBlID09IE5V TV9CQVNFX1RZUEVTKQ0KKyAgIHJldHVybiAmcmZ1bi0+aW5zdGFuY2U7DQor ICAgIH0NCisNCisgIHJldHVybiBOVUxMOw0KK30NCisNCmZ1bmN0aW9uX2J1 aWxkZXI6OmZ1bmN0aW9uX2J1aWxkZXIgKCkNCnsNCiAgIG1fZGlyZWN0X292 ZXJsb2FkcyA9IGxhbmdfR05VX0NYWCAoKTsNCkBAIC0zMzU3LDcgKzM0MzIs OCBAQCBmdW5jdGlvbl9idWlsZGVyOjpnZXRfYXR0cmlidXRlcyAoY29uc3Qg ZnVuY3Rpb25faW5zdGFuY2UgJmluc3RhbmNlKQ0KcmVnaXN0ZXJlZF9mdW5j dGlvbiAmDQpmdW5jdGlvbl9idWlsZGVyOjphZGRfZnVuY3Rpb24gKGNvbnN0 IGZ1bmN0aW9uX2luc3RhbmNlICZpbnN0YW5jZSwNCmNvbnN0IGNoYXIgKm5h bWUsIHRyZWUgZm50eXBlLCB0cmVlIGF0dHJzLA0KLSBib29sIHBsYWNlaG9s ZGVyX3ApDQorIGJvb2wgcGxhY2Vob2xkZXJfcCwNCisgYm9vbCBvdmVybG9h ZGVkX3AgPSBmYWxzZSkNCnsNCiAgIHVuc2lnbmVkIGludCBjb2RlID0gdmVj X3NhZmVfbGVuZ3RoIChyZWdpc3RlcmVkX2Z1bmN0aW9ucyk7DQogICBjb2Rl ID0gKGNvZGUgPDwgUklTQ1ZfQlVJTFRJTl9TSElGVCkgKyBSSVNDVl9CVUlM VElOX1ZFQ1RPUjsNCkBAIC0zMzgzLDYgKzM0NTksNyBAQCBmdW5jdGlvbl9i dWlsZGVyOjphZGRfZnVuY3Rpb24gKGNvbnN0IGZ1bmN0aW9uX2luc3RhbmNl ICZpbnN0YW5jZSwNCiAgIHJlZ2lzdGVyZWRfZnVuY3Rpb24gJnJmbiA9ICpn Z2NfYWxsb2M8cmVnaXN0ZXJlZF9mdW5jdGlvbj4gKCk7DQogICByZm4uaW5z dGFuY2UgPSBpbnN0YW5jZTsNCiAgIHJmbi5kZWNsID0gZGVjbDsNCisgIHJm bi5vdmVybG9hZGVkX3AgPSBvdmVybG9hZGVkX3A7DQogICB2ZWNfc2FmZV9w dXNoIChyZWdpc3RlcmVkX2Z1bmN0aW9ucywgJnJmbik7DQogICByZXR1cm4g cmZuOw0KQEAgLTM0MzIsNiArMzUwOSwyNiBAQCBmdW5jdGlvbl9idWlsZGVy OjphZGRfdW5pcXVlX2Z1bmN0aW9uIChjb25zdCBmdW5jdGlvbl9pbnN0YW5j ZSAmaW5zdGFuY2UsDQogICBvYnN0YWNrX2ZyZWUgKCZtX3N0cmluZ19vYnN0 YWNrLCBuYW1lKTsNCn0NCit2b2lkDQorZnVuY3Rpb25fYnVpbGRlcjo6YWRk X292ZXJsb2FkZWRfZnVuY3Rpb24gKGNvbnN0IGZ1bmN0aW9uX2luc3RhbmNl ICZpbnN0YW5jZSwNCisgICAgY29uc3QgZnVuY3Rpb25fc2hhcGUgKnNoYXBl KQ0KK3sNCisgIGlmICghY2hlY2tfcmVxdWlyZWRfZXh0ZW5zaW9ucyAoaW5z dGFuY2UpKQ0KKyAgICByZXR1cm47DQorDQorICBjaGFyICpuYW1lID0gc2hh cGUtPmdldF9uYW1lICgqdGhpcywgaW5zdGFuY2UsIHRydWUpOw0KKw0KKyAg aWYgKG5hbWUpDQorICAgIHsNCisgICAgICAvKiBUbyBhdm9pZCBBUEkgY29u ZmxpY3RpbmcsIHdlIHVzZSB2b2lkIHJldHVybiB0eXBlIGFuZCB2b2lkIGFy Z3VtZW50DQorIGZvciB0aGUgb3ZlcmxvYWRlZCBmdW5jdGlvbiByZWdpc3Rl ciwgbGlrZSBhYXJjaDY0LXN2ZS4gICovDQorICAgICAgdHJlZSBmbnR5cGUg PSBidWlsZF9mdW5jdGlvbl90eXBlICh2b2lkX3R5cGVfbm9kZSwgdm9pZF9s aXN0X25vZGUpOw0KKyAgICAgIGFkZF9mdW5jdGlvbiAoaW5zdGFuY2UsIG5h bWUsIGZudHlwZSwgTlVMTF9UUkVFLCBtX2RpcmVjdF9vdmVybG9hZHMsDQor ICAgICB0cnVlKTsNCisgICAgICBvYnN0YWNrX2ZyZWUgKCZtX3N0cmluZ19v YnN0YWNrLCBuYW1lKTsNCisgICAgfQ0KK30NCisNCmZ1bmN0aW9uX2NhbGxf aW5mbzo6ZnVuY3Rpb25fY2FsbF9pbmZvIChsb2NhdGlvbl90IGxvY2F0aW9u X2luLA0KY29uc3QgZnVuY3Rpb25faW5zdGFuY2UgJmluc3RhbmNlX2luLA0K dHJlZSBmbmRlY2xfaW4pDQpAQCAtMzg1Miw2ICszOTQ5LDEzIEBAIGZ1bmN0 aW9uX2NoZWNrZXI6OmZ1bmN0aW9uX2NoZWNrZXIgKGxvY2F0aW9uX3QgbG9j YXRpb24sDQogICAgIG1fbmFyZ3MgKG5hcmdzKSwgbV9hcmdzIChhcmdzKQ0K e30NCitmdW5jdGlvbl9yZXNvbHZlcjo6ZnVuY3Rpb25fcmVzb2x2ZXIgKGxv Y2F0aW9uX3QgbG9jYXRpb24sDQorICAgICAgIGNvbnN0IGZ1bmN0aW9uX2lu c3RhbmNlICZpbnN0YW5jZSwNCisgICAgICAgdHJlZSBmbmRlY2wsDQorICAg ICAgIHZlYzx0cmVlLCB2YV9nYz4gJmFyZ2xpc3QpDQorICA6IGZ1bmN0aW9u X2NhbGxfaW5mbyAobG9jYXRpb24sIGluc3RhbmNlLCBmbmRlY2wpLCBtX2Fy Z2xpc3QgKGFyZ2xpc3QpDQore30NCisNCi8qIFJlcG9ydCB0aGF0IExPQ0FU SU9OIGhhcyBhIGNhbGwgdG8gRk5ERUNMIGluIHdoaWNoIGFyZ3VtZW50IEFS R05PDQogICAgd2FzIG5vdCBhbiBpbnRlZ2VyIGNvbnN0YW50IGV4cHJlc3Np b24uICBBUkdOTyBjb3VudHMgZnJvbSB6ZXJvLiAgKi8NCnZvaWQNCkBAIC0z OTY3LDYgKzQwNzEsMzkgQEAgZnVuY3Rpb25fY2hlY2tlcjo6Y2hlY2sgKCkN CiAgIHJldHVybiBzaGFwZS0+Y2hlY2sgKCp0aGlzKTsNCn0NCit1bnNpZ25l ZCBpbnQNCitmdW5jdGlvbl9yZXNvbHZlcjo6Z2V0X3N1Yl9jb2RlICgpDQor ew0KKyAgdW5zaWduZWQgaW50IGZ1bl9jb2RlID0gREVDTF9NRF9GVU5DVElP Tl9DT0RFIChmbmRlY2wpOw0KKw0KKyAgcmV0dXJuIGZ1bl9jb2RlID4+IFJJ U0NWX0JVSUxUSU5fU0hJRlQ7DQorfQ0KKw0KK3RyZWUNCitmdW5jdGlvbl9y ZXNvbHZlcjo6cmVzb2x2ZSAoKQ0KK3sNCisgIHJldHVybiBzaGFwZS0+cmVz b2x2ZSAoKnRoaXMpOw0KK30NCisNCit0cmVlDQorZnVuY3Rpb25fcmVzb2x2 ZXI6Omxvb2t1cCAoKQ0KK3sNCisgIHVuc2lnbmVkIGludCBmdW5fY29kZSA9 IGdldF9zdWJfY29kZSAoKTsNCisgIGZ1bmN0aW9uX2luc3RhbmNlICppbnN0 YW5jZSA9IGdldF9ub25fb3ZlcmxvYWRlZF9pbnN0YW5jZSAoZnVuX2NvZGUs DQorICAgICAgbV9hcmdsaXN0KTsNCisNCisgIGlmICghaW5zdGFuY2UpDQor ICAgIHJldHVybiBOVUxMX1RSRUU7DQorDQorICBoYXNodmFsX3QgaGFzaCA9 IGluc3RhbmNlLT5oYXNoICgpOw0KKyAgcmVnaXN0ZXJlZF9mdW5jdGlvbiAq cmZ1biA9IGZ1bmN0aW9uX3RhYmxlLT5maW5kX3dpdGhfaGFzaCAoKmluc3Rh bmNlLCBoYXNoKTsNCisNCisgIGlmICghcmZ1bikNCisgICAgcmV0dXJuIE5V TExfVFJFRTsNCisNCisgIHJldHVybiByZnVuLT5kZWNsOw0KK30NCisNCmlu bGluZSBoYXNodmFsX3QNCnJlZ2lzdGVyZWRfZnVuY3Rpb25faGFzaGVyOjpo YXNoICh2YWx1ZV90eXBlIHZhbHVlKQ0Kew0KQEAgLTQxOTYsNiArNDMzMywy MiBAQCBjaGVja19idWlsdGluX2NhbGwgKGxvY2F0aW9uX3QgbG9jYXRpb24s IHZlYzxsb2NhdGlvbl90PiwgdW5zaWduZWQgaW50IGNvZGUsDQogICBUUkVF X1RZUEUgKHJmbi5kZWNsKSwgbmFyZ3MsIGFyZ3MpLmNoZWNrICgpOw0KfQ0K K3RyZWUNCityZXNvbHZlX292ZXJsb2FkZWRfYnVpbHRpbiAobG9jYXRpb25f dCBsb2MsIHVuc2lnbmVkIGludCBjb2RlLA0KKyAgICAgdmVjPHRyZWUsIHZh X2djPiAqYXJnbGlzdCkNCit7DQorICBpZiAoY29kZSA+PSB2ZWNfc2FmZV9s ZW5ndGggKHJlZ2lzdGVyZWRfZnVuY3Rpb25zKSkNCisgICAgcmV0dXJuIE5V TExfVFJFRTsNCisNCisgIGNvbnN0IHJlZ2lzdGVyZWRfZnVuY3Rpb24gKnJm dW4gPSAoKnJlZ2lzdGVyZWRfZnVuY3Rpb25zKVtjb2RlXTsNCisNCisgIGlm ICghcmZ1biB8fCAhcmZ1bi0+b3ZlcmxvYWRlZF9wKQ0KKyAgICByZXR1cm4g TlVMTF9UUkVFOw0KKw0KKyAgcmV0dXJuIGZ1bmN0aW9uX3Jlc29sdmVyIChs b2MsIHJmdW4tPmluc3RhbmNlLCByZnVuLT5kZWNsLCAqYXJnbGlzdCkNCisg ICAgLnJlc29sdmUgKCk7DQorfQ0KKw0KZnVuY3Rpb25faW5zdGFuY2UNCmdl dF9yZWFkX3ZsX2luc3RhbmNlICh2b2lkKQ0Kew0KZGlmZiAtLWdpdCBhL2dj Yy9jb25maWcvcmlzY3YvcmlzY3YtdmVjdG9yLWJ1aWx0aW5zLmggYi9nY2Mv Y29uZmlnL3Jpc2N2L3Jpc2N2LXZlY3Rvci1idWlsdGlucy5oDQppbmRleCBl MzU4YThlNGQ5MS4uNWY4ZjdhOTczMTUgMTAwNjQ0DQotLS0gYS9nY2MvY29u ZmlnL3Jpc2N2L3Jpc2N2LXZlY3Rvci1idWlsdGlucy5oDQorKysgYi9nY2Mv Y29uZmlnL3Jpc2N2L3Jpc2N2LXZlY3Rvci1idWlsdGlucy5oDQpAQCAtMjU2 LDYgKzI1NiwxMCBAQCBwdWJsaWM6DQogICB0cmVlIGdldF9yZXR1cm5fdHlw ZSAoKSBjb25zdDsNCiAgIHRyZWUgZ2V0X2FyZ190eXBlICh1bnNpZ25lZCBv cG5vKSBjb25zdDsNCisgIGZ1bmN0aW9uX2luc3RhbmNlICogZ2V0X25vbl9v dmVybG9hZGVkX2luc3RhbmNlICh1bnNpZ25lZCBpbnQsDQorICAgIHZlYzx0 cmVlLCB2YV9nYz4gJmFyZ2xpc3QpDQorICAgIGNvbnN0Ow0KKw0KICAgLyog VGhlIHByb3BlcnRpZXMgb2YgdGhlIGZ1bmN0aW9uLiAgKFRoZSBleHBsaWNp dCAiZW51bSJzIGFyZSByZXF1aXJlZA0KICAgICAgZm9yIGdlbmd0eXBlLikg ICovDQogICBjb25zdCBjaGFyICpiYXNlX25hbWU7DQpAQCAtMjc3LDYgKzI4 MSw4IEBAIHB1YmxpYzoNCiAgIHZvaWQgYXBwbHlfcHJlZGljYXRpb24gKGNv bnN0IGZ1bmN0aW9uX2luc3RhbmNlICYsIHRyZWUsIHZlYzx0cmVlPiAmKSBj b25zdDsNCiAgIHZvaWQgYWRkX3VuaXF1ZV9mdW5jdGlvbiAoY29uc3QgZnVu Y3Rpb25faW5zdGFuY2UgJiwgY29uc3QgZnVuY3Rpb25fc2hhcGUgKiwNCiAg ICB0cmVlLCB2ZWM8dHJlZT4gJik7DQorICB2b2lkIGFkZF9vdmVybG9hZGVk X2Z1bmN0aW9uIChjb25zdCBmdW5jdGlvbl9pbnN0YW5jZSAmLA0KKyBjb25z dCBmdW5jdGlvbl9zaGFwZSAqKTsNCiAgIHZvaWQgcmVnaXN0ZXJfZnVuY3Rp b25fZ3JvdXAgKGNvbnN0IGZ1bmN0aW9uX2dyb3VwX2luZm8gJik7DQogICB2 b2lkIGFwcGVuZF9uYW1lIChjb25zdCBjaGFyICopOw0KICAgdm9pZCBhcHBl bmRfYmFzZV9uYW1lIChjb25zdCBjaGFyICopOw0KQEAgLTI4OCw3ICsyOTQs NyBAQCBwcml2YXRlOg0KICAgdHJlZSBnZXRfYXR0cmlidXRlcyAoY29uc3Qg ZnVuY3Rpb25faW5zdGFuY2UgJik7DQogICByZWdpc3RlcmVkX2Z1bmN0aW9u ICZhZGRfZnVuY3Rpb24gKGNvbnN0IGZ1bmN0aW9uX2luc3RhbmNlICYsIGNv bnN0IGNoYXIgKiwNCi0gICAgICB0cmVlLCB0cmVlLCBib29sKTsNCisgICAg ICB0cmVlLCB0cmVlLCBib29sLCBib29sKTsNCiAgIC8qIFRydWUgaWYgd2Ug c2hvdWxkIGNyZWF0ZSBhIHNlcGFyYXRlIGRlY2wgZm9yIGVhY2ggaW5zdGFu Y2Ugb2YgYW4NCiAgICAgIG92ZXJsb2FkZWQgZnVuY3Rpb24sIGluc3RlYWQg b2YgdXNpbmcgZnVuY3Rpb25fYnVpbGRlci4gICovDQpAQCAtNDYyLDYgKzQ2 OCwyOSBAQCBwcml2YXRlOg0KICAgdHJlZSAqbV9hcmdzOw0KfTsNCisvKiBB IGNsYXNzIGZvciByZXNvbHZpbmcgYW4gb3ZlcmxvYWRlZCBmdW5jdGlvbiBj YWxsLiAgKi8NCitjbGFzcyBmdW5jdGlvbl9yZXNvbHZlciA6IHB1YmxpYyBm dW5jdGlvbl9jYWxsX2luZm8NCit7DQorcHVibGljOg0KKyAgZnVuY3Rpb25f cmVzb2x2ZXIgKGxvY2F0aW9uX3QsIGNvbnN0IGZ1bmN0aW9uX2luc3RhbmNl ICYsIHRyZWUsDQorICAgICAgdmVjPHRyZWUsIHZhX2djPiAmKTsNCisNCisg IC8qIFJlc29sdmUgdGhlIGNvcnJlbGF0ZWQgbm9uLW92ZXJsb2FkZWQgZnVu Y3Rpb24gZnJvbSB0aGUNCisgICAgIHRoZSByZWdpc3RlcmVkX2Z1bmN0aW9u cyB0YWJsZS4gICovDQorICB0cmVlIHJlc29sdmUgKCk7DQorDQorICAvKiBM b29rdXAgdGhlIG5vbi1vdmVybG9hZGVkIGZ1bmN0aW9uIGZyb20gdGhlIHJl Z2lzdGVyZWQNCisgICAgIGZ1bmN0aW9uIHRhYmxlLiAgKi8NCisgIHRyZWUg bG9va3VwICgpOw0KKw0KKyAgLyogUmV0dXJuIHRoZSBzdWIgY29kZSBvZiB0 aGUgZm5kZWNsLiAgKi8NCisgIHVuc2lnbmVkIGludCBnZXRfc3ViX2NvZGUg KCk7DQorDQorcHJpdmF0ZToNCisgIC8qIFRoZSBhcmd1bWVudHMgdG8gdGhl IG92ZXJsb2FkZWQgZnVuY3Rpb24uICAqLw0KKyAgdmVjPHRyZWUsIHZhX2dj PiAmbV9hcmdsaXN0Ow0KK307DQorDQovKiBDbGFzc2lmaWVzIGZ1bmN0aW9u cyBpbnRvICJzaGFwZXMiIGJhc2Ugb246DQogICAgLSBCYXNlIG5hbWUgb2Yg dGhlIGludHJpbnNpYyBmdW5jdGlvbi4NCkBAIC00ODYsNiArNTE1LDEwIEBA IHB1YmxpYzoNCiAgIC8qIENoZWNrIHdoZXRoZXIgdGhlIGdpdmVuIGNhbGwg aXMgc2VtYW50aWNhbGx5IHZhbGlkLiAgUmV0dXJuIHRydWUNCiAgICBpZiBp dCBpcywgb3RoZXJ3aXNlIHJlcG9ydCBhbiBlcnJvciBhbmQgcmV0dXJuIGZh bHNlLiAgKi8NCiAgIHZpcnR1YWwgYm9vbCBjaGVjayAoZnVuY3Rpb25fY2hl Y2tlciAmKSBjb25zdCB7IHJldHVybiB0cnVlOyB9DQorDQorICAvKiBUcnkg dG8gcmVzb2x2ZSB0aGUgb3ZlcmxvYWRlZCBjYWxsLiAgUmV0dXJuIHRoZSBu b24tb3ZlcmxvYWRlZA0KKyAgICAgZnVuY3Rpb24gZGVjbCBvbiBzdWNjZXNz IGFuZCBOVUxMX1RSRUUgb24gZmFpbHVyZS4gICovDQorICB2aXJ0dWFsIHRy ZWUgcmVzb2x2ZSAoZnVuY3Rpb25fcmVzb2x2ZXIgJikgY29uc3QgeyByZXR1 cm4gTlVMTF9UUkVFOyB9Ow0KfTsNCmV4dGVybiBjb25zdCBjaGFyICpjb25z dCBvcGVyYW5kX3N1ZmZpeGVzW05VTV9PUF9UWVBFU107DQpkaWZmIC0tZ2l0 IGEvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL292 ZXJsb2FkZWRfcnYzMl92bXZfdi5jIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFy Z2V0L3Jpc2N2L3J2di9iYXNlL292ZXJsb2FkZWRfcnYzMl92bXZfdi5jDQpu ZXcgZmlsZSBtb2RlIDEwMDY0NA0KaW5kZXggMDAwMDAwMDAwMDAuLjU2MTU0 ZGExNTViDQotLS0gL2Rldi9udWxsDQorKysgYi9nY2MvdGVzdHN1aXRlL2dj Yy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2Uvb3ZlcmxvYWRlZF9ydjMyX3Ztdl92 LmMNCkBAIC0wLDAgKzEsOCBAQA0KKy8qIHsgZGctZG8gY29tcGlsZSB9ICov DQorLyogeyBkZy1vcHRpb25zICItbWFyY2g9cnYzMmdjdl96dmZoIC1tYWJp PWlscDMyIC1PMyAtV25vLXBzYWJpIiB9ICovDQorDQorI2luY2x1ZGUgIm92 ZXJsb2FkZWRfdm12X3YuaCINCisNCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1h c3NlbWJsZXItdGltZXMge3ZzZXR2bGlccyt6ZXJvLFxzKltheF1bMC05XSss XHMqZTMyLFxzKm0xLFxzKnRhLFxzKm1hfSAyIH0gfSAqLw0KKy8qIHsgZGct ZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7dnNldHZsaVxzK3plcm8s XHMqW2F4XVswLTldKyxccyplMTYsXHMqbTEsXHMqdGEsXHMqbWF9IDIgfSB9 ICovDQorLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHt2 c2V0dmxpXHMremVybyxccypbYXhdWzAtOV0rLFxzKmU4LFxzKm00LFxzKnR1 LFxzKm1hfSAyIH0gfSAqLw0KZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUv Z2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9vdmVybG9hZGVkX3J2NjRfdm12 X3YuYyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFz ZS9vdmVybG9hZGVkX3J2NjRfdm12X3YuYw0KbmV3IGZpbGUgbW9kZSAxMDA2 NDQNCmluZGV4IDAwMDAwMDAwMDAwLi5mNGE2M2M5NTg1ZA0KLS0tIC9kZXYv bnVsbA0KKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2 di9iYXNlL292ZXJsb2FkZWRfcnY2NF92bXZfdi5jDQpAQCAtMCwwICsxLDgg QEANCisvKiB7IGRnLWRvIGNvbXBpbGUgfSAqLw0KKy8qIHsgZGctb3B0aW9u cyAiLW1hcmNoPXJ2NjRnY3ZfenZmaCAtbWFiaT1scDY0IC1PMyAtV25vLXBz YWJpIiB9ICovDQorDQorI2luY2x1ZGUgIm92ZXJsb2FkZWRfdm12X3YuaCIN CisNCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge3Zz ZXR2bGlccyt6ZXJvLFxzKltheF1bMC05XSssXHMqZTMyLFxzKm0xLFxzKnRh LFxzKm1hfSAyIH0gfSAqLw0KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2Vt Ymxlci10aW1lcyB7dnNldHZsaVxzK3plcm8sXHMqW2F4XVswLTldKyxccypl MTYsXHMqbTEsXHMqdGEsXHMqbWF9IDIgfSB9ICovDQorLyogeyBkZy1maW5h bCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHt2c2V0dmxpXHMremVybyxccypb YXhdWzAtOV0rLFxzKmU4LFxzKm00LFxzKnR1LFxzKm1hfSAyIH0gfSAqLw0K ZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9y dnYvYmFzZS9vdmVybG9hZGVkX3Ztdl92LmggYi9nY2MvdGVzdHN1aXRlL2dj Yy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2Uvb3ZlcmxvYWRlZF92bXZfdi5oDQpu ZXcgZmlsZSBtb2RlIDEwMDY0NA0KaW5kZXggMDAwMDAwMDAwMDAuLjg3NTZj NWUxN2I3DQotLS0gL2Rldi9udWxsDQorKysgYi9nY2MvdGVzdHN1aXRlL2dj Yy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2Uvb3ZlcmxvYWRlZF92bXZfdi5oDQpA QCAtMCwwICsxLDI3IEBADQorI2luY2x1ZGUgInJpc2N2X3ZlY3Rvci5oIg0K Kw0KK3ZpbnQzMm0xX3QgdGVzdF92bXZfb3ZlcmxvYWRlZF8wICh2aW50MzJt MV90IHNyYywgc2l6ZV90IHZsKSB7DQorICByZXR1cm4gX19yaXNjdl92bXZf diAoc3JjLCB2bCk7DQorfQ0KKw0KK3ZmbG9hdDE2bTFfdCB0ZXN0X3Ztdl9v dmVybG9hZGVkXzEgKHZmbG9hdDE2bTFfdCBzcmMsIHNpemVfdCB2bCkgew0K KyAgcmV0dXJuIF9fcmlzY3Zfdm12X3YgKHNyYywgdmwpOw0KK30NCisNCit2 aW50OG00X3QgdGVzdF92bXZfb3ZlcmxvYWRlZF8yICh2aW50OG00X3QgbWFz a2Vkb2ZmLCB2aW50OG00X3Qgc3JjLA0KKyBzaXplX3QgdmwpIHsNCisgIHJl dHVybiBfX3Jpc2N2X3Ztdl92X3R1IChtYXNrZWRvZmYsIHNyYywgdmwpOw0K K30NCisNCit2aW50MzJtMV90IHRlc3Rfdm12X25vbl9vdmVybG9hZGVkXzAg KHZpbnQzMm0xX3Qgc3JjLCBzaXplX3QgdmwpIHsNCisgIHJldHVybiBfX3Jp c2N2X3Ztdl92X3ZfaTMybTEgKHNyYywgdmwpOw0KK30NCisNCit2ZmxvYXQx Nm0xX3QgdGVzdF92bXZfbm9uX292ZXJsb2FkZWRfMSAodmZsb2F0MTZtMV90 IHNyYywgc2l6ZV90IHZsKSB7DQorICByZXR1cm4gX19yaXNjdl92bXZfdl92 X2YxNm0xIChzcmMsIHZsKTsNCit9DQorDQordmludDhtNF90IHRlc3Rfdm12 X25vbl9vdmVybG9hZGVkXzIgKHZpbnQ4bTRfdCBtYXNrZWRvZmYsIHZpbnQ4 bTRfdCBzcmMsDQorICAgICAgc2l6ZV90IHZsKSB7DQorICByZXR1cm4gX19y aXNjdl92bXZfdl92X2k4bTRfdHUgKG1hc2tlZG9mZiwgc3JjLCB2bCk7DQor fQ0KLS0gDQoyLjM0LjENCiANCiANCg== ------=_001_NextPart824684673868_=------