Re: master: doc: update lisp definition docstrings for Markdown
Stas Boukarev <[email protected]> Mon, 29 Jun 2026 16:26:19 +0300
| Newsgroups | gmane.lisp.steel-bank.cvs,gmane.lisp.steel-bank.devel |
|---|---|
| Message-ID | <CAF63=10h=9Yh4HZUuvgSkUZe0oCp1mkvf_5a=ziiY5++sFxw9w@mail.gmail.com> |
VGhpcyBtYXkgbG9vayBnb29kIGluIGEgY29tcGlsZWQgZG9jdW1lbnQsIGJ1dCB3aGVuIGRvaW5n CkRFU0NSSUJFL0RPQ1VNRU5UQVRJT04gYXQgcnVudGltZSBpdCBsb29rcyB3ZWlyZC4KCk9uIE1v biwgSnVuIDI5LCAyMDI2IGF0IDM6MTnigK9QTSBtZWxpc2dsIHZpYSBTYmNsLWNvbW1pdHMKPHNi Y2wtY29tbWl0c0BsaXN0cy5zb3VyY2Vmb3JnZS5uZXQ+IHdyb3RlOgo+Cj4gVGhlIGJyYW5jaCAi bWFzdGVyIiBoYXMgYmVlbiB1cGRhdGVkIGluIFNCQ0w6Cj4gICAgICAgIHZpYSAgMzE2MjkxZTM3 MTg4OTA3NThhNTg4ODI0MTdkMjkyZGJkMWMwMDk0MiAoY29tbWl0KQo+ICAgICAgIGZyb20gIDQy NzFhMmYzNzVhZGNiYTI5NWE2MjA3YmI3MDA5MDFjOTVkOTZhYzMgKGNvbW1pdCkKPgo+IC0gTG9n IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCj4gY29tbWl0IDMxNjI5MWUzNzE4ODkwNzU4YTU4ODgyNDE3ZDI5MmRiZDFjMDA5 NDIKPiBBdXRob3I6IEdhYm9yIE1lbGlzIDxtZWdhQHJldGVzLmh1Pgo+IERhdGU6ICAgU3VuIEp1 biA3IDE5OjI0OjQ3IDIwMjYgKzAyMDAKPgo+ICAgICBkb2M6IHVwZGF0ZSBsaXNwIGRlZmluaXRp b24gZG9jc3RyaW5ncyBmb3IgTWFya2Rvd24KPgo+ICAgICBUaGlzIGlzIGEgZm9sbG93IHVwIHRv IHRoZSAiUEFYbGlrZSBkb2NzIiBjb21taXQuCj4gLS0tCj4gIGNvbnRyaWIvc2ItYWNscmVwbC9y ZXBsLmxpc3AgICAgICAgICAgICAgfCAgIDIgKy0KPiAgY29udHJpYi9zYi1ic2Qtc29ja2V0cy9p bmV0Lmxpc3AgICAgICAgICB8ICAgMiArLQo+ICBjb250cmliL3NiLWJzZC1zb2NrZXRzL2xvY2Fs Lmxpc3AgICAgICAgIHwgICAyICstCj4gIGNvbnRyaWIvc2ItYnNkLXNvY2tldHMvbmFtZS1zZXJ2 aWNlLmxpc3AgfCAgIDYgKy0KPiAgY29udHJpYi9zYi1ic2Qtc29ja2V0cy9wcm90b2NvbC5saXNw ICAgICB8ICAyMyArKy0KPiAgY29udHJpYi9zYi1ic2Qtc29ja2V0cy9zb2Nrb3B0Lmxpc3AgICAg ICB8ICAgOSArLQo+ICBjb250cmliL3NiLWNsdGwyL2Vudi5saXNwICAgICAgICAgICAgICAgIHwg MTI4ICsrKysrKystLS0tLS0tLQo+ICBjb250cmliL3NiLWNvbmN1cnJlbmN5L2ZybG9jay5saXNw ICAgICAgIHwgIDU2ICsrKy0tLS0KPiAgY29udHJpYi9zYi1jb25jdXJyZW5jeS9tYWlsYm94Lmxp c3AgICAgICB8ICAxNiArLQo+ICBjb250cmliL3NiLWNvdmVyL2dlbmh0bWwubGlzcCAgICAgICAg ICAgIHwgIDEwICstCj4gIGNvbnRyaWIvc2ItaW50cm9zcGVjdC9pbnRyb3NwZWN0Lmxpc3AgICAg fCAgIDYgKy0KPiAgY29udHJpYi9zYi1tYW51YWwvZG9jL2JleW9uZC1hbnNpLmxpc3AgICB8ICAg MSArCj4gIGNvbnRyaWIvc2ItbWFudWFsL2RvYy9jb21waWxlci5saXNwICAgICAgfCAgMTAgKy0K PiAgY29udHJpYi9zYi1tYW51YWwvZG9jL2ZmaS5saXNwICAgICAgICAgICB8ICAgMiArLQo+ICBj b250cmliL3NiLW1hbnVhbC9kb2Mvc2JjbC5saXNwICAgICAgICAgIHwgIDExICsrCj4gIGNvbnRy aWIvc2ItbWQ1L21kNS5saXNwICAgICAgICAgICAgICAgICAgfCAgIDQgKy0KPiAgY29udHJpYi9z Yi1wb3NpeC9pbnRlcmZhY2UubGlzcCAgICAgICAgICB8ICAgNCArLQo+ICBjb250cmliL3NiLXBv c2l4L21hY3Jvcy5saXNwICAgICAgICAgICAgIHwgIDE0ICstCj4gIGNvbnRyaWIvc2Itc3Byb2Yv Y2FsbC1jb3VudGluZy5saXNwICAgICAgfCAgIDQgKy0KPiAgY29udHJpYi9zYi1zcHJvZi9pbnRl cmZhY2UubGlzcCAgICAgICAgICB8IDEwMCArKysrKysrLS0tLS0KPiAgY29udHJpYi9zYi1zcHJv Zi9yZXBvcnQubGlzcCAgICAgICAgICAgICB8ICAzOCArKystLQo+ICBzcmMvY29kZS9hbGllbi1j YWxsYmFjay5saXNwICAgICAgICAgICAgIHwgICA0ICstCj4gIHNyYy9jb2RlL2FycmF5Lmxpc3Ag ICAgICAgICAgICAgICAgICAgICAgfCAgIDYgKy0KPiAgc3JjL2NvZGUvYmFycmllci5saXNwICAg ICAgICAgICAgICAgICAgICB8ICAzNyArKy0tLQo+ICBzcmMvY29kZS9jb2xkLWluaXQubGlzcCAg ICAgICAgICAgICAgICAgIHwgIDEwICstCj4gIHNyYy9jb2RlL2Nyb3NzLWVhcmx5Lmxpc3AgICAg ICAgICAgICAgICAgfCAgIDcgKy0KPiAgc3JjL2NvZGUvZGVidWcubGlzcCAgICAgICAgICAgICAg ICAgICAgICB8ICAyNSArLS0KPiAgc3JjL2NvZGUvZGVmcGFja2FnZS5saXNwICAgICAgICAgICAg ICAgICB8ICAgNiArLQo+ICBzcmMvY29kZS9maWxlc3lzLmxpc3AgICAgICAgICAgICAgICAgICAg IHwgICA0ICstCj4gIHNyYy9jb2RlL2ZvcmVpZ24tbG9hZC5saXNwICAgICAgICAgICAgICAgfCAg IDggKy0KPiAgc3JjL2NvZGUvZ2MubGlzcCAgICAgICAgICAgICAgICAgICAgICAgICB8ICAxMiAr LQo+ICBzcmMvY29kZS9nbG9iYWxzLmxpc3AgICAgICAgICAgICAgICAgICAgIHwgICA0ICstCj4g IHNyYy9jb2RlL21hY3Jvcy5saXNwICAgICAgICAgICAgICAgICAgICAgfCAxMDEgKysrKysrKy0t LS0tCj4gIHNyYy9jb2RlL21pc2MtYWxpZW5zLmxpc3AgICAgICAgICAgICAgICAgfCAgIDggKy0K PiAgc3JjL2NvZGUvbW9kdWxlLmxpc3AgICAgICAgICAgICAgICAgICAgICB8ICAgMiArLQo+ICBz cmMvY29kZS9udHJhY2UubGlzcCAgICAgICAgICAgICAgICAgICAgIHwgIDI5ICsrLS0KPiAgc3Jj L2NvZGUvcHJpbnQubGlzcCAgICAgICAgICAgICAgICAgICAgICB8ICAgMiArLQo+ICBzcmMvY29k ZS9wcm9maWxlLmxpc3AgICAgICAgICAgICAgICAgICAgIHwgICA0ICstCj4gIHNyYy9jb2RlL3J1 bi1wcm9ncmFtLmxpc3AgICAgICAgICAgICAgICAgfCAgMzIgKystLQo+ICBzcmMvY29kZS9zYXZl Lmxpc3AgICAgICAgICAgICAgICAgICAgICAgIHwgIDMyICsrLS0KPiAgc3JjL2NvZGUvc3R1YnMu bGlzcCAgICAgICAgICAgICAgICAgICAgICB8ICAgOSArCj4gIHNyYy9jb2RlL3RhcmdldC1hbGll bmV2YWwubGlzcCAgICAgICAgICAgfCAyNzIgKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0t LQo+ICBzcmMvY29kZS90YXJnZXQtZXJyb3IubGlzcCAgICAgICAgICAgICAgIHwgICA0ICsKPiAg c3JjL2NvZGUvdGFyZ2V0LWV4dGVuc2lvbnMubGlzcCAgICAgICAgICB8ICAgMiArLQo+ICBzcmMv Y29kZS90YXJnZXQtaGFzaC10YWJsZS5saXNwICAgICAgICAgIHwgICA0ICstCj4gIHNyYy9jb2Rl L3RhcmdldC1taXNjLmxpc3AgICAgICAgICAgICAgICAgfCAgIDggKy0KPiAgc3JjL2NvZGUvdGFy Z2V0LXBhY2thZ2UubGlzcCAgICAgICAgICAgICB8ICAxNCArLQo+ICBzcmMvY29kZS90YXJnZXQt cmFuZG9tLmxpc3AgICAgICAgICAgICAgIHwgICAzICsKPiAgc3JjL2NvZGUvdGFyZ2V0LXRocmVh ZC5saXNwICAgICAgICAgICAgICB8IDE3MyArKysrKysrKysrLS0tLS0tLS0tLQo+ICBzcmMvY29k ZS90YXJnZXQtdW5pY29kZS5saXNwICAgICAgICAgICAgIHwgIDcwICsrKystLS0tCj4gIHNyYy9j b2RlL3RocmVhZC5saXNwICAgICAgICAgICAgICAgICAgICAgfCAgMTIgKy0KPiAgc3JjL2NvZGUv dGltZXIubGlzcCAgICAgICAgICAgICAgICAgICAgICB8ICAxNiArLQo+ICBzcmMvY29kZS90b3Bs ZXZlbC5saXNwICAgICAgICAgICAgICAgICAgIHwgICA5ICsKPiAgc3JjL2NvZGUvdHJhY2Vyb290 Lmxpc3AgICAgICAgICAgICAgICAgICB8ICAgNCArLQo+ICBzcmMvY29kZS91bml4Lmxpc3AgICAg ICAgICAgICAgICAgICAgICAgIHwgICA2ICstCj4gIHNyYy9jb21waWxlci9nZW5lcmljL2dlbmVz aXMubGlzcCAgICAgICAgfCAgIDIgKy0KPiAgc3JjL2NvbXBpbGVyL21hY3Jvcy5saXNwICAgICAg ICAgICAgICAgICB8ICAxMCArLQo+ICBzcmMvY29tcGlsZXIvbWFpbi5saXNwICAgICAgICAgICAg ICAgICAgIHwgIDM4ICsrKy0tCj4gIHNyYy9wY2wvZ3JheS1zdHJlYW1zLmxpc3AgICAgICAgICAg ICAgICAgfCAgMTMgKy0KPiAgc3JjL3BjbC9zZXF1ZW5jZS5saXNwICAgICAgICAgICAgICAgICAg ICB8ICAxNCArLQo+ICA2MCBmaWxlcyBjaGFuZ2VkLCA4MzkgaW5zZXJ0aW9ucygrKSwgNjI1IGRl bGV0aW9ucygtKQo+Cj4gZGlmZiAtLWdpdCBhL2NvbnRyaWIvc2ItYWNscmVwbC9yZXBsLmxpc3Ag Yi9jb250cmliL3NiLWFjbHJlcGwvcmVwbC5saXNwCj4gaW5kZXggZjI1MTI5OTQ0Li45M2FkMWI1 ZTkgMTAwNjQ0Cj4gLS0tIGEvY29udHJpYi9zYi1hY2xyZXBsL3JlcGwubGlzcAo+ICsrKyBiL2Nv bnRyaWIvc2ItYWNscmVwbC9yZXBsLmxpc3AKPiBAQCAtMzMsNyArMzMsNyBAQAo+ICAoZGVmcGFy YW1ldGVyICpwcm9tcHQqICMuKmRlZmF1bHQtcHJvbXB0Kgo+ICAgICJUaGUgY3VycmVudCBwcm9t cHQgc3RyaW5nIG9yIGZvcm1hdHRlciBmdW5jdGlvbi4iKQo+ICAoZGVmcGFyYW1ldGVyICp1c2Ut c2hvcnQtcGFja2FnZS1uYW1lKiB0Cj4gLSAgIndoZW4gVCwgdXNlIHRoZSBzaG9ydG5lc3QgcGFj a2FnZSBuaWNrbmFtZSBpbiBhIHByb21wdCIpCj4gKyAgIldoZW4gVCwgdXNlIHRoZSBzaG9ydG5l c3QgcGFja2FnZSBuaWNrbmFtZSBpbiBhIHByb21wdCIpCj4gIChkZWZwYXJhbWV0ZXIgKmRpci1z dGFjayogbmlsCj4gICAgIlRoZSB0b3AtbGV2ZWwgZGlyZWN0b3J5IHN0YWNrIikKPiAgKGRlZnBh cmFtZXRlciAqY29tbWFuZC1jaGFyKiAjXDoKPiBkaWZmIC0tZ2l0IGEvY29udHJpYi9zYi1ic2Qt c29ja2V0cy9pbmV0Lmxpc3AgYi9jb250cmliL3NiLWJzZC1zb2NrZXRzL2luZXQubGlzcAo+IGlu ZGV4IDY4MDYzZjkwNy4uZTVlNjE5YzU4IDEwMDY0NAo+IC0tLSBhL2NvbnRyaWIvc2ItYnNkLXNv Y2tldHMvaW5ldC5saXNwCj4gKysrIGIvY29udHJpYi9zYi1ic2Qtc29ja2V0cy9pbmV0Lmxpc3AK PiBAQCAtMjIsNyArMjIsNyBAQAo+ICA7OzsgZ2V0cHJvdG9ieW5hbWUgaWYgaXQncyBhdmFpbGFi bGUuCj4gIChkZWZ1biBnZXQtcHJvdG9jb2wtYnktbmFtZSAobmFtZSkKPiAgICAiR2l2ZW4gYSBw cm90b2NvbCBuYW1lLCByZXR1cm4gdGhlIHByb3RvY29sIG51bWJlciwgdGhlIHByb3RvY29sIG5h bWUsIGFuZAo+IC1hIGxpc3Qgb2YgcHJvdG9jb2wgYWxpYXNlcyIKPiArYSBsaXN0IG9mIHByb3Rv Y29sIGFsaWFzZXMuIgo+ICAgIChsZXQgKChyZXN1bHQgKGNkciAoaWYgKGtleXdvcmRwIG5hbWUp Cj4gICAgICAgICAgICAgICAgICAgICAgICAgICAoYXNzb2MgbmFtZSAqcHJvdG9jb2xzKikKPiAg ICAgICAgICAgICAgICAgICAgICAgICAgIChhc3NvYyBuYW1lICpwcm90b2NvbHMqIDp0ZXN0ICMn c3RyaW5nLWVxdWFsKSkpKSkKPiBkaWZmIC0tZ2l0IGEvY29udHJpYi9zYi1ic2Qtc29ja2V0cy9s b2NhbC5saXNwIGIvY29udHJpYi9zYi1ic2Qtc29ja2V0cy9sb2NhbC5saXNwCj4gaW5kZXggYmI1 NTgwOTI3Li5jODJkODhiMzggMTAwNjQ0Cj4gLS0tIGEvY29udHJpYi9zYi1ic2Qtc29ja2V0cy9s b2NhbC5saXNwCj4gKysrIGIvY29udHJpYi9zYi1ic2Qtc29ja2V0cy9sb2NhbC5saXNwCj4gQEAg LTcsNyArNyw3IEBACj4gICAgKChmYW1pbHkgOmluaXRmb3JtIHNvY2tpbnQ6OmFmLWxvY2FsKSkK PiAgICAoOmRvY3VtZW50YXRpb24KPiAgICAgIkNsYXNzIHJlcHJlc2VudGluZyBsb2NhbCBkb21h aW4gKGBcXFxcQUZfTE9DQUxgKSBzb2NrZXRzLAo+IC1hbHNvIGtub3duIGFzIHVuaXgtZG9tYWlu IHNvY2tldHMuIikpCj4gK2Fsc28ga25vd24gYXMgVW5peC1kb21haW4gc29ja2V0cy4iKSkKPgo+ ICAoZGVmbWV0aG9kIHNvY2tldC1uYW1lc3RyaW5nICgoc29ja2V0IGxvY2FsLXNvY2tldCkpCj4g ICAgKGlnbm9yZS1lcnJvcnMgKHNvY2tldC1uYW1lIHNvY2tldCkpKQo+IGRpZmYgLS1naXQgYS9j b250cmliL3NiLWJzZC1zb2NrZXRzL25hbWUtc2VydmljZS5saXNwIGIvY29udHJpYi9zYi1ic2Qt c29ja2V0cy9uYW1lLXNlcnZpY2UubGlzcAo+IGluZGV4IDU5YjYzNDdiYy4uMDU0MTMyYTFkIDEw MDY0NAo+IC0tLSBhL2NvbnRyaWIvc2ItYnNkLXNvY2tldHMvbmFtZS1zZXJ2aWNlLmxpc3AKPiAr KysgYi9jb250cmliL3NiLWJzZC1zb2NrZXRzL25hbWUtc2VydmljZS5saXNwCj4gQEAgLTY3LDE0 ICs2NywxNCBAQAo+ICAgIChkZWZ1biBnZXQtaG9zdC1ieS1uYW1lIChob3N0LW5hbWUpCj4gICAg ICAiUmV0dXJucyBhIEhPU1QtRU5UIGluc3RhbmNlIGZvciBIT1NULU5BTUUgb3Igc2lnbmFscyBh IE5BTUUtU0VSVklDRS1FUlJPUi4KPiAgSE9TVC1OQU1FIG1heSBhbHNvIGJlIGFuIElQIGFkZHJl c3MgaW4gZG90dGVkIHF1YWQgbm90YXRpb24gb3Igc29tZSBvdGhlcgo+IC13ZWlyZCBzdHVmZiAt IHNlZSBnZXRob3N0YnluYW1lKDMpIGZvciB0aGUgZGV0YWlscy4iCj4gK3dlaXJkIHN0dWZmIC0t IHNlZSBgZ2V0aG9zdGJ5bmFtZSgzKWAgZm9yIHRoZSBkZXRhaWxzLiIKPiAgICAgIChzYi1pbnQ6 d2l0aC1zeXN0ZW0tbXV0ZXggKCoqZ2V0aG9zdGJ5LWxvY2sqKiA6YWxsb3ctd2l0aC1pbnRlcnJ1 cHRzIHQpCj4gICAgICAgIChtYWtlLWhvc3QtZW50IChzb2NraW50OjpnZXRob3N0YnluYW1lIGhv c3QtbmFtZSkpKSkKPgo+ICAgIChkZWZ1biBnZXQtaG9zdC1ieS1hZGRyZXNzIChhZGRyZXNzKQo+ ICAgICAgIlJldHVybnMgYSBIT1NULUVOVCBpbnN0YW5jZSBmb3IgQUREUkVTUywgd2hpY2ggc2hv dWxkIGJlIGEgdmVjdG9yIG9mCj4gLSAoaW50ZWdlciAwIDI1NSksIG9yIHNpZ25hbHMgYSBOQU1F LVNFUlZJQ0UtRVJST1IuIFNlZSBnZXRob3N0YnlhZGRyKDMpCj4gLSBmb3IgZGV0YWlscy4iCj4g KyBgKElOVEVHRVIgMCAyNTUpYCwgb3Igc2lnbmFscyBhIE5BTUUtU0VSVklDRS1FUlJPUi4gU2Vl Cj4gKyBgZ2V0aG9zdGJ5YWRkcigzKWAgZm9yIGRldGFpbHMuIgo+ICAgICAgKHNiLWludDp3aXRo LXN5c3RlbS1tdXRleCAoKipnZXRob3N0YnktbG9jayoqIDphbGxvdy13aXRoLWludGVycnVwdHMg dCkKPiAgICAgICAgKHNvY2tpbnQ6OndpdGgtaW4tYWRkciBwYWNrZWQtYWRkciAoKQo+ICAgICAg ICAgIChsZXQgKChhZGRyLXZlY3RvciAoY29lcmNlIGFkZHJlc3MgJ3ZlY3RvcikpKQo+IGRpZmYg LS1naXQgYS9jb250cmliL3NiLWJzZC1zb2NrZXRzL3Byb3RvY29sLmxpc3AgYi9jb250cmliL3Ni LWJzZC1zb2NrZXRzL3Byb3RvY29sLmxpc3AKPiBpbmRleCAyMDJjODAyYzAuLjBjN2VhN2M4MCAx MDA2NDQKPiAtLS0gYS9jb250cmliL3NiLWJzZC1zb2NrZXRzL3Byb3RvY29sLmxpc3AKPiArKysg Yi9jb250cmliL3NiLWJzZC1zb2NrZXRzL3Byb3RvY29sLmxpc3AKPiBAQCAtNTgsMjMgKzU4LDIy IEBAIHBlZXIuIikpCj4gICAgICJDbG9zZSBTT0NLRVQsIHVubGVzcyBpdCB3YXMgYWxyZWFkeSBj bG9zZWQuCj4KPiAgSWYgU09DS0VULU1BS0UtU1RSRUFNIGhhcyBiZWVuIGNhbGxlZCwgY2FsbHMg Q0xPU0UgdXNpbmcgQUJPUlQgb24gdGhhdAo+IC1zdHJlYW0uICBPdGhlcndpc2UgY2xvc2VzIHRo ZSBzb2NrZXQgZmlsZSBkZXNjcmlwdG9yIHVzaW5nCj4gLWNsb3NlKDIpLiIpKQo+ICtzdHJlYW0u IE90aGVyd2lzZSBjbG9zZXMgdGhlIHNvY2tldCBmaWxlIGRlc2NyaXB0b3IgdXNpbmcgYGNsb3Nl KDIpYC4iKSkKPgo+ICAoZGVmZ2VuZXJpYyBzb2NrZXQtYmluZCAoc29ja2V0ICZyZXN0IGFkZHJl c3MpCj4gICAgKDpkb2N1bWVudGF0aW9uCj4gICAgICJCaW5kIFNPQ0tFVCB0byBBRERSRVNTLCB3 aGljaCBtYXkgdmFyeSBhY2NvcmRpbmcgdG8gc29ja2V0IGZhbWlseS4KPiAtRm9yIHRoZSBJTkVU IGZhbWlseSwgcGFzcyBBRERSRVNTIGFuZCBQT1JUIGFzIHR3byBhcmd1bWVudHM7IGZvciBGSUxF Cj4gLWFkZHJlc3MgZmFtaWx5IHNvY2tldHMsIHBhc3MgdGhlIGZpbGVuYW1lIHN0cmluZy4gIFNl ZSBhbHNvIGJpbmQoMikiKSkKPiArRm9yIHRoZSBJTkVUIGZhbWlseSwgcGFzcyBBRERSRVNTIGFu ZCBQT1JUIGFzIHR3byBhcmd1bWVudHM7IGZvciBsb2NhbAo+ICthZGRyZXNzIGZhbWlseSBzb2Nr ZXRzLCBwYXNzIHRoZSBmaWxlbmFtZSBzdHJpbmcuIFNlZSBhbHNvIGBiaW5kKDIpYC4iKSkKPgo+ ICAoZGVmZ2VuZXJpYyBzb2NrZXQtYWNjZXB0IChzb2NrZXQpCj4gICAgKDpkb2N1bWVudGF0aW9u Cj4gLSAgICJQZXJmb3JtIHRoZSBhY2NlcHQoMikgY2FsbCwgcmV0dXJuaW5nIGEgbmV3bHktY3Jl YXRlZCBjb25uZWN0ZWQKPiArICAgIlBlcmZvcm0gdGhlIGBhY2NlcHQoMilgIGNhbGwsIHJldHVy bmluZyBhIG5ld2x5LWNyZWF0ZWQgY29ubmVjdGVkCj4gIHNvY2tldCBhbmQgdGhlIHBlZXIgYWRk cmVzcyBhcyBtdWx0aXBsZSB2YWx1ZXMiKSkKPgo+ICAoZGVmZ2VuZXJpYyBzb2NrZXQtY29ubmVj dCAoc29ja2V0ICZyZXN0IGFkZHJlc3MpCj4gICAgKDpkb2N1bWVudGF0aW9uCj4gLSAgICJQZXJm b3JtIHRoZSBjb25uZWN0KDIpIGNhbGwgdG8gY29ubmVjdCBTT0NLRVQgdG8gYSByZW1vdGUgUEVF Ui4KPiArICAgIlBlcmZvcm0gdGhlIGBjb25uZWN0KDIpYCBjYWxsIHRvIGNvbm5lY3QgU09DS0VU IHRvIGEgcmVtb3RlIFBFRVIuCj4gIE5vIHVzZWZ1bCByZXR1cm4gdmFsdWUuIikpCj4KPiAgKGRl ZmdlbmVyaWMgc29ja2V0LXJlY2VpdmUgKHNvY2tldCBidWZmZXIgbGVuZ3RoCj4gQEAgLTgyLDEz ICs4MSwxMyBAQCBObyB1c2VmdWwgcmV0dXJuIHZhbHVlLiIpKQo+ICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgb29iIHBlZWsgd2FpdGFsbCBkb250d2FpdCBlbGVtZW50LXR5cGUpCj4gICAg KDpkb2N1bWVudGF0aW9uCj4gICAgICJSZWFkIExFTkdUSCBvY3RldHMgZnJvbSBTT0NLRVQgaW50 byBCVUZGRVIgKG9yIGEgZnJlc2hseS1jb25zZWQKPiAtYnVmZmVyIGlmIE5JTCksIHVzaW5nIHJl Y3Zmcm9tKDIpLiBJZiBMRU5HVEggaXMgTklMLCB0aGUgbGVuZ3RoIG9mCj4gK2J1ZmZlciBpZiBO SUwpLCB1c2luZyBgcmVjdmZyb20oMilgLiBJZiBMRU5HVEggaXMgTklMLCB0aGUgbGVuZ3RoIG9m Cj4gIEJVRkZFUiBpcyB1c2VkLCBzbyBhdCBsZWFzdCBvbmUgb2YgdGhlc2UgdHdvIGFyZ3VtZW50 cyBtdXN0IGJlCj4gIG5vbi1OSUwuIElmIEJVRkZFUiBpcyBzdXBwbGllZCwgaXQgaGFkIGJldHRl ciBiZSBvZiBhbiBlbGVtZW50IHR5cGUKPiAgb25lIG9jdGV0IHdpZGUuIFJldHVybnMgdGhlIGJ1 ZmZlciwgaXRzIGxlbmd0aCwgYW5kIHRoZSBhZGRyZXNzIG9mIHRoZQo+ICBwZWVyIHRoYXQgc2Vu dCBpdCwgYXMgbXVsdGlwbGUgdmFsdWVzLiBPbiBkYXRhZ3JhbSBzb2NrZXRzLCBzZXRzCj4gLU1T R19UUlVOQyBzbyB0aGF0IHRoZSBhY3R1YWwgcGFja2V0IGxlbmd0aCBpcyByZXR1cm5lZCBldmVu IGlmIHRoZQo+IC1idWZmZXIgd2FzIHRvbyBzbWFsbC4iKSkKPiArYFxcXFxNU0dfVFJVTkNgIHNv IHRoYXQgdGhlIGFjdHVhbCBwYWNrZXQgbGVuZ3RoIGlzIHJldHVybmVkIGV2ZW4gaWYKPiArdGhl IGJ1ZmZlciB3YXMgdG9vIHNtYWxsLiIpKQo+Cj4gIChkZWZnZW5lcmljIHNvY2tldC1zZW5kIChz b2NrZXQgYnVmZmVyIGxlbmd0aAo+ICAgICAgICAgICAgICAgICAgICAgICAgICAgJmtleQo+IEBA IC05NywxMiArOTYsMTIgQEAgYnVmZmVyIHdhcyB0b28gc21hbGwuIikpCj4gICAgICAgICAgICAg ICAgICAgICAgICAgICBvb2IgZW9yIGRvbnRyb3V0ZSBkb250d2FpdCBub3NpZ25hbAo+ICAgICAg ICAgICAgICAgICAgICAgICAgICAgIytsaW51eCBjb25maXJtICMrbGludXggbW9yZSkKPiAgICAo OmRvY3VtZW50YXRpb24KPiAtICAgIlNlbmQgTEVOR1RIIG9jdGV0cyBmcm9tIEJVRkZFUiBpbnRv IFNPQ0tFVCwgdXNpbmcgc2VuZHRvKDIpLiBJZgo+ICsgICAiU2VuZCBMRU5HVEggb2N0ZXRzIGZy b20gQlVGRkVSIGludG8gU09DS0VULCB1c2luZyBgc2VuZHRvKDIpYC4gSWYKPiAgQlVGRkVSIGlz IGEgc3RyaW5nLCBpdCB3aWxsIGNvbnZlcnRlZCB0byBvY3RldHMgYWNjb3JkaW5nIHRvCj4gIEVY VEVSTkFMLUZPUk1BVC4gSWYgTEVOR1RIIGlzIE5JTCwgdGhlIGxlbmd0aCBvZiB0aGUgb2N0ZXQg YnVmZmVyIGlzCj4gIHVzZWQuIFRoZSBmb3JtYXQgb2YgQUREUkVTUyBkZXBlbmRzIG9uIHRoZSBz b2NrZXQgdHlwZSAoZm9yIGV4YW1wbGUKPiAgZm9yIElORVQgZG9tYWluIHNvY2tldHMgaXQgd291 bGQgYmUgYSBsaXN0IG9mIGFuIElQIGFkZHJlc3MgYW5kIGEKPiAtcG9ydCkuIElmIG5vIHNvY2tl dCBhZGRyZXNzIGlzIHByb3ZpZGVkLCBzZW5kKDIpIHdpbGwgYmUgY2FsbGVkCj4gK3BvcnQpLiBJ ZiBubyBzb2NrZXQgYWRkcmVzcyBpcyBwcm92aWRlZCwgYHNlbmQoMilgIHdpbGwgYmUgY2FsbGVk Cj4gIGluc3RlYWQuIFJldHVybnMgdGhlIG51bWJlciBvZiBvY3RldHMgd3JpdHRlbi4iKSkKPgo+ ICAoZGVmZ2VuZXJpYyBzb2NrZXQtbGlzdGVuIChzb2NrZXQgYmFja2xvZykKPiBAQCAtMTEwLDcg KzEwOSw3IEBAIGluc3RlYWQuIFJldHVybnMgdGhlIG51bWJlciBvZiBvY3RldHMgd3JpdHRlbi4i KSkKPiAgICAgIk1hcmsgU09DS0VUIGFzIHdpbGxpbmcgdG8gYWNjZXB0IGluY29taW5nIGNvbm5l Y3Rpb25zLiAgVGhlCj4gIGludGVnZXIgQkFDS0xPRyBkZWZpbmVzIHRoZSBtYXhpbXVtIGxlbmd0 aCB0aGF0IHRoZSBxdWV1ZSBvZiBwZW5kaW5nCj4gIGNvbm5lY3Rpb25zIG1heSBncm93IHRvIGJl Zm9yZSBuZXcgY29ubmVjdGlvbiBhdHRlbXB0cyBhcmUgcmVmdXNlZC4KPiAtU2VlIGFsc28gbGlz dGVuKDIpIikpCj4gK1NlZSBhbHNvIGBsaXN0ZW4oMilgLiIpKQo+Cj4gIChkZWZnZW5lcmljIHNv Y2tldC1zaHV0ZG93biAoc29ja2V0ICZrZXkgZGlyZWN0aW9uKQo+ICAgICg6ZG9jdW1lbnRhdGlv bgo+IGRpZmYgLS1naXQgYS9jb250cmliL3NiLWJzZC1zb2NrZXRzL3NvY2tvcHQubGlzcCBiL2Nv bnRyaWIvc2ItYnNkLXNvY2tldHMvc29ja29wdC5saXNwCj4gaW5kZXggYWJkNWFlYTBiLi5iYzY5 NmJkODcgMTAwNjQ0Cj4gLS0tIGEvY29udHJpYi9zYi1ic2Qtc29ja2V0cy9zb2Nrb3B0Lmxpc3AK PiArKysgYi9jb250cmliL3NiLWJzZC1zb2NrZXRzL3NvY2tvcHQubGlzcAo+IEBAIC01Miw3ICs1 MiwxMCBAQCBDb2RlIGZvciBvcHRpb25zIHRoYXQgbm90IGV2ZXJ5IHN5c3RlbSBoYXMgc2hvdWxk IGJlIGNvbmRpdGlvbmFsaXNlZDoKPiAgICAgIGAocHJvZ24KPiAgICAgICAgIChleHBvcnQgJyxs aXNwLW5hbWUpCj4gICAgICAgICAoZGVmdW4gLGxpc3AtbmFtZSAoc29ja2V0KQo+IC0gICAgICAg ICAsQCh3aGVuIGRvY3VtZW50YXRpb24gKGxpc3QgKGNvbmNhdGVuYXRlICdzdHJpbmcgZG9jdW1l bnRhdGlvbiAiICIgaW5mbykpKQo+ICsgICAgICAgICAsQCh3aGVuIGRvY3VtZW50YXRpb24KPiAr ICAgICAgICAgICAgIChsaXN0IChpZiAocGx1c3AgKGxlbmd0aCBpbmZvKSkKPiArICAgICAgICAg ICAgICAgICAgICAgICAoZm9ybWF0IG5pbCAifkEgfkEiIGRvY3VtZW50YXRpb24gaW5mbykKPiAr ICAgICAgICAgICAgICAgICAgICAgICBkb2N1bWVudGF0aW9uKSkpCj4gICAgICAgICAgICxAKGlm IHN1cHBvcnRlZHAKPiAgICAgICAgICAgICAgICAgYCgoc2ItYWxpZW46d2l0aC1hbGllbiAoKHNp emUgc2ItYWxpZW46aW50KQo+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAoYnVmZmVyICxidWZmZXItdHlwZSkpCj4gQEAgLTEzNSw5ICsxMzgsOSBAQCBDb2RlIGZvciBv cHRpb25zIHRoYXQgbm90IGV2ZXJ5IHN5c3RlbSBoYXMgc2hvdWxkIGJlIGNvbmRpdGlvbmFsaXNl ZDoKPgo+ICAoZGVmbWFjcm8gZGVmaW5lLXNvY2tldC1vcHRpb24tYm9vbCAobmFtZSBsZXZlbCBj LW5hbWUgJm9wdGlvbmFsIGZlYXR1cmVzIChpbmZvICIiKSkKPiAgICBgKGRlZmluZS1zb2NrZXQt b3B0aW9uICxuYW1lCj4gLSAgICAsKGZvcm1hdCBuaWwgIn5APFJldHVybiB0aGUgdmFsdWUgb2Yg dGhlIH5BIHNvY2tldCBvcHRpb24gZm9yIFNPQ0tFVC4gfgo+ICsgICAgICAgLChmb3JtYXQgbmls ICJ+QDxSZXR1cm4gdGhlIHZhbHVlIG9mIHRoZSB+QSBzb2NrZXQgb3B0aW9uIGZvciBTT0NLRVQu IH4KPiAgICAgICAgICAgICAgICAgICBUaGlzIGNhbiBhbHNvIGJlIHVwZGF0ZWQgd2l0aCBTRVRG Ln46QD4iCj4gLSAgICAgICAgICAgICAoc3ltYm9sLW5hbWUgYy1uYW1lKSkKPiArICAgICAgICAg ICAgICAgIChzeW1ib2wtbmFtZSBjLW5hbWUpKQo+ICAgICAgLGxldmVsICxjLW5hbWUKPiAgICAg IHNiLWFsaWVuOmludCBib29sLXRvLWZvcmVpZ24taW50IGZvcmVpZ24taW50LXRvLWJvb2wgc2It YWxpZW46YWRkcgo+ICAgICAgLGZlYXR1cmVzICxpbmZvKSkKPiBkaWZmIC0tZ2l0IGEvY29udHJp Yi9zYi1jbHRsMi9lbnYubGlzcCBiL2NvbnRyaWIvc2ItY2x0bDIvZW52Lmxpc3AKPiBpbmRleCBl MTNjN2M5ZDcuLjFmZjQzNDY5YiAxMDA2NDQKPiAtLS0gYS9jb250cmliL3NiLWNsdGwyL2Vudi5s aXNwCj4gKysrIGIvY29udHJpYi9zYi1jbHRsMi9lbnYubGlzcAo+IEBAIC0xODAsMTggKzE4MCwx NCBAQCBOb3RlIHRoYXQgdGhlIGdsb2JhbCBmdW5jdGlvbiBiaW5kaW5nIG1heSBkaWZmZXIgZnJv bSB0aGUgbG9jYWwgb25lLgo+ICBUaGlzIGZ1bmN0aW9uIHJldHVybnMgdGhyZWUgdmFsdWVzLiBU aGUgZmlyc3QgaW5kaWNhdGVzIHRoZSB0eXBlIG9mCj4gIGZ1bmN0aW9uIGRlZmluaXRpb24gb3Ig YmluZGluZzoKPgo+IC0gIE5JTAo+IC0gICAgVGhlcmUgaXMgbm8gYXBwYXJlbnQgZGVmaW5pdGlv biBmb3IgTkFNRS4KPiArLSBOSUw6IFRoZXJlIGlzIG5vIGFwcGFyZW50IGRlZmluaXRpb24gZm9y IE5BTUUuCj4KPiAtICA6RlVOQ1RJT04KPiAtICAgIE5BTUUgcmVmZXJzIHRvIGEgZnVuY3Rpb24u Cj4gKy0gOkZVTkNUSU9OOiBOQU1FIHJlZmVycyB0byBhIGZ1bmN0aW9uLgo+Cj4gLSAgOk1BQ1JP Cj4gLSAgICBOQU1FIHJlZmVycyB0byBhIG1hY3JvLgo+ICstIDpNQUNSTzogTkFNRSByZWZlcnMg dG8gYSBtYWNyby4KPgo+IC0gIDpTUEVDSUFMLUZPUk0KPiAtICAgIE5BTUUgcmVmZXJzIHRvIGEg c3BlY2lhbCBvcGVyYXRvci4gSWYgdGhlIG5hbWUgcmVmZXJzIHRvIGJvdGggYQo+IC0gICAgbWFj cm8gYW5kIGEgc3BlY2lhbCBvcGVyYXRvciwgdGhlIG1hY3JvIHRha2VzIHByZWNlZGVuY2UuCj4g Ky0gOlNQRUNJQUwtRk9STTogTkFNRSByZWZlcnMgdG8gYSBzcGVjaWFsIG9wZXJhdG9yLiBJZiB0 aGUgbmFtZSByZWZlcnMKPiArICB0byBib3RoIGEgbWFjcm8gYW5kIGEgc3BlY2lhbCBvcGVyYXRv ciwgdGhlIG1hY3JvIHRha2VzIHByZWNlZGVuY2UuCj4KPiAgVGhlIHNlY29uZCB2YWx1ZSBpcyB0 cnVlIGlmIE5BTUUgaXMgYm91bmQgbG9jYWxseS4KPgo+IEBAIC0xOTksMjYgKzE5NSwyMyBAQCBU aGUgdGhpcmQgdmFsdWUgaXMgYW4gYWxpc3QgZGVzY3JpYmluZyB0aGUgZGVjbGFyYXRpb25zIHRo YXQgYXBwbHkgdG8KPiAgdGhlIGZ1bmN0aW9uIE5BTUUuIFN0YW5kYXJkIGRlY2xhcmF0aW9uIHNw ZWNpZmllcnMgdGhhdCBtYXkgYXBwZWFyIGluCj4gIENBUlMgb2YgdGhlIGFsaXN0IGluY2x1ZGU6 Cj4KPiAtICBEWU5BTUlDLUVYVEVOVAo+IC0gICAgSWYgdGhlIENEUiBpcyBULCBOQU1FIGhhcyBi ZWVuIGRlY2xhcmVkIERZTkFNSUMtRVhURU5ULiBJZiB0aGUgQ0RSCj4gLSAgICBpcyBOSUwsIHRo ZSBhbGlzdCBlbGVtZW50IG1heSBiZSBvbWl0dGVkLgo+ICstIERZTkFNSUMtRVhURU5UOiBJZiB0 aGUgQ0RSIGlzIFQsIE5BTUUgaGFzIGJlZW4gZGVjbGFyZWQKPiArICBEWU5BTUlDLUVYVEVOVC4g SWYgdGhlIENEUiBpcyBOSUwsIHRoZSBhbGlzdCBlbGVtZW50IG1heSBiZSBvbWl0dGVkLgo+Cj4g LSAgSU5MSU5FCj4gLSAgICBUaGUgQ0RSIGlzIG9uZSBvZiB0aGUgc3ltYm9scyBJTkxJTkUsIE5P VElOTElORSwgb3IgTklMLCB0bwo+IC0gICAgaW5kaWNhdGUgaWYgdGhlIGZ1bmN0aW9uIGhhcyBi ZWVuIGRlY2xhcmVkIElOTElORSBvciBOT1RJTkxJTkUuIElmCj4gLSAgICB0aGUgQ0RSIGlzIE5J TCB0aGUgYWxpc3QgZWxlbWVudCBtYXkgYmUgb21pdHRlZC4KPiArLSBJTkxJTkU6IFRoZSBDRFIg aXMgb25lIG9mIHRoZSBzeW1ib2xzIElOTElORSwgTk9USU5MSU5FLCBvciBOSUwsIHRvCj4gKyAg aW5kaWNhdGUgaWYgdGhlIGZ1bmN0aW9uIGhhcyBiZWVuIGRlY2xhcmVkIElOTElORSBvciBOT1RJ TkxJTkUuIElmCj4gKyAgdGhlIENEUiBpcyBOSUwgdGhlIGFsaXN0IGVsZW1lbnQgbWF5IGJlIG9t aXR0ZWQuCj4KPiAtICBGVFlQRQo+IC0gICAgVGhlIENEUiBpcyB0aGUgdHlwZSBzcGVjaWZpZXIg YXNzb2NpYXRlZCB3aXRoIE5BTUUsIG9yIHRoZSBzeW1ib2wKPiAtICAgIEZVTkNUSU9OIGlmIHRo ZXJlIGlzIGZ1bmN0aW9uYWwgdHlwZSBkZWNsYXJhdGlvbiBvciBwcm9jbGFtYXRpb24KPiAtICAg IGFzc29jaWF0ZWQgd2l0aCBOQU1FLiBJZiB0aGUgQ0RSIGlzIEZVTkNUSU9OIHRoZSBhbGlzdCBl bGVtZW50IG1heQo+IC0gICAgYmUgb21pdHRlZC4KPiArLSBGVFlQRTogVGhlIENEUiBpcyB0aGUg dHlwZSBzcGVjaWZpZXIgYXNzb2NpYXRlZCB3aXRoIE5BTUUsIG9yIHRoZQo+ICsgIHN5bWJvbCBG VU5DVElPTiBpZiB0aGVyZSBpcyBmdW5jdGlvbmFsIHR5cGUgZGVjbGFyYXRpb24gb3IKPiArICBw cm9jbGFtYXRpb24gYXNzb2NpYXRlZCB3aXRoIE5BTUUuIElmIHRoZSBDRFIgaXMgRlVOQ1RJT04g dGhlIGFsaXN0Cj4gKyAgZWxlbWVudCBtYXkgYmUgb21pdHRlZC4KPgo+IC0gIFNCLUVYVDpERVBS RUNBVEVECj4gLSAgICBcKFNCQ0wgc3BlY2lmaWMpCj4gLSAgICBUaGUgQ0RSIGlzIGEgcGxpc3Qg Y29udGFpbmluZyB0aGUgZm9sbG93aW5nIHByb3BlcnRpZXMKPiArLSBTQi1FWFQ6REVQUkVDQVRF RDogKFNCQ0wgc3BlY2lmaWMpIFRoZSBDRFIgaXMgYSBwbGlzdCBjb250YWluaW5nIHRoZQo+ICsg IGZvbGxvd2luZyBwcm9wZXJ0aWVzOgo+ICsKPiArICAgIC0gOlNUQVRFICggOkVBUkxZIHwgOkxB VEUgfCA6RklOQUwgKQo+Cj4gLSAgICAgIDpTVEFURSAoIDpFQVJMWSB8IDpMQVRFIHwgOkZJTkFM ICkKPiAgICAgICAgICBVc2Ugb2YgOkVBUkxZIGRlcHJlY2F0ZWQgZnVuY3Rpb25zIHNpZ25hbHMg YSBTVFlMRS1XQVJOSU5HIGF0Cj4gICAgICAgICAgY29tcGlsZS10aW1lLgo+Cj4gQEAgLTIyOCwx NCArMjIxLDE2IEBAIENBUlMgb2YgdGhlIGFsaXN0IGluY2x1ZGU6Cj4gICAgICAgICAgVXNlIG9m IDpGSU5BTCBkZXByZWNhdGVkIGZ1bmN0aW9ucyBzaWduYWxzIGEgZnVsbCBXQVJOSU5HIGF0Cj4g ICAgICAgICAgY29tcGlsZS10aW1lIGFuZCBhbiBlcnJvciBhdCBydW50aW1lLgo+Cj4gLSAgICAg IDpTSU5DRSAoU09GVFdBUkUgVkVSU0lPTikKPiAtICAgICAgICBWRVJTSU9OIGlzIGEgc3RyaW5n IGRlc2lnbmF0aW5nIHRoZSB2ZXJzaW9uIHNpbmNlIHdoaWNoIHRoZQo+IC0gICAgICAgIGZ1bmN0 aW9uIGhhcyBiZWVuIGRlcHJlY2F0ZWQuIFNPRlRXQVJFIGlzIE5JTCBvciB0aGUgbmFtZSBvZgo+ IC0gICAgICAgIHRoZSBzb2Z0d2FyZSB0byB3aGljaCBWRVJTSU9OIHJlZmVycywgZS5nLiBcIlNC Q0xcIiBmb3IKPiArICAgIC0gOlNJTkNFIGAoU09GVFdBUkUgVkVSU0lPTilgCj4gKwo+ICsgICAg ICAgIGBWRVJTSU9OYCBpcyBhIHN0cmluZyBkZXNpZ25hdGluZyB0aGUgdmVyc2lvbiBzaW5jZSB3 aGljaCB0aGUKPiArICAgICAgICBmdW5jdGlvbiBoYXMgYmVlbiBkZXByZWNhdGVkLiBgU09GVFdB UkVgIGlzIE5JTCBvciB0aGUgbmFtZSBvZgo+ICsgICAgICAgIHRoZSBzb2Z0d2FyZSB0byB3aGlj aCBgVkVSU0lPTmAgcmVmZXJzLCBlLmcuIGBcIlNCQ0xcImAgZm9yCj4gICAgICAgICAgZGVwcmVj YXRlZCBmdW5jdGlvbnMgaW4gU0JDTC4KPgo+IC0gICAgICA6UkVQTEFDRU1FTlRTIFJFUExBQ0VN RU5UUwo+IC0gICAgICAgIFdoZW4gdGhpcyBwcm9wZXJ0eSBpcyBwcmVzZW50LCBSRVBMQUNFTUVO VFMgaXMgYSBsaXN0IG9mCj4gKyAgICAtIDpSRVBMQUNFTUVOVFMgYFJFUExBQ0VNRU5UU2AKPiAr Cj4gKyAgICAgICAgV2hlbiB0aGlzIHByb3BlcnR5IGlzIHByZXNlbnQsIGBSRVBMQUNFTUVOVFNg IGlzIGEgbGlzdCBvZgo+ICAgICAgICAgIHN5bWJvbHMgbmFtaW5nIGZ1bmN0aW9ucyB0aGF0IHNo b3VsZCBiZSB1c2VkIGluc3RlYWQgb2YgdGhlCj4gICAgICAgICAgZGVwcmVjYXRlZCBmdW5jdGlv bi4KPgo+IEBAIC0zMTQsMjcgKzMwOSwyMCBAQCBOb3RlIHRoYXQgdGhlIGdsb2JhbCBiaW5kaW5n IG1heSBkaWZmZXIgZnJvbSB0aGUgbG9jYWwgb25lLgo+ICBUaGlzIGZ1bmN0aW9uIHJldHVybnMg dGhyZWUgdmFsdWVzLiBUaGUgZmlyc3QgaW5kaWNhdGVkIHRoZSB0eXBlIG9mIHRoZSB2YXJpYWJs ZQo+ICBiaW5kaW5nOgo+Cj4gLSAgTklMCj4gLSAgICBUaGVyZSBpcyBubyBhcHBhcmVudCBiaW5k aW5nIGZvciBOQU1FLgo+ICstIE5JTDogVGhlcmUgaXMgbm8gYXBwYXJlbnQgYmluZGluZyBmb3Ig TkFNRS4KPgo+IC0gIDpTUEVDSUFMCj4gLSAgICBOQU1FIHJlZmVycyB0byBhIHNwZWNpYWwgdmFy aWFibGUuCj4gKy0gOlNQRUNJQUw6IE5BTUUgcmVmZXJzIHRvIGEgc3BlY2lhbCB2YXJpYWJsZS4K Pgo+IC0gIDpMRVhJQ0FMCj4gLSAgICBOQU1FIHJlZmVycyB0byBhIGxleGljYWwgdmFyaWFibGUu Cj4gKy0gOkxFWElDQUw6IE5BTUUgcmVmZXJzIHRvIGEgbGV4aWNhbCB2YXJpYWJsZS4KPgo+IC0g IDpTWU1CT0wtTUFDUk8KPiAtICAgIE5BTUUgcmVmZXJzIHRvIGEgc3ltYm9sIG1hY3JvLgo+ICst IDpTWU1CT0wtTUFDUk86IE5BTUUgcmVmZXJzIHRvIGEgc3ltYm9sIG1hY3JvLgo+Cj4gLSAgOkNP TlNUQU5UCj4gLSAgICBOQU1FIHJlZmVycyB0byBhIG5hbWVkIGNvbnN0YW50IGRlZmluZWQgdXNp bmcgREVGQ09OU1RBTlQsIG9yIE5BTUUKPiAtICAgIGlzIGEga2V5d29yZC4KPiArLSA6Q09OU1RB TlQ6IE5BTUUgcmVmZXJzIHRvIGEgbmFtZWQgY29uc3RhbnQgZGVmaW5lZCB1c2luZwo+ICsgIERF RkNPTlNUQU5ULCBvciBOQU1FIGlzIGEga2V5d29yZC4KPgo+IC0gIDpHTE9CQUwKPiAtICAgIE5B TUUgcmVmZXJzIHRvIGEgZ2xvYmFsIHZhcmlhYmxlLiAoU0JDTCBzcGVjaWZpYyBleHRlbnNpb24u KQo+ICstIDpHTE9CQUw6IE5BTUUgcmVmZXJzIHRvIGEgZ2xvYmFsIHZhcmlhYmxlLiAoU0JDTCBz cGVjaWZpYyBleHRlbnNpb24uKQo+Cj4gLSAgOkFMSUVOCj4gLSAgICBOQU1FIHJlZmVycyB0byBh biBhbGllbiB2YXJpYWJsZS4gKFNCQ0wgc3BlY2lmaWMgZXh0ZW5zaW9uLikKPiArLSA6QUxJRU4g TkFNRSByZWZlcnMgdG8gYW4gYWxpZW4gdmFyaWFibGUuIChTQkNMIHNwZWNpZmljIGV4dGVuc2lv bi4pCj4KPiAgVGhlIHNlY29uZCB2YWx1ZSBpcyB0cnVlIGlmIE5BTUUgaXMgYm91bmQgbG9jYWxs eS4gVGhpcyBpcyBjdXJyZW50bHkKPiAgYWx3YXlzIE5JTCBmb3Igc3BlY2lhbCB2YXJpYWJsZXMs IGFsdGhvdWdoIGFyZ3VhYmx5IGl0IHNob3VsZCBiZSBUCj4gQEAgLTM0NCwzMCArMzMyLDI2IEBA IFRoZSB0aGlyZCB2YWx1ZSBpcyBhbiBhbGlzdCBkZXNjcmliaW5nIHRoZSBkZWNsYXJhdGlvbnMg dGhhdCBhcHBseSB0bwo+ICB0aGUgZnVuY3Rpb24gTkFNRS4gU3RhbmRhcmQgZGVjbGFyYXRpb24g c3BlY2lmaWVycyB0aGF0IG1heSBhcHBlYXIgaW4KPiAgQ0FSUyBvZiB0aGUgYWxpc3QgaW5jbHVk ZToKPgo+IC0gIERZTkFNSUMtRVhURU5UCj4gLSAgICBJZiB0aGUgQ0RSIGlzIFQsIE5BTUUgaGFz IGJlZW4gZGVjbGFyZWQgRFlOQU1JQy1FWFRFTlQuIElmIHRoZSBDRFIKPiAtICAgIGlzIE5JTCwg dGhlIGFsaXN0IGVsZW1lbnQgbWF5IGJlIG9taXR0ZWQuCj4gKy0gRFlOQU1JQy1FWFRFTlQ6IElm IHRoZSBDRFIgaXMgVCwgTkFNRSBoYXMgYmVlbiBkZWNsYXJlZAo+ICsgIERZTkFNSUMtRVhURU5U LiBJZiB0aGUgQ0RSIGlzIE5JTCwgdGhlIGFsaXN0IGVsZW1lbnQgbWF5IGJlIG9taXR0ZWQuCj4K PiAtICBJR05PUkUKPiAtICAgIElmIHRoZSBDRFIgaXMgVCwgTkFNRSBoYXMgYmVlbiBkZWNsYXJl ZCBJR05PUkUuIElmIHRoZSBDRFIgaXMgTklMLAo+IC0gICAgdGhlIGFsaXN0IGVsZW1lbnQgbWF5 IGJlIG9taXR0ZWQuCj4gKy0gSUdOT1JFOiBJZiB0aGUgQ0RSIGlzIFQsIE5BTUUgaGFzIGJlZW4g ZGVjbGFyZWQgSUdOT1JFLiBJZiB0aGUgQ0RSCj4gKyAgaXMgTklMLCB0aGUgYWxpc3QgZWxlbWVu dCBtYXkgYmUgb21pdHRlZC4KPgo+IC0gIFRZUEUKPiAtICAgIFRoZSBDRFIgaXMgdGhlIHR5cGUg c3BlY2lmaWVyIGFzc29jaWF0ZWQgd2l0aCBOQU1FLCBvciB0aGUgc3ltYm9sCj4gLSAgICBUIGlm IHRoZXJlIGlzIGV4cGxpY2l0IHR5cGUgZGVjbGFyYXRpb24gb3IgcHJvY2xhbWF0aW9uIGFzc29j aWF0ZWQKPiAtICAgIHdpdGggTkFNRS4gVGhlIHR5cGUgc3BlY2lmaWVyIG1heSBiZSBlcXVpdmFs ZW50IHRvIG9yIGEgc3VwZXJ0eXBlCj4gLSAgICBvZiB0aGUgb3JpZ2luYWwgZGVjbGFyYXRpb24u IElmIHRoZSBDRFIgaXMgVCB0aGUgYWxpc3QgZWxlbWVudCBtYXkKPiAtICAgIGJlIG9taXR0ZWQu Cj4gKy0gVFlQRTogVGhlIENEUiBpcyB0aGUgdHlwZSBzcGVjaWZpZXIgYXNzb2NpYXRlZCB3aXRo IE5BTUUsIG9yIHRoZQo+ICsgIHN5bWJvbCBUIGlmIHRoZXJlIGlzIGV4cGxpY2l0IHR5cGUgZGVj bGFyYXRpb24gb3IgcHJvY2xhbWF0aW9uCj4gKyAgYXNzb2NpYXRlZCB3aXRoIE5BTUUuIFRoZSB0 eXBlIHNwZWNpZmllciBtYXkgYmUgZXF1aXZhbGVudCB0byBvciBhCj4gKyAgc3VwZXJ0eXBlIG9m IHRoZSBvcmlnaW5hbCBkZWNsYXJhdGlvbi4gSWYgdGhlIENEUiBpcyBUIHRoZSBhbGlzdAo+ICsg IGVsZW1lbnQgbWF5IGJlIG9taXR0ZWQuCj4KPiAtICBTQi1FWFQ6QUxXQVlTLUJPVU5ECj4gLSAg ICBcKFNCQ0wgc3BlY2lmaWMpCj4gLSAgICBJZiBDRFIgaXMgVCwgTkFNRSBoYXMgYmVlbiBkZWNs YXJlZCBhcyBTQi1FWFQ6QUxXQVlTLUJPVU5ECj4gKy0gU0ItRVhUOkFMV0FZUy1CT1VORDogKFNC Q0wgc3BlY2lmaWMpIElmIENEUiBpcyBULCBOQU1FIGhhcyBiZWVuCj4gKyAgZGVjbGFyZWQgYXMg U0ItRVhUOkFMV0FZUy1CT1VORC4KPgo+IC0gIFNCLUVYVDpERVBSRUNBVEVECj4gLSAgICBcKFNC Q0wgc3BlY2lmaWMpCj4gLSAgICBUaGUgQ0RSIGlzIGEgcGxpc3QgY29udGFpbmluZyB0aGUgZm9s bG93aW5nIHByb3BlcnRpZXMKPiArLSBTQi1FWFQ6REVQUkVDQVRFRDogKFNCQ0wgc3BlY2lmaWMp IFRoZSBDRFIgaXMgYSBwbGlzdCBjb250YWluaW5nIHRoZQo+ICsgIGZvbGxvd2luZyBwcm9wZXJ0 aWVzOgo+ICsKPiArICAgIC0gOlNUQVRFICggOkVBUkxZIHwgOkxBVEUgfCA6RklOQUwgKQo+Cj4g LSAgICAgIDpTVEFURSAoIDpFQVJMWSB8IDpMQVRFIHwgOkZJTkFMICkKPiAgICAgICAgICBVc2Ug b2YgOkVBUkxZIGRlcHJlY2F0ZWQgdmFyaWFibGVzIHNpZ25hbHMgYSBTVFlMRS1XQVJOSU5HIGF0 Cj4gICAgICAgICAgY29tcGlsZS10aW1lLgo+Cj4gQEAgLTM3NywxNCArMzYxLDE2IEBAIENBUlMg b2YgdGhlIGFsaXN0IGluY2x1ZGU6Cj4gICAgICAgICAgVXNlIG9mIDpGSU5BTCBkZXByZWNhdGVk IHZhcmlhYmxlcyBzaWduYWxzIGEgZnVsbCBXQVJOSU5HIGF0Cj4gICAgICAgICAgY29tcGlsZS10 aW1lIGFuZCBhbiBlcnJvciBhdCBydW50aW1lLgo+Cj4gLSAgICAgIDpTSU5DRSAoU09GVFdBUkUg VkVSU0lPTikKPiAtICAgICAgICBWRVJTSU9OIGlzIGEgc3RyaW5nIGRlc2lnbmF0aW5nIHRoZSB2 ZXJzaW9uIHNpbmNlIHdoaWNoIHRoZQo+IC0gICAgICAgIHZhcmlhYmxlIGhhcyBiZWVuIGRlcHJl Y2F0ZWQuIFNPRlRXQVJFIGlzIE5JTCBvciB0aGUgbmFtZSBvZgo+IC0gICAgICAgIHRoZSBzb2Z0 d2FyZSB0byB3aGljaCBWRVJTSU9OIHJlZmVycywgZS5nLiBcIlNCQ0xcIiBmb3IKPiArICAgIC0g OlNJTkNFIGAoU09GVFdBUkUgVkVSU0lPTilgCj4gKwo+ICsgICAgICAgIGBWRVJTSU9OYCBpcyBh IHN0cmluZyBkZXNpZ25hdGluZyB0aGUgdmVyc2lvbiBzaW5jZSB3aGljaCB0aGUKPiArICAgICAg ICB2YXJpYWJsZSBoYXMgYmVlbiBkZXByZWNhdGVkLiBgU09GVFdBUkVgIGlzIE5JTCBvciB0aGUg bmFtZSBvZgo+ICsgICAgICAgIHRoZSBzb2Z0d2FyZSB0byB3aGljaCBgVkVSU0lPTmAgcmVmZXJz LCBlLmcuIGBcIlNCQ0xcImAgZm9yCj4gICAgICAgICAgZGVwcmVjYXRlZCB2YXJpYWJsZXMgaW4g U0JDTC4KPgo+IC0gICAgICA6UkVQTEFDRU1FTlRTIFJFUExBQ0VNRU5UUwo+IC0gICAgICAgIFdo ZW4gdGhpcyBwcm9wZXJ0eSBpcyBwcmVzZW50LCBSRVBMQUNFTUVOVFMgaXMgYSBsaXN0IG9mCj4g KyAgICAtIDpSRVBMQUNFTUVOVFMgYFJFUExBQ0VNRU5UU2AKPiArCj4gKyAgICAgICAgV2hlbiB0 aGlzIHByb3BlcnR5IGlzIHByZXNlbnQsIGBSRVBMQUNFTUVOVFNgIGlzIGEgbGlzdCBvZgo+ICAg ICAgICAgIHN5bWJvbHMgbmFtaW5nIHZhcmlhYmxlcyB0aGF0IHNob3VsZCBiZSB1c2VkIGluc3Rl YWQgb2YgdGhlCj4gICAgICAgICAgZGVwcmVjYXRlZCB2YXJpYWJsZS4KPgo+IGRpZmYgLS1naXQg YS9jb250cmliL3NiLWNvbmN1cnJlbmN5L2ZybG9jay5saXNwIGIvY29udHJpYi9zYi1jb25jdXJy ZW5jeS9mcmxvY2subGlzcAo+IGluZGV4IDkwYzBlYWI0MS4uZDFiMTcyMDA5IDEwMDY0NAo+IC0t LSBhL2NvbnRyaWIvc2ItY29uY3VycmVuY3kvZnJsb2NrLmxpc3AKPiArKysgYi9jb250cmliL3Ni LWNvbmN1cnJlbmN5L2ZybG9jay5saXNwCj4gQEAgLTEwMSwzMSArMTAxLDMwIEBAIFJlYWRlcnMg Z2FpbiBlbnRyeSB0byBwcm90ZWN0ZWQgcmVnaW9ucyB3aXRob3V0IHdhaXRpbmcsIGJ1dCBuZWVk IHRvIHJldHJ5IGlmCj4gIGEgd3JpdGVyIG9wZXJhdGVkIGluc2lkZSB0aGUgcmVnaW9uIHdoaWxl IHRoZXkgd2VyZSByZWFkaW5nLiBUaGlzIG1ha2VzIGZybG9ja3MKPiAgdmVyeSBlZmZpY2llbnQg d2hlbiByZWFkZXJzIGFyZSBtdWNoIG1vcmUgY29tbW9uIHRoYW4gd3JpdGVycy4KPgo+IC1GUmxv Y2tzIGFyZSBOT1Qgc3VpdGFibGUgd2hlbiBpdCBpcyBub3Qgc2FmZSBhdCBhbGwgZm9yIHJlYWRl cnMgYW5kIHdyaXRlcnMgdG8KPiAtb3BlcmF0ZSBvbiB0aGUgc2FtZSBkYXRhIGluIHBhcmFsbGVs OiB0aGV5IHByb3ZpZGUgY29uc2lzdGVuY3ksIG5vdCBleGNsdXNpb24KPiAtYmV0d2VlbiByZWFk ZXJzIGFuZCB3cml0ZXJzLiBIZW5jZSB1c2luZyBhbiBmcmxvY2sgdG8gZWcuIHByb3RlY3QgYW4g U0JDTAo+IC1oYXNoLXRhYmxlIGlzIHVuc2FmZS4gSWYgbXVsdGlwbGUgcmVhZGVycyBvcGVyYXRp bmcgaW4gcGFyYWxsZWwgd2l0aCBhIHdyaXRlcgo+IC13b3VsZCBiZSBzYWZlIGJ1dCBpbmNvbnNp c3RlbnQgd2l0aG91dCBhIGxvY2ssIGZybG9ja3MgYXJlIHN1aXRhYmxlLgo+ICtGUmxvY2tzIGFy ZSBfbm90XyBzdWl0YWJsZSB3aGVuIGl0IGlzIG5vdCBzYWZlIGF0IGFsbCBmb3IgcmVhZGVycyBh bmQgd3JpdGVycwo+ICt0byBvcGVyYXRlIG9uIHRoZSBzYW1lIGRhdGEgaW4gcGFyYWxsZWw6IHRo ZXkgcHJvdmlkZSBjb25zaXN0ZW5jeSwgbm90Cj4gK2V4Y2x1c2lvbiBiZXR3ZWVuIHJlYWRlcnMg YW5kIHdyaXRlcnMuIEhlbmNlIHVzaW5nIGFuIGZybG9jayB0byBlLmcuIHByb3RlY3QKPiArYW4g U0JDTCBoYXNoLXRhYmxlIGlzIHVuc2FmZS4gSWYgbXVsdGlwbGUgcmVhZGVycyBvcGVyYXRpbmcg aW4gcGFyYWxsZWwgd2l0aAo+ICthIHdyaXRlciB3b3VsZCBiZSBzYWZlIGJ1dCBpbmNvbnNpc3Rl bnQgd2l0aG91dCBhIGxvY2ssIGZybG9ja3MgYXJlIHN1aXRhYmxlLgo+Cj4gIFRoZSByZWNvbW1l bmRlZCBpbnRlcmZhY2UgdG8gdXNlIGlzIEZSTE9DSy1SRUFEIGFuZCBGUkxPQ0stV1JJVEUsIGJ1 dCB0aG9zZQo+ICBuZWVkaW5nIGl0IGNhbiBhbHNvIHVzZSBhIGxvd2VyLWxldmVsIGludGVyZmFj ZS4KPgo+ICBFeGFtcGxlOgo+Cj4gLSAgOzsgVmFsdWVzIHJldHVybmVkIGJ5IEZPTyBhcmUgYWx3 YXlzIGNvbnNpc3RlbnQgc28gdGhhdAo+IC0gIDs7IHRoZSB0aGlyZCB2YWx1ZSBpcyB0aGUgc3Vt IG9mIHRoZSB0d28gZmlyc3Qgb25lcy4KPiAtICAobGV0ICgoYSAwKQo+IC0gICAgICAgIChiIDAp Cj4gLSAgICAgICAgKGMgMCkKPiAtICAgICAgICAobGsgKG1ha2UtZnJsb2NrKSkpCj4gLSAgICAo ZGVmdW4gZm9vICgpCj4gLSAgICAgICAoZnJsb2NrLXJlYWQgKGxrKSBhIGIgYykpCj4gLSAgICAo ZGVmdW4gYmFyICh4IHkpCj4gLSAgICAgICAoZnJsb2NrLXdyaXRlIChsaykKPiAtICAgICAgICAg KHNldGYgYSB4Cj4gLSAgICAgICAgICAgICAgIGIgeQo+IC0gICAgICAgICAgICAgICBjICgrIHgg eSkpKSkpCj4gLSIKPiArICAgIDs7IFZhbHVlcyByZXR1cm5lZCBieSBGT08gYXJlIGFsd2F5cyBj b25zaXN0ZW50IHNvIHRoYXQKPiArICAgIDs7IHRoZSB0aGlyZCB2YWx1ZSBpcyB0aGUgc3VtIG9m IHRoZSB0d28gZmlyc3Qgb25lcy4KPiArICAgIChsZXQgKChhIDApCj4gKyAgICAgICAgICAoYiAw KQo+ICsgICAgICAgICAgKGMgMCkKPiArICAgICAgICAgIChsayAobWFrZS1mcmxvY2spKSkKPiAr ICAgICAgKGRlZnVuIGZvbyAoKQo+ICsgICAgICAgICAoZnJsb2NrLXJlYWQgKGxrKSBhIGIgYykp Cj4gKyAgICAgIChkZWZ1biBiYXIgKHggeSkKPiArICAgICAgICAgKGZybG9jay13cml0ZSAobGsp Cj4gKyAgICAgICAgICAgKHNldGYgYSB4Cj4gKyAgICAgICAgICAgICAgICAgYiB5Cj4gKyAgICAg ICAgICAgICAgICAgYyAoKyB4IHkpKSkpKSIKPiAgICAuCj4gICAgIy1uZXctZnJsb2NrICgKPiAg ICAobXV0ZXggKG1ha2UtbXV0ZXggOm5hbWUgIkZSTG9jayBtdXRleCIpIDp0eXBlIG11dGV4IDpy ZWFkLW9ubHkgdCkKPiBAQCAtMjEyLDE0ICsyMTEsMTMgQEAgVXNpbmcgRlJMT0NLLVJFQUQgaW5z dGVhZCBpcyByZWNvbW1lbmRlZC4KPgo+ICBFeGFtcGxlOgo+Cj4gLSAgKG11bHRpcGxlLXZhbHVl LWJpbmQgKHQwIGUwKSAoZnJsb2NrLXJlYWQtYmVnaW4gKmZyKikKPiAtICAgIChsZXQgKChhIChn ZXQtYSkpCj4gLSAgICAgICAgICAoYiAoZ2V0LWIpKSkKPiAtICAgICAgKG11bHRpcGxlLXZhbHVl LWJpbmQgKHQxIGUxKSAoZnJsb2NrLXJlYWQtZW5kICpmciopCj4gLSAgICAgICAgKGlmIChhbmQg KGVxbCB0MCB0MSkgKGVxbCBlMCBlMSkpCj4gLSAgICAgICAgICAgIChsaXN0IDphIGEgOmIgYikK PiAtICAgICAgICAgICAgOmFib3J0ZWQpKSkpCj4gLSIKPiArICAgIChtdWx0aXBsZS12YWx1ZS1i aW5kICh0MCBlMCkgKGZybG9jay1yZWFkLWJlZ2luICpmciopCj4gKyAgICAgIChsZXQgKChhIChn ZXQtYSkpCj4gKyAgICAgICAgICAgIChiIChnZXQtYikpKQo+ICsgICAgICAgIChtdWx0aXBsZS12 YWx1ZS1iaW5kICh0MSBlMSkgKGZybG9jay1yZWFkLWVuZCAqZnIqKQo+ICsgICAgICAgICAgKGlm IChhbmQgKGVxbCB0MCB0MSkgKGVxbCBlMCBlMSkpCj4gKyAgICAgICAgICAgICAgKGxpc3QgOmEg YSA6YiBiKQo+ICsgICAgICAgICAgICAgIDphYm9ydGVkKSkpKSIKPiAgICAoYmFycmllciAoOnJl YWQpKQo+ICAgICh2YWx1ZXMgKGZybG9jay1wcmUtY291bnRlciBmcmxvY2spCj4gICAgICAgICAg ICAoZnJsb2NrLWVwb2NoIGZybG9jaykpKQo+IEBAIC0yNDcsNyArMjQ1LDcgQEAgc2V0LCBhbmQg cmV0dXJucyB0aGF0IGFzIG11bHRpcGxlIHZhbHVlcy4iCj4gICAgICAgIDs7IDAsIHRoZXkgd2ls bCBzdGlsbCBiZSBob2xkaW5nIG9uIHRvIHRoZSBvbGQgZXBvY2guIFdoaWxlIGl0IGlzCj4gICAg ICAgIDs7IGV4dHJlbWVseSB1bmxpa2VseSwgaXQgaXNuJ3QgcXVpdGUgIm5vdCBiZWZvcmUgaGVh dGggZGVhdGggb2YgdGhlCj4gICAgICAgIDs7IHVuaXZlcnNlIiBzdHVmZjogYSAzMCBiaXQgY291 bnRlciBjYW4gcm9sbCBvdmVyIGluIGEgY291cGxlIG9mCj4gLSAgICAgIDs7IHNlY29uZHMgLS0g YW5kIGEgdGhyZWFkIGNhbiBlYXNpbHkgYmUgaW50ZXJydXB0ZWQgYnkgZWcuIGEgdGltZXIgZm9y Cj4gKyAgICAgIDs7IHNlY29uZHMgLS0gYW5kIGEgdGhyZWFkIGNhbiBlYXNpbHkgYmUgaW50ZXJy dXB0ZWQgYnkgZS5nLiBhIHRpbWVyIGZvcgo+ICAgICAgICA7OyB0aGF0IGxvbmcsIHNvIGEgcGF0 aG9sb2dpY2FsIHN5c3RlbSBjb3VsZCBiZSBoYXZlIGEgdGhyZWFkIGluIGEKPiAgICAgICAgOzsg ZGFuZ2VyLXpvbmUgZXZlcnkgc2Vjb25kLiBSdW4gdGhhdCBzeXN0ZW0gZm9yIGEgeWVhciwgYW5k IGl0IHdvdWxkCj4gICAgICAgIDs7IGhhdmUgYSAxIGluIDMgY2hhbmNlIG9mIGhpdHRpbmcgdGhl IGluY2lwaWVudCBidWcuIEFkZGluZyBhbiBlcG9jaAo+IEBAIC0yNjgsNyArMjY2LDcgQEAgc2V0 LCBhbmQgcmV0dXJucyB0aGF0IGFzIG11bHRpcGxlIHZhbHVlcy4iCj4gIChkZWZ1biBncmFiLWZy bG9jay13cml0ZS1sb2NrIChmcmxvY2sgJmtleSAod2FpdC1wIHQpIHRpbWVvdXQpCj4gICAgIkFj cXVpcmVzIEZSTE9DSyBmb3Igd3JpdGluZywgaW52YWxpZGF0aW5nIGV4aXN0aW5nIGFuZCBmdXR1 cmUgcmVhZC10b2tlbnMKPiAgZm9yIHRoZSBkdXJhdGlvbi4gUmV0dXJucyBUIG9uIHN1Y2Nlc3Ms IGFuZCBOSUwgaWYgdGhlIGxvY2sgd2Fzbid0IGFjcXVpcmVkCj4gLWR1ZSB0byBlZy4gYSB0aW1l b3V0LiBVc2luZyBGUkxPQ0stV1JJVEUgaW5zdGVhZCBpcyByZWNvbW1lbmRlZC4iCj4gK2R1ZSB0 byBlLmcuIGEgdGltZW91dC4gVXNpbmcgRlJMT0NLLVdSSVRFIGluc3RlYWQgaXMgcmVjb21tZW5k ZWQuIgo+ICAgICh3aXRob3V0LWludGVycnVwdHMKPiAgICAgIChhbGxvdy13aXRoLWludGVycnVw dHMgKCUlZ3JhYi1mcmxvY2std3JpdGUtbG9jayBmcmxvY2sgd2FpdC1wIHRpbWVvdXQpKSkpCj4K PiBkaWZmIC0tZ2l0IGEvY29udHJpYi9zYi1jb25jdXJyZW5jeS9tYWlsYm94Lmxpc3AgYi9jb250 cmliL3NiLWNvbmN1cnJlbmN5L21haWxib3gubGlzcAo+IGluZGV4IDMyMjViNjIxOC4uMDQ5ZWJi YTc0IDEwMDY0NAo+IC0tLSBhL2NvbnRyaWIvc2ItY29uY3VycmVuY3kvbWFpbGJveC5saXNwCj4g KysrIGIvY29udHJpYi9zYi1jb25jdXJyZW5jeS9tYWlsYm94Lmxpc3AKPiBAQCAtMjIsNyArMjIs NyBAQCBTRU5ELU1FU1NBR0UgYWRkcyBhIG1lc3NhZ2UgdG8gdGhlIG1haWxib3gsIFJFQ0VJVkUt TUVTU0FHRSB3YWl0cyB0aWxsCj4gIGEgbWVzc2FnZSBiZWNvbWVzIGF2YWlsYWJsZSwgd2hlcmVh cyBSRUNFSVZFLU1FU1NBR0UtTk8tSEFORyBpcyBhIG5vbi1ibG9ja2luZwo+ICB2YXJpYW50LCBh bmQgUkVDRUlWRS1QRU5ESU5HLU1FU1NBR0VTIGVtcHRpZXMgdGhlIGVudGlyZSBtYWlsYm94IGlu IG9uZSBnby4KPgo+IC1NZXNzYWdlcyBjYW4gYmUgYXJiaXRyYXJ5IG9iamVjdHMiCj4gK01lc3Nh Z2VzIGNhbiBiZSBhcmJpdHJhcnkgb2JqZWN0cy4iCj4gICAgKHF1ZXVlIChtaXNzaW5nLWFyZykg OnR5cGUgcXVldWUpCj4gICAgKHNlbWFwaG9yZSAobWlzc2luZy1hcmcpIDp0eXBlIHNlbWFwaG9y ZSkKPiAgICAobmFtZSBuaWwpKQo+IEBAIC01Niw3ICs1Niw3IEBAIE1lc3NhZ2VzIGNhbiBiZSBh cmJpdHJhcnkgb2JqZWN0cyIKPgo+ICAoZGVjbGFpbSAoZnR5cGUgKHNmdW5jdGlvbiAobWFpbGJv eCkgdW5zaWduZWQtYnl0ZSkgbWFpbGJveC1jb3VudCkpCj4gIChkZWZ1biBtYWlsYm94LWNvdW50 IChtYWlsYm94KQo+IC0gICJSZXR1cm5zIHRoZSBudW1iZXIgb2YgbWVzc2FnZXMgY3VycmVudGx5 IGluIHRoZSBtYWlsYm94LiIKPiArICAiUmV0dXJucyB0aGUgbnVtYmVyIG9mIG1lc3NhZ2VzIGN1 cnJlbnRseSBpbiBNQUlMQk9YLiIKPiAgICAoc2VtYXBob3JlLWNvdW50IChtYWlsYm94LXNlbWFw aG9yZSBtYWlsYm94KSkpCj4KPiAgKGRlY2xhaW0gKGZ0eXBlIChzZnVuY3Rpb24gKG1haWxib3gp IGJvb2xlYW4pIG1haWxib3gtZW1wdHktcCkpCj4gQEAgLTY2LDggKzY2LDggQEAgTWVzc2FnZXMg Y2FuIGJlIGFyYml0cmFyeSBvYmplY3RzIgo+Cj4gIChkZWNsYWltIChmdHlwZSAoc2Z1bmN0aW9u IChtYWlsYm94KSBsaXN0KSBsaXN0LW1haWxib3gtbWVzc2FnZXMpKQo+ICAoZGVmdW4gbGlzdC1t YWlsYm94LW1lc3NhZ2VzIChtYWlsYm94KQo+IC0gICJSZXR1cm5zIGEgZnJlc2ggbGlzdCBjb250 YWluaW5nIGFsbCB0aGUgbWVzc2FnZXMgaW4gdGhlCj4gLW1haWxib3guIERvZXMgbm90IHJlbW92 ZSBtZXNzYWdlcyBmcm9tIHRoZSBtYWlsYm94LiIKPiArICAiUmV0dXJucyBhIGZyZXNoIGxpc3Qg Y29udGFpbmluZyBhbGwgdGhlIG1lc3NhZ2VzIGluIE1BSUxCT1guIERvZXMgbm90Cj4gK3JlbW92 ZSBtZXNzYWdlcyBmcm9tIHRoZSBtYWlsYm94LiIKPiAgICAobGlzdC1xdWV1ZS1jb250ZW50cyAo bWFpbGJveC1xdWV1ZSBtYWlsYm94KSkpCj4KPiAgKGRlY2xhaW0gKGZ0eXBlIChzZnVuY3Rpb24g KG1haWxib3ggdCkgbnVsbCkgc2VuZC1tZXNzYWdlKSkKPiBAQCAtMTI2LDEwICsxMjYsMTAgQEAg bWVzc2FnZSBjb3VsZCBiZSByZWNlaXZlZC4iCj4gICAgIlJlbW92ZXMgYW5kIHJldHVybnMgYWxs IChvciBhdCBtb3N0IE4pIGN1cnJlbnRseSBwZW5kaW5nIG1lc3NhZ2VzCj4gIGZyb20gTUFJTEJP WCwgb3IgcmV0dXJucyBOSUwgaWYgbm8gbWVzc2FnZXMgYXJlIHBlbmRpbmcuCj4KPiAtTm90ZTog Q29uY3VycmVudCB0aHJlYWRzIG1heSBiZSBzbmFyZmluZyBtZXNzYWdlcyBkdXJpbmcgdGhlIHJ1 biBvZgo+IC10aGlzIGZ1bmN0aW9uLCBzbyBldmVuIGBYYCBhbmQgYFlgIGFwcGVhcmluZyByaWdo dCBuZXh0IHRvIGVhY2ggb3RoZXIKPiAtaW4gdGhlIHJlc3VsdCBkb2VzIG5vdCBuZWNlc3Nhcmls eSBtZWFuIHRoYXQgYFlgIHdhcyB0aGUgbWVzc2FnZSBzZW50Cj4gLXJpZ2h0IGFmdGVyIGBYYC4i Cj4gKz4gX05vdGVfOiBDb25jdXJyZW50IHRocmVhZHMgbWF5IGJlIHNuYXJmaW5nIG1lc3NhZ2Vz IGR1cmluZyB0aGUgcnVuCj4gKz4gb2YgdGhpcyBmdW5jdGlvbiwgc28gZXZlbiBgWGAgYW5kIGBZ YCBhcHBlYXJpbmcgcmlnaHQgbmV4dCB0byBlYWNoCj4gKz4gb3RoZXIgaW4gdGhlIHJlc3VsdCBk b2VzIG5vdCBuZWNlc3NhcmlseSBtZWFuIHRoYXQgYFlgIHdhcyB0aGUKPiArPiBtZXNzYWdlIHNl bnQgcmlnaHQgYWZ0ZXIgYFhgLiIKPiAgICAocHJvZyogKChtc2dzICAnKCkpCj4gICAgICAgICAg ICAoc2VtICAgKG1haWxib3gtc2VtYXBob3JlIG1haWxib3gpKQo+ICAgICAgICAgICAgKHF1ZXVl IChtYWlsYm94LXF1ZXVlIG1haWxib3gpKQo+IGRpZmYgLS1naXQgYS9jb250cmliL3NiLWNvdmVy L2dlbmh0bWwubGlzcCBiL2NvbnRyaWIvc2ItY292ZXIvZ2VuaHRtbC5saXNwCj4gaW5kZXggYWJj NjM0MjgwLi5iMzI2MjljYzggMTAwNjQ0Cj4gLS0tIGEvY29udHJpYi9zYi1jb3Zlci9nZW5odG1s Lmxpc3AKPiArKysgYi9jb250cmliL3NiLWNvdmVyL2dlbmh0bWwubGlzcAo+IEBAIC0xMDIsMTEg KzEwMiwxMSBAQCBJZiBESVJFQ1RPUlkgZG9lcyBub3QgZXhpc3QsIGl0IHdpbGwgYmUgY3JlYXRl ZC4gVGhlIG1haW4gcmVwb3J0IHdpbGwgYmUKPiAgcHJpbnRlZCB0byB0aGUgZmlsZSBjb3Zlci1p bmRleC5odG1sLiBUaGUgZXh0ZXJuYWwgZm9ybWF0IG9mIHRoZSBzb3VyY2UKPiAgZmlsZXMgY2Fu IGJlIHNwZWNpZmllZCB3aXRoIHRoZSBFWFRFUk5BTC1GT1JNQVQgcGFyYW1ldGVyLgo+Cj4gLUlm IHRoZSBrZXl3b3JkIGFyZ3VtZW50IEZPUk0tTU9ERSBoYXMgdGhlIHZhbHVlIDpDQVIsIHRoZSBh bm5vdGF0aW9ucyBpbgo+IC10aGUgY292ZXJhZ2UgcmVwb3J0IHdpbGwgYmUgcGxhY2VkIG9uIHRo ZSBDQVJzIG9mIGFueSBjb25zLWZvcm1zLCB3aGlsZSBpZgo+IC1pdCBoYXMgdGhlIHZhbHVlIDpX SE9MRSB0aGUgd2hvbGUgZm9ybSB3aWxsIGJlIGFubm90YXRlZCAodGhlIGRlZmF1bHQpLgo+IC1U aGUgZm9ybWVyIG1vZGUgc2hvd3MgZXhwbGljaXRseSB3aGljaCBmb3JtcyB3ZXJlIGluc3RydW1l bnRlZCwgd2hpbGUgdGhlCj4gLWxhdHRlciBtb2RlIGlzIGdlbmVyYWxseSBlYXNpZXIgdG8gcmVh ZC4KPiArSWYgdGhlIGtleXdvcmQgYXJndW1lbnQgOkZPUk0tTU9ERSBoYXMgdGhlIHZhbHVlIDpD QVIsIHRoZSBhbm5vdGF0aW9ucwo+ICtpbiB0aGUgY292ZXJhZ2UgcmVwb3J0IHdpbGwgYmUgcGxh Y2VkIG9uIHRoZSBDQVJzIG9mIGFueSBjb25zLWZvcm1zLAo+ICt3aGlsZSBpZiBpdCBoYXMgdGhl IHZhbHVlIDpXSE9MRSB0aGUgd2hvbGUgZm9ybSB3aWxsIGJlIGFubm90YXRlZCAodGhlCj4gK2Rl ZmF1bHQpLiBUaGUgZm9ybWVyIG1vZGUgc2hvd3MgZXhwbGljaXRseSB3aGljaCBmb3JtcyB3ZXJl Cj4gK2luc3RydW1lbnRlZCwgd2hpbGUgdGhlIGxhdHRlciBtb2RlIGlzIGdlbmVyYWxseSBlYXNp ZXIgdG8gcmVhZC4KPgo+ICBUaGUga2V5d29yZCBhcmd1bWVudCBJRi1NQVRDSEVTIHNob3VsZCBi ZSBhIGRlc2lnbmF0b3IgZm9yIGEgZnVuY3Rpb24KPiAgb2Ygb25lIGFyZ3VtZW50LCBjYWxsZWQg Zm9yIHRoZSBuYW1lc3RyaW5nIG9mIGVhY2ggZmlsZSB3aXRoIGNvZGUKPiBkaWZmIC0tZ2l0IGEv Y29udHJpYi9zYi1pbnRyb3NwZWN0L2ludHJvc3BlY3QubGlzcCBiL2NvbnRyaWIvc2ItaW50cm9z cGVjdC9pbnRyb3NwZWN0Lmxpc3AKPiBpbmRleCA0ZWRhNWUzY2EuLjdmMjllZDhiMCAxMDA2NDQK PiAtLS0gYS9jb250cmliL3NiLWludHJvc3BlY3QvaW50cm9zcGVjdC5saXNwCj4gKysrIGIvY29u dHJpYi9zYi1pbnRyb3NwZWN0L2ludHJvc3BlY3QubGlzcAo+IEBAIC03NTksNyArNzU5LDcgQEAg b3IgYSBtZXRob2QgY29tYmluYXRpb24gbmFtZS4iCj4gIFRoaXMgY2FuIG1ha2UgcHJldmlvdXNs eSBnYXJiYWdlIG9iamVjdHMgbGl2ZS4KPgo+ICBTUEFDRVMgc2hvdWxkIGJlIGEgbGlzdCBvZiB0 aGUgc3ltYm9scyA6RFlOQU1JQywgOlNUQVRJQywgOlJFQUQtT05MWSwKPiAtb3IgOklNTU9CSUxF IG9uICMrSU1NT0JJTEUtU1BBQ0UuIFRoZSBzaG9ydGhhbmQgKDpBTEwpIGlzIGFsc28KPiArb3Ig OklNTU9CSUxFIG9uIGAjK0lNTU9CSUxFLVNQQUNFYC4gVGhlIHNob3J0aGFuZCAoOkFMTCkgaXMg YWxzbwo+ICBhY2NlcHRlZC4iCj4gICAgKGxldCAoKHJlZmVycmVycyAnKCkpKQo+ICAgICAgKG1h cC1jYWxsZXItY29kZS1jb21wb25lbnRzCj4gQEAgLTExNjAsOCArMTE2MCw4IEBAIGFjdHVhbGx5 IGNvbnRhaW5lZCBpbiB0aGUgb2JqZWN0IGJ1dCBmb3VuZCBpbiBjZXJ0YWluIHdlbGwta25vd24K PiAgaW5kaXJlY3QgY29udGFpbmVyczogRkRFRklOSVRJT05zLCBFUUwgc3BlY2lhbGl6ZXJzLCBj bGFzc2VzLCBhbmQKPiAgdGhyZWFkLWxvY2FsIHN5bWJvbCB2YWx1ZXMgaW4gb3RoZXIgdGhyZWFk cyBmYWxsIGludG8gdGhpcyBjYXRlZ29yeS4KPgo+IC1OT1RFOiBjYWxsaW5nIE1BUC1ST09UIHdp dGggYSBUSFJFQUQgZG9lcyBub3QgY3VycmVudGx5IG1hcCBvdmVyCj4gLWNvbnNlcnZhdGl2ZSBy b290cyBmcm9tIHRoZSB0aHJlYWQgcmVnaXN0ZXJzIGFuZCBpbnRlcnJ1cHQgY29udGV4dHMuCj4g Kz4gX05vdGVfOiBjYWxsaW5nIE1BUC1ST09UIHdpdGggYSBUSFJFQUQgZG9lcyBub3QgY3VycmVu dGx5IG1hcCBvdmVyCj4gKz4gY29uc2VydmF0aXZlIHJvb3RzIGZyb20gdGhlIHRocmVhZCByZWdp c3RlcnMgYW5kIGludGVycnVwdCBjb250ZXh0cy4KPgo+ICBFeHBlcmltZW50YWw6IGludGVyZmFj ZSBzdWJqZWN0IHRvIGNoYW5nZS4iCj4gICAgKHdoZW4gKHR5cGVwIG9iamVjdCAnKG9yIGJpZ251 bSBmbG9hdCBzYi1zeXM6c3lzdGVtLWFyZWEtcG9pbnRlcgo+IGRpZmYgLS1naXQgYS9jb250cmli L3NiLW1hbnVhbC9kb2MvYmV5b25kLWFuc2kubGlzcCBiL2NvbnRyaWIvc2ItbWFudWFsL2RvYy9i ZXlvbmQtYW5zaS5saXNwCj4gaW5kZXggZjRlMzljZDU4Li5lNjZkMWY2MzkgMTAwNjQ0Cj4gLS0t IGEvY29udHJpYi9zYi1tYW51YWwvZG9jL2JleW9uZC1hbnNpLmxpc3AKPiArKysgYi9jb250cmli L3NiLW1hbnVhbC9kb2MvYmV5b25kLWFuc2kubGlzcAo+IEBAIC0xMDQzLDYgKzEwNDMsNyBAQAo+ ICAgIHRoZSBvcGVyYXRpb25zLCBwcm9kdWNpbmcgaXRzIGFyZ3VtZW50OyB0aGUgZGVjbGFyYXRp b24gaXMgbm90Cj4gICAgY2hlY2tlZC4gSW4gc2hvcnQ6IGRvbid0IHVzZSBpdC4iCj4gICAgOzsg RklYTUU6IEl0J3Mgbm90IGEgbWFjcm8uCj4gKyAgIytuaWwKPiAgICAoc2ItZXh0OnRydWx5LXRo ZSBtYWNybykKPiAgICAiVGhlIFNCLUVYVDpGUkVFWkUtVFlQRSBkZWNsYXJhdGlvbiBkZWNsYXJl cyB0aGF0IGEgdHlwZSB3aWxsIG5ldmVyCj4gICAgY2hhbmdlLCB3aGljaCBjYW4gbWFrZSB0eXBl IHRlc3RpbmcgKGUuZy4gd2l0aCBUWVBFUCkgbW9yZSBlZmZpY2llbnQKPiBkaWZmIC0tZ2l0IGEv Y29udHJpYi9zYi1tYW51YWwvZG9jL2NvbXBpbGVyLmxpc3AgYi9jb250cmliL3NiLW1hbnVhbC9k b2MvY29tcGlsZXIubGlzcAo+IGluZGV4IGY4ODM4MjgyNi4uNmZmNGRjMjNhIDEwMDY0NAo+IC0t LSBhL2NvbnRyaWIvc2ItbWFudWFsL2RvYy9jb21waWxlci5saXNwCj4gKysrIGIvY29udHJpYi9z Yi1tYW51YWwvZG9jL2NvbXBpbGVyLmxpc3AKPiBAQCAtMjg1LDExICsyODUsMTEgQEAKPiAgICBk aWFnbm9zdGljIG1lc3NhZ2UsIGl0IGFsd2F5cyBkaXNwbGF5cyB0aGUgbW9zdCBzcGVjaWZpYyAo aW5uZXJtb3N0KQo+ICAgIHJlc3BvbnNpYmxlIGZvcm0uIEZvciBleGFtcGxlLCBjb21waWxpbmcg dGhpcyBmdW5jdGlvbgo+Cj4gLSAgICAoZGVmdW4gYmFyICh4KQo+IC0gICAgICAobGV0IChhKQo+ IC0gICAgICAgIChkZWNsYXJlIChmaXhudW0gYSkpCj4gLSAgICAgICAgKHNldHEgYSAoZm9vIHgp KQo+IC0gICAgICAgIGEpKQo+ICsgICAgICAoZGVmdW4gYmFyICh4KQo+ICsgICAgICAgIChsZXQg KGEpCj4gKyAgICAgICAgICAoZGVjbGFyZSAoZml4bnVtIGEpKQo+ICsgICAgICAgICAgKHNldHEg YSAoZm9vIHgpKQo+ICsgICAgICAgICAgYSkpCj4KPiAgICBnaXZlcyB0aGlzIGVycm9yIG1lc3Nh Z2UKPgo+IGRpZmYgLS1naXQgYS9jb250cmliL3NiLW1hbnVhbC9kb2MvZmZpLmxpc3AgYi9jb250 cmliL3NiLW1hbnVhbC9kb2MvZmZpLmxpc3AKPiBpbmRleCA3Nzk2MzgxZTMuLmFiZmRiMDAzNCAx MDA2NDQKPiAtLS0gYS9jb250cmliL3NiLW1hbnVhbC9kb2MvZmZpLmxpc3AKPiArKysgYi9jb250 cmliL3NiLW1hbnVhbC9kb2MvZmZpLmxpc3AKPiBAQCAtNzEzLDcgKzcxMyw3IEBACj4KPiAgICAg ICAgICAgICh3aXRoLWFsaWVuICgocmVzICgqIChzdHJ1Y3QgYy1zdHJ1Y3QpKQo+ICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgKGMtZnVuY3Rpb24gNSBcImFub3RoZXIgTGlzcCBzdHJpbmdc IiAoYWRkciBjLXN0cnVjdCkgYXIpKSkKPiAtICAgICAgICAgICAgKGZvcm1hdCB0IFwifiZhbXA7 YmFjayBmcm9tIEMgZnVuY3Rpb25+JVwiKQo+ICsgICAgICAgICAgICAoZm9ybWF0IHQgXCJ+JmJh Y2sgZnJvbSBDIGZ1bmN0aW9ufiVcIikKPiAgICAgICAgICAgICAgKG11bHRpcGxlLXZhbHVlLXBy b2cxCj4gICAgICAgICAgICAgICAgICAodmFsdWVzIChzbG90IHJlcyAneCkKPiAgICAgICAgICAg ICAgICAgICAgICAgICAgKHNsb3QgcmVzICdzKSkKPiBkaWZmIC0tZ2l0IGEvY29udHJpYi9zYi1t YW51YWwvZG9jL3NiY2wubGlzcCBiL2NvbnRyaWIvc2ItbWFudWFsL2RvYy9zYmNsLmxpc3AKPiBp bmRleCBmMjAzM2EzZjAuLmUxZWI5Yzc0MSAxMDA2NDQKPiAtLS0gYS9jb250cmliL3NiLW1hbnVh bC9kb2Mvc2JjbC5saXNwCj4gKysrIGIvY29udHJpYi9zYi1tYW51YWwvZG9jL3NiY2wubGlzcAo+ IEBAIC0xLDYgKzEsMTcgQEAKPiAgKGluLXBhY2thZ2UgOnNiLW1hbnVhbCkKPgo+ICAoZGVmc2Vj dGlvbiBAc2JjbC1tYW51YWwgKDp0aXRsZSAiU0JDTCBNYW51YWwiKQo+ICsgICMuKGZvcm1hdCBu aWwgIlRoaXMgbWFudWFsIOKAkyBmb3IgU0JDTCB2ZXJzaW9uIGB+QWAsIGdlbmVyYXRlZCBffkFf IOKAkwo+ICsgIGlzIHBhcnQgb2YgdGhlIFNCQ0wgc29mdHdhcmUgc3lzdGVtLiBTZWUgdGhlIGBc XFxcUkVBRE1FYCBmaWxlIGZvcgo+ICsgIG1vcmUgaW5mb3JtYXRpb24uCj4gKwo+ICsgIFRoaXMg bWFudWFsIGlzIGxhcmdlbHkgZGVyaXZlZCBmcm9tIHRoZSBtYW51YWwgZm9yIHRoZSBDTVVDTCBz eXN0ZW0sCj4gKyAgd2hpY2ggd2FzIHByb2R1Y2VkIGF0IENhcm5lZ2llIE1lbGxvbiBVbml2ZXJz aXR5IGFuZCBsYXRlciByZWxlYXNlZAo+ICsgIGludG8gdGhlIHB1YmxpYyBkb21haW4uIFRoaXMg bWFudWFsIGlzIGluIHRoZSBwdWJsaWMgZG9tYWluIGFuZCBpcwo+ICsgIHByb3ZpZGVkIHdpdGgg YWJzb2x1dGVseSBubyB3YXJyYW50eS4gU2VlIHRoZSBgXFxcXENPUFlJTkdgIGFuZAo+ICsgIGBc XFxcQ1JFRElUU2AgZmlsZXMgZm9yIG1vcmUgaW5mb3JtYXRpb24uIgo+ICsgICAgICAgICAgICAo bGlzcC1pbXBsZW1lbnRhdGlvbi12ZXJzaW9uKQo+ICsgICAgICAgICAgICAoZG9jdW1lbnRhdGlv bi1nZW5lcmF0aW9uLWRhdGUtc3RyaW5nIDpsb25nIHQpKQo+ICAgIChAc3VwcG9ydC1hbmQtYnVn cyBzZWN0aW9uKQo+ICAgIChAaW50cm9kdWN0aW9uIHNlY3Rpb24pCj4gICAgKEBzdGFydGluZy1h bmQtc3RvcHBpbmcgc2VjdGlvbikKPiBkaWZmIC0tZ2l0IGEvY29udHJpYi9zYi1tZDUvbWQ1Lmxp c3AgYi9jb250cmliL3NiLW1kNS9tZDUubGlzcAo+IGluZGV4IDUwMWM1MjFhZi4uZmY5NzRiMjEx IDEwMDY0NAo+IC0tLSBhL2NvbnRyaWIvc2ItbWQ1L21kNS5saXNwCj4gKysrIGIvY29udHJpYi9z Yi1tZDUvbWQ1Lmxpc3AKPiBAQCAtNjM0LDcgKzYzNCw3IEBAIEZJTkFMSVpFLU1ENS1TVEFURSBy ZXN1bHRzIGluIHVuc3BlY2lmaWVkIGJlaGF2aW91ci4iCj4KPiAgKGRlZnVuIG1kNXN1bS1zZXF1 ZW5jZSAoc2VxdWVuY2UgJmtleSAoc3RhcnQgMCkgZW5kKQo+ICAgICJDYWxjdWxhdGUgdGhlIE1E NSBtZXNzYWdlLWRpZ2VzdCBvZiBkYXRhIGluIFNFUVVFTkNFLCB3aGljaCBzaG91bGQKPiAtYmUg YSAxZCBzaW1wbGUtYXJyYXkgd2l0aCBlbGVtZW50IHR5cGUgKHVuc2lnbmVkLWJ5dGUgOCkuICBP biBDTVUgQ0wKPiArYmUgYSAxZCBTSU1QTEUtQVJSQVkgd2l0aCBlbGVtZW50IHR5cGUgKFVOU0lH TkVELUJZVEUgOCkuIE9uIENNVSBDTAo+ICBhbmQgU0JDTCBub24tc2ltcGxlIGFuZCBub24tMWQg YXJyYXlzIHdpdGggdGhpcyBlbGVtZW50LXR5cGUgYXJlIGFsc28KPiAgc3VwcG9ydGVkLiIKPiAg ICAoZGVjbGFyZSAob3B0aW1pemUgKHNwZWVkIDMpIChzYWZldHkgMykgKHNwYWNlIDApIChkZWJ1 ZyAxKSkKPiBAQCAtNzIzLDcgKzcyMyw3IEBAIG9wZXJhdGlvbnMuICBUaGlzIHNob3VsZCBiZSBh IG11bHRpcGxlIG9mIDY0LCB0aGUgTUQ1IGJsb2NrIHNpemUuIikpCj4KPiAgKGRlZnVuIG1kNXN1 bS1zdHJlYW0gKHN0cmVhbSkKPiAgICAiQ2FsY3VsYXRlIGFuIE1ENSBtZXNzYWdlLWRpZ2VzdCBv ZiB0aGUgY29udGVudHMgb2YgU1RSRUFNLiAgSXRzCj4gLWVsZW1lbnQtdHlwZSBoYXMgdG8gYmUg KHVuc2lnbmVkLWJ5dGUgOCkuIFVzZSBvbiBjaGFyYWN0ZXIgc3RyZWFtcyBpcwo+ICtlbGVtZW50 LXR5cGUgaGFzIHRvIGJlIChVTlNJR05FRC1CWVRFIDgpLiBVc2Ugb24gY2hhcmFjdGVyIHN0cmVh bXMgaXMKPiAgREVQUkVDQVRFRCwgYXMgdGhpcyB3aWxsIG5vdCB3b3JrIGNvcnJlY3RseSBvbiBp bXBsZW1lbnRhdGlvbnMgd2l0aAo+ICBDSEFSLUNPREUtTElNSVQgPiAyNTYgYW5kIGlnbm9yZXMg Y2hhcmFjdGVyIGNvZGluZyBpc3N1ZXMuIgo+ICAgIChkZWNsYXJlIChvcHRpbWl6ZSAoc3BlZWQg MykgKHNhZmV0eSAzKSAoc3BhY2UgMCkgKGRlYnVnIDEpKSkKPiBkaWZmIC0tZ2l0IGEvY29udHJp Yi9zYi1wb3NpeC9pbnRlcmZhY2UubGlzcCBiL2NvbnRyaWIvc2ItcG9zaXgvaW50ZXJmYWNlLmxp c3AKPiBpbmRleCAwNjkxOGVlMWUuLmJlNTFhOGE2ZCAxMDA2NDQKPiAtLS0gYS9jb250cmliL3Ni LXBvc2l4L2ludGVyZmFjZS5saXNwCj4gKysrIGIvY29udHJpYi9zYi1wb3NpeC9pbnRlcmZhY2Uu bGlzcAo+IEBAIC0zMzcsNyArMzM3LDcgQEAKPiAgICAgICAgICAgOmRvY3VtZW50YXRpb24KPiAg ICAgICAgICAgIlByb2Nlc3MgSUQgb2YgdGhlIHByb2Nlc3MgaG9sZGluZyB0aGUgbG9jazsKPiAg ICAgICAgICAgcmV0dXJuZWQgd2l0aCBgXFxcXEZfR0VUTEtgLiIpKQo+IC0gICAoOmRvY3VtZW50 YXRpb24gIkNsYXNzIHJlcHJlc2VudGluZyBsb2NrcyB1c2VkIGluIGZjbnRsKDIpLiIpKQo+ICsg ICAoOmRvY3VtZW50YXRpb24gIkNsYXNzIHJlcHJlc2VudGluZyBsb2NrcyB1c2VkIGluIGBcXGZj bnRsKDIpYC4iKSkKPiAgICAoZGVmaW5lLWVudHJ5LXBvaW50ICJmY250bCIgKGZkIGNtZCAmb3B0 aW9uYWwgKGFyZyBuaWwgYXJncCkpCj4gICAgICAoaWYgYXJncAo+ICAgICAgICAgIChldHlwZWNh c2UgYXJnCj4gQEAgLTEwNzIsNyArMTA3Miw3IEBAIG5vdCBzdXBwb3J0ZWQuIgo+ICAgIChkZWZ1 biBzeXNsb2cgKHByaW9yaXR5IGZvcm1hdCAmcmVzdCBhcmdzKQo+ICAgICAgIlNlbmQgYSBtZXNz YWdlIHRvIHRoZSBzeXNsb2cgZmFjaWxpdHksIHdpdGggc2V2ZXJpdHkgbGV2ZWwKPiAgUFJJT1JJ VFkuICBUaGUgbWVzc2FnZSB3aWxsIGJlIGZvcm1hdHRlZCBhcyBieSBDTDpGT1JNQVQgKHJhdGhl cgo+IC10aGFuIEMncyBwcmludGYpIHdpdGggZm9ybWF0IHN0cmluZyBGT1JNQVQgYW5kIGFyZ3Vt ZW50cyBBUkdTLiIKPiArdGhhbiBDJ3MgYHByaW50ZmApIHdpdGggZm9ybWF0IHN0cmluZyBGT1JN QVQgYW5kIGFyZ3VtZW50cyBBUkdTLiIKPiAgICAgIChmbGV0ICgoc3lzbG9nMSAocHJpb3JpdHkg bWVzc2FnZSkKPiAgICAgICAgICAgICAgIChhbGllbi1mdW5jYWxsIChleHRlcm4tYWxpZW4KPiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAic3lzbG9nIiAoZnVuY3Rpb24gdm9pZCBpbnQK PiBkaWZmIC0tZ2l0IGEvY29udHJpYi9zYi1wb3NpeC9tYWNyb3MubGlzcCBiL2NvbnRyaWIvc2It cG9zaXgvbWFjcm9zLmxpc3AKPiBpbmRleCBkNzRmNzFkNTYuLjJhNzA0ZTI3NSAxMDA2NDQKPiAt LS0gYS9jb250cmliL3NiLXBvc2l4L21hY3Jvcy5saXNwCj4gKysrIGIvY29udHJpYi9zYi1wb3Np eC9tYWNyb3MubGlzcAo+IEBAIC01LDcgKzUsNyBAQAo+Cj4gIE5vdGUgdGhhdCBuYXRpdmUgbmFt ZXN0cmluZyBzeW50YXggaXMgZGlzdGluY3QgZnJvbSBMaXNwIG5hbWVzdHJpbmcgc3ludGF4Ogo+ Cj4gLSAgXChwYXRobmFtZSBcIi9mb28qL2JhclwiKQo+ICsgICAgKHBhdGhuYW1lIFwiL2Zvbyov YmFyXCIpCj4KPiAgaXMgYSB3aWxkIHBhdGhuYW1lIHdpdGggYSBwYXR0ZXJuLW1hdGNoaW5nIGRp cmVjdG9yeSBjb21wb25lbnQuCj4gIFNCLUVYVDpQQVJTRS1OQVRJVkUtTkFNRVNUUklORyBtYXkg YmUgdXNlZCB0byBjb25zdHJ1Y3QgTGlzcCBwYXRobmFtZXMgdGhhdAo+IEBAIC0xNSwxNiArMTUs MTYgQEAgbmFtZXN0cmluZyBzeW50YXguCj4KPiAgTm90ZSBhbHNvIHRoYXQgUE9TSVggZmlsZW5h bWUgc3ludGF4IGRvZXMgbm90IGRpc3Rpbmd1aXNoIHRoZSBuYW1lcyBvZiBmaWxlcwo+ICBmcm9t IHRoZSBuYW1lcyBvZiBkaXJlY3RvcmllczogaW4gb3JkZXIgdG8gcGFyc2UgdGhlIG5hbWUgb2Yg YSBkaXJlY3RvcnkgaW4KPiAtUE9TSVggZmlsZW5hbWUgc3ludGF4IGludG8gYSBwYXRobmFtZSBN WS1ERUZBVUxUUyBmb3Igd2hpY2gKPiArUE9TSVggZmlsZW5hbWUgc3ludGF4IGludG8gYSBwYXRo bmFtZSBgTVktREVGQVVMVFNgIGZvciB3aGljaAo+Cj4gLSAgXChtZXJnZS1wYXRobmFtZXMgKG1h a2UtcGF0aG5hbWUgOm5hbWUgXCJGT09cIiA6Y2FzZSA6Y29tbW9uKQo+IC0gICAgICAgICAgICAg ICAgICAgIG15LWRlZmF1bHRzKQo+ICsgICAgKG1lcmdlLXBhdGhuYW1lcyAobWFrZS1wYXRobmFt ZSA6bmFtZSBcIkZPT1wiIDpjYXNlIDpjb21tb24pCj4gKyAgICAgICAgICAgICAgICAgICAgICBt eS1kZWZhdWx0cykKPgo+ICByZXR1cm5zIGEgcGF0aG5hbWUgdGhhdCBkZW5vdGVzIGEgZmlsZSBp biB0aGUgZGlyZWN0b3J5LCBzdXBwbHkgYSB0cnVlCj4gIDpBUy1ESVJFQ1RPUlkgYXJndW1lbnQg dG8gU0ItRVhUOlBBUlNFLU5BVElWRS1OQU1FU1RSSU5HLiBMaWtld2lzZSwgdG8gc3VwcGx5Cj4g IHRoZSBuYW1lIG9mIGEgZGlyZWN0b3J5IHRvIGEgUE9TSVggZnVuY3Rpb24gaW4gbm9uLWRpcmVj dG9yeSBzeW50YXgsIHN1cHBseSBhCj4gIHRydWUgOkFTLUZJTEUgYXJndW1lbnQgdG8gU0ItRVhU Ok5BVElWRS1OQU1FU1RSSU5HLiIKPiAtICAgIkRlc2lnbmF0b3IgZm9yIGEgRklMRU5BTUU6IGEg U1RSSU5HIGRlc2lnbmF0aW5nIGl0c2VsZiwgb3IgYQo+ICsgICAiRGVzaWduYXRvciBmb3IgYSBb RklMRU5BTUVdW3R5cGVdOiBhIFNUUklORyBkZXNpZ25hdGluZyBpdHNlbGYsIG9yIGEKPiAgZGVz aWduYXRvciBmb3IgYSBQQVRITkFNRSBkZXNpZ25hdGluZyB0aGUgY29ycmVzcG9uZGluZyBuYXRp dmUgbmFtZXN0cmluZy4iCj4gICAgICJDb252ZXJ0cyBGSUxFTkFNRS1ERVNJR05BVE9SIGludG8g YSBGSUxFTkFNRS4iKQo+ICAgIChwYXRobmFtZQo+IEBAIC00Myw4ICs0Myw4IEBAIG5hdGl2ZSBm aWxlIGRlc2NyaXB0b3IuCj4KPiAgTm90ZSB0aGF0IG1peGluZyBJL08gb3BlcmF0aW9ucyBvbiBh IEZJTEUtU1RSRUFNIHdpdGggb3BlcmF0aW9ucyBkaXJlY3RseSBvbiBpdHMKPiAgZGVzY3JpcHRv ciBtYXkgcHJvZHVjZSB1bmV4cGVjdGVkIHJlc3VsdHMgaWYgdGhlIHN0cmVhbSBpcyBidWZmZXJl ZC4iCj4gLSAgICAgIkRlc2lnbmF0b3IgZm9yIGEgRklMRS1ERVNDUklQVE9SOiBlaXRoZXIgYSBm aXhudW0gZGVzaWduYXRpbmcgaXRzZWxmLCBvcgo+IC1hIEZJTEUtU1RSRUFNIGRlc2lnbmF0aW5n IHRoZSB1bmRlcmx5aW5nIGZpbGUtZGVzY3JpcHRvci4iCj4gKyAgICAgIkRlc2lnbmF0b3IgZm9y IGEgW0ZJTEUtREVTQ1JJUFRPUl1bdHlwZV06IGVpdGhlciBhIGZpeG51bSBkZXNpZ25hdGluZwo+ ICtpdHNlbGYsIG9yIGEgRklMRS1TVFJFQU0gZGVzaWduYXRpbmcgdGhlIHVuZGVybHlpbmcgZmls ZS1kZXNjcmlwdG9yLiIKPiAgICAgICAiQ29udmVydHMgRklMRS1ERVNDUklQVE9SLURFU0lHTkFU T1IgaW50byBhIEZJTEUtREVTQ1JJUFRPUi4iKQo+ICAgIChmaWxlLXN0cmVhbQo+ICAgICAoc2It c3lzOmZkLXN0cmVhbS1mZCBmaWxlLWRlc2NyaXB0b3IpKQo+IGRpZmYgLS1naXQgYS9jb250cmli L3NiLXNwcm9mL2NhbGwtY291bnRpbmcubGlzcCBiL2NvbnRyaWIvc2Itc3Byb2YvY2FsbC1jb3Vu dGluZy5saXNwCj4gaW5kZXggYjYxY2I1YmU0Li5hMTExZTI3YWUgMTAwNjQ0Cj4gLS0tIGEvY29u dHJpYi9zYi1zcHJvZi9jYWxsLWNvdW50aW5nLmxpc3AKPiArKysgYi9jb250cmliL3NiLXNwcm9m L2NhbGwtY291bnRpbmcubGlzcAo+IEBAIC0yMCw4ICsyMCw4IEBACj4gICAgIk1hcmsgdGhlIGZ1 bmN0aW9ucyBuYW1lZCBieSBOQU1FUyBhcyBiZWluZyBzdWJqZWN0IHRvIGNhbGwgY291bnRpbmcK PiAgZHVyaW5nIHN0YXRpc3RpY2FsIHByb2ZpbGluZy4gSWYgYSBzdHJpbmcgaXMgdXNlZCBhcyBh IG5hbWUsIGl0IHdpbGwKPiAgYmUgaW50ZXJwcmV0ZWQgYXMgYSBwYWNrYWdlIG5hbWUuIEluIHRo aXMgY2FzZSBjYWxsIGNvdW50aW5nIHdpbGwgYmUKPiAtZG9uZSBmb3IgYWxsIGZ1bmN0aW9ucyB3 aXRoIG5hbWVzIGxpa2UgWCBvciAoU0VURiBYKSwgd2hlcmUgWCBpcyBhIHN5bWJvbAo+IC13aXRo IHRoZSBwYWNrYWdlIGFzIGl0cyBob21lIHBhY2thZ2UuIgo+ICtkb25lIGZvciBhbGwgZnVuY3Rp b25zIHdpdGggbmFtZXMgbGlrZSBgWGAgb3IgYChTRVRGIFgpYCwgd2hlcmUgYFhgIGlzCj4gK2Eg c3ltYm9sIHdpdGggdGhlIHBhY2thZ2UgYXMgaXRzIGhvbWUgcGFja2FnZS4iCj4gICAgKGRvbGlz dCAobmFtZSBuYW1lcykKPiAgICAgIChpZiAoc3RyaW5ncCBuYW1lKQo+ICAgICAgICAgIChsZXQg KChwYWNrYWdlIChmaW5kLXBhY2thZ2UgbmFtZSkpKQo+IGRpZmYgLS1naXQgYS9jb250cmliL3Ni LXNwcm9mL2ludGVyZmFjZS5saXNwIGIvY29udHJpYi9zYi1zcHJvZi9pbnRlcmZhY2UubGlzcAo+ IGluZGV4IDkzOGIzNjkwMi4uMzI1MjE3ZDVmIDEwMDY0NAo+IC0tLSBhL2NvbnRyaWIvc2Itc3By b2YvaW50ZXJmYWNlLmxpc3AKPiArKysgYi9jb250cmliL3NiLXNwcm9mL2ludGVyZmFjZS5saXNw Cj4gQEAgLTM1LDQwICszNSw0OSBAQCBSZXR1cm5zIHRoZSB2YWx1ZXMgZnJvbSB0aGUgbGFzdCBl dmFsdWF0aW9uIG9mIEJPRFkuCj4KPiAgVGhlIGZvbGxvd2luZyBrZXl3b3JkIGFyZ3MgYXJlIHJl Y29nbml6ZWQ6Cj4KPiAtIDpTQU1QTEUtSU5URVJWQUwgPG4+Cj4gLSAgIFRha2UgYSBzYW1wbGUg ZXZlcnkgPG4+IHNlY29uZHMuIERlZmF1bHQgaXMgKlNBTVBMRS1JTlRFUlZBTCouCj4gKy0gOlNB TVBMRS1JTlRFUlZBTCBgPG4+YAo+Cj4gLSA6TU9ERSA8bW9kZT4KPiAtICAgSWYgOkNQVSwgcnVu IHRoZSBwcm9maWxlciBpbiBDUFUgcHJvZmlsaW5nIG1vZGUuIElmIDpBTExPQywgcnVuIHRoZQo+ IC0gICBwcm9maWxlciBpbiBhbGxvY2F0aW9uIHByb2ZpbGluZyBtb2RlLiBJZiA6VElNRSwgcnVu IHRoZSBwcm9maWxlcgo+IC0gICBpbiB3YWxsY2xvY2sgcHJvZmlsaW5nIG1vZGUuCj4gKyAgICBU YWtlIGEgc2FtcGxlIGV2ZXJ5IDxuPiBzZWNvbmRzLiBEZWZhdWx0IGlzICpTQU1QTEUtSU5URVJW QUwqLgo+Cj4gLSA6TUFYLVNBTVBMRVMgPG1heD4KPiAtICAgSWYgOkxPT1AgaXMgTklMICh0aGUg ZGVmYXVsdCksIGNvbGxlY3Qgbm8gbW9yZSB0aGFuIDxtYXg+IHNhbXBsZXMuCj4gLSAgIElmIDpM T09QIGlzIFQsIHJlcGVhdCBldmFsdWF0aW5nIGJvZHkgdW50aWwgPG1heD4gc2FtcGxlcyBhcmUg dGFrZW4uCj4gLSAgIERlZmF1bHQgaXMgKk1BWC1TQU1QTEVTKi4KPiArLSA6TU9ERSBgPG1vZGU+ YAo+Cj4gLSA6UkVQT1JUIDx0eXBlPgo+IC0gICBJZiBzcGVjaWZpZWQsIGNhbGwgUkVQT1JUIHdp dGggOlRZUEUgPHR5cGU+IGF0IHRoZSBlbmQuCj4gKyAgICBJZiA6Q1BVLCBydW4gdGhlIHByb2Zp bGVyIGluIENQVSBwcm9maWxpbmcgbW9kZS4gSWYgOkFMTE9DLCBydW4KPiArICAgIHRoZSBwcm9m aWxlciBpbiBhbGxvY2F0aW9uIHByb2ZpbGluZyBtb2RlLiBJZiA6VElNRSwgcnVuIHRoZQo+ICsg ICAgcHJvZmlsZXIgaW4gd2FsbGNsb2NrIHByb2ZpbGluZyBtb2RlLgo+Cj4gLSA6UkVTRVQgPGJv b2w+Cj4gLSAgIElmIHRydWUsIGNhbGwgUkVTRVQgYXQgdGhlIGJlZ2lubmluZy4KPiArLSA6TUFY LVNBTVBMRVMgYDxtYXg+YAo+Cj4gLSA6VEhSRUFEUyA8bGlzdC1mb3JtPgo+IC0gICBGb3JtIHRo YXQgZXZhbHVhdGVzIHRvIHRoZSBsaXN0IHRocmVhZHMgdG8gcHJvZmlsZSwgb3IgOkFMTCB0byBp bmRpY2F0ZQo+IC0gICB0aGF0IGFsbCB0aHJlYWRzIHNob3VsZCBiZSBwcm9maWxlZC4gRGVmYXVs dHMgdG8gYWxsIHRocmVhZHMuCj4gKyAgICBJZiA6TE9PUCBpcyBOSUwgKHRoZSBkZWZhdWx0KSwg Y29sbGVjdCBubyBtb3JlIHRoYW4gYDxtYXg+YAo+ICsgICAgc2FtcGxlcy4gSWYgOkxPT1AgaXMg VCwgcmVwZWF0IGV2YWx1YXRpbmcgYm9keSB1bnRpbCBgPG1heD5gCj4gKyAgICBzYW1wbGVzIGFy ZSB0YWtlbi4gRGVmYXVsdCBpcyAqTUFYLVNBTVBMRVMqLgo+Cj4gLSAgIDpUSFJFQURTIGhhcyBu byBlZmZlY3Qgb24gY2FsbC1jb3VudGluZyBhdCB0aGUgbW9tZW50Lgo+ICstIDpSRVBPUlQgYDx0 eXBlPmAKPgo+IC0gICBPbiBzb21lIHBsYXRmb3JtcyAoZWcuIERhcndpbikgdGhlIHNpZ25hbHMg dXNlZCBieSB0aGUgcHJvZmlsZXIgYXJlCj4gLSAgIG5vdCBwcm9wZXJseSBkZWxpdmVyZWQgdG8g dGhyZWFkcyBpbiBwcm9wb3J0aW9uIHRvIHRoZWlyIENQVSB1c2FnZQo+IC0gICB3aGVuIGRvaW5n IDpDUFUgcHJvZmlsaW5nLiBJZiB5b3Ugc2VlIGVtcHR5IGNhbGwgZ3JhcGhzLCBvciBhcmUgb2J2 aW91c2x5Cj4gLSAgIG1pc3Npbmcgc2V2ZXJhbCBzYW1wbGVzIGZyb20gY2VydGFpbiB0aHJlYWRz LCB5b3UgbWF5IGJlIGZhbGxpbmcgYWZvdWwKPiAtICAgb2YgdGhpcy4gSW4gdGhpcyBjYXNlIHVz aW5nIDpNT0RFIDpUSU1FIGlzIGxpa2VseSB0byB3b3JrIGJldHRlci4KPiArICAgIElmIHNwZWNp ZmllZCwgY2FsbCBSRVBPUlQgd2l0aCA6VFlQRSBgPHR5cGU+YCBhdCB0aGUgZW5kLgo+Cj4gLSA6 TE9PUCA8Ym9vbD4KPiAtICAgSWYgZmFsc2UgKHRoZSBkZWZhdWx0KSwgZXZhbHVhdGUgQk9EWSBv bmx5IG9uY2UuIElmIHRydWUgcmVwZWF0ZWRseQo+IC0gICBldmFsdWF0ZSBCT0RZLiIKPiArLSA6 UkVTRVQgYDxib29sPmAKPiArCj4gKyAgICBJZiB0cnVlLCBjYWxsIFJFU0VUIGF0IHRoZSBiZWdp bm5pbmcuCj4gKwo+ICstIDpUSFJFQURTIGA8bGlzdC1mb3JtPmAKPiArCj4gKyAgICBGb3JtIHRo YXQgZXZhbHVhdGVzIHRvIHRoZSBsaXN0IHRocmVhZHMgdG8gcHJvZmlsZSwgb3IgOkFMTCB0bwo+ ICsgICAgaW5kaWNhdGUgdGhhdCBhbGwgdGhyZWFkcyBzaG91bGQgYmUgcHJvZmlsZWQuIERlZmF1 bHRzIHRvIGFsbAo+ICsgICAgdGhyZWFkcy4KPiArCj4gKyAgICA6VEhSRUFEUyBoYXMgbm8gZWZm ZWN0IG9uIGNhbGwtY291bnRpbmcgYXQgdGhlIG1vbWVudC4KPiArCj4gKyAgICBPbiBzb21lIHBs YXRmb3JtcyAoZS5nLiBEYXJ3aW4pIHRoZSBzaWduYWxzIHVzZWQgYnkgdGhlIHByb2ZpbGVyCj4g KyAgICBhcmUgbm90IHByb3Blcmx5IGRlbGl2ZXJlZCB0byB0aHJlYWRzIGluIHByb3BvcnRpb24g dG8gdGhlaXIgQ1BVCj4gKyAgICB1c2FnZSB3aGVuIGRvaW5nIDpDUFUgcHJvZmlsaW5nLiBJZiB5 b3Ugc2VlIGVtcHR5IGNhbGwgZ3JhcGhzLCBvcgo+ICsgICAgYXJlIG9idmlvdXNseSBtaXNzaW5n IHNldmVyYWwgc2FtcGxlcyBmcm9tIGNlcnRhaW4gdGhyZWFkcywgeW91Cj4gKyAgICBtYXkgYmUg ZmFsbGluZyBhZm91bCBvZiB0aGlzLiBJbiB0aGlzIGNhc2UgdXNpbmcgOk1PREUgOlRJTUUgaXMK PiArICAgIGxpa2VseSB0byB3b3JrIGJldHRlci4KPiArCj4gKy0gOkxPT1AgYDxib29sPmAKPiAr Cj4gKyAgICBJZiBmYWxzZSAodGhlIGRlZmF1bHQpLCBldmFsdWF0ZSBCT0RZIG9ubHkgb25jZS4g SWYgdHJ1ZQo+ICsgICAgcmVwZWF0ZWRseSBldmFsdWF0ZSBCT0RZLiIKPiAgICAoZGVjbGFyZSAo dHlwZSByZXBvcnQtdHlwZSByZXBvcnQpKQo+ICAgIChjaGVjay10eXBlIGxvb3AgYm9vbGVhbikK PiAgICAjLXNiLXRocmVhZCAodW5sZXNzIChlcSB0aHJlYWRzIDphbGwpICh3YXJuICI6VEhSRUFE UyBpcyBpZ25vcmVkIikpCj4gQEAgLTEyMSwyOCArMTMwLDMzIEBAIGluYXBwcm9wcmlhdGUgc2V0 IG9mIHNhbXBsZWQgdGhyZWFkcywgb3IgcG9zc2libHkgYSBwcm9maWxlciBidWcufjpAPiIpKQo+ ICAgICJTdGFydCBwcm9maWxpbmcgc3RhdGlzdGljYWxseSBpbiB0aGUgY3VycmVudCB0aHJlYWQg aWYgbm90IGFscmVhZHkgcHJvZmlsaW5nLgo+ICBUaGUgZm9sbG93aW5nIGtleXdvcmQgYXJncyBh cmUgcmVjb2duaXplZDoKPgo+IC0gICA6U0FNUExFLUlOVEVSVkFMIDxuPgo+IC0gICAgIFRha2Ug YSBzYW1wbGUgZXZlcnkgPG4+IHNlY29uZHMuICBEZWZhdWx0IGlzICpTQU1QTEUtSU5URVJWQUwq Lgo+ICstIDpTQU1QTEUtSU5URVJWQUwgYDxuPmAKPgo+IC0gICA6TU9ERSA8bW9kZT4KPiAtICAg ICBJZiA6Q1BVLCBydW4gdGhlIHByb2ZpbGVyIGluIENQVSBwcm9maWxpbmcgbW9kZS4gSWYgOkFM TE9DLCBydW4KPiAtICAgICB0aGUgcHJvZmlsZXIgaW4gYWxsb2NhdGlvbiBwcm9maWxpbmcgbW9k ZS4gSWYgOlRJTUUsIHJ1biB0aGUgcHJvZmlsZXIKPiAtICAgICBpbiB3YWxsY2xvY2sgcHJvZmls aW5nIG1vZGUuCj4gKyAgICBUYWtlIGEgc2FtcGxlIGV2ZXJ5IGA8bj5gIHNlY29uZHMuIERlZmF1 bHQgaXMgKlNBTVBMRS1JTlRFUlZBTCouCj4KPiAtICAgOk1BWC1TQU1QTEVTIDxtYXg+Cj4gLSAg ICAgTWF4aW11bSBudW1iZXIgb2Ygc3RhY2sgdHJhY2VzIHRvIGNvbGxlY3QuICBEZWZhdWx0IGlz ICpNQVgtU0FNUExFUyouCj4gKy0gOk1PREUgYDxtb2RlPmAKPgo+IC0gICA6VEhSRUFEUyA8bGlz dD4KPiAtICAgICBMaXN0IHRocmVhZHMgdG8gcHJvZmlsZSwgb3IgOkFMTCB0byBpbmRpY2F0ZSB0 aGF0IGFsbCB0aHJlYWRzIHNob3VsZCBiZQo+IC0gICAgIHByb2ZpbGVkLiBEZWZhdWx0cyB0byA6 QUxMLgo+ICsgICAgSWYgOkNQVSwgcnVuIHRoZSBwcm9maWxlciBpbiBDUFUgcHJvZmlsaW5nIG1v ZGUuIElmIDpBTExPQywgcnVuCj4gKyAgICB0aGUgcHJvZmlsZXIgaW4gYWxsb2NhdGlvbiBwcm9m aWxpbmcgbW9kZS4gSWYgOlRJTUUsIHJ1biB0aGUKPiArICAgIHByb2ZpbGVyIGluIHdhbGxjbG9j ayBwcm9maWxpbmcgbW9kZS4KPgo+IC0gICAgIDpUSFJFQURTIGhhcyBubyBlZmZlY3Qgb24gY2Fs bC1jb3VudGluZyBhdCB0aGUgbW9tZW50Lgo+ICstIDpNQVgtU0FNUExFUyBgPG1heD5gCj4KPiAt ICAgICBPbiBzb21lIHBsYXRmb3JtcyAoZWcuIERhcndpbikgdGhlIHNpZ25hbHMgdXNlZCBieSB0 aGUgcHJvZmlsZXIgYXJlCj4gLSAgICAgbm90IHByb3Blcmx5IGRlbGl2ZXJlZCB0byB0aHJlYWRz IGluIHByb3BvcnRpb24gdG8gdGhlaXIgQ1BVIHVzYWdlCj4gLSAgICAgd2hlbiBkb2luZyA6Q1BV IHByb2ZpbGluZy4gSWYgeW91IHNlZSBlbXB0eSBjYWxsIGdyYXBocywgb3IgYXJlIG9idmlvdXNs eQo+IC0gICAgIG1pc3Npbmcgc2V2ZXJhbCBzYW1wbGVzIGZyb20gY2VydGFpbiB0aHJlYWRzLCB5 b3UgbWF5IGJlIGZhbGxpbmcgYWZvdWwKPiAtICAgICBvZiB0aGlzLiIKPiArICAgIE1heGltdW0g bnVtYmVyIG9mIHN0YWNrIHRyYWNlcyB0byBjb2xsZWN0LiBEZWZhdWx0IGlzCj4gKyAgICAqTUFY LVNBTVBMRVMqLgo+ICsKPiArLSA6VEhSRUFEUyBgPGxpc3Q+YAo+ICsKPiArICAgIExpc3QgdGhy ZWFkcyB0byBwcm9maWxlLCBvciA6QUxMIHRvIGluZGljYXRlIHRoYXQgYWxsIHRocmVhZHMKPiAr ICAgIHNob3VsZCBiZSBwcm9maWxlZC4gRGVmYXVsdHMgdG8gOkFMTC4KPiArCj4gKyAgICA6VEhS RUFEUyBoYXMgbm8gZWZmZWN0IG9uIGNhbGwtY291bnRpbmcgYXQgdGhlIG1vbWVudC4KPiArCj4g KyAgICBPbiBzb21lIHBsYXRmb3JtcyAoZS5nLiBEYXJ3aW4pIHRoZSBzaWduYWxzIHVzZWQgYnkg dGhlIHByb2ZpbGVyCj4gKyAgICBhcmUgbm90IHByb3Blcmx5IGRlbGl2ZXJlZCB0byB0aHJlYWRz IGluIHByb3BvcnRpb24gdG8gdGhlaXIgQ1BVCj4gKyAgICB1c2FnZSB3aGVuIGRvaW5nIDpDUFUg cHJvZmlsaW5nLiBJZiB5b3Ugc2VlIGVtcHR5IGNhbGwgZ3JhcGhzLCBvcgo+ICsgICAgYXJlIG9i dmlvdXNseSBtaXNzaW5nIHNldmVyYWwgc2FtcGxlcyBmcm9tIGNlcnRhaW4gdGhyZWFkcywgeW91 Cj4gKyAgICBtYXkgYmUgZmFsbGluZyBhZm91bCBvZiB0aGlzLiIKPiAgICA7OyBTdGFydGluZyB0 aGUgY2xvY2sgd2l0aCBhbiBpbnRlcnZhbCBvZiB6ZXJvIG9yIG5lZ2F0aXZlIGlzIG1lYW5pbmds ZXNzLgo+ICAgIDs7IElmLCBieSAwLCB5b3UgbWVhbiBTVE9QLVBST0ZJTElORyB0aGVuIHlvdSBz aG91bGQgdXNlIFNUT1AtUFJPRklMSU5HLgo+ICAgIChkZWNsYXJlICh0eXBlIChyZWFsICgwKSkg c2FtcGxlLWludGVydmFsKSkKPiBkaWZmIC0tZ2l0IGEvY29udHJpYi9zYi1zcHJvZi9yZXBvcnQu bGlzcCBiL2NvbnRyaWIvc2Itc3Byb2YvcmVwb3J0Lmxpc3AKPiBpbmRleCBiNTM3NTgwZmUuLjlh ZWQ1NGFiOCAxMDA2NDQKPiAtLS0gYS9jb250cmliL3NiLXNwcm9mL3JlcG9ydC5saXNwCj4gKysr IGIvY29udHJpYi9zYi1zcHJvZi9yZXBvcnQubGlzcAo+IEBAIC0yMjMsNDEgKzIyMyw0OSBAQAo+ ICAgICJSZXBvcnQgc3RhdGlzdGljYWwgcHJvZmlsaW5nIHJlc3VsdHMuICBUaGUgZm9sbG93aW5n IGtleXdvcmQKPiAgICAgYXJncyBhcmUgcmVjb2duaXplZDoKPgo+IC0gICA6VFlQRSA8dHlwZT4K PiAtICAgICAgU3BlY2lmaWVzIHRoZSB0eXBlIG9mIHJlcG9ydCB0byBnZW5lcmF0ZS4gIElmIDpG TEFULCBzaG93Cj4gLSAgICAgIGZsYXQgcmVwb3J0LCBpZiA6R1JBUEggc2hvdyBhIGNhbGwgZ3Jh cGggYW5kIGEgZmxhdCByZXBvcnQuCj4gLSAgICAgIElmIG5pbCwgZG9uJ3QgcHJpbnQgb3V0IGEg cmVwb3J0Lgo+ICsgIC0gOlRZUEUgYDx0eXBlPmAKPiArCj4gKyAgICAgIFNwZWNpZmllcyB0aGUg dHlwZSBvZiByZXBvcnQgdG8gZ2VuZXJhdGUuIElmIDpGTEFULCBzaG93IGZsYXQKPiArICAgICAg cmVwb3J0LCBpZiA6R1JBUEggc2hvdyBhIGNhbGwgZ3JhcGggYW5kIGEgZmxhdCByZXBvcnQuIElm IG5pbCwKPiArICAgICAgZG9uJ3QgcHJpbnQgb3V0IGEgcmVwb3J0Lgo+ICsKPiArICAtIDpTVFJF QU0gYDxzdHJlYW0+YAo+Cj4gLSAgIDpTVFJFQU0gPHN0cmVhbT4KPiAgICAgICAgU3BlY2lmeSBh IHN0cmVhbSB0byBwcmludCB0aGUgcmVwb3J0IG9uLiAgRGVmYXVsdCBpcwo+ICAgICAgICAqU1RB TkRBUkQtT1VUUFVUKi4KPgo+IC0gICA6TUFYIDxtYXg+Cj4gLSAgICAgIERvbid0IHNob3cgbW9y ZSB0aGFuIDxtYXg+IGVudHJpZXMgaW4gdGhlIGZsYXQgcmVwb3J0Lgo+ICsgIC0gOk1BWCBgPG1h eD5gCj4KPiAtICAgOk1JTi1QRVJDRU5UIDxtaW4tcGVyY2VudD4KPiAtICAgICAgRG9uJ3Qgc2hv dyBmdW5jdGlvbnMgdGFraW5nIGxlc3MgdGhhbiA8bWluLXBlcmNlbnQ+IG9mIHRoZQo+ICsgICAg ICBEb24ndCBzaG93IG1vcmUgdGhhbiBgPG1heD5gIGVudHJpZXMgaW4gdGhlIGZsYXQgcmVwb3J0 Lgo+ICsKPiArICAtIDpNSU4tUEVSQ0VOVCBgPG1pbi1wZXJjZW50PmAKPiArCj4gKyAgICAgIERv bid0IHNob3cgZnVuY3Rpb25zIHRha2luZyBsZXNzIHRoYW4gYDxtaW4tcGVyY2VudD5gIG9mIHRo ZQo+ICAgICAgICB0b3RhbCB0aW1lIGluIHRoZSBmbGF0IHJlcG9ydC4KPgo+IC0gICA6U09SVC1C WSA8Y29sdW1uPgo+ICsgIC0gOlNPUlQtQlkgYDxjb2x1bW4+YAo+ICsKPiAgICAgICAgSWYgOlNB TVBMRVMsIHNvcnQgZmxhdCByZXBvcnQgYnkgbnVtYmVyIG9mIHNhbXBsZXMgdGFrZW4uCj4gICAg ICAgIElmIDpDVU1VTEFUSVZFLVNBTVBMRVMsIHNvcnQgZmxhdCByZXBvcnQgYnkgY3VtdWxhdGl2 ZSBudW1iZXIgb2Ygc2FtcGxlcwo+ICAgICAgICB0YWtlbiAoc2hvd3MgaG93IG11Y2ggdGltZSBl YWNoIGZ1bmN0aW9uIHNwZW50IG9uIHN0YWNrLikgRGVmYXVsdAo+ICAgICAgICBpcyAqUkVQT1JU LVNPUlQtQlkqLgo+Cj4gLSAgIDpTT1JULU9SREVSIDxvcmRlcj4KPiArICAtIDpTT1JULU9SREVS IGA8b3JkZXI+YAo+ICsKPiAgICAgICAgSWYgOkRFU0NFTkRJTkcsIHNvcnQgZmxhdCByZXBvcnQg aW4gZGVzY2VuZGluZyBvcmRlci4gSWYgOkFTQ0VORElORywKPiAgICAgICAgc29ydCBmbGF0IHJl cG9ydCBpbiBhc2NlbmRpbmcgb3JkZXIuIERlZmF1bHQgaXMgKlJFUE9SVC1TT1JULU9SREVSKi4K Pgo+IC0gICA6U0hPVy1QUk9HUkVTUyA8Ym9vbD4KPiArICAtIDpTSE9XLVBST0dSRVNTIGA8Ym9v bD5gCj4gKwo+ICAgICAgIElmIHRydWUsIHByaW50IHByb2dyZXNzIG1lc3NhZ2VzIHdoaWxlIGdl bmVyYXRpbmcgdGhlIGNhbGwgZ3JhcGguCj4KPiAtICAgOkNBTEwtR1JBUEggPGdyYXBoPgo+IC0g ICAgIFByaW50IGEgcmVwb3J0IGZyb20gPGdyYXBoPiBpbnN0ZWFkIG9mIHRoZSBsYXRlc3QgcHJv ZmlsaW5nCj4gKyAgLSA6Q0FMTC1HUkFQSCBgPGdyYXBoPmAKPiArCj4gKyAgICAgUHJpbnQgYSBy ZXBvcnQgZnJvbSBgPGdyYXBoPmAgaW5zdGVhZCBvZiB0aGUgbGF0ZXN0IHByb2ZpbGluZwo+ICAg ICAgIHJlc3VsdHMuCj4KPiAgVmFsdWUgb2YgdGhpcyBmdW5jdGlvbiBpcyBhIENBTEwtR1JBUEgg b2JqZWN0IHJlcHJlc2VudGluZyB0aGUKPiAtcmVzdWx0aW5nIGNhbGwtZ3JhcGgsIG9yIE5JTCBp ZiB0aGVyZSBhcmUgbm8gc2FtcGxlcyAoZWcuIHJpZ2h0IGFmdGVyCj4gK3Jlc3VsdGluZyBjYWxs LWdyYXBoLCBvciBOSUwgaWYgdGhlcmUgYXJlIG5vIHNhbXBsZXMgKGUuZy4gcmlnaHQgYWZ0ZXIK PiAgY2FsbGluZyBSRVNFVC4pCj4KPiAgUHJvZmlsaW5nIGlzIHN0b3BwZWQgYmVmb3JlIHRoZSBj YWxsIGdyYXBoIGlzIGdlbmVyYXRlZC4iCj4gZGlmZiAtLWdpdCBhL3NyYy9jb2RlL2FsaWVuLWNh bGxiYWNrLmxpc3AgYi9zcmMvY29kZS9hbGllbi1jYWxsYmFjay5saXNwCj4gaW5kZXggYjU1YjFk Njk1Li44MTFhNWY0YzkgMTAwNjQ0Cj4gLS0tIGEvc3JjL2NvZGUvYWxpZW4tY2FsbGJhY2subGlz cAo+ICsrKyBiL3NyYy9jb2RlL2FsaWVuLWNhbGxiYWNrLmxpc3AKPiBAQCAtMjc1LDkgKzI3NSw5 IEBAIENyZWF0ZSBuZXcgYWxpZW4gY2FsbGFibGUgKG9sZCBhbGllbiBjYWxsYWJsZSBnZXRzIGZy ZWVkKS4iKSkKPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmJvZHkgYm9keQo+ ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmZW52aXJvbm1lbnQgZW52KQo+ICAg ICJEZWZpbmUgYW4gYWxpZW4gZnVuY3Rpb24gd2hpY2ggY2FuIGJlIGNhbGxlZCBieSBhbGllbiBj b2RlLiBUaGUgYWxpZW4KPiAtZnVuY3Rpb24gcmV0dXJuZWQgYnkgKGFsaWVuLWNhbGxhYmxlLWZ1 bmN0aW9uIE5BTUUpIGV4cGVjdHMgYWxpZW4KPiArZnVuY3Rpb24gcmV0dXJuZWQgYnkgKEFMSUVO LUNBTExBQkxFLUZVTkNUSU9OIE5BTUUpIGV4cGVjdHMgYWxpZW4KPiAgYXJndW1lbnRzIG9mIHRo ZSBzcGVjaWZpZWQgYEFSRy1UWVBFYHMgYW5kIHJldHVybnMgYW4gYWxpZW4gb2YgdHlwZQo+IC1g UkVTVUxULVRZUEVgLgo+ICtSRVNVTFQtVFlQRS4KPgo+ICBUWVBFRC1MQU1CREEtTElTVCBpcyBh IGxpc3Qgb2YgYChBUkctTkFNRSBBUkctVFlQRSlgIGVsZW1lbnRzLCBhbmQKPiAgQk9EWSBpcyBg e0RPQy1TVFJJTkd9IHtERUNMfSoge0ZPUk19KmAuCj4gZGlmZiAtLWdpdCBhL3NyYy9jb2RlL2Fy cmF5Lmxpc3AgYi9zcmMvY29kZS9hcnJheS5saXNwCj4gaW5kZXggZjcwZDI3Y2I1Li4yMGE3Njhk MzEgMTAwNjQ0Cj4gLS0tIGEvc3JjL2NvZGUvYXJyYXkubGlzcAo+ICsrKyBiL3NyYy9jb2RlL2Fy cmF5Lmxpc3AKPiBAQCAtMTc1Niw5ICsxNzU2LDkgQEAgdmVjdG9yLiBNdWx0aWRpbWVuc2lvbmFs IGFycmF5cywgYXJyYXlzIHdpdGggZmlsbCBwb2ludGVycywgYW5kIGFkanVzdGFibGUKPiAgYXJy YXlzIGhhdmUgYW4gdW5kZXJseWluZyBzdG9yYWdlIHZlY3RvciB3aXRoIHRoZSBzYW1lIEFSUkFZ LUVMRU1FTlQtVFlQRSBhcwo+ICBBUlJBWSwgd2hpY2ggdGhpcyBmdW5jdGlvbiByZXR1cm5zLgo+ Cj4gLUltcG9ydGFudCBub3RlOiB0aGUgdW5kZXJseWluZyB2ZWN0b3IgaXMgYW4gaW1wbGVtZW50 YXRpb24gZGV0YWlsLiBFdmVuIHRob3VnaAo+IC10aGlzIGZ1bmN0aW9uIGV4cG9zZXMgaXQsIGNo YW5nZXMgaW4gdGhlIGltcGxlbWVudGF0aW9uIG1heSBjYXVzZSB0aGlzCj4gLWZ1bmN0aW9uIHRv IGJlIHJlbW92ZWQgd2l0aG91dCBmdXJ0aGVyIHdhcm5pbmcuIgo+ICs+IF9Ob3RlXzogdGhlIHVu ZGVybHlpbmcgdmVjdG9yIGlzIGFuIGltcGxlbWVudGF0aW9uIGRldGFpbC4gRXZlbgo+ICs+IHRo b3VnaCB0aGlzIGZ1bmN0aW9uIGV4cG9zZXMgaXQsIGNoYW5nZXMgaW4gdGhlIGltcGxlbWVudGF0 aW9uIG1heQo+ICs+IGNhdXNlIHRoaXMgZnVuY3Rpb24gdG8gYmUgcmVtb3ZlZCB3aXRob3V0IGZ1 cnRoZXIgd2FybmluZy4iCj4gICAgOzsgS0xVREdFOiBXaXRob3V0IFRSVUxZLVRIRSB0aGUgc3lz dGVtIGlzIG5vdCBzbWFydCBlbm91Z2ggdG8gZmlndXJlIG91dCB0aGF0Cj4gICAgOzsgdGhlIHJl dHVybiB2YWx1ZSBpcyBhbHdheXMgb2YgdGhlIGtub3duIHR5cGUuCj4gICAgKHRydWx5LXRoZSAo c2ltcGxlLWFycmF5ICogKCopKQo+IGRpZmYgLS1naXQgYS9zcmMvY29kZS9iYXJyaWVyLmxpc3Ag Yi9zcmMvY29kZS9iYXJyaWVyLmxpc3AKPiBpbmRleCBkMjY3YzdhMGYuLjlmYzg3YzYwZiAxMDA2 NDQKPiAtLS0gYS9zcmMvY29kZS9iYXJyaWVyLmxpc3AKPiArKysgYi9zcmMvY29kZS9iYXJyaWVy Lmxpc3AKPiBAQCAtMzgsMjggKzM4LDI3IEBAIHJlb3JkZXJpbmcuCj4KPiAgS0lORCBzaG91bGQg YmUgb25lIG9mOgo+Cj4gLSAgOkNPTVBJTEVSCj4gLSAgICBQcmV2ZW50IHRoZSBjb21waWxlciBm cm9tIHJlb3JkZXJpbmcgbWVtb3J5IGFjY2VzcyBhY3Jvc3MgdGhlCj4gLSAgICBiYXJyaWVyLgo+ IC0gIDpNRU1PUlkKPiAtICAgIFByZXZlbnQgdGhlIGNwdSBmcm9tIHJlb3JkZXJpbmcgYW55IG1l bW9yeSBhY2Nlc3MgYWNyb3NzIHRoZQo+IC0gICAgYmFycmllci4KPiAtICA6UkVBRAo+IC0gICAg UHJldmVudCB0aGUgY3B1IGZyb20gcmVvcmRlcmluZyBhbnkgcmVhZCBhY2Nlc3MgYWNyb3NzIHRo ZQo+IC0gICAgYmFycmllci4KPiAtICA6V1JJVEUKPiAtICAgIFByZXZlbnQgdGhlIGNwdSBmcm9t IHJlb3JkZXJpbmcgYW55IHdyaXRlIGFjY2VzcyBhY3Jvc3MgdGhlCj4gLSAgICBiYXJyaWVyLgo+ IC0gIDpEQVRBLURFUEVOREVOQ1kKPiAtICAgIFByZXZlbnQgdGhlIGNwdSBmcm9tIHJlb3JkZXJp bmcgZGVwZW5kZW50IG1lbW9yeSByZWFkcyBhY3Jvc3MgdGhlCj4gLSAgICBiYXJyaWVyIChyZXF1 aXJpbmcgcmVhZHMgYmVmb3JlIHRoZSBiYXJyaWVyIHRvIGNvbXBsZXRlIGJlZm9yZSBhbnkKPiAt ICAgIHJlYWRzIGFmdGVyIHRoZSBiYXJyaWVyIHRoYXQgZGVwZW5kIG9uIHRoZW0pLiAgVGhpcyBp cyBhIHdlYWtlcgo+IC0gICAgZm9ybSBvZiB0aGUgOlJFQUQgYmFycmllci4KPiArLSA6Q09NUElM RVI6IFByZXZlbnQgdGhlIGNvbXBpbGVyIGZyb20gcmVvcmRlcmluZyBtZW1vcnkgYWNjZXNzIGFj cm9zcwo+ICsgIHRoZSBiYXJyaWVyLgo+Cj4gLUZPUk1TIGlzIGFuIGltcGxpY2l0IFBST0dOLCBl dmFsdWF0ZWQgYmVmb3JlIHRoZSBiYXJyaWVyLiAgQkFSUklFUgo+ICstIDpNRU1PUlk6IFByZXZl bnQgdGhlIENQVSBmcm9tIHJlb3JkZXJpbmcgYW55IG1lbW9yeSBhY2Nlc3MgYWNyb3NzCj4gKyAg dGhlIGJhcnJpZXIuCj4gKwo+ICstIDpSRUFEOiBQcmV2ZW50IHRoZSBDUFUgZnJvbSByZW9yZGVy aW5nIGFueSByZWFkIGFjY2VzcyBhY3Jvc3MgdGhlCj4gKyAgYmFycmllci4KPiArCj4gKy0gOldS SVRFOiBQcmV2ZW50IHRoZSBjcHUgZnJvbSByZW9yZGVyaW5nIGFueSB3cml0ZSBhY2Nlc3MgYWNy b3NzIHRoZQo+ICsgIGJhcnJpZXIuCj4gKwo+ICstIDpEQVRBLURFUEVOREVOQ1k6IFByZXZlbnQg dGhlIGNwdSBmcm9tIHJlb3JkZXJpbmcgZGVwZW5kZW50IG1lbW9yeQo+ICsgIHJlYWRzIGFjcm9z cyB0aGUgYmFycmllciAocmVxdWlyaW5nIHJlYWRzIGJlZm9yZSB0aGUgYmFycmllciB0bwo+ICsg IGNvbXBsZXRlIGJlZm9yZSBhbnkgcmVhZHMgYWZ0ZXIgdGhlIGJhcnJpZXIgdGhhdCBkZXBlbmQg b24gdGhlbSkuCj4gKyAgVGhpcyBpcyBhIHdlYWtlciBmb3JtIG9mIHRoZSA6UkVBRCBiYXJyaWVy Lgo+ICsKPiArRk9STVMgaXMgYW4gaW1wbGljaXQgUFJPR04sIGV2YWx1YXRlZCBiZWZvcmUgdGhl IGJhcnJpZXIuIEJBUlJJRVIKPiAgcmV0dXJucyB0aGUgdmFsdWVzIG9mIHRoZSBsYXN0IGZvcm0g aW4gRk9STVMuCj4KPiAtVGhlIGZpbGUgXCJtZW1vcnktYmFycmllcnMudHh0XCIgaW4gdGhlIExp bnV4IGtlcm5lbCBkb2N1bWVudGF0aW9uIGlzCj4gK1RoZSBmaWxlIGBtZW1vcnktYmFycmllcnMu dHh0YCBpbiB0aGUgTGludXgga2VybmVsIGRvY3VtZW50YXRpb24gaXMKPiAgaGlnaGx5IHJlY29t bWVuZGVkIHJlYWRpbmcgZm9yIGFueW9uZSBwcm9ncmFtbWluZyBhdCB0aGlzIGxldmVsLiIKPiAg ICBgKG11bHRpcGxlLXZhbHVlLXByb2cxCj4gICAgICAocHJvZ24gLEBmb3JtcykKPiBkaWZmIC0t Z2l0IGEvc3JjL2NvZGUvY29sZC1pbml0Lmxpc3AgYi9zcmMvY29kZS9jb2xkLWluaXQubGlzcAo+ IGluZGV4IDZlZDhiNDQ1YS4uNDZhNGRiNDhiIDEwMDY0NAo+IC0tLSBhL3NyYy9jb2RlL2NvbGQt aW5pdC5saXNwCj4gKysrIGIvc3JjL2NvZGUvY29sZC1pbml0Lmxpc3AKPiBAQCAtMzk3LDEzICsz OTcsMTMgQEAgZGVmYXVsdHMgdG8gMCB3aGVuIEFCT1JUIGlzIGZhbHNlLCBhbmQgMSB3aGVuIGl0 IGlzIHRydWUuCj4KPiAgV2hlbiBBQk9SVCBpcyBmYWxzZSAodGhlIGRlZmF1bHQpLCBjdXJyZW50 IHRocmVhZCBpcyBmaXJzdCB1bndvdW5kLAo+ICAqRVhJVC1IT09LUyogYXJlIHJ1biwgb3RoZXIg dGhyZWFkcyBhcmUgdGVybWluYXRlZCwgYW5kIHN0YW5kYXJkCj4gLW91dHB1dCBzdHJlYW1zIGFy ZSBmbHVzaGVkIGJlZm9yZSBTQkNMIGNhbGxzIGBleGl0YCgzKSAtLSBhdCB3aGljaCBwb2ludAo+ IC1gYXRleGl0YCgzKSBmdW5jdGlvbnMgd2lsbCBydW4uIElmIG11bHRpcGxlIHRocmVhZHMgY2Fs bCBFWElUIHdpdGggQUJPUlQKPiArb3V0cHV0IHN0cmVhbXMgYXJlIGZsdXNoZWQgYmVmb3JlIFNC Q0wgY2FsbHMgYGV4aXQoMylgIC0tIGF0IHdoaWNoIHBvaW50Cj4gK2BhdGV4aXQoMylgIGZ1bmN0 aW9ucyB3aWxsIHJ1bi4gSWYgbXVsdGlwbGUgdGhyZWFkcyBjYWxsIEVYSVQgd2l0aCBBQk9SVAo+ ICBiZWluZyBmYWxzZSwgdGhlIGZpcnN0IG9uZSB0byBjYWxsIGl0IHdpbGwgY29tcGxldGUgdGhl IHByb3RvY29sLgo+Cj4gLVdoZW4gQUJPUlQgaXMgdHJ1ZSwgU0JDTCBleGl0cyBpbW1lZGlhdGVs eSBieSBjYWxsaW5nIGBfZXhpdGAoMikKPiAtd2l0aG91dCB1bndpbmRpbmcgc3RhY2ssIG9yIGNh bGxpbmcgZXhpdCBob29rcy4gTm90ZSB0aGF0IGBfZXhpdGAoMikKPiAtZG9lcyBub3QgY2FsbCBg YXRleGl0YCgzKSBmdW5jdGlvbnMgdW5saWtlIGBleGl0YCgzKS4KPiArV2hlbiBBQk9SVCBpcyB0 cnVlLCBTQkNMIGV4aXRzIGltbWVkaWF0ZWx5IGJ5IGNhbGxpbmcgYF9leGl0KDIpYAo+ICt3aXRo b3V0IHVud2luZGluZyBzdGFjaywgb3IgY2FsbGluZyBleGl0IGhvb2tzLiBOb3RlIHRoYXQgYF9l eGl0KDIpYAo+ICtkb2VzIG5vdCBjYWxsIGBhdGV4aXQoMylgIGZ1bmN0aW9ucyB1bmxpa2UgYGV4 aXQoMylgLgo+Cj4gIFJlY3Vyc2l2ZSBjYWxscyB0byBFWElUIGNhdXNlIEVYSVQgdG8gYmVoYXZl IGFzIGlmIEFCT1JUIHdhcyB0cnVlLgo+Cj4gZGlmZiAtLWdpdCBhL3NyYy9jb2RlL2Nyb3NzLWVh cmx5Lmxpc3AgYi9zcmMvY29kZS9jcm9zcy1lYXJseS5saXNwCj4gaW5kZXggZDk1OGIwNzNlLi40 ZmE0ZTA3OGEgMTAwNjQ0Cj4gLS0tIGEvc3JjL2NvZGUvY3Jvc3MtZWFybHkubGlzcAo+ICsrKyBi L3NyYy9jb2RlL2Nyb3NzLWVhcmx5Lmxpc3AKPiBAQCAtMjUsNyArMjUsMTIgQEAKPiAgIytob3N0 LXF1aXJrcy1jbXUKPiAgKGRlY2xhaW0gKG5vdGlubGluZSBwb3NpdGlvbiBwb3NpdGlvbi1pZiBw b3NpdGlvbi1pZi1ub3QpKQo+Cj4gLShkZWZ2YXIgKmRlZmF1bHQtc291cmNlLWV4dGVybmFsLWZv cm1hdCogOmRlZmF1bHQpCj4gKyhkZWZ2YXIgKmRlZmF1bHQtc291cmNlLWV4dGVybmFsLWZvcm1h dCogOmRlZmF1bHQKPiArICAiSWYgQ09NUElMRS1GSUxFJ3MgOkVYVEVSTkFMLUZPUk1BVCBpcyA6 REVGQVVMVCwgdGhlIHNvdXJjZSBmaWxlIGlzCj4gKyAgT1BFTmVkIHdpdGggKkRFRkFVTFQtU09V UkNFLUVYVEVSTkFMLUZPUk1BVCouIDpERUZBVUxULCB0aGUgZGVmYXVsdAo+ICsgIHZhbHVlIG9m IHRoaXMgdmFyaWFibGUsIHRlbGxzIE9QRU4gdG8gZGVmYXVsdCB0bwo+ICsgICpERUZBVUxULUVY VEVSTkFMLUZPUk1BVCouIFNpbmNlIDpERUZBVUxUIGlzIE9QRU4ncyBkZWZhdWx0Cj4gKyAgOkVY VEVSTkFMLUZPUk1BVCwgdGhpcyBpcyBhbGwgdmVyeSBkZWZhdWx0LiIpCj4KPiAgKGRlZm1hY3Jv IGRlZmdsb2JhbCAobmFtZSB2YWx1ZSAmcmVzdCBkb2MpCj4gICAgYChldmFsLXdoZW4gKDpjb21w aWxlLXRvcGxldmVsIDpsb2FkLXRvcGxldmVsIDpleGVjdXRlKQo+IGRpZmYgLS1naXQgYS9zcmMv Y29kZS9kZWJ1Zy5saXNwIGIvc3JjL2NvZGUvZGVidWcubGlzcAo+IGluZGV4IGMxYjVjMGVkZC4u MGVhODY1OWJlIDEwMDY0NAo+IC0tLSBhL3NyYy9jb2RlL2RlYnVnLmxpc3AKPiArKysgYi9zcmMv Y29kZS9kZWJ1Zy5saXNwCj4gQEAgLTE3NTgsMjAgKzE3NTgsMjEgQEAgZm9ybXMgdGhhdCBleHBs aWNpdGx5IGNvbnRyb2wgdGhpcyBraW5kIG9mIGV2YWx1YXRpb24uIikKPiAgOzs7IHdvcmshIEFs YXMsIGl0IGRvZXNuJ3Qgc2VlbSB0byB3b3JrIGluIENNVSBDTCBYODYgZWl0aGVyLi4KPiAgKGRl ZnVuIHZhciAobmFtZSAmb3B0aW9uYWwgKGlkIDAgaWQtc3VwcGxpZWQpKQo+ICAgICJSZXR1cm4g YSB2YXJpYWJsZSdzIHZhbHVlIGlmIHBvc3NpYmxlLiBOQU1FIGlzIGEgc2ltcGxlLXN0cmluZyBv ciBzeW1ib2wuCj4gLSAgIElmIGl0IGlzIGEgc2ltcGxlLXN0cmluZywgaXQgaXMgYW4gaW5pdGlh bCBzdWJzdHJpbmcgb2YgdGhlIHZhcmlhYmxlJ3MgbmFtZS4KPiAtICAgSWYgbmFtZSBpcyBhIHN5 bWJvbCwgaXQgaGFzIHRoZSBzYW1lIG5hbWUgYW5kIHBhY2thZ2UgYXMgdGhlIHZhcmlhYmxlIHdo b3NlCj4gLSAgIHZhbHVlIHRoaXMgZnVuY3Rpb24gcmV0dXJucy4gSWYgdGhlIHN5bWJvbCBpcyB1 bmludGVybmVkLCB0aGVuIHRoZSB2YXJpYWJsZQo+IC0gICBoYXMgdGhlIHNhbWUgbmFtZSBhcyB0 aGUgc3ltYm9sLCBidXQgaXQgaGFzIG5vIHBhY2thZ2UuCj4gKyAgIElmIGl0IGlzIGEgc2ltcGxl LXN0cmluZywgaXQgaXMgYW4gaW5pdGlhbCBzdWJzdHJpbmcgb2YgdGhlCj4gKyAgIHZhcmlhYmxl J3MgbmFtZS4gSWYgbmFtZSBpcyBhIHN5bWJvbCwgaXQgaGFzIHRoZSBzYW1lIG5hbWUgYW5kCj4g KyAgIHBhY2thZ2UgYXMgdGhlIHZhcmlhYmxlIHdob3NlIHZhbHVlIHRoaXMgZnVuY3Rpb24gcmV0 dXJucy4gSWYgdGhlCj4gKyAgIHN5bWJvbCBpcyB1bmludGVybmVkLCB0aGVuIHRoZSB2YXJpYWJs ZSBoYXMgdGhlIHNhbWUgbmFtZSBhcyB0aGUKPiArICAgc3ltYm9sLCBidXQgaXQgaGFzIG5vIHBh Y2thZ2UuCj4KPiAtICAgSWYgbmFtZSBpcyB0aGUgaW5pdGlhbCBzdWJzdHJpbmcgb2YgdmFyaWFi bGVzIHdpdGggZGlmZmVyZW50IG5hbWVzLCB0aGVuCj4gLSAgIHRoaXMgcmV0dXJuIG5vIHZhbHVl cyBhZnRlciBkaXNwbGF5aW5nIHRoZSBhbWJpZ3VvdXMgbmFtZXMuIElmIG5hbWUKPiAtICAgZGV0 ZXJtaW5lcyBtdWx0aXBsZSB2YXJpYWJsZXMgd2l0aCB0aGUgc2FtZSBuYW1lLCB0aGVuIHlvdSBt dXN0IHVzZSB0aGUKPiAtICAgb3B0aW9uYWwgaWQgYXJndW1lbnQgdG8gc3BlY2lmeSB3aGljaCBv bmUgeW91IHdhbnQuIElmIHlvdSBsZWZ0IGlkCj4gLSAgIHVuc3BlY2lmaWVkLCB0aGVuIHRoaXMg cmV0dXJucyBubyB2YWx1ZXMgYWZ0ZXIgZGlzcGxheWluZyB0aGUgZGlzdGluZ3Vpc2hpbmcKPiAt ICAgaWQgdmFsdWVzLgo+ICsgICBJZiBuYW1lIGlzIHRoZSBpbml0aWFsIHN1YnN0cmluZyBvZiB2 YXJpYWJsZXMgd2l0aCBkaWZmZXJlbnQgbmFtZXMsCj4gKyAgIHRoZW4gdGhpcyByZXR1cm5zIG5v IHZhbHVlcyBhZnRlciBkaXNwbGF5aW5nIHRoZSBhbWJpZ3VvdXMgbmFtZXMuCj4gKyAgIElmIG5h bWUgZGV0ZXJtaW5lcyBtdWx0aXBsZSB2YXJpYWJsZXMgd2l0aCB0aGUgc2FtZSBuYW1lLCB0aGVu IHlvdQo+ICsgICBtdXN0IHVzZSB0aGUgb3B0aW9uYWwgSUQgYXJndW1lbnQgdG8gc3BlY2lmeSB3 aGljaCBvbmUgeW91IHdhbnQuIElmCj4gKyAgIHlvdSBsZWZ0IElEIHVuc3BlY2lmaWVkLCB0aGVu IHRoaXMgcmV0dXJucyBubyB2YWx1ZXMgYWZ0ZXIKPiArICAgZGlzcGxheWluZyB0aGUgZGlzdGlu Z3Vpc2hpbmcgaWQgdmFsdWVzLgo+Cj4gLSAgIFRoZSByZXN1bHQgb2YgdGhpcyBmdW5jdGlvbiBp cyBsaW1pdGVkIHRvIHRoZSBhdmFpbGFiaWxpdHkgb2YgdmFyaWFibGUKPiAtICAgaW5mb3JtYXRp b24uIFRoaXMgaXMgU0VURidhYmxlLiIKPiArICAgVGhlIHJlc3VsdCBvZiB0aGlzIGZ1bmN0aW9u IGlzIGxpbWl0ZWQgdG8gdGhlIGF2YWlsYWJpbGl0eSBvZgo+ICsgICB2YXJpYWJsZSBpbmZvcm1h dGlvbi4gVGhpcyBpcyBTRVRGYWJsZS4iCj4gICAgKGRlZmluZS12YXItb3BlcmF0aW9uIDpyZWYp KQo+ICAoZGVmdW4gKHNldGYgdmFyKSAodmFsdWUgbmFtZSAmb3B0aW9uYWwgKGlkIDAgaWQtc3Vw cGxpZWQpKQo+ICAgIChkZWZpbmUtdmFyLW9wZXJhdGlvbiA6c2V0IHZhbHVlKSkKPiBkaWZmIC0t Z2l0IGEvc3JjL2NvZGUvZGVmcGFja2FnZS5saXNwIGIvc3JjL2NvZGUvZGVmcGFja2FnZS5saXNw Cj4gaW5kZXggZGRlMDYyN2MwLi5mZTAwNzEyYjIgMTAwNjQ0Cj4gLS0tIGEvc3JjL2NvZGUvZGVm cGFja2FnZS5saXNwCj4gKysrIGIvc3JjL2NvZGUvZGVmcGFja2FnZS5saXNwCj4gQEAgLTIxNyw5 ICsyMTcsOSBAQCBpbXBsZW1lbnRhdGlvbiBpdCBpcyB+Uy4iICohZGVmYXVsdC1wYWNrYWdlLXVz ZS1saXN0KikKPiAgKGRlZm1hY3JvIGRlZnBhY2thZ2UgKHBhY2thZ2UgJnJlc3Qgb3B0aW9ucykK PiAgICAjLihmb3JtYXQgbmlsCj4gICAgICAgIkRlZmluZXMgYSBuZXcgcGFja2FnZSBjYWxsZWQg UEFDS0FHRS4gRWFjaCBvZiBPUFRJT05TIHNob3VsZCBiZSBvbmUgb2YgdGhlCj4gLSAgIGZvbGxv d2luZzogfnt+Jn40VCh+UyB+QSl+fQo+IC0gICBBbGwgb3B0aW9ucyBleGNlcHQgfnt+Uywgfn1h bmQgOkRPQ1VNRU5UQVRJT04gY2FuIGJlIHVzZWQgbXVsdGlwbGUKPiAtICAgdGltZXMuIgo+ICtm b2xsb3dpbmc6fiUgfnt+JX40VCh+UyB+QSl+fX4lCj4gK0FsbCBvcHRpb25zIGV4Y2VwdCB+e35T LCB+fWFuZCA6RE9DVU1FTlRBVElPTiBjYW4gYmUgdXNlZCBtdWx0aXBsZQo+ICt0aW1lcy4iCj4g ICAgICAgJyg6dXNlICJ7cGFja2FnZS1uYW1lfSoiCj4gICAgICAgICA6ZXhwb3J0ICJ7c3ltYm9s LW5hbWV9KiIKPiAgICAgICAgIDppbXBvcnQtZnJvbSAiPHBhY2thZ2UtbmFtZT4ge3N5bWJvbC1u YW1lfSoiCj4gZGlmZiAtLWdpdCBhL3NyYy9jb2RlL2ZpbGVzeXMubGlzcCBiL3NyYy9jb2RlL2Zp bGVzeXMubGlzcAo+IGluZGV4IDJkZWQ1NDJkNS4uNzViYTk3MTg4IDEwMDY0NAo+IC0tLSBhL3Ny Yy9jb2RlL2ZpbGVzeXMubGlzcAo+ICsrKyBiL3NyYy9jb2RlL2ZpbGVzeXMubGlzcAo+IEBAIC02 MjEsOCArNjIxLDggQEAgQm90aAo+ICAgICAgKERFTEVURS1ESVJFQ1RPUlkgXCIvdG1wL2Zvb1wi KQo+ICAgICAgKERFTEVURS1ESVJFQ1RPUlkgXCIvdG1wL2Zvby9cIikKPgo+IC1kZWxldGUgdGhl IFwiZm9vXCIgc3ViZGlyZWN0b3J5IG9mIFwiL3RtcFwiLCBvciBzaWduYWwgYW4gZXJyb3IgaWYg aXQgZG9lcyBub3QKPiAtZXhpc3Qgb3IgaWYgaXMgYSBmaWxlIG9yIGEgc3ltYm9saWMgbGluay4i Cj4gK2RlbGV0ZSB0aGUgYFwiZm9vXCJgIHN1YmRpcmVjdG9yeSBvZiBgXCIvdG1wXCJgLCBvciBz aWduYWwgYW4gZXJyb3IgaWYKPiAraXQgZG9lcyBub3QgZXhpc3Qgb3IgaWYgaXMgYSBmaWxlIG9y IGEgc3ltYm9saWMgbGluay4iCj4gICAgKGRlY2xhcmUgKHR5cGUgcGF0aG5hbWUtZGVzaWduYXRv ciBwYXRoc3BlYykpCj4gICAgKGxhYmVscyAoKHJlY3Vyc2UtbWVyZ2VkIChkaXIpCj4gICAgICAg ICAgICAgICAobGFtYmRhIChzdWIpCj4gZGlmZiAtLWdpdCBhL3NyYy9jb2RlL2ZvcmVpZ24tbG9h ZC5saXNwIGIvc3JjL2NvZGUvZm9yZWlnbi1sb2FkLmxpc3AKPiBpbmRleCBhNmYzYjY0MmIuLjEx OWJmNjNhZCAxMDA2NDQKPiAtLS0gYS9zcmMvY29kZS9mb3JlaWduLWxvYWQubGlzcAo+ICsrKyBi L3NyYy9jb2RlL2ZvcmVpZ24tbG9hZC5saXNwCj4gQEAgLTMzLDE3ICszMywxNyBAQAo+ICBjb250 YWluZXIgc3BlY2lmaWVkIGJ5IGRlc2lnbmF0ZWQgUEFUSE5BTUUsIHN1Y2ggYXMgYSAuc28gb24g YW4gRUxGIHBsYXRmb3JtLgo+Cj4gIExvY2F0aW5nIHRoZSBzaGFyZWQgb2JqZWN0IGZvbGxvd3Mg c3RhbmRhcmQgcnVsZXMgb2YgdGhlIHBsYXRmb3JtLCBjb25zdWx0IHRoZQo+IC1tYW51YWwgcGFn ZSBmb3IgYGRsb3BlbmAoMykgZm9yIGRldGFpbHMuIFR5cGljYWxseSBwYXRocyBzcGVjaWZpZWQg YnkKPiArbWFudWFsIHBhZ2UgZm9yIGBkbG9wZW4oMylgIGZvciBkZXRhaWxzLiBUeXBpY2FsbHkg cGF0aHMgc3BlY2lmaWVkIGJ5Cj4gIGVudmlyb25tZW50IHZhcmlhYmxlcyBzdWNoIGFzIExEX0xJ QlJBUllfUEFUSCBhcmUgc2VhcmNoZWQgaWYgdGhlIFBBVEhOQU1FIGhhcwo+ICBubyBkaXJlY3Rv cnksIGJ1dCBvbiBzb21lIHN5c3RlbXMgKGVnLiBNYWMgT1MgWCkgc2VhcmNoIG1heSBoYXBwZW4g ZXZlbiBpZgo+IC1QQVRITkFNRSBpcyBhYnNvbHV0ZS4gKE9uIFdpbmRvd3MgTG9hZExpYnJhcnkg aXMgdXNlZCBpbnN0ZWFkIG9mIGBkbG9wZW5gKDMpLikKPiArUEFUSE5BTUUgaXMgYWJzb2x1dGUu IChPbiBXaW5kb3dzIExvYWRMaWJyYXJ5IGlzIHVzZWQgaW5zdGVhZCBvZiBgZGxvcGVuKDMpYC4p Cj4KPiAgT24gbm9uLVdpbmRvd3MgcGxhdGZvcm1zIGNhbGxpbmcgTE9BRC1TSEFSRUQtT0JKRUNU IGFnYWluIHdpdGggYSBQQVRITkFNRQo+ICBFUVVBTCB0byB0aGUgZGVzaWduYXRlZCBwYXRobmFt ZSBvZiBhIHByZXZpb3VzIGNhbGwgd2lsbCByZXBsYWNlIHRoZSBvbGQKPiAgZGVmaW5pdGlvbnM7 IGlmIGEgc3ltYm9sIHdhcyBwcmV2aW91c2x5IHJlZmVyZW5jZWQgdGhyb3VnaCB0aGUgb2JqZWN0 IGFuZAo+ICBpcyBub3QgcHJlc2VudCBpbiB0aGUgcmVsb2FkZWQgdmVyc2lvbiBhbiBlcnJvciB3 aWxsIGJlIHNpZ25hbGxlZC4gUmVsb2FkaW5nCj4gLW1heSBub3Qgd29yayBhcyBleHBlY3RlZCBp ZiB1c2VyIG9yIGxpYnJhcnktY29kZSBoYXMgY2FsbGVkIGBkbG9wZW5gKDMpIG9uIHRoZQo+IC1z YW1lIHNoYXJlZCBvYmplY3Qgb3IgcnVubmluZyBvbiBhIHN5c3RlbSB3aGVyZSBgZGxjbG9zZWAo MykgaXMgYSBub29wLgo+ICttYXkgbm90IHdvcmsgYXMgZXhwZWN0ZWQgaWYgdXNlciBvciBsaWJy YXJ5LWNvZGUgaGFzIGNhbGxlZCBgZGxvcGVuKDMpYCBvbiB0aGUKPiArc2FtZSBzaGFyZWQgb2Jq ZWN0IG9yIHJ1bm5pbmcgb24gYSBzeXN0ZW0gd2hlcmUgYGRsY2xvc2UoMylgIGlzIGEgbm9vcC4K Pgo+ICBMT0FELVNIQVJFRC1PQkpFQ1QgaW50ZXJhY3RzIHdpdGggU0ItRVhUOlNBVkUtTElTUC1B TkQtRElFOgo+Cj4gZGlmZiAtLWdpdCBhL3NyYy9jb2RlL2djLmxpc3AgYi9zcmMvY29kZS9nYy5s aXNwCj4gaW5kZXggY2Q3YjJiOTJkLi43MzgwZTdiODMgMTAwNjQ0Cj4gLS0tIGEvc3JjL2NvZGUv Z2MubGlzcAo+ICsrKyBiL3NyYy9jb2RlL2djLmxpc3AKPiBAQCAtNTcsMTEgKzU3LDExIEBACj4g IChkZWNsYWltIChmdHlwZSAoc2Z1bmN0aW9uICgpIHVuc2lnbmVkLWJ5dGUpIGdldC1ieXRlcy1j b25zZWQpKQo+ICAoZGVmdW4gZ2V0LWJ5dGVzLWNvbnNlZCAoKQo+ICAgICJSZXR1cm4gdGhlIG51 bWJlciBvZiBieXRlcyBjb25zZWQgc2luY2UgdGhlIHByb2dyYW0gYmVnYW4uIFR5cGljYWxseQo+ IC10aGlzIHJlc3VsdCB3aWxsIGJlIGEgY29uc2VkIGJpZ251bSwgc28gaWYgeW91IGhhdmUgYW4g YXBwbGljYXRpb24gKGUuZy4KPiAtcHJvZmlsaW5nKSB3aGljaCBjYW4ndCB0b2xlcmF0ZSB0aGUg b3ZlcmhlYWQgb2YgY29uc2luZyBiaWdudW1zLCB5b3UnbGwKPiAtcHJvYmFibHkgd2FudCBlaXRo ZXIgdG8gaGFjayBpbiBhdCBhIGxvd2VyIGxldmVsIChhcyB0aGUgY29kZSBpbiB0aGUKPiAtU0It UFJPRklMRSBwYWNrYWdlIGRvZXMpLCBvciB0byBkZXNpZ24gYSBtb3JlIG1pY3JvZWZmaWNpZW50 IGludGVyZmFjZQo+IC1hbmQgc3VibWl0IGl0IGFzIGEgcGF0Y2guIgo+ICt0aGlzIHJlc3VsdCB3 aWxsIGJlIGEgY29uc2VkIGJpZ251bSwgc28gaWYgeW91IGhhdmUgYW4KPiArYXBwbGljYXRpb24g KGUuZy4gcHJvZmlsaW5nKSB3aGljaCBjYW4ndCB0b2xlcmF0ZSB0aGUgb3ZlcmhlYWQgb2YKPiAr Y29uc2luZyBiaWdudW1zLCB5b3UnbGwgcHJvYmFibHkgd2FudCBlaXRoZXIgdG8gaGFjayBpbiBh dCBhIGxvd2VyCj4gK2xldmVsIChhcyB0aGUgY29kZSBpbiB0aGUgYFNCLVBST0ZJTEVgIHBhY2th Z2UgZG9lcyksIG9yIHRvIGRlc2lnbiBhCj4gK21vcmUgbWljcm9lZmZpY2llbnQgaW50ZXJmYWNl IGFuZCBzdWJtaXQgaXQgYXMgYSBwYXRjaC4iCj4gICAgKCsgKGR5bmFtaWMtdXNhZ2UpCj4gICAg ICAgKm4tYnl0ZXMtZnJlZWQtb3ItcHVyaWZpZWQqKSkKPgo+IEBAIC0zMzMsNyArMzMzLDcgQEAg Y29sbGVjdGlvbiBpcyBpbml0aWF0ZWQuIFRoaXMgY2FuIGJlIHNldCB3aXRoIFNFVEYuCj4gIE9u IEdFTkNHQyBwbGF0Zm9ybXMgdGhpcyBpcyB0aGUgbnVyc2VyeSBzaXplLCBhbmQgZGVmYXVsdHMg dG8gNSUgb2YgZHluYW1pYwo+ICBzcGFjZSBzaXplLgo+Cj4gLU5vdGU6IGN1cnJlbnRseSBjaGFu Z2VzIHRvIHRoaXMgdmFsdWUgYXJlIGxvc3Qgd2hlbiBzYXZpbmcgY29yZS4iCj4gK05vdGUgdGhh dCBjdXJyZW50bHksIGNoYW5nZXMgdG8gdGhpcyB2YWx1ZSBhcmUgbG9zdCB3aGVuIHNhdmluZyBj b3JlLiIKPiAgICAoZXh0ZXJuLWFsaWVuICJieXRlc19jb25zZWRfYmV0d2Vlbl9nY3MiIG9zLXZt LXNpemUtdCkpCj4KPiAgKGRlZnVuIChzZXRmIGJ5dGVzLWNvbnNlZC1iZXR3ZWVuLWdjcykgKHZh bCkKPiBkaWZmIC0tZ2l0IGEvc3JjL2NvZGUvZ2xvYmFscy5saXNwIGIvc3JjL2NvZGUvZ2xvYmFs cy5saXNwCj4gaW5kZXggZDRlNzhlNzNkLi43OWIxOWIwMDUgMTAwNjQ0Cj4gLS0tIGEvc3JjL2Nv ZGUvZ2xvYmFscy5saXNwCj4gKysrIGIvc3JjL2NvZGUvZ2xvYmFscy5saXNwCj4gQEAgLTkyLDcg KzkyLDkgQEAKPiAgKGRlZmluZS10aHJlYWQtbG9jYWwgKmxvYWQtcGF0aG5hbWUqIG5pbCkKPiAg IythbnNpLWNvbXBsaWFudC1sb2FkLXRydWVuYW1lIChkZWZpbmUtdGhyZWFkLWxvY2FsICpsb2Fk LXRydWVuYW1lKiBuaWwpCj4KPiAtKGRlZnZhciAqZGVmYXVsdC1leHRlcm5hbC1mb3JtYXQqIDp1 dGYtOCkKPiArKGRlZnZhciAqZGVmYXVsdC1leHRlcm5hbC1mb3JtYXQqIDp1dGYtOAo+ICsgICJN b3N0IGZ1bmN0aW9ucyBpbnRlcmFjdGluZyB3aXRoIGV4dGVybmFsIGZvcm1hdHMgKE9QRU4sIG5v dGFibHkpCj4gKyAgdXNlIHRoaXMgZGVmYXVsdC4iKQo+ICAoZGVmdmFyICpkZWZhdWx0LXNvdXJj ZS1leHRlcm5hbC1mb3JtYXQqCj4gICAgIyt3aW4zMiAnKDpkZWZhdWx0IDpuZXdsaW5lIDpjcmxm KQo+ICAgICMtd2luMzIgOmRlZmF1bHQpCj4gZGlmZiAtLWdpdCBhL3NyYy9jb2RlL21hY3Jvcy5s aXNwIGIvc3JjL2NvZGUvbWFjcm9zLmxpc3AKPiBpbmRleCAxNzdjZThiZGYuLjEwMjM4MGY0YyAx MDA2NDQKPiAtLS0gYS9zcmMvY29kZS9tYWNyb3MubGlzcAo+ICsrKyBiL3NyYy9jb2RlL21hY3Jv cy5saXNwCj4gQEAgLTE4MDUsMzggKzE4MDUsMzggQEAgaW52b2tlZC4gSW4gdGhhdCBjYXNlIGl0 IHdpbGwgc3RvcmUgaW50byBQTEFDRSBhbmQgc3RhcnQgb3Zlci4iCj4gIChkZWZ1biBnZXQtY2Fz LWV4cGFuc2lvbiAocGxhY2UgJm9wdGlvbmFsIGVudmlyb25tZW50KQo+ICAgICJBbmFsb2dvdXMg dG8gR0VULVNFVEYtRVhQQU5TSU9OLiBSZXR1cm5zIHRoZSBmb2xsb3dpbmcgc2l4IHZhbHVlczoK Pgo+IC0gKiBsaXN0IG9mIHRlbXBvcmFyeSB2YXJpYWJsZXMKPiArKiBsaXN0IG9mIHRlbXBvcmFy eSB2YXJpYWJsZXMKPgo+IC0gKiBsaXN0IG9mIHZhbHVlLWZvcm1zIHdob3NlIHJlc3VsdHMgdGhv c2UgdmFyaWFibGUgbXVzdCBiZSBib3VuZAo+ICsqIGxpc3Qgb2YgdmFsdWUtZm9ybXMgd2hvc2Ug cmVzdWx0cyB0aG9zZSB2YXJpYWJsZSBtdXN0IGJlIGJvdW5kCj4KPiAtICogdGVtcG9yYXJ5IHZh cmlhYmxlIGZvciB0aGUgb2xkIHZhbHVlIG9mIFBMQUNFCj4gKyogdGVtcG9yYXJ5IHZhcmlhYmxl IGZvciB0aGUgb2xkIHZhbHVlIG9mIFBMQUNFCj4KPiAtICogdGVtcG9yYXJ5IHZhcmlhYmxlIGZv ciB0aGUgbmV3IHZhbHVlIG9mIFBMQUNFCj4gKyogdGVtcG9yYXJ5IHZhcmlhYmxlIGZvciB0aGUg bmV3IHZhbHVlIG9mIFBMQUNFCj4KPiAtICogZm9ybSB1c2luZyB0aGUgYWZvcmVtZW50aW9uZWQg dGVtcG9yYXJpZXMgd2hpY2ggcGVyZm9ybXMgdGhlCj4gLSAgIGNvbXBhcmUtYW5kLXN3YXAgb3Bl cmF0aW9uIG9uIFBMQUNFCj4gKyogZm9ybSB1c2luZyB0aGUgYWZvcmVtZW50aW9uZWQgdGVtcG9y YXJpZXMgd2hpY2ggcGVyZm9ybXMgdGhlCj4gKyAgY29tcGFyZS1hbmQtc3dhcCBvcGVyYXRpb24g b24gUExBQ0UKPgo+IC0gKiBmb3JtIHVzaW5nIHRoZSBhZm9yZW1lbnRpb25lZCB0ZW1wb3Jhcmll cyB3aXRoIHdoaWNoIHRvIHBlcmZvcm0gYSB2b2xhdGlsZQo+IC0gICByZWFkIG9mIFBMQUNFCj4g KyogZm9ybSB1c2luZyB0aGUgYWZvcmVtZW50aW9uZWQgdGVtcG9yYXJpZXMgd2l0aCB3aGljaCB0 byBwZXJmb3JtIGEgdm9sYXRpbGUKPiArICByZWFkIG9mIFBMQUNFCj4KPiAgRXhhbXBsZToKPgo+ IC0gIChnZXQtY2FzLWV4cGFuc2lvbiAnKGNhciB4KSkKPiAtICA7ID0+ICgjOkNPTlM4NzEpLCAo WCksICM6T0xEODcyLCAjOk5FVzg3MywKPiAtICA7ICAgIChTQi1LRVJORUw6JUNPTVBBUkUtQU5E LVNXQVAtQ0FSICM6Q09OUzg3MSAjOk9MRDg3MiA6TkVXODczKS4KPiAtICA7ICAgIChDQVIgIzpD T05TODcxKQo+ICsgICAgKGdldC1jYXMtZXhwYW5zaW9uICcoY2FyIHgpKQo+ICsgICAgOyA9PiAo IzpDT05TODcxKSwgKFgpLCAjOk9MRDg3MiwgIzpORVc4NzMsCj4gKyAgICA7ICAgIChTQi1LRVJO RUw6JUNPTVBBUkUtQU5ELVNXQVAtQ0FSICM6Q09OUzg3MSAjOk9MRDg3MiA6TkVXODczKS4KPiAr ICAgIDsgICAgKENBUiAjOkNPTlM4NzEpCj4KPiAtICAoZGVmbWFjcm8gbXktYXRvbWljLWluY2Yg KHBsYWNlICZvcHRpb25hbCAoZGVsdGEgMSkgJmVudmlyb25tZW50IGVudikKPiAtICAgIChtdWx0 aXBsZS12YWx1ZS1iaW5kICh2YXJzIHZhbHMgb2xkIG5ldyBjYXMtZm9ybSByZWFkLWZvcm0pCj4g LSAgICAgICAgKGdldC1jYXMtZXhwYW5zaW9uIHBsYWNlIGVudikKPiAtICAgICAobGV0ICgoZGVs dGEtdmFsdWUgKGdlbnN5bSBcIkRFTFRBXCIpKSkKPiAtICAgICAgIGAobGV0KiAoLEAobWFwY2Fy ICdsaXN0IHZhcnMgdmFscykKPiAtICAgICAgICAgICAgICAgKCxvbGQgLHJlYWQtZm9ybSkKPiAt ICAgICAgICAgICAgICAgKCxkZWx0YS12YWx1ZSAsZGVsdGEpCj4gLSAgICAgICAgICAgICAgICgs bmV3ICgrICxvbGQgLGRlbHRhLXZhbHVlKSkpCj4gLSAgICAgICAgICAobG9vcCB1bnRpbCAoZXEg LG9sZCAoc2V0ZiAsb2xkICxjYXMtZm9ybSkpCj4gLSAgICAgICAgICAgICAgICBkbyAoc2V0ZiAs bmV3ICgrICxvbGQgLGRlbHRhLXZhbHVlKSkpCj4gLSAgICAgICAgICAsbmV3KSkpKQo+ICsgICAg KGRlZm1hY3JvIG15LWF0b21pYy1pbmNmIChwbGFjZSAmb3B0aW9uYWwgKGRlbHRhIDEpICZlbnZp cm9ubWVudCBlbnYpCj4gKyAgICAgIChtdWx0aXBsZS12YWx1ZS1iaW5kICh2YXJzIHZhbHMgb2xk IG5ldyBjYXMtZm9ybSByZWFkLWZvcm0pCj4gKyAgICAgICAgICAoZ2V0LWNhcy1leHBhbnNpb24g cGxhY2UgZW52KQo+ICsgICAgICAgKGxldCAoKGRlbHRhLXZhbHVlIChnZW5zeW0gXCJERUxUQVwi KSkpCj4gKyAgICAgICAgIGAobGV0KiAoLEAobWFwY2FyICdsaXN0IHZhcnMgdmFscykKPiArICAg ICAgICAgICAgICAgICAoLG9sZCAscmVhZC1mb3JtKQo+ICsgICAgICAgICAgICAgICAgICgsZGVs dGEtdmFsdWUgLGRlbHRhKQo+ICsgICAgICAgICAgICAgICAgICgsbmV3ICgrICxvbGQgLGRlbHRh LXZhbHVlKSkpCj4gKyAgICAgICAgICAgIChsb29wIHVudGlsIChlcSAsb2xkIChzZXRmICxvbGQg LGNhcy1mb3JtKSkKPiArICAgICAgICAgICAgICAgICAgZG8gKHNldGYgLG5ldyAoKyAsb2xkICxk ZWx0YS12YWx1ZSkpKQo+ICsgICAgICAgICAgICAsbmV3KSkpKQo+Cj4gIEVYUEVSSU1FTlRBTDog SW50ZXJmYWNlIHN1YmplY3QgdG8gY2hhbmdlLiIKPiAgICA7OyBGSVhNRTogdGhpcyBzZWVtcyB3 cm9uZyBvbiB0d28gcG9pbnRzOgo+IEBAIC0xOTQ1LDggKzE5NDUsNyBAQCBTQi1NT1A6U0xPVC1W QUxVRS1VU0lORy1DTEFTUywgKFNFVEYgU0ItTU9QOlNMT1QtVkFMVUUtVVNJTkctQ0xBU1MpLCBv cgo+ICBTQi1NT1A6U0xPVC1CT1VORFAtVVNJTkctQ0xBU1MuCj4KPiAgQWRkaXRpb25hbGx5LCB0 aGUgUExBQ0UgY2FuIGJlIGEgYW55dGhpbmcgZm9yIHdoaWNoIGEgQ0FTLWZ1bmN0aW9uIGhhcwo+ IC1iZWVuIGRlZmluZWQuIChTZWUgU0ItRVhUOkNBUyBmb3IgbW9yZSBpbmZvcm1hdGlvbi4pCj4g LSIKPiArYmVlbiBkZWZpbmVkLiIKPiAgICBgKGNhcyAscGxhY2UgLG9sZCAsbmV3KSkKPgo+Cj4g QEAgLTIwNDksMjAgKzIwNDgsMjUgQEAgYmVlbiBkZWZpbmVkLiAoU2VlIFNCLUVYVDpDQVMgZm9y IG1vcmUgaW5mb3JtYXRpb24uKQo+ICB0aGUgaW5jcmVtZW50Lgo+Cj4gIFBMQUNFIG11c3QgYWNj ZXNzIG9uZSBvZiB0aGUgZm9sbG93aW5nOgo+IC0gLSBhIERFRlNUUlVDVCBzbG90IHdpdGggZGVj bGFyZWQgdHlwZSAoVU5TSUdORUQtQllURSB+RH46KikKPiAtICAgb3IgQVJFRiBvZiBhIChTSU1Q TEUtQVJSQVkgKFVOU0lHTkVELUJZVEUgfkR+OiopICgqKSkKPiAtICAgVGhlIHR5cGUgU0ItRVhU OldPUkQgY2FuIGJlIHVzZWQgZm9yIHRoZXNlIHB1cnBvc2VzLgo+IC0gLSBDQVIgb3IgQ0RSIChy ZXNwZWN0aXZlbHkgRklSU1Qgb3IgUkVTVCkgb2YgYSBDT05TLgo+IC0gLSBhIHZhcmlhYmxlIGRl ZmluZWQgdXNpbmcgREVGR0xPQkFMIHdpdGggYSBwcm9jbGFpbWVkIHR5cGUgb2YgRklYTlVNLgo+ IC1NYWNyb2V4cGFuc2lvbiBpcyBwZXJmb3JtZWQgb24gUExBQ0UgYmVmb3JlIGV4cGFuZGluZyBB VE9NSUMtSU5DRi4KPiAtCj4gLUluY3JlbWVudGluZyBpcyBkb25lIHVzaW5nIG1vZHVsYXIgYXJp dGhtZXRpYywKPiAtd2hpY2ggaXMgd2VsbC1kZWZpbmVkIG92ZXIgdHdvIGRpZmZlcmVudCBkb21h aW5zOgo+ICsKPiArLSBhIERFRlNUUlVDVCBzbG90IHdpdGggZGVjbGFyZWQgdHlwZSAoVU5TSUdO RUQtQllURSB+RH46KikKPiArICBvciBBUkVGIG9mIGEgKFNJTVBMRS1BUlJBWSAoVU5TSUdORUQt QllURSB+RH46KikgKCopKQo+ICsgIFRoZSB0eXBlIFNCLUVYVDpXT1JEIGNhbiBiZSB1c2VkIGZv ciB0aGVzZSBwdXJwb3Nlcy4KPiArCj4gKy0gQ0FSIG9yIENEUiAocmVzcGVjdGl2ZWx5IEZJUlNU IG9yIFJFU1QpIG9mIGEgQ09OUy4KPiArCj4gKy0gYSB2YXJpYWJsZSBkZWZpbmVkIHVzaW5nIERF RkdMT0JBTCB3aXRoIGEgcHJvY2xhaW1lZCB0eXBlIG9mIEZJWE5VTS4KPiArICBNYWNyb2V4cGFu c2lvbiBpcyBwZXJmb3JtZWQgb24gUExBQ0UgYmVmb3JlIGV4cGFuZGluZyBBVE9NSUMtSU5DRi4K PiArCj4gK0luY3JlbWVudGluZyBpcyBkb25lIHVzaW5nIG1vZHVsYXIgYXJpdGhtZXRpYywgd2hp Y2ggaXMgd2VsbC1kZWZpbmVkCj4gK292ZXIgdHdvIGRpZmZlcmVudCBkb21haW5zOgo+ICsKPiAg IC0gRm9yIHN0cnVjdHVyZXMgYW5kIGFycmF5cywgdGhlIG9wZXJhdGlvbiBhY2NlcHRzIGFuZCBw cm9kdWNlcwo+ICAgICBhbiAoVU5TSUdORUQtQllURSB+RH46KiksIGFuZCBESUZGIG11c3QgYmUg b2YgdHlwZSAoU0lHTkVELUJZVEUgfkQpLgo+IC0gICBBVE9NSUMtSU5DRiBvZiAjeH54IGJ5IG9u ZSByZXN1bHRzIGluICN4MCBiZWluZyBzdG9yZWQgaW4gUExBQ0UuCj4gKyAgIEFUT01JQy1JTkNG IG9mIGAjeH54YCBieSBvbmUgcmVzdWx0cyBpbiAjeDAgYmVpbmcgc3RvcmVkIGluIFBMQUNFLgo+ ICsKPiAgIC0gRm9yIG90aGVyIHBsYWNlcywgdGhlIGRvbWFpbiBpcyBGSVhOVU0sIGFuZCBESUZG IG11c3QgYmUgYSBGSVhOVU0uCj4gLSAgIEFUT01JQy1JTkNGIG9mICN4fnggYnkgb25lIHJlc3Vs dHMgaW4gI3h+eAo+ICsgICBBVE9NSUMtSU5DRiBvZiBgI3h+eGAgYnkgb25lIHJlc3VsdHMgaW4g YCN4fnhgCj4gICAgIGJlaW5nIHN0b3JlZCBpbiBQTEFDRS4KPgo+ICBESUZGIGRlZmF1bHRzIHRv IDEuCj4gQEAgLTIwNzgsMjEgKzIwODIsMjggQEAgRVhQRVJJTUVOVEFMOiBJbnRlcmZhY2Ugc3Vi amVjdCB0byBjaGFuZ2UuIgo+ICB0aGUgZGVjcmVtZW50Lgo+Cj4gIFBMQUNFIG11c3QgYWNjZXNz IG9uZSBvZiB0aGUgZm9sbG93aW5nOgo+IC0gLSBhIERFRlNUUlVDVCBzbG90IHdpdGggZGVjbGFy ZWQgdHlwZSAoVU5TSUdORUQtQllURSB+RH46KikKPiAtICAgb3IgQVJFRiBvZiBhIChTSU1QTEUt QVJSQVkgKFVOU0lHTkVELUJZVEUgfkR+OiopICgqKSkKPiAtICAgVGhlIHR5cGUgU0ItRVhUOldP UkQgY2FuIGJlIHVzZWQgZm9yIHRoZXNlIHB1cnBvc2VzLgo+IC0gLSBDQVIgb3IgQ0RSIChyZXNw ZWN0aXZlbHkgRklSU1Qgb3IgUkVTVCkgb2YgYSBDT05TLgo+IC0gLSBhIHZhcmlhYmxlIGRlZmlu ZWQgdXNpbmcgREVGR0xPQkFMIHdpdGggYSBwcm9jbGFpbWVkIHR5cGUgb2YgRklYTlVNLgo+ICsK PiArLSBhIERFRlNUUlVDVCBzbG90IHdpdGggZGVjbGFyZWQgdHlwZSBgKFVOU0lHTkVELUJZVEUg fkR+OiopYCBvciBBUkVGCj4gKyAgb2YgYSBgKFNJTVBMRS1BUlJBWSAoVU5TSUdORUQtQllURSB+ RH46KikgKCopKWAgKHRoZSB0eXBlCj4gKyAgU0ItRVhUOldPUkQgY2FuIGJlIHVzZWQgZm9yIHRo ZXNlIHB1cnBvc2VzKQo+ICsKPiArLSBDQVIgb3IgQ0RSIChyZXNwZWN0aXZlbHkgRklSU1Qgb3Ig UkVTVCkgb2YgYSBDT05TLAo+ICsKPiArLSBhIHZhcmlhYmxlIGRlZmluZWQgdXNpbmcgREVGR0xP QkFMIHdpdGggYSBwcm9jbGFpbWVkIHR5cGUgb2YgRklYTlVNLgo+ICsKPiAgTWFjcm9leHBhbnNp b24gaXMgcGVyZm9ybWVkIG9uIFBMQUNFIGJlZm9yZSBleHBhbmRpbmcgQVRPTUlDLURFQ0YuCj4K PiAgRGVjcmVtZW50aW5nIGlzIGRvbmUgdXNpbmcgbW9kdWxhciBhcml0aG1ldGljLAo+ICB3aGlj aCBpcyB3ZWxsLWRlZmluZWQgb3ZlciB0d28gZGlmZmVyZW50IGRvbWFpbnM6Cj4gKwo+ICAgLSBG b3Igc3RydWN0dXJlcyBhbmQgYXJyYXlzLCB0aGUgb3BlcmF0aW9uIGFjY2VwdHMgYW5kIHByb2R1 Y2VzCj4gLSAgIGFuIChVTlNJR05FRC1CWVRFIH5EfjoqKSwgYW5kIERJRkYgbXVzdCBiZSBvZiB0 eXBlIChTSUdORUQtQllURSB+RCkuCj4gLSAgIEFUT01JQy1ERUNGIG9mICN4MCBieSBvbmUgcmVz dWx0cyBpbiAjeH54IGJlaW5nIHN0b3JlZCBpbiBQTEFDRS4KPiArICAgYW4gKFVOU0lHTkVELUJZ VEUgfkR+OiopLCBhbmQgRElGRiBtdXN0IGJlIG9mIHR5cGUgYChTSUdORUQtQllURQo+ICsgICB+ RClgLiBBVE9NSUMtREVDRiBvZiBgI3gwYCBieSBvbmUgcmVzdWx0cyBpbiBgI3h+eGAgYmVpbmcg c3RvcmVkIGluCj4gKyAgIFBMQUNFLgo+ICsKPiAgIC0gRm9yIG90aGVyIHBsYWNlcywgdGhlIGRv bWFpbiBpcyBGSVhOVU0sIGFuZCBESUZGIG11c3QgYmUgYSBGSVhOVU0uCj4gLSAgIEFUT01JQy1E RUNGIG9mICN4fnggYnkgb25lIHJlc3VsdHMgaW4gI3h+eAo+IC0gICBiZWluZyBzdG9yZWQgaW4g UExBQ0UuCj4gKyAgIEFUT01JQy1ERUNGIG9mIGAjeH54YCBieSBvbmUgcmVzdWx0cyBpbiBgI3h+ eGAgYmVpbmcgc3RvcmVkIGluCj4gKyAgIFBMQUNFLgo+Cj4gIERJRkYgZGVmYXVsdHMgdG8gMS4K Pgo+IGRpZmYgLS1naXQgYS9zcmMvY29kZS9taXNjLWFsaWVucy5saXNwIGIvc3JjL2NvZGUvbWlz Yy1hbGllbnMubGlzcAo+IGluZGV4IDZjOGQ3MzEzOS4uZThiYzc0Y2IzIDEwMDY0NAo+IC0tLSBh L3NyYy9jb2RlL21pc2MtYWxpZW5zLmxpc3AKPiArKysgYi9zcmMvY29kZS9taXNjLWFsaWVucy5s aXNwCj4gQEAgLTg3LDcgKzg3LDEzIEBACj4gIChkZWNsYWltIChtYXliZS1pbmxpbmUgZ2V0LWVy cm5vKSkKPiAgKGRlZmluZS1hbGllbi1yb3V0aW5lICgib3NfZ2V0X2Vycm5vIiBnZXQtZXJybm8p IGludCkKPiAgKHNldGYgKGRvY3VtZW50YXRpb24gJ2dldC1lcnJubyAnZnVuY3Rpb24pCj4gLSAg ICAgICJSZXR1cm4gdGhlIHZhbHVlIG9mIHRoZSBDIGxpYnJhcnkgcHNldWRvLXZhcmlhYmxlIG5h bWVkIFwiZXJybm9cIi4iKQo+ICsgICAgICAiUmV0dXJuIHRoZSB2YWx1ZSBvZiB0aGUgXFxDIGxp YnJhcnkgcHNldWRvLXZhcmlhYmxlIG5hbWVkIGBlcnJub2AuCj4gKwo+ICtTaW5jZSBpbiBtb2Rl cm4gXFxDIGxpYnJhcmllcywgYGVycm5vYCBpcyB0eXBpY2FsbHkgbm8gbG9uZ2VyIGEKPiArdmFy aWFibGUsIGJ1dCBzb21lIGJpemFycmUgYXJ0aWZpY2lhbCBjb25zdHJ1Y3Qgd2hpY2ggYmVoYXZl cwo+ICtzdXBlcmZpY2lhbGx5IGxpa2UgYSB2YXJpYWJsZSB3aXRoaW4gYSBnaXZlbiB0aHJlYWQs IGl0IGNhbiBubyBsb25nZXIKPiArcmVsaWFibHkgYmUgYWNjZXNzZWQgdGhyb3VnaCB0aGUgb3Jk aW5hcnkgREVGSU5FLUFMSUVOLVZBUklBQkxFCj4gK21lY2hhbmlzbS4iKQo+Cj4gIChkZWZpbmUt YWxpZW4tcm91dGluZSAoIm9zX3NldF9lcnJubyIgc2V0LWVycm5vKSB2b2lkIChuZXctZXJybm8g aW50KSkKPiAgKHNldGYgKGRvY3VtZW50YXRpb24gJ3NldC1lcnJubyAnZnVuY3Rpb24pCj4gZGlm ZiAtLWdpdCBhL3NyYy9jb2RlL21vZHVsZS5saXNwIGIvc3JjL2NvZGUvbW9kdWxlLmxpc3AKPiBp bmRleCBhN2UwNjZmYjYuLjA3ODFhNWEzMCAxMDA2NDQKPiAtLS0gYS9zcmMvY29kZS9tb2R1bGUu bGlzcAo+ICsrKyBiL3NyYy9jb2RlL21vZHVsZS5saXNwCj4gQEAgLTIyLDcgKzIyLDcgQEAKPiAg ICAgSXQgaXMgdXNlZCBieSBQUk9WSURFIGFuZCBSRVFVSVJFLiIpCj4KPiAgKGRlZnZhciAqbW9k dWxlLXByb3ZpZGVyLWZ1bmN0aW9ucyogKGxpc3QgJ21vZHVsZS1wcm92aWRlLWNvbnRyaWIpCj4g LSAgIlNlZSBmdW5jdGlvbiBkb2N1bWVudGF0aW9uIGZvciBSRVFVSVJFLiIpCj4gKyAgIlNlZSBS RVFVSVJFLiIpCj4KPiAgOzs7OyBQUk9WSURFIGFuZCBSRVFVSVJFCj4KPiBkaWZmIC0tZ2l0IGEv c3JjL2NvZGUvbnRyYWNlLmxpc3AgYi9zcmMvY29kZS9udHJhY2UubGlzcAo+IGluZGV4IGQxN2Nh MWI1Ny4uN2MyZWY4Y2YyIDEwMDY0NAo+IC0tLSBhL3NyYy9jb2RlL250cmFjZS5saXNwCj4gKysr IGIvc3JjL2NvZGUvbnRyYWNlLmxpc3AKPiBAQCAtNjg2LDE3ICs2ODYsMTggQEAgZnVuY3Rpb25z IGFyZSBjYWxsZWQuIEluIGl0cyBzaW1wbGVzdCBmb3JtOgo+ICAgICAgKFRSQUNFIE5BTUUtMSBO QU1FLTIgLi4uKQo+Cj4gIFRoZSBOQU1FcyBhcmUgbm90IGV2YWx1YXRlZC4gRWFjaCBtYXkgYmUg b25lIG9mIHRoZSBmb2xsb3dpbmc6Cj4gLSAgKiBTWU1CT0wsIGRlbm90aW5nIGEgZnVuY3Rpb24g b3IgbWFjcm8uCj4gLSAgKiBGTkFNRSwgYSB2YWxpZCBmdW5jdGlvbiBuYW1lLCBkZW5vdGluZyBh IGZ1bmN0aW9uLgo+IC0gICogYChNRVRIT0QgRk5BTUUgUVVBTElGSUVSUyogKFNQRUNJQUxJWkVS UyopKWAgZGVub3RpbmcgYSBtZXRob2QuCj4gLSAgKiBgKENPTVBJTEVSLU1BQ1JPIFNZTUJPTClg IGRlbm90aW5nIGEgY29tcGlsZXIgbWFjcm8uCj4gLSAgKiBgKExBQkVMUyBGTkFNRSA6SU4gT1VU RVItTkFNRSlgIG9yIGAoRkxFVCBGTkFNRSA6SU4gT1VURVItTkFNRSlgCj4gLSAgICBkZW5vdGlu ZyBhIGxvY2FsIGZ1bmN0aW9uIHdoZXJlIGBPVVRFUi1OQU1FYCBtYXkgYmUgYW55IG9mIHRoZQo+ IC0gICAgcHJldmlvdXMgbmFtZXMgZm9yIGZ1bmN0aW9ucywgbWFjcm9zLCBtZXRob2RzIG9yIGNv bXBpbGVyIG1hY3Jvcy4KPiAtICAgIFRyYWNpbmcgbG9jYWwgZnVuY3Rpb25zIG1heSByZXF1aXJl IERFQlVHIHBvbGljeSAzIHRvIGluaGliaXQKPiAtICAgIGlubGluaW5nLgo+IC0gICogU1RSSU5H IGRlbm90aW5nIGFsbCBmdW5jdGlvbnMgZmJvdW5kIHRvIHN5bWJvbHMgd2hvc2UgaG9tZSBwYWNr YWdlCj4gLSAgICBpcyB0aGUgcGFja2FnZSB3aXRoIHRoZSBnaXZlbiBuYW1lLgo+ICsKPiArLSBT WU1CT0wsIGRlbm90aW5nIGEgZnVuY3Rpb24gb3IgbWFjcm8uCj4gKy0gRk5BTUUsIGEgdmFsaWQg ZnVuY3Rpb24gbmFtZSwgZGVub3RpbmcgYSBmdW5jdGlvbi4KPiArLSBgKE1FVEhPRCBGTkFNRSBR VUFMSUZJRVJTKiAoU1BFQ0lBTElaRVJTKikpYCBkZW5vdGluZyBhIG1ldGhvZC4KPiArLSBgKENP TVBJTEVSLU1BQ1JPIFNZTUJPTClgIGRlbm90aW5nIGEgY29tcGlsZXIgbWFjcm8uCj4gKy0gYChM QUJFTFMgRk5BTUUgOklOIE9VVEVSLU5BTUUpYCBvciBgKEZMRVQgRk5BTUUgOklOIE9VVEVSLU5B TUUpYAo+ICsgIGRlbm90aW5nIGEgbG9jYWwgZnVuY3Rpb24gd2hlcmUgYE9VVEVSLU5BTUVgIG1h eSBiZSBhbnkgb2YgdGhlCj4gKyAgcHJldmlvdXMgbmFtZXMgZm9yIGZ1bmN0aW9ucywgbWFjcm9z LCBtZXRob2RzIG9yIGNvbXBpbGVyIG1hY3Jvcy4KPiArICBUcmFjaW5nIGxvY2FsIGZ1bmN0aW9u cyBtYXkgcmVxdWlyZSBERUJVRyBwb2xpY3kgMyB0byBpbmhpYml0Cj4gKyAgaW5saW5pbmcuCj4g Ky0gU1RSSU5HIGRlbm90aW5nIGFsbCBmdW5jdGlvbnMgZmJvdW5kIHRvIHN5bWJvbHMgd2hvc2Ug aG9tZSBwYWNrYWdlCj4gKyAgaXMgdGhlIHBhY2thZ2Ugd2l0aCB0aGUgZ2l2ZW4gbmFtZS4KPgo+ ICBPcHRpb25zIGFsbG93IG1vZGlmaWNhdGlvbiBvZiB0aGUgZGVmYXVsdCBiZWhhdmlvci4gRWFj aCBvcHRpb24gaXMgYQo+ICBwYWlyIG9mIGFuIG9wdGlvbiBrZXl3b3JkIGFuZCBhIHZhbHVlIGZv cm0uIEdsb2JhbCBvcHRpb25zIGFyZQo+IEBAIC03NzksOSArNzgwLDkgQEAgVGhlIGZvbGxvd2lu ZyBvcHRpb25zIGFyZSBkZWZpbmVkOgo+ICA6Q09ORElUSU9OLCA6QlJFQUsgYW5kIDpQUklOVCBm b3JtcyBhcmUgZXZhbHVhdGVkIGluIGEgY29udGV4dCB3aGljaAo+ICBtb2NrcyB1cCB0aGUgbGV4 aWNhbCBlbnZpcm9ubWVudCBvZiB0aGUgY2FsbGVkIGZ1bmN0aW9uLCBzbyB0aGF0Cj4gIFNCLURF QlVHOlZBUiBhbmQgU0ItREVCVUc6QVJHIGNhbiBiZSB1c2VkLgo+IC1UaGUgLUFGVEVSIGFuZCAt QUxMIGZvcm1zIGNhbiB1c2UgYWxzbyB1c2UgU0ItREVCVUc6QVJHLiBJbiBmb3Jtcwo+IC13aGlj aCBhcmUgZXZhbHVhdGVkIGFmdGVyIHRoZSBmdW5jdGlvbiBjYWxsLCAoU0ItREVCVUc6QVJHIE4p IHJldHVybnMKPiAtdGhlIE4tdGggdmFsdWUgcmV0dXJuZWQgYnkgdGhlIGZ1bmN0aW9uLiIKPiAr VGhlIGAqLUFGVEVSYCBhbmQgYCotQUxMYCBmb3JtcyBjYW4gdXNlIGFsc28gdXNlIFNCLURFQlVH OkFSRy4gSW4gZm9ybXMKPiArd2hpY2ggYXJlIGV2YWx1YXRlZCBhZnRlciB0aGUgZnVuY3Rpb24g Y2FsbCwgYChTQi1ERUJVRzpBUkcgTilgIHJldHVybnMKPiArdGhlIGBOYHRoIHZhbHVlIHJldHVy bmVkIGJ5IHRoZSBmdW5jdGlvbi4iCj4gICAgKGlmIHNwZWNzCj4gICAgICAgIChleHBhbmQtdHJh Y2Ugc3BlY3MpCj4gICAgICAgICcoJWxpc3QtdHJhY2VkLWZ1bnMpKSkKPiBkaWZmIC0tZ2l0IGEv c3JjL2NvZGUvcHJpbnQubGlzcCBiL3NyYy9jb2RlL3ByaW50Lmxpc3AKPiBpbmRleCA5YmE1OWJh MmMuLmM1MmRkMTg0ZSAxMDA2NDQKPiAtLS0gYS9zcmMvY29kZS9wcmludC5saXNwCj4gKysrIGIv c3JjL2NvZGUvcHJpbnQubGlzcAo+IEBAIC01NCw3ICs1NCw3IEBAIHN0cnVjdHVyZXMgYXJlIHBy aW50ZWQgd2l0aCAjbiMuIikKPiAgICAiVGhlIHBvc2l0aW9uIG9mIHRoZSByaWdodCBtYXJnaW4g aW4gZW1zIChmb3IgcHJldHR5LXByaW50aW5nKS4iKQo+ICAoZGVmdmFyICpwcmludC1taXNlci13 aWR0aCogbmlsCj4gICAgIklmIHRoZSByZW1haW5pbmcgc3BhY2UgYmV0d2VlbiB0aGUgY3VycmVu dCBjb2x1bW4gYW5kIHRoZSByaWdodCBtYXJnaW4KPiAtICAgaXMgbGVzcyB0aGFuIHRoaXMsIHRo ZW4gcHJpbnQgdXNpbmcgYGBtaXNlci1zdHlsZScnIG91dHB1dC4gTWlzZXIKPiArICAgaXMgbGVz cyB0aGFuIHRoaXMsIHRoZW4gcHJpbnQgdXNpbmcgXCJtaXNlci1zdHlsZVwiIG91dHB1dC4gTWlz ZXIKPiAgICAgc3R5bGUgY29uZGl0aW9uYWwgbmV3bGluZXMgYXJlIHR1cm5lZCBvbiwgYW5kIGFs bCBpbmRlbnRhdGlvbnMgYXJlCj4gICAgIHR1cm5lZCBvZmYuIElmIE5JTCwgbmV2ZXIgdXNlIG1p c2VyIG1vZGUuIikKPiAgKGRlZnZhciAqcHJpbnQtcHByaW50LWRpc3BhdGNoKgo+IGRpZmYgLS1n aXQgYS9zcmMvY29kZS9wcm9maWxlLmxpc3AgYi9zcmMvY29kZS9wcm9maWxlLmxpc3AKPiBpbmRl eCAzYWY0ODI3OWYuLjQzMjdlNjQxYiAxMDA2NDQKPiAtLS0gYS9zcmMvY29kZS9wcm9maWxlLmxp c3AKPiArKysgYi9zcmMvY29kZS9wcm9maWxlLmxpc3AKPiBAQCAtMjk2LDkgKzI5Niw3IEBACj4g ICAgKHZhbHVlcykpCj4KPiAgKGRlZm1hY3JvIHByb2ZpbGUgKCZyZXN0IG5hbWVzKQo+IC0gICJQ Uk9GSUxFIE5hbWUqCj4gLQo+IC0gICBJZiBubyBuYW1lcyBhcmUgc3VwcGxpZWQsIHJldHVybiB0 aGUgbGlzdCBvZiBwcm9maWxlZCBmdW5jdGlvbnMuCj4gKyAgIklmIG5vIG5hbWVzIGFyZSBzdXBw bGllZCwgcmV0dXJuIHRoZSBsaXN0IG9mIHByb2ZpbGVkIGZ1bmN0aW9ucy4KPgo+ICAgICBJZiBu YW1lcyBhcmUgc3VwcGxpZWQsIHdyYXAgcHJvZmlsaW5nIGNvZGUgYXJvdW5kIHRoZSBuYW1lZCBm dW5jdGlvbnMuCj4gICAgIEFzIGluIFRSQUNFLCB0aGUgbmFtZXMgYXJlIG5vdCBldmFsdWF0ZWQu IEEgc3ltYm9sIG5hbWVzIGEgZnVuY3Rpb24uCj4gZGlmZiAtLWdpdCBhL3NyYy9jb2RlL3J1bi1w cm9ncmFtLmxpc3AgYi9zcmMvY29kZS9ydW4tcHJvZ3JhbS5saXNwCj4gaW5kZXggODQyNTlkOTBk Li4zMzA0ZDhlYTUgMTAwNjQ0Cj4gLS0tIGEvc3JjL2NvZGUvcnVuLXByb2dyYW0ubGlzcAo+ICsr KyBiL3NyYy9jb2RlL3J1bi1wcm9ncmFtLmxpc3AKPiBAQCAtNDcsNyArNDcsNyBAQAo+Cj4gICMt d2luMzIKPiAgKGRlZnVuIHBvc2l4LWVudmlyb24gKCkKPiAtICAiUmV0dXJuIHRoZSBVbml4IGVu dmlyb25tZW50IChcIm1hbiBlbnZpcm9uXCIpIGFzIGEgbGlzdCBvZiBTSU1QTEUtU1RSSU5Hcy4i Cj4gKyAgIlJldHVybiB0aGUgVW5peCBlbnZpcm9ubWVudCBhcyBhIGxpc3Qgb2YgU0lNUExFLVNU UklOR3MuIFNlZSBgbWFuIGVudmlyb25gLiIKPiAgICAoYy1zdHJpbmdzLT5zdHJpbmctbGlzdCAo ZXh0ZXJuLWFsaWVuIGVudmlyb24gKCogYy1zdHJpbmcpKSkpCj4KPiAgIyt3aW4zMgo+IEBAIC0y OTAsOCArMjkwLDkgQEAgUFJPQ0VTUy4iCj4gICMtd2luMzIKPiAgKGRlZnVuIHByb2Nlc3Mta2ls bCAocHJvY2VzcyBzaWduYWwgJm9wdGlvbmFsICh3aG9tIDpwaWQpKQo+ICAgICJIYW5kIFNJR05B TCB0byBQUk9DRVNTLiBJZiBXSE9NIGlzIDpQSUQsIHVzZSB0aGUga2lsbCBVbml4IHN5c3RlbSBj YWxsLiBJZgo+IC0gICBXSE9NIGlzIDpQUk9DRVNTLUdST1VQLCB1c2UgdGhlIGtpbGxwZyBVbml4 IHN5c3RlbSBjYWxsLgo+IC0gICBSZXR1cm5zIFQgaWYgc3VjY2Vzc2Z1bCwgb3RoZXJ3aXNlIHJl dHVybnMgTklMIGFuZCBlcnJvciBudW1iZXIgKHR3byB2YWx1ZXMpLiIKPiArICAgV0hPTSBpcyA6 UFJPQ0VTUy1HUk9VUCwgdXNlIHRoZSBga2lsbHBnKDEpYCBVbml4IHN5c3RlbSBjYWxsLgo+ICsg ICBSZXR1cm5zIFQgaWYgc3VjY2Vzc2Z1bCwgb3RoZXJ3aXNlIHJldHVybnMgTklMIGFuZCBlcnJv cgo+ICsgICBudW1iZXIgKHR3byB2YWx1ZXMpLiIKPiAgICAobGV0ICgocGlkIChwcm9jZXNzLXBp ZCBwcm9jZXNzKSkpCj4gICAgICAobGV0ICgocmVzdWx0IChlY2FzZSB3aG9tCj4gICAgICAgICAg ICAgICAgICAgICAgKDpwcm9jZXNzLWdyb3VwCj4gQEAgLTc3NCw2ICs3NzUsNyBAQCBUaGUgJktF WSBhcmd1bWVudHMgaGF2ZSB0aGUgZm9sbG93aW5nIG1lYW5pbmdzOgo+ICAgICAgdGhlIGN1cnJl bnQgcHJvY2Vzcy4KPgo+ICAtIDpFTlYKPiArCj4gICAgICBBbiBhbHRlcm5hdGl2ZSBsb3NzeSBy ZXByZXNlbnRhdGlvbiBvZiB0aGUgbmV3IFVuaXggZW52aXJvbm1lbnQsCj4gICAgICBmb3IgY29t cGF0aWJpbGl0eSB3aXRoIENNVSBDTC4KPgo+IEBAIC04MDcsNyArODA5LDcgQEAgVGhlICZLRVkg YXJndW1lbnRzIGhhdmUgdGhlIGZvbGxvd2luZyBtZWFuaW5nczoKPiAgICAgIC0gOlNUUkVBTTog dGhlIFBST0NFU1MtSU5QVVQgc2xvdCBpcyBmaWxsZWQgaW4gd2l0aCBhIHN0cmVhbSB0aGF0Cj4g ICAgICAgIHNlbmRzIGl0cyBvdXRwdXQgdG8gdGhlIHByb2Nlc3MuCj4KPiAtLSAgOklGLUlOUFVU LURPRVMtTk9ULUVYSVNUICh3aGVuIDpJTlBVVCBpcyB0aGUgbmFtZSBvZiBhIGZpbGUpCj4gKy0g OklGLUlOUFVULURPRVMtTk9ULUVYSVNUICh3aGVuIDpJTlBVVCBpcyB0aGUgbmFtZSBvZiBhIGZp bGUpCj4KPiAgICAgIEl0IGlzIG9uZSBvZjoKPgo+IEBAIC04MzQsMTIgKzgzNiwxMiBAQCBUaGUg JktFWSBhcmd1bWVudHMgaGF2ZSB0aGUgZm9sbG93aW5nIG1lYW5pbmdzOgo+Cj4gIC0gOklGLU9V VFBVVC1FWElTVFMgKHdoZW4gOk9VVFBVVCBpcyB0aGUgbmFtZSBvZiBhIGZpbGUpCj4KPiAtICAg SXQgaXMgb25lIG9mOgo+ICsgICAgSXQgaXMgb25lIG9mOgo+Cj4gLSAgIC0gOkVSUk9SICh0aGUg ZGVmYXVsdCkgdG8gZ2VuZXJhdGUgYW4gZXJyb3IKPiAtICAgLSA6U1VQRVJTRURFIHRvIHN1cGVy c2VkZSB0aGUgZmlsZSB3aXRoIG91dHB1dCBmcm9tIHRoZSBwcm9ncmFtCj4gLSAgIC0gOkFQUEVO RCB0byBhcHBlbmQgb3V0cHV0IGZyb20gdGhlIHByb2dyYW0gdG8gdGhlIGZpbGUKPiAtICAgLSBO SUwgdG8gcmV0dXJuIE5JTCBmcm9tIFJVTi1QUk9HUkFNLCB3aXRob3V0IGRvaW5nIGFueXRoaW5n Cj4gKyAgICAtIDpFUlJPUiAodGhlIGRlZmF1bHQpIHRvIGdlbmVyYXRlIGFuIGVycm9yCj4gKyAg ICAtIDpTVVBFUlNFREUgdG8gc3VwZXJzZWRlIHRoZSBmaWxlIHdpdGggb3V0cHV0IGZyb20gdGhl IHByb2dyYW0KPiArICAgIC0gOkFQUEVORCB0byBhcHBlbmQgb3V0cHV0IGZyb20gdGhlIHByb2dy YW0gdG8gdGhlIGZpbGUKPiArICAgIC0gTklMIHRvIHJldHVybiBOSUwgZnJvbSBSVU4tUFJPR1JB TSwgd2l0aG91dCBkb2luZyBhbnl0aGluZwo+Cj4gIC0gOklGLUVSUk9SLUVYSVNUUwo+Cj4gQEAg LTg3NywxMSArODc5LDEzIEBAIFdpbmRvd3Mgc3BlY2lmaWMgb3B0aW9uczoKPiAgICAgIFRoZSBm b2xsb3dpbmcgb3B0aW9ucyBjb250cm9sIGhvdyB0aGUgc3VicHJvY2VzcyB3aW5kb3cgc2hvdWxk IGJlCj4gICAgICBkaXNwbGF5ZWQ6IGA6SElERWAsIGA6U0hPVy1OT1JNQUxgLCBgOlNIT1ctTUFY SU1JWkVEYCwKPiAgICAgIGA6U0hPVy1NSU5JTUlaRURgLCBgOlNIT1ctTk8tQUNUSVZBVEVgLCBg OlNIT1ctTUlOLU5PLUFDVElWRWAsCj4gLSAgICBgOlNIT1ctTkFgLiBOb3RlOiBjb25zb2xlIGFw cGxpY2F0aW9uIHN1YnByb2Nlc3NlcyBtYXkgb3IgbWF5IG5vdAo+IC0gICAgZGlzcGxheSBhIGNv bnNvbGUgd2luZG93IGRlcGVuZGluZyBvbiB3aGV0aGVyIHRoZSBTQkNMIHJ1bnRpbWUgaXMKPiAt ICAgIGl0c2VsZiBhIGNvbnNvbGUgb3IgR1VJIGFwcGxpY2F0aW9uLiBJbnZva2UgYGNtZCAvYyBz dGFydGAgdG8KPiAtICAgIGNvbnNpc3RlbnRseSBkaXNwbGF5IGEgY29uc29sZSB3aW5kb3cgb3Ig dXNlIHRoZSBgOldJTkRPV2AgYDpISURFYAo+IC0gICAgb3B0aW9uIHRvIGNvbnNpc3RlbnRseSBo aWRlIHRoZSBjb25zb2xlIHdpbmRvdy4iCj4gKyAgICBgOlNIT1ctTkFgLgo+ICsKPiArICAgID4g X05vdGVfOiBjb25zb2xlIGFwcGxpY2F0aW9uIHN1YnByb2Nlc3NlcyBtYXkgb3IgbWF5IG5vdCBk aXNwbGF5Cj4gKyAgICA+IGEgY29uc29sZSB3aW5kb3cgZGVwZW5kaW5nIG9uIHdoZXRoZXIgdGhl IFNCQ0wgcnVudGltZSBpcyBpdHNlbGYKPiArICAgID4gYSBjb25zb2xlIG9yIEdVSSBhcHBsaWNh dGlvbi4gSW52b2tlIGBjbWQgL2Mgc3RhcnRgIHRvCj4gKyAgICA+IGNvbnNpc3RlbnRseSBkaXNw bGF5IGEgY29uc29sZSB3aW5kb3cgb3IgdXNlIHRoZSBgOldJTkRPV2AKPiArICAgID4gYDpISURF YCBvcHRpb24gdG8gY29uc2lzdGVudGx5IGhpZGUgdGhlIGNvbnNvbGUgd2luZG93LiIKPiAgICAo d2hlbiAoYW5kIGVudi1wIGVudmlyb25tZW50LXApCj4gICAgICAoZXJyb3IgImNhbid0IHNwZWNp ZnkgOkVOViBhbmQgOkVOVklST05NRU5UIHNpbXVsdGFuZW91c2x5IikpCj4gICAgKGxldCogKDs7 IENsZWFyIHZhcmlvdXMgc3BlY2lhbHMgdXNlZCBieSBHRVQtREVTQ1JJUFRPUi1GT1IgdG8KPiBk aWZmIC0tZ2l0IGEvc3JjL2NvZGUvc2F2ZS5saXNwIGIvc3JjL2NvZGUvc2F2ZS5saXNwCj4gaW5k ZXggNDY1NWUxZjc3Li5iNjEyNDczYTcgMTAwNjQ0Cj4gLS0tIGEvc3JjL2NvZGUvc2F2ZS5saXNw Cj4gKysrIGIvc3JjL2NvZGUvc2F2ZS5saXNwCj4gQEAgLTExNCw5ICsxMTQsMTAgQEAgVGhlIGZv bGxvd2luZyAmS0VZIGFyZ3VtZW50cyBhcmUgZGVmaW5lZDoKPiAgLSA6VE9QTEVWRUwKPgo+ICAg ICAgVGhlIGZ1bmN0aW9uIHRvIHJ1biB3aGVuIHRoZSBjcmVhdGVkIGNvcmUgZmlsZSBpcyByZXN1 bWVkLiBUaGUKPiAtICAgIGRlZmF1bHQgZnVuY3Rpb24gaGFuZGxlcyBjb21tYW5kIGxpbmUgdG9w bGV2ZWwgb3B0aW9uIHByb2Nlc3NpbmcKPiAtICAgIGFuZCBydW5zIHRoZSB0b3AgbGV2ZWwgcmVh ZC1ldmFsLXByaW50IGxvb3AuIFRoaXMgZnVuY3Rpb24KPiAtICAgIHJldHVybmluZyBpcyBlcXVp dmFsZW50IHRvIChTQi1FWFQ6RVhJVCA6Q09ERSAwKSBiZWluZyBjYWxsZWQuCj4gKyAgICBkZWZh dWx0IGZ1bmN0aW9uIGhhbmRsZXMgY29tbWFuZCBsaW5lIHRvcGxldmVsIG9wdGlvbgo+ICsgICAg cHJvY2Vzc2luZyAoc2VlIFNCLU1BTlVBTDpAVE9QTEVWRUwtT1BUSU9OUykgYW5kIHJ1bnMgdGhl IHRvcAo+ICsgICAgbGV2ZWwgcmVhZC1ldmFsLXByaW50IGxvb3AuIFRoaXMgZnVuY3Rpb24gcmV0 dXJuaW5nIGlzIGVxdWl2YWxlbnQKPiArICAgIHRvIChTQi1FWFQ6RVhJVCA6Q09ERSAwKSBiZWlu ZyBjYWxsZWQuCj4KPiAgICAgIFRPUExFVkVMIGZ1bmN0aW9ucyBzaG91bGQgYWx3YXlzIHByb3Zp ZGUgYW4gQUJPUlQgcmVzdGFydDoKPiAgICAgIG90aGVyd2lzZSBjb2RlIHRoZXkgY2FsbCB3aWxs IHJ1biB3aXRob3V0IG9uZS4KPiBAQCAtMTMwLDEzICsxMzEsMTMgQEAgVGhlIGZvbGxvd2luZyAm S0VZIGFyZ3VtZW50cyBhcmUgZGVmaW5lZDoKPgo+ICAtIDpTQVZFLVJVTlRJTUUtT1BUSU9OUwo+ Cj4gLSAgICBJZiB0cnVlLCB2YWx1ZXMgb2YgcnVudGltZSBvcHRpb25zIC0tZHluYW1pYy1zcGFj ZS1zaXplIGFuZAo+IC0gICAgLS1jb250cm9sLXN0YWNrLXNpemUgdGhhdCB3ZXJlIHVzZWQgdG8g c3RhcnQgU0JDTCBhcmUgc3RvcmVkIGluCj4gKyAgICBJZiB0cnVlLCB2YWx1ZXMgb2YgcnVudGlt ZSBvcHRpb25zIGAtLWR5bmFtaWMtc3BhY2Utc2l6ZWAgYW5kCj4gKyAgICBgLS1jb250cm9sLXN0 YWNrLXNpemVgIHRoYXQgd2VyZSB1c2VkIHRvIHN0YXJ0IFNCQ0wgYXJlIHN0b3JlZCBpbgo+ICAg ICAgdGhlIHN0YW5kYWxvbmUgZXhlY3V0YWJsZSwgYW5kIHJlc3RvcmVkIHdoZW4gdGhlIGV4ZWN1 dGFibGUgaXMKPiAgICAgIHJ1bi4gVGhpcyBhbHNvIGluaGliaXRzIG5vcm1hbCBydW50aW1lIG9w dGlvbiBwcm9jZXNzaW5nLCBjYXVzaW5nCj4gICAgICBhbGwgY29tbWFuZCBsaW5lIGFyZ3VtZW50 cyB0byBiZSBwYXNzZWQgdG8gdGhlIHRvcGxldmVsLiBJZgo+IC0gICAgOkFDQ0VQVC1SVU5USU1F LU9QVElPTlMgdGhlbiAtLWR5bmFtaWMtc3BhY2Utc2l6ZSBhbmQKPiAtICAgIC0tY29udHJvbC1z dGFjay1zaXplIGFyZSBzdGlsbCBwcm9jZXNzZWQgYnkgdGhlIHJ1bnRpbWUuCj4gKyAgICA6QUND RVBULVJVTlRJTUUtT1BUSU9OUyB0aGVuIGAtLWR5bmFtaWMtc3BhY2Utc2l6ZWAgYW5kCj4gKyAg ICBgLS1jb250cm9sLXN0YWNrLXNpemVgIGFyZSBzdGlsbCBwcm9jZXNzZWQgYnkgdGhlIHJ1bnRp bWUuCj4gICAgICBNZWFuaW5nbGVzcyBpZiA6RVhFQ1VUQUJMRSBpcyBOSUwuCj4KPiAgLSA6Q0FM TEFCTEUtRVhQT1JUUwo+IEBAIC0yMTAsMTMgKzIxMSwxNiBAQCBiZSBTQVZFLUxJU1AtQU5ELURJ RSBmcmllbmRseSBieSByZWdpc3RlcmluZyBhIHNhdmUtaG9vayB0aGF0IHF1aXRzCj4gIGFueSBh ZGRpdGlvbmFsIHRocmVhZHMsIGFuZCBhbiBpbml0LWhvb2sgdGhhdCByZXN0YXJ0cyB0aGVtLgo+ Cj4gIFRoaXMgaW1wbGVtZW50YXRpb24gaXMgbm90IGFzIHBvbGlzaGVkIGFuZCBwYWlubGVzcyBh cyB5b3UgbWlnaHQgbGlrZToKPiAtICAqIEl0IGNvcnJ1cHRzIHRoZSBjdXJyZW50IExpc3AgaW1h Z2UgZW5vdWdoIHRoYXQgdGhlIGN1cnJlbnQgcHJvY2Vzcwo+IC0gICAgbmVlZHMgdG8gYmUga2ls bGVkIGFmdGVyd2FyZHMuIFRoaXMgY2FuIGJlIHdvcmtlZCBhcm91bmQgYnkgZm9ya2luZwo+IC0g ICAgYW5vdGhlciBwcm9jZXNzIHRoYXQgc2F2ZXMgdGhlIGNvcmUuCj4gLSAgKiBUaGVyZSBpcyBh YnNvbHV0ZWx5IG5vIGJpbmFyeSBjb21wYXRpYmlsaXR5IG9mIGNvcmUgaW1hZ2VzIGJldHdlZW4K PiAtICAgIGRpZmZlcmVudCBydW50aW1lIHN1cHBvcnQgcHJvZ3JhbXMuIEV2ZW4gcnVudGltZXMg YnVpbHQgZnJvbSB0aGUgc2FtZQo+IC0gICAgc291cmNlcyBhdCBkaWZmZXJlbnQgdGltZXMgYXJl IHRyZWF0ZWQgYXMgaW5jb21wYXRpYmxlIGZvciB0aGlzCj4gLSAgICBwdXJwb3NlLgo+ICsKPiAr LSBJdCBjb3JydXB0cyB0aGUgY3VycmVudCBMaXNwIGltYWdlIGVub3VnaCB0aGF0IHRoZSBjdXJy ZW50IHByb2Nlc3MKPiArICBuZWVkcyB0byBiZSBraWxsZWQgYWZ0ZXJ3YXJkcy4gVGhpcyBjYW4g YmUgd29ya2VkIGFyb3VuZCBieSBmb3JraW5nCj4gKyAgYW5vdGhlciBwcm9jZXNzIHRoYXQgc2F2 ZXMgdGhlIGNvcmUuCj4gKwo+ICstIFRoZXJlIGlzIGFic29sdXRlbHkgbm8gYmluYXJ5IGNvbXBh dGliaWxpdHkgb2YgY29yZSBpbWFnZXMgYmV0d2Vlbgo+ICsgIGRpZmZlcmVudCBydW50aW1lIHN1 cHBvcnQgcHJvZ3JhbXMuIEV2ZW4gcnVudGltZXMgYnVpbHQgZnJvbSB0aGUKPiArICBzYW1lIHNv dXJjZXMgYXQgZGlmZmVyZW50IHRpbWVzIGFyZSB0cmVhdGVkIGFzIGluY29tcGF0aWJsZSBmb3Ig dGhpcwo+ICsgIHB1cnBvc2UuCj4gKwo+ICBUaGlzIGlzbid0IGJlY2F1c2Ugd2UgbGlrZSBpdCB0 aGlzIHdheSwgYnV0IGp1c3QgYmVjYXVzZSB0aGVyZSBkb24ndAo+ICBzZWVtIHRvIGJlIGdvb2Qg cXVpY2sgZml4ZXMgZm9yIGVpdGhlciBsaW1pdGF0aW9uIGFuZCBubyBvbmUgaGFzIGJlZW4KPiAg c3VmZmljaWVudGx5IG1vdGl2YXRlZCB0byBkbyBsZW5ndGh5IGZpeGVzLiIKPiBkaWZmIC0tZ2l0 IGEvc3JjL2NvZGUvc3R1YnMubGlzcCBiL3NyYy9jb2RlL3N0dWJzLmxpc3AKPiBpbmRleCAwY2Ni NGM5NTIuLmJkYWY1ZjFhZiAxMDA2NDQKPiAtLS0gYS9zcmMvY29kZS9zdHVicy5saXNwCj4gKysr IGIvc3JjL2NvZGUvc3R1YnMubGlzcAo+IEBAIC0xNzYsNiArMTc2LDE1IEBACj4gICAgKGRlZiAl bnVtZXJhdG9yKQo+ICAgIChkZWYgJWRlbm9taW5hdG9yKSkKPgo+ICs7OzsgRG9jdW1lbnQgb25s eSB0aG9zZSB0aGF0IFNCLU1BTlVBTDpAVU5UWVBFRC1NRU1PUlkgc2luZ2xlcyBvdXQgYXMKPiAr Ozs7IGV4YW1wbGVzLgo+ICsoc2V0ZiAoZG9jdW1lbnRhdGlvbiAnaW50LXNhcCAnZnVuY3Rpb24p Cj4gKyAgICAgICJDcmVhdGVzIGEgU0FQIHBvaW50aW5nIGF0IHRoZSB2aXJ0dWFsIGFkZHJlc3Mg YFhgLiIpCj4gKyhzZXRmCj4gKyAoZG9jdW1lbnRhdGlvbiAnc2FwLXJlZi0zMiAnZnVuY3Rpb24p Cj4gKyAiQWNjZXNzIHRoZSB2YWx1ZSBvZiB0aGUgbWVtb3J5IGxvY2F0aW9uIGF0IE9GRlNFVCBi eXRlcyBmcm9tIFNBUC4gU0VURmFibGUuIikKPiArKHNldGYgKGRvY3VtZW50YXRpb24gJ3NhcD0g J2Z1bmN0aW9uKSAiQ29tcGFyZSB0aGUgU0FQcyBYIGFuZCBZIGZvciBlcXVhbGl0eS4iKQo+ICsK PiAgIytzYi1zaW1kLXBhY2sKPiAgKG1hY3JvbGV0ICgoZGVmIChuYW1lKQo+ICAgICAgICAgICAg ICAgYChkZWZ1biAsbmFtZSAocGFjaykKPiBkaWZmIC0tZ2l0IGEvc3JjL2NvZGUvdGFyZ2V0LWFs aWVuZXZhbC5saXNwIGIvc3JjL2NvZGUvdGFyZ2V0LWFsaWVuZXZhbC5saXNwCj4gaW5kZXggYjJm YTI1OTNlLi4xOWFkNTQxNzkgMTAwNjQ0Cj4gLS0tIGEvc3JjL2NvZGUvdGFyZ2V0LWFsaWVuZXZh bC5saXNwCj4gKysrIGIvc3JjL2NvZGUvdGFyZ2V0LWFsaWVuZXZhbC5saXNwCj4gQEAgLTU2LDEw ICs1NiwzMSBAQAo+ICAgICAgICAgIChvb3BzKSkpKSkpCj4KPiAgKGRlZm1hY3JvIGRlZmluZS1h bGllbi12YXJpYWJsZSAobmFtZSB0eXBlICZlbnZpcm9ubWVudCBlbnYpCj4gLSAgIkRlZmluZSBO QU1FIGFzIGFuIGV4dGVybmFsIGFsaWVuIHZhcmlhYmxlIG9mIHR5cGUgVFlQRS4gTkFNRSBzaG91 bGQKPiAtYmUgYSBsaXN0IG9mIGEgc3RyaW5nIGhvbGRpbmcgdGhlIGFsaWVuIG5hbWUgYW5kIGEg c3ltYm9sIHRvIHVzZSBhcwo+IC10aGUgTGlzcCBuYW1lLiBJZiBOQU1FIGlzIGp1c3QgYSBzeW1i b2wgb3Igc3RyaW5nLCB0aGVuIHRoZSBvdGhlciBuYW1lCj4gLWlzIGd1ZXNzZWQgZnJvbSB0aGUg b25lIHN1cHBsaWVkLiIKPiArICAiRGVmaW5lIE5BTUUgYXMgYW4gZXh0ZXJuYWwgYWxpZW4gdmFy aWFibGUgb2YgdHlwZSBUWVBFLgo+ICsgIE5laXRoZXIgaXMgZXZhbHVhdGVkLgo+ICsKPiArICBJ biBpdHMgZnVsbCBmb3JtLCBOQU1FIGlzIGAoPEFMSUVOLU5BTUUtU1RSSU5HPgo+ICsgIDxMSVNQ LU5BTUUtU1lNQk9MPilgLiBJZiBOQU1FIGlzIGp1c3QgYSBzeW1ib2wgb3Igc3RyaW5nLCB0aGVu IHRoZQo+ICsgIG90aGVyIG5hbWUgaXMgZ3Vlc3NlZCBmcm9tIHRoZSBvbmUgc3VwcGxpZWQgYXMg ZGVzY3JpYmVkCj4gKyAgU0ItTUFOVUFMOkBFWFRFUk5BTC1GT1JFSUdOLVZBUklBQkxFUy4KPiAr Cj4gKyAgVGhlIExpc3AgbmFtZSBvZiB0aGUgdmFyaWFibGUgYmVjb21lcyBhIGdsb2JhbCBhbGll biB2YXJpYWJsZS4KPiArICBHbG9iYWwgYWxpZW4gdmFyaWFibGVzIGFyZSBlZmZlY3RpdmVseSBc Imdsb2JhbCBzeW1ib2wgbWFjcm9zXCI7IGEKPiArICByZWZlcmVuY2UgdG8gdGhlIHZhcmlhYmxl IGZldGNoZXMgdGhlIGNvbnRlbnRzIG9mIHRoZSBleHRlcm5hbAo+ICsgIHZhcmlhYmxlLiBTaW1p bGFybHksIHNldHRpbmcgdGhlIHZhcmlhYmxlIHN0b3JlcyBuZXcgY29udGVudHMgLS0gdGhlCj4g KyAgbmV3IGNvbnRlbnRzIG11c3QgYmUgb2YgdGhlIGRlY2xhcmVkIFRZUEUuIFNvbWVkYXksIHRo ZXkgbWF5IHdlbGwgYmUKPiArICBpbXBsZW1lbnRlZCB1c2luZyB0aGUgQU5TSSBERUZJTkUtU1lN Qk9MLU1BQ1JPIG1lY2hhbmlzbSwgYnV0IGFzIG9mCj4gKyAgU0JDTCAwLjcuNSwgdGhleSBhcmUg c3RpbGwgaW1wbGVtZW50ZWQgdXNpbmcgYW4gb2xkZXIgbW9yZS1vci1sZXNzCj4gKyAgcGFyYWxs ZWwgbWVjaGFuaXNtIGluaGVyaXRlZCBmcm9tIENNVUNMLgo+ICsKPiArICBGb3IgZXhhbXBsZSwg dG8gYWNjZXNzIGEgQy1sZXZlbCBjb3VudGVyIGBmb29gLCBvbmUgY291bGQgd3JpdGUKPiArCj4g KyAgICAgIChkZWZpbmUtYWxpZW4tdmFyaWFibGUgXCJmb29cIiBpbnQpCj4gKyAgICAgIDs7IE5v dyBpdCBpcyBwb3NzaWJsZSB0byBnZXQgdGhlIHZhbHVlIG9mIHRoZSBDIHZhcmlhYmxlIGZvbyBz aW1wbHkgYnkKPiArICAgICAgOzsgcmVmZXJlbmNpbmcgdGhhdCBMaXNwIHZhcmlhYmxlOgo+ICsg ICAgICAocHJpbnQgZm9vKQo+ICsgICAgICAoc2V0ZiBmb28gMTQpCj4gKyAgICAgIChpbmNmIGZv bykiCj4gICAgKG11bHRpcGxlLXZhbHVlLWJpbmQgKGxpc3AtbmFtZSBhbGllbi1uYW1lKSAocGlj ay1saXNwLWFuZC1hbGllbi1uYW1lcyBuYW1lKQo+ICAgICAgKHdpdGgtYXV4aWxpYXJ5LWFsaWVu LXR5cGVzIGVudgo+ICAgICAgICAobGV0ICgoYWxpZW4tdHlwZSAocGFyc2UtYWxpZW4tdHlwZSB0 eXBlIGVudikpKQo+IEBAIC05MiwxMyArMTEzLDE0IEBAIHZhcmlhYmxlIGlzIHVuZGVmaW5lZC4i Cj4gICAgICAgICAgICAgICAgICAgICAoZXJyb3IgJ3VuYm91bmQtdmFyaWFibGUgOm5hbWUgc3lt Ym9sKSkpKQo+Cj4gIChkZWZtYWNybyBleHRlcm4tYWxpZW4gKG5hbWUgdHlwZSAmZW52aXJvbm1l bnQgZW52KQo+IC0gICJBY2Nlc3MgdGhlIGFsaWVuIHZhcmlhYmxlIG5hbWVkIE5BTUUsIGFzc3Vt aW5nIGl0IGlzIG9mIHR5cGUgVFlQRS4KPiAtVGhpcyBpcyBTRVRGYWJsZS4iCj4gKyAgIlJldHVy biBhbiBhbGllbiBvZiBUWVBFIHdoaWNoIHBvaW50cyB0byBhbiBleHRlcm5hbGx5IGRlZmluZWQg dmFsdWUgb2YgTkFNRS4KPiArICBOQU1FIGlzIG5vdCBldmFsdWF0ZWQgYW5kIG1heSBiZSBlaXRo ZXIgYSBzdHJpbmcgb3IgYSBzeW1ib2wuIFRZUEUKPiArICBpcyBhbiB1bmV2YWx1YXRlZCBhbGll biB0eXBlIHNwZWNpZmllci4gU0VURmFibGUuIgo+ICAgIChsZXQqICgobmFtZSAoaWYgKGFuZCBl bnYgKGNvbnN0YW50cCBuYW1lIGVudikpIChjb25zdGFudC1mb3JtLXZhbHVlIG5hbWUgZW52KSBu YW1lKSkKPiAgICAgICAgICAgKGFsaWVuLW5hbWUgKHBvc3NpYmx5LWJhc2Utc3RyaW5naXplCj4g ICAgICAgICAgICAgICAgICAgICAgICAoZXR5cGVjYXNlIG5hbWUKPiAtICAgICAgICAgICAgICAg ICAgICAgICAoc3ltYm9sIChndWVzcy1hbGllbi1uYW1lLWZyb20tbGlzcC1uYW1lIG5hbWUpKQo+ IC0gICAgICAgICAgICAgICAgICAgICAgIChzdHJpbmcgbmFtZSkpKSkKPiArICAgICAgICAgICAg ICAgICAgICAgICAgKHN5bWJvbCAoZ3Vlc3MtYWxpZW4tbmFtZS1mcm9tLWxpc3AtbmFtZSBuYW1l KSkKPiArICAgICAgICAgICAgICAgICAgICAgICAgKHN0cmluZyBuYW1lKSkpKQo+ICAgICAgICAg ICAoYWxpZW4tdHlwZSAocGFyc2UtYWxpZW4tdHlwZSB0eXBlIGVudikpCj4gICAgICAgICAgIChk YXRhcCAobm90IChhbGllbi1mdW4tdHlwZS1wIGFsaWVuLXR5cGUpKSkpCj4gICAgICBgKCVhbGll bi12YWx1ZSAoZm9yZWlnbi1zeW1ib2wtc2FwICxhbGllbi1uYW1lICxkYXRhcCkgMCAnLGFsaWVu LXR5cGUpKSkKPiBAQCAtMTM1LDE2ICsxNTcsNDAgQEAgVGhpcyBpcyBTRVRGYWJsZS4iCj4gICAg ICAgICAgYChhbGllbi1mdW5jYWxsLWludG8gLGZ1bmMtZXhwciAsdmFyICxAYXJncykpKSkpCj4K PiAgKGRlZm1hY3JvIHdpdGgtYWxpZW4gKGJpbmRpbmdzICZib2R5IGJvZHkgJmVudmlyb25tZW50 IGVudikKPiAtICAiRXN0YWJsaXNoIHNvbWUgbG9jYWwgYWxpZW4gdmFyaWFibGVzLiBFYWNoIG9m IEJJTkRJTkdTIGlzIG9mIHRoZSBmb3JtOgo+ICsgICJFc3RhYmxpc2ggc29tZSBsb2NhbCBhbGll biB2YXJpYWJsZXMgb2YgZHluYW1pYyBleHRlbnQuCj4gKyAgRWFjaCBvZiBCSU5ESU5HUyBpcyBv ZiB0aGUgZm9ybToKPgo+ICAgICAgICAgVkFSIFRZUEUgWyBBTExPQ0FUSU9OIF0gWyBJTklUSUFM LVZBTFVFIHwgRVhURVJOQUwtTkFNRSBdCj4KPiAgICAgYEFMTE9DQVRJT05gIHNob3VsZCBiZSBv bmUgb2Y6Cj4gLSAgICAgOkxPQ0FMICh0aGUgZGVmYXVsdCkKPiAtICAgICAgIFRoZSBhbGllbiBp cyBhbGxvY2F0ZWQgb24gdGhlIHN0YWNrLCBhbmQgaGFzIGR5bmFtaWMgZXh0ZW50Lgo+IC0gICAg IDpFWFRFUk4KPiAtICAgICAgIE5vIGFsaWVuIGlzIGFsbG9jYXRlZCwgYnV0IFZBUiBpcyBlc3Rh Ymxpc2hlZCBhcyBhIGxvY2FsIG5hbWUgZm9yCj4gLSAgICAgICB0aGUgZXh0ZXJuYWwgYWxpZW4g Z2l2ZW4gYnkgYEVYVEVSTkFMLU5BTUVgLiIKPiArCj4gKyAgICAgLSA6TE9DQUwgKHRoZSBkZWZh dWx0KTogVGhlIGFsaWVuIGlzIGFsbG9jYXRlZCBvbiB0aGUgc3RhY2ssIGFuZAo+ICsgICAgICAg aGFzIGR5bmFtaWMgZXh0ZW50Lgo+ICsKPiArICAgICAtIDpFWFRFUk46IE5vIGFsaWVuIGlzIGFs bG9jYXRlZCwgYnV0IGBWQVJgIGlzIGVzdGFibGlzaGVkIGFzIGEKPiArICAgICAgIGxvY2FsIG5h bWUgZm9yIHRoZSBleHRlcm5hbCBhbGllbiBnaXZlbiBieSBgRVhURVJOQUwtTkFNRWAuCj4gKwo+ ICsgIGBWQVJgcyBhcmUgZXN0YWJsaXNoZWQgYXMgc3ltYm9sLW1hY3JvczsgdGhlIGJpbmRpbmdz IGhhdmUgbGV4aWNhbAo+ICsgIHNjb3BlLCBhbmQgbWF5IGJlIGFzc2lnbmVkIHdpdGggU0VUUSBv ciBTRVRGLgo+ICsKPiArICBUaGUgV0lUSC1BTElFTiBtYWNybyBhbHNvIGVzdGFibGlzaGVzIGEg bmV3IHNjb3BlIGZvciBuYW1lZAo+ICsgIHN0cnVjdHVyZXMgYW5kIHVuaW9ucy4gQW55IFRZUEUg c3BlY2lmaWVkIGZvciBhIHZhcmlhYmxlIG1heSBjb250YWluCj4gKyAgbmFtZWQgc3RydWN0dXJl IG9yIHVuaW9uIHR5cGVzIHdpdGggdGhlIHNsb3RzIHNwZWNpZmllZC4gV2l0aGluIHRoZQo+ICsg IGxleGljYWwgc2NvcGUgb2YgdGhlIGJpbmRpbmcgc3BlY2lmaWVycyBhbmQgYm9keSwgYSBsb2Nh bGx5IGRlZmluZWQKPiArICBmb3JlaWduIHN0cnVjdHVyZSB0eXBlIGBGT09gIGNhbiBiZSByZWZl cmVuY2VkIGJ5IGl0cyBuYW1lIHVzaW5nCj4gKyAgYChTVFJVQ1QgRk9PKWAuCj4gKwo+ICsgIFdo ZW4gYSBmb3JlaWduIGZ1bmN0aW9uIHJldHVybnMgYSBzdHJ1Y3R1cmUgYnkgdmFsdWUsIHVzaW5n Cj4gKyAgQUxJRU4tRlVOQ0FMTCBhcyB0aGUgYElOSVRJQUwtVkFMVUVgIGFsbG93cyB0aGUgcmV0 dXJuZWQgc3RydWN0IHRvCj4gKyAgYmUgc3RhY2stYWxsb2NhdGVkIGRpcmVjdGx5IGludG8gdGhl IGxvY2FsIHZhcmlhYmxlJ3Mgc3RvcmFnZSwKPiArICBhdm9pZGluZyBoZWFwIGFsbG9jYXRpb246 Cj4gKwo+ICsgICAgICAod2l0aC1hbGllbiAoKHJlc3VsdCAoc3RydWN0IHBvaW50KQo+ICsgICAg ICAgICAgICAgICAgICAgICAgICAgICAoYWxpZW4tZnVuY2FsbAo+ICsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgKGV4dGVybi1hbGllbiBcIm1ha2VfcG9pbnRcIgo+ICsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuY3Rpb24gKHN0cnVjdCBwb2ludCkgZG91 YmxlIGRvdWJsZSkpCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAxLjBkMCAyLjBkMCkp KQo+ICsgICAgICAgICh2YWx1ZXMgKHNsb3QgcmVzdWx0ICd4KSAoc2xvdCByZXN1bHQgJ3kpKSki Cj4gICAgOzsgRklYTUU6Cj4gICAgOzsgICAgICA6U1RBVElDCj4gICAgOzsgICAgICAgIFRoZSBh bGllbiBpcyBhbGxvY2F0ZWQgb24gdGhlIGhlYXAsIGFuZCBoYXMgaW5maW5pdGUgZXh0ZW50LiBU aGUgYWxpZW4KPiBAQCAtMjU5LDE1ICszMDUsMTcgQEAgVGhpcyBpcyBTRVRGYWJsZS4iCj4gICAg KHplcm9wIChzYXAtaW50IChhbGllbi1zYXAgeCkpKSkKPgo+ICAoZGVmbWFjcm8gc2FwLWFsaWVu IChzYXAgdHlwZSAmZW52aXJvbm1lbnQgZW52KQo+IC0gICJDb252ZXJ0IHRoZSBzeXN0ZW0gYXJl YSBwb2ludGVyIFNBUCB0byBhbiBBTElFTiBvZiB0aGUgc3BlY2lmaWVkIFRZUEUgKG5vdAo+IC0g ICBldmFsdWF0ZWQuKSBUWVBFIG11c3QgYmUgcG9pbnRlci1saWtlLiIKPiArICAiQ29udmVydCB0 aGUgU1lTVEVNLUFSRUEtUE9JTlRFUiBTQVAgdG8gYW4gQUxJRU4gb2YgdGhlIHNwZWNpZmllZAo+ ICsgIFRZUEUgKG5vdCBldmFsdWF0ZWQpLiBUWVBFIG11c3QgYmUgcG9pbnRlci1saWtlIChmb3Jl aWduIHBvaW50ZXIsCj4gKyAgYXJyYXksIG9yIHJlY29yZCB0eXBlKS4iCj4gICAgKGxldCAoKGFs aWVuLXR5cGUgKHBhcnNlLWFsaWVuLXR5cGUgdHlwZSBlbnYpKSkKPiAgICAgIChpZiAoZXEgKGNv bXB1dGUtYWxpZW4tcmVwLXR5cGUgYWxpZW4tdHlwZSkgJ3N5c3RlbS1hcmVhLXBvaW50ZXIpCj4g ICAgICAgICAgYCglc2FwLWFsaWVuICxzYXAgJyxhbGllbi10eXBlKQo+ICAgICAgICAgIChlcnJv ciAiY2Fubm90IG1ha2UgYW4gYWxpZW4gb2YgdHlwZSB+UyBvdXQgb2YgYSBTQVAiIHR5cGUpKSkp Cj4KPiAgKGRlZnVuIGFsaWVuLXNhcCAoYWxpZW4pCj4gLSAgIlJldHVybiBhIFN5c3RlbS1BcmVh LVBvaW50ZXIgcG9pbnRpbmcgdG8gQWxpZW4ncyBkYXRhLiIKPiArICAiUmV0dXJuIGEgU1lTVEVN LUFSRUEtUE9JTlRFUiBwb2ludGluZyB0byBBTElFTidzIGRhdGEuCj4gKyAgQUxJRU4gbXVzdCBi ZSBvZiBzb21lIGZvcmVpZ24gcG9pbnRlciwgYXJyYXksIG9yIHJlY29yZCB0eXBlLiIKPiAgICAo ZGVjbGFyZSAodHlwZSBhbGllbi12YWx1ZSBhbGllbikpCj4gICAgKGFsaWVuLXZhbHVlLXNhcCBh bGllbikpCj4KPiBAQCAtMjc2LDggKzMyNCw4IEBAIFRoaXMgaXMgU0VURmFibGUuIgo+ICAoZGVm bWFjcm8gbWFrZS1hbGllbiAodHlwZSAmb3B0aW9uYWwgc2l6ZSAmZW52aXJvbm1lbnQgZW52KQo+ ICAgICJBbGxvY2F0ZSBhbiBhbGllbiBvZiB0eXBlIFRZUEUgaW4gZm9yZWlnbiBoZWFwLCBhbmQg cmV0dXJuIGFuIGFsaWVuCj4gIHBvaW50ZXIgdG8gaXQuIFRoZSBhbGxvY2F0ZWQgbWVtb3J5IGlz IG5vdCBpbml0aWFsaXplZCwgYW5kIG1heQo+IC1jb250YWluIGdhcmJhZ2UuIFRoZSBtZW1vcnkg aXMgYWxsb2NhdGVkIHVzaW5nIGBtYWxsb2NgKDMpLCBzbyBpdCBjYW4KPiAtYmUgcGFzc2VkIHRv IGZvcmVpZ24gZnVuY3Rpb25zIHdoaWNoIHVzZSBgZnJlZWAoMyksIG9yIHJlbGVhc2VkIHVzaW5n Cj4gK2NvbnRhaW4gZ2FyYmFnZS4gVGhlIG1lbW9yeSBpcyBhbGxvY2F0ZWQgdXNpbmcgYG1hbGxv YygzKWAsIHNvIGl0IGNhbgo+ICtiZSBwYXNzZWQgdG8gZm9yZWlnbiBmdW5jdGlvbnMgd2hpY2gg dXNlIGBmcmVlKDMpYCwgb3IgcmVsZWFzZWQgdXNpbmcKPiAgRlJFRS1BTElFTi4KPgo+ICBGb3Ig YWxpZW4gc3RhY2sgYWxsb2NhdGlvbiwgc2VlIG1hY3JvIFdJVEgtQUxJRU4uCj4gQEAgLTI5Myw3 ICszNDEsNyBAQCBpbnRlcnByZXRlZCBkZXBlbmRzIG9uIFRZUEU6Cj4KPiAgKiBXaGVuIFRZUEUg aXMgYW55IG90aGVyIGZvcmVpZ24gdHlwZSwgdGhlbiBhbiBvYmplY3QgZm9yIHRoYXQgdHlwZSBp cwo+ICAgIGFsbG9jYXRlZCwgYW5kIGEgcG9pbnRlciB0byBpdCBpcyByZXR1cm5lZC4gU28KPiAt ICAobWFrZS1hbGllbiBpbnQpIHJldHVybnMgYSAoKiBpbnQpLgo+ICsgIChNQUtFLUFMSUVOIElO VCkgcmV0dXJucyBhICgqIElOVCkuCj4KPiAgICAgIElmIFNJWkUgaXMgc3BlY2lmaWVkLCB0aGVu IGEgYmxvY2sgb2YgdGhhdCBtYW55IG9iamVjdHMgaXMKPiAgICAgIGFsbG9jYXRlZCwgd2l0aCB0 aGUgcmVzdWx0IHBvaW50aW5nIHRvIHRoZSBmaXJzdCBvbmUuCj4gQEAgLTM4MSw3ICs0MjksNyBA QCBFeGFtcGxlczoKPiAgKGRlY2xhaW0gKGlubGluZSBmcmVlLWFsaWVuKSkKPiAgKGRlZnVuIGZy ZWUtYWxpZW4gKGFsaWVuKQo+ICAgICJEaXNwb3NlIG9mIHRoZSBzdG9yYWdlIHBvaW50ZWQgdG8g YnkgQUxJRU4uIFRoZSBBTElFTiBtdXN0IGhhdmUgYmVlbgo+IC1hbGxvY2F0ZWQgYnkgTUFLRS1B TElFTiwgTUFLRS1BTElFTi1TVFJJTkcgb3IgYG1hbGxvY2AoMykuIgo+ICthbGxvY2F0ZWQgYnkg TUFLRS1BTElFTiwgTUFLRS1BTElFTi1TVFJJTkcgb3IgYG1hbGxvYygzKWAuIgo+ICAgIChhbGll bi1mdW5jYWxsIChleHRlcm4tYWxpZW4gImZyZWUiIChmdW5jdGlvbiAodmFsdWVzKSBzeXN0ZW0t YXJlYS1wb2ludGVyKSkKPiAgICAgICAgICAgICAgICAgICAoYWxpZW4tc2FwIGFsaWVuKSkKPiAg ICBuaWwpCj4gQEAgLTQwOCw3ICs0NTYsNyBAQCBhbGxvY2F0ZWQgYnkgTUFLRS1BTElFTiwgTUFL RS1BTElFTi1TVFJJTkcgb3IgYG1hbGxvY2AoMykuIgo+ICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIChleHRlcm5hbC1mb3JtYXQgOmRlZmF1bHQpCj4gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgKG51bGwtdGVybWluYXRlIHQpKQo+ICAgICJDb3B5 IHBhcnQgb2YgU1RSSU5HIGRlbGltaXRlZCBieSBTVEFSVCBhbmQgRU5EIGludG8gZnJlc2hseQo+ IC1hbGxvY2F0ZWQgZm9yZWlnbiBtZW1vcnksIGZyZWVhYmxlIHVzaW5nIGBmcmVlYCgzKSBvciBG UkVFLUFMSUVOLgo+ICthbGxvY2F0ZWQgZm9yZWlnbiBtZW1vcnksIGZyZWVhYmxlIHVzaW5nIGBm cmVlKDMpYCBvciBGUkVFLUFMSUVOLgo+ICBSZXR1cm5zIHRoZSBhbGxvY2F0ZWQgc3RyaW5nIGFz IGEgKCogQ0hBUikgYWxpZW4sIGFuZCB0aGUgbnVtYmVyIG9mCj4gIGJ5dGVzIGFsbG9jYXRlZCBh cyBzZWNvbmRhcnkgdmFsdWUuCj4KPiBAQCAtNDM5LDcgKzQ4NywxMiBAQCBudWxsIGJ5dGUuIgo+ ICA7OzsgRXh0cmFjdCB0aGUgdmFsdWUgZnJvbSB0aGUgbmFtZWQgc2xvdCBmcm9tIHRoZSByZWNv cmQgQUxJRU4uIElmCj4gIDs7OyBBTElFTiBpcyBhY3R1YWxseSBhIHBvaW50ZXIsIHRoZW4gREVS RUYgaXQgZmlyc3QuCj4gIChkZWZ1biBzbG90IChhbGllbiBzbG90KQo+IC0gICJFeHRyYWN0IFNM T1QgZnJvbSB0aGUgQWxpZW4gU1RSVUNUIG9yIFVOSU9OIEFMSUVOLiBNYXkgYmUgc2V0IHdpdGgg U0VURi4iCj4gKyAgIkV4dHJhY3QgdGhlIHZhbHVlIG9mIHRoZSBzbG90IG5hbWVkIFNMT1QgZnJv bSBhIGZvcmVpZ24gU1RSVUNUIG9yCj4gKyAgVU5JT04gQUxJRU4uIElmIEFMSUVOIGlzIGEgcG9p bnRlciB0byBhIHN0cnVjdHVyZSBvciB1bmlvbiwgdGhlbiBpdAo+ICsgIGlzIGF1dG9tYXRpY2Fs bHkgZGVyZWZlcmVuY2VkLiBTRVRGYWJsZS4KPiArCj4gKyAgTm90ZSB0aGF0IFNMT1QgaXMgZXZh bHVhdGVkLCBhbmQgbmVlZCBub3QgYmUgYSBjb21waWxlLXRpbWUKPiArICBjb25zdGFudCAoYnV0 IG9ubHkgY29uc3RhbnQgc2xvdCBhY2Nlc3NlcyBhcmUgZWZmaWNpZW50bHkgY29tcGlsZWQpLiIK PiAgICAoZGVjbGFyZSAodHlwZSBhbGllbi12YWx1ZSBhbGllbikKPiAgICAgICAgICAgICAodHlw ZSBzeW1ib2wgc2xvdCkpCj4gICAgKGxldCAoKHR5cGUgKGFsaWVuLXZhbHVlLXR5cGUgYWxpZW4p KSkKPiBAQCAtNTI4LDkgKzU4MSwxMSBAQCBudWxsIGJ5dGUuIgo+Cj4gIDs7OyBEZXJlZmVyZW5j ZSB0aGUgYWxpZW4gYW5kIHJldHVybiB0aGUgcmVzdWx0cy4KPiAgKGRlZnVuIGRlcmVmIChhbGll biAmcmVzdCBpbmRpY2VzKQo+IC0gICJEZXJlZmVyZW5jZSBhbiBBbGllbiBwb2ludGVyIG9yIGFy cmF5LiBJZiBhbiBhcnJheSwgdGhlIGluZGljZXMgYXJlIHVzZWQKPiAtICAgYXMgdGhlIGluZGlj ZXMgb2YgdGhlIGFycmF5IGVsZW1lbnQgdG8gYWNjZXNzLiBJZiBhIHBvaW50ZXIsIG9uZSBpbmRl eCBjYW4KPiAtICAgb3B0aW9uYWxseSBiZSBzcGVjaWZpZWQsIGdpdmluZyB0aGUgZXF1aXZhbGVu dCBvZiBDIHBvaW50ZXIgYXJpdGhtZXRpYy4iCj4gKyAgIkRlcmVmZXJlbmNlIGFuIEFMSUVOIHBv aW50ZXIgb3IgYXJyYXkuIFdoZW4gZGVyZWZlcmVuY2luZyBhIHBvaW50ZXIsCj4gKyAgYW4gb3B0 aW9uYWwgc2luZ2xlIGluZGV4IGNhbiBiZSBzcGVjaWZpZWQgdG8gZ2l2ZSB0aGUgZXF1aXZhbGVu dCBvZgo+ICsgIEMgcG9pbnRlciBhcml0aG1ldGljOyB0aGlzIGluZGV4IGlzIHNjYWxlZCBieSB0 aGUgc2l6ZSBvZiB0aGUgdHlwZQo+ICsgIHBvaW50ZWQgdG8uIFdoZW4gZGVyZWZlcmVuY2luZyBh biBhcnJheSwgdGhlIG51bWJlciBvZiBpbmRpY2VzIG11c3QKPiArICBiZSB0aGUgc2FtZSBhcyB0 aGUgbnVtYmVyIG9mIGRpbWVuc2lvbnMgaW4gdGhlIGFycmF5IHR5cGUuIFNFVEZhYmxlLiIKPiAg ICAoZGVjbGFyZSAodHlwZSBhbGllbi12YWx1ZSBhbGllbikKPiAgICAgICAgICAgICAodHlwZSBs aXN0IGluZGljZXMpKQo+ICAgIChtdWx0aXBsZS12YWx1ZS1iaW5kICh0YXJnZXQtdHlwZSBvZmZz ZXQpIChkZXJlZi1ndXRzIGFsaWVuIGluZGljZXMpCj4gQEAgLTYzMyw4ICs2ODgsOSBAQCBudWxs IGJ5dGUuIgo+ICA7Ozs7IHRoZSBBRERSIG1hY3JvCj4KPiAgKGRlZm1hY3JvIGFkZHIgKGV4cHIg JmVudmlyb25tZW50IGVudikKPiAtICAiUmV0dXJuIGFuIEFsaWVuIHBvaW50ZXIgdG8gdGhlIGRh dGEgYWRkcmVzc2VkIGJ5IEV4cHIsIHdoaWNoIG11c3QgYmUgYSBjYWxsCj4gLSAgIHRvIFNMT1Qg b3IgREVSRUYsIG9yIGEgcmVmZXJlbmNlIHRvIGFuIEFsaWVuIHZhcmlhYmxlLiIKPiArICAiUmV0 dXJuIGFuIEFsaWVuIHBvaW50ZXIgdG8gdGhlIGRhdGEgYWRkcmVzc2VkIGJ5IEVYUFIsCj4gKyAg d2hpY2ggbXVzdCBiZSBhIGZvcmVpZ24gdmFyaWFibGUsIGEgY2FsbCB0byBERVJFRiBvciBTTE9U LCBvciBhIHVzZQo+ICsgIG9mIEVYVEVSTi1BTElFTi4iCj4gICAgKGxldCAoKGZvcm0gKCVtYWNy b2V4cGFuZCBleHByIGVudikpKQo+ICAgICAgKG9yICh0eXBlY2FzZSBmb3JtCj4gICAgICAgICAg ICAoY29ucwo+IEBAIC02NjgsOCArNzI0LDExIEBAIG51bGwgYnl0ZS4iCj4gIDs7OzsgdGhlIENB U1QgbWFjcm8KPgo+ICAoZGVmbWFjcm8gY2FzdCAoYWxpZW4gdHlwZSAmZW52aXJvbm1lbnQgZW52 KQo+IC0gICJDb252ZXJ0IEFMSUVOIHRvIGFuIEFsaWVuIG9mIHRoZSBzcGVjaWZpZWQgVFlQRSAo bm90IGV2YWx1YXRlZC4pICBCb3RoIHR5cGVzCj4gLSAgIG11c3QgYmUgQWxpZW4gYXJyYXksIHBv aW50ZXIgb3IgZnVuY3Rpb24gdHlwZXMuIgo+ICsgICJDb252ZXJ0IEFMSUVOIHRvIGFuIEFsaWVu IG9mIHRoZSBzcGVjaWZpZWQgVFlQRSAobm90IGV2YWx1YXRlZCkuCj4gKyAgQm90aCB0eXBlcyBt dXN0IGJlIEFsaWVuIGFycmF5LCBwb2ludGVyIG9yIGZ1bmN0aW9uIHR5cGVzLgo+ICsKPiArICBO b3RlIHRoYXQgdGhlIHJlc3VsdGluZyBMaXNwIGZvcmVpZ24gdmFyaWFibGUgb2JqZWN0IGlzIG5v dCBFUSB0bwo+ICsgIHRoZSBhcmd1bWVudCwgYnV0IGl0IHBvaW50cyB0byB0aGUgc2FtZSBmb3Jl aWduIG1lbW9yeSBhZGRyZXNzLiIKPiAgICBgKCVjYXN0ICxhbGllbiAnLChwYXJzZS1hbGllbi10 eXBlIHR5cGUgZW52KSkpCj4KPiAgKGRlZnVuICVjYXN0IChhbGllbiB0YXJnZXQtdHlwZSkKPiBA QCAtNzU2LDggKzgxNSw0MCBAQCBudWxsIGJ5dGUuIgo+ICA7Ozs7IEFMSUVOLUZVTkNBTEwsIERF RklORS1BTElFTi1ST1VUSU5FCj4KPiAgKGRlZnVuIGFsaWVuLWZ1bmNhbGwgKGFsaWVuICZyZXN0 IGFyZ3MpCj4gLSAgIkNhbGwgdGhlIGZvcmVpZ24gZnVuY3Rpb24gQUxJRU4gd2l0aCB0aGUgc3Bl Y2lmaWVkIGFyZ3VtZW50cy4gQUxJRU4ncwo+IC10eXBlIHNwZWNpZmllcyB0aGUgYXJndW1lbnQg YW5kIHJlc3VsdCB0eXBlcy4iCj4gKyAgIkNhbGwgdGhlIGZvcmVpZ24gZnVuY3Rpb24gQUxJRU4g d2l0aCBBUkdTIGFuZCByZXR1cm4gaXRzIEMgcmV0dXJuIHZhbHVlCj4gKyAgYXMgYSBMaXNwIHZh bHVlLiBBTElFTidzIGZvcmVpZ24gdHlwZSBzcGVjaWZpZXMgdGhlIGFyZ3VtZW50IGFuZAo+ICsg IHJlc3VsdCB0eXBlcy4gQUxJRU4gaXMgdHlwaWNhbGx5IGFuIEVYVEVSTi1BTElFTiBvciBhIHZh bHVlIGRlZmluZWQKPiArICB3aXRoIERFRklORS1BTElFTi1ST1VUSU5FLgo+ICsKPiArICBUaGUg dHlwZSBvZiBBTElFTiBtdXN0IGJlIGAoQUxJRU4gKEZVTkNUSU9OIC4uLikpYCBvciBgKEFMSUVO Cj4gKyAgKCogKEZVTkNUSU9OIC4uLikpKWAuIFRoZSBmdW5jdGlvbiB0eXBlIGlzIHVzZWQgdG8g ZGV0ZXJtaW5lIGhvdyB0bwo+ICsgIGNhbGwgdGhlIGZ1bmN0aW9uIChhcyB0aG91Z2ggaXQgd2Fz IGRlY2xhcmVkIHdpdGggYSBwcm90b3R5cGUpLiBUaGUKPiArICB0eXBlIG5lZWQgbm90IGJlIGtu b3duIGF0IGNvbXBpbGUgdGltZSwgYnV0IG9ubHkga25vd24tdHlwZSBjYWxscwo+ICsgIGFyZSBl ZmZpY2llbnRseSBjb21waWxlZC4KPiArCj4gKyAgT24gVW5peC1saWtlIHg4Ni02NCBhbmQgQVJN NjQgc3lzdGVtcywgc3RydWN0dXJlcyBtYXkgYmUgcGFzc2VkIGFuZAo+ICsgIHJldHVybmVkIGJ5 IHZhbHVlLiBUaGUgaW1wbGVtZW50YXRpb24gZm9sbG93cyB0aGUgU3lzdGVtIFYgQU1ENjQgQUJJ Cj4gKyAgYW5kIEFBUENTNjQgc3BlY2lmaWNhdGlvbnMgcmVzcGVjdGl2ZWx5Lgo+ICsKPiArICBI ZXJlIGlzIGFuIGV4YW1wbGUgd2hpY2ggYWxsb2NhdGVzIGEgYChTVFJVQ1QgRk9PKWAsIGNhbGxz IGEgZm9yZWlnbgo+ICsgIGZ1bmN0aW9uIHRvIGluaXRpYWxpemUgaXQsIHRoZW4gcmV0dXJucyBh IExpc3AgdmVjdG9yIG9mIGFsbAo+ICsgIHRoZSBgKCogKFNUUlVDVCBGT08pKWAgb2JqZWN0cyBm aWxsZWQgaW4gYnkgdGhlIGZvcmVpZ24gY2FsbDoKPiArCj4gKyAgICAgIDs7IEFsbG9jYXRlIGEg Zm9vIG9uIHRoZSBzdGFjay4KPiArICAgICAgKHdpdGgtYWxpZW4gKChmIChzdHJ1Y3QgZm9vKSkp Cj4gKyAgICAgICAgOzsgQ2FsbCBzb21lIEMgZnVuY3Rpb24gdG8gZmlsbCBpbiBmb28gZmllbGRz Lgo+ICsgICAgICAgIChhbGllbi1mdW5jYWxsIChleHRlcm4tYWxpZW4gXCJtYW5nbGVfZm9vXCIg KGZ1bmN0aW9uIHZvaWQgKCogZm9vKSkpCj4gKyAgICAgICAgICAgICAgICAgICAgICAgKGFkZHIg ZikpCj4gKyAgICAgICAgOzsgRmluZCBob3cgbWFueSBmb29zIHRvIHVzZSBieSBnZXR0aW5nIHRo ZSBBIGZpZWxkLgo+ICsgICAgICAgIChsZXQqICgobnVtIChzbG90IGYgJ2EpKQo+ICsgICAgICAg ICAgICAgICAocmVzdWx0IChtYWtlLWFycmF5IG51bSkpKQo+ICsgICAgICAgICAgOzsgR2V0IGEg cG9pbnRlciB0byB0aGUgYXJyYXkgc28gdGhhdCB3ZSBkb24ndCBoYXZlIHRvIGtlZXAgZXh0cmFj dGluZyBpdDoKPiArICAgICAgICAgICh3aXRoLWFsaWVuICgoYSAoKiAoYXJyYXkgKCogKHN0cnVj dCBmb28pKSAxMDApKSAoYWRkciAoc2xvdCBmICdiKSkpKQo+ICsgICAgICAgICAgICA7OyBMb29w IG92ZXIgdGhlIGZpcnN0IE4gZWxlbWVudHMgYW5kIHN0YXNoIHRoZW0gaW4gdGhlIHJlc3VsdCB2 ZWN0b3IuCj4gKyAgICAgICAgICAgIChkb3RpbWVzIChpIG51bSkKPiArICAgICAgICAgICAgICAo c2V0ZiAoc3ZyZWYgcmVzdWx0IGkpIChkZXJlZiAoZGVyZWYgYSkgaSkpKQo+ICsgICAgICAgICAg ICA7OyBWb2lsYS4KPiArICAgICAgICAgICAgcmVzdWx0KSkpIgo+ICAgIChkZWNsYXJlICh0eXBl IGFsaWVuLXZhbHVlIGFsaWVuKSkKPiAgICAobGV0ICgodHlwZSAoYWxpZW4tdmFsdWUtdHlwZSBh bGllbikpKQo+ICAgICAgKHR5cGVjYXNlIHR5cGUKPiBAQCAtNzg4LDggKzg3OSwyMyBAQCB0eXBl IHNwZWNpZmllcyB0aGUgYXJndW1lbnQgYW5kIHJlc3VsdCB0eXBlcy4iCj4gICMrKG9yIHg4Ni02 NCBhcm02NCkKPiAgKGRlZnVuIGFsaWVuLWZ1bmNhbGwtaW50byAoYWxpZW4gcmVzdWx0LWJ1ZmZl ciAmcmVzdCBhcmdzKQo+ICAgICJDYWxsIHRoZSBmb3JlaWduIGZ1bmN0aW9uIEFMSUVOLCB3cml0 aW5nIHRoZSBzdHJ1Y3QgcmVzdWx0IHRvIFJFU1VMVC1CVUZGRVIuCj4gLVJFU1VMVC1CVUZGRVIg c2hvdWxkIGJlIGEgc3lzdGVtLWFyZWEtcG9pbnRlciB0byBhcHByb3ByaWF0ZWx5IHNpemVkIG1l bW9yeS4KPiAtT25seSBzdXBwb3J0ZWQgb24geDg2LTY0IGFuZCBBUk02NC4iCj4gK1JldHVybnMg bm8gdmFsdWVzLgo+ICsKPiArUkVTVUxULUJVRkZFUiBzaG91bGQgYmUgYSBTWVNURU0tQVJFQS1Q T0lOVEVSIHRvIGFwcHJvcHJpYXRlbHkgc2l6ZWQgbWVtb3J5Lgo+ICtPbmx5IHN1cHBvcnRlZCBv biB4ODYtNjQgYW5kIEFSTTY0Lgo+ICsKPiArSGVyZSBpcyBhbiBleGFtcGxlIHRoYXQgY2FsbHMg YSBDIGZ1bmN0aW9uIHJldHVybmluZyBhIHN0cnVjdCwgd3JpdGluZwo+ICt0aGUgcmVzdWx0IHRv IGEgc3RhY2stYWxsb2NhdGVkIGJ1ZmZlcjoKPiArCj4gKyAgICAoZGVmaW5lLWFsaWVuLXR5cGUg bmlsIChzdHJ1Y3QgcG9pbnQgKHggZG91YmxlKSAoeSBkb3VibGUpKSkKPiArCj4gKyAgICAod2l0 aC1hbGllbiAoKHJlc3VsdCAoc3RydWN0IHBvaW50KSkpCj4gKyAgICAgIChhbGllbi1mdW5jYWxs LWludG8KPiArICAgICAgIChleHRlcm4tYWxpZW4gXCJtYWtlX3BvaW50XCIKPiArICAgICAgICAg ICAgICAgICAgICAgKGZ1bmN0aW9uIChzdHJ1Y3QgcG9pbnQpIGRvdWJsZSBkb3VibGUpKQo+ICsg ICAgICAgKGFsaWVuLXNhcCAoYWRkciByZXN1bHQpKQo+ICsgICAgICAgMS4wZDAgMi4wZDApCj4g KyAgICAgICh2YWx1ZXMgKHNsb3QgcmVzdWx0ICd4KSAoc2xvdCByZXN1bHQgJ3kpKSkiCj4gICAg KGRlY2xhcmUgKHR5cGUgYWxpZW4tdmFsdWUgYWxpZW4pCj4gICAgICAgICAgICAgKHR5cGUgc3lz dGVtLWFyZWEtcG9pbnRlciByZXN1bHQtYnVmZmVyKSkKPiAgICAobGV0ICgodHlwZSAoYWxpZW4t dmFsdWUtdHlwZSBhbGllbikpKQo+IEBAIC04MTksNDMgKzkyNSw3OSBAQCBPbmx5IHN1cHBvcnRl ZCBvbiB4ODYtNjQgYW5kIEFSTTY0LiIKPiAgKGRlZm1hY3JvIGRlZmluZS1hbGllbi1yb3V0aW5l IChuYW1lIHJlc3VsdC10eXBlCj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAmcmVzdCBhcmdzCj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmZW52 aXJvbm1lbnQgbGV4ZW52KQo+IC0gICJERUZJTkUtQUxJRU4tUk9VVElORSBuYW1lIHJlc3VsdC10 eXBlIHsoYXJnLW5hbWUgYXJnLXR5cGUgW3N0eWxlXSl9Kgo+ICsgICJEZWZpbmUgYSBmb3JlaWdu IGludGVyZmFjZSBmdW5jdGlvbiBmb3IgdGhlIHJvdXRpbmUgd2l0aCB0aGUgc3BlY2lmaWVkIE5B TUUuCj4gK0Fsc28gYXV0b21hdGljYWxseSBERUNMQUlNIHRoZSBGVFlQRSBvZiB0aGUgZGVmaW5l ZCBmdW5jdGlvbi4gVGhlCj4gK3NlbWFudGljcyBvZiB0aGUgYWN0dWFsIGNhbGwgYXJlIHRoZSBz YW1lIGFzIGZvciBBTElFTi1GVU5DQUxMLgo+Cj4gLURlZmluZSBhIGZvcmVpZ24gaW50ZXJmYWNl IGZ1bmN0aW9uIGZvciB0aGUgcm91dGluZSB3aXRoIHRoZSBzcGVjaWZpZWQgTkFNRS4KPiAtQWxz byBhdXRvbWF0aWNhbGx5IERFQ0xBSU0gdGhlIEZUWVBFIG9mIHRoZSBkZWZpbmVkIGZ1bmN0aW9u Lgo+ICtUaGlzIG1hY3JvIGlzIGEgY29udmVuaWVuY2UgZm9yIGF1dG9tYXRpY2FsbHkgZ2VuZXJh dGluZyBMaXNwCj4gK2ludGVyZmFjZXMgdG8gc2ltcGxlIGZvcmVpZ24gZnVuY3Rpb25zLiBUaGUg cHJpbWFyeSBmZWF0dXJlIGlzIHRoZQo+ICtwYXJhbWV0ZXIgc3R5bGUgc3BlY2lmaWNhdGlvbiwg d2hpY2ggdHJhbnNsYXRlcyB0aGUgQwo+ICtwYXNzLWJ5LXJlZmVyZW5jZSBpZGlvbSBpbnRvIGFk ZGl0aW9uYWwgcmV0dXJuIHZhbHVlcy4KPgo+IC1OQU1FIG1heSBiZSBlaXRoZXIgYSBzdHJpbmcs IGEgc3ltYm9sLCBvciBhIGxpc3Qgb2YgdGhlIGZvcm0gKHN0cmluZyBzeW1ib2wpLgo+ICtOQU1F IG1heSBiZSBlaXRoZXIgYSBzdHJpbmcsIGEgc3ltYm9sLCBvciBhIGxpc3Qgb2YgdGhlCj4gK2Zv cm0gYCg8Rk9SRUlHTi1OQU1FLVNUUklORz4gPExJU1AtTkFNRS1TWU1CT0w+KWAuCj4KPiAgUkVT VUxULVRZUEUgaXMgdGhlIGFsaWVuIHR5cGUgZm9yIHRoZSBmdW5jdGlvbiByZXR1cm4gdmFsdWUu IFZPSUQgbWF5IGJlCj4gIHVzZWQgdG8gc3BlY2lmeSBhIGZ1bmN0aW9uIHdpdGggbm8gcmVzdWx0 Lgo+Cj4gLVRoZSByZW1haW5pbmcgZm9ybXMgc3BlY2lmeSBpbmRpdmlkdWFsIGFyZ3VtZW50cyB0 aGF0IGFyZSBwYXNzZWQgdG8KPiAtdGhlIHJvdXRpbmUuIGBBUkctTkFNRWAgaXMgYSBzeW1ib2wg dGhhdCBuYW1lcyB0aGUgYXJndW1lbnQsIHByaW1hcmlseQo+IC1mb3IgZG9jdW1lbnRhdGlvbi4g YEFSRy1UWVBFYCBpcyB0aGUgQyB0eXBlIG9mIHRoZSBhcmd1bWVudC4gYFNUWUxFYAo+IC1zcGVj aWZpZXMgdGhlIHdheSB0aGF0IHRoZSBhcmd1bWVudCBpcyBwYXNzZWQuCj4gLQo+IC06SU4KPiAt ICAgICAgQW4gOklOIGFyZ3VtZW50IGlzIHNpbXBseSBwYXNzZWQgYnkgdmFsdWUuIFRoZSB2YWx1 ZSB0byBiZSBwYXNzZWQgaXMKPiAtICAgICAgb2J0YWluZWQgZnJvbSBhcmd1bWVudChzKSB0byB0 aGUgaW50ZXJmYWNlIGZ1bmN0aW9uLiBObyB2YWx1ZXMgYXJlCj4gLSAgICAgIHJldHVybmVkIGZv ciA6SW4gYXJndW1lbnRzLiBUaGlzIGlzIHRoZSBkZWZhdWx0IG1vZGUuCj4gLQo+IC06T1VUCj4g LSAgICAgIFRoZSBzcGVjaWZpZWQgYXJndW1lbnQgdHlwZSBtdXN0IGJlIGEgcG9pbnRlciB0byBh IGZpeGVkIHNpemVkIG9iamVjdC4KPiAtICAgICAgQSBwb2ludGVyIHRvIGEgcHJlYWxsb2NhdGVk IG9iamVjdCBpcyBwYXNzZWQgdG8gdGhlIHJvdXRpbmUsIGFuZCB0aGUKPiAtICAgICAgdGhlIG9i amVjdCBpcyBhY2Nlc3NlZCBvbiByZXR1cm4sIHdpdGggdGhlIHZhbHVlIGJlaW5nIHJldHVybmVk IGZyb20KPiAtICAgICAgdGhlIGludGVyZmFjZSBmdW5jdGlvbi4gOk9VVCBhbmQgOklOLU9VVCBj YW5ub3QgYmUgdXNlZCB3aXRoIHBvaW50ZXJzCj4gLSAgICAgIHRvIGFycmF5cywgcmVjb3JkcyBv ciBmdW5jdGlvbnMuCj4gLQo+IC06Q09QWQo+IC0gICAgICBUaGlzIGlzIHNpbWlsYXIgdG8gOklO LCBleGNlcHQgdGhhdCB0aGUgYXJndW1lbnQgdmFsdWVzIGFyZSBzdG9yZWQKPiAtICAgICAgb24g dGhlIHN0YWNrLCBhbmQgYSBwb2ludGVyIHRvIHRoZSBvYmplY3QgaXMgcGFzc2VkIGluc3RlYWQg b2YKPiAtICAgICAgdGhlIHZhbHVlIGl0c2VsZi4KPiAtCj4gLTpJTi1PVVQKPiAtICAgICAgVGhp cyBpcyBhIGNvbWJpbmF0aW9uIG9mIDpPVVQgYW5kIDpDT1BZLiBBIHBvaW50ZXIgdG8gdGhlIGFy Z3VtZW50IGlzCj4gLSAgICAgIHBhc3NlZCwgd2l0aCB0aGUgb2JqZWN0IGJlaW5nIGluaXRpYWxp emVkIGZyb20gdGhlIHN1cHBsaWVkIGFyZ3VtZW50Cj4gLSAgICAgIGFuZCB0aGUgcmV0dXJuIHZh bHVlIGJlaW5nIGRldGVybWluZWQgYnkgYWNjZXNzaW5nIHRoZSBvYmplY3Qgb24KPiAtICAgICAg cmV0dXJuLiIKPiArQVJHUyBpcyBhIGxpc3Qgb2YgYChBUkctTkFNRSBBUkctVFlQRSAmT1BUSU9O QUwgU1RZTEUpYCBlbGVtZW50cy4KPiArYEFSRy1OQU1FYCBpcyBhIHN5bWJvbCB0aGF0IG5hbWVz IHRoZSBhcmd1bWVudCwgcHJpbWFyaWx5IGZvcgo+ICtkb2N1bWVudGF0aW9uLiBgQVJHLVRZUEVg IGlzIHRoZSBDIHR5cGUgb2YgdGhlIGFyZ3VtZW50Lgo+ICsKPiArYFNUWUxFYCBzcGVjaWZpZXMg dGhlIHdheSB0aGF0IHRoZSBhcmd1bWVudCBpcyBwYXNzZWQ6Cj4gKwo+ICstIDpJTjogQW4gOklO IGFyZ3VtZW50IGlzIHNpbXBseSBwYXNzZWQgYnkgdmFsdWUuIFRoZSB2YWx1ZSB0byBiZQo+ICsg IHBhc3NlZCBpcyBvYnRhaW5lZCBmcm9tIGFyZ3VtZW50KHMpIHRvIHRoZSBpbnRlcmZhY2UgZnVu Y3Rpb24uIE5vCj4gKyAgdmFsdWVzIGFyZSByZXR1cm5lZCBmb3IgOklOIGFyZ3VtZW50cy4gVGhp cyBpcyB0aGUgZGVmYXVsdCBtb2RlLgo+ICsKPiArLSA6T1VUOiBBIHBhc3MtYnktcmVmZXJlbmNl IG91dHB1dCB2YWx1ZS4gVGhlIHNwZWNpZmllZCBhcmd1bWVudCB0eXBlCj4gKyAgbXVzdCBiZSBh IHBvaW50ZXIgdG8gYSBmaXhlZCBzaXplZCBvYmplY3QuIEFuIG9iamVjdCBvZiB0aGUgY29ycmVj dAo+ICsgIHNpemUgaXMgYWxsb2NhdGVkIG9uIHRoZSBzdGFjaywgYW5kIGl0cyBhZGRyZXNzIGlz IHBhc3NlZCB0byB0aGUKPiArICBmb3JlaWduIGZ1bmN0aW9uLiBXaGVuIHRoZSBmdW5jdGlvbiBy ZXR1cm5zLCB0aGUgY29udGVudHMgb2YgdGhpcwo+ICsgIGxvY2F0aW9uIGFyZSByZXR1cm5lZCBh cyBvbmUgb2YgdGhlIHZhbHVlcyBvZiB0aGUgTGlzcCBmdW5jdGlvbiAoYW5kCj4gKyAgdGhlIGxv Y2F0aW9uIGlzIGF1dG9tYXRpY2FsbHkgZGVhbGxvY2F0ZWQpLiA6T1VUIGFuZCA6SU4tT1VUIGNh bm5vdAo+ICsgIGJlIHVzZWQgd2l0aCBwb2ludGVycyB0byBhcnJheXMsIHJlY29yZHMgb3IgZnVu Y3Rpb25zLgo+ICsKPiArLSA6Q09QWTogVGhpcyBpcyBzaW1pbGFyIHRvIDpJTiwgZXhjZXB0IHRo YXQgdGhlIGFyZ3VtZW50IHZhbHVlcyBhcmUKPiArICBzdG9yZWQgb24gdGhlIHN0YWNrLCBhbmQg YSBwb2ludGVyIHRvIHRoZSBvYmplY3QgaXMgcGFzc2VkIGluc3RlYWQKPiArICBvZiB0aGUgdmFs dWUgaXRzZWxmLgo+ICsKPiArLSA6SU4tT1VUOiBUaGlzIGlzIGEgY29tYmluYXRpb24gb2YgOk9V VCBhbmQgOkNPUFkuIEEgcG9pbnRlciB0byB0aGUKPiArICBhcmd1bWVudCBpcyBwYXNzZWQsIHdp dGggdGhlIG9iamVjdCBiZWluZyBpbml0aWFsaXplZCBmcm9tIHRoZQo+ICsgIHN1cHBsaWVkIGFy Z3VtZW50IGFuZCB0aGUgcmV0dXJuIHZhbHVlIGJlaW5nIGRldGVybWluZWQgYnkgYWNjZXNzaW5n Cj4gKyAgdGhlIG9iamVjdCBvbiByZXR1cm4uCj4gKwo+ICs+IF9Ob3RlXzogQW55IGVmZmljaWVu Y3ktY3JpdGljYWwgZm9yZWlnbiBpbnRlcmZhY2UgZnVuY3Rpb24gc2hvdWxkIGJlCj4gKz4gaW5s aW5lIGV4cGFuZGVkLCB3aGljaCBjYW4gYmUgZG9uZSBieSBwcmVjZWRpbmcgdGhlCj4gKz4gREVG SU5FLUFMSUVOLVJPVVRJTkUgY2FsbCB3aXRoOgo+ICs+Cj4gKz4gICAgIChkZWNsYWltIChpbmxp bmUgbGlzcC1uYW1lKSkKPiArPgo+ICs+IEluIGFkZGl0aW9uIHRvIGF2b2lkaW5nIHRoZSBMaXNw IGNhbGwgb3ZlcmhlYWQsIHRoaXMgYWxsb3dzCj4gKz4gcG9pbnRlcnMsIHdvcmQtaW50ZWdlcnMg YW5kIGZsb2F0cyB0byBiZSBwYXNzZWQgdXNpbmcgbm9uLWRlc2NyaXB0b3IKPiArPiByZXByZXNl bnRhdGlvbnMsIGF2b2lkaW5nIGNvbnNpbmcuCj4gKwo+ICtDb25zaWRlciB0aGUgQyBmdW5jdGlv biBgY2Zvb2Agd2l0aCB0aGUgZm9sbG93aW5nIGNhbGxpbmcKPiArY29udmVudGlvbjoKPiArCj4g KyAgICB2b2lkCj4gKyAgICBjZm9vIChzdHIsIGEsIGkpCj4gKyAgICAgICAgY2hhciAqc3RyOwo+ ICsgICAgICAgIGNoYXIgKmE7IC8qIHVwZGF0ZSAqLwo+ICsgICAgICAgIGludCAqaTsgLyogb3V0 ICovCj4gKyAgICB7Cj4gKyAgICAgIC8qIGJvZHkgb2YgY2ZvbyguLi4pICovCj4gKyAgICB9Cj4g Kwo+ICtUaGlzIGNhbiBiZSBkZXNjcmliZWQgYnkgdGhlIGZvbGxvd2luZyBjYWxsIHRvIERFRklO RS1BTElFTi1ST1VUSU5FOgo+ICsKPiArICAgIChkZWZpbmUtYWxpZW4tcm91dGluZSBcImNmb29c IiB2b2lkCj4gKyAgICAgIChzdHIgYy1zdHJpbmcpCj4gKyAgICAgIChhIGNoYXIgOmluLW91dCkK PiArICAgICAgKGkgaW50IDpvdXQpKQo+ICsKPiArVGhlIExpc3AgZnVuY3Rpb24gYGNmb29gIHdp bGwgaGF2ZSB0d28gYXJndW1lbnRzIChgc3RyYCBhbmQgYGFgKSBhbmQKPiArdHdvIHJldHVybiB2 YWx1ZXMgKGBhYCBhbmQgYGlgKS4iCj4gICAgKGJpbmRpbmcqICgoKGxpc3AtbmFtZSBhbGllbi1u YW1lKSAocGljay1saXNwLWFuZC1hbGllbi1uYW1lcyBuYW1lKSkKPiAgICAgICAgICAgICAgIDs7 IFRoZSBsb2NhbCBuYW1lIGlzIHVuaW50ZXJuZWQgc28gdGhhdCB3ZSBkb24ndCBwcmVjbHVkZQo+ ICAgICAgICAgICAgICAgOzsgICAoZGVmY29uc3RhbnQga2lsbCA5KQo+IGRpZmYgLS1naXQgYS9z cmMvY29kZS90YXJnZXQtZXJyb3IubGlzcCBiL3NyYy9jb2RlL3RhcmdldC1lcnJvci5saXNwCj4g aW5kZXggOTA3NGEzNDI0Li45YTdmMWU4MjAgMTAwNjQ0Cj4gLS0tIGEvc3JjL2NvZGUvdGFyZ2V0 LWVycm9yLmxpc3AKPiArKysgYi9zcmMvY29kZS90YXJnZXQtZXJyb3IubGlzcAo+IEBAIC0xMzMz LDYgKzEzMzMsMTAgQEAgc2lnbmFsbGVkIHdoZW4gYW4gb3BlcmF0aW9uIG9uIGEgc3ltYm9sIHZp b2xhdGVzIGEgcGFja2FnZSBsb2NrLiBUaGUKPiAgc3ltYm9sIHRoYXQgY2F1c2VkIHRoZSB2aW9s YXRpb24gaXMgYWNjZXNzZWQgYnkgdGhlIGZ1bmN0aW9uCj4gIFNCLUVYVDpQQUNLQUdFLUxPQ0tF RC1FUlJPUi1TWU1CT0wuIikpCj4KPiArKHNldGYgKGRvY3VtZW50YXRpb24gIydwYWNrYWdlLWxv Y2tlZC1lcnJvci1zeW1ib2wgdCkKPiArICAgICAgIlJldHVybiB0aGUgc3ltYm9sIHRoYXQgY2F1 c2VkIHRoZSBTWU1CT0wtUEFDS0FHRS1MT0NLRUQtRVJST1IKPiArICAgICAgY29uZGl0aW9uLiIp Cj4gKwo+ICAoZGVmaW5lLWNvbmRpdGlvbiB1bmRlZmluZWQtYWxpZW4tZXJyb3IgKGNlbGwtZXJy b3IpICgpCj4gICAgKDpyZXBvcnQKPiAgICAgKGxhbWJkYSAoY29uZGl0aW9uIHN0cmVhbSkKPiBk aWZmIC0tZ2l0IGEvc3JjL2NvZGUvdGFyZ2V0LWV4dGVuc2lvbnMubGlzcCBiL3NyYy9jb2RlL3Rh cmdldC1leHRlbnNpb25zLmxpc3AKPiBpbmRleCA4NjQ0NjQ2ZjcuLjI4NjU5YTgxYSAxMDA2NDQK PiAtLS0gYS9zcmMvY29kZS90YXJnZXQtZXh0ZW5zaW9ucy5saXNwCj4gKysrIGIvc3JjL2NvZGUv dGFyZ2V0LWV4dGVuc2lvbnMubGlzcAo+IEBAIC02Niw3ICs2Niw3IEBAIG9yZGVyIHdoZW4gU0JD TCBwcm9jZXNzIGV4aXRzLgo+Cj4gIFVudXNlZCBieSBTQkNMIGl0c2VsZjogcmVzZXJ2ZWQgZm9y IHVzZXIgYW5kIGFwcGxpY2F0aW9ucy4KPgo+IC1Vc2luZyAoU0ItRVhUOkVYSVQgOkFCT1JUIFQp LCBvciBjYWxsaW5nIGBleGl0YCgzKSBkaXJlY3RseSBjaXJjdW12ZW50cwo+ICtVc2luZyAoU0It RVhUOkVYSVQgOkFCT1JUIFQpLCBvciBjYWxsaW5nIGBleGl0KDMpYCBkaXJlY3RseSBjaXJjdW12 ZW50cwo+ICB0aGVzZSBob29rcy4iKQo+Cj4gIChkZWZ1biBjYWxsLWhvb2tzIChraW5kIGhvb2tz ICZrZXkgKG9uLWVycm9yIDplcnJvcikpCj4gZGlmZiAtLWdpdCBhL3NyYy9jb2RlL3RhcmdldC1o YXNoLXRhYmxlLmxpc3AgYi9zcmMvY29kZS90YXJnZXQtaGFzaC10YWJsZS5saXNwCj4gaW5kZXgg YmExNWQzY2NjLi43NjRlODNlNTUgMTAwNjQ0Cj4gLS0tIGEvc3JjL2NvZGUvdGFyZ2V0LWhhc2gt dGFibGUubGlzcAo+ICsrKyBiL3NyYy9jb2RlL3RhcmdldC1oYXNoLXRhYmxlLmxpc3AKPiBAQCAt NzI5LDggKzcyOSw4IEBAIGVudmlyb25tZW50LiBUaGUgaGFzaCBmdW5jdGlvbiBtdXN0IGNvbXB1 dGUgdGhlIHNhbWUgaGFzaCBjb2RlIGZvciBhbnkgdHdvCj4gIG9iamVjdHMgZm9yIHdoaWNoIE5B TUUgcmV0dXJucyB0cnVlLCBhbmQgc3Vic2VxdWVudCBjYWxscyB3aXRoIGFscmVhZHkgaGFzaGVk Cj4gIG9iamVjdHMgbXVzdCBhbHdheXMgcmV0dXJuIHRoZSBzYW1lIGhhc2ggY29kZS4KPgo+IC1O b3RlOiBUaGUgOkhBU0gtRlVOQ1RJT04ga2V5d29yZCBhcmd1bWVudCB0byBNQUtFLUhBU0gtVEFC TEUgY2FuIGJlIHVzZWQgdG8KPiAtb3ZlcnJpZGUgdGhlIHNwZWNpZmllZCBkZWZhdWx0IGhhc2gt ZnVuY3Rpb24uCj4gKz4gX05vdGVfOiBUaGUgOkhBU0gtRlVOQ1RJT04ga2V5d29yZCBhcmd1bWVu dCB0byBNQUtFLUhBU0gtVEFCTEUgY2FuCj4gKz4gYmUgdXNlZCB0byBvdmVycmlkZSB0aGUgc3Bl Y2lmaWVkIGRlZmF1bHQgaGFzaC1mdW5jdGlvbi4KPgo+ICBBdHRlbXB0aW5nIHRvIGRlZmluZSBO QU1FIGluIGEgbG9ja2VkIHBhY2thZ2UgYXMgaGFzaC10YWJsZSB0ZXN0IGNhdXNlcyBhCj4gIHBh Y2thZ2UgbG9jayB2aW9sYXRpb24uCj4gZGlmZiAtLWdpdCBhL3NyYy9jb2RlL3RhcmdldC1taXNj Lmxpc3AgYi9zcmMvY29kZS90YXJnZXQtbWlzYy5saXNwCj4gaW5kZXggOTYyYTliM2U3Li4xOWM2 ZTg3ODEgMTAwNjQ0Cj4gLS0tIGEvc3JjL2NvZGUvdGFyZ2V0LW1pc2MubGlzcAo+ICsrKyBiL3Ny Yy9jb2RlL3RhcmdldC1taXNjLmxpc3AKPiBAQCAtNTgsNyArNTgsNyBAQCBhcmUgcnVubmluZyBv biwgb3IgTklMIGlmIHdlIGNhbid0IGZpbmQgYW55IHVzZWZ1bCBpbmZvcm1hdGlvbi4iCj4gIDs7 OzsgRUQKPiAgKGRlY2xhaW0gKHR5cGUgbGlzdCAqZWQtZnVuY3Rpb25zKikpCj4gIChkZWZ2YXIg KmVkLWZ1bmN0aW9ucyogJygpCj4gLSAgIlNlZSBmdW5jdGlvbiBkb2N1bWVudGF0aW9uIGZvciBF RC4iKQo+ICsgICJTZWUgRUQuIikKPgo+ICAoZGVmdW4gZWQgKCZvcHRpb25hbCB4KQo+ICAgICJT dGFydHMgdGhlIGVkaXRvciAob24gYSBmaWxlIG9yIGEgZnVuY3Rpb24gaWYgbmFtZWQpLiAgRnVu Y3Rpb25zCj4gQEAgLTI1MCw5ICsyNTAsOSBAQCBUaGUgYXJndW1lbnRzIHNwZWNpZnkgYSBzZXF1 ZW5jZSBvZiBzdWJ2ZXJzaW9uIG51bWJlcnMgaW4gYmlnIGVuZGlhbiBvcmRlci4KPiAgVGhleSBh cmUgY29tcGFyZWQgbGV4aWNvZ3JhcGhpY2FsbHkgd2l0aCB0aGUgcnVudGltZSB2ZXJzaW9uLCBh bmQgdmVyc2lvbnMKPiAgYXJlIHRyZWF0ZWQgYXMgdGhvdWdoIHRyYWlsZWQgYnkgYW4gdW5ib3Vu ZGVkIG51bWJlciBvZiAwcy4KPgo+IC1Gb3IgZXhhbXBsZSwgKGFzc2VydC12ZXJzaW9uLT49IDEg MSA0KSBhc3NlcnRzIHRoYXQgdGhlIGN1cnJlbnQgU0JDTCBpcwo+IC12ZXJzaW9uIDEuMS40Wy4w LjAuLi5dIG9yIGdyZWF0ZXIsIGFuZCAoYXNzZXJ0LXZlcnNpb24tPj0gMSkgdGhhdCBpdCBpcwo+ IC12ZXJzaW9uIDFbLjAuMC4uLl0gb3IgZ3JlYXRlci4iCj4gK0ZvciBleGFtcGxlLCAoQVNTRVJU LVZFUlNJT04tPj0gMSAxIDQpIGFzc2VydHMgdGhhdCB0aGUgY3VycmVudCBTQkNMCj4gK2lzIHZl cnNpb24gMS4xLjRbLjAuMC4uLl0gb3IgZ3JlYXRlciwgYW5kIChBU1NFUlQtVkVSU0lPTi0+PSAx KSB0aGF0Cj4gK2l0IGlzIHZlcnNpb24gMVsuMC4wLi4uXSBvciBncmVhdGVyLiIKPiAgICAobGV0 ICgodmVyc2lvbiAoc3BsaXQtdmVyc2lvbi1zdHJpbmcgKGxpc3AtaW1wbGVtZW50YXRpb24tdmVy c2lvbikpKSkKPiAgICAgICh1bmxlc3MgKHZlcnNpb24+PSB2ZXJzaW9uIHN1YnZlcnNpb25zKQo+ ICAgICAgICAoY2Vycm9yICJEaXNyZWdhcmQgdGhpcyB2ZXJzaW9uIHJlcXVpcmVtZW50LiIKPiBk aWZmIC0tZ2l0IGEvc3JjL2NvZGUvdGFyZ2V0LXBhY2thZ2UubGlzcCBiL3NyYy9jb2RlL3Rhcmdl dC1wYWNrYWdlLmxpc3AKPiBpbmRleCBiNmNlNzUxMjcuLjk4ODE3ODU1NiAxMDA2NDQKPiAtLS0g YS9zcmMvY29kZS90YXJnZXQtcGFja2FnZS5saXNwCj4gKysrIGIvc3JjL2NvZGUvdGFyZ2V0LXBh Y2thZ2UubGlzcAo+IEBAIC05MTksNyArOTE5LDcgQEAgUkVNT1ZFLVBBQ0tBR0UtTE9DQUwtTklD S05BTUUsIGFuZCB0aGUgREVGUEFDS0FHRSBvcHRpb24gOkxPQ0FMLU5JQ0tOQU1FUy4iCj4gICAg KGRlZiBwYWNrYWdlLXNoYWRvd2luZy1zeW1ib2xzIHBhY2thZ2UtJXNoYWRvd2luZy1zeW1ib2xz KSkKPgo+ICAoZGVmdW4gcGFja2FnZS1sb2NhbC1uaWNrbmFtZXMgKHBhY2thZ2UtZGVzaWduYXRv cikKPiAtICAiUmV0dXJucyBhbiBhbGlzdCBvZiBcKGxvY2FsLW5pY2tuYW1lIC4gYWN0dWFsLXBh Y2thZ2UpIGRlc2NyaWJpbmcgdGhlCj4gKyAgIlJldHVybnMgYW4gYWxpc3Qgb2YgYChMT0NBTC1O SUNLTkFNRSAuIEFDVFVBTC1QQUNLQUdFKWAgZGVzY3JpYmluZyB0aGUKPiAgbmlja25hbWVzIGxv Y2FsIHRvIHRoZSBkZXNpZ25hdGVkIHBhY2thZ2UuCj4KPiAgV2hlbiBpbiB0aGUgZGVzaWduYXRl ZCBwYWNrYWdlLCBjYWxscyB0byBGSU5ELVBBQ0tBR0Ugd2l0aCB0aGUgYW55IG9mIHRoZQo+IEBA IC05MzEsOSArOTMxLDYgQEAgV2hlbiBwcmludGluZyBhIHBhY2thZ2UgcHJlZml4IGZvciBhIHN5 bWJvbCB3aXRoIGEgcGFja2FnZSBsb2NhbCBuaWNrbmFtZSwgdGhlCj4gIGxvY2FsIG5pY2tuYW1l IGlzIHVzZWQgaW5zdGVhZCBvZiB0aGUgcmVhbCBuYW1lIGluIG9yZGVyIHRvIHByZXNlcnZlCj4g IHByaW50LXJlYWQgY29uc2lzdGVuY3kuCj4KPiAtU2VlIGFsc286IEFERC1QQUNLQUdFLUxPQ0FM LU5JQ0tOQU1FLCBQQUNLQUdFLUxPQ0FMTFktTklDS05BTUVELUJZLUxJU1QsCj4gLVJFTU9WRS1Q QUNLQUdFLUxPQ0FMLU5JQ0tOQU1FLCBhbmQgdGhlIERFRlBBQ0tBR0Ugb3B0aW9uIDpMT0NBTC1O SUNLTkFNRVMuCj4gLQo+ICBFeHBlcmltZW50YWw6IGludGVyZmFjZSBzdWJqZWN0IHRvIGNoYW5n ZS4iCj4gICAgKHBhY2thZ2UtbG9jYWwtbmlja25hbWUtYWxpc3QKPiAgICAgKHBhY2thZ2UtJWxv Y2FsLW5pY2tuYW1lcyAoZmluZC11bmRlbGV0ZWQtcGFja2FnZS1vci1sb3NlIHBhY2thZ2UtZGVz aWduYXRvcikpCj4gQEAgLTk1Nyw5ICs5NTQsNiBAQCBFeHBlcmltZW50YWw6IGludGVyZmFjZSBz dWJqZWN0IHRvIGNoYW5nZS4iCj4gICAgIlJldHVybnMgYSBsaXN0IG9mIHBhY2thZ2VzIHdoaWNo IGhhdmUgYSBsb2NhbCBuaWNrbmFtZSBmb3IgdGhlIGRlc2lnbmF0ZWQKPiAgcGFja2FnZS4KPgo+ IC1TZWUgYWxzbzogQURELVBBQ0tBR0UtTE9DQUwtTklDS05BTUUsIFBBQ0tBR0UtTE9DQUwtTklD S05BTUVTLAo+IC1SRU1PVkUtUEFDS0FHRS1MT0NBTC1OSUNLTkFNRSwgYW5kIHRoZSBERUZQQUNL QUdFIG9wdGlvbiA6TE9DQUwtTklDS05BTUVTLgo+IC0KPiAgRXhwZXJpbWVudGFsOiBpbnRlcmZh Y2Ugc3ViamVjdCB0byBjaGFuZ2UuIgo+ICAgIChsZXQgKChkZXNpZ25lZSAoZmluZC11bmRlbGV0 ZWQtcGFja2FnZS1vci1sb3NlIHBhY2thZ2UtZGVzaWduYXRvcikpCj4gICAgICAgICAgKHJlc3Vs dCkpCj4gQEAgLTk5NCw5ICs5ODgsNiBAQCBXaGVuIHByaW50aW5nIGEgcGFja2FnZSBwcmVmaXgg Zm9yIGEgc3ltYm9sIHdpdGggYSBwYWNrYWdlIGxvY2FsIG5pY2tuYW1lLAo+ICBsb2NhbCBuaWNr bmFtZSBpcyB1c2VkIGluc3RlYWQgb2YgdGhlIHJlYWwgbmFtZSBpbiBvcmRlciB0byBwcmVzZXJ2 ZQo+ICBwcmludC1yZWFkIGNvbnNpc3RlbmN5Lgo+Cj4gLVNlZSBhbHNvOiBQQUNLQUdFLUxPQ0FM LU5JQ0tOQU1FUywgUEFDS0FHRS1MT0NBTExZLU5JQ0tOQU1FRC1CWS1MSVNULAo+IC1SRU1PVkUt UEFDS0FHRS1MT0NBTC1OSUNLTkFNRSwgYW5kIHRoZSBERUZQQUNLQUdFIG9wdGlvbiA6TE9DQUwt TklDS05BTUVTLgo+IC0KPiAgRXhwZXJpbWVudGFsOiBpbnRlcmZhY2Ugc3ViamVjdCB0byBjaGFu Z2UuIgo+ICAgIChsZXQgKChwYWNrYWdlIChmaW5kLXVuZGVsZXRlZC1wYWNrYWdlLW9yLWxvc2Ug cGFja2FnZS1kZXNpZ25hdG9yKSkpCj4gICAgICAoJWFkZC1wYWNrYWdlLWxvY2FsLW5pY2tuYW1l IGxvY2FsLW5pY2tuYW1lIGFjdHVhbC1wYWNrYWdlIHBhY2thZ2UpCj4gQEAgLTEwNjgsOSArMTA1 OSw2IEBAIEV4cGVyaW1lbnRhbDogaW50ZXJmYWNlIHN1YmplY3QgdG8gY2hhbmdlLiIKPiAgYW5v dGhlciBwYWNrYWdlLCBpdCBpcyByZW1vdmVkLiBSZXR1cm5zIHRydWUgaWYgdGhlIG5pY2tuYW1l IGV4aXN0ZWQgYW5kIHdhcwo+ICByZW1vdmVkLCBhbmQgTklMIG90aGVyd2lzZS4KPgo+IC1TZWUg YWxzbzogQURELVBBQ0tBR0UtTE9DQUwtTklDS05BTUUsIFBBQ0tBR0UtTE9DQUwtTklDS05BTUVT LAo+IC1QQUNLQUdFLUxPQ0FMTFktTklDS05BTUVELUJZLUxJU1QsIGFuZCB0aGUgREVGUEFDS0FH RSBvcHRpb24gOkxPQ0FMLU5JQ0tOQU1FUy4KPiAtCj4gIEV4cGVyaW1lbnRhbDogaW50ZXJmYWNl IHN1YmplY3QgdG8gY2hhbmdlLiIKPiAgICAobGV0KiAoKG5pY2sgKHN0cmluZyBvbGQtbmlja25h bWUpKQo+ICAgICAgICAgICAocGFja2FnZSAoZmluZC11bmRlbGV0ZWQtcGFja2FnZS1vci1sb3Nl IHBhY2thZ2UtZGVzaWduYXRvcikpCj4gZGlmZiAtLWdpdCBhL3NyYy9jb2RlL3RhcmdldC1yYW5k b20ubGlzcCBiL3NyYy9jb2RlL3RhcmdldC1yYW5kb20ubGlzcAo+IGluZGV4IDIyMDRhYzliMC4u MWIxMWQ4OTViIDEwMDY0NAo+IC0tLSBhL3NyYy9jb2RlL3RhcmdldC1yYW5kb20ubGlzcAo+ICsr KyBiL3NyYy9jb2RlL3RhcmdldC1yYW5kb20ubGlzcAo+IEBAIC0xMzYsNiArMTM2LDcgQEAgU2Vl IFNCLUVYVDpTRUVELVJBTkRPTS1TVEFURSBmb3IgYSBTQkNMIGV4dGVuc2lvbiB0byB0aGlzIGZ1 bmN0aW9uYWxpdHkuIgo+ICBmb3IgZGV0ZXJtaW5pc3RpYyBwc2V1ZG8tcmFuZG9tIG51bWJlciBn ZW5lcmF0aW9uLgo+Cj4gIEFzIHBlciB0aGUgQ29tbW9uIExpc3Agc3RhbmRhcmQgZm9yIE1BS0Ut UkFORE9NLVNUQVRFLAo+ICsKPiAgLSBJZiBTVEFURSBpcyBOSUwgb3Igbm90IHN1cHBsaWVkLCBy ZXR1cm4gYSBjb3B5IG9mIHRoZSBkZWZhdWx0Cj4gICAgKlJBTkRPTS1TVEFURSouCj4gIC0gSWYg U1RBVEUgaXMgYSByYW5kb20gc3RhdGUsIHJldHVybiBhIGNvcHkgb2YgaXQuCj4gQEAgLTE0NSw4 ICsxNDYsMTAgQEAgQXMgcGVyIHRoZSBDb21tb24gTGlzcCBzdGFuZGFyZCBmb3IgTUFLRS1SQU5E T00tU1RBVEUsCj4KPiAgQXMgYSBzdXBwb3J0ZWQgU0JDTCBleHRlbnNpb24sIHdlIGFsc28gc3Vw cG9ydCByZWNlaXZpbmcgYXMgYSBzZWVkIGFuIG9iamVjdAo+ICBvZiB0aGUgZm9sbG93aW5nIHR5 cGVzOgo+ICsKPiAgLSAoU0lNUExFLUFSUkFZIChVTlNJR05FRC1CWVRFIDgpICgqKSkKPiAgLSBV TlNJR05FRC1CWVRFCj4gKwo+ICBXaGlsZSB3ZSBzdXBwb3J0IGFyZ3VtZW50cyBvZiBhbnkgc2l6 ZSBhbmQgd2lsbCBtaXggdGhlIHByb3ZpZGVkIGJpdHMgaW50bwo+ICB0aGUgcmFuZG9tIHN0YXRl LCBpdCBpcyBwcm9iYWJseSBvdmVya2lsbCB0byBwcm92aWRlIG1vcmUgdGhhbiAyNTYgYml0cyB3 b3J0aAo+ICBvZiBhY3R1YWwgaW5mb3JtYXRpb24uCj4gZGlmZiAtLWdpdCBhL3NyYy9jb2RlL3Rh cmdldC10aHJlYWQubGlzcCBiL3NyYy9jb2RlL3RhcmdldC10aHJlYWQubGlzcAo+IGluZGV4IDRh NjBlNjc1ZS4uY2NjZjA2NDRiIDEwMDY0NAo+IC0tLSBhL3NyYy9jb2RlL3RhcmdldC10aHJlYWQu bGlzcAo+ICsrKyBiL3NyYy9jb2RlL3RhcmdldC10aHJlYWQubGlzcAo+IEBAIC00NDgsOSArNDQ4 LDcgQEAgSWYgY3VycmVudCB0aHJlYWQgaXMgdGhlIG1haW4gdGhyZWFkIG9mIHRoZSBwcm9jZXNz IChzZWUKPiAgTUFJTi1USFJFQUQtUCksIHNpZ25hbHMgYW4gZXJyb3IgdW5sZXNzIEFMTE9XLUVY SVQgaXMgdHJ1ZSwgYXMKPiAgdGVybWluYXRpbmcgdGhlIG1haW4gdGhyZWFkIHdvdWxkIHRlcm1p bmF0ZSB0aGUgZW50aXJlIHByb2Nlc3MuIElmCj4gIEFMTE9XLUVYSVQgaXMgdHJ1ZSwgcmV0dXJu aW5nIGZyb20gdGhlIG1haW4gdGhyZWFkIGlzIGVxdWl2YWxlbnQgdG8KPiAtY2FsbGluZyBTQi1F WFQ6RVhJVCB3aXRoIDpDT0RFIDAgYW5kIDpBQk9SVCBOSUwuCj4gLQo+IC1TZWUgYWxzbzogQUJP UlQtVEhSRUFEIGFuZCBTQi1FWFQ6RVhJVC4iCj4gK2NhbGxpbmcgU0ItRVhUOkVYSVQgd2l0aCA6 Q09ERSAwIGFuZCA6QUJPUlQgTklMLiIKPiAgICBgKCVyZXR1cm4tZnJvbS10aHJlYWQgKG11bHRp cGxlLXZhbHVlLWNhbGwgIydzeXMtdGxhYi1saXN0ICx2YWx1ZXMtZm9ybSkgLGFsbG93LWV4aXQp KQo+Cj4gIChkZWZ1biAlcmV0dXJuLWZyb20tdGhyZWFkICh2YWx1ZXMgYWxsb3ctZXhpdCkKPiBA QCAtNDgyLDkgKzQ4MCw3IEBAIGVxdWl2YWxlbnQgdG8gY2FsbGluZyBBQk9SVC1USFJFQUQgaW4g b3RoZXIgdGhhbiBtYWluIHRocmVhZHMuCj4gIEhvd2V2ZXIsIHdoZXJlYXMgQUJPUlQgcmVzdGFy dCBtYXkgYmUgcmVib3VuZCwgQUJPUlQtVEhSRUFEIGFsd2F5cwo+ICB1bndpbmRzIHRoZSBlbnRp cmUgdGhyZWFkLiAoQmVoYXZpb3VyIG9mIHRoZSBpbml0aWFsIEFCT1JUIHJlc3RhcnQgZm9yCj4g IG1haW4gdGhyZWFkIGRlcGVuZHMgb24gdGhlIDpUT1BMRVZFTCBhcmd1bWVudCB0bwo+IC1TQi1F WFQ6U0FWRS1MSVNQLUFORC1ESUUuKQo+IC0KPiAtU2VlIGFsc286IFJFVFVSTi1GUk9NLVRIUkVB RCBhbmQgU0ItRVhUOkVYSVQuIgo+ICtTQi1FWFQ6U0FWRS1MSVNQLUFORC1ESUUuKSIKPiAgICAo bGV0ICgoc2VsZiAqY3VycmVudC10aHJlYWQqKSkKPiAgICAgIChjb25kICgobWFpbi10aHJlYWQt cCBzZWxmKQo+ICAgICAgICAgICAgICh1bmxlc3MgYWxsb3ctZXhpdAo+IEBAIC01NjIsOCArNTU4 LDkgQEAgU2VlIGFsc286IFJFVFVSTi1GUk9NLVRIUkVBRCBhbmQgU0ItRVhUOkVYSVQuIgo+Cj4g IDs7OzsgTXV0ZXhlcwo+Cj4gLShzZXRmIChkb2N1bWVudGF0aW9uICdtYWtlLW11dGV4ICdmdW5j dGlvbikgIkNyZWF0ZSBhIG11dGV4LiIKPiAtICAgICAgKGRvY3VtZW50YXRpb24gJ211dGV4LW5h bWUgJ2Z1bmN0aW9uKSAiVGhlIG5hbWUgb2YgdGhlIG11dGV4LiBTZXRmYWJsZS4iKQo+ICsoc2V0 ZiAoZG9jdW1lbnRhdGlvbiAnbWFrZS1tdXRleCAnZnVuY3Rpb24pICJDcmVhdGUgYSBNVVRFWC4i KQo+ICsoc2V0ZiAoZG9jdW1lbnRhdGlvbiAnbXV0ZXgtbmFtZSAnZnVuY3Rpb24pCj4gKyAgICAg ICJUaGUgbmFtZSBvZiB0aGUgTVVURVguIFNFVEZhYmxlLiIpCj4KPiAgKHNiLWV4dDpkZWZpbmUt bG9hZC10aW1lLWdsb2JhbCAqKmRlYWRsb2NrLWxvY2sqKiBuaWwpCj4KPiBAQCAtOTgyLDI2ICs5 NzksMjUgQEAgTm90ZXM6Cj4KPiAgICAtIEdSQUItTVVURVggaXMgbm90IGludGVycnVwdCBzYWZl LiBUaGUgY29ycmVjdCB3YXkgdG8gY2FsbCBpdCBpczoKPgo+IC0gICAgICAoV0lUSE9VVC1JTlRF UlJVUFRTCj4gLSAgICAgICAgLi4uCj4gLSAgICAgICAgKEFMTE9XLVdJVEgtSU5URVJSVVBUUyAo R1JBQi1NVVRFWCAuLi4pKQo+IC0gICAgICAgIC4uLikKPiArICAgICAgICAgICh3aXRob3V0LWlu dGVycnVwdHMKPiArICAgICAgICAgICAgLi4uCj4gKyAgICAgICAgICAgIChhbGxvdy13aXRoLWlu dGVycnVwdHMgKGdyYWItbXV0ZXggLi4uKSkKPiArICAgICAgICAgICAgLi4uKQo+Cj4gICAgICBX SVRIT1VULUlOVEVSUlVQVFMgaXMgbmVjZXNzYXJ5IHRvIGF2b2lkIGFuIGludGVycnVwdCB1bndp bmRpbmcgdGhlIGNhbGwKPiAgICAgIHdoaWxlIHRoZSBtdXRleCBpcyBpbiBhbiBpbmNvbnNpc3Rl bnQgc3RhdGUgd2hpbGUgQUxMT1ctV0lUSC1JTlRFUlJVUFRTCj4gICAgICBhbGxvd3MgdGhlIGNh bGwgdG8gYmUgaW50ZXJydXB0ZWQgZnJvbSBzbGVlcC4KPgo+IC0gIC0gKEdSQUItTVVURVggPG11 dGV4PiA6dGltZW91dCAwLjApIGRpZmZlcnMgZnJvbQo+IC0gICAgKEdSQUItTVVURVggPG11dGV4 PiA6d2FpdHAgbmlsKSBpbiB0aGF0IHRoZSBmb3JtZXIgbWF5IHNpZ25hbCBhCj4gLSAgICBERUFE TElORS1USU1FT1VUIGlmIHRoZSBnbG9iYWwgZGVhZGxpbmUgd2FzIGR1ZSBhbHJlYWR5IG9uIGVu dGVyaW5nCj4gLSAgICBHUkFCLU1VVEVYLgo+ICsgIC0gYChHUkFCLU1VVEVYIDxNVVRFWD4gOlRJ TUVPVVQgMC4wKWAgZGlmZmVycyBmcm9tCj4gKyAgICBgKEdSQUItTVVURVggPE1VVEVYPiA6V0FJ VFAgTklMKWAgaW4gdGhhdCB0aGUgZm9ybWVyIG1heSBzaWduYWwgYQo+ICsgICAgREVBRExJTkUt VElNRU9VVCBpZiB0aGUgZ2xvYmFsIGRlYWRsaW5lIHdhcyBkdWUgYWxyZWFkeSBvbgo+ICsgICAg ZW50ZXJpbmcgR1JBQi1NVVRFWC4KPgo+ICAgICAgVGhlIGV4YWN0IGludGVycGxheSBvZiBHUkFC LU1VVEVYIGFuZCBkZWFkbGluZXMgYXJlIHJlc2VydmVkIHRvIGNoYW5nZSBpbgo+ICAgICAgZnV0 dXJlIHZlcnNpb25zLgo+Cj4gICAgLSBJdCBpcyByZWNvbW1lbmRlZCB0aGF0IHlvdSB1c2UgV0lU SC1NVVRFWCBpbnN0ZWFkIG9mIGNhbGxpbmcgR1JBQi1NVVRFWAo+IC0gICAgZGlyZWN0bHkuCj4g LSIKPiArICAgIGRpcmVjdGx5LiIKPiAgICAoZGVjbGFyZSAoaWdub3JhYmxlIHdhaXRwIHRpbWVv dXQpKQo+ICAgIChvciAoJXRyeS1tdXRleCBtdXRleCkKPiAgICAgICAgIytzYi10aHJlYWQKPiBA QCAtMTEzOSw4ICsxMTM1LDggQEAgb3IgOkVSUk9SIHJlc3BlY3RpdmVseSwgb3IgcmVsZWFzZSB0 aGUgbXV0ZXggYW55d2F5IGlmIDpGT1JDRS4iCj4gICAgKHByaW50LXVucmVhZGFibGUtb2JqZWN0 ICh3YWl0cXVldWUgc3RyZWFtIDp0eXBlIHQgOmlkZW50aXR5IHQpCj4gICAgICAoZm9ybWF0IHN0 cmVhbSAifjpbLX47fjoqflN+XSIgKHdhaXRxdWV1ZS1uYW1lIHdhaXRxdWV1ZSkpKSkKPgo+IC0o c2V0ZiAoZG9jdW1lbnRhdGlvbiAnd2FpdHF1ZXVlLW5hbWUgJ2Z1bmN0aW9uKSAiVGhlIG5hbWUg b2YgdGhlIHdhaXRxdWV1ZS4gU2V0ZmFibGUuIgo+IC0gICAgICAoZG9jdW1lbnRhdGlvbiAnbWFr ZS13YWl0cXVldWUgJ2Z1bmN0aW9uKSAiQ3JlYXRlIGEgd2FpdHF1ZXVlLiIpCj4gKyhzZXRmIChk b2N1bWVudGF0aW9uICd3YWl0cXVldWUtbmFtZSAnZnVuY3Rpb24pICJUaGUgbmFtZSBvZiB0aGUg d2FpdHF1ZXVlLiBTRVRGYWJsZS4iCj4gKyAgICAgIChkb2N1bWVudGF0aW9uICdtYWtlLXdhaXRx dWV1ZSAnZnVuY3Rpb24pICJDcmVhdGUgYSBXQUlUUVVFVUUuIikKPgo+ICAoZGVmbWFjcm8gbmx4 LXByb3RlY3QtZnV0ZXggKHByb3RlY3RlZCAmYm9keSBjbGVhbnVwKQo+ICAgIChkZWNsYXJlIChp Z25vcmFibGUgY2xlYW51cCkpCj4gQEAgLTEyOTcsMjUgKzEyOTMsMjQgQEAgQ09ORElUSU9OLUJS T0FEQ0FTVCBoYXZpbmcgb2NjdXJyZWQsIHRoZSBjb3JyZWN0IHdheSB0byB3cml0ZSBjb2RlCj4g IHRoYXQgdXNlcyBDT05ESVRJT04tV0FJVCBpcyB0byBsb29wIGFyb3VuZCB0aGUgY2FsbCwgY2hl Y2tpbmcgdGhlCj4gIGFzc29jaWF0ZWQgZGF0YToKPgo+IC0gIChkZWZ2YXIgKmRhdGEqIG5pbCkK PiAtICAoZGVmdmFyICpxdWV1ZSogKG1ha2Utd2FpdHF1ZXVlKSkKPiAtICAoZGVmdmFyICpsb2Nr KiAobWFrZS1tdXRleCkpCj4gKyAgICAoZGVmdmFyICpkYXRhKiBuaWwpCj4gKyAgICAoZGVmdmFy ICpxdWV1ZSogKG1ha2Utd2FpdHF1ZXVlKSkKPiArICAgIChkZWZ2YXIgKmxvY2sqIChtYWtlLW11 dGV4KSkKPgo+IC0gIDs7IENvbnN1bWVyCj4gLSAgKGRlZnVuIHBvcC1kYXRhICgmb3B0aW9uYWwg dGltZW91dCkKPiAtICAgICh3aXRoLW11dGV4ICgqbG9jayopCj4gLSAgICAgIChsb29wIHVudGls ICpkYXRhKgo+IC0gICAgICAgICAgICBkbyAob3IgKGNvbmRpdGlvbi13YWl0ICpxdWV1ZSogKmxv Y2sqIDp0aW1lb3V0IHRpbWVvdXQpCj4gLSAgICAgICAgICAgICAgICAgICA7OyBMb2NrIG5vdCBo ZWxkLCBtdXN0IHVud2luZCB3aXRob3V0IHRvdWNoaW5nICpkYXRhKi4KPiAtICAgICAgICAgICAg ICAgICAgIChyZXR1cm4tZnJvbSBwb3AtZGF0YSBuaWwpKSkKPiAtICAgICAgKHBvcCAqZGF0YSop KSkKPiArICAgIDs7IENvbnN1bWVyCj4gKyAgICAoZGVmdW4gcG9wLWRhdGEgKCZvcHRpb25hbCB0 aW1lb3V0KQo+ICsgICAgICAod2l0aC1tdXRleCAoKmxvY2sqKQo+ICsgICAgICAgIChsb29wIHVu dGlsICpkYXRhKgo+ICsgICAgICAgICAgICAgIGRvIChvciAoY29uZGl0aW9uLXdhaXQgKnF1ZXVl KiAqbG9jayogOnRpbWVvdXQgdGltZW91dCkKPiArICAgICAgICAgICAgICAgICAgICAgOzsgTG9j ayBub3QgaGVsZCwgbXVzdCB1bndpbmQgd2l0aG91dCB0b3VjaGluZyAqZGF0YSouCj4gKyAgICAg ICAgICAgICAgICAgICAgIChyZXR1cm4tZnJvbSBwb3AtZGF0YSBuaWwpKSkKPiArICAgICAgICAo cG9wICpkYXRhKikpKQo+Cj4gLSAgOzsgUHJvZHVjZXIKPiAtICAoZGVmdW4gcHVzaC1kYXRhIChk YXRhKQo+IC0gICAgKHdpdGgtbXV0ZXggKCpsb2NrKikKPiAtICAgICAgKHB1c2ggZGF0YSAqZGF0 YSopCj4gLSAgICAgIChjb25kaXRpb24tbm90aWZ5ICpxdWV1ZSopKSkKPiAtIgo+ICsgICAgOzsg UHJvZHVjZXIKPiArICAgIChkZWZ1biBwdXNoLWRhdGEgKGRhdGEpCj4gKyAgICAgICh3aXRoLW11 dGV4ICgqbG9jayopCj4gKyAgICAgICAgKHB1c2ggZGF0YSAqZGF0YSopCj4gKyAgICAgICAgKGNv bmRpdGlvbi1ub3RpZnkgKnF1ZXVlKikpKSIKPiAgICAoZGVjbGFyZSAoZXhwbGljaXQtY2hlY2sg dGltZW91dCkpCj4gICAgOzsgJUNPTkRJVElPTi1XQUlUIGNhbiByZXR1cm4gMyB2YWx1ZXMuIElu IG1vc3Qgc2l0dWF0aW9ucyB0aGUgdmFsdWVzIGFyZSBuZXZlciB1c2VkLAo+ICAgIDs7IGJ1dCB0 aGUgc2VtYXBob3JlIGltcGxlbWVudGF0aW9uIHVzZXMgdGhlbS4KPiBAQCAtMTM3Niw3ICsxMzcx LDcgQEAgbXVzdCBiZSBoZWxkIGJ5IHRoaXMgdGhyZWFkIGR1cmluZyB0aGlzIGNhbGwuIgo+ICAg ICAgICAgICAgICAgICAgICAgKG1ha2Utd2FpdHF1ZXVlIDpuYW1lIG5hbWUpKSkKPgo+ICAoZGVm dW4gc2VtYXBob3JlLW5hbWUgKHNlbWFwaG9yZSkKPiAtICAiVGhlIG5hbWUgb2YgdGhlIHNlbWFw aG9yZSBJTlNUQU5DRS4gU2V0ZmFibGUuIgo+ICsgICJUaGUgbmFtZSBvZiB0aGUgc2VtYXBob3Jl IElOU1RBTkNFLiBTRVRGYWJsZS4iCj4gICAgKHdhaXRxdWV1ZS1uYW1lIChzZW1hcGhvcmUtcXVl dWUgc2VtYXBob3JlKSkpCj4KPiAgKGRlZnVuIChzZXRmIHNlbWFwaG9yZS1uYW1lKSAobmV3dmFs IHNlbWFwaG9yZSkKPiBAQCAtMTQxMCwxMCArMTQwNSwxMCBAQCBXQUlULU9OLVNFTUFQSE9SRSBv ciBUUlktU0VNQVBIT1JFLiIKPiAgICAgIChzZXRmIChzZW1hcGhvcmUtbm90aWZpY2F0aW9uLSVz dGF0dXMgc2VtYXBob3JlLW5vdGlmaWNhdGlvbikgbmlsKSkpCj4KPiAgKGRlY2xhaW0gKGlubGlu ZSBzZW1hcGhvcmUtY291bnQpKQo+IC0oZGVmdW4gc2VtYXBob3JlLWNvdW50IChpbnN0YW5jZSkK PiAtICAiUmV0dXJucyB0aGUgY3VycmVudCBjb3VudCBvZiB0aGUgc2VtYXBob3JlIElOU1RBTkNF LiIKPiArKGRlZnVuIHNlbWFwaG9yZS1jb3VudCAoc2VtYXBob3JlKQo+ICsgICJSZXR1cm5zIHRo ZSBjdXJyZW50IGNvdW50IG9mIFNFTUFQSE9SRS4iCj4gICAgKGJhcnJpZXIgKDpyZWFkKSkKPiAt ICAoc2VtYXBob3JlLSVjb3VudCBpbnN0YW5jZSkpCj4gKyAgKHNlbWFwaG9yZS0lY291bnQgc2Vt YXBob3JlKSkKPgo+ICAoZGVjbGFpbSAoZnR5cGUgKHNmdW5jdGlvbiAoc2VtYXBob3JlIChpbnRl Z2VyIDEpIChvciBib29sZWFuIHJlYWwpCj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAo b3IgbnVsbCBzZW1hcGhvcmUtbm90aWZpY2F0aW9uKSBzeW1ib2wpCj4gQEAgLTE2MjAsMTAgKzE2 MTUsMTEgQEAgb24gdGhpcyBzZW1hcGhvcmUsIHRoZW4gTiBvZiB0aGVtIGlzIHdva2VuIHVwLiIK Pgo+ICAoZGVmdmFyIHNiLWV4dDoqaW52b2tlLWRlYnVnZ2VyLWhvb2sqIG5pbAo+ICAgICJUaGlz IGlzIGVpdGhlciBOSUwgb3IgYSBkZXNpZ25hdG9yIGZvciBhIGZ1bmN0aW9uIG9mIHR3byBhcmd1 bWVudHMsCj4gLSAgIHRvIGJlIHJ1biB3aGVuIHRoZSBkZWJ1Z2dlciBpcyBhYm91dCB0byBiZSBl bnRlcmVkLiAgVGhlIGZ1bmN0aW9uIGlzCj4gLSAgIHJ1biB3aXRoICpJTlZPS0UtREVCVUdHRVIt SE9PSyogYm91bmQgdG8gTklMIHRvIG1pbmltaXplIHJlY3Vyc2l2ZQo+IC0gICBlcnJvcnMsIGFu ZCByZWNlaXZlcyBhcyBhcmd1bWVudHMgdGhlIGNvbmRpdGlvbiB0aGF0IHRyaWdnZXJlZAo+IC0g ICBkZWJ1Z2dlciBlbnRyeSBhbmQgdGhlIHByZXZpb3VzIHZhbHVlIG9mICpJTlZPS0UtREVCVUdH RVItSE9PSyoKPiArICAgdG8gYmUgcnVuIHdoZW4gdGhlIGRlYnVnZ2VyIGlzIGFib3V0IHRvIGJl IGVudGVyZWQuIFRoZSBmdW5jdGlvbiBpcwo+ICsgICBydW4gd2l0aCBgKklOVk9LRS1ERUJVR0dF Ui1IT09LKmAgYm91bmQgdG8gTklMIHRvIG1pbmltaXplCj4gKyAgIHJlY3Vyc2l2ZSBlcnJvcnMs IGFuZCByZWNlaXZlcyBhcyBhcmd1bWVudHMgdGhlIGNvbmRpdGlvbiB0aGF0Cj4gKyAgIHRyaWdn ZXJlZCBkZWJ1Z2dlciBlbnRyeSBhbmQgdGhlIHByZXZpb3VzIHZhbHVlIG9mCj4gKyAgIGAqSU5W T0tFLURFQlVHR0VSLUhPT0sqYC4KPgo+ICAgICBUaGlzIG1lY2hhbmlzbSBpcyBhbiBTQkNMIGV4 dGVuc2lvbiBzaW1pbGFyIHRvIHRoZSBzdGFuZGFyZCAqREVCVUdHRVItSE9PSyouCj4gICAgIElu IGNvbnRyYXN0IHRvICpERUJVR0dFUi1IT09LKiwgaXQgaXMgb2JzZXJ2ZWQgYnkgSU5WT0tFLURF QlVHR0VSIGV2ZW4gd2hlbgo+IEBAIC0yMTI5LDkgKzIxMjUsNyBAQCB0aGUgZnVuY3Rpb24gcmV0 dXJucy4gVGhlIHJldHVybiB2YWx1ZXMgb2YgRlVOQ1RJT04gYXJlIGtlcHQgYXJvdW5kCj4gIGFu ZCBjYW4gYmUgcmV0cmlldmVkIGJ5IEpPSU4tVEhSRUFELgo+Cj4gIEludm9raW5nIHRoZSBpbml0 aWFsIEFCT1JUIHJlc3RhcnQgZXN0YWJsaXNoZWQgYnkgTUFLRS1USFJFQUQKPiAtdGVybWluYXRl cyB0aGUgdGhyZWFkLgo+IC0KPiAtU2VlIGFsc286IFJFVFVSTi1GUk9NLVRIUkVBRCwgQUJPUlQt VEhSRUFELiIKPiArdGVybWluYXRlcyB0aGUgdGhyZWFkLiIKPiAgICAjLXNiLXRocmVhZCAoZGVj bGFyZSAoaWdub3JlIGZ1bmN0aW9uIG5hbWUgYXJndW1lbnRzKSkKPiAgICAjLXNiLXRocmVhZCAo ZXJyb3IgIk5vdCBzdXBwb3J0ZWQgaW4gdW5pdGhyZWFkIGJ1aWxkcy4iKQo+ICAgICMrc2ItdGhy ZWFkCj4gQEAgLTIyOTgsOCArMjI5Miw4IEBAIHRoYW4gb25lIG90aGVyIHRocmVhZCBzaW11bHRh bmVvdXNseS4gRnV0dXJlIGNoYW5nZXMgdG8gSk9JTi1USFJFQUQgbWF5Cj4gIGRpcmVjdGx5IGNh bGwgdGhlIHVuZGVybHlpbmcgdGhyZWFkIGxpYnJhcnksIGFuZCBub3QgYWxsIHRocmVhZGluZwo+ ICBpbXBsZW1lbnRhdGlvbnMgY29uc2lkZXIgc3VjaCB1c2FnZSB0byBiZSB3ZWxsLWRlZmluZWQu Cj4KPiAtTk9URTogUmV0dXJuIGNvbnZlbnRpb24gaW4gY2FzZSBvZiBhIHRpbWVvdXQgaXMgZXhw ZXJpbWVudGFsIGFuZAo+IC1zdWJqZWN0IHRvIGNoYW5nZS4iCj4gKz4gX05vdGVfOiBSZXR1cm4g Y29udmVudGlvbiBpbiBjYXNlIG9mIGEgdGltZW91dCBpcyBleHBlcmltZW50YWwgYW5kCj4gKz4g c3ViamVjdCB0byBjaGFuZ2UuIgo+ICAgICh3aGVuIChlcSB0aHJlYWQgKmN1cnJlbnQtdGhyZWFk KikKPiAgICAgIChlcnJvciAnam9pbi10aHJlYWQtZXJyb3IgOnRocmVhZCB0aHJlYWQgOnByb2Js ZW0gOnNlbGYtam9pbikpCj4KPiBAQCAtMjQxNywzNCArMjQxMSwzNyBAQCBjb3JyZWN0bHkuCj4K PiAgV2l0aCB0aG9zZSBjYXZlYXRzIGluIG1pbmQsIHdoYXQgeW91IG5lZWQgdG8ga25vdyB3aGVu IHVzaW5nIGl0Ogo+Cj4gLSAqIElmIGNhbGxpbmcgRlVOQ1RJT04gY2F1c2VzIGEgbm9uLWxvY2Fs IHRyYW5zZmVyIG9mIGNvbnRyb2wgKGllLiBhbgo+IC0gICB1bndpbmQpLCBhbGwgbm9ybWFsIGNs ZWFudXAgZm9ybXMgd2lsbCBiZSBleGVjdXRlZC4KPiArKiBJZiBjYWxsaW5nIEZVTkNUSU9OIGNh dXNlcyBhIG5vbi1sb2NhbCB0cmFuc2ZlciBvZiBjb250cm9sIChpZS4gYW4KPiArICB1bndpbmQp LCBhbGwgbm9ybWFsIGNsZWFudXAgZm9ybXMgd2lsbCBiZSBleGVjdXRlZC4KPgo+IC0gICBIb3dl dmVyLCBpZiB0aGUgaW50ZXJydXB0IG9jY3VycyBkdXJpbmcgY2xlYW51cCBmb3JtcyBvZiBhbiBV TldJTkQtUFJPVEVDVCwKPiAtICAgaXQgaXMganVzdCBhcyBpZiB0aGF0IGhhZCBoYXBwZW5lZCBk dWUgdG8gYSByZWd1bGFyIEdPLCBUSFJPVywgb3IKPiAtICAgUkVUVVJOLUZST006IHRoZSBpbnRl cnJ1cHRlZCBjbGVhbnVwIGZvcm0gYW5kIHRob3NlIGZvbGxvd2luZyBpdCBpbiB0aGUKPiAtICAg c2FtZSBVTldJTkQtUFJPVEVDVCBkbyBub3QgZ2V0IGV4ZWN1dGVkLgo+ICsgICAgSG93ZXZlciwg aWYgdGhlIGludGVycnVwdCBvY2N1cnMgZHVyaW5nIGNsZWFudXAgZm9ybXMgb2YgYW4KPiArICAg IFVOV0lORC1QUk9URUNULCBpdCBpcyBqdXN0IGFzIGlmIHRoYXQgaGFkIGhhcHBlbmVkIGR1ZSB0 byBhCj4gKyAgICByZWd1bGFyIEdPLCBUSFJPVywgb3IgUkVUVVJOLUZST006IHRoZSBpbnRlcnJ1 cHRlZCBjbGVhbnVwIGZvcm0KPiArICAgIGFuZCB0aG9zZSBmb2xsb3dpbmcgaXQgaW4gdGhlIHNh bWUgVU5XSU5ELVBST1RFQ1QgZG8gbm90IGdldAo+ICsgICAgZXhlY3V0ZWQuCj4KPiAtICAgU0JD TCB0cmllcyB0byBrZWVwIGl0cyBvd24gaW50ZXJuYWxzIGFzeW5jaC11bndpbmQtc2FmZSwgYnV0 IHRoaXMgaXMKPiAtICAgZnJhbmtseSBhbiB1bnJlYXNvbmFibGUgZXhwZWN0YXRpb24gZm9yIHRo aXJkIHBhcnR5IGxpYnJhcmllcywgZXNwZWNpYWxseQo+IC0gICBnaXZlbiB0aGF0IGFzeW5jaC11 bndpbmQtc2FmZXR5IGRvZXMgbm90IGNvbXBvc2U6IGEgZnVuY3Rpb24gY2FsbGluZwo+IC0gICBv bmx5IGFzeW5jaC11bndpbmQtc2FmZSBmdW5jdGlvbiBpc24ndCBhdXRvbWF0aWNhbGx5IGFzeW5j aC11bndpbmQtc2FmZS4KPiArICAgIFNCQ0wgdHJpZXMgdG8ga2VlcCBpdHMgb3duIGludGVybmFs cyBhc3luY2gtdW53aW5kLXNhZmUsIGJ1dCB0aGlzCj4gKyAgICBpcyBmcmFua2x5IGFuIHVucmVh c29uYWJsZSBleHBlY3RhdGlvbiBmb3IgdGhpcmQgcGFydHkgbGlicmFyaWVzLAo+ICsgICAgZXNw ZWNpYWxseSBnaXZlbiB0aGF0IGFzeW5jaC11bndpbmQtc2FmZXR5IGRvZXMgbm90IGNvbXBvc2U6 IGEKPiArICAgIGZ1bmN0aW9uIGNhbGxpbmcgb25seSBhc3luY2gtdW53aW5kLXNhZmUgZnVuY3Rp b24gaXNuJ3QKPiArICAgIGF1dG9tYXRpY2FsbHkgYXN5bmNoLXVud2luZC1zYWZlLgo+Cj4gLSAg IFRoaXMgbWVhbnMgdGhhdCBpbiBvcmRlciBmb3IgYW4gYXN5bmNoIHVud2luZCB0byBiZSBzYWZl LCB0aGUgZW50aXJlCj4gLSAgIGNhbGxzdGFjayBhdCB0aGUgcG9pbnQgb2YgaW50ZXJydXB0aW9u IG5lZWRzIHRvIGJlIGFzeW5jaC11bndpbmQtc2FmZS4KPiArICAgIFRoaXMgbWVhbnMgdGhhdCBp biBvcmRlciBmb3IgYW4gYXN5bmNoIHVud2luZCB0byBiZSBzYWZlLCB0aGUKPiArICAgIGVudGly ZSBjYWxsc3RhY2sgYXQgdGhlIHBvaW50IG9mIGludGVycnVwdGlvbiBuZWVkcyB0byBiZQo+ICsg ICAgYXN5bmNoLXVud2luZC1zYWZlLgo+Cj4gLSAqIEluIGFkZGl0aW9uIHRvIGFzeW5jaC11bndp bmQtc2FmZXR5IHlvdSBtdXN0IGNvbnNpZGVyIHRoZSBpc3N1ZSBvZgo+IC0gICByZWVudHJhbmN5 LiBJTlRFUlJVUFQtVEhSRUFEIGNhbiBjYXVzZSBmdW5jdGlvbiB0aGF0IGFyZSBuZXZlciBub3Jt YWxseQo+IC0gICBjYWxsZWQgcmVjdXJzaXZlbHkgdG8gYmUgcmUtZW50ZXJlZCBkdXJpbmcgdGhl aXIgZHluYW1pYyBjb250b3VyLAo+IC0gICB3aGljaCBtYXkgY2F1c2UgdGhlbSB0byBtaXNiZWhh dmUuIChDb25zaWRlciBiaW5kaW5nIG9mIHNwZWNpYWwgdmFyaWFibGVzLAo+IC0gICB2YWx1ZXMg b2YgZ2xvYmFsIHZhcmlhYmxlcywgZXRjLikKPiArKiBJbiBhZGRpdGlvbiB0byBhc3luY2gtdW53 aW5kLXNhZmV0eSB5b3UgbXVzdCBjb25zaWRlciB0aGUgaXNzdWUgb2YKPiArICByZWVudHJhbmN5 LiBJTlRFUlJVUFQtVEhSRUFEIGNhbiBjYXVzZSBmdW5jdGlvbiB0aGF0IGFyZSBuZXZlcgo+ICsg IG5vcm1hbGx5IGNhbGxlZCByZWN1cnNpdmVseSB0byBiZSByZS1lbnRlcmVkIGR1cmluZyB0aGVp ciBkeW5hbWljCj4gKyAgY29udG91ciwgd2hpY2ggbWF5IGNhdXNlIHRoZW0gdG8gbWlzYmVoYXZl LiAoQ29uc2lkZXIgYmluZGluZyBvZgo+ICsgIHNwZWNpYWwgdmFyaWFibGVzLCB2YWx1ZXMgb2Yg Z2xvYmFsIHZhcmlhYmxlcywgZXRjLikKPgo+ICBUYWtlbiB0b2dldGhlciwgdGhlc2UgdHdvIHJl c3RyaWN0IHRoZSBcInNhZmVcIiB0aGluZ3MgdG8gZG8gdXNpbmcKPiAgSU5URVJSVVBULVRIUkVB RCB0byBhIGZhaXJseSBtaW5pbWFsIHNldC4gT25lIHVzZWZ1bCBvbmUgLS0gZXhjbHVzaXZlbHkg Zm9yCj4gIGludGVyYWN0aXZlIGRldmVsb3BtZW50IHVzZSBpcyB1c2luZyBpdCB0byBmb3JjZSBl bnRyeSB0byBkZWJ1Z2dlciB0byBpbnNwZWN0Cj4gIHRoZSBzdGF0ZSBvZiBhIHRocmVhZDoKPgo+ IC0gIChpbnRlcnJ1cHQtdGhyZWFkIHRocmVhZCAjJ2JyZWFrKQo+ICsgICAgKGludGVycnVwdC10 aHJlYWQgdGhyZWFkICMnYnJlYWspCj4KPiAgU2hvcnQgdmVyc2lvbjogYmUgY2FyZWZ1bCBvdXQg dGhlcmUuIgo+ICAgICh1bmxlc3MgKCVpbnRlcnJ1cHQtdGhyZWFkIHRocmVhZCBmdW5jdGlvbikK PiBAQCAtMjQ4MSwxNiArMjQ3OCwxNiBAQCBjYXVzaW5nIGl0IHRvIGNhbGwgU0ItVEhSRUFEOkFC T1JULVRIUkVBRCB3aXRoIDpBTExPVy1FWElUIFQuCj4gIFRoZSB1bndpbmQgY2F1c2VkIGJ5IFRF Uk1JTkFURS1USFJFQUQgaXMgYXN5bmNocm9ub3VzLCBtZWFuaW5nIHRoYXQKPiAgZWcuIHRocmVh ZCBleGVjdXRpbmcKPgo+IC0gIChsZXQgKGZvbykKPiAtICAgICAodW53aW5kLXByb3RlY3QKPiAt ICAgICAgICAgKHByb2duCj4gLSAgICAgICAgICAgIChzZXRmIGZvbyAoZ2V0LWZvbykpCj4gLSAg ICAgICAgICAgICh3b3JrLW9uLWZvbyBmb28pKQo+IC0gICAgICAgKHdoZW4gZm9vCj4gLSAgICAg ICAgIDs7IEFuIGludGVycnVwdCBvY2N1cnJpbmcgaW5zaWRlIHRoZSBjbGVhbnVwIGNsYXVzZQo+ IC0gICAgICAgICA7OyB3aWxsIGNhdXNlIGNsZWFudXBzIGZyb20gdGhlIGN1cnJlbnQgVU5XSU5E LVBST1RFQ1QKPiAtICAgICAgICAgOzsgdG8gYmUgZHJvcHBlZC4KPiAtICAgICAgICAgKHJlbGVh c2UtZm9vIGZvbykpKSkKPiArICAgIChsZXQgKGZvbykKPiArICAgICAgICh1bndpbmQtcHJvdGVj dAo+ICsgICAgICAgICAgIChwcm9nbgo+ICsgICAgICAgICAgICAgIChzZXRmIGZvbyAoZ2V0LWZv bykpCj4gKyAgICAgICAgICAgICAgKHdvcmstb24tZm9vIGZvbykpCj4gKyAgICAgICAgICh3aGVu IGZvbwo+ICsgICAgICAgICAgIDs7IEFuIGludGVycnVwdCBvY2N1cnJpbmcgaW5zaWRlIHRoZSBj bGVhbnVwIGNsYXVzZQo+ICsgICAgICAgICAgIDs7IHdpbGwgY2F1c2UgY2xlYW51cHMgZnJvbSB0 aGUgY3VycmVudCBVTldJTkQtUFJPVEVDVAo+ICsgICAgICAgICAgIDs7IHRvIGJlIGRyb3BwZWQu Cj4gKyAgICAgICAgICAgKHJlbGVhc2UtZm9vIGZvbykpKSkKPgo+ICBtaWdodCBtaXNzIGNhbGxp bmcgYFJFTEVBU0UtRk9PYCBkZXNwaXRlIEdFVC1GT08gaGF2aW5nIHJldHVybmVkIHRydWUKPiAg aWYgdGhlIGludGVycnVwdCBvY2N1cnMgaW5zaWRlIHRoZSBjbGVhbnVwIGNsYXVzZSwgZWcuIGR1 cmluZwo+IEBAIC0yNDk5LDE2ICsyNDk2LDE2IEBAIGV4ZWN1dGlvbiBvZiBgUkVMRUFTRS1GT09g Lgo+ICBUaHVzLCBpbiBvcmRlciB0byB3cml0ZSBhbiBhc3luY2ggdW53aW5kIHNhZmUgVU5XSU5E LVBST1RFQ1QgeW91IG5lZWQKPiAgdG8gdXNlIFdJVEhPVVQtSU5URVJSVVBUUzoKPgo+IC0gIChs ZXQgKGZvbykKPiAtICAgIChzYi1zeXM6d2l0aG91dC1pbnRlcnJ1cHRzCj4gLSAgICAgICh1bndp bmQtcHJvdGVjdAo+IC0gICAgICAgICAgKHByb2duCj4gLSAgICAgICAgICAgIChzZXRmIGZvbyAo c2Itc3lzOmFsbG93LXdpdGgtaW50ZXJydXB0cwo+IC0gICAgICAgICAgICAgICAgICAgICAgICAo Z2V0LWZvbykpKQo+IC0gICAgICAgICAgICAoc2Itc3lzOndpdGgtbG9jYWwtaW50ZXJydXB0cwo+ IC0gICAgICAgICAgICAgICh3b3JrLW9uLWZvbyBmb28pKSkKPiAtICAgICAgICh3aGVuIGZvbwo+ IC0gICAgICAgICAocmVsZWFzZS1mb28gZm9vKSkpKSkKPiArICAgIChsZXQgKGZvbykKPiArICAg ICAgKHNiLXN5czp3aXRob3V0LWludGVycnVwdHMKPiArICAgICAgICAodW53aW5kLXByb3RlY3QK PiArICAgICAgICAgICAgKHByb2duCj4gKyAgICAgICAgICAgICAgKHNldGYgZm9vIChzYi1zeXM6 YWxsb3ctd2l0aC1pbnRlcnJ1cHRzCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgKGdldC1m b28pKSkKPiArICAgICAgICAgICAgICAoc2Itc3lzOndpdGgtbG9jYWwtaW50ZXJydXB0cwo+ICsg ICAgICAgICAgICAgICAgKHdvcmstb24tZm9vIGZvbykpKQo+ICsgICAgICAgICAod2hlbiBmb28K PiArICAgICAgICAgICAocmVsZWFzZS1mb28gZm9vKSkpKSkKPgo+ICBTaW5jZSBtb3N0IGxpYnJh cmllcyB1c2luZyBVTldJTkQtUFJPVEVDVCBkbyBub3QgZG8gdGhpcywgeW91IHNob3VsZCBuZXZl cgo+ICBhc3N1bWUgdGhhdCB1bmtub3duIGNvZGUgY2FuIHNhZmVseSBiZSB0ZXJtaW5hdGVkIHVz aW5nIFRFUk1JTkFURS1USFJFQUQuIgo+IGRpZmYgLS1naXQgYS9zcmMvY29kZS90YXJnZXQtdW5p Y29kZS5saXNwIGIvc3JjL2NvZGUvdGFyZ2V0LXVuaWNvZGUubGlzcAo+IGluZGV4IGY1ZTdiMmQ0 NS4uYWNjYzFlZGFjIDEwMDY0NAo+IC0tLSBhL3NyYy9jb2RlL3RhcmdldC11bmljb2RlLmxpc3AK PiArKysgYi9zcmMvY29kZS90YXJnZXQtdW5pY29kZS5saXNwCj4gQEAgLTYzOCw3ICs2MzgsNyBA QCB0aGVyZSBpcyBubyBzdWNoIHZhbHVlLgo+ICBUaGUgb25seSBjaGFyYWN0ZXJzIGluIFVuaWNv ZGUgd2l0aCBhIGRlY2ltYWwgZGlnaXQgdmFsdWUgYXJlIHRob3NlCj4gIHRoYXQgYXJlIHBhcnQg b2YgYSByYW5nZSBvZiBjaGFyYWN0ZXJzIHRoYXQgZW5jb2RlIHRoZSBkaWdpdHMgMC05Lgo+ICBC ZWNhdXNlIG9mIHRoaXMsIGAoZGVjaW1hbC1kaWdpdCBjKSA8PT4gKGRpZ2l0LWNoYXItcCBjIDEw KWAgaW4KPiAtIytzYi11bmljb2RlIGJ1aWxkcyIKPiArYCMrc2ItdW5pY29kZWAgYnVpbGRzIgo+ ICAgIChzYi1pbXBsOjp1Y2QtZGVjaW1hbC1kaWdpdCBjaGFyYWN0ZXIpKQo+Cj4gIChkZWZ1biBk aWdpdC12YWx1ZSAoY2hhcmFjdGVyKQo+IEBAIC0xMDQyLDEwICsxMDQyLDEwIEBAIFRoZSByZXN1 bHQgaXMgbm90IGd1YXJhbnRlZWQgdG8gaGF2ZSB0aGUgc2FtZSBsZW5ndGggYXMgdGhlIGlucHV0 LiIKPiAgOzs7IChub2JyaykgcHJldmVudHMgYSBicmVhayBiZXR3ZWVuIGBmaXJzdGAgYW5kIGBz ZWNvbmRgCj4gIDs7OyBTZXR0aW5nIGZsYWc9VC9zdGF0ZT06bm9icmstbmV4dCBwcmV2ZW50cyBh IGJyZWFrIGJldHdlZW4gYHNlY29uZGAgYW5kIGB0aGlyZGAKPgo+IC0oZGVmdW4gZ3JhcGhlbWUt YnJlYWstY2xhc3MgKGNoYXIpCj4gKyhkZWZ1biBncmFwaGVtZS1icmVhay1jbGFzcyAoY2hhcmFj dGVyKQo+ICAgICJSZXR1cm5zIHRoZSBncmFwaGVtZSBicmVha2luZyBjbGFzcyBvZiBDSEFSQUNU RVIsIGFzIHNwZWNpZmllZCBpbiBVQVggIzI5LiIKPiAtICAobGV0ICgoY3AgKHdoZW4gY2hhciAo Y2hhci1jb2RlIGNoYXIpKSkKPiAtICAgICAgICAoZ2MgKHdoZW4gY2hhciAoZ2VuZXJhbC1jYXRl Z29yeSBjaGFyKSkpCj4gKyAgKGxldCAoKGNwICh3aGVuIGNoYXJhY3RlciAoY2hhci1jb2RlIGNo YXJhY3RlcikpKQo+ICsgICAgICAgIChnYyAod2hlbiBjaGFyYWN0ZXIgKGdlbmVyYWwtY2F0ZWdv cnkgY2hhcmFjdGVyKSkpCj4gICAgICAgICAgKG5vdC1zcGFjaW5nLW1hcmsKPiAgICAgICAgICAg IygjeDEwMkIgI3gxMDJDICN4MTAzOCAjeDEwNjIgI3gxMDYzICN4MTA2NCAjeDEwNjcgI3gxMDY4 ICN4MTA2OQo+ICAgICAgICAgICAgICN4MTA2QSAjeDEwNkIgI3gxMDZDICN4MTA2RCAjeDEwODMg I3gxMDg3ICN4MTA4OCAjeDEwODkgI3gxMDhBCj4gQEAgLTEwNTMsMTEgKzEwNTMsMTEgQEAgVGhl IHJlc3VsdCBpcyBub3QgZ3VhcmFudGVlZCB0byBoYXZlIHRoZSBzYW1lIGxlbmd0aCBhcyB0aGUg aW5wdXQuIgo+ICAgICAgICAgICAgICN4MTlCMyAjeDE5QjQgI3gxOUI4ICN4MTlCOSAjeDE5QkIg I3gxOUJDICN4MTlCRCAjeDE5QkUgI3gxOUJGCj4gICAgICAgICAgICAgI3gxOUMwICN4MTlDOCAj eDE5QzkgI3gxQTYxICN4MUE2MyAjeDFBNjQgI3hBQTdCICN4QUE3RCkpKQo+ICAgICAgKGNvbmQK PiAtICAgICAgKChub3QgY2hhcikgbmlsKQo+ICsgICAgICAoKG5vdCBjaGFyYWN0ZXIpIG5pbCkK PiAgICAgICAgKCg9IGNwIDEwKSA6TEYpCj4gICAgICAgICgoPSBjcCAxMykgOkNSKQo+ICAgICAg ICAoKG9yIChhbmQgKG1lbWJlciBnYyAnKDpabCA6WnAgOkNjIDpDcyA6Q2YpKQo+IC0gICAgICAg ICAgICAgICAgKG5vdCAocHJvcGxpc3QtcCBjaGFyIDpwcmVwZW5kZWQtY29uY2F0ZW5hdGlvbi1t YXJrKSkKPiArICAgICAgICAgICAgICAgIChub3QgKHByb3BsaXN0LXAgY2hhcmFjdGVyIDpwcmVw ZW5kZWQtY29uY2F0ZW5hdGlvbi1tYXJrKSkKPiAgICAgICAgICAgICAgICAgIChub3QgKDw9ICN4 MjAwQyBjcCAjeDIwMEQpKQo+ICAgICAgICAgICAgICAgICAgOzsgbm90IGRvY3VtZW50ZWQgYnV0 IGluIHRoZSBub3JtYXRpdmUgZmlsZQo+ICAgICAgICAgICAgICAgICAgKG5vdCAoPD0gI3hFMDAy MCBjcCAjeEUwMDdGKSkpCj4gQEAgLTEwNjgsOCArMTA2OCw4IEBAIFRoZSByZXN1bHQgaXMgbm90 IGd1YXJhbnRlZWQgdG8gaGF2ZSB0aGUgc2FtZSBsZW5ndGggYXMgdGhlIGlucHV0LiIKPiAgICAg ICAgICAgICAoPD0gI3hFMDA4MCBjcCAjeEUwMEZGKQo+ICAgICAgICAgICAgICg8PSAjeEUwMUYw IGNwICN4RTBGRkYpKSA6Y29udHJvbCkKPiAgICAgICAgKChvciAobWVtYmVyIGdjICcoOk1uIDpN ZSkpCj4gLSAgICAgICAgICAgKHByb3BsaXN0LXAgY2hhciA6b3RoZXItZ3JhcGhlbWUtZXh0ZW5k KQo+IC0gICAgICAgICAgIChwcm9wbGlzdC1wIGNoYXIgOmVtb2ppLW1vZGlmaWVyKSkKPiArICAg ICAgICAgICAocHJvcGxpc3QtcCBjaGFyYWN0ZXIgOm90aGVyLWdyYXBoZW1lLWV4dGVuZCkKPiAr ICAgICAgICAgICAocHJvcGxpc3QtcCBjaGFyYWN0ZXIgOmVtb2ppLW1vZGlmaWVyKSkKPiAgICAg ICAgIDpleHRlbmQpCj4gICAgICAgICgoPSBjcCAjeDIwMEQpIDp6d2opCj4gICAgICAgICgoPD0g I3gxRjFFNiBjcCAjeDFGMUZGKSA6cmVnaW9uYWwtaW5kaWNhdG9yKQo+IEBAIC0xMDc4LDEyICsx MDc4LDEyIEBAIFRoZSByZXN1bHQgaXMgbm90IGd1YXJhbnRlZWQgdG8gaGF2ZSB0aGUgc2FtZSBs ZW5ndGggYXMgdGhlIGlucHV0LiIKPiAgICAgICAgICAoPSBjcCAjeDBENEUpICg9IGNwICN4MTE5 NDEpICg9IGNwICN4MTFENDYpICg9IGNwICN4MTFGMDIpCj4gICAgICAgICAgOzsgQ29uc29uYW50 X1ByZWZpeGVkCj4gICAgICAgICAgKDw9ICN4MTExQzIgY3AgI3gxMTFDMykgKD0gY3AgI3gxMTkz RikgKD0gY3AgI3gxMUEzQSkgKDw9ICN4MTFBODQgY3AgI3gxMUE4OSkKPiAtICAgICAgICAocHJv cGxpc3QtcCBjaGFyIDpwcmVwZW5kZWQtY29uY2F0ZW5hdGlvbi1tYXJrKSkKPiArICAgICAgICAo cHJvcGxpc3QtcCBjaGFyYWN0ZXIgOnByZXBlbmRlZC1jb25jYXRlbmF0aW9uLW1hcmspKQo+ICAg ICAgICAgOnByZXBlbmQpCj4gICAgICAgICgoYW5kIChvciAoZXFsIGdjIDpNYykKPiAgICAgICAg ICAgICAgICAgIChlcWwgY3AgI3gwRTMzKSAoZXFsIGNwICN4MEVCMykpCj4gICAgICAgICAgICAg IChub3QgKGJpbmFyeS1zZWFyY2ggY3Agbm90LXNwYWNpbmctbWFyaykpKSA6c3BhY2luZy1tYXJr KQo+IC0gICAgICAoKGhhbmd1bC1zeWxsYWJsZS10eXBlIGNoYXIpKSkpKQo+ICsgICAgICAoKGhh bmd1bC1zeWxsYWJsZS10eXBlIGNoYXJhY3RlcikpKSkpCj4KPiAgKG1hY3JvbGV0ICgoZGVmIChu YW1lIGV4dGVuZGVkcCkKPiAgICAgICAgICAgICAgIGAoZGVmdW4gLG5hbWUgKGZ1bmN0aW9uIHN0 cmluZykKPiBAQCAtMTE1MCwxMiArMTE1MCwxMyBAQCBncmFwaGVtZSBicmVha2luZyBydWxlcyBz cGVjaWZpZWQgaW4gVUFYICMyOSwgcmV0dXJuaW5nIGEgbGlzdCBvZiBzdHJpbmdzLiIKPiAgICAg IChtYXAtZ3JhcGhlbWVzIChsYW1iZGEgKGEpIChwdXNoIChzdWJzZXEgYSAwKSByZXN1bHQpKSBz dHJpbmcpCj4gICAgICAobnJldmVyc2UgcmVzdWx0KSkpCj4KPiAtKGRlZnVuIHdvcmQtYnJlYWst Y2xhc3MgKGNoYXIpCj4gKyhkZWZ1biB3b3JkLWJyZWFrLWNsYXNzIChjaGFyYWN0ZXIpCj4gICAg IlJldHVybnMgdGhlIHdvcmQgYnJlYWtpbmcgY2xhc3Mgb2YgQ0hBUkFDVEVSLCBhcyBzcGVjaWZp ZWQgaW4gVUFYICMyOS4iCj4gICAgOzsgV29yZHMgdXNlIGdyYXBoZW1lcyBhcyBjaGFyYWN0ZXJz IHRvIGRlYWwgd2l0aCB0aGUgaWdub3JlIHJ1bGUKPiAtICAod2hlbiAobGlzdHAgY2hhcikgKHNl dGYgY2hhciAoY2FyIGNoYXIpKSkKPiAtICAobGV0ICgoY3AgKHdoZW4gY2hhciAoY2hhci1jb2Rl IGNoYXIpKSkKPiAtICAgICAgICAoZ2MgKHdoZW4gY2hhciAoZ2VuZXJhbC1jYXRlZ29yeSBjaGFy KSkpCj4gKyAgKHdoZW4gKGxpc3RwIGNoYXJhY3RlcikKPiArICAgIChzZXRmIGNoYXJhY3RlciAo Y2FyIGNoYXJhY3RlcikpKQo+ICsgIChsZXQgKChjcCAod2hlbiBjaGFyYWN0ZXIgKGNoYXItY29k ZSBjaGFyYWN0ZXIpKSkKPiArICAgICAgICAoZ2MgKHdoZW4gY2hhcmFjdGVyIChnZW5lcmFsLWNh dGVnb3J5IGNoYXJhY3RlcikpKQo+ICAgICAgICAgIChuZXdsaW5lcwo+ICAgICAgICAgICAoY29l cmNlLXRvLW9yZGVyZWQtcmFuZ2VzICMoI3hCICN4QyAjeDAwODUgI3gwMDg1ICN4MjAyOCAjeDIw MjkpKSkKPiAgICAgICAgICAoYWxzby1rYXRha2FuYQo+IEBAIC0xMTg0LDIyICsxMTg1LDIyIEBA IGdyYXBoZW1lIGJyZWFraW5nIHJ1bGVzIHNwZWNpZmllZCBpbiBVQVggIzI5LCByZXR1cm5pbmcg YSBsaXN0IG9mIHN0cmluZ3MuIgo+ICAgICAgICAgICA7OyBHcmVwcGluZyBvZiBMaW5lX0JyZWFr ID0gIjtHTC4qWnMiCj4gICAgICAgICAgICMoI3gwMEEwICN4MjAwNyAjeDIwMkYpKSkKPiAgICAg IChjb25kCj4gLSAgICAgICgobm90IGNoYXIpIG5pbCkKPiArICAgICAgKChub3QgY2hhcmFjdGVy KSBuaWwpCj4gICAgICAgICgoPSBjcCAxMCkgOkxGKQo+ICAgICAgICAoKD0gY3AgMTMpIDpDUikK PiAgICAgICAgKChvcmRlcmVkLXJhbmdlcy1tZW1iZXIgY3AgbmV3bGluZXMpIDpuZXdsaW5lKQo+ IC0gICAgICAoKG9yIChlcWwgKGdyYXBoZW1lLWJyZWFrLWNsYXNzIGNoYXIpIDpleHRlbmQpCj4g KyAgICAgICgob3IgKGVxbCAoZ3JhcGhlbWUtYnJlYWstY2xhc3MgY2hhcmFjdGVyKSA6ZXh0ZW5k KQo+ICAgICAgICAgICAgIChhbmQgKGVxbCBnYyA6bWMpIChub3QgKD0gY3AgI3gyMDBEKSkpKSA6 ZXh0ZW5kKQo+ICAgICAgICAoKD0gY3AgI3gyMDBEKSA6endqKQo+ICAgICAgICAoKDw9ICN4MUYx RTYgY3AgI3gxRjFGRikgOnJlZ2lvbmFsLWluZGljYXRvcikKPiAgICAgICAgKChhbmQgKGVxbCBn YyA6Q2YpIChub3QgKDw9ICN4MjAwQiBjcCAjeDIwMEQpKSkgOmZvcm1hdCkKPiAtICAgICAgKChv ciAoZXFsIChzY3JpcHQgY2hhcikgOmthdGFrYW5hKQo+ICsgICAgICAoKG9yIChlcWwgKHNjcmlw dCBjaGFyYWN0ZXIpIDprYXRha2FuYSkKPiAgICAgICAgICAgICAob3JkZXJlZC1yYW5nZXMtbWVt YmVyIGNwIGFsc28ta2F0YWthbmEpKSA6a2F0YWthbmEpCj4gLSAgICAgICgoYW5kIChlcWwgKHNj cmlwdCBjaGFyKSA6SGVicmV3KSAoZXFsIGdjIDpsbykpIDpoZWJyZXctbGV0dGVyKQo+IC0gICAg ICAoKGFuZCAob3IgKGFscGhhYmV0aWMtcCBjaGFyKSAoYmluYXJ5LXNlYXJjaCBjcCBhbHNvLWFs ZXR0ZXIpKQo+IC0gICAgICAgICAgICAobm90IChvciAoaWRlb2dyYXBoaWMtcCBjaGFyKQo+IC0g ICAgICAgICAgICAgICAgICAgICAoZXFsIChsaW5lLWJyZWFrLWNsYXNzIGNoYXIpIDpzYSkKPiAt ICAgICAgICAgICAgICAgICAgICAgKGVxbCAoc2NyaXB0IGNoYXIpIDpoaXJhZ2FuYSkpKSkgOmFs ZXR0ZXIpCj4gKyAgICAgICgoYW5kIChlcWwgKHNjcmlwdCBjaGFyYWN0ZXIpIDpIZWJyZXcpIChl cWwgZ2MgOmxvKSkgOmhlYnJldy1sZXR0ZXIpCj4gKyAgICAgICgoYW5kIChvciAoYWxwaGFiZXRp Yy1wIGNoYXJhY3RlcikgKGJpbmFyeS1zZWFyY2ggY3AgYWxzby1hbGV0dGVyKSkKPiArICAgICAg ICAgICAgKG5vdCAob3IgKGlkZW9ncmFwaGljLXAgY2hhcmFjdGVyKQo+ICsgICAgICAgICAgICAg ICAgICAgICAoZXFsIChsaW5lLWJyZWFrLWNsYXNzIGNoYXJhY3RlcikgOnNhKQo+ICsgICAgICAg ICAgICAgICAgICAgICAoZXFsIChzY3JpcHQgY2hhcmFjdGVyKSA6aGlyYWdhbmEpKSkpIDphbGV0 dGVyKQo+ICAgICAgICAoKD0gY3AgI3gyNykgOnNpbmdsZS1xdW90ZSkKPiAgICAgICAgKCg9IGNw ICN4MjIpIDpkb3VibGUtcXVvdGUpCj4gICAgICAgICgoYmluYXJ5LXNlYXJjaCBjcCBtaWRudW1s ZXQpIDptaWRudW1sZXQpCj4gQEAgLTEyOTYsNDMgKzEyOTcsNDQgQEAgd29yZCBicmVha2luZyBy dWxlcyBzcGVjaWZpZWQgaW4gVUFYICMyOS4gUmV0dXJucyBhIGxpc3Qgb2Ygc3RyaW5ncyIKPiAg ICAgICAgICAgICAgICAgIChub2JyaykpCj4gICAgICAgICAgICAgICAgICh0IChicmspKSkpKSkp KSkpCj4KPiAtKGRlZnVuIHNlbnRlbmNlLWJyZWFrLWNsYXNzIChjaGFyKQo+ICsoZGVmdW4gc2Vu dGVuY2UtYnJlYWstY2xhc3MgKGNoYXJhY3RlcikKPiAgICAiUmV0dXJucyB0aGUgc2VudGVuY2Ug YnJlYWtpbmcgY2xhc3Mgb2YgQ0hBUkFDVEVSLCBhcyBzcGVjaWZpZWQgaW4gVUFYICMyOS4iCj4g LSAgKHdoZW4gKGxpc3RwIGNoYXIpIChzZXRmIGNoYXIgKGNhciBjaGFyKSkpCj4gLSAgKGxldCAo KGNwICh3aGVuIGNoYXIgKGNoYXItY29kZSBjaGFyKSkpCj4gLSAgICAgICAgKGdjICh3aGVuIGNo YXIgKGdlbmVyYWwtY2F0ZWdvcnkgY2hhcikpKQo+ICsgICh3aGVuIChsaXN0cCBjaGFyYWN0ZXIp Cj4gKyAgICAoc2V0ZiBjaGFyYWN0ZXIgKGNhciBjaGFyYWN0ZXIpKSkKPiArICAobGV0ICgoY3Ag KHdoZW4gY2hhcmFjdGVyIChjaGFyLWNvZGUgY2hhcmFjdGVyKSkpCj4gKyAgICAgICAgKGdjICh3 aGVuIGNoYXJhY3RlciAoZ2VuZXJhbC1jYXRlZ29yeSBjaGFyYWN0ZXIpKSkKPiAgICAgICAgICAo YXRlcm1zICMoI3gwMDJFICN4MjAyNCAjeEZFNTIgI3hGRjBFKSkKPiAgICAgICAgICAoc2NvbnRp bnVlcwo+ICAgICAgICAgICAjKCN4MDAyQyAjeDAwMkQgI3gwMDNBICN4MDU1RCAjeDA2MEMgI3gw NjBEICN4MDdGOCAjeDE4MDIgI3gxODA4Cj4gICAgICAgICAgICAgI3gyMDEzICN4MjAxNCAjeDMw MDEgI3hGRTEwICN4RkUxMSAjeEZFMTMgI3hGRTMxICN4RkUzMiAjeEZFNTAKPiAgICAgICAgICAg ICAjeEZFNTEgI3hGRTU1ICN4RkU1OCAjeEZFNjMgI3hGRjBDICN4RkYwRCAjeEZGMUEgI3hGRjY0 KSkpCj4gICAgICAoY29uZAo+IC0gICAgICAoKG5vdCBjaGFyKSBuaWwpCj4gKyAgICAgICgobm90 IGNoYXJhY3RlcikgbmlsKQo+ICAgICAgICAoKD0gY3AgMTApIDpMRikKPiAgICAgICAgKCg9IGNw IDEzKSA6Q1IpCj4gLSAgICAgICgob3IgKGVxbCAoZ3JhcGhlbWUtYnJlYWstY2xhc3MgY2hhcikg OmV4dGVuZCkKPiArICAgICAgKChvciAoZXFsIChncmFwaGVtZS1icmVhay1jbGFzcyBjaGFyYWN0 ZXIpIDpleHRlbmQpCj4gICAgICAgICAgICAgKD0gY3AgI3gyMDBEKQo+ICAgICAgICAgICAgIChl cWwgZ2MgOm1jKSkKPiAgICAgICAgIDpleHRlbmQpCj4gICAgICAgICgob3IgKGVxbCBjcCAjeDAw ODUpICg8PSAjeDIwMjggY3AgI3gyMDI5KSkgOnNlcCkKPiAgICAgICAgKChhbmQgKGVxbCBnYyA6 Q2YpIChub3QgKDw9ICN4MjAwQyBjcCAjeDIwMEQpKSkgOmZvcm1hdCkKPiAtICAgICAgKCh3aGl0 ZXNwYWNlLXAgY2hhcikgOnNwKQo+IC0gICAgICAoKGFuZCAobG93ZXJjYXNlLXAgY2hhcikKPiAr ICAgICAgKCh3aGl0ZXNwYWNlLXAgY2hhcmFjdGVyKSA6c3ApCj4gKyAgICAgICgoYW5kIChsb3dl cmNhc2UtcCBjaGFyYWN0ZXIpCj4gICAgICAgICAgICAgIChub3QgKDw9ICN4MTBEMCBjcCAjeDEw RkEpKQo+ICAgICAgICAgICAgICAobm90ICg8PSAjeDEwRkQgY3AgI3gxMEZGKSkpCj4gICAgICAg ICA6bG93ZXIpCj4gICAgICAgICgob3IgKGVxbCBnYyA6THQpCj4gLSAgICAgICAgICAgKGFuZCAo dXBwZXJjYXNlLXAgY2hhcikKPiArICAgICAgICAgICAoYW5kICh1cHBlcmNhc2UtcCBjaGFyYWN0 ZXIpCj4gICAgICAgICAgICAgICAgICAobm90ICg8PSAjeDFDOTAgY3AgI3gxQ0JBKSkKPiAgICAg ICAgICAgICAgICAgIChub3QgKDw9ICN4MUNCRCBjcCAjeDFDQkYpKSkpCj4gICAgICAgICA6dXBw ZXIpCj4gLSAgICAgICgob3IgKGFscGhhYmV0aWMtcCBjaGFyKSAoZXFsIGNwICN4MDBBMCkgKGVx bCBjcCAjeDA1RjMpKSA6b2xldHRlcikKPiArICAgICAgKChvciAoYWxwaGFiZXRpYy1wIGNoYXJh Y3RlcikgKGVxbCBjcCAjeDAwQTApIChlcWwgY3AgI3gwNUYzKSkgOm9sZXR0ZXIpCj4gICAgICAg ICgob3IgKGVxbCBnYyA6TmQpICg8PSAjeDA2NkIgY3AgI3gwNjZDKSkgOm51bWVyaWMpCj4gICAg ICAgICgoYmluYXJ5LXNlYXJjaCBjcCBhdGVybXMpIDphdGVybSkKPiAgICAgICAgKChiaW5hcnkt c2VhcmNoIGNwIHNjb250aW51ZXMpIDpzY29udGludWUpCj4gLSAgICAgICgocHJvcGxpc3QtcCBj aGFyIDpzZW50ZW5jZS10ZXJtaW5hbCkgOnN0ZXJtKQo+ICsgICAgICAoKHByb3BsaXN0LXAgY2hh cmFjdGVyIDpzZW50ZW5jZS10ZXJtaW5hbCkgOnN0ZXJtKQo+ICAgICAgICAoKGFuZCAob3IgKG1l bWJlciBnYyAnKDpQbyA6UHMgOlBlIDpQZiA6UGkpKQo+IC0gICAgICAgICAgICAgICAgKGVxbCAo bGluZS1icmVhay1jbGFzcyBjaGFyKSA6cXUpKSkKPiArICAgICAgICAgICAgICAgIChlcWwgKGxp bmUtYnJlYWstY2xhc3MgY2hhcmFjdGVyKSA6cXUpKSkKPiAgICAgICAgIDpjbG9zZSkKPiAgICAg ICAgKHQgbmlsKSkpKQo+Cj4gZGlmZiAtLWdpdCBhL3NyYy9jb2RlL3RocmVhZC5saXNwIGIvc3Jj L2NvZGUvdGhyZWFkLmxpc3AKPiBpbmRleCA4MWM3YjY0ODYuLjY2ZDcwODhjNSAxMDA2NDQKPiAt LS0gYS9zcmMvY29kZS90aHJlYWQubGlzcAo+ICsrKyBiL3NyYy9jb2RlL3RocmVhZC5saXNwCj4g QEAgLTI5LDcgKzI5LDcgQEAgYW55IHRpbWUuIgo+ICAgICAgICAgKGRlZm1hY3JvIG93bmVyLXRp ZC1mcm9tLXdvcmQgKHdvcmQpIGAoYXNoICx3b3JkIC0zMikpKQo+Cj4gIChkZWZ1biBtdXRleC12 YWx1ZSAobXV0ZXgpCj4gLSAgIkN1cnJlbnQgb3duZXIgb2YgdGhlIG11dGV4LCBOSUwgaWYgdGhl IG11dGV4IGlzIGZyZWUuIE1heSByZXR1cm4gYQo+ICsgICJDdXJyZW50IG93bmVyIG9mIE1VVEVY LCBOSUwgaWYgdGhlIG11dGV4IGlzIGZyZWUuIE1heSByZXR1cm4gYQo+ICBzdGFsZSB2YWx1ZSwg dXNlIE1VVEVYLU9XTkVSIGluc3RlYWQuIgo+ICAgIChtdXRleC1vd25lci1sb29rdXAgKG11dGV4 LSVvd25lciBtdXRleCkpKQo+Cj4gQEAgLTY2LDcgKzY2LDcgQEAgc3RhbGUgdmFsdWUsIHVzZSBN VVRFWC1PV05FUiBpbnN0ZWFkLiIKPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAjLWJpdHBh Y2tlZC1tdXRleCAoY3VycmVudC12bXRocmVhZC1pZCkpKQo+Cj4gIChkZWZ1biBtdXRleC1vd25l ciAobXV0ZXgpCj4gLSAgIkN1cnJlbnQgb3duZXIgb2YgdGhlIG11dGV4LCBOSUwgaWYgdGhlIG11 dGV4IGlzIGZyZWUuIE5hdHVyYWxseSwKPiArICAiQ3VycmVudCBvd25lciBvZiBNVVRFWCwgTklM IGlmIHRoZSBtdXRleCBpcyBmcmVlLiBOYXR1cmFsbHksCj4gIHRoaXMgaXMgcmFjeSBieSBkZXNp Z24gKGFub3RoZXIgdGhyZWFkIG1heSBhY3F1aXJlIHRoZSBtdXRleCBhZnRlcgo+ICB0aGlzIGZ1 bmN0aW9uIHJldHVybnMpLCBpdCBpcyBpbnRlbmRlZCBmb3IgaW5mb3JtYXRpdmUgcHVycG9zZXMu IEZvcgo+ICB0ZXN0aW5nIHdoZXRoZXIgdGhlIGN1cnJlbnQgdGhyZWFkIGlzIGhvbGRpbmcgYSBt dXRleCBzZWUKPiBAQCAtMjAwLDggKzIwMCw4IEBAIGFuZCB0aGUgTVVURVggaXMgbm90IGltbWVk aWF0ZWx5IGF2YWlsYWJsZSwgc2xlZXAgdW50aWwgaXQgaXMgYXZhaWxhYmxlLgo+ICBJZiBUSU1F T1VUIGlzIGdpdmVuLCBpdCBzcGVjaWZpZXMgYSByZWxhdGl2ZSB0aW1lb3V0LCBpbiBzZWNvbmRz LCBvbiBob3cgbG9uZwo+ICB0aGUgc3lzdGVtIHNob3VsZCB0cnkgdG8gYWNxdWlyZSB0aGUgbG9j ayBpbiB0aGUgY29udGVuZGVkIGNhc2UuCj4KPiAtSWYgdGhlIG11dGV4IGlzbid0IGFjcXVpcmVk IHN1Y2Nlc3NmdWxseSBkdWUgdG8gZWl0aGVyIFdBSVQtUCBvciBUSU1FT1VULCB0aGUKPiAtYm9k eSBpcyBub3QgZXhlY3V0ZWQsIGFuZCBXSVRILU1VVEVYIHJldHVybnMgTklMLgo+ICtJZiB0aGUg bXV0ZXggaXNuJ3QgYWNxdWlyZWQgc3VjY2Vzc2Z1bGx5IGR1ZSB0byBlaXRoZXIgV0FJVC1QIG9y Cj4gK1RJTUVPVVQsIEJPRFkgaXMgbm90IGV4ZWN1dGVkLCBhbmQgV0lUSC1NVVRFWCByZXR1cm5z IE5JTC4KPgo+ICBPdGhlcndpc2UgYm9keSBpcyBleGVjdXRlZCB3aXRoIHRoZSBtdXRleCBoZWxk IGJ5IGN1cnJlbnQgdGhyZWFkLCBhbmQKPiAgV0lUSC1NVVRFWCByZXR1cm5zIHRoZSB2YWx1ZXMg b2YgQk9EWS4KPiBAQCAtMjYxLDggKzI2MSw4IEBAIGhlbGQgYnkgdGhlIGN1cnJlbnQgdGhyZWFk LCBzbGVlcCB1bnRpbCBpdCBpcyBhdmFpbGFibGUuCj4gIElmIFRJTUVPVVQgaXMgZ2l2ZW4sIGl0 IHNwZWNpZmllcyBhIHJlbGF0aXZlIHRpbWVvdXQsIGluIHNlY29uZHMsIG9uIGhvdyBsb25nCj4g IHRoZSBzeXN0ZW0gc2hvdWxkIHRyeSB0byBhY3F1aXJlIHRoZSBsb2NrIGluIHRoZSBjb250ZW5k ZWQgY2FzZS4KPgo+IC1JZiB0aGUgbXV0ZXggaXNuJ3QgYWNxdWlyZWQgc3VjY2Vzc2Z1bGx5IGR1 ZSB0byBlaXRoZXIgV0FJVC1QIG9yIFRJTUVPVVQsIHRoZQo+IC1ib2R5IGlzIG5vdCBleGVjdXRl ZCwgYW5kIFdJVEgtUkVDVVJTSVZFLUxPQ0sgcmV0dXJucyBOSUwuCj4gK0lmIHRoZSBtdXRleCBp c24ndCBhY3F1aXJlZCBzdWNjZXNzZnVsbHkgZHVlIHRvIGVpdGhlciBXQUlULVAgb3IKPiArVElN RU9VVCwgQk9EWSBpcyBub3QgZXhlY3V0ZWQsIGFuZCBXSVRILVJFQ1VSU0lWRS1MT0NLIHJldHVy bnMgTklMLgo+Cj4gIE90aGVyd2lzZSBib2R5IGlzIGV4ZWN1dGVkIHdpdGggdGhlIG11dGV4IGhl bGQgYnkgY3VycmVudCB0aHJlYWQsIGFuZAo+ICBXSVRILVJFQ1VSU0lWRS1MT0NLIHJldHVybnMg dGhlIHZhbHVlcyBvZiBCT0RZLgo+IGRpZmYgLS1naXQgYS9zcmMvY29kZS90aW1lci5saXNwIGIv c3JjL2NvZGUvdGltZXIubGlzcAo+IGluZGV4IGE2OWZlMWU4OC4uNmExNGMyN2YzIDEwMDY0NAo+ IC0tLSBhL3NyYy9jb2RlL3RpbWVyLmxpc3AKPiArKysgYi9zcmMvY29kZS90aW1lci5saXNwCj4g QEAgLTQ5NCwxNCArNDk0LDE0IEBAIGNvbmRpdGlvbiBhZnRlciBhdCBsZWFzdCBFWFBJUkVTIHNl Y29uZHMgaGF2ZSBwYXNzZWQuCj4KPiAgTm90ZSB0aGF0IGl0IGlzIG5ldmVyIHNhZmUgdG8gdW53 aW5kIGZyb20gYW4gYXN5bmNocm9ub3VzIGNvbmRpdGlvbi4gQ29uc2lkZXI6Cj4KPiAtICAoZGVm dW4gY2FsbC13aXRoLWZvbyAoZnVuY3Rpb24pCj4gLSAgICAobGV0IChmb28pCj4gLSAgICAgICh1 bndpbmQtcHJvdGVjdAo+IC0gICAgICAgICAocHJvZ24KPiAtICAgICAgICAgICAoc2V0ZiBmb28g KGdldC1mb28pKQo+IC0gICAgICAgICAgIChmdW5jYWxsIGZ1bmN0aW9uIGZvbykpCj4gLSAgICAg ICAod2hlbiBmb28KPiAtICAgICAgICAgKHJlbGVhc2UtZm9vIGZvbykpKSkpCj4gKyAgICAoZGVm dW4gY2FsbC13aXRoLWZvbyAoZnVuY3Rpb24pCj4gKyAgICAgIChsZXQgKGZvbykKPiArICAgICAg ICAodW53aW5kLXByb3RlY3QKPiArICAgICAgICAgICAocHJvZ24KPiArICAgICAgICAgICAgIChz ZXRmIGZvbyAoZ2V0LWZvbykpCj4gKyAgICAgICAgICAgICAoZnVuY2FsbCBmdW5jdGlvbiBmb28p KQo+ICsgICAgICAgICAod2hlbiBmb28KPiArICAgICAgICAgICAocmVsZWFzZS1mb28gZm9vKSkp KSkKPgo+ICBJZiBUSU1FT1VUIG9jY3VycyBhZnRlciBgR0VULUZPT2AgaGFzIGV4ZWN1dGVkLCBi dXQgYmVmb3JlIHRoZQo+ICBhc3NpZ25tZW50LCB0aGVuIGBSRUxFQVNFLUZPT2Agd2lsbCBiZSBt aXNzZWQuIFdoaWxlIGluZGl2aWR1YWwgc2l0ZXMKPiBkaWZmIC0tZ2l0IGEvc3JjL2NvZGUvdG9w bGV2ZWwubGlzcCBiL3NyYy9jb2RlL3RvcGxldmVsLmxpc3AKPiBpbmRleCAwMWFiODNhM2UuLmNm ZTViYjUxYSAxMDA2NDQKPiAtLS0gYS9zcmMvY29kZS90b3BsZXZlbC5saXNwCj4gKysrIGIvc3Jj L2NvZGUvdG9wbGV2ZWwubGlzcAo+IEBAIC00MTcsNiArNDE3LDE1IEBAIGFueSBub24tbmVnYXRp dmUgcmVhbCBudW1iZXIuIgo+ICAgICAgIi0tZW5kLXJ1bnRpbWUtb3B0aW9ucyIgIi0tbWVyZ2Ut Y29yZS1wYWdlcyIgIi0tbm8tbWVyZ2UtY29yZS1wYWdlcyIpCj4gICAgIydlcXVhbHApCj4KPiAr KGRlZnZhciAqcG9zaXgtYXJndiopCj4gKyhzZXRmCj4gKyAoZG9jdW1lbnRhdGlvbiAnKnBvc2l4 LWFyZ3YqICd2YXJpYWJsZSkKPiArICJBIGxpc3Qgb2Ygc3RyaW5ncyByZWxhdGVkIHRvIHRoZSBV TklYIGNvbW1hbmQgbGluZSAoYGFyZ3ZgIGluIFxcQykuCj4gKwo+ICsgU0ItTUFOVUFMOkBSVU5U SU1FLU9QVElPTlMgYXJlIHByb2Nlc3NlZCBhbmQgcmVtb3ZlZCBieSB0aGUgcnVudGltZS4KPiAr IFRoZSBkZWZhdWx0IHRvcGxldmVsIChzZWUgU0ItRVhUOlNBVkUtTElTUC1BTkQtRElFKSBhbHNv IHJlbW92ZXMgdGhlCj4gKyBTQi1NQU5VQUw6QFRPUExFVkVMLU9QVElPTlMgdGhhdCBpdCBwcm9j ZXNzZXMuIikKPiArCj4gIDs7OyB0aGUgZGVmYXVsdCBzeXN0ZW0gdG9wIGxldmVsIGZ1bmN0aW9u Cj4gIChkZWZ1biB0b3BsZXZlbC1pbml0ICgpCj4gICAgKC9zaG93MCAiZW50ZXJpbmcgVE9QTEVW RUwtSU5JVCIpCj4gZGlmZiAtLWdpdCBhL3NyYy9jb2RlL3RyYWNlcm9vdC5saXNwIGIvc3JjL2Nv ZGUvdHJhY2Vyb290Lmxpc3AKPiBpbmRleCBhNWNhMzlhNDkuLjlhM2EzN2JlOCAxMDA2NDQKPiAt LS0gYS9zcmMvY29kZS90cmFjZXJvb3QubGlzcAo+ICsrKyBiL3NyYy9jb2RlL3RyYWNlcm9vdC5s aXNwCj4gQEAgLTE3OCw4ICsxNzgsOCBAQCB0byBiZSBjb25zaWRlcmVkLiBQb3NzaWJsZSB2YWx1 ZXMgYXJlOgo+Cj4gIC0gOlNUQVRJQwo+Cj4gLSAgVG8gZmluZCBhIHJvb3Qgb2YgYW4gaW1hZ2Ut YmFja2VkIG9iamVjdCwgeW91IHdhbnQgdG8gc3RvcCBvbmx5IGF0IGEKPiAtICB0cnVseSA6U1RB VElDIG9iamVjdC4KPiArICAgIFRvIGZpbmQgYSByb290IG9mIGFuIGltYWdlLWJhY2tlZCBvYmpl Y3QsIHlvdSB3YW50IHRvIHN0b3Agb25seSBhdAo+ICsgICAgYSB0cnVseSA6U1RBVElDIG9iamVj dC4KPgo+ICBJR05PUkUgaXMgYSBsaXN0IG9mIG9iamVjdHMgdG8gdHJlYXQgYXMgaWYgbm9uZXhp c3RlbnQgaW4gdGhlIGhlYXAuCj4gIEl0IGNhbiBvZnRlbiBiZSB1c2VmdWwgZm9yIGZpbmRpbmcg YSBwYXRoIHRvIGFuIGludGVybmVkIHN5bWJvbCBvdGhlciB0aGFuCj4gZGlmZiAtLWdpdCBhL3Ny Yy9jb2RlL3VuaXgubGlzcCBiL3NyYy9jb2RlL3VuaXgubGlzcAo+IGluZGV4IDg3ZTM3YzE0OC4u Mzc5YTk4M2VhIDEwMDY0NAo+IC0tLSBhL3NyYy9jb2RlL3VuaXgubGlzcAo+ICsrKyBiL3NyYy9j b2RlL3VuaXgubGlzcAo+IEBAIC0xMzMsOCArMTMzLDggQEAgU1lTQ0FMTC1GT1JNLiBSZXBlYXQg ZXZhbHVhdGlvbiBvZiBTWVNDQUxMLUZPUk0gaWYgaXQgaXMgaW50ZXJydXB0ZWQuIgo+ICAgKGRl Y2xhaW0gKGZ0eXBlIChmdW5jdGlvbiAodCkgKHZhbHVlcyAob3Igc2ltcGxlLXN0cmluZyBudWxs KSAmb3B0aW9uYWwpKQo+ICAgICAgICAgICAgICAgICAgIHBvc2l4LWdldGVudikpCj4gICAoZGVm dW4gcG9zaXgtZ2V0ZW52IChuYW1lKQo+IC0gICJSZXR1cm4gdGhlIFwidmFsdWVcIiBwYXJ0IG9m IHRoZSBlbnZpcm9ubWVudCBzdHJpbmcgXCJuYW1lPXZhbHVlXCIgd2hpY2gKPiAtY29ycmVzcG9u ZHMgdG8gTkFNRSwgb3IgTklMIGlmIHRoZXJlIGlzIG5vbmUuIgo+ICsgICJSZXR1cm4gdGhlIGB2 YWx1ZWAgcGFydCBvZiB0aGUgZW52aXJvbm1lbnQgc3RyaW5nIGBuYW1lPXZhbHVlYCB3aGljaAo+ ICtjb3JyZXNwb25kcyB0byBOQU1FLCBvciBOSUwgaWYgdGhlcmUgaXMgbm9uZS4gU2VlIGBnZXRl bnYoMylgLiIKPiAgICAod2l0aC1hbGllbiAoKHBvc2l4LWdldGVudiAoZnVuY3Rpb24gYy1zdHJp bmcgKGMtc3RyaW5nIDpub3QtbnVsbCB0KSkgOmV4dGVybiAiZ2V0ZW52IikpCj4gICAgICAoYWNv bmQgKChhbGllbi1mdW5jYWxsIHBvc2l4LWdldGVudiBuYW1lKSAocG9zc2libHktYmFzZS1zdHJp bmdpemUgaXQpKSkpKSkKPgo+IEBAIC00NTgsNyArNDU4LDcgQEAgY29ycmVzcG9uZHMgdG8gTkFN RSwgb3IgTklMIGlmIHRoZXJlIGlzIG5vbmUuIgo+ICAgIGAoc2lnbmVkLWJ5dGUgMzIpKQo+ICAo ZGVmdW4gb3MtZXhpdCAoY29kZSAma2V5IGFib3J0KQo+ICAgICJFeGl0IHRoZSBwcm9jZXNzIHdp dGggQ09ERS4gSWYgQUJPUlQgaXMgdHJ1ZSwgZXhpdCBpcyBwZXJmb3JtZWQgdXNpbmcgX2V4aXQo MiksCj4gLWF2b2lkaW5nIGBhdGV4aXRgKDMpIGhvb2tzLCBldGMuIE90aGVyd2lzZSBgZXhpdGAo MikgaXMgY2FsbGVkLiIKPiArYXZvaWRpbmcgYGF0ZXhpdCgzKWAgaG9va3MsIGV0Yy4gT3RoZXJ3 aXNlIGBleGl0KDIpYCBpcyBjYWxsZWQuIgo+ICAgICh1bmxlc3MgKHR5cGVwIGNvZGUgJ2V4aXQt Y29kZSkKPiAgICAgIChzZXRmIGNvZGUgKGlmIGFib3J0IDEgMCkpKQo+ICAgIChpZiBhYm9ydAo+ IGRpZmYgLS1naXQgYS9zcmMvY29tcGlsZXIvZ2VuZXJpYy9nZW5lc2lzLmxpc3AgYi9zcmMvY29t cGlsZXIvZ2VuZXJpYy9nZW5lc2lzLmxpc3AKPiBpbmRleCBiNmFiYjE2MDIuLmJiZTM4YWNmZSAx MDA2NDQKPiAtLS0gYS9zcmMvY29tcGlsZXIvZ2VuZXJpYy9nZW5lc2lzLmxpc3AKPiArKysgYi9z cmMvY29tcGlsZXIvZ2VuZXJpYy9nZW5lc2lzLmxpc3AKPiBAQCAtODA2LDcgKzgwNiw3IEBACj4g ICAgcG9pbnRpbmcgdG8gdGhlbS4iCj4gICAgKGFsbG9jYXRlLWNvbGQtZGVzY3JpcHRvciBnc3Bh Y2UgKGFzaCBsZW5ndGggc2Itdm06d29yZC1zaGlmdCkgbG93dGFnKSkKPiAgKGRlZnVuIGFsbG9j YXRlLW90aGVycHRyIChnc3BhY2UgbGVuZ3RoIHdpZGV0YWcpCj4gLSAgIkFsbG9jYXRlIExFTkdU SCB3b3JkcyBpbiBHU1BBQ0UgYW5kIHJldHVybiBhbiBgYG90aGVyLXBvaW50ZXInJyBkZXNjcmlw dG9yLgo+ICsgICJBbGxvY2F0ZSBMRU5HVEggd29yZHMgaW4gR1NQQUNFIGFuZCByZXR1cm4gYW4g XCJvdGhlci1wb2ludGVyXCIgZGVzY3JpcHRvci4KPiAgICAgTEVOR1RIIG11c3QgY291bnQgdGhl IGhlYWRlciB3b3JkIGl0c2VsZiBhcyAxIHdvcmQuICBUaGUgaGVhZGVyIHdvcmQgaXMKPiAgICAg aW5pdGlhbGl6ZWQgd2l0aCB0aGUgcGF5bG9hZCBzaXplIGFzICgxLSBMRU5HVEgpLCBhbmQgV0lE RVRBRy4iCj4gICAgKGxldCogKChwYWdlLXR5cGUgKG9yIChhbmQgKGVxIGdzcGFjZSAqZHluYW1p YyopCj4gZGlmZiAtLWdpdCBhL3NyYy9jb21waWxlci9tYWNyb3MubGlzcCBiL3NyYy9jb21waWxl ci9tYWNyb3MubGlzcAo+IGluZGV4IDA0NjJiZDJmMy4uZGQyZTMxMzk3IDEwMDY0NAo+IC0tLSBh L3NyYy9jb21waWxlci9tYWNyb3MubGlzcAo+ICsrKyBiL3NyYy9jb21waWxlci9tYWNyb3MubGlz cAo+IEBAIC0xMDAzLDE3ICsxMDAzLDE3IEBACj4gIDs7OyAqQ09NUElMRVItUFJJTlQtVkFSSUFC TEUtQUxJU1QqIGZvciB1c2VyIGN1c3RvbWl6YXRpb24uCj4gIChkZWZ2YXIgKmNvbXBpbGVyLXBy aW50LXZhcmlhYmxlLWFsaXN0KiBuaWwKPiAgICAiQW4gYXNzb2NpYXRpb24gbGlzdCBkZXNjcmli aW5nIG5ldyBiaW5kaW5ncyBmb3Igc3BlY2lhbCB2YXJpYWJsZXMKPiAtdG8gYmUgdXNlZCBieSB0 aGUgY29tcGlsZXIgZm9yIGVycm9yLXJlcG9ydGluZywgZXRjLiBFZy4KPiAtCj4gLSAoKCpQUklO VC1MRU5HVEgqIC4gMTApICgqUFJJTlQtTEVWRUwqIC4gNikgKCpQUklOVC1QUkVUVFkqIC4gTklM KSkKPiArdG8gYmUgdXNlZCBieSB0aGUgY29tcGlsZXIgZm9yIGVycm9yLXJlcG9ydGluZywgZXRj Lgo+ICtFLmcuICgoKlBSSU5ULUxFTkdUSCogLiAxMCkgKCpQUklOVC1MRVZFTCogLiA2KSAoKlBS SU5ULVBSRVRUWSogLgo+ICtOSUwpKS4KPgo+ICBUaGUgdmFyaWFibGVzIGluIHRoZSBDQVIgcG9z aXRpb25zIGFyZSBib3VuZCB0byB0aGUgdmFsdWVzIGluIHRoZSBDRFIKPiAgZHVyaW5nIHRoZSBl eGVjdXRpb24gb2Ygc29tZSBkZWJ1ZyBjb21tYW5kcy4gV2hlbiBldmFsdWF0aW5nIGFyYml0cmFy eQo+ICBleHByZXNzaW9ucyBpbiB0aGUgZGVidWdnZXIsIHRoZSBub3JtYWwgdmFsdWVzIG9mIHRo ZSBwcmludGVyIGNvbnRyb2wKPiAgdmFyaWFibGVzIGFyZSBpbiBlZmZlY3QuCj4KPiAtSW5pdGlh bGx5IGVtcHR5LCAqQ09NUElMRVItUFJJTlQtVkFSSUFCTEUtQUxJU1QqIGlzIHR5cGljYWxseSB1 c2VkIHRvCj4gLXNwZWNpZnkgYmluZGluZ3MgZm9yIHByaW50ZXIgY29udHJvbCB2YXJpYWJsZXMu IikKPiArSW5pdGlhbGx5IGVtcHR5LCBgKkNPTVBJTEVSLVBSSU5ULVZBUklBQkxFLUFMSVNUKmAg aXMgdHlwaWNhbGx5IHVzZWQKPiArdG8gc3BlY2lmeSBiaW5kaW5ncyBmb3IgcHJpbnRlciBjb250 cm9sIHZhcmlhYmxlcy4iKQo+Cj4gIChkZWZtYWNybyB3aXRoLWNvbXBpbGVyLWlvLXN5bnRheCAo JmJvZHkgZm9ybXMpCj4gICAgYCh3aXRoLXNhbmUtaW8tc3ludGF4Cj4gZGlmZiAtLWdpdCBhL3Ny Yy9jb21waWxlci9tYWluLmxpc3AgYi9zcmMvY29tcGlsZXIvbWFpbi5saXNwCj4gaW5kZXggOGM1 M2M2MmIwLi4wOWQ2MDBlZmIgMTAwNjQ0Cj4gLS0tIGEvc3JjL2NvbXBpbGVyL21haW4ubGlzcAo+ ICsrKyBiL3NyYy9jb21waWxlci9tYWluLmxpc3AKPiBAQCAtNzcsNyArNzcsNyBAQCBGb2xsb3dp bmcgb3B0aW9ucyBhcmUgZGVmaW5lZDoKPiAgICAgIHVudGlsIHRoZSBlbmQgb2YgdGhlIGZvcm0s IGluc3RlYWQgb2YgZ2l2aW5nIHRoZW0gYXQgdGhlIGVuZCBvZgo+ICAgICAgZWFjaCBjb21waWxh dGlvbi4gSWYgT1ZFUlJJREUgaXMgTklMICh0aGUgZGVmYXVsdCksIHRoZW4gdGhlCj4gICAgICBv dXRlcm1vc3QgV0lUSC1DT01QSUxBVElPTi1VTklUIGZvcm0gZ3JhYnMgdGhlIHVuZGVmaW5lZCB3 YXJuaW5ncy4KPiAtICAgIFNwZWNpZnlpbmcgT1ZFUlJJREUgdHJ1ZSBjYXVzZXMgdGhhdCBmb3Jt IHRvIGdyYWIgYW55IGVuY2xvc2VkCj4gKyAgICBTcGVjaWZ5aW5nIDpPVkVSUklERSB0cnVlIGNh dXNlcyB0aGF0IGZvcm0gdG8gZ3JhYiBhbnkgZW5jbG9zZWQKPiAgICAgIHdhcm5pbmdzLCBldmVu IGlmIGl0IGlzIGVuY2xvc2VkIGJ5IGFub3RoZXIgV0lUSC1DT01QSUxBVElPTi1VTklULgo+Cj4g IC0gOlBPTElDWSBgPG9wdGltaXplLWRlY2xhcmF0aW9uLWZvcm0+YAo+IEBAIC04NywzNiArODcs MzcgQEAgRm9sbG93aW5nIG9wdGlvbnMgYXJlIGRlZmluZWQ6Cj4gICAgICBPUFRJTUlaRSBwcm9j bGFtYXRpb25zIGFuZCBjYWxscyB0bwo+ICAgICAgU0ItRVhUOlJFU1RSSUNULUNPTVBJTEVSLVBP TElDWSB0byB0aGUgZHluYW1pYyBzY29wZSBvZiBCT0RZLgo+Cj4gLSAgICBJZiBPVkVSUklERSBp cyBmYWxzZSwgc3BlY2lmaWVkIFBPTElDWSBpcyBtZXJnZWQgd2l0aCBjdXJyZW50Cj4gLSAgICBn bG9iYWwgcG9saWN5LiBJZiBPVkVSUklERSBpcyB0cnVlLCBjdXJyZW50IGdsb2JhbCBwb2xpY3ks Cj4gLSAgICBpbmNsdWRpbmcgYW55IHJlc3RyaWN0aW9ucywgaXMgZGlzY2FyZGVkIGluIGZhdm9y IG9mIHRoZSBzcGVjaWZpZWQKPiAtICAgIFBPTElDWS4KPiArICAgIElmIDpPVkVSUklERSBpcyBm YWxzZSwgdGhlIHNwZWNpZmllZCA6UE9MSUNZIGlzIG1lcmdlZCB3aXRoCj4gKyAgICBjdXJyZW50 IGdsb2JhbCBwb2xpY3kuIElmIDpPVkVSUklERSBpcyB0cnVlLCBjdXJyZW50IGdsb2JhbAo+ICsg ICAgcG9saWN5LCBpbmNsdWRpbmcgYW55IHJlc3RyaWN0aW9ucywgaXMgZGlzY2FyZGVkIGluIGZh dm9yIG9mIHRoZQo+ICsgICAgc3BlY2lmaWVkCj4gKyAgICA6UE9MSUNZLgo+Cj4gLSAgICBTdXBw bHlpbmcgUE9MSUNZIE5JTCBpcyBlcXVpdmFsZW50IHRvIHRoZSBvcHRpb24gbm90IGJlaW5nCj4g LSAgICBzdXBwbGllZCBhdCBhbGwsIGllLiBkeW5hbWljIHNjb3Bpbmcgb2YgcG9saWN5IGRvZXMg bm90IHRha2UKPiArICAgIFN1cHBseWluZyA6UE9MSUNZIE5JTCBpcyBlcXVpdmFsZW50IHRvIHRo ZSBvcHRpb24gbm90IGJlaW5nCj4gKyAgICBzdXBwbGllZCBhdCBhbGwsIGkuZS4gZHluYW1pYyBz Y29waW5nIG9mIHBvbGljeSBkb2VzIG5vdCB0YWtlCj4gICAgICBwbGFjZS4KPgo+ICAgICAgVGhp cyBvcHRpb24gaXMgYW4gU0JDTC1zcGVjaWZpYyBleHBlcmltZW50YWwgZXh0ZW5zaW9uOiBJbnRl cmZhY2UKPiAgICAgIHN1YmplY3QgdG8gY2hhbmdlLgo+Cj4gLTpTT1VSQ0UtTkFNRVNUUklORyBg PG5hbWVzdHJpbmctZm9ybT5gCj4gKy0gOlNPVVJDRS1OQU1FU1RSSU5HIGA8bmFtZXN0cmluZy1m b3JtPmAKPgo+IC0gICAgQXR0YWNoZXMgdGhlIHZhbHVlIHJldHVybmVkIGJ5IHRoZSBOYW1lc3Ry aW5nLUZvcm0gdG8gdGhlIGludGVybmFsCj4gLSAgICBkZWJ1Zy1zb3VyY2UgaW5mb3JtYXRpb24g YXMgdGhlIG5hbWVzdHJpbmcgb2YgdGhlIHNvdXJjZSBmaWxlLgo+IC0gICAgTm9ybWFsbHkgdGhl IG5hbWVzdHJpbmcgb2YgdGhlIGlucHV0LWZpbGUgZm9yIENPTVBJTEUtRklMRSBpcwo+IC0gICAg dXNlZDogdGhpcyBvcHRpb24gY2FuIGJlIHVzZWQgdG8gcHJvdmlkZSBzb3VyY2UtZmlsZSBpbmZv cm1hdGlvbgo+IC0gICAgZm9yIGZ1bmN0aW9ucyBjb21waWxlZCB1c2luZyBDT01QSUxFLCBvciB0 byBvdmVycmlkZSB0aGUKPiAtICAgIGlucHV0LWZpbGUgb2YgQ09NUElMRS1GSUxFLgo+ICsgICAg QXR0YWNoZXMgdGhlIHZhbHVlIHJldHVybmVkIGJ5IHRoZSBgPG5hbWVzdHJpbmctZm9ybT5gIHRv IHRoZQo+ICsgICAgaW50ZXJuYWwgZGVidWctc291cmNlIGluZm9ybWF0aW9uIGFzIHRoZSBuYW1l c3RyaW5nIG9mIHRoZSBzb3VyY2UKPiArICAgIGZpbGUuIE5vcm1hbGx5IHRoZSBuYW1lc3RyaW5n IG9mIHRoZSBpbnB1dC1maWxlIGZvciBDT01QSUxFLUZJTEUKPiArICAgIGlzIHVzZWQ6IHRoaXMg b3B0aW9uIGNhbiBiZSB1c2VkIHRvIHByb3ZpZGUgc291cmNlLWZpbGUKPiArICAgIGluZm9ybWF0 aW9uIGZvciBmdW5jdGlvbnMgY29tcGlsZWQgdXNpbmcgQ09NUElMRSwgb3IgdG8gb3ZlcnJpZGUK PiArICAgIHRoZSBpbnB1dC1maWxlIG9mIENPTVBJTEUtRklMRS4KPgo+ICAgICAgSWYgYm90aCBh biBvdXRlciBhbmQgYW4gaW5uZXIgV0lUSC1DT01QSUxBVElPTi1VTklUIHByb3ZpZGUgYQo+IC0g ICAgU09VUkNFLU5BTUVTVFJJTkcsIHRoZSBpbm5lciBvbmUgdGFrZXMgcHJlY2VkZW5jZS4gVW5h ZmZlY3RlZAo+IC0gICAgYnkgOk9WRVJSSURFLgo+ICsgICAgOlNPVVJDRS1OQU1FU1RSSU5HLCB0 aGUgaW5uZXIgb25lIHRha2VzIHByZWNlZGVuY2UuIFVuYWZmZWN0ZWQgYnkKPiArICAgIDpPVkVS UklERS4KPgo+ICAgICAgVGhpcyBpcyBhbiBTQkNMLXNwZWNpZmljIGV4dGVuc2lvbi4KPgo+ICAt IDpTT1VSQ0UtUExJU1QgYDxwbGlzdC1mb3JtPmAKPgo+IC0gICAgQXR0YWNoZXMgdGhlIHZhbHVl IHJldHVybmVkIGJ5IHRoZSBQbGlzdC1Gb3JtIHRvIGludGVybmFsCj4gKyAgICBBdHRhY2hlcyB0 aGUgdmFsdWUgcmV0dXJuZWQgYnkgdGhlIGA8cGxpc3QtZm9ybT5gIHRvIGludGVybmFsCj4gICAg ICBkZWJ1Zy1zb3VyY2UgaW5mb3JtYXRpb24gb2YgZnVuY3Rpb25zIGNvbXBpbGVkIGluIHdpdGhp biB0aGUKPiAgICAgIGR5bmFtaWMgZXh0ZW50IG9mIEJPRFkuCj4KPiBAQCAtMTUzLDcgKzE1NCw4 IEBAIEV4YW1wbGVzOgo+ICA7OyBwcm9jbGFtYXRpb24gbGVha3Mgb3V0IGZyb20gV0lUSC1DT01Q SUxBVElPTi1VTklULgo+ICAod2l0aC1jb21waWxhdGlvbi11bml0ICg6cG9saWN5IG5pbCkKPiAg ICAoZGVjbGFpbSAob3B0aW1pemUgc2FmZXR5KSkKPiAtICAobG9hZCBcImZvby5saXNwXCIpKSIK PiArICAobG9hZCBcImZvby5saXNwXCIpKQo+ICtgYGAiCj4gICAgYCgld2l0aC1jb21waWxhdGlv bi11bml0IChsYW1iZGEgKCkgLEBib2R5KSAsQG9wdGlvbnMpKQo+Cj4gIChkZWZ2YXIgKnNvdXJj ZS1wbGlzdCogbmlsKQo+IGRpZmYgLS1naXQgYS9zcmMvcGNsL2dyYXktc3RyZWFtcy5saXNwIGIv c3JjL3BjbC9ncmF5LXN0cmVhbXMubGlzcAo+IGluZGV4IDUzMTc4MDdlNC4uMmViZTFjOGZmIDEw MDY0NAo+IC0tLSBhL3NyYy9wY2wvZ3JheS1zdHJlYW1zLmxpc3AKPiArKysgYi9zcmMvcGNsL2dy YXktc3RyZWFtcy5saXNwCj4gQEAgLTI4Miw3ICsyODIsNyBAQAo+ICAoZGVmZ2VuZXJpYyBzdHJl YW0tdGVycHJpIChzdHJlYW0pCj4gICAgKDpkb2N1bWVudGF0aW9uCj4gICAgICJXcml0ZXMgYW4g ZW5kIG9mIGxpbmUsIGFzIGZvciBURVJQUkkuIFJldHVybnMgTklMLiBUaGUgZGVmYXVsdAo+IC0g IG1ldGhvZCBkb2VzIChTVFJFQU0tV1JJVEUtQ0hBUiBzdHJlYW0gI1xcTkVXTElORSkuIikpCj4g KyAgbWV0aG9kIGRvZXMgKFNUUkVBTS1XUklURS1DSEFSIHN0cmVhbSBgI1xcTmV3bGluZWApLiIp KQo+Cj4gIChkZWZtZXRob2Qgc3RyZWFtLXRlcnByaSAoKHN0cmVhbSBmdW5kYW1lbnRhbC1jaGFy YWN0ZXItb3V0cHV0LXN0cmVhbSkpCj4gICAgKHN0cmVhbS13cml0ZS1jaGFyIHN0cmVhbSAjXE5l d2xpbmUpKQo+IEBAIC0zMjcsMTEgKzMyNywxMiBAQAo+ICAoZGVmZ2VuZXJpYyBzdHJlYW0tYWR2 YW5jZS10by1jb2x1bW4gKHN0cmVhbSBjb2x1bW4pCj4gICAgKDpkb2N1bWVudGF0aW9uCj4gICAg ICJXcml0ZSBlbm91Z2ggYmxhbmsgc3BhY2Ugc28gdGhhdCB0aGUgbmV4dCBjaGFyYWN0ZXIgd2ls bCBiZQo+IC0gIHdyaXR0ZW4gYXQgdGhlIHNwZWNpZmllZCBjb2x1bW4uIFJldHVybnMgdHJ1ZSBp ZiB0aGUgb3BlcmF0aW9uIGlzCj4gLSAgc3VjY2Vzc2Z1bCwgb3IgTklMIGlmIGl0IGlzIG5vdCBz dXBwb3J0ZWQgZm9yIHRoaXMgc3RyZWFtLiBUaGlzIGlzCj4gLSAgaW50ZW5kZWQgZm9yIHVzZSBi eSBieSBQUFJJTlQgYW5kIEZPUk1BVCB+VC4gVGhlIGRlZmF1bHQgbWV0aG9kIHVzZXMKPiAtICBT VFJFQU0tTElORS1DT0xVTU4gYW5kIHJlcGVhdGVkIGNhbGxzIHRvIFNUUkVBTS1XUklURS1DSEFS IHdpdGggYQo+IC0gICNcXFNQQUNFIGNoYXJhY3RlcjsgaXQgcmV0dXJucyBOSUwgaWYgU1RSRUFN LUxJTkUtQ09MVU1OIHJldHVybnMgTklMLiIpKQo+ICsgICB3cml0dGVuIGF0IHRoZSBzcGVjaWZp ZWQgY29sdW1uLiBSZXR1cm5zIHRydWUgaWYgdGhlIG9wZXJhdGlvbiBpcwo+ICsgICBzdWNjZXNz ZnVsLCBvciBOSUwgaWYgaXQgaXMgbm90IHN1cHBvcnRlZCBmb3IgdGhpcyBzdHJlYW0uIFRoaXMg aXMKPiArICAgaW50ZW5kZWQgZm9yIHVzZSBieSBieSBQUFJJTlQgYW5kIEZPUk1BVCB+VC4gVGhl IGRlZmF1bHQgbWV0aG9kCj4gKyAgIHVzZXMgU1RSRUFNLUxJTkUtQ09MVU1OIGFuZCByZXBlYXRl ZCBjYWxscyB0byBTVFJFQU0tV1JJVEUtQ0hBUgo+ICsgICB3aXRoIGEgI1xcU1BBQ0UgY2hhcmFj dGVyOyBpdCByZXR1cm5zIE5JTCBpZiBTVFJFQU0tTElORS1DT0xVTU4KPiArICAgcmV0dXJucyBO SUwuIikpCj4KPiAgKGRlZm1ldGhvZCBzdHJlYW0tYWR2YW5jZS10by1jb2x1bW4gKChzdHJlYW0g ZnVuZGFtZW50YWwtY2hhcmFjdGVyLW91dHB1dC1zdHJlYW0pCj4gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBjb2x1bW4pCj4gZGlmZiAtLWdpdCBhL3NyYy9wY2wvc2VxdWVu Y2UubGlzcCBiL3NyYy9wY2wvc2VxdWVuY2UubGlzcAo+IGluZGV4IDNhNzg5ZWNkMi4uZmExM2Ey Y2NlIDEwMDY0NAo+IC0tLSBhL3NyYy9wY2wvc2VxdWVuY2UubGlzcAo+ICsrKyBiL3NyYy9wY2wv c2VxdWVuY2UubGlzcAo+IEBAIC0xOTEsNyArMTkxLDE1IEBACj4KPiAgICAgSWYgRlJPTS1FTkQg aXMgTklMLCB0aGUgY29uc3RydWN0ZWQgaXRlcmF0b3IgdmlzaXRzIHRoZSBzcGVjaWZpZWQKPiAg ICAgZWxlbWVudHMgaW4gdGhlIG9yZGVyIGluIHdoaWNoIHRoZXkgYXBwZWFyIGluIFNFUVVFTkNF LiBPdGhlcndpc2UsCj4gLSAgIHRoZSBlbGVtZW50cyBhcmUgdmlzaXRlZCBpbiB0aGUgb3Bwb3Np dGUgb3JkZXIuIikpCj4gKyAgIHRoZSBlbGVtZW50cyBhcmUgdmlzaXRlZCBpbiB0aGUgb3Bwb3Np dGUgb3JkZXIuCj4gKwo+ICsgICBUaGUgc2l4IGZ1bmN0aW9ucyAoaXRlbXMgNC05IGluIHRoZSBs aXN0KSBoYXZlIHRoZSBzYW1lIGNvbnRyYWN0IGFzCj4gKyAgIHRoZSBnZW5lcmljIGZ1bmN0aW9u cyBkZXNjcmliZWQgaW4KPiArICAgU0ItTUFOVUFMOkBFWFNFUS1TSU1QTEUtSVRFUkFUT1ItUFJP VE9DT0wuIEluIGZhY3QsIHdoZW4gdGhlcmUgaXMKPiArICAgbm8gc3BlY2lhbGl6ZWQgbWV0aG9k IGZvciBhIHBhcnRpY3VsYXIgU0VRVUVOQ0Ugc3ViY2xhc3MsCj4gKyAgIFNCLVNFUVVFTkNFOk1B S0UtU0VRVUVOQ0UtSVRFUkFUT1IgY2FsbHMKPiArICAgU0ItU0VRVUVOQ0U6TUFLRS1TSU1QTEUt U0VRVUVOQ0UtSVRFUkFUT1IgYW5kIHJldHVybnMgdGhvc2Ugc2l4Cj4gKyAgIGdlbmVyaWMgZnVu Y3Rpb25zLiIpKQo+Cj4gIDs7OyBtYWdpYyB0ZXJtaW5hdGlvbiB2YWx1ZSBmb3IgbGlzdCA6ZnJv bS1lbmQgdAo+ICAoZGVmaW5lLWxvYWQtdGltZS1nbG9iYWwgKmV4aGF1c3RlZCogKGNvbnMgbmls IG5pbCkpCj4gQEAgLTMwMSw5ICszMDksNyBAQAo+ICAgICAzLiBmcm9tLWVuZAo+Cj4gICAgIFRo ZSByZXR1cm5lZCBpdGVyYXRvciBjYW4gYmUgdXNlZCB3aXRoIHRoZSBnZW5lcmljIGl0ZXJhdG9y Cj4gLSAgIGZ1bmN0aW9ucyBTRVFVRU5DRTpJVEVSQVRPUi1TVEVQLCBTRVFVRU5DRTpJVEVSQVRP Ui1TVEVQLAo+IC0gICBTRVFVRU5DRTpJVEVSQVRPUi1FTEVNRU5ULCAoU0VURiBTRVFVRU5DRTpJ VEVSQVRPUi1FTEVNRU5UKSwKPiAtICAgU0VRVUVOQ0U6SVRFUkFUT1ItSU5ERVggYW5kIFNFUVVF TkNFOklURVJBVE9SLUNPUFkuIikpCj4gKyAgIGZ1bmN0aW9ucyBkZXNjcmliZWQgaW4gU0ItTUFO VUFMOkBFWFNFUS1TSU1QTEUtSVRFUkFUT1ItUFJPVE9DT0wuIikpCj4KPiAgKGRlZmdlbmVyaWMg c2VxdWVuY2U6aXRlcmF0b3Itc3RlcCAoc2VxdWVuY2UgaXRlcmF0b3IgZnJvbS1lbmQpCj4gICAg KDptZXRob2QgKChzIGxpc3QpIGl0ZXJhdG9yIGZyb20tZW5kKQo+Cj4gLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K Pgo+Cj4gaG9va3MvcG9zdC1yZWNlaXZlCj4gLS0KPiBTQkNMCj4KPiBfX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwo+IFNiY2wtY29tbWl0cyBtYWlsaW5nIGxp c3QKPiBTYmNsLWNvbW1pdHNAbGlzdHMuc291cmNlZm9yZ2UubmV0Cj4gaHR0cHM6Ly9saXN0cy5z b3VyY2Vmb3JnZS5uZXQvbGlzdHMvbGlzdGluZm8vc2JjbC1jb21taXRzCgoKX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KU2JjbC1jb21taXRzIG1haWxpbmcg bGlzdApTYmNsLWNvbW1pdHNAbGlzdHMuc291cmNlZm9yZ2UubmV0Cmh0dHBzOi8vbGlzdHMuc291 cmNlZm9yZ2UubmV0L2xpc3RzL2xpc3RpbmZvL3NiY2wtY29tbWl0cwo=