From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from out30-131.freemail.mail.aliyun.com (out30-131.freemail.mail.aliyun.com [115.124.30.131]) by sourceware.org (Postfix) with ESMTPS id 353613856964 for ; Tue, 30 May 2023 05:26:56 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 353613856964 Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=linux.alibaba.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=linux.alibaba.com X-Alimail-AntiSpam:AC=PASS;BC=-1|-1;BR=01201311R141e4;CH=green;DM=||false|;DS=||;FP=0|-1|-1|-1|0|-1|-1|-1;HT=ay29a033018046050;MF=sinan.lin@linux.alibaba.com;NM=1;PH=DW;RN=6;SR=0;TI=W4_0.1.48_DEFAULT_21283C6A_1685423495385_o7001c63a; Received: from WS-web (sinan.lin@linux.alibaba.com[W4_0.1.48_DEFAULT_21283C6A_1685423495385_o7001c63a]) at Tue, 30 May 2023 13:26:52 +0800 Date: Tue, 30 May 2023 13:26:52 +0800 From: "Sinan" To: "Fei Gao" Cc: "kito.cheng" , "Jiawei" , "Die Li" , "Liao Shihua" , "gcc-patches" Reply-To: "Sinan" Message-ID: <61369dce-6def-4c11-a216-b3743034a165.sinan.lin@linux.alibaba.com> Subject: =?UTF-8?B?UmU6IFtQQVRDSCAxLzFdIFtWMl0gW1JJU0MtVl0gc3VwcG9ydCBjbS5wdXNoIGNtLnBvcCBj?= =?UTF-8?B?bS5wb3ByZXQgaW4gemNtcA==?= X-Mailer: [Alimail-Mailagent][W4_0.1.48][DEFAULT][Chrome] MIME-Version: 1.0 References: <20230516093354.1521-1-gaofei@eswincomputing.com>,<20230516093354.1521-2-gaofei@eswincomputing.com> x-aliyun-mail-creator: W4_0.1.48_DEFAULT_QvNTW96aWxsYS81LjAgKE1hY2ludG9zaDsgSW50ZWwgTWFjIE9TIFggMTBfMTVfNykgQXBwbGVXZWJLaXQvNTM3LjM2IChLSFRNTCwgbGlrZSBHZWNrbykgQ2hyb21lLzExMy4wLjAuMCBTYWZhcmkvNTM3LjM2La In-Reply-To: <20230516093354.1521-2-gaofei@eswincomputing.com> Content-Type: multipart/alternative; boundary="----=ALIBOUNDARY_84416_7fa21d1c2700_6475891c_7584c" X-Spam-Status: No, score=-20.3 required=5.0 tests=BAYES_00,ENV_AND_HDR_SPF_MATCH,GIT_PATCH_0,HTML_MESSAGE,KAM_DMARC_STATUS,KAM_SHORT,RCVD_IN_DNSWL_NONE,SPF_HELO_NONE,SPF_PASS,TXREP,T_SCC_BODY_TEXT_LINE,UNPARSEABLE_RELAY,USER_IN_DEF_SPF_WL autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: ------=ALIBOUNDARY_84416_7fa21d1c2700_6475891c_7584c Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: base64 Pj4gKy8qIFJldHVybiBUUlVFIGlmIFpjbXAgcHVzaCBhbmQgcG9wIGluc25z IHNob3VsZCBiZQo+PiArIGF2b2lkZWQuIEZBTFNFIG90aGVyd2lzZS4KPj4g KyBPbmx5IHVzZSBtdWx0aSBwdXNoICYgcG9wIGlmIGFsbCBHUFJzIG1hc2tl ZCBjYW4gYmUgY292ZXJlZCwKPj4gKyBhbmQgc3RhY2sgYWNjZXNzIGlzIFNQ IGJhc2VkLAo+PiArIGFuZCBHUFJzIGFyZSBhdCB0b3Agb2YgdGhlIHN0YWNr IGZyYW1lLAo+PiArIGFuZCBubyBjb25mbGljdHMgaW4gc3RhY2sgYWxsb2Nh dGlvbiB3aXRoIG90aGVyIGZlYXR1cmVzICovCj4+ICtzdGF0aWMgYm9vbAo+ PiArcmlzY3ZfYXZvaWRfbXVsdGlfcHVzaChjb25zdCBzdHJ1Y3QgcmlzY3Zf ZnJhbWVfaW5mbyAqZnJhbWUpCj4+ICt7Cj4+ICsgaWYgKCFUQVJHRVRfWkNN UAo+PiArIHx8IGNydGwtPmNhbGxzX2VoX3JldHVybgo+PiArIHx8IGZyYW1l X3BvaW50ZXJfbmVlZGVkCj4+ICsgfHwgY2Z1bi0+bWFjaGluZS0+aW50ZXJy dXB0X2hhbmRsZXJfcAo+PiArIHx8IGNmdW4tPm1hY2hpbmUtPnZhcmFyZ3Nf c2l6ZSAhPSAwCj4+ICsgfHwgY3J0bC0+YXJncy5wcmV0ZW5kX2FyZ3Nfc2l6 ZSAhPSAwCj4+ICsgfHwgKGZyYW1lLT5tYXNrICYgfiBNVUxUSV9QVVNIX0dQ Ul9NQVNLKSkKPj4gKyByZXR1cm4gdHJ1ZTsKPj4gKwo+PiArIHJldHVybiBm YWxzZTsKPj4gK30KQW55IHJlYXNvbiB0byBza2lwIGdlbmVyYXRpbmcgcHVz aC9wb3AgaW4gdGhlIGNhc2VzIHdoZXJlIGEgZnJhbWUgcG9pbnRlciBpcyBu ZWVkZWQ/CklJUkMsIG9ubHkgY29kZSBjb21waWxlZCB3aXRoIE8xIGFuZCBh Ym92ZSB3aWxsIG9taXQgZnJhbWUgcG9pbnRlciwgaWYgc28gdGhlbiBjb2Rl IHdpdGgKTzAgd2lsbCBuZXZlciBnZW5lcmF0ZSBjbS5wdXNoL3BvcC4gClNh bWUgcXVlc3Rpb24gZm9yIGludGVycnVwdF9oYW5kbGVyX3AuIEkgdGhpbmsg Y20ucHVzaC9wb3AgY2FuIGhhbmRsZSB0aGlzIGNhc2UuIGUuZy4KdGhlIHRl c3QgY2FzZSB6Yy16Y21wLXB1c2gtcG9wLTYuYyBmcm9tIEppYXdlaSdzIHBh dGNoLgpCUiwKU2luYW4KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClNlbmRlcjpG ZWkgR2FvIDxnYW9mZWlAZXN3aW5jb21wdXRpbmcuY29tPgpTZW50IEF0OjIw MjMgTWF5IDE2IChUdWUuKSAxNzozNApSZWNpcGllbnQ6c2luYW4ubGluIDxz aW5hbi5saW5AbGludXguYWxpYmFiYS5jb20+OyBqaWF3ZWkgPGppYXdlaUBp c2Nhcy5hYy5jbj47IHNoaWh1YSA8c2hpaHVhQGlzY2FzLmFjLmNuPjsgbGlk aWUgPGxpZGllQGVzd2luY29tcHV0aW5nLmNvbT4KQ2M6RmVpIEdhbyA8Z2Fv ZmVpQGVzd2luY29tcHV0aW5nLmNvbT4KU3ViamVjdDpbUEFUQ0ggMS8xXSBb VjJdIFtSSVNDLVZdIHN1cHBvcnQgY20ucHVzaCBjbS5wb3AgY20ucG9wcmV0 IGluIHpjbXAKWmNtcCBjYW4gc2hhcmUgdGhlIHNhbWUgbG9naWMgYXMgc2F2 ZS1yZXN0b3JlIGluIHN0YWNrIGFsbG9jYXRpb246IHByZS1hbGxvY2F0aW9u CmJ5IGNtLnB1c2gsIHN0ZXAgMSBhbmQgc3RlcCAyLgpwbGVhc2UgYmUgbm90 ZWQgY20ucHVzaCBwdXNoZXMgcmEsIHMwLXMxMSBpbiByZXZlcnNlIG9yZGVy IHRoYW4gd2hhdCBzYXZlLXJlc3RvcmUgZG9lcy4KU28gYWRhcHRpb24gaGFz IGJlZW4gZG9uZSBpbiAuY2ZpIGRpcmVjdGl2ZXMgaW4gbXkgcGF0Y2guCmdj Yy9DaGFuZ2VMb2c6CiAqIGNvbmZpZy9yaXNjdi9wcmVkaWNhdGVzLm1kIChz bG90XzBfb2Zmc2V0X29wZXJhbmQpOiBwcmVkaWNhdGVzIGZvciBzbG90IDAg b2Zmc2V0LgogKHNsb3RfMV9vZmZzZXRfb3BlcmFuZCk6IGxpa2V3aXNlCiAo c2xvdF8yX29mZnNldF9vcGVyYW5kKTogbGlrZXdpc2UKIChzbG90XzNfb2Zm c2V0X29wZXJhbmQpOiBsaWtld2lzZQogKHNsb3RfNF9vZmZzZXRfb3BlcmFu ZCk6IGxpa2V3aXNlCiAoc2xvdF81X29mZnNldF9vcGVyYW5kKTogbGlrZXdp c2UKIChzbG90XzZfb2Zmc2V0X29wZXJhbmQpOiBsaWtld2lzZQogKHNsb3Rf N19vZmZzZXRfb3BlcmFuZCk6IGxpa2V3aXNlCiAoc2xvdF84X29mZnNldF9v cGVyYW5kKTogbGlrZXdpc2UKIChzbG90Xzlfb2Zmc2V0X29wZXJhbmQpOiBs aWtld2lzZQogKHNsb3RfMTBfb2Zmc2V0X29wZXJhbmQpOiBsaWtld2lzZQog KHNsb3RfMTFfb2Zmc2V0X29wZXJhbmQpOiBsaWtld2lzZQogKHNsb3RfMTJf b2Zmc2V0X29wZXJhbmQpOiBsaWtld2lzZQogKHN0YWNrX3B1c2hfdXBfdG9f cmFfb3BlcmFuZCk6IHByZWRpY2F0ZXMgZm9yIHN0YWNrIGFkanVzdCBvZiBw dXNoaW5nIHJhCiAoc3RhY2tfcHVzaF91cF90b19zMF9vcGVyYW5kKTogcHJl ZGljYXRlcyBmb3Igc3RhY2sgYWRqdXN0IG9mIHB1c2hpbmcgcmEsIHMwCiAo c3RhY2tfcHVzaF91cF90b19zMV9vcGVyYW5kKTogbGlrZXdpc2UKIChzdGFj a19wdXNoX3VwX3RvX3MyX29wZXJhbmQpOiBsaWtld2lzZQogKHN0YWNrX3B1 c2hfdXBfdG9fczNfb3BlcmFuZCk6IGxpa2V3aXNlCiAoc3RhY2tfcHVzaF91 cF90b19zNF9vcGVyYW5kKTogbGlrZXdpc2UKIChzdGFja19wdXNoX3VwX3Rv X3M1X29wZXJhbmQpOiBsaWtld2lzZQogKHN0YWNrX3B1c2hfdXBfdG9fczZf b3BlcmFuZCk6IGxpa2V3aXNlCiAoc3RhY2tfcHVzaF91cF90b19zN19vcGVy YW5kKTogbGlrZXdpc2UKIChzdGFja19wdXNoX3VwX3RvX3M4X29wZXJhbmQp OiBsaWtld2lzZQogKHN0YWNrX3B1c2hfdXBfdG9fczlfb3BlcmFuZCk6IGxp a2V3aXNlCiAoc3RhY2tfcHVzaF91cF90b19zMTFfb3BlcmFuZCk6IGxpa2V3 aXNlCiAoc3RhY2tfcG9wX3VwX3RvX3JhX29wZXJhbmQpOiBwcmVkaWNhdGVz IGZvciBzdGFjayBhZGp1c3Qgb2YgcG9waW5nIHJhCiAoc3RhY2tfcG9wX3Vw X3RvX3MwX29wZXJhbmQpOiBwcmVkaWNhdGVzIGZvciBzdGFjayBhZGp1c3Qg b2YgcG9waW5nIHJhLCBzMAogKHN0YWNrX3BvcF91cF90b19zMV9vcGVyYW5k KTogbGlrZXdpc2UKIChzdGFja19wb3BfdXBfdG9fczJfb3BlcmFuZCk6IGxp a2V3aXNlCiAoc3RhY2tfcG9wX3VwX3RvX3MzX29wZXJhbmQpOiBsaWtld2lz ZQogKHN0YWNrX3BvcF91cF90b19zNF9vcGVyYW5kKTogbGlrZXdpc2UKIChz dGFja19wb3BfdXBfdG9fczVfb3BlcmFuZCk6IGxpa2V3aXNlCiAoc3RhY2tf cG9wX3VwX3RvX3M2X29wZXJhbmQpOiBsaWtld2lzZQogKHN0YWNrX3BvcF91 cF90b19zN19vcGVyYW5kKTogbGlrZXdpc2UKIChzdGFja19wb3BfdXBfdG9f czhfb3BlcmFuZCk6IGxpa2V3aXNlCiAoc3RhY2tfcG9wX3VwX3RvX3M5X29w ZXJhbmQpOiBsaWtld2lzZQogKHN0YWNrX3BvcF91cF90b19zMTFfb3BlcmFu ZCk6IGxpa2V3aXNlCiAqIGNvbmZpZy9yaXNjdi9yaXNjdi1wcm90b3MuaCAo cmlzY3ZfemNtcF92YWxpZF9zbG90X29mZnNldF9wKTogZGVjbGFyYXRpb24K IChyaXNjdl96Y21wX3ZhbGlkX3N0YWNrX2Fkal9ieXRlc19wKTogZGVjbGFy YXRpb24KICogY29uZmlnL3Jpc2N2L3Jpc2N2LmNjIChzdHJ1Y3QgcmlzY3Zf ZnJhbWVfaW5mbyk6IGNvbW1lbnQgY2hhbmdlCiAocmlzY3ZfYXZvaWRfbXVs dGlfcHVzaCk6IGhlbHBlciBmdW5jdGlvbiBvZiByaXNjdl91c2VfbXVsdGlf cHVzaAogKHJpc2N2X3VzZV9tdWx0aV9wdXNoKTogdHJ1ZSBpZiBtdWx0aSBw dXNoIGlzIHVzZWQKIChyaXNjdl9tdWx0aV9wdXNoX3NyZWdzX2NvdW50KTog bnVtIG9mIHNyZWdzIGluIG11bHRpLXB1c2gKIChyaXNjdl9tdWx0aV9wdXNo X3JlZ3NfY291bnQpOiBudW0gb2YgcmVncyBpbiBtdWx0aS1wdXNoCiAocmlz Y3ZfMTZieXRlc19hbGlnbik6IGFsaWduIHRvIDE2IGJ5dGVzCiAocmlzY3Zf c3RhY2tfYWxpZ24pOiBtb3ZlZCB0byBhIGJldHRlciBwbGFjZQogKHJpc2N2 X3NhdmVfbGliY2FsbF9jb3VudCk6IG5vIGZ1bmN0aW9uYWwgY2hhbmdlCiAo cmlzY3ZfY29tcHV0ZV9mcmFtZV9pbmZvKTogYWRkIHpjbXAgZnJhbWUgaW5m bwogKHJpc2N2X2FkanVzdF9tdWx0aV9wdXNoX2NmaV9wcm9sb2d1ZSk6IGFk anVzdCBjZmkgZm9yIGNtLnB1c2gKIChnZXRfc2xvdF9vZmZzZXRfcnR4KTog Z2V0IHRoZSBydHggb2Ygc2xvdCB0byBwdXNoIG9yIHBvcAogKHJpc2N2X2dl bl9tdWx0aV9wdXNoX3BvcF9pbnNuKTogZ2VuIGZ1bmN0aW9uIGZvciBtdWx0 aSBwdXNoIGFuZCBwb3AKIChyaXNjdl9leHBhbmRfcHJvbG9ndWUpOiBhbGxv Y2F0ZSBzdGFjayBieSBjbS5wdXNoCiAocmlzY3ZfYWRqdXN0X211bHRpX3Bv cF9jZmlfZXBpbG9ndWUpOiBhZGp1c3QgY2ZpIGZvciBjbS5wb3BbcmV0XQog KHJpc2N2X2V4cGFuZF9lcGlsb2d1ZSk6IGFsbG9jYXRlIHN0YWNrIGJ5IGNt LnBvcFtyZXRdCiAoemNtcF9iYXNlX2Fkaik6IGNhbGN1bGF0ZSBzdGFjayBh ZGp1c3RtZW50IGJhc2Ugc2l6ZQogKHpjbXBfYWRkaXRpb25hbF9hZGopOiBj YWxjdWxhdGUgc3RhY2sgYWRqdXN0bWVudCBhZGRpdGlvbmFsIHNpemUKIChy aXNjdl96Y21wX3ZhbGlkX3Nsb3Rfb2Zmc2V0X3ApOiBjaGVjayBpZiBvZmZz ZXQgaXMgdmFsaWQgZm9yIGEgc2xvdAogKHJpc2N2X3pjbXBfdmFsaWRfc3Rh Y2tfYWRqX2J5dGVzX3ApOiBjaGVjayBpZiBzdGFjayBhZGp1c3RtZW50IHNp emUgaXMgdmFsaWQKICogY29uZmlnL3Jpc2N2L3Jpc2N2LmggKFJFVFVSTl9B RERSX01BU0spOiBtYXNrIG9mIHJhCiAoUzBfTUFTSyk6IGxpa2V3aXNlCiAo UzFfTUFTSyk6IGxpa2V3aXNlCiAoUzJfTUFTSyk6IGxpa2V3aXNlCiAoUzNf TUFTSyk6IGxpa2V3aXNlCiAoUzRfTUFTSyk6IGxpa2V3aXNlCiAoUzVfTUFT Syk6IGxpa2V3aXNlCiAoUzZfTUFTSyk6IGxpa2V3aXNlCiAoUzdfTUFTSyk6 IGxpa2V3aXNlCiAoUzhfTUFTSyk6IGxpa2V3aXNlCiAoUzlfTUFTSyk6IGxp a2V3aXNlCiAoUzEwX01BU0spOiBsaWtld2lzZQogKFMxMV9NQVNLKTogbGlr ZXdpc2UKIChNVUxUSV9QVVNIX0dQUl9NQVNLKTogR1BSX01BU0sgdGhhdCBj bS5wdXNoIGNhbiBjb3ZlciBhdCBtb3N0CiAoWkNNUF9NQVhfU1BJTU0pOiBt YXggc3BpbW0gdmFsdWUKIChaQ01QX1NQX0lOQ19TVEVQKTogemNtcCBzcCBp bmNyZW1lbnQgc3RlcAogKFpDTVBfSU5WQUxJRF9TMFMxMF9TUkVHU19DT1VO VFMpOiBudW0gb2YgczAtczEwCiAoWkNNUF9TMFMxMV9TUkVHU19DT1VOVFMp OiBudW0gb2YgczAtczExCiAoWkNNUF9NQVhfR1JQX1NMT1RTKTogbWF4IHNs b3RzIG9mIHB1c2hpbmcgYW5kIHBvcGluZyBpbiB6Y21wCiAqIGNvbmZpZy9y aXNjdi9yaXNjdi5tZDogaW5jbHVkZSB6Yy5tZAogKiBjb25maWcvcmlzY3Yv emMubWQ6IE5ldyBmaWxlLiBtYWNoaW5lIGRlc2NyaXB0aW9uIGZvciB6Y21w CmdjYy90ZXN0c3VpdGUvQ2hhbmdlTG9nOgogKiBnY2MudGFyZ2V0L3Jpc2N2 L3J2MzJlX3pjbXAuYzogTmV3IHRlc3QuCiAqIGdjYy50YXJnZXQvcmlzY3Yv cnYzMmlfemNtcC5jOiBOZXcgdGVzdC4KICogZ2NjLnRhcmdldC9yaXNjdi96 Y21wX3N0YWNrX2FsaWdubWVudC5jOiBOZXcgdGVzdC4KLS0tCiBnY2MvY29u ZmlnL3Jpc2N2L3ByZWRpY2F0ZXMubWQgfCAxNDggKysrCiBnY2MvY29uZmln L3Jpc2N2L3Jpc2N2LXByb3Rvcy5oIHwgMiArCiBnY2MvY29uZmlnL3Jpc2N2 L3Jpc2N2LmNjIHwgNDc3ICsrKysrKystCiBnY2MvY29uZmlnL3Jpc2N2L3Jp c2N2LmggfCAyMyArCiBnY2MvY29uZmlnL3Jpc2N2L3Jpc2N2Lm1kIHwgMiAr CiBnY2MvY29uZmlnL3Jpc2N2L3pjLm1kIHwgMTA0MiArKysrKysrKysrKysr KysrKwogZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2MzJlX3pj bXAuYyB8IDIzOSArKysrCiBnY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlz Y3YvcnYzMmlfemNtcC5jIHwgMjM5ICsrKysKIC4uLi9nY2MudGFyZ2V0L3Jp c2N2L3pjbXBfc3RhY2tfYWxpZ25tZW50LmMgfCAyMyArCiA5IGZpbGVzIGNo YW5nZWQsIDIxNTUgaW5zZXJ0aW9ucygrKSwgNDAgZGVsZXRpb25zKC0pCiBj cmVhdGUgbW9kZSAxMDA2NDQgZ2NjL2NvbmZpZy9yaXNjdi96Yy5tZAogY3Jl YXRlIG1vZGUgMTAwNjQ0IGdjYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNj di9ydjMyZV96Y21wLmMKIGNyZWF0ZSBtb2RlIDEwMDY0NCBnY2MvdGVzdHN1 aXRlL2djYy50YXJnZXQvcmlzY3YvcnYzMmlfemNtcC5jCiBjcmVhdGUgbW9k ZSAxMDA2NDQgZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3pjbXBf c3RhY2tfYWxpZ25tZW50LmMKZGlmZiAtLWdpdCBhL2djYy9jb25maWcvcmlz Y3YvcHJlZGljYXRlcy5tZCBiL2djYy9jb25maWcvcmlzY3YvcHJlZGljYXRl cy5tZAppbmRleCBlNWFkZjA2ZmEyNS4uZDNkMzBkYzY3ZjcgMTAwNjQ0Ci0t LSBhL2djYy9jb25maWcvcmlzY3YvcHJlZGljYXRlcy5tZAorKysgYi9nY2Mv Y29uZmlnL3Jpc2N2L3ByZWRpY2F0ZXMubWQKQEAgLTU5LDYgKzU5LDE1NCBA QAogKGlvciAobWF0Y2hfb3BlcmFuZCAwICJjb25zdF8wX29wZXJhbmQiKQog KG1hdGNoX29wZXJhbmQgMCAicmVnaXN0ZXJfb3BlcmFuZCIpKSkKKyhkZWZp bmVfcHJlZGljYXRlICJzbG90XzBfb2Zmc2V0X29wZXJhbmQiCisgKGFuZCAo bWF0Y2hfY29kZSAiY29uc3RfaW50IikKKyAobWF0Y2hfdGVzdCAicmlzY3Zf emNtcF92YWxpZF9zbG90X29mZnNldF9wIChJTlRWQUwgKG9wKSwgMCkiKSkp CisKKyhkZWZpbmVfcHJlZGljYXRlICJzbG90XzFfb2Zmc2V0X29wZXJhbmQi CisgKGFuZCAobWF0Y2hfY29kZSAiY29uc3RfaW50IikKKyAobWF0Y2hfdGVz dCAicmlzY3ZfemNtcF92YWxpZF9zbG90X29mZnNldF9wIChJTlRWQUwgKG9w KSwgMSkiKSkpCisKKyhkZWZpbmVfcHJlZGljYXRlICJzbG90XzJfb2Zmc2V0 X29wZXJhbmQiCisgKGFuZCAobWF0Y2hfY29kZSAiY29uc3RfaW50IikKKyAo bWF0Y2hfdGVzdCAicmlzY3ZfemNtcF92YWxpZF9zbG90X29mZnNldF9wIChJ TlRWQUwgKG9wKSwgMikiKSkpCisKKyhkZWZpbmVfcHJlZGljYXRlICJzbG90 XzNfb2Zmc2V0X29wZXJhbmQiCisgKGFuZCAobWF0Y2hfY29kZSAiY29uc3Rf aW50IikKKyAobWF0Y2hfdGVzdCAicmlzY3ZfemNtcF92YWxpZF9zbG90X29m ZnNldF9wIChJTlRWQUwgKG9wKSwgMykiKSkpCisKKyhkZWZpbmVfcHJlZGlj YXRlICJzbG90XzRfb2Zmc2V0X29wZXJhbmQiCisgKGFuZCAobWF0Y2hfY29k ZSAiY29uc3RfaW50IikKKyAobWF0Y2hfdGVzdCAicmlzY3ZfemNtcF92YWxp ZF9zbG90X29mZnNldF9wIChJTlRWQUwgKG9wKSwgNCkiKSkpCisKKyhkZWZp bmVfcHJlZGljYXRlICJzbG90XzVfb2Zmc2V0X29wZXJhbmQiCisgKGFuZCAo bWF0Y2hfY29kZSAiY29uc3RfaW50IikKKyAobWF0Y2hfdGVzdCAicmlzY3Zf emNtcF92YWxpZF9zbG90X29mZnNldF9wIChJTlRWQUwgKG9wKSwgNSkiKSkp CisKKyhkZWZpbmVfcHJlZGljYXRlICJzbG90XzZfb2Zmc2V0X29wZXJhbmQi CisgKGFuZCAobWF0Y2hfY29kZSAiY29uc3RfaW50IikKKyAobWF0Y2hfdGVz dCAicmlzY3ZfemNtcF92YWxpZF9zbG90X29mZnNldF9wIChJTlRWQUwgKG9w KSwgNikiKSkpCisKKyhkZWZpbmVfcHJlZGljYXRlICJzbG90Xzdfb2Zmc2V0 X29wZXJhbmQiCisgKGFuZCAobWF0Y2hfY29kZSAiY29uc3RfaW50IikKKyAo bWF0Y2hfdGVzdCAicmlzY3ZfemNtcF92YWxpZF9zbG90X29mZnNldF9wIChJ TlRWQUwgKG9wKSwgNykiKSkpCisKKyhkZWZpbmVfcHJlZGljYXRlICJzbG90 Xzhfb2Zmc2V0X29wZXJhbmQiCisgKGFuZCAobWF0Y2hfY29kZSAiY29uc3Rf aW50IikKKyAobWF0Y2hfdGVzdCAicmlzY3ZfemNtcF92YWxpZF9zbG90X29m ZnNldF9wIChJTlRWQUwgKG9wKSwgOCkiKSkpCisKKyhkZWZpbmVfcHJlZGlj YXRlICJzbG90Xzlfb2Zmc2V0X29wZXJhbmQiCisgKGFuZCAobWF0Y2hfY29k ZSAiY29uc3RfaW50IikKKyAobWF0Y2hfdGVzdCAicmlzY3ZfemNtcF92YWxp ZF9zbG90X29mZnNldF9wIChJTlRWQUwgKG9wKSwgOSkiKSkpCisKKyhkZWZp bmVfcHJlZGljYXRlICJzbG90XzEwX29mZnNldF9vcGVyYW5kIgorIChhbmQg KG1hdGNoX2NvZGUgImNvbnN0X2ludCIpCisgKG1hdGNoX3Rlc3QgInJpc2N2 X3pjbXBfdmFsaWRfc2xvdF9vZmZzZXRfcCAoSU5UVkFMIChvcCksIDEwKSIp KSkKKworKGRlZmluZV9wcmVkaWNhdGUgInNsb3RfMTFfb2Zmc2V0X29wZXJh bmQiCisgKGFuZCAobWF0Y2hfY29kZSAiY29uc3RfaW50IikKKyAobWF0Y2hf dGVzdCAicmlzY3ZfemNtcF92YWxpZF9zbG90X29mZnNldF9wIChJTlRWQUwg KG9wKSwgMTEpIikpKQorCisoZGVmaW5lX3ByZWRpY2F0ZSAic2xvdF8xMl9v ZmZzZXRfb3BlcmFuZCIKKyAoYW5kIChtYXRjaF9jb2RlICJjb25zdF9pbnQi KQorIChtYXRjaF90ZXN0ICJyaXNjdl96Y21wX3ZhbGlkX3Nsb3Rfb2Zmc2V0 X3AgKElOVFZBTCAob3ApLCAxMikiKSkpCisKKyhkZWZpbmVfcHJlZGljYXRl ICJzdGFja19wdXNoX3VwX3RvX3JhX29wZXJhbmQiCisgKGFuZCAobWF0Y2hf Y29kZSAiY29uc3RfaW50IikKKyAobWF0Y2hfdGVzdCAicmlzY3ZfemNtcF92 YWxpZF9zdGFja19hZGpfYnl0ZXNfcCAoSU5UVkFMIChvcCkgKiAtMSwgMSki KSkpCisKKyhkZWZpbmVfcHJlZGljYXRlICJzdGFja19wdXNoX3VwX3RvX3Mw X29wZXJhbmQiCisgKGFuZCAobWF0Y2hfY29kZSAiY29uc3RfaW50IikKKyAo bWF0Y2hfdGVzdCAicmlzY3ZfemNtcF92YWxpZF9zdGFja19hZGpfYnl0ZXNf cCAoSU5UVkFMIChvcCkgKiAtMSwgMikiKSkpCisKKyhkZWZpbmVfcHJlZGlj YXRlICJzdGFja19wdXNoX3VwX3RvX3MxX29wZXJhbmQiCisgKGFuZCAobWF0 Y2hfY29kZSAiY29uc3RfaW50IikKKyAobWF0Y2hfdGVzdCAicmlzY3ZfemNt cF92YWxpZF9zdGFja19hZGpfYnl0ZXNfcCAoSU5UVkFMIChvcCkgKiAtMSwg MykiKSkpCisKKyhkZWZpbmVfcHJlZGljYXRlICJzdGFja19wdXNoX3VwX3Rv X3MyX29wZXJhbmQiCisgKGFuZCAobWF0Y2hfY29kZSAiY29uc3RfaW50IikK KyAobWF0Y2hfdGVzdCAicmlzY3ZfemNtcF92YWxpZF9zdGFja19hZGpfYnl0 ZXNfcCAoSU5UVkFMIChvcCkgKiAtMSwgNCkiKSkpCisKKyhkZWZpbmVfcHJl ZGljYXRlICJzdGFja19wdXNoX3VwX3RvX3MzX29wZXJhbmQiCisgKGFuZCAo bWF0Y2hfY29kZSAiY29uc3RfaW50IikKKyAobWF0Y2hfdGVzdCAicmlzY3Zf emNtcF92YWxpZF9zdGFja19hZGpfYnl0ZXNfcCAoSU5UVkFMIChvcCkgKiAt MSwgNSkiKSkpCisKKyhkZWZpbmVfcHJlZGljYXRlICJzdGFja19wdXNoX3Vw X3RvX3M0X29wZXJhbmQiCisgKGFuZCAobWF0Y2hfY29kZSAiY29uc3RfaW50 IikKKyAobWF0Y2hfdGVzdCAicmlzY3ZfemNtcF92YWxpZF9zdGFja19hZGpf Ynl0ZXNfcCAoSU5UVkFMIChvcCkgKiAtMSwgNikiKSkpCisKKyhkZWZpbmVf cHJlZGljYXRlICJzdGFja19wdXNoX3VwX3RvX3M1X29wZXJhbmQiCisgKGFu ZCAobWF0Y2hfY29kZSAiY29uc3RfaW50IikKKyAobWF0Y2hfdGVzdCAicmlz Y3ZfemNtcF92YWxpZF9zdGFja19hZGpfYnl0ZXNfcCAoSU5UVkFMIChvcCkg KiAtMSwgNykiKSkpCisKKyhkZWZpbmVfcHJlZGljYXRlICJzdGFja19wdXNo X3VwX3RvX3M2X29wZXJhbmQiCisgKGFuZCAobWF0Y2hfY29kZSAiY29uc3Rf aW50IikKKyAobWF0Y2hfdGVzdCAicmlzY3ZfemNtcF92YWxpZF9zdGFja19h ZGpfYnl0ZXNfcCAoSU5UVkFMIChvcCkgKiAtMSwgOCkiKSkpCisKKyhkZWZp bmVfcHJlZGljYXRlICJzdGFja19wdXNoX3VwX3RvX3M3X29wZXJhbmQiCisg KGFuZCAobWF0Y2hfY29kZSAiY29uc3RfaW50IikKKyAobWF0Y2hfdGVzdCAi cmlzY3ZfemNtcF92YWxpZF9zdGFja19hZGpfYnl0ZXNfcCAoSU5UVkFMIChv cCkgKiAtMSwgOSkiKSkpCisKKyhkZWZpbmVfcHJlZGljYXRlICJzdGFja19w dXNoX3VwX3RvX3M4X29wZXJhbmQiCisgKGFuZCAobWF0Y2hfY29kZSAiY29u c3RfaW50IikKKyAobWF0Y2hfdGVzdCAicmlzY3ZfemNtcF92YWxpZF9zdGFj a19hZGpfYnl0ZXNfcCAoSU5UVkFMIChvcCkgKiAtMSwgMTApIikpKQorCiso ZGVmaW5lX3ByZWRpY2F0ZSAic3RhY2tfcHVzaF91cF90b19zOV9vcGVyYW5k IgorIChhbmQgKG1hdGNoX2NvZGUgImNvbnN0X2ludCIpCisgKG1hdGNoX3Rl c3QgInJpc2N2X3pjbXBfdmFsaWRfc3RhY2tfYWRqX2J5dGVzX3AgKElOVFZB TCAob3ApICogLTEsIDExKSIpKSkKKworKGRlZmluZV9wcmVkaWNhdGUgInN0 YWNrX3B1c2hfdXBfdG9fczExX29wZXJhbmQiCisgKGFuZCAobWF0Y2hfY29k ZSAiY29uc3RfaW50IikKKyAobWF0Y2hfdGVzdCAicmlzY3ZfemNtcF92YWxp ZF9zdGFja19hZGpfYnl0ZXNfcCAoSU5UVkFMIChvcCkgKiAtMSwgMTMpIikp KQorCisoZGVmaW5lX3ByZWRpY2F0ZSAic3RhY2tfcG9wX3VwX3RvX3JhX29w ZXJhbmQiCisgKGFuZCAobWF0Y2hfY29kZSAiY29uc3RfaW50IikKKyAobWF0 Y2hfdGVzdCAicmlzY3ZfemNtcF92YWxpZF9zdGFja19hZGpfYnl0ZXNfcCAo SU5UVkFMIChvcCksIDEpIikpKQorCisoZGVmaW5lX3ByZWRpY2F0ZSAic3Rh Y2tfcG9wX3VwX3RvX3MwX29wZXJhbmQiCisgKGFuZCAobWF0Y2hfY29kZSAi Y29uc3RfaW50IikKKyAobWF0Y2hfdGVzdCAicmlzY3ZfemNtcF92YWxpZF9z dGFja19hZGpfYnl0ZXNfcCAoSU5UVkFMIChvcCksIDIpIikpKQorCisoZGVm aW5lX3ByZWRpY2F0ZSAic3RhY2tfcG9wX3VwX3RvX3MxX29wZXJhbmQiCisg KGFuZCAobWF0Y2hfY29kZSAiY29uc3RfaW50IikKKyAobWF0Y2hfdGVzdCAi cmlzY3ZfemNtcF92YWxpZF9zdGFja19hZGpfYnl0ZXNfcCAoSU5UVkFMIChv cCksIDMpIikpKQorCisoZGVmaW5lX3ByZWRpY2F0ZSAic3RhY2tfcG9wX3Vw X3RvX3MyX29wZXJhbmQiCisgKGFuZCAobWF0Y2hfY29kZSAiY29uc3RfaW50 IikKKyAobWF0Y2hfdGVzdCAicmlzY3ZfemNtcF92YWxpZF9zdGFja19hZGpf Ynl0ZXNfcCAoSU5UVkFMIChvcCksIDQpIikpKQorCisoZGVmaW5lX3ByZWRp Y2F0ZSAic3RhY2tfcG9wX3VwX3RvX3MzX29wZXJhbmQiCisgKGFuZCAobWF0 Y2hfY29kZSAiY29uc3RfaW50IikKKyAobWF0Y2hfdGVzdCAicmlzY3ZfemNt cF92YWxpZF9zdGFja19hZGpfYnl0ZXNfcCAoSU5UVkFMIChvcCksIDUpIikp KQorCisoZGVmaW5lX3ByZWRpY2F0ZSAic3RhY2tfcG9wX3VwX3RvX3M0X29w ZXJhbmQiCisgKGFuZCAobWF0Y2hfY29kZSAiY29uc3RfaW50IikKKyAobWF0 Y2hfdGVzdCAicmlzY3ZfemNtcF92YWxpZF9zdGFja19hZGpfYnl0ZXNfcCAo SU5UVkFMIChvcCksIDYpIikpKQorCisoZGVmaW5lX3ByZWRpY2F0ZSAic3Rh Y2tfcG9wX3VwX3RvX3M1X29wZXJhbmQiCisgKGFuZCAobWF0Y2hfY29kZSAi Y29uc3RfaW50IikKKyAobWF0Y2hfdGVzdCAicmlzY3ZfemNtcF92YWxpZF9z dGFja19hZGpfYnl0ZXNfcCAoSU5UVkFMIChvcCksIDcpIikpKQorCisoZGVm aW5lX3ByZWRpY2F0ZSAic3RhY2tfcG9wX3VwX3RvX3M2X29wZXJhbmQiCisg KGFuZCAobWF0Y2hfY29kZSAiY29uc3RfaW50IikKKyAobWF0Y2hfdGVzdCAi cmlzY3ZfemNtcF92YWxpZF9zdGFja19hZGpfYnl0ZXNfcCAoSU5UVkFMIChv cCksIDgpIikpKQorCisoZGVmaW5lX3ByZWRpY2F0ZSAic3RhY2tfcG9wX3Vw X3RvX3M3X29wZXJhbmQiCisgKGFuZCAobWF0Y2hfY29kZSAiY29uc3RfaW50 IikKKyAobWF0Y2hfdGVzdCAicmlzY3ZfemNtcF92YWxpZF9zdGFja19hZGpf Ynl0ZXNfcCAoSU5UVkFMIChvcCksIDkpIikpKQorCisoZGVmaW5lX3ByZWRp Y2F0ZSAic3RhY2tfcG9wX3VwX3RvX3M4X29wZXJhbmQiCisgKGFuZCAobWF0 Y2hfY29kZSAiY29uc3RfaW50IikKKyAobWF0Y2hfdGVzdCAicmlzY3ZfemNt cF92YWxpZF9zdGFja19hZGpfYnl0ZXNfcCAoSU5UVkFMIChvcCksIDEwKSIp KSkKKworKGRlZmluZV9wcmVkaWNhdGUgInN0YWNrX3BvcF91cF90b19zOV9v cGVyYW5kIgorIChhbmQgKG1hdGNoX2NvZGUgImNvbnN0X2ludCIpCisgKG1h dGNoX3Rlc3QgInJpc2N2X3pjbXBfdmFsaWRfc3RhY2tfYWRqX2J5dGVzX3Ag KElOVFZBTCAob3ApLCAxMSkiKSkpCisKKyhkZWZpbmVfcHJlZGljYXRlICJz dGFja19wb3BfdXBfdG9fczExX29wZXJhbmQiCisgKGFuZCAobWF0Y2hfY29k ZSAiY29uc3RfaW50IikKKyAobWF0Y2hfdGVzdCAicmlzY3ZfemNtcF92YWxp ZF9zdGFja19hZGpfYnl0ZXNfcCAoSU5UVkFMIChvcCksIDEzKSIpKSkKKwog OzsgT25seSB1c2UgYnJhbmNoLW9uLWJpdCBzZXF1ZW5jZXMgd2hlbiB0aGUg bWFzayBpcyBub3QgYW4gQU5ESSBpbW1lZGlhdGUuCiAoZGVmaW5lX3ByZWRp Y2F0ZSAiYnJhbmNoX29uX2JpdF9vcGVyYW5kIgogKGFuZCAobWF0Y2hfY29k ZSAiY29uc3RfaW50IikKZGlmZiAtLWdpdCBhL2djYy9jb25maWcvcmlzY3Yv cmlzY3YtcHJvdG9zLmggYi9nY2MvY29uZmlnL3Jpc2N2L3Jpc2N2LXByb3Rv cy5oCmluZGV4IDc3NjBhOWNhYzhkLi5mMGVhMTRmMDViZSAxMDA2NDQKLS0t IGEvZ2NjL2NvbmZpZy9yaXNjdi9yaXNjdi1wcm90b3MuaAorKysgYi9nY2Mv Y29uZmlnL3Jpc2N2L3Jpc2N2LXByb3Rvcy5oCkBAIC01Niw2ICs1Niw4IEBA IGV4dGVybiBib29sIHJpc2N2X3NwbGl0XzY0Yml0X21vdmVfcCAocnR4LCBy dHgpOwogZXh0ZXJuIHZvaWQgcmlzY3Zfc3BsaXRfZG91Ymxld29yZF9tb3Zl IChydHgsIHJ0eCk7CiBleHRlcm4gY29uc3QgY2hhciAqcmlzY3Zfb3V0cHV0 X21vdmUgKHJ0eCwgcnR4KTsKIGV4dGVybiBjb25zdCBjaGFyICpyaXNjdl9v dXRwdXRfcmV0dXJuICgpOworZXh0ZXJuIGJvb2wgcmlzY3ZfemNtcF92YWxp ZF9zbG90X29mZnNldF9wIChIT1NUX1dJREVfSU5ULCBpbnQpOworZXh0ZXJu IGJvb2wgcmlzY3ZfemNtcF92YWxpZF9zdGFja19hZGpfYnl0ZXNfcChIT1NU X1dJREVfSU5ULCBpbnQpOwogI2lmZGVmIFJUWF9DT0RFCiBleHRlcm4gdm9p ZCByaXNjdl9leHBhbmRfaW50X3NjYyAocnR4LCBlbnVtIHJ0eF9jb2RlLCBy dHgsIHJ0eCk7CmRpZmYgLS1naXQgYS9nY2MvY29uZmlnL3Jpc2N2L3Jpc2N2 LmNjIGIvZ2NjL2NvbmZpZy9yaXNjdi9yaXNjdi5jYwppbmRleCA2MjllNWU0 NWNhYy4uYTBhMmRiMWY1OTQgMTAwNjQ0Ci0tLSBhL2djYy9jb25maWcvcmlz Y3YvcmlzY3YuY2MKKysrIGIvZ2NjL2NvbmZpZy9yaXNjdi9yaXNjdi5jYwpA QCAtMTE3LDYgKzExNywxNCBAQCBzdHJ1Y3QgR1RZKCgpKSByaXNjdl9mcmFt ZV9pbmZvIHsKIC8qIEhvdyBtdWNoIHRoZSBHUFIgc2F2ZS9yZXN0b3JlIHJv dXRpbmVzIGFkanVzdCBzcCAob3IgMCBpZiB1bnVzZWQpLiAqLwogdW5zaWdu ZWQgc2F2ZV9saWJjYWxsX2FkanVzdG1lbnQ7CisgLyogdGhlIG1pbmltdW0g bnVtYmVyIG9mIGJ5dGVzLCBpbiBtdWx0aXBsZXMgb2YgMTYtYnl0ZSBhZGRy ZXNzIGluY3JlbWVudHMsCisgcmVxdWlyZWQgdG8gY292ZXIgdGhlIHJlZ2lz dGVycyBpbiBhIG11bHRpIHB1c2ggJiBwb3AuICovCisgdW5zaWduZWQgbXVs dGlfcHVzaF9hZGpfYmFzZTsKKworIC8qIHRoZSBudW1iZXIgb2YgYWRkaXRp b25hbCAxNi1ieXRlIGFkZHJlc3MgaW5jcmVtZW50cyBhbGxvY2F0ZWQgZm9y IHRoZSBzdGFjayBmcmFtZQorIGluIGEgbXVsdGkgcHVzaCAmIHBvcC4gKi8K KyB1bnNpZ25lZCBtdWx0aV9wdXNoX2Fkal9hZGRpOworCiAvKiBPZmZzZXRz IG9mIGZpeGVkLXBvaW50IGFuZCBmbG9hdGluZy1wb2ludCBzYXZlIGFyZWFz IGZyb20gZnJhbWUgYm90dG9tICovCiBwb2x5X2ludDY0IGdwX3NwX29mZnNl dDsKIHBvbHlfaW50NjQgZnBfc3Bfb2Zmc2V0OwpAQCAtNDEzLDYgKzQyMSwy MSBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHJpc2N2X3R1bmVfaW5mbyByaXNj dl90dW5lX2luZm9fdGFibGVbXSA9IHsKICNpbmNsdWRlICJyaXNjdi1jb3Jl cy5kZWYiCiB9OwordHlwZWRlZiBlbnVtCit7CisgU0lfSURYID0gMCwKKyBE SV9JRFgsCisgWkNNUF9NT0RFX05VTSA9IERJX0lEWAorfSBtb2RlX2lkeDsK KwordHlwZWRlZiBlbnVtCit7CisgUFVTSF9JRFggPSAwLAorIFBPUF9JRFgs CisgUE9QUkVUX0lEWCwKKyBaQ01QX09QX05VTSA9IFBPUFJFVF9JRFgKK30g b3BfaWR4OworCiB2b2lkIHJpc2N2X2ZyYW1lX2luZm86OnJlc2V0KHZvaWQp CiB7CiB0b3RhbF9zaXplID0gMDsKQEAgLTQ4NDQsNiArNDg2NywzNyBAQCBy aXNjdl9zYXZlX3JlZ19wICh1bnNpZ25lZCBpbnQgcmVnbm8pCiByZXR1cm4g ZmFsc2U7CiB9CisvKiBSZXR1cm4gVFJVRSBpZiBaY21wIHB1c2ggYW5kIHBv cCBpbnNucyBzaG91bGQgYmUKKyBhdm9pZGVkLiBGQUxTRSBvdGhlcndpc2Uu CisgT25seSB1c2UgbXVsdGkgcHVzaCAmIHBvcCBpZiBhbGwgR1BScyBtYXNr ZWQgY2FuIGJlIGNvdmVyZWQsCisgYW5kIHN0YWNrIGFjY2VzcyBpcyBTUCBi YXNlZCwKKyBhbmQgR1BScyBhcmUgYXQgdG9wIG9mIHRoZSBzdGFjayBmcmFt ZSwKKyBhbmQgbm8gY29uZmxpY3RzIGluIHN0YWNrIGFsbG9jYXRpb24gd2l0 aCBvdGhlciBmZWF0dXJlcyAqLworc3RhdGljIGJvb2wKK3Jpc2N2X2F2b2lk X211bHRpX3B1c2goY29uc3Qgc3RydWN0IHJpc2N2X2ZyYW1lX2luZm8gKmZy YW1lKQoreworIGlmICghVEFSR0VUX1pDTVAKKyB8fCBjcnRsLT5jYWxsc19l aF9yZXR1cm4KKyB8fCBmcmFtZV9wb2ludGVyX25lZWRlZAorIHx8IGNmdW4t Pm1hY2hpbmUtPmludGVycnVwdF9oYW5kbGVyX3AKKyB8fCBjZnVuLT5tYWNo aW5lLT52YXJhcmdzX3NpemUgIT0gMAorIHx8IGNydGwtPmFyZ3MucHJldGVu ZF9hcmdzX3NpemUgIT0gMAorIHx8IChmcmFtZS0+bWFzayAmIH4gTVVMVElf UFVTSF9HUFJfTUFTSykpCisgcmV0dXJuIHRydWU7CisKKyByZXR1cm4gZmFs c2U7Cit9CisKKy8qIERldGVybWluZSB3aGV0aGVyIHRvIHVzZSBtdWx0aSBw dXNoIGluc24uICovCitzdGF0aWMgYm9vbAorcmlzY3ZfdXNlX211bHRpX3B1 c2goY29uc3Qgc3RydWN0IHJpc2N2X2ZyYW1lX2luZm8gKmZyYW1lKQorewor IGlmIChyaXNjdl9hdm9pZF9tdWx0aV9wdXNoIChmcmFtZSkpCisgcmV0dXJu IGZhbHNlOworCisgcmV0dXJuIChmcmFtZS0+bXVsdGlfcHVzaF9hZGpfYmFz ZSAhPSAwKTsKK30KKwogLyogUmV0dXJuIFRSVUUgaWYgYSBsaWJjYWxsIHRv IHNhdmUvcmVzdG9yZSBHUFJzIHNob3VsZCBiZQogYXZvaWRlZC4gRkFMU0Ug b3RoZXJ3aXNlLiAqLwogc3RhdGljIGJvb2wKQEAgLTQ4ODEsNiArNDkzNSw1 MSBAQCByaXNjdl9zYXZlX2xpYmNhbGxfY291bnQgKHVuc2lnbmVkIG1hc2sp CiBhYm9ydCAoKTsKIH0KKy8qIGNhbGN1bGF0ZSBudW1iZXIgb2YgcyByZWdz IGluIG11bHRpIHB1c2ggYW5kIHBvcC4KKyBOb3RlIHRoYXQge3MwLXMxMH0g aXMgbm90IHZhbGlkIGluIFpjbXAsIHVzZSB7czAtczExfSBpbnN0ZWFkLiAq Lworc3RhdGljIHVuc2lnbmVkCityaXNjdl9tdWx0aV9wdXNoX3NyZWdzX2Nv dW50ICh1bnNpZ25lZCBtYXNrKQoreworIHVuc2lnbmVkIG51bSA9IHJpc2N2 X3NhdmVfbGliY2FsbF9jb3VudCAobWFzayk7CisgcmV0dXJuIChudW0gPT0g WkNNUF9JTlZBTElEX1MwUzEwX1NSRUdTX0NPVU5UUykKKyA/IFpDTVBfUzBT MTFfU1JFR1NfQ09VTlRTCisgOiBudW07Cit9CisKKy8qIGNhbGN1bGF0ZSBu dW1iZXIgb2YgcmVncyhyYSwgczAtc3gpIGluIG11bHRpIHB1c2ggYW5kIHBv cC4gKi8KK3N0YXRpYyB1bnNpZ25lZAorcmlzY3ZfbXVsdGlfcHVzaF9yZWdz X2NvdW50ICh1bnNpZ25lZCBtYXNrKQoreworIC8qIDEgaXMgZm9yIHJhICov CisgcmV0dXJuIHJpc2N2X211bHRpX3B1c2hfc3JlZ3NfY291bnQgKG1hc2sp ICsgMTsKK30KKworLyogSGFuZGxlIDE2IGJ5dGVzIGFsaWduIGZvciBwb2x5 X2ludC4gKi8KK3N0YXRpYyBwb2x5X2ludDY0CityaXNjdl8xNmJ5dGVzX2Fs aWduIChwb2x5X2ludDY0IHZhbHVlKQoreworIHJldHVybiBhbGlnbmVkX3Vw cGVyX2JvdW5kICh2YWx1ZSwgMTYpOworfQorCitzdGF0aWMgSE9TVF9XSURF X0lOVAorcmlzY3ZfMTZieXRlc19hbGlnbiAoSE9TVF9XSURFX0lOVCB2YWx1 ZSkKK3sKKyByZXR1cm4gUk9VTkRfVVAodmFsdWUsIDE2KTsKK30KKworLyog SGFuZGxlIHN0YWNrIGFsaWduIGZvciBwb2x5X2ludC4gKi8KK3N0YXRpYyBw b2x5X2ludDY0CityaXNjdl9zdGFja19hbGlnbiAocG9seV9pbnQ2NCB2YWx1 ZSkKK3sKKyByZXR1cm4gYWxpZ25lZF91cHBlcl9ib3VuZCAodmFsdWUsIFBS RUZFUlJFRF9TVEFDS19CT1VOREFSWSAvIDgpOworfQorCitzdGF0aWMgSE9T VF9XSURFX0lOVAorcmlzY3Zfc3RhY2tfYWxpZ24gKEhPU1RfV0lERV9JTlQg dmFsdWUpCit7CisgcmV0dXJuIFJJU0NWX1NUQUNLX0FMSUdOICh2YWx1ZSk7 Cit9CisKIC8qIFBvcHVsYXRlIHRoZSBjdXJyZW50IGZ1bmN0aW9uJ3Mgcmlz Y3ZfZnJhbWVfaW5mbyBzdHJ1Y3R1cmUuCiBSSVNDLVYgc3RhY2sgZnJhbWVz IGdyb3duIGRvd253YXJkLiBIaWdoIGFkZHJlc3NlcyBhcmUgYXQgdGhlIHRv cC4KQEAgLTQ5MDYsNyArNTAwNSw3IEBAIHJpc2N2X3NhdmVfbGliY2FsbF9j b3VudCAodW5zaWduZWQgbWFzaykKIHwgR1BSIHNhdmUgYXJlYSB8ICsgVU5J VFNfUEVSX1dPUkQKIHwgfAogKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0rIDwtLSBzdGFja19wb2ludGVyX3J0eCArIGZwX3NwX29mZnNldAot IHwgfCArIFVOSVRTX1BFUl9IV1ZBTFVFCisgfCB8ICsgVU5JVFNfUEVSX0ZQ X1JFRwogfCBGUFIgc2F2ZSBhcmVhIHwKIHwgfAogKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0rIDwtLSBmcmFtZV9wb2ludGVyX3J0eCAodmly dHVhbCkKQEAgLTQ5MjUsMTkgKzUwMjQsNiBAQCByaXNjdl9zYXZlX2xpYmNh bGxfY291bnQgKHVuc2lnbmVkIG1hc2spCiBzdGF0aWMgSE9TVF9XSURFX0lO VCByaXNjdl9maXJzdF9zdGFja19zdGVwIChzdHJ1Y3QgcmlzY3ZfZnJhbWVf aW5mbyAqZnJhbWUsIHBvbHlfaW50NjQgcmVtYWluaW5nX3NpemUpOwotLyog SGFuZGxlIHN0YWNrIGFsaWduIGZvciBwb2x5X2ludC4gKi8KLXN0YXRpYyBw b2x5X2ludDY0Ci1yaXNjdl9zdGFja19hbGlnbiAocG9seV9pbnQ2NCB2YWx1 ZSkKLXsKLSByZXR1cm4gYWxpZ25lZF91cHBlcl9ib3VuZCAodmFsdWUsIFBS RUZFUlJFRF9TVEFDS19CT1VOREFSWSAvIDgpOwotfQotCi1zdGF0aWMgSE9T VF9XSURFX0lOVAotcmlzY3Zfc3RhY2tfYWxpZ24gKEhPU1RfV0lERV9JTlQg dmFsdWUpCi17Ci0gcmV0dXJuIFJJU0NWX1NUQUNLX0FMSUdOICh2YWx1ZSk7 Ci19Ci0KIHN0YXRpYyB2b2lkCiByaXNjdl9jb21wdXRlX2ZyYW1lX2luZm8g KHZvaWQpCiB7CkBAIC00OTg1LDggKzUwNzEsOSBAQCByaXNjdl9jb21wdXRl X2ZyYW1lX2luZm8gKHZvaWQpCiBpZiAoZnJhbWUtPm1hc2spCiB7CiB4X3Nh dmVfc2l6ZSA9IHJpc2N2X3N0YWNrX2FsaWduIChudW1feF9zYXZlZCAqIFVO SVRTX1BFUl9XT1JEKTsKLSB1bnNpZ25lZCBudW1fc2F2ZV9yZXN0b3JlID0g MSArIHJpc2N2X3NhdmVfbGliY2FsbF9jb3VudCAoZnJhbWUtPm1hc2spOwor IC8qIDEgaXMgZm9yIHJhICovCisgdW5zaWduZWQgbnVtX3NhdmVfcmVzdG9y ZSA9IDEgKyByaXNjdl9zYXZlX2xpYmNhbGxfY291bnQgKGZyYW1lLT5tYXNr KTsKIC8qIE9ubHkgdXNlIHNhdmUvcmVzdG9yZSByb3V0aW5lcyBpZiB0aGV5 IGRvbid0IGFsdGVyIHRoZSBzdGFjayBzaXplLiAqLwogaWYgKHJpc2N2X3N0 YWNrX2FsaWduIChudW1fc2F2ZV9yZXN0b3JlICogVU5JVFNfUEVSX1dPUkQp ID09IHhfc2F2ZV9zaXplCiAmJiAhcmlzY3ZfYXZvaWRfc2F2ZV9saWJjYWxs ICgpKQpAQCAtNDk5OCw2ICs1MDg1LDE1IEBAIHJpc2N2X2NvbXB1dGVfZnJh bWVfaW5mbyAodm9pZCkKIGZyYW1lLT5zYXZlX2xpYmNhbGxfYWRqdXN0bWVu dCA9IHhfc2F2ZV9zaXplOwogfQorCisgaWYgKCFyaXNjdl9hdm9pZF9tdWx0 aV9wdXNoIChmcmFtZSkpCisgeworIC8qIG51bShyYSwgczAtc3gpICovCisg dW5zaWduZWQgbnVtX211bHRpX3B1c2ggPQorIHJpc2N2X211bHRpX3B1c2hf cmVnc19jb3VudCAoZnJhbWUtPm1hc2spOworIHhfc2F2ZV9zaXplID0gcmlz Y3Zfc3RhY2tfYWxpZ24gKG51bV9tdWx0aV9wdXNoICogVU5JVFNfUEVSX1dP UkQpOworIGZyYW1lLT5tdWx0aV9wdXNoX2Fkal9iYXNlID0gcmlzY3ZfMTZi eXRlc19hbGlnbiAoeF9zYXZlX3NpemUpOworIH0KIH0KIC8qIEF0IHRoZSBi b3R0b20gb2YgdGhlIGZyYW1lIGFyZSBhbnkgb3V0Z29pbmcgc3RhY2sgYXJn dW1lbnRzLiAqLwpAQCAtNTAxMiw3ICs1MTA4LDE1IEBAIHJpc2N2X2NvbXB1 dGVfZnJhbWVfaW5mbyAodm9pZCkKIGZyYW1lLT5mcF9zcF9vZmZzZXQgPSBv ZmZzZXQgLSBVTklUU19QRVJfRlBfUkVHOwogLyogTmV4dCBhcmUgdGhlIGNh bGxlZS1zYXZlZCBHUFJzLiAqLwogaWYgKGZyYW1lLT5tYXNrKQotIG9mZnNl dCArPSB4X3NhdmVfc2l6ZTsKKyB7Cisgb2Zmc2V0ICs9IHhfc2F2ZV9zaXpl OworIC8qIGFsaWduIHRvIDE2IGJ5dGVzIGFuZCBhZGQgcGFkZGluZ3MgdG8g R1BSIHBhcnQgdG8gaG9ub3IKKyBib3RoIHN0YWNrIGFsaWdubWVudCBhbmQg emNtcCBwdXMvcG9wIHNpemUgYWxpZ25tZW50LiAqLworIGlmIChyaXNjdl91 c2VfbXVsdGlfcHVzaCAoZnJhbWUpCisgJiYga25vd25fbHQob2Zmc2V0LAor IGZyYW1lLT5tdWx0aV9wdXNoX2Fkal9iYXNlICsgWkNNUF9TUF9JTkNfU1RF UCAqIFpDTVBfTUFYX1NQSU1NKSkKKyBvZmZzZXQgPSByaXNjdl8xNmJ5dGVz X2FsaWduIChvZmZzZXQpOworIH0KIGZyYW1lLT5ncF9zcF9vZmZzZXQgPSBv ZmZzZXQgLSBVTklUU19QRVJfV09SRDsKIC8qIFRoZSBoYXJkIGZyYW1lIHBv aW50ZXIgcG9pbnRzIGFib3ZlIHRoZSBjYWxsZWUtc2F2ZWQgR1BScy4gKi8K IGZyYW1lLT5oYXJkX2ZyYW1lX3BvaW50ZXJfb2Zmc2V0ID0gb2Zmc2V0OwpA QCAtNTM1Niw2ICs1NDYwLDQyIEBAIHJpc2N2X2FkanVzdF9saWJjYWxsX2Nm aV9wcm9sb2d1ZSAoKQogcmV0dXJuIGR3YXJmOwogfQorc3RhdGljIHJ0eAor cmlzY3ZfYWRqdXN0X211bHRpX3B1c2hfY2ZpX3Byb2xvZ3VlIChpbnQgc2F2 ZWRfc2l6ZSkKK3sKKyBydHggZHdhcmYgPSBOVUxMX1JUWDsKKyBydHggYWRq dXN0X3NwX3J0eCwgcmVnLCBtZW0sIGluc247CisgdW5zaWduZWQgaW50IG1h c2sgPSBjZnVuLT5tYWNoaW5lLT5mcmFtZS5tYXNrOworIGludCBvZmZzZXQ7 CisgaW50IHNhdmVkX2NudCA9IDA7CisKKyBpZiAobWFzayAmIFMxMF9NQVNL KQorIG1hc2sgfD0gUzExX01BU0s7CisKKyBmb3IgKGludCByZWdubyA9IEdQ X1JFR19MQVNUOyByZWdubyA+PSBHUF9SRUdfRklSU1Q7IHJlZ25vLS0pCisg aWYgKEJJVFNFVF9QIChtYXNrICYgTVVMVElfUFVTSF9HUFJfTUFTSywgcmVn bm8gLSBHUF9SRUdfRklSU1QpKQorIHsKKyAvKiBUaGUgc2F2ZSBvcmRlciBp cyBzMTEtczAsIHJhCisgZnJvbSBoaWdoIHRvIGxvdyBhZGRyLiAqLworIG9m ZnNldCA9IHNhdmVkX3NpemUgLSBVTklUU19QRVJfV09SRCAqICgrK3NhdmVk X2NudCk7CisKKyByZWcgPSBnZW5fcnR4X1JFRyAoU0ltb2RlLCByZWdubyk7 CisgbWVtID0gZ2VuX2ZyYW1lX21lbSAoU0ltb2RlLCBwbHVzX2NvbnN0YW50 IChQbW9kZSwKKyBzdGFja19wb2ludGVyX3J0eCwKKyBvZmZzZXQpKTsKKwor IGluc24gPSBnZW5fcnR4X1NFVCAobWVtLCByZWcpOworIGR3YXJmID0gYWxs b2NfcmVnX25vdGUgKFJFR19DRkFfT0ZGU0VULCBpbnNuLCBkd2FyZik7Cisg fQorCisgLyogRGVidWcgaW5mbyBmb3IgYWRqdXN0IHNwLiAqLworIGFkanVz dF9zcF9ydHggPSBnZW5fcnR4X1NFVCAoc3RhY2tfcG9pbnRlcl9ydHgsCisg cGx1c19jb25zdGFudChQbW9kZSwgc3RhY2tfcG9pbnRlcl9ydHgsIC1zYXZl ZF9zaXplKSk7CisgZHdhcmYgPSBhbGxvY19yZWdfbm90ZSAoUkVHX0NGQV9B REpVU1RfQ0ZBLCBhZGp1c3Rfc3BfcnR4LAorIGR3YXJmKTsKKyByZXR1cm4g ZHdhcmY7Cit9CisKIHN0YXRpYyB2b2lkCiByaXNjdl9lbWl0X3N0YWNrX3Rp ZSAodm9pZCkKIHsKQEAgLTUzNjUsNiArNTUwNSwxNTIgQEAgcmlzY3ZfZW1p dF9zdGFja190aWUgKHZvaWQpCiBlbWl0X2luc24gKGdlbl9zdGFja190aWVk aSAoc3RhY2tfcG9pbnRlcl9ydHgsIGhhcmRfZnJhbWVfcG9pbnRlcl9ydHgp KTsKIH0KK3N0YXRpYyBydHgKK2dldF9zbG90X29mZnNldF9ydHggKGludCBz bG90X2lkeCkKK3sKKyBIT1NUX1dJREVfSU5UIHNsb3Rfb2Zmc2V0ID0gLTEg KiAoc2xvdF9pZHggKyAxKSAqIEdFVF9NT0RFX1NJWkUgKHdvcmRfbW9kZSk7 CisgcmV0dXJuIEdFTl9JTlQgKHNsb3Rfb2Zmc2V0KTsKK30KKworLyp6Y21w IG11bHRpIHB1c2ggYW5kIHBvcCBmdW5jdGlvbiBwdHIgYXJyYXkgKi8KK2Nv bnN0IGluc25fZ2VuX2ZuIGdlbl9wdXNoX3BvcCBbWkNNUF9PUF9OVU0gKyAx XVtaQ01QX01PREVfTlVNICsgMV1bWkNNUF9NQVhfR1JQX1NMT1RTXSA9Cit7 e3soaW5zbl9nZW5fZm46OnN0b3JlZF9mdW5jcHRyKSBnZW5fZ3ByX211bHRp X3B1c2hfdXBfdG9fcmFfc2ksCisgKGluc25fZ2VuX2ZuOjpzdG9yZWRfZnVu Y3B0cikgZ2VuX2dwcl9tdWx0aV9wdXNoX3VwX3RvX3MwX3NpLAorIChpbnNu X2dlbl9mbjo6c3RvcmVkX2Z1bmNwdHIpIGdlbl9ncHJfbXVsdGlfcHVzaF91 cF90b19zMV9zaSwKKyAoaW5zbl9nZW5fZm46OnN0b3JlZF9mdW5jcHRyKSBn ZW5fZ3ByX211bHRpX3B1c2hfdXBfdG9fczJfc2ksCisgKGluc25fZ2VuX2Zu OjpzdG9yZWRfZnVuY3B0cikgZ2VuX2dwcl9tdWx0aV9wdXNoX3VwX3RvX3Mz X3NpLAorIChpbnNuX2dlbl9mbjo6c3RvcmVkX2Z1bmNwdHIpIGdlbl9ncHJf bXVsdGlfcHVzaF91cF90b19zNF9zaSwKKyAoaW5zbl9nZW5fZm46OnN0b3Jl ZF9mdW5jcHRyKSBnZW5fZ3ByX211bHRpX3B1c2hfdXBfdG9fczVfc2ksCisg KGluc25fZ2VuX2ZuOjpzdG9yZWRfZnVuY3B0cikgZ2VuX2dwcl9tdWx0aV9w dXNoX3VwX3RvX3M2X3NpLAorIChpbnNuX2dlbl9mbjo6c3RvcmVkX2Z1bmNw dHIpIGdlbl9ncHJfbXVsdGlfcHVzaF91cF90b19zN19zaSwKKyAoaW5zbl9n ZW5fZm46OnN0b3JlZF9mdW5jcHRyKSBnZW5fZ3ByX211bHRpX3B1c2hfdXBf dG9fczhfc2ksCisgKGluc25fZ2VuX2ZuOjpzdG9yZWRfZnVuY3B0cikgZ2Vu X2dwcl9tdWx0aV9wdXNoX3VwX3RvX3M5X3NpLAorIE5VTEwsCisgKGluc25f Z2VuX2ZuOjpzdG9yZWRfZnVuY3B0cikgZ2VuX2dwcl9tdWx0aV9wdXNoX3Vw X3RvX3MxMV9zaX0sCisgeyhpbnNuX2dlbl9mbjo6c3RvcmVkX2Z1bmNwdHIp IGdlbl9ncHJfbXVsdGlfcHVzaF91cF90b19yYV9kaSwKKyAoaW5zbl9nZW5f Zm46OnN0b3JlZF9mdW5jcHRyKSBnZW5fZ3ByX211bHRpX3B1c2hfdXBfdG9f czBfZGksCisgKGluc25fZ2VuX2ZuOjpzdG9yZWRfZnVuY3B0cikgZ2VuX2dw cl9tdWx0aV9wdXNoX3VwX3RvX3MxX2RpLAorIChpbnNuX2dlbl9mbjo6c3Rv cmVkX2Z1bmNwdHIpIGdlbl9ncHJfbXVsdGlfcHVzaF91cF90b19zMl9kaSwK KyAoaW5zbl9nZW5fZm46OnN0b3JlZF9mdW5jcHRyKSBnZW5fZ3ByX211bHRp X3B1c2hfdXBfdG9fczNfZGksCisgKGluc25fZ2VuX2ZuOjpzdG9yZWRfZnVu Y3B0cikgZ2VuX2dwcl9tdWx0aV9wdXNoX3VwX3RvX3M0X2RpLAorIChpbnNu X2dlbl9mbjo6c3RvcmVkX2Z1bmNwdHIpIGdlbl9ncHJfbXVsdGlfcHVzaF91 cF90b19zNV9kaSwKKyAoaW5zbl9nZW5fZm46OnN0b3JlZF9mdW5jcHRyKSBn ZW5fZ3ByX211bHRpX3B1c2hfdXBfdG9fczZfZGksCisgKGluc25fZ2VuX2Zu OjpzdG9yZWRfZnVuY3B0cikgZ2VuX2dwcl9tdWx0aV9wdXNoX3VwX3RvX3M3 X2RpLAorIChpbnNuX2dlbl9mbjo6c3RvcmVkX2Z1bmNwdHIpIGdlbl9ncHJf bXVsdGlfcHVzaF91cF90b19zOF9kaSwKKyAoaW5zbl9nZW5fZm46OnN0b3Jl ZF9mdW5jcHRyKSBnZW5fZ3ByX211bHRpX3B1c2hfdXBfdG9fczlfZGksCisg TlVMTCwKKyAoaW5zbl9nZW5fZm46OnN0b3JlZF9mdW5jcHRyKSBnZW5fZ3By X211bHRpX3B1c2hfdXBfdG9fczExX2RpfX0sCisge3soaW5zbl9nZW5fZm46 OnN0b3JlZF9mdW5jcHRyKSBnZW5fZ3ByX211bHRpX3BvcF91cF90b19yYV9z aSwKKyAoaW5zbl9nZW5fZm46OnN0b3JlZF9mdW5jcHRyKSBnZW5fZ3ByX211 bHRpX3BvcF91cF90b19zMF9zaSwKKyAoaW5zbl9nZW5fZm46OnN0b3JlZF9m dW5jcHRyKSBnZW5fZ3ByX211bHRpX3BvcF91cF90b19zMV9zaSwKKyAoaW5z bl9nZW5fZm46OnN0b3JlZF9mdW5jcHRyKSBnZW5fZ3ByX211bHRpX3BvcF91 cF90b19zMl9zaSwKKyAoaW5zbl9nZW5fZm46OnN0b3JlZF9mdW5jcHRyKSBn ZW5fZ3ByX211bHRpX3BvcF91cF90b19zM19zaSwKKyAoaW5zbl9nZW5fZm46 OnN0b3JlZF9mdW5jcHRyKSBnZW5fZ3ByX211bHRpX3BvcF91cF90b19zNF9z aSwKKyAoaW5zbl9nZW5fZm46OnN0b3JlZF9mdW5jcHRyKSBnZW5fZ3ByX211 bHRpX3BvcF91cF90b19zNV9zaSwKKyAoaW5zbl9nZW5fZm46OnN0b3JlZF9m dW5jcHRyKSBnZW5fZ3ByX211bHRpX3BvcF91cF90b19zNl9zaSwKKyAoaW5z bl9nZW5fZm46OnN0b3JlZF9mdW5jcHRyKSBnZW5fZ3ByX211bHRpX3BvcF91 cF90b19zN19zaSwKKyAoaW5zbl9nZW5fZm46OnN0b3JlZF9mdW5jcHRyKSBn ZW5fZ3ByX211bHRpX3BvcF91cF90b19zOF9zaSwKKyAoaW5zbl9nZW5fZm46 OnN0b3JlZF9mdW5jcHRyKSBnZW5fZ3ByX211bHRpX3BvcF91cF90b19zOV9z aSwKKyBOVUxMLAorIChpbnNuX2dlbl9mbjo6c3RvcmVkX2Z1bmNwdHIpIGdl bl9ncHJfbXVsdGlfcG9wX3VwX3RvX3MxMV9zaX0sCisgeyhpbnNuX2dlbl9m bjo6c3RvcmVkX2Z1bmNwdHIpIGdlbl9ncHJfbXVsdGlfcG9wX3VwX3RvX3Jh X2RpLAorIChpbnNuX2dlbl9mbjo6c3RvcmVkX2Z1bmNwdHIpIGdlbl9ncHJf bXVsdGlfcG9wX3VwX3RvX3MwX2RpLAorIChpbnNuX2dlbl9mbjo6c3RvcmVk X2Z1bmNwdHIpIGdlbl9ncHJfbXVsdGlfcG9wX3VwX3RvX3MxX2RpLAorIChp bnNuX2dlbl9mbjo6c3RvcmVkX2Z1bmNwdHIpIGdlbl9ncHJfbXVsdGlfcG9w X3VwX3RvX3MyX2RpLAorIChpbnNuX2dlbl9mbjo6c3RvcmVkX2Z1bmNwdHIp IGdlbl9ncHJfbXVsdGlfcG9wX3VwX3RvX3MzX2RpLAorIChpbnNuX2dlbl9m bjo6c3RvcmVkX2Z1bmNwdHIpIGdlbl9ncHJfbXVsdGlfcG9wX3VwX3RvX3M0 X2RpLAorIChpbnNuX2dlbl9mbjo6c3RvcmVkX2Z1bmNwdHIpIGdlbl9ncHJf bXVsdGlfcG9wX3VwX3RvX3M1X2RpLAorIChpbnNuX2dlbl9mbjo6c3RvcmVk X2Z1bmNwdHIpIGdlbl9ncHJfbXVsdGlfcG9wX3VwX3RvX3M2X2RpLAorIChp bnNuX2dlbl9mbjo6c3RvcmVkX2Z1bmNwdHIpIGdlbl9ncHJfbXVsdGlfcG9w X3VwX3RvX3M3X2RpLAorIChpbnNuX2dlbl9mbjo6c3RvcmVkX2Z1bmNwdHIp IGdlbl9ncHJfbXVsdGlfcG9wX3VwX3RvX3M4X2RpLAorIChpbnNuX2dlbl9m bjo6c3RvcmVkX2Z1bmNwdHIpIGdlbl9ncHJfbXVsdGlfcG9wX3VwX3RvX3M5 X2RpLAorIE5VTEwsCisgKGluc25fZ2VuX2ZuOjpzdG9yZWRfZnVuY3B0cikg Z2VuX2dwcl9tdWx0aV9wb3BfdXBfdG9fczExX2RpfX0sCisge3soaW5zbl9n ZW5fZm46OnN0b3JlZF9mdW5jcHRyKSBnZW5fZ3ByX211bHRpX3BvcHJldF91 cF90b19yYV9zaSwKKyAoaW5zbl9nZW5fZm46OnN0b3JlZF9mdW5jcHRyKSBn ZW5fZ3ByX211bHRpX3BvcHJldF91cF90b19zMF9zaSwKKyAoaW5zbl9nZW5f Zm46OnN0b3JlZF9mdW5jcHRyKSBnZW5fZ3ByX211bHRpX3BvcHJldF91cF90 b19zMV9zaSwKKyAoaW5zbl9nZW5fZm46OnN0b3JlZF9mdW5jcHRyKSBnZW5f Z3ByX211bHRpX3BvcHJldF91cF90b19zMl9zaSwKKyAoaW5zbl9nZW5fZm46 OnN0b3JlZF9mdW5jcHRyKSBnZW5fZ3ByX211bHRpX3BvcHJldF91cF90b19z M19zaSwKKyAoaW5zbl9nZW5fZm46OnN0b3JlZF9mdW5jcHRyKSBnZW5fZ3By X211bHRpX3BvcHJldF91cF90b19zNF9zaSwKKyAoaW5zbl9nZW5fZm46OnN0 b3JlZF9mdW5jcHRyKSBnZW5fZ3ByX211bHRpX3BvcHJldF91cF90b19zNV9z aSwKKyAoaW5zbl9nZW5fZm46OnN0b3JlZF9mdW5jcHRyKSBnZW5fZ3ByX211 bHRpX3BvcHJldF91cF90b19zNl9zaSwKKyAoaW5zbl9nZW5fZm46OnN0b3Jl ZF9mdW5jcHRyKSBnZW5fZ3ByX211bHRpX3BvcHJldF91cF90b19zN19zaSwK KyAoaW5zbl9nZW5fZm46OnN0b3JlZF9mdW5jcHRyKSBnZW5fZ3ByX211bHRp X3BvcHJldF91cF90b19zOF9zaSwKKyAoaW5zbl9nZW5fZm46OnN0b3JlZF9m dW5jcHRyKSBnZW5fZ3ByX211bHRpX3BvcHJldF91cF90b19zOV9zaSwKKyBO VUxMLAorIChpbnNuX2dlbl9mbjo6c3RvcmVkX2Z1bmNwdHIpIGdlbl9ncHJf bXVsdGlfcG9wcmV0X3VwX3RvX3MxMV9zaX0sCisgeyhpbnNuX2dlbl9mbjo6 c3RvcmVkX2Z1bmNwdHIpIGdlbl9ncHJfbXVsdGlfcG9wcmV0X3VwX3RvX3Jh X2RpLAorIChpbnNuX2dlbl9mbjo6c3RvcmVkX2Z1bmNwdHIpIGdlbl9ncHJf bXVsdGlfcG9wcmV0X3VwX3RvX3MwX2RpLAorIChpbnNuX2dlbl9mbjo6c3Rv cmVkX2Z1bmNwdHIpIGdlbl9ncHJfbXVsdGlfcG9wcmV0X3VwX3RvX3MxX2Rp LAorIChpbnNuX2dlbl9mbjo6c3RvcmVkX2Z1bmNwdHIpIGdlbl9ncHJfbXVs dGlfcG9wcmV0X3VwX3RvX3MyX2RpLAorIChpbnNuX2dlbl9mbjo6c3RvcmVk X2Z1bmNwdHIpIGdlbl9ncHJfbXVsdGlfcG9wcmV0X3VwX3RvX3MzX2RpLAor IChpbnNuX2dlbl9mbjo6c3RvcmVkX2Z1bmNwdHIpIGdlbl9ncHJfbXVsdGlf cG9wcmV0X3VwX3RvX3M0X2RpLAorIChpbnNuX2dlbl9mbjo6c3RvcmVkX2Z1 bmNwdHIpIGdlbl9ncHJfbXVsdGlfcG9wcmV0X3VwX3RvX3M1X2RpLAorIChp bnNuX2dlbl9mbjo6c3RvcmVkX2Z1bmNwdHIpIGdlbl9ncHJfbXVsdGlfcG9w cmV0X3VwX3RvX3M2X2RpLAorIChpbnNuX2dlbl9mbjo6c3RvcmVkX2Z1bmNw dHIpIGdlbl9ncHJfbXVsdGlfcG9wcmV0X3VwX3RvX3M3X2RpLAorIChpbnNu X2dlbl9mbjo6c3RvcmVkX2Z1bmNwdHIpIGdlbl9ncHJfbXVsdGlfcG9wcmV0 X3VwX3RvX3M4X2RpLAorIChpbnNuX2dlbl9mbjo6c3RvcmVkX2Z1bmNwdHIp IGdlbl9ncHJfbXVsdGlfcG9wcmV0X3VwX3RvX3M5X2RpLAorIE5VTEwsCisg KGluc25fZ2VuX2ZuOjpzdG9yZWRfZnVuY3B0cikgZ2VuX2dwcl9tdWx0aV9w b3ByZXRfdXBfdG9fczExX2RpfX19OworCitzdGF0aWMgcnR4CityaXNjdl9n ZW5fbXVsdGlfcHVzaF9wb3BfaW5zbiAob3BfaWR4IG9wLCBIT1NUX1dJREVf SU5UIGFkal9zaXplLCB1bnNpZ25lZCBpbnQgcmVnc19udW0pCit7CisgcnR4 IHN0YWNrX2FkaiA9IEdFTl9JTlQgKGFkal9zaXplKTsKKyBydHggc2xvdHNb WkNNUF9NQVhfR1JQX1NMT1RTXTsKKworIGZvciAoaW50IHNsb3RfaWR4ID0g MDsgc2xvdF9pZHggPCBaQ01QX01BWF9HUlBfU0xPVFM7IHNsb3RfaWR4Kysp Cisgc2xvdHNbc2xvdF9pZHhdID0gZ2V0X3Nsb3Rfb2Zmc2V0X3J0eCAoc2xv dF9pZHgpOworCisgc3dpdGNoIChyZWdzX251bSkKKyB7CisgY2FzZSAxOgor IHJldHVybiAoZ2VuX3B1c2hfcG9wW29wXVtUQVJHRVRfNjRCSVRdW3JlZ3Nf bnVtIC0gMV0pCisgKHN0YWNrX2Fkaiwgc2xvdHNbMF0pOworIGNhc2UgMjoK KyByZXR1cm4gKGdlbl9wdXNoX3BvcFtvcF1bVEFSR0VUXzY0QklUXVtyZWdz X251bSAtIDFdKQorIChzdGFja19hZGosIHNsb3RzWzBdLCBzbG90c1sxXSk7 CisgY2FzZSAzOgorIHJldHVybiAoZ2VuX3B1c2hfcG9wW29wXVtUQVJHRVRf NjRCSVRdW3JlZ3NfbnVtIC0gMV0pCisgKHN0YWNrX2Fkaiwgc2xvdHNbMF0s IHNsb3RzWzFdLCBzbG90c1syXSk7CisgY2FzZSA0OgorIHJldHVybiAoZ2Vu X3B1c2hfcG9wW29wXVtUQVJHRVRfNjRCSVRdW3JlZ3NfbnVtIC0gMV0pCisg KHN0YWNrX2Fkaiwgc2xvdHNbMF0sIHNsb3RzWzFdLCBzbG90c1syXSwgc2xv dHNbM10pOworIGNhc2UgNToKKyByZXR1cm4gKGdlbl9wdXNoX3BvcFtvcF1b VEFSR0VUXzY0QklUXVtyZWdzX251bSAtIDFdKQorIChzdGFja19hZGosIHNs b3RzWzBdLCBzbG90c1sxXSwgc2xvdHNbMl0sIHNsb3RzWzNdLCBzbG90c1s0 XSk7CisgY2FzZSA2OgorIHJldHVybiAoZ2VuX3B1c2hfcG9wW29wXVtUQVJH RVRfNjRCSVRdW3JlZ3NfbnVtIC0gMV0pCisgKHN0YWNrX2Fkaiwgc2xvdHNb MF0sIHNsb3RzWzFdLCBzbG90c1syXSwgc2xvdHNbM10sIHNsb3RzWzRdLCBz bG90c1s1XSk7CisgY2FzZSA3OgorIHJldHVybiAoZ2VuX3B1c2hfcG9wW29w XVtUQVJHRVRfNjRCSVRdW3JlZ3NfbnVtIC0gMV0pCisgKHN0YWNrX2Fkaiwg c2xvdHNbMF0sIHNsb3RzWzFdLCBzbG90c1syXSwgc2xvdHNbM10sIHNsb3Rz WzRdLCBzbG90c1s1XSwKKyBzbG90c1s2XSk7CisgY2FzZSA4OgorIHJldHVy biAoZ2VuX3B1c2hfcG9wW29wXVtUQVJHRVRfNjRCSVRdW3JlZ3NfbnVtIC0g MV0pCisgKHN0YWNrX2Fkaiwgc2xvdHNbMF0sIHNsb3RzWzFdLCBzbG90c1sy XSwgc2xvdHNbM10sIHNsb3RzWzRdLCBzbG90c1s1XSwKKyBzbG90c1s2XSwg c2xvdHNbN10pOworIGNhc2UgOToKKyByZXR1cm4gKGdlbl9wdXNoX3BvcFtv cF1bVEFSR0VUXzY0QklUXVtyZWdzX251bSAtIDFdKQorIChzdGFja19hZGos IHNsb3RzWzBdLCBzbG90c1sxXSwgc2xvdHNbMl0sIHNsb3RzWzNdLCBzbG90 c1s0XSwgc2xvdHNbNV0sCisgc2xvdHNbNl0sIHNsb3RzWzddLCBzbG90c1s4 XSk7CisgY2FzZSAxMDoKKyByZXR1cm4gKGdlbl9wdXNoX3BvcFtvcF1bVEFS R0VUXzY0QklUXVtyZWdzX251bSAtIDFdKQorIChzdGFja19hZGosIHNsb3Rz WzBdLCBzbG90c1sxXSwgc2xvdHNbMl0sIHNsb3RzWzNdLCBzbG90c1s0XSwg c2xvdHNbNV0sCisgc2xvdHNbNl0sIHNsb3RzWzddLCBzbG90c1s4XSwgc2xv dHNbOV0pOworIGNhc2UgMTE6CisgcmV0dXJuIChnZW5fcHVzaF9wb3Bbb3Bd W1RBUkdFVF82NEJJVF1bcmVnc19udW0gLSAxXSkKKyAoc3RhY2tfYWRqLCBz bG90c1swXSwgc2xvdHNbMV0sIHNsb3RzWzJdLCBzbG90c1szXSwgc2xvdHNb NF0sIHNsb3RzWzVdLAorIHNsb3RzWzZdLCBzbG90c1s3XSwgc2xvdHNbOF0s IHNsb3RzWzldLCBzbG90c1sxMF0pOworIGNhc2UgMTM6CisgcmV0dXJuIChn ZW5fcHVzaF9wb3Bbb3BdW1RBUkdFVF82NEJJVF1bcmVnc19udW0gLSAxXSkK KyAoc3RhY2tfYWRqLCBzbG90c1swXSwgc2xvdHNbMV0sIHNsb3RzWzJdLCBz bG90c1szXSwgc2xvdHNbNF0sIHNsb3RzWzVdLAorIHNsb3RzWzZdLCBzbG90 c1s3XSwgc2xvdHNbOF0sIHNsb3RzWzldLCBzbG90c1sxMF0sIHNsb3RzWzEx XSwgc2xvdHNbMTJdKTsKKyBkZWZhdWx0OgorIGdjY191bnJlYWNoYWJsZSAo KTsKKyB9Cit9CisKIC8qIEV4cGFuZCB0aGUgInByb2xvZ3VlIiBwYXR0ZXJu LiAqLwogdm9pZApAQCAtNTM3Myw3ICs1NjU5LDggQEAgcmlzY3ZfZXhwYW5k X3Byb2xvZ3VlICh2b2lkKQogc3RydWN0IHJpc2N2X2ZyYW1lX2luZm8gKmZy YW1lID0gJmNmdW4tPm1hY2hpbmUtPmZyYW1lOwogcG9seV9pbnQ2NCByZW1h aW5pbmdfc2l6ZSA9IGZyYW1lLT50b3RhbF9zaXplOwogdW5zaWduZWQgbWFz ayA9IGZyYW1lLT5tYXNrOwotIHJ0eCBpbnNuOworIGludCBzcGltbSwgbXVs dGlfcHVzaF9hZGRpdGlvbmFsLCBzdGFja19hZGo7CisgcnR4IGluc24sIGR3 YXJmID0gTlVMTF9SVFg7CiBpZiAoZmxhZ19zdGFja191c2FnZV9pbmZvKQog Y3VycmVudF9mdW5jdGlvbl9zdGF0aWNfc3RhY2tfc2l6ZSA9IGNvbnN0YW50 X2xvd2VyX2JvdW5kIChyZW1haW5pbmdfc2l6ZSk7CkBAIC01MzgxLDggKzU2 NjgsMzUgQEAgcmlzY3ZfZXhwYW5kX3Byb2xvZ3VlICh2b2lkKQogaWYgKGNm dW4tPm1hY2hpbmUtPm5ha2VkX3ApCiByZXR1cm47CisgLyogcHJlZmVyIG11 dGktcHVzaCB0byBzYXZlLXJlc3RvcmUgbGliY2FsbC4gKi8KKyBpZiAocmlz Y3ZfdXNlX211bHRpX3B1c2goZnJhbWUpKQorIHsKKyByZW1haW5pbmdfc2l6 ZSAtPSBmcmFtZS0+bXVsdGlfcHVzaF9hZGpfYmFzZTsKKyBpZiAoa25vd25f Z3QocmVtYWluaW5nX3NpemUsIDIgKiBaQ01QX1NQX0lOQ19TVEVQKSkKKyBz cGltbSA9IDM7CisgZWxzZSBpZiAoa25vd25fZ3QocmVtYWluaW5nX3NpemUs IFpDTVBfU1BfSU5DX1NURVApKQorIHNwaW1tID0gMjsKKyBlbHNlIGlmIChr bm93bl9ndChyZW1haW5pbmdfc2l6ZSwgMCkpCisgc3BpbW0gPSAxOworIGVs c2UKKyBzcGltbSA9IDA7CisgbXVsdGlfcHVzaF9hZGRpdGlvbmFsID0gc3Bp bW0gKiBaQ01QX1NQX0lOQ19TVEVQOworIGZyYW1lLT5tdWx0aV9wdXNoX2Fk al9hZGRpID0gbXVsdGlfcHVzaF9hZGRpdGlvbmFsOworIHJlbWFpbmluZ19z aXplIC09IG11bHRpX3B1c2hfYWRkaXRpb25hbDsKKworIC8qIGVtaXQgbXVs dGkgcHVzaCBpbnNuICYgZHdhcmYgYWxvbmcgd2l0aCBpdC4gKi8KKyBzdGFj a19hZGogPSBmcmFtZS0+bXVsdGlfcHVzaF9hZGpfYmFzZSArIG11bHRpX3B1 c2hfYWRkaXRpb25hbDsKKyBpbnNuID0gZW1pdF9pbnNuIChyaXNjdl9nZW5f bXVsdGlfcHVzaF9wb3BfaW5zbihQVVNIX0lEWCwKKyAtc3RhY2tfYWRqLCBy aXNjdl9tdWx0aV9wdXNoX3JlZ3NfY291bnQoZnJhbWUtPm1hc2spKSk7Cisg ZHdhcmYgPSByaXNjdl9hZGp1c3RfbXVsdGlfcHVzaF9jZmlfcHJvbG9ndWUg KHN0YWNrX2Fkaik7CisgUlRYX0ZSQU1FX1JFTEFURURfUCAoaW5zbikgPSAx OworIFJFR19OT1RFUyAoaW5zbikgPSBkd2FyZjsKKworIC8qIFRlbXBvcmFy aWx5IGZpYiB0aGF0IHdlIG5lZWQgbm90IHNhdmUgR1BScy4gKi8KKyBmcmFt ZS0+bWFzayA9IDA7IAorIH0KIC8qIFdoZW4gb3B0aW1pemluZyBmb3Igc2l6 ZSwgY2FsbCBhIHN1YnJvdXRpbmUgdG8gc2F2ZSB0aGUgcmVnaXN0ZXJzLiAq LwotIGlmIChyaXNjdl91c2Vfc2F2ZV9saWJjYWxsIChmcmFtZSkpCisgZWxz ZSBpZiAocmlzY3ZfdXNlX3NhdmVfbGliY2FsbCAoZnJhbWUpKQogewogcnR4 IGR3YXJmID0gTlVMTF9SVFg7CiBkd2FyZiA9IHJpc2N2X2FkanVzdF9saWJj YWxsX2NmaV9wcm9sb2d1ZSAoKTsKQEAgLTUzOTgsMTMgKzU3MTIsMTUgQEAg cmlzY3ZfZXhwYW5kX3Byb2xvZ3VlICh2b2lkKQogLyogU2F2ZSB0aGUgcmVn aXN0ZXJzLiAqLwogaWYgKChmcmFtZS0+bWFzayB8IGZyYW1lLT5mbWFzaykg IT0gMCkKIHsKLSBIT1NUX1dJREVfSU5UIHN0ZXAxID0gcmlzY3ZfZmlyc3Rf c3RhY2tfc3RlcCAoZnJhbWUsIHJlbWFpbmluZ19zaXplKTsKLQotIGluc24g PSBnZW5fYWRkM19pbnNuIChzdGFja19wb2ludGVyX3J0eCwKLSBzdGFja19w b2ludGVyX3J0eCwKLSBHRU5fSU5UICgtc3RlcDEpKTsKLSBSVFhfRlJBTUVf UkVMQVRFRF9QIChlbWl0X2luc24gKGluc24pKSA9IDE7Ci0gcmVtYWluaW5n X3NpemUgLT0gc3RlcDE7CisgaWYgKGtub3duX2d0IChyZW1haW5pbmdfc2l6 ZSwgZnJhbWUtPmZyYW1lX3BvaW50ZXJfb2Zmc2V0KSkKKyB7CisgSE9TVF9X SURFX0lOVCBzdGVwMSA9IHJpc2N2X2ZpcnN0X3N0YWNrX3N0ZXAgKGZyYW1l LCByZW1haW5pbmdfc2l6ZSk7CisgcmVtYWluaW5nX3NpemUgLT0gc3RlcDE7 CisgaW5zbiA9IGdlbl9hZGQzX2luc24gKHN0YWNrX3BvaW50ZXJfcnR4LAor IHN0YWNrX3BvaW50ZXJfcnR4LAorIEdFTl9JTlQgKC1zdGVwMSkpOworIFJU WF9GUkFNRV9SRUxBVEVEX1AgKGVtaXRfaW5zbiAoaW5zbikpID0gMTsKKyB9 CiByaXNjdl9mb3JfZWFjaF9zYXZlZF9yZWcgKHJlbWFpbmluZ19zaXplLCBy aXNjdl9zYXZlX3JlZywgZmFsc2UsIGZhbHNlKTsKIH0KQEAgLTU0NjEsNiAr NTc3NywzMiBAQCByaXNjdl9leHBhbmRfcHJvbG9ndWUgKHZvaWQpCiB9CiB9 CitzdGF0aWMgcnR4CityaXNjdl9hZGp1c3RfbXVsdGlfcG9wX2NmaV9lcGls b2d1ZSAoaW50IHNhdmVkX3NpemUpCit7CisgcnR4IGR3YXJmID0gTlVMTF9S VFg7CisgcnR4IGFkanVzdF9zcF9ydHgsIHJlZzsKKyB1bnNpZ25lZCBpbnQg bWFzayA9IGNmdW4tPm1hY2hpbmUtPmZyYW1lLm1hc2s7CisKKyBpZiAobWFz ayAmIFMxMF9NQVNLKQorIG1hc2sgfD0gUzExX01BU0s7CisKKyAvKiBEZWJ1 ZyBpbmZvIGZvciBhZGp1c3Qgc3AuICovCisgYWRqdXN0X3NwX3J0eCA9IGdl bl9ydHhfU0VUIChzdGFja19wb2ludGVyX3J0eCwKKyBwbHVzX2NvbnN0YW50 KFBtb2RlLCBzdGFja19wb2ludGVyX3J0eCwgc2F2ZWRfc2l6ZSkpOworIGR3 YXJmID0gYWxsb2NfcmVnX25vdGUgKFJFR19DRkFfQURKVVNUX0NGQSwgYWRq dXN0X3NwX3J0eCwKKyBkd2FyZik7CisKKyBmb3IgKGludCByZWdubyA9IEdQ X1JFR19GSVJTVDsgcmVnbm8gPD0gR1BfUkVHX0xBU1Q7IHJlZ25vKyspCisg aWYgKEJJVFNFVF9QIChtYXNrLCByZWdubyAtIEdQX1JFR19GSVJTVCkpCisg eworIHJlZyA9IGdlbl9ydHhfUkVHIChTSW1vZGUsIHJlZ25vKTsKKyBkd2Fy ZiA9IGFsbG9jX3JlZ19ub3RlIChSRUdfQ0ZBX1JFU1RPUkUsIHJlZywgZHdh cmYpOworIH0KKworIHJldHVybiBkd2FyZjsKK30KKwogc3RhdGljIHJ0eAog cmlzY3ZfYWRqdXN0X2xpYmNhbGxfY2ZpX2VwaWxvZ3VlICgpCiB7CkBAIC01 NTAwLDEwICs1ODQyLDE4IEBAIHJpc2N2X2V4cGFuZF9lcGlsb2d1ZSAoaW50 IHN0eWxlKQogc3RydWN0IHJpc2N2X2ZyYW1lX2luZm8gKmZyYW1lID0gJmNm dW4tPm1hY2hpbmUtPmZyYW1lOwogdW5zaWduZWQgbWFzayA9IGZyYW1lLT5t YXNrOwogSE9TVF9XSURFX0lOVCBzdGVwMiA9IDA7Ci0gYm9vbCB1c2VfcmVz dG9yZV9saWJjYWxsID0gKChzdHlsZSA9PSBOT1JNQUxfUkVUVVJOKQotICYm IHJpc2N2X3VzZV9zYXZlX2xpYmNhbGwgKGZyYW1lKSk7Ci0gdW5zaWduZWQg bGliY2FsbF9zaXplID0gKHVzZV9yZXN0b3JlX2xpYmNhbGwKLSA/IGZyYW1l LT5zYXZlX2xpYmNhbGxfYWRqdXN0bWVudCA6IDApOworIGJvb2wgdXNlX211 bHRpX3BvcF9ub3JtYWwgPSAoKHN0eWxlID09IE5PUk1BTF9SRVRVUk4pCisg JiYgcmlzY3ZfdXNlX211bHRpX3B1c2ggKGZyYW1lKSk7CisgYm9vbCB1c2Vf bXVsdGlfcG9wX3NpYmNhbGwgPSAoKHN0eWxlID09IFNJQkNBTExfUkVUVVJO KQorICYmIHJpc2N2X3VzZV9tdWx0aV9wdXNoIChmcmFtZSkpOworIGJvb2wg dXNlX211bHRpX3BvcCA9IHVzZV9tdWx0aV9wb3Bfbm9ybWFsIHx8IHVzZV9t dWx0aV9wb3Bfc2liY2FsbDsKKworIGJvb2wgdXNlX3Jlc3RvcmVfbGliY2Fs bCA9ICF1c2VfbXVsdGlfcG9wICYmICgoc3R5bGUgPT0gTk9STUFMX1JFVFVS TikKKyAmJiByaXNjdl91c2Vfc2F2ZV9saWJjYWxsIChmcmFtZSkpOworIHVu c2lnbmVkIGxpYmNhbGxfc2l6ZSA9IHVzZV9yZXN0b3JlX2xpYmNhbGwgJiYg IXVzZV9tdWx0aV9wb3AgPworIGZyYW1lLT5zYXZlX2xpYmNhbGxfYWRqdXN0 bWVudCA6IDA7CisgdW5zaWduZWQgbXVsdGlwb3Bfc2l6ZSA9IHVzZV9tdWx0 aV9wb3AgPworIGZyYW1lLT5tdWx0aV9wdXNoX2Fkal9iYXNlICsgZnJhbWUt Pm11bHRpX3B1c2hfYWRqX2FkZGkgOiAwOwogcnR4IHJhID0gZ2VuX3J0eF9S RUcgKFBtb2RlLCBSRVRVUk5fQUREUl9SRUdOVU0pOwogcnR4IGluc247CkBA IC01NTc0LDE4ICs1OTI0LDI1IEBAIHJpc2N2X2V4cGFuZF9lcGlsb2d1ZSAo aW50IHN0eWxlKQogUkVHX05PVEVTIChpbnNuKSA9IGR3YXJmOwogfQotIGlm ICh1c2VfcmVzdG9yZV9saWJjYWxsKQotIGZyYW1lLT5tYXNrID0gMDsgLyog VGVtcG9yYXJpbHkgZmliIGZvciBHUFJzLiAqLworIGlmICh1c2VfcmVzdG9y ZV9saWJjYWxsIHx8IHVzZV9tdWx0aV9wb3ApCisgZnJhbWUtPm1hc2sgPSAw OyAvKiBUZW1wb3JhcmlseSBmaWIgdGhhdCB3ZSBuZWVkIG5vdCBzYXZlIEdQ UnMuICovCiAvKiBJZiB3ZSBuZWVkIHRvIHJlc3RvcmUgcmVnaXN0ZXJzLCBk ZWFsbG9jYXRlIGFzIG11Y2ggc3RhY2sgYXMKIHBvc3NpYmxlIGluIHRoZSBz ZWNvbmQgc3RlcCB3aXRob3V0IGdvaW5nIG91dCBvZiByYW5nZS4gKi8KLSBp ZiAoKGZyYW1lLT5tYXNrIHwgZnJhbWUtPmZtYXNrKSAhPSAwKQorIGlmICh1 c2VfbXVsdGlfcG9wKQorIHsKKyBpZiAoZnJhbWUtPmZtYXNrCisgJiYga25v d25fZ3QgKGZyYW1lLT50b3RhbF9zaXplIC0gbXVsdGlwb3Bfc2l6ZSwKKyBm cmFtZS0+ZnJhbWVfcG9pbnRlcl9vZmZzZXQpKQorIHN0ZXAyID0gcmlzY3Zf Zmlyc3Rfc3RhY2tfc3RlcCAoZnJhbWUsIGZyYW1lLT50b3RhbF9zaXplIC0g bXVsdGlwb3Bfc2l6ZSk7CisgfQorIGVsc2UgaWYgKChmcmFtZS0+bWFzayB8 IGZyYW1lLT5mbWFzaykgIT0gMCkKIHN0ZXAyID0gcmlzY3ZfZmlyc3Rfc3Rh Y2tfc3RlcCAoZnJhbWUsIGZyYW1lLT50b3RhbF9zaXplIC0gbGliY2FsbF9z aXplKTsKLSBpZiAodXNlX3Jlc3RvcmVfbGliY2FsbCkKKyBpZiAodXNlX3Jl c3RvcmVfbGliY2FsbCB8fCB1c2VfbXVsdGlfcG9wKQogZnJhbWUtPm1hc2sg PSBtYXNrOyAvKiBVbmRvIHRoZSBhYm92ZSBmaWIuICovCi0gcG9seV9pbnQ2 NCBzdGVwMSA9IGZyYW1lLT50b3RhbF9zaXplIC0gc3RlcDIgLSBsaWJjYWxs X3NpemU7CisgcG9seV9pbnQ2NCBzdGVwMSA9IGZyYW1lLT50b3RhbF9zaXpl IC0gc3RlcDIgLSBsaWJjYWxsX3NpemUgLSBtdWx0aXBvcF9zaXplIDsKIC8q IFNldCBUQVJHRVQgdG8gQkFTRSArIFNURVAxLiAqLwogaWYgKGtub3duX2d0 IChzdGVwMSwgMCkpCkBAIC01NjIwLDcgKzU5NzcsNyBAQCByaXNjdl9leHBh bmRfZXBpbG9ndWUgKGludCBzdHlsZSkKIGFkanVzdCkpOwogcnR4IGR3YXJm ID0gTlVMTF9SVFg7CiBydHggY2ZhX2FkanVzdF9ydHggPSBnZW5fcnR4X1BM VVMgKFBtb2RlLCBzdGFja19wb2ludGVyX3J0eCwKLSBHRU5fSU5UIChzdGVw MikpOworIEdFTl9JTlQgKHN0ZXAyICsgbGliY2FsbF9zaXplICsgbXVsdGlw b3Bfc2l6ZSkpOwogZHdhcmYgPSBhbGxvY19yZWdfbm90ZSAoUkVHX0NGQV9E RUZfQ0ZBLCBjZmFfYWRqdXN0X3J0eCwgZHdhcmYpOwogUlRYX0ZSQU1FX1JF TEFURURfUCAoaW5zbikgPSAxOwpAQCAtNTYzNSwxNSArNTk5MiwxNSBAQCBy aXNjdl9leHBhbmRfZXBpbG9ndWUgKGludCBzdHlsZSkKIGVwaWxvZ3VlX2Nm YV9zcF9vZmZzZXQgPSBzdGVwMjsKIH0KLSBpZiAodXNlX3Jlc3RvcmVfbGli Y2FsbCkKKyBpZiAodXNlX3Jlc3RvcmVfbGliY2FsbCB8fCB1c2VfbXVsdGlf cG9wKQogZnJhbWUtPm1hc2sgPSAwOyAvKiBUZW1wb3JhcmlseSBmaWIgdGhh dCB3ZSBuZWVkIG5vdCBzYXZlIEdQUnMuICovCiAvKiBSZXN0b3JlIHRoZSBy ZWdpc3RlcnMuICovCi0gcmlzY3ZfZm9yX2VhY2hfc2F2ZWRfcmVnIChmcmFt ZS0+dG90YWxfc2l6ZSAtIHN0ZXAyIC0gbGliY2FsbF9zaXplLAorIHJpc2N2 X2Zvcl9lYWNoX3NhdmVkX3JlZyAoZnJhbWUtPnRvdGFsX3NpemUgLSBzdGVw MiAtIGxpYmNhbGxfc2l6ZSAtIG11bHRpcG9wX3NpemUsCiByaXNjdl9yZXN0 b3JlX3JlZywKIHRydWUsIHN0eWxlID09IEVYQ0VQVElPTl9SRVRVUk4pOwot IGlmICh1c2VfcmVzdG9yZV9saWJjYWxsKQorIGlmICh1c2VfcmVzdG9yZV9s aWJjYWxsIHx8IHVzZV9tdWx0aV9wb3ApCiBmcmFtZS0+bWFzayA9IG1hc2s7 IC8qIFVuZG8gdGhlIGFib3ZlIGZpYi4gKi8KIGlmIChuZWVkX2JhcnJpZXJf cCkKQEAgLTU2NTcsMTQgKzYwMTQsMzAgQEAgcmlzY3ZfZXhwYW5kX2VwaWxv Z3VlIChpbnQgc3R5bGUpCiBydHggZHdhcmYgPSBOVUxMX1JUWDsKIHJ0eCBj ZmFfYWRqdXN0X3J0eCA9IGdlbl9ydHhfUExVUyAoUG1vZGUsIHN0YWNrX3Bv aW50ZXJfcnR4LAotIGNvbnN0MF9ydHgpOworIEdFTl9JTlQgKGxpYmNhbGxf c2l6ZSArIG11bHRpcG9wX3NpemUpKTsKIGR3YXJmID0gYWxsb2NfcmVnX25v dGUgKFJFR19DRkFfREVGX0NGQSwgY2ZhX2FkanVzdF9ydHgsIGR3YXJmKTsK IFJUWF9GUkFNRV9SRUxBVEVEX1AgKGluc24pID0gMTsKIFJFR19OT1RFUyAo aW5zbikgPSBkd2FyZjsKIH0KLSBpZiAodXNlX3Jlc3RvcmVfbGliY2FsbCkK KyBpZiAodXNlX211bHRpX3BvcCkKKyB7CisgdW5zaWduZWQgcmVnc19jb3Vu dCA9IHJpc2N2X211bHRpX3B1c2hfcmVnc19jb3VudCAoZnJhbWUtPm1hc2sp OworIGlmICh1c2VfbXVsdGlfcG9wX25vcm1hbCkKKyBpbnNuID0gZW1pdF9q dW1wX2luc24gKAorIHJpc2N2X2dlbl9tdWx0aV9wdXNoX3BvcF9pbnNuIChQ T1BSRVRfSURYLCBtdWx0aXBvcF9zaXplLCByZWdzX2NvdW50KSk7CisgZWxz ZQorIGluc249IGVtaXRfaW5zbiAoCisgcmlzY3ZfZ2VuX211bHRpX3B1c2hf cG9wX2luc24oUE9QX0lEWCwgbXVsdGlwb3Bfc2l6ZSwgcmVnc19jb3VudCkp OworCisgcnR4IGR3YXJmID0gcmlzY3ZfYWRqdXN0X211bHRpX3BvcF9jZmlf ZXBpbG9ndWUgKG11bHRpcG9wX3NpemUpOworIFJUWF9GUkFNRV9SRUxBVEVE X1AgKGluc24pID0gMTsKKyBSRUdfTk9URVMgKGluc24pID0gZHdhcmY7Cisg aWYgKHVzZV9tdWx0aV9wb3Bfbm9ybWFsKQorIHJldHVybjsKKyB9CisgZWxz ZSBpZiAodXNlX3Jlc3RvcmVfbGliY2FsbCkKIHsKIHJ0eCBkd2FyZiA9IHJp c2N2X2FkanVzdF9saWJjYWxsX2NmaV9lcGlsb2d1ZSAoKTsKIGluc24gPSBl bWl0X2luc24gKGdlbl9ncHJfcmVzdG9yZSAoR0VOX0lOVCAocmlzY3Zfc2F2 ZV9saWJjYWxsX2NvdW50IChtYXNrKSkpKTsKQEAgLTY5MzcsNiArNzMxMCwz MCBAQCByaXNjdl9nZW5fZ3ByX3NhdmVfaW5zbiAoc3RydWN0IHJpc2N2X2Zy YW1lX2luZm8gKmZyYW1lKQogcmV0dXJuIGdlbl9ydHhfUEFSQUxMRUwgKFZP SURtb2RlLCB2ZWMpOwogfQorc3RhdGljIEhPU1RfV0lERV9JTlQgemNtcF9i YXNlX2FkaihpbnQgcmVnc19udW0pCit7CisgcmV0dXJuIHJpc2N2XzE2Ynl0 ZXNfYWxpZ24gKChyZWdzX251bSkgKiBHRVRfTU9ERV9TSVpFICh3b3JkX21v ZGUpKTsKK30KKworc3RhdGljIEhPU1RfV0lERV9JTlQgemNtcF9hZGRpdGlv bmFsX2FkaihIT1NUX1dJREVfSU5UIHRvdGFsLCBpbnQgcmVnc19udW0pCit7 CisgcmV0dXJuIHRvdGFsIC0gemNtcF9iYXNlX2FkaihyZWdzX251bSk7Cit9 CisKK2Jvb2wgcmlzY3ZfemNtcF92YWxpZF9zbG90X29mZnNldF9wIChIT1NU X1dJREVfSU5UIG9mZnNldCwgaW50IHNsb3RfaWR4KQoreworIHJldHVybiBv ZmZzZXQgPT0gLTEgKiAoc2xvdF9pZHggKyAxKSAqIEdFVF9NT0RFX1NJWkUg KHdvcmRfbW9kZSk7Cit9CisKK2Jvb2wgcmlzY3ZfemNtcF92YWxpZF9zdGFj a19hZGpfYnl0ZXNfcCAoSE9TVF9XSURFX0lOVCB0b3RhbCwgaW50IHJlZ3Nf bnVtKQoreworIEhPU1RfV0lERV9JTlQgYWRkaXRpb2FubF9ieXRlcyA9IHpj bXBfYWRkaXRpb25hbF9hZGoodG90YWwsIHJlZ3NfbnVtKTsKKyByZXR1cm4g YWRkaXRpb2FubF9ieXRlcyA9PSAwCisgfHwgYWRkaXRpb2FubF9ieXRlcyA9 PSAxICogWkNNUF9TUF9JTkNfU1RFUAorIHx8IGFkZGl0aW9hbmxfYnl0ZXMg PT0gMiAqIFpDTVBfU1BfSU5DX1NURVAKKyB8fCBhZGRpdGlvYW5sX2J5dGVz ID09IFpDTVBfTUFYX1NQSU1NICogWkNNUF9TUF9JTkNfU1RFUDsKK30KKwog LyogUmV0dXJuIHRydWUgaWYgaXQncyB2YWxpZCBncHJfc2F2ZSBwYXR0ZXJu LiAqLwogYm9vbApkaWZmIC0tZ2l0IGEvZ2NjL2NvbmZpZy9yaXNjdi9yaXNj di5oIGIvZ2NjL2NvbmZpZy9yaXNjdi9yaXNjdi5oCmluZGV4IDEzMDM4YTM5 ZTVjLi5mZjIxMDA4MzAwNCAxMDA2NDQKLS0tIGEvZ2NjL2NvbmZpZy9yaXNj di9yaXNjdi5oCisrKyBiL2djYy9jb25maWcvcmlzY3YvcmlzY3YuaApAQCAt NDEzLDYgKzQxMywyOSBAQCBBU01fTUlTQV9TUEVDCiAjZGVmaW5lIFJJU0NW X0NBTExfQUREUkVTU19URU1QKE1PREUpIFwKIGdlbl9ydHhfUkVHIChNT0RF LCBSSVNDVl9DQUxMX0FERFJFU1NfVEVNUF9SRUdOVU0pCisjZGVmaW5lIFJF VFVSTl9BRERSX01BU0sgKCAxIDw8IFJFVFVSTl9BRERSX1JFR05VTSkKKyNk ZWZpbmUgUzBfTUFTSyAoIDEgPDwgUzBfUkVHTlVNKQorI2RlZmluZSBTMV9N QVNLICggMSA8PCBTMV9SRUdOVU0pCisjZGVmaW5lIFMyX01BU0sgKCAxIDw8 IFMyX1JFR05VTSkKKyNkZWZpbmUgUzNfTUFTSyAoIDEgPDwgUzNfUkVHTlVN KQorI2RlZmluZSBTNF9NQVNLICggMSA8PCBTNF9SRUdOVU0pCisjZGVmaW5l IFM1X01BU0sgKCAxIDw8IFM1X1JFR05VTSkKKyNkZWZpbmUgUzZfTUFTSyAo IDEgPDwgUzZfUkVHTlVNKQorI2RlZmluZSBTN19NQVNLICggMSA8PCBTN19S RUdOVU0pCisjZGVmaW5lIFM4X01BU0sgKCAxIDw8IFM4X1JFR05VTSkKKyNk ZWZpbmUgUzlfTUFTSyAoIDEgPDwgUzlfUkVHTlVNKQorI2RlZmluZSBTMTBf TUFTSyAoIDEgPDwgUzEwX1JFR05VTSkKKyNkZWZpbmUgUzExX01BU0sgKCAx IDw8IFMxMV9SRUdOVU0pCisKKyNkZWZpbmUgTVVMVElfUFVTSF9HUFJfTUFT SyAoIFJFVFVSTl9BRERSX01BU0sgfCBTMF9NQVNLIHwgUzFfTUFTSyB8IFMy X01BU0sgfCBTM19NQVNLIFwKKyB8IFM0X01BU0sgfCBTNV9NQVNLIHwgUzZf TUFTSyB8IFM3X01BU0sgXAorIHwgUzhfTUFTSyB8IFM5X01BU0sgfCBTMTBf TUFTSyB8IFMxMV9NQVNLICkKKyNkZWZpbmUgWkNNUF9NQVhfU1BJTU0gMwor I2RlZmluZSBaQ01QX1NQX0lOQ19TVEVQIDE2CisjZGVmaW5lIFpDTVBfSU5W QUxJRF9TMFMxMF9TUkVHU19DT1VOVFMgMTEKKyNkZWZpbmUgWkNNUF9TMFMx MV9TUkVHU19DT1VOVFMgMTIKKyNkZWZpbmUgWkNNUF9NQVhfR1JQX1NMT1RT IDEzCisKICNkZWZpbmUgTUNPVU5UX05BTUUgIl9tY291bnQiCiAjZGVmaW5l IE5PX1BST0ZJTEVfQ09VTlRFUlMgMQpkaWZmIC0tZ2l0IGEvZ2NjL2NvbmZp Zy9yaXNjdi9yaXNjdi5tZCBiL2djYy9jb25maWcvcmlzY3YvcmlzY3YubWQK aW5kZXggNzA2NWU2OGMwYjcuLjczZmM4Y2I2OWJjIDEwMDY0NAotLS0gYS9n Y2MvY29uZmlnL3Jpc2N2L3Jpc2N2Lm1kCisrKyBiL2djYy9jb25maWcvcmlz Y3YvcmlzY3YubWQKQEAgLTExMyw2ICsxMTMsNyBAQAogKGRlZmluZV9jb25z dGFudHMKIFsoUkVUVVJOX0FERFJfUkVHTlVNIDEpCisgKFNQX1JFR05VTSAy KQogKEdQX1JFR05VTSAzKQogKFRQX1JFR05VTSA0KQogKFQwX1JFR05VTSA1 KQpAQCAtMzIwNSwzICszMjA2LDQgQEAKIChpbmNsdWRlICJzaWZpdmUtNy5t ZCIpCiAoaW5jbHVkZSAidGhlYWQubWQiKQogKGluY2x1ZGUgInZlY3Rvci5t ZCIpCisoaW5jbHVkZSAiemMubWQiKQpkaWZmIC0tZ2l0IGEvZ2NjL2NvbmZp Zy9yaXNjdi96Yy5tZCBiL2djYy9jb25maWcvcmlzY3YvemMubWQKbmV3IGZp bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjZlNmM4Nzk4M2Zi Ci0tLSAvZGV2L251bGwKKysrIGIvZ2NjL2NvbmZpZy9yaXNjdi96Yy5tZApA QCAtMCwwICsxLDEwNDIgQEAKKzs7IE1hY2hpbmUgZGVzY3JpcHRpb24gZm9y IFJJU0MtViBaYyBleHRlbnRpb24uCis7OyBDb3B5cmlnaHQgKEMpIDIwMTEt MjAyMyBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKzs7IENvbnRy aWJ1dGVkIGJ5IEZlaSBHYW8gKGdhb2ZlaUBlc3dpbmNvbXB1dGluZy5jb20p LgorCis7OyBUaGlzIGZpbGUgaXMgcGFydCBvZiBHQ0MuCisKKzs7IEdDQyBp cyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQv b3IgbW9kaWZ5Cis7OyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBH ZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQorOzsgdGhl IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMywg b3IgKGF0IHlvdXIgb3B0aW9uKQorOzsgYW55IGxhdGVyIHZlcnNpb24uCisK Kzs7IEdDQyBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdp bGwgYmUgdXNlZnVsLAorOzsgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3 aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKzs7IE1FUkNI QU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9T RS4gU2VlIHRoZQorOzsgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9y IG1vcmUgZGV0YWlscy4KKworOzsgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVk IGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKzs7 IGFsb25nIHdpdGggR0NDOyBzZWUgdGhlIGZpbGUgQ09QWUlORzMuIElmIG5v dCBzZWUKKzs7IDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4KKwor KGRlZmluZV9pbnNuICJncHJfbXVsdGlfcG9wX3VwX3RvX3JhXzxtb2RlPiIK KyBbKHNldCAocmVnOlggU1BfUkVHTlVNKQorIChwbHVzOlggKHJlZzpYIFNQ X1JFR05VTSkKKyAobWF0Y2hfb3BlcmFuZCAwICJzdGFja19wb3BfdXBfdG9f cmFfb3BlcmFuZCIgIkkiKSkpCisgKHNldCAocmVnOlggUkVUVVJOX0FERFJf UkVHTlVNKQorIChtZW06WCAocGx1czpYIChyZWc6WCBTUF9SRUdOVU0pCisg KG1hdGNoX29wZXJhbmQ6WCAxICJzbG90XzBfb2Zmc2V0X29wZXJhbmQiICJJ IikpKSldCisgIlRBUkdFVF9aQ01QIgorICJjbS5wb3Age3JhfSwgJTAiCisp CisKKyhkZWZpbmVfaW5zbiAiZ3ByX211bHRpX3BvcF91cF90b19zMF88bW9k ZT4iCisgWyhzZXQgKHJlZzpYIFNQX1JFR05VTSkKKyAocGx1czpYIChyZWc6 WCBTUF9SRUdOVU0pCisgKG1hdGNoX29wZXJhbmQgMCAic3RhY2tfcG9wX3Vw X3RvX3MwX29wZXJhbmQiICJJIikpKQorIChzZXQgKHJlZzpYIFMwX1JFR05V TSkKKyAobWVtOlggKHBsdXM6WCAocmVnOlggU1BfUkVHTlVNKQorIChtYXRj aF9vcGVyYW5kOlggMSAic2xvdF8wX29mZnNldF9vcGVyYW5kIiAiSSIpKSkp CisgKHNldCAocmVnOlggUkVUVVJOX0FERFJfUkVHTlVNKQorIChtZW06WCAo cGx1czpYIChyZWc6WCBTUF9SRUdOVU0pCisgKG1hdGNoX29wZXJhbmQ6WCAy ICJzbG90XzFfb2Zmc2V0X29wZXJhbmQiICJJIikpKSldCisgIlRBUkdFVF9a Q01QIgorICJjbS5wb3Age3JhLCBzMH0sICUwIgorKQorCisoZGVmaW5lX2lu c24gImdwcl9tdWx0aV9wb3BfdXBfdG9fczFfPG1vZGU+IgorIFsoc2V0IChy ZWc6WCBTUF9SRUdOVU0pCisgKHBsdXM6WCAocmVnOlggU1BfUkVHTlVNKQor IChtYXRjaF9vcGVyYW5kIDAgInN0YWNrX3BvcF91cF90b19zMV9vcGVyYW5k IiAiSSIpKSkKKyAoc2V0IChyZWc6WCBTMV9SRUdOVU0pCisgKG1lbTpYIChw bHVzOlggKHJlZzpYIFNQX1JFR05VTSkKKyAobWF0Y2hfb3BlcmFuZDpYIDEg InNsb3RfMF9vZmZzZXRfb3BlcmFuZCIgIkkiKSkpKQorIChzZXQgKHJlZzpY IFMwX1JFR05VTSkKKyAobWVtOlggKHBsdXM6WCAocmVnOlggU1BfUkVHTlVN KQorIChtYXRjaF9vcGVyYW5kOlggMiAic2xvdF8xX29mZnNldF9vcGVyYW5k IiAiSSIpKSkpCisgKHNldCAocmVnOlggUkVUVVJOX0FERFJfUkVHTlVNKQor IChtZW06WCAocGx1czpYIChyZWc6WCBTUF9SRUdOVU0pCisgKG1hdGNoX29w ZXJhbmQ6WCAzICJzbG90XzJfb2Zmc2V0X29wZXJhbmQiICJJIikpKSldCisg IlRBUkdFVF9aQ01QIgorICJjbS5wb3Age3JhLCBzMC1zMX0sICUwIgorKQor CisoZGVmaW5lX2luc24gImdwcl9tdWx0aV9wb3BfdXBfdG9fczJfPG1vZGU+ IgorIFsoc2V0IChyZWc6WCBTUF9SRUdOVU0pCisgKHBsdXM6WCAocmVnOlgg U1BfUkVHTlVNKQorIChtYXRjaF9vcGVyYW5kIDAgInN0YWNrX3BvcF91cF90 b19zMl9vcGVyYW5kIiAiSSIpKSkKKyAoc2V0IChyZWc6WCBTMl9SRUdOVU0p CisgKG1lbTpYIChwbHVzOlggKHJlZzpYIFNQX1JFR05VTSkKKyAobWF0Y2hf b3BlcmFuZDpYIDEgInNsb3RfMF9vZmZzZXRfb3BlcmFuZCIgIkkiKSkpKQor IChzZXQgKHJlZzpYIFMxX1JFR05VTSkKKyAobWVtOlggKHBsdXM6WCAocmVn OlggU1BfUkVHTlVNKQorIChtYXRjaF9vcGVyYW5kOlggMiAic2xvdF8xX29m ZnNldF9vcGVyYW5kIiAiSSIpKSkpCisgKHNldCAocmVnOlggUzBfUkVHTlVN KQorIChtZW06WCAocGx1czpYIChyZWc6WCBTUF9SRUdOVU0pCisgKG1hdGNo X29wZXJhbmQ6WCAzICJzbG90XzJfb2Zmc2V0X29wZXJhbmQiICJJIikpKSkK KyAoc2V0IChyZWc6WCBSRVRVUk5fQUREUl9SRUdOVU0pCisgKG1lbTpYIChw bHVzOlggKHJlZzpYIFNQX1JFR05VTSkKKyAobWF0Y2hfb3BlcmFuZDpYIDQg InNsb3RfM19vZmZzZXRfb3BlcmFuZCIgIkkiKSkpKV0KKyAiVEFSR0VUX1pD TVAiCisgImNtLnBvcCB7cmEsIHMwLXMyfSwgJTAiCispCisKKyhkZWZpbmVf aW5zbiAiZ3ByX211bHRpX3BvcF91cF90b19zM188bW9kZT4iCisgWyhzZXQg KHJlZzpYIFNQX1JFR05VTSkKKyAocGx1czpYIChyZWc6WCBTUF9SRUdOVU0p CisgKG1hdGNoX29wZXJhbmQgMCAic3RhY2tfcG9wX3VwX3RvX3MzX29wZXJh bmQiICJJIikpKQorIChzZXQgKHJlZzpYIFMzX1JFR05VTSkKKyAobWVtOlgg KHBsdXM6WCAocmVnOlggU1BfUkVHTlVNKQorIChtYXRjaF9vcGVyYW5kOlgg MSAic2xvdF8wX29mZnNldF9vcGVyYW5kIiAiSSIpKSkpCisgKHNldCAocmVn OlggUzJfUkVHTlVNKQorIChtZW06WCAocGx1czpYIChyZWc6WCBTUF9SRUdO VU0pCisgKG1hdGNoX29wZXJhbmQ6WCAyICJzbG90XzFfb2Zmc2V0X29wZXJh bmQiICJJIikpKSkKKyAoc2V0IChyZWc6WCBTMV9SRUdOVU0pCisgKG1lbTpY IChwbHVzOlggKHJlZzpYIFNQX1JFR05VTSkKKyAobWF0Y2hfb3BlcmFuZDpY IDMgInNsb3RfMl9vZmZzZXRfb3BlcmFuZCIgIkkiKSkpKQorIChzZXQgKHJl ZzpYIFMwX1JFR05VTSkKKyAobWVtOlggKHBsdXM6WCAocmVnOlggU1BfUkVH TlVNKQorIChtYXRjaF9vcGVyYW5kOlggNCAic2xvdF8zX29mZnNldF9vcGVy YW5kIiAiSSIpKSkpCisgKHNldCAocmVnOlggUkVUVVJOX0FERFJfUkVHTlVN KQorIChtZW06WCAocGx1czpYIChyZWc6WCBTUF9SRUdOVU0pCisgKG1hdGNo X29wZXJhbmQ6WCA1ICJzbG90XzRfb2Zmc2V0X29wZXJhbmQiICJJIikpKSld CisgIlRBUkdFVF9aQ01QIgorICJjbS5wb3Age3JhLCBzMC1zM30sICUwIgor KQorCisoZGVmaW5lX2luc24gImdwcl9tdWx0aV9wb3BfdXBfdG9fczRfPG1v ZGU+IgorIFsoc2V0IChyZWc6WCBTUF9SRUdOVU0pCisgKHBsdXM6WCAocmVn OlggU1BfUkVHTlVNKQorIChtYXRjaF9vcGVyYW5kIDAgInN0YWNrX3BvcF91 cF90b19zNF9vcGVyYW5kIiAiSSIpKSkKKyAoc2V0IChyZWc6WCBTNF9SRUdO VU0pCisgKG1lbTpYIChwbHVzOlggKHJlZzpYIFNQX1JFR05VTSkKKyAobWF0 Y2hfb3BlcmFuZDpYIDEgInNsb3RfMF9vZmZzZXRfb3BlcmFuZCIgIkkiKSkp KQorIChzZXQgKHJlZzpYIFMzX1JFR05VTSkKKyAobWVtOlggKHBsdXM6WCAo cmVnOlggU1BfUkVHTlVNKQorIChtYXRjaF9vcGVyYW5kOlggMiAic2xvdF8x X29mZnNldF9vcGVyYW5kIiAiSSIpKSkpCisgKHNldCAocmVnOlggUzJfUkVH TlVNKQorIChtZW06WCAocGx1czpYIChyZWc6WCBTUF9SRUdOVU0pCisgKG1h dGNoX29wZXJhbmQ6WCAzICJzbG90XzJfb2Zmc2V0X29wZXJhbmQiICJJIikp KSkKKyAoc2V0IChyZWc6WCBTMV9SRUdOVU0pCisgKG1lbTpYIChwbHVzOlgg KHJlZzpYIFNQX1JFR05VTSkKKyAobWF0Y2hfb3BlcmFuZDpYIDQgInNsb3Rf M19vZmZzZXRfb3BlcmFuZCIgIkkiKSkpKQorIChzZXQgKHJlZzpYIFMwX1JF R05VTSkKKyAobWVtOlggKHBsdXM6WCAocmVnOlggU1BfUkVHTlVNKQorICht YXRjaF9vcGVyYW5kOlggNSAic2xvdF80X29mZnNldF9vcGVyYW5kIiAiSSIp KSkpCisgKHNldCAocmVnOlggUkVUVVJOX0FERFJfUkVHTlVNKQorIChtZW06 WCAocGx1czpYIChyZWc6WCBTUF9SRUdOVU0pCisgKG1hdGNoX29wZXJhbmQ6 WCA2ICJzbG90XzVfb2Zmc2V0X29wZXJhbmQiICJJIikpKSldCisgIlRBUkdF VF9aQ01QIgorICJjbS5wb3Age3JhLCBzMC1zNH0sICUwIgorKQorCisoZGVm aW5lX2luc24gImdwcl9tdWx0aV9wb3BfdXBfdG9fczVfPG1vZGU+IgorIFso c2V0IChyZWc6WCBTUF9SRUdOVU0pCisgKHBsdXM6WCAocmVnOlggU1BfUkVH TlVNKQorIChtYXRjaF9vcGVyYW5kIDAgInN0YWNrX3BvcF91cF90b19zNV9v cGVyYW5kIiAiSSIpKSkKKyAoc2V0IChyZWc6WCBTNV9SRUdOVU0pCisgKG1l bTpYIChwbHVzOlggKHJlZzpYIFNQX1JFR05VTSkKKyAobWF0Y2hfb3BlcmFu ZDpYIDEgInNsb3RfMF9vZmZzZXRfb3BlcmFuZCIgIkkiKSkpKQorIChzZXQg KHJlZzpYIFM0X1JFR05VTSkKKyAobWVtOlggKHBsdXM6WCAocmVnOlggU1Bf UkVHTlVNKQorIChtYXRjaF9vcGVyYW5kOlggMiAic2xvdF8xX29mZnNldF9v cGVyYW5kIiAiSSIpKSkpCisgKHNldCAocmVnOlggUzNfUkVHTlVNKQorICht ZW06WCAocGx1czpYIChyZWc6WCBTUF9SRUdOVU0pCisgKG1hdGNoX29wZXJh bmQ6WCAzICJzbG90XzJfb2Zmc2V0X29wZXJhbmQiICJJIikpKSkKKyAoc2V0 IChyZWc6WCBTMl9SRUdOVU0pCisgKG1lbTpYIChwbHVzOlggKHJlZzpYIFNQ X1JFR05VTSkKKyAobWF0Y2hfb3BlcmFuZDpYIDQgInNsb3RfM19vZmZzZXRf b3BlcmFuZCIgIkkiKSkpKQorIChzZXQgKHJlZzpYIFMxX1JFR05VTSkKKyAo bWVtOlggKHBsdXM6WCAocmVnOlggU1BfUkVHTlVNKQorIChtYXRjaF9vcGVy YW5kOlggNSAic2xvdF80X29mZnNldF9vcGVyYW5kIiAiSSIpKSkpCisgKHNl dCAocmVnOlggUzBfUkVHTlVNKQorIChtZW06WCAocGx1czpYIChyZWc6WCBT UF9SRUdOVU0pCisgKG1hdGNoX29wZXJhbmQ6WCA2ICJzbG90XzVfb2Zmc2V0 X29wZXJhbmQiICJJIikpKSkKKyAoc2V0IChyZWc6WCBSRVRVUk5fQUREUl9S RUdOVU0pCisgKG1lbTpYIChwbHVzOlggKHJlZzpYIFNQX1JFR05VTSkKKyAo bWF0Y2hfb3BlcmFuZDpYIDcgInNsb3RfNl9vZmZzZXRfb3BlcmFuZCIgIkki KSkpKV0KKyAiVEFSR0VUX1pDTVAiCisgImNtLnBvcCB7cmEsIHMwLXM1fSwg JTAiCispCisKKyhkZWZpbmVfaW5zbiAiZ3ByX211bHRpX3BvcF91cF90b19z Nl88bW9kZT4iCisgWyhzZXQgKHJlZzpYIFNQX1JFR05VTSkKKyAocGx1czpY IChyZWc6WCBTUF9SRUdOVU0pCisgKG1hdGNoX29wZXJhbmQgMCAic3RhY2tf cG9wX3VwX3RvX3M2X29wZXJhbmQiICJJIikpKQorIChzZXQgKHJlZzpYIFM2 X1JFR05VTSkKKyAobWVtOlggKHBsdXM6WCAocmVnOlggU1BfUkVHTlVNKQor IChtYXRjaF9vcGVyYW5kOlggMSAic2xvdF8wX29mZnNldF9vcGVyYW5kIiAi SSIpKSkpCisgKHNldCAocmVnOlggUzVfUkVHTlVNKQorIChtZW06WCAocGx1 czpYIChyZWc6WCBTUF9SRUdOVU0pCisgKG1hdGNoX29wZXJhbmQ6WCAyICJz bG90XzFfb2Zmc2V0X29wZXJhbmQiICJJIikpKSkKKyAoc2V0IChyZWc6WCBT NF9SRUdOVU0pCisgKG1lbTpYIChwbHVzOlggKHJlZzpYIFNQX1JFR05VTSkK KyAobWF0Y2hfb3BlcmFuZDpYIDMgInNsb3RfMl9vZmZzZXRfb3BlcmFuZCIg IkkiKSkpKQorIChzZXQgKHJlZzpYIFMzX1JFR05VTSkKKyAobWVtOlggKHBs dXM6WCAocmVnOlggU1BfUkVHTlVNKQorIChtYXRjaF9vcGVyYW5kOlggNCAi c2xvdF8zX29mZnNldF9vcGVyYW5kIiAiSSIpKSkpCisgKHNldCAocmVnOlgg UzJfUkVHTlVNKQorIChtZW06WCAocGx1czpYIChyZWc6WCBTUF9SRUdOVU0p CisgKG1hdGNoX29wZXJhbmQ6WCA1ICJzbG90XzRfb2Zmc2V0X29wZXJhbmQi ICJJIikpKSkKKyAoc2V0IChyZWc6WCBTMV9SRUdOVU0pCisgKG1lbTpYIChw bHVzOlggKHJlZzpYIFNQX1JFR05VTSkKKyAobWF0Y2hfb3BlcmFuZDpYIDYg InNsb3RfNV9vZmZzZXRfb3BlcmFuZCIgIkkiKSkpKQorIChzZXQgKHJlZzpY IFMwX1JFR05VTSkKKyAobWVtOlggKHBsdXM6WCAocmVnOlggU1BfUkVHTlVN KQorIChtYXRjaF9vcGVyYW5kOlggNyAic2xvdF82X29mZnNldF9vcGVyYW5k IiAiSSIpKSkpCisgKHNldCAocmVnOlggUkVUVVJOX0FERFJfUkVHTlVNKQor IChtZW06WCAocGx1czpYIChyZWc6WCBTUF9SRUdOVU0pCisgKG1hdGNoX29w ZXJhbmQ6WCA4ICJzbG90Xzdfb2Zmc2V0X29wZXJhbmQiICJJIikpKSldCisg IlRBUkdFVF9aQ01QIgorICJjbS5wb3Age3JhLCBzMC1zNn0sICUwIgorKQor CisoZGVmaW5lX2luc24gImdwcl9tdWx0aV9wb3BfdXBfdG9fczdfPG1vZGU+ IgorIFsoc2V0IChyZWc6WCBTUF9SRUdOVU0pCisgKHBsdXM6WCAocmVnOlgg U1BfUkVHTlVNKQorIChtYXRjaF9vcGVyYW5kIDAgInN0YWNrX3BvcF91cF90 b19zN19vcGVyYW5kIiAiSSIpKSkKKyAoc2V0IChyZWc6WCBTN19SRUdOVU0p CisgKG1lbTpYIChwbHVzOlggKHJlZzpYIFNQX1JFR05VTSkKKyAobWF0Y2hf b3BlcmFuZDpYIDEgInNsb3RfMF9vZmZzZXRfb3BlcmFuZCIgIkkiKSkpKQor IChzZXQgKHJlZzpYIFM2X1JFR05VTSkKKyAobWVtOlggKHBsdXM6WCAocmVn OlggU1BfUkVHTlVNKQorIChtYXRjaF9vcGVyYW5kOlggMiAic2xvdF8xX29m ZnNldF9vcGVyYW5kIiAiSSIpKSkpCisgKHNldCAocmVnOlggUzVfUkVHTlVN KQorIChtZW06WCAocGx1czpYIChyZWc6WCBTUF9SRUdOVU0pCisgKG1hdGNo X29wZXJhbmQ6WCAzICJzbG90XzJfb2Zmc2V0X29wZXJhbmQiICJJIikpKSkK KyAoc2V0IChyZWc6WCBTNF9SRUdOVU0pCisgKG1lbTpYIChwbHVzOlggKHJl ZzpYIFNQX1JFR05VTSkKKyAobWF0Y2hfb3BlcmFuZDpYIDQgInNsb3RfM19v ZmZzZXRfb3BlcmFuZCIgIkkiKSkpKQorIChzZXQgKHJlZzpYIFMzX1JFR05V TSkKKyAobWVtOlggKHBsdXM6WCAocmVnOlggU1BfUkVHTlVNKQorIChtYXRj aF9vcGVyYW5kOlggNSAic2xvdF80X29mZnNldF9vcGVyYW5kIiAiSSIpKSkp CisgKHNldCAocmVnOlggUzJfUkVHTlVNKQorIChtZW06WCAocGx1czpYIChy ZWc6WCBTUF9SRUdOVU0pCisgKG1hdGNoX29wZXJhbmQ6WCA2ICJzbG90XzVf b2Zmc2V0X29wZXJhbmQiICJJIikpKSkKKyAoc2V0IChyZWc6WCBTMV9SRUdO VU0pCisgKG1lbTpYIChwbHVzOlggKHJlZzpYIFNQX1JFR05VTSkKKyAobWF0 Y2hfb3BlcmFuZDpYIDcgInNsb3RfNl9vZmZzZXRfb3BlcmFuZCIgIkkiKSkp KQorIChzZXQgKHJlZzpYIFMwX1JFR05VTSkKKyAobWVtOlggKHBsdXM6WCAo cmVnOlggU1BfUkVHTlVNKQorIChtYXRjaF9vcGVyYW5kOlggOCAic2xvdF83 X29mZnNldF9vcGVyYW5kIiAiSSIpKSkpCisgKHNldCAocmVnOlggUkVUVVJO X0FERFJfUkVHTlVNKQorIChtZW06WCAocGx1czpYIChyZWc6WCBTUF9SRUdO VU0pCisgKG1hdGNoX29wZXJhbmQ6WCA5ICJzbG90Xzhfb2Zmc2V0X29wZXJh bmQiICJJIikpKSldCisgIlRBUkdFVF9aQ01QIgorICJjbS5wb3Age3JhLCBz MC1zN30sICUwIgorKQorCisoZGVmaW5lX2luc24gImdwcl9tdWx0aV9wb3Bf dXBfdG9fczhfPG1vZGU+IgorIFsoc2V0IChyZWc6WCBTUF9SRUdOVU0pCisg KHBsdXM6WCAocmVnOlggU1BfUkVHTlVNKQorIChtYXRjaF9vcGVyYW5kIDAg InN0YWNrX3BvcF91cF90b19zOF9vcGVyYW5kIiAiSSIpKSkKKyAoc2V0IChy ZWc6WCBTOF9SRUdOVU0pCisgKG1lbTpYIChwbHVzOlggKHJlZzpYIFNQX1JF R05VTSkKKyAobWF0Y2hfb3BlcmFuZDpYIDEgInNsb3RfMF9vZmZzZXRfb3Bl cmFuZCIgIkkiKSkpKQorIChzZXQgKHJlZzpYIFM3X1JFR05VTSkKKyAobWVt OlggKHBsdXM6WCAocmVnOlggU1BfUkVHTlVNKQorIChtYXRjaF9vcGVyYW5k OlggMiAic2xvdF8xX29mZnNldF9vcGVyYW5kIiAiSSIpKSkpCisgKHNldCAo cmVnOlggUzZfUkVHTlVNKQorIChtZW06WCAocGx1czpYIChyZWc6WCBTUF9S RUdOVU0pCisgKG1hdGNoX29wZXJhbmQ6WCAzICJzbG90XzJfb2Zmc2V0X29w ZXJhbmQiICJJIikpKSkKKyAoc2V0IChyZWc6WCBTNV9SRUdOVU0pCisgKG1l bTpYIChwbHVzOlggKHJlZzpYIFNQX1JFR05VTSkKKyAobWF0Y2hfb3BlcmFu ZDpYIDQgInNsb3RfM19vZmZzZXRfb3BlcmFuZCIgIkkiKSkpKQorIChzZXQg KHJlZzpYIFM0X1JFR05VTSkKKyAobWVtOlggKHBsdXM6WCAocmVnOlggU1Bf UkVHTlVNKQorIChtYXRjaF9vcGVyYW5kOlggNSAic2xvdF80X29mZnNldF9v cGVyYW5kIiAiSSIpKSkpCisgKHNldCAocmVnOlggUzNfUkVHTlVNKQorICht ZW06WCAocGx1czpYIChyZWc6WCBTUF9SRUdOVU0pCisgKG1hdGNoX29wZXJh bmQ6WCA2ICJzbG90XzVfb2Zmc2V0X29wZXJhbmQiICJJIikpKSkKKyAoc2V0 IChyZWc6WCBTMl9SRUdOVU0pCisgKG1lbTpYIChwbHVzOlggKHJlZzpYIFNQ X1JFR05VTSkKKyAobWF0Y2hfb3BlcmFuZDpYIDcgInNsb3RfNl9vZmZzZXRf b3BlcmFuZCIgIkkiKSkpKQorIChzZXQgKHJlZzpYIFMxX1JFR05VTSkKKyAo bWVtOlggKHBsdXM6WCAocmVnOlggU1BfUkVHTlVNKQorIChtYXRjaF9vcGVy YW5kOlggOCAic2xvdF83X29mZnNldF9vcGVyYW5kIiAiSSIpKSkpCisgKHNl dCAocmVnOlggUzBfUkVHTlVNKQorIChtZW06WCAocGx1czpYIChyZWc6WCBT UF9SRUdOVU0pCisgKG1hdGNoX29wZXJhbmQ6WCA5ICJzbG90Xzhfb2Zmc2V0 X29wZXJhbmQiICJJIikpKSkKKyAoc2V0IChyZWc6WCBSRVRVUk5fQUREUl9S RUdOVU0pCisgKG1lbTpYIChwbHVzOlggKHJlZzpYIFNQX1JFR05VTSkKKyAo bWF0Y2hfb3BlcmFuZDpYIDEwICJzbG90Xzlfb2Zmc2V0X29wZXJhbmQiICJJ IikpKSldCisgIlRBUkdFVF9aQ01QIgorICJjbS5wb3Age3JhLCBzMC1zOH0s ICUwIgorKQorCisoZGVmaW5lX2luc24gImdwcl9tdWx0aV9wb3BfdXBfdG9f czlfPG1vZGU+IgorIFsoc2V0IChyZWc6WCBTUF9SRUdOVU0pCisgKHBsdXM6 WCAocmVnOlggU1BfUkVHTlVNKQorIChtYXRjaF9vcGVyYW5kIDAgInN0YWNr X3BvcF91cF90b19zOV9vcGVyYW5kIiAiSSIpKSkKKyAoc2V0IChyZWc6WCBT OV9SRUdOVU0pCisgKG1lbTpYIChwbHVzOlggKHJlZzpYIFNQX1JFR05VTSkK KyAobWF0Y2hfb3BlcmFuZDpYIDEgInNsb3RfMF9vZmZzZXRfb3BlcmFuZCIg IkkiKSkpKQorIChzZXQgKHJlZzpYIFM4X1JFR05VTSkKKyAobWVtOlggKHBs dXM6WCAocmVnOlggU1BfUkVHTlVNKQorIChtYXRjaF9vcGVyYW5kOlggMiAi c2xvdF8xX29mZnNldF9vcGVyYW5kIiAiSSIpKSkpCisgKHNldCAocmVnOlgg UzdfUkVHTlVNKQorIChtZW06WCAocGx1czpYIChyZWc6WCBTUF9SRUdOVU0p CisgKG1hdGNoX29wZXJhbmQ6WCAzICJzbG90XzJfb2Zmc2V0X29wZXJhbmQi ICJJIikpKSkKKyAoc2V0IChyZWc6WCBTNl9SRUdOVU0pCisgKG1lbTpYIChw bHVzOlggKHJlZzpYIFNQX1JFR05VTSkKKyAobWF0Y2hfb3BlcmFuZDpYIDQg InNsb3RfM19vZmZzZXRfb3BlcmFuZCIgIkkiKSkpKQorIChzZXQgKHJlZzpY IFM1X1JFR05VTSkKKyAobWVtOlggKHBsdXM6WCAocmVnOlggU1BfUkVHTlVN KQorIChtYXRjaF9vcGVyYW5kOlggNSAic2xvdF80X29mZnNldF9vcGVyYW5k IiAiSSIpKSkpCisgKHNldCAocmVnOlggUzRfUkVHTlVNKQorIChtZW06WCAo cGx1czpYIChyZWc6WCBTUF9SRUdOVU0pCisgKG1hdGNoX29wZXJhbmQ6WCA2 ICJzbG90XzVfb2Zmc2V0X29wZXJhbmQiICJJIikpKSkKKyAoc2V0IChyZWc6 WCBTM19SRUdOVU0pCisgKG1lbTpYIChwbHVzOlggKHJlZzpYIFNQX1JFR05V TSkKKyAobWF0Y2hfb3BlcmFuZDpYIDcgInNsb3RfNl9vZmZzZXRfb3BlcmFu ZCIgIkkiKSkpKQorIChzZXQgKHJlZzpYIFMyX1JFR05VTSkKKyAobWVtOlgg KHBsdXM6WCAocmVnOlggU1BfUkVHTlVNKQorIChtYXRjaF9vcGVyYW5kOlgg OCAic2xvdF83X29mZnNldF9vcGVyYW5kIiAiSSIpKSkpCisgKHNldCAocmVn OlggUzFfUkVHTlVNKQorIChtZW06WCAocGx1czpYIChyZWc6WCBTUF9SRUdO VU0pCisgKG1hdGNoX29wZXJhbmQ6WCA5ICJzbG90Xzhfb2Zmc2V0X29wZXJh bmQiICJJIikpKSkKKyAoc2V0IChyZWc6WCBTMF9SRUdOVU0pCisgKG1lbTpY IChwbHVzOlggKHJlZzpYIFNQX1JFR05VTSkKKyAobWF0Y2hfb3BlcmFuZDpY IDEwICJzbG90Xzlfb2Zmc2V0X29wZXJhbmQiICJJIikpKSkKKyAoc2V0IChy ZWc6WCBSRVRVUk5fQUREUl9SRUdOVU0pCisgKG1lbTpYIChwbHVzOlggKHJl ZzpYIFNQX1JFR05VTSkKKyAobWF0Y2hfb3BlcmFuZDpYIDExICJzbG90XzEw X29mZnNldF9vcGVyYW5kIiAiSSIpKSkpXQorICJUQVJHRVRfWkNNUCIKKyAi Y20ucG9wIHtyYSwgczAtczl9LCAlMCIKKykKKworKGRlZmluZV9pbnNuICJn cHJfbXVsdGlfcG9wX3VwX3RvX3MxMV88bW9kZT4iCisgWyhzZXQgKHJlZzpY IFNQX1JFR05VTSkKKyAocGx1czpYIChyZWc6WCBTUF9SRUdOVU0pCisgKG1h dGNoX29wZXJhbmQgMCAic3RhY2tfcG9wX3VwX3RvX3MxMV9vcGVyYW5kIiAi SSIpKSkKKyAoc2V0IChyZWc6WCBTMTFfUkVHTlVNKQorIChtZW06WCAocGx1 czpYIChyZWc6WCBTUF9SRUdOVU0pCisgKG1hdGNoX29wZXJhbmQ6WCAxICJz bG90XzBfb2Zmc2V0X29wZXJhbmQiICJJIikpKSkKKyAoc2V0IChyZWc6WCBT MTBfUkVHTlVNKQorIChtZW06WCAocGx1czpYIChyZWc6WCBTUF9SRUdOVU0p CisgKG1hdGNoX29wZXJhbmQ6WCAyICJzbG90XzFfb2Zmc2V0X29wZXJhbmQi ICJJIikpKSkKKyAoc2V0IChyZWc6WCBTOV9SRUdOVU0pCisgKG1lbTpYIChw bHVzOlggKHJlZzpYIFNQX1JFR05VTSkKKyAobWF0Y2hfb3BlcmFuZDpYIDMg InNsb3RfMl9vZmZzZXRfb3BlcmFuZCIgIkkiKSkpKQorIChzZXQgKHJlZzpY IFM4X1JFR05VTSkKKyAobWVtOlggKHBsdXM6WCAocmVnOlggU1BfUkVHTlVN KQorIChtYXRjaF9vcGVyYW5kOlggNCAic2xvdF8zX29mZnNldF9vcGVyYW5k IiAiSSIpKSkpCisgKHNldCAocmVnOlggUzdfUkVHTlVNKQorIChtZW06WCAo cGx1czpYIChyZWc6WCBTUF9SRUdOVU0pCisgKG1hdGNoX29wZXJhbmQ6WCA1 ICJzbG90XzRfb2Zmc2V0X29wZXJhbmQiICJJIikpKSkKKyAoc2V0IChyZWc6 WCBTNl9SRUdOVU0pCisgKG1lbTpYIChwbHVzOlggKHJlZzpYIFNQX1JFR05V TSkKKyAobWF0Y2hfb3BlcmFuZDpYIDYgInNsb3RfNV9vZmZzZXRfb3BlcmFu ZCIgIkkiKSkpKQorIChzZXQgKHJlZzpYIFM1X1JFR05VTSkKKyAobWVtOlgg KHBsdXM6WCAocmVnOlggU1BfUkVHTlVNKQorIChtYXRjaF9vcGVyYW5kOlgg NyAic2xvdF82X29mZnNldF9vcGVyYW5kIiAiSSIpKSkpCisgKHNldCAocmVn OlggUzRfUkVHTlVNKQorIChtZW06WCAocGx1czpYIChyZWc6WCBTUF9SRUdO VU0pCisgKG1hdGNoX29wZXJhbmQ6WCA4ICJzbG90Xzdfb2Zmc2V0X29wZXJh bmQiICJJIikpKSkKKyAoc2V0IChyZWc6WCBTM19SRUdOVU0pCisgKG1lbTpY IChwbHVzOlggKHJlZzpYIFNQX1JFR05VTSkKKyAobWF0Y2hfb3BlcmFuZDpY IDkgInNsb3RfOF9vZmZzZXRfb3BlcmFuZCIgIkkiKSkpKQorIChzZXQgKHJl ZzpYIFMyX1JFR05VTSkKKyAobWVtOlggKHBsdXM6WCAocmVnOlggU1BfUkVH TlVNKQorIChtYXRjaF9vcGVyYW5kOlggMTAgInNsb3RfOV9vZmZzZXRfb3Bl cmFuZCIgIkkiKSkpKQorIChzZXQgKHJlZzpYIFMxX1JFR05VTSkKKyAobWVt OlggKHBsdXM6WCAocmVnOlggU1BfUkVHTlVNKQorIChtYXRjaF9vcGVyYW5k OlggMTEgInNsb3RfMTBfb2Zmc2V0X29wZXJhbmQiICJJIikpKSkKKyAoc2V0 IChyZWc6WCBTMF9SRUdOVU0pCisgKG1lbTpYIChwbHVzOlggKHJlZzpYIFNQ X1JFR05VTSkKKyAobWF0Y2hfb3BlcmFuZDpYIDEyICJzbG90XzExX29mZnNl dF9vcGVyYW5kIiAiSSIpKSkpCisgKHNldCAocmVnOlggUkVUVVJOX0FERFJf UkVHTlVNKQorIChtZW06WCAocGx1czpYIChyZWc6WCBTUF9SRUdOVU0pCisg KG1hdGNoX29wZXJhbmQ6WCAxMyAic2xvdF8xMl9vZmZzZXRfb3BlcmFuZCIg IkkiKSkpKV0KKyAiVEFSR0VUX1pDTVAiCisgImNtLnBvcCB7cmEsIHMwLXMx MX0sICUwIgorKQorCisoZGVmaW5lX2luc24gImdwcl9tdWx0aV9wb3ByZXRf dXBfdG9fcmFfPG1vZGU+IgorIFsoc2V0IChyZWc6WCBTUF9SRUdOVU0pCisg KHBsdXM6WCAocmVnOlggU1BfUkVHTlVNKQorIChtYXRjaF9vcGVyYW5kIDAg InN0YWNrX3BvcF91cF90b19yYV9vcGVyYW5kIiAiSSIpKSkKKyAoc2V0IChy ZWc6WCBSRVRVUk5fQUREUl9SRUdOVU0pCisgKG1lbTpYIChwbHVzOlggKHJl ZzpYIFNQX1JFR05VTSkKKyAobWF0Y2hfb3BlcmFuZDpYIDEgInNsb3RfMF9v ZmZzZXRfb3BlcmFuZCIgIkkiKSkpKQorIChyZXR1cm4pCisgKHVzZSAocmVn OlNJIFJFVFVSTl9BRERSX1JFR05VTSkpXQorICJUQVJHRVRfWkNNUCIKKyAi Y20ucG9wcmV0IHtyYX0sICUwIgorKQorCisoZGVmaW5lX2luc24gImdwcl9t dWx0aV9wb3ByZXRfdXBfdG9fczBfPG1vZGU+IgorIFsoc2V0IChyZWc6WCBT UF9SRUdOVU0pCisgKHBsdXM6WCAocmVnOlggU1BfUkVHTlVNKQorIChtYXRj aF9vcGVyYW5kIDAgInN0YWNrX3BvcF91cF90b19zMF9vcGVyYW5kIiAiSSIp KSkKKyAoc2V0IChyZWc6WCBTMF9SRUdOVU0pCisgKG1lbTpYIChwbHVzOlgg KHJlZzpYIFNQX1JFR05VTSkKKyAobWF0Y2hfb3BlcmFuZDpYIDEgInNsb3Rf MF9vZmZzZXRfb3BlcmFuZCIgIkkiKSkpKQorIChzZXQgKHJlZzpYIFJFVFVS Tl9BRERSX1JFR05VTSkKKyAobWVtOlggKHBsdXM6WCAocmVnOlggU1BfUkVH TlVNKQorIChtYXRjaF9vcGVyYW5kOlggMiAic2xvdF8xX29mZnNldF9vcGVy YW5kIiAiSSIpKSkpCisgKHJldHVybikKKyAodXNlIChyZWc6U0kgUkVUVVJO X0FERFJfUkVHTlVNKSldCisgIlRBUkdFVF9aQ01QIgorICJjbS5wb3ByZXQg e3JhLCBzMH0sICUwIgorKQorCisoZGVmaW5lX2luc24gImdwcl9tdWx0aV9w b3ByZXRfdXBfdG9fczFfPG1vZGU+IgorIFsoc2V0IChyZWc6WCBTUF9SRUdO VU0pCisgKHBsdXM6WCAocmVnOlggU1BfUkVHTlVNKQorIChtYXRjaF9vcGVy YW5kIDAgInN0YWNrX3BvcF91cF90b19zMV9vcGVyYW5kIiAiSSIpKSkKKyAo c2V0IChyZWc6WCBTMV9SRUdOVU0pCisgKG1lbTpYIChwbHVzOlggKHJlZzpY IFNQX1JFR05VTSkKKyAobWF0Y2hfb3BlcmFuZDpYIDEgInNsb3RfMF9vZmZz ZXRfb3BlcmFuZCIgIkkiKSkpKQorIChzZXQgKHJlZzpYIFMwX1JFR05VTSkK KyAobWVtOlggKHBsdXM6WCAocmVnOlggU1BfUkVHTlVNKQorIChtYXRjaF9v cGVyYW5kOlggMiAic2xvdF8xX29mZnNldF9vcGVyYW5kIiAiSSIpKSkpCisg KHNldCAocmVnOlggUkVUVVJOX0FERFJfUkVHTlVNKQorIChtZW06WCAocGx1 czpYIChyZWc6WCBTUF9SRUdOVU0pCisgKG1hdGNoX29wZXJhbmQ6WCAzICJz bG90XzJfb2Zmc2V0X29wZXJhbmQiICJJIikpKSkKKyAocmV0dXJuKQorICh1 c2UgKHJlZzpTSSBSRVRVUk5fQUREUl9SRUdOVU0pKV0KKyAiVEFSR0VUX1pD TVAiCisgImNtLnBvcHJldCB7cmEsIHMwLXMxfSwgJTAiCispCisKKyhkZWZp bmVfaW5zbiAiZ3ByX211bHRpX3BvcHJldF91cF90b19zMl88bW9kZT4iCisg WyhzZXQgKHJlZzpYIFNQX1JFR05VTSkKKyAocGx1czpYIChyZWc6WCBTUF9S RUdOVU0pCisgKG1hdGNoX29wZXJhbmQgMCAic3RhY2tfcG9wX3VwX3RvX3My X29wZXJhbmQiICJJIikpKQorIChzZXQgKHJlZzpYIFMyX1JFR05VTSkKKyAo bWVtOlggKHBsdXM6WCAocmVnOlggU1BfUkVHTlVNKQorIChtYXRjaF9vcGVy YW5kOlggMSAic2xvdF8wX29mZnNldF9vcGVyYW5kIiAiSSIpKSkpCisgKHNl dCAocmVnOlggUzFfUkVHTlVNKQorIChtZW06WCAocGx1czpYIChyZWc6WCBT UF9SRUdOVU0pCisgKG1hdGNoX29wZXJhbmQ6WCAyICJzbG90XzFfb2Zmc2V0 X29wZXJhbmQiICJJIikpKSkKKyAoc2V0IChyZWc6WCBTMF9SRUdOVU0pCisg KG1lbTpYIChwbHVzOlggKHJlZzpYIFNQX1JFR05VTSkKKyAobWF0Y2hfb3Bl cmFuZDpYIDMgInNsb3RfMl9vZmZzZXRfb3BlcmFuZCIgIkkiKSkpKQorIChz ZXQgKHJlZzpYIFJFVFVSTl9BRERSX1JFR05VTSkKKyAobWVtOlggKHBsdXM6 WCAocmVnOlggU1BfUkVHTlVNKQorIChtYXRjaF9vcGVyYW5kOlggNCAic2xv dF8zX29mZnNldF9vcGVyYW5kIiAiSSIpKSkpCisgKHJldHVybikKKyAodXNl IChyZWc6U0kgUkVUVVJOX0FERFJfUkVHTlVNKSldCisgIlRBUkdFVF9aQ01Q IgorICJjbS5wb3ByZXQge3JhLCBzMC1zMn0sICUwIgorKQorCisoZGVmaW5l X2luc24gImdwcl9tdWx0aV9wb3ByZXRfdXBfdG9fczNfPG1vZGU+IgorIFso c2V0IChyZWc6WCBTUF9SRUdOVU0pCisgKHBsdXM6WCAocmVnOlggU1BfUkVH TlVNKQorIChtYXRjaF9vcGVyYW5kIDAgInN0YWNrX3BvcF91cF90b19zM19v cGVyYW5kIiAiSSIpKSkKKyAoc2V0IChyZWc6WCBTM19SRUdOVU0pCisgKG1l bTpYIChwbHVzOlggKHJlZzpYIFNQX1JFR05VTSkKKyAobWF0Y2hfb3BlcmFu ZDpYIDEgInNsb3RfMF9vZmZzZXRfb3BlcmFuZCIgIkkiKSkpKQorIChzZXQg KHJlZzpYIFMyX1JFR05VTSkKKyAobWVtOlggKHBsdXM6WCAocmVnOlggU1Bf UkVHTlVNKQorIChtYXRjaF9vcGVyYW5kOlggMiAic2xvdF8xX29mZnNldF9v cGVyYW5kIiAiSSIpKSkpCisgKHNldCAocmVnOlggUzFfUkVHTlVNKQorICht ZW06WCAocGx1czpYIChyZWc6WCBTUF9SRUdOVU0pCisgKG1hdGNoX29wZXJh bmQ6WCAzICJzbG90XzJfb2Zmc2V0X29wZXJhbmQiICJJIikpKSkKKyAoc2V0 IChyZWc6WCBTMF9SRUdOVU0pCisgKG1lbTpYIChwbHVzOlggKHJlZzpYIFNQ X1JFR05VTSkKKyAobWF0Y2hfb3BlcmFuZDpYIDQgInNsb3RfM19vZmZzZXRf b3BlcmFuZCIgIkkiKSkpKQorIChzZXQgKHJlZzpYIFJFVFVSTl9BRERSX1JF R05VTSkKKyAobWVtOlggKHBsdXM6WCAocmVnOlggU1BfUkVHTlVNKQorICht YXRjaF9vcGVyYW5kOlggNSAic2xvdF80X29mZnNldF9vcGVyYW5kIiAiSSIp KSkpCisgKHJldHVybikKKyAodXNlIChyZWc6U0kgUkVUVVJOX0FERFJfUkVH TlVNKSldCisgIlRBUkdFVF9aQ01QIgorICJjbS5wb3ByZXQge3JhLCBzMC1z M30sICUwIgorKQorCisoZGVmaW5lX2luc24gImdwcl9tdWx0aV9wb3ByZXRf dXBfdG9fczRfPG1vZGU+IgorIFsoc2V0IChyZWc6WCBTUF9SRUdOVU0pCisg KHBsdXM6WCAocmVnOlggU1BfUkVHTlVNKQorIChtYXRjaF9vcGVyYW5kIDAg InN0YWNrX3BvcF91cF90b19zNF9vcGVyYW5kIiAiSSIpKSkKKyAoc2V0IChy ZWc6WCBTNF9SRUdOVU0pCisgKG1lbTpYIChwbHVzOlggKHJlZzpYIFNQX1JF R05VTSkKKyAobWF0Y2hfb3BlcmFuZDpYIDEgInNsb3RfMF9vZmZzZXRfb3Bl cmFuZCIgIkkiKSkpKQorIChzZXQgKHJlZzpYIFMzX1JFR05VTSkKKyAobWVt OlggKHBsdXM6WCAocmVnOlggU1BfUkVHTlVNKQorIChtYXRjaF9vcGVyYW5k OlggMiAic2xvdF8xX29mZnNldF9vcGVyYW5kIiAiSSIpKSkpCisgKHNldCAo cmVnOlggUzJfUkVHTlVNKQorIChtZW06WCAocGx1czpYIChyZWc6WCBTUF9S RUdOVU0pCisgKG1hdGNoX29wZXJhbmQ6WCAzICJzbG90XzJfb2Zmc2V0X29w ZXJhbmQiICJJIikpKSkKKyAoc2V0IChyZWc6WCBTMV9SRUdOVU0pCisgKG1l bTpYIChwbHVzOlggKHJlZzpYIFNQX1JFR05VTSkKKyAobWF0Y2hfb3BlcmFu ZDpYIDQgInNsb3RfM19vZmZzZXRfb3BlcmFuZCIgIkkiKSkpKQorIChzZXQg KHJlZzpYIFMwX1JFR05VTSkKKyAobWVtOlggKHBsdXM6WCAocmVnOlggU1Bf UkVHTlVNKQorIChtYXRjaF9vcGVyYW5kOlggNSAic2xvdF80X29mZnNldF9v cGVyYW5kIiAiSSIpKSkpCisgKHNldCAocmVnOlggUkVUVVJOX0FERFJfUkVH TlVNKQorIChtZW06WCAocGx1czpYIChyZWc6WCBTUF9SRUdOVU0pCisgKG1h dGNoX29wZXJhbmQ6WCA2ICJzbG90XzVfb2Zmc2V0X29wZXJhbmQiICJJIikp KSkKKyAocmV0dXJuKQorICh1c2UgKHJlZzpTSSBSRVRVUk5fQUREUl9SRUdO VU0pKV0KKyAiVEFSR0VUX1pDTVAiCisgImNtLnBvcHJldCB7cmEsIHMwLXM0 fSwgJTAiCispCisKKyhkZWZpbmVfaW5zbiAiZ3ByX211bHRpX3BvcHJldF91 cF90b19zNV88bW9kZT4iCisgWyhzZXQgKHJlZzpYIFNQX1JFR05VTSkKKyAo cGx1czpYIChyZWc6WCBTUF9SRUdOVU0pCisgKG1hdGNoX29wZXJhbmQgMCAi c3RhY2tfcG9wX3VwX3RvX3M1X29wZXJhbmQiICJJIikpKQorIChzZXQgKHJl ZzpYIFM1X1JFR05VTSkKKyAobWVtOlggKHBsdXM6WCAocmVnOlggU1BfUkVH TlVNKQorIChtYXRjaF9vcGVyYW5kOlggMSAic2xvdF8wX29mZnNldF9vcGVy YW5kIiAiSSIpKSkpCisgKHNldCAocmVnOlggUzRfUkVHTlVNKQorIChtZW06 WCAocGx1czpYIChyZWc6WCBTUF9SRUdOVU0pCisgKG1hdGNoX29wZXJhbmQ6 WCAyICJzbG90XzFfb2Zmc2V0X29wZXJhbmQiICJJIikpKSkKKyAoc2V0IChy ZWc6WCBTM19SRUdOVU0pCisgKG1lbTpYIChwbHVzOlggKHJlZzpYIFNQX1JF R05VTSkKKyAobWF0Y2hfb3BlcmFuZDpYIDMgInNsb3RfMl9vZmZzZXRfb3Bl cmFuZCIgIkkiKSkpKQorIChzZXQgKHJlZzpYIFMyX1JFR05VTSkKKyAobWVt OlggKHBsdXM6WCAocmVnOlggU1BfUkVHTlVNKQorIChtYXRjaF9vcGVyYW5k OlggNCAic2xvdF8zX29mZnNldF9vcGVyYW5kIiAiSSIpKSkpCisgKHNldCAo cmVnOlggUzFfUkVHTlVNKQorIChtZW06WCAocGx1czpYIChyZWc6WCBTUF9S RUdOVU0pCisgKG1hdGNoX29wZXJhbmQ6WCA1ICJzbG90XzRfb2Zmc2V0X29w ZXJhbmQiICJJIikpKSkKKyAoc2V0IChyZWc6WCBTMF9SRUdOVU0pCisgKG1l bTpYIChwbHVzOlggKHJlZzpYIFNQX1JFR05VTSkKKyAobWF0Y2hfb3BlcmFu ZDpYIDYgInNsb3RfNV9vZmZzZXRfb3BlcmFuZCIgIkkiKSkpKQorIChzZXQg KHJlZzpYIFJFVFVSTl9BRERSX1JFR05VTSkKKyAobWVtOlggKHBsdXM6WCAo cmVnOlggU1BfUkVHTlVNKQorIChtYXRjaF9vcGVyYW5kOlggNyAic2xvdF82 X29mZnNldF9vcGVyYW5kIiAiSSIpKSkpCisgKHJldHVybikKKyAodXNlIChy ZWc6U0kgUkVUVVJOX0FERFJfUkVHTlVNKSldCisgIlRBUkdFVF9aQ01QIgor ICJjbS5wb3ByZXQge3JhLCBzMC1zNX0sICUwIgorKQorCisoZGVmaW5lX2lu c24gImdwcl9tdWx0aV9wb3ByZXRfdXBfdG9fczZfPG1vZGU+IgorIFsoc2V0 IChyZWc6WCBTUF9SRUdOVU0pCisgKHBsdXM6WCAocmVnOlggU1BfUkVHTlVN KQorIChtYXRjaF9vcGVyYW5kIDAgInN0YWNrX3BvcF91cF90b19zNl9vcGVy YW5kIiAiSSIpKSkKKyAoc2V0IChyZWc6WCBTNl9SRUdOVU0pCisgKG1lbTpY IChwbHVzOlggKHJlZzpYIFNQX1JFR05VTSkKKyAobWF0Y2hfb3BlcmFuZDpY IDEgInNsb3RfMF9vZmZzZXRfb3BlcmFuZCIgIkkiKSkpKQorIChzZXQgKHJl ZzpYIFM1X1JFR05VTSkKKyAobWVtOlggKHBsdXM6WCAocmVnOlggU1BfUkVH TlVNKQorIChtYXRjaF9vcGVyYW5kOlggMiAic2xvdF8xX29mZnNldF9vcGVy YW5kIiAiSSIpKSkpCisgKHNldCAocmVnOlggUzRfUkVHTlVNKQorIChtZW06 WCAocGx1czpYIChyZWc6WCBTUF9SRUdOVU0pCisgKG1hdGNoX29wZXJhbmQ6 WCAzICJzbG90XzJfb2Zmc2V0X29wZXJhbmQiICJJIikpKSkKKyAoc2V0IChy ZWc6WCBTM19SRUdOVU0pCisgKG1lbTpYIChwbHVzOlggKHJlZzpYIFNQX1JF R05VTSkKKyAobWF0Y2hfb3BlcmFuZDpYIDQgInNsb3RfM19vZmZzZXRfb3Bl cmFuZCIgIkkiKSkpKQorIChzZXQgKHJlZzpYIFMyX1JFR05VTSkKKyAobWVt OlggKHBsdXM6WCAocmVnOlggU1BfUkVHTlVNKQorIChtYXRjaF9vcGVyYW5k OlggNSAic2xvdF80X29mZnNldF9vcGVyYW5kIiAiSSIpKSkpCisgKHNldCAo cmVnOlggUzFfUkVHTlVNKQorIChtZW06WCAocGx1czpYIChyZWc6WCBTUF9S RUdOVU0pCisgKG1hdGNoX29wZXJhbmQ6WCA2ICJzbG90XzVfb2Zmc2V0X29w ZXJhbmQiICJJIikpKSkKKyAoc2V0IChyZWc6WCBTMF9SRUdOVU0pCisgKG1l bTpYIChwbHVzOlggKHJlZzpYIFNQX1JFR05VTSkKKyAobWF0Y2hfb3BlcmFu ZDpYIDcgInNsb3RfNl9vZmZzZXRfb3BlcmFuZCIgIkkiKSkpKQorIChzZXQg KHJlZzpYIFJFVFVSTl9BRERSX1JFR05VTSkKKyAobWVtOlggKHBsdXM6WCAo cmVnOlggU1BfUkVHTlVNKQorIChtYXRjaF9vcGVyYW5kOlggOCAic2xvdF83 X29mZnNldF9vcGVyYW5kIiAiSSIpKSkpCisgKHJldHVybikKKyAodXNlIChy ZWc6U0kgUkVUVVJOX0FERFJfUkVHTlVNKSldCisgIlRBUkdFVF9aQ01QIgor ICJjbS5wb3ByZXQge3JhLCBzMC1zNn0sICUwIgorKQorCisoZGVmaW5lX2lu c24gImdwcl9tdWx0aV9wb3ByZXRfdXBfdG9fczdfPG1vZGU+IgorIFsoc2V0 IChyZWc6WCBTUF9SRUdOVU0pCisgKHBsdXM6WCAocmVnOlggU1BfUkVHTlVN KQorIChtYXRjaF9vcGVyYW5kIDAgInN0YWNrX3BvcF91cF90b19zN19vcGVy YW5kIiAiSSIpKSkKKyAoc2V0IChyZWc6WCBTN19SRUdOVU0pCisgKG1lbTpY IChwbHVzOlggKHJlZzpYIFNQX1JFR05VTSkKKyAobWF0Y2hfb3BlcmFuZDpY IDEgInNsb3RfMF9vZmZzZXRfb3BlcmFuZCIgIkkiKSkpKQorIChzZXQgKHJl ZzpYIFM2X1JFR05VTSkKKyAobWVtOlggKHBsdXM6WCAocmVnOlggU1BfUkVH TlVNKQorIChtYXRjaF9vcGVyYW5kOlggMiAic2xvdF8xX29mZnNldF9vcGVy YW5kIiAiSSIpKSkpCisgKHNldCAocmVnOlggUzVfUkVHTlVNKQorIChtZW06 WCAocGx1czpYIChyZWc6WCBTUF9SRUdOVU0pCisgKG1hdGNoX29wZXJhbmQ6 WCAzICJzbG90XzJfb2Zmc2V0X29wZXJhbmQiICJJIikpKSkKKyAoc2V0IChy ZWc6WCBTNF9SRUdOVU0pCisgKG1lbTpYIChwbHVzOlggKHJlZzpYIFNQX1JF R05VTSkKKyAobWF0Y2hfb3BlcmFuZDpYIDQgInNsb3RfM19vZmZzZXRfb3Bl cmFuZCIgIkkiKSkpKQorIChzZXQgKHJlZzpYIFMzX1JFR05VTSkKKyAobWVt OlggKHBsdXM6WCAocmVnOlggU1BfUkVHTlVNKQorIChtYXRjaF9vcGVyYW5k OlggNSAic2xvdF80X29mZnNldF9vcGVyYW5kIiAiSSIpKSkpCisgKHNldCAo cmVnOlggUzJfUkVHTlVNKQorIChtZW06WCAocGx1czpYIChyZWc6WCBTUF9S RUdOVU0pCisgKG1hdGNoX29wZXJhbmQ6WCA2ICJzbG90XzVfb2Zmc2V0X29w ZXJhbmQiICJJIikpKSkKKyAoc2V0IChyZWc6WCBTMV9SRUdOVU0pCisgKG1l bTpYIChwbHVzOlggKHJlZzpYIFNQX1JFR05VTSkKKyAobWF0Y2hfb3BlcmFu ZDpYIDcgInNsb3RfNl9vZmZzZXRfb3BlcmFuZCIgIkkiKSkpKQorIChzZXQg KHJlZzpYIFMwX1JFR05VTSkKKyAobWVtOlggKHBsdXM6WCAocmVnOlggU1Bf UkVHTlVNKQorIChtYXRjaF9vcGVyYW5kOlggOCAic2xvdF83X29mZnNldF9v cGVyYW5kIiAiSSIpKSkpCisgKHNldCAocmVnOlggUkVUVVJOX0FERFJfUkVH TlVNKQorIChtZW06WCAocGx1czpYIChyZWc6WCBTUF9SRUdOVU0pCisgKG1h dGNoX29wZXJhbmQ6WCA5ICJzbG90Xzhfb2Zmc2V0X29wZXJhbmQiICJJIikp KSkKKyAocmV0dXJuKQorICh1c2UgKHJlZzpTSSBSRVRVUk5fQUREUl9SRUdO VU0pKV0KKyAiVEFSR0VUX1pDTVAiCisgImNtLnBvcHJldCB7cmEsIHMwLXM3 fSwgJTAiCispCisKKyhkZWZpbmVfaW5zbiAiZ3ByX211bHRpX3BvcHJldF91 cF90b19zOF88bW9kZT4iCisgWyhzZXQgKHJlZzpYIFNQX1JFR05VTSkKKyAo cGx1czpYIChyZWc6WCBTUF9SRUdOVU0pCisgKG1hdGNoX29wZXJhbmQgMCAi c3RhY2tfcG9wX3VwX3RvX3M4X29wZXJhbmQiICJJIikpKQorIChzZXQgKHJl ZzpYIFM4X1JFR05VTSkKKyAobWVtOlggKHBsdXM6WCAocmVnOlggU1BfUkVH TlVNKQorIChtYXRjaF9vcGVyYW5kOlggMSAic2xvdF8wX29mZnNldF9vcGVy YW5kIiAiSSIpKSkpCisgKHNldCAocmVnOlggUzdfUkVHTlVNKQorIChtZW06 WCAocGx1czpYIChyZWc6WCBTUF9SRUdOVU0pCisgKG1hdGNoX29wZXJhbmQ6 WCAyICJzbG90XzFfb2Zmc2V0X29wZXJhbmQiICJJIikpKSkKKyAoc2V0IChy ZWc6WCBTNl9SRUdOVU0pCisgKG1lbTpYIChwbHVzOlggKHJlZzpYIFNQX1JF R05VTSkKKyAobWF0Y2hfb3BlcmFuZDpYIDMgInNsb3RfMl9vZmZzZXRfb3Bl cmFuZCIgIkkiKSkpKQorIChzZXQgKHJlZzpYIFM1X1JFR05VTSkKKyAobWVt OlggKHBsdXM6WCAocmVnOlggU1BfUkVHTlVNKQorIChtYXRjaF9vcGVyYW5k OlggNCAic2xvdF8zX29mZnNldF9vcGVyYW5kIiAiSSIpKSkpCisgKHNldCAo cmVnOlggUzRfUkVHTlVNKQorIChtZW06WCAocGx1czpYIChyZWc6WCBTUF9S RUdOVU0pCisgKG1hdGNoX29wZXJhbmQ6WCA1ICJzbG90XzRfb2Zmc2V0X29w ZXJhbmQiICJJIikpKSkKKyAoc2V0IChyZWc6WCBTM19SRUdOVU0pCisgKG1l bTpYIChwbHVzOlggKHJlZzpYIFNQX1JFR05VTSkKKyAobWF0Y2hfb3BlcmFu ZDpYIDYgInNsb3RfNV9vZmZzZXRfb3BlcmFuZCIgIkkiKSkpKQorIChzZXQg KHJlZzpYIFMyX1JFR05VTSkKKyAobWVtOlggKHBsdXM6WCAocmVnOlggU1Bf UkVHTlVNKQorIChtYXRjaF9vcGVyYW5kOlggNyAic2xvdF82X29mZnNldF9v cGVyYW5kIiAiSSIpKSkpCisgKHNldCAocmVnOlggUzFfUkVHTlVNKQorICht ZW06WCAocGx1czpYIChyZWc6WCBTUF9SRUdOVU0pCisgKG1hdGNoX29wZXJh bmQ6WCA4ICJzbG90Xzdfb2Zmc2V0X29wZXJhbmQiICJJIikpKSkKKyAoc2V0 IChyZWc6WCBTMF9SRUdOVU0pCisgKG1lbTpYIChwbHVzOlggKHJlZzpYIFNQ X1JFR05VTSkKKyAobWF0Y2hfb3BlcmFuZDpYIDkgInNsb3RfOF9vZmZzZXRf b3BlcmFuZCIgIkkiKSkpKQorIChzZXQgKHJlZzpYIFJFVFVSTl9BRERSX1JF R05VTSkKKyAobWVtOlggKHBsdXM6WCAocmVnOlggU1BfUkVHTlVNKQorICht YXRjaF9vcGVyYW5kOlggMTAgInNsb3RfOV9vZmZzZXRfb3BlcmFuZCIgIkki KSkpKQorIChyZXR1cm4pCisgKHVzZSAocmVnOlNJIFJFVFVSTl9BRERSX1JF R05VTSkpXQorICJUQVJHRVRfWkNNUCIKKyAiY20ucG9wcmV0IHtyYSwgczAt czh9LCAlMCIKKykKKworKGRlZmluZV9pbnNuICJncHJfbXVsdGlfcG9wcmV0 X3VwX3RvX3M5Xzxtb2RlPiIKKyBbKHNldCAocmVnOlggU1BfUkVHTlVNKQor IChwbHVzOlggKHJlZzpYIFNQX1JFR05VTSkKKyAobWF0Y2hfb3BlcmFuZCAw ICJzdGFja19wb3BfdXBfdG9fczlfb3BlcmFuZCIgIkkiKSkpCisgKHNldCAo cmVnOlggUzlfUkVHTlVNKQorIChtZW06WCAocGx1czpYIChyZWc6WCBTUF9S RUdOVU0pCisgKG1hdGNoX29wZXJhbmQ6WCAxICJzbG90XzBfb2Zmc2V0X29w ZXJhbmQiICJJIikpKSkKKyAoc2V0IChyZWc6WCBTOF9SRUdOVU0pCisgKG1l bTpYIChwbHVzOlggKHJlZzpYIFNQX1JFR05VTSkKKyAobWF0Y2hfb3BlcmFu ZDpYIDIgInNsb3RfMV9vZmZzZXRfb3BlcmFuZCIgIkkiKSkpKQorIChzZXQg KHJlZzpYIFM3X1JFR05VTSkKKyAobWVtOlggKHBsdXM6WCAocmVnOlggU1Bf UkVHTlVNKQorIChtYXRjaF9vcGVyYW5kOlggMyAic2xvdF8yX29mZnNldF9v cGVyYW5kIiAiSSIpKSkpCisgKHNldCAocmVnOlggUzZfUkVHTlVNKQorICht ZW06WCAocGx1czpYIChyZWc6WCBTUF9SRUdOVU0pCisgKG1hdGNoX29wZXJh bmQ6WCA0ICJzbG90XzNfb2Zmc2V0X29wZXJhbmQiICJJIikpKSkKKyAoc2V0 IChyZWc6WCBTNV9SRUdOVU0pCisgKG1lbTpYIChwbHVzOlggKHJlZzpYIFNQ X1JFR05VTSkKKyAobWF0Y2hfb3BlcmFuZDpYIDUgInNsb3RfNF9vZmZzZXRf b3BlcmFuZCIgIkkiKSkpKQorIChzZXQgKHJlZzpYIFM0X1JFR05VTSkKKyAo bWVtOlggKHBsdXM6WCAocmVnOlggU1BfUkVHTlVNKQorIChtYXRjaF9vcGVy YW5kOlggNiAic2xvdF81X29mZnNldF9vcGVyYW5kIiAiSSIpKSkpCisgKHNl dCAocmVnOlggUzNfUkVHTlVNKQorIChtZW06WCAocGx1czpYIChyZWc6WCBT UF9SRUdOVU0pCisgKG1hdGNoX29wZXJhbmQ6WCA3ICJzbG90XzZfb2Zmc2V0 X29wZXJhbmQiICJJIikpKSkKKyAoc2V0IChyZWc6WCBTMl9SRUdOVU0pCisg KG1lbTpYIChwbHVzOlggKHJlZzpYIFNQX1JFR05VTSkKKyAobWF0Y2hfb3Bl cmFuZDpYIDggInNsb3RfN19vZmZzZXRfb3BlcmFuZCIgIkkiKSkpKQorIChz ZXQgKHJlZzpYIFMxX1JFR05VTSkKKyAobWVtOlggKHBsdXM6WCAocmVnOlgg U1BfUkVHTlVNKQorIChtYXRjaF9vcGVyYW5kOlggOSAic2xvdF84X29mZnNl dF9vcGVyYW5kIiAiSSIpKSkpCisgKHNldCAocmVnOlggUzBfUkVHTlVNKQor IChtZW06WCAocGx1czpYIChyZWc6WCBTUF9SRUdOVU0pCisgKG1hdGNoX29w ZXJhbmQ6WCAxMCAic2xvdF85X29mZnNldF9vcGVyYW5kIiAiSSIpKSkpCisg KHNldCAocmVnOlggUkVUVVJOX0FERFJfUkVHTlVNKQorIChtZW06WCAocGx1 czpYIChyZWc6WCBTUF9SRUdOVU0pCisgKG1hdGNoX29wZXJhbmQ6WCAxMSAi c2xvdF8xMF9vZmZzZXRfb3BlcmFuZCIgIkkiKSkpKQorIChyZXR1cm4pCisg KHVzZSAocmVnOlNJIFJFVFVSTl9BRERSX1JFR05VTSkpXQorICJUQVJHRVRf WkNNUCIKKyAiY20ucG9wcmV0IHtyYSwgczAtczl9LCAlMCIKKykKKworKGRl ZmluZV9pbnNuICJncHJfbXVsdGlfcG9wcmV0X3VwX3RvX3MxMV88bW9kZT4i CisgWyhzZXQgKHJlZzpYIFNQX1JFR05VTSkKKyAocGx1czpYIChyZWc6WCBT UF9SRUdOVU0pCisgKG1hdGNoX29wZXJhbmQgMCAic3RhY2tfcG9wX3VwX3Rv X3MxMV9vcGVyYW5kIiAiSSIpKSkKKyAoc2V0IChyZWc6WCBTMTFfUkVHTlVN KQorIChtZW06WCAocGx1czpYIChyZWc6WCBTUF9SRUdOVU0pCisgKG1hdGNo X29wZXJhbmQ6WCAxICJzbG90XzBfb2Zmc2V0X29wZXJhbmQiICJJIikpKSkK KyAoc2V0IChyZWc6WCBTMTBfUkVHTlVNKQorIChtZW06WCAocGx1czpYIChy ZWc6WCBTUF9SRUdOVU0pCisgKG1hdGNoX29wZXJhbmQ6WCAyICJzbG90XzFf b2Zmc2V0X29wZXJhbmQiICJJIikpKSkKKyAoc2V0IChyZWc6WCBTOV9SRUdO VU0pCisgKG1lbTpYIChwbHVzOlggKHJlZzpYIFNQX1JFR05VTSkKKyAobWF0 Y2hfb3BlcmFuZDpYIDMgInNsb3RfMl9vZmZzZXRfb3BlcmFuZCIgIkkiKSkp KQorIChzZXQgKHJlZzpYIFM4X1JFR05VTSkKKyAobWVtOlggKHBsdXM6WCAo cmVnOlggU1BfUkVHTlVNKQorIChtYXRjaF9vcGVyYW5kOlggNCAic2xvdF8z X29mZnNldF9vcGVyYW5kIiAiSSIpKSkpCisgKHNldCAocmVnOlggUzdfUkVH TlVNKQorIChtZW06WCAocGx1czpYIChyZWc6WCBTUF9SRUdOVU0pCisgKG1h dGNoX29wZXJhbmQ6WCA1ICJzbG90XzRfb2Zmc2V0X29wZXJhbmQiICJJIikp KSkKKyAoc2V0IChyZWc6WCBTNl9SRUdOVU0pCisgKG1lbTpYIChwbHVzOlgg KHJlZzpYIFNQX1JFR05VTSkKKyAobWF0Y2hfb3BlcmFuZDpYIDYgInNsb3Rf NV9vZmZzZXRfb3BlcmFuZCIgIkkiKSkpKQorIChzZXQgKHJlZzpYIFM1X1JF R05VTSkKKyAobWVtOlggKHBsdXM6WCAocmVnOlggU1BfUkVHTlVNKQorICht YXRjaF9vcGVyYW5kOlggNyAic2xvdF82X29mZnNldF9vcGVyYW5kIiAiSSIp KSkpCisgKHNldCAocmVnOlggUzRfUkVHTlVNKQorIChtZW06WCAocGx1czpY IChyZWc6WCBTUF9SRUdOVU0pCisgKG1hdGNoX29wZXJhbmQ6WCA4ICJzbG90 Xzdfb2Zmc2V0X29wZXJhbmQiICJJIikpKSkKKyAoc2V0IChyZWc6WCBTM19S RUdOVU0pCisgKG1lbTpYIChwbHVzOlggKHJlZzpYIFNQX1JFR05VTSkKKyAo bWF0Y2hfb3BlcmFuZDpYIDkgInNsb3RfOF9vZmZzZXRfb3BlcmFuZCIgIkki KSkpKQorIChzZXQgKHJlZzpYIFMyX1JFR05VTSkKKyAobWVtOlggKHBsdXM6 WCAocmVnOlggU1BfUkVHTlVNKQorIChtYXRjaF9vcGVyYW5kOlggMTAgInNs b3RfOV9vZmZzZXRfb3BlcmFuZCIgIkkiKSkpKQorIChzZXQgKHJlZzpYIFMx X1JFR05VTSkKKyAobWVtOlggKHBsdXM6WCAocmVnOlggU1BfUkVHTlVNKQor IChtYXRjaF9vcGVyYW5kOlggMTEgInNsb3RfMTBfb2Zmc2V0X29wZXJhbmQi ICJJIikpKSkKKyAoc2V0IChyZWc6WCBTMF9SRUdOVU0pCisgKG1lbTpYIChw bHVzOlggKHJlZzpYIFNQX1JFR05VTSkKKyAobWF0Y2hfb3BlcmFuZDpYIDEy ICJzbG90XzExX29mZnNldF9vcGVyYW5kIiAiSSIpKSkpCisgKHNldCAocmVn OlggUkVUVVJOX0FERFJfUkVHTlVNKQorIChtZW06WCAocGx1czpYIChyZWc6 WCBTUF9SRUdOVU0pCisgKG1hdGNoX29wZXJhbmQ6WCAxMyAic2xvdF8xMl9v ZmZzZXRfb3BlcmFuZCIgIkkiKSkpKQorIChyZXR1cm4pCisgKHVzZSAocmVn OlNJIFJFVFVSTl9BRERSX1JFR05VTSkpXQorICJUQVJHRVRfWkNNUCIKKyAi Y20ucG9wcmV0IHtyYSwgczAtczExfSwgJTAiCispCisKKyhkZWZpbmVfaW5z biAiZ3ByX211bHRpX3B1c2hfdXBfdG9fcmFfPG1vZGU+IgorIFsoc2V0ICht ZW06WCAocGx1czpYIChyZWc6WCBTUF9SRUdOVU0pCisgKG1hdGNoX29wZXJh bmQ6WCAxICJzbG90XzBfb2Zmc2V0X29wZXJhbmQiICJJIikpKQorIChyZWc6 WCBSRVRVUk5fQUREUl9SRUdOVU0pKQorIChzZXQgKHJlZzpYIFNQX1JFR05V TSkKKyAocGx1czpYIChyZWc6WCBTUF9SRUdOVU0pCisgKG1hdGNoX29wZXJh bmQgMCAic3RhY2tfcHVzaF91cF90b19yYV9vcGVyYW5kIiAiSSIpKSldCisg IlRBUkdFVF9aQ01QIgorICJjbS5wdXNoIHtyYX0sICUwIgorKQorCisoZGVm aW5lX2luc24gImdwcl9tdWx0aV9wdXNoX3VwX3RvX3MwXzxtb2RlPiIKKyBb KHNldCAobWVtOlggKHBsdXM6WCAocmVnOlggU1BfUkVHTlVNKQorIChtYXRj aF9vcGVyYW5kOlggMSAic2xvdF8wX29mZnNldF9vcGVyYW5kIiAiSSIpKSkK KyAocmVnOlggUzBfUkVHTlVNKSkKKyAoc2V0IChtZW06WCAocGx1czpYIChy ZWc6WCBTUF9SRUdOVU0pCisgKG1hdGNoX29wZXJhbmQ6WCAyICJzbG90XzFf b2Zmc2V0X29wZXJhbmQiICJJIikpKQorIChyZWc6WCBSRVRVUk5fQUREUl9S RUdOVU0pKQorIChzZXQgKHJlZzpYIFNQX1JFR05VTSkKKyAocGx1czpYIChy ZWc6WCBTUF9SRUdOVU0pCisgKG1hdGNoX29wZXJhbmQgMCAic3RhY2tfcHVz aF91cF90b19zMF9vcGVyYW5kIiAiSSIpKSldCisgIlRBUkdFVF9aQ01QIgor ICJjbS5wdXNoIHtyYSwgczB9LCAlMCIKKykKKworKGRlZmluZV9pbnNuICJn cHJfbXVsdGlfcHVzaF91cF90b19zMV88bW9kZT4iCisgWyhzZXQgKG1lbTpY IChwbHVzOlggKHJlZzpYIFNQX1JFR05VTSkKKyAobWF0Y2hfb3BlcmFuZDpY IDEgInNsb3RfMF9vZmZzZXRfb3BlcmFuZCIgIkkiKSkpCisgKHJlZzpYIFMx X1JFR05VTSkpCisgKHNldCAobWVtOlggKHBsdXM6WCAocmVnOlggU1BfUkVH TlVNKQorIChtYXRjaF9vcGVyYW5kOlggMiAic2xvdF8xX29mZnNldF9vcGVy YW5kIiAiSSIpKSkKKyAocmVnOlggUzBfUkVHTlVNKSkKKyAoc2V0IChtZW06 WCAocGx1czpYIChyZWc6WCBTUF9SRUdOVU0pCisgKG1hdGNoX29wZXJhbmQ6 WCAzICJzbG90XzJfb2Zmc2V0X29wZXJhbmQiICJJIikpKQorIChyZWc6WCBS RVRVUk5fQUREUl9SRUdOVU0pKQorIChzZXQgKHJlZzpYIFNQX1JFR05VTSkK KyAocGx1czpYIChyZWc6WCBTUF9SRUdOVU0pCisgKG1hdGNoX29wZXJhbmQg MCAic3RhY2tfcHVzaF91cF90b19zMV9vcGVyYW5kIiAiSSIpKSldCisgIlRB UkdFVF9aQ01QIgorICJjbS5wdXNoIHtyYSwgczAtczF9LCAlMCIKKykKKwor KGRlZmluZV9pbnNuICJncHJfbXVsdGlfcHVzaF91cF90b19zMl88bW9kZT4i CisgWyhzZXQgKG1lbTpYIChwbHVzOlggKHJlZzpYIFNQX1JFR05VTSkKKyAo bWF0Y2hfb3BlcmFuZDpYIDEgInNsb3RfMF9vZmZzZXRfb3BlcmFuZCIgIkki KSkpCisgKHJlZzpYIFMyX1JFR05VTSkpCisgKHNldCAobWVtOlggKHBsdXM6 WCAocmVnOlggU1BfUkVHTlVNKQorIChtYXRjaF9vcGVyYW5kOlggMiAic2xv dF8xX29mZnNldF9vcGVyYW5kIiAiSSIpKSkKKyAocmVnOlggUzFfUkVHTlVN KSkKKyAoc2V0IChtZW06WCAocGx1czpYIChyZWc6WCBTUF9SRUdOVU0pCisg KG1hdGNoX29wZXJhbmQ6WCAzICJzbG90XzJfb2Zmc2V0X29wZXJhbmQiICJJ IikpKQorIChyZWc6WCBTMF9SRUdOVU0pKQorIChzZXQgKG1lbTpYIChwbHVz OlggKHJlZzpYIFNQX1JFR05VTSkKKyAobWF0Y2hfb3BlcmFuZDpYIDQgInNs b3RfM19vZmZzZXRfb3BlcmFuZCIgIkkiKSkpCisgKHJlZzpYIFJFVFVSTl9B RERSX1JFR05VTSkpCisgKHNldCAocmVnOlggU1BfUkVHTlVNKQorIChwbHVz OlggKHJlZzpYIFNQX1JFR05VTSkKKyAobWF0Y2hfb3BlcmFuZCAwICJzdGFj a19wdXNoX3VwX3RvX3MyX29wZXJhbmQiICJJIikpKV0KKyAiVEFSR0VUX1pD TVAiCisgImNtLnB1c2gge3JhLCBzMC1zMn0sICUwIgorKQorCisoZGVmaW5l X2luc24gImdwcl9tdWx0aV9wdXNoX3VwX3RvX3MzXzxtb2RlPiIKKyBbKHNl dCAobWVtOlggKHBsdXM6WCAocmVnOlggU1BfUkVHTlVNKQorIChtYXRjaF9v cGVyYW5kOlggMSAic2xvdF8wX29mZnNldF9vcGVyYW5kIiAiSSIpKSkKKyAo cmVnOlggUzNfUkVHTlVNKSkKKyAoc2V0IChtZW06WCAocGx1czpYIChyZWc6 WCBTUF9SRUdOVU0pCisgKG1hdGNoX29wZXJhbmQ6WCAyICJzbG90XzFfb2Zm c2V0X29wZXJhbmQiICJJIikpKQorIChyZWc6WCBTMl9SRUdOVU0pKQorIChz ZXQgKG1lbTpYIChwbHVzOlggKHJlZzpYIFNQX1JFR05VTSkKKyAobWF0Y2hf b3BlcmFuZDpYIDMgInNsb3RfMl9vZmZzZXRfb3BlcmFuZCIgIkkiKSkpCisg KHJlZzpYIFMxX1JFR05VTSkpCisgKHNldCAobWVtOlggKHBsdXM6WCAocmVn OlggU1BfUkVHTlVNKQorIChtYXRjaF9vcGVyYW5kOlggNCAic2xvdF8zX29m ZnNldF9vcGVyYW5kIiAiSSIpKSkKKyAocmVnOlggUzBfUkVHTlVNKSkKKyAo c2V0IChtZW06WCAocGx1czpYIChyZWc6WCBTUF9SRUdOVU0pCisgKG1hdGNo X29wZXJhbmQ6WCA1ICJzbG90XzRfb2Zmc2V0X29wZXJhbmQiICJJIikpKQor IChyZWc6WCBSRVRVUk5fQUREUl9SRUdOVU0pKQorIChzZXQgKHJlZzpYIFNQ X1JFR05VTSkKKyAocGx1czpYIChyZWc6WCBTUF9SRUdOVU0pCisgKG1hdGNo X29wZXJhbmQgMCAic3RhY2tfcHVzaF91cF90b19zM19vcGVyYW5kIiAiSSIp KSldCisgIlRBUkdFVF9aQ01QIgorICJjbS5wdXNoIHtyYSwgczAtczN9LCAl MCIKKykKKworKGRlZmluZV9pbnNuICJncHJfbXVsdGlfcHVzaF91cF90b19z NF88bW9kZT4iCisgWyhzZXQgKG1lbTpYIChwbHVzOlggKHJlZzpYIFNQX1JF R05VTSkKKyAobWF0Y2hfb3BlcmFuZDpYIDEgInNsb3RfMF9vZmZzZXRfb3Bl cmFuZCIgIkkiKSkpCisgKHJlZzpYIFM0X1JFR05VTSkpCisgKHNldCAobWVt OlggKHBsdXM6WCAocmVnOlggU1BfUkVHTlVNKQorIChtYXRjaF9vcGVyYW5k OlggMiAic2xvdF8xX29mZnNldF9vcGVyYW5kIiAiSSIpKSkKKyAocmVnOlgg UzNfUkVHTlVNKSkKKyAoc2V0IChtZW06WCAocGx1czpYIChyZWc6WCBTUF9S RUdOVU0pCisgKG1hdGNoX29wZXJhbmQ6WCAzICJzbG90XzJfb2Zmc2V0X29w ZXJhbmQiICJJIikpKQorIChyZWc6WCBTMl9SRUdOVU0pKQorIChzZXQgKG1l bTpYIChwbHVzOlggKHJlZzpYIFNQX1JFR05VTSkKKyAobWF0Y2hfb3BlcmFu ZDpYIDQgInNsb3RfM19vZmZzZXRfb3BlcmFuZCIgIkkiKSkpCisgKHJlZzpY IFMxX1JFR05VTSkpCisgKHNldCAobWVtOlggKHBsdXM6WCAocmVnOlggU1Bf UkVHTlVNKQorIChtYXRjaF9vcGVyYW5kOlggNSAic2xvdF80X29mZnNldF9v cGVyYW5kIiAiSSIpKSkKKyAocmVnOlggUzBfUkVHTlVNKSkKKyAoc2V0ICht ZW06WCAocGx1czpYIChyZWc6WCBTUF9SRUdOVU0pCisgKG1hdGNoX29wZXJh bmQ6WCA2ICJzbG90XzVfb2Zmc2V0X29wZXJhbmQiICJJIikpKQorIChyZWc6 WCBSRVRVUk5fQUREUl9SRUdOVU0pKQorIChzZXQgKHJlZzpYIFNQX1JFR05V TSkKKyAocGx1czpYIChyZWc6WCBTUF9SRUdOVU0pCisgKG1hdGNoX29wZXJh bmQgMCAic3RhY2tfcHVzaF91cF90b19zNF9vcGVyYW5kIiAiSSIpKSldCisg IlRBUkdFVF9aQ01QIgorICJjbS5wdXNoIHtyYSwgczAtczR9LCAlMCIKKykK KworKGRlZmluZV9pbnNuICJncHJfbXVsdGlfcHVzaF91cF90b19zNV88bW9k ZT4iCisgWyhzZXQgKG1lbTpYIChwbHVzOlggKHJlZzpYIFNQX1JFR05VTSkK KyAobWF0Y2hfb3BlcmFuZDpYIDEgInNsb3RfMF9vZmZzZXRfb3BlcmFuZCIg IkkiKSkpCisgKHJlZzpYIFM1X1JFR05VTSkpCisgKHNldCAobWVtOlggKHBs dXM6WCAocmVnOlggU1BfUkVHTlVNKQorIChtYXRjaF9vcGVyYW5kOlggMiAi c2xvdF8xX29mZnNldF9vcGVyYW5kIiAiSSIpKSkKKyAocmVnOlggUzRfUkVH TlVNKSkKKyAoc2V0IChtZW06WCAocGx1czpYIChyZWc6WCBTUF9SRUdOVU0p CisgKG1hdGNoX29wZXJhbmQ6WCAzICJzbG90XzJfb2Zmc2V0X29wZXJhbmQi ICJJIikpKQorIChyZWc6WCBTM19SRUdOVU0pKQorIChzZXQgKG1lbTpYIChw bHVzOlggKHJlZzpYIFNQX1JFR05VTSkKKyAobWF0Y2hfb3BlcmFuZDpYIDQg InNsb3RfM19vZmZzZXRfb3BlcmFuZCIgIkkiKSkpCisgKHJlZzpYIFMyX1JF R05VTSkpCisgKHNldCAobWVtOlggKHBsdXM6WCAocmVnOlggU1BfUkVHTlVN KQorIChtYXRjaF9vcGVyYW5kOlggNSAic2xvdF80X29mZnNldF9vcGVyYW5k IiAiSSIpKSkKKyAocmVnOlggUzFfUkVHTlVNKSkKKyAoc2V0IChtZW06WCAo cGx1czpYIChyZWc6WCBTUF9SRUdOVU0pCisgKG1hdGNoX29wZXJhbmQ6WCA2 ICJzbG90XzVfb2Zmc2V0X29wZXJhbmQiICJJIikpKQorIChyZWc6WCBTMF9S RUdOVU0pKQorIChzZXQgKG1lbTpYIChwbHVzOlggKHJlZzpYIFNQX1JFR05V TSkKKyAobWF0Y2hfb3BlcmFuZDpYIDcgInNsb3RfNl9vZmZzZXRfb3BlcmFu ZCIgIkkiKSkpCisgKHJlZzpYIFJFVFVSTl9BRERSX1JFR05VTSkpCisgKHNl dCAocmVnOlggU1BfUkVHTlVNKQorIChwbHVzOlggKHJlZzpYIFNQX1JFR05V TSkKKyAobWF0Y2hfb3BlcmFuZCAwICJzdGFja19wdXNoX3VwX3RvX3M1X29w ZXJhbmQiICJJIikpKV0KKyAiVEFSR0VUX1pDTVAiCisgImNtLnB1c2gge3Jh LCBzMC1zNX0sICUwIgorKQorCisoZGVmaW5lX2luc24gImdwcl9tdWx0aV9w dXNoX3VwX3RvX3M2Xzxtb2RlPiIKKyBbKHNldCAobWVtOlggKHBsdXM6WCAo cmVnOlggU1BfUkVHTlVNKQorIChtYXRjaF9vcGVyYW5kOlggMSAic2xvdF8w X29mZnNldF9vcGVyYW5kIiAiSSIpKSkKKyAocmVnOlggUzZfUkVHTlVNKSkK KyAoc2V0IChtZW06WCAocGx1czpYIChyZWc6WCBTUF9SRUdOVU0pCisgKG1h dGNoX29wZXJhbmQ6WCAyICJzbG90XzFfb2Zmc2V0X29wZXJhbmQiICJJIikp KQorIChyZWc6WCBTNV9SRUdOVU0pKQorIChzZXQgKG1lbTpYIChwbHVzOlgg KHJlZzpYIFNQX1JFR05VTSkKKyAobWF0Y2hfb3BlcmFuZDpYIDMgInNsb3Rf Ml9vZmZzZXRfb3BlcmFuZCIgIkkiKSkpCisgKHJlZzpYIFM0X1JFR05VTSkp CisgKHNldCAobWVtOlggKHBsdXM6WCAocmVnOlggU1BfUkVHTlVNKQorICht YXRjaF9vcGVyYW5kOlggNCAic2xvdF8zX29mZnNldF9vcGVyYW5kIiAiSSIp KSkKKyAocmVnOlggUzNfUkVHTlVNKSkKKyAoc2V0IChtZW06WCAocGx1czpY IChyZWc6WCBTUF9SRUdOVU0pCisgKG1hdGNoX29wZXJhbmQ6WCA1ICJzbG90 XzRfb2Zmc2V0X29wZXJhbmQiICJJIikpKQorIChyZWc6WCBTMl9SRUdOVU0p KQorIChzZXQgKG1lbTpYIChwbHVzOlggKHJlZzpYIFNQX1JFR05VTSkKKyAo bWF0Y2hfb3BlcmFuZDpYIDYgInNsb3RfNV9vZmZzZXRfb3BlcmFuZCIgIkki KSkpCisgKHJlZzpYIFMxX1JFR05VTSkpCisgKHNldCAobWVtOlggKHBsdXM6 WCAocmVnOlggU1BfUkVHTlVNKQorIChtYXRjaF9vcGVyYW5kOlggNyAic2xv dF82X29mZnNldF9vcGVyYW5kIiAiSSIpKSkKKyAocmVnOlggUzBfUkVHTlVN KSkKKyAoc2V0IChtZW06WCAocGx1czpYIChyZWc6WCBTUF9SRUdOVU0pCisg KG1hdGNoX29wZXJhbmQ6WCA4ICJzbG90Xzdfb2Zmc2V0X29wZXJhbmQiICJJ IikpKQorIChyZWc6WCBSRVRVUk5fQUREUl9SRUdOVU0pKQorIChzZXQgKHJl ZzpYIFNQX1JFR05VTSkKKyAocGx1czpYIChyZWc6WCBTUF9SRUdOVU0pCisg KG1hdGNoX29wZXJhbmQgMCAic3RhY2tfcHVzaF91cF90b19zNl9vcGVyYW5k IiAiSSIpKSldCisgIlRBUkdFVF9aQ01QIgorICJjbS5wdXNoIHtyYSwgczAt czZ9LCAlMCIKKykKKworKGRlZmluZV9pbnNuICJncHJfbXVsdGlfcHVzaF91 cF90b19zN188bW9kZT4iCisgWyhzZXQgKG1lbTpYIChwbHVzOlggKHJlZzpY IFNQX1JFR05VTSkKKyAobWF0Y2hfb3BlcmFuZDpYIDEgInNsb3RfMF9vZmZz ZXRfb3BlcmFuZCIgIkkiKSkpCisgKHJlZzpYIFM3X1JFR05VTSkpCisgKHNl dCAobWVtOlggKHBsdXM6WCAocmVnOlggU1BfUkVHTlVNKQorIChtYXRjaF9v cGVyYW5kOlggMiAic2xvdF8xX29mZnNldF9vcGVyYW5kIiAiSSIpKSkKKyAo cmVnOlggUzZfUkVHTlVNKSkKKyAoc2V0IChtZW06WCAocGx1czpYIChyZWc6 WCBTUF9SRUdOVU0pCisgKG1hdGNoX29wZXJhbmQ6WCAzICJzbG90XzJfb2Zm c2V0X29wZXJhbmQiICJJIikpKQorIChyZWc6WCBTNV9SRUdOVU0pKQorIChz ZXQgKG1lbTpYIChwbHVzOlggKHJlZzpYIFNQX1JFR05VTSkKKyAobWF0Y2hf b3BlcmFuZDpYIDQgInNsb3RfM19vZmZzZXRfb3BlcmFuZCIgIkkiKSkpCisg KHJlZzpYIFM0X1JFR05VTSkpCisgKHNldCAobWVtOlggKHBsdXM6WCAocmVn OlggU1BfUkVHTlVNKQorIChtYXRjaF9vcGVyYW5kOlggNSAic2xvdF80X29m ZnNldF9vcGVyYW5kIiAiSSIpKSkKKyAocmVnOlggUzNfUkVHTlVNKSkKKyAo c2V0IChtZW06WCAocGx1czpYIChyZWc6WCBTUF9SRUdOVU0pCisgKG1hdGNo X29wZXJhbmQ6WCA2ICJzbG90XzVfb2Zmc2V0X29wZXJhbmQiICJJIikpKQor IChyZWc6WCBTMl9SRUdOVU0pKQorIChzZXQgKG1lbTpYIChwbHVzOlggKHJl ZzpYIFNQX1JFR05VTSkKKyAobWF0Y2hfb3BlcmFuZDpYIDcgInNsb3RfNl9v ZmZzZXRfb3BlcmFuZCIgIkkiKSkpCisgKHJlZzpYIFMxX1JFR05VTSkpCisg KHNldCAobWVtOlggKHBsdXM6WCAocmVnOlggU1BfUkVHTlVNKQorIChtYXRj aF9vcGVyYW5kOlggOCAic2xvdF83X29mZnNldF9vcGVyYW5kIiAiSSIpKSkK KyAocmVnOlggUzBfUkVHTlVNKSkKKyAoc2V0IChtZW06WCAocGx1czpYIChy ZWc6WCBTUF9SRUdOVU0pCisgKG1hdGNoX29wZXJhbmQ6WCA5ICJzbG90Xzhf b2Zmc2V0X29wZXJhbmQiICJJIikpKQorIChyZWc6WCBSRVRVUk5fQUREUl9S RUdOVU0pKQorIChzZXQgKHJlZzpYIFNQX1JFR05VTSkKKyAocGx1czpYIChy ZWc6WCBTUF9SRUdOVU0pCisgKG1hdGNoX29wZXJhbmQgMCAic3RhY2tfcHVz aF91cF90b19zN19vcGVyYW5kIiAiSSIpKSldCisgIlRBUkdFVF9aQ01QIgor ICJjbS5wdXNoIHtyYSwgczAtczd9LCAlMCIKKykKKworKGRlZmluZV9pbnNu ICJncHJfbXVsdGlfcHVzaF91cF90b19zOF88bW9kZT4iCisgWyhzZXQgKG1l bTpYIChwbHVzOlggKHJlZzpYIFNQX1JFR05VTSkKKyAobWF0Y2hfb3BlcmFu ZDpYIDEgInNsb3RfMF9vZmZzZXRfb3BlcmFuZCIgIkkiKSkpCisgKHJlZzpY IFM4X1JFR05VTSkpCisgKHNldCAobWVtOlggKHBsdXM6WCAocmVnOlggU1Bf UkVHTlVNKQorIChtYXRjaF9vcGVyYW5kOlggMiAic2xvdF8xX29mZnNldF9v cGVyYW5kIiAiSSIpKSkKKyAocmVnOlggUzdfUkVHTlVNKSkKKyAoc2V0ICht ZW06WCAocGx1czpYIChyZWc6WCBTUF9SRUdOVU0pCisgKG1hdGNoX29wZXJh bmQ6WCAzICJzbG90XzJfb2Zmc2V0X29wZXJhbmQiICJJIikpKQorIChyZWc6 WCBTNl9SRUdOVU0pKQorIChzZXQgKG1lbTpYIChwbHVzOlggKHJlZzpYIFNQ X1JFR05VTSkKKyAobWF0Y2hfb3BlcmFuZDpYIDQgInNsb3RfM19vZmZzZXRf b3BlcmFuZCIgIkkiKSkpCisgKHJlZzpYIFM1X1JFR05VTSkpCisgKHNldCAo bWVtOlggKHBsdXM6WCAocmVnOlggU1BfUkVHTlVNKQorIChtYXRjaF9vcGVy YW5kOlggNSAic2xvdF80X29mZnNldF9vcGVyYW5kIiAiSSIpKSkKKyAocmVn OlggUzRfUkVHTlVNKSkKKyAoc2V0IChtZW06WCAocGx1czpYIChyZWc6WCBT UF9SRUdOVU0pCisgKG1hdGNoX29wZXJhbmQ6WCA2ICJzbG90XzVfb2Zmc2V0 X29wZXJhbmQiICJJIikpKQorIChyZWc6WCBTM19SRUdOVU0pKQorIChzZXQg KG1lbTpYIChwbHVzOlggKHJlZzpYIFNQX1JFR05VTSkKKyAobWF0Y2hfb3Bl cmFuZDpYIDcgInNsb3RfNl9vZmZzZXRfb3BlcmFuZCIgIkkiKSkpCisgKHJl ZzpYIFMyX1JFR05VTSkpCisgKHNldCAobWVtOlggKHBsdXM6WCAocmVnOlgg U1BfUkVHTlVNKQorIChtYXRjaF9vcGVyYW5kOlggOCAic2xvdF83X29mZnNl dF9vcGVyYW5kIiAiSSIpKSkKKyAocmVnOlggUzFfUkVHTlVNKSkKKyAoc2V0 IChtZW06WCAocGx1czpYIChyZWc6WCBTUF9SRUdOVU0pCisgKG1hdGNoX29w ZXJhbmQ6WCA5ICJzbG90Xzhfb2Zmc2V0X29wZXJhbmQiICJJIikpKQorIChy ZWc6WCBTMF9SRUdOVU0pKQorIChzZXQgKG1lbTpYIChwbHVzOlggKHJlZzpY IFNQX1JFR05VTSkKKyAobWF0Y2hfb3BlcmFuZDpYIDEwICJzbG90Xzlfb2Zm c2V0X29wZXJhbmQiICJJIikpKQorIChyZWc6WCBSRVRVUk5fQUREUl9SRUdO VU0pKQorIChzZXQgKHJlZzpYIFNQX1JFR05VTSkKKyAocGx1czpYIChyZWc6 WCBTUF9SRUdOVU0pCisgKG1hdGNoX29wZXJhbmQgMCAic3RhY2tfcHVzaF91 cF90b19zOF9vcGVyYW5kIiAiSSIpKSldCisgIlRBUkdFVF9aQ01QIgorICJj bS5wdXNoIHtyYSwgczAtczh9LCAlMCIKKykKKworKGRlZmluZV9pbnNuICJn cHJfbXVsdGlfcHVzaF91cF90b19zOV88bW9kZT4iCisgWyhzZXQgKG1lbTpY IChwbHVzOlggKHJlZzpYIFNQX1JFR05VTSkKKyAobWF0Y2hfb3BlcmFuZDpY IDEgInNsb3RfMF9vZmZzZXRfb3BlcmFuZCIgIkkiKSkpCisgKHJlZzpYIFM5 X1JFR05VTSkpCisgKHNldCAobWVtOlggKHBsdXM6WCAocmVnOlggU1BfUkVH TlVNKQorIChtYXRjaF9vcGVyYW5kOlggMiAic2xvdF8xX29mZnNldF9vcGVy YW5kIiAiSSIpKSkKKyAocmVnOlggUzhfUkVHTlVNKSkKKyAoc2V0IChtZW06 WCAocGx1czpYIChyZWc6WCBTUF9SRUdOVU0pCisgKG1hdGNoX29wZXJhbmQ6 WCAzICJzbG90XzJfb2Zmc2V0X29wZXJhbmQiICJJIikpKQorIChyZWc6WCBT N19SRUdOVU0pKQorIChzZXQgKG1lbTpYIChwbHVzOlggKHJlZzpYIFNQX1JF R05VTSkKKyAobWF0Y2hfb3BlcmFuZDpYIDQgInNsb3RfM19vZmZzZXRfb3Bl cmFuZCIgIkkiKSkpCisgKHJlZzpYIFM2X1JFR05VTSkpCisgKHNldCAobWVt OlggKHBsdXM6WCAocmVnOlggU1BfUkVHTlVNKQorIChtYXRjaF9vcGVyYW5k OlggNSAic2xvdF80X29mZnNldF9vcGVyYW5kIiAiSSIpKSkKKyAocmVnOlgg UzVfUkVHTlVNKSkKKyAoc2V0IChtZW06WCAocGx1czpYIChyZWc6WCBTUF9S RUdOVU0pCisgKG1hdGNoX29wZXJhbmQ6WCA2ICJzbG90XzVfb2Zmc2V0X29w ZXJhbmQiICJJIikpKQorIChyZWc6WCBTNF9SRUdOVU0pKQorIChzZXQgKG1l bTpYIChwbHVzOlggKHJlZzpYIFNQX1JFR05VTSkKKyAobWF0Y2hfb3BlcmFu ZDpYIDcgInNsb3RfNl9vZmZzZXRfb3BlcmFuZCIgIkkiKSkpCisgKHJlZzpY IFMzX1JFR05VTSkpCisgKHNldCAobWVtOlggKHBsdXM6WCAocmVnOlggU1Bf UkVHTlVNKQorIChtYXRjaF9vcGVyYW5kOlggOCAic2xvdF83X29mZnNldF9v cGVyYW5kIiAiSSIpKSkKKyAocmVnOlggUzJfUkVHTlVNKSkKKyAoc2V0ICht ZW06WCAocGx1czpYIChyZWc6WCBTUF9SRUdOVU0pCisgKG1hdGNoX29wZXJh bmQ6WCA5ICJzbG90Xzhfb2Zmc2V0X29wZXJhbmQiICJJIikpKQorIChyZWc6 WCBTMV9SRUdOVU0pKQorIChzZXQgKG1lbTpYIChwbHVzOlggKHJlZzpYIFNQ X1JFR05VTSkKKyAobWF0Y2hfb3BlcmFuZDpYIDEwICJzbG90Xzlfb2Zmc2V0 X29wZXJhbmQiICJJIikpKQorIChyZWc6WCBTMF9SRUdOVU0pKQorIChzZXQg KG1lbTpYIChwbHVzOlggKHJlZzpYIFNQX1JFR05VTSkKKyAobWF0Y2hfb3Bl cmFuZDpYIDExICJzbG90XzEwX29mZnNldF9vcGVyYW5kIiAiSSIpKSkKKyAo cmVnOlggUkVUVVJOX0FERFJfUkVHTlVNKSkKKyAoc2V0IChyZWc6WCBTUF9S RUdOVU0pCisgKHBsdXM6WCAocmVnOlggU1BfUkVHTlVNKQorIChtYXRjaF9v cGVyYW5kIDAgInN0YWNrX3B1c2hfdXBfdG9fczlfb3BlcmFuZCIgIkkiKSkp XQorICJUQVJHRVRfWkNNUCIKKyAiY20ucHVzaCB7cmEsIHMwLXM5fSwgJTAi CispCisKKyhkZWZpbmVfaW5zbiAiZ3ByX211bHRpX3B1c2hfdXBfdG9fczEx Xzxtb2RlPiIKKyBbKHNldCAobWVtOlggKHBsdXM6WCAocmVnOlggU1BfUkVH TlVNKQorIChtYXRjaF9vcGVyYW5kOlggMSAic2xvdF8wX29mZnNldF9vcGVy YW5kIiAiSSIpKSkKKyAocmVnOlggUzExX1JFR05VTSkpCisgKHNldCAobWVt OlggKHBsdXM6WCAocmVnOlggU1BfUkVHTlVNKQorIChtYXRjaF9vcGVyYW5k OlggMiAic2xvdF8xX29mZnNldF9vcGVyYW5kIiAiSSIpKSkKKyAocmVnOlgg UzEwX1JFR05VTSkpCisgKHNldCAobWVtOlggKHBsdXM6WCAocmVnOlggU1Bf UkVHTlVNKQorIChtYXRjaF9vcGVyYW5kOlggMyAic2xvdF8yX29mZnNldF9v cGVyYW5kIiAiSSIpKSkKKyAocmVnOlggUzlfUkVHTlVNKSkKKyAoc2V0ICht ZW06WCAocGx1czpYIChyZWc6WCBTUF9SRUdOVU0pCisgKG1hdGNoX29wZXJh bmQ6WCA0ICJzbG90XzNfb2Zmc2V0X29wZXJhbmQiICJJIikpKQorIChyZWc6 WCBTOF9SRUdOVU0pKQorIChzZXQgKG1lbTpYIChwbHVzOlggKHJlZzpYIFNQ X1JFR05VTSkKKyAobWF0Y2hfb3BlcmFuZDpYIDUgInNsb3RfNF9vZmZzZXRf b3BlcmFuZCIgIkkiKSkpCisgKHJlZzpYIFM3X1JFR05VTSkpCisgKHNldCAo bWVtOlggKHBsdXM6WCAocmVnOlggU1BfUkVHTlVNKQorIChtYXRjaF9vcGVy YW5kOlggNiAic2xvdF81X29mZnNldF9vcGVyYW5kIiAiSSIpKSkKKyAocmVn OlggUzZfUkVHTlVNKSkKKyAoc2V0IChtZW06WCAocGx1czpYIChyZWc6WCBT UF9SRUdOVU0pCisgKG1hdGNoX29wZXJhbmQ6WCA3ICJzbG90XzZfb2Zmc2V0 X29wZXJhbmQiICJJIikpKQorIChyZWc6WCBTNV9SRUdOVU0pKQorIChzZXQg KG1lbTpYIChwbHVzOlggKHJlZzpYIFNQX1JFR05VTSkKKyAobWF0Y2hfb3Bl cmFuZDpYIDggInNsb3RfN19vZmZzZXRfb3BlcmFuZCIgIkkiKSkpCisgKHJl ZzpYIFM0X1JFR05VTSkpCisgKHNldCAobWVtOlggKHBsdXM6WCAocmVnOlgg U1BfUkVHTlVNKQorIChtYXRjaF9vcGVyYW5kOlggOSAic2xvdF84X29mZnNl dF9vcGVyYW5kIiAiSSIpKSkKKyAocmVnOlggUzNfUkVHTlVNKSkKKyAoc2V0 IChtZW06WCAocGx1czpYIChyZWc6WCBTUF9SRUdOVU0pCisgKG1hdGNoX29w ZXJhbmQ6WCAxMCAic2xvdF85X29mZnNldF9vcGVyYW5kIiAiSSIpKSkKKyAo cmVnOlggUzJfUkVHTlVNKSkKKyAoc2V0IChtZW06WCAocGx1czpYIChyZWc6 WCBTUF9SRUdOVU0pCisgKG1hdGNoX29wZXJhbmQ6WCAxMSAic2xvdF8xMF9v ZmZzZXRfb3BlcmFuZCIgIkkiKSkpCisgKHJlZzpYIFMxX1JFR05VTSkpCisg KHNldCAobWVtOlggKHBsdXM6WCAocmVnOlggU1BfUkVHTlVNKQorIChtYXRj aF9vcGVyYW5kOlggMTIgInNsb3RfMTFfb2Zmc2V0X29wZXJhbmQiICJJIikp KQorIChyZWc6WCBTMF9SRUdOVU0pKQorIChzZXQgKG1lbTpYIChwbHVzOlgg KHJlZzpYIFNQX1JFR05VTSkKKyAobWF0Y2hfb3BlcmFuZDpYIDEzICJzbG90 XzEyX29mZnNldF9vcGVyYW5kIiAiSSIpKSkKKyAocmVnOlggUkVUVVJOX0FE RFJfUkVHTlVNKSkKKyAoc2V0IChyZWc6WCBTUF9SRUdOVU0pCisgKHBsdXM6 WCAocmVnOlggU1BfUkVHTlVNKQorIChtYXRjaF9vcGVyYW5kIDAgInN0YWNr X3B1c2hfdXBfdG9fczExX29wZXJhbmQiICJJIikpKV0KKyAiVEFSR0VUX1pD TVAiCisgImNtLnB1c2gge3JhLCBzMC1zMTF9LCAlMCIKKykKZGlmZiAtLWdp dCBhL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydjMyZV96Y21w LmMgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnYzMmVfemNt cC5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi42 ZGJlNDg5ZGE5YgotLS0gL2Rldi9udWxsCisrKyBiL2djYy90ZXN0c3VpdGUv Z2NjLnRhcmdldC9yaXNjdi9ydjMyZV96Y21wLmMKQEAgLTAsMCArMSwyMzkg QEAKKy8qIHsgZGctZG8gY29tcGlsZSB9ICovCisvKiB7IGRnLW9wdGlvbnMg IiAtT3MgLW1hcmNoPXJ2MzJlX3pjYV96Y21wIC1tYWJpPWlscDMyZSAtbWNt b2RlbD1tZWRsb3ciIH0gKi8KKy8qIHsgZGctc2tpcC1pZiAiIiB7ICotKi0q IH0geyItTzAiICItTzEiICItTzIiICItT2ciICItTzMiICItT3oiICItZmx0 byJ9IH0gKi8KKy8qIHsgZGctZmluYWwgeyBjaGVjay1mdW5jdGlvbi1ib2Rp ZXMgIioqIiAiIiB9IH0gKi8KKworY2hhciBteV9nZXRjaGFyKCk7CitmbG9h dCBnZXRmKCk7CitpbnQgX19hdHRyaWJ1dGVfXygobm9pbmxpbmUpKSBpbmNv bWluZ19zdGFja19hcmdzCisgKGludCBhcmcwLCBpbnQgYXJnMSwgaW50IGFy ZzIsIGludCBhcmczLAorIGludCBhcmc0LCBpbnQgYXJnNSwgaW50IGFyZzYs IGludCBhcmc3LCBpbnQgYXJnOCk7CitpbnQgZ2V0aW50KCk7Cit2b2lkIFBy aW50SW50cyAoaW50IG4sIC4uLik7IC8vIHZhcmFyZ3MKK3ZvaWQgX19hdHRy aWJ1dGVfXygobm9pbmxpbmUpKSBQcmludEludHNOb1ZhU3RhcnQgKGludCBu LCAuLi4pOyAvLyB2YXJhcmdzCit2b2lkIFByaW50SW50czIgKGludCBhcmcw LCBpbnQgYXJnMSwgaW50IGFyZzIsIGludCBhcmczLCBpbnQgYXJnNCwgaW50 IGFyZzUsIGludCBuLCAuLi4pOworZXh0ZXJuIHZvaWQgZjEodm9pZCk7Citl eHRlcm4gdm9pZCBmMih2b2lkKTsKKworLyoKKyoqdGVzdDE6CisqKiAuLi4K KyoqIGNtLnB1c2gge3JhLCBzMC1zMX0sIC02NAorKiogLi4uCisqKiBjbS5w b3ByZXQge3JhLCBzMC1zMX0sIDY0CisqKiAuLi4KKyovCitpbnQgdGVzdDEo KQoreworIGNoYXIgdm9sYXRpbGUgYXJyYXlbMzEyMF07CisgZmxvYXQgdm9s YXRpbGUgZmFycmF5WzMxMjBdOworCisgZmxvYXQgc3VtID0gMDsKKyBmb3Ig KGludCBpID0gMDsgaSA8IDMxMjA7IGkrKykKKyB7CisgYXJyYXlbaV0gPSBt eV9nZXRjaGFyKCk7CisgZmFycmF5W2ldID0gbXlfZ2V0Y2hhcigpICogMS4y OworIHN1bSArPSBhcnJheVtpXSArIGZhcnJheVtpXTsKKyB9CisgcmV0dXJu IHN1bTsKK30KKworLyoKKyoqdGVzdDJfc3RlcDFfMF9zaXplOgorKiogLi4u CisqKiBjbS5wdXNoIHtyYSwgczB9LCAtNjQKKyoqIC4uLgorKiogY20ucG9w cmV0IHtyYSwgczB9LCA2NAorKiogLi4uCisqLworaW50IHRlc3QyX3N0ZXAx XzBfc2l6ZSgpCit7CisgaW50IHZvbGF0aWxlIGlhcnJheVszMTIwICsgMTgy NC80IC04XTsKKworIGZvciAoaW50IGkgPSAwOyBpIDwgMzEyMCArIDE4MjQv NCAtIDg7IGkrKykKKyB7CisgaWFycmF5W2ldID0gbXlfZ2V0Y2hhcigpICog MjsKKyB9CisgcmV0dXJuIGlhcnJheVswXSArIGlhcnJheVsxXTsKK30KKwor LyoKKyoqdGVzdDM6CisqKiAuLi4KKyoqIGNtLnB1c2gge3JhLCBzMC1zMX0s IC02NAorKiogLi4uCisqKiBjbS5wb3ByZXQge3JhLCBzMC1zMX0sIDY0Cisq KiAuLi4KKyovCitmbG9hdCB0ZXN0MygpCit7CisgY2hhciB2b2xhdGlsZSBh cnJheVszMTIwXTsKKyBmbG9hdCB2b2xhdGlsZSBmYXJyYXlbMzEyMF07CisK KyBmbG9hdCBzdW0gPSAwLCBmMSA9IDAsIGYyID0gMCwgZjMgPSAwLCBmNCA9 IDAsIGY1ID0gMCwgZjYgPSAwLCBmNyA9IDA7CisKKyBmb3IgKGludCBpID0g MDsgaSA8IDMxMjA7IGkrKykKKyB7CisgZjEgPSBnZXRmKCk7CisgZjIgPSBn ZXRmKCk7CisgZjMgPSBnZXRmKCk7CisgZjQgPSBnZXRmKCk7CisgYXJyYXlb aV0gPSBteV9nZXRjaGFyKCk7CisgZmFycmF5W2ldID0gbXlfZ2V0Y2hhcigp ICogMS4yOworIHN1bSArPSBhcnJheVtpXSArIGZhcnJheVtpXSArIGYxICsg ZjIgKyBmMyArIGY0OworIH0KKyByZXR1cm4gc3VtOworfQorCisvKgorKipv dXRnb2luZ19zdGFja19hcmdzOgorKiogLi4uCisqKiBjbS5wdXNoIHtyYSwg czB9LCAtMzIKKyoqIC4uLgorKiogY20ucG9wcmV0IHtyYSwgczB9LCAzMgor KiogLi4uCisqLworaW50IG91dGdvaW5nX3N0YWNrX2FyZ3MoKQoreworIGlu dCBsb2NhbCA9IGdldGludCgpOworIHJldHVybiBsb2NhbCAraW5jb21pbmdf c3RhY2tfYXJncygwLCAxLCAyLCAzLCA0LCA1LCA2LCA3LCA4KTsKK30KKwor LyoKKyoqY2FsbFByaW50SW50czoKKyoqIC4uLgorKiogY20ucHVzaCB7cmF9 LCAtMzIKKyoqIC4uLgorKiogY20ucG9wcmV0IHtyYX0sIDMyCisqKiAuLi4K KyovCitmbG9hdCBjYWxsUHJpbnRJbnRzKCkKK3sKKyB2b2xhdGlsZSBmbG9h dCBmID0gZ2V0ZigpOyAvLyBmIGluIGxvY2FsCisgUHJpbnRJbnRzKDksMSwy LDMsNCw1LDYsNyw4LDkpOworIHJldHVybiBmOworfQorCisvKgorKipjYWxs UHJpbnQ6CisqKiAuLi4KKyoqIGNtLnB1c2gge3JhfSwgLTMyCisqKiAuLi4K KyoqIGNtLnBvcHJldCB7cmF9LCAzMgorKiogLi4uCisqLworZmxvYXQgY2Fs bFByaW50KCkKK3sKKyB2b2xhdGlsZSBmbG9hdCBmID0gZ2V0ZigpOyAvLyBm IGluIGxvY2FsCisgUHJpbnRJbnRzTm9WYVN0YXJ0KDAsMSwyLDMsNCw1LDYs Nyw4LDkpOworIHJldHVybiBmOworfQorCisvKgorKipjYWxsUHJpbnRfUzoK KyoqIC4uLgorKiogY20ucHVzaCB7cmEsIHMwfSwgLTMyCisqKiAuLi4KKyoq IGNtLnBvcHJldCB7cmEsIHMwfSwgMzIKKyoqIC4uLgorKi8KK2Zsb2F0IGNh bGxQcmludF9TKCkKK3sKKyBmbG9hdCBmID0gZ2V0ZigpOworIFByaW50SW50 c05vVmFTdGFydCgwLDEsMiwzLDQsNSw2LDcsOCw5KTsKKyByZXR1cm4gZjsK K30KKworLyoKKyoqY2FsbFByaW50XzI6CisqKiAuLi4KKyoqIGNtLnB1c2gg e3JhLCBzMH0sIC0zMgorKiogLi4uCisqKiBjbS5wb3ByZXQge3JhLCBzMH0s IDMyCisqKiAuLi4KKyovCitmbG9hdCBjYWxsUHJpbnRfMigpCit7CisgZmxv YXQgZiA9IGdldGYoKTsKKyBQcmludEludHMyKDAsMSwyLDMsNCw1LDYsNyw4 LDkpOworIHJldHVybiBmOworfQorCisvKgorKip0ZXN0X3N0ZXAxXzBieXRl c19zYXZlX3Jlc3RvcmU6CisqKiAuLi4KKyoqIGNtLnB1c2gge3JhfSwgLTE2 CisqKiAuLi4KKyoqIGNtLnBvcHJldCB7cmF9LCAxNgorKiogLi4uCisqLwor aW50IHRlc3Rfc3RlcDFfMGJ5dGVzX3NhdmVfcmVzdG9yZSgpCit7CisKKyBp bnQgYSA9IDk7CisgaW50IGIgPSBteV9nZXRjaGFyKCk7CisgcmV0dXJuIGEg K2I7Cit9CisKKy8qCisqKnRlc3RfczA6CisqKiAuLi4KKyoqIGNtLnB1c2gg e3JhLCBzMH0sIC0xNgorKiogLi4uCisqKiBjbS5wb3ByZXQge3JhLCBzMH0s IDE2CisqKiAuLi4KKyovCitpbnQgdGVzdF9zMCgpCit7CisKKyBpbnQgYSA9 IG15X2dldGNoYXIoKTsKKyBpbnQgYiA9IG15X2dldGNoYXIoKTsKKyByZXR1 cm4gYSArYjsKK30KKworLyoKKyoqdGVzdF9zMToKKyoqIC4uLgorKiogY20u cHVzaCB7cmEsIHMwLXMxfSwgLTE2CisqKiAuLi4KKyoqIGNtLnBvcHJldCB7 cmEsIHMwLXMxfSwgMTYKKyoqIC4uLgorKi8KK2ludCB0ZXN0X3MxKCkKK3sK KworIGludCBzMCA9IG15X2dldGNoYXIoKTsKKyBpbnQgczEgPSBteV9nZXRj aGFyKCk7CisgaW50IGIgPSBteV9nZXRjaGFyKCk7CisgcmV0dXJuIHMxICtz MCArYjsKK30KKworLyoKKyoqdGVzdF9mMDoKKyoqIC4uLgorKiogY20ucHVz aCB7cmEsIHMwLXMxfSwgLTE2CisqKiAuLi4KKyoqIGNtLnBvcHJldCB7cmEs IHMwLXMxfSwgMTYKKyoqIC4uLgorKi8KK2ludCB0ZXN0X2YwKCkKK3sKKwor IGludCBzMCA9IG15X2dldGNoYXIoKTsKKyBmbG9hdCBmMCA9IGdldGYoKTsg CisgaW50IGIgPSBteV9nZXRjaGFyKCk7CisgcmV0dXJuIGYwICtzMCArYjsK K30KKworLyoKKyoqZm9vOgorKiogY20ucHVzaCB7cmF9LCAtMTYKKyoqIGNh bGwgZjEKKyoqIGNtLnBvcCB7cmF9LCAxNgorKiogdGFpbCBmMgorKi8KK3Zv aWQgZm9vKHZvaWQpCit7CisgZjEoKTsKKyBmMigpOworfQpkaWZmIC0tZ2l0 IGEvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2MzJpX3pjbXAu YyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydjMyaV96Y21w LmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjky NDE5N2NiM2M0Ci0tLSAvZGV2L251bGwKKysrIGIvZ2NjL3Rlc3RzdWl0ZS9n Y2MudGFyZ2V0L3Jpc2N2L3J2MzJpX3pjbXAuYwpAQCAtMCwwICsxLDIzOSBA QAorLyogeyBkZy1kbyBjb21waWxlIH0gKi8KKy8qIHsgZGctb3B0aW9ucyAi IC1PcyAtbWFyY2g9cnYzMmltYWZfemNhX3pjbXAgLW1hYmk9aWxwMzJmIC1t Y21vZGVsPW1lZGxvdyIgfSAqLworLyogeyBkZy1za2lwLWlmICIiIHsgKi0q LSogfSB7Ii1PMCIgIi1PMSIgIi1PMiIgIi1PZyIgIi1PMyIgIi1PeiIgIi1m bHRvIn0gfSAqLworLyogeyBkZy1maW5hbCB7IGNoZWNrLWZ1bmN0aW9uLWJv ZGllcyAiKioiICIiIH0gfSAqLworCitjaGFyIG15X2dldGNoYXIoKTsKK2Zs b2F0IGdldGYoKTsKK2ludCBfX2F0dHJpYnV0ZV9fKChub2lubGluZSkpIGlu Y29taW5nX3N0YWNrX2FyZ3MKKyAoaW50IGFyZzAsIGludCBhcmcxLCBpbnQg YXJnMiwgaW50IGFyZzMsCisgaW50IGFyZzQsIGludCBhcmc1LCBpbnQgYXJn NiwgaW50IGFyZzcsIGludCBhcmc4KTsKK2ludCBnZXRpbnQoKTsKK3ZvaWQg UHJpbnRJbnRzIChpbnQgbiwgLi4uKTsgLy8gdmFyYXJncwordm9pZCBfX2F0 dHJpYnV0ZV9fKChub2lubGluZSkpIFByaW50SW50c05vVmFTdGFydCAoaW50 IG4sIC4uLik7IC8vIHZhcmFyZ3MKK3ZvaWQgUHJpbnRJbnRzMiAoaW50IGFy ZzAsIGludCBhcmcxLCBpbnQgYXJnMiwgaW50IGFyZzMsIGludCBhcmc0LCBp bnQgYXJnNSwgaW50IG4sIC4uLik7CitleHRlcm4gdm9pZCBmMSh2b2lkKTsK K2V4dGVybiB2b2lkIGYyKHZvaWQpOworCisvKgorKip0ZXN0MToKKyoqIC4u LgorKiogY20ucHVzaCB7cmEsIHMwLXM0fSwgLTgwCisqKiAuLi4KKyoqIGNt LnBvcHJldCB7cmEsIHMwLXM0fSwgODAKKyoqIC4uLgorKi8KK2ludCB0ZXN0 MSgpCit7CisgY2hhciB2b2xhdGlsZSBhcnJheVszMTIwXTsKKyBmbG9hdCB2 b2xhdGlsZSBmYXJyYXlbMzEyMF07CisKKyBmbG9hdCBzdW0gPSAwOworIGZv ciAoaW50IGkgPSAwOyBpIDwgMzEyMDsgaSsrKQorIHsKKyBhcnJheVtpXSA9 IG15X2dldGNoYXIoKTsKKyBmYXJyYXlbaV0gPSBteV9nZXRjaGFyKCkgKiAx LjI7Cisgc3VtICs9IGFycmF5W2ldICsgZmFycmF5W2ldOworIH0KKyByZXR1 cm4gc3VtOworfQorCisvKgorKip0ZXN0Ml9zdGVwMV8wX3NpemU6CisqKiAu Li4KKyoqIGNtLnB1c2gge3JhLCBzMC1zMX0sIC02NAorKiogLi4uCisqKiBj bS5wb3ByZXQge3JhLCBzMC1zMX0sIDY0CisqKiAuLi4KKyovCitpbnQgdGVz dDJfc3RlcDFfMF9zaXplKCkKK3sKKyBpbnQgdm9sYXRpbGUgaWFycmF5WzMx MjAgKyAxODI0LzQgLThdOworCisgZm9yIChpbnQgaSA9IDA7IGkgPCAzMTIw ICsgMTgyNC80IC0gODsgaSsrKQorIHsKKyBpYXJyYXlbaV0gPSBteV9nZXRj aGFyKCkgKiAyOworIH0KKyByZXR1cm4gaWFycmF5WzBdICsgaWFycmF5WzFd OworfQorCisvKgorKip0ZXN0MzoKKyoqIC4uLgorKiogY20ucHVzaCB7cmEs IHMwLXM0fSwgLTgwCisqKiAuLi4KKyoqIGNtLnBvcHJldCB7cmEsIHMwLXM0 fSwgODAKKyoqIC4uLgorKi8KK2Zsb2F0IHRlc3QzKCkKK3sKKyBjaGFyIHZv bGF0aWxlIGFycmF5WzMxMjBdOworIGZsb2F0IHZvbGF0aWxlIGZhcnJheVsz MTIwXTsKKworIGZsb2F0IHN1bSA9IDAsIGYxID0gMCwgZjIgPSAwLCBmMyA9 IDAsIGY0ID0gMCwgZjUgPSAwLCBmNiA9IDAsIGY3ID0gMDsKKworIGZvciAo aW50IGkgPSAwOyBpIDwgMzEyMDsgaSsrKQorIHsKKyBmMSA9IGdldGYoKTsK KyBmMiA9IGdldGYoKTsKKyBmMyA9IGdldGYoKTsKKyBmNCA9IGdldGYoKTsK KyBhcnJheVtpXSA9IG15X2dldGNoYXIoKTsKKyBmYXJyYXlbaV0gPSBteV9n ZXRjaGFyKCkgKiAxLjI7Cisgc3VtICs9IGFycmF5W2ldICsgZmFycmF5W2ld ICsgZjEgKyBmMiArIGYzICsgZjQ7CisgfQorIHJldHVybiBzdW07Cit9CisK Ky8qCisqKm91dGdvaW5nX3N0YWNrX2FyZ3M6CisqKiAuLi4KKyoqIGNtLnB1 c2gge3JhLCBzMH0sIC0zMgorKiogLi4uCisqKiBjbS5wb3ByZXQge3JhLCBz MH0sIDMyCisqKiAuLi4KKyovCitpbnQgb3V0Z29pbmdfc3RhY2tfYXJncygp Cit7CisgaW50IGxvY2FsID0gZ2V0aW50KCk7CisgcmV0dXJuIGxvY2FsICtp bmNvbWluZ19zdGFja19hcmdzKDAsIDEsIDIsIDMsIDQsIDUsIDYsIDcsIDgp OworfQorCisvKgorKipjYWxsUHJpbnRJbnRzOgorKiogLi4uCisqKiBjbS5w dXNoIHtyYX0sIC00OAorKiogLi4uCisqKiBjbS5wb3ByZXQge3JhfSwgNDgK KyoqIC4uLgorKi8KK2Zsb2F0IGNhbGxQcmludEludHMoKQoreworIHZvbGF0 aWxlIGZsb2F0IGYgPSBnZXRmKCk7IC8vIGYgaW4gbG9jYWwKKyBQcmludElu dHMoOSwxLDIsMyw0LDUsNiw3LDgsOSk7CisgcmV0dXJuIGY7Cit9CisKKy8q CisqKmNhbGxQcmludDoKKyoqIC4uLgorKiogY20ucHVzaCB7cmF9LCAtNDgK KyoqIC4uLgorKiogY20ucG9wcmV0IHtyYX0sIDQ4CisqKiAuLi4KKyovCitm bG9hdCBjYWxsUHJpbnQoKQoreworIHZvbGF0aWxlIGZsb2F0IGYgPSBnZXRm KCk7IC8vIGYgaW4gbG9jYWwKKyBQcmludEludHNOb1ZhU3RhcnQoMCwxLDIs Myw0LDUsNiw3LDgsOSk7CisgcmV0dXJuIGY7Cit9CisKKy8qCisqKmNhbGxQ cmludF9TOgorKiogLi4uCisqKiBjbS5wdXNoIHtyYX0sIC00OAorKiogLi4u CisqKiBjbS5wb3ByZXQge3JhfSwgNDgKKyoqIC4uLgorKi8KK2Zsb2F0IGNh bGxQcmludF9TKCkKK3sKKyBmbG9hdCBmID0gZ2V0ZigpOworIFByaW50SW50 c05vVmFTdGFydCgwLDEsMiwzLDQsNSw2LDcsOCw5KTsKKyByZXR1cm4gZjsK K30KKworLyoKKyoqY2FsbFByaW50XzI6CisqKiAuLi4KKyoqIGNtLnB1c2gg e3JhfSwgLTQ4CisqKiAuLi4KKyoqIGNtLnBvcHJldCB7cmF9LCA0OAorKiog Li4uCisqLworZmxvYXQgY2FsbFByaW50XzIoKQoreworIGZsb2F0IGYgPSBn ZXRmKCk7CisgUHJpbnRJbnRzMigwLDEsMiwzLDQsNSw2LDcsOCw5KTsKKyBy ZXR1cm4gZjsKK30KKworLyoKKyoqdGVzdF9zdGVwMV8wYnl0ZXNfc2F2ZV9y ZXN0b3JlOgorKiogLi4uCisqKiBjbS5wdXNoIHtyYX0sIC0xNgorKiogLi4u CisqKiBjbS5wb3ByZXQge3JhfSwgMTYKKyoqIC4uLgorKi8KK2ludCB0ZXN0 X3N0ZXAxXzBieXRlc19zYXZlX3Jlc3RvcmUoKQoreworCisgaW50IGEgPSA5 OworIGludCBiID0gbXlfZ2V0Y2hhcigpOworIHJldHVybiBhICtiOworfQor CisvKgorKip0ZXN0X3MwOgorKiogLi4uCisqKiBjbS5wdXNoIHtyYSwgczB9 LCAtMTYKKyoqIC4uLgorKiogY20ucG9wcmV0IHtyYSwgczB9LCAxNgorKiog Li4uCisqLworaW50IHRlc3RfczAoKQoreworCisgaW50IGEgPSBteV9nZXRj aGFyKCk7CisgaW50IGIgPSBteV9nZXRjaGFyKCk7CisgcmV0dXJuIGEgK2I7 Cit9CisKKy8qCisqKnRlc3RfczE6CisqKiAuLi4KKyoqIGNtLnB1c2gge3Jh LCBzMC1zMX0sIC0xNgorKiogLi4uCisqKiBjbS5wb3ByZXQge3JhLCBzMC1z MX0sIDE2CisqKiAuLi4KKyovCitpbnQgdGVzdF9zMSgpCit7CisKKyBpbnQg czAgPSBteV9nZXRjaGFyKCk7CisgaW50IHMxID0gbXlfZ2V0Y2hhcigpOwor IGludCBiID0gbXlfZ2V0Y2hhcigpOworIHJldHVybiBzMSArczAgK2I7Cit9 CisKKy8qCisqKnRlc3RfZjA6CisqKiAuLi4KKyoqIGNtLnB1c2gge3JhLCBz MH0sIC0zMgorKiogLi4uCisqKiBjbS5wb3ByZXQge3JhLCBzMH0sIDMyCisq KiAuLi4KKyovCitpbnQgdGVzdF9mMCgpCit7CisKKyBpbnQgczAgPSBteV9n ZXRjaGFyKCk7CisgZmxvYXQgZjAgPSBnZXRmKCk7IAorIGludCBiID0gbXlf Z2V0Y2hhcigpOworIHJldHVybiBmMCArczAgK2I7Cit9CisKKy8qCisqKmZv bzoKKyoqIGNtLnB1c2gge3JhfSwgLTE2CisqKiBjYWxsIGYxCisqKiBjbS5w b3Age3JhfSwgMTYKKyoqIHRhaWwgZjIKKyovCit2b2lkIGZvbyh2b2lkKQor eworIGYxKCk7CisgZjIoKTsKK30KZGlmZiAtLWdpdCBhL2djYy90ZXN0c3Vp dGUvZ2NjLnRhcmdldC9yaXNjdi96Y21wX3N0YWNrX2FsaWdubWVudC5jIGIv Z2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3pjbXBfc3RhY2tfYWxp Z25tZW50LmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw MDAuLjhlNDgxNTIyZjg5Ci0tLSAvZGV2L251bGwKKysrIGIvZ2NjL3Rlc3Rz dWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3pjbXBfc3RhY2tfYWxpZ25tZW50LmMK QEAgLTAsMCArMSwyMyBAQAorLyogeyBkZy1kbyBjb21waWxlIH0gKi8KKy8q IHsgZGctb3B0aW9ucyAiIC1PMCAtbWFyY2g9cnYzMmVfemNhX3pjYl96Y21w IC1tYWJpPWlscDMyZSAtbWNtb2RlbD1tZWRsb3cgLWZvbWl0LWZyYW1lLXBv aW50ZXIiIH0gKi8KKy8qIHsgZGctc2tpcC1pZiAiIiB7ICotKi0qIH0geyIt TzIiICItTzEiICItT3MiICItT2ciICItTzMiICItT3oiICItZmx0byJ9IH0g Ki8KKy8qIHsgZGctZmluYWwgeyBjaGVjay1mdW5jdGlvbi1ib2RpZXMgIioq IiAiIiB9IH0gKi8KKwordm9pZCBiYXIoKTsKKworLyoKKyoqZm9vbF9ydjMy ZToKKyoqIGNtLnB1c2gge3JhfSwgLTMyCisqKiAuLi4KKyoqIGNhbGwgYmFy CisqKiAuLi4KKyoqIGx3IGE1LDMyXChzcFwpCisqKiAuLi4KKyoqIGNtLnBv cHJldCB7cmF9LCAzMgorKi8KK2ludCBmb29sX3J2MzJlICggaW50IGEwLCBp bnQgYTEsIGludCBhMiwgaW50IGEzLCBpbnQgYTQsIGludCBhNSwKKyBpbnQg aW5jb21pbmcwKQoreworIGJhcigpOworIHJldHVybiBhMCArIGExICsgYTIg KyBhMyArIGE0ICsgYTUgKyBpbmNvbWluZzA7Cit9ClwgTm8gbmV3bGluZSBh dCBlbmQgb2YgZmlsZQotLSAKMi4xNy4xCg== ------=ALIBOUNDARY_84416_7fa21d1c2700_6475891c_7584c--