From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 7668 invoked by alias); 21 Oct 2009 19:42:40 -0000 Received: (qmail 7656 invoked by uid 22791); 21 Oct 2009 19:42:38 -0000 X-SWARE-Spam-Status: No, hits=-3.3 required=5.0 tests=AWL,BAYES_00,RCVD_IN_DNSWL_LOW X-Spam-Check-By: sourceware.org Received: from tx2ehsobe004.messaging.microsoft.com (HELO TX2EHSOBE007.bigfish.com) (65.55.88.14) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Wed, 21 Oct 2009 19:42:31 +0000 Received: from mail101-tx2-R.bigfish.com (10.9.14.248) by TX2EHSOBE007.bigfish.com (10.9.40.27) with Microsoft SMTP Server id 8.1.340.0; Wed, 21 Oct 2009 19:42:28 +0000 Received: from mail101-tx2 (localhost.localdomain [127.0.0.1]) by mail101-tx2-R.bigfish.com (Postfix) with ESMTP id CFA518305C5; Wed, 21 Oct 2009 19:42:28 +0000 (UTC) X-SpamScore: -18 X-BigFish: VPS-18(zz154dM1432R4015L148cMa4a4kzz1202hzzz32i6bh34h43j63h) X-Spam-TCS-SCL: 2:0 X-FB-SS: 5,5,5, Received: by mail101-tx2 (MessageSwitch) id 1256154145562182_26116; Wed, 21 Oct 2009 19:42:25 +0000 (UCT) Received: from TX2EHSMHS029.bigfish.com (unknown [10.9.14.237]) by mail101-tx2.bigfish.com (Postfix) with ESMTP id 2CE391340056; Wed, 21 Oct 2009 19:42:25 +0000 (UTC) Received: from ausb3extmailp01.amd.com (163.181.251.8) by TX2EHSMHS029.bigfish.com (10.9.99.129) with Microsoft SMTP Server (TLS) id 14.0.482.32; Wed, 21 Oct 2009 19:42:22 +0000 Received: from ausb3twp02.amd.com ([163.181.250.38]) by ausb3extmailp01.amd.com (Switch-3.2.7/Switch-3.2.7) with ESMTP id n9LJgHk7030041; Wed, 21 Oct 2009 14:42:20 -0500 X-M-MSG: Received: from sausexhtp02.amd.com (sausexhtp02.amd.com [163.181.3.152]) (using TLSv1 with cipher RC4-MD5 (128/128 bits)) (No client certificate requested) by ausb3twp02.amd.com (Tumbleweed MailGate 3.7.0) with ESMTP id 2336BC85CF; Wed, 21 Oct 2009 14:42:12 -0500 (CDT) Received: from sausexmbp02.amd.com ([163.181.3.191]) by sausexhtp02.amd.com ([163.181.3.152]) with mapi; Wed, 21 Oct 2009 14:42:16 -0500 From: "rajagopal, dwarak" To: Uros Bizjak , "gcc-patches@gcc.gnu.org" CC: Jan Hubicka , "Harle, Christophe" , "Jagasia, Harsha" Date: Wed, 21 Oct 2009 19:53:00 -0000 Subject: RE: PATCH: Add XOP 128-bit and 256-bit support for upcoming AMD Orochi processor. Message-ID: <1C8DE0332CB01445BF7ADEDE3DDD570718D0502C@sausexmbp02.amd.com> References: <5787cf470910210254m63c9f5bbp2585eb4f52ab8360@mail.gmail.com> In-Reply-To: <5787cf470910210254m63c9f5bbp2585eb4f52ab8360@mail.gmail.com> Content-Type: multipart/mixed; boundary="_003_1C8DE0332CB01445BF7ADEDE3DDD570718D0502Csausexmbp02amdc_" MIME-Version: 1.0 X-Reverse-DNS: unknown X-IsSubscribed: yes 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 X-SW-Source: 2009-10/txt/msg01381.txt.bz2 --_003_1C8DE0332CB01445BF7ADEDE3DDD570718D0502Csausexmbp02amdc_ Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Content-length: 1068 Hi Uros, > > * gcc.target/i386/xop-check.h: New file. > > * gcc.target/i386/xop-hadduX.c: Ditto. > > * gcc.target/i386/xop-haddX.c: Ditto. > > * gcc.target/i386/xop-hsubX.c: Ditto. > > * gcc.target/i386/xop-imul32widen-vector.c: Ditto. > > * gcc.target/i386/xop-imul32widen-vector.c: Ditto. > > * gcc.target/i386/xop-pcmov2.c: Ditto. > > * gcc.target/i386/xop-pcmov.c: Ditto. > > * gcc.target/i386/xop-rotate1-vector.c: Ditto. > > * gcc.target/i386/xop-rotate2-vector.c: Ditto. > > * gcc.target/i386/xop-rotate3-vector.c: Ditto. > > * gcc.target/i386/xop-shift2-vector.c: Ditto. > > * gcc.target/i386/xop-shift3-vector.c: Ditto. > > * gcc.target/i386/i386.exp: Add check_effective_target_xop >=20 > You should also update gcc.target/i386/sse-{12,13,14,22,23}.c and > g++.dg/other/i386-{2,3,5,6}.C with new compile options to activate and > check new intrinsic header files. Thanks for pointing this out. I have updated the above files with the new c= ompile options to activate and test xopintrin.h. Bootstrapped and tested on x86_64. Is this OK? Thanks, Dwarak --_003_1C8DE0332CB01445BF7ADEDE3DDD570718D0502Csausexmbp02amdc_ Content-Type: application/octet-stream; name="xop-gcc.patch" Content-Description: xop-gcc.patch Content-Disposition: attachment; filename="xop-gcc.patch"; size=168326; creation-date="Wed, 21 Oct 2009 14:22:47 GMT"; modification-date="Wed, 21 Oct 2009 14:36:44 GMT" Content-Transfer-Encoding: base64 Content-length: 228177 ZGlmZiAtcHVyTncgZ2NjL2djYy9jb25maWcvaTM4Ni9jcHVpZC5oIHhvcC9n Y2MvY29uZmlnL2kzODYvY3B1aWQuaAotLS0gZ2NjL2djYy9jb25maWcvaTM4 Ni9jcHVpZC5oCTIwMDktMTAtMjAgMTM6NTY6NTQuMDAwMDAwMDAwIC0wNTAw CisrKyB4b3AvZ2NjL2NvbmZpZy9pMzg2L2NwdWlkLmgJMjAwOS0xMC0yMCAx NDowNjowMi4wMDAwMDAwMDAgLTA1MDAKQEAgLTQ5LDYgKzQ5LDcgQEAKICNk ZWZpbmUgYml0X0xBSEZfTE0JKDEgPDwgMCkKICNkZWZpbmUgYml0X1NTRTRh CSgxIDw8IDYpCiAjZGVmaW5lIGJpdF9GTUE0CSgxIDw8IDE2KQorI2RlZmlu ZSBiaXRfWE9QICAgICAgICAgKDEgPDwgMTEpCiAKIC8qICVlZHggKi8KICNk ZWZpbmUgYml0X0xNCQkoMSA8PCAyOSkKZGlmZiAtcHVyTncgZ2NjL2djYy9j b25maWcvaTM4Ni9pMzg2LmMgeG9wL2djYy9jb25maWcvaTM4Ni9pMzg2LmMK LS0tIGdjYy9nY2MvY29uZmlnL2kzODYvaTM4Ni5jCTIwMDktMTAtMjAgMTM6 NTY6NTQuMDAwMDAwMDAwIC0wNTAwCisrKyB4b3AvZ2NjL2NvbmZpZy9pMzg2 L2kzODYuYwkyMDA5LTEwLTIwIDE0OjA2OjAyLjAwMDAwMDAwMCAtMDUwMApA QCAtMTk1OCw2ICsxOTU4LDggQEAgc3RhdGljIGludCBpeDg2X2lzYV9mbGFn c19leHBsaWNpdDsKICNkZWZpbmUgT1BUSU9OX01BU0tfSVNBX0ZNQTRfU0VU IFwKICAgKE9QVElPTl9NQVNLX0lTQV9GTUE0IHwgT1BUSU9OX01BU0tfSVNB X1NTRTRBX1NFVCBcCiAgICB8IE9QVElPTl9NQVNLX0lTQV9BVlhfU0VUKQor I2RlZmluZSBPUFRJT05fTUFTS19JU0FfWE9QX1NFVCBcCisgIChPUFRJT05f TUFTS19JU0FfWE9QIHwgT1BUSU9OX01BU0tfSVNBX0ZNQTRfU0VUKQogCiAv KiBBRVMgYW5kIFBDTE1VTCBuZWVkIFNTRTIgYmVjYXVzZSB0aGV5IHVzZSB4 bW0gcmVnaXN0ZXJzICovCiAjZGVmaW5lIE9QVElPTl9NQVNLX0lTQV9BRVNf U0VUIFwKQEAgLTIwMDksNyArMjAxMSw5IEBAIHN0YXRpYyBpbnQgaXg4Nl9p c2FfZmxhZ3NfZXhwbGljaXQ7CiAjZGVmaW5lIE9QVElPTl9NQVNLX0lTQV9T U0U0QV9VTlNFVCBcCiAgIChPUFRJT05fTUFTS19JU0FfU1NFNEEgfCBPUFRJ T05fTUFTS19JU0FfRk1BNF9VTlNFVCkKIAotI2RlZmluZSBPUFRJT05fTUFT S19JU0FfRk1BNF9VTlNFVCBPUFRJT05fTUFTS19JU0FfRk1BNAorI2RlZmlu ZSBPUFRJT05fTUFTS19JU0FfRk1BNF9VTlNFVCBcCisgIChPUFRJT05fTUFT S19JU0FfRk1BNCB8IE9QVElPTl9NQVNLX0lTQV9YT1BfVU5TRVQpCisjZGVm aW5lIE9QVElPTl9NQVNLX0lTQV9YT1BfVU5TRVQgT1BUSU9OX01BU0tfSVNB X1hPUAogCiAjZGVmaW5lIE9QVElPTl9NQVNLX0lTQV9BRVNfVU5TRVQgT1BU SU9OX01BU0tfSVNBX0FFUwogI2RlZmluZSBPUFRJT05fTUFTS19JU0FfUENM TVVMX1VOU0VUIE9QVElPTl9NQVNLX0lTQV9QQ0xNVUwKQEAgLTIyNTcsNiAr MjI2MSwxOSBAQCBpeDg2X2hhbmRsZV9vcHRpb24gKHNpemVfdCBjb2RlLCBj b25zdCBjCiAJfQogICAgICAgcmV0dXJuIHRydWU7CiAKKyAgIGNhc2UgT1BU X214b3A6CisgICAgICBpZiAodmFsdWUpCisJeworCSAgaXg4Nl9pc2FfZmxh Z3MgfD0gT1BUSU9OX01BU0tfSVNBX1hPUF9TRVQ7CisJICBpeDg2X2lzYV9m bGFnc19leHBsaWNpdCB8PSBPUFRJT05fTUFTS19JU0FfWE9QX1NFVDsKKwl9 CisgICAgICBlbHNlCisJeworCSAgaXg4Nl9pc2FfZmxhZ3MgJj0gfk9QVElP Tl9NQVNLX0lTQV9YT1BfVU5TRVQ7CisJICBpeDg2X2lzYV9mbGFnc19leHBs aWNpdCB8PSBPUFRJT05fTUFTS19JU0FfWE9QX1VOU0VUOworCX0KKyAgICAg IHJldHVybiB0cnVlOworCiAgICAgY2FzZSBPUFRfbWFibToKICAgICAgIGlm ICh2YWx1ZSkKIAl7CkBAIC0yMzg1LDYgKzI0MDIsNyBAQCBpeDg2X3Rhcmdl dF9zdHJpbmcgKGludCBpc2EsIGludCBmbGFncywKICAgewogICAgIHsgIi1t NjQiLAkJT1BUSU9OX01BU0tfSVNBXzY0QklUIH0sCiAgICAgeyAiLW1mbWE0 IiwJCU9QVElPTl9NQVNLX0lTQV9GTUE0IH0sCisgICAgeyAiLW14b3AiLAkJ T1BUSU9OX01BU0tfSVNBX1hPUCB9LAogICAgIHsgIi1tc3NlNGEiLAlPUFRJ T05fTUFTS19JU0FfU1NFNEEgfSwKICAgICB7ICItbXNzZTQuMiIsCU9QVElP Tl9NQVNLX0lTQV9TU0U0XzIgfSwKICAgICB7ICItbXNzZTQuMSIsCU9QVElP Tl9NQVNLX0lTQV9TU0U0XzEgfSwKQEAgLTI2MTUsNyArMjYzMyw4IEBAIG92 ZXJyaWRlX29wdGlvbnMgKGJvb2wgbWFpbl9hcmdzX3ApCiAgICAgICBQVEFf QVZYID0gMSA8PCAxOCwKICAgICAgIFBUQV9GTUEgPSAxIDw8IDE5LAogICAg ICAgUFRBX01PVkJFID0gMSA8PCAyMCwKLSAgICAgIFBUQV9GTUE0ID0gMSA8 PCAyMQorICAgICAgUFRBX0ZNQTQgPSAxIDw8IDIxLAorICAgICAgUFRBX1hP UCA9IDEgPDwgMjIKICAgICB9OwogCiAgIHN0YXRpYyBzdHJ1Y3QgcHRhCkBA IC0yOTYxLDYgKzI5ODAsOSBAQCBvdmVycmlkZV9vcHRpb25zIChib29sIG1h aW5fYXJnc19wKQogCWlmIChwcm9jZXNzb3JfYWxpYXNfdGFibGVbaV0uZmxh Z3MgJiBQVEFfRk1BNAogCSAgICAmJiAhKGl4ODZfaXNhX2ZsYWdzX2V4cGxp Y2l0ICYgT1BUSU9OX01BU0tfSVNBX0ZNQTQpKQogCSAgaXg4Nl9pc2FfZmxh Z3MgfD0gT1BUSU9OX01BU0tfSVNBX0ZNQTQ7CisJaWYgKHByb2Nlc3Nvcl9h bGlhc190YWJsZVtpXS5mbGFncyAmIFBUQV9YT1AKKwkgICAgJiYgIShpeDg2 X2lzYV9mbGFnc19leHBsaWNpdCAmIE9QVElPTl9NQVNLX0lTQV9YT1ApKQor CSAgaXg4Nl9pc2FfZmxhZ3MgfD0gT1BUSU9OX01BU0tfSVNBX1hPUDsKIAlp ZiAocHJvY2Vzc29yX2FsaWFzX3RhYmxlW2ldLmZsYWdzICYgUFRBX0FCTQog CSAgICAmJiAhKGl4ODZfaXNhX2ZsYWdzX2V4cGxpY2l0ICYgT1BUSU9OX01B U0tfSVNBX0FCTSkpCiAJICBpeDg2X2lzYV9mbGFncyB8PSBPUFRJT05fTUFT S19JU0FfQUJNOwpAQCAtMzY0NSw2ICszNjY3LDcgQEAgaXg4Nl92YWxpZF90 YXJnZXRfYXR0cmlidXRlX2lubmVyX3AgKHRyZQogICAgIElYODZfQVRUUl9J U0EgKCJzc2U0YSIsCU9QVF9tc3NlNGEpLAogICAgIElYODZfQVRUUl9JU0Eg KCJzc3NlMyIsCU9QVF9tc3NzZTMpLAogICAgIElYODZfQVRUUl9JU0EgKCJm bWE0IiwJT1BUX21mbWE0KSwKKyAgICBJWDg2X0FUVFJfSVNBICgieG9wIiwJ T1BUX214b3ApLAogCiAgICAgLyogc3RyaW5nIG9wdGlvbnMgKi8KICAgICBJ WDg2X0FUVFJfU1RSICgiYXJjaD0iLAlJWDg2X0ZVTkNUSU9OX1NQRUNJRklD X0FSQ0gpLApAQCAtMTEyNjQsNiArMTEyODcsNyBAQCBnZXRfc29tZV9sb2Nh bF9keW5hbWljX25hbWUgKHZvaWQpCiAgICBYIC0tIGRvbid0IHByaW50IGFu eSBzb3J0IG9mIFBJQyAnQCcgc3VmZml4IGZvciBhIHN5bWJvbC4KICAgICYg LS0gcHJpbnQgc29tZSBpbi11c2UgbG9jYWwtZHluYW1pYyBzeW1ib2wgbmFt ZS4KICAgIEggLS0gcHJpbnQgYSBtZW1vcnkgYWRkcmVzcyBvZmZzZXQgYnkg ODsgdXNlZCBmb3Igc3NlIGhpZ2gtcGFydHMKKyAgIFkgLS0gcHJpbnQgY29u ZGl0aW9uIGZvciBYT1AgcGNvbSogaW5zdHJ1Y3Rpb24uCiAgICArIC0tIHBy aW50IGEgYnJhbmNoIGhpbnQgYXMgJ2NzJyBvciAnZHMnIHByZWZpeAogICAg OyAtLSBwcmludCBhIHNlbWljb2xvbiAoYWZ0ZXIgcHJlZml4ZXMgZHVlIHRv IGJ1ZyBpbiBvbGRlciBnYXMpLgogICovCkBAIC0xMTY4MSw2ICsxMTcwNSw2 MSBAQCBwcmludF9vcGVyYW5kIChGSUxFICpmaWxlLCBydHggeCwgaW50IGNv CiAJICAgIHJldHVybjsKIAkgIH0KIAorCWNhc2UgJ1knOgorCSAgc3dpdGNo IChHRVRfQ09ERSAoeCkpCisJICAgIHsKKwkgICAgY2FzZSBORToKKwkgICAg ICBmcHV0cyAoIm5lcSIsIGZpbGUpOworCSAgICAgIGJyZWFrOworCSAgICBj YXNlIEVROgorCSAgICAgIGZwdXRzICgiZXEiLCBmaWxlKTsKKwkgICAgICBi cmVhazsKKwkgICAgY2FzZSBHRToKKwkgICAgY2FzZSBHRVU6CisJICAgICAg ZnB1dHMgKElOVEVHUkFMX01PREVfUCAoR0VUX01PREUgKHgpKSA/ICJnZSIg OiAidW5sdCIsIGZpbGUpOworCSAgICAgIGJyZWFrOworCSAgICBjYXNlIEdU OgorCSAgICBjYXNlIEdUVToKKwkgICAgICBmcHV0cyAoSU5URUdSQUxfTU9E RV9QIChHRVRfTU9ERSAoeCkpID8gImd0IiA6ICJ1bmxlIiwgZmlsZSk7CisJ ICAgICAgYnJlYWs7CisJICAgIGNhc2UgTEU6CisJICAgIGNhc2UgTEVVOgor CSAgICAgIGZwdXRzICgibGUiLCBmaWxlKTsKKwkgICAgICBicmVhazsKKwkg ICAgY2FzZSBMVDoKKwkgICAgY2FzZSBMVFU6CisJICAgICAgZnB1dHMgKCJs dCIsIGZpbGUpOworCSAgICAgIGJyZWFrOworCSAgICBjYXNlIFVOT1JERVJF RDoKKwkgICAgICBmcHV0cyAoInVub3JkIiwgZmlsZSk7CisJICAgICAgYnJl YWs7CisJICAgIGNhc2UgT1JERVJFRDoKKwkgICAgICBmcHV0cyAoIm9yZCIs IGZpbGUpOworCSAgICAgIGJyZWFrOworCSAgICBjYXNlIFVORVE6CisJICAg ICAgZnB1dHMgKCJ1ZXEiLCBmaWxlKTsKKwkgICAgICBicmVhazsKKwkgICAg Y2FzZSBVTkdFOgorCSAgICAgIGZwdXRzICgibmx0IiwgZmlsZSk7CisJICAg ICAgYnJlYWs7CisJICAgIGNhc2UgVU5HVDoKKwkgICAgICBmcHV0cyAoIm5s ZSIsIGZpbGUpOworCSAgICAgIGJyZWFrOworCSAgICBjYXNlIFVOTEU6CisJ ICAgICAgZnB1dHMgKCJ1bGUiLCBmaWxlKTsKKwkgICAgICBicmVhazsKKwkg ICAgY2FzZSBVTkxUOgorCSAgICAgIGZwdXRzICgidWx0IiwgZmlsZSk7CisJ ICAgICAgYnJlYWs7CisJICAgIGNhc2UgTFRHVDoKKwkgICAgICBmcHV0cyAo InVuZSIsIGZpbGUpOworCSAgICAgIGJyZWFrOworCSAgICBkZWZhdWx0Ogor CSAgICAgIG91dHB1dF9vcGVyYW5kX2xvc3NhZ2UgKCJvcGVyYW5kIGlzIG5v dCBhIGNvbmRpdGlvbiBjb2RlLCBpbnZhbGlkIG9wZXJhbmQgY29kZSAnRCci KTsKKwkgICAgICByZXR1cm47CisJICAgIH0KKwkgIHJldHVybjsKKwogCWNh c2UgJzsnOgogI2lmIFRBUkdFVF9NQUNITwogCSAgZnB1dHMgKCIgOyAiLCBm aWxlKTsKQEAgLTE1ODkwLDYgKzE1OTY5LDE0IEBAIGl4ODZfZXhwYW5kX3Nz ZV9tb3ZjYyAocnR4IGRlc3QsIHJ0eCBjbXAKICAgICAgIHggPSBnZW5fcnR4 X0FORCAobW9kZSwgeCwgb3BfZmFsc2UpOwogICAgICAgZW1pdF9pbnNuIChn ZW5fcnR4X1NFVCAoVk9JRG1vZGUsIGRlc3QsIHgpKTsKICAgICB9CisgIGVs c2UgaWYgKFRBUkdFVF9YT1ApCisgICAgeworICAgICAgcnR4IHBjbW92ID0g Z2VuX3J0eF9TRVQgKG1vZGUsIGRlc3QsCisJCQkgICAgICAgZ2VuX3J0eF9J Rl9USEVOX0VMU0UgKG1vZGUsIGNtcCwKKwkJCQkJCSAgICAgb3BfdHJ1ZSwK KwkJCQkJCSAgICAgb3BfZmFsc2UpKTsKKyAgICAgIGVtaXRfaW5zbiAocGNt b3YpOworICAgIH0KICAgZWxzZQogICAgIHsKICAgICAgIG9wX3RydWUgPSBm b3JjZV9yZWcgKG1vZGUsIG9wX3RydWUpOwpAQCAtMTYwMTIsNiArMTYwOTks OSBAQCBpeDg2X2V4cGFuZF9pbnRfdmNvbmQgKHJ0eCBvcGVyYW5kc1tdKQog ICBjb3AwID0gb3BlcmFuZHNbNF07CiAgIGNvcDEgPSBvcGVyYW5kc1s1XTsK IAorICAvKiBYT1Agc3VwcG9ydHMgYWxsIG9mIHRoZSBjb21wYXJpc29ucyBv biBhbGwgdmVjdG9yIGludCB0eXBlcy4gICovCisgIGlmICghVEFSR0VUX1hP UCkKKyAgICB7CiAgIC8qIENhbm9uaWNhbGl6ZSB0aGUgY29tcGFyaXNvbiB0 byBFUSwgR1QsIEdUVS4gICovCiAgIHN3aXRjaCAoY29kZSkKICAgICB7CkBA IC0xNjEyMiw2ICsxNjIxMiw3IEBAIGl4ODZfZXhwYW5kX2ludF92Y29uZCAo cnR4IG9wZXJhbmRzW10pCiAgICAgICBjb3AwID0geDsKICAgICAgIGNvcDEg PSBDT05TVDBfUlRYIChtb2RlKTsKICAgICB9CisgICAgfQogCiAgIHggPSBp eDg2X2V4cGFuZF9zc2VfY21wIChvcGVyYW5kc1swXSwgY29kZSwgY29wMCwg Y29wMSwKIAkJCSAgIG9wZXJhbmRzWzErbmVnYXRlXSwgb3BlcmFuZHNbMi1u ZWdhdGVdKTsKQEAgLTIwODEwLDYgKzIwOTAxLDE1MCBAQCBlbnVtIGl4ODZf YnVpbHRpbnMKICAgSVg4Nl9CVUlMVElOX1ZGTk1BRERQRDI1NiwKICAgSVg4 Nl9CVUlMVElOX1ZGTk1TVUJQUzI1NiwKICAgSVg4Nl9CVUlMVElOX1ZGTk1T VUJQRDI1NiwKKworICBJWDg2X0JVSUxUSU5fVlBDTU9WLAorICBJWDg2X0JV SUxUSU5fVlBDTU9WX1YyREksCisgIElYODZfQlVJTFRJTl9WUENNT1ZfVjRT SSwKKyAgSVg4Nl9CVUlMVElOX1ZQQ01PVl9WOEhJLAorICBJWDg2X0JVSUxU SU5fVlBDTU9WX1YxNlFJLAorICBJWDg2X0JVSUxUSU5fVlBDTU9WX1Y0U0Ys CisgIElYODZfQlVJTFRJTl9WUENNT1ZfVjJERiwKKyAgSVg4Nl9CVUlMVElO X1ZQQ01PVjI1NiwKKyAgSVg4Nl9CVUlMVElOX1ZQQ01PVl9WNERJMjU2LAor ICBJWDg2X0JVSUxUSU5fVlBDTU9WX1Y4U0kyNTYsCisgIElYODZfQlVJTFRJ Tl9WUENNT1ZfVjE2SEkyNTYsCisgIElYODZfQlVJTFRJTl9WUENNT1ZfVjMy UUkyNTYsCisgIElYODZfQlVJTFRJTl9WUENNT1ZfVjhTRjI1NiwKKyAgSVg4 Nl9CVUlMVElOX1ZQQ01PVl9WNERGMjU2LAorCisgIElYODZfQlVJTFRJTl9W UFBFUk0sCisKKyAgSVg4Nl9CVUlMVElOX1ZQTUFDU1NXVywKKyAgSVg4Nl9C VUlMVElOX1ZQTUFDU1dXLAorICBJWDg2X0JVSUxUSU5fVlBNQUNTU1dELAor ICBJWDg2X0JVSUxUSU5fVlBNQUNTV0QsCisgIElYODZfQlVJTFRJTl9WUE1B Q1NTREQsCisgIElYODZfQlVJTFRJTl9WUE1BQ1NERCwKKyAgSVg4Nl9CVUlM VElOX1ZQTUFDU1NEUUwsCisgIElYODZfQlVJTFRJTl9WUE1BQ1NTRFFILAor ICBJWDg2X0JVSUxUSU5fVlBNQUNTRFFMLAorICBJWDg2X0JVSUxUSU5fVlBN QUNTRFFILAorICBJWDg2X0JVSUxUSU5fVlBNQURDU1NXRCwKKyAgSVg4Nl9C VUlMVElOX1ZQTUFEQ1NXRCwKKworICBJWDg2X0JVSUxUSU5fVlBIQUREQlcs CisgIElYODZfQlVJTFRJTl9WUEhBRERCRCwKKyAgSVg4Nl9CVUlMVElOX1ZQ SEFEREJRLAorICBJWDg2X0JVSUxUSU5fVlBIQUREV0QsCisgIElYODZfQlVJ TFRJTl9WUEhBRERXUSwKKyAgSVg4Nl9CVUlMVElOX1ZQSEFERERRLAorICBJ WDg2X0JVSUxUSU5fVlBIQUREVUJXLAorICBJWDg2X0JVSUxUSU5fVlBIQURE VUJELAorICBJWDg2X0JVSUxUSU5fVlBIQUREVUJRLAorICBJWDg2X0JVSUxU SU5fVlBIQUREVVdELAorICBJWDg2X0JVSUxUSU5fVlBIQUREVVdRLAorICBJ WDg2X0JVSUxUSU5fVlBIQUREVURRLAorICBJWDg2X0JVSUxUSU5fVlBIU1VC QlcsCisgIElYODZfQlVJTFRJTl9WUEhTVUJXRCwKKyAgSVg4Nl9CVUlMVElO X1ZQSFNVQkRRLAorCisgIElYODZfQlVJTFRJTl9WUFJPVEIsCisgIElYODZf QlVJTFRJTl9WUFJPVFcsCisgIElYODZfQlVJTFRJTl9WUFJPVEQsCisgIElY ODZfQlVJTFRJTl9WUFJPVFEsCisgIElYODZfQlVJTFRJTl9WUFJPVEJfSU1N LAorICBJWDg2X0JVSUxUSU5fVlBST1RXX0lNTSwKKyAgSVg4Nl9CVUlMVElO X1ZQUk9URF9JTU0sCisgIElYODZfQlVJTFRJTl9WUFJPVFFfSU1NLAorCisg IElYODZfQlVJTFRJTl9WUFNITEIsCisgIElYODZfQlVJTFRJTl9WUFNITFcs CisgIElYODZfQlVJTFRJTl9WUFNITEQsCisgIElYODZfQlVJTFRJTl9WUFNI TFEsCisgIElYODZfQlVJTFRJTl9WUFNIQUIsCisgIElYODZfQlVJTFRJTl9W UFNIQVcsCisgIElYODZfQlVJTFRJTl9WUFNIQUQsCisgIElYODZfQlVJTFRJ Tl9WUFNIQVEsCisKKyAgSVg4Nl9CVUlMVElOX1ZGUkNaU1MsCisgIElYODZf QlVJTFRJTl9WRlJDWlNELAorICBJWDg2X0JVSUxUSU5fVkZSQ1pQUywKKyAg SVg4Nl9CVUlMVElOX1ZGUkNaUEQsCisgIElYODZfQlVJTFRJTl9WRlJDWlBT MjU2LAorICBJWDg2X0JVSUxUSU5fVkZSQ1pQRDI1NiwKKworICBJWDg2X0JV SUxUSU5fVlBDT01FUVVCLAorICBJWDg2X0JVSUxUSU5fVlBDT01ORVVCLAor ICBJWDg2X0JVSUxUSU5fVlBDT01MVFVCLAorICBJWDg2X0JVSUxUSU5fVlBD T01MRVVCLAorICBJWDg2X0JVSUxUSU5fVlBDT01HVFVCLAorICBJWDg2X0JV SUxUSU5fVlBDT01HRVVCLAorICBJWDg2X0JVSUxUSU5fVlBDT01GQUxTRVVC LAorICBJWDg2X0JVSUxUSU5fVlBDT01UUlVFVUIsCisKKyAgSVg4Nl9CVUlM VElOX1ZQQ09NRVFVVywKKyAgSVg4Nl9CVUlMVElOX1ZQQ09NTkVVVywKKyAg SVg4Nl9CVUlMVElOX1ZQQ09NTFRVVywKKyAgSVg4Nl9CVUlMVElOX1ZQQ09N TEVVVywKKyAgSVg4Nl9CVUlMVElOX1ZQQ09NR1RVVywKKyAgSVg4Nl9CVUlM VElOX1ZQQ09NR0VVVywKKyAgSVg4Nl9CVUlMVElOX1ZQQ09NRkFMU0VVVywK KyAgSVg4Nl9CVUlMVElOX1ZQQ09NVFJVRVVXLAorCisgIElYODZfQlVJTFRJ Tl9WUENPTUVRVUQsCisgIElYODZfQlVJTFRJTl9WUENPTU5FVUQsCisgIElY ODZfQlVJTFRJTl9WUENPTUxUVUQsCisgIElYODZfQlVJTFRJTl9WUENPTUxF VUQsCisgIElYODZfQlVJTFRJTl9WUENPTUdUVUQsCisgIElYODZfQlVJTFRJ Tl9WUENPTUdFVUQsCisgIElYODZfQlVJTFRJTl9WUENPTUZBTFNFVUQsCisg IElYODZfQlVJTFRJTl9WUENPTVRSVUVVRCwKKworICBJWDg2X0JVSUxUSU5f VlBDT01FUVVRLAorICBJWDg2X0JVSUxUSU5fVlBDT01ORVVRLAorICBJWDg2 X0JVSUxUSU5fVlBDT01MVFVRLAorICBJWDg2X0JVSUxUSU5fVlBDT01MRVVR LAorICBJWDg2X0JVSUxUSU5fVlBDT01HVFVRLAorICBJWDg2X0JVSUxUSU5f VlBDT01HRVVRLAorICBJWDg2X0JVSUxUSU5fVlBDT01GQUxTRVVRLAorICBJ WDg2X0JVSUxUSU5fVlBDT01UUlVFVVEsCisKKyAgSVg4Nl9CVUlMVElOX1ZQ Q09NRVFCLAorICBJWDg2X0JVSUxUSU5fVlBDT01ORUIsCisgIElYODZfQlVJ TFRJTl9WUENPTUxUQiwKKyAgSVg4Nl9CVUlMVElOX1ZQQ09NTEVCLAorICBJ WDg2X0JVSUxUSU5fVlBDT01HVEIsCisgIElYODZfQlVJTFRJTl9WUENPTUdF QiwKKyAgSVg4Nl9CVUlMVElOX1ZQQ09NRkFMU0VCLAorICBJWDg2X0JVSUxU SU5fVlBDT01UUlVFQiwKKworICBJWDg2X0JVSUxUSU5fVlBDT01FUVcsCisg IElYODZfQlVJTFRJTl9WUENPTU5FVywKKyAgSVg4Nl9CVUlMVElOX1ZQQ09N TFRXLAorICBJWDg2X0JVSUxUSU5fVlBDT01MRVcsCisgIElYODZfQlVJTFRJ Tl9WUENPTUdUVywKKyAgSVg4Nl9CVUlMVElOX1ZQQ09NR0VXLAorICBJWDg2 X0JVSUxUSU5fVlBDT01GQUxTRVcsCisgIElYODZfQlVJTFRJTl9WUENPTVRS VUVXLAorCisgIElYODZfQlVJTFRJTl9WUENPTUVRRCwKKyAgSVg4Nl9CVUlM VElOX1ZQQ09NTkVELAorICBJWDg2X0JVSUxUSU5fVlBDT01MVEQsCisgIElY ODZfQlVJTFRJTl9WUENPTUxFRCwKKyAgSVg4Nl9CVUlMVElOX1ZQQ09NR1RE LAorICBJWDg2X0JVSUxUSU5fVlBDT01HRUQsCisgIElYODZfQlVJTFRJTl9W UENPTUZBTFNFRCwKKyAgSVg4Nl9CVUlMVElOX1ZQQ09NVFJVRUQsCisKKyAg SVg4Nl9CVUlMVElOX1ZQQ09NRVFRLAorICBJWDg2X0JVSUxUSU5fVlBDT01O RVEsCisgIElYODZfQlVJTFRJTl9WUENPTUxUUSwKKyAgSVg4Nl9CVUlMVElO X1ZQQ09NTEVRLAorICBJWDg2X0JVSUxUSU5fVlBDT01HVFEsCisgIElYODZf QlVJTFRJTl9WUENPTUdFUSwKKyAgSVg4Nl9CVUlMVElOX1ZQQ09NRkFMU0VR LAorICBJWDg2X0JVSUxUSU5fVlBDT01UUlVFUSwKKwogICBJWDg2X0JVSUxU SU5fTUFYCiB9OwogCkBAIC0yMTg4MywxMyArMjIxMTgsNTggQEAgc3RhdGlj IGNvbnN0IHN0cnVjdCBidWlsdGluX2Rlc2NyaXB0aW9uCiAgIHsgT1BUSU9O X01BU0tfSVNBX0FWWCwgQ09ERV9GT1JfYXZ4X21vdm1za3BzMjU2LCAiX19i dWlsdGluX2lhMzJfbW92bXNrcHMyNTYiLCBJWDg2X0JVSUxUSU5fTU9WTVNL UFMyNTYsIFVOS05PV04sIChpbnQpIElOVF9GVFlQRV9WOFNGIH0sCiB9Owog Ci0vKiBGTUE0LiAgKi8KKy8qIEZNQTQgYW5kIFhPUC4gICovCiBlbnVtIG11 bHRpX2FyZ190eXBlIHsKICAgTVVMVElfQVJHX1VOS05PV04sCiAgIE1VTFRJ X0FSR18zX1NGLAogICBNVUxUSV9BUkdfM19ERiwKICAgTVVMVElfQVJHXzNf U0YyLAotICBNVUxUSV9BUkdfM19ERjIKKyAgTVVMVElfQVJHXzNfREYyLAor ICBNVUxUSV9BUkdfM19ESSwKKyAgTVVMVElfQVJHXzNfU0ksCisgIE1VTFRJ X0FSR18zX1NJX0RJLAorICBNVUxUSV9BUkdfM19ISSwKKyAgTVVMVElfQVJH XzNfSElfU0ksCisgIE1VTFRJX0FSR18zX1FJLAorICBNVUxUSV9BUkdfM19E STIsCisgIE1VTFRJX0FSR18zX1NJMiwKKyAgTVVMVElfQVJHXzNfSEkyLAor ICBNVUxUSV9BUkdfM19RSTIsCisgIE1VTFRJX0FSR18yX1NGLAorICBNVUxU SV9BUkdfMl9ERiwKKyAgTVVMVElfQVJHXzJfREksCisgIE1VTFRJX0FSR18y X1NJLAorICBNVUxUSV9BUkdfMl9ISSwKKyAgTVVMVElfQVJHXzJfUUksCisg IE1VTFRJX0FSR18yX0RJX0lNTSwKKyAgTVVMVElfQVJHXzJfU0lfSU1NLAor ICBNVUxUSV9BUkdfMl9ISV9JTU0sCisgIE1VTFRJX0FSR18yX1FJX0lNTSwK KyAgTVVMVElfQVJHXzJfRElfQ01QLAorICBNVUxUSV9BUkdfMl9TSV9DTVAs CisgIE1VTFRJX0FSR18yX0hJX0NNUCwKKyAgTVVMVElfQVJHXzJfUUlfQ01Q LAorICBNVUxUSV9BUkdfMl9ESV9URiwKKyAgTVVMVElfQVJHXzJfU0lfVEYs CisgIE1VTFRJX0FSR18yX0hJX1RGLAorICBNVUxUSV9BUkdfMl9RSV9URiwK KyAgTVVMVElfQVJHXzJfU0ZfVEYsCisgIE1VTFRJX0FSR18yX0RGX1RGLAor ICBNVUxUSV9BUkdfMV9TRiwKKyAgTVVMVElfQVJHXzFfREYsCisgIE1VTFRJ X0FSR18xX1NGMiwKKyAgTVVMVElfQVJHXzFfREYyLAorICBNVUxUSV9BUkdf MV9ESSwKKyAgTVVMVElfQVJHXzFfU0ksCisgIE1VTFRJX0FSR18xX0hJLAor ICBNVUxUSV9BUkdfMV9RSSwKKyAgTVVMVElfQVJHXzFfU0lfREksCisgIE1V TFRJX0FSR18xX0hJX0RJLAorICBNVUxUSV9BUkdfMV9ISV9TSSwKKyAgTVVM VElfQVJHXzFfUUlfREksCisgIE1VTFRJX0FSR18xX1FJX1NJLAorICBNVUxU SV9BUkdfMV9RSV9ISQorCiB9OwogCiBzdGF0aWMgY29uc3Qgc3RydWN0IGJ1 aWx0aW5fZGVzY3JpcHRpb24gYmRlc2NfbXVsdGlfYXJnW10gPQpAQCAtMjE5 MzAsNyArMjIyMTAsMTYwIEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgYnVpbHRp bl9kZXNjcmlwdGlvbgogICB7IE9QVElPTl9NQVNLX0lTQV9GTUE0LCBDT0RF X0ZPUl9mbWE0aV9mbWFkZHN1YnY4c2Y0LAkgICAiX19idWlsdGluX2lhMzJf dmZtYWRkc3VicHMyNTYiLCBJWDg2X0JVSUxUSU5fVkZNQUREU1VCUFMyNTYs ICAgIFVOS05PV04sICAgICAgKGludClNVUxUSV9BUkdfM19TRjIgfSwKICAg eyBPUFRJT05fTUFTS19JU0FfRk1BNCwgQ09ERV9GT1JfZm1hNGlfZm1hZGRz dWJ2NGRmNCwJICAgIl9fYnVpbHRpbl9pYTMyX3ZmbWFkZHN1YnBkMjU2Iiwg SVg4Nl9CVUlMVElOX1ZGTUFERFNVQlBEMjU2LCAgICBVTktOT1dOLCAgICAg IChpbnQpTVVMVElfQVJHXzNfREYyIH0sCiAgIHsgT1BUSU9OX01BU0tfSVNB X0ZNQTQsIENPREVfRk9SX2ZtYTRpX2Ztc3ViYWRkdjhzZjQsCSAgICJfX2J1 aWx0aW5faWEzMl92Zm1zdWJhZGRwczI1NiIsIElYODZfQlVJTFRJTl9WRk1T VUJBRERQUzI1NiwgICAgVU5LTk9XTiwgICAgICAoaW50KU1VTFRJX0FSR18z X1NGMiB9LAotICB7IE9QVElPTl9NQVNLX0lTQV9GTUE0LCBDT0RFX0ZPUl9m bWE0aV9mbXN1YmFkZHY0ZGY0LAkgICAiX19idWlsdGluX2lhMzJfdmZtc3Vi YWRkcGQyNTYiLCBJWDg2X0JVSUxUSU5fVkZNU1VCQUREUEQyNTYsICAgIFVO S05PV04sICAgICAgKGludClNVUxUSV9BUkdfM19ERjIgfQorICB7IE9QVElP Tl9NQVNLX0lTQV9GTUE0LCBDT0RFX0ZPUl9mbWE0aV9mbXN1YmFkZHY0ZGY0 LAkgICAiX19idWlsdGluX2lhMzJfdmZtc3ViYWRkcGQyNTYiLCBJWDg2X0JV SUxUSU5fVkZNU1VCQUREUEQyNTYsICAgIFVOS05PV04sICAgICAgKGludClN VUxUSV9BUkdfM19ERjIgfSwKKworICB7IE9QVElPTl9NQVNLX0lTQV9YT1As IENPREVfRk9SX3hvcF9wY21vdl92MmRpLCAgICAgICAgIl9fYnVpbHRpbl9p YTMyX3ZwY21vdiIsICAgICAgSVg4Nl9CVUlMVElOX1ZQQ01PViwJIFVOS05P V04sICAgICAgKGludClNVUxUSV9BUkdfM19ESSB9LAorICB7IE9QVElPTl9N QVNLX0lTQV9YT1AsIENPREVfRk9SX3hvcF9wY21vdl92MmRpLCAgICAgICAg Il9fYnVpbHRpbl9pYTMyX3ZwY21vdl92MmRpIiwgSVg4Nl9CVUlMVElOX1ZQ Q01PVl9WMkRJLCBVTktOT1dOLCAgICAgIChpbnQpTVVMVElfQVJHXzNfREkg fSwKKyAgeyBPUFRJT05fTUFTS19JU0FfWE9QLCBDT0RFX0ZPUl94b3BfcGNt b3ZfdjRzaSwgICAgICAgICJfX2J1aWx0aW5faWEzMl92cGNtb3ZfdjRzaSIs IElYODZfQlVJTFRJTl9WUENNT1ZfVjRTSSwgVU5LTk9XTiwgICAgICAoaW50 KU1VTFRJX0FSR18zX1NJIH0sCisgIHsgT1BUSU9OX01BU0tfSVNBX1hPUCwg Q09ERV9GT1JfeG9wX3BjbW92X3Y4aGksICAgICAgICAiX19idWlsdGluX2lh MzJfdnBjbW92X3Y4aGkiLCBJWDg2X0JVSUxUSU5fVlBDTU9WX1Y4SEksIFVO S05PV04sICAgICAgKGludClNVUxUSV9BUkdfM19ISSB9LAorICB7IE9QVElP Tl9NQVNLX0lTQV9YT1AsIENPREVfRk9SX3hvcF9wY21vdl92MTZxaSwgICAg ICAgIl9fYnVpbHRpbl9pYTMyX3ZwY21vdl92MTZxaSIsSVg4Nl9CVUlMVElO X1ZQQ01PVl9WMTZRSSxVTktOT1dOLCAgICAgIChpbnQpTVVMVElfQVJHXzNf UUkgfSwKKyAgeyBPUFRJT05fTUFTS19JU0FfWE9QLCBDT0RFX0ZPUl94b3Bf cGNtb3ZfdjJkZiwgICAgICAgICJfX2J1aWx0aW5faWEzMl92cGNtb3ZfdjJk ZiIsIElYODZfQlVJTFRJTl9WUENNT1ZfVjJERiwgVU5LTk9XTiwgICAgICAo aW50KU1VTFRJX0FSR18zX0RGIH0sCisgIHsgT1BUSU9OX01BU0tfSVNBX1hP UCwgQ09ERV9GT1JfeG9wX3BjbW92X3Y0c2YsICAgICAgICAiX19idWlsdGlu X2lhMzJfdnBjbW92X3Y0c2YiLCBJWDg2X0JVSUxUSU5fVlBDTU9WX1Y0U0Ys IFVOS05PV04sICAgICAgKGludClNVUxUSV9BUkdfM19TRiB9LAorCisgIHsg T1BUSU9OX01BU0tfSVNBX1hPUCwgQ09ERV9GT1JfeG9wX3BjbW92X3Y0ZGky NTYsICAgICAgICAiX19idWlsdGluX2lhMzJfdnBjbW92MjU2IiwgICAgICAg SVg4Nl9CVUlMVElOX1ZQQ01PVjI1NiwgICAgICAgVU5LTk9XTiwgICAgICAo aW50KU1VTFRJX0FSR18zX0RJMiB9LAorICB7IE9QVElPTl9NQVNLX0lTQV9Y T1AsIENPREVfRk9SX3hvcF9wY21vdl92NGRpMjU2LCAgICAgICAgIl9fYnVp bHRpbl9pYTMyX3ZwY21vdl92NGRpMjU2IiwgIElYODZfQlVJTFRJTl9WUENN T1ZfVjRESTI1NiwgIFVOS05PV04sICAgICAgKGludClNVUxUSV9BUkdfM19E STIgfSwKKyAgeyBPUFRJT05fTUFTS19JU0FfWE9QLCBDT0RFX0ZPUl94b3Bf cGNtb3ZfdjhzaTI1NiwgICAgICAgICJfX2J1aWx0aW5faWEzMl92cGNtb3Zf djhzaTI1NiIsICBJWDg2X0JVSUxUSU5fVlBDTU9WX1Y4U0kyNTYsICBVTktO T1dOLCAgICAgIChpbnQpTVVMVElfQVJHXzNfU0kyIH0sCisgIHsgT1BUSU9O X01BU0tfSVNBX1hPUCwgQ09ERV9GT1JfeG9wX3BjbW92X3YxNmhpMjU2LCAg ICAgICAiX19idWlsdGluX2lhMzJfdnBjbW92X3YxNmhpMjU2IiwgSVg4Nl9C VUlMVElOX1ZQQ01PVl9WMTZISTI1NiwgVU5LTk9XTiwgICAgICAoaW50KU1V TFRJX0FSR18zX0hJMiB9LAorICB7IE9QVElPTl9NQVNLX0lTQV9YT1AsIENP REVfRk9SX3hvcF9wY21vdl92MzJxaTI1NiwgICAgICAgIl9fYnVpbHRpbl9p YTMyX3ZwY21vdl92MzJxaTI1NiIsIElYODZfQlVJTFRJTl9WUENNT1ZfVjMy UUkyNTYsIFVOS05PV04sICAgICAgKGludClNVUxUSV9BUkdfM19RSTIgfSwK KyAgeyBPUFRJT05fTUFTS19JU0FfWE9QLCBDT0RFX0ZPUl94b3BfcGNtb3Zf djRkZjI1NiwgICAgICAgICJfX2J1aWx0aW5faWEzMl92cGNtb3ZfdjRkZjI1 NiIsICBJWDg2X0JVSUxUSU5fVlBDTU9WX1Y0REYyNTYsICBVTktOT1dOLCAg ICAgIChpbnQpTVVMVElfQVJHXzNfREYyIH0sCisgIHsgT1BUSU9OX01BU0tf SVNBX1hPUCwgQ09ERV9GT1JfeG9wX3BjbW92X3Y4c2YyNTYsICAgICAgICAi X19idWlsdGluX2lhMzJfdnBjbW92X3Y4c2YyNTYiLCAgSVg4Nl9CVUlMVElO X1ZQQ01PVl9WOFNGMjU2LCAgVU5LTk9XTiwgICAgICAoaW50KU1VTFRJX0FS R18zX1NGMiB9LAorCisgIHsgT1BUSU9OX01BU0tfSVNBX1hPUCwgQ09ERV9G T1JfeG9wX3BwZXJtLCAgICAgICAgICAgICAiX19idWlsdGluX2lhMzJfdnBw ZXJtIiwgICAgICBJWDg2X0JVSUxUSU5fVlBQRVJNLCAgICAgIFVOS05PV04s ICAgICAgKGludClNVUxUSV9BUkdfM19RSSB9LAorCisgIHsgT1BUSU9OX01B U0tfSVNBX1hPUCwgQ09ERV9GT1JfeG9wX3BtYWNzc3d3LCAgICAgICAgICAi X19idWlsdGluX2lhMzJfdnBtYWNzc3d3IiwgICBJWDg2X0JVSUxUSU5fVlBN QUNTU1dXLCAgIFVOS05PV04sICAgICAgKGludClNVUxUSV9BUkdfM19ISSB9 LAorICB7IE9QVElPTl9NQVNLX0lTQV9YT1AsIENPREVfRk9SX3hvcF9wbWFj c3d3LCAgICAgICAgICAgIl9fYnVpbHRpbl9pYTMyX3ZwbWFjc3d3IiwgICAg SVg4Nl9CVUlMVElOX1ZQTUFDU1dXLCAgICBVTktOT1dOLCAgICAgIChpbnQp TVVMVElfQVJHXzNfSEkgfSwKKyAgeyBPUFRJT05fTUFTS19JU0FfWE9QLCBD T0RFX0ZPUl94b3BfcG1hY3Nzd2QsICAgICAgICAgICJfX2J1aWx0aW5faWEz Ml92cG1hY3Nzd2QiLCAgIElYODZfQlVJTFRJTl9WUE1BQ1NTV0QsICAgVU5L Tk9XTiwgICAgICAoaW50KU1VTFRJX0FSR18zX0hJX1NJIH0sCisgIHsgT1BU SU9OX01BU0tfSVNBX1hPUCwgQ09ERV9GT1JfeG9wX3BtYWNzd2QsICAgICAg ICAgICAiX19idWlsdGluX2lhMzJfdnBtYWNzd2QiLCAgICBJWDg2X0JVSUxU SU5fVlBNQUNTV0QsICAgIFVOS05PV04sICAgICAgKGludClNVUxUSV9BUkdf M19ISV9TSSB9LAorICB7IE9QVElPTl9NQVNLX0lTQV9YT1AsIENPREVfRk9S X3hvcF9wbWFjc3NkZCwgICAgICAgICAgIl9fYnVpbHRpbl9pYTMyX3ZwbWFj c3NkZCIsICAgSVg4Nl9CVUlMVElOX1ZQTUFDU1NERCwgICBVTktOT1dOLCAg ICAgIChpbnQpTVVMVElfQVJHXzNfU0kgfSwKKyAgeyBPUFRJT05fTUFTS19J U0FfWE9QLCBDT0RFX0ZPUl94b3BfcG1hY3NkZCwgICAgICAgICAgICJfX2J1 aWx0aW5faWEzMl92cG1hY3NkZCIsICAgIElYODZfQlVJTFRJTl9WUE1BQ1NE RCwgICAgVU5LTk9XTiwgICAgICAoaW50KU1VTFRJX0FSR18zX1NJIH0sCisg IHsgT1BUSU9OX01BU0tfSVNBX1hPUCwgQ09ERV9GT1JfeG9wX3BtYWNzc2Rx bCwgICAgICAgICAiX19idWlsdGluX2lhMzJfdnBtYWNzc2RxbCIsICBJWDg2 X0JVSUxUSU5fVlBNQUNTU0RRTCwgIFVOS05PV04sICAgICAgKGludClNVUxU SV9BUkdfM19TSV9ESSB9LAorICB7IE9QVElPTl9NQVNLX0lTQV9YT1AsIENP REVfRk9SX3hvcF9wbWFjc3NkcWgsICAgICAgICAgIl9fYnVpbHRpbl9pYTMy X3ZwbWFjc3NkcWgiLCAgSVg4Nl9CVUlMVElOX1ZQTUFDU1NEUUgsICBVTktO T1dOLCAgICAgIChpbnQpTVVMVElfQVJHXzNfU0lfREkgfSwKKyAgeyBPUFRJ T05fTUFTS19JU0FfWE9QLCBDT0RFX0ZPUl94b3BfcG1hY3NkcWwsICAgICAg ICAgICJfX2J1aWx0aW5faWEzMl92cG1hY3NkcWwiLCAgIElYODZfQlVJTFRJ Tl9WUE1BQ1NEUUwsICAgVU5LTk9XTiwgICAgICAoaW50KU1VTFRJX0FSR18z X1NJX0RJIH0sCisgIHsgT1BUSU9OX01BU0tfSVNBX1hPUCwgQ09ERV9GT1Jf eG9wX3BtYWNzZHFoLCAgICAgICAgICAiX19idWlsdGluX2lhMzJfdnBtYWNz ZHFoIiwgICBJWDg2X0JVSUxUSU5fVlBNQUNTRFFILCAgIFVOS05PV04sICAg ICAgKGludClNVUxUSV9BUkdfM19TSV9ESSB9LAorICB7IE9QVElPTl9NQVNL X0lTQV9YT1AsIENPREVfRk9SX3hvcF9wbWFkY3Nzd2QsICAgICAgICAgIl9f YnVpbHRpbl9pYTMyX3ZwbWFkY3Nzd2QiLCAgSVg4Nl9CVUlMVElOX1ZQTUFE Q1NTV0QsICBVTktOT1dOLCAgICAgIChpbnQpTVVMVElfQVJHXzNfSElfU0kg fSwKKyAgeyBPUFRJT05fTUFTS19JU0FfWE9QLCBDT0RFX0ZPUl94b3BfcG1h ZGNzd2QsICAgICAgICAgICJfX2J1aWx0aW5faWEzMl92cG1hZGNzd2QiLCAg IElYODZfQlVJTFRJTl9WUE1BRENTV0QsICAgVU5LTk9XTiwgICAgICAoaW50 KU1VTFRJX0FSR18zX0hJX1NJIH0sCisKKyAgeyBPUFRJT05fTUFTS19JU0Ff WE9QLCBDT0RFX0ZPUl94b3BfdnJvdGx2MmRpMywgICAgICAgICJfX2J1aWx0 aW5faWEzMl92cHJvdHEiLCAgICAgIElYODZfQlVJTFRJTl9WUFJPVFEsICAg ICAgVU5LTk9XTiwgICAgICAoaW50KU1VTFRJX0FSR18yX0RJIH0sCisgIHsg T1BUSU9OX01BU0tfSVNBX1hPUCwgQ09ERV9GT1JfeG9wX3Zyb3RsdjRzaTMs ICAgICAgICAiX19idWlsdGluX2lhMzJfdnByb3RkIiwgICAgICBJWDg2X0JV SUxUSU5fVlBST1RELCAgICAgIFVOS05PV04sICAgICAgKGludClNVUxUSV9B UkdfMl9TSSB9LAorICB7IE9QVElPTl9NQVNLX0lTQV9YT1AsIENPREVfRk9S X3hvcF92cm90bHY4aGkzLCAgICAgICAgIl9fYnVpbHRpbl9pYTMyX3Zwcm90 dyIsICAgICAgSVg4Nl9CVUlMVElOX1ZQUk9UVywgICAgICBVTktOT1dOLCAg ICAgIChpbnQpTVVMVElfQVJHXzJfSEkgfSwKKyAgeyBPUFRJT05fTUFTS19J U0FfWE9QLCBDT0RFX0ZPUl94b3BfdnJvdGx2MTZxaTMsICAgICAgICJfX2J1 aWx0aW5faWEzMl92cHJvdGIiLCAgICAgIElYODZfQlVJTFRJTl9WUFJPVEIs ICAgICAgVU5LTk9XTiwgICAgICAoaW50KU1VTFRJX0FSR18yX1FJIH0sCisg IHsgT1BUSU9OX01BU0tfSVNBX1hPUCwgQ09ERV9GT1JfeG9wX3JvdGx2MmRp MywgICAgICAgICAiX19idWlsdGluX2lhMzJfdnByb3RxaSIsICAgICBJWDg2 X0JVSUxUSU5fVlBST1RRX0lNTSwgIFVOS05PV04sICAgICAgKGludClNVUxU SV9BUkdfMl9ESV9JTU0gfSwKKyAgeyBPUFRJT05fTUFTS19JU0FfWE9QLCBD T0RFX0ZPUl94b3Bfcm90bHY0c2kzLCAgICAgICAgICJfX2J1aWx0aW5faWEz Ml92cHJvdGRpIiwgICAgIElYODZfQlVJTFRJTl9WUFJPVERfSU1NLCAgVU5L Tk9XTiwgICAgICAoaW50KU1VTFRJX0FSR18yX1NJX0lNTSB9LAorICB7IE9Q VElPTl9NQVNLX0lTQV9YT1AsIENPREVfRk9SX3hvcF9yb3RsdjhoaTMsICAg ICAgICAgIl9fYnVpbHRpbl9pYTMyX3Zwcm90d2kiLCAgICAgSVg4Nl9CVUlM VElOX1ZQUk9UV19JTU0sICBVTktOT1dOLCAgICAgIChpbnQpTVVMVElfQVJH XzJfSElfSU1NIH0sCisgIHsgT1BUSU9OX01BU0tfSVNBX1hPUCwgQ09ERV9G T1JfeG9wX3JvdGx2MTZxaTMsICAgICAgICAiX19idWlsdGluX2lhMzJfdnBy b3RiaSIsICAgICBJWDg2X0JVSUxUSU5fVlBST1RCX0lNTSwgIFVOS05PV04s ICAgICAgKGludClNVUxUSV9BUkdfMl9RSV9JTU0gfSwKKyAgeyBPUFRJT05f TUFTS19JU0FfWE9QLCBDT0RFX0ZPUl94b3BfYXNobHYyZGkzLCAgICAgICAg ICJfX2J1aWx0aW5faWEzMl92cHNoYXEiLCAgICAgIElYODZfQlVJTFRJTl9W UFNIQVEsICAgICAgVU5LTk9XTiwgICAgICAoaW50KU1VTFRJX0FSR18yX0RJ IH0sCisgIHsgT1BUSU9OX01BU0tfSVNBX1hPUCwgQ09ERV9GT1JfeG9wX2Fz aGx2NHNpMywgICAgICAgICAiX19idWlsdGluX2lhMzJfdnBzaGFkIiwgICAg ICBJWDg2X0JVSUxUSU5fVlBTSEFELCAgICAgIFVOS05PV04sICAgICAgKGlu dClNVUxUSV9BUkdfMl9TSSB9LAorICB7IE9QVElPTl9NQVNLX0lTQV9YT1As IENPREVfRk9SX3hvcF9hc2hsdjhoaTMsICAgICAgICAgIl9fYnVpbHRpbl9p YTMyX3Zwc2hhdyIsICAgICAgSVg4Nl9CVUlMVElOX1ZQU0hBVywgICAgICBV TktOT1dOLCAgICAgIChpbnQpTVVMVElfQVJHXzJfSEkgfSwKKyAgeyBPUFRJ T05fTUFTS19JU0FfWE9QLCBDT0RFX0ZPUl94b3BfYXNobHYxNnFpMywgICAg ICAgICJfX2J1aWx0aW5faWEzMl92cHNoYWIiLCAgICAgIElYODZfQlVJTFRJ Tl9WUFNIQUIsICAgICAgVU5LTk9XTiwgICAgICAoaW50KU1VTFRJX0FSR18y X1FJIH0sCisgIHsgT1BUSU9OX01BU0tfSVNBX1hPUCwgQ09ERV9GT1JfeG9w X2xzaGx2MmRpMywgICAgICAgICAiX19idWlsdGluX2lhMzJfdnBzaGxxIiwg ICAgICBJWDg2X0JVSUxUSU5fVlBTSExRLCAgICAgIFVOS05PV04sICAgICAg KGludClNVUxUSV9BUkdfMl9ESSB9LAorICB7IE9QVElPTl9NQVNLX0lTQV9Y T1AsIENPREVfRk9SX3hvcF9sc2hsdjRzaTMsICAgICAgICAgIl9fYnVpbHRp bl9pYTMyX3Zwc2hsZCIsICAgICAgSVg4Nl9CVUlMVElOX1ZQU0hMRCwgICAg ICBVTktOT1dOLCAgICAgIChpbnQpTVVMVElfQVJHXzJfU0kgfSwKKyAgeyBP UFRJT05fTUFTS19JU0FfWE9QLCBDT0RFX0ZPUl94b3BfbHNobHY4aGkzLCAg ICAgICAgICJfX2J1aWx0aW5faWEzMl92cHNobHciLCAgICAgIElYODZfQlVJ TFRJTl9WUFNITFcsICAgICAgVU5LTk9XTiwgICAgICAoaW50KU1VTFRJX0FS R18yX0hJIH0sCisgIHsgT1BUSU9OX01BU0tfSVNBX1hPUCwgQ09ERV9GT1Jf eG9wX2xzaGx2MTZxaTMsICAgICAgICAiX19idWlsdGluX2lhMzJfdnBzaGxi IiwgICAgICBJWDg2X0JVSUxUSU5fVlBTSExCLCAgICAgIFVOS05PV04sICAg ICAgKGludClNVUxUSV9BUkdfMl9RSSB9LAorCisgIHsgT1BUSU9OX01BU0tf SVNBX1hPUCwgQ09ERV9GT1JfeG9wX3ZtZnJjenY0c2YyLCAgICAgICAiX19i dWlsdGluX2lhMzJfdmZyY3pzcyIsICAgICBJWDg2X0JVSUxUSU5fVkZSQ1pT UywgICAgIFVOS05PV04sICAgICAgKGludClNVUxUSV9BUkdfMl9TRiB9LAor ICB7IE9QVElPTl9NQVNLX0lTQV9YT1AsIENPREVfRk9SX3hvcF92bWZyY3p2 MmRmMiwgICAgICAgIl9fYnVpbHRpbl9pYTMyX3ZmcmN6c2QiLCAgICAgSVg4 Nl9CVUlMVElOX1ZGUkNaU0QsICAgICBVTktOT1dOLCAgICAgIChpbnQpTVVM VElfQVJHXzJfREYgfSwKKyAgeyBPUFRJT05fTUFTS19JU0FfWE9QLCBDT0RF X0ZPUl94b3BfZnJjenY0c2YyLCAgICAgICAgICJfX2J1aWx0aW5faWEzMl92 ZnJjenBzIiwgICAgIElYODZfQlVJTFRJTl9WRlJDWlBTLCAgICAgVU5LTk9X TiwgICAgICAoaW50KU1VTFRJX0FSR18xX1NGIH0sCisgIHsgT1BUSU9OX01B U0tfSVNBX1hPUCwgQ09ERV9GT1JfeG9wX2ZyY3p2MmRmMiwgICAgICAgICAi X19idWlsdGluX2lhMzJfdmZyY3pwZCIsICAgICBJWDg2X0JVSUxUSU5fVkZS Q1pQRCwgICAgIFVOS05PV04sICAgICAgKGludClNVUxUSV9BUkdfMV9ERiB9 LAorICB7IE9QVElPTl9NQVNLX0lTQV9YT1AsIENPREVfRk9SX3hvcF9mcmN6 djhzZjIyNTYsICAgICAgICAgIl9fYnVpbHRpbl9pYTMyX3ZmcmN6cHMyNTYi LCAgSVg4Nl9CVUlMVElOX1ZGUkNaUFMyNTYsICBVTktOT1dOLCAgICAgIChp bnQpTVVMVElfQVJHXzFfU0YyIH0sCisgIHsgT1BUSU9OX01BU0tfSVNBX1hP UCwgQ09ERV9GT1JfeG9wX2ZyY3p2NGRmMjI1NiwgICAgICAgICAiX19idWls dGluX2lhMzJfdmZyY3pwZDI1NiIsICBJWDg2X0JVSUxUSU5fVkZSQ1pQRDI1 NiwgIFVOS05PV04sICAgICAgKGludClNVUxUSV9BUkdfMV9ERjIgfSwKKwor ICB7IE9QVElPTl9NQVNLX0lTQV9YT1AsIENPREVfRk9SX3hvcF9waGFkZGJ3 LCAgICAgICAgICAgIl9fYnVpbHRpbl9pYTMyX3ZwaGFkZGJ3IiwgICAgSVg4 Nl9CVUlMVElOX1ZQSEFEREJXLCAgICBVTktOT1dOLCAgICAgIChpbnQpTVVM VElfQVJHXzFfUUlfSEkgfSwKKyAgeyBPUFRJT05fTUFTS19JU0FfWE9QLCBD T0RFX0ZPUl94b3BfcGhhZGRiZCwgICAgICAgICAgICJfX2J1aWx0aW5faWEz Ml92cGhhZGRiZCIsICAgIElYODZfQlVJTFRJTl9WUEhBRERCRCwgICAgVU5L Tk9XTiwgICAgICAoaW50KU1VTFRJX0FSR18xX1FJX1NJIH0sCisgIHsgT1BU SU9OX01BU0tfSVNBX1hPUCwgQ09ERV9GT1JfeG9wX3BoYWRkYnEsICAgICAg ICAgICAiX19idWlsdGluX2lhMzJfdnBoYWRkYnEiLCAgICBJWDg2X0JVSUxU SU5fVlBIQUREQlEsICAgIFVOS05PV04sICAgICAgKGludClNVUxUSV9BUkdf MV9RSV9ESSB9LAorICB7IE9QVElPTl9NQVNLX0lTQV9YT1AsIENPREVfRk9S X3hvcF9waGFkZHdkLCAgICAgICAgICAgIl9fYnVpbHRpbl9pYTMyX3ZwaGFk ZHdkIiwgICAgSVg4Nl9CVUlMVElOX1ZQSEFERFdELCAgICBVTktOT1dOLCAg ICAgIChpbnQpTVVMVElfQVJHXzFfSElfU0kgfSwKKyAgeyBPUFRJT05fTUFT S19JU0FfWE9QLCBDT0RFX0ZPUl94b3BfcGhhZGR3cSwgICAgICAgICAgICJf X2J1aWx0aW5faWEzMl92cGhhZGR3cSIsICAgIElYODZfQlVJTFRJTl9WUEhB RERXUSwgICAgVU5LTk9XTiwgICAgICAoaW50KU1VTFRJX0FSR18xX0hJX0RJ IH0sCisgIHsgT1BUSU9OX01BU0tfSVNBX1hPUCwgQ09ERV9GT1JfeG9wX3Bo YWRkZHEsICAgICAgICAgICAiX19idWlsdGluX2lhMzJfdnBoYWRkZHEiLCAg ICBJWDg2X0JVSUxUSU5fVlBIQURERFEsICAgIFVOS05PV04sICAgICAgKGlu dClNVUxUSV9BUkdfMV9TSV9ESSB9LAorICB7IE9QVElPTl9NQVNLX0lTQV9Y T1AsIENPREVfRk9SX3hvcF9waGFkZHVidywgICAgICAgICAgIl9fYnVpbHRp bl9pYTMyX3ZwaGFkZHVidyIsICAgSVg4Nl9CVUlMVElOX1ZQSEFERFVCVywg ICBVTktOT1dOLCAgICAgIChpbnQpTVVMVElfQVJHXzFfUUlfSEkgfSwKKyAg eyBPUFRJT05fTUFTS19JU0FfWE9QLCBDT0RFX0ZPUl94b3BfcGhhZGR1YmQs ICAgICAgICAgICJfX2J1aWx0aW5faWEzMl92cGhhZGR1YmQiLCAgIElYODZf QlVJTFRJTl9WUEhBRERVQkQsICAgVU5LTk9XTiwgICAgICAoaW50KU1VTFRJ X0FSR18xX1FJX1NJIH0sCisgIHsgT1BUSU9OX01BU0tfSVNBX1hPUCwgQ09E RV9GT1JfeG9wX3BoYWRkdWJxLCAgICAgICAgICAiX19idWlsdGluX2lhMzJf dnBoYWRkdWJxIiwgICBJWDg2X0JVSUxUSU5fVlBIQUREVUJRLCAgIFVOS05P V04sICAgICAgKGludClNVUxUSV9BUkdfMV9RSV9ESSB9LAorICB7IE9QVElP Tl9NQVNLX0lTQV9YT1AsIENPREVfRk9SX3hvcF9waGFkZHV3ZCwgICAgICAg ICAgIl9fYnVpbHRpbl9pYTMyX3ZwaGFkZHV3ZCIsICAgSVg4Nl9CVUlMVElO X1ZQSEFERFVXRCwgICBVTktOT1dOLCAgICAgIChpbnQpTVVMVElfQVJHXzFf SElfU0kgfSwKKyAgeyBPUFRJT05fTUFTS19JU0FfWE9QLCBDT0RFX0ZPUl94 b3BfcGhhZGR1d3EsICAgICAgICAgICJfX2J1aWx0aW5faWEzMl92cGhhZGR1 d3EiLCAgIElYODZfQlVJTFRJTl9WUEhBRERVV1EsICAgVU5LTk9XTiwgICAg ICAoaW50KU1VTFRJX0FSR18xX0hJX0RJIH0sCisgIHsgT1BUSU9OX01BU0tf SVNBX1hPUCwgQ09ERV9GT1JfeG9wX3BoYWRkdWRxLCAgICAgICAgICAiX19i dWlsdGluX2lhMzJfdnBoYWRkdWRxIiwgICBJWDg2X0JVSUxUSU5fVlBIQURE VURRLCAgIFVOS05PV04sICAgICAgKGludClNVUxUSV9BUkdfMV9TSV9ESSB9 LAorICB7IE9QVElPTl9NQVNLX0lTQV9YT1AsIENPREVfRk9SX3hvcF9waHN1 YmJ3LCAgICAgICAgICAgIl9fYnVpbHRpbl9pYTMyX3ZwaHN1YmJ3IiwgICAg SVg4Nl9CVUlMVElOX1ZQSFNVQkJXLCAgICBVTktOT1dOLCAgICAgIChpbnQp TVVMVElfQVJHXzFfUUlfSEkgfSwKKyAgeyBPUFRJT05fTUFTS19JU0FfWE9Q LCBDT0RFX0ZPUl94b3BfcGhzdWJ3ZCwgICAgICAgICAgICJfX2J1aWx0aW5f aWEzMl92cGhzdWJ3ZCIsICAgIElYODZfQlVJTFRJTl9WUEhTVUJXRCwgICAg VU5LTk9XTiwgICAgICAoaW50KU1VTFRJX0FSR18xX0hJX1NJIH0sCisgIHsg T1BUSU9OX01BU0tfSVNBX1hPUCwgQ09ERV9GT1JfeG9wX3Boc3ViZHEsICAg ICAgICAgICAiX19idWlsdGluX2lhMzJfdnBoc3ViZHEiLCAgICBJWDg2X0JV SUxUSU5fVlBIU1VCRFEsICAgIFVOS05PV04sICAgICAgKGludClNVUxUSV9B UkdfMV9TSV9ESSB9LAorCisgIHsgT1BUSU9OX01BU0tfSVNBX1hPUCwgQ09E RV9GT1JfeG9wX21hc2tjbXB2MTZxaTMsICAgICAiX19idWlsdGluX2lhMzJf dnBjb21lcWIiLCAgICBJWDg2X0JVSUxUSU5fVlBDT01FUUIsICAgIEVRLCAg ICAgICAgICAgKGludClNVUxUSV9BUkdfMl9RSV9DTVAgfSwKKyAgeyBPUFRJ T05fTUFTS19JU0FfWE9QLCBDT0RFX0ZPUl94b3BfbWFza2NtcHYxNnFpMywg ICAgICJfX2J1aWx0aW5faWEzMl92cGNvbW5lYiIsICAgIElYODZfQlVJTFRJ Tl9WUENPTU5FQiwgICAgTkUsICAgICAgICAgICAoaW50KU1VTFRJX0FSR18y X1FJX0NNUCB9LAorICB7IE9QVElPTl9NQVNLX0lTQV9YT1AsIENPREVfRk9S X3hvcF9tYXNrY21wdjE2cWkzLCAgICAgIl9fYnVpbHRpbl9pYTMyX3ZwY29t bmVxYiIsICAgSVg4Nl9CVUlMVElOX1ZQQ09NTkVCLCAgICBORSwgICAgICAg ICAgIChpbnQpTVVMVElfQVJHXzJfUUlfQ01QIH0sCisgIHsgT1BUSU9OX01B U0tfSVNBX1hPUCwgQ09ERV9GT1JfeG9wX21hc2tjbXB2MTZxaTMsICAgICAi X19idWlsdGluX2lhMzJfdnBjb21sdGIiLCAgICBJWDg2X0JVSUxUSU5fVlBD T01MVEIsICAgIExULCAgICAgICAgICAgKGludClNVUxUSV9BUkdfMl9RSV9D TVAgfSwKKyAgeyBPUFRJT05fTUFTS19JU0FfWE9QLCBDT0RFX0ZPUl94b3Bf bWFza2NtcHYxNnFpMywgICAgICJfX2J1aWx0aW5faWEzMl92cGNvbWxlYiIs ICAgIElYODZfQlVJTFRJTl9WUENPTUxFQiwgICAgTEUsICAgICAgICAgICAo aW50KU1VTFRJX0FSR18yX1FJX0NNUCB9LAorICB7IE9QVElPTl9NQVNLX0lT QV9YT1AsIENPREVfRk9SX3hvcF9tYXNrY21wdjE2cWkzLCAgICAgIl9fYnVp bHRpbl9pYTMyX3ZwY29tZ3RiIiwgICAgSVg4Nl9CVUlMVElOX1ZQQ09NR1RC LCAgICBHVCwgICAgICAgICAgIChpbnQpTVVMVElfQVJHXzJfUUlfQ01QIH0s CisgIHsgT1BUSU9OX01BU0tfSVNBX1hPUCwgQ09ERV9GT1JfeG9wX21hc2tj bXB2MTZxaTMsICAgICAiX19idWlsdGluX2lhMzJfdnBjb21nZWIiLCAgICBJ WDg2X0JVSUxUSU5fVlBDT01HRUIsICAgIEdFLCAgICAgICAgICAgKGludClN VUxUSV9BUkdfMl9RSV9DTVAgfSwKKworICB7IE9QVElPTl9NQVNLX0lTQV9Y T1AsIENPREVfRk9SX3hvcF9tYXNrY21wdjhoaTMsICAgICAgIl9fYnVpbHRp bl9pYTMyX3ZwY29tZXF3IiwgICAgSVg4Nl9CVUlMVElOX1ZQQ09NRVFXLCAg ICBFUSwgICAgICAgICAgIChpbnQpTVVMVElfQVJHXzJfSElfQ01QIH0sCisg IHsgT1BUSU9OX01BU0tfSVNBX1hPUCwgQ09ERV9GT1JfeG9wX21hc2tjbXB2 OGhpMywgICAgICAiX19idWlsdGluX2lhMzJfdnBjb21uZXciLCAgICBJWDg2 X0JVSUxUSU5fVlBDT01ORVcsICAgIE5FLCAgICAgICAgICAgKGludClNVUxU SV9BUkdfMl9ISV9DTVAgfSwKKyAgeyBPUFRJT05fTUFTS19JU0FfWE9QLCBD T0RFX0ZPUl94b3BfbWFza2NtcHY4aGkzLCAgICAgICJfX2J1aWx0aW5faWEz Ml92cGNvbW5lcXciLCAgIElYODZfQlVJTFRJTl9WUENPTU5FVywgICAgTkUs ICAgICAgICAgICAoaW50KU1VTFRJX0FSR18yX0hJX0NNUCB9LAorICB7IE9Q VElPTl9NQVNLX0lTQV9YT1AsIENPREVfRk9SX3hvcF9tYXNrY21wdjhoaTMs ICAgICAgIl9fYnVpbHRpbl9pYTMyX3ZwY29tbHR3IiwgICAgSVg4Nl9CVUlM VElOX1ZQQ09NTFRXLCAgICBMVCwgICAgICAgICAgIChpbnQpTVVMVElfQVJH XzJfSElfQ01QIH0sCisgIHsgT1BUSU9OX01BU0tfSVNBX1hPUCwgQ09ERV9G T1JfeG9wX21hc2tjbXB2OGhpMywgICAgICAiX19idWlsdGluX2lhMzJfdnBj b21sZXciLCAgICBJWDg2X0JVSUxUSU5fVlBDT01MRVcsICAgIExFLCAgICAg ICAgICAgKGludClNVUxUSV9BUkdfMl9ISV9DTVAgfSwKKyAgeyBPUFRJT05f TUFTS19JU0FfWE9QLCBDT0RFX0ZPUl94b3BfbWFza2NtcHY4aGkzLCAgICAg ICJfX2J1aWx0aW5faWEzMl92cGNvbWd0dyIsICAgIElYODZfQlVJTFRJTl9W UENPTUdUVywgICAgR1QsICAgICAgICAgICAoaW50KU1VTFRJX0FSR18yX0hJ X0NNUCB9LAorICB7IE9QVElPTl9NQVNLX0lTQV9YT1AsIENPREVfRk9SX3hv cF9tYXNrY21wdjhoaTMsICAgICAgIl9fYnVpbHRpbl9pYTMyX3ZwY29tZ2V3 IiwgICAgSVg4Nl9CVUlMVElOX1ZQQ09NR0VXLCAgICBHRSwgICAgICAgICAg IChpbnQpTVVMVElfQVJHXzJfSElfQ01QIH0sCisKKyAgeyBPUFRJT05fTUFT S19JU0FfWE9QLCBDT0RFX0ZPUl94b3BfbWFza2NtcHY0c2kzLCAgICAgICJf X2J1aWx0aW5faWEzMl92cGNvbWVxZCIsICAgIElYODZfQlVJTFRJTl9WUENP TUVRRCwgICAgRVEsICAgICAgICAgICAoaW50KU1VTFRJX0FSR18yX1NJX0NN UCB9LAorICB7IE9QVElPTl9NQVNLX0lTQV9YT1AsIENPREVfRk9SX3hvcF9t YXNrY21wdjRzaTMsICAgICAgIl9fYnVpbHRpbl9pYTMyX3ZwY29tbmVkIiwg ICAgSVg4Nl9CVUlMVElOX1ZQQ09NTkVELCAgICBORSwgICAgICAgICAgIChp bnQpTVVMVElfQVJHXzJfU0lfQ01QIH0sCisgIHsgT1BUSU9OX01BU0tfSVNB X1hPUCwgQ09ERV9GT1JfeG9wX21hc2tjbXB2NHNpMywgICAgICAiX19idWls dGluX2lhMzJfdnBjb21uZXFkIiwgICBJWDg2X0JVSUxUSU5fVlBDT01ORUQs ICAgIE5FLCAgICAgICAgICAgKGludClNVUxUSV9BUkdfMl9TSV9DTVAgfSwK KyAgeyBPUFRJT05fTUFTS19JU0FfWE9QLCBDT0RFX0ZPUl94b3BfbWFza2Nt cHY0c2kzLCAgICAgICJfX2J1aWx0aW5faWEzMl92cGNvbWx0ZCIsICAgIElY ODZfQlVJTFRJTl9WUENPTUxURCwgICAgTFQsICAgICAgICAgICAoaW50KU1V TFRJX0FSR18yX1NJX0NNUCB9LAorICB7IE9QVElPTl9NQVNLX0lTQV9YT1As IENPREVfRk9SX3hvcF9tYXNrY21wdjRzaTMsICAgICAgIl9fYnVpbHRpbl9p YTMyX3ZwY29tbGVkIiwgICAgSVg4Nl9CVUlMVElOX1ZQQ09NTEVELCAgICBM RSwgICAgICAgICAgIChpbnQpTVVMVElfQVJHXzJfU0lfQ01QIH0sCisgIHsg T1BUSU9OX01BU0tfSVNBX1hPUCwgQ09ERV9GT1JfeG9wX21hc2tjbXB2NHNp MywgICAgICAiX19idWlsdGluX2lhMzJfdnBjb21ndGQiLCAgICBJWDg2X0JV SUxUSU5fVlBDT01HVEQsICAgIEdULCAgICAgICAgICAgKGludClNVUxUSV9B UkdfMl9TSV9DTVAgfSwKKyAgeyBPUFRJT05fTUFTS19JU0FfWE9QLCBDT0RF X0ZPUl94b3BfbWFza2NtcHY0c2kzLCAgICAgICJfX2J1aWx0aW5faWEzMl92 cGNvbWdlZCIsICAgIElYODZfQlVJTFRJTl9WUENPTUdFRCwgICAgR0UsICAg ICAgICAgICAoaW50KU1VTFRJX0FSR18yX1NJX0NNUCB9LAorCisgIHsgT1BU SU9OX01BU0tfSVNBX1hPUCwgQ09ERV9GT1JfeG9wX21hc2tjbXB2MmRpMywg ICAgICAiX19idWlsdGluX2lhMzJfdnBjb21lcXEiLCAgICBJWDg2X0JVSUxU SU5fVlBDT01FUVEsICAgIEVRLCAgICAgICAgICAgKGludClNVUxUSV9BUkdf Ml9ESV9DTVAgfSwKKyAgeyBPUFRJT05fTUFTS19JU0FfWE9QLCBDT0RFX0ZP Ul94b3BfbWFza2NtcHYyZGkzLCAgICAgICJfX2J1aWx0aW5faWEzMl92cGNv bW5lcSIsICAgIElYODZfQlVJTFRJTl9WUENPTU5FUSwgICAgTkUsICAgICAg ICAgICAoaW50KU1VTFRJX0FSR18yX0RJX0NNUCB9LAorICB7IE9QVElPTl9N QVNLX0lTQV9YT1AsIENPREVfRk9SX3hvcF9tYXNrY21wdjJkaTMsICAgICAg Il9fYnVpbHRpbl9pYTMyX3ZwY29tbmVxcSIsICAgSVg4Nl9CVUlMVElOX1ZQ Q09NTkVRLCAgICBORSwgICAgICAgICAgIChpbnQpTVVMVElfQVJHXzJfRElf Q01QIH0sCisgIHsgT1BUSU9OX01BU0tfSVNBX1hPUCwgQ09ERV9GT1JfeG9w X21hc2tjbXB2MmRpMywgICAgICAiX19idWlsdGluX2lhMzJfdnBjb21sdHEi LCAgICBJWDg2X0JVSUxUSU5fVlBDT01MVFEsICAgIExULCAgICAgICAgICAg KGludClNVUxUSV9BUkdfMl9ESV9DTVAgfSwKKyAgeyBPUFRJT05fTUFTS19J U0FfWE9QLCBDT0RFX0ZPUl94b3BfbWFza2NtcHYyZGkzLCAgICAgICJfX2J1 aWx0aW5faWEzMl92cGNvbWxlcSIsICAgIElYODZfQlVJTFRJTl9WUENPTUxF USwgICAgTEUsICAgICAgICAgICAoaW50KU1VTFRJX0FSR18yX0RJX0NNUCB9 LAorICB7IE9QVElPTl9NQVNLX0lTQV9YT1AsIENPREVfRk9SX3hvcF9tYXNr Y21wdjJkaTMsICAgICAgIl9fYnVpbHRpbl9pYTMyX3ZwY29tZ3RxIiwgICAg SVg4Nl9CVUlMVElOX1ZQQ09NR1RRLCAgICBHVCwgICAgICAgICAgIChpbnQp TVVMVElfQVJHXzJfRElfQ01QIH0sCisgIHsgT1BUSU9OX01BU0tfSVNBX1hP UCwgQ09ERV9GT1JfeG9wX21hc2tjbXB2MmRpMywgICAgICAiX19idWlsdGlu X2lhMzJfdnBjb21nZXEiLCAgICBJWDg2X0JVSUxUSU5fVlBDT01HRVEsICAg IEdFLCAgICAgICAgICAgKGludClNVUxUSV9BUkdfMl9ESV9DTVAgfSwKKwor ICB7IE9QVElPTl9NQVNLX0lTQV9YT1AsIENPREVfRk9SX3hvcF9tYXNrY21w X3VuczJ2MTZxaTMsIl9fYnVpbHRpbl9pYTMyX3ZwY29tZXF1YiIsICAgSVg4 Nl9CVUlMVElOX1ZQQ09NRVFVQiwgICBFUSwgICAgICAgICAgIChpbnQpTVVM VElfQVJHXzJfUUlfQ01QIH0sCisgIHsgT1BUSU9OX01BU0tfSVNBX1hPUCwg Q09ERV9GT1JfeG9wX21hc2tjbXBfdW5zMnYxNnFpMywiX19idWlsdGluX2lh MzJfdnBjb21uZXViIiwgICBJWDg2X0JVSUxUSU5fVlBDT01ORVVCLCAgIE5F LCAgICAgICAgICAgKGludClNVUxUSV9BUkdfMl9RSV9DTVAgfSwKKyAgeyBP UFRJT05fTUFTS19JU0FfWE9QLCBDT0RFX0ZPUl94b3BfbWFza2NtcF91bnMy djE2cWkzLCJfX2J1aWx0aW5faWEzMl92cGNvbW5lcXViIiwgIElYODZfQlVJ TFRJTl9WUENPTU5FVUIsICAgTkUsICAgICAgICAgICAoaW50KU1VTFRJX0FS R18yX1FJX0NNUCB9LAorICB7IE9QVElPTl9NQVNLX0lTQV9YT1AsIENPREVf Rk9SX3hvcF9tYXNrY21wX3Vuc3YxNnFpMywgIl9fYnVpbHRpbl9pYTMyX3Zw Y29tbHR1YiIsICAgSVg4Nl9CVUlMVElOX1ZQQ09NTFRVQiwgICBMVFUsICAg ICAgICAgIChpbnQpTVVMVElfQVJHXzJfUUlfQ01QIH0sCisgIHsgT1BUSU9O X01BU0tfSVNBX1hPUCwgQ09ERV9GT1JfeG9wX21hc2tjbXBfdW5zdjE2cWkz LCAiX19idWlsdGluX2lhMzJfdnBjb21sZXViIiwgICBJWDg2X0JVSUxUSU5f VlBDT01MRVVCLCAgIExFVSwgICAgICAgICAgKGludClNVUxUSV9BUkdfMl9R SV9DTVAgfSwKKyAgeyBPUFRJT05fTUFTS19JU0FfWE9QLCBDT0RFX0ZPUl94 b3BfbWFza2NtcF91bnN2MTZxaTMsICJfX2J1aWx0aW5faWEzMl92cGNvbWd0 dWIiLCAgIElYODZfQlVJTFRJTl9WUENPTUdUVUIsICAgR1RVLCAgICAgICAg ICAoaW50KU1VTFRJX0FSR18yX1FJX0NNUCB9LAorICB7IE9QVElPTl9NQVNL X0lTQV9YT1AsIENPREVfRk9SX3hvcF9tYXNrY21wX3Vuc3YxNnFpMywgIl9f YnVpbHRpbl9pYTMyX3ZwY29tZ2V1YiIsICAgSVg4Nl9CVUlMVElOX1ZQQ09N R0VVQiwgICBHRVUsICAgICAgICAgIChpbnQpTVVMVElfQVJHXzJfUUlfQ01Q IH0sCisKKyAgeyBPUFRJT05fTUFTS19JU0FfWE9QLCBDT0RFX0ZPUl94b3Bf bWFza2NtcF91bnMydjhoaTMsICJfX2J1aWx0aW5faWEzMl92cGNvbWVxdXci LCAgIElYODZfQlVJTFRJTl9WUENPTUVRVVcsICAgRVEsICAgICAgICAgICAo aW50KU1VTFRJX0FSR18yX0hJX0NNUCB9LAorICB7IE9QVElPTl9NQVNLX0lT QV9YT1AsIENPREVfRk9SX3hvcF9tYXNrY21wX3VuczJ2OGhpMywgIl9fYnVp bHRpbl9pYTMyX3ZwY29tbmV1dyIsICAgSVg4Nl9CVUlMVElOX1ZQQ09NTkVV VywgICBORSwgICAgICAgICAgIChpbnQpTVVMVElfQVJHXzJfSElfQ01QIH0s CisgIHsgT1BUSU9OX01BU0tfSVNBX1hPUCwgQ09ERV9GT1JfeG9wX21hc2tj bXBfdW5zMnY4aGkzLCAiX19idWlsdGluX2lhMzJfdnBjb21uZXF1dyIsICBJ WDg2X0JVSUxUSU5fVlBDT01ORVVXLCAgIE5FLCAgICAgICAgICAgKGludClN VUxUSV9BUkdfMl9ISV9DTVAgfSwKKyAgeyBPUFRJT05fTUFTS19JU0FfWE9Q LCBDT0RFX0ZPUl94b3BfbWFza2NtcF91bnN2OGhpMywgICJfX2J1aWx0aW5f aWEzMl92cGNvbWx0dXciLCAgIElYODZfQlVJTFRJTl9WUENPTUxUVVcsICAg TFRVLCAgICAgICAgICAoaW50KU1VTFRJX0FSR18yX0hJX0NNUCB9LAorICB7 IE9QVElPTl9NQVNLX0lTQV9YT1AsIENPREVfRk9SX3hvcF9tYXNrY21wX3Vu c3Y4aGkzLCAgIl9fYnVpbHRpbl9pYTMyX3ZwY29tbGV1dyIsICAgSVg4Nl9C VUlMVElOX1ZQQ09NTEVVVywgICBMRVUsICAgICAgICAgIChpbnQpTVVMVElf QVJHXzJfSElfQ01QIH0sCisgIHsgT1BUSU9OX01BU0tfSVNBX1hPUCwgQ09E RV9GT1JfeG9wX21hc2tjbXBfdW5zdjhoaTMsICAiX19idWlsdGluX2lhMzJf dnBjb21ndHV3IiwgICBJWDg2X0JVSUxUSU5fVlBDT01HVFVXLCAgIEdUVSwg ICAgICAgICAgKGludClNVUxUSV9BUkdfMl9ISV9DTVAgfSwKKyAgeyBPUFRJ T05fTUFTS19JU0FfWE9QLCBDT0RFX0ZPUl94b3BfbWFza2NtcF91bnN2OGhp MywgICJfX2J1aWx0aW5faWEzMl92cGNvbWdldXciLCAgIElYODZfQlVJTFRJ Tl9WUENPTUdFVVcsICAgR0VVLCAgICAgICAgICAoaW50KU1VTFRJX0FSR18y X0hJX0NNUCB9LAorCisgIHsgT1BUSU9OX01BU0tfSVNBX1hPUCwgQ09ERV9G T1JfeG9wX21hc2tjbXBfdW5zMnY0c2kzLCAiX19idWlsdGluX2lhMzJfdnBj b21lcXVkIiwgICBJWDg2X0JVSUxUSU5fVlBDT01FUVVELCAgIEVRLCAgICAg ICAgICAgKGludClNVUxUSV9BUkdfMl9TSV9DTVAgfSwKKyAgeyBPUFRJT05f TUFTS19JU0FfWE9QLCBDT0RFX0ZPUl94b3BfbWFza2NtcF91bnMydjRzaTMs ICJfX2J1aWx0aW5faWEzMl92cGNvbW5ldWQiLCAgIElYODZfQlVJTFRJTl9W UENPTU5FVUQsICAgTkUsICAgICAgICAgICAoaW50KU1VTFRJX0FSR18yX1NJ X0NNUCB9LAorICB7IE9QVElPTl9NQVNLX0lTQV9YT1AsIENPREVfRk9SX3hv cF9tYXNrY21wX3VuczJ2NHNpMywgIl9fYnVpbHRpbl9pYTMyX3ZwY29tbmVx dWQiLCAgSVg4Nl9CVUlMVElOX1ZQQ09NTkVVRCwgICBORSwgICAgICAgICAg IChpbnQpTVVMVElfQVJHXzJfU0lfQ01QIH0sCisgIHsgT1BUSU9OX01BU0tf SVNBX1hPUCwgQ09ERV9GT1JfeG9wX21hc2tjbXBfdW5zdjRzaTMsICAiX19i dWlsdGluX2lhMzJfdnBjb21sdHVkIiwgICBJWDg2X0JVSUxUSU5fVlBDT01M VFVELCAgIExUVSwgICAgICAgICAgKGludClNVUxUSV9BUkdfMl9TSV9DTVAg fSwKKyAgeyBPUFRJT05fTUFTS19JU0FfWE9QLCBDT0RFX0ZPUl94b3BfbWFz a2NtcF91bnN2NHNpMywgICJfX2J1aWx0aW5faWEzMl92cGNvbWxldWQiLCAg IElYODZfQlVJTFRJTl9WUENPTUxFVUQsICAgTEVVLCAgICAgICAgICAoaW50 KU1VTFRJX0FSR18yX1NJX0NNUCB9LAorICB7IE9QVElPTl9NQVNLX0lTQV9Y T1AsIENPREVfRk9SX3hvcF9tYXNrY21wX3Vuc3Y0c2kzLCAgIl9fYnVpbHRp bl9pYTMyX3ZwY29tZ3R1ZCIsICAgSVg4Nl9CVUlMVElOX1ZQQ09NR1RVRCwg ICBHVFUsICAgICAgICAgIChpbnQpTVVMVElfQVJHXzJfU0lfQ01QIH0sCisg IHsgT1BUSU9OX01BU0tfSVNBX1hPUCwgQ09ERV9GT1JfeG9wX21hc2tjbXBf dW5zdjRzaTMsICAiX19idWlsdGluX2lhMzJfdnBjb21nZXVkIiwgICBJWDg2 X0JVSUxUSU5fVlBDT01HRVVELCAgIEdFVSwgICAgICAgICAgKGludClNVUxU SV9BUkdfMl9TSV9DTVAgfSwKKworICB7IE9QVElPTl9NQVNLX0lTQV9YT1As IENPREVfRk9SX3hvcF9tYXNrY21wX3VuczJ2MmRpMywgIl9fYnVpbHRpbl9p YTMyX3ZwY29tZXF1cSIsICAgSVg4Nl9CVUlMVElOX1ZQQ09NRVFVUSwgICBF USwgICAgICAgICAgIChpbnQpTVVMVElfQVJHXzJfRElfQ01QIH0sCisgIHsg T1BUSU9OX01BU0tfSVNBX1hPUCwgQ09ERV9GT1JfeG9wX21hc2tjbXBfdW5z MnYyZGkzLCAiX19idWlsdGluX2lhMzJfdnBjb21uZXVxIiwgICBJWDg2X0JV SUxUSU5fVlBDT01ORVVRLCAgIE5FLCAgICAgICAgICAgKGludClNVUxUSV9B UkdfMl9ESV9DTVAgfSwKKyAgeyBPUFRJT05fTUFTS19JU0FfWE9QLCBDT0RF X0ZPUl94b3BfbWFza2NtcF91bnMydjJkaTMsICJfX2J1aWx0aW5faWEzMl92 cGNvbW5lcXVxIiwgIElYODZfQlVJTFRJTl9WUENPTU5FVVEsICAgTkUsICAg ICAgICAgICAoaW50KU1VTFRJX0FSR18yX0RJX0NNUCB9LAorICB7IE9QVElP Tl9NQVNLX0lTQV9YT1AsIENPREVfRk9SX3hvcF9tYXNrY21wX3Vuc3YyZGkz LCAgIl9fYnVpbHRpbl9pYTMyX3ZwY29tbHR1cSIsICAgSVg4Nl9CVUlMVElO X1ZQQ09NTFRVUSwgICBMVFUsICAgICAgICAgIChpbnQpTVVMVElfQVJHXzJf RElfQ01QIH0sCisgIHsgT1BUSU9OX01BU0tfSVNBX1hPUCwgQ09ERV9GT1Jf eG9wX21hc2tjbXBfdW5zdjJkaTMsICAiX19idWlsdGluX2lhMzJfdnBjb21s ZXVxIiwgICBJWDg2X0JVSUxUSU5fVlBDT01MRVVRLCAgIExFVSwgICAgICAg ICAgKGludClNVUxUSV9BUkdfMl9ESV9DTVAgfSwKKyAgeyBPUFRJT05fTUFT S19JU0FfWE9QLCBDT0RFX0ZPUl94b3BfbWFza2NtcF91bnN2MmRpMywgICJf X2J1aWx0aW5faWEzMl92cGNvbWd0dXEiLCAgIElYODZfQlVJTFRJTl9WUENP TUdUVVEsICAgR1RVLCAgICAgICAgICAoaW50KU1VTFRJX0FSR18yX0RJX0NN UCB9LAorICB7IE9QVElPTl9NQVNLX0lTQV9YT1AsIENPREVfRk9SX3hvcF9t YXNrY21wX3Vuc3YyZGkzLCAgIl9fYnVpbHRpbl9pYTMyX3ZwY29tZ2V1cSIs ICAgSVg4Nl9CVUlMVElOX1ZQQ09NR0VVUSwgICBHRVUsICAgICAgICAgIChp bnQpTVVMVElfQVJHXzJfRElfQ01QIH0sCisKKyAgeyBPUFRJT05fTUFTS19J U0FfWE9QLCBDT0RFX0ZPUl94b3BfcGNvbV90ZnYxNnFpMywgICAgICJfX2J1 aWx0aW5faWEzMl92cGNvbWZhbHNlYiIsIElYODZfQlVJTFRJTl9WUENPTUZB TFNFQiwgKGVudW0gcnR4X2NvZGUpIFBDT01fRkFMU0UsICAgKGludClNVUxU SV9BUkdfMl9RSV9URiB9LAorICB7IE9QVElPTl9NQVNLX0lTQV9YT1AsIENP REVfRk9SX3hvcF9wY29tX3RmdjhoaTMsICAgICAgIl9fYnVpbHRpbl9pYTMy X3ZwY29tZmFsc2V3IiwgSVg4Nl9CVUlMVElOX1ZQQ09NRkFMU0VXLCAoZW51 bSBydHhfY29kZSkgUENPTV9GQUxTRSwgICAoaW50KU1VTFRJX0FSR18yX0hJ X1RGIH0sCisgIHsgT1BUSU9OX01BU0tfSVNBX1hPUCwgQ09ERV9GT1JfeG9w X3Bjb21fdGZ2NHNpMywgICAgICAiX19idWlsdGluX2lhMzJfdnBjb21mYWxz ZWQiLCBJWDg2X0JVSUxUSU5fVlBDT01GQUxTRUQsIChlbnVtIHJ0eF9jb2Rl KSBQQ09NX0ZBTFNFLCAgIChpbnQpTVVMVElfQVJHXzJfU0lfVEYgfSwKKyAg eyBPUFRJT05fTUFTS19JU0FfWE9QLCBDT0RFX0ZPUl94b3BfcGNvbV90ZnYy ZGkzLCAgICAgICJfX2J1aWx0aW5faWEzMl92cGNvbWZhbHNlcSIsIElYODZf QlVJTFRJTl9WUENPTUZBTFNFUSwgKGVudW0gcnR4X2NvZGUpIFBDT01fRkFM U0UsICAgKGludClNVUxUSV9BUkdfMl9ESV9URiB9LAorICB7IE9QVElPTl9N QVNLX0lTQV9YT1AsIENPREVfRk9SX3hvcF9wY29tX3RmdjE2cWkzLCAgICAg Il9fYnVpbHRpbl9pYTMyX3ZwY29tZmFsc2V1YiIsSVg4Nl9CVUlMVElOX1ZQ Q09NRkFMU0VVQiwoZW51bSBydHhfY29kZSkgUENPTV9GQUxTRSwgICAoaW50 KU1VTFRJX0FSR18yX1FJX1RGIH0sCisgIHsgT1BUSU9OX01BU0tfSVNBX1hP UCwgQ09ERV9GT1JfeG9wX3Bjb21fdGZ2OGhpMywgICAgICAiX19idWlsdGlu X2lhMzJfdnBjb21mYWxzZXV3IixJWDg2X0JVSUxUSU5fVlBDT01GQUxTRVVX LChlbnVtIHJ0eF9jb2RlKSBQQ09NX0ZBTFNFLCAgIChpbnQpTVVMVElfQVJH XzJfSElfVEYgfSwKKyAgeyBPUFRJT05fTUFTS19JU0FfWE9QLCBDT0RFX0ZP Ul94b3BfcGNvbV90ZnY0c2kzLCAgICAgICJfX2J1aWx0aW5faWEzMl92cGNv bWZhbHNldWQiLElYODZfQlVJTFRJTl9WUENPTUZBTFNFVUQsKGVudW0gcnR4 X2NvZGUpIFBDT01fRkFMU0UsICAgKGludClNVUxUSV9BUkdfMl9TSV9URiB9 LAorICB7IE9QVElPTl9NQVNLX0lTQV9YT1AsIENPREVfRk9SX3hvcF9wY29t X3RmdjJkaTMsICAgICAgIl9fYnVpbHRpbl9pYTMyX3ZwY29tZmFsc2V1cSIs SVg4Nl9CVUlMVElOX1ZQQ09NRkFMU0VVUSwoZW51bSBydHhfY29kZSkgUENP TV9GQUxTRSwgICAoaW50KU1VTFRJX0FSR18yX0RJX1RGIH0sCisKKyAgeyBP UFRJT05fTUFTS19JU0FfWE9QLCBDT0RFX0ZPUl94b3BfcGNvbV90ZnYxNnFp MywgICAgICJfX2J1aWx0aW5faWEzMl92cGNvbXRydWViIiwgIElYODZfQlVJ TFRJTl9WUENPTVRSVUVCLCAgKGVudW0gcnR4X2NvZGUpIFBDT01fVFJVRSwg ICAgKGludClNVUxUSV9BUkdfMl9RSV9URiB9LAorICB7IE9QVElPTl9NQVNL X0lTQV9YT1AsIENPREVfRk9SX3hvcF9wY29tX3RmdjhoaTMsICAgICAgIl9f YnVpbHRpbl9pYTMyX3ZwY29tdHJ1ZXciLCAgSVg4Nl9CVUlMVElOX1ZQQ09N VFJVRVcsICAoZW51bSBydHhfY29kZSkgUENPTV9UUlVFLCAgICAoaW50KU1V TFRJX0FSR18yX0hJX1RGIH0sCisgIHsgT1BUSU9OX01BU0tfSVNBX1hPUCwg Q09ERV9GT1JfeG9wX3Bjb21fdGZ2NHNpMywgICAgICAiX19idWlsdGluX2lh MzJfdnBjb210cnVlZCIsICBJWDg2X0JVSUxUSU5fVlBDT01UUlVFRCwgIChl bnVtIHJ0eF9jb2RlKSBQQ09NX1RSVUUsICAgIChpbnQpTVVMVElfQVJHXzJf U0lfVEYgfSwKKyAgeyBPUFRJT05fTUFTS19JU0FfWE9QLCBDT0RFX0ZPUl94 b3BfcGNvbV90ZnYyZGkzLCAgICAgICJfX2J1aWx0aW5faWEzMl92cGNvbXRy dWVxIiwgIElYODZfQlVJTFRJTl9WUENPTVRSVUVRLCAgKGVudW0gcnR4X2Nv ZGUpIFBDT01fVFJVRSwgICAgKGludClNVUxUSV9BUkdfMl9ESV9URiB9LAor ICB7IE9QVElPTl9NQVNLX0lTQV9YT1AsIENPREVfRk9SX3hvcF9wY29tX3Rm djE2cWkzLCAgICAgIl9fYnVpbHRpbl9pYTMyX3ZwY29tdHJ1ZXViIiwgSVg4 Nl9CVUlMVElOX1ZQQ09NVFJVRVVCLCAoZW51bSBydHhfY29kZSkgUENPTV9U UlVFLCAgICAoaW50KU1VTFRJX0FSR18yX1FJX1RGIH0sCisgIHsgT1BUSU9O X01BU0tfSVNBX1hPUCwgQ09ERV9GT1JfeG9wX3Bjb21fdGZ2OGhpMywgICAg ICAiX19idWlsdGluX2lhMzJfdnBjb210cnVldXciLCBJWDg2X0JVSUxUSU5f VlBDT01UUlVFVVcsIChlbnVtIHJ0eF9jb2RlKSBQQ09NX1RSVUUsICAgIChp bnQpTVVMVElfQVJHXzJfSElfVEYgfSwKKyAgeyBPUFRJT05fTUFTS19JU0Ff WE9QLCBDT0RFX0ZPUl94b3BfcGNvbV90ZnY0c2kzLCAgICAgICJfX2J1aWx0 aW5faWEzMl92cGNvbXRydWV1ZCIsIElYODZfQlVJTFRJTl9WUENPTVRSVUVV RCwgKGVudW0gcnR4X2NvZGUpIFBDT01fVFJVRSwgICAgKGludClNVUxUSV9B UkdfMl9TSV9URiB9LAorICB7IE9QVElPTl9NQVNLX0lTQV9YT1AsIENPREVf Rk9SX3hvcF9wY29tX3RmdjJkaTMsICAgICAgIl9fYnVpbHRpbl9pYTMyX3Zw Y29tdHJ1ZXVxIiwgSVg4Nl9CVUlMVElOX1ZQQ09NVFJVRVVRLCAoZW51bSBy dHhfY29kZSkgUENPTV9UUlVFLCAgICAoaW50KU1VTFRJX0FSR18yX0RJX1RG IH0sCiAKIH07CiAKQEAgLTIyMzEyLDUxICsyMjc0NSw2IEBAIGl4ODZfaW5p dF9tbXhfc3NlX2J1aWx0aW5zICh2b2lkKQogCQkJCWludGVnZXJfdHlwZV9u b2RlLAogCQkJCU5VTExfVFJFRSk7CiAKLQotICB0cmVlIHYyZGlfZnR5cGVf djJkaQotICAgID0gYnVpbGRfZnVuY3Rpb25fdHlwZV9saXN0IChWMkRJX3R5 cGVfbm9kZSwgVjJESV90eXBlX25vZGUsIE5VTExfVFJFRSk7Ci0KLSAgdHJl ZSB2MTZxaV9mdHlwZV92OGhpX3Y4aGkKLSAgICA9IGJ1aWxkX2Z1bmN0aW9u X3R5cGVfbGlzdCAoVjE2UUlfdHlwZV9ub2RlLAotCQkJCVY4SElfdHlwZV9u b2RlLCBWOEhJX3R5cGVfbm9kZSwKLQkJCQlOVUxMX1RSRUUpOwotICB0cmVl IHY4aGlfZnR5cGVfdjRzaV92NHNpCi0gICAgPSBidWlsZF9mdW5jdGlvbl90 eXBlX2xpc3QgKFY4SElfdHlwZV9ub2RlLAotCQkJCVY0U0lfdHlwZV9ub2Rl LCBWNFNJX3R5cGVfbm9kZSwKLQkJCQlOVUxMX1RSRUUpOwotICB0cmVlIHY4 aGlfZnR5cGVfdjE2cWlfdjE2cWkgCi0gICAgPSBidWlsZF9mdW5jdGlvbl90 eXBlX2xpc3QgKFY4SElfdHlwZV9ub2RlLAotCQkJCVYxNlFJX3R5cGVfbm9k ZSwgVjE2UUlfdHlwZV9ub2RlLAotCQkJCU5VTExfVFJFRSk7Ci0gIHRyZWUg djRoaV9mdHlwZV92OHFpX3Y4cWkgCi0gICAgPSBidWlsZF9mdW5jdGlvbl90 eXBlX2xpc3QgKFY0SElfdHlwZV9ub2RlLAotCQkJCVY4UUlfdHlwZV9ub2Rl LCBWOFFJX3R5cGVfbm9kZSwKLQkJCQlOVUxMX1RSRUUpOwotICB0cmVlIHVu c2lnbmVkX2Z0eXBlX3Vuc2lnbmVkX3VjaGFyCi0gICAgPSBidWlsZF9mdW5j dGlvbl90eXBlX2xpc3QgKHVuc2lnbmVkX3R5cGVfbm9kZSwKLQkJCQl1bnNp Z25lZF90eXBlX25vZGUsCi0JCQkJdW5zaWduZWRfY2hhcl90eXBlX25vZGUs Ci0JCQkJTlVMTF9UUkVFKTsKLSAgdHJlZSB1bnNpZ25lZF9mdHlwZV91bnNp Z25lZF91c2hvcnQKLSAgICA9IGJ1aWxkX2Z1bmN0aW9uX3R5cGVfbGlzdCAo dW5zaWduZWRfdHlwZV9ub2RlLAotCQkJCXVuc2lnbmVkX3R5cGVfbm9kZSwK LQkJCQlzaG9ydF91bnNpZ25lZF90eXBlX25vZGUsCi0JCQkJTlVMTF9UUkVF KTsKLSAgdHJlZSB1bnNpZ25lZF9mdHlwZV91bnNpZ25lZF91bnNpZ25lZAot ICAgID0gYnVpbGRfZnVuY3Rpb25fdHlwZV9saXN0ICh1bnNpZ25lZF90eXBl X25vZGUsCi0JCQkJdW5zaWduZWRfdHlwZV9ub2RlLAotCQkJCXVuc2lnbmVk X3R5cGVfbm9kZSwKLQkJCQlOVUxMX1RSRUUpOwotICB0cmVlIHVpbnQ2NF9m dHlwZV91aW50NjRfdWludDY0Ci0gICAgPSBidWlsZF9mdW5jdGlvbl90eXBl X2xpc3QgKGxvbmdfbG9uZ191bnNpZ25lZF90eXBlX25vZGUsCi0JCQkJbG9u Z19sb25nX3Vuc2lnbmVkX3R5cGVfbm9kZSwKLQkJCQlsb25nX2xvbmdfdW5z aWduZWRfdHlwZV9ub2RlLAotCQkJCU5VTExfVFJFRSk7Ci0gIHRyZWUgZmxv YXRfZnR5cGVfZmxvYXQKLSAgICA9IGJ1aWxkX2Z1bmN0aW9uX3R5cGVfbGlz dCAoZmxvYXRfdHlwZV9ub2RlLAotCQkJCWZsb2F0X3R5cGVfbm9kZSwKLQkJ CQlOVUxMX1RSRUUpOwotCiAgIC8qIEFWWCBidWlsdGlucyAgKi8KICAgdHJl ZSBWMzJRSV90eXBlX25vZGUgPSBidWlsZF92ZWN0b3JfdHlwZV9mb3JfbW9k ZSAoY2hhcl90eXBlX25vZGUsCiAJCQkJCQkgICAgIFYzMlFJbW9kZSk7CkBA IC0yMjM2OCw2ICsyMjc1Niw4IEBAIGl4ODZfaW5pdF9tbXhfc3NlX2J1aWx0 aW5zICh2b2lkKQogCQkJCQkJICAgIFY0REltb2RlKTsKICAgdHJlZSBWNERG X3R5cGVfbm9kZSA9IGJ1aWxkX3ZlY3Rvcl90eXBlX2Zvcl9tb2RlIChkb3Vi bGVfdHlwZV9ub2RlLAogCQkJCQkJICAgIFY0REZtb2RlKTsKKyAgdHJlZSBW MTZISV90eXBlX25vZGUgPSBidWlsZF92ZWN0b3JfdHlwZV9mb3JfbW9kZSAo aW50SElfdHlwZV9ub2RlLAorCQkJCQkJICAgICBWMTZISW1vZGUpOwogICB0 cmVlIHY4c2ZfZnR5cGVfdjhzZgogICAgID0gYnVpbGRfZnVuY3Rpb25fdHlw ZV9saXN0IChWOFNGX3R5cGVfbm9kZSwKIAkJCQlWOFNGX3R5cGVfbm9kZSwK QEAgLTIyNjEyLDYgKzIzMDAyLDEzOCBAQCBpeDg2X2luaXRfbW14X3NzZV9i dWlsdGlucyAodm9pZCkKICAgICA9IGJ1aWxkX2Z1bmN0aW9uX3R5cGVfbGlz dCAoVjJERl90eXBlX25vZGUsCiAJCQkJVjJERl90eXBlX25vZGUsIFYyRElf dHlwZV9ub2RlLCBOVUxMX1RSRUUpOwogCisgIC8qIFhPUCBpbnN0cnVjdGlv bnMgKi8KKyAgdHJlZSB2MmRpX2Z0eXBlX3YyZGlfdjJkaV92MmRpCisgICAg PSBidWlsZF9mdW5jdGlvbl90eXBlX2xpc3QgKFYyRElfdHlwZV9ub2RlLAor CQkJCVYyRElfdHlwZV9ub2RlLAorCQkJCVYyRElfdHlwZV9ub2RlLAorCQkJ CVYyRElfdHlwZV9ub2RlLAorCQkJCU5VTExfVFJFRSk7CisKKyAgdHJlZSB2 NGRpX2Z0eXBlX3Y0ZGlfdjRkaV92NGRpCisgICAgPSBidWlsZF9mdW5jdGlv bl90eXBlX2xpc3QgKFY0RElfdHlwZV9ub2RlLAorCQkJCVY0RElfdHlwZV9u b2RlLAorCQkJCVY0RElfdHlwZV9ub2RlLAorCQkJCVY0RElfdHlwZV9ub2Rl LAorCQkJCU5VTExfVFJFRSk7CisKKyAgdHJlZSB2NHNpX2Z0eXBlX3Y0c2lf djRzaV92NHNpCisgICAgPSBidWlsZF9mdW5jdGlvbl90eXBlX2xpc3QgKFY0 U0lfdHlwZV9ub2RlLAorCQkJCVY0U0lfdHlwZV9ub2RlLAorCQkJCVY0U0lf dHlwZV9ub2RlLAorCQkJCVY0U0lfdHlwZV9ub2RlLAorCQkJCU5VTExfVFJF RSk7CisKKyAgdHJlZSB2OHNpX2Z0eXBlX3Y4c2lfdjhzaV92OHNpCisgICAg PSBidWlsZF9mdW5jdGlvbl90eXBlX2xpc3QgKFY4U0lfdHlwZV9ub2RlLAor CQkJCVY4U0lfdHlwZV9ub2RlLAorCQkJCVY4U0lfdHlwZV9ub2RlLAorCQkJ CVY4U0lfdHlwZV9ub2RlLAorCQkJCU5VTExfVFJFRSk7CisKKyAgdHJlZSB2 MzJxaV9mdHlwZV92MzJxaV92MzJxaV92MzJxaQorICAgID0gYnVpbGRfZnVu Y3Rpb25fdHlwZV9saXN0IChWMzJRSV90eXBlX25vZGUsCisJCQkJVjMyUUlf dHlwZV9ub2RlLAorCQkJCVYzMlFJX3R5cGVfbm9kZSwKKwkJCQlWMzJRSV90 eXBlX25vZGUsCisJCQkJTlVMTF9UUkVFKTsKKworICB0cmVlIHY0c2lfZnR5 cGVfdjRzaV92NHNpX3YyZGkKKyAgICA9IGJ1aWxkX2Z1bmN0aW9uX3R5cGVf bGlzdCAoVjRTSV90eXBlX25vZGUsCisJCQkJVjRTSV90eXBlX25vZGUsCisJ CQkJVjRTSV90eXBlX25vZGUsCisJCQkJVjJESV90eXBlX25vZGUsCisJCQkJ TlVMTF9UUkVFKTsKKworICB0cmVlIHY4aGlfZnR5cGVfdjhoaV92OGhpX3Y4 aGkKKyAgICA9IGJ1aWxkX2Z1bmN0aW9uX3R5cGVfbGlzdCAoVjhISV90eXBl X25vZGUsCisJCQkJVjhISV90eXBlX25vZGUsCisJCQkJVjhISV90eXBlX25v ZGUsCisJCQkJVjhISV90eXBlX25vZGUsCisJCQkJTlVMTF9UUkVFKTsKKwor ICB0cmVlIHYxNmhpX2Z0eXBlX3YxNmhpX3YxNmhpX3YxNmhpCisgICAgPSBi dWlsZF9mdW5jdGlvbl90eXBlX2xpc3QgKFYxNkhJX3R5cGVfbm9kZSwKKwkJ CQlWMTZISV90eXBlX25vZGUsCisJCQkJVjE2SElfdHlwZV9ub2RlLAorCQkJ CVYxNkhJX3R5cGVfbm9kZSwKKwkJCQlOVUxMX1RSRUUpOworCisgIHRyZWUg djhoaV9mdHlwZV92OGhpX3Y4aGlfdjRzaQorICAgID0gYnVpbGRfZnVuY3Rp b25fdHlwZV9saXN0IChWOEhJX3R5cGVfbm9kZSwKKwkJCQlWOEhJX3R5cGVf bm9kZSwKKwkJCQlWOEhJX3R5cGVfbm9kZSwKKwkJCQlWNFNJX3R5cGVfbm9k ZSwKKwkJCQlOVUxMX1RSRUUpOworCisgIHRyZWUgdjJkaV9mdHlwZV92MmRp X3NpCisgICAgPSBidWlsZF9mdW5jdGlvbl90eXBlX2xpc3QgKFYyRElfdHlw ZV9ub2RlLAorCQkJCVYyRElfdHlwZV9ub2RlLAorCQkJCWludGVnZXJfdHlw ZV9ub2RlLAorCQkJCU5VTExfVFJFRSk7CisKKyAgdHJlZSB2NHNpX2Z0eXBl X3Y0c2lfc2kKKyAgICA9IGJ1aWxkX2Z1bmN0aW9uX3R5cGVfbGlzdCAoVjRT SV90eXBlX25vZGUsCisJCQkJVjRTSV90eXBlX25vZGUsCisJCQkJaW50ZWdl cl90eXBlX25vZGUsCisJCQkJTlVMTF9UUkVFKTsKKworICB0cmVlIHY4aGlf ZnR5cGVfdjhoaV9zaQorICAgID0gYnVpbGRfZnVuY3Rpb25fdHlwZV9saXN0 IChWOEhJX3R5cGVfbm9kZSwKKwkJCQlWOEhJX3R5cGVfbm9kZSwKKwkJCQlp bnRlZ2VyX3R5cGVfbm9kZSwKKwkJCQlOVUxMX1RSRUUpOworCisgIHRyZWUg djE2cWlfZnR5cGVfdjE2cWlfc2kKKyAgICA9IGJ1aWxkX2Z1bmN0aW9uX3R5 cGVfbGlzdCAoVjE2UUlfdHlwZV9ub2RlLAorCQkJCVYxNlFJX3R5cGVfbm9k ZSwKKwkJCQlpbnRlZ2VyX3R5cGVfbm9kZSwKKwkJCQlOVUxMX1RSRUUpOwor CisgIHRyZWUgdjJkaV9mdHlwZV92MmRpCisgICAgPSBidWlsZF9mdW5jdGlv bl90eXBlX2xpc3QgKFYyRElfdHlwZV9ub2RlLCBWMkRJX3R5cGVfbm9kZSwg TlVMTF9UUkVFKTsKKworICB0cmVlIHYxNnFpX2Z0eXBlX3Y4aGlfdjhoaQor ICAgID0gYnVpbGRfZnVuY3Rpb25fdHlwZV9saXN0IChWMTZRSV90eXBlX25v ZGUsCisJCQkJVjhISV90eXBlX25vZGUsIFY4SElfdHlwZV9ub2RlLAorCQkJ CU5VTExfVFJFRSk7CisgIHRyZWUgdjhoaV9mdHlwZV92NHNpX3Y0c2kKKyAg ICA9IGJ1aWxkX2Z1bmN0aW9uX3R5cGVfbGlzdCAoVjhISV90eXBlX25vZGUs CisJCQkJVjRTSV90eXBlX25vZGUsIFY0U0lfdHlwZV9ub2RlLAorCQkJCU5V TExfVFJFRSk7CisgIHRyZWUgdjhoaV9mdHlwZV92MTZxaV92MTZxaSAKKyAg ICA9IGJ1aWxkX2Z1bmN0aW9uX3R5cGVfbGlzdCAoVjhISV90eXBlX25vZGUs CisJCQkJVjE2UUlfdHlwZV9ub2RlLCBWMTZRSV90eXBlX25vZGUsCisJCQkJ TlVMTF9UUkVFKTsKKyAgdHJlZSB2NGhpX2Z0eXBlX3Y4cWlfdjhxaSAKKyAg ICA9IGJ1aWxkX2Z1bmN0aW9uX3R5cGVfbGlzdCAoVjRISV90eXBlX25vZGUs CisJCQkJVjhRSV90eXBlX25vZGUsIFY4UUlfdHlwZV9ub2RlLAorCQkJCU5V TExfVFJFRSk7CisgIHRyZWUgdW5zaWduZWRfZnR5cGVfdW5zaWduZWRfdWNo YXIKKyAgICA9IGJ1aWxkX2Z1bmN0aW9uX3R5cGVfbGlzdCAodW5zaWduZWRf dHlwZV9ub2RlLAorCQkJCXVuc2lnbmVkX3R5cGVfbm9kZSwKKwkJCQl1bnNp Z25lZF9jaGFyX3R5cGVfbm9kZSwKKwkJCQlOVUxMX1RSRUUpOworICB0cmVl IHVuc2lnbmVkX2Z0eXBlX3Vuc2lnbmVkX3VzaG9ydAorICAgID0gYnVpbGRf ZnVuY3Rpb25fdHlwZV9saXN0ICh1bnNpZ25lZF90eXBlX25vZGUsCisJCQkJ dW5zaWduZWRfdHlwZV9ub2RlLAorCQkJCXNob3J0X3Vuc2lnbmVkX3R5cGVf bm9kZSwKKwkJCQlOVUxMX1RSRUUpOworICB0cmVlIHVuc2lnbmVkX2Z0eXBl X3Vuc2lnbmVkX3Vuc2lnbmVkCisgICAgPSBidWlsZF9mdW5jdGlvbl90eXBl X2xpc3QgKHVuc2lnbmVkX3R5cGVfbm9kZSwKKwkJCQl1bnNpZ25lZF90eXBl X25vZGUsCisJCQkJdW5zaWduZWRfdHlwZV9ub2RlLAorCQkJCU5VTExfVFJF RSk7CisgIHRyZWUgdWludDY0X2Z0eXBlX3VpbnQ2NF91aW50NjQKKyAgICA9 IGJ1aWxkX2Z1bmN0aW9uX3R5cGVfbGlzdCAobG9uZ19sb25nX3Vuc2lnbmVk X3R5cGVfbm9kZSwKKwkJCQlsb25nX2xvbmdfdW5zaWduZWRfdHlwZV9ub2Rl LAorCQkJCWxvbmdfbG9uZ191bnNpZ25lZF90eXBlX25vZGUsCisJCQkJTlVM TF9UUkVFKTsKKyAgdHJlZSBmbG9hdF9mdHlwZV9mbG9hdAorICAgID0gYnVp bGRfZnVuY3Rpb25fdHlwZV9saXN0IChmbG9hdF90eXBlX25vZGUsCisJCQkJ ZmxvYXRfdHlwZV9ub2RlLAorCQkJCU5VTExfVFJFRSk7CisKICAgLyogSW50 ZWdlciBpbnRyaW5zaWNzLiAgKi8KICAgdHJlZSB1aW50NjRfZnR5cGVfdm9p ZAogICAgID0gYnVpbGRfZnVuY3Rpb25fdHlwZSAobG9uZ19sb25nX3Vuc2ln bmVkX3R5cGVfbm9kZSwKQEAgLTIzMzgwLDYgKzIzOTAyLDUwIEBAIGl4ODZf aW5pdF9tbXhfc3NlX2J1aWx0aW5zICh2b2lkKQogCWNhc2UgTVVMVElfQVJH XzNfREY6ICAgICBtdHlwZSA9IHYyZGZfZnR5cGVfdjJkZl92MmRmX3YyZGY7 IAlicmVhazsKIAljYXNlIE1VTFRJX0FSR18zX1NGMjogICAgbXR5cGUgPSB2 OHNmX2Z0eXBlX3Y4c2ZfdjhzZl92OHNmOyAJYnJlYWs7CiAJY2FzZSBNVUxU SV9BUkdfM19ERjI6ICAgIG10eXBlID0gdjRkZl9mdHlwZV92NGRmX3Y0ZGZf djRkZjsgCWJyZWFrOworCWNhc2UgTVVMVElfQVJHXzNfREk6ICAgICBtdHlw ZSA9IHYyZGlfZnR5cGVfdjJkaV92MmRpX3YyZGk7IAlicmVhazsKKwljYXNl IE1VTFRJX0FSR18zX1NJOiAgICAgbXR5cGUgPSB2NHNpX2Z0eXBlX3Y0c2lf djRzaV92NHNpOyAJYnJlYWs7CisJY2FzZSBNVUxUSV9BUkdfM19TSV9ESTog IG10eXBlID0gdjRzaV9mdHlwZV92NHNpX3Y0c2lfdjJkaTsgCWJyZWFrOwor CWNhc2UgTVVMVElfQVJHXzNfSEk6ICAgICBtdHlwZSA9IHY4aGlfZnR5cGVf djhoaV92OGhpX3Y4aGk7IAlicmVhazsKKwljYXNlIE1VTFRJX0FSR18zX0hJ X1NJOiAgbXR5cGUgPSB2OGhpX2Z0eXBlX3Y4aGlfdjhoaV92NHNpOyAJYnJl YWs7CisJY2FzZSBNVUxUSV9BUkdfM19RSTogICAgIG10eXBlID0gdjE2cWlf ZnR5cGVfdjE2cWlfdjE2cWlfdjE2cWk7IGJyZWFrOworCWNhc2UgTVVMVElf QVJHXzNfREkyOiAgICBtdHlwZSA9IHY0ZGlfZnR5cGVfdjRkaV92NGRpX3Y0 ZGk7IAlicmVhazsKKwljYXNlIE1VTFRJX0FSR18zX1NJMjogICAgbXR5cGUg PSB2OHNpX2Z0eXBlX3Y4c2lfdjhzaV92OHNpOyAJYnJlYWs7CisJY2FzZSBN VUxUSV9BUkdfM19ISTI6ICAgIG10eXBlID0gdjE2aGlfZnR5cGVfdjE2aGlf djE2aGlfdjE2aGk7IGJyZWFrOworCWNhc2UgTVVMVElfQVJHXzNfUUkyOiAg ICBtdHlwZSA9IHYzMnFpX2Z0eXBlX3YzMnFpX3YzMnFpX3YzMnFpOyBicmVh azsKKwljYXNlIE1VTFRJX0FSR18yX1NGOiAgICAgbXR5cGUgPSB2NHNmX2Z0 eXBlX3Y0c2ZfdjRzZjsgICAgICAJYnJlYWs7CisJY2FzZSBNVUxUSV9BUkdf Ml9ERjogICAgIG10eXBlID0gdjJkZl9mdHlwZV92MmRmX3YyZGY7ICAgICAg CWJyZWFrOworCWNhc2UgTVVMVElfQVJHXzJfREk6ICAgICBtdHlwZSA9IHYy ZGlfZnR5cGVfdjJkaV92MmRpOyAgICAgIAlicmVhazsKKwljYXNlIE1VTFRJ X0FSR18yX1NJOiAgICAgbXR5cGUgPSB2NHNpX2Z0eXBlX3Y0c2lfdjRzaTsg ICAgICAJYnJlYWs7CisJY2FzZSBNVUxUSV9BUkdfMl9ISTogICAgIG10eXBl ID0gdjhoaV9mdHlwZV92OGhpX3Y4aGk7ICAgICAgCWJyZWFrOworCWNhc2Ug TVVMVElfQVJHXzJfUUk6ICAgICBtdHlwZSA9IHYxNnFpX2Z0eXBlX3YxNnFp X3YxNnFpOyAgICAgIAlicmVhazsKKwljYXNlIE1VTFRJX0FSR18yX0RJX0lN TTogbXR5cGUgPSB2MmRpX2Z0eXBlX3YyZGlfc2k7ICAgICAgICAJYnJlYWs7 CisJY2FzZSBNVUxUSV9BUkdfMl9TSV9JTU06IG10eXBlID0gdjRzaV9mdHlw ZV92NHNpX3NpOyAgICAgICAgCWJyZWFrOworCWNhc2UgTVVMVElfQVJHXzJf SElfSU1NOiBtdHlwZSA9IHY4aGlfZnR5cGVfdjhoaV9zaTsgICAgICAgIAli cmVhazsKKwljYXNlIE1VTFRJX0FSR18yX1FJX0lNTTogbXR5cGUgPSB2MTZx aV9mdHlwZV92MTZxaV9zaTsgICAgICAgIAlicmVhazsKKwljYXNlIE1VTFRJ X0FSR18yX0RJX0NNUDogbXR5cGUgPSB2MmRpX2Z0eXBlX3YyZGlfdjJkaTsg ICAgICAJYnJlYWs7CisJY2FzZSBNVUxUSV9BUkdfMl9TSV9DTVA6IG10eXBl ID0gdjRzaV9mdHlwZV92NHNpX3Y0c2k7ICAgICAgCWJyZWFrOworCWNhc2Ug TVVMVElfQVJHXzJfSElfQ01QOiBtdHlwZSA9IHY4aGlfZnR5cGVfdjhoaV92 OGhpOyAgICAgIAlicmVhazsKKwljYXNlIE1VTFRJX0FSR18yX1FJX0NNUDog bXR5cGUgPSB2MTZxaV9mdHlwZV92MTZxaV92MTZxaTsgICAgICAJYnJlYWs7 CisJY2FzZSBNVUxUSV9BUkdfMl9TRl9URjogIG10eXBlID0gdjRzZl9mdHlw ZV92NHNmX3Y0c2Y7ICAgICAgCWJyZWFrOworCWNhc2UgTVVMVElfQVJHXzJf REZfVEY6ICBtdHlwZSA9IHYyZGZfZnR5cGVfdjJkZl92MmRmOyAgICAgIAli cmVhazsKKwljYXNlIE1VTFRJX0FSR18yX0RJX1RGOiAgbXR5cGUgPSB2MmRp X2Z0eXBlX3YyZGlfdjJkaTsgICAgICAJYnJlYWs7CisJY2FzZSBNVUxUSV9B UkdfMl9TSV9URjogIG10eXBlID0gdjRzaV9mdHlwZV92NHNpX3Y0c2k7ICAg ICAgCWJyZWFrOworCWNhc2UgTVVMVElfQVJHXzJfSElfVEY6ICBtdHlwZSA9 IHY4aGlfZnR5cGVfdjhoaV92OGhpOyAgICAgIAlicmVhazsKKwljYXNlIE1V TFRJX0FSR18yX1FJX1RGOiAgbXR5cGUgPSB2MTZxaV9mdHlwZV92MTZxaV92 MTZxaTsgICAgICAJYnJlYWs7CisJY2FzZSBNVUxUSV9BUkdfMV9TRjogICAg IG10eXBlID0gdjRzZl9mdHlwZV92NHNmOyAgICAgICAgICAgCWJyZWFrOwor CWNhc2UgTVVMVElfQVJHXzFfREY6ICAgICBtdHlwZSA9IHYyZGZfZnR5cGVf djJkZjsgICAgICAgICAgIAlicmVhazsKKwljYXNlIE1VTFRJX0FSR18xX1NG MjogICAgbXR5cGUgPSB2OHNmX2Z0eXBlX3Y4c2Y7ICAgICAgICAgICAJYnJl YWs7CisJY2FzZSBNVUxUSV9BUkdfMV9ERjI6ICAgIG10eXBlID0gdjRkZl9m dHlwZV92NGRmOyAgICAgICAgICAgCWJyZWFrOworCWNhc2UgTVVMVElfQVJH XzFfREk6ICAgICBtdHlwZSA9IHYyZGlfZnR5cGVfdjJkaTsgICAgICAgICAg IAlicmVhazsKKwljYXNlIE1VTFRJX0FSR18xX1NJOiAgICAgbXR5cGUgPSB2 NHNpX2Z0eXBlX3Y0c2k7ICAgICAgICAgICAJYnJlYWs7CisJY2FzZSBNVUxU SV9BUkdfMV9ISTogICAgIG10eXBlID0gdjhoaV9mdHlwZV92OGhpOyAgICAg ICAgICAgCWJyZWFrOworCWNhc2UgTVVMVElfQVJHXzFfUUk6ICAgICBtdHlw ZSA9IHYxNnFpX2Z0eXBlX3YxNnFpOyAgICAgICAgICAgCWJyZWFrOworCWNh c2UgTVVMVElfQVJHXzFfU0lfREk6ICBtdHlwZSA9IHYyZGlfZnR5cGVfdjRz aTsgICAgICAgICAgIAlicmVhazsKKwljYXNlIE1VTFRJX0FSR18xX0hJX0RJ OiAgbXR5cGUgPSB2MmRpX2Z0eXBlX3Y4aGk7ICAgICAgICAgICAJYnJlYWs7 CisJY2FzZSBNVUxUSV9BUkdfMV9ISV9TSTogIG10eXBlID0gdjRzaV9mdHlw ZV92OGhpOyAgICAgICAgICAgCWJyZWFrOworCWNhc2UgTVVMVElfQVJHXzFf UUlfREk6ICBtdHlwZSA9IHYyZGlfZnR5cGVfdjE2cWk7ICAgICAgICAgICAJ YnJlYWs7CisJY2FzZSBNVUxUSV9BUkdfMV9RSV9TSTogIG10eXBlID0gdjRz aV9mdHlwZV92MTZxaTsgICAgICAgICAgIAlicmVhazsKKwljYXNlIE1VTFRJ X0FSR18xX1FJX0hJOiAgbXR5cGUgPSB2OGhpX2Z0eXBlX3YxNnFpOyAgICAg ICAgICAgCWJyZWFrOwogCiAJY2FzZSBNVUxUSV9BUkdfVU5LTk9XTjoKIAlk ZWZhdWx0OgpAQCAtMjM1OTksOSArMjQxNjUsNzEgQEAgaXg4Nl9leHBhbmRf bXVsdGlfYXJnX2J1aWx0aW4gKGVudW0gaW5zbgogICAgIGNhc2UgTVVMVElf QVJHXzNfREY6CiAgICAgY2FzZSBNVUxUSV9BUkdfM19TRjI6CiAgICAgY2Fz ZSBNVUxUSV9BUkdfM19ERjI6CisgICAgY2FzZSBNVUxUSV9BUkdfM19ESToK KyAgICBjYXNlIE1VTFRJX0FSR18zX1NJOgorICAgIGNhc2UgTVVMVElfQVJH XzNfU0lfREk6CisgICAgY2FzZSBNVUxUSV9BUkdfM19ISToKKyAgICBjYXNl IE1VTFRJX0FSR18zX0hJX1NJOgorICAgIGNhc2UgTVVMVElfQVJHXzNfUUk6 CisgICAgY2FzZSBNVUxUSV9BUkdfM19ESTI6CisgICAgY2FzZSBNVUxUSV9B UkdfM19TSTI6CisgICAgY2FzZSBNVUxUSV9BUkdfM19ISTI6CisgICAgY2Fz ZSBNVUxUSV9BUkdfM19RSTI6CiAgICAgICBuYXJncyA9IDM7CiAgICAgICBi cmVhazsKIAorICAgIGNhc2UgTVVMVElfQVJHXzJfU0Y6CisgICAgY2FzZSBN VUxUSV9BUkdfMl9ERjoKKyAgICBjYXNlIE1VTFRJX0FSR18yX0RJOgorICAg IGNhc2UgTVVMVElfQVJHXzJfU0k6CisgICAgY2FzZSBNVUxUSV9BUkdfMl9I SToKKyAgICBjYXNlIE1VTFRJX0FSR18yX1FJOgorICAgICAgbmFyZ3MgPSAy OworICAgICAgYnJlYWs7CisKKyAgICBjYXNlIE1VTFRJX0FSR18yX0RJX0lN TToKKyAgICBjYXNlIE1VTFRJX0FSR18yX1NJX0lNTToKKyAgICBjYXNlIE1V TFRJX0FSR18yX0hJX0lNTToKKyAgICBjYXNlIE1VTFRJX0FSR18yX1FJX0lN TToKKyAgICAgIG5hcmdzID0gMjsKKyAgICAgIGxhc3RfYXJnX2NvbnN0YW50 ID0gdHJ1ZTsKKyAgICAgIGJyZWFrOworCisgICAgY2FzZSBNVUxUSV9BUkdf MV9TRjoKKyAgICBjYXNlIE1VTFRJX0FSR18xX0RGOgorICAgIGNhc2UgTVVM VElfQVJHXzFfU0YyOgorICAgIGNhc2UgTVVMVElfQVJHXzFfREYyOgorICAg IGNhc2UgTVVMVElfQVJHXzFfREk6CisgICAgY2FzZSBNVUxUSV9BUkdfMV9T SToKKyAgICBjYXNlIE1VTFRJX0FSR18xX0hJOgorICAgIGNhc2UgTVVMVElf QVJHXzFfUUk6CisgICAgY2FzZSBNVUxUSV9BUkdfMV9TSV9ESToKKyAgICBj YXNlIE1VTFRJX0FSR18xX0hJX0RJOgorICAgIGNhc2UgTVVMVElfQVJHXzFf SElfU0k6CisgICAgY2FzZSBNVUxUSV9BUkdfMV9RSV9ESToKKyAgICBjYXNl IE1VTFRJX0FSR18xX1FJX1NJOgorICAgIGNhc2UgTVVMVElfQVJHXzFfUUlf SEk6CisgICAgICBuYXJncyA9IDE7CisgICAgICBicmVhazsKKworICAgIGNh c2UgTVVMVElfQVJHXzJfRElfQ01QOgorICAgIGNhc2UgTVVMVElfQVJHXzJf U0lfQ01QOgorICAgIGNhc2UgTVVMVElfQVJHXzJfSElfQ01QOgorICAgIGNh c2UgTVVMVElfQVJHXzJfUUlfQ01QOgorICAgICAgbmFyZ3MgPSAyOworICAg ICAgY29tcGFyaXNvbl9wID0gdHJ1ZTsKKyAgICAgIGJyZWFrOworCisgICAg Y2FzZSBNVUxUSV9BUkdfMl9TRl9URjoKKyAgICBjYXNlIE1VTFRJX0FSR18y X0RGX1RGOgorICAgIGNhc2UgTVVMVElfQVJHXzJfRElfVEY6CisgICAgY2Fz ZSBNVUxUSV9BUkdfMl9TSV9URjoKKyAgICBjYXNlIE1VTFRJX0FSR18yX0hJ X1RGOgorICAgIGNhc2UgTVVMVElfQVJHXzJfUUlfVEY6CisgICAgICBuYXJn cyA9IDI7CisgICAgICB0Zl9wID0gdHJ1ZTsKKyAgICAgIGJyZWFrOworCiAg ICAgY2FzZSBNVUxUSV9BUkdfVU5LTk9XTjoKICAgICBkZWZhdWx0OgogICAg ICAgZ2NjX3VucmVhY2hhYmxlICgpOwpkaWZmIC1wdXJOdyBnY2MvZ2NjL2Nv bmZpZy9pMzg2L2kzODYtYy5jIHhvcC9nY2MvY29uZmlnL2kzODYvaTM4Ni1j LmMKLS0tIGdjYy9nY2MvY29uZmlnL2kzODYvaTM4Ni1jLmMJMjAwOS0xMC0y MCAxMzo1Njo1NC4wMDAwMDAwMDAgLTA1MDAKKysrIHhvcC9nY2MvY29uZmln L2kzODYvaTM4Ni1jLmMJMjAwOS0xMC0yMCAxNDowNjowMi4wMDAwMDAwMDAg LTA1MDAKQEAgLTIzMiw2ICsyMzIsOCBAQCBpeDg2X3RhcmdldF9tYWNyb3Nf aW50ZXJuYWwgKGludCBpc2FfZmxhCiAgICAgZGVmX29yX3VuZGVmIChwYXJz ZV9pbiwgIl9fU1NFNEFfXyIpOwogICBpZiAoaXNhX2ZsYWcgJiBPUFRJT05f TUFTS19JU0FfRk1BNCkKICAgICBkZWZfb3JfdW5kZWYgKHBhcnNlX2luLCAi X19GTUE0X18iKTsKKyAgaWYgKGlzYV9mbGFnICYgT1BUSU9OX01BU0tfSVNB X1hPUCkKKyAgICBkZWZfb3JfdW5kZWYgKHBhcnNlX2luLCAiX19YT1BfXyIp OwogICBpZiAoKGZwbWF0aCAmIEZQTUFUSF9TU0UpICYmIChpc2FfZmxhZyAm IE9QVElPTl9NQVNLX0lTQV9TU0UpKQogICAgIGRlZl9vcl91bmRlZiAocGFy c2VfaW4sICJfX1NTRV9NQVRIX18iKTsKICAgaWYgKChmcG1hdGggJiBGUE1B VEhfU1NFKSAmJiAoaXNhX2ZsYWcgJiBPUFRJT05fTUFTS19JU0FfU1NFMikp CmRpZmYgLXB1ck53IGdjYy9nY2MvY29uZmlnL2kzODYvaTM4Ni5oIHhvcC9n Y2MvY29uZmlnL2kzODYvaTM4Ni5oCi0tLSBnY2MvZ2NjL2NvbmZpZy9pMzg2 L2kzODYuaAkyMDA5LTEwLTIwIDEzOjU2OjU0LjAwMDAwMDAwMCAtMDUwMAor KysgeG9wL2djYy9jb25maWcvaTM4Ni9pMzg2LmgJMjAwOS0xMC0yMCAxNDow NjowMi4wMDAwMDAwMDAgLTA1MDAKQEAgLTU1LDYgKzU1LDcgQEAgc2VlIHRo ZSBmaWxlcyBDT1BZSU5HMyBhbmQgQ09QWUlORy5SVU5USQogI2RlZmluZSBU QVJHRVRfRk1BCU9QVElPTl9JU0FfRk1BCiAjZGVmaW5lIFRBUkdFVF9TU0U0 QQlPUFRJT05fSVNBX1NTRTRBCiAjZGVmaW5lIFRBUkdFVF9GTUE0CU9QVElP Tl9JU0FfRk1BNAorI2RlZmluZSBUQVJHRVRfWE9QCU9QVElPTl9JU0FfWE9Q CiAjZGVmaW5lIFRBUkdFVF9ST1VORAlPUFRJT05fSVNBX1JPVU5ECiAjZGVm aW5lIFRBUkdFVF9BQk0JT1BUSU9OX0lTQV9BQk0KICNkZWZpbmUgVEFSR0VU X1BPUENOVAlPUFRJT05fSVNBX1BPUENOVApkaWZmIC1wdXJOdyBnY2MvZ2Nj L2NvbmZpZy9pMzg2L2kzODYubWQgeG9wL2djYy9jb25maWcvaTM4Ni9pMzg2 Lm1kCi0tLSBnY2MvZ2NjL2NvbmZpZy9pMzg2L2kzODYubWQJMjAwOS0xMC0y MCAxMzo1Njo1NC4wMDAwMDAwMDAgLTA1MDAKKysrIHhvcC9nY2MvY29uZmln L2kzODYvaTM4Ni5tZAkyMDA5LTEwLTIwIDE0OjA2OjAyLjAwMDAwMDAwMCAt MDUwMApAQCAtNTcsNiArNTcsNyBAQAogOzsgWCAtLSBkb24ndCBwcmludCBh bnkgc29ydCBvZiBQSUMgJ0AnIHN1ZmZpeCBmb3IgYSBzeW1ib2wuCiA7OyAm IC0tIHByaW50IHNvbWUgaW4tdXNlIGxvY2FsLWR5bmFtaWMgc3ltYm9sIG5h bWUuCiA7OyBIIC0tIHByaW50IGEgbWVtb3J5IGFkZHJlc3Mgb2Zmc2V0IGJ5 IDg7IHVzZWQgZm9yIHNzZSBoaWdoLXBhcnRzCis7OyBZIC0tIHByaW50IGNv bmRpdGlvbiBmb3IgWE9QIHBjb20qIGluc3RydWN0aW9uLgogOzsgKyAtLSBw cmludCBhIGJyYW5jaCBoaW50IGFzICdjcycgb3IgJ2RzJyBwcmVmaXgKIDs7 IDsgLS0gcHJpbnQgYSBzZW1pY29sb24gKGFmdGVyIHByZWZpeGVzIGR1ZSB0 byBidWcgaW4gb2xkZXIgZ2FzKS4KIApAQCAtMTk5LDYgKzIwMCwxMSBAQAog ICAgKFVOU1BFQ19GTUE0X0lOVFJJTlNJQwkxNTApCiAgICAoVU5TUEVDX0ZN QTRfRk1BRERTVUIJMTUxKQogICAgKFVOU1BFQ19GTUE0X0ZNU1VCQURECTE1 MikKKyAgIChVTlNQRUNfWE9QX1VOU0lHTkVEX0NNUAkxNTEpCisgICAoVU5T UEVDX1hPUF9UUlVFRkFMU0UJMTUyKQorICAgKFVOU1BFQ19YT1BfUEVSTVVU RQkJMTUzKQorICAgKFVOU1BFQ19GUkNaCQkJMTU0KQorCiAgICA7IEZvciBB RVMgc3VwcG9ydAogICAgKFVOU1BFQ19BRVNFTkMJCTE1OSkKICAgIChVTlNQ RUNfQUVTRU5DTEFTVAkJMTYwKQpAQCAtMjU0LDYgKzI2MCwyMCBAQAogICAg KENPTV9UUlVFX1AJCQk1KQogICBdKQogCis7OyBDb25zdGFudHMgdXNlZCBp biB0aGUgWE9QIHBwZXJtIGluc3RydWN0aW9uCisoZGVmaW5lX2NvbnN0YW50 cworICBbKFBQRVJNX1NSQwkJCTB4MDApCS8qIGNvcHkgc291cmNlICovCisg ICAoUFBFUk1fSU5WRVJUCQkweDIwKQkvKiBpbnZlcnQgc291cmNlICovCisg ICAoUFBFUk1fUkVWRVJTRQkJMHg0MCkJLyogYml0IHJldmVyc2Ugc291cmNl ICovCisgICAoUFBFUk1fUkVWX0lOVgkJMHg2MCkJLyogYml0IHJldmVyc2Ug JiBpbnZlcnQgc3JjICovCisgICAoUFBFUk1fWkVSTwkJCTB4ODApCS8qIGFs bCAwJ3MgKi8KKyAgIChQUEVSTV9PTkVTCQkJMHhhMCkJLyogYWxsIDEncyAq LworICAgKFBQRVJNX1NJR04JCQkweGMwKQkvKiBwcm9wYWdhdGUgc2lnbiBi aXQgKi8KKyAgIChQUEVSTV9JTlZfU0lHTgkJMHhlMCkJLyogaW52ZXJ0ICYg cHJvcGFnYXRlIHNpZ24gKi8KKyAgIChQUEVSTV9TUkMxCQkJMHgwMCkJLyog dXNlIGZpcnN0IHNvdXJjZSBieXRlICovCisgICAoUFBFUk1fU1JDMgkJCTB4 MTApCS8qIHVzZSBzZWNvbmQgc291cmNlIGJ5dGUgKi8KKyAgIF0pCisKIDs7 IFJlZ2lzdGVycyBieSBuYW1lLgogKGRlZmluZV9jb25zdGFudHMKICAgWyhB WF9SRUcJCQkgMCkKQEAgLTE5NjUyLDYgKzE5NjcyLDIwIEBACiAgIFsoc2V0 X2F0dHIgInR5cGUiICJmY21vdiIpCiAgICAoc2V0X2F0dHIgIm1vZGUiICJY RiIpXSkKIAorOzsgQWxsIG1vdmVzIGluIFhPUCBwY21vdiBpbnN0cnVjdGlv bnMgYXJlIDEyOCBiaXRzIGFuZCBoZW5jZSB3ZSByZXN0cmljdAorOzsgdGhl IHNjYWxhciB2ZXJzaW9ucyB0byBoYXZlIG9ubHkgWE1NIHJlZ2lzdGVycyBh cyBvcGVyYW5kcy4KKworOzsgWE9QIGNvbmRpdGlvbmFsIG1vdmUKKyhkZWZp bmVfaW5zbiAiKnhvcF9wY21vdl88bW9kZT4iCisgIFsoc2V0IChtYXRjaF9v cGVyYW5kOk1PREVGIDAgInJlZ2lzdGVyX29wZXJhbmQiICI9eCx4IikKKwko aWZfdGhlbl9lbHNlOk1PREVGCisJICAobWF0Y2hfb3BlcmFuZDpNT0RFRiAx ICJyZWdpc3Rlcl9vcGVyYW5kIiAieCx4IikKKwkgIChtYXRjaF9vcGVyYW5k Ok1PREVGIDIgInJlZ2lzdGVyX29wZXJhbmQiICJ4LHgiKQorCSAgKG1hdGNo X29wZXJhbmQ6TU9ERUYgMyAicmVnaXN0ZXJfb3BlcmFuZCIgIngseCIpKSld CisgICJUQVJHRVRfWE9QICYmIGl4ODZfZm1hNF92YWxpZF9vcF9wIChvcGVy YW5kcywgaW5zbiwgNCwgdHJ1ZSwgMSwgZmFsc2UpIgorICAidnBjbW92XHR7 JTEsICUzLCAlMiwgJTB8JTAsICUyLCAlMywgJTF9IgorICBbKHNldF9hdHRy ICJ0eXBlIiAic3NlNGFyZyIpXSkKKwogOzsgVGhlc2UgdmVyc2lvbnMgb2Yg dGhlIG1pbi9tYXggcGF0dGVybnMgYXJlIGludGVudGlvbmFsbHkgaWdub3Jh bnQgb2YKIDs7IHRoZWlyIGJlaGF2aW9yIHdydCAtMC4wIGFuZCBOYU4gKHZp YSB0aGUgY29tbXV0YXRpdmUgb3BlcmFuZCBtYXJrKS4KIDs7IFNpbmNlIGJv dGggdGhlIHRyZWUtbGV2ZWwgTUFYX0VYUFIgYW5kIHRoZSBydGwtbGV2ZWwg U01BWCBvcGVyYXRvcgpkaWZmIC1wdXJOdyBnY2MvZ2NjL2NvbmZpZy9pMzg2 L2kzODYub3B0IHhvcC9nY2MvY29uZmlnL2kzODYvaTM4Ni5vcHQKLS0tIGdj Yy9nY2MvY29uZmlnL2kzODYvaTM4Ni5vcHQJMjAwOS0xMC0yMCAxMzo1Njo1 NC4wMDAwMDAwMDAgLTA1MDAKKysrIHhvcC9nY2MvY29uZmlnL2kzODYvaTM4 Ni5vcHQJMjAwOS0xMC0yMCAxNDowNjowMi4wMDAwMDAwMDAgLTA1MDAKQEAg LTMxNCw2ICszMTQsMTAgQEAgbWZtYTQKIFRhcmdldCBSZXBvcnQgTWFzayhJ U0FfRk1BNCkgVmFyKGl4ODZfaXNhX2ZsYWdzKSBWYXJFeGlzdHMgU2F2ZQog U3VwcG9ydCBGTUE0IGJ1aWx0LWluIGZ1bmN0aW9ucyBhbmQgY29kZSBnZW5l cmF0aW9uIAogCitteG9wCitUYXJnZXQgUmVwb3J0IE1hc2soSVNBX1hPUCkg VmFyKGl4ODZfaXNhX2ZsYWdzKSBWYXJFeGlzdHMgU2F2ZQorU3VwcG9ydCBY T1AgYnVpbHQtaW4gZnVuY3Rpb25zIGFuZCBjb2RlIGdlbmVyYXRpb24gCisK IG1hYm0KIFRhcmdldCBSZXBvcnQgTWFzayhJU0FfQUJNKSBWYXIoaXg4Nl9p c2FfZmxhZ3MpIFZhckV4aXN0cyBTYXZlCiBTdXBwb3J0IGNvZGUgZ2VuZXJh dGlvbiBvZiBBZHZhbmNlZCBCaXQgTWFuaXB1bGF0aW9uIChBQk0pIGluc3Ry dWN0aW9ucy4KZGlmZiAtcHVyTncgZ2NjL2djYy9jb25maWcvaTM4Ni9zc2Uu bWQgeG9wL2djYy9jb25maWcvaTM4Ni9zc2UubWQKLS0tIGdjYy9nY2MvY29u ZmlnL2kzODYvc3NlLm1kCTIwMDktMTAtMjAgMTM6NTY6NTQuMDAwMDAwMDAw IC0wNTAwCisrKyB4b3AvZ2NjL2NvbmZpZy9pMzg2L3NzZS5tZAkyMDA5LTEw LTIwIDE0OjA2OjAyLjAwMDAwMDAwMCAtMDUwMApAQCAtODYsNiArODYsOSBA QAogCiAoZGVmaW5lX21vZGVfYXR0ciBzc2Vtb2Rlc3VmZml4ZjJjIFsoVjRT RiAicyIpIChWMkRGICJkIildKQogCis7OyBNYXBwaW5nIG9mIHRoZSBtYXgg aW50ZWdlciBzaXplIGZvciB4b3Agcm90YXRlIGltbWVkaWF0ZSBjb25zdHJh aW50CisoZGVmaW5lX21vZGVfYXR0ciBzc2Vyb3RhdGVtYXggWyhWMTZRSSAi NyIpIChWOEhJICIxNSIpIChWNFNJICIzMSIpIChWMkRJICI2MyIpXSkKKwog OzsgTWFwcGluZyBvZiB2ZWN0b3IgbW9kZXMgYmFjayB0byB0aGUgc2NhbGFy IG1vZGVzCiAoZGVmaW5lX21vZGVfYXR0ciBzc2VzY2FsYXJtb2RlIFsoVjRT RiAiU0YiKSAoVjJERiAiREYiKQogCQkJCSAoVjE2UUkgIlFJIikgKFY4SEkg IkhJIikKQEAgLTE0NTUsNyArMTQ1OCw4IEBACiAJKG1hdGNoX29wZXJhdG9y OlNTRU1PREVGNCAzICJzc2VfY29tcGFyaXNvbl9vcGVyYXRvciIKIAkJWyht YXRjaF9vcGVyYW5kOlNTRU1PREVGNCAxICJyZWdpc3Rlcl9vcGVyYW5kIiAi MCIpCiAJCSAobWF0Y2hfb3BlcmFuZDpTU0VNT0RFRjQgMiAibm9uaW1tZWRp YXRlX29wZXJhbmQiICJ4bSIpXSkpXQotICAiKFNTRV9GTE9BVF9NT0RFX1Ag KDxNT0RFPm1vZGUpIHx8IFNTRV9WRUNfRkxPQVRfTU9ERV9QICg8TU9ERT5t b2RlKSkiCisgICIoU1NFX0ZMT0FUX01PREVfUCAoPE1PREU+bW9kZSkgfHwg U1NFX1ZFQ19GTE9BVF9NT0RFX1AgKDxNT0RFPm1vZGUpKQorICAgJiYgIVRB UkdFVF9YT1AiCiAgICJjbXAlRDM8c3NlbW9kZXN1ZmZpeGY0Plx0eyUyLCAl MHwlMCwgJTJ9IgogICBbKHNldF9hdHRyICJ0eXBlIiAic3NlY21wIikKICAg IChzZXRfYXR0ciAibGVuZ3RoX2ltbWVkaWF0ZSIgIjEiKQpAQCAtNTYxNCw3 ICs1NjE4LDcgQEAKIAkJICAgKG1hdGNoX29wZXJhbmQ6VjRTSSAyICJyZWdp c3Rlcl9vcGVyYW5kIiAiIikpKV0KICAgIlRBUkdFVF9TU0UyIgogewotICBp ZiAoVEFSR0VUX1NTRTRfMSkKKyAgaWYgKFRBUkdFVF9TU0U0XzEgfHwgVEFS R0VUX1hPUCkKICAgICBpeDg2X2ZpeHVwX2JpbmFyeV9vcGVyYW5kc19ub19j b3B5IChNVUxULCBWNFNJbW9kZSwgb3BlcmFuZHMpOwogfSkKIApAQCAtNTY0 Myw3ICs1NjQ3LDcgQEAKICAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6VjRTSSAw ICJyZWdpc3Rlcl9vcGVyYW5kIiAiIikKIAkobXVsdDpWNFNJIChtYXRjaF9v cGVyYW5kOlY0U0kgMSAicmVnaXN0ZXJfb3BlcmFuZCIgIiIpCiAJCSAgICht YXRjaF9vcGVyYW5kOlY0U0kgMiAicmVnaXN0ZXJfb3BlcmFuZCIgIiIpKSld Ci0gICJUQVJHRVRfU1NFMiAmJiAhVEFSR0VUX1NTRTRfMQorICAiVEFSR0VU X1NTRTIgJiYgIVRBUkdFVF9TU0U0XzEgJiYgIVRBUkdFVF9YT1AKICAgICYm IGNhbl9jcmVhdGVfcHNldWRvX3AgKCkiCiAgICIjIgogICAiJiYgMSIKQEAg LTU3MDUsNiArNTcwOSw0MiBAQAogICBydHggdDEsIHQyLCB0MywgdDQsIHQ1 LCB0NiwgdGhpcnR5dHdvOwogICBydHggb3AwLCBvcDEsIG9wMjsKIAorICBp ZiAoVEFSR0VUX1hPUCkKKyAgICB7CisgICAgICAvKiBvcDE6IEEsQixDLEQs IG9wMjogRSxGLEcsSCAqLworICAgICAgb3AwID0gb3BlcmFuZHNbMF07Cisg ICAgICBvcDEgPSBnZW5fbG93cGFydCAoVjRTSW1vZGUsIG9wZXJhbmRzWzFd KTsKKyAgICAgIG9wMiA9IGdlbl9sb3dwYXJ0IChWNFNJbW9kZSwgb3BlcmFu ZHNbMl0pOworICAgICAgdDEgPSBnZW5fcmVnX3J0eCAoVjRTSW1vZGUpOwor ICAgICAgdDIgPSBnZW5fcmVnX3J0eCAoVjRTSW1vZGUpOworICAgICAgdDMg PSBnZW5fcmVnX3J0eCAoVjRTSW1vZGUpOworICAgICAgdDQgPSBnZW5fcmVn X3J0eCAoVjJESW1vZGUpOworICAgICAgdDUgPSBnZW5fcmVnX3J0eCAoVjJE SW1vZGUpOworCisgICAgICAvKiB0MTogQixBLEQsQyAqLworICAgICAgZW1p dF9pbnNuIChnZW5fc3NlMl9wc2h1ZmRfMSAodDEsIG9wMSwKKwkJCQkgICAg R0VOX0lOVCAoMSksCisJCQkJICAgIEdFTl9JTlQgKDApLAorCQkJCSAgICBH RU5fSU5UICgzKSwKKwkJCQkgICAgR0VOX0lOVCAoMikpKTsKKworICAgICAg LyogdDI6IDAgKi8KKyAgICAgIGVtaXRfbW92ZV9pbnNuICh0MiwgQ09OU1Qw X1JUWCAoVjRTSW1vZGUpKTsKKworICAgICAgLyogdDM6IChCKkUpLChBKkYp LChEKkcpLChDKkgpICovCisgICAgICBlbWl0X2luc24gKGdlbl94b3BfcG1h Y3NkZCAodDMsIHQxLCBvcDIsIHQyKSk7CisKKyAgICAgIC8qIHQ0OiAoQipF KSsoQSpGKSwgKEQqRykrKEMqSCkgKi8KKyAgICAgIGVtaXRfaW5zbiAoZ2Vu X3hvcF9waGFkZGRxICh0NCwgdDMpKTsKKworICAgICAgLyogdDU6ICgoQipF KSsoQSpGKSk8PDMyLCAoKEQqRykrKEMqSCkpPDwzMiAqLworICAgICAgZW1p dF9pbnNuIChnZW5fYXNobHYyZGkzICh0NSwgdDQsIEdFTl9JTlQgKDMyKSkp OworCisgICAgICAvKiBvcDA6ICgoKEIqRSkrKEEqRikpPDwzMikrKEIqRiks ICgoKEQqRykrKEMqSCkpPDwzMikrKEQqSCkgKi8KKyAgICAgIGVtaXRfaW5z biAoZ2VuX3hvcF9wbWFjc2RxbCAob3AwLCBvcDEsIG9wMiwgdDUpKTsKKyAg ICAgIERPTkU7CisgICAgfQorCiAgIG9wMCA9IG9wZXJhbmRzWzBdOwogICBv cDEgPSBvcGVyYW5kc1sxXTsKICAgb3AyID0gb3BlcmFuZHNbMl07CkBAIC01 ODIwLDYgKzU4NjAsNTcgQEAKICAgRE9ORTsKIH0pCiAKKyhkZWZpbmVfZXhw YW5kICJ2ZWNfd2lkZW5fc211bHRfaGlfdjRzaSIKKyAgWyhtYXRjaF9vcGVy YW5kOlYyREkgMCAicmVnaXN0ZXJfb3BlcmFuZCIgIiIpCisgICAobWF0Y2hf b3BlcmFuZDpWNFNJIDEgInJlZ2lzdGVyX29wZXJhbmQiICIiKQorICAgKG1h dGNoX29wZXJhbmQ6VjRTSSAyICJyZWdpc3Rlcl9vcGVyYW5kIiAiIildCisg ICJUQVJHRVRfWE9QIgoreworICBydHggdDEsIHQyOworCisgIHQxID0gZ2Vu X3JlZ19ydHggKFY0U0ltb2RlKTsKKyAgdDIgPSBnZW5fcmVnX3J0eCAoVjRT SW1vZGUpOworCisgIGVtaXRfaW5zbiAoZ2VuX3NzZTJfcHNodWZkXzEgKHQx LCBvcGVyYW5kc1sxXSwKKwkJCQlHRU5fSU5UICgwKSwKKwkJCQlHRU5fSU5U ICgyKSwKKwkJCQlHRU5fSU5UICgxKSwKKwkJCQlHRU5fSU5UICgzKSkpOwor ICBlbWl0X2luc24gKGdlbl9zc2UyX3BzaHVmZF8xICh0Miwgb3BlcmFuZHNb Ml0sCisJCQkJR0VOX0lOVCAoMCksCisJCQkJR0VOX0lOVCAoMiksCisJCQkJ R0VOX0lOVCAoMSksCisJCQkJR0VOX0lOVCAoMykpKTsKKyAgZW1pdF9pbnNu IChnZW5feG9wX211bHYyZGl2MmRpM19oaWdoIChvcGVyYW5kc1swXSwgdDEs IHQyKSk7CisgIERPTkU7Cit9KQorCisoZGVmaW5lX2V4cGFuZCAidmVjX3dp ZGVuX3NtdWx0X2xvX3Y0c2kiCisgIFsobWF0Y2hfb3BlcmFuZDpWMkRJIDAg InJlZ2lzdGVyX29wZXJhbmQiICIiKQorICAgKG1hdGNoX29wZXJhbmQ6VjRT SSAxICJyZWdpc3Rlcl9vcGVyYW5kIiAiIikKKyAgIChtYXRjaF9vcGVyYW5k OlY0U0kgMiAicmVnaXN0ZXJfb3BlcmFuZCIgIiIpXQorICAiVEFSR0VUX1hP UCIKK3sKKyAgcnR4IHQxLCB0MjsKKworICB0MSA9IGdlbl9yZWdfcnR4IChW NFNJbW9kZSk7CisgIHQyID0gZ2VuX3JlZ19ydHggKFY0U0ltb2RlKTsKKwor ICBlbWl0X2luc24gKGdlbl9zc2UyX3BzaHVmZF8xICh0MSwgb3BlcmFuZHNb MV0sCisJCQkJR0VOX0lOVCAoMCksCisJCQkJR0VOX0lOVCAoMiksCisJCQkJ R0VOX0lOVCAoMSksCisJCQkJR0VOX0lOVCAoMykpKTsKKyAgZW1pdF9pbnNu IChnZW5fc3NlMl9wc2h1ZmRfMSAodDIsIG9wZXJhbmRzWzJdLAorCQkJCUdF Tl9JTlQgKDApLAorCQkJCUdFTl9JTlQgKDIpLAorCQkJCUdFTl9JTlQgKDEp LAorCQkJCUdFTl9JTlQgKDMpKSk7CisgIGVtaXRfaW5zbiAoZ2VuX3hvcF9t dWx2MmRpdjJkaTNfbG93IChvcGVyYW5kc1swXSwgdDEsIHQyKSk7CisgIERP TkU7CisgIERPTkU7Cit9KQorCiAoZGVmaW5lX2V4cGFuZCAidmVjX3dpZGVu X3VtdWx0X2hpX3Y0c2kiCiAgIFsobWF0Y2hfb3BlcmFuZDpWMkRJIDAgInJl Z2lzdGVyX29wZXJhbmQiICIiKQogICAgKG1hdGNoX29wZXJhbmQ6VjRTSSAx ICJyZWdpc3Rlcl9vcGVyYW5kIiAiIikKQEAgLTYyMTcsNyArNjMwOCw3IEBA CiAJKGVxOlNTRU1PREUxMjQKIAkgIChtYXRjaF9vcGVyYW5kOlNTRU1PREUx MjQgMSAibm9uaW1tZWRpYXRlX29wZXJhbmQiICIiKQogCSAgKG1hdGNoX29w ZXJhbmQ6U1NFTU9ERTEyNCAyICJub25pbW1lZGlhdGVfb3BlcmFuZCIgIiIp KSldCi0gICJUQVJHRVRfU1NFMiIKKyAgIlRBUkdFVF9TU0UyICYmICFUQVJH RVRfWE9QICIKICAgIml4ODZfZml4dXBfYmluYXJ5X29wZXJhbmRzX25vX2Nv cHkgKEVRLCA8TU9ERT5tb2RlLCBvcGVyYW5kcyk7IikKIAogKGRlZmluZV9p bnNuICIqYXZ4X2VxPG1vZGU+MyIKQEAgLTYyNDAsNyArNjMzMSw3IEBACiAJ KGVxOlNTRU1PREUxMjQKIAkgIChtYXRjaF9vcGVyYW5kOlNTRU1PREUxMjQg MSAibm9uaW1tZWRpYXRlX29wZXJhbmQiICIlMCIpCiAJICAobWF0Y2hfb3Bl cmFuZDpTU0VNT0RFMTI0IDIgIm5vbmltbWVkaWF0ZV9vcGVyYW5kIiAieG0i KSkpXQotICAiVEFSR0VUX1NTRTIKKyAgIlRBUkdFVF9TU0UyICYmICFUQVJH RVRfWE9QCiAgICAmJiBpeDg2X2JpbmFyeV9vcGVyYXRvcl9vayAoRVEsIDxN T0RFPm1vZGUsIG9wZXJhbmRzKSIKICAgInBjbXBlcTxzc2V2ZWNzaXplPlx0 eyUyLCAlMHwlMCwgJTJ9IgogICBbKHNldF9hdHRyICJ0eXBlIiAic3NlY21w IikKQEAgLTYyODYsNyArNjM3Nyw3IEBACiAJKGd0OlNTRU1PREUxMjQKIAkg IChtYXRjaF9vcGVyYW5kOlNTRU1PREUxMjQgMSAicmVnaXN0ZXJfb3BlcmFu ZCIgIjAiKQogCSAgKG1hdGNoX29wZXJhbmQ6U1NFTU9ERTEyNCAyICJub25p bW1lZGlhdGVfb3BlcmFuZCIgInhtIikpKV0KLSAgIlRBUkdFVF9TU0UyIgor ICAiVEFSR0VUX1NTRTIgJiYgIVRBUkdFVF9YT1AiCiAgICJwY21wZ3Q8c3Nl dmVjc2l6ZT5cdHslMiwgJTB8JTAsICUyfSIKICAgWyhzZXRfYXR0ciAidHlw ZSIgInNzZWNtcCIpCiAgICAoc2V0X2F0dHIgInByZWZpeF9kYXRhMTYiICIx IikKQEAgLTY1MDQsNyArNjU5NSw2IEBACiAgICJUQVJHRVRfU1NFMiIKIHsK ICAgcnR4IG9wMSwgb3AyLCBoMSwgbDEsIGgyLCBsMiwgaDMsIGwzOwotCiAg IG9wMSA9IGdlbl9sb3dwYXJ0IChWMTZRSW1vZGUsIG9wZXJhbmRzWzFdKTsK ICAgb3AyID0gZ2VuX2xvd3BhcnQgKFYxNlFJbW9kZSwgb3BlcmFuZHNbMl0p OwogICBoMSA9IGdlbl9yZWdfcnR4IChWMTZRSW1vZGUpOwpAQCAtNjUzOSw3 ICs2NjI5LDYgQEAKICAgIlRBUkdFVF9TU0UyIgogewogICBydHggb3AxLCBv cDIsIGgxLCBsMSwgaDIsIGwyOwotCiAgIG9wMSA9IGdlbl9sb3dwYXJ0IChW OEhJbW9kZSwgb3BlcmFuZHNbMV0pOwogICBvcDIgPSBnZW5fbG93cGFydCAo VjhISW1vZGUsIG9wZXJhbmRzWzJdKTsKICAgaDEgPSBnZW5fcmVnX3J0eCAo VjhISW1vZGUpOwpAQCAtNjU2OCw3ICs2NjU3LDYgQEAKICAgIlRBUkdFVF9T U0UyIgogewogICBydHggb3AxLCBvcDIsIGgxLCBsMTsKLQogICBvcDEgPSBn ZW5fbG93cGFydCAoVjRTSW1vZGUsIG9wZXJhbmRzWzFdKTsKICAgb3AyID0g Z2VuX2xvd3BhcnQgKFY0U0ltb2RlLCBvcGVyYW5kc1syXSk7CiAgIGgxID0g Z2VuX3JlZ19ydHggKFY0U0ltb2RlKTsKQEAgLTEwMzY0LDYgKzEwNDUyLDE0 NDUgQEAKICAgIChzZXRfYXR0ciAicHJlZml4IiAibWF5YmVfdmV4IikKICAg IChzZXRfYXR0ciAibW9kZSIgIlRJIildKQogCis7Ozs7Ozs7Ozs7Ozs7Ozs7 Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7 Ozs7Ozs7OzsKKzs7Cis7OyBYT1AgaW5zdHJ1Y3Rpb25zCis7OworOzs7Ozs7 Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7 Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7CisKKzs7IFhPUCBwYXJhbGxlbCBpbnRlZ2Vy IG11bHRpcGx5L2FkZCBpbnN0cnVjdGlvbnMuCis7OyBOb3RlIHRoZSBpbnN0 cnVjdGlvbiBkb2VzIG5vdCBhbGxvdyB0aGUgdmFsdWUgYmVpbmcgYWRkZWQg dG8gYmUgYSBtZW1vcnkKKzs7IG9wZXJhdGlvbi4gIEhvd2V2ZXIgYnkgcHJl dGVuZGluZyB2aWEgdGhlIG5vbmltbWVkaWF0ZV9vcGVyYW5kIHByZWRpY2F0 ZQorOzsgdGhhdCBpdCBkb2VzIGFuZCBzcGxpdHRpbmcgaXQgbGF0ZXIgYWxs b3dzIHRoZSBmb2xsb3dpbmcgdG8gYmUgcmVjb2duaXplZDoKKzs7CWFbaV0g PSBiW2ldICogY1tpXSArIGRbaV07CisoZGVmaW5lX2luc24gInhvcF9wbWFj c3d3IgorICBbKHNldCAobWF0Y2hfb3BlcmFuZDpWOEhJIDAgInJlZ2lzdGVy X29wZXJhbmQiICI9eCx4LHgiKQorICAgICAgICAocGx1czpWOEhJCisJICht dWx0OlY4SEkKKwkgIChtYXRjaF9vcGVyYW5kOlY4SEkgMSAibm9uaW1tZWRp YXRlX29wZXJhbmQiICIleCx4LHhtIikKKwkgIChtYXRjaF9vcGVyYW5kOlY4 SEkgMiAibm9uaW1tZWRpYXRlX29wZXJhbmQiICJ4LHhtLHgiKSkKKwkgKG1h dGNoX29wZXJhbmQ6VjhISSAzICJyZWdpc3Rlcl9vcGVyYW5kIiAieCx4LHgi KSkpXQorICAiVEFSR0VUX1hPUCAmJiBpeDg2X2ZtYTRfdmFsaWRfb3BfcCAo b3BlcmFuZHMsIGluc24sIDQsIGZhbHNlLCAyLCB0cnVlKSIKKyAgIkAKKyAg IHZwbWFjc3d3XHR7JTMsICUyLCAlMSwgJTB8JTAsICUxLCAlMiwgJTN9Cisg ICB2cG1hY3N3d1x0eyUzLCAlMiwgJTEsICUwfCUwLCAlMSwgJTIsICUzfQor ICAgdnBtYWNzd3dcdHslMywgJTEsICUyLCAlMHwlMCwgJTIsICUxLCAlM30i CisgIFsoc2V0X2F0dHIgInR5cGUiICJzc2VtdWxhZGQiKQorICAgKHNldF9h dHRyICJtb2RlIiAiVEkiKV0pCisKKzs7IFNwbGl0IHBtYWNzd3cgd2l0aCB0 d28gbWVtb3J5IG9wZXJhbmRzIGludG8gYSBsb2FkIGFuZCB0aGUgcG1hY3N3 dy4KKyhkZWZpbmVfc3BsaXQKKyAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6VjhI SSAwICJyZWdpc3Rlcl9vcGVyYW5kIiAiIikKKwkocGx1czpWOEhJCisJICht dWx0OlY4SEkgKG1hdGNoX29wZXJhbmQ6VjhISSAxICJub25pbW1lZGlhdGVf b3BlcmFuZCIgIiIpCisJCSAgICAobWF0Y2hfb3BlcmFuZDpWOEhJIDIgIm5v bmltbWVkaWF0ZV9vcGVyYW5kIiAiIikpCisJIChtYXRjaF9vcGVyYW5kOlY4 SEkgMyAibm9uaW1tZWRpYXRlX29wZXJhbmQiICIiKSkpXQorICAiVEFSR0VU X1hPUAorICAgJiYgIWl4ODZfZm1hNF92YWxpZF9vcF9wIChvcGVyYW5kcywg aW5zbiwgNCwgZmFsc2UsIDEsIHRydWUpCisgICAmJiBpeDg2X2ZtYTRfdmFs aWRfb3BfcCAob3BlcmFuZHMsIGluc24sIDQsIGZhbHNlLCAyLCB0cnVlKQor ICAgJiYgIXJlZ19tZW50aW9uZWRfcCAob3BlcmFuZHNbMF0sIG9wZXJhbmRz WzFdKQorICAgJiYgIXJlZ19tZW50aW9uZWRfcCAob3BlcmFuZHNbMF0sIG9w ZXJhbmRzWzJdKQorICAgJiYgIXJlZ19tZW50aW9uZWRfcCAob3BlcmFuZHNb MF0sIG9wZXJhbmRzWzNdKSIKKyAgWyhjb25zdF9pbnQgMCldCit7CisgIGl4 ODZfZXhwYW5kX2ZtYTRfbXVsdGlwbGVfbWVtb3J5IChvcGVyYW5kcywgNCwg VjhISW1vZGUpOworICBlbWl0X2luc24gKGdlbl94b3BfcG1hY3N3dyAob3Bl cmFuZHNbMF0sIG9wZXJhbmRzWzFdLCBvcGVyYW5kc1syXSwKKwkJCSAgICAg IG9wZXJhbmRzWzNdKSk7CisgIERPTkU7Cit9KQorCisoZGVmaW5lX2luc24g InhvcF9wbWFjc3N3dyIKKyAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6VjhISSAw ICJyZWdpc3Rlcl9vcGVyYW5kIiAiPXgseCx4IikKKyAgICAgICAgKHNzX3Bs dXM6VjhISQorCSAobXVsdDpWOEhJIChtYXRjaF9vcGVyYW5kOlY4SEkgMSAi bm9uaW1tZWRpYXRlX29wZXJhbmQiICIleCx4LG0iKQorCQkgICAgKG1hdGNo X29wZXJhbmQ6VjhISSAyICJub25pbW1lZGlhdGVfb3BlcmFuZCIgIngsbSx4 IikpCisJIChtYXRjaF9vcGVyYW5kOlY4SEkgMyAicmVnaXN0ZXJfb3BlcmFu ZCIgIngseCx4IikpKV0KKyAgIlRBUkdFVF9YT1AgJiYgaXg4Nl9mbWE0X3Zh bGlkX29wX3AgKG9wZXJhbmRzLCBpbnNuLCA0LCBmYWxzZSwgMSwgdHJ1ZSki CisgICJACisgICB2cG1hY3Nzd3dcdHslMywgJTIsICUxLCAlMHwlMCwgJTEs ICUyLCAlM30KKyAgIHZwbWFjc3N3d1x0eyUzLCAlMiwgJTEsICUwfCUwLCAl MSwgJTIsICUzfQorICAgdnBtYWNzc3d3XHR7JTMsICUxLCAlMiwgJTB8JTAs ICUyLCAlMSwgJTN9IgorICBbKHNldF9hdHRyICJ0eXBlIiAic3NlbXVsYWRk IikKKyAgIChzZXRfYXR0ciAibW9kZSIgIlRJIildKQorCis7OyBOb3RlIHRo ZSBpbnN0cnVjdGlvbiBkb2VzIG5vdCBhbGxvdyB0aGUgdmFsdWUgYmVpbmcg YWRkZWQgdG8gYmUgYSBtZW1vcnkKKzs7IG9wZXJhdGlvbi4gIEhvd2V2ZXIg YnkgcHJldGVuZGluZyB2aWEgdGhlIG5vbmltbWVkaWF0ZV9vcGVyYW5kIHBy ZWRpY2F0ZQorOzsgdGhhdCBpdCBkb2VzIGFuZCBzcGxpdHRpbmcgaXQgbGF0 ZXIgYWxsb3dzIHRoZSBmb2xsb3dpbmcgdG8gYmUgcmVjb2duaXplZDoKKzs7 CWFbaV0gPSBiW2ldICogY1tpXSArIGRbaV07CisoZGVmaW5lX2luc24gInhv cF9wbWFjc2RkIgorICBbKHNldCAobWF0Y2hfb3BlcmFuZDpWNFNJIDAgInJl Z2lzdGVyX29wZXJhbmQiICI9eCx4LHgiKQorICAgICAgICAocGx1czpWNFNJ CisJIChtdWx0OlY0U0kKKwkgIChtYXRjaF9vcGVyYW5kOlY0U0kgMSAibm9u aW1tZWRpYXRlX29wZXJhbmQiICIleCx4LG0iKQorCSAgKG1hdGNoX29wZXJh bmQ6VjRTSSAyICJub25pbW1lZGlhdGVfb3BlcmFuZCIgIngsbSx4IikpCisJ IChtYXRjaF9vcGVyYW5kOlY0U0kgMyAicmVnaXN0ZXJfb3BlcmFuZCIgIngs eCx4IikpKV0KKyAgIlRBUkdFVF9YT1AgJiYgaXg4Nl9mbWE0X3ZhbGlkX29w X3AgKG9wZXJhbmRzLCBpbnNuLCA0LCBmYWxzZSwgMiwgdHJ1ZSkiCisgICJA CisgICB2cG1hY3NkZFx0eyUzLCAlMiwgJTEsICUwfCUwLCAlMSwgJTIsICUz fQorICAgdnBtYWNzZGRcdHslMywgJTIsICUxLCAlMHwlMCwgJTEsICUyLCAl M30KKyAgIHZwbWFjc2RkXHR7JTMsICUxLCAlMiwgJTB8JTAsICUyLCAlMSwg JTN9IgorICBbKHNldF9hdHRyICJ0eXBlIiAic3NlbXVsYWRkIikKKyAgIChz ZXRfYXR0ciAibW9kZSIgIlRJIildKQorCis7OyBTcGxpdCBwbWFjc2RkIHdp dGggdHdvIG1lbW9yeSBvcGVyYW5kcyBpbnRvIGEgbG9hZCBhbmQgdGhlIHBt YWNzZGQuCisoZGVmaW5lX3NwbGl0CisgIFsoc2V0IChtYXRjaF9vcGVyYW5k OlY0U0kgMCAicmVnaXN0ZXJfb3BlcmFuZCIgIiIpCisJKHBsdXM6VjRTSQor CSAobXVsdDpWNFNJIChtYXRjaF9vcGVyYW5kOlY0U0kgMSAibm9uaW1tZWRp YXRlX29wZXJhbmQiICIiKQorCQkgICAgKG1hdGNoX29wZXJhbmQ6VjRTSSAy ICJub25pbW1lZGlhdGVfb3BlcmFuZCIgIiIpKQorCSAobWF0Y2hfb3BlcmFu ZDpWNFNJIDMgIm5vbmltbWVkaWF0ZV9vcGVyYW5kIiAiIikpKV0KKyAgIlRB UkdFVF9YT1AKKyAgICYmICFpeDg2X2ZtYTRfdmFsaWRfb3BfcCAob3BlcmFu ZHMsIGluc24sIDQsIGZhbHNlLCAxLCB0cnVlKQorICAgJiYgaXg4Nl9mbWE0 X3ZhbGlkX29wX3AgKG9wZXJhbmRzLCBpbnNuLCA0LCBmYWxzZSwgMiwgdHJ1 ZSkKKyAgICYmICFyZWdfbWVudGlvbmVkX3AgKG9wZXJhbmRzWzBdLCBvcGVy YW5kc1sxXSkKKyAgICYmICFyZWdfbWVudGlvbmVkX3AgKG9wZXJhbmRzWzBd LCBvcGVyYW5kc1syXSkKKyAgICYmICFyZWdfbWVudGlvbmVkX3AgKG9wZXJh bmRzWzBdLCBvcGVyYW5kc1szXSkiCisgIFsoY29uc3RfaW50IDApXQorewor ICBpeDg2X2V4cGFuZF9mbWE0X211bHRpcGxlX21lbW9yeSAob3BlcmFuZHMs IDQsIFY0U0ltb2RlKTsKKyAgZW1pdF9pbnNuIChnZW5feG9wX3BtYWNzZGQg KG9wZXJhbmRzWzBdLCBvcGVyYW5kc1sxXSwgb3BlcmFuZHNbMl0sCisJCQkg ICAgICBvcGVyYW5kc1szXSkpOworICBET05FOworfSkKKworKGRlZmluZV9p bnNuICJ4b3BfcG1hY3NzZGQiCisgIFsoc2V0IChtYXRjaF9vcGVyYW5kOlY0 U0kgMCAicmVnaXN0ZXJfb3BlcmFuZCIgIj14LHgseCIpCisgICAgICAgIChz c19wbHVzOlY0U0kKKwkgKG11bHQ6VjRTSSAobWF0Y2hfb3BlcmFuZDpWNFNJ IDEgIm5vbmltbWVkaWF0ZV9vcGVyYW5kIiAiJXgseCxtIikKKwkJICAgICht YXRjaF9vcGVyYW5kOlY0U0kgMiAibm9uaW1tZWRpYXRlX29wZXJhbmQiICJ4 LG0seCIpKQorCSAobWF0Y2hfb3BlcmFuZDpWNFNJIDMgInJlZ2lzdGVyX29w ZXJhbmQiICJ4LHgseCIpKSldCisgICJUQVJHRVRfWE9QICYmIGl4ODZfZm1h NF92YWxpZF9vcF9wIChvcGVyYW5kcywgaW5zbiwgNCwgZmFsc2UsIDEsIHRy dWUpIgorICAiQAorICAgdnBtYWNzc2RkXHR7JTMsICUyLCAlMSwgJTB8JTAs ICUxLCAlMiwgJTN9CisgICB2cG1hY3NzZGRcdHslMywgJTIsICUxLCAlMHwl MCwgJTEsICUyLCAlM30KKyAgIHZwbWFjc3NkZFx0eyUzLCAlMSwgJTIsICUw fCUwLCAlMiwgJTEsICUzfSIKKyAgWyhzZXRfYXR0ciAidHlwZSIgInNzZW11 bGFkZCIpCisgICAoc2V0X2F0dHIgIm1vZGUiICJUSSIpXSkKKworKGRlZmlu ZV9pbnNuICJ4b3BfcG1hY3NzZHFsIgorICBbKHNldCAobWF0Y2hfb3BlcmFu ZDpWMkRJIDAgInJlZ2lzdGVyX29wZXJhbmQiICI9eCx4LHgiKQorCShzc19w bHVzOlYyREkKKwkgKG11bHQ6VjJESQorCSAgKHNpZ25fZXh0ZW5kOlYyREkK KwkgICAodmVjX3NlbGVjdDpWMlNJCisJICAgIChtYXRjaF9vcGVyYW5kOlY0 U0kgMSAibm9uaW1tZWRpYXRlX29wZXJhbmQiICIleCx4LG0iKQorCSAgICAo cGFyYWxsZWwgWyhjb25zdF9pbnQgMSkKKwkJICAgICAgIChjb25zdF9pbnQg MyldKSkpCisJICAodmVjX3NlbGVjdDpWMlNJCisJICAgKG1hdGNoX29wZXJh bmQ6VjRTSSAyICJub25pbW1lZGlhdGVfb3BlcmFuZCIgIngsbSx4IikKKwkg ICAocGFyYWxsZWwgWyhjb25zdF9pbnQgMSkKKwkJICAgICAgKGNvbnN0X2lu dCAzKV0pKSkKKwkgKG1hdGNoX29wZXJhbmQ6VjJESSAzICJyZWdpc3Rlcl9v cGVyYW5kIiAieCx4LHgiKSkpXQorICAiVEFSR0VUX1hPUCAmJiBpeDg2X2Zt YTRfdmFsaWRfb3BfcCAob3BlcmFuZHMsIGluc24sIDQsIGZhbHNlLCAxLCB0 cnVlKSIKKyAgIkAKKyAgIHZwbWFjc3NkcWxcdHslMywgJTIsICUxLCAlMHwl MCwgJTEsICUyLCAlM30KKyAgIHZwbWFjc3NkcWxcdHslMywgJTIsICUxLCAl MHwlMCwgJTEsICUyLCAlM30KKyAgIHZwbWFjc3NkcWxcdHslMywgJTEsICUy LCAlMHwlMCwgJTIsICUxLCAlM30iCisgIFsoc2V0X2F0dHIgInR5cGUiICJz c2VtdWxhZGQiKQorICAgKHNldF9hdHRyICJtb2RlIiAiVEkiKV0pCisKKyhk ZWZpbmVfaW5zbiAieG9wX3BtYWNzc2RxaCIKKyAgWyhzZXQgKG1hdGNoX29w ZXJhbmQ6VjJESSAwICJyZWdpc3Rlcl9vcGVyYW5kIiAiPXgseCx4IikKKwko c3NfcGx1czpWMkRJCisJIChtdWx0OlYyREkKKwkgIChzaWduX2V4dGVuZDpW MkRJCisJICAgKHZlY19zZWxlY3Q6VjJTSQorCSAgICAobWF0Y2hfb3BlcmFu ZDpWNFNJIDEgIm5vbmltbWVkaWF0ZV9vcGVyYW5kIiAiJXgseCxtIikKKwkg ICAgKHBhcmFsbGVsIFsoY29uc3RfaW50IDApCisJCSAgICAgICAoY29uc3Rf aW50IDIpXSkpKQorCSAgKHNpZ25fZXh0ZW5kOlYyREkKKwkgICAodmVjX3Nl bGVjdDpWMlNJCisJICAgIChtYXRjaF9vcGVyYW5kOlY0U0kgMiAibm9uaW1t ZWRpYXRlX29wZXJhbmQiICJ4LG0seCIpCisJICAgIChwYXJhbGxlbCBbKGNv bnN0X2ludCAwKQorCQkgICAgICAgKGNvbnN0X2ludCAyKV0pKSkpCisJICht YXRjaF9vcGVyYW5kOlYyREkgMyAicmVnaXN0ZXJfb3BlcmFuZCIgIngseCx4 IikpKV0KKyAgIlRBUkdFVF9YT1AgJiYgaXg4Nl9mbWE0X3ZhbGlkX29wX3Ag KG9wZXJhbmRzLCBpbnNuLCA0LCBmYWxzZSwgMSwgdHJ1ZSkiCisgICJACisg ICB2cG1hY3NzZHFoXHR7JTMsICUyLCAlMSwgJTB8JTAsICUxLCAlMiwgJTN9 CisgICB2cG1hY3NzZHFoXHR7JTMsICUyLCAlMSwgJTB8JTAsICUxLCAlMiwg JTN9CisgICB2cG1hY3NzZHFoXHR7JTMsICUxLCAlMiwgJTB8JTAsICUyLCAl MSwgJTN9IgorICBbKHNldF9hdHRyICJ0eXBlIiAic3NlbXVsYWRkIikKKyAg IChzZXRfYXR0ciAibW9kZSIgIlRJIildKQorCisoZGVmaW5lX2luc24gInhv cF9wbWFjc2RxbCIKKyAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6VjJESSAwICJy ZWdpc3Rlcl9vcGVyYW5kIiAiPXgseCx4IikKKwkocGx1czpWMkRJCisJICht dWx0OlYyREkKKwkgIChzaWduX2V4dGVuZDpWMkRJCisJICAgKHZlY19zZWxl Y3Q6VjJTSQorCSAgICAobWF0Y2hfb3BlcmFuZDpWNFNJIDEgIm5vbmltbWVk aWF0ZV9vcGVyYW5kIiAiJXgseCxtIikKKwkgICAgKHBhcmFsbGVsIFsoY29u c3RfaW50IDEpCisJCSAgICAgICAoY29uc3RfaW50IDMpXSkpKQorCSAgKHNp Z25fZXh0ZW5kOlYyREkKKwkgICAodmVjX3NlbGVjdDpWMlNJCisJICAgICht YXRjaF9vcGVyYW5kOlY0U0kgMiAibm9uaW1tZWRpYXRlX29wZXJhbmQiICJ4 LG0seCIpCisJICAgIChwYXJhbGxlbCBbKGNvbnN0X2ludCAxKQorCQkgICAg ICAgKGNvbnN0X2ludCAzKV0pKSkpCisJIChtYXRjaF9vcGVyYW5kOlYyREkg MyAicmVnaXN0ZXJfb3BlcmFuZCIgIngseCx4IikpKV0KKyAgIlRBUkdFVF9Y T1AgJiYgaXg4Nl9mbWE0X3ZhbGlkX29wX3AgKG9wZXJhbmRzLCBpbnNuLCA0 LCBmYWxzZSwgMSwgdHJ1ZSkiCisgICJACisgICB2cG1hY3NkcWxcdHslMywg JTIsICUxLCAlMHwlMCwgJTEsICUyLCAlM30KKyAgIHZwbWFjc2RxbFx0eyUz LCAlMiwgJTEsICUwfCUwLCAlMSwgJTIsICUzfQorICAgdnBtYWNzZHFsXHR7 JTMsICUxLCAlMiwgJTB8JTAsICUyLCAlMSwgJTN9IgorICBbKHNldF9hdHRy ICJ0eXBlIiAic3NlbXVsYWRkIikKKyAgIChzZXRfYXR0ciAibW9kZSIgIlRJ IildKQorCisoZGVmaW5lX2luc25fYW5kX3NwbGl0ICIqeG9wX3BtYWNzZHFs X21lbSIKKyAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6VjJESSAwICJyZWdpc3Rl cl9vcGVyYW5kIiAiPSZ4LCZ4LCZ4IikKKwkocGx1czpWMkRJCisJIChtdWx0 OlYyREkKKwkgIChzaWduX2V4dGVuZDpWMkRJCisJICAgKHZlY19zZWxlY3Q6 VjJTSQorCSAgICAobWF0Y2hfb3BlcmFuZDpWNFNJIDEgIm5vbmltbWVkaWF0 ZV9vcGVyYW5kIiAiJXgseCxtIikKKwkgICAgKHBhcmFsbGVsIFsoY29uc3Rf aW50IDEpCisJCSAgICAgICAoY29uc3RfaW50IDMpXSkpKQorCSAgKHNpZ25f ZXh0ZW5kOlYyREkKKwkgICAodmVjX3NlbGVjdDpWMlNJCisJICAgIChtYXRj aF9vcGVyYW5kOlY0U0kgMiAibm9uaW1tZWRpYXRlX29wZXJhbmQiICJ4LG0s eCIpCisJICAgIChwYXJhbGxlbCBbKGNvbnN0X2ludCAxKQorCQkgICAgICAg KGNvbnN0X2ludCAzKV0pKSkpCisJIChtYXRjaF9vcGVyYW5kOlYyREkgMyAi bWVtb3J5X29wZXJhbmQiICJtLG0sbSIpKSldCisgICJUQVJHRVRfWE9QICYm IGl4ODZfZm1hNF92YWxpZF9vcF9wIChvcGVyYW5kcywgaW5zbiwgNCwgZmFs c2UsIC0xLCB0cnVlKSIKKyAgIiMiCisgICImJiAocmVsb2FkX2NvbXBsZXRl ZAorICAgICAgIHx8ICghcmVnX21lbnRpb25lZF9wIChvcGVyYW5kc1swXSwg b3BlcmFuZHNbMV0pCisJICAgJiYgIXJlZ19tZW50aW9uZWRfcCAob3BlcmFu ZHNbMF0sIG9wZXJhbmRzWzJdKSkpIgorICBbKHNldCAobWF0Y2hfZHVwIDAp CisJKG1hdGNoX2R1cCAzKSkKKyAgIChzZXQgKG1hdGNoX2R1cCAwKQorCShw bHVzOlYyREkKKwkgKG11bHQ6VjJESQorCSAgKHNpZ25fZXh0ZW5kOlYyREkK KwkgICAodmVjX3NlbGVjdDpWMlNJCisJICAgIChtYXRjaF9kdXAgMSkKKwkg ICAgKHBhcmFsbGVsIFsoY29uc3RfaW50IDEpCisJCSAgICAgICAoY29uc3Rf aW50IDMpXSkpKQorCSAgKHNpZ25fZXh0ZW5kOlYyREkKKwkgICAodmVjX3Nl bGVjdDpWMlNJCisJICAgIChtYXRjaF9kdXAgMikKKwkgICAgKHBhcmFsbGVs IFsoY29uc3RfaW50IDEpCisJCSAgICAgICAoY29uc3RfaW50IDMpXSkpKSkK KwkgKG1hdGNoX2R1cCAwKSkpXSkKKworOzsgV2UgZG9uJ3QgaGF2ZSBhIHN0 cmFpZ2h0IDMyLWJpdCBwYXJhbGxlbCBtdWx0aXBseSBhbmQgZXh0ZW5kIG9u IFhPUCwgc28KKzs7IGZha2UgaXQgd2l0aCBhIG11bHRpcGx5L2FkZC4gIElu IGdlbmVyYWwsIHdlIGV4cGVjdCB0aGUgZGVmaW5lX3NwbGl0IHRvCis7OyBv Y2N1ciBiZWZvcmUgcmVnaXN0ZXIgYWxsb2NhdGlvbiwgc28gd2UgaGF2ZSB0 byBoYW5kbGUgdGhlIGNvcm5lciBjYXNlIHdoZXJlCis7OyB0aGUgdGFyZ2V0 IGlzIHRoZSBzYW1lIGFzIG9wZXJhbmRzIDEvMgorKGRlZmluZV9pbnNuX2Fu ZF9zcGxpdCAieG9wX211bHYyZGl2MmRpM19sb3ciCisgIFsoc2V0IChtYXRj aF9vcGVyYW5kOlYyREkgMCAicmVnaXN0ZXJfb3BlcmFuZCIgIj0meCIpCisJ KG11bHQ6VjJESQorCSAgKHNpZ25fZXh0ZW5kOlYyREkKKwkgICAgKHZlY19z ZWxlY3Q6VjJTSQorCSAgICAgIChtYXRjaF9vcGVyYW5kOlY0U0kgMSAibm9u aW1tZWRpYXRlX29wZXJhbmQiICIleCIpCisJICAgICAgKHBhcmFsbGVsIFso Y29uc3RfaW50IDEpCisJCQkgKGNvbnN0X2ludCAzKV0pKSkKKwkgIChzaWdu X2V4dGVuZDpWMkRJCisJICAgICh2ZWNfc2VsZWN0OlYyU0kKKwkgICAgICAo bWF0Y2hfb3BlcmFuZDpWNFNJIDIgIm5vbmltbWVkaWF0ZV9vcGVyYW5kIiAi eG0iKQorCSAgICAgIChwYXJhbGxlbCBbKGNvbnN0X2ludCAxKQorCQkJIChj b25zdF9pbnQgMyldKSkpKSldCisgICJUQVJHRVRfWE9QIgorICAiIyIKKyAg IiYmIChyZWxvYWRfY29tcGxldGVkCisgICAgICAgfHwgKCFyZWdfbWVudGlv bmVkX3AgKG9wZXJhbmRzWzBdLCBvcGVyYW5kc1sxXSkKKwkgICAmJiAhcmVn X21lbnRpb25lZF9wIChvcGVyYW5kc1swXSwgb3BlcmFuZHNbMl0pKSkiCisg IFsoc2V0IChtYXRjaF9kdXAgMCkKKwkobWF0Y2hfZHVwIDMpKQorICAgKHNl dCAobWF0Y2hfZHVwIDApCisJKHBsdXM6VjJESQorCSAobXVsdDpWMkRJCisJ ICAoc2lnbl9leHRlbmQ6VjJESQorCSAgICh2ZWNfc2VsZWN0OlYyU0kKKwkg ICAgKG1hdGNoX2R1cCAxKQorCSAgICAocGFyYWxsZWwgWyhjb25zdF9pbnQg MSkKKwkJICAgICAgIChjb25zdF9pbnQgMyldKSkpCisJICAoc2lnbl9leHRl bmQ6VjJESQorCSAgICh2ZWNfc2VsZWN0OlYyU0kKKwkgICAgKG1hdGNoX2R1 cCAyKQorCSAgICAocGFyYWxsZWwgWyhjb25zdF9pbnQgMSkKKwkJICAgICAg IChjb25zdF9pbnQgMyldKSkpKQorCSAobWF0Y2hfZHVwIDApKSldCit7Cisg IG9wZXJhbmRzWzNdID0gQ09OU1QwX1JUWCAoVjJESW1vZGUpOworfQorICBb KHNldF9hdHRyICJ0eXBlIiAic3NlbXVsYWRkIikKKyAgIChzZXRfYXR0ciAi bW9kZSIgIlRJIildKQorCisoZGVmaW5lX2luc24gInhvcF9wbWFjc2RxaCIK KyAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6VjJESSAwICJyZWdpc3Rlcl9vcGVy YW5kIiAiPXgseCx4IikKKwkocGx1czpWMkRJCisJIChtdWx0OlYyREkKKwkg IChzaWduX2V4dGVuZDpWMkRJCisJICAgKHZlY19zZWxlY3Q6VjJTSQorCSAg ICAobWF0Y2hfb3BlcmFuZDpWNFNJIDEgIm5vbmltbWVkaWF0ZV9vcGVyYW5k IiAiJXgseCxtIikKKwkgICAgKHBhcmFsbGVsIFsoY29uc3RfaW50IDApCisJ CSAgICAgICAoY29uc3RfaW50IDIpXSkpKQorCSAgKHNpZ25fZXh0ZW5kOlYy REkKKwkgICAodmVjX3NlbGVjdDpWMlNJCisJICAgIChtYXRjaF9vcGVyYW5k OlY0U0kgMiAibm9uaW1tZWRpYXRlX29wZXJhbmQiICJ4LG0seCIpCisJICAg IChwYXJhbGxlbCBbKGNvbnN0X2ludCAwKQorCQkgICAgICAgKGNvbnN0X2lu dCAyKV0pKSkpCisJIChtYXRjaF9vcGVyYW5kOlYyREkgMyAicmVnaXN0ZXJf b3BlcmFuZCIgIngseCx4IikpKV0KKyAgIlRBUkdFVF9YT1AgJiYgaXg4Nl9m bWE0X3ZhbGlkX29wX3AgKG9wZXJhbmRzLCBpbnNuLCA0LCBmYWxzZSwgMSwg dHJ1ZSkiCisgICJACisgICB2cG1hY3NkcWhcdHslMywgJTIsICUxLCAlMHwl MCwgJTEsICUyLCAlM30KKyAgIHZwbWFjc2RxaFx0eyUzLCAlMiwgJTEsICUw fCUwLCAlMSwgJTIsICUzfQorICAgdnBtYWNzZHFoXHR7JTMsICUxLCAlMiwg JTB8JTAsICUyLCAlMSwgJTN9IgorICBbKHNldF9hdHRyICJ0eXBlIiAic3Nl bXVsYWRkIikKKyAgIChzZXRfYXR0ciAibW9kZSIgIlRJIildKQorCisoZGVm aW5lX2luc25fYW5kX3NwbGl0ICIqeG9wX3BtYWNzZHFoX21lbSIKKyAgWyhz ZXQgKG1hdGNoX29wZXJhbmQ6VjJESSAwICJyZWdpc3Rlcl9vcGVyYW5kIiAi PSZ4LCZ4LCZ4IikKKwkocGx1czpWMkRJCisJIChtdWx0OlYyREkKKwkgIChz aWduX2V4dGVuZDpWMkRJCisJICAgKHZlY19zZWxlY3Q6VjJTSQorCSAgICAo bWF0Y2hfb3BlcmFuZDpWNFNJIDEgIm5vbmltbWVkaWF0ZV9vcGVyYW5kIiAi JXgseCxtIikKKwkgICAgKHBhcmFsbGVsIFsoY29uc3RfaW50IDApCisJCSAg ICAgICAoY29uc3RfaW50IDIpXSkpKQorCSAgKHNpZ25fZXh0ZW5kOlYyREkK KwkgICAodmVjX3NlbGVjdDpWMlNJCisJICAgIChtYXRjaF9vcGVyYW5kOlY0 U0kgMiAibm9uaW1tZWRpYXRlX29wZXJhbmQiICJ4LG0seCIpCisJICAgIChw YXJhbGxlbCBbKGNvbnN0X2ludCAwKQorCQkgICAgICAgKGNvbnN0X2ludCAy KV0pKSkpCisJIChtYXRjaF9vcGVyYW5kOlYyREkgMyAibWVtb3J5X29wZXJh bmQiICJtLG0sbSIpKSldCisgICJUQVJHRVRfWE9QICYmIGl4ODZfZm1hNF92 YWxpZF9vcF9wIChvcGVyYW5kcywgaW5zbiwgNCwgZmFsc2UsIC0xLCB0cnVl KSIKKyAgIiMiCisgICImJiAocmVsb2FkX2NvbXBsZXRlZAorICAgICAgIHx8 ICghcmVnX21lbnRpb25lZF9wIChvcGVyYW5kc1swXSwgb3BlcmFuZHNbMV0p CisJICAgJiYgIXJlZ19tZW50aW9uZWRfcCAob3BlcmFuZHNbMF0sIG9wZXJh bmRzWzJdKSkpIgorICBbKHNldCAobWF0Y2hfZHVwIDApCisJKG1hdGNoX2R1 cCAzKSkKKyAgIChzZXQgKG1hdGNoX2R1cCAwKQorCShwbHVzOlYyREkKKwkg KG11bHQ6VjJESQorCSAgKHNpZ25fZXh0ZW5kOlYyREkKKwkgICAodmVjX3Nl bGVjdDpWMlNJCisJICAgIChtYXRjaF9kdXAgMSkKKwkgICAgKHBhcmFsbGVs IFsoY29uc3RfaW50IDApCisJCSAgICAgICAoY29uc3RfaW50IDIpXSkpKQor CSAgKHNpZ25fZXh0ZW5kOlYyREkKKwkgICAodmVjX3NlbGVjdDpWMlNJCisJ ICAgIChtYXRjaF9kdXAgMikKKwkgICAgKHBhcmFsbGVsIFsoY29uc3RfaW50 IDApCisJCSAgICAgICAoY29uc3RfaW50IDIpXSkpKSkKKwkgKG1hdGNoX2R1 cCAwKSkpXSkKKworOzsgV2UgZG9uJ3QgaGF2ZSBhIHN0cmFpZ2h0IDMyLWJp dCBwYXJhbGxlbCBtdWx0aXBseSBhbmQgZXh0ZW5kIG9uIFhPUCwgc28KKzs7 IGZha2UgaXQgd2l0aCBhIG11bHRpcGx5L2FkZC4gIEluIGdlbmVyYWwsIHdl IGV4cGVjdCB0aGUgZGVmaW5lX3NwbGl0IHRvCis7OyBvY2N1ciBiZWZvcmUg cmVnaXN0ZXIgYWxsb2NhdGlvbiwgc28gd2UgaGF2ZSB0byBoYW5kbGUgdGhl IGNvcm5lciBjYXNlIHdoZXJlCis7OyB0aGUgdGFyZ2V0IGlzIHRoZSBzYW1l IGFzIGVpdGhlciBvcGVyYW5kc1sxXSBvciBvcGVyYW5kc1syXQorKGRlZmlu ZV9pbnNuX2FuZF9zcGxpdCAieG9wX211bHYyZGl2MmRpM19oaWdoIgorICBb KHNldCAobWF0Y2hfb3BlcmFuZDpWMkRJIDAgInJlZ2lzdGVyX29wZXJhbmQi ICI9JngiKQorCShtdWx0OlYyREkKKwkgIChzaWduX2V4dGVuZDpWMkRJCisJ ICAgICh2ZWNfc2VsZWN0OlYyU0kKKwkgICAgICAobWF0Y2hfb3BlcmFuZDpW NFNJIDEgIm5vbmltbWVkaWF0ZV9vcGVyYW5kIiAiJXgiKQorCSAgICAgIChw YXJhbGxlbCBbKGNvbnN0X2ludCAwKQorCQkJIChjb25zdF9pbnQgMildKSkp CisJICAoc2lnbl9leHRlbmQ6VjJESQorCSAgICAodmVjX3NlbGVjdDpWMlNJ CisJICAgICAgKG1hdGNoX29wZXJhbmQ6VjRTSSAyICJub25pbW1lZGlhdGVf b3BlcmFuZCIgInhtIikKKwkgICAgICAocGFyYWxsZWwgWyhjb25zdF9pbnQg MCkKKwkJCSAoY29uc3RfaW50IDIpXSkpKSkpXQorICAiVEFSR0VUX1hPUCIK KyAgIiMiCisgICImJiAocmVsb2FkX2NvbXBsZXRlZAorICAgICAgIHx8ICgh cmVnX21lbnRpb25lZF9wIChvcGVyYW5kc1swXSwgb3BlcmFuZHNbMV0pCisJ ICAgJiYgIXJlZ19tZW50aW9uZWRfcCAob3BlcmFuZHNbMF0sIG9wZXJhbmRz WzJdKSkpIgorICBbKHNldCAobWF0Y2hfZHVwIDApCisJKG1hdGNoX2R1cCAz KSkKKyAgIChzZXQgKG1hdGNoX2R1cCAwKQorCShwbHVzOlYyREkKKwkgKG11 bHQ6VjJESQorCSAgKHNpZ25fZXh0ZW5kOlYyREkKKwkgICAodmVjX3NlbGVj dDpWMlNJCisJICAgIChtYXRjaF9kdXAgMSkKKwkgICAgKHBhcmFsbGVsIFso Y29uc3RfaW50IDApCisJCSAgICAgICAoY29uc3RfaW50IDIpXSkpKQorCSAg KHNpZ25fZXh0ZW5kOlYyREkKKwkgICAodmVjX3NlbGVjdDpWMlNJCisJICAg IChtYXRjaF9kdXAgMikKKwkgICAgKHBhcmFsbGVsIFsoY29uc3RfaW50IDAp CisJCSAgICAgICAoY29uc3RfaW50IDIpXSkpKSkKKwkgKG1hdGNoX2R1cCAw KSkpXQoreworICBvcGVyYW5kc1szXSA9IENPTlNUMF9SVFggKFYyREltb2Rl KTsKK30KKyAgWyhzZXRfYXR0ciAidHlwZSIgInNzZW11bGFkZCIpCisgICAo c2V0X2F0dHIgIm1vZGUiICJUSSIpXSkKKworOzsgWE9QIHBhcmFsbGVsIGlu dGVnZXIgbXVsdGlwbHkvYWRkIGluc3RydWN0aW9ucyBmb3IgdGhlIGludHJp bmlzaWNzCisoZGVmaW5lX2luc24gInhvcF9wbWFjc3N3ZCIKKyAgWyhzZXQg KG1hdGNoX29wZXJhbmQ6VjRTSSAwICJyZWdpc3Rlcl9vcGVyYW5kIiAiPXgs eCx4IikKKwkoc3NfcGx1czpWNFNJCisJIChtdWx0OlY0U0kKKwkgIChzaWdu X2V4dGVuZDpWNFNJCisJICAgKHZlY19zZWxlY3Q6VjRISQorCSAgICAobWF0 Y2hfb3BlcmFuZDpWOEhJIDEgIm5vbmltbWVkaWF0ZV9vcGVyYW5kIiAiJXgs eCxtIikKKwkgICAgKHBhcmFsbGVsIFsoY29uc3RfaW50IDEpCisJCSAgICAg ICAoY29uc3RfaW50IDMpCisJCSAgICAgICAoY29uc3RfaW50IDUpCisJCSAg ICAgICAoY29uc3RfaW50IDcpXSkpKQorCSAgKHNpZ25fZXh0ZW5kOlY0U0kK KwkgICAodmVjX3NlbGVjdDpWNEhJCisJICAgIChtYXRjaF9vcGVyYW5kOlY4 SEkgMiAibm9uaW1tZWRpYXRlX29wZXJhbmQiICJ4LG0seCIpCisJICAgIChw YXJhbGxlbCBbKGNvbnN0X2ludCAxKQorCQkgICAgICAgKGNvbnN0X2ludCAz KQorCQkgICAgICAgKGNvbnN0X2ludCA1KQorCQkgICAgICAgKGNvbnN0X2lu dCA3KV0pKSkpCisJIChtYXRjaF9vcGVyYW5kOlY0U0kgMyAicmVnaXN0ZXJf b3BlcmFuZCIgIngseCx4IikpKV0KKyAgIlRBUkdFVF9YT1AgJiYgaXg4Nl9m bWE0X3ZhbGlkX29wX3AgKG9wZXJhbmRzLCBpbnNuLCA0LCBmYWxzZSwgMSwg dHJ1ZSkiCisgICJACisgICB2cG1hY3Nzd2RcdHslMywgJTIsICUxLCAlMHwl MCwgJTEsICUyLCAlM30KKyAgIHZwbWFjc3N3ZFx0eyUzLCAlMiwgJTEsICUw fCUwLCAlMSwgJTIsICUzfQorICAgdnBtYWNzc3dkXHR7JTMsICUxLCAlMiwg JTB8JTAsICUyLCAlMSwgJTN9IgorICBbKHNldF9hdHRyICJ0eXBlIiAic3Nl bXVsYWRkIikKKyAgIChzZXRfYXR0ciAibW9kZSIgIlRJIildKQorCisoZGVm aW5lX2luc24gInhvcF9wbWFjc3dkIgorICBbKHNldCAobWF0Y2hfb3BlcmFu ZDpWNFNJIDAgInJlZ2lzdGVyX29wZXJhbmQiICI9eCx4LHgiKQorCShwbHVz OlY0U0kKKwkgKG11bHQ6VjRTSQorCSAgKHNpZ25fZXh0ZW5kOlY0U0kKKwkg ICAodmVjX3NlbGVjdDpWNEhJCisJICAgIChtYXRjaF9vcGVyYW5kOlY4SEkg MSAibm9uaW1tZWRpYXRlX29wZXJhbmQiICIleCx4LG0iKQorCSAgICAocGFy YWxsZWwgWyhjb25zdF9pbnQgMSkKKwkJICAgICAgIChjb25zdF9pbnQgMykK KwkJICAgICAgIChjb25zdF9pbnQgNSkKKwkJICAgICAgIChjb25zdF9pbnQg NyldKSkpCisJICAoc2lnbl9leHRlbmQ6VjRTSQorCSAgICh2ZWNfc2VsZWN0 OlY0SEkKKwkgICAgKG1hdGNoX29wZXJhbmQ6VjhISSAyICJub25pbW1lZGlh dGVfb3BlcmFuZCIgIngsbSx4IikKKwkgICAgKHBhcmFsbGVsIFsoY29uc3Rf aW50IDEpCisJCSAgICAgICAoY29uc3RfaW50IDMpCisJCSAgICAgICAoY29u c3RfaW50IDUpCisJCSAgICAgICAoY29uc3RfaW50IDcpXSkpKSkKKwkgKG1h dGNoX29wZXJhbmQ6VjRTSSAzICJyZWdpc3Rlcl9vcGVyYW5kIiAieCx4LHgi KSkpXQorICAiVEFSR0VUX1hPUCAmJiBpeDg2X2ZtYTRfdmFsaWRfb3BfcCAo b3BlcmFuZHMsIGluc24sIDQsIGZhbHNlLCAxLCB0cnVlKSIKKyAgIkAKKyAg IHZwbWFjc3dkXHR7JTMsICUyLCAlMSwgJTB8JTAsICUxLCAlMiwgJTN9Cisg ICB2cG1hY3N3ZFx0eyUzLCAlMiwgJTEsICUwfCUwLCAlMSwgJTIsICUzfQor ICAgdnBtYWNzd2RcdHslMywgJTEsICUyLCAlMHwlMCwgJTIsICUxLCAlM30i CisgIFsoc2V0X2F0dHIgInR5cGUiICJzc2VtdWxhZGQiKQorICAgKHNldF9h dHRyICJtb2RlIiAiVEkiKV0pCisKKyhkZWZpbmVfaW5zbiAieG9wX3BtYWRj c3N3ZCIKKyAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6VjRTSSAwICJyZWdpc3Rl cl9vcGVyYW5kIiAiPXgseCx4IikKKwkoc3NfcGx1czpWNFNJCisJIChwbHVz OlY0U0kKKwkgIChtdWx0OlY0U0kKKwkgICAoc2lnbl9leHRlbmQ6VjRTSQor CSAgICAodmVjX3NlbGVjdDpWNEhJCisJICAgICAobWF0Y2hfb3BlcmFuZDpW OEhJIDEgIm5vbmltbWVkaWF0ZV9vcGVyYW5kIiAiJXgseCxtIikKKwkgICAg IChwYXJhbGxlbCBbKGNvbnN0X2ludCAwKQorCQkJKGNvbnN0X2ludCAyKQor CQkJKGNvbnN0X2ludCA0KQorCQkJKGNvbnN0X2ludCA2KV0pKSkKKwkgICAo c2lnbl9leHRlbmQ6VjRTSQorCSAgICAodmVjX3NlbGVjdDpWNEhJCisJICAg ICAobWF0Y2hfb3BlcmFuZDpWOEhJIDIgIm5vbmltbWVkaWF0ZV9vcGVyYW5k IiAieCxtLHgiKQorCSAgICAgKHBhcmFsbGVsIFsoY29uc3RfaW50IDApCisJ CQkoY29uc3RfaW50IDIpCisJCQkoY29uc3RfaW50IDQpCisJCQkoY29uc3Rf aW50IDYpXSkpKSkKKwkgIChtdWx0OlY0U0kKKwkgICAoc2lnbl9leHRlbmQ6 VjRTSQorCSAgICAodmVjX3NlbGVjdDpWNEhJCisJICAgICAobWF0Y2hfZHVw IDEpCisJICAgICAocGFyYWxsZWwgWyhjb25zdF9pbnQgMSkKKwkJCShjb25z dF9pbnQgMykKKwkJCShjb25zdF9pbnQgNSkKKwkJCShjb25zdF9pbnQgNyld KSkpCisJICAgKHNpZ25fZXh0ZW5kOlY0U0kKKwkgICAgKHZlY19zZWxlY3Q6 VjRISQorCSAgICAgKG1hdGNoX2R1cCAyKQorCSAgICAgKHBhcmFsbGVsIFso Y29uc3RfaW50IDEpCisJCQkoY29uc3RfaW50IDMpCisJCQkoY29uc3RfaW50 IDUpCisJCQkoY29uc3RfaW50IDcpXSkpKSkpCisJIChtYXRjaF9vcGVyYW5k OlY0U0kgMyAicmVnaXN0ZXJfb3BlcmFuZCIgIngseCx4IikpKV0KKyAgIlRB UkdFVF9YT1AgJiYgaXg4Nl9mbWE0X3ZhbGlkX29wX3AgKG9wZXJhbmRzLCBp bnNuLCA0LCBmYWxzZSwgMSwgdHJ1ZSkiCisgICJACisgICB2cG1hZGNzc3dk XHR7JTMsICUyLCAlMSwgJTB8JTAsICUxLCAlMiwgJTN9CisgICB2cG1hZGNz c3dkXHR7JTMsICUyLCAlMSwgJTB8JTAsICUxLCAlMiwgJTN9CisgICB2cG1h ZGNzc3dkXHR7JTMsICUxLCAlMiwgJTB8JTAsICUyLCAlMSwgJTN9IgorICBb KHNldF9hdHRyICJ0eXBlIiAic3NlbXVsYWRkIikKKyAgIChzZXRfYXR0ciAi bW9kZSIgIlRJIildKQorCisoZGVmaW5lX2luc24gInhvcF9wbWFkY3N3ZCIK KyAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6VjRTSSAwICJyZWdpc3Rlcl9vcGVy YW5kIiAiPXgseCx4IikKKwkocGx1czpWNFNJCisJIChwbHVzOlY0U0kKKwkg IChtdWx0OlY0U0kKKwkgICAoc2lnbl9leHRlbmQ6VjRTSQorCSAgICAodmVj X3NlbGVjdDpWNEhJCisJICAgICAobWF0Y2hfb3BlcmFuZDpWOEhJIDEgIm5v bmltbWVkaWF0ZV9vcGVyYW5kIiAiJXgseCxtIikKKwkgICAgIChwYXJhbGxl bCBbKGNvbnN0X2ludCAwKQorCQkJKGNvbnN0X2ludCAyKQorCQkJKGNvbnN0 X2ludCA0KQorCQkJKGNvbnN0X2ludCA2KV0pKSkKKwkgICAoc2lnbl9leHRl bmQ6VjRTSQorCSAgICAodmVjX3NlbGVjdDpWNEhJCisJICAgICAobWF0Y2hf b3BlcmFuZDpWOEhJIDIgIm5vbmltbWVkaWF0ZV9vcGVyYW5kIiAieCxtLHgi KQorCSAgICAgKHBhcmFsbGVsIFsoY29uc3RfaW50IDApCisJCQkoY29uc3Rf aW50IDIpCisJCQkoY29uc3RfaW50IDQpCisJCQkoY29uc3RfaW50IDYpXSkp KSkKKwkgIChtdWx0OlY0U0kKKwkgICAoc2lnbl9leHRlbmQ6VjRTSQorCSAg ICAodmVjX3NlbGVjdDpWNEhJCisJICAgICAobWF0Y2hfZHVwIDEpCisJICAg ICAocGFyYWxsZWwgWyhjb25zdF9pbnQgMSkKKwkJCShjb25zdF9pbnQgMykK KwkJCShjb25zdF9pbnQgNSkKKwkJCShjb25zdF9pbnQgNyldKSkpCisJICAg KHNpZ25fZXh0ZW5kOlY0U0kKKwkgICAgKHZlY19zZWxlY3Q6VjRISQorCSAg ICAgKG1hdGNoX2R1cCAyKQorCSAgICAgKHBhcmFsbGVsIFsoY29uc3RfaW50 IDEpCisJCQkoY29uc3RfaW50IDMpCisJCQkoY29uc3RfaW50IDUpCisJCQko Y29uc3RfaW50IDcpXSkpKSkpCisJIChtYXRjaF9vcGVyYW5kOlY0U0kgMyAi cmVnaXN0ZXJfb3BlcmFuZCIgIngseCx4IikpKV0KKyAgIlRBUkdFVF9YT1Ag JiYgaXg4Nl9mbWE0X3ZhbGlkX29wX3AgKG9wZXJhbmRzLCBpbnNuLCA0LCBm YWxzZSwgMSwgdHJ1ZSkiCisgICJACisgICB2cG1hZGNzd2RcdHslMywgJTIs ICUxLCAlMHwlMCwgJTEsICUyLCAlM30KKyAgIHZwbWFkY3N3ZFx0eyUzLCAl MiwgJTEsICUwfCUwLCAlMSwgJTIsICUzfQorICAgdnBtYWRjc3dkXHR7JTMs ICUxLCAlMiwgJTB8JTAsICUyLCAlMSwgJTN9IgorICBbKHNldF9hdHRyICJ0 eXBlIiAic3NlbXVsYWRkIikKKyAgIChzZXRfYXR0ciAibW9kZSIgIlRJIild KQorCis7OyBYT1AgcGFyYWxsZWwgWE1NIGNvbmRpdGlvbmFsIG1vdmVzCiso ZGVmaW5lX2luc24gInhvcF9wY21vdl88bW9kZT4iCisgIFsoc2V0IChtYXRj aF9vcGVyYW5kOlNTRU1PREUgMCAicmVnaXN0ZXJfb3BlcmFuZCIgIj14LHgs eCIpCisJKGlmX3RoZW5fZWxzZTpTU0VNT0RFCisJICAobWF0Y2hfb3BlcmFu ZDpTU0VNT0RFIDMgIm5vbmltbWVkaWF0ZV9vcGVyYW5kIiAieCx4LHhtIikK KwkgIChtYXRjaF9vcGVyYW5kOlNTRU1PREUgMSAidmVjdG9yX21vdmVfb3Bl cmFuZCIgIngseG0seCIpCisJICAobWF0Y2hfb3BlcmFuZDpTU0VNT0RFIDIg InZlY3Rvcl9tb3ZlX29wZXJhbmQiICJ4bSx4LHgiKSkpXQorICAiVEFSR0VU X1hPUCAmJiBpeDg2X2ZtYTRfdmFsaWRfb3BfcCAob3BlcmFuZHMsIGluc24s IDQsIHRydWUsIDEsIGZhbHNlKSIKKyAgIkAKKyAgIHZwY21vdlx0eyUzLCAl MiwgJTEsICUwfCUwLCAlMSwgJTIsICUzfQorICAgdnBjbW92XHR7JTMsICUy LCAlMSwgJTB8JTAsICUxLCAlMiwgJTN9CisgICB2cGNtb3ZcdHslMywgJTIs ICUxLCAlMHwlMCwgJTEsICUyLCAlM30iCisgIFsoc2V0X2F0dHIgInR5cGUi ICJzc2U0YXJnIildKQorCisoZGVmaW5lX2luc24gInhvcF9wY21vdl88bW9k ZT4yNTYiCisgIFsoc2V0IChtYXRjaF9vcGVyYW5kOkFWWDI1Nk1PREUgMCAi cmVnaXN0ZXJfb3BlcmFuZCIgIj14LHgseCIpCisJKGlmX3RoZW5fZWxzZTpB VlgyNTZNT0RFCisJICAobWF0Y2hfb3BlcmFuZDpBVlgyNTZNT0RFIDMgIm5v bmltbWVkaWF0ZV9vcGVyYW5kIiAieCx4LHhtIikKKwkgIChtYXRjaF9vcGVy YW5kOkFWWDI1Nk1PREUgMSAidmVjdG9yX21vdmVfb3BlcmFuZCIgIngseG0s eCIpCisJICAobWF0Y2hfb3BlcmFuZDpBVlgyNTZNT0RFIDIgInZlY3Rvcl9t b3ZlX29wZXJhbmQiICJ4bSx4LHgiKSkpXQorICAiVEFSR0VUX1hPUCAmJiBp eDg2X2ZtYTRfdmFsaWRfb3BfcCAob3BlcmFuZHMsIGluc24sIDQsIHRydWUs IDEsIGZhbHNlKSIKKyAgIkAKKyAgIHZwY21vdlx0eyUzLCAlMiwgJTEsICUw fCUwLCAlMSwgJTIsICUzfQorICAgdnBjbW92XHR7JTMsICUyLCAlMSwgJTB8 JTAsICUxLCAlMiwgJTN9CisgICB2cGNtb3ZcdHslMywgJTIsICUxLCAlMHwl MCwgJTEsICUyLCAlM30iCisgIFsoc2V0X2F0dHIgInR5cGUiICJzc2U0YXJn IildKQorCis7OyBYT1AgaG9yaXpvbnRhbCBhZGQvc3VidHJhY3QgaW5zdHJ1 Y3Rpb25zCisoZGVmaW5lX2luc24gInhvcF9waGFkZGJ3IgorICBbKHNldCAo bWF0Y2hfb3BlcmFuZDpWOEhJIDAgInJlZ2lzdGVyX29wZXJhbmQiICI9eCIp CisJKHBsdXM6VjhISQorCSAoc2lnbl9leHRlbmQ6VjhISQorCSAgKHZlY19z ZWxlY3Q6VjhRSQorCSAgIChtYXRjaF9vcGVyYW5kOlYxNlFJIDEgIm5vbmlt bWVkaWF0ZV9vcGVyYW5kIiAieG0iKQorCSAgIChwYXJhbGxlbCBbKGNvbnN0 X2ludCAwKQorCQkgICAgICAoY29uc3RfaW50IDIpCisJCSAgICAgIChjb25z dF9pbnQgNCkKKwkJICAgICAgKGNvbnN0X2ludCA2KQorCQkgICAgICAoY29u c3RfaW50IDgpCisJCSAgICAgIChjb25zdF9pbnQgMTApCisJCSAgICAgIChj b25zdF9pbnQgMTIpCisJCSAgICAgIChjb25zdF9pbnQgMTQpXSkpKQorCSAo c2lnbl9leHRlbmQ6VjhISQorCSAgKHZlY19zZWxlY3Q6VjhRSQorCSAgICht YXRjaF9kdXAgMSkKKwkgICAocGFyYWxsZWwgWyhjb25zdF9pbnQgMSkKKwkJ ICAgICAgKGNvbnN0X2ludCAzKQorCQkgICAgICAoY29uc3RfaW50IDUpCisJ CSAgICAgIChjb25zdF9pbnQgNykKKwkJICAgICAgKGNvbnN0X2ludCA5KQor CQkgICAgICAoY29uc3RfaW50IDExKQorCQkgICAgICAoY29uc3RfaW50IDEz KQorCQkgICAgICAoY29uc3RfaW50IDE1KV0pKSkpKV0KKyAgIlRBUkdFVF9Y T1AiCisgICJ2cGhhZGRid1x0eyUxLCAlMHwlMCwgJTF9IgorICBbKHNldF9h dHRyICJ0eXBlIiAic3NlaWFkZDEiKV0pCisKKyhkZWZpbmVfaW5zbiAieG9w X3BoYWRkYmQiCisgIFsoc2V0IChtYXRjaF9vcGVyYW5kOlY0U0kgMCAicmVn aXN0ZXJfb3BlcmFuZCIgIj14IikKKwkocGx1czpWNFNJCisJIChwbHVzOlY0 U0kKKwkgIChzaWduX2V4dGVuZDpWNFNJCisJICAgKHZlY19zZWxlY3Q6VjRR SQorCSAgICAobWF0Y2hfb3BlcmFuZDpWMTZRSSAxICJub25pbW1lZGlhdGVf b3BlcmFuZCIgInhtIikKKwkgICAgKHBhcmFsbGVsIFsoY29uc3RfaW50IDAp CisJCSAgICAgICAoY29uc3RfaW50IDQpCisJCSAgICAgICAoY29uc3RfaW50 IDgpCisJCSAgICAgICAoY29uc3RfaW50IDEyKV0pKSkKKwkgIChzaWduX2V4 dGVuZDpWNFNJCisJICAgKHZlY19zZWxlY3Q6VjRRSQorCSAgICAobWF0Y2hf ZHVwIDEpCisJICAgIChwYXJhbGxlbCBbKGNvbnN0X2ludCAxKQorCQkgICAg ICAgKGNvbnN0X2ludCA1KQorCQkgICAgICAgKGNvbnN0X2ludCA5KQorCQkg ICAgICAgKGNvbnN0X2ludCAxMyldKSkpKQorCSAocGx1czpWNFNJCisJICAo c2lnbl9leHRlbmQ6VjRTSQorCSAgICh2ZWNfc2VsZWN0OlY0UUkKKwkgICAg KG1hdGNoX2R1cCAxKQorCSAgICAocGFyYWxsZWwgWyhjb25zdF9pbnQgMikK KwkJICAgICAgIChjb25zdF9pbnQgNikKKwkJICAgICAgIChjb25zdF9pbnQg MTApCisJCSAgICAgICAoY29uc3RfaW50IDE0KV0pKSkKKwkgIChzaWduX2V4 dGVuZDpWNFNJCisJICAgKHZlY19zZWxlY3Q6VjRRSQorCSAgICAobWF0Y2hf ZHVwIDEpCisJICAgIChwYXJhbGxlbCBbKGNvbnN0X2ludCAzKQorCQkgICAg ICAgKGNvbnN0X2ludCA3KQorCQkgICAgICAgKGNvbnN0X2ludCAxMSkKKwkJ ICAgICAgIChjb25zdF9pbnQgMTUpXSkpKSkpKV0KKyAgIlRBUkdFVF9YT1Ai CisgICJ2cGhhZGRiZFx0eyUxLCAlMHwlMCwgJTF9IgorICBbKHNldF9hdHRy ICJ0eXBlIiAic3NlaWFkZDEiKV0pCisKKyhkZWZpbmVfaW5zbiAieG9wX3Bo YWRkYnEiCisgIFsoc2V0IChtYXRjaF9vcGVyYW5kOlYyREkgMCAicmVnaXN0 ZXJfb3BlcmFuZCIgIj14IikKKwkocGx1czpWMkRJCisJIChwbHVzOlYyREkK KwkgIChwbHVzOlYyREkKKwkgICAoc2lnbl9leHRlbmQ6VjJESQorCSAgICAo dmVjX3NlbGVjdDpWMlFJCisJICAgICAobWF0Y2hfb3BlcmFuZDpWMTZRSSAx ICJub25pbW1lZGlhdGVfb3BlcmFuZCIgInhtIikKKwkgICAgIChwYXJhbGxl bCBbKGNvbnN0X2ludCAwKQorCQkJKGNvbnN0X2ludCA0KV0pKSkKKwkgICAo c2lnbl9leHRlbmQ6VjJESQorCSAgICAodmVjX3NlbGVjdDpWMlFJCisJICAg ICAobWF0Y2hfZHVwIDEpCisJICAgICAocGFyYWxsZWwgWyhjb25zdF9pbnQg MSkKKwkJCShjb25zdF9pbnQgNSldKSkpKQorCSAgKHBsdXM6VjJESQorCSAg IChzaWduX2V4dGVuZDpWMkRJCisJICAgICh2ZWNfc2VsZWN0OlYyUUkKKwkg ICAgIChtYXRjaF9kdXAgMSkKKwkgICAgIChwYXJhbGxlbCBbKGNvbnN0X2lu dCAyKQorCQkJKGNvbnN0X2ludCA2KV0pKSkKKwkgICAoc2lnbl9leHRlbmQ6 VjJESQorCSAgICAodmVjX3NlbGVjdDpWMlFJCisJICAgICAobWF0Y2hfZHVw IDEpCisJICAgICAocGFyYWxsZWwgWyhjb25zdF9pbnQgMykKKwkJCShjb25z dF9pbnQgNyldKSkpKSkKKwkgKHBsdXM6VjJESQorCSAgKHBsdXM6VjJESQor CSAgIChzaWduX2V4dGVuZDpWMkRJCisJICAgICh2ZWNfc2VsZWN0OlYyUUkK KwkgICAgIChtYXRjaF9kdXAgMSkKKwkgICAgIChwYXJhbGxlbCBbKGNvbnN0 X2ludCA4KQorCQkJKGNvbnN0X2ludCAxMildKSkpCisJICAgKHNpZ25fZXh0 ZW5kOlYyREkKKwkgICAgKHZlY19zZWxlY3Q6VjJRSQorCSAgICAgKG1hdGNo X2R1cCAxKQorCSAgICAgKHBhcmFsbGVsIFsoY29uc3RfaW50IDkpCisJCQko Y29uc3RfaW50IDEzKV0pKSkpCisJICAocGx1czpWMkRJCisJICAgKHNpZ25f ZXh0ZW5kOlYyREkKKwkgICAgKHZlY19zZWxlY3Q6VjJRSQorCSAgICAgKG1h dGNoX2R1cCAxKQorCSAgICAgKHBhcmFsbGVsIFsoY29uc3RfaW50IDEwKQor CQkJKGNvbnN0X2ludCAxNCldKSkpCisJICAgKHNpZ25fZXh0ZW5kOlYyREkK KwkgICAgKHZlY19zZWxlY3Q6VjJRSQorCSAgICAgKG1hdGNoX2R1cCAxKQor CSAgICAgKHBhcmFsbGVsIFsoY29uc3RfaW50IDExKQorCQkJKGNvbnN0X2lu dCAxNSldKSkpKSkpKV0KKyAgIlRBUkdFVF9YT1AiCisgICJ2cGhhZGRicVx0 eyUxLCAlMHwlMCwgJTF9IgorICBbKHNldF9hdHRyICJ0eXBlIiAic3NlaWFk ZDEiKV0pCisKKyhkZWZpbmVfaW5zbiAieG9wX3BoYWRkd2QiCisgIFsoc2V0 IChtYXRjaF9vcGVyYW5kOlY0U0kgMCAicmVnaXN0ZXJfb3BlcmFuZCIgIj14 IikKKwkocGx1czpWNFNJCisJIChzaWduX2V4dGVuZDpWNFNJCisJICAodmVj X3NlbGVjdDpWNEhJCisJICAgKG1hdGNoX29wZXJhbmQ6VjhISSAxICJub25p bW1lZGlhdGVfb3BlcmFuZCIgInhtIikKKwkgICAocGFyYWxsZWwgWyhjb25z dF9pbnQgMCkKKwkJICAgICAgKGNvbnN0X2ludCAyKQorCQkgICAgICAoY29u c3RfaW50IDQpCisJCSAgICAgIChjb25zdF9pbnQgNildKSkpCisJIChzaWdu X2V4dGVuZDpWNFNJCisJICAodmVjX3NlbGVjdDpWNEhJCisJICAgKG1hdGNo X2R1cCAxKQorCSAgIChwYXJhbGxlbCBbKGNvbnN0X2ludCAxKQorCQkgICAg ICAoY29uc3RfaW50IDMpCisJCSAgICAgIChjb25zdF9pbnQgNSkKKwkJICAg ICAgKGNvbnN0X2ludCA3KV0pKSkpKV0KKyAgIlRBUkdFVF9YT1AiCisgICJ2 cGhhZGR3ZFx0eyUxLCAlMHwlMCwgJTF9IgorICBbKHNldF9hdHRyICJ0eXBl IiAic3NlaWFkZDEiKV0pCisKKyhkZWZpbmVfaW5zbiAieG9wX3BoYWRkd3Ei CisgIFsoc2V0IChtYXRjaF9vcGVyYW5kOlYyREkgMCAicmVnaXN0ZXJfb3Bl cmFuZCIgIj14IikKKwkocGx1czpWMkRJCisJIChwbHVzOlYyREkKKwkgIChz aWduX2V4dGVuZDpWMkRJCisJICAgKHZlY19zZWxlY3Q6VjJISQorCSAgICAo bWF0Y2hfb3BlcmFuZDpWOEhJIDEgIm5vbmltbWVkaWF0ZV9vcGVyYW5kIiAi eG0iKQorCSAgICAocGFyYWxsZWwgWyhjb25zdF9pbnQgMCkKKwkJICAgICAg IChjb25zdF9pbnQgNCldKSkpCisJICAoc2lnbl9leHRlbmQ6VjJESQorCSAg ICh2ZWNfc2VsZWN0OlYySEkKKwkgICAgKG1hdGNoX2R1cCAxKQorCSAgICAo cGFyYWxsZWwgWyhjb25zdF9pbnQgMSkKKwkJICAgICAgIChjb25zdF9pbnQg NSldKSkpKQorCSAocGx1czpWMkRJCisJICAoc2lnbl9leHRlbmQ6VjJESQor CSAgICh2ZWNfc2VsZWN0OlYySEkKKwkgICAgKG1hdGNoX2R1cCAxKQorCSAg ICAocGFyYWxsZWwgWyhjb25zdF9pbnQgMikKKwkJICAgICAgIChjb25zdF9p bnQgNildKSkpCisJICAoc2lnbl9leHRlbmQ6VjJESQorCSAgICh2ZWNfc2Vs ZWN0OlYySEkKKwkgICAgKG1hdGNoX2R1cCAxKQorCSAgICAocGFyYWxsZWwg Wyhjb25zdF9pbnQgMykKKwkJICAgICAgIChjb25zdF9pbnQgNyldKSkpKSkp XQorICAiVEFSR0VUX1hPUCIKKyAgInZwaGFkZHdxXHR7JTEsICUwfCUwLCAl MX0iCisgIFsoc2V0X2F0dHIgInR5cGUiICJzc2VpYWRkMSIpXSkKKworKGRl ZmluZV9pbnNuICJ4b3BfcGhhZGRkcSIKKyAgWyhzZXQgKG1hdGNoX29wZXJh bmQ6VjJESSAwICJyZWdpc3Rlcl9vcGVyYW5kIiAiPXgiKQorCShwbHVzOlYy REkKKwkgKHNpZ25fZXh0ZW5kOlYyREkKKwkgICh2ZWNfc2VsZWN0OlYyU0kK KwkgICAobWF0Y2hfb3BlcmFuZDpWNFNJIDEgIm5vbmltbWVkaWF0ZV9vcGVy YW5kIiAieG0iKQorCSAgIChwYXJhbGxlbCBbKGNvbnN0X2ludCAwKQorCQkg ICAgICAoY29uc3RfaW50IDIpXSkpKQorCSAoc2lnbl9leHRlbmQ6VjJESQor CSAgKHZlY19zZWxlY3Q6VjJTSQorCSAgIChtYXRjaF9kdXAgMSkKKwkgICAo cGFyYWxsZWwgWyhjb25zdF9pbnQgMSkKKwkJICAgICAgKGNvbnN0X2ludCAz KV0pKSkpKV0KKyAgIlRBUkdFVF9YT1AiCisgICJ2cGhhZGRkcVx0eyUxLCAl MHwlMCwgJTF9IgorICBbKHNldF9hdHRyICJ0eXBlIiAic3NlaWFkZDEiKV0p CisKKyhkZWZpbmVfaW5zbiAieG9wX3BoYWRkdWJ3IgorICBbKHNldCAobWF0 Y2hfb3BlcmFuZDpWOEhJIDAgInJlZ2lzdGVyX29wZXJhbmQiICI9eCIpCisJ KHBsdXM6VjhISQorCSAoemVyb19leHRlbmQ6VjhISQorCSAgKHZlY19zZWxl Y3Q6VjhRSQorCSAgIChtYXRjaF9vcGVyYW5kOlYxNlFJIDEgIm5vbmltbWVk aWF0ZV9vcGVyYW5kIiAieG0iKQorCSAgIChwYXJhbGxlbCBbKGNvbnN0X2lu dCAwKQorCQkgICAgICAoY29uc3RfaW50IDIpCisJCSAgICAgIChjb25zdF9p bnQgNCkKKwkJICAgICAgKGNvbnN0X2ludCA2KQorCQkgICAgICAoY29uc3Rf aW50IDgpCisJCSAgICAgIChjb25zdF9pbnQgMTApCisJCSAgICAgIChjb25z dF9pbnQgMTIpCisJCSAgICAgIChjb25zdF9pbnQgMTQpXSkpKQorCSAoemVy b19leHRlbmQ6VjhISQorCSAgKHZlY19zZWxlY3Q6VjhRSQorCSAgIChtYXRj aF9kdXAgMSkKKwkgICAocGFyYWxsZWwgWyhjb25zdF9pbnQgMSkKKwkJICAg ICAgKGNvbnN0X2ludCAzKQorCQkgICAgICAoY29uc3RfaW50IDUpCisJCSAg ICAgIChjb25zdF9pbnQgNykKKwkJICAgICAgKGNvbnN0X2ludCA5KQorCQkg ICAgICAoY29uc3RfaW50IDExKQorCQkgICAgICAoY29uc3RfaW50IDEzKQor CQkgICAgICAoY29uc3RfaW50IDE1KV0pKSkpKV0KKyAgIlRBUkdFVF9YT1Ai CisgICJ2cGhhZGR1YndcdHslMSwgJTB8JTAsICUxfSIKKyAgWyhzZXRfYXR0 ciAidHlwZSIgInNzZWlhZGQxIildKQorCisoZGVmaW5lX2luc24gInhvcF9w aGFkZHViZCIKKyAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6VjRTSSAwICJyZWdp c3Rlcl9vcGVyYW5kIiAiPXgiKQorCShwbHVzOlY0U0kKKwkgKHBsdXM6VjRT SQorCSAgKHplcm9fZXh0ZW5kOlY0U0kKKwkgICAodmVjX3NlbGVjdDpWNFFJ CisJICAgIChtYXRjaF9vcGVyYW5kOlYxNlFJIDEgIm5vbmltbWVkaWF0ZV9v cGVyYW5kIiAieG0iKQorCSAgICAocGFyYWxsZWwgWyhjb25zdF9pbnQgMCkK KwkJICAgICAgIChjb25zdF9pbnQgNCkKKwkJICAgICAgIChjb25zdF9pbnQg OCkKKwkJICAgICAgIChjb25zdF9pbnQgMTIpXSkpKQorCSAgKHplcm9fZXh0 ZW5kOlY0U0kKKwkgICAodmVjX3NlbGVjdDpWNFFJCisJICAgIChtYXRjaF9k dXAgMSkKKwkgICAgKHBhcmFsbGVsIFsoY29uc3RfaW50IDEpCisJCSAgICAg ICAoY29uc3RfaW50IDUpCisJCSAgICAgICAoY29uc3RfaW50IDkpCisJCSAg ICAgICAoY29uc3RfaW50IDEzKV0pKSkpCisJIChwbHVzOlY0U0kKKwkgICh6 ZXJvX2V4dGVuZDpWNFNJCisJICAgKHZlY19zZWxlY3Q6VjRRSQorCSAgICAo bWF0Y2hfZHVwIDEpCisJICAgIChwYXJhbGxlbCBbKGNvbnN0X2ludCAyKQor CQkgICAgICAgKGNvbnN0X2ludCA2KQorCQkgICAgICAgKGNvbnN0X2ludCAx MCkKKwkJICAgICAgIChjb25zdF9pbnQgMTQpXSkpKQorCSAgKHplcm9fZXh0 ZW5kOlY0U0kKKwkgICAodmVjX3NlbGVjdDpWNFFJCisJICAgIChtYXRjaF9k dXAgMSkKKwkgICAgKHBhcmFsbGVsIFsoY29uc3RfaW50IDMpCisJCSAgICAg ICAoY29uc3RfaW50IDcpCisJCSAgICAgICAoY29uc3RfaW50IDExKQorCQkg ICAgICAgKGNvbnN0X2ludCAxNSldKSkpKSkpXQorICAiVEFSR0VUX1hPUCIK KyAgInZwaGFkZHViZFx0eyUxLCAlMHwlMCwgJTF9IgorICBbKHNldF9hdHRy ICJ0eXBlIiAic3NlaWFkZDEiKV0pCisKKyhkZWZpbmVfaW5zbiAieG9wX3Bo YWRkdWJxIgorICBbKHNldCAobWF0Y2hfb3BlcmFuZDpWMkRJIDAgInJlZ2lz dGVyX29wZXJhbmQiICI9eCIpCisJKHBsdXM6VjJESQorCSAocGx1czpWMkRJ CisJICAocGx1czpWMkRJCisJICAgKHplcm9fZXh0ZW5kOlYyREkKKwkgICAg KHZlY19zZWxlY3Q6VjJRSQorCSAgICAgKG1hdGNoX29wZXJhbmQ6VjE2UUkg MSAibm9uaW1tZWRpYXRlX29wZXJhbmQiICJ4bSIpCisJICAgICAocGFyYWxs ZWwgWyhjb25zdF9pbnQgMCkKKwkJCShjb25zdF9pbnQgNCldKSkpCisJICAg KHNpZ25fZXh0ZW5kOlYyREkKKwkgICAgKHZlY19zZWxlY3Q6VjJRSQorCSAg ICAgKG1hdGNoX2R1cCAxKQorCSAgICAgKHBhcmFsbGVsIFsoY29uc3RfaW50 IDEpCisJCQkoY29uc3RfaW50IDUpXSkpKSkKKwkgIChwbHVzOlYyREkKKwkg ICAoemVyb19leHRlbmQ6VjJESQorCSAgICAodmVjX3NlbGVjdDpWMlFJCisJ ICAgICAobWF0Y2hfZHVwIDEpCisJICAgICAocGFyYWxsZWwgWyhjb25zdF9p bnQgMikKKwkJCShjb25zdF9pbnQgNildKSkpCisJICAgKHplcm9fZXh0ZW5k OlYyREkKKwkgICAgKHZlY19zZWxlY3Q6VjJRSQorCSAgICAgKG1hdGNoX2R1 cCAxKQorCSAgICAgKHBhcmFsbGVsIFsoY29uc3RfaW50IDMpCisJCQkoY29u c3RfaW50IDcpXSkpKSkpCisJIChwbHVzOlYyREkKKwkgIChwbHVzOlYyREkK KwkgICAoemVyb19leHRlbmQ6VjJESQorCSAgICAodmVjX3NlbGVjdDpWMlFJ CisJICAgICAobWF0Y2hfZHVwIDEpCisJICAgICAocGFyYWxsZWwgWyhjb25z dF9pbnQgOCkKKwkJCShjb25zdF9pbnQgMTIpXSkpKQorCSAgIChzaWduX2V4 dGVuZDpWMkRJCisJICAgICh2ZWNfc2VsZWN0OlYyUUkKKwkgICAgIChtYXRj aF9kdXAgMSkKKwkgICAgIChwYXJhbGxlbCBbKGNvbnN0X2ludCA5KQorCQkJ KGNvbnN0X2ludCAxMyldKSkpKQorCSAgKHBsdXM6VjJESQorCSAgICh6ZXJv X2V4dGVuZDpWMkRJCisJICAgICh2ZWNfc2VsZWN0OlYyUUkKKwkgICAgICht YXRjaF9kdXAgMSkKKwkgICAgIChwYXJhbGxlbCBbKGNvbnN0X2ludCAxMCkK KwkJCShjb25zdF9pbnQgMTQpXSkpKQorCSAgICh6ZXJvX2V4dGVuZDpWMkRJ CisJICAgICh2ZWNfc2VsZWN0OlYyUUkKKwkgICAgIChtYXRjaF9kdXAgMSkK KwkgICAgIChwYXJhbGxlbCBbKGNvbnN0X2ludCAxMSkKKwkJCShjb25zdF9p bnQgMTUpXSkpKSkpKSldCisgICJUQVJHRVRfWE9QIgorICAidnBoYWRkdWJx XHR7JTEsICUwfCUwLCAlMX0iCisgIFsoc2V0X2F0dHIgInR5cGUiICJzc2Vp YWRkMSIpXSkKKworKGRlZmluZV9pbnNuICJ4b3BfcGhhZGR1d2QiCisgIFso c2V0IChtYXRjaF9vcGVyYW5kOlY0U0kgMCAicmVnaXN0ZXJfb3BlcmFuZCIg Ij14IikKKwkocGx1czpWNFNJCisJICh6ZXJvX2V4dGVuZDpWNFNJCisJICAo dmVjX3NlbGVjdDpWNEhJCisJICAgKG1hdGNoX29wZXJhbmQ6VjhISSAxICJu b25pbW1lZGlhdGVfb3BlcmFuZCIgInhtIikKKwkgICAocGFyYWxsZWwgWyhj b25zdF9pbnQgMCkKKwkJICAgICAgKGNvbnN0X2ludCAyKQorCQkgICAgICAo Y29uc3RfaW50IDQpCisJCSAgICAgIChjb25zdF9pbnQgNildKSkpCisJICh6 ZXJvX2V4dGVuZDpWNFNJCisJICAodmVjX3NlbGVjdDpWNEhJCisJICAgKG1h dGNoX2R1cCAxKQorCSAgIChwYXJhbGxlbCBbKGNvbnN0X2ludCAxKQorCQkg ICAgICAoY29uc3RfaW50IDMpCisJCSAgICAgIChjb25zdF9pbnQgNSkKKwkJ ICAgICAgKGNvbnN0X2ludCA3KV0pKSkpKV0KKyAgIlRBUkdFVF9YT1AiCisg ICJ2cGhhZGR1d2RcdHslMSwgJTB8JTAsICUxfSIKKyAgWyhzZXRfYXR0ciAi dHlwZSIgInNzZWlhZGQxIildKQorCisoZGVmaW5lX2luc24gInhvcF9waGFk ZHV3cSIKKyAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6VjJESSAwICJyZWdpc3Rl cl9vcGVyYW5kIiAiPXgiKQorCShwbHVzOlYyREkKKwkgKHBsdXM6VjJESQor CSAgKHplcm9fZXh0ZW5kOlYyREkKKwkgICAodmVjX3NlbGVjdDpWMkhJCisJ ICAgIChtYXRjaF9vcGVyYW5kOlY4SEkgMSAibm9uaW1tZWRpYXRlX29wZXJh bmQiICJ4bSIpCisJICAgIChwYXJhbGxlbCBbKGNvbnN0X2ludCAwKQorCQkg ICAgICAgKGNvbnN0X2ludCA0KV0pKSkKKwkgICh6ZXJvX2V4dGVuZDpWMkRJ CisJICAgKHZlY19zZWxlY3Q6VjJISQorCSAgICAobWF0Y2hfZHVwIDEpCisJ ICAgIChwYXJhbGxlbCBbKGNvbnN0X2ludCAxKQorCQkgICAgICAgKGNvbnN0 X2ludCA1KV0pKSkpCisJIChwbHVzOlYyREkKKwkgICh6ZXJvX2V4dGVuZDpW MkRJCisJICAgKHZlY19zZWxlY3Q6VjJISQorCSAgICAobWF0Y2hfZHVwIDEp CisJICAgIChwYXJhbGxlbCBbKGNvbnN0X2ludCAyKQorCQkgICAgICAgKGNv bnN0X2ludCA2KV0pKSkKKwkgICh6ZXJvX2V4dGVuZDpWMkRJCisJICAgKHZl Y19zZWxlY3Q6VjJISQorCSAgICAobWF0Y2hfZHVwIDEpCisJICAgIChwYXJh bGxlbCBbKGNvbnN0X2ludCAzKQorCQkgICAgICAgKGNvbnN0X2ludCA3KV0p KSkpKSldCisgICJUQVJHRVRfWE9QIgorICAidnBoYWRkdXdxXHR7JTEsICUw fCUwLCAlMX0iCisgIFsoc2V0X2F0dHIgInR5cGUiICJzc2VpYWRkMSIpXSkK KworKGRlZmluZV9pbnNuICJ4b3BfcGhhZGR1ZHEiCisgIFsoc2V0IChtYXRj aF9vcGVyYW5kOlYyREkgMCAicmVnaXN0ZXJfb3BlcmFuZCIgIj14IikKKwko cGx1czpWMkRJCisJICh6ZXJvX2V4dGVuZDpWMkRJCisJICAodmVjX3NlbGVj dDpWMlNJCisJICAgKG1hdGNoX29wZXJhbmQ6VjRTSSAxICJub25pbW1lZGlh dGVfb3BlcmFuZCIgInhtIikKKwkgICAocGFyYWxsZWwgWyhjb25zdF9pbnQg MCkKKwkJICAgICAgKGNvbnN0X2ludCAyKV0pKSkKKwkgKHplcm9fZXh0ZW5k OlYyREkKKwkgICh2ZWNfc2VsZWN0OlYyU0kKKwkgICAobWF0Y2hfZHVwIDEp CisJICAgKHBhcmFsbGVsIFsoY29uc3RfaW50IDEpCisJCSAgICAgIChjb25z dF9pbnQgMyldKSkpKSldCisgICJUQVJHRVRfWE9QIgorICAidnBoYWRkdWRx XHR7JTEsICUwfCUwLCAlMX0iCisgIFsoc2V0X2F0dHIgInR5cGUiICJzc2Vp YWRkMSIpXSkKKworKGRlZmluZV9pbnNuICJ4b3BfcGhzdWJidyIKKyAgWyhz ZXQgKG1hdGNoX29wZXJhbmQ6VjhISSAwICJyZWdpc3Rlcl9vcGVyYW5kIiAi PXgiKQorCShtaW51czpWOEhJCisJIChzaWduX2V4dGVuZDpWOEhJCisJICAo dmVjX3NlbGVjdDpWOFFJCisJICAgKG1hdGNoX29wZXJhbmQ6VjE2UUkgMSAi bm9uaW1tZWRpYXRlX29wZXJhbmQiICJ4bSIpCisJICAgKHBhcmFsbGVsIFso Y29uc3RfaW50IDApCisJCSAgICAgIChjb25zdF9pbnQgMikKKwkJICAgICAg KGNvbnN0X2ludCA0KQorCQkgICAgICAoY29uc3RfaW50IDYpCisJCSAgICAg IChjb25zdF9pbnQgOCkKKwkJICAgICAgKGNvbnN0X2ludCAxMCkKKwkJICAg ICAgKGNvbnN0X2ludCAxMikKKwkJICAgICAgKGNvbnN0X2ludCAxNCldKSkp CisJIChzaWduX2V4dGVuZDpWOEhJCisJICAodmVjX3NlbGVjdDpWOFFJCisJ ICAgKG1hdGNoX2R1cCAxKQorCSAgIChwYXJhbGxlbCBbKGNvbnN0X2ludCAx KQorCQkgICAgICAoY29uc3RfaW50IDMpCisJCSAgICAgIChjb25zdF9pbnQg NSkKKwkJICAgICAgKGNvbnN0X2ludCA3KQorCQkgICAgICAoY29uc3RfaW50 IDkpCisJCSAgICAgIChjb25zdF9pbnQgMTEpCisJCSAgICAgIChjb25zdF9p bnQgMTMpCisJCSAgICAgIChjb25zdF9pbnQgMTUpXSkpKSkpXQorICAiVEFS R0VUX1hPUCIKKyAgInZwaHN1YmJ3XHR7JTEsICUwfCUwLCAlMX0iCisgIFso c2V0X2F0dHIgInR5cGUiICJzc2VpYWRkMSIpXSkKKworKGRlZmluZV9pbnNu ICJ4b3BfcGhzdWJ3ZCIKKyAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6VjRTSSAw ICJyZWdpc3Rlcl9vcGVyYW5kIiAiPXgiKQorCShtaW51czpWNFNJCisJIChz aWduX2V4dGVuZDpWNFNJCisJICAodmVjX3NlbGVjdDpWNEhJCisJICAgKG1h dGNoX29wZXJhbmQ6VjhISSAxICJub25pbW1lZGlhdGVfb3BlcmFuZCIgInht IikKKwkgICAocGFyYWxsZWwgWyhjb25zdF9pbnQgMCkKKwkJICAgICAgKGNv bnN0X2ludCAyKQorCQkgICAgICAoY29uc3RfaW50IDQpCisJCSAgICAgIChj b25zdF9pbnQgNildKSkpCisJIChzaWduX2V4dGVuZDpWNFNJCisJICAodmVj X3NlbGVjdDpWNEhJCisJICAgKG1hdGNoX2R1cCAxKQorCSAgIChwYXJhbGxl bCBbKGNvbnN0X2ludCAxKQorCQkgICAgICAoY29uc3RfaW50IDMpCisJCSAg ICAgIChjb25zdF9pbnQgNSkKKwkJICAgICAgKGNvbnN0X2ludCA3KV0pKSkp KV0KKyAgIlRBUkdFVF9YT1AiCisgICJ2cGhzdWJ3ZFx0eyUxLCAlMHwlMCwg JTF9IgorICBbKHNldF9hdHRyICJ0eXBlIiAic3NlaWFkZDEiKV0pCisKKyhk ZWZpbmVfaW5zbiAieG9wX3Boc3ViZHEiCisgIFsoc2V0IChtYXRjaF9vcGVy YW5kOlYyREkgMCAicmVnaXN0ZXJfb3BlcmFuZCIgIj14IikKKwkobWludXM6 VjJESQorCSAoc2lnbl9leHRlbmQ6VjJESQorCSAgKHZlY19zZWxlY3Q6VjJT SQorCSAgIChtYXRjaF9vcGVyYW5kOlY0U0kgMSAibm9uaW1tZWRpYXRlX29w ZXJhbmQiICJ4bSIpCisJICAgKHBhcmFsbGVsIFsoY29uc3RfaW50IDApCisJ CSAgICAgIChjb25zdF9pbnQgMildKSkpCisJIChzaWduX2V4dGVuZDpWMkRJ CisJICAodmVjX3NlbGVjdDpWMlNJCisJICAgKG1hdGNoX2R1cCAxKQorCSAg IChwYXJhbGxlbCBbKGNvbnN0X2ludCAxKQorCQkgICAgICAoY29uc3RfaW50 IDMpXSkpKSkpXQorICAiVEFSR0VUX1hPUCIKKyAgInZwaHN1YmRxXHR7JTEs ICUwfCUwLCAlMX0iCisgIFsoc2V0X2F0dHIgInR5cGUiICJzc2VpYWRkMSIp XSkKKworOzsgWE9QIHBlcm11dGUgaW5zdHJ1Y3Rpb25zCisoZGVmaW5lX2lu c24gInhvcF9wcGVybSIKKyAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6VjE2UUkg MCAicmVnaXN0ZXJfb3BlcmFuZCIgIj14LHgseCIpCisJKHVuc3BlYzpWMTZR SQorCSAgWyhtYXRjaF9vcGVyYW5kOlYxNlFJIDEgIm5vbmltbWVkaWF0ZV9v cGVyYW5kIiAieCx4LHhtIikKKwkgICAobWF0Y2hfb3BlcmFuZDpWMTZRSSAy ICJub25pbW1lZGlhdGVfb3BlcmFuZCIgIngseG0seCIpCisJICAgKG1hdGNo X29wZXJhbmQ6VjE2UUkgMyAibm9uaW1tZWRpYXRlX29wZXJhbmQiICJ4bSx4 LHgiKV0KKwkgIFVOU1BFQ19YT1BfUEVSTVVURSkpXQorICAiVEFSR0VUX1hP UCAmJiBpeDg2X2ZtYTRfdmFsaWRfb3BfcCAob3BlcmFuZHMsIGluc24sIDQs IHRydWUsIDEsIGZhbHNlKSIKKyAgInZwcGVybVx0eyUzLCAlMiwgJTEsICUw fCUwLCAlMSwgJTIsICUzfSIKKyAgWyhzZXRfYXR0ciAidHlwZSIgInNzZTRh cmciKQorICAgKHNldF9hdHRyICJtb2RlIiAiVEkiKV0pCisKKzs7IFhPUCBw YWNrIGluc3RydWN0aW9ucyB0aGF0IGNvbWJpbmUgdHdvIHZlY3RvcnMgaW50 byBhIHNtYWxsZXIgdmVjdG9yCisoZGVmaW5lX2luc24gInhvcF9wcGVybV9w YWNrX3YyZGlfdjRzaSIKKyAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6VjRTSSAw ICJyZWdpc3Rlcl9vcGVyYW5kIiAiPXgseCx4IikKKwkodmVjX2NvbmNhdDpW NFNJCisJICh0cnVuY2F0ZTpWMlNJCisJICAobWF0Y2hfb3BlcmFuZDpWMkRJ IDEgIm5vbmltbWVkaWF0ZV9vcGVyYW5kIiAieCx4LHhtIikpCisJICh0cnVu Y2F0ZTpWMlNJCisJICAobWF0Y2hfb3BlcmFuZDpWMkRJIDIgIm5vbmltbWVk aWF0ZV9vcGVyYW5kIiAieCx4bSx4IikpKSkKKyAgICh1c2UgKG1hdGNoX29w ZXJhbmQ6VjE2UUkgMyAibm9uaW1tZWRpYXRlX29wZXJhbmQiICJ4bSx4LHgi KSldCisgICJUQVJHRVRfWE9QICYmIGl4ODZfZm1hNF92YWxpZF9vcF9wIChv cGVyYW5kcywgaW5zbiwgNCwgdHJ1ZSwgMSwgZmFsc2UpIgorICAidnBwZXJt XHR7JTMsICUyLCAlMSwgJTB8JTAsICUxLCAlMiwgJTN9IgorICBbKHNldF9h dHRyICJ0eXBlIiAic3NlNGFyZyIpCisgICAoc2V0X2F0dHIgIm1vZGUiICJU SSIpXSkKKworKGRlZmluZV9pbnNuICJ4b3BfcHBlcm1fcGFja192NHNpX3Y4 aGkiCisgIFsoc2V0IChtYXRjaF9vcGVyYW5kOlY4SEkgMCAicmVnaXN0ZXJf b3BlcmFuZCIgIj14LHgseCIpCisJKHZlY19jb25jYXQ6VjhISQorCSAodHJ1 bmNhdGU6VjRISQorCSAgKG1hdGNoX29wZXJhbmQ6VjRTSSAxICJub25pbW1l ZGlhdGVfb3BlcmFuZCIgIngseCx4bSIpKQorCSAodHJ1bmNhdGU6VjRISQor CSAgKG1hdGNoX29wZXJhbmQ6VjRTSSAyICJub25pbW1lZGlhdGVfb3BlcmFu ZCIgIngseG0seCIpKSkpCisgICAodXNlIChtYXRjaF9vcGVyYW5kOlYxNlFJ IDMgIm5vbmltbWVkaWF0ZV9vcGVyYW5kIiAieG0seCx4IikpXQorICAiVEFS R0VUX1hPUCAmJiBpeDg2X2ZtYTRfdmFsaWRfb3BfcCAob3BlcmFuZHMsIGlu c24sIDQsIHRydWUsIDEsIGZhbHNlKSIKKyAgInZwcGVybVx0eyUzLCAlMiwg JTEsICUwfCUwLCAlMSwgJTIsICUzfSIKKyAgWyhzZXRfYXR0ciAidHlwZSIg InNzZTRhcmciKQorICAgKHNldF9hdHRyICJtb2RlIiAiVEkiKV0pCisKKyhk ZWZpbmVfaW5zbiAieG9wX3BwZXJtX3BhY2tfdjhoaV92MTZxaSIKKyAgWyhz ZXQgKG1hdGNoX29wZXJhbmQ6VjE2UUkgMCAicmVnaXN0ZXJfb3BlcmFuZCIg Ij14LHgseCIpCisJKHZlY19jb25jYXQ6VjE2UUkKKwkgKHRydW5jYXRlOlY4 UUkKKwkgIChtYXRjaF9vcGVyYW5kOlY4SEkgMSAibm9uaW1tZWRpYXRlX29w ZXJhbmQiICJ4LHgseG0iKSkKKwkgKHRydW5jYXRlOlY4UUkKKwkgIChtYXRj aF9vcGVyYW5kOlY4SEkgMiAibm9uaW1tZWRpYXRlX29wZXJhbmQiICJ4LHht LHgiKSkpKQorICAgKHVzZSAobWF0Y2hfb3BlcmFuZDpWMTZRSSAzICJub25p bW1lZGlhdGVfb3BlcmFuZCIgInhtLHgseCIpKV0KKyAgIlRBUkdFVF9YT1Ag JiYgaXg4Nl9mbWE0X3ZhbGlkX29wX3AgKG9wZXJhbmRzLCBpbnNuLCA0LCB0 cnVlLCAxLCBmYWxzZSkiCisgICJ2cHBlcm1cdHslMywgJTIsICUxLCAlMHwl MCwgJTEsICUyLCAlM30iCisgIFsoc2V0X2F0dHIgInR5cGUiICJzc2U0YXJn IikKKyAgIChzZXRfYXR0ciAibW9kZSIgIlRJIildKQorCis7OyBYT1AgcGFj a2VkIHJvdGF0ZSBpbnN0cnVjdGlvbnMKKyhkZWZpbmVfZXhwYW5kICJyb3Rs PG1vZGU+MyIKKyAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6U1NFTU9ERTEyNDgg MCAicmVnaXN0ZXJfb3BlcmFuZCIgIiIpCisJKHJvdGF0ZTpTU0VNT0RFMTI0 OAorCSAobWF0Y2hfb3BlcmFuZDpTU0VNT0RFMTI0OCAxICJub25pbW1lZGlh dGVfb3BlcmFuZCIgIiIpCisJIChtYXRjaF9vcGVyYW5kOlNJIDIgImdlbmVy YWxfb3BlcmFuZCIpKSldCisgICJUQVJHRVRfWE9QIgoreworICAvKiBJZiB3 ZSB3ZXJlIGdpdmVuIGEgc2NhbGFyLCBjb252ZXJ0IGl0IHRvIHBhcmFsbGVs ICovCisgIGlmICghIGNvbnN0XzBfdG9fPHNzZXJvdGF0ZW1heD5fb3BlcmFu ZCAob3BlcmFuZHNbMl0sIFNJbW9kZSkpCisgICAgeworICAgICAgcnR2ZWMg dnMgPSBydHZlY19hbGxvYyAoPHNzZXNjYWxhcm51bT4pOworICAgICAgcnR4 IHBhciA9IGdlbl9ydHhfUEFSQUxMRUwgKDxNT0RFPm1vZGUsIHZzKTsKKyAg ICAgIHJ0eCByZWcgPSBnZW5fcmVnX3J0eCAoPE1PREU+bW9kZSk7CisgICAg ICBydHggb3AyID0gb3BlcmFuZHNbMl07CisgICAgICBpbnQgaTsKKworICAg ICAgaWYgKEdFVF9NT0RFIChvcDIpICE9IDxzc2VzY2FsYXJtb2RlPm1vZGUp CisgICAgICAgIHsKKwkgIG9wMiA9IGdlbl9yZWdfcnR4ICg8c3Nlc2NhbGFy bW9kZT5tb2RlKTsKKwkgIGNvbnZlcnRfbW92ZSAob3AyLCBvcGVyYW5kc1sy XSwgZmFsc2UpOworCX0KKworICAgICAgZm9yIChpID0gMDsgaSA8IDxzc2Vz Y2FsYXJudW0+OyBpKyspCisJUlRWRUNfRUxUICh2cywgaSkgPSBvcDI7CisK KyAgICAgIGVtaXRfaW5zbiAoZ2VuX3ZlY19pbml0PG1vZGU+IChyZWcsIHBh cikpOworICAgICAgZW1pdF9pbnNuIChnZW5feG9wX3Zyb3RsPG1vZGU+MyAo b3BlcmFuZHNbMF0sIG9wZXJhbmRzWzFdLCByZWcpKTsKKyAgICAgIERPTkU7 CisgICAgfQorfSkKKworKGRlZmluZV9leHBhbmQgInJvdHI8bW9kZT4zIgor ICBbKHNldCAobWF0Y2hfb3BlcmFuZDpTU0VNT0RFMTI0OCAwICJyZWdpc3Rl cl9vcGVyYW5kIiAiIikKKwkocm90YXRlcnQ6U1NFTU9ERTEyNDgKKwkgKG1h dGNoX29wZXJhbmQ6U1NFTU9ERTEyNDggMSAibm9uaW1tZWRpYXRlX29wZXJh bmQiICIiKQorCSAobWF0Y2hfb3BlcmFuZDpTSSAyICJnZW5lcmFsX29wZXJh bmQiKSkpXQorICAiVEFSR0VUX1hPUCIKK3sKKyAgLyogSWYgd2Ugd2VyZSBn aXZlbiBhIHNjYWxhciwgY29udmVydCBpdCB0byBwYXJhbGxlbCAqLworICBp ZiAoISBjb25zdF8wX3RvXzxzc2Vyb3RhdGVtYXg+X29wZXJhbmQgKG9wZXJh bmRzWzJdLCBTSW1vZGUpKQorICAgIHsKKyAgICAgIHJ0dmVjIHZzID0gcnR2 ZWNfYWxsb2MgKDxzc2VzY2FsYXJudW0+KTsKKyAgICAgIHJ0eCBwYXIgPSBn ZW5fcnR4X1BBUkFMTEVMICg8TU9ERT5tb2RlLCB2cyk7CisgICAgICBydHgg bmVnID0gZ2VuX3JlZ19ydHggKDxNT0RFPm1vZGUpOworICAgICAgcnR4IHJl ZyA9IGdlbl9yZWdfcnR4ICg8TU9ERT5tb2RlKTsKKyAgICAgIHJ0eCBvcDIg PSBvcGVyYW5kc1syXTsKKyAgICAgIGludCBpOworCisgICAgICBpZiAoR0VU X01PREUgKG9wMikgIT0gPHNzZXNjYWxhcm1vZGU+bW9kZSkKKyAgICAgICAg eworCSAgb3AyID0gZ2VuX3JlZ19ydHggKDxzc2VzY2FsYXJtb2RlPm1vZGUp OworCSAgY29udmVydF9tb3ZlIChvcDIsIG9wZXJhbmRzWzJdLCBmYWxzZSk7 CisJfQorCisgICAgICBmb3IgKGkgPSAwOyBpIDwgPHNzZXNjYWxhcm51bT47 IGkrKykKKwlSVFZFQ19FTFQgKHZzLCBpKSA9IG9wMjsKKworICAgICAgZW1p dF9pbnNuIChnZW5fdmVjX2luaXQ8bW9kZT4gKHJlZywgcGFyKSk7CisgICAg ICBlbWl0X2luc24gKGdlbl9uZWc8bW9kZT4yIChuZWcsIHJlZykpOworICAg ICAgZW1pdF9pbnNuIChnZW5feG9wX3Zyb3RsPG1vZGU+MyAob3BlcmFuZHNb MF0sIG9wZXJhbmRzWzFdLCBuZWcpKTsKKyAgICAgIERPTkU7CisgICAgfQor fSkKKworKGRlZmluZV9pbnNuICJ4b3Bfcm90bDxtb2RlPjMiCisgIFsoc2V0 IChtYXRjaF9vcGVyYW5kOlNTRU1PREUxMjQ4IDAgInJlZ2lzdGVyX29wZXJh bmQiICI9eCIpCisJKHJvdGF0ZTpTU0VNT0RFMTI0OAorCSAobWF0Y2hfb3Bl cmFuZDpTU0VNT0RFMTI0OCAxICJub25pbW1lZGlhdGVfb3BlcmFuZCIgInht IikKKwkgKG1hdGNoX29wZXJhbmQ6U0kgMiAiY29uc3RfMF90b188c3Nlcm90 YXRlbWF4Pl9vcGVyYW5kIiAibiIpKSldCisgICJUQVJHRVRfWE9QIgorICAi dnByb3Q8c3NldmVjc2l6ZT5cdHslMiwgJTEsICUwfCUwLCAlMSwgJTJ9Igor ICBbKHNldF9hdHRyICJ0eXBlIiAic3NlaXNoZnQiKQorICAgKHNldF9hdHRy ICJsZW5ndGhfaW1tZWRpYXRlIiAiMSIpCisgICAoc2V0X2F0dHIgIm1vZGUi ICJUSSIpXSkKKworKGRlZmluZV9pbnNuICJ4b3Bfcm90cjxtb2RlPjMiCisg IFsoc2V0IChtYXRjaF9vcGVyYW5kOlNTRU1PREUxMjQ4IDAgInJlZ2lzdGVy X29wZXJhbmQiICI9eCIpCisJKHJvdGF0ZXJ0OlNTRU1PREUxMjQ4CisJICht YXRjaF9vcGVyYW5kOlNTRU1PREUxMjQ4IDEgIm5vbmltbWVkaWF0ZV9vcGVy YW5kIiAieG0iKQorCSAobWF0Y2hfb3BlcmFuZDpTSSAyICJjb25zdF8wX3Rv Xzxzc2Vyb3RhdGVtYXg+X29wZXJhbmQiICJuIikpKV0KKyAgIlRBUkdFVF9Y T1AiCit7CisgIG9wZXJhbmRzWzNdID0gR0VOX0lOVCAoKDxzc2VzY2FsYXJu dW0+ICogOCkgLSBJTlRWQUwgKG9wZXJhbmRzWzJdKSk7CisgIHJldHVybiBc InZwcm90PHNzZXZlY3NpemU+XHR7JTMsICUxLCAlMHwlMCwgJTEsICUzfVwi OworfQorICBbKHNldF9hdHRyICJ0eXBlIiAic3NlaXNoZnQiKQorICAgKHNl dF9hdHRyICJsZW5ndGhfaW1tZWRpYXRlIiAiMSIpCisgICAoc2V0X2F0dHIg Im1vZGUiICJUSSIpXSkKKworKGRlZmluZV9leHBhbmQgInZyb3RyPG1vZGU+ MyIKKyAgWyhtYXRjaF9vcGVyYW5kOlNTRU1PREUxMjQ4IDAgInJlZ2lzdGVy X29wZXJhbmQiICIiKQorICAgKG1hdGNoX29wZXJhbmQ6U1NFTU9ERTEyNDgg MSAicmVnaXN0ZXJfb3BlcmFuZCIgIiIpCisgICAobWF0Y2hfb3BlcmFuZDpT U0VNT0RFMTI0OCAyICJyZWdpc3Rlcl9vcGVyYW5kIiAiIildCisgICJUQVJH RVRfWE9QIgoreworICBydHggcmVnID0gZ2VuX3JlZ19ydHggKDxNT0RFPm1v ZGUpOworICBlbWl0X2luc24gKGdlbl9uZWc8bW9kZT4yIChyZWcsIG9wZXJh bmRzWzJdKSk7CisgIGVtaXRfaW5zbiAoZ2VuX3hvcF92cm90bDxtb2RlPjMg KG9wZXJhbmRzWzBdLCBvcGVyYW5kc1sxXSwgcmVnKSk7CisgIERPTkU7Cit9 KQorCisoZGVmaW5lX2V4cGFuZCAidnJvdGw8bW9kZT4zIgorICBbKG1hdGNo X29wZXJhbmQ6U1NFTU9ERTEyNDggMCAicmVnaXN0ZXJfb3BlcmFuZCIgIiIp CisgICAobWF0Y2hfb3BlcmFuZDpTU0VNT0RFMTI0OCAxICJyZWdpc3Rlcl9v cGVyYW5kIiAiIikKKyAgIChtYXRjaF9vcGVyYW5kOlNTRU1PREUxMjQ4IDIg InJlZ2lzdGVyX29wZXJhbmQiICIiKV0KKyAgIlRBUkdFVF9YT1AiCit7Cisg IGVtaXRfaW5zbiAoZ2VuX3hvcF92cm90bDxtb2RlPjMgKG9wZXJhbmRzWzBd LCBvcGVyYW5kc1sxXSwgb3BlcmFuZHNbMl0pKTsKKyAgRE9ORTsKK30pCisK KyhkZWZpbmVfaW5zbiAieG9wX3Zyb3RsPG1vZGU+MyIKKyAgWyhzZXQgKG1h dGNoX29wZXJhbmQ6U1NFTU9ERTEyNDggMCAicmVnaXN0ZXJfb3BlcmFuZCIg Ij14LHgiKQorCShpZl90aGVuX2Vsc2U6U1NFTU9ERTEyNDgKKwkgKGdlOlNT RU1PREUxMjQ4CisJICAobWF0Y2hfb3BlcmFuZDpTU0VNT0RFMTI0OCAyICJu b25pbW1lZGlhdGVfb3BlcmFuZCIgInhtLHgiKQorCSAgKGNvbnN0X2ludCAw KSkKKwkgKHJvdGF0ZTpTU0VNT0RFMTI0OAorCSAgKG1hdGNoX29wZXJhbmQ6 U1NFTU9ERTEyNDggMSAibm9uaW1tZWRpYXRlX29wZXJhbmQiICJ4LHhtIikK KwkgIChtYXRjaF9kdXAgMikpCisJIChyb3RhdGVydDpTU0VNT0RFMTI0OAor CSAgKG1hdGNoX2R1cCAxKQorCSAgKG5lZzpTU0VNT0RFMTI0OCAobWF0Y2hf ZHVwIDIpKSkpKV0KKyAgIlRBUkdFVF9YT1AgJiYgaXg4Nl9mbWE0X3ZhbGlk X29wX3AgKG9wZXJhbmRzLCBpbnNuLCAzLCB0cnVlLCAxLCBmYWxzZSkiCisg ICJ2cHJvdDxzc2V2ZWNzaXplPlx0eyUyLCAlMSwgJTB8JTAsICUxLCAlMn0i CisgIFsoc2V0X2F0dHIgInR5cGUiICJzc2Vpc2hmdCIpCisgICAoc2V0X2F0 dHIgInByZWZpeF9kYXRhMTYiICIwIikKKyAgIChzZXRfYXR0ciAicHJlZml4 X2V4dHJhIiAiMiIpCisgICAoc2V0X2F0dHIgIm1vZGUiICJUSSIpXSkKKwor OzsgWE9QIHBhY2tlZCBzaGlmdCBpbnN0cnVjdGlvbnMuCis7OyBGSVhNRTog YWRkIFYyREkgYmFjayBpbgorKGRlZmluZV9leHBhbmQgInZsc2hyPG1vZGU+ MyIKKyAgWyhtYXRjaF9vcGVyYW5kOlNTRU1PREUxMjQgMCAicmVnaXN0ZXJf b3BlcmFuZCIgIiIpCisgICAobWF0Y2hfb3BlcmFuZDpTU0VNT0RFMTI0IDEg InJlZ2lzdGVyX29wZXJhbmQiICIiKQorICAgKG1hdGNoX29wZXJhbmQ6U1NF TU9ERTEyNCAyICJyZWdpc3Rlcl9vcGVyYW5kIiAiIildCisgICJUQVJHRVRf WE9QIgoreworICBydHggbmVnID0gZ2VuX3JlZ19ydHggKDxNT0RFPm1vZGUp OworICBlbWl0X2luc24gKGdlbl9uZWc8bW9kZT4yIChuZWcsIG9wZXJhbmRz WzJdKSk7CisgIGVtaXRfaW5zbiAoZ2VuX3hvcF9sc2hsPG1vZGU+MyAob3Bl cmFuZHNbMF0sIG9wZXJhbmRzWzFdLCBuZWcpKTsKKyAgRE9ORTsKK30pCisK KyhkZWZpbmVfZXhwYW5kICJ2YXNocjxtb2RlPjMiCisgIFsobWF0Y2hfb3Bl cmFuZDpTU0VNT0RFMTI0IDAgInJlZ2lzdGVyX29wZXJhbmQiICIiKQorICAg KG1hdGNoX29wZXJhbmQ6U1NFTU9ERTEyNCAxICJyZWdpc3Rlcl9vcGVyYW5k IiAiIikKKyAgIChtYXRjaF9vcGVyYW5kOlNTRU1PREUxMjQgMiAicmVnaXN0 ZXJfb3BlcmFuZCIgIiIpXQorICAiVEFSR0VUX1hPUCIKK3sKKyAgcnR4IG5l ZyA9IGdlbl9yZWdfcnR4ICg8TU9ERT5tb2RlKTsKKyAgZW1pdF9pbnNuIChn ZW5fbmVnPG1vZGU+MiAobmVnLCBvcGVyYW5kc1syXSkpOworICBlbWl0X2lu c24gKGdlbl94b3BfYXNobDxtb2RlPjMgKG9wZXJhbmRzWzBdLCBvcGVyYW5k c1sxXSwgbmVnKSk7CisgIERPTkU7Cit9KQorCisoZGVmaW5lX2V4cGFuZCAi dmFzaGw8bW9kZT4zIgorICBbKG1hdGNoX29wZXJhbmQ6U1NFTU9ERTEyNCAw ICJyZWdpc3Rlcl9vcGVyYW5kIiAiIikKKyAgIChtYXRjaF9vcGVyYW5kOlNT RU1PREUxMjQgMSAicmVnaXN0ZXJfb3BlcmFuZCIgIiIpCisgICAobWF0Y2hf b3BlcmFuZDpTU0VNT0RFMTI0IDIgInJlZ2lzdGVyX29wZXJhbmQiICIiKV0K KyAgIlRBUkdFVF9YT1AiCit7CisgIGVtaXRfaW5zbiAoZ2VuX3hvcF9hc2hs PG1vZGU+MyAob3BlcmFuZHNbMF0sIG9wZXJhbmRzWzFdLCBvcGVyYW5kc1sy XSkpOworICBET05FOworfSkKKworKGRlZmluZV9pbnNuICJ4b3BfYXNobDxt b2RlPjMiCisgIFsoc2V0IChtYXRjaF9vcGVyYW5kOlNTRU1PREUxMjQ4IDAg InJlZ2lzdGVyX29wZXJhbmQiICI9eCx4IikKKwkoaWZfdGhlbl9lbHNlOlNT RU1PREUxMjQ4CisJIChnZTpTU0VNT0RFMTI0OAorCSAgKG1hdGNoX29wZXJh bmQ6U1NFTU9ERTEyNDggMiAibm9uaW1tZWRpYXRlX29wZXJhbmQiICJ4bSx4 IikKKwkgIChjb25zdF9pbnQgMCkpCisJIChhc2hpZnQ6U1NFTU9ERTEyNDgK KwkgIChtYXRjaF9vcGVyYW5kOlNTRU1PREUxMjQ4IDEgIm5vbmltbWVkaWF0 ZV9vcGVyYW5kIiAieCx4bSIpCisJICAobWF0Y2hfZHVwIDIpKQorCSAoYXNo aWZ0cnQ6U1NFTU9ERTEyNDgKKwkgIChtYXRjaF9kdXAgMSkKKwkgIChuZWc6 U1NFTU9ERTEyNDggKG1hdGNoX2R1cCAyKSkpKSldCisgICJUQVJHRVRfWE9Q ICYmIGl4ODZfZm1hNF92YWxpZF9vcF9wIChvcGVyYW5kcywgaW5zbiwgMywg dHJ1ZSwgMSwgZmFsc2UpIgorICAidnBzaGE8c3NldmVjc2l6ZT5cdHslMiwg JTEsICUwfCUwLCAlMSwgJTJ9IgorICBbKHNldF9hdHRyICJ0eXBlIiAic3Nl aXNoZnQiKQorICAgKHNldF9hdHRyICJwcmVmaXhfZGF0YTE2IiAiMCIpCisg ICAoc2V0X2F0dHIgInByZWZpeF9leHRyYSIgIjIiKQorICAgKHNldF9hdHRy ICJtb2RlIiAiVEkiKV0pCisKKyhkZWZpbmVfaW5zbiAieG9wX2xzaGw8bW9k ZT4zIgorICBbKHNldCAobWF0Y2hfb3BlcmFuZDpTU0VNT0RFMTI0OCAwICJy ZWdpc3Rlcl9vcGVyYW5kIiAiPXgseCIpCisJKGlmX3RoZW5fZWxzZTpTU0VN T0RFMTI0OAorCSAoZ2U6U1NFTU9ERTEyNDgKKwkgIChtYXRjaF9vcGVyYW5k OlNTRU1PREUxMjQ4IDIgIm5vbmltbWVkaWF0ZV9vcGVyYW5kIiAieG0seCIp CisJICAoY29uc3RfaW50IDApKQorCSAoYXNoaWZ0OlNTRU1PREUxMjQ4CisJ ICAobWF0Y2hfb3BlcmFuZDpTU0VNT0RFMTI0OCAxICJub25pbW1lZGlhdGVf b3BlcmFuZCIgIngseG0iKQorCSAgKG1hdGNoX2R1cCAyKSkKKwkgKGxzaGlm dHJ0OlNTRU1PREUxMjQ4CisJICAobWF0Y2hfZHVwIDEpCisJICAobmVnOlNT RU1PREUxMjQ4IChtYXRjaF9kdXAgMikpKSkpXQorICAiVEFSR0VUX1hPUCAm JiBpeDg2X2ZtYTRfdmFsaWRfb3BfcCAob3BlcmFuZHMsIGluc24sIDMsIHRy dWUsIDEsIGZhbHNlKSIKKyAgInZwc2hsPHNzZXZlY3NpemU+XHR7JTIsICUx LCAlMHwlMCwgJTEsICUyfSIKKyAgWyhzZXRfYXR0ciAidHlwZSIgInNzZWlz aGZ0IikKKyAgIChzZXRfYXR0ciAicHJlZml4X2RhdGExNiIgIjAiKQorICAg KHNldF9hdHRyICJwcmVmaXhfZXh0cmEiICIyIikKKyAgIChzZXRfYXR0ciAi bW9kZSIgIlRJIildKQorCis7OyBTU0UyIGRvZXNuJ3QgaGF2ZSBzb21lIHNo aWZ0IHZhcmllbnRzLCBzbyBkZWZpbmUgdmVyc2lvbnMgZm9yIFhPUAorKGRl ZmluZV9leHBhbmQgImFzaGx2MTZxaTMiCisgIFsobWF0Y2hfb3BlcmFuZDpW MTZRSSAwICJyZWdpc3Rlcl9vcGVyYW5kIiAiIikKKyAgIChtYXRjaF9vcGVy YW5kOlYxNlFJIDEgInJlZ2lzdGVyX29wZXJhbmQiICIiKQorICAgKG1hdGNo X29wZXJhbmQ6U0kgMiAibm9ubWVtb3J5X29wZXJhbmQiICIiKV0KKyAgIlRB UkdFVF9YT1AiCit7CisgIHJ0dmVjIHZzID0gcnR2ZWNfYWxsb2MgKDE2KTsK KyAgcnR4IHBhciA9IGdlbl9ydHhfUEFSQUxMRUwgKFYxNlFJbW9kZSwgdnMp OworICBydHggcmVnID0gZ2VuX3JlZ19ydHggKFYxNlFJbW9kZSk7CisgIGlu dCBpOworICBmb3IgKGkgPSAwOyBpIDwgMTY7IGkrKykKKyAgICBSVFZFQ19F TFQgKHZzLCBpKSA9IG9wZXJhbmRzWzJdOworCisgIGVtaXRfaW5zbiAoZ2Vu X3ZlY19pbml0djE2cWkgKHJlZywgcGFyKSk7CisgIGVtaXRfaW5zbiAoZ2Vu X3hvcF9hc2hsdjE2cWkzIChvcGVyYW5kc1swXSwgb3BlcmFuZHNbMV0sIHJl ZykpOworICBET05FOworfSkKKworKGRlZmluZV9leHBhbmQgImxzaGx2MTZx aTMiCisgIFsobWF0Y2hfb3BlcmFuZDpWMTZRSSAwICJyZWdpc3Rlcl9vcGVy YW5kIiAiIikKKyAgIChtYXRjaF9vcGVyYW5kOlYxNlFJIDEgInJlZ2lzdGVy X29wZXJhbmQiICIiKQorICAgKG1hdGNoX29wZXJhbmQ6U0kgMiAibm9ubWVt b3J5X29wZXJhbmQiICIiKV0KKyAgIlRBUkdFVF9YT1AiCit7CisgIHJ0dmVj IHZzID0gcnR2ZWNfYWxsb2MgKDE2KTsKKyAgcnR4IHBhciA9IGdlbl9ydHhf UEFSQUxMRUwgKFYxNlFJbW9kZSwgdnMpOworICBydHggcmVnID0gZ2VuX3Jl Z19ydHggKFYxNlFJbW9kZSk7CisgIGludCBpOworICBmb3IgKGkgPSAwOyBp IDwgMTY7IGkrKykKKyAgICBSVFZFQ19FTFQgKHZzLCBpKSA9IG9wZXJhbmRz WzJdOworCisgIGVtaXRfaW5zbiAoZ2VuX3ZlY19pbml0djE2cWkgKHJlZywg cGFyKSk7CisgIGVtaXRfaW5zbiAoZ2VuX3hvcF9sc2hsdjE2cWkzIChvcGVy YW5kc1swXSwgb3BlcmFuZHNbMV0sIHJlZykpOworICBET05FOworfSkKKwor KGRlZmluZV9leHBhbmQgImFzaHJ2MTZxaTMiCisgIFsobWF0Y2hfb3BlcmFu ZDpWMTZRSSAwICJyZWdpc3Rlcl9vcGVyYW5kIiAiIikKKyAgIChtYXRjaF9v cGVyYW5kOlYxNlFJIDEgInJlZ2lzdGVyX29wZXJhbmQiICIiKQorICAgKG1h dGNoX29wZXJhbmQ6U0kgMiAibm9ubWVtb3J5X29wZXJhbmQiICIiKV0KKyAg IlRBUkdFVF9YT1AiCit7CisgIHJ0dmVjIHZzID0gcnR2ZWNfYWxsb2MgKDE2 KTsKKyAgcnR4IHBhciA9IGdlbl9ydHhfUEFSQUxMRUwgKFYxNlFJbW9kZSwg dnMpOworICBydHggcmVnID0gZ2VuX3JlZ19ydHggKFYxNlFJbW9kZSk7Cisg IGludCBpOworICBydHggZWxlID0gKChDT05TVF9JTlRfUCAob3BlcmFuZHNb Ml0pKQorCSAgICAgPyBHRU5fSU5UICgtIElOVFZBTCAob3BlcmFuZHNbMl0p KQorCSAgICAgOiBvcGVyYW5kc1syXSk7CisKKyAgZm9yIChpID0gMDsgaSA8 IDE2OyBpKyspCisgICAgUlRWRUNfRUxUICh2cywgaSkgPSBlbGU7CisKKyAg ZW1pdF9pbnNuIChnZW5fdmVjX2luaXR2MTZxaSAocmVnLCBwYXIpKTsKKwor ICBpZiAoIUNPTlNUX0lOVF9QIChvcGVyYW5kc1syXSkpCisgICAgeworICAg ICAgcnR4IG5lZyA9IGdlbl9yZWdfcnR4IChWMTZRSW1vZGUpOworICAgICAg ZW1pdF9pbnNuIChnZW5fbmVndjE2cWkyIChuZWcsIHJlZykpOworICAgICAg ZW1pdF9pbnNuIChnZW5feG9wX2FzaGx2MTZxaTMgKG9wZXJhbmRzWzBdLCBv cGVyYW5kc1sxXSwgbmVnKSk7CisgICAgfQorICBlbHNlCisgICAgZW1pdF9p bnNuIChnZW5feG9wX2FzaGx2MTZxaTMgKG9wZXJhbmRzWzBdLCBvcGVyYW5k c1sxXSwgcmVnKSk7CisKKyAgRE9ORTsKK30pCisKKyhkZWZpbmVfZXhwYW5k ICJhc2hydjJkaTMiCisgIFsobWF0Y2hfb3BlcmFuZDpWMkRJIDAgInJlZ2lz dGVyX29wZXJhbmQiICIiKQorICAgKG1hdGNoX29wZXJhbmQ6VjJESSAxICJy ZWdpc3Rlcl9vcGVyYW5kIiAiIikKKyAgIChtYXRjaF9vcGVyYW5kOkRJIDIg Im5vbm1lbW9yeV9vcGVyYW5kIiAiIildCisgICJUQVJHRVRfWE9QIgorewor ICBydHZlYyB2cyA9IHJ0dmVjX2FsbG9jICgyKTsKKyAgcnR4IHBhciA9IGdl bl9ydHhfUEFSQUxMRUwgKFYyREltb2RlLCB2cyk7CisgIHJ0eCByZWcgPSBn ZW5fcmVnX3J0eCAoVjJESW1vZGUpOworICBydHggZWxlOworCisgIGlmIChD T05TVF9JTlRfUCAob3BlcmFuZHNbMl0pKQorICAgIGVsZSA9IEdFTl9JTlQg KC0gSU5UVkFMIChvcGVyYW5kc1syXSkpOworICBlbHNlIGlmIChHRVRfTU9E RSAob3BlcmFuZHNbMl0pICE9IERJbW9kZSkKKyAgICB7CisgICAgICBydHgg bW92ZSA9IGdlbl9yZWdfcnR4IChESW1vZGUpOworICAgICAgZWxlID0gZ2Vu X3JlZ19ydHggKERJbW9kZSk7CisgICAgICBjb252ZXJ0X21vdmUgKG1vdmUs IG9wZXJhbmRzWzJdLCBmYWxzZSk7CisgICAgICBlbWl0X2luc24gKGdlbl9u ZWdkaTIgKGVsZSwgbW92ZSkpOworICAgIH0KKyAgZWxzZQorICAgIHsKKyAg ICAgIGVsZSA9IGdlbl9yZWdfcnR4IChESW1vZGUpOworICAgICAgZW1pdF9p bnNuIChnZW5fbmVnZGkyIChlbGUsIG9wZXJhbmRzWzJdKSk7CisgICAgfQor CisgIFJUVkVDX0VMVCAodnMsIDApID0gZWxlOworICBSVFZFQ19FTFQgKHZz LCAxKSA9IGVsZTsKKyAgZW1pdF9pbnNuIChnZW5fdmVjX2luaXR2MmRpIChy ZWcsIHBhcikpOworICBlbWl0X2luc24gKGdlbl94b3BfYXNobHYyZGkzIChv cGVyYW5kc1swXSwgb3BlcmFuZHNbMV0sIHJlZykpOworICBET05FOworfSkK KworOzsgWE9QIEZSQ1ogc3VwcG9ydAorOzsgcGFyYWxsZWwgaW5zbnMKKyhk ZWZpbmVfaW5zbiAieG9wX2ZyY3o8bW9kZT4yIgorICBbKHNldCAobWF0Y2hf b3BlcmFuZDpTU0VNT0RFRjJQIDAgInJlZ2lzdGVyX29wZXJhbmQiICI9eCIp CisJKHVuc3BlYzpTU0VNT0RFRjJQCisJIFsobWF0Y2hfb3BlcmFuZDpTU0VN T0RFRjJQIDEgIm5vbmltbWVkaWF0ZV9vcGVyYW5kIiAieG0iKV0KKwkgVU5T UEVDX0ZSQ1opKV0KKyAgIlRBUkdFVF9YT1AiCisgICJ2ZnJjejxzc2Vtb2Rl c3VmZml4ZjQ+XHR7JTEsICUwfCUwLCAlMX0iCisgIFsoc2V0X2F0dHIgInR5 cGUiICJzc2VjdnQxIikKKyAgIChzZXRfYXR0ciAibW9kZSIgIjxNT0RFPiIp XSkKKworOzsgc2NhbGFyIGluc25zCisoZGVmaW5lX2luc24gInhvcF92bWZy Y3o8bW9kZT4yIgorICBbKHNldCAobWF0Y2hfb3BlcmFuZDpTU0VNT0RFRjJQ IDAgInJlZ2lzdGVyX29wZXJhbmQiICI9eCIpCisJKHZlY19tZXJnZTpTU0VN T0RFRjJQCisJICAodW5zcGVjOlNTRU1PREVGMlAKKwkgICBbKG1hdGNoX29w ZXJhbmQ6U1NFTU9ERUYyUCAyICJub25pbW1lZGlhdGVfb3BlcmFuZCIgInht IildCisJICAgVU5TUEVDX0ZSQ1opCisJICAobWF0Y2hfb3BlcmFuZDpTU0VN T0RFRjJQIDEgInJlZ2lzdGVyX29wZXJhbmQiICIwIikKKwkgIChjb25zdF9p bnQgMSkpKV0KKyAgIlRBUkdFVF9YT1AiCisgICJ2ZnJjejxzc2Vtb2Rlc3Vm Zml4ZjJzPlx0eyUyLCAlMHwlMCwgJTJ9IgorICBbKHNldF9hdHRyICJ0eXBl IiAic3NlY3Z0MSIpCisgICAoc2V0X2F0dHIgIm1vZGUiICI8TU9ERT4iKV0p CisKKyhkZWZpbmVfaW5zbiAieG9wX2ZyY3o8bW9kZT4yMjU2IgorICBbKHNl dCAobWF0Y2hfb3BlcmFuZDpGTUE0TU9ERUY0IDAgInJlZ2lzdGVyX29wZXJh bmQiICI9eCIpCisJKHVuc3BlYzpGTUE0TU9ERUY0CisJIFsobWF0Y2hfb3Bl cmFuZDpGTUE0TU9ERUY0IDEgIm5vbmltbWVkaWF0ZV9vcGVyYW5kIiAieG0i KV0KKwkgVU5TUEVDX0ZSQ1opKV0KKyAgIlRBUkdFVF9YT1AiCisgICJ2ZnJj ejxmbWE0bW9kZXN1ZmZpeGY0Plx0eyUxLCAlMHwlMCwgJTF9IgorICBbKHNl dF9hdHRyICJ0eXBlIiAic3NlY3Z0MSIpCisgICAoc2V0X2F0dHIgIm1vZGUi ICI8TU9ERT4iKV0pCisKKyhkZWZpbmVfaW5zbiAieG9wX21hc2tjbXA8bW9k ZT4zIgorICBbKHNldCAobWF0Y2hfb3BlcmFuZDpTU0VNT0RFMTI0OCAwICJy ZWdpc3Rlcl9vcGVyYW5kIiAiPXgiKQorCShtYXRjaF9vcGVyYXRvcjpTU0VN T0RFMTI0OCAxICJpeDg2X2NvbXBhcmlzb25faW50X29wZXJhdG9yIgorCSBb KG1hdGNoX29wZXJhbmQ6U1NFTU9ERTEyNDggMiAicmVnaXN0ZXJfb3BlcmFu ZCIgIngiKQorCSAgKG1hdGNoX29wZXJhbmQ6U1NFTU9ERTEyNDggMyAibm9u aW1tZWRpYXRlX29wZXJhbmQiICJ4bSIpXSkpXQorICAiVEFSR0VUX1hPUCIK KyAgInZwY29tJVkxPHNzZXZlY3NpemU+XHR7JTMsICUyLCAlMHwlMCwgJTIs ICUzfSIKKyAgWyhzZXRfYXR0ciAidHlwZSIgInNzZTRhcmciKQorICAgKHNl dF9hdHRyICJwcmVmaXhfZGF0YTE2IiAiMCIpCisgICAoc2V0X2F0dHIgInBy ZWZpeF9yZXAiICIwIikKKyAgIChzZXRfYXR0ciAicHJlZml4X2V4dHJhIiAi MiIpCisgICAoc2V0X2F0dHIgImxlbmd0aF9pbW1lZGlhdGUiICIxIikKKyAg IChzZXRfYXR0ciAibW9kZSIgIlRJIildKQorCisoZGVmaW5lX2luc24gInhv cF9tYXNrY21wX3Vuczxtb2RlPjMiCisgIFsoc2V0IChtYXRjaF9vcGVyYW5k OlNTRU1PREUxMjQ4IDAgInJlZ2lzdGVyX29wZXJhbmQiICI9eCIpCisJKG1h dGNoX29wZXJhdG9yOlNTRU1PREUxMjQ4IDEgIml4ODZfY29tcGFyaXNvbl91 bnNfb3BlcmF0b3IiCisJIFsobWF0Y2hfb3BlcmFuZDpTU0VNT0RFMTI0OCAy ICJyZWdpc3Rlcl9vcGVyYW5kIiAieCIpCisJICAobWF0Y2hfb3BlcmFuZDpT U0VNT0RFMTI0OCAzICJub25pbW1lZGlhdGVfb3BlcmFuZCIgInhtIildKSld CisgICJUQVJHRVRfWE9QIgorICAidnBjb20lWTF1PHNzZXZlY3NpemU+XHR7 JTMsICUyLCAlMHwlMCwgJTIsICUzfSIKKyAgWyhzZXRfYXR0ciAidHlwZSIg InNzZWNtcCIpCisgICAoc2V0X2F0dHIgInByZWZpeF9kYXRhMTYiICIwIikK KyAgIChzZXRfYXR0ciAicHJlZml4X3JlcCIgIjAiKQorICAgKHNldF9hdHRy ICJwcmVmaXhfZXh0cmEiICIyIikKKyAgIChzZXRfYXR0ciAibGVuZ3RoX2lt bWVkaWF0ZSIgIjEiKQorICAgKHNldF9hdHRyICJtb2RlIiAiVEkiKV0pCisK Kzs7IFZlcnNpb24gb2YgcGNvbSp1KiB0aGF0IGlzIGNhbGxlZCBmcm9tIHRo ZSBpbnRyaW5zaWNzIHRoYXQgYWxsb3dzIHBjb21lcXUqCis7OyBhbmQgcGNv bW5ldSogbm90IHRvIGJlIGNvbnZlcnRlZCB0byB0aGUgc2lnbmVkIG9uZXMg aW4gY2FzZSBzb21lYm9keSBuZWVkcworOzsgdGhlIGV4YWN0IGluc3RydWN0 aW9uIGdlbmVyYXRlZCBmb3IgdGhlIGludHJpbnNpYy4KKyhkZWZpbmVfaW5z biAieG9wX21hc2tjbXBfdW5zMjxtb2RlPjMiCisgIFsoc2V0IChtYXRjaF9v cGVyYW5kOlNTRU1PREUxMjQ4IDAgInJlZ2lzdGVyX29wZXJhbmQiICI9eCIp CisJKHVuc3BlYzpTU0VNT0RFMTI0OAorCSBbKG1hdGNoX29wZXJhdG9yOlNT RU1PREUxMjQ4IDEgIml4ODZfY29tcGFyaXNvbl91bnNfb3BlcmF0b3IiCisJ ICBbKG1hdGNoX29wZXJhbmQ6U1NFTU9ERTEyNDggMiAicmVnaXN0ZXJfb3Bl cmFuZCIgIngiKQorCSAgIChtYXRjaF9vcGVyYW5kOlNTRU1PREUxMjQ4IDMg Im5vbmltbWVkaWF0ZV9vcGVyYW5kIiAieG0iKV0pXQorCSBVTlNQRUNfWE9Q X1VOU0lHTkVEX0NNUCkpXQorICAiVEFSR0VUX1hPUCIKKyAgInZwY29tJVkx dTxzc2V2ZWNzaXplPlx0eyUzLCAlMiwgJTB8JTAsICUyLCAlM30iCisgIFso c2V0X2F0dHIgInR5cGUiICJzc2VjbXAiKQorICAgKHNldF9hdHRyICJwcmVm aXhfZGF0YTE2IiAiMCIpCisgICAoc2V0X2F0dHIgInByZWZpeF9leHRyYSIg IjIiKQorICAgKHNldF9hdHRyICJsZW5ndGhfaW1tZWRpYXRlIiAiMSIpCisg ICAoc2V0X2F0dHIgIm1vZGUiICJUSSIpXSkKKworOzsgUGNvbXRydWUgYW5k IHBjb21mYWxzZSBzdXBwb3J0LiAgVGhlc2UgYXJlIHVzZWxlc3MgaW5zdHJ1 Y3Rpb25zLCBidXQgYXJlCis7OyBiZWluZyBhZGRlZCBoZXJlIHRvIGJlIGNv bXBsZXRlLgorKGRlZmluZV9pbnNuICJ4b3BfcGNvbV90Zjxtb2RlPjMiCisg IFsoc2V0IChtYXRjaF9vcGVyYW5kOlNTRU1PREUxMjQ4IDAgInJlZ2lzdGVy X29wZXJhbmQiICI9eCIpCisJKHVuc3BlYzpTU0VNT0RFMTI0OAorCSAgWyht YXRjaF9vcGVyYW5kOlNTRU1PREUxMjQ4IDEgInJlZ2lzdGVyX29wZXJhbmQi ICJ4IikKKwkgICAobWF0Y2hfb3BlcmFuZDpTU0VNT0RFMTI0OCAyICJub25p bW1lZGlhdGVfb3BlcmFuZCIgInhtIikKKwkgICAobWF0Y2hfb3BlcmFuZDpT SSAzICJjb25zdF9pbnRfb3BlcmFuZCIgIm4iKV0KKwkgIFVOU1BFQ19YT1Bf VFJVRUZBTFNFKSldCisgICJUQVJHRVRfWE9QIgoreworICByZXR1cm4gKChJ TlRWQUwgKG9wZXJhbmRzWzNdKSAhPSAwKQorCSAgPyAidnBjb210cnVlPHNz ZXZlY3NpemU+XHR7JTIsICUxLCAlMHwlMCwgJTEsICUyfSIKKwkgIDogInZw Y29tZmFsc2U8c3NldmVjc2l6ZT5cdHslMiwgJTEsICUwfCUwLCAlMSwgJTJ9 Iik7Cit9CisgIFsoc2V0X2F0dHIgInR5cGUiICJzc2VjbXAiKQorICAgKHNl dF9hdHRyICJwcmVmaXhfZGF0YTE2IiAiMCIpCisgICAoc2V0X2F0dHIgInBy ZWZpeF9leHRyYSIgIjIiKQorICAgKHNldF9hdHRyICJsZW5ndGhfaW1tZWRp YXRlIiAiMSIpCisgICAoc2V0X2F0dHIgIm1vZGUiICJUSSIpXSkKKworOzs7 Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7 Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7CiAoZGVmaW5lX2luc24gIiphdnhf YWVzZW5jIgogICBbKHNldCAobWF0Y2hfb3BlcmFuZDpWMkRJIDAgInJlZ2lz dGVyX29wZXJhbmQiICI9eCIpCiAJKHVuc3BlYzpWMkRJIFsobWF0Y2hfb3Bl cmFuZDpWMkRJIDEgInJlZ2lzdGVyX29wZXJhbmQiICJ4IikKZGlmZiAtcHVy TncgZ2NjL2djYy9jb25maWcvaTM4Ni94ODZpbnRyaW4uaCB4b3AvZ2NjL2Nv bmZpZy9pMzg2L3g4NmludHJpbi5oCi0tLSBnY2MvZ2NjL2NvbmZpZy9pMzg2 L3g4NmludHJpbi5oCTIwMDktMTAtMjAgMTM6NTY6NTQuMDAwMDAwMDAwIC0w NTAwCisrKyB4b3AvZ2NjL2NvbmZpZy9pMzg2L3g4NmludHJpbi5oCTIwMDkt MTAtMjAgMTQ6MDY6MDIuMDAwMDAwMDAwIC0wNTAwCkBAIC01OCw2ICs1OCwx MCBAQAogI2luY2x1ZGUgPGZtYTRpbnRyaW4uaD4KICNlbmRpZgogCisjaWZk ZWYgX19YT1BfXworI2luY2x1ZGUgPHhvcGludHJpbi5oPgorI2VuZGlmCisK ICNpZiBkZWZpbmVkIChfX0FFU19fKSB8fCBkZWZpbmVkIChfX1BDTE1VTF9f KQogI2luY2x1ZGUgPHdtbWludHJpbi5oPgogI2VuZGlmCmRpZmYgLXB1ck53 IGdjYy9nY2MvY29uZmlnL2kzODYveG9waW50cmluLmggeG9wL2djYy9jb25m aWcvaTM4Ni94b3BpbnRyaW4uaAotLS0gZ2NjL2djYy9jb25maWcvaTM4Ni94 b3BpbnRyaW4uaAkxOTY5LTEyLTMxIDE4OjAwOjAwLjAwMDAwMDAwMCAtMDYw MAorKysgeG9wL2djYy9jb25maWcvaTM4Ni94b3BpbnRyaW4uaAkyMDA5LTEw LTIxIDEzOjUyOjE4LjAwMDAwMDAwMCAtMDUwMApAQCAtMCwwICsxLDc3MSBA QAorLyogQ29weXJpZ2h0IChDKSAyMDA3LCAyMDA4LCAyMDA5IEZyZWUgU29m dHdhcmUgRm91bmRhdGlvbiwgSW5jLgorCisgICBUaGlzIGZpbGUgaXMgcGFy dCBvZiBHQ0MuCisKKyAgIEdDQyBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2Fu IHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisgICBpdCB1bmRlciB0 aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFz IHB1Ymxpc2hlZCBieQorICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlv bjsgZWl0aGVyIHZlcnNpb24gMywgb3IgKGF0IHlvdXIgb3B0aW9uKQorICAg YW55IGxhdGVyIHZlcnNpb24uCisKKyAgIEdDQyBpcyBkaXN0cmlidXRlZCBp biB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICAgYnV0IFdJ VEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQg d2FycmFudHkgb2YKKyAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZP UiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKKyAgIEdOVSBHZW5l cmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisKKyAgIFVu ZGVyIFNlY3Rpb24gNyBvZiBHUEwgdmVyc2lvbiAzLCB5b3UgYXJlIGdyYW50 ZWQgYWRkaXRpb25hbAorICAgcGVybWlzc2lvbnMgZGVzY3JpYmVkIGluIHRo ZSBHQ0MgUnVudGltZSBMaWJyYXJ5IEV4Y2VwdGlvbiwgdmVyc2lvbgorICAg My4xLCBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRh dGlvbi4KKworICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBv ZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYW5kCisgICBhIGNv cHkgb2YgdGhlIEdDQyBSdW50aW1lIExpYnJhcnkgRXhjZXB0aW9uIGFsb25n IHdpdGggdGhpcyBwcm9ncmFtOworICAgc2VlIHRoZSBmaWxlcyBDT1BZSU5H MyBhbmQgQ09QWUlORy5SVU5USU1FIHJlc3BlY3RpdmVseS4gIElmIG5vdCwg c2VlCisgICA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uICAqLwor CisjaWZuZGVmIF9YODZJTlRSSU5fSF9JTkNMVURFRAorIyBlcnJvciAiTmV2 ZXIgdXNlIDx4b3BpbnRyaW4uaD4gZGlyZWN0bHk7IGluY2x1ZGUgPHg4Nmlu dHJpbi5oPiBpbnN0ZWFkLiIKKyNlbmRpZgorCisjaWZuZGVmIF9YT1BNTUlO VFJJTl9IX0lOQ0xVREVECisjZGVmaW5lIF9YT1BNTUlOVFJJTl9IX0lOQ0xV REVECisKKyNpZm5kZWYgX19YT1BfXworIyBlcnJvciAiWE9QIGluc3RydWN0 aW9uIHNldCBub3QgZW5hYmxlZCIKKyNlbHNlCisKKyNpbmNsdWRlIDxmbWE0 aW50cmluLmg+CisKKy8qIEludGVnZXIgbXVsdGlwbHkvYWRkIGludHJ1Y3Rp b25zLiAqLworZXh0ZXJuIF9faW5saW5lIF9fbTEyOGkgX19hdHRyaWJ1dGVf XygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlm aWNpYWxfXykpCitfbW1fbWFjY3NfZXBpMTYoX19tMTI4aSBfX0EsIF9fbTEy OGkgX19CLCBfX20xMjhpIF9fQykKK3sKKyAgcmV0dXJuIChfX20xMjhpKSBf X2J1aWx0aW5faWEzMl92cG1hY3Nzd3cgKChfX3Y4aGkpX19BLChfX3Y4aGkp X19CLCAoX192OGhpKV9fQyk7Cit9CisKK2V4dGVybiBfX2lubGluZSBfX20x MjhpIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19p bmxpbmVfXywgX19hcnRpZmljaWFsX18pKQorX21tX21hY2NfZXBpMTYoX19t MTI4aSBfX0EsIF9fbTEyOGkgX19CLCBfX20xMjhpIF9fQykKK3sKKyAgcmV0 dXJuIChfX20xMjhpKSBfX2J1aWx0aW5faWEzMl92cG1hY3N3dyAoKF9fdjho aSlfX0EsIChfX3Y4aGkpX19CLCAoX192OGhpKV9fQyk7Cit9CisKK2V4dGVy biBfX2lubGluZSBfX20xMjhpIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGlu ZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQorX21t X21hY2NzZF9lcGkxNihfX20xMjhpIF9fQSwgX19tMTI4aSBfX0IsIF9fbTEy OGkgX19DKQoreworICByZXR1cm4gIChfX20xMjhpKSBfX2J1aWx0aW5faWEz Ml92cG1hY3Nzd2QgKChfX3Y4aGkpX19BLCAoX192OGhpKV9fQiwgKF9fdjRz aSlfX0MpOworfQorCitleHRlcm4gX19pbmxpbmUgX19tMTI4aSBfX2F0dHJp YnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9f YXJ0aWZpY2lhbF9fKSkKK19tbV9tYWNjZF9lcGkxNihfX20xMjhpIF9fQSwg X19tMTI4aSBfX0IsIF9fbTEyOGkgX19DKQoreworICByZXR1cm4gIChfX20x MjhpKSBfX2J1aWx0aW5faWEzMl92cG1hY3N3ZCAoKF9fdjhoaSlfX0EsIChf X3Y4aGkpX19CLCAoX192NHNpKV9fQyk7Cit9CisKK2V4dGVybiBfX2lubGlu ZSBfX20xMjhpIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fs d2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQorX21tX21hY2NzX2Vw aTMyKF9fbTEyOGkgX19BLCBfX20xMjhpIF9fQiwgX19tMTI4aSBfX0MpCit7 CisgIHJldHVybiAgKF9fbTEyOGkpIF9fYnVpbHRpbl9pYTMyX3ZwbWFjc3Nk ZCAoKF9fdjRzaSlfX0EsIChfX3Y0c2kpX19CLCAoX192NHNpKV9fQyk7Cit9 CisKK2V4dGVybiBfX2lubGluZSBfX20xMjhpIF9fYXR0cmlidXRlX18oKF9f Z251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFs X18pKQorX21tX21hY2NfZXBpMzIoX19tMTI4aSBfX0EsIF9fbTEyOGkgX19C LCBfX20xMjhpIF9fQykKK3sKKyAgcmV0dXJuICAoX19tMTI4aSkgX19idWls dGluX2lhMzJfdnBtYWNzZGQgKChfX3Y0c2kpX19BLCAoX192NHNpKV9fQiwg KF9fdjRzaSlfX0MpOworfQorCitleHRlcm4gX19pbmxpbmUgX19tMTI4aSBf X2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5l X18sIF9fYXJ0aWZpY2lhbF9fKSkKK19tbV9tYWNjc2xvX2VwaTMyKF9fbTEy OGkgX19BLCBfX20xMjhpIF9fQiwgX19tMTI4aSBfX0MpCit7CisgIHJldHVy biAgKF9fbTEyOGkpIF9fYnVpbHRpbl9pYTMyX3ZwbWFjc3NkcWwgKChfX3Y0 c2kpX19BLCAoX192NHNpKV9fQiwgKF9fdjJkaSlfX0MpOworfQorCitleHRl cm4gX19pbmxpbmUgX19tMTI4aSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxp bmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKK19t bV9tYWNjbG9fZXBpMzIoX19tMTI4aSBfX0EsIF9fbTEyOGkgX19CLCBfX20x MjhpIF9fQykKK3sKKyAgcmV0dXJuICAoX19tMTI4aSkgX19idWlsdGluX2lh MzJfdnBtYWNzZHFsICgoX192NHNpKV9fQSwgKF9fdjRzaSlfX0IsIChfX3Yy ZGkpX19DKTsKK30KKworZXh0ZXJuIF9faW5saW5lIF9fbTEyOGkgX19hdHRy aWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBf X2FydGlmaWNpYWxfXykpCitfbW1fbWFjY3NoaV9lcGkzMihfX20xMjhpIF9f QSwgX19tMTI4aSBfX0IsIF9fbTEyOGkgX19DKQoreworICByZXR1cm4gIChf X20xMjhpKSBfX2J1aWx0aW5faWEzMl92cG1hY3NzZHFoICgoX192NHNpKV9f QSwgKF9fdjRzaSlfX0IsIChfX3YyZGkpX19DKTsKK30KKworZXh0ZXJuIF9f aW5saW5lIF9fbTEyOGkgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18s IF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCitfbW1fbWFj Y2hpX2VwaTMyKF9fbTEyOGkgX19BLCBfX20xMjhpIF9fQiwgX19tMTI4aSBf X0MpCit7CisgIHJldHVybiAgKF9fbTEyOGkpIF9fYnVpbHRpbl9pYTMyX3Zw bWFjc2RxaCAoKF9fdjRzaSlfX0EsIChfX3Y0c2kpX19CLCAoX192MmRpKV9f Qyk7Cit9CisKK2V4dGVybiBfX2lubGluZSBfX20xMjhpIF9fYXR0cmlidXRl X18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRp ZmljaWFsX18pKQorX21tX21hZGRzZF9lcGkxNihfX20xMjhpIF9fQSwgX19t MTI4aSBfX0IsIF9fbTEyOGkgX19DKQoreworICByZXR1cm4gIChfX20xMjhp KSBfX2J1aWx0aW5faWEzMl92cG1hZGNzc3dkICgoX192OGhpKV9fQSwoX192 OGhpKV9fQiwoX192NHNpKV9fQyk7Cit9CisKK2V4dGVybiBfX2lubGluZSBf X20xMjhpIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5 c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQorX21tX21hZGRkX2VwaTE2 KF9fbTEyOGkgX19BLCBfX20xMjhpIF9fQiwgX19tMTI4aSBfX0MpCit7Cisg IHJldHVybiAgKF9fbTEyOGkpIF9fYnVpbHRpbl9pYTMyX3ZwbWFkY3N3ZCAo KF9fdjhoaSlfX0EsKF9fdjhoaSlfX0IsKF9fdjRzaSlfX0MpOworfQorCisv KiBQYWNrZWQgSW50ZWdlciBIb3Jpem9udGFsIEFkZCBhbmQgU3VidHJhY3Qg Ki8KK2V4dGVybiBfX2lubGluZSBfX20xMjhpIF9fYXR0cmlidXRlX18oKF9f Z251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFs X18pKQorX21tX2hhZGR3X2VwaTgoX19tMTI4aSBfX0EpCit7CisgIHJldHVy biAgKF9fbTEyOGkpIF9fYnVpbHRpbl9pYTMyX3ZwaGFkZGJ3ICgoX192MTZx aSlfX0EpOworfQorCitleHRlcm4gX19pbmxpbmUgX19tMTI4aSBfX2F0dHJp YnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9f YXJ0aWZpY2lhbF9fKSkKK19tbV9oYWRkZF9lcGk4KF9fbTEyOGkgX19BKQor eworICByZXR1cm4gIChfX20xMjhpKSBfX2J1aWx0aW5faWEzMl92cGhhZGRi ZCAoKF9fdjE2cWkpX19BKTsKK30KKworZXh0ZXJuIF9faW5saW5lIF9fbTEy OGkgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lu bGluZV9fLCBfX2FydGlmaWNpYWxfXykpCitfbW1faGFkZHFfZXBpOChfX20x MjhpIF9fQSkKK3sKKyAgcmV0dXJuICAoX19tMTI4aSkgX19idWlsdGluX2lh MzJfdnBoYWRkYnEgKChfX3YxNnFpKV9fQSk7Cit9CisKK2V4dGVybiBfX2lu bGluZSBfX20xMjhpIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBf X2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQorX21tX2hhZGRk X2VwaTE2KF9fbTEyOGkgX19BKQoreworICByZXR1cm4gIChfX20xMjhpKSBf X2J1aWx0aW5faWEzMl92cGhhZGR3ZCAoKF9fdjhoaSlfX0EpOworfQorCitl eHRlcm4gX19pbmxpbmUgX19tMTI4aSBfX2F0dHJpYnV0ZV9fKChfX2dudV9p bmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkK K19tbV9oYWRkcV9lcGkxNihfX20xMjhpIF9fQSkKK3sKKyAgcmV0dXJuICAo X19tMTI4aSkgX19idWlsdGluX2lhMzJfdnBoYWRkd3EgKChfX3Y4aGkpX19B KTsKK30KKworZXh0ZXJuIF9faW5saW5lIF9fbTEyOGkgX19hdHRyaWJ1dGVf XygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlm aWNpYWxfXykpCitfbW1faGFkZHFfZXBpMzIoX19tMTI4aSBfX0EpCit7Cisg IHJldHVybiAgKF9fbTEyOGkpIF9fYnVpbHRpbl9pYTMyX3ZwaGFkZGRxICgo X192NHNpKV9fQSk7Cit9CisKK2V4dGVybiBfX2lubGluZSBfX20xMjhpIF9f YXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVf XywgX19hcnRpZmljaWFsX18pKQorX21tX2hhZGR3X2VwdTgoX19tMTI4aSBf X0EpCit7CisgIHJldHVybiAgKF9fbTEyOGkpIF9fYnVpbHRpbl9pYTMyX3Zw aGFkZHVidyAoKF9fdjE2cWkpX19BKTsKK30KKworZXh0ZXJuIF9faW5saW5l IF9fbTEyOGkgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3 YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCitfbW1faGFkZGRfZXB1 OChfX20xMjhpIF9fQSkKK3sKKyAgcmV0dXJuICAoX19tMTI4aSkgX19idWls dGluX2lhMzJfdnBoYWRkdWJkICgoX192MTZxaSlfX0EpOworfQorCitleHRl cm4gX19pbmxpbmUgX19tMTI4aSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxp bmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKK19t bV9oYWRkcV9lcHU4KF9fbTEyOGkgX19BKQoreworICByZXR1cm4gIChfX20x MjhpKSBfX2J1aWx0aW5faWEzMl92cGhhZGR1YnEgKChfX3YxNnFpKV9fQSk7 Cit9CisKK2V4dGVybiBfX2lubGluZSBfX20xMjhpIF9fYXR0cmlidXRlX18o KF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmlj aWFsX18pKQorX21tX2hhZGRkX2VwdTE2KF9fbTEyOGkgX19BKQoreworICBy ZXR1cm4gIChfX20xMjhpKSBfX2J1aWx0aW5faWEzMl92cGhhZGR1d2QgKChf X3Y4aGkpX19BKTsKK30KKworZXh0ZXJuIF9faW5saW5lIF9fbTEyOGkgX19h dHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9f LCBfX2FydGlmaWNpYWxfXykpCitfbW1faGFkZHFfZXB1MTYoX19tMTI4aSBf X0EpCit7CisgIHJldHVybiAgKF9fbTEyOGkpIF9fYnVpbHRpbl9pYTMyX3Zw aGFkZHV3cSAoKF9fdjhoaSlfX0EpOworfQorCitleHRlcm4gX19pbmxpbmUg X19tMTI4aSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdh eXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKK19tbV9oYWRkcV9lcHUz MihfX20xMjhpIF9fQSkKK3sKKyAgcmV0dXJuICAoX19tMTI4aSkgX19idWls dGluX2lhMzJfdnBoYWRkdWRxICgoX192NHNpKV9fQSk7Cit9CisKK2V4dGVy biBfX2lubGluZSBfX20xMjhpIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGlu ZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQorX21t X2hzdWJ3X2VwaTgoX19tMTI4aSBfX0EpCit7CisgIHJldHVybiAgKF9fbTEy OGkpIF9fYnVpbHRpbl9pYTMyX3ZwaHN1YmJ3ICgoX192MTZxaSlfX0EpOwor fQorCitleHRlcm4gX19pbmxpbmUgX19tMTI4aSBfX2F0dHJpYnV0ZV9fKChf X2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lh bF9fKSkKK19tbV9oc3ViZF9lcGkxNihfX20xMjhpIF9fQSkKK3sKKyAgcmV0 dXJuICAoX19tMTI4aSkgX19idWlsdGluX2lhMzJfdnBoc3Vid2QgKChfX3Y4 aGkpX19BKTsKK30KKworZXh0ZXJuIF9faW5saW5lIF9fbTEyOGkgX19hdHRy aWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBf X2FydGlmaWNpYWxfXykpCitfbW1faHN1YnFfZXBpMzIoX19tMTI4aSBfX0Ep Cit7CisgIHJldHVybiAgKF9fbTEyOGkpIF9fYnVpbHRpbl9pYTMyX3ZwaHN1 YmRxICgoX192NHNpKV9fQSk7Cit9CisKKy8qIFZlY3RvciBjb25kaXRpb25h bCBtb3ZlIGFuZCBwZXJtdXRlICovCisKK2V4dGVybiBfX2lubGluZSBfX20x MjhpIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19p bmxpbmVfXywgX19hcnRpZmljaWFsX18pKQorX21tX2Ntb3Zfc2kxMjgoX19t MTI4aSBfX0EsIF9fbTEyOGkgX19CLCBfX20xMjhpIF9fQykKK3sKKyAgcmV0 dXJuICAoX19tMTI4aSkgX19idWlsdGluX2lhMzJfdnBjbW92IChfX0EsIF9f QiwgX19DKTsKK30KKworZXh0ZXJuIF9faW5saW5lIF9fbTEyOGkgX19hdHRy aWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBf X2FydGlmaWNpYWxfXykpCitfbW1fcGVybV9lcGk4KF9fbTEyOGkgX19BLCBf X20xMjhpIF9fQiwgX19tMTI4aSBfX0MpCit7CisgIHJldHVybiAgKF9fbTEy OGkpIF9fYnVpbHRpbl9pYTMyX3ZwcGVybSAoKF9fdjE2cWkpX19BLCAoX192 MTZxaSlfX0IsIChfX3YxNnFpKV9fQyk7Cit9CisKKy8qIFBhY2tlZCBJbnRl Z2VyIFJvdGF0ZXMgYW5kIFNoaWZ0cworICAgUm90YXRlcyAtIE5vbi1JbW1l ZGlhdGUgZm9ybSAqLworCitleHRlcm4gX19pbmxpbmUgX19tMTI4aSBfX2F0 dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18s IF9fYXJ0aWZpY2lhbF9fKSkKK19tbV9yb3RfZXBpOChfX20xMjhpIF9fQSwg IF9fbTEyOGkgX19CKQoreworICByZXR1cm4gIChfX20xMjhpKSBfX2J1aWx0 aW5faWEzMl92cHJvdGIgKChfX3YxNnFpKV9fQSwgKF9fdjE2cWkpX19CKTsK K30KKworZXh0ZXJuIF9faW5saW5lIF9fbTEyOGkgX19hdHRyaWJ1dGVfXygo X19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNp YWxfXykpCitfbW1fcm90X2VwaTE2KF9fbTEyOGkgX19BLCAgX19tMTI4aSBf X0IpCit7CisgIHJldHVybiAgKF9fbTEyOGkpIF9fYnVpbHRpbl9pYTMyX3Zw cm90dyAoKF9fdjhoaSlfX0EsIChfX3Y4aGkpX19CKTsKK30KKworZXh0ZXJu IF9faW5saW5lIF9fbTEyOGkgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5l X18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCitfbW1f cm90X2VwaTMyKF9fbTEyOGkgX19BLCAgX19tMTI4aSBfX0IpCit7CisgIHJl dHVybiAgKF9fbTEyOGkpIF9fYnVpbHRpbl9pYTMyX3Zwcm90ZCAoKF9fdjRz aSlfX0EsIChfX3Y0c2kpX19CKTsKK30KKworZXh0ZXJuIF9faW5saW5lIF9f bTEyOGkgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlz X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCitfbW1fcm90X2VwaTY0KF9f bTEyOGkgX19BLCAgX19tMTI4aSBfX0IpCit7CisgIHJldHVybiAoX19tMTI4 aSkgIF9fYnVpbHRpbl9pYTMyX3Zwcm90cSAoKF9fdjJkaSlfX0EsIChfX3Yy ZGkpX19CKTsKK30KKworLyogUm90YXRlcyAtIEltbWVkaWF0ZSBmb3JtICov CisKKyNpZmRlZiBfX09QVElNSVpFX18KK2V4dGVybiBfX2lubGluZSBfX20x MjhpIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19p bmxpbmVfXywgX19hcnRpZmljaWFsX18pKQorX21tX3JvdGlfZXBpOChfX20x MjhpIF9fQSwgY29uc3QgaW50IF9fQikKK3sKKyAgcmV0dXJuICAoX19tMTI4 aSkgX19idWlsdGluX2lhMzJfdnByb3RiaSAoKF9fdjE2cWkpX19BLCBfX0Ip OworfQorCitleHRlcm4gX19pbmxpbmUgX19tMTI4aSBfX2F0dHJpYnV0ZV9f KChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZp Y2lhbF9fKSkKK19tbV9yb3RpX2VwaTE2KF9fbTEyOGkgX19BLCBjb25zdCBp bnQgX19CKQoreworICByZXR1cm4gIChfX20xMjhpKSBfX2J1aWx0aW5faWEz Ml92cHJvdHdpICgoX192OGhpKV9fQSwgX19CKTsKK30KKworZXh0ZXJuIF9f aW5saW5lIF9fbTEyOGkgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18s IF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCitfbW1fcm90 aV9lcGkzMihfX20xMjhpIF9fQSwgY29uc3QgaW50IF9fQikKK3sKKyAgcmV0 dXJuICAoX19tMTI4aSkgX19idWlsdGluX2lhMzJfdnByb3RkaSAoKF9fdjRz aSlfX0EsIF9fQik7Cit9CisKK2V4dGVybiBfX2lubGluZSBfX20xMjhpIF9f YXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVf XywgX19hcnRpZmljaWFsX18pKQorX21tX3JvdGlfZXBpNjQoX19tMTI4aSBf X0EsIGNvbnN0IGludCBfX0IpCit7CisgIHJldHVybiAgKF9fbTEyOGkpIF9f YnVpbHRpbl9pYTMyX3Zwcm90cWkgKChfX3YyZGkpX19BLCBfX0IpOworfQor I2Vsc2UKKyNkZWZpbmUgX21tX3JvdGlfZXBpOChBLCBOKSBcCisgICgoX19t MTI4aSkgX19idWlsdGluX2lhMzJfdnByb3RiaSAoKF9fdjE2cWkpKF9fbTEy OGkpKEEpLCAoaW50KShOKSkpCisjZGVmaW5lIF9tbV9yb3RpX2VwaTE2KEEs IE4pIFwKKyAgKChfX20xMjhpKSBfX2J1aWx0aW5faWEzMl92cHJvdHdpICgo X192OGhpKShfX20xMjhpKShBKSwgKGludCkoTikpKQorI2RlZmluZSBfbW1f cm90aV9lcGkzMihBLCBOKSBcCisgICgoX19tMTI4aSkgX19idWlsdGluX2lh MzJfdnByb3RkaSAoKF9fdjRzaSkoX19tMTI4aSkoQSksIChpbnQpKE4pKSkK KyNkZWZpbmUgX21tX3JvdGlfZXBpNjQoQSwgTikgXAorICAoKF9fbTEyOGkp IF9fYnVpbHRpbl9pYTMyX3Zwcm90cWkgKChfX3YyZGkpKF9fbTEyOGkpKEEp LCAoaW50KShOKSkpCisjZW5kaWYKKworLyogU2hpZnRzICovCisKK2V4dGVy biBfX2lubGluZSBfX20xMjhpIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGlu ZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQorX21t X3NobF9lcGk4KF9fbTEyOGkgX19BLCAgX19tMTI4aSBfX0IpCit7CisgIHJl dHVybiAgKF9fbTEyOGkpIF9fYnVpbHRpbl9pYTMyX3Zwc2hsYiAoKF9fdjE2 cWkpX19BLCAoX192MTZxaSlfX0IpOworfQorCitleHRlcm4gX19pbmxpbmUg X19tMTI4aSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdh eXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKK19tbV9zaGxfZXBpMTYo X19tMTI4aSBfX0EsICBfX20xMjhpIF9fQikKK3sKKyAgcmV0dXJuICAoX19t MTI4aSkgX19idWlsdGluX2lhMzJfdnBzaGx3ICgoX192OGhpKV9fQSwgKF9f djhoaSlfX0IpOworfQorCitleHRlcm4gX19pbmxpbmUgX19tMTI4aSBfX2F0 dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18s IF9fYXJ0aWZpY2lhbF9fKSkKK19tbV9zaGxfZXBpMzIoX19tMTI4aSBfX0Es ICBfX20xMjhpIF9fQikKK3sKKyAgcmV0dXJuICAoX19tMTI4aSkgX19idWls dGluX2lhMzJfdnBzaGxkICgoX192NHNpKV9fQSwgKF9fdjRzaSlfX0IpOwor fQorCitleHRlcm4gX19pbmxpbmUgX19tMTI4aSBfX2F0dHJpYnV0ZV9fKChf X2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lh bF9fKSkKK19tbV9zaGxfZXBpNjQoX19tMTI4aSBfX0EsICBfX20xMjhpIF9f QikKK3sKKyAgcmV0dXJuICAoX19tMTI4aSkgX19idWlsdGluX2lhMzJfdnBz aGxxICgoX192MmRpKV9fQSwgKF9fdjJkaSlfX0IpOworfQorCisKK2V4dGVy biBfX2lubGluZSBfX20xMjhpIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGlu ZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQorX21t X3NoYV9lcGk4KF9fbTEyOGkgX19BLCAgX19tMTI4aSBfX0IpCit7CisgIHJl dHVybiAgKF9fbTEyOGkpIF9fYnVpbHRpbl9pYTMyX3Zwc2hhYiAoKF9fdjE2 cWkpX19BLCAoX192MTZxaSlfX0IpOworfQorCitleHRlcm4gX19pbmxpbmUg X19tMTI4aSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdh eXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKK19tbV9zaGFfZXBpMTYo X19tMTI4aSBfX0EsICBfX20xMjhpIF9fQikKK3sKKyAgcmV0dXJuICAoX19t MTI4aSkgX19idWlsdGluX2lhMzJfdnBzaGF3ICgoX192OGhpKV9fQSwgKF9f djhoaSlfX0IpOworfQorCitleHRlcm4gX19pbmxpbmUgX19tMTI4aSBfX2F0 dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18s IF9fYXJ0aWZpY2lhbF9fKSkKK19tbV9zaGFfZXBpMzIoX19tMTI4aSBfX0Es ICBfX20xMjhpIF9fQikKK3sKKyAgcmV0dXJuICAoX19tMTI4aSkgX19idWls dGluX2lhMzJfdnBzaGFkICgoX192NHNpKV9fQSwgKF9fdjRzaSlfX0IpOwor fQorCitleHRlcm4gX19pbmxpbmUgX19tMTI4aSBfX2F0dHJpYnV0ZV9fKChf X2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lh bF9fKSkKK19tbV9zaGFfZXBpNjQoX19tMTI4aSBfX0EsICBfX20xMjhpIF9f QikKK3sKKyAgcmV0dXJuICAoX19tMTI4aSkgX19idWlsdGluX2lhMzJfdnBz aGFxICgoX192MmRpKV9fQSwgKF9fdjJkaSlfX0IpOworfQorCisvKiBDb21w YXJlIGFuZCBQcmVkaWNhdGUgR2VuZXJhdGlvbgorICAgcGNvbSAoaW50ZWdl ciwgdW5zaW5nZWQgYnl0ZXMpICovCisKK2V4dGVybiBfX2lubGluZSBfX20x MjhpIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19p bmxpbmVfXywgX19hcnRpZmljaWFsX18pKQorX21tX2NvbWx0X2VwdTgoX19t MTI4aSBfX0EsIF9fbTEyOGkgX19CKQoreworICByZXR1cm4gKF9fbTEyOGkp IF9fYnVpbHRpbl9pYTMyX3ZwY29tbHR1YiAoKF9fdjE2cWkpX19BLCAoX192 MTZxaSlfX0IpOworfQorCitleHRlcm4gX19pbmxpbmUgX19tMTI4aSBfX2F0 dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18s IF9fYXJ0aWZpY2lhbF9fKSkKK19tbV9jb21sZV9lcHU4KF9fbTEyOGkgX19B LCBfX20xMjhpIF9fQikKK3sKKyAgcmV0dXJuIChfX20xMjhpKSBfX2J1aWx0 aW5faWEzMl92cGNvbWxldWIgKChfX3YxNnFpKV9fQSwgKF9fdjE2cWkpX19C KTsKK30KKworZXh0ZXJuIF9faW5saW5lIF9fbTEyOGkgX19hdHRyaWJ1dGVf XygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlm aWNpYWxfXykpCitfbW1fY29tZ3RfZXB1OChfX20xMjhpIF9fQSwgX19tMTI4 aSBfX0IpCit7CisgIHJldHVybiAoX19tMTI4aSkgX19idWlsdGluX2lhMzJf dnBjb21ndHViICgoX192MTZxaSlfX0EsIChfX3YxNnFpKV9fQik7Cit9CisK K2V4dGVybiBfX2lubGluZSBfX20xMjhpIF9fYXR0cmlidXRlX18oKF9fZ251 X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18p KQorX21tX2NvbWdlX2VwdTgoX19tMTI4aSBfX0EsIF9fbTEyOGkgX19CKQor eworICByZXR1cm4gKF9fbTEyOGkpIF9fYnVpbHRpbl9pYTMyX3ZwY29tZ2V1 YiAoKF9fdjE2cWkpX19BLCAoX192MTZxaSlfX0IpOworfQorCitleHRlcm4g X19pbmxpbmUgX19tMTI4aSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVf XywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKK19tbV9j b21lcV9lcHU4KF9fbTEyOGkgX19BLCBfX20xMjhpIF9fQikKK3sKKyAgcmV0 dXJuIChfX20xMjhpKSBfX2J1aWx0aW5faWEzMl92cGNvbWVxdWIgKChfX3Yx NnFpKV9fQSwgKF9fdjE2cWkpX19CKTsKK30KKworZXh0ZXJuIF9faW5saW5l IF9fbTEyOGkgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3 YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCitfbW1fY29tbmVxX2Vw dTgoX19tMTI4aSBfX0EsIF9fbTEyOGkgX19CKQoreworICByZXR1cm4gKF9f bTEyOGkpIF9fYnVpbHRpbl9pYTMyX3ZwY29tbmVxdWIgKChfX3YxNnFpKV9f QSwgKF9fdjE2cWkpX19CKTsKK30KKworZXh0ZXJuIF9faW5saW5lIF9fbTEy OGkgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lu bGluZV9fLCBfX2FydGlmaWNpYWxfXykpCitfbW1fY29tZmFsc2VfZXB1OChf X20xMjhpIF9fQSwgX19tMTI4aSBfX0IpCit7CisgIHJldHVybiAoX19tMTI4 aSkgX19idWlsdGluX2lhMzJfdnBjb21mYWxzZXViICgoX192MTZxaSlfX0Es IChfX3YxNnFpKV9fQik7Cit9CisKK2V4dGVybiBfX2lubGluZSBfX20xMjhp IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxp bmVfXywgX19hcnRpZmljaWFsX18pKQorX21tX2NvbXRydWVfZXB1OChfX20x MjhpIF9fQSwgX19tMTI4aSBfX0IpCit7CisgIHJldHVybiAoX19tMTI4aSkg X19idWlsdGluX2lhMzJfdnBjb210cnVldWIgKChfX3YxNnFpKV9fQSwgKF9f djE2cWkpX19CKTsKK30KKworLypwY29tIChpbnRlZ2VyLCB1bnNpbmdlZCB3 b3JkcykgKi8KKworZXh0ZXJuIF9faW5saW5lIF9fbTEyOGkgX19hdHRyaWJ1 dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2Fy dGlmaWNpYWxfXykpCitfbW1fY29tbHRfZXB1MTYoX19tMTI4aSBfX0EsIF9f bTEyOGkgX19CKQoreworICByZXR1cm4gKF9fbTEyOGkpIF9fYnVpbHRpbl9p YTMyX3ZwY29tbHR1dyAoKF9fdjhoaSlfX0EsIChfX3Y4aGkpX19CKTsKK30K KworZXh0ZXJuIF9faW5saW5lIF9fbTEyOGkgX19hdHRyaWJ1dGVfXygoX19n bnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxf XykpCitfbW1fY29tbGVfZXB1MTYoX19tMTI4aSBfX0EsIF9fbTEyOGkgX19C KQoreworICByZXR1cm4gKF9fbTEyOGkpIF9fYnVpbHRpbl9pYTMyX3ZwY29t bGV1dyAoKF9fdjhoaSlfX0EsIChfX3Y4aGkpX19CKTsKK30KKworZXh0ZXJu IF9faW5saW5lIF9fbTEyOGkgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5l X18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCitfbW1f Y29tZ3RfZXB1MTYoX19tMTI4aSBfX0EsIF9fbTEyOGkgX19CKQoreworICBy ZXR1cm4gKF9fbTEyOGkpIF9fYnVpbHRpbl9pYTMyX3ZwY29tZ3R1dyAoKF9f djhoaSlfX0EsIChfX3Y4aGkpX19CKTsKK30KKworZXh0ZXJuIF9faW5saW5l IF9fbTEyOGkgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3 YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCitfbW1fY29tZ2VfZXB1 MTYoX19tMTI4aSBfX0EsIF9fbTEyOGkgX19CKQoreworICByZXR1cm4gKF9f bTEyOGkpIF9fYnVpbHRpbl9pYTMyX3ZwY29tZ2V1dyAoKF9fdjhoaSlfX0Es IChfX3Y4aGkpX19CKTsKK30KKworZXh0ZXJuIF9faW5saW5lIF9fbTEyOGkg X19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGlu ZV9fLCBfX2FydGlmaWNpYWxfXykpCitfbW1fY29tZXFfZXB1MTYoX19tMTI4 aSBfX0EsIF9fbTEyOGkgX19CKQoreworICByZXR1cm4gKF9fbTEyOGkpIF9f YnVpbHRpbl9pYTMyX3ZwY29tZXF1dyAoKF9fdjhoaSlfX0EsIChfX3Y4aGkp X19CKTsKK30KKworZXh0ZXJuIF9faW5saW5lIF9fbTEyOGkgX19hdHRyaWJ1 dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2Fy dGlmaWNpYWxfXykpCitfbW1fY29tbmVxX2VwdTE2KF9fbTEyOGkgX19BLCBf X20xMjhpIF9fQikKK3sKKyAgcmV0dXJuIChfX20xMjhpKSBfX2J1aWx0aW5f aWEzMl92cGNvbW5lcXV3ICgoX192OGhpKV9fQSwgKF9fdjhoaSlfX0IpOwor fQorCitleHRlcm4gX19pbmxpbmUgX19tMTI4aSBfX2F0dHJpYnV0ZV9fKChf X2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lh bF9fKSkKK19tbV9jb21mYWxzZV9lcHUxNihfX20xMjhpIF9fQSwgX19tMTI4 aSBfX0IpCit7CisgIHJldHVybiAoX19tMTI4aSkgX19idWlsdGluX2lhMzJf dnBjb21mYWxzZXV3ICgoX192OGhpKV9fQSwgKF9fdjhoaSlfX0IpOworfQor CitleHRlcm4gX19pbmxpbmUgX19tMTI4aSBfX2F0dHJpYnV0ZV9fKChfX2du dV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9f KSkKK19tbV9jb210cnVlX2VwdTE2KF9fbTEyOGkgX19BLCBfX20xMjhpIF9f QikKK3sKKyAgcmV0dXJuIChfX20xMjhpKSBfX2J1aWx0aW5faWEzMl92cGNv bXRydWV1dyAoKF9fdjhoaSlfX0EsIChfX3Y4aGkpX19CKTsKK30KKworLypw Y29tIChpbnRlZ2VyLCB1bnNpbmdlZCBkb3VibGUgd29yZHMpICovCisKK2V4 dGVybiBfX2lubGluZSBfX20xMjhpIF9fYXR0cmlidXRlX18oKF9fZ251X2lu bGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQor X21tX2NvbWx0X2VwdTMyKF9fbTEyOGkgX19BLCBfX20xMjhpIF9fQikKK3sK KyAgcmV0dXJuIChfX20xMjhpKSBfX2J1aWx0aW5faWEzMl92cGNvbWx0dWQg KChfX3Y0c2kpX19BLCAoX192NHNpKV9fQik7Cit9CisKK2V4dGVybiBfX2lu bGluZSBfX20xMjhpIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBf X2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQorX21tX2NvbWxl X2VwdTMyKF9fbTEyOGkgX19BLCBfX20xMjhpIF9fQikKK3sKKyAgcmV0dXJu IChfX20xMjhpKSBfX2J1aWx0aW5faWEzMl92cGNvbWxldWQgKChfX3Y0c2kp X19BLCAoX192NHNpKV9fQik7Cit9CisKK2V4dGVybiBfX2lubGluZSBfX20x MjhpIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19p bmxpbmVfXywgX19hcnRpZmljaWFsX18pKQorX21tX2NvbWd0X2VwdTMyKF9f bTEyOGkgX19BLCBfX20xMjhpIF9fQikKK3sKKyAgcmV0dXJuIChfX20xMjhp KSBfX2J1aWx0aW5faWEzMl92cGNvbWd0dWQgKChfX3Y0c2kpX19BLCAoX192 NHNpKV9fQik7Cit9CisKK2V4dGVybiBfX2lubGluZSBfX20xMjhpIF9fYXR0 cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywg X19hcnRpZmljaWFsX18pKQorX21tX2NvbWdlX2VwdTMyKF9fbTEyOGkgX19B LCBfX20xMjhpIF9fQikKK3sKKyAgcmV0dXJuIChfX20xMjhpKSBfX2J1aWx0 aW5faWEzMl92cGNvbWdldWQgKChfX3Y0c2kpX19BLCAoX192NHNpKV9fQik7 Cit9CisKK2V4dGVybiBfX2lubGluZSBfX20xMjhpIF9fYXR0cmlidXRlX18o KF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmlj aWFsX18pKQorX21tX2NvbWVxX2VwdTMyKF9fbTEyOGkgX19BLCBfX20xMjhp IF9fQikKK3sKKyAgcmV0dXJuIChfX20xMjhpKSBfX2J1aWx0aW5faWEzMl92 cGNvbWVxdWQgKChfX3Y0c2kpX19BLCAoX192NHNpKV9fQik7Cit9CisKK2V4 dGVybiBfX2lubGluZSBfX20xMjhpIF9fYXR0cmlidXRlX18oKF9fZ251X2lu bGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQor X21tX2NvbW5lcV9lcHUzMihfX20xMjhpIF9fQSwgX19tMTI4aSBfX0IpCit7 CisgIHJldHVybiAoX19tMTI4aSkgX19idWlsdGluX2lhMzJfdnBjb21uZXF1 ZCAoKF9fdjRzaSlfX0EsIChfX3Y0c2kpX19CKTsKK30KKworZXh0ZXJuIF9f aW5saW5lIF9fbTEyOGkgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18s IF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCitfbW1fY29t ZmFsc2VfZXB1MzIoX19tMTI4aSBfX0EsIF9fbTEyOGkgX19CKQoreworICBy ZXR1cm4gKF9fbTEyOGkpIF9fYnVpbHRpbl9pYTMyX3ZwY29tZmFsc2V1ZCAo KF9fdjRzaSlfX0EsIChfX3Y0c2kpX19CKTsKK30KKworZXh0ZXJuIF9faW5s aW5lIF9fbTEyOGkgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9f YWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCitfbW1fY29tdHJ1 ZV9lcHUzMihfX20xMjhpIF9fQSwgX19tMTI4aSBfX0IpCit7CisgIHJldHVy biAoX19tMTI4aSkgX19idWlsdGluX2lhMzJfdnBjb210cnVldWQgKChfX3Y0 c2kpX19BLCAoX192NHNpKV9fQik7Cit9CisKKy8qcGNvbSAoaW50ZWdlciwg dW5zaW5nZWQgcXVhZCB3b3JkcykgKi8KKworZXh0ZXJuIF9faW5saW5lIF9f bTEyOGkgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlz X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCitfbW1fY29tbHRfZXB1NjQo X19tMTI4aSBfX0EsIF9fbTEyOGkgX19CKQoreworICByZXR1cm4gKF9fbTEy OGkpIF9fYnVpbHRpbl9pYTMyX3ZwY29tbHR1cSAoKF9fdjJkaSlfX0EsIChf X3YyZGkpX19CKTsKK30KKworZXh0ZXJuIF9faW5saW5lIF9fbTEyOGkgX19h dHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9f LCBfX2FydGlmaWNpYWxfXykpCitfbW1fY29tbGVfZXB1NjQoX19tMTI4aSBf X0EsIF9fbTEyOGkgX19CKQoreworICByZXR1cm4gKF9fbTEyOGkpIF9fYnVp bHRpbl9pYTMyX3ZwY29tbGV1cSAoKF9fdjJkaSlfX0EsIChfX3YyZGkpX19C KTsKK30KKworZXh0ZXJuIF9faW5saW5lIF9fbTEyOGkgX19hdHRyaWJ1dGVf XygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlm aWNpYWxfXykpCitfbW1fY29tZ3RfZXB1NjQoX19tMTI4aSBfX0EsIF9fbTEy OGkgX19CKQoreworICByZXR1cm4gKF9fbTEyOGkpIF9fYnVpbHRpbl9pYTMy X3ZwY29tZ3R1cSAoKF9fdjJkaSlfX0EsIChfX3YyZGkpX19CKTsKK30KKwor ZXh0ZXJuIF9faW5saW5lIF9fbTEyOGkgX19hdHRyaWJ1dGVfXygoX19nbnVf aW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykp CitfbW1fY29tZ2VfZXB1NjQoX19tMTI4aSBfX0EsIF9fbTEyOGkgX19CKQor eworICByZXR1cm4gKF9fbTEyOGkpIF9fYnVpbHRpbl9pYTMyX3ZwY29tZ2V1 cSAoKF9fdjJkaSlfX0EsIChfX3YyZGkpX19CKTsKK30KKworZXh0ZXJuIF9f aW5saW5lIF9fbTEyOGkgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18s IF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCitfbW1fY29t ZXFfZXB1NjQoX19tMTI4aSBfX0EsIF9fbTEyOGkgX19CKQoreworICByZXR1 cm4gKF9fbTEyOGkpIF9fYnVpbHRpbl9pYTMyX3ZwY29tZXF1cSAoKF9fdjJk aSlfX0EsIChfX3YyZGkpX19CKTsKK30KKworZXh0ZXJuIF9faW5saW5lIF9f bTEyOGkgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlz X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCitfbW1fY29tbmVxX2VwdTY0 KF9fbTEyOGkgX19BLCBfX20xMjhpIF9fQikKK3sKKyAgcmV0dXJuIChfX20x MjhpKSBfX2J1aWx0aW5faWEzMl92cGNvbW5lcXVxICgoX192MmRpKV9fQSwg KF9fdjJkaSlfX0IpOworfQorCitleHRlcm4gX19pbmxpbmUgX19tMTI4aSBf X2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5l X18sIF9fYXJ0aWZpY2lhbF9fKSkKK19tbV9jb21mYWxzZV9lcHU2NChfX20x MjhpIF9fQSwgX19tMTI4aSBfX0IpCit7CisgIHJldHVybiAoX19tMTI4aSkg X19idWlsdGluX2lhMzJfdnBjb21mYWxzZXVxICgoX192MmRpKV9fQSwgKF9f djJkaSlfX0IpOworfQorCitleHRlcm4gX19pbmxpbmUgX19tMTI4aSBfX2F0 dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18s IF9fYXJ0aWZpY2lhbF9fKSkKK19tbV9jb210cnVlX2VwdTY0KF9fbTEyOGkg X19BLCBfX20xMjhpIF9fQikKK3sKKyAgcmV0dXJuIChfX20xMjhpKSBfX2J1 aWx0aW5faWEzMl92cGNvbXRydWV1cSAoKF9fdjJkaSlfX0EsIChfX3YyZGkp X19CKTsKK30KKworLypwY29tIChpbnRlZ2VyLCBzaWduZWQgYnl0ZXMpICov CisKK2V4dGVybiBfX2lubGluZSBfX20xMjhpIF9fYXR0cmlidXRlX18oKF9f Z251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFs X18pKQorX21tX2NvbWx0X2VwaTgoX19tMTI4aSBfX0EsIF9fbTEyOGkgX19C KQoreworICByZXR1cm4gKF9fbTEyOGkpIF9fYnVpbHRpbl9pYTMyX3ZwY29t bHRiICgoX192MTZxaSlfX0EsIChfX3YxNnFpKV9fQik7Cit9CisKK2V4dGVy biBfX2lubGluZSBfX20xMjhpIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGlu ZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQorX21t X2NvbWxlX2VwaTgoX19tMTI4aSBfX0EsIF9fbTEyOGkgX19CKQoreworICBy ZXR1cm4gKF9fbTEyOGkpIF9fYnVpbHRpbl9pYTMyX3ZwY29tbGViICgoX192 MTZxaSlfX0EsIChfX3YxNnFpKV9fQik7Cit9CisKK2V4dGVybiBfX2lubGlu ZSBfX20xMjhpIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fs d2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQorX21tX2NvbWd0X2Vw aTgoX19tMTI4aSBfX0EsIF9fbTEyOGkgX19CKQoreworICByZXR1cm4gKF9f bTEyOGkpIF9fYnVpbHRpbl9pYTMyX3ZwY29tZ3RiICgoX192MTZxaSlfX0Es IChfX3YxNnFpKV9fQik7Cit9CisKK2V4dGVybiBfX2lubGluZSBfX20xMjhp IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxp bmVfXywgX19hcnRpZmljaWFsX18pKQorX21tX2NvbWdlX2VwaTgoX19tMTI4 aSBfX0EsIF9fbTEyOGkgX19CKQoreworICByZXR1cm4gKF9fbTEyOGkpIF9f YnVpbHRpbl9pYTMyX3ZwY29tZ2ViICgoX192MTZxaSlfX0EsIChfX3YxNnFp KV9fQik7Cit9CisKK2V4dGVybiBfX2lubGluZSBfX20xMjhpIF9fYXR0cmli dXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19h cnRpZmljaWFsX18pKQorX21tX2NvbWVxX2VwaTgoX19tMTI4aSBfX0EsIF9f bTEyOGkgX19CKQoreworICByZXR1cm4gKF9fbTEyOGkpIF9fYnVpbHRpbl9p YTMyX3ZwY29tZXFiICgoX192MTZxaSlfX0EsIChfX3YxNnFpKV9fQik7Cit9 CisKK2V4dGVybiBfX2lubGluZSBfX20xMjhpIF9fYXR0cmlidXRlX18oKF9f Z251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFs X18pKQorX21tX2NvbW5lcV9lcGk4KF9fbTEyOGkgX19BLCBfX20xMjhpIF9f QikKK3sKKyAgcmV0dXJuIChfX20xMjhpKSBfX2J1aWx0aW5faWEzMl92cGNv bW5lcWIgKChfX3YxNnFpKV9fQSwgKF9fdjE2cWkpX19CKTsKK30KKworZXh0 ZXJuIF9faW5saW5lIF9fbTEyOGkgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5s aW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCitf bW1fY29tZmFsc2VfZXBpOChfX20xMjhpIF9fQSwgX19tMTI4aSBfX0IpCit7 CisgIHJldHVybiAoX19tMTI4aSkgX19idWlsdGluX2lhMzJfdnBjb21mYWxz ZWIgKChfX3YxNnFpKV9fQSwgKF9fdjE2cWkpX19CKTsKK30KKworZXh0ZXJu IF9faW5saW5lIF9fbTEyOGkgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5l X18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCitfbW1f Y29tdHJ1ZV9lcGk4KF9fbTEyOGkgX19BLCBfX20xMjhpIF9fQikKK3sKKyAg cmV0dXJuIChfX20xMjhpKSBfX2J1aWx0aW5faWEzMl92cGNvbXRydWViICgo X192MTZxaSlfX0EsIChfX3YxNnFpKV9fQik7Cit9CisKKy8qcGNvbSAoaW50 ZWdlciwgc2lnbmVkIHdvcmRzKSAqLworCitleHRlcm4gX19pbmxpbmUgX19t MTI4aSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNf aW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKK19tbV9jb21sdF9lcGkxNihf X20xMjhpIF9fQSwgX19tMTI4aSBfX0IpCit7CisgIHJldHVybiAoX19tMTI4 aSkgX19idWlsdGluX2lhMzJfdnBjb21sdHcgKChfX3Y4aGkpX19BLCAoX192 OGhpKV9fQik7Cit9CisKK2V4dGVybiBfX2lubGluZSBfX20xMjhpIF9fYXR0 cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywg X19hcnRpZmljaWFsX18pKQorX21tX2NvbWxlX2VwaTE2KF9fbTEyOGkgX19B LCBfX20xMjhpIF9fQikKK3sKKyAgcmV0dXJuIChfX20xMjhpKSBfX2J1aWx0 aW5faWEzMl92cGNvbWxldyAoKF9fdjhoaSlfX0EsIChfX3Y4aGkpX19CKTsK K30KKworZXh0ZXJuIF9faW5saW5lIF9fbTEyOGkgX19hdHRyaWJ1dGVfXygo X19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNp YWxfXykpCitfbW1fY29tZ3RfZXBpMTYoX19tMTI4aSBfX0EsIF9fbTEyOGkg X19CKQoreworICByZXR1cm4gKF9fbTEyOGkpIF9fYnVpbHRpbl9pYTMyX3Zw Y29tZ3R3ICgoX192OGhpKV9fQSwgKF9fdjhoaSlfX0IpOworfQorCitleHRl cm4gX19pbmxpbmUgX19tMTI4aSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxp bmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKK19t bV9jb21nZV9lcGkxNihfX20xMjhpIF9fQSwgX19tMTI4aSBfX0IpCit7Cisg IHJldHVybiAoX19tMTI4aSkgX19idWlsdGluX2lhMzJfdnBjb21nZXcgKChf X3Y4aGkpX19BLCAoX192OGhpKV9fQik7Cit9CisKK2V4dGVybiBfX2lubGlu ZSBfX20xMjhpIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fs d2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQorX21tX2NvbWVxX2Vw aTE2KF9fbTEyOGkgX19BLCBfX20xMjhpIF9fQikKK3sKKyAgcmV0dXJuIChf X20xMjhpKSBfX2J1aWx0aW5faWEzMl92cGNvbWVxdyAoKF9fdjhoaSlfX0Es IChfX3Y4aGkpX19CKTsKK30KKworZXh0ZXJuIF9faW5saW5lIF9fbTEyOGkg X19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGlu ZV9fLCBfX2FydGlmaWNpYWxfXykpCitfbW1fY29tbmVxX2VwaTE2KF9fbTEy OGkgX19BLCBfX20xMjhpIF9fQikKK3sKKyAgcmV0dXJuIChfX20xMjhpKSBf X2J1aWx0aW5faWEzMl92cGNvbW5lcXcgKChfX3Y4aGkpX19BLCAoX192OGhp KV9fQik7Cit9CisKK2V4dGVybiBfX2lubGluZSBfX20xMjhpIF9fYXR0cmli dXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19h cnRpZmljaWFsX18pKQorX21tX2NvbWZhbHNlX2VwaTE2KF9fbTEyOGkgX19B LCBfX20xMjhpIF9fQikKK3sKKyAgcmV0dXJuIChfX20xMjhpKSBfX2J1aWx0 aW5faWEzMl92cGNvbWZhbHNldyAoKF9fdjhoaSlfX0EsIChfX3Y4aGkpX19C KTsKK30KKworZXh0ZXJuIF9faW5saW5lIF9fbTEyOGkgX19hdHRyaWJ1dGVf XygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlm aWNpYWxfXykpCitfbW1fY29tdHJ1ZV9lcGkxNihfX20xMjhpIF9fQSwgX19t MTI4aSBfX0IpCit7CisgIHJldHVybiAoX19tMTI4aSkgX19idWlsdGluX2lh MzJfdnBjb210cnVldyAoKF9fdjhoaSlfX0EsIChfX3Y4aGkpX19CKTsKK30K KworLypwY29tIChpbnRlZ2VyLCBzaWduZWQgZG91YmxlIHdvcmRzKSAqLwor CitleHRlcm4gX19pbmxpbmUgX19tMTI4aSBfX2F0dHJpYnV0ZV9fKChfX2du dV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9f KSkKK19tbV9jb21sdF9lcGkzMihfX20xMjhpIF9fQSwgX19tMTI4aSBfX0Ip Cit7CisgIHJldHVybiAoX19tMTI4aSkgX19idWlsdGluX2lhMzJfdnBjb21s dGQgKChfX3Y0c2kpX19BLCAoX192NHNpKV9fQik7Cit9CisKK2V4dGVybiBf X2lubGluZSBfX20xMjhpIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9f LCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQorX21tX2Nv bWxlX2VwaTMyKF9fbTEyOGkgX19BLCBfX20xMjhpIF9fQikKK3sKKyAgcmV0 dXJuIChfX20xMjhpKSBfX2J1aWx0aW5faWEzMl92cGNvbWxlZCAoKF9fdjRz aSlfX0EsIChfX3Y0c2kpX19CKTsKK30KKworZXh0ZXJuIF9faW5saW5lIF9f bTEyOGkgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlz X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCitfbW1fY29tZ3RfZXBpMzIo X19tMTI4aSBfX0EsIF9fbTEyOGkgX19CKQoreworICByZXR1cm4gKF9fbTEy OGkpIF9fYnVpbHRpbl9pYTMyX3ZwY29tZ3RkICgoX192NHNpKV9fQSwgKF9f djRzaSlfX0IpOworfQorCitleHRlcm4gX19pbmxpbmUgX19tMTI4aSBfX2F0 dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18s IF9fYXJ0aWZpY2lhbF9fKSkKK19tbV9jb21nZV9lcGkzMihfX20xMjhpIF9f QSwgX19tMTI4aSBfX0IpCit7CisgIHJldHVybiAoX19tMTI4aSkgX19idWls dGluX2lhMzJfdnBjb21nZWQgKChfX3Y0c2kpX19BLCAoX192NHNpKV9fQik7 Cit9CisKK2V4dGVybiBfX2lubGluZSBfX20xMjhpIF9fYXR0cmlidXRlX18o KF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmlj aWFsX18pKQorX21tX2NvbWVxX2VwaTMyKF9fbTEyOGkgX19BLCBfX20xMjhp IF9fQikKK3sKKyAgcmV0dXJuIChfX20xMjhpKSBfX2J1aWx0aW5faWEzMl92 cGNvbWVxZCAoKF9fdjRzaSlfX0EsIChfX3Y0c2kpX19CKTsKK30KKworZXh0 ZXJuIF9faW5saW5lIF9fbTEyOGkgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5s aW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCitf bW1fY29tbmVxX2VwaTMyKF9fbTEyOGkgX19BLCBfX20xMjhpIF9fQikKK3sK KyAgcmV0dXJuIChfX20xMjhpKSBfX2J1aWx0aW5faWEzMl92cGNvbW5lcWQg KChfX3Y0c2kpX19BLCAoX192NHNpKV9fQik7Cit9CisKK2V4dGVybiBfX2lu bGluZSBfX20xMjhpIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBf X2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQorX21tX2NvbWZh bHNlX2VwaTMyKF9fbTEyOGkgX19BLCBfX20xMjhpIF9fQikKK3sKKyAgcmV0 dXJuIChfX20xMjhpKSBfX2J1aWx0aW5faWEzMl92cGNvbWZhbHNlZCAoKF9f djRzaSlfX0EsIChfX3Y0c2kpX19CKTsKK30KKworZXh0ZXJuIF9faW5saW5l IF9fbTEyOGkgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3 YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCitfbW1fY29tdHJ1ZV9l cGkzMihfX20xMjhpIF9fQSwgX19tMTI4aSBfX0IpCit7CisgIHJldHVybiAo X19tMTI4aSkgX19idWlsdGluX2lhMzJfdnBjb210cnVlZCAoKF9fdjRzaSlf X0EsIChfX3Y0c2kpX19CKTsKK30KKworLypwY29tIChpbnRlZ2VyLCBzaWdu ZWQgcXVhZCB3b3JkcykgKi8KKworZXh0ZXJuIF9faW5saW5lIF9fbTEyOGkg X19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGlu ZV9fLCBfX2FydGlmaWNpYWxfXykpCitfbW1fY29tbHRfZXBpNjQoX19tMTI4 aSBfX0EsIF9fbTEyOGkgX19CKQoreworICByZXR1cm4gKF9fbTEyOGkpIF9f YnVpbHRpbl9pYTMyX3ZwY29tbHRxICgoX192MmRpKV9fQSwgKF9fdjJkaSlf X0IpOworfQorCitleHRlcm4gX19pbmxpbmUgX19tMTI4aSBfX2F0dHJpYnV0 ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0 aWZpY2lhbF9fKSkKK19tbV9jb21sZV9lcGk2NChfX20xMjhpIF9fQSwgX19t MTI4aSBfX0IpCit7CisgIHJldHVybiAoX19tMTI4aSkgX19idWlsdGluX2lh MzJfdnBjb21sZXEgKChfX3YyZGkpX19BLCAoX192MmRpKV9fQik7Cit9CisK K2V4dGVybiBfX2lubGluZSBfX20xMjhpIF9fYXR0cmlidXRlX18oKF9fZ251 X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18p KQorX21tX2NvbWd0X2VwaTY0KF9fbTEyOGkgX19BLCBfX20xMjhpIF9fQikK K3sKKyAgcmV0dXJuIChfX20xMjhpKSBfX2J1aWx0aW5faWEzMl92cGNvbWd0 cSAoKF9fdjJkaSlfX0EsIChfX3YyZGkpX19CKTsKK30KKworZXh0ZXJuIF9f aW5saW5lIF9fbTEyOGkgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18s IF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCitfbW1fY29t Z2VfZXBpNjQoX19tMTI4aSBfX0EsIF9fbTEyOGkgX19CKQoreworICByZXR1 cm4gKF9fbTEyOGkpIF9fYnVpbHRpbl9pYTMyX3ZwY29tZ2VxICgoX192MmRp KV9fQSwgKF9fdjJkaSlfX0IpOworfQorCitleHRlcm4gX19pbmxpbmUgX19t MTI4aSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNf aW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKK19tbV9jb21lcV9lcGk2NChf X20xMjhpIF9fQSwgX19tMTI4aSBfX0IpCit7CisgIHJldHVybiAoX19tMTI4 aSkgX19idWlsdGluX2lhMzJfdnBjb21lcXEgKChfX3YyZGkpX19BLCAoX192 MmRpKV9fQik7Cit9CisKK2V4dGVybiBfX2lubGluZSBfX20xMjhpIF9fYXR0 cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywg X19hcnRpZmljaWFsX18pKQorX21tX2NvbW5lcV9lcGk2NChfX20xMjhpIF9f QSwgX19tMTI4aSBfX0IpCit7CisgIHJldHVybiAoX19tMTI4aSkgX19idWls dGluX2lhMzJfdnBjb21uZXFxICgoX192MmRpKV9fQSwgKF9fdjJkaSlfX0Ip OworfQorCitleHRlcm4gX19pbmxpbmUgX19tMTI4aSBfX2F0dHJpYnV0ZV9f KChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZp Y2lhbF9fKSkKK19tbV9jb21mYWxzZV9lcGk2NChfX20xMjhpIF9fQSwgX19t MTI4aSBfX0IpCit7CisgIHJldHVybiAoX19tMTI4aSkgX19idWlsdGluX2lh MzJfdnBjb21mYWxzZXEgKChfX3YyZGkpX19BLCAoX192MmRpKV9fQik7Cit9 CisKK2V4dGVybiBfX2lubGluZSBfX20xMjhpIF9fYXR0cmlidXRlX18oKF9f Z251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFs X18pKQorX21tX2NvbXRydWVfZXBpNjQoX19tMTI4aSBfX0EsIF9fbTEyOGkg X19CKQoreworICByZXR1cm4gKF9fbTEyOGkpIF9fYnVpbHRpbl9pYTMyX3Zw Y29tdHJ1ZXEgKChfX3YyZGkpX19BLCAoX192MmRpKV9fQik7Cit9CisKKy8q IEZSQ1ogKi8KKworZXh0ZXJuIF9faW5saW5lIF9fbTEyOCBfX2F0dHJpYnV0 ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0 aWZpY2lhbF9fKSkKK19tbV9mcmN6X3BzIChfX20xMjggX19BKQoreworICBy ZXR1cm4gKF9fbTEyOCkgX19idWlsdGluX2lhMzJfdmZyY3pwcyAoKF9fdjRz ZilfX0EpOworfQorCitleHRlcm4gX19pbmxpbmUgX19tMTI4ZCBfX2F0dHJp YnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9f YXJ0aWZpY2lhbF9fKSkKK19tbV9mcmN6X3BkIChfX20xMjhkIF9fQSkKK3sK KyAgcmV0dXJuIChfX20xMjhkKSBfX2J1aWx0aW5faWEzMl92ZnJjenBkICgo X192MmRmKV9fQSk7Cit9CisKK2V4dGVybiBfX2lubGluZSBfX20xMjggX19h dHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9f LCBfX2FydGlmaWNpYWxfXykpCitfbW1fZnJjel9zcyAoX19tMTI4IF9fQSwg X19tMTI4IF9fQikKK3sKKyAgcmV0dXJuIChfX20xMjgpIF9fYnVpbHRpbl9p YTMyX3ZmcmN6c3MgKChfX3Y0c2YpX19BLCAoX192NHNmKV9fQik7Cit9CisK K2V4dGVybiBfX2lubGluZSBfX20xMjhkIF9fYXR0cmlidXRlX18oKF9fZ251 X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18p KQorX21tX2ZyY3pfc2QgKF9fbTEyOGQgX19BLCBfX20xMjhkIF9fQikKK3sK KyAgcmV0dXJuIChfX20xMjhkKSBfX2J1aWx0aW5faWEzMl92ZnJjenNkICgo X192MmRmKV9fQSwgKF9fdjJkZilfX0IpOworfQorCitleHRlcm4gX19pbmxp bmUgX19tMjU2IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fs d2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQorX21tMjU2X2ZyY3pf cHMgKF9fbTI1NiBfX0EpCit7CisgIHJldHVybiAoX19tMjU2KSBfX2J1aWx0 aW5faWEzMl92ZnJjenBzMjU2ICgoX192OHNmKV9fQSk7Cit9CisKK2V4dGVy biBfX2lubGluZSBfX20yNTZkIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGlu ZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQorX21t MjU2X2ZyY3pfcGQgKF9fbTI1NmQgX19BKQoreworICByZXR1cm4gKF9fbTI1 NmQpIF9fYnVpbHRpbl9pYTMyX3ZmcmN6cGQyNTYgKChfX3Y0ZGYpX19BKTsK K30KKworI2VuZGlmIC8qIF9fWE9QX18gKi8KKworI2VuZGlmIC8qIF9YT1BN TUlOVFJJTl9IX0lOQ0xVREVEICovCmRpZmYgLXB1ck53IGdjYy9nY2MvY29u ZmlnLmdjYyB4b3AvZ2NjL2NvbmZpZy5nY2MKLS0tIGdjYy9nY2MvY29uZmln LmdjYwkyMDA5LTEwLTIwIDEzOjU2OjU4LjAwMDAwMDAwMCAtMDUwMAorKysg eG9wL2djYy9jb25maWcuZ2NjCTIwMDktMTAtMjAgMTQ6MDY6MDIuMDAwMDAw MDAwIC0wNTAwCkBAIC0yODcsNyArMjg3LDcgQEAgaVszNDU2N104Ni0qLSop CiAJZXh0cmFfaGVhZGVycz0iY3B1aWQuaCBtbWludHJpbi5oIG1tM2Rub3cu aCB4bW1pbnRyaW4uaCBlbW1pbnRyaW4uaAogCQkgICAgICAgcG1taW50cmlu LmggdG1taW50cmluLmggYW1taW50cmluLmggc21taW50cmluLmgKIAkJICAg ICAgIG5tbWludHJpbi5oIGJtbWludHJpbi5oIGZtYTRpbnRyaW4uaCB3bW1p bnRyaW4uaAotCQkgICAgICAgaW1taW50cmluLmggeDg2aW50cmluLmggYXZ4 aW50cmluLmggCisJCSAgICAgICBpbW1pbnRyaW4uaCB4ODZpbnRyaW4uaCBh dnhpbnRyaW4uaCB4b3BpbnRyaW4uaAogCQkgICAgICAgaWEzMmludHJpbi5o IGNyb3NzLXN0ZGFyZy5oIgogCTs7CiB4ODZfNjQtKi0qKQpAQCAtMjk3LDcg KzI5Nyw3IEBAIHg4Nl82NC0qLSopCiAJZXh0cmFfaGVhZGVycz0iY3B1aWQu aCBtbWludHJpbi5oIG1tM2Rub3cuaCB4bW1pbnRyaW4uaCBlbW1pbnRyaW4u aAogCQkgICAgICAgcG1taW50cmluLmggdG1taW50cmluLmggYW1taW50cmlu Lmggc21taW50cmluLmgKIAkJICAgICAgIG5tbWludHJpbi5oIGJtbWludHJp bi5oIGZtYTRpbnRyaW4uaCB3bW1pbnRyaW4uaAotCQkgICAgICAgaW1taW50 cmluLmggeDg2aW50cmluLmggYXZ4aW50cmluLmggCisJCSAgICAgICBpbW1p bnRyaW4uaCB4ODZpbnRyaW4uaCBhdnhpbnRyaW4uaCB4b3BpbnRyaW4uaCAK IAkJICAgICAgIGlhMzJpbnRyaW4uaCBjcm9zcy1zdGRhcmcuaCIKIAluZWVk XzY0Yml0X2h3aW50PXllcwogCTs7CmRpZmYgLXB1ck53IGdjYy9nY2MvZG9j L2V4dGVuZC50ZXhpIHhvcC9nY2MvZG9jL2V4dGVuZC50ZXhpCi0tLSBnY2Mv Z2NjL2RvYy9leHRlbmQudGV4aQkyMDA5LTEwLTIwIDEzOjU1OjQzLjAwMDAw MDAwMCAtMDUwMAorKysgeG9wL2djYy9kb2MvZXh0ZW5kLnRleGkJMjAwOS0x MC0yMCAxNDowNjowMi4wMDAwMDAwMDAgLTA1MDAKQEAgLTMxODEsNiArMzE4 MSwxMSBAQCBFbmFibGUvZGlzYWJsZSB0aGUgZ2VuZXJhdGlvbiBvZiB0aGUg U1NFCiBAY2luZGV4IEBjb2Rle3RhcmdldCgiZm1hNCIpfSBhdHRyaWJ1dGUK IEVuYWJsZS9kaXNhYmxlIHRoZSBnZW5lcmF0aW9uIG9mIHRoZSBGTUE0IGlu c3RydWN0aW9ucy4KIAorQGl0ZW0geG9wCitAaXRlbXggbm8teG9wCitAY2lu ZGV4IEBjb2Rle3RhcmdldCgieG9wIil9IGF0dHJpYnV0ZQorRW5hYmxlL2Rp c2FibGUgdGhlIGdlbmVyYXRpb24gb2YgdGhlIFhPUCBpbnN0cnVjdGlvbnMu CisKIEBpdGVtIHNzc2UzCiBAaXRlbXggbm8tc3NzZTMKIEBjaW5kZXggQGNv ZGV7dGFyZ2V0KCJzc3NlMyIpfSBhdHRyaWJ1dGUKQEAgLTg5MDEsNiArODkw NiwxMzQgQEAgdjJkaSBfX2J1aWx0aW5faWEzMl9pbnNlcnRxICh2MmRpLCB2 MmRpKQogdjJkaSBfX2J1aWx0aW5faWEzMl9pbnNlcnRxaSAodjJkaSwgdjJk aSwgY29uc3QgdW5zaWduZWQgaW50LCBjb25zdCB1bnNpZ25lZCBpbnQpCiBA ZW5kIHNtYWxsZXhhbXBsZQogCitUaGUgZm9sbG93aW5nIGJ1aWx0LWluIGZ1 bmN0aW9ucyBhcmUgYXZhaWxhYmxlIHdoZW4gQG9wdGlvbnstbXhvcH0gaXMg dXNlZC4KK0BzbWFsbGV4YW1wbGUKK3YyZGYgX19idWlsdGluX2lhMzJfdmZy Y3pwZCAodjJkZikKK3Y0c2YgX19idWlsdGluX2lhMzJfdmZyY3pwcyAodjRz ZikKK3YyZGYgX19idWlsdGluX2lhMzJfdmZyY3pzZCAodjJkZiwgdjJkZikK K3Y0c2YgX19idWlsdGluX2lhMzJfdmZyY3pzcyAodjRzZiwgdjRzZikKK3Y0 ZGYgX19idWlsdGluX2lhMzJfdmZyY3pwZDI1NiAodjRkZikKK3Y4c2YgX19i dWlsdGluX2lhMzJfdmZyY3pwczI1NiAodjhzZikKK3YyZGkgX19idWlsdGlu X2lhMzJfdnBjbW92ICh2MmRpLCB2MmRpLCB2MmRpKQordjJkaSBfX2J1aWx0 aW5faWEzMl92cGNtb3ZfdjJkaSAodjJkaSwgdjJkaSwgdjJkaSkKK3Y0c2kg X19idWlsdGluX2lhMzJfdnBjbW92X3Y0c2kgKHY0c2ksIHY0c2ksIHY0c2kp Cit2OGhpIF9fYnVpbHRpbl9pYTMyX3ZwY21vdl92OGhpICh2OGhpLCB2OGhp LCB2OGhpKQordjE2cWkgX19idWlsdGluX2lhMzJfdnBjbW92X3YxNnFpICh2 MTZxaSwgdjE2cWksIHYxNnFpKQordjJkZiBfX2J1aWx0aW5faWEzMl92cGNt b3ZfdjJkZiAodjJkZiwgdjJkZiwgdjJkZikKK3Y0c2YgX19idWlsdGluX2lh MzJfdnBjbW92X3Y0c2YgKHY0c2YsIHY0c2YsIHY0c2YpCit2NGRpIF9fYnVp bHRpbl9pYTMyX3ZwY21vdl92NGRpMjU2ICh2NGRpLCB2NGRpLCB2NGRpKQor djhzaSBfX2J1aWx0aW5faWEzMl92cGNtb3ZfdjhzaTI1NiAodjhzaSwgdjhz aSwgdjhzaSkKK3YxNmhpIF9fYnVpbHRpbl9pYTMyX3ZwY21vdl92MTZoaTI1 NiAodjE2aGksIHYxNmhpLCB2MTZoaSkKK3YzMnFpIF9fYnVpbHRpbl9pYTMy X3ZwY21vdl92MzJxaTI1NiAodjMycWksIHYzMnFpLCB2MzJxaSkKK3Y0ZGYg X19idWlsdGluX2lhMzJfdnBjbW92X3Y0ZGYyNTYgKHY0ZGYsIHY0ZGYsIHY0 ZGYpCit2OHNmIF9fYnVpbHRpbl9pYTMyX3ZwY21vdl92OHNmMjU2ICh2OHNm LCB2OHNmLCB2OHNmKQordjE2cWkgX19idWlsdGluX2lhMzJfdnBjb21lcWIg KHYxNnFpLCB2MTZxaSkKK3Y4aGkgX19idWlsdGluX2lhMzJfdnBjb21lcXcg KHY4aGksIHY4aGkpCit2NHNpIF9fYnVpbHRpbl9pYTMyX3ZwY29tZXFkICh2 NHNpLCB2NHNpKQordjJkaSBfX2J1aWx0aW5faWEzMl92cGNvbWVxcSAodjJk aSwgdjJkaSkKK3YxNnFpIF9fYnVpbHRpbl9pYTMyX3ZwY29tZXF1YiAodjE2 cWksIHYxNnFpKQordjRzaSBfX2J1aWx0aW5faWEzMl92cGNvbWVxdWQgKHY0 c2ksIHY0c2kpCit2MmRpIF9fYnVpbHRpbl9pYTMyX3ZwY29tZXF1cSAodjJk aSwgdjJkaSkKK3Y4aGkgX19idWlsdGluX2lhMzJfdnBjb21lcXV3ICh2OGhp LCB2OGhpKQordjhoaSBfX2J1aWx0aW5faWEzMl92cGNvbWVxdyAodjhoaSwg djhoaSkKK3YxNnFpIF9fYnVpbHRpbl9pYTMyX3ZwY29tZmFsc2ViICh2MTZx aSwgdjE2cWkpCit2NHNpIF9fYnVpbHRpbl9pYTMyX3ZwY29tZmFsc2VkICh2 NHNpLCB2NHNpKQordjJkaSBfX2J1aWx0aW5faWEzMl92cGNvbWZhbHNlcSAo djJkaSwgdjJkaSkKK3YxNnFpIF9fYnVpbHRpbl9pYTMyX3ZwY29tZmFsc2V1 YiAodjE2cWksIHYxNnFpKQordjRzaSBfX2J1aWx0aW5faWEzMl92cGNvbWZh bHNldWQgKHY0c2ksIHY0c2kpCit2MmRpIF9fYnVpbHRpbl9pYTMyX3ZwY29t ZmFsc2V1cSAodjJkaSwgdjJkaSkKK3Y4aGkgX19idWlsdGluX2lhMzJfdnBj b21mYWxzZXV3ICh2OGhpLCB2OGhpKQordjhoaSBfX2J1aWx0aW5faWEzMl92 cGNvbWZhbHNldyAodjhoaSwgdjhoaSkKK3YxNnFpIF9fYnVpbHRpbl9pYTMy X3ZwY29tZ2ViICh2MTZxaSwgdjE2cWkpCit2NHNpIF9fYnVpbHRpbl9pYTMy X3ZwY29tZ2VkICh2NHNpLCB2NHNpKQordjJkaSBfX2J1aWx0aW5faWEzMl92 cGNvbWdlcSAodjJkaSwgdjJkaSkKK3YxNnFpIF9fYnVpbHRpbl9pYTMyX3Zw Y29tZ2V1YiAodjE2cWksIHYxNnFpKQordjRzaSBfX2J1aWx0aW5faWEzMl92 cGNvbWdldWQgKHY0c2ksIHY0c2kpCit2MmRpIF9fYnVpbHRpbl9pYTMyX3Zw Y29tZ2V1cSAodjJkaSwgdjJkaSkKK3Y4aGkgX19idWlsdGluX2lhMzJfdnBj b21nZXV3ICh2OGhpLCB2OGhpKQordjhoaSBfX2J1aWx0aW5faWEzMl92cGNv bWdldyAodjhoaSwgdjhoaSkKK3YxNnFpIF9fYnVpbHRpbl9pYTMyX3ZwY29t Z3RiICh2MTZxaSwgdjE2cWkpCit2NHNpIF9fYnVpbHRpbl9pYTMyX3ZwY29t Z3RkICh2NHNpLCB2NHNpKQordjJkaSBfX2J1aWx0aW5faWEzMl92cGNvbWd0 cSAodjJkaSwgdjJkaSkKK3YxNnFpIF9fYnVpbHRpbl9pYTMyX3ZwY29tZ3R1 YiAodjE2cWksIHYxNnFpKQordjRzaSBfX2J1aWx0aW5faWEzMl92cGNvbWd0 dWQgKHY0c2ksIHY0c2kpCit2MmRpIF9fYnVpbHRpbl9pYTMyX3ZwY29tZ3R1 cSAodjJkaSwgdjJkaSkKK3Y4aGkgX19idWlsdGluX2lhMzJfdnBjb21ndHV3 ICh2OGhpLCB2OGhpKQordjhoaSBfX2J1aWx0aW5faWEzMl92cGNvbWd0dyAo djhoaSwgdjhoaSkKK3YxNnFpIF9fYnVpbHRpbl9pYTMyX3ZwY29tbGViICh2 MTZxaSwgdjE2cWkpCit2NHNpIF9fYnVpbHRpbl9pYTMyX3ZwY29tbGVkICh2 NHNpLCB2NHNpKQordjJkaSBfX2J1aWx0aW5faWEzMl92cGNvbWxlcSAodjJk aSwgdjJkaSkKK3YxNnFpIF9fYnVpbHRpbl9pYTMyX3ZwY29tbGV1YiAodjE2 cWksIHYxNnFpKQordjRzaSBfX2J1aWx0aW5faWEzMl92cGNvbWxldWQgKHY0 c2ksIHY0c2kpCit2MmRpIF9fYnVpbHRpbl9pYTMyX3ZwY29tbGV1cSAodjJk aSwgdjJkaSkKK3Y4aGkgX19idWlsdGluX2lhMzJfdnBjb21sZXV3ICh2OGhp LCB2OGhpKQordjhoaSBfX2J1aWx0aW5faWEzMl92cGNvbWxldyAodjhoaSwg djhoaSkKK3YxNnFpIF9fYnVpbHRpbl9pYTMyX3ZwY29tbHRiICh2MTZxaSwg djE2cWkpCit2NHNpIF9fYnVpbHRpbl9pYTMyX3ZwY29tbHRkICh2NHNpLCB2 NHNpKQordjJkaSBfX2J1aWx0aW5faWEzMl92cGNvbWx0cSAodjJkaSwgdjJk aSkKK3YxNnFpIF9fYnVpbHRpbl9pYTMyX3ZwY29tbHR1YiAodjE2cWksIHYx NnFpKQordjRzaSBfX2J1aWx0aW5faWEzMl92cGNvbWx0dWQgKHY0c2ksIHY0 c2kpCit2MmRpIF9fYnVpbHRpbl9pYTMyX3ZwY29tbHR1cSAodjJkaSwgdjJk aSkKK3Y4aGkgX19idWlsdGluX2lhMzJfdnBjb21sdHV3ICh2OGhpLCB2OGhp KQordjhoaSBfX2J1aWx0aW5faWEzMl92cGNvbWx0dyAodjhoaSwgdjhoaSkK K3YxNnFpIF9fYnVpbHRpbl9pYTMyX3ZwY29tbmViICh2MTZxaSwgdjE2cWkp Cit2NHNpIF9fYnVpbHRpbl9pYTMyX3ZwY29tbmVkICh2NHNpLCB2NHNpKQor djJkaSBfX2J1aWx0aW5faWEzMl92cGNvbW5lcSAodjJkaSwgdjJkaSkKK3Yx NnFpIF9fYnVpbHRpbl9pYTMyX3ZwY29tbmV1YiAodjE2cWksIHYxNnFpKQor djRzaSBfX2J1aWx0aW5faWEzMl92cGNvbW5ldWQgKHY0c2ksIHY0c2kpCit2 MmRpIF9fYnVpbHRpbl9pYTMyX3ZwY29tbmV1cSAodjJkaSwgdjJkaSkKK3Y4 aGkgX19idWlsdGluX2lhMzJfdnBjb21uZXV3ICh2OGhpLCB2OGhpKQordjho aSBfX2J1aWx0aW5faWEzMl92cGNvbW5ldyAodjhoaSwgdjhoaSkKK3YxNnFp IF9fYnVpbHRpbl9pYTMyX3ZwY29tdHJ1ZWIgKHYxNnFpLCB2MTZxaSkKK3Y0 c2kgX19idWlsdGluX2lhMzJfdnBjb210cnVlZCAodjRzaSwgdjRzaSkKK3Yy ZGkgX19idWlsdGluX2lhMzJfdnBjb210cnVlcSAodjJkaSwgdjJkaSkKK3Yx NnFpIF9fYnVpbHRpbl9pYTMyX3ZwY29tdHJ1ZXViICh2MTZxaSwgdjE2cWkp Cit2NHNpIF9fYnVpbHRpbl9pYTMyX3ZwY29tdHJ1ZXVkICh2NHNpLCB2NHNp KQordjJkaSBfX2J1aWx0aW5faWEzMl92cGNvbXRydWV1cSAodjJkaSwgdjJk aSkKK3Y4aGkgX19idWlsdGluX2lhMzJfdnBjb210cnVldXcgKHY4aGksIHY4 aGkpCit2OGhpIF9fYnVpbHRpbl9pYTMyX3ZwY29tdHJ1ZXcgKHY4aGksIHY4 aGkpCit2NHNpIF9fYnVpbHRpbl9pYTMyX3ZwaGFkZGJkICh2MTZxaSkKK3Yy ZGkgX19idWlsdGluX2lhMzJfdnBoYWRkYnEgKHYxNnFpKQordjhoaSBfX2J1 aWx0aW5faWEzMl92cGhhZGRidyAodjE2cWkpCit2MmRpIF9fYnVpbHRpbl9p YTMyX3ZwaGFkZGRxICh2NHNpKQordjRzaSBfX2J1aWx0aW5faWEzMl92cGhh ZGR1YmQgKHYxNnFpKQordjJkaSBfX2J1aWx0aW5faWEzMl92cGhhZGR1YnEg KHYxNnFpKQordjhoaSBfX2J1aWx0aW5faWEzMl92cGhhZGR1YncgKHYxNnFp KQordjJkaSBfX2J1aWx0aW5faWEzMl92cGhhZGR1ZHEgKHY0c2kpCit2NHNp IF9fYnVpbHRpbl9pYTMyX3ZwaGFkZHV3ZCAodjhoaSkKK3YyZGkgX19idWls dGluX2lhMzJfdnBoYWRkdXdxICh2OGhpKQordjRzaSBfX2J1aWx0aW5faWEz Ml92cGhhZGR3ZCAodjhoaSkKK3YyZGkgX19idWlsdGluX2lhMzJfdnBoYWRk d3EgKHY4aGkpCit2OGhpIF9fYnVpbHRpbl9pYTMyX3ZwaHN1YmJ3ICh2MTZx aSkKK3YyZGkgX19idWlsdGluX2lhMzJfdnBoc3ViZHEgKHY0c2kpCit2NHNp IF9fYnVpbHRpbl9pYTMyX3ZwaHN1YndkICh2OGhpKQordjRzaSBfX2J1aWx0 aW5faWEzMl92cG1hY3NkZCAodjRzaSwgdjRzaSwgdjRzaSkKK3YyZGkgX19i dWlsdGluX2lhMzJfdnBtYWNzZHFoICh2NHNpLCB2NHNpLCB2MmRpKQordjJk aSBfX2J1aWx0aW5faWEzMl92cG1hY3NkcWwgKHY0c2ksIHY0c2ksIHYyZGkp Cit2NHNpIF9fYnVpbHRpbl9pYTMyX3ZwbWFjc3NkZCAodjRzaSwgdjRzaSwg djRzaSkKK3YyZGkgX19idWlsdGluX2lhMzJfdnBtYWNzc2RxaCAodjRzaSwg djRzaSwgdjJkaSkKK3YyZGkgX19idWlsdGluX2lhMzJfdnBtYWNzc2RxbCAo djRzaSwgdjRzaSwgdjJkaSkKK3Y0c2kgX19idWlsdGluX2lhMzJfdnBtYWNz c3dkICh2OGhpLCB2OGhpLCB2NHNpKQordjhoaSBfX2J1aWx0aW5faWEzMl92 cG1hY3Nzd3cgKHY4aGksIHY4aGksIHY4aGkpCit2NHNpIF9fYnVpbHRpbl9p YTMyX3ZwbWFjc3dkICh2OGhpLCB2OGhpLCB2NHNpKQordjhoaSBfX2J1aWx0 aW5faWEzMl92cG1hY3N3dyAodjhoaSwgdjhoaSwgdjhoaSkKK3Y0c2kgX19i dWlsdGluX2lhMzJfdnBtYWRjc3N3ZCAodjhoaSwgdjhoaSwgdjRzaSkKK3Y0 c2kgX19idWlsdGluX2lhMzJfdnBtYWRjc3dkICh2OGhpLCB2OGhpLCB2NHNp KQordjE2cWkgX19idWlsdGluX2lhMzJfdnBwZXJtICh2MTZxaSwgdjE2cWks IHYxNnFpKQordjE2cWkgX19idWlsdGluX2lhMzJfdnByb3RiICh2MTZxaSwg djE2cWkpCit2NHNpIF9fYnVpbHRpbl9pYTMyX3Zwcm90ZCAodjRzaSwgdjRz aSkKK3YyZGkgX19idWlsdGluX2lhMzJfdnByb3RxICh2MmRpLCB2MmRpKQor djhoaSBfX2J1aWx0aW5faWEzMl92cHJvdHcgKHY4aGksIHY4aGkpCit2MTZx aSBfX2J1aWx0aW5faWEzMl92cHNoYWIgKHYxNnFpLCB2MTZxaSkKK3Y0c2kg X19idWlsdGluX2lhMzJfdnBzaGFkICh2NHNpLCB2NHNpKQordjJkaSBfX2J1 aWx0aW5faWEzMl92cHNoYXEgKHYyZGksIHYyZGkpCit2OGhpIF9fYnVpbHRp bl9pYTMyX3Zwc2hhdyAodjhoaSwgdjhoaSkKK3YxNnFpIF9fYnVpbHRpbl9p YTMyX3Zwc2hsYiAodjE2cWksIHYxNnFpKQordjRzaSBfX2J1aWx0aW5faWEz Ml92cHNobGQgKHY0c2ksIHY0c2kpCit2MmRpIF9fYnVpbHRpbl9pYTMyX3Zw c2hscSAodjJkaSwgdjJkaSkKK3Y4aGkgX19idWlsdGluX2lhMzJfdnBzaGx3 ICh2OGhpLCB2OGhpKQorQGVuZCBzbWFsbGV4YW1wbGUKKwogVGhlIGZvbGxv d2luZyBidWlsdC1pbiBmdW5jdGlvbnMgYXJlIGF2YWlsYWJsZSB3aGVuIEBv cHRpb257LW1mbWE0fSBpcyB1c2VkLgogQWxsIG9mIHRoZW0gZ2VuZXJhdGUg dGhlIG1hY2hpbmUgaW5zdHJ1Y3Rpb24gdGhhdCBpcyBwYXJ0IG9mIHRoZSBu YW1lCiB3aXRoIE1NWCByZWdpc3RlcnMuCmRpZmYgLXB1ck53IGdjYy9nY2Mv ZG9jL2ludm9rZS50ZXhpIHhvcC9nY2MvZG9jL2ludm9rZS50ZXhpCi0tLSBn Y2MvZ2NjL2RvYy9pbnZva2UudGV4aQkyMDA5LTEwLTIwIDEzOjU1OjQzLjAw MDAwMDAwMCAtMDUwMAorKysgeG9wL2djYy9kb2MvaW52b2tlLnRleGkJMjAw OS0xMC0yMCAxNDowNjowMi4wMDAwMDAwMDAgLTA1MDAKQEAgLTU5NCw3ICs1 OTQsNyBAQCBPYmplY3RpdmUtQyBhbmQgT2JqZWN0aXZlLUMrKyBEaWFsZWN0 c30uCiAtbWNsZCAtbWN4MTYgLW1zYWhmIC1tbW92YmUgLW1jcmMzMiAtbXJl Y2lwIEBnb2wKIC1tbW14ICAtbXNzZSAgLW1zc2UyIC1tc3NlMyAtbXNzc2Uz IC1tc3NlNC4xIC1tc3NlNC4yIC1tc3NlNCAtbWF2eCBAZ29sCiAtbWFlcyAt bXBjbG11bCBAZ29sCi0tbXNzZTRhIC1tM2Rub3cgLW1wb3BjbnQgLW1hYm0g LW1mbWE0IEBnb2wKKy1tc3NlNGEgLW0zZG5vdyAtbXBvcGNudCAtbWFibSAt bWZtYTQgLW14b3AgQGdvbAogLW10aHJlYWRzICAtbW5vLWFsaWduLXN0cmlu Z29wcyAgLW1pbmxpbmUtYWxsLXN0cmluZ29wcyBAZ29sCiAtbWlubGluZS1z dHJpbmdvcHMtZHluYW1pY2FsbHkgLW1zdHJpbmdvcC1zdHJhdGVneT1AdmFy e2FsZ30gQGdvbAogLW1wdXNoLWFyZ3MgIC1tYWNjdW11bGF0ZS1vdXRnb2lu Zy1hcmdzICAtbTEyOGJpdC1sb25nLWRvdWJsZSBAZ29sCkBAIC0xMTk3Nyw2 ICsxMTk3Nyw4IEBAIHByZWZlcnJlZCBhbGlnbm1lbnQgdG8gQG9wdGlvbnst bXByZWZlcnIKIEBpdGVteCAtbW5vLXNzZTRhCiBAaXRlbXggLW1mbWE0CiBA aXRlbXggLW1uby1mbWE0CitAaXRlbXggLW14b3AKK0BpdGVteCAtbW5vLXhv cAogQGl0ZW14IC1tM2Rub3cKIEBpdGVteCAtbW5vLTNkbm93CiBAaXRlbXgg LW1wb3BjbnQKQEAgLTExOTkwLDggKzExOTkyLDggQEAgcHJlZmVycmVkIGFs aWdubWVudCB0byBAb3B0aW9uey1tcHJlZmVycgogQG9waW5kZXggbTNkbm93 CiBAb3BpbmRleCBtbm8tM2Rub3cKIFRoZXNlIHN3aXRjaGVzIGVuYWJsZSBv ciBkaXNhYmxlIHRoZSB1c2Ugb2YgaW5zdHJ1Y3Rpb25zIGluIHRoZSBNTVgs Ci1TU0UsIFNTRTIsIFNTRTMsIFNTU0UzLCBTU0U0LjEsIEFWWCwgQUVTLCBQ Q0xNVUwsIFNTRTRBLCBGTUE0LCBBQk0gb3IKLTNETm93IUA6IGV4dGVuZGVk IGluc3RydWN0aW9uIHNldHMuCitTU0UsIFNTRTIsIFNTRTMsIFNTU0UzLCBT U0U0LjEsIEFWWCwgQUVTLCBQQ0xNVUwsIFNTRTRBLCBGTUE0LCBYT1AsCitB Qk0gb3IgM0ROb3chQDogZXh0ZW5kZWQgaW5zdHJ1Y3Rpb24gc2V0cy4KIFRo ZXNlIGV4dGVuc2lvbnMgYXJlIGFsc28gYXZhaWxhYmxlIGFzIGJ1aWx0LWlu IGZ1bmN0aW9uczogc2VlCiBAcmVme1g4NiBCdWlsdC1pbiBGdW5jdGlvbnN9 LCBmb3IgZGV0YWlscyBvZiB0aGUgZnVuY3Rpb25zIGVuYWJsZWQgYW5kCiBk aXNhYmxlZCBieSB0aGVzZSBzd2l0Y2hlcy4KZGlmZiAtcHVyTncgZ2NjL2dj Yy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9pMzg2L2kzODYuZXhwIHhvcC9nY2Mv dGVzdHN1aXRlL2djYy50YXJnZXQvaTM4Ni9pMzg2LmV4cAotLS0gZ2NjL2dj Yy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9pMzg2L2kzODYuZXhwCTIwMDktMTAt MjAgMTM6NTY6MDIuMDAwMDAwMDAwIC0wNTAwCisrKyB4b3AvZ2NjL3Rlc3Rz dWl0ZS9nY2MudGFyZ2V0L2kzODYvaTM4Ni5leHAJMjAwOS0xMC0yMCAxNDow NjowMi4wMDAwMDAwMDAgLTA1MDAKQEAgLTE0Niw2ICsxNDYsMjAgQEAgcHJv YyBjaGVja19lZmZlY3RpdmVfdGFyZ2V0X2ZtYTQgeyB9IHsKICAgICB9ICIt TzIgLW1mbWE0IiBdCiB9CiAKKyMgUmV0dXJuIDEgaWYgeG9wIGluc3RydWN0 aW9ucyBjYW4gYmUgY29tcGlsZWQuCitwcm9jIGNoZWNrX2VmZmVjdGl2ZV90 YXJnZXRfeG9wIHsgfSB7CisgICAgcmV0dXJuIFtjaGVja19ub19jb21waWxl cl9tZXNzYWdlcyB4b3Agb2JqZWN0IHsKKwl0eXBlZGVmIGxvbmcgbG9uZyBf X20xMjhpIF9fYXR0cmlidXRlX18gKChfX3ZlY3Rvcl9zaXplX18gKDE2KSwg X19tYXlfYWxpYXNfXykpOworCXR5cGVkZWYgc2hvcnQgX192OGhpIF9fYXR0 cmlidXRlX18gKChfX3ZlY3Rvcl9zaXplX18gKDE2KSkpOworCV9fbTEyOGkg X21tX21hY2NzX2VwaTE2KF9fbTEyOGkgX19BLCBfX20xMjhpIF9fQiwgX19t MTI4aSBfX0MpCisJeworCSAgICByZXR1cm4gKF9fbTEyOGkpIF9fYnVpbHRp bl9pYTMyX3BtYWNzc3d3ICgoX192OGhpKV9fQSwKKwkJCQkJCSAgICAgIChf X3Y4aGkpX19CLAorCQkJCQkJICAgICAgKF9fdjhoaSlfX0MpOworCX0KKyAg ICB9ICItTzIgLW14b3AiIF0KK30KKwogIyBJZiBhIHRlc3RjYXNlIGRvZXNu J3QgaGF2ZSBzcGVjaWFsIG9wdGlvbnMsIHVzZSB0aGVzZS4KIGdsb2JhbCBE RUZBVUxUX0NGTEFHUwogaWYgIVtpbmZvIGV4aXN0cyBERUZBVUxUX0NGTEFH U10gdGhlbiB7CmRpZmYgLXB1ck53IGdjYy9nY2MvdGVzdHN1aXRlL2djYy50 YXJnZXQvaTM4Ni9zc2UtMTIuYyB4b3AvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFy Z2V0L2kzODYvc3NlLTEyLmMKLS0tIGdjYy9nY2MvdGVzdHN1aXRlL2djYy50 YXJnZXQvaTM4Ni9zc2UtMTIuYwkyMDA5LTEwLTIwIDEzOjU2OjAyLjAwMDAw MDAwMCAtMDUwMAorKysgeG9wL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9p Mzg2L3NzZS0xMi5jCTIwMDktMTAtMjEgMTI6MjE6MjUuMDAwMDAwMDAwIC0w NTAwCkBAIC0xLDcgKzEsNyBAQAotLyogVGVzdCB0aGF0IHsseCxlLHAsdCxz LHcsYSxiLGl9bW1pbnRyaW4uaCwgbW0zZG5vdy5oIGFuZCBtbV9tYWxsb2Mu aCBhcmUKKy8qIFRlc3QgdGhhdCB7LHgsZSxwLHQscyx3LGEsYixpfW1taW50 cmluLmgsIHhvcGludHJpbi5oLCBtbTNkbm93LmggYW5kIG1tX21hbGxvYy5o IGFyZQogICAgdXNhYmxlIHdpdGggLU8gLXN0ZD1jODkgLXBlZGFudGljLWVy cm9ycy4gICovCiAvKiB7IGRnLWRvIGNvbXBpbGUgfSAqLwotLyogeyBkZy1v cHRpb25zICItTyAtc3RkPWM4OSAtcGVkYW50aWMtZXJyb3JzIC1tYXJjaD1r OCAtbTNkbm93IC1tYXZ4IC1tZm1hNCAtbWFlcyAtbXBjbG11bCIgfSAqLwor LyogeyBkZy1vcHRpb25zICItTyAtc3RkPWM4OSAtcGVkYW50aWMtZXJyb3Jz IC1tYXJjaD1rOCAtbTNkbm93IC1tYXZ4IC1tZm1hNCAtbXhvcCAtbWFlcyAt bXBjbG11bCIgfSAqLwogCiAjaW5jbHVkZSA8eDg2aW50cmluLmg+CiAKZGlm ZiAtcHVyTncgZ2NjL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9pMzg2L3Nz ZS0xMy5jIHhvcC9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvaTM4Ni9zc2Ut MTMuYwotLS0gZ2NjL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9pMzg2L3Nz ZS0xMy5jCTIwMDktMTAtMjAgMTM6NTY6MDIuMDAwMDAwMDAwIC0wNTAwCisr KyB4b3AvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2kzODYvc3NlLTEzLmMJ MjAwOS0xMC0yMSAxMzoyNDowNy4wMDAwMDAwMDAgLTA1MDAKQEAgLTEsMTAg KzEsMTAgQEAKIC8qIHsgZGctZG8gY29tcGlsZSB9ICovCi0vKiB7IGRnLW9w dGlvbnMgIi1PMiAtV2Vycm9yLWltcGxpY2l0LWZ1bmN0aW9uLWRlY2xhcmF0 aW9uIC1tYXJjaD1rOCAtbTNkbm93IC1tYXZ4IC1tYWVzIC1tcGNsbXVsIiB9 ICovCisvKiB7IGRnLW9wdGlvbnMgIi1PMiAtV2Vycm9yLWltcGxpY2l0LWZ1 bmN0aW9uLWRlY2xhcmF0aW9uIC1tYXJjaD1rOCAtbTNkbm93IC1tYXZ4IC1t eG9wIC1tYWVzIC1tcGNsbXVsIiB9ICovCiAKICNpbmNsdWRlIDxtbV9tYWxs b2MuaD4KIAogLyogVGVzdCB0aGF0IHRoZSBpbnRyaW5zaWNzIGNvbXBpbGUg d2l0aCBvcHRpbWl6YXRpb24uICBBbGwgb2YgdGhlbSBhcmUKLSAgIGRlZmlu ZWQgYXMgaW5saW5lIGZ1bmN0aW9ucyBpbiB7LHgsZSxwLHQscyx3LGEsYixp fW1taW50cmluLmggYW5kIG1tM2Rub3cuaAorICAgZGVmaW5lZCBhcyBpbmxp bmUgZnVuY3Rpb25zIGluIHsseCxlLHAsdCxzLHcsYSxiLGl9bW1pbnRyaW4u aCwgeG9waW50cmluLmggYW5kIG1tM2Rub3cuaAogICAgdGhhdCByZWZlcmVu Y2UgdGhlIHByb3BlciBidWlsdGluIGZ1bmN0aW9ucy4gIERlZmluaW5nIGF3 YXkgImV4dGVybiIgYW5kCiAgICAiX19pbmxpbmUiIHJlc3VsdHMgaW4gYWxs IG9mIHRoZW0gYmVpbmcgY29tcGlsZWQgYXMgcHJvcGVyIGZ1bmN0aW9ucy4g ICovCiAKQEAgLTEyNSw0ICsxMjUsMTAgQEAKICNkZWZpbmUgX19idWlsdGlu X2lhMzJfdmVjX2V4dF92NGhpKEEsIE4pIF9fYnVpbHRpbl9pYTMyX3ZlY19l eHRfdjRoaShBLCAwKQogI2RlZmluZSBfX2J1aWx0aW5faWEzMl9zaHVmcHMo QSwgQiwgTikgX19idWlsdGluX2lhMzJfc2h1ZnBzKEEsIEIsIDApCiAKKy8q IHhvcGludHJpbi5oICovCisjZGVmaW5lICBfX2J1aWx0aW5faWEzMl92cHJv dGJpKEEsIE4pIF9fYnVpbHRpbl9pYTMyX3Zwcm90YmkgKEEsMSkKKyNkZWZp bmUgIF9fYnVpbHRpbl9pYTMyX3Zwcm90d2koQSwgTikgX19idWlsdGluX2lh MzJfdnByb3R3aSAoQSwxKQorI2RlZmluZSAgX19idWlsdGluX2lhMzJfdnBy b3RkaShBLCBOKSBfX2J1aWx0aW5faWEzMl92cHJvdGRpIChBLDEpCisjZGVm aW5lICBfX2J1aWx0aW5faWEzMl92cHJvdHFpKEEsIE4pIF9fYnVpbHRpbl9p YTMyX3Zwcm90cWkgKEEsMSkKKwogI2luY2x1ZGUgPHg4NmludHJpbi5oPgpk aWZmIC1wdXJOdyBnY2MvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2kzODYv c3NlLTE0LmMgeG9wL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9pMzg2L3Nz ZS0xNC5jCi0tLSBnY2MvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2kzODYv c3NlLTE0LmMJMjAwOS0xMC0yMCAxMzo1NjowMi4wMDAwMDAwMDAgLTA1MDAK KysrIHhvcC9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvaTM4Ni9zc2UtMTQu YwkyMDA5LTEwLTIxIDEzOjI0OjMyLjAwMDAwMDAwMCAtMDUwMApAQCAtMSwx MCArMSwxMCBAQAogLyogeyBkZy1kbyBjb21waWxlIH0gKi8KLS8qIHsgZGct b3B0aW9ucyAiLU8wIC1XZXJyb3ItaW1wbGljaXQtZnVuY3Rpb24tZGVjbGFy YXRpb24gLW1hcmNoPWs4IC1tM2Rub3cgLW1hdnggLW1zc2U0YSAtbWFlcyAt bXBjbG11bCIgfSAqLworLyogeyBkZy1vcHRpb25zICItTzAgLVdlcnJvci1p bXBsaWNpdC1mdW5jdGlvbi1kZWNsYXJhdGlvbiAtbWFyY2g9azggLW0zZG5v dyAtbWF2eCAtbXhvcCAtbXNzZTRhIC1tYWVzIC1tcGNsbXVsIiB9ICovCiAK ICNpbmNsdWRlIDxtbV9tYWxsb2MuaD4KIAogLyogVGVzdCB0aGF0IHRoZSBp bnRyaW5zaWNzIGNvbXBpbGUgd2l0aG91dCBvcHRpbWl6YXRpb24uICBBbGwg b2YgdGhlbSBhcmUKLSAgIGRlZmluZWQgYXMgaW5saW5lIGZ1bmN0aW9ucyBp biB7LHgsZSxwLHQscyx3LGF9bW1pbnRyaW4uaCAgYW5kIG1tM2Rub3cuaAor ICAgZGVmaW5lZCBhcyBpbmxpbmUgZnVuY3Rpb25zIGluIHsseCxlLHAsdCxz LHcsYX1tbWludHJpbi5oLCB4b3BpbnRyaW4uaCAgYW5kIG1tM2Rub3cuaAog ICAgdGhhdCByZWZlcmVuY2UgdGhlIHByb3BlciBidWlsdGluIGZ1bmN0aW9u cy4gIERlZmluaW5nIGF3YXkgImV4dGVybiIgYW5kCiAgICAiX19pbmxpbmUi IHJlc3VsdHMgaW4gYWxsIG9mIHRoZW0gYmVpbmcgY29tcGlsZWQgYXMgcHJv cGVyIGZ1bmN0aW9ucy4gICovCiAKQEAgLTE1NSwzICsxNTUsMTAgQEAgdGVz dF8yIChfbV9waW5zcncsIF9fbTY0LCBfX202NCwgaW50LCAxKQogdGVzdF8x IChfbW1fc2h1ZmZsZV9waTE2LCBfX202NCwgX19tNjQsIDEpCiB0ZXN0XzEg KF9tX3BzaHVmdywgX19tNjQsIF9fbTY0LCAxKQogdGVzdF8xIChfbW1fcHJl ZmV0Y2gsIHZvaWQsIHZvaWQgKiwgX01NX0hJTlRfTlRBKQorCisvKiB4b3Bp bnRyaW4uaCAqLwordGVzdF8xICggX21tX3JvdGlfZXBpOCwgX19tMTI4aSwg X19tMTI4aSwgMSkKK3Rlc3RfMSAoIF9tbV9yb3RpX2VwaTE2LCBfX20xMjhp LCBfX20xMjhpLCAxKQordGVzdF8xICggX21tX3JvdGlfZXBpMzIsIF9fbTEy OGksIF9fbTEyOGksIDEpCit0ZXN0XzEgKCBfbW1fcm90aV9lcGk2NCwgX19t MTI4aSwgX19tMTI4aSwgMSkKKwpkaWZmIC1wdXJOdyBnY2MvZ2NjL3Rlc3Rz dWl0ZS9nY2MudGFyZ2V0L2kzODYvc3NlLTIyLmMgeG9wL2djYy90ZXN0c3Vp dGUvZ2NjLnRhcmdldC9pMzg2L3NzZS0yMi5jCi0tLSBnY2MvZ2NjL3Rlc3Rz dWl0ZS9nY2MudGFyZ2V0L2kzODYvc3NlLTIyLmMJMjAwOS0xMC0yMCAxMzo1 NjowMi4wMDAwMDAwMDAgLTA1MDAKKysrIHhvcC9nY2MvdGVzdHN1aXRlL2dj Yy50YXJnZXQvaTM4Ni9zc2UtMjIuYwkyMDA5LTEwLTIxIDExOjAxOjEyLjAw MDAwMDAwMCAtMDUwMApAQCAtNSw3ICs1LDcgQEAKICNpbmNsdWRlIDxtbV9t YWxsb2MuaD4KIAogLyogVGVzdCB0aGF0IHRoZSBpbnRyaW5zaWNzIGNvbXBp bGUgd2l0aG91dCBvcHRpbWl6YXRpb24uICBBbGwgb2YgdGhlbSBhcmUKLSAg IGRlZmluZWQgYXMgaW5saW5lIGZ1bmN0aW9ucyBpbiB7LHgsZSxwLHQscyx3 LGF9bW1pbnRyaW4uaCAgYW5kIG1tM2Rub3cuaAorICAgZGVmaW5lZCBhcyBp bmxpbmUgZnVuY3Rpb25zIGluIHsseCxlLHAsdCxzLHcsYX1tbWludHJpbi5o LCB4b3BpbnRyaW4uaCBhbmQgbW0zZG5vdy5oCiAgICB0aGF0IHJlZmVyZW5j ZSB0aGUgcHJvcGVyIGJ1aWx0aW4gZnVuY3Rpb25zLiAgRGVmaW5pbmcgYXdh eSAiZXh0ZXJuIiBhbmQKICAgICJfX2lubGluZSIgcmVzdWx0cyBpbiBhbGwg b2YgdGhlbSBiZWluZyBjb21waWxlZCBhcyBwcm9wZXIgZnVuY3Rpb25zLiAg Ki8KIApAQCAtMzcsNyArMzcsNyBAQAogCiAKICNpZm5kZWYgRElGRkVSRU5U X1BSQUdNQVMKLSNwcmFnbWEgR0NDIHRhcmdldCAoIm1teCwzZG5vdyxzc2Us c3NlMixzc2UzLHNzc2UzLHNzZTQuMSxzc2U0LjIsc3NlNGEsYWVzLHBjbG11 bCIpCisjcHJhZ21hIEdDQyB0YXJnZXQgKCJtbXgsM2Rub3csc3NlLHNzZTIs c3NlMyxzc3NlMyxzc2U0LjEsc3NlNC4yLHNzZTRhLGFlcyxwY2xtdWwseG9w IikKICNlbmRpZgogCiAvKiBGb2xsb3dpbmcgaW50cmluc2ljcyByZXF1aXJl IGltbWVkaWF0ZSBhcmd1bWVudHMuICBUaGV5CkBAIC0xNTksMyArMTU5LDEz IEBAIHRlc3RfMSAoX21tX3JvdW5kX3BkLCBfX20xMjhkLCBfX20xMjhkLAog dGVzdF8xIChfbW1fcm91bmRfcHMsIF9fbTEyOCwgX19tMTI4LCAxKQogdGVz dF8yIChfbW1fcm91bmRfc2QsIF9fbTEyOGQsIF9fbTEyOGQsIF9fbTEyOGQs IDEpCiB0ZXN0XzIgKF9tbV9yb3VuZF9zcywgX19tMTI4LCBfX20xMjgsIF9f bTEyOCwgMSkKKworLyogeG9waW50cmluLmggKFhPUCkuICovCisjaWZkZWYg RElGRkVSRU5UX1BSQUdNQVMKKyNwcmFnbWEgR0NDIHRhcmdldCAoInhvcCIp CisjZW5kaWYKKyNpbmNsdWRlIDx4ODZpbnRyaW4uaD4KK3Rlc3RfMSAoIF9t bV9yb3RpX2VwaTgsIF9fbTEyOGksIF9fbTEyOGksIDEpCit0ZXN0XzEgKCBf bW1fcm90aV9lcGkxNiwgX19tMTI4aSwgX19tMTI4aSwgMSkKK3Rlc3RfMSAo IF9tbV9yb3RpX2VwaTMyLCBfX20xMjhpLCBfX20xMjhpLCAxKQordGVzdF8x ICggX21tX3JvdGlfZXBpNjQsIF9fbTEyOGksIF9fbTEyOGksIDEpCmRpZmYg LXB1ck53IGdjYy9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvaTM4Ni9zc2Ut MjMuYyB4b3AvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2kzODYvc3NlLTIz LmMKLS0tIGdjYy9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvaTM4Ni9zc2Ut MjMuYwkyMDA5LTEwLTIwIDEzOjU2OjAyLjAwMDAwMDAwMCAtMDUwMAorKysg eG9wL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9pMzg2L3NzZS0yMy5jCTIw MDktMTAtMjEgMTA6NTU6MjQuMDAwMDAwMDAwIC0wNTAwCkBAIC00LDcgKzQs NyBAQAogI2luY2x1ZGUgPG1tX21hbGxvYy5oPgogCiAvKiBUZXN0IHRoYXQg dGhlIGludHJpbnNpY3MgY29tcGlsZSB3aXRoIG9wdGltaXphdGlvbi4gIEFs bCBvZiB0aGVtIGFyZQotICAgZGVmaW5lZCBhcyBpbmxpbmUgZnVuY3Rpb25z IGluIHsseCxlLHAsdCxzLHcsYSxifW1taW50cmluLmggYW5kIG1tM2Rub3cu aAorICAgZGVmaW5lZCBhcyBpbmxpbmUgZnVuY3Rpb25zIGluIHsseCxlLHAs dCxzLHcsYX1tbWludHJpbi5oLCB4b3BpbnRyaW4uaCBhbmQgbW0zZG5vdy5o CiAgICB0aGF0IHJlZmVyZW5jZSB0aGUgcHJvcGVyIGJ1aWx0aW4gZnVuY3Rp b25zLiAgRGVmaW5pbmcgYXdheSAiZXh0ZXJuIiBhbmQKICAgICJfX2lubGlu ZSIgcmVzdWx0cyBpbiBhbGwgb2YgdGhlbSBiZWluZyBjb21waWxlZCBhcyBw cm9wZXIgZnVuY3Rpb25zLiAgKi8KIApAQCAtOTMsMTQgKzkzLDEzIEBACiAj ZGVmaW5lIF9fYnVpbHRpbl9pYTMyX3ZlY19leHRfdjRoaShBLCBOKSBfX2J1 aWx0aW5faWEzMl92ZWNfZXh0X3Y0aGkoQSwgMCkKICNkZWZpbmUgX19idWls dGluX2lhMzJfc2h1ZnBzKEEsIEIsIE4pIF9fYnVpbHRpbl9pYTMyX3NodWZw cyhBLCBCLCAwKQogCi0vKiBibW1pbnRyaW4uaCAqLwotI2RlZmluZSBfX2J1 aWx0aW5faWEzMl9wcm90YmkoQSwgQikgX19idWlsdGluX2lhMzJfcHJvdGJp KEEsMSkKLSNkZWZpbmUgX19idWlsdGluX2lhMzJfcHJvdHdpKEEsIEIpIF9f YnVpbHRpbl9pYTMyX3Byb3R3aShBLDEpCi0jZGVmaW5lIF9fYnVpbHRpbl9p YTMyX3Byb3RkaShBLCBCKSBfX2J1aWx0aW5faWEzMl9wcm90ZGkoQSwxKQot I2RlZmluZSBfX2J1aWx0aW5faWEzMl9wcm90cWkoQSwgQikgX19idWlsdGlu X2lhMzJfcHJvdHFpKEEsMSkKKy8qIHhvcGludHJpbi5oICovCisjZGVmaW5l IF9fYnVpbHRpbl9pYTMyX3Zwcm90YmkoQSwgQikgX19idWlsdGluX2lhMzJf dnByb3RiaShBLDEpCisjZGVmaW5lIF9fYnVpbHRpbl9pYTMyX3Zwcm90d2ko QSwgQikgX19idWlsdGluX2lhMzJfdnByb3R3aShBLDEpCisjZGVmaW5lIF9f YnVpbHRpbl9pYTMyX3Zwcm90ZGkoQSwgQikgX19idWlsdGluX2lhMzJfdnBy b3RkaShBLDEpCisjZGVmaW5lIF9fYnVpbHRpbl9pYTMyX3Zwcm90cWkoQSwg QikgX19idWlsdGluX2lhMzJfdnByb3RxaShBLDEpCiAKLQotI3ByYWdtYSBH Q0MgdGFyZ2V0ICgiM2Rub3csc3NlNCxzc2U0YSxhZXMscGNsbXVsIikKKyNw cmFnbWEgR0NDIHRhcmdldCAoIjNkbm93LHNzZTQsc3NlNGEsYWVzLHBjbG11 bCx4b3AiKQogI2luY2x1ZGUgPHdtbWludHJpbi5oPgogI2luY2x1ZGUgPHNt bWludHJpbi5oPgogI2luY2x1ZGUgPG1tM2Rub3cuaD4KZGlmZiAtcHVyTncg Z2NjL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9pMzg2L3hvcC1jaGVjay5o IHhvcC9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvaTM4Ni94b3AtY2hlY2su aAotLS0gZ2NjL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9pMzg2L3hvcC1j aGVjay5oCTE5NjktMTItMzEgMTg6MDA6MDAuMDAwMDAwMDAwIC0wNjAwCisr KyB4b3AvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2kzODYveG9wLWNoZWNr LmgJMjAwOS0xMC0yMCAxNDowNjowMi4wMDAwMDAwMDAgLTA1MDAKQEAgLTAs MCArMSwyMCBAQAorI2luY2x1ZGUgPHN0ZGxpYi5oPgorCisjaW5jbHVkZSAi Y3B1aWQuaCIKKworc3RhdGljIHZvaWQgeG9wX3Rlc3QgKHZvaWQpOworCitp bnQKK21haW4gKCkKK3sKKyAgdW5zaWduZWQgaW50IGVheCwgZWJ4LCBlY3gs IGVkeDsKKyAKKyAgaWYgKCFfX2dldF9jcHVpZCAoMHg4MDAwMDAwMSwgJmVh eCwgJmVieCwgJmVjeCwgJmVkeCkpCisgICAgcmV0dXJuIDA7CisKKyAgLyog UnVuIFhPUCB0ZXN0IG9ubHkgaWYgaG9zdCBoYXMgWE9QIHN1cHBvcnQuICAq LworICBpZiAoZWN4ICYgYml0X1hPUCkKKyAgICB4b3BfdGVzdCAoKTsKKwor ICBleGl0ICgwKTsKK30KZGlmZiAtcHVyTncgZ2NjL2djYy90ZXN0c3VpdGUv Z2NjLnRhcmdldC9pMzg2L3hvcC1oYWRkdVguYyB4b3AvZ2NjL3Rlc3RzdWl0 ZS9nY2MudGFyZ2V0L2kzODYveG9wLWhhZGR1WC5jCi0tLSBnY2MvZ2NjL3Rl c3RzdWl0ZS9nY2MudGFyZ2V0L2kzODYveG9wLWhhZGR1WC5jCTE5NjktMTIt MzEgMTg6MDA6MDAuMDAwMDAwMDAwIC0wNjAwCisrKyB4b3AvZ2NjL3Rlc3Rz dWl0ZS9nY2MudGFyZ2V0L2kzODYveG9wLWhhZGR1WC5jCTIwMDktMTAtMjAg MTQ6MDY6MDIuMDAwMDAwMDAwIC0wNTAwCkBAIC0wLDAgKzEsMjA3IEBACisv KiB7IGRnLWRvIHJ1biB9ICovCisvKiB7IGRnLXJlcXVpcmUtZWZmZWN0aXZl LXRhcmdldCB4b3AgfSAqLworLyogeyBkZy1vcHRpb25zICItTzIgLW14b3Ai IH0gKi8KKworI2luY2x1ZGUgInhvcC1jaGVjay5oIgorCisjaW5jbHVkZSA8 eDg2aW50cmluLmg+CisjaW5jbHVkZSA8c3RyaW5nLmg+CisKKyNkZWZpbmUg TlVNIDEwCisKK3VuaW9uCit7CisgIF9fbTEyOGkgeFtOVU1dOworICB1bnNp Z25lZCBjaGFyICBzc2lbTlVNICogMTZdOworICB1bnNpZ25lZCBzaG9ydCBz aVtOVU0gKiA4XTsKKyAgdW5zaWduZWQgaW50IGxpW05VTSAqIDRdOworICB1 bnNpZ25lZCBsb25nIGxvbmcgIGxsaVtOVU0gKiAyXTsKK30gZHN0LCByZXMs IHNyYzE7CisKK3N0YXRpYyB2b2lkCitpbml0X2J5dGUgKCkKK3sKKyAgaW50 IGk7CisgIGZvciAoaT0wOyBpIDwgTlVNICogMTY7IGkrKykKKyAgICBzcmMx LnNzaVtpXSA9IGk7Cit9CisKK3N0YXRpYyB2b2lkCitpbml0X3dvcmQgKCkK K3sKKyAgaW50IGk7CisgIGZvciAoaT0wOyBpIDwgTlVNICogODsgaSsrKQor ICAgIHNyYzEuc2lbaV0gPSBpOworfQorCisKK3N0YXRpYyB2b2lkCitpbml0 X2R3b3JkICgpCit7CisgIGludCBpOworICBmb3IgKGk9MDsgaSA8IE5VTSAq IDQ7IGkrKykKKyAgICBzcmMxLmxpW2ldID0gaTsKK30KKworc3RhdGljIGlu dCAKK2NoZWNrX2J5dGUyd29yZCAoKQoreworICBpbnQgaSwgaiwgcywgdCwg Y2hlY2tfZmFpbHMgPSAwOworICBmb3IgKGkgPSAwOyBpIDwgTlVNICogMTY7 IGkgPSBpICsgMTYpCisgICAgeworICAgICAgZm9yIChqID0gMDsgaiA8IDg7 IGorKykKKwl7CisJICB0ID0gaSArICgyICogaik7CisJICBzID0gKGkgLyAy KSArIGo7CisJICByZXMuc2lbc10gPSBzcmMxLnNzaVt0XSArIHNyYzEuc3Np W3QgKyAxXSA7CisJICBpZiAocmVzLnNpW3NdICE9IGRzdC5zaVtzXSkgCisJ ICAgIGNoZWNrX2ZhaWxzKys7CQorCX0KKyAgICB9Cit9CisKK3N0YXRpYyBp bnQgCitjaGVja19ieXRlMmR3b3JkICgpCit7CisgIGludCBpLCBqLCBzLCB0 LCBjaGVja19mYWlscyA9IDA7CisgIGZvciAoaSA9IDA7IGkgPCBOVU0gKiAx NjsgaSA9IGkgKyAxNikKKyAgICB7CisgICAgICBmb3IgKGogPSAwOyBqIDwg NDsgaisrKQorCXsKKwkgIHQgPSBpICsgKDQgKiBqKTsKKwkgIHMgPSAoaSAv IDQpICsgajsKKwkgIHJlcy5saVtzXSA9IChzcmMxLnNzaVt0XSArIHNyYzEu c3NpW3QgKyAxXSkgKyAoc3JjMS5zc2lbdCArIDJdCisJICAgICAgICAgICAg ICArIHNyYzEuc3NpW3QgKyAzXSk7IAorCSAgaWYgKHJlcy5saVtzXSAhPSBk c3QubGlbc10pIAorCSAgICBjaGVja19mYWlscysrOworCX0KKyAgICB9Cisg IHJldHVybiBjaGVja19mYWlscysrOworfQorCitzdGF0aWMgaW50CitjaGVj a19ieXRlMnF3b3JkICgpCit7CisgIGludCBpLCBqLCBzLCB0LCBjaGVja19m YWlscyA9IDA7CisgIGZvciAoaSA9IDA7IGkgPCBOVU0gKiAxNjsgaSA9IGkg KyAxNikKKyAgICB7CisgICAgICBmb3IgKGogPSAwOyBqIDwgMjsgaisrKQor CXsKKwkgIHQgPSBpICsgKDggKiBqKTsKKwkgIHMgPSAoaSAvIDgpICsgajsK KwkgIHJlcy5sbGlbc10gPSAoKHNyYzEuc3NpW3RdICsgc3JjMS5zc2lbdCAr IDFdKSArIChzcmMxLnNzaVt0ICsgMl0gCisJCSAgICAgICArIHNyYzEuc3Np W3QgKyAzXSkpICsgKChzcmMxLnNzaVt0ICsgNF0gKyBzcmMxLnNzaVt0ICs1 XSkKKwkgICAgICAgICAgICAgICArIChzcmMxLnNzaVt0ICsgNl0gKyBzcmMx LnNzaVt0ICsgN10pKTsgCisJICBpZiAocmVzLmxsaVtzXSAhPSBkc3QubGxp W3NdKSAKKwkgICAgY2hlY2tfZmFpbHMrKzsKKwl9CisgICAgfQorICByZXR1 cm4gY2hlY2tfZmFpbHMrKzsKK30KKworc3RhdGljIGludAorY2hlY2tfd29y ZDJkd29yZCAoKQoreworICBpbnQgaSwgaiwgcywgdCwgY2hlY2tfZmFpbHMg PSAwOworICBmb3IgKGkgPSAwOyBpIDwgKE5VTSAqIDgpOyBpID0gaSArIDgp CisgICAgeworICAgICAgZm9yIChqID0gMDsgaiA8IDQ7IGorKykKKwl7CisJ ICB0ID0gaSArICgyICogaik7CisJICBzID0gKGkgLyAyKSArIGo7CisJICBy ZXMubGlbc10gPSBzcmMxLnNpW3RdICsgc3JjMS5zaVt0ICsgMV0gOworCSAg aWYgKHJlcy5saVtzXSAhPSBkc3QubGlbc10pIAorCSAgICBjaGVja19mYWls cysrOwkKKwl9CisgICAgfQorfQorCitzdGF0aWMgaW50IAorY2hlY2tfd29y ZDJxd29yZCAoKQoreworICBpbnQgaSwgaiwgcywgdCwgY2hlY2tfZmFpbHMg PSAwOworICBmb3IgKGkgPSAwOyBpIDwgTlVNICogODsgaSA9IGkgKyA4KQor ICAgIHsKKyAgICAgIGZvciAoaiA9IDA7IGogPCAyOyBqKyspCisJeworCSAg dCA9IGkgKyAoNCAqIGopOworCSAgcyA9IChpIC8gNCkgKyBqOworCSAgcmVz LmxsaVtzXSA9IChzcmMxLnNpW3RdICsgc3JjMS5zaVt0ICsgMV0pICsgKHNy YzEuc2lbdCArIDJdCisJICAgICAgICAgICAgICAgKyBzcmMxLnNpW3QgKyAz XSk7IAorCSAgaWYgKHJlcy5sbGlbc10gIT0gZHN0LmxsaVtzXSkgCisJICAg IGNoZWNrX2ZhaWxzKys7CisJfQorICAgIH0KKyAgcmV0dXJuIGNoZWNrX2Zh aWxzKys7Cit9CisKK3N0YXRpYyBpbnQKK2NoZWNrX2R3b3JkMnF3b3JkICgp Cit7CisgIGludCBpLCBqLCBzLCB0LCBjaGVja19mYWlscyA9IDA7CisgIGZv ciAoaSA9IDA7IGkgPCAoTlVNICogNCk7IGkgPSBpICsgNCkKKyAgICB7Cisg ICAgICBmb3IgKGogPSAwOyBqIDwgMjsgaisrKQorCXsKKwkgIHQgPSBpICsg KDIgKiBqKTsKKwkgIHMgPSAoaSAvIDIpICsgajsKKwkgIHJlcy5sbGlbc10g PSBzcmMxLmxpW3RdICsgc3JjMS5saVt0ICsgMV0gOworCSAgaWYgKHJlcy5s bGlbc10gIT0gZHN0LmxsaVtzXSkgCisJICAgIGNoZWNrX2ZhaWxzKys7CQor CX0KKyAgICB9Cit9CisKK3N0YXRpYyB2b2lkCit4b3BfdGVzdCAodm9pZCkK K3sKKyAgaW50IGk7CisgIAorICAvKiBDaGVjayBoYWRkdWJ3ICovCisgIGlu aXRfYnl0ZSAoKTsKKyAgCisgIGZvciAoaSA9IDA7IGkgPCBOVU07IGkrKykK KyAgICBkc3QueFtpXSA9IF9tbV9oYWRkd19lcHU4IChzcmMxLnhbaV0pOwor ICAKKyAgaWYgKGNoZWNrX2J5dGUyd29yZCgpKQorICBhYm9ydCAoKTsKKyAg CisgIC8qIENoZWNrIGhhZGR1YmQgKi8KKyAgZm9yIChpID0gMDsgaSA8IChO VU0gKTsgaSsrKQorICAgIGRzdC54W2ldID0gX21tX2hhZGRkX2VwdTggKHNy YzEueFtpXSk7CisgIAorICBpZiAoY2hlY2tfYnl0ZTJkd29yZCgpKQorICAg IGFib3J0ICgpOyAKKyAgCisgIC8qIENoZWNrIGhhZGR1YnEgKi8KKyAgZm9y IChpID0gMDsgaSA8IE5VTTsgaSsrKQorICAgIGRzdC54W2ldID0gX21tX2hh ZGRxX2VwdTggKHNyYzEueFtpXSk7CisgIAorICBpZiAoY2hlY2tfYnl0ZTJx d29yZCgpKQorICAgIGFib3J0ICgpOworCisgIC8qIENoZWNrIGhhZGR1d2Qg Ki8KKyAgaW5pdF93b3JkICgpOworCisgIGZvciAoaSA9IDA7IGkgPCAoTlVN ICk7IGkrKykKKyAgICBkc3QueFtpXSA9IF9tbV9oYWRkZF9lcHUxNiAoc3Jj MS54W2ldKTsKKyAgCisgIGlmIChjaGVja193b3JkMmR3b3JkKCkpCisgICAg YWJvcnQgKCk7IAorICAgCisgIC8qIENoZWNrIGhhZGRidXdxICovCisgCisg IGZvciAoaSA9IDA7IGkgPCBOVU07IGkrKykKKyAgICBkc3QueFtpXSA9IF9t bV9oYWRkcV9lcHUxNiAoc3JjMS54W2ldKTsKKyAgCisgIGlmIChjaGVja193 b3JkMnF3b3JkKCkpCisgICAgYWJvcnQgKCk7CisgCisgIC8qIENoZWNrIGhh ZHVkcSAqLworICBpbml0X2R3b3JkICgpOworICAgIGZvciAoaSA9IDA7IGkg PCBOVU07IGkrKykKKyAgICBkc3QueFtpXSA9IF9tbV9oYWRkcV9lcHUzMiAo c3JjMS54W2ldKTsKKyAgCisgIGlmIChjaGVja19kd29yZDJxd29yZCgpKQor ICAgIGFib3J0ICgpOworfQpkaWZmIC1wdXJOdyBnY2MvZ2NjL3Rlc3RzdWl0 ZS9nY2MudGFyZ2V0L2kzODYveG9wLWhhZGRYLmMgeG9wL2djYy90ZXN0c3Vp dGUvZ2NjLnRhcmdldC9pMzg2L3hvcC1oYWRkWC5jCi0tLSBnY2MvZ2NjL3Rl c3RzdWl0ZS9nY2MudGFyZ2V0L2kzODYveG9wLWhhZGRYLmMJMTk2OS0xMi0z MSAxODowMDowMC4wMDAwMDAwMDAgLTA2MDAKKysrIHhvcC9nY2MvdGVzdHN1 aXRlL2djYy50YXJnZXQvaTM4Ni94b3AtaGFkZFguYwkyMDA5LTEwLTIwIDE0 OjA2OjAyLjAwMDAwMDAwMCAtMDUwMApAQCAtMCwwICsxLDIwNiBAQAorLyog eyBkZy1kbyBydW4gfSAqLworLyogeyBkZy1yZXF1aXJlLWVmZmVjdGl2ZS10 YXJnZXQgeG9wIH0gKi8KKy8qIHsgZGctb3B0aW9ucyAiLU8yIC1teG9wIiB9 ICovCisKKyNpbmNsdWRlICJ4b3AtY2hlY2suaCIKKworI2luY2x1ZGUgPHg4 NmludHJpbi5oPgorI2luY2x1ZGUgPHN0cmluZy5oPgorCisjZGVmaW5lIE5V TSAxMAorCit1bmlvbgoreworICBfX20xMjhpIHhbTlVNXTsKKyAgc2lnbmVk IGNoYXIgc3NpW05VTSAqIDE2XTsKKyAgc2hvcnQgc2lbTlVNICogOF07Cisg IGludCBsaVtOVU0gKiA0XTsKKyAgbG9uZyBsb25nIGxsaVtOVU0gKiAyXTsK K30gZHN0LCByZXMsIHNyYzE7CisKK3N0YXRpYyB2b2lkCitpbml0X3NieXRl ICgpCit7CisgIGludCBpOworICBmb3IgKGk9MDsgaSA8IE5VTSAqIDE2OyBp KyspCisgICAgc3JjMS5zc2lbaV0gPSBpOworfQorCitzdGF0aWMgdm9pZAor aW5pdF9zd29yZCAoKQoreworICBpbnQgaTsKKyAgZm9yIChpPTA7IGkgPCBO VU0gKiA4OyBpKyspCisgICAgc3JjMS5zaVtpXSA9IGk7Cit9CisKKworc3Rh dGljIHZvaWQKK2luaXRfc2R3b3JkICgpCit7CisgIGludCBpOworICBmb3Ig KGk9MDsgaSA8IE5VTSAqIDQ7IGkrKykKKyAgICBzcmMxLmxpW2ldID0gaTsK K30KKworc3RhdGljIGludCAKK2NoZWNrX3NieXRlMndvcmQgKCkKK3sKKyAg aW50IGksIGosIHMsIHQsIGNoZWNrX2ZhaWxzID0gMDsKKyAgZm9yIChpID0g MDsgaSA8IE5VTSAqIDE2OyBpID0gaSArIDE2KQorICAgIHsKKyAgICAgIGZv ciAoaiA9IDA7IGogPCA4OyBqKyspCisJeworCSAgdCA9IGkgKyAoMiAqIGop OworCSAgcyA9IChpIC8gMikgKyBqOworCSAgcmVzLnNpW3NdID0gc3JjMS5z c2lbdF0gKyBzcmMxLnNzaVt0ICsgMV0gOworCSAgaWYgKHJlcy5zaVtzXSAh PSBkc3Quc2lbc10pIAorCSAgICBjaGVja19mYWlscysrOwkKKwl9CisgICAg fQorfQorCitzdGF0aWMgaW50IAorY2hlY2tfc2J5dGUyZHdvcmQgKCkKK3sK KyAgaW50IGksIGosIHMsIHQsIGNoZWNrX2ZhaWxzID0gMDsKKyAgZm9yIChp ID0gMDsgaSA8IE5VTSAqIDE2OyBpID0gaSArIDE2KQorICAgIHsKKyAgICAg IGZvciAoaiA9IDA7IGogPCA0OyBqKyspCisJeworCSAgdCA9IGkgKyAoNCAq IGopOworCSAgcyA9IChpIC8gNCkgKyBqOworCSAgcmVzLmxpW3NdID0gKHNy YzEuc3NpW3RdICsgc3JjMS5zc2lbdCArIDFdKSArIChzcmMxLnNzaVt0ICsg Ml0KKwkgICAgICAgICAgICAgICsgc3JjMS5zc2lbdCArIDNdKTsgCisJICBp ZiAocmVzLmxpW3NdICE9IGRzdC5saVtzXSkgCisJICAgIGNoZWNrX2ZhaWxz Kys7CisJfQorICAgIH0KKyAgcmV0dXJuIGNoZWNrX2ZhaWxzKys7Cit9CisK K3N0YXRpYyBpbnQKK2NoZWNrX3NieXRlMnF3b3JkICgpCit7CisgIGludCBp LCBqLCBzLCB0LCBjaGVja19mYWlscyA9IDA7CisgIGZvciAoaSA9IDA7IGkg PCBOVU0gKiAxNjsgaSA9IGkgKyAxNikKKyAgICB7CisgICAgICBmb3IgKGog PSAwOyBqIDwgMjsgaisrKQorCXsKKwkgIHQgPSBpICsgKDggKiBqKTsKKwkg IHMgPSAoaSAvIDgpICsgajsKKwkgIHJlcy5sbGlbc10gPSAoKHNyYzEuc3Np W3RdICsgc3JjMS5zc2lbdCArIDFdKSArIChzcmMxLnNzaVt0ICsgMl0gCisJ CSAgICAgICArIHNyYzEuc3NpW3QgKyAzXSkpICsgKChzcmMxLnNzaVt0ICsg NF0gKyBzcmMxLnNzaVt0ICs1XSkKKwkgICAgICAgICAgICAgICArIChzcmMx LnNzaVt0ICsgNl0gKyBzcmMxLnNzaVt0ICsgN10pKTsgCisJICBpZiAocmVz LmxsaVtzXSAhPSBkc3QubGxpW3NdKSAKKwkgICAgY2hlY2tfZmFpbHMrKzsK Kwl9CisgICAgfQorICByZXR1cm4gY2hlY2tfZmFpbHMrKzsKK30KKworc3Rh dGljIGludAorY2hlY2tfc3dvcmQyZHdvcmQgKCkKK3sKKyAgaW50IGksIGos IHMsIHQsIGNoZWNrX2ZhaWxzID0gMDsKKyAgZm9yIChpID0gMDsgaSA8IChO VU0gKiA4KTsgaSA9IGkgKyA4KQorICAgIHsKKyAgICAgIGZvciAoaiA9IDA7 IGogPCA0OyBqKyspCisJeworCSAgdCA9IGkgKyAoMiAqIGopOworCSAgcyA9 IChpIC8gMikgKyBqOworCSAgcmVzLmxpW3NdID0gc3JjMS5zaVt0XSArIHNy YzEuc2lbdCArIDFdIDsKKwkgIGlmIChyZXMubGlbc10gIT0gZHN0LmxpW3Nd KSAKKwkgICAgY2hlY2tfZmFpbHMrKzsJCisJfQorICAgIH0KK30KKworc3Rh dGljIGludCAKK2NoZWNrX3N3b3JkMnF3b3JkICgpCit7CisgIGludCBpLCBq LCBzLCB0LCBjaGVja19mYWlscyA9IDA7CisgIGZvciAoaSA9IDA7IGkgPCBO VU0gKiA4OyBpID0gaSArIDgpCisgICAgeworICAgICAgZm9yIChqID0gMDsg aiA8IDI7IGorKykKKwl7CisJICB0ID0gaSArICg0ICogaik7CisJICBzID0g KGkgLyA0KSArIGo7CisJICByZXMubGxpW3NdID0gKHNyYzEuc2lbdF0gKyBz cmMxLnNpW3QgKyAxXSkgKyAoc3JjMS5zaVt0ICsgMl0KKwkgICAgICAgICAg ICAgICArIHNyYzEuc2lbdCArIDNdKTsgCisJICBpZiAocmVzLmxsaVtzXSAh PSBkc3QubGxpW3NdKSAKKwkgICAgY2hlY2tfZmFpbHMrKzsKKwl9CisgICAg fQorICByZXR1cm4gY2hlY2tfZmFpbHMrKzsKK30KKworc3RhdGljIGludAor Y2hlY2tfZHdvcmQycXdvcmQgKCkKK3sKKyAgaW50IGksIGosIHMsIHQsIGNo ZWNrX2ZhaWxzID0gMDsKKyAgZm9yIChpID0gMDsgaSA8IChOVU0gKiA0KTsg aSA9IGkgKyA0KQorICAgIHsKKyAgICAgIGZvciAoaiA9IDA7IGogPCAyOyBq KyspCisJeworCSAgdCA9IGkgKyAoMiAqIGopOworCSAgcyA9IChpIC8gMikg KyBqOworCSAgcmVzLmxsaVtzXSA9IHNyYzEubGlbdF0gKyBzcmMxLmxpW3Qg KyAxXSA7CisJICBpZiAocmVzLmxsaVtzXSAhPSBkc3QubGxpW3NdKSAKKwkg ICAgY2hlY2tfZmFpbHMrKzsJCisJfQorICAgIH0KK30KKworc3RhdGljIHZv aWQKK3hvcF90ZXN0ICh2b2lkKQoreworICBpbnQgaTsKKworICBpbml0X3Ni eXRlICgpOworICAKKyAgZm9yIChpID0gMDsgaSA8IE5VTTsgaSsrKQorICAg IGRzdC54W2ldID0gX21tX2hhZGR3X2VwaTggKHNyYzEueFtpXSk7CisgIAor ICBpZiAoY2hlY2tfc2J5dGUyd29yZCgpKQorICBhYm9ydCAoKTsKKyAgCisK KyAgZm9yIChpID0gMDsgaSA8IChOVU0gKTsgaSsrKQorICAgIGRzdC54W2ld ID0gX21tX2hhZGRkX2VwaTggKHNyYzEueFtpXSk7CisgIAorICBpZiAoY2hl Y2tfc2J5dGUyZHdvcmQoKSkKKyAgICBhYm9ydCAoKTsgCisgIAorCisgIGZv ciAoaSA9IDA7IGkgPCBOVU07IGkrKykKKyAgICBkc3QueFtpXSA9IF9tbV9o YWRkcV9lcGk4IChzcmMxLnhbaV0pOworICAKKyAgaWYgKGNoZWNrX3NieXRl MnF3b3JkKCkpCisgICAgYWJvcnQgKCk7CisKKworICBpbml0X3N3b3JkICgp OworCisgIGZvciAoaSA9IDA7IGkgPCAoTlVNICk7IGkrKykKKyAgICBkc3Qu eFtpXSA9IF9tbV9oYWRkZF9lcGkxNiAoc3JjMS54W2ldKTsKKyAgCisgIGlm IChjaGVja19zd29yZDJkd29yZCgpKQorICAgIGFib3J0ICgpOyAKKworICBm b3IgKGkgPSAwOyBpIDwgTlVNOyBpKyspCisgICAgZHN0LnhbaV0gPSBfbW1f aGFkZHFfZXBpMTYgKHNyYzEueFtpXSk7CisgIAorICBpZiAoY2hlY2tfc3dv cmQycXdvcmQoKSkKKyAgICBhYm9ydCAoKTsKKyAKKworICBpbml0X3Nkd29y ZCAoKTsKKworICAgIGZvciAoaSA9IDA7IGkgPCBOVU07IGkrKykKKyAgICBk c3QueFtpXSA9IF9tbV9oYWRkcV9lcGkzMiAoc3JjMS54W2ldKTsKKyAgCisg IGlmIChjaGVja19kd29yZDJxd29yZCgpKQorICAgIGFib3J0ICgpOworCit9 CmRpZmYgLXB1ck53IGdjYy9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvaTM4 Ni94b3AtaHN1YlguYyB4b3AvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2kz ODYveG9wLWhzdWJYLmMKLS0tIGdjYy9nY2MvdGVzdHN1aXRlL2djYy50YXJn ZXQvaTM4Ni94b3AtaHN1YlguYwkxOTY5LTEyLTMxIDE4OjAwOjAwLjAwMDAw MDAwMCAtMDYwMAorKysgeG9wL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9p Mzg2L3hvcC1oc3ViWC5jCTIwMDktMTAtMjAgMTQ6MDY6MDIuMDAwMDAwMDAw IC0wNTAwCkBAIC0wLDAgKzEsMTI4IEBACisvKiB7IGRnLWRvIHJ1biB9ICov CisvKiB7IGRnLXJlcXVpcmUtZWZmZWN0aXZlLXRhcmdldCB4b3AgfSAqLwor LyogeyBkZy1vcHRpb25zICItTzIgLW14b3AiIH0gKi8KKworI2luY2x1ZGUg InhvcC1jaGVjay5oIgorCisjaW5jbHVkZSA8eDg2aW50cmluLmg+CisjaW5j bHVkZSA8c3RyaW5nLmg+CisKKyNkZWZpbmUgTlVNIDEwCisKK3VuaW9uCit7 CisgIF9fbTEyOGkgeFtOVU1dOworICBzaWduZWQgY2hhciBzc2lbTlVNICog MTZdOworICBzaG9ydCBzaVtOVU0gKiA4XTsKKyAgaW50IGxpW05VTSAqIDRd OworICBsb25nIGxvbmcgbGxpW05VTSAqIDJdOworfSBkc3QsIHJlcywgc3Jj MTsKKworc3RhdGljIHZvaWQKK2luaXRfc2J5dGUgKCkKK3sKKyAgaW50IGk7 CisgIGZvciAoaT0wOyBpIDwgTlVNICogMTY7IGkrKykKKyAgICBzcmMxLnNz aVtpXSA9IGk7Cit9CisKK3N0YXRpYyB2b2lkCitpbml0X3N3b3JkICgpCit7 CisgIGludCBpOworICBmb3IgKGk9MDsgaSA8IE5VTSAqIDg7IGkrKykKKyAg ICBzcmMxLnNpW2ldID0gaTsKK30KKworCitzdGF0aWMgdm9pZAoraW5pdF9z ZHdvcmQgKCkKK3sKKyAgaW50IGk7CisgIGZvciAoaT0wOyBpIDwgTlVNICog NDsgaSsrKQorICAgIHNyYzEubGlbaV0gPSBpOworfQorCitzdGF0aWMgaW50 IAorY2hlY2tfc2J5dGUyd29yZCAoKQoreworICBpbnQgaSwgaiwgcywgdCwg Y2hlY2tfZmFpbHMgPSAwOworICBmb3IgKGkgPSAwOyBpIDwgTlVNICogMTY7 IGkgPSBpICsgMTYpCisgICAgeworICAgICAgZm9yIChqID0gMDsgaiA8IDg7 IGorKykKKwl7CisJICB0ID0gaSArICgyICogaik7CisJICBzID0gKGkgLyAy KSArIGo7CisJICByZXMuc2lbc10gPSBzcmMxLnNzaVt0XSAtIHNyYzEuc3Np W3QgKyAxXSA7CisJICBpZiAocmVzLnNpW3NdICE9IGRzdC5zaVtzXSkgCisJ ICAgIGNoZWNrX2ZhaWxzKys7CQorCX0KKyAgICB9Cit9CisKK3N0YXRpYyBp bnQKK2NoZWNrX3N3b3JkMmR3b3JkICgpCit7CisgIGludCBpLCBqLCBzLCB0 LCBjaGVja19mYWlscyA9IDA7CisgIGZvciAoaSA9IDA7IGkgPCAoTlVNICog OCk7IGkgPSBpICsgOCkKKyAgICB7CisgICAgICBmb3IgKGogPSAwOyBqIDwg NDsgaisrKQorCXsKKwkgIHQgPSBpICsgKDIgKiBqKTsKKwkgIHMgPSAoaSAv IDIpICsgajsKKwkgIHJlcy5saVtzXSA9IHNyYzEuc2lbdF0gLSBzcmMxLnNp W3QgKyAxXSA7CisJICBpZiAocmVzLmxpW3NdICE9IGRzdC5saVtzXSkgCisJ ICAgIGNoZWNrX2ZhaWxzKys7CQorCX0KKyAgICB9Cit9CisKK3N0YXRpYyBp bnQKK2NoZWNrX2R3b3JkMnF3b3JkICgpCit7CisgIGludCBpLCBqLCBzLCB0 LCBjaGVja19mYWlscyA9IDA7CisgIGZvciAoaSA9IDA7IGkgPCAoTlVNICog NCk7IGkgPSBpICsgNCkKKyAgICB7CisgICAgICBmb3IgKGogPSAwOyBqIDwg MjsgaisrKQorCXsKKwkgIHQgPSBpICsgKDIgKiBqKTsKKwkgIHMgPSAoaSAv IDIpICsgajsKKwkgIHJlcy5sbGlbc10gPSBzcmMxLmxpW3RdIC0gc3JjMS5s aVt0ICsgMV0gOworCSAgaWYgKHJlcy5sbGlbc10gIT0gZHN0LmxsaVtzXSkg CisJICAgIGNoZWNrX2ZhaWxzKys7CQorCX0KKyAgICB9Cit9CisKK3N0YXRp YyB2b2lkCit4b3BfdGVzdCAodm9pZCkKK3sKKyAgaW50IGk7CisgIAorICAv KiBDaGVjayBoc3ViYncgKi8KKyAgaW5pdF9zYnl0ZSAoKTsKKyAgCisgIGZv ciAoaSA9IDA7IGkgPCBOVU07IGkrKykKKyAgICBkc3QueFtpXSA9IF9tbV9o c3Vid19lcGk4IChzcmMxLnhbaV0pOworICAKKyAgaWYgKGNoZWNrX3NieXRl MndvcmQoKSkKKyAgYWJvcnQgKCk7CisgIAorCisgIC8qIENoZWNrIGhzdWJ3 ZCAqLworICBpbml0X3N3b3JkICgpOworCisgIGZvciAoaSA9IDA7IGkgPCAo TlVNICk7IGkrKykKKyAgICBkc3QueFtpXSA9IF9tbV9oc3ViZF9lcGkxNiAo c3JjMS54W2ldKTsKKyAgCisgIGlmIChjaGVja19zd29yZDJkd29yZCgpKQor ICAgIGFib3J0ICgpOyAKKyAgIAorICAgLyogQ2hlY2sgaHN1YmRxICovCisg IGluaXRfc2R3b3JkICgpOworICAgIGZvciAoaSA9IDA7IGkgPCBOVU07IGkr KykKKyAgICBkc3QueFtpXSA9IF9tbV9oc3VicV9lcGkzMiAoc3JjMS54W2ld KTsKKyAgCisgIGlmIChjaGVja19kd29yZDJxd29yZCgpKQorICAgIGFib3J0 ICgpOworfQpkaWZmIC1wdXJOdyBnY2MvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFy Z2V0L2kzODYveG9wLWltdWwzMndpZGVuLXZlY3Rvci5jIHhvcC9nY2MvdGVz dHN1aXRlL2djYy50YXJnZXQvaTM4Ni94b3AtaW11bDMyd2lkZW4tdmVjdG9y LmMKLS0tIGdjYy9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvaTM4Ni94b3At aW11bDMyd2lkZW4tdmVjdG9yLmMJMTk2OS0xMi0zMSAxODowMDowMC4wMDAw MDAwMDAgLTA2MDAKKysrIHhvcC9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQv aTM4Ni94b3AtaW11bDMyd2lkZW4tdmVjdG9yLmMJMjAwOS0xMC0yMCAxNDow NjowMi4wMDAwMDAwMDAgLTA1MDAKQEAgLTAsMCArMSwzNiBAQAorLyogVGVz dCB0aGF0IHRoZSBjb21waWxlciBwcm9wZXJseSBvcHRpbWl6ZXMgZmxvYXRp bmcgcG9pbnQgbXVsdGlwbHkgYW5kIGFkZAorICAgaW5zdHJ1Y3Rpb25zIHZl Y3RvciBpbnRvIHBtYWNzZGQvZXRjLiBvbiBYT1Agc3lzdGVtcy4gICovCisK Ky8qIHsgZGctZG8gY29tcGlsZSB9ICovCisvKiB7IGRnLXJlcXVpcmUtZWZm ZWN0aXZlLXRhcmdldCBscDY0IH0gKi8KKy8qIHsgZGctb3B0aW9ucyAiLU8y IC1teG9wIC1mdHJlZS12ZWN0b3JpemUiIH0gKi8KKworZXh0ZXJuIHZvaWQg ZXhpdCAoaW50KTsKKwordHlwZWRlZiBsb25nIF9fbTEyOGkgIF9fYXR0cmli dXRlX18gKChfX3ZlY3Rvcl9zaXplX18gKDE2KSwgX19tYXlfYWxpYXNfXykp OworCisjZGVmaW5lIFNJWkUgMTAyNDAKKwordW5pb24geworICBfX20xMjhp IGlfYWxpZ247CisgIGludCBpMzJbU0laRV07CisgIGxvbmcgaTY0W1NJWkVd OworfSBhLCBiLCBjLCBkOworCit2b2lkCitpbXVsMzJfdG9fNjQgKHZvaWQp Cit7CisgIGludCBpOworCisgIGZvciAoaSA9IDA7IGkgPCBTSVpFOyBpKysp CisgICAgYS5pNjRbaV0gPSAoKGxvbmcpYi5pMzJbaV0pICogKChsb25nKWMu aTMyW2ldKTsKK30KKworaW50IG1haW4gKCkKK3sKKyAgaW11bDMyX3RvXzY0 ICgpOworICBleGl0ICgwKTsKK30KKworLyogeyBkZy1maW5hbCB7IHNjYW4t YXNzZW1ibGVyICJ2cG1hY3NkcWwiIH0gfSAqLworLyogeyBkZy1maW5hbCB7 IHNjYW4tYXNzZW1ibGVyICJ2cG1hY3NkcWgiIH0gfSAqLwpkaWZmIC1wdXJO dyBnY2MvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2kzODYveG9wLWltdWw2 NC12ZWN0b3IuYyB4b3AvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2kzODYv eG9wLWltdWw2NC12ZWN0b3IuYwotLS0gZ2NjL2djYy90ZXN0c3VpdGUvZ2Nj LnRhcmdldC9pMzg2L3hvcC1pbXVsNjQtdmVjdG9yLmMJMTk2OS0xMi0zMSAx ODowMDowMC4wMDAwMDAwMDAgLTA2MDAKKysrIHhvcC9nY2MvdGVzdHN1aXRl L2djYy50YXJnZXQvaTM4Ni94b3AtaW11bDY0LXZlY3Rvci5jCTIwMDktMTAt MjAgMTQ6MDY6MDIuMDAwMDAwMDAwIC0wNTAwCkBAIC0wLDAgKzEsMzYgQEAK Ky8qIFRlc3QgdGhhdCB0aGUgY29tcGlsZXIgcHJvcGVybHkgb3B0aW1pemVz IGZsb2F0aW5nIHBvaW50IG11bHRpcGx5IGFuZCBhZGQKKyAgIGluc3RydWN0 aW9ucyB2ZWN0b3IgaW50byBwbWFjc2RkL2V0Yy4gb24gWE9QIHN5c3RlbXMu ICAqLworCisvKiB7IGRnLWRvIGNvbXBpbGUgfSAqLworLyogeyBkZy1yZXF1 aXJlLWVmZmVjdGl2ZS10YXJnZXQgbHA2NCB9ICovCisvKiB7IGRnLW9wdGlv bnMgIi1PMiAtbXhvcCAtZnRyZWUtdmVjdG9yaXplIiB9ICovCisKK2V4dGVy biB2b2lkIGV4aXQgKGludCk7CisKK3R5cGVkZWYgbG9uZyBfX20xMjhpICBf X2F0dHJpYnV0ZV9fICgoX192ZWN0b3Jfc2l6ZV9fICgxNiksIF9fbWF5X2Fs aWFzX18pKTsKKworI2RlZmluZSBTSVpFIDEwMjQwCisKK3VuaW9uIHsKKyAg X19tMTI4aSBpX2FsaWduOworICBsb25nIGk2NFtTSVpFXTsKK30gYSwgYiwg YywgZDsKKwordm9pZAoraW11bDY0ICh2b2lkKQoreworICBpbnQgaTsKKwor ICBmb3IgKGkgPSAwOyBpIDwgU0laRTsgaSsrKQorICAgIGEuaTY0W2ldID0g Yi5pNjRbaV0gKiBjLmk2NFtpXTsKK30KKworaW50IG1haW4gKCkKK3sKKyAg aW11bDY0ICgpOworICBleGl0ICgwKTsKK30KKworLyogeyBkZy1maW5hbCB7 IHNjYW4tYXNzZW1ibGVyICJ2cG1hY3NkZCIgfSB9ICovCisvKiB7IGRnLWZp bmFsIHsgc2Nhbi1hc3NlbWJsZXIgInZwaGFkZGRxIiB9IH0gKi8KKy8qIHsg ZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlciAidnBtYWNzZHFsIiB9IH0gKi8K ZGlmZiAtcHVyTncgZ2NjL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9pMzg2 L3hvcC1wY21vdjIuYyB4b3AvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2kz ODYveG9wLXBjbW92Mi5jCi0tLSBnY2MvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFy Z2V0L2kzODYveG9wLXBjbW92Mi5jCTE5NjktMTItMzEgMTg6MDA6MDAuMDAw MDAwMDAwIC0wNjAwCisrKyB4b3AvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0 L2kzODYveG9wLXBjbW92Mi5jCTIwMDktMTAtMjAgMTQ6MDY6MDIuMDAwMDAw MDAwIC0wNTAwCkBAIC0wLDAgKzEsMjMgQEAKKy8qIFRlc3QgdGhhdCB0aGUg Y29tcGlsZXIgcHJvcGVybHkgb3B0aW1pemVzIGNvbmRpdGlvbmFsIGZsb2F0 aW5nIHBvaW50IG1vdmVzCisgICBpbnRvIHRoZSBwY21vdiBpbnN0cnVjdGlv biBvbiBYT1Agc3lzdGVtcy4gICovCisKKy8qIHsgZGctZG8gY29tcGlsZSB9 ICovCisvKiB7IGRnLXJlcXVpcmUtZWZmZWN0aXZlLXRhcmdldCBscDY0IH0g Ki8KKy8qIHsgZGctb3B0aW9ucyAiLU8yIC1teG9wIiB9ICovCisKK2V4dGVy biB2b2lkIGV4aXQgKGludCk7CisKK2Zsb2F0IGZsdF90ZXN0IChmbG9hdCBh LCBmbG9hdCBiLCBmbG9hdCBjLCBmbG9hdCBkKQoreworICByZXR1cm4gKGEg PiBiKSA/IGMgOiBkOworfQorCitmbG9hdCBmbHRfYSA9IDEsIGZsdF9iID0g MiwgZmx0X2MgPSAzLCBmbHRfZCA9IDQsIGZsdF9lOworCitpbnQgbWFpbigp Cit7CisgIGZsdF9lID0gZmx0X3Rlc3QgKGZsdF9hLCBmbHRfYiwgZmx0X2Ms IGZsdF9kKTsKKyAgZXhpdCAoMCk7Cit9CisKKy8qIHsgZGctZmluYWwgeyBz Y2FuLWFzc2VtYmxlciAidnBjbW92IiB9IH0gKi8KZGlmZiAtcHVyTncgZ2Nj L2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9pMzg2L3hvcC1wY21vdi5jIHhv cC9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvaTM4Ni94b3AtcGNtb3YuYwot LS0gZ2NjL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9pMzg2L3hvcC1wY21v di5jCTE5NjktMTItMzEgMTg6MDA6MDAuMDAwMDAwMDAwIC0wNjAwCisrKyB4 b3AvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2kzODYveG9wLXBjbW92LmMJ MjAwOS0xMC0yMCAxNDowNjowMi4wMDAwMDAwMDAgLTA1MDAKQEAgLTAsMCAr MSwyMyBAQAorLyogVGVzdCB0aGF0IHRoZSBjb21waWxlciBwcm9wZXJseSBv cHRpbWl6ZXMgY29uZGl0aW9uYWwgZmxvYXRpbmcgcG9pbnQgbW92ZXMKKyAg IGludG8gdGhlIHBjbW92IGluc3RydWN0aW9uIG9uIFhPUCBzeXN0ZW1zLiAg Ki8KKworLyogeyBkZy1kbyBjb21waWxlIH0gKi8KKy8qIHsgZGctcmVxdWly ZS1lZmZlY3RpdmUtdGFyZ2V0IGxwNjQgfSAqLworLyogeyBkZy1vcHRpb25z ICItTzIgLW14b3AiIH0gKi8KKworZXh0ZXJuIHZvaWQgZXhpdCAoaW50KTsK KworZG91YmxlIGRibF90ZXN0IChkb3VibGUgYSwgZG91YmxlIGIsIGRvdWJs ZSBjLCBkb3VibGUgZCkKK3sKKyAgcmV0dXJuIChhID4gYikgPyBjIDogZDsK K30KKworZG91YmxlIGRibF9hID0gMSwgZGJsX2IgPSAyLCBkYmxfYyA9IDMs IGRibF9kID0gNCwgZGJsX2U7CisKK2ludCBtYWluKCkKK3sKKyAgZGJsX2Ug PSBkYmxfdGVzdCAoZGJsX2EsIGRibF9iLCBkYmxfYywgZGJsX2QpOworICBl eGl0ICgwKTsKK30KKworLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVy ICJ2cGNtb3YiIH0gfSAqLwpkaWZmIC1wdXJOdyBnY2MvZ2NjL3Rlc3RzdWl0 ZS9nY2MudGFyZ2V0L2kzODYveG9wLXJvdGF0ZTEtdmVjdG9yLmMgeG9wL2dj Yy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9pMzg2L3hvcC1yb3RhdGUxLXZlY3Rv ci5jCi0tLSBnY2MvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2kzODYveG9w LXJvdGF0ZTEtdmVjdG9yLmMJMTk2OS0xMi0zMSAxODowMDowMC4wMDAwMDAw MDAgLTA2MDAKKysrIHhvcC9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvaTM4 Ni94b3Atcm90YXRlMS12ZWN0b3IuYwkyMDA5LTEwLTIwIDE0OjA2OjAyLjAw MDAwMDAwMCAtMDUwMApAQCAtMCwwICsxLDM1IEBACisvKiBUZXN0IHRoYXQg dGhlIGNvbXBpbGVyIHByb3Blcmx5IG9wdGltaXplcyB2ZWN0b3Igcm90YXRl IGluc3RydWN0aW9ucyB2ZWN0b3IKKyAgIGludG8gcHJvdCBvbiBYT1Agc3lz dGVtcy4gICovCisKKy8qIHsgZGctZG8gY29tcGlsZSB9ICovCisvKiB7IGRn LXJlcXVpcmUtZWZmZWN0aXZlLXRhcmdldCBscDY0IH0gKi8KKy8qIHsgZGct b3B0aW9ucyAiLU8yIC1teG9wIC1mdHJlZS12ZWN0b3JpemUiIH0gKi8KKwor ZXh0ZXJuIHZvaWQgZXhpdCAoaW50KTsKKwordHlwZWRlZiBsb25nIF9fbTEy OGkgIF9fYXR0cmlidXRlX18gKChfX3ZlY3Rvcl9zaXplX18gKDE2KSwgX19t YXlfYWxpYXNfXykpOworCisjZGVmaW5lIFNJWkUgMTAyNDAKKwordW5pb24g eworICBfX20xMjhpIGlfYWxpZ247CisgIHVuc2lnbmVkIHUzMltTSVpFXTsK K30gYSwgYiwgYzsKKwordm9pZAorbGVmdF9yb3RhdGUzMiAodm9pZCkKK3sK KyAgaW50IGk7CisKKyAgZm9yIChpID0gMDsgaSA8IFNJWkU7IGkrKykKKyAg ICBhLnUzMltpXSA9IChiLnUzMltpXSA8PCAoKHNpemVvZiAoaW50KSAqIDgp IC0gNCkpIHwgKGIudTMyW2ldID4+IDQpOworfQorCitpbnQKK21haW4gKCkK K3sKKyAgbGVmdF9yb3RhdGUzMiAoKTsKKyAgZXhpdCAoMCk7Cit9CisKKy8q IHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlciAidnByb3RkIiB9IH0gKi8K ZGlmZiAtcHVyTncgZ2NjL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9pMzg2 L3hvcC1yb3RhdGUyLXZlY3Rvci5jIHhvcC9nY2MvdGVzdHN1aXRlL2djYy50 YXJnZXQvaTM4Ni94b3Atcm90YXRlMi12ZWN0b3IuYwotLS0gZ2NjL2djYy90 ZXN0c3VpdGUvZ2NjLnRhcmdldC9pMzg2L3hvcC1yb3RhdGUyLXZlY3Rvci5j CTE5NjktMTItMzEgMTg6MDA6MDAuMDAwMDAwMDAwIC0wNjAwCisrKyB4b3Av Z2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2kzODYveG9wLXJvdGF0ZTItdmVj dG9yLmMJMjAwOS0xMC0yMCAxNDowNjowMi4wMDAwMDAwMDAgLTA1MDAKQEAg LTAsMCArMSwzNSBAQAorLyogVGVzdCB0aGF0IHRoZSBjb21waWxlciBwcm9w ZXJseSBvcHRpbWl6ZXMgdmVjdG9yIHJvdGF0ZSBpbnN0cnVjdGlvbnMgdmVj dG9yCisgICBpbnRvIHByb3Qgb24gWE9QIHN5c3RlbXMuICAqLworCisvKiB7 IGRnLWRvIGNvbXBpbGUgfSAqLworLyogeyBkZy1yZXF1aXJlLWVmZmVjdGl2 ZS10YXJnZXQgbHA2NCB9ICovCisvKiB7IGRnLW9wdGlvbnMgIi1PMiAtbXhv cCAtZnRyZWUtdmVjdG9yaXplIiB9ICovCisKK2V4dGVybiB2b2lkIGV4aXQg KGludCk7CisKK3R5cGVkZWYgbG9uZyBfX20xMjhpICBfX2F0dHJpYnV0ZV9f ICgoX192ZWN0b3Jfc2l6ZV9fICgxNiksIF9fbWF5X2FsaWFzX18pKTsKKwor I2RlZmluZSBTSVpFIDEwMjQwCisKK3VuaW9uIHsKKyAgX19tMTI4aSBpX2Fs aWduOworICB1bnNpZ25lZCB1MzJbU0laRV07Cit9IGEsIGIsIGM7CisKK3Zv aWQKK3JpZ2h0X3JvdGF0ZTMyX2IgKHZvaWQpCit7CisgIGludCBpOworCisg IGZvciAoaSA9IDA7IGkgPCBTSVpFOyBpKyspCisgICAgYS51MzJbaV0gPSAo Yi51MzJbaV0gPj4gKChzaXplb2YgKGludCkgKiA4KSAtIDQpKSB8IChiLnUz MltpXSA8PCA0KTsKK30KKworaW50CittYWluICgpCit7CisgIHJpZ2h0X3Jv dGF0ZSAoKTsKKyAgZXhpdCAoMCk7Cit9CisKKy8qIHsgZGctZmluYWwgeyBz Y2FuLWFzc2VtYmxlciAidnByb3QiIH0gfSAqLwpkaWZmIC1wdXJOdyBnY2Mv Z2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2kzODYveG9wLXJvdGF0ZTMtdmVj dG9yLmMgeG9wL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9pMzg2L3hvcC1y b3RhdGUzLXZlY3Rvci5jCi0tLSBnY2MvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFy Z2V0L2kzODYveG9wLXJvdGF0ZTMtdmVjdG9yLmMJMTk2OS0xMi0zMSAxODow MDowMC4wMDAwMDAwMDAgLTA2MDAKKysrIHhvcC9nY2MvdGVzdHN1aXRlL2dj Yy50YXJnZXQvaTM4Ni94b3Atcm90YXRlMy12ZWN0b3IuYwkyMDA5LTEwLTIw IDE0OjA2OjAyLjAwMDAwMDAwMCAtMDUwMApAQCAtMCwwICsxLDM0IEBACisv KiBUZXN0IHRoYXQgdGhlIGNvbXBpbGVyIHByb3Blcmx5IG9wdGltaXplcyB2 ZWN0b3Igcm90YXRlIGluc3RydWN0aW9ucyB2ZWN0b3IKKyAgIGludG8gcHJv dCBvbiBYT1Agc3lzdGVtcy4gICovCisKKy8qIHsgZGctZG8gY29tcGlsZSB9 ICovCisvKiB7IGRnLXJlcXVpcmUtZWZmZWN0aXZlLXRhcmdldCBscDY0IH0g Ki8KKy8qIHsgZGctb3B0aW9ucyAiLU8yIC1teG9wIC1mdHJlZS12ZWN0b3Jp emUiIH0gKi8KKworZXh0ZXJuIHZvaWQgZXhpdCAoaW50KTsKKwordHlwZWRl ZiBsb25nIF9fbTEyOGkgIF9fYXR0cmlidXRlX18gKChfX3ZlY3Rvcl9zaXpl X18gKDE2KSwgX19tYXlfYWxpYXNfXykpOworCisjZGVmaW5lIFNJWkUgMTAy NDAKKwordW5pb24geworICBfX20xMjhpIGlfYWxpZ247CisgIHVuc2lnbmVk IHUzMltTSVpFXTsKK30gYSwgYiwgYzsKKwordm9pZAordmVjdG9yX3JvdGF0 ZTMyICh2b2lkKQoreworICBpbnQgaTsKKworICBmb3IgKGkgPSAwOyBpIDwg U0laRTsgaSsrKQorICAgIGEudTMyW2ldID0gKGIudTMyW2ldID4+ICgoc2l6 ZW9mIChpbnQpICogOCkgLSBjLnUzMltpXSkpIHwgKGIudTMyW2ldIDw8IGMu dTMyW2ldKTsKK30KKworaW50IG1haW4gKCkKK3sKKyAgdmVjdG9yX3JvdGF0 ZTMyICgpOworICBleGl0ICgwKTsKK30KKworLyogeyBkZy1maW5hbCB7IHNj YW4tYXNzZW1ibGVyICJ2cHJvdGQiIH0gfSAqLwpkaWZmIC1wdXJOdyBnY2Mv Z2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2kzODYveG9wLXNoaWZ0MS12ZWN0 b3IuYyB4b3AvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2kzODYveG9wLXNo aWZ0MS12ZWN0b3IuYwotLS0gZ2NjL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdl dC9pMzg2L3hvcC1zaGlmdDEtdmVjdG9yLmMJMTk2OS0xMi0zMSAxODowMDow MC4wMDAwMDAwMDAgLTA2MDAKKysrIHhvcC9nY2MvdGVzdHN1aXRlL2djYy50 YXJnZXQvaTM4Ni94b3Atc2hpZnQxLXZlY3Rvci5jCTIwMDktMTAtMjAgMTQ6 MDY6MDIuMDAwMDAwMDAwIC0wNTAwCkBAIC0wLDAgKzEsMzUgQEAKKy8qIFRl c3QgdGhhdCB0aGUgY29tcGlsZXIgcHJvcGVybHkgb3B0aW1pemVzIHZlY3Rv ciBzaGlmdCBpbnN0cnVjdGlvbnMgaW50bworICAgcHNoYS9wc2hsIG9uIFhP UCBzeXN0ZW1zLiAgKi8KKworLyogeyBkZy1kbyBjb21waWxlIH0gKi8KKy8q IHsgZGctcmVxdWlyZS1lZmZlY3RpdmUtdGFyZ2V0IGxwNjQgfSAqLworLyog eyBkZy1vcHRpb25zICItTzIgLW14b3AgLWZ0cmVlLXZlY3Rvcml6ZSIgfSAq LworCitleHRlcm4gdm9pZCBleGl0IChpbnQpOworCit0eXBlZGVmIGxvbmcg X19tMTI4aSAgX19hdHRyaWJ1dGVfXyAoKF9fdmVjdG9yX3NpemVfXyAoMTYp LCBfX21heV9hbGlhc19fKSk7CisKKyNkZWZpbmUgU0laRSAxMDI0MAorCit1 bmlvbiB7CisgIF9fbTEyOGkgaV9hbGlnbjsKKyAgaW50IGkzMltTSVpFXTsK KyAgdW5zaWduZWQgdTMyW1NJWkVdOworfSBhLCBiLCBjOworCit2b2lkCits ZWZ0X3NoaWZ0MzIgKHZvaWQpCit7CisgIGludCBpOworCisgIGZvciAoaSA9 IDA7IGkgPCBTSVpFOyBpKyspCisgICAgYS5pMzJbaV0gPSBiLmkzMltpXSA8 PCBjLmkzMltpXTsKK30KKworaW50IG1haW4gKCkKK3sKKyAgbGVmdF9zaGZp dDMyICgpOworICBleGl0ICgwKTsKK30KKworLyogeyBkZy1maW5hbCB7IHNj YW4tYXNzZW1ibGVyICJ2cHNoYWQiIH0gfSAqLwpkaWZmIC1wdXJOdyBnY2Mv Z2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2kzODYveG9wLXNoaWZ0Mi12ZWN0 b3IuYyB4b3AvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2kzODYveG9wLXNo aWZ0Mi12ZWN0b3IuYwotLS0gZ2NjL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdl dC9pMzg2L3hvcC1zaGlmdDItdmVjdG9yLmMJMTk2OS0xMi0zMSAxODowMDow MC4wMDAwMDAwMDAgLTA2MDAKKysrIHhvcC9nY2MvdGVzdHN1aXRlL2djYy50 YXJnZXQvaTM4Ni94b3Atc2hpZnQyLXZlY3Rvci5jCTIwMDktMTAtMjAgMTQ6 MDY6MDIuMDAwMDAwMDAwIC0wNTAwCkBAIC0wLDAgKzEsMzUgQEAKKy8qIFRl c3QgdGhhdCB0aGUgY29tcGlsZXIgcHJvcGVybHkgb3B0aW1pemVzIHZlY3Rv ciBzaGlmdCBpbnN0cnVjdGlvbnMgaW50bworICAgcHNoYS9wc2hsIG9uIFhP UCBzeXN0ZW1zLiAgKi8KKworLyogeyBkZy1kbyBjb21waWxlIH0gKi8KKy8q IHsgZGctcmVxdWlyZS1lZmZlY3RpdmUtdGFyZ2V0IGxwNjQgfSAqLworLyog eyBkZy1vcHRpb25zICItTzIgLW14b3AgLWZ0cmVlLXZlY3Rvcml6ZSIgfSAq LworCitleHRlcm4gdm9pZCBleGl0IChpbnQpOworCit0eXBlZGVmIGxvbmcg X19tMTI4aSAgX19hdHRyaWJ1dGVfXyAoKF9fdmVjdG9yX3NpemVfXyAoMTYp LCBfX21heV9hbGlhc19fKSk7CisKKyNkZWZpbmUgU0laRSAxMDI0MAorCit1 bmlvbiB7CisgIF9fbTEyOGkgaV9hbGlnbjsKKyAgaW50IGkzMltTSVpFXTsK KyAgdW5zaWduZWQgdTMyW1NJWkVdOworfSBhLCBiLCBjOworCit2b2lkCity aWdodF9zaWduX3NoaWZ0MzIgKHZvaWQpCit7CisgIGludCBpOworCisgIGZv ciAoaSA9IDA7IGkgPCBTSVpFOyBpKyspCisgICAgYS5pMzJbaV0gPSBiLmkz MltpXSA+PiBjLmkzMltpXTsKK30KKworaW50IG1haW4gKCkKK3sKKyAgcmln aHRfc2lnbl9zaGZpdDMyICgpOworICBleGl0ICgwKTsKK30KKworLyogeyBk Zy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyICJ2cHNoYWQiIH0gfSAqLwpkaWZm IC1wdXJOdyBnY2MvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2kzODYveG9w LXNoaWZ0My12ZWN0b3IuYyB4b3AvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0 L2kzODYveG9wLXNoaWZ0My12ZWN0b3IuYwotLS0gZ2NjL2djYy90ZXN0c3Vp dGUvZ2NjLnRhcmdldC9pMzg2L3hvcC1zaGlmdDMtdmVjdG9yLmMJMTk2OS0x Mi0zMSAxODowMDowMC4wMDAwMDAwMDAgLTA2MDAKKysrIHhvcC9nY2MvdGVz dHN1aXRlL2djYy50YXJnZXQvaTM4Ni94b3Atc2hpZnQzLXZlY3Rvci5jCTIw MDktMTAtMjAgMTQ6MDY6MDIuMDAwMDAwMDAwIC0wNTAwCkBAIC0wLDAgKzEs MzUgQEAKKy8qIFRlc3QgdGhhdCB0aGUgY29tcGlsZXIgcHJvcGVybHkgb3B0 aW1pemVzIHZlY3RvciBzaGlmdCBpbnN0cnVjdGlvbnMgaW50bworICAgcHNo YS9wc2hsIG9uIFhPUCBzeXN0ZW1zLiAgKi8KKworLyogeyBkZy1kbyBjb21w aWxlIH0gKi8KKy8qIHsgZGctcmVxdWlyZS1lZmZlY3RpdmUtdGFyZ2V0IGxw NjQgfSAqLworLyogeyBkZy1vcHRpb25zICItTzIgLW14b3AgLWZ0cmVlLXZl Y3Rvcml6ZSIgfSAqLworCitleHRlcm4gdm9pZCBleGl0IChpbnQpOworCit0 eXBlZGVmIGxvbmcgX19tMTI4aSAgX19hdHRyaWJ1dGVfXyAoKF9fdmVjdG9y X3NpemVfXyAoMTYpLCBfX21heV9hbGlhc19fKSk7CisKKyNkZWZpbmUgU0la RSAxMDI0MAorCit1bmlvbiB7CisgIF9fbTEyOGkgaV9hbGlnbjsKKyAgaW50 IGkzMltTSVpFXTsKKyAgdW5zaWduZWQgdTMyW1NJWkVdOworfSBhLCBiLCBj OworCit2b2lkCityaWdodF91bnNfc2hpZnQzMiAodm9pZCkKK3sKKyAgaW50 IGk7CisKKyAgZm9yIChpID0gMDsgaSA8IFNJWkU7IGkrKykKKyAgICBhLnUz MltpXSA9IGIudTMyW2ldID4+IGMuaTMyW2ldOworfQorCitpbnQgbWFpbiAo KQoreworICByaWdodF91bnNfc2hmaXQzMiAoKTsKKyAgZXhpdCAoMCk7Cit9 CisKKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlciAidnBzaGxkIiB9 IH0gKi8KZGlmZiAtcHVyTncgZ2NjL2djYy90ZXN0c3VpdGUvZysrLmRnL290 aGVyL2kzODYtMi5DIHhvcC9nY2MvdGVzdHN1aXRlL2crKy5kZy9vdGhlci9p Mzg2LTIuQwotLS0gZ2NjL2djYy90ZXN0c3VpdGUvZysrLmRnL290aGVyL2kz ODYtMi5DCTIwMDktMTAtMjAgMTM6NTY6MjAuMDAwMDAwMDAwIC0wNTAwCisr KyB4b3AvZ2NjL3Rlc3RzdWl0ZS9nKysuZGcvb3RoZXIvaTM4Ni0yLkMJMjAw OS0xMC0yMSAxMTozNjoxOS4wMDAwMDAwMDAgLTA1MDAKQEAgLTEsOCArMSw5 IEBACi0vKiBUZXN0IHRoYXQgeyx4LGUscCx0LHMsdyxhLGl9bW1pbnRyaW4u aCwgZm1hNGludHJpbi5oLCBtbTNkbm93LmggYW5kCisvKiBUZXN0IHRoYXQg eyx4LGUscCx0LHMsdyxhLGl9bW1pbnRyaW4uaCwgZm1hNGludHJpbi5oLCB4 b3BpbnRyaW4uaCwgbW0zZG5vdy5oIGFuZAogICAgbW1fbWFsbG9jLmggYXJl IHVzYWJsZSB3aXRoIC1PIC1wZWRhbnRpYy1lcnJvcnMuICAqLwogLyogeyBk Zy1kbyBjb21waWxlIHsgdGFyZ2V0IGk/ODYtKi0qIHg4Nl82NC0qLSogfSB9 ICovCi0vKiB7IGRnLW9wdGlvbnMgIi1PIC1wZWRhbnRpYy1lcnJvcnMgLW1h cmNoPWs4IC1tM2Rub3cgLW1hdnggLW1zc2U0YSAtbWZtYTQgLW1hZXMgLW1w Y2xtdWwiIH0gKi8KKy8qIHsgZGctb3B0aW9ucyAiLU8gLXBlZGFudGljLWVy cm9ycyAtbWFyY2g9azggLW0zZG5vdyAtbWF2eCAtbXNzZTRhIC1tZm1hNCAt bXhvcCAtbWFlcyAtbXBjbG11bCIgfSAqLwogCiAjaW5jbHVkZSA8eDg2aW50 cmluLmg+CiAKIGludCBkdW1teTsKKwpkaWZmIC1wdXJOdyBnY2MvZ2NjL3Rl c3RzdWl0ZS9nKysuZGcvb3RoZXIvaTM4Ni0zLkMgeG9wL2djYy90ZXN0c3Vp dGUvZysrLmRnL290aGVyL2kzODYtMy5DCi0tLSBnY2MvZ2NjL3Rlc3RzdWl0 ZS9nKysuZGcvb3RoZXIvaTM4Ni0zLkMJMjAwOS0xMC0yMCAxMzo1NjoyMC4w MDAwMDAwMDAgLTA1MDAKKysrIHhvcC9nY2MvdGVzdHN1aXRlL2crKy5kZy9v dGhlci9pMzg2LTMuQwkyMDA5LTEwLTIxIDExOjA2OjQyLjAwMDAwMDAwMCAt MDUwMApAQCAtMSw2ICsxLDYgQEAKLS8qIFRlc3QgdGhhdCB7LHgsZSxwLHQs cyx3LGEsaX1tbWludHJpbi5oLCBmbWE0aW50cmluLmgsIG1tM2Rub3cuaCBh bmQKKy8qIFRlc3QgdGhhdCB7LHgsZSxwLHQscyx3LGEsaX1tbWludHJpbi5o LCBmbWE0aW50cmluLmgsIG1tM2Rub3cuaCwgeG9waW50cmluLmggYW5kCiAg ICAgbW1fbWFsbG9jLmggYXJlIHVzYWJsZSB3aXRoIC1PIC1ma2VlcC1pbmxp bmUtZnVuY3Rpb25zLiAgKi8KIC8qIHsgZGctZG8gY29tcGlsZSB7IHRhcmdl dCBpPzg2LSotKiB4ODZfNjQtKi0qIH0gfSAqLwotLyogeyBkZy1vcHRpb25z ICItTyAtZmtlZXAtaW5saW5lLWZ1bmN0aW9ucyAtbWFyY2g9azggLW0zZG5v dyAtbWF2eCAtbXNzZTRhIC1tZm1hNCAtbWFlcyAtbXBjbG11bCIgfSAqLwor LyogeyBkZy1vcHRpb25zICItTyAtZmtlZXAtaW5saW5lLWZ1bmN0aW9ucyAt bWFyY2g9azggLW0zZG5vdyAtbWF2eCAtbXNzZTRhIC1tZm1hNCAtbXhvcCAt bWFlcyAtbXBjbG11bCIgfSAqLwogCiAjaW5jbHVkZSA8eDg2aW50cmluLmg+ CmRpZmYgLXB1ck53IGdjYy9nY2MvdGVzdHN1aXRlL2crKy5kZy9vdGhlci9p Mzg2LTUuQyB4b3AvZ2NjL3Rlc3RzdWl0ZS9nKysuZGcvb3RoZXIvaTM4Ni01 LkMKLS0tIGdjYy9nY2MvdGVzdHN1aXRlL2crKy5kZy9vdGhlci9pMzg2LTUu QwkyMDA5LTEwLTIwIDEzOjU2OjIwLjAwMDAwMDAwMCAtMDUwMAorKysgeG9w L2djYy90ZXN0c3VpdGUvZysrLmRnL290aGVyL2kzODYtNS5DCTIwMDktMTAt MjEgMTE6MDc6MTYuMDAwMDAwMDAwIC0wNTAwCkBAIC0xLDYgKzEsNiBAQAot LyogVGVzdCB0aGF0IHsseCxlLHAsdCxzLHcsYSxpfW1taW50cmluLmgsIGZt YTRpbnRyaW4uaCwgbW0zZG5vdy5oIGFuZAorLyogVGVzdCB0aGF0IHsseCxl LHAsdCxzLHcsYSxpfW1taW50cmluLmgsIGZtYTRpbnRyaW4uaCwgeG9waW50 cmluLmgsIG1tM2Rub3cuaCBhbmQKICAgIG1tX21hbGxvYy5oIGFyZSB1c2Fi bGUgd2l0aCAtTyAtZmtlZXAtaW5saW5lLWZ1bmN0aW9ucy4gICovCiAvKiB7 IGRnLWRvIGNvbXBpbGUgeyB0YXJnZXQgaT84Ni0qLSogeDg2XzY0LSotKiB9 IH0gKi8KLS8qIHsgZGctb3B0aW9ucyAiLU8gLWZrZWVwLWlubGluZS1mdW5j dGlvbnMgLW1hcmNoPWs4IC1tM2Rub3cgLW1hdnggLW1zc2U0YSAtbWZtYTQg LW1hZXMgLW1wY2xtdWwiIH0gKi8KKy8qIHsgZGctb3B0aW9ucyAiLU8gLWZr ZWVwLWlubGluZS1mdW5jdGlvbnMgLW1hcmNoPWs4IC1tM2Rub3cgLW1hdngg LW1zc2U0YSAtbWZtYTQgLW14b3AgLW1hZXMgLW1wY2xtdWwiIH0gKi8KIAog I2luY2x1ZGUgPHg4NmludHJpbi5oPgpkaWZmIC1wdXJOdyBnY2MvZ2NjL3Rl c3RzdWl0ZS9nKysuZGcvb3RoZXIvaTM4Ni02LkMgeG9wL2djYy90ZXN0c3Vp dGUvZysrLmRnL290aGVyL2kzODYtNi5DCi0tLSBnY2MvZ2NjL3Rlc3RzdWl0 ZS9nKysuZGcvb3RoZXIvaTM4Ni02LkMJMjAwOS0xMC0yMCAxMzo1NjoyMC4w MDAwMDAwMDAgLTA1MDAKKysrIHhvcC9nY2MvdGVzdHN1aXRlL2crKy5kZy9v dGhlci9pMzg2LTYuQwkyMDA5LTEwLTIxIDExOjI0OjA3LjAwMDAwMDAwMCAt MDUwMApAQCAtMSw3ICsxLDcgQEAKLS8qIFRlc3QgdGhhdCB7LHgsZSxwLHQs cyx3LGEsaX1tbWludHJpbi5oLCBmbWE0aW50cmluLmgsIG1tM2Rub3cuaCBh bmQKKy8qIFRlc3QgdGhhdCB7LHgsZSxwLHQscyx3LGEsaX1tbWludHJpbi5o LCBmbWE0aW50cmluLmgsIHhvcGludHJpbi5oLCBtbTNkbm93LmggYW5kCiAg ICBtbV9tYWxsb2MuaCBhcmUgdXNhYmxlIHdpdGggLU8gLXBlZGFudGljLWVy cm9ycy4gICovCiAvKiB7IGRnLWRvIGNvbXBpbGUgeyB0YXJnZXQgaT84Ni0q LSogeDg2XzY0LSotKiB9IH0gKi8KLS8qIHsgZGctb3B0aW9ucyAiLU8gLXBl ZGFudGljLWVycm9ycyAtbWFyY2g9azggLW0zZG5vdyAtbWF2eCAtbXNzZTRh IC1tZm1hNCAtbWFlcyAtbXBjbG11bCIgfSAqLworLyogeyBkZy1vcHRpb25z ICItTyAtcGVkYW50aWMtZXJyb3JzIC1tYXJjaD1rOCAtbTNkbm93IC1tYXZ4 IC1tc3NlNGEgLW1mbWE0IC1teG9wIC1tYWVzIC1tcGNsbXVsIiB9ICovCiAK ICNpbmNsdWRlIDx4ODZpbnRyaW4uaD4KIAo= --_003_1C8DE0332CB01445BF7ADEDE3DDD570718D0502Csausexmbp02amdc_ Content-Type: application/octet-stream; name="xop-ChangeLog" Content-Description: xop-ChangeLog Content-Disposition: attachment; filename="xop-ChangeLog"; size=8661; creation-date="Wed, 21 Oct 2009 14:22:39 GMT"; modification-date="Wed, 21 Oct 2009 14:22:39 GMT" Content-Transfer-Encoding: base64 Content-length: 11741 MjAwOS0xMC0yMSAgSGFyc2hhIEphZ2FzaWEgIDxoYXJzaGEuamFnYXNpYUBh bWQuY29tPgoJICAgIER3YXJha2FuYXRoIFJhamFnb3BhbCAgPGR3YXJhay5y YWphZ29wYWxAYW1kLmNvbT4KCQoJKiBjb25maWcuZ2NjIChpWzM0NTY3XTg2 LSotKik6IEluY2x1ZGUgeG9waW50cmluLmguCgkoeDg2XzY0LSotKik6IERp dHRvLgoJKiBjb25maWcvaTM4Ni94b3BpbnRyaW4uaDogTmV3IGZpbGUsIHBy b3ZpZGUgY29tbW9uIHg4NiBjb21waWxlcgoJaW50cmluaXNpY3MgZm9yIFhP UC4KCSogY29uZmlnL2kzODYvY3B1aWQuaCAoYml0X1hPUCk6IERlZmluZSBY T1AgYml0LgoJKiBjb25maWcvaTM4Ni94ODZpbnRyaW4uaDogQWRkIFhPUCBj aGVjayBhbmQgeG9waW50cmluLmguCgkqIGNvbmZpZy9pMzg2L2kzODYtYy5j KGl4ODZfdGFyZ2V0X21hY3Jvc19pbnRlcm5hbCk6IENoZWNrCglJU0FfRkxB RyBmb3IgWE9QLiAKCSogY29uZmlnL2kzODYvaTM4Ni5oKFRBUkdFVF9YT1Ap OiBOZXcgbWFjcm8gZm9yIFhPUC4KCSogY29uZmlnL2kzODYvaTM4Ni5vcHQg KC1teG9wKTogTmV3IHN3aXRjaCBmb3IgWE9QIHN1cHBvcnQuCgkqIGNvbmZp Zy9pMzg2L2kzODYubWQgKFVOU1BFQ19YT1BfVU5TSUdORURfQ01QKQoJKFVO U1BFQ19YT1BfVFJVRUZBTFNFKQoJKFVOU1BFQ19YT1BfUEVSTVVURSkKCShV TlNQRUNfRlJDWik6IEFkZCBuZXcgVU5TUEVDIGZvciBYT1Agc3VwcG9ydC4K CShQUEVSTV8qKTogTmV3IGNvbnN0YW50cyBmb3IgdnBwZXJtIGluc3RydWN0 aW9uLgoJKHhvcF9wY21vdl88bW9kZT4pOiBBZGQgWE9QIGNvbmRpdGlvbmFs IG1vdiBpbnN0cnVjdGlvbnMuCgkqIGNvbmZpZy9pMzg2L2kzODYuYyAoT1BU SU9OX01BU0tfSVNBX1hPUF9TRVQpOiBOZXcuCgkoT1BUSU9OX01BU0tfSVNB X1hPUF9VTlNFVCk6IE5ldy4JCgkoT1BUSU9OX01BU0tfSVNBX1hPUF9VTlNF VCk6IENoYW5nZSBkZWZpbml0aW9uIHRvCglkZXBlbmQgb24gWE9QLgoJKGl4 ODZfaGFuZGxlX29wdGlvbik6IEhhbmRsZSAtbXhvcC4KCShpc2Ffb3B0cyk6 IEhhbmRsZSAtbXhvcC4KCShlbnVtIHB0YV9mbGFncyk6IEFkZCBQVEFfWE9Q LgoJKG92ZXJyaWRlX29wdGlvbnMpOiBBZGQgWE9QIHN1cHBvcnQuCgkocHJp bnRfb3BlcmFuZCk6IEFkZCBjb2RlIGZvciBYT1AgY29tcGFyZSBpbnN0cnVj dGlvbnMuCgkoaXg4Nl9leHBhbmRfc3NlX21vdmNjKTogRXh0ZW5kIGZvciBY T1AgY29uZGl0aW9uYWwgbW92ZSBpbnN0cnVjdGlvbi4KCShpeDg2X2V4cGFu ZF9pbnRfdmNvbmQpOiBFeHRlbmQgZm9yIFhPUCBjb21wYXJlIGluc3RydWN0 aW9uLgoKCShJWDg2X0JVSUxUSU5fVlBDTU9WKTogTmV3IGZvciBYT1AgaW50 cmluc2ljLgoJKElYODZfQlVJTFRJTl9WUENNT1ZfVjJESSk6IERpdHRvLgoJ KElYODZfQlVJTFRJTl9WUENNT1ZfVjRTSSk6IERpdHRvLgoJKElYODZfQlVJ TFRJTl9WUENNT1ZfVjhISSk6IERpdHRvLgoJKElYODZfQlVJTFRJTl9WUENN T1ZfVjE2UUkpOiBEaXR0by4KCShJWDg2X0JVSUxUSU5fVlBDTU9WX1Y0U0Yp OiBEaXR0by4KCShJWDg2X0JVSUxUSU5fVlBDTU9WX1YyREYpOiBEaXR0by4K CgkoSVg4Nl9CVUlMVElOX1ZQQ01PVjI1Nik6IERpdHRvLgoJKElYODZfQlVJ TFRJTl9WUENNT1ZfVjRESTI1Nik6IERpdHRvLgoJKElYODZfQlVJTFRJTl9W UENNT1ZfVjhTSTI1Nik6IERpdHRvLgoJKElYODZfQlVJTFRJTl9WUENNT1Zf VjE2SEkyNTYpOiBEaXR0by4KCShJWDg2X0JVSUxUSU5fVlBDTU9WX1YzMlFJ MjU2KTogRGl0dG8uCgkoSVg4Nl9CVUlMVElOX1ZQQ01PVl9WOFNGMjU2KTog RGl0dG8uCgkoSVg4Nl9CVUlMVElOX1ZQQ01PVl9WNERGMjU2KTogRGl0dG8u CgoJKElYODZfQlVJTFRJTl9WUFBFUk0pOiBEaXR0by4KCgkoSVg4Nl9CVUlM VElOX1ZQTUFDU1NXVyk6IERpdHRvLgoJKElYODZfQlVJTFRJTl9WUE1BQ1NX Vyk6IERpdHRvLgoJKElYODZfQlVJTFRJTl9WUE1BQ1NTV0QpOiBEaXR0by4K CShJWDg2X0JVSUxUSU5fVlBNQUNTV0QpOiBEaXR0by4KCShJWDg2X0JVSUxU SU5fVlBNQUNTU0REKTogRGl0dG8uCgkoSVg4Nl9CVUlMVElOX1ZQTUFDU0RE KTogRGl0dG8uCgkoSVg4Nl9CVUlMVElOX1ZQTUFDU1NEUUwpOiBEaXR0by4K CShJWDg2X0JVSUxUSU5fVlBNQUNTU0RRSCk6IERpdHRvLgoJKElYODZfQlVJ TFRJTl9WUE1BQ1NEUUwpOiBEaXR0by4KCShJWDg2X0JVSUxUSU5fVlBNQUNT RFFIKTogRGl0dG8uCgkoSVg4Nl9CVUlMVElOX1ZQTUFEQ1NTV0QpOiBEaXR0 by4KCShJWDg2X0JVSUxUSU5fVlBNQURDU1dEKTogRGl0dG8uCgoJKElYODZf QlVJTFRJTl9WUEhBRERCVyk6IERpdHRvLgoJKElYODZfQlVJTFRJTl9WUEhB RERCRCk6IERpdHRvLgoJKElYODZfQlVJTFRJTl9WUEhBRERCUSk6IERpdHRv LgoJKElYODZfQlVJTFRJTl9WUEhBRERXRCk6IERpdHRvLgoJKElYODZfQlVJ TFRJTl9WUEhBRERXUSk6IERpdHRvLgoJKElYODZfQlVJTFRJTl9WUEhBRERE USk6IERpdHRvLgoJKElYODZfQlVJTFRJTl9WUEhBRERVQlcpOiBEaXR0by4K CShJWDg2X0JVSUxUSU5fVlBIQUREVUJEKTogRGl0dG8uCgkoSVg4Nl9CVUlM VElOX1ZQSEFERFVCUSk6IERpdHRvLgoJKElYODZfQlVJTFRJTl9WUEhBRERV V0QpOiBEaXR0by4KCShJWDg2X0JVSUxUSU5fVlBIQUREVVdRKTogRGl0dG8u CgkoSVg4Nl9CVUlMVElOX1ZQSEFERFVEUSk6IERpdHRvLgoJKElYODZfQlVJ TFRJTl9WUEhTVUJCVyk6IERpdHRvLgoJKElYODZfQlVJTFRJTl9WUEhTVUJX RCk6IERpdHRvLgoJKElYODZfQlVJTFRJTl9WUEhTVUJEUSk6IERpdHRvLgoK CShJWDg2X0JVSUxUSU5fVlBST1RCKTogRGl0dG8uCgkoSVg4Nl9CVUlMVElO X1ZQUk9UVyk6IERpdHRvLgoJKElYODZfQlVJTFRJTl9WUFJPVEQpOiBEaXR0 by4KCShJWDg2X0JVSUxUSU5fVlBST1RRKTogRGl0dG8uCgkoSVg4Nl9CVUlM VElOX1ZQUk9UQl9JTU0pOiBEaXR0by4KCShJWDg2X0JVSUxUSU5fVlBST1RX X0lNTSk6IERpdHRvLgoJKElYODZfQlVJTFRJTl9WUFJPVERfSU1NKTogRGl0 dG8uCgkoSVg4Nl9CVUlMVElOX1ZQUk9UUV9JTU0pOiBEaXR0by4KCgkoSVg4 Nl9CVUlMVElOX1ZQU0hMQik6IERpdHRvLgoJKElYODZfQlVJTFRJTl9WUFNI TFcpOiBEaXR0by4KCShJWDg2X0JVSUxUSU5fVlBTSExEKTogRGl0dG8uCgko SVg4Nl9CVUlMVElOX1ZQU0hMUSk6IERpdHRvLgoJKElYODZfQlVJTFRJTl9W UFNIQUIpOiBEaXR0by4KCShJWDg2X0JVSUxUSU5fVlBTSEFXKTogRGl0dG8u CgkoSVg4Nl9CVUlMVElOX1ZQU0hBRCk6IERpdHRvLgoJKElYODZfQlVJTFRJ Tl9WUFNIQVEpOiBEaXR0by4KCgkoSVg4Nl9CVUlMVElOX1ZGUkNaU1MpOiBE aXR0by4KCShJWDg2X0JVSUxUSU5fVkZSQ1pTRCk6IERpdHRvLgoJKElYODZf QlVJTFRJTl9WRlJDWlBTKTogRGl0dG8uCgkoSVg4Nl9CVUlMVElOX1ZGUkNa UEQpOiBEaXR0by4KCShJWDg2X0JVSUxUSU5fVkZSQ1pQUzI1Nik6IERpdHRv LgoJKElYODZfQlVJTFRJTl9WRlJDWlBEMjU2KTogRGl0dG8uCgoJKElYODZf QlVJTFRJTl9WUENPTUVRVUIpOiBEaXR0by4KCShJWDg2X0JVSUxUSU5fVlBD T01ORVVCKTogRGl0dG8uCgkoSVg4Nl9CVUlMVElOX1ZQQ09NTFRVQik6IERp dHRvLgoJKElYODZfQlVJTFRJTl9WUENPTUxFVUIpOiBEaXR0by4KCShJWDg2 X0JVSUxUSU5fVlBDT01HVFVCKTogRGl0dG8uCgkoSVg4Nl9CVUlMVElOX1ZQ Q09NR0VVQik6IERpdHRvLgoJKElYODZfQlVJTFRJTl9WUENPTUZBTFNFVUIp OiBEaXR0by4KCShJWDg2X0JVSUxUSU5fVlBDT01UUlVFVUIpOiBEaXR0by4K CgkoSVg4Nl9CVUlMVElOX1ZQQ09NRVFVVyk6IERpdHRvLgoJKElYODZfQlVJ TFRJTl9WUENPTU5FVVcpOiBEaXR0by4KCShJWDg2X0JVSUxUSU5fVlBDT01M VFVXKTogRGl0dG8uCgkoSVg4Nl9CVUlMVElOX1ZQQ09NTEVVVyk6IERpdHRv LgoJKElYODZfQlVJTFRJTl9WUENPTUdUVVcpOiBEaXR0by4KCShJWDg2X0JV SUxUSU5fVlBDT01HRVVXKTogRGl0dG8uCgkoSVg4Nl9CVUlMVElOX1ZQQ09N RkFMU0VVVyk6IERpdHRvLgoJKElYODZfQlVJTFRJTl9WUENPTVRSVUVVVyk6 IERpdHRvLgoKCShJWDg2X0JVSUxUSU5fVlBDT01FUVVEKTogRGl0dG8uCgko SVg4Nl9CVUlMVElOX1ZQQ09NTkVVRCk6IERpdHRvLgoJKElYODZfQlVJTFRJ Tl9WUENPTUxUVUQpOiBEaXR0by4KCShJWDg2X0JVSUxUSU5fVlBDT01MRVVE KTogRGl0dG8uCgkoSVg4Nl9CVUlMVElOX1ZQQ09NR1RVRCk6IERpdHRvLgoJ KElYODZfQlVJTFRJTl9WUENPTUdFVUQpOiBEaXR0by4KCShJWDg2X0JVSUxU SU5fVlBDT01GQUxTRVVEKTogRGl0dG8uCgkoSVg4Nl9CVUlMVElOX1ZQQ09N VFJVRVVEKTogRGl0dG8uCgoJKElYODZfQlVJTFRJTl9WUENPTUVRVVEpOiBE aXR0by4KCShJWDg2X0JVSUxUSU5fVlBDT01ORVVRKTogRGl0dG8uCgkoSVg4 Nl9CVUlMVElOX1ZQQ09NTFRVUSk6IERpdHRvLgoJKElYODZfQlVJTFRJTl9W UENPTUxFVVEpOiBEaXR0by4KCShJWDg2X0JVSUxUSU5fVlBDT01HVFVRKTog RGl0dG8uCgkoSVg4Nl9CVUlMVElOX1ZQQ09NR0VVUSk6IERpdHRvLgoJKElY ODZfQlVJTFRJTl9WUENPTUZBTFNFVVEpOiBEaXR0by4KCShJWDg2X0JVSUxU SU5fVlBDT01UUlVFVVEpOiBEaXR0by4KCgkoSVg4Nl9CVUlMVElOX1ZQQ09N RVFCKTogRGl0dG8uCgkoSVg4Nl9CVUlMVElOX1ZQQ09NTkVCKTogRGl0dG8u CgkoSVg4Nl9CVUlMVElOX1ZQQ09NTFRCKTogRGl0dG8uCgkoSVg4Nl9CVUlM VElOX1ZQQ09NTEVCKTogRGl0dG8uCgkoSVg4Nl9CVUlMVElOX1ZQQ09NR1RC KTogRGl0dG8uCgkoSVg4Nl9CVUlMVElOX1ZQQ09NR0VCKTogRGl0dG8uCgko SVg4Nl9CVUlMVElOX1ZQQ09NRkFMU0VCKTogRGl0dG8uCgkoSVg4Nl9CVUlM VElOX1ZQQ09NVFJVRUIpOiBEaXR0by4KCgkoSVg4Nl9CVUlMVElOX1ZQQ09N RVFXKTogRGl0dG8uCgkoSVg4Nl9CVUlMVElOX1ZQQ09NTkVXKTogRGl0dG8u CgkoSVg4Nl9CVUlMVElOX1ZQQ09NTFRXKTogRGl0dG8uCgkoSVg4Nl9CVUlM VElOX1ZQQ09NTEVXKTogRGl0dG8uCgkoSVg4Nl9CVUlMVElOX1ZQQ09NR1RX KTogRGl0dG8uCgkoSVg4Nl9CVUlMVElOX1ZQQ09NR0VXKTogRGl0dG8uCgko SVg4Nl9CVUlMVElOX1ZQQ09NRkFMU0VXKTogRGl0dG8uCgkoSVg4Nl9CVUlM VElOX1ZQQ09NVFJVRVcpOiBEaXR0by4KCgkoSVg4Nl9CVUlMVElOX1ZQQ09N RVFEKTogRGl0dG8uCgkoSVg4Nl9CVUlMVElOX1ZQQ09NTkVEKTogRGl0dG8u CgkoSVg4Nl9CVUlMVElOX1ZQQ09NTFREKTogRGl0dG8uCgkoSVg4Nl9CVUlM VElOX1ZQQ09NTEVEKTogRGl0dG8uCgkoSVg4Nl9CVUlMVElOX1ZQQ09NR1RE KTogRGl0dG8uCgkoSVg4Nl9CVUlMVElOX1ZQQ09NR0VEKTogRGl0dG8uCgko SVg4Nl9CVUlMVElOX1ZQQ09NRkFMU0VEKTogRGl0dG8uCgkoSVg4Nl9CVUlM VElOX1ZQQ09NVFJVRUQpOiBEaXR0by4KCgkoSVg4Nl9CVUlMVElOX1ZQQ09N RVFRKTogRGl0dG8uCgkoSVg4Nl9CVUlMVElOX1ZQQ09NTkVRKTogRGl0dG8u CgkoSVg4Nl9CVUlMVElOX1ZQQ09NTFRRKTogRGl0dG8uCgkoSVg4Nl9CVUlM VElOX1ZQQ09NTEVRKTogRGl0dG8uCgkoSVg4Nl9CVUlMVElOX1ZQQ09NR1RR KTogRGl0dG8uCgkoSVg4Nl9CVUlMVElOX1ZQQ09NR0VRKTogRGl0dG8uCgko SVg4Nl9CVUlMVElOX1ZQQ09NRkFMU0VRKTogRGl0dG8uCgkoSVg4Nl9CVUlM VElOX1ZQQ09NVFJVRVEpOiBEaXR0by4KCgkoZW51bSBtdWx0aV9hcmdfdHlw ZSk6IE5ldyBlbnVtIGZvciBkZXNjcmliaW5nIHRoZSB2YXJpb3VzIFhPUAoJ aW50cmluc2ljIGFyZ3VtZW50IHR5cGVzLgoJKGJkZXNjX211bHRpX2FyZyk6 IE5ldyB0YWJsZSBmb3IgWE9QIGludHJpbnNpY3MuCgkoaXg4Nl9pbml0X21t eF9zc2VfYnVpbHRpbnMpOiBBZGQgWE9QIGludHJpbnNpYyBzdXBwb3J0LgoJ KGl4ODZfZXhwYW5kX211bHRpX2FyZ19idWlsdGluKTogTmV3IGZ1bmN0aW9u IGZvciBjcmVhdGluZyBYT1AKCWludHJpbnNpY3MuCgoJKiBjb25maWcvaTM4 Ni9zc2UubWQgKHNzZXJvdGF0ZW1heCk6IE5ldyBtb2RlIGF0dHJpYnV0ZSBm b3IgWE9QLgoJKHhvcF9wbWFjc3d3KTogRGl0dG8uCgkoeG9wX3BtYWNzc3d3 KTogRGl0dG8uCgkoeG9wX3BtYWNzZGQpOiBEaXR0by4KCSh4b3BfcG1hY3Nz ZGQpOiBEaXR0by4KCSh4b3BfcG1hY3NzZHFsKTogRGl0dG8uCgkoeG9wX3Bt YWNzc2RxaCk6IERpdHRvLgoJKHhvcF9wbWFjc2RxbCk6IERpdHRvLgoJKHhv cF9wbWFjc2RxbF9tZW0pOiBEaXR0by4KCSh4b3BfbXVsdjJkaXYyZGkzX2xv dyk6IERpdHRvLgoJKHhvcF9wbWFjc2RxaCk6IERpdHRvLgoJKHhvcF9wbWFj c2RxaF9tZW0pOiBEaXR0by4KCSh4b3BfbXVsdjJkaXYyZGkzX2hpZ2gpOiBE aXR0by4KCSh4b3BfcG1hY3Nzd2QpOiBEaXR0by4KCSh4b3BfcG1hY3N3ZCk6 IERpdHRvLgoJKHhvcF9wbWFkY3Nzd2QpOiBEaXR0by4KCSh4b3BfcG1hZGNz d2QpOiBEaXR0by4KCSh4b3BfcGNtb3ZfPG1vZGU+KTogRGl0dG8uCgkoeG9w X3BjbW92Xzxtb2RlPikyNTY6IERpdHRvLgoJKHhvcF9waGFkZGJ3KTogRGl0 dG8uCgkoeG9wX3BoYWRkYmQpOiBEaXR0by4KCSh4b3BfcGhhZGRicSk6IERp dHRvLgoJKHhvcF9waGFkZHdkKTogRGl0dG8uCgkoeG9wX3BoYWRkd3EpOiBE aXR0by4KCSh4b3BfcGhhZGRkcSk6IERpdHRvLgoJKHhvcF9waGFkZHVidyk6 IERpdHRvLgoJKHhvcF9waGFkZHViZCk6IERpdHRvLgoJKHhvcF9waGFkZHVi cSk6IERpdHRvLgoJKHhvcF9waGFkZHV3ZCk6IERpdHRvLgoJKHhvcF9waGFk ZHV3cSk6IERpdHRvLgoJKHhvcF9waGFkZHVkcSk6IERpdHRvLgoJKHhvcF9w aHN1YmJ3KTogRGl0dG8uCgkoeG9wX3Boc3Vid2QpOiBEaXR0by4KCSh4b3Bf cGhzdWJkcSk6IERpdHRvLgoJKHhvcF9wcGVybSk6IERpdHRvLgoJKHJvdGw8 bW9kZT4zKTogRGl0dG8uCgkocm90cjxtb2RlPjMpOiBEaXR0by4KCSh4b3Bf cm90bDxtb2RlPjMpOiBEaXR0by4KCSh4b3Bfcm90cjxtb2RlPjMpOiBEaXR0 by4KCSh2cm90cjxtb2RlPjMpOiBEaXR0by4KCSh2cm90bDxtb2RlPjMpOiBE aXR0by4KCSh4b3BfdnJvdGw8bW9kZT4zKTogRGl0dG8uCgkodmxzaHI8bW9k ZT4zKTogRGl0dG8uCgkodmFzaHI8bW9kZT4zKTogRGl0dG8uCgkodmFzaGw8 bW9kZT4zCgkoeG9wX2FzaGw8bW9kZT4zKTogRGl0dG8uCgkoeG9wX2xzaGw8 bW9kZT4zKTogRGl0dG8uCgkoYXNobHYxNnFpMyk6IERpdHRvLgoJKGxzaGx2 MTZxaTMpOiBEaXR0by4KCShhc2hydjE2cWkzKTogRGl0dG8uCgkoYXNocnYy ZGkzKTogRGl0dG8uCgkoeG9wX2ZyY3o8bW9kZT4yKTogRGl0dG8uCgkoeG9w X3ZtZnJjejxtb2RlPjIpOiBEaXR0by4KCSh4b3BfZnJjejxtb2RlPjIyNTYp OiBEaXR0by4JCgkoeG9wX21hc2tjbXA8bW9kZT4zKTogRGl0dG8uCgkoeG9w X21hc2tjbXBfdW5zPG1vZGU+Myk6IERpdHRvLgoJKHhvcF9tYXNrY21wX3Vu czI8bW9kZT4zKTogRGl0dG8uCgkoeG9wX3Bjb21fdGY8bW9kZT4zKTogRGl0 dG8uCgoJKiBkb2MvaW52b2tlLnRleGkgKC1teG9wKTogQWRkIGRvY3VtZW50 YXRpb24uCgkqIGRvYy9leHRlbmQudGV4aSAoeDg2IGludHJpbnNpY3MpOiBB ZGQgWE9QIGludHJpbnNpY3MuCgoJKiBnY2MudGFyZ2V0L2kzODYveG9wLWNo ZWNrLmg6IE5ldyBmaWxlLgoJKiBnY2MudGFyZ2V0L2kzODYveG9wLWhhZGR1 WC5jOiBEaXR0by4KCSogZ2NjLnRhcmdldC9pMzg2L3hvcC1oYWRkWC5jOiBE aXR0by4KCSogZ2NjLnRhcmdldC9pMzg2L3hvcC1oc3ViWC5jOiBEaXR0by4K CSogZ2NjLnRhcmdldC9pMzg2L3hvcC1pbXVsMzJ3aWRlbi12ZWN0b3IuYzog RGl0dG8uCgkqIGdjYy50YXJnZXQvaTM4Ni94b3AtaW11bDMyd2lkZW4tdmVj dG9yLmM6IERpdHRvLgoJKiBnY2MudGFyZ2V0L2kzODYveG9wLXBjbW92Mi5j OiBEaXR0by4KCSogZ2NjLnRhcmdldC9pMzg2L3hvcC1wY21vdi5jOiBEaXR0 by4KCSogZ2NjLnRhcmdldC9pMzg2L3hvcC1yb3RhdGUxLXZlY3Rvci5jOiBE aXR0by4KCSogZ2NjLnRhcmdldC9pMzg2L3hvcC1yb3RhdGUyLXZlY3Rvci5j OiBEaXR0by4KCSogZ2NjLnRhcmdldC9pMzg2L3hvcC1yb3RhdGUzLXZlY3Rv ci5jOiBEaXR0by4KCSogZ2NjLnRhcmdldC9pMzg2L3hvcC1zaGlmdDEtdmVj dG9yLmM6IERpdHRvLgoJKiBnY2MudGFyZ2V0L2kzODYveG9wLXNoaWZ0Mi12 ZWN0b3IuYzogRGl0dG8uCgkqIGdjYy50YXJnZXQvaTM4Ni94b3Atc2hpZnQz LXZlY3Rvci5jOiBEaXR0by4KCSogZ2NjLnRhcmdldC9pMzg2L2kzODYuZXhw OiAgQWRkIGNoZWNrX2VmZmVjdGl2ZV90YXJnZXRfeG9wLgoJKiBnY2MudGFy Z2V0L2kzODYvc3NlLTEyLmM6IFVwZGF0ZSB3aXRoIG5ldyBjb21waWxlIG9w dGlvbnMgdG8gCglhY3RpdmF0ZSBhbmQgY2hlY2sgeG9waW50cmluLmggaW50 cmluc2ljIGZpbGUuCgkqIGdjYy50YXJnZXQvaTM4Ni9zc2UtMTMuYzogRGl0 dG8uCgkqIGdjYy50YXJnZXQvaTM4Ni9zc2UtMTQuYzogRGl0dG8uCgkqIGdj Yy50YXJnZXQvaTM4Ni9zc2UtMjIuYzogRGl0dG8uCgkqIGdjYy50YXJnZXQv aTM4Ni9zc2UtMjMuYzogRGl0dG8uCgkqIGcrKy5kZy9vdGhlci9pMzg2LTIu QzogRGl0dG8uCgkqIGcrKy5kZy9vdGhlci9pMzg2LTMuQzogRGl0dG8uCgkq IGcrKy5kZy9vdGhlci9pMzg2LTUuQzogRGl0dG8uCgkqIGcrKy5kZy9vdGhl ci9pMzg2LTYuQzogRGl0dG8uCgkK --_003_1C8DE0332CB01445BF7ADEDE3DDD570718D0502Csausexmbp02amdc_--