From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from f377.i.mail.ru (f377.i.mail.ru [185.5.136.48]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dev.tarantool.org (Postfix) with ESMTPS id 04F3F469719 for ; Wed, 11 Mar 2020 18:57:54 +0300 (MSK) From: =?UTF-8?B?TWFyaWEgS2hheWRpY2g=?= MIME-Version: 1.0 Date: Wed, 11 Mar 2020 18:57:54 +0300 Reply-To: =?UTF-8?B?TWFyaWEgS2hheWRpY2g=?= Message-ID: <1583942274.319390956@f377.i.mail.ru> Content-Type: multipart/alternative; boundary="--ALT--d0088931eC94Cf064bD8603C11cBc5D51583942274" In-Reply-To: <20200220175124.pwj24lx3jz4w6zcm@tkn_work_nb> References: <20191114115020.21091-1-maria.khaydich@tarantool.org> <1579344991.266039392@f319.i.mail.ru> <20200220175124.pwj24lx3jz4w6zcm@tkn_work_nb> Subject: Re: [Tarantool-patches] =?utf-8?q?=5BPATCH_1/2=5D_box=3A_make_box=2Ec?= =?utf-8?q?fg_idempotent_function?= List-Id: Tarantool development patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: =?UTF-8?B?QWxleGFuZGVyIFR1cmVua28=?= Cc: tarantool-patches@dev.tarantool.org ----ALT--d0088931eC94Cf064bD8603C11cBc5D51583942274 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: base64 CkNhbGxpbmcgYm94LmNmZ3t9IG1vcmUgdGhhbiBvbmNlIGRvZXMgbm90IG5vcm1hbGx5IGNhdXNl IGFueSBlcnJvcnMKKGV2ZW4gdGhvdWdoIGl0IG1pZ2h0IG5vdCBoYXZlIGFueSBlZmZlY3QpLiBJ biBjb250cmFzdCwgYXNzaWduaW5nCml0IHRvIHNvbWUgdmFyaWFibGUgYW5kIHRoZW4gdXNpbmcg aXQgYWZ0ZXIgdGhlIGJveCB3YXMgY29uZmlndXJlZApjYXVzZWQgYW4gZXJyb3Igc2luY2UgdGhl IG1ldGhvZCB3YXMgb3ZlcndyaXR0ZW4gYnkgdGhlIGluaXRpYWwgY2FsbApvZiA8bG9hZF9jZmc+ LgrCoApUaGUgcGF0Y2ggZml4ZXMgdGhpcyBpc3N1ZSBtYWtpbmcgYm94LmNmZyBiZWhhdmUgY29u c2lzdGVudGx5IGluIGJvdGgKc2NlbmFyaW9zIGFuZCBpcyBhIGZvbGxvdy11cCBmb3IgYm94OiBt YWtlIGJveC5leGVjdXRlIGlkZW1wb3RlbnQgZnVuY3Rpb24uCsKgCkZvbGxvdy11cCAjNDIzMQot LS0KSXNzdWU6Cmh0dHBzOi8vZ2l0aHViLmNvbS90YXJhbnRvb2wvdGFyYW50b29sL2lzc3Vlcy80 MjMxIMKgCkJyYW5jaDoKaHR0cHM6Ly9naXRodWIuY29tL3RhcmFudG9vbC90YXJhbnRvb2wvY29t cGFyZS9lbGphc2htL2doLTQyMzEtYm94LmV4ZWN1dGUtaW1tdXRhYmxlLWZ1bmN0aW9uIMKgCsKg CsKgc3JjL2JveC9sdWEvbG9hZF9jZmcubHVhIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg IMKgfCAxMiArKysrLS0tCsKgLi4uL2doLTQyMzEtaW1tdXRhYmxlLWJveC1leGVjdXRlLnRlc3Qu bHVhIMKgIMKgfCAzNCArKysrKysrKysrKystLS0tLS0tCsKgMiBmaWxlcyBjaGFuZ2VkLCAzMCBp bnNlcnRpb25zKCspLCAxNiBkZWxldGlvbnMoLSkKZGlmZiAtLWdpdCBhL3NyYy9ib3gvbHVhL2xv YWRfY2ZnLmx1YSBiL3NyYy9ib3gvbHVhL2xvYWRfY2ZnLmx1YQppbmRleCBkYzQyOTNiZGQuLjY3 NTNiZTZmMyAxMDA2NDQKLS0tIGEvc3JjL2JveC9sdWEvbG9hZF9jZmcubHVhCisrKyBiL3NyYy9i b3gvbHVhL2xvYWRfY2ZnLmx1YQpAQCAtNTIzLDcgKzUyMywxNSBAQCBzZXRtZXRhdGFibGUoYm94 LCB7CsKgIMKgIMKgIGVuZArCoH0pCsKgCitsb2NhbCBmdW5jdGlvbiBib3hfaXNfY29uZmlndXJl ZCgpCisgwqAgwqByZXR1cm4gZmZpLkMuYm94X2lzX2NvbmZpZ3VyZWQoKQorZW5kCisKwqBsb2Nh bCBmdW5jdGlvbiBsb2FkX2NmZyhjZmcpCisgwqAgwqBpZiBib3hfaXNfY29uZmlndXJlZCgpIHRo ZW4KKyDCoCDCoCDCoCDCoHJlbG9hZF9jZmcoY2ZnKQorIMKgIMKgIMKgIMKgcmV0dXJuCisgwqAg wqBlbmQKwqAgwqAgwqBjZmcgPSB1cGdyYWRlX2NmZyhjZmcsIHRyYW5zbGF0ZV9jZmcpCsKgIMKg IMKgY2ZnID0gcHJlcGFyZV9jZmcoY2ZnLCBkZWZhdWx0X2NmZywgdGVtcGxhdGVfY2ZnLCBtb2Rp ZnlfY2ZnKQrCoCDCoCDCoGFwcGx5X2RlZmF1bHRfY2ZnKGNmZywgZGVmYXVsdF9jZmcpOwpAQCAt NTY0LDEwICs1NzIsNiBAQCBsb2NhbCBmdW5jdGlvbiBsb2FkX2NmZyhjZmcpCsKgZW5kCsKgYm94 LmNmZyA9IGxvY2tlZChsb2FkX2NmZykKwqAKLWxvY2FsIGZ1bmN0aW9uIGJveF9pc19jb25maWd1 cmVkKCkKLSDCoCDCoHJldHVybiBmZmkuQy5ib3hfaXNfY29uZmlndXJlZCgpCi1lbmQKLQrCoC0t CsKgLS0gYm94LmV4ZWN1dGUgaXMgPGJveF9sb2FkX2FuZF9leGVjdXRlPiB3aGVuIGJveCBpcyBu b3QgbG9hZGVkLArCoC0tIDxsYm94X2V4ZWN1dGU+IG90aGVyd2lzZS4gU2VlIGFsc28gPGJveF9j b25maWd1cmVkPiB2YXJpYWJsZS4KZGlmZiAtLWdpdCBhL3Rlc3QvYm94LXRhcC9naC00MjMxLWlt bXV0YWJsZS1ib3gtZXhlY3V0ZS50ZXN0Lmx1YSBiL3Rlc3QvYm94LXRhcC9naC00MjMxLWltbXV0 YWJsZS1ib3gtZXhlY3V0ZS50ZXN0Lmx1YQppbmRleCAxNTQ0NTkxYmYuLjQ5YWFkMTU0YiAxMDA3 NTUKLS0tIGEvdGVzdC9ib3gtdGFwL2doLTQyMzEtaW1tdXRhYmxlLWJveC1leGVjdXRlLnRlc3Qu bHVhCisrKyBiL3Rlc3QvYm94LXRhcC9naC00MjMxLWltbXV0YWJsZS1ib3gtZXhlY3V0ZS50ZXN0 Lmx1YQpAQCAtMSwyOCArMSwzOCBAQArCoCMhL3Vzci9iaW4vZW52IHRhcmFudG9vbArCoGxvY2Fs IHRhcCA9IHJlcXVpcmUoJ3RhcCcpCsKgbG9jYWwgdGVzdCA9IHRhcC50ZXN0KCdleGVjdXRlJykK LXRlc3Q6cGxhbigyKQordGVzdDpwbGFuKDQpCsKgCsKgLS0KLS0tIGdoLTQyMzE6IGJveC5leGVj dXRlIHNob3VsZCBiZSBhbiBpZGVtcG90ZW50IGZ1bmN0aW9uCi0tLSBtZWFuaW5nIGl0cyBlZmZl Y3Qgc2hvdWxkIGJlIHRoZSBzYW1lIGlmIGEgdXNlciBjaG9vc2VzCi0tLSB0byB1c2UgaXQgYmVm b3JlIGV4cGxpY2l0IGJveC5jZmcgaW52b2NhdGlvbgorLS0gZ2gtNDIzMTogYm94LmV4ZWN1dGUg c2hvdWxkIGJlIGFuIGlkZW1wb3RlbnQgZnVuY3Rpb24gbWVhbmluZworLS0gaXRzIGVmZmVjdCBz aG91bGQgYmUgdGhlIHNhbWUgaWYgdGhlIHVzZXIgY2hvb3NlcyB0byBzYXZlIGl0CistLSBiZWZv cmUgZXhwbGljaXQgYm94LmNmZ3t9IGludm9jYXRpb24gYW5kIHVzZSB0aGUgc2F2ZWQgdmVyc2lv bgorLS0gYWZ0ZXJ3YXJkcy4KKy0tIFdpdGhpbiB0aGUgc2NvcGUgb2YgdGhlIHNhbWUgaXNzdWUg Ym94LmNmZyBtZXRob2Qgc2hvdWxkIGFsc28KKy0tIGJlIGtlcHQgaWRlbXBvdGVudCBmb3IgdGhl IHNhbWUgcmVhc29ucy4KwqAtLQrCoAotbG9jYWwgZnVuY3Rpb24gZXhlY3V0ZV9pc19pbW11dGFi bGUoZXhlY3V0ZSwgY21kLCBtc2cpCi0gwqAgwqBsb2NhbCBzdGF0dXMsIGVyciA9IHBjYWxsKGV4 ZWN1dGUsIGNtZCkKLSDCoCDCoHRlc3Q6b2soc3RhdHVzIGFuZCB0eXBlKGVycikgPT0gJ3RhYmxl JywgbXNnKQotZW5kCi0KwqBsb2NhbCBib3hfZXhlY3V0ZV9zdHViID0gYm94LmV4ZWN1dGUKLS0t IGV4cGxpY2l0IGNhbGwgdG8gbG9hZF9jZmcKK2xvY2FsIGJveF9jZmdfc3R1YiA9IGJveC5jZmcK KworLS0gRXhwbGljaXQgYm94IGNvbmZpZ3VyYXRpb24gdGhhdCB1c2VkIHRvIGNoYW5nZSB0aGUg YmVoYXZpb3IuCsKgYm94LmNmZ3t9CisKwqBsb2NhbCBib3hfZXhlY3V0ZV9hY3R1YWwgPSBib3gu ZXhlY3V0ZQorbG9jYWwgYm94X2NmZ19hY3R1YWwgPSBib3guY2ZnCsKgCi1leGVjdXRlX2lzX2lt bXV0YWJsZShib3hfZXhlY3V0ZV9zdHViLAorbG9jYWwgZnVuY3Rpb24gaXNfaWRlbXBvdGVudCht ZXRob2QsIGNtZCwgbXNnKQorIMKgIMKgbG9jYWwgc3RhdHVzLCBlcnIgPSBwY2FsbChtZXRob2Qs IGNtZCkKKyDCoCDCoHRlc3Q6b2soc3RhdHVzLCBtc2csIG5pbCwgZXJyKQorZW5kCisKK2lzX2lk ZW1wb3RlbnQoYm94X2V4ZWN1dGVfc3R1YiwKwqAgwqAgwqAiQ1JFQVRFIFRBQkxFIHQxIChzMSBJ TlRFR0VSLCBQUklNQVJZIEtFWSAoczEpKTsiLArCoCDCoCDCoCJib3guZXhlY3V0ZSBzdHViIHdv cmtzIGJlZm9yZSBib3guY2ZnIikKLWV4ZWN1dGVfaXNfaW1tdXRhYmxlKGJveF9leGVjdXRlX2Fj dHVhbCwgIkRST1AgVEFCTEUgdDEiLAoraXNfaWRlbXBvdGVudChib3hfZXhlY3V0ZV9hY3R1YWws ICJEUk9QIFRBQkxFIHQxIiwKwqAgwqAgwqAiYm94LmV4ZWN1dGUgd29ya3MgcHJvcGVybHkgYWZ0 ZXIgYm94LmNmZyIpCsKgCitpc19pZGVtcG90ZW50KGJveF9jZmdfc3R1YiwgbmlsLCAiYm94LmNm ZyBzdHViIHdvcmtzIHByb3Blcmx5IikKK2lzX2lkZW1wb3RlbnQoYm94X2NmZ19hY3R1YWwsIG5p bCwgImJveC5jZmcgYWZ0ZXIgY29uZmlndXJhdGlvbiIpCisKwqBvcy5leGl0KHRlc3Q6Y2hlY2so KSBhbmQgMCBvciAxKQotLcKgCjIuMjQuMCDCoCAKPtCn0LXRgtCy0LXRgNCzLCAyMCDRhNC10LLR gNCw0LvRjyAyMDIwLCAyMDo1MSArMDM6MDAg0L7RgiBBbGV4YW5kZXIgVHVyZW5rbyA8YWxleGFu ZGVyLnR1cmVua29AdGFyYW50b29sLm9yZz46Cj7CoAo+U29ycnkgZm9yIHRoZSBsYXRlIHJlc3Bv bnNlLgo+Cj5TZWUgY29tbWVudHMgYmVsb3cuCj4KPldoaWxlIGxvb2tpbmcgaW50byB0aGUgcGF0 Y2gsIGV4cGVyaW1lbnRpbmcgYW5kIGNvbW1lbnRpbmcgSSBtYWRlIHRoZQo+cGF0Y2ggKGl0IGlz IGJhc2VkIG9uIHlvdXIgY2hhbmdlcyksIHNvIEknbGwgcGFzdGUgaXQgYXQgZW5kIG9mIHRoZQo+ ZW1haWwgZm9yIHRoZSByZWZlcmVuY2UuCj4KPldCUiwgQWxleGFuZGVyIFR1cmVua28uCj4KPj4g Y29tbWl0IDU3MzMxOGVhODc0OTkzMTc0MTI0N2YxODEzMzNhYjY4YjQzYTgyYzYKPj4gQXV0aG9y OiBNYXJpYSA8IG1hcmlhLmtoYXlkaWNoQHRhcmFudG9vbC5vcmcgPgo+PiBEYXRlOiBUdWUgT2N0 IDI5IDE3OjU2OjUxIDIwMTkgKzAzMDAKPj4KPj4gYm94OiBib3guZXhlY3V0ZSBzaG91bGQgYmUg aW1tdXRhYmxlIGZ1bmN0aW9uCj4KPk5vdyBJIHJlY2FsbGVkIHRoZSByaWdodCB0ZXJtOiBpZGVt cG90ZW50Lgo+Cj5OaXQ6IGl0IHdvdWxkIGJlIGdvb2QgdG8gdXNlIGltcGVyYXRpdmUgbW9vZCBp biB0aGUgY29tbWl0IGhlYWRlcjoKPgo+wqB8IFVzZSB0aGUgaW1wZXJhdGl2ZSBtb29kIGluIHRo ZSBzdWJqZWN0IGxpbmUuIEEgcHJvcGVybHkgZm9ybWVkIEdpdAo+wqB8IGNvbW1pdCBzdWJqZWN0 IGxpbmUgc2hvdWxkIGFsd2F5cyBiZSBhYmxlIHRvIGNvbXBsZXRlIHRoZSBmb2xsb3dpbmcKPsKg fCBzZW50ZW5jZTog4oCcSWYgYXBwbGllZCwgdGhpcyBjb21taXQgd2lsbCAveW91ciBzdWJqZWN0 IGxpbmUgaGVyZS/igJ0uCj4KPmh0dHBzOi8vd3d3LnRhcmFudG9vbC5pby9lbi9kb2MvMS4xMC9k ZXZfZ3VpZGUvZGV2ZWxvcGVyX2d1aWRlbGluZXMvI2hvdy10by13cml0ZS1hLWNvbW1pdC1tZXNz YWdlCj4KPj4KPj4gVXNpbmcgYm94LmV4ZWN1dGUgbWV0aG9kIGJlZm9yZSBleHBsaWNpdGx5IGNv bmZpZ3VyaW5nIGJveAo+PiBhdXRvbWF0aWNhbGx5IGludm9rZWQgYm94LmNmZyBub25ldGhlbGVz cy4gQW55IGZ1cnRoZXIgY2FsbHMKPj4gdG8gYm94LmNmZyBjYXVzZWQgaXRzIHJlY29uZmlndXJh dGlvbiB3aGljaCB0aGVuIGxlZCB0byBhbgo+PiBlcnJvciB3aGVuIHRyeWluZyB0byB1c2UgZXhl Y3V0ZSBtZXRob2QgYWdhaW4uCj4KPlNvcnJ5IHRoYXQgSSBuaXRwaWNrIGFyb3VuZCB3b3JkaW5n IGFnYWluLCBidXQgYWZ0ZXIgdGhlIGRlc2NyaXB0aW9uIEkKPndvdWxkIGNoZWNrIHNvbWV0aGlu ZyBsaWtlIHRoZSBmb2xsb3dpbmc6Cj4KPsKgfCBib3guZXhlY3V0ZSgnU0VMRUNUIDEnKSAtLSBo ZXJlIGJveC5jZmd7fSBpcyBjYWxsZWQgdW5kZXIgaG9vZAo+wqB8IGJveC5leGVjdXRlKCdTRUxF Q1QgMScpIC0tIGV2ZXJ5dGhpbmcgbG9va3Mgb2sKPgo+QWZ0ZXIgdGhhdCBJIHdvdWxkIGJlIGNv bmZ1c2VkLCBiZWNhdXNlIGV2ZXJ5dGhpbmcgd29ya3MgYXMgZXhwZWN0ZWQuCj4KPkkgd291bGQg c2F5IHRoYXQgdGhlcmUgYXJlIHR3byBkaWZmZXJlbnQgZnVuY3Rpb25zCj48Ym94X2xvYWRfYW5k X2V4ZWN1dGU+ICh3aGljaCBpcyBhc3NpZ25lZCB0byBib3guZXhlY3V0ZSB3aGVuIGJveCBpcyBu b3QKPmNvbmZpZ3VyZWQpIGFuZCA8bGJveF9leGVjdXRlPiAoYWZ0ZXIgYm94IGNvbmZndXJhdGlv bikgYW5kIHdvdWxkCj5kZXNjcmliZSB0aGUgY2FzZSB1c2luZyB0aG9zZSB0ZXJtcy4gSSBndWVz cyBpdCB3b3VsZCBlYXNpZXIgdG8KPnVuZGVyc3RhbmQuCj4KPlNlZSBhbHNvIHRoZSBjb21tZW50 IGFib3V0IHRoZSB0ZXN0IGF0IHZlcnkgZW5kIG9mIHRoZSBlbWFpbC4KPgo+Pgo+PiBUaGUgcGF0 Y2ggaW50cm9kdWNlcyBhIGZpeCBtYWtpbmcgYm94LmV4ZWN1dGUgaW1tdXRhYmxlLgo+Pgo+PiBD bG9zZXMgIzQyMzEKPj4KPj4gZGlmZiAtLWdpdCBhL3NyYy9ib3gvbHVhL2xvYWRfY2ZnLmx1YSBi L3NyYy9ib3gvbHVhL2xvYWRfY2ZnLmx1YQo+PiBpbmRleCA4NTYxN2M4ZjAuLjFmOWI0MzkyZiAx MDA2NDQKPj4gLS0tIGEvc3JjL2JveC9sdWEvbG9hZF9jZmcubHVhCj4+ICsrKyBiL3NyYy9ib3gv bHVhL2xvYWRfY2ZnLmx1YQo+PiBAQCAtNTE3LDEwICs1MTcsMTQgQEAgc2V0bWV0YXRhYmxlKGJv eCwgewo+PiBlbmQKPj4gfSkKPj4KPj4gKy0tIEZsYWcgbmVlZGVkIHRvIGtlZXAgaW1tdXRhYmxl IGZ1bmN0aW9ucyBhZnRlciBib3ggcmVjb25maWd1cmF0aW9uCj4KPk5pdDogb3ZlciA2NiBzeW1i b2xzLgo+Cj4+ICtsb2NhbCBib3hfbG9hZGVkID0gZmFsc2UKPj4gKwo+PiBsb2NhbCBmdW5jdGlv biBsb2FkX2NmZyhjZmcpCj4+IGNmZyA9IHVwZ3JhZGVfY2ZnKGNmZywgdHJhbnNsYXRlX2NmZykK Pj4gY2ZnID0gcHJlcGFyZV9jZmcoY2ZnLCBkZWZhdWx0X2NmZywgdGVtcGxhdGVfY2ZnLCBtb2Rp ZnlfY2ZnKQo+PiBhcHBseV9kZWZhdWx0X2NmZyhjZmcsIGRlZmF1bHRfY2ZnKTsKPj4gKyBib3hf bG9hZGVkID0gdHJ1ZQo+Cj5BZnRlciB0aGlzIHdlIGNhbiBmYWlsZWQgdG8gY29uZmlndXJlIGJv eCwgY29uc2lkZXIgdGhlIGNhc2U6Cj4KPsKgfCB0YXJhbnRvb2w+IGJveC5jZmd7bGlzdGVuID0g J2luY29ycmVjdCd9Cj7CoHwgLS0tCj7CoHwgLSBlcnJvcjogJ0luY29ycmVjdCB2YWx1ZSBmb3Ig b3B0aW9uICcnbGlzdGVuJyc6IGV4cGVjdGVkIGhvc3Q6c2VydmljZSBvciAvdW5peC5zb2NrZXQn Cj7CoHwgLi4uCj7CoHwKPsKgfCB0YXJhbnRvb2w+IGJveC5leGVjdXRlKCdTRUxFQ1QgMScpCj4K PldlIHNob3VsZCBzZXQgdGhlIGZsYWcgb25seSBhdCBzdWNjZXNzZnVsIGJveCBjb25maWd1cmF0 aW9uLiBJIHdvdWxkCj5hbHNvIGFkZCBzdWNoIHRlc3QgY2FzZS4KPgo+PiAtLSBTYXZlIG5ldyBi b3guY2ZnCj4+IGJveC5jZmcgPSBjZmcKPj4gaWYgbm90IHBjYWxsKHByaXZhdGUuY2ZnX2NoZWNr KSB0aGVuCj4+IEBAIC01NjQsNyArNTY4LDE2IEBAIGJveC5jZmcgPSBsb2NrZWQobG9hZF9jZmcp Cj4+IC0tIG1ldGF0YWJsZS4KPj4gLS0KPj4gZnVuY3Rpb24gYm94LmV4ZWN1dGUoLi4uKQo+PiAt IGxvYWRfY2ZnKCkKPj4gKyAtLQo+PiArIC0tIFNhdmluZyBib3guZXhlY3V0ZSBtZXRob2QgYmVm b3JlIGV4cGxpY2l0IGNhbGxzIHRvIGVpdGhlcgo+PiArIC0tIGJveC5leGVjdXRlKCkgb3IgYm94 LmNmZ3t9IGxlYWRzIHRvIGltcGxpY2l0IGludm9jYXRpb24gb2YKPj4gKyAtLSBib3guY2ZnIG5v bmV0aGVsZXNzLgo+Cj5UZWNobmljYWxseSBzYXZpbmcgb2YgYm94LmV4ZWN1dGUgZG9lcyBub3Qg bGVhZCB0byBpbnZvY2F0aW9uIG9mCj5ib3guY2ZnLiBCdXQgYW55d2F5IEkgd291bGQgZGVzY3Jp YmUgdGhpbmdzIGluIHRoZSB3YXkgYXMgcHJvcG9zZWQKPmFib3ZlLgo+Cj4+ICsgLS0gVGhlIGZs YWcgYm94X2xvYWRlZCBtYWtlcyBzdXJlIGV4ZWN1dGUKPj4gKyAtLSBpcyBhbiBpbW11dGFibGUg ZnVuY3Rpb24gbWVhbmluZyBpdCB3b24ndCBiZSBvdmVyd3JpdHRlbiBieQo+PiArIC0tIGFueSBm b2xsb3dpbmcgYXR0ZW1wdHMgdG8gcmVjb25maWd1cmUgYm94Lgo+PiArIC0tCj4KPlRoZSBwcm9i bGVtIGlzIG5vdCB0aGF0IDxsYm94X2V4ZWN1dGU+IHdpbGwgYmUgb3ZlcndyaXR0ZW4gd2l0aCBz b21lCj48Ym94X2Fub3RoZXJfZXhlY3V0ZT4sIGJ1dCB0aGF0IHRoZSBpbml0aWFsIDxib3hfbG9h ZF9hbmRfZXhlY3V0ZT4gZG9lcwo+bm90IHdvcmsgY29ycmVjdGx5IGFmdGVyIHN1Y2Nlc3NmdWwg Ym94IGNvbmZpZ3VyYXRpb24uCj4KPj4gKyBpZiBub3QgYm94X2xvYWRlZCB0aGVuCj4+ICsgbG9h ZF9jZmcoKQo+PiArIGVuZAo+Cj5JIGNvbnNpZGVyZWQgdXNpbmcgb2YgYHR5cGUoYm94LmNmZykg PT0gJ2Z1bmN0aW9uJ2AgY2hlY2sgYXMgaW4KPnRhcmFudG9vbGN0bCwgYnV0IGluIGZhY3QgaXQg aXMgbm90IHJlYWxpYWJsZTogaWYgYm94IHdhcyBub3QgY29uZmlndXJlZAo+YWZ0ZXIgYm94LmNm ZygpIGR1ZSB0byBhbiBlcnJvciAoc2F5LCBhZnRlciBgYm94LmNmZ3tsaXN0ZW4gPQo+J2ludmFs aWQnfWApIHRoZSB0eXBlIG9mIGJveC5jZmcgd2lsbCBiZSAndGFibGUnIGFuZCByZWxvYWRfY2Zn KCkgd2lsbAo+d29yayBvbiB0aGUgbmV4dCBib3guY2ZnKCkgY2FsbC4gU28gd2Ugc2hvdWxkIHVz ZSBib3hfaXNfY29uZmlndXJlZCBDCj5mdW5jdGlvbjoKPgo+wqB8IGxvY2FsIGZmaSA9IHJlcXVp cmUoJ2ZmaScpCj7CoHwKPsKgfCBmZmkuY2RlZihbWwo+wqB8IGJvb2wKPsKgfCBib3hfaXNfY29u ZmlndXJlZCh2b2lkKTsKPsKgfCBdXSkKPsKgfAo+wqB8IGxvY2FsIGZ1bmN0aW9uIGJveF9pc19j b25maWd1cmVkKCkKPsKgfCByZXR1cm4gZmZpLkMuYm94X2lzX2NvbmZpZ3VyZWQoKQo+wqB8IGVu ZAo+Cj5UaGlzIHdheSByZXF1aXJlcyB0byBhZGQgdGhlIGZ1bmN0aW9uIGludG8gZXh0cmEvZXhw b3J0cy4KPgo+QlRXLCBpdCBzZWVtcyB0aGF0IGl0IGlzIHBvc3NpYmxlIHRoYXQgPGJveF9sb2Fk X2FuZF9leGVjdXRlPiB3aWxsIGJlCj5jYWxsZWQgd2hlbiBgYm94LmNmZ3t9YCBpcyBhbHJlYWR5 IGluIHByb2dyZXNzIGluIGFub3RoZXIgZmliZXI6IHRoaXMgaXMKPndoeSBhbGwgbG9hZF9jZmco KSAvIHJlbG9hZF9jZmcoKSBjYWxscyBhcmUgZGVjb3JhdGVkIHVzaW5nIGBsb2NrZWRgCj53cmFw cGVyLiBJdCBzZWVtcyB3ZSBzaG91bGQgZG8gdGhlIHNhbWUgaW4gPGJveF9sb2FkX2FuZF9leGVj dXRlPjoKPgo+wqB8IGZ1bmN0aW9uIGJveC5leGVjdXRlKC4uLikKPsKgfCBpZiBub3QgYm94X2lz X2NvbmZpZ3VyZWQoKSB0aGVuCj7CoHwgbG9ja2VkKGZ1bmN0aW9uKCkKPsKgfCAtLSBSZS1jaGVj aywgYmVjYXVzZSBhZnRlciB0aGUgbG9jayByZWxlYXNlIHRoZSBib3gKPsKgfCAtLSBzdGF0ZSBt YXkgYmUgY2hhbmdlZC4gV2Ugc2hvdWxkIGNhbGwgbG9hZF9jZmcoKQo+wqB8IC0tIG9ubHkgb25j ZS4KPsKgfCBpZiBub3QgYm94X2lzX2NvbmZpZ3VyZWQoKSB0aGVuCj7CoHwgbG9hZF9jZmcoKQo+ wqB8IGVuZAo+wqB8IGVuZCkoKQo+wqB8IGVuZAo+wqB8IHJldHVybiBib3guZXhlY3V0ZSguLi4p Cj7CoHwgZW5kCj4KPkkgZXhwZXJpbWVudGVkIHdpdGggdGhpcyBsaWtlIHNvOgo+Cj7CoHwgJCAu L3NyYy90YXJhbnRvb2wKPsKgfCB0YXJhbnRvb2w+IGJveF9leGVjdXRlID0gYm94LmV4ZWN1dGUK PsKgfCB0YXJhbnRvb2w+IGZvciBpID0gMSwgMTAgZG8gcmVxdWlyZSgnZmliZXInKS5jcmVhdGUo ZnVuY3Rpb24oKSByZXF1aXJlKCdsb2cnKS5pbmZvKHJlcXVpcmUoJ3lhbWwnKS5lbmNvZGUoKGJv eF9leGVjdXRlKCdTRUxFQ1QgKiBGUk9NICJfdmluZGV4IicpKSkpIGVuZCkgZW5kCj4KPldoaWxl IGxvb2tpbmcgaW50byB0aGUgY29kZSBJIGZvdW5kIG9uZSBtb3JlIGNhc2U6Cj4KPsKgfCB0YXJh bnRvb2w+IGJveF9jZmcgPSBib3guY2ZnCj7CoHwgLS0tCj7CoHwgLi4uCj7CoHwgdGFyYW50b29s PiBib3hfY2ZnKCkKPsKgfCA8Li4uPgo+wqB8IHRhcmFudG9vbD4gYm94X2NmZygpCj7CoHwgLS0t Cj7CoHwgLSBlcnJvcjogJ2J1aWx0aW4vYm94L2xvYWRfY2ZnLmx1YToxOTogYnVpbHRpbi9ib3gv bG9hZF9jZmcubHVhOjU0NzogYmFkIGFyZ3VtZW50Cj7CoHwgIzEgdG8gJydwYWlycycnICh0YWJs ZSBleHBlY3RlZCwgZ290IG5pbCknCj7CoHwgLi4uCj4KPkkgdGhpbmsgaXQgZG9lcyBOT1QgbWVh biB0aGF0IHdlIHNob3VsZCBub3QgZml4IGJveC5leGVjdXRlKCkgY29kZSwKPmJlY2F1c2UgdGhl IGV4cGVjdGVkIGJlaGF2aW91ciBpcyBhIGJpdCBkaWZmZXJlbnQ6Cj4KPiogYm94LmV4ZWN1dGUo KSAobW9yZSBzcGVjaWZpY2FsbHkgPGJveF9sb2FkX2FuZF9leGVjdXRlPikgc2hvdWxkCj7CoMKg Y29uZmlndXJlIGJveCBpZiBpdCBpcyBub3QgY29uZmlndXJlZCBvciBqdXN0IGV4ZWN1dGUgb3Ro ZXJ3aXNlICh3L28KPsKgwqBib3ggcmVjb25maWd1cmF0aW9uKS4KPiogYm94LmNmZygpIChtb3Jl IHNwZWNpZmljYWxseSA8bG9hZF9jZmc+KSBzaG91bGQgY29uZmlndXJlIGJveCBpZiBpdCBpcwo+ wqDCoG5vdCBjb25maWd1cmVkLCBvdGhlcndpc2UgKipyZWNvbmZpZ3VyZSoqIGl0Lgo+Cj5TbyBi b3guY2ZnKCkgc2hvdWxkIGNhbGwgcmVsb2FkX2NmZygpIGlmIGJveCBpcyBhbHJlYWR5IGNvbmZp Z3VyZWQuIEkKPnByb3Bvc2UgdG8gZml4IGl0IGluIGEgc2VwYXJhdGUgcGF0Y2ggKGJ1dCB3aXRo aW4gdGhlIHNjb3BlIG9mIHRoZQo+aXNzdWUpLgo+Cj4+IHJldHVybiBib3guZXhlY3V0ZSguLi4p Cj4+IGVuZAo+Pgo+PiBkaWZmIC0tZ2l0IGEvdGVzdC9ib3gtdGFwL2doLTQyMzEtaW1tdXRhYmxl LWJveC1leGVjdXRlLnRlc3QubHVhIGIvdGVzdC9ib3gtdGFwL2doLTQyMzEtaW1tdXRhYmxlLWJv eC1leGVjdXRlLnRlc3QubHVhCj4+IG5ldyBmaWxlIG1vZGUgMTAwNzU1Cj4+IGluZGV4IDAwMDAw MDAwMC4uNWJkYmVjODhmCj4+IC0tLSAvZGV2L251bGwKPj4gKysrIGIvdGVzdC9ib3gtdGFwL2do LTQyMzEtaW1tdXRhYmxlLWJveC1leGVjdXRlLnRlc3QubHVhCj4+IEBAIC0wLDAgKzEsMzMgQEAK Pj4gKyMhL3Vzci9iaW4vZW52IHRhcmFudG9vbAo+PiArbG9jYWwgdGFwID0gcmVxdWlyZSgndGFw JykKPj4gK2xvY2FsIHRlc3QgPSB0YXAudGVzdCgnZXhlY3V0ZScpCj4+ICt0ZXN0OnBsYW4oMykK Pj4gKwo+PiArLS0KPj4gKy0tIGdoLTQyMzE6IGJveC5leGVjdXRlIHNob3VsZCBiZSBpbW11dGFi bGUgZnVuY3Rpb24gbWVhbmluZyBpdCdzCj4+ICstLSBhZGRyZXNzIGRvZXNuJ3QgY2hhbmdlIGFm dGVyIGZpcnN0IGJveC5jZmcgaW1wbGljaXQgaW52b2NhdGlvbgo+Cj5CdXQgaXQgaXMgbm90IHNv IGV2ZW4gYWZ0ZXIgdGhlIHBhdGNoOgo+Cj7CoHwgdGFyYW50b29sPiBib3guZXhlY3V0ZQo+wqB8 IC0tLQo+wqB8IC0gJ2Z1bmN0aW9uOiAweDQwNzRiYzMwJwo+wqB8IC4uLgo+wqB8IHRhcmFudG9v bD4gYm94LmV4ZWN1dGUoJ1NFTEVDVCAxJykKPsKgfCA8Li4uPgo+wqB8IHRhcmFudG9vbD4gYm94 LmV4ZWN1dGUKPsKgfCAtLS0KPsKgfCAtICdmdW5jdGlvbjogMHg0MTZiMjYwMCcKPsKgfCAuLi4K Pgo+PiArLS0KPj4gKwo+PiArbG9jYWwgZnVuY3Rpb24gZXhlY3V0ZV9pc19pbW11dGFibGUoZXhl Y3V0ZSwgY21kLCBtc2cpCj4+ICsgbG9jYWwgc3RhdHVzLCBlcnIgPSBwY2FsbChmdW5jdGlvbigp Cj4+ICsgZXhlY3V0ZShjbWQpCj4+ICsgZW5kKQo+Cj5OaXQ6IENhbiBiZSB3cml0dGVuIGFzOgo+ Cj7CoHwgbG9jYWwgc3RhdHVzLCBlcnIgPSBwY2FsbChleGVjdXRlLCBjbWQpCj4KPj4gKyB0ZXN0 Om9rKHN0YXR1cyBhbmQgZXJyID09IG5pbCwgbXNnKQo+PiArZW5kCj4+ICsKPj4gK2xvY2FsIGJv eF9leGVjdXRlX3N0dWIgPSBib3guZXhlY3V0ZQo+PiArZXhlY3V0ZV9pc19pbW11dGFibGUoYm94 X2V4ZWN1dGVfc3R1YiwgIlNFTEVDVCAxIiwKPj4gKyAiZXhlY3V0ZSBkb2VzIG5vdCB3b3JrIHBy b3Blcmx5IGJlZm9yZSBib3guY2ZnIikKPgo+VGhpcyB3aWxsIHByaW50Ogo+Cj5vayAtIGV4ZWN1 dGUgZG9lcyBub3Qgd29yayBwcm9wZXJseSBiZWZvcmUgYm94LmNmZwo+Cj4tLXRoYXQgbG9va3Mg Y291bnRlci1pbnR1aXRpdmUgZm9yIG1lLgo+Cj5CVFcsIGl0IGxvb2tzIGFzIHRoZSBwcmVwYXJh dGlvbiBjb2RlIGZvciB0aGUgdGVzdCByYXRoZXIgdGhhbiB0aGUgdGVzdAo+aXRzZWxmLiBQZXJz b25hbGx5IEkgdGhpbmsgdGhhdCBzdWNoIGNvZGUgc2hvdWxkIGRvIGFzc2VydCgpIHJhdGhlciB0 aGFuCj5wcm9kdWNlICdvay9ub3Qgb2snIFRBUDEzIG91dHB1dC4gVGhpcyBpcyBub3QgdGhlIHN0 cmljdCByZXF1aXJlbWVudCwKPmhvd2V2ZXIuCj4KPkNvbnNpZGVyIFsxXSwgZnJvbSB3b3JkcyAn SSB3b3VsZCBzcGxpdCB0ZXN0IHByZXBhcmF0aW9uIC8gY2xlYW4gdXAgY29kZQo+ZnJvbSBhY3R1 YWwgdGVzdCBjYXNlcycuCj4KPlsxXTogIGh0dHBzOi8vbGlzdHMudGFyYW50b29sLm9yZy9waXBl cm1haWwvdGFyYW50b29sLXBhdGNoZXMvMjAyMC1KYW51YXJ5LzAxMzU5NS5odG1sCj4KPj4gKwo+ PiArbG9jYWwgYm94X2V4ZWN1dGVfYWN0dWFsID0gYm94LmV4ZWN1dGUKPj4gKy0tIGV4cGxpY2l0 IGNhbGwgdG8gbG9hZF9jZmcKPj4gK2JveC5jZmd7fQo+PiArCj4+ICstLSBjaGVja2luZyB0aGUg ZnVuY3Rpb24gd2FzIG5vdCByZWNvbmZpZ3VyZWQsIGkuZS4gYWRyZXNzIHN0YXlzIHRoZSBzYW1l Cj4KPlR5cG86IGFkcmVzcyAtPiBhZGRyZXNzLgo+Cj4+ICt0ZXN0OmlzKGJveF9leGVjdXRlX2Fj dHVhbCwgYm94LmV4ZWN1dGUsCj4+ICsgImV4ZWN1dGUgaXMgbm90IHRoZSBzYW1lIGFmdGVyIGJv eC5jZmciKQo+PiArZXhlY3V0ZV9pc19pbW11dGFibGUoYm94X2V4ZWN1dGVfYWN0dWFsLAo+PiAr ICJDUkVBVEUgVEFCTEUgdDEgKHMxIElOVEVHRVIsIFBSSU1BUlkgS0VZIChzMSkpOyIsCj4+ICsg ImV4ZWN1dGUgZG9lcyBub3Qgd29yayBwcm9wZXJseSBhZnRlciBib3guY2ZnIikKPj4gKwo+PiAr b3MuZXhpdCh0ZXN0OmNoZWNrKCkgYW5kIDAgb3IgMSkKPgo+VGhlIHRlc3QgY2FzZSB3b3JrcyBw cm9wZXJseSAoZG9lcyBub3QgZmFpbCkgb24gY3VycmVudCBtYXN0ZXIgdy9vIHRoZQo+Zml4LiBJ IGd1ZXNzIHlvdSBpbnRlbmQgdG8gdGVzdCBib3hfZXhlY3V0ZV9zdHViIGFmdGVyIGJveC5jZmco KS4KPgo+QlRXLCBJIHN1Z2dlc3QgdG8gcnVuIGEgdGVzdCBvbiBhIHRhcmFudG9vbCB2ZXJzaW9u IGJlZm9yZSBhIGZpeCB0bwo+dmVyaWZ5IHRoYXQgdGhlIHRlc3QgYWN0dWFsbHkgYWJsZSB0byBj YXRjaCB0aGUgcHJvYmxlbS4KPgo+LS0tLQo+Cj5kaWZmIC0tZ2l0IGEvZXh0cmEvZXhwb3J0cyBi L2V4dHJhL2V4cG9ydHMKPmluZGV4IDdiODRhMTQ1Mi4uODU5OTYxNGVlIDEwMDY0NAo+LS0tIGEv ZXh0cmEvZXhwb3J0cwo+KysrIGIvZXh0cmEvZXhwb3J0cwo+QEAgLTExOCw2ICsxMTgsOCBAQCBz d2ltX21lbWJlcl91bnJlZgo+wqBzd2ltX21lbWJlcl9pc19kcm9wcGVkCj7CoHN3aW1fbWVtYmVy X2lzX3BheWxvYWRfdXBfdG9fZGF0ZQo+wqAKPitib3hfaXNfY29uZmlndXJlZAo+Kwo+wqAjIE1v ZHVsZSBBUEkKPsKgCj7CoF9zYXkKPmRpZmYgLS1naXQgYS9zcmMvYm94L2x1YS9sb2FkX2NmZy5s dWEgYi9zcmMvYm94L2x1YS9sb2FkX2NmZy5sdWEKPmluZGV4IDFmOWI0MzkyZi4uZGZmZjc3MmQ3 IDEwMDY0NAo+LS0tIGEvc3JjL2JveC9sdWEvbG9hZF9jZmcubHVhCj4rKysgYi9zcmMvYm94L2x1 YS9sb2FkX2NmZy5sdWEKPkBAIC02LDYgKzYsMTIgQEAgbG9jYWwgcHJpdmF0ZSA9IHJlcXVpcmUo J2JveC5pbnRlcm5hbCcpCj7CoGxvY2FsIHVyaWxpYiA9IHJlcXVpcmUoJ3VyaScpCj7CoGxvY2Fs IG1hdGggPSByZXF1aXJlKCdtYXRoJykKPsKgbG9jYWwgZmliZXIgPSByZXF1aXJlKCdmaWJlcicp Cj4rbG9jYWwgZmZpID0gcmVxdWlyZSgnZmZpJykKPisKPitmZmkuY2RlZihbWwo+KyBib29sCj4r IGJveF9pc19jb25maWd1cmVkKHZvaWQpOwo+K11dKQo+wqAKPsKgLS0gRnVuY3Rpb24gZGVjb3Jh dG9yIHRoYXQgaXMgdXNlZCB0byBwcmV2ZW50IGJveC5jZmcoKSBmcm9tCj7CoC0tIGJlaW5nIGNh bGxlZCBjb25jdXJyZW50bHkgYnkgZGlmZmVyZW50IGZpYmVycy4KPkBAIC01MTcsMTQgKzUyMywx MCBAQCBzZXRtZXRhdGFibGUoYm94LCB7Cj7CoMKgwqDCoMKgwqBlbmQKPsKgfSkKPsKgCj4tLS0g RmxhZyBuZWVkZWQgdG8ga2VlcCBpbW11dGFibGUgZnVuY3Rpb25zIGFmdGVyIGJveCByZWNvbmZp Z3VyYXRpb24KPi1sb2NhbCBib3hfbG9hZGVkID0gZmFsc2UKPi0KPsKgbG9jYWwgZnVuY3Rpb24g bG9hZF9jZmcoY2ZnKQo+wqDCoMKgwqDCoGNmZyA9IHVwZ3JhZGVfY2ZnKGNmZywgdHJhbnNsYXRl X2NmZykKPsKgwqDCoMKgwqBjZmcgPSBwcmVwYXJlX2NmZyhjZmcsIGRlZmF1bHRfY2ZnLCB0ZW1w bGF0ZV9jZmcsIG1vZGlmeV9jZmcpCj7CoMKgwqDCoMKgYXBwbHlfZGVmYXVsdF9jZmcoY2ZnLCBk ZWZhdWx0X2NmZyk7Cj4tIGJveF9sb2FkZWQgPSB0cnVlCj7CoMKgwqDCoMKgLS0gU2F2ZSBuZXcg Ym94LmNmZwo+wqDCoMKgwqDCoGJveC5jZmcgPSBjZmcKPsKgwqDCoMKgwqBpZiBub3QgcGNhbGwo cHJpdmF0ZS5jZmdfY2hlY2spIHRoZW4KPkBAIC01NjIsMjQgKzU2NCw0MyBAQCBsb2NhbCBmdW5j dGlvbiBsb2FkX2NmZyhjZmcpCj7CoGVuZAo+wqBib3guY2ZnID0gbG9ja2VkKGxvYWRfY2ZnKQo+ wqAKPitsb2NhbCBmdW5jdGlvbiBib3hfaXNfY29uZmlndXJlZCgpCj4rIHJldHVybiBmZmkuQy5i b3hfaXNfY29uZmlndXJlZCgpCj4rZW5kCj4rCj7CoC0tCj4tLS0gVGhpcyBtYWtlcyBwb3NzaWJs ZSBkbyBib3guZXhlY3V0ZSB3aXRob3V0IGNhbGxpbmcgYm94LmNmZwo+LS0tIG1hbnVhbGx5LiBU aGUgbG9hZF9jZmcgY2FsbCBvdmVyd3JpdGVzIGZvbGxvd2luZyB0YWJsZSBhbmQKPi0tLSBtZXRh dGFibGUuCj4rLS0gYm94LmV4ZWN1dGUgaXMgPGJveF9sb2FkX2FuZF9leGVjdXRlPiB3aGVuIGJv eCBpcyBub3QgbG9hZGVkLAo+Ky0tIDxsYm94X2V4ZWN1dGU+IG90aGVyd2lzZS4gU2VlIGFsc28g PGJveF9jb25maWd1cmVkPiB2YXJpYWJsZS4KPsKgLS0KPi1mdW5jdGlvbiBib3guZXhlY3V0ZSgu Li4pCj4tIC0tCj4tIC0tIFNhdmluZyBib3guZXhlY3V0ZSBtZXRob2QgYmVmb3JlIGV4cGxpY2l0 IGNhbGxzIHRvIGVpdGhlcgo+LSAtLSBib3guZXhlY3V0ZSgpIG9yIGJveC5jZmd7fSBsZWFkcyB0 byBpbXBsaWNpdCBpbnZvY2F0aW9uIG9mCj4tIC0tIGJveC5jZmcgbm9uZXRoZWxlc3MuIFRoZSBm bGFnIGJveF9sb2FkZWQgbWFrZXMgc3VyZSBleGVjdXRlCj4tIC0tIGlzIGFuIGltbXV0YWJsZSBm dW5jdGlvbiBtZWFuaW5nIGl0IHdvbid0IGJlIG92ZXJ3cml0dGVuIGJ5Cj4tIC0tIGFueSBmb2xs b3dpbmcgYXR0ZW1wdHMgdG8gcmVjb25maWd1cmUgYm94Lgo+Ky0tIDxib3hfbG9hZF9hbmRfZXhl Y3V0ZT4gbG9hZHMgYm94IGFuZCBjYWxscyA8bGJveF9leGVjdXRlPi4KPistLQo+K2xvY2FsIGJv eF9sb2FkX2FuZF9leGVjdXRlCj4rYm94X2xvYWRfYW5kX2V4ZWN1dGUgPSBmdW5jdGlvbiguLi4p Cj4rIC0tIENvbmZpZ3VyZSBib3ggaWYgaXQgaXMgbm90IGNvbmZpZ3VyZWQsIG5vLW9wIG90aGVy d2lzZSAobm90Cj4rIC0tIHJlY29uZmlndXJhdGlvbikuCj7CoMKgwqDCoMKgLS0KPi0gaWYgbm90 IGJveF9sb2FkZWQgdGhlbgo+LSBsb2FkX2NmZygpCj4rIC0tIFdlIHNob3VsZCBjaGVjayB3aGV0 aGVyIGJveCBpcyBjb25maWd1cmVkLCBiZWNhdXNlIGEgdXNlcgo+KyAtLSBtYXkgc2F2ZSA8Ym94 X2xvYWRfYW5kX2V4ZWN1dGU+IGZ1bmN0aW9uIGJlZm9yZSBib3ggbG9hZGluZwo+KyAtLSBhbmQg Y2FsbCBpdCBhZnRlcndhcmRzLgo+KyBpZiBub3QgYm94X2lzX2NvbmZpZ3VyZWQoKSB0aGVuCj4r IGxvY2tlZChmdW5jdGlvbigpCj4rIC0tIFJlLWNoZWNrLCBiZWNhdXNlIGFmdGVyIHJlbGVhc2lu ZyBvZiB0aGUgbG9jayB0aGUKPisgLS0gYm94IHN0YXRlIG1heSBiZSBjaGFuZ2VkLiBXZSBzaG91 bGQgY2FsbCBsb2FkX2NmZygpCj4rIC0tIG9ubHkgb25jZS4KPisgaWYgbm90IGJveF9pc19jb25m aWd1cmVkKCkgdGhlbgo+KyBsb2FkX2NmZygpCj4rIGVuZAo+KyBlbmQpKCkKPsKgwqDCoMKgwqBl bmQKPisKPisgLS0gQXQgdGhpcyBwb2ludCBib3ggc2hvdWxkIGJlIGNvbmZpZ3VyZWQgYW5kIGJv eC5leGVjdXRlKCkKPisgLS0gZnVuY3Rpb24gc2hvdWxkIGJlIHJlcGxhY2VkIHdpdGggbGJveF9l eGVjdXRlKCkuCj4rIGFzc2VydCh0eXBlKGJveC5jZmcpIH49ICdmdW5jdGlvbicpCj4rIGFzc2Vy dChib3guZXhlY3V0ZSB+PSBib3hfbG9hZF9hbmRfZXhlY3V0ZSkKPisKPsKgwqDCoMKgwqByZXR1 cm4gYm94LmV4ZWN1dGUoLi4uKQo+wqBlbmQKPitib3guZXhlY3V0ZSA9IGJveF9sb2FkX2FuZF9l eGVjdXRlCj7CoAo+wqAtLSBnaC04MTA6Cj7CoC0tIGhhY2sgbHVhaml0IGRlZmF1bHQgY3BhdGgg CsKgCsKgCi0tCk1hcmlhIEtoYXlkaWNoCsKg ----ALT--d0088931eC94Cf064bD8603C11cBc5D51583942274 Content-Type: text/html; charset=utf-8 Content-Transfer-Encoding: base64 CjxIVE1MPjxCT0RZPjxkaXY+PGRpdj5DYWxsaW5nIGJveC5jZmd7fSBtb3JlIHRoYW4gb25jZSBk b2VzIG5vdCBub3JtYWxseSBjYXVzZSBhbnkgZXJyb3JzPGJyPihldmVuIHRob3VnaCBpdCBtaWdo dCBub3QgaGF2ZSBhbnkgZWZmZWN0KS4gSW4gY29udHJhc3QsIGFzc2lnbmluZzxicj5pdCB0byBz b21lIHZhcmlhYmxlIGFuZCB0aGVuIHVzaW5nIGl0IGFmdGVyIHRoZSBib3ggd2FzIGNvbmZpZ3Vy ZWQ8YnI+Y2F1c2VkIGFuIGVycm9yIHNpbmNlIHRoZSBtZXRob2Qgd2FzIG92ZXJ3cml0dGVuIGJ5 IHRoZSBpbml0aWFsIGNhbGw8YnI+b2YgJmx0O2xvYWRfY2ZnJmd0Oy48L2Rpdj48ZGl2PiZuYnNw OzwvZGl2PjxkaXY+VGhlIHBhdGNoIGZpeGVzIHRoaXMgaXNzdWUgbWFraW5nIGJveC5jZmcgYmVo YXZlIGNvbnNpc3RlbnRseSBpbiBib3RoPGJyPnNjZW5hcmlvcyBhbmQgaXMgYSBmb2xsb3ctdXAg Zm9yIGJveDogbWFrZSBib3guZXhlY3V0ZSBpZGVtcG90ZW50IGZ1bmN0aW9uLjwvZGl2PjxkaXY+ Jm5ic3A7PC9kaXY+PGRpdj5Gb2xsb3ctdXAgIzQyMzE8YnI+LS0tPGJyPklzc3VlOjxicj48YSBo cmVmPSJodHRwczovL2dpdGh1Yi5jb20vdGFyYW50b29sL3RhcmFudG9vbC9pc3N1ZXMvNDIzMSI+ aHR0cHM6Ly9naXRodWIuY29tL3RhcmFudG9vbC90YXJhbnRvb2wvaXNzdWVzLzQyMzE8L2E+Jm5i c3A7PGJyPkJyYW5jaDo8YnI+PGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL3RhcmFudG9vbC90 YXJhbnRvb2wvY29tcGFyZS9lbGphc2htL2doLTQyMzEtYm94LmV4ZWN1dGUtaW1tdXRhYmxlLWZ1 bmN0aW9uIj5odHRwczovL2dpdGh1Yi5jb20vdGFyYW50b29sL3RhcmFudG9vbC9jb21wYXJlL2Vs amFzaG0vZ2gtNDIzMS1ib3guZXhlY3V0ZS1pbW11dGFibGUtZnVuY3Rpb248L2E+Jm5ic3A7PC9k aXY+PGRpdj4mbmJzcDs8L2Rpdj48ZGl2PiZuYnNwO3NyYy9ib3gvbHVhL2xvYWRfY2ZnLmx1YSAm bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu YnNwOyAmbmJzcDsgJm5ic3A7fCAxMiArKysrLS0tPGJyPiZuYnNwOy4uLi9naC00MjMxLWltbXV0 YWJsZS1ib3gtZXhlY3V0ZS50ZXN0Lmx1YSAmbmJzcDsgJm5ic3A7fCAzNCArKysrKysrKysrKyst LS0tLS0tPGJyPiZuYnNwOzIgZmlsZXMgY2hhbmdlZCwgMzAgaW5zZXJ0aW9ucygrKSwgMTYgZGVs ZXRpb25zKC0pPC9kaXY+PGRpdj5kaWZmIC0tZ2l0IGEvc3JjL2JveC9sdWEvbG9hZF9jZmcubHVh IGIvc3JjL2JveC9sdWEvbG9hZF9jZmcubHVhPGJyPmluZGV4IGRjNDI5M2JkZC4uNjc1M2JlNmYz IDEwMDY0NDxicj4tLS0gYS9zcmMvYm94L2x1YS9sb2FkX2NmZy5sdWE8YnI+KysrIGIvc3JjL2Jv eC9sdWEvbG9hZF9jZmcubHVhPGJyPkBAIC01MjMsNyArNTIzLDE1IEBAIHNldG1ldGF0YWJsZShi b3gsIHs8YnI+Jm5ic3A7ICZuYnNwOyAmbmJzcDsgZW5kPGJyPiZuYnNwO30pPGJyPiZuYnNwOzxi cj4rbG9jYWwgZnVuY3Rpb24gYm94X2lzX2NvbmZpZ3VyZWQoKTxicj4rICZuYnNwOyAmbmJzcDty ZXR1cm4gZmZpLkMuYm94X2lzX2NvbmZpZ3VyZWQoKTxicj4rZW5kPGJyPis8YnI+Jm5ic3A7bG9j YWwgZnVuY3Rpb24gbG9hZF9jZmcoY2ZnKTxicj4rICZuYnNwOyAmbmJzcDtpZiBib3hfaXNfY29u ZmlndXJlZCgpIHRoZW48YnI+KyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDtyZWxvYWRfY2Zn KGNmZyk8YnI+KyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDtyZXR1cm48YnI+KyAmbmJzcDsg Jm5ic3A7ZW5kPGJyPiZuYnNwOyAmbmJzcDsgJm5ic3A7Y2ZnID0gdXBncmFkZV9jZmcoY2ZnLCB0 cmFuc2xhdGVfY2ZnKTxicj4mbmJzcDsgJm5ic3A7ICZuYnNwO2NmZyA9IHByZXBhcmVfY2ZnKGNm ZywgZGVmYXVsdF9jZmcsIHRlbXBsYXRlX2NmZywgbW9kaWZ5X2NmZyk8YnI+Jm5ic3A7ICZuYnNw OyAmbmJzcDthcHBseV9kZWZhdWx0X2NmZyhjZmcsIGRlZmF1bHRfY2ZnKTs8YnI+QEAgLTU2NCwx MCArNTcyLDYgQEAgbG9jYWwgZnVuY3Rpb24gbG9hZF9jZmcoY2ZnKTxicj4mbmJzcDtlbmQ8YnI+ Jm5ic3A7Ym94LmNmZyA9IGxvY2tlZChsb2FkX2NmZyk8YnI+Jm5ic3A7PGJyPi1sb2NhbCBmdW5j dGlvbiBib3hfaXNfY29uZmlndXJlZCgpPGJyPi0gJm5ic3A7ICZuYnNwO3JldHVybiBmZmkuQy5i b3hfaXNfY29uZmlndXJlZCgpPGJyPi1lbmQ8YnI+LTxicj4mbmJzcDstLTxicj4mbmJzcDstLSBi b3guZXhlY3V0ZSBpcyAmbHQ7Ym94X2xvYWRfYW5kX2V4ZWN1dGUmZ3Q7IHdoZW4gYm94IGlzIG5v dCBsb2FkZWQsPGJyPiZuYnNwOy0tICZsdDtsYm94X2V4ZWN1dGUmZ3Q7IG90aGVyd2lzZS4gU2Vl IGFsc28gJmx0O2JveF9jb25maWd1cmVkJmd0OyB2YXJpYWJsZS48YnI+ZGlmZiAtLWdpdCBhL3Rl c3QvYm94LXRhcC9naC00MjMxLWltbXV0YWJsZS1ib3gtZXhlY3V0ZS50ZXN0Lmx1YSBiL3Rlc3Qv Ym94LXRhcC9naC00MjMxLWltbXV0YWJsZS1ib3gtZXhlY3V0ZS50ZXN0Lmx1YTxicj5pbmRleCAx NTQ0NTkxYmYuLjQ5YWFkMTU0YiAxMDA3NTU8YnI+LS0tIGEvdGVzdC9ib3gtdGFwL2doLTQyMzEt aW1tdXRhYmxlLWJveC1leGVjdXRlLnRlc3QubHVhPGJyPisrKyBiL3Rlc3QvYm94LXRhcC9naC00 MjMxLWltbXV0YWJsZS1ib3gtZXhlY3V0ZS50ZXN0Lmx1YTxicj5AQCAtMSwyOCArMSwzOCBAQDxi cj4mbmJzcDsjIS91c3IvYmluL2VudiB0YXJhbnRvb2w8YnI+Jm5ic3A7bG9jYWwgdGFwID0gcmVx dWlyZSgndGFwJyk8YnI+Jm5ic3A7bG9jYWwgdGVzdCA9IHRhcC50ZXN0KCdleGVjdXRlJyk8YnI+ LXRlc3Q6cGxhbigyKTxicj4rdGVzdDpwbGFuKDQpPGJyPiZuYnNwOzxicj4mbmJzcDstLTxicj4t LS0gZ2gtNDIzMTogYm94LmV4ZWN1dGUgc2hvdWxkIGJlIGFuIGlkZW1wb3RlbnQgZnVuY3Rpb248 YnI+LS0tIG1lYW5pbmcgaXRzIGVmZmVjdCBzaG91bGQgYmUgdGhlIHNhbWUgaWYgYSB1c2VyIGNo b29zZXM8YnI+LS0tIHRvIHVzZSBpdCBiZWZvcmUgZXhwbGljaXQgYm94LmNmZyBpbnZvY2F0aW9u PGJyPistLSBnaC00MjMxOiBib3guZXhlY3V0ZSBzaG91bGQgYmUgYW4gaWRlbXBvdGVudCBmdW5j dGlvbiBtZWFuaW5nPGJyPistLSBpdHMgZWZmZWN0IHNob3VsZCBiZSB0aGUgc2FtZSBpZiB0aGUg dXNlciBjaG9vc2VzIHRvIHNhdmUgaXQ8YnI+Ky0tIGJlZm9yZSBleHBsaWNpdCBib3guY2Zne30g aW52b2NhdGlvbiBhbmQgdXNlIHRoZSBzYXZlZCB2ZXJzaW9uPGJyPistLSBhZnRlcndhcmRzLjxi cj4rLS0gV2l0aGluIHRoZSBzY29wZSBvZiB0aGUgc2FtZSBpc3N1ZSBib3guY2ZnIG1ldGhvZCBz aG91bGQgYWxzbzxicj4rLS0gYmUga2VwdCBpZGVtcG90ZW50IGZvciB0aGUgc2FtZSByZWFzb25z Ljxicj4mbmJzcDstLTxicj4mbmJzcDs8YnI+LWxvY2FsIGZ1bmN0aW9uIGV4ZWN1dGVfaXNfaW1t dXRhYmxlKGV4ZWN1dGUsIGNtZCwgbXNnKTxicj4tICZuYnNwOyAmbmJzcDtsb2NhbCBzdGF0dXMs IGVyciA9IHBjYWxsKGV4ZWN1dGUsIGNtZCk8YnI+LSAmbmJzcDsgJm5ic3A7dGVzdDpvayhzdGF0 dXMgYW5kIHR5cGUoZXJyKSA9PSAndGFibGUnLCBtc2cpPGJyPi1lbmQ8YnI+LTxicj4mbmJzcDts b2NhbCBib3hfZXhlY3V0ZV9zdHViID0gYm94LmV4ZWN1dGU8YnI+LS0tIGV4cGxpY2l0IGNhbGwg dG8gbG9hZF9jZmc8YnI+K2xvY2FsIGJveF9jZmdfc3R1YiA9IGJveC5jZmc8YnI+Kzxicj4rLS0g RXhwbGljaXQgYm94IGNvbmZpZ3VyYXRpb24gdGhhdCB1c2VkIHRvIGNoYW5nZSB0aGUgYmVoYXZp b3IuPGJyPiZuYnNwO2JveC5jZmd7fTxicj4rPGJyPiZuYnNwO2xvY2FsIGJveF9leGVjdXRlX2Fj dHVhbCA9IGJveC5leGVjdXRlPGJyPitsb2NhbCBib3hfY2ZnX2FjdHVhbCA9IGJveC5jZmc8YnI+ Jm5ic3A7PGJyPi1leGVjdXRlX2lzX2ltbXV0YWJsZShib3hfZXhlY3V0ZV9zdHViLDxicj4rbG9j YWwgZnVuY3Rpb24gaXNfaWRlbXBvdGVudChtZXRob2QsIGNtZCwgbXNnKTxicj4rICZuYnNwOyAm bmJzcDtsb2NhbCBzdGF0dXMsIGVyciA9IHBjYWxsKG1ldGhvZCwgY21kKTxicj4rICZuYnNwOyAm bmJzcDt0ZXN0Om9rKHN0YXR1cywgbXNnLCBuaWwsIGVycik8YnI+K2VuZDxicj4rPGJyPitpc19p ZGVtcG90ZW50KGJveF9leGVjdXRlX3N0dWIsPGJyPiZuYnNwOyAmbmJzcDsgJm5ic3A7IkNSRUFU RSBUQUJMRSB0MSAoczEgSU5URUdFUiwgUFJJTUFSWSBLRVkgKHMxKSk7Iiw8YnI+Jm5ic3A7ICZu YnNwOyAmbmJzcDsiYm94LmV4ZWN1dGUgc3R1YiB3b3JrcyBiZWZvcmUgYm94LmNmZyIpPGJyPi1l eGVjdXRlX2lzX2ltbXV0YWJsZShib3hfZXhlY3V0ZV9hY3R1YWwsICJEUk9QIFRBQkxFIHQxIiw8 YnI+K2lzX2lkZW1wb3RlbnQoYm94X2V4ZWN1dGVfYWN0dWFsLCAiRFJPUCBUQUJMRSB0MSIsPGJy PiZuYnNwOyAmbmJzcDsgJm5ic3A7ImJveC5leGVjdXRlIHdvcmtzIHByb3Blcmx5IGFmdGVyIGJv eC5jZmciKTxicj4mbmJzcDs8YnI+K2lzX2lkZW1wb3RlbnQoYm94X2NmZ19zdHViLCBuaWwsICJi b3guY2ZnIHN0dWIgd29ya3MgcHJvcGVybHkiKTxicj4raXNfaWRlbXBvdGVudChib3hfY2ZnX2Fj dHVhbCwgbmlsLCAiYm94LmNmZyBhZnRlciBjb25maWd1cmF0aW9uIik8YnI+Kzxicj4mbmJzcDtv cy5leGl0KHRlc3Q6Y2hlY2soKSBhbmQgMCBvciAxKTxicj4tLSZuYnNwOzxicj4yLjI0LjA8L2Rp dj4mbmJzcDs8YmxvY2txdW90ZSBzdHlsZT0iYm9yZGVyLWxlZnQ6MXB4IHNvbGlkICMwODU3QTY7 IG1hcmdpbjoxMHB4OyBwYWRkaW5nOjAgMCAwIDEwcHg7Ij7Qp9C10YLQstC10YDQsywgMjAg0YTQ tdCy0YDQsNC70Y8gMjAyMCwgMjA6NTEgKzAzOjAwINC+0YIgQWxleGFuZGVyIFR1cmVua28gJmx0 O2FsZXhhbmRlci50dXJlbmtvQHRhcmFudG9vbC5vcmcmZ3Q7Ojxicj4mbmJzcDs8ZGl2IGlkPSIi PjxkaXYgY2xhc3M9ImpzLWhlbHBlciBqcy1yZWFkbXNnLW1zZyI+PHN0eWxlIHR5cGU9InRleHQv Y3NzIj48L3N0eWxlPjxkaXY+PGRpdiBpZD0ic3R5bGVfMTU4MjIyMTA2MzEyMjU0NjE0OTVfQk9E WSI+U29ycnkgZm9yIHRoZSBsYXRlIHJlc3BvbnNlLjxicj48YnI+U2VlIGNvbW1lbnRzIGJlbG93 Ljxicj48YnI+V2hpbGUgbG9va2luZyBpbnRvIHRoZSBwYXRjaCwgZXhwZXJpbWVudGluZyBhbmQg Y29tbWVudGluZyBJIG1hZGUgdGhlPGJyPnBhdGNoIChpdCBpcyBiYXNlZCBvbiB5b3VyIGNoYW5n ZXMpLCBzbyBJJ2xsIHBhc3RlIGl0IGF0IGVuZCBvZiB0aGU8YnI+ZW1haWwgZm9yIHRoZSByZWZl cmVuY2UuPGJyPjxicj5XQlIsIEFsZXhhbmRlciBUdXJlbmtvLjxicj48YnI+Jmd0OyBjb21taXQg NTczMzE4ZWE4NzQ5OTMxNzQxMjQ3ZjE4MTMzM2FiNjhiNDNhODJjNjxicj4mZ3Q7IEF1dGhvcjog TWFyaWEgJmx0OzxhIGhyZWY9Ii9jb21wb3NlP1RvPW1hcmlhLmtoYXlkaWNoQHRhcmFudG9vbC5v cmciPm1hcmlhLmtoYXlkaWNoQHRhcmFudG9vbC5vcmc8L2E+Jmd0Ozxicj4mZ3Q7IERhdGU6IFR1 ZSBPY3QgMjkgMTc6NTY6NTEgMjAxOSArMDMwMDxicj4mZ3Q7PGJyPiZndDsgYm94OiBib3guZXhl Y3V0ZSBzaG91bGQgYmUgaW1tdXRhYmxlIGZ1bmN0aW9uPGJyPjxicj5Ob3cgSSByZWNhbGxlZCB0 aGUgcmlnaHQgdGVybTogaWRlbXBvdGVudC48YnI+PGJyPk5pdDogaXQgd291bGQgYmUgZ29vZCB0 byB1c2UgaW1wZXJhdGl2ZSBtb29kIGluIHRoZSBjb21taXQgaGVhZGVyOjxicj48YnI+Jm5ic3A7 fCBVc2UgdGhlIGltcGVyYXRpdmUgbW9vZCBpbiB0aGUgc3ViamVjdCBsaW5lLiBBIHByb3Blcmx5 IGZvcm1lZCBHaXQ8YnI+Jm5ic3A7fCBjb21taXQgc3ViamVjdCBsaW5lIHNob3VsZCBhbHdheXMg YmUgYWJsZSB0byBjb21wbGV0ZSB0aGUgZm9sbG93aW5nPGJyPiZuYnNwO3wgc2VudGVuY2U6IOKA nElmIGFwcGxpZWQsIHRoaXMgY29tbWl0IHdpbGwgL3lvdXIgc3ViamVjdCBsaW5lIGhlcmUv4oCd Ljxicj48YnI+PGEgaHJlZj0iaHR0cHM6Ly93d3cudGFyYW50b29sLmlvL2VuL2RvYy8xLjEwL2Rl dl9ndWlkZS9kZXZlbG9wZXJfZ3VpZGVsaW5lcy8jaG93LXRvLXdyaXRlLWEtY29tbWl0LW1lc3Nh Z2UiIHRhcmdldD0iX2JsYW5rIj5odHRwczovL3d3dy50YXJhbnRvb2wuaW8vZW4vZG9jLzEuMTAv ZGV2X2d1aWRlL2RldmVsb3Blcl9ndWlkZWxpbmVzLyNob3ctdG8td3JpdGUtYS1jb21taXQtbWVz c2FnZTwvYT48YnI+PGJyPiZndDs8YnI+Jmd0OyBVc2luZyBib3guZXhlY3V0ZSBtZXRob2QgYmVm b3JlIGV4cGxpY2l0bHkgY29uZmlndXJpbmcgYm94PGJyPiZndDsgYXV0b21hdGljYWxseSBpbnZv a2VkIGJveC5jZmcgbm9uZXRoZWxlc3MuIEFueSBmdXJ0aGVyIGNhbGxzPGJyPiZndDsgdG8gYm94 LmNmZyBjYXVzZWQgaXRzIHJlY29uZmlndXJhdGlvbiB3aGljaCB0aGVuIGxlZCB0byBhbjxicj4m Z3Q7IGVycm9yIHdoZW4gdHJ5aW5nIHRvIHVzZSBleGVjdXRlIG1ldGhvZCBhZ2Fpbi48YnI+PGJy PlNvcnJ5IHRoYXQgSSBuaXRwaWNrIGFyb3VuZCB3b3JkaW5nIGFnYWluLCBidXQgYWZ0ZXIgdGhl IGRlc2NyaXB0aW9uIEk8YnI+d291bGQgY2hlY2sgc29tZXRoaW5nIGxpa2UgdGhlIGZvbGxvd2lu Zzo8YnI+PGJyPiZuYnNwO3wgYm94LmV4ZWN1dGUoJ1NFTEVDVCAxJykgLS0gaGVyZSBib3guY2Zn e30gaXMgY2FsbGVkIHVuZGVyIGhvb2Q8YnI+Jm5ic3A7fCBib3guZXhlY3V0ZSgnU0VMRUNUIDEn KSAtLSBldmVyeXRoaW5nIGxvb2tzIG9rPGJyPjxicj5BZnRlciB0aGF0IEkgd291bGQgYmUgY29u ZnVzZWQsIGJlY2F1c2UgZXZlcnl0aGluZyB3b3JrcyBhcyBleHBlY3RlZC48YnI+PGJyPkkgd291 bGQgc2F5IHRoYXQgdGhlcmUgYXJlIHR3byBkaWZmZXJlbnQgZnVuY3Rpb25zPGJyPiZsdDtib3hf bG9hZF9hbmRfZXhlY3V0ZSZndDsgKHdoaWNoIGlzIGFzc2lnbmVkIHRvIGJveC5leGVjdXRlIHdo ZW4gYm94IGlzIG5vdDxicj5jb25maWd1cmVkKSBhbmQgJmx0O2xib3hfZXhlY3V0ZSZndDsgKGFm dGVyIGJveCBjb25mZ3VyYXRpb24pIGFuZCB3b3VsZDxicj5kZXNjcmliZSB0aGUgY2FzZSB1c2lu ZyB0aG9zZSB0ZXJtcy4gSSBndWVzcyBpdCB3b3VsZCBlYXNpZXIgdG88YnI+dW5kZXJzdGFuZC48 YnI+PGJyPlNlZSBhbHNvIHRoZSBjb21tZW50IGFib3V0IHRoZSB0ZXN0IGF0IHZlcnkgZW5kIG9m IHRoZSBlbWFpbC48YnI+PGJyPiZndDs8YnI+Jmd0OyBUaGUgcGF0Y2ggaW50cm9kdWNlcyBhIGZp eCBtYWtpbmcgYm94LmV4ZWN1dGUgaW1tdXRhYmxlLjxicj4mZ3Q7PGJyPiZndDsgQ2xvc2VzICM0 MjMxPGJyPiZndDs8YnI+Jmd0OyBkaWZmIC0tZ2l0IGEvc3JjL2JveC9sdWEvbG9hZF9jZmcubHVh IGIvc3JjL2JveC9sdWEvbG9hZF9jZmcubHVhPGJyPiZndDsgaW5kZXggODU2MTdjOGYwLi4xZjli NDM5MmYgMTAwNjQ0PGJyPiZndDsgLS0tIGEvc3JjL2JveC9sdWEvbG9hZF9jZmcubHVhPGJyPiZn dDsgKysrIGIvc3JjL2JveC9sdWEvbG9hZF9jZmcubHVhPGJyPiZndDsgQEAgLTUxNywxMCArNTE3 LDE0IEBAIHNldG1ldGF0YWJsZShib3gsIHs8YnI+Jmd0OyBlbmQ8YnI+Jmd0OyB9KTxicj4mZ3Q7 PGJyPiZndDsgKy0tIEZsYWcgbmVlZGVkIHRvIGtlZXAgaW1tdXRhYmxlIGZ1bmN0aW9ucyBhZnRl ciBib3ggcmVjb25maWd1cmF0aW9uPGJyPjxicj5OaXQ6IG92ZXIgNjYgc3ltYm9scy48YnI+PGJy PiZndDsgK2xvY2FsIGJveF9sb2FkZWQgPSBmYWxzZTxicj4mZ3Q7ICs8YnI+Jmd0OyBsb2NhbCBm dW5jdGlvbiBsb2FkX2NmZyhjZmcpPGJyPiZndDsgY2ZnID0gdXBncmFkZV9jZmcoY2ZnLCB0cmFu c2xhdGVfY2ZnKTxicj4mZ3Q7IGNmZyA9IHByZXBhcmVfY2ZnKGNmZywgZGVmYXVsdF9jZmcsIHRl bXBsYXRlX2NmZywgbW9kaWZ5X2NmZyk8YnI+Jmd0OyBhcHBseV9kZWZhdWx0X2NmZyhjZmcsIGRl ZmF1bHRfY2ZnKTs8YnI+Jmd0OyArIGJveF9sb2FkZWQgPSB0cnVlPGJyPjxicj5BZnRlciB0aGlz IHdlIGNhbiBmYWlsZWQgdG8gY29uZmlndXJlIGJveCwgY29uc2lkZXIgdGhlIGNhc2U6PGJyPjxi cj4mbmJzcDt8IHRhcmFudG9vbCZndDsgYm94LmNmZ3tsaXN0ZW4gPSAnaW5jb3JyZWN0J308YnI+ Jm5ic3A7fCAtLS08YnI+Jm5ic3A7fCAtIGVycm9yOiAnSW5jb3JyZWN0IHZhbHVlIGZvciBvcHRp b24gJydsaXN0ZW4nJzogZXhwZWN0ZWQgaG9zdDpzZXJ2aWNlIG9yIC91bml4LnNvY2tldCc8YnI+ Jm5ic3A7fCAuLi48YnI+Jm5ic3A7fDxicj4mbmJzcDt8IHRhcmFudG9vbCZndDsgYm94LmV4ZWN1 dGUoJ1NFTEVDVCAxJyk8YnI+PGJyPldlIHNob3VsZCBzZXQgdGhlIGZsYWcgb25seSBhdCBzdWNj ZXNzZnVsIGJveCBjb25maWd1cmF0aW9uLiBJIHdvdWxkPGJyPmFsc28gYWRkIHN1Y2ggdGVzdCBj YXNlLjxicj48YnI+Jmd0OyAtLSBTYXZlIG5ldyBib3guY2ZnPGJyPiZndDsgYm94LmNmZyA9IGNm Zzxicj4mZ3Q7IGlmIG5vdCBwY2FsbChwcml2YXRlLmNmZ19jaGVjaykgdGhlbjxicj4mZ3Q7IEBA IC01NjQsNyArNTY4LDE2IEBAIGJveC5jZmcgPSBsb2NrZWQobG9hZF9jZmcpPGJyPiZndDsgLS0g bWV0YXRhYmxlLjxicj4mZ3Q7IC0tPGJyPiZndDsgZnVuY3Rpb24gYm94LmV4ZWN1dGUoLi4uKTxi cj4mZ3Q7IC0gbG9hZF9jZmcoKTxicj4mZ3Q7ICsgLS08YnI+Jmd0OyArIC0tIFNhdmluZyBib3gu ZXhlY3V0ZSBtZXRob2QgYmVmb3JlIGV4cGxpY2l0IGNhbGxzIHRvIGVpdGhlcjxicj4mZ3Q7ICsg LS0gYm94LmV4ZWN1dGUoKSBvciBib3guY2Zne30gbGVhZHMgdG8gaW1wbGljaXQgaW52b2NhdGlv biBvZjxicj4mZ3Q7ICsgLS0gYm94LmNmZyBub25ldGhlbGVzcy48YnI+PGJyPlRlY2huaWNhbGx5 IHNhdmluZyBvZiBib3guZXhlY3V0ZSBkb2VzIG5vdCBsZWFkIHRvIGludm9jYXRpb24gb2Y8YnI+ Ym94LmNmZy4gQnV0IGFueXdheSBJIHdvdWxkIGRlc2NyaWJlIHRoaW5ncyBpbiB0aGUgd2F5IGFz IHByb3Bvc2VkPGJyPmFib3ZlLjxicj48YnI+Jmd0OyArIC0tIFRoZSBmbGFnIGJveF9sb2FkZWQg bWFrZXMgc3VyZSBleGVjdXRlPGJyPiZndDsgKyAtLSBpcyBhbiBpbW11dGFibGUgZnVuY3Rpb24g bWVhbmluZyBpdCB3b24ndCBiZSBvdmVyd3JpdHRlbiBieTxicj4mZ3Q7ICsgLS0gYW55IGZvbGxv d2luZyBhdHRlbXB0cyB0byByZWNvbmZpZ3VyZSBib3guPGJyPiZndDsgKyAtLTxicj48YnI+VGhl IHByb2JsZW0gaXMgbm90IHRoYXQgJmx0O2xib3hfZXhlY3V0ZSZndDsgd2lsbCBiZSBvdmVyd3Jp dHRlbiB3aXRoIHNvbWU8YnI+Jmx0O2JveF9hbm90aGVyX2V4ZWN1dGUmZ3Q7LCBidXQgdGhhdCB0 aGUgaW5pdGlhbCAmbHQ7Ym94X2xvYWRfYW5kX2V4ZWN1dGUmZ3Q7IGRvZXM8YnI+bm90IHdvcmsg Y29ycmVjdGx5IGFmdGVyIHN1Y2Nlc3NmdWwgYm94IGNvbmZpZ3VyYXRpb24uPGJyPjxicj4mZ3Q7 ICsgaWYgbm90IGJveF9sb2FkZWQgdGhlbjxicj4mZ3Q7ICsgbG9hZF9jZmcoKTxicj4mZ3Q7ICsg ZW5kPGJyPjxicj5JIGNvbnNpZGVyZWQgdXNpbmcgb2YgYHR5cGUoYm94LmNmZykgPT0gJ2Z1bmN0 aW9uJ2AgY2hlY2sgYXMgaW48YnI+dGFyYW50b29sY3RsLCBidXQgaW4gZmFjdCBpdCBpcyBub3Qg cmVhbGlhYmxlOiBpZiBib3ggd2FzIG5vdCBjb25maWd1cmVkPGJyPmFmdGVyIGJveC5jZmcoKSBk dWUgdG8gYW4gZXJyb3IgKHNheSwgYWZ0ZXIgYGJveC5jZmd7bGlzdGVuID08YnI+J2ludmFsaWQn fWApIHRoZSB0eXBlIG9mIGJveC5jZmcgd2lsbCBiZSAndGFibGUnIGFuZCByZWxvYWRfY2ZnKCkg d2lsbDxicj53b3JrIG9uIHRoZSBuZXh0IGJveC5jZmcoKSBjYWxsLiBTbyB3ZSBzaG91bGQgdXNl IGJveF9pc19jb25maWd1cmVkIEM8YnI+ZnVuY3Rpb246PGJyPjxicj4mbmJzcDt8IGxvY2FsIGZm aSA9IHJlcXVpcmUoJ2ZmaScpPGJyPiZuYnNwO3w8YnI+Jm5ic3A7fCBmZmkuY2RlZihbWzxicj4m bmJzcDt8IGJvb2w8YnI+Jm5ic3A7fCBib3hfaXNfY29uZmlndXJlZCh2b2lkKTs8YnI+Jm5ic3A7 fCBdXSk8YnI+Jm5ic3A7fDxicj4mbmJzcDt8IGxvY2FsIGZ1bmN0aW9uIGJveF9pc19jb25maWd1 cmVkKCk8YnI+Jm5ic3A7fCByZXR1cm4gZmZpLkMuYm94X2lzX2NvbmZpZ3VyZWQoKTxicj4mbmJz cDt8IGVuZDxicj48YnI+VGhpcyB3YXkgcmVxdWlyZXMgdG8gYWRkIHRoZSBmdW5jdGlvbiBpbnRv IGV4dHJhL2V4cG9ydHMuPGJyPjxicj5CVFcsIGl0IHNlZW1zIHRoYXQgaXQgaXMgcG9zc2libGUg dGhhdCAmbHQ7Ym94X2xvYWRfYW5kX2V4ZWN1dGUmZ3Q7IHdpbGwgYmU8YnI+Y2FsbGVkIHdoZW4g YGJveC5jZmd7fWAgaXMgYWxyZWFkeSBpbiBwcm9ncmVzcyBpbiBhbm90aGVyIGZpYmVyOiB0aGlz IGlzPGJyPndoeSBhbGwgbG9hZF9jZmcoKSAvIHJlbG9hZF9jZmcoKSBjYWxscyBhcmUgZGVjb3Jh dGVkIHVzaW5nIGBsb2NrZWRgPGJyPndyYXBwZXIuIEl0IHNlZW1zIHdlIHNob3VsZCBkbyB0aGUg c2FtZSBpbiAmbHQ7Ym94X2xvYWRfYW5kX2V4ZWN1dGUmZ3Q7Ojxicj48YnI+Jm5ic3A7fCBmdW5j dGlvbiBib3guZXhlY3V0ZSguLi4pPGJyPiZuYnNwO3wgaWYgbm90IGJveF9pc19jb25maWd1cmVk KCkgdGhlbjxicj4mbmJzcDt8IGxvY2tlZChmdW5jdGlvbigpPGJyPiZuYnNwO3wgLS0gUmUtY2hl Y2ssIGJlY2F1c2UgYWZ0ZXIgdGhlIGxvY2sgcmVsZWFzZSB0aGUgYm94PGJyPiZuYnNwO3wgLS0g c3RhdGUgbWF5IGJlIGNoYW5nZWQuIFdlIHNob3VsZCBjYWxsIGxvYWRfY2ZnKCk8YnI+Jm5ic3A7 fCAtLSBvbmx5IG9uY2UuPGJyPiZuYnNwO3wgaWYgbm90IGJveF9pc19jb25maWd1cmVkKCkgdGhl bjxicj4mbmJzcDt8IGxvYWRfY2ZnKCk8YnI+Jm5ic3A7fCBlbmQ8YnI+Jm5ic3A7fCBlbmQpKCk8 YnI+Jm5ic3A7fCBlbmQ8YnI+Jm5ic3A7fCByZXR1cm4gYm94LmV4ZWN1dGUoLi4uKTxicj4mbmJz cDt8IGVuZDxicj48YnI+SSBleHBlcmltZW50ZWQgd2l0aCB0aGlzIGxpa2Ugc286PGJyPjxicj4m bmJzcDt8ICQgLi9zcmMvdGFyYW50b29sPGJyPiZuYnNwO3wgdGFyYW50b29sJmd0OyBib3hfZXhl Y3V0ZSA9IGJveC5leGVjdXRlPGJyPiZuYnNwO3wgdGFyYW50b29sJmd0OyBmb3IgaSA9IDEsIDEw IGRvIHJlcXVpcmUoJ2ZpYmVyJykuY3JlYXRlKGZ1bmN0aW9uKCkgcmVxdWlyZSgnbG9nJykuaW5m byhyZXF1aXJlKCd5YW1sJykuZW5jb2RlKChib3hfZXhlY3V0ZSgnU0VMRUNUICogRlJPTSAiX3Zp bmRleCInKSkpKSBlbmQpIGVuZDxicj48YnI+V2hpbGUgbG9va2luZyBpbnRvIHRoZSBjb2RlIEkg Zm91bmQgb25lIG1vcmUgY2FzZTo8YnI+PGJyPiZuYnNwO3wgdGFyYW50b29sJmd0OyBib3hfY2Zn ID0gYm94LmNmZzxicj4mbmJzcDt8IC0tLTxicj4mbmJzcDt8IC4uLjxicj4mbmJzcDt8IHRhcmFu dG9vbCZndDsgYm94X2NmZygpPGJyPiZuYnNwO3wgJmx0Oy4uLiZndDs8YnI+Jm5ic3A7fCB0YXJh bnRvb2wmZ3Q7IGJveF9jZmcoKTxicj4mbmJzcDt8IC0tLTxicj4mbmJzcDt8IC0gZXJyb3I6ICdi dWlsdGluL2JveC9sb2FkX2NmZy5sdWE6MTk6IGJ1aWx0aW4vYm94L2xvYWRfY2ZnLmx1YTo1NDc6 IGJhZCBhcmd1bWVudDxicj4mbmJzcDt8ICMxIHRvICcncGFpcnMnJyAodGFibGUgZXhwZWN0ZWQs IGdvdCBuaWwpJzxicj4mbmJzcDt8IC4uLjxicj48YnI+SSB0aGluayBpdCBkb2VzIE5PVCBtZWFu IHRoYXQgd2Ugc2hvdWxkIG5vdCBmaXggYm94LmV4ZWN1dGUoKSBjb2RlLDxicj5iZWNhdXNlIHRo ZSBleHBlY3RlZCBiZWhhdmlvdXIgaXMgYSBiaXQgZGlmZmVyZW50Ojxicj48YnI+KiBib3guZXhl Y3V0ZSgpIChtb3JlIHNwZWNpZmljYWxseSAmbHQ7Ym94X2xvYWRfYW5kX2V4ZWN1dGUmZ3Q7KSBz aG91bGQ8YnI+Jm5ic3A7Jm5ic3A7Y29uZmlndXJlIGJveCBpZiBpdCBpcyBub3QgY29uZmlndXJl ZCBvciBqdXN0IGV4ZWN1dGUgb3RoZXJ3aXNlICh3L288YnI+Jm5ic3A7Jm5ic3A7Ym94IHJlY29u ZmlndXJhdGlvbikuPGJyPiogYm94LmNmZygpIChtb3JlIHNwZWNpZmljYWxseSAmbHQ7bG9hZF9j ZmcmZ3Q7KSBzaG91bGQgY29uZmlndXJlIGJveCBpZiBpdCBpczxicj4mbmJzcDsmbmJzcDtub3Qg Y29uZmlndXJlZCwgb3RoZXJ3aXNlICoqcmVjb25maWd1cmUqKiBpdC48YnI+PGJyPlNvIGJveC5j ZmcoKSBzaG91bGQgY2FsbCByZWxvYWRfY2ZnKCkgaWYgYm94IGlzIGFscmVhZHkgY29uZmlndXJl ZC4gSTxicj5wcm9wb3NlIHRvIGZpeCBpdCBpbiBhIHNlcGFyYXRlIHBhdGNoIChidXQgd2l0aGlu IHRoZSBzY29wZSBvZiB0aGU8YnI+aXNzdWUpLjxicj48YnI+Jmd0OyByZXR1cm4gYm94LmV4ZWN1 dGUoLi4uKTxicj4mZ3Q7IGVuZDxicj4mZ3Q7PGJyPiZndDsgZGlmZiAtLWdpdCBhL3Rlc3QvYm94 LXRhcC9naC00MjMxLWltbXV0YWJsZS1ib3gtZXhlY3V0ZS50ZXN0Lmx1YSBiL3Rlc3QvYm94LXRh cC9naC00MjMxLWltbXV0YWJsZS1ib3gtZXhlY3V0ZS50ZXN0Lmx1YTxicj4mZ3Q7IG5ldyBmaWxl IG1vZGUgMTAwNzU1PGJyPiZndDsgaW5kZXggMDAwMDAwMDAwLi41YmRiZWM4OGY8YnI+Jmd0OyAt LS0gL2Rldi9udWxsPGJyPiZndDsgKysrIGIvdGVzdC9ib3gtdGFwL2doLTQyMzEtaW1tdXRhYmxl LWJveC1leGVjdXRlLnRlc3QubHVhPGJyPiZndDsgQEAgLTAsMCArMSwzMyBAQDxicj4mZ3Q7ICsj IS91c3IvYmluL2VudiB0YXJhbnRvb2w8YnI+Jmd0OyArbG9jYWwgdGFwID0gcmVxdWlyZSgndGFw Jyk8YnI+Jmd0OyArbG9jYWwgdGVzdCA9IHRhcC50ZXN0KCdleGVjdXRlJyk8YnI+Jmd0OyArdGVz dDpwbGFuKDMpPGJyPiZndDsgKzxicj4mZ3Q7ICstLTxicj4mZ3Q7ICstLSBnaC00MjMxOiBib3gu ZXhlY3V0ZSBzaG91bGQgYmUgaW1tdXRhYmxlIGZ1bmN0aW9uIG1lYW5pbmcgaXQnczxicj4mZ3Q7 ICstLSBhZGRyZXNzIGRvZXNuJ3QgY2hhbmdlIGFmdGVyIGZpcnN0IGJveC5jZmcgaW1wbGljaXQg aW52b2NhdGlvbjxicj48YnI+QnV0IGl0IGlzIG5vdCBzbyBldmVuIGFmdGVyIHRoZSBwYXRjaDo8 YnI+PGJyPiZuYnNwO3wgdGFyYW50b29sJmd0OyBib3guZXhlY3V0ZTxicj4mbmJzcDt8IC0tLTxi cj4mbmJzcDt8IC0gJ2Z1bmN0aW9uOiAweDQwNzRiYzMwJzxicj4mbmJzcDt8IC4uLjxicj4mbmJz cDt8IHRhcmFudG9vbCZndDsgYm94LmV4ZWN1dGUoJ1NFTEVDVCAxJyk8YnI+Jm5ic3A7fCAmbHQ7 Li4uJmd0Ozxicj4mbmJzcDt8IHRhcmFudG9vbCZndDsgYm94LmV4ZWN1dGU8YnI+Jm5ic3A7fCAt LS08YnI+Jm5ic3A7fCAtICdmdW5jdGlvbjogMHg0MTZiMjYwMCc8YnI+Jm5ic3A7fCAuLi48YnI+ PGJyPiZndDsgKy0tPGJyPiZndDsgKzxicj4mZ3Q7ICtsb2NhbCBmdW5jdGlvbiBleGVjdXRlX2lz X2ltbXV0YWJsZShleGVjdXRlLCBjbWQsIG1zZyk8YnI+Jmd0OyArIGxvY2FsIHN0YXR1cywgZXJy ID0gcGNhbGwoZnVuY3Rpb24oKTxicj4mZ3Q7ICsgZXhlY3V0ZShjbWQpPGJyPiZndDsgKyBlbmQp PGJyPjxicj5OaXQ6IENhbiBiZSB3cml0dGVuIGFzOjxicj48YnI+Jm5ic3A7fCBsb2NhbCBzdGF0 dXMsIGVyciA9IHBjYWxsKGV4ZWN1dGUsIGNtZCk8YnI+PGJyPiZndDsgKyB0ZXN0Om9rKHN0YXR1 cyBhbmQgZXJyID09IG5pbCwgbXNnKTxicj4mZ3Q7ICtlbmQ8YnI+Jmd0OyArPGJyPiZndDsgK2xv Y2FsIGJveF9leGVjdXRlX3N0dWIgPSBib3guZXhlY3V0ZTxicj4mZ3Q7ICtleGVjdXRlX2lzX2lt bXV0YWJsZShib3hfZXhlY3V0ZV9zdHViLCAiU0VMRUNUIDEiLDxicj4mZ3Q7ICsgImV4ZWN1dGUg ZG9lcyBub3Qgd29yayBwcm9wZXJseSBiZWZvcmUgYm94LmNmZyIpPGJyPjxicj5UaGlzIHdpbGwg cHJpbnQ6PGJyPjxicj5vayAtIGV4ZWN1dGUgZG9lcyBub3Qgd29yayBwcm9wZXJseSBiZWZvcmUg Ym94LmNmZzxicj48YnI+LS10aGF0IGxvb2tzIGNvdW50ZXItaW50dWl0aXZlIGZvciBtZS48YnI+ PGJyPkJUVywgaXQgbG9va3MgYXMgdGhlIHByZXBhcmF0aW9uIGNvZGUgZm9yIHRoZSB0ZXN0IHJh dGhlciB0aGFuIHRoZSB0ZXN0PGJyPml0c2VsZi4gUGVyc29uYWxseSBJIHRoaW5rIHRoYXQgc3Vj aCBjb2RlIHNob3VsZCBkbyBhc3NlcnQoKSByYXRoZXIgdGhhbjxicj5wcm9kdWNlICdvay9ub3Qg b2snIFRBUDEzIG91dHB1dC4gVGhpcyBpcyBub3QgdGhlIHN0cmljdCByZXF1aXJlbWVudCw8YnI+ aG93ZXZlci48YnI+PGJyPkNvbnNpZGVyIFsxXSwgZnJvbSB3b3JkcyAnSSB3b3VsZCBzcGxpdCB0 ZXN0IHByZXBhcmF0aW9uIC8gY2xlYW4gdXAgY29kZTxicj5mcm9tIGFjdHVhbCB0ZXN0IGNhc2Vz Jy48YnI+PGJyPlsxXTogPGEgaHJlZj0iaHR0cHM6Ly9saXN0cy50YXJhbnRvb2wub3JnL3BpcGVy bWFpbC90YXJhbnRvb2wtcGF0Y2hlcy8yMDIwLUphbnVhcnkvMDEzNTk1Lmh0bWwiIHRhcmdldD0i X2JsYW5rIj5odHRwczovL2xpc3RzLnRhcmFudG9vbC5vcmcvcGlwZXJtYWlsL3RhcmFudG9vbC1w YXRjaGVzLzIwMjAtSmFudWFyeS8wMTM1OTUuaHRtbDwvYT48YnI+PGJyPiZndDsgKzxicj4mZ3Q7 ICtsb2NhbCBib3hfZXhlY3V0ZV9hY3R1YWwgPSBib3guZXhlY3V0ZTxicj4mZ3Q7ICstLSBleHBs aWNpdCBjYWxsIHRvIGxvYWRfY2ZnPGJyPiZndDsgK2JveC5jZmd7fTxicj4mZ3Q7ICs8YnI+Jmd0 OyArLS0gY2hlY2tpbmcgdGhlIGZ1bmN0aW9uIHdhcyBub3QgcmVjb25maWd1cmVkLCBpLmUuIGFk cmVzcyBzdGF5cyB0aGUgc2FtZTxicj48YnI+VHlwbzogYWRyZXNzIC0mZ3Q7IGFkZHJlc3MuPGJy Pjxicj4mZ3Q7ICt0ZXN0OmlzKGJveF9leGVjdXRlX2FjdHVhbCwgYm94LmV4ZWN1dGUsPGJyPiZn dDsgKyAiZXhlY3V0ZSBpcyBub3QgdGhlIHNhbWUgYWZ0ZXIgYm94LmNmZyIpPGJyPiZndDsgK2V4 ZWN1dGVfaXNfaW1tdXRhYmxlKGJveF9leGVjdXRlX2FjdHVhbCw8YnI+Jmd0OyArICJDUkVBVEUg VEFCTEUgdDEgKHMxIElOVEVHRVIsIFBSSU1BUlkgS0VZIChzMSkpOyIsPGJyPiZndDsgKyAiZXhl Y3V0ZSBkb2VzIG5vdCB3b3JrIHByb3Blcmx5IGFmdGVyIGJveC5jZmciKTxicj4mZ3Q7ICs8YnI+ Jmd0OyArb3MuZXhpdCh0ZXN0OmNoZWNrKCkgYW5kIDAgb3IgMSk8YnI+PGJyPlRoZSB0ZXN0IGNh c2Ugd29ya3MgcHJvcGVybHkgKGRvZXMgbm90IGZhaWwpIG9uIGN1cnJlbnQgbWFzdGVyIHcvbyB0 aGU8YnI+Zml4LiBJIGd1ZXNzIHlvdSBpbnRlbmQgdG8gdGVzdCBib3hfZXhlY3V0ZV9zdHViIGFm dGVyIGJveC5jZmcoKS48YnI+PGJyPkJUVywgSSBzdWdnZXN0IHRvIHJ1biBhIHRlc3Qgb24gYSB0 YXJhbnRvb2wgdmVyc2lvbiBiZWZvcmUgYSBmaXggdG88YnI+dmVyaWZ5IHRoYXQgdGhlIHRlc3Qg YWN0dWFsbHkgYWJsZSB0byBjYXRjaCB0aGUgcHJvYmxlbS48YnI+PGJyPi0tLS08YnI+PGJyPmRp ZmYgLS1naXQgYS9leHRyYS9leHBvcnRzIGIvZXh0cmEvZXhwb3J0czxicj5pbmRleCA3Yjg0YTE0 NTIuLjg1OTk2MTRlZSAxMDA2NDQ8YnI+LS0tIGEvZXh0cmEvZXhwb3J0czxicj4rKysgYi9leHRy YS9leHBvcnRzPGJyPkBAIC0xMTgsNiArMTE4LDggQEAgc3dpbV9tZW1iZXJfdW5yZWY8YnI+Jm5i c3A7c3dpbV9tZW1iZXJfaXNfZHJvcHBlZDxicj4mbmJzcDtzd2ltX21lbWJlcl9pc19wYXlsb2Fk X3VwX3RvX2RhdGU8YnI+Jm5ic3A7PGJyPitib3hfaXNfY29uZmlndXJlZDxicj4rPGJyPiZuYnNw OyMgTW9kdWxlIEFQSTxicj4mbmJzcDs8YnI+Jm5ic3A7X3NheTxicj5kaWZmIC0tZ2l0IGEvc3Jj L2JveC9sdWEvbG9hZF9jZmcubHVhIGIvc3JjL2JveC9sdWEvbG9hZF9jZmcubHVhPGJyPmluZGV4 IDFmOWI0MzkyZi4uZGZmZjc3MmQ3IDEwMDY0NDxicj4tLS0gYS9zcmMvYm94L2x1YS9sb2FkX2Nm Zy5sdWE8YnI+KysrIGIvc3JjL2JveC9sdWEvbG9hZF9jZmcubHVhPGJyPkBAIC02LDYgKzYsMTIg QEAgbG9jYWwgcHJpdmF0ZSA9IHJlcXVpcmUoJ2JveC5pbnRlcm5hbCcpPGJyPiZuYnNwO2xvY2Fs IHVyaWxpYiA9IHJlcXVpcmUoJ3VyaScpPGJyPiZuYnNwO2xvY2FsIG1hdGggPSByZXF1aXJlKCdt YXRoJyk8YnI+Jm5ic3A7bG9jYWwgZmliZXIgPSByZXF1aXJlKCdmaWJlcicpPGJyPitsb2NhbCBm ZmkgPSByZXF1aXJlKCdmZmknKTxicj4rPGJyPitmZmkuY2RlZihbWzxicj4rIGJvb2w8YnI+KyBi b3hfaXNfY29uZmlndXJlZCh2b2lkKTs8YnI+K11dKTxicj4mbmJzcDs8YnI+Jm5ic3A7LS0gRnVu Y3Rpb24gZGVjb3JhdG9yIHRoYXQgaXMgdXNlZCB0byBwcmV2ZW50IGJveC5jZmcoKSBmcm9tPGJy PiZuYnNwOy0tIGJlaW5nIGNhbGxlZCBjb25jdXJyZW50bHkgYnkgZGlmZmVyZW50IGZpYmVycy48 YnI+QEAgLTUxNywxNCArNTIzLDEwIEBAIHNldG1ldGF0YWJsZShib3gsIHs8YnI+Jm5ic3A7Jm5i c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7ZW5kPGJyPiZuYnNwO30pPGJyPiZuYnNwOzxicj4t LS0gRmxhZyBuZWVkZWQgdG8ga2VlcCBpbW11dGFibGUgZnVuY3Rpb25zIGFmdGVyIGJveCByZWNv bmZpZ3VyYXRpb248YnI+LWxvY2FsIGJveF9sb2FkZWQgPSBmYWxzZTxicj4tPGJyPiZuYnNwO2xv Y2FsIGZ1bmN0aW9uIGxvYWRfY2ZnKGNmZyk8YnI+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i c3A7Y2ZnID0gdXBncmFkZV9jZmcoY2ZnLCB0cmFuc2xhdGVfY2ZnKTxicj4mbmJzcDsmbmJzcDsm bmJzcDsmbmJzcDsmbmJzcDtjZmcgPSBwcmVwYXJlX2NmZyhjZmcsIGRlZmF1bHRfY2ZnLCB0ZW1w bGF0ZV9jZmcsIG1vZGlmeV9jZmcpPGJyPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO2Fw cGx5X2RlZmF1bHRfY2ZnKGNmZywgZGVmYXVsdF9jZmcpOzxicj4tIGJveF9sb2FkZWQgPSB0cnVl PGJyPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOy0tIFNhdmUgbmV3IGJveC5jZmc8YnI+ Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Ym94LmNmZyA9IGNmZzxicj4mbmJzcDsmbmJz cDsmbmJzcDsmbmJzcDsmbmJzcDtpZiBub3QgcGNhbGwocHJpdmF0ZS5jZmdfY2hlY2spIHRoZW48 YnI+QEAgLTU2MiwyNCArNTY0LDQzIEBAIGxvY2FsIGZ1bmN0aW9uIGxvYWRfY2ZnKGNmZyk8YnI+ Jm5ic3A7ZW5kPGJyPiZuYnNwO2JveC5jZmcgPSBsb2NrZWQobG9hZF9jZmcpPGJyPiZuYnNwOzxi cj4rbG9jYWwgZnVuY3Rpb24gYm94X2lzX2NvbmZpZ3VyZWQoKTxicj4rIHJldHVybiBmZmkuQy5i b3hfaXNfY29uZmlndXJlZCgpPGJyPitlbmQ8YnI+Kzxicj4mbmJzcDstLTxicj4tLS0gVGhpcyBt YWtlcyBwb3NzaWJsZSBkbyBib3guZXhlY3V0ZSB3aXRob3V0IGNhbGxpbmcgYm94LmNmZzxicj4t LS0gbWFudWFsbHkuIFRoZSBsb2FkX2NmZyBjYWxsIG92ZXJ3cml0ZXMgZm9sbG93aW5nIHRhYmxl IGFuZDxicj4tLS0gbWV0YXRhYmxlLjxicj4rLS0gYm94LmV4ZWN1dGUgaXMgJmx0O2JveF9sb2Fk X2FuZF9leGVjdXRlJmd0OyB3aGVuIGJveCBpcyBub3QgbG9hZGVkLDxicj4rLS0gJmx0O2xib3hf ZXhlY3V0ZSZndDsgb3RoZXJ3aXNlLiBTZWUgYWxzbyAmbHQ7Ym94X2NvbmZpZ3VyZWQmZ3Q7IHZh cmlhYmxlLjxicj4mbmJzcDstLTxicj4tZnVuY3Rpb24gYm94LmV4ZWN1dGUoLi4uKTxicj4tIC0t PGJyPi0gLS0gU2F2aW5nIGJveC5leGVjdXRlIG1ldGhvZCBiZWZvcmUgZXhwbGljaXQgY2FsbHMg dG8gZWl0aGVyPGJyPi0gLS0gYm94LmV4ZWN1dGUoKSBvciBib3guY2Zne30gbGVhZHMgdG8gaW1w bGljaXQgaW52b2NhdGlvbiBvZjxicj4tIC0tIGJveC5jZmcgbm9uZXRoZWxlc3MuIFRoZSBmbGFn IGJveF9sb2FkZWQgbWFrZXMgc3VyZSBleGVjdXRlPGJyPi0gLS0gaXMgYW4gaW1tdXRhYmxlIGZ1 bmN0aW9uIG1lYW5pbmcgaXQgd29uJ3QgYmUgb3ZlcndyaXR0ZW4gYnk8YnI+LSAtLSBhbnkgZm9s bG93aW5nIGF0dGVtcHRzIHRvIHJlY29uZmlndXJlIGJveC48YnI+Ky0tICZsdDtib3hfbG9hZF9h bmRfZXhlY3V0ZSZndDsgbG9hZHMgYm94IGFuZCBjYWxscyAmbHQ7bGJveF9leGVjdXRlJmd0Oy48 YnI+Ky0tPGJyPitsb2NhbCBib3hfbG9hZF9hbmRfZXhlY3V0ZTxicj4rYm94X2xvYWRfYW5kX2V4 ZWN1dGUgPSBmdW5jdGlvbiguLi4pPGJyPisgLS0gQ29uZmlndXJlIGJveCBpZiBpdCBpcyBub3Qg Y29uZmlndXJlZCwgbm8tb3Agb3RoZXJ3aXNlIChub3Q8YnI+KyAtLSByZWNvbmZpZ3VyYXRpb24p Ljxicj4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDstLTxicj4tIGlmIG5vdCBib3hfbG9h ZGVkIHRoZW48YnI+LSBsb2FkX2NmZygpPGJyPisgLS0gV2Ugc2hvdWxkIGNoZWNrIHdoZXRoZXIg Ym94IGlzIGNvbmZpZ3VyZWQsIGJlY2F1c2UgYSB1c2VyPGJyPisgLS0gbWF5IHNhdmUgJmx0O2Jv eF9sb2FkX2FuZF9leGVjdXRlJmd0OyBmdW5jdGlvbiBiZWZvcmUgYm94IGxvYWRpbmc8YnI+KyAt LSBhbmQgY2FsbCBpdCBhZnRlcndhcmRzLjxicj4rIGlmIG5vdCBib3hfaXNfY29uZmlndXJlZCgp IHRoZW48YnI+KyBsb2NrZWQoZnVuY3Rpb24oKTxicj4rIC0tIFJlLWNoZWNrLCBiZWNhdXNlIGFm dGVyIHJlbGVhc2luZyBvZiB0aGUgbG9jayB0aGU8YnI+KyAtLSBib3ggc3RhdGUgbWF5IGJlIGNo YW5nZWQuIFdlIHNob3VsZCBjYWxsIGxvYWRfY2ZnKCk8YnI+KyAtLSBvbmx5IG9uY2UuPGJyPisg aWYgbm90IGJveF9pc19jb25maWd1cmVkKCkgdGhlbjxicj4rIGxvYWRfY2ZnKCk8YnI+KyBlbmQ8 YnI+KyBlbmQpKCk8YnI+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7ZW5kPGJyPis8YnI+ KyAtLSBBdCB0aGlzIHBvaW50IGJveCBzaG91bGQgYmUgY29uZmlndXJlZCBhbmQgYm94LmV4ZWN1 dGUoKTxicj4rIC0tIGZ1bmN0aW9uIHNob3VsZCBiZSByZXBsYWNlZCB3aXRoIGxib3hfZXhlY3V0 ZSgpLjxicj4rIGFzc2VydCh0eXBlKGJveC5jZmcpIH49ICdmdW5jdGlvbicpPGJyPisgYXNzZXJ0 KGJveC5leGVjdXRlIH49IGJveF9sb2FkX2FuZF9leGVjdXRlKTxicj4rPGJyPiZuYnNwOyZuYnNw OyZuYnNwOyZuYnNwOyZuYnNwO3JldHVybiBib3guZXhlY3V0ZSguLi4pPGJyPiZuYnNwO2VuZDxi cj4rYm94LmV4ZWN1dGUgPSBib3hfbG9hZF9hbmRfZXhlY3V0ZTxicj4mbmJzcDs8YnI+Jm5ic3A7 LS0gZ2gtODEwOjxicj4mbmJzcDstLSBoYWNrIGx1YWppdCBkZWZhdWx0IGNwYXRoPC9kaXY+PC9k aXY+PC9kaXY+PC9kaXY+PC9ibG9ja3F1b3RlPiZuYnNwOzxkaXY+Jm5ic3A7PC9kaXY+PGRpdiBk YXRhLXNpZ25hdHVyZS13aWRnZXQ9ImNvbnRhaW5lciI+PGRpdiBkYXRhLXNpZ25hdHVyZS13aWRn ZXQ9ImNvbnRlbnQiPjxkaXY+LS08YnI+TWFyaWEgS2hheWRpY2g8L2Rpdj48L2Rpdj48L2Rpdj48 ZGl2PiZuYnNwOzwvZGl2PjwvZGl2PjwvQk9EWT48L0hUTUw+Cg== ----ALT--d0088931eC94Cf064bD8603C11cBc5D51583942274--