From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 From: Rex Dieter To: git-commits@fedoraproject.org Subject: [rpms/amarok] epel10: amarok-2.9.0 Date: Mon, 06 Jul 2026 18:05:40 GMT Message-ID: <178336114002.1.632574846647806038.rpms-amarok-fb086649336f@fedoraproject.org> List-ID: X-Git-Repo: rpms/amarok X-Git-Branch: epel10 X-Git-Rev: fb086649336fe14e0783d6ff42f5383df1e5eadf QSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KClJlcG8gICA6IHJwbXMvYW1hcm9rCkJyYW5j aCA6IGVwZWwxMApDb21taXQgOiBmYjA4NjY0OTMzNmZlMTRlMDc4M2Q2ZmY0MmY1MzgzZGYxZTVl YWRmCkF1dGhvciA6IFJleCBEaWV0ZXIgPHJkaWV0ZXJAZ21haWwuY29tPgpEYXRlICAgOiAyMDE4 LTAzLTA3VDE0OjM5OjI1LTA2OjAwClN0YXRzICA6ICs4Ly0xODc5IGluIDI3IGZpbGUocykKVVJM ICAgIDogaHR0cHM6Ly9zcmMuZmVkb3JhcHJvamVjdC5vcmcvcnBtcy9hbWFyb2svYy9mYjA4NjY0 OTMzNmZlMTRlMDc4M2Q2ZmY0MmY1MzgzZGYxZTVlYWRmP2JyYW5jaD1lcGVsMTAKCkxvZzoKYW1h cm9rLTIuOS4wCgotLS0KZGlmZiAtLWdpdCBhLy5naXRpZ25vcmUgYi8uZ2l0aWdub3JlCmluZGV4 IGI2NGM3ODcuLjAzOWM4N2MgMTAwNjQ0Ci0tLSBhLy5naXRpZ25vcmUKKysrIGIvLmdpdGlnbm9y ZQpAQCAtMSwyICsxLDMgQEAKIC9hbWFyb2stMi44LjAudGFyLmJ6MgogL2FtYXJvay0yLjguOTAu dGFyLnh6CisvYW1hcm9rLTIuOS4wLnRhci54egoKZGlmZiAtLWdpdCBhLzAwMDMtRml4LVRhZ0xp Yi12ZXJzaW9uLWNoZWNrLnBhdGNoIGIvMDAwMy1GaXgtVGFnTGliLXZlcnNpb24tY2hlY2sucGF0 Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDU1MGU4NDIuLjAwMDAwMDAKLS0tIGEv MDAwMy1GaXgtVGFnTGliLXZlcnNpb24tY2hlY2sucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSw0 MyArMCwwIEBACi1Gcm9tIGZlYzg4MTdjNTMwY2U0MmI2NDg1ZmRhYmZmNjA1MTc4NGI4ZDk5MDQg TW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBPbWFyIFBsdW1tZXIgPG9tYXJwbHVtbWVy QGltZXJnZXRlY2hub2xvZ2llcy5jb20+Ci1EYXRlOiBGcmksIDcgQXVnIDIwMTUgMDA6MjQ6Mjcg KzAyMDAKLVN1YmplY3Q6IFtQQVRDSCAwMy8xNl0gRml4IFRhZ0xpYiB2ZXJzaW9uIGNoZWNrLgot Ci1UaGUgdmVyc2lvbiBjaGVjayBjb21wYXJlZCB2ZXJzaW9uIHN0cmluZ3MgbGV4aWNvZ3JhcGhp Y2FsbHksIHNvICIxLjciCi0odGhlIG1pbiB2ZXJzaW9uKSBjb21wYXJlZCBhcyBncmVhdGVyIHRo YW4gIjEuMTAuMCIuCi0KLUJVRzogMzUxMDEzCi1SRVZJRVc6IDEyNDYzOQotLS0tCi0gY21ha2Uv bW9kdWxlcy9GaW5kVGFnbGliLmNtYWtlIHwgNiArKystLS0KLSAxIGZpbGUgY2hhbmdlZCwgMyBp bnNlcnRpb25zKCspLCAzIGRlbGV0aW9ucygtKQotCi1kaWZmIC0tZ2l0IGEvY21ha2UvbW9kdWxl cy9GaW5kVGFnbGliLmNtYWtlIGIvY21ha2UvbW9kdWxlcy9GaW5kVGFnbGliLmNtYWtlCi1pbmRl eCA3NmI4M2FjLi5mNDg1YTQyIDEwMDY0NAotLS0tIGEvY21ha2UvbW9kdWxlcy9GaW5kVGFnbGli LmNtYWtlCi0rKysgYi9jbWFrZS9tb2R1bGVzL0ZpbmRUYWdsaWIuY21ha2UKLUBAIC0yOSwxMCAr MjksMTAgQEAgaWYoVEFHTElCQ09ORklHX0VYRUNVVEFCTEUpCi0gCi0gICBleGVjX3Byb2dyYW0o JHtUQUdMSUJDT05GSUdfRVhFQ1VUQUJMRX0gQVJHUyAtLXZlcnNpb24gUkVUVVJOX1ZBTFVFIF9y ZXR1cm5fVkFMVUUgT1VUUFVUX1ZBUklBQkxFIFRBR0xJQl9WRVJTSU9OKQotIAotLSAgaWYoVEFH TElCX1ZFUlNJT04gU1RSTEVTUyAiJHtUQUdMSUJfTUlOX1ZFUlNJT059IikKLSsgIGlmKCIke1RB R0xJQl9NSU5fVkVSU0lPTn0iIFZFUlNJT05fR1JFQVRFUiBUQUdMSUJfVkVSU0lPTikKLSAgICAg IG1lc3NhZ2UoU1RBVFVTICJUYWdMaWIgdmVyc2lvbiB0b28gb2xkOiB2ZXJzaW9uIHNlYXJjaGVk IDoke1RBR0xJQl9NSU5fVkVSU0lPTn0sIGZvdW5kICR7VEFHTElCX1ZFUlNJT059IikKLSAgICAg IHNldChUQUdMSUJfRk9VTkQgRkFMU0UpCi0tICBlbHNlKFRBR0xJQl9WRVJTSU9OIFNUUkxFU1Mg IiR7VEFHTElCX01JTl9WRVJTSU9OfSIpCi0rICBlbHNlKCIke1RBR0xJQl9NSU5fVkVSU0lPTn0i IFZFUlNJT05fR1JFQVRFUiBUQUdMSUJfVkVSU0lPTikKLSAKLSAgICAgIGV4ZWNfcHJvZ3JhbSgk e1RBR0xJQkNPTkZJR19FWEVDVVRBQkxFfSBBUkdTIC0tbGlicyBSRVRVUk5fVkFMVUUgX3JldHVy bl9WQUxVRSBPVVRQVVRfVkFSSUFCTEUgVEFHTElCX0xJQlJBUklFUykKLSAKLUBAIC00Miw3ICs0 Miw3IEBAIGlmKFRBR0xJQkNPTkZJR19FWEVDVVRBQkxFKQotICAgICAgICAgc2V0KFRBR0xJQl9G T1VORCBUUlVFKQotICAgICAgZW5kaWYoVEFHTElCX0xJQlJBUklFUyBBTkQgVEFHTElCX0NGTEFH UykKLSAgICAgIHN0cmluZyhSRUdFWCBSRVBMQUNFICIgKi1JIiAiOyIgVEFHTElCX0lOQ0xVREVT ICIke1RBR0xJQl9DRkxBR1N9IikKLS0gIGVuZGlmKFRBR0xJQl9WRVJTSU9OIFNUUkxFU1MgIiR7 VEFHTElCX01JTl9WRVJTSU9OfSIpIAotKyAgZW5kaWYoIiR7VEFHTElCX01JTl9WRVJTSU9OfSIg VkVSU0lPTl9HUkVBVEVSIFRBR0xJQl9WRVJTSU9OKQotICAgbWFya19hc19hZHZhbmNlZChUQUdM SUJfQ0ZMQUdTIFRBR0xJQl9MSUJSQVJJRVMgVEFHTElCX0lOQ0xVREVTKQotIAotIGVsc2UoVEFH TElCQ09ORklHX0VYRUNVVEFCTEUpCi0tLSAKLTIuNy40Ci0KCmRpZmYgLS1naXQgYS8wMDA5LWZp eC1hcHBhcmVudC1vYnZpb3VzLWVycm9yLXR5cG8taW4tZmluZF9saWJyYXJ5LU1ZU1EucGF0Y2gg Yi8wMDA5LWZpeC1hcHBhcmVudC1vYnZpb3VzLWVycm9yLXR5cG8taW4tZmluZF9saWJyYXJ5LU1Z U1EucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGY2MzgxNWQuLjAwMDAwMDAK LS0tIGEvMDAwOS1maXgtYXBwYXJlbnQtb2J2aW91cy1lcnJvci10eXBvLWluLWZpbmRfbGlicmFy eS1NWVNRLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsNDIgKzAsMCBAQAotRnJvbSA3NDViMmUx OGM1YjU4Y2ZhYmNiZjZlNzg2MzU3MjEyMmQ2NzM2OTJlIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAw MQotRnJvbTogUmV4IERpZXRlciA8cmRpZXRlckBtYXRoLnVubC5lZHU+Ci1EYXRlOiBGcmksIDEx IERlYyAyMDE1IDA3OjEyOjA5IC0wNjAwCi1TdWJqZWN0OiBbUEFUQ0ggMDkvMTZdIGZpeCBhcHBh cmVudC9vYnZpb3VzIGVycm9yICh0eXBvPykgaW4KLSBmaW5kX2xpYnJhcnkoTVlTUUxfTElCUkFS SUVTLi4uCi0KLS0tLQotIGNtYWtlL21vZHVsZXMvRmluZE15U1FMQW1hcm9rLmNtYWtlIHwgMTgg KysrKysrKysrLS0tLS0tLS0tCi0gMSBmaWxlIGNoYW5nZWQsIDkgaW5zZXJ0aW9ucygrKSwgOSBk ZWxldGlvbnMoLSkKLQotZGlmZiAtLWdpdCBhL2NtYWtlL21vZHVsZXMvRmluZE15U1FMQW1hcm9r LmNtYWtlIGIvY21ha2UvbW9kdWxlcy9GaW5kTXlTUUxBbWFyb2suY21ha2UKLWluZGV4IGRmZmNl MzEuLjI3NTAwNWMgMTAwNjQ0Ci0tLS0gYS9jbWFrZS9tb2R1bGVzL0ZpbmRNeVNRTEFtYXJvay5j bWFrZQotKysrIGIvY21ha2UvbW9kdWxlcy9GaW5kTXlTUUxBbWFyb2suY21ha2UKLUBAIC02Mywx NSArNjMsMTUgQEAgZWxzZShNWVNRTENPTkZJR19FWEVDVVRBQkxFKQotICAgICAgIFBBVEhTCi0g ICAgICAgICB+L3Vzci9saWIvbXlzcWwKLSAgICAgICAgIC9vcHQvbXlzcWwvbXlzcWwvbGliIAot LSAgICAgICAgdXNyL215c3FsL2xpYi9teXNxbAotLSAgICAgICAgb3B0L2xvY2FsL2xpYi9teXNx bDUvbXlzcWwKLS0gICAgICAgIG9wdC9teXNxbGUvbGliL215c3FsCi0tICAgICAgICB1c3IvbGli L215c3FsCi0tICAgICAgICB1c3IvbGliNjQvbXlzcWwKLS0gICAgICAgIHVzci9saWI2NAotLSAg ICAgICAgdXNyL2xvY2FsL2xpYi9teXNxbAotLSAgICAgICAgb3B0L2xvY2FsL2xpYi9teXNxbAot LSAgICAgICAgb3B0L3BvcnRzL2xpYi9teXNxbDUvbXlzcWwKLSsgICAgICAgIC91c3IvbXlzcWwv bGliL215c3FsCi0rICAgICAgICAvb3B0L2xvY2FsL2xpYi9teXNxbDUvbXlzcWwKLSsgICAgICAg IC9vcHQvbXlzcWxlL2xpYi9teXNxbAotKyAgICAgICAgL3Vzci9saWIvbXlzcWwKLSsgICAgICAg IC91c3IvbGliNjQvbXlzcWwKLSsgICAgICAgIC91c3IvbGliNjQKLSsgICAgICAgIC91c3IvbG9j YWwvbGliL215c3FsCi0rICAgICAgICAvb3B0L2xvY2FsL2xpYi9teXNxbAotKyAgICAgICAgL29w dC9wb3J0cy9saWIvbXlzcWw1L215c3FsCi0gICAgICkKLSAKLSAgICAgZmluZF9saWJyYXJ5KE1Z U1FMX0VNQkVEREVEX0xJQlJBUklFUyBOQU1FUyBteXNxbGRfcGljIG15c3FsZCBsaWJteXNxbGQK LS0tIAotMi43LjQKLQoKZGlmZiAtLWdpdCBhLzAwMTAtRml4LXRhYnMtYXBwbGV0LnBhdGNoIGIv MDAxMC1GaXgtdGFicy1hcHBsZXQucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4 IGQ1NGUzMGQuLjAwMDAwMDAKLS0tIGEvMDAxMC1GaXgtdGFicy1hcHBsZXQucGF0Y2gKKysrIC9k ZXYvbnVsbApAQCAtMSwyOCArMCwwIEBACi1Gcm9tIGUwMTdlN2M1MDFkNDk2NmQ5MjY1M2U0ODQ1 YTRmNWMzNDg1NDdiODIgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBNeXJpYW0gU2No d2VpbmdydWJlciA8bXlyaWFtQGtkZS5vcmc+Ci1EYXRlOiBTdW4sIDI0IEphbiAyMDE2IDEzOjU4 OjI0ICswMTAwCi1TdWJqZWN0OiBbUEFUQ0ggMTAvMTZdIEZpeCB0YWJzIGFwcGxldCBDaGFuZ2Ug dG8gaHR0cHMgdG8gYWxsb3cgZmV0Y2hpbmcKLSBndWl0YXIgdGFicyBhZ2FpbgotCi1CVUc6IDM1 ODQwOAotRklYRUQtSU46IDIuOQotLS0tCi0gc3JjL2NvbnRleHQvZW5naW5lcy90YWJzL1RhYnNF bmdpbmUuY3BwIHwgMiArLQotIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMSBkZWxl dGlvbigtKQotCi1kaWZmIC0tZ2l0IGEvc3JjL2NvbnRleHQvZW5naW5lcy90YWJzL1RhYnNFbmdp bmUuY3BwIGIvc3JjL2NvbnRleHQvZW5naW5lcy90YWJzL1RhYnNFbmdpbmUuY3BwCi1pbmRleCAy NGE4OWRmLi45YTZmMDQ3IDEwMDY0NAotLS0tIGEvc3JjL2NvbnRleHQvZW5naW5lcy90YWJzL1Rh YnNFbmdpbmUuY3BwCi0rKysgYi9zcmMvY29udGV4dC9lbmdpbmVzL3RhYnMvVGFic0VuZ2luZS5j cHAKLUBAIC0yNDQsNyArMjQ0LDcgQEAgVGFic0VuZ2luZTo6cXVlcnlVbHRpbWF0ZUd1aXRhcigg Y29uc3QgUVN0cmluZyAmYXJ0aXN0LCBjb25zdCBRU3RyaW5nICZ0aXRsZSApCi0gewotICAgICAv LyBRdWVyeSBVbHRpbWF0ZUd1aXRhci5jb20gKGZpbHRlcmluZyBndWl0YXIgKHRhYnMgKyBjaG9y ZHMpIGFuZCBiYXNzIHRhYnMpCi0gICAgIEtVcmwgdWx0aW1hdGVHdWl0YXJVcmw7Ci0tICAgIHVs dGltYXRlR3VpdGFyVXJsLnNldFNjaGVtZSggImh0dHAiICk7Ci0rICAgIHVsdGltYXRlR3VpdGFy VXJsLnNldFNjaGVtZSggImh0dHBzIjsKLSAgICAgdWx0aW1hdGVHdWl0YXJVcmwuc2V0SG9zdCgg Ind3dy51bHRpbWF0ZS1ndWl0YXIuY29tIiApOwotICAgICB1bHRpbWF0ZUd1aXRhclVybC5zZXRQ YXRoKCAiL3NlYXJjaC5waHAiICk7Ci0gICAgIHVsdGltYXRlR3VpdGFyVXJsLmFkZFF1ZXJ5SXRl bSggInZpZXdfc3RhdGUiLCAiYWR2YW5jZWQiICk7Ci0tLSAKLTIuNy40Ci0KCmRpZmYgLS1naXQg YS8wMDEyLXRhYnMtYXBwbGV0LUFkZC1taXNzaW5nLXRvLWZpeC10aGUtYnVpbGQucGF0Y2ggYi8w MDEyLXRhYnMtYXBwbGV0LUFkZC1taXNzaW5nLXRvLWZpeC10aGUtYnVpbGQucGF0Y2gKZGVsZXRl ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGM5ZWNkM2IuLjAwMDAwMDAKLS0tIGEvMDAxMi10YWJz LWFwcGxldC1BZGQtbWlzc2luZy10by1maXgtdGhlLWJ1aWxkLnBhdGNoCisrKyAvZGV2L251bGwK QEAgLTEsMjUgKzAsMCBAQAotRnJvbSBmNmVjMzA5OGNkZTk1ZWViNWZlNGJiOTY1Y2ViZDRlNzcz YjEyODQwIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogSGVpa28gQmVja2VyIDxoZWly ZWNrYUBleGhlcmJvLm9yZz4KLURhdGU6IFR1ZSwgMjYgSmFuIDIwMTYgMTU6MDU6MDYgKzAxMDAK LVN1YmplY3Q6IFtQQVRDSCAxMi8xNl0gW3RhYnMgYXBwbGV0XSBBZGQgbWlzc2luZyAnKScgdG8g Zml4IHRoZSBidWlsZAotCi0tLS0KLSBzcmMvY29udGV4dC9lbmdpbmVzL3RhYnMvVGFic0VuZ2lu ZS5jcHAgfCAyICstCi0gMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAxIGRlbGV0aW9u KC0pCi0KLWRpZmYgLS1naXQgYS9zcmMvY29udGV4dC9lbmdpbmVzL3RhYnMvVGFic0VuZ2luZS5j cHAgYi9zcmMvY29udGV4dC9lbmdpbmVzL3RhYnMvVGFic0VuZ2luZS5jcHAKLWluZGV4IDlhNmYw NDcuLjZjMDUwNGMgMTAwNjQ0Ci0tLS0gYS9zcmMvY29udGV4dC9lbmdpbmVzL3RhYnMvVGFic0Vu Z2luZS5jcHAKLSsrKyBiL3NyYy9jb250ZXh0L2VuZ2luZXMvdGFicy9UYWJzRW5naW5lLmNwcAot QEAgLTI0NCw3ICsyNDQsNyBAQCBUYWJzRW5naW5lOjpxdWVyeVVsdGltYXRlR3VpdGFyKCBjb25z dCBRU3RyaW5nICZhcnRpc3QsIGNvbnN0IFFTdHJpbmcgJnRpdGxlICkKLSB7Ci0gICAgIC8vIFF1 ZXJ5IFVsdGltYXRlR3VpdGFyLmNvbSAoZmlsdGVyaW5nIGd1aXRhciAodGFicyArIGNob3Jkcykg YW5kIGJhc3MgdGFicykKLSAgICAgS1VybCB1bHRpbWF0ZUd1aXRhclVybDsKLS0gICAgdWx0aW1h dGVHdWl0YXJVcmwuc2V0U2NoZW1lKCAiaHR0cHMiOwotKyAgICB1bHRpbWF0ZUd1aXRhclVybC5z ZXRTY2hlbWUoICJodHRwcyIgKTsKLSAgICAgdWx0aW1hdGVHdWl0YXJVcmwuc2V0SG9zdCggInd3 dy51bHRpbWF0ZS1ndWl0YXIuY29tIiApOwotICAgICB1bHRpbWF0ZUd1aXRhclVybC5zZXRQYXRo KCAiL3NlYXJjaC5waHAiICk7Ci0gICAgIHVsdGltYXRlR3VpdGFyVXJsLmFkZFF1ZXJ5SXRlbSgg InZpZXdfc3RhdGUiLCAiYWR2YW5jZWQiICk7Ci0tLSAKLTIuNy40Ci0KCmRpZmYgLS1naXQgYS8w MDEzLUZpeC1mb3ItdGhlLWluZmluaXRlLWxvb3AtaW4tY2FzZS1hLWhvbWUtYnVybmVkLW9yLW8u cGF0Y2ggYi8wMDEzLUZpeC1mb3ItdGhlLWluZmluaXRlLWxvb3AtaW4tY2FzZS1hLWhvbWUtYnVy bmVkLW9yLW8ucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDA3YTQ0NmEuLjAw MDAwMDAKLS0tIGEvMDAxMy1GaXgtZm9yLXRoZS1pbmZpbml0ZS1sb29wLWluLWNhc2UtYS1ob21l LWJ1cm5lZC1vci1vLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMTMxICswLDAgQEAKLUZyb20g YWFmZjMzNDg4NjJhMTk5OTA2OWZlZmY5M2Q5ZTFlNGQ5OTViNzIyNSBNb24gU2VwIDE3IDAwOjAw OjAwIDIwMDEKLUZyb206IFN0ZWZhbm8gUGV0dGluaSA8c3RlZmFuby5wZXR0aW5pQGdtYWlsLmNv bT4KLURhdGU6IEZyaSwgMjUgTWFyIDIwMTYgMTA6MTU6MTggKzAxMDAKLVN1YmplY3Q6IFtQQVRD SCAxMy8xNl0gRml4IGZvciB0aGUgaW5maW5pdGUgbG9vcCBpbiBjYXNlIGEgaG9tZS1idXJuZWQg b3Igb2xkCi0gYXVkaW8gQ0QgaXMgaW5zZXJ0ZWQKLQotSG9tZS1idXJuZWQgb3Igb2xkIGF1ZGlv IENEcyB1c3VhbGx5IGRvbid0IGhhdmUgQ0RURVhULCB0aGF0IGlzIHdoYXQKLXdhcyB0cmlnZ2Vy aW5nIHRoZSBidWcuIFRoZSBidWcgd2FzIHJlbGV0ZWQgdG8gcG9vciBtYW5hZ2VtZW50IG9mCi10 cmFjayBuYW1lcywgdGhhdCBhcmUgZ2VuZXJhdGVkIHVzaW5nIHRoZSBwYXR0ZXJuICJUcmFjayUx LndhdiIuIFRoZQotYXVkaW9jZDovIEtJTyBwcm90b2NvbCByZXF1aXJlcyB0aGF0IGEgZGV2aWNl IGlzIGFsc28gYWRkZWQgdG8gdGhlCi1VUkwsIGFuZCB0aGlzIHdhcyBub3QgZG9uZSBldmVyeXdo ZXJlLiBMYWNrIG9mIGRldmljZSB3YXMgdHJpZ2dlcmluZwotYW4gdW5leHBlY3RlZC9zdHJhbmdl IGJlaGF2aW91ciBpbiBzb21lIEtERSBmdW5jdGlvbiBtYWtpbmcgQW1hcm9rCi1lbnRlciBhbiBp bmZpbml0ZSBsb29wLgotCi1SRVZJRVc6IDEyNzQ2OAotQlVHOiAzMzkxOTAKLS0tLQotIC4uLi9j b2xsZWN0aW9ucy9hdWRpb2NkL0F1ZGlvQ2RDb2xsZWN0aW9uLmNwcCAgICAgIHwgNDkgKysrKysr KysrKysrKysrKy0tLS0tLQotIC4uLi9jb2xsZWN0aW9ucy9hdWRpb2NkL0F1ZGlvQ2RDb2xsZWN0 aW9uLmggICAgICAgIHwgIDcgKysrKwotIDIgZmlsZXMgY2hhbmdlZCwgNDQgaW5zZXJ0aW9ucygr KSwgMTIgZGVsZXRpb25zKC0pCi0KLWRpZmYgLS1naXQgYS9zcmMvY29yZS1pbXBsL2NvbGxlY3Rp b25zL2F1ZGlvY2QvQXVkaW9DZENvbGxlY3Rpb24uY3BwIGIvc3JjL2NvcmUtaW1wbC9jb2xsZWN0 aW9ucy9hdWRpb2NkL0F1ZGlvQ2RDb2xsZWN0aW9uLmNwcAotaW5kZXggM2RmYTdjMy4uM2FmNmUz NiAxMDA2NDQKLS0tLSBhL3NyYy9jb3JlLWltcGwvY29sbGVjdGlvbnMvYXVkaW9jZC9BdWRpb0Nk Q29sbGVjdGlvbi5jcHAKLSsrKyBiL3NyYy9jb3JlLWltcGwvY29sbGVjdGlvbnMvYXVkaW9jZC9B dWRpb0NkQ29sbGVjdGlvbi5jcHAKLUBAIC05MSw3ICs5MSw5IEBAIEtVcmwKLSBBdWRpb0NkQ29s bGVjdGlvbjo6YXVkaW9jZFVybCggY29uc3QgUVN0cmluZyAmcGF0aCApIGNvbnN0Ci0gewotICAg ICBLVXJsIHVybCgiYXVkaW9jZDovIik7Ci0tICAgIHVybC5hZGRQYXRoKCBwYXRoICk7Ci0rCi0r ICAgIGlmKCAhcGF0aC5pc0VtcHR5KCkgKQotKyAgICAgICAgdXJsLmFkZFBhdGgoIHBhdGggKTsK LSAKLSAgICAgaWYoICFtX2RldmljZS5pc0VtcHR5KCkgKQotICAgICAgICAgdXJsLmFkZFF1ZXJ5 SXRlbSggImRldmljZSIsIG1fZGV2aWNlICk7Ci1AQCAtMzQ2LDEwICszNDgsMzIgQEAgQXVkaW9D ZENvbGxlY3Rpb246OmNoZWNrRm9yU3RhcnRQbGF5UmVxdWVzdCgpCi0gICAgIH0KLSB9Ci0gCi0r Ci0rUVN0cmluZwotK0F1ZGlvQ2RDb2xsZWN0aW9uOjp0cmFja0Jhc2VGaWxlTmFtZSggaW50IGkg KSBjb25zdAotK3sKLSsgICAgcmV0dXJuIFFTdHJpbmcoICJUcmFjayUxIiApLmFyZyggaSwgMiwg MTAsIFFDaGFyKCcwJykgKTsKLSt9Ci0rCi0rCi0rUVN0cmluZwotK0F1ZGlvQ2RDb2xsZWN0aW9u Ojp0cmFja1dhdkZpbGVOYW1lKCBpbnQgaSApIGNvbnN0Ci0rewotKyAgICByZXR1cm4gdHJhY2tC YXNlRmlsZU5hbWUoIGkgKSArICIud2F2IjsKLSt9Ci0rCi0rCi0rUVN0cmluZwotK0F1ZGlvQ2RD b2xsZWN0aW9uOjp0cmFja0Rpc3BsYXlOYW1lKCBpbnQgaSApIGNvbnN0Ci0rewotKyAgICByZXR1 cm4gaTE4biggIlRyYWNrIiApICsgJyAnICsgUVN0cmluZzo6bnVtYmVyKCBpICk7Ci0rfQotKwot KwotIHFpbnQ2NAotLUF1ZGlvQ2RDb2xsZWN0aW9uOjp0cmFja0xlbmd0aChpbnQgaSkgY29uc3QK LStBdWRpb0NkQ29sbGVjdGlvbjo6dHJhY2tMZW5ndGgoIGludCBpICkgY29uc3QKLSB7Ci0tICAg IEtVcmwga2lvVXJsID0gYXVkaW9jZFVybCggUVN0cmluZygiVHJhY2slMS53YXYiKS5hcmcoaSwg MiwgMTAsIFFDaGFyKCcwJykgKSApOwotKyAgICBLVXJsIGtpb1VybCA9IGF1ZGlvY2RVcmwoIHRy YWNrV2F2RmlsZU5hbWUoIGkgKSApOwotICAgICBLSU86OlVEU0VudHJ5IHVkczsKLSAgICAgaWYg KCBLSU86Ok5ldEFjY2Vzczo6c3RhdChraW9VcmwsIHVkcywgTlVMTCkgKQotICAgICB7Ci1AQCAt NDgwLDE5ICs1MDQsMjEgQEAgQXVkaW9DZENvbGxlY3Rpb246Om5vSW5mb0F2YWlsYWJsZSgpCi0g Ci0gCi0gICAgIGludCBpID0gMTsKLS0gICAgUVN0cmluZyBwcmVmaXgoICIwIiApOwotLSAgICBR U3RyaW5nIHRyYWNrTmFtZSA9ICJUcmFjayAiICsgcHJlZml4ICsgUVN0cmluZzo6bnVtYmVyKCBp ICk7Ci0rICAgIFFTdHJpbmcgdHJhY2tXYXYgPSB0cmFja1dhdkZpbGVOYW1lKCBpICk7Ci0gCi0t ICAgIHdoaWxlKCBLSU86Ok5ldEFjY2Vzczo6ZXhpc3RzKCBRU3RyaW5nKCAiYXVkaW9jZDovIiAr IHRyYWNrTmFtZSArICIud2F2IiApLCBLSU86Ok5ldEFjY2Vzczo6U291cmNlU2lkZSwgMCApICkK LSsgICAgLy8gVGhpcyB3aWxsIGZpbmQgYWxzbyBkYXRhIHRyYWNrcyBvbiBtaXhlZCBDRHM6Ci0r ICAgIC8vIGEgYmV0dGVyIHdheSB0byBkaXNjb3ZlciB0aGUgYXZhaWxhYmxlIGF1ZGlvIHRyYWNr cyBzaG91bGQgYmUgZm91bmQKLSsgICAgd2hpbGUoIEtJTzo6TmV0QWNjZXNzOjpleGlzdHMoIGF1 ZGlvY2RVcmwoIHRyYWNrV2F2ICksIEtJTzo6TmV0QWNjZXNzOjpTb3VyY2VTaWRlLCAwICkgKQot ICAgICB7Ci0tICAgICAgICBkZWJ1ZygpIDw8ICJnb3QgdHJhY2s6ICIgPDwgImF1ZGlvY2Q6LyIg KyB0cmFja05hbWUgKyAiLndhdiI7Ci0rICAgICAgICBkZWJ1ZygpIDw8ICJnb3QgdHJhY2sgdXJs OiAiIDw8IGF1ZGlvY2RVcmwoIHRyYWNrV2F2ICk7Ci0gCi0tICAgICAgICBRU3RyaW5nIGJhc2VV cmwgPSAiYXVkaW9jZDovIiArIG1fZGlzY0NkZGJJZCArICcvJyArIFFTdHJpbmc6Om51bWJlcigg aSApOwotKyAgICAgICAgLy93ZSBoYWNrIHRoZSB1cmwgc28gdGhlIGVuZ2luZSBjb250cm9sbGVy IGtub3dzIHdoYXQgdHJhY2sgb24gdGhlIENEIHRvIHBsYXkuLgotKyAgICAgICAgS1VybCBiYXNl VXJsID0gYXVkaW9jZFVybCggbV9kaXNjQ2RkYklkICsgJy8nICsgUVN0cmluZzo6bnVtYmVyKCBp ICkgKTsKLSAKLS0gICAgICAgIE1ldGE6OkF1ZGlvQ2RUcmFja1B0ciB0cmFja1B0ciA9IE1ldGE6 OkF1ZGlvQ2RUcmFja1B0ciggbmV3IE1ldGE6OkF1ZGlvQ2RUcmFjayggdGhpcywgdHJhY2tOYW1l LCBiYXNlVXJsICkgKTsKLSsgICAgICAgIE1ldGE6OkF1ZGlvQ2RUcmFja1B0ciB0cmFja1B0ciA9 IE1ldGE6OkF1ZGlvQ2RUcmFja1B0ciggbmV3IE1ldGE6OkF1ZGlvQ2RUcmFjayggdGhpcywgdHJh Y2tEaXNwbGF5TmFtZSggaSApLCBiYXNlVXJsICkgKTsKLSAKLSAgICAgICAgIHRyYWNrUHRyLT5z ZXRUcmFja051bWJlciggaSApOwotLSAgICAgICAgdHJhY2tQdHItPnNldEZpbGVOYW1lQmFzZSgg dHJhY2tOYW1lICk7Ci0rICAgICAgICB0cmFja1B0ci0+c2V0RmlsZU5hbWVCYXNlKCB0cmFja0Jh c2VGaWxlTmFtZSggaSApICk7Ci0gICAgICAgICB0cmFja1B0ci0+c2V0TGVuZ3RoKCB0cmFja0xl bmd0aCggaSApICk7Ci0gCi0gICAgICAgICBtZW1vcnlDb2xsZWN0aW9uKCktPmFkZFRyYWNrKCBN ZXRhOjpUcmFja1B0cjo6c3RhdGljQ2FzdCggdHJhY2tQdHIgKSApOwotQEAgLTUxMyw4ICs1Mzks NyBAQCBBdWRpb0NkQ29sbGVjdGlvbjo6bm9JbmZvQXZhaWxhYmxlKCkKLSAgICAgICAgIHRyYWNr UHRyLT5zZXRZZWFyKCB5ZWFyUHRyICk7Ci0gCi0gICAgICAgICBpKys7Ci0tICAgICAgICBwcmVm aXggPSBpIDwgMTAgPyAiMCIgOiAiIjsKLS0gICAgICAgIHRyYWNrTmFtZSA9ICJUcmFjayAiICsg cHJlZml4ICsgUVN0cmluZzo6bnVtYmVyKCBpICk7Ci0rICAgICAgICB0cmFja1dhdiA9IHRyYWNr V2F2RmlsZU5hbWUoIGkgKTsKLSAgICAgfQotIAotICAgICB1cGRhdGVQcm94eVRyYWNrcygpOwot ZGlmZiAtLWdpdCBhL3NyYy9jb3JlLWltcGwvY29sbGVjdGlvbnMvYXVkaW9jZC9BdWRpb0NkQ29s bGVjdGlvbi5oIGIvc3JjL2NvcmUtaW1wbC9jb2xsZWN0aW9ucy9hdWRpb2NkL0F1ZGlvQ2RDb2xs ZWN0aW9uLmgKLWluZGV4IGRjMmNhZDcuLmU4MjkzNjggMTAwNjQ0Ci0tLS0gYS9zcmMvY29yZS1p bXBsL2NvbGxlY3Rpb25zL2F1ZGlvY2QvQXVkaW9DZENvbGxlY3Rpb24uaAotKysrIGIvc3JjL2Nv cmUtaW1wbC9jb2xsZWN0aW9ucy9hdWRpb2NkL0F1ZGlvQ2RDb2xsZWN0aW9uLmgKLUBAIC0xMDMs NiArMTAzLDEzIEBAIHByaXZhdGU6Ci0gCi0gICAgIC8vIEhlbHBlciBmdW5jdGlvbiB0byBidWls ZCB0aGUgYXVkaW9jZCB1cmwuCi0gICAgIEtVcmwgYXVkaW9jZFVybCggY29uc3QgUVN0cmluZyAm cGF0aCA9ICIiICkgY29uc3Q7Ci0rICAgIC8vIFRoZSBmaWxlIG5hbWUgb2YgdGhlIHRyYWNrIHdp dGhvdXQgZXh0ZW5zaW9uCi0rICAgIFFTdHJpbmcgdHJhY2tCYXNlRmlsZU5hbWUoIGludCBpICkg Y29uc3Q7Ci0rICAgIC8vIFRoZSBmaWxlIG5hbWUgb2YgdGhlIHRyYWNrIGluIC53YXYgZm9ybWF0 Ci0rICAgIFFTdHJpbmcgdHJhY2tXYXZGaWxlTmFtZSggaW50IGkgKSBjb25zdDsKLSsgICAgLy8g VGhlIG5hbWUgb2YgdGhlIHRyYWNrIHRoYXQgc2hvdWxkIGJlIGRpc3BsYXllZAotKyAgICBRU3Ry aW5nIHRyYWNrRGlzcGxheU5hbWUoIGludCBpICkgY29uc3Q7Ci0rICAgIC8vIFRoZSBsZW5ndGgg b2YgdGhlIHRyYWNrIGluIG1pbGxpc2Vjb25kcwotICAgICBxaW50NjQgdHJhY2tMZW5ndGgoIGlu dCBpICkgY29uc3Q7Ci0gCi0gICAgIC8qKgotLS0gCi0yLjcuNAotCgpkaWZmIC0tZ2l0IGEvMDAx NC1Pbmx5LWxpbmstd2l0aC1NWVNRTF9FTUJFRERFRF9MSUJSQVJJRVMtaWYtV0lUSF9NWVNRLnBh dGNoIGIvMDAxNC1Pbmx5LWxpbmstd2l0aC1NWVNRTF9FTUJFRERFRF9MSUJSQVJJRVMtaWYtV0lU SF9NWVNRLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiMmUzOTIxLi4wMDAw MDAwCi0tLSBhLzAwMTQtT25seS1saW5rLXdpdGgtTVlTUUxfRU1CRURERURfTElCUkFSSUVTLWlm LVdJVEhfTVlTUS5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDM0ICswLDAgQEAKLUZyb20gMDQ4 Y2EzZDU3MjI4NzU5ZjA1YWY3Yjk1NTMyMDBmZDM2MmFlYWE4YiBNb24gU2VwIDE3IDAwOjAwOjAw IDIwMDEKLUZyb206IE1hdHQgV2hpdGxvY2sgPGtkZUBtYXR0d2hpdGxvY2submFtZT4KLURhdGU6 IFR1ZSwgMjkgTWFyIDIwMTYgMTI6MjI6NDEgLTA0MDAKLVN1YmplY3Q6IFtQQVRDSCAxNC8xNl0g T25seSBsaW5rIHdpdGggTVlTUUxfRU1CRURERURfTElCUkFSSUVTIGlmCi0gV0lUSF9NWVNRTF9F TUJFRERFRAotCi1SRVZJRVc6IDEyNzUyMwotLS0tCi0gc3JjL2NvcmUtaW1wbC9jb2xsZWN0aW9u cy9kYi9zcWwvbXlzcWxjb2xsZWN0aW9uL0NNYWtlTGlzdHMudHh0IHwgNSArKysrLQotIDEgZmls ZSBjaGFuZ2VkLCA0IGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKLQotZGlmZiAtLWdpdCBh L3NyYy9jb3JlLWltcGwvY29sbGVjdGlvbnMvZGIvc3FsL215c3FsY29sbGVjdGlvbi9DTWFrZUxp c3RzLnR4dCBiL3NyYy9jb3JlLWltcGwvY29sbGVjdGlvbnMvZGIvc3FsL215c3FsY29sbGVjdGlv bi9DTWFrZUxpc3RzLnR4dAotaW5kZXggMjQ0Y2RlMS4uNGM2MThmYyAxMDA2NDQKLS0tLSBhL3Ny Yy9jb3JlLWltcGwvY29sbGVjdGlvbnMvZGIvc3FsL215c3FsY29sbGVjdGlvbi9DTWFrZUxpc3Rz LnR4dAotKysrIGIvc3JjL2NvcmUtaW1wbC9jb2xsZWN0aW9ucy9kYi9zcWwvbXlzcWxjb2xsZWN0 aW9uL0NNYWtlTGlzdHMudHh0Ci1AQCAtMjEsMTEgKzIxLDE0IEBAIHRhcmdldF9saW5rX2xpYnJh cmllcyhhbWFyb2tfY29sbGVjdGlvbi1teXNxbGNvbGxlY3Rpb24KLSAgICAgJHtLREU0X0tERUNP UkVfTElCU30KLSAgICAgJHtRVF9RVENPUkVfTElCUkFSWX0KLSAgICAgJHtRVF9RVEdVSV9MSUJS QVJZfQotLSAgICAke01ZU1FMX0VNQkVEREVEX0xJQlJBUklFU30KLSAgICAgJHtDTUFLRV9ETF9M SUJTfQotICAgICAke1pMSUJfTElCUkFSSUVTfQotICkKLSAKLStpZihXSVRIX01ZU1FMX0VNQkVE REVEKQotKyAgICB0YXJnZXRfbGlua19saWJyYXJpZXMoIGFtYXJva19jb2xsZWN0aW9uLW15c3Fs Y29sbGVjdGlvbiAke01ZU1FMX0VNQkVEREVEX0xJQlJBUklFU30gKQotK2VuZGlmKFdJVEhfTVlT UUxfRU1CRURERUQpCi0rCi0gaWYoTk9UIFdJTjMyIEFORCBOT1QgQVBQTEUpCi0gICAgIHRhcmdl dF9saW5rX2xpYnJhcmllcyggYW1hcm9rX2NvbGxlY3Rpb24tbXlzcWxjb2xsZWN0aW9uIGNyeXB0 IHB0aHJlYWQgKQotIGVuZGlmKE5PVCBXSU4zMiBBTkQgTk9UIEFQUExFKQotLS0gCi0yLjcuNAot CgpkaWZmIC0tZ2l0IGEvMDAxNS1GaXgtYS1jcmFzaC1pbi1hbWFyb2std2hlbi1vcGVuaW5nLXRo ZS1TY3JpcHQtQ29uc29sLnBhdGNoIGIvMDAxNS1GaXgtYS1jcmFzaC1pbi1hbWFyb2std2hlbi1v cGVuaW5nLXRoZS1TY3JpcHQtQ29uc29sLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp bmRleCBmZTg0NTY1Li4wMDAwMDAwCi0tLSBhLzAwMTUtRml4LWEtY3Jhc2gtaW4tYW1hcm9rLXdo ZW4tb3BlbmluZy10aGUtU2NyaXB0LUNvbnNvbC5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDMz ICswLDAgQEAKLUZyb20gMjkwMGZlNDdhZGRlMTA5OTlhNmMwZjkwN2Q3M2IwMGExYzFiZDViMSBN b24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IE15cmlhbSBTY2h3ZWluZ3J1YmVyIDxteXJp YW1Aa2RlLm9yZz4KLURhdGU6IFdlZCwgMTggTWF5IDIwMTYgMjE6NTk6MTcgKzAyMDAKLVN1Ympl Y3Q6IFtQQVRDSCAxNS8xNl0gRml4IGEgY3Jhc2ggaW4gYW1hcm9rIHdoZW4gb3BlbmluZyB0aGUg U2NyaXB0IENvbnNvbGUKLQotVGhlIHNjcmlwdCBjb25zb2xlIHRyaWVzIHRvIHdyaXRlIHRvIGEg c3lzdGVtIGZvbGRlciBpbnN0ZWFkIG9mIGEgdXNlcgotIGZvbGRlci4gTm90ZSB0byBkZXZzOiBh bHdheXMgbWFrZSBzdXJlIHRvIHRlc3QgYSBzeXN0ZW0gaW5zdGFsbGF0aW9uLAotIG5vdCBqdXN0 IGEgbG9jYWwgYnVpbGQuCi0KLVRoYW5rcyB0byBKb2hhbm5lcyBIdWJlciBmb3IgdGhlIHF1aWNr IGZpeCBzdWdnZXN0aW9uLgotCi1CVUc6IDM2MzE3NgotRklYRUQtSU46IDIuOQotLS0tCi0gc3Jj L3NjcmlwdGluZy9zY3JpcHRjb25zb2xlL1NjcmlwdENvbnNvbGUuY3BwIHwgMiArLQotIDEgZmls ZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMSBkZWxldGlvbigtKQotCi1kaWZmIC0tZ2l0IGEv c3JjL3NjcmlwdGluZy9zY3JpcHRjb25zb2xlL1NjcmlwdENvbnNvbGUuY3BwIGIvc3JjL3Njcmlw dGluZy9zY3JpcHRjb25zb2xlL1NjcmlwdENvbnNvbGUuY3BwCi1pbmRleCA2ZWRkOWEyLi5lNGUw ZmFiIDEwMDY0NAotLS0tIGEvc3JjL3NjcmlwdGluZy9zY3JpcHRjb25zb2xlL1NjcmlwdENvbnNv bGUuY3BwCi0rKysgYi9zcmMvc2NyaXB0aW5nL3NjcmlwdGNvbnNvbGUvU2NyaXB0Q29uc29sZS5j cHAKLUBAIC0xNjEsNyArMTYxLDcgQEAgU2NyaXB0Q29uc29sZTo6U2NyaXB0Q29uc29sZSggUVdp ZGdldCAqcGFyZW50ICkKLSAgICAgc2V0dGluZ3MuZW5kR3JvdXAoKTsKLSAKLSAgICAgaWYoIG1f c2F2ZVBhdGguaXNFbXB0eSgpICkKLS0gICAgICAgIG1fc2F2ZVBhdGggPSBLVXJsKCBLU3RhbmRh cmREaXJzOjpsb2NhdGUoICJkYXRhIiwgImFtYXJvay9zY3JpcHRjb25zb2xlLyIgKSApLnBhdGgo KTsKLSsgICAgICAgIG1fc2F2ZVBhdGggPSBLVXJsKCBLU3RhbmRhcmREaXJzOjpsb2NhdGVMb2Nh bCggImRhdGEiLCAiYW1hcm9rL3NjcmlwdGNvbnNvbGUvIiApICkucGF0aCgpOwotIAotICAgICBz bG90TmV3U2NyaXB0KCk7Ci0gICAgIGNvbm5lY3QoIG1fZGVidWdnZXIsIFNJR05BTChldmFsdWF0 aW9uU3VzcGVuZGVkKCkpLCBTTE9UKHNsb3RFdmFsdWF0aW9uU3VzcGVuZGVkKCkpICk7Ci0tLSAK LTIuNy40Ci0KCmRpZmYgLS1naXQgYS8wMDE2LUZpeC11bnRyYW5zbGF0YWJsZS1zdHJpbmcucGF0 Y2ggYi8wMDE2LUZpeC11bnRyYW5zbGF0YWJsZS1zdHJpbmcucGF0Y2gKZGVsZXRlZCBmaWxlIG1v ZGUgMTAwNjQ0CmluZGV4IDY2YWJjNTguLjAwMDAwMDAKLS0tIGEvMDAxNi1GaXgtdW50cmFuc2xh dGFibGUtc3RyaW5nLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMzEgKzAsMCBAQAotRnJvbSBh NWRmMjg3YmI4NTVlM2NjMzU1NWRiYzlkNWM5NzEwMjE0ODJkYWM1IE1vbiBTZXAgMTcgMDA6MDA6 MDAgMjAwMQotRnJvbTogTXlyaWFtIFNjaHdlaW5ncnViZXIgPG15cmlhbUBrZGUub3JnPgotRGF0 ZTogTW9uLCAzMCBNYXkgMjAxNiAxMToyNTozMyArMDIwMAotU3ViamVjdDogW1BBVENIIDE2LzE2 XSBGaXggdW50cmFuc2xhdGFibGUgc3RyaW5nCi0KLUZpeCB1bnRyYW5zbGF0YWJsZSBzdHJpbmcg aW4gT3JnYW5pemUgQ29sbGVjdGlvbiBEaWFsb2cKLQotQlVHOiAzMzE0NDMKLUZJWEVELUlOOiAy LjkKLS0tLQotIHNyYy9kaWFsb2dzL09yZ2FuaXplQ29sbGVjdGlvbkRpYWxvZy5jcHAgfCA0ICsr LS0KLSAxIGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQotCi1k aWZmIC0tZ2l0IGEvc3JjL2RpYWxvZ3MvT3JnYW5pemVDb2xsZWN0aW9uRGlhbG9nLmNwcCBiL3Ny Yy9kaWFsb2dzL09yZ2FuaXplQ29sbGVjdGlvbkRpYWxvZy5jcHAKLWluZGV4IDFjMTQ3MTAuLjk3 M2U5Y2IgMTAwNjQ0Ci0tLS0gYS9zcmMvZGlhbG9ncy9Pcmdhbml6ZUNvbGxlY3Rpb25EaWFsb2cu Y3BwCi0rKysgYi9zcmMvZGlhbG9ncy9Pcmdhbml6ZUNvbGxlY3Rpb25EaWFsb2cuY3BwCi1AQCAt MTA4LDggKzEwOCw4IEBAIE9yZ2FuaXplQ29sbGVjdGlvbldpZGdldDo6YnVpbGRGb3JtYXRUaXAo KSBjb25zdAotIHsKLSAgICAgUU1hcDxRU3RyaW5nLCBRU3RyaW5nPiBhcmdzOwotICAgICBhcmdz WyJhbGJ1bWFydGlzdCJdID0gaTE4biggIiUxIG9yICUyIiwgUUxhdGluMVN0cmluZygiQWxidW0g QXJ0aXN0LCBUaGUiKSAsIFFMYXRpbjFTdHJpbmcoIlRoZSBBbGJ1bSBBcnRpc3QiKSApOwotLSAg ICBhcmdzWyJ0aGVhbGJ1bWFydGlzdCJdID0gIlRoZSBBbGJ1bSBBcnRpc3QiOwotLSAgICBhcmdz WyJ0aGVhcnRpc3QiXSA9ICJUaGUgQXJ0aXN0IjsKLSsgICAgYXJnc1sidGhlYWxidW1hcnRpc3Qi XSA9IGkxOG4oICJUaGUgQWxidW0gQXJ0aXN0IiApOwotKyAgICBhcmdzWyJ0aGVhcnRpc3QiXSA9 IGkxOG4oICJUaGUgQXJ0aXN0IiApOwotICAgICBhcmdzWyJhcnRpc3QiXSA9IGkxOG4oICIlMSBv ciAlMiIsIFFMYXRpbjFTdHJpbmcoIkFydGlzdCwgVGhlIikgLCBRTGF0aW4xU3RyaW5nKCJUaGUg QXJ0aXN0IikgKTsKLSAgICAgYXJnc1siaW5pdGlhbCJdID0gaTE4biggIkFydGlzdCdzIEluaXRp YWwiICk7Ci0gICAgIGFyZ3NbImZpbGV0eXBlIl0gPSBpMThuKCAiRmlsZSBFeHRlbnNpb24gb2Yg U291cmNlIiApOwotLS0gCi0yLjcuNAotCgpkaWZmIC0tZ2l0IGEvMDAxNy1nY2M2LWJ1aWxkZml4 LnBhdGNoIGIvMDAxNy1nY2M2LWJ1aWxkZml4LnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0 NAppbmRleCBiNmYwYWJjLi4wMDAwMDAwCi0tLSBhLzAwMTctZ2NjNi1idWlsZGZpeC5wYXRjaAor KysgL2Rldi9udWxsCkBAIC0xLDM2ICswLDAgQEAKLUZyb20gOTMwODQwM2UxYzg0ODQwNTJmMjc3 YmY2ZGUzMmVlMDdjOTNhNGJlYiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IFJleCBE aWV0ZXIgPHJkaWV0ZXJAbWF0aC51bmwuZWR1PgotRGF0ZTogV2VkLCAxIEp1biAyMDE2IDEzOjU4 OjI2IC0wNTAwCi1TdWJqZWN0OiBbUEFUQ0ggMTcvMjZdIGdjYzYgYnVpbGRmaXgKLQotY291cnRl c3kgb2Ygb3BlbnN1c2UsIHRoeAotCi1CVUc6IDM2MzA1NAotLS0tCi0gc3JjL2NvcmUtaW1wbC9w bGF5bGlzdHMvdHlwZXMvZmlsZS94c3BmL1hTUEZQbGF5bGlzdC5jcHAgfCAzICsrLQotIDEgZmls ZSBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKLQotZGlmZiAtLWdpdCBh L3NyYy9jb3JlLWltcGwvcGxheWxpc3RzL3R5cGVzL2ZpbGUveHNwZi9YU1BGUGxheWxpc3QuY3Bw IGIvc3JjL2NvcmUtaW1wbC9wbGF5bGlzdHMvdHlwZXMvZmlsZS94c3BmL1hTUEZQbGF5bGlzdC5j cHAKLWluZGV4IDRiZGI5YjkuLmUzMjczNTQgMTAwNjQ0Ci0tLS0gYS9zcmMvY29yZS1pbXBsL3Bs YXlsaXN0cy90eXBlcy9maWxlL3hzcGYvWFNQRlBsYXlsaXN0LmNwcAotKysrIGIvc3JjL2NvcmUt aW1wbC9wbGF5bGlzdHMvdHlwZXMvZmlsZS94c3BmL1hTUEZQbGF5bGlzdC5jcHAKLUBAIC0yOCw2 ICsyOCw3IEBACi0gI2luY2x1ZGUgInBsYXlsaXN0L1BsYXlsaXN0TW9kZWxTdGFjay5oIgotIAot IHVzaW5nIG5hbWVzcGFjZSBQbGF5bGlzdHM7Ci0rdXNpbmcgbmFtZXNwYWNlIFBsYXlsaXN0Owot IAotIFhTUEZQbGF5bGlzdDo6WFNQRlBsYXlsaXN0KCBjb25zdCBLVXJsICZ1cmwsIFBsYXlsaXN0 czo6UGxheWxpc3RQcm92aWRlciAqcHJvdmlkZXIsIE9uTG9hZEFjdGlvbiBvbkxvYWQgKQotICAg ICA6IFBsYXlsaXN0RmlsZSggdXJsLCBwcm92aWRlciApCi1AQCAtMTAxLDcgKzEwMiw3IEBAIFhT UEZQbGF5bGlzdDo6bG9hZCgpCi0gICAgIC8vRklYTUU6IHRoaXMgbmVlZHMgdG8gYmUgbW92ZWQg dG8gd2hhdGV2ZXIgaXMgY3JlYXRpbmcgdGhlIFhTUEZQbGF5bGlzdAotICAgICBpZiggbV9hdXRv QXBwZW5kQWZ0ZXJMb2FkICkKLSAgICAgICAgIFRoZTo6cGxheWxpc3RDb250cm9sbGVyKCktPmlu c2VydFBsYXlsaXN0KAotLSAgICAgICAgICAgICAgICAgICAgOjpQbGF5bGlzdDo6TW9kZWxTdGFj azo6aW5zdGFuY2UoKS0+Ym90dG9tKCktPnJvd0NvdW50KCksCi0rICAgICAgICAgICAgICAgICAg ICBNb2RlbFN0YWNrOjppbnN0YW5jZSgpLT5ib3R0b20oKS0+cm93Q291bnQoKSwKLSAgICAgICAg ICAgICAgICAgICAgIFBsYXlsaXN0czo6UGxheWxpc3RQdHIoIHRoaXMgKQotICAgICAgICAgICAg ICAgICApOwotIH0KLS0tIAotMi43LjQKLQoKZGlmZiAtLWdpdCBhLzAwMTktRGlzYWJsZS1ub24t U1NMLWNvbm5lY3Rpb25zLWluLXdpa2lwZWRpYS1hcHBsZXQucGF0Y2ggYi8wMDE5LURpc2FibGUt bm9uLVNTTC1jb25uZWN0aW9ucy1pbi13aWtpcGVkaWEtYXBwbGV0LnBhdGNoCmRlbGV0ZWQgZmls ZSBtb2RlIDEwMDY0NAppbmRleCA4NGYwNDBkLi4wMDAwMDAwCi0tLSBhLzAwMTktRGlzYWJsZS1u b24tU1NMLWNvbm5lY3Rpb25zLWluLXdpa2lwZWRpYS1hcHBsZXQucGF0Y2gKKysrIC9kZXYvbnVs bApAQCAtMSwxNzAgKzAsMCBAQAotRnJvbSA4YzE1MjU4YjI4ODcwYjZkOTk5MGIyNGY4N2NlOTEz ZTIwNDliYWM4IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogT2xpdmllciBDSFVSTEFV RCA8b2xpdmllckBjaHVybGF1ZC5jb20+Ci1EYXRlOiBUdWUsIDIxIEp1biAyMDE2IDAwOjA2OjMz ICswMjAwCi1TdWJqZWN0OiBbUEFUQ0ggMTkvMjZdIERpc2FibGUgbm9uIFNTTCBjb25uZWN0aW9u cyBpbiB3aWtpcGVkaWEgYXBwbGV0LgotCi1SRVZJRVc6IDEyODI0OAotQlVHOiAzNDgzMTMKLS0t LQotIENoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB8ICAzICsrLQotIHNyYy9jb250ZXh0L2FwcGxldHMvd2lraXBlZGlhL1dpa2lwZWRpYUFwcGxl dC5jcHAgICAgICB8ICA3ICstLS0tLS0KLSBzcmMvY29udGV4dC9hcHBsZXRzL3dpa2lwZWRpYS9X aWtpcGVkaWFBcHBsZXRfcC5oICAgICAgfCAgMSAtCi0gLi4uL2FwcGxldHMvd2lraXBlZGlhL3dp a2lwZWRpYUdlbmVyYWxTZXR0aW5ncy51aSAgICAgIHwgIDcgLS0tLS0tLQotIHNyYy9jb250ZXh0 L2VuZ2luZXMvd2lraXBlZGlhL1dpa2lwZWRpYUVuZ2luZS5jcHAgICAgICB8IDE4ICsrKy0tLS0t LS0tLS0tLS0tLQotIDUgZmlsZXMgY2hhbmdlZCwgNiBpbnNlcnRpb25zKCspLCAzMCBkZWxldGlv bnMoLSkKLQotZGlmZiAtLWdpdCBhL0NoYW5nZUxvZyBiL0NoYW5nZUxvZwotaW5kZXggMmNjZTBm NC4uZDUwOGM2ZCAxMDA2NDQKLS0tLSBhL0NoYW5nZUxvZwotKysrIGIvQ2hhbmdlTG9nCi1AQCAt NzAsNyArNzAsOCBAQCBWRVJTSU9OIDIuOC45MAotICAgICogQ2hlY2sgZm9yIFF0QmluZGluZ3Mg YXQgcnVudGltZSBpbnN0ZWFkLiBEaXNhYmxlIHNjcmlwdHMgYW5kIGRpc3BsYXkgZXJyb3IgbWVz c2FnZQotICAgICAgaWYgbWlzc2luZy4gKEJSIDMyNTAwNikKLSAgICAqIFByaW50IHBsYXlsaXN0 IGRvd25sb2FkIGVycm9ycyB0byB0aGUgZGVidWcgbG9nLiAoQlIgMzI1MTIwKQotLQotKyAgICog V2lraXBlZGlhIEFwcGxldCBvbmx5IGNvbm5lY3Qgd2l0aCBTU0wsIHNvIHRoYXQgcmVkaXJlY3Rz IGFyZSBoYW5kbGVkCi0rICAgICBjb3JyZWN0bHkuIChCUiAzNDkzMTMpCi0gCi0gVkVSU0lPTiAy LjgKLSAgIEZFQVRVUkVTOgotZGlmZiAtLWdpdCBhL3NyYy9jb250ZXh0L2FwcGxldHMvd2lraXBl ZGlhL1dpa2lwZWRpYUFwcGxldC5jcHAgYi9zcmMvY29udGV4dC9hcHBsZXRzL3dpa2lwZWRpYS9X aWtpcGVkaWFBcHBsZXQuY3BwCi1pbmRleCAyY2ViMmIwLi43ZjFjNzMyIDEwMDY0NAotLS0tIGEv c3JjL2NvbnRleHQvYXBwbGV0cy93aWtpcGVkaWEvV2lraXBlZGlhQXBwbGV0LmNwcAotKysrIGIv c3JjL2NvbnRleHQvYXBwbGV0cy93aWtpcGVkaWEvV2lraXBlZGlhQXBwbGV0LmNwcAotQEAgLTI1 MCwxNCArMjUwLDExIEBAIFdpa2lwZWRpYUFwcGxldFByaXZhdGU6Ol9sb2FkU2V0dGluZ3MoKQot ICAgICB9Ci0gICAgIGxhbmdMaXN0ID0gbGlzdDsKLSAgICAgdXNlTW9iaWxlV2lraXBlZGlhID0g KGdlbmVyYWxTZXR0aW5nc1VpLm1vYmlsZUNoZWNrQm94LT5jaGVja1N0YXRlKCkgPT0gUXQ6OkNo ZWNrZWQpOwotLSAgICB1c2VTU0wgPSAoZ2VuZXJhbFNldHRpbmdzVWkuc3NsQ2hlY2tCb3gtPmNo ZWNrU3RhdGUoKSA9PSBRdDo6Q2hlY2tlZCk7Ci0gICAgIEFtYXJvazo6Y29uZmlnKCJXaWtpcGVk aWEgQXBwbGV0Iikud3JpdGVFbnRyeSggIlByZWZlcnJlZExhbmciLCBsaXN0ICk7Ci0gICAgIEFt YXJvazo6Y29uZmlnKCJXaWtpcGVkaWEgQXBwbGV0Iikud3JpdGVFbnRyeSggIlVzZU1vYmlsZSIs IHVzZU1vYmlsZVdpa2lwZWRpYSApOwotLSAgICBBbWFyb2s6OmNvbmZpZyggIldpa2lwZWRpYSBB cHBsZXQiICkud3JpdGVFbnRyeSggIlVzZVNTTCIsIHVzZVNTTCApOwotICAgICBfcGFsZXR0ZUNo YW5nZWQoIEFwcDo6aW5zdGFuY2UoKS0+cGFsZXR0ZSgpICk7Ci0gICAgIGRhdGFDb250YWluZXIt PnNldERhdGEoICJsYW5nIiwgbGFuZ0xpc3QgKTsKLSAgICAgZGF0YUNvbnRhaW5lci0+c2V0RGF0 YSggIm1vYmlsZSIsIHVzZU1vYmlsZVdpa2lwZWRpYSApOwotLSAgICBkYXRhQ29udGFpbmVyLT5z ZXREYXRhKCAic3NsIiwgdXNlU1NMICk7Ci0gICAgIHNjaGVkdWxlRW5naW5lVXBkYXRlKCk7Ci0g fQotIAotQEAgLTQxNCw3ICs0MTEsNyBAQCBXaWtpcGVkaWFBcHBsZXRQcml2YXRlOjpfZ2V0TGFu Z01hcCgpCi0gICAgIGxhbmd1YWdlU2V0dGluZ3NVaS5wcm9ncmVzc0Jhci0+c2V0VmFsdWUoIDAg KTsKLSAKLSAgICAgS1VybCB1cmw7Ci0tICAgIHVybC5zZXRTY2hlbWUoICJodHRwIiApOwotKyAg ICB1cmwuc2V0U2NoZW1lKCAiaHR0cHMiICk7Ci0gICAgIHVybC5zZXRIb3N0KCAiZW4ud2lraXBl ZGlhLm9yZyIgKTsKLSAgICAgdXJsLnNldFBhdGgoICIvdy9hcGkucGhwIiApOwotICAgICB1cmwu YWRkUXVlcnlJdGVtKCAiYWN0aW9uIiwgInF1ZXJ5IiApOwotQEAgLTY2Myw3ICs2NjAsNiBAQCBX aWtpcGVkaWFBcHBsZXQ6OmluaXQoKQotICAgICBkLT5fcGFsZXR0ZUNoYW5nZWQoIEFwcDo6aW5z dGFuY2UoKS0+cGFsZXR0ZSgpICk7Ci0gICAgIGQtPmRhdGFDb250YWluZXItPnNldERhdGEoICJs YW5nIiwgZC0+bGFuZ0xpc3QgKTsKLSAgICAgZC0+ZGF0YUNvbnRhaW5lci0+c2V0RGF0YSggIm1v YmlsZSIsIGQtPnVzZU1vYmlsZVdpa2lwZWRpYSApOwotLSAgICBkLT5kYXRhQ29udGFpbmVyLT5z ZXREYXRhKCAic3NsIiwgZC0+dXNlU1NMICk7Ci0gICAgIGQtPnNjaGVkdWxlRW5naW5lVXBkYXRl KCk7Ci0gCi0gICAgIHVwZGF0ZUNvbnN0cmFpbnRzKCk7Ci1AQCAtNzkyLDcgKzc4OCw2IEBAIFdp a2lwZWRpYUFwcGxldDo6Y3JlYXRlQ29uZmlndXJhdGlvbkludGVyZmFjZSggS0NvbmZpZ0RpYWxv ZyAqcGFyZW50ICkKLSAgICAgUVdpZGdldCAqZ2VuU2V0dGluZ3MgPSBuZXcgUVdpZGdldDsKLSAg ICAgZC0+Z2VuZXJhbFNldHRpbmdzVWkuc2V0dXBVaSggZ2VuU2V0dGluZ3MgKTsKLSAgICAgZC0+ Z2VuZXJhbFNldHRpbmdzVWkubW9iaWxlQ2hlY2tCb3gtPnNldENoZWNrU3RhdGUoIGQtPnVzZU1v YmlsZVdpa2lwZWRpYSA/IFF0OjpDaGVja2VkIDogUXQ6OlVuY2hlY2tlZCApOwotLSAgICBkLT5n ZW5lcmFsU2V0dGluZ3NVaS5zc2xDaGVja0JveC0+c2V0Q2hlY2tTdGF0ZSggZC0+dXNlU1NMID8g UXQ6OkNoZWNrZWQgOiBRdDo6VW5jaGVja2VkICk7Ci0gCi0gICAgIGNvbm5lY3QoIGQtPmxhbmd1 YWdlU2V0dGluZ3NVaS5kb3dubG9hZEJ1dHRvbiwgU0lHTkFMKGNsaWNrZWQoKSksIHRoaXMsIFNM T1QoX2dldExhbmdNYXAoKSkgKTsKLSAgICAgY29ubmVjdCggcGFyZW50LCBTSUdOQUwob2tDbGlj a2VkKCkpLCB0aGlzLCBTTE9UKF9sb2FkU2V0dGluZ3MoKSkgKTsKLWRpZmYgLS1naXQgYS9zcmMv Y29udGV4dC9hcHBsZXRzL3dpa2lwZWRpYS9XaWtpcGVkaWFBcHBsZXRfcC5oIGIvc3JjL2NvbnRl eHQvYXBwbGV0cy93aWtpcGVkaWEvV2lraXBlZGlhQXBwbGV0X3AuaAotaW5kZXggZGY1ZGRjMy4u YzUyYTBiZiAxMDA2NDQKLS0tLSBhL3NyYy9jb250ZXh0L2FwcGxldHMvd2lraXBlZGlhL1dpa2lw ZWRpYUFwcGxldF9wLmgKLSsrKyBiL3NyYy9jb250ZXh0L2FwcGxldHMvd2lraXBlZGlhL1dpa2lw ZWRpYUFwcGxldF9wLmgKLUBAIC0xNDMsNyArMTQzLDYgQEAgcHVibGljOgotICAgICBib29sIGlz Rm9yd2FyZEhpc3Rvcnk7Ci0gICAgIGJvb2wgaXNCYWNrd2FyZEhpc3Rvcnk7Ci0gICAgIGJvb2wg dXNlTW9iaWxlV2lraXBlZGlhOwotLSAgICBib29sIHVzZVNTTDsKLSB9OwotIAotIGNsYXNzIFdp a2lwZWRpYVNlYXJjaExpbmVFZGl0IDogcHVibGljIFBsYXNtYTo6TGluZUVkaXQKLWRpZmYgLS1n aXQgYS9zcmMvY29udGV4dC9hcHBsZXRzL3dpa2lwZWRpYS93aWtpcGVkaWFHZW5lcmFsU2V0dGlu Z3MudWkgYi9zcmMvY29udGV4dC9hcHBsZXRzL3dpa2lwZWRpYS93aWtpcGVkaWFHZW5lcmFsU2V0 dGluZ3MudWkKLWluZGV4IDg0Y2I1ZGYuLmI0NzZmZjAgMTAwNjQ0Ci0tLS0gYS9zcmMvY29udGV4 dC9hcHBsZXRzL3dpa2lwZWRpYS93aWtpcGVkaWFHZW5lcmFsU2V0dGluZ3MudWkKLSsrKyBiL3Ny Yy9jb250ZXh0L2FwcGxldHMvd2lraXBlZGlhL3dpa2lwZWRpYUdlbmVyYWxTZXR0aW5ncy51aQot QEAgLTMyLDEzICszMiw2IEBACi0gICAgICAgIDwvcHJvcGVydHk+Ci0gICAgICAgPC93aWRnZXQ+ Ci0gICAgICA8L2l0ZW0+Ci0tICAgICA8aXRlbSByb3c9IjEiIGNvbHVtbj0iMSI+Ci0tICAgICAg PHdpZGdldCBjbGFzcz0iUUNoZWNrQm94IiBuYW1lPSJzc2xDaGVja0JveCI+Ci0tICAgICAgIDxw cm9wZXJ0eSBuYW1lPSJ0ZXh0Ij4KLS0gICAgICAgIDxzdHJpbmc+VXNlICZhbXA7U1NMPC9zdHJp bmc+Ci0tICAgICAgIDwvcHJvcGVydHk+Ci0tICAgICAgPC93aWRnZXQ+Ci0tICAgICA8L2l0ZW0+ Ci0gICAgIDwvbGF5b3V0PgotICAgIDwvaXRlbT4KLSAgIDwvbGF5b3V0PgotZGlmZiAtLWdpdCBh L3NyYy9jb250ZXh0L2VuZ2luZXMvd2lraXBlZGlhL1dpa2lwZWRpYUVuZ2luZS5jcHAgYi9zcmMv Y29udGV4dC9lbmdpbmVzL3dpa2lwZWRpYS9XaWtpcGVkaWFFbmdpbmUuY3BwCi1pbmRleCA5Njlk OGZjLi5kMjNhMzI3IDEwMDY0NAotLS0tIGEvc3JjL2NvbnRleHQvZW5naW5lcy93aWtpcGVkaWEv V2lraXBlZGlhRW5naW5lLmNwcAotKysrIGIvc3JjL2NvbnRleHQvZW5naW5lcy93aWtpcGVkaWEv V2lraXBlZGlhRW5naW5lLmNwcAotQEAgLTQ1LDcgKzQ1LDYgQEAgcHVibGljOgotICAgICAgICAg OiBxX3B0ciggcGFyZW50ICkKLSAgICAgICAgICwgY3VycmVudFNlbGVjdGlvbiggQXJ0aXN0ICkK LSAgICAgICAgICwgdXNlTW9iaWxlVmVyc2lvbiggZmFsc2UgKQotLSAgICAgICAgLCB1c2VTU0wo IHRydWUgKQotICAgICAgICAgLCBkYXRhQ29udGFpbmVyKCAwICkKLSAgICAge30KLSAgICAgfldp a2lwZWRpYUVuZ2luZVByaXZhdGUoKSB7fQotQEAgLTg5LDcgKzg4LDYgQEAgcHVibGljOgotICAg ICAgICAgfQotICAgICB9IG1fcHJldmlvdXNUcmFja01ldGFkYXRhOwotICAgICBib29sIHVzZU1v YmlsZVZlcnNpb247Ci0tICAgIGJvb2wgdXNlU1NMOwotIAotICAgICBQbGFzbWE6OkRhdGFDb250 YWluZXIgKmRhdGFDb250YWluZXI7Ci0gCi1AQCAtMTcxLDE2ICsxNjksNiBAQCBXaWtpcGVkaWFF bmdpbmVQcml2YXRlOjpfZGF0YUNvbnRhaW5lclVwZGF0ZWQoIGNvbnN0IFFTdHJpbmcgJnNvdXJj ZSwgY29uc3QgUGxhcwotICAgICAgICAgfQotICAgICB9Ci0gCi0tICAgIGlmKCBkYXRhLmNvbnRh aW5zKCBRTGF0aW4xU3RyaW5nKCJzc2wiKSApICkKLS0gICAgewotLSAgICAgICAgY29uc3QgYm9v bCBzc2wgPSBkYXRhLnZhbHVlKCBRTGF0aW4xU3RyaW5nKCJzc2wiKSApLnRvQm9vbCgpOwotLSAg ICAgICAgaWYoIHNzbCAhPSB1c2VTU0wgKQotLSAgICAgICAgewotLSAgICAgICAgICAgIHVzZVNT TCA9IHNzbDsKLS0gICAgICAgICAgICB1cGRhdGVFbmdpbmUoKTsKLS0gICAgICAgIH0KLS0gICAg fQotLQotICAgICBpZiggZGF0YS5jb250YWlucyggUUxhdGluMVN0cmluZygibGFuZyIpICkgKQot ICAgICB7Ci0gICAgICAgICBRU3RyaW5nTGlzdCBsYW5nTGlzdCA9IGRhdGEudmFsdWUoIFFMYXRp bjFTdHJpbmcoImxhbmciKSApLnRvU3RyaW5nTGlzdCgpOwotQEAgLTU0NCw3ICs1MzIsNyBAQCBX aWtpcGVkaWFFbmdpbmVQcml2YXRlOjpmZXRjaFdpa2lVcmwoIGNvbnN0IFFTdHJpbmcgJnRpdGxl LCBjb25zdCBRU3RyaW5nICZ1cmxQcgotICAgICBRX1EoIFdpa2lwZWRpYUVuZ2luZSApOwotICAg ICBLVXJsIHBhZ2VVcmw7Ci0gICAgIFFTdHJpbmcgaG9zdCggIi53aWtpcGVkaWEub3JnIiApOwot LSAgICBwYWdlVXJsLnNldFNjaGVtZSggdXNlU1NMID8gUUxhdGluMVN0cmluZyggImh0dHBzIiAp IDogUUxhdGluMVN0cmluZyggImh0dHAiICkgKTsKLSsgICAgcGFnZVVybC5zZXRTY2hlbWUoIFFM YXRpbjFTdHJpbmcoICJodHRwcyIgKSApOwotIAotICAgICBpZiggdXNlTW9iaWxlVmVyc2lvbiAp Ci0gICAgIHsKLUBAIC01ODIsNyArNTcwLDcgQEAgV2lraXBlZGlhRW5naW5lUHJpdmF0ZTo6ZmV0 Y2hMYW5nTGlua3MoIGNvbnN0IFFTdHJpbmcgJnRpdGxlLAotIHsKLSAgICAgUV9RKCBXaWtpcGVk aWFFbmdpbmUgKTsKLSAgICAgS1VybCB1cmw7Ci0tICAgIHVybC5zZXRTY2hlbWUoIHVzZVNTTCA/ IFFMYXRpbjFTdHJpbmcoICJodHRwcyIgKSA6IFFMYXRpbjFTdHJpbmcoICJodHRwIiApICk7Ci0r ICAgIHVybC5zZXRTY2hlbWUoIFFMYXRpbjFTdHJpbmcoICJodHRwcyIgKSApOwotICAgICB1cmwu c2V0SG9zdCggaG9zdExhbmcgKyBRTGF0aW4xU3RyaW5nKCIud2lraXBlZGlhLm9yZyIpICk7Ci0g ICAgIHVybC5zZXRQYXRoKCBRTGF0aW4xU3RyaW5nKCIvdy9hcGkucGhwIikgKTsKLSAgICAgdXJs LmFkZFF1ZXJ5SXRlbSggUUxhdGluMVN0cmluZygiYWN0aW9uIiksIFFMYXRpbjFTdHJpbmcoInF1 ZXJ5IikgKTsKLUBAIC02MDQsNyArNTkyLDcgQEAgV2lraXBlZGlhRW5naW5lUHJpdmF0ZTo6ZmV0 Y2hMaXN0aW5nKCBjb25zdCBRU3RyaW5nICZ0aXRsZSwgY29uc3QgUVN0cmluZyAmaG9zdEwKLSB7 Ci0gICAgIFFfUSggV2lraXBlZGlhRW5naW5lICk7Ci0gICAgIEtVcmwgdXJsOwotLSAgICB1cmwu c2V0U2NoZW1lKCB1c2VTU0wgPyBRTGF0aW4xU3RyaW5nKCAiaHR0cHMiICkgOiBRTGF0aW4xU3Ry aW5nKCAiaHR0cCIgKSApOwotKyAgICB1cmwuc2V0U2NoZW1lKCBRTGF0aW4xU3RyaW5nKCAiaHR0 cHMiICkgKTsKLSAgICAgdXJsLnNldEhvc3QoIGhvc3RMYW5nICsgUUxhdGluMVN0cmluZygiLndp a2lwZWRpYS5vcmciKSApOwotICAgICB1cmwuc2V0UGF0aCggUUxhdGluMVN0cmluZygiL3cvYXBp LnBocCIpICk7Ci0gICAgIHVybC5hZGRRdWVyeUl0ZW0oIFFMYXRpbjFTdHJpbmcoImFjdGlvbiIp LCBRTGF0aW4xU3RyaW5nKCJxdWVyeSIpICk7Ci0tLSAKLTIuNy40Ci0KCmRpZmYgLS1naXQgYS8w MDIwLVdpa2lwZWRpYS1hcHBsZXQtUmVtb3ZlLWxhc3QtdHJhY2Utb2Ytbm8tU1NMLXBvc3NpYmku cGF0Y2ggYi8wMDIwLVdpa2lwZWRpYS1hcHBsZXQtUmVtb3ZlLWxhc3QtdHJhY2Utb2Ytbm8tU1NM LXBvc3NpYmkucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDExMGM4MDIuLjAw MDAwMDAKLS0tIGEvMDAyMC1XaWtpcGVkaWEtYXBwbGV0LVJlbW92ZS1sYXN0LXRyYWNlLW9mLW5v LVNTTC1wb3NzaWJpLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMjUgKzAsMCBAQAotRnJvbSAz MzMzMTVkNjg3NTVkYzVkY2Y1NDkzODZhNGQ1MGQ4YTE1ZWJmYmVhIE1vbiBTZXAgMTcgMDA6MDA6 MDAgMjAwMQotRnJvbTogT2xpdmllciBDSFVSTEFVRCA8b2xpdmllckBjaHVybGF1ZC5jb20+Ci1E YXRlOiBUdWUsIDIxIEp1biAyMDE2IDAwOjQ3OjQ5ICswMjAwCi1TdWJqZWN0OiBbUEFUQ0ggMjAv MjZdIFdpa2lwZWRpYSBhcHBsZXQ6IFJlbW92ZSBsYXN0IHRyYWNlIG9mIG5vIFNTTAotIHBvc3Np YmlsaXR5Ci0KLS0tLQotIHNyYy9jb250ZXh0L2FwcGxldHMvd2lraXBlZGlhL1dpa2lwZWRpYUFw cGxldC5jcHAgfCAxIC0KLSAxIGZpbGUgY2hhbmdlZCwgMSBkZWxldGlvbigtKQotCi1kaWZmIC0t Z2l0IGEvc3JjL2NvbnRleHQvYXBwbGV0cy93aWtpcGVkaWEvV2lraXBlZGlhQXBwbGV0LmNwcCBi L3NyYy9jb250ZXh0L2FwcGxldHMvd2lraXBlZGlhL1dpa2lwZWRpYUFwcGxldC5jcHAKLWluZGV4 IDdmMWM3MzIuLjcwNWI5ZGIgMTAwNjQ0Ci0tLS0gYS9zcmMvY29udGV4dC9hcHBsZXRzL3dpa2lw ZWRpYS9XaWtpcGVkaWFBcHBsZXQuY3BwCi0rKysgYi9zcmMvY29udGV4dC9hcHBsZXRzL3dpa2lw ZWRpYS9XaWtpcGVkaWFBcHBsZXQuY3BwCi1AQCAtNjU2LDcgKzY1Niw2IEBAIFdpa2lwZWRpYUFw cGxldDo6aW5pdCgpCi0gICAgIC8vIFJlYWQgY29uZmlnIGFuZCBpbmZvcm0gdGhlIGVuZ2luZS4K LSAgICAgZC0+bGFuZ0xpc3QgPSBBbWFyb2s6OmNvbmZpZygiV2lraXBlZGlhIEFwcGxldCIpLnJl YWRFbnRyeSggIlByZWZlcnJlZExhbmciLCBRU3RyaW5nTGlzdCgpIDw8ICJlbiIgKTsKLSAgICAg ZC0+dXNlTW9iaWxlV2lraXBlZGlhID0gQW1hcm9rOjpjb25maWcoIldpa2lwZWRpYSBBcHBsZXQi KS5yZWFkRW50cnkoICJVc2VNb2JpbGUiLCBmYWxzZSApOwotLSAgICBkLT51c2VTU0wgPSBBbWFy b2s6OmNvbmZpZyggIldpa2lwZWRpYSBBcHBsZXQiICkucmVhZEVudHJ5KCAiVXNlU1NMIiwgdHJ1 ZSApOwotICAgICBkLT5fcGFsZXR0ZUNoYW5nZWQoIEFwcDo6aW5zdGFuY2UoKS0+cGFsZXR0ZSgp ICk7Ci0gICAgIGQtPmRhdGFDb250YWluZXItPnNldERhdGEoICJsYW5nIiwgZC0+bGFuZ0xpc3Qg KTsKLSAgICAgZC0+ZGF0YUNvbnRhaW5lci0+c2V0RGF0YSggIm1vYmlsZSIsIGQtPnVzZU1vYmls ZVdpa2lwZWRpYSApOwotLS0gCi0yLjcuNAotCgpkaWZmIC0tZ2l0IGEvMDAyNC1TdWJzdGl0dXRl LWRlcHJlY2F0ZWQtTXlTUUwtb3B0aW9uLW15aXNhbS1yZWNvdmVyLnBhdGNoIGIvMDAyNC1TdWJz dGl0dXRlLWRlcHJlY2F0ZWQtTXlTUUwtb3B0aW9uLW15aXNhbS1yZWNvdmVyLnBhdGNoCmRlbGV0 ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiOGIxZjI2Li4wMDAwMDAwCi0tLSBhLzAwMjQtU3Vi c3RpdHV0ZS1kZXByZWNhdGVkLU15U1FMLW9wdGlvbi1teWlzYW0tcmVjb3Zlci5wYXRjaAorKysg L2Rldi9udWxsCkBAIC0xLDQwICswLDAgQEAKLUZyb20gYTA3ZjQ0ZGRjZDYxYmFjMWJiMmYxZTE3 Y2ZjMDdkNDBhOTQwYmI1YSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IFRlcmplIFJv c3RlbiA8dGVyamUucm9zdGVuQG9yYWNsZS5jb20+Ci1EYXRlOiBGcmksIDIzIE9jdCAyMDE1IDEy OjExOjQzICswMjAwCi1TdWJqZWN0OiBbUEFUQ0ggMjQvMjZdIFN1YnN0aXR1dGUgZGVwcmVjYXRl ZCBNeVNRTCBvcHRpb24gLS1teWlzYW0tcmVjb3ZlcgotCi1EZXByZWNhdGVkIE15U1FMIG9wdGlv biAtLW15aXNhbS1yZWNvdmVyIGhhcyBiZWVuIHJlbW92ZWQgaW4gTXlTUUwgNS43LAotcmVwbGFj ZW1lbnQgaXMgLS1teWlzYW0tcmVjb3Zlci1vcHRpb25zLgotCi1Vc2UgTVlTUUxfVkVSU0lPTl9J RCB0byBoYW5kbGUgdGhpcy4KLQotU2lnbmVkLW9mZi1ieTogVGVyamUgUm9zdGVuIDx0ZXJqZS5y b3N0ZW5Ab3JhY2xlLmNvbT4KLVNpZ25lZC1vZmYtYnk6IFN0ZWZhbm8gUGV0dGluaSA8c3RlZmFu by5wZXR0aW5pQGdtYWlsLmNvbT4KLQotQ0NNQUlMOiBUZXJqZSBSb3N0ZW4gPHRlcmplLnJvc3Rl bkBvcmFjbGUuY29tPgotQlVHOiAzNTQyNTUKLVJFVklFVzogMTI4MTU3Ci1GSVhFRC1JTjogMi45 Ci0tLS0KLSBzcmMvY29yZS1pbXBsL3N0b3JhZ2Uvc3FsL215c3FsZXN0b3JhZ2UvTXlTcWxFbWJl ZGRlZFN0b3JhZ2UuY3BwIHwgNCArKysrCi0gMiBmaWxlcyBjaGFuZ2VkLCA2IGluc2VydGlvbnMo KykKLQotZGlmZiAtLWdpdCBhL3NyYy9jb3JlLWltcGwvc3RvcmFnZS9zcWwvbXlzcWxlc3RvcmFn ZS9NeVNxbEVtYmVkZGVkU3RvcmFnZS5jcHAgYi9zcmMvY29yZS1pbXBsL3N0b3JhZ2Uvc3FsL215 c3FsZXN0b3JhZ2UvTXlTcWxFbWJlZGRlZFN0b3JhZ2UuY3BwCi1pbmRleCA0YTk1NjhmLi45ZmE3 OTFiIDEwMDY0NAotLS0tIGEvc3JjL2NvcmUtaW1wbC9zdG9yYWdlL3NxbC9teXNxbGVzdG9yYWdl L015U3FsRW1iZWRkZWRTdG9yYWdlLmNwcAotKysrIGIvc3JjL2NvcmUtaW1wbC9zdG9yYWdlL3Nx bC9teXNxbGVzdG9yYWdlL015U3FsRW1iZWRkZWRTdG9yYWdlLmNwcAotQEAgLTcwLDcgKzcwLDEx IEBAIE15U3FsRW1iZWRkZWRTdG9yYWdlOjppbml0KCBjb25zdCBRU3RyaW5nICZzdG9yYWdlTG9j YXRpb24gKQotICAgICAgICAgICAgICAgIDw8ICItLWRlZmF1bHQtc3RvcmFnZS1lbmdpbmU9TXlJ U0FNIgotICAgICAgICAgICAgICAgIDw8ICItLWlubm9kYj1PRkYiCi0gICAgICAgICAgICAgICAg PDwgIi0tc2tpcC1ncmFudC10YWJsZXMiCi0rI2lmIChkZWZpbmVkKE1ZU1FMX1ZFUlNJT05fSUQp KSAmJiAoTVlTUUxfVkVSU0lPTl9JRCA+PSA1MDcwMCkKLSsgICAgICAgICAgICAgICA8PCAiLS1t eWlzYW0tcmVjb3Zlci1vcHRpb25zPUZPUkNFIgotKyNlbHNlCi0gICAgICAgICAgICAgICAgPDwg Ii0tbXlpc2FtLXJlY292ZXI9Rk9SQ0UiCi0rI2VuZGlmCi0gICAgICAgICAgICAgICAgPDwgIi0t a2V5LWJ1ZmZlci1zaXplPTE2Nzc3MjE2IiAvLyAoMTZNYikKLSAgICAgICAgICAgICAgICA8PCAi LS1jaGFyYWN0ZXItc2V0LXNlcnZlcj11dGY4IgotICAgICAgICAgICAgICAgIDw8ICItLWNvbGxh dGlvbi1zZXJ2ZXI9dXRmOF9iaW4iOwotLS0gCi0yLjcuNAotCgpkaWZmIC0tZ2l0IGEvMDAyNS1I YW5kbGUtbnVtZXJpYy1maWVsZHMtcHJvcGVybHktaW4tZmlsdGVyLWNyZWF0aW9uLWRpLnBhdGNo IGIvMDAyNS1IYW5kbGUtbnVtZXJpYy1maWVsZHMtcHJvcGVybHktaW4tZmlsdGVyLWNyZWF0aW9u LWRpLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3MTgzNjdlLi4wMDAwMDAw Ci0tLSBhLzAwMjUtSGFuZGxlLW51bWVyaWMtZmllbGRzLXByb3Blcmx5LWluLWZpbHRlci1jcmVh dGlvbi1kaS5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDQ3ICswLDAgQEAKLUZyb20gNmM0OWNm ZGZkOTdmYWExNDZjZTdiMGQ4ZTk1Y2UyYmY1OTZmMmIwZCBNb24gU2VwIDE3IDAwOjAwOjAwIDIw MDEKLUZyb206IFN0ZWZhbm8gUGV0dGluaSA8c3RlZmFuby5wZXR0aW5pQGdtYWlsLmNvbT4KLURh dGU6IFN1biwgMTkgSnVuIDIwMTYgMDA6MTM6MTMgKzAyMDAKLVN1YmplY3Q6IFtQQVRDSCAyNS8y Nl0gSGFuZGxlIG51bWVyaWMgZmllbGRzIHByb3Blcmx5IGluIGZpbHRlciBjcmVhdGlvbgotIGRp YWxvZ3MKLQotRXZlcnkgbnVtZXJpYyBmaWVsZCwgbGlrZSBsZW5ndGgsIGRpc2MgbnVtYmVyIGFu ZCB0cmFjayBudW1iZXIsIHdlcmUKLW5vdCBwcm9wZXJseSBwYXJzZWQgYnkgdGhlIGZpbHRlciBk aWFsb2cgb3IgYnkgdGhlIGR5bmFtaWMgcGxheWxpc3QKLWRpYWxvZyBpbnRvIHRoZSB0ZXh0dWFs IHF1ZXJ5IHN0cmluZyB1c2VkIHRvIHRoZW4gYXBwbHkgdGhlIGZpbHRlci4KLQotVGhlIGJ1ZyB3 YXMgZHVlIHRvIHdoYXQgc291bmRzIGxpa2UgYW4gIm9wdGltaXphdGlvbiIgdGhhdCBzd2FwcGVk IHRoZQotZmlyc3QgYW5kIHNlY29uZCB2YWx1ZSBvZiBhICJiZXR3ZWVuIiBjb25kaXRpb24sIHRv IG1ha2Ugc3VyZSB0aGUKLXNtYWxsZXIgdmFsdWUgd2FzIGFsd2F5cyB0aGUgZmlyc3QgdmFsdWUg YW5kIHRoZSBsYXJnZXIgYWx3YXlzIHRoZQotc2Vjb25kLiBUaGUgcHJvYmxlbSB3YXMgdGhhdCB0 aGlzIHdhcyBhcHBsaWVkIGFsc28gdG8gbm9uLWJldHdlZW4KLWNvbmRpdGlvbnMsIGFjdHVhbGx5 IHN3YXBwaW5nIHRoZSBsZW50aCBvciBkaXNjIG51bWJlciB3aXRoIDAsIG1ha2luZwotMCBhcHBl YXIgaW4gdGhlIHRleHR1YWwgcmVwcmVzZW50YXRpb24gb2YgdGhlIGNvbmRpdGlvbi4KLQotVGhl IGZpeCBtYWtlcyBzdXJlIHRoYXQgIm9wdGltaXphdGlvbiIgaXMgYXBwbGllZCBvbmx5IGluIGNh c2Ugb2YKLWFjdHVhbCAiYmV0d2VlbiIgY29uZGl0aW9ucywgbGVhdmluZyB0aGUgdmFsdWVzICJ1 bm9wdGltaXplZCIgZm9yIGFueQotb3RoZXIga2luZCBvZiBjb25kaXRpb24gKD0sIDwsID4gYW5k IHNpbWlsYXIpLgotCi1SRVZJRVc6IDEyODI0NQotQlVHOiAzNDE2NjEKLS0tLQotIHNyYy93aWRn ZXRzL01ldGFRdWVyeVdpZGdldC5jcHAgfCA2ICsrKysrLQotIDIgZmlsZXMgY2hhbmdlZCwgNyBp bnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCi0KLWRpZmYgLS1naXQgYS9zcmMvd2lkZ2V0cy9N ZXRhUXVlcnlXaWRnZXQuY3BwIGIvc3JjL3dpZGdldHMvTWV0YVF1ZXJ5V2lkZ2V0LmNwcAotaW5k ZXggYWJjZTZiNy4uNDBmMTVkNiAxMDA2NDQKLS0tLSBhL3NyYy93aWRnZXRzL01ldGFRdWVyeVdp ZGdldC5jcHAKLSsrKyBiL3NyYy93aWRnZXRzL01ldGFRdWVyeVdpZGdldC5jcHAKLUBAIC0xMDgx LDcgKzEwODEsMTEgQEAgUVN0cmluZyBNZXRhUXVlcnlXaWRnZXQ6OkZpbHRlcjo6dG9TdHJpbmco IGJvb2wgaW52ZXJ0ICkgY29uc3QKLSAgICAgfQotICAgICBlbHNlIGlmKCBpc051bWVyaWMoKSAp Ci0gICAgIHsKLS0gICAgICAgIGlmIChudW1WYWx1ZSA8IG51bVZhbHVlMikgLy8gdHdvIHZhbHVl cyBhcmUgb25seSB1c2VkIGZvciAiYmV0d2VlbiIuIFdlIHdhbnQgdG8gb3JkZXIgdGhlbSBieSBz aXplCi0rICAgICAgICBpZiAoIGNvbmRpdGlvbiAhPSBCZXR3ZWVuICkKLSsgICAgICAgIHsKLSsg ICAgICAgICAgICBzdHJWYWx1ZTEgPSBRU3RyaW5nOjpudW1iZXIoIG51bVZhbHVlICk7Ci0rICAg ICAgICB9Ci0rICAgICAgICBlbHNlIGlmIChudW1WYWx1ZSA8IG51bVZhbHVlMikgLy8gdHdvIHZh bHVlcyBhcmUgb25seSB1c2VkIGZvciAiYmV0d2VlbiIuIFdlIHdhbnQgdG8gb3JkZXIgdGhlbSBi eSBzaXplCi0gICAgICAgICB7Ci0gICAgICAgICAgICAgc3RyVmFsdWUxID0gUVN0cmluZzo6bnVt YmVyKCBudW1WYWx1ZSApOwotICAgICAgICAgICAgIHN0clZhbHVlMiA9IFFTdHJpbmc6Om51bWJl ciggbnVtVmFsdWUyICk7Ci0tLSAKLTIuNy40Ci0KCmRpZmYgLS1naXQgYS8wMDI2LVVzZS10cmFu c3BhcmVudC1iYWNrZ3JvdW5kLWZvci1seXJpY3MtYnJvd3Nlci5wYXRjaCBiLzAwMjYtVXNlLXRy YW5zcGFyZW50LWJhY2tncm91bmQtZm9yLWx5cmljcy1icm93c2VyLnBhdGNoCmRlbGV0ZWQgZmls ZSBtb2RlIDEwMDY0NAppbmRleCA1YmM0YWIyLi4wMDAwMDAwCi0tLSBhLzAwMjYtVXNlLXRyYW5z cGFyZW50LWJhY2tncm91bmQtZm9yLWx5cmljcy1icm93c2VyLnBhdGNoCisrKyAvZGV2L251bGwK QEAgLTEsNTUgKzAsMCBAQAotRnJvbSBiZGJiM2EyN2Y1NTZjNDE5MTBkM2I4MTRlNWE0YzczYTJh OTMzNjJmIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogU3RlZmFubyBQZXR0aW5pIDxz dGVmYW5vLnBldHRpbmlAZ21haWwuY29tPgotRGF0ZTogU3VuLCAxOSBKdW4gMjAxNiAwMjo1NDoy NCArMDIwMAotU3ViamVjdDogW1BBVENIIDI2LzI2XSBVc2UgdHJhbnNwYXJlbnQgYmFja2dyb3Vu ZCBmb3IgbHlyaWNzIGJyb3dzZXIKLQotVGhpcyBtYWtlcyB0aGUgbHlyaWNzIGJyb3dzZXIgc2lt aWxhciB0byBldmVyeSBvdGhlciBjb250ZXh0IGFwcGxldC4KLVBsZWFzZSBub3RlIHRoYXQsIHdo ZW4gZWRpdGluZyBseXJpY3MsIHRoZSBkZWZhdWx0IHRleHRib3ggYmFja2dyb3VuZAotaXMgc3Rp bGwgdXNlZC4KLQotUkVWSUVXOiAxMjgyNDYKLUJVRzogMzE0ODU0Ci0tLS0KLSBzcmMvY29udGV4 dC9hcHBsZXRzL2x5cmljcy9MeXJpY3NCcm93c2VyLmNwcCB8IDEyICsrKysrLS0tLS0tLQotIDIg ZmlsZXMgY2hhbmdlZCwgNiBpbnNlcnRpb25zKCspLCA3IGRlbGV0aW9ucygtKQotCi1kaWZmIC0t Z2l0IGEvc3JjL2NvbnRleHQvYXBwbGV0cy9seXJpY3MvTHlyaWNzQnJvd3Nlci5jcHAgYi9zcmMv Y29udGV4dC9hcHBsZXRzL2x5cmljcy9MeXJpY3NCcm93c2VyLmNwcAotaW5kZXggYWJjZmU2NC4u ZDk0OGZlYSAxMDA2NDQKLS0tLSBhL3NyYy9jb250ZXh0L2FwcGxldHMvbHlyaWNzL0x5cmljc0Jy b3dzZXIuY3BwCi0rKysgYi9zcmMvY29udGV4dC9hcHBsZXRzL2x5cmljcy9MeXJpY3NCcm93c2Vy LmNwcAotQEAgLTQxLDcgKzQxLDYgQEAgTHlyaWNzQnJvd3Nlcjo6THlyaWNzQnJvd3NlciggUUdy YXBoaWNzV2lkZ2V0ICpwYXJlbnQgKQotICAgICBuYXRpdmUtPnNldFdvcmRXcmFwTW9kZSggUVRl eHRPcHRpb246OldvcmRXcmFwICk7Ci0gICAgIG5hdGl2ZS0+c2V0Q3Vyc29yV2lkdGgoIDAgKTsK LSAgICAgbmF0aXZlLT5kb2N1bWVudCgpLT5zZXREb2N1bWVudE1hcmdpbiggMTAgKTsKLS0gICAg bmF0aXZlLT52aWV3cG9ydCgpLT5zZXRBdXRvRmlsbEJhY2tncm91bmQoIHRydWUgKTsKLSAgICAg bmF0aXZlLT5zZXRUZXh0SW50ZXJhY3Rpb25GbGFncyggUXQ6OlRleHRCcm93c2VySW50ZXJhY3Rp b24gfCBRdDo6VGV4dFNlbGVjdGFibGVCeUtleWJvYXJkICk7Ci0gCi0gICAgIFBsYXNtYTo6U3Zn ICpib3JkZXJTdmcgPSBuZXcgUGxhc21hOjpTdmcoIHRoaXMgKTsKLUBAIC0xMDUsMTAgKzEwNCwx MSBAQCB2b2lkIEx5cmljc0Jyb3dzZXI6OnNldEx5cmljcyggY29uc3QgUVN0cmluZyAmbHlyaWNz ICkKLSAKLSB2b2lkIEx5cmljc0Jyb3dzZXI6OnNldFJlYWRPbmx5KCBib29sIHJlYWRPbmx5ICkK LSB7Ci0tICAgIFFQYWxldHRlOjpDb2xvclJvbGUgYmcgPSByZWFkT25seSA/IFFQYWxldHRlOjpC YXNlIDogUVBhbGV0dGU6OkFsdGVybmF0ZUJhc2U7Ci0tICAgIG5hdGl2ZVdpZGdldCgpLT52aWV3 cG9ydCgpLT5zZXRCYWNrZ3JvdW5kUm9sZSggYmcgKTsKLS0gICAgbmF0aXZlV2lkZ2V0KCktPnNl dFJlYWRPbmx5KCByZWFkT25seSApOwotLSAgICBuYXRpdmVXaWRnZXQoKS0+c2V0Q3Vyc29yV2lk dGgoICFyZWFkT25seSA/IDEgOiAwICk7Ci0rICAgIEtUZXh0QnJvd3NlciAqbmF0aXZlID0gbmF0 aXZlV2lkZ2V0KCk7Ci0rCi0rICAgIG5hdGl2ZS0+dmlld3BvcnQoKS0+c2V0QXV0b0ZpbGxCYWNr Z3JvdW5kKCAhcmVhZE9ubHkgKTsKLSsgICAgbmF0aXZlLT5zZXRSZWFkT25seSggcmVhZE9ubHkg KTsKLSsgICAgbmF0aXZlLT5zZXRDdXJzb3JXaWR0aCggIXJlYWRPbmx5ID8gMSA6IDAgKTsKLSB9 Ci0gCi0gdm9pZCBMeXJpY3NCcm93c2VyOjpzZXRSaWNoVGV4dCggYm9vbCByaWNoVGV4dCApCi1A QCAtMTIyLDggKzEyMiw2IEBAIHZvaWQgTHlyaWNzQnJvd3Nlcjo6cGFsZXR0ZUNoYW5nZWQoIGNv bnN0IFFQYWxldHRlICZwYWxldHRlICkKLSAgICAgLy8gc2V0IHRleHQgY29sb3IgdXNpbmcgYXBw IHRoZW1lIGluc3RlYWQgb2YgcGxhc21hIHRoZW1lCi0gICAgIHAuc2V0Q29sb3IoIFFQYWxldHRl OjpUZXh0LCBxQXBwLT5wYWxldHRlKCkudGV4dCgpLmNvbG9yKCkgKTsKLSAKLS0gICAgUVBhbGV0 dGU6OkNvbG9yUm9sZSBiZyA9IGlzUmVhZE9ubHkoKSA/IFFQYWxldHRlOjpCYXNlIDogUVBhbGV0 dGU6OkFsdGVybmF0ZUJhc2U7Ci0tICAgIG5hdGl2ZVdpZGdldCgpLT52aWV3cG9ydCgpLT5zZXRC YWNrZ3JvdW5kUm9sZSggYmcgKTsKLSAgICAgbmF0aXZlV2lkZ2V0KCktPnNldFBhbGV0dGUoIHAg KTsKLSB9Ci0gCi0tLSAKLTIuNy40Ci0KCmRpZmYgLS1naXQgYS8wMDI3LU9yZ2FuaXplLXRyYWNr cy1HdWVzcy10YWdzLXByZXNldHMtcGVyc2lzdGVkLXByb3BlcmwucGF0Y2ggYi8wMDI3LU9yZ2Fu aXplLXRyYWNrcy1HdWVzcy10YWdzLXByZXNldHMtcGVyc2lzdGVkLXByb3BlcmwucGF0Y2gKZGVs ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGM4NGVmNTEuLjAwMDAwMDAKLS0tIGEvMDAyNy1P cmdhbml6ZS10cmFja3MtR3Vlc3MtdGFncy1wcmVzZXRzLXBlcnNpc3RlZC1wcm9wZXJsLnBhdGNo CisrKyAvZGV2L251bGwKQEAgLTEsMzgzICswLDAgQEAKLUZyb20gMGU3NjBlNWY4ZDA2ZDAwZTA4 NGMxNGI2NDg3NWY1OGJiNDJiZDhmMSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IFN0 ZWZhbm8gUGV0dGluaSA8c3RlZmFuby5wZXR0aW5pQGdtYWlsLmNvbT4KLURhdGU6IFN1biwgMzEg SnVsIDIwMTYgMjI6MzI6MTEgKzAyMDAKLVN1YmplY3Q6IFtQQVRDSCAyNy80N10gT3JnYW5pemUg dHJhY2tzIC8gR3Vlc3MgdGFncyBwcmVzZXRzIHBlcnNpc3RlZAotIHByb3Blcmx5LgotCi1GaWxl bmFtZUxheW91dFdpZGdldCBpcyByZXdvcmtlZCB0byBmaXggYW4gb2xkIGJ1ZyByZWdhcmRpbmcg dGhlIHByZXNldHMKLW5vdCBiZWluZyBzYXZlZCBwcm9wZXJseSwgdGhhdCBJIHdhcyBhbHNvIGFi bGUgdG8gcmVwcm9kdWNlLgotCi1Mb2dpYyBpcyBub3QgYSBiaXQgbW9yZSAibGluZWFyIi4gUHJl c2V0cyBhcmUgc2hhcmVkIGJldHdlZW4gIk9yZ2FuaXplIHRyYWNrcyIKLWFuZCAiR3Vlc3MgdGFn cyIgZGlhbG9nLiBJZiB0aGlzIGlzIG5vdCB3aGF0IGlzIHdhbnRlZCwgaXQgY2FuIGJlIGVhc2ls eSBjaGFuZ2VkLAotanVzdCBsZXQgbWUga25vdy4gUHJlc2V0cyBhcmUgc2F2ZWQgYXMgc29vbiBh cyB0aGV5IGFyZSBhZGRlZCwgdXBkYXRlZCBvciBkZWxldGVkLgotSXQgaXMgbm90IGFueW1vcmUg bmVjZXNzYXJ5IHRvIGFjY2VwdCB0aGUgZGlhbG9nIHRvIHNhdmUgZXZlbnR1YWwgY2hhbmdlcy4K LQotVGhlIHByZXNldCB1c2VkIGlzIG5vdCBzYXZlZCB3aXRoIHRoZSBtYXJrZXIgIiNERUxJTSNz ZWxlY3RlZCIgYW55bW9yZS4KLVByZXNldHMgYXJlIGp1c3QgcHJlc2V0cy4gVGhlIG9uZSB1c2Vk IGlzIG1hdGNoZWQgb24gdGhlIGZseSB1c2luZyB0aGUgY3VzdG9tCi1wcmVzZXQgZmllbGQuIElm IGEgcHJlc2V0IG1hdGNoZXMgdGhlIGN1c3RvbSBwcmVzZXQgZmllbGQsIGl0J3MgY29uc2lkZXJl ZAotc2VsZWN0ZWQuIFVzZXJzIGNhbiBvZiBjb3Vyc2UgY3JlYXRlIGN1c3RvbSBwcmVzZXRzIGFz IGJlZm9yZS4KLVdoaWxlIHByZXNldHMgYXJlIHNoYXJlZCBiZXR3ZWVuIHRoZSB0d28gZGlhbG9n cywgY3VzdG9tIHByZXNldHMgYXJlIG5vdC4KLQotQWRkL1VwZGF0ZS9SZW1vdmUgd29yayBwcm9w ZXJseS4gQ2xpY2tpbmcgb24gYSBwcmVzZXQgbmFtZSBpbiB0aGUgY29tYm9ib3gKLXJlc2V0cyB0 aGUgY3VzdG9tIHBhdHRlcm4gdG8gdGhlIHByZXNldCB2YWx1ZSwgdGhpcyBpcyBhIG5ldyBmZWF0 dXJlLAotYmVmb3JlIGl0IHdhcyBub3QgcG9zc2libGUuCi0KLUl0J3MgYSBiaXQgZGlmZmljdWx0 IHRvIGV4cGxhaW4sIGJ1dCBVWCBpcyBtb3JlIG5hdHVyYWwsIGp1c3QgZ2l2ZSBpdCBhIHRyeS4K LQotQSBsb3Qgb2YgdGVzdGluZyB3YXMgZG9uZSAoYnkgU3RlZmFubyksIGxpa2U6Ci0tIGFkZGlu Zy91cGRhdGluZy9yZW1vdmluZyBwcmVzZXRzLgotLSBpZiBzZXR0aW5ncyBhcmUgcGVyc2lzdGVk IGFuZCBzaGFyZWQgd2hlbiBkaWFsb2dzIGFyZSBjYW5jZWxsZWQgb3IgYWNjZXB0ZWQuCi0tIGlm IGN1c3RvbSBwYXR0ZXJucyBhcmUgcGVyc2lzdGVkIGFuZCBub3Qgc2hhcmVkLgotLSByZXNldHRp bmcgYSBtb2RpZmllZCBwYXR0ZXJuIHRvIGl0cyBkZWZ1YWx0LgotLSBjYW5jZWxsaW5nIGRpYWxv Z3MsIG1vZGlmaWVkIHByZXNldHMgYXJlIGtlcHQgYnV0IGN1c3RvbSBwYXR0ZXJucyBhcmUgbm90 LgotCi1SRVZJRVc6IDEyODU2NQotQlVHOiAyMjYxNDQKLS0tLQotIENoYW5nZUxvZyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDQgKy0KLSBzcmMvYW1hcm9rY29uZmlnLmtjZmcg ICAgICAgICAgICAgICAgICAgIHwgICAyICstCi0gc3JjL2RpYWxvZ3MvT3JnYW5pemVDb2xsZWN0 aW9uRGlhbG9nLmNwcCB8ICAgNSAtLQotIHNyYy9kaWFsb2dzL09yZ2FuaXplQ29sbGVjdGlvbkRp YWxvZy5oICAgfCAgIDIgLQotIHNyYy93aWRnZXRzL0ZpbGVuYW1lTGF5b3V0V2lkZ2V0LmNwcCAg ICAgfCAxMDIgKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLQotIHNyYy93aWRnZXRzL0Zp bGVuYW1lTGF5b3V0V2lkZ2V0LmggICAgICAgfCAgMTAgKystCi0gNiBmaWxlcyBjaGFuZ2VkLCA2 MSBpbnNlcnRpb25zKCspLCA2NCBkZWxldGlvbnMoLSkKLQotZGlmZiAtLWdpdCBhL3NyYy9hbWFy b2tjb25maWcua2NmZyBiL3NyYy9hbWFyb2tjb25maWcua2NmZwotaW5kZXggYzM1MTQwYy4uYjQx Y2E1YiAxMDA2NDQKLS0tLSBhL3NyYy9hbWFyb2tjb25maWcua2NmZwotKysrIGIvc3JjL2FtYXJv a2NvbmZpZy5rY2ZnCi1AQCAtMTgzLDcgKzE4Myw3IEBACi0gICAgIDxlbnRyeSBrZXk9IkZvcm1h dCBQcmVzZXRzIiB0eXBlPSJTdHJpbmdMaXN0Ij4KLSAgICAgICAgIDxsYWJlbD5Gb3JtYXQgUHJl c2V0czwvbGFiZWw+Ci0gICAgICAgICA8d2hhdHN0aGlzPkEgbGlzdCBvZiBwcmVzZXQgZm9ybWF0 cyAodG9rZW4gc2NoZW1hcykuPC93aGF0c3RoaXM+Ci0tICAgICAgICA8ZGVmYXVsdD5EZWZhdWx0 I0RFTElNIyVhcnRpc3QlLyVhbGJ1bSUvJXRyYWNrJV8tXyV0aXRsZSUjREVMSU0jc2VsZWN0ZWQ8 L2RlZmF1bHQ+Ci0rICAgICAgICA8ZGVmYXVsdD5EZWZhdWx0I0RFTElNIyVhcnRpc3QlLyVhbGJ1 bSUvJXRyYWNrJV8tXyV0aXRsZSU8L2RlZmF1bHQ+Ci0gICAgIDwvZW50cnk+Ci0gPC9ncm91cD4K LSAKLWRpZmYgLS1naXQgYS9zcmMvZGlhbG9ncy9Pcmdhbml6ZUNvbGxlY3Rpb25EaWFsb2cuY3Bw IGIvc3JjL2RpYWxvZ3MvT3JnYW5pemVDb2xsZWN0aW9uRGlhbG9nLmNwcAotaW5kZXggOTczZTlj Yi4uZmZlYWJjOSAxMDA2NDQKLS0tLSBhL3NyYy9kaWFsb2dzL09yZ2FuaXplQ29sbGVjdGlvbkRp YWxvZy5jcHAKLSsrKyBiL3NyYy9kaWFsb2dzL09yZ2FuaXplQ29sbGVjdGlvbkRpYWxvZy5jcHAK LUBAIC0xMzksOCArMTM5LDYgQEAgT3JnYW5pemVDb2xsZWN0aW9uRGlhbG9nOjpPcmdhbml6ZUNv bGxlY3Rpb25EaWFsb2coIGNvbnN0IE1ldGE6OlRyYWNrTGlzdCAmdHJhY2sKLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUUZsYWdzPEtEaWFsb2c6 OkJ1dHRvbkNvZGU+IGJ1dHRvbk1hc2sgKQotICAgICA6IEtEaWFsb2coIHBhcmVudCApCi0gICAg ICwgdWkoIG5ldyBVaTo6T3JnYW5pemVDb2xsZWN0aW9uRGlhbG9nQmFzZSApCi0tICAgICwgbV9k ZXRhaWxlZCggdHJ1ZSApCi0tICAgICwgbV9zY2hlbWVNb2RpZmllZCggZmFsc2UgKQotICAgICAs IG1fY29uZmxpY3QoIGZhbHNlICkKLSB7Ci0gICAgIFFfVU5VU0VEKCBuYW1lICkKLUBAIC0xOTYs NyArMTk0LDYgQEAgT3JnYW5pemVDb2xsZWN0aW9uRGlhbG9nOjpPcmdhbml6ZUNvbGxlY3Rpb25E aWFsb2coIGNvbnN0IE1ldGE6OlRyYWNrTGlzdCAmdHJhY2sKLSAgICAgLy8gdG8gc2hvdyB0aGUg Y29uZmxpY3QgZXJyb3IKLSAgICAgY29ubmVjdCggdWktPm92ZXJ3cml0ZUNoZWNrLCBTSUdOQUwo c3RhdGVDaGFuZ2VkKGludCkpLCBTTE9UKHNsb3RPdmVyd3JpdGVNb2RlQ2hhbmdlZCgpKSApOwot IAotLSAgICBjb25uZWN0KCB0aGlzLCBTSUdOQUwoZmluaXNoZWQoaW50KSksIHVpLT5vcmdhbml6 ZUNvbGxlY3Rpb25XaWRnZXQsIFNMT1Qoc2xvdFNhdmVGb3JtYXRMaXN0KCkpICk7Ci0gICAgIGNv bm5lY3QoIHRoaXMsIFNJR05BTChhY2NlcHRlZCgpKSwgdWktPm9yZ2FuaXplQ29sbGVjdGlvbldp ZGdldCwgU0xPVChvbkFjY2VwdCgpKSApOwotICAgICBjb25uZWN0KCB0aGlzLCBTSUdOQUwoYWNj ZXB0ZWQoKSksIFNMT1Qoc2xvdERpYWxvZ0FjY2VwdGVkKCkpICk7Ci0gICAgIGNvbm5lY3QoIHVp LT5mb2xkZXJDb21ibywgU0lHTkFMKGN1cnJlbnRJbmRleENoYW5nZWQoUVN0cmluZykpLAotQEAg LTM5Nyw4ICszOTQsNiBAQCBPcmdhbml6ZUNvbGxlY3Rpb25EaWFsb2c6OnNsb3REaWFsb2dBY2Nl cHRlZCgpCi0gICAgIEFtYXJva0NvbmZpZzo6c2V0QXNjaWlPbmx5KCB1aS0+b3B0aW9uc1dpZGdl dC0+YXNjaWlPbmx5KCkgKTsKLSAgICAgQW1hcm9rQ29uZmlnOjpzZXRSZXBsYWNlbWVudFJlZ2V4 cCggdWktPm9wdGlvbnNXaWRnZXQtPnJlZ2V4cFRleHQoKSApOwotICAgICBBbWFyb2tDb25maWc6 OnNldFJlcGxhY2VtZW50U3RyaW5nKCB1aS0+b3B0aW9uc1dpZGdldC0+cmVwbGFjZVRleHQoKSAp OwotLQotLSAgICB1aS0+b3JnYW5pemVDb2xsZWN0aW9uV2lkZ2V0LT5vbkFjY2VwdCgpOwotIH0K LSAKLSAvL1RoZSBPayBidXR0b24gc2hvdWxkIGJlIGRpc2FibGVkIHdoZW4gdGhlcmUncyBubyBj b2xsZWN0aW9uIHJvb3Qgc2VsZWN0ZWQsIGFuZCB3aGVuIHRoZXJlIGlzIG5vIC4lZmlsZXR5cGUg aW4gZm9ybWF0IHN0cmluZwotZGlmZiAtLWdpdCBhL3NyYy9kaWFsb2dzL09yZ2FuaXplQ29sbGVj dGlvbkRpYWxvZy5oIGIvc3JjL2RpYWxvZ3MvT3JnYW5pemVDb2xsZWN0aW9uRGlhbG9nLmgKLWlu ZGV4IDg4ZmEwOGQuLjhkNTdmNGEgMTAwNjQ0Ci0tLS0gYS9zcmMvZGlhbG9ncy9Pcmdhbml6ZUNv bGxlY3Rpb25EaWFsb2cuaAotKysrIGIvc3JjL2RpYWxvZ3MvT3JnYW5pemVDb2xsZWN0aW9uRGlh bG9nLmgKLUBAIC0xMTYsMTAgKzExNiw4IEBAIGNsYXNzIEFNQVJPS19FWFBPUlQgT3JnYW5pemVD b2xsZWN0aW9uRGlhbG9nIDogcHVibGljIEtEaWFsb2cKLSAgICAgICAgIFVpOjpPcmdhbml6ZUNv bGxlY3Rpb25EaWFsb2dCYXNlICp1aTsKLSAKLSAgICAgICAgIFRyYWNrT3JnYW5pemVyICptX3Ry YWNrT3JnYW5pemVyOwotLSAgICAgICAgYm9vbCBtX2RldGFpbGVkOwotICAgICAgICAgTWV0YTo6 VHJhY2tMaXN0IG1fYWxsVHJhY2tzOwotICAgICAgICAgUVN0cmluZyBtX3RhcmdldEZpbGVFeHRl bnNpb247Ci0tICAgICAgICBib29sIG1fc2NoZW1lTW9kaWZpZWQ7Ci0gCi0gICAgICAgICBRU3Ry aW5nTGlzdCBtX29yaWdpbmFsczsKLSAgICAgICAgIFFTdHJpbmdMaXN0IG1fcHJldmlld3M7Ci1k aWZmIC0tZ2l0IGEvc3JjL3dpZGdldHMvRmlsZW5hbWVMYXlvdXRXaWRnZXQuY3BwIGIvc3JjL3dp ZGdldHMvRmlsZW5hbWVMYXlvdXRXaWRnZXQuY3BwCi1pbmRleCA4ZDE4OWNmLi42ZDAxNzQzIDEw MDY0NAotLS0tIGEvc3JjL3dpZGdldHMvRmlsZW5hbWVMYXlvdXRXaWRnZXQuY3BwCi0rKysgYi9z cmMvd2lkZ2V0cy9GaWxlbmFtZUxheW91dFdpZGdldC5jcHAKLUBAIC05MCwxNCArOTAsMTUgQEAg RmlsZW5hbWVMYXlvdXRXaWRnZXQ6OkZpbGVuYW1lTGF5b3V0V2lkZ2V0KCBRV2lkZ2V0ICpwYXJl bnQgKQotIAotICAgICAvLyAtIHRoZSBwcmVzZXQgYnV0dG9ucwotICAgICBtX2FkZFByZXNldEJ1 dHRvbiA9IG5ldyBRUHVzaEJ1dHRvbiggaTE4bigiQWRkIHByZXNldCIpLCB0aGlzICk7Ci0tICAg IG1fYWRkUHJlc2V0QnV0dG9uLT5zZXRUb29sVGlwKCBpMThuKCJTYXZlcyB0aGUgY3VycmVudCBz Y2hlbWUvZm9ybWF0IGFib3ZlIGFzIGEgcHJlc2V0LiIpICk7Ci0rICAgIG1fYWRkUHJlc2V0QnV0 dG9uLT5zZXRUb29sVGlwKCBpMThuKCJTYXZlcyB0aGUgY3VycmVudCBzY2hlbWUvZm9ybWF0IGFz IG5ldyBwcmVzZXQuIikgKTsKLSAgICAgcHJlc2V0TGF5b3V0MS0+YWRkV2lkZ2V0KCBtX2FkZFBy ZXNldEJ1dHRvbiwgMCApOwotIAotICAgICBtX3VwZGF0ZVByZXNldEJ1dHRvbiA9IG5ldyBRUHVz aEJ1dHRvbiggaTE4bigiVXBkYXRlIHByZXNldCIpLCB0aGlzICk7Ci0rICAgIG1fdXBkYXRlUHJl c2V0QnV0dG9uLT5zZXRUb29sVGlwKCBpMThuKCJVcGRhdGVzIHRoZSBwcmVzZXQgd2l0aCB0aGUg Y3VycmVudCBzY2hlbWUvZm9ybWF0LiIpICk7Ci0gICAgIHByZXNldExheW91dDEtPmFkZFdpZGdl dCggbV91cGRhdGVQcmVzZXRCdXR0b24sIDAgKTsKLSAKLSAgICAgbV9yZW1vdmVQcmVzZXRCdXR0 b24gPSBuZXcgUVB1c2hCdXR0b24oIGkxOG4oIlJlbW92ZSBwcmVzZXQiKSwgdGhpcyApOwotLSAg ICBtX3JlbW92ZVByZXNldEJ1dHRvbi0+c2V0VG9vbFRpcCggaTE4bigiUmVtb3ZlcyB0aGUgY3Vy cmVudGx5IHNlbGVjdGVkIGZvcm1hdCBwcmVzZXQiKSApOwotKyAgICBtX3JlbW92ZVByZXNldEJ1 dHRvbi0+c2V0VG9vbFRpcCggaTE4bigiUmVtb3ZlcyB0aGUgY3VycmVudGx5IHNlbGVjdGVkIHBy ZXNldC4iKSApOwotICAgICBwcmVzZXRMYXlvdXQxLT5hZGRXaWRnZXQoIG1fcmVtb3ZlUHJlc2V0 QnV0dG9uLCAwICk7Ci0gCi0gICAgIHNjaGVtZUdyb3VwTGF5b3V0LT5hZGRMYXlvdXQoIHByZXNl dExheW91dDEgKTsKLUBAIC0xNjcsNyArMTY4LDggQEAgRmlsZW5hbWVMYXlvdXRXaWRnZXQ6OkZp bGVuYW1lTGF5b3V0V2lkZ2V0KCBRV2lkZ2V0ICpwYXJlbnQgKQotIAotICAgICBjb25uZWN0KCBt X2ZpbGVuYW1lTGF5b3V0RWRpdCwgU0lHTkFMKHRleHRDaGFuZ2VkKFFTdHJpbmcpKSwKLSAgICAg ICAgICAgICAgdGhpcywgU0lHTkFMKHNjaGVtZUNoYW5nZWQoKSkgKTsKLS1kZWJ1ZygpIDw8ICJz dDMuMSI7Ci0rICAgIGNvbm5lY3QoIG1fZmlsZW5hbWVMYXlvdXRFZGl0LCBTSUdOQUwodGV4dENo YW5nZWQoUVN0cmluZykpLAotKyAgICAgICAgICAgICB0aGlzLCBTTE9UKHNsb3RVcGRhdGVQcmVz ZXRCdXR0b24oKSkgKTsKLSB9Ci0gCi0gVG9rZW4qCi1AQCAtMjMzLDE2ICsyMzUsMTcgQEAgRmls ZW5hbWVMYXlvdXRXaWRnZXQ6OmNyZWF0ZVN0YXRpY1Rva2VuKHFpbnQ2NCB2YWx1ZSkgY29uc3QK LSB2b2lkCi0gRmlsZW5hbWVMYXlvdXRXaWRnZXQ6Om9uQWNjZXB0KCkgICAgLy9TTE9UCi0gewot LSAgICBzbG90U2F2ZUZvcm1hdExpc3QoKTsKLSsgICAgUVN0cmluZyBjdXN0b20gPSBnZXRQYXJz YWJsZVNjaGVtZSgpOwotKwotKyAgICAvLyBDdXN0b20gc2NoZW1lIGlzIHN0b3JlZCBwZXIgZGlh bG9nCi0rICAgIGRlYnVnKCkgPDwgIi0tLSBzYXZpbmcgY3VzdG9tIHNjaGVtZSBmb3IiIDw8IG1f Y29uZmlnQ2F0ZWdvcnkgPDwgY3VzdG9tOwotKyAgICBBbWFyb2s6OmNvbmZpZyggbV9jb25maWdD YXRlZ29yeSApLndyaXRlRW50cnkoICJDdXN0b20gU2NoZW1lIiwgY3VzdG9tICk7Ci0gfQotIAot IFFTdHJpbmcKLSBGaWxlbmFtZUxheW91dFdpZGdldDo6Z2V0UGFyc2FibGVTY2hlbWUoKSBjb25z dAotIHsKLS0gICAgUVN0cmluZyBzY2hlbWUgPSBtX2FkdmFuY2VkTW9kZSA/IG1fZmlsZW5hbWVM YXlvdXRFZGl0LT50ZXh0KCkgOiBkcm9wVGFyZ2V0U2NoZW1lKCk7Ci0tCi0tICAgIEFtYXJvazo6 Y29uZmlnKCBtX2NvbmZpZ0NhdGVnb3J5ICkud3JpdGVFbnRyeSggIkN1c3RvbSBTY2hlbWUiLCBz Y2hlbWUgKTsKLS0gICAgcmV0dXJuIHNjaGVtZTsKLSsgICAgcmV0dXJuIG1fYWR2YW5jZWRNb2Rl ID8gbV9maWxlbmFtZUxheW91dEVkaXQtPnRleHQoKSA6IGRyb3BUYXJnZXRTY2hlbWUoKTsKLSB9 Ci0gCi0gLy8gYXR0ZW1wdHMgdG8gc2V0IHRoZSBzY2hlbWUKLUBAIC0yNTUsOCArMjU4LDYgQEAg dm9pZCBGaWxlbmFtZUxheW91dFdpZGdldDo6c2V0U2NoZW1lKGNvbnN0IFFTdHJpbmcmIHNjaGVt ZSkKLSAgICAgZW1pdCBzY2hlbWVDaGFuZ2VkKCk7Ci0gfQotIAotLQotLQotIC8vSGFuZGxlcyB0 aGUgbW9kaWZpY2F0aW9ucyB0byB0aGUgZGlhbG9nIHRvIHRvZ2dsZSBiZXR3ZWVuIGFkdmFuY2Vk IGFuZCBiYXNpYyBlZGl0aW5nIG1vZGUuCi0gdm9pZAotIEZpbGVuYW1lTGF5b3V0V2lkZ2V0Ojp0 b2dnbGVBZHZhbmNlZE1vZGUoKQotQEAgLTI4Nyw3ICsyODgsNiBAQCBGaWxlbmFtZUxheW91dFdp ZGdldDo6c2V0QWR2YW5jZWRNb2RlKCBib29sIGlzQWR2YW5jZWQgKQotICAgICBBbWFyb2s6OmNv bmZpZyggbV9jb25maWdDYXRlZ29yeSApLndyaXRlRW50cnkoICJNb2RlIiwgZW50cnlWYWx1ZSAp OwotIH0KLSAKLS0KLSBRU3RyaW5nCi0gRmlsZW5hbWVMYXlvdXRXaWRnZXQ6OmRyb3BUYXJnZXRT Y2hlbWUoKSBjb25zdAotIHsKLUBAIC0zNDIsMjggKzM0MiwzNCBAQCBGaWxlbmFtZUxheW91dFdp ZGdldDo6cG9wdWxhdGVDb25maWd1cmF0aW9uKCkKLSAgICAgUVN0cmluZyBtb2RlID0gQW1hcm9r Ojpjb25maWcoIG1fY29uZmlnQ2F0ZWdvcnkgKS5yZWFkRW50cnkoICJNb2RlIiApOwotICAgICBz ZXRBZHZhbmNlZE1vZGUoIG1vZGUgPT0gUUxhdGluMVN0cmluZyggIkFkdmFuY2VkIiApICk7Ci0g Ci0tICAgIHNldFNjaGVtZSggQW1hcm9rOjpjb25maWcoIG1fY29uZmlnQ2F0ZWdvcnkgKS5yZWFk RW50cnlVbnRyYW5zbGF0ZWQoICJDdXN0b20gU2NoZW1lIiApICk7Ci0rICAgIC8vIEN1c3RvbSBz Y2hlbWUgaXMgc3RvcmVkIHBlciBkaWFsb2cKLSsgICAgUVN0cmluZyBjdXN0b20gPSBBbWFyb2s6 OmNvbmZpZyggbV9jb25maWdDYXRlZ29yeSApLnJlYWRFbnRyeVVudHJhbnNsYXRlZCggIkN1c3Rv bSBTY2hlbWUiICk7Ci0rICAgIGRlYnVnKCkgPDwgIi0tLSBnb3QgY3VzdG9tIHNjaGVtZSBmb3Ii IDw8IG1fY29uZmlnQ2F0ZWdvcnkgPDwgY3VzdG9tOwotIAotLSAgICBwb3B1bGF0ZUZvcm1hdExp c3QoKTsKLS19Ci0rICAgIHBvcHVsYXRlRm9ybWF0TGlzdCggY3VzdG9tICk7Ci0gCi0rICAgIHNl dFNjaGVtZSggY3VzdG9tICk7Ci0rfQotIAotIHZvaWQKLS1GaWxlbmFtZUxheW91dFdpZGdldDo6 cG9wdWxhdGVGb3JtYXRMaXN0KCkKLStGaWxlbmFtZUxheW91dFdpZGdldDo6cG9wdWxhdGVGb3Jt YXRMaXN0KCBjb25zdCBRU3RyaW5nJiBjdXN0b20gKQotIHsKLSAgICAgREVCVUdfQkxPQ0sKLSAK LSsgICAgLy8gQ29uZmlndXJhdGlvbiBpcyBub3Qgc3ltbWV0cmljOiBkaWFsb2ctc3BlY2lmaWMg c2V0dGluZ3MgYXJlIHNhdmVkCi0rICAgIC8vIHVzaW5nIG1fY29uZmlnQ2F0ZWdvcnksIHRoYXQg aXMgZGlmZmVyZW50IHBlciBkaWFsb2cuIFRoZSBwcmVzZXRzIGFyZSBzYXZlZAotKyAgICAvLyBv bmx5IGluIG9uZSBzaW5nbGUgcGxhY2UsIHNvIHRoZXNlIGNhbiBiZSBzaGFyZWQuIFRoaXMgcGxh Y2UgaXMgdGhlICJkZWZhdWx0IiBvbmUsCi0rICAgIC8vIHRoYXQgaXMgdGhlIGNvbmZpZ3VyYXRp b24gZm9yIE9yZ2FuaXplQ29sbGVjdGlvbkRpYWxvZy4KLSsKLSAgICAgLy8gaXRlbXMgYXJlIHN0 b3JlZCBpbiB0aGUgY29uZmlnIGxpc3QgaW4gdGhlIGZvbGxvd2luZyBmb3JtYXQ6Ci0tICAgIC8v IExhYmVsI0RFTElNI2Zvcm1hdCBzdHJpbmcjREVMSU0jc2VsZWN0ZWQKLS0gICAgLy8gdGhlIGxh c3QgaXRlbSB0byBoYXZlIHRoZSB0aGlyZCBwYXJhbWV0ZXIgaXMgdGhlIGRlZmF1bHQgc2VsZWN0 ZWQgcHJlc2V0Ci0tICAgIC8vIHRoZSB0aGlyZCBwYXJhbSBpc25pcyBvcHRpb25hbAotKyAgICAv LyBMYWJlbCNERUxJTSNmb3JtYXQgc3RyaW5nCi0gICAgIFFTdHJpbmdMaXN0IHByZXNldHNfcmF3 OwotICAgICBpbnQgc2VsZWN0ZWRfaW5kZXggPSAtMTsKLSAgICAgbV9wcmVzZXRDb21iby0+Y2xl YXIoKTsKLS0gICAgcHJlc2V0c19yYXcgPSBBbWFyb2tDb25maWc6OmZvcm1hdFByZXNldHMoKTsK LSsgICAgcHJlc2V0c19yYXcgPSBBbWFyb2tDb25maWc6OmZvcm1hdFByZXNldHMoKTsgLy8gQWx3 YXlzIHVzZSB0aGUgb25lIGluIE9yZ2FuaXplQ29sbGVjdGlvbkRpYWxvZwotICAgICAvLyBwcmVz ZXRzX3JhdyA9IEFtYXJvazo6Y29uZmlnKCBtX2NvbmZpZ0NhdGVnb3J5ICkucmVhZEVudHJ5KCBR U3RyaW5nOjpmcm9tTGF0aW4xKCAiRm9ybWF0IFByZXNldHMiICksIFFTdHJpbmdMaXN0KCkgKTsK LSAKLS0gICAgZGVidWcoKSA8PCAiLS0tIGdvdCBwcmVzZXQgZm9yIiA8PCBtX2NvbmZpZ0NhdGVn b3J5IDw8IHByZXNldHNfcmF3OwotKyAgICBkZWJ1ZygpIDw8ICItLS0gZ290IHByZXNldHMiIDw8 IHByZXNldHNfcmF3OwotIAotICAgICBmb3JlYWNoKCBjb25zdCBRU3RyaW5nICZzdHIsIHByZXNl dHNfcmF3ICkKLSAgICAgewotQEAgLTM3Miw0OSArMzc4LDQ0IEBAIEZpbGVuYW1lTGF5b3V0V2lk Z2V0Ojpwb3B1bGF0ZUZvcm1hdExpc3QoKQotICAgICAgICAgaWYoIGl0ZW1zLnNpemUoKSA8IDIg KQotICAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICAgbV9wcmVzZXRDb21iby0+YWRkSXRl bSggaXRlbXMuYXQoIDAgKSwgaXRlbXMuYXQoIDEgKSApOyAvLyBMYWJlbCwgZm9ybWF0IHN0cmlu ZwotLSAgICAgICAgaWYoIGl0ZW1zLnNpemUoKSA9PSAzICkKLSsgICAgICAgIGlmKCBpdGVtcy5h dCggMSApID09IGN1c3RvbSApCi0gICAgICAgICAgICAgc2VsZWN0ZWRfaW5kZXggPSBtX3ByZXNl dENvbWJvLT5maW5kRGF0YSggaXRlbXMuYXQoIDEgKSApOwotICAgICB9Ci0gCi0tICAgIGlmKCBz ZWxlY3RlZF9pbmRleCA+IDAgKQotKyAgICBpZiggc2VsZWN0ZWRfaW5kZXggPj0gMCApCi0gICAg ICAgICBtX3ByZXNldENvbWJvLT5zZXRDdXJyZW50SW5kZXgoIHNlbGVjdGVkX2luZGV4ICk7Ci0g Ci0tICAgIHNsb3RGb3JtYXRQcmVzZXRTZWxlY3RlZCggc2VsZWN0ZWRfaW5kZXggKTsKLSsgICAg Y29ubmVjdCggbV9wcmVzZXRDb21ibywgU0lHTkFMKGFjdGl2YXRlZChpbnQpKSwgdGhpcywgU0xP VChzbG90Rm9ybWF0UHJlc2V0U2VsZWN0ZWQoaW50KSkgKTsKLSAgICAgY29ubmVjdCggbV9wcmVz ZXRDb21ibywgU0lHTkFMKGN1cnJlbnRJbmRleENoYW5nZWQoaW50KSksIHRoaXMsIFNMT1Qoc2xv dEZvcm1hdFByZXNldFNlbGVjdGVkKGludCkpICk7Ci0gfQotIAotIHZvaWQKLS1GaWxlbmFtZUxh eW91dFdpZGdldDo6c2xvdFVwZGF0ZVByZXNldEJ1dHRvbigpCi0tewotLSAgICBRU3RyaW5nIGNv bWJvU2NoZW1lID0gbV9wcmVzZXRDb21iby0+aXRlbURhdGEoIG1fcHJlc2V0Q29tYm8tPmN1cnJl bnRJbmRleCgpICkuICB0b1N0cmluZygpOwotLSAgICBtX3VwZGF0ZVByZXNldEJ1dHRvbi0+c2V0 RW5hYmxlZCggY29tYm9TY2hlbWUgIT0gZ2V0UGFyc2FibGVTY2hlbWUoKSApOwotLX0KLS0KLS12 b2lkCi0tRmlsZW5hbWVMYXlvdXRXaWRnZXQ6OnNsb3RTYXZlRm9ybWF0TGlzdCgpCi0rRmlsZW5h bWVMYXlvdXRXaWRnZXQ6OnNhdmVGb3JtYXRMaXN0KCkgY29uc3QKLSB7Ci0tICAgIGlmKCAhbV9m b3JtYXRMaXN0TW9kaWZpZWQgKQotLSAgICAgICAgcmV0dXJuOwotKyAgICBERUJVR19CTE9DSwot IAotLSAgICBRU3RyaW5nTGlzdCBwcmVzZXRzOwotKyAgICBRU3RyaW5nTGlzdCBwcmVzZXRzX3Jh dzsKLSAgICAgaW50IG4gPSBtX3ByZXNldENvbWJvLT5jb3VudCgpOwotLSAgICBpbnQgY3VycmVu dF9pZHggPSBtX3ByZXNldENvbWJvLT5jdXJyZW50SW5kZXgoKTsKLSAKLSAgICAgZm9yKCBpbnQg aSA9IDA7IGkgPCBuOyArK2kgKQotICAgICB7Ci0tICAgICAgICBRU3RyaW5nIGl0ZW07Ci0tICAg ICAgICBpZiggaSA9PSBjdXJyZW50X2lkeCApCi0tICAgICAgICAgICAgaXRlbSA9ICIlMSNERUxJ TSMlMiNERUxJTSNzZWxlY3RlZCI7Ci0tICAgICAgICBlbHNlCi0tICAgICAgICAgICAgaXRlbSA9 ICIlMSNERUxJTSMlMiI7Ci0tCi0rICAgICAgICBRU3RyaW5nIGl0ZW0gPSAiJTEjREVMSU0jJTIi OwotICAgICAgICAgUVN0cmluZyBzY2hlbWUgPSBtX3ByZXNldENvbWJvLT5pdGVtRGF0YSggaSAp LnRvU3RyaW5nKCk7Ci0gICAgICAgICBRU3RyaW5nIGxhYmVsID0gbV9wcmVzZXRDb21iby0+aXRl bVRleHQoIGkgKTsKLSAgICAgICAgIGl0ZW0gPSBpdGVtLmFyZyggbGFiZWwsIHNjaGVtZSApOwot LSAgICAgICAgcHJlc2V0cy5hcHBlbmQoIGl0ZW0gKTsKLSsgICAgICAgIHByZXNldHNfcmF3LmFw cGVuZCggaXRlbSApOwotICAgICB9Ci0gCi0tICAgQW1hcm9rOjpjb25maWcoIG1fY29uZmlnQ2F0 ZWdvcnkgKS53cml0ZUVudHJ5KCBRU3RyaW5nOjpmcm9tTGF0aW4xKCAiRm9ybWF0IFByZXNldHMi ICksIHByZXNldHMgKTsKLSsgICBkZWJ1ZygpIDw8ICItLS0gc2F2aW5nIHByZXNldHMiIDw8IHBy ZXNldHNfcmF3OwotKyAgIEFtYXJva0NvbmZpZzo6c2V0Rm9ybWF0UHJlc2V0cyggcHJlc2V0c19y YXcgKTsgLy8gQWx3YXlzIHVzZSB0aGUgb25lIGluIE9yZ2FuaXplQ29sbGVjdGlvbkRpYWxvZwot KyAgIC8vIEFtYXJvazo6Y29uZmlnKCBtX2NvbmZpZ0NhdGVnb3J5ICkud3JpdGVFbnRyeSggUVN0 cmluZzo6ZnJvbUxhdGluMSggIkZvcm1hdCBQcmVzZXRzIiApLCBwcmVzZXRzX3JhdyApOwotK30K LSsKLSt2b2lkCi0rRmlsZW5hbWVMYXlvdXRXaWRnZXQ6OnNsb3RVcGRhdGVQcmVzZXRCdXR0b24o KQotK3sKLSsgICAgUVN0cmluZyBjb21ib1NjaGVtZSA9IG1fcHJlc2V0Q29tYm8tPml0ZW1EYXRh KCBtX3ByZXNldENvbWJvLT5jdXJyZW50SW5kZXgoKSApLnRvU3RyaW5nKCk7Ci0rICAgIG1fdXBk YXRlUHJlc2V0QnV0dG9uLT5zZXRFbmFibGVkKCBjb21ib1NjaGVtZSAhPSBnZXRQYXJzYWJsZVNj aGVtZSgpICk7Ci0gfQotIAotIHZvaWQKLUBAIC00MjgsMTQgKzQyOSwxNSBAQCB2b2lkCi0gRmls ZW5hbWVMYXlvdXRXaWRnZXQ6OnNsb3RBZGRGb3JtYXQoKQotIHsKLSAgICAgYm9vbCBvayA9IGZh bHNlOwotLSAgICBRU3RyaW5nIG5hbWUgPSBLSW5wdXREaWFsb2c6OmdldFRleHQoIGkxOG4oICJO ZXcgRm9ybWF0IFByZXNldCIgKSwgaTE4biggIlByZXNldCBOYW1lIiApLCBpMThuKCAiTmV3IFBy ZXNldCIgKSwgICZvaywgdGhpcyApOwotKyAgICBRU3RyaW5nIG5hbWUgPSBLSW5wdXREaWFsb2c6 OmdldFRleHQoIGkxOG4oICJOZXcgUHJlc2V0IiApLCBpMThuKCAiUHJlc2V0IE5hbWUiICksIGkx OG4oICJOZXcgUHJlc2V0IiApLCAmb2ssIHRoaXMgKTsKLSAgICAgaWYoICFvayApCi0gICAgICAg ICByZXR1cm47IC8vIHVzZXIgY2FuY2VsZWQuCi0gCi0gICAgIFFTdHJpbmcgZm9ybWF0ID0gZ2V0 UGFyc2FibGVTY2hlbWUoKTsKLS0gICAgbV9wcmVzZXRDb21iby0+aW5zZXJ0SXRlbSgwLCBuYW1l LCBmb3JtYXQpOwotLSAgICBtX3ByZXNldENvbWJvLT5zZXRDdXJyZW50SW5kZXgoIDAgKTsKLS0g ICAgbV9mb3JtYXRMaXN0TW9kaWZpZWQgPSB0cnVlOwotKyAgICBtX3ByZXNldENvbWJvLT5hZGRJ dGVtKCBuYW1lLCBmb3JtYXQgKTsKLSsgICAgbV9wcmVzZXRDb21iby0+c2V0Q3VycmVudEluZGV4 KCBtX3ByZXNldENvbWJvLT5jb3VudCgpIC0gMSApOwotKwotKyAgICBzYXZlRm9ybWF0TGlzdCgp OwotIH0KLSAKLSB2b2lkCi1AQCAtNDQzLDcgKzQ0NSw4IEBAIEZpbGVuYW1lTGF5b3V0V2lkZ2V0 OjpzbG90UmVtb3ZlRm9ybWF0KCkKLSB7Ci0gICAgIGludCBpZHggPSBtX3ByZXNldENvbWJvLT5j dXJyZW50SW5kZXgoKTsKLSAgICAgbV9wcmVzZXRDb21iby0+cmVtb3ZlSXRlbSggaWR4ICk7Ci0t ICAgIG1fZm9ybWF0TGlzdE1vZGlmaWVkID0gdHJ1ZTsKLSsKLSsgICAgc2F2ZUZvcm1hdExpc3Qo KTsKLSB9Ci0gCi0gdm9pZAotQEAgLTQ1Myw1ICs0NTYsNiBAQCBGaWxlbmFtZUxheW91dFdpZGdl dDo6c2xvdFVwZGF0ZUZvcm1hdCgpCi0gICAgIFFTdHJpbmcgZm9ybWF0U3RyaW5nID0gZ2V0UGFy c2FibGVTY2hlbWUoKTsKLSAgICAgbV9wcmVzZXRDb21iby0+c2V0SXRlbURhdGEoIGlkeCwgZm9y bWF0U3RyaW5nICk7Ci0gICAgIG1fdXBkYXRlUHJlc2V0QnV0dG9uLT5zZXRFbmFibGVkKCBmYWxz ZSApOwotLSAgICBtX2Zvcm1hdExpc3RNb2RpZmllZCA9IHRydWU7Ci0rCi0rICAgIHNhdmVGb3Jt YXRMaXN0KCk7Ci0gfQotZGlmZiAtLWdpdCBhL3NyYy93aWRnZXRzL0ZpbGVuYW1lTGF5b3V0V2lk Z2V0LmggYi9zcmMvd2lkZ2V0cy9GaWxlbmFtZUxheW91dFdpZGdldC5oCi1pbmRleCA5ZmIyNjc4 Li44ZjZlMzVhIDEwMDY0NAotLS0tIGEvc3JjL3dpZGdldHMvRmlsZW5hbWVMYXlvdXRXaWRnZXQu aAotKysrIGIvc3JjL3dpZGdldHMvRmlsZW5hbWVMYXlvdXRXaWRnZXQuaAotQEAgLTcwLDcgKzcw LDYgQEAgY2xhc3MgQU1BUk9LX0VYUE9SVCBGaWxlbmFtZUxheW91dFdpZGdldCA6IHB1YmxpYyBR V2lkZ2V0Ci0gICAgICAgICAgICAgLCBDb2xsZWN0aW9uUm9vdAotICAgICAgICAgfTsKLSAKLS0K LSAgICAgICAgIGV4cGxpY2l0IEZpbGVuYW1lTGF5b3V0V2lkZ2V0KCBRV2lkZ2V0ICpwYXJlbnQg PSAwICk7Ci0gICAgICAgICB2aXJ0dWFsIH5GaWxlbmFtZUxheW91dFdpZGdldCgpIHt9Ci0gCi1A QCAtNzgsNyArNzcsNiBAQCBjbGFzcyBBTUFST0tfRVhQT1JUIEZpbGVuYW1lTGF5b3V0V2lkZ2V0 IDogcHVibGljIFFXaWRnZXQKLSAKLSAgICAgICAgIHZvaWQgc2V0U2NoZW1lKCBjb25zdCBRU3Ry aW5nICZzY2hlbWUgKTsKLSAKLS0KLSAgICAgcHVibGljIHNsb3RzOgotICAgICAgICAgdmlydHVh bCB2b2lkIG9uQWNjZXB0KCk7Ci0gCi1AQCAtOTEsNyArODksNiBAQCBjbGFzcyBBTUFST0tfRVhQ T1JUIEZpbGVuYW1lTGF5b3V0V2lkZ2V0IDogcHVibGljIFFXaWRnZXQKLSAKLSAgICAgICAgIC8q IFVwZGF0ZXMgdGhlIHVwZGF0ZSBwcmVzZXQgYnV0dG9uICovCi0gICAgICAgICB2b2lkIHNsb3RV cGRhdGVQcmVzZXRCdXR0b24oKTsKLS0gICAgICAgIHZvaWQgc2xvdFNhdmVGb3JtYXRMaXN0KCk7 Ci0gICAgICAgICB2b2lkIHNsb3RGb3JtYXRQcmVzZXRTZWxlY3RlZCggaW50ICk7Ci0gICAgICAg ICB2b2lkIHNsb3RBZGRGb3JtYXQoKTsKLSAgICAgICAgIHZvaWQgc2xvdFJlbW92ZUZvcm1hdCgp OwotQEAgLTEwOSw3ICsxMDYsNiBAQCBjbGFzcyBBTUFST0tfRVhQT1JUIEZpbGVuYW1lTGF5b3V0 V2lkZ2V0IDogcHVibGljIFFXaWRnZXQKLSAgICAgICAgIC8qKiBGaWxscyB0aGUgbV9kcm9wVGFy Z2V0IGFjY29yZGluZyB0byB0aGUgZ2l2ZW4gc3RyaW5nIHNjaGVtZS4gKi8KLSAgICAgICAgIHZv aWQgaW5mZXJTY2hlbWUoIGNvbnN0IFFTdHJpbmcgJnNjaGVtZSApOwotIAotLSAgICAgICAgYm9v bCBtX2Zvcm1hdExpc3RNb2RpZmllZDsKLSAgICAgICAgIGJvb2wgbV9hZHZhbmNlZE1vZGU7Ci0g Ci0gICAgIHByb3RlY3RlZDoKLUBAIC0xMTksNyArMTE1LDEwIEBAIGNsYXNzIEFNQVJPS19FWFBP UlQgRmlsZW5hbWVMYXlvdXRXaWRnZXQgOiBwdWJsaWMgUVdpZGdldAotICAgICAgICAgdm9pZCBw b3B1bGF0ZUNvbmZpZ3VyYXRpb24oKTsKLSAKLSAgICAgICAgIC8qKiBQb3B1bGF0ZXMgdGhlIHBy ZXNldCBjb21ibyBib3ggKi8KLS0gICAgICAgIHZvaWQgcG9wdWxhdGVGb3JtYXRMaXN0KCk7Ci0r ICAgICAgICB2b2lkIHBvcHVsYXRlRm9ybWF0TGlzdCggY29uc3QgUVN0cmluZyAmY3VzdG9tICk7 Ci0rCi0rICAgICAgICAvKiogU2F2ZXMgdGhlIHByZXNldCBjb21ibyBib3ggKi8KLSsgICAgICAg IHZvaWQgc2F2ZUZvcm1hdExpc3QoKSBjb25zdDsKLSAKLSAgICAgICAgIHZpcnR1YWwgVG9rZW4q IGNyZWF0ZVRva2VuKHFpbnQ2NCB2YWx1ZSkgY29uc3Q7Ci0gCi1AQCAtMTQ1LDcgKzE0NCw2IEBA IGNsYXNzIEFNQVJPS19FWFBPUlQgRmlsZW5hbWVMYXlvdXRXaWRnZXQgOiBwdWJsaWMgUVdpZGdl dAotICAgICAgICAgUUZyYW1lICptX2ZpbGVuYW1lTGF5b3V0OwotICAgICAgICAgS0xpbmVFZGl0 ICptX2ZpbGVuYW1lTGF5b3V0RWRpdDsKLSAKLS0KLSAgICAgICAgIC8qKiBUaGUgbmFtZSBvZiB0 aGUgY2F0ZWdvcnkgdXNlZCBmb3Igc3RvcmluZyB0aGUgY29uZmlndXJhdGlvbiAqLwotICAgICAg ICAgUVN0cmluZyBtX2NvbmZpZ0NhdGVnb3J5OwotIH07Ci0tLSAKLTIuOS4zCi0KCmRpZmYgLS1n aXQgYS8wMDI4LUZpeC1mb3ItQy13YXJuaW5ncy1hYm91dC11bnVzZWQtdmFyaWFibGVzLWFuZC1k ZXByZWMucGF0Y2ggYi8wMDI4LUZpeC1mb3ItQy13YXJuaW5ncy1hYm91dC11bnVzZWQtdmFyaWFi bGVzLWFuZC1kZXByZWMucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDQxMWY1 YTEuLjAwMDAwMDAKLS0tIGEvMDAyOC1GaXgtZm9yLUMtd2FybmluZ3MtYWJvdXQtdW51c2VkLXZh cmlhYmxlcy1hbmQtZGVwcmVjLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMTI2ICswLDAgQEAK LUZyb20gOTcwZTk4NWQ2MTAwMDcwYWExMDVkZDYwMmRhOGMyOTQ2ODczODVhYyBNb24gU2VwIDE3 IDAwOjAwOjAwIDIwMDEKLUZyb206IFN0ZWZhbm8gUGV0dGluaSA8c3RlZmFuby5wZXR0aW5pQGdt YWlsLmNvbT4KLURhdGU6IEZyaSwgMTcgSnVuIDIwMTYgMjM6NDQ6MTYgKzAyMDAKLVN1YmplY3Q6 IFtQQVRDSCAyOC80N10gRml4IGZvciBDKysgd2FybmluZ3MgYWJvdXQgdW51c2VkIHZhcmlhYmxl cyBhbmQKLSBkZXByZWNhdGVkIGZ1bmN0aW9ucwotCi1UaGFuayB5b3UsIFN0ZWZhbm8hCi0KLVJF VklFVzogMTI3NDU4Ci0tLS0KLSBzcmMvY29uZmlnZGlhbG9nL2RpYWxvZ3MvRGF0YWJhc2VDb25m aWcuY3BwICAgICAgICAgICAgICAgICAgICAgICAgfCAyIC0tCi0gc3JjL2NvcmUtaW1wbC9jb2xs ZWN0aW9ucy9kYi9zcWwvU3FsU2NhblJlc3VsdFByb2Nlc3Nvci5jcHAgICAgICAgIHwgMiArLQot IC4uLi9zdG9yYWdlL3NxbC9teXNxbHNlcnZlcnN0b3JhZ2UvTXlTcWxTZXJ2ZXJTdG9yYWdlRmFj dG9yeS5jcHAgICB8IDEgKwotIHNyYy9zZXJ2aWNlcy9tcDN0dW5lcy9oYXJtb255ZGFlbW9uL01w M3R1bmVzSGFybW9ueURhZW1vbi5jcHAgICAgICB8IDcgKysrKystLQotIHNyYy9zZXJ2aWNlcy9t cDN0dW5lcy9saWJtcDN0dW5lcy9oYXJtb255LmMgICAgICAgICAgICAgICAgICAgICAgICB8IDQg KystLQotIHNyYy9zdGF0ZW1hbmFnZW1lbnQvRGVmYXVsdEFwcGxpY2F0aW9uQ29udHJvbGxlci5j cHAgICAgICAgICAgICAgICB8IDIgKysKLSA2IGZpbGVzIGNoYW5nZWQsIDExIGluc2VydGlvbnMo KyksIDcgZGVsZXRpb25zKC0pCi0KLWRpZmYgLS1naXQgYS9zcmMvY29uZmlnZGlhbG9nL2RpYWxv Z3MvRGF0YWJhc2VDb25maWcuY3BwIGIvc3JjL2NvbmZpZ2RpYWxvZy9kaWFsb2dzL0RhdGFiYXNl Q29uZmlnLmNwcAotaW5kZXggMWNiMmQ5Ny4uZmY0ZjZjNSAxMDA2NDQKLS0tLSBhL3NyYy9jb25m aWdkaWFsb2cvZGlhbG9ncy9EYXRhYmFzZUNvbmZpZy5jcHAKLSsrKyBiL3NyYy9jb25maWdkaWFs b2cvZGlhbG9ncy9EYXRhYmFzZUNvbmZpZy5jcHAKLUBAIC04Miw3ICs4Miw2IEBAIERhdGFiYXNl Q29uZmlnOjp0ZXN0RGF0YWJhc2VDb25uZWN0aW9uKCkgLy9TTE9UCi0gICAgIGZhY3RvcmllcyA9 IFBsdWdpbnM6OlBsdWdpbk1hbmFnZXI6Omluc3RhbmNlKCktPmZhY3RvcmllcyggUGx1Z2luczo6 UGx1Z2luTWFuYWdlcjo6U3RvcmFnZSApOwotIAotICAgICAvLyB0cnkgaWYgdGhleSBoYXZlIGEg dGVzdFNldHRpbmdzIHNsb3QgdGhhdCB3ZSBjYW4gY2FsbAotLSAgICBib29sIHRlc3RlZCA9IGZh bHNlOwotICAgICBmb3JlYWNoKCBQbHVnaW5zOjpQbHVnaW5GYWN0b3J5KiBmYWN0b3J5LCBmYWN0 b3JpZXMgKQotICAgICB7Ci0gICAgICAgICBib29sIGNhbGxTdWNjZWVkZWQgPSBmYWxzZTsKLUBA IC0xMDAsNyArOTksNiBAQCBEYXRhYmFzZUNvbmZpZzo6dGVzdERhdGFiYXNlQ29ubmVjdGlvbigp IC8vU0xPVAotIAotICAgICAgICAgaWYoIGNhbGxTdWNjZWVkZWQgKQotICAgICAgICAgewotLSAg ICAgICAgICAgIHRlc3RlZCA9IHRydWU7Ci0gICAgICAgICAgICAgaWYoIGNvbm5lY3Rpb25FcnJv cnMuaXNFbXB0eSgpICkKLSAgICAgICAgICAgICAgICAgS01lc3NhZ2VCb3g6Om1lc3NhZ2VCb3go IHRoaXMsIEtNZXNzYWdlQm94OjpJbmZvcm1hdGlvbiwKLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGkxOG4oICJBbWFyb2sgd2FzIGFibGUgdG8gZXN0YWJsaXNoIGEg c3VjY2Vzc2Z1bCBjb25uZWN0aW9uIHRvIHRoZSBkYXRhYmFzZS4iICksCi1kaWZmIC0tZ2l0IGEv c3JjL2NvcmUtaW1wbC9jb2xsZWN0aW9ucy9kYi9zcWwvU3FsU2NhblJlc3VsdFByb2Nlc3Nvci5j cHAgYi9zcmMvY29yZS1pbXBsL2NvbGxlY3Rpb25zL2RiL3NxbC9TcWxTY2FuUmVzdWx0UHJvY2Vz c29yLmNwcAotaW5kZXggNzE1ODlhMC4uMzY3YzAyYSAxMDA2NDQKLS0tLSBhL3NyYy9jb3JlLWlt cGwvY29sbGVjdGlvbnMvZGIvc3FsL1NxbFNjYW5SZXN1bHRQcm9jZXNzb3IuY3BwCi0rKysgYi9z cmMvY29yZS1pbXBsL2NvbGxlY3Rpb25zL2RiL3NxbC9TcWxTY2FuUmVzdWx0UHJvY2Vzc29yLmNw cAotQEAgLTMwMSw3ICszMDEsNyBAQCBTcWxTY2FuUmVzdWx0UHJvY2Vzc29yOjpjb21taXRUcmFj ayggQ29sbGVjdGlvblNjYW5uZXI6OlRyYWNrICp0cmFjaywKLSAgICAgbWV0YVRyYWNrLT5zZXRU eXBlKCB0cmFjay0+ZmlsZXR5cGUoKSApOwotIAotICAgICBpZiggbV90eXBlID09IEdlbmVyaWNT Y2FuTWFuYWdlcjo6RnVsbFNjYW4gfHwKLS0gICAgICAgICF0cmFjay0+YnBtKCkgPj0gMCApCi0r ICAgICAgICB0cmFjay0+YnBtKCkgPj0gMCApCi0gICAgICAgICBtZXRhVHJhY2stPnNldEJwbSgg dHJhY2stPmJwbSgpICk7Ci0gCi0gICAgIGlmKCBtX3R5cGUgPT0gR2VuZXJpY1NjYW5NYW5hZ2Vy OjpGdWxsU2NhbiB8fAotZGlmZiAtLWdpdCBhL3NyYy9jb3JlLWltcGwvc3RvcmFnZS9zcWwvbXlz cWxzZXJ2ZXJzdG9yYWdlL015U3FsU2VydmVyU3RvcmFnZUZhY3RvcnkuY3BwIGIvc3JjL2NvcmUt aW1wbC9zdG9yYWdlL3NxbC9teXNxbHNlcnZlcnN0b3JhZ2UvTXlTcWxTZXJ2ZXJTdG9yYWdlRmFj dG9yeS5jcHAKLWluZGV4IDVjZGI2OTMuLjZmOWVlNTkgMTAwNjQ0Ci0tLS0gYS9zcmMvY29yZS1p bXBsL3N0b3JhZ2Uvc3FsL215c3Fsc2VydmVyc3RvcmFnZS9NeVNxbFNlcnZlclN0b3JhZ2VGYWN0 b3J5LmNwcAotKysrIGIvc3JjL2NvcmUtaW1wbC9zdG9yYWdlL3NxbC9teXNxbHNlcnZlcnN0b3Jh Z2UvTXlTcWxTZXJ2ZXJTdG9yYWdlRmFjdG9yeS5jcHAKLUBAIC02OSw2ICs2OSw3IEBAIE15U3Fs U2VydmVyU3RvcmFnZUZhY3Rvcnk6OnRlc3RTZXR0aW5ncyggY29uc3QgUVN0cmluZyAmaG9zdCwg Y29uc3QgUVN0cmluZyAmdXNlCi0gCi0gICAgIE15U3FsU2VydmVyU3RvcmFnZSogc3RvcmFnZSA9 IG5ldyBNeVNxbFNlcnZlclN0b3JhZ2UoKTsKLSAgICAgYm9vbCBpbml0UmVzdWx0ID0gc3RvcmFn ZS0+aW5pdCggaG9zdCwgdXNlciwgcGFzc3dvcmQsIHBvcnQsIGRhdGFiYXNlTmFtZSApOwotKyAg ICBRX1VOVVNFRCggaW5pdFJlc3VsdCApOwotIAotICAgICAvLyB3ZSBhcmUganVzdCBpbnRlcmVz dGVkIGluIHRoZSBlcnJvcnMuCi0gICAgIGVycm9ycyA9IHN0b3JhZ2UtPmdldExhc3RFcnJvcnMo KTsKLWRpZmYgLS1naXQgYS9zcmMvc2VydmljZXMvbXAzdHVuZXMvaGFybW9ueWRhZW1vbi9NcDN0 dW5lc0hhcm1vbnlEYWVtb24uY3BwIGIvc3JjL3NlcnZpY2VzL21wM3R1bmVzL2hhcm1vbnlkYWVt b24vTXAzdHVuZXNIYXJtb255RGFlbW9uLmNwcAotaW5kZXggNWIwOWYwNy4uZDhhZTI5NSAxMDA2 NDQKLS0tLSBhL3NyYy9zZXJ2aWNlcy9tcDN0dW5lcy9oYXJtb255ZGFlbW9uL01wM3R1bmVzSGFy bW9ueURhZW1vbi5jcHAKLSsrKyBiL3NyYy9zZXJ2aWNlcy9tcDN0dW5lcy9oYXJtb255ZGFlbW9u L01wM3R1bmVzSGFybW9ueURhZW1vbi5jcHAKLUBAIC0xNTUsOCArMTU1LDExIEBAIE1wM3R1bmVz SGFybW9ueURhZW1vbjo6aW5pdCgpCi0gewotIAotICAgICBxRGVidWcoKSAgPDwgIkJlZ2luIGlu aXRpbmciOwotLSAgICAgICAgLyogZ190eXBlX2luaXQgcmVxdWlyZWQgZm9yIHVzaW5nIHRoZSBH T2JqZWN0cyBmb3IgSGFybW9ueS4gKi8KLS0gICAgZ190eXBlX2luaXQoKTsKLSsKLSsjaWYgIUdM SUJfQ0hFQ0tfVkVSU0lPTigyLDM2LDApCi0rICAgIC8qIGdfdHlwZV9pbml0IHJlcXVpcmVkIGZv ciB1c2luZyB0aGUgR09iamVjdHMgaW4gdmVyc2lvbnMgb2YgZ2xpYiBvbGRlciB0aGFuIDIuMzYu ICovCi0rICAgIGdfdHlwZV9pbml0ICgpOwotKyNlbmRpZgotIAotICAgICBtX2hhcm1vbnkgPSBt cDN0dW5lc19oYXJtb255X25ldygpOwotIAotZGlmZiAtLWdpdCBhL3NyYy9zZXJ2aWNlcy9tcDN0 dW5lcy9saWJtcDN0dW5lcy9oYXJtb255LmMgYi9zcmMvc2VydmljZXMvbXAzdHVuZXMvbGlibXAz dHVuZXMvaGFybW9ueS5jCi1pbmRleCBlYWQwMzQ1Li5kZjAwYmUyIDEwMDY0NAotLS0tIGEvc3Jj L3NlcnZpY2VzL21wM3R1bmVzL2xpYm1wM3R1bmVzL2hhcm1vbnkuYwotKysrIGIvc3JjL3NlcnZp Y2VzL21wM3R1bmVzL2xpYm1wM3R1bmVzL2hhcm1vbnkuYwotQEAgLTY0Myw3ICs2NDMsNyBAQCBn Ym9vbGVhbiBtcDN0dW5lc19oYXJtb255X2Rpc2Nvbm5lY3QoTVAzdHVuZXNIYXJtb255ICpoYXJt b255LCBHRXJyb3IqKiBlcnIpIHsKLSAgICAgZ2Jvb2xlYW4gc3VjY2VzcyA9IGNsb3NlX2Nvbm5l Y3Rpb24oaGFybW9ueSk7Ci0gICAgIGhhcm1vbnktPmNvbm5lY3RlZCA9IEZBTFNFOwotICAgICBp ZiAoc3VjY2VzcyA9PSBGQUxTRSkgewotLSAgICAgICAgZXJyID0gJmhhcm1vbnktPmVycm9yOwot KyAgICAgICAgKmVyciA9IGhhcm1vbnktPmVycm9yOwotICAgICAgICAgcmV0dXJuIHN1Y2Nlc3M7 Ci0gICAgIH0KLSAgICAgcmV0dXJuIHN1Y2Nlc3M7Ci1AQCAtNjU4LDcgKzY1OCw3IEBAIGdib29s ZWFuIG1wM3R1bmVzX2hhcm1vbnlfY29ubmVjdChNUDN0dW5lc0hhcm1vbnkqIGhhcm1vbnksIEdF cnJvcioqIGVycikgewotICAgICBzdWNjZXNzID0gb3Blbl9jb25uZWN0aW9uKGhhcm1vbnkpOwot IAotICAgICBpZiAoc3VjY2VzcyA9PSBGQUxTRSkgewotLSAgICAgICAgZXJyID0gJmhhcm1vbnkt PmVycm9yOwotKyAgICAgICAgKmVyciA9IGhhcm1vbnktPmVycm9yOwotICAgICAgICAgbXAzdHVu ZXNfaGFybW9ueV9kaXNjb25uZWN0KGhhcm1vbnksIGVycik7Ci0gICAgICAgICByZXR1cm4gc3Vj Y2VzczsKLSAgICAgfQotZGlmZiAtLWdpdCBhL3NyYy9zdGF0ZW1hbmFnZW1lbnQvRGVmYXVsdEFw cGxpY2F0aW9uQ29udHJvbGxlci5jcHAgYi9zcmMvc3RhdGVtYW5hZ2VtZW50L0RlZmF1bHRBcHBs aWNhdGlvbkNvbnRyb2xsZXIuY3BwCi1pbmRleCA1ODg2Nzg5Li5hY2M0MjEzIDEwMDY0NAotLS0t IGEvc3JjL3N0YXRlbWFuYWdlbWVudC9EZWZhdWx0QXBwbGljYXRpb25Db250cm9sbGVyLmNwcAot KysrIGIvc3JjL3N0YXRlbWFuYWdlbWVudC9EZWZhdWx0QXBwbGljYXRpb25Db250cm9sbGVyLmNw cAotQEAgLTMyLDYgKzMyLDcgQEAgRGVmYXVsdEFwcGxpY2F0aW9uQ29udHJvbGxlcjo6RGVmYXVs dEFwcGxpY2F0aW9uQ29udHJvbGxlciggUU9iamVjdCAqcGFyZW50ICkKLSAgICAgLy90aGVyZSBj YW4gYmUgb25seSBvbmUgYXBwbGljYXRpb25jb250cm9sbGVyCi0gICAgIEFwcGxpY2F0aW9uQ29u dHJvbGxlciAqb2xkQ29udHJvbGxlciA9IENvbXBvbmVudHM6OnNldEFwcGxpY2F0aW9uQ29udHJv bGxlciggdGhpcyApOwotICAgICBRX0FTU0VSVCggIW9sZENvbnRyb2xsZXIgKTsKLSsgICAgUV9V TlVTRUQoIG9sZENvbnRyb2xsZXIgKTsKLSB9Ci0gCi0gRGVmYXVsdEFwcGxpY2F0aW9uQ29udHJv bGxlcjo6fkRlZmF1bHRBcHBsaWNhdGlvbkNvbnRyb2xsZXIoKQotQEAgLTg4LDYgKzg5LDcgQEAg RGVmYXVsdEFwcGxpY2F0aW9uQ29udHJvbGxlcjo6aW5pdEVuZ2luZUNvbnRyb2xsZXIoKQotICAg ICBDb21wb25lbnRzOjpzZXRFbmdpbmVDb250cm9sbGVyKCBjb250cm9sbGVyICk7Ci0gICAgIGJv b2wgaW52b2tlZCA9IFFNZXRhT2JqZWN0OjppbnZva2VNZXRob2QoIGNvbnRyb2xsZXIsICJpbml0 aWFsaXplUGhvbm9uIiwgUXQ6OkRpcmVjdENvbm5lY3Rpb24gKTsKLSAgICAgUV9BU1NFUlQoIGlu dm9rZWQgKTsKLSsgICAgUV9VTlVTRUQoIGludm9rZWQgKTsKLSB9Ci0gCi0gdm9pZAotLS0gCi0y LjkuMwotCgpkaWZmIC0tZ2l0IGEvMDAyOS1GaXgtTVBSSVMyLURlc2t0b3BFbnRyeS12YWx1ZS5w YXRjaCBiLzAwMjktRml4LU1QUklTMi1EZXNrdG9wRW50cnktdmFsdWUucGF0Y2gKZGVsZXRlZCBm aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDExMWI5ZmQuLjAwMDAwMDAKLS0tIGEvMDAyOS1GaXgtTVBS SVMyLURlc2t0b3BFbnRyeS12YWx1ZS5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDQ1ICswLDAg QEAKLUZyb20gOTQ0OWVjNTZkMWZkNzdhMGJmYTFmNzEzNGEyYmY0ZjkxZmZkMTRkMyBNb24gU2Vw IDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IEFudG9uaW8gUm9qYXMgPGFyb2phc0BhcmNobGludXgu b3JnPgotRGF0ZTogU2F0LCAyMCBBdWcgMjAxNiAxMzowOTowMiArMDIwMAotU3ViamVjdDogW1BB VENIIDI5LzQ3XSBGaXggTVBSSVMyIERlc2t0b3BFbnRyeSB2YWx1ZQotCi1BY2NvcmRpbmcgdG8g dGhlIE1QUklTMiBzcGVjLCB0aGUgRGVza3RvcEVudHJ5IHZhbHVlIHNob3VsZCBiZQotInRoZSBi YXNlbmFtZSBvZiB0aGUgLmRlc2t0b3AgZmlsZSIgWzFdLCBub3QgdGhlIGRlc2t0b3AtZmlsZS1p ZC4gU28KLWZvciBhbWFyb2sgaXQgc2hvdWxkIGJlICJhbWFyb2siIGFuZCBub3QgImtkZTQtYW1h cm9rIiwgcmVnYXJkbGVzcyBvZgotd2hlcmUgdGhlIGRlc2t0b3AgZmlsZSBpcyBpbnN0YWxsZWQu IFRoaXMgZml4ZXMgZGlzcGxheWluZyBNUFJJUwotY29udHJvbHMgaW4gdGhlIEFtYXJvayB0YXNr YmFyIHRvb2x0aXAgaW4gUGxhc21hIDUuNwotCi1bMV0gaHR0cHM6Ly9zcGVjaWZpY2F0aW9ucy5m cmVlZGVza3RvcC5vcmcvbXByaXMtc3BlYy9sYXRlc3QvTWVkaWFfUGxheWVyLmh0bWwjUHJvcGVy dHk6RGVza3RvcEVudHJ5Ci0KLVRlc3RpbmcgZG9uZSBieSBBbnRvbmlvOgotCi1QbGF5ZXIgY29u dHJvbHMgYXJlIGRpc3BsYXllZCBhZ2FpbiBpbiB0aGUgQW1hcm9rIHRhc2tiYXIgdG9vbHRpcCBp biBQbGFzbWEgNS43LgotCi1SRVZJRVc6IDEyODQxOAotQlVHOiAzNjUyNzUKLUZJWEVELUlOOiAy LjkKLS0tLQotIENoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgIHwgMiArKwotIHNyYy9k YnVzL21wcmlzMi9NZWRpYVBsYXllcjIuY3BwIHwgNiArLS0tLS0KLSAyIGZpbGVzIGNoYW5nZWQs IDMgaW5zZXJ0aW9ucygrKSwgNSBkZWxldGlvbnMoLSkKLQotZGlmZiAtLWdpdCBhL3NyYy9kYnVz L21wcmlzMi9NZWRpYVBsYXllcjIuY3BwIGIvc3JjL2RidXMvbXByaXMyL01lZGlhUGxheWVyMi5j cHAKLWluZGV4IGNiZTFhMmEuLmExZDFiZGEgMTAwNjQ0Ci0tLS0gYS9zcmMvZGJ1cy9tcHJpczIv TWVkaWFQbGF5ZXIyLmNwcAotKysrIGIvc3JjL2RidXMvbXByaXMyL01lZGlhUGxheWVyMi5jcHAK LUBAIC05NCwxMSArOTQsNyBAQCBRU3RyaW5nIE1lZGlhUGxheWVyMjo6SWRlbnRpdHkoKSBjb25z dAotIAotIFFTdHJpbmcgTWVkaWFQbGF5ZXIyOjpEZXNrdG9wRW50cnkoKSBjb25zdAotIHsKLS0g ICAgLy8gQW1hcm9rIGRlc2t0b3AgZmlsZSBpcyBpbnN0YWxsZWQgaW4gJHByZWZpeC9zaGFyZS9h cHBsaWNhdGlvbnMva2RlNC8KLS0gICAgLy8gcmF0aGVyIHRoYW4gaW4gJHByZWZpeC9zaGFyZS9h cHBsaWNhdGlvbnMuIFRoZSBzdGFuZGFyZCB3YXkgdG8KLS0gICAgLy8gcmVwcmVzZW50IHRoaXMg ZGlyIGlzIHdpdGggYSAia2RlNC0iIHByZWZpeC4gU2VlOgotLSAgICAvLyBodHRwOi8vc3RhbmRh cmRzLmZyZWVkZXNrdG9wLm9yZy9tZW51LXNwZWMvMS4wL2dvMDEuaHRtbCN0ZXJtLWRlc2t0b3At ZmlsZS1pZAotLSAgICByZXR1cm4gUUxhdGluMVN0cmluZygia2RlNC1hbWFyb2siKTsKLSsgICAg cmV0dXJuIFFMYXRpbjFTdHJpbmcoImFtYXJvayIpOwotIH0KLSAKLSBRU3RyaW5nTGlzdCBNZWRp YVBsYXllcjI6OlN1cHBvcnRlZFVyaVNjaGVtZXMoKSBjb25zdAotLS0gCi0yLjkuMwotCgpkaWZm IC0tZ2l0IGEvMDAzMC1GaXgtQ29sbGVjdGlvbi1Ccm93c2VyLWF1dG8tZXhwYW5kLWFmdGVyLXNl YXJjaC1leHBhLnBhdGNoIGIvMDAzMC1GaXgtQ29sbGVjdGlvbi1Ccm93c2VyLWF1dG8tZXhwYW5k LWFmdGVyLXNlYXJjaC1leHBhLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBh ZTU2OGJkLi4wMDAwMDAwCi0tLSBhLzAwMzAtRml4LUNvbGxlY3Rpb24tQnJvd3Nlci1hdXRvLWV4 cGFuZC1hZnRlci1zZWFyY2gtZXhwYS5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDEzMCArMCww IEBACi1Gcm9tIDlmYjAwZTVhOTc1NzRhZjNmMGNiMjJkNzQwZGE3ZTBjZDA3NjFkNzggTW9uIFNl cCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiA9P1VURi04P3E/TWF0PUM0PTlCaj0yMExhaXRsPz0g PG1hdGVqQGxhaXRsLmN6PgotRGF0ZTogTW9uLCAxNyBPY3QgMjAxNiAwMDowMzoxMyArMDIwMAot U3ViamVjdDogW1BBVENIIDMwLzQ3XSBGaXggQ29sbGVjdGlvbiBCcm93c2VyIGF1dG8tZXhwYW5k IGFmdGVyIHNlYXJjaAotIGV4cGFuZGluZyB0b28gbGl0dGxlCi0KLVVuZGVybHlpbmcgbW9kZWwg aXMgYXN5bmNocm9ub3VzLCB3ZSBuZWVkIHRvIGNvcGUgd2l0aCB0aGF0LiBEbyBpdAotdXNpbmcg YSBSQUlJIHNlbGYtZGVzdHJ1Y3Rpbmcgb2JqZWN0IEF1dG9FeHBhbmRlci4KLQotQXMgYSBzaWRl LWVmZmVjdCwgQW1hcm9rIG5vIGxvbmdlciBleHBhbmRzIGNvbGxlY3Rpb24gYWZ0ZXIgc3RhcnQg aW4KLXNwbGl0IGNvbGxlY3Rpb24gbW9kZS4gSWYgdGhpcyBpcyBkZXNpcmVkLCB3ZSBtYXkgZXhw YW5kIHRoZW0KLWV4cGxpY2l0bHkgdXBvbiBzdGFydC4KLQotQlVHOiAzMzUyMTcKLUZJWEVELUlO OiAyLjkKLUNDQlVHOiAzMDA1NTcKLS0tLQotIENoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAg ICAgICAgIHwgIDEgKwotIHNyYy9icm93c2Vycy9Db2xsZWN0aW9uVHJlZVZpZXcuY3BwIHwgODgg KysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLQotIDIgZmlsZXMgY2hhbmdlZCwg NjkgaW5zZXJ0aW9ucygrKSwgMjAgZGVsZXRpb25zKC0pCi0KLWRpZmYgLS1naXQgYS9zcmMvYnJv d3NlcnMvQ29sbGVjdGlvblRyZWVWaWV3LmNwcCBiL3NyYy9icm93c2Vycy9Db2xsZWN0aW9uVHJl ZVZpZXcuY3BwCi1pbmRleCA4MTZkMmUxLi40Yjk2NTQzIDEwMDY0NAotLS0tIGEvc3JjL2Jyb3dz ZXJzL0NvbGxlY3Rpb25UcmVlVmlldy5jcHAKLSsrKyBiL3NyYy9icm93c2Vycy9Db2xsZWN0aW9u VHJlZVZpZXcuY3BwCi1AQCAtMTEwLDYgKzExMCw3MiBAQCBjbGFzcyBEZWxheWVkU2Nyb2xsZXIg OiBwdWJsaWMgUU9iamVjdAotICAgICAgICAgaW50IG1fdG9wT2Zmc2V0OwotIH07Ci0gCi0rLyoq Ci0rICogUkFJSSBjbGFzcyB0byBhdXRvLWV4cGFuZCBjb2xsZWN0aW9uIHRyZWUgZW50cmllcyBh ZnRlciBmaWx0ZXJpbmcuCi0rICogQXV0b0V4cGFuZGVyIGF1dG8tZGVsZXRlcyBpdHNlbGYgb25j ZSBpdHMgam9iIGlzIG92ZXIgKG9yIGlmIGl0IGZpbmRzCi0rICogaXQgaXMgdXNlbGVzcykuCi0r ICovCi0rY2xhc3MgQXV0b0V4cGFuZGVyIDogcHVibGljIFFPYmplY3QKLSt7Ci0rICAgIFFfT0JK RUNUCi0rCi0rICAgIHB1YmxpYzoKLSsgICAgICAgIEF1dG9FeHBhbmRlciggQ29sbGVjdGlvblRy ZWVWaWV3ICp0cmVlVmlldywKLSsgICAgICAgICAgICAgICAgICAgICAgQ29sbGVjdGlvblRyZWVJ dGVtTW9kZWxCYXNlICp0cmVlTW9kZWwsCi0rICAgICAgICAgICAgICAgICAgICAgIFFBYnN0cmFj dEl0ZW1Nb2RlbCAqZmlsdGVyTW9kZWwpCi0rICAgICAgICAgICAgOiBRT2JqZWN0KCB0cmVlVmll dyApCi0rICAgICAgICAgICAgLCBtX3RyZWVWaWV3KCB0cmVlVmlldyApCi0rICAgICAgICAgICAg LCBtX2ZpbHRlck1vZGVsKCBmaWx0ZXJNb2RlbCApCi0rICAgICAgICB7Ci0rICAgICAgICAgICAg Y29ubmVjdCggZmlsdGVyTW9kZWwsIFNJR05BTChkZXN0cm95ZWQoUU9iamVjdCopKSwgU0xPVChk ZWxldGVMYXRlcigpKSApOwotKyAgICAgICAgICAgIGNvbm5lY3QoIHRyZWVNb2RlbCwgU0lHTkFM KGFsbFF1ZXJpZXNGaW5pc2hlZChib29sKSksIFNMT1Qoc2xvdEV4cGFuZE1vcmUoKSkgKTsKLSsK LSsgICAgICAgICAgICAvLyBzdGFydCB3aXRoIHRoZSByb290IGluZGV4Ci0rICAgICAgICAgICAg bV9pbmRpY2VzVG9DaGVjay5lbnF1ZXVlKCBRTW9kZWxJbmRleCgpICk7Ci0rICAgICAgICAgICAg c2xvdEV4cGFuZE1vcmUoKTsKLSsgICAgICAgIH0KLSsKLSsgICAgcHJpdmF0ZSBzbG90czoKLSsg ICAgICAgIHZvaWQgc2xvdEV4cGFuZE1vcmUoKQotKyAgICAgICAgewotKyAgICAgICAgICAgIGNv bnN0IGludCBtYXhDaGlsZHJlblRvRXhwYW5kID0gMzsKLSsKLSsgICAgICAgICAgICBRUXVldWU8 UU1vZGVsSW5kZXg+IHBlbmRpbmdJbmRpY2VzOwotKyAgICAgICAgICAgIHdoaWxlKCAhbV9pbmRp Y2VzVG9DaGVjay5pc0VtcHR5KCkgKQotKyAgICAgICAgICAgIHsKLSsgICAgICAgICAgICAgICAg UU1vZGVsSW5kZXggY3VycmVudCA9IG1faW5kaWNlc1RvQ2hlY2suZGVxdWV1ZSgpOwotKwotKyAg ICAgICAgICAgICAgICBpZiggbV9maWx0ZXJNb2RlbC0+Y2FuRmV0Y2hNb3JlKCBjdXJyZW50ICkg KQotKyAgICAgICAgICAgICAgICB7Ci0rICAgICAgICAgICAgICAgICAgICBtX2ZpbHRlck1vZGVs LT5mZXRjaE1vcmUoIGN1cnJlbnQgKTsKLSsgICAgICAgICAgICAgICAgICAgIHBlbmRpbmdJbmRp Y2VzLmVucXVldWUoIGN1cnJlbnQgKTsKLSsgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwot KyAgICAgICAgICAgICAgICB9Ci0rCi0rICAgICAgICAgICAgICAgIGlmKCBtX2ZpbHRlck1vZGVs LT5yb3dDb3VudCggY3VycmVudCApIDw9IG1heENoaWxkcmVuVG9FeHBhbmQgKQotKyAgICAgICAg ICAgICAgICB7Ci0rICAgICAgICAgICAgICAgICAgICBtX3RyZWVWaWV3LT5leHBhbmQoIGN1cnJl bnQgKTsKLSsgICAgICAgICAgICAgICAgICAgIGZvciggaW50IGkgPSAwOyBpIDwgbV9maWx0ZXJN b2RlbC0+cm93Q291bnQoIGN1cnJlbnQgKTsgaSsrICkKLSsgICAgICAgICAgICAgICAgICAgICAg ICBtX2luZGljZXNUb0NoZWNrLmVucXVldWUoIG1fZmlsdGVyTW9kZWwtPmluZGV4KCBpLCAwLCBj dXJyZW50ICkgKTsKLSsgICAgICAgICAgICAgICAgfQotKyAgICAgICAgICAgIH0KLSsKLSsgICAg ICAgICAgICBpZiggcGVuZGluZ0luZGljZXMuaXNFbXB0eSgpICkKLSsgICAgICAgICAgICAgICAg Ly8gbm90aGluZyBsZWZ0IHRvIGRvCi0rICAgICAgICAgICAgICAgIGRlbGV0ZUxhdGVyKCk7Ci0r ICAgICAgICAgICAgZWxzZQotKyAgICAgICAgICAgICAgICAvLyBwcm9jZXNzIHBlbmRpbmcgaW5k aWNlcyB3aGVuIHF1ZXJpZXMgZmluaXNoCi0rICAgICAgICAgICAgICAgIG1faW5kaWNlc1RvQ2hl Y2suc3dhcCggcGVuZGluZ0luZGljZXMgKTsKLSsgICAgICAgIH0KLSsKLSsgICAgcHJpdmF0ZToK LSsgICAgICAgIFFfRElTQUJMRV9DT1BZKEF1dG9FeHBhbmRlcikKLSsKLSsgICAgICAgIENvbGxl Y3Rpb25UcmVlVmlldyAqbV90cmVlVmlldzsKLSsgICAgICAgIFFBYnN0cmFjdEl0ZW1Nb2RlbCAq bV9maWx0ZXJNb2RlbDsKLSsgICAgICAgIFFRdWV1ZTxRTW9kZWxJbmRleD4gbV9pbmRpY2VzVG9D aGVjazsKLSt9OwotKwotIENvbGxlY3Rpb25UcmVlVmlldzo6Q29sbGVjdGlvblRyZWVWaWV3KCBR V2lkZ2V0ICpwYXJlbnQpCi0gICAgIDogQW1hcm9rOjpQcmV0dHlUcmVlVmlldyggcGFyZW50ICkK LSAgICAgLCBtX2ZpbHRlck1vZGVsKCAwICkKLUBAIC03MDgsMjYgKzc3NCw4IEBAIENvbGxlY3Rp b25UcmVlVmlldzo6c2xvdENoZWNrQXV0b0V4cGFuZCggYm9vbCByZWFsbHlFeHBhbmQgKQotICAg ICBpZiggIW1fZmlsdGVyTW9kZWwgfHwgIXJlYWxseUV4cGFuZCApCi0gICAgICAgICByZXR1cm47 Ci0gCi0tICAgIC8vIENhc2VzIHdoZXJlIHJvb3QgaXMgbm90IGNvbGxlY3Rpb25zIGJ1dAotLSAg ICAvLyBmb3IgZXhhbXBsZSBtYWduYXR1bmVzJ3MgcGxldGhvcmEgb2YgZ2VucmVzLCBkb24ndCBl eHBhbmQgYnkgZGVmYXVsdAotLSAgICBpZiggbV9maWx0ZXJNb2RlbC0+cm93Q291bnQoKSA+IDYg KQotLSAgICAgICAgcmV0dXJuOwotLQotLSAgICBRTW9kZWxJbmRleExpc3QgaW5kaWNlc1RvQ2hl Y2s7Ci0tICAgIGZvciggaW50IGkgPSAwOyBpIDwgbV9maWx0ZXJNb2RlbC0+cm93Q291bnQoKTsg aSsrICkgLy9uZWVkIHNvbWV0aGluZyB0byBzdGFydCBmb3InaW5nIHdpdGgKLS0gICAgICAgIGlu ZGljZXNUb0NoZWNrICs9IG1fZmlsdGVyTW9kZWwtPmluZGV4KCBpLCAwICk7IC8vbG93ZXN0IGxl dmVsIGlzIGZpbmUgZm9yIHRoYXQKLS0KLS0gICAgUU1vZGVsSW5kZXggY3VycmVudDsKLS0gICAg Zm9yKCBpbnQgaiA9IDA7IGogPCBpbmRpY2VzVG9DaGVjay5zaXplKCk7IGorKykKLS0gICAgewot LSAgICAgICAgY3VycmVudCA9IGluZGljZXNUb0NoZWNrLmF0KCBqICk7Ci0tICAgICAgICBpZigg bV9maWx0ZXJNb2RlbC0+cm93Q291bnQoIGN1cnJlbnQgKSA8IDQgKQotLSAgICAgICAgeyAvL2Rv bid0IGV4cGFuZCBpZiBtYW55IHJlc3VsdHMKLS0gICAgICAgICAgICBleHBhbmQoIGN1cnJlbnQg KTsKLS0gICAgICAgICAgICBmb3IoIGludCBpID0gMDsgaSA8IG1fZmlsdGVyTW9kZWwtPnJvd0Nv dW50KCBjdXJyZW50ICk7IGkrKyApCi0tICAgICAgICAgICAgICAgIGluZGljZXNUb0NoZWNrICs9 IG1fZmlsdGVyTW9kZWwtPmluZGV4KCBpLCAwLCBjdXJyZW50ICk7Ci0tICAgICAgICB9Ci0tICAg IH0KLSsgICAgLy8gYXV0by1kZWxldGVzIGl0c2VsZjoKLSsgICAgbmV3IEF1dG9FeHBhbmRlcigg dGhpcywgbV90cmVlTW9kZWwsIG1fZmlsdGVyTW9kZWwgKTsKLSB9Ci0gCi0gdm9pZAotLS0gCi0y LjkuMwotCgpkaWZmIC0tZ2l0IGEvMDAzNi1GaXgtQnVnLTMwMjI5OS1BdXRvc2Nyb2xsaW5nLUx5 cmljcy1hcmUtc2Nyb2xsaW5nLWRvLnBhdGNoIGIvMDAzNi1GaXgtQnVnLTMwMjI5OS1BdXRvc2Ny b2xsaW5nLUx5cmljcy1hcmUtc2Nyb2xsaW5nLWRvLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEw MDY0NAppbmRleCA5MDQ5ZTVkLi4wMDAwMDAwCi0tLSBhLzAwMzYtRml4LUJ1Zy0zMDIyOTktQXV0 b3Njcm9sbGluZy1MeXJpY3MtYXJlLXNjcm9sbGluZy1kby5wYXRjaAorKysgL2Rldi9udWxsCkBA IC0xLDEwMiArMCwwIEBACi1Gcm9tIDJhOGNiMzc4NWU1MGNjYjBkNTUxNDQyZTMxMzNhYzFjYzZj MmU4ZjcgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBZYXNoIExhZGlhIDx5YXNobGFk aWExQGdtYWlsLmNvbT4KLURhdGU6IFNhdCwgNCBGZWIgMjAxNyAxMTozMzo0OCArMDEwMAotU3Vi amVjdDogW1BBVENIIDM2LzQ3XSBGaXggQnVnIDMwMjI5OSAtIEF1dG9zY3JvbGxpbmcgTHlyaWNz IGFyZSBzY3JvbGxpbmcKLSBkb3duIGlmIGEgc29uZyBpcyByYXRlZCB2aWEgQ29udGV4dCBCcm93 c2VyJ3MgQ3VycmVudCBUcmFjawotCi1UaGUgYnVnIHdhcyBvY2N1cmluZyBzaW5jZSAndXNlckF1 dG9TY3JvbGxPZmZzZXQnIGFuZCAnb2xkU2xpZGVyUG9zaXRpb24nIHdlcmUgYmVpbmcgcmVzZXQg d2hlbiB0cmFjayBtZXRhZGF0YSB3YXMgY2hhbmdlZC4gVGhpcyBzaG91bGQgbm90IGhhcHBlbi4K LQotSSBzcGxpdCB0aGUgZnVuY3Rpb246ICd2b2lkIF90cmFja0RhdGFDaGFuZ2VkKCBNZXRhOjpU cmFja1B0ciApJyBpbnRvICd2b2lkIF90cmFja0NoYW5nZWQoIE1ldGE6OlRyYWNrUHRyICknIGFu ZCAndm9pZCBfdHJhY2tNZXRhZGF0YUNoYW5nZWQoIE1ldGE6OlRyYWNrUHRyICknCi0KLVJFVklF VzogMTE2NjQxCi1CVUdTOiAzMDIyOTkKLS0tLQotIHNyYy9jb250ZXh0L2FwcGxldHMvbHlyaWNz L0x5cmljc0FwcGxldC5jcHAgfCAxOCArKysrKysrKysrKysrLS0tLS0KLSBzcmMvY29udGV4dC9h cHBsZXRzL2x5cmljcy9MeXJpY3NBcHBsZXQuaCAgIHwgIDQgKysrLQotIDIgZmlsZXMgY2hhbmdl ZCwgMTYgaW5zZXJ0aW9ucygrKSwgNiBkZWxldGlvbnMoLSkKLQotZGlmZiAtLWdpdCBhL3NyYy9j b250ZXh0L2FwcGxldHMvbHlyaWNzL0x5cmljc0FwcGxldC5jcHAgYi9zcmMvY29udGV4dC9hcHBs ZXRzL2x5cmljcy9MeXJpY3NBcHBsZXQuY3BwCi1pbmRleCA4MjlhMTY2Li44OTZhMDQyIDEwMDY0 NAotLS0tIGEvc3JjL2NvbnRleHQvYXBwbGV0cy9seXJpY3MvTHlyaWNzQXBwbGV0LmNwcAotKysr IGIvc3JjL2NvbnRleHQvYXBwbGV0cy9seXJpY3MvTHlyaWNzQXBwbGV0LmNwcAotQEAgLTEsNiAr MSw3IEBACi0gLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKLSAgKiBDb3B5cmlnaHQg KGMpIDIwMDcgTGVvIEZyYW5jaGkgPGxmcmFuY2hpQGdtYWlsLmNvbT4gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgKgotICAqIENvcHlyaWdodCAoYykgMjAwOSBzaW1vbi5lc25lYXVs dCA8c2ltb24uZXNuZWF1bHRAZ21haWwuY29tPiAgICAgICAgICAgICAgICAgICAgICAgICAqCi0r ICogQ29weXJpZ2h0IChjKSAyMDE0IFlhc2ggTGFkaWEgPHlhc2hsYWRpYTFAZ21haWwuY29tPiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKLSAgKiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgKgotICAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJl ZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5IGl0IHVuZGVyICAgICAgICAqCi0gICogdGhlIHRl cm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhl IEZyZWUgU29mdHdhcmUgICAgICAgICoKLUBAIC04MCw3ICs4MSw4IEBAIHB1YmxpYzoKLSAgICAg dm9pZCBfdG9nZ2xlQXV0b1Njcm9sbCgpOwotICAgICB2b2lkIF9zdWdnZXN0aW9uQ2hvc2VuKCBj b25zdCBMeXJpY3NTdWdnZXN0aW9uICZzdWdnZXN0aW9uICk7Ci0gICAgIHZvaWQgX3Vuc2V0Q3Vy c29yKCk7Ci0tICAgIHZvaWQgX3RyYWNrRGF0YUNoYW5nZWQoIE1ldGE6OlRyYWNrUHRyICk7Ci0r ICAgIHZvaWQgX3RyYWNrQ2hhbmdlZCggTWV0YTo6VHJhY2tQdHIgKTsKLSsgICAgdm9pZCBfdHJh Y2tNZXRhZGF0YUNoYW5nZWQoIE1ldGE6OlRyYWNrUHRyICk7Ci0gICAgIHZvaWQgX3RyYWNrUG9z aXRpb25DaGFuZ2VkKCBxaW50NjQgcG9zaXRpb24sIGJvb2wgdXNlclNlZWsgKTsKLSAKLSAgICAg dm9pZCBfbHlyaWNzQ2hhbmdlZE1lc3NhZ2VCdXR0b25QcmVzc2VkKCBjb25zdCBQbGFzbWE6Ok1l c3NhZ2VCdXR0b24gYnV0dG9uICk7Ci1AQCAtMzY5LDExICszNzEsMTcgQEAgTHlyaWNzQXBwbGV0 UHJpdmF0ZTo6X3Vuc2V0Q3Vyc29yKCkKLSB9Ci0gCi0gdm9pZAotLUx5cmljc0FwcGxldFByaXZh dGU6Ol90cmFja0RhdGFDaGFuZ2VkKCBNZXRhOjpUcmFja1B0ciB0cmFjayApCi0rTHlyaWNzQXBw bGV0UHJpdmF0ZTo6X3RyYWNrQ2hhbmdlZCggTWV0YTo6VHJhY2tQdHIgdHJhY2sgKQotIHsKLSAg ICAgdXNlckF1dG9TY3JvbGxPZmZzZXQgPSAwOwotICAgICBvbGRTbGlkZXJQb3NpdGlvbiA9IDA7 Ci0rICAgIC8vIG1ldGEgZGF0YSBhbHNvIGNoYW5nZWQsIHNvIHRvIGF2b2lkIGNvZGUgZHVwbGlj YXRpb24KLSsgICAgX3RyYWNrTWV0YWRhdGFDaGFuZ2VkKCB0cmFjayApOwotK30KLSAKLSt2b2lk Ci0rTHlyaWNzQXBwbGV0UHJpdmF0ZTo6X3RyYWNrTWV0YWRhdGFDaGFuZ2VkKCBNZXRhOjpUcmFj a1B0ciB0cmFjayApCi0rewotICAgICAvLyBDaGVjayBpZiB3ZSBwcmV2aW91c2x5IGhhZCBhIHRy YWNrLgotICAgICAvLyBJZiB0aGUgbHlyaWNzIGN1cnJlbnRseSBzaG93biBpbiB0aGUgYnJvd3Nl ciAod2hpY2gKLSAgICAgLy8gYWRkaXRpb25hbGx5IGlzIGluIGVkaXQgbW9kZSkgYXJlIGRpZmZl cmVudCBmcm9tIHRoZQotQEAgLTUxMiwxNSArNTIwLDE1IEBAIEx5cmljc0FwcGxldDo6aW5pdCgp Ci0gCi0gICAgIEVuZ2luZUNvbnRyb2xsZXIqIGVuZ2luZSA9IFRoZTo6ZW5naW5lQ29udHJvbGxl cigpOwotIAotLSAgICBjb25uZWN0KCBlbmdpbmUsIFNJR05BTCh0cmFja0NoYW5nZWQoTWV0YTo6 VHJhY2tQdHIpKSwgdGhpcywgU0xPVChfdHJhY2tEYXRhQ2hhbmdlZChNZXRhOjpUcmFja1B0cikp ICk7Ci0tICAgIGNvbm5lY3QoIGVuZ2luZSwgU0lHTkFMKHRyYWNrTWV0YWRhdGFDaGFuZ2VkKE1l dGE6OlRyYWNrUHRyKSksIHRoaXMsIFNMT1QoX3RyYWNrRGF0YUNoYW5nZWQoTWV0YTo6VHJhY2tQ dHIpKSApOwotKyAgICBjb25uZWN0KCBlbmdpbmUsIFNJR05BTCh0cmFja0NoYW5nZWQoTWV0YTo6 VHJhY2tQdHIpKSwgdGhpcywgU0xPVChfdHJhY2tDaGFuZ2VkKE1ldGE6OlRyYWNrUHRyKSkgKTsK LSsgICAgY29ubmVjdCggZW5naW5lLCBTSUdOQUwodHJhY2tNZXRhZGF0YUNoYW5nZWQoTWV0YTo6 VHJhY2tQdHIpKSwgdGhpcywgU0xPVChfdHJhY2tNZXRhZGF0YUNoYW5nZWQoTWV0YTo6VHJhY2tQ dHIpKSApOwotICAgICBjb25uZWN0KCBlbmdpbmUsIFNJR05BTCh0cmFja1Bvc2l0aW9uQ2hhbmdl ZChxaW50NjQsYm9vbCkpLCB0aGlzLCBTTE9UKF90cmFja1Bvc2l0aW9uQ2hhbmdlZChxaW50NjQs Ym9vbCkpICk7Ci0gICAgIGNvbm5lY3QoIGQtPnN1Z2dlc3RWaWV3LCBTSUdOQUwoc2VsZWN0ZWQo THlyaWNzU3VnZ2VzdGlvbikpLCBTTE9UKF9zdWdnZXN0aW9uQ2hvc2VuKEx5cmljc1N1Z2dlc3Rp b24pKSApOwotICAgICBjb25uZWN0KCBkYXRhRW5naW5lKCJhbWFyb2stbHlyaWNzIiksIFNJR05B TChzb3VyY2VBZGRlZChRU3RyaW5nKSksIHRoaXMsIFNMT1QoY29ubmVjdFNvdXJjZShRU3RyaW5n KSkgKTsKLSAKLSAgICAgLy8gVGhpcyBpcyBuZWVkZWQgYXMgYSB0cmFjayBtaWdodCBiZSBwbGF5 aW5nIHdoZW4gdGhlIGx5cmljcyBhcHBsZXQKLSAgICAgLy8gaXMgYWRkZWQgdG8gdGhlIENvbnRl eHRWaWV3LgotLSAgICBkLT5fdHJhY2tEYXRhQ2hhbmdlZCggZW5naW5lLT5jdXJyZW50VHJhY2so KSApOwotKyAgICBkLT5fdHJhY2tDaGFuZ2VkKCBlbmdpbmUtPmN1cnJlbnRUcmFjaygpICk7Ci0g ICAgIGQtPl90cmFja1Bvc2l0aW9uQ2hhbmdlZCggZW5naW5lLT50cmFja1Bvc2l0aW9uTXMoKSwg ZmFsc2UgKTsKLSAKLSAgICAgZC0+ZGV0ZXJtaW5lQWN0aW9uSWNvbnNTdGF0ZSgpOwotZGlmZiAt LWdpdCBhL3NyYy9jb250ZXh0L2FwcGxldHMvbHlyaWNzL0x5cmljc0FwcGxldC5oIGIvc3JjL2Nv bnRleHQvYXBwbGV0cy9seXJpY3MvTHlyaWNzQXBwbGV0LmgKLWluZGV4IDIwYzcxZDguLjUyOGEz MjMgMTAwNjQ0Ci0tLS0gYS9zcmMvY29udGV4dC9hcHBsZXRzL2x5cmljcy9MeXJpY3NBcHBsZXQu aAotKysrIGIvc3JjL2NvbnRleHQvYXBwbGV0cy9seXJpY3MvTHlyaWNzQXBwbGV0LmgKLUBAIC0x LDYgKzEsNyBAQAotIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCi0gICogQ29weXJp Z2h0IChjKSAyMDA3IExlbyBGcmFuY2hpIDxsZnJhbmNoaUBnbWFpbC5jb20+ICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICoKLSAgKiBDb3B5cmlnaHQgKGMpIDIwMDkgc2ltb24uZXNu ZWF1bHQgPHNpbW9uLmVzbmVhdWx0QGdtYWlsLmNvbT4gICAgICAgICAgICAgICAgICAgICAgICAg KgotKyAqIENvcHlyaWdodCAoYykgMjAxNCBZYXNoIExhZGlhIDx5YXNobGFkaWExQGdtYWlsLmNv bT4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCi0gICogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICoKLSAgKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNh biByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeSBpdCB1bmRlciAgICAgICAgKgotICAqIHRo ZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5 IHRoZSBGcmVlIFNvZnR3YXJlICAgICAgICAqCi1AQCAtNTcsNyArNTgsOCBAQCBwcml2YXRlOgot ICAgICBRX1BSSVZBVEVfU0xPVCggZF9wdHIsIHZvaWQgX3RvZ2dsZUF1dG9TY3JvbGwoKSApCi0g ICAgIFFfUFJJVkFURV9TTE9UKCBkX3B0ciwgdm9pZCBfc3VnZ2VzdGlvbkNob3NlbihMeXJpY3NT dWdnZXN0aW9uKSApCi0gICAgIFFfUFJJVkFURV9TTE9UKCBkX3B0ciwgdm9pZCBfdW5zZXRDdXJz b3IoKSApCi0tICAgIFFfUFJJVkFURV9TTE9UKCBkX3B0ciwgdm9pZCBfdHJhY2tEYXRhQ2hhbmdl ZCggTWV0YTo6VHJhY2tQdHIgKSApCi0rICAgIFFfUFJJVkFURV9TTE9UKCBkX3B0ciwgdm9pZCBf dHJhY2tDaGFuZ2VkKCBNZXRhOjpUcmFja1B0ciApICkKLSsgICAgUV9QUklWQVRFX1NMT1QoIGRf cHRyLCB2b2lkIF90cmFja01ldGFkYXRhQ2hhbmdlZCggTWV0YTo6VHJhY2tQdHIgKSApCi0gICAg IFFfUFJJVkFURV9TTE9UKCBkX3B0ciwgdm9pZCBfdHJhY2tQb3NpdGlvbkNoYW5nZWQoIHFpbnQ2 NCBwb3NpdGlvbiwgYm9vbCB1c2VyU2VlayApICkKLSAgICAgUV9QUklWQVRFX1NMT1QoIGRfcHRy LCB2b2lkIF9seXJpY3NDaGFuZ2VkTWVzc2FnZUJ1dHRvblByZXNzZWQoY29uc3QgUGxhc21hOjpN ZXNzYWdlQnV0dG9uKSApCi0gICAgIFFfUFJJVkFURV9TTE9UKCBkX3B0ciwgdm9pZCBfcmVmZXRj aE1lc3NhZ2VCdXR0b25QcmVzc2VkKGNvbnN0IFBsYXNtYTo6TWVzc2FnZUJ1dHRvbikgKQotLS0g Ci0yLjkuMwotCgpkaWZmIC0tZ2l0IGEvMDAzNy1GaXgtbWlub3ItdHlwby5wYXRjaCBiLzAwMzct Rml4LW1pbm9yLXR5cG8ucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGViNjMy ZGMuLjAwMDAwMDAKLS0tIGEvMDAzNy1GaXgtbWlub3ItdHlwby5wYXRjaAorKysgL2Rldi9udWxs CkBAIC0xLDQyICswLDAgQEAKLUZyb20gMGZlYjYyNTE5MjVmZTA0OWM0NmNjZjUxNTNkYjRiNDY3 ZjM1NDRmYiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IFJvYmVydCBNYXJzaGFsbCA8 cm9iZXJ0QGNhcHVjaGluLmNvLnVrPgotRGF0ZTogU2F0LCA0IEZlYiAyMDE3IDE4OjQ5OjQxICsw MTAwCi1TdWJqZWN0OiBbUEFUQ0ggMzcvNDddIEZpeCBtaW5vciB0eXBvCi0KLWFkZCB0aGUgd29y ZCAnc3BlY2lmeScgdG8gdGV4dAotCi1SRVZJRVc6IDEyMzYzNQotLS0tCi0gc3JjL3BsYXlsaXN0 Z2VuZXJhdG9yL2NvbnN0cmFpbnRzL1BsYXlsaXN0RmlsZVNpemVFZGl0V2lkZ2V0LnVpIHwgMiAr LQotIHNyYy9wbGF5bGlzdGdlbmVyYXRvci9jb25zdHJhaW50cy9QbGF5bGlzdExlbmd0aEVkaXRX aWRnZXQudWkgICB8IDIgKy0KLSAyIGZpbGVzIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKSwgMiBk ZWxldGlvbnMoLSkKLQotZGlmZiAtLWdpdCBhL3NyYy9wbGF5bGlzdGdlbmVyYXRvci9jb25zdHJh aW50cy9QbGF5bGlzdEZpbGVTaXplRWRpdFdpZGdldC51aSBiL3NyYy9wbGF5bGlzdGdlbmVyYXRv ci9jb25zdHJhaW50cy9QbGF5bGlzdEZpbGVTaXplRWRpdFdpZGdldC51aQotaW5kZXggZmNlNWM1 NC4uNDBhOWFiMiAxMDA2NDQKLS0tLSBhL3NyYy9wbGF5bGlzdGdlbmVyYXRvci9jb25zdHJhaW50 cy9QbGF5bGlzdEZpbGVTaXplRWRpdFdpZGdldC51aQotKysrIGIvc3JjL3BsYXlsaXN0Z2VuZXJh dG9yL2NvbnN0cmFpbnRzL1BsYXlsaXN0RmlsZVNpemVFZGl0V2lkZ2V0LnVpCi1AQCAtMTIsNyAr MTIsNyBAQAotICAgIDwvcmVjdD4KLSAgIDwvcHJvcGVydHk+Ci0gICA8cHJvcGVydHkgbmFtZT0i d2hhdHNUaGlzIj4KLS0gICA8c3RyaW5nPkFuIGVkaXRvciBmb3IgYSBQbGF5bGlzdCBMZW5ndGgg Y29uc3RyYWludC4gIFRoZSB1c2VyIGNhbiB0aGUgdGFyZ2V0IG51bWJlciBvZiB0cmFja3MgYW5k IHdoZXRoZXIgdGhlIHBsYXlsaXN0IGNvbnRhaW4gZmV3ZXIgdGhhbiwgZXF1YWwgdG8sIG9yIG1v cmUgdGhhbiB0aGF0IG51bWJlciBvZiB0cmFja3M7IGFuZCB0aGUgc3RyaWN0bmVzcyB3aXRoIHdo aWNoIHRoZSBBUEcgc2hvdWxkIG1hdGNoIHRoZSB0YXJnZXQgbnVtYmVyIG9mIHRyYWNrcy48L3N0 cmluZz4KLSsgICA8c3RyaW5nPkFuIGVkaXRvciBmb3IgYSBQbGF5bGlzdCBMZW5ndGggY29uc3Ry YWludC4gIFRoZSB1c2VyIGNhbiBzcGVjaWZ5IHRoZSB0YXJnZXQgbnVtYmVyIG9mIHRyYWNrcyBh bmQgd2hldGhlciB0aGUgcGxheWxpc3QgY29udGFpbiBmZXdlciB0aGFuLCBlcXVhbCB0bywgb3Ig bW9yZSB0aGFuIHRoYXQgbnVtYmVyIG9mIHRyYWNrczsgYW5kIHRoZSBzdHJpY3RuZXNzIHdpdGgg d2hpY2ggdGhlIEFQRyBzaG91bGQgbWF0Y2ggdGhlIHRhcmdldCBudW1iZXIgb2YgdHJhY2tzLjwv c3RyaW5nPgotICAgPC9wcm9wZXJ0eT4KLSAgIDxsYXlvdXQgY2xhc3M9IlFWQm94TGF5b3V0IiBu YW1lPSJ2ZXJ0aWNhbExheW91dCI+Ci0gICAgPGl0ZW0+Ci1kaWZmIC0tZ2l0IGEvc3JjL3BsYXls aXN0Z2VuZXJhdG9yL2NvbnN0cmFpbnRzL1BsYXlsaXN0TGVuZ3RoRWRpdFdpZGdldC51aSBiL3Ny Yy9wbGF5bGlzdGdlbmVyYXRvci9jb25zdHJhaW50cy9QbGF5bGlzdExlbmd0aEVkaXRXaWRnZXQu dWkKLWluZGV4IGY5NzY5N2EuLjIwNmM5MWYgMTAwNjQ0Ci0tLS0gYS9zcmMvcGxheWxpc3RnZW5l cmF0b3IvY29uc3RyYWludHMvUGxheWxpc3RMZW5ndGhFZGl0V2lkZ2V0LnVpCi0rKysgYi9zcmMv cGxheWxpc3RnZW5lcmF0b3IvY29uc3RyYWludHMvUGxheWxpc3RMZW5ndGhFZGl0V2lkZ2V0LnVp Ci1AQCAtMTIsNyArMTIsNyBAQAotICAgIDwvcmVjdD4KLSAgIDwvcHJvcGVydHk+Ci0gICA8cHJv cGVydHkgbmFtZT0id2hhdHNUaGlzIj4KLS0gICA8c3RyaW5nPkFuIGVkaXRvciBmb3IgYSBQbGF5 bGlzdCBMZW5ndGggY29uc3RyYWludC4gIFRoZSB1c2VyIGNhbiB0aGUgdGFyZ2V0IG51bWJlciBv ZiB0cmFja3MgYW5kIHdoZXRoZXIgdGhlIHBsYXlsaXN0IGNvbnRhaW4gZmV3ZXIgdGhhbiwgZXF1 YWwgdG8sIG9yIG1vcmUgdGhhbiB0aGF0IG51bWJlciBvZiB0cmFja3M7IGFuZCB0aGUgc3RyaWN0 bmVzcyB3aXRoIHdoaWNoIHRoZSBBUEcgc2hvdWxkIG1hdGNoIHRoZSB0YXJnZXQgbnVtYmVyIG9m IHRyYWNrcy48L3N0cmluZz4KLSsgICA8c3RyaW5nPkFuIGVkaXRvciBmb3IgYSBQbGF5bGlzdCBM ZW5ndGggY29uc3RyYWludC4gIFRoZSB1c2VyIGNhbiBzcGVjaWZ5IHRoZSB0YXJnZXQgbnVtYmVy IG9mIHRyYWNrcyBhbmQgd2hldGhlciB0aGUgcGxheWxpc3QgY29udGFpbiBmZXdlciB0aGFuLCBl cXVhbCB0bywgb3IgbW9yZSB0aGFuIHRoYXQgbnVtYmVyIG9mIHRyYWNrczsgYW5kIHRoZSBzdHJp Y3RuZXNzIHdpdGggd2hpY2ggdGhlIEFQRyBzaG91bGQgbWF0Y2ggdGhlIHRhcmdldCBudW1iZXIg b2YgdHJhY2tzLjwvc3RyaW5nPgotICAgPC9wcm9wZXJ0eT4KLSAgIDxsYXlvdXQgY2xhc3M9IlFW Qm94TGF5b3V0IiBuYW1lPSJ2ZXJ0aWNhbExheW91dCI+Ci0gICAgPGl0ZW0+Ci0tLSAKLTIuOS4z Ci0KCmRpZmYgLS1naXQgYS8wMDM4LUZpeC1hbWFyb2stYnVpbGQtd2l0aC1MaWJPRkEtdXNpbmct ZmZtcGVnLTMucGF0Y2ggYi8wMDM4LUZpeC1hbWFyb2stYnVpbGQtd2l0aC1MaWJPRkEtdXNpbmct ZmZtcGVnLTMucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDQ5YTc0YzguLjAw MDAwMDAKLS0tIGEvMDAzOC1GaXgtYW1hcm9rLWJ1aWxkLXdpdGgtTGliT0ZBLXVzaW5nLWZmbXBl Zy0zLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsNzQgKzAsMCBAQAotRnJvbSA1NTM1YmU4NjM1 ZDNmNzRjY2M3NzRlZTI4ZTA4MDRkN2FhZWVlYzQxIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQot RnJvbTogQWxleGlzIEJBTExJRVIgPGFiYWxsaWVyQGdlbnRvby5vcmc+Ci1EYXRlOiBTdW4sIDEy IEZlYiAyMDE3IDE3OjQyOjUwICswMTAwCi1TdWJqZWN0OiBbUEFUQ0ggMzgvNDddIEZpeCBhbWFy b2sgYnVpbGQgd2l0aCBMaWJPRkEgdXNpbmcgZmZtcGVnIDMrCi0KLVRlc3RpbmcgRG9uZToKLWh0 dHBzOi8vYnVncy5nZW50b28ub3JnL3Nob3dfYnVnLmNnaT9pZD02MDE4MDAKLQotUkVWSUVXOiAx Mjk2MjYKLS0tLQotIHNyYy9tdXNpY2JyYWluei9NdXNpY0ROU0F1ZGlvRGVjb2Rlci5jcHAgfCAx MiArKysrKystLS0tLS0KLSAxIGZpbGUgY2hhbmdlZCwgNiBpbnNlcnRpb25zKCspLCA2IGRlbGV0 aW9ucygtKQotCi1kaWZmIC0tZ2l0IGEvc3JjL211c2ljYnJhaW56L011c2ljRE5TQXVkaW9EZWNv ZGVyLmNwcCBiL3NyYy9tdXNpY2JyYWluei9NdXNpY0ROU0F1ZGlvRGVjb2Rlci5jcHAKLWluZGV4 IGVhMzlhMWIuLjQzNzY3ZDUgMTAwNjQ0Ci0tLS0gYS9zcmMvbXVzaWNicmFpbnovTXVzaWNETlNB dWRpb0RlY29kZXIuY3BwCi0rKysgYi9zcmMvbXVzaWNicmFpbnovTXVzaWNETlNBdWRpb0RlY29k ZXIuY3BwCi1AQCAtMjIzLDcgKzIyMyw3IEBAIE11c2ljRE5TQXVkaW9EZWNvZGVyOjpkZWNvZGUo IGNvbnN0IFFTdHJpbmcgJmZpbGVOYW1lLCBEZWNvZGVkQXVkaW9EYXRhICpkYXRhLCBjCi0gICAg ICAgICAgICAgewotICAgICAgICAgICAgICAgICBpZiggIWRlY29kZWRGcmFtZSApCi0gICAgICAg ICAgICAgICAgIHsKLS0gICAgICAgICAgICAgICAgICAgIGRlY29kZWRGcmFtZSA9IGF2Y29kZWNf YWxsb2NfZnJhbWUoKTsKLSsgICAgICAgICAgICAgICAgICAgIGRlY29kZWRGcmFtZSA9IGF2X2Zy YW1lX2FsbG9jKCk7Ci0gICAgICAgICAgICAgICAgICAgICBpZiggIWRlY29kZWRGcmFtZSApCi0g ICAgICAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgd2FybmluZygp IDw8ICJVbmFibGUgdG8gYWxsb2NhdGUgZW5vdWdoIG1lbW9yeSB0byBkZWNvZGUgZmlsZS4iOwot QEAgLTIzMSw3ICsyMzEsNyBAQCBNdXNpY0ROU0F1ZGlvRGVjb2Rlcjo6ZGVjb2RlKCBjb25zdCBR U3RyaW5nICZmaWxlTmFtZSwgRGVjb2RlZEF1ZGlvRGF0YSAqZGF0YSwgYwotICAgICAgICAgICAg ICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAg ICAgICAgICAgZWxzZQotLSAgICAgICAgICAgICAgICAgICAgICAgIGF2Y29kZWNfZ2V0X2ZyYW1l X2RlZmF1bHRzKCBkZWNvZGVkRnJhbWUgKTsKLSsJCSAgICAgICAgIGF2X2ZyYW1lX3VucmVmKCBk ZWNvZGVkRnJhbWUgKTsKLSAgICAgICAgICAgICAgICAgfQotIAotICAgICAgICAgICAgICAgICBk ZWNvZGVyUmV0ID0gYXZjb2RlY19kZWNvZGVfYXVkaW80KCBwQ29kZWNDdHgsIGRlY29kZWRGcmFt ZSwgJmdvdEZyYW1lLCAmYXZwa3QgKTsKLUBAIC0zNDEsNyArMzQxLDcgQEAgTXVzaWNETlNBdWRp b0RlY29kZXI6OmRlY29kZSggY29uc3QgUVN0cmluZyAmZmlsZU5hbWUsIERlY29kZWRBdWRpb0Rh dGEgKmRhdGEsIGMKLSAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgIGlmKCAhZGVjb2Rl ZEZyYW1lICkKLSAgICAgICAgICAgICAgICAgewotLSAgICAgICAgICAgICAgICAgICAgZGVjb2Rl ZEZyYW1lID0gYXZjb2RlY19hbGxvY19mcmFtZSgpOwotKyAgICAgICAgICAgICAgICAgICAgZGVj b2RlZEZyYW1lID0gYXZfZnJhbWVfYWxsb2MoKTsKLSAgICAgICAgICAgICAgICAgICAgIGlmKCAh ZGVjb2RlZEZyYW1lICkKLSAgICAgICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAg ICAgICAgICB3YXJuaW5nKCkgPDwgIlVuYWJsZSB0byBhbGxvY2F0ZSBlbm91Z2ggbWVtb3J5IHRv IGRlY29kZSBmaWxlLiI7Ci1AQCAtMzQ5LDcgKzM0OSw3IEBAIE11c2ljRE5TQXVkaW9EZWNvZGVy OjpkZWNvZGUoIGNvbnN0IFFTdHJpbmcgJmZpbGVOYW1lLCBEZWNvZGVkQXVkaW9EYXRhICpkYXRh LCBjCi0gICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAgICAgICAg ICB9Ci0gICAgICAgICAgICAgICAgICAgICBlbHNlCi0tICAgICAgICAgICAgICAgICAgICAgICAg YXZjb2RlY19nZXRfZnJhbWVfZGVmYXVsdHMoIGRlY29kZWRGcmFtZSApOwotKwkJICAgICAgICAg YXZfZnJhbWVfdW5yZWYoIGRlY29kZWRGcmFtZSApOwotICAgICAgICAgICAgICAgICB9Ci0gCi0g ICAgICAgICAgICAgICAgIGRlY29kZXJSZXQgPSBhdmNvZGVjX2RlY29kZV9hdWRpbzQoIHBDb2Rl Y0N0eCwgZGVjb2RlZEZyYW1lLCAmZ290RnJhbWUsICZhdnBrdCApOwotQEAgLTQ1OSw3ICs0NTks NyBAQCBNdXNpY0ROU0F1ZGlvRGVjb2Rlcjo6ZGVjb2RlKCBjb25zdCBRU3RyaW5nICZmaWxlTmFt ZSwgRGVjb2RlZEF1ZGlvRGF0YSAqZGF0YSwgYwotICAgICAgICAgICAgIHsKLSAgICAgICAgICAg ICAgICAgaWYoICFkZWNvZGVkRnJhbWUgKQotICAgICAgICAgICAgICAgICB7Ci0tICAgICAgICAg ICAgICAgICAgICBkZWNvZGVkRnJhbWUgPSBhdmNvZGVjX2FsbG9jX2ZyYW1lKCk7Ci0rICAgICAg ICAgICAgICAgICAgICBkZWNvZGVkRnJhbWUgPSBhdl9mcmFtZV9hbGxvYygpOwotICAgICAgICAg ICAgICAgICAgICAgaWYoICFkZWNvZGVkRnJhbWUgKQotICAgICAgICAgICAgICAgICAgICAgewot ICAgICAgICAgICAgICAgICAgICAgICAgIHdhcm5pbmcoKSA8PCAiVW5hYmxlIHRvIGFsbG9jYXRl IGVub3VnaCBtZW1vcnkgdG8gZGVjb2RlIGZpbGUuIjsKLUBAIC00NjcsNyArNDY3LDcgQEAgTXVz aWNETlNBdWRpb0RlY29kZXI6OmRlY29kZSggY29uc3QgUVN0cmluZyAmZmlsZU5hbWUsIERlY29k ZWRBdWRpb0RhdGEgKmRhdGEsIGMKLSAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKLSAg ICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgIGVsc2UKLS0gICAgICAg ICAgICAgICAgICAgICAgICBhdmNvZGVjX2dldF9mcmFtZV9kZWZhdWx0cyggZGVjb2RlZEZyYW1l ICk7Ci0rCQkgICAgICAgICBhdl9mcmFtZV91bnJlZiggZGVjb2RlZEZyYW1lICk7Ci0gICAgICAg ICAgICAgICAgIH0KLSAKLSAgICAgICAgICAgICAgICAgZGVjb2RlclJldCA9IGF2Y29kZWNfZGVj b2RlX2F1ZGlvNCggcENvZGVjQ3R4LCBkZWNvZGVkRnJhbWUsICZnb3RGcmFtZSwgJmF2cGt0ICk7 Ci0tLSAKLTIuOS4zCi0KCmRpZmYgLS1naXQgYS8wMDM5LUZpeC1HcG9kZGVyLWNyZWRlbnRpYWwt c2VydmljZS13aXRob3V0LWt3YWxsZXQucGF0Y2ggYi8wMDM5LUZpeC1HcG9kZGVyLWNyZWRlbnRp YWwtc2VydmljZS13aXRob3V0LWt3YWxsZXQucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0 CmluZGV4IDBmMjBkYWEuLjAwMDAwMDAKLS0tIGEvMDAzOS1GaXgtR3BvZGRlci1jcmVkZW50aWFs LXNlcnZpY2Utd2l0aG91dC1rd2FsbGV0LnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsNjAgKzAs MCBAQAotRnJvbSAzMmRlNjU3NzAwOTAyNTUxZjYwMGRlODM2MDIxMzYxZWY5NjViYjM2IE1vbiBT ZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogR2l1c2VwcGUgU2lsbGV0dGkgPHNpbGxldHRpZ0Bn bWFpbC5jb20+Ci1EYXRlOiBGcmksIDE3IEZlYiAyMDE3IDExOjE0OjM5ICswMTAwCi1TdWJqZWN0 OiBbUEFUQ0ggMzkvNDddIEZpeCBHcG9kZGVyIGNyZWRlbnRpYWwgc2VydmljZSB3aXRob3V0IGt3 YWxsZXQKLQotQmVmb3JlIHRvIGZpeCB0aGlzIGJ1ZywgdGhlIGdwb2RkZXIgcGx1Z2luIGhhZCBw cm9ibGVtcyB3aXRoIHNhdmluZyB1c2VybmFtZSBhbmQgcGFzc3dvcmQgaW4gcGxhaW4gdGV4dC4K LQotVGhlcmUgd2VyZSB0d28gcHJvYmxlbXM6Ci0KLTEpIEEgdXNlbGVzcyBzcGFjZSBmb3IgdGhl IHZhcmlhYmxlIG1faWdub3JlV2FsbGV0IHdhcyBzYXZlZCBpbiB0aGUgY29uZmlnIGZpbGUKLTIp IFRoZSBzYXZpbmcgb2YgdGhlIGNyZWRlbnRpYWwgaW4gcGxhaW4gdGV4dCB3aGVyZSBtYWRlIGlu IHRoZSB3cm9uZyB3YXkuCi1Ob3cgaXQgaXMgY2FsbGVkIHRoZSBmdW5jdGlvbiBhc2tBYm91dE1p c3NpbmdLV2FsbGV0KCksIHRoYXQgbWFrZSB0aGUgdXNlIHNlZSBhIGRpYWxvZyB3aW5kb3dzIHdo ZXJlIGlzIGFza2VkIHRvIHNhdmUgdGhlIGNyZWRlbnRpYWwgaW4gcGxhaW4gdGV4dC4KLUNyZWRl bnRpYWwgYXJlIG5vdyBzYXZlZCBpbiB0aGUgdGV4dERpYWxvZ1llcyBzbG90LgotCi1SRVZJRVc6 IDEyMjc5NwotLS0tCi0gc3JjL3NlcnZpY2VzL2dwb2RkZXIvR3BvZGRlclNlcnZpY2VDb25maWcu Y3BwIHwgMTMgKysrKysrLS0tLS0tLQotIDEgZmlsZSBjaGFuZ2VkLCA2IGluc2VydGlvbnMoKyks IDcgZGVsZXRpb25zKC0pCi0KLWRpZmYgLS1naXQgYS9zcmMvc2VydmljZXMvZ3BvZGRlci9HcG9k ZGVyU2VydmljZUNvbmZpZy5jcHAgYi9zcmMvc2VydmljZXMvZ3BvZGRlci9HcG9kZGVyU2Vydmlj ZUNvbmZpZy5jcHAKLWluZGV4IDkwOThkNTkuLjQ3ZWJkMzkgMTAwNjQ0Ci0tLS0gYS9zcmMvc2Vy dmljZXMvZ3BvZGRlci9HcG9kZGVyU2VydmljZUNvbmZpZy5jcHAKLSsrKyBiL3NyYy9zZXJ2aWNl cy9ncG9kZGVyL0dwb2RkZXJTZXJ2aWNlQ29uZmlnLmNwcAotQEAgLTEzMSwxMSArMTMxLDYgQEAg R3BvZGRlclNlcnZpY2VDb25maWc6OnNhdmUoKQotICAgICAgICAgaWYoIG1fd2FsbGV0LT53cml0 ZVBhc3N3b3JkKCAiZ3BvZGRlcl9wYXNzd29yZCIsIG1fcGFzc3dvcmQgKSAhPSAwICkKLSAgICAg ICAgICAgICBkZWJ1ZygpIDw8ICJGYWlsZWQgdG8gc2F2ZSBncG9kZGVyLm5ldCBwdyB0byBrd2Fs bGV0ISI7Ci0gICAgIH0KLS0gICAgZWxzZSBpZiggbV9pZ25vcmVXYWxsZXQgKQotLSAgICB7Ci0t ICAgICAgICBjb25maWcud3JpdGVFbnRyeSggInVzZXJuYW1lIiwgbV91c2VybmFtZSApOwotLSAg ICAgICAgY29uZmlnLndyaXRlRW50cnkoICJwYXNzd29yZCIsIG1fcGFzc3dvcmQgKTsKLS0gICAg fQotICAgICBlbHNlCi0gICAgIHsKLSAgICAgICAgIGlmKCBtX2VuYWJsZVByb3ZpZGVyICkKLUBA IC0yMTIsNyArMjA3LDkgQEAgR3BvZGRlclNlcnZpY2VDb25maWc6OnRleHREaWFsb2dZZXMoKSAv L1NMT1QKLSAgICAgICAgIEtDb25maWdHcm91cCBjb25maWcgPSBLR2xvYmFsOjpjb25maWcoKS0+ Z3JvdXAoIGNvbmZpZ1NlY3Rpb25OYW1lKCkgKTsKLSAKLSAgICAgICAgIG1faWdub3JlV2FsbGV0 ID0gdHJ1ZTsKLS0gICAgICAgIGNvbmZpZy53cml0ZUVudHJ5KCAiaWdub3JlV2FsbGV0ICIsIG1f aWdub3JlV2FsbGV0ICk7Ci0rICAgICAgICBjb25maWcud3JpdGVFbnRyeSggImlnbm9yZVdhbGxl dCIsIG1faWdub3JlV2FsbGV0ICk7Ci0rICAgICAgICBjb25maWcud3JpdGVFbnRyeSggInVzZXJu YW1lIiwgbV91c2VybmFtZSApOwotKyAgICAgICAgY29uZmlnLndyaXRlRW50cnkoICJwYXNzd29y ZCIsIG1fcGFzc3dvcmQgKTsKLSAKLSAgICAgICAgIGNvbmZpZy5zeW5jKCk7Ci0gICAgIH0KLUBA IC0yMjgsNyArMjI1LDkgQEAgR3BvZGRlclNlcnZpY2VDb25maWc6OnRleHREaWFsb2dObygpIC8v U0xPVAotICAgICAgICAgS0NvbmZpZ0dyb3VwIGNvbmZpZyA9IEtHbG9iYWw6OmNvbmZpZygpLT5n cm91cCggY29uZmlnU2VjdGlvbk5hbWUoKSApOwotIAotICAgICAgICAgbV9pZ25vcmVXYWxsZXQg PSBmYWxzZTsKLS0gICAgICAgIGNvbmZpZy53cml0ZUVudHJ5KCAiaWdub3JlV2FsbGV0ICIsIG1f aWdub3JlV2FsbGV0ICk7Ci0rICAgICAgICBjb25maWcud3JpdGVFbnRyeSggImlnbm9yZVdhbGxl dCIsIG1faWdub3JlV2FsbGV0ICk7Ci0rICAgICAgICBjb25maWcud3JpdGVFbnRyeSggInVzZXJu YW1lIiwgUVN0cmluZygpICk7Ci0rICAgICAgICBjb25maWcud3JpdGVFbnRyeSggInBhc3N3b3Jk IiwgUVN0cmluZygpICk7Ci0gCi0gICAgICAgICBjb25maWcuc3luYygpOwotICAgICB9Ci0tLSAK LTIuOS4zCi0KCmRpZmYgLS1naXQgYS8wMDQxLUFkZC1uYW1lc3BhY2UtdG8tZGVza3RvcC1hbmQt YXBwZGF0YS1maWxlcy5wYXRjaCBiLzAwNDEtQWRkLW5hbWVzcGFjZS10by1kZXNrdG9wLWFuZC1h cHBkYXRhLWZpbGVzLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjMTk1Yjgy Li4wMDAwMDAwCi0tLSBhLzAwNDEtQWRkLW5hbWVzcGFjZS10by1kZXNrdG9wLWFuZC1hcHBkYXRh LWZpbGVzLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsNzcgKzAsMCBAQAotRnJvbSAyMmUwYWMy YmFmMDk3NWExZGFiYmZhNzg5MmY4YzUyYzM4OTkwMjM1IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAw MQotRnJvbTogTHVpZ2kgVG9zY2FubyA8bHVpZ2kudG9zY2Fub0B0aXNjYWxpLml0PgotRGF0ZTog U3VuLCAxNiBPY3QgMjAxNiAxNjoxMToyNyArMDIwMAotU3ViamVjdDogW1BBVENIIDQxLzQ3XSBB ZGQgbmFtZXNwYWNlIHRvIGRlc2t0b3AgYW5kIGFwcGRhdGEgZmlsZXMKLQotLSBhZGQgdGhlIG9y Z2FuaXphdGlvbiBuYW1lc3BhY2UgdG8gdGhlIGRlc2t0b3AgYW5kIHRoZW4gYXBwZGF0YSBmaWxl cywKLSAgYWNjb3JkaW5nIHRoZSBzcGVjaWZpY2F0aW9uOwotLSB1c2UgdGhlIG5ldyBkaXJlY3Rv cnkgZm9yIG1ldGFkYXRhIChtZXRhaW5mbykgZmlsZXMuCi0KLVJFVklFVzogMTI5MTkyCi0tLS0K LSBzcmMvQ01ha2VMaXN0cy50eHQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHwgNiArKystLS0KLSBzcmMvZGJ1cy9tcHJpczIvTWVkaWFQbGF5ZXIyLmNw cCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgMiArLQotIHNyYy97YW1hcm9r LmFwcGRhdGEueG1sID0+IG9yZy5rZGUuYW1hcm9rLmFwcGRhdGEueG1sfSAgICAgICAgICAgICAg fCAyICstCi0gc3JjL3thbWFyb2suZGVza3RvcCA9PiBvcmcua2RlLmFtYXJvay5kZXNrdG9wfSAg ICAgICAgICAgICAgICAgICAgICB8IDAKLSAuLi57YW1hcm9rX2NvbnRhaW5lcnMuZGVza3RvcCA9 PiBvcmcua2RlLmFtYXJva19jb250YWluZXJzLmRlc2t0b3B9IHwgMAotIDUgZmlsZXMgY2hhbmdl ZCwgNSBpbnNlcnRpb25zKCspLCA1IGRlbGV0aW9ucygtKQotIHJlbmFtZSBzcmMve2FtYXJvay5h cHBkYXRhLnhtbCA9PiBvcmcua2RlLmFtYXJvay5hcHBkYXRhLnhtbH0gKDk5JSkKLSByZW5hbWUg c3JjL3thbWFyb2suZGVza3RvcCA9PiBvcmcua2RlLmFtYXJvay5kZXNrdG9wfSAoMTAwJSkKLSBy ZW5hbWUgc3JjL3thbWFyb2tfY29udGFpbmVycy5kZXNrdG9wID0+IG9yZy5rZGUuYW1hcm9rX2Nv bnRhaW5lcnMuZGVza3RvcH0gKDEwMCUpCi0KLWRpZmYgLS1naXQgYS9zcmMvQ01ha2VMaXN0cy50 eHQgYi9zcmMvQ01ha2VMaXN0cy50eHQKLWluZGV4IDMyN2VjMTAuLjgyN2RiMzYgMTAwNjQ0Ci0t LS0gYS9zcmMvQ01ha2VMaXN0cy50eHQKLSsrKyBiL3NyYy9DTWFrZUxpc3RzLnR4dAotQEAgLTk0 OCw5ICs5NDgsOSBAQCBpbnN0YWxsKFRBUkdFVFMgYW1hcm9rICR7SU5TVEFMTF9UQVJHRVRTX0RF RkFVTFRfQVJHU30pCi0gCi0gIyMjIyMjIyMjIyMgaW5zdGFsbCBmaWxlcyAjIyMjIyMjIyMjIyMj IyMKLSAKLS1pbnN0YWxsKFBST0dSQU1TIGFtYXJvay5kZXNrdG9wIERFU1RJTkFUSU9OICR7WERH X0FQUFNfSU5TVEFMTF9ESVJ9ICkKLS1pbnN0YWxsKFBST0dSQU1TIGFtYXJva19jb250YWluZXJz LmRlc2t0b3AgREVTVElOQVRJT04gJHtYREdfQVBQU19JTlNUQUxMX0RJUn0gKQotLWluc3RhbGwo RklMRVMgYW1hcm9rLmFwcGRhdGEueG1sIERFU1RJTkFUSU9OICR7U0hBUkVfSU5TVEFMTF9QUkVG SVh9L2FwcGRhdGEpCi0raW5zdGFsbChQUk9HUkFNUyBvcmcua2RlLmFtYXJvay5kZXNrdG9wIERF U1RJTkFUSU9OICR7WERHX0FQUFNfSU5TVEFMTF9ESVJ9ICkKLStpbnN0YWxsKFBST0dSQU1TIG9y Zy5rZGUuYW1hcm9rX2NvbnRhaW5lcnMuZGVza3RvcCBERVNUSU5BVElPTiAke1hER19BUFBTX0lO U1RBTExfRElSfSApCi0raW5zdGFsbChGSUxFUyBvcmcua2RlLmFtYXJvay5hcHBkYXRhLnhtbCBE RVNUSU5BVElPTiAke1NIQVJFX0lOU1RBTExfUFJFRklYfS9tZXRhaW5mbykKLSAKLSBpbnN0YWxs KEZJTEVTIGFtYXJva19wbHVnaW4uZGVza3RvcCBERVNUSU5BVElPTiAke1NFUlZJQ0VUWVBFU19J TlNUQUxMX0RJUn0pCi0gaW5zdGFsbChGSUxFUyBhbWFyb2tfY29kZWNpbnN0YWxsLmRlc2t0b3Ag REVTVElOQVRJT04gJHtTRVJWSUNFVFlQRVNfSU5TVEFMTF9ESVJ9KQotZGlmZiAtLWdpdCBhL3Ny Yy9kYnVzL21wcmlzMi9NZWRpYVBsYXllcjIuY3BwIGIvc3JjL2RidXMvbXByaXMyL01lZGlhUGxh eWVyMi5jcHAKLWluZGV4IGExZDFiZGEuLjFmMDA4MjcgMTAwNjQ0Ci0tLS0gYS9zcmMvZGJ1cy9t cHJpczIvTWVkaWFQbGF5ZXIyLmNwcAotKysrIGIvc3JjL2RidXMvbXByaXMyL01lZGlhUGxheWVy Mi5jcHAKLUBAIC05NCw3ICs5NCw3IEBAIFFTdHJpbmcgTWVkaWFQbGF5ZXIyOjpJZGVudGl0eSgp IGNvbnN0Ci0gCi0gUVN0cmluZyBNZWRpYVBsYXllcjI6OkRlc2t0b3BFbnRyeSgpIGNvbnN0Ci0g ewotLSAgICByZXR1cm4gUUxhdGluMVN0cmluZygiYW1hcm9rIik7Ci0rICAgIHJldHVybiBRTGF0 aW4xU3RyaW5nKCJvcmcua2RlLmFtYXJvayIpOwotIH0KLSAKLSBRU3RyaW5nTGlzdCBNZWRpYVBs YXllcjI6OlN1cHBvcnRlZFVyaVNjaGVtZXMoKSBjb25zdAotZGlmZiAtLWdpdCBhL3NyYy9hbWFy b2suYXBwZGF0YS54bWwgYi9zcmMvb3JnLmtkZS5hbWFyb2suYXBwZGF0YS54bWwKLXNpbWlsYXJp dHkgaW5kZXggOTklCi1yZW5hbWUgZnJvbSBzcmMvYW1hcm9rLmFwcGRhdGEueG1sCi1yZW5hbWUg dG8gc3JjL29yZy5rZGUuYW1hcm9rLmFwcGRhdGEueG1sCi1pbmRleCA4MDllNDJjLi5mZjA2ZmM3 IDEwMDY0NAotLS0tIGEvc3JjL2FtYXJvay5hcHBkYXRhLnhtbAotKysrIGIvc3JjL29yZy5rZGUu YW1hcm9rLmFwcGRhdGEueG1sCi1AQCAtMSw2ICsxLDYgQEAKLSA8P3htbCB2ZXJzaW9uPSIxLjAi IGVuY29kaW5nPSJ1dGYtOCI/PgotIDxjb21wb25lbnQgdHlwZT0iZGVza3RvcCI+Ci0tICA8aWQ+ YW1hcm9rLmRlc2t0b3A8L2lkPgotKyAgPGlkPm9yZy5rZGUuYW1hcm9rLmRlc2t0b3A8L2lkPgot ICAgPG1ldGFkYXRhX2xpY2Vuc2U+Q0MwLTEuMDwvbWV0YWRhdGFfbGljZW5zZT4KLSAgIDxuYW1l PkFtYXJvazwvbmFtZT4KLSAgIDxuYW1lIHhtbDpsYW5nPSJhciI+2KPZhdin2LHZiNmDPC9uYW1l PgotZGlmZiAtLWdpdCBhL3NyYy9hbWFyb2suZGVza3RvcCBiL3NyYy9vcmcua2RlLmFtYXJvay5k ZXNrdG9wCi1zaW1pbGFyaXR5IGluZGV4IDEwMCUKLXJlbmFtZSBmcm9tIHNyYy9hbWFyb2suZGVz a3RvcAotcmVuYW1lIHRvIHNyYy9vcmcua2RlLmFtYXJvay5kZXNrdG9wCi1kaWZmIC0tZ2l0IGEv c3JjL2FtYXJva19jb250YWluZXJzLmRlc2t0b3AgYi9zcmMvb3JnLmtkZS5hbWFyb2tfY29udGFp bmVycy5kZXNrdG9wCi1zaW1pbGFyaXR5IGluZGV4IDEwMCUKLXJlbmFtZSBmcm9tIHNyYy9hbWFy b2tfY29udGFpbmVycy5kZXNrdG9wCi1yZW5hbWUgdG8gc3JjL29yZy5rZGUuYW1hcm9rX2NvbnRh aW5lcnMuZGVza3RvcAotLS0gCi0yLjkuMwotCgpkaWZmIC0tZ2l0IGEvMDA0My1GaXgtYXBwZGF0 YS1hZGQtdGhlLXJlcXVpcmVkLXN1bW1hcnktdGFnLnBhdGNoIGIvMDA0My1GaXgtYXBwZGF0YS1h ZGQtdGhlLXJlcXVpcmVkLXN1bW1hcnktdGFnLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0 NAppbmRleCBlNzk4ZjU2Li4wMDAwMDAwCi0tLSBhLzAwNDMtRml4LWFwcGRhdGEtYWRkLXRoZS1y ZXF1aXJlZC1zdW1tYXJ5LXRhZy5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDIxICswLDAgQEAK LUZyb20gNjc5ZDg0NTRhNzJmNDhjMjY3ZmUwMjI3NDljYTVmMDFlMjI3MzI0ZiBNb24gU2VwIDE3 IDAwOjAwOjAwIDIwMDEKLUZyb206IEx1aWdpIFRvc2Nhbm8gPGx1aWdpLnRvc2Nhbm9AdGlzY2Fs aS5pdD4KLURhdGU6IFRodSwgMTYgTWFyIDIwMTcgMjM6MDM6NTUgKzAxMDAKLVN1YmplY3Q6IFtQ QVRDSCA0My80N10gRml4IGFwcGRhdGE6IGFkZCB0aGUgcmVxdWlyZWQgPHN1bW1hcnkvPiB0YWcK LQotPHN1bW1hcnkvPiBpcyByZXF1aXJlZCB0byBwYXNzIHRoZSB2YWxpZGF0aW9uIGV2ZW4gaW4g cmVsYXhlZCBtb2RlLgotLS0tCi0gc3JjL29yZy5rZGUuYW1hcm9rLmFwcGRhdGEueG1sIHwgMSAr Ci0gMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspCi0KLWRpZmYgLXVwIGFtYXJvay0yLjgu OTAvc3JjL29yZy5rZGUuYW1hcm9rLmFwcGRhdGEueG1sLjAwNDMgYW1hcm9rLTIuOC45MC9zcmMv b3JnLmtkZS5hbWFyb2suYXBwZGF0YS54bWwKLS0tLSBhbWFyb2stMi44LjkwL3NyYy9vcmcua2Rl LmFtYXJvay5hcHBkYXRhLnhtbC4wMDQzCTIwMTctMDQtMDMgMTE6NDQ6NDkuMzY5NTA1ODUxIC0w NTAwCi0rKysgYW1hcm9rLTIuOC45MC9zcmMvb3JnLmtkZS5hbWFyb2suYXBwZGF0YS54bWwJMjAx Ny0wNC0wMyAxMTo0NTozMi45MTU4ODUwNzkgLTA1MDAKLUBAIC0zMyw2ICszMyw3IEBACi0gICA8 bmFtZSB4bWw6bGFuZz0ic3YiPkFtYXJvazwvbmFtZT4KLSAgIDxuYW1lIHhtbDpsYW5nPSJ1ayI+ QW1hcm9rPC9uYW1lPgotICAgPG5hbWUgeG1sOmxhbmc9IngtdGVzdCI+eHhBbWFyb2t4eDwvbmFt ZT4KLSsgIDxzdW1tYXJ5PkF1ZGlvIFBsYXllcjwvc3VtbWFyeT4KLSAgIDxkZXNjcmlwdGlvbj4K LSAgICAgPHA+QW1hcm9rIGlzIGEgZnJlZSwgdmVyc2F0aWxlIGFuZCBwb3dlcmZ1bCBtdXNpYyBw bGF5ZXIuPC9wPgotICAgICA8cCB4bWw6bGFuZz0iYXIiPtij2YXYp9ix2YjZgyDZhdi02LrZkdmE INmF2YjYs9mK2YLZiSDZhdis2ZHYp9mG2YrZkdiMINmI2YLZiNmK2ZEg2YXYqti52K/ZkdivINin 2YTYp9iz2KrYudmF2KfZhNin2KouPC9wPgoKZGlmZiAtLWdpdCBhL2FtYXJvay5zcGVjIGIvYW1h cm9rLnNwZWMKaW5kZXggYzNmOWYyMy4uZDk3OTkxOSAxMDA2NDQKLS0tIGEvYW1hcm9rLnNwZWMK KysrIGIvYW1hcm9rLnNwZWMKQEAgLTEsMTQgKzEsMTAgQEAKIAogJWRlZmluZSBrZGV3ZWJraXQg MQotIyBkZWZpbmUgdG8gZW5hYmxlIG9wdGlvbmFsIC1uZXBvbXVrY29sbGVjdGlvbiBzdXBwb3J0 Ci0laWYgMCV7P2ZlZG9yYX0gPCAyMgotJWRlZmluZSBuZXBvbXVrY29sbGVjdGlvbiAxCi0lZW5k aWYKIAogTmFtZTogICAgYW1hcm9rCiBTdW1tYXJ5OiBNZWRpYSBwbGF5ZXIKLVZlcnNpb246IDIu OC45MAotUmVsZWFzZTogMTklez9kaXN0fQorVmVyc2lvbjogMi45LjAKK1JlbGVhc2U6IDElez9k aXN0fQogCiAjIEtERSBlLlYuIG1heSBkZXRlcm1pbmUgdGhhdCBmdXR1cmUgR1BMIHZlcnNpb25z IGFyZSBhY2NlcHRlZAogTGljZW5zZTogR1BMdjIgb3IgR1BMdjMKQEAgLTMyLDMzICsyOCw2IEBA IFBhdGNoMTogYW1hcm9rLTIuOC4wLW5vX2tkZXdlYmtpdC5wYXRjaAogIyBtYWtlIG15c3FsX2Zv dW5kIG5vbi1mYXRhbAogUGF0Y2gxMDA6IGFtYXJvay0yLjguOTAtbXlzcWxfZm91bmQucGF0Y2gK IAotIyMgdXBzdHJlYW0gcGF0Y2hlcwotUGF0Y2gzOiAwMDAzLUZpeC1UYWdMaWItdmVyc2lvbi1j aGVjay5wYXRjaAotUGF0Y2g5OiAwMDA5LWZpeC1hcHBhcmVudC1vYnZpb3VzLWVycm9yLXR5cG8t aW4tZmluZF9saWJyYXJ5LU1ZU1EucGF0Y2gKLVBhdGNoMTA6IDAwMTAtRml4LXRhYnMtYXBwbGV0 LnBhdGNoCi1QYXRjaDEyOiAwMDEyLXRhYnMtYXBwbGV0LUFkZC1taXNzaW5nLXRvLWZpeC10aGUt YnVpbGQucGF0Y2gKLVBhdGNoMTM6IDAwMTMtRml4LWZvci10aGUtaW5maW5pdGUtbG9vcC1pbi1j YXNlLWEtaG9tZS1idXJuZWQtb3Itby5wYXRjaAotUGF0Y2gxNDogMDAxNC1Pbmx5LWxpbmstd2l0 aC1NWVNRTF9FTUJFRERFRF9MSUJSQVJJRVMtaWYtV0lUSF9NWVNRLnBhdGNoCi1QYXRjaDE1OiAw MDE1LUZpeC1hLWNyYXNoLWluLWFtYXJvay13aGVuLW9wZW5pbmctdGhlLVNjcmlwdC1Db25zb2wu cGF0Y2gKLVBhdGNoMTY6IDAwMTYtRml4LXVudHJhbnNsYXRhYmxlLXN0cmluZy5wYXRjaAotUGF0 Y2gxNzogMDAxNy1nY2M2LWJ1aWxkZml4LnBhdGNoCi1QYXRjaDE5OiAwMDE5LURpc2FibGUtbm9u LVNTTC1jb25uZWN0aW9ucy1pbi13aWtpcGVkaWEtYXBwbGV0LnBhdGNoCi1QYXRjaDIwOiAwMDIw LVdpa2lwZWRpYS1hcHBsZXQtUmVtb3ZlLWxhc3QtdHJhY2Utb2Ytbm8tU1NMLXBvc3NpYmkucGF0 Y2gKLVBhdGNoMjQ6IDAwMjQtU3Vic3RpdHV0ZS1kZXByZWNhdGVkLU15U1FMLW9wdGlvbi1teWlz YW0tcmVjb3Zlci5wYXRjaAotUGF0Y2gyNTogMDAyNS1IYW5kbGUtbnVtZXJpYy1maWVsZHMtcHJv cGVybHktaW4tZmlsdGVyLWNyZWF0aW9uLWRpLnBhdGNoCi1QYXRjaDI2OiAwMDI2LVVzZS10cmFu c3BhcmVudC1iYWNrZ3JvdW5kLWZvci1seXJpY3MtYnJvd3Nlci5wYXRjaAotUGF0Y2gyNzogMDAy Ny1Pcmdhbml6ZS10cmFja3MtR3Vlc3MtdGFncy1wcmVzZXRzLXBlcnNpc3RlZC1wcm9wZXJsLnBh dGNoCi1QYXRjaDI4OiAwMDI4LUZpeC1mb3ItQy13YXJuaW5ncy1hYm91dC11bnVzZWQtdmFyaWFi bGVzLWFuZC1kZXByZWMucGF0Y2gKLVBhdGNoMjk6IDAwMjktRml4LU1QUklTMi1EZXNrdG9wRW50 cnktdmFsdWUucGF0Y2gKLVBhdGNoMzA6IDAwMzAtRml4LUNvbGxlY3Rpb24tQnJvd3Nlci1hdXRv LWV4cGFuZC1hZnRlci1zZWFyY2gtZXhwYS5wYXRjaAotUGF0Y2gzNjogMDAzNi1GaXgtQnVnLTMw MjI5OS1BdXRvc2Nyb2xsaW5nLUx5cmljcy1hcmUtc2Nyb2xsaW5nLWRvLnBhdGNoCi1QYXRjaDM3 OiAwMDM3LUZpeC1taW5vci10eXBvLnBhdGNoCi1QYXRjaDM4OiAwMDM4LUZpeC1hbWFyb2stYnVp bGQtd2l0aC1MaWJPRkEtdXNpbmctZmZtcGVnLTMucGF0Y2gKLVBhdGNoMzk6IDAwMzktRml4LUdw b2RkZXItY3JlZGVudGlhbC1zZXJ2aWNlLXdpdGhvdXQta3dhbGxldC5wYXRjaAotUGF0Y2g0MTog MDA0MS1BZGQtbmFtZXNwYWNlLXRvLWRlc2t0b3AtYW5kLWFwcGRhdGEtZmlsZXMucGF0Y2gKLVBh dGNoNDM6IDAwNDMtRml4LWFwcGRhdGEtYWRkLXRoZS1yZXF1aXJlZC1zdW1tYXJ5LXRhZy5wYXRj aAotCi0KIEJ1aWxkUmVxdWlyZXM6IGN1cmwtZGV2ZWwKIEJ1aWxkUmVxdWlyZXM6IGRlc2t0b3At ZmlsZS11dGlscwogQnVpbGRSZXF1aXJlczogZ2NjLWMrKwpAQCAtMTIxLDEwICs5MCw4IEBAIFJl cXVpcmVzOiBtZWRpYS1wbGF5ZXItaW5mbwogCiBSZXF1aXJlczogJXtuYW1lfS1saWJzJXs/X2lz YX0gPSAle3ZlcnNpb259LSV7cmVsZWFzZX0KIAotJWlmICEgMCV7P25lcG9tdWtjb2xsZWN0aW9u fQogQnVpbGRDb25mbGljdHM6IG5lcG9tdWstY29yZS1kZXZlbAogT2Jzb2xldGVzOiBhbWFyb2st bmVwb211a2NvbGxlY3Rpb24gPCAle3ZlcnNpb259LSV7cmVsZWFzZX0KLSVlbmRpZgogCiAlZGVz Y3JpcHRpb24KIEFtYXJvayBpcyBhIG11bHRpbWVkaWEgcGxheWVyIHdpdGg6CkBAIC0xNTQsMTgg KzEyMSw2IEBAIEJ1aWxkQXJjaDogbm9hcmNoCiAlZGVzY3JpcHRpb24gZG9jCiAle3N1bW1hcnl9 LgogCi0laWYgMCV7P25lcG9tdWtjb2xsZWN0aW9ufQotJXBhY2thZ2UgbmVwb211a2NvbGxlY3Rp b24KLVN1bW1hcnk6IE5lcG9tdWsgY29sbGVjdGlvbiBwbHVnaW4gZm9yICV7bmFtZX0KLUJ1aWxk UmVxdWlyZXM6IG5lcG9tdWstY29yZS1kZXZlbAotQnVpbGRSZXF1aXJlczogcGtnY29uZmlnKHNv cHJhbm8pCi0jIGZvciB1cGdyYWRlIHBhdGgKLU9ic29sZXRlczogYW1hcm9rIDwgMi44LjAtNAot UmVxdWlyZXM6ICV7bmFtZX0gPSAle3ZlcnNpb259LSV7cmVsZWFzZX0KLSVkZXNjcmlwdGlvbiBu ZXBvbXVrY29sbGVjdGlvbgotJXtzdW1tYXJ5fS4KLSVlbmRpZgotCiAKICVwcmVwCiAlc2V0dXAg LXEgCkBAIC0xNzYsMzAgKzEzMSw2IEBAIFJlcXVpcmVzOiAle25hbWV9ID0gJXt2ZXJzaW9ufS0l e3JlbGVhc2V9CiAlZW5kaWYKIAogIyMgdXBzdHJlYW0KLSVwYXRjaDMgLXAxIC1iIC4wMDAzCi0l cGF0Y2g5IC1wMSAtYiAuMDAwOQotJXBhdGNoMTAgLXAxIC1iIC4wMDEwCi0lcGF0Y2gxMiAtcDEg LWIgLjAwMTIKLSVwYXRjaDEzIC1wMSAtYiAuMDAxMwotJXBhdGNoMTQgLXAxIC1iIC4wMDE0Ci0l cGF0Y2gxNSAtcDEgLWIgLjAwMTUKLSVwYXRjaDE2IC1wMSAtYiAuMDAxNgotJXBhdGNoMTcgLXAx IC1iIC4wMDE3Ci0lcGF0Y2gxOSAtcDEgLWIgLjAwMTkKLSVwYXRjaDIwIC1wMSAtYiAuMDAyMAot JXBhdGNoMjQgLXAxIC1iIC4wMDI0Ci0lcGF0Y2gyNSAtcDEgLWIgLjAwMjUKLSVwYXRjaDI2IC1w MSAtYiAuMDAyNgotJXBhdGNoMjcgLXAxIC1iIC4wMDI3Ci0lcGF0Y2gyOCAtcDEgLWIgLjAwMjgK LSVwYXRjaDI5IC1wMSAtYiAuMDAyOQotJXBhdGNoMzAgLXAxIC1iIC4wMDMwCi0lcGF0Y2gzNiAt cDEgLWIgLjAwMzYKLSVwYXRjaDM3IC1wMSAtYiAuMDAzNwotJXBhdGNoMzggLXAxIC1iIC4wMDM4 Ci0lcGF0Y2gzOSAtcDEgLWIgLjAwMzkKLSVwYXRjaDQxIC1wMSAtYiAuMDA0MQotJXBhdGNoNDMg LXAxIC1iIC4wMDQzCiAKICMjIHVwc3RyZWFtYWJsZQogCkBAIC0yMTIsNyArMTQzLDcgQEAgcHVz aGQgJXtfdGFyZ2V0X3BsYXRmb3JtfQogICAtRE1ZU1FMQ09ORklHX0VYRUNVVEFCTEU6Qk9PTD1P RkYKIHBvcGQKIAotbWFrZSAlez9fc21wX21mbGFnc30gLUMgJXtfdGFyZ2V0X3BsYXRmb3JtfQor JW1ha2VfYnVpbGQgLUMgJXtfdGFyZ2V0X3BsYXRmb3JtfQogCiAKICVpbnN0YWxsCkBAIC0zNTUs MTQgKzI4NiwxMSBAQCBncmVwICdeTm9EaXNwbGF5JyAle2J1aWxkcm9vdH0le19rZGU0X2RhdGFk aXJ9L2FwcGxpY2F0aW9ucy9rZGU0L2FtemRvd25sb2FkZXIuZAogCiAlZmlsZXMgZG9jIC1mIGFt YXJvay1kb2MubGFuZwogCi0laWYgMCV7P25lcG9tdWtjb2xsZWN0aW9ufQotJWZpbGVzIG5lcG9t dWtjb2xsZWN0aW9uCi0le19rZGU0X2xpYmRpcn0va2RlNC9hbWFyb2tfY29sbGVjdGlvbi1uZXBv bXVrY29sbGVjdGlvbi5zbwotJXtfa2RlNF9kYXRhZGlyfS9rZGU0L3NlcnZpY2VzL2FtYXJva19j b2xsZWN0aW9uLW5lcG9tdWtjb2xsZWN0aW9uLmRlc2t0b3AKLSVlbmRpZgotCiAKICVjaGFuZ2Vs b2cKKyogV2VkIE1hciAwNyAyMDE4IFJleCBEaWV0ZXIgPHJkaWV0ZXJAZmVkb3JhcHJvamVjdC5v cmc+IC0gMi45LjAtMQorLSBhbWFyb2stMi45LjAKKwogKiBXZWQgRmViIDI4IDIwMTggUmV4IERp ZXRlciA8cmRpZXRlckBmZWRvcmFwcm9qZWN0Lm9yZz4gLSAyLjguOTAtMTkKIC0gdXNlICUlbGRj b25maWdfc2NyaXB0bGV0cywgJSVfa2Y1X21ldGFpbmZvZGlyLCBCUjogZ2NjLWMrKwogCgpkaWZm IC0tZ2l0IGEvc291cmNlcyBiL3NvdXJjZXMKaW5kZXggNDBhYTYwMS4uMjkxZWQxMSAxMDA2NDQK LS0tIGEvc291cmNlcworKysgYi9zb3VyY2VzCkBAIC0xICsxIEBACi1hMWM5MTRjYjBkYWM3Y2Fj NGQwZjdkYzFhNGM0NjE3OSAgYW1hcm9rLTIuOC45MC50YXIueHoKK1NIQTUxMiAoYW1hcm9rLTIu OS4wLnRhci54eikgPSA2ZGI5YTI2MzU3MjVjODcyODA5NTZhZDBjNGNhMTk5YjU4NWM2NWM2ODhm YTUxOTljNmU2ZWJlMjM4NTQ4ZjQ3ZmZhNGU0NjVmZGU4ZWRiNDE1ZjE1OTgyOGVjNTEwMmQzOTRk YmZjZGQxNWFlOTk5OWY5YzM3OGU3YmNlODg0Ngo=