From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-ej1-x62d.google.com (mail-ej1-x62d.google.com [IPv6:2a00:1450:4864:20::62d]) by sourceware.org (Postfix) with ESMTPS id 12696385801C for ; Fri, 14 Oct 2022 07:58:26 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 12696385801C Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=linaro.org Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=linaro.org Received: by mail-ej1-x62d.google.com with SMTP id 13so8796367ejn.3 for ; Fri, 14 Oct 2022 00:58:26 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=subject:from:to:content-language:user-agent:mime-version:date :message-id:from:to:cc:subject:date:message-id:reply-to; bh=LoMUGceYk7DLXv/i7m5rW5ScIEG0dyhHybml1Sb0w9k=; b=YhHA5bjJZv8TqVKIVpeKIa5QAnMpM+gyaqhawlONWioIhUzDK8T1d3FOQDogNeX8ty ovQLtAle+9pMzFZnPmftIz0qcTZpqK8nvgDLcTmu7Ye/GdtlT3Ols8qOJgymGuyAL+8A IXn+gMAgrPlqxPI7PSvUaALuq8ThvoKLBhBRoEl0Gbr4boLO8HoD4yrPPy6mPZi5mlEr EOAK9qYvfShJH6JvdhCxEdqYDDss0GKEFgSFPqufEthV8PGuTix9Iecu3H3+waGCkklq 3G0hFuI3gM2o1Hv/UXTIlRJrau5bvYvw4pOQTXs386UXtL1Pu1GReaXuLOn/yfWzSiYH U3xg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=subject:from:to:content-language:user-agent:mime-version:date :message-id:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=LoMUGceYk7DLXv/i7m5rW5ScIEG0dyhHybml1Sb0w9k=; b=udrlgS69rrF0ReXzfDliTyQjjW2Am+9jnfbfMbrzCB6abaQGEC82OzaUwTErL0SBeS RC9LedT8KsQpIqoFKfRi1Cl+39Li14u1eAhoVHMXGX+Hh61yIH5EATTg8k3W1ia2ck8n pLcvdC4DiVIfWFeIT9DIbme07CPfkyJP0sZBh10eibgKdqnJj8axb5lcvVfLW5Ci9tzL zSgXbcTswRHO5Gsr7QRIlqIarMt7oTcqiTWv45FcUY7TYfutpJzA5r1+SpObKCRhBr28 TP+XLelkxWWHWNM+d+bjvkfKpoTMVA6EXoFD/1N9eZ4UOQ2vycjYxcU9AJmLd2g68dqZ gXpQ== X-Gm-Message-State: ACrzQf2QjlOTRqQWGNOIOKwtCBIVUCdy0hLtbSFIOlRZrOPpl2VbRMAC 710eH3HrdKdi8P5sI9IAm1a6Ovbh0KcZwfnx X-Google-Smtp-Source: AMsMyM4ji7O722HpbrUL9o7hcwY8wBAaTYvI6jjB3++km3uzmSAetA13NnXHzLSF1AF0y7U6LAlYsw== X-Received: by 2002:a17:906:6a1a:b0:78c:fa9c:e621 with SMTP id qw26-20020a1709066a1a00b0078cfa9ce621mr2751184ejc.160.1665734304301; Fri, 14 Oct 2022 00:58:24 -0700 (PDT) Received: from [172.29.64.46] ([94.230.145.250]) by smtp.gmail.com with ESMTPSA id d9-20020a170906370900b0073022b796a7sm1132947ejc.93.2022.10.14.00.58.23 for (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Fri, 14 Oct 2022 00:58:23 -0700 (PDT) Content-Type: multipart/mixed; boundary="------------2flaIkl5k0062N3qSiKNmYhf" Message-ID: <027ae69a-636b-6757-297a-eec42936401e@linaro.org> Date: Fri, 14 Oct 2022 09:58:22 +0200 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.2.2 Content-Language: en-US To: binutils@sourceware.org From: Zac Walker Subject: [PATCH v3] aarch64-pe support for LD, GAS and BFD X-Spam-Status: No, score=-12.5 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,GIT_PATCH_0,KAM_STOCKGEN,RCVD_IN_DNSWL_NONE,SPF_HELO_NONE,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. --------------2flaIkl5k0062N3qSiKNmYhf Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit V3 of the patch originally written by Jedidiah Thompson. It allows aarch64-pe to be targeted natively, not having to use objcopy to convert it from ELF to PE. Between V2 and V3 I made a few recommended updates most notably adding the missing BFD_RELOC_AARCH64_BRANCH19 and additional const correctness. I have included a diff between patches v2 and v3. Patch and diff included as attachments to avoid text formatting issues. Changes since that original patch: - Added minimal relocation support and tested generated binaries run on a Surface-ProX ARM64 test machine. - Been through a review process with colleagues at Linaro. Linaro has agreed to run CI for aarch64-pe going forward in their test lab. - Run tests for multiple platforms; aarch64-linux-gnu, x86_64-linux-gnu, x86_64-w64-mingw32. Those tests pass and see no regressions. Multiple GAS tests still fail for aarch64-pe because of ELF specific assumptions. I plan to fix these later. The long-term goal of this work is to help enable MSYS2 for Window on ARM64. As discussed here: https://github.com/msys2/MSYS2-packages/issues/1888 The original work by Jedidiah Thompson here can be found here: https://sourceware.org/pipermail/binutils/2022-January/119077.html Regards, Zac Walker --------------2flaIkl5k0062N3qSiKNmYhf Content-Type: text/x-diff; charset=UTF-8; name="0001-aarch64-pe-support-for-LD-GAS-and-BFD.patch" Content-Disposition: attachment; filename="0001-aarch64-pe-support-for-LD-GAS-and-BFD.patch" Content-Transfer-Encoding: base64 RnJvbSBlMGQ4YzA5M2QwNjc4NWExOWQwOGU5Y2Q5OWZlZjRiYzY0NTg3ZWM5IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBaYWMgV2Fsa2VyIDx6YWMud2Fsa2VyQGxpbmFyby5v cmc+CkRhdGU6IFRodSwgMTMgT2N0IDIwMjIgMTY6MjU6NTAgKzAyMDAKU3ViamVjdDogW1BB VENIXSBhYXJjaDY0LXBlIHN1cHBvcnQgZm9yIExELCBHQVMgYW5kIEJGRAoKQWxsb3dzIGFh cmNoNjQtcGUgdG8gYmUgdGFyZ2V0ZWQgbmF0aXZlbHksIG5vdCBoYXZpbmcgdG8gdXNlIG9i amNvcHkgdG8gY29udmVydCBpdCBmcm9tIEVMRiB0byBQRS4KLS0tCiBiZmQvTWFrZWZpbGUu YW0gICAgICAgICAgICAgICAgICAgfCAgIDIgKwogYmZkL01ha2VmaWxlLmluICAgICAgICAg ICAgICAgICAgIHwgICAxICsKIGJmZC9hcmNodXJlcy5jICAgICAgICAgICAgICAgICAgICB8 ICAgMSArCiBiZmQvYmZkLWluMi5oICAgICAgICAgICAgICAgICAgICAgfCAgIDEgKwogYmZk L2JmZC5jICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAxICsKIGJmZC9jb2ZmLWFhcmNo NjQuYyAgICAgICAgICAgICAgICB8IDE2OCArKysrKysrKysrKysrKysrKysrKysrKysrLS0t LS0KIGJmZC9jb25maWcuYmZkICAgICAgICAgICAgICAgICAgICB8ICAxNiArKy0KIGJmZC9j b25maWd1cmUgICAgICAgICAgICAgICAgICAgICB8ICAgMyArLQogYmZkL2NvbmZpZ3VyZS5h YyAgICAgICAgICAgICAgICAgIHwgICAzICstCiBiZmQvY3B1LWFhcmNoNjQuYyAgICAgICAg ICAgICAgICAgfCAgMzUgKysrKystLQogYmZkL3BlLWFhcmNoNjQuYyAgICAgICAgICAgICAg ICAgIHwgIDc0ICsrKysrKysrKysrKysKIGJmZC9wZWktYWFyY2g2NC5jICAgICAgICAgICAg ICAgICB8ICAgMiArLQogYmZkL3BlaWNvZGUuaCAgICAgICAgICAgICAgICAgICAgIHwgICAy ICsKIGJmZC9wby9TUkMtUE9URklMRVMuaW4gICAgICAgICAgICB8ICAgMSArCiBiZmQvdGFy Z2V0cy5jICAgICAgICAgICAgICAgICAgICAgfCAgIDYgKy0KIGdhcy9jb25maWcvb2JqLWNv ZmYuaCAgICAgICAgICAgICB8ICAgNCArCiBnYXMvY29uZmlnL3RjLWFhcmNoNjQuYyAgICAg ICAgICAgfCAgNDkgKysrKysrLS0tCiBnYXMvY29uZmlnL3RjLWFhcmNoNjQuaCAgICAgICAg ICAgfCAgMTggKystLQogZ2FzL2NvbmZpZy90ZS1wZXBhYXJjaDY0LmggICAgICAgIHwgIDI5 ICsrKysrKwogZ2FzL2NvbmZpZ3VyZS50Z3QgICAgICAgICAgICAgICAgIHwgICAyICstCiBn YXMvdGVzdHN1aXRlL2dhcy9wZS9wZS1hYXJjaDY0LmQgfCAgMTQgKysrCiBnYXMvdGVzdHN1 aXRlL2dhcy9wZS9wZS1hYXJjaDY0LnMgfCAgMTEgKysKIGdhcy90ZXN0c3VpdGUvZ2FzL3Bl L3BlLmV4cCAgICAgICB8ICAgNiArKwogZ2RiL2NvZmYtcGUtcmVhZC5jICAgICAgICAgICAg ICAgIHwgICA4ICstCiBpbmNsdWRlL2NvZmYvYWFyY2g2NC5oICAgICAgICAgICAgfCAgMjIg KysrKwogbGQvTWFrZWZpbGUuYW0gICAgICAgICAgICAgICAgICAgIHwgICAxICsKIGxkL01h a2VmaWxlLmluICAgICAgICAgICAgICAgICAgICB8ICAgMSArCiBsZC9jb25maWd1cmUudGd0 ICAgICAgICAgICAgICAgICAgfCAgIDYgKy0KIGxkL2VtdWxwYXJhbXMvYWFyY2g2NHBlLnNo ICAgICAgICB8ICAgOSArKwogbGQvZW11bHRlbXBsL3BlcC5lbSAgICAgICAgICAgICAgIHwg IDEwICstCiBsZC9wZS1kbGwuYyAgICAgICAgICAgICAgICAgICAgICAgfCAgNDQgKysrKysr LS0KIGxkL3BlcC1kbGwtYWFyY2g2NC5jICAgICAgICAgICAgICB8ICAyMyArKysrCiBsZC9w ZXAtZGxsLXg4Nl82NC5jICAgICAgICAgICAgICAgfCAgMjIgKysrKwogbGQvcGVwLWRsbC5j ICAgICAgICAgICAgICAgICAgICAgIHwgICA1ICstCiBsZC90ZXN0c3VpdGUvbGQtcGUvcGUt YWFyY2g2NC5kICAgfCAgMTYgKysrCiBsZC90ZXN0c3VpdGUvbGQtcGUvcGUtYWFyY2g2NC5z ICAgfCAgMTEgKysKIGxkL3Rlc3RzdWl0ZS9sZC1wZS9wZS5leHAgICAgICAgICB8ICAgNSAr CiAzNyBmaWxlcyBjaGFuZ2VkLCA1NDcgaW5zZXJ0aW9ucygrKSwgODUgZGVsZXRpb25zKC0p CiBjcmVhdGUgbW9kZSAxMDA2NDQgYmZkL3BlLWFhcmNoNjQuYwogY3JlYXRlIG1vZGUgMTAw NjQ0IGdhcy9jb25maWcvdGUtcGVwYWFyY2g2NC5oCiBjcmVhdGUgbW9kZSAxMDA2NDQgZ2Fz L3Rlc3RzdWl0ZS9nYXMvcGUvcGUtYWFyY2g2NC5kCiBjcmVhdGUgbW9kZSAxMDA2NDQgZ2Fz L3Rlc3RzdWl0ZS9nYXMvcGUvcGUtYWFyY2g2NC5zCiBjcmVhdGUgbW9kZSAxMDA2NDQgbGQv ZW11bHBhcmFtcy9hYXJjaDY0cGUuc2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBsZC9wZXAtZGxs LWFhcmNoNjQuYwogY3JlYXRlIG1vZGUgMTAwNjQ0IGxkL3BlcC1kbGwteDg2XzY0LmMKIGNy ZWF0ZSBtb2RlIDEwMDY0NCBsZC90ZXN0c3VpdGUvbGQtcGUvcGUtYWFyY2g2NC5kCiBjcmVh dGUgbW9kZSAxMDA2NDQgbGQvdGVzdHN1aXRlL2xkLXBlL3BlLWFhcmNoNjQucwoKZGlmZiAt LWdpdCBhL2JmZC9NYWtlZmlsZS5hbSBiL2JmZC9NYWtlZmlsZS5hbQppbmRleCA3OTRkOTky MzEwLi5iNzBkOGYzY2NlIDEwMDY0NAotLS0gYS9iZmQvTWFrZWZpbGUuYW0KKysrIGIvYmZk L01ha2VmaWxlLmFtCkBAIC01NzgsNiArNTc4LDcgQEAgQkZENjRfQkFDS0VORFMgPSBcCiAJ cGUtbG9vbmdhcmNoNjRpZ2VuLmxvIFwKIAlwZS14ODZfNjQubG8gXAogCXBlaS1hYXJjaDY0 LmxvIFwKKwlwZS1hYXJjaDY0LmxvIFwKIAlwZWktaWE2NC5sbyBcCiAJcGVpLWxvb25nYXJj aDY0LmxvIFwKIAlwZWkteDg2XzY0LmxvIFwKQEAgLTYxOSw2ICs2MjAsNyBAQCBCRkQ2NF9C QUNLRU5EU19DRklMRVMgPSBcCiAJbWFjaC1vLWFhcmNoNjQuYyBcCiAJbWFjaC1vLXg4Ni02 NC5jIFwKIAltbW8uYyBcCisJcGUtYWFyY2g2NC5jIFwKIAlwZS14ODZfNjQuYyBcCiAJcGVp LWFhcmNoNjQuYyBcCiAJcGVpLWlhNjQuYyBcCmRpZmYgLS1naXQgYS9iZmQvTWFrZWZpbGUu aW4gYi9iZmQvTWFrZWZpbGUuaW4KaW5kZXggYmRmMTJjOTljZi4uM2Y1MjAzNTU4MiAxMDA2 NDQKLS0tIGEvYmZkL01ha2VmaWxlLmluCisrKyBiL2JmZC9NYWtlZmlsZS5pbgpAQCAtMTA4 OSw2ICsxMDg5LDcgQEAgQkZENjRfQkFDS0VORFNfQ0ZJTEVTID0gXAogCW1hY2gtby1hYXJj aDY0LmMgXAogCW1hY2gtby14ODYtNjQuYyBcCiAJbW1vLmMgXAorCXBlLWFhcmNoNjQuYyBc CiAJcGUteDg2XzY0LmMgXAogCXBlaS1hYXJjaDY0LmMgXAogCXBlaS1pYTY0LmMgXApkaWZm IC0tZ2l0IGEvYmZkL2FyY2h1cmVzLmMgYi9iZmQvYXJjaHVyZXMuYwppbmRleCBjNjdiYWNk ZGZkLi5lODE3YmIwYTQ0IDEwMDY0NAotLS0gYS9iZmQvYXJjaHVyZXMuYworKysgYi9iZmQv YXJjaHVyZXMuYwpAQCAtNTIzLDYgKzUyMyw3IEBAIERFU0NSSVBUSU9OCiAuI2RlZmluZSBi ZmRfbWFjaF9hYXJjaDY0IDAKIC4jZGVmaW5lIGJmZF9tYWNoX2FhcmNoNjRfOFIJMQogLiNk ZWZpbmUgYmZkX21hY2hfYWFyY2g2NF9pbHAzMgkzMgorLiNkZWZpbmUgYmZkX21hY2hfYWFy Y2g2NF9sbHA2NCA2NAogLiAgYmZkX2FyY2hfbmlvczIsICAgICB7KiBOaW9zIElJLiAgKn0K IC4jZGVmaW5lIGJmZF9tYWNoX25pb3MyCQkwCiAuI2RlZmluZSBiZmRfbWFjaF9uaW9zMnIx CTEKZGlmZiAtLWdpdCBhL2JmZC9iZmQtaW4yLmggYi9iZmQvYmZkLWluMi5oCmluZGV4IDI1 ZTE4MDZlNjguLjg4NzBkMjdhYTAgMTAwNjQ0Ci0tLSBhL2JmZC9iZmQtaW4yLmgKKysrIGIv YmZkL2JmZC1pbjIuaApAQCAtMTg1Nyw2ICsxODU3LDcgQEAgZW51bSBiZmRfYXJjaGl0ZWN0 dXJlCiAjZGVmaW5lIGJmZF9tYWNoX2FhcmNoNjQgMAogI2RlZmluZSBiZmRfbWFjaF9hYXJj aDY0XzhSICAgIDEKICNkZWZpbmUgYmZkX21hY2hfYWFyY2g2NF9pbHAzMiAzMgorI2RlZmlu ZSBiZmRfbWFjaF9hYXJjaDY0X2xscDY0IDY0CiAgIGJmZF9hcmNoX25pb3MyLCAgICAgLyog TmlvcyBJSS4gICovCiAjZGVmaW5lIGJmZF9tYWNoX25pb3MyICAgICAgICAgMAogI2RlZmlu ZSBiZmRfbWFjaF9uaW9zMnIxICAgICAgIDEKZGlmZiAtLWdpdCBhL2JmZC9iZmQuYyBiL2Jm ZC9iZmQuYwppbmRleCA1ZjIwMzNiZWU3Li42Y2VkYTZjNDY5IDEwMDY0NAotLS0gYS9iZmQv YmZkLmMKKysrIGIvYmZkL2JmZC5jCkBAIC0xNzQzLDYgKzE3NDMsNyBAQCBiZmRfZ2V0X3Np Z25fZXh0ZW5kX3ZtYSAoYmZkICphYmZkKQogICAgICAgfHwgc3RyY21wIChuYW1lLCAicGVp LWkzODYiKSA9PSAwCiAgICAgICB8fCBzdHJjbXAgKG5hbWUsICJwZS14ODYtNjQiKSA9PSAw CiAgICAgICB8fCBzdHJjbXAgKG5hbWUsICJwZWkteDg2LTY0IikgPT0gMAorICAgICAgfHwg c3RyY21wIChuYW1lLCAicGUtYWFyY2g2NC1saXR0bGUiKSA9PSAwCiAgICAgICB8fCBzdHJj bXAgKG5hbWUsICJwZWktYWFyY2g2NC1saXR0bGUiKSA9PSAwCiAgICAgICB8fCBzdHJjbXAg KG5hbWUsICJwZS1hcm0td2luY2UtbGl0dGxlIikgPT0gMAogICAgICAgfHwgc3RyY21wIChu YW1lLCAicGVpLWFybS13aW5jZS1saXR0bGUiKSA9PSAwCmRpZmYgLS1naXQgYS9iZmQvY29m Zi1hYXJjaDY0LmMgYi9iZmQvY29mZi1hYXJjaDY0LmMKaW5kZXggZTZmMmZjMmEwYS4uMmMz ZTIyNWEyMiAxMDA2NDQKLS0tIGEvYmZkL2NvZmYtYWFyY2g2NC5jCisrKyBiL2JmZC9jb2Zm LWFhcmNoNjQuYwpAQCAtMzksMzQgKzM5LDE1MCBAQAogCiAjaW5jbHVkZSAibGliY29mZi5o IgogCi0vKiBUaGUgcGFnZSBzaXplIGlzIGEgZ3Vlc3MgYmFzZWQgb24gRUxGLiAgKi8KKy8q IEluIGNhc2Ugd2UncmUgb24gYSAzMi1iaXQgbWFjaGluZSwgY29uc3RydWN0IGEgNjQtYml0 ICItMSIgdmFsdWUuICAqLworI2RlZmluZSBNSU5VU19PTkUgKH4gKGJmZF92bWEpIDApCisK K3N0YXRpYyBjb25zdCByZWxvY19ob3d0b190eXBlIGFybTY0X3JlbG9jX2hvd3RvXzY0ID0g SE9XVE8oSU1BR0VfUkVMX0FSTTY0X0FERFI2NCwgMCwgOCwgNjQsIGZhbHNlLCAwLAorCSBj b21wbGFpbl9vdmVyZmxvd19iaXRmaWVsZCwKKwkgTlVMTCwgIjY0IiwKKwkgZmFsc2UsIE1J TlVTX09ORSwgTUlOVVNfT05FLCBmYWxzZSk7CisKK3N0YXRpYyBjb25zdCByZWxvY19ob3d0 b190eXBlIGFybTY0X3JlbG9jX2hvd3RvXzMyID0gSE9XVE8gKElNQUdFX1JFTF9BUk02NF9B RERSMzIsIDAsIDQsIDMyLCBmYWxzZSwgMCwKKwkgY29tcGxhaW5fb3ZlcmZsb3dfYml0Zmll bGQsCisJIE5VTEwsICIzMiIsCisJIGZhbHNlLCAweGZmZmZmZmZmLCAweGZmZmZmZmZmLCBm YWxzZSk7CisKK3N0YXRpYyBjb25zdCByZWxvY19ob3d0b190eXBlIGFybTY0X3JlbG9jX2hv d3RvXzMyX3BjcmVsID0gSE9XVE8gKElNQUdFX1JFTF9BUk02NF9SRUwzMiwgMCwgNCwgMzIs IHRydWUsIDAsCisJIGNvbXBsYWluX292ZXJmbG93X2JpdGZpZWxkLAorCSBOVUxMLCAiRElT UDMyIiwKKwkgZmFsc2UsIDB4ZmZmZmZmZmYsIDB4ZmZmZmZmZmYsIHRydWUpOworCitzdGF0 aWMgY29uc3QgcmVsb2NfaG93dG9fdHlwZSBhcm02NF9yZWxvY19ob3d0b19icmFuY2gyNiA9 IEhPV1RPIChJTUFHRV9SRUxfQVJNNjRfQlJBTkNIMjYsIDAsIDQsIDI2LCB0cnVlLCAwLAor CSBjb21wbGFpbl9vdmVyZmxvd19iaXRmaWVsZCwKKwkgTlVMTCwgIkJSQU5DSDI2IiwKKwkg ZmFsc2UsIDB4MDNmZmZmZmYsIDB4MDNmZmZmZmYsIHRydWUpOworCitzdGF0aWMgY29uc3Qg cmVsb2NfaG93dG9fdHlwZSBhcm02NF9yZWxvY19ob3d0b19wYWdlMjEgPSBIT1dUTyAoSU1B R0VfUkVMX0FSTTY0X1BBR0VCQVNFX1JFTDIxLCAxMiwgNCwgMjEsIHRydWUsIDAsCisJIGNv bXBsYWluX292ZXJmbG93X3NpZ25lZCwKKwkgTlVMTCwgIlBBR0UyMSIsCisJIGZhbHNlLCAw eDFmZmZmZiwgMHgxZmZmZmYsIGZhbHNlKTsKKworc3RhdGljIGNvbnN0IHJlbG9jX2hvd3Rv X3R5cGUgYXJtNjRfcmVsb2NfaG93dG9fbG8yMSA9IEhPV1RPIChJTUFHRV9SRUxfQVJNNjRf UkVMMjEsIDAsIDQsIDIxLCB0cnVlLCAwLAorCSBjb21wbGFpbl9vdmVyZmxvd19zaWduZWQs CisJIE5VTEwsICJMTzIxIiwKKwkgZmFsc2UsIDB4MWZmZmZmLCAweDFmZmZmZiwgdHJ1ZSk7 CisKK3N0YXRpYyBjb25zdCByZWxvY19ob3d0b190eXBlIGFybTY0X3JlbG9jX2hvd3RvX3Bn b2ZmMTIgPSBIT1dUTyAoSU1BR0VfUkVMX0FSTTY0X1BBR0VPRkZTRVRfMTJMLCAxLCA0LCAx MiwgdHJ1ZSwgMCwKKwkgY29tcGxhaW5fb3ZlcmZsb3dfc2lnbmVkLAorCSBOVUxMLCAiUEdP RkYxMiIsCisJIGZhbHNlLCAweGZmZSwgMHhmZmUsIHRydWUpOworCitzdGF0aWMgY29uc3Qg cmVsb2NfaG93dG9fdHlwZSBhcm02NF9yZWxvY19ob3d0b19icmFuY2gxOSA9IEhPV1RPIChJ TUFHRV9SRUxfQVJNNjRfQlJBTkNIMTksIDIsIDQsIDE5LCB0cnVlLCAwLAorCSBjb21wbGFp bl9vdmVyZmxvd19zaWduZWQsCisJIE5VTEwsICJCUkFOQ0gxOSIsCisJIGZhbHNlLCAweDdm ZmZmLCAweDdmZmZmLCB0cnVlKTsKKworCitzdGF0aWMgY29uc3QgcmVsb2NfaG93dG9fdHlw ZSogY29uc3QgYXJtNjRfaG93dG9fdGFibGVbXSA9IHsKKyAgICAgJmFybTY0X3JlbG9jX2hv d3RvXzY0LAorICAgICAmYXJtNjRfcmVsb2NfaG93dG9fMzIsCisgICAgICZhcm02NF9yZWxv Y19ob3d0b18zMl9wY3JlbCwKKyAgICAgJmFybTY0X3JlbG9jX2hvd3RvX2JyYW5jaDI2LAor ICAgICAmYXJtNjRfcmVsb2NfaG93dG9fcGFnZTIxLAorICAgICAmYXJtNjRfcmVsb2NfaG93 dG9fbG8yMSwKKyAgICAgJmFybTY0X3JlbG9jX2hvd3RvX3Bnb2ZmMTIsCisgICAgICZhcm02 NF9yZWxvY19ob3d0b19icmFuY2gxOQorfTsKIAotI2RlZmluZSBDT0ZGX1BBR0VfU0laRSAw eDEwMDAKKyNpZm5kZWYgTlVNX0VMRU0KKyNkZWZpbmUgTlVNX0VMRU0oYSkgKChzaXplb2Yg KGEpKSAvIHNpemVvZiAoKGEpWzBdKSkKKyNlbmRpZgogCi0vKiBBbGwgdXNlcnMgb2YgdGhp cyBmaWxlIGhhdmUgYmZkX29jdGV0c19wZXJfYnl0ZSAoYWJmZCwgc2VjKSA9PSAxLiAgKi8K LSNkZWZpbmUgT0NURVRTX1BFUl9CWVRFKEFCRkQsIFNFQykgMQorI2RlZmluZSBOVU1fUkVM T0NTIE5VTV9FTEVNIChhcm02NF9ob3d0b190YWJsZSkKIAotI2lmbmRlZiBQQ1JFTE9GRlNF VAotI2RlZmluZSBQQ1JFTE9GRlNFVCB0cnVlCi0jZW5kaWYKKyNkZWZpbmUgY29mZl9iZmRf cmVsb2NfdHlwZV9sb29rdXAJCWNvZmZfYWFyY2g2NF9yZWxvY190eXBlX2xvb2t1cAorI2Rl ZmluZSBjb2ZmX2JmZF9yZWxvY19uYW1lX2xvb2t1cAkJY29mZl9hYXJjaDY0X3JlbG9jX25h bWVfbG9va3VwCiAKLS8qIEN1cnJlbnRseSB3ZSBkb24ndCBoYW5kbGUgYW55IHJlbG9jYXRp b25zLiAgKi8KLXN0YXRpYyByZWxvY19ob3d0b190eXBlIHBlX2FhcmNoNjRfc3RkX3JlbG9j X2hvd3RvW10gPQorc3RhdGljIHJlbG9jX2hvd3RvX3R5cGUgKgorY29mZl9hYXJjaDY0X3Jl bG9jX3R5cGVfbG9va3VwIChiZmQgKiBhYmZkIEFUVFJJQlVURV9VTlVTRUQsIGJmZF9yZWxv Y19jb2RlX3JlYWxfdHlwZSBjb2RlKQoreworICBzd2l0Y2ggKGNvZGUpCiAgIHsKKyAgY2Fz ZSBCRkRfUkVMT0NfNjQ6CisgICAgcmV0dXJuICZhcm02NF9yZWxvY19ob3d0b182NDsKKyAg Y2FzZSBCRkRfUkVMT0NfMzI6CisgICAgcmV0dXJuICZhcm02NF9yZWxvY19ob3d0b18zMjsK KyAgY2FzZSBCRkRfUkVMT0NfMzJfUENSRUw6CisgICAgcmV0dXJuICZhcm02NF9yZWxvY19o b3d0b18zMl9wY3JlbDsKKyAgY2FzZSBCRkRfUkVMT0NfQUFSQ0g2NF9DQUxMMjY6CisgIGNh c2UgQkZEX1JFTE9DX0FBUkNINjRfSlVNUDI2OgorICAgIHJldHVybiAmYXJtNjRfcmVsb2Nf aG93dG9fYnJhbmNoMjY7CisgIGNhc2UgQkZEX1JFTE9DX0FBUkNINjRfQURSX0hJMjFfUENS RUw6CisgICAgcmV0dXJuICZhcm02NF9yZWxvY19ob3d0b19wYWdlMjE7CisgIGNhc2UgQkZE X1JFTE9DX0FBUkNINjRfQURSX0xPMjFfUENSRUw6CisgICAgcmV0dXJuICZhcm02NF9yZWxv Y19ob3d0b19sbzIxOworICBjYXNlIEJGRF9SRUxPQ19BQVJDSDY0X0xEU1QxNl9MTzEyOgor ICAgIHJldHVybiAmYXJtNjRfcmVsb2NfaG93dG9fcGdvZmYxMjsKKyAgY2FzZSBCRkRfUkVM T0NfQUFSQ0g2NF9CUkFOQ0gxOToKKyAgICByZXR1cm4gJmFybTY0X3JlbG9jX2hvd3RvX2Jy YW5jaDE5OworICBkZWZhdWx0OgorICAgIEJGRF9GQUlMICgpOworICAgIHJldHVybiBOVUxM OworICB9CisKKyAgcmV0dXJuIE5VTEw7Cit9CisKK3N0YXRpYyByZWxvY19ob3d0b190eXBl ICoKK2NvZmZfYWFyY2g2NF9yZWxvY19uYW1lX2xvb2t1cCAoYmZkICphYmZkIEFUVFJJQlVU RV9VTlVTRUQsCisJCQkgICAgY29uc3QgY2hhciAqcl9uYW1lKQoreworCXVuc2lnbmVkIGlu dCBpOwogCi0gIH07CisJZm9yIChpID0gMDsgaSA8IE5VTV9SRUxPQ1M7IGkrKykKKwkgIGlm IChhcm02NF9ob3d0b190YWJsZVtpXS0+bmFtZSAhPSBOVUxMCisJICAgICYmIHN0cmNhc2Vj bXAgKGFybTY0X2hvd3RvX3RhYmxlW2ldLT5uYW1lLCByX25hbWUpID09IDApCisJICAgIHJl dHVybiBhcm02NF9ob3d0b190YWJsZVtpXTsKKworICByZXR1cm4gTlVMTDsKK30KIAogI2Rl ZmluZSBDT0ZGX0RFRkFVTFRfU0VDVElPTl9BTElHTk1FTlRfUE9XRVIgIDIKICNkZWZpbmUg Q09GRl9QQUdFX1NJWkUJCQkgICAgICAweDEwMDAKIAotI2lmbmRlZiBOVU1fRUxFTQotI2Rl ZmluZSBOVU1fRUxFTShhKSAoKHNpemVvZiAoYSkpIC8gc2l6ZW9mICgoYSlbMF0pKQotI2Vu ZGlmCitzdGF0aWMgcmVsb2NfaG93dG9fdHlwZSAqCitjb2ZmX2FhcmNoNjRfcnR5cGVfbG9v a3VwICh1bnNpZ25lZCBpbnQgY29kZSkKK3sKKyAgc3dpdGNoIChjb2RlKQorICB7CisgICAg Y2FzZSBJTUFHRV9SRUxfQVJNNjRfQUREUjY0OgorICAgICAgcmV0dXJuICZhcm02NF9yZWxv Y19ob3d0b182NDsKKyAgICBjYXNlIElNQUdFX1JFTF9BUk02NF9BRERSMzI6CisgICAgICBy ZXR1cm4gJmFybTY0X3JlbG9jX2hvd3RvXzMyOworICAgIGNhc2UgSU1BR0VfUkVMX0FSTTY0 X1JFTDMyOgorICAgICAgcmV0dXJuICZhcm02NF9yZWxvY19ob3d0b18zMl9wY3JlbDsKKyAg ICBjYXNlIElNQUdFX1JFTF9BUk02NF9CUkFOQ0gyNjoKKyAgICAgIHJldHVybiAmYXJtNjRf cmVsb2NfaG93dG9fYnJhbmNoMjY7CisgICAgY2FzZSBJTUFHRV9SRUxfQVJNNjRfUEFHRUJB U0VfUkVMMjE6CisgICAgICByZXR1cm4gJmFybTY0X3JlbG9jX2hvd3RvX3BhZ2UyMTsKKyAg ICBjYXNlIElNQUdFX1JFTF9BUk02NF9SRUwyMToKKyAgICAgIHJldHVybiAmYXJtNjRfcmVs b2NfaG93dG9fbG8yMTsKKyAgICBjYXNlIElNQUdFX1JFTF9BUk02NF9QQUdFT0ZGU0VUXzEy TDoKKyAgICAgIHJldHVybiAmYXJtNjRfcmVsb2NfaG93dG9fcGdvZmYxMjsKKyAgICBjYXNl IElNQUdFX1JFTF9BUk02NF9CUkFOQ0gxOToKKyAgICAgIHJldHVybiAmYXJtNjRfcmVsb2Nf aG93dG9fYnJhbmNoMTk7CisgICAgZGVmYXVsdDoKKyAgICAgIEJGRF9GQUlMICgpOworICAg ICAgcmV0dXJuIE5VTEw7CisgIH0KKworICByZXR1cm4gTlVMTDsKK30KIAotI2RlZmluZSBO VU1fUkVMT0NTIE5VTV9FTEVNIChwZV9hYXJjaDY0X3N0ZF9yZWxvY19ob3d0bykKKyNkZWZp bmUgUlRZUEUySE9XVE8oY2FjaGVfcHRyLCBkc3QpCQkJCVwKKyAgKChjYWNoZV9wdHIpLT5o b3d0byA9CWNvZmZfYWFyY2g2NF9ydHlwZV9sb29rdXAoKGRzdCktPnJfdHlwZSkpCiAKLSNk ZWZpbmUgUlRZUEUySE9XVE8oY2FjaGVfcHRyLCBkc3QpICAgICAgICAgICAgIFwKLSAgKGNh Y2hlX3B0ciktPmhvd3RvID0gTlVMTAorI2RlZmluZSBTRUxFQ1RfUkVMT0MoeCxob3d0bykg eyAoeCkucl90eXBlID0gKGhvd3RvKS0+dHlwZTsgfQogCiAjaWZuZGVmIGJmZF9wZV9wcmlu dF9wZGF0YQogI2RlZmluZSBiZmRfcGVfcHJpbnRfcGRhdGEgICAgICBOVUxMCkBAIC05Mywx MyArMjA5LDEzIEBAIGNvbnN0IGJmZF90YXJnZXQKICNpZmRlZiBUQVJHRVRfU1lNCiAgIFRB UkdFVF9TWU0gPQogI2Vsc2UKLSAgYWFyY2g2NF9wZWlfdmVjID0KKyMgZXJyb3IgInRhcmdl dCBzeW1ib2wgbmFtZSBub3Qgc3BlY2lmaWVkIgogI2VuZGlmCiB7CiAjaWZkZWYgVEFSR0VU X05BTUUKICAgVEFSR0VUX05BTUUsCiAjZWxzZQotICJwZWktYWFyY2g2NC1saXR0bGUiLAkJ CS8qIE5hbWUuICAqLworIyBlcnJvciAidGFyZ2V0IG5hbWUgbm90IHNwZWNpZmllZCIKICNl bmRpZgogICBiZmRfdGFyZ2V0X2NvZmZfZmxhdm91ciwKICAgQkZEX0VORElBTl9MSVRUTEUs CQkvKiBEYXRhIGJ5dGUgb3JkZXIgaXMgbGl0dGxlLiAgKi8KQEAgLTEyNSwxNCArMjQxLDE0 IEBAIGNvbnN0IGJmZF90YXJnZXQKICAgMCwJCQkJLyogbWF0Y2ggcHJpb3JpdHkuICAqLwog ICBUQVJHRVRfS0VFUF9VTlVTRURfU0VDVElPTl9TWU1CT0xTLCAvKiBrZWVwIHVudXNlZCBz ZWN0aW9uIHN5bWJvbHMuICAqLwogCi0gICAgIC8qIERhdGEgY29udmVyc2lvbiBmdW5jdGlv bnMuICAqLwotICAgICBiZmRfZ2V0bDY0LCBiZmRfZ2V0bF9zaWduZWRfNjQsIGJmZF9wdXRs NjQsCi0gICAgIGJmZF9nZXRsMzIsIGJmZF9nZXRsX3NpZ25lZF8zMiwgYmZkX3B1dGwzMiwK LSAgICAgYmZkX2dldGwxNiwgYmZkX2dldGxfc2lnbmVkXzE2LCBiZmRfcHV0bDE2LCAvKiBE YXRhLiAgKi8KLSAgICAgLyogSGVhZGVyIGNvbnZlcnNpb24gZnVuY3Rpb25zLiAgKi8KLSAg ICAgYmZkX2dldGw2NCwgYmZkX2dldGxfc2lnbmVkXzY0LCBiZmRfcHV0bDY0LAotICAgICBi ZmRfZ2V0bDMyLCBiZmRfZ2V0bF9zaWduZWRfMzIsIGJmZF9wdXRsMzIsCi0gICAgIGJmZF9n ZXRsMTYsIGJmZF9nZXRsX3NpZ25lZF8xNiwgYmZkX3B1dGwxNiwgLyogSGRycy4gICovCisg IC8qIERhdGEgY29udmVyc2lvbiBmdW5jdGlvbnMuICAqLworICBiZmRfZ2V0bDY0LCBiZmRf Z2V0bF9zaWduZWRfNjQsIGJmZF9wdXRsNjQsCisgIGJmZF9nZXRsMzIsIGJmZF9nZXRsX3Np Z25lZF8zMiwgYmZkX3B1dGwzMiwKKyAgYmZkX2dldGwxNiwgYmZkX2dldGxfc2lnbmVkXzE2 LCBiZmRfcHV0bDE2LCAvKiBEYXRhLiAgKi8KKyAgLyogSGVhZGVyIGNvbnZlcnNpb24gZnVu Y3Rpb25zLiAgKi8KKyAgYmZkX2dldGw2NCwgYmZkX2dldGxfc2lnbmVkXzY0LCBiZmRfcHV0 bDY0LAorICBiZmRfZ2V0bDMyLCBiZmRfZ2V0bF9zaWduZWRfMzIsIGJmZF9wdXRsMzIsCisg IGJmZF9nZXRsMTYsIGJmZF9nZXRsX3NpZ25lZF8xNiwgYmZkX3B1dGwxNiwgLyogSGRycy4g ICovCiAKICAgLyogTm90ZSB0aGF0IHdlIGFsbG93IGFuIG9iamVjdCBmaWxlIHRvIGJlIHRy ZWF0ZWQgYXMgYSBjb3JlIGZpbGUgYXMgd2VsbC4gICovCiAgIHsJCQkJLyogYmZkX2NoZWNr X2Zvcm1hdC4gICovCmRpZmYgLS1naXQgYS9iZmQvY29uZmlnLmJmZCBiL2JmZC9jb25maWcu YmZkCmluZGV4IDVlYjgyZDdlNjEuLjBhZThlYjM5ZDIgMTAwNjQ0Ci0tLSBhL2JmZC9jb25m aWcuYmZkCisrKyBiL2JmZC9jb25maWcuYmZkCkBAIC0yNDUsOSArMjQ1LDE1IEBAIGNhc2Ug IiR7dGFyZ30iIGluCiAgICAgOzsKICAgYWFyY2g2NC0qLWVsZiB8IGFhcmNoNjQtKi1ydGVt cyogfCBhYXJjaDY0LSotZ2Vub2RlKikKICAgICB0YXJnX2RlZnZlYz1hYXJjaDY0X2VsZjY0 X2xlX3ZlYwotICAgIHRhcmdfc2VsdmVjcz0iYWFyY2g2NF9lbGY2NF9iZV92ZWMgYWFyY2g2 NF9lbGYzMl9sZV92ZWMgYWFyY2g2NF9lbGYzMl9iZV92ZWMgYXJtX2VsZjMyX2xlX3ZlYyBh cm1fZWxmMzJfYmVfdmVjIGFhcmNoNjRfcGVpX3ZlYyIKKyAgICB0YXJnX3NlbHZlY3M9ImFh cmNoNjRfZWxmNjRfYmVfdmVjIGFhcmNoNjRfZWxmMzJfbGVfdmVjIGFhcmNoNjRfZWxmMzJf YmVfdmVjIGFybV9lbGYzMl9sZV92ZWMgYXJtX2VsZjMyX2JlX3ZlYyBhYXJjaDY0X3BlaV9s ZV92ZWMgYWFyY2g2NF9wZV9sZV92ZWMiCiAgICAgd2FudDY0PXRydWUKICAgICA7OworICBh YXJjaDY0LSotcGUqKQorICAgIHRhcmdfZGVmdmVjPWFhcmNoNjRfcGVfbGVfdmVjCisgICAg dGFyZ19zZWx2ZWNzPSJhYXJjaDY0X3BlX2xlX3ZlYyBhYXJjaDY0X3BlaV9sZV92ZWMiCisg ICAgd2FudDY0PXRydWUKKyAgICB0YXJnX3VuZGVyc2NvcmU9bm8KKyAgICA7OwogICBhYXJj aDY0X2JlLSotZWxmKQogICAgIHRhcmdfZGVmdmVjPWFhcmNoNjRfZWxmNjRfYmVfdmVjCiAg ICAgdGFyZ19zZWx2ZWNzPSJhYXJjaDY0X2VsZjY0X2xlX3ZlYyBhYXJjaDY0X2VsZjMyX2xl X3ZlYyBhYXJjaDY0X2VsZjMyX2JlX3ZlYyBhcm1fZWxmMzJfYmVfdmVjIGFybV9lbGYzMl9s ZV92ZWMiCkBAIC0yODAsNyArMjg2LDcgQEAgY2FzZSAiJHt0YXJnfSIgaW4KICAgICA7Owog ICBhYXJjaDY0LSotbGludXgqIHwgYWFyY2g2NC0qLW5ldGJzZCopCiAgICAgdGFyZ19kZWZ2 ZWM9YWFyY2g2NF9lbGY2NF9sZV92ZWMKLSAgICB0YXJnX3NlbHZlY3M9ImFhcmNoNjRfZWxm NjRfYmVfdmVjIGFhcmNoNjRfZWxmMzJfbGVfdmVjIGFhcmNoNjRfZWxmMzJfYmVfdmVjIGFy bV9lbGYzMl9sZV92ZWMgYXJtX2VsZjMyX2JlX3ZlYyBhYXJjaDY0X3BlaV92ZWMiCisgICAg dGFyZ19zZWx2ZWNzPSJhYXJjaDY0X2VsZjY0X2JlX3ZlYyBhYXJjaDY0X2VsZjMyX2xlX3Zl YyBhYXJjaDY0X2VsZjMyX2JlX3ZlYyBhcm1fZWxmMzJfbGVfdmVjIGFybV9lbGYzMl9iZV92 ZWMgYWFyY2g2NF9wZWlfbGVfdmVjIGFhcmNoNjRfcGVfbGVfdmVjIgogICAgIHdhbnQ2ND10 cnVlCiAgICAgOzsKICAgYWFyY2g2NF9iZS0qLWxpbnV4KiB8IGFhcmNoNjRfYmUtKi1uZXRi c2QqKQpAQCAtMTQ4OCw2ICsxNDk0LDEyIEBAIGNhc2UgIiR7dGFyZ30iIGluCiAgICAgOzsK IGVzYWMKIAoraWYgdGVzdCB4IiR0YXJnX2RlZnZlYyIgPSB4ImFhcmNoNjQtcGUiOyB0aGVu CisgICMgTm90IGN1cnJlbnRseSBjb21wbGV0ZSAoYW5kIHByb2JhYmx5IG5vdCBzdGFibGUp LCB3YXJuIHVzZXIKKyAgZWNobyAiKioqIFdBUk5JTkcgQkZEIGFhcmNoNjQtcGUgc3VwcG9y dCBub3QgY29tcGxldGUgbm9yIHN0YWJsZSIKKyAgZWNobyAiKioqIERvIG5vdCByZWx5IG9u IHRoaXMgZm9yIHByb2R1Y3Rpb24gcHVycG9zZXMiCitmaQorCiAjIEFsbCBNSVBTIEVMRiB0 YXJnZXRzIG5lZWQgYSA2NC1iaXQgYmZkX3ZtYS4KIGNhc2UgIiR7dGFyZ19kZWZ2ZWN9ICR7 dGFyZ19zZWx2ZWNzfSIgaW4KICAgKm1pcHNfZWxmKikKZGlmZiAtLWdpdCBhL2JmZC9jb25m aWd1cmUgYi9iZmQvY29uZmlndXJlCmluZGV4IGI3MmU4ODVmNzEuLmJhZTlkMTdjNTEgMTAw NzU1Ci0tLSBhL2JmZC9jb25maWd1cmUKKysrIGIvYmZkL2NvbmZpZ3VyZQpAQCAtMTM2MDMs NyArMTM2MDMsOCBAQCBkbwogICAgIGFhcmNoNjRfZWxmNjRfbGVfdmVjKQkgICB0Yj0iJHRi IGVsZjY0LWFhcmNoNjQubG8gZWxmeHgtYWFyY2g2NC5sbyBlbGYtaWZ1bmMubG8gZWxmNjQu bG8gJGVsZiI7IHRhcmdldF9zaXplPTY0IDs7CiAgICAgYWFyY2g2NF9lbGY2NF9sZV9jbG91 ZGFiaV92ZWMpIHRiPSIkdGIgZWxmNjQtYWFyY2g2NC5sbyBlbGZ4eC1hYXJjaDY0LmxvIGVs Zi1pZnVuYy5sbyBlbGY2NC5sbyAkZWxmIjsgdGFyZ2V0X3NpemU9NjQgOzsKICAgICBhYXJj aDY0X21hY2hfb192ZWMpCQkgdGI9IiR0YiBtYWNoLW8tYWFyY2g2NC5sbyI7IHRhcmdldF9z aXplPTY0IDs7Ci0gICAgYWFyY2g2NF9wZWlfdmVjKQkJIHRiPSIkdGIgcGVpLWFhcmNoNjQu bG8gcGUtYWFyY2g2NGlnZW4ubG8gJGNvZmYiOyB0YXJnZXRfc2l6ZT02NCA7OworICAgIGFh cmNoNjRfcGVpX2xlX3ZlYykJCSB0Yj0iJHRiIHBlaS1hYXJjaDY0LmxvIHBlLWFhcmNoNjRp Z2VuLmxvICRjb2ZmIjsgdGFyZ2V0X3NpemU9NjQgOzsKKyAgICBhYXJjaDY0X3BlX2xlX3Zl YykgICAgIHRiPSIkdGIgcGUtYWFyY2g2NC5sbyBwZS1hYXJjaDY0aWdlbi5sbyAkY29mZiI7 IHRhcmdldF9zaXplPTY0IDs7CiAgICAgYWxwaGFfZWNvZmZfbGVfdmVjKQkJIHRiPSIkdGIg Y29mZi1hbHBoYS5sbyBlY29mZi5sbyAkZWNvZmYiOyB0YXJnZXRfc2l6ZT02NCA7OwogICAg IGFscGhhX2VsZjY0X3ZlYykJCSB0Yj0iJHRiIGVsZjY0LWFscGhhLmxvIGVsZjY0LmxvICRl bGYiOyB0YXJnZXRfc2l6ZT02NCA7OwogICAgIGFscGhhX2VsZjY0X2Zic2RfdmVjKQkgdGI9 IiR0YiBlbGY2NC1hbHBoYS5sbyBlbGY2NC5sbyAkZWxmIjsgdGFyZ2V0X3NpemU9NjQgOzsK ZGlmZiAtLWdpdCBhL2JmZC9jb25maWd1cmUuYWMgYi9iZmQvY29uZmlndXJlLmFjCmluZGV4 IDdhMGFkMGZmZTMuLjc0YzBmMDcyMjIgMTAwNjQ0Ci0tLSBhL2JmZC9jb25maWd1cmUuYWMK KysrIGIvYmZkL2NvbmZpZ3VyZS5hYwpAQCAtNDA0LDcgKzQwNCw4IEBAIGRvCiAgICAgYWFy Y2g2NF9lbGY2NF9sZV92ZWMpCSAgIHRiPSIkdGIgZWxmNjQtYWFyY2g2NC5sbyBlbGZ4eC1h YXJjaDY0LmxvIGVsZi1pZnVuYy5sbyBlbGY2NC5sbyAkZWxmIjsgdGFyZ2V0X3NpemU9NjQg OzsKICAgICBhYXJjaDY0X2VsZjY0X2xlX2Nsb3VkYWJpX3ZlYykgdGI9IiR0YiBlbGY2NC1h YXJjaDY0LmxvIGVsZnh4LWFhcmNoNjQubG8gZWxmLWlmdW5jLmxvIGVsZjY0LmxvICRlbGYi OyB0YXJnZXRfc2l6ZT02NCA7OwogICAgIGFhcmNoNjRfbWFjaF9vX3ZlYykJCSB0Yj0iJHRi IG1hY2gtby1hYXJjaDY0LmxvIjsgdGFyZ2V0X3NpemU9NjQgOzsKLSAgICBhYXJjaDY0X3Bl aV92ZWMpCQkgdGI9IiR0YiBwZWktYWFyY2g2NC5sbyBwZS1hYXJjaDY0aWdlbi5sbyAkY29m ZiI7IHRhcmdldF9zaXplPTY0IDs7CisgICAgYWFyY2g2NF9wZWlfbGVfdmVjKQkJIHRiPSIk dGIgcGVpLWFhcmNoNjQubG8gcGUtYWFyY2g2NGlnZW4ubG8gJGNvZmYiOyB0YXJnZXRfc2l6 ZT02NCA7OworICAgIGFhcmNoNjRfcGVfbGVfdmVjKQkJIHRiPSIkdGIgcGUtYWFyY2g2NC5s byBwZS1hYXJjaDY0aWdlbi5sbyAkY29mZiI7IHRhcmdldF9zaXplPTY0IDs7CiAgICAgYWxw aGFfZWNvZmZfbGVfdmVjKQkJIHRiPSIkdGIgY29mZi1hbHBoYS5sbyBlY29mZi5sbyAkZWNv ZmYiOyB0YXJnZXRfc2l6ZT02NCA7OwogICAgIGFscGhhX2VsZjY0X3ZlYykJCSB0Yj0iJHRi IGVsZjY0LWFscGhhLmxvIGVsZjY0LmxvICRlbGYiOyB0YXJnZXRfc2l6ZT02NCA7OwogICAg IGFscGhhX2VsZjY0X2Zic2RfdmVjKQkgdGI9IiR0YiBlbGY2NC1hbHBoYS5sbyBlbGY2NC5s byAkZWxmIjsgdGFyZ2V0X3NpemU9NjQgOzsKZGlmZiAtLWdpdCBhL2JmZC9jcHUtYWFyY2g2 NC5jIGIvYmZkL2NwdS1hYXJjaDY0LmMKaW5kZXggZTFiZDhmYzQ3OC4uZWI4OGQwZWY4NiAx MDA2NDQKLS0tIGEvYmZkL2NwdS1hYXJjaDY0LmMKKysrIGIvYmZkL2NwdS1hYXJjaDY0LmMK QEAgLTM5LDggKzM5LDggQEAgY29tcGF0aWJsZSAoY29uc3QgYmZkX2FyY2hfaW5mb190eXBl ICogYSwgY29uc3QgYmZkX2FyY2hfaW5mb190eXBlICogYikKICAgaWYgKGEtPm1hY2ggPT0g Yi0+bWFjaCkKICAgICByZXR1cm4gYTsKIAotICAvKiBEb24ndCBhbGxvdyBtaXhpbmcgaWxw MzIgd2l0aCBscDY0LiAgKi8KLSAgaWYgKChhLT5tYWNoICYgYmZkX21hY2hfYWFyY2g2NF9p bHAzMikgIT0gKGItPm1hY2ggJiBiZmRfbWFjaF9hYXJjaDY0X2lscDMyKSkKKyAgLyogRG9u J3QgYWxsb3cgbWl4aW5nIGRhdGEgbW9kZWxzLiAgKi8KKyAgaWYgKChhLT5tYWNoIF4gYi0+ bWFjaCkgJiAoYmZkX21hY2hfYWFyY2g2NF9pbHAzMiB8IGJmZF9tYWNoX2FhcmNoNjRfbGxw NjQpKQogICAgIHJldHVybiBOVUxMOwogCiAgIC8qIE90aGVyd2lzZSBpZiBlaXRoZXIgYSBv ciBiIGlzIHRoZSAnZGVmYXVsdCcgbWFjaGluZQpAQCAtMTAyLDIwICsxMDIsMzMgQEAgc2Nh biAoY29uc3Qgc3RydWN0IGJmZF9hcmNoX2luZm8gKmluZm8sIGNvbnN0IGNoYXIgKnN0cmlu ZykKICAgcmV0dXJuIGZhbHNlOwogfQogCi0jZGVmaW5lIE4oTlVNQkVSLCBQUklOVCwgV09S RFNJWkUsIERFRkFVTFQsIE5FWFQpCQlcCi0gIHsgV09SRFNJWkUsIFdPUkRTSVpFLCA4LCBi ZmRfYXJjaF9hYXJjaDY0LCBOVU1CRVIsCQlcCi0gICAgImFhcmNoNjQiLCBQUklOVCwgNCwg REVGQVVMVCwgY29tcGF0aWJsZSwgc2NhbiwJCVwKLSAgICAgIGJmZF9hcmNoX2RlZmF1bHRf ZmlsbCwgTkVYVCwgMCB9CisvKiBGaWd1cmUgb3V0IGlmIGxscDY0IGlzIGRlZmF1bHQgKi8K KyNpZiBERUZBVUxUX1ZFQ1RPUiA9PSBhYXJjaDY0X3BlX2xlX3ZlYworI2RlZmluZSBMTFA2 NF9ERUZBVUxUIHRydWUKKyNkZWZpbmUgQUFSQ0g2NF9ERUZBVUxUIGZhbHNlCisjZWxzZQor I2RlZmluZSBMTFA2NF9ERUZBVUxUIGZhbHNlCisjZGVmaW5lIEFBUkNINjRfREVGQVVMVCB0 cnVlCisjZW5kaWYKIAotc3RhdGljIGNvbnN0IGJmZF9hcmNoX2luZm9fdHlwZSBiZmRfYWFy Y2g2NF9hcmNoX3Y4X3IgPQotICBOIChiZmRfbWFjaF9hYXJjaDY0XzhSLCAiYWFyY2g2NDph cm12OC1yIiwgNjQsIGZhbHNlLCBOVUxMKTsKKyNkZWZpbmUgTihOVU1CRVIsIFBSSU5ULCBX T1JEU0laRSwgQUREUlNJWkUsIERFRkFVTFQsIE5FWFQpCQlcCisgIHsgV09SRFNJWkUsIEFE RFJTSVpFLCA4LCBiZmRfYXJjaF9hYXJjaDY0LCBOVU1CRVIsCQlcCisgICAgICJhYXJjaDY0 IiwgUFJJTlQsIDQsIERFRkFVTFQsIGNvbXBhdGlibGUsIHNjYW4sCQlcCisgICAgICAgYmZk X2FyY2hfZGVmYXVsdF9maWxsLCBORVhULCAwIH0KKworIHN0YXRpYyBjb25zdCBiZmRfYXJj aF9pbmZvX3R5cGUgYmZkX2FhcmNoNjRfYXJjaF92OF9yID0KKyAgTiAoYmZkX21hY2hfYWFy Y2g2NF84UiwgImFhcmNoNjQ6YXJtdjgtciIsIDY0LCA2NCwgZmFsc2UsIE5VTEwpOwogCiBz dGF0aWMgY29uc3QgYmZkX2FyY2hfaW5mb190eXBlIGJmZF9hYXJjaDY0X2FyY2hfaWxwMzIg PQotICBOIChiZmRfbWFjaF9hYXJjaDY0X2lscDMyLCAiYWFyY2g2NDppbHAzMiIsIDMyLCBm YWxzZSwKKyAgTiAoYmZkX21hY2hfYWFyY2g2NF9pbHAzMiwgImFhcmNoNjQ6aWxwMzIiLCAz MiwgMzIsIGZhbHNlLAogICAgICAmYmZkX2FhcmNoNjRfYXJjaF92OF9yKTsKIAotY29uc3Qg YmZkX2FyY2hfaW5mb190eXBlIGJmZF9hYXJjaDY0X2FyY2ggPQotICBOICgwLCAiYWFyY2g2 NCIsIDY0LCB0cnVlLCAmYmZkX2FhcmNoNjRfYXJjaF9pbHAzMik7CitzdGF0aWMgY29uc3Qg YmZkX2FyY2hfaW5mb190eXBlIGJmZF9hYXJjaDY0X2FyY2hfbGxwNjQgPQorICBOIChiZmRf bWFjaF9hYXJjaDY0X2xscDY0LCAiYWFyY2g2NDpsbHA2NCIsIDMyLCA2NCwgTExQNjRfREVG QVVMVCwKKyAgICAgJmJmZF9hYXJjaDY0X2FyY2hfaWxwMzIpOworCisgY29uc3QgYmZkX2Fy Y2hfaW5mb190eXBlIGJmZF9hYXJjaDY0X2FyY2ggPQorICBOICgwLCAiYWFyY2g2NCIsIDY0 LCA2NCwgQUFSQ0g2NF9ERUZBVUxULCAmYmZkX2FhcmNoNjRfYXJjaF9sbHA2NCk7CiAKIGJv b2wKIGJmZF9pc19hYXJjaDY0X3NwZWNpYWxfc3ltYm9sX25hbWUgKGNvbnN0IGNoYXIgKm5h bWUsIGludCB0eXBlKQpkaWZmIC0tZ2l0IGEvYmZkL3BlLWFhcmNoNjQuYyBiL2JmZC9wZS1h YXJjaDY0LmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMC4uMDc5MGJh MzlhMQotLS0gL2Rldi9udWxsCisrKyBiL2JmZC9wZS1hYXJjaDY0LmMKQEAgLTAsMCArMSw3 NCBAQAorLyogQkZEIGJhY2stZW5kIGZvciBBQXJjaDY0IFBFIElNQUdFIENPRkYgZmlsZXMu CisgICBDb3B5cmlnaHQgKEMpIDIwMjIgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMu CisKKyAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIEJGRCwgdGhlIEJpbmFyeSBGaWxlIERlc2Ny aXB0b3IgbGlicmFyeS4KKworICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlv dSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKyAgIGl0IHVuZGVyIHRoZSB0 ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5 CisgICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAzIG9m IHRoZSBMaWNlbnNlLCBvcgorICAgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lv bi4KKworICAgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQg aXQgd2lsbCBiZSB1c2VmdWwsCisgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhv dXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICAgTUVSQ0hBTlRBQklMSVRZIG9y IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorICAgR05VIEdl bmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKworICAgWW91IHNob3Vs ZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vu c2UKKyAgIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBG cmVlIFNvZnR3YXJlCisgICBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQg LSBGaWZ0aCBGbG9vciwgQm9zdG9uLAorICAgTUEgMDIxMTAtMTMwMSwgVVNBLiAgKi8KKwor I2luY2x1ZGUgInN5c2RlcC5oIgorI2luY2x1ZGUgImJmZC5oIgorCisjZGVmaW5lIFRBUkdF VF9TWU0gICAgICAgICAgICAgYWFyY2g2NF9wZV9sZV92ZWMKKyNkZWZpbmUgVEFSR0VUX05B TUUgICAgICAgICAgICAicGUtYWFyY2g2NC1saXR0bGUiCisjZGVmaW5lIFRBUkdFVF9BUkNI SVRFQ1RVUkUgICAgYmZkX2FyY2hfYWFyY2g2NAorI2RlZmluZSBUQVJHRVRfUEFHRVNJWkUg ICAgICAgIDQwOTYKKyNkZWZpbmUgVEFSR0VUX0JJR19FTkRJQU4gICAgICAwCisjZGVmaW5l IFRBUkdFVF9BUkNISVZFICAgICAgICAgMAorI2RlZmluZSBUQVJHRVRfUFJJT1JJVFkgICAg ICAgIDAKKworLyogUmVuYW1lIHRoZSBhYm92ZSBpbnRvLi4gKi8KKyNkZWZpbmUgQ09GRl9X SVRIX3BlQUFyY2g2NAorI2RlZmluZSBDT0ZGX1dJVEhfUEUKKyNkZWZpbmUgUENSRUxPRkZT RVQgICAgICAgdHJ1ZQorCisvKiBMb25nIHNlY3Rpb24gbmFtZXMgbm90IGFsbG93ZWQgaW4g ZXhlY3V0YWJsZSBpbWFnZXMsIG9ubHkgb2JqZWN0IGZpbGVzLiAgKi8KKyNkZWZpbmUgQ09G Rl9MT05HX1NFQ1RJT05fTkFNRVMgMQorCisjZGVmaW5lIENPRkZfU0VDVElPTl9BTElHTk1F TlRfRU5UUklFUyBcCit7IENPRkZfU0VDVElPTl9OQU1FX0VYQUNUX01BVENIICgiLmJzcyIp LCBcCisgIENPRkZfQUxJR05NRU5UX0ZJRUxEX0VNUFRZLCBDT0ZGX0FMSUdOTUVOVF9GSUVM RF9FTVBUWSwgMiB9LCBcCit7IENPRkZfU0VDVElPTl9OQU1FX0VYQUNUX01BVENIICgiLmRh dGEiKSwgXAorICBDT0ZGX0FMSUdOTUVOVF9GSUVMRF9FTVBUWSwgQ09GRl9BTElHTk1FTlRf RklFTERfRU1QVFksIDIgfSwgXAoreyBDT0ZGX1NFQ1RJT05fTkFNRV9FWEFDVF9NQVRDSCAo Ii5yZGF0YSIpLCBcCisgIENPRkZfQUxJR05NRU5UX0ZJRUxEX0VNUFRZLCBDT0ZGX0FMSUdO TUVOVF9GSUVMRF9FTVBUWSwgMiB9LCBcCit7IENPRkZfU0VDVElPTl9OQU1FX0VYQUNUX01B VENIICgiLnRleHQiKSwgXAorICBDT0ZGX0FMSUdOTUVOVF9GSUVMRF9FTVBUWSwgQ09GRl9B TElHTk1FTlRfRklFTERfRU1QVFksIDIgfSwgXAoreyBDT0ZGX1NFQ1RJT05fTkFNRV9QQVJU SUFMX01BVENIICgiLmlkYXRhIiksIFwKKyAgQ09GRl9BTElHTk1FTlRfRklFTERfRU1QVFks IENPRkZfQUxJR05NRU5UX0ZJRUxEX0VNUFRZLCAyIH0sIFwKK3sgQ09GRl9TRUNUSU9OX05B TUVfRVhBQ1RfTUFUQ0ggKCIucGRhdGEiKSwgXAorICBDT0ZGX0FMSUdOTUVOVF9GSUVMRF9F TVBUWSwgQ09GRl9BTElHTk1FTlRfRklFTERfRU1QVFksIDIgfSwgXAoreyBDT0ZGX1NFQ1RJ T05fTkFNRV9QQVJUSUFMX01BVENIICgiLmRlYnVnIiksIFwKKyAgQ09GRl9BTElHTk1FTlRf RklFTERfRU1QVFksIENPRkZfQUxJR05NRU5UX0ZJRUxEX0VNUFRZLCAwIH0sIFwKK3sgQ09G Rl9TRUNUSU9OX05BTUVfUEFSVElBTF9NQVRDSCAoIi5nbnUubGlua29uY2Uud2kuIiksIFwK KyAgQ09GRl9BTElHTk1FTlRfRklFTERfRU1QVFksIENPRkZfQUxJR05NRU5UX0ZJRUxEX0VN UFRZLCAwIH0KKworI2RlZmluZSBQRUlfSEVBREVSUworI2luY2x1ZGUgInN5c2RlcC5oIgor I2luY2x1ZGUgImJmZC5oIgorI2luY2x1ZGUgImxpYmJmZC5oIgorI2luY2x1ZGUgImNvZmYv YWFyY2g2NC5oIgorI2luY2x1ZGUgImNvZmYvaW50ZXJuYWwuaCIKKyNpbmNsdWRlICJjb2Zm L3BlLmgiCisjaW5jbHVkZSAibGliY29mZi5oIgorI2luY2x1ZGUgImxpYnBlaS5oIgorI2lu Y2x1ZGUgImxpYmliZXJ0eS5oIgorCisvKiBNYWtlIHN1cmUgd2UncmUgc2V0dGluZyBhIDY0 LWJpdCBmb3JtYXQuICAqLworI3VuZGVmIEFPVVRTWgorI2RlZmluZSBBT1VUU1ogICAgICAg ICAgUEVQQU9VVFNaCisjZGVmaW5lIFBFQU9VVEhEUiAgICAgICBQRVBBT1VUSERSCisKKyNp bmNsdWRlICJjb2ZmLWFhcmNoNjQuYyIKZGlmZiAtLWdpdCBhL2JmZC9wZWktYWFyY2g2NC5j IGIvYmZkL3BlaS1hYXJjaDY0LmMKaW5kZXggYzQ0NzY5MDc5My4uN2I2YzY4MWI0YiAxMDA2 NDQKLS0tIGEvYmZkL3BlaS1hYXJjaDY0LmMKKysrIGIvYmZkL3BlaS1hYXJjaDY0LmMKQEAg LTIxLDcgKzIxLDcgQEAKICNpbmNsdWRlICJzeXNkZXAuaCIKICNpbmNsdWRlICJiZmQuaCIK IAotI2RlZmluZSBUQVJHRVRfU1lNCQlhYXJjaDY0X3BlaV92ZWMKKyNkZWZpbmUgVEFSR0VU X1NZTQkJYWFyY2g2NF9wZWlfbGVfdmVjCiAjZGVmaW5lIFRBUkdFVF9OQU1FCQkicGVpLWFh cmNoNjQtbGl0dGxlIgogI2RlZmluZSBUQVJHRVRfQVJDSElURUNUVVJFCWJmZF9hcmNoX2Fh cmNoNjQKICNkZWZpbmUgVEFSR0VUX1BBR0VTSVpFCQk0MDk2CmRpZmYgLS1naXQgYS9iZmQv cGVpY29kZS5oIGIvYmZkL3BlaWNvZGUuaAppbmRleCAzODg4ZGQ0N2NjLi5hZGQ4ZDgyYmZk IDEwMDY0NAotLS0gYS9iZmQvcGVpY29kZS5oCisrKyBiL2JmZC9wZWljb2RlLmgKQEAgLTE5 MSw2ICsxOTEsOCBAQCBjb2ZmX3N3YXBfZmlsZWhkcl9pbiAoYmZkICogYWJmZCwgdm9pZCAq IHNyYywgdm9pZCAqIGRzdCkKIAogI2lmZGVmIENPRkZfSU1BR0VfV0lUSF9QRQogIyBkZWZp bmUgY29mZl9zd2FwX2ZpbGVoZHJfb3V0IF9iZmRfWFhpX29ubHlfc3dhcF9maWxlaGRyX291 dAorI2VsaWYgZGVmaW5lZCBDT0ZGX1dJVEhfcGVBQXJjaDY0CisjIGRlZmluZSBjb2ZmX3N3 YXBfZmlsZWhkcl9vdXQgX2JmZF9YWF9vbmx5X3N3YXBfZmlsZWhkcl9vdXQKICNlbGlmIGRl ZmluZWQgQ09GRl9XSVRIX3BleDY0CiAjIGRlZmluZSBjb2ZmX3N3YXBfZmlsZWhkcl9vdXQg X2JmZF9wZXg2NF9vbmx5X3N3YXBfZmlsZWhkcl9vdXQKICNlbGlmIGRlZmluZWQgQ09GRl9X SVRIX3BlcApkaWZmIC0tZ2l0IGEvYmZkL3BvL1NSQy1QT1RGSUxFUy5pbiBiL2JmZC9wby9T UkMtUE9URklMRVMuaW4KaW5kZXggMzBmY2U1ODBhYi4uMzZlNTFmZTA2MyAxMDA2NDQKLS0t IGEvYmZkL3BvL1NSQy1QT1RGSUxFUy5pbgorKysgYi9iZmQvcG8vU1JDLVBPVEZJTEVTLmlu CkBAIC0zMTMsNiArMzEzLDcgQEAgb3NmLWNvcmUuYwogcGM1MzItbWFjaC5jCiBwZGIuYwog cGRwMTEuYworcGUtYWFyY2g2NC5jCiBwZS1hcm0td2luY2UuYwogcGUtYXJtLmMKIHBlLWkz ODYuYwpkaWZmIC0tZ2l0IGEvYmZkL3RhcmdldHMuYyBiL2JmZC90YXJnZXRzLmMKaW5kZXgg N2RiYzNhNWRiZi4uMGJiODViNjRjYyAxMDA2NDQKLS0tIGEvYmZkL3RhcmdldHMuYworKysg Yi9iZmQvdGFyZ2V0cy5jCkBAIC02ODYsNyArNjg2LDggQEAgZXh0ZXJuIGNvbnN0IGJmZF90 YXJnZXQgYWFyY2g2NF9lbGY2NF9iZV9jbG91ZGFiaV92ZWM7CiBleHRlcm4gY29uc3QgYmZk X3RhcmdldCBhYXJjaDY0X2VsZjY0X2xlX3ZlYzsKIGV4dGVybiBjb25zdCBiZmRfdGFyZ2V0 IGFhcmNoNjRfZWxmNjRfbGVfY2xvdWRhYmlfdmVjOwogZXh0ZXJuIGNvbnN0IGJmZF90YXJn ZXQgYWFyY2g2NF9tYWNoX29fdmVjOwotZXh0ZXJuIGNvbnN0IGJmZF90YXJnZXQgYWFyY2g2 NF9wZWlfdmVjOworZXh0ZXJuIGNvbnN0IGJmZF90YXJnZXQgYWFyY2g2NF9wZWlfbGVfdmVj OworZXh0ZXJuIGNvbnN0IGJmZF90YXJnZXQgYWFyY2g2NF9wZV9sZV92ZWM7CiBleHRlcm4g Y29uc3QgYmZkX3RhcmdldCBhbHBoYV9lY29mZl9sZV92ZWM7CiBleHRlcm4gY29uc3QgYmZk X3RhcmdldCBhbHBoYV9lbGY2NF92ZWM7CiBleHRlcm4gY29uc3QgYmZkX3RhcmdldCBhbHBo YV9lbGY2NF9mYnNkX3ZlYzsKQEAgLTk5OSw3ICsxMDAwLDggQEAgc3RhdGljIGNvbnN0IGJm ZF90YXJnZXQgKiBjb25zdCBfYmZkX3RhcmdldF92ZWN0b3JbXSA9CiAJJmFhcmNoNjRfZWxm NjRfbGVfdmVjLAogCSZhYXJjaDY0X2VsZjY0X2xlX2Nsb3VkYWJpX3ZlYywKIAkmYWFyY2g2 NF9tYWNoX29fdmVjLAotCSZhYXJjaDY0X3BlaV92ZWMsCisJJmFhcmNoNjRfcGVfbGVfdmVj LAorCSZhYXJjaDY0X3BlaV9sZV92ZWMsCiAjZW5kaWYKIAogI2lmZGVmIEJGRDY0CmRpZmYg LS1naXQgYS9nYXMvY29uZmlnL29iai1jb2ZmLmggYi9nYXMvY29uZmlnL29iai1jb2ZmLmgK aW5kZXggMWRiZDM4YWVhMy4uZjc5YzczNzAyZiAxMDA2NDQKLS0tIGEvZ2FzL2NvbmZpZy9v YmotY29mZi5oCisrKyBiL2dhcy9jb25maWcvb2JqLWNvZmYuaApAQCAtNDAsNiArNDAsMTAg QEAKICNlbmRpZgogI2VuZGlmCiAKKyNpZmRlZiBUQ19BQVJDSDY0CisjaW5jbHVkZSAiY29m Zi9hYXJjaDY0LmgiCisjZW5kaWYKKwogI2lmZGVmIFRDX1BQQwogI2luY2x1ZGUgImNvZmYv cnM2MDAwLmgiCiAjZW5kaWYKZGlmZiAtLWdpdCBhL2dhcy9jb25maWcvdGMtYWFyY2g2NC5j IGIvZ2FzL2NvbmZpZy90Yy1hYXJjaDY0LmMKaW5kZXggOThhN2NhNTg3OC4uZjZmYTE1ODU4 MyAxMDA2NDQKLS0tIGEvZ2FzL2NvbmZpZy90Yy1hYXJjaDY0LmMKKysrIGIvZ2FzL2NvbmZp Zy90Yy1hYXJjaDY0LmMKQEAgLTMwLDkgKzMwLDkgQEAKIAogI2lmZGVmIE9CSl9FTEYKICNp bmNsdWRlICJlbGYvYWFyY2g2NC5oIgotI2luY2x1ZGUgImR3MmdlbmNmaS5oIgogI2VuZGlm CiAKKyNpbmNsdWRlICJkdzJnZW5jZmkuaCIKICNpbmNsdWRlICJkd2FyZjJkYmcuaCIKIAog LyogVHlwZXMgb2YgcHJvY2Vzc29yIHRvIGFzc2VtYmxlIGZvci4gICovCkBAIC02MSwyMSAr NjEsMjUgQEAgc3RhdGljIGFhcmNoNjRfaW5zdHJfc2VxdWVuY2UgKmluc25fc2VxdWVuY2Ug PSBOVUxMOwogI2lmZGVmIE9CSl9FTEYKIC8qIFByZS1kZWZpbmVkICJfR0xPQkFMX09GRlNF VF9UQUJMRV8iCSovCiBzdGF0aWMgc3ltYm9sUyAqR09UX3N5bWJvbDsKKyNlbmRpZgogCiAv KiBXaGljaCBBQkkgdG8gdXNlLiAgKi8KIGVudW0gYWFyY2g2NF9hYmlfdHlwZQogewogICBB QVJDSDY0X0FCSV9OT05FID0gMCwKICAgQUFSQ0g2NF9BQklfTFA2NCA9IDEsCi0gIEFBUkNI NjRfQUJJX0lMUDMyID0gMgorICBBQVJDSDY0X0FCSV9JTFAzMiA9IDIsCisgIEFBUkNINjRf QUJJX0xMUDY0ID0gMwogfTsKIAogI2lmbmRlZiBERUZBVUxUX0FSQ0gKICNkZWZpbmUgREVG QVVMVF9BUkNIICJhYXJjaDY0IgogI2VuZGlmCiAKKyNpZmRlZiBPQkpfRUxGCiAvKiBERUZB VUxUX0FSQ0ggaXMgaW5pdGlhbGl6ZWQgaW4gZ2FzL2NvbmZpZ3VyZS50Z3QuICAqLwogc3Rh dGljIGNvbnN0IGNoYXIgKmRlZmF1bHRfYXJjaCA9IERFRkFVTFRfQVJDSDsKKyNlbmRpZgog CiAvKiBBQXJjaDY0IEFCSSBmb3IgdGhlIG91dHB1dCBmaWxlLiAgKi8KIHN0YXRpYyBlbnVt IGFhcmNoNjRfYWJpX3R5cGUgYWFyY2g2NF9hYmkgPSBBQVJDSDY0X0FCSV9OT05FOwpAQCAt ODUsNyArODksMTAgQEAgc3RhdGljIGVudW0gYWFyY2g2NF9hYmlfdHlwZSBhYXJjaDY0X2Fi aSA9IEFBUkNINjRfQUJJX05PTkU7CiAgICA2NC1iaXQgbW9kZWwsIGluIHdoaWNoIHRoZSBD IGludCB0eXBlIGlzIDMyLWJpdHMgYnV0IHRoZSBDIGxvbmcgdHlwZQogICAgYW5kIGFsbCBw b2ludGVyIHR5cGVzIGFyZSA2NC1iaXQgb2JqZWN0cyAoTFA2NCkuICAqLwogI2RlZmluZSBp bHAzMl9wCQkoYWFyY2g2NF9hYmkgPT0gQUFSQ0g2NF9BQklfSUxQMzIpCi0jZW5kaWYKKwor LyogV2hlbiBub24gemVybywgQyB0eXBlcyBpbnQgYW5kIGxvbmcgYXJlIDMyIGJpdCwKKyAg IHBvaW50ZXJzLCBob3dldmVyIGFyZSA2NCBiaXQgKi8KKyNkZWZpbmUgbGxwNjRfcCAoYWFy Y2g2NF9hYmkgPT0gQUFSQ0g2NF9BQklfTExQNjQpCiAKIGVudW0gdmVjdG9yX2VsX3R5cGUK IHsKQEAgLTE0NTksNyArMTQ2Niw3IEBAIHNfdW5yZXEgKGludCBhIEFUVFJJQlVURV9VTlVT RUQpCiAKIC8qIERpcmVjdGl2ZXM6IEluc3RydWN0aW9uIHNldCBzZWxlY3Rpb24uICAqLwog Ci0jaWZkZWYgT0JKX0VMRgorI2lmIGRlZmluZWQgT0JKX0VMRiB8fCBkZWZpbmVkIE9CSl9D T0ZGCiAvKiBUaGlzIGNvZGUgaXMgdG8gaGFuZGxlIG1hcHBpbmcgc3ltYm9scyBhcyBkZWZp bmVkIGluIHRoZSBBUk0gQUFyY2g2NCBFTEYKICAgIHNwZWMuICAoU2VlICJNYXBwaW5nIHN5 bWJvbHMiLCBzZWN0aW9uIDQuNS40LCBBUk0gQUFFTEY2NCB2ZXJzaW9uIDAuMDUpLgogICAg Tm90ZSB0aGF0IHByZXZpb3VzbHksICRhIGFuZCAkdCBoYXMgdHlwZSBTVFRfRlVOQyAoQlNG X09CSkVDVCBmbGFnKSwKQEAgLTgzMzYsNyArODM0Myw3IEBAIGFhcmNoNjRfaGFuZGxlX2Fs aWduIChmcmFnUyAqIGZyYWdQKQogICBmaXggPSBieXRlcyAmIChub29wX3NpemUgLSAxKTsK ICAgaWYgKGZpeCkKICAgICB7Ci0jaWZkZWYgT0JKX0VMRgorI2lmIGRlZmluZWQgT0JKX0VM RiB8fCBkZWZpbmVkIE9CSl9DT0ZGCiAgICAgICBpbnNlcnRfZGF0YV9tYXBwaW5nX3N5bWJv bCAoTUFQX0lOU04sIGZyYWdQLT5mcl9maXgsIGZyYWdQLCBmaXgpOwogI2VuZGlmCiAgICAg ICBtZW1zZXQgKHAsIDAsIGZpeCk7CkBAIC04Mzk0LDYgKzg0MDEsNyBAQCBhYXJjaDY0X2lu aXRfZnJhZyAoZnJhZ1MgKiBmcmFnUCwgaW50IG1heF9jaGFycykKICAgICAgIGJyZWFrOwog ICAgIH0KIH0KKyNlbmRpZiAvKiBPQkpfRUxGICovCiAMCiAvKiBJbml0aWFsaXplIHRoZSBE V0FSRi0yIHVud2luZCBpbmZvcm1hdGlvbiBmb3IgdGhpcyBwcm9jZWR1cmUuICAqLwogCkBA IC04NDAyLDcgKzg0MTAsNiBAQCB0Y19hYXJjaDY0X2ZyYW1lX2luaXRpYWxfaW5zdHJ1Y3Rp b25zICh2b2lkKQogewogICBjZmlfYWRkX0NGQV9kZWZfY2ZhIChSRUdfU1AsIDApOwogfQot I2VuZGlmIC8qIE9CSl9FTEYgKi8KIAogLyogQ29udmVydCBSRUdOQU1FIHRvIGEgRFdBUkYt MiByZWdpc3RlciBudW1iZXIuICAqLwogCkBAIC04NDM5LDEwICs4NDQ2LDEwIEBAIHRjX2Fh cmNoNjRfcmVnbmFtZV90b19kdzJyZWdudW0gKGNoYXIgKnJlZ25hbWUpCiBpbnQKIGFhcmNo NjRfZHdhcmYyX2FkZHJfc2l6ZSAodm9pZCkKIHsKLSNpZiBkZWZpbmVkIChPQkpfTUFZQkVf RUxGKSB8fCBkZWZpbmVkIChPQkpfRUxGKQogICBpZiAoaWxwMzJfcCkKICAgICByZXR1cm4g NDsKLSNlbmRpZgorICBlbHNlIGlmIChsbHA2NF9wKQorICAgIHJldHVybiA4OwogICByZXR1 cm4gYmZkX2FyY2hfYml0c19wZXJfYWRkcmVzcyAoc3Rkb3V0cHV0KSAvIDg7CiB9CiAKQEAg LTkzMDcsOCArOTMxNCw2IEBAIGNvbnNfZml4X25ld19hYXJjaDY0IChmcmFnUyAqIGZyYWcs IGludCB3aGVyZSwgaW50IHNpemUsIGV4cHJlc3Npb25TICogZXhwKQogICBmaXhfbmV3X2V4 cCAoZnJhZywgd2hlcmUsIChpbnQpIHNpemUsIGV4cCwgcGNyZWwsIHR5cGUpOwogfQogCi0j aWZkZWYgT0JKX0VMRgotCiAvKiBJbXBsZW1lbnQgbWRfYWZ0ZXJfcGFyc2VfYXJncy4gIFRo aXMgaXMgdGhlIGVhcmxpZXN0IHRpbWUgd2UgbmVlZCB0byBkZWNpZGUKICAgIEFCSS4gIElm IG5vIC1tYWJpIHNwZWNpZmllZCwgdGhlIEFCSSB3aWxsIGJlIGRlY2lkZWQgYnkgdGFyZ2V0 IHRyaXBsZXQuICAqLwogCkBAIC05MzE4LDEzICs5MzIzLDE4IEBAIGFhcmNoNjRfYWZ0ZXJf cGFyc2VfYXJncyAodm9pZCkKICAgaWYgKGFhcmNoNjRfYWJpICE9IEFBUkNINjRfQUJJX05P TkUpCiAgICAgcmV0dXJuOwogCisjaWZkZWYgT0JKX0VMRgogICAvKiBERUZBVUxUX0FSQ0gg d2lsbCBoYXZlICI6MzIiIGV4dGVuc2lvbiBpZiBpdCdzIGNvbmZpZ3VyZWQgZm9yIElMUDMy LiAgKi8KICAgaWYgKHN0cmxlbiAoZGVmYXVsdF9hcmNoKSA+IDcgJiYgc3RyY21wIChkZWZh dWx0X2FyY2ggKyA3LCAiOjMyIikgPT0gMCkKICAgICBhYXJjaDY0X2FiaSA9IEFBUkNINjRf QUJJX0lMUDMyOwogICBlbHNlCiAgICAgYWFyY2g2NF9hYmkgPSBBQVJDSDY0X0FCSV9MUDY0 OworI2Vsc2UKKyAgYWFyY2g2NF9hYmkgPSBBQVJDSDY0X0FCSV9MTFA2NDsKKyNlbmRpZgog fQogCisjaWZkZWYgT0JKX0VMRgogY29uc3QgY2hhciAqCiBlbGY2NF9hYXJjaDY0X3Rhcmdl dF9mb3JtYXQgKHZvaWQpCiB7CkBAIC05MzQ3LDYgKzkzNTcsMTIgQEAgYWFyY2g2NGVsZl9m cm9iX3N5bWJvbCAoc3ltYm9sUyAqIHN5bXAsIGludCAqcHVudHApCiB7CiAgIGVsZl9mcm9i X3N5bWJvbCAoc3ltcCwgcHVudHApOwogfQorI2VsaWYgZGVmaW5lZCBPQkpfQ09GRgorY29u c3QgY2hhciAqCitjb2ZmX2FhcmNoNjRfdGFyZ2V0X2Zvcm1hdCAodm9pZCkKK3sKKyAgcmV0 dXJuICJwZS1hYXJjaDY0LWxpdHRsZSI7Cit9CiAjZW5kaWYKIAogLyogTUQgaW50ZXJmYWNl OiBGaW5hbGl6YXRpb24uCSovCkBAIC05NjYyLDcgKzk2NzgsMTIgQEAgbWRfYmVnaW4gKHZv aWQpCiAgIGNwdV92YXJpYW50ID0gKm1jcHVfY3B1X29wdDsKIAogICAvKiBSZWNvcmQgdGhl IENQVSB0eXBlLiAgKi8KLSAgbWFjaCA9IGlscDMyX3AgPyBiZmRfbWFjaF9hYXJjaDY0X2ls cDMyIDogYmZkX21hY2hfYWFyY2g2NDsKKyAgaWYoaWxwMzJfcCkKKyAgICBtYWNoID0gYmZk X21hY2hfYWFyY2g2NF9pbHAzMjsKKyAgZWxzZSBpZiAobGxwNjRfcCkKKyAgICBtYWNoID0g YmZkX21hY2hfYWFyY2g2NF9sbHA2NDsKKyAgZWxzZQorICAgIG1hY2ggPSBiZmRfbWFjaF9h YXJjaDY0OwogCiAgIGJmZF9zZXRfYXJjaF9tYWNoIChzdGRvdXRwdXQsIFRBUkdFVF9BUkNI LCBtYWNoKTsKIH0KQEAgLTEwMjMwLDggKzEwMjUxLDEyIEBAIHN0cnVjdCBhYXJjaDY0X29w dGlvbl9hYmlfdmFsdWVfdGFibGUKIH07CiAKIHN0YXRpYyBjb25zdCBzdHJ1Y3QgYWFyY2g2 NF9vcHRpb25fYWJpX3ZhbHVlX3RhYmxlIGFhcmNoNjRfYWJpc1tdID0geworI2lmZGVmIE9C Sl9FTEYKICAgeyJpbHAzMiIsCQlBQVJDSDY0X0FCSV9JTFAzMn0sCiAgIHsibHA2NCIsCQlB QVJDSDY0X0FCSV9MUDY0fSwKKyNlbHNlCisgIHsibGxwNjQiLAkJQUFSQ0g2NF9BQklfTExQ NjR9LAorI2VuZGlmCiB9OwogCiBzdGF0aWMgaW50CkBAIC0xMDI1NywxMCArMTAyODIsOCBA QCBhYXJjaDY0X3BhcnNlX2FiaSAoY29uc3QgY2hhciAqc3RyKQogfQogCiBzdGF0aWMgc3Ry dWN0IGFhcmNoNjRfbG9uZ19vcHRpb25fdGFibGUgYWFyY2g2NF9sb25nX29wdHNbXSA9IHsK LSNpZmRlZiBPQkpfRUxGCiAgIHsibWFiaT0iLCBOXygiPGFiaSBuYW1lPlx0ICBzcGVjaWZ5 IGZvciBBQkkgPGFiaSBuYW1lPiIpLAogICAgYWFyY2g2NF9wYXJzZV9hYmksIE5VTEx9LAot I2VuZGlmIC8qIE9CSl9FTEYgKi8KICAgeyJtY3B1PSIsIE5fKCI8Y3B1IG5hbWU+XHQgIGFz c2VtYmxlIGZvciBDUFUgPGNwdSBuYW1lPiIpLAogICAgYWFyY2g2NF9wYXJzZV9jcHUsIE5V TEx9LAogICB7Im1hcmNoPSIsIE5fKCI8YXJjaCBuYW1lPlx0ICBhc3NlbWJsZSBmb3IgYXJj aGl0ZWN0dXJlIDxhcmNoIG5hbWU+IiksCmRpZmYgLS1naXQgYS9nYXMvY29uZmlnL3RjLWFh cmNoNjQuaCBiL2dhcy9jb25maWcvdGMtYWFyY2g2NC5oCmluZGV4IGY1YzE3NTIzNzkuLjJk NTE0ZmY2MTAgMTAwNjQ0Ci0tLSBhL2dhcy9jb25maWcvdGMtYWFyY2g2NC5oCisrKyBiL2dh cy9jb25maWcvdGMtYWFyY2g2NC5oCkBAIC01OSw5ICs1OSwxMSBAQCBzdHJ1Y3QgYWFyY2g2 NF9maXgKICAgZW51bSBhYXJjaDY0X29wbmQgb3BuZDsKIH07CiAKLSNpZiBkZWZpbmVkIE9C Sl9FTEYKKyNpZmRlZiBPQkpfRUxGCiAjIGRlZmluZSBBQVJDSDY0X0JJX0VORElBTgogIyBk ZWZpbmUgVEFSR0VUX0ZPUk1BVAllbGY2NF9hYXJjaDY0X3RhcmdldF9mb3JtYXQgKCkKKyNl bGlmIGRlZmluZWQgKE9CSl9DT0ZGKQorIyBkZWZpbmUgVEFSR0VUX0ZPUk1BVCBjb2ZmX2Fh cmNoNjRfdGFyZ2V0X2Zvcm1hdCAoKQogI2VuZGlmCiAKICNkZWZpbmUgVENfRk9SQ0VfUkVM T0NBVElPTihGSVgpIGFhcmNoNjRfZm9yY2VfcmVsb2NhdGlvbiAoRklYKQpAQCAtMTY5LDcg KzE3MSw3IEBAIHZvaWQgYWFyY2g2NF9lbGZfY29weV9zeW1ib2xfYXR0cmlidXRlcyAoc3lt Ym9sUyAqLCBzeW1ib2xTICopOwogc3RydWN0IGFhcmNoNjRfZnJhZ190eXBlCiB7CiAgIGlu dCByZWNvcmRlZDsKLSNpZmRlZiBPQkpfRUxGCisjaWYgZGVmaW5lZCBPQkpfRUxGIHx8IGRl ZmluZWQgT0JKX0NPRkYKICAgLyogSWYgdGhlcmUgaXMgYSBtYXBwaW5nIHN5bWJvbCBhdCBv ZmZzZXQgMCBpbiB0aGlzIGZyYWcsCiAgICAgIGl0IHdpbGwgYmUgc2F2ZWQgaW4gRklSU1Rf TUFQLiAgSWYgdGhlcmUgYXJlIGFueSBtYXBwaW5nCiAgICAgIHN5bWJvbHMgaW4gdGhpcyBm cmFnLCB0aGUgbGFzdCBvbmUgd2lsbCBiZSBzYXZlZCBpbgpAQCAtMjAyLDggKzIwNCwxMCBA QCBzdHJ1Y3QgYWFyY2g2NF9mcmFnX3R5cGUKIGV4dGVybiBpbnQgYWFyY2g2NF9kd2FyZjJf YWRkcl9zaXplICh2b2lkKTsKICNkZWZpbmUgRFdBUkYyX0FERFJfU0laRShiZmQpIGFhcmNo NjRfZHdhcmYyX2FkZHJfc2l6ZSAoKQogCisjaWYgZGVmaW5lZCBPQkpfRUxGIHx8IGRlZmlu ZWQgT0JKX0NPRkYKICNpZmRlZiBPQkpfRUxGCiAjIGRlZmluZSBvYmpfZnJvYl9zeW1ib2wo c3ltLCBwdW50KQlhYXJjaDY0ZWxmX2Zyb2Jfc3ltYm9sICgoc3ltKSwgJiAocHVudCkpCisj ZW5kaWYKIAogIyBkZWZpbmUgR0xPQkFMX09GRlNFVF9UQUJMRV9OQU1FCSJfR0xPQkFMX09G RlNFVF9UQUJMRV8iCiAjIGRlZmluZSBUQ19TRUdNRU5UX0lORk9fVFlQRSAJCXN0cnVjdCBh YXJjaDY0X3NlZ21lbnRfaW5mb190eXBlCkBAIC0yNTksNiArMjYzLDcgQEAgZXh0ZXJuIHZv aWQgYWFyY2g2NF9hZnRlcl9wYXJzZV9hcmdzICh2b2lkKTsKIAogZXh0ZXJuIHZvaWQgYWFy Y2g2NF9mcmFnX2FsaWduX2NvZGUgKGludCwgaW50KTsKIGV4dGVybiBjb25zdCBjaGFyICog ZWxmNjRfYWFyY2g2NF90YXJnZXRfZm9ybWF0ICh2b2lkKTsKK2V4dGVybiBjb25zdCBjaGFy ICogY29mZl9hYXJjaDY0X3RhcmdldF9mb3JtYXQgKHZvaWQpOwogZXh0ZXJuIGludCBhYXJj aDY0X2ZvcmNlX3JlbG9jYXRpb24gKHN0cnVjdCBmaXggKik7CiBleHRlcm4gdm9pZCBhYXJj aDY0X2NsZWFudXAgKHZvaWQpOwogZXh0ZXJuIHZvaWQgYWFyY2g2NF9zdGFydF9saW5lX2hv b2sgKHZvaWQpOwpAQCAtMjc0LDEzICsyNzksNCBAQCBleHRlcm4gdm9pZCBhYXJjaDY0X2hh bmRsZV9hbGlnbiAoc3RydWN0IGZyYWcgKik7CiBleHRlcm4gaW50IHRjX2FhcmNoNjRfcmVn bmFtZV90b19kdzJyZWdudW0gKGNoYXIgKnJlZ25hbWUpOwogZXh0ZXJuIHZvaWQgdGNfYWFy Y2g2NF9mcmFtZV9pbml0aWFsX2luc3RydWN0aW9ucyAodm9pZCk7CiAKLSNpZmRlZiBURV9Q RQotCi0jZGVmaW5lIE9fc2VjcmVsIE9fbWQxCi0KLSNkZWZpbmUgVENfRFdBUkYyX0VNSVRf T0ZGU0VUICB0Y19wZV9kd2FyZjJfZW1pdF9vZmZzZXQKLXZvaWQgdGNfcGVfZHdhcmYyX2Vt aXRfb2Zmc2V0IChzeW1ib2xTICosIHVuc2lnbmVkIGludCk7Ci0KLSNlbmRpZiAvKiBURV9Q RSAqLwotCiAjZW5kaWYgLyogVENfQUFSQ0g2NCAqLwpkaWZmIC0tZ2l0IGEvZ2FzL2NvbmZp Zy90ZS1wZXBhYXJjaDY0LmggYi9nYXMvY29uZmlnL3RlLXBlcGFhcmNoNjQuaApuZXcgZmls ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwLi40Nzc0ZTk0YTYzCi0tLSAvZGV2L251 bGwKKysrIGIvZ2FzL2NvbmZpZy90ZS1wZXBhYXJjaDY0LmgKQEAgLTAsMCArMSwyOSBAQAor LyogQ29weXJpZ2h0IChDKSAyMDA2LTIwMjIgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJ bmMuCisKKyAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIEdBUywgdGhlIEdOVSBBc3NlbWJsZXIu CisKKyAgIEdBUyBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBh bmQvb3IgbW9kaWZ5CisgICBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFs IFB1YmxpYyBMaWNlbnNlIGFzCisgICBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUg Rm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMywKKyAgIG9yIChhdCB5b3VyIG9wdGlvbikg YW55IGxhdGVyIHZlcnNpb24uCisKKyAgIEdBUyBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9w ZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQKKyAgIFdJVEhPVVQgQU5ZIFdBUlJBTlRZ OyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAgIE1FUkNIQU5UQUJJ TElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZQorICAgdGhl IEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisKKyAgIFlv dSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1Ymxp YyBMaWNlbnNlCisgICBhbG9uZyB3aXRoIEdBUzsgc2VlIHRoZSBmaWxlIENPUFlJTkcuICBJ ZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlCisgICBTb2Z0d2FyZSBGb3VuZGF0aW9uLCA1MSBG cmFua2xpbiBTdHJlZXQgLSBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQQorICAgMDIxMTAtMTMw MSwgVVNBLiAgKi8KKworI2RlZmluZSBURV9QRVAKKyNkZWZpbmUgQ09GRl9XSVRIX3BlQUFy Y2g2NAorCisjZGVmaW5lIFRFX1BFCisjZGVmaW5lIExFWF9BVCAoTEVYX0JFR0lOX05BTUUg fCBMRVhfTkFNRSkgLyogQ2FuIGhhdmUgQCdzIGluc2lkZSBsYWJlbHMuICAqLworCisvKiBU aGUgUEUgZm9ybWF0IHN1cHBvcnRzIGxvbmcgc2VjdGlvbiBuYW1lcy4gICovCisjZGVmaW5l IENPRkZfTE9OR19TRUNUSU9OX05BTUVTCisKKyNpbmNsdWRlICJvYmotZm9ybWF0LmgiCmRp ZmYgLS1naXQgYS9nYXMvY29uZmlndXJlLnRndCBiL2dhcy9jb25maWd1cmUudGd0CmluZGV4 IDlmMmI2NzIwYmQuLjgyZjJkNDRmNDEgMTAwNjQ0Ci0tLSBhL2dhcy9jb25maWd1cmUudGd0 CisrKyBiL2dhcy9jb25maWd1cmUudGd0CkBAIC0xMzUsNyArMTM1LDcgQEAgY2FzZSAke2dl bmVyaWNfdGFyZ2V0fSBpbgogICAgIGVzYWMgOzsKICAgYWFyY2g2NCotKi1uZXRic2QqKQkJ CWZtdD1lbGYgZW09bmJzZDs7CiAgIGFhcmNoNjQqLSotb3BlbmJzZCopCQkJZm10PWVsZjs7 Ci0KKyAgYWFyY2g2NCotKi1wZSopCQkJZm10PWNvZmYgZW09cGVwYWFyY2g2NCA7OwogICBh bHBoYS0qLSp2bXMqKQkJCWZtdD1ldmF4IDs7CiAgIGFscGhhLSotb3NmKikJCQkJZm10PWVj b2ZmIDs7CiAgIGFscGhhLSotbGludXgqZWNvZmYqKQkJCWZtdD1lY29mZiA7OwpkaWZmIC0t Z2l0IGEvZ2FzL3Rlc3RzdWl0ZS9nYXMvcGUvcGUtYWFyY2g2NC5kIGIvZ2FzL3Rlc3RzdWl0 ZS9nYXMvcGUvcGUtYWFyY2g2NC5kCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw MDAwMDAuLjBiODAwOWRhNWMKLS0tIC9kZXYvbnVsbAorKysgYi9nYXMvdGVzdHN1aXRlL2dh cy9wZS9wZS1hYXJjaDY0LmQKQEAgLTAsMCArMSwxNCBAQAorI2FzOgorI29iamR1bXA6IC1k CisKKy4qOiAgICAgZmlsZSBmb3JtYXQgcGUtYWFyY2g2NC1saXR0bGUKKworCitEaXNhc3Nl bWJseSBvZiBzZWN0aW9uIC50ZXh0OgorCiswMDAwMDAwMDAwMDAwMDAwIDxfc3RhcnQ+Ogor ICAgMDoJZDI4MDAyODEgCW1vdgl4MSwgIzB4MTQgICAgICAgICAgICAgICAgICAJLy8gIzIw CisgICA0OgkxNDAwMDAwMSAJYgk4IDxmb28+CisKKzAwMDAwMDAwMDAwMDAwMDggPGZvbz46 CisgICA4OglkNjVmMDNjMCAJcmV0CmRpZmYgLS1naXQgYS9nYXMvdGVzdHN1aXRlL2dhcy9w ZS9wZS1hYXJjaDY0LnMgYi9nYXMvdGVzdHN1aXRlL2dhcy9wZS9wZS1hYXJjaDY0LnMKbmV3 IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMC4uNTQ2ZDU1ZmMzNgotLS0gL2Rl di9udWxsCisrKyBiL2dhcy90ZXN0c3VpdGUvZ2FzL3BlL3BlLWFhcmNoNjQucwpAQCAtMCww ICsxLDExIEBACisjIEEgbGl0dGxlIHRlc3QgdG8gZW5zdXJlIHBlLWFhcmNoNjQgaXMgd29y a2luZyBpbiBHQVMuCisjIEN1cnJlbnRseSwgdGhlIHBvb3IgcGUtYWFyY2g2NCBpbXBsZW1l bnRhdGlvbiBpbiBiaW51dGlscworIyBjb3VsZG4ndCBkbyBhbnl0aGluZyB1c2VmdWwsIGhl bmNlLCB0aGlzIHRlc3QgaXMgcmF0aGVyIHNob3J0CisKKy5zZWN0aW9uIC50ZXh0CisKK19z dGFydDoKKyAgICBtb3YgeDEsIDIwCisgICAgYiBmb28KK2ZvbzoKKyAgICByZXQKZGlmZiAt LWdpdCBhL2dhcy90ZXN0c3VpdGUvZ2FzL3BlL3BlLmV4cCBiL2dhcy90ZXN0c3VpdGUvZ2Fz L3BlL3BlLmV4cAppbmRleCAzNTY4ZmY3YjAyLi44ZGY3NTBmOWRkIDEwMDY0NAotLS0gYS9n YXMvdGVzdHN1aXRlL2dhcy9wZS9wZS5leHAKKysrIGIvZ2FzL3Rlc3RzdWl0ZS9nYXMvcGUv cGUuZXhwCkBAIC01Miw2ICs1MiwxMiBAQCBpZiAoW2lzdGFyZ2V0ICJ4ODZfNjQtKi1taW5n dyoiXSkgdGhlbiB7CiAJcnVuX2R1bXBfdGVzdCAicGVzZWgteDY0LTYiCiB9CiAKKworIyBU aGlzIHRlc3QgaXMgb25seSBmb3IgQUFyY2g2NAoraWYgKFtpc3RhcmdldCAiYWFyY2g2NC0q LXBlKiJdKSB7CisJcnVuX2R1bXBfdGVzdCAicGUtYWFyY2g2NCIKK30KKwogIyBCaWcgb2Jq CiAKIApkaWZmIC0tZ2l0IGEvZ2RiL2NvZmYtcGUtcmVhZC5jIGIvZ2RiL2NvZmYtcGUtcmVh ZC5jCmluZGV4IDJmM2I4MDgxNWIuLjBmNTdkZWIzOTEgMTAwNjQ0Ci0tLSBhL2dkYi9jb2Zm LXBlLXJlYWQuYworKysgYi9nZGIvY29mZi1wZS1yZWFkLmMKQEAgLTMzMSw3ICszMzEsOSBA QCByZWFkX3BlX2V4cG9ydGVkX3N5bXMgKG1pbmltYWxfc3ltYm9sX3JlYWRlciAmcmVhZGVy LAogICBzZWN0aW9uX2RhdGFbUEVfU0VDVElPTl9JTkRFWF9CU1NdLnNlY3Rpb25fbmFtZSA9 ICIuYnNzIjsKIAogICBpc19wZTY0ID0gKHN0cmNtcCAodGFyZ2V0LCAicGUteDg2LTY0Iikg PT0gMAotCSAgICAgfHwgc3RyY21wICh0YXJnZXQsICJwZWkteDg2LTY0IikgPT0gMCk7CisJ ICAgICB8fCBzdHJjbXAgKHRhcmdldCwgInBlaS14ODYtNjQiKSA9PSAwCisJICAgICB8fCBz dHJjbXAgKHRhcmdldCwgInBlLWFhcmNoNjQiKSA9PSAwCisJICAgICB8fCBzdHJjbXAgKHRh cmdldCwgInBlaS1hYXJjaDY0IikgPT0gMCk7CiAgIGlzX3BlMzIgPSAoc3RyY21wICh0YXJn ZXQsICJwZS1pMzg2IikgPT0gMAogCSAgICAgfHwgc3RyY21wICh0YXJnZXQsICJwZWktaTM4 NiIpID09IDAKIAkgICAgIHx8IHN0cmNtcCAodGFyZ2V0LCAicGUtYXJtLXdpbmNlLWxpdHRs ZSIpID09IDAKQEAgLTYxMCw3ICs2MTIsOSBAQCBwZV90ZXh0X3NlY3Rpb25fb2Zmc2V0IChz dHJ1Y3QgYmZkICphYmZkKQogICB0YXJnZXQgPSBiZmRfZ2V0X3RhcmdldCAoYWJmZCk7CiAK ICAgaXNfcGU2NCA9IChzdHJjbXAgKHRhcmdldCwgInBlLXg4Ni02NCIpID09IDAKLQkgICAg IHx8IHN0cmNtcCAodGFyZ2V0LCAicGVpLXg4Ni02NCIpID09IDApOworCSAgICAgfHwgc3Ry Y21wICh0YXJnZXQsICJwZWkteDg2LTY0IikgPT0gMAorCSAgICAgfHwgc3RyY21wICh0YXJn ZXQsICJwZS1hYXJjaDY0IikgPT0gMAorCSAgICAgfHwgc3RyY21wICh0YXJnZXQsICJwZWkt YWFyY2g2NCIpID09IDApOwogICBpc19wZTMyID0gKHN0cmNtcCAodGFyZ2V0LCAicGUtaTM4 NiIpID09IDAKIAkgICAgIHx8IHN0cmNtcCAodGFyZ2V0LCAicGVpLWkzODYiKSA9PSAwCiAJ ICAgICB8fCBzdHJjbXAgKHRhcmdldCwgInBlLWFybS13aW5jZS1saXR0bGUiKSA9PSAwCmRp ZmYgLS1naXQgYS9pbmNsdWRlL2NvZmYvYWFyY2g2NC5oIGIvaW5jbHVkZS9jb2ZmL2FhcmNo NjQuaAppbmRleCAyYmJlYWE5ZmFkLi4xMDBlMDhmMThlIDEwMDY0NAotLS0gYS9pbmNsdWRl L2NvZmYvYWFyY2g2NC5oCisrKyBiL2luY2x1ZGUvY29mZi9hYXJjaDY0LmgKQEAgLTYwLDQg KzYwLDI2IEBAIHN0cnVjdCBleHRlcm5hbF9yZWxvYwogI2RlZmluZSBSRUxPQyBzdHJ1Y3Qg ZXh0ZXJuYWxfcmVsb2MKICNkZWZpbmUgUkVMU1ogMTQKIAorLyogQVJNNjQgcmVsb2NhdGlv bnMgdHlwZXMuICovCisKKworI2RlZmluZSBJTUFHRV9SRUxfQVJNNjRfQUJTT0xVVEUgICAg ICAgIDB4MDAwMCAgLyogTm8gcmVsb2NhdGlvbiByZXF1aXJlZCAqLworI2RlZmluZSBJTUFH RV9SRUxfQVJNNjRfQUREUjMyICAgICAgICAgIDB4MDAwMSAgLyogVGhlIDMyLWJpdCBWQSBv ZiB0aGUgdGFyZ2V0LiAqLworI2RlZmluZSBJTUFHRV9SRUxfQVJNNjRfQUREUjMyTkIgICAg ICAgIDB4MDAwMiAgLyogVGhlIDMyLWJpdCBSVkEgb2YgdGhlIHRhcmdldC4gKi8KKyNkZWZp bmUgSU1BR0VfUkVMX0FSTTY0X0JSQU5DSDI2ICAgICAgICAweDAwMDMgIC8qIFRoZSAyNi1i aXQgcmVsYXRpdmUgZGlzcGxhY2VtZW50IHRvIHRoZSB0YXJnZXQsIGZvciBCIGFuZCBCTCBp bnN0cnVjdGlvbnMuICovCisjZGVmaW5lIElNQUdFX1JFTF9BUk02NF9QQUdFQkFTRV9SRUwy MSAgMHgwMDA0ICAvKiBUaGUgcGFnZSBiYXNlIG9mIHRoZSB0YXJnZXQsIGZvciBBRFJQIGlu c3RydWN0aW9uLiAqLworI2RlZmluZSBJTUFHRV9SRUxfQVJNNjRfUkVMMjEgICAgICAgICAg IDB4MDAwNSAgLyogVGhlIDEyLWJpdCByZWxhdGl2ZSBkaXNwbGFjZW1lbnQgdG8gdGhlIHRh cmdldCwgZm9yIGluc3RydWN0aW9uIEFEUiAqLworI2RlZmluZSBJTUFHRV9SRUxfQVJNNjRf UEFHRU9GRlNFVF8xMkEgIDB4MDAwNiAgLyogVGhlIDEyLWJpdCBwYWdlIG9mZnNldCBvZiB0 aGUgdGFyZ2V0LCBmb3IgaW5zdHJ1Y3Rpb25zIEFERC9BRERTIChpbW1lZGlhdGUpIHdpdGgg emVybyBzaGlmdC4gKi8KKyNkZWZpbmUgSU1BR0VfUkVMX0FSTTY0X1BBR0VPRkZTRVRfMTJM ICAweDAwMDcgIC8qIFRoZSAxMi1iaXQgcGFnZSBvZmZzZXQgb2YgdGhlIHRhcmdldCwgZm9y IGluc3RydWN0aW9uIExEUiAoaW5kZXhlZCwgdW5zaWduZWQgaW1tZWRpYXRlKS4gKi8KKyNk ZWZpbmUgSU1BR0VfUkVMX0FSTTY0X1NFQ1JFTCAgICAgICAgICAweDAwMDggIC8qIFRoZSAz Mi1iaXQgb2Zmc2V0IG9mIHRoZSB0YXJnZXQgZnJvbSB0aGUgYmVnaW5uaW5nIG9mIGl0cyBz ZWN0aW9uLiBUaGlzIGlzIHVzZWQgdG8gc3VwcG9ydCBkZWJ1Z2dpbmcgaW5mb3JtYXRpb24g YW5kIHN0YXRpYyB0aHJlYWQgbG9jYWwgc3RvcmFnZS4gKi8KKyNkZWZpbmUgSU1BR0VfUkVM X0FSTTY0X1NFQ1JFTF9MT1cxMkEgICAweDAwMDkgIC8qIEJpdCAwOjExIG9mIHNlY3Rpb24g b2Zmc2V0IG9mIHRoZSB0YXJnZXQsIGZvciBpbnN0cnVjdGlvbnMgQUREL0FERFMgKGltbWVk aWF0ZSkgd2l0aCB6ZXJvIHNoaWZ0LiAqLworI2RlZmluZSBJTUFHRV9SRUxfQVJNNjRfU0VD UkVMX0hJR0gxMkEgIDB4MDAwQSAgLyogQml0IDEyOjIzIG9mIHNlY3Rpb24gb2Zmc2V0IG9m IHRoZSB0YXJnZXQsIGZvciBpbnN0cnVjdGlvbnMgQUREL0FERFMgKGltbWVkaWF0ZSkgd2l0 aCB6ZXJvIHNoaWZ0LiAqLworI2RlZmluZSBJTUFHRV9SRUxfQVJNNjRfU0VDUkVMX0xPVzEy TCAgIDB4MDAwQiAgLyogQml0IDA6MTEgb2Ygc2VjdGlvbiBvZmZzZXQgb2YgdGhlIHRhcmdl dCwgZm9yIGluc3RydWN0aW9uIExEUiAoaW5kZXhlZCwgdW5zaWduZWQgaW1tZWRpYXRlKS4g Ki8KKyNkZWZpbmUgSU1BR0VfUkVMX0FSTTY0X1RPS0VOICAgICAgICAgICAweDAwMEMgIC8q IENMUiB0b2tlbiAqLworI2RlZmluZSBJTUFHRV9SRUxfQVJNNjRfU0VDVElPTiAgICAgICAg IDB4MDAwRCAgLyogVGhlIDE2LWJpdCBzZWN0aW9uIGluZGV4IG9mIHRoZSBzZWN0aW9uIHRo YXQgY29udGFpbnMgdGhlIHRhcmdldC4gVGhpcyBpcyB1c2VkIHRvIHN1cHBvcnQgZGVidWdn aW5nIGluZm9ybWF0aW9uLiAqLworI2RlZmluZSBJTUFHRV9SRUxfQVJNNjRfQUREUjY0ICAg ICAgICAgIDB4MDAwRSAgLyogVGhlIDY0LWJpdCBWQSBvZiB0aGUgcmVsb2NhdGlvbiB0YXJn ZXQuICovCisjZGVmaW5lIElNQUdFX1JFTF9BUk02NF9CUkFOQ0gxOSAgICAgICAgMHgwMDBG ICAvKiAxOSBiaXQgb2Zmc2V0IDw8IDIgJiBzaWduIGV4dC4gZm9yIGNvbmRpdGlvbmFsIEIg Ki8KKyNkZWZpbmUgSU1BR0VfUkVMX0FSTTY0X0JSQU5DSDE0ICAgICAgICAweDAwMTAgIC8q IFRoZSAxNC1iaXQgb2Zmc2V0IHRvIHRoZSByZWxvY2F0aW9uIHRhcmdldCwgZm9yIGluc3Ry dWN0aW9ucyBUQlogYW5kIFRCTlouICovCisjZGVmaW5lIElNQUdFX1JFTF9BUk02NF9SRUwz MiAgICAgICAgICAgMHgwMDExICAvKiBUaGUgMzItYml0IHJlbGF0aXZlIGFkZHJlc3MgZnJv bSB0aGUgYnl0ZSBmb2xsb3dpbmcgdGhlIHJlbG9jYXRpb24uICovCisKICNkZWZpbmUgQVJN X05PVEVfU0VDVElPTiAiLm5vdGUiCmRpZmYgLS1naXQgYS9sZC9NYWtlZmlsZS5hbSBiL2xk L01ha2VmaWxlLmFtCmluZGV4IGJiZTI1ZjNhY2EuLmI0ZWM0N2FlMWYgMTAwNjQ0Ci0tLSBh L2xkL01ha2VmaWxlLmFtCisrKyBiL2xkL01ha2VmaWxlLmFtCkBAIC0zNzcsNiArMzc3LDcg QEAgQUxMX0VNVUxBVElPTlMgPSAkKEFMTF9FTVVMQVRJT05fU09VUkNFUzouYz0uQE9CSkVY VEApCiBBTExfNjRfRU1VTEFUSU9OX1NPVVJDRVMgPSBcCiAJZWFhcmNoNjRjbG91ZGFiaS5j IFwKIAllYWFyY2g2NGNsb3VkYWJpYi5jIFwKKwllYWFyY2g2NHBlLmMgXAogCWVhYXJjaDY0 ZWxmLmMgXAogCWVhYXJjaDY0ZWxmMzIuYyBcCiAJZWFhcmNoNjRlbGYzMmIuYyBcCmRpZmYg LS1naXQgYS9sZC9NYWtlZmlsZS5pbiBiL2xkL01ha2VmaWxlLmluCmluZGV4IDQwMGVlZDI3 MTcuLjIxZDdlZGI0MTAgMTAwNjQ0Ci0tLSBhL2xkL01ha2VmaWxlLmluCisrKyBiL2xkL01h a2VmaWxlLmluCkBAIC04ODcsNiArODg3LDcgQEAgQUxMXzY0X0VNVUxBVElPTl9TT1VSQ0VT ID0gXAogCWVhYXJjaDY0bGludXgzMi5jIFwKIAllYWFyY2g2NGxpbnV4MzJiLmMgXAogCWVh YXJjaDY0bGludXhiLmMgXAorCWVhYXJjaDY0cGUuYyBcCiAJZWVsZjMyX3g4Nl82NC5jIFwK IAllZWxmMzJiNDMwMC5jIFwKIAllZWxmMzJibWlwLmMgXApkaWZmIC0tZ2l0IGEvbGQvY29u ZmlndXJlLnRndCBiL2xkL2NvbmZpZ3VyZS50Z3QKaW5kZXggMmJhZTkwOTliNi4uOTc2Mzk4 ODBkNyAxMDA2NDQKLS0tIGEvbGQvY29uZmlndXJlLnRndAorKysgYi9sZC9jb25maWd1cmUu dGd0CkBAIC0xMTcsNiArMTE3LDEwIEBAIGFhcmNoNjQtKi1saW51eCopCXRhcmdfZW11bD1h YXJjaDY0bGludXgKIGFhcmNoNjQtKi1oYWlrdSopCXRhcmdfZW11bD1hYXJjaDY0aGFpa3UK IAkJCXRhcmdfZXh0cmFfZW11bHM9ImFhcmNoNjRlbGYgYWFyY2g2NGVsZjMyIGFhcmNoNjRl bGYzMmIgYWFyY2g2NGVsZmIgYXJtZWxmIGFybWVsZmIgYXJtZWxmX2hhaWt1ICR0YXJnX2V4 dHJhX2xpYnBhdGgiCiAJCQk7OworYWFyY2g2NC0qLXBlKikKKwkJCXRhcmdfZW11bD1hYXJj aDY0cGUKKwkJCXRhcmdfZXh0cmFfb2ZpbGVzPSJkZWZmaWxlcC5vIHBlcC1kbGwtYWFyY2g2 NC5vIgorCQkJOzsKIGFscGhhKi0qLWZyZWVic2QqIHwgYWxwaGEqLSota2ZyZWVic2QqLWdu dSkKIAkJCXRhcmdfZW11bD1lbGY2NGFscGhhX2Zic2QKIAkJCXRhcmdfZXh0cmFfZW11bHM9 ImVsZjY0YWxwaGEgYWxwaGEiCkBAIC0xMDQyLDcgKzEwNDYsNyBAQCB4ODZfNjQtKi1mcmVl YnNkKiB8IHg4Nl82NC0qLWtmcmVlYnNkKi1nbnUpCiAJCQk7OwogeDg2XzY0LSotcGUgfCB4 ODZfNjQtKi1wZXApIHRhcmdfZW11bD1pMzg2cGVwIDsKIAkJCXRhcmdfZXh0cmFfZW11bHM9 aTM4NnBlIDsKLQkJCXRhcmdfZXh0cmFfb2ZpbGVzPSJkZWZmaWxlcC5vIHBlcC1kbGwubyBw ZS1kbGwubyIKKwkJCXRhcmdfZXh0cmFfb2ZpbGVzPSJkZWZmaWxlcC5vIHBlcC1kbGwteDg2 XzY0Lm8gcGUtZGxsLm8iCiAJCQk7OwogeDg2XzY0LSotY3lnd2luKQl0YXJnX2VtdWw9aTM4 NnBlcCA7CiAJCQl0YXJnX2V4dHJhX2VtdWxzPWkzODZwZQpkaWZmIC0tZ2l0IGEvbGQvZW11 bHBhcmFtcy9hYXJjaDY0cGUuc2ggYi9sZC9lbXVscGFyYW1zL2FhcmNoNjRwZS5zaApuZXcg ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwLi4wMmJmMDJjZDk2Ci0tLSAvZGV2 L251bGwKKysrIGIvbGQvZW11bHBhcmFtcy9hYXJjaDY0cGUuc2gKQEAgLTAsMCArMSw5IEBA CitBUkNIPSJhYXJjaDY0IgorU0NSSVBUX05BTUU9cGVwCitPVVRQVVRfRk9STUFUPSJwZWkt YWFyY2g2NC1saXR0bGUiCitSRUxPQ0FURUFCTEVfT1VUUFVUX0ZPUk1BVD0icGUtYWFyY2g2 NC1saXR0bGUiCitURU1QTEFURV9OQU1FPXBlcAorU1VCU1lTVEVNPVBFX0RFRl9TVUJTWVNU RU0KK0lOSVRJQUxfU1lNQk9MX0NIQVI9XCJfXCIKK1RBUkdFVF9QQUdFX1NJWkU9MHgxMDAw CitHRU5FUkFURV9BVVRPX0lNUE9SVF9TQ1JJUFQ9MQpkaWZmIC0tZ2l0IGEvbGQvZW11bHRl bXBsL3BlcC5lbSBiL2xkL2VtdWx0ZW1wbC9wZXAuZW0KaW5kZXggZDk0ZjE4YjA1Yy4uN2Ez OTBlNzRiMCAxMDA2NDQKLS0tIGEvbGQvZW11bHRlbXBsL3BlcC5lbQorKysgYi9sZC9lbXVs dGVtcGwvcGVwLmVtCkBAIC00OCw3ICs0OCwxMSBAQCBmcmFnbWVudCA8PEVPRgogCiAjZGVm aW5lIENPRkZfSU1BR0VfV0lUSF9QRQogI2RlZmluZSBDT0ZGX1dJVEhfUEUKKyNpZmRlZiBU QVJHRVRfSVNfYWFyY2g2NHBlCisjZGVmaW5lIENPRkZfV0lUSF9wZUFBcmNoNjQKKyNlbGlm IGRlZmluZWQgKFRBUkdFVF9JU19pMzg2cGVwKQogI2RlZmluZSBDT0ZGX1dJVEhfcGV4NjQK KyNlbmRpZgogCiAjaW5jbHVkZSAic3lzZGVwLmgiCiAjaW5jbHVkZSAiYmZkLmgiCkBAIC03 Miw3ICs3NiwxMSBAQCBmcmFnbWVudCA8PEVPRgogCiAvKiBGSVhNRTogU2VlIGJmZC9wZVhY aWdlbi5jIGZvciB3aHkgd2UgaW5jbHVkZSBhbiBhcmNoaXRlY3R1cmUgc3BlY2lmaWMKICAg IGhlYWRlciBpbiBnZW5lcmljIFBFIGNvZGUuICAqLwotI2luY2x1ZGUgImNvZmYveDg2XzY0 LmgiCisjaWZkZWYgVEFSR0VUX0lTX2kzODZwZXAKKyMgaW5jbHVkZSAiY29mZi94ODZfNjQu aCIKKyNlbGlmIGRlZmluZWQgVEFSR0VUX0lTX2FhcmNoNjRwZQorIyBpbmNsdWRlICJjb2Zm L2FhcmNoNjQuaCIKKyNlbmRpZgogI2luY2x1ZGUgImNvZmYvcGUuaCIKIAogLyogRklYTUU6 IFRoZXNlIGFyZSBCRkQgaW50ZXJuYWwgaGVhZGVyIGZpbGVzLCBhbmQgd2Ugc2hvdWxkIG5v dCBiZQpkaWZmIC0tZ2l0IGEvbGQvcGUtZGxsLmMgYi9sZC9wZS1kbGwuYwppbmRleCAzMzhl MmRlZjgzLi5kZjE2ZTg1YmJlIDEwMDY0NAotLS0gYS9sZC9wZS1kbGwuYworKysgYi9sZC9w ZS1kbGwuYwpAQCAtNDIsNyArNDIsNyBAQAogI2luY2x1ZGUgIi4uL2JmZC9saWJjb2ZmLmgi CiAjaW5jbHVkZSAiZGVmZmlsZS5oIgogCi0jaWZkZWYgcGVfdXNlX3g4Nl82NAorI2lmZGVm IHBlX3VzZV9wbHVzCiAKICNkZWZpbmUgUEVfSURBVEE0X1NJWkUJOAogI2RlZmluZSBQRV9J REFUQTVfU0laRQk4CkBAIC0yMDksNyArMjA5LDcgQEAgc3RhdGljIGNvbnN0IGF1dG9maWx0 ZXJfZW50cnlfdHlwZSBhdXRvZmlsdGVyX3N5bWJvbGxpc3RfaTM4NltdID0KICAgeyBTVFJJ TkdfQ09NTUFfTEVOICgiX05VTExfSU1QT1JUX0RFU0NSSVBUT1IiKSB9LAogICAvKiBFbnRy eSBwb2ludCBzeW1ib2xzLCBhbmQgZW50cnkgaG9va3MuICAqLwogICB7IFNUUklOR19DT01N QV9MRU4gKCJjeWd3aW5fY3J0MCIpIH0sCi0jaWZkZWYgcGVfdXNlX3g4Nl82NAorI2lmZGVm IHBlX3VzZV9wbHVzCiAgIHsgU1RSSU5HX0NPTU1BX0xFTiAoIkRsbE1haW4iKSB9LAogICB7 IFNUUklOR19DT01NQV9MRU4gKCJEbGxFbnRyeVBvaW50IikgfSwKICAgeyBTVFJJTkdfQ09N TUFfTEVOICgiRGxsTWFpbkNSVFN0YXJ0dXAiKSB9LApAQCAtMjQ2LDEzICsyNDYsMTQgQEAg c3RhdGljIGNvbnN0IGF1dG9maWx0ZXJfZW50cnlfdHlwZSBhdXRvZmlsdGVyX3N5bWJvbGxp c3RfaTM4NltdID0KICNkZWZpbmUgUEVfQVJDSF9taXBzCSAzCiAjZGVmaW5lIFBFX0FSQ0hf YXJtCSA0CiAjZGVmaW5lIFBFX0FSQ0hfYXJtX3dpbmNlIDUKKyNkZWZpbmUgUEVfQVJDSF9h YXJjaDY0ICA2CiAKIC8qIERvbid0IG1ha2UgaXQgY29uc3RhbnQgYXMgdW5kZXJzY29yZSBt b2RlIGdldHMgcG9zc2libHkgb3ZlcnJpZGVuCiAgICBieSB0YXJnZXQgb3IgLShuby0pbGVh ZGluZy11bmRlcnNjb3JlIG9wdGlvbi4gICovCiBzdGF0aWMgcGVfZGV0YWlsc190eXBlIHBl X2RldGFpbF9saXN0W10gPQogewogICB7Ci0jaWZkZWYgcGVfdXNlX3g4Nl82NAorI2lmZGVm IHBlX3VzZV9wbHVzCiAgICAgInBlaS14ODYtNjQiLAogICAgICJwZS14ODYtNjQiLAogICAg IDMgLyogUl9JTUFHRUJBU0UgKi8sCkBAIC0yNjMsMTQgKzI2NCwxNCBAQCBzdGF0aWMgcGVf ZGV0YWlsc190eXBlIHBlX2RldGFpbF9saXN0W10gPQogI2VuZGlmCiAgICAgUEVfQVJDSF9p Mzg2LAogICAgIGJmZF9hcmNoX2kzODYsCi0jaWZkZWYgcGVfdXNlX3g4Nl82NAorI2lmZGVm IHBlX3VzZV9wbHVzCiAgICAgZmFsc2UsCiAjZWxzZQogICAgIHRydWUsCiAjZW5kaWYKICAg ICBhdXRvZmlsdGVyX3N5bWJvbGxpc3RfaTM4NgogICB9LAotI2lmZGVmIHBlX3VzZV94ODZf NjQKKyNpZmRlZiBwZV91c2VfcGx1cwogICB7CiAgICAgInBlaS14ODYtNjQiLAogICAgICJw ZS1iaWdvYmoteDg2LTY0IiwKQEAgLTMyNyw2ICszMjgsMTUgQEAgc3RhdGljIHBlX2RldGFp bHNfdHlwZSBwZV9kZXRhaWxfbGlzdFtdID0KICAgICBmYWxzZSwKICAgICBhdXRvZmlsdGVy X3N5bWJvbGxpc3RfZ2VuZXJpYwogICB9LAorICB7CisgICAgInBlaS1hYXJjaDY0LWxpdHRs ZSIsCisgICAgInBlLWFhcmNoNjQtbGl0dGxlIiwKKyAgICAyLCAgLyogQVJNNjRfUlZBMzIg Ki8KKyAgICBQRV9BUkNIX2FhcmNoNjQsCisgICAgYmZkX2FyY2hfYWFyY2g2NCwKKyAgICBm YWxzZSwKKyAgICBhdXRvZmlsdGVyX3N5bWJvbGxpc3RfZ2VuZXJpYworICB9LAogICB7IE5V TEwsIE5VTEwsIDAsIDAsIDAsIGZhbHNlLCBOVUxMIH0KIH07CiAKQEAgLTE2MzgsNyArMTY0 OCw3IEBAIGdlbmVyYXRlX3JlbG9jIChiZmQgKmFiZmQsIHN0cnVjdCBiZmRfbGlua19pbmZv ICppbmZvKQogCQkgIHN3aXRjaCBCSVRTX0FORF9TSElGVCAocmVsb2NzW2ldLT5ob3d0by0+ Yml0c2l6ZSwKIAkJCQkJIHJlbG9jc1tpXS0+aG93dG8tPnJpZ2h0c2hpZnQpCiAJCSAgICB7 Ci0jaWZkZWYgcGVfdXNlX3g4Nl82NAorI2lmZGVmIHBlX3VzZV9wbHVzCiAJCSAgICBjYXNl IEJJVFNfQU5EX1NISUZUICg2NCwgMCk6CiAJCSAgICAgIHJlbG9jX2RhdGFbdG90YWxfcmVs b2NzXS50eXBlID0gSU1BR0VfUkVMX0JBU0VEX0RJUjY0OwogCQkgICAgICB0b3RhbF9yZWxv Y3MrKzsKQEAgLTIyNDcsNiArMjI1NywxNSBAQCBzdGF0aWMgY29uc3QgdW5zaWduZWQgY2hh ciBqbXBfaXg4Nl9ieXRlc1tdID0KICAgMHhmZiwgMHgyNSwgMHgwMCwgMHgwMCwgMHgwMCwg MHgwMCwgMHg5MCwgMHg5MAogfTsKIAorLyogX2Z1bmN0aW9uOgorICBiIDxfX2ltcF9mdW5j dGlvbj4KKyAgbm9wICovCitzdGF0aWMgY29uc3QgdW5zaWduZWQgY2hhciBqbXBfYWFyY2g2 NF9ieXRlc1tdID0KK3sKKyAgMHgwMCwgMHgwMCwgMHgwMCwgMHgxNCwKKyAgMHgxZiwgMHgy MCwgMHgwMywgMHhENQorfTsKKwogLyogX2Z1bmN0aW9uOgogCW1vdi5sCWlwKzgscjAKIAlt b3YubAlAcjAscjAKQEAgLTIzMTcsNiArMjMzNiwxMCBAQCBtYWtlX29uZSAoZGVmX2ZpbGVf ZXhwb3J0ICpleHAsIGJmZCAqcGFyZW50LCBib29sIGluY2x1ZGVfam1wX3N0dWIpCiAJICBq bXBfYnl0ZXMgPSBqbXBfYXJtX2J5dGVzOwogCSAgam1wX2J5dGVfY291bnQgPSBzaXplb2Yg KGptcF9hcm1fYnl0ZXMpOwogCSAgYnJlYWs7CisJY2FzZSBQRV9BUkNIX2FhcmNoNjQ6CisJ ICBqbXBfYnl0ZXMgPSBqbXBfYWFyY2g2NF9ieXRlczsKKwkgIGptcF9ieXRlX2NvdW50ID0g c2l6ZW9mIChqbXBfYWFyY2g2NF9ieXRlcyk7CisJICBicmVhazsKIAlkZWZhdWx0OgogCSAg YWJvcnQgKCk7CiAJfQpAQCAtMjM4Niw3ICsyNDA5LDcgQEAgbWFrZV9vbmUgKGRlZl9maWxl X2V4cG9ydCAqZXhwLCBiZmQgKnBhcmVudCwgYm9vbCBpbmNsdWRlX2ptcF9zdHViKQogICAg ICAgc3dpdGNoIChwZV9kZXRhaWxzLT5wZV9hcmNoKQogCXsKIAljYXNlIFBFX0FSQ0hfaTM4 NjoKLSNpZmRlZiBwZV91c2VfeDg2XzY0CisjaWZkZWYgcGVfdXNlX3BsdXMKIAkgIHF1aWNr X3JlbG9jIChhYmZkLCAyLCBCRkRfUkVMT0NfMzJfUENSRUwsIDIpOwogI2Vsc2UKIAkgIC8q IE1hcmsgdGhpcyBvYmplY3QgYXMgU0FGRVNFSCBjb21wYXRpYmxlLiAgKi8KQEAgLTI0MDcs NiArMjQzMCw5IEBAIG1ha2Vfb25lIChkZWZfZmlsZV9leHBvcnQgKmV4cCwgYmZkICpwYXJl bnQsIGJvb2wgaW5jbHVkZV9qbXBfc3R1YikKIAljYXNlIFBFX0FSQ0hfYXJtX3dpbmNlOgog CSAgcXVpY2tfcmVsb2MgKGFiZmQsIDgsIEJGRF9SRUxPQ18zMiwgMik7CiAJICBicmVhazsK KwljYXNlIFBFX0FSQ0hfYWFyY2g2NDoKKwkgIHF1aWNrX3JlbG9jIChhYmZkLCAwLCBCRkRf UkVMT0NfQUFSQ0g2NF9KVU1QMjYsIDIpOworCSAgYnJlYWs7CiAJZGVmYXVsdDoKIAkgIGFi b3J0ICgpOwogCX0KQEAgLTM0MDYsNyArMzQzMiw3IEBAIHBlX2ltcGxpZWRfaW1wb3J0X2Rs bCAoY29uc3QgY2hhciAqZmlsZW5hbWUpCiAgIC8qIEdldCBwZV9oZWFkZXIsIG9wdGlvbmFs IGhlYWRlciBhbmQgbnVtYmVycyBvZiBkaXJlY3RvcnkgZW50cmllcy4gICovCiAgIHBlX2hl YWRlcl9vZmZzZXQgPSBwZV9nZXQzMiAoZGxsLCAweDNjKTsKICAgb3B0aGRyX29mcyA9IHBl X2hlYWRlcl9vZmZzZXQgKyA0ICsgMjA7Ci0jaWZkZWYgcGVfdXNlX3g4Nl82NAorI2lmZGVm IHBlX3VzZV9wbHVzCiAgIG51bV9lbnRyaWVzID0gcGVfZ2V0MzIgKGRsbCwgb3B0aGRyX29m cyArIDkyICsgNCAqIDQpOyAvKiAgJiBOdW1iZXJPZlJ2YUFuZFNpemVzLiAgKi8KICNlbHNl CiAgIG51bV9lbnRyaWVzID0gcGVfZ2V0MzIgKGRsbCwgb3B0aGRyX29mcyArIDkyKTsKQEAg LTM0MTYsNyArMzQ0Miw3IEBAIHBlX2ltcGxpZWRfaW1wb3J0X2RsbCAoY29uc3QgY2hhciAq ZmlsZW5hbWUpCiAgIGlmIChudW1fZW50cmllcyA8IDEpCiAgICAgcmV0dXJuIGZhbHNlOwog Ci0jaWZkZWYgcGVfdXNlX3g4Nl82NAorI2lmZGVmIHBlX3VzZV9wbHVzCiAgIGV4cG9ydF9y dmEgID0gcGVfZ2V0MzIgKGRsbCwgb3B0aGRyX29mcyArIDk2ICsgNCAqIDQpOwogICBleHBv cnRfc2l6ZSA9IHBlX2dldDMyIChkbGwsIG9wdGhkcl9vZnMgKyAxMDAgKyA0ICogNCk7CiAj ZWxzZQpkaWZmIC0tZ2l0IGEvbGQvcGVwLWRsbC1hYXJjaDY0LmMgYi9sZC9wZXAtZGxsLWFh cmNoNjQuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwLi42MWM5YTJh MmM5Ci0tLSAvZGV2L251bGwKKysrIGIvbGQvcGVwLWRsbC1hYXJjaDY0LmMKQEAgLTAsMCAr MSwyMyBAQAorLyogVGlueSB3cmFwcGVyIG92ZXIgcGVwLWRsbC5jCisgICBDb3B5cmlnaHQg KEMpIDIwMDYtMjAyMiBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKworICAgVGhp cyBmaWxlIGlzIHBhcnQgb2YgdGhlIEdOVSBCaW51dGlscy4KKworICAgVGhpcyBwcm9ncmFt IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2Rp ZnkKKyAgIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExp Y2Vuc2UgYXMgcHVibGlzaGVkIGJ5CisgICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9u OyBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvcgorICAgKGF0IHlvdXIgb3B0 aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKworICAgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1 dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgICBidXQgV0lUSE9V VCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgor ICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NF LiAgU2VlIHRoZQorICAgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0 YWlscy4KKworICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05V IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAgIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBp ZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCisgICBGb3VuZGF0aW9uLCBJbmMu LCA1MSBGcmFua2xpbiBTdHJlZXQgLSBGaWZ0aCBGbG9vciwgQm9zdG9uLAorICAgTUEgMDIx MTAtMTMwMSwgVVNBLiAgKi8KKworI2RlZmluZSBDT0ZGX1dJVEhfcGVBQXJjaDY0CisKKyNp bmNsdWRlICJwZXAtZGxsLmMiCmRpZmYgLS1naXQgYS9sZC9wZXAtZGxsLXg4Nl82NC5jIGIv bGQvcGVwLWRsbC14ODZfNjQuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw MDAwLi4wYmUxODk4MTVjCi0tLSAvZGV2L251bGwKKysrIGIvbGQvcGVwLWRsbC14ODZfNjQu YwpAQCAtMCwwICsxLDIyIEBACisvKiBUaW55IHdyYXBwZXIgb3ZlciBwZXAtZGxsLmMKKyAg IENvcHlyaWdodCAoQykgMjAwNi0yMDIyIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5j LgorICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIEdOVSBCaW51dGlscy4KKworICAgVGhp cyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFu ZC9vciBtb2RpZnkKKyAgIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwg UHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CisgICB0aGUgRnJlZSBTb2Z0d2FyZSBG b3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvcgorICAgKGF0 IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKworICAgVGhpcyBwcm9ncmFtIGlz IGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgICBi dXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJy YW50eSBvZgorICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB UiBQVVJQT1NFLiAgU2VlIHRoZQorICAgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9y IG1vcmUgZGV0YWlscy4KKworICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBv ZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAgIGFsb25nIHdpdGggdGhpcyBw cm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCisgICBGb3VuZGF0 aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQgLSBGaWZ0aCBGbG9vciwgQm9zdG9uLAor ICAgTUEgMDIxMTAtMTMwMSwgVVNBLiAgKi8KKworI2RlZmluZSBDT0ZGX1dJVEhfcGV4NjQK KworI2luY2x1ZGUgInBlcC1kbGwuYyIKZGlmZiAtLWdpdCBhL2xkL3BlcC1kbGwuYyBiL2xk L3BlcC1kbGwuYwppbmRleCAzMDQ5YTAyNGUxLi4xY2ZlZDQ5MDMzIDEwMDY0NAotLS0gYS9s ZC9wZXAtZGxsLmMKKysrIGIvbGQvcGVwLWRsbC5jCkBAIC0yMSw3ICsyMSw2IEBACiAKICNk ZWZpbmUgQ09GRl9JTUFHRV9XSVRIX1BFCiAjZGVmaW5lIENPRkZfV0lUSF9QRQotI2RlZmlu ZSBDT0ZGX1dJVEhfcGV4NjQKIAogLyogTG9jYWwgZGVmaW5lZCBnbG9iYWxzLiAgKi8KICNk ZWZpbmUgcGVfZGVmX2ZpbGUJICAgICAgICAgICAgcGVwX2RlZl9maWxlCkBAIC01OCw3ICs1 Nyw3IEBACiAjZGVmaW5lIHBlX291dHB1dF9maWxlX3NldF9sb25nX3NlY3Rpb25fbmFtZXMg XAogCQkJCSAgICBwZXBfb3V0cHV0X2ZpbGVfc2V0X2xvbmdfc2VjdGlvbl9uYW1lcwogCi0v KiBVc2VzIHg4Nl82NCBQRSsuICAqLwotI2RlZmluZSBwZV91c2VfeDg2XzY0CisvKiBVc2Vz IFBFKy4gICovCisjZGVmaW5lIHBlX3VzZV9wbHVzCiAKICNpbmNsdWRlICJwZS1kbGwuYyIK ZGlmZiAtLWdpdCBhL2xkL3Rlc3RzdWl0ZS9sZC1wZS9wZS1hYXJjaDY0LmQgYi9sZC90ZXN0 c3VpdGUvbGQtcGUvcGUtYWFyY2g2NC5kCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw MDAwMDAwMDAuLmZhYzAyYjVmZDgKLS0tIC9kZXYvbnVsbAorKysgYi9sZC90ZXN0c3VpdGUv bGQtcGUvcGUtYWFyY2g2NC5kCkBAIC0wLDAgKzEsMTYgQEAKKyNsZDoKKyNvYmpkdW1wOiAt ZAorCisuKjogICAgIGZpbGUgZm9ybWF0IHBlaS1hYXJjaDY0LWxpdHRsZQorCisKK0Rpc2Fz c2VtYmx5IG9mIHNlY3Rpb24gLnRleHQ6CisKKzAwMDAwMDAxNDAwMDEwMDAgPF9fcnRfcHNy ZWxvY3NfZW5kPjoKKyAgIDE0MDAwMTAwMDoJZDI4MDAyODEgCW1vdgl4MSwgIzB4MTQgICAg ICAgICAgICAgICAgICAJLy8gIzIwCisgICAxNDAwMDEwMDQ6CTE0MDAwMDAxIAliCTE0MDAw MTAwOCA8Zm9vPgorCiswMDAwMDAwMTQwMDAxMDA4IDxmb28+OgorICAgMTQwMDAxMDA4Oglk NjVmMDNjMCAJcmV0CisgICAxNDAwMDEwMGM6CTAwMDAwMDAwIAl1ZGYJIzAKKyMuLi4KZGlm ZiAtLWdpdCBhL2xkL3Rlc3RzdWl0ZS9sZC1wZS9wZS1hYXJjaDY0LnMgYi9sZC90ZXN0c3Vp dGUvbGQtcGUvcGUtYWFyY2g2NC5zCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw MDAwMDAuLjVkNDkzNTA4OTEKLS0tIC9kZXYvbnVsbAorKysgYi9sZC90ZXN0c3VpdGUvbGQt cGUvcGUtYWFyY2g2NC5zCkBAIC0wLDAgKzEsMTEgQEAKKyMgQSBsaXR0bGUgdGVzdCB0byBl bnN1cmUgcGUtYWFyY2g2NCBpcyB3b3JraW5nIGluIExELgorIyBDdXJyZW50bHksIHRoZSBw b29yIHBlLWFhcmNoNjQgaW1wbGVtZW50YXRpb24gaW4gYmludXRpbHMKKyMgY291bGRuJ3Qg ZG8gYW55dGhpbmcgdXNlZnVsLCBoZW5jZSwgdGhpcyB0ZXN0IGlzIHJhdGhlciBzaG9ydAor Cisuc2VjdGlvbiAudGV4dAorCitfc3RhcnQ6CisgICAgbW92IHgxLCAyMAorICAgIGIgZm9v Citmb286CisgICAgcmV0CmRpZmYgLS1naXQgYS9sZC90ZXN0c3VpdGUvbGQtcGUvcGUuZXhw IGIvbGQvdGVzdHN1aXRlL2xkLXBlL3BlLmV4cAppbmRleCAyMjgxOWUwODk0Li5kODU5NWVl NjFlIDEwMDY0NAotLS0gYS9sZC90ZXN0c3VpdGUvbGQtcGUvcGUuZXhwCisrKyBiL2xkL3Rl c3RzdWl0ZS9sZC1wZS9wZS5leHAKQEAgLTc4LDYgKzc4LDExIEBAIGlmIHtbaXN0YXJnZXQg aSo4Ni0qLWN5Z3dpbipdCiAgICAgcnVuX2xkX2xpbmtfdGVzdHMgJHBlX3Rlc3RzCiB9CiAK K2lmIHtbaXN0YXJnZXQgImFhcmNoNjQtKi1wZSoiXX0geworCXJ1bl9kdW1wX3Rlc3QgInBl LWFhcmNoNjQiCit9CisKKwogcnVuX2R1bXBfdGVzdCAiaW1hZ2Vfc2l6ZSIKIHJ1bl9kdW1w X3Rlc3QgImV4cG9ydF9keW5hbWljX3dhcm5pbmciCiAKLS0gCjIuMjUuMQoK --------------2flaIkl5k0062N3qSiKNmYhf Content-Type: text/x-diff; charset=UTF-8; name="v2-v3.diff" Content-Disposition: attachment; filename="v2-v3.diff" Content-Transfer-Encoding: base64 ZGlmZiAtLWdpdCBhL2JmZC9jb2ZmLWFhcmNoNjQuYyBiL2JmZC9jb2ZmLWFhcmNoNjQuYwpp bmRleCA3NGRjN2U4ZjU1Li4yYzNlMjI1YTIyIDEwMDY0NAotLS0gYS9iZmQvY29mZi1hYXJj aDY0LmMKKysrIGIvYmZkL2NvZmYtYWFyY2g2NC5jCkBAIC0zOSw1NiArMzksNTkgQEAKIAog I2luY2x1ZGUgImxpYmNvZmYuaCIKIAotCi0KLQogLyogSW4gY2FzZSB3ZSdyZSBvbiBhIDMy LWJpdCBtYWNoaW5lLCBjb25zdHJ1Y3QgYSA2NC1iaXQgIi0xIiB2YWx1ZS4gICovCiAjZGVm aW5lIE1JTlVTX09ORSAofiAoYmZkX3ZtYSkgMCkKIAotc3RhdGljIHJlbG9jX2hvd3RvX3R5 cGUgYXJtNjRfcmVsb2NfaG93dG9fNjQgPSBIT1dUTyhJTUFHRV9SRUxfQVJNNjRfQUREUjY0 LCAwLCA4LCA2NCwgZmFsc2UsIDAsCitzdGF0aWMgY29uc3QgcmVsb2NfaG93dG9fdHlwZSBh cm02NF9yZWxvY19ob3d0b182NCA9IEhPV1RPKElNQUdFX1JFTF9BUk02NF9BRERSNjQsIDAs IDgsIDY0LCBmYWxzZSwgMCwKIAkgY29tcGxhaW5fb3ZlcmZsb3dfYml0ZmllbGQsCiAJIE5V TEwsICI2NCIsCiAJIGZhbHNlLCBNSU5VU19PTkUsIE1JTlVTX09ORSwgZmFsc2UpOwogCi1z dGF0aWMgcmVsb2NfaG93dG9fdHlwZSBhcm02NF9yZWxvY19ob3d0b18zMiA9IEhPV1RPIChJ TUFHRV9SRUxfQVJNNjRfQUREUjMyLCAwLCA0LCAzMiwgZmFsc2UsIDAsCitzdGF0aWMgY29u c3QgcmVsb2NfaG93dG9fdHlwZSBhcm02NF9yZWxvY19ob3d0b18zMiA9IEhPV1RPIChJTUFH RV9SRUxfQVJNNjRfQUREUjMyLCAwLCA0LCAzMiwgZmFsc2UsIDAsCiAJIGNvbXBsYWluX292 ZXJmbG93X2JpdGZpZWxkLAogCSBOVUxMLCAiMzIiLAogCSBmYWxzZSwgMHhmZmZmZmZmZiwg MHhmZmZmZmZmZiwgZmFsc2UpOwogCi1zdGF0aWMgcmVsb2NfaG93dG9fdHlwZSBhcm02NF9y ZWxvY19ob3d0b18zMl9wY3JlbCA9IEhPV1RPIChJTUFHRV9SRUxfQVJNNjRfUkVMMzIsIDAs IDQsIDMyLCB0cnVlLCAwLAorc3RhdGljIGNvbnN0IHJlbG9jX2hvd3RvX3R5cGUgYXJtNjRf cmVsb2NfaG93dG9fMzJfcGNyZWwgPSBIT1dUTyAoSU1BR0VfUkVMX0FSTTY0X1JFTDMyLCAw LCA0LCAzMiwgdHJ1ZSwgMCwKIAkgY29tcGxhaW5fb3ZlcmZsb3dfYml0ZmllbGQsCiAJIE5V TEwsICJESVNQMzIiLAogCSBmYWxzZSwgMHhmZmZmZmZmZiwgMHhmZmZmZmZmZiwgdHJ1ZSk7 CiAKLXN0YXRpYyByZWxvY19ob3d0b190eXBlIGFybTY0X3JlbG9jX2hvd3RvX2JyYW5jaDI2 ID0gSE9XVE8gKElNQUdFX1JFTF9BUk02NF9CUkFOQ0gyNiwgMCwgNCwgMjYsIHRydWUsIDAs CitzdGF0aWMgY29uc3QgcmVsb2NfaG93dG9fdHlwZSBhcm02NF9yZWxvY19ob3d0b19icmFu Y2gyNiA9IEhPV1RPIChJTUFHRV9SRUxfQVJNNjRfQlJBTkNIMjYsIDAsIDQsIDI2LCB0cnVl LCAwLAogCSBjb21wbGFpbl9vdmVyZmxvd19iaXRmaWVsZCwKIAkgTlVMTCwgIkJSQU5DSDI2 IiwKIAkgZmFsc2UsIDB4MDNmZmZmZmYsIDB4MDNmZmZmZmYsIHRydWUpOwogCi1zdGF0aWMg cmVsb2NfaG93dG9fdHlwZSBhcm02NF9yZWxvY19ob3d0b19wYWdlMjEgPSBIT1dUTyAoSU1B R0VfUkVMX0FSTTY0X1BBR0VCQVNFX1JFTDIxLCAxMiwgNCwgMjEsIHRydWUsIDAsCitzdGF0 aWMgY29uc3QgcmVsb2NfaG93dG9fdHlwZSBhcm02NF9yZWxvY19ob3d0b19wYWdlMjEgPSBI T1dUTyAoSU1BR0VfUkVMX0FSTTY0X1BBR0VCQVNFX1JFTDIxLCAxMiwgNCwgMjEsIHRydWUs IDAsCiAJIGNvbXBsYWluX292ZXJmbG93X3NpZ25lZCwKIAkgTlVMTCwgIlBBR0UyMSIsCiAJ IGZhbHNlLCAweDFmZmZmZiwgMHgxZmZmZmYsIGZhbHNlKTsKIAotc3RhdGljIHJlbG9jX2hv d3RvX3R5cGUgYXJtNjRfcmVsb2NfaG93dG9fbG8yMSA9IEhPV1RPIChJTUFHRV9SRUxfQVJN NjRfUkVMMjEsIDAsIDQsIDIxLCB0cnVlLCAwLAorc3RhdGljIGNvbnN0IHJlbG9jX2hvd3Rv X3R5cGUgYXJtNjRfcmVsb2NfaG93dG9fbG8yMSA9IEhPV1RPIChJTUFHRV9SRUxfQVJNNjRf UkVMMjEsIDAsIDQsIDIxLCB0cnVlLCAwLAogCSBjb21wbGFpbl9vdmVyZmxvd19zaWduZWQs CiAJIE5VTEwsICJMTzIxIiwKIAkgZmFsc2UsIDB4MWZmZmZmLCAweDFmZmZmZiwgdHJ1ZSk7 CiAKLXN0YXRpYyByZWxvY19ob3d0b190eXBlIGFybTY0X3JlbG9jX2hvd3RvX3Bnb2ZmMTIg PSBIT1dUTyAoSU1BR0VfUkVMX0FSTTY0X1BBR0VPRkZTRVRfMTJMLCAxLCA0LCAxMiwgdHJ1 ZSwgMCwKK3N0YXRpYyBjb25zdCByZWxvY19ob3d0b190eXBlIGFybTY0X3JlbG9jX2hvd3Rv X3Bnb2ZmMTIgPSBIT1dUTyAoSU1BR0VfUkVMX0FSTTY0X1BBR0VPRkZTRVRfMTJMLCAxLCA0 LCAxMiwgdHJ1ZSwgMCwKIAkgY29tcGxhaW5fb3ZlcmZsb3dfc2lnbmVkLAogCSBOVUxMLCAi UEdPRkYxMiIsCiAJIGZhbHNlLCAweGZmZSwgMHhmZmUsIHRydWUpOwogCitzdGF0aWMgY29u c3QgcmVsb2NfaG93dG9fdHlwZSBhcm02NF9yZWxvY19ob3d0b19icmFuY2gxOSA9IEhPV1RP IChJTUFHRV9SRUxfQVJNNjRfQlJBTkNIMTksIDIsIDQsIDE5LCB0cnVlLCAwLAorCSBjb21w bGFpbl9vdmVyZmxvd19zaWduZWQsCisJIE5VTEwsICJCUkFOQ0gxOSIsCisJIGZhbHNlLCAw eDdmZmZmLCAweDdmZmZmLCB0cnVlKTsKKwogCi1zdGF0aWMgcmVsb2NfaG93dG9fdHlwZSog YXJtNjRfaG93dG9fdGFibGVbXSA9IHsKK3N0YXRpYyBjb25zdCByZWxvY19ob3d0b190eXBl KiBjb25zdCBhcm02NF9ob3d0b190YWJsZVtdID0gewogICAgICAmYXJtNjRfcmVsb2NfaG93 dG9fNjQsCiAgICAgICZhcm02NF9yZWxvY19ob3d0b18zMiwKICAgICAgJmFybTY0X3JlbG9j X2hvd3RvXzMyX3BjcmVsLAogICAgICAmYXJtNjRfcmVsb2NfaG93dG9fYnJhbmNoMjYsCiAg ICAgICZhcm02NF9yZWxvY19ob3d0b19wYWdlMjEsCiAgICAgICZhcm02NF9yZWxvY19ob3d0 b19sbzIxLAotICAgICAmYXJtNjRfcmVsb2NfaG93dG9fcGdvZmYxMgorICAgICAmYXJtNjRf cmVsb2NfaG93dG9fcGdvZmYxMiwKKyAgICAgJmFybTY0X3JlbG9jX2hvd3RvX2JyYW5jaDE5 CiB9OwogCiAjaWZuZGVmIE5VTV9FTEVNCkBAIC0xMDAsOCArMTAzLDYgQEAgc3RhdGljIHJl bG9jX2hvd3RvX3R5cGUqIGFybTY0X2hvd3RvX3RhYmxlW10gPSB7CiAjZGVmaW5lIGNvZmZf YmZkX3JlbG9jX3R5cGVfbG9va3VwCQljb2ZmX2FhcmNoNjRfcmVsb2NfdHlwZV9sb29rdXAK ICNkZWZpbmUgY29mZl9iZmRfcmVsb2NfbmFtZV9sb29rdXAJCWNvZmZfYWFyY2g2NF9yZWxv Y19uYW1lX2xvb2t1cAogCi0KLQogc3RhdGljIHJlbG9jX2hvd3RvX3R5cGUgKgogY29mZl9h YXJjaDY0X3JlbG9jX3R5cGVfbG9va3VwIChiZmQgKiBhYmZkIEFUVFJJQlVURV9VTlVTRUQs IGJmZF9yZWxvY19jb2RlX3JlYWxfdHlwZSBjb2RlKQogewpAQCAtMTIyLDYgKzEyMyw4IEBA IGNvZmZfYWFyY2g2NF9yZWxvY190eXBlX2xvb2t1cCAoYmZkICogYWJmZCBBVFRSSUJVVEVf VU5VU0VELCBiZmRfcmVsb2NfY29kZV9yZWFsCiAgICAgcmV0dXJuICZhcm02NF9yZWxvY19o b3d0b19sbzIxOwogICBjYXNlIEJGRF9SRUxPQ19BQVJDSDY0X0xEU1QxNl9MTzEyOgogICAg IHJldHVybiAmYXJtNjRfcmVsb2NfaG93dG9fcGdvZmYxMjsKKyAgY2FzZSBCRkRfUkVMT0Nf QUFSQ0g2NF9CUkFOQ0gxOToKKyAgICByZXR1cm4gJmFybTY0X3JlbG9jX2hvd3RvX2JyYW5j aDE5OwogICBkZWZhdWx0OgogICAgIEJGRF9GQUlMICgpOwogICAgIHJldHVybiBOVUxMOwpA QCAtMTQ4LDcgKzE1MSw3IEBAIGNvZmZfYWFyY2g2NF9yZWxvY19uYW1lX2xvb2t1cCAoYmZk ICphYmZkIEFUVFJJQlVURV9VTlVTRUQsCiAjZGVmaW5lIENPRkZfUEFHRV9TSVpFCQkJICAg ICAgMHgxMDAwCiAKIHN0YXRpYyByZWxvY19ob3d0b190eXBlICoKLWNvZmZfYWFyY2g2NF9y dHlwZV9sb29rdXAgKHVuc2lnbmVkIGludCBjb2RlIEFUVFJJQlVURV9VTlVTRUQpCitjb2Zm X2FhcmNoNjRfcnR5cGVfbG9va3VwICh1bnNpZ25lZCBpbnQgY29kZSkKIHsKICAgc3dpdGNo IChjb2RlKQogICB7CkBAIC0xNjQsOCArMTY3LDEwIEBAIGNvZmZfYWFyY2g2NF9ydHlwZV9s b29rdXAgKHVuc2lnbmVkIGludCBjb2RlIEFUVFJJQlVURV9VTlVTRUQpCiAgICAgICByZXR1 cm4gJmFybTY0X3JlbG9jX2hvd3RvX3BhZ2UyMTsKICAgICBjYXNlIElNQUdFX1JFTF9BUk02 NF9SRUwyMToKICAgICAgIHJldHVybiAmYXJtNjRfcmVsb2NfaG93dG9fbG8yMTsKLSAgICBj YXNlIEJGRF9SRUxPQ19BQVJDSDY0X0xEU1QxNl9MTzEyOgorICAgIGNhc2UgSU1BR0VfUkVM X0FSTTY0X1BBR0VPRkZTRVRfMTJMOgogICAgICAgcmV0dXJuICZhcm02NF9yZWxvY19ob3d0 b19wZ29mZjEyOworICAgIGNhc2UgSU1BR0VfUkVMX0FSTTY0X0JSQU5DSDE5OgorICAgICAg cmV0dXJuICZhcm02NF9yZWxvY19ob3d0b19icmFuY2gxOTsKICAgICBkZWZhdWx0OgogICAg ICAgQkZEX0ZBSUwgKCk7CiAgICAgICByZXR1cm4gTlVMTDsKZGlmZiAtLWdpdCBhL2dhcy9j b25maWcvdGMtYWFyY2g2NC5jIGIvZ2FzL2NvbmZpZy90Yy1hYXJjaDY0LmMKaW5kZXggNmY2 YjIwNGNkYy4uZjZmYTE1ODU4MyAxMDA2NDQKLS0tIGEvZ2FzL2NvbmZpZy90Yy1hYXJjaDY0 LmMKKysrIGIvZ2FzL2NvbmZpZy90Yy1hYXJjaDY0LmMKQEAgLTEwMjUwLDEwICsxMDI1MCwx MyBAQCBzdHJ1Y3QgYWFyY2g2NF9vcHRpb25fYWJpX3ZhbHVlX3RhYmxlCiAgIGVudW0gYWFy Y2g2NF9hYmlfdHlwZSB2YWx1ZTsKIH07CiAKLSNpZmRlZiBPQkpfRUxGCiBzdGF0aWMgY29u c3Qgc3RydWN0IGFhcmNoNjRfb3B0aW9uX2FiaV92YWx1ZV90YWJsZSBhYXJjaDY0X2FiaXNb XSA9IHsKKyNpZmRlZiBPQkpfRUxGCiAgIHsiaWxwMzIiLAkJQUFSQ0g2NF9BQklfSUxQMzJ9 LAogICB7ImxwNjQiLAkJQUFSQ0g2NF9BQklfTFA2NH0sCisjZWxzZQorICB7ImxscDY0IiwJ CUFBUkNINjRfQUJJX0xMUDY0fSwKKyNlbmRpZgogfTsKIAogc3RhdGljIGludApAQCAtMTAy NzcsMTMgKzEwMjgwLDEwIEBAIGFhcmNoNjRfcGFyc2VfYWJpIChjb25zdCBjaGFyICpzdHIp CiAgIGFzX2JhZCAoXygidW5rbm93biBhYmkgYCVzJ1xuIiksIHN0cik7CiAgIHJldHVybiAw OwogfQotI2VuZGlmCiAKIHN0YXRpYyBzdHJ1Y3QgYWFyY2g2NF9sb25nX29wdGlvbl90YWJs ZSBhYXJjaDY0X2xvbmdfb3B0c1tdID0gewotI2lmZGVmIE9CSl9FTEYKICAgeyJtYWJpPSIs IE5fKCI8YWJpIG5hbWU+XHQgIHNwZWNpZnkgZm9yIEFCSSA8YWJpIG5hbWU+IiksCiAgICBh YXJjaDY0X3BhcnNlX2FiaSwgTlVMTH0sCi0jZW5kaWYgLyogT0JKX0VMRiAqLwogICB7Im1j cHU9IiwgTl8oIjxjcHUgbmFtZT5cdCAgYXNzZW1ibGUgZm9yIENQVSA8Y3B1IG5hbWU+Iiks CiAgICBhYXJjaDY0X3BhcnNlX2NwdSwgTlVMTH0sCiAgIHsibWFyY2g9IiwgTl8oIjxhcmNo IG5hbWU+XHQgIGFzc2VtYmxlIGZvciBhcmNoaXRlY3R1cmUgPGFyY2ggbmFtZT4iKSwK --------------2flaIkl5k0062N3qSiKNmYhf--