ZGlmZiAtLWdpdCBhL2RvYy9kZXNpZ24tdGhvdWdodHMvY29uZmlnLWxhbmd1YWdlLnR4dCBiL2RvYy9kZXNpZ24tdGhvdWdodHMvY29uZmlnLWxhbmd1YWdlLnR4dAppbmRleCA1MzljN2E1Li41MTBhZGE2IDEwMDY0NAotLS0gYS9kb2MvZGVzaWduLXRob3VnaHRzL2NvbmZpZy1sYW5ndWFnZS50eHQKKysrIGIvZG9jL2Rlc2lnbi10aG91Z2h0cy9jb25maWctbGFuZ3VhZ2UudHh0CkBAIC0xMTUsMyArMTE1LDE0OCBAQAogCiAgICAgICAgIHJlcSBpbiAgc3dpdGNoICAgVVJJICAgICA9XiAiL2ltYWdlcy8iIGltYWdlczoiLyIKIAorCisyMDA3LzAzLzMxIC0gQmVzb2lucyBwbHVzIHBy6WNpcy4KKworMSkgYXVjdW5lIGV4dGVuc2lvbiBkZSBicmFuY2hlbWVudCBvdSBhdXRyZSBkYW5zIGxlcyAibGlzdGVuIiwgYydlc3QgdHJvcCBjb21wbGV4ZS4KKworRGlzdGluZ3VlciBsZXMgZG9ubullcyBlbnRyYW50ZXMgKGluKSBldCBzb3J0YW50ZXMgKG91dCkuCisKK0xlIGZyb250ZW5kIG5lIHZvaXQgcXVlIGxlcyByZXF1ZXRlcyBlbnRyYW50ZXMgZXQgbGVzIHLpcG9uc2VzIHNvcnRhbnRlcy4KK0xlIGJhY2tlbmQgdm9pciBsZXMgcmVxdep0ZXMgaW4vb3V0IGV0IGxlcyBy6XBvbnNlcyBpbi9vdXQuCitMZSBmcm9udGVuZCBwZXJtZXQgbGVzIGJyYW5jaGVtZW50cyBkJ2Vuc2VtYmxlcyBkZSBmaWx0cmVzIGRlIHJlcXXqdGVzIHZlcnMKK2QnYXV0cmVzLiBMZSBmcm9udGVuZCBldCBsZXMgZW5zZW1ibGVzIGRlIGZpbHRyZXMgZGUgcmVxdep0ZXMgcGV1dmVudCBicmFuY2hlcgordmVycyB1biBiYWNrZW5kLgorCistLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0rCisgIFwgIFdoZXJlIHwgICAgICAgIHwgICAgICAgICAgfCAgICAgICAgICB8ICAgICAgICAgfCAgICAgICAgICB8CisgICBcX19fX19fIHwgTGlzdGVuIHwgRnJvbnRlbmQgfCBSZXFSdWxlcyB8IEJhY2tlbmQgfCBSc3BSdWxlcyB8CisgICAgICAgICAgXHwgICAgICAgIHwgICAgICAgICAgfCAgICAgICAgICB8ICAgICAgICAgfCAgICAgICAgICB8CitDYXBhYmlsaXR5IHwgICAgICAgIHwgICAgICAgICAgfCAgICAgICAgICB8ICAgICAgICAgfCAgICAgICAgICB8CistLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0rCitGcm9udGVuZCAgIHwgICAgWCAgIHwgICAgIFggICAgfCAgICAgICAgICB8ICAgICAgICAgfCAgICAgICAgICB8CistLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0rCitGaWx0UmVxSW4gIHwgICAgWCAgIHwgICAgIFggICAgfCAgICAgWCAgICB8ICAgIFggICAgfCAgICAgICAgICB8CistLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0rCitKdW1wRmlsdFJlcXwgICAgWCAgIHwgICAgIFggICAgfCAgICAgWCAgICB8ICAgICAgICAgfCAgICAgICAgICB8IFwKKy0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLSsgID4gPSBSZXFKdW1wCitTZXRCYWNrZW5kIHwgICAgWCAgIHwgICAgIFggICAgfCAgICAgWCAgICB8ICAgICAgICAgfCAgICAgICAgICB8IC8KKy0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLSsKK0ZpbHRSZXFPdXQgfCAgICAgICAgfCAgICAgICAgICB8ICAgICAgICAgIHwgICAgWCAgICB8ICAgICAgICAgIHwKKy0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLSsKK0ZpbHRSc3BJbiAgfCAgICBYICAgfCAgICAgICAgICB8ICAgICAgICAgIHwgICAgWCAgICB8ICAgICBYICAgIHwKKy0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLSsKK0p1bXBGaWx0UnNwfCAgICAgICAgfCAgICAgICAgICB8ICAgICAgICAgIHwgICAgWCAgICB8ICAgICBYICAgIHwKKy0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLSsKK0ZpbHRSc3BPdXQgfCAgICAgICAgfCAgICAgWCAgICB8ICAgICAgICAgIHwgICAgWCAgICB8ICAgICBYICAgIHwKKy0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLSsKK0JhY2tlbmQgICAgfCAgICBYICAgfCAgICAgICAgICB8ICAgICAgICAgIHwgICAgWCAgICB8ICAgICAgICAgIHwKKy0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLSsKKworRW4gY29uY2x1c2lvbgorLS0tLS0tLS0tLS0tLQorCitJbCB5IGEgYXUgbW9pbnMgYmVzb2luIGRlIGRpc3Rpbmd1ZXIgOCBmb25jdGlvbm5hbGl06XMgZGUgYmFzZSA6CisgLSBjYXBhY2l06SDgIHJlY2V2b2lyIGRlcyBjb25uZXhpb25zIChmcm9udGVuZCkKKyAtIGNhcGFjaXTpIOAgZmlsdHJlciBsZXMgcmVxdep0ZXMgZW50cmFudGVzCisgLSBjYXBhY2l06SDgIGJyYW5jaGVyIHZlcnMgdW4gYmFja2VuZCBvdSB1biBlbnNlbWJsZSBkZSBy6GdsZXMgZGUgcmVxdep0ZXMKKyAtIGNhcGFjaXTpIOAgZmlsdHJlciBsZXMgcmVxdep0ZXMgc29ydGFudGVzCisgLSBjYXBhY2l06SDgIGZpbHRyZXIgbGVzIHLpcG9uc2VzIGVudHJhbnRlcworIC0gY2FwYWNpdOkg4CBicmFuY2hlciB2ZXJzIHVuIGF1dHJlIGVuc2VtYmxlIGRlIHLoZ2xlcyBkZSBy6XBvbnNlcworIC0gY2FwYWNpdOkg4CBmaWx0cmVyIGxhIHLpcG9uc2Ugc29ydGFudGUKKyAtIGNhcGFjaXTpIOAgZ+lyZXIgZGVzIHNlcnZldXJzIChiYWNrZW5kKQorCitSZW1hcnF1ZQorLS0tLS0tLS0KKyAtIG9uIGEgc291dmVudCBiZXNvaW4gZGUgcG91dm9pciBhcHBsaXF1ZXIgdW4gcGV0aXQgdHJhaXRlbWVudCBzdXIgdW4gZW5zZW1ibGUKKyAgIGhvc3QvdXJpL2F1dHJlLiBMZSBwZXRpdCB0cmFpdGVtZW50IHBldXQgY29uc2lzdGVyIGVuIHF1ZWxxdWVzIGZpbHRyZXMgYWluc2kKKyAgIHF1J3VuZSBy6eljcml0dXJlIGR1IGNvdXBsZSAoaG9zdCx1cmkpLgorCisKK1Byb3Bvc2l0aW9uIDogQUNMCisKK1N5bnRheGUgOgorLS0tLS0tLS0tCisKKyAgIGFjbCA8bmFtZT4gPHdoYXQ+IDxvcGVyYXRvcj4gPHZhbHVlPiAuLi4KKworQ2VjaSBjcullcmEgdW5lIGFjbCBy6WbpcmVuY+llIHNvdXMgbGUgbm9tIDxuYW1lPiBxdWkgc2VyYSB2YWxpZOllIHNpCitsJ2FwcGxpY2F0aW9uIGQnYXUgbW9pbnMgdW5lIGRlcyB2YWxldXJzIDx2YWx1ZT4gYXZlYyBsJ29w6XJhdGV1ciA8b3BlcmF0b3I+CitzdXIgbGUgc3VqZXQgPHdoYXQ+IGVzdCB2YWxpZOllLgorCitPcOlyYXRldXJzIDoKKy0tLS0tLS0tLS0tLQorCitUb3Vqb3VycyAyIGNhcmFjdOhyZXMgOgorCisgIFs9IV1bfj0qXiUvLl0KKworUHJlbWllciBjYXJhY3TocmUgOiAgCisgICAnPScgOiBPSyBzaSB0ZXN0IHZhbGlkZQorICAgJyEnIDogT0sgc2kgdGVzdCDpY2hvdekuCisKK1NlY29uZCBjYXJhY3TocmUgOgorICAgJ34nIDogY29tcGFyZSBhdmVjIHVuZSByZWdleAorICAgJz0nIDogY29tcGFyZSBjaGHubmUg4CBjaGHubmUKKyAgICcqJyA6IGNvbXBhcmUgbGEgZmluIGRlIGxhIGNoYe5uZSAoZXg6ID0qICIubXlkb21haW4uY29tIikKKyAgICdeJyA6IGNvbXBhcmUgbGUgZOlidXQgZGUgbGEgY2hh7m5lIChleDogPV4gIi9pbWFnZXMvIikKKyAgICclJyA6IHJlY2hlcmNoZSB1bmUgc291cy1jaGHubmUKKyAgICcvJyA6IGNvbXBhcmUgYXZlYyB1biBtb3QgZW50aWVyIGVuIGFjY2VwdGFudCBsZSAnLycgY29tbWUgZOlsaW1pdGV1cgorICAgJy4nIDogY29tcGFyZSBhdmVjIHVuIG1vdCBlbnRpZXIgZW4gYWNjZXB0YW50IGVsICcuJyBjb21tZSBk6WxpbWl0ZXVyCisKK0Vuc3VpdGUgb24gZXjpY3V0ZSB1bmUgYWN0aW9uIGRlIG1hbmnocmUgY29uZGl0aW9ubmVsbGUgc2kgbCdlbnNlbWJsZSBkZXMgQUNMcworbWVudGlvbm7pZXMgc29udCB2YWxpZOllcyAob3UgaW52YWxpZOllcyBwb3VyIGNlbGxlcyBwculj6WTpZXMgZCd1biAiISIpIDoKKworICAgPHdoYXQ+IDx3aGVyZT4gPGFjdGlvbj4gb24gWyFdPGFjbG5hbWU+IC4uLgorCisKK0V4ZW1wbGUgOgorLS0tLS0tLS0tCisKKyAgIGFjbCB3d3dfcHViIGhvc3QgPS4gd3d3IHd3dzAxIGRldiBwcmVwcm9kCisgICBhY2wgaW1naG9zdCBob3N0ID0uIGltYWdlcworICAgYWNsIGltZ2RpciAgIHVyaSA9LyBpbWcKKyAgIGFjbCBpbWFnZWRpciB1cmkgPS8gaW1hZ2VzCisgICBhY2wgbXNpZSBoKHVzZXItYWdlbnQpID0lICJNU0lFIgorCisgICBzZXRfaG9zdCAgImltYWdlcyIgICAgICAgb24gd3d3X3B1YiBpbWdkaXIgCisgICByZW1hcF91cmkgIi9pbWciICAgICIvIiAgb24gd3d3X3B1YiBpbWdkaXIKKyAgIHJlbWFwX3VyaSAiL2ltYWdlcyIgIi8iICBvbiB3d3dfcHViIGltYWdlZGlyCisgICBzZXRiZSBpbWFnZXMgICAgICAgICAgICAgb24gaW1naG9zdAorICAgcmVxZGVsICJDb29raWUiICAgICAgICAgIG9uIGFsbAorCisKKworQWN0aW9ucyBwb3NzaWJsZXMgOgorCisgICByZXEgIHtpbnxvdXR9IHthcHBlbmR8ZGVsZXRlfHJlbXxhZGR8c2V0fHJlcHxtYXB1cml8cmV3cml0ZXxyZXFsaW5lfGRlbnl8YWxsb3d8c2V0YmV8dGFycGl0fQorICAgcmVzcCB7aW58b3V0fSB7YXBwZW5kfGRlbGV0ZXxyZW18YWRkfHNldHxyZXB8bWFwbG9jfHJld3JpdGV8c3RzbGluZXxkZW55fGFsbG93fQorCisgICByZXEgaW4gYXBwZW5kIDxsaW5lPgorICAgcmVxIGluIGRlbGV0ZSA8bGluZV9yZWdleD4KKyAgIHJlcSBpbiByZW0gPGhlYWRlcj4KKyAgIHJlcSBpbiBhZGQgPGhlYWRlcj4gPG5ld192YWx1ZT4KKyAgIHJlcSBpbiBzZXQgPGhlYWRlcj4gPG5ld192YWx1ZT4KKyAgIHJlcSBpbiByZXAgPGhlYWRlcj4gPG9sZF92YWx1ZT4gPG5ld192YWx1ZT4KKyAgIHJlcSBpbiBtYXB1cmkgIDxvbGRfdXJpX3ByZWZpeD4gPG5ld191cmlfcHJlZml4PgorICAgcmVxIGluIHJld3JpdGUgPG9sZF91cmlfcmVnZXg+ICA8bmV3X3VyaT4KKyAgIHJlcSBpbiByZXFsaW5lIDxvbGRfcmVxX3JlZ2V4PiAgPG5ld19yZXE+CisgICByZXEgaW4gZGVueQorICAgcmVxIGluIGFsbG93CisgICByZXEgaW4gdGFycGl0CisgICByZXEgaW4gc2V0YmUgPGJhY2tlbmQ+CisKKyAgIHJlc3Agb3V0IG1hcGxvYyA8b2xkX2xvY2F0aW9uX3ByZWZpeD4gPG5ld19sb2NfcHJlZml4PgorICAgcmVzcCBvdXQgc3RzbGluZSA8b2xkX3N0c19yZWdleD4gPG5ld19zdHNfcmVnZXg+CisKK0xlcyBjaGHubmVzIGRvaXZlbnQg6nRyZSBk6WxpbWl06WVzIHBhciB1biBt6m1lIGNhcmFjdOhyZSBhdSBk6WJ1dCBldCDgIGxhIGZpbiwKK3F1aSBkb2l0IOp0cmUg6WNoYXBw6SBzJ2lsIGVzdCBwculzZW50IGRhbnMgbGEgY2hh7m5lLiBUb3V0IGNlIHF1aSBzZSB0cm91dmUKK2VudHJlIGxlIGNhcmFjdOhyZSBkZSBmaW4gZXQgbGVzIHByZW1pZXJzIGVzcGFjZSBlc3QgY29uc2lk6XLpIGNvbW1lIGRlcworb3B0aW9ucyBwYXNz6WVzIGF1IHRyYWl0ZW1lbnQuIFBhciBleGVtcGxlIDoKKworICAgcmVxIGluIHJlcCBob3N0IC93d3cvaSAvd3d3LworICAgcmVxIGluIHJlcCBjb25uZWN0aW9uIC9rZWVwLWFsaXZlL2kgImNsb3NlIgorCitJbCBzZXJhaXQgcHJhdGlxdWUgZGUgcG91dm9pciBlZmZlY3R1ZXIgdW4gcmVtYXAgZW4gbeptZSB0ZW1wcyBxdSd1biBzZXRiZS4KKworQ2FwdHVyZXM6IGxlcyBz6XBhcmVyIGVuIGluL291dC4gTGVzIHJlbmRyZSBjb25kaXRpb25uZWxsZXMgPwpkaWZmIC0tZ2l0IGEvZG9jL2ludGVybmFscy9oZWFkZXItdHJlZS50eHQgYi9kb2MvaW50ZXJuYWxzL2hlYWRlci10cmVlLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45YTk3MzYxCi0tLSAvZGV2L251bGwKKysrIGIvZG9jL2ludGVybmFscy9oZWFkZXItdHJlZS50eHQKQEAgLTAsMCArMSwxMjQgQEAKKzIwMDcvMDMvMzAgLSBIZWFkZXIgc3RvcmFnZSBpbiB0cmVlcworCitUaGlzIGRvY3VtZW50YXRpb24gZGVzY3JpYmVzIGhvdyB0byBzdG9yZSBoZWFkZXJzIGluIHJhZGl4IHRyZWVzLCBwcm92aWRpbmcKK2Zhc3QgYWNjZXNzIHRvIGFueSBrbm93biBwb3NpdGlvbiwgd2hpbGUgcmV0YWluaW5nIHRoZSBhYmlsaXR5IHRvIGdyb3cvcmVkdWNlCithbnkgYXJiaXRyYXJ5IGhlYWRlciB3aXRob3V0IGhhdmluZyB0byByZWNvbXB1dGUgYWxsIHBvc2l0aW9ucy4KKworUHJpbmNpcGxlIDoKKyAgV2UgaGF2ZSBhIHJhZGl4IHRyZWUgcmVwcmVzZW50ZWQgaW4gYW4gaW50ZWdlciBhcnJheSwgd2hpY2ggcmVwcmVzZW50cyB0aGUKKyAgdG90YWwgbnVtYmVyIG9mIGJ5dGVzIHVzZWQgYnkgYWxsIGhlYWRlcnMgd2hvc2UgcG9zaXRpb24gaXMgYmVsb3cgaXQuIFRoaXMKKyAgZW5zdXJlcyB0aGF0IHdlIGNhbiBjb21wdXRlIGFueSBoZWFkZXIncyBwb3NpdGlvbiBpbiBPKGxvZyhOKSkgd2hlcmUgTiBpcworICB0aGUgbnVtYmVyIG9mIGhlYWRlcnMuCisKK0V4YW1wbGUgd2l0aCBOPTE2IDoKKworICAgKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKworICAgfCAgICAgICAgICAgICAgICAgICAgICAgfAorICAgKy0tLS0tLS0tLS0tKyAgICAgICAgICAgKy0tLS0tLS0tLS0tKworICAgfCAgICAgICAgICAgfCAgICAgICAgICAgfCAgICAgICAgICAgfAorICAgKy0tLS0tKyAgICAgKy0tLS0tKyAgICAgKy0tLS0tKyAgICAgKy0tLS0tKworICAgfCAgICAgfCAgICAgfCAgICAgfCAgICAgfCAgICAgfCAgICAgfCAgICAgfAorICAgKy0tKyAgKy0tKyAgKy0tKyAgKy0tKyAgKy0tKyAgKy0tKyAgKy0tKyAgKy0tKworICAgfCAgfCAgfCAgfCAgfCAgfCAgfCAgfCAgfCAgfCAgfCAgfCAgfCAgfCAgfCAgfAorCisgICAwICAxICAyICAzICA0ICA1ICA2ICA3ICA4ICA5ICBBICBCICBDICBEICBFICBGCisKKyAgIFRvIHJlYWNoIGhlYWRlciA2LCB3ZSBoYXZlIHRvIGNvbXB1dGUgaGRyWzBdK2hkcls0XStoZHJbNl0KKworICAgV2l0aCB0aGlzIG1ldGhvZCwgaXQgYmVjb21lcyBlYXN5IHRvIGdyb3cgYW55IGhlYWRlciBhbmQgdXBkYXRlIHRoZSBhcnJheS4KKyAgIFRvIGFjaGlldmUgdGhpcywgd2UgaGF2ZSB0byByZXBsYWNlIG9uZSBhZnRlciB0aGUgb3RoZXIgYWxsIGJpdHMgb24gdGhlCisgICByaWdodCB3aXRoIG9uZSAxIGZvbGxvd2VkIGJ5IHplcm9lcywgYW5kIHVwZGF0ZSB0aGUgcG9zaXRpb24gaWYgaXQncyBoaWdoZXIKKyAgIHRoYW4gY3VycmVudCBwb3NpdGlvbiwgYW5kIHN0b3Agd2hlbiBpdCdzIGFib3ZlIG51bWJlciBvZiBzdG9yZWQgaGVhZGVycy4KKworICAgRm9yIGluc3RhbmNlLCBpZiB3ZSB3YW50IHRvIGdyb3cgaGRyWzZdLCB3ZSBwcm9jZWVkIGxpa2UgdGhpcyA6CisKKyAgIDYgPSAwMTEwIChCSU4pCisKKyAgIExldCdzIGNvbnNpZGVyIHRoZSB2YWx1ZXMgdG8gdXBkYXRlIDoKKworICAgKGJpdCAwKSA6ICgwMTEwICYgfjAwMDEpIHwgMDAwMSA9IDAxMTEgPSA3ID4gIDYgPT4gdXBkYXRlCisgICAoYml0IDEpIDogKDAxMTAgJiB+MDAxMSkgfCAwMDEwID0gMDExMCA9IDYgPD0gNiA9PiBsZWF2ZSBpdAorICAgKGJpdCAyKSA6ICgwMTEwICYgfjAxMTEpIHwgMDEwMCA9IDAxMDAgPSA0IDw9IDYgPT4gbGVhdmUgaXQKKyAgIChiaXQgNCkgOiAoMDExMCAmIH4xMTExKSB8IDEwMDAgPSAxMDAwID0gOCA+ICA2ID0+IHVwZGF0ZQorICAgKGJpdCA1KSA6IGxhcmdlciB0aGFuIGFycmF5IHNpemUsIHN0b3AuCisKKworSXQncyBlYXN5IHRvIHdhbGsgdGhyb3VnaCB0aGUgdHJlZSB0b28uIFdlIG9ubHkgaGF2ZSBvbmUgaXRlcmF0aW9uIHBlciBiaXQKK2NoYW5naW5nIGZyb20gWCB0byB0aGUgYW5jZXN0b3IsIGFuZCBvbmUgcGVyIGJpdCBmcm9tIHRoZSBhbmNlc3RvciB0byBZLgorVGhlIGFuY2VzdG9yIGlzIGZvdW5kIHdoaWxlIHdhbGtpbmcuIFRvIGdvIGZyb20gWCB0byBZIDoKKworICAgcG9zID0gcG9zKFgpCisKKyAgIHdoaWxlIChZICE9IFgpIHsKKyAgICAgaWYgKFkgPiBYKSB7CisgICAgICAgLy8gd2FsayBmcm9tIFkgdG8gYW5jZXN0b3IKKyAgICAgICBwb3MgKz0gaGRyW1ldCisgICAgICAgWSAmPSAoWSAtIDEpCisgICAgIH0gZWxzZSB7CisgICAgICAgLy8gd2FsayBmcm9tIFggdG8gYW5jZXN0b3IKKyAgICAgICBwb3MgLT0gaGRyW1hdCisgICAgICAgWCAmPSAoWCAtIDEpCisgICAgIH0KKyAgIH0KKworSG93ZXZlciwgaXQgaXMgbm90IHRyaXZpYWwgYW55bW9yZSB0byBsaW5lYXJseSB3YWxrIHRoZSB0cmVlLiBXZSBoYXZlIHRvIG1vdmUKK2Zyb20gYSBrbm93biBwbGFjZSB0byBhbm90aGVyIGtub3duIHBsYWNlLCBidXQgYSBqdW1wIHRvIG5leHQgZW50cnkgY29zdHMgdGhlCitzYW1lIGFzIGEganVtcCB0byBhIHJhbmRvbSBwbGFjZS4KKworT3RoZXIgY2F2ZWF0cyA6CisgIC0gaXQgaXMgbm90IHBvc3NpYmxlIHRvIHJlbW92ZSBhIGhlYWRlciwgaXQgaXMgb25seSBwb3NzaWJsZSB0byBlbXB0eSBpdC4KKyAgLSBpdCBpcyBub3QgcG9zc2libGUgdG8gaW5zZXJ0IGEgaGVhZGVyLCBhcyB0aGF0IHdvdWxkIGltcGx5IGEgcmVudW1iZXJpbmcuCisgID0+IHRoaXMgbWVhbnMgdGhhdCBhICJkZWZyYWciIGZ1bmN0aW9uIGlzIHJlcXVpcmVkLiBIZWFkZXJzIHNob3VsZCBwcmVmZXJhYmx5CisgICAgIGJlIGFkZGVkLCB0aGVuIHNob3VsZCBiZSBzdHVmZmVkIG9uIHRvcCBvZiBkZXN0cm95ZWQgb25lcywgdGhlbiBvbmx5CisgICAgIGluc2VydGVkIGlmIGFic29sdXRlbHkgcmVxdWlyZWQuCisKKworV2hlbiB3ZSBoYXZlIHRoaXMsIHdlIGNhbiB0aGVuIGZvY3VzIG9uIGEgMzItYml0IGhlYWRlciBkZXNjcmlwdG9yIHdoaWNoIHdvdWxkCitsb29rIGxpa2UgdGhpcyA6CisKK3sKKyAgdW5zaWduZWQgbGluZV9sZW4gOjEzOyAvKiB0b3RhbCBsaW5lIGxlbmd0aCwgaW5jbHVkaW5nIENSTEYgKi8KKyAgdW5zaWduZWQgbmFtZV9sZW4gIDo2OyAvKiBoZWFkZXIgbmFtZSBsZW5ndGgsIG1heCA2MyBjaGFycyAqLworICB1bnNpZ25lZCBzcDEgICAgICAgOjU7IC8qIG1heCBzcGFjZXMgYmVmb3JlIHZhbHVlIDogMzEgKi8KKyAgdW5zaWduZWQgc3AyICAgICAgIDo4OyAvKiBtYXggc3BhY2VzIGFmdGVyIHZhbHVlIDogMjU1ICovCit9CisKK0V4YW1wbGUgOgorCisgIENvbm5lY3Rpb246ICAgICAgY2xvc2UgICAgICAgICAgIFxyXG4KKyAgPC0tLS0tLS0tLSstLS0tLSstLS0tLSstLS0tLS0tLS0tLS0tPiBsaW5lX2xlbgorICA8LS0tLS0tLS0+fCAgICAgfCAgICAgfCAgICAgICAgICAgICAgIG5hbWVfbGVuCisgICAgICAgICAgICA8LS0tLS0+ICAgICB8ICAgICAgICAgICAgICAgc3AxCisgICAgICAgICAgICAgICAgICAgICAgICA8LS0tLS0tLS0tLS0tLT4gc3AyCitSZW06CisgIC0gaWYgdGhlcmUgYXJlIG1vcmUgdGhhbiAzMSBzcGFjZXMgYmVmb3JlIHRoZSB2YWx1ZSwgdGhlIGJ1ZmZlciB3aWxsIGhhdmUgdG8KKyAgICBiZSBtb3ZlZCBiZWZvcmUgYmVpbmcgcmVnaXN0ZXJlZAorCisgIC0gaWYgdGhlcmUgYXJlIG1vcmUgdGhhbiAyNTUgIHNwYWNlcyBhZnRlciB0aGUgdmFsdWUsIHRoZSBidWZmZXIgd2lsbCBoYXZlIHRvCisgICAgYmUgbW92ZWQgYmVmb3JlIGJlaW5nIHJlZ2lzdGVyZWQKKworICAtIHdlIGNhbiB1c2UgdGhlIGVtcHR5IGhlYWRlciBuYW1lIGFzIGFuIGluZGljYXRvciBmb3IgYSBkZWxldGVkIGhlYWRlcgorCisgIC0gaXQgd291bGQgYmUgd2lzZSB0byBmb3JtYXQgYSBuZXcgcmVxdWVzdCBiZWZvcmUgc2VuZGluZyBsb3RzIG9mIHJhbmRvbQorICAgIHNwYWNlcyB0byB0aGUgc2VydmVycy4KKworICAtIG5vcm1hbCBjbGllbnRzIGRvIG5vdCBzZW5kIHN1Y2ggY3JhcCwgc28gdGhvc2Ugb3BlcmF0aW9ucyAqbWF5KiByZWFzb25hYmx5CisgICAgYmUgbW9yZSBleHBlbnNpdmUgdGhhbiB0aGUgcmVzdCBwcm92aWRlZCB0aGF0IG90aGVyIG9uZXMgYXJlIHZlcnkgZmFzdC4KKworSXQgd291bGQgYmUgaGFuZHkgdG8gaGF2ZSB0aGUgZm9sbG93aW5nIG1hY3JvcyA6CisKKyAgaGRyX2VvbihoZHIpICA9PiBlbmQgb2YgbmFtZQorICBoZHJfc292KGhkcikgID0+IHN0YXJ0IG9mIHZhbHVlCisgIGhkcl9lb2YoaGRyKSAgPT4gZW5kIG9mIHZhbHVlCisgIGhkcl92bGVuKGhkcikgPT4gbGVuZ3RoIG9mIHZhbHVlCisgIGhkcl9obGVuKGhkcikgPT4gdG90YWwgaGVhZGVyIGxlbmd0aAorCisKK0EgNDgtYml0IGVuY29kaW5nIHdvdWxkIGxvb2sgbGlrZSB0aGlzIDoKKworICBDb25uZWN0aW9uOiAgICAgIGNsb3NlICAgICAgICAgICBcclxuCisgIDwtLS0tLS0tLS0rLS0tLS0tKy0tLSstLS0tLS0tLS0tLS0tLT4gZW9oID0gMTYgYml0cworICA8LS0tLS0tLS0+fCAgICAgIHwgICB8ICAgICAgICAgICAgICAgIGVvbiA9IDggYml0cworICA8LS0tLS0tLS0tLS0tLS0tPnwgICB8ICAgICAgICAgICAgICAgIHNvdiA9IDggYml0cworICAgICAgICAgICAgICAgICAgIDwtLS0+ICAgICAgICAgICAgICAgIHZsZW4gPSAxNiBiaXRzCisKZGlmZiAtLWdpdCBhL2RvYy9pbnRlcm5hbHMvaHR0cC1kb2NzLnR4dCBiL2RvYy9pbnRlcm5hbHMvaHR0cC1kb2NzLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40ZWQyNDgwCi0tLSAvZGV2L251bGwKKysrIGIvZG9jL2ludGVybmFscy9odHRwLWRvY3MudHh0CkBAIC0wLDAgKzEsNSBAQAorTWFueSBpbnRlcmVzdGluZyBSRkMgYW5kIGRyYWZ0cyBsaW5rZWQgdG8gZnJvbSB0aGlzIHNpdGUgOgorCisgIGh0dHA6Ly93d3cud2ViLWNhY2hlLmNvbS9Xcml0aW5ncy9wcm90b2NvbHMtc3RhbmRhcmRzLmh0bWwKKworCg==