Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1rxYOZ-009dIE-O7 for pgsql-hackers@arkaria.postgresql.org; Thu, 18 Apr 2024 20:30:12 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.94.2) (envelope-from ) id 1rxYOX-009kur-Bz for pgsql-hackers@arkaria.postgresql.org; Thu, 18 Apr 2024 20:30:09 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1rxYOW-009kuj-SU for pgsql-hackers@lists.postgresql.org; Thu, 18 Apr 2024 20:30:09 +0000 Received: from mail-ed1-x531.google.com ([2a00:1450:4864:20::531]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.94.2) (envelope-from ) id 1rxYOU-001gOi-FC for pgsql-hackers@lists.postgresql.org; Thu, 18 Apr 2024 20:30:08 +0000 Received: by mail-ed1-x531.google.com with SMTP id 4fb4d7f45d1cf-56e56ee8d5cso1983388a12.2 for ; Thu, 18 Apr 2024 13:30:06 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1713472205; x=1714077005; darn=lists.postgresql.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=BVLMS57P61ScfjTxPKF/8zQmEdL3dZrssVVG4HctjT8=; b=FuXjqcOtjmFgyWhKzlIAMOiyPt3kA0BBHt+WVyMx2jqKRsyPWLQfBVRQgB2L2NNfaP Y0A9x23zcSWI7YBlbpq3IBCrJLOBaZ7S7mbMwoY15hTpnI1NqjHNwPWKD/DzFka0JzcU 6uOSWU8LWxdVxIppKJuv458LjiVYhIoSIIN4btk/s+xkv6p6E+Eqvr2o05d6pqiRr//2 SJ91Ft66biIK7WJ1xBfHHcY++vJi8aabuTBkzCIj6xQ4/mAz2fjG9OcfAVyRsi/zR5uB TdR/mTiUa4Df443tJVBqijUwsl0CG/PQiIe2KSG2+3egj5yy18zHhcT9hKf43swiViVd wpyQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1713472205; x=1714077005; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=BVLMS57P61ScfjTxPKF/8zQmEdL3dZrssVVG4HctjT8=; b=vdvX+hlKru3r26HDV4ley/WgvVJHIaOpeBNcxDCtVbsLtHI8RmBMRNFLzxJDFmX4dN CtJfprAKCBDS75s1COGsg4tyx4xxIo9CiUvEn2B5fxzPCnRXMQoeJ5odD4DqMWlyTwUd fisFT2oFxsOW0bRvqH5ZA+a4SWO11Zf6TeouNS9NkLGgrE1wEKIbSozy6wilw+Aa5dw+ NxgaWbiYMmn2r1Z8MYZDOr2lF33B5eJvauu/r0bTyU3uSqA5yidpCF+2n/t2VtzFjt58 n1Y5HZD76ml6IWi0X6n/7aUfhymdipHyLutqqF+3TqmjGcgm0DsJP6NpjYnrZS38ipv1 jhYA== X-Forwarded-Encrypted: i=1; AJvYcCUHaBP73svuX8Cob6SfceMRnbKk5/qL+op0x29lxHyk0FtjLzThz+mplxRh9zAtCBl2+5VAsYzfSe1w6yvEzyDet/pywDBKbAOwMPaU/lzJIxyc X-Gm-Message-State: AOJu0YwO1miuGMsWE5ckCqlnFg3k6IDqsl5henDSJm7cYjZFy7QElT3q DlOCmy4x0gHV5t4MKsKKDNUKfEgjaA+yOOYJYnddwjmeasWFzO9fIbg/ZTOdsgDfHWVRCZm1QC2 zdOBaYuwsjApMVEaPP87z8bowSzQ= X-Google-Smtp-Source: AGHT+IHAvyzX/qaZVwQipR7wbik3LHpGEfgdBArTjNBgoqGo9Fmm3vtLcRQtx+GpAOTwwb14QhKnunFsJw43CamJgCw= X-Received: by 2002:a50:9996:0:b0:568:1882:651f with SMTP id m22-20020a509996000000b005681882651fmr166707edb.25.1713472205212; Thu, 18 Apr 2024 13:30:05 -0700 (PDT) MIME-Version: 1.0 References: <20240322165305.6zrtxcmzdrywvmsu@awork3.anarazel.de> <944094.1711128356@sss.pgh.pa.us> <1229869.1711160593@sss.pgh.pa.us> <7cf1dcb7-306f-4418-bf25-bdc75130db10@eisentraut.org> In-Reply-To: <7cf1dcb7-306f-4418-bf25-bdc75130db10@eisentraut.org> From: Thomas Munro Date: Fri, 19 Apr 2024 08:29:27 +1200 Message-ID: Subject: Re: Cannot find a working 64-bit integer type on Illumos To: Peter Eisentraut Cc: Tom Lane , Japin Li , Andres Freund , PostgreSQL Hackers Content-Type: multipart/mixed; boundary="0000000000002023f5061664d6f9" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --0000000000002023f5061664d6f9 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Thu, Apr 18, 2024 at 8:47=E2=80=AFPM Peter Eisentraut wrote: > I'm not sure I understand the problem here. Do you mean that in theory > a platform's PRId64 could be something other than "l" or "ll"? Yes. I don't know why anyone would do that, and the systems I checked all have the obvious definitions, eg "ld", "lld" etc. Perhaps it's an acceptable risk? It certainly gives us a tidier result. For discussion, here is a variant that fully embraces and the PRI*64 macros. --0000000000002023f5061664d6f9 Content-Type: application/octet-stream; name="v2-0001-Use-int64_t-support-from-stdint.h-and-inttypes.h.patch" Content-Disposition: attachment; filename="v2-0001-Use-int64_t-support-from-stdint.h-and-inttypes.h.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_lv5p1tku0 RnJvbSAwZDI1YWYyYTU5YzZkNGI5ZjY5NzJjYTAyODMwNzEzY2YxNTZiNTI3IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBUaG9tYXMgTXVucm8gPHRob21hcy5tdW5yb0BnbWFpbC5jb20+ CkRhdGU6IFRodSwgMTggQXByIDIwMjQgMDc6NTM6MTAgKzEyMDAKU3ViamVjdDogW1BBVENIIHYy IDEvMl0gVXNlIGludDY0X3Qgc3VwcG9ydCBmcm9tIDxzdGRpbnQuaD4gYW5kIDxpbnR0eXBlcy5o Pi4KClJlbW92ZSBtb3N0IG9mIHRoZSBjb25maWd1cmUgcHJvYmVzIGZvciA2NCBiaXQgaW50ZWdl cnMuICBNYXAgb3VyIG5hbWVzCnRvIHRoZSBzdGFuZGFyZCBDOTkgbmFtZXMgZm9yIHR5cGVzIGxp a2UgaW50NjRfdCwgbGltaXRzIGxpa2UgSU5UNjRfTUFYLApjb25zdGFudCBjb25zdHJ1Y3RvcnMg bGlrZSBJTlQ2NF9DKCkuICBBbHNvIHVzZSBwcmludGYgZm9ybWF0IHN0cmluZ3MKbGlrZSBQUklk NjQgZnJvbSA8aW50dHlwZXMuaD4uCgpUaGVyZSBpcyBhIHNsaWdodCByaXNrIHRoYXQgc29tZSBz eXN0ZW0gd2lsbCBpbnZlbnQgYSBkZWZpbml0aW9uIG9mClBSSWQ2NCB0aGF0IG91ciBvd24gc25w cmludGYuYyBkb2Vzbid0IHVuZGVyc3RhbmQgKGllIHNvbWV0aGluZyBvdGhlcgp0aGFuICJsZCIg b3IgImxsZCIpLCBidXQgdGhhdCBzZWVtcyB1bmxpa2VseSBhbmQgd2UgY291bGQgZWFzaWx5IGRl YWwKd2l0aCBpdCBpZiBhIHJlcG9ydCBhcnJpdmVzLiAgSW4gcHJhY3RpY2UsIGZvcm1hdCBzdHJp bmdzIG1hZGUgd2l0aApQUkkqNjQgbWFjcm9zIGFyZSBleHBlY3RlZCB0byB3b3JrIG9uIGJvdGgg dGhlIHN5c3RlbSBwcmludGYtZmFtaWx5IGFuZApvdXIgb3duIGluLXRyZWUgc25wcmludGYuYy4K CldlIGNhbiBnZXQgcmlkIG9mIHBnX2NvbmZpZ19leHQuaC4KClhYWCBXSVAKLS0tCiBjb25maWd1 cmUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAyMzAgKystLS0tLS0tLS0t LS0tLS0tCiBjb25maWd1cmUuYWMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAg NDYgKy0tLQogbWVzb24uYnVpbGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwg IDM1ICstLQogc3JjL01ha2VmaWxlLmdsb2JhbC5pbiAgICAgICAgICAgICAgICAgICAgICAgIHwg ICA2IC0KIHNyYy9iaW4vcGdfd2FsZHVtcC9wZ193YWxkdW1wLmMgICAgICAgICAgICAgICB8ICAx NiArLQogc3JjL2Jpbi9wZ2JlbmNoL3BnYmVuY2guYyAgICAgICAgICAgICAgICAgICAgIHwgICA0 ICstCiBzcmMvaW5jbHVkZS8uZ2l0aWdub3JlICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDIg LQogc3JjL2luY2x1ZGUvTWFrZWZpbGUgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICA4ICst CiBzcmMvaW5jbHVkZS9jLmggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgODMgKysr LS0tLQogc3JjL2luY2x1ZGUvbWVzb24uYnVpbGQgICAgICAgICAgICAgICAgICAgICAgIHwgIDEw IC0KIHNyYy9pbmNsdWRlL3BnX2NvbmZpZy5oLmluICAgICAgICAgICAgICAgICAgICB8ICAxOCAr LQogc3JjL2luY2x1ZGUvcGdfY29uZmlnX2V4dC5oLmluICAgICAgICAgICAgICAgIHwgICA3IC0K IHNyYy9pbmNsdWRlL3BnX2NvbmZpZ19leHQuaC5tZXNvbiAgICAgICAgICAgICB8ICAgNyAtCiBz cmMvaW5jbHVkZS9wb3J0L3BnX2JpdHV0aWxzLmggICAgICAgICAgICAgICAgfCAgMTggKy0KIHNy Yy9pbmNsdWRlL3Bvc3RncmVzX2V4dC5oICAgICAgICAgICAgICAgICAgICB8ICAgNyArLQogc3Jj L2luY2x1ZGUvdXRpbHMvZHNhLmggICAgICAgICAgICAgICAgICAgICAgIHwgICAyICstCiBzcmMv aW50ZXJmYWNlcy9lY3BnL2VjcGdsaWIvdHlwZW5hbWUuYyAgICAgICAgfCAgIDUgKy0KIHNyYy9p bnRlcmZhY2VzL2VjcGcvaW5jbHVkZS9lY3BnX2NvbmZpZy5oLmluICB8ICAxMiAtCiBzcmMvaW50 ZXJmYWNlcy9lY3BnL2luY2x1ZGUvbWVzb24uYnVpbGQgICAgICAgfCAgIDMgLQogLi4uL2VjcGcv aW5jbHVkZS9wZ3R5cGVzX2ludGVydmFsLmggICAgICAgICAgIHwgIDEzICstCiBzcmMvaW50ZXJm YWNlcy9lY3BnL2luY2x1ZGUvc3FsdHlwZXMuaCAgICAgICAgfCAgIDIgKy0KIC4uLi90ZXN0L2V4 cGVjdGVkL2NvbXBhdF9pbmZvcm1peC1zcWxkYS5jICAgICB8ICAgMiArLQogc3JjL3BvcnQvcGdf Yml0dXRpbHMuYyAgICAgICAgICAgICAgICAgICAgICAgIHwgICA3ICstCiBzcmMvcG9ydC9zbnBy aW50Zi5jICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgMTQgKy0KIC4uLi9tb2R1bGVzL3Rl c3RfcmFkaXh0cmVlL3Rlc3RfcmFkaXh0cmVlLmMgICB8ICAgMiArLQogMjUgZmlsZXMgY2hhbmdl ZCwgMTAyIGluc2VydGlvbnMoKyksIDQ1NyBkZWxldGlvbnMoLSkKIGRlbGV0ZSBtb2RlIDEwMDY0 NCBzcmMvaW5jbHVkZS9wZ19jb25maWdfZXh0LmguaW4KIGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmMv aW5jbHVkZS9wZ19jb25maWdfZXh0LmgubWVzb24KCmRpZmYgLS1naXQgYS9jb25maWd1cmUgYi9j b25maWd1cmUKaW5kZXggY2ZiZDJhMDk2Zi4uNTJiNWY2NjZjZSAxMDA3NTUKLS0tIGEvY29uZmln dXJlCisrKyBiL2NvbmZpZ3VyZQpAQCAtMTY0MzksMTk3ICsxNjQzOSw2IEBAIGZpCiAjIFJ1biB0 ZXN0cyBiZWxvdyBoZXJlCiAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKLQoteyAkYXNfZWNobyAi JGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBjaGVja2luZyB3aGV0aGVyIGxvbmcgaW50IGlz IDY0IGJpdHMiID4mNQotJGFzX2VjaG9fbiAiY2hlY2tpbmcgd2hldGhlciBsb25nIGludCBpcyA2 NCBiaXRzLi4uICIgPiY2OyB9Ci1pZiAke3BnYWNfY3ZfdHlwZV9sb25nX2ludF82NCs6fSBmYWxz ZTsgdGhlbiA6Ci0gICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2Ci1lbHNlCi0gIGlmIHRlc3Qg IiRjcm9zc19jb21waWxpbmciID0geWVzOyB0aGVuIDoKLSAgIyBJZiBjcm9zcy1jb21waWxpbmcs IGNoZWNrIHRoZSBzaXplIHJlcG9ydGVkIGJ5IHRoZSBjb21waWxlciBhbmQKLSMgdHJ1c3QgdGhh dCB0aGUgYXJpdGhtZXRpYyB3b3Jrcy4KLWNhdCBjb25mZGVmcy5oIC0gPDxfQUNFT0YgPmNvbmZ0 ZXN0LiRhY19leHQKLS8qIGVuZCBjb25mZGVmcy5oLiAgKi8KLQotaW50Ci1tYWluICgpCi17Ci1z dGF0aWMgaW50IHRlc3RfYXJyYXkgWzEgLSAyICogIShzaXplb2YobG9uZyBpbnQpID09IDgpXTsK LXRlc3RfYXJyYXkgWzBdID0gMDsKLXJldHVybiB0ZXN0X2FycmF5IFswXTsKLQotICA7Ci0gIHJl dHVybiAwOwotfQotX0FDRU9GCi1pZiBhY19mbl9jX3RyeV9jb21waWxlICIkTElORU5PIjsgdGhl biA6Ci0gIHBnYWNfY3ZfdHlwZV9sb25nX2ludF82ND15ZXMKLWVsc2UKLSAgcGdhY19jdl90eXBl X2xvbmdfaW50XzY0PW5vCi1maQotcm0gLWYgY29yZSBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFj X29iamV4dCBjb25mdGVzdC4kYWNfZXh0Ci1lbHNlCi0gIGNhdCBjb25mZGVmcy5oIC0gPDxfQUNF T0YgPmNvbmZ0ZXN0LiRhY19leHQKLS8qIGVuZCBjb25mZGVmcy5oLiAgKi8KLXR5cGVkZWYgbG9u ZyBpbnQgYWNfaW50NjQ7Ci0KLS8qCi0gKiBUaGVzZSBhcmUgZ2xvYmFscyB0byBkaXNjb3VyYWdl IHRoZSBjb21waWxlciBmcm9tIGZvbGRpbmcgYWxsIHRoZQotICogYXJpdGhtZXRpYyB0ZXN0cyBk b3duIHRvIGNvbXBpbGUtdGltZSBjb25zdGFudHMuCi0gKi8KLWFjX2ludDY0IGEgPSAyMDAwMDAw MTsKLWFjX2ludDY0IGIgPSA0MDAwMDAwNTsKLQotaW50IGRvZXNfaW50NjRfd29yaygpCi17Ci0g IGFjX2ludDY0IGMsZDsKLQotICBpZiAoc2l6ZW9mKGFjX2ludDY0KSAhPSA4KQotICAgIHJldHVy biAwOwkJCS8qIGRlZmluaXRlbHkgbm90IHRoZSByaWdodCBzaXplICovCi0KLSAgLyogRG8gcGVy ZnVuY3RvcnkgY2hlY2tzIHRvIHNlZSBpZiA2NC1iaXQgYXJpdGhtZXRpYyBzZWVtcyB0byB3b3Jr ICovCi0gIGMgPSBhICogYjsKLSAgZCA9IChjICsgYikgLyBiOwotICBpZiAoZCAhPSBhKzEpCi0g ICAgcmV0dXJuIDA7Ci0gIHJldHVybiAxOwotfQotCi1pbnQKLW1haW4oKSB7Ci0gIHJldHVybiAo ISBkb2VzX2ludDY0X3dvcmsoKSk7Ci19Ci1fQUNFT0YKLWlmIGFjX2ZuX2NfdHJ5X3J1biAiJExJ TkVOTyI7IHRoZW4gOgotICBwZ2FjX2N2X3R5cGVfbG9uZ19pbnRfNjQ9eWVzCi1lbHNlCi0gIHBn YWNfY3ZfdHlwZV9sb25nX2ludF82ND1ubwotZmkKLXJtIC1mIGNvcmUgKi5jb3JlIGNvcmUuY29u ZnRlc3QuKiBnbW9uLm91dCBiYi5vdXQgY29uZnRlc3QkYWNfZXhlZXh0IFwKLSAgY29uZnRlc3Qu JGFjX29iamV4dCBjb25mdGVzdC5iZWFtIGNvbmZ0ZXN0LiRhY19leHQKLWZpCi0KLWZpCi17ICRh c19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDogJHBnYWNfY3ZfdHlw ZV9sb25nX2ludF82NCIgPiY1Ci0kYXNfZWNobyAiJHBnYWNfY3ZfdHlwZV9sb25nX2ludF82NCIg PiY2OyB9Ci0KLUhBVkVfTE9OR19JTlRfNjQ9JHBnYWNfY3ZfdHlwZV9sb25nX2ludF82NAotaWYg dGVzdCB4IiRwZ2FjX2N2X3R5cGVfbG9uZ19pbnRfNjQiID0geHllcyA7IHRoZW4KLQotJGFzX2Vj aG8gIiNkZWZpbmUgSEFWRV9MT05HX0lOVF82NCAxIiA+PmNvbmZkZWZzLmgKLQotZmkKLQotCi1p ZiB0ZXN0IHgiJEhBVkVfTE9OR19JTlRfNjQiID0geCJ5ZXMiIDsgdGhlbgotICBwZ19pbnQ2NF90 eXBlPSJsb25nIGludCIKLWVsc2UKLSAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRM SU5FTk99OiBjaGVja2luZyB3aGV0aGVyIGxvbmcgbG9uZyBpbnQgaXMgNjQgYml0cyIgPiY1Ci0k YXNfZWNob19uICJjaGVja2luZyB3aGV0aGVyIGxvbmcgbG9uZyBpbnQgaXMgNjQgYml0cy4uLiAi ID4mNjsgfQotaWYgJHtwZ2FjX2N2X3R5cGVfbG9uZ19sb25nX2ludF82NCs6fSBmYWxzZTsgdGhl biA6Ci0gICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2Ci1lbHNlCi0gIGlmIHRlc3QgIiRjcm9z c19jb21waWxpbmciID0geWVzOyB0aGVuIDoKLSAgIyBJZiBjcm9zcy1jb21waWxpbmcsIGNoZWNr IHRoZSBzaXplIHJlcG9ydGVkIGJ5IHRoZSBjb21waWxlciBhbmQKLSMgdHJ1c3QgdGhhdCB0aGUg YXJpdGhtZXRpYyB3b3Jrcy4KLWNhdCBjb25mZGVmcy5oIC0gPDxfQUNFT0YgPmNvbmZ0ZXN0LiRh Y19leHQKLS8qIGVuZCBjb25mZGVmcy5oLiAgKi8KLQotaW50Ci1tYWluICgpCi17Ci1zdGF0aWMg aW50IHRlc3RfYXJyYXkgWzEgLSAyICogIShzaXplb2YobG9uZyBsb25nIGludCkgPT0gOCldOwot dGVzdF9hcnJheSBbMF0gPSAwOwotcmV0dXJuIHRlc3RfYXJyYXkgWzBdOwotCi0gIDsKLSAgcmV0 dXJuIDA7Ci19Ci1fQUNFT0YKLWlmIGFjX2ZuX2NfdHJ5X2NvbXBpbGUgIiRMSU5FTk8iOyB0aGVu IDoKLSAgcGdhY19jdl90eXBlX2xvbmdfbG9uZ19pbnRfNjQ9eWVzCi1lbHNlCi0gIHBnYWNfY3Zf dHlwZV9sb25nX2xvbmdfaW50XzY0PW5vCi1maQotcm0gLWYgY29yZSBjb25mdGVzdC5lcnIgY29u ZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdC4kYWNfZXh0Ci1lbHNlCi0gIGNhdCBjb25mZGVmcy5o IC0gPDxfQUNFT0YgPmNvbmZ0ZXN0LiRhY19leHQKLS8qIGVuZCBjb25mZGVmcy5oLiAgKi8KLXR5 cGVkZWYgbG9uZyBsb25nIGludCBhY19pbnQ2NDsKLQotLyoKLSAqIFRoZXNlIGFyZSBnbG9iYWxz IHRvIGRpc2NvdXJhZ2UgdGhlIGNvbXBpbGVyIGZyb20gZm9sZGluZyBhbGwgdGhlCi0gKiBhcml0 aG1ldGljIHRlc3RzIGRvd24gdG8gY29tcGlsZS10aW1lIGNvbnN0YW50cy4KLSAqLwotYWNfaW50 NjQgYSA9IDIwMDAwMDAxOwotYWNfaW50NjQgYiA9IDQwMDAwMDA1OwotCi1pbnQgZG9lc19pbnQ2 NF93b3JrKCkKLXsKLSAgYWNfaW50NjQgYyxkOwotCi0gIGlmIChzaXplb2YoYWNfaW50NjQpICE9 IDgpCi0gICAgcmV0dXJuIDA7CQkJLyogZGVmaW5pdGVseSBub3QgdGhlIHJpZ2h0IHNpemUgKi8K LQotICAvKiBEbyBwZXJmdW5jdG9yeSBjaGVja3MgdG8gc2VlIGlmIDY0LWJpdCBhcml0aG1ldGlj IHNlZW1zIHRvIHdvcmsgKi8KLSAgYyA9IGEgKiBiOwotICBkID0gKGMgKyBiKSAvIGI7Ci0gIGlm IChkICE9IGErMSkKLSAgICByZXR1cm4gMDsKLSAgcmV0dXJuIDE7Ci19Ci0KLWludAotbWFpbigp IHsKLSAgcmV0dXJuICghIGRvZXNfaW50NjRfd29yaygpKTsKLX0KLV9BQ0VPRgotaWYgYWNfZm5f Y190cnlfcnVuICIkTElORU5PIjsgdGhlbiA6Ci0gIHBnYWNfY3ZfdHlwZV9sb25nX2xvbmdfaW50 XzY0PXllcwotZWxzZQotICBwZ2FjX2N2X3R5cGVfbG9uZ19sb25nX2ludF82ND1ubwotZmkKLXJt IC1mIGNvcmUgKi5jb3JlIGNvcmUuY29uZnRlc3QuKiBnbW9uLm91dCBiYi5vdXQgY29uZnRlc3Qk YWNfZXhlZXh0IFwKLSAgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdC5iZWFtIGNvbmZ0ZXN0 LiRhY19leHQKLWZpCi0KLWZpCi17ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVO T306IHJlc3VsdDogJHBnYWNfY3ZfdHlwZV9sb25nX2xvbmdfaW50XzY0IiA+JjUKLSRhc19lY2hv ICIkcGdhY19jdl90eXBlX2xvbmdfbG9uZ19pbnRfNjQiID4mNjsgfQotCi1IQVZFX0xPTkdfTE9O R19JTlRfNjQ9JHBnYWNfY3ZfdHlwZV9sb25nX2xvbmdfaW50XzY0Ci1pZiB0ZXN0IHgiJHBnYWNf Y3ZfdHlwZV9sb25nX2xvbmdfaW50XzY0IiA9IHh5ZXMgOyB0aGVuCi0KLSRhc19lY2hvICIjZGVm aW5lIEhBVkVfTE9OR19MT05HX0lOVF82NCAxIiA+PmNvbmZkZWZzLmgKLQotZmkKLQotICBpZiB0 ZXN0IHgiJEhBVkVfTE9OR19MT05HX0lOVF82NCIgPSB4InllcyIgOyB0aGVuCi0gICAgcGdfaW50 NjRfdHlwZT0ibG9uZyBsb25nIGludCIKLSAgZWxzZQotICAgIGFzX2ZuX2Vycm9yICQ/ICJDYW5u b3QgZmluZCBhIHdvcmtpbmcgNjQtYml0IGludGVnZXIgdHlwZS4iICIkTElORU5PIiA1Ci0gIGZp Ci1maQotCi0KLWNhdCA+PmNvbmZkZWZzLmggPDxfQUNFT0YKLSNkZWZpbmUgUEdfSU5UNjRfVFlQ RSAkcGdfaW50NjRfdHlwZQotX0FDRU9GCi0KLQotIyBTZWxlY3QgdGhlIHByaW50ZiBsZW5ndGgg bW9kaWZpZXIgdGhhdCBnb2VzIHdpdGggdGhhdCwgdG9vLgotaWYgdGVzdCB4IiRwZ19pbnQ2NF90 eXBlIiA9IHgibG9uZyBsb25nIGludCIgOyB0aGVuCi0gIElOVDY0X01PRElGSUVSPScibGwiJwot ZWxzZQotICBJTlQ2NF9NT0RJRklFUj0nImwiJwotZmkKLQotCi1jYXQgPj5jb25mZGVmcy5oIDw8 X0FDRU9GCi0jZGVmaW5lIElOVDY0X01PRElGSUVSICRJTlQ2NF9NT0RJRklFUgotX0FDRU9GCi0K LQogIyBoYXMgdG8gYmUgZG93biBoZXJlLCByYXRoZXIgdGhhbiB3aXRoIHRoZSBvdGhlciBidWls dGlucywgYmVjYXVzZQogIyB0aGUgdGVzdCB1c2VzIFBHX0lOVDY0X1RZUEUuCiB7ICRhc19lY2hv ICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGNoZWNraW5nIGZvciBfX2J1aWx0aW5fbXVs X292ZXJmbG93IiA+JjUKQEAgLTE2ODc3LDQzICsxNjY4Niw0MSBAQCBjYXQgPj5jb25mZGVmcy5o IDw8X0FDRU9GCiBfQUNFT0YKIAogCi1pZiB0ZXN0IHgiJEhBVkVfTE9OR19MT05HX0lOVF82NCIg PSB4InllcyIgOyB0aGVuCi0gICMgVGhlIGNhc3QgdG8gbG9uZyBpbnQgd29ya3MgYXJvdW5kIGEg YnVnIGluIHRoZSBIUCBDIENvbXBpbGVyLAorIyBUaGUgY2FzdCB0byBsb25nIGludCB3b3JrcyBh cm91bmQgYSBidWcgaW4gdGhlIEhQIEMgQ29tcGlsZXIsCiAjIHNlZSBBQ19DSEVDS19TSVpFT0Yg Zm9yIG1vcmUgaW5mb3JtYXRpb24uCi17ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJ TkVOT306IGNoZWNraW5nIGFsaWdubWVudCBvZiBsb25nIGxvbmcgaW50IiA+JjUKLSRhc19lY2hv X24gImNoZWNraW5nIGFsaWdubWVudCBvZiBsb25nIGxvbmcgaW50Li4uICIgPiY2OyB9Ci1pZiAk e2FjX2N2X2FsaWdub2ZfbG9uZ19sb25nX2ludCs6fSBmYWxzZTsgdGhlbiA6Cit7ICRhc19lY2hv ICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGNoZWNraW5nIGFsaWdubWVudCBvZiBpbnQ2 NF90IiA+JjUKKyRhc19lY2hvX24gImNoZWNraW5nIGFsaWdubWVudCBvZiBpbnQ2NF90Li4uICIg PiY2OyB9CitpZiAke2FjX2N2X2FsaWdub2ZfaW50NjRfdCs6fSBmYWxzZTsgdGhlbiA6CiAgICRh c19lY2hvX24gIihjYWNoZWQpICIgPiY2CiBlbHNlCi0gIGlmIGFjX2ZuX2NfY29tcHV0ZV9pbnQg IiRMSU5FTk8iICIobG9uZyBpbnQpIG9mZnNldG9mIChhY19fdHlwZV9hbGlnbm9mXywgeSkiICJh Y19jdl9hbGlnbm9mX2xvbmdfbG9uZ19pbnQiICAgICAgICAiJGFjX2luY2x1ZGVzX2RlZmF1bHQK KyAgaWYgYWNfZm5fY19jb21wdXRlX2ludCAiJExJTkVOTyIgIihsb25nIGludCkgb2Zmc2V0b2Yg KGFjX190eXBlX2FsaWdub2ZfLCB5KSIgImFjX2N2X2FsaWdub2ZfaW50NjRfdCIgICAgICAgICIk YWNfaW5jbHVkZXNfZGVmYXVsdAogI2lmbmRlZiBvZmZzZXRvZgogIyBkZWZpbmUgb2Zmc2V0b2Yo dHlwZSwgbWVtYmVyKSAoKGNoYXIgKikgJigodHlwZSAqKSAwKS0+bWVtYmVyIC0gKGNoYXIgKikg MCkKICNlbmRpZgotdHlwZWRlZiBzdHJ1Y3QgeyBjaGFyIHg7IGxvbmcgbG9uZyBpbnQgeTsgfSBh Y19fdHlwZV9hbGlnbm9mXzsiOyB0aGVuIDoKK3R5cGVkZWYgc3RydWN0IHsgY2hhciB4OyBpbnQ2 NF90IHk7IH0gYWNfX3R5cGVfYWxpZ25vZl87IjsgdGhlbiA6CiAKIGVsc2UKLSAgaWYgdGVzdCAi JGFjX2N2X3R5cGVfbG9uZ19sb25nX2ludCIgPSB5ZXM7IHRoZW4KKyAgaWYgdGVzdCAiJGFjX2N2 X3R5cGVfaW50NjRfdCIgPSB5ZXM7IHRoZW4KICAgICAgeyB7ICRhc19lY2hvICIkYXNfbWU6JHth c19saW5lbm8tJExJTkVOT306IGVycm9yOiBpbiBcYCRhY19wd2QnOiIgPiY1CiAkYXNfZWNobyAi JGFzX21lOiBlcnJvcjogaW4gXGAkYWNfcHdkJzoiID4mMjt9Ci1hc19mbl9lcnJvciA3NyAiY2Fu bm90IGNvbXB1dGUgYWxpZ25tZW50IG9mIGxvbmcgbG9uZyBpbnQKK2FzX2ZuX2Vycm9yIDc3ICJj YW5ub3QgY29tcHV0ZSBhbGlnbm1lbnQgb2YgaW50NjRfdAogU2VlIFxgY29uZmlnLmxvZycgZm9y IG1vcmUgZGV0YWlscyIgIiRMSU5FTk8iIDU7IH0KICAgIGVsc2UKLSAgICAgYWNfY3ZfYWxpZ25v Zl9sb25nX2xvbmdfaW50PTAKKyAgICAgYWNfY3ZfYWxpZ25vZl9pbnQ2NF90PTAKICAgIGZpCiBm aQogCiBmaQoteyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6 ICRhY19jdl9hbGlnbm9mX2xvbmdfbG9uZ19pbnQiID4mNQotJGFzX2VjaG8gIiRhY19jdl9hbGln bm9mX2xvbmdfbG9uZ19pbnQiID4mNjsgfQoreyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5v LSRMSU5FTk99OiByZXN1bHQ6ICRhY19jdl9hbGlnbm9mX2ludDY0X3QiID4mNQorJGFzX2VjaG8g IiRhY19jdl9hbGlnbm9mX2ludDY0X3QiID4mNjsgfQogCiAKIAogY2F0ID4+Y29uZmRlZnMuaCA8 PF9BQ0VPRgotI2RlZmluZSBBTElHTk9GX0xPTkdfTE9OR19JTlQgJGFjX2N2X2FsaWdub2ZfbG9u Z19sb25nX2ludAorI2RlZmluZSBBTElHTk9GX0lOVDY0X1QgJGFjX2N2X2FsaWdub2ZfaW50NjRf dAogX0FDRU9GCiAKIAotZmkKICMgVGhlIGNhc3QgdG8gbG9uZyBpbnQgd29ya3MgYXJvdW5kIGEg YnVnIGluIHRoZSBIUCBDIENvbXBpbGVyLAogIyBzZWUgQUNfQ0hFQ0tfU0laRU9GIGZvciBtb3Jl IGluZm9ybWF0aW9uLgogeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBj aGVja2luZyBhbGlnbm1lbnQgb2YgZG91YmxlIiA+JjUKQEAgLTE2OTcxLDggKzE2Nzc4LDggQEAg TUFYX0FMSUdOT0Y9JGFjX2N2X2FsaWdub2ZfZG91YmxlCiBpZiB0ZXN0ICRhY19jdl9hbGlnbm9m X2xvbmcgLWd0ICRNQVhfQUxJR05PRiA7IHRoZW4KICAgYXNfZm5fZXJyb3IgJD8gImFsaWdubWVu dCBvZiAnbG9uZycgaXMgZ3JlYXRlciB0aGFuIHRoZSBhbGlnbm1lbnQgb2YgJ2RvdWJsZSciICIk TElORU5PIiA1CiBmaQotaWYgdGVzdCB4IiRIQVZFX0xPTkdfTE9OR19JTlRfNjQiID0geHllcyAm JiB0ZXN0ICRhY19jdl9hbGlnbm9mX2xvbmdfbG9uZ19pbnQgLWd0ICRNQVhfQUxJR05PRiA7IHRo ZW4KLSAgYXNfZm5fZXJyb3IgJD8gImFsaWdubWVudCBvZiAnbG9uZyBsb25nIGludCcgaXMgZ3Jl YXRlciB0aGFuIHRoZSBhbGlnbm1lbnQgb2YgJ2RvdWJsZSciICIkTElORU5PIiA1CitpZiB0ZXN0 ICRhY19jdl9hbGlnbm9mX2ludDY0X3QgLWd0ICRNQVhfQUxJR05PRiA7IHRoZW4KKyAgYXNfZm5f ZXJyb3IgJD8gImFsaWdubWVudCBvZiAnaW50NjRfdCcgaXMgZ3JlYXRlciB0aGFuIHRoZSBhbGln bm1lbnQgb2YgJ2RvdWJsZSciICIkTElORU5PIiA1CiBmaQogCiBjYXQgPj5jb25mZGVmcy5oIDw8 X0FDRU9GCkBAIC0xNjk4MCw3ICsxNjc4Nyw2IEBAIGNhdCA+PmNvbmZkZWZzLmggPDxfQUNFT0YK IF9BQ0VPRgogCiAKLQogIyBTb21lIHBsYXRmb3JtcyBwcmVkZWZpbmUgdGhlIHR5cGVzIGludDgs IGludDE2LCBldGMuICBPbmx5IGNoZWNrCiAjIGEgKGhvcGVmdWxseSkgcmVwcmVzZW50YXRpdmUg c3Vic2V0LgogYWNfZm5fY19jaGVja190eXBlICIkTElORU5PIiAiaW50OCIgImFjX2N2X3R5cGVf aW50OCIgIiNpbmNsdWRlIDxzdGRpby5oPgpAQCAtMTkyNzIsOSArMTkwNzgsNiBAQCBmaQogYWNf Y29uZmlnX2hlYWRlcnM9IiRhY19jb25maWdfaGVhZGVycyBzcmMvaW5jbHVkZS9wZ19jb25maWcu aCIKIAogCi1hY19jb25maWdfaGVhZGVycz0iJGFjX2NvbmZpZ19oZWFkZXJzIHNyYy9pbmNsdWRl L3BnX2NvbmZpZ19leHQuaCIKLQotCiBhY19jb25maWdfaGVhZGVycz0iJGFjX2NvbmZpZ19oZWFk ZXJzIHNyYy9pbnRlcmZhY2VzL2VjcGcvaW5jbHVkZS9lY3BnX2NvbmZpZy5oIgogCiAKQEAgLTE5 OTg5LDcgKzE5NzkyLDYgQEAgZG8KICAgICAic3JjL01ha2VmaWxlLnBvcnQiKSBDT05GSUdfTElO S1M9IiRDT05GSUdfTElOS1Mgc3JjL01ha2VmaWxlLnBvcnQ6c3JjL21ha2VmaWxlcy9NYWtlZmls ZS4ke3RlbXBsYXRlfSIgOzsKICAgICAiY2hlY2tfd2luMzJfc3ltbGlua3MiKSBDT05GSUdfQ09N TUFORFM9IiRDT05GSUdfQ09NTUFORFMgY2hlY2tfd2luMzJfc3ltbGlua3MiIDs7CiAgICAgInNy Yy9pbmNsdWRlL3BnX2NvbmZpZy5oIikgQ09ORklHX0hFQURFUlM9IiRDT05GSUdfSEVBREVSUyBz cmMvaW5jbHVkZS9wZ19jb25maWcuaCIgOzsKLSAgICAic3JjL2luY2x1ZGUvcGdfY29uZmlnX2V4 dC5oIikgQ09ORklHX0hFQURFUlM9IiRDT05GSUdfSEVBREVSUyBzcmMvaW5jbHVkZS9wZ19jb25m aWdfZXh0LmgiIDs7CiAgICAgInNyYy9pbnRlcmZhY2VzL2VjcGcvaW5jbHVkZS9lY3BnX2NvbmZp Zy5oIikgQ09ORklHX0hFQURFUlM9IiRDT05GSUdfSEVBREVSUyBzcmMvaW50ZXJmYWNlcy9lY3Bn L2luY2x1ZGUvZWNwZ19jb25maWcuaCIgOzsKIAogICAqKSBhc19mbl9lcnJvciAkPyAiaW52YWxp ZCBhcmd1bWVudDogXGAkYWNfY29uZmlnX3RhcmdldCciICIkTElORU5PIiA1OzsKQEAgLTIwNTk3 LDEwICsyMDM5OSw2IEBAICRhc19lY2hvICIkYXNfbWU6IFdBUk5JTkc6ICoqKiBsaW5rIGZvciAk RklMRSAtLSBwbGVhc2UgZml4IGJ5IGhhbmQiID4mMjt9CiAgICAgInNyYy9pbmNsdWRlL3BnX2Nv bmZpZy5oIjpIKQogIyBVcGRhdGUgdGltZXN0YW1wIGZvciBwZ19jb25maWcuaCAoc2VlIE1ha2Vm aWxlLmdsb2JhbCkKIGVjaG8gPnNyYy9pbmNsdWRlL3N0YW1wLWgKLSA7OwotICAgICJzcmMvaW5j bHVkZS9wZ19jb25maWdfZXh0LmgiOkgpCi0jIFVwZGF0ZSB0aW1lc3RhbXAgZm9yIHBnX2NvbmZp Z19leHQuaCAoc2VlIE1ha2VmaWxlLmdsb2JhbCkKLWVjaG8gPnNyYy9pbmNsdWRlL3N0YW1wLWV4 dC1oCiAgOzsKICAgICAic3JjL2ludGVyZmFjZXMvZWNwZy9pbmNsdWRlL2VjcGdfY29uZmlnLmgi OkgpIGVjaG8gPnNyYy9pbnRlcmZhY2VzL2VjcGcvaW5jbHVkZS9zdGFtcC1oIDs7CiAKZGlmZiAt LWdpdCBhL2NvbmZpZ3VyZS5hYyBiL2NvbmZpZ3VyZS5hYwppbmRleCA2N2U3MzhkOTJiLi4xYzRj ZDNhYjcyIDEwMDY0NAotLS0gYS9jb25maWd1cmUuYWMKKysrIGIvY29uZmlndXJlLmFjCkBAIC0x OTQ1LDM3ICsxOTQ1LDYgQEAgZm9yIHRoZSBleGFjdCByZWFzb24uXV0pXSwKICMgUnVuIHRlc3Rz IGJlbG93IGhlcmUKICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0KIAotZG5sIENoZWNrIHRvIHNlZSBp ZiB3ZSBoYXZlIGEgd29ya2luZyA2NC1iaXQgaW50ZWdlciB0eXBlLgotZG5sIFNpbmNlIFBvc3Rn cmVzIDguNCwgd2Ugbm8gbG9uZ2VyIHN1cHBvcnQgY29tcGlsZXJzIHdpdGhvdXQgYSB3b3JraW5n Ci1kbmwgNjQtYml0IHR5cGU7IGJ1dCB3ZSBoYXZlIHRvIGRldGVybWluZSB3aGV0aGVyIHRoYXQg dHlwZSBpcyBjYWxsZWQKLWRubCAibG9uZyBpbnQiIG9yICJsb25nIGxvbmcgaW50Ii4KLQotUEdB Q19UWVBFXzY0QklUX0lOVChbbG9uZyBpbnRdKQotCi1pZiB0ZXN0IHgiJEhBVkVfTE9OR19JTlRf NjQiID0geCJ5ZXMiIDsgdGhlbgotICBwZ19pbnQ2NF90eXBlPSJsb25nIGludCIKLWVsc2UKLSAg UEdBQ19UWVBFXzY0QklUX0lOVChbbG9uZyBsb25nIGludF0pCi0gIGlmIHRlc3QgeCIkSEFWRV9M T05HX0xPTkdfSU5UXzY0IiA9IHgieWVzIiA7IHRoZW4KLSAgICBwZ19pbnQ2NF90eXBlPSJsb25n IGxvbmcgaW50IgotICBlbHNlCi0gICAgQUNfTVNHX0VSUk9SKFtDYW5ub3QgZmluZCBhIHdvcmtp bmcgNjQtYml0IGludGVnZXIgdHlwZS5dKQotICBmaQotZmkKLQotQUNfREVGSU5FX1VOUVVPVEVE KFBHX0lOVDY0X1RZUEUsICRwZ19pbnQ2NF90eXBlLAotICBbRGVmaW5lIHRvIHRoZSBuYW1lIG9m IGEgc2lnbmVkIDY0LWJpdCBpbnRlZ2VyIHR5cGUuXSkKLQotIyBTZWxlY3QgdGhlIHByaW50ZiBs ZW5ndGggbW9kaWZpZXIgdGhhdCBnb2VzIHdpdGggdGhhdCwgdG9vLgotaWYgdGVzdCB4IiRwZ19p bnQ2NF90eXBlIiA9IHgibG9uZyBsb25nIGludCIgOyB0aGVuCi0gIElOVDY0X01PRElGSUVSPSci bGwiJwotZWxzZQotICBJTlQ2NF9NT0RJRklFUj0nImwiJwotZmkKLQotQUNfREVGSU5FX1VOUVVP VEVEKElOVDY0X01PRElGSUVSLCAkSU5UNjRfTU9ESUZJRVIsCi0gICAgICAgICAgICAgICAgICAg W0RlZmluZSB0byB0aGUgYXBwcm9wcmlhdGUgcHJpbnRmIGxlbmd0aCBtb2RpZmllciBmb3IgNjQt Yml0IGludHMuXSkKLQogIyBoYXMgdG8gYmUgZG93biBoZXJlLCByYXRoZXIgdGhhbiB3aXRoIHRo ZSBvdGhlciBidWlsdGlucywgYmVjYXVzZQogIyB0aGUgdGVzdCB1c2VzIFBHX0lOVDY0X1RZUEUu CiBQR0FDX0NfQlVJTFRJTl9PUF9PVkVSRkxPVwpAQCAtMTk5MCw5ICsxOTU5LDcgQEAgQUNfQ0hF Q0tfU0laRU9GKFtsb25nXSkKIEFDX0NIRUNLX0FMSUdOT0Yoc2hvcnQpCiBBQ19DSEVDS19BTElH Tk9GKGludCkKIEFDX0NIRUNLX0FMSUdOT0YobG9uZykKLWlmIHRlc3QgeCIkSEFWRV9MT05HX0xP TkdfSU5UXzY0IiA9IHgieWVzIiA7IHRoZW4KLSAgQUNfQ0hFQ0tfQUxJR05PRihsb25nIGxvbmcg aW50KQotZmkKK0FDX0NIRUNLX0FMSUdOT0YoaW50NjRfdCkKIEFDX0NIRUNLX0FMSUdOT0YoZG91 YmxlKQogCiAjIENvbXB1dGUgbWF4aW11bSBhbGlnbm1lbnQgb2YgYW55IGJhc2ljIHR5cGUuCkBA IC0yMDE2LDEyICsxOTgzLDExIEBAIE1BWF9BTElHTk9GPSRhY19jdl9hbGlnbm9mX2RvdWJsZQog aWYgdGVzdCAkYWNfY3ZfYWxpZ25vZl9sb25nIC1ndCAkTUFYX0FMSUdOT0YgOyB0aGVuCiAgIEFD X01TR19FUlJPUihbYWxpZ25tZW50IG9mICdsb25nJyBpcyBncmVhdGVyIHRoYW4gdGhlIGFsaWdu bWVudCBvZiAnZG91YmxlJ10pCiBmaQotaWYgdGVzdCB4IiRIQVZFX0xPTkdfTE9OR19JTlRfNjQi ID0geHllcyAmJiB0ZXN0ICRhY19jdl9hbGlnbm9mX2xvbmdfbG9uZ19pbnQgLWd0ICRNQVhfQUxJ R05PRiA7IHRoZW4KLSAgQUNfTVNHX0VSUk9SKFthbGlnbm1lbnQgb2YgJ2xvbmcgbG9uZyBpbnQn IGlzIGdyZWF0ZXIgdGhhbiB0aGUgYWxpZ25tZW50IG9mICdkb3VibGUnXSkKK2lmIHRlc3QgJGFj X2N2X2FsaWdub2ZfaW50NjRfdCAtZ3QgJE1BWF9BTElHTk9GIDsgdGhlbgorICBBQ19NU0dfRVJS T1IoW2FsaWdubWVudCBvZiAnaW50NjRfdCcgaXMgZ3JlYXRlciB0aGFuIHRoZSBhbGlnbm1lbnQg b2YgJ2RvdWJsZSddKQogZmkKIEFDX0RFRklORV9VTlFVT1RFRChNQVhJTVVNX0FMSUdOT0YsICRN QVhfQUxJR05PRiwgW0RlZmluZSBhcyB0aGUgbWF4aW11bSBhbGlnbm1lbnQgcmVxdWlyZW1lbnQg b2YgYW55IEMgZGF0YSB0eXBlLl0pCiAKLQogIyBTb21lIHBsYXRmb3JtcyBwcmVkZWZpbmUgdGhl IHR5cGVzIGludDgsIGludDE2LCBldGMuICBPbmx5IGNoZWNrCiAjIGEgKGhvcGVmdWxseSkgcmVw cmVzZW50YXRpdmUgc3Vic2V0LgogQUNfQ0hFQ0tfVFlQRVMoW2ludDgsIHVpbnQ4LCBpbnQ2NCwg dWludDY0XSwgW10sIFtdLApAQCAtMjUyMCwxMiArMjQ4Niw2IEBAIEFDX0NPTkZJR19IRUFERVJT KFtzcmMvaW5jbHVkZS9wZ19jb25maWcuaF0sCiBlY2hvID5zcmMvaW5jbHVkZS9zdGFtcC1oCiBd KQogCi1BQ19DT05GSUdfSEVBREVSUyhbc3JjL2luY2x1ZGUvcGdfY29uZmlnX2V4dC5oXSwKLVsK LSMgVXBkYXRlIHRpbWVzdGFtcCBmb3IgcGdfY29uZmlnX2V4dC5oIChzZWUgTWFrZWZpbGUuZ2xv YmFsKQotZWNobyA+c3JjL2luY2x1ZGUvc3RhbXAtZXh0LWgKLV0pCi0KIEFDX0NPTkZJR19IRUFE RVJTKFtzcmMvaW50ZXJmYWNlcy9lY3BnL2luY2x1ZGUvZWNwZ19jb25maWcuaF0sCiAgICAgICAg ICAgICAgICAgICBbZWNobyA+c3JjL2ludGVyZmFjZXMvZWNwZy9pbmNsdWRlL3N0YW1wLWhdKQog CmRpZmYgLS1naXQgYS9tZXNvbi5idWlsZCBiL21lc29uLmJ1aWxkCmluZGV4IGNkZmQzMTM3N2Qu Ljk2ZTVlZGM1M2YgMTAwNjQ0Ci0tLSBhL21lc29uLmJ1aWxkCisrKyBiL21lc29uLmJ1aWxkCkBA IC0xNDg4LDE4ICsxNDg4LDYgQEAgZW5kaWYKIAogc2l6ZW9mX2xvbmcgPSBjYy5zaXplb2YoJ2xv bmcnLCBhcmdzOiB0ZXN0X2NfYXJncykKIGNkYXRhLnNldCgnU0laRU9GX0xPTkcnLCBzaXplb2Zf bG9uZykKLWlmIHNpemVvZl9sb25nID09IDgKLSAgY2RhdGEuc2V0KCdIQVZFX0xPTkdfSU5UXzY0 JywgMSkKLSAgcGdfaW50NjRfdHlwZSA9ICdsb25nIGludCcKLSAgY2RhdGEuc2V0X3F1b3RlZCgn SU5UNjRfTU9ESUZJRVInLCAnbCcpCi1lbGlmIHNpemVvZl9sb25nID09IDQgYW5kIGNjLnNpemVv ZignbG9uZyBsb25nJywgYXJnczogdGVzdF9jX2FyZ3MpID09IDgKLSAgY2RhdGEuc2V0KCdIQVZF X0xPTkdfTE9OR19JTlRfNjQnLCAxKQotICBwZ19pbnQ2NF90eXBlID0gJ2xvbmcgbG9uZyBpbnQn Ci0gIGNkYXRhLnNldF9xdW90ZWQoJ0lOVDY0X01PRElGSUVSJywgJ2xsJykKLWVsc2UKLSAgZXJy b3IoJ2RvIG5vdCBrbm93IGhvdyB0byBnZXQgYSA2NGJpdCBpbnQnKQotZW5kaWYKLWNkYXRhLnNl dCgnUEdfSU5UNjRfVFlQRScsIHBnX2ludDY0X3R5cGUpCiAKIGlmIGhvc3RfbWFjaGluZS5lbmRp YW4oKSA9PSAnYmlnJwogICBjZGF0YS5zZXQoJ1dPUkRTX0JJR0VORElBTicsIDEpCkBAIC0xNTI5 LDggKzE1MTcsOCBAQCBlbmRmb3JlYWNoCiAjIGFueSB0eXBlcyB3aWRlciB0aGFuIDY0IGJpdHMs IGFzIGFsbG93aW5nIE1BWElNVU1fQUxJR05PRiB0byBleGNlZWQgOAogIyB3b3VsZCBiZSB0b28g bXVjaCBvZiBhIHBlbmFsdHkgZm9yIGRpc2sgYW5kIG1lbW9yeSBzcGFjZS4KIGFsaWdub2ZfZG91 YmxlID0gY2RhdGEuZ2V0KCdBTElHTk9GX0RPVUJMRScpCi1pZiBjYy5hbGlnbm1lbnQocGdfaW50 NjRfdHlwZSwgYXJnczogdGVzdF9jX2FyZ3MpID4gYWxpZ25vZl9kb3VibGUKLSAgZXJyb3IoJ2Fs aWdubWVudCBvZiBpbnQ2NCBpcyBncmVhdGVyIHRoYW4gdGhlIGFsaWdubWVudCBvZiBkb3VibGUn KQoraWYgY2MuYWxpZ25tZW50KCdpbnQ2NF90JywgYXJnczogdGVzdF9jX2FyZ3MsIHByZWZpeDog JyNpbmNsdWRlIDxzdGRpbnQuaD4nKSA+IGFsaWdub2ZfZG91YmxlCisgIGVycm9yKCdhbGlnbm1l bnQgb2YgaW50NjRfdCBpcyBncmVhdGVyIHRoYW4gdGhlIGFsaWdubWVudCBvZiBkb3VibGUnKQog ZW5kaWYKIGNkYXRhLnNldCgnTUFYSU1VTV9BTElHTk9GJywgYWxpZ25vZl9kb3VibGUpCiAKQEAg LTE3NDIsMTcgKzE3MzAsMTcgQEAgZW5kaWYKICMgY29tcGlsZSwgYW5kIHN0b3JlIHRoZSByZXN1 bHRzIGluIGdsb2JhbCB2YXJpYWJsZXMgc28gdGhlIGNvbXBpbGVyIGRvZXNuJ3QKICMgb3B0aW1p emUgYXdheSB0aGUgY2FsbC4KIGlmIGNjLmxpbmtzKCcnJwotICAgIElOVDY0IGEgPSAxOwotICAg IElOVDY0IGIgPSAxOwotICAgIElOVDY0IHJlc3VsdDsKKyAgICAjaW5jbHVkZSA8c3RkaW50Lmg+ CisgICAgaW50NjRfdCBhID0gMTsKKyAgICBpbnQ2NF90IGIgPSAxOworICAgIGludDY0X3QgcmVz dWx0OwogCiAgICAgaW50IG1haW4odm9pZCkKICAgICB7CiAgICAgICAgIHJldHVybiBfX2J1aWx0 aW5fbXVsX292ZXJmbG93KGEsIGIsICZyZXN1bHQpOwogICAgIH0nJycsCiAgICAgbmFtZTogJ19f YnVpbHRpbl9tdWxfb3ZlcmZsb3cnLAotICAgIGFyZ3M6IHRlc3RfY19hcmdzICsgWyctRElOVDY0 PUAwQCcuZm9ybWF0KGNkYXRhLmdldCgnUEdfSU5UNjRfVFlQRScpKV0sCi0gICAgKQorICAgIGFy Z3M6IHRlc3RfY19hcmdzKQogICBjZGF0YS5zZXQoJ0hBVkVfX0JVSUxUSU5fT1BfT1ZFUkZMT1cn LCAxKQogZW5kaWYKIApAQCAtMjAxMyw3ICsyMDAxLDcgQEAgaW50IG1haW4odm9pZCkKICAgICBj ZGF0YS5zZXQoY2hlY2tbJ25hbWUnXSwKICAgICAgIGNjLmxpbmtzKHRlc3QsCiAgICAgICAgIG5h bWU6IGNoZWNrWydkZXNjJ10sCi0gICAgICAgIGFyZ3M6IHRlc3RfY19hcmdzICsgWyctRElOVDY0 PUAwQCcuZm9ybWF0KGNkYXRhLmdldCgnUEdfSU5UNjRfVFlQRScpKV0pID8gMSA6IGZhbHNlCisg ICAgICAgIGFyZ3M6IHRlc3RfY19hcmdzKSA/IDEgOiBmYWxzZQogICAgICkKICAgZW5kZm9yZWFj aAogCkBAIC0yMDU3LDExICsyMDQ1LDEyIEBAIGlmIGhvc3RfY3B1ID09ICd4ODZfNjQnCiAKICAg cHJvZyA9ICcnJwogI2luY2x1ZGUgPGltbWludHJpbi5oPgorI2luY2x1ZGUgPHN0ZGludC5oPgog CiBpbnQgbWFpbih2b2lkKQogewogICAgIGNvbnN0IGNoYXIgYnVmW3NpemVvZihfX201MTJpKV07 Ci0gICAgSU5UNjQgcG9wY250ID0gMDsKKyAgICBpbnQ2NF90IHBvcGNudCA9IDA7CiAgICAgX19t NTEyaSBhY2N1bSA9IF9tbTUxMl9zZXR6ZXJvX3NpNTEyKCk7CiAgICAgY29uc3QgX19tNTEyaSB2 YWwgPSBfbW01MTJfbWFza3pfbG9hZHVfZXBpOCgoX19tbWFzazY0KSAweGYwZjBmMGYwZjBmMGYw ZjAsIChjb25zdCBfX201MTJpICopIGJ1Zik7CiAgICAgY29uc3QgX19tNTEyaSBjbnQgPSBfbW01 MTJfcG9wY250X2VwaTY0KHZhbCk7CkBAIC0yMDczLDEwICsyMDYyLDEwIEBAIGludCBtYWluKHZv aWQpCiAnJycKIAogICBpZiBjYy5saW5rcyhwcm9nLCBuYW1lOiAnQVZYLTUxMiBwb3Bjb3VudCB3 aXRob3V0IC1tYXZ4NTEydnBvcGNudGRxIC1tYXZ4NTEyYncnLAotICAgICAgICBhcmdzOiB0ZXN0 X2NfYXJncyArIFsnLURJTlQ2ND1AMEAnLmZvcm1hdChjZGF0YS5nZXQoJ1BHX0lOVDY0X1RZUEUn KSldKQorICAgICAgICBhcmdzOiB0ZXN0X2NfYXJncykKICAgICBjZGF0YS5zZXQoJ1VTRV9BVlg1 MTJfUE9QQ05UX1dJVEhfUlVOVElNRV9DSEVDSycsIDEpCiAgIGVsaWYgY2MubGlua3MocHJvZywg bmFtZTogJ0FWWC01MTIgcG9wY291bnQgd2l0aCAtbWF2eDUxMnZwb3BjbnRkcSAtbWF2eDUxMmJ3 JywKLSAgICAgICAgYXJnczogdGVzdF9jX2FyZ3MgKyBbJy1ESU5UNjQ9QDBAJy5mb3JtYXQoY2Rh dGEuZ2V0KCdQR19JTlQ2NF9UWVBFJykpXSArIFsnLW1hdng1MTJ2cG9wY250ZHEnXSArIFsnLW1h dng1MTJidyddKQorICAgICAgICBhcmdzOiB0ZXN0X2NfYXJncyArIFsnLW1hdng1MTJ2cG9wY250 ZHEnXSArIFsnLW1hdng1MTJidyddKQogICAgIGNkYXRhLnNldCgnVVNFX0FWWDUxMl9QT1BDTlRf V0lUSF9SVU5USU1FX0NIRUNLJywgMSkKICAgICBjZmxhZ3NfcG9wY250ICs9IFsnLW1hdng1MTJ2 cG9wY250ZHEnXSArIFsnLW1hdng1MTJidyddCiAgIGVuZGlmCmRpZmYgLS1naXQgYS9zcmMvTWFr ZWZpbGUuZ2xvYmFsLmluIGIvc3JjL01ha2VmaWxlLmdsb2JhbC5pbgppbmRleCAzNmQ4ODBkMjI1 Li4xOTI4ZmMyZjJjIDEwMDY0NAotLS0gYS9zcmMvTWFrZWZpbGUuZ2xvYmFsLmluCisrKyBiL3Ny Yy9NYWtlZmlsZS5nbG9iYWwuaW4KQEAgLTgzMywxMiArODMzLDYgQEAgJCh0b3BfYnVpbGRkaXIp L3NyYy9pbmNsdWRlL3BnX2NvbmZpZy5oOiAkKHRvcF9idWlsZGRpcikvc3JjL2luY2x1ZGUvc3Rh bXAtaCA7CiAkKHRvcF9idWlsZGRpcikvc3JjL2luY2x1ZGUvc3RhbXAtaDogJCh0b3Bfc3JjZGly KS9zcmMvaW5jbHVkZS9wZ19jb25maWcuaC5pbiAkKHRvcF9idWlsZGRpcikvY29uZmlnLnN0YXR1 cwogCWNkICQodG9wX2J1aWxkZGlyKSAmJiAuL2NvbmZpZy5zdGF0dXMgc3JjL2luY2x1ZGUvcGdf Y29uZmlnLmgKIAotIyBBbHNvIHJlbWFrZSBwZ19jb25maWdfZXh0LmggZnJvbSBwZ19jb25maWdf ZXh0LmguaW4sIHNhbWUgbG9naWMgYXMgYWJvdmUuCi0kKHRvcF9idWlsZGRpcikvc3JjL2luY2x1 ZGUvcGdfY29uZmlnX2V4dC5oOiAkKHRvcF9idWlsZGRpcikvc3JjL2luY2x1ZGUvc3RhbXAtZXh0 LWggOwotCi0kKHRvcF9idWlsZGRpcikvc3JjL2luY2x1ZGUvc3RhbXAtZXh0LWg6ICQodG9wX3Ny Y2Rpcikvc3JjL2luY2x1ZGUvcGdfY29uZmlnX2V4dC5oLmluICQodG9wX2J1aWxkZGlyKS9jb25m aWcuc3RhdHVzCi0JY2QgJCh0b3BfYnVpbGRkaXIpICYmIC4vY29uZmlnLnN0YXR1cyBzcmMvaW5j bHVkZS9wZ19jb25maWdfZXh0LmgKLQogIyBBbHNvIHJlbWFrZSBlY3BnX2NvbmZpZy5oIGZyb20g ZWNwZ19jb25maWcuaC5pbiBpZiB0aGUgbGF0dGVyIGNoYW5nZWQsIHNhbWUKICMgbG9naWMgYXMg YWJvdmUuCiAkKHRvcF9idWlsZGRpcikvc3JjL2ludGVyZmFjZXMvZWNwZy9pbmNsdWRlL2VjcGdf Y29uZmlnLmg6ICQodG9wX2J1aWxkZGlyKS9zcmMvaW50ZXJmYWNlcy9lY3BnL2luY2x1ZGUvc3Rh bXAtaCA7CmRpZmYgLS1naXQgYS9zcmMvYmluL3BnX3dhbGR1bXAvcGdfd2FsZHVtcC5jIGIvc3Jj L2Jpbi9wZ193YWxkdW1wL3BnX3dhbGR1bXAuYwppbmRleCAxZjk0MDNmYzVjLi5jNGIwNGQ2Mjk2 IDEwMDY0NAotLS0gYS9zcmMvYmluL3BnX3dhbGR1bXAvcGdfd2FsZHVtcC5jCisrKyBiL3NyYy9i aW4vcGdfd2FsZHVtcC9wZ193YWxkdW1wLmMKQEAgLTYxMCwxMCArNjEwLDEwIEBAIFhMb2dEdW1w U3RhdHNSb3coY29uc3QgY2hhciAqbmFtZSwKIAkJdG90X2xlbl9wY3QgPSAxMDAgKiAoZG91Ymxl KSB0b3RfbGVuIC8gdG90YWxfbGVuOwogCiAJcHJpbnRmKCIlLTI3cyAiCi0JCSAgICIlMjAiIElO VDY0X01PRElGSUVSICJ1ICglNi4wMmYpICIKLQkJICAgIiUyMCIgSU5UNjRfTU9ESUZJRVIgInUg KCU2LjAyZikgIgotCQkgICAiJTIwIiBJTlQ2NF9NT0RJRklFUiAidSAoJTYuMDJmKSAiCi0JCSAg ICIlMjAiIElOVDY0X01PRElGSUVSICJ1ICglNi4wMmYpXG4iLAorCQkgICAiJTIwIiBQUkl1NjQg IiAoJTYuMDJmKSAiCisJCSAgICIlMjAiIFBSSXU2NCAiICglNi4wMmYpICIKKwkJICAgIiUyMCIg UFJJdTY0ICIgKCU2LjAyZikgIgorCQkgICAiJTIwIiBQUkl1NjQgIiAoJTYuMDJmKVxuIiwKIAkJ ICAgbmFtZSwgbiwgbl9wY3QsIHJlY19sZW4sIHJlY19sZW5fcGN0LCBmcGlfbGVuLCBmcGlfbGVu X3BjdCwKIAkJICAgdG90X2xlbiwgdG90X2xlbl9wY3QpOwogfQpAQCAtNzQyLDEwICs3NDIsMTAg QEAgWExvZ0R1bXBEaXNwbGF5U3RhdHMoWExvZ0R1bXBDb25maWcgKmNvbmZpZywgWExvZ1N0YXRz ICpzdGF0cykKIAkJZnBpX2xlbl9wY3QgPSAxMDAgKiAoZG91YmxlKSB0b3RhbF9mcGlfbGVuIC8g dG90YWxfbGVuOwogCiAJcHJpbnRmKCIlLTI3cyAiCi0JCSAgICIlMjAiIElOVDY0X01PRElGSUVS ICJ1ICUtOXMiCi0JCSAgICIlMjAiIElOVDY0X01PRElGSUVSICJ1ICUtOXMiCi0JCSAgICIlMjAi IElOVDY0X01PRElGSUVSICJ1ICUtOXMiCi0JCSAgICIlMjAiIElOVDY0X01PRElGSUVSICJ1ICUt NnNcbiIsCisJCSAgICIlMjAiIFBSSXU2NCAiICUtOXMiCisJCSAgICIlMjAiIFBSSXU2NCAiICUt OXMiCisJCSAgICIlMjAiIFBSSXU2NCAiICUtOXMiCisJCSAgICIlMjAiIFBSSXU2NCAiICUtNnNc biIsCiAJCSAgICJUb3RhbCIsIHN0YXRzLT5jb3VudCwgIiIsCiAJCSAgIHRvdGFsX3JlY19sZW4s IHBzcHJpbnRmKCJbJS4wMmYlJV0iLCByZWNfbGVuX3BjdCksCiAJCSAgIHRvdGFsX2ZwaV9sZW4s IHBzcHJpbnRmKCJbJS4wMmYlJV0iLCBmcGlfbGVuX3BjdCksCmRpZmYgLS1naXQgYS9zcmMvYmlu L3BnYmVuY2gvcGdiZW5jaC5jIGIvc3JjL2Jpbi9wZ2JlbmNoL3BnYmVuY2guYwppbmRleCBhZjc3 NmIzMWQ4Li4wODhjNWZhMGM3IDEwMDY0NAotLS0gYS9zcmMvYmluL3BnYmVuY2gvcGdiZW5jaC5j CisrKyBiL3NyYy9iaW4vcGdiZW5jaC9wZ2JlbmNoLmMKQEAgLTY1NDUsMTMgKzY1NDUsMTMgQEAg cHJpbnRSZXN1bHRzKFN0YXRzRGF0YSAqdG90YWwsCiAJCQkJCVNpbXBsZVN0YXRzICpjc3RhdHMg PSAmKCpjb21tYW5kcyktPnN0YXRzOwogCiAJCQkJCWlmIChtYXhfdHJpZXMgPT0gMSkKLQkJCQkJ CXByaW50ZigiICAgJTExLjNmICAlMTAiIElOVDY0X01PRElGSUVSICJkICAlc1xuIiwKKwkJCQkJ CXByaW50ZigiICAgJTExLjNmICAlMTAiIFBSSWQ2NCAiICVzXG4iLAogCQkJCQkJCSAgIChjc3Rh dHMtPmNvdW50ID4gMCkgPwogCQkJCQkJCSAgIDEwMDAuMCAqIGNzdGF0cy0+c3VtIC8gY3N0YXRz LT5jb3VudCA6IDAuMCwKIAkJCQkJCQkgICAoKmNvbW1hbmRzKS0+ZmFpbHVyZXMsCiAJCQkJCQkJ ICAgKCpjb21tYW5kcyktPmZpcnN0X2xpbmUpOwogCQkJCQllbHNlCi0JCQkJCQlwcmludGYoIiAg ICUxMS4zZiAgJTEwIiBJTlQ2NF9NT0RJRklFUiAiZCAgJTEwIiBJTlQ2NF9NT0RJRklFUiAiZCAg JXNcbiIsCisJCQkJCQlwcmludGYoIiAgICUxMS4zZiAgJTEwIiBQUklkNjQgIiAlMTAiIFBSSWQ2 NCAiICVzXG4iLAogCQkJCQkJCSAgIChjc3RhdHMtPmNvdW50ID4gMCkgPwogCQkJCQkJCSAgIDEw MDAuMCAqIGNzdGF0cy0+c3VtIC8gY3N0YXRzLT5jb3VudCA6IDAuMCwKIAkJCQkJCQkgICAoKmNv bW1hbmRzKS0+ZmFpbHVyZXMsCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS8uZ2l0aWdub3JlIGIv c3JjL2luY2x1ZGUvLmdpdGlnbm9yZQppbmRleCA1MTgxOWZiNGRkLi42ZTk5ZTgyZmUwIDEwMDY0 NAotLS0gYS9zcmMvaW5jbHVkZS8uZ2l0aWdub3JlCisrKyBiL3NyYy9pbmNsdWRlLy5naXRpZ25v cmUKQEAgLTEsNSArMSwzIEBACiAvc3RhbXAtaAotL3N0YW1wLWV4dC1oCiAvcGdfY29uZmlnLmgK LS9wZ19jb25maWdfZXh0LmgKIC9wZ19jb25maWdfb3MuaApkaWZmIC0tZ2l0IGEvc3JjL2luY2x1 ZGUvTWFrZWZpbGUgYi9zcmMvaW5jbHVkZS9NYWtlZmlsZQppbmRleCBiOGI1NzZhNGRlLi4yNjMz MmZmOWNiIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9NYWtlZmlsZQorKysgYi9zcmMvaW5jbHVk ZS9NYWtlZmlsZQpAQCAtMTMsNyArMTMsNyBAQCB0b3BfYnVpbGRkaXIgPSAuLi8uLgogaW5jbHVk ZSAkKHRvcF9idWlsZGRpcikvc3JjL01ha2VmaWxlLmdsb2JhbAogCiAKLWFsbDogcGdfY29uZmln LmggcGdfY29uZmlnX2V4dC5oIHBnX2NvbmZpZ19vcy5oCithbGw6IHBnX2NvbmZpZy5oIHBnX2Nv bmZpZ19vcy5oCiAKIAogIyBTdWJkaXJlY3RvcmllcyBjb250YWluaW5nIGluc3RhbGxhYmxlIGhl YWRlcnMKQEAgLTMyLDcgKzMyLDYgQEAgaW5zdGFsbDogYWxsIGluc3RhbGxkaXJzCiAJJChJTlNU QUxMX0RBVEEpICQoc3JjZGlyKS9wb3N0Z3Jlc19leHQuaCAgICckKERFU1RESVIpJChpbmNsdWRl ZGlyKScKIAkkKElOU1RBTExfREFUQSkgJChzcmNkaXIpL2xpYnBxL2xpYnBxLWZzLmggJyQoREVT VERJUikkKGluY2x1ZGVkaXIpL2xpYnBxJwogCSQoSU5TVEFMTF9EQVRBKSBwZ19jb25maWcuaCAg ICAgJyQoREVTVERJUikkKGluY2x1ZGVkaXIpJwotCSQoSU5TVEFMTF9EQVRBKSBwZ19jb25maWdf ZXh0LmggJyQoREVTVERJUikkKGluY2x1ZGVkaXIpJwogCSQoSU5TVEFMTF9EQVRBKSBwZ19jb25m aWdfb3MuaCAgJyQoREVTVERJUikkKGluY2x1ZGVkaXIpJwogCSQoSU5TVEFMTF9EQVRBKSAkKHNy Y2RpcikvcGdfY29uZmlnX21hbnVhbC5oICckKERFU1RESVIpJChpbmNsdWRlZGlyKScKICMgVGhl c2UgaGVhZGVycyBhcmUgbmVlZGVkIGJ5IHRoZSBub3Qtc28tcHVibGljIGhlYWRlcnMgb2YgdGhl IGludGVyZmFjZXMuCkBAIC00Myw3ICs0Miw2IEBAIGluc3RhbGw6IGFsbCBpbnN0YWxsZGlycwog CSQoSU5TVEFMTF9EQVRBKSAkKHNyY2RpcikvbGlicHEvcHJvdG9jb2wuaCAnJChERVNURElSKSQo aW5jbHVkZWRpcl9pbnRlcm5hbCkvbGlicHEnCiAjIFRoZXNlIGhlYWRlcnMgYXJlIG5lZWRlZCBm b3Igc2VydmVyLXNpZGUgZGV2ZWxvcG1lbnQKIAkkKElOU1RBTExfREFUQSkgcGdfY29uZmlnLmgg ICAgICckKERFU1RESVIpJChpbmNsdWRlZGlyX3NlcnZlciknCi0JJChJTlNUQUxMX0RBVEEpIHBn X2NvbmZpZ19leHQuaCAnJChERVNURElSKSQoaW5jbHVkZWRpcl9zZXJ2ZXIpJwogCSQoSU5TVEFM TF9EQVRBKSBwZ19jb25maWdfb3MuaCAgJyQoREVTVERJUikkKGluY2x1ZGVkaXJfc2VydmVyKScK IAkkKElOU1RBTExfREFUQSkgbm9kZXMvbm9kZXRhZ3MuaCAnJChERVNURElSKSQoaW5jbHVkZWRp cl9zZXJ2ZXIpL25vZGVzJwogCSQoSU5TVEFMTF9EQVRBKSB1dGlscy9lcnJjb2Rlcy5oICckKERF U1RESVIpJChpbmNsdWRlZGlyX3NlcnZlcikvdXRpbHMnCkBAIC02Niw3ICs2NCw3IEBAIGluc3Rh bGxkaXJzOgogCiAKIHVuaW5zdGFsbDoKLQlybSAtZiAkKGFkZHByZWZpeCAnJChERVNURElSKSQo aW5jbHVkZWRpciknLywgcGdfY29uZmlnLmggcGdfY29uZmlnX2V4dC5oIHBnX2NvbmZpZ19vcy5o IHBnX2NvbmZpZ19tYW51YWwuaCBwb3N0Z3Jlc19leHQuaCBsaWJwcS9saWJwcS1mcy5oKQorCXJt IC1mICQoYWRkcHJlZml4ICckKERFU1RESVIpJChpbmNsdWRlZGlyKScvLCBwZ19jb25maWcuaCBw Z19jb25maWdfb3MuaCBwZ19jb25maWdfbWFudWFsLmggcG9zdGdyZXNfZXh0LmggbGlicHEvbGli cHEtZnMuaCkKIAlybSAtZiAkKGFkZHByZWZpeCAnJChERVNURElSKSQoaW5jbHVkZWRpcl9pbnRl cm5hbCknLywgYy5oIHBvcnQuaCBwb3N0Z3Jlc19mZS5oIGxpYnBxL3BxY29tbS5oIGxpYnBxL3By b3RvY29sLmgpCiAjIGhldXJpc3RpYy4uLgogCXJtIC1yZiAkKGFkZHByZWZpeCAnJChERVNURElS KSQoaW5jbHVkZWRpcl9zZXJ2ZXIpJy8sICQoU1VCRElSUykgKi5oKQpAQCAtODAsNCArNzgsNCBA QCBjbGVhbjoKIAkkKE1BS0UpIC1DIGNhdGFsb2cgY2xlYW4KIAogZGlzdGNsZWFuOiBjbGVhbgot CXJtIC1mIHBnX2NvbmZpZy5oIHBnX2NvbmZpZ19leHQuaCBwZ19jb25maWdfb3MuaCBzdGFtcC1o IHN0YW1wLWV4dC1oCisJcm0gLWYgcGdfY29uZmlnLmggcGdfY29uZmlnX29zLmggc3RhbXAtaCBz dGFtcC1leHQtaApkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvYy5oIGIvc3JjL2luY2x1ZGUvYy5o CmluZGV4IGRjMTg0MTM0NmMuLmZkODc2YzMyYWYgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2Mu aAorKysgYi9zcmMvaW5jbHVkZS9jLmgKQEAgLTQ4LDE0ICs0OCwxMiBAQAogCiAjaW5jbHVkZSAi cG9zdGdyZXNfZXh0LmgiCiAKLS8qIE11c3QgdW5kZWYgcGdfY29uZmlnX2V4dC5oIHN5bWJvbHMg YmVmb3JlIGluY2x1ZGluZyBwZ19jb25maWcuaCAqLwotI3VuZGVmIFBHX0lOVDY0X1RZUEUKLQog I2luY2x1ZGUgInBnX2NvbmZpZy5oIgogI2luY2x1ZGUgInBnX2NvbmZpZ19tYW51YWwuaCIJLyog bXVzdCBiZSBhZnRlciBwZ19jb25maWcuaCAqLwogI2luY2x1ZGUgInBnX2NvbmZpZ19vcy5oIgkJ LyogbXVzdCBiZSBiZWZvcmUgYW55IHN5c3RlbSBoZWFkZXIgZmlsZXMgKi8KIAogLyogU3lzdGVt IGhlYWRlciBmaWxlcyB0aGF0IHNob3VsZCBiZSBhdmFpbGFibGUgZXZlcnl3aGVyZSBpbiBQb3N0 Z3JlcyAqLworI2luY2x1ZGUgPGludHR5cGVzLmg+CiAjaW5jbHVkZSA8c3RkaW8uaD4KICNpbmNs dWRlIDxzdGRsaWIuaD4KICNpbmNsdWRlIDxzdHJpbmcuaD4KQEAgLTQ4OSwxMCArNDg3LDEzIEBA IHR5cGVkZWYgY2hhciAqUG9pbnRlcjsKICAqCQlmcm9udGVuZC9iYWNrZW5kIHByb3RvY29sLgog ICovCiAjaWZuZGVmIEhBVkVfSU5UOAotdHlwZWRlZiBzaWduZWQgY2hhciBpbnQ4OwkJLyogPT0g OCBiaXRzICovCi10eXBlZGVmIHNpZ25lZCBzaG9ydCBpbnQxNjsJCS8qID09IDE2IGJpdHMgKi8K LXR5cGVkZWYgc2lnbmVkIGludCBpbnQzMjsJCS8qID09IDMyIGJpdHMgKi8KK3R5cGVkZWYgaW50 OF90IGludDg7CQkJLyogPT0gOCBiaXRzICovCit0eXBlZGVmIGludDE2X3QgaW50MTY7CQkJLyog PT0gMTYgYml0cyAqLwordHlwZWRlZiBpbnQzMl90IGludDMyOwkJCS8qID09IDMyIGJpdHMgKi8K ICNlbmRpZgkJCQkJCQkvKiBub3QgSEFWRV9JTlQ4ICovCisjaWZuZGVmIEhBVkVfSU5UNjQKK3R5 cGVkZWYgaW50NjRfdCBpbnQ2NDsJCQkvKiA9PSA2NCBiaXRzICovCisjZW5kaWYJCQkJCQkJLyog bm90IEhBVkVfSU5UNjQgKi8KIAogLyoKICAqIHVpbnROCkBAIC01MDEsMTAgKzUwMiwxMyBAQCB0 eXBlZGVmIHNpZ25lZCBpbnQgaW50MzI7CQkvKiA9PSAzMiBiaXRzICovCiAgKgkJZnJvbnRlbmQv YmFja2VuZCBwcm90b2NvbC4KICAqLwogI2lmbmRlZiBIQVZFX1VJTlQ4Ci10eXBlZGVmIHVuc2ln bmVkIGNoYXIgdWludDg7CS8qID09IDggYml0cyAqLwotdHlwZWRlZiB1bnNpZ25lZCBzaG9ydCB1 aW50MTY7CS8qID09IDE2IGJpdHMgKi8KLXR5cGVkZWYgdW5zaWduZWQgaW50IHVpbnQzMjsJLyog PT0gMzIgYml0cyAqLwordHlwZWRlZiB1aW50OF90IHVpbnQ4OwkJCS8qID09IDggYml0cyAqLwor dHlwZWRlZiB1aW50MTZfdCB1aW50MTY7CQkvKiA9PSAxNiBiaXRzICovCit0eXBlZGVmIHVpbnQz Ml90IHVpbnQzMjsJCS8qID09IDMyIGJpdHMgKi8KICNlbmRpZgkJCQkJCQkvKiBub3QgSEFWRV9V SU5UOCAqLworI2lmbmRlZiBIQVZFX1VJTlQ2NAordHlwZWRlZiB1aW50NjRfdCB1aW50NjQ7CQkv KiA9PSA2NCBiaXRzICovCisjZW5kaWYJCQkJCQkJLyogbm90IEhBVkVfVUlOVDY0ICovCiAKIC8q CiAgKiBiaXRzTgpAQCAtNTE3LDM2ICs1MjEsMTIgQEAgdHlwZWRlZiB1aW50MzIgYml0czMyOwkJ CS8qID49IDMyIGJpdHMgKi8KIC8qCiAgKiA2NC1iaXQgaW50ZWdlcnMKICAqLwotI2lmZGVmIEhB VkVfTE9OR19JTlRfNjQKLS8qIFBsYWluICJsb25nIGludCIgZml0cywgdXNlIGl0ICovCi0KLSNp Zm5kZWYgSEFWRV9JTlQ2NAotdHlwZWRlZiBsb25nIGludCBpbnQ2NDsKLSNlbmRpZgotI2lmbmRl ZiBIQVZFX1VJTlQ2NAotdHlwZWRlZiB1bnNpZ25lZCBsb25nIGludCB1aW50NjQ7Ci0jZW5kaWYK LSNkZWZpbmUgSU5UNjRDT05TVCh4KSAgKHgjI0wpCi0jZGVmaW5lIFVJTlQ2NENPTlNUKHgpICh4 IyNVTCkKLSNlbGlmIGRlZmluZWQoSEFWRV9MT05HX0xPTkdfSU5UXzY0KQotLyogV2UgaGF2ZSB3 b3JraW5nIHN1cHBvcnQgZm9yICJsb25nIGxvbmcgaW50IiwgdXNlIHRoYXQgKi8KLQotI2lmbmRl ZiBIQVZFX0lOVDY0Ci10eXBlZGVmIGxvbmcgbG9uZyBpbnQgaW50NjQ7Ci0jZW5kaWYKLSNpZm5k ZWYgSEFWRV9VSU5UNjQKLXR5cGVkZWYgdW5zaWduZWQgbG9uZyBsb25nIGludCB1aW50NjQ7Ci0j ZW5kaWYKLSNkZWZpbmUgSU5UNjRDT05TVCh4KSAgKHgjI0xMKQotI2RlZmluZSBVSU5UNjRDT05T VCh4KSAoeCMjVUxMKQotI2Vsc2UKLS8qIG5laXRoZXIgSEFWRV9MT05HX0lOVF82NCBub3IgSEFW RV9MT05HX0xPTkdfSU5UXzY0ICovCi0jZXJyb3IgbXVzdCBoYXZlIGEgd29ya2luZyA2NC1iaXQg aW50ZWdlciBkYXRhdHlwZQotI2VuZGlmCisjZGVmaW5lIElOVDY0Q09OU1QoeCkgIElOVDY0X0Mo eCkKKyNkZWZpbmUgVUlOVDY0Q09OU1QoeCkgVUlOVDY0X0MoeCkKIAogLyogc25wcmludGYgZm9y bWF0IHN0cmluZ3MgdG8gdXNlIGZvciA2NC1iaXQgaW50ZWdlcnMgKi8KLSNkZWZpbmUgSU5UNjRf Rk9STUFUICIlIiBJTlQ2NF9NT0RJRklFUiAiZCIKLSNkZWZpbmUgVUlOVDY0X0ZPUk1BVCAiJSIg SU5UNjRfTU9ESUZJRVIgInUiCisjZGVmaW5lIElOVDY0X0ZPUk1BVCAiJSIgUFJJZDY0CisjZGVm aW5lIFVJTlQ2NF9GT1JNQVQgIiUiIFBSSXU2NAogCiAvKgogICogMTI4LWJpdCBzaWduZWQgYW5k IHVuc2lnbmVkIGludGVnZXJzCkBAIC01NzUsMjIgKzU1NSwxOSBAQCB0eXBlZGVmIHVuc2lnbmVk IFBHX0lOVDEyOF9UWVBFIHVpbnQxMjgKICNlbmRpZgogI2VuZGlmCiAKLS8qCi0gKiBzdGRpbnQu aCBsaW1pdHMgYXJlbid0IGd1YXJhbnRlZWQgdG8gaGF2ZSBjb21wYXRpYmxlIHR5cGVzIHdpdGgg b3VyIGZpeGVkCi0gKiB3aWR0aCB0eXBlcy4gU28ganVzdCBkZWZpbmUgb3VyIG93bi4KLSAqLwot I2RlZmluZSBQR19JTlQ4X01JTgkJKC0weDdGLTEpCi0jZGVmaW5lIFBHX0lOVDhfTUFYCQkoMHg3 RikKLSNkZWZpbmUgUEdfVUlOVDhfTUFYCSgweEZGKQotI2RlZmluZSBQR19JTlQxNl9NSU4JKC0w eDdGRkYtMSkKLSNkZWZpbmUgUEdfSU5UMTZfTUFYCSgweDdGRkYpCi0jZGVmaW5lIFBHX1VJTlQx Nl9NQVgJKDB4RkZGRikKLSNkZWZpbmUgUEdfSU5UMzJfTUlOCSgtMHg3RkZGRkZGRi0xKQotI2Rl ZmluZSBQR19JTlQzMl9NQVgJKDB4N0ZGRkZGRkYpCi0jZGVmaW5lIFBHX1VJTlQzMl9NQVgJKDB4 RkZGRkZGRkZVKQotI2RlZmluZSBQR19JTlQ2NF9NSU4JKC1JTlQ2NENPTlNUKDB4N0ZGRkZGRkZG RkZGRkZGRikgLSAxKQotI2RlZmluZSBQR19JTlQ2NF9NQVgJSU5UNjRDT05TVCgweDdGRkZGRkZG RkZGRkZGRkYpCi0jZGVmaW5lIFBHX1VJTlQ2NF9NQVgJVUlOVDY0Q09OU1QoMHhGRkZGRkZGRkZG RkZGRkZGKQorLyogSGlzdG9yaWNhbCBuYW1lcyBmb3IgbGltaXRzIGluIHN0ZGludC5oLiAqLwor I2RlZmluZSBQR19JTlQ4X01JTgkJSU5UOF9NSU4KKyNkZWZpbmUgUEdfSU5UOF9NQVgJCUlOVDhf TUFYCisjZGVmaW5lIFBHX1VJTlQ4X01BWAlVSU5UOF9NQVgKKyNkZWZpbmUgUEdfSU5UMTZfTUlO CUlOVDE2X01JTgorI2RlZmluZSBQR19JTlQxNl9NQVgJSU5UMTZfTUFYCisjZGVmaW5lIFBHX1VJ TlQxNl9NQVgJVUlOVDE2X01BWAorI2RlZmluZSBQR19JTlQzMl9NSU4JSU5UMzJfTUlOCisjZGVm aW5lIFBHX0lOVDMyX01BWAlJTlQzMl9NQVgKKyNkZWZpbmUgUEdfVUlOVDMyX01BWAlVSU5UMzJf TUFYCisjZGVmaW5lIFBHX0lOVDY0X01JTglJTlQ2NF9NSU4KKyNkZWZpbmUgUEdfSU5UNjRfTUFY CUlOVDY0X01BWAorI2RlZmluZSBQR19VSU5UNjRfTUFYCVVJTlQ2NF9NQVgKIAogLyoKICAqIFdl IG5vdyBhbHdheXMgdXNlIGludDY0IHRpbWVzdGFtcHMsIGJ1dCBrZWVwIHRoaXMgc3ltYm9sIGRl ZmluZWQgZm9yIHRoZQpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvbWVzb24uYnVpbGQgYi9zcmMv aW5jbHVkZS9tZXNvbi5idWlsZAppbmRleCBhMjhmMTE1ZDg2Li42YjkxMTYzNDFmIDEwMDY0NAot LS0gYS9zcmMvaW5jbHVkZS9tZXNvbi5idWlsZAorKysgYi9zcmMvaW5jbHVkZS9tZXNvbi5idWls ZApAQCAtMSwxNCArMSw1IEBACiAjIENvcHlyaWdodCAoYykgMjAyMi0yMDI0LCBQb3N0Z3JlU1FM IEdsb2JhbCBEZXZlbG9wbWVudCBHcm91cAogCi1wZ19jb25maWdfZXh0ID0gY29uZmlndXJlX2Zp bGUoCi0gIGlucHV0OiAncGdfY29uZmlnX2V4dC5oLm1lc29uJywKLSAgb3V0cHV0OiAncGdfY29u ZmlnX2V4dC5oJywKLSAgY29uZmlndXJhdGlvbjogY2RhdGEsCi0gIGluc3RhbGw6IHRydWUsCi0g IGluc3RhbGxfZGlyOiBkaXJfaW5jbHVkZSwKLSkKLWNvbmZpZ3VyZV9maWxlcyArPSBwZ19jb25m aWdfZXh0Ci0KIHBnX2NvbmZpZ19vcyA9IGNvbmZpZ3VyZV9maWxlKAogICBvdXRwdXQ6ICdwZ19j b25maWdfb3MuaCcsCiAgIGlucHV0OiBmaWxlcygncG9ydC9AMEAuaCcuZm9ybWF0KHBvcnRuYW1l KSksCkBAIC0xMTYsNyArMTA3LDYgQEAgaW5zdGFsbF9oZWFkZXJzKAogICAncG9zdGdyZXNfZmUu aCcsCiAgICd2YXJhdHQuaCcsCiAgICd3aW5kb3dhcGkuaCcsCi0gIHBnX2NvbmZpZ19leHQsCiAg IHBnX2NvbmZpZ19vcywKICAgcGdfY29uZmlnLAogICBpbnN0YWxsX2RpcjogZGlyX2luY2x1ZGVf c2VydmVyLApkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvcGdfY29uZmlnLmguaW4gYi9zcmMvaW5j bHVkZS9wZ19jb25maWcuaC5pbgppbmRleCBmOGQzZTNiNmI4Li4yNzkxZWM1ZmFiIDEwMDY0NAot LS0gYS9zcmMvaW5jbHVkZS9wZ19jb25maWcuaC5pbgorKysgYi9zcmMvaW5jbHVkZS9wZ19jb25m aWcuaC5pbgpAQCAtOSwxMiArOSwxMiBAQAogLyogVGhlIG5vcm1hbCBhbGlnbm1lbnQgb2YgYGlu dCcsIGluIGJ5dGVzLiAqLwogI3VuZGVmIEFMSUdOT0ZfSU5UCiAKKy8qIFRoZSBub3JtYWwgYWxp Z25tZW50IG9mIGBpbnQ2NF90JywgaW4gYnl0ZXMuICovCisjdW5kZWYgQUxJR05PRl9JTlQ2NF9U CisKIC8qIFRoZSBub3JtYWwgYWxpZ25tZW50IG9mIGBsb25nJywgaW4gYnl0ZXMuICovCiAjdW5k ZWYgQUxJR05PRl9MT05HCiAKLS8qIFRoZSBub3JtYWwgYWxpZ25tZW50IG9mIGBsb25nIGxvbmcg aW50JywgaW4gYnl0ZXMuICovCi0jdW5kZWYgQUxJR05PRl9MT05HX0xPTkdfSU5UCi0KIC8qIFRo ZSBub3JtYWwgYWxpZ25tZW50IG9mIGBQR19JTlQxMjhfVFlQRScsIGluIGJ5dGVzLiAqLwogI3Vu ZGVmIEFMSUdOT0ZfUEdfSU5UMTI4X1RZUEUKIApAQCAtMjgyLDEyICsyODIsNiBAQAogLyogRGVm aW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGB6c3RkJyBsaWJyYXJ5ICgtbHpzdGQpLiAqLwogI3Vu ZGVmIEhBVkVfTElCWlNURAogCi0vKiBEZWZpbmUgdG8gMSBpZiBgbG9uZyBpbnQnIHdvcmtzIGFu ZCBpcyA2NCBiaXRzLiAqLwotI3VuZGVmIEhBVkVfTE9OR19JTlRfNjQKLQotLyogRGVmaW5lIHRv IDEgaWYgYGxvbmcgbG9uZyBpbnQnIHdvcmtzIGFuZCBpcyA2NCBiaXRzLiAqLwotI3VuZGVmIEhB VkVfTE9OR19MT05HX0lOVF82NAotCiAvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPG1i YXJyaWVyLmg+IGhlYWRlciBmaWxlLiAqLwogI3VuZGVmIEhBVkVfTUJBUlJJRVJfSAogCkBAIC01 NzAsOSArNTY0LDYgQEAKIC8qIERlZmluZSB0byAxIGlmIHlvdXIgY29tcGlsZXIgdW5kZXJzdGFu ZHMgX1N0YXRpY19hc3NlcnQuICovCiAjdW5kZWYgSEFWRV9fU1RBVElDX0FTU0VSVAogCi0vKiBE ZWZpbmUgdG8gdGhlIGFwcHJvcHJpYXRlIHByaW50ZiBsZW5ndGggbW9kaWZpZXIgZm9yIDY0LWJp dCBpbnRzLiAqLwotI3VuZGVmIElOVDY0X01PRElGSUVSCi0KIC8qIERlZmluZSB0byAxIGlmIGBs b2NhbGVfdCcgcmVxdWlyZXMgPHhsb2NhbGUuaD4uICovCiAjdW5kZWYgTE9DQUxFX1RfSU5fWExP Q0FMRQogCkBAIC02MDcsOSArNTk4LDYgQEAKIC8qIERlZmluZSB0byB0aGUgbmFtZSBvZiBhIHNp Z25lZCAxMjgtYml0IGludGVnZXIgdHlwZS4gKi8KICN1bmRlZiBQR19JTlQxMjhfVFlQRQogCi0v KiBEZWZpbmUgdG8gdGhlIG5hbWUgb2YgYSBzaWduZWQgNjQtYml0IGludGVnZXIgdHlwZS4gKi8K LSN1bmRlZiBQR19JTlQ2NF9UWVBFCi0KIC8qIERlZmluZSB0byB0aGUgbmFtZSBvZiB0aGUgZGVm YXVsdCBQb3N0Z3JlU1FMIHNlcnZpY2UgcHJpbmNpcGFsIGluIEtlcmJlcm9zCiAgICAoR1NTQVBJ KS4gKC0td2l0aC1rcmItc3J2bmFtPU5BTUUpICovCiAjdW5kZWYgUEdfS1JCX1NSVk5BTQpkaWZm IC0tZ2l0IGEvc3JjL2luY2x1ZGUvcGdfY29uZmlnX2V4dC5oLmluIGIvc3JjL2luY2x1ZGUvcGdf Y29uZmlnX2V4dC5oLmluCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4YWNhZGJkYWZk Li4wMDAwMDAwMDAwCi0tLSBhL3NyYy9pbmNsdWRlL3BnX2NvbmZpZ19leHQuaC5pbgorKysgL2Rl di9udWxsCkBAIC0xLDcgKzAsMCBAQAotLyoKLSAqIHNyYy9pbmNsdWRlL3BnX2NvbmZpZ19leHQu aC5pbi4gIFRoaXMgaXMgZ2VuZXJhdGVkIG1hbnVhbGx5LCBub3QgYnkKLSAqIGF1dG9oZWFkZXIs IHNpbmNlIHdlIHdhbnQgdG8gbGltaXQgd2hpY2ggc3ltYm9scyBnZXQgZGVmaW5lZCBoZXJlLgot ICovCi0KLS8qIERlZmluZSB0byB0aGUgbmFtZSBvZiBhIHNpZ25lZCA2NC1iaXQgaW50ZWdlciB0 eXBlLiAqLwotI3VuZGVmIFBHX0lOVDY0X1RZUEUKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3Bn X2NvbmZpZ19leHQuaC5tZXNvbiBiL3NyYy9pbmNsdWRlL3BnX2NvbmZpZ19leHQuaC5tZXNvbgpk ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNTdjZGZjYTBjZi4uMDAwMDAwMDAwMAotLS0g YS9zcmMvaW5jbHVkZS9wZ19jb25maWdfZXh0LmgubWVzb24KKysrIC9kZXYvbnVsbApAQCAtMSw3 ICswLDAgQEAKLS8qCi0gKiBzcmMvaW5jbHVkZS9wZ19jb25maWdfZXh0LmguaW4uICBUaGlzIGlz IGdlbmVyYXRlZCBtYW51YWxseSwgbm90IGJ5Ci0gKiBhdXRvaGVhZGVyLCBzaW5jZSB3ZSB3YW50 IHRvIGxpbWl0IHdoaWNoIHN5bWJvbHMgZ2V0IGRlZmluZWQgaGVyZS4KLSAqLwotCi0vKiBEZWZp bmUgdG8gdGhlIG5hbWUgb2YgYSBzaWduZWQgNjQtYml0IGludGVnZXIgdHlwZS4gKi8KLSNtZXNv bmRlZmluZSBQR19JTlQ2NF9UWVBFCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9wb3J0L3BnX2Jp dHV0aWxzLmggYi9zcmMvaW5jbHVkZS9wb3J0L3BnX2JpdHV0aWxzLmgKaW5kZXggNGQ4ODQ3OGM5 Yy4uMWMwOWJmMGZmMiAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvcG9ydC9wZ19iaXR1dGlscy5o CisrKyBiL3NyYy9pbmNsdWRlL3BvcnQvcGdfYml0dXRpbHMuaApAQCAtNzQsMTMgKzc0LDEyIEBA IHBnX2xlZnRtb3N0X29uZV9wb3M2NCh1aW50NjQgd29yZCkKICNpZmRlZiBIQVZFX19CVUlMVElO X0NMWgogCUFzc2VydCh3b3JkICE9IDApOwogCi0jaWYgZGVmaW5lZChIQVZFX0xPTkdfSU5UXzY0 KQorI2lmIFNJWkVPRl9MT05HID09IDgKIAlyZXR1cm4gNjMgLSBfX2J1aWx0aW5fY2x6bCh3b3Jk KTsKLSNlbGlmIGRlZmluZWQoSEFWRV9MT05HX0xPTkdfSU5UXzY0KQotCXJldHVybiA2MyAtIF9f YnVpbHRpbl9jbHpsbCh3b3JkKTsKICNlbHNlCi0jZXJyb3IgbXVzdCBoYXZlIGEgd29ya2luZyA2 NC1iaXQgaW50ZWdlciBkYXRhdHlwZQotI2VuZGlmCQkJCQkJCS8qIEhBVkVfTE9OR19JTlRfNjQg Ki8KKwlTdGF0aWNBc3NlcnRTdG10KHNpemVvZih3b3JkKSA9PSBzaXplb2YobG9uZyBsb25nKSwg InVuZXhwZWN0ZWQgc2l6ZSIpOworCXJldHVybiA2MyAtIF9fYnVpbHRpbl9jbHpsbCh3b3JkKTsK KyNlbmRpZgogCiAjZWxpZiBkZWZpbmVkKF9NU0NfVkVSKSAmJiAoZGVmaW5lZChfTV9BTUQ2NCkg fHwgZGVmaW5lZChfTV9BUk02NCkpCiAJdW5zaWduZWQgbG9uZyByZXN1bHQ7CkBAIC0xNDcsMTMg KzE0NiwxMiBAQCBwZ19yaWdodG1vc3Rfb25lX3BvczY0KHVpbnQ2NCB3b3JkKQogI2lmZGVmIEhB VkVfX0JVSUxUSU5fQ1RaCiAJQXNzZXJ0KHdvcmQgIT0gMCk7CiAKLSNpZiBkZWZpbmVkKEhBVkVf TE9OR19JTlRfNjQpCisjaWYgU0laRU9GX0xPTkcgPT0gOAogCXJldHVybiBfX2J1aWx0aW5fY3R6 bCh3b3JkKTsKLSNlbGlmIGRlZmluZWQoSEFWRV9MT05HX0xPTkdfSU5UXzY0KQotCXJldHVybiBf X2J1aWx0aW5fY3R6bGwod29yZCk7CiAjZWxzZQotI2Vycm9yIG11c3QgaGF2ZSBhIHdvcmtpbmcg NjQtYml0IGludGVnZXIgZGF0YXR5cGUKLSNlbmRpZgkJCQkJCQkvKiBIQVZFX0xPTkdfSU5UXzY0 ICovCisJU3RhdGljQXNzZXJ0U3RtdChzaXplb2Yod29yZCkgPT0gc2l6ZW9mKGxvbmcgbG9uZyks ICJ1bmV4cGVjdGVkIHNpemUiKTsKKwlyZXR1cm4gX19idWlsdGluX2N0emxsKHdvcmQpOworI2Vu ZGlmCiAKICNlbGlmIGRlZmluZWQoX01TQ19WRVIpICYmIChkZWZpbmVkKF9NX0FNRDY0KSB8fCBk ZWZpbmVkKF9NX0FSTTY0KSkKIAl1bnNpZ25lZCBsb25nIHJlc3VsdDsKZGlmZiAtLWdpdCBhL3Ny Yy9pbmNsdWRlL3Bvc3RncmVzX2V4dC5oIGIvc3JjL2luY2x1ZGUvcG9zdGdyZXNfZXh0LmgKaW5k ZXggMjQwYWQ0ZTkzYi4uMDM0MDU2ZTdkOSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvcG9zdGdy ZXNfZXh0LmgKKysrIGIvc3JjL2luY2x1ZGUvcG9zdGdyZXNfZXh0LmgKQEAgLTIzLDcgKzIzLDcg QEAKICNpZm5kZWYgUE9TVEdSRVNfRVhUX0gKICNkZWZpbmUgUE9TVEdSRVNfRVhUX0gKIAotI2lu Y2x1ZGUgInBnX2NvbmZpZ19leHQuaCIKKyNpbmNsdWRlIDxzdGRpbnQuaD4KIAogLyoKICAqIE9i amVjdCBJRCBpcyBhIGZ1bmRhbWVudGFsIHR5cGUgaW4gUG9zdGdyZXMuCkBAIC0zNiwxNSArMzYs MTQgQEAgdHlwZWRlZiB1bnNpZ25lZCBpbnQgT2lkOwogI2RlZmluZSBJbnZhbGlkT2lkCQkoKE9p ZCkgMCkKICNlbmRpZgogCi0jZGVmaW5lIE9JRF9NQVggIFVJTlRfTUFYCi0vKiB5b3Ugd2lsbCBu ZWVkIHRvIGluY2x1ZGUgPGxpbWl0cy5oPiB0byB1c2UgdGhlIGFib3ZlICNkZWZpbmUgKi8KKyNk ZWZpbmUgT0lEX01BWCAgVUlOVDMyX01BWAogCiAjZGVmaW5lIGF0b29pZCh4KSAoKE9pZCkgc3Ry dG91bCgoeCksIE5VTEwsIDEwKSkKIC8qIHRoZSBhYm92ZSBuZWVkcyA8c3RkbGliLmg+ICovCiAK IAogLyogRGVmaW5lIGEgc2lnbmVkIDY0LWJpdCBpbnRlZ2VyIHR5cGUgZm9yIHVzZSBpbiBjbGll bnQgQVBJIGRlY2xhcmF0aW9ucy4gKi8KLXR5cGVkZWYgUEdfSU5UNjRfVFlQRSBwZ19pbnQ2NDsK K3R5cGVkZWYgaW50NjRfdCBwZ19pbnQ2NDsKIAogLyoKICAqIElkZW50aWZpZXJzIG9mIGVycm9y IG1lc3NhZ2UgZmllbGRzLiAgS2VwdCBoZXJlIHRvIGtlZXAgY29tbW9uCmRpZmYgLS1naXQgYS9z cmMvaW5jbHVkZS91dGlscy9kc2EuaCBiL3NyYy9pbmNsdWRlL3V0aWxzL2RzYS5oCmluZGV4IDhk ZmY5NjRiZjMuLjZjOTUyYTQzZjcgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL3V0aWxzL2RzYS5o CisrKyBiL3NyYy9pbmNsdWRlL3V0aWxzL2RzYS5oCkBAIC02Niw3ICs2Niw3IEBAIHR5cGVkZWYg cGdfYXRvbWljX3VpbnQ2NCBkc2FfcG9pbnRlcl9hdG9taWM7CiAjZGVmaW5lIGRzYV9wb2ludGVy X2F0b21pY193cml0ZSBwZ19hdG9taWNfd3JpdGVfdTY0CiAjZGVmaW5lIGRzYV9wb2ludGVyX2F0 b21pY19mZXRjaF9hZGQgcGdfYXRvbWljX2ZldGNoX2FkZF91NjQKICNkZWZpbmUgZHNhX3BvaW50 ZXJfYXRvbWljX2NvbXBhcmVfZXhjaGFuZ2UgcGdfYXRvbWljX2NvbXBhcmVfZXhjaGFuZ2VfdTY0 Ci0jZGVmaW5lIERTQV9QT0lOVEVSX0ZPUk1BVCAiJTAxNiIgSU5UNjRfTU9ESUZJRVIgIngiCisj ZGVmaW5lIERTQV9QT0lOVEVSX0ZPUk1BVCAiJTAxNiIgUFJJeDY0CiAjZW5kaWYKIAogLyogRmxh Z3MgZm9yIGRzYV9hbGxvY2F0ZV9leHRlbmRlZC4gKi8KZGlmZiAtLWdpdCBhL3NyYy9pbnRlcmZh Y2VzL2VjcGcvZWNwZ2xpYi90eXBlbmFtZS5jIGIvc3JjL2ludGVyZmFjZXMvZWNwZy9lY3BnbGli L3R5cGVuYW1lLmMKaW5kZXggMWQ0ODJjNGZhNi4uMWFiMmNkYTg0OCAxMDA2NDQKLS0tIGEvc3Jj L2ludGVyZmFjZXMvZWNwZy9lY3BnbGliL3R5cGVuYW1lLmMKKysrIGIvc3JjL2ludGVyZmFjZXMv ZWNwZy9lY3BnbGliL3R5cGVuYW1lLmMKQEAgLTEzMSwxMCArMTMxLDkgQEAgc3FsZGFfZHluYW1p Y190eXBlKE9pZCB0eXBlLCBlbnVtIENPTVBBVF9NT0RFIGNvbXBhdCkKIAkJY2FzZSBJTlRFUlZB TE9JRDoKIAkJCXJldHVybiBFQ1BHdF9pbnRlcnZhbDsKIAkJY2FzZSBJTlQ4T0lEOgotI2lmZGVm IEhBVkVfTE9OR19MT05HX0lOVF82NAorI2lmIFNJWkVPRl9MT05HIDwgOAogCQkJcmV0dXJuIEVD UEd0X2xvbmdfbG9uZzsKLSNlbmRpZgotI2lmZGVmIEhBVkVfTE9OR19JTlRfNjQKKyNlbHNlCiAJ CQlyZXR1cm4gRUNQR3RfbG9uZzsKICNlbmRpZgogCQkJLyogVW5oYW5kbGVkIHR5cGVzIGFsd2F5 cyByZXR1cm4gYSBzdHJpbmcgKi8KZGlmZiAtLWdpdCBhL3NyYy9pbnRlcmZhY2VzL2VjcGcvaW5j bHVkZS9lY3BnX2NvbmZpZy5oLmluIGIvc3JjL2ludGVyZmFjZXMvZWNwZy9pbmNsdWRlL2VjcGdf Y29uZmlnLmguaW4KaW5kZXggNWQwZjQ0OGE4Ni4uNDhiY2UwODc4YSAxMDA2NDQKLS0tIGEvc3Jj L2ludGVyZmFjZXMvZWNwZy9pbmNsdWRlL2VjcGdfY29uZmlnLmguaW4KKysrIGIvc3JjL2ludGVy ZmFjZXMvZWNwZy9pbmNsdWRlL2VjcGdfY29uZmlnLmguaW4KQEAgLTEsMTcgKzEsNSBAQAogLyog RGVmaW5lIHRvIDEgdG8gYnVpbGQgY2xpZW50IGxpYnJhcmllcyBhcyB0aHJlYWQtc2FmZSBjb2Rl LiAqLwogI2RlZmluZSBFTkFCTEVfVEhSRUFEX1NBRkVUWSAxCiAKLS8qIERlZmluZSB0byAxIGlm IHRoZSBzeXN0ZW0gaGFzIHRoZSB0eXBlIGBpbnQ2NCcuICovCi0jdW5kZWYgSEFWRV9JTlQ2NAot Ci0vKiBEZWZpbmUgdG8gMSBpZiBgbG9uZyBpbnQnIHdvcmtzIGFuZCBpcyA2NCBiaXRzLiAqLwot I3VuZGVmIEhBVkVfTE9OR19JTlRfNjQKLQotLyogRGVmaW5lIHRvIDEgaWYgdGhlIHN5c3RlbSBo YXMgdGhlIHR5cGUgYGxvbmcgbG9uZyBpbnQnLiAqLwotI2RlZmluZSBIQVZFX0xPTkdfTE9OR19J TlQgMQotCi0vKiBEZWZpbmUgdG8gMSBpZiBgbG9uZyBsb25nIGludCcgd29ya3MgYW5kIGlzIDY0 IGJpdHMuICovCi0jdW5kZWYgSEFWRV9MT05HX0xPTkdfSU5UXzY0Ci0KIC8qIERlZmluZSB0byAx IHRvIHVzZSA8c3RkYm9vbC5oPiB0byBkZWZpbmUgdHlwZSBib29sLiAqLwogI3VuZGVmIFBHX1VT RV9TVERCT09MCmRpZmYgLS1naXQgYS9zcmMvaW50ZXJmYWNlcy9lY3BnL2luY2x1ZGUvbWVzb24u YnVpbGQgYi9zcmMvaW50ZXJmYWNlcy9lY3BnL2luY2x1ZGUvbWVzb24uYnVpbGQKaW5kZXggMzE2 MTBmZWY1OC4uZDAyMzQ0MTNmYyAxMDA2NDQKLS0tIGEvc3JjL2ludGVyZmFjZXMvZWNwZy9pbmNs dWRlL21lc29uLmJ1aWxkCisrKyBiL3NyYy9pbnRlcmZhY2VzL2VjcGcvaW5jbHVkZS9tZXNvbi5i dWlsZApAQCAtMyw5ICszLDYgQEAKIGVjcGdfaW5jID0gaW5jbHVkZV9kaXJlY3RvcmllcygnLicp CiAKIGVjcGdfY29uZl9rZXlzID0gWwotICAnSEFWRV9JTlQ2NCcsCi0gICdIQVZFX0xPTkdfSU5U XzY0JywKLSAgJ0hBVkVfTE9OR19MT05HX0lOVF82NCcsCiAgICdQR19VU0VfU1REQk9PTCcsCiBd CiAKZGlmZiAtLWdpdCBhL3NyYy9pbnRlcmZhY2VzL2VjcGcvaW5jbHVkZS9wZ3R5cGVzX2ludGVy dmFsLmggYi9zcmMvaW50ZXJmYWNlcy9lY3BnL2luY2x1ZGUvcGd0eXBlc19pbnRlcnZhbC5oCmlu ZGV4IDI4MDliMzU2ZjcuLmQxNmY3NDk3MGMgMTAwNjQ0Ci0tLSBhL3NyYy9pbnRlcmZhY2VzL2Vj cGcvaW5jbHVkZS9wZ3R5cGVzX2ludGVydmFsLmgKKysrIGIvc3JjL2ludGVyZmFjZXMvZWNwZy9p bmNsdWRlL3BndHlwZXNfaW50ZXJ2YWwuaApAQCAtOCwxOCArOCw3IEBACiAKICNpZm5kZWYgQ19I CiAKLSNpZmRlZiBIQVZFX0xPTkdfSU5UXzY0Ci0jaWZuZGVmIEhBVkVfSU5UNjQKLXR5cGVkZWYg bG9uZyBpbnQgaW50NjQ7Ci0jZW5kaWYKLSNlbGlmIGRlZmluZWQoSEFWRV9MT05HX0xPTkdfSU5U XzY0KQotI2lmbmRlZiBIQVZFX0lOVDY0Ci10eXBlZGVmIGxvbmcgbG9uZyBpbnQgaW50NjQ7Ci0j ZW5kaWYKLSNlbHNlCi0vKiBuZWl0aGVyIEhBVkVfTE9OR19JTlRfNjQgbm9yIEhBVkVfTE9OR19M T05HX0lOVF82NCAqLwotI2Vycm9yIG11c3QgaGF2ZSBhIHdvcmtpbmcgNjQtYml0IGludGVnZXIg ZGF0YXR5cGUKLSNlbmRpZgordHlwZWRlZiBpbnQ2NF90IGludDY0OwogCiAjZGVmaW5lIEhBVkVf SU5UNjRfVElNRVNUQU1QCiAjZW5kaWYJCQkJCQkJLyogQ19IICovCmRpZmYgLS1naXQgYS9zcmMv aW50ZXJmYWNlcy9lY3BnL2luY2x1ZGUvc3FsdHlwZXMuaCBiL3NyYy9pbnRlcmZhY2VzL2VjcGcv aW5jbHVkZS9zcWx0eXBlcy5oCmluZGV4IGU3Y2JmYTQ3OTUuLmFlZDA1NWViNGEgMTAwNjQ0Ci0t LSBhL3NyYy9pbnRlcmZhY2VzL2VjcGcvaW5jbHVkZS9zcWx0eXBlcy5oCisrKyBiL3NyYy9pbnRl cmZhY2VzL2VjcGcvaW5jbHVkZS9zcWx0eXBlcy5oCkBAIC00Niw3ICs0Niw3IEBACiAjZGVmaW5l IFNRTElOVEVSVkFMCQlFQ1BHdF9pbnRlcnZhbAogI2RlZmluZSBTUUxOQ0hBUglFQ1BHdF9jaGFy CiAjZGVmaW5lIFNRTE5WQ0hBUglFQ1BHdF9jaGFyCi0jaWZkZWYgSEFWRV9MT05HX0xPTkdfSU5U XzY0CisjaWYgU0laRU9GX0xPTkcgPCA4CiAjZGVmaW5lIFNRTElOVDgJCUVDUEd0X2xvbmdfbG9u ZwogI2RlZmluZSBTUUxTRVJJQUw4CUVDUEd0X2xvbmdfbG9uZwogI2Vsc2UKZGlmZiAtLWdpdCBh L3NyYy9pbnRlcmZhY2VzL2VjcGcvdGVzdC9leHBlY3RlZC9jb21wYXRfaW5mb3JtaXgtc3FsZGEu YyBiL3NyYy9pbnRlcmZhY2VzL2VjcGcvdGVzdC9leHBlY3RlZC9jb21wYXRfaW5mb3JtaXgtc3Fs ZGEuYwppbmRleCA3ZTE5MzE5ZDI3Li4wMmVjN2I2NjhkIDEwMDY0NAotLS0gYS9zcmMvaW50ZXJm YWNlcy9lY3BnL3Rlc3QvZXhwZWN0ZWQvY29tcGF0X2luZm9ybWl4LXNxbGRhLmMKKysrIGIvc3Jj L2ludGVyZmFjZXMvZWNwZy90ZXN0L2V4cGVjdGVkL2NvbXBhdF9pbmZvcm1peC1zcWxkYS5jCkBA IC05Nyw3ICs5Nyw3IEBAIHR5cGVkZWYgc3RydWN0IHNxbGRhX3N0cnVjdCBzcWxkYV90OwogI2Rl ZmluZSBTUUxJTlRFUlZBTAkJRUNQR3RfaW50ZXJ2YWwKICNkZWZpbmUgU1FMTkNIQVIJRUNQR3Rf Y2hhcgogI2RlZmluZSBTUUxOVkNIQVIJRUNQR3RfY2hhcgotI2lmZGVmIEhBVkVfTE9OR19MT05H X0lOVF82NAorI2lmIFNJWkVPRl9MT05HIDwgOAogI2RlZmluZSBTUUxJTlQ4CQlFQ1BHdF9sb25n X2xvbmcKICNkZWZpbmUgU1FMU0VSSUFMOAlFQ1BHdF9sb25nX2xvbmcKICNlbHNlCmRpZmYgLS1n aXQgYS9zcmMvcG9ydC9wZ19iaXR1dGlscy5jIGIvc3JjL3BvcnQvcGdfYml0dXRpbHMuYwppbmRl eCA4N2Y1NmU4MmI4Li5kNDQxM2EyOTlhIDEwMDY0NAotLS0gYS9zcmMvcG9ydC9wZ19iaXR1dGls cy5jCisrKyBiL3NyYy9wb3J0L3BnX2JpdHV0aWxzLmMKQEAgLTM3MCwxMiArMzcwLDExIEBAIHN0 YXRpYyBpbmxpbmUgaW50CiBwZ19wb3Bjb3VudDY0X3Nsb3codWludDY0IHdvcmQpCiB7CiAjaWZk ZWYgSEFWRV9fQlVJTFRJTl9QT1BDT1VOVAotI2lmIGRlZmluZWQoSEFWRV9MT05HX0lOVF82NCkK KyNpZiBTSVpFT0ZfTE9ORyA9PSA4CiAJcmV0dXJuIF9fYnVpbHRpbl9wb3Bjb3VudGwod29yZCk7 Ci0jZWxpZiBkZWZpbmVkKEhBVkVfTE9OR19MT05HX0lOVF82NCkKLQlyZXR1cm4gX19idWlsdGlu X3BvcGNvdW50bGwod29yZCk7CiAjZWxzZQotI2Vycm9yIG11c3QgaGF2ZSBhIHdvcmtpbmcgNjQt Yml0IGludGVnZXIgZGF0YXR5cGUKKwlTdGF0aWNBc3NlcnRTdG10KHNpemVvZih3b3JkKSA9PSBz aXplb2YobG9uZyBsb25nKSwgInVuZXhwZWN0ZWQgc2l6ZSIpOworCXJldHVybiBfX2J1aWx0aW5f cG9wY291bnRsbCh3b3JkKTsKICNlbmRpZgogI2Vsc2UJCQkJCQkJLyogIUhBVkVfX0JVSUxUSU5f UE9QQ09VTlQgKi8KIAlpbnQJCQlyZXN1bHQgPSAwOwpkaWZmIC0tZ2l0IGEvc3JjL3BvcnQvc25w cmludGYuYyBiL3NyYy9wb3J0L3NucHJpbnRmLmMKaW5kZXggODg0ZjAyNjJkZC4uMjkxMTQ4YjRl OCAxMDA2NDQKLS0tIGEvc3JjL3BvcnQvc25wcmludGYuYworKysgYi9zcmMvcG9ydC9zbnByaW50 Zi5jCkBAIC01NjgsMTIgKzU2OCwxMSBAQCBuZXh0Y2gyOgogCQkJCWdvdG8gbmV4dGNoMjsKIAkJ CWNhc2UgJ3onOgogI2lmIFNJWkVPRl9TSVpFX1QgPT0gOAotI2lmZGVmIEhBVkVfTE9OR19JTlRf NjQKKyNpZiBTSVpFT0ZfTE9ORyA9PSA4CiAJCQkJbG9uZ2ZsYWcgPSAxOwotI2VsaWYgZGVmaW5l ZChIQVZFX0xPTkdfTE9OR19JTlRfNjQpCi0JCQkJbG9uZ2xvbmdmbGFnID0gMTsKICNlbHNlCi0j ZXJyb3IgIkRvbid0IGtub3cgaG93IHRvIHByaW50IDY0Yml0IGludGVnZXJzIgorCQkJCVN0YXRp Y0Fzc2VydFN0bXQoc2l6ZW9mKHNpemVfdCkgPT0gc2l6ZW9mKGxvbmcgbG9uZyksICJ1bmV4cGVj dGVkIHNpemUiKTsKKwkJCQlsb25nbG9uZ2ZsYWcgPSAxOwogI2VuZGlmCiAjZWxzZQogCQkJCS8q IGFzc3VtZSBzaXplX3QgaXMgc2FtZSBzaXplIGFzIGludCAqLwpAQCAtODM1LDEyICs4MzQsMTEg QEAgbmV4dGNoMToKIAkJCQlnb3RvIG5leHRjaDE7CiAJCQljYXNlICd6JzoKICNpZiBTSVpFT0Zf U0laRV9UID09IDgKLSNpZmRlZiBIQVZFX0xPTkdfSU5UXzY0CisjaWYgU0laRU9GX0xPTkcgPT0g OAogCQkJCWxvbmdmbGFnID0gMTsKLSNlbGlmIGRlZmluZWQoSEFWRV9MT05HX0xPTkdfSU5UXzY0 KQotCQkJCWxvbmdsb25nZmxhZyA9IDE7CiAjZWxzZQotI2Vycm9yICJEb24ndCBrbm93IGhvdyB0 byBwcmludCA2NGJpdCBpbnRlZ2VycyIKKwkJCQlTdGF0aWNBc3NlcnRTdG10KHNpemVvZihzaXpl X3QpID09IHNpemVvZihsb25nIGxvbmcpLCAidW5leHBlY3RlZCBzaXplIik7CisJCQkJbG9uZ2xv bmdmbGFnID0gMTsKICNlbmRpZgogI2Vsc2UKIAkJCQkvKiBhc3N1bWUgc2l6ZV90IGlzIHNhbWUg c2l6ZSBhcyBpbnQgKi8KZGlmZiAtLWdpdCBhL3NyYy90ZXN0L21vZHVsZXMvdGVzdF9yYWRpeHRy ZWUvdGVzdF9yYWRpeHRyZWUuYyBiL3NyYy90ZXN0L21vZHVsZXMvdGVzdF9yYWRpeHRyZWUvdGVz dF9yYWRpeHRyZWUuYwppbmRleCBkMzAxYzYwZDAwLi5mOGE4MGIxYThlIDEwMDY0NAotLS0gYS9z cmMvdGVzdC9tb2R1bGVzL3Rlc3RfcmFkaXh0cmVlL3Rlc3RfcmFkaXh0cmVlLmMKKysrIGIvc3Jj L3Rlc3QvbW9kdWxlcy90ZXN0X3JhZGl4dHJlZS90ZXN0X3JhZGl4dHJlZS5jCkBAIC0yMyw3ICsy Myw3IEBACiAvKiB1bmNvbW1lbnQgdG8gdXNlIHNoYXJlZCBtZW1vcnkgZm9yIHRoZSB0cmVlICov CiAvKiAjZGVmaW5lIFRFU1RfU0hBUkVEX1JUICovCiAKLSNkZWZpbmUgVUlOVDY0X0hFWF9GT1JN QVQgIiUiIElOVDY0X01PRElGSUVSICJYIgorI2RlZmluZSBVSU5UNjRfSEVYX0ZPUk1BVCAiJSIg UFJJWDY0CiAKIC8qIENvbnZlbmllbnQgbWFjcm9zIHRvIHRlc3QgcmVzdWx0cyAqLwogI2RlZmlu ZSBFWFBFQ1RfVFJVRShleHByKQlcCi0tIAoyLjM5LjMgKEFwcGxlIEdpdC0xNDYpCgo= --0000000000002023f5061664d6f9 Content-Type: application/octet-stream; name="v2-0002-Remove-traces-of-BeOS.patch" Content-Disposition: attachment; filename="v2-0002-Remove-traces-of-BeOS.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_lv5p1wf11 RnJvbSA3NGQwOWQ3YTNjOTFhZWY3NzZkZjE0MzQwN2M0MzYzYzU1OTM5MDAzIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBUaG9tYXMgTXVucm8gPHRob21hcy5tdW5yb0BnbWFpbC5jb20+ CkRhdGU6IFRodSwgMTggQXByIDIwMjQgMTI6MDY6MTcgKzEyMDAKU3ViamVjdDogW1BBVENIIHYy IDIvMl0gUmVtb3ZlIHRyYWNlcyBvZiBCZU9TLgoKQ29tbWl0IDE1YWJjNzc4OGU2IHRvbGVyYXRl ZCBuYW1lc3BhY2UgcG9sbHV0aW9uIGZyb20gQmVPUyBzeXN0ZW0KaGVhZGVycy4gIENvbW1pdCA0 NGY5MDIxMjIgZGUtc3VwcG9ydGVkIEJlT1MuICBTaW5jZSB0aGF0IHN0dWZmIGRpZG4ndAptYWtl IGl0IGludG8gdGhlIE1lc29uIGJ1aWxkIHN5c3RlbSwgc3luY2hyb25pemUgYnkgcmVtb3Zpbmcg ZnJvbQpjb25maWd1cmUuCi0tLQogY29uZmlndXJlICAgICAgICAgICAgICAgICAgfCA0NCAtLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogY29uZmlndXJlLmFjICAgICAgICAg ICAgICAgfCAgNSAtLS0tLQogc3JjL2luY2x1ZGUvYy5oICAgICAgICAgICAgfCAgOCAtLS0tLS0t CiBzcmMvaW5jbHVkZS9wZ19jb25maWcuaC5pbiB8IDEyIC0tLS0tLS0tLS0tCiA0IGZpbGVzIGNo YW5nZWQsIDY5IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2NvbmZpZ3VyZSBiL2NvbmZpZ3Vy ZQppbmRleCA1MmI1ZjY2NmNlLi4xYTFmYTdjYmUyIDEwMDc1NQotLS0gYS9jb25maWd1cmUKKysr IGIvY29uZmlndXJlCkBAIC0xNjc4Nyw1MCArMTY3ODcsNiBAQCBjYXQgPj5jb25mZGVmcy5oIDw8 X0FDRU9GCiBfQUNFT0YKIAogCi0jIFNvbWUgcGxhdGZvcm1zIHByZWRlZmluZSB0aGUgdHlwZXMg aW50OCwgaW50MTYsIGV0Yy4gIE9ubHkgY2hlY2sKLSMgYSAoaG9wZWZ1bGx5KSByZXByZXNlbnRh dGl2ZSBzdWJzZXQuCi1hY19mbl9jX2NoZWNrX3R5cGUgIiRMSU5FTk8iICJpbnQ4IiAiYWNfY3Zf dHlwZV9pbnQ4IiAiI2luY2x1ZGUgPHN0ZGlvLmg+Ci0iCi1pZiB0ZXN0ICJ4JGFjX2N2X3R5cGVf aW50OCIgPSB4eWVzOyB0aGVuIDoKLQotY2F0ID4+Y29uZmRlZnMuaCA8PF9BQ0VPRgotI2RlZmlu ZSBIQVZFX0lOVDggMQotX0FDRU9GCi0KLQotZmkKLWFjX2ZuX2NfY2hlY2tfdHlwZSAiJExJTkVO TyIgInVpbnQ4IiAiYWNfY3ZfdHlwZV91aW50OCIgIiNpbmNsdWRlIDxzdGRpby5oPgotIgotaWYg dGVzdCAieCRhY19jdl90eXBlX3VpbnQ4IiA9IHh5ZXM7IHRoZW4gOgotCi1jYXQgPj5jb25mZGVm cy5oIDw8X0FDRU9GCi0jZGVmaW5lIEhBVkVfVUlOVDggMQotX0FDRU9GCi0KLQotZmkKLWFjX2Zu X2NfY2hlY2tfdHlwZSAiJExJTkVOTyIgImludDY0IiAiYWNfY3ZfdHlwZV9pbnQ2NCIgIiNpbmNs dWRlIDxzdGRpby5oPgotIgotaWYgdGVzdCAieCRhY19jdl90eXBlX2ludDY0IiA9IHh5ZXM7IHRo ZW4gOgotCi1jYXQgPj5jb25mZGVmcy5oIDw8X0FDRU9GCi0jZGVmaW5lIEhBVkVfSU5UNjQgMQot X0FDRU9GCi0KLQotZmkKLWFjX2ZuX2NfY2hlY2tfdHlwZSAiJExJTkVOTyIgInVpbnQ2NCIgImFj X2N2X3R5cGVfdWludDY0IiAiI2luY2x1ZGUgPHN0ZGlvLmg+Ci0iCi1pZiB0ZXN0ICJ4JGFjX2N2 X3R5cGVfdWludDY0IiA9IHh5ZXM7IHRoZW4gOgotCi1jYXQgPj5jb25mZGVmcy5oIDw8X0FDRU9G Ci0jZGVmaW5lIEhBVkVfVUlOVDY0IDEKLV9BQ0VPRgotCi0KLWZpCi0KLQogIyBTb21lIGNvbXBp bGVycyBvZmZlciBhIDEyOC1iaXQgaW50ZWdlciBzY2FsYXIgdHlwZS4KIHsgJGFzX2VjaG8gIiRh c19tZToke2FzX2xpbmVuby0kTElORU5PfTogY2hlY2tpbmcgZm9yIF9faW50MTI4IiA+JjUKICRh c19lY2hvX24gImNoZWNraW5nIGZvciBfX2ludDEyOC4uLiAiID4mNjsgfQpkaWZmIC0tZ2l0IGEv Y29uZmlndXJlLmFjIGIvY29uZmlndXJlLmFjCmluZGV4IDFjNGNkM2FiNzIuLmY1ZGMxYjAzYTMg MTAwNjQ0Ci0tLSBhL2NvbmZpZ3VyZS5hYworKysgYi9jb25maWd1cmUuYWMKQEAgLTE5ODgsMTEg KzE5ODgsNiBAQCBpZiB0ZXN0ICRhY19jdl9hbGlnbm9mX2ludDY0X3QgLWd0ICRNQVhfQUxJR05P RiA7IHRoZW4KIGZpCiBBQ19ERUZJTkVfVU5RVU9URUQoTUFYSU1VTV9BTElHTk9GLCAkTUFYX0FM SUdOT0YsIFtEZWZpbmUgYXMgdGhlIG1heGltdW0gYWxpZ25tZW50IHJlcXVpcmVtZW50IG9mIGFu eSBDIGRhdGEgdHlwZS5dKQogCi0jIFNvbWUgcGxhdGZvcm1zIHByZWRlZmluZSB0aGUgdHlwZXMg aW50OCwgaW50MTYsIGV0Yy4gIE9ubHkgY2hlY2sKLSMgYSAoaG9wZWZ1bGx5KSByZXByZXNlbnRh dGl2ZSBzdWJzZXQuCi1BQ19DSEVDS19UWVBFUyhbaW50OCwgdWludDgsIGludDY0LCB1aW50NjRd LCBbXSwgW10sCi1bI2luY2x1ZGUgPHN0ZGlvLmg+XSkKLQogIyBTb21lIGNvbXBpbGVycyBvZmZl ciBhIDEyOC1iaXQgaW50ZWdlciBzY2FsYXIgdHlwZS4KIFBHQUNfVFlQRV8xMjhCSVRfSU5UCiAK ZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2MuaCBiL3NyYy9pbmNsdWRlL2MuaAppbmRleCBmZDg3 NmMzMmFmLi4zMWEwNDAwNTM5IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9jLmgKKysrIGIvc3Jj L2luY2x1ZGUvYy5oCkBAIC00ODYsMTQgKzQ4NiwxMCBAQCB0eXBlZGVmIGNoYXIgKlBvaW50ZXI7 CiAgKgkJdXNlZCBmb3IgbnVtZXJpY2FsIGNvbXB1dGF0aW9ucyBhbmQgdGhlCiAgKgkJZnJvbnRl bmQvYmFja2VuZCBwcm90b2NvbC4KICAqLwotI2lmbmRlZiBIQVZFX0lOVDgKIHR5cGVkZWYgaW50 OF90IGludDg7CQkJLyogPT0gOCBiaXRzICovCiB0eXBlZGVmIGludDE2X3QgaW50MTY7CQkJLyog PT0gMTYgYml0cyAqLwogdHlwZWRlZiBpbnQzMl90IGludDMyOwkJCS8qID09IDMyIGJpdHMgKi8K LSNlbmRpZgkJCQkJCQkvKiBub3QgSEFWRV9JTlQ4ICovCi0jaWZuZGVmIEhBVkVfSU5UNjQKIHR5 cGVkZWYgaW50NjRfdCBpbnQ2NDsJCQkvKiA9PSA2NCBiaXRzICovCi0jZW5kaWYJCQkJCQkJLyog bm90IEhBVkVfSU5UNjQgKi8KIAogLyoKICAqIHVpbnROCkBAIC01MDEsMTQgKzQ5NywxMCBAQCB0 eXBlZGVmIGludDY0X3QgaW50NjQ7CQkJLyogPT0gNjQgYml0cyAqLwogICoJCXVzZWQgZm9yIG51 bWVyaWNhbCBjb21wdXRhdGlvbnMgYW5kIHRoZQogICoJCWZyb250ZW5kL2JhY2tlbmQgcHJvdG9j b2wuCiAgKi8KLSNpZm5kZWYgSEFWRV9VSU5UOAogdHlwZWRlZiB1aW50OF90IHVpbnQ4OwkJCS8q ID09IDggYml0cyAqLwogdHlwZWRlZiB1aW50MTZfdCB1aW50MTY7CQkvKiA9PSAxNiBiaXRzICov CiB0eXBlZGVmIHVpbnQzMl90IHVpbnQzMjsJCS8qID09IDMyIGJpdHMgKi8KLSNlbmRpZgkJCQkJ CQkvKiBub3QgSEFWRV9VSU5UOCAqLwotI2lmbmRlZiBIQVZFX1VJTlQ2NAogdHlwZWRlZiB1aW50 NjRfdCB1aW50NjQ7CQkvKiA9PSA2NCBiaXRzICovCi0jZW5kaWYJCQkJCQkJLyogbm90IEhBVkVf VUlOVDY0ICovCiAKIC8qCiAgKiBiaXRzTgpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvcGdfY29u ZmlnLmguaW4gYi9zcmMvaW5jbHVkZS9wZ19jb25maWcuaC5pbgppbmRleCAyNzkxZWM1ZmFiLi4z YTNjYWY5YjBhIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9wZ19jb25maWcuaC5pbgorKysgYi9z cmMvaW5jbHVkZS9wZ19jb25maWcuaC5pbgpAQCAtMjEzLDEyICsyMTMsNiBAQAogLyogRGVmaW5l IHRvIDEgaWYgeW91IGhhdmUgdGhlIGBpbmV0X3B0b24nIGZ1bmN0aW9uLiAqLwogI3VuZGVmIEhB VkVfSU5FVF9QVE9OCiAKLS8qIERlZmluZSB0byAxIGlmIHRoZSBzeXN0ZW0gaGFzIHRoZSB0eXBl IGBpbnQ2NCcuICovCi0jdW5kZWYgSEFWRV9JTlQ2NAotCi0vKiBEZWZpbmUgdG8gMSBpZiB0aGUg c3lzdGVtIGhhcyB0aGUgdHlwZSBgaW50OCcuICovCi0jdW5kZWYgSEFWRV9JTlQ4Ci0KIC8qIERl ZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8aW50dHlwZXMuaD4gaGVhZGVyIGZpbGUuICovCiAj dW5kZWYgSEFWRV9JTlRUWVBFU19ICiAKQEAgLTQ2NSwxMiArNDU5LDYgQEAKIC8qIERlZmluZSB0 byAxIGlmIHlvdSBoYXZlIHRoZSA8dWNyZWQuaD4gaGVhZGVyIGZpbGUuICovCiAjdW5kZWYgSEFW RV9VQ1JFRF9ICiAKLS8qIERlZmluZSB0byAxIGlmIHRoZSBzeXN0ZW0gaGFzIHRoZSB0eXBlIGB1 aW50NjQnLiAqLwotI3VuZGVmIEhBVkVfVUlOVDY0Ci0KLS8qIERlZmluZSB0byAxIGlmIHRoZSBz eXN0ZW0gaGFzIHRoZSB0eXBlIGB1aW50OCcuICovCi0jdW5kZWYgSEFWRV9VSU5UOAotCiAvKiBE ZWZpbmUgdG8gMSBpZiB0aGUgc3lzdGVtIGhhcyB0aGUgdHlwZSBgdW5pb24gc2VtdW4nLiAqLwog I3VuZGVmIEhBVkVfVU5JT05fU0VNVU4KIAotLSAKMi4zOS4zIChBcHBsZSBHaXQtMTQ2KQoK --0000000000002023f5061664d6f9--