From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 114814 invoked by alias); 24 Oct 2017 10:05:17 -0000 Mailing-List: contact gcc-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-patches-owner@gcc.gnu.org Received: (qmail 114801 invoked by uid 89); 24 Oct 2017 10:05:17 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-6.6 required=5.0 tests=AWL,BAYES_00,GIT_PATCH_2,RP_MATCHES_RCVD,SPF_PASS autolearn=ham version=3.3.2 spammy=H*c:HHH X-HELO: mga01.intel.com Received: from mga01.intel.com (HELO mga01.intel.com) (192.55.52.88) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Tue, 24 Oct 2017 10:05:15 +0000 Received: from orsmga004.jf.intel.com ([10.7.209.38]) by fmsmga101.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 24 Oct 2017 03:05:14 -0700 X-ExtLoop1: 1 Received: from irsmsx102.ger.corp.intel.com ([163.33.3.155]) by orsmga004.jf.intel.com with ESMTP; 24 Oct 2017 03:05:11 -0700 Received: from irsmsx155.ger.corp.intel.com (163.33.192.3) by IRSMSX102.ger.corp.intel.com (163.33.3.155) with Microsoft SMTP Server (TLS) id 14.3.319.2; Tue, 24 Oct 2017 11:05:11 +0100 Received: from irsmsx101.ger.corp.intel.com ([169.254.1.22]) by irsmsx155.ger.corp.intel.com ([169.254.14.169]) with mapi id 14.03.0319.002; Tue, 24 Oct 2017 11:05:10 +0100 From: "Koval, Julia" To: GCC Patches CC: Kirill Yukhin Subject: RE: [PATCH][i386,AVX] Enable VBMI2 support [5/7] Date: Tue, 24 Oct 2017 10:16:00 -0000 Message-ID: <4E89A029A0F8D443B436A5167BA3C53F42AC3DDC@IRSMSX101.ger.corp.intel.com> x-titus-metadata-40: eyJDYXRlZ29yeUxhYmVscyI6IiIsIk1ldGFkYXRhIjp7Im5zIjoiaHR0cDpcL1wvd3d3LnRpdHVzLmNvbVwvbnNcL0ludGVsMyIsImlkIjoiOWYwYWEyZWQtN2Q3Mi00MmJlLWFiMjMtNzcwNTEwZjYyODUxIiwicHJvcHMiOlt7Im4iOiJDVFBDbGFzc2lmaWNhdGlvbiIsInZhbHMiOlt7InZhbHVlIjoiQ1RQX0lDIn1dfV19LCJTdWJqZWN0TGFiZWxzIjpbXSwiVE1DVmVyc2lvbiI6IjE3LjIuNS4xOCIsIlRydXN0ZWRMYWJlbEhhc2giOiJMYVwvZVdZempzV1VReDhlTjNkcERveWdmWGJxbzBzdFcwV2V0SmVzZmhoeGUyY0pCNGhiOVRLQkdnNDNzN2gwaiJ9 x-ctpclassification: CTP_IC dlp-product: dlpe-windows dlp-version: 11.0.0.116 dlp-reaction: no-action Content-Type: multipart/mixed; boundary="_002_4E89A029A0F8D443B436A5167BA3C53F42AC3DDCIRSMSX101gercor_" MIME-Version: 1.0 X-SW-Source: 2017-10/txt/msg01667.txt.bz2 --_002_4E89A029A0F8D443B436A5167BA3C53F42AC3DDCIRSMSX101gercor_ Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Content-length: 2335 Attached the patch > -----Original Message----- > From: Koval, Julia > Sent: Tuesday, October 24, 2017 12:01 PM > To: GCC Patches > Cc: Kirill Yukhin > Subject: [PATCH][i386,AVX] Enable VBMI2 support [5/7] >=20 > Hi, > This patch enables VPSHRD instruction. The doc for isaset and instruction: > https://software.intel.com/sites/default/files/managed/c5/15/architecture- > instruction-set-extensions-programming-reference.pdf >=20 > Ok for trunk? >=20 > gcc/ > config/i386/avx512vbmi2intrin.h (_mm512_shrdi_epi16, > _mm512_mask_shrdi_epi16, _mm512_maskz_shrdi_epi16, > _mm512_shrdi_epi32, > _mm512_mask_shrdi_epi32, _mm512_maskz_shrdi_epi32, > _mm512_shrdi_epi64, > _mm512_mask_shrdi_epi64, _mm512_maskz_shrdi_epi64): New > intrinsics. > config/i386/avx512vbmi2vlintrin.h (_mm256_shrdi_epi16, > _mm256_mask_shrdi_epi16, _mm256_maskz_shrdi_epi16, > _mm256_mask_shrdi_epi32, _mm256_maskz_shrdi_epi32, > _mm256_shrdi_epi32, > _mm256_mask_shrdi_epi64, _mm256_maskz_shrdi_epi64, > _mm256_shrdi_epi64, > _mm_mask_shrdi_epi16, _mm_maskz_shrdi_epi16, _mm_shrdi_epi16, > _mm_mask_shrdi_epi32, _mm_maskz_shrdi_epi32, _mm_shrdi_epi32, > _mm_mask_shrdi_epi64, _mm_maskz_shrdi_epi64, _mm_shrdi_epi64): > Ditto. > config/i386/i386-builtin.def (__builtin_ia32_vpshrd_v32hi, > __builtin_ia32_vpshrd_v32hi_mask, __builtin_ia32_vpshrd_v16hi, > __builtin_ia32_vpshrd_v16hi_mask, __builtin_ia32_vpshrd_v8hi, > __builtin_ia32_vpshrd_v8hi_mask, __builtin_ia32_vpshrd_v16si, > __builtin_ia32_vpshrd_v16si_mask, __builtin_ia32_vpshrd_v8si, > __builtin_ia32_vpshrd_v8si_mask, __builtin_ia32_vpshrd_v4si, > __builtin_ia32_vpshrd_v4si_mask, __builtin_ia32_vpshrd_v8di, > __builtin_ia32_vpshrd_v8di_mask, __builtin_ia32_vpshrd_v4di, > __builtin_ia32_vpshrd_v4di_mask, __builtin_ia32_vpshrd_v2di, > __builtin_ia32_vpshrd_v2di_mask): New builtins. > config/i386/sse.md (vpshrd_): New pattern. >=20 > gcc/testsuite/ > gcc.target/i386/avx-1.c: Handle new intrinsics. > gcc.target/i386/sse-13.c: Ditto. > gcc.target/i386/sse-23.c: Ditto. > gcc.target/i386/avx512f-vpshrdd-2.c: New. > gcc.target/i386/avx512f-vpshrdq-2.c: Ditto. > gcc.target/i386/avx512vl-vpshrd-1.c: Ditto. > gcc.target/i386/avx512vl-vpshrdd-2.c: Ditto. > gcc.target/i386/avx512vl-vpshrdq-2.c: Ditto. --_002_4E89A029A0F8D443B436A5167BA3C53F42AC3DDCIRSMSX101gercor_ Content-Type: application/octet-stream; name="0007-VPSHRD-instruction.patch" Content-Description: 0007-VPSHRD-instruction.patch Content-Disposition: attachment; filename="0007-VPSHRD-instruction.patch"; size=37492; creation-date="Tue, 24 Oct 2017 10:05:07 GMT"; modification-date="Tue, 24 Oct 2017 10:05:07 GMT" Content-Transfer-Encoding: base64 Content-length: 50826 RnJvbSA1Y2YzYWI5MGI0ODI4N2FkZjYwODI5NmYxMThhOTkzNGM3YmY5MWY0 IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiAianVsaWEua292YWwi IDxqa292YWxAZ2tsaWNsZWwyMDEuaWdrLmludGVsLmNvbT4KRGF0ZTogVGh1 LCAxOSBPY3QgMjAxNyAxMjowMjoyNiArMDIwMApTdWJqZWN0OiBbUEFUQ0gg MDcvMTRdIFZQU0hSRCBpbnN0cnVjdGlvbgoKLS0tCiBnY2MvY29uZmlnL2kz ODYvYXZ4NTEydmJtaTJpbnRyaW4uaCAgICAgICAgICAgICAgICB8IDEwNCAr KysrKysrKysrKwogZ2NjL2NvbmZpZy9pMzg2L2F2eDUxMnZibWkydmxpbnRy aW4uaCAgICAgICAgICAgICAgfCAyMDUgKysrKysrKysrKysrKysrKysrKysr CiBnY2MvY29uZmlnL2kzODYvaTM4Ni1idWlsdGluLmRlZiAgICAgICAgICAg ICAgICAgICB8ICAxOCArKwogZ2NjL2NvbmZpZy9pMzg2L3NzZS5tZCAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgfCAgMTIgKysKIGdjYy90ZXN0c3Vp dGUvZ2NjLnRhcmdldC9pMzg2L2F2eC0xLmMgICAgICAgICAgICAgIHwgIDE4 ICsrCiBnY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvaTM4Ni9hdng1MTJmLXZw c2hyZGQtMi5jICB8ICA2MiArKysrKysrCiBnY2MvdGVzdHN1aXRlL2djYy50 YXJnZXQvaTM4Ni9hdng1MTJmLXZwc2hyZHEtMi5jICB8ICA2MiArKysrKysr CiBnY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvaTM4Ni9hdng1MTJ2bC12cHNo cmQtMS5jICB8ICA1NCArKysrKysKIGdjYy90ZXN0c3VpdGUvZ2NjLnRhcmdl dC9pMzg2L2F2eDUxMnZsLXZwc2hyZGQtMi5jIHwgIDE2ICsrCiBnY2MvdGVz dHN1aXRlL2djYy50YXJnZXQvaTM4Ni9hdng1MTJ2bC12cHNocmRxLTIuYyB8 ICAxNiArKwogZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2kzODYvc3NlLTEz LmMgICAgICAgICAgICAgfCAgMTggKysKIGdjYy90ZXN0c3VpdGUvZ2NjLnRh cmdldC9pMzg2L3NzZS0yMy5jICAgICAgICAgICAgIHwgIDE4ICsrCiAxMiBm aWxlcyBjaGFuZ2VkLCA2MDMgaW5zZXJ0aW9ucygrKQogY3JlYXRlIG1vZGUg MTAwNjQ0IGdjYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9pMzg2L2F2eDUxMmYt dnBzaHJkZC0yLmMKIGNyZWF0ZSBtb2RlIDEwMDY0NCBnY2MvdGVzdHN1aXRl L2djYy50YXJnZXQvaTM4Ni9hdng1MTJmLXZwc2hyZHEtMi5jCiBjcmVhdGUg bW9kZSAxMDA2NDQgZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2kzODYvYXZ4 NTEydmwtdnBzaHJkLTEuYwogY3JlYXRlIG1vZGUgMTAwNjQ0IGdjYy90ZXN0 c3VpdGUvZ2NjLnRhcmdldC9pMzg2L2F2eDUxMnZsLXZwc2hyZGQtMi5jCiBj cmVhdGUgbW9kZSAxMDA2NDQgZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2kz ODYvYXZ4NTEydmwtdnBzaHJkcS0yLmMKCmRpZmYgLS1naXQgYS9nY2MvY29u ZmlnL2kzODYvYXZ4NTEydmJtaTJpbnRyaW4uaCBiL2djYy9jb25maWcvaTM4 Ni9hdng1MTJ2Ym1pMmludHJpbi5oCmluZGV4IDdmNmU4NzguLjBhN2MyYjkg MTAwNjQ0Ci0tLSBhL2djYy9jb25maWcvaTM4Ni9hdng1MTJ2Ym1pMmludHJp bi5oCisrKyBiL2djYy9jb25maWcvaTM4Ni9hdng1MTJ2Ym1pMmludHJpbi5o CkBAIC0xNTMsNiArMTUzLDgwIEBAIF9tbTUxMl9tYXNrel9leHBhbmRsb2Fk dV9lcGkxNiAoX19tbWFzazMyIF9fQSwgY29uc3Qgdm9pZCAqIF9fQikKICNp ZmRlZiBfX09QVElNSVpFX18KIGV4dGVybiBfX2lubGluZSBfX201MTJpCiBf X2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5l X18sIF9fYXJ0aWZpY2lhbF9fKSkKK19tbTUxMl9zaHJkaV9lcGkxNiAoX19t NTEyaSBfX0EsIF9fbTUxMmkgX19CLCBpbnQgX19DKQoreworICByZXR1cm4g KF9fbTUxMmkpIF9fYnVpbHRpbl9pYTMyX3Zwc2hyZF92MzJoaSAoKF9fdjMy aGkpX19BLCAoX192MzJoaSkgX19CLAorCQkJCQkJCQkJX19DKTsKK30KKwor ZXh0ZXJuIF9faW5saW5lIF9fbTUxMmkKK19fYXR0cmlidXRlX18oKF9fZ251 X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18p KQorX21tNTEyX21hc2tfc2hyZGlfZXBpMTYgKF9fbTUxMmkgX19BLCBfX21t YXNrMzIgX19CLCBfX201MTJpIF9fQywgX19tNTEyaSBfX0QsCisJCQkJCQkJ CWludCBfX0UpCit7CisgIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5faWEz Ml92cHNocmRfdjMyaGlfbWFzayAoKF9fdjMyaGkpX19DLAorCQkJKF9fdjMy aGkpIF9fRCwgX19FLCAoX192MzJoaSkgX19BLCAoX19tbWFzazMyKV9fQik7 Cit9CisKK2V4dGVybiBfX2lubGluZSBfX201MTJpCitfX2F0dHJpYnV0ZV9f KChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZp Y2lhbF9fKSkKK19tbTUxMl9tYXNrel9zaHJkaV9lcGkxNiAoX19tbWFzazMy IF9fQSwgX19tNTEyaSBfX0IsIF9fbTUxMmkgX19DLCBpbnQgX19EKQorewor ICByZXR1cm4gKF9fbTUxMmkpX19idWlsdGluX2lhMzJfdnBzaHJkX3YzMmhp X21hc2sgKChfX3YzMmhpKV9fQiwKKwkoX192MzJoaSkgX19DLCBfX0QsIChf X3YzMmhpKSBfbW01MTJfc2V0emVyb19zaTUxMiAoKSwgKF9fbW1hc2szMilf X0EpOworfQorCitleHRlcm4gX19pbmxpbmUgX19tNTEyaQorX19hdHRyaWJ1 dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2Fy dGlmaWNpYWxfXykpCitfbW01MTJfc2hyZGlfZXBpMzIgKF9fbTUxMmkgX19B LCBfX201MTJpIF9fQiwgaW50IF9fQykKK3sKKyAgcmV0dXJuIChfX201MTJp KSBfX2J1aWx0aW5faWEzMl92cHNocmRfdjE2c2kgKChfX3YxNnNpKV9fQSwg KF9fdjE2c2kpIF9fQiwKKwkJCQkJCQkJCV9fQyk7Cit9CisKK2V4dGVybiBf X2lubGluZSBfX201MTJpCitfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVf XywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKK19tbTUx Ml9tYXNrX3NocmRpX2VwaTMyIChfX201MTJpIF9fQSwgX19tbWFzazE2IF9f QiwgX19tNTEyaSBfX0MsIF9fbTUxMmkgX19ELAorCQkJCQkJCQlpbnQgX19F KQoreworICByZXR1cm4gKF9fbTUxMmkpX19idWlsdGluX2lhMzJfdnBzaHJk X3YxNnNpX21hc2sgKChfX3YxNnNpKV9fQywKKwkJCShfX3YxNnNpKSBfX0Qs IF9fRSwgKF9fdjE2c2kpIF9fQSwgKF9fbW1hc2sxNilfX0IpOworfQorCitl eHRlcm4gX19pbmxpbmUgX19tNTEyaQorX19hdHRyaWJ1dGVfXygoX19nbnVf aW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykp CitfbW01MTJfbWFza3pfc2hyZGlfZXBpMzIgKF9fbW1hc2sxNiBfX0EsIF9f bTUxMmkgX19CLCBfX201MTJpIF9fQywgaW50IF9fRCkKK3sKKyAgcmV0dXJu IChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3Zwc2hyZF92MTZzaV9tYXNrICgo X192MTZzaSlfX0IsCisJKF9fdjE2c2kpIF9fQywgX19ELCAoX192MTZzaSkg X21tNTEyX3NldHplcm9fc2k1MTIgKCksIChfX21tYXNrMTYpX19BKTsKK30K KworZXh0ZXJuIF9faW5saW5lIF9fbTUxMmkKK19fYXR0cmlidXRlX18oKF9f Z251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFs X18pKQorX21tNTEyX3NocmRpX2VwaTY0IChfX201MTJpIF9fQSwgX19tNTEy aSBfX0IsIGludCBfX0MpCit7CisgIHJldHVybiAoX19tNTEyaSkgX19idWls dGluX2lhMzJfdnBzaHJkX3Y4ZGkgKChfX3Y4ZGkpX19BLCAoX192OGRpKSBf X0IsIF9fQyk7Cit9CisKK2V4dGVybiBfX2lubGluZSBfX201MTJpCitfX2F0 dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18s IF9fYXJ0aWZpY2lhbF9fKSkKK19tbTUxMl9tYXNrX3NocmRpX2VwaTY0IChf X201MTJpIF9fQSwgX19tbWFzazggX19CLCBfX201MTJpIF9fQywgX19tNTEy aSBfX0QsCisJCQkJCQkJCWludCBfX0UpCit7CisgIHJldHVybiAoX19tNTEy aSlfX2J1aWx0aW5faWEzMl92cHNocmRfdjhkaV9tYXNrICgoX192OGRpKV9f QywgKF9fdjhkaSkgX19ELAorCQkJCQlfX0UsIChfX3Y4ZGkpIF9fQSwgKF9f bW1hc2s4KV9fQik7Cit9CisKK2V4dGVybiBfX2lubGluZSBfX201MTJpCitf X2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5l X18sIF9fYXJ0aWZpY2lhbF9fKSkKK19tbTUxMl9tYXNrel9zaHJkaV9lcGk2 NCAoX19tbWFzazggX19BLCBfX201MTJpIF9fQiwgX19tNTEyaSBfX0MsIGlu dCBfX0QpCit7CisgIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5faWEzMl92 cHNocmRfdjhkaV9tYXNrICgoX192OGRpKV9fQiwgKF9fdjhkaSkgX19DLAor CQkJX19ELCAoX192OGRpKSBfbW01MTJfc2V0emVyb19zaTUxMiAoKSwgKF9f bW1hc2s4KV9fQSk7Cit9CisKK2V4dGVybiBfX2lubGluZSBfX201MTJpCitf X2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5l X18sIF9fYXJ0aWZpY2lhbF9fKSkKIF9tbTUxMl9zaGxkaV9lcGkxNiAoX19t NTEyaSBfX0EsIF9fbTUxMmkgX19CLCBpbnQgX19DKQogewogICByZXR1cm4g KF9fbTUxMmkpIF9fYnVpbHRpbl9pYTMyX3Zwc2hsZF92MzJoaSAoKF9fdjMy aGkpX19BLCAoX192MzJoaSkgX19CLApAQCAtMjI1LDYgKzI5OSwzNiBAQCBf bW01MTJfbWFza3pfc2hsZGlfZXBpNjQgKF9fbW1hc2s4IF9fQSwgX19tNTEy aSBfX0IsIF9fbTUxMmkgX19DLCBpbnQgX19EKQogCQkJX19ELCAoX192OGRp KSBfbW01MTJfc2V0emVyb19zaTUxMiAoKSwgKF9fbW1hc2s4KV9fQSk7CiB9 CiAjZWxzZQorI2RlZmluZSBfbW01MTJfc2hyZGlfZXBpMTYoQSwgQiwgQykg XAorICAoKF9fbTUxMmkpIF9fYnVpbHRpbl9pYTMyX3Zwc2hyZF92MzJoaSAo KF9fdjMyaGkpKF9fbTUxMmkpKEEpLCBcCisJCQkJCQkoX192MzJoaSkoX19t NTEyaSkoQiksKGludCkoQykpCisjZGVmaW5lIF9tbTUxMl9tYXNrX3NocmRp X2VwaTE2KEEsIEIsIEMsIEQsIEUpIFwKKyAgKChfX201MTJpKSBfX2J1aWx0 aW5faWEzMl92cHNocmRfdjMyaGlfbWFzayAoKF9fdjMyaGkpKF9fbTUxMmkp KEMpLCBcCisJKF9fdjMyaGkpKF9fbTUxMmkpKEQpLCAoaW50KShFKSwgKF9f djMyaGkpKF9fbTUxMmkpKEEpLChfX21tYXNrMzIpKEIpKQorI2RlZmluZSBf bW01MTJfbWFza3pfc2hyZGlfZXBpMTYoQSwgQiwgQywgRCkgXAorICAoKF9f bTUxMmkpIF9fYnVpbHRpbl9pYTMyX3Zwc2hyZF92MzJoaV9tYXNrICgoX192 MzJoaSkoX19tNTEyaSkoQiksIFwKKwkoX192MzJoaSkoX19tNTEyaSkoQyks KGludCkoRCksIFwKKwkoX192MzJoaSkoX19tNTEyaSlfbW01MTJfc2V0emVy b19zaTUxMiAoKSwgKF9fbW1hc2szMikoQSkpCisjZGVmaW5lIF9tbTUxMl9z aHJkaV9lcGkzMihBLCBCLCBDKSBcCisgICgoX19tNTEyaSkgX19idWlsdGlu X2lhMzJfdnBzaHJkX3YxNnNpICgoX192MTZzaSkoX19tNTEyaSkoQSksIFwK KwkoX192MTZzaSkoX19tNTEyaSkoQiksKGludCkoQykpCisjZGVmaW5lIF9t bTUxMl9tYXNrX3NocmRpX2VwaTMyKEEsIEIsIEMsIEQsIEUpIFwKKyAgKChf X201MTJpKSBfX2J1aWx0aW5faWEzMl92cHNocmRfdjE2c2lfbWFzayAoKF9f djE2c2kpKF9fbTUxMmkpKEMpLCBcCisJKF9fdjE2c2kpKF9fbTUxMmkpKEQp LCAoaW50KShFKSwgKF9fdjE2c2kpKF9fbTUxMmkpKEEpLChfX21tYXNrMTYp KEIpKQorI2RlZmluZSBfbW01MTJfbWFza3pfc2hyZGlfZXBpMzIoQSwgQiwg QywgRCkgXAorICAoKF9fbTUxMmkpIF9fYnVpbHRpbl9pYTMyX3Zwc2hyZF92 MTZzaV9tYXNrICgoX192MTZzaSkoX19tNTEyaSkoQiksIFwKKwkoX192MTZz aSkoX19tNTEyaSkoQyksKGludCkoRCksIFwKKwkoX192MTZzaSkoX19tNTEy aSlfbW01MTJfc2V0emVyb19zaTUxMiAoKSwgKF9fbW1hc2sxNikoQSkpCisj ZGVmaW5lIF9tbTUxMl9zaHJkaV9lcGk2NChBLCBCLCBDKSBcCisgICgoX19t NTEyaSkgX19idWlsdGluX2lhMzJfdnBzaHJkX3Y4ZGkgKChfX3Y4ZGkpKF9f bTUxMmkpKEEpLCBcCisJKF9fdjhkaSkoX19tNTEyaSkoQiksKGludCkoQykp CisjZGVmaW5lIF9tbTUxMl9tYXNrX3NocmRpX2VwaTY0KEEsIEIsIEMsIEQs IEUpIFwKKyAgKChfX201MTJpKSBfX2J1aWx0aW5faWEzMl92cHNocmRfdjhk aV9tYXNrICgoX192OGRpKShfX201MTJpKShDKSwgXAorCShfX3Y4ZGkpKF9f bTUxMmkpKEQpLCAoaW50KShFKSwgKF9fdjhkaSkoX19tNTEyaSkoQSksKF9f bW1hc2s4KShCKSkKKyNkZWZpbmUgX21tNTEyX21hc2t6X3NocmRpX2VwaTY0 KEEsIEIsIEMsIEQpIFwKKyAgKChfX201MTJpKSBfX2J1aWx0aW5faWEzMl92 cHNocmRfdjhkaV9tYXNrICgoX192OGRpKShfX201MTJpKShCKSwgXAorCShf X3Y4ZGkpKF9fbTUxMmkpKEMpLChpbnQpKEQpLCBcCisJKF9fdjhkaSkoX19t NTEyaSlfbW01MTJfc2V0emVyb19zaTUxMiAoKSwgKF9fbW1hc2s4KShBKSkK ICNkZWZpbmUgX21tNTEyX3NobGRpX2VwaTE2KEEsIEIsIEMpIFwKICAgKChf X201MTJpKSBfX2J1aWx0aW5faWEzMl92cHNobGRfdjMyaGkgKChfX3YzMmhp KShfX201MTJpKShBKSwgXAogCQkJCQkJKF9fdjMyaGkpKF9fbTUxMmkpKEIp LChpbnQpKEMpKQpkaWZmIC0tZ2l0IGEvZ2NjL2NvbmZpZy9pMzg2L2F2eDUx MnZibWkydmxpbnRyaW4uaCBiL2djYy9jb25maWcvaTM4Ni9hdng1MTJ2Ym1p MnZsaW50cmluLmgKaW5kZXggZjFkMmFlZS4uNWQ4ZDg4YyAxMDA2NDQKLS0t IGEvZ2NjL2NvbmZpZy9pMzg2L2F2eDUxMnZibWkydmxpbnRyaW4uaAorKysg Yi9nY2MvY29uZmlnL2kzODYvYXZ4NTEydmJtaTJ2bGludHJpbi5oCkBAIC0y MDgsNiArMjA4LDE1MSBAQCBfbW0yNTZfbWFza3pfZXhwYW5kbG9hZHVfZXBp MTYgKF9fbW1hc2sxNiBfX0EsIGNvbnN0IHZvaWQgKiBfX0IpCiAjaWZkZWYg X19PUFRJTUlaRV9fCiBleHRlcm4gX19pbmxpbmUgX19tMjU2aQogX19hdHRy aWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBf X2FydGlmaWNpYWxfXykpCitfbW0yNTZfc2hyZGlfZXBpMTYgKF9fbTI1Nmkg X19BLCBfX20yNTZpIF9fQiwgaW50IF9fQykKK3sKKyAgcmV0dXJuIChfX20y NTZpKSBfX2J1aWx0aW5faWEzMl92cHNocmRfdjE2aGkgKChfX3YxNmhpKV9f QSwgKF9fdjE2aGkpIF9fQiwKKwkJCQkJCQkJCV9fQyk7Cit9CisKK2V4dGVy biBfX2lubGluZSBfX20yNTZpCitfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxp bmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKK19t bTI1Nl9tYXNrX3NocmRpX2VwaTE2IChfX20yNTZpIF9fQSwgX19tbWFzazE2 IF9fQiwgX19tMjU2aSBfX0MsIF9fbTI1NmkgX19ELAorCQkJCQkJCQlpbnQg X19FKQoreworICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2lhMzJfdnBz aHJkX3YxNmhpX21hc2sgKChfX3YxNmhpKV9fQywKKwkJCShfX3YxNmhpKSBf X0QsIF9fRSwgKF9fdjE2aGkpIF9fQSwgKF9fbW1hc2sxNilfX0IpOworfQor CitleHRlcm4gX19pbmxpbmUgX19tMjU2aQorX19hdHRyaWJ1dGVfXygoX19n bnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxf XykpCitfbW0yNTZfbWFza3pfc2hyZGlfZXBpMTYgKF9fbW1hc2sxNiBfX0Es IF9fbTI1NmkgX19CLCBfX20yNTZpIF9fQywgaW50IF9fRCkKK3sKKyAgcmV0 dXJuIChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3Zwc2hyZF92MTZoaV9tYXNr ICgoX192MTZoaSlfX0IsCisJKF9fdjE2aGkpIF9fQywgX19ELCAoX192MTZo aSkgX21tMjU2X3NldHplcm9fc2kyNTYgKCksIChfX21tYXNrMTYpX19BKTsK K30KKworZXh0ZXJuIF9faW5saW5lIF9fbTI1NmkKK19fYXR0cmlidXRlX18o KF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmlj aWFsX18pKQorX21tMjU2X21hc2tfc2hyZGlfZXBpMzIgKF9fbTI1NmkgX19B LCBfX21tYXNrOCBfX0IsIF9fbTI1NmkgX19DLCBfX20yNTZpIF9fRCwKKwkJ CQkJCQkJaW50IF9fRSkKK3sKKyAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRp bl9pYTMyX3Zwc2hyZF92OHNpX21hc2sgKChfX3Y4c2kpX19DLCAoX192OHNp KSBfX0QsCisJCQkJCV9fRSwgKF9fdjhzaSkgX19BLCAoX19tbWFzazgpX19C KTsKK30KKworZXh0ZXJuIF9faW5saW5lIF9fbTI1NmkKK19fYXR0cmlidXRl X18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRp ZmljaWFsX18pKQorX21tMjU2X21hc2t6X3NocmRpX2VwaTMyIChfX21tYXNr OCBfX0EsIF9fbTI1NmkgX19CLCBfX20yNTZpIF9fQywgaW50IF9fRCkKK3sK KyAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3Zwc2hyZF92OHNp X21hc2sgKChfX3Y4c2kpX19CLCAoX192OHNpKSBfX0MsCisJCQlfX0QsIChf X3Y4c2kpIF9tbTI1Nl9zZXR6ZXJvX3NpMjU2ICgpLCAoX19tbWFzazgpX19B KTsKK30KKworZXh0ZXJuIF9faW5saW5lIF9fbTI1NmkKK19fYXR0cmlidXRl X18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRp ZmljaWFsX18pKQorX21tMjU2X3NocmRpX2VwaTMyIChfX20yNTZpIF9fQSwg X19tMjU2aSBfX0IsIGludCBfX0MpCit7CisgIHJldHVybiAoX19tMjU2aSkg X19idWlsdGluX2lhMzJfdnBzaHJkX3Y4c2kgKChfX3Y4c2kpX19BLCAoX192 OHNpKSBfX0IsIF9fQyk7Cit9CisKK2V4dGVybiBfX2lubGluZSBfX20yNTZp CitfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5s aW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKK19tbTI1Nl9tYXNrX3NocmRpX2Vw aTY0IChfX20yNTZpIF9fQSwgX19tbWFzazggX19CLCBfX20yNTZpIF9fQywg X19tMjU2aSBfX0QsCisJCQkJCQkJCWludCBfX0UpCit7CisgIHJldHVybiAo X19tMjU2aSlfX2J1aWx0aW5faWEzMl92cHNocmRfdjRkaV9tYXNrICgoX192 NGRpKV9fQywgKF9fdjRkaSkgX19ELAorCQkJCQlfX0UsIChfX3Y0ZGkpIF9f QSwgKF9fbW1hc2s4KV9fQik7Cit9CisKK2V4dGVybiBfX2lubGluZSBfX20y NTZpCitfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNf aW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKK19tbTI1Nl9tYXNrel9zaHJk aV9lcGk2NCAoX19tbWFzazggX19BLCBfX20yNTZpIF9fQiwgX19tMjU2aSBf X0MsIGludCBfX0QpCit7CisgIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5f aWEzMl92cHNocmRfdjRkaV9tYXNrICgoX192NGRpKV9fQiwgKF9fdjRkaSkg X19DLAorCQkJX19ELCAoX192NGRpKSBfbW0yNTZfc2V0emVyb19zaTI1NiAo KSwgKF9fbW1hc2s4KV9fQSk7Cit9CisKK2V4dGVybiBfX2lubGluZSBfX20y NTZpCitfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNf aW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKK19tbTI1Nl9zaHJkaV9lcGk2 NCAoX19tMjU2aSBfX0EsIF9fbTI1NmkgX19CLCBpbnQgX19DKQoreworICBy ZXR1cm4gKF9fbTI1NmkpIF9fYnVpbHRpbl9pYTMyX3Zwc2hyZF92NGRpICgo X192NGRpKV9fQSwgKF9fdjRkaSkgX19CLCBfX0MpOworfQorCitleHRlcm4g X19pbmxpbmUgX19tMTI4aQorX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5l X18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCitfbW1f bWFza19zaHJkaV9lcGkxNiAoX19tMTI4aSBfX0EsIF9fbW1hc2s4IF9fQiwg X19tMTI4aSBfX0MsIF9fbTEyOGkgX19ELAorCQkJCQkJCQlpbnQgX19FKQor eworICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2lhMzJfdnBzaHJkX3Y4 aGlfbWFzayAoKF9fdjhoaSlfX0MsIChfX3Y4aGkpIF9fRCwKKwkJCQkJX19F LCAoX192OGhpKSBfX0EsIChfX21tYXNrOClfX0IpOworfQorCitleHRlcm4g X19pbmxpbmUgX19tMTI4aQorX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5l X18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCitfbW1f bWFza3pfc2hyZGlfZXBpMTYgKF9fbW1hc2s4IF9fQSwgX19tMTI4aSBfX0Is IF9fbTEyOGkgX19DLCBpbnQgX19EKQoreworICByZXR1cm4gKF9fbTEyOGkp X19idWlsdGluX2lhMzJfdnBzaHJkX3Y4aGlfbWFzayAoKF9fdjhoaSlfX0Is IChfX3Y4aGkpIF9fQywKKwkJCV9fRCwgKF9fdjhoaSkgX21tX3NldHplcm9f c2kxMjggKCksIChfX21tYXNrOClfX0EpOworfQorCitleHRlcm4gX19pbmxp bmUgX19tMTI4aQorX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9f YWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCitfbW1fc2hyZGlf ZXBpMTYgKF9fbTEyOGkgX19BLCBfX20xMjhpIF9fQiwgaW50IF9fQykKK3sK KyAgcmV0dXJuIChfX20xMjhpKSBfX2J1aWx0aW5faWEzMl92cHNocmRfdjho aSAoKF9fdjhoaSlfX0EsIChfX3Y4aGkpIF9fQiwgX19DKTsKK30KKworZXh0 ZXJuIF9faW5saW5lIF9fbTEyOGkKK19fYXR0cmlidXRlX18oKF9fZ251X2lu bGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQor X21tX21hc2tfc2hyZGlfZXBpMzIgKF9fbTEyOGkgX19BLCBfX21tYXNrOCBf X0IsIF9fbTEyOGkgX19DLCBfX20xMjhpIF9fRCwKKwkJCQkJCQkJaW50IF9f RSkKK3sKKyAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3Zwc2hy ZF92NHNpX21hc2sgKChfX3Y0c2kpX19DLCAoX192NHNpKSBfX0QsCisJCQkJ CV9fRSwgKF9fdjRzaSkgX19BLCAoX19tbWFzazgpX19CKTsKK30KKworZXh0 ZXJuIF9faW5saW5lIF9fbTEyOGkKK19fYXR0cmlidXRlX18oKF9fZ251X2lu bGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQor X21tX21hc2t6X3NocmRpX2VwaTMyIChfX21tYXNrOCBfX0EsIF9fbTEyOGkg X19CLCBfX20xMjhpIF9fQywgaW50IF9fRCkKK3sKKyAgcmV0dXJuIChfX20x MjhpKV9fYnVpbHRpbl9pYTMyX3Zwc2hyZF92NHNpX21hc2sgKChfX3Y0c2kp X19CLCAoX192NHNpKSBfX0MsCisJCQlfX0QsIChfX3Y0c2kpIF9tbV9zZXR6 ZXJvX3NpMTI4ICgpLCAoX19tbWFzazgpX19BKTsKK30KKworZXh0ZXJuIF9f aW5saW5lIF9fbTEyOGkKK19fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9f LCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQorX21tX3No cmRpX2VwaTMyIChfX20xMjhpIF9fQSwgX19tMTI4aSBfX0IsIGludCBfX0Mp Cit7CisgIHJldHVybiAoX19tMTI4aSkgX19idWlsdGluX2lhMzJfdnBzaHJk X3Y0c2kgKChfX3Y0c2kpX19BLCAoX192NHNpKSBfX0IsIF9fQyk7Cit9CisK K2V4dGVybiBfX2lubGluZSBfX20xMjhpCitfX2F0dHJpYnV0ZV9fKChfX2du dV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9f KSkKK19tbV9tYXNrX3NocmRpX2VwaTY0IChfX20xMjhpIF9fQSwgX19tbWFz azggX19CLCBfX20xMjhpIF9fQywgX19tMTI4aSBfX0QsCisJCQkJCQkJCWlu dCBfX0UpCit7CisgIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl92 cHNocmRfdjJkaV9tYXNrICgoX192MmRpKV9fQywgKF9fdjJkaSkgX19ELAor CQkJCQlfX0UsIChfX3YyZGkpIF9fQSwgKF9fbW1hc2s4KV9fQik7Cit9CisK K2V4dGVybiBfX2lubGluZSBfX20xMjhpCitfX2F0dHJpYnV0ZV9fKChfX2du dV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9f KSkKK19tbV9tYXNrel9zaHJkaV9lcGk2NCAoX19tbWFzazggX19BLCBfX20x MjhpIF9fQiwgX19tMTI4aSBfX0MsIGludCBfX0QpCit7CisgIHJldHVybiAo X19tMTI4aSlfX2J1aWx0aW5faWEzMl92cHNocmRfdjJkaV9tYXNrICgoX192 MmRpKV9fQiwgKF9fdjJkaSkgX19DLAorCQkJX19ELCAoX192MmRpKSBfbW1f c2V0emVyb19zaTEyOCAoKSwgKF9fbW1hc2s4KV9fQSk7Cit9CisKK2V4dGVy biBfX2lubGluZSBfX20xMjhpCitfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxp bmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKK19t bV9zaHJkaV9lcGk2NCAoX19tMTI4aSBfX0EsIF9fbTEyOGkgX19CLCBpbnQg X19DKQoreworICByZXR1cm4gKF9fbTEyOGkpIF9fYnVpbHRpbl9pYTMyX3Zw c2hyZF92MmRpICgoX192MmRpKV9fQSwgKF9fdjJkaSkgX19CLCBfX0MpOwor fQorCitleHRlcm4gX19pbmxpbmUgX19tMjU2aQorX19hdHRyaWJ1dGVfXygo X19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNp YWxfXykpCiBfbW0yNTZfc2hsZGlfZXBpMTYgKF9fbTI1NmkgX19BLCBfX20y NTZpIF9fQiwgaW50IF9fQykKIHsKICAgcmV0dXJuIChfX20yNTZpKSBfX2J1 aWx0aW5faWEzMl92cHNobGRfdjE2aGkgKChfX3YxNmhpKV9fQSwgKF9fdjE2 aGkpIF9fQiwKQEAgLTM1MSw2ICs0OTYsNjYgQEAgX21tX3NobGRpX2VwaTY0 IChfX20xMjhpIF9fQSwgX19tMTI4aSBfX0IsIGludCBfX0MpCiAgIHJldHVy biAoX19tMTI4aSkgX19idWlsdGluX2lhMzJfdnBzaGxkX3YyZGkgKChfX3Yy ZGkpX19BLCAoX192MmRpKSBfX0IsIF9fQyk7CiB9CiAjZWxzZQorI2RlZmlu ZSBfbW0yNTZfc2hyZGlfZXBpMTYoQSwgQiwgQykgXAorICAoKF9fbTI1Nmkp IF9fYnVpbHRpbl9pYTMyX3Zwc2hyZF92MTZoaSAoKF9fdjE2aGkpKF9fbTI1 NmkpKEEpLCBcCisJKF9fdjE2aGkpKF9fbTI1NmkpKEIpLChpbnQpKEMpKQor I2RlZmluZSBfbW0yNTZfbWFza19zaHJkaV9lcGkxNihBLCBCLCBDLCBELCBF KSBcCisgICgoX19tMjU2aSkgX19idWlsdGluX2lhMzJfdnBzaHJkX3YxNmhp X21hc2sgKChfX3YxNmhpKShfX20yNTZpKShDKSwgXAorCShfX3YxNmhpKShf X20yNTZpKShEKSwgKGludCkoRSksIChfX3YxNmhpKShfX20yNTZpKShBKSwo X19tbWFzazE2KShCKSkKKyNkZWZpbmUgX21tMjU2X21hc2t6X3NocmRpX2Vw aTE2KEEsIEIsIEMsIEQpIFwKKyAgKChfX20yNTZpKSBfX2J1aWx0aW5faWEz Ml92cHNocmRfdjE2aGlfbWFzayAoKF9fdjE2aGkpKF9fbTI1NmkpKEIpLCBc CisJKF9fdjE2aGkpKF9fbTI1NmkpKEMpLChpbnQpKEQpLCBcCisJKF9fdjE2 aGkpKF9fbTI1NmkpX21tMjU2X3NldHplcm9fc2kyNTYgKCksIChfX21tYXNr MTYpKEEpKQorI2RlZmluZSBfbW0yNTZfc2hyZGlfZXBpMzIoQSwgQiwgQykg XAorICAoKF9fbTI1NmkpIF9fYnVpbHRpbl9pYTMyX3Zwc2hyZF92OHNpICgo X192OHNpKShfX20yNTZpKShBKSwgXAorCShfX3Y4c2kpKF9fbTI1NmkpKEIp LChpbnQpKEMpKQorI2RlZmluZSBfbW0yNTZfbWFza19zaHJkaV9lcGkzMihB LCBCLCBDLCBELCBFKSBcCisgICgoX19tMjU2aSkgX19idWlsdGluX2lhMzJf dnBzaHJkX3Y4c2lfbWFzayAoKF9fdjhzaSkoX19tMjU2aSkoQyksIFwKKwko X192OHNpKShfX20yNTZpKShEKSwgKGludCkoRSksIChfX3Y4c2kpKF9fbTI1 NmkpKEEpLChfX21tYXNrOCkoQikpCisjZGVmaW5lIF9tbTI1Nl9tYXNrel9z aHJkaV9lcGkzMihBLCBCLCBDLCBEKSBcCisgICgoX19tMjU2aSkgX19idWls dGluX2lhMzJfdnBzaHJkX3Y4c2lfbWFzayAoKF9fdjhzaSkoX19tMjU2aSko QiksIFwKKwkoX192OHNpKShfX20yNTZpKShDKSwoaW50KShEKSwgXAorCShf X3Y4c2kpKF9fbTI1NmkpX21tMjU2X3NldHplcm9fc2kyNTYgKCksIChfX21t YXNrOCkoQSkpCisjZGVmaW5lIF9tbTI1Nl9zaHJkaV9lcGk2NChBLCBCLCBD KSBcCisgICgoX19tMjU2aSkgX19idWlsdGluX2lhMzJfdnBzaHJkX3Y0ZGkg KChfX3Y0ZGkpKF9fbTI1NmkpKEEpLCBcCisJKF9fdjRkaSkoX19tMjU2aSko QiksKGludCkoQykpCisjZGVmaW5lIF9tbTI1Nl9tYXNrX3NocmRpX2VwaTY0 KEEsIEIsIEMsIEQsIEUpIFwKKyAgKChfX20yNTZpKSBfX2J1aWx0aW5faWEz Ml92cHNocmRfdjRkaV9tYXNrICgoX192NGRpKShfX20yNTZpKShDKSwgXAor CShfX3Y0ZGkpKF9fbTI1NmkpKEQpLCAoaW50KShFKSwgKF9fdjRkaSkoX19t MjU2aSkoQSksKF9fbW1hc2s4KShCKSkKKyNkZWZpbmUgX21tMjU2X21hc2t6 X3NocmRpX2VwaTY0KEEsIEIsIEMsIEQpIFwKKyAgKChfX20yNTZpKSBfX2J1 aWx0aW5faWEzMl92cHNocmRfdjRkaV9tYXNrICgoX192NGRpKShfX20yNTZp KShCKSwgXAorCShfX3Y0ZGkpKF9fbTI1NmkpKEMpLChpbnQpKEQpLCBcCisJ KF9fdjRkaSkoX19tMjU2aSlfbW0yNTZfc2V0emVyb19zaTI1NiAoKSwgKF9f bW1hc2s4KShBKSkKKyNkZWZpbmUgX21tX3NocmRpX2VwaTE2KEEsIEIsIEMp IFwKKyAgKChfX20xMjhpKSBfX2J1aWx0aW5faWEzMl92cHNocmRfdjhoaSAo KF9fdjhoaSkoX19tMTI4aSkoQSksIFwKKwkoX192OGhpKShfX20xMjhpKShC KSwoaW50KShDKSkKKyNkZWZpbmUgX21tX21hc2tfc2hyZGlfZXBpMTYoQSwg QiwgQywgRCwgRSkgXAorICAoKF9fbTEyOGkpIF9fYnVpbHRpbl9pYTMyX3Zw c2hyZF92OGhpX21hc2sgKChfX3Y4aGkpKF9fbTEyOGkpKEMpLCBcCisJKF9f djhoaSkoX19tMTI4aSkoRCksIChpbnQpKEUpLCAoX192OGhpKShfX20xMjhp KShBKSwoX19tbWFzazgpKEIpKQorI2RlZmluZSBfbW1fbWFza3pfc2hyZGlf ZXBpMTYoQSwgQiwgQywgRCkgXAorICAoKF9fbTEyOGkpIF9fYnVpbHRpbl9p YTMyX3Zwc2hyZF92OGhpX21hc2sgKChfX3Y4aGkpKF9fbTEyOGkpKEIpLCBc CisJKF9fdjhoaSkoX19tMTI4aSkoQyksKGludCkoRCksIFwKKwkoX192OGhp KShfX20xMjhpKV9tbV9zZXR6ZXJvX3NpMTI4ICgpLCAoX19tbWFzazgpKEEp KQorI2RlZmluZSBfbW1fc2hyZGlfZXBpMzIoQSwgQiwgQykgXAorICAoKF9f bTEyOGkpIF9fYnVpbHRpbl9pYTMyX3Zwc2hyZF92NHNpICgoX192NHNpKShf X20xMjhpKShBKSwgXAorCShfX3Y0c2kpKF9fbTEyOGkpKEIpLChpbnQpKEMp KQorI2RlZmluZSBfbW1fbWFza19zaHJkaV9lcGkzMihBLCBCLCBDLCBELCBF KSBcCisgICgoX19tMTI4aSkgX19idWlsdGluX2lhMzJfdnBzaHJkX3Y0c2lf bWFzayAoKF9fdjRzaSkoX19tMTI4aSkoQyksIFwKKwkoX192NHNpKShfX20x MjhpKShEKSwgKGludCkoRSksIChfX3Y0c2kpKF9fbTEyOGkpKEEpLChfX21t YXNrMTYpKEIpKQorI2RlZmluZSBfbW1fbWFza3pfc2hyZGlfZXBpMzIoQSwg QiwgQywgRCkgXAorICAoKF9fbTEyOGkpIF9fYnVpbHRpbl9pYTMyX3Zwc2hy ZF92NHNpX21hc2sgKChfX3Y0c2kpKF9fbTEyOGkpKEIpLCBcCisJKF9fdjRz aSkoX19tMTI4aSkoQyksKGludCkoRCksIFwKKwkoX192NHNpKShfX20xMjhp KV9tbV9zZXR6ZXJvX3NpMTI4ICgpLCAoX19tbWFzazgpKEEpKQorI2RlZmlu ZSBfbW1fc2hyZGlfZXBpNjQoQSwgQiwgQykgXAorICAoKF9fbTEyOGkpIF9f YnVpbHRpbl9pYTMyX3Zwc2hyZF92MmRpICgoX192MmRpKShfX20xMjhpKShB KSwgXAorCShfX3YyZGkpKF9fbTEyOGkpKEIpLChpbnQpKEMpKQorI2RlZmlu ZSBfbW1fbWFza19zaHJkaV9lcGk2NChBLCBCLCBDLCBELCBFKSBcCisgICgo X19tMTI4aSkgX19idWlsdGluX2lhMzJfdnBzaHJkX3YyZGlfbWFzayAoKF9f djJkaSkoX19tMTI4aSkoQyksIFwKKwkoX192MmRpKShfX20xMjhpKShEKSwg KGludCkoRSksIChfX3YyZGkpKF9fbTEyOGkpKEEpLChfX21tYXNrOCkoQikp CisjZGVmaW5lIF9tbV9tYXNrel9zaHJkaV9lcGk2NChBLCBCLCBDLCBEKSBc CisgICgoX19tMTI4aSkgX19idWlsdGluX2lhMzJfdnBzaHJkX3YyZGlfbWFz ayAoKF9fdjJkaSkoX19tMTI4aSkoQiksIFwKKwkoX192MmRpKShfX20xMjhp KShDKSwoaW50KShEKSwgXAorCShfX3YyZGkpKF9fbTEyOGkpX21tX3NldHpl cm9fc2kxMjggKCksIChfX21tYXNrOCkoQSkpCiAjZGVmaW5lIF9tbTI1Nl9z aGxkaV9lcGkxNihBLCBCLCBDKSBcCiAgICgoX19tMjU2aSkgX19idWlsdGlu X2lhMzJfdnBzaGxkX3YxNmhpICgoX192MTZoaSkoX19tMjU2aSkoQSksIFwK IAkJCQkJCShfX3YxNmhpKShfX20yNTZpKShCKSwoaW50KShDKSkKZGlmZiAt LWdpdCBhL2djYy9jb25maWcvaTM4Ni9pMzg2LWJ1aWx0aW4uZGVmIGIvZ2Nj L2NvbmZpZy9pMzg2L2kzODYtYnVpbHRpbi5kZWYKaW5kZXggNDhkZGE1NC4u NzVjY2JhOCAxMDA2NDQKLS0tIGEvZ2NjL2NvbmZpZy9pMzg2L2kzODYtYnVp bHRpbi5kZWYKKysrIGIvZ2NjL2NvbmZpZy9pMzg2L2kzODYtYnVpbHRpbi5k ZWYKQEAgLTI2MDgsNiArMjYwOCwyNCBAQCBCREVTQyAoT1BUSU9OX01BU0tf SVNBX0FWWDUxMlZCTUkyIHwgT1BUSU9OX01BU0tfSVNBX0FWWDUxMlZMLCBD T0RFX0ZPUl9leHBhbmR2MQogQkRFU0MgKE9QVElPTl9NQVNLX0lTQV9BVlg1 MTJWQk1JMiB8IE9QVElPTl9NQVNLX0lTQV9BVlg1MTJWTCwgQ09ERV9GT1Jf ZXhwYW5kdjE2aGlfbWFza3osICJfX2J1aWx0aW5faWEzMl9leHBhbmRoaTI1 Nl9tYXNreiIsIElYODZfQlVJTFRJTl9QRVhQQU5EVzI1NlosIFVOS05PV04s IChpbnQpIFYxNkhJX0ZUWVBFX1YxNkhJX1YxNkhJX1VISSkKIEJERVNDIChP UFRJT05fTUFTS19JU0FfQVZYNTEyVkJNSTIgfCBPUFRJT05fTUFTS19JU0Ff QVZYNTEyVkwsIENPREVfRk9SX2V4cGFuZHY4aGlfbWFzaywgIl9fYnVpbHRp bl9pYTMyX2V4cGFuZGhpMTI4X21hc2siLCBJWDg2X0JVSUxUSU5fUEVYUEFO RFcxMjgsIFVOS05PV04sIChpbnQpIFY4SElfRlRZUEVfVjhISV9WOEhJX1VR SSkKIEJERVNDIChPUFRJT05fTUFTS19JU0FfQVZYNTEyVkJNSTIgfCBPUFRJ T05fTUFTS19JU0FfQVZYNTEyVkwsIENPREVfRk9SX2V4cGFuZHY4aGlfbWFz a3osICJfX2J1aWx0aW5faWEzMl9leHBhbmRoaTEyOF9tYXNreiIsIElYODZf QlVJTFRJTl9QRVhQQU5EVzEyOFosIFVOS05PV04sIChpbnQpIFY4SElfRlRZ UEVfVjhISV9WOEhJX1VRSSkKK0JERVNDIChPUFRJT05fTUFTS19JU0FfQVZY NTEyVkJNSTIsIENPREVfRk9SX3Zwc2hyZF92MzJoaSwgIl9fYnVpbHRpbl9p YTMyX3Zwc2hyZF92MzJoaSIsIElYODZfQlVJTFRJTl9WUFNIUkRWMzJISSwg VU5LTk9XTiwgKGludCkgVjMySElfRlRZUEVfVjMySElfVjMySElfSU5UKQor QkRFU0MgKE9QVElPTl9NQVNLX0lTQV9BVlg1MTJWQk1JMiwgQ09ERV9GT1Jf dnBzaHJkX3YzMmhpX21hc2ssICJfX2J1aWx0aW5faWEzMl92cHNocmRfdjMy aGlfbWFzayIsIElYODZfQlVJTFRJTl9WUFNIUkRWMzJISV9NQVNLLCBVTktO T1dOLCAoaW50KSBWMzJISV9GVFlQRV9WMzJISV9WMzJISV9JTlRfVjMySElf SU5UKQorQkRFU0MgKE9QVElPTl9NQVNLX0lTQV9BVlg1MTJWQk1JMiwgQ09E RV9GT1JfdnBzaHJkX3YxNmhpLCAiX19idWlsdGluX2lhMzJfdnBzaHJkX3Yx NmhpIiwgSVg4Nl9CVUlMVElOX1ZQU0hSRFYxNkhJLCBVTktOT1dOLCAoaW50 KSBWMTZISV9GVFlQRV9WMTZISV9WMTZISV9JTlQpCitCREVTQyAoT1BUSU9O X01BU0tfSVNBX0FWWDUxMlZCTUkyLCBDT0RFX0ZPUl92cHNocmRfdjE2aGlf bWFzaywgIl9fYnVpbHRpbl9pYTMyX3Zwc2hyZF92MTZoaV9tYXNrIiwgSVg4 Nl9CVUlMVElOX1ZQU0hSRFYxNkhJX01BU0ssIFVOS05PV04sIChpbnQpIFYx NkhJX0ZUWVBFX1YxNkhJX1YxNkhJX0lOVF9WMTZISV9JTlQpCitCREVTQyAo T1BUSU9OX01BU0tfSVNBX0FWWDUxMlZCTUkyLCBDT0RFX0ZPUl92cHNocmRf djhoaSwgIl9fYnVpbHRpbl9pYTMyX3Zwc2hyZF92OGhpIiwgSVg4Nl9CVUlM VElOX1ZQU0hSRFY4SEksIFVOS05PV04sIChpbnQpIFY4SElfRlRZUEVfVjhI SV9WOEhJX0lOVCkKK0JERVNDIChPUFRJT05fTUFTS19JU0FfQVZYNTEyVkJN STIsIENPREVfRk9SX3Zwc2hyZF92OGhpX21hc2ssICJfX2J1aWx0aW5faWEz Ml92cHNocmRfdjhoaV9tYXNrIiwgSVg4Nl9CVUlMVElOX1ZQU0hSRFY4SElf TUFTSywgVU5LTk9XTiwgKGludCkgVjhISV9GVFlQRV9WOEhJX1Y4SElfSU5U X1Y4SElfSU5UKQorQkRFU0MgKE9QVElPTl9NQVNLX0lTQV9BVlg1MTJWQk1J MiwgQ09ERV9GT1JfdnBzaHJkX3YxNnNpLCAiX19idWlsdGluX2lhMzJfdnBz aHJkX3YxNnNpIiwgSVg4Nl9CVUlMVElOX1ZQU0hSRFYxNlNJLCBVTktOT1dO LCAoaW50KSBWMTZTSV9GVFlQRV9WMTZTSV9WMTZTSV9JTlQpCitCREVTQyAo T1BUSU9OX01BU0tfSVNBX0FWWDUxMlZCTUkyLCBDT0RFX0ZPUl92cHNocmRf djE2c2lfbWFzaywgIl9fYnVpbHRpbl9pYTMyX3Zwc2hyZF92MTZzaV9tYXNr IiwgSVg4Nl9CVUlMVElOX1ZQU0hSRFYxNlNJX01BU0ssIFVOS05PV04sIChp bnQpIFYxNlNJX0ZUWVBFX1YxNlNJX1YxNlNJX0lOVF9WMTZTSV9JTlQpCitC REVTQyAoT1BUSU9OX01BU0tfSVNBX0FWWDUxMlZCTUkyLCBDT0RFX0ZPUl92 cHNocmRfdjhzaSwgIl9fYnVpbHRpbl9pYTMyX3Zwc2hyZF92OHNpIiwgSVg4 Nl9CVUlMVElOX1ZQU0hSRFY4U0ksIFVOS05PV04sIChpbnQpIFY4U0lfRlRZ UEVfVjhTSV9WOFNJX0lOVCkKK0JERVNDIChPUFRJT05fTUFTS19JU0FfQVZY NTEyVkJNSTIsIENPREVfRk9SX3Zwc2hyZF92OHNpX21hc2ssICJfX2J1aWx0 aW5faWEzMl92cHNocmRfdjhzaV9tYXNrIiwgSVg4Nl9CVUlMVElOX1ZQU0hS RFY4U0lfTUFTSywgVU5LTk9XTiwgKGludCkgVjhTSV9GVFlQRV9WOFNJX1Y4 U0lfSU5UX1Y4U0lfSU5UKQorQkRFU0MgKE9QVElPTl9NQVNLX0lTQV9BVlg1 MTJWQk1JMiwgQ09ERV9GT1JfdnBzaHJkX3Y0c2ksICJfX2J1aWx0aW5faWEz Ml92cHNocmRfdjRzaSIsIElYODZfQlVJTFRJTl9WUFNIUkRWNFNJLCBVTktO T1dOLCAoaW50KSBWNFNJX0ZUWVBFX1Y0U0lfVjRTSV9JTlQpCitCREVTQyAo T1BUSU9OX01BU0tfSVNBX0FWWDUxMlZCTUkyLCBDT0RFX0ZPUl92cHNocmRf djRzaV9tYXNrLCAiX19idWlsdGluX2lhMzJfdnBzaHJkX3Y0c2lfbWFzayIs IElYODZfQlVJTFRJTl9WUFNIUkRWNFNJX01BU0ssIFVOS05PV04sIChpbnQp IFY0U0lfRlRZUEVfVjRTSV9WNFNJX0lOVF9WNFNJX0lOVCkKK0JERVNDIChP UFRJT05fTUFTS19JU0FfQVZYNTEyVkJNSTIsIENPREVfRk9SX3Zwc2hyZF92 OGRpLCAiX19idWlsdGluX2lhMzJfdnBzaHJkX3Y4ZGkiLCBJWDg2X0JVSUxU SU5fVlBTSFJEVjhESSwgVU5LTk9XTiwgKGludCkgVjhESV9GVFlQRV9WOERJ X1Y4RElfSU5UKQorQkRFU0MgKE9QVElPTl9NQVNLX0lTQV9BVlg1MTJWQk1J MiwgQ09ERV9GT1JfdnBzaHJkX3Y4ZGlfbWFzaywgIl9fYnVpbHRpbl9pYTMy X3Zwc2hyZF92OGRpX21hc2siLCBJWDg2X0JVSUxUSU5fVlBTSFJEVjhESV9N QVNLLCBVTktOT1dOLCAoaW50KSBWOERJX0ZUWVBFX1Y4RElfVjhESV9JTlRf VjhESV9JTlQpCitCREVTQyAoT1BUSU9OX01BU0tfSVNBX0FWWDUxMlZCTUky LCBDT0RFX0ZPUl92cHNocmRfdjRkaSwgIl9fYnVpbHRpbl9pYTMyX3Zwc2hy ZF92NGRpIiwgSVg4Nl9CVUlMVElOX1ZQU0hSRFY0REksIFVOS05PV04sIChp bnQpIFY0RElfRlRZUEVfVjRESV9WNERJX0lOVCkKK0JERVNDIChPUFRJT05f TUFTS19JU0FfQVZYNTEyVkJNSTIsIENPREVfRk9SX3Zwc2hyZF92NGRpX21h c2ssICJfX2J1aWx0aW5faWEzMl92cHNocmRfdjRkaV9tYXNrIiwgSVg4Nl9C VUlMVElOX1ZQU0hSRFY0RElfTUFTSywgVU5LTk9XTiwgKGludCkgVjRESV9G VFlQRV9WNERJX1Y0RElfSU5UX1Y0RElfSU5UKQorQkRFU0MgKE9QVElPTl9N QVNLX0lTQV9BVlg1MTJWQk1JMiwgQ09ERV9GT1JfdnBzaHJkX3YyZGksICJf X2J1aWx0aW5faWEzMl92cHNocmRfdjJkaSIsIElYODZfQlVJTFRJTl9WUFNI UkRWMkRJLCBVTktOT1dOLCAoaW50KSBWMkRJX0ZUWVBFX1YyRElfVjJESV9J TlQpCitCREVTQyAoT1BUSU9OX01BU0tfSVNBX0FWWDUxMlZCTUkyLCBDT0RF X0ZPUl92cHNocmRfdjJkaV9tYXNrLCAiX19idWlsdGluX2lhMzJfdnBzaHJk X3YyZGlfbWFzayIsIElYODZfQlVJTFRJTl9WUFNIUkRWMkRJX01BU0ssIFVO S05PV04sIChpbnQpIFYyRElfRlRZUEVfVjJESV9WMkRJX0lOVF9WMkRJX0lO VCkKIEJERVNDIChPUFRJT05fTUFTS19JU0FfQVZYNTEyVkJNSTIsIENPREVf Rk9SX3Zwc2hsZF92MzJoaSwgIl9fYnVpbHRpbl9pYTMyX3Zwc2hsZF92MzJo aSIsIElYODZfQlVJTFRJTl9WUFNITERWMzJISSwgVU5LTk9XTiwgKGludCkg VjMySElfRlRZUEVfVjMySElfVjMySElfSU5UKQogQkRFU0MgKE9QVElPTl9N QVNLX0lTQV9BVlg1MTJWQk1JMiwgQ09ERV9GT1JfdnBzaGxkX3YzMmhpX21h c2ssICJfX2J1aWx0aW5faWEzMl92cHNobGRfdjMyaGlfbWFzayIsIElYODZf QlVJTFRJTl9WUFNITERWMzJISV9NQVNLLCBVTktOT1dOLCAoaW50KSBWMzJI SV9GVFlQRV9WMzJISV9WMzJISV9JTlRfVjMySElfSU5UKQogQkRFU0MgKE9Q VElPTl9NQVNLX0lTQV9BVlg1MTJWQk1JMiwgQ09ERV9GT1JfdnBzaGxkX3Yx NmhpLCAiX19idWlsdGluX2lhMzJfdnBzaGxkX3YxNmhpIiwgSVg4Nl9CVUlM VElOX1ZQU0hMRFYxNkhJLCBVTktOT1dOLCAoaW50KSBWMTZISV9GVFlQRV9W MTZISV9WMTZISV9JTlQpCmRpZmYgLS1naXQgYS9nY2MvY29uZmlnL2kzODYv c3NlLm1kIGIvZ2NjL2NvbmZpZy9pMzg2L3NzZS5tZAppbmRleCA1ZWVkZmFm Li5hMzBmZDRlIDEwMDY0NAotLS0gYS9nY2MvY29uZmlnL2kzODYvc3NlLm1k CisrKyBiL2djYy9jb25maWcvaTM4Ni9zc2UubWQKQEAgLTE2MCw2ICsxNjAs NyBAQAogCiAgIDs7IEZvciBBVlg1MTJWQk1JMiBzdXBwb3J0CiAgIFVOU1BF Q19WUFNITEQKKyAgVU5TUEVDX1ZQU0hSRAogXSkKIAogKGRlZmluZV9jX2Vu dW0gInVuc3BlY3YiIFsKQEAgLTIwMjI4LDYgKzIwMjI5LDE3IEBACiAgICJU QVJHRVRfU1NFICYmIFRBUkdFVF82NEJJVCIKICAgImptcFx0JVAxIikKIAor KGRlZmluZV9pbnNuICJ2cHNocmRfPG1vZGU+PG1hc2tfbmFtZT4iCisgIFso c2V0IChtYXRjaF9vcGVyYW5kOlZJMjQ4X1ZMQlcgMCAicmVnaXN0ZXJfb3Bl cmFuZCIgIj12IikKKwkodW5zcGVjOlZJMjQ4X1ZMQlcKKwkgIFsobWF0Y2hf b3BlcmFuZDpWSTI0OF9WTEJXIDEgInJlZ2lzdGVyX29wZXJhbmQiICJ2IikK KwkobWF0Y2hfb3BlcmFuZDpWSTI0OF9WTEJXIDIgIm5vbmltbWVkaWF0ZV9v cGVyYW5kIiAidm0iKQorCShtYXRjaF9vcGVyYW5kOlNJIDMgImNvbnN0XzBf dG9fMjU1X29wZXJhbmQiICJuIikKK10gVU5TUEVDX1ZQU0hSRCkpXQorICAi VEFSR0VUX0FWWDUxMlZCTUkyIgorICAidnBzaHJkPHNzZW1vZGVzdWZmaXg+ XHR7JTMsICUyLCAlMSwgJTA8bWFza19vcGVyYW5kND58JTA8bWFza19vcGVy YW5kND4sICUxLCAlMiwgJTMgfSIKKyAgIFsoc2V0X2F0dHIgKCJwcmVmaXgi KSAoImV2ZXgiKSldKQorCiAoZGVmaW5lX2luc24gInZwc2hsZF88bW9kZT48 bWFza19uYW1lPiIKICAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6VkkyNDhfVkxC VyAwICJyZWdpc3Rlcl9vcGVyYW5kIiAiPXYiKQogCSh1bnNwZWM6VkkyNDhf VkxCVwpkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2kz ODYvYXZ4LTEuYyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9pMzg2L2F2 eC0xLmMKaW5kZXggNjI2NzRkMS4uZGQwZDdjNiAxMDA2NDQKLS0tIGEvZ2Nj L3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2kzODYvYXZ4LTEuYworKysgYi9nY2Mv dGVzdHN1aXRlL2djYy50YXJnZXQvaTM4Ni9hdngtMS5jCkBAIC02MDQsNiAr NjA0LDI0IEBACiAjZGVmaW5lIF9fYnVpbHRpbl9pYTMyX2V4dHJhY3RmNjR4 Ml8yNTZfbWFzayhBLCBFLCBDLCBEKSBfX2J1aWx0aW5faWEzMl9leHRyYWN0 ZjY0eDJfMjU2X21hc2soQSwgMSwgQywgRCkKIAogLyogYXZ4NTEydmJtaTJp bnRyaW4uaCAqLworI2RlZmluZSBfX2J1aWx0aW5faWEzMl92cHNocmRfdjMy aGkoQSwgQiwgQykgX19idWlsdGluX2lhMzJfdnBzaHJkX3YzMmhpKEEsIEIs IDEpCisjZGVmaW5lIF9fYnVpbHRpbl9pYTMyX3Zwc2hyZF92MzJoaV9tYXNr KEEsIEIsIEMsIEQsIEUpICBfX2J1aWx0aW5faWEzMl92cHNocmRfdjMyaGlf bWFzayhBLCBCLCAxLCBELCBFKQorI2RlZmluZSBfX2J1aWx0aW5faWEzMl92 cHNocmRfdjE2c2koQSwgQiwgQykgX19idWlsdGluX2lhMzJfdnBzaHJkX3Yx NnNpKEEsIEIsIDEpCisjZGVmaW5lIF9fYnVpbHRpbl9pYTMyX3Zwc2hyZF92 MTZzaV9tYXNrKEEsIEIsIEMsIEQsIEUpICBfX2J1aWx0aW5faWEzMl92cHNo cmRfdjE2c2lfbWFzayhBLCBCLCAxLCBELCBFKQorI2RlZmluZSBfX2J1aWx0 aW5faWEzMl92cHNocmRfdjhkaShBLCBCLCBDKSBfX2J1aWx0aW5faWEzMl92 cHNocmRfdjhkaShBLCBCLCAxKQorI2RlZmluZSBfX2J1aWx0aW5faWEzMl92 cHNocmRfdjhkaV9tYXNrKEEsIEIsIEMsIEQsIEUpICBfX2J1aWx0aW5faWEz Ml92cHNocmRfdjhkaV9tYXNrKEEsIEIsIDEsIEQsIEUpCisjZGVmaW5lIF9f YnVpbHRpbl9pYTMyX3Zwc2hyZF92MTZoaShBLCBCLCBDKSBfX2J1aWx0aW5f aWEzMl92cHNocmRfdjE2aGkoQSwgQiwgMSkKKyNkZWZpbmUgX19idWlsdGlu X2lhMzJfdnBzaHJkX3YxNmhpX21hc2soQSwgQiwgQywgRCwgRSkgIF9fYnVp bHRpbl9pYTMyX3Zwc2hyZF92MTZoaV9tYXNrKEEsIEIsIDEsIEQsIEUpCisj ZGVmaW5lIF9fYnVpbHRpbl9pYTMyX3Zwc2hyZF92OHNpKEEsIEIsIEMpIF9f YnVpbHRpbl9pYTMyX3Zwc2hyZF92OHNpKEEsIEIsIDEpCisjZGVmaW5lIF9f YnVpbHRpbl9pYTMyX3Zwc2hyZF92OHNpX21hc2soQSwgQiwgQywgRCwgRSkg IF9fYnVpbHRpbl9pYTMyX3Zwc2hyZF92OHNpX21hc2soQSwgQiwgMSwgRCwg RSkKKyNkZWZpbmUgX19idWlsdGluX2lhMzJfdnBzaHJkX3Y0ZGkoQSwgQiwg QykgX19idWlsdGluX2lhMzJfdnBzaHJkX3Y0ZGkoQSwgQiwgMSkKKyNkZWZp bmUgX19idWlsdGluX2lhMzJfdnBzaHJkX3Y0ZGlfbWFzayhBLCBCLCBDLCBE LCBFKSAgX19idWlsdGluX2lhMzJfdnBzaHJkX3Y0ZGlfbWFzayhBLCBCLCAx LCBELCBFKQorI2RlZmluZSBfX2J1aWx0aW5faWEzMl92cHNocmRfdjhoaShB LCBCLCBDKSBfX2J1aWx0aW5faWEzMl92cHNocmRfdjhoaShBLCBCLCAxKQor I2RlZmluZSBfX2J1aWx0aW5faWEzMl92cHNocmRfdjhoaV9tYXNrKEEsIEIs IEMsIEQsIEUpICBfX2J1aWx0aW5faWEzMl92cHNocmRfdjhoaV9tYXNrKEEs IEIsIDEsIEQsIEUpCisjZGVmaW5lIF9fYnVpbHRpbl9pYTMyX3Zwc2hyZF92 NHNpKEEsIEIsIEMpIF9fYnVpbHRpbl9pYTMyX3Zwc2hyZF92NHNpKEEsIEIs IDEpCisjZGVmaW5lIF9fYnVpbHRpbl9pYTMyX3Zwc2hyZF92NHNpX21hc2so QSwgQiwgQywgRCwgRSkgIF9fYnVpbHRpbl9pYTMyX3Zwc2hyZF92NHNpX21h c2soQSwgQiwgMSwgRCwgRSkKKyNkZWZpbmUgX19idWlsdGluX2lhMzJfdnBz aHJkX3YyZGkoQSwgQiwgQykgX19idWlsdGluX2lhMzJfdnBzaHJkX3YyZGko QSwgQiwgMSkKKyNkZWZpbmUgX19idWlsdGluX2lhMzJfdnBzaHJkX3YyZGlf bWFzayhBLCBCLCBDLCBELCBFKSAgX19idWlsdGluX2lhMzJfdnBzaHJkX3Yy ZGlfbWFzayhBLCBCLCAxLCBELCBFKQogI2RlZmluZSBfX2J1aWx0aW5faWEz Ml92cHNobGRfdjMyaGkoQSwgQiwgQykgX19idWlsdGluX2lhMzJfdnBzaGxk X3YzMmhpKEEsIEIsIDEpCiAjZGVmaW5lIF9fYnVpbHRpbl9pYTMyX3Zwc2hs ZF92MzJoaV9tYXNrKEEsIEIsIEMsIEQsIEUpICBfX2J1aWx0aW5faWEzMl92 cHNobGRfdjMyaGlfbWFzayhBLCBCLCAxLCBELCBFKQogI2RlZmluZSBfX2J1 aWx0aW5faWEzMl92cHNobGRfdjE2c2koQSwgQiwgQykgX19idWlsdGluX2lh MzJfdnBzaGxkX3YxNnNpKEEsIEIsIDEpCmRpZmYgLS1naXQgYS9nY2MvdGVz dHN1aXRlL2djYy50YXJnZXQvaTM4Ni9hdng1MTJmLXZwc2hyZGQtMi5jIGIv Z2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2kzODYvYXZ4NTEyZi12cHNocmRk LTIuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41NGRk MzY5Ci0tLSAvZGV2L251bGwKKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFy Z2V0L2kzODYvYXZ4NTEyZi12cHNocmRkLTIuYwpAQCAtMCwwICsxLDYyIEBA CisvKiB7IGRnLWRvIHJ1biB9ICovCisvKiB7IGRnLW9wdGlvbnMgIi1PMiAt bWF2eDUxMmYgLW1hdng1MTJ2Ym1pMiAtbWF2eDUxMmJ3IiB9ICovCisvKiB7 IGRnLXJlcXVpcmUtZWZmZWN0aXZlLXRhcmdldCBhdng1MTJmIH0gKi8KKy8q IHsgZGctcmVxdWlyZS1lZmZlY3RpdmUtdGFyZ2V0IGF2eDUxMnZibWkyIH0g Ki8KKworI2RlZmluZSBBVlg1MTJGCisKKyNkZWZpbmUgQVZYNTEyVkJNSTIK KyNpbmNsdWRlICJhdng1MTJmLWhlbHBlci5oIgorCisjZGVmaW5lIFNJWkUg KEFWWDUxMkZfTEVOIC8gMzIpCisKKyNpbmNsdWRlICJhdng1MTJmLW1hc2st dHlwZS5oIgorCitzdGF0aWMgdm9pZAorQ0FMQyAoaW50ICpyLCBpbnQgKmRz dCwgaW50ICpzMSwgaW50ICpzMiwgaW50IGltbSkKK3sKKyAgaW50IGk7Cisg IGZvciAoaSA9IDA7IGkgPCBTSVpFOyBpKyspCisgICAgeworICAgICAgcltp XSA9IChzMVtpXSA+PiAoaW1tICYgMzEpKSB8IChzMltpXSA8PCAoMzIgLSAo aW1tICYgMzEpKSk7CisgICAgfQorfQorCit2b2lkCitURVNUICh2b2lkKQor eworICBpbnQgaTsKKyAgVU5JT05fVFlQRSAoQVZYNTEyRl9MRU4sIGlfZCkg cmVzMSwgcmVzMiwgcmVzMywgc3JjMSwgc3JjMjsKKyAgTUFTS19UWVBFIG1h c2sgPSBNQVNLX1ZBTFVFOworICBpbnQgcmVzX3JlZltTSVpFXTsKKworICBm b3IgKGkgPSAwOyBpIDwgU0laRTsgaSsrKQorICAgIHsKKyAgICAgIHNyYzEu YVtpXSA9IDEgKyBpOworICAgICAgc3JjMi5hW2ldID0gMiArIDIqaTsKKyAg ICB9CisKKyAgZm9yIChpID0gMDsgaSA8IFNJWkU7IGkrKykKKyAgICB7Cisg ICAgICByZXMxLmFbaV0gPSBERUZBVUxUX1ZBTFVFOworICAgICAgcmVzMi5h W2ldID0gREVGQVVMVF9WQUxVRTsKKyAgICAgIHJlczMuYVtpXSA9IERFRkFV TFRfVkFMVUU7CisgICAgfQorCisgIENBTEMgKHJlc19yZWYsIHJlczEuYSwg c3JjMS5hLCBzcmMyLmEsIERFRkFVTFRfVkFMVUUpOworCisgIHJlczEueCA9 IElOVFJJTlNJQyAoX3NocmRpX2VwaTMyKSAoc3JjMS54LCBzcmMyLngsIERF RkFVTFRfVkFMVUUpOworICByZXMyLnggPSBJTlRSSU5TSUMgKF9tYXNrX3No cmRpX2VwaTMyKSAocmVzMi54LCBtYXNrLCBzcmMxLngsIHNyYzIueCwgREVG QVVMVF9WQUxVRSk7CisgIHJlczMueCA9IElOVFJJTlNJQyAoX21hc2t6X3No cmRpX2VwaTMyKSAobWFzaywgc3JjMS54LCBzcmMyLngsIERFRkFVTFRfVkFM VUUpOworCisgIGlmIChVTklPTl9DSEVDSyAoQVZYNTEyRl9MRU4sIGlfZCkg KHJlczEsIHJlc19yZWYpKQorICAgIGFib3J0ICgpOworCisgIE1BU0tfTUVS R0UgKGlfZCkgKHJlc19yZWYsIG1hc2ssIFNJWkUpOworICBpZiAoVU5JT05f Q0hFQ0sgKEFWWDUxMkZfTEVOLCBpX2QpIChyZXMyLCByZXNfcmVmKSkKKyAg ICBhYm9ydCAoKTsKKworICBNQVNLX1pFUk8gKGlfZCkgKHJlc19yZWYsIG1h c2ssIFNJWkUpOworICBpZiAoVU5JT05fQ0hFQ0sgKEFWWDUxMkZfTEVOLCBp X2QpIChyZXMzLCByZXNfcmVmKSkKKyAgICBhYm9ydCAoKTsKK30KZGlmZiAt LWdpdCBhL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9pMzg2L2F2eDUxMmYt dnBzaHJkcS0yLmMgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvaTM4Ni9h dng1MTJmLXZwc2hyZHEtMi5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4 IDAwMDAwMDAuLjQ5OTdjNzAKLS0tIC9kZXYvbnVsbAorKysgYi9nY2MvdGVz dHN1aXRlL2djYy50YXJnZXQvaTM4Ni9hdng1MTJmLXZwc2hyZHEtMi5jCkBA IC0wLDAgKzEsNjIgQEAKKy8qIHsgZGctZG8gcnVuIH0gKi8KKy8qIHsgZGct b3B0aW9ucyAiLU8yIC1tYXZ4NTEyZiAtbWF2eDUxMnZibWkyIC1tYXZ4NTEy YnciIH0gKi8KKy8qIHsgZGctcmVxdWlyZS1lZmZlY3RpdmUtdGFyZ2V0IGF2 eDUxMmYgfSAqLworLyogeyBkZy1yZXF1aXJlLWVmZmVjdGl2ZS10YXJnZXQg YXZ4NTEydmJtaTIgfSAqLworCisjZGVmaW5lIEFWWDUxMkYKKworI2RlZmlu ZSBBVlg1MTJWQk1JMgorI2luY2x1ZGUgImF2eDUxMmYtaGVscGVyLmgiCisK KyNkZWZpbmUgU0laRSAoQVZYNTEyRl9MRU4gLyA2NCkKKworI2luY2x1ZGUg ImF2eDUxMmYtbWFzay10eXBlLmgiCisKK3N0YXRpYyB2b2lkCitDQUxDIChs b25nIGxvbmcgKnIsIGxvbmcgbG9uZyAqZHN0LCBsb25nIGxvbmcgKnMxLCBs b25nIGxvbmcgKnMyLCBpbnQgaW1tKQoreworICBpbnQgaTsKKyAgZm9yIChp ID0gMDsgaSA8IFNJWkU7IGkrKykKKyAgICB7CisgICAgICByW2ldID0gKHMx W2ldID4+IChpbW0gJiA2MykpIHwgKHMyW2ldIDw8ICg2NCAtIChpbW0gJiA2 MykpKTsKKyAgICB9Cit9CisKK3ZvaWQKK1RFU1QgKHZvaWQpCit7CisgIGlu dCBpOworICBVTklPTl9UWVBFIChBVlg1MTJGX0xFTiwgaV9xKSByZXMxLCBy ZXMyLCByZXMzLCBzcmMxLCBzcmMyOworICBNQVNLX1RZUEUgbWFzayA9IE1B U0tfVkFMVUU7CisgIGxvbmcgbG9uZyByZXNfcmVmW1NJWkVdOworCisgIGZv ciAoaSA9IDA7IGkgPCBTSVpFOyBpKyspCisgICAgeworICAgICAgc3JjMS5h W2ldID0gMSArIGk7CisgICAgICBzcmMyLmFbaV0gPSAyICsgMippOworICAg IH0KKworICBmb3IgKGkgPSAwOyBpIDwgU0laRTsgaSsrKQorICAgIHsKKyAg ICAgIHJlczEuYVtpXSA9IERFRkFVTFRfVkFMVUU7CisgICAgICByZXMyLmFb aV0gPSBERUZBVUxUX1ZBTFVFOworICAgICAgcmVzMy5hW2ldID0gREVGQVVM VF9WQUxVRTsKKyAgICB9CisKKyAgQ0FMQyAocmVzX3JlZiwgcmVzMS5hLCBz cmMxLmEsIHNyYzIuYSwgREVGQVVMVF9WQUxVRSk7CisKKyAgcmVzMS54ID0g SU5UUklOU0lDIChfc2hyZGlfZXBpNjQpIChzcmMxLngsIHNyYzIueCwgREVG QVVMVF9WQUxVRSk7CisgIHJlczIueCA9IElOVFJJTlNJQyAoX21hc2tfc2hy ZGlfZXBpNjQpIChyZXMyLngsIG1hc2ssIHNyYzEueCwgc3JjMi54LCBERUZB VUxUX1ZBTFVFKTsKKyAgcmVzMy54ID0gSU5UUklOU0lDIChfbWFza3pfc2hy ZGlfZXBpNjQpIChtYXNrLCBzcmMxLngsIHNyYzIueCwgREVGQVVMVF9WQUxV RSk7CisKKyAgaWYgKFVOSU9OX0NIRUNLIChBVlg1MTJGX0xFTiwgaV9xKSAo cmVzMSwgcmVzX3JlZikpCisgICAgYWJvcnQgKCk7CisKKyAgTUFTS19NRVJH RSAoaV9xKSAocmVzX3JlZiwgbWFzaywgU0laRSk7CisgIGlmIChVTklPTl9D SEVDSyAoQVZYNTEyRl9MRU4sIGlfcSkgKHJlczIsIHJlc19yZWYpKQorICAg IGFib3J0ICgpOworCisgIE1BU0tfWkVSTyAoaV9xKSAocmVzX3JlZiwgbWFz aywgU0laRSk7CisgIGlmIChVTklPTl9DSEVDSyAoQVZYNTEyRl9MRU4sIGlf cSkgKHJlczMsIHJlc19yZWYpKQorICAgIGFib3J0ICgpOworfQpkaWZmIC0t Z2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2kzODYvYXZ4NTEydmwt dnBzaHJkLTEuYyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9pMzg2L2F2 eDUxMnZsLXZwc2hyZC0xLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg MDAwMDAwMC4uOTIzYjk1NAotLS0gL2Rldi9udWxsCisrKyBiL2djYy90ZXN0 c3VpdGUvZ2NjLnRhcmdldC9pMzg2L2F2eDUxMnZsLXZwc2hyZC0xLmMKQEAg LTAsMCArMSw1NCBAQAorLyogeyBkZy1kbyBjb21waWxlIH0gKi8KKy8qIHsg ZGctb3B0aW9ucyAiLW1hdng1MTJ2bCAtbWF2eDUxMnZibWkyIC1PMiIgfSAq LworLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzICJ2cHNo cmR3XFsgXFx0XF0rXFteXHtcblxdKlxcXCQzXFteXG5ccl0qJXltbVxbMC05 XF0rXFteXG5ccl0qJXltbVxbMC05XF0rXFteXG5ccl0qJXltbVxbMC05XF0r KD86XG58XFsgXFx0XF0rIykiIDEgfSB9ICovCisvKiB7IGRnLWZpbmFsIHsg c2Nhbi1hc3NlbWJsZXItdGltZXMgInZwc2hyZHdcWyBcXHRcXStcW15ce1xu XF0qXFxcJDNcW15cblxyXSoleW1tXFswLTlcXStcW15cXG5cXHJdKiV5bW1c WzAtOVxdK1xbXlxcblxcclxdKiV5bW1cWzAtOVxdK1x7JWtcWzEtN1xdXH0o PzpcbnxcWyBcXHRcXSsjKSIgMSB9IH0gKi8KKy8qIHsgZGctZmluYWwgeyBz Y2FuLWFzc2VtYmxlci10aW1lcyAidnBzaHJkd1xbIFxcdFxdK1xbXlx7XG5c XSpcXFwkM1xbXlxuXHJdKiV5bW1cWzAtOVxdK1xbXlxcblxccl0qJXltbVxb MC05XF0rXFteXFxuXFxyXF0qJXltbVxbMC05XF0rXHsla1xbMS03XF1cfVx7 elx9KD86XG58XFsgXFx0XF0rIykiIDEgfSB9ICovCisvKiB7IGRnLWZpbmFs IHsgc2Nhbi1hc3NlbWJsZXItdGltZXMgInZwc2hyZGRcWyBcXHRcXStcW15c e1xuXF0qXFxcJDNcW15cblxyXSoleW1tXFswLTlcXStcW15cblxyXSoleW1t XFswLTlcXStcW15cblxyXSoleW1tXFswLTlcXSsoPzpcbnxcWyBcXHRcXSsj KSIgMSB9IH0gKi8KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10 aW1lcyAidnBzaHJkZFxbIFxcdFxdK1xbXlx7XG5cXSpcXFwkM1xbXlxuXHJd KiV5bW1cWzAtOVxdK1xbXlxcblxccl0qJXltbVxbMC05XF0rXFteXFxuXFxy XF0qJXltbVxbMC05XF0rXHsla1xbMS03XF1cfSg/OlxufFxbIFxcdFxdKyMp IiAxIH0gfSAqLworLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRp bWVzICJ2cHNocmRkXFsgXFx0XF0rXFteXHtcblxdKlxcXCQzXFteXG5ccl0q JXltbVxbMC05XF0rXFteXFxuXFxyXSoleW1tXFswLTlcXStcW15cXG5cXHJc XSoleW1tXFswLTlcXStceyVrXFsxLTdcXVx9XHt6XH0oPzpcbnxcWyBcXHRc XSsjKSIgMSB9IH0gKi8KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxl ci10aW1lcyAidnBzaHJkcVxbIFxcdFxdK1xbXlx7XG5cXSpcXFwkM1xbXlxu XHJdKiV5bW1cWzAtOVxdK1xbXlxuXHJdKiV5bW1cWzAtOVxdK1xbXlxuXHJd KiV5bW1cWzAtOVxdKyg/OlxufFxbIFxcdFxdKyMpIiAxIH0gfSAqLworLyog eyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzICJ2cHNocmRxXFsg XFx0XF0rXFteXHtcblxdKlxcXCQzXFteXG5ccl0qJXltbVxbMC05XF0rXFte XFxuXFxyXSoleW1tXFswLTlcXStcW15cXG5cXHJcXSoleW1tXFswLTlcXStc eyVrXFsxLTdcXVx9KD86XG58XFsgXFx0XF0rIykiIDEgfSB9ICovCisvKiB7 IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMgInZwc2hyZHFcWyBc XHRcXStcW15ce1xuXF0qXFxcJDNcW15cblxyXSoleW1tXFswLTlcXStcW15c XG5cXHJdKiV5bW1cWzAtOVxdK1xbXlxcblxcclxdKiV5bW1cWzAtOVxdK1x7 JWtcWzEtN1xdXH1ce3pcfSg/OlxufFxbIFxcdFxdKyMpIiAxIH0gfSAqLwor LyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzICJ2cHNocmR3 XFsgXFx0XF0rXFteXHtcblxdKlxcXCQzXFteXG5ccl0qJXhtbVxbMC05XF0r XFteXG5ccl0qJXhtbVxbMC05XF0rXFteXG5ccl0qJXhtbVxbMC05XF0rKD86 XG58XFsgXFx0XF0rIykiIDEgfSB9ICovCisvKiB7IGRnLWZpbmFsIHsgc2Nh bi1hc3NlbWJsZXItdGltZXMgInZwc2hyZHdcWyBcXHRcXStcW15ce1xuXF0q XFxcJDNcW15cblxyXSoleG1tXFswLTlcXStcW15cXG5cXHJdKiV4bW1cWzAt OVxdK1xbXlxcblxcclxdKiV4bW1cWzAtOVxdK1x7JWtcWzEtN1xdXH0oPzpc bnxcWyBcXHRcXSsjKSIgMSB9IH0gKi8KKy8qIHsgZGctZmluYWwgeyBzY2Fu LWFzc2VtYmxlci10aW1lcyAidnBzaHJkd1xbIFxcdFxdK1xbXlx7XG5cXSpc XFwkM1xbXlxuXHJdKiV4bW1cWzAtOVxdK1xbXlxcblxccl0qJXhtbVxbMC05 XF0rXFteXFxuXFxyXF0qJXhtbVxbMC05XF0rXHsla1xbMS03XF1cfVx7elx9 KD86XG58XFsgXFx0XF0rIykiIDEgfSB9ICovCisvKiB7IGRnLWZpbmFsIHsg c2Nhbi1hc3NlbWJsZXItdGltZXMgInZwc2hyZGRcWyBcXHRcXStcW15ce1xu XF0qXFxcJDNcW15cblxyXSoleG1tXFswLTlcXStcW15cblxyXSoleG1tXFsw LTlcXStcW15cblxyXSoleG1tXFswLTlcXSsoPzpcbnxcWyBcXHRcXSsjKSIg MSB9IH0gKi8KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1l cyAidnBzaHJkZFxbIFxcdFxdK1xbXlx7XG5cXSpcXFwkM1xbXlxuXHJdKiV4 bW1cWzAtOVxdK1xbXlxcblxccl0qJXhtbVxbMC05XF0rXFteXFxuXFxyXF0q JXhtbVxbMC05XF0rXHsla1xbMS03XF1cfSg/OlxufFxbIFxcdFxdKyMpIiAx IH0gfSAqLworLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVz ICJ2cHNocmRkXFsgXFx0XF0rXFteXHtcblxdKlxcXCQzXFteXG5ccl0qJXht bVxbMC05XF0rXFteXFxuXFxyXSoleG1tXFswLTlcXStcW15cXG5cXHJcXSol eG1tXFswLTlcXStceyVrXFsxLTdcXVx9XHt6XH0oPzpcbnxcWyBcXHRcXSsj KSIgMSB9IH0gKi8KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10 aW1lcyAidnBzaHJkcVxbIFxcdFxdK1xbXlx7XG5cXSpcXFwkM1xbXlxuXHJd KiV4bW1cWzAtOVxdK1xbXlxuXHJdKiV4bW1cWzAtOVxdK1xbXlxuXHJdKiV4 bW1cWzAtOVxdKyg/OlxufFxbIFxcdFxdKyMpIiAxIH0gfSAqLworLyogeyBk Zy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzICJ2cHNocmRxXFsgXFx0 XF0rXFteXHtcblxdKlxcXCQzXFteXG5ccl0qJXhtbVxbMC05XF0rXFteXFxu XFxyXSoleG1tXFswLTlcXStcW15cXG5cXHJcXSoleG1tXFswLTlcXStceyVr XFsxLTdcXVx9KD86XG58XFsgXFx0XF0rIykiIDEgfSB9ICovCisvKiB7IGRn LWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMgInZwc2hyZHFcWyBcXHRc XStcW15ce1xuXF0qXFxcJDNcW15cblxyXSoleG1tXFswLTlcXStcW15cXG5c XHJdKiV4bW1cWzAtOVxdK1xbXlxcblxcclxdKiV4bW1cWzAtOVxdK1x7JWtc WzEtN1xdXH1ce3pcfSg/OlxufFxbIFxcdFxdKyMpIiAxIH0gfSAqLworCisj aW5jbHVkZSA8aW1taW50cmluLmg+CisKK3ZvbGF0aWxlIF9fbTI1NmkgeCx5 Owordm9sYXRpbGUgX19tMTI4aSB6MSx6MjsKK3ZvbGF0aWxlIF9fbW1hc2sz MiBtOworCit2b2lkIGV4dGVybgorYXZ4NTEyZl90ZXN0ICh2b2lkKQorewor ICB4ID0gX21tMjU2X3NocmRpX2VwaTE2ICh4LCB5LCAzKTsKKyAgeCA9IF9t bTI1Nl9tYXNrel9zaHJkaV9lcGkxNiAobSwgeCwgeSwgMyk7CisgIHggPSBf bW0yNTZfbWFza19zaHJkaV9lcGkxNiAoeCwgbSwgeSwgeCwgMyk7CisKKyAg eCA9IF9tbTI1Nl9zaHJkaV9lcGkzMiAoeCwgeSwgMyk7CisgIHggPSBfbW0y NTZfbWFza3pfc2hyZGlfZXBpMzIgKG0sIHgsIHksIDMpOworICB4ID0gX21t MjU2X21hc2tfc2hyZGlfZXBpMzIgKHgsIG0sIHksIHgsIDMpOworCisgIHgg PSBfbW0yNTZfc2hyZGlfZXBpNjQgKHgsIHksIDMpOworICB4ID0gX21tMjU2 X21hc2t6X3NocmRpX2VwaTY0IChtLCB4LCB5LCAzKTsKKyAgeCA9IF9tbTI1 Nl9tYXNrX3NocmRpX2VwaTY0ICh4LCBtLCB5LCB4LCAzKTsKKworICB6MSA9 IF9tbV9zaHJkaV9lcGkxNiAoejEsIHoyLCAzKTsKKyAgejEgPSBfbW1fbWFz a3pfc2hyZGlfZXBpMTYgKG0sIHoxLCB6MiwgMyk7CisgIHoxID0gX21tX21h c2tfc2hyZGlfZXBpMTYgKHoxLCBtLCB6MiwgejEsIDMpOworCisgIHoxID0g X21tX3NocmRpX2VwaTMyICh6MSwgejIsIDMpOworICB6MSA9IF9tbV9tYXNr el9zaHJkaV9lcGkzMiAobSwgejEsIHoyLCAzKTsKKyAgejEgPSBfbW1fbWFz a19zaHJkaV9lcGkzMiAoejEsIG0sIHoyLCB6MSwgMyk7CisKKyAgejEgPSBf bW1fc2hyZGlfZXBpNjQgKHoxLCB6MiwgMyk7CisgIHoxID0gX21tX21hc2t6 X3NocmRpX2VwaTY0IChtLCB6MSwgejIsIDMpOworICB6MSA9IF9tbV9tYXNr X3NocmRpX2VwaTY0ICh6MSwgbSwgejIsIHoxLCAzKTsKK30KZGlmZiAtLWdp dCBhL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9pMzg2L2F2eDUxMnZsLXZw c2hyZGQtMi5jIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2kzODYvYXZ4 NTEydmwtdnBzaHJkZC0yLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg MDAwMDAwMC4uYmYyMjkxNQotLS0gL2Rldi9udWxsCisrKyBiL2djYy90ZXN0 c3VpdGUvZ2NjLnRhcmdldC9pMzg2L2F2eDUxMnZsLXZwc2hyZGQtMi5jCkBA IC0wLDAgKzEsMTYgQEAKKy8qIHsgZGctZG8gcnVuIH0gKi8KKy8qIHsgZGct b3B0aW9ucyAiLU8yIC1tYXZ4NTEydmwgLW1hdng1MTJ2Ym1pMiAtbWF2eDUx MmJ3IiB9ICovCisvKiB7IGRnLXJlcXVpcmUtZWZmZWN0aXZlLXRhcmdldCBh dng1MTJ2bCB9ICovCisvKiB7IGRnLXJlcXVpcmUtZWZmZWN0aXZlLXRhcmdl dCBhdng1MTJ2Ym1pMiB9ICovCisKKyNkZWZpbmUgQVZYNTEyVkwKKyNkZWZp bmUgQVZYNTEyRl9MRU4gMjU2CisjZGVmaW5lIEFWWDUxMkZfTEVOX0hBTEYg MTI4CisjaW5jbHVkZSAiYXZ4NTEyZi12cHNocmRkLTIuYyIKKworI3VuZGVm IEFWWDUxMkZfTEVOCisjdW5kZWYgQVZYNTEyRl9MRU5fSEFMRgorCisjZGVm aW5lIEFWWDUxMkZfTEVOIDEyOAorI2RlZmluZSBBVlg1MTJGX0xFTl9IQUxG IDEyOAorI2luY2x1ZGUgImF2eDUxMmYtdnBzaHJkZC0yLmMiCmRpZmYgLS1n aXQgYS9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvaTM4Ni9hdng1MTJ2bC12 cHNocmRxLTIuYyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9pMzg2L2F2 eDUxMnZsLXZwc2hyZHEtMi5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4 IDAwMDAwMDAuLjYxZTA3MDgKLS0tIC9kZXYvbnVsbAorKysgYi9nY2MvdGVz dHN1aXRlL2djYy50YXJnZXQvaTM4Ni9hdng1MTJ2bC12cHNocmRxLTIuYwpA QCAtMCwwICsxLDE2IEBACisvKiB7IGRnLWRvIHJ1biB9ICovCisvKiB7IGRn LW9wdGlvbnMgIi1PMiAtbWF2eDUxMnZsIC1tYXZ4NTEydmJtaTIgLW1hdng1 MTJidyIgfSAqLworLyogeyBkZy1yZXF1aXJlLWVmZmVjdGl2ZS10YXJnZXQg YXZ4NTEydmwgfSAqLworLyogeyBkZy1yZXF1aXJlLWVmZmVjdGl2ZS10YXJn ZXQgYXZ4NTEydmJtaTIgfSAqLworCisjZGVmaW5lIEFWWDUxMlZMCisjZGVm aW5lIEFWWDUxMkZfTEVOIDI1NgorI2RlZmluZSBBVlg1MTJGX0xFTl9IQUxG IDEyOAorI2luY2x1ZGUgImF2eDUxMmYtdnBzaHJkcS0yLmMiCisKKyN1bmRl ZiBBVlg1MTJGX0xFTgorI3VuZGVmIEFWWDUxMkZfTEVOX0hBTEYKKworI2Rl ZmluZSBBVlg1MTJGX0xFTiAxMjgKKyNkZWZpbmUgQVZYNTEyRl9MRU5fSEFM RiAxMjgKKyNpbmNsdWRlICJhdng1MTJmLXZwc2hyZHEtMi5jIgpkaWZmIC0t Z2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2kzODYvc3NlLTEzLmMg Yi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvaTM4Ni9zc2UtMTMuYwppbmRl eCA2NTA1NzlmLi4yNzU3ZGNmIDEwMDY0NAotLS0gYS9nY2MvdGVzdHN1aXRl L2djYy50YXJnZXQvaTM4Ni9zc2UtMTMuYworKysgYi9nY2MvdGVzdHN1aXRl L2djYy50YXJnZXQvaTM4Ni9zc2UtMTMuYwpAQCAtNjIxLDYgKzYyMSwyNCBA QAogI2RlZmluZSBfX2J1aWx0aW5faWEzMl9leHRyYWN0ZjY0eDJfMjU2X21h c2soQSwgRSwgQywgRCkgX19idWlsdGluX2lhMzJfZXh0cmFjdGY2NHgyXzI1 Nl9tYXNrKEEsIDEsIEMsIEQpCiAKIC8qIGF2eDUxMnZibWkyaW50cmluLmgg Ki8KKyNkZWZpbmUgX19idWlsdGluX2lhMzJfdnBzaHJkX3YzMmhpKEEsIEIs IEMpIF9fYnVpbHRpbl9pYTMyX3Zwc2hyZF92MzJoaShBLCBCLCAxKQorI2Rl ZmluZSBfX2J1aWx0aW5faWEzMl92cHNocmRfdjMyaGlfbWFzayhBLCBCLCBD LCBELCBFKSAgX19idWlsdGluX2lhMzJfdnBzaHJkX3YzMmhpX21hc2soQSwg QiwgMSwgRCwgRSkKKyNkZWZpbmUgX19idWlsdGluX2lhMzJfdnBzaHJkX3Yx NnNpKEEsIEIsIEMpIF9fYnVpbHRpbl9pYTMyX3Zwc2hyZF92MTZzaShBLCBC LCAxKQorI2RlZmluZSBfX2J1aWx0aW5faWEzMl92cHNocmRfdjE2c2lfbWFz ayhBLCBCLCBDLCBELCBFKSAgX19idWlsdGluX2lhMzJfdnBzaHJkX3YxNnNp X21hc2soQSwgQiwgMSwgRCwgRSkKKyNkZWZpbmUgX19idWlsdGluX2lhMzJf dnBzaHJkX3Y4ZGkoQSwgQiwgQykgX19idWlsdGluX2lhMzJfdnBzaHJkX3Y4 ZGkoQSwgQiwgMSkKKyNkZWZpbmUgX19idWlsdGluX2lhMzJfdnBzaHJkX3Y4 ZGlfbWFzayhBLCBCLCBDLCBELCBFKSAgX19idWlsdGluX2lhMzJfdnBzaHJk X3Y4ZGlfbWFzayhBLCBCLCAxLCBELCBFKQorI2RlZmluZSBfX2J1aWx0aW5f aWEzMl92cHNocmRfdjE2aGkoQSwgQiwgQykgX19idWlsdGluX2lhMzJfdnBz aHJkX3YxNmhpKEEsIEIsIDEpCisjZGVmaW5lIF9fYnVpbHRpbl9pYTMyX3Zw c2hyZF92MTZoaV9tYXNrKEEsIEIsIEMsIEQsIEUpICBfX2J1aWx0aW5faWEz Ml92cHNocmRfdjE2aGlfbWFzayhBLCBCLCAxLCBELCBFKQorI2RlZmluZSBf X2J1aWx0aW5faWEzMl92cHNocmRfdjhzaShBLCBCLCBDKSBfX2J1aWx0aW5f aWEzMl92cHNocmRfdjhzaShBLCBCLCAxKQorI2RlZmluZSBfX2J1aWx0aW5f aWEzMl92cHNocmRfdjhzaV9tYXNrKEEsIEIsIEMsIEQsIEUpICBfX2J1aWx0 aW5faWEzMl92cHNocmRfdjhzaV9tYXNrKEEsIEIsIDEsIEQsIEUpCisjZGVm aW5lIF9fYnVpbHRpbl9pYTMyX3Zwc2hyZF92NGRpKEEsIEIsIEMpIF9fYnVp bHRpbl9pYTMyX3Zwc2hyZF92NGRpKEEsIEIsIDEpCisjZGVmaW5lIF9fYnVp bHRpbl9pYTMyX3Zwc2hyZF92NGRpX21hc2soQSwgQiwgQywgRCwgRSkgIF9f YnVpbHRpbl9pYTMyX3Zwc2hyZF92NGRpX21hc2soQSwgQiwgMSwgRCwgRSkK KyNkZWZpbmUgX19idWlsdGluX2lhMzJfdnBzaHJkX3Y4aGkoQSwgQiwgQykg X19idWlsdGluX2lhMzJfdnBzaHJkX3Y4aGkoQSwgQiwgMSkKKyNkZWZpbmUg X19idWlsdGluX2lhMzJfdnBzaHJkX3Y4aGlfbWFzayhBLCBCLCBDLCBELCBF KSAgX19idWlsdGluX2lhMzJfdnBzaHJkX3Y4aGlfbWFzayhBLCBCLCAxLCBE LCBFKQorI2RlZmluZSBfX2J1aWx0aW5faWEzMl92cHNocmRfdjRzaShBLCBC LCBDKSBfX2J1aWx0aW5faWEzMl92cHNocmRfdjRzaShBLCBCLCAxKQorI2Rl ZmluZSBfX2J1aWx0aW5faWEzMl92cHNocmRfdjRzaV9tYXNrKEEsIEIsIEMs IEQsIEUpICBfX2J1aWx0aW5faWEzMl92cHNocmRfdjRzaV9tYXNrKEEsIEIs IDEsIEQsIEUpCisjZGVmaW5lIF9fYnVpbHRpbl9pYTMyX3Zwc2hyZF92MmRp KEEsIEIsIEMpIF9fYnVpbHRpbl9pYTMyX3Zwc2hyZF92MmRpKEEsIEIsIDEp CisjZGVmaW5lIF9fYnVpbHRpbl9pYTMyX3Zwc2hyZF92MmRpX21hc2soQSwg QiwgQywgRCwgRSkgIF9fYnVpbHRpbl9pYTMyX3Zwc2hyZF92MmRpX21hc2so QSwgQiwgMSwgRCwgRSkKICNkZWZpbmUgX19idWlsdGluX2lhMzJfdnBzaGxk X3YzMmhpKEEsIEIsIEMpIF9fYnVpbHRpbl9pYTMyX3Zwc2hsZF92MzJoaShB LCBCLCAxKQogI2RlZmluZSBfX2J1aWx0aW5faWEzMl92cHNobGRfdjMyaGlf bWFzayhBLCBCLCBDLCBELCBFKSAgX19idWlsdGluX2lhMzJfdnBzaGxkX3Yz MmhpX21hc2soQSwgQiwgMSwgRCwgRSkKICNkZWZpbmUgX19idWlsdGluX2lh MzJfdnBzaGxkX3YxNnNpKEEsIEIsIEMpIF9fYnVpbHRpbl9pYTMyX3Zwc2hs ZF92MTZzaShBLCBCLCAxKQpkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9n Y2MudGFyZ2V0L2kzODYvc3NlLTIzLmMgYi9nY2MvdGVzdHN1aXRlL2djYy50 YXJnZXQvaTM4Ni9zc2UtMjMuYwppbmRleCBhYzU1ODQ3Li5lYTNmOWM1IDEw MDY0NAotLS0gYS9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvaTM4Ni9zc2Ut MjMuYworKysgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvaTM4Ni9zc2Ut MjMuYwpAQCAtNjIwLDYgKzYyMCwyNCBAQAogI2RlZmluZSBfX2J1aWx0aW5f aWEzMl9leHRyYWN0ZjY0eDJfMjU2X21hc2soQSwgRSwgQywgRCkgX19idWls dGluX2lhMzJfZXh0cmFjdGY2NHgyXzI1Nl9tYXNrKEEsIDEsIEMsIEQpCiAK IC8qIGF2eDUxMnZibWkyaW50cmluLmggKi8KKyNkZWZpbmUgX19idWlsdGlu X2lhMzJfdnBzaHJkX3YzMmhpKEEsIEIsIEMpIF9fYnVpbHRpbl9pYTMyX3Zw c2hyZF92MzJoaShBLCBCLCAxKQorI2RlZmluZSBfX2J1aWx0aW5faWEzMl92 cHNocmRfdjMyaGlfbWFzayhBLCBCLCBDLCBELCBFKSAgX19idWlsdGluX2lh MzJfdnBzaHJkX3YzMmhpX21hc2soQSwgQiwgMSwgRCwgRSkKKyNkZWZpbmUg X19idWlsdGluX2lhMzJfdnBzaHJkX3YxNnNpKEEsIEIsIEMpIF9fYnVpbHRp bl9pYTMyX3Zwc2hyZF92MTZzaShBLCBCLCAxKQorI2RlZmluZSBfX2J1aWx0 aW5faWEzMl92cHNocmRfdjE2c2lfbWFzayhBLCBCLCBDLCBELCBFKSAgX19i dWlsdGluX2lhMzJfdnBzaHJkX3YxNnNpX21hc2soQSwgQiwgMSwgRCwgRSkK KyNkZWZpbmUgX19idWlsdGluX2lhMzJfdnBzaHJkX3Y4ZGkoQSwgQiwgQykg X19idWlsdGluX2lhMzJfdnBzaHJkX3Y4ZGkoQSwgQiwgMSkKKyNkZWZpbmUg X19idWlsdGluX2lhMzJfdnBzaHJkX3Y4ZGlfbWFzayhBLCBCLCBDLCBELCBF KSAgX19idWlsdGluX2lhMzJfdnBzaHJkX3Y4ZGlfbWFzayhBLCBCLCAxLCBE LCBFKQorI2RlZmluZSBfX2J1aWx0aW5faWEzMl92cHNocmRfdjE2aGkoQSwg QiwgQykgX19idWlsdGluX2lhMzJfdnBzaHJkX3YxNmhpKEEsIEIsIDEpCisj ZGVmaW5lIF9fYnVpbHRpbl9pYTMyX3Zwc2hyZF92MTZoaV9tYXNrKEEsIEIs IEMsIEQsIEUpICBfX2J1aWx0aW5faWEzMl92cHNocmRfdjE2aGlfbWFzayhB LCBCLCAxLCBELCBFKQorI2RlZmluZSBfX2J1aWx0aW5faWEzMl92cHNocmRf djhzaShBLCBCLCBDKSBfX2J1aWx0aW5faWEzMl92cHNocmRfdjhzaShBLCBC LCAxKQorI2RlZmluZSBfX2J1aWx0aW5faWEzMl92cHNocmRfdjhzaV9tYXNr KEEsIEIsIEMsIEQsIEUpICBfX2J1aWx0aW5faWEzMl92cHNocmRfdjhzaV9t YXNrKEEsIEIsIDEsIEQsIEUpCisjZGVmaW5lIF9fYnVpbHRpbl9pYTMyX3Zw c2hyZF92NGRpKEEsIEIsIEMpIF9fYnVpbHRpbl9pYTMyX3Zwc2hyZF92NGRp KEEsIEIsIDEpCisjZGVmaW5lIF9fYnVpbHRpbl9pYTMyX3Zwc2hyZF92NGRp X21hc2soQSwgQiwgQywgRCwgRSkgIF9fYnVpbHRpbl9pYTMyX3Zwc2hyZF92 NGRpX21hc2soQSwgQiwgMSwgRCwgRSkKKyNkZWZpbmUgX19idWlsdGluX2lh MzJfdnBzaHJkX3Y4aGkoQSwgQiwgQykgX19idWlsdGluX2lhMzJfdnBzaHJk X3Y4aGkoQSwgQiwgMSkKKyNkZWZpbmUgX19idWlsdGluX2lhMzJfdnBzaHJk X3Y4aGlfbWFzayhBLCBCLCBDLCBELCBFKSAgX19idWlsdGluX2lhMzJfdnBz aHJkX3Y4aGlfbWFzayhBLCBCLCAxLCBELCBFKQorI2RlZmluZSBfX2J1aWx0 aW5faWEzMl92cHNocmRfdjRzaShBLCBCLCBDKSBfX2J1aWx0aW5faWEzMl92 cHNocmRfdjRzaShBLCBCLCAxKQorI2RlZmluZSBfX2J1aWx0aW5faWEzMl92 cHNocmRfdjRzaV9tYXNrKEEsIEIsIEMsIEQsIEUpICBfX2J1aWx0aW5faWEz Ml92cHNocmRfdjRzaV9tYXNrKEEsIEIsIDEsIEQsIEUpCisjZGVmaW5lIF9f YnVpbHRpbl9pYTMyX3Zwc2hyZF92MmRpKEEsIEIsIEMpIF9fYnVpbHRpbl9p YTMyX3Zwc2hyZF92MmRpKEEsIEIsIDEpCisjZGVmaW5lIF9fYnVpbHRpbl9p YTMyX3Zwc2hyZF92MmRpX21hc2soQSwgQiwgQywgRCwgRSkgIF9fYnVpbHRp bl9pYTMyX3Zwc2hyZF92MmRpX21hc2soQSwgQiwgMSwgRCwgRSkKICNkZWZp bmUgX19idWlsdGluX2lhMzJfdnBzaGxkX3YzMmhpKEEsIEIsIEMpIF9fYnVp bHRpbl9pYTMyX3Zwc2hsZF92MzJoaShBLCBCLCAxKQogI2RlZmluZSBfX2J1 aWx0aW5faWEzMl92cHNobGRfdjMyaGlfbWFzayhBLCBCLCBDLCBELCBFKSAg X19idWlsdGluX2lhMzJfdnBzaGxkX3YzMmhpX21hc2soQSwgQiwgMSwgRCwg RSkKICNkZWZpbmUgX19idWlsdGluX2lhMzJfdnBzaGxkX3YxNnNpKEEsIEIs IEMpIF9fYnVpbHRpbl9pYTMyX3Zwc2hsZF92MTZzaShBLCBCLCAxKQotLSAK Mi41LjUKCg== --_002_4E89A029A0F8D443B436A5167BA3C53F42AC3DDCIRSMSX101gercor_--