From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from sender4-pp-o91.zoho.com (sender4-pp-o91.zoho.com [136.143.188.91]) by sourceware.org (Postfix) with ESMTPS id 189D53858D3C; Tue, 18 Jan 2022 00:30:39 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 189D53858D3C ARC-Seal: i=1; a=rsa-sha256; t=1642465836; cv=none; d=zohomail.com; s=zohoarc; b=GtL5bqrtIuefOi1vqzd6bdzOZ6Q9pw+iW82uT/utXm9gCvEKPr9S9em5a//lf2nCAZC3pP0kSFVShY++R5GGiSenfDVXdotbuWHWFqc23OouD3t22/sr0zDi7F7uYsrSp/Y29eeU8xK+IN09BX+opfAER5M8fJQlxcL/8lQzaO8= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1642465836; h=Content-Type:Date:From:In-Reply-To:MIME-Version:Message-ID:References:Subject:To; bh=fIZZL4pytzLDYkOl0onzsW/IxHAwDnuL0X+6dR21M34=; b=J8D4Rlv28YBxuKoZ0AIC++TQl3YecmZtelTp72fBKRm0tAh8s6QaHUu/ByAV2Y7+fItI1kuKJF9DR17mLaHsljb3X8hqYw7dEdYWovxMRpofi0mefPLCqOPA5U8H0UimcYwUVjoTZzaUqu0BX3qT+zhpQ02BIFPUMKZCqxPqQvk= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass header.i=zoho.com; spf=pass smtp.mailfrom=bouanto@zoho.com; dmarc=pass header.from= Received: from [192.168.1.174] (38.87.11.6 [38.87.11.6]) by mx.zohomail.com with SMTPS id 1642465834014184.6259895425328; Mon, 17 Jan 2022 16:30:34 -0800 (PST) Message-ID: <19fe391c6c77e0e38acdcaf7e864651849913d46.camel@zoho.com> Subject: Re: [PATCH] libgccjit: Add support for bitcasts [PR104071] From: Antoni Boucher To: gcc-patches@gcc.gnu.org, jit@gcc.gnu.org Date: Mon, 17 Jan 2022 19:30:32 -0500 In-Reply-To: <13bdd05cfd7006a332ec785ab371356f0354db4d.camel@zoho.com> References: <13bdd05cfd7006a332ec785ab371356f0354db4d.camel@zoho.com> Content-Type: multipart/mixed; boundary="=-WHzc0sO1zE3oMNPCFqlS" User-Agent: Evolution 3.42.3 MIME-Version: 1.0 X-Zoho-Virus-Status: 1 X-ZohoMailClient: External X-Spam-Status: No, score=-11.9 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, FREEMAIL_FROM, GIT_PATCH_0, RCVD_IN_DNSWL_NONE, SPF_HELO_NONE, SPF_PASS, TXREP autolearn=ham autolearn_force=no version=3.4.4 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on server2.sourceware.org X-BeenThere: jit@gcc.gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Jit mailing list List-Unsubscribe: , List-Archive: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 18 Jan 2022 00:30:41 -0000 --=-WHzc0sO1zE3oMNPCFqlS Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable I was missing the define, so I added it. Here's the new patch with it. Le lundi 17 janvier 2022 =C3=A0 17:18 -0500, Antoni Boucher via Jit a =C3=A9crit=C2=A0: > Hi. > This patch add support for bitcasts in libgccjit. >=20 > It passes the JIT tests, but since I added a function in tree.c, I > wonder if I should run the whole testsuite. >=20 > David, you can now disregard my question in my email about 128-bit > integers regarding my issue with initialize_sizetypes being called > multiple times because this patch fix this issue. > I turns out there was a cache of types that needed to be cleared when > you initialize the JIT. >=20 > The check for sizes is pending, because it requires the updates to > get_size I made in my patch for 128-bit integers. >=20 > Thanks for the review! --=-WHzc0sO1zE3oMNPCFqlS Content-Disposition: attachment; filename="0001-libgccjit-Add-support-for-bitcasts-PR104071.patch" Content-Transfer-Encoding: base64 Content-Type: text/x-patch; name="0001-libgccjit-Add-support-for-bitcasts-PR104071.patch"; charset="UTF-8" RnJvbSA4NDU3Zjc5MWIwOGZlYjAzNzJhNzZkNmEwNzZjYzk3NmI1OWU4ZTI0IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBBbnRvbmkgQm91Y2hlciA8Ym91YW50b0B6b2hvLmNvbT4KRGF0 ZTogV2VkLCA5IEp1biAyMDIxIDE4OjI5OjE0IC0wNDAwClN1YmplY3Q6IFtQQVRDSF0gbGliZ2Nj aml0OiBBZGQgc3VwcG9ydCBmb3IgYml0Y2FzdHMgW1BSMTA0MDcxXQoKMjAyMi0wMS0xNyAgQW50 b25pIEJvdWNoZXIgPGJvdWFudG9Aem9oby5jb20+CgpnY2Mvaml0LwoJUFIgdGFyZ2V0LzEwNDA3 MQoJKiBkb2NzL3RvcGljcy9jb21wYXRpYmlsaXR5LnJzdCAoTElCR0NDSklUX0FCSV8yMCk6IE5l dyBBQkkgdGFnLgoJKiBkb2NzL3RvcGljcy9leHByZXNzaW9ucy5yc3Q6IEFkZCBkb2N1bWVudGF0 aW9uIGZvciB0aGUKCWZ1bmN0aW9uIGdjY19qaXRfY29udGV4dF9uZXdfYml0Y2FzdC4KCSogZHVt bXktZnJvbnRlbmQuYzogY2xlYXIgdGhlIGNhY2hlIG9mIG5vbi1zdGFuZGFyZCBpbnRlZ2VyCgl0 eXBlcyB0byBhdm9pZCBoYXZpbmcgaXNzdWVzIHdpdGggc29tZSBvcHRpbWl6YXRpb25zIG9mCgli aXRjYXN0IHdoZXJlIHRoZSBTU0FfTkFNRSB3aWxsIGhhdmUgYSBzaXplIG9mIGEgY2FjaGVkCglp bnRlZ2VyIHR5cGUgdGhhdCBzaG91bGQgaGF2ZSBiZWVuIGludmFsaWRhdGVkLCBjYXVzaW5nIGEK CWNvbXBhcmlzb24gb2YgaW50ZWdlciBjb25zdGFudCB0byBmYWlsLgoJKiBqaXQtcGxheWJhY2su YzogTmV3IGZ1bmN0aW9uIChuZXdfYml0Y2FzdCkuCgkqIGppdC1wbGF5YmFjay5oOiBOZXcgZnVu Y3Rpb24gKG5ld19iaXRjYXN0KS4KCSogaml0LXJlY29yZGluZy5jOiBOZXcgZnVuY3Rpb25zIChu ZXdfYml0Y2FzdCwKCWJpdGNhc3Q6OnJlcGxheV9pbnRvLCBiaXRjYXN0Ojp2aXNpdF9jaGlsZHJl biwKCWJpdGNhc3Q6Om1ha2VfZGVidWdfc3RyaW5nLCBiaXRjYXN0Ojp3cml0ZV9yZXByb2R1Y2Vy KS4KCSogaml0LXJlY29yZGluZy5oOiBOZXcgY2Fsc3MgKGJpdGNhc3QpIGFuZCBuZXcgZnVuY3Rp b24KCShuZXdfYml0Y2FzdCwgYml0Y2FzdDo6cmVwbGF5X2ludG8sIGJpdGNhc3Q6OnZpc2l0X2No aWxkcmVuLAoJYml0Y2FzdDo6bWFrZV9kZWJ1Z19zdHJpbmcsIGJpdGNhc3Q6OndyaXRlX3JlcHJv ZHVjZXIsCgliaXRjYXN0OjpnZXRfcHJlY2VkZW5jZSkuCgkqIGxpYmdjY2ppdC5jOiBOZXcgZnVu Y3Rpb24gKGdjY19qaXRfY29udGV4dF9uZXdfYml0Y2FzdCkKCSogbGliZ2Njaml0Lmg6IE5ldyBm dW5jdGlvbiAoZ2NjX2ppdF9jb250ZXh0X25ld19iaXRjYXN0KQoJKiBsaWJnY2NqaXQubWFwIChM SUJHQ0NKSVRfQUJJXzIwKTogTmV3IEFCSSB0YWcuCgpnY2MvdGVzdHN1aXRlLwoJUFIgdGFyZ2V0 LzEwNDA3MQoJKiBqaXQuZGcvYWxsLW5vbi1mYWlsaW5nLXRlc3RzLmg6IEFkZCBuZXcgdGVzdC1i aXRjYXN0LgoJKiBqaXQuZGcvdGVzdC1iaXRjYXN0LmM6IE5ldyB0ZXN0LgoKZ2NjLwoJUFIgdGFy Z2V0LzEwNDA3MQoJKiB0cmVlLmM6IE5ldyBmdW5jdGlvbiAoY2xlYXJfbm9uc3RhbmRhcmRfaW50 ZWdlcl90eXBlX2NhY2hlKS4KCSogdHJlZS5oOiBOZXcgZnVuY3Rpb24gKGNsZWFyX25vbnN0YW5k YXJkX2ludGVnZXJfdHlwZV9jYWNoZSkuCi0tLQogZ2NjL2ppdC9kb2NzL3RvcGljcy9jb21wYXRp YmlsaXR5LnJzdCAgICAgICAgfCAgOSArKysKIGdjYy9qaXQvZG9jcy90b3BpY3MvZXhwcmVzc2lv bnMucnN0ICAgICAgICAgIHwgMTcgKysrKysKIGdjYy9qaXQvZHVtbXktZnJvbnRlbmQuYyAgICAg ICAgICAgICAgICAgICAgIHwgIDIgKwogZ2NjL2ppdC9qaXQtcGxheWJhY2suYyAgICAgICAgICAg ICAgICAgICAgICAgfCAxMyArKysrCiBnY2Mvaml0L2ppdC1wbGF5YmFjay5oICAgICAgICAgICAg ICAgICAgICAgICB8ICA1ICsrCiBnY2Mvaml0L2ppdC1yZWNvcmRpbmcuYyAgICAgICAgICAgICAg ICAgICAgICB8IDY2ICsrKysrKysrKysrKysrKysrKysrCiBnY2Mvaml0L2ppdC1yZWNvcmRpbmcu aCAgICAgICAgICAgICAgICAgICAgICB8IDMyICsrKysrKysrKysKIGdjYy9qaXQvbGliZ2Njaml0 LmMgICAgICAgICAgICAgICAgICAgICAgICAgIHwgMjggKysrKysrKysrCiBnY2Mvaml0L2xpYmdj Y2ppdC5oICAgICAgICAgICAgICAgICAgICAgICAgICB8IDE1ICsrKysrCiBnY2Mvaml0L2xpYmdj Y2ppdC5tYXAgICAgICAgICAgICAgICAgICAgICAgICB8ICA2ICsrCiBnY2MvdGVzdHN1aXRlL2pp dC5kZy9hbGwtbm9uLWZhaWxpbmctdGVzdHMuaCB8IDEwICsrKwogZ2NjL3Rlc3RzdWl0ZS9qaXQu ZGcvdGVzdC1iaXRjYXN0LmMgICAgICAgICAgfCA2MCArKysrKysrKysrKysrKysrKysKIGdjYy90 cmVlLmMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDggKysrCiBnY2MvdHJl ZS5oICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAxICsKIDE0IGZpbGVzIGNo YW5nZWQsIDI3MiBpbnNlcnRpb25zKCspCiBjcmVhdGUgbW9kZSAxMDA2NDQgZ2NjL3Rlc3RzdWl0 ZS9qaXQuZGcvdGVzdC1iaXRjYXN0LmMKCmRpZmYgLS1naXQgYS9nY2Mvaml0L2RvY3MvdG9waWNz L2NvbXBhdGliaWxpdHkucnN0IGIvZ2NjL2ppdC9kb2NzL3RvcGljcy9jb21wYXRpYmlsaXR5LnJz dAppbmRleCAxNmNlYmUzMWExMC4uYjVhNmI3MDRkZGEgMTAwNjQ0Ci0tLSBhL2djYy9qaXQvZG9j cy90b3BpY3MvY29tcGF0aWJpbGl0eS5yc3QKKysrIGIvZ2NjL2ppdC9kb2NzL3RvcGljcy9jb21w YXRpYmlsaXR5LnJzdApAQCAtMzAyLDMgKzMwMiwxMiBAQCB0aHJlYWQtbG9jYWwgc3RvcmFnZSBt b2RlbCBvZiBhIHZhcmlhYmxlOgogc2VjdGlvbiBvZiBhIHZhcmlhYmxlOgogCiAgICogOmZ1bmM6 YGdjY19qaXRfbHZhbHVlX3NldF9saW5rX3NlY3Rpb25gCisKKy4uIF9MSUJHQ0NKSVRfQUJJXzIw OgorCitgYExJQkdDQ0pJVF9BQklfMjBgYAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK2BgTElC R0NDSklUX0FCSV8yMGBgIGNvdmVycyB0aGUgYWRkaXRpb24gb2YgYW4gQVBJIGVudHJ5cG9pbnQg dG8gYml0Y2FzdCBhCit2YWx1ZSBmcm9tIG9uZSB0eXBlIHRvIGFub3RoZXI6CisKKyAgKiA6ZnVu YzpgZ2NjX2ppdF9jb250ZXh0X25ld19iaXRjYXN0YApkaWZmIC0tZ2l0IGEvZ2NjL2ppdC9kb2Nz L3RvcGljcy9leHByZXNzaW9ucy5yc3QgYi9nY2Mvaml0L2RvY3MvdG9waWNzL2V4cHJlc3Npb25z LnJzdAppbmRleCA3OTFhMjAzOThjYS4uMTMyOGE1M2Y3MGYgMTAwNjQ0Ci0tLSBhL2djYy9qaXQv ZG9jcy90b3BpY3MvZXhwcmVzc2lvbnMucnN0CisrKyBiL2djYy9qaXQvZG9jcy90b3BpY3MvZXhw cmVzc2lvbnMucnN0CkBAIC02NDksNiArNjQ5LDIzIEBAIFR5cGUtY29lcmNpb24KICAgICAgKiBp bnQgPC0+IGJvb2wKICAgICAgKiBQKiAgPC0+IFEqLCBmb3IgcG9pbnRlciB0eXBlcyBQIGFuZCBR CiAKKy4uIGZ1bmN0aW9uOjogZ2NjX2ppdF9ydmFsdWUgKlwKKyAgICAgICAgICAgICAgZ2NjX2pp dF9jb250ZXh0X25ld19iaXRjYXN0IChnY2Nfaml0X2NvbnRleHQgKmN0eHQsXAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdjY19qaXRfbG9jYXRpb24gKmxvYyxc CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2NjX2ppdF9ydmFs dWUgKnJ2YWx1ZSxcCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Z2NjX2ppdF90eXBlICp0eXBlKQorCisgICBHaXZlbiBhbiBydmFsdWUgb2YgVCwgYml0Y2FzdCBp dCB0byBhbm90aGVyIHR5cGUuCisKKyAgIFRoZSB0eXBlIG9mIHJ2YWx1ZSBtdXN0IGJlIHRoZSBz YW1lIHNpemUgYXMgdGhlIHNpemUgb2YgYGB0eXBlYGAuCisKKyAgIFRoaXMgZW50cnlwb2ludCB3 YXMgYWRkZWQgaW4gOnJlZjpgTElCR0NDSklUX0FCSV8yMGA7IHlvdSBjYW4gdGVzdCBmb3IKKyAg IGl0cyBwcmVzZW5jZSB1c2luZworCisgICAuLiBjb2RlLWJsb2NrOjogYworCisgICAgICAjaWZk ZWYgTElCR0NDSklUX0hBVkVfZ2NjX2ppdF9jb250ZXh0X25ld19iaXRjYXN0CisKIEx2YWx1ZXMK IC0tLS0tLS0KIApkaWZmIC0tZ2l0IGEvZ2NjL2ppdC9kdW1teS1mcm9udGVuZC5jIGIvZ2NjL2pp dC9kdW1teS1mcm9udGVuZC5jCmluZGV4IDg0ZmYzNTliZmUzLi5jM2RhOTc2NDJlMyAxMDA2NDQK LS0tIGEvZ2NjL2ppdC9kdW1teS1mcm9udGVuZC5jCisrKyBiL2djYy9qaXQvZHVtbXktZnJvbnRl bmQuYwpAQCAtNTkyLDYgKzU5Miw4IEBAIGppdF9sYW5naG9va19pbml0ICh2b2lkKQogICBnbG9i YWxfZGMtPmJlZ2luX2RpYWdub3N0aWMgPSBqaXRfYmVnaW5fZGlhZ25vc3RpYzsKICAgZ2xvYmFs X2RjLT5lbmRfZGlhZ25vc3RpYyA9IGppdF9lbmRfZGlhZ25vc3RpYzsKIAorICBjbGVhcl9ub25z dGFuZGFyZF9pbnRlZ2VyX3R5cGVfY2FjaGUgKCk7CisKICAgYnVpbGRfY29tbW9uX3RyZWVfbm9k ZXMgKGZhbHNlKTsKIAogICAvKiBJIGRvbid0IGtub3cgd2h5IHRoaXMgaGFzIHRvIGJlIGRvbmUg ZXhwbGljaXRseS4gICovCmRpZmYgLS1naXQgYS9nY2Mvaml0L2ppdC1wbGF5YmFjay5jIGIvZ2Nj L2ppdC9qaXQtcGxheWJhY2suYwppbmRleCAxZDY0Y2FmNGUyMC4uNGFkMmY2Y2U0MWQgMTAwNjQ0 Ci0tLSBhL2djYy9qaXQvaml0LXBsYXliYWNrLmMKKysrIGIvZ2NjL2ppdC9qaXQtcGxheWJhY2su YwpAQCAtMTM5MCw2ICsxMzkwLDE5IEBAIG5ld19jYXN0IChwbGF5YmFjazo6bG9jYXRpb24gKmxv YywKICAgcmV0dXJuIG5ldyBydmFsdWUgKHRoaXMsIHRfY2FzdCk7CiB9CiAKK3BsYXliYWNrOjpy dmFsdWUgKgorcGxheWJhY2s6OmNvbnRleHQ6OgorbmV3X2JpdGNhc3QgKGxvY2F0aW9uICpsb2Ms CisJCSAgICAgICBydmFsdWUgKmV4cHIsCisJCSAgICAgICB0eXBlICp0eXBlXykKK3sKKyAgdHJl ZSB0X2JpdGNhc3QgPSBidWlsZDEgKFZJRVdfQ09OVkVSVF9FWFBSLAorCQkJICAgICAgIHR5cGVf LT5hc190cmVlICgpLCBleHByLT5hc190cmVlICgpKTsKKyAgaWYgKGxvYykKKyAgICBzZXRfdHJl ZV9sb2NhdGlvbiAodF9iaXRjYXN0LCBsb2MpOworICByZXR1cm4gbmV3IHJ2YWx1ZSAodGhpcywg dF9iaXRjYXN0KTsKK30KKwogLyogQ29uc3RydWN0IGEgcGxheWJhY2s6Omx2YWx1ZSBpbnN0YW5j ZSAod3JhcHBpbmcgYSB0cmVlKSBmb3IgYW4KICAgIGFycmF5IGFjY2Vzcy4gICovCiAKZGlmZiAt LWdpdCBhL2djYy9qaXQvaml0LXBsYXliYWNrLmggYi9nY2Mvaml0L2ppdC1wbGF5YmFjay5oCmlu ZGV4IGM5M2Q3MDU1ZDQzLi41YjEwN2JlOWQ2OSAxMDA2NDQKLS0tIGEvZ2NjL2ppdC9qaXQtcGxh eWJhY2suaAorKysgYi9nY2Mvaml0L2ppdC1wbGF5YmFjay5oCkBAIC0xODAsNiArMTgwLDExIEBA IHB1YmxpYzoKIAkgICAgcnZhbHVlICpleHByLAogCSAgICB0eXBlICp0eXBlXyk7CiAKKyAgcnZh bHVlICoKKyAgbmV3X2JpdGNhc3QgKGxvY2F0aW9uICpsb2MsCisJICAgICAgIHJ2YWx1ZSAqZXhw ciwKKwkgICAgICAgdHlwZSAqdHlwZV8pOworCiAgIGx2YWx1ZSAqCiAgIG5ld19hcnJheV9hY2Nl c3MgKGxvY2F0aW9uICpsb2MsCiAJCSAgICBydmFsdWUgKnB0ciwKZGlmZiAtLWdpdCBhL2djYy9q aXQvaml0LXJlY29yZGluZy5jIGIvZ2NjL2ppdC9qaXQtcmVjb3JkaW5nLmMKaW5kZXggZWU4OTM0 MTMxZDEuLmFlMzM4MWI1ODZkIDEwMDY0NAotLS0gYS9nY2Mvaml0L2ppdC1yZWNvcmRpbmcuYwor KysgYi9nY2Mvaml0L2ppdC1yZWNvcmRpbmcuYwpAQCAtMTI0Miw2ICsxMjQyLDIyIEBAIHJlY29y ZGluZzo6Y29udGV4dDo6bmV3X2Nhc3QgKHJlY29yZGluZzo6bG9jYXRpb24gKmxvYywKICAgcmV0 dXJuIHJlc3VsdDsKIH0KIAorLyogQ3JlYXRlIGEgcmVjb3JkaW5nOjpiaXRjYXN0IGluc3RhbmNl IGFuZCBhZGQgaXQgdG8gdGhpcyBjb250ZXh0J3MgbGlzdAorICAgb2YgbWVtZW50b3MuCisKKyAg IEltcGxlbWVudHMgdGhlIHBvc3QtZXJyb3ItY2hlY2tpbmcgcGFydCBvZgorICAgZ2NjX2ppdF9j b250ZXh0X25ld19iaXRjYXN0LiAgKi8KKworcmVjb3JkaW5nOjpydmFsdWUgKgorcmVjb3JkaW5n Ojpjb250ZXh0OjpuZXdfYml0Y2FzdCAobG9jYXRpb24gKmxvYywKKwkJCQkgcnZhbHVlICpleHBy LAorCQkJCSB0eXBlICp0eXBlXykKK3sKKyAgcmVjb3JkaW5nOjpydmFsdWUgKnJlc3VsdCA9IG5l dyBiaXRjYXN0ICh0aGlzLCBsb2MsIGV4cHIsIHR5cGVfKTsKKyAgcmVjb3JkIChyZXN1bHQpOwor ICByZXR1cm4gcmVzdWx0OworfQorCiAvKiBDcmVhdGUgYSByZWNvcmRpbmc6OmNhbGwgaW5zdGFu Y2UgYW5kIGFkZCBpdCB0byB0aGlzIGNvbnRleHQncyBsaXN0CiAgICBvZiBtZW1lbnRvcy4KIApA QCAtNTc0MCw2ICs1NzU2LDU2IEBAIHJlY29yZGluZzo6Y2FzdDo6d3JpdGVfcmVwcm9kdWNlciAo cmVwcm9kdWNlciAmcikKIAkgICByLmdldF9pZGVudGlmaWVyX2FzX3R5cGUgKGdldF90eXBlICgp KSk7CiB9CiAKKy8qIEltcGxlbWVudGF0aW9uIG9mIHB1cmUgdmlydHVhbCBob29rIHJlY29yZGlu Zzo6bWVtZW50bzo6cmVwbGF5X2ludG8KKyAgIGZvciByZWNvcmRpbmc6OmJpdGNhc3QuICAqLwor Cit2b2lkCityZWNvcmRpbmc6OmJpdGNhc3Q6OnJlcGxheV9pbnRvIChyZXBsYXllciAqcikKK3sK KyAgc2V0X3BsYXliYWNrX29iaiAoci0+bmV3X2JpdGNhc3QgKHBsYXliYWNrX2xvY2F0aW9uIChy LCBtX2xvYyksCisJCQkJICAgIG1fcnZhbHVlLT5wbGF5YmFja19ydmFsdWUgKCksCisJCQkJICAg IGdldF90eXBlICgpLT5wbGF5YmFja190eXBlICgpKSk7Cit9CisKKy8qIEltcGxlbWVudGF0aW9u IG9mIHB1cmUgdmlydHVhbCBob29rIHJlY29yZGluZzo6cnZhbHVlOjp2aXNpdF9jaGlsZHJlbgor ICAgZm9yIHJlY29yZGluZzo6Yml0Y2FzdC4gICovCit2b2lkCityZWNvcmRpbmc6OmJpdGNhc3Q6 OnZpc2l0X2NoaWxkcmVuIChydmFsdWVfdmlzaXRvciAqdikKK3sKKyAgdi0+dmlzaXQgKG1fcnZh bHVlKTsKK30KKworLyogSW1wbGVtZW50YXRpb24gb2YgcmVjb3JkaW5nOjptZW1lbnRvOjptYWtl X2RlYnVnX3N0cmluZyBmb3IKKyAgIGNhc3RzLiAgKi8KKworcmVjb3JkaW5nOjpzdHJpbmcgKgor cmVjb3JkaW5nOjpiaXRjYXN0OjptYWtlX2RlYnVnX3N0cmluZyAoKQoreworICBlbnVtIHByZWNl ZGVuY2UgcHJlYyA9IGdldF9wcmVjZWRlbmNlICgpOworICByZXR1cm4gc3RyaW5nOjpmcm9tX3By aW50ZiAobV9jdHh0LAorCQkJICAgICAgImJpdGNhc3QoJXMsICVzKSIsCisJCQkgICAgICBtX3J2 YWx1ZS0+Z2V0X2RlYnVnX3N0cmluZ19wYXJlbnMgKHByZWMpLAorCQkJICAgICAgZ2V0X3R5cGUg KCktPmdldF9kZWJ1Z19zdHJpbmcgKCkpOworfQorCisvKiBJbXBsZW1lbnRhdGlvbiBvZiByZWNv cmRpbmc6Om1lbWVudG86OndyaXRlX3JlcHJvZHVjZXIgZm9yIGNhc3RzLiAgKi8KKwordm9pZAor cmVjb3JkaW5nOjpiaXRjYXN0Ojp3cml0ZV9yZXByb2R1Y2VyIChyZXByb2R1Y2VyICZyKQorewor ICBjb25zdCBjaGFyICppZCA9IHIubWFrZV9pZGVudGlmaWVyICh0aGlzLCAicnZhbHVlIik7Cisg IHIud3JpdGUgKCIgIGdjY19qaXRfcnZhbHVlIColcyA9XG4iCisJICAgIiAgICBnY2Nfaml0X2Nv bnRleHRfbmV3X2JpdGNhc3QgKCVzLFxuIgorCSAgICIgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAlcywgLyogZ2NjX2ppdF9sb2NhdGlvbiAqbG9jICovXG4iCisJICAgIiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICVzLCAvKiBnY2Nfaml0X3J2YWx1ZSAqcnZhbHVlICov XG4iCisJICAgIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICVzKTsgLyogZ2NjX2pp dF90eXBlICp0eXBlICovXG4iLAorCSAgIGlkLAorCSAgIHIuZ2V0X2lkZW50aWZpZXIgKGdldF9j b250ZXh0ICgpKSwKKwkgICByLmdldF9pZGVudGlmaWVyIChtX2xvYyksCisJICAgci5nZXRfaWRl bnRpZmllcl9hc19ydmFsdWUgKG1fcnZhbHVlKSwKKwkgICByLmdldF9pZGVudGlmaWVyX2FzX3R5 cGUgKGdldF90eXBlICgpKSk7Cit9CisKIC8qIFRoZSBpbXBsZW1lbnRhdGlvbiBvZiBjbGFzcyBn Y2M6OmppdDo6cmVjb3JkaW5nOjpiYXNlX2NhbGwuICAqLwogCiAvKiBUaGUgY29uc3RydWN0b3Ig Zm9yIGdjYzo6aml0OjpyZWNvcmRpbmc6OmJhc2VfY2FsbC4gICovCmRpZmYgLS1naXQgYS9nY2Mv aml0L2ppdC1yZWNvcmRpbmcuaCBiL2djYy9qaXQvaml0LXJlY29yZGluZy5oCmluZGV4IGI2NjNk MGYyMWY1Li43MTNhYWMzNmViZSAxMDA2NDQKLS0tIGEvZ2NjL2ppdC9qaXQtcmVjb3JkaW5nLmgK KysrIGIvZ2NjL2ppdC9qaXQtcmVjb3JkaW5nLmgKQEAgLTIwNSw2ICsyMDUsMTEgQEAgcHVibGlj OgogCSAgICBydmFsdWUgKmV4cHIsCiAJICAgIHR5cGUgKnR5cGVfKTsKIAorICBydmFsdWUgKgor ICBuZXdfYml0Y2FzdCAobG9jYXRpb24gKmxvYywKKwkgICAgICAgcnZhbHVlICpleHByLAorCSAg ICAgICB0eXBlICp0eXBlXyk7CisKICAgbHZhbHVlICoKICAgbmV3X2FycmF5X2FjY2VzcyAobG9j YXRpb24gKmxvYywKIAkJICAgIHJ2YWx1ZSAqcHRyLApAQCAtMTY5MSw2ICsxNjk2LDMzIEBAIHBy aXZhdGU6CiAgIHJ2YWx1ZSAqbV9ydmFsdWU7CiB9OwogCitjbGFzcyBiaXRjYXN0IDogcHVibGlj IHJ2YWx1ZQoreworcHVibGljOgorICBiaXRjYXN0IChjb250ZXh0ICpjdHh0LAorCSAgIGxvY2F0 aW9uICpsb2MsCisJICAgcnZhbHVlICphLAorCSAgIHR5cGUgKnR5cGVfKQorICA6IHJ2YWx1ZSAo Y3R4dCwgbG9jLCB0eXBlXyksCisgICAgbV9ydmFsdWUgKGEpCisgIHt9CisKKyAgdm9pZCByZXBs YXlfaW50byAocmVwbGF5ZXIgKnIpIEZJTkFMIE9WRVJSSURFOworCisgIHZvaWQgdmlzaXRfY2hp bGRyZW4gKHJ2YWx1ZV92aXNpdG9yICp2KSBGSU5BTCBPVkVSUklERTsKKworcHJpdmF0ZToKKyAg c3RyaW5nICogbWFrZV9kZWJ1Z19zdHJpbmcgKCkgRklOQUwgT1ZFUlJJREU7CisgIHZvaWQgd3Jp dGVfcmVwcm9kdWNlciAocmVwcm9kdWNlciAmcikgRklOQUwgT1ZFUlJJREU7CisgIGVudW0gcHJl Y2VkZW5jZSBnZXRfcHJlY2VkZW5jZSAoKSBjb25zdCBGSU5BTCBPVkVSUklERQorICB7CisgICAg cmV0dXJuIFBSRUNFREVOQ0VfQ0FTVDsKKyAgfQorCitwcml2YXRlOgorICBydmFsdWUgKm1fcnZh bHVlOworfTsKKwogY2xhc3MgYmFzZV9jYWxsIDogcHVibGljIHJ2YWx1ZQogewogIHB1YmxpYzoK ZGlmZiAtLWdpdCBhL2djYy9qaXQvbGliZ2Njaml0LmMgYi9nY2Mvaml0L2xpYmdjY2ppdC5jCmlu ZGV4IDAzNzA0ZWYxMGI4Li5jZDg1MTZkMWM0ZCAxMDA2NDQKLS0tIGEvZ2NjL2ppdC9saWJnY2Nq aXQuYworKysgYi9nY2Mvaml0L2xpYmdjY2ppdC5jCkBAIC0yNDA1LDYgKzI0MDUsMzQgQEAgZ2Nj X2ppdF9jb250ZXh0X25ld19jYXN0IChnY2Nfaml0X2NvbnRleHQgKmN0eHQsCiAgIHJldHVybiBz dGF0aWNfY2FzdCA8Z2NjX2ppdF9ydmFsdWUgKj4gKGN0eHQtPm5ld19jYXN0IChsb2MsIHJ2YWx1 ZSwgdHlwZSkpOwogfQogCisvKiBQdWJsaWMgZW50cnlwb2ludC4gIFNlZSBkZXNjcmlwdGlvbiBp biBsaWJnY2NqaXQuaC4KKworICAgQWZ0ZXIgZXJyb3ItY2hlY2tpbmcsIHRoZSByZWFsIHdvcmsg aXMgZG9uZSBieSB0aGUKKyAgIGdjYzo6aml0OjpyZWNvcmRpbmc6OmNvbnRleHQ6Om5ld19iaXRj YXN0IG1ldGhvZCBpbiBqaXQtcmVjb3JkaW5nLmMuICAqLworCitnY2Nfaml0X3J2YWx1ZSAqCitn Y2Nfaml0X2NvbnRleHRfbmV3X2JpdGNhc3QgKGdjY19qaXRfY29udGV4dCAqY3R4dCwKKwkJCSAg ICAgZ2NjX2ppdF9sb2NhdGlvbiAqbG9jLAorCQkJICAgICBnY2Nfaml0X3J2YWx1ZSAqcnZhbHVl LAorCQkJICAgICBnY2Nfaml0X3R5cGUgKnR5cGUpCit7CisgIFJFVFVSTl9OVUxMX0lGX0ZBSUwg KGN0eHQsIE5VTEwsIGxvYywgIk5VTEwgY29udGV4dCIpOworICBKSVRfTE9HX0ZVTkMgKGN0eHQt PmdldF9sb2dnZXIgKCkpOworICAvKiBMT0MgY2FuIGJlIE5VTEwuICAqLworICBSRVRVUk5fTlVM TF9JRl9GQUlMIChydmFsdWUsIGN0eHQsIGxvYywgIk5VTEwgcnZhbHVlIik7CisgIFJFVFVSTl9O VUxMX0lGX0ZBSUwgKHR5cGUsIGN0eHQsIGxvYywgIk5VTEwgdHlwZSIpOworICAvLyBUT0RPOiBj aGVjayB0aGUgc2l6ZXMuCisgIC8qUkVUVVJOX05VTExfSUZfRkFJTF9QUklOVEYzICgKKyAgICBp c192YWxpZF9jYXN0IChydmFsdWUtPmdldF90eXBlICgpLCB0eXBlKSwKKyAgICBjdHh0LCBsb2Ms CisgICAgImNhbm5vdCBjYXN0ICVzIGZyb20gdHlwZTogJXMgdG8gdHlwZTogJXMiLAorICAgIHJ2 YWx1ZS0+Z2V0X2RlYnVnX3N0cmluZyAoKSwKKyAgICBydmFsdWUtPmdldF90eXBlICgpLT5nZXRf ZGVidWdfc3RyaW5nICgpLAorICAgIHR5cGUtPmdldF9kZWJ1Z19zdHJpbmcgKCkpOyovCisKKyAg cmV0dXJuIHN0YXRpY19jYXN0IDxnY2Nfaml0X3J2YWx1ZSAqPiAoY3R4dC0+bmV3X2JpdGNhc3Qg KGxvYywgcnZhbHVlLCB0eXBlKSk7Cit9CisKIC8qIFB1YmxpYyBlbnRyeXBvaW50LiAgU2VlIGRl c2NyaXB0aW9uIGluIGxpYmdjY2ppdC5oLgogCiAgICBBZnRlciBlcnJvci1jaGVja2luZywgdGhl IHJlYWwgd29yayBpcyBkb25lIGJ5IHRoZQpkaWZmIC0tZ2l0IGEvZ2NjL2ppdC9saWJnY2NqaXQu aCBiL2djYy9qaXQvbGliZ2Njaml0LmgKaW5kZXggMmE1ZmZhY2IxZmUuLjA0ZDYyNWZiOGYzIDEw MDY0NAotLS0gYS9nY2Mvaml0L2xpYmdjY2ppdC5oCisrKyBiL2djYy9qaXQvbGliZ2Njaml0LmgK QEAgLTEyMDYsNiArMTIwNiwyMSBAQCBnY2Nfaml0X2NvbnRleHRfbmV3X2Nhc3QgKGdjY19qaXRf Y29udGV4dCAqY3R4dCwKIAkJCSAgZ2NjX2ppdF9ydmFsdWUgKnJ2YWx1ZSwKIAkJCSAgZ2NjX2pp dF90eXBlICp0eXBlKTsKIAorLyogUmVpbnRlcnByZXQgYSB2YWx1ZSBhcyBhbm90aGVyIHR5cGUu CisKKyNkZWZpbmUgTElCR0NDSklUX0hBVkVfZ2NjX2ppdF9jb250ZXh0X25ld19iaXRjYXN0CisK KyAgIFRoZSB0eXBlcyBtdXN0IGJlIG9mIHRoZSBzYW1lIHNpemUuCisKKyAgIFRoaXMgQVBJIGVu dHJ5cG9pbnQgd2FzIGFkZGVkIGluIExJQkdDQ0pJVF9BQklfMjA7IHlvdSBjYW4gdGVzdCBmb3Ig aXRzCisgICBwcmVzZW5jZSB1c2luZworICAgICAjaWZkZWYgTElCR0NDSklUX0hBVkVfZ2NjX2pp dF9jb250ZXh0X25ld19iaXRjYXN0ICAqLworZXh0ZXJuIGdjY19qaXRfcnZhbHVlICoKK2djY19q aXRfY29udGV4dF9uZXdfYml0Y2FzdCAoZ2NjX2ppdF9jb250ZXh0ICpjdHh0LAorCQkJICAgICBn Y2Nfaml0X2xvY2F0aW9uICpsb2MsCisJCQkgICAgIGdjY19qaXRfcnZhbHVlICpydmFsdWUsCisJ CQkgICAgIGdjY19qaXRfdHlwZSAqdHlwZSk7CisKIGV4dGVybiBnY2Nfaml0X2x2YWx1ZSAqCiBn Y2Nfaml0X2NvbnRleHRfbmV3X2FycmF5X2FjY2VzcyAoZ2NjX2ppdF9jb250ZXh0ICpjdHh0LAog CQkJCSAgZ2NjX2ppdF9sb2NhdGlvbiAqbG9jLApkaWZmIC0tZ2l0IGEvZ2NjL2ppdC9saWJnY2Nq aXQubWFwIGIvZ2NjL2ppdC9saWJnY2NqaXQubWFwCmluZGV4IGYzNzNmZDM5YWM3Li43YjZmNDE1 YWM4MiAxMDA2NDQKLS0tIGEvZ2NjL2ppdC9saWJnY2NqaXQubWFwCisrKyBiL2djYy9qaXQvbGli Z2Njaml0Lm1hcApAQCAtMjM4LDggKzIzOCwxNCBAQCBMSUJHQ0NKSVRfQUJJXzE4IHsKIH0gTElC R0NDSklUX0FCSV8xNzsKIAogTElCR0NDSklUX0FCSV8xOSB7CisgIGdsb2JhbDoKICAgICBnY2Nf aml0X2NvbnRleHRfbmV3X2FycmF5X2NvbnN0cnVjdG9yOwogICAgIGdjY19qaXRfY29udGV4dF9u ZXdfc3RydWN0X2NvbnN0cnVjdG9yOwogICAgIGdjY19qaXRfY29udGV4dF9uZXdfdW5pb25fY29u c3RydWN0b3I7CiAgICAgZ2NjX2ppdF9nbG9iYWxfc2V0X2luaXRpYWxpemVyX3J2YWx1ZTsKIH0g TElCR0NDSklUX0FCSV8xODsKKworTElCR0NDSklUX0FCSV8yMCB7CisgIGdsb2JhbDoKKyAgICBn Y2Nfaml0X2NvbnRleHRfbmV3X2JpdGNhc3Q7Cit9IExJQkdDQ0pJVF9BQklfMTk7CmRpZmYgLS1n aXQgYS9nY2MvdGVzdHN1aXRlL2ppdC5kZy9hbGwtbm9uLWZhaWxpbmctdGVzdHMuaCBiL2djYy90 ZXN0c3VpdGUvaml0LmRnL2FsbC1ub24tZmFpbGluZy10ZXN0cy5oCmluZGV4IDI5YWZlMDY0ZGI2 Li42NTYzNTFlZGNlMSAxMDA2NDQKLS0tIGEvZ2NjL3Rlc3RzdWl0ZS9qaXQuZGcvYWxsLW5vbi1m YWlsaW5nLXRlc3RzLmgKKysrIGIvZ2NjL3Rlc3RzdWl0ZS9qaXQuZGcvYWxsLW5vbi1mYWlsaW5n LXRlc3RzLmgKQEAgLTc3LDYgKzc3LDEzIEBACiAvKiB0ZXN0LWJ1aWx0aW4tdW5yZWFjaGFibGUu YzogV2UgZG9uJ3QgYWRkIHRoaXMgb25lLCBzaW5jZSBpdCB0b3VjaGVzCiAgICB0aGUgb3B0aW1p emF0aW9uIGxldmVsIG9mIHRoZSBjb250ZXh0IGFzIGEgd2hvbGUuICAqLwogCisvKiB0ZXN0LWJp dGNhc3QuYyAqLworI2RlZmluZSBjcmVhdGVfY29kZSBjcmVhdGVfY29kZV9iaXRjYXN0CisjZGVm aW5lIHZlcmlmeV9jb2RlIHZlcmlmeV9jb2RlX2JpdGNhc3QKKyNpbmNsdWRlICJ0ZXN0LWJpdGNh c3QuYyIKKyN1bmRlZiBjcmVhdGVfY29kZQorI3VuZGVmIHZlcmlmeV9jb2RlCisKIC8qIHRlc3Qt Y2FsbGluZy1leHRlcm5hbC1mdW5jdGlvbi5jICovCiAjZGVmaW5lIGNyZWF0ZV9jb2RlIGNyZWF0 ZV9jb2RlX2NhbGxpbmdfZXh0ZXJuYWxfZnVuY3Rpb24KICNkZWZpbmUgdmVyaWZ5X2NvZGUgdmVy aWZ5X2NvZGVfY2FsbGluZ19leHRlcm5hbF9mdW5jdGlvbgpAQCAtNDAwLDYgKzQwNyw5IEBAIGNv bnN0IHN0cnVjdCB0ZXN0Y2FzZSB0ZXN0Y2FzZXNbXSA9IHsKICAgeyJidWlsdGluLW1lbWNweSIs CiAgICBjcmVhdGVfY29kZV9idWlsdGluX21lbWNweSwKICAgIHZlcmlmeV9jb2RlX2J1aWx0aW5f bWVtY3B5fSwKKyAgeyJiaXRjYXN0IiwKKyAgIGNyZWF0ZV9jb2RlX2JpdGNhc3QsCisgICB2ZXJp ZnlfY29kZV9iaXRjYXN0fSwKICAgeyJjYWxsaW5nX2V4dGVybmFsX2Z1bmN0aW9uIiwKICAgIGNy ZWF0ZV9jb2RlX2NhbGxpbmdfZXh0ZXJuYWxfZnVuY3Rpb24sCiAgICB2ZXJpZnlfY29kZV9jYWxs aW5nX2V4dGVybmFsX2Z1bmN0aW9ufSwKZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvaml0LmRn L3Rlc3QtYml0Y2FzdC5jIGIvZ2NjL3Rlc3RzdWl0ZS9qaXQuZGcvdGVzdC1iaXRjYXN0LmMKbmV3 IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjJkNzA2MjIwNTFhCi0tLSAvZGV2 L251bGwKKysrIGIvZ2NjL3Rlc3RzdWl0ZS9qaXQuZGcvdGVzdC1iaXRjYXN0LmMKQEAgLTAsMCAr MSw2MCBAQAorI2luY2x1ZGUgPHN0ZGxpYi5oPgorI2luY2x1ZGUgPHN0ZGlvLmg+CisjaW5jbHVk ZSA8c3RyaW5nLmg+CisKKyNpbmNsdWRlICJsaWJnY2NqaXQuaCIKKworI2luY2x1ZGUgImhhcm5l c3MuaCIKKwordm9pZAorY3JlYXRlX2NvZGUgKGdjY19qaXRfY29udGV4dCAqY3R4dCwgdm9pZCAq dXNlcl9kYXRhKQoreworICAvKiBMZXQncyB0cnkgdG8gaW5qZWN0IHRoZSBlcXVpdmFsZW50IG9m OgoraW50CitteV9iaXRjYXN0IChkb3VibGUgeCkKK3sKKyAgIHJldHVybiBiaXRjYXN0KHgsIGlu dCk7Cit9CisgICAqLworICBnY2Nfaml0X3R5cGUgKmludF90eXBlID0KKyAgICBnY2Nfaml0X2Nv bnRleHRfZ2V0X3R5cGUgKGN0eHQsIEdDQ19KSVRfVFlQRV9JTlQpOworICBnY2Nfaml0X3R5cGUg KmRvdWJsZV90eXBlID0KKyAgICBnY2Nfaml0X2NvbnRleHRfZ2V0X3R5cGUgKGN0eHQsIEdDQ19K SVRfVFlQRV9GTE9BVCk7CisKKyAgZ2NjX2ppdF9wYXJhbSAqeCA9CisgICAgZ2NjX2ppdF9jb250 ZXh0X25ld19wYXJhbSAoCisgICAgICBjdHh0LAorICAgICAgTlVMTCwKKyAgICAgIGRvdWJsZV90 eXBlLCAieCIpOworICBnY2Nfaml0X3BhcmFtICpwYXJhbXNbMV0gPSB7eH07CisgIGdjY19qaXRf ZnVuY3Rpb24gKmZ1bmMgPQorICAgIGdjY19qaXRfY29udGV4dF9uZXdfZnVuY3Rpb24gKGN0eHQs CisJCQkJICBOVUxMLAorCQkJCSAgR0NDX0pJVF9GVU5DVElPTl9FWFBPUlRFRCwKKwkJCQkgIGlu dF90eXBlLAorCQkJCSAgIm15X2JpdGNhc3QiLAorCQkJCSAgMSwgcGFyYW1zLCAwKTsKKworICBn Y2Nfaml0X2Jsb2NrICppbml0aWFsID0KKyAgICBnY2Nfaml0X2Z1bmN0aW9uX25ld19ibG9jayAo ZnVuYywgImluaXRpYWwiKTsKKworICBnY2Nfaml0X2Jsb2NrX2VuZF93aXRoX3JldHVybihpbml0 aWFsLCBOVUxMLAorICAgIGdjY19qaXRfY29udGV4dF9uZXdfYml0Y2FzdChjdHh0LAorICAgICAg ICBOVUxMLAorICAgICAgICBnY2Nfaml0X3BhcmFtX2FzX3J2YWx1ZSh4KSwKKyAgICAgICAgaW50 X3R5cGUKKyAgICApKTsKK30KKwordm9pZAordmVyaWZ5X2NvZGUgKGdjY19qaXRfY29udGV4dCAq Y3R4dCwgZ2NjX2ppdF9yZXN1bHQgKnJlc3VsdCkKK3sKKyAgdHlwZWRlZiBpbnQgKCpteV9iaXRj YXN0X2ZuX3R5cGUpIChkb3VibGUpOworICBDSEVDS19OT05fTlVMTCAocmVzdWx0KTsKKyAgbXlf Yml0Y2FzdF9mbl90eXBlIG15X2JpdGNhc3QgPQorICAgIChteV9iaXRjYXN0X2ZuX3R5cGUpZ2Nj X2ppdF9yZXN1bHRfZ2V0X2NvZGUgKHJlc3VsdCwgIm15X2JpdGNhc3QiKTsKKyAgQ0hFQ0tfTk9O X05VTEwgKG15X2JpdGNhc3QpOworICBpbnQgdmFsID0gbXlfYml0Y2FzdCAoLTUuMTI5ODcxNCk7 CisgIG5vdGUgKCJteV9iaXRjYXN0IHJldHVybmVkOiAlZCIsIHZhbCk7CisgIENIRUNLX1ZBTFVF ICh2YWwsIDM1NTY5MjAxKTsKK30KZGlmZiAtLWdpdCBhL2djYy90cmVlLmMgYi9nY2MvdHJlZS5j CmluZGV4IGQ5OGI3N2RiNTBiLi5lNGJmNGU4NDY3NSAxMDA2NDQKLS0tIGEvZ2NjL3RyZWUuYwor KysgYi9nY2MvdHJlZS5jCkBAIC02OTYzLDYgKzY5NjMsMTQgQEAgYnVpbGRfcmVmZXJlbmNlX3R5 cGUgKHRyZWUgdG9fdHlwZSkKICAgKEhPU1RfQklUU19QRVJfV0lERV9JTlQgPiA2NCA/IEhPU1Rf QklUU19QRVJfV0lERV9JTlQgOiA2NCkKIHN0YXRpYyBHVFkoKCkpIHRyZWUgbm9uc3RhbmRhcmRf aW50ZWdlcl90eXBlX2NhY2hlWzIgKiBNQVhfSU5UX0NBQ0hFRF9QUkVDICsgMl07CiAKK3ZvaWQg Y2xlYXJfbm9uc3RhbmRhcmRfaW50ZWdlcl90eXBlX2NhY2hlICh2b2lkKQoreworICBmb3IgKHNp emVfdCBpID0gMCA7IGkgPCAyICogTUFYX0lOVF9DQUNIRURfUFJFQyArIDIgOyBpKyspCisgIHsK KyAgICBub25zdGFuZGFyZF9pbnRlZ2VyX3R5cGVfY2FjaGVbaV0gPSBOVUxMOworICB9Cit9CisK IC8qIEJ1aWxkcyBhIHNpZ25lZCBvciB1bnNpZ25lZCBpbnRlZ2VyIHR5cGUgb2YgcHJlY2lzaW9u IFBSRUNJU0lPTi4KICAgIFVzZWQgZm9yIEMgYml0ZmllbGRzIHdob3NlIHByZWNpc2lvbiBkb2Vz IG5vdCBtYXRjaCB0aGF0IG9mCiAgICBidWlsdC1pbiB0YXJnZXQgdHlwZXMuICAqLwpkaWZmIC0t Z2l0IGEvZ2NjL3RyZWUuaCBiL2djYy90cmVlLmgKaW5kZXggMzE4MDE5YzRkYzUuLjY0MGI0OTI4 MDJjIDEwMDY0NAotLS0gYS9nY2MvdHJlZS5oCisrKyBiL2djYy90cmVlLmgKQEAgLTUzODUsNiAr NTM4NSw3IEBAIGV4dGVybiBib29sIHJlYWxfbWludXNfb25lcCAoY29uc3RfdHJlZSk7CiBleHRl cm4gdm9pZCBpbml0X3R0cmVlICh2b2lkKTsKIGV4dGVybiB2b2lkIGJ1aWxkX2NvbW1vbl90cmVl X25vZGVzIChib29sKTsKIGV4dGVybiB2b2lkIGJ1aWxkX2NvbW1vbl9idWlsdGluX25vZGVzICh2 b2lkKTsKK2V4dGVybiB2b2lkIGNsZWFyX25vbnN0YW5kYXJkX2ludGVnZXJfdHlwZV9jYWNoZSAo dm9pZCk7CiBleHRlcm4gdHJlZSBidWlsZF9ub25zdGFuZGFyZF9pbnRlZ2VyX3R5cGUgKHVuc2ln bmVkIEhPU1RfV0lERV9JTlQsIGludCk7CiBleHRlcm4gdHJlZSBidWlsZF9ub25zdGFuZGFyZF9i b29sZWFuX3R5cGUgKHVuc2lnbmVkIEhPU1RfV0lERV9JTlQpOwogZXh0ZXJuIHRyZWUgYnVpbGRf cmFuZ2VfdHlwZSAodHJlZSwgdHJlZSwgdHJlZSk7Ci0tIAoyLjI2LjIuNy5nMTlkYjljZmI2OC5k aXJ0eQoK --=-WHzc0sO1zE3oMNPCFqlS--