ZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL2V2YWwudHh0IGIvcnVudGltZS9kb2MvZXZhbC50eHQKaW5kZXggNjlmYTZlOC4uMWRhMDVmYiAxMDA2NDQKLS0tIGEvcnVudGltZS9kb2MvZXZhbC50eHQKKysrIGIvcnVudGltZS9kb2MvZXZhbC50eHQKQEAgLTEsNCArMSw0IEBACi0qZXZhbC50eHQqCUZvciBWaW0gdmVyc2lvbiA3LjQuICBMYXN0IGNoYW5nZTogMjAxNiBBdWcgMTgKKypldmFsLnR4dCoJRm9yIFZpbSB2ZXJzaW9uIDcuNC4gIExhc3QgY2hhbmdlOiAyMDE2IEF1ZyAyMQogCiAKIAkJICBWSU0gUkVGRVJFTkNFIE1BTlVBTAkgIGJ5IEJyYW0gTW9vbGVuYWFyCkBAIC03MzA1LDcgKzczMDUsNyBAQAogCQlBbWJpZ3VvdXMsIHRoaXMgZnVuY3Rpb24ncyByZXR1cm4gdmFsdWUgZGVwZW5kcyBvbiAnYW1iaXdpZHRoJy4KIAkJQWxzbyBzZWUgfHN0cmxlbigpfCwgfHN0cmRpc3BsYXl3aWR0aCgpfCBhbmQgfHN0cmNoYXJzKCl8LgogCi1zdWJtYXRjaCh7bnJ9Wywge2xpc3R9XSkJCQkJKnN1Ym1hdGNoKCkqCitzdWJtYXRjaCh7bnJ9Wywge2xpc3R9XSkJCQkqc3VibWF0Y2goKSogKkU5MzUqCiAJCU9ubHkgZm9yIGFuIGV4cHJlc3Npb24gaW4gYSB8OnN1YnN0aXR1dGV8IGNvbW1hbmQgb3IKIAkJc3Vic3RpdHV0ZSgpIGZ1bmN0aW9uLgogCQlSZXR1cm5zIHRoZSB7bnJ9J3RoIHN1Ym1hdGNoIG9mIHRoZSBtYXRjaGVkIHRleHQuICBXaGVuIHtucn0KZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL2d1aV94MTEudHh0IGIvcnVudGltZS9kb2MvZ3VpX3gxMS50eHQKaW5kZXggYzY1Nzc5MC4uOWE1MGYyNiAxMDA2NDQKLS0tIGEvcnVudGltZS9kb2MvZ3VpX3gxMS50eHQKKysrIGIvcnVudGltZS9kb2MvZ3VpX3gxMS50eHQKQEAgLTEsNCArMSw0IEBACi0qZ3VpX3gxMS50eHQqICAgRm9yIFZpbSB2ZXJzaW9uIDcuNC4gIExhc3QgY2hhbmdlOiAyMDE2IEFwciAwOAorKmd1aV94MTEudHh0KiAgIEZvciBWaW0gdmVyc2lvbiA3LjQuICBMYXN0IGNoYW5nZTogMjAxNiBBdWcgMjEKIAogCiAJCSAgVklNIFJFRkVSRU5DRSBNQU5VQUwgICAgYnkgQnJhbSBNb29sZW5hYXIKQEAgLTQyMSw2ICs0MjEsOSBAQAogR05PTUUgaXMgY29tcGlsZWQgd2l0aCBpZiBpdCB3YXMgZm91bmQgYnkgY29uZmlndXJlIGFuZCB0aGUKIC0tZW5hYmxlLWdub21lLWNoZWNrIGFyZ3VtZW50IHdhcyB1c2VkLgogCitOb3RlOiBBdm9pZCB1c2Ugb2YgLS1lbmFibGUtZ25vbWUtY2hlY2sgd2l0aCBHVEsrIDMgR1VJIGJ1aWxkLiAgVGhlCitmdW5jdGlvbmFsaXR5IG1lbnRpb25lZCBhYm92ZSBpcyBjb25zb2xpZGF0ZWQgaW4gR1RLKyAzLgorCiAKIEdOT01FIHNlc3Npb24gc3VwcG9ydAkJCSpndWktZ25vbWUtc2Vzc2lvbiogKmdub21lLXNlc3Npb24qCiAKQEAgLTQ1NywyMCArNDYwLDM3IEBACiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIDguIENvbXBpbGluZwkJCQkJCSpndWkteDExLWNvbXBpbGluZyoKIAotSWYgdXNpbmcgWDExLCBWaW0ncyBNYWtlZmlsZSB3aWxsIGJ5IGRlZmF1bHQgZmlyc3QgdHJ5IHRvIGZpbmQgdGhlIG5lY2Vzc2FyeQotR1RLKyBmaWxlcyBvbiB5b3VyIHN5c3RlbS4gIElmIHRoZSBHVEsrIGZpbGVzIGNhbm5vdCBiZSBmb3VuZCwgdGhlbiB0aGUgTW90aWYKLWZpbGVzIHdpbGwgYmUgc2VhcmNoZWQgZm9yLiAgRmluYWxseSwgaWYgdGhpcyBmYWlscywgdGhlIEF0aGVuYSBmaWxlcyB3aWxsIGJlCi1zZWFyY2hlZCBmb3IuICBJZiBhbGwgdGhyZWUgZmFpbCwgdGhlIEdVSSB3aWxsIGJlIGRpc2FibGVkLgorSWYgdXNpbmcgWDExLCBWaW0ncyBjb25maWd1cmUgd2lsbCBieSBkZWZhdWx0IGZpcnN0IHRyeSB0byBmaW5kIHRoZSBuZWNlc3NhcnkKK0dUSysgZmlsZXMgb24geW91ciBzeXN0ZW0uICBXaGVuIGJvdGggR1RLKyAyIGFuZCBHVEsrIDMgYXJlIGF2YWlsYWJsZSwgR1RLKyAyCit3aWxsIGJlIGNob3NlbiB1bmxlc3MgLS1lbmFibGUtZ3VpPWd0azMgaXMgcGFzc2VkIGV4cGxpY2l0bHkgdG8gY29uZmlndXJlLgogCi1Gb3IgR1RLKywgVmltJ3MgY29uZmlndXJhdGlvbiBwcm9jZXNzIHJlcXVpcmVzIHRoYXQgR1RLKyBiZSBwcm9wZXJseQotaW5zdGFsbGVkLiAgVGhhdCBpcywgdGhlIHNoZWxsIHNjcmlwdCAnZ3RrLWNvbmZpZycgbXVzdCBiZSBpbiB5b3VyIFBBVEgsIGFuZAoteW91IGNhbiBhbHJlYWR5IHN1Y2Nlc3NmdWwgY29tcGlsZSwgYnVpbGQsIGFuZCBleGVjdXRlIGEgR1RLKyBwcm9ncmFtLiAgVGhlCi1yZWFzb24gZm9yIHRoaXMgaXMgdGhhdCB0aGUgY29tcGlsZXIgZmxhZ3MgKENGTEFHUykgYW5kIGxpbmsgZmxhZ3MgKExERkxBR1MpCi1hcmUgb2J0YWluZWQgdGhyb3VnaCB0aGUgJ2d0ay1jb25maWcnIHNoZWxsIHNjcmlwdC4KK0lmIHRoZSBHVEsrIGZpbGVzIGNhbm5vdCBiZSBmb3VuZCwgdGhlbiB0aGUgTW90aWYgZmlsZXMgd2lsbCBiZSBzZWFyY2hlZCBmb3IuCitGaW5hbGx5LCBpZiB0aGlzIGZhaWxzLCB0aGUgQXRoZW5hIGZpbGVzIHdpbGwgYmUgc2VhcmNoZWQgZm9yLiAgSWYgYWxsIHRocmVlCitmYWlsLCB0aGUgR1VJIHdpbGwgYmUgZGlzYWJsZWQuCiAKLUlmIHlvdSB3YW50IHRvIGJ1aWxkIHdpdGggR1RLKyAyIHN1cHBvcnQgcGFzcyB0aGUgLS1lbmFibGUtZ3RrMi1jaGVjayBhcmd1bWVudAotdG8gLi9jb25maWd1cmUuICBPcHRpb25hbGx5LCBzdXBwb3J0IGZvciBHTk9NRSAyIHdpbGwgYmUgY29tcGlsZWQgaWYgdGhlCi0tLWVuYWJsZS1nbm9tZS1jaGVjayBvcHRpb24gaXMgYWxzbyBnaXZlbi4KK0ZvciBHVEsrLCBWaW0ncyBjb25maWd1cmF0aW9uIHByb2Nlc3MgdXNlcyBwa2ctY29uZmlnKDEpIHRvIGNoZWNrIGlmIHRoZQorR1RLKyByZXF1aXJlZCBmb3IgYSBzcGVjaWZpZWQgYnVpbGQgaXMgcHJvcGVybHkgaW5zdGFsbGVkIGFuZCB1c2FibGUuCitBY2NvcmRpbmdseSwgaXQgaXMgYSBnb29kIGlkZWEgdG8gbWFrZSBzdXJlIGJlZm9yZSBydW5uaW5nIGNvbmZpZ3VyZSB0aGF0Cit5b3VyIHN5c3RlbSBoYXMgYSB3b3JraW5nIHBrZy1jb25maWcgdG9nZXRoZXIgd2l0aCB0aGUgLnBjIGZpbGUgb2YgdGhlCityZXF1aXJlZCBHVEsrLiAgRm9yIHRoYXQsIHNheSwgcnVuIHRoZSBmb2xsb3dpbmcgb24gdGhlIGNvbW1hbmQgbGluZSB0byBzZWUgaWYKK3lvdXIgcGtnLWNvbmZpZyB3b3JrcyB3aXRoIHlvdXIgR1RLKyAyOiA+CisKKyAgICAkIHBrZ2NvbmZpZyAtLW1vZHZlcnNpb24gZ3RrKy0yLjAKKworUmVwbGFjZSBndGsrLTIuMCB3aXRoIGd0aystMy4wIGZvciBHVEsrIDMuIElmIHlvdSBnZXQgdGhlIGNvcnJlY3QgdmVyc2lvbgorbnVtYmVyIG9mIHlvdXIgR1RLKywgeW91IGNhbiBwcm9jZWVkOyBpZiBub3QsIHlvdSBwcm9iYWJseSBuZWVkIHRvIGRvIHNvbWUKK3N5c3RlbSBhZG1pbmlzdHJhdGlvbiBjaG9yZXMgdG8gc2V0IHVwIHBrZy1jb25maWcgYW5kIEdUSysgY29ycmVjdGx5LgorCitUaGUgR1RLKyAyIEdVSSBpcyBidWlsdCBieSBkZWZhdWx0LiAgVGhlcmVmb3JlLCB5b3UgdXN1YWxseSBkb24ndCBuZWVkIHRvIHBhc3MKK2FueSBvcHRpb25zIHN1Y2ggYXMgLS1lbmFibGUtZ3VpPWd0azIgdG8gY29uZmlndXJlIGFuZCBidWlsZCB0aGF0LgorCitPcHRpb25hbGx5LCB0aGUgR1RLKyAyIEdVSSBjYW4gY29uc29saWRhdGUgdGhlIEdOT01FIDIgc3VwcG9ydC4gIFRoaXMgc3VwcG9ydAoraXMgZW5hYmxlZCBieSBwYXNzaW5nIC0tZW5hYmxlLWdub21lLWNoZWNrIHRvIGNvbmZpZ3VyZS4KKworSWYgeW91IHdhbnQgdG8gYnVpbGQgdGhlIEdUSysgMyBHVUksIHlvdSBoYXZlIHRvIHBhc3MgLS1lbmFibGUtZ3VpPWd0azMKK2V4cGxpY2l0bHkgdG8gY29uZmlndXJlLCBhbmQgYXZvaWQgcGFzc2luZyAtLWVuYWJsZS1nbm9tZS1jaGVjayB0byB0aGF0LCBhcwordGhlIGZ1bmN0aW9uYWxpdHkgb2YgdGhlIEdOT01FIDIgc3VwcG9ydCBoYXMgYWxyZWFkeSBiZWVuIGNvbnNvbGlkYXRlZCBpbgorR1RLKyAzLgogCiBPdGhlcndpc2UsIGlmIHlvdSBhcmUgdXNpbmcgTW90aWYgb3IgQXRoZW5hLCB3aGVuIHlvdSBoYXZlIHRoZSBNb3RpZiBvciBBdGhlbmEKIGZpbGVzIGluIGEgZGlyZWN0b3J5IHdoZXJlIGNvbmZpZ3VyZSBkb2Vzbid0IGxvb2ssIGVkaXQgdGhlIE1ha2VmaWxlIHRvIGVudGVyCkBAIC00NzgsMTggKzQ5OCwxNCBAQAogdGhlIE1vdGlmIGRpcmVjdG9yaWVzLCAiQ09ORl9PUFRfWCIgZm9yIEF0aGVuYS4KIAogCQkJCQkJCSpndWkteDExLWd0ayoKLUF0IHRoZSB0aW1lIG9mIHRoaXMgd3JpdGluZywgR1RLKyB2ZXJzaW9uIDEuMC42IGFuZCAxLjIgYXJlIG91dGRhdGVkLiAgSXQKLWlzIHN1Z2dlc3RlZCB0aGF0IHlvdSB1c2UgR1RLIDIuICBUaGUgR1RLIDEgc3VwcG9ydCB3aWxsIG1vc3QgbGlrZWx5IGJlCi1kcm9wcGVkIHNvb24uCitDdXJyZW50bHksIFZpbSBzdXBwb3J0cyBib3RoIEdUSysgMiBhbmQgR1RLKyAzLgogCi1Gb3IgdGhlIEdUSysgMiBHVUksIHVzaW5nIHRoZSBsYXRlc3QgcmVsZWFzZSBvZiB0aGUgR1RLKyAyLjAgb3IgR1RLKyAyLjIKLXNlcmllcyBpcyByZWNvbW1lbmRlZC4KK1RoZSBHVEsrIDIgR1VJIHJlcXVpcmVzIEdUSysgMi4yIG9yIGxhdGVyLgogCi1MYXN0bHksIGFsdGhvdWdoIEdUSysgaGFzIHN1cHBvc2VkbHkgYmVlbiBwb3J0ZWQgdG8gdGhlIFdpbjMyIHBsYXRmb3JtLCB0aGlzCi1oYXMgbm90IGJlZW4gdGVzdGVkIHdpdGggVmltIGFuZCBpcyBhbHNvIHVuc3VwcG9ydGVkLiAgQWxzbywgaXQncyB1bmxpa2VseSB0bwotZXZlbiBjb21waWxlIHNpbmNlIEdUSysgR1VJIHVzZXMgcGFydHMgb2YgdGhlIGdlbmVyaWMgWDExIGNvZGUuICBUaGlzIG1pZ2h0Ci1jaGFuZ2UgaW4gZGlzdGFudCBmdXR1cmU7IHBhcnRpY3VsYXJseSBiZWNhdXNlIGdldHRpbmcgcmlkIG9mIHRoZSBYMTEgY2VudHJpYwotY29kZSBwYXJ0cyBpcyBhbHNvIHJlcXVpcmVkIGZvciBHVEsrIGZyYW1lYnVmZmVyIHN1cHBvcnQuCitBbHRob3VnaCB0aGUgR1RLKyAzIEdVSSBpcyB3cml0dGVuIGluIHN1Y2ggYSB3YXkgdGhhdCB0aGUgc291cmNlIGNvZGUgY2FuIGJlCitjb21waWxlZCBhZ2FpbnN0IGFsbCB2ZXJzaW9ucyBvZiB0aGUgMy54IHNlcmllcywgd2UgcmVjb21tZW5kIEdUSysgMy4xMCBvcgorbGF0ZXIgYmVjYXVzZSBvZiBpdHMgc3Vic3RhbnRpYWwgaW1wbGVtZW50YXRpb24gY2hhbmdlcyBpbiByZWRyYXcgZG9uZSBhdAordGhhdCB2ZXJzaW9uLgogCiAJCQkJCQkJKmd1aS14MTEtbW90aWYqCiBGb3IgTW90aWYsIHlvdSBuZWVkIGF0IGxlYXN0IE1vdGlmIHZlcnNpb24gMS4yIGFuZC9vciBYMTFSNS4gIE1vdGlmIDIuMCBhbmQKZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL2luZGV4LnR4dCBiL3J1bnRpbWUvZG9jL2luZGV4LnR4dAppbmRleCA1ZWU3MzUxLi42YzlmNDU2IDEwMDY0NAotLS0gYS9ydW50aW1lL2RvYy9pbmRleC50eHQKKysrIGIvcnVudGltZS9kb2MvaW5kZXgudHh0CkBAIC0xLDQgKzEsNCBAQAotKmluZGV4LnR4dCogICAgIEZvciBWaW0gdmVyc2lvbiA3LjQuICBMYXN0IGNoYW5nZTogMjAxNiBBdWcgMTYKKyppbmRleC50eHQqICAgICBGb3IgVmltIHZlcnNpb24gNy40LiAgTGFzdCBjaGFuZ2U6IDIwMTYgQXVnIDI0CiAKIAogCQkgIFZJTSBSRUZFUkVOQ0UgTUFOVUFMICAgIGJ5IEJyYW0gTW9vbGVuYWFyCkBAIC0xMjM5LDYgKzEyMzksNyBAQAogfDpmaWxlfAkJOmZbaWxlXQkJc2hvdyBvciBzZXQgdGhlIGN1cnJlbnQgZmlsZSBuYW1lCiB8OmZpbGVzfAk6ZmlsZXMJCWxpc3QgYWxsIGZpbGVzIGluIHRoZSBidWZmZXIgbGlzdAogfDpmaWxldHlwZXwJOmZpbGV0W3lwZV0Jc3dpdGNoIGZpbGUgdHlwZSBkZXRlY3Rpb24gb24vb2ZmCit8OmZpbHRlcnwJOmZpbHRbZXJdCWZpbHRlciBvdXRwdXQgb2YgZm9sbG93aW5nIGNvbW1hbmQKIHw6ZmluZHwJCTpmaW5bZF0JCWZpbmQgZmlsZSBpbiAncGF0aCcgYW5kIGVkaXQgaXQKIHw6ZmluYWxseXwJOmZpbmFbbGx5XQlwYXJ0IG9mIGEgOnRyeSBjb21tYW5kCiB8OmZpbmlzaHwJOmZpbmlbc2hdCXF1aXQgc291cmNpbmcgYSBWaW0gc2NyaXB0CmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy9vcHRpb25zLnR4dCBiL3J1bnRpbWUvZG9jL29wdGlvbnMudHh0CmluZGV4IGM1MzExNjguLjY3YjA0MzEgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvZG9jL29wdGlvbnMudHh0CisrKyBiL3J1bnRpbWUvZG9jL29wdGlvbnMudHh0CkBAIC0xLDQgKzEsNCBAQAotKm9wdGlvbnMudHh0KglGb3IgVmltIHZlcnNpb24gNy40LiAgTGFzdCBjaGFuZ2U6IDIwMTYgQXVnIDE0Cisqb3B0aW9ucy50eHQqCUZvciBWaW0gdmVyc2lvbiA3LjQuICBMYXN0IGNoYW5nZTogMjAxNiBBdWcgMjYKIAogCiAJCSAgVklNIFJFRkVSRU5DRSBNQU5VQUwJICBieSBCcmFtIE1vb2xlbmFhcgpAQCAtNDMxOSw2ICs0MzE5LDggQEAKIAlvcmlnaW5hbCBwb3NpdGlvbiB3aGVuIG5vIG1hdGNoIGlzIGZvdW5kIGFuZCB3aGVuIHByZXNzaW5nIDxFc2M+LiAgWW91CiAJc3RpbGwgbmVlZCB0byBmaW5pc2ggdGhlIHNlYXJjaCBjb21tYW5kIHdpdGggPEVudGVyPiB0byBtb3ZlIHRoZQogCWN1cnNvciB0byB0aGUgbWF0Y2guCisJWW91IGNhbiB1c2UgdGhlIENUUkwtTiBhbmQgQ1RSTC1QIGtleXMgdG8gbW92ZSB0byB0aGUgbmV4dCBhbmQKKwlwcmV2aW91cyBtYXRjaC4gfGNfQ1RSTC1OfCB8Y19DVFJMLVB8CiAJV2hlbiBjb21waWxlZCB3aXRoIHRoZSB8K3JlbHRpbWV8IGZlYXR1cmUgVmltIG9ubHkgc2VhcmNoZXMgZm9yIGFib3V0CiAJaGFsZiBhIHNlY29uZC4gIFdpdGggYSBjb21wbGljYXRlZCBwYXR0ZXJuIGFuZC9vciBhIGxvdCBvZiB0ZXh0IHRoZQogCW1hdGNoIG1heSBub3QgYmUgZm91bmQuICBUaGlzIGlzIHRvIGF2b2lkIHRoYXQgVmltIGhhbmdzIHdoaWxlIHlvdQpAQCAtNDYzMiw3ICs0NjM0LDcgQEAKIAliZSBhYmxlIHRvIGV4ZWN1dGUgTm9ybWFsIG1vZGUgY29tbWFuZHMuCiAJVGhpcyBpcyB0aGUgb3Bwb3NpdGUgb2YgdGhlICdrZXltYXAnIG9wdGlvbiwgd2hlcmUgY2hhcmFjdGVycyBhcmUKIAltYXBwZWQgaW4gSW5zZXJ0IG1vZGUuCi0JQWxzbyBjb25zaWRlciBzZXR0aW5nICdsYW5nbm9yZW1hcCcgdG8gYXZvaWQgJ2xhbmdtYXAnIGFwcGxpZXMgdG8KKwlBbHNvIGNvbnNpZGVyIHJlc2V0dGluZyAnbGFuZ3JlbWFwJyB0byBhdm9pZCAnbGFuZ21hcCcgYXBwbGllcyB0bwogCWNoYXJhY3RlcnMgcmVzdWx0aW5nIGZyb20gYSBtYXBwaW5nLgogCVRoaXMgb3B0aW9uIGNhbm5vdCBiZSBzZXQgZnJvbSBhIHxtb2RlbGluZXwgb3IgaW4gdGhlIHxzYW5kYm94fCwgZm9yCiAJc2VjdXJpdHkgcmVhc29ucy4KQEAgLTQ2OTUsMTAgKzQ2OTcsMjAgQEAKIAkJCXtub3QgaW4gVml9CiAJCQl7b25seSBhdmFpbGFibGUgd2hlbiBjb21waWxlZCB3aXRoIHRoZSB8K2xhbmdtYXB8CiAJCQlmZWF0dXJlfQotCVdoZW4gb24sIHNldHRpbmcgJ2xhbmdtYXAnIGRvZXMgbm90IGFwcGx5IHRvIGNoYXJhY3RlcnMgcmVzdWx0aW5nIGZyb20KKwlUaGlzIGlzIGp1c3QgbGlrZSAnbGFuZ3JlbWFwJyBidXQgd2l0aCB0aGUgdmFsdWUgaW52ZXJ0ZWQuICBJdCBvbmx5CisJZXhpc3RzIGZvciBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eS4gIFdoZW4gc2V0dGluZyAnbGFuZ3JlbWFwJyB0aGVuCisJJ2xhbmdub3JlbWFwJyBpcyBzZXQgdG8gdGhlIGludmVydGVkIHZhbHVlLCBhbmQgdGhlIG90aGVyIHdheSBhcm91bmQuCisKKwkJCSonbGFuZ3JlbWFwJyogKidscm0nKiAqJ25vbGFuZ3JlbWFwJyogKidub2xybScqCisnbGFuZ3JlbWFwJyAnbHJtJwlib29sZWFuIChkZWZhdWx0IG9uLCByZXNldCBpbiB8ZGVmYXVsdHMudmltfCkKKwkJCWdsb2JhbAorCQkJe25vdCBpbiBWaX0KKwkJCXtvbmx5IGF2YWlsYWJsZSB3aGVuIGNvbXBpbGVkIHdpdGggdGhlIHwrbGFuZ21hcHwKKwkJCWZlYXR1cmV9CisJV2hlbiBvZmYsIHNldHRpbmcgJ2xhbmdtYXAnIGRvZXMgbm90IGFwcGx5IHRvIGNoYXJhY3RlcnMgcmVzdWx0aW5nIGZyb20KIAlhIG1hcHBpbmcuICBUaGlzIGJhc2ljYWxseSBtZWFucywgaWYgeW91IG5vdGljZWQgdGhhdCBzZXR0aW5nCi0JJ2xhbmdtYXAnIGRpc2FibGVzIHNvbWUgb2YgeW91ciBtYXBwaW5ncywgdHJ5IHNldHRpbmcgdGhpcyBvcHRpb24uCi0JVGhpcyBvcHRpb24gZGVmYXVsdHMgdG8gb2ZmIGZvciBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eS4gIFNldCBpdCBvbiBpZgorCSdsYW5nbWFwJyBkaXNhYmxlcyBzb21lIG9mIHlvdXIgbWFwcGluZ3MsIHRyeSByZXNldHRpbmcgdGhpcyBvcHRpb24uCisJVGhpcyBvcHRpb24gZGVmYXVsdHMgdG8gb24gZm9yIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5LiAgU2V0IGl0IG9mZiBpZgogCXRoYXQgd29ya3MgZm9yIHlvdSB0byBhdm9pZCBtYXBwaW5ncyB0byBicmVhay4KIAogCQkJCQkqJ2xhc3RzdGF0dXMnKiAqJ2xzJyoKQEAgLTYyNDUsNiArNjI1Nyw4IEBACiAJImluY2x1c2l2ZSIgbWVhbnMgdGhhdCB0aGUgbGFzdCBjaGFyYWN0ZXIgb2YgdGhlIHNlbGVjdGlvbiBpcyBpbmNsdWRlZAogCWluIGFuIG9wZXJhdGlvbi4gIEZvciBleGFtcGxlLCB3aGVuICJ4IiBpcyB1c2VkIHRvIGRlbGV0ZSB0aGUKIAlzZWxlY3Rpb24uCisJV2hlbiAib2xkIiBpcyB1c2VkIGFuZCAndmlydHVhbGVkaXQnIGFsbG93cyB0aGUgY3Vyc29yIHRvIG1vdmUgcGFzdAorCXRoZSBlbmQgb2YgbGluZSB0aGUgbGluZSBicmVhayBzdGlsbCBpc24ndCBpbmNsdWRlZC4KIAlOb3RlIHRoYXQgd2hlbiAiZXhjbHVzaXZlIiBpcyB1c2VkIGFuZCBzZWxlY3RpbmcgZnJvbSB0aGUgZW5kCiAJYmFja3dhcmRzLCB5b3UgY2Fubm90IGluY2x1ZGUgdGhlIGxhc3QgY2hhcmFjdGVyIG9mIGEgbGluZSwgd2hlbgogCXN0YXJ0aW5nIGluIE5vcm1hbCBtb2RlIGFuZCAndmlydHVhbGVkaXQnIGVtcHR5LgpkaWZmIC0tZ2l0IGEvcnVudGltZS9kb2MvcXVpY2tyZWYudHh0IGIvcnVudGltZS9kb2MvcXVpY2tyZWYudHh0CmluZGV4IGMxMDVkODIuLjFlMzViODAgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvZG9jL3F1aWNrcmVmLnR4dAorKysgYi9ydW50aW1lL2RvYy9xdWlja3JlZi50eHQKQEAgLTEsNCArMSw0IEBACi0qcXVpY2tyZWYudHh0KiAgRm9yIFZpbSB2ZXJzaW9uIDcuNC4gIExhc3QgY2hhbmdlOiAyMDE2IEF1ZyAxMgorKnF1aWNrcmVmLnR4dCogIEZvciBWaW0gdmVyc2lvbiA3LjQuICBMYXN0IGNoYW5nZTogMjAxNiBBdWcgMjEKIAogCiAJCSAgVklNIFJFRkVSRU5DRSBNQU5VQUwgICAgYnkgQnJhbSBNb29sZW5hYXIKQEAgLTc2Nyw3ICs3NjcsNyBAQAogJ2tleXdvcmRwcmcnCSAgJ2twJwkgICAgcHJvZ3JhbSB0byB1c2UgZm9yIHRoZSAiSyIgY29tbWFuZAogJ2xhbmdtYXAnCSAgJ2xtYXAnICAgIGFscGhhYmV0aWMgY2hhcmFjdGVycyBmb3Igb3RoZXIgbGFuZ3VhZ2UgbW9kZQogJ2xhbmdtZW51JwkgICdsbScJICAgIGxhbmd1YWdlIHRvIGJlIHVzZWQgZm9yIHRoZSBtZW51cwotJ2xhbmdub3JlbWFwJwkgICdsbnInCSAgICBkbyBub3QgYXBwbHkgJ2xhbmdtYXAnIHRvIG1hcHBlZCBjaGFyYWN0ZXJzCisnbGFuZ3JlbWFwJwkgICdscm0nCSAgICBkbyBhcHBseSAnbGFuZ21hcCcgdG8gbWFwcGVkIGNoYXJhY3RlcnMKICdsYXN0c3RhdHVzJwkgICdscycJICAgIHRlbGxzIHdoZW4gbGFzdCB3aW5kb3cgaGFzIHN0YXR1cyBsaW5lcwogJ2xhenlyZWRyYXcnCSAgJ2x6JwkgICAgZG9uJ3QgcmVkcmF3IHdoaWxlIGV4ZWN1dGluZyBtYWNyb3MKICdsaW5lYnJlYWsnCSAgJ2xicicgICAgIHdyYXAgbG9uZyBsaW5lcyBhdCBhIGJsYW5rCmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy90YWdzIGIvcnVudGltZS9kb2MvdGFncwppbmRleCBiMDAwZDMyLi43OTFkZjQxIDEwMDY0NAotLS0gYS9ydW50aW1lL2RvYy90YWdzCisrKyBiL3J1bnRpbWUvZG9jL3RhZ3MKQEAgLTQwMCw2ICs0MDAsNyBAQAogJ2xhbmdtYXAnCW9wdGlvbnMudHh0CS8qJ2xhbmdtYXAnKgogJ2xhbmdtZW51JwlvcHRpb25zLnR4dAkvKidsYW5nbWVudScqCiAnbGFuZ25vcmVtYXAnCW9wdGlvbnMudHh0CS8qJ2xhbmdub3JlbWFwJyoKKydsYW5ncmVtYXAnCW9wdGlvbnMudHh0CS8qJ2xhbmdyZW1hcCcqCiAnbGFzdHN0YXR1cycJb3B0aW9ucy50eHQJLyonbGFzdHN0YXR1cycqCiAnbGF6eXJlZHJhdycJb3B0aW9ucy50eHQJLyonbGF6eXJlZHJhdycqCiAnbGJyJwlvcHRpb25zLnR4dAkvKidsYnInKgpAQCAtNDE2LDYgKzQxNyw3IEBACiAnbG5yJwlvcHRpb25zLnR4dAkvKidsbnInKgogJ2xvYWRwbHVnaW5zJwlvcHRpb25zLnR4dAkvKidsb2FkcGx1Z2lucycqCiAnbHBsJwlvcHRpb25zLnR4dAkvKidscGwnKgorJ2xybScJb3B0aW9ucy50eHQJLyonbHJtJyoKICdscycJb3B0aW9ucy50eHQJLyonbHMnKgogJ2xzcCcJb3B0aW9ucy50eHQJLyonbHNwJyoKICdsdWFkbGwnCW9wdGlvbnMudHh0CS8qJ2x1YWRsbCcqCkBAIC01ODYsNiArNTg4LDcgQEAKICdub2pvaW5zcGFjZXMnCW9wdGlvbnMudHh0CS8qJ25vam9pbnNwYWNlcycqCiAnbm9qcycJb3B0aW9ucy50eHQJLyonbm9qcycqCiAnbm9sYW5nbm9yZW1hcCcJb3B0aW9ucy50eHQJLyonbm9sYW5nbm9yZW1hcCcqCisnbm9sYW5ncmVtYXAnCW9wdGlvbnMudHh0CS8qJ25vbGFuZ3JlbWFwJyoKICdub2xhenlyZWRyYXcnCW9wdGlvbnMudHh0CS8qJ25vbGF6eXJlZHJhdycqCiAnbm9sYnInCW9wdGlvbnMudHh0CS8qJ25vbGJyJyoKICdub2xpbmVicmVhaycJb3B0aW9ucy50eHQJLyonbm9saW5lYnJlYWsnKgpAQCAtNTk0LDYgKzU5Nyw3IEBACiAnbm9sbnInCW9wdGlvbnMudHh0CS8qJ25vbG5yJyoKICdub2xvYWRwbHVnaW5zJwlvcHRpb25zLnR4dAkvKidub2xvYWRwbHVnaW5zJyoKICdub2xwbCcJb3B0aW9ucy50eHQJLyonbm9scGwnKgorJ25vbHJtJwlvcHRpb25zLnR4dAkvKidub2xybScqCiAnbm9seicJb3B0aW9ucy50eHQJLyonbm9seicqCiAnbm9tYScJb3B0aW9ucy50eHQJLyonbm9tYScqCiAnbm9tYWNhdHN1aScJb3B0aW9ucy50eHQJLyonbm9tYWNhdHN1aScqCkBAIC0xNTkzLDYgKzE1OTcsOSBAQAogL1x7LQlwYXR0ZXJuLnR4dAkvKlwvXFx7LSoKIC9cfglwYXR0ZXJuLnR4dAkvKlwvXFx+KgogL14JcGF0dGVybi50eHQJLypcL14qCisvX0NUUkwtTAljbWRsaW5lLnR4dAkvKlwvX0NUUkwtTCoKKy9fQ1RSTC1OCWNtZGxpbmUudHh0CS8qXC9fQ1RSTC1OKgorL19DVFJMLVAJY21kbGluZS50eHQJLypcL19DVFJMLVAqCiAvYXRvbQlwYXR0ZXJuLnR4dAkvKlwvYXRvbSoKIC9iYXIJcGF0dGVybi50eHQJLypcL2JhcioKIC9icmFuY2gJcGF0dGVybi50eHQJLypcL2JyYW5jaCoKQEAgLTIyNjcsNiArMjI3NCw4IEBACiA6ZmlsZXR5cGUtb3ZlcnZpZXcJZmlsZXR5cGUudHh0CS8qOmZpbGV0eXBlLW92ZXJ2aWV3KgogOmZpbGV0eXBlLXBsdWdpbi1vZmYJZmlsZXR5cGUudHh0CS8qOmZpbGV0eXBlLXBsdWdpbi1vZmYqCiA6ZmlsZXR5cGUtcGx1Z2luLW9uCWZpbGV0eXBlLnR4dAkvKjpmaWxldHlwZS1wbHVnaW4tb24qCis6ZmlsdAl2YXJpb3VzLnR4dAkvKjpmaWx0KgorOmZpbHRlcgl2YXJpb3VzLnR4dAkvKjpmaWx0ZXIqCiA6ZmluCWVkaXRpbmcudHh0CS8qOmZpbioKIDpmaW5hCWV2YWwudHh0CS8qOmZpbmEqCiA6ZmluYWxseQlldmFsLnR4dAkvKjpmaW5hbGx5KgpAQCAtNDQ3NSw2ICs0NDg0LDcgQEAKIEU5MzIJZXZhbC50eHQJLypFOTMyKgogRTkzMwlldmFsLnR4dAkvKkU5MzMqCiBFOTM0CXNpZ24udHh0CS8qRTkzNCoKK0U5MzUJZXZhbC50eHQJLypFOTM1KgogRTk0CXdpbmRvd3MudHh0CS8qRTk0KgogRTk1CW1lc3NhZ2UudHh0CS8qRTk1KgogRTk2CWRpZmYudHh0CS8qRTk2KgpAQCAtOTIxNyw2ICs5MjI3LDcgQEAKIHdpbmRvdy1zaXplLWZ1bmN0aW9ucwl1c3JfNDEudHh0CS8qd2luZG93LXNpemUtZnVuY3Rpb25zKgogd2luZG93LXRhZwl3aW5kb3dzLnR4dAkvKndpbmRvdy10YWcqCiB3aW5kb3ctdmFyaWFibGUJZXZhbC50eHQJLyp3aW5kb3ctdmFyaWFibGUqCit3aW5kb3dpZAl3aW5kb3dzLnR4dAkvKndpbmRvd2lkKgogd2luZG93aWQtdmFyaWFibGUJZXZhbC50eHQJLyp3aW5kb3dpZC12YXJpYWJsZSoKIHdpbmRvd3MJd2luZG93cy50eHQJLyp3aW5kb3dzKgogd2luZG93cy0zLjEJb3Nfd2luMzIudHh0CS8qd2luZG93cy0zLjEqCkBAIC05MjI2LDYgKzkyMzcsNyBAQAogd2luZG93cy50eHQJd2luZG93cy50eHQJLyp3aW5kb3dzLnR4dCoKIHdpbmRvd3M5NQlvc193aW4zMi50eHQJLyp3aW5kb3dzOTUqCiB3aW5oZWlnaHQoKQlldmFsLnR4dAkvKndpbmhlaWdodCgpKgord2luaWQJd2luZG93cy50eHQJLyp3aW5pZCoKIHdpbmxpbmUoKQlldmFsLnR4dAkvKndpbmxpbmUoKSoKIHdpbm5yKCkJZXZhbC50eHQJLyp3aW5ucigpKgogd2lucmVzdGNtZCgpCWV2YWwudHh0CS8qd2lucmVzdGNtZCgpKgpkaWZmIC0tZ2l0IGEvcnVudGltZS9kb2MvdGFnc3JjaC50eHQgYi9ydW50aW1lL2RvYy90YWdzcmNoLnR4dAppbmRleCBiOGFiMTUzLi41MTYzZGU4IDEwMDY0NAotLS0gYS9ydW50aW1lL2RvYy90YWdzcmNoLnR4dAorKysgYi9ydW50aW1lL2RvYy90YWdzcmNoLnR4dApAQCAtMSw0ICsxLDQgQEAKLSp0YWdzcmNoLnR4dCogICBGb3IgVmltIHZlcnNpb24gNy40LiAgTGFzdCBjaGFuZ2U6IDIwMTMgT2N0IDAxCisqdGFnc3JjaC50eHQqICAgRm9yIFZpbSB2ZXJzaW9uIDcuNC4gIExhc3QgY2hhbmdlOiAyMDE2IEF1ZyAyMAogCiAKIAkJICBWSU0gUkVGRVJFTkNFIE1BTlVBTCAgICBieSBCcmFtIE1vb2xlbmFhcgpAQCAtNDU0LDkgKzQ1NCw5IEBACiBUaGlzIGFsc28gZGVwZW5kcyBvbiB3aGV0aGVyIGNhc2UgaXMgaWdub3JlZC4gIENhc2UgaXMgaWdub3JlZCB3aGVuOgogLSAndGFnY2FzZScgaXMgImZvbGxvd2ljIiBhbmQgJ2lnbm9yZWNhc2UnIGlzIHNldAogLSAndGFnY2FzZScgaXMgImlnbm9yZSIKLS0gJ3RhZ2Nhc2UnIGlzICJzbWFydCIgYW5kIGFuZCB0aGUgcGF0dGVybiBvbmx5IGNvbnRhaW5zIGxvd2VyIGNhc2UKKy0gJ3RhZ2Nhc2UnIGlzICJzbWFydCIgYW5kIHRoZSBwYXR0ZXJuIG9ubHkgY29udGFpbnMgbG93ZXIgY2FzZQogICBjaGFyYWN0ZXJzLgotLSAndGFnY2FzZScgaXMgImZvbGxvd3NjcyIgYW5kICdzbWFydGNhc2UnIGlzIHNldCBhbmQgYW5kIHRoZSBwYXR0ZXJuIG9ubHkKKy0gJ3RhZ2Nhc2UnIGlzICJmb2xsb3dzY3MiIGFuZCAnc21hcnRjYXNlJyBpcyBzZXQgYW5kIHRoZSBwYXR0ZXJuIG9ubHkKICAgY29udGFpbnMgbG93ZXIgY2FzZSBjaGFyYWN0ZXJzLgogSWYgY2FzZSBpcyBub3QgaWdub3JlZCwgYW5kIHRoZSB0YWdzIGZpbGUgb25seSBoYXMgYSBtYXRjaCB3aXRob3V0IG1hdGNoaW5nCiBjYXNlLCB0aGUgbmV4dCB0YWdzIGZpbGUgaXMgc2VhcmNoZWQgZm9yIGEgbWF0Y2ggd2l0aCBtYXRjaGluZyBjYXNlLiAgSWYgbm8KQEAgLTgzMywyNCArODMzLDI0IEBACiAKIAkJCQkJCQkJKjpzZWFyY2gtYXJncyoKIENvbW1vbiBhcmd1bWVudHMgZm9yIHRoZSBjb21tYW5kcyBhYm92ZToKLVshXSAgIFdoZW4gaW5jbHVkZWQsIGZpbmQgbWF0Y2hlcyBpbiBsaW5lcyB0aGF0IGFyZSByZWNvZ25pemVkIGFzIGNvbW1lbnRzLgotICAgICAgV2hlbiBleGNsdWRlZCwgYSBtYXRjaCBpcyBpZ25vcmVkIHdoZW4gdGhlIGxpbmUgaXMgcmVjb2duaXplZCBhcyBhCi0gICAgICBjb21tZW50IChhY2NvcmRpbmcgdG8gJ2NvbW1lbnRzJyksIG9yIHRoZSBtYXRjaCBpcyBpbiBhIEMgY29tbWVudCAoYWZ0ZXIKLSAgICAgICIvLyIgb3IgaW5zaWRlIC8qICovKS4gIE5vdGUgdGhhdCBhIG1hdGNoIG1heSBiZSBtaXNzZWQgaWYgYSBsaW5lIGlzCi0gICAgICByZWNvZ25pemVkIGFzIGEgY29tbWVudCwgYnV0IHRoZSBjb21tZW50IGVuZHMgaGFsZndheSB0aGUgbGluZS4KLSAgICAgIEFuZCAgaWYgdGhlIGxpbmUgaXMgYSBjb21tZW50LCBidXQgaXQgaXMgbm90IHJlY29nbml6ZWQgKGFjY29yZGluZyB0bwotICAgICAgJ2NvbW1lbnRzJykgYSBtYXRjaCBtYXkgYmUgZm91bmQgaW4gaXQgYW55d2F5LiAgRXhhbXBsZTogPgorWyFdCVdoZW4gaW5jbHVkZWQsIGZpbmQgbWF0Y2hlcyBpbiBsaW5lcyB0aGF0IGFyZSByZWNvZ25pemVkIGFzIGNvbW1lbnRzLgorCVdoZW4gZXhjbHVkZWQsIGEgbWF0Y2ggaXMgaWdub3JlZCB3aGVuIHRoZSBsaW5lIGlzIHJlY29nbml6ZWQgYXMgYQorCWNvbW1lbnQgKGFjY29yZGluZyB0byAnY29tbWVudHMnKSwgb3IgdGhlIG1hdGNoIGlzIGluIGEgQyBjb21tZW50CisJKGFmdGVyICIvLyIgb3IgaW5zaWRlIC8qICovKS4gIE5vdGUgdGhhdCBhIG1hdGNoIG1heSBiZSBtaXNzZWQgaWYgYQorCWxpbmUgaXMgcmVjb2duaXplZCBhcyBhIGNvbW1lbnQsIGJ1dCB0aGUgY29tbWVudCBlbmRzIGhhbGZ3YXkgdGhlIGxpbmUuCisJQW5kIGlmIHRoZSBsaW5lIGlzIGEgY29tbWVudCwgYnV0IGl0IGlzIG5vdCByZWNvZ25pemVkIChhY2NvcmRpbmcgdG8KKwknY29tbWVudHMnKSBhIG1hdGNoIG1heSBiZSBmb3VuZCBpbiBpdCBhbnl3YXkuICBFeGFtcGxlOiA+CiAJCS8qIGNvbW1lbnQKIAkJICAgZm9vYmFyICovCi08ICAgICBBIG1hdGNoIGZvciAiZm9vYmFyIiBpcyBmb3VuZCwgYmVjYXVzZSB0aGlzIGxpbmUgaXMgbm90IHJlY29nbml6ZWQgYXMgYQotICAgICAgY29tbWVudCAoZXZlbiB0aG91Z2ggc3ludGF4IGhpZ2hsaWdodGluZyBkb2VzIHJlY29nbml6ZSBpdCkuCi0gICAgICBOb3RlOiBTaW5jZSBhIG1hY3JvIGRlZmluaXRpb24gbW9zdGx5IGRvZXNuJ3QgbG9vayBsaWtlIGEgY29tbWVudCwgdGhlCi0gICAgICBbIV0gbWFrZXMgbm8gZGlmZmVyZW5jZSBmb3IgIjpkbGlzdCIsICI6ZHNlYXJjaCIgYW5kICI6ZGp1bXAiLgotWy9dICAgQSBwYXR0ZXJuIGNhbiBiZSBzdXJyb3VuZGVkIGJ5ICcvJy4gIFdpdGhvdXQgJy8nIG9ubHkgd2hvbGUgd29yZHMgYXJlCi0gICAgICBtYXRjaGVkLCB1c2luZyB0aGUgcGF0dGVybiAiXDxwYXR0ZXJuXD4iLiAgT25seSBhZnRlciB0aGUgc2Vjb25kICcvJyBhCi0gICAgICBuZXh0IGNvbW1hbmQgY2FuIGJlIGFwcGVuZGVkIHdpdGggJ3wnLiAgRXhhbXBsZTogPgorPAlBIG1hdGNoIGZvciAiZm9vYmFyIiBpcyBmb3VuZCwgYmVjYXVzZSB0aGlzIGxpbmUgaXMgbm90IHJlY29nbml6ZWQgYXMKKwlhIGNvbW1lbnQgKGV2ZW4gdGhvdWdoIHN5bnRheCBoaWdobGlnaHRpbmcgZG9lcyByZWNvZ25pemUgaXQpLgorCU5vdGU6IFNpbmNlIGEgbWFjcm8gZGVmaW5pdGlvbiBtb3N0bHkgZG9lc24ndCBsb29rIGxpa2UgYSBjb21tZW50LCB0aGUKKwlbIV0gbWFrZXMgbm8gZGlmZmVyZW5jZSBmb3IgIjpkbGlzdCIsICI6ZHNlYXJjaCIgYW5kICI6ZGp1bXAiLgorWy9dCUEgcGF0dGVybiBjYW4gYmUgc3Vycm91bmRlZCBieSAnLycuICBXaXRob3V0ICcvJyBvbmx5IHdob2xlIHdvcmRzIGFyZQorCW1hdGNoZWQsIHVzaW5nIHRoZSBwYXR0ZXJuICJcPHBhdHRlcm5cPiIuICBPbmx5IGFmdGVyIHRoZSBzZWNvbmQgJy8nIGEKKwluZXh0IGNvbW1hbmQgY2FuIGJlIGFwcGVuZGVkIHdpdGggJ3wnLiAgRXhhbXBsZTogPgogCTppc2VhcmNoIC9zdHJpbmcvIHwgZWNobyAidGhlIGxhc3Qgb25lIgotPCAgICAgRm9yIGEgIjpkanVtcCIsICI6ZHNwbGl0IiwgIjpkbGlzdCIgYW5kICI6ZHNlYXJjaCIgY29tbWFuZCB0aGUgcGF0dGVybgotICAgICAgaXMgdXNlZCBhcyBhIGxpdGVyYWwgc3RyaW5nLCBub3QgYXMgYSBzZWFyY2ggcGF0dGVybi4KKzwJRm9yIGEgIjpkanVtcCIsICI6ZHNwbGl0IiwgIjpkbGlzdCIgYW5kICI6ZHNlYXJjaCIgY29tbWFuZCB0aGUgcGF0dGVybgorCWlzIHVzZWQgYXMgYSBsaXRlcmFsIHN0cmluZywgbm90IGFzIGEgc2VhcmNoIHBhdHRlcm4uCiAKICB2aW06dHc9Nzg6dHM9ODpmdD1oZWxwOm5vcmw6CmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy90b2RvLnR4dCBiL3J1bnRpbWUvZG9jL3RvZG8udHh0CmluZGV4IDUzZThiN2UuLmI0ZTIxOTMgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvZG9jL3RvZG8udHh0CisrKyBiL3J1bnRpbWUvZG9jL3RvZG8udHh0CkBAIC0xLDQgKzEsNCBAQAotKnRvZG8udHh0KiAgICAgIEZvciBWaW0gdmVyc2lvbiA3LjQuICBMYXN0IGNoYW5nZTogMjAxNiBBdWcgMTgKKyp0b2RvLnR4dCogICAgICBGb3IgVmltIHZlcnNpb24gNy40LiAgTGFzdCBjaGFuZ2U6IDIwMTYgQXVnIDI2CiAKIAogCQkgIFZJTSBSRUZFUkVOQ0UgTUFOVUFMCSAgYnkgQnJhbSBNb29sZW5hYXIKQEAgLTM0LDcgKzM0LDEzIEBACiAJCQkJCQkJKmtub3duLWJ1Z3MqCiAtLS0tLS0tLS0tLS0tLS0tLS0tLSBLbm93biBidWdzIGFuZCBjdXJyZW50IHdvcmsgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIAotUmVuYW1lICdsYW5nbm9yZW1hcCcgdG8gJ2xhbmdyZW1hcCcgYW5kIGludmVydCB0aGUgdmFsdWU/CitNYWtlICI6ZmlsdGVyIiB3b3JrIHdpdGggbW9yZSBjb21tYW5kcy4KKworQyBoaWdobGlnaHRpbmc6IG1vZGVybiBDIGFsbG93cyAvKiBjb21tZW50ICovICNpZmRlZgorCitSYW1lbCBFc2hlZDogc3lzdGVtKCkgaXMgbXVjaCBzbG93ZXIgdGhhbiBqb2Jfc3RhcnQoKSwgd2h5PyAoQXVnIDI2KQorCitFcnJvciBpbiB2aW1pbmZvLiAoSm9obiBDaGVuLCAyMDE2IEF1ZyAyNiwgIzEwMTApCiAKICtjaGFubmVsOgogLSBDaGVjayB0aGF0IHJhdyBtb2RlIGRvZXMgTkwtTlVMIGNvbnZlcnNpb24uCkBAIC01NSw2ICs2MSw4IEBACiAgICAgV2l0aCB4dGVybSBjb3VsZCB1c2UgLVN7cHR5fS4KIAogUmVnZXhwIHByb2JsZW1zOgorLSBUaGUgbmV3IGVuZ2luZSBkb2VzIG5vdCBkbyB0aGUgZXhhbXBsZSBpbiBjaGFuZ2UudHh0IGNvcnJlY3RseSwgd2hlcmUgdGhlCisgIG1lYW5pbmcgb2YgXDEgYW5kIFwyIGlzIGV4cGxhaW5lZC4gKEhhcm0gdGUgSGVubmVwZSwgIzk5MCkKIC0gU2luY2UgNy40LjcwNCB0aGUgb2xkIHJlZ2V4IGVuZ2luZSBmYWlscyB0byBtYXRjaCBbWzpwcmludDpdXSBpbiAweGY2LgogICAoTWFudWVsIE9ydGVnYSwgMjAxNiBBcHIgMjQpCiAgIFRlc3QgZmFpbHMgb24gTWFjLiAgQXZvaWQgdXNpbmcgaXNhbHBoYSgpLCBpc2FsbnVtKCksIGV0Yz8gIERlcGVuZHMgb24KQEAgLTEzOCw2ICsxNDYsOCBAQAogRm9yIGN1cnJlbnQgV2luZG93cyBidWlsZCAucGRiIGZpbGUgaXMgbWlzc2luZy4gKEdhYnJpZWxlIEZhdmEsIDIwMTYgTWF5IDExKQogNSkKIAorUGF0Y2ggdG8gZml4IGNvbXBpbGVyIHdhcm5pbmcgd2l0aCBndGszLiAoS2F6dW5vYnUgS3VyaXlhbWEsIDIwMTYgQXVnIDI0KQorCiBQcm9ibGVtIHdpdGggd2hpdGVzcGFjZSBpbiBlcnJvcmZvcm1hdC4gKEdlcmQgV2FjaHNtdXRoLCAyMDE2IE1heSAxNSwgIzgwNykKIAogVW5kbyBwcm9ibGVtOiAiZy0iIGRvZXNuJ3QgZ28gYmFjaywgZ2V0cyBzdHVjay4gKEJqw7ZybiBMaW5zZSwgMjAxNiBKdWwgMTgpCkBAIC0xNTcsNiArMTY3LDkgQEAKIAogJ2hsc2VhcmNoJyBpbnRlcmZlcmVzIHdpdGggYSBDb25jZWFsIG1hdGNoLiAoUm9tIEdyaywgMjAxNiBBdWcgOSkKIAorUGF0Y2ggdG8gYWRkIGNvbnRleHQgaW5mb3JtYXRpb24gdG8gcXVpY2tmaXgvbG9jYXRpb24gbGlzdC4gKFllZ2FwcGFuCitMYWtzaG1hbmFuLCAyMDE2IEF1ZyAyNSkKKwogTVMtV2luZG93czogdXNlIFdTX0hJREUgaW5zdGVhZCBvZiBTV19TSE9XTUlOTk9BQ1RJVkUgaW4gb3Nfd2luMzIuYz8KIE90aGVyd2lzZSB0YXNrIGZsaWNrZXJzIGluIHRhc2tiYXIuCiAKQEAgLTE2NSwyMyArMTc4LDkgQEAKIAogUmVwZWF0aW5nICdvcGZ1bmMnIGluIGEgZnVuY3Rpb24gb25seSB3b3JrcyBvbmNlLiAoVGFybWVhbiwgMjAxNiBKdWwgMTUsICM5MjUpCiAKLVBhdGNoIG9uIGlzc3VlICM3MjggYnkgQ2hyaXN0aWFuIEJyYWJhbmR0LCAyMDE2IEFwciA3LiAgVXBkYXRlIHdpdGggdGVzdDogQXByIDguCi1FeHBsYW5hdGlvbiBBcHIgMTIuCi0KIFNlY29uZCBwcm9ibGVtIGluICM5NjY6IGluc19jb21wbF9hZGRfdHYoKSB1c2VzIGdldF9kaWN0X3N0cmluZygpIG11bHRpcGxlCiB0aW1lcywgb3ZlcndyaXRlcyB0aGUgb25lIGJ1ZmZlci4gKE5pa29sYXkgUGF2bG92LCAyMDE2IEF1ZyA1KQogCi1QYXRjaCB0byBhZGQgJ3RvcGJvdCcgdG8gJ2JlbGxvZmYnIG9wdGlvbi4gKENvb3QsIDIwMTYgTWFyIDE4LCAjNjk1KQotCi1QYXRjaCBmb3IgQyBzeW50YXggSEwuIChCcmFkbGV5IEdhcmFnYW4sIDIwMTYgQXByIDE3KSAjNzYzCi0KLVBhdGNoIHRvIG1ha2UgbWF0Y2hpdCB3b3JrIGJldHRlciwgcmVzcGVjdCAnbWF0Y2hwYWlycycuIChLZW4gVGFrYXRhLCAyMDE2IE1hcgotMjUpCi0KLVBhdGNoIHRvIGZpeCB0aGF0IG9uIHN1Y2tsZXNzIFRlcm1pbmFsIG1vdXNld2hlZWwgdXAgZG9lcyBub3Qgd29yay4KLShSYWxwaCBFYXN0d29vZCwgMjAxMyBOb3YgMjUpCi1QYXRjaCBmb3IgbW91c2Ugc3VwcG9ydCBvbiBzdWNrbGVzcyBUZXJtaW5hbC4gIzk3MSAgTWFudWVsIFNjaGlsbGVyCi0KIFRoaXMgZG9lcyBub3Qgd29yazogOnNldCBjc2NvcGVxdWlja2ZpeD1hLQogKExpbmV3aSwgMjAxNSBKdWwgMTIsICM5MTQpCiAKQEAgLTI2MCw2ICsyNTksOSBAQAogCiBQYXRjaCB0byBtYWtlIHRlc3RzIHBhc3Mgd2l0aCBFQkNESUMuIChPd2VuIExlaWJtYW4sIDIwMTYgQXByIDEwKQogCitBZGQgIjpyZWFkIDpjb21tYW5kIiwgdG8gaW5zZXJ0IHRoZSBvdXRwdXQgb2YgYW4gRXggY29tbWFuZD8KK0NhbiBhbHJlYWR5IGRvIGl0IHdpdGggIjokcHV0ID1leGVjdXRlKCdjb21tYW5kJykiLgorCiBXaGVuIHJlcGVhdGluZyB0aGUgJ2NvbmZpcm0nIGRpYWxvZyBvbmUgbmVlZHMgdG8gcHJlc3MgRW50ZXIuIChkczI2Z3RlLCAyMDE2CiBBcHIgMTcpICAjNzYyCiAKQEAgLTI4OSw2ICsyOTEsMTQgQEAKIFBhdGNoIHRvIHRlc3QgcG9wdXBtZW51LiAgRmFpbHMsIHBvc3NpYmx5IGR1ZSB0byBhIGJ1Zy4KIChDaHJpc3RpYW4gQnJhYmFuZHQsIDIwMTYgSnVsIDIzKQogCitQYXRjaCB0byBpbnRyb2R1Y2UgJ2NtZGVuY29kaW5nJy4gKEtlbiBUYWthdGEsIEF1ZyAxOD8pCitCZXR0ZXIgaGVscCBBdWcgMTkuCitQcm9ibGVtOiBhcHBsaWVzIHRvIHRvbyBtYW55IGNvbW1hbmRzLCBzdWNoIGFzIDpjYnVmZmVyLgorU2hvdWxkIHRoZXJlIGJlIGEgZGlmZmVyZW50IHZhbHVlIGZvciA6bWFrZSBhbmQgOmdyZXA/CisgICAgV2luMzI6IFdoZW4gcnVubmluZyAiOm1ha2UiIGFuZCAnZW5jb2RpbmcnIGRpZmZlcnMgZnJvbSB0aGUgc3lzdGVtIGxvY2FsZSwKKyAgICB0aGUgb3V0cHV0IHNob3VsZCBiZSBjb252ZXJ0ZWQuICBFc3AuIHdoZW4gJ2VuY29kaW5nJyBpcyAidXRmLTgiLiAoWW9uZ3dlaQorICAgIFd1KSBTaG91bGQgd2UgdXNlICd0ZXJtZW5jb2RpbmcnIGZvciB0aGlzPworCiBQYXRjaCB0byBoYXZlIHRleHQgb2JqZWN0cyBkZWZpbmVkIGJ5IGFyYml0cmFyeSBzaW5nbGUgY2hhcmFjdGVycy4gKERhbmllbAogVGhhdSwgMjAxMyBOb3YgMjAsIDIwMTQgSmFuIDI5LCAyMDE0IEphbiAzMSkKIEFkZGVkIHRlc3RzIChKYW1lcyBNY0NveSwgMjAxNiBBdWcgMykuICBTdGlsbCBuZWVkcyBtb3JlIHdvcmsuCkBAIC0zMTcsOSArMzI3LDYgQEAKIFBhdGNoIHRvIGFkZCB7c2tpcH0gYXJndW1lbnQgdG8gc2VhcmNoKCkuIChDaHJpc3RpYW4gQnJhYmFuZHQsIDIwMTYgRmViIDI0KQogVXBkYXRlIDIwMTYgSnVuIDEwLCAjODYxCiAKLUFkZCB2YWx1ZSAic21hcnQiIHRvICd0YWdjYXNlJzogaWdub3JlIGNhc2Ugd2hlbiB0YWcgaXMgYWxsIGxvd2VyIGNhc2UuCi1QYXRjaCBmcm9tIENocmlzdGlhbiBCcmFiYW5kdCwgMjAxNiBNYXIgMzAsICM3MTIuCi0KIFBhdGNoIHRvIGJlIGFibGUgdG8gdXNlIGhleCBudW1iZXJzIHdpdGggOmRpZ3JhcGguIChMY2QsIDIwMTUgU2VwIDYpCiBVcGRhdGUgU2VwIDcuICBVcGRhdGUgYnkgQ2hyaXN0aWFuIEJyYWJhbmR0LCAyMDE1IFNlcCA4LCAyMDE2IEZlYiAxLgogCkBAIC01NDQsOCArNTUxLDYgQEAKIFdyb25nIHNjcm9sbGluZyB3aGVuIHVzaW5nIGluY3NlYXJjaC4gIFBhdGNoIGJ5IENocmlzdGlhbiBCcmFiYW5kdCwgMjAxNCBEZWMgNC4KIElzIHRoaXMgYSBnb29kIHNvbHV0aW9uPwogCi1QYXRjaCB0byBhZGQgL3BhdHRlcm4vIHRvIDpvbGRmaWxlcy4gIFB1bGwgIzU3NS4KLQogUGF0Y2g6IExldCByYXJlIHdvcmQgaGlnaGxpZ2h0aW5nIG92ZXJydWxlIGdvb2Qgd29yZCBoaWdobGlnaHRpbmcuCiAoSmFrc29uIEEuIEFxdWlubywgMjAxMCBKdWwgMzAsIGFnYWluIDIwMTEgSnVsIDIpCiAKQEAgLTIyMTcsMTAgKzIyMjIsNiBAQAogQWxzbyBhZGQgYSB2YXJpYWJsZSBmb3IgdGhlIFZpc3VhbCBtb2RlLiAgU28gdGhhdCB0aGlzIG1vZGUgYW5kICc8ICc+IGNhbiBiZQogdXNlZCB0byBzZXQgd2hhdCAiZ3YiIHNlbGVjdHMuIChCZW4gU2NobWlkdCkKIAotV2luMzI6IFdoZW4gcnVubmluZyAiOm1ha2UiIGFuZCAnZW5jb2RpbmcnIGRpZmZlcnMgZnJvbSB0aGUgc3lzdGVtIGxvY2FsZSwgdGhlCi1vdXRwdXQgc2hvdWxkIGJlIGNvbnZlcnRlZC4gIEVzcC4gd2hlbiAnZW5jb2RpbmcnIGlzICJ1dGYtOCIuIChZb25nd2VpIFd1KQotU2hvdWxkIHdlIHVzZSAndGVybWVuY29kaW5nJyBmb3IgdGhpcz8KLQogV2luMzIsIE5URlM6IFdoZW4gZWRpdGluZyBhIHNwZWNpZmljIGluZm9zdHJlYW0gZGlyZWN0bHkgYW5kICdiYWNrdXBjb3B5JyBpcwogImF1dG8iIHNob3VsZCBkZXRlY3QgdGhpcyBzaXR1YXRpb24gYW5kIHdvcmsgbGlrZSAnYmFja3VwY29weScgaXMgInllcyIuICBGaWxlCiBuYW1lIGlzIHNvbWV0aGluZyBsaWtlICJjOlxwYXRoXGZvby50eHQ6YmFyIiwgaW5jbHVkZXMgYSBjb2xvbi4gIChBbGV4CmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy92ZXJzaW9uOC50eHQgYi9ydW50aW1lL2RvYy92ZXJzaW9uOC50eHQKaW5kZXggMWJlOGI4My4uMWZiMDkyYSAxMDA2NDQKLS0tIGEvcnVudGltZS9kb2MvdmVyc2lvbjgudHh0CisrKyBiL3J1bnRpbWUvZG9jL3ZlcnNpb244LnR4dApAQCAtMSw0ICsxLDQgQEAKLSp2ZXJzaW9uOC50eHQqICBGb3IgVmltIHZlcnNpb24gOC4wLiAgTGFzdCBjaGFuZ2U6IDIwMTYgQXVnIDE4CisqdmVyc2lvbjgudHh0KiAgRm9yIFZpbSB2ZXJzaW9uIDguMC4gIExhc3QgY2hhbmdlOiAyMDE2IEF1ZyAyNgogCiAKIAkJICBWSU0gUkVGRVJFTkNFIE1BTlVBTCAgICBieSBCcmFtIE1vb2xlbmFhcgpAQCAtMTQxLDggKzE0MSwxMCBAQAogCiBHVEsrIDMgc3VwcG9ydCB+CiAKLUdUSysgMiBpcyBnZXR0aW5nIG9sZCwgR1RLKyAzIGlzIGhlcmUuICBTdXBwb3J0IGhhcyBiZWVuIGFkZGVkIGFuZCBpdCBhbHJlYWR5Ci13b3JrcyBxdWl0ZSB3ZWxsLCBtb3N0bHkganVzdCBsaWtlIEdUSysgMi4KK1RoZSBHVEsrIDMgR1VJIHdvcmtzIGp1c3QgbGlrZSBHVEsrIDIgZXhjZXB0IGZvciBoYXJkbHkgbm90aWNlYWJsZSB0ZWNobmljYWwKK2RpZmZlcmVuY2VzIGJldHdlZW4gdGhlbS4gIENvbmZpZ3VyZSBzdGlsbCBjaG9vc2VzIEdUSysgMiBpZiBib3RoIDIgYW5kIDMgYXJlCithdmFpbGFibGUuICBTZWUgc3JjL01ha2VmaWxlIGZvciBob3cgdG8gdXNlIEdUSysgMyBpbnN0ZWFkLiAgU2VlCit8Z3VpLXgxMS1jb21waWxpbmd8IGZvciBvdGhlciBkZXRhaWxzLgogCiAKIFZpbSBzY3JpcHQgZW5oYW5jZW1lbnRzCQkJCQkqbmV3LXZpbS1zY3JpcHQtOCoKQEAgLTE2NSwxNSArMTY3LDYgQEAKIFZhcmlvdXMgbmV3IGl0ZW1zCQkJCQkqbmV3LWl0ZW1zLTgqCiAtLS0tLS0tLS0tLS0tLS0tLQogCi1Ob3JtYWwgbW9kZSBjb21tYW5kczogfgotCi18Zyt8CQlnKwkJZ28gdG8gbmV3ZXIgdGV4dCBzdGF0ZSBOIHRpbWVzCi18Zyx8CQlnLAkJZ28gdG8gTiBuZXdlciBwb3NpdGlvbiBpbiBjaGFuZ2UgbGlzdAotfGctfAkJZy0JCWdvIHRvIG9sZGVyIHRleHQgc3RhdGUgTiB0aW1lcwotfGc7fAkJZzsJCWdvIHRvIE4gb2xkZXIgcG9zaXRpb24gaW4gY2hhbmdlIGxpc3QKLXxnX3wJCWdfCQljdXJzb3IgdG8gdGhlIGxhc3QgQ0hBUiBOIC0gMSBsaW5lcyBsb3dlcgotCi0KIFZpc3VhbCBtb2RlIGNvbW1hbmRzOiB+CiAKIHx2X0NUUkwtQXwJQ1RSTC1BCQlhZGQgTiB0byBudW1iZXIgaW4gaGlnaGxpZ2h0ZWQgdGV4dApAQCAtMTk0LDcgKzE4Nyw3IEBACiAnYnJlYWtpbmRlbnRvcHQnCXNldHRpbmdzIGZvciAnYnJlYWtpbmRlbnQnLgogJ2Vtb2ppJwkJCWVtb2ppIGNoYXJhY3RlcnMgYXJlIGNvbnNpZGVyZWQgZnVsbCB3aWR0aAogJ2ZpeGVuZG9mbGluZScJCW1ha2Ugc3VyZSBsYXN0IGxpbmUgaW4gZmlsZSBoYXMgPEVPTD4KLSdsYW5nbm9yZW1hcCcJCWRvIG5vdCBhcHBseSAnbGFuZ21hcCcgdG8gbWFwcGVkIGNoYXJhY3RlcnMKKydsYW5ncmVtYXAnCQlkbyBhcHBseSAnbGFuZ21hcCcgdG8gbWFwcGVkIGNoYXJhY3RlcnMKICdsdWFkbGwnCQluYW1lIG9mIHRoZSBMdWEgZHluYW1pYyBsaWJyYXJ5CiAncGFja3BhdGgnCQlsaXN0IG9mIGRpcmVjdG9yaWVzIHVzZWQgZm9yIHBhY2thZ2VzCiAncGVybGRsbCcJCW5hbWUgb2YgdGhlIFBlcmwgZHluYW1pYyBsaWJyYXJ5CkBAIC0zOTYsNiArMzg5LDcgQEAKIFJtZCBmdHBsdWdpbgogUm5vd2ViIGZ0cGx1Z2luCiBSbm93ZWIgaW5kZW50CitTY2FsYSBzeW50YXggYW5kIGluZGVudCBhbmQgZnRwbHVnaW4KIFN5c3RlbVZlcmlsb2cgc3ludGF4IGFuZCBpbmRlbnQgYW5kIGZ0cGx1Z2luCiBTeXN0ZW1kIHN5bnRheCBhbmQgaW5kZW50IGFuZCBmdHBsdWdpbgogVGVyYXRlcm0gKFRUTCkgc3ludGF4IGFuZCBpbmRlbnQKQEAgLTEyODg0LDcgKzEyODc4LDcgQEAKICAgICAgICAgICAgIHNyYy90ZXN0ZGlyL3Rlc3RfZ24udmltCiAKIFBhdGNoIDcuNC4yMTAxCi1Qcm9ibGVtOiAgICBMb29waW5nIG92ZXIgd2luZG93cywgYnVmZmVycyBhbmQgdGFiIHBhZ2VzIGlzIGluY29uc2lzdGFudC4KK1Byb2JsZW06ICAgIExvb3Bpbmcgb3ZlciB3aW5kb3dzLCBidWZmZXJzIGFuZCB0YWIgcGFnZXMgaXMgaW5jb25zaXN0ZW50LgogU29sdXRpb246ICAgVXNlIEZPUl9BTExfIG1hY3JvcyBldmVyeXdoZXJlLiAoWWVnYXBwYW4gTGFrc2htYW5hbikKIEZpbGVzOiAgICAgIHNyYy9idWZmZXIuYywgc3JjL2RpZmYuYywgc3JjL2VkaXQuYywgc3JjL2V2YWwuYywgc3JjL2V2YWxmdW5jLmMsCiAgICAgICAgICAgICBzcmMvZXhfY21kcy5jLCBzcmMvZXhfY21kczIuYywgc3JjL2V4X2RvY21kLmMsIHNyYy9maWxlaW8uYywKZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL3ZpbS5tYW4gYi9ydW50aW1lL2RvYy92aW0ubWFuCmluZGV4IDkzOTBjYWEuLmNiMDA1N2EgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvZG9jL3ZpbS5tYW4KKysrIGIvcnVudGltZS9kb2MvdmltLm1hbgpAQCAtMjIyLDcgKzIyMiw3IEBACiAKICAgICAgICAtUiAgICAgICAgICBSZWFkLW9ubHkgIG1vZGUuICAgVGhlICAncmVhZG9ubHknIG9wdGlvbiB3aWxsIGJlIHNldC4gIFlvdQogICAgICAgICAgICAgICAgICAgIGNhbiBzdGlsbCBlZGl0IHRoZSBidWZmZXIsIGJ1dCB3aWxsIGJlIHByZXZlbnRlZCBmcm9tIGFjY2nigJAKLSAgICAgICAgICAgICAgICAgICBkZW50bHkgIG92ZXJ3cml0aW5nICBhIGZpbGUuICBJZiB5b3UgZG8gd2FudCB0byBvdmVyd3JpdGUgYQorICAgICAgICAgICAgICAgICAgIGRlbnRhbGx5IG92ZXJ3cml0aW5nIGEgZmlsZS4gIElmIHlvdSBkbyB3YW50IHRvIG92ZXJ3cml0ZSBhCiAgICAgICAgICAgICAgICAgICAgZmlsZSwgYWRkIGFuIGV4Y2xhbWF0aW9uIG1hcmsgdG8gIHRoZSAgRXggIGNvbW1hbmQsICBhcyAgaW4KICAgICAgICAgICAgICAgICAgICAiOnchIi4gICBUaGUgIC1SICBvcHRpb24gIGFsc28gIGltcGxpZXMgIHRoZSAtbiBvcHRpb24gKHNlZQogICAgICAgICAgICAgICAgICAgIGJlbG93KS4gIFRoZSAncmVhZG9ubHknIG9wdGlvbiAgY2FuICBiZSAgcmVzZXQgIHdpdGggICI6c2V0CmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy93aW5kb3dzLnR4dCBiL3J1bnRpbWUvZG9jL3dpbmRvd3MudHh0CmluZGV4IDgxMDQyZGIuLjc3MDAyNjkgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvZG9jL3dpbmRvd3MudHh0CisrKyBiL3J1bnRpbWUvZG9jL3dpbmRvd3MudHh0CkBAIC0xLDQgKzEsNCBAQAotKndpbmRvd3MudHh0KiAgIEZvciBWaW0gdmVyc2lvbiA3LjQuICBMYXN0IGNoYW5nZTogMjAxNiBBdWcgMTgKKyp3aW5kb3dzLnR4dCogICBGb3IgVmltIHZlcnNpb24gNy40LiAgTGFzdCBjaGFuZ2U6IDIwMTYgQXVnIDIzCiAKIAogCQkgIFZJTSBSRUZFUkVOQ0UgTUFOVUFMICAgIGJ5IEJyYW0gTW9vbGVuYWFyCkBAIC03NSw3ICs3NSw3IEBACiAKIFRoZSBtYWluIFZpbSB3aW5kb3cgY2FuIGhvbGQgc2V2ZXJhbCBzcGxpdCB3aW5kb3dzLiAgVGhlcmUgYXJlIGFsc28gdGFiIHBhZ2VzCiB8dGFiLXBhZ2V8LCBlYWNoIG9mIHdoaWNoIGNhbiBob2xkIG11bHRpcGxlIHdpbmRvd3MuCi0JCQkJCQkJKndpbmRvdy1JRCoKKwkJCQkJKndpbmRvdy1JRCogKndpbmlkKiAqd2luZG93aWQqCiBFYWNoIHdpbmRvdyBoYXMgYSB1bmlxdWUgaWRlbnRpZmllciBjYWxsZWQgdGhlIHdpbmRvdyBJRC4gIFRoaXMgaWRlbnRpZmllcgogd2lsbCBub3QgY2hhbmdlIHdpdGhpbiBhIFZpbSBzZXNzaW9uLiBUaGUgfHdpbl9nZXRpZCgpfCBhbmQgfHdpbl9pZDJ0YWJ3aW4oKXwKIGZ1bmN0aW9ucyBjYW4gYmUgdXNlZCB0byBjb252ZXJ0IGJldHdlZW4gdGhlIHdpbmRvdy90YWIgbnVtYmVyIGFuZCB0aGUKQEAgLTEwNDIsNiArMTA0MiwxMCBAQAogCQkgICAgIGgrICAgaGlkZGVuIGJ1ZmZlcnMgd2hpY2ggYXJlIG1vZGlmaWVkCiAJCSAgICAgYSsgICBhY3RpdmUgYnVmZmVycyB3aGljaCBhcmUgbW9kaWZpZWQKIAorCQlXaGVuIHVzaW5nIHw6ZmlsdGVyfCB0aGUgcGF0dGVybiBpcyBtYXRjaGVkIGFnYWluc3QgdGhlCisJCWRpc3BsYXllZCBidWZmZXIgbmFtZSwgZS5nLjogPgorCQkJZmlsdGVyIC9cLnZpbS8gbHMKKzwKIAkJCQkJCSo6YmFkKiAqOmJhZGQqCiA6YmFkW2RdCVsrbG51bV0ge2ZuYW1lfQogCQlBZGQgZmlsZSBuYW1lIHtmbmFtZX0gdG8gdGhlIGJ1ZmZlciBsaXN0LCB3aXRob3V0IGxvYWRpbmcgaXQuCmRpZmYgLS1naXQgYS9ydW50aW1lL2ZpbGV0eXBlLnZpbSBiL3J1bnRpbWUvZmlsZXR5cGUudmltCmluZGV4IGU0NmFkNTEuLjRmYzQyNzUgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvZmlsZXR5cGUudmltCisrKyBiL3J1bnRpbWUvZmlsZXR5cGUudmltCkBAIC0xLDcgKzEsNyBAQAogIiBWaW0gc3VwcG9ydCBmaWxlIHRvIGRldGVjdCBmaWxlIHR5cGVzCiAiCiAiIE1haW50YWluZXI6CUJyYW0gTW9vbGVuYWFyIDxCcmFtQHZpbS5vcmc+Ci0iIExhc3QgQ2hhbmdlOgkyMDE2IEF1ZyAxOAorIiBMYXN0IENoYW5nZToJMjAxNiBBdWcgMjYKIAogIiBMaXN0ZW4gdmVyeSBjYXJlZnVsbHksIEkgd2lsbCBzYXkgdGhpcyBvbmx5IG9uY2UKIGlmIGV4aXN0cygiZGlkX2xvYWRfZmlsZXR5cGVzIikKQEAgLTY5Miw4ICs2OTIsOCBAQAogICAgIGxldCBuID0gMQogICAgIHdoaWxlIG4gPCAxMDAgJiYgbiA8IGxpbmUoIiQiKQogICAgICAgaWYgZ2V0bGluZShuKSA9fiAiXlxccypcXCg8J1xcfCc+XFwpXFxzKiQiCi0gICAgICAgIHNldGYgc3BlY21hbgotICAgICAgICByZXR1cm4KKwlzZXRmIHNwZWNtYW4KKwlyZXR1cm4KICAgICAgIGVuZGlmCiAgICAgICBsZXQgbiA9IG4gKyAxCiAgICAgZW5kd2hpbGUKQEAgLTE3ODAsNiArMTc4MCw5IEBACiAiIFNhdGhlcgogYXUgQnVmTmV3RmlsZSxCdWZSZWFkICouc2EJCQlzZXRmIHNhdGhlcgogCisiIFNjYWxhCithdSBCdWZOZXdGaWxlLEJ1ZlJlYWQgKi5zY2FsYQkJCXNldGYgc2NhbGEKKwogIiBTY2lsYWIKIGF1IEJ1Zk5ld0ZpbGUsQnVmUmVhZCAqLnNjaSwqLnNjZQkJc2V0ZiBzY2lsYWIKIApAQCAtMjA1Miw3ICsyMDU1LDcgQEAKICAgICBpZiBsaW5lID1+IHM6ZnRfcnVsZXNfdWRldl9ydWxlc19wYXR0ZXJuCiAgICAgICBsZXQgdWRldl9ydWxlcyA9IHN1YnN0aXR1dGUobGluZSwgczpmdF9ydWxlc191ZGV2X3J1bGVzX3BhdHRlcm4sICdcMScsICIiKQogICAgICAgaWYgZGlyID09IHVkZXZfcnVsZXMKLSAgICAgICAgc2V0ZiB1ZGV2cnVsZXMKKwlzZXRmIHVkZXZydWxlcwogICAgICAgZW5kaWYKICAgICAgIGJyZWFrCiAgICAgZW5kaWYKQEAgLTIzMDEsNyArMjMwNCw3IEBACiBhdSBCdWZOZXdGaWxlLEJ1ZlJlYWQgKi91c3Ivc2hhcmUvdXBzdGFydC8qLmNvbmYJICAgICAgIHNldGYgdXBzdGFydAogYXUgQnVmTmV3RmlsZSxCdWZSZWFkICovdXNyL3NoYXJlL3Vwc3RhcnQvKi5vdmVycmlkZQkgICAgICAgc2V0ZiB1cHN0YXJ0CiBhdSBCdWZOZXdGaWxlLEJ1ZlJlYWQgKi9ldGMvaW5pdC8qLmNvbmYsKi9ldGMvaW5pdC8qLm92ZXJyaWRlICBzZXRmIHVwc3RhcnQKLWF1IEJ1Zk5ld0ZpbGUsQnVmUmVhZCAqLy5pbml0LyouY29uZiwqLy5pbml0Lyoub3ZlcnJpZGUgICAgICAgIHNldGYgdXBzdGFydAorYXUgQnVmTmV3RmlsZSxCdWZSZWFkICovLmluaXQvKi5jb25mLCovLmluaXQvKi5vdmVycmlkZQkgICAgICAgc2V0ZiB1cHN0YXJ0CiBhdSBCdWZOZXdGaWxlLEJ1ZlJlYWQgKi8uY29uZmlnL3Vwc3RhcnQvKi5jb25mCQkgICAgICAgc2V0ZiB1cHN0YXJ0CiBhdSBCdWZOZXdGaWxlLEJ1ZlJlYWQgKi8uY29uZmlnL3Vwc3RhcnQvKi5vdmVycmlkZQkgICAgICAgc2V0ZiB1cHN0YXJ0CiAKZGlmZiAtLWdpdCBhL3J1bnRpbWUvZnRwbHVnaW4vcm1kLnZpbSBiL3J1bnRpbWUvZnRwbHVnaW4vcm1kLnZpbQppbmRleCBlYzY0YTA3Li44YzA5MmFjIDEwMDY0NAotLS0gYS9ydW50aW1lL2Z0cGx1Z2luL3JtZC52aW0KKysrIGIvcnVudGltZS9mdHBsdWdpbi9ybWQudmltCkBAIC0xLDkgKzEsOSBAQAogIiBWaW0gZmlsZXR5cGUgcGx1Z2luIGZpbGUKLSIgTGFuZ3VhZ2U6IFIgaGVscCBmaWxlCisiIExhbmd1YWdlOiBSIE1hcmtkb3duIGZpbGUKICIgTWFpbnRhaW5lcjogSmFrc29uIEFsdmVzIGRlIEFxdWlubyA8amFsdmVzYXFAZ21haWwuY29tPgogIiBIb21lcGFnZTogaHR0cHM6Ly9naXRodWIuY29tL2phbHZlc2FxL1ItVmltLXJ1bnRpbWUKLSIgTGFzdCBDaGFuZ2U6CVR1ZSBBcHIgMDcsIDIwMTUgIDA0OjM3UE0KLSIgT3JpZ2luYWwgd29yayBieSBBbGV4IFp2b2xlZmYgKGFkanVzdGVkIGZvciBybWQgYnkgTWljaGVsIEt1aGxtYW5uKQorIiBMYXN0IENoYW5nZToJTW9uIEp1biAwNiwgMjAxNiAgMDk6NDFQTQorIiBPcmlnaW5hbCB3b3JrIGJ5IEFsZXggWnZvbGVmZiAoYWRqdXN0ZWQgZnJvbSBSIGhlbHAgZm9yIHJtZCBieSBNaWNoZWwgS3VobG1hbm4pCiAKICIgT25seSBkbyB0aGlzIHdoZW4gbm90IHlldCBkb25lIGZvciB0aGlzIGJ1ZmZlcgogaWYgZXhpc3RzKCJiOmRpZF9mdHBsdWdpbiIpCkBAIC0xMiw2ICsxMiwxNiBAQAogCiBydW50aW1lISBmdHBsdWdpbi9odG1sLnZpbSBmdHBsdWdpbi9odG1sXyoudmltIGZ0cGx1Z2luL2h0bWwvKi52aW0KIAorIiBOdmltLVIgcGx1Z2luIG5lZWRzIHRoaXMKK2lmIGV4aXN0cygiKkNvbXBsZXRlUiIpCisgIGlmICZvbW5pZnVuYyA9PSAiQ29tcGxldGVSIgorICAgIGxldCBiOnJwbHVnaW5fbm9ucl9vbW5pZnVuYyA9ICIiCisgIGVsc2UKKyAgICBsZXQgYjpycGx1Z2luX25vbnJfb21uaWZ1bmMgPSAmb21uaWZ1bmMKKyAgZW5kaWYKKyAgc2V0IG9tbmlmdW5jPUNvbXBsZXRlUgorZW5kaWYKKwogc2V0bG9jYWwgY29tbWVudHM9ZmI6KixmYjotLGZiOissbjo+IGNvbW1lbnRzdHJpbmc9PlwgJXMKIHNldGxvY2FsIGZvcm1hdG9wdGlvbnMrPXRjcWxuCiBzZXRsb2NhbCBmb3JtYXRsaXN0cGF0PV5cXHMqXFxkXFwrXFwuXFxzXFwrXFxcfF5cXHMqWy0qK11cXHNcXCsKZGlmZiAtLWdpdCBhL3J1bnRpbWUvZnRwbHVnaW4vc2NhbGEudmltIGIvcnVudGltZS9mdHBsdWdpbi9zY2FsYS52aW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTQwOTk1MAotLS0gL2Rldi9udWxsCisrKyBiL3J1bnRpbWUvZnRwbHVnaW4vc2NhbGEudmltCkBAIC0wLDAgKzEsMzcgQEAKKyIgVmltIGZpbGV0eXBlIHBsdWdpbiBmaWxlCisiIExhbmd1YWdlOiAgICAgICAgICAgICBTY2FsYQorIiBNYWludGFpbmVyOiAgICAgICAgICAgRGVyZWsgV3lhdHQKKyIgVVJMOiAgICAgICAgICAgICAgICAgIGh0dHBzOi8vZ2l0aHViLmNvbS9kZXJla3d5YXR0L3ZpbS1zY2FsYQorIiBMaWNlbnNlOiAgICAgICAgICAgICAgU2FtZSBhcyBWaW0KKyIgTGFzdCBDaGFuZ2U6ICAgICAgICAgIDAyIEF1Z3VzdCAyMDE2CisiIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworaWYgZXhpc3RzKCdiOmRpZF9mdHBsdWdpbicpIHx8ICZjcAorICBmaW5pc2gKK2VuZGlmCitsZXQgYjpkaWRfZnRwbHVnaW4gPSAxCisKKyIgaiBpcyBmYWlybHkgbmV3IGluIFZpbSwgc28gZG9uJ3QgY29tcGxhaW4gaWYgaXQncyBub3QgdGhlcmUKK3NldGxvY2FsIGZvcm1hdG9wdGlvbnMtPXQgZm9ybWF0b3B0aW9ucys9Y3JvcW5sCitzaWxlbnQhIHNldGxvY2FsIGZvcm1hdG9wdGlvbnMrPWoKKworIiBKdXN0IGxpa2UgYy52aW0sIGJ1dCBhZGRpdGlvbmFsbHkgZG9lc24ndCB3cmFwIHRleHQgb250byAvKiogbGluZSB3aGVuCisiIGZvcm1hdHRpbmcuIERvZXNuJ3QgYnVuZ2xlIGJ1bGxldGVkIGxpc3RzIHdoZW4gZm9ybWF0dGluZy4KK2lmIGdldChnOiwgJ3NjYWxhX3NjYWxhZG9jX2luZGVudCcsIDApCisgIHNldGxvY2FsIGNvbW1lbnRzPXNPOipcIC0sbU86KlwgXCAsZXhPOiovLHMyOi8qKixtYjoqLGV4OiovLHMxOi8qLG1iOiosZXg6Ki8sOi8vCitlbHNlCisgIHNldGxvY2FsIGNvbW1lbnRzPXNPOipcIC0sbU86KlwgXCAsZXhPOiovLHMxOi8qKixtYjoqLGV4OiovLHMxOi8qLG1iOiosZXg6Ki8sOi8vCitlbmRpZgorc2V0bG9jYWwgY29tbWVudHN0cmluZz0vL1wgJXMKKworc2V0bG9jYWwgc2hpZnR3aWR0aD0yIHNvZnR0YWJzdG9wPTIgZXhwYW5kdGFiCisKK3NldGxvY2FsIGluY2x1ZGU9J15ccyppbXBvcnQnCitzZXRsb2NhbCBpbmNsdWRlZXhwcj0nc3Vic3RpdHV0ZSh2OmZuYW1lLCJcXC4iLCIvIiwiZyIpJworCitzZXRsb2NhbCBwYXRoKz1zcmMvbWFpbi9zY2FsYSxzcmMvdGVzdC9zY2FsYQorc2V0bG9jYWwgc3VmZml4ZXNhZGQ9LnNjYWxhCisKK2NvbXBpbGVyIHNidAorCisiIHZpbTpzZXQgc3c9MiBzdHM9MiB0cz04IGV0OgpkaWZmIC0tZ2l0IGEvcnVudGltZS9pbmRlbnQvZm9ydHJhbi52aW0gYi9ydW50aW1lL2luZGVudC9mb3J0cmFuLnZpbQppbmRleCBlMTlhMTlmLi5iZTJmMDg2IDEwMDY0NAotLS0gYS9ydW50aW1lL2luZGVudC9mb3J0cmFuLnZpbQorKysgYi9ydW50aW1lL2luZGVudC9mb3J0cmFuLnZpbQpAQCAtMSw3ICsxLDcgQEAKICIgVmltIGluZGVudCBmaWxlCiAiIExhbmd1YWdlOglGb3J0cmFuIDIwMDggKGFuZCBvbGRlcjogRm9ydHJhbiAyMDAzLCA5NSwgOTAsIGFuZCA3NykKLSIgVmVyc2lvbjoJMC40NAotIiBMYXN0IENoYW5nZToJMjAxNiBKYW4uIDI2CisiIFZlcnNpb246CTAuNDUKKyIgTGFzdCBDaGFuZ2U6CTIwMTYgQXVnLiAxOAogIiBNYWludGFpbmVyOglBaml0IEouIFRoYWtrYXIgPGFqaXRAdW5iLmNhPjsgPGh0dHA6Ly93d3cyLnVuYi5jYS9+YWppdC8+CiAiIFVzYWdlOglGb3IgaW5zdHJ1Y3Rpb25zLCBkbyA6aGVscCBmb3J0cmFuLWluZGVudCBmcm9tIFZpbQogIiBDcmVkaXRzOgpAQCAtMTIxLDcgKzEyMSw3IEBACiAgICAgbGV0IHByZWZpeD0nXChcKHB1cmVcfGltcHVyZVx8ZWxlbWVudGFsXHxyZWN1cnNpdmVcKVxzXCtcKVx7LDJ9JwogICAgIGxldCB0eXBlPSdcKFwoaW50ZWdlclx8cmVhbFx8ZG91YmxlXHNcK3ByZWNpc2lvblx8Y29tcGxleFx8bG9naWNhbCcKICAgICAgICAgICBcLidcfGNoYXJhY3Rlclx8dHlwZVx8Y2xhc3NcKVxzKlxTKlxzXCtcKVw9JwotICAgIGlmIHByZXZzdGF0ID1+PyAnXlxzKlwobW9kdWxlXHxjb250YWluc1x8cHJvZ3JhbVwpXD4nCisgICAgaWYgcHJldnN0YXQgPX4/ICdeXHMqXChtb2R1bGVcfGNvbnRhaW5zXC9zdWJtb2R1bGVcfHByb2dyYW1cKVw+JwogICAgICAgICAgICAgXCB8fHByZXZzdGF0ID1+PyAnXlxzKicucHJlZml4LidzdWJyb3V0aW5lXD4nCiAgICAgICAgICAgICBcIHx8cHJldnN0YXQgPX4/ICdeXHMqJy5wcmVmaXgudHlwZS4nZnVuY3Rpb25cPicKICAgICAgICAgICAgIFwgfHxwcmV2c3RhdCA9fj8gJ15ccyonLnR5cGUucHJlZml4LidmdW5jdGlvblw+JwpAQCAtMTI5LDE0ICsxMjksMTQgQEAKICAgICBlbmRpZgogICAgIGlmIGdldGxpbmUodjpsbnVtKSA9fj8gJ15ccypjb250YWluc1w+JwogICAgICAgICAgIFwgfHxnZXRsaW5lKHY6bG51bSk9fj8gJ15ccyplbmRccyonCi0gICAgICAgICAgXCAuJ1woZnVuY3Rpb25cfHN1YnJvdXRpbmVcfG1vZHVsZVx8cHJvZ3JhbVwpXD4nCisgICAgICAgICAgXCAuJ1woZnVuY3Rpb25cfHN1YnJvdXRpbmVcfG1vZHVsZVwvc3VibW9kdWxlXHxwcm9ncmFtXClcPicKICAgICAgIGxldCBpbmQgPSBpbmQgLSBzaGlmdHdpZHRoKCkKICAgICBlbmRpZgogICBlbmRpZgogCiAgICJTdWJ0cmFjdCBhIHNoaWZ0d2lkdGggZnJvbSBlbHNlLCBlbHNlIGlmLCBlbHNld2hlcmUsIGNhc2UsIGVuZCBpZiwKICAgIiBlbmQgd2hlcmUsIGVuZCBzZWxlY3QsIGVuZCBmb3JhbGwsIGVuZCBpbnRlcmZhY2UsIGVuZCBhc3NvY2lhdGUsCi0gICIgZW5kIGVudW0sIGFuZCBlbmQgdHlwZSBzdGF0ZW1lbnRzCisgICIgZW5kIGVudW0sIGVuZCB0eXBlLCBlbmQgYmxvY2sgYW5kIGVuZCB0eXBlIHN0YXRlbWVudHMKICAgaWYgZ2V0bGluZSh2OmxudW0pID1+PyAnXlxzKlwoXGRcK1xzXClcPVxzKicKICAgICAgICAgXC4gJ1woZWxzZVx8ZWxzZVxzKmlmXHxlbHNlXHMqd2hlcmVcfGNhc2VcfCcKICAgICAgICAgXC4gJ2VuZFxzKlwoaWZcfHdoZXJlXHxzZWxlY3RcfGludGVyZmFjZVx8JwpkaWZmIC0tZ2l0IGEvcnVudGltZS9pbmRlbnQvamF2YXNjcmlwdC52aW0gYi9ydW50aW1lL2luZGVudC9qYXZhc2NyaXB0LnZpbQppbmRleCAzNTA3ZTMwLi4wZDZjMTFkIDEwMDY0NAotLS0gYS9ydW50aW1lL2luZGVudC9qYXZhc2NyaXB0LnZpbQorKysgYi9ydW50aW1lL2luZGVudC9qYXZhc2NyaXB0LnZpbQpAQCAtMSw4ICsxLDggQEAKICIgVmltIGluZGVudCBmaWxlCiAiIExhbmd1YWdlOiBKYXZhc2NyaXB0Ci0iIE1haW50YWluZXI6IHZpbS1qYXZhc2NyaXB0IGNvbW11bml0eQorIiBNYWludGFpbmVyOiBDaHJpcyBQYXVsICggaHR0cHM6Ly9naXRodWIuY29tL2JvdW5jZW1lICkKICIgVVJMOiBodHRwczovL2dpdGh1Yi5jb20vcGFuZ2xvc3MvdmltLWphdmFzY3JpcHQKLSIgTGFzdCBDaGFuZ2U6IEF1Z3VzdCAxMiwgMjAxNgorIiBMYXN0IENoYW5nZTogQXVndXN0IDI1LCAyMDE2CiAKICIgT25seSBsb2FkIHRoaXMgaW5kZW50IGZpbGUgd2hlbiBubyBvdGhlciB3YXMgbG9hZGVkLgogaWYgZXhpc3RzKCdiOmRpZF9pbmRlbnQnKQpAQCAtMTIsMTEgKzEyLDExIEBACiAKICIgTm93LCBzZXQgdXAgb3VyIGluZGVudGF0aW9uIGV4cHJlc3Npb24gYW5kIGtleXMgdGhhdCB0cmlnZ2VyIGl0Lgogc2V0bG9jYWwgaW5kZW50ZXhwcj1HZXRKYXZhc2NyaXB0SW5kZW50KCkKLXNldGxvY2FsIG5vbGlzcAorc2V0bG9jYWwgbm9saXNwIG5vYXV0b2luZGVudCBub3NtYXJ0aW5kZW50CiBzZXRsb2NhbCBpbmRlbnRrZXlzPTB7LDB9LDApLDBdLDosIV5GLG8sTyxlCiBzZXRsb2NhbCBjaW5vcHRpb25zKz1qMSxKMQogCi1sZXQgYjp1bmRvX2luZGVudCA9ICdzZXRsb2NhbCBpbmRlbnRleHByPCBpbmRlbnRrZXlzPCBjaW5vcHRpb25zPCcKK2xldCBiOnVuZG9faW5kZW50ID0gJ3NldGxvY2FsIGluZGVudGV4cHI8IHNtYXJ0aW5kZW50PCBhdXRvaW5kZW50PCBpbmRlbnRrZXlzPCBjaW5vcHRpb25zPCcKIAogIiBPbmx5IGRlZmluZSB0aGUgZnVuY3Rpb24gb25jZS4KIGlmIGV4aXN0cygnKkdldEphdmFzY3JpcHRJbmRlbnQnKQpAQCAtMzcsNyArMzcsNyBAQAogICBlbmRmdW5jdGlvbgogZW5kaWYKIAotbGV0IHM6bGluZV9wcmUgPSAnXlxzKlwlKFwvXCouXHstfVwqXC9ccypcKSonCitsZXQgczpsaW5lX3ByZSA9ICdeXHMqXCUoXCUoXCUoXC9cKi5cey19XClcPVwqXCtcL1xzKlwpXD1cKVxAPicKIGxldCBzOmV4cHJfY2FzZSA9IHM6bGluZV9wcmUgLiAnXCUoXCUoY2FzZVw+LlwrXClcfGRlZmF1bHRcKVxzKjonCiAiIFJlZ2V4IG9mIHN5bnRheCBncm91cCBuYW1lcyB0aGF0IGFyZSBvciBkZWxpbWl0IHN0cmluZyBvciBhcmUgY29tbWVudHMuCiBsZXQgczpzeW5nX3N0cmNvbSA9ICdcJShzXCUodHJpbmdcfHBlY2lhbFwpXHxjb21tZW50XHxyZWdleFx8ZG9jXHx0ZW1wbGF0ZVwpJwpAQCAtNDYsNjMgKzQ2LDYzIEBACiBsZXQgczpzeW5nX2NvbW1lbnQgPSAnXCUoY29tbWVudFx8ZG9jXCknCiAKICIgRXhwcmVzc2lvbiB1c2VkIHRvIGNoZWNrIHdoZXRoZXIgd2Ugc2hvdWxkIHNraXAgYSBtYXRjaCB3aXRoIHNlYXJjaHBhaXIoKS4KLWxldCBzOnNraXBfZXhwciA9ICJsaW5lKCcuJykgPCAocHJldm5vbmJsYW5rKHY6bG51bSkgLSAyMDAwKSA/IGR1bW15IDogc3luSURhdHRyKHN5bklEKGxpbmUoJy4nKSxjb2woJy4nKSwwKSwnbmFtZScpID1+PyAnIi5zOnN5bmdfc3RyY29tLiInIgorbGV0IHM6c2tpcF9leHByID0gInN5bklEYXR0cihzeW5JRChsaW5lKCcuJyksY29sKCcuJyksMCksJ25hbWUnKSA9fj8gJyIuczpzeW5nX3N0cmNvbS4iJyIKIAotZnVuY3Rpb24gczpsb29rRm9yUGFyZW5zKHN0YXJ0LGVuZCxmbGFncyx0aW1lKQotICBpZiBoYXMoJ3JlbHRpbWUnKQotICAgIHJldHVybiBzZWFyY2hwYWlyKGE6c3RhcnQsJycsYTplbmQsYTpmbGFncyxzOnNraXBfZXhwciwwLGE6dGltZSkKLSAgZWxzZQotICAgIHJldHVybiBzZWFyY2hwYWlyKGE6c3RhcnQsJycsYTplbmQsYTpmbGFncywwLDApCi0gIGVuZGlmCi1lbmRmdW5jdGlvbgoraWYgaGFzKCdyZWx0aW1lJykKKyAgZnVuY3Rpb24gczpHZXRQYWlyKHN0YXJ0LGVuZCxmbGFncyx0aW1lKQorICAgIHJldHVybiBzZWFyY2hwYWlyKGE6c3RhcnQsJycsYTplbmQsYTpmbGFncyxzOnNraXBfZXhwcixtYXgoW3ByZXZub25ibGFuayh2OmxudW0pIC0gMjAwMCwwXSksYTp0aW1lKQorICBlbmRmdW5jdGlvbgorZWxzZQorICBmdW5jdGlvbiBzOkdldFBhaXIoc3RhcnQsZW5kLGZsYWdzLG4pCisgICAgcmV0dXJuIHNlYXJjaHBhaXIoYTpzdGFydCwnJyxhOmVuZCxhOmZsYWdzLDAsbWF4KFtwcmV2bm9uYmxhbmsodjpsbnVtKSAtIDIwMDAsMF0pKQorICBlbmRmdW5jdGlvbgorZW5kaWYKIAotbGV0IHM6bGluZV90ZXJtID0gJ1wlKFxzKlwlKFwvXCouXHstfVwqXC9ccypcKVw9XClcQD4kJworbGV0IHM6bGluZV90ZXJtID0gJ1xzKlwlKFwlKFwvXCUoXCUoXCouXHstfVwqXC9cKVx8XCUoXCpcK1wpXClcKVxzKlwpXD0kJwogCiAiIGNvbmZpZ3VyYWJsZSByZWdleGVzIHRoYXQgZGVmaW5lIGNvbnRpbnVhdGlvbiBsaW5lcywgbm90IGluY2x1ZGluZyAoLCB7LCBvciBbLgogaWYgIWV4aXN0cygnZzpqYXZhc2NyaXB0X29wZmlyc3QnKQotICBsZXQgZzpqYXZhc2NyaXB0X29wZmlyc3QgPSAnXCUoWzw+LDo/XiVdXHxcKFstLy4rXVwpXCUoXDFcfFwqXHxcL1wpXEAhXHxcKlwvXEAhXHw9PlxAIVx8fFx8Jlx8aW5cJShzdGFuY2VvZlwpXD1cPlwpJworICBsZXQgZzpqYXZhc2NyaXB0X29wZmlyc3QgPSAnXCUoWzw+LDo/XiV8KiZdXHxcL1teLypdXHxcKFstLitdXClcMVxAIVx8PT5cQCFcfGluXCUoc3RhbmNlb2ZcKVw9XD5cKScKIGVuZGlmCi1sZXQgZzpqYXZhc2NyaXB0X29wZmlyc3QgPSBzOmxpbmVfcHJlIC4gZzpqYXZhc2NyaXB0X29wZmlyc3QKLQogaWYgIWV4aXN0cygnZzpqYXZhc2NyaXB0X2NvbnRpbnVhdGlvbicpCi0gIGxldCBnOmphdmFzY3JpcHRfY29udGludWF0aW9uID0gJ1wlKFs8KiwuPzpeJV1cfCtcQDwhK1x8LVxAPCEtXHw9XEA8IT5cfFwqXEA8IVwvXHw9XHx8XHwmXHxcPGluXCUoc3RhbmNlb2ZcKVw9XCknCisgIGxldCBnOmphdmFzY3JpcHRfY29udGludWF0aW9uID0gJ1wlKFs8PSwuPy8qOl4lfCZdXHwrXEA8IStcfC1cQDwhLVx8PVxAPCE+XHxcPGluXCUoc3RhbmNlb2ZcKVw9XCknCiBlbmRpZgorCitsZXQgZzpqYXZhc2NyaXB0X29wZmlyc3QgPSBzOmxpbmVfcHJlIC4gZzpqYXZhc2NyaXB0X29wZmlyc3QKIGxldCBnOmphdmFzY3JpcHRfY29udGludWF0aW9uIC49IHM6bGluZV90ZXJtCiAKLWZ1bmN0aW9uIHM6T25lc2NvcGUobG51bSx0ZXh0LGFkZCkKLSAgcmV0dXJuIGE6dGV4dCA9fiMgJ1wlKFw8ZWxzZVx8XDxkb1x8PT4nIC4gKGE6YWRkID8gJ1x8XDx0cnlcfFw8ZmluYWxseScgOiAnJyApIC4gJ1wpJyAuIHM6bGluZV90ZXJtIHx8CitmdW5jdGlvbiBzOk9uZVNjb3BlKGxudW0sdGV4dCxhZGQpCisgIHJldHVybiBhOnRleHQgPX4jICdcJShcPGVsc2VcfFw8ZG9cfD0+XCknIC4gczpsaW5lX3Rlcm0gPyAnbm8gYicgOgogICAgICAgICBcICgoYTphZGQgJiYgYTp0ZXh0ID1+IHM6bGluZV9wcmUgLiAnJCcgJiYgc2VhcmNoKCdcJScgLiBzOlByZXZDb2RlTGluZShhOmxudW0gLSAxKSAuICdsLiknIC4gczpsaW5lX3Rlcm0pKSB8fAogICAgICAgICBcIGN1cnNvcihhOmxudW0sIG1hdGNoKGE6dGV4dCwgJyknIC4gczpsaW5lX3Rlcm0pKSA+IC0xKSAmJgotICAgICAgICBcIHM6bG9va0ZvclBhcmVucygnKCcsICcpJywgJ2NiVycsIDEwMCkgPiAwICYmIHNlYXJjaCgoYTphZGQgPwotICAgICAgICBcICdcJShmdW5jdGlvblwqXHxbWzpsb3dlcjpdWzp1cHBlcjpdXyRdW1s6ZGlnaXQ6XVs6bG93ZXI6XVs6dXBwZXI6XV8kXSpcKScgOgotICAgICAgICBcICdcPFwlKGZvclwlKFxzXCtlYWNoXClcPVx8aWZcfGxldFx8d1wlKGhpbGVcfGl0aFwpXCknKSAuICdcX3MqXCUjXEMnLCdiVycpICYmCi0gICAgICAgIFwgKGE6YWRkIHx8IChleHBhbmQoJzxjd29yZD4nKSA9PSMgJ3doaWxlJyA/ICFzOmxvb2tGb3JQYXJlbnMoJ1w8ZG9cPlxDJywgJ1w8d2hpbGVcPlxDJywnYlcnLDEwMCkgOiAxKSkKKyAgICAgICAgXCBzOkdldFBhaXIoJygnLCAnKScsICdjYlcnLCAxMDApID4gMCAmJiBzZWFyY2goJ1xDXGxcK1xfcypcJSMnLCdiVycpICYmCisgICAgICAgIFwgKGE6YWRkIHx8ICgoZXhwYW5kKCc8Y3dvcmQ+JykgIT0jICd3aGlsZScgfHwgIXM6R2V0UGFpcignXENcPGRvXD4nLCAnXENcPHdoaWxlXD4nLCduYlcnLDEwMCkpICYmCisgICAgICAgIFwgKGV4cGFuZCgnPGN3b3JkPicpICE9IyAnZWFjaCcgfHwgc2VhcmNoKCdcQ1w8Zm9yXF9zXCtcJSMnLCduYlcnKSkpKSA/IGV4cGFuZCgnPGN3b3JkPicpIDogJycKK2VuZGZ1bmN0aW9uCisKKyIgaHR0cHM6Ly9naXRodWIuY29tL3N3ZWV0LWpzL3N3ZWV0LmpzL3dpa2kvZGVzaWduI2dpdmUtbG9va2JlaGluZC10by10aGUtcmVhZGVyCitmdW5jdGlvbiBzOklzQmxvY2soKQorICByZXR1cm4gZ2V0bGluZShsaW5lKCcuJykpW2NvbCgnLicpLTFdID09ICd7JyAmJiAhc2VhcmNoKAorICAgICAgICBcICdcQ1wlKFw8cmV0dXJuXHMqXHxcJShbLT1+ITwqKywuP14lfCZcWyhdXHw9XEA8IT5cfFwqXEA8IVwvXHxcPFwlKHZhclx8Y29uc3RcfGxldFx8aW1wb3J0XHxleHBvcnRcJShcX3NcK2RlZmF1bHRcKVw9XHx5aWVsZFx8ZGVsZXRlXHx2b2lkXHx0XCUoeXBlb2ZcfGhyb3dcKVx8bmV3XHxpblwlKHN0YW5jZW9mXClcPVwpXClcX3MqXClcJSMnLCdiblcnKSAmJgorICAgICAgICBcICghc2VhcmNoKCc6XF9zKlwlIycsJ2JXJykgfHwgKCFzOkdldFBhaXIoJ1soe1tdJywnW10pfV0nLCdiVycsMjAwKSB8fCBzOklzQmxvY2soKSkpCiBlbmRmdW5jdGlvbgogCiAiIEF1eGlsaWFyeSBGdW5jdGlvbnMge3t7MgogCi0iIHN0cmlwIGxpbmUgb2YgY29tbWVudAotZnVuY3Rpb24gczpTdHJpcExpbmUoYykKLSAgcmV0dXJuIGE6YyAhfiMgczpleHByX2Nhc2UgPyBzdWJzdGl0dXRlKGE6YywgJ1wlKDpcQDwhXC9cLy4qXCkkJywgJycsJycpIDogYTpjCi1lbmRmdW5jdGlvbgotCiAiIEZpbmQgbGluZSBhYm92ZSAnbG51bScgdGhhdCBpc24ndCBlbXB0eSwgaW4gYSBjb21tZW50LCBvciBpbiBhIHN0cmluZy4KIGZ1bmN0aW9uIHM6UHJldkNvZGVMaW5lKGxudW0pCiAgIGxldCBsOmxudW0gPSBwcmV2bm9uYmxhbmsoYTpsbnVtKQotICB3aGlsZSBsOmxudW0gPiAwCisgIHdoaWxlIGw6bG51bQogICAgIGlmIHN5bklEYXR0cihzeW5JRChsOmxudW0sbWF0Y2hlbmQoZ2V0bGluZShsOmxudW0pLCAnXlxzKlteJyciXScpLDApLCduYW1lJykgIX4/IHM6c3luZ19zdHJjb20KLSAgICAgIGJyZWFrCisgICAgICByZXR1cm4gbDpsbnVtCiAgICAgZW5kaWYKICAgICBsZXQgbDpsbnVtID0gcHJldm5vbmJsYW5rKGw6bG51bSAtIDEpCiAgIGVuZHdoaWxlCi0gIHJldHVybiBsOmxudW0KIGVuZGZ1bmN0aW9uCiAKICIgQ2hlY2sgaWYgbGluZSAnbG51bScgaGFzIGEgYmFsYW5jZWQgYW1vdW50IG9mIHBhcmVudGhlc2VzLgogZnVuY3Rpb24gczpCYWxhbmNlZChsbnVtKQotICBsZXQgb3Blbl8wID0gMAotICBsZXQgb3Blbl8yID0gMAotICBsZXQgb3Blbl80ID0gMAorICBsZXQgW29wZW5fMCxvcGVuXzIsb3Blbl80XSA9IFswLDAsMF0KICAgbGV0IGw6bGluZSA9IGdldGxpbmUoYTpsbnVtKQogICBsZXQgcG9zID0gbWF0Y2gobDpsaW5lLCAnW11bKCl7fV0nLCAwKQogICB3aGlsZSBwb3MgIT0gLTEKQEAgLTEyOSw3ICsxMjksNyBAQAogICBsZXQgc3lucyA9IHN5bklEYXR0cihzeW5JRCh2OmxudW0sIDEsIDApLCAnbmFtZScpCiAKICAgIiBzdGFydCB3aXRoIHN0cmluZ3MsY29tbWVudHMsZXRjLnt7ezIKLSAgaWYgKGw6bGluZSAhfiAnXlsnJyJgXScgJiYgc3lucyA9fj8gJ3N0cmluZ1x8dGVtcGxhdGUnKSB8fAorICBpZiAobDpsaW5lICF+ICdeWycnImBdJyAmJiBzeW5zID1+PyAnXCUoc3RyaW5nXHx0ZW1wbGF0ZVwpJykgfHwKICAgICAgICAgXCAobDpsaW5lICF+ICdeXHMqWy8qXScgJiYgc3lucyA9fj8gczpzeW5nX2NvbW1lbnQpCiAgICAgcmV0dXJuIC0xCiAgIGVuZGlmCkBAIC0xNTMsMTUgKzE1MywxNSBAQAogICAiIHRoZSBjb250YWluaW5nIHBhcmVuLCBicmFja2V0LCBjdXJseS4gTWVtb2l6ZSwgbGFzdCBsaW5lTnIgZWl0aGVyIGhhcyB0aGUKICAgIiBzYW1lIHNjb3BlIG9yIHN0YXJ0cyBhIG5ldyBvbmUsIHVubGVzcyBpZiBpdCBjbG9zZWQgYSBzY29wZS4KICAgY2FsbCBjdXJzb3IodjpsbnVtLDEpCi0gIGlmIGI6anNfY2FjaGVbMF0gPj0gbDpsbnVtICAmJiBiOmpzX2NhY2hlWzBdIDw9IHY6bG51bSAmJiBiOmpzX2NhY2hlWzBdICYmCisgIGlmIGI6anNfY2FjaGVbMF0gPj0gbDpsbnVtICAmJiBiOmpzX2NhY2hlWzBdIDwgdjpsbnVtICYmIGI6anNfY2FjaGVbMF0gJiYKICAgICAgICAgXCAoYjpqc19jYWNoZVswXSA+IGw6bG51bSB8fCBzOkJhbGFuY2VkKGw6bG51bSkgPiAwKQogICAgIGxldCBudW0gPSBiOmpzX2NhY2hlWzFdCiAgIGVsc2VpZiBzeW5zICE9ICcnICYmIGw6bGluZVswXSA9fiAnXHMnCiAgICAgbGV0IHBhdHRlcm4gPSBzeW5zID1+PyAnYmxvY2snID8gWyd7JywnfSddIDogc3lucyA9fj8gJ2pzcGFyZW4nID8gWycoJywnKSddIDoKICAgICAgICAgICBcIHN5bnMgPX4/ICdqc2JyYWNrZXQnPyBbJ1xbJywnXF0nXSA6IFsnWyh7W10nLCdbXSl9XSddCi0gICAgbGV0IG51bSA9IHM6bG9va0ZvclBhcmVucyhwYXR0ZXJuWzBdLHBhdHRlcm5bMV0sJ2JXJywyMDAwKQorICAgIGxldCBudW0gPSBzOkdldFBhaXIocGF0dGVyblswXSxwYXR0ZXJuWzFdLCdiVycsMjAwMCkKICAgZWxzZQotICAgIGxldCBudW0gPSBzOmxvb2tGb3JQYXJlbnMoJ1soe1tdJywnW10pfV0nLCdiVycsMjAwMCkKKyAgICBsZXQgbnVtID0gczpHZXRQYWlyKCdbKHtbXScsJ1tdKX1dJywnYlcnLDIwMDApCiAgIGVuZGlmCiAgIGxldCBiOmpzX2NhY2hlID0gW3Y6bG51bSxudW0sbGluZSgnLicpID09IHY6bG51bSA/IGI6anNfY2FjaGVbMl0gOiBjb2woJy4nKV0KIApAQCAtMTY5LDE3ICsxNjksMTkgQEAKICAgICByZXR1cm4gaW5kZW50KG51bSkKICAgZW5kaWYKIAotICBsZXQgcGxpbmUgPSBzOlN0cmlwTGluZShnZXRsaW5lKGw6bG51bSkpCi0gIGxldCBpbmIgPSBudW0gPT0gMCA/IDEgOiAoczpPbmVzY29wZShudW0sIHM6U3RyaXBMaW5lKHN0cnBhcnQoZ2V0bGluZShudW0pLDAsYjpqc19jYWNoZVsyXSAtIDEpKSwxKSB8fAotICAgICAgICBcIChsOmxpbmUgIX4gczpsaW5lX3ByZSAuICcsJyAmJiBwbGluZSAhfiAnLCcgLiBzOmxpbmVfdGVybSkpICYmIG51bSA8IGw6bG51bQotICBsZXQgc3dpdGNoX29mZnNldCA9ICghaW5iIHx8IG51bSA9PSAwKSB8fCBleHBhbmQoIjxjd29yZD4iKSAhPSMgJ3N3aXRjaCcgPyAwIDogJmNpbm8gIX4gJzonIHx8ICFoYXMoJ2Zsb2F0JykgPyAgczpzdygpIDoKKyAgY2FsbCBjdXJzb3IoYjpqc19jYWNoZVsxXSxiOmpzX2NhY2hlWzJdKQorCisgIGxldCBzd2Nhc2UgPSBnZXRsaW5lKGw6bG51bSkgPX4jIHM6ZXhwcl9jYXNlCisgIGxldCBwbGluZSA9IHN3Y2FzZSA/IGdldGxpbmUobDpsbnVtKSA6IHN1YnN0aXR1dGUoZ2V0bGluZShsOmxudW0pLCAnXCUoOlxAPCFcL1wvLipcKSQnLCAnJywnJykKKyAgbGV0IGluYiA9IG51bSA9PSAwIHx8IG51bSA8IGw6bG51bSAmJiAoKGw6bGluZSAhfiBzOmxpbmVfcHJlIC4gJywnICYmIHBsaW5lICF+ICcsJyAuIHM6bGluZV90ZXJtKSB8fCBzOklzQmxvY2soKSkKKyAgbGV0IHN3aXRjaF9vZmZzZXQgPSBudW0gPT0gMCB8fCBzOk9uZVNjb3BlKG51bSwgc3RycGFydChnZXRsaW5lKG51bSksMCxiOmpzX2NhY2hlWzJdIC0gMSksMSkgIT0jICdzd2l0Y2gnID8gMCA6CisgICAgICAgIFwgJmNpbm8gIX4gJzonIHx8ICFoYXMoJ2Zsb2F0JykgPyAgczpzdygpIDoKICAgICAgICAgXCBmbG9hdDJucihzdHIyZmxvYXQobWF0Y2hzdHIoJmNpbm8sJy4qOlx6c1stMC05Ll0qJykpICogKCZjaW5vID1+IyAnLio6W14sXSpzJyA/IHM6c3coKSA6IDEpKQogCiAgICIgbW9zdCBzaWduaWZpY2FudCwgZmluZCB0aGUgaW5kZW50IGFtb3VudAotICBpZiAoaW5iICYmIChsOmxpbmUgPX4jIGc6amF2YXNjcmlwdF9vcGZpcnN0IHx8Ci0gICAgICAgIFwgKHBsaW5lID1+IyBnOmphdmFzY3JpcHRfY29udGludWF0aW9uICYmIHBsaW5lICF+IyBzOmV4cHJfY2FzZSAmJiAocGxpbmUgIX4gJzonIC4gczpsaW5lX3Rlcm0gfHwgbDpsaW5lICF+IwotICAgICAgICBcIHM6bGluZV9wcmUgLiAnXCUoZFwlKG9cfGVidWdnZXJcKVx8ZWxzZVx8ZlwlKG9yXHxpbmFsbHlcKVx8aWZcfGxldFx8c3dpdGNoXHx0XCUoaHJvd1x8cnlcKVx8d1wlKGhpbGVcfGl0aFwpXClcPicpKSkpIHx8Ci0gICAgICAgIFwgKG51bSA8IGw6bG51bSAmJiBzOk9uZXNjb3BlKGw6bG51bSxwbGluZSwwKSAmJiBsOmxpbmUgIX4gczpsaW5lX3ByZSAuICd7JykKKyAgaWYgaW5iICYmICFzd2Nhc2UgJiYgKChsOmxpbmUgPX4jIGc6amF2YXNjcmlwdF9vcGZpcnN0IHx8IHBsaW5lID1+IyBnOmphdmFzY3JpcHRfY29udGludWF0aW9uKSB8fAorICAgICAgICBcIG51bSA8IGw6bG51bSAmJiBzOk9uZVNjb3BlKGw6bG51bSxwbGluZSwwKSA9fiMgJ1w8XCUoZm9yXHxlYWNoXHxpZlx8bGV0XHxub1xzYlx8d1wlKGhpbGVcfGl0aFwpXClcPicgJiYKKyAgICAgICAgXCBsOmxpbmUgIX4gczpsaW5lX3ByZSAuICd7JykKICAgICByZXR1cm4gKG51bSA+IDAgPyBpbmRlbnQobnVtKSA6IC1zOnN3KCkpICsgKHM6c3coKSAqIDIpICsgc3dpdGNoX29mZnNldAogICBlbHNlaWYgbnVtID4gMAogICAgIHJldHVybiBpbmRlbnQobnVtKSArIHM6c3coKSArIHN3aXRjaF9vZmZzZXQKZGlmZiAtLWdpdCBhL3J1bnRpbWUvaW5kZW50L3Jub3dlYi52aW0gYi9ydW50aW1lL2luZGVudC9ybm93ZWIudmltCmluZGV4IDI5ZmE1YmMuLjhjMTFlODUgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvaW5kZW50L3Jub3dlYi52aW0KKysrIGIvcnVudGltZS9pbmRlbnQvcm5vd2ViLnZpbQpAQCAtMiw3ICsyLDcgQEAKICIgTGFuZ3VhZ2U6CVJub3dlYgogIiBBdXRob3I6CUpha3NvbiBBbHZlcyBkZSBBcXVpbm8gPGphbHZlc2FxQGdtYWlsLmNvbT4KICIgSG9tZXBhZ2U6ICAgICBodHRwczovL2dpdGh1Yi5jb20vamFsdmVzYXEvUi1WaW0tcnVudGltZQotIiBMYXN0IENoYW5nZToJVHVlIEFwciAwNywgMjAxNSAgMDQ6MzhQTQorIiBMYXN0IENoYW5nZToJRnJpIEFwciAxNSwgMjAxNiAgMTA6NThQTQogCiAKICIgT25seSBsb2FkIHRoaXMgaW5kZW50IGZpbGUgd2hlbiBubyBvdGhlciB3YXMgbG9hZGVkLgpAQCAtMTAsNyArMTAsMTcgQEAKICAgZmluaXNoCiBlbmRpZgogcnVudGltZSBpbmRlbnQvdGV4LnZpbQotbGV0IHM6VGVYSW5kZW50ID0gZnVuY3Rpb24oc3Vic3RpdHV0ZSgmaW5kZW50ZXhwciwgIigpIiwgIiIsICIiKSkKKworZnVuY3Rpb24hIHM6Tm9UZVhJbmRlbnQoKQorICByZXR1cm4gaW5kZW50KGxpbmUoIi4iKSkKK2VuZGZ1bmN0aW9uCisKK2lmICZpbmRlbnRleHByID09ICIiIHx8ICZpbmRlbnRleHByID09ICJHZXRSbm93ZWJJbmRlbnQoKSIKKyAgbGV0IHM6VGVYSW5kZW50ID0gZnVuY3Rpb24oInM6Tm9UZVhJbmRlbnQiKQorZWxzZQorICBsZXQgczpUZVhJbmRlbnQgPSBmdW5jdGlvbihzdWJzdGl0dXRlKCZpbmRlbnRleHByLCAiKCkiLCAiIiwgIiIpKQorZW5kaWYKKwogdW5sZXQgYjpkaWRfaW5kZW50CiBydW50aW1lIGluZGVudC9yLnZpbQogbGV0IHM6UkluZGVudCA9IGZ1bmN0aW9uKHN1YnN0aXR1dGUoJmluZGVudGV4cHIsICIoKSIsICIiLCAiIikpCmRpZmYgLS1naXQgYS9ydW50aW1lL2luZGVudC9zY2FsYS52aW0gYi9ydW50aW1lL2luZGVudC9zY2FsYS52aW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjk3Yzc5YgotLS0gL2Rldi9udWxsCisrKyBiL3J1bnRpbWUvaW5kZW50L3NjYWxhLnZpbQpAQCAtMCwwICsxLDYwOSBAQAorIiBWaW0gaW5kZW50IGZpbGUKKyIgTGFuZ3VhZ2U6ICAgICAgICAgICAgIFNjYWxhIChodHRwOi8vc2NhbGEtbGFuZy5vcmcvKQorIiBPcmlnaW5hbCBBdXRob3I6ICAgICAgU3RlZmFuIE1hdHRoaWFzIEF1c3QKKyIgTW9kaWZpY2F0aW9ucyBCeTogICAgIERlcmVrIFd5YXR0CisiIFVSTDogICAgICAgICAgICAgICAgICBodHRwczovL2dpdGh1Yi5jb20vZGVyZWt3eWF0dC92aW0tc2NhbGEKKyIgTGFzdCBDaGFuZ2U6ICAgICAgICAgIDIwMTYgQXVnIDI2CisKK2lmIGV4aXN0cygiYjpkaWRfaW5kZW50IikKKyAgZmluaXNoCitlbmRpZgorbGV0IGI6ZGlkX2luZGVudCA9IDEKKworc2V0bG9jYWwgYXV0b2luZGVudAorc2V0bG9jYWwgaW5kZW50ZXhwcj1HZXRTY2FsYUluZGVudCgpCitzZXRsb2NhbCBpbmRlbnRrZXlzPTB7LDB9LDApLCFeRiw8Pj4sbyxPLGUsPWNhc2UsPENSPgorCitpZiBleGlzdHMoIipHZXRTY2FsYUluZGVudCIpCisgIGZpbmlzaAorZW5kaWYKK2xldCBzOmtlZXBjcG89ICZjcG8KK3NldCBjcG8mdmltCisKK2xldCBzOmRlZk1hdGNoZXIgPSAnXCUoXCUocHJpdmF0ZVx8cHJvdGVjdGVkXClcJShcW1teXF1dKlxdXClcP1xzXCtcfGFic3RyYWN0XHNcK1x8b3ZlcnJpZGVcc1wrXCkqXDxkZWZcPicKK2xldCBzOmZ1bmNOYW1lTWF0Y2hlciA9ICdcd1wrJworbGV0IHM6dHlwZVNwZWNNYXRjaGVyID0gJ1wlKFxzKlxbXF9bXlxdXSpcXVwpJworbGV0IHM6ZGVmQXJnTWF0Y2hlciA9ICdcJSgoXF8uXHstfSlcKScKK2xldCBzOnJldHVyblR5cGVNYXRjaGVyID0gJ1wlKDpccypcd1wrJyAuIHM6dHlwZVNwZWNNYXRjaGVyIC4gJ1w/XCknCitsZXQgZzpmdWxsRGVmTWF0Y2hlciA9ICdeXHMqJyAuIHM6ZGVmTWF0Y2hlciAuICdcc1wrJyAuIHM6ZnVuY05hbWVNYXRjaGVyIC4gJ1xzKicgLiBzOnR5cGVTcGVjTWF0Y2hlciAuICdcP1xzKicgLiBzOmRlZkFyZ01hdGNoZXIgLiAnXD9ccyonIC4gczpyZXR1cm5UeXBlTWF0Y2hlciAuICdcP1xzKls9e10nCisKK2Z1bmN0aW9uISBzY2FsYSNDb25kaXRpb25hbENvbmZpcm0obXNnKQorICBpZiAwCisgICAgY2FsbCBjb25maXJtKGE6bXNnKQorICBlbmRpZgorZW5kZnVuY3Rpb24KKworZnVuY3Rpb24hIHNjYWxhI0dldExpbmUobG51bSkKKyAgbGV0IGxpbmUgPSBzdWJzdGl0dXRlKGdldGxpbmUoYTpsbnVtKSwgJy8vLiokJywgJycsICcnKQorICBsZXQgbGluZSA9IHN1YnN0aXR1dGUobGluZSwgJyJcKC5cfFxcIlwpXHstfSInLCAnIiInLCAnZycpCisgIHJldHVybiBsaW5lCitlbmRmdW5jdGlvbgorCitmdW5jdGlvbiEgc2NhbGEjQ291bnRCcmFja2V0cyhsaW5lLCBvcGVuQnJhY2tldCwgY2xvc2VkQnJhY2tldCkKKyAgbGV0IGxpbmUgPSBzdWJzdGl0dXRlKGE6bGluZSwgJyJcKC5cfFxcIlwpXHstfSInLCAnJywgJ2cnKQorICBsZXQgb3BlbiA9IHN1YnN0aXR1dGUobGluZSwgJ1teJyAuIGE6b3BlbkJyYWNrZXQgLiAnXScsICcnLCAnZycpCisgIGxldCBjbG9zZSA9IHN1YnN0aXR1dGUobGluZSwgJ1teJyAuIGE6Y2xvc2VkQnJhY2tldCAuICddJywgJycsICdnJykKKyAgcmV0dXJuIHN0cmxlbihvcGVuKSAtIHN0cmxlbihjbG9zZSkKK2VuZGZ1bmN0aW9uCisKK2Z1bmN0aW9uISBzY2FsYSNDb3VudFBhcmVucyhsaW5lKQorICByZXR1cm4gc2NhbGEjQ291bnRCcmFja2V0cyhhOmxpbmUsICcoJywgJyknKQorZW5kZnVuY3Rpb24KKworZnVuY3Rpb24hIHNjYWxhI0NvdW50Q3VybGllcyhsaW5lKQorICByZXR1cm4gc2NhbGEjQ291bnRCcmFja2V0cyhhOmxpbmUsICd7JywgJ30nKQorZW5kZnVuY3Rpb24KKworZnVuY3Rpb24hIHNjYWxhI0xpbmVFbmRzSW5JbmNvbXBsZXRlKGxpbmUpCisgIGlmIGE6bGluZSA9fiAnWy4sXVxzKiQnCisgICAgcmV0dXJuIDEKKyAgZWxzZQorICAgIHJldHVybiAwCisgIGVuZGlmCitlbmRmdW5jdGlvbgorCitmdW5jdGlvbiEgc2NhbGEjTGluZUlzQUNsb3NpbmdYTUwobGluZSkKKyAgaWYgYTpsaW5lID1+ICdeXHMqPC9cdycKKyAgICByZXR1cm4gMQorICBlbHNlCisgICAgcmV0dXJuIDAKKyAgZW5kaWYKK2VuZGZ1bmN0aW9uCisKK2Z1bmN0aW9uISBzY2FsYSNMaW5lQ29tcGxldGVzWE1MKGxudW0sIGxpbmUpCisgIGxldCBzYXZlZHBvcyA9IGdldHBvcygnLicpCisgIGNhbGwgc2V0cG9zKCcuJywgW3NhdmVkcG9zWzBdLCBhOmxudW0sIDAsIHNhdmVkcG9zWzNdXSkKKyAgbGV0IHRhZyA9IHN1YnN0aXR1dGUoYTpsaW5lLCAnXi4qPC9cKFtePl0qXCk+LiokJywgJ1wxJywgJycpCisgIGxldCBbbGluZU51bSwgY29sbnVtXSA9IHNlYXJjaHBhaXJwb3MoJzwnIC4gdGFnIC4gJz4nLCAnJywgJzwvJyAuIHRhZyAuICc+JywgJ1dibicpCisgIGNhbGwgc2V0cG9zKCcuJywgc2F2ZWRwb3MpCisgIGxldCBwbGluZSA9IHNjYWxhI0dldExpbmUocHJldm5vbmJsYW5rKGxpbmVOdW0gLSAxKSkKKyAgaWYgcGxpbmUgPX4gJz1ccyokJworICAgIHJldHVybiAxCisgIGVsc2UKKyAgICByZXR1cm4gMAorICBlbmRpZgorZW5kZnVuY3Rpb24KKworZnVuY3Rpb24hIHNjYWxhI0lzUGFyZW50Q2FzZSgpCisgIGxldCBzYXZlZHBvcyA9IGdldHBvcygnLicpCisgIGNhbGwgc2V0cG9zKCcuJywgW3NhdmVkcG9zWzBdLCBzYXZlZHBvc1sxXSwgMCwgc2F2ZWRwb3NbM11dKQorICBsZXQgW2wsIGNdID0gc2VhcmNocG9zKCdeXHMqXCUoJyAuIHM6ZGVmTWF0Y2hlciAuICdcfFwlKFw8Y2FzZVw+XClcKScsICdiblcnKQorICBsZXQgcmV0dmFsdWUgPSAtMQorICBpZiBsICE9IDAgJiYgc2VhcmNoKCdcJScgLiBsIC4gJ2xccypcPGNhc2VcPicsICdiblcnKQorICAgIGxldCByZXR2YWx1ZSA9IGwKKyAgZW5kaWYKKyAgY2FsbCBzZXRwb3MoJy4nLCBzYXZlZHBvcykKKyAgcmV0dXJuIHJldHZhbHVlCitlbmRmdW5jdGlvbgorCitmdW5jdGlvbiEgc2NhbGEjQ3VybHlNYXRjaGVyKCkKKyAgbGV0IG1hdGNobGluZSA9IHNjYWxhI0dldExpbmVUaGF0TWF0Y2hlc0JyYWNrZXQoJ3snLCAnfScpCisgIGlmIHNjYWxhI0NvdW50UGFyZW5zKHNjYWxhI0dldExpbmUobWF0Y2hsaW5lKSkgPCAwCisgICAgbGV0IHNhdmVkcG9zID0gZ2V0cG9zKCcuJykKKyAgICBjYWxsIHNldHBvcygnLicsIFtzYXZlZHBvc1swXSwgbWF0Y2hsaW5lLCA5OTk5LCBzYXZlZHBvc1szXV0pCisgICAgY2FsbCBzZWFyY2hwb3MoJ3snLCAnV2JjJykKKyAgICBjYWxsIHNlYXJjaHBvcygnKScsICdXYicpCisgICAgbGV0IFtsbnVtLCBjb2xudW1dID0gc2VhcmNocGFpcnBvcygnKCcsICcnLCAnKScsICdXYm4nKQorICAgIGNhbGwgc2V0cG9zKCcuJywgc2F2ZWRwb3MpCisgICAgbGV0IGxpbmUgPSBzY2FsYSNHZXRMaW5lKGxudW0pCisgICAgaWYgbGluZSA9fiAnXlxzKicgLiBzOmRlZk1hdGNoZXIKKyAgICAgIHJldHVybiBsbnVtCisgICAgZWxzZQorICAgICAgcmV0dXJuIG1hdGNobGluZQorICAgIGVuZGlmCisgIGVsc2UKKyAgICByZXR1cm4gbWF0Y2hsaW5lCisgIGVuZGlmCitlbmRmdW5jdGlvbgorCitmdW5jdGlvbiEgc2NhbGEjR2V0TGluZUFuZENvbHVtblRoYXRNYXRjaGVzQ3VybHkoKQorICByZXR1cm4gc2NhbGEjR2V0TGluZUFuZENvbHVtblRoYXRNYXRjaGVzQnJhY2tldCgneycsICd9JykKK2VuZGZ1bmN0aW9uCisKK2Z1bmN0aW9uISBzY2FsYSNHZXRMaW5lQW5kQ29sdW1uVGhhdE1hdGNoZXNQYXJlbigpCisgIHJldHVybiBzY2FsYSNHZXRMaW5lQW5kQ29sdW1uVGhhdE1hdGNoZXNCcmFja2V0KCcoJywgJyknKQorZW5kZnVuY3Rpb24KKworZnVuY3Rpb24hIHNjYWxhI0dldExpbmVBbmRDb2x1bW5UaGF0TWF0Y2hlc0JyYWNrZXQob3BlbkJyYWNrZXQsIGNsb3NlZEJyYWNrZXQpCisgIGxldCBzYXZlZHBvcyA9IGdldHBvcygnLicpCisgIGxldCBjdXJsaW5lID0gc2NhbGEjR2V0TGluZShsaW5lKCcuJykpCisgIGlmIGN1cmxpbmUgPX4gYTpjbG9zZWRCcmFja2V0IC4gJy4qJyAuIGE6b3BlbkJyYWNrZXQgLiAnLionIC4gYTpjbG9zZWRCcmFja2V0CisgICAgY2FsbCBzZXRwb3MoJy4nLCBbc2F2ZWRwb3NbMF0sIHNhdmVkcG9zWzFdLCAwLCBzYXZlZHBvc1szXV0pCisgICAgY2FsbCBzZWFyY2hwb3MoYTpjbG9zZWRCcmFja2V0IC4gJ1x6ZVteJyAuIGE6Y2xvc2VkQnJhY2tldCAuIGE6b3BlbkJyYWNrZXQgLiAnXSonIC4gYTpvcGVuQnJhY2tldCwgJ1cnKQorICBlbHNlCisgICAgY2FsbCBzZXRwb3MoJy4nLCBbc2F2ZWRwb3NbMF0sIHNhdmVkcG9zWzFdLCA5OTk5LCBzYXZlZHBvc1szXV0pCisgICAgY2FsbCBzZWFyY2hwb3MoYTpjbG9zZWRCcmFja2V0LCAnV2JjJykKKyAgZW5kaWYKKyAgbGV0IFtsbnVtLCBjb2xudW1dID0gc2VhcmNocGFpcnBvcyhhOm9wZW5CcmFja2V0LCAnJywgYTpjbG9zZWRCcmFja2V0LCAnV2JuJykKKyAgY2FsbCBzZXRwb3MoJy4nLCBzYXZlZHBvcykKKyAgcmV0dXJuIFtsbnVtLCBjb2xudW1dCitlbmRmdW5jdGlvbgorCitmdW5jdGlvbiEgc2NhbGEjR2V0TGluZVRoYXRNYXRjaGVzQ3VybHkoKQorICByZXR1cm4gc2NhbGEjR2V0TGluZVRoYXRNYXRjaGVzQnJhY2tldCgneycsICd9JykKK2VuZGZ1bmN0aW9uCisKK2Z1bmN0aW9uISBzY2FsYSNHZXRMaW5lVGhhdE1hdGNoZXNQYXJlbigpCisgIHJldHVybiBzY2FsYSNHZXRMaW5lVGhhdE1hdGNoZXNCcmFja2V0KCcoJywgJyknKQorZW5kZnVuY3Rpb24KKworZnVuY3Rpb24hIHNjYWxhI0dldExpbmVUaGF0TWF0Y2hlc0JyYWNrZXQob3BlbkJyYWNrZXQsIGNsb3NlZEJyYWNrZXQpCisgIGxldCBbbG51bSwgY29sbnVtXSA9IHNjYWxhI0dldExpbmVBbmRDb2x1bW5UaGF0TWF0Y2hlc0JyYWNrZXQoYTpvcGVuQnJhY2tldCwgYTpjbG9zZWRCcmFja2V0KQorICByZXR1cm4gbG51bQorZW5kZnVuY3Rpb24KKworZnVuY3Rpb24hIHNjYWxhI051bWJlck9mQnJhY2VHcm91cHMobGluZSkKKyAgbGV0IGxpbmUgPSBzdWJzdGl0dXRlKGE6bGluZSwgJ1teKCldJywgJycsICdnJykKKyAgaWYgc3RybGVuKGxpbmUpID09IDAKKyAgICByZXR1cm4gMAorICBlbmRpZgorICBsZXQgbGluZSA9IHN1YnN0aXR1dGUobGluZSwgJ14pKicsICcnLCAnZycpCisgIGlmIHN0cmxlbihsaW5lKSA9PSAwCisgICAgcmV0dXJuIDAKKyAgZW5kaWYKKyAgbGV0IGxpbmUgPSBzdWJzdGl0dXRlKGxpbmUsICdeKCcsICcnLCAnZycpCisgIGlmIHN0cmxlbihsaW5lKSA9PSAwCisgICAgcmV0dXJuIDAKKyAgZW5kaWYKKyAgbGV0IGMgPSAxCisgIGxldCBjb3VudGVyID0gMAorICBsZXQgZ3JvdXBDb3VudCA9IDAKKyAgd2hpbGUgY291bnRlciA8IHN0cmxlbihsaW5lKQorICAgIGxldCBjaGFyID0gc3RycGFydChsaW5lLCBjb3VudGVyLCAxKQorICAgIGlmIGNoYXIgPT0gJygnCisgICAgICBsZXQgYyA9IGMgKyAxCisgICAgZWxzZWlmIGNoYXIgPT0gJyknCisgICAgICBsZXQgYyA9IGMgLSAxCisgICAgZW5kaWYKKyAgICBpZiBjID09IDAKKyAgICAgIGxldCBncm91cENvdW50ID0gZ3JvdXBDb3VudCArIDEKKyAgICBlbmRpZgorICAgIGxldCBjb3VudGVyID0gY291bnRlciArIDEKKyAgZW5kd2hpbGUKKyAgcmV0dXJuIGdyb3VwQ291bnQKK2VuZGZ1bmN0aW9uCisKK2Z1bmN0aW9uISBzY2FsYSNNYXRjaGVzSW5jb21wbGV0ZURlZlZhbHIobGluZSkKKyAgaWYgYTpsaW5lID1+ICdeXHMqXCUoJyAuIHM6ZGVmTWF0Y2hlciAuICdcfFw8dmFbbHJdXD5cKS4qWz0oe11ccyokJworICAgIHJldHVybiAxCisgIGVsc2UKKyAgICByZXR1cm4gMAorICBlbmRpZgorZW5kZnVuY3Rpb24KKworZnVuY3Rpb24hIHNjYWxhI0xpbmVJc0NvbXBsZXRlSWYobGluZSkKKyAgaWYgc2NhbGEjQ291bnRCcmFja2V0cyhhOmxpbmUsICd7JywgJ30nKSA9PSAwICYmCisgICBcIHNjYWxhI0NvdW50QnJhY2tldHMoYTpsaW5lLCAnKCcsICcpJykgPT0gMCAmJgorICAgXCBhOmxpbmUgPX4gJ15ccypcPGlmXD5ccyooW14pXSopXHMqXFMuKiQnCisgICAgcmV0dXJuIDEKKyAgZWxzZQorICAgIHJldHVybiAwCisgIGVuZGlmCitlbmRmdW5jdGlvbgorCitmdW5jdGlvbiEgc2NhbGEjTGluZUNvbXBsZXRlc0lmRWxzZShsbnVtLCBsaW5lKQorICBpZiBhOmxpbmUgPX4gJ15ccypcJShcPGlmXD5cfFwlKH1ccypcKVw/XDxlbHNlXD5cKScKKyAgICByZXR1cm4gMAorICBlbmRpZgorICBsZXQgcmVzdWx0ID0gc2VhcmNoKCdeXCUoXHMqXDxpZlw+XHMqKC4qKS4qXG5cfFxzKlw8aWZcPlxzKiguKilccypcbi4qXG5cKVwlKFxzKlw8ZWxzZVw+XHMqXDxpZlw+XHMqKC4qKVxzKlxuLipcblwpKlwlKFxzKlw8ZWxzZVw+XHMqXG5cfFxzKlw8ZWxzZVw+W157XSpcblwpXD9cJScgLiBhOmxudW0gLiAnbCcsICdXYm4nKQorICBpZiByZXN1bHQgIT0gMCAmJiBzY2FsYSNHZXRMaW5lKHByZXZub25ibGFuayhhOmxudW0gLSAxKSkgIX4gJ3tccyokJworICAgIHJldHVybiByZXN1bHQKKyAgZW5kaWYKKyAgcmV0dXJuIDAKK2VuZGZ1bmN0aW9uCisKK2Z1bmN0aW9uISBzY2FsYSNHZXRQcmV2Q29kZUxpbmUobG51bSkKKyAgIiBUaGlzIG5lZWRzIHRvIHNraXAgY29tbWVudCBsaW5lcworICByZXR1cm4gcHJldm5vbmJsYW5rKGE6bG51bSAtIDEpCitlbmRmdW5jdGlvbgorCitmdW5jdGlvbiEgc2NhbGEjSW52ZXJ0QnJhY2tldFR5cGUob3BlbkJyYWNrZXQsIGNsb3NlZEJyYWNrZXQpCisgIGlmIGE6b3BlbkJyYWNrZXQgPT0gJygnCisgICAgcmV0dXJuIFsgJ3snLCAnfScgXQorICBlbHNlCisgICAgcmV0dXJuIFsgJygnLCAnKScgXQorICBlbmRpZgorZW5kZnVuY3Rpb24KKworZnVuY3Rpb24hIHNjYWxhI1Rlc3RoZWxwZXIobG51bSwgbGluZSwgb3BlbkJyYWNrZXQsIGNsb3NlZEJyYWNrZXQsIGl0ZXJhdGlvbikKKyAgbGV0IGJyYWNrZXRDb3VudCA9IHNjYWxhI0NvdW50QnJhY2tldHMoYTpsaW5lLCBhOm9wZW5CcmFja2V0LCBhOmNsb3NlZEJyYWNrZXQpCisgICIgVGhlcmUgYXJlIG1vcmUgJ30nIGJyYWNlcyB0aGFuICd7JyBvbiB0aGlzIGxpbmUgc28gaXQgbWF5IGJlIGNvbXBsZXRpbmcgdGhlIGZ1bmN0aW9uIGRlZmluaXRpb24KKyAgaWYgYnJhY2tldENvdW50IDwgMAorICAgIGxldCBbbWF0Y2hlZExOdW0sIG1hdGNoZWRDb2xOdW1dID0gc2NhbGEjR2V0TGluZUFuZENvbHVtblRoYXRNYXRjaGVzQnJhY2tldChhOm9wZW5CcmFja2V0LCBhOmNsb3NlZEJyYWNrZXQpCisgICAgaWYgbWF0Y2hlZExOdW0gPT0gYTpsbnVtCisgICAgICByZXR1cm4gLTEKKyAgICBlbmRpZgorICAgIGxldCBtYXRjaGVkTGluZSA9IHNjYWxhI0dldExpbmUobWF0Y2hlZExOdW0pCisgICAgaWYgISBzY2FsYSNNYXRjaGVzSW5jb21wbGV0ZURlZlZhbHIobWF0Y2hlZExpbmUpCisgICAgICBsZXQgYnJhY2tldExpbmUgPSBzdWJzdGl0dXRlKHN1YnN0aXR1dGUobWF0Y2hlZExpbmUsICdcJScgLiBtYXRjaGVkQ29sTnVtIC4gJ2MuKiQnLCAnJywgJycpLCAnW157fSgpXScsICcnLCAnZycpCisgICAgICBpZiBicmFja2V0TGluZSA9fiAnfSQnCisgICAgICAgIHJldHVybiBzY2FsYSNUZXN0aGVscGVyKG1hdGNoZWRMTnVtLCBtYXRjaGVkTGluZSwgJ3snLCAnfScsIGE6aXRlcmF0aW9uICsgMSkKKyAgICAgIGVsc2VpZiBicmFja2V0TGluZSA9fiAnKSQnCisgICAgICAgIHJldHVybiBzY2FsYSNUZXN0aGVscGVyKG1hdGNoZWRMTnVtLCBtYXRjaGVkTGluZSwgJygnLCAnKScsIGE6aXRlcmF0aW9uICsgMSkKKyAgICAgIGVsc2UKKyAgICAgICAgbGV0IHByZXZDb2RlTE51bSA9IHNjYWxhI0dldFByZXZDb2RlTGluZShtYXRjaGVkTE51bSkKKyAgICAgICAgaWYgc2NhbGEjTWF0Y2hlc0luY29tcGxldGVEZWZWYWxyKHNjYWxhI0dldExpbmUocHJldkNvZGVMTnVtKSkKKyAgICAgICAgICByZXR1cm4gcHJldkNvZGVMTnVtCisgICAgICAgIGVsc2UKKyAgICAgICAgICByZXR1cm4gLTEKKyAgICAgICAgZW5kaWYKKyAgICAgIGVuZGlmCisgICAgZWxzZQorICAgICAgIiByZXR1cm4gaW5kZW50IHZhbHVlIGluc3RlYWQKKyAgICAgIHJldHVybiBtYXRjaGVkTE51bQorICAgIGVuZGlmCisgICIgVGhlcmUncyBhbiBlcXVhbCBudW1iZXIgb2YgJ3snIGFuZCAnfScgb24gdGhpcyBsaW5lIHNvIGl0IG1heSBiZSBhIHNpbmdsZSBsaW5lIGZ1bmN0aW9uIGRlZmluaXRpb24KKyAgZWxzZWlmIGJyYWNrZXRDb3VudCA9PSAwCisgICAgaWYgYTppdGVyYXRpb24gPT0gMAorICAgICAgbGV0IG90aGVyQnJhY2tldFR5cGUgPSBzY2FsYSNJbnZlcnRCcmFja2V0VHlwZShhOm9wZW5CcmFja2V0LCBhOmNsb3NlZEJyYWNrZXQpCisgICAgICByZXR1cm4gc2NhbGEjVGVzdGhlbHBlcihhOmxudW0sIGE6bGluZSwgb3RoZXJCcmFja2V0VHlwZVswXSwgb3RoZXJCcmFja2V0VHlwZVsxXSwgYTppdGVyYXRpb24gKyAxKQorICAgIGVsc2UKKyAgICAgIGxldCBwcmV2Q29kZUxOdW0gPSBzY2FsYSNHZXRQcmV2Q29kZUxpbmUoYTpsbnVtKQorICAgICAgbGV0IHByZXZDb2RlTGluZSA9IHNjYWxhI0dldExpbmUocHJldkNvZGVMTnVtKQorICAgICAgaWYgc2NhbGEjTWF0Y2hlc0luY29tcGxldGVEZWZWYWxyKHByZXZDb2RlTGluZSkgJiYgcHJldkNvZGVMaW5lICF+ICd7XHMqJCcKKyAgICAgICAgcmV0dXJuIHByZXZDb2RlTE51bQorICAgICAgZWxzZQorICAgICAgICBsZXQgcG9zc2libGVJZkVsc2UgPSBzY2FsYSNMaW5lQ29tcGxldGVzSWZFbHNlKGE6bG51bSwgYTpsaW5lKQorICAgICAgICBpZiBwb3NzaWJsZUlmRWxzZSAhPSAwCisgICAgICAgICAgbGV0IGRlZlZhbHJMaW5lID0gcHJldm5vbmJsYW5rKHBvc3NpYmxlSWZFbHNlIC0gMSkKKyAgICAgICAgICBsZXQgcG9zc2libGVEZWZWYWxyID0gc2NhbGEjR2V0TGluZShkZWZWYWxyTGluZSkKKyAgICAgICAgICBpZiBzY2FsYSNNYXRjaGVzSW5jb21wbGV0ZURlZlZhbHIocG9zc2libGVEZWZWYWxyKSAmJiBwb3NzaWJsZURlZlZhbHIgPX4gJ14uKj1ccyokJworICAgICAgICAgICAgcmV0dXJuIHBvc3NpYmxlRGVmVmFscgorICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHJldHVybiAtMQorICAgICAgICAgIGVuZGlmCisgICAgICAgIGVsc2UKKyAgICAgICAgICByZXR1cm4gLTEKKyAgICAgICAgZW5kaWYKKyAgICAgIGVuZGlmCisgICAgZW5kaWYKKyAgZWxzZQorICAgIHJldHVybiAtMQorICBlbmRpZgorZW5kZnVuY3Rpb24KKworZnVuY3Rpb24hIHNjYWxhI1Rlc3QobG51bSwgbGluZSwgb3BlbkJyYWNrZXQsIGNsb3NlZEJyYWNrZXQpCisgIHJldHVybiBzY2FsYSNUZXN0aGVscGVyKGE6bG51bSwgYTpsaW5lLCBhOm9wZW5CcmFja2V0LCBhOmNsb3NlZEJyYWNrZXQsIDApCitlbmRmdW5jdGlvbgorCitmdW5jdGlvbiEgc2NhbGEjTGluZUNvbXBsZXRlc0RlZlZhbHIobG51bSwgbGluZSkKKyAgbGV0IGJyYWNrZXRDb3VudCA9IHNjYWxhI0NvdW50QnJhY2tldHMoYTpsaW5lLCAneycsICd9JykKKyAgaWYgYnJhY2tldENvdW50IDwgMAorICAgIGxldCBtYXRjaGVkQnJhY2tldCA9IHNjYWxhI0dldExpbmVUaGF0TWF0Y2hlc0JyYWNrZXQoJ3snLCAnfScpCisgICAgaWYgISBzY2FsYSNNYXRjaGVzSW5jb21wbGV0ZURlZlZhbHIoc2NhbGEjR2V0TGluZShtYXRjaGVkQnJhY2tldCkpCisgICAgICBsZXQgcG9zc2libGVEZWZWYWxyID0gc2NhbGEjR2V0TGluZShwcmV2bm9uYmxhbmsobWF0Y2hlZEJyYWNrZXQgLSAxKSkKKyAgICAgIGlmIG1hdGNoZWRCcmFja2V0ICE9IC0xICYmIHNjYWxhI01hdGNoZXNJbmNvbXBsZXRlRGVmVmFscihwb3NzaWJsZURlZlZhbHIpCisgICAgICAgIHJldHVybiAxCisgICAgICBlbHNlCisgICAgICAgIHJldHVybiAwCisgICAgICBlbmRpZgorICAgIGVsc2UKKyAgICAgIHJldHVybiAwCisgICAgZW5kaWYKKyAgZWxzZWlmIGJyYWNrZXRDb3VudCA9PSAwCisgICAgbGV0IGJyYWNrZXRDb3VudCA9IHNjYWxhI0NvdW50QnJhY2tldHMoYTpsaW5lLCAnKCcsICcpJykKKyAgICBpZiBicmFja2V0Q291bnQgPCAwCisgICAgICBsZXQgbWF0Y2hlZEJyYWNrZXQgPSBzY2FsYSNHZXRMaW5lVGhhdE1hdGNoZXNCcmFja2V0KCcoJywgJyknKQorICAgICAgaWYgISBzY2FsYSNNYXRjaGVzSW5jb21wbGV0ZURlZlZhbHIoc2NhbGEjR2V0TGluZShtYXRjaGVkQnJhY2tldCkpCisgICAgICAgIGxldCBwb3NzaWJsZURlZlZhbHIgPSBzY2FsYSNHZXRMaW5lKHByZXZub25ibGFuayhtYXRjaGVkQnJhY2tldCAtIDEpKQorICAgICAgICBpZiBtYXRjaGVkQnJhY2tldCAhPSAtMSAmJiBzY2FsYSNNYXRjaGVzSW5jb21wbGV0ZURlZlZhbHIocG9zc2libGVEZWZWYWxyKQorICAgICAgICAgIHJldHVybiAxCisgICAgICAgIGVsc2UKKyAgICAgICAgICByZXR1cm4gMAorICAgICAgICBlbmRpZgorICAgICAgZWxzZQorICAgICAgICByZXR1cm4gMAorICAgICAgZW5kaWYKKyAgICBlbHNlaWYgYnJhY2tldENvdW50ID09IDAKKyAgICAgIGxldCBwb3NzaWJsZURlZlZhbHIgPSBzY2FsYSNHZXRMaW5lKHByZXZub25ibGFuayhhOmxudW0gLSAxKSkKKyAgICAgIGlmIHNjYWxhI01hdGNoZXNJbmNvbXBsZXRlRGVmVmFscihwb3NzaWJsZURlZlZhbHIpICYmIHBvc3NpYmxlRGVmVmFsciA9fiAnXi4qPVxzKiQnCisgICAgICAgIHJldHVybiAxCisgICAgICBlbHNlCisgICAgICAgIGxldCBwb3NzaWJsZUlmRWxzZSA9IHNjYWxhI0xpbmVDb21wbGV0ZXNJZkVsc2UoYTpsbnVtLCBhOmxpbmUpCisgICAgICAgIGlmIHBvc3NpYmxlSWZFbHNlICE9IDAKKyAgICAgICAgICBsZXQgcG9zc2libGVEZWZWYWxyID0gc2NhbGEjR2V0TGluZShwcmV2bm9uYmxhbmsocG9zc2libGVJZkVsc2UgLSAxKSkKKyAgICAgICAgICBpZiBzY2FsYSNNYXRjaGVzSW5jb21wbGV0ZURlZlZhbHIocG9zc2libGVEZWZWYWxyKSAmJiBwb3NzaWJsZURlZlZhbHIgPX4gJ14uKj1ccyokJworICAgICAgICAgICAgcmV0dXJuIDIKKyAgICAgICAgICBlbHNlCisgICAgICAgICAgICByZXR1cm4gMAorICAgICAgICAgIGVuZGlmCisgICAgICAgIGVsc2UKKyAgICAgICAgICByZXR1cm4gMAorICAgICAgICBlbmRpZgorICAgICAgZW5kaWYKKyAgICBlbHNlCisgICAgICByZXR1cm4gMAorICAgIGVuZGlmCisgIGVuZGlmCitlbmRmdW5jdGlvbgorCitmdW5jdGlvbiEgc2NhbGEjU3BlY2lmaWNMaW5lQ29tcGxldGVzQnJhY2tldHMobG51bSwgb3BlbkJyYWNrZXQsIGNsb3NlZEJyYWNrZXQpCisgIGxldCBzYXZlZHBvcyA9IGdldHBvcygnLicpCisgIGNhbGwgc2V0cG9zKCcuJywgW3NhdmVkcG9zWzBdLCBhOmxudW0sIDk5OTksIHNhdmVkcG9zWzNdXSkKKyAgbGV0IHJldHYgPSBzY2FsYSNMaW5lQ29tcGxldGVzQnJhY2tldHMoYTpvcGVuQnJhY2tldCwgYTpjbG9zZWRCcmFja2V0KQorICBjYWxsIHNldHBvcygnLicsIHNhdmVkcG9zKQorCisgIHJldHVybiByZXR2CitlbmRmdW5jdGlvbgorCitmdW5jdGlvbiEgc2NhbGEjTGluZUNvbXBsZXRlc0JyYWNrZXRzKG9wZW5CcmFja2V0LCBjbG9zZWRCcmFja2V0KQorICBsZXQgc2F2ZWRwb3MgPSBnZXRwb3MoJy4nKQorICBsZXQgb2ZmbGluZSA9IDAKKyAgd2hpbGUgb2ZmbGluZSA9PSAwCisgICAgbGV0IFtsbnVtLCBjb2xudW1dID0gc2VhcmNocG9zKGE6Y2xvc2VkQnJhY2tldCwgJ1diJykKKyAgICBsZXQgW2xudW1BLCBjb2xudW1BXSA9IHNlYXJjaHBhaXJwb3MoYTpvcGVuQnJhY2tldCwgJycsIGE6Y2xvc2VkQnJhY2tldCwgJ1dibicpCisgICAgaWYgbG51bSAhPSBsbnVtQQorICAgICAgbGV0IFtsbnVtQiwgY29sbnVtQl0gPSBzZWFyY2hwYWlycG9zKGE6b3BlbkJyYWNrZXQsICcnLCBhOmNsb3NlZEJyYWNrZXQsICdXYm5yJykKKyAgICAgIGxldCBvZmZsaW5lID0gMQorICAgIGVuZGlmCisgIGVuZHdoaWxlCisgIGNhbGwgc2V0cG9zKCcuJywgc2F2ZWRwb3MpCisgIGlmIGxudW1BID09IGxudW1CICYmIGNvbG51bUEgPT0gY29sbnVtQgorICAgIHJldHVybiBsbnVtQQorICBlbHNlCisgICAgcmV0dXJuIC0xCisgIGVuZGlmCitlbmRmdW5jdGlvbgorCitmdW5jdGlvbiEgR2V0U2NhbGFJbmRlbnQoKQorICAiIEZpbmQgYSBub24tYmxhbmsgbGluZSBhYm92ZSB0aGUgY3VycmVudCBsaW5lLgorICBsZXQgcHJldmxudW0gPSBwcmV2bm9uYmxhbmsodjpsbnVtIC0gMSkKKworICAiIEhpdCB0aGUgc3RhcnQgb2YgdGhlIGZpbGUsIHVzZSB6ZXJvIGluZGVudC4KKyAgaWYgcHJldmxudW0gPT0gMAorICAgIHJldHVybiAwCisgIGVuZGlmCisKKyAgbGV0IGluZCA9IGluZGVudChwcmV2bG51bSkKKyAgbGV0IG9yaWdpbmFsSW5kZW50VmFsdWUgPSBpbmQKKyAgbGV0IHByZXZsaW5lID0gc2NhbGEjR2V0TGluZShwcmV2bG51bSkKKyAgbGV0IGN1cmxudW0gPSB2OmxudW0KKyAgbGV0IGN1cmxpbmUgPSBzY2FsYSNHZXRMaW5lKGN1cmxudW0pCisgIGlmIGdldChnOiwgJ3NjYWxhX3NjYWxhZG9jX2luZGVudCcsIDApCisgICAgbGV0IHN0YXJfaW5kZW50ID0gMgorICBlbHNlCisgICAgbGV0IHN0YXJfaW5kZW50ID0gMQorICBlbmQKKworICBpZiBwcmV2bGluZSA9fiAnXlxzKi9cKlwqJworICAgIGlmIHByZXZsaW5lID1+ICdcKi9ccyokJworICAgICAgcmV0dXJuIGluZAorICAgIGVsc2UKKyAgICAgIHJldHVybiBpbmQgKyBzdGFyX2luZGVudAorICAgIGVuZGlmCisgIGVuZGlmCisKKyAgaWYgY3VybGluZSA9fiAnXlxzKlwqJworICAgIHJldHVybiBjaW5kZW50KGN1cmxudW0pCisgIGVuZGlmCisKKyAgIiBJZiB0aGlzIGxpbmUgc3RhcnRzIHdpdGggYSB7IHRoZW4gbWFrZSBpdCBpbmRlbnQgdGhlIHNhbWUgYXMgdGhlIHByZXZpb3VzIGxpbmUKKyAgaWYgY3VybGluZSA9fiAnXlxzKnsnCisgICAgY2FsbCBzY2FsYSNDb25kaXRpb25hbENvbmZpcm0oIjEiKQorICAgICIgVW5sZXNzLCBvZiBjb3Vyc2UsIHRoZSBwcmV2aW91cyBvbmUgaXMgYSB7IGFzIHdlbGwKKyAgICBpZiBwcmV2bGluZSAhfiAnXlxzKnsnCisgICAgICBjYWxsIHNjYWxhI0NvbmRpdGlvbmFsQ29uZmlybSgiMiIpCisgICAgICByZXR1cm4gaW5kZW50KHByZXZsbnVtKQorICAgIGVuZGlmCisgIGVuZGlmCisKKyAgIiAnLicgY29udGludWF0aW9ucworICBpZiBjdXJsaW5lID1+ICdeXHMqXC4nCisgICAgaWYgcHJldmxpbmUgPX4gJ15ccypcLicKKyAgICAgIHJldHVybiBpbmQKKyAgICBlbHNlCisgICAgICByZXR1cm4gaW5kICsgJnNoaWZ0d2lkdGgKKyAgICBlbmRpZgorICBlbmRpZgorCisgICIgSW5kZW50IGh0bWwgbGl0ZXJhbHMKKyAgaWYgcHJldmxpbmUgIX4gJy8+XHMqJCcgJiYgcHJldmxpbmUgPX4gJ15ccyo8W2EtekEtWl1bXj5dKj5ccyokJworICAgIGNhbGwgc2NhbGEjQ29uZGl0aW9uYWxDb25maXJtKCIzIikKKyAgICByZXR1cm4gaW5kICsgJnNoaWZ0d2lkdGgKKyAgZW5kaWYKKworICAiIGFzc3VtZXMgY3VybHkgYnJhY2VzIGFyb3VuZCB0cnktYmxvY2sKKyAgaWYgY3VybGluZSA9fiAnXlxzKn1ccypcPGNhdGNoXD4nCisgICAgcmV0dXJuIGluZCAtICZzaGlmdHdpZHRoCisgIGVsc2VpZiBjdXJsaW5lID1+ICdeXHMqXDxjYXRjaFw+JworICAgIHJldHVybiBpbmQKKyAgZW5kaWYKKworICAiIEFkZCBhICdzaGlmdHdpZHRoJyBhZnRlciBsaW5lcyB0aGF0IHN0YXJ0IGEgYmxvY2sKKyAgIiBJZiAnaWYnLCAnZm9yJyBvciAnd2hpbGUnIGVuZCB3aXRoICksIHRoaXMgaXMgYSBvbmUtbGluZSBibG9jaworICAiIElmICd2YWwnLCAndmFyJywgJ2RlZicgZW5kIHdpdGggPSwgdGhpcyBpcyBhIG9uZS1saW5lIGJsb2NrCisgIGlmIChwcmV2bGluZSA9fiAnXlxzKlw8XCUoXCUofVw/XHMqZWxzZVxzXCtcKVw/aWZcfGZvclx8d2hpbGVcKVw+LipbKT1dXHMqJCcgJiYgc2NhbGEjTnVtYmVyT2ZCcmFjZUdyb3VwcyhwcmV2bGluZSkgPD0gMSkKKyAgICAgICAgXCB8fCBwcmV2bGluZSA9fiAnXlxzKicgLiBzOmRlZk1hdGNoZXIgLiAnLio9XHMqJCcKKyAgICAgICAgXCB8fCBwcmV2bGluZSA9fiAnXlxzKlw8dmFbbHJdXD4uKls9XVxzKiQnCisgICAgICAgIFwgfHwgcHJldmxpbmUgPX4gJ15ccypcJSh9XHMqXClcP1w8ZWxzZVw+XHMqJCcKKyAgICAgICAgXCB8fCBwcmV2bGluZSA9fiAnPVxzKiQnCisgICAgY2FsbCBzY2FsYSNDb25kaXRpb25hbENvbmZpcm0oIjQiKQorICAgIGxldCBpbmQgPSBpbmQgKyAmc2hpZnR3aWR0aAorICBlbHNlaWYgcHJldmxpbmUgPX4gJ15ccypcPFwlKH1cP1xzKmVsc2Vcc1wrXClcP2lmXD4nICYmIGN1cmxpbmUgPX4gJ15ccyp9XD9ccypcPGVsc2VcPicKKyAgICByZXR1cm4gaW5kCisgIGVuZGlmCisKKyAgbGV0IGxpbmVDb21wbGV0ZWRCcmFja2V0cyA9IDAKKyAgbGV0IGJyYWNrZXRDb3VudCA9IHNjYWxhI0NvdW50QnJhY2tldHMocHJldmxpbmUsICd7JywgJ30nKQorICBpZiBicmFja2V0Q291bnQgPiAwIHx8IHByZXZsaW5lID1+ICcuKntccyokJworICAgIGNhbGwgc2NhbGEjQ29uZGl0aW9uYWxDb25maXJtKCI1YiIpCisgICAgbGV0IGluZCA9IGluZCArICZzaGlmdHdpZHRoCisgIGVsc2VpZiBicmFja2V0Q291bnQgPCAwCisgICAgY2FsbCBzY2FsYSNDb25kaXRpb25hbENvbmZpcm0oIjZiIikKKyAgICAiIGlmIHRoZSBjbG9zaW5nIGJyYWNlIGFjdHVhbGx5IGNvbXBsZXRlcyB0aGUgYnJhY2VzIGVudGlyZWx5LCB0aGVuIHdlCisgICAgIiBoYXZlIHRvIGluZGVudCB0byBsaW5lIHRoYXQgc3RhcnRlZCB0aGUgd2hvbGUgdGhpbmcKKyAgICBsZXQgY29tcGxldGVMaW5lID0gc2NhbGEjTGluZUNvbXBsZXRlc0JyYWNrZXRzKCd7JywgJ30nKQorICAgIGlmIGNvbXBsZXRlTGluZSAhPSAtMQorICAgICAgY2FsbCBzY2FsYSNDb25kaXRpb25hbENvbmZpcm0oIjhiIikKKyAgICAgIGxldCBwcmV2Q29tcGxldGVMaW5lID0gc2NhbGEjR2V0TGluZShwcmV2bm9uYmxhbmsoY29tcGxldGVMaW5lIC0gMSkpCisgICAgICAiIEhvd2V2ZXIsIHdoYXQgYWN0dWFsbHkgc3RhcnRlZCB0aGlzIHBhcnQgbG9va3MgbGlrZSBpdCB3YXMgYSBmdW5jdGlvbgorICAgICAgIiBkZWZpbml0aW9uLCBzbyB3ZSBuZWVkIHRvIGluZGVudCB0byB0aGF0IGxpbmUgaW5zdGVhZC4gIFRoaXMgaXMKKyAgICAgICIgYWN0dWFsbHkgcHJldHR5IHdlYWsgYXQgdGhlIG1vbWVudC4KKyAgICAgIGlmIHByZXZDb21wbGV0ZUxpbmUgPX4gJz1ccyokJworICAgICAgICBjYWxsIHNjYWxhI0NvbmRpdGlvbmFsQ29uZmlybSgiOWIiKQorICAgICAgICBsZXQgaW5kID0gaW5kZW50KHByZXZub25ibGFuayhjb21wbGV0ZUxpbmUgLSAxKSkKKyAgICAgIGVsc2UKKyAgICAgICAgY2FsbCBzY2FsYSNDb25kaXRpb25hbENvbmZpcm0oIjEwYiIpCisgICAgICAgIGxldCBpbmQgPSBpbmRlbnQoY29tcGxldGVMaW5lKQorICAgICAgZW5kaWYKKyAgICBlbHNlCisgICAgICBsZXQgbGluZUNvbXBsZXRlZEJyYWNrZXRzID0gMQorICAgIGVuZGlmCisgIGVuZGlmCisKKyAgaWYgaW5kID09IG9yaWdpbmFsSW5kZW50VmFsdWUKKyAgICBsZXQgYnJhY2tldENvdW50ID0gc2NhbGEjQ291bnRCcmFja2V0cyhwcmV2bGluZSwgJygnLCAnKScpCisgICAgaWYgYnJhY2tldENvdW50ID4gMCB8fCBwcmV2bGluZSA9fiAnLiooXHMqJCcKKyAgICAgIGNhbGwgc2NhbGEjQ29uZGl0aW9uYWxDb25maXJtKCI1YSIpCisgICAgICBsZXQgaW5kID0gaW5kICsgJnNoaWZ0d2lkdGgKKyAgICBlbHNlaWYgYnJhY2tldENvdW50IDwgMAorICAgICAgY2FsbCBzY2FsYSNDb25kaXRpb25hbENvbmZpcm0oIjZhIikKKyAgICAgICIgaWYgdGhlIGNsb3NpbmcgYnJhY2UgYWN0dWFsbHkgY29tcGxldGVzIHRoZSBicmFjZXMgZW50aXJlbHksIHRoZW4gd2UKKyAgICAgICIgaGF2ZSB0byBpbmRlbnQgdG8gbGluZSB0aGF0IHN0YXJ0ZWQgdGhlIHdob2xlIHRoaW5nCisgICAgICBsZXQgY29tcGxldGVMaW5lID0gc2NhbGEjTGluZUNvbXBsZXRlc0JyYWNrZXRzKCcoJywgJyknKQorICAgICAgaWYgY29tcGxldGVMaW5lICE9IC0xICYmIHByZXZsaW5lICF+ICdeLip7XHMqJCcKKyAgICAgICAgY2FsbCBzY2FsYSNDb25kaXRpb25hbENvbmZpcm0oIjhhIikKKyAgICAgICAgbGV0IHByZXZDb21wbGV0ZUxpbmUgPSBzY2FsYSNHZXRMaW5lKHByZXZub25ibGFuayhjb21wbGV0ZUxpbmUgLSAxKSkKKyAgICAgICAgIiBIb3dldmVyLCB3aGF0IGFjdHVhbGx5IHN0YXJ0ZWQgdGhpcyBwYXJ0IGxvb2tzIGxpa2UgaXQgd2FzIGEgZnVuY3Rpb24KKyAgICAgICAgIiBkZWZpbml0aW9uLCBzbyB3ZSBuZWVkIHRvIGluZGVudCB0byB0aGF0IGxpbmUgaW5zdGVhZC4gIFRoaXMgaXMKKyAgICAgICAgIiBhY3R1YWxseSBwcmV0dHkgd2VhayBhdCB0aGUgbW9tZW50LgorICAgICAgICBpZiBwcmV2Q29tcGxldGVMaW5lID1+ICc9XHMqJCcKKyAgICAgICAgICBjYWxsIHNjYWxhI0NvbmRpdGlvbmFsQ29uZmlybSgiOWEiKQorICAgICAgICAgIGxldCBpbmQgPSBpbmRlbnQocHJldm5vbmJsYW5rKGNvbXBsZXRlTGluZSAtIDEpKQorICAgICAgICBlbHNlCisgICAgICAgICAgY2FsbCBzY2FsYSNDb25kaXRpb25hbENvbmZpcm0oIjEwYSIpCisgICAgICAgICAgbGV0IGluZCA9IGluZGVudChjb21wbGV0ZUxpbmUpCisgICAgICAgIGVuZGlmCisgICAgICBlbHNlCisgICAgICAgICIgVGhpcyBpcyB0aGUgb25seSBwYXJ0IHRoYXQncyBkaWZmZXJlbnQgZnJvbSBmcm9tIHRoZSAneycsICd9JyBvbmUgYmVsb3cKKyAgICAgICAgIiBZdXAuLi4gc29tZSByZWZhY3RvcmluZyBpcyBuZWNlc3NhcnkgYXQgc29tZSBwb2ludC4KKyAgICAgICAgbGV0IGluZCA9IGluZCArIChicmFja2V0Q291bnQgKiAmc2hpZnR3aWR0aCkKKyAgICAgICAgbGV0IGxpbmVDb21wbGV0ZWRCcmFja2V0cyA9IDEKKyAgICAgIGVuZGlmCisgICAgZW5kaWYKKyAgZW5kaWYKKworICBpZiBjdXJsaW5lID1+ICdeXHMqfVw/XHMqXDxlbHNlXD5cJShcc1wrXDxpZlw+XHMqKC4qKVwpXD9ccyp7XD9ccyokJyAmJgorICAgXCAhIHNjYWxhI0xpbmVJc0NvbXBsZXRlSWYocHJldmxpbmUpICYmCisgICBcIHByZXZsaW5lICF+ICdeLip9XHMqJCcKKyAgICBsZXQgaW5kID0gaW5kIC0gJnNoaWZ0d2lkdGgKKyAgZW5kaWYKKworICAiIFN1YnRyYWN0IGEgJ3NoaWZ0d2lkdGgnIG9uICd9JyBvciBodG1sCisgIGxldCBjdXJDdXJseUNvdW50ID0gc2NhbGEjQ291bnRDdXJsaWVzKGN1cmxpbmUpCisgIGlmIGN1ckN1cmx5Q291bnQgPCAwCisgICAgY2FsbCBzY2FsYSNDb25kaXRpb25hbENvbmZpcm0oIjE0YSIpCisgICAgbGV0IG1hdGNobGluZSA9IHNjYWxhI0N1cmx5TWF0Y2hlcigpCisgICAgcmV0dXJuIGluZGVudChtYXRjaGxpbmUpCisgIGVsc2VpZiBjdXJsaW5lID1+ICdeXHMqPC9bYS16QS1aXVtePl0qPicKKyAgICBjYWxsIHNjYWxhI0NvbmRpdGlvbmFsQ29uZmlybSgiMTRjIikKKyAgICByZXR1cm4gaW5kIC0gJnNoaWZ0d2lkdGgKKyAgZW5kaWYKKworICBsZXQgcHJldlBhcmVuQ291bnQgPSBzY2FsYSNDb3VudFBhcmVucyhwcmV2bGluZSkKKyAgaWYgcHJldmxpbmUgPX4gJ15ccypcPGZvclw+LiokJyAmJiBwcmV2UGFyZW5Db3VudCA+IDAKKyAgICBjYWxsIHNjYWxhI0NvbmRpdGlvbmFsQ29uZmlybSgiMTUiKQorICAgIGxldCBpbmQgPSBpbmRlbnQocHJldmxudW0pICsgNQorICBlbmRpZgorCisgIGxldCBwcmV2Q3VybHlDb3VudCA9IHNjYWxhI0NvdW50Q3VybGllcyhwcmV2bGluZSkKKyAgaWYgcHJldkN1cmx5Q291bnQgPT0gMCAmJiBwcmV2bGluZSA9fiAnXi4qXCUoPT5cfOKHklwpXHMqJCcgJiYgcHJldmxpbmUgIX4gJ15ccyp0aGlzXHMqOi4qXCUoPT5cfOKHklwpXHMqJCcgJiYgY3VybGluZSAhfiAnXlxzKlw8Y2FzZVw+JworICAgIGNhbGwgc2NhbGEjQ29uZGl0aW9uYWxDb25maXJtKCIxNiIpCisgICAgbGV0IGluZCA9IGluZCArICZzaGlmdHdpZHRoCisgIGVuZGlmCisKKyAgaWYgaW5kID09IG9yaWdpbmFsSW5kZW50VmFsdWUgJiYgY3VybGluZSA9fiAnXlxzKlw8Y2FzZVw+JworICAgIGNhbGwgc2NhbGEjQ29uZGl0aW9uYWxDb25maXJtKCIxNyIpCisgICAgbGV0IHBhcmVudENhc2UgPSBzY2FsYSNJc1BhcmVudENhc2UoKQorICAgIGlmIHBhcmVudENhc2UgIT0gLTEKKyAgICAgIGNhbGwgc2NhbGEjQ29uZGl0aW9uYWxDb25maXJtKCIxN2EiKQorICAgICAgcmV0dXJuIGluZGVudChwYXJlbnRDYXNlKQorICAgIGVuZGlmCisgIGVuZGlmCisKKyAgaWYgcHJldmxpbmUgPX4gJ15ccypcKi8nCisgICBcIHx8IHByZXZsaW5lID1+ICcqL1xzKiQnCisgICAgY2FsbCBzY2FsYSNDb25kaXRpb25hbENvbmZpcm0oIjE4IikKKyAgICBsZXQgaW5kID0gaW5kIC0gc3Rhcl9pbmRlbnQKKyAgZW5kaWYKKworICBpZiBzY2FsYSNMaW5lRW5kc0luSW5jb21wbGV0ZShwcmV2bGluZSkKKyAgICBjYWxsIHNjYWxhI0NvbmRpdGlvbmFsQ29uZmlybSgiMTkiKQorICAgIHJldHVybiBpbmQKKyAgZW5kaWYKKworICBpZiBzY2FsYSNMaW5lSXNBQ2xvc2luZ1hNTChwcmV2bGluZSkKKyAgICBpZiBzY2FsYSNMaW5lQ29tcGxldGVzWE1MKHByZXZsbnVtLCBwcmV2bGluZSkKKyAgICAgIGNhbGwgc2NhbGEjQ29uZGl0aW9uYWxDb25maXJtKCIyMGEiKQorICAgICAgcmV0dXJuIGluZCAtICZzaGlmdHdpZHRoCisgICAgZWxzZQorICAgICAgY2FsbCBzY2FsYSNDb25kaXRpb25hbENvbmZpcm0oIjIwYiIpCisgICAgICByZXR1cm4gaW5kCisgICAgZW5kaWYKKyAgZW5kaWYKKworICBpZiBpbmQgPT0gb3JpZ2luYWxJbmRlbnRWYWx1ZQorICAgICJsZXQgaW5kZW50TXVsdGlwbGllciA9IHNjYWxhI0xpbmVDb21wbGV0ZXNEZWZWYWxyKHByZXZsbnVtLCBwcmV2bGluZSkKKyAgICAiaWYgaW5kZW50TXVsdGlwbGllciAhPSAwCisgICAgIiAgY2FsbCBzY2FsYSNDb25kaXRpb25hbENvbmZpcm0oIjE5YSIpCisgICAgIiAgbGV0IGluZCA9IGluZCAtIChpbmRlbnRNdWx0aXBsaWVyICogJnNoaWZ0d2lkdGgpCisgICAgbGV0IGRlZlZhbHJMaW5lID0gc2NhbGEjVGVzdChwcmV2bG51bSwgcHJldmxpbmUsICd7JywgJ30nKQorICAgIGlmIGRlZlZhbHJMaW5lICE9IC0xCisgICAgICBjYWxsIHNjYWxhI0NvbmRpdGlvbmFsQ29uZmlybSgiMjFhIikKKyAgICAgIGxldCBpbmQgPSBpbmRlbnQoZGVmVmFsckxpbmUpCisgICAgZWxzZWlmIGxpbmVDb21wbGV0ZWRCcmFja2V0cyA9PSAwCisgICAgICBjYWxsIHNjYWxhI0NvbmRpdGlvbmFsQ29uZmlybSgiMjFiIikKKyAgICAgIGlmIHNjYWxhI0dldExpbmUocHJldm5vbmJsYW5rKHByZXZsbnVtIC0gMSkpID1+ICdeLipcPGVsc2VcPlxzKlwlKC8vLipcKVw/JCcKKyAgICAgICAgY2FsbCBzY2FsYSNDb25kaXRpb25hbENvbmZpcm0oIjIxYyIpCisgICAgICAgIGxldCBpbmQgPSBpbmQgLSAmc2hpZnR3aWR0aAorICAgICAgZWxzZWlmIHNjYWxhI0xpbmVDb21wbGV0ZXNJZkVsc2UocHJldmxudW0sIHByZXZsaW5lKQorICAgICAgICBjYWxsIHNjYWxhI0NvbmRpdGlvbmFsQ29uZmlybSgiMjFkIikKKyAgICAgICAgbGV0IGluZCA9IGluZCAtICZzaGlmdHdpZHRoCisgICAgICBlbHNlaWYgc2NhbGEjQ291bnRQYXJlbnMoY3VybGluZSkgPCAwICYmIGN1cmxpbmUgPX4gJ15ccyopJyAmJiBzY2FsYSNHZXRMaW5lKHNjYWxhI0dldExpbmVUaGF0TWF0Y2hlc0JyYWNrZXQoJygnLCAnKScpKSA9fiAnLiooXHMqJCcKKyAgICAgICAgIiBIYW5kbGVzIHNpdHVhdGlvbnMgdGhhdCBsb29rIGxpa2UgdGhpczoKKyAgICAgICAgIgorICAgICAgICAiICAgdmFsIGEgPSBmdW5jKAorICAgICAgICAiICAgICAxMAorICAgICAgICAiICAgKQorICAgICAgICAiCisgICAgICAgICIgb3IKKyAgICAgICAgIgorICAgICAgICAiICAgdmFsIGEgPSBmdW5jKAorICAgICAgICAiICAgICAxMAorICAgICAgICAiICAgKS5zb21ldGhpbmdIZXJlKCkKKyAgICAgICAgY2FsbCBzY2FsYSNDb25kaXRpb25hbENvbmZpcm0oIjIxZSIpCisgICAgICAgIGxldCBpbmQgPSBpbmQgLSAmc2hpZnR3aWR0aAorICAgICAgZW5kaWYKKyAgICBlbmRpZgorICBlbmRpZgorCisgIGNhbGwgc2NhbGEjQ29uZGl0aW9uYWxDb25maXJtKCJyZXR1cm5pbmcgIiAuIGluZCkKKworICByZXR1cm4gaW5kCitlbmRmdW5jdGlvbgorCitsZXQgJmNwbyA9IHM6a2VlcGNwbwordW5sZXQgczprZWVwY3BvCisKKyIgdmltOnNldCBzdz0yIHN0cz0yIHRzPTggZXQ6CisiIHZpbTYwMDpmZG09bWFya2VyIGZkbD0xIGZkYz0wOgpkaWZmIC0tZ2l0IGEvcnVudGltZS9rZXltYXAvcGlueWluLnZpbSBiL3J1bnRpbWUva2V5bWFwL3Bpbnlpbi52aW0KaW5kZXggNzU3ODUwYi4uMjUzODE0YyAxMDA2NDQKLS0tIGEvcnVudGltZS9rZXltYXAvcGlueWluLnZpbQorKysgYi9ydW50aW1lL2tleW1hcC9waW55aW4udmltCkBAIC0xLDUgKzEsNSBAQAogIiBWaW0gS2V5bWFwIGZpbGUgZm9yIEhhbnl1IFBpbnlpbiB0b25lIG1hcmtzIHRocm91Z2ggbnVtYmVycy4KLSIgTWFpbnRhaW5lcjogRnJlZHJpayBSb3ViZXJ0IDxyb3ViZXJ0QGRmLmx0aC5zZT4KKyIgTWFpbnRhaW5lcjogRnJlZHJpayBSb3ViZXJ0IDxmcmVkcmlrQHJvdWJlcnQubmFtZT4KICIgTGFzdCBDaGFuZ2VkOiBGZWJydWFyeSAxNSwgMjAwNAogCiAiIEFsbCBjaGFyYWN0ZXJzIGFyZSBnaXZlbiBsaXRlcmFsbHkuCmRpZmYgLS1naXQgYS9ydW50aW1lL29wdHdpbi52aW0gYi9ydW50aW1lL29wdHdpbi52aW0KaW5kZXggOWEwZmNkMS4uZDc1OWMwNCAxMDA2NDQKLS0tIGEvcnVudGltZS9vcHR3aW4udmltCisrKyBiL3J1bnRpbWUvb3B0d2luLnZpbQpAQCAtMSw3ICsxLDcgQEAKICIgVGhlc2UgY29tbWFuZHMgY3JlYXRlIHRoZSBvcHRpb24gd2luZG93LgogIgogIiBNYWludGFpbmVyOglCcmFtIE1vb2xlbmFhciA8QnJhbUB2aW0ub3JnPgotIiBMYXN0IENoYW5nZToJMjAxNiBBdWcgMTIKKyIgTGFzdCBDaGFuZ2U6CTIwMTYgQXVnIDIxCiAKICIgSWYgdGhlcmUgYWxyZWFkeSBpcyBhbiBvcHRpb24gd2luZG93LCBqdW1wIHRvIHRoYXQgb25lLgogaWYgYnVmd2lubnIoIm9wdGlvbi13aW5kb3ciKSA+IDAKQEAgLTEyMDMsOCArMTIwMyw4IEBACiBpZiBoYXMoImxhbmdtYXAiKQogICBjYWxsIGFwcGVuZCgiJCIsICJsYW5nbWFwXHRsaXN0IG9mIGNoYXJhY3RlcnMgdGhhdCBhcmUgdHJhbnNsYXRlZCBpbiBOb3JtYWwgbW9kZSIpCiAgIGNhbGwgPFNJRD5PcHRpb25HKCJsbWFwIiwgJmxtYXApCi0gIGNhbGwgYXBwZW5kKCIkIiwgImxhbmdub3JlbWFwXHRkb24ndCBhcHBseSAnbGFuZ21hcCcgdG8gbWFwcGVkIGNoYXJhY3RlcnMiKQotICBjYWxsIDxTSUQ+QmluT3B0aW9uRygibG5yIiwgJmxucikKKyAgY2FsbCBhcHBlbmQoIiQiLCAibGFuZ3JlbWFwXHRhcHBseSAnbGFuZ21hcCcgdG8gbWFwcGVkIGNoYXJhY3RlcnMiKQorICBjYWxsIDxTSUQ+QmluT3B0aW9uRygibHJtIiwgJmxybSkKIGVuZGlmCiBpZiBoYXMoInhpbSIpCiAgIGNhbGwgYXBwZW5kKCIkIiwgImltZGlzYWJsZVx0d2hlbiBzZXQgbmV2ZXIgdXNlIElNOyBvdmVycnVsZXMgZm9sbG93aW5nIElNIG9wdGlvbnMiKQpkaWZmIC0tZ2l0IGEvcnVudGltZS9wYWNrL2Rpc3Qvb3B0L21hdGNoaXQvcGx1Z2luL21hdGNoaXQudmltIGIvcnVudGltZS9wYWNrL2Rpc3Qvb3B0L21hdGNoaXQvcGx1Z2luL21hdGNoaXQudmltCmluZGV4IDQyYTZjM2UuLjIyYWNiMDYgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvcGFjay9kaXN0L29wdC9tYXRjaGl0L3BsdWdpbi9tYXRjaGl0LnZpbQorKysgYi9ydW50aW1lL3BhY2svZGlzdC9vcHQvbWF0Y2hpdC9wbHVnaW4vbWF0Y2hpdC52aW0KQEAgLTEsOCArMSw5IEBACiAiICBtYXRjaGl0LnZpbTogKGdsb2JhbCBwbHVnaW4pIEV4dGVuZGVkICIlIiBtYXRjaGluZwotIiAgTGFzdCBDaGFuZ2U6IEZyaSBKYW4gMjUgMTA6MDAgQU0gMjAwOCBFU1QKKyIgIExhc3QgQ2hhbmdlOiAyMDE2IEF1ZyAyMQogIiAgTWFpbnRhaW5lcjogIEJlbmppIEZpc2hlciBQaEQgICA8YmVuamlAbWVtYmVyLkFNUy5vcmc+CiAiICBWZXJzaW9uOiAgICAgMS4xMy4yLCBmb3IgVmltIDYuMysKICIJCUZpeCBmcm9tIEZlcm5hbmRvIFRvcnJlcyBpbmNsdWRlZC4KKyIJCUltcHJvdmVtZW50IGZyb20gS2VuIFRha2F0YSBpbmNsdWRlZC4KICIgIFVSTDoJCWh0dHA6Ly93d3cudmltLm9yZy9zY3JpcHQucGhwP3NjcmlwdF9pZD0zOQogCiAiIERvY3VtZW50YXRpb246CkBAIC00NCw2ICs0NSw3IEBACiBsZXQgbG9hZGVkX21hdGNoaXQgPSAxCiBsZXQgczpsYXN0X21wcyA9ICIiCiBsZXQgczpsYXN0X3dvcmRzID0gIjoiCitsZXQgczpwYXRCUiA9ICIiCiAKIGxldCBzOnNhdmVfY3BvID0gJmNwbwogc2V0IGNwbyZ2aW0KQEAgLTEyMSw4ICsxMjMsOCBAQAogICAgIGV4ZWN1dGUgImxldCBtYXRjaF93b3JkcyA9IiBiOm1hdGNoX3dvcmRzCiAgIGVuZGlmCiAiIFRoYW5rcyB0byBQcmViZW4gIlBlcHBlIiBHdWxkYmVyZyBhbmQgQnJhbSBNb29sZW5hYXIgZm9yIHRoaXMgc3VnZ2VzdGlvbiEKLSAgaWYgKG1hdGNoX3dvcmRzICE9IHM6bGFzdF93b3JkcykgfHwgKCZtcHMgIT0gczpsYXN0X21wcykgfHwKLSAgICBcIGV4aXN0cygiYjptYXRjaF9kZWJ1ZyIpCisgIGlmIChtYXRjaF93b3JkcyAhPSBzOmxhc3Rfd29yZHMpIHx8ICgmbXBzICE9IHM6bGFzdF9tcHMpCisgICAgICBcIHx8IGV4aXN0cygiYjptYXRjaF9kZWJ1ZyIpCiAgICAgbGV0IHM6bGFzdF9tcHMgPSAmbXBzCiAgICAgIiBUaGUgbmV4dCBzZXZlcmFsIGxpbmVzIHdlcmUgaGVyZSBiZWZvcmUKICAgICAiIEJGIHN0YXJ0ZWQgbWVzc2luZyB3aXRoIHRoaXMgc2NyaXB0LgpAQCAtMTQ4LDYgKzE1MCwxMCBAQAogICAgIGlmIGV4aXN0cygiYjptYXRjaF9kZWJ1ZyIpCiAgICAgICBsZXQgYjptYXRjaF9wYXQgPSBzOnBhdAogICAgIGVuZGlmCisgICAgIiBSZWNvbnN0cnVjdCB0aGUgdmVyc2lvbiB3aXRoIHVucmVzb2x2ZWQgYmFja3JlZnMuCisgICAgbGV0IHM6cGF0QlIgPSBzdWJzdGl0dXRlKG1hdGNoX3dvcmRzLicsJywKKyAgICAgIFwgczpub3RzbGFzaC4nXHpzWyw6XSosWyw6XSonLCAnLCcsICdnJykKKyAgICBsZXQgczpwYXRCUiA9IHN1YnN0aXR1dGUoczpwYXRCUiwgczpub3RzbGFzaC4nXHpzOlx7Mix9JywgJzonLCAnZycpCiAgIGVuZGlmCiAKICAgIiBTZWNvbmQgc3RlcDogIHNldCB0aGUgZm9sbG93aW5nIGxvY2FsIHZhcmlhYmxlczoKQEAgLTE5MiwxNCArMTk4LDEwIEBACiAgICIgZ3JvdXAgPSBjb2xvbi1zZXBhcmF0ZWQgbGlzdCBvZiBwYXR0ZXJucywgb25lIG9mIHdoaWNoIG1hdGNoZXMKICAgIiAgICAgICA9IGluaTptaWQ6ZmluIG9yIGluaTpmaW4KICAgIgotICAiIFJlY29uc3RydWN0IHRoZSB2ZXJzaW9uIHdpdGggdW5yZXNvbHZlZCBiYWNrcmVmcy4KLSAgbGV0IHBhdEJSID0gc3Vic3RpdHV0ZShtYXRjaF93b3Jkcy4nLCcsCi0gICAgXCBzOm5vdHNsYXNoLidcenNbLDpdKixbLDpdKicsICcsJywgJ2cnKQotICBsZXQgcGF0QlIgPSBzdWJzdGl0dXRlKHBhdEJSLCBzOm5vdHNsYXNoLidcenM6XHsyLH0nLCAnOicsICdnJykKICAgIiBOb3csIHNldCBncm91cCBhbmQgZ3JvdXBCUiB0byB0aGUgbWF0Y2hpbmcgZ3JvdXA6ICdpZjplbmRpZicgb3IKICAgIiAnd2hpbGU6ZW5kd2hpbGUnIG9yIHdoYXRldmVyLiAgQSBiaXQgb2YgYSBrbHVnZTogIHM6Q2hvb3NlKCkgcmV0dXJucwogICAiIGdyb3VwIC4gIiwiIC4gZ3JvdXBCUiwgYW5kIHdlIHBpY2sgaXQgYXBhcnQuCi0gIGxldCBncm91cCA9IHM6Q2hvb3NlKHM6cGF0LCBtYXRjaGxpbmUsICIsIiwgIjoiLCBwcmVmaXgsIHN1ZmZpeCwgcGF0QlIpCisgIGxldCBncm91cCA9IHM6Q2hvb3NlKHM6cGF0LCBtYXRjaGxpbmUsICIsIiwgIjoiLCBwcmVmaXgsIHN1ZmZpeCwgczpwYXRCUikKICAgbGV0IGkgPSBtYXRjaGVuZChncm91cCwgczpub3RzbGFzaCAuICIsIikKICAgbGV0IGdyb3VwQlIgPSBzdHJwYXJ0KGdyb3VwLCBpKQogICBsZXQgZ3JvdXAgPSBzdHJwYXJ0KGdyb3VwLCAwLCBpLTEpCkBAIC02NjEsNiArNjYzLDcgQEAKICAgICBcIGV4aXN0cygiYjptYXRjaF9kZWJ1ZyIpCiAgICAgbGV0IHM6bGFzdF93b3JkcyA9IG1hdGNoX3dvcmRzCiAgICAgbGV0IHM6bGFzdF9tcHMgPSAmbXBzCisgICAgbGV0IG1hdGNoX3dvcmRzID0gbWF0Y2hfd29yZHMgLiAoc3RybGVuKG1hdGNoX3dvcmRzKSA/ICIsIiA6ICIiKSAuIGRlZmF1bHQKICAgICBpZiBtYXRjaF93b3JkcyAhfiBzOm5vdHNsYXNoIC4gJ1xcXGQnCiAgICAgICBsZXQgczpkb19CUiA9IDAKICAgICAgIGxldCBzOnBhdCA9IG1hdGNoX3dvcmRzCkBAIC02NjgsOCArNjcxLDggQEAKICAgICAgIGxldCBzOmRvX0JSID0gMQogICAgICAgbGV0IHM6cGF0ID0gczpQYXJzZVdvcmRzKG1hdGNoX3dvcmRzKQogICAgIGVuZGlmCi0gICAgbGV0IHM6YWxsID0gJ1wlKCcgLiBzdWJzdGl0dXRlKHM6cGF0IC4gKHN0cmxlbihzOnBhdCk/IiwiOiIiKSAuIGRlZmF1bHQsCi0gICAgICBcCSdbLDpdXCsnLCdcXHwnLCdnJykgLiAnXCknCisgICAgbGV0IHM6YWxsID0gJ1wlKCcgLiBzdWJzdGl0dXRlKHM6cGF0IC4gKHN0cmxlbihzOnBhdCkgPyAiLCIgOiAiIikgLiBkZWZhdWx0LAorCVwgJ1ssOl1cKycsICdcXHwnLCAnZycpIC4gJ1wpJwogICAgIGlmIGV4aXN0cygiYjptYXRjaF9kZWJ1ZyIpCiAgICAgICBsZXQgYjptYXRjaF9wYXQgPSBzOnBhdAogICAgIGVuZGlmCmRpZmYgLS1naXQgYS9ydW50aW1lL3N5bnRheC9mb3J0cmFuLnZpbSBiL3J1bnRpbWUvc3ludGF4L2ZvcnRyYW4udmltCmluZGV4IGI0NzBlNTYuLjA2ZTUzOTAgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvc3ludGF4L2ZvcnRyYW4udmltCisrKyBiL3J1bnRpbWUvc3ludGF4L2ZvcnRyYW4udmltCkBAIC0xLDcgKzEsNyBAQAogIiBWaW0gc3ludGF4IGZpbGUKICIgTGFuZ3VhZ2U6CUZvcnRyYW4gMjAwOCAoYW5kIG9sZGVyOiBGb3J0cmFuIDIwMDMsIDk1LCA5MCwgYW5kIDc3KQotIiBWZXJzaW9uOgkwLjk3Ci0iIExhc3QgQ2hhbmdlOgkyMDE2IEZlYi4gMjYKKyIgVmVyc2lvbjoJMC45OAorIiBMYXN0IENoYW5nZToJMjAxNiBBdWcuIDI2CiAiIE1haW50YWluZXI6CUFqaXQgSi4gVGhha2thciA8YWppdEB1bmIuY2E+OyA8aHR0cDovL3d3dzIudW5iLmNhL35haml0Lz4KICIgVXNhZ2U6CUZvciBpbnN0cnVjdGlvbnMsIGRvIDpoZWxwIGZvcnRyYW4tc3ludGF4IGZyb20gVmltCiAiIENyZWRpdHM6CkBAIC0xMCw3ICsxMCw4IEBACiAiICBpbiBjaHJvbm9sb2dpY2FsIG9yZGVyLCBieToKICIgIEFuZHJlaiBQYW5qa292LCBCcmFtIE1vb2xlbmFhciwgVGhvbWFzIE9sc2VuLCBNaWNoYWVsIFN0ZXJuYmVyZywgQ2hyaXN0aWFuIFJlaWxlLAogIiAgV2FsdGVyIERpZXVkb25u6SwgQWxleGFuZGVyIFdhZ25lciwgUm9tYW4gQmVydGxlLCBDaGFybGVzIFJlbmRsZW1hbiwKLSIgIEFuZHJldyBHcmlmZml0aHMsIEpvZSBLcmFobiwgSGVuZHJpayBNZXJ4LCBNYXR0IFRob21wc29uLCBhbmQgSmFuIEhlcm1hbm4uCisiICBBbmRyZXcgR3JpZmZpdGhzLCBKb2UgS3JhaG4sIEhlbmRyaWsgTWVyeCwgTWF0dCBUaG9tcHNvbiwgSmFuIEhlcm1hbm4sCisiICBTdGVmYW5vIFphZ2hpIGFuZCBWaXNobnUgS3Jpc2huYW4uCiAKIGlmIGV4aXN0cygiYjpjdXJyZW50X3N5bnRheCIpCiAgIGZpbmlzaApAQCAtMTA4LDYgKzEwOSw3IEBACiBzeW4ga2V5d29yZCBmb3J0cmFuQ2FsbAkJY2FsbAogc3luIG1hdGNoIGZvcnRyYW5Vbml0SGVhZGVyCSJcPGZ1bmN0aW9uXD4iCiBzeW4gbWF0Y2ggZm9ydHJhblVuaXRIZWFkZXIJIlw8cHJvZ3JhbVw+Igorc3luIG1hdGNoIGZvcnRyYW5Vbml0SGVhZGVyCSJcPGJsb2NrXD4iCiBzeW4ga2V5d29yZCBmb3J0cmFuS2V5d29yZAlyZXR1cm4gc3RvcAogc3luIGtleXdvcmQgZm9ydHJhbkNvbmRpdGlvbmFsCWVsc2UgdGhlbgogc3luIG1hdGNoIGZvcnRyYW5Db25kaXRpb25hbAkiXDxpZlw+IgpAQCAtMjA4LDYgKzIxMCw3IEBACiBzeW4gbWF0Y2ggZm9ydHJhblN0b3JhZ2VDbGFzcwkiXDxsZW5ccyo9Im1lPXMrMwogCiBzeW4gbWF0Y2ggZm9ydHJhblVuaXRIZWFkZXIJIlw8bW9kdWxlXD4iCitzeW4gbWF0Y2ggZm9ydHJhblVuaXRIZWFkZXIJIlw8c3VibW9kdWxlXD4iCiBzeW4ga2V5d29yZCBmb3J0cmFuVW5pdEhlYWRlcgl1c2Ugb25seSBjb250YWlucwogc3luIGtleXdvcmQgZm9ydHJhblVuaXRIZWFkZXIJcmVzdWx0IG9wZXJhdG9yIGFzc2lnbm1lbnQKIHN5biBtYXRjaCBmb3J0cmFuVW5pdEhlYWRlcgkiXDxpbnRlcmZhY2VcPiIKQEAgLTIzMSw4ICsyMzQsMTAgQEAKIHN5biBtYXRjaCAgZm9ydHJhblVuaXRIZWFkZXIJIlw8ZW5kXHMqZnVuY3Rpb24iCiBzeW4gbWF0Y2ggIGZvcnRyYW5Vbml0SGVhZGVyCSJcPGVuZFxzKmludGVyZmFjZSIKIHN5biBtYXRjaCAgZm9ydHJhblVuaXRIZWFkZXIJIlw8ZW5kXHMqbW9kdWxlIgorc3luIG1hdGNoICBmb3J0cmFuVW5pdEhlYWRlcgkiXDxlbmRccypzdWJtb2R1bGUiCiBzeW4gbWF0Y2ggIGZvcnRyYW5Vbml0SGVhZGVyCSJcPGVuZFxzKnByb2dyYW0iCiBzeW4gbWF0Y2ggIGZvcnRyYW5Vbml0SGVhZGVyCSJcPGVuZFxzKnN1YnJvdXRpbmUiCitzeW4gbWF0Y2ggIGZvcnRyYW5Vbml0SGVhZGVyCSJcPGVuZFxzKmJsb2NrIgogc3luIG1hdGNoICBmb3J0cmFuUmVwZWF0CSJcPGVuZFxzKmRvIgogc3luIG1hdGNoICBmb3J0cmFuQ29uZGl0aW9uYWwJIlw8ZW5kXHMqd2hlcmUiCiBzeW4gbWF0Y2ggIGZvcnRyYW5Db25kaXRpb25hbAkiXDxzZWxlY3RccypjYXNlIgpAQCAtMjY3LDYgKzI3Miw3IEBACiBzeW4ga2V5d29yZCBmb3J0cmFuSW50cmluc2ljCW51bGwgY3B1X3RpbWUKIHN5biBtYXRjaCBmb3J0cmFuVHlwZQkJCSJcPGVsZW1lbnRhbFw+Igogc3luIG1hdGNoIGZvcnRyYW5UeXBlCQkJIlw8cHVyZVw+Igorc3luIG1hdGNoIGZvcnRyYW5UeXBlCQkJIlw8aW1wdXJlXD4iCiBpZiBleGlzdHMoImZvcnRyYW5fbW9yZV9wcmVjaXNlIikKICAgc3luIG1hdGNoIGZvcnRyYW5Db25zdHJ1Y3ROYW1lICJcKFw8ZW5kXHMqZm9yYWxsXHNcK1wpXEA8PVxhXHcqXD4iCiBlbmRpZgpAQCAtMjg2LDggKzI5Miw5IEBACiAKICAgc3luIGtleXdvcmQgZm9ydHJhblJlYWRXcml0ZQlmbHVzaCB3YWl0CiAgIHN5biBrZXl3b3JkIGZvcnRyYW5JTyAJICAgICAgZGVjaW1hbCByb3VuZCBpb21zZwotICBzeW4ga2V5d29yZCBmb3J0cmFuVHlwZSAgICAgICAgICAgICBhc3luY2hyb25vdXMgbm9wYXNzIG5vbl9vdmVycmlkYWJsZSBwYXNzIHByb3RlY3RlZCB2b2xhdGlsZSBhYnN0cmFjdCBleHRlbmRzIGltcG9ydAorICBzeW4ga2V5d29yZCBmb3J0cmFuVHlwZSAgICAgICAgICAgICBhc3luY2hyb25vdXMgbm9wYXNzIG5vbl9vdmVycmlkYWJsZSBwYXNzIHByb3RlY3RlZCB2b2xhdGlsZSBleHRlbmRzIGltcG9ydAogICBzeW4ga2V5d29yZCBmb3J0cmFuVHlwZSAgICAgICAgICAgICBub25faW50cmluc2ljIHZhbHVlIGJpbmQgZGVmZXJyZWQgZ2VuZXJpYyBmaW5hbCBlbnVtZXJhdG9yCisgIHN5biBtYXRjaCBmb3J0cmFuVHlwZSAgICAgICAgICAgICAgICJcPGFic3RyYWN0XD4iCiAgIHN5biBtYXRjaCBmb3J0cmFuVHlwZSAgICAgICAgICAgICAgICJcPGNsYXNzXD4iCiAgIHN5biBtYXRjaCBmb3J0cmFuVHlwZSAgICAgICAgICAgICAgICJcPGFzc29jaWF0ZVw+IgogICBzeW4gbWF0Y2ggZm9ydHJhblR5cGUgICAgICAgICAgICAgICAiXDxlbmRccyphc3NvY2lhdGUiCkBAIC0zMDUsNiArMzEyLDcgQEAKICAgc3luIGtleXdvcmQgZm9ydHJhbkludHJpbnNpYyAgICAgICAgYmdlIGJndCBibGUgYmx0IGRzaGlmdGwgZHNoaWZ0ciBmaW5kbG9jIGlhbGwgaWFueSBpcGFyaXR5IGltYWdlX2luZGV4IGxjb2JvdW5kIHVjb2JvdW5kIG1hc2tsIG1hc2tyIG51bV9pbWFnZXMgcGFyaXR5IHBvcGNudCBwb3BwYXIgc2hpZnRhIHNoaWZ0bCBzaGlmdHIgdGhpc19pbWFnZQogICBzeW4ga2V5d29yZCBmb3J0cmFuSU8gICAgICAgICAgICAgICBuZXd1bml0CiAgIHN5biBrZXl3b3JkIGZvcnRyYW5UeXBlICAgICAgICAgICAgIGNvbnRpZ3VvdXMKKyAgc3luIGtleXdvcmQgZm9ydHJhblJlcGVhdCAgICAgICAgICAgY29uY3VycmVudAogCiAiIENVREEgZm9ydHJhbgogICBzeW4gbWF0Y2ggZm9ydHJhblR5cGVDVURBICAgICAgICAgICAiXDxhdHRyaWJ1dGVzXD4iCkBAIC0zODMsMjAgKzM5MSwyMiBAQAogCiAgIGlmIChiOmZvcnRyYW5fZml4ZWRfc291cmNlID09IDEpCiAgICAgc3luIHJlZ2lvbiBmb3J0cmFuUHJvZ3JhbSB0cmFuc3BhcmVudCBmb2xkIGtlZXBlbmQgc3RhcnQ9Il5ccypwcm9ncmFtXHNcK1x6KFxhXHcqXCkiIHNraXA9Il5cKFshYypdXHxccyojXCkuKiQiIGV4Y2x1ZGVubCBlbmQ9Ilw8ZW5kXHMqXChwcm9ncmFtXChcc1wrXHoxXD5cKVw9XHwkXCkiIGNvbnRhaW5zPUFMTEJVVCxmb3J0cmFuTW9kdWxlCisgICAgc3luIHJlZ2lvbiBmb3J0cmFuTW9kdWxlIHRyYW5zcGFyZW50IGZvbGQga2VlcGVuZCBzdGFydD0iXlxzKnN1Ym1vZHVsZVxzXCsoXGFcdypccypcKDpcYVx3KlxzKlwpKilccypcelwoXGFcdypcKSIgc2tpcD0iXlwoWyFjKl1cfFxzKiNcKS4qJCIgZXhjbHVkZW5sIGVuZD0iXDxlbmRccypcKHN1Ym1vZHVsZVwoXHNcK1x6MVw+XClcPVx8JFwpIiBjb250YWlucz1BTExCVVQsZm9ydHJhblByb2dyYW0sZm9ydHJhbk1vZHVsZQogICAgIHN5biByZWdpb24gZm9ydHJhbk1vZHVsZSB0cmFuc3BhcmVudCBmb2xkIGtlZXBlbmQgc3RhcnQ9Il5ccyptb2R1bGVcc1wrXChwcm9jZWR1cmVcKVxAIVx6KFxhXHcqXCkiIHNraXA9Il5cKFshYypdXHxccyojXCkuKiQiIGV4Y2x1ZGVubCBlbmQ9Ilw8ZW5kXHMqXChtb2R1bGVcKFxzXCtcejFcPlwpXD1cfCRcKSIgY29udGFpbnM9QUxMQlVULGZvcnRyYW5Qcm9ncmFtCi0gICAgc3luIHJlZ2lvbiBmb3J0cmFuRnVuY3Rpb24gdHJhbnNwYXJlbnQgZm9sZCBrZWVwZW5kIGV4dGVuZCBzdGFydD0iXlxzKlwoZWxlbWVudGFsIFx8cHVyZSBcfHJlY3Vyc2l2ZSBcKVw9XHMqXChcKFwocmVhbCBcfGludGVnZXIgXHxsb2dpY2FsIFx8Y29tcGxleCBcfGRvdWJsZSBccypwcmVjaXNpb24gXClccypcKChcKFxzKmtpbmRccyo9XClcPVxzKlx3XCtccyopXClcPVwpXHx0eXBlXHNcKyhccypcd1wrXHMqKSBcfGNoYXJhY3RlciBcKChcKFxzKmxlblxzKj1cKVw9XHMqXGRcK1xzKilcfChcKFxzKmtpbmRccyo9XClcPVxzKlx3XCtccyopXClcPVwpXD1ccypmdW5jdGlvblxzXCtceihcYVx3KlwpIiBza2lwPSJeXChbIWMqXVx8XHMqI1wpLiokIiBleGNsdWRlbmwgZW5kPSJcPGVuZFxzKlwoJFx8ZnVuY3Rpb25cKFxzXCtcejFcPlwpXD1cKSIgY29udGFpbnM9QUxMQlVULGZvcnRyYW5Qcm9ncmFtLGZvcnRyYW5Nb2R1bGUKLSAgICBzeW4gcmVnaW9uIGZvcnRyYW5TdWJyb3V0aW5lIHRyYW5zcGFyZW50IGZvbGQga2VlcGVuZCBleHRlbmQgc3RhcnQ9Il5ccypcKGVsZW1lbnRhbCBcfHB1cmUgXHxyZWN1cnNpdmUgXClcPVxzKnN1YnJvdXRpbmVcc1wrXHooXGFcdypcKSIgc2tpcD0iXlwoWyFjKl1cfFxzKiNcKS4qJCIgZXhjbHVkZW5sIGVuZD0iXDxlbmRccypcKCRcfHN1YnJvdXRpbmVcKFxzXCtcejFcPlwpXD1cKSIgY29udGFpbnM9QUxMQlVULGZvcnRyYW5Qcm9ncmFtLGZvcnRyYW5Nb2R1bGUKKyAgICBzeW4gcmVnaW9uIGZvcnRyYW5GdW5jdGlvbiB0cmFuc3BhcmVudCBmb2xkIGtlZXBlbmQgZXh0ZW5kIHN0YXJ0PSJeXHMqXChlbGVtZW50YWwgXHxwdXJlIFx8aW1wdXJlIFx8bW9kdWxlIFx8cmVjdXJzaXZlIFwpXD1ccypcKFwoXChyZWFsIFx8aW50ZWdlciBcfGxvZ2ljYWwgXHxjb21wbGV4IFx8ZG91YmxlIFxzKnByZWNpc2lvbiBcKVxzKlwoKFwoXHMqa2luZFxzKj1cKVw9XHMqXHdcK1xzKilcKVw9XClcfHR5cGVcc1wrKFxzKlx3XCtccyopIFx8Y2hhcmFjdGVyIFwoKFwoXHMqbGVuXHMqPVwpXD1ccypcZFwrXHMqKVx8KFwoXHMqa2luZFxzKj1cKVw9XHMqXHdcK1xzKilcKVw9XClcPVxzKmZ1bmN0aW9uXHNcK1x6KFxhXHcqXCkiIHNraXA9Il5cKFshYypdXHxccyojXCkuKiQiIGV4Y2x1ZGVubCBlbmQ9Ilw8ZW5kXHMqXCgkXHxmdW5jdGlvblwoXHNcK1x6MVw+XClcPVwpIiBjb250YWlucz1BTExCVVQsZm9ydHJhblByb2dyYW0sZm9ydHJhbk1vZHVsZQorICAgIHN5biByZWdpb24gZm9ydHJhblN1YnJvdXRpbmUgdHJhbnNwYXJlbnQgZm9sZCBrZWVwZW5kIGV4dGVuZCBzdGFydD0iXlxzKlwoZWxlbWVudGFsIFx8cHVyZSBcfGltcHVyZSBcfG1vZHVsZSBcfHJlY3Vyc2l2ZSBcKVw9XHMqc3Vicm91dGluZVxzXCtceihcYVx3KlwpIiBza2lwPSJeXChbIWMqXVx8XHMqI1wpLiokIiBleGNsdWRlbmwgZW5kPSJcPGVuZFxzKlwoJFx8c3Vicm91dGluZVwoXHNcK1x6MVw+XClcPVwpIiBjb250YWlucz1BTExCVVQsZm9ydHJhblByb2dyYW0sZm9ydHJhbk1vZHVsZQogICAgIHN5biByZWdpb24gZm9ydHJhbkJsb2NrRGF0YSB0cmFuc3BhcmVudCBmb2xkIGtlZXBlbmQgc3RhcnQ9Ilw8YmxvY2tccypkYXRhXChcc1wrXHooXGFcdypcKVwpXD0iIHNraXA9Il5cKFshYypdXHxccyojXCkuKiQiIGV4Y2x1ZGVubCBlbmQ9Ilw8ZW5kXHMqXCgkXHxibG9ja1xzKmRhdGFcKFxzXCtcejFcPlwpXD1cKSIgY29udGFpbnM9QUxMQlVULGZvcnRyYW5Qcm9ncmFtLGZvcnRyYW5Nb2R1bGUsZm9ydHJhblN1YnJvdXRpbmUsZm9ydHJhbkZ1bmN0aW9uLGZvcnRyYW43N0xvb3AsZm9ydHJhbkNhc2UsZm9ydHJhbjkwTG9vcCxmb3J0cmFuSWZCbG9jawotICAgIHN5biByZWdpb24gZm9ydHJhbkludGVyZmFjZSB0cmFuc3BhcmVudCBmb2xkIGtlZXBlbmQgZXh0ZW5kIHN0YXJ0PSJeXHMqaW50ZXJmYWNlXD4iIHNraXA9Il5cKFshYypdXHxccyojXCkuKiQiIGV4Y2x1ZGVubCBlbmQ9Ilw8ZW5kXHMqaW50ZXJmYWNlXD4iIGNvbnRhaW5zPUFMTEJVVCxmb3J0cmFuUHJvZ3JhbSxmb3J0cmFuTW9kdWxlLGZvcnRyYW43N0xvb3AsZm9ydHJhbkNhc2UsZm9ydHJhbjkwTG9vcCxmb3J0cmFuSWZCbG9jawotICAgIHN5biByZWdpb24gZm9ydHJhblR5cGVEZWYgdHJhbnNwYXJlbnQgZm9sZCBrZWVwZW5kIGV4dGVuZCBzdGFydD0iXlxzKnR5cGVccypcKCxccypcKHB1YmxpY1x8cHJpdmF0ZVwpXClcPVxzKjo6IiBza2lwPSJeXChbIWMqXVx8XHMqI1wpLiokIiBleGNsdWRlbmwgZW5kPSJcPGVuZFxzKnR5cGVcPiIgY29udGFpbnM9QUxMQlVULGZvcnRyYW5Qcm9ncmFtLGZvcnRyYW5Nb2R1bGUsZm9ydHJhbjc3TG9vcCxmb3J0cmFuQ2FzZSxmb3J0cmFuOTBMb29wLGZvcnRyYW5JZkJsb2NrCisgICAgc3luIHJlZ2lvbiBmb3J0cmFuSW50ZXJmYWNlIHRyYW5zcGFyZW50IGZvbGQga2VlcGVuZCBleHRlbmQgc3RhcnQ9Il5ccypcKGFic3RyYWN0IFwpXD1ccyppbnRlcmZhY2VcPiIgc2tpcD0iXlwoWyFjKl1cfFxzKiNcKS4qJCIgZXhjbHVkZW5sIGVuZD0iXDxlbmRccyppbnRlcmZhY2VcPiIgY29udGFpbnM9QUxMQlVULGZvcnRyYW5Qcm9ncmFtLGZvcnRyYW5Nb2R1bGUsZm9ydHJhbjc3TG9vcCxmb3J0cmFuQ2FzZSxmb3J0cmFuOTBMb29wLGZvcnRyYW5JZkJsb2NrCisgICAgc3luIHJlZ2lvbiBmb3J0cmFuVHlwZURlZiB0cmFuc3BhcmVudCBmb2xkIGtlZXBlbmQgZXh0ZW5kIHN0YXJ0PSJeXHMqdHlwZVxzKlwoLFxzKlwocHVibGljXHxwcml2YXRlXHxhYnN0cmFjdFwpXClcPVxzKjo6IiBza2lwPSJeXChbIWMqXVx8XHMqI1wpLiokIiBleGNsdWRlbmwgZW5kPSJcPGVuZFxzKnR5cGVcPiIgY29udGFpbnM9QUxMQlVULGZvcnRyYW5Qcm9ncmFtLGZvcnRyYW5Nb2R1bGUsZm9ydHJhbjc3TG9vcCxmb3J0cmFuQ2FzZSxmb3J0cmFuOTBMb29wLGZvcnRyYW5JZkJsb2NrLGZvcnRyYW5JbnRlcmZhY2UKICAgZWxzZQogICAgIHN5biByZWdpb24gZm9ydHJhblByb2dyYW0gdHJhbnNwYXJlbnQgZm9sZCBrZWVwZW5kIHN0YXJ0PSJeXHMqcHJvZ3JhbVxzXCtceihcYVx3KlwpIiBza2lwPSJeXHMqWyEjXS4qJCIgZXhjbHVkZW5sIGVuZD0iXDxlbmRccypcKHByb2dyYW1cKFxzXCtcejFcPlwpXD1cfCRcKSIgY29udGFpbnM9QUxMQlVULGZvcnRyYW5Nb2R1bGUKKyAgICBzeW4gcmVnaW9uIGZvcnRyYW5Nb2R1bGUgdHJhbnNwYXJlbnQgZm9sZCBrZWVwZW5kIHN0YXJ0PSJeXHMqc3VibW9kdWxlXHNcKyhcYVx3KlxzKlwoOlxhXHcqXHMqXCkqKVxzKlx6XChcYVx3KlwpIiBza2lwPSJeXHMqWyEjXS4qJCIgZXhjbHVkZW5sIGVuZD0iXDxlbmRccypcKHN1Ym1vZHVsZVwoXHNcK1x6MVw+XClcPVx8JFwpIiBjb250YWlucz1BTExCVVQsZm9ydHJhblByb2dyYW0sZm9ydHJhbk1vZHVsZQogICAgIHN5biByZWdpb24gZm9ydHJhbk1vZHVsZSB0cmFuc3BhcmVudCBmb2xkIGtlZXBlbmQgc3RhcnQ9Il5ccyptb2R1bGVcc1wrXChwcm9jZWR1cmVcKVxAIVx6KFxhXHcqXCkiIHNraXA9Il5ccypbISNdLiokIiBleGNsdWRlbmwgZW5kPSJcPGVuZFxzKlwobW9kdWxlXChcc1wrXHoxXD5cKVw9XHwkXCkiIGNvbnRhaW5zPUFMTEJVVCxmb3J0cmFuUHJvZ3JhbQotICAgIHN5biByZWdpb24gZm9ydHJhbkZ1bmN0aW9uIHRyYW5zcGFyZW50IGZvbGQga2VlcGVuZCBleHRlbmQgc3RhcnQ9Il5ccypcKGVsZW1lbnRhbCBcfHB1cmUgXHxyZWN1cnNpdmUgXClcPVxzKlwoXChcKHJlYWwgXHxpbnRlZ2VyIFx8bG9naWNhbCBcfGNvbXBsZXggXHxkb3VibGUgXHMqcHJlY2lzaW9uIFwpXHMqXCgoXChccypraW5kXHMqPVwpXD1ccypcd1wrXHMqKVwpXD1cKVx8dHlwZVxzXCsoXHMqXHdcK1xzKikgXHxjaGFyYWN0ZXIgXCgoXChccypsZW5ccyo9XClcPVxzKlxkXCtccyopXHwoXChccypraW5kXHMqPVwpXD1ccypcd1wrXHMqKVwpXD1cKVw9XHMqZnVuY3Rpb25cc1wrXHooXGFcdypcKSIgc2tpcD0iXlxzKlshI10uKiQiIGV4Y2x1ZGVubCBlbmQ9Ilw8ZW5kXHMqXCgkXHxmdW5jdGlvblwoXHNcK1x6MVw+XClcPVwpIiBjb250YWlucz1BTExCVVQsZm9ydHJhblByb2dyYW0sZm9ydHJhbk1vZHVsZQotICAgIHN5biByZWdpb24gZm9ydHJhblN1YnJvdXRpbmUgdHJhbnNwYXJlbnQgZm9sZCBrZWVwZW5kIGV4dGVuZCBzdGFydD0iXlxzKlwoZWxlbWVudGFsIFx8cHVyZSBcfHJlY3Vyc2l2ZSBcKVw9XHMqc3Vicm91dGluZVxzXCtceihcYVx3KlwpIiBza2lwPSJeXHMqWyEjXS4qJCIgZXhjbHVkZW5sIGVuZD0iXDxlbmRccypcKCRcfHN1YnJvdXRpbmVcKFxzXCtcejFcPlwpXD1cKSIgY29udGFpbnM9QUxMQlVULGZvcnRyYW5Qcm9ncmFtLGZvcnRyYW5Nb2R1bGUKKyAgICBzeW4gcmVnaW9uIGZvcnRyYW5GdW5jdGlvbiB0cmFuc3BhcmVudCBmb2xkIGtlZXBlbmQgZXh0ZW5kIHN0YXJ0PSJeXHMqXChlbGVtZW50YWwgXHxwdXJlIFx8aW1wdXJlIFx8bW9kdWxlIFx8cmVjdXJzaXZlIFwpXD1ccypcKFwoXChyZWFsIFx8aW50ZWdlciBcfGxvZ2ljYWwgXHxjb21wbGV4IFx8ZG91YmxlIFxzKnByZWNpc2lvbiBcKVxzKlwoKFwoXHMqa2luZFxzKj1cKVw9XHMqXHdcK1xzKilcKVw9XClcfHR5cGVcc1wrKFxzKlx3XCtccyopIFx8Y2hhcmFjdGVyIFwoKFwoXHMqbGVuXHMqPVwpXD1ccypcZFwrXHMqKVx8KFwoXHMqa2luZFxzKj1cKVw9XHMqXHdcK1xzKilcKVw9XClcPVxzKmZ1bmN0aW9uXHNcK1x6KFxhXHcqXCkiIHNraXA9Il5ccypbISNdLiokIiBleGNsdWRlbmwgZW5kPSJcPGVuZFxzKlwoJFx8ZnVuY3Rpb25cKFxzXCtcejFcPlwpXD1cKSIgY29udGFpbnM9QUxMQlVULGZvcnRyYW5Qcm9ncmFtLGZvcnRyYW5Nb2R1bGUKKyAgICBzeW4gcmVnaW9uIGZvcnRyYW5TdWJyb3V0aW5lIHRyYW5zcGFyZW50IGZvbGQga2VlcGVuZCBleHRlbmQgc3RhcnQ9Il5ccypcKGVsZW1lbnRhbCBcfHB1cmUgXHxpbXB1cmUgXHxtb2R1bGUgXHxyZWN1cnNpdmUgXClcPVxzKnN1YnJvdXRpbmVcc1wrXHooXGFcdypcKSIgc2tpcD0iXlxzKlshI10uKiQiIGV4Y2x1ZGVubCBlbmQ9Ilw8ZW5kXHMqXCgkXHxzdWJyb3V0aW5lXChcc1wrXHoxXD5cKVw9XCkiIGNvbnRhaW5zPUFMTEJVVCxmb3J0cmFuUHJvZ3JhbSxmb3J0cmFuTW9kdWxlCiAgICAgc3luIHJlZ2lvbiBmb3J0cmFuQmxvY2tEYXRhIHRyYW5zcGFyZW50IGZvbGQga2VlcGVuZCBzdGFydD0iXDxibG9ja1xzKmRhdGFcKFxzXCtceihcYVx3KlwpXClcPSIgc2tpcD0iXlxzKlshI10uKiQiIGV4Y2x1ZGVubCBlbmQ9Ilw8ZW5kXHMqXCgkXHxibG9ja1xzKmRhdGFcKFxzXCtcejFcPlwpXD1cKSIgY29udGFpbnM9QUxMQlVULGZvcnRyYW5Qcm9ncmFtLGZvcnRyYW5Nb2R1bGUsZm9ydHJhblN1YnJvdXRpbmUsZm9ydHJhbkZ1bmN0aW9uLGZvcnRyYW43N0xvb3AsZm9ydHJhbkNhc2UsZm9ydHJhbjkwTG9vcCxmb3J0cmFuSWZCbG9jawotICAgIHN5biByZWdpb24gZm9ydHJhbkludGVyZmFjZSB0cmFuc3BhcmVudCBmb2xkIGtlZXBlbmQgZXh0ZW5kIHN0YXJ0PSJeXHMqaW50ZXJmYWNlXD4iIHNraXA9Il5ccypbISNdLiokIiBleGNsdWRlbmwgZW5kPSJcPGVuZFxzKmludGVyZmFjZVw+IiBjb250YWlucz1BTExCVVQsZm9ydHJhblByb2dyYW0sZm9ydHJhbk1vZHVsZSxmb3J0cmFuNzdMb29wLGZvcnRyYW5DYXNlLGZvcnRyYW45MExvb3AsZm9ydHJhbklmQmxvY2sKLSAgICBzeW4gcmVnaW9uIGZvcnRyYW5UeXBlRGVmIHRyYW5zcGFyZW50IGZvbGQga2VlcGVuZCBleHRlbmQgc3RhcnQ9Il5ccyp0eXBlXHMqXCgsXHMqXChwdWJsaWNcfHByaXZhdGVcKVwpXD1ccyo6OiIgc2tpcD0iXlxzKlshI10uKiQiIGV4Y2x1ZGVubCBlbmQ9Ilw8ZW5kXHMqdHlwZVw+IiBjb250YWlucz1BTExCVVQsZm9ydHJhblByb2dyYW0sZm9ydHJhbk1vZHVsZSxmb3J0cmFuNzdMb29wLGZvcnRyYW5DYXNlLGZvcnRyYW45MExvb3AsZm9ydHJhbklmQmxvY2sKKyAgICBzeW4gcmVnaW9uIGZvcnRyYW5JbnRlcmZhY2UgdHJhbnNwYXJlbnQgZm9sZCBrZWVwZW5kIGV4dGVuZCBzdGFydD0iXlxzKlwoYWJzdHJhY3QgXClcPVxzKmludGVyZmFjZVw+IiBza2lwPSJeXHMqWyEjXS4qJCIgZXhjbHVkZW5sIGVuZD0iXDxlbmRccyppbnRlcmZhY2VcPiIgY29udGFpbnM9QUxMQlVULGZvcnRyYW5Qcm9ncmFtLGZvcnRyYW5Nb2R1bGUsZm9ydHJhbjc3TG9vcCxmb3J0cmFuQ2FzZSxmb3J0cmFuOTBMb29wLGZvcnRyYW5JZkJsb2NrCisgICAgc3luIHJlZ2lvbiBmb3J0cmFuVHlwZURlZiB0cmFuc3BhcmVudCBmb2xkIGtlZXBlbmQgZXh0ZW5kIHN0YXJ0PSJeXHMqdHlwZVxzKlwoLFxzKlwocHVibGljXHxwcml2YXRlXHxhYnN0cmFjdFwpXClcPVxzKjo6IiBza2lwPSJeXHMqWyEjXS4qJCIgZXhjbHVkZW5sIGVuZD0iXDxlbmRccyp0eXBlXD4iIGNvbnRhaW5zPUFMTEJVVCxmb3J0cmFuUHJvZ3JhbSxmb3J0cmFuTW9kdWxlLGZvcnRyYW43N0xvb3AsZm9ydHJhbkNhc2UsZm9ydHJhbjkwTG9vcCxmb3J0cmFuSWZCbG9jayxmb3J0cmFuSW50ZXJmYWNlCiAgIGVuZGlmCiAKICAgaWYgZXhpc3RzKCJmb3J0cmFuX2ZvbGRfY29uZGl0aW9uYWxzIikKZGlmZiAtLWdpdCBhL3J1bnRpbWUvc3ludGF4L211dHRyYy52aW0gYi9ydW50aW1lL3N5bnRheC9tdXR0cmMudmltCmluZGV4IGFiZTliZmQuLjk0YjI3MzEgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvc3ludGF4L211dHRyYy52aW0KKysrIGIvcnVudGltZS9zeW50YXgvbXV0dHJjLnZpbQpAQCAtMiwxMCArMiw5IEBACiAiIExhbmd1YWdlOglNdXR0IHNldHVwIGZpbGVzCiAiIE9yaWdpbmFsOglQcmViZW4gJ1BlcHBlJyBHdWxkYmVyZyA8cGVwcGUtdmltQHdpZWxkZXJzLm9yZz4KICIgTWFpbnRhaW5lcjoJS3lsZSBXaGVlbGVyIDxreWxlLW11dHRyYy52aW1AbWVtb3J5aG9sZS5uZXQ+Ci0iIExhc3QgQ2hhbmdlOgkyIEZlYiAyMDEyCisiIExhc3QgQ2hhbmdlOgkxOCBBdWd1c3QgMjAxNgogCi0iIFRoaXMgZmlsZSBjb3ZlcnMgbXV0dCB2ZXJzaW9uIDEuNS4yMSAoYW5kIG1vc3Qgb2YgdGhlIG1lcmN1cmlhbCB0aXApCi0iIEluY2x1ZGVkIGFyZSBhbHNvIGEgZmV3IGZlYXR1cmVzIGZyb20gMS40LjIuMQorIiBUaGlzIGZpbGUgY292ZXJzIG11dHQgdmVyc2lvbiAxLjcuMAogCiAiIEZvciB2ZXJzaW9uIDUueDogQ2xlYXIgYWxsIHN5bnRheCBpdGVtcwogIiBGb3IgdmVyc2lvbiA2Lng6IFF1aXQgd2hlbiBhIHN5bnRheCBmaWxlIHdhcyBhbHJlYWR5IGxvYWRlZApAQCAtOTgsNyArOTcsNyBAQAogCiAiIE5vdyBjYXRjaCBzb21lIGVtYWlsIGFkZHJlc3NlcyBhbmQgaGVhZGVycyAocHVyaWZpZWQgdmVyc2lvbiBmcm9tIG1haWwudmltKQogc3luIG1hdGNoIG11dHRyY0VtYWlsCQkiW2EtekEtWjAtOS5fLV1cK0BbYS16QS1aMC05Li8tXVwrIgotc3luIG1hdGNoIG11dHRyY0hlYWRlcgkJIlw8XCUoRnJvbVx8VG9cfENbQ2NdXHxCW0NjXVtDY11cfFJlcGx5LVRvXHxTdWJqZWN0XHxSZXR1cm4tUGF0aFx8UmVjZWl2ZWRcfERhdGVcfFJlcGxpZWRcfEF0dGFjaFwpXD46XD0iCitzeW4gbWF0Y2ggbXV0dHJjSGVhZGVyCQkiXDxcY1wlKEZyb21cfFRvXHxDW0NjXVx8QltDY11bQ2NdXHxSZXBseS1Ub1x8U3ViamVjdFx8UmV0dXJuLVBhdGhcfFJlY2VpdmVkXHxEYXRlXHxSZXBsaWVkXHxBdHRhY2hcKVw+Olw9IgogCiBzeW4gbWF0Y2ggICBtdXR0cmNLZXlTcGVjaWFsCWNvbnRhaW5lZCArXCUoXFxbQ2MnIl1cfFxeXHxcXFswMV1cZFx7Mn1cKSsKIHN5biBtYXRjaCAgIG11dHRyY0tleQkJY29udGFpbmVkICJcU1wrIgkJCWNvbnRhaW5zPW11dHRyY0tleVNwZWNpYWwsbXV0dHJjS2V5TmFtZQpAQCAtMTA5LDE0MyArMTA4LDE0NiBAQAogc3luIG1hdGNoICAgbXV0dHJjS2V5TmFtZQljb250YWluZWQgIlxjPFwlKEJhY2tTcGFjZVx8QmFja1RhYlx8RGVsZXRlXHxEb3duXHxFbmRcfEVudGVyXHxFc2NcfEhvbWVcfEluc2VydFx8TGVmdFx8UGFnZURvd25cfFBhZ2VVcFx8UmV0dXJuXHxSaWdodFx8U3BhY2VcfFRhYlx8VXBcKT4iCiBzeW4gbWF0Y2ggICBtdXR0cmNLZXlOYW1lCWNvbnRhaW5lZCAiPEZbMC05XVwrPiIKIAotc3luIGtleXdvcmQgbXV0dHJjVmFyQm9vbAlza2lwd2hpdGUgY29udGFpbmVkIGFsbG93XzhiaXQgYWxsb3dfYW5zaSBhcnJvd19jdXJzb3IgYXNjaWlfY2hhcnMgYXNrYmNjIGFza2NjIGF0dGFjaF9zcGxpdCBhdXRvX3RhZyBhdXRvZWRpdCBiZWVwIGJlZXBfbmV3IG5leHRncm91cD1tdXR0cmNTZXRCb29sQXNzaWdubWVudCxtdXR0cmNWUHJlZml4LG11dHRyY1ZhckJvb2wsbXV0dHJjVmFyUXVhZCxtdXR0cmNWYXJOdW0sbXV0dHJjVmFyU3RyCi1zeW4ga2V5d29yZCBtdXR0cmNWYXJCb29sCXNraXB3aGl0ZSBjb250YWluZWQgYm91bmNlX2RlbGl2ZXJlZCBicmFpbGxlX2ZyaWVuZGx5IGNoZWNrX25ldyBjaGVja19tYm94X3NpemUgbmV4dGdyb3VwPW11dHRyY1NldEJvb2xBc3NpZ25tZW50LG11dHRyY1ZQcmVmaXgsbXV0dHJjVmFyQm9vbCxtdXR0cmNWYXJRdWFkLG11dHRyY1Zhck51bSxtdXR0cmNWYXJTdHIKLXN5biBrZXl3b3JkIG11dHRyY1ZhckJvb2wJc2tpcHdoaXRlIGNvbnRhaW5lZCBjb2xsYXBzZV91bnJlYWQgY29uZmlybWFwcGVuZCBjb25maXJtY3JlYXRlIGNyeXB0X2F1dG9lbmNyeXB0IG5leHRncm91cD1tdXR0cmNTZXRCb29sQXNzaWdubWVudCxtdXR0cmNWUHJlZml4LG11dHRyY1ZhckJvb2wsbXV0dHJjVmFyUXVhZCxtdXR0cmNWYXJOdW0sbXV0dHJjVmFyU3RyCi1zeW4ga2V5d29yZCBtdXR0cmNWYXJCb29sCXNraXB3aGl0ZSBjb250YWluZWQgY3J5cHRfYXV0b3BncCBjcnlwdF9hdXRvc2lnbiBjcnlwdF9hdXRvc21pbWUgY3J5cHRfcmVwbHllbmNyeXB0IG5leHRncm91cD1tdXR0cmNTZXRCb29sQXNzaWdubWVudCxtdXR0cmNWUHJlZml4LG11dHRyY1ZhckJvb2wsbXV0dHJjVmFyUXVhZCxtdXR0cmNWYXJOdW0sbXV0dHJjVmFyU3RyCi1zeW4ga2V5d29yZCBtdXR0cmNWYXJCb29sCXNraXB3aGl0ZSBjb250YWluZWQgY3J5cHRfcmVwbHlzaWduIGNyeXB0X3JlcGx5c2lnbmVuY3J5cHRlZCBjcnlwdF90aW1lc3RhbXAgbmV4dGdyb3VwPW11dHRyY1NldEJvb2xBc3NpZ25tZW50LG11dHRyY1ZQcmVmaXgsbXV0dHJjVmFyQm9vbCxtdXR0cmNWYXJRdWFkLG11dHRyY1Zhck51bSxtdXR0cmNWYXJTdHIKLXN5biBrZXl3b3JkIG11dHRyY1ZhckJvb2wJc2tpcHdoaXRlIGNvbnRhaW5lZCBjcnlwdF91c2VfZ3BnbWUgY3J5cHRfdXNlX3BrYSBkZWxldGVfdW50YWcgZGlnZXN0X2NvbGxhcHNlIGR1cGxpY2F0ZV90aHJlYWRzIG5leHRncm91cD1tdXR0cmNTZXRCb29sQXNzaWdubWVudCxtdXR0cmNWUHJlZml4LG11dHRyY1ZhckJvb2wsbXV0dHJjVmFyUXVhZCxtdXR0cmNWYXJOdW0sbXV0dHJjVmFyU3RyCi1zeW4ga2V5d29yZCBtdXR0cmNWYXJCb29sCXNraXB3aGl0ZSBjb250YWluZWQgZWRpdF9oZHJzIGVkaXRfaGVhZGVycyBlbmNvZGVfZnJvbSBlbnZlbG9wZV9mcm9tIGZhc3RfcmVwbHkgbmV4dGdyb3VwPW11dHRyY1NldEJvb2xBc3NpZ25tZW50LG11dHRyY1ZQcmVmaXgsbXV0dHJjVmFyQm9vbCxtdXR0cmNWYXJRdWFkLG11dHRyY1Zhck51bSxtdXR0cmNWYXJTdHIKLXN5biBrZXl3b3JkIG11dHRyY1ZhckJvb2wJc2tpcHdoaXRlIGNvbnRhaW5lZCBmY2NfY2xlYXIgZm9sbG93dXBfdG8gZm9yY2VfbmFtZSBmb3J3X2RlY29kZSBuZXh0Z3JvdXA9bXV0dHJjU2V0Qm9vbEFzc2lnbm1lbnQsbXV0dHJjVlByZWZpeCxtdXR0cmNWYXJCb29sLG11dHRyY1ZhclF1YWQsbXV0dHJjVmFyTnVtLG11dHRyY1ZhclN0cgotc3luIGtleXdvcmQgbXV0dHJjVmFyQm9vbAlza2lwd2hpdGUgY29udGFpbmVkIGZvcndfZGVjcnlwdCBmb3J3X3F1b3RlIGZvcndhcmRfZGVjb2RlIGZvcndhcmRfZGVjcnlwdCBuZXh0Z3JvdXA9bXV0dHJjU2V0Qm9vbEFzc2lnbm1lbnQsbXV0dHJjVlByZWZpeCxtdXR0cmNWYXJCb29sLG11dHRyY1ZhclF1YWQsbXV0dHJjVmFyTnVtLG11dHRyY1ZhclN0cgotc3luIGtleXdvcmQgbXV0dHJjVmFyQm9vbAlza2lwd2hpdGUgY29udGFpbmVkIGZvcndhcmRfcXVvdGUgaGRycyBoZWFkZXIgaGVscCBoaWRkZW5faG9zdCBoaWRlX2xpbWl0ZWQgbmV4dGdyb3VwPW11dHRyY1NldEJvb2xBc3NpZ25tZW50LG11dHRyY1ZQcmVmaXgsbXV0dHJjVmFyQm9vbCxtdXR0cmNWYXJRdWFkLG11dHRyY1Zhck51bSxtdXR0cmNWYXJTdHIKLXN5biBrZXl3b3JkIG11dHRyY1ZhckJvb2wJc2tpcHdoaXRlIGNvbnRhaW5lZCBoaWRlX21pc3NpbmcgaGlkZV90aHJlYWRfc3ViamVjdCBoaWRlX3RvcF9saW1pdGVkIG5leHRncm91cD1tdXR0cmNTZXRCb29sQXNzaWdubWVudCxtdXR0cmNWUHJlZml4LG11dHRyY1ZhckJvb2wsbXV0dHJjVmFyUXVhZCxtdXR0cmNWYXJOdW0sbXV0dHJjVmFyU3RyCi1zeW4ga2V5d29yZCBtdXR0cmNWYXJCb29sCXNraXB3aGl0ZSBjb250YWluZWQgaGlkZV90b3BfbWlzc2luZyBob25vcl9kaXNwb3NpdGlvbiBpZ25vcmVfbGluZWFyX3doaXRlX3NwYWNlIGlnbm9yZV9saXN0X3JlcGx5X3RvIGltYXBfY2hlY2tfc3Vic2NyaWJlZCBuZXh0Z3JvdXA9bXV0dHJjU2V0Qm9vbEFzc2lnbm1lbnQsbXV0dHJjVlByZWZpeCxtdXR0cmNWYXJCb29sLG11dHRyY1ZhclF1YWQsbXV0dHJjVmFyTnVtLG11dHRyY1ZhclN0cgotc3luIGtleXdvcmQgbXV0dHJjVmFyQm9vbAlza2lwd2hpdGUgY29udGFpbmVkIGltYXBfbGlzdF9zdWJzY3JpYmVkIGltYXBfcGFzc2l2ZSBpbWFwX3BlZWsgaW1hcF9zZXJ2ZXJub2lzZSBuZXh0Z3JvdXA9bXV0dHJjU2V0Qm9vbEFzc2lnbm1lbnQsbXV0dHJjVlByZWZpeCxtdXR0cmNWYXJCb29sLG11dHRyY1ZhclF1YWQsbXV0dHJjVmFyTnVtLG11dHRyY1ZhclN0cgotc3luIGtleXdvcmQgbXV0dHJjVmFyQm9vbAlza2lwd2hpdGUgY29udGFpbmVkIGltcGxpY2l0X2F1dG92aWV3IGluY2x1ZGVfb25seWZpcnN0IGtlZXBfZmxhZ2dlZCBuZXh0Z3JvdXA9bXV0dHJjU2V0Qm9vbEFzc2lnbm1lbnQsbXV0dHJjVlByZWZpeCxtdXR0cmNWYXJCb29sLG11dHRyY1ZhclF1YWQsbXV0dHJjVmFyTnVtLG11dHRyY1ZhclN0cgotc3luIGtleXdvcmQgbXV0dHJjVmFyQm9vbAlza2lwd2hpdGUgY29udGFpbmVkIG1haWxjYXBfc2FuaXRpemUgbWFpbGRpcl9oZWFkZXJfY2FjaGVfdmVyaWZ5IG1haWxkaXJfdHJhc2ggbmV4dGdyb3VwPW11dHRyY1NldEJvb2xBc3NpZ25tZW50LG11dHRyY1ZQcmVmaXgsbXV0dHJjVmFyQm9vbCxtdXR0cmNWYXJRdWFkLG11dHRyY1Zhck51bSxtdXR0cmNWYXJTdHIKLXN5biBrZXl3b3JkIG11dHRyY1ZhckJvb2wJc2tpcHdoaXRlIGNvbnRhaW5lZCBtYXJrX29sZCBtYXJrZXJzIG1lbnVfbW92ZV9vZmYgbWVudV9zY3JvbGwgbWVzc2FnZV9jYWNoZV9jbGVhbiBtZXRhX2tleSBuZXh0Z3JvdXA9bXV0dHJjU2V0Qm9vbEFzc2lnbm1lbnQsbXV0dHJjVlByZWZpeCxtdXR0cmNWYXJCb29sLG11dHRyY1ZhclF1YWQsbXV0dHJjVmFyTnVtLG11dHRyY1ZhclN0cgotc3luIGtleXdvcmQgbXV0dHJjVmFyQm9vbAlza2lwd2hpdGUgY29udGFpbmVkIG1ldG9vIG1oX3B1cmdlIG1pbWVfZm9yd2FyZF9kZWNvZGUgbmFycm93X3RyZWUgcGFnZXJfc3RvcCBuZXh0Z3JvdXA9bXV0dHJjU2V0Qm9vbEFzc2lnbm1lbnQsbXV0dHJjVlByZWZpeCxtdXR0cmNWYXJCb29sLG11dHRyY1ZhclF1YWQsbXV0dHJjVmFyTnVtLG11dHRyY1ZhclN0cgotc3luIGtleXdvcmQgbXV0dHJjVmFyQm9vbAlza2lwd2hpdGUgY29udGFpbmVkIHBncF9hdXRvX2RlY29kZSBwZ3BfYXV0b190cmFkaXRpb25hbCBwZ3BfYXV0b2VuY3J5cHQgbmV4dGdyb3VwPW11dHRyY1NldEJvb2xBc3NpZ25tZW50LG11dHRyY1ZQcmVmaXgsbXV0dHJjVmFyQm9vbCxtdXR0cmNWYXJRdWFkLG11dHRyY1Zhck51bSxtdXR0cmNWYXJTdHIKLXN5biBrZXl3b3JkIG11dHRyY1ZhckJvb2wJc2tpcHdoaXRlIGNvbnRhaW5lZCBwZ3BfYXV0b2lubGluZSBwZ3BfYXV0b3NpZ24gcGdwX2NoZWNrX2V4aXQgbmV4dGdyb3VwPW11dHRyY1NldEJvb2xBc3NpZ25tZW50LG11dHRyY1ZQcmVmaXgsbXV0dHJjVmFyQm9vbCxtdXR0cmNWYXJRdWFkLG11dHRyY1Zhck51bSxtdXR0cmNWYXJTdHIKLXN5biBrZXl3b3JkIG11dHRyY1ZhckJvb2wJc2tpcHdoaXRlIGNvbnRhaW5lZCBwZ3BfY3JlYXRlX3RyYWRpdGlvbmFsIHBncF9pZ25vcmVfc3Via2V5cyBwZ3BfbG9uZ19pZHMgbmV4dGdyb3VwPW11dHRyY1NldEJvb2xBc3NpZ25tZW50LG11dHRyY1ZQcmVmaXgsbXV0dHJjVmFyQm9vbCxtdXR0cmNWYXJRdWFkLG11dHRyY1Zhck51bSxtdXR0cmNWYXJTdHIKLXN5biBrZXl3b3JkIG11dHRyY1ZhckJvb2wJc2tpcHdoaXRlIGNvbnRhaW5lZCBwZ3BfcmVwbHllbmNyeXB0IHBncF9yZXBseWlubGluZSBwZ3BfcmVwbHlzaWduIG5leHRncm91cD1tdXR0cmNTZXRCb29sQXNzaWdubWVudCxtdXR0cmNWUHJlZml4LG11dHRyY1ZhckJvb2wsbXV0dHJjVmFyUXVhZCxtdXR0cmNWYXJOdW0sbXV0dHJjVmFyU3RyCi1zeW4ga2V5d29yZCBtdXR0cmNWYXJCb29sCXNraXB3aGl0ZSBjb250YWluZWQgcGdwX3JlcGx5c2lnbmVuY3J5cHRlZCBwZ3BfcmV0YWluYWJsZV9zaWdzIHBncF9zaG93X3VudXNhYmxlIG5leHRncm91cD1tdXR0cmNTZXRCb29sQXNzaWdubWVudCxtdXR0cmNWUHJlZml4LG11dHRyY1ZhckJvb2wsbXV0dHJjVmFyUXVhZCxtdXR0cmNWYXJOdW0sbXV0dHJjVmFyU3RyCi1zeW4ga2V5d29yZCBtdXR0cmNWYXJCb29sCXNraXB3aGl0ZSBjb250YWluZWQgcGdwX3N0cmljdF9lbmMgcGdwX3VzZV9ncGdfYWdlbnQgcGlwZV9kZWNvZGUgcGlwZV9zcGxpdCBuZXh0Z3JvdXA9bXV0dHJjU2V0Qm9vbEFzc2lnbm1lbnQsbXV0dHJjVlByZWZpeCxtdXR0cmNWYXJCb29sLG11dHRyY1ZhclF1YWQsbXV0dHJjVmFyTnVtLG11dHRyY1ZhclN0cgotc3luIGtleXdvcmQgbXV0dHJjVmFyQm9vbAlza2lwd2hpdGUgY29udGFpbmVkIHBvcF9hdXRoX3RyeV9hbGwgcG9wX2xhc3QgcHJpbnRfZGVjb2RlIHByaW50X3NwbGl0IG5leHRncm91cD1tdXR0cmNTZXRCb29sQXNzaWdubWVudCxtdXR0cmNWUHJlZml4LG11dHRyY1ZhckJvb2wsbXV0dHJjVmFyUXVhZCxtdXR0cmNWYXJOdW0sbXV0dHJjVmFyU3RyCi1zeW4ga2V5d29yZCBtdXR0cmNWYXJCb29sCXNraXB3aGl0ZSBjb250YWluZWQgcHJvbXB0X2FmdGVyIHJlYWRfb25seSByZXBseV9zZWxmIHJlc29sdmUgcmV2ZXJzZV9hbGlhcyBuZXh0Z3JvdXA9bXV0dHJjU2V0Qm9vbEFzc2lnbm1lbnQsbXV0dHJjVlByZWZpeCxtdXR0cmNWYXJCb29sLG11dHRyY1ZhclF1YWQsbXV0dHJjVmFyTnVtLG11dHRyY1ZhclN0cgotc3luIGtleXdvcmQgbXV0dHJjVmFyQm9vbAlza2lwd2hpdGUgY29udGFpbmVkIHJldmVyc2VfbmFtZSByZXZlcnNlX3JlYWxuYW1lIHJmYzIwNDdfcGFyYW1ldGVycyBzYXZlX2FkZHJlc3MgbmV4dGdyb3VwPW11dHRyY1NldEJvb2xBc3NpZ25tZW50LG11dHRyY1ZQcmVmaXgsbXV0dHJjVmFyQm9vbCxtdXR0cmNWYXJRdWFkLG11dHRyY1Zhck51bSxtdXR0cmNWYXJTdHIKLXN5biBrZXl3b3JkIG11dHRyY1ZhckJvb2wJc2tpcHdoaXRlIGNvbnRhaW5lZCBzYXZlX2VtcHR5IHNhdmVfbmFtZSBzY29yZSBzaWdfZGFzaGVzIHNpZ19vbl90b3AgbmV4dGdyb3VwPW11dHRyY1NldEJvb2xBc3NpZ25tZW50LG11dHRyY1ZQcmVmaXgsbXV0dHJjVmFyQm9vbCxtdXR0cmNWYXJRdWFkLG11dHRyY1Zhck51bSxtdXR0cmNWYXJTdHIKLXN5biBrZXl3b3JkIG11dHRyY1ZhckJvb2wJc2tpcHdoaXRlIGNvbnRhaW5lZCBzbWFydF93cmFwIHNtaW1lX2Fza19jZXJ0X2xhYmVsIHNtaW1lX2RlY3J5cHRfdXNlX2RlZmF1bHRfa2V5IG5leHRncm91cD1tdXR0cmNTZXRCb29sQXNzaWdubWVudCxtdXR0cmNWUHJlZml4LG11dHRyY1ZhckJvb2wsbXV0dHJjVmFyUXVhZCxtdXR0cmNWYXJOdW0sbXV0dHJjVmFyU3RyCi1zeW4ga2V5d29yZCBtdXR0cmNWYXJCb29sCXNraXB3aGl0ZSBjb250YWluZWQgc21pbWVfaXNfZGVmYXVsdCBzb3J0X3JlIHNzbF9mb3JjZV90bHMgc3NsX3VzZV9zc2x2MiBuZXh0Z3JvdXA9bXV0dHJjU2V0Qm9vbEFzc2lnbm1lbnQsbXV0dHJjVlByZWZpeCxtdXR0cmNWYXJCb29sLG11dHRyY1ZhclF1YWQsbXV0dHJjVmFyTnVtLG11dHRyY1ZhclN0cgotc3luIGtleXdvcmQgbXV0dHJjVmFyQm9vbAlza2lwd2hpdGUgY29udGFpbmVkIHNzbF91c2Vfc3NsdjMgc3NsX3VzZV90bHN2MSBzc2xfdXNlc3lzdGVtY2VydHMgc3NsX3ZlcmlmeV9kYXRlcyBzc2xfdmVyaWZ5X2hvc3Qgc3RhdHVzX29uX3RvcCBuZXh0Z3JvdXA9bXV0dHJjU2V0Qm9vbEFzc2lnbm1lbnQsbXV0dHJjVlByZWZpeCxtdXR0cmNWYXJCb29sLG11dHRyY1ZhclF1YWQsbXV0dHJjVmFyTnVtLG11dHRyY1ZhclN0cgotc3luIGtleXdvcmQgbXV0dHJjVmFyQm9vbAlza2lwd2hpdGUgY29udGFpbmVkIHN0cmljdF9taW1lIHN0cmljdF90aHJlYWRzIHN1c3BlbmQgdGV4dF9mbG93ZWQgdGhvcm91Z2hfc2VhcmNoIG5leHRncm91cD1tdXR0cmNTZXRCb29sQXNzaWdubWVudCxtdXR0cmNWUHJlZml4LG11dHRyY1ZhckJvb2wsbXV0dHJjVmFyUXVhZCxtdXR0cmNWYXJOdW0sbXV0dHJjVmFyU3RyCi1zeW4ga2V5d29yZCBtdXR0cmNWYXJCb29sCXNraXB3aGl0ZSBjb250YWluZWQgdGhyZWFkX3JlY2VpdmVkIHRpbGRlIHVuY29sbGFwc2VfanVtcCB1c2VfOGJpdG1pbWUgbmV4dGdyb3VwPW11dHRyY1NldEJvb2xBc3NpZ25tZW50LG11dHRyY1ZQcmVmaXgsbXV0dHJjVmFyQm9vbCxtdXR0cmNWYXJRdWFkLG11dHRyY1Zhck51bSxtdXR0cmNWYXJTdHIKLXN5biBrZXl3b3JkIG11dHRyY1ZhckJvb2wJc2tpcHdoaXRlIGNvbnRhaW5lZCB1c2VfZG9tYWluIHVzZV9lbnZlbG9wZV9mcm9tIHVzZV9mcm9tIHVzZV9pZG4gdXNlX2lwdjYgbmV4dGdyb3VwPW11dHRyY1NldEJvb2xBc3NpZ25tZW50LG11dHRyY1ZQcmVmaXgsbXV0dHJjVmFyQm9vbCxtdXR0cmNWYXJRdWFkLG11dHRyY1Zhck51bSxtdXR0cmNWYXJTdHIKLXN5biBrZXl3b3JkIG11dHRyY1ZhckJvb2wJc2tpcHdoaXRlIGNvbnRhaW5lZCB1c2VyX2FnZW50IHdhaXRfa2V5IHdlZWQgd3JhcF9zZWFyY2ggd3JpdGVfYmNjIG5leHRncm91cD1tdXR0cmNTZXRCb29sQXNzaWdubWVudCxtdXR0cmNWUHJlZml4LG11dHRyY1ZhckJvb2wsbXV0dHJjVmFyUXVhZCxtdXR0cmNWYXJOdW0sbXV0dHJjVmFyU3RyCitzeW4ga2V5d29yZCBtdXR0cmNWYXJCb29sCXNraXB3aGl0ZSBjb250YWluZWQgCisJCQlcIGFsbG93XzhiaXQgYWxsb3dfYW5zaSBhcnJvd19jdXJzb3IgYXNjaWlfY2hhcnMgYXNrYmNjIGFza2NjIGF0dGFjaF9zcGxpdAorCQkJXCBhdXRvX3RhZyBhdXRvZWRpdCBiZWVwIGJlZXBfbmV3IGJvdW5jZV9kZWxpdmVyZWQgYnJhaWxsZV9mcmllbmRseQorCQkJXCBjaGVja19tYm94X3NpemUgY2hlY2tfbmV3IGNvbGxhcHNlX3VucmVhZCBjb25maXJtYXBwZW5kIGNvbmZpcm1jcmVhdGUKKwkJCVwgY3J5cHRfYXV0b2VuY3J5cHQgY3J5cHRfYXV0b3BncCBjcnlwdF9hdXRvc2lnbiBjcnlwdF9hdXRvc21pbWUKKwkJCVwgY3J5cHRfY29uZmlybWhvb2sgY3J5cHRfb3Bwb3J0dW5pc3RpY19lbmNyeXB0IGNyeXB0X3JlcGx5ZW5jcnlwdAorCQkJXCBjcnlwdF9yZXBseXNpZ24gY3J5cHRfcmVwbHlzaWduZW5jcnlwdGVkIGNyeXB0X3RpbWVzdGFtcCBjcnlwdF91c2VfZ3BnbWUKKwkJCVwgY3J5cHRfdXNlX3BrYSBkZWxldGVfdW50YWcgZGlnZXN0X2NvbGxhcHNlIGR1cGxpY2F0ZV90aHJlYWRzIGVkaXRfaGRycworCQkJXCBlZGl0X2hlYWRlcnMgZW5jb2RlX2Zyb20gZW52ZWxvcGVfZnJvbSBmYXN0X3JlcGx5IGZjY19jbGVhciBmb2xsb3d1cF90bworCQkJXCBmb3JjZV9uYW1lIGZvcndfZGVjb2RlIGZvcndfZGVjcnlwdCBmb3J3X3F1b3RlIGZvcndhcmRfZGVjb2RlIGZvcndhcmRfZGVjcnlwdAorCQkJXCBmb3J3YXJkX3F1b3RlIGhkcnMgaGVhZGVyIGhlbHAgaGlkZGVuX2hvc3QgaGlkZV9saW1pdGVkIGhpZGVfbWlzc2luZworCQkJXCBoaWRlX3RocmVhZF9zdWJqZWN0IGhpZGVfdG9wX2xpbWl0ZWQgaGlkZV90b3BfbWlzc2luZyBob25vcl9kaXNwb3NpdGlvbgorCQkJXCBpZG5fZGVjb2RlIGlkbl9lbmNvZGUgaWdub3JlX2xpbmVhcl93aGl0ZV9zcGFjZSBpZ25vcmVfbGlzdF9yZXBseV90bworCQkJXCBpbWFwX2NoZWNrX3N1YnNjcmliZWQgaW1hcF9saXN0X3N1YnNjcmliZWQgaW1hcF9wYXNzaXZlIGltYXBfcGVlaworCQkJXCBpbWFwX3NlcnZlcm5vaXNlIGltcGxpY2l0X2F1dG92aWV3IGluY2x1ZGVfb25seWZpcnN0IGtlZXBfZmxhZ2dlZAorCQkJXCBtYWlsX2NoZWNrX3JlY2VudCBtYWlsX2NoZWNrX3N0YXRzIG1haWxjYXBfc2FuaXRpemUgbWFpbGRpcl9jaGVja19jdXIKKwkJCVwgbWFpbGRpcl9oZWFkZXJfY2FjaGVfdmVyaWZ5IG1haWxkaXJfdHJhc2ggbWFya19vbGQgbWFya2VycyBtZW51X21vdmVfb2ZmCisJCQlcIG1lbnVfc2Nyb2xsIG1lc3NhZ2VfY2FjaGVfY2xlYW4gbWV0YV9rZXkgbWV0b28gbWhfcHVyZ2UgbWltZV9mb3J3YXJkX2RlY29kZQorCQkJXCBuYXJyb3dfdHJlZSBwYWdlcl9zdG9wIHBncF9hdXRvX2RlY29kZSBwZ3BfYXV0b190cmFkaXRpb25hbCBwZ3BfYXV0b2VuY3J5cHQKKwkJCVwgcGdwX2F1dG9pbmxpbmUgcGdwX2F1dG9zaWduIHBncF9jaGVja19leGl0IHBncF9jcmVhdGVfdHJhZGl0aW9uYWwKKwkJCVwgcGdwX2lnbm9yZV9zdWJrZXlzIHBncF9sb25nX2lkcyBwZ3BfcmVwbHllbmNyeXB0IHBncF9yZXBseWlubGluZSBwZ3BfcmVwbHlzaWduCisJCQlcIHBncF9yZXBseXNpZ25lbmNyeXB0ZWQgcGdwX3JldGFpbmFibGVfc2lncyBwZ3Bfc2hvd191bnVzYWJsZSBwZ3Bfc3RyaWN0X2VuYworCQkJXCBwZ3BfdXNlX2dwZ19hZ2VudCBwaXBlX2RlY29kZSBwaXBlX3NwbGl0IHBvcF9hdXRoX3RyeV9hbGwgcG9wX2xhc3QKKwkJCVwgcG9zdHBvbmVfZW5jcnlwdCBwb3N0cG9uZV9lbmNyeXB0X2FzIHByaW50X2RlY29kZSBwcmludF9zcGxpdCBwcm9tcHRfYWZ0ZXIKKwkJCVwgcmVhZF9vbmx5IHJlZmxvd19zcGFjZV9xdW90ZXMgcmVmbG93X3RleHQgcmVmbG93X3dyYXAgcmVwbHlfc2VsZiByZXNvbHZlCisJCQlcIHJlc3VtZV9kcmFmdF9maWxlcyByZXN1bWVfZWRpdGVkX2RyYWZ0X2ZpbGVzIHJldmVyc2VfYWxpYXMgcmV2ZXJzZV9uYW1lCisJCQlcIHJldmVyc2VfcmVhbG5hbWUgcmZjMjA0N19wYXJhbWV0ZXJzIHNhdmVfYWRkcmVzcyBzYXZlX2VtcHR5IHNhdmVfbmFtZSBzY29yZQorCQkJXCBzaWRlYmFyX2ZvbGRlcl9pbmRlbnQgc2lkZWJhcl9uZXdfbWFpbF9vbmx5IHNpZGViYXJfbmV4dF9uZXdfd3JhcAorCQkJXCBzaWRlYmFyX3Nob3J0X3BhdGggc2lkZWJhcl9zb3J0IHNpZGViYXJfdmlzaWJsZSBzaWdfZGFzaGVzIHNpZ19vbl90b3AKKwkJCVwgc21hcnRfd3JhcCBzbWltZV9hc2tfY2VydF9sYWJlbCBzbWltZV9kZWNyeXB0X3VzZV9kZWZhdWx0X2tleSBzbWltZV9pc19kZWZhdWx0CisJCQlcIHNvcnRfcmUgc3NsX2ZvcmNlX3RscyBzc2xfdXNlX3NzbHYyIHNzbF91c2Vfc3NsdjMgc3NsX3VzZV90bHN2MQorCQkJXCBzc2xfdXNlc3lzdGVtY2VydHMgc3NsX3ZlcmlmeV9kYXRlcyBzc2xfdmVyaWZ5X2hvc3Qgc3RhdHVzX29uX3RvcCBzdHJpY3RfbWltZQorCQkJXCBzdHJpY3RfdGhyZWFkcyBzdXNwZW5kIHRleHRfZmxvd2VkIHRob3JvdWdoX3NlYXJjaCB0aHJlYWRfcmVjZWl2ZWQgdGlsZGUKKwkJCVwgdHNfZW5hYmxlZCB1bmNvbGxhcHNlX2p1bXAgdXNlXzhiaXRtaW1lIHVzZV9kb21haW4gdXNlX2VudmVsb3BlX2Zyb20gdXNlX2Zyb20KKwkJCVwgdXNlX2lkbiB1c2VfaXB2NiB1c2VyX2FnZW50IHdhaXRfa2V5IHdlZWQgd3JhcF9zZWFyY2ggd3JpdGVfYmNjCisJCQlcIG5leHRncm91cD1tdXR0cmNTZXRCb29sQXNzaWdubWVudCxtdXR0cmNWUHJlZml4LG11dHRyY1ZhckJvb2wsbXV0dHJjVmFyUXVhZCxtdXR0cmNWYXJOdW0sbXV0dHJjVmFyU3RyCiAKLXN5biBrZXl3b3JkIG11dHRyY1ZhckJvb2wJc2tpcHdoaXRlIGNvbnRhaW5lZCBub2FsbG93XzhiaXQgbm9hbGxvd19hbnNpIG5vYXJyb3dfY3Vyc29yIG5vYXNjaWlfY2hhcnMgbm9hc2tiY2MgbmV4dGdyb3VwPW11dHRyY1ZQcmVmaXgsbXV0dHJjVmFyQm9vbCxtdXR0cmNWYXJRdWFkLG11dHRyY1Zhck51bSxtdXR0cmNWYXJTdHIKLXN5biBrZXl3b3JkIG11dHRyY1ZhckJvb2wJc2tpcHdoaXRlIGNvbnRhaW5lZCBub2Fza2NjIG5vYXR0YWNoX3NwbGl0IG5vYXV0b190YWcgbm9hdXRvZWRpdCBub2JlZXAgbm9iZWVwX25ldyBuZXh0Z3JvdXA9bXV0dHJjVlByZWZpeCxtdXR0cmNWYXJCb29sLG11dHRyY1ZhclF1YWQsbXV0dHJjVmFyTnVtLG11dHRyY1ZhclN0cgotc3luIGtleXdvcmQgbXV0dHJjVmFyQm9vbAlza2lwd2hpdGUgY29udGFpbmVkIG5vYm91bmNlX2RlbGl2ZXJlZCBub2JyYWlsbGVfZnJpZW5kbHkgbm9jaGVja19uZXcgbm9jb2xsYXBzZV91bnJlYWQgbmV4dGdyb3VwPW11dHRyY1ZQcmVmaXgsbXV0dHJjVmFyQm9vbCxtdXR0cmNWYXJRdWFkLG11dHRyY1Zhck51bSxtdXR0cmNWYXJTdHIKLXN5biBrZXl3b3JkIG11dHRyY1ZhckJvb2wJc2tpcHdoaXRlIGNvbnRhaW5lZCBub2NvbmZpcm1hcHBlbmQgbm9jb25maXJtY3JlYXRlIG5vY3J5cHRfYXV0b2VuY3J5cHQgbm9jcnlwdF9hdXRvcGdwIG5leHRncm91cD1tdXR0cmNWUHJlZml4LG11dHRyY1ZhckJvb2wsbXV0dHJjVmFyUXVhZCxtdXR0cmNWYXJOdW0sbXV0dHJjVmFyU3RyCi1zeW4ga2V5d29yZCBtdXR0cmNWYXJCb29sCXNraXB3aGl0ZSBjb250YWluZWQgbm9jcnlwdF9hdXRvc2lnbiBub2NyeXB0X2F1dG9zbWltZSBub2NyeXB0X3JlcGx5ZW5jcnlwdCBuZXh0Z3JvdXA9bXV0dHJjVlByZWZpeCxtdXR0cmNWYXJCb29sLG11dHRyY1ZhclF1YWQsbXV0dHJjVmFyTnVtLG11dHRyY1ZhclN0cgotc3luIGtleXdvcmQgbXV0dHJjVmFyQm9vbAlza2lwd2hpdGUgY29udGFpbmVkIG5vY3J5cHRfcmVwbHlzaWduIG5vY3J5cHRfcmVwbHlzaWduZW5jcnlwdGVkIG5vY3J5cHRfdGltZXN0YW1wIG5leHRncm91cD1tdXR0cmNWUHJlZml4LG11dHRyY1ZhckJvb2wsbXV0dHJjVmFyUXVhZCxtdXR0cmNWYXJOdW0sbXV0dHJjVmFyU3RyCi1zeW4ga2V5d29yZCBtdXR0cmNWYXJCb29sCXNraXB3aGl0ZSBjb250YWluZWQgbm9jcnlwdF91c2VfZ3BnbWUgbm9kZWxldGVfdW50YWcgbm9kaWdlc3RfY29sbGFwc2Ugbm9kdXBsaWNhdGVfdGhyZWFkcyBuZXh0Z3JvdXA9bXV0dHJjVlByZWZpeCxtdXR0cmNWYXJCb29sLG11dHRyY1ZhclF1YWQsbXV0dHJjVmFyTnVtLG11dHRyY1ZhclN0cgotc3luIGtleXdvcmQgbXV0dHJjVmFyQm9vbAlza2lwd2hpdGUgY29udGFpbmVkIG5vZWRpdF9oZHJzIG5vZWRpdF9oZWFkZXJzIG5vZW5jb2RlX2Zyb20gbm9lbnZlbG9wZV9mcm9tIG5vZmFzdF9yZXBseSBuZXh0Z3JvdXA9bXV0dHJjVlByZWZpeCxtdXR0cmNWYXJCb29sLG11dHRyY1ZhclF1YWQsbXV0dHJjVmFyTnVtLG11dHRyY1ZhclN0cgotc3luIGtleXdvcmQgbXV0dHJjVmFyQm9vbAlza2lwd2hpdGUgY29udGFpbmVkIG5vZmNjX2NsZWFyIG5vZm9sbG93dXBfdG8gbm9mb3JjZV9uYW1lIG5vZm9yd19kZWNvZGUgbmV4dGdyb3VwPW11dHRyY1ZQcmVmaXgsbXV0dHJjVmFyQm9vbCxtdXR0cmNWYXJRdWFkLG11dHRyY1Zhck51bSxtdXR0cmNWYXJTdHIKLXN5biBrZXl3b3JkIG11dHRyY1ZhckJvb2wJc2tpcHdoaXRlIGNvbnRhaW5lZCBub2ZvcndfZGVjcnlwdCBub2ZvcndfcXVvdGUgbm9mb3J3YXJkX2RlY29kZSBub2ZvcndhcmRfZGVjcnlwdCBuZXh0Z3JvdXA9bXV0dHJjVlByZWZpeCxtdXR0cmNWYXJCb29sLG11dHRyY1ZhclF1YWQsbXV0dHJjVmFyTnVtLG11dHRyY1ZhclN0cgotc3luIGtleXdvcmQgbXV0dHJjVmFyQm9vbAlza2lwd2hpdGUgY29udGFpbmVkIG5vZm9yd2FyZF9xdW90ZSBub2hkcnMgbm9oZWFkZXIgbm9oZWxwIG5vaGlkZGVuX2hvc3Qgbm9oaWRlX2xpbWl0ZWQgbmV4dGdyb3VwPW11dHRyY1ZQcmVmaXgsbXV0dHJjVmFyQm9vbCxtdXR0cmNWYXJRdWFkLG11dHRyY1Zhck51bSxtdXR0cmNWYXJTdHIKLXN5biBrZXl3b3JkIG11dHRyY1ZhckJvb2wJc2tpcHdoaXRlIGNvbnRhaW5lZCBub2hpZGVfbWlzc2luZyBub2hpZGVfdGhyZWFkX3N1YmplY3Qgbm9oaWRlX3RvcF9saW1pdGVkIG5leHRncm91cD1tdXR0cmNWUHJlZml4LG11dHRyY1ZhckJvb2wsbXV0dHJjVmFyUXVhZCxtdXR0cmNWYXJOdW0sbXV0dHJjVmFyU3RyCi1zeW4ga2V5d29yZCBtdXR0cmNWYXJCb29sCXNraXB3aGl0ZSBjb250YWluZWQgbm9oaWRlX3RvcF9taXNzaW5nIG5vaG9ub3JfZGlzcG9zaXRpb24gbm9pZ25vcmVfbGlzdF9yZXBseV90byBub2ltYXBfY2hlY2tfc3Vic2NyaWJlZCBuZXh0Z3JvdXA9bXV0dHJjVlByZWZpeCxtdXR0cmNWYXJCb29sLG11dHRyY1ZhclF1YWQsbXV0dHJjVmFyTnVtLG11dHRyY1ZhclN0cgotc3luIGtleXdvcmQgbXV0dHJjVmFyQm9vbAlza2lwd2hpdGUgY29udGFpbmVkIG5vaW1hcF9saXN0X3N1YnNjcmliZWQgbm9pbWFwX3Bhc3NpdmUgbm9pbWFwX3BlZWsgbm9pbWFwX3NlcnZlcm5vaXNlIG5leHRncm91cD1tdXR0cmNWUHJlZml4LG11dHRyY1ZhckJvb2wsbXV0dHJjVmFyUXVhZCxtdXR0cmNWYXJOdW0sbXV0dHJjVmFyU3RyCi1zeW4ga2V5d29yZCBtdXR0cmNWYXJCb29sCXNraXB3aGl0ZSBjb250YWluZWQgbm9pbXBsaWNpdF9hdXRvdmlldyBub2luY2x1ZGVfb25seWZpcnN0IG5va2VlcF9mbGFnZ2VkIG5leHRncm91cD1tdXR0cmNWUHJlZml4LG11dHRyY1ZhckJvb2wsbXV0dHJjVmFyUXVhZCxtdXR0cmNWYXJOdW0sbXV0dHJjVmFyU3RyCi1zeW4ga2V5d29yZCBtdXR0cmNWYXJCb29sCXNraXB3aGl0ZSBjb250YWluZWQgbm9tYWlsY2FwX3Nhbml0aXplIG5vbWFpbGRpcl9oZWFkZXJfY2FjaGVfdmVyaWZ5IG5vbWFpbGRpcl90cmFzaCBuZXh0Z3JvdXA9bXV0dHJjVlByZWZpeCxtdXR0cmNWYXJCb29sLG11dHRyY1ZhclF1YWQsbXV0dHJjVmFyTnVtLG11dHRyY1ZhclN0cgotc3luIGtleXdvcmQgbXV0dHJjVmFyQm9vbAlza2lwd2hpdGUgY29udGFpbmVkIG5vbWFya19vbGQgbm9tYXJrZXJzIG5vbWVudV9tb3ZlX29mZiBub21lbnVfc2Nyb2xsIG5vbWV0YV9rZXkgbmV4dGdyb3VwPW11dHRyY1ZQcmVmaXgsbXV0dHJjVmFyQm9vbCxtdXR0cmNWYXJRdWFkLG11dHRyY1Zhck51bSxtdXR0cmNWYXJTdHIKLXN5biBrZXl3b3JkIG11dHRyY1ZhckJvb2wJc2tpcHdoaXRlIGNvbnRhaW5lZCBub21ldG9vIG5vbWhfcHVyZ2Ugbm9taW1lX2ZvcndhcmRfZGVjb2RlIG5vbmFycm93X3RyZWUgbm9wYWdlcl9zdG9wIG5leHRncm91cD1tdXR0cmNWUHJlZml4LG11dHRyY1ZhckJvb2wsbXV0dHJjVmFyUXVhZCxtdXR0cmNWYXJOdW0sbXV0dHJjVmFyU3RyCi1zeW4ga2V5d29yZCBtdXR0cmNWYXJCb29sCXNraXB3aGl0ZSBjb250YWluZWQgbm9wZ3BfYXV0b19kZWNvZGUgbm9wZ3BfYXV0b190cmFkaXRpb25hbCBub3BncF9hdXRvZW5jcnlwdCBuZXh0Z3JvdXA9bXV0dHJjVlByZWZpeCxtdXR0cmNWYXJCb29sLG11dHRyY1ZhclF1YWQsbXV0dHJjVmFyTnVtLG11dHRyY1ZhclN0cgotc3luIGtleXdvcmQgbXV0dHJjVmFyQm9vbAlza2lwd2hpdGUgY29udGFpbmVkIG5vcGdwX2F1dG9pbmxpbmUgbm9wZ3BfYXV0b3NpZ24gbm9wZ3BfY2hlY2tfZXhpdCBuZXh0Z3JvdXA9bXV0dHJjVlByZWZpeCxtdXR0cmNWYXJCb29sLG11dHRyY1ZhclF1YWQsbXV0dHJjVmFyTnVtLG11dHRyY1ZhclN0cgotc3luIGtleXdvcmQgbXV0dHJjVmFyQm9vbAlza2lwd2hpdGUgY29udGFpbmVkIG5vcGdwX2NyZWF0ZV90cmFkaXRpb25hbCBub3BncF9pZ25vcmVfc3Via2V5cyBub3BncF9sb25nX2lkcyBuZXh0Z3JvdXA9bXV0dHJjVlByZWZpeCxtdXR0cmNWYXJCb29sLG11dHRyY1ZhclF1YWQsbXV0dHJjVmFyTnVtLG11dHRyY1ZhclN0cgotc3luIGtleXdvcmQgbXV0dHJjVmFyQm9vbAlza2lwd2hpdGUgY29udGFpbmVkIG5vcGdwX3JlcGx5ZW5jcnlwdCBub3BncF9yZXBseWlubGluZSBub3BncF9yZXBseXNpZ24gbmV4dGdyb3VwPW11dHRyY1ZQcmVmaXgsbXV0dHJjVmFyQm9vbCxtdXR0cmNWYXJRdWFkLG11dHRyY1Zhck51bSxtdXR0cmNWYXJTdHIKLXN5biBrZXl3b3JkIG11dHRyY1ZhckJvb2wJc2tpcHdoaXRlIGNvbnRhaW5lZCBub3BncF9yZXBseXNpZ25lbmNyeXB0ZWQgbm9wZ3BfcmV0YWluYWJsZV9zaWdzIG5vcGdwX3Nob3dfdW51c2FibGUgbmV4dGdyb3VwPW11dHRyY1ZQcmVmaXgsbXV0dHJjVmFyQm9vbCxtdXR0cmNWYXJRdWFkLG11dHRyY1Zhck51bSxtdXR0cmNWYXJTdHIKLXN5biBrZXl3b3JkIG11dHRyY1ZhckJvb2wJc2tpcHdoaXRlIGNvbnRhaW5lZCBub3BncF9zdHJpY3RfZW5jIG5vcGdwX3VzZV9ncGdfYWdlbnQgbm9waXBlX2RlY29kZSBub3BpcGVfc3BsaXQgbmV4dGdyb3VwPW11dHRyY1ZQcmVmaXgsbXV0dHJjVmFyQm9vbCxtdXR0cmNWYXJRdWFkLG11dHRyY1Zhck51bSxtdXR0cmNWYXJTdHIKLXN5biBrZXl3b3JkIG11dHRyY1ZhckJvb2wJc2tpcHdoaXRlIGNvbnRhaW5lZCBub3BvcF9hdXRoX3RyeV9hbGwgbm9wb3BfbGFzdCBub3ByaW50X2RlY29kZSBub3ByaW50X3NwbGl0IG5leHRncm91cD1tdXR0cmNWUHJlZml4LG11dHRyY1ZhckJvb2wsbXV0dHJjVmFyUXVhZCxtdXR0cmNWYXJOdW0sbXV0dHJjVmFyU3RyCi1zeW4ga2V5d29yZCBtdXR0cmNWYXJCb29sCXNraXB3aGl0ZSBjb250YWluZWQgbm9wcm9tcHRfYWZ0ZXIgbm9yZWFkX29ubHkgbm9yZXBseV9zZWxmIG5vcmVzb2x2ZSBub3JldmVyc2VfYWxpYXMgbmV4dGdyb3VwPW11dHRyY1ZQcmVmaXgsbXV0dHJjVmFyQm9vbCxtdXR0cmNWYXJRdWFkLG11dHRyY1Zhck51bSxtdXR0cmNWYXJTdHIKLXN5biBrZXl3b3JkIG11dHRyY1ZhckJvb2wJc2tpcHdoaXRlIGNvbnRhaW5lZCBub3JldmVyc2VfbmFtZSBub3JldmVyc2VfcmVhbG5hbWUgbm9yZmMyMDQ3X3BhcmFtZXRlcnMgbm9zYXZlX2FkZHJlc3MgbmV4dGdyb3VwPW11dHRyY1ZQcmVmaXgsbXV0dHJjVmFyQm9vbCxtdXR0cmNWYXJRdWFkLG11dHRyY1Zhck51bSxtdXR0cmNWYXJTdHIKLXN5biBrZXl3b3JkIG11dHRyY1ZhckJvb2wJc2tpcHdoaXRlIGNvbnRhaW5lZCBub3NhdmVfZW1wdHkgbm9zYXZlX25hbWUgbm9zY29yZSBub3NpZ19kYXNoZXMgbm9zaWdfb25fdG9wIG5leHRncm91cD1tdXR0cmNWUHJlZml4LG11dHRyY1ZhckJvb2wsbXV0dHJjVmFyUXVhZCxtdXR0cmNWYXJOdW0sbXV0dHJjVmFyU3RyCi1zeW4ga2V5d29yZCBtdXR0cmNWYXJCb29sCXNraXB3aGl0ZSBjb250YWluZWQgbm9zbWFydF93cmFwIG5vc21pbWVfYXNrX2NlcnRfbGFiZWwgbm9zbWltZV9kZWNyeXB0X3VzZV9kZWZhdWx0X2tleSBuZXh0Z3JvdXA9bXV0dHJjVlByZWZpeCxtdXR0cmNWYXJCb29sLG11dHRyY1ZhclF1YWQsbXV0dHJjVmFyTnVtLG11dHRyY1ZhclN0cgotc3luIGtleXdvcmQgbXV0dHJjVmFyQm9vbAlza2lwd2hpdGUgY29udGFpbmVkIG5vc21pbWVfaXNfZGVmYXVsdCBub3NvcnRfcmUgbm9zc2xfZm9yY2VfdGxzIG5vc3NsX3VzZV9zc2x2MiBuZXh0Z3JvdXA9bXV0dHJjVlByZWZpeCxtdXR0cmNWYXJCb29sLG11dHRyY1ZhclF1YWQsbXV0dHJjVmFyTnVtLG11dHRyY1ZhclN0cgotc3luIGtleXdvcmQgbXV0dHJjVmFyQm9vbAlza2lwd2hpdGUgY29udGFpbmVkIG5vc3NsX3VzZV9zc2x2MyBub3NzbF91c2VfdGxzdjEgbm9zc2xfdXNlc3lzdGVtY2VydHMgbm9zdGF0dXNfb25fdG9wIG5leHRncm91cD1tdXR0cmNWUHJlZml4LG11dHRyY1ZhckJvb2wsbXV0dHJjVmFyUXVhZCxtdXR0cmNWYXJOdW0sbXV0dHJjVmFyU3RyCi1zeW4ga2V5d29yZCBtdXR0cmNWYXJCb29sCXNraXB3aGl0ZSBjb250YWluZWQgbm9zdHJpY3RfdGhyZWFkcyBub3N1c3BlbmQgbm90ZXh0X2Zsb3dlZCBub3Rob3JvdWdoX3NlYXJjaCBuZXh0Z3JvdXA9bXV0dHJjVlByZWZpeCxtdXR0cmNWYXJCb29sLG11dHRyY1ZhclF1YWQsbXV0dHJjVmFyTnVtLG11dHRyY1ZhclN0cgotc3luIGtleXdvcmQgbXV0dHJjVmFyQm9vbAlza2lwd2hpdGUgY29udGFpbmVkIG5vdGhyZWFkX3JlY2VpdmVkIG5vdGlsZGUgbm91bmNvbGxhcHNlX2p1bXAgbm91c2VfOGJpdG1pbWUgbmV4dGdyb3VwPW11dHRyY1ZQcmVmaXgsbXV0dHJjVmFyQm9vbCxtdXR0cmNWYXJRdWFkLG11dHRyY1Zhck51bSxtdXR0cmNWYXJTdHIKLXN5biBrZXl3b3JkIG11dHRyY1ZhckJvb2wJc2tpcHdoaXRlIGNvbnRhaW5lZCBub3VzZV9kb21haW4gbm91c2VfZW52ZWxvcGVfZnJvbSBub3VzZV9mcm9tIG5vdXNlX2lkbiBub3VzZV9pcHY2IG5leHRncm91cD1tdXR0cmNWUHJlZml4LG11dHRyY1ZhckJvb2wsbXV0dHJjVmFyUXVhZCxtdXR0cmNWYXJOdW0sbXV0dHJjVmFyU3RyCi1zeW4ga2V5d29yZCBtdXR0cmNWYXJCb29sCXNraXB3aGl0ZSBjb250YWluZWQgbm91c2VyX2FnZW50IG5vd2FpdF9rZXkgbm93ZWVkIG5vd3JhcF9zZWFyY2ggbm93cml0ZV9iY2MgbmV4dGdyb3VwPW11dHRyY1ZQcmVmaXgsbXV0dHJjVmFyQm9vbCxtdXR0cmNWYXJRdWFkLG11dHRyY1Zhck51bSxtdXR0cmNWYXJTdHIKK3N5biBrZXl3b3JkIG11dHRyY1ZhckJvb2wJc2tpcHdoaXRlIGNvbnRhaW5lZCAKKwkJCVwgbm9hbGxvd184Yml0IG5vYWxsb3dfYW5zaSBub2Fycm93X2N1cnNvciBub2FzY2lpX2NoYXJzIG5vYXNrYmNjIG5vYXNrY2Mgbm9hdHRhY2hfc3BsaXQKKwkJCVwgbm9hdXRvX3RhZyBub2F1dG9lZGl0IG5vYmVlcCBub2JlZXBfbmV3IG5vYm91bmNlX2RlbGl2ZXJlZCBub2JyYWlsbGVfZnJpZW5kbHkKKwkJCVwgbm9jaGVja19tYm94X3NpemUgbm9jaGVja19uZXcgbm9jb2xsYXBzZV91bnJlYWQgbm9jb25maXJtYXBwZW5kIG5vY29uZmlybWNyZWF0ZQorCQkJXCBub2NyeXB0X2F1dG9lbmNyeXB0IG5vY3J5cHRfYXV0b3BncCBub2NyeXB0X2F1dG9zaWduIG5vY3J5cHRfYXV0b3NtaW1lCisJCQlcIG5vY3J5cHRfY29uZmlybWhvb2sgbm9jcnlwdF9vcHBvcnR1bmlzdGljX2VuY3J5cHQgbm9jcnlwdF9yZXBseWVuY3J5cHQKKwkJCVwgbm9jcnlwdF9yZXBseXNpZ24gbm9jcnlwdF9yZXBseXNpZ25lbmNyeXB0ZWQgbm9jcnlwdF90aW1lc3RhbXAgbm9jcnlwdF91c2VfZ3BnbWUKKwkJCVwgbm9jcnlwdF91c2VfcGthIG5vZGVsZXRlX3VudGFnIG5vZGlnZXN0X2NvbGxhcHNlIG5vZHVwbGljYXRlX3RocmVhZHMgbm9lZGl0X2hkcnMKKwkJCVwgbm9lZGl0X2hlYWRlcnMgbm9lbmNvZGVfZnJvbSBub2VudmVsb3BlX2Zyb20gbm9mYXN0X3JlcGx5IG5vZmNjX2NsZWFyIG5vZm9sbG93dXBfdG8KKwkJCVwgbm9mb3JjZV9uYW1lIG5vZm9yd19kZWNvZGUgbm9mb3J3X2RlY3J5cHQgbm9mb3J3X3F1b3RlIG5vZm9yd2FyZF9kZWNvZGUgbm9mb3J3YXJkX2RlY3J5cHQKKwkJCVwgbm9mb3J3YXJkX3F1b3RlIG5vaGRycyBub2hlYWRlciBub2hlbHAgbm9oaWRkZW5faG9zdCBub2hpZGVfbGltaXRlZCBub2hpZGVfbWlzc2luZworCQkJXCBub2hpZGVfdGhyZWFkX3N1YmplY3Qgbm9oaWRlX3RvcF9saW1pdGVkIG5vaGlkZV90b3BfbWlzc2luZyBub2hvbm9yX2Rpc3Bvc2l0aW9uCisJCQlcIG5vaWRuX2RlY29kZSBub2lkbl9lbmNvZGUgbm9pZ25vcmVfbGluZWFyX3doaXRlX3NwYWNlIG5vaWdub3JlX2xpc3RfcmVwbHlfdG8KKwkJCVwgbm9pbWFwX2NoZWNrX3N1YnNjcmliZWQgbm9pbWFwX2xpc3Rfc3Vic2NyaWJlZCBub2ltYXBfcGFzc2l2ZSBub2ltYXBfcGVlaworCQkJXCBub2ltYXBfc2VydmVybm9pc2Ugbm9pbXBsaWNpdF9hdXRvdmlldyBub2luY2x1ZGVfb25seWZpcnN0IG5va2VlcF9mbGFnZ2VkCisJCQlcIG5vbWFpbF9jaGVja19yZWNlbnQgbm9tYWlsX2NoZWNrX3N0YXRzIG5vbWFpbGNhcF9zYW5pdGl6ZSBub21haWxkaXJfY2hlY2tfY3VyCisJCQlcIG5vbWFpbGRpcl9oZWFkZXJfY2FjaGVfdmVyaWZ5IG5vbWFpbGRpcl90cmFzaCBub21hcmtfb2xkIG5vbWFya2VycyBub21lbnVfbW92ZV9vZmYKKwkJCVwgbm9tZW51X3Njcm9sbCBub21lc3NhZ2VfY2FjaGVfY2xlYW4gbm9tZXRhX2tleSBub21ldG9vIG5vbWhfcHVyZ2Ugbm9taW1lX2ZvcndhcmRfZGVjb2RlCisJCQlcIG5vbmFycm93X3RyZWUgbm9wYWdlcl9zdG9wIG5vcGdwX2F1dG9fZGVjb2RlIG5vcGdwX2F1dG9fdHJhZGl0aW9uYWwgbm9wZ3BfYXV0b2VuY3J5cHQKKwkJCVwgbm9wZ3BfYXV0b2lubGluZSBub3BncF9hdXRvc2lnbiBub3BncF9jaGVja19leGl0IG5vcGdwX2NyZWF0ZV90cmFkaXRpb25hbAorCQkJXCBub3BncF9pZ25vcmVfc3Via2V5cyBub3BncF9sb25nX2lkcyBub3BncF9yZXBseWVuY3J5cHQgbm9wZ3BfcmVwbHlpbmxpbmUgbm9wZ3BfcmVwbHlzaWduCisJCQlcIG5vcGdwX3JlcGx5c2lnbmVuY3J5cHRlZCBub3BncF9yZXRhaW5hYmxlX3NpZ3Mgbm9wZ3Bfc2hvd191bnVzYWJsZSBub3BncF9zdHJpY3RfZW5jCisJCQlcIG5vcGdwX3VzZV9ncGdfYWdlbnQgbm9waXBlX2RlY29kZSBub3BpcGVfc3BsaXQgbm9wb3BfYXV0aF90cnlfYWxsIG5vcG9wX2xhc3QKKwkJCVwgbm9wb3N0cG9uZV9lbmNyeXB0IG5vcG9zdHBvbmVfZW5jcnlwdF9hcyBub3ByaW50X2RlY29kZSBub3ByaW50X3NwbGl0IG5vcHJvbXB0X2FmdGVyCisJCQlcIG5vcmVhZF9vbmx5IG5vcmVmbG93X3NwYWNlX3F1b3RlcyBub3JlZmxvd190ZXh0IG5vcmVmbG93X3dyYXAgbm9yZXBseV9zZWxmIG5vcmVzb2x2ZQorCQkJXCBub3Jlc3VtZV9kcmFmdF9maWxlcyBub3Jlc3VtZV9lZGl0ZWRfZHJhZnRfZmlsZXMgbm9yZXZlcnNlX2FsaWFzIG5vcmV2ZXJzZV9uYW1lCisJCQlcIG5vcmV2ZXJzZV9yZWFsbmFtZSBub3JmYzIwNDdfcGFyYW1ldGVycyBub3NhdmVfYWRkcmVzcyBub3NhdmVfZW1wdHkgbm9zYXZlX25hbWUgbm9zY29yZQorCQkJXCBub3NpZGViYXJfZm9sZGVyX2luZGVudCBub3NpZGViYXJfbmV3X21haWxfb25seSBub3NpZGViYXJfbmV4dF9uZXdfd3JhcAorCQkJXCBub3NpZGViYXJfc2hvcnRfcGF0aCBub3NpZGViYXJfc29ydCBub3NpZGViYXJfdmlzaWJsZSBub3NpZ19kYXNoZXMgbm9zaWdfb25fdG9wCisJCQlcIG5vc21hcnRfd3JhcCBub3NtaW1lX2Fza19jZXJ0X2xhYmVsIG5vc21pbWVfZGVjcnlwdF91c2VfZGVmYXVsdF9rZXkgbm9zbWltZV9pc19kZWZhdWx0CisJCQlcIG5vc29ydF9yZSBub3NzbF9mb3JjZV90bHMgbm9zc2xfdXNlX3NzbHYyIG5vc3NsX3VzZV9zc2x2MyBub3NzbF91c2VfdGxzdjEKKwkJCVwgbm9zc2xfdXNlc3lzdGVtY2VydHMgbm9zc2xfdmVyaWZ5X2RhdGVzIG5vc3NsX3ZlcmlmeV9ob3N0IG5vc3RhdHVzX29uX3RvcCBub3N0cmljdF9taW1lCisJCQlcIG5vc3RyaWN0X3RocmVhZHMgbm9zdXNwZW5kIG5vdGV4dF9mbG93ZWQgbm90aG9yb3VnaF9zZWFyY2ggbm90aHJlYWRfcmVjZWl2ZWQgbm90aWxkZQorCQkJXCBub3RzX2VuYWJsZWQgbm91bmNvbGxhcHNlX2p1bXAgbm91c2VfOGJpdG1pbWUgbm91c2VfZG9tYWluIG5vdXNlX2VudmVsb3BlX2Zyb20gbm91c2VfZnJvbQorCQkJXCBub3VzZV9pZG4gbm91c2VfaXB2NiBub3VzZXJfYWdlbnQgbm93YWl0X2tleSBub3dlZWQgbm93cmFwX3NlYXJjaCBub3dyaXRlX2JjYworCQkJXCBuZXh0Z3JvdXA9bXV0dHJjVlByZWZpeCxtdXR0cmNWYXJCb29sLG11dHRyY1ZhclF1YWQsbXV0dHJjVmFyTnVtLG11dHRyY1ZhclN0cgogCi1zeW4ga2V5d29yZCBtdXR0cmNWYXJCb29sCXNraXB3aGl0ZSBjb250YWluZWQgaW52YWxsb3dfOGJpdCBpbnZhbGxvd19hbnNpIGludmFycm93X2N1cnNvciBpbnZhc2NpaV9jaGFycyBpbnZhc2tiY2MgbmV4dGdyb3VwPW11dHRyY1ZQcmVmaXgsbXV0dHJjVmFyQm9vbCxtdXR0cmNWYXJRdWFkLG11dHRyY1Zhck51bSxtdXR0cmNWYXJTdHIKLXN5biBrZXl3b3JkIG11dHRyY1ZhckJvb2wJc2tpcHdoaXRlIGNvbnRhaW5lZCBpbnZhc2tjYyBpbnZhdHRhY2hfc3BsaXQgaW52YXV0b190YWcgaW52YXV0b2VkaXQgaW52YmVlcCBpbnZiZWVwX25ldyBuZXh0Z3JvdXA9bXV0dHJjVlByZWZpeCxtdXR0cmNWYXJCb29sLG11dHRyY1ZhclF1YWQsbXV0dHJjVmFyTnVtLG11dHRyY1ZhclN0cgotc3luIGtleXdvcmQgbXV0dHJjVmFyQm9vbAlza2lwd2hpdGUgY29udGFpbmVkIGludmJvdW5jZV9kZWxpdmVyZWQgaW52YnJhaWxsZV9mcmllbmRseSBpbnZjaGVja19uZXcgaW52Y29sbGFwc2VfdW5yZWFkIG5leHRncm91cD1tdXR0cmNWUHJlZml4LG11dHRyY1ZhckJvb2wsbXV0dHJjVmFyUXVhZCxtdXR0cmNWYXJOdW0sbXV0dHJjVmFyU3RyCi1zeW4ga2V5d29yZCBtdXR0cmNWYXJCb29sCXNraXB3aGl0ZSBjb250YWluZWQgaW52Y29uZmlybWFwcGVuZCBpbnZjb25maXJtY3JlYXRlIGludmNyeXB0X2F1dG9lbmNyeXB0IGludmNyeXB0X2F1dG9wZ3AgbmV4dGdyb3VwPW11dHRyY1ZQcmVmaXgsbXV0dHJjVmFyQm9vbCxtdXR0cmNWYXJRdWFkLG11dHRyY1Zhck51bSxtdXR0cmNWYXJTdHIKLXN5biBrZXl3b3JkIG11dHRyY1ZhckJvb2wJc2tpcHdoaXRlIGNvbnRhaW5lZCBpbnZjcnlwdF9hdXRvc2lnbiBpbnZjcnlwdF9hdXRvc21pbWUgaW52Y3J5cHRfcmVwbHllbmNyeXB0IG5leHRncm91cD1tdXR0cmNWUHJlZml4LG11dHRyY1ZhckJvb2wsbXV0dHJjVmFyUXVhZCxtdXR0cmNWYXJOdW0sbXV0dHJjVmFyU3RyCi1zeW4ga2V5d29yZCBtdXR0cmNWYXJCb29sCXNraXB3aGl0ZSBjb250YWluZWQgaW52Y3J5cHRfcmVwbHlzaWduIGludmNyeXB0X3JlcGx5c2lnbmVuY3J5cHRlZCBpbnZjcnlwdF90aW1lc3RhbXAgbmV4dGdyb3VwPW11dHRyY1ZQcmVmaXgsbXV0dHJjVmFyQm9vbCxtdXR0cmNWYXJRdWFkLG11dHRyY1Zhck51bSxtdXR0cmNWYXJTdHIKLXN5biBrZXl3b3JkIG11dHRyY1ZhckJvb2wJc2tpcHdoaXRlIGNvbnRhaW5lZCBpbnZjcnlwdF91c2VfZ3BnbWUgaW52ZGVsZXRlX3VudGFnIGludmRpZ2VzdF9jb2xsYXBzZSBpbnZkdXBsaWNhdGVfdGhyZWFkcyBuZXh0Z3JvdXA9bXV0dHJjVlByZWZpeCxtdXR0cmNWYXJCb29sLG11dHRyY1ZhclF1YWQsbXV0dHJjVmFyTnVtLG11dHRyY1ZhclN0cgotc3luIGtleXdvcmQgbXV0dHJjVmFyQm9vbAlza2lwd2hpdGUgY29udGFpbmVkIGludmVkaXRfaGRycyBpbnZlZGl0X2hlYWRlcnMgaW52ZW5jb2RlX2Zyb20gaW52ZW52ZWxvcGVfZnJvbSBpbnZmYXN0X3JlcGx5IG5leHRncm91cD1tdXR0cmNWUHJlZml4LG11dHRyY1ZhckJvb2wsbXV0dHJjVmFyUXVhZCxtdXR0cmNWYXJOdW0sbXV0dHJjVmFyU3RyCi1zeW4ga2V5d29yZCBtdXR0cmNWYXJCb29sCXNraXB3aGl0ZSBjb250YWluZWQgaW52ZmNjX2NsZWFyIGludmZvbGxvd3VwX3RvIGludmZvcmNlX25hbWUgaW52Zm9yd19kZWNvZGUgbmV4dGdyb3VwPW11dHRyY1ZQcmVmaXgsbXV0dHJjVmFyQm9vbCxtdXR0cmNWYXJRdWFkLG11dHRyY1Zhck51bSxtdXR0cmNWYXJTdHIKLXN5biBrZXl3b3JkIG11dHRyY1ZhckJvb2wJc2tpcHdoaXRlIGNvbnRhaW5lZCBpbnZmb3J3X2RlY3J5cHQgaW52Zm9yd19xdW90ZSBpbnZmb3J3YXJkX2RlY29kZSBpbnZmb3J3YXJkX2RlY3J5cHQgbmV4dGdyb3VwPW11dHRyY1ZQcmVmaXgsbXV0dHJjVmFyQm9vbCxtdXR0cmNWYXJRdWFkLG11dHRyY1Zhck51bSxtdXR0cmNWYXJTdHIKLXN5biBrZXl3b3JkIG11dHRyY1ZhckJvb2wJc2tpcHdoaXRlIGNvbnRhaW5lZCBpbnZmb3J3YXJkX3F1b3RlIGludmhkcnMgaW52aGVhZGVyIGludmhlbHAgaW52aGlkZGVuX2hvc3QgaW52aGlkZV9saW1pdGVkIG5leHRncm91cD1tdXR0cmNWUHJlZml4LG11dHRyY1ZhckJvb2wsbXV0dHJjVmFyUXVhZCxtdXR0cmNWYXJOdW0sbXV0dHJjVmFyU3RyCi1zeW4ga2V5d29yZCBtdXR0cmNWYXJCb29sCXNraXB3aGl0ZSBjb250YWluZWQgaW52aGlkZV9taXNzaW5nIGludmhpZGVfdGhyZWFkX3N1YmplY3QgaW52aGlkZV90b3BfbGltaXRlZCBuZXh0Z3JvdXA9bXV0dHJjVlByZWZpeCxtdXR0cmNWYXJCb29sLG11dHRyY1ZhclF1YWQsbXV0dHJjVmFyTnVtLG11dHRyY1ZhclN0cgotc3luIGtleXdvcmQgbXV0dHJjVmFyQm9vbAlza2lwd2hpdGUgY29udGFpbmVkIGludmhpZGVfdG9wX21pc3NpbmcgaW52aG9ub3JfZGlzcG9zaXRpb24gaW52aWdub3JlX2xpc3RfcmVwbHlfdG8gaW52aW1hcF9jaGVja19zdWJzY3JpYmVkIG5leHRncm91cD1tdXR0cmNWUHJlZml4LG11dHRyY1ZhckJvb2wsbXV0dHJjVmFyUXVhZCxtdXR0cmNWYXJOdW0sbXV0dHJjVmFyU3RyCi1zeW4ga2V5d29yZCBtdXR0cmNWYXJCb29sCXNraXB3aGl0ZSBjb250YWluZWQgaW52aW1hcF9saXN0X3N1YnNjcmliZWQgaW52aW1hcF9wYXNzaXZlIGludmltYXBfcGVlayBpbnZpbWFwX3NlcnZlcm5vaXNlIG5leHRncm91cD1tdXR0cmNWUHJlZml4LG11dHRyY1ZhckJvb2wsbXV0dHJjVmFyUXVhZCxtdXR0cmNWYXJOdW0sbXV0dHJjVmFyU3RyCi1zeW4ga2V5d29yZCBtdXR0cmNWYXJCb29sCXNraXB3aGl0ZSBjb250YWluZWQgaW52aW1wbGljaXRfYXV0b3ZpZXcgaW52aW5jbHVkZV9vbmx5Zmlyc3QgaW52a2VlcF9mbGFnZ2VkIG5leHRncm91cD1tdXR0cmNWUHJlZml4LG11dHRyY1ZhckJvb2wsbXV0dHJjVmFyUXVhZCxtdXR0cmNWYXJOdW0sbXV0dHJjVmFyU3RyCi1zeW4ga2V5d29yZCBtdXR0cmNWYXJCb29sCXNraXB3aGl0ZSBjb250YWluZWQgaW52bWFpbGNhcF9zYW5pdGl6ZSBpbnZtYWlsZGlyX2hlYWRlcl9jYWNoZV92ZXJpZnkgaW52bWFpbGRpcl90cmFzaCBuZXh0Z3JvdXA9bXV0dHJjVlByZWZpeCxtdXR0cmNWYXJCb29sLG11dHRyY1ZhclF1YWQsbXV0dHJjVmFyTnVtLG11dHRyY1ZhclN0cgotc3luIGtleXdvcmQgbXV0dHJjVmFyQm9vbAlza2lwd2hpdGUgY29udGFpbmVkIGludm1hcmtfb2xkIGludm1hcmtlcnMgaW52bWVudV9tb3ZlX29mZiBpbnZtZW51X3Njcm9sbCBpbnZtZXRhX2tleSBuZXh0Z3JvdXA9bXV0dHJjVlByZWZpeCxtdXR0cmNWYXJCb29sLG11dHRyY1ZhclF1YWQsbXV0dHJjVmFyTnVtLG11dHRyY1ZhclN0cgotc3luIGtleXdvcmQgbXV0dHJjVmFyQm9vbAlza2lwd2hpdGUgY29udGFpbmVkIGludm1ldG9vIGludm1oX3B1cmdlIGludm1pbWVfZm9yd2FyZF9kZWNvZGUgaW52bmFycm93X3RyZWUgaW52cGFnZXJfc3RvcCBuZXh0Z3JvdXA9bXV0dHJjVlByZWZpeCxtdXR0cmNWYXJCb29sLG11dHRyY1ZhclF1YWQsbXV0dHJjVmFyTnVtLG11dHRyY1ZhclN0cgotc3luIGtleXdvcmQgbXV0dHJjVmFyQm9vbAlza2lwd2hpdGUgY29udGFpbmVkIGludnBncF9hdXRvX2RlY29kZSBpbnZwZ3BfYXV0b190cmFkaXRpb25hbCBpbnZwZ3BfYXV0b2VuY3J5cHQgbmV4dGdyb3VwPW11dHRyY1ZQcmVmaXgsbXV0dHJjVmFyQm9vbCxtdXR0cmNWYXJRdWFkLG11dHRyY1Zhck51bSxtdXR0cmNWYXJTdHIKLXN5biBrZXl3b3JkIG11dHRyY1ZhckJvb2wJc2tpcHdoaXRlIGNvbnRhaW5lZCBpbnZwZ3BfYXV0b2lubGluZSBpbnZwZ3BfYXV0b3NpZ24gaW52cGdwX2NoZWNrX2V4aXQgbmV4dGdyb3VwPW11dHRyY1ZQcmVmaXgsbXV0dHJjVmFyQm9vbCxtdXR0cmNWYXJRdWFkLG11dHRyY1Zhck51bSxtdXR0cmNWYXJTdHIKLXN5biBrZXl3b3JkIG11dHRyY1ZhckJvb2wJc2tpcHdoaXRlIGNvbnRhaW5lZCBpbnZwZ3BfY3JlYXRlX3RyYWRpdGlvbmFsIGludnBncF9pZ25vcmVfc3Via2V5cyBpbnZwZ3BfbG9uZ19pZHMgbmV4dGdyb3VwPW11dHRyY1ZQcmVmaXgsbXV0dHJjVmFyQm9vbCxtdXR0cmNWYXJRdWFkLG11dHRyY1Zhck51bSxtdXR0cmNWYXJTdHIKLXN5biBrZXl3b3JkIG11dHRyY1ZhckJvb2wJc2tpcHdoaXRlIGNvbnRhaW5lZCBpbnZwZ3BfcmVwbHllbmNyeXB0IGludnBncF9yZXBseWlubGluZSBpbnZwZ3BfcmVwbHlzaWduIG5leHRncm91cD1tdXR0cmNWUHJlZml4LG11dHRyY1ZhckJvb2wsbXV0dHJjVmFyUXVhZCxtdXR0cmNWYXJOdW0sbXV0dHJjVmFyU3RyCi1zeW4ga2V5d29yZCBtdXR0cmNWYXJCb29sCXNraXB3aGl0ZSBjb250YWluZWQgaW52cGdwX3JlcGx5c2lnbmVuY3J5cHRlZCBpbnZwZ3BfcmV0YWluYWJsZV9zaWdzIGludnBncF9zaG93X3VudXNhYmxlIG5leHRncm91cD1tdXR0cmNWUHJlZml4LG11dHRyY1ZhckJvb2wsbXV0dHJjVmFyUXVhZCxtdXR0cmNWYXJOdW0sbXV0dHJjVmFyU3RyCi1zeW4ga2V5d29yZCBtdXR0cmNWYXJCb29sCXNraXB3aGl0ZSBjb250YWluZWQgaW52cGdwX3N0cmljdF9lbmMgaW52cGdwX3VzZV9ncGdfYWdlbnQgaW52cGlwZV9kZWNvZGUgaW52cGlwZV9zcGxpdCBuZXh0Z3JvdXA9bXV0dHJjVlByZWZpeCxtdXR0cmNWYXJCb29sLG11dHRyY1ZhclF1YWQsbXV0dHJjVmFyTnVtLG11dHRyY1ZhclN0cgotc3luIGtleXdvcmQgbXV0dHJjVmFyQm9vbAlza2lwd2hpdGUgY29udGFpbmVkIGludnBvcF9hdXRoX3RyeV9hbGwgaW52cG9wX2xhc3QgaW52cHJpbnRfZGVjb2RlIGludnByaW50X3NwbGl0IG5leHRncm91cD1tdXR0cmNWUHJlZml4LG11dHRyY1ZhckJvb2wsbXV0dHJjVmFyUXVhZCxtdXR0cmNWYXJOdW0sbXV0dHJjVmFyU3RyCi1zeW4ga2V5d29yZCBtdXR0cmNWYXJCb29sCXNraXB3aGl0ZSBjb250YWluZWQgaW52cHJvbXB0X2FmdGVyIGludnJlYWRfb25seSBpbnZyZXBseV9zZWxmIGludnJlc29sdmUgaW52cmV2ZXJzZV9hbGlhcyBuZXh0Z3JvdXA9bXV0dHJjVlByZWZpeCxtdXR0cmNWYXJCb29sLG11dHRyY1ZhclF1YWQsbXV0dHJjVmFyTnVtLG11dHRyY1ZhclN0cgotc3luIGtleXdvcmQgbXV0dHJjVmFyQm9vbAlza2lwd2hpdGUgY29udGFpbmVkIGludnJldmVyc2VfbmFtZSBpbnZyZXZlcnNlX3JlYWxuYW1lIGludnJmYzIwNDdfcGFyYW1ldGVycyBpbnZzYXZlX2FkZHJlc3MgbmV4dGdyb3VwPW11dHRyY1ZQcmVmaXgsbXV0dHJjVmFyQm9vbCxtdXR0cmNWYXJRdWFkLG11dHRyY1Zhck51bSxtdXR0cmNWYXJTdHIKLXN5biBrZXl3b3JkIG11dHRyY1ZhckJvb2wJc2tpcHdoaXRlIGNvbnRhaW5lZCBpbnZzYXZlX2VtcHR5IGludnNhdmVfbmFtZSBpbnZzY29yZSBpbnZzaWdfZGFzaGVzIGludnNpZ19vbl90b3AgbmV4dGdyb3VwPW11dHRyY1ZQcmVmaXgsbXV0dHJjVmFyQm9vbCxtdXR0cmNWYXJRdWFkLG11dHRyY1Zhck51bSxtdXR0cmNWYXJTdHIKLXN5biBrZXl3b3JkIG11dHRyY1ZhckJvb2wJc2tpcHdoaXRlIGNvbnRhaW5lZCBpbnZzbWFydF93cmFwIGludnNtaW1lX2Fza19jZXJ0X2xhYmVsIGludnNtaW1lX2RlY3J5cHRfdXNlX2RlZmF1bHRfa2V5IG5leHRncm91cD1tdXR0cmNWUHJlZml4LG11dHRyY1ZhckJvb2wsbXV0dHJjVmFyUXVhZCxtdXR0cmNWYXJOdW0sbXV0dHJjVmFyU3RyCi1zeW4ga2V5d29yZCBtdXR0cmNWYXJCb29sCXNraXB3aGl0ZSBjb250YWluZWQgaW52c21pbWVfaXNfZGVmYXVsdCBpbnZzb3J0X3JlIGludnNzbF9mb3JjZV90bHMgaW52c3NsX3VzZV9zc2x2MiBuZXh0Z3JvdXA9bXV0dHJjVlByZWZpeCxtdXR0cmNWYXJCb29sLG11dHRyY1ZhclF1YWQsbXV0dHJjVmFyTnVtLG11dHRyY1ZhclN0cgotc3luIGtleXdvcmQgbXV0dHJjVmFyQm9vbAlza2lwd2hpdGUgY29udGFpbmVkIGludnNzbF91c2Vfc3NsdjMgaW52c3NsX3VzZV90bHN2MSBpbnZzc2xfdXNlc3lzdGVtY2VydHMgaW52c3RhdHVzX29uX3RvcCBuZXh0Z3JvdXA9bXV0dHJjVlByZWZpeCxtdXR0cmNWYXJCb29sLG11dHRyY1ZhclF1YWQsbXV0dHJjVmFyTnVtLG11dHRyY1ZhclN0cgotc3luIGtleXdvcmQgbXV0dHJjVmFyQm9vbAlza2lwd2hpdGUgY29udGFpbmVkIGludnN0cmljdF90aHJlYWRzIGludnN1c3BlbmQgaW52dGV4dF9mbG93ZWQgaW52dGhvcm91Z2hfc2VhcmNoIG5leHRncm91cD1tdXR0cmNWUHJlZml4LG11dHRyY1ZhckJvb2wsbXV0dHJjVmFyUXVhZCxtdXR0cmNWYXJOdW0sbXV0dHJjVmFyU3RyCi1zeW4ga2V5d29yZCBtdXR0cmNWYXJCb29sCXNraXB3aGl0ZSBjb250YWluZWQgaW52dGhyZWFkX3JlY2VpdmVkIGludnRpbGRlIGludnVuY29sbGFwc2VfanVtcCBpbnZ1c2VfOGJpdG1pbWUgbmV4dGdyb3VwPW11dHRyY1ZQcmVmaXgsbXV0dHJjVmFyQm9vbCxtdXR0cmNWYXJRdWFkLG11dHRyY1Zhck51bSxtdXR0cmNWYXJTdHIKLXN5biBrZXl3b3JkIG11dHRyY1ZhckJvb2wJc2tpcHdoaXRlIGNvbnRhaW5lZCBpbnZ1c2VfZG9tYWluIGludnVzZV9lbnZlbG9wZV9mcm9tIGludnVzZV9mcm9tIGludnVzZV9pZG4gaW52dXNlX2lwdjYgbmV4dGdyb3VwPW11dHRyY1ZQcmVmaXgsbXV0dHJjVmFyQm9vbCxtdXR0cmNWYXJRdWFkLG11dHRyY1Zhck51bSxtdXR0cmNWYXJTdHIKLXN5biBrZXl3b3JkIG11dHRyY1ZhckJvb2wJc2tpcHdoaXRlIGNvbnRhaW5lZCBpbnZ1c2VyX2FnZW50IGludndhaXRfa2V5IGludndlZWQgaW52d3JhcF9zZWFyY2ggaW52d3JpdGVfYmNjIG5leHRncm91cD1tdXR0cmNWUHJlZml4LG11dHRyY1ZhckJvb2wsbXV0dHJjVmFyUXVhZCxtdXR0cmNWYXJOdW0sbXV0dHJjVmFyU3RyCi1pZiB1c2VfbXV0dF9zaWRlYmFyID09IDEKLSAgICBzeW4ga2V5d29yZCBtdXR0cmNWYXJCb29sIHNraXB3aGl0ZSBjb250YWluZWQgc2lkZWJhcl92aXNpYmxlIHNpZGViYXJfc29ydCBuZXh0Z3JvdXA9bXV0dHJjVlByZWZpeCxtdXR0cmNWYXJCb29sLG11dHRyY1ZhclF1YWQsbXV0dHJjVmFyTnVtLG11dHRyY1ZhclN0cgotZW5kaWYKK3N5biBrZXl3b3JkIG11dHRyY1ZhckJvb2wJc2tpcHdoaXRlIGNvbnRhaW5lZAorCQkJXCBpbnZhbGxvd184Yml0IGludmFsbG93X2Fuc2kgaW52YXJyb3dfY3Vyc29yIGludmFzY2lpX2NoYXJzIGludmFza2JjYyBpbnZhc2tjYyBpbnZhdHRhY2hfc3BsaXQKKwkJCVwgaW52YXV0b190YWcgaW52YXV0b2VkaXQgaW52YmVlcCBpbnZiZWVwX25ldyBpbnZib3VuY2VfZGVsaXZlcmVkIGludmJyYWlsbGVfZnJpZW5kbHkKKwkJCVwgaW52Y2hlY2tfbWJveF9zaXplIGludmNoZWNrX25ldyBpbnZjb2xsYXBzZV91bnJlYWQgaW52Y29uZmlybWFwcGVuZCBpbnZjb25maXJtY3JlYXRlCisJCQlcIGludmNyeXB0X2F1dG9lbmNyeXB0IGludmNyeXB0X2F1dG9wZ3AgaW52Y3J5cHRfYXV0b3NpZ24gaW52Y3J5cHRfYXV0b3NtaW1lCisJCQlcIGludmNyeXB0X2NvbmZpcm1ob29rIGludmNyeXB0X29wcG9ydHVuaXN0aWNfZW5jcnlwdCBpbnZjcnlwdF9yZXBseWVuY3J5cHQKKwkJCVwgaW52Y3J5cHRfcmVwbHlzaWduIGludmNyeXB0X3JlcGx5c2lnbmVuY3J5cHRlZCBpbnZjcnlwdF90aW1lc3RhbXAgaW52Y3J5cHRfdXNlX2dwZ21lCisJCQlcIGludmNyeXB0X3VzZV9wa2EgaW52ZGVsZXRlX3VudGFnIGludmRpZ2VzdF9jb2xsYXBzZSBpbnZkdXBsaWNhdGVfdGhyZWFkcyBpbnZlZGl0X2hkcnMKKwkJCVwgaW52ZWRpdF9oZWFkZXJzIGludmVuY29kZV9mcm9tIGludmVudmVsb3BlX2Zyb20gaW52ZmFzdF9yZXBseSBpbnZmY2NfY2xlYXIgaW52Zm9sbG93dXBfdG8KKwkJCVwgaW52Zm9yY2VfbmFtZSBpbnZmb3J3X2RlY29kZSBpbnZmb3J3X2RlY3J5cHQgaW52Zm9yd19xdW90ZSBpbnZmb3J3YXJkX2RlY29kZSBpbnZmb3J3YXJkX2RlY3J5cHQKKwkJCVwgaW52Zm9yd2FyZF9xdW90ZSBpbnZoZHJzIGludmhlYWRlciBpbnZoZWxwIGludmhpZGRlbl9ob3N0IGludmhpZGVfbGltaXRlZCBpbnZoaWRlX21pc3NpbmcKKwkJCVwgaW52aGlkZV90aHJlYWRfc3ViamVjdCBpbnZoaWRlX3RvcF9saW1pdGVkIGludmhpZGVfdG9wX21pc3NpbmcgaW52aG9ub3JfZGlzcG9zaXRpb24KKwkJCVwgaW52aWRuX2RlY29kZSBpbnZpZG5fZW5jb2RlIGludmlnbm9yZV9saW5lYXJfd2hpdGVfc3BhY2UgaW52aWdub3JlX2xpc3RfcmVwbHlfdG8KKwkJCVwgaW52aW1hcF9jaGVja19zdWJzY3JpYmVkIGludmltYXBfbGlzdF9zdWJzY3JpYmVkIGludmltYXBfcGFzc2l2ZSBpbnZpbWFwX3BlZWsKKwkJCVwgaW52aW1hcF9zZXJ2ZXJub2lzZSBpbnZpbXBsaWNpdF9hdXRvdmlldyBpbnZpbmNsdWRlX29ubHlmaXJzdCBpbnZrZWVwX2ZsYWdnZWQKKwkJCVwgaW52bWFpbF9jaGVja19yZWNlbnQgaW52bWFpbF9jaGVja19zdGF0cyBpbnZtYWlsY2FwX3Nhbml0aXplIGludm1haWxkaXJfY2hlY2tfY3VyCisJCQlcIGludm1haWxkaXJfaGVhZGVyX2NhY2hlX3ZlcmlmeSBpbnZtYWlsZGlyX3RyYXNoIGludm1hcmtfb2xkIGludm1hcmtlcnMgaW52bWVudV9tb3ZlX29mZgorCQkJXCBpbnZtZW51X3Njcm9sbCBpbnZtZXNzYWdlX2NhY2hlX2NsZWFuIGludm1ldGFfa2V5IGludm1ldG9vIGludm1oX3B1cmdlIGludm1pbWVfZm9yd2FyZF9kZWNvZGUKKwkJCVwgaW52bmFycm93X3RyZWUgaW52cGFnZXJfc3RvcCBpbnZwZ3BfYXV0b19kZWNvZGUgaW52cGdwX2F1dG9fdHJhZGl0aW9uYWwgaW52cGdwX2F1dG9lbmNyeXB0CisJCQlcIGludnBncF9hdXRvaW5saW5lIGludnBncF9hdXRvc2lnbiBpbnZwZ3BfY2hlY2tfZXhpdCBpbnZwZ3BfY3JlYXRlX3RyYWRpdGlvbmFsCisJCQlcIGludnBncF9pZ25vcmVfc3Via2V5cyBpbnZwZ3BfbG9uZ19pZHMgaW52cGdwX3JlcGx5ZW5jcnlwdCBpbnZwZ3BfcmVwbHlpbmxpbmUgaW52cGdwX3JlcGx5c2lnbgorCQkJXCBpbnZwZ3BfcmVwbHlzaWduZW5jcnlwdGVkIGludnBncF9yZXRhaW5hYmxlX3NpZ3MgaW52cGdwX3Nob3dfdW51c2FibGUgaW52cGdwX3N0cmljdF9lbmMKKwkJCVwgaW52cGdwX3VzZV9ncGdfYWdlbnQgaW52cGlwZV9kZWNvZGUgaW52cGlwZV9zcGxpdCBpbnZwb3BfYXV0aF90cnlfYWxsIGludnBvcF9sYXN0CisJCQlcIGludnBvc3Rwb25lX2VuY3J5cHQgaW52cG9zdHBvbmVfZW5jcnlwdF9hcyBpbnZwcmludF9kZWNvZGUgaW52cHJpbnRfc3BsaXQgaW52cHJvbXB0X2FmdGVyCisJCQlcIGludnJlYWRfb25seSBpbnZyZWZsb3dfc3BhY2VfcXVvdGVzIGludnJlZmxvd190ZXh0IGludnJlZmxvd193cmFwIGludnJlcGx5X3NlbGYgaW52cmVzb2x2ZQorCQkJXCBpbnZyZXN1bWVfZHJhZnRfZmlsZXMgaW52cmVzdW1lX2VkaXRlZF9kcmFmdF9maWxlcyBpbnZyZXZlcnNlX2FsaWFzIGludnJldmVyc2VfbmFtZQorCQkJXCBpbnZyZXZlcnNlX3JlYWxuYW1lIGludnJmYzIwNDdfcGFyYW1ldGVycyBpbnZzYXZlX2FkZHJlc3MgaW52c2F2ZV9lbXB0eSBpbnZzYXZlX25hbWUgaW52c2NvcmUKKwkJCVwgaW52c2lkZWJhcl9mb2xkZXJfaW5kZW50IGludnNpZGViYXJfbmV3X21haWxfb25seSBpbnZzaWRlYmFyX25leHRfbmV3X3dyYXAKKwkJCVwgaW52c2lkZWJhcl9zaG9ydF9wYXRoIGludnNpZGViYXJfc29ydCBpbnZzaWRlYmFyX3Zpc2libGUgaW52c2lnX2Rhc2hlcyBpbnZzaWdfb25fdG9wCisJCQlcIGludnNtYXJ0X3dyYXAgaW52c21pbWVfYXNrX2NlcnRfbGFiZWwgaW52c21pbWVfZGVjcnlwdF91c2VfZGVmYXVsdF9rZXkgaW52c21pbWVfaXNfZGVmYXVsdAorCQkJXCBpbnZzb3J0X3JlIGludnNzbF9mb3JjZV90bHMgaW52c3NsX3VzZV9zc2x2MiBpbnZzc2xfdXNlX3NzbHYzIGludnNzbF91c2VfdGxzdjEKKwkJCVwgaW52c3NsX3VzZXN5c3RlbWNlcnRzIGludnNzbF92ZXJpZnlfZGF0ZXMgaW52c3NsX3ZlcmlmeV9ob3N0IGludnN0YXR1c19vbl90b3AgaW52c3RyaWN0X21pbWUKKwkJCVwgaW52c3RyaWN0X3RocmVhZHMgaW52c3VzcGVuZCBpbnZ0ZXh0X2Zsb3dlZCBpbnZ0aG9yb3VnaF9zZWFyY2ggaW52dGhyZWFkX3JlY2VpdmVkIGludnRpbGRlCisJCQlcIGludnRzX2VuYWJsZWQgaW52dW5jb2xsYXBzZV9qdW1wIGludnVzZV84Yml0bWltZSBpbnZ1c2VfZG9tYWluIGludnVzZV9lbnZlbG9wZV9mcm9tIGludnVzZV9mcm9tCisJCQlcIGludnVzZV9pZG4gaW52dXNlX2lwdjYgaW52dXNlcl9hZ2VudCBpbnZ3YWl0X2tleSBpbnZ3ZWVkIGludndyYXBfc2VhcmNoIGludndyaXRlX2JjYworCQkJXCBuZXh0Z3JvdXA9bXV0dHJjVlByZWZpeCxtdXR0cmNWYXJCb29sLG11dHRyY1ZhclF1YWQsbXV0dHJjVmFyTnVtLG11dHRyY1ZhclN0cgogCi1zeW4ga2V5d29yZCBtdXR0cmNWYXJRdWFkCXNraXB3aGl0ZSBjb250YWluZWQgYWJvcnRfbm9zdWJqZWN0IGFib3J0X3VubW9kaWZpZWQgYm91bmNlIGNvcHkgbmV4dGdyb3VwPW11dHRyY1NldFF1YWRBc3NpZ25tZW50LG11dHRyY1ZQcmVmaXgsbXV0dHJjVmFyQm9vbCxtdXR0cmNWYXJRdWFkLG11dHRyY1Zhck51bSxtdXR0cmNWYXJTdHIKLXN5biBrZXl3b3JkIG11dHRyY1ZhclF1YWQJc2tpcHdoaXRlIGNvbnRhaW5lZCBjcnlwdF92ZXJpZnlfc2lnIGRlbGV0ZSBmY2NfYXR0YWNoIGZvcndhcmRfZWRpdCBob25vcl9mb2xsb3d1cF90byBuZXh0Z3JvdXA9bXV0dHJjU2V0UXVhZEFzc2lnbm1lbnQsbXV0dHJjVlByZWZpeCxtdXR0cmNWYXJCb29sLG11dHRyY1ZhclF1YWQsbXV0dHJjVmFyTnVtLG11dHRyY1ZhclN0cgotc3luIGtleXdvcmQgbXV0dHJjVmFyUXVhZAlza2lwd2hpdGUgY29udGFpbmVkIGluY2x1ZGUgbWltZV9mb3J3YXJkIG1pbWVfZm9yd2FyZF9yZXN0IG1pbWVfZndkIG1vdmUgbmV4dGdyb3VwPW11dHRyY1NldFF1YWRBc3NpZ25tZW50LG11dHRyY1ZQcmVmaXgsbXV0dHJjVmFyQm9vbCxtdXR0cmNWYXJRdWFkLG11dHRyY1Zhck51bSxtdXR0cmNWYXJTdHIKLXN5biBrZXl3b3JkIG11dHRyY1ZhclF1YWQJc2tpcHdoaXRlIGNvbnRhaW5lZCBwZ3BfbWltZV9hdXRvIHBncF92ZXJpZnlfc2lnIHBvcF9kZWxldGUgcG9wX3JlY29ubmVjdCBuZXh0Z3JvdXA9bXV0dHJjU2V0UXVhZEFzc2lnbm1lbnQsbXV0dHJjVlByZWZpeCxtdXR0cmNWYXJCb29sLG11dHRyY1ZhclF1YWQsbXV0dHJjVmFyTnVtLG11dHRyY1ZhclN0cgotc3luIGtleXdvcmQgbXV0dHJjVmFyUXVhZAlza2lwd2hpdGUgY29udGFpbmVkIHBvc3Rwb25lIHByaW50IHF1aXQgcmVjYWxsIHJlcGx5X3RvIHNzbF9zdGFydHRscyBuZXh0Z3JvdXA9bXV0dHJjU2V0UXVhZEFzc2lnbm1lbnQsbXV0dHJjVlByZWZpeCxtdXR0cmNWYXJCb29sLG11dHRyY1ZhclF1YWQsbXV0dHJjVmFyTnVtLG11dHRyY1ZhclN0cgorc3luIGtleXdvcmQgbXV0dHJjVmFyUXVhZAlza2lwd2hpdGUgY29udGFpbmVkCisJCQlcIGFib3J0X25vc3ViamVjdCBhYm9ydF91bm1vZGlmaWVkIGJvdW5jZSBjb3B5IGNyeXB0X3ZlcmlmeV9zaWcgZGVsZXRlCisJCQlcIGZjY19hdHRhY2ggZm9yd2FyZF9lZGl0IGhvbm9yX2ZvbGxvd3VwX3RvIGluY2x1ZGUgbWltZV9mb3J3YXJkCisJCQlcIG1pbWVfZm9yd2FyZF9yZXN0IG1pbWVfZndkIG1vdmUgcGdwX21pbWVfYXV0byBwZ3BfdmVyaWZ5X3NpZyBwb3BfZGVsZXRlCisJCQlcIHBvcF9yZWNvbm5lY3QgcG9zdHBvbmUgcHJpbnQgcXVpdCByZWNhbGwgcmVwbHlfdG8gc3NsX3N0YXJ0dGxzCisJCQlcIG5leHRncm91cD1tdXR0cmNTZXRRdWFkQXNzaWdubWVudCxtdXR0cmNWUHJlZml4LG11dHRyY1ZhckJvb2wsbXV0dHJjVmFyUXVhZCxtdXR0cmNWYXJOdW0sbXV0dHJjVmFyU3RyCiAKLXN5biBrZXl3b3JkIG11dHRyY1ZhclF1YWQJc2tpcHdoaXRlIGNvbnRhaW5lZCBub2Fib3J0X25vc3ViamVjdCBub2Fib3J0X3VubW9kaWZpZWQgbm9ib3VuY2Ugbm9jb3B5IG5leHRncm91cD1tdXR0cmNWUHJlZml4LG11dHRyY1ZhckJvb2wsbXV0dHJjVmFyUXVhZCxtdXR0cmNWYXJOdW0sbXV0dHJjVmFyU3RyCi1zeW4ga2V5d29yZCBtdXR0cmNWYXJRdWFkCXNraXB3aGl0ZSBjb250YWluZWQgbm9jcnlwdF92ZXJpZnlfc2lnIG5vZGVsZXRlIG5vZmNjX2F0dGFjaCBub2ZvcndhcmRfZWRpdCBub2hvbm9yX2ZvbGxvd3VwX3RvIG5leHRncm91cD1tdXR0cmNWUHJlZml4LG11dHRyY1ZhckJvb2wsbXV0dHJjVmFyUXVhZCxtdXR0cmNWYXJOdW0sbXV0dHJjVmFyU3RyCi1zeW4ga2V5d29yZCBtdXR0cmNWYXJRdWFkCXNraXB3aGl0ZSBjb250YWluZWQgbm9pbmNsdWRlIG5vbWltZV9mb3J3YXJkIG5vbWltZV9mb3J3YXJkX3Jlc3Qgbm9taW1lX2Z3ZCBub21vdmUgbmV4dGdyb3VwPW11dHRyY1ZQcmVmaXgsbXV0dHJjVmFyQm9vbCxtdXR0cmNWYXJRdWFkLG11dHRyY1Zhck51bSxtdXR0cmNWYXJTdHIKLXN5biBrZXl3b3JkIG11dHRyY1ZhclF1YWQJc2tpcHdoaXRlIGNvbnRhaW5lZCBub3BncF9taW1lX2F1dG8gbm9wZ3BfdmVyaWZ5X3NpZyBub3BvcF9kZWxldGUgbm9wb3BfcmVjb25uZWN0IG5leHRncm91cD1tdXR0cmNWUHJlZml4LG11dHRyY1ZhckJvb2wsbXV0dHJjVmFyUXVhZCxtdXR0cmNWYXJOdW0sbXV0dHJjVmFyU3RyCi1zeW4ga2V5d29yZCBtdXR0cmNWYXJRdWFkCXNraXB3aGl0ZSBjb250YWluZWQgbm9wb3N0cG9uZSBub3ByaW50IG5vcXVpdCBub3JlY2FsbCBub3JlcGx5X3RvIG5vc3NsX3N0YXJ0dGxzIG5leHRncm91cD1tdXR0cmNWUHJlZml4LG11dHRyY1ZhckJvb2wsbXV0dHJjVmFyUXVhZCxtdXR0cmNWYXJOdW0sbXV0dHJjVmFyU3RyCitzeW4ga2V5d29yZCBtdXR0cmNWYXJRdWFkCXNraXB3aGl0ZSBjb250YWluZWQKKwkJCVwgbm9hYm9ydF9ub3N1YmplY3Qgbm9hYm9ydF91bm1vZGlmaWVkIG5vYm91bmNlIG5vY29weSBub2NyeXB0X3ZlcmlmeV9zaWcgbm9kZWxldGUKKwkJCVwgbm9mY2NfYXR0YWNoIG5vZm9yd2FyZF9lZGl0IG5vaG9ub3JfZm9sbG93dXBfdG8gbm9pbmNsdWRlIG5vbWltZV9mb3J3YXJkCisJCQlcIG5vbWltZV9mb3J3YXJkX3Jlc3Qgbm9taW1lX2Z3ZCBub21vdmUgbm9wZ3BfbWltZV9hdXRvIG5vcGdwX3ZlcmlmeV9zaWcgbm9wb3BfZGVsZXRlCisJCQlcIG5vcG9wX3JlY29ubmVjdCBub3Bvc3Rwb25lIG5vcHJpbnQgbm9xdWl0IG5vcmVjYWxsIG5vcmVwbHlfdG8gbm9zc2xfc3RhcnR0bHMKKwkJCVwgbmV4dGdyb3VwPW11dHRyY1ZQcmVmaXgsbXV0dHJjVmFyQm9vbCxtdXR0cmNWYXJRdWFkLG11dHRyY1Zhck51bSxtdXR0cmNWYXJTdHIKIAotc3luIGtleXdvcmQgbXV0dHJjVmFyUXVhZAlza2lwd2hpdGUgY29udGFpbmVkIGludmFib3J0X25vc3ViamVjdCBpbnZhYm9ydF91bm1vZGlmaWVkIGludmJvdW5jZSBpbnZjb3B5IG5leHRncm91cD1tdXR0cmNWUHJlZml4LG11dHRyY1ZhckJvb2wsbXV0dHJjVmFyUXVhZCxtdXR0cmNWYXJOdW0sbXV0dHJjVmFyU3RyCi1zeW4ga2V5d29yZCBtdXR0cmNWYXJRdWFkCXNraXB3aGl0ZSBjb250YWluZWQgaW52Y3J5cHRfdmVyaWZ5X3NpZyBpbnZkZWxldGUgaW52ZmNjX2F0dGFjaCBpbnZmb3J3YXJkX2VkaXQgaW52aG9ub3JfZm9sbG93dXBfdG8gbmV4dGdyb3VwPW11dHRyY1ZQcmVmaXgsbXV0dHJjVmFyQm9vbCxtdXR0cmNWYXJRdWFkLG11dHRyY1Zhck51bSxtdXR0cmNWYXJTdHIKLXN5biBrZXl3b3JkIG11dHRyY1ZhclF1YWQJc2tpcHdoaXRlIGNvbnRhaW5lZCBpbnZpbmNsdWRlIGludm1pbWVfZm9yd2FyZCBpbnZtaW1lX2ZvcndhcmRfcmVzdCBpbnZtaW1lX2Z3ZCBpbnZtb3ZlIG5leHRncm91cD1tdXR0cmNWUHJlZml4LG11dHRyY1ZhckJvb2wsbXV0dHJjVmFyUXVhZCxtdXR0cmNWYXJOdW0sbXV0dHJjVmFyU3RyCi1zeW4ga2V5d29yZCBtdXR0cmNWYXJRdWFkCXNraXB3aGl0ZSBjb250YWluZWQgaW52cGdwX21pbWVfYXV0byBpbnZwZ3BfdmVyaWZ5X3NpZyBpbnZwb3BfZGVsZXRlIGludnBvcF9yZWNvbm5lY3QgbmV4dGdyb3VwPW11dHRyY1ZQcmVmaXgsbXV0dHJjVmFyQm9vbCxtdXR0cmNWYXJRdWFkLG11dHRyY1Zhck51bSxtdXR0cmNWYXJTdHIKLXN5biBrZXl3b3JkIG11dHRyY1ZhclF1YWQJc2tpcHdoaXRlIGNvbnRhaW5lZCBpbnZwb3N0cG9uZSBpbnZwcmludCBpbnZxdWl0IGludnJlY2FsbCBpbnZyZXBseV90byBpbnZzc2xfc3RhcnR0bHMgbmV4dGdyb3VwPW11dHRyY1ZQcmVmaXgsbXV0dHJjVmFyQm9vbCxtdXR0cmNWYXJRdWFkLG11dHRyY1Zhck51bSxtdXR0cmNWYXJTdHIKK3N5biBrZXl3b3JkIG11dHRyY1ZhclF1YWQJc2tpcHdoaXRlIGNvbnRhaW5lZAorCQkJXCBpbnZhYm9ydF9ub3N1YmplY3QgaW52YWJvcnRfdW5tb2RpZmllZCBpbnZib3VuY2UgaW52Y29weSBpbnZjcnlwdF92ZXJpZnlfc2lnIGludmRlbGV0ZQorCQkJXCBpbnZmY2NfYXR0YWNoIGludmZvcndhcmRfZWRpdCBpbnZob25vcl9mb2xsb3d1cF90byBpbnZpbmNsdWRlIGludm1pbWVfZm9yd2FyZAorCQkJXCBpbnZtaW1lX2ZvcndhcmRfcmVzdCBpbnZtaW1lX2Z3ZCBpbnZtb3ZlIGludnBncF9taW1lX2F1dG8gaW52cGdwX3ZlcmlmeV9zaWcgaW52cG9wX2RlbGV0ZQorCQkJXCBpbnZwb3BfcmVjb25uZWN0IGludnBvc3Rwb25lIGludnByaW50IGludnF1aXQgaW52cmVjYWxsIGludnJlcGx5X3RvIGludnNzbF9zdGFydHRscworCQkJXCBuZXh0Z3JvdXA9bXV0dHJjVlByZWZpeCxtdXR0cmNWYXJCb29sLG11dHRyY1ZhclF1YWQsbXV0dHJjVmFyTnVtLG11dHRyY1ZhclN0cgogCi1zeW4ga2V5d29yZCBtdXR0cmNWYXJOdW0Jc2tpcHdoaXRlIGNvbnRhaW5lZCBjb25uZWN0X3RpbWVvdXQgaGlzdG9yeSBpbWFwX2tlZXBhbGl2ZSBpbWFwX3BpcGVsaW5lX2RlcHRoIG1haWxfY2hlY2sgbmV4dGdyb3VwPW11dHRyY1NldE51bUFzc2lnbm1lbnQsbXV0dHJjVlByZWZpeCxtdXR0cmNWYXJCb29sLG11dHRyY1ZhclF1YWQsbXV0dHJjVmFyTnVtLG11dHRyY1ZhclN0cgotc3luIGtleXdvcmQgbXV0dHJjVmFyTnVtCXNraXB3aGl0ZSBjb250YWluZWQgbWVudV9jb250ZXh0IG5ldF9pbmMgcGFnZXJfY29udGV4dCBwYWdlcl9pbmRleF9saW5lcyBwZ3BfdGltZW91dCBuZXh0Z3JvdXA9bXV0dHJjU2V0TnVtQXNzaWdubWVudCxtdXR0cmNWUHJlZml4LG11dHRyY1ZhckJvb2wsbXV0dHJjVmFyUXVhZCxtdXR0cmNWYXJOdW0sbXV0dHJjVmFyU3RyCi1zeW4ga2V5d29yZCBtdXR0cmNWYXJOdW0Jc2tpcHdoaXRlIGNvbnRhaW5lZCBwb3BfY2hlY2tpbnRlcnZhbCByZWFkX2luYyBzYXZlX2hpc3Rvcnkgc2NvcmVfdGhyZXNob2xkX2RlbGV0ZSBuZXh0Z3JvdXA9bXV0dHJjU2V0TnVtQXNzaWdubWVudCxtdXR0cmNWUHJlZml4LG11dHRyY1ZhckJvb2wsbXV0dHJjVmFyUXVhZCxtdXR0cmNWYXJOdW0sbXV0dHJjVmFyU3RyCi1zeW4ga2V5d29yZCBtdXR0cmNWYXJOdW0Jc2tpcHdoaXRlIGNvbnRhaW5lZCBzY29yZV90aHJlc2hvbGRfZmxhZyBzY29yZV90aHJlc2hvbGRfcmVhZCBzZWFyY2hfY29udGV4dCBzZW5kbWFpbF93YWl0IHNsZWVwX3RpbWUgbmV4dGdyb3VwPW11dHRyY1NldE51bUFzc2lnbm1lbnQsbXV0dHJjVlByZWZpeCxtdXR0cmNWYXJCb29sLG11dHRyY1ZhclF1YWQsbXV0dHJjVmFyTnVtLG11dHRyY1ZhclN0cgotc3luIGtleXdvcmQgbXV0dHJjVmFyTnVtCXNraXB3aGl0ZSBjb250YWluZWQgc21pbWVfdGltZW91dCBzc2xfbWluX2RoX3ByaW1lX2JpdHMgdGltZW91dCB0aW1lX2luYyB3cmFwIHdyYXBtYXJnaW4gbmV4dGdyb3VwPW11dHRyY1NldE51bUFzc2lnbm1lbnQsbXV0dHJjVlByZWZpeCxtdXR0cmNWYXJCb29sLG11dHRyY1ZhclF1YWQsbXV0dHJjVmFyTnVtLG11dHRyY1ZhclN0cgotc3luIGtleXdvcmQgbXV0dHJjVmFyTnVtCXNraXB3aGl0ZSBjb250YWluZWQgd3JpdGVfaW5jIG5leHRncm91cD1tdXR0cmNTZXROdW1Bc3NpZ25tZW50LG11dHRyY1ZQcmVmaXgsbXV0dHJjVmFyQm9vbCxtdXR0cmNWYXJRdWFkLG11dHRyY1Zhck51bSxtdXR0cmNWYXJTdHIKLWlmIHVzZV9tdXR0X3NpZGViYXIgPT0gMQotICAgIHN5biBrZXl3b3JkIG11dHRyY1Zhck51bSBza2lwd2hpdGUgY29udGFpbmVkIHNpZGViYXJfd2lkdGggbmV4dGdyb3VwPW11dHRyY1NldE51bUFzc2lnbm1lbnQsbXV0dHJjVlByZWZpeCxtdXR0cmNWYXJCb29sLG11dHRyY1ZhclF1YWQsbXV0dHJjVmFyTnVtLG11dHRyY1ZhclN0cgotZW5kaWYKK3N5biBrZXl3b3JkIG11dHRyY1Zhck51bQlza2lwd2hpdGUgY29udGFpbmVkCisJCQlcIGNvbm5lY3RfdGltZW91dCBoaXN0b3J5IGltYXBfa2VlcGFsaXZlIGltYXBfcGlwZWxpbmVfZGVwdGggbWFpbF9jaGVjaworCQkJXCBtYWlsX2NoZWNrX3N0YXRzX2ludGVydmFsIG1lbnVfY29udGV4dCBuZXRfaW5jIHBhZ2VyX2NvbnRleHQgcGFnZXJfaW5kZXhfbGluZXMKKwkJCVwgcGdwX3RpbWVvdXQgcG9wX2NoZWNraW50ZXJ2YWwgcmVhZF9pbmMgc2F2ZV9oaXN0b3J5IHNjb3JlX3RocmVzaG9sZF9kZWxldGUKKwkJCVwgc2NvcmVfdGhyZXNob2xkX2ZsYWcgc2NvcmVfdGhyZXNob2xkX3JlYWQgc2VhcmNoX2NvbnRleHQgc2VuZG1haWxfd2FpdAorCQkJXCBzaWRlYmFyX3dpZHRoIHNsZWVwX3RpbWUgc21pbWVfdGltZW91dCBzc2xfbWluX2RoX3ByaW1lX2JpdHMgdGltZV9pbmMgdGltZW91dAorCQkJXCB3cmFwIHdyYXBfaGVhZGVycyB3cmFwbWFyZ2luIHdyaXRlX2luYworCQkJXCBuZXh0Z3JvdXA9bXV0dHJjU2V0TnVtQXNzaWdubWVudCxtdXR0cmNWUHJlZml4LG11dHRyY1ZhckJvb2wsbXV0dHJjVmFyUXVhZCxtdXR0cmNWYXJOdW0sbXV0dHJjVmFyU3RyCiAKIHN5biBtYXRjaCBtdXR0cmNGb3JtYXRFcnJvcnMgY29udGFpbmVkIC8lLi8KIApAQCAtMzQ5LDcgKzM1MSw3IEBACiBzeW4gbWF0Y2ggbXV0dHJjVmFyRXF1YWxzUXVlcnlGbXQgY29udGFpbmVkIHNraXB3aGl0ZSAiPSIgbmV4dGdyb3VwPW11dHRyY1F1ZXJ5Rm9ybWF0U3RyCiBzeW4ga2V5d29yZCBtdXR0cmNWYXJTdHIJY29udGFpbmVkIHNraXB3aGl0ZSBwZ3BfZGVjb2RlX2NvbW1hbmQgcGdwX3ZlcmlmeV9jb21tYW5kIHBncF9kZWNyeXB0X2NvbW1hbmQgcGdwX2NsZWFyc2lnbl9jb21tYW5kIHBncF9zaWduX2NvbW1hbmQgcGdwX2VuY3J5cHRfc2lnbl9jb21tYW5kIHBncF9lbmNyeXB0X29ubHlfY29tbWFuZCBwZ3BfaW1wb3J0X2NvbW1hbmQgcGdwX2V4cG9ydF9jb21tYW5kIHBncF92ZXJpZnlfa2V5X2NvbW1hbmQgcGdwX2xpc3Rfc2VjcmluZ19jb21tYW5kIHBncF9saXN0X3B1YnJpbmdfY29tbWFuZCBuZXh0Z3JvdXA9bXV0dHJjVmFyRXF1YWxzUEdQQ21kRm10CiBzeW4gbWF0Y2ggbXV0dHJjVmFyRXF1YWxzUEdQQ21kRm10IGNvbnRhaW5lZCBza2lwd2hpdGUgIj0iIG5leHRncm91cD1tdXR0cmNQR1BDbWRGb3JtYXRTdHIKLXN5biBrZXl3b3JkIG11dHRyY1ZhclN0cgljb250YWluZWQgc2tpcHdoaXRlIHN0YXR1c19mb3JtYXQgbmV4dGdyb3VwPW11dHRyY1ZhckVxdWFsc1N0YXR1c0ZtdAorc3luIGtleXdvcmQgbXV0dHJjVmFyU3RyCWNvbnRhaW5lZCBza2lwd2hpdGUgdHNfaWNvbl9mb3JtYXQgdHNfc3RhdHVzX2Zvcm1hdCBzdGF0dXNfZm9ybWF0IG5leHRncm91cD1tdXR0cmNWYXJFcXVhbHNTdGF0dXNGbXQKIHN5biBtYXRjaCBtdXR0cmNWYXJFcXVhbHNTdGF0dXNGbXQgY29udGFpbmVkIHNraXB3aGl0ZSAiPSIgbmV4dGdyb3VwPW11dHRyY1N0YXR1c0Zvcm1hdFN0cgogc3luIGtleXdvcmQgbXV0dHJjVmFyU3RyCWNvbnRhaW5lZCBza2lwd2hpdGUgcGdwX2dldGtleXNfY29tbWFuZCBuZXh0Z3JvdXA9bXV0dHJjVmFyRXF1YWxzUEdQR2V0S2V5c0ZtdAogc3luIG1hdGNoIG11dHRyY1ZhckVxdWFsc1BHUEdldEtleXNGbXQgY29udGFpbmVkIHNraXB3aGl0ZSAiPSIgbmV4dGdyb3VwPW11dHRyY1BHUEdldEtleXNGb3JtYXRTdHIKQEAgLTM2MSwzNCArMzYzLDI5IEBACiBzeW4gbWF0Y2ggbXV0dHJjVlByZWZpeAkJY29udGFpbmVkIC9bPyZdLyBuZXh0Z3JvdXA9bXV0dHJjVmFyQm9vbCxtdXR0cmNWYXJRdWFkLG11dHRyY1Zhck51bSxtdXR0cmNWYXJTdHIKIAogc3luIG1hdGNoIG11dHRyY1ZhclN0cgkJY29udGFpbmVkIHNraXB3aGl0ZSAnbXlfW2EtekEtWjAtOV9dXCsnIG5leHRncm91cD1tdXR0cmNTZXRTdHJBc3NpZ25tZW50LG11dHRyY1ZQcmVmaXgsbXV0dHJjVmFyQm9vbCxtdXR0cmNWYXJRdWFkLG11dHRyY1Zhck51bSxtdXR0cmNWYXJTdHIKLXN5biBrZXl3b3JkIG11dHRyY1ZhclN0cgljb250YWluZWQgc2tpcHdoaXRlIGFsaWFzX2ZpbGUgYXNzdW1lZF9jaGFyc2V0IGF0dGFjaF9jaGFyc2V0IGF0dGFjaF9zZXAgbmV4dGdyb3VwPW11dHRyY1NldFN0ckFzc2lnbm1lbnQsbXV0dHJjVlByZWZpeCxtdXR0cmNWYXJCb29sLG11dHRyY1ZhclF1YWQsbXV0dHJjVmFyTnVtLG11dHRyY1ZhclN0cgotc3luIGtleXdvcmQgbXV0dHJjVmFyU3RyCWNvbnRhaW5lZCBza2lwd2hpdGUgY2VydGlmaWNhdGVfZmlsZSBjaGFyc2V0IGNvbmZpZ19jaGFyc2V0IGNvbnRlbnRfdHlwZSBuZXh0Z3JvdXA9bXV0dHJjU2V0U3RyQXNzaWdubWVudCxtdXR0cmNWUHJlZml4LG11dHRyY1ZhckJvb2wsbXV0dHJjVmFyUXVhZCxtdXR0cmNWYXJOdW0sbXV0dHJjVmFyU3RyCi1zeW4ga2V5d29yZCBtdXR0cmNWYXJTdHIJY29udGFpbmVkIHNraXB3aGl0ZSBkZWZhdWx0X2hvb2sgZGlzcGxheV9maWx0ZXIgZG90bG9ja19wcm9ncmFtIGRzbl9ub3RpZnkgbmV4dGdyb3VwPW11dHRyY1NldFN0ckFzc2lnbm1lbnQsbXV0dHJjVlByZWZpeCxtdXR0cmNWYXJCb29sLG11dHRyY1ZhclF1YWQsbXV0dHJjVmFyTnVtLG11dHRyY1ZhclN0cgotc3luIGtleXdvcmQgbXV0dHJjVmFyU3RyCWNvbnRhaW5lZCBza2lwd2hpdGUgZHNuX3JldHVybiBlZGl0b3IgZW50cm9weV9maWxlIGVudmVsb3BlX2Zyb21fYWRkcmVzcyBlc2NhcGUgZm9sZGVyIG5leHRncm91cD1tdXR0cmNTZXRTdHJBc3NpZ25tZW50LG11dHRyY1ZQcmVmaXgsbXV0dHJjVmFyQm9vbCxtdXR0cmNWYXJRdWFkLG11dHRyY1Zhck51bSxtdXR0cmNWYXJTdHIKLXN5biBrZXl3b3JkIG11dHRyY1ZhclN0cgljb250YWluZWQgc2tpcHdoaXRlIGZvcndfZm9ybWF0IGZvcndhcmRfZm9ybWF0IGZyb20gZ2Vjb3NfbWFzayBoZHJfZm9ybWF0IG5leHRncm91cD1tdXR0cmNTZXRTdHJBc3NpZ25tZW50LG11dHRyY1ZQcmVmaXgsbXV0dHJjVmFyQm9vbCxtdXR0cmNWYXJRdWFkLG11dHRyY1Zhck51bSxtdXR0cmNWYXJTdHIKLXN5biBrZXl3b3JkIG11dHRyY1ZhclN0cgljb250YWluZWQgc2tpcHdoaXRlIGhlYWRlcl9jYWNoZSBoZWFkZXJfY2FjaGVfY29tcHJlc3MgaGVhZGVyX2NhY2hlX3BhZ2VzaXplIG5leHRncm91cD1tdXR0cmNTZXRTdHJBc3NpZ25tZW50LG11dHRyY1ZQcmVmaXgsbXV0dHJjVmFyQm9vbCxtdXR0cmNWYXJRdWFkLG11dHRyY1Zhck51bSxtdXR0cmNWYXJTdHIKLXN5biBrZXl3b3JkIG11dHRyY1ZhclN0cgljb250YWluZWQgc2tpcHdoaXRlIGhpc3RvcnlfZmlsZSBob3N0bmFtZSBpbWFwX2F1dGhlbnRpY2F0b3JzIG5leHRncm91cD1tdXR0cmNTZXRTdHJBc3NpZ25tZW50LG11dHRyY1ZQcmVmaXgsbXV0dHJjVmFyQm9vbCxtdXR0cmNWYXJRdWFkLG11dHRyY1Zhck51bSxtdXR0cmNWYXJTdHIKLXN5biBrZXl3b3JkIG11dHRyY1ZhclN0cgljb250YWluZWQgc2tpcHdoaXRlIGltYXBfZGVsaW1fY2hhcnMgaW1hcF9oZWFkZXJzIGltYXBfaWRsZSBpbWFwX2xvZ2luIGltYXBfcGFzcyBuZXh0Z3JvdXA9bXV0dHJjU2V0U3RyQXNzaWdubWVudCxtdXR0cmNWUHJlZml4LG11dHRyY1ZhckJvb2wsbXV0dHJjVmFyUXVhZCxtdXR0cmNWYXJOdW0sbXV0dHJjVmFyU3RyCi1zeW4ga2V5d29yZCBtdXR0cmNWYXJTdHIJY29udGFpbmVkIHNraXB3aGl0ZSBpbWFwX3VzZXIgaW5kZW50X3N0ciBpbmRlbnRfc3RyaW5nIGlzcGVsbCBsb2NhbGUgbWFpbGNhcF9wYXRoIG5leHRncm91cD1tdXR0cmNTZXRTdHJBc3NpZ25tZW50LG11dHRyY1ZQcmVmaXgsbXV0dHJjVmFyQm9vbCxtdXR0cmNWYXJRdWFkLG11dHRyY1Zhck51bSxtdXR0cmNWYXJTdHIKLXN5biBrZXl3b3JkIG11dHRyY1ZhclN0cgljb250YWluZWQgc2tpcHdoaXRlIG1hc2sgbWJveCBtYm94X3R5cGUgbWVzc2FnZV9jYWNoZWRpciBtaF9zZXFfZmxhZ2dlZCBtaF9zZXFfcmVwbGllZCBuZXh0Z3JvdXA9bXV0dHJjU2V0U3RyQXNzaWdubWVudCxtdXR0cmNWUHJlZml4LG11dHRyY1ZhckJvb2wsbXV0dHJjVmFyUXVhZCxtdXR0cmNWYXJOdW0sbXV0dHJjVmFyU3RyCi1zeW4ga2V5d29yZCBtdXR0cmNWYXJTdHIJY29udGFpbmVkIHNraXB3aGl0ZSBtaF9zZXFfdW5zZWVuIG1peG1hc3RlciBtc2dfZm9ybWF0IHBhZ2VyIG5leHRncm91cD1tdXR0cmNTZXRTdHJBc3NpZ25tZW50LG11dHRyY1ZQcmVmaXgsbXV0dHJjVmFyQm9vbCxtdXR0cmNWYXJRdWFkLG11dHRyY1Zhck51bSxtdXR0cmNWYXJTdHIKLXN5biBrZXl3b3JkIG11dHRyY1ZhclN0cgljb250YWluZWQgc2tpcHdoaXRlIHBncF9nb29kX3NpZ24gIG5leHRncm91cD1tdXR0cmNTZXRTdHJBc3NpZ25tZW50LG11dHRyY1ZQcmVmaXgsbXV0dHJjVmFyQm9vbCxtdXR0cmNWYXJRdWFkLG11dHRyY1Zhck51bSxtdXR0cmNWYXJTdHIKLXN5biBrZXl3b3JkIG11dHRyY1ZhclN0cgljb250YWluZWQgc2tpcHdoaXRlIHBncF9taW1lX3NpZ25hdHVyZV9maWxlbmFtZSBuZXh0Z3JvdXA9bXV0dHJjU2V0U3RyQXNzaWdubWVudCxtdXR0cmNWUHJlZml4LG11dHRyY1ZhckJvb2wsbXV0dHJjVmFyUXVhZCxtdXR0cmNWYXJOdW0sbXV0dHJjVmFyU3RyCi1zeW4ga2V5d29yZCBtdXR0cmNWYXJTdHIJY29udGFpbmVkIHNraXB3aGl0ZSBwZ3BfbWltZV9zaWduYXR1cmVfZGVzY3JpcHRpb24gcGdwX3NpZ25fYXMgbmV4dGdyb3VwPW11dHRyY1NldFN0ckFzc2lnbm1lbnQsbXV0dHJjVlByZWZpeCxtdXR0cmNWYXJCb29sLG11dHRyY1ZhclF1YWQsbXV0dHJjVmFyTnVtLG11dHRyY1ZhclN0cgotc3luIGtleXdvcmQgbXV0dHJjVmFyU3RyCWNvbnRhaW5lZCBza2lwd2hpdGUgcGdwX3NvcnRfa2V5cyBuZXh0Z3JvdXA9bXV0dHJjU2V0U3RyQXNzaWdubWVudCxtdXR0cmNWUHJlZml4LG11dHRyY1ZhckJvb2wsbXV0dHJjVmFyUXVhZCxtdXR0cmNWYXJOdW0sbXV0dHJjVmFyU3RyCi1zeW4ga2V5d29yZCBtdXR0cmNWYXJTdHIJY29udGFpbmVkIHNraXB3aGl0ZSBwaXBlX3NlcCBwb3BfYXV0aGVudGljYXRvcnMgcG9wX2hvc3QgcG9wX3Bhc3MgcG9wX3VzZXIgcG9zdF9pbmRlbnRfc3RyIG5leHRncm91cD1tdXR0cmNTZXRTdHJBc3NpZ25tZW50LG11dHRyY1ZQcmVmaXgsbXV0dHJjVmFyQm9vbCxtdXR0cmNWYXJRdWFkLG11dHRyY1Zhck51bSxtdXR0cmNWYXJTdHIKLXN5biBrZXl3b3JkIG11dHRyY1ZhclN0cgljb250YWluZWQgc2tpcHdoaXRlIHBvc3RfaW5kZW50X3N0cmluZyBwb3N0cG9uZWQgcHJlY29ubmVjdCBwcmludF9jbWQgcHJpbnRfY29tbWFuZCBuZXh0Z3JvdXA9bXV0dHJjU2V0U3RyQXNzaWdubWVudCxtdXR0cmNWUHJlZml4LG11dHRyY1ZhckJvb2wsbXV0dHJjVmFyUXVhZCxtdXR0cmNWYXJOdW0sbXV0dHJjVmFyU3RyCi1zeW4ga2V5d29yZCBtdXR0cmNWYXJTdHIJY29udGFpbmVkIHNraXB3aGl0ZSBxdWVyeV9jb21tYW5kIHF1b3RlX3JlZ2V4cCByZWFsbmFtZSByZWNvcmQgcmVwbHlfcmVnZXhwIHNlbmRfY2hhcnNldCBuZXh0Z3JvdXA9bXV0dHJjU2V0U3RyQXNzaWdubWVudCxtdXR0cmNWUHJlZml4LG11dHRyY1ZhckJvb2wsbXV0dHJjVmFyUXVhZCxtdXR0cmNWYXJOdW0sbXV0dHJjVmFyU3RyCi1zeW4ga2V5d29yZCBtdXR0cmNWYXJTdHIJY29udGFpbmVkIHNraXB3aGl0ZSBzZW5kbWFpbCBzaGVsbCBzaWduYXR1cmUgc2ltcGxlX3NlYXJjaCBzbWlsZXlzIHNtaW1lX2NhX2xvY2F0aW9uIG5leHRncm91cD1tdXR0cmNTZXRTdHJBc3NpZ25tZW50LG11dHRyY1ZQcmVmaXgsbXV0dHJjVmFyQm9vbCxtdXR0cmNWYXJRdWFkLG11dHRyY1Zhck51bSxtdXR0cmNWYXJTdHIKLXN5biBrZXl3b3JkIG11dHRyY1ZhclN0cgljb250YWluZWQgc2tpcHdoaXRlIHNtaW1lX2NlcnRpZmljYXRlcyBzbWltZV9kZWZhdWx0X2tleSBuZXh0Z3JvdXA9bXV0dHJjU2V0U3RyQXNzaWdubWVudCxtdXR0cmNWUHJlZml4LG11dHRyY1ZhckJvb2wsbXV0dHJjVmFyUXVhZCxtdXR0cmNWYXJOdW0sbXV0dHJjVmFyU3RyCi1zeW4ga2V5d29yZCBtdXR0cmNWYXJTdHIJY29udGFpbmVkIHNraXB3aGl0ZSBzbWltZV9lbmNyeXB0X3dpdGggbmV4dGdyb3VwPW11dHRyY1NldFN0ckFzc2lnbm1lbnQsbXV0dHJjVlByZWZpeCxtdXR0cmNWYXJCb29sLG11dHRyY1ZhclF1YWQsbXV0dHJjVmFyTnVtLG11dHRyY1ZhclN0cgotc3luIGtleXdvcmQgbXV0dHJjVmFyU3RyCWNvbnRhaW5lZCBza2lwd2hpdGUgc21pbWVfa2V5cyBzbWltZV9zaWduX2FzIG5leHRncm91cD1tdXR0cmNTZXRTdHJBc3NpZ25tZW50LG11dHRyY1ZQcmVmaXgsbXV0dHJjVmFyQm9vbCxtdXR0cmNWYXJRdWFkLG11dHRyY1Zhck51bSxtdXR0cmNWYXJTdHIKLXN5biBrZXl3b3JkIG11dHRyY1ZhclN0cgljb250YWluZWQgc2tpcHdoaXRlIHNtdHBfdXJsIHNtdHBfYXV0aGVudGljYXRvcnMgc210cF9wYXNzIHNvcnQgc29ydF9hbGlhcyBzb3J0X2F1eCBuZXh0Z3JvdXA9bXV0dHJjU2V0U3RyQXNzaWdubWVudCxtdXR0cmNWUHJlZml4LG11dHRyY1ZhckJvb2wsbXV0dHJjVmFyUXVhZCxtdXR0cmNWYXJOdW0sbXV0dHJjVmFyU3RyCi1zeW4ga2V5d29yZCBtdXR0cmNWYXJTdHIJY29udGFpbmVkIHNraXB3aGl0ZSBzb3J0X2Jyb3dzZXIgc3BhbV9zZXBhcmF0b3Igc3Bvb2xmaWxlIHNzbF9jYV9jZXJ0aWZpY2F0ZXNfZmlsZSBzc2xfY2xpZW50X2NlcnQgbmV4dGdyb3VwPW11dHRyY1NldFN0ckFzc2lnbm1lbnQsbXV0dHJjVlByZWZpeCxtdXR0cmNWYXJCb29sLG11dHRyY1ZhclF1YWQsbXV0dHJjVmFyTnVtLG11dHRyY1ZhclN0cgotc3luIGtleXdvcmQgbXV0dHJjVmFyU3RyCWNvbnRhaW5lZCBza2lwd2hpdGUgc3RhdHVzX2NoYXJzIHRtcGRpciB0b19jaGFycyB0dW5uZWwgdmlzdWFsIG5leHRncm91cD1tdXR0cmNTZXRTdHJBc3NpZ25tZW50LG11dHRyY1ZQcmVmaXgsbXV0dHJjVmFyQm9vbCxtdXR0cmNWYXJRdWFkLG11dHRyY1Zhck51bSxtdXR0cmNWYXJTdHIKLWlmIHVzZV9tdXR0X3NpZGViYXIgPT0gMQotICAgIHN5biBrZXl3b3JkIG11dHRyY1ZhclN0ciBza2lwd2hpdGUgY29udGFpbmVkIHNpZGViYXJfZGVsaW0gbmV4dGdyb3VwPW11dHRyY1NldFN0ckFzc2lnbm1lbnQsbXV0dHJjVlByZWZpeCxtdXR0cmNWYXJCb29sLG11dHRyY1ZhclF1YWQsbXV0dHJjVmFyTnVtLG11dHRyY1ZhclN0cgotZW5kaWYKK3N5biBrZXl3b3JkIG11dHRyY1ZhclN0cgljb250YWluZWQgc2tpcHdoaXRlCisJCQlcIGFsaWFzX2ZpbGUgYXNzdW1lZF9jaGFyc2V0IGF0dGFjaF9jaGFyc2V0IGF0dGFjaF9zZXAgY2VydGlmaWNhdGVfZmlsZSBjaGFyc2V0CisJCQlcIGNvbmZpZ19jaGFyc2V0IGNvbnRlbnRfdHlwZSBkZWZhdWx0X2hvb2sgZGlzcGxheV9maWx0ZXIgZG90bG9ja19wcm9ncmFtCisJCQlcIGRzbl9ub3RpZnkgZHNuX3JldHVybiBlZGl0b3IgZW50cm9weV9maWxlIGVudmVsb3BlX2Zyb21fYWRkcmVzcyBlc2NhcGUgZm9sZGVyCisJCQlcIGZvcndfZm9ybWF0IGZvcndhcmRfZm9ybWF0IGZyb20gZ2Vjb3NfbWFzayBoZHJfZm9ybWF0IGhlYWRlcl9jYWNoZQorCQkJXCBoZWFkZXJfY2FjaGVfY29tcHJlc3MgaGVhZGVyX2NhY2hlX3BhZ2VzaXplIGhpc3RvcnlfZmlsZSBob3N0bmFtZQorCQkJXCBpbWFwX2F1dGhlbnRpY2F0b3JzIGltYXBfZGVsaW1fY2hhcnMgaW1hcF9oZWFkZXJzIGltYXBfaWRsZSBpbWFwX2xvZ2luCisJCQlcIGltYXBfcGFzcyBpbWFwX3VzZXIgaW5kZW50X3N0ciBpbmRlbnRfc3RyaW5nIGlzcGVsbCBsb2NhbGUgbWFpbGNhcF9wYXRoIG1hc2sKKwkJCVwgbWJveCBtYm94X3R5cGUgbWVzc2FnZV9jYWNoZWRpciBtaF9zZXFfZmxhZ2dlZCBtaF9zZXFfcmVwbGllZCBtaF9zZXFfdW5zZWVuCisJCQlcIG1peG1hc3RlciBtc2dfZm9ybWF0IHBhZ2VyIHBncF9kZWNyeXB0aW9uX29rYXkgcGdwX2dvb2Rfc2lnbgorCQkJXCBwZ3BfbWltZV9zaWduYXR1cmVfZGVzY3JpcHRpb24gcGdwX21pbWVfc2lnbmF0dXJlX2ZpbGVuYW1lIHBncF9zaWduX2FzCisJCQlcIHBncF9zb3J0X2tleXMgcGlwZV9zZXAgcG9wX2F1dGhlbnRpY2F0b3JzIHBvcF9ob3N0IHBvcF9wYXNzIHBvcF91c2VyCisJCQlcIHBvc3RfaW5kZW50X3N0ciBwb3N0X2luZGVudF9zdHJpbmcgcG9zdHBvbmVfZW5jcnlwdF9hcyBwb3N0cG9uZWQgcHJlY29ubmVjdAorCQkJXCBwcmludF9jbWQgcHJpbnRfY29tbWFuZCBxdWVyeV9jb21tYW5kIHF1b3RlX3JlZ2V4cCByZWFsbmFtZSByZWNvcmQKKwkJCVwgcmVwbHlfcmVnZXhwIHNlbmRfY2hhcnNldCBzZW5kbWFpbCBzaGVsbCBzaWRlYmFyX2RlbGltIHNpZGViYXJfZGVsaW1fY2hhcnMKKwkJCVwgc2lkZWJhcl9kaXZpZGVyX2NoYXIgc2lkZWJhcl9mb3JtYXQgc2lkZWJhcl9pbmRlbnRfc3RyaW5nIHNpZGViYXJfc29ydF9tZXRob2QKKwkJCVwgc2lnbmF0dXJlIHNpbXBsZV9zZWFyY2ggc21pbGV5cyBzbWltZV9jYV9sb2NhdGlvbiBzbWltZV9jZXJ0aWZpY2F0ZXMKKwkJCVwgc21pbWVfZGVmYXVsdF9rZXkgc21pbWVfZW5jcnlwdF93aXRoIHNtaW1lX2tleXMgc21pbWVfc2lnbl9hcworCQkJXCBzbWltZV9zaWduX2RpZ2VzdF9hbGcgc210cF9hdXRoZW50aWNhdG9ycyBzbXRwX3Bhc3Mgc210cF91cmwgc29ydCBzb3J0X2FsaWFzCisJCQlcIHNvcnRfYXV4IHNvcnRfYnJvd3NlciBzcGFtX3NlcGFyYXRvciBzcG9vbGZpbGUgc3NsX2NhX2NlcnRpZmljYXRlc19maWxlCisJCQlcIHNzbF9jaXBoZXJzIHNzbF9jbGllbnRfY2VydCBzdGF0dXNfY2hhcnMgdG1wZGlyIHRvX2NoYXJzIHRyYXNoIHRzX2ljb25fZm9ybWF0CisJCQlcIHRzX3N0YXR1c19mb3JtYXQgdHVubmVsIHZpc3VhbAorCQkJXCBuZXh0Z3JvdXA9bXV0dHJjU2V0U3RyQXNzaWdubWVudCxtdXR0cmNWUHJlZml4LG11dHRyY1ZhckJvb2wsbXV0dHJjVmFyUXVhZCxtdXR0cmNWYXJOdW0sbXV0dHJjVmFyU3RyCiAKICIgUHJlc2VudCBpbiAxLjQuMi4xIChwZ3BfY3JlYXRlX3RyYWRpdGlvbmFsIHdhcyBhIGJvb2wgdGhlbikKIHN5biBrZXl3b3JkIG11dHRyY1ZhckJvb2wJY29udGFpbmVkIHNraXB3aGl0ZSBpbWFwX2ZvcmNlX3NzbCBub2ltYXBfZm9yY2Vfc3NsIGludmltYXBfZm9yY2Vfc3NsIG5leHRncm91cD1tdXR0cmNTZXRCb29sQXNzaWdubWVudCxtdXR0cmNWUHJlZml4LG11dHRyY1ZhckJvb2wsbXV0dHJjVmFyUXVhZCxtdXR0cmNWYXJOdW0sbXV0dHJjVmFyU3RyCkBAIC00MDEsMTIgKzM5OCwxMSBAQAogCiBzeW4ga2V5d29yZCBtdXR0cmNIb29rcwkJY29udGFpbmVkIHNraXB3aGl0ZSBhY2NvdW50LWhvb2sgY2hhcnNldC1ob29rIGljb252LWhvb2sgbWVzc2FnZS1ob29rIGZvbGRlci1ob29rIG1ib3gtaG9vayBzYXZlLWhvb2sgZmNjLWhvb2sgZmNjLXNhdmUtaG9vayBzZW5kLWhvb2sgc2VuZDItaG9vayByZXBseS1ob29rIGNyeXB0LWhvb2sKIAotc3luIGtleXdvcmQgbXV0dHJjQ29tbWFuZAlhdXRvX3ZpZXcgYWx0ZXJuYXRpdmVfb3JkZXIgZXhlYyB1bmFsdGVybmF0aXZlX29yZGVyCi1zeW4ga2V5d29yZCBtdXR0cmNDb21tYW5kCWhkcl9vcmRlciBpY29udi1ob29rIGlnbm9yZSBtYWlsYm94ZXMgbXlfaGRyIHVubWFpbGJveGVzCi1zeW4ga2V5d29yZCBtdXR0cmNDb21tYW5kCXBncC1ob29rIHB1c2ggc2NvcmUgc291cmNlIHVuYXV0b192aWV3IHVuaGRyX29yZGVyCi1zeW4ga2V5d29yZCBtdXR0cmNDb21tYW5kCXVuaWdub3JlIHVubW9ubyB1bm15X2hkciB1bnNjb3JlCi1zeW4ga2V5d29yZCBtdXR0cmNDb21tYW5kCW1pbWVfbG9va3VwIHVubWltZV9sb29rdXAgdW5ncm91cAotc3luIGtleXdvcmQgbXV0dHJjQ29tbWFuZAl1bmFsdGVybmF0aXZlX29yZGVyCitzeW4ga2V5d29yZCBtdXR0cmNDb21tYW5kCXNraXB3aGl0ZQorCQkJXCBhbHRlcm5hdGl2ZV9vcmRlciBhdXRvX3ZpZXcgZXhlYyBoZHJfb3JkZXIgaWNvbnYtaG9vayBpZ25vcmUgbWFpbGJveGVzCisJCQlcIG1haWx0b19hbGxvdyBtaW1lX2xvb2t1cCBteV9oZHIgcGdwLWhvb2sgcHVzaCBzY29yZSBzaWRlYmFyX3doaXRlbGlzdCBzb3VyY2UKKwkJCVwgdW5hbHRlcm5hdGl2ZV9vcmRlciB1bmFsdGVybmF0aXZlX29yZGVyIHVuYXV0b192aWV3IHVuZ3JvdXAgdW5oZHJfb3JkZXIKKwkJCVwgdW5pZ25vcmUgdW5tYWlsYm94ZXMgdW5tYWlsdG9fYWxsb3cgdW5taW1lX2xvb2t1cCB1bm1vbm8gdW5teV9oZHIgdW5zY29yZQogc3luIGtleXdvcmQgbXV0dHJjQ29tbWFuZAlza2lwd2hpdGUgY2hhcnNldC1ob29rIG5leHRncm91cD1tdXR0cmNSWFN0cmluZwogc3luIGtleXdvcmQgbXV0dHJjQ29tbWFuZAlza2lwd2hpdGUgdW5ob29rIG5leHRncm91cD1tdXR0cmNIb29rcwogCkBAIC00NDEsNyArNDM3LDcgQEAKIHN5biBtYXRjaCBtdXR0cmNFc2NhcGVkVmFyaWFibGUJY29udGFpbmVkICJcXFwkW2EtekEtWl8tXVwrIgogCiBzeW4gbWF0Y2ggbXV0dHJjQmFkQWN0aW9uCWNvbnRhaW5lZCAiW148Pl1cKyIgY29udGFpbnM9bXV0dHJjRW1haWwKLXN5biBtYXRjaCBtdXR0cmNGdW5jdGlvbgljb250YWluZWQgIlw8XCUoYXR0YWNoXHxib3VuY2VcfGNvcHlcfGRlbGV0ZVx8ZGlzcGxheVx8ZmxhZ1x8Zm9yd2FyZFx8cGFyZW50XHxwaXBlXHxwb3N0cG9uZVx8cHJpbnRcfHJlY2FsbFx8cmVzZW5kXHxzYXZlXHxzZW5kXHx0YWdcfHVuZGVsZXRlXCktbWVzc2FnZVw+Igorc3luIG1hdGNoIG11dHRyY0Z1bmN0aW9uCWNvbnRhaW5lZCAiXDxcJShhdHRhY2hcfGJvdW5jZVx8Y29weVx8ZGVsZXRlXHxkaXNwbGF5XHxmbGFnXHxmb3J3YXJkXHxwYXJlbnRcfHBpcGVcfHBvc3Rwb25lXHxwcmludFx8cHVyZ2VcfHJlY2FsbFx8cmVzZW5kXHxzYXZlXHxzZW5kXHx0YWdcfHVuZGVsZXRlXCktbWVzc2FnZVw+Igogc3luIG1hdGNoIG11dHRyY0Z1bmN0aW9uCWNvbnRhaW5lZCAiXDxcJShkZWxldGVcfG5leHRcfHByZXZpb3VzXHxyZWFkXHx0YWdcfGJyZWFrXHx1bmRlbGV0ZVwpLXRocmVhZFw+Igogc3luIG1hdGNoIG11dHRyY0Z1bmN0aW9uCWNvbnRhaW5lZCAiXDxsaW5rLXRocmVhZHNcPiIKIHN5biBtYXRjaCBtdXR0cmNGdW5jdGlvbgljb250YWluZWQgIlw8XCUoYmFja3dhcmRcfGNhcGl0YWxpemVcfGRvd25jYXNlXHxmb3J3YXJkXHxraWxsXHx1cGNhc2VcKS13b3JkXD4iCkBAIC00NjUsMTEgKzQ2MSwxMyBAQAogc3luIG1hdGNoIG11dHRyY0Z1bmN0aW9uCWNvbnRhaW5lZCAiXDxzb3J0LVwlKG1haWxib3hcfHJldmVyc2VcKVw+Igogc3luIG1hdGNoIG11dHRyY0Z1bmN0aW9uCWNvbnRhaW5lZCAiXDx0YWctXCUocGF0dGVyblx8XCUoc3ViXClcP3RocmVhZFx8cHJlZml4XCUoLWNvbmRcKVw/XClcPiIKIHN5biBtYXRjaCBtdXR0cmNGdW5jdGlvbgljb250YWluZWQgIlw8ZW5kLWNvbmRcPiIKK3N5biBtYXRjaCBtdXR0cmNGdW5jdGlvbgljb250YWluZWQgIlw8c2lkZWJhci1cJShuZXh0XHxuZXh0LW5ld1x8b3Blblx8cGFnZS1kb3duXHxwYWdlLXVwXHxwcmV2XHxwcmV2LW5ld1x8dG9nZ2xlLXZpc2libGVcKVw+Igogc3luIG1hdGNoIG11dHRyY0Z1bmN0aW9uCWNvbnRhaW5lZCAiXDx0b2dnbGUtXCUobWFpbGJveGVzXHxuZXdcfHF1b3RlZFx8c3Vic2NyaWJlZFx8dW5saW5rXHx3cml0ZVwpXD4iCiBzeW4gbWF0Y2ggbXV0dHJjRnVuY3Rpb24JY29udGFpbmVkICJcPHVuZGVsZXRlLVwlKHBhdHRlcm5cfHN1YnRocmVhZFwpXD4iCiBzeW4gbWF0Y2ggbXV0dHJjRnVuY3Rpb24JY29udGFpbmVkICJcPGNvbGxhcHNlLVwlKHBhcnRzXHx0aHJlYWRcfGFsbFwpXD4iCiBzeW4gbWF0Y2ggbXV0dHJjRnVuY3Rpb24JY29udGFpbmVkICJcPHZpZXctXCUoYXR0YWNoXHxhdHRhY2htZW50c1x8ZmlsZVx8bWFpbGNhcFx8bmFtZVx8dGV4dFwpXD4iCiBzeW4gbWF0Y2ggbXV0dHJjRnVuY3Rpb24JY29udGFpbmVkICJcPFwlKGJhY2tzcGFjZVx8YmFja3dhcmQtY2hhclx8Ym9sXHxib3R0b21cfGJvdHRvbS1wYWdlXHxidWZmeS1jeWNsZVx8Y2xlYXItZmxhZ1x8Y29tcGxldGVcJSgtcXVlcnlcKVw/XHxjb3B5LWZpbGVcfGNyZWF0ZS1hbGlhc1x8ZGV0YWNoLWZpbGVcfGVvbFx8ZXhpdFx8ZXh0cmFjdC1rZXlzXHxcJShpbWFwLVwpXD9mZXRjaC1tYWlsXHxmb3JnZXQtcGFzc3BocmFzZVx8Zm9yd2FyZC1jaGFyXHxncm91cC1yZXBseVx8aGVscFx8aXNwZWxsXHxqdW1wXHxsaW1pdFx8bGlzdC1yZXBseVx8bWFpbFx8bWFpbC1rZXlcfG1hcmstYXMtbmV3XHxtaWRkbGUtcGFnZVx8bmV3LW1pbWVcfG5vb3BcfHBncC1tZW51XHxxdWVyeVx8cXVlcnktYXBwZW5kXHxxdWl0XHxxdW90ZS1jaGFyXHxyZWFkLXN1YnRocmVhZFx8cmVkcmF3LXNjcmVlblx8cmVmcmVzaFx8cmVuYW1lLWZpbGVcfHJlcGx5XHxzZWxlY3QtbmV3XHxzZXQtZmxhZ1x8c2hlbGwtZXNjYXBlXHxza2lwLXF1b3RlZFx8c29ydFx8c3Vic2NyaWJlXHxzeW5jLW1haWxib3hcfHRvcFx8dG9wLXBhZ2VcfHRyYW5zcG9zZS1jaGFyc1x8dW5zdWJzY3JpYmVcfHVudGFnLXBhdHRlcm5cfHZlcmlmeS1rZXlcfHdoYXQta2V5XHx3cml0ZS1mY2NcKVw+Igorc3luIGtleXdvcmQgbXV0dHJjRnVuY3Rpb24JY29udGFpbmVkIGltYXAtbG9nb3V0LWFsbAogaWYgdXNlX211dHRfc2lkZWJhciA9PSAxCiAgICAgc3luIG1hdGNoIG11dHRyY0Z1bmN0aW9uICAgIGNvbnRhaW5lZCAiXDxzaWRlYmFyLVwlKHByZXZcfG5leHRcfG9wZW5cfHNjcm9sbC11cFx8c2Nyb2xsLWRvd25cKSIKIGVuZGlmCkBAIC01NzgsNyArNTc2LDExIEBACiBzeW4gbWF0Y2ggbXV0dHJjQ29sb3JNYXRjaENvdW50TkwgY29udGFpbmVkIHNraXB3aGl0ZSBza2lwbmwgIlxzKlxcJCIgbmV4dGdyb3VwPW11dHRyY0NvbG9yTWF0Y2hDb3VudCxtdXR0cmNDb2xvck1hdGNoQ291bnROTAogc3luIHJlZ2lvbiBtdXR0cmNDb2xvclJYUGF0CWNvbnRhaW5lZCBzdGFydD0rXHMqJysgc2tpcD0rXFwnKyBlbmQ9KydccyorIGtlZXBlbmQgc2tpcHdoaXRlIGNvbnRhaW5zPW11dHRyY1JYU3RyaW5nMiBuZXh0Z3JvdXA9bXV0dHJjQ29sb3JNYXRjaENvdW50LG11dHRyY0NvbG9yTWF0Y2hDb3VudE5MCiBzeW4gcmVnaW9uIG11dHRyY0NvbG9yUlhQYXQJY29udGFpbmVkIHN0YXJ0PStccyoiKyBza2lwPStcXCIrIGVuZD0rIlxzKisga2VlcGVuZCBza2lwd2hpdGUgY29udGFpbnM9bXV0dHJjUlhTdHJpbmcyIG5leHRncm91cD1tdXR0cmNDb2xvck1hdGNoQ291bnQsbXV0dHJjQ29sb3JNYXRjaENvdW50TkwKLXN5biBrZXl3b3JkIG11dHRyY0NvbG9yRmllbGQJY29udGFpbmVkIGF0dGFjaG1lbnQgYm9keSBib2xkIGVycm9yIGhkcmRlZmF1bHQgaGVhZGVyIGluZGV4IGluZGljYXRvciBtYXJrZXJzIG1lc3NhZ2Ugbm9ybWFsIHF1b3RlZCBzZWFyY2ggc2lnbmF0dXJlIHN0YXR1cyB0aWxkZSB0cmVlIHVuZGVybGluZQorc3luIGtleXdvcmQgbXV0dHJjQ29sb3JGaWVsZAlza2lwd2hpdGUgY29udGFpbmVkCisJCQlcIGF0dGFjaG1lbnQgYm9keSBib2xkIGVycm9yIGhkcmRlZmF1bHQgaGVhZGVyIGluZGV4IGluZGljYXRvciBtYXJrZXJzIG1lc3NhZ2UKKwkJCVwgbm9ybWFsIHByb21wdCBxdW90ZWQgc2VhcmNoIHNpZGViYXItZGl2aWRlciBzaWRlYmFyLWZsYWdnZWQgc2lkZWJhci1oaWdobGlnaHQKKwkJCVwgc2lkZWJhci1pbmRpY2F0b3Igc2lkZWJhci1uZXcgc2lkZWJhci1zcG9vbGZpbGUgc2lnbmF0dXJlIHN0YXR1cyB0aWxkZSB0cmVlCisJCQlcIHVuZGVybGluZQogc3luIG1hdGNoICAgbXV0dHJjQ29sb3JGaWVsZAljb250YWluZWQgIlw8cXVvdGVkXGRcPVw+IgogaWYgdXNlX211dHRfc2lkZWJhciA9PSAxCiAgICAgc3luIGtleXdvcmQgbXV0dHJjQ29sb3JGaWVsZCBjb250YWluZWQgc2lkZWJhcl9uZXcKZGlmZiAtLWdpdCBhL3J1bnRpbWUvc3ludGF4L3B5dGhvbi52aW0gYi9ydW50aW1lL3N5bnRheC9weXRob24udmltCmluZGV4IDRiOTA3N2EuLjU5Njc1YzMgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvc3ludGF4L3B5dGhvbi52aW0KKysrIGIvcnVudGltZS9zeW50YXgvcHl0aG9uLnZpbQpAQCAtMSw3ICsxLDcgQEAKICIgVmltIHN5bnRheCBmaWxlCiAiIExhbmd1YWdlOglQeXRob24KICIgTWFpbnRhaW5lcjoJWnZlemRhbiBQZXRrb3ZpYyA8enBldGtvdmljQGFjbS5vcmc+Ci0iIExhc3QgQ2hhbmdlOgkyMDE2IEp1bCAyMQorIiBMYXN0IENoYW5nZToJMjAxNiBBdWcgMTQKICIgQ3JlZGl0czoJTmVpbCBTY2hlbWVuYXVlciA8bmFzQHB5dGhvbi5jYT4KICIJCURtaXRyeSBWYXNpbGlldgogIgpAQCAtODQsMTQgKzg0LDMwIEBACiBzeW4ga2V5d29yZCBweXRob25Bc3luYwkJYXN5bmMgYXdhaXQKIAogIiBEZWNvcmF0b3JzIChuZXcgaW4gUHl0aG9uIDIuNCkKLXN5biBtYXRjaCAgIHB5dGhvbkRlY29yYXRvcgkiQCIgZGlzcGxheSBuZXh0Z3JvdXA9cHl0aG9uRnVuY3Rpb24gc2tpcHdoaXRlCi0iIFRoZSB6ZXJvLWxlbmd0aCBub24tZ3JvdXBpbmcgbWF0Y2ggYmVmb3JlIHRoZSBmdW5jdGlvbiBuYW1lIGlzCi0iIGV4dHJlbWVseSBpbXBvcnRhbnQgaW4gcHl0aG9uRnVuY3Rpb24uICBXaXRob3V0IGl0LCBldmVyeXRoaW5nIGlzCi0iIGludGVycHJldGVkIGFzIGEgZnVuY3Rpb24gaW5zaWRlIHRoZSBjb250YWluZWQgZW52aXJvbm1lbnQgb2YKLSIgZG9jdGVzdHMuCisiIFB5dGhvbiAzLjUgaW50cm9kdWNlZCB0aGUgdXNlIG9mIHRoZSBzYW1lIHN5bWJvbCBmb3IgbWF0cml4CisiIG11bHRpcGxpY2F0aW9uLiAgV2Ugbm93IGhhdmUgdG8gZXhjbHVkZSB0aGUgc3ltYm9sIGZyb20gYmVpbmcKKyIgaGlnaGxpZ2h0ZWQgd2hlbiB1c2VkIGluIHRoYXQgY29udGV4dC4gSGVuY2UsIHRoZSBjaGVjayB0aGF0IGl0J3MKKyIgcHJlY2VkZWQgYnkgZW1wdHkgc3BhY2Ugb25seSAocG9zc2libHkgaW4gYSBkb2NzdHJpbmcvZG9jdGVzdCkgYW5kCisiIGZvbGxvd2VkIGJ5IGRlY29yYXRvciBuYW1lLCBvcHRpb25hbCBwYXJlbnRoZXNpemVkIGxpc3Qgb2YgYXJndW1lbnRzLAorIiBhbmQgdGhlIG5leHQgbGluZSB3aXRoIGVpdGhlciBkZWYsIGNsYXNzLCBvciBhbm90aGVyIGRlY29yYXRvci4KK3N5biBtYXRjaCAgIHB5dGhvbkRlY29yYXRvcgorICBcICJcJShcJSheXHMqXClcJShcJSg+Pj5cfFwuXC5cLlwpXHNcK1wpXD1cKVx6c0BcJShccypcaFwlKFx3XHxcLlwpKlwlKChbXildKilcKVw9XHMqXG5ccypcJShcLlwuXC5cc1wrXClcPVwlKEBccypcaFx8XCUoZGVmXHxjbGFzc1wpXHNcK1wpXClcQD0iCisgIFwgZGlzcGxheSBuZXh0Z3JvdXA9cHl0aG9uRGVjb3JhdG9yTmFtZSBza2lwd2hpdGUKKwogIiBBIGRvdCBtdXN0IGJlIGFsbG93ZWQgYmVjYXVzZSBvZiBATXlDbGFzcy5teWZ1bmMgZGVjb3JhdG9ycy4KKyIgSXQgbXVzdCBiZSBwcmVjZWRlZCBieSBhIGRlY29yYXRvciBzeW1ib2wgYW5kIG9uIGEgc2VwYXJhdGUgbGluZSBmcm9tCisiIGEgZnVuY3Rpb24vY2xhc3MgaXQgZGVjb3JhdGVzLgorc3luIG1hdGNoICAgcHl0aG9uRGVjb3JhdG9yTmFtZQorICBcICJcJShAXHMqXClcQDw9XGhcJShcd1x8XC5cKSpcJShcJSgoW14pXSopXClcPVxzKlxuXClcQD0iCisgIFwgY29udGFpbmVkIGRpc3BsYXkgbmV4dGdyb3VwPXB5dGhvbkZ1bmN0aW9uIHNraXBubAorCisiIFRoZSB6ZXJvLWxlbmd0aCBub24tZ3JvdXBpbmcgbWF0Y2ggb2YgZGVmIG9yIGNsYXNzIGJlZm9yZSB0aGUgZnVuY3Rpb24KKyIgbmFtZSBpcyBleHRyZW1lbHkgaW1wb3J0YW50IGluIHB5dGhvbkZ1bmN0aW9uLiAgV2l0aG91dCBpdCwgZXZlcnl0aGluZworIiBpcyBpbnRlcnByZXRlZCBhcyBhIGZ1bmN0aW9uIGluc2lkZSB0aGUgY29udGFpbmVkIGVudmlyb25tZW50IG9mCisiIGRvY3Rlc3RzLgogc3luIG1hdGNoICAgcHl0aG9uRnVuY3Rpb24KLSAgICAgIFwgIlwlKFwlKGRlZlxzXHxjbGFzc1xzXHxAXClccypcKVxAPD1caFwlKFx3XHxcLlwpKiIgY29udGFpbmVkCisgIFwgIlwlKFwlKF5ccypcKVwlKFwlKD4+Plx8XC5cLlwuXClcc1wrXClcPVwlKGRlZlx8Y2xhc3NcKVxzXCtcKVxAPD1caFx3KiIKKyAgXCBjb250YWluZWQKIAogc3luIG1hdGNoICAgcHl0aG9uQ29tbWVudAkiIy4qJCIgY29udGFpbnM9cHl0aG9uVG9kbyxAU3BlbGwKIHN5biBrZXl3b3JkIHB5dGhvblRvZG8JCUZJWE1FIE5PVEUgTk9URVMgVE9ETyBYWFggY29udGFpbmVkCkBAIC0yOTMsNiArMzA5LDcgQEAKICAgSGlMaW5rIHB5dGhvbkluY2x1ZGUJCUluY2x1ZGUKICAgSGlMaW5rIHB5dGhvbkFzeW5jCQlTdGF0ZW1lbnQKICAgSGlMaW5rIHB5dGhvbkRlY29yYXRvcglEZWZpbmUKKyAgSGlMaW5rIHB5dGhvbkRlY29yYXRvck5hbWUJRnVuY3Rpb24KICAgSGlMaW5rIHB5dGhvbkZ1bmN0aW9uCQlGdW5jdGlvbgogICBIaUxpbmsgcHl0aG9uQ29tbWVudAkJQ29tbWVudAogICBIaUxpbmsgcHl0aG9uVG9kbwkJVG9kbwpkaWZmIC0tZ2l0IGEvcnVudGltZS9zeW50YXgvci52aW0gYi9ydW50aW1lL3N5bnRheC9yLnZpbQppbmRleCBkOTZiZjk2Li4zMGE1YjIzIDEwMDY0NAotLS0gYS9ydW50aW1lL3N5bnRheC9yLnZpbQorKysgYi9ydW50aW1lL3N5bnRheC9yLnZpbQpAQCAtNSw3ICs1LDcgQEAKICIgCQkgICAgICBUb20gUGF5bmUgPHRvbUB0b21wYXluZS5vcmc+CiAiIENvbnRyaWJ1dG9yOiAgICAgICAgSm9oYW5uZXMgUmFua2UgPGpyYW5rZUB1bmktYnJlbWVuLmRlPgogIiBIb21lcGFnZTogICAgICAgICAgIGh0dHBzOi8vZ2l0aHViLmNvbS9qYWx2ZXNhcS9SLVZpbS1ydW50aW1lCi0iIExhc3QgQ2hhbmdlOgkgICAgICBUaHUgTWFyIDEwLCAyMDE2ICAxMjoyNlBNCisiIExhc3QgQ2hhbmdlOgkgICAgICBUaHUgQXVnIDI1LCAyMDE2ICAwODo1MlBNCiAiIEZpbGVuYW1lczoJICAgICAgKi5SICouciAqLlJoaXN0b3J5ICouUnQKICIKICIgTk9URTogVGhlIGhpZ2hsaWdodGluZyBvZiBSIGZ1bmN0aW9ucyBpcyBkZWZpbmVkIGluCkBAIC0yNiw3ICsyNiw3IEBACiAgIGZpbmlzaAogZW5kaWYKIAotc2V0bG9jYWwgaXNrZXl3b3JkPUAsNDgtNTcsXywuCitzeW4gaXNrZXl3b3JkIEAsNDgtNTcsXywuCiAKIGlmIGV4aXN0cygiZzpyX3N5bnRheF9mb2xkaW5nIikgJiYgZzpyX3N5bnRheF9mb2xkaW5nCiAgIHNldGxvY2FsIGZvbGRtZXRob2Q9c3ludGF4CkBAIC0xNzQsOCArMTc0LDYgQEAKIGlmIGc6Ul9oaV9mdW4KICAgIiBOdmltLVI6CiAgIHJ1bnRpbWUgUi9mdW5jdGlvbnMudmltCi0gICIgVmltLVItcGx1Z2luOgotICBydW50aW1lIHItcGx1Z2luL2Z1bmN0aW9ucy52aW0KIGVuZGlmCiAKIHN5biBtYXRjaCByRG9sbGFyIGRpc3BsYXkgY29udGFpbmVkICJcJCIKZGlmZiAtLWdpdCBhL3J1bnRpbWUvc3ludGF4L3JoZWxwLnZpbSBiL3J1bnRpbWUvc3ludGF4L3JoZWxwLnZpbQppbmRleCA0N2M3NjRlLi44Y2FjNTg1IDEwMDY0NAotLS0gYS9ydW50aW1lL3N5bnRheC9yaGVscC52aW0KKysrIGIvcnVudGltZS9zeW50YXgvcmhlbHAudmltCkBAIC0zLDcgKzMsNyBAQAogIiBNYWludGFpbmVyOiBKYWtzb24gQXF1aW5vIDxqYWx2ZXNhcUBnbWFpbC5jb20+CiAiIEZvcm1lciBNYWludGFpbmVyOiBKb2hhbm5lcyBSYW5rZSA8anJhbmtlQHVuaS1icmVtZW4uZGU+CiAiIEhvbWVwYWdlOiBodHRwczovL2dpdGh1Yi5jb20vamFsdmVzYXEvUi1WaW0tcnVudGltZQotIiBMYXN0IENoYW5nZTogU2F0IEZlYiAwNiwgMjAxNiAgMTE6MzRBTQorIiBMYXN0IENoYW5nZTogVHVlIEp1biAyOCwgMjAxNiAgMDg6NTNBTQogIiBSZW1hcmtzOiAgICAgLSBJbmNsdWRlcyBSIHN5bnRheCBoaWdobGlnaHRpbmcgaW4gdGhlIGFwcHJvcHJpYXRlCiAiICAgICAgICAgICAgICAgIHNlY3Rpb25zIGlmIGFuIHIudmltIGZpbGUgaXMgaW4gdGhlIHNhbWUgZGlyZWN0b3J5IG9yIGluIHRoZQogIiAgICAgICAgICAgICAgICBkZWZhdWx0IGRlYmlhbiBsb2NhdGlvbi4KQEAgLTE3LDcgKzE3LDYgQEAKIGVuZGlmIAogCiBzY3JpcHRlbmNvZGluZyB1dGYtOAotc2V0bG9jYWwgaXNrZXl3b3JkPUAsNDgtNTcsXywuCiAKIHN5biBjYXNlIG1hdGNoCiAKZGlmZiAtLWdpdCBhL3J1bnRpbWUvc3ludGF4L3JtZC52aW0gYi9ydW50aW1lL3N5bnRheC9ybWQudmltCmluZGV4IDRjZGU3NDQuLjQ4ZmI1ZTAgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvc3ludGF4L3JtZC52aW0KKysrIGIvcnVudGltZS9zeW50YXgvcm1kLnZpbQpAQCAtMSw3ICsxLDcgQEAKICIgbWFya2Rvd24gVGV4dCB3aXRoIFIgc3RhdGVtZW50cwogIiBMYW5ndWFnZTogbWFya2Rvd24gd2l0aCBSIGNvZGUgY2h1bmtzCiAiIEhvbWVwYWdlOiBodHRwczovL2dpdGh1Yi5jb20vamFsdmVzYXEvUi1WaW0tcnVudGltZQotIiBMYXN0IENoYW5nZTogU2F0IEZlYiAwNiwgMjAxNiAgMDY6NDVBTQorIiBMYXN0IENoYW5nZTogVHVlIEp1biAyOCwgMjAxNiAgMTA6MDlBTQogIgogIiBDT05GSUdVUkFUSU9OOgogIiAgIFRvIGhpZ2hsaWdodCBjaHVuayBoZWFkZXJzIGFzIFIgY29kZSwgcHV0IGluIHlvdXIgdmltcmM6CkBAIC03Miw4ICs3Miw2IEBACiAgIGhpIGRlZiBsaW5rIHJtZExhVGVYUmVnRGVsaW0gU3BlY2lhbAogZW5kaWYKIAotc2V0bG9jYWwgaXNrZXl3b3JkPUAsNDgtNTcsXywuCi0KIHN5biBzeW5jIG1hdGNoIHJtZFN5bmNDaHVuayBncm91cGhlcmUgcm1kQ2h1bmsgIl5bIFx0XSpgYGAgKntyIgogCiBoaSBkZWYgbGluayBybWRDaHVua0RlbGltIFNwZWNpYWwKZGlmZiAtLWdpdCBhL3J1bnRpbWUvc3ludGF4L3Jyc3QudmltIGIvcnVudGltZS9zeW50YXgvcnJzdC52aW0KaW5kZXggMjRkMzg0NC4uYjY0M2FmMyAxMDA2NDQKLS0tIGEvcnVudGltZS9zeW50YXgvcnJzdC52aW0KKysrIGIvcnVudGltZS9zeW50YXgvcnJzdC52aW0KQEAgLTIsNyArMiw3IEBACiAiIExhbmd1YWdlOiByZVNUIHdpdGggUiBjb2RlIGNodW5rcwogIiBNYWludGFpbmVyOiBBbGV4IFp2b2xlZmYsIGF6dm9sZWZmQG1haWwuc2RzdS5lZHUKICIgSG9tZXBhZ2U6IGh0dHBzOi8vZ2l0aHViLmNvbS9qYWx2ZXNhcS9SLVZpbS1ydW50aW1lCi0iIExhc3QgQ2hhbmdlOiBTYXQgRmViIDA2LCAyMDE2ICAwNjo0NUFNCisiIExhc3QgQ2hhbmdlOiBUdWUgSnVuIDI4LCAyMDE2ICAwODo1M0FNCiAiCiAiIENPTkZJR1VSQVRJT046CiAiICAgVG8gaGlnaGxpZ2h0IGNodW5rIGhlYWRlcnMgYXMgUiBjb2RlLCBwdXQgaW4geW91ciB2aW1yYzoKQEAgLTE5LDggKzE5LDYgQEAKICIgbG9hZCBhbGwgb2YgdGhlIHIgc3ludGF4IGhpZ2hsaWdodGluZyBydWxlcyBpbnRvIEBSCiBzeW50YXggaW5jbHVkZSBAUiBzeW50YXgvci52aW0KIAotc2V0bG9jYWwgaXNrZXl3b3JkPUAsNDgtNTcsXywuCi0KICIgaGlnaGxpZ2h0IFIgY2h1bmtzCiBpZiBleGlzdHMoImc6cnJzdF9zeW5faGxfY2h1bmsiKQogICAiIGhpZ2hsaWdodCBSIGNvZGUgaW5zaWRlIGNodW5rIGhlYWRlcgpkaWZmIC0tZ2l0IGEvcnVudGltZS9zeW50YXgvc2NhbGEudmltIGIvcnVudGltZS9zeW50YXgvc2NhbGEudmltCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmIwNGFmM2IKLS0tIC9kZXYvbnVsbAorKysgYi9ydW50aW1lL3N5bnRheC9zY2FsYS52aW0KQEAgLTAsMCArMSwyMzEgQEAKKyIgVmltIHN5bnRheCBmaWxlCisiIExhbmd1YWdlOiAgICAgICAgICAgICBTY2FsYQorIiBNYWludGFpbmVyOiAgICAgICAgICAgRGVyZWsgV3lhdHQKKyIgVVJMOiAgICAgICAgICAgICAgICAgIGh0dHBzOi8vZ2l0aHViLmNvbS9kZXJla3d5YXR0L3ZpbS1zY2FsYQorIiBMaWNlbnNlOiAgICAgICAgICAgICAgU2FtZSBhcyBWaW0KKyIgTGFzdCBDaGFuZ2U6ICAgICAgICAgIDIwIE1heSAyMDE2CisiIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworaWYgIWV4aXN0cygnbWFpbl9zeW50YXgnKQorICBpZiB2ZXJzaW9uIDwgNjAwCisgICAgc3ludGF4IGNsZWFyCisgIGVsc2VpZiBleGlzdHMoImI6Y3VycmVudF9zeW50YXgiKQorICAgIGZpbmlzaAorICBlbmRpZgorICBsZXQgbWFpbl9zeW50YXggPSAnc2NhbGEnCitlbmRpZgorCitzY3JpcHRlbmNvZGluZyB1dGYtOAorCitsZXQgYjpjdXJyZW50X3N5bnRheCA9ICJzY2FsYSIKKworIiBBbGxvd3MgZm9yIGVtYmVkZGluZywgc2VlICM1OTsgbWFpbl9zeW50YXggY29udmVudGlvbiBpbnN0ZWFkPyBSZWZhY3RvciBUT1AKKyIKKyIgVGhlIEBTcGVsbCBoZXJlIGlzIGEgd2VpcmQgaGFjaywgaXQgbWVhbnMgKmV4Y2x1ZGUqIGlmIHRoZSBmaXJzdCBncm91cCBpcworIiBUT1AuIE90aGVyd2lzZSB3ZSBnZXQgc3BlbGxpbmcgZXJyb3JzIGhpZ2hsaWdodGVkIG9uIGNvZGUgZWxlbWVudHMgdGhhdAorIiBtYXRjaCBzY2FsYUJsb2NrLCBldmVuIHdpdGggYHN5biBzcGVsbCBub3RvcGxldmVsYC4KK2Z1bmN0aW9uISBzOkNvbnRhaW5lZEdyb3VwKCkKKyAgdHJ5CisgICAgc2lsZW50IHN5biBsaXN0IEBzY2FsYQorICAgIHJldHVybiAnQHNjYWxhLEBOb1NwZWxsJworICBjYXRjaCAvRTM5Mi8KKyAgICByZXR1cm4gJ1RPUCxAU3BlbGwnCisgIGVuZHRyeQorZW5kZnVuY3Rpb24KKwordW5sZXQhIGI6Y3VycmVudF9zeW50YXgKKworc3luIGNhc2UgbWF0Y2gKK3N5biBzeW5jIG1pbmxpbmVzPTIwMCBtYXhsaW5lcz0xMDAwCisKK3N5biBrZXl3b3JkIHNjYWxhS2V5d29yZCBjYXRjaCBkbyBlbHNlIGZpbmFsIGZpbmFsbHkgZm9yIGZvclNvbWUgaWYKK3N5biBrZXl3b3JkIHNjYWxhS2V5d29yZCBtYXRjaCByZXR1cm4gdGhyb3cgdHJ5IHdoaWxlIHlpZWxkIG1hY3JvCitzeW4ga2V5d29yZCBzY2FsYUtleXdvcmQgY2xhc3MgdHJhaXQgb2JqZWN0IGV4dGVuZHMgd2l0aCBuZXh0Z3JvdXA9c2NhbGFJbnN0YW5jZURlY2xhcmF0aW9uIHNraXB3aGl0ZQorc3luIGtleXdvcmQgc2NhbGFLZXl3b3JkIGNhc2UgbmV4dGdyb3VwPXNjYWxhS2V5d29yZCxzY2FsYUNhc2VGb2xsb3dpbmcgc2tpcHdoaXRlCitzeW4ga2V5d29yZCBzY2FsYUtleXdvcmQgdmFsIG5leHRncm91cD1zY2FsYU5hbWVEZWZpbml0aW9uLHNjYWxhUXVhc2lRdW90ZXMgc2tpcHdoaXRlCitzeW4ga2V5d29yZCBzY2FsYUtleXdvcmQgZGVmIHZhciBuZXh0Z3JvdXA9c2NhbGFOYW1lRGVmaW5pdGlvbiBza2lwd2hpdGUKK2hpIGxpbmsgc2NhbGFLZXl3b3JkIEtleXdvcmQKKworZXhlICdzeW4gcmVnaW9uIHNjYWxhQmxvY2sgc3RhcnQ9L3svIGVuZD0vfS8gY29udGFpbnM9JyAuIHM6Q29udGFpbmVkR3JvdXAoKSAuICcgZm9sZCcKKworc3luIGtleXdvcmQgc2NhbGFBa2thU3BlY2lhbFdvcmQgd2hlbiBnb3RvIHVzaW5nIHN0YXJ0V2l0aCBpbml0aWFsaXplIG9uVHJhbnNpdGlvbiBzdGF5IGJlY29tZSB1bmJlY29tZQoraGkgbGluayBzY2FsYUFra2FTcGVjaWFsV29yZCBQcmVQcm9jCisKK3N5biBrZXl3b3JkIHNjYWxhdGVzdFNwZWNpYWxXb3JkIHNob3VsZEJlCitzeW4gbWF0Y2ggc2NhbGF0ZXN0U2hvdWxkRFNMQSAvXlxzXCtcenNpdCBzaG91bGQvCitzeW4gbWF0Y2ggc2NhbGF0ZXN0U2hvdWxkRFNMQiAvXDxzaG91bGRcPi8KK2hpIGxpbmsgc2NhbGF0ZXN0U3BlY2lhbFdvcmQgUHJlUHJvYworaGkgbGluayBzY2FsYXRlc3RTaG91bGREU0xBIFByZVByb2MKK2hpIGxpbmsgc2NhbGF0ZXN0U2hvdWxkRFNMQiBQcmVQcm9jCisKK3N5biBtYXRjaCBzY2FsYVN5bWJvbCAvJ1tfQS1aYS16MC05JF1cKy8KK2hpIGxpbmsgc2NhbGFTeW1ib2wgTnVtYmVyCisKK3N5biBtYXRjaCBzY2FsYUNoYXIgLycuJy8KK3N5biBtYXRjaCBzY2FsYUNoYXIgLydcXFtcXCInbnRicmZdJy8gY29udGFpbnM9c2NhbGFFc2NhcGVkQ2hhcgorc3luIG1hdGNoIHNjYWxhQ2hhciAvJ1xcdVtBLUZhLWYwLTldXHs0fScvIGNvbnRhaW5zPXNjYWxhVW5pY29kZUNoYXIKK3N5biBtYXRjaCBzY2FsYUVzY2FwZWRDaGFyIC9cXFtcXCInbnRicmZdLworc3luIG1hdGNoIHNjYWxhVW5pY29kZUNoYXIgL1xcdVtBLUZhLWYwLTldXHs0fS8KK2hpIGxpbmsgc2NhbGFDaGFyIENoYXJhY3RlcgoraGkgbGluayBzY2FsYUVzY2FwZWRDaGFyIEZ1bmN0aW9uCitoaSBsaW5rIHNjYWxhVW5pY29kZUNoYXIgU3BlY2lhbAorCitzeW4gbWF0Y2ggc2NhbGFPcGVyYXRvciAifHwiCitzeW4gbWF0Y2ggc2NhbGFPcGVyYXRvciAiJiYiCitoaSBsaW5rIHNjYWxhT3BlcmF0b3IgU3BlY2lhbAorCitzeW4gbWF0Y2ggc2NhbGFOYW1lRGVmaW5pdGlvbiAvXDxbX0EtWmEtejAtOSRdXCtcPi8gY29udGFpbmVkIG5leHRncm91cD1zY2FsYVBvc3ROYW1lRGVmaW5pdGlvbixzY2FsYVZhcmlhYmxlRGVjbGFyYXRpb25MaXN0CitzeW4gbWF0Y2ggc2NhbGFOYW1lRGVmaW5pdGlvbiAvYFteYF1cK2AvIGNvbnRhaW5lZCBuZXh0Z3JvdXA9c2NhbGFQb3N0TmFtZURlZmluaXRpb24KK3N5biBtYXRjaCBzY2FsYVZhcmlhYmxlRGVjbGFyYXRpb25MaXN0IC9ccyosXHMqLyBjb250YWluZWQgbmV4dGdyb3VwPXNjYWxhTmFtZURlZmluaXRpb24KK3N5biBtYXRjaCBzY2FsYVBvc3ROYW1lRGVmaW5pdGlvbiAvXF9zKjpcX3MqLyBjb250YWluZWQgbmV4dGdyb3VwPXNjYWxhVHlwZURlY2xhcmF0aW9uCitoaSBsaW5rIHNjYWxhTmFtZURlZmluaXRpb24gRnVuY3Rpb24KKworc3luIG1hdGNoIHNjYWxhSW5zdGFuY2VEZWNsYXJhdGlvbiAvXDxbX1wuQS1aYS16MC05JF1cK1w+LyBjb250YWluZWQgbmV4dGdyb3VwPXNjYWxhSW5zdGFuY2VIYXNoCitzeW4gbWF0Y2ggc2NhbGFJbnN0YW5jZURlY2xhcmF0aW9uIC9gW15gXVwrYC8gY29udGFpbmVkCitzeW4gbWF0Y2ggc2NhbGFJbnN0YW5jZUhhc2ggLyMvIGNvbnRhaW5lZCBuZXh0Z3JvdXA9c2NhbGFJbnN0YW5jZURlY2xhcmF0aW9uCitoaSBsaW5rIHNjYWxhSW5zdGFuY2VEZWNsYXJhdGlvbiBTcGVjaWFsCitoaSBsaW5rIHNjYWxhSW5zdGFuY2VIYXNoIFR5cGUKKworc3luIG1hdGNoIHNjYWxhVW5pbXBsZW1lbnRlZCAvPz8/LworaGkgbGluayBzY2FsYVVuaW1wbGVtZW50ZWQgRVJST1IKKworc3luIG1hdGNoIHNjYWxhQ2FwaXRhbFdvcmQgL1w8W0EtWl1bQS1aYS16MC05JF0qXD4vCitoaSBsaW5rIHNjYWxhQ2FwaXRhbFdvcmQgU3BlY2lhbAorCisiIEhhbmRsZSB0eXBlIGRlY2xhcmF0aW9ucyBzcGVjaWFsbHkKK3N5biByZWdpb24gc2NhbGFUeXBlU3RhdGVtZW50IG1hdGNoZ3JvdXA9S2V5d29yZCBzdGFydD0vXDx0eXBlXF9zXCtcemUvIGVuZD0vJC8gY29udGFpbnM9c2NhbGFUeXBlVHlwZURlY2xhcmF0aW9uLHNjYWxhU3F1YXJlQnJhY2tldHMsc2NhbGFUeXBlVHlwZUVxdWFscyxzY2FsYVR5cGVTdGF0ZW1lbnQKKworIiBVZ2guLi4gZHVwbGljYXRpb24gb2YgYWxsIHRoZSBzY2FsYVR5cGUqIHN0dWZmIHRvIGhhbmRsZSBzcGVjaWFsIGhpZ2hsaWdodGluZworIiBvZiBgdHlwZSBYID1gIGRlY2xhcmF0aW9ucworc3luIG1hdGNoIHNjYWxhVHlwZVR5cGVEZWNsYXJhdGlvbiAvKC8gY29udGFpbmVkIG5leHRncm91cD1zY2FsYVR5cGVUeXBlRXh0ZW5zaW9uLHNjYWxhVHlwZVR5cGVFcXVhbHMgY29udGFpbnM9c2NhbGFSb3VuZEJyYWNrZXRzIHNraXB3aGl0ZQorc3luIG1hdGNoIHNjYWxhVHlwZVR5cGVEZWNsYXJhdGlvbiAvXCUo4oeSXHw9PlwpXHplLyBjb250YWluZWQgbmV4dGdyb3VwPXNjYWxhVHlwZVR5cGVEZWNsYXJhdGlvbiBjb250YWlucz1zY2FsYVR5cGVUeXBlRXh0ZW5zaW9uIHNraXB3aGl0ZQorc3luIG1hdGNoIHNjYWxhVHlwZVR5cGVEZWNsYXJhdGlvbiAvXDxbX1wuQS1aYS16MC05JF1cK1w+LyBjb250YWluZWQgbmV4dGdyb3VwPXNjYWxhVHlwZVR5cGVFeHRlbnNpb24sc2NhbGFUeXBlVHlwZUVxdWFscyBza2lwd2hpdGUKK3N5biBtYXRjaCBzY2FsYVR5cGVUeXBlRXF1YWxzIC89XHplW14+XS8gY29udGFpbmVkIG5leHRncm91cD1zY2FsYVR5cGVUeXBlUG9zdERlY2xhcmF0aW9uIHNraXB3aGl0ZQorc3luIG1hdGNoIHNjYWxhVHlwZVR5cGVFeHRlbnNpb24gLylcP1xfcypcenNcJSjih5JcfD0+XHw8Olx8Oj5cfD06PVx8OjpcfCNcKS8gY29udGFpbmVkIG5leHRncm91cD1zY2FsYVR5cGVUeXBlRGVjbGFyYXRpb24gc2tpcHdoaXRlCitzeW4gbWF0Y2ggc2NhbGFUeXBlVHlwZVBvc3REZWNsYXJhdGlvbiAvXDxbX1wuQS1aYS16MC05JF1cK1w+LyBjb250YWluZWQgbmV4dGdyb3VwPXNjYWxhVHlwZVR5cGVQb3N0RXh0ZW5zaW9uIHNraXB3aGl0ZQorc3luIG1hdGNoIHNjYWxhVHlwZVR5cGVQb3N0RXh0ZW5zaW9uIC9cJSjih5JcfD0+XHw8Olx8Oj5cfD06PVx8OjpcKS8gY29udGFpbmVkIG5leHRncm91cD1zY2FsYVR5cGVUeXBlUG9zdERlY2xhcmF0aW9uIHNraXB3aGl0ZQoraGkgbGluayBzY2FsYVR5cGVUeXBlRGVjbGFyYXRpb24gVHlwZQoraGkgbGluayBzY2FsYVR5cGVUeXBlRXh0ZW5zaW9uIEtleXdvcmQKK2hpIGxpbmsgc2NhbGFUeXBlVHlwZVBvc3REZWNsYXJhdGlvbiBTcGVjaWFsCitoaSBsaW5rIHNjYWxhVHlwZVR5cGVQb3N0RXh0ZW5zaW9uIEtleXdvcmQKKworc3luIG1hdGNoIHNjYWxhVHlwZURlY2xhcmF0aW9uIC8oLyBjb250YWluZWQgbmV4dGdyb3VwPXNjYWxhVHlwZUV4dGVuc2lvbiBjb250YWlucz1zY2FsYVJvdW5kQnJhY2tldHMgc2tpcHdoaXRlCitzeW4gbWF0Y2ggc2NhbGFUeXBlRGVjbGFyYXRpb24gL1wlKOKHklx8PT5cKVx6ZS8gY29udGFpbmVkIG5leHRncm91cD1zY2FsYVR5cGVEZWNsYXJhdGlvbiBjb250YWlucz1zY2FsYVR5cGVFeHRlbnNpb24gc2tpcHdoaXRlCitzeW4gbWF0Y2ggc2NhbGFUeXBlRGVjbGFyYXRpb24gL1w8W19cLkEtWmEtejAtOSRdXCtcPi8gY29udGFpbmVkIG5leHRncm91cD1zY2FsYVR5cGVFeHRlbnNpb24gc2tpcHdoaXRlCitzeW4gbWF0Y2ggc2NhbGFUeXBlRXh0ZW5zaW9uIC8pXD9cX3MqXHpzXCUo4oeSXHw9Plx8PDpcfDo+XHw9Oj1cfDo6XHwjXCkvIGNvbnRhaW5lZCBuZXh0Z3JvdXA9c2NhbGFUeXBlRGVjbGFyYXRpb24gc2tpcHdoaXRlCitoaSBsaW5rIHNjYWxhVHlwZURlY2xhcmF0aW9uIFR5cGUKK2hpIGxpbmsgc2NhbGFUeXBlRXh0ZW5zaW9uIEtleXdvcmQKK2hpIGxpbmsgc2NhbGFUeXBlUG9zdEV4dGVuc2lvbiBLZXl3b3JkCisKK3N5biBtYXRjaCBzY2FsYVR5cGVBbm5vdGF0aW9uIC9cJShbX2EtekEtWjAtOSRcc106XF9zKlwpXHplW189KFwuQS1aYS16MC05JF1cKy8gc2tpcHdoaXRlIG5leHRncm91cD1zY2FsYVR5cGVEZWNsYXJhdGlvbiBjb250YWlucz1zY2FsYVJvdW5kQnJhY2tldHMKK3N5biBtYXRjaCBzY2FsYVR5cGVBbm5vdGF0aW9uIC8pXF9zKjpcX3MqXHplW189KFwuQS1aYS16MC05JF1cKy8gc2tpcHdoaXRlIG5leHRncm91cD1zY2FsYVR5cGVEZWNsYXJhdGlvbgoraGkgbGluayBzY2FsYVR5cGVBbm5vdGF0aW9uIE5vcm1hbAorCitzeW4gbWF0Y2ggc2NhbGFDYXNlRm9sbG93aW5nIC9cPFtfXC5BLVphLXowLTkkXVwrXD4vIGNvbnRhaW5lZAorc3luIG1hdGNoIHNjYWxhQ2FzZUZvbGxvd2luZyAvYFteYF1cK2AvIGNvbnRhaW5lZAoraGkgbGluayBzY2FsYUNhc2VGb2xsb3dpbmcgU3BlY2lhbAorCitzeW4ga2V5d29yZCBzY2FsYUtleXdvcmRNb2RpZmllciBhYnN0cmFjdCBvdmVycmlkZSBmaW5hbCBsYXp5IGltcGxpY2l0IGltcGxpY2l0bHkgcHJpdmF0ZSBwcm90ZWN0ZWQgc2VhbGVkIG51bGwgcmVxdWlyZSBzdXBlcgoraGkgbGluayBzY2FsYUtleXdvcmRNb2RpZmllciBGdW5jdGlvbgorCitzeW4ga2V5d29yZCBzY2FsYVNwZWNpYWwgdGhpcyB0cnVlIGZhbHNlIG5lIGVxCitzeW4ga2V5d29yZCBzY2FsYVNwZWNpYWwgbmV3IG5leHRncm91cD1zY2FsYUluc3RhbmNlRGVjbGFyYXRpb24gc2tpcHdoaXRlCitzeW4gbWF0Y2ggc2NhbGFTcGVjaWFsICJcJSg9Plx84oeSXHw8LVx84oaQXHwtPlx84oaSXCkiCitzeW4gbWF0Y2ggc2NhbGFTcGVjaWFsIC9gW15gXVwrYC8gICIgQmFja3RpY2sgbGl0ZXJhbHMKK2hpIGxpbmsgc2NhbGFTcGVjaWFsIFByZVByb2MKKworc3luIGtleXdvcmQgc2NhbGFFeHRlcm5hbCBwYWNrYWdlIGltcG9ydAoraGkgbGluayBzY2FsYUV4dGVybmFsIEluY2x1ZGUKKworc3luIG1hdGNoIHNjYWxhU3RyaW5nRW1iZWRkZWRRdW90ZSAvXFwiLyBjb250YWluZWQKK3N5biByZWdpb24gc2NhbGFTdHJpbmcgc3RhcnQ9LyIvIGVuZD0vIi8gY29udGFpbnM9c2NhbGFTdHJpbmdFbWJlZGRlZFF1b3RlLHNjYWxhRXNjYXBlZENoYXIsc2NhbGFVbmljb2RlQ2hhcgoraGkgbGluayBzY2FsYVN0cmluZyBTdHJpbmcKK2hpIGxpbmsgc2NhbGFTdHJpbmdFbWJlZGRlZFF1b3RlIFN0cmluZworCitzeW4gcmVnaW9uIHNjYWxhSVN0cmluZyBtYXRjaGdyb3VwPXNjYWxhSW50ZXJwb2xhdGlvbkJyYWNrZXRzIHN0YXJ0PS9cPFthLXpBLVpdW2EtekEtWjAtOV9dKiIvIHNraXA9L1xcIi8gZW5kPS8iLyBjb250YWlucz1zY2FsYUludGVycG9sYXRpb24sc2NhbGFJbnRlcnBvbGF0aW9uQixzY2FsYUVzY2FwZWRDaGFyLHNjYWxhVW5pY29kZUNoYXIKK3N5biByZWdpb24gc2NhbGFUcmlwbGVJU3RyaW5nIG1hdGNoZ3JvdXA9c2NhbGFJbnRlcnBvbGF0aW9uQnJhY2tldHMgc3RhcnQ9L1w8W2EtekEtWl1bYS16QS1aMC05X10qIiIiLyBlbmQ9LyIiIlwlKFteIl1cfCRcKS8gY29udGFpbnM9c2NhbGFJbnRlcnBvbGF0aW9uLHNjYWxhSW50ZXJwb2xhdGlvbkIsc2NhbGFFc2NhcGVkQ2hhcixzY2FsYVVuaWNvZGVDaGFyCitoaSBsaW5rIHNjYWxhSVN0cmluZyBTdHJpbmcKK2hpIGxpbmsgc2NhbGFUcmlwbGVJU3RyaW5nIFN0cmluZworCitzeW4gbWF0Y2ggc2NhbGFJbnRlcnBvbGF0aW9uIC9cJFthLXpBLVowLTlfJF1cKy8gY29udGFpbmVkCitleGUgJ3N5biByZWdpb24gc2NhbGFJbnRlcnBvbGF0aW9uQiBtYXRjaGdyb3VwPXNjYWxhSW50ZXJwb2xhdGlvbkJvdW5kYXJ5IHN0YXJ0PS9cJHsvIGVuZD0vfS8gY29udGFpbmVkIGNvbnRhaW5zPScgLiBzOkNvbnRhaW5lZEdyb3VwKCkKK2hpIGxpbmsgc2NhbGFJbnRlcnBvbGF0aW9uIEZ1bmN0aW9uCitoaSBsaW5rIHNjYWxhSW50ZXJwb2xhdGlvbkIgTm9ybWFsCisKK3N5biByZWdpb24gc2NhbGFGU3RyaW5nIG1hdGNoZ3JvdXA9c2NhbGFJbnRlcnBvbGF0aW9uQnJhY2tldHMgc3RhcnQ9L2YiLyBza2lwPS9cXCIvIGVuZD0vIi8gY29udGFpbnM9c2NhbGFGSW50ZXJwb2xhdGlvbixzY2FsYUZJbnRlcnBvbGF0aW9uQixzY2FsYUVzY2FwZWRDaGFyLHNjYWxhVW5pY29kZUNoYXIKK3N5biBtYXRjaCBzY2FsYUZJbnRlcnBvbGF0aW9uIC9cJFthLXpBLVowLTlfJF1cK1woJVstQS1aYS16MC05XC5dXCtcKVw/LyBjb250YWluZWQKK2V4ZSAnc3luIHJlZ2lvbiBzY2FsYUZJbnRlcnBvbGF0aW9uQiBtYXRjaGdyb3VwPXNjYWxhSW50ZXJwb2xhdGlvbkJvdW5kYXJ5IHN0YXJ0PS8key8gZW5kPS99XCglWy1BLVphLXowLTlcLl1cK1wpXD8vIGNvbnRhaW5lZCBjb250YWlucz0nIC4gczpDb250YWluZWRHcm91cCgpCitoaSBsaW5rIHNjYWxhRlN0cmluZyBTdHJpbmcKK2hpIGxpbmsgc2NhbGFGSW50ZXJwb2xhdGlvbiBGdW5jdGlvbgoraGkgbGluayBzY2FsYUZJbnRlcnBvbGF0aW9uQiBOb3JtYWwKKworc3luIHJlZ2lvbiBzY2FsYVRyaXBsZVN0cmluZyBzdGFydD0vIiIiLyBlbmQ9LyIiIlwlKFteIl1cfCRcKS8gY29udGFpbnM9c2NhbGFFc2NhcGVkQ2hhcixzY2FsYVVuaWNvZGVDaGFyCitzeW4gcmVnaW9uIHNjYWxhVHJpcGxlRlN0cmluZyBtYXRjaGdyb3VwPXNjYWxhSW50ZXJwb2xhdGlvbkJyYWNrZXRzIHN0YXJ0PS9mIiIiLyBlbmQ9LyIiIlwlKFteIl1cfCRcKS8gY29udGFpbnM9c2NhbGFGSW50ZXJwb2xhdGlvbixzY2FsYUZJbnRlcnBvbGF0aW9uQixzY2FsYUVzY2FwZWRDaGFyLHNjYWxhVW5pY29kZUNoYXIKK2hpIGxpbmsgc2NhbGFUcmlwbGVTdHJpbmcgU3RyaW5nCitoaSBsaW5rIHNjYWxhVHJpcGxlRlN0cmluZyBTdHJpbmcKKworaGkgbGluayBzY2FsYUludGVycG9sYXRpb25CcmFja2V0cyBTcGVjaWFsCitoaSBsaW5rIHNjYWxhSW50ZXJwb2xhdGlvbkJvdW5kYXJ5IEZ1bmN0aW9uCisKK3N5biBtYXRjaCBzY2FsYU51bWJlciAvXDwwW2REZkZsTF1cP1w+LyAiIEp1c3QgYSBiYXJlIDAKK3N5biBtYXRjaCBzY2FsYU51bWJlciAvXDxbMS05XVxkKltkRGZGbExdXD9cPi8gICIgQSBtdWx0aS1kaWdpdCBudW1iZXIgLSBvY3RhbCBudW1iZXJzIHdpdGggbGVhZGluZyAwJ3MgYXJlIGRlcHJlY2F0ZWQgaW4gU2NhbGEKK3N5biBtYXRjaCBzY2FsYU51bWJlciAvXDwwW3hYXVswLTlhLWZBLUZdXCtbZERmRmxMXVw/XD4vICIgSGV4IG51bWJlcgorc3luIG1hdGNoIHNjYWxhTnVtYmVyIC9cJShcPFxkXCtcLlxkKlx8XC5cZFwrXClcJShbZUVdWy0rXVw9XGRcK1wpXD1bZkZkRF1cPS8gIiBleHBvbmVudGlhbCBub3RhdGlvbiAxCitzeW4gbWF0Y2ggc2NhbGFOdW1iZXIgL1w8XGRcK1tlRV1bLStdXD1cZFwrW2ZGZERdXD1cPi8gIiBleHBvbmVudGlhbCBub3RhdGlvbiAyCitzeW4gbWF0Y2ggc2NhbGFOdW1iZXIgL1w8XGRcK1wlKFtlRV1bLStdXD1cZFwrXClcPVtmRmREXVw+LyAiIGV4cG9uZW50aWFsIG5vdGF0aW9uIDMKK2hpIGxpbmsgc2NhbGFOdW1iZXIgTnVtYmVyCisKK3N5biByZWdpb24gc2NhbGFSb3VuZEJyYWNrZXRzIHN0YXJ0PSIoIiBlbmQ9IikiIHNraXB3aGl0ZSBjb250YWluZWQgY29udGFpbnM9c2NhbGFUeXBlRGVjbGFyYXRpb24sc2NhbGFTcXVhcmVCcmFja2V0cyxzY2FsYVJvdW5kQnJhY2tldHMKKworc3luIHJlZ2lvbiBzY2FsYVNxdWFyZUJyYWNrZXRzIG1hdGNoZ3JvdXA9c2NhbGFTcXVhcmVCcmFja2V0c0JyYWNrZXRzIHN0YXJ0PSJcWyIgZW5kPSJcXSIgc2tpcHdoaXRlIG5leHRncm91cD1zY2FsYVR5cGVFeHRlbnNpb24gY29udGFpbnM9c2NhbGFUeXBlRGVjbGFyYXRpb24sc2NhbGFTcXVhcmVCcmFja2V0cyxzY2FsYVR5cGVPcGVyYXRvcixzY2FsYVR5cGVBbm5vdGF0aW9uUGFyYW1ldGVyCitzeW4gbWF0Y2ggc2NhbGFUeXBlT3BlcmF0b3IgL1stKz06PD5dXCsvIGNvbnRhaW5lZAorc3luIG1hdGNoIHNjYWxhVHlwZUFubm90YXRpb25QYXJhbWV0ZXIgL0BcPFtgX0EtWmEtejAtOSRdXCtcPi8gY29udGFpbmVkCitoaSBsaW5rIHNjYWxhU3F1YXJlQnJhY2tldHNCcmFja2V0cyBUeXBlCitoaSBsaW5rIHNjYWxhVHlwZU9wZXJhdG9yIEtleXdvcmQKK2hpIGxpbmsgc2NhbGFUeXBlQW5ub3RhdGlvblBhcmFtZXRlciBGdW5jdGlvbgorCitzeW4gbWF0Y2ggc2NhbGFTaGViYW5nICJcJV4jIS4qIiBkaXNwbGF5CitzeW4gcmVnaW9uIHNjYWxhTXVsdGlsaW5lQ29tbWVudCBzdGFydD0iL1wqIiBlbmQ9IlwqLyIgY29udGFpbnM9c2NhbGFNdWx0aWxpbmVDb21tZW50LHNjYWxhRG9jTGlua3Msc2NhbGFQYXJhbWV0ZXJBbm5vdGF0aW9uLHNjYWxhQ29tbWVudEFubm90YXRpb24sc2NhbGFUb2RvLHNjYWxhQ29tbWVudENvZGVCbG9jayxAU3BlbGwga2VlcGVuZCBmb2xkCitzeW4gbWF0Y2ggc2NhbGFDb21tZW50QW5ub3RhdGlvbiAiQFtfQS1aYS16MC05JF1cKyIgY29udGFpbmVkCitzeW4gbWF0Y2ggc2NhbGFQYXJhbWV0ZXJBbm5vdGF0aW9uICJcJShAdHBhcmFtXHxAcGFyYW1cfEBzZWVcKSIgbmV4dGdyb3VwPXNjYWxhUGFyYW1Bbm5vdGF0aW9uVmFsdWUgc2tpcHdoaXRlIGNvbnRhaW5lZAorc3luIG1hdGNoIHNjYWxhUGFyYW1Bbm5vdGF0aW9uVmFsdWUgL1suYF9BLVphLXowLTkkXVwrLyBjb250YWluZWQKK3N5biByZWdpb24gc2NhbGFEb2NMaW5rcyBzdGFydD0iXFtcWyIgZW5kPSJcXVxdIiBjb250YWluZWQKK3N5biByZWdpb24gc2NhbGFDb21tZW50Q29kZUJsb2NrIG1hdGNoZ3JvdXA9S2V5d29yZCBzdGFydD0ie3t7IiBlbmQ9In19fSIgY29udGFpbmVkCitzeW4gbWF0Y2ggc2NhbGFUb2RvICJcdlRPRE98RklYTUV8WFhYIiBjb250YWluZWQKK2hpIGxpbmsgc2NhbGFTaGViYW5nIENvbW1lbnQKK2hpIGxpbmsgc2NhbGFNdWx0aWxpbmVDb21tZW50IENvbW1lbnQKK2hpIGxpbmsgc2NhbGFEb2NMaW5rcyBGdW5jdGlvbgoraGkgbGluayBzY2FsYVBhcmFtZXRlckFubm90YXRpb24gRnVuY3Rpb24KK2hpIGxpbmsgc2NhbGFQYXJhbUFubm90YXRpb25WYWx1ZSBLZXl3b3JkCitoaSBsaW5rIHNjYWxhQ29tbWVudEFubm90YXRpb24gRnVuY3Rpb24KK2hpIGxpbmsgc2NhbGFDb21tZW50Q29kZUJsb2NrQnJhY2tldHMgU3RyaW5nCitoaSBsaW5rIHNjYWxhQ29tbWVudENvZGVCbG9jayBTdHJpbmcKK2hpIGxpbmsgc2NhbGFUb2RvIFRvZG8KKworc3luIG1hdGNoIHNjYWxhQW5ub3RhdGlvbiAvQFw8W2BfQS1aYS16MC05JF1cK1w+LworaGkgbGluayBzY2FsYUFubm90YXRpb24gUHJlUHJvYworCitzeW4gbWF0Y2ggc2NhbGFUcmFpbGluZ0NvbW1lbnQgIi8vLiokIiBjb250YWlucz1zY2FsYVRvZG8sQFNwZWxsCitoaSBsaW5rIHNjYWxhVHJhaWxpbmdDb21tZW50IENvbW1lbnQKKworc3luIG1hdGNoIHNjYWxhQWtrYUZTTSAvZ290byhbXildKilcX3NcK1w8dXNpbmdcPi8gY29udGFpbnM9c2NhbGFBa2thRlNNR290b1VzaW5nCitzeW4gbWF0Y2ggc2NhbGFBa2thRlNNIC9zdGF5XF9zXCt1c2luZy8KK3N5biBtYXRjaCBzY2FsYUFra2FGU00gL15ccypzdGF5XHMqJC8KK3N5biBtYXRjaCBzY2FsYUFra2FGU00gL3doZW5cemUoW14pXSopLworc3luIG1hdGNoIHNjYWxhQWtrYUZTTSAvc3RhcnRXaXRoXHplKFteKV0qKS8KK3N5biBtYXRjaCBzY2FsYUFra2FGU00gL2luaXRpYWxpemVcemUoKS8KK3N5biBtYXRjaCBzY2FsYUFra2FGU00gL29uVHJhbnNpdGlvbi8KK3N5biBtYXRjaCBzY2FsYUFra2FGU00gL29uVGVybWluYXRpb24vCitzeW4gbWF0Y2ggc2NhbGFBa2thRlNNIC93aGVuVW5oYW5kbGVkLworc3luIG1hdGNoIHNjYWxhQWtrYUZTTUdvdG9Vc2luZyAvXDx1c2luZ1w+Lworc3luIG1hdGNoIHNjYWxhQWtrYUZTTUdvdG9Vc2luZyAvXDxnb3RvXD4vCitoaSBsaW5rIHNjYWxhQWtrYUZTTSBQcmVQcm9jCitoaSBsaW5rIHNjYWxhQWtrYUZTTUdvdG9Vc2luZyBQcmVQcm9jCisKK2xldCBiOmN1cnJlbnRfc3ludGF4ID0gJ3NjYWxhJworCitpZiBtYWluX3N5bnRheCA9PSMgJ3NjYWxhJworICB1bmxldCBtYWluX3N5bnRheAorZW5kaWYKKworIiB2aW06c2V0IHN3PTIgc3RzPTIgdHM9OCBldDoKZGlmZiAtLWdpdCBhL3J1bnRpbWUvc3ludGF4L3NoLnZpbSBiL3J1bnRpbWUvc3ludGF4L3NoLnZpbQppbmRleCAzNGI4YWI3Li4yZmUxM2ZiIDEwMDY0NAotLS0gYS9ydW50aW1lL3N5bnRheC9zaC52aW0KKysrIGIvcnVudGltZS9zeW50YXgvc2gudmltCkBAIC0yLDggKzIsOCBAQAogIiBMYW5ndWFnZToJCXNoZWxsIChzaCkgS29ybiBzaGVsbCAoa3NoKSBiYXNoIChzaCkKICIgTWFpbnRhaW5lcjoJCUNoYXJsZXMgRS4gQ2FtcGJlbGwgIDxOZHJPY2hpcFNAUGNhbXBiZWxsQWZhbWlseS5NYml6PgogIiBQcmV2aW91cyBNYWludGFpbmVyOglMZW5uYXJ0IFNjaHVsdHogPExlbm5hcnQuU2NodWx0ekBlY213Zi5pbnQ+Ci0iIExhc3QgQ2hhbmdlOgkJSnVsIDI5LCAyMDE2Ci0iIFZlcnNpb246CQkxNTUKKyIgTGFzdCBDaGFuZ2U6CQlBdWcgMjMsIDIwMTYKKyIgVmVyc2lvbjoJCTE2MQogIiBVUkw6CQlodHRwOi8vd3d3LmRyY2hpcC5vcmcvYXN0cm9uYXV0L3ZpbS9pbmRleC5odG1sI1NZTlRBWF9TSAogIiBGb3Igb3B0aW9ucyBhbmQgc2V0dGluZ3MsIHBsZWFzZSB1c2U6ICAgICAgOmhlbHAgZnQtc2gtc3ludGF4CiAiIFRoaXMgZmlsZSBpbmNsdWRlcyBtYW55IGlkZWFzIGZyb20gRXJpYyBCcnVuZXQgKGVyaWMuYnJ1bmV0QGVucy5mcikKQEAgLTEyNywxMSArMTI3LDExIEBACiBpZiBleGlzdHMoImI6aXNfa29ybnNoZWxsIikKICBzeW4gY2x1c3RlciBFcnJvckxpc3QgYWRkPXNoRFRlc3RFcnJvcgogZW5kaWYKLXN5biBjbHVzdGVyIHNoQXJpdGhQYXJlbkxpc3QJY29udGFpbnM9c2hBcml0aG1ldGljLHNoQ2FzZUVzYWMsc2hDb21tZW50LHNoRGVyZWYsc2hEbyxzaERlcmVmU2ltcGxlLHNoRWNobyxzaEVzY2FwZSxzaE51bWJlcixzaE9wZXJhdG9yLHNoUG9zblBhcm0sc2hFeFNpbmdsZVF1b3RlLHNoRXhEb3VibGVRdW90ZSxzaFJlZGlyLHNoU2luZ2xlUXVvdGUsc2hEb3VibGVRdW90ZSxzaFN0YXRlbWVudCxzaFZhcmlhYmxlLHNoQWxpYXMsc2hUZXN0LHNoQ3RybFNlcSxzaFNwZWNpYWwsc2hQYXJlbixiYXNoU3BlY2lhbFZhcmlhYmxlcyxiYXNoU3RhdGVtZW50LHNoSWYsc2hGb3IKK3N5biBjbHVzdGVyIHNoQXJpdGhQYXJlbkxpc3QJY29udGFpbnM9c2hBcml0aG1ldGljLHNoQ2FzZUVzYWMsc2hDb21tZW50LHNoRGVyZWYsc2hEbyxzaERlcmVmU2ltcGxlLHNoRWNobyxzaEVzY2FwZSxzaE51bWJlcixzaE9wZXJhdG9yLHNoUG9zblBhcm0sc2hFeFNpbmdsZVF1b3RlLHNoRXhEb3VibGVRdW90ZSxzaEhlcmVTdHJpbmcsc2hSZWRpcixzaFNpbmdsZVF1b3RlLHNoRG91YmxlUXVvdGUsc2hTdGF0ZW1lbnQsc2hWYXJpYWJsZSxzaEFsaWFzLHNoVGVzdCxzaEN0cmxTZXEsc2hTcGVjaWFsLHNoUGFyZW4sYmFzaFNwZWNpYWxWYXJpYWJsZXMsYmFzaFN0YXRlbWVudCxzaElmLHNoRm9yCiBzeW4gY2x1c3RlciBzaEFyaXRoTGlzdAljb250YWlucz1Ac2hBcml0aFBhcmVuTGlzdCxzaFBhcmVuRXJyb3IKIHN5biBjbHVzdGVyIHNoQ2FzZUVzYWNMaXN0CWNvbnRhaW5zPXNoQ2FzZVN0YXJ0LHNoQ2FzZSxzaENhc2VCYXIsc2hDYXNlSW4sc2hDb21tZW50LHNoRGVyZWYsc2hEZXJlZlNpbXBsZSxzaENhc2VDb21tYW5kU3ViLHNoQ2FzZUV4U2luZ2xlUXVvdGUsc2hDYXNlU2luZ2xlUXVvdGUsc2hDYXNlRG91YmxlUXVvdGUsc2hDdHJsU2VxLEBzaEVycm9yTGlzdCxzaFN0cmluZ1NwZWNpYWwsc2hDYXNlUmFuZ2UKLXN5biBjbHVzdGVyIHNoQ2FzZUxpc3QJY29udGFpbnM9QHNoQ29tbWFuZFN1Ykxpc3Qsc2hDYXNlRXNhYyxzaENvbG9uLHNoQ29tbWFuZFN1YixzaENvbW1lbnQsc2hEbyxzaEVjaG8sc2hFeHByLHNoRm9yLHNoSGVyZURvYyxzaElmLHNoUmVkaXIsc2hTZXRMaXN0LHNoU291cmNlLHNoU3RhdGVtZW50LHNoVmFyaWFibGUsc2hDdHJsU2VxCi1zeW4gY2x1c3RlciBzaENvbW1hbmRTdWJMaXN0CWNvbnRhaW5zPXNoQWxpYXMsc2hBcml0aG1ldGljLHNoQ29tbWVudCxzaENtZFBhcmVuUmVnaW9uLHNoQ3RybFNlcSxzaERlcmVmLHNoRGVyZWZTaW1wbGUsc2hEb3VibGVRdW90ZSxzaEVjaG8sc2hFc2NhcGUsc2hFeERvdWJsZVF1b3RlLHNoRXhwcixzaEV4U2luZ2xlUXVvdGUsc2hIZXJlRG9jLHNoTnVtYmVyLHNoT3BlcmF0b3Isc2hPcHRpb24sc2hQb3NuUGFybSxzaFNpbmdsZVF1b3RlLHNoU3BlY2lhbCxzaFN0YXRlbWVudCxzaFN1YlNoLHNoVGVzdCxzaFZhcmlhYmxlCitzeW4gY2x1c3RlciBzaENhc2VMaXN0CWNvbnRhaW5zPUBzaENvbW1hbmRTdWJMaXN0LHNoQ2FzZUVzYWMsc2hDb2xvbixzaENvbW1hbmRTdWIsc2hDb21tZW50LHNoRG8sc2hFY2hvLHNoRXhwcixzaEZvcixzaEhlcmVEb2Msc2hJZixzaEhlcmVTdHJpbmcsc2hSZWRpcixzaFNldExpc3Qsc2hTb3VyY2Usc2hTdGF0ZW1lbnQsc2hWYXJpYWJsZSxzaEN0cmxTZXEKK3N5biBjbHVzdGVyIHNoQ29tbWFuZFN1Ykxpc3QJY29udGFpbnM9c2hBbGlhcyxzaEFyaXRobWV0aWMsc2hDb21tZW50LHNoQ21kUGFyZW5SZWdpb24sc2hDdHJsU2VxLHNoRGVyZWYsc2hEZXJlZlNpbXBsZSxzaERvdWJsZVF1b3RlLHNoRWNobyxzaEVzY2FwZSxzaEV4RG91YmxlUXVvdGUsc2hFeHByLHNoRXhTaW5nbGVRdW90ZSxzaEhlcmVEb2Msc2hOdW1iZXIsc2hPcGVyYXRvcixzaE9wdGlvbixzaFBvc25QYXJtLHNoSGVyZVN0cmluZyxzaFJlZGlyLHNoU2luZ2xlUXVvdGUsc2hTcGVjaWFsLHNoU3RhdGVtZW50LHNoU3ViU2gsc2hUZXN0LHNoVmFyaWFibGUKIHN5biBjbHVzdGVyIHNoQ3VybHlMaXN0CWNvbnRhaW5zPXNoTnVtYmVyLHNoQ29tbWEsc2hEZXJlZixzaERlcmVmU2ltcGxlLHNoRGVyZWZTcGVjaWFsCiBzeW4gY2x1c3RlciBzaERibFF1b3RlTGlzdAljb250YWlucz1zaENvbW1hbmRTdWIsc2hEZXJlZixzaERlcmVmU2ltcGxlLHNoRXNjYXBlLHNoUG9zblBhcm0sc2hDdHJsU2VxLHNoU3BlY2lhbAogc3luIGNsdXN0ZXIgc2hEZXJlZkxpc3QJY29udGFpbnM9c2hEZXJlZixzaERlcmVmU2ltcGxlLHNoRGVyZWZWYXIsc2hEZXJlZlNwZWNpYWwsc2hEZXJlZldvcmRFcnJvcixzaERlcmVmUFNSLHNoRGVyZWZQUFMKQEAgLTEzOSw3ICsxMzksNyBAQAogc3luIGNsdXN0ZXIgc2hFY2hvTGlzdAljb250YWlucz1zaEFyaXRobWV0aWMsc2hDb21tYW5kU3ViLHNoRGVyZWYsc2hEZXJlZlNpbXBsZSxzaEVzY2FwZSxzaEV4cHIsc2hFeFNpbmdsZVF1b3RlLHNoRXhEb3VibGVRdW90ZSxzaFNpbmdsZVF1b3RlLHNoRG91YmxlUXVvdGUsc2hDdHJsU2VxLHNoRWNob1F1b3RlCiBzeW4gY2x1c3RlciBzaEV4cHJMaXN0MQljb250YWlucz1zaENoYXJDbGFzcyxzaE51bWJlcixzaE9wZXJhdG9yLHNoRXhTaW5nbGVRdW90ZSxzaEV4RG91YmxlUXVvdGUsc2hTaW5nbGVRdW90ZSxzaERvdWJsZVF1b3RlLHNoRXhwcixzaERibEJyYWNlLHNoRGVyZWYsc2hEZXJlZlNpbXBsZSxzaEN0cmxTZXEKIHN5biBjbHVzdGVyIHNoRXhwckxpc3QyCWNvbnRhaW5zPUBzaEV4cHJMaXN0MSxAc2hDYXNlTGlzdCxzaFRlc3QKLXN5biBjbHVzdGVyIHNoRnVuY3Rpb25MaXN0CWNvbnRhaW5zPUBzaENvbW1hbmRTdWJMaXN0LHNoQ2FzZUVzYWMsc2hDb2xvbixzaENvbW1hbmRTdWIsc2hDb21tZW50LHNoRG8sc2hFY2hvLHNoRXhwcixzaEZvcixzaEhlcmVEb2Msc2hJZixzaE9wdGlvbixzaFJlZGlyLHNoU2V0TGlzdCxzaFNvdXJjZSxzaFN0YXRlbWVudCxzaFZhcmlhYmxlLHNoT3BlcmF0b3Isc2hDdHJsU2VxCitzeW4gY2x1c3RlciBzaEZ1bmN0aW9uTGlzdAljb250YWlucz1Ac2hDb21tYW5kU3ViTGlzdCxzaENhc2VFc2FjLHNoQ29sb24sc2hDb21tYW5kU3ViLHNoQ29tbWVudCxzaERvLHNoRWNobyxzaEV4cHIsc2hGb3Isc2hIZXJlRG9jLHNoSWYsc2hPcHRpb24sc2hIZXJlU3RyaW5nLHNoUmVkaXIsc2hTZXRMaXN0LHNoU291cmNlLHNoU3RhdGVtZW50LHNoVmFyaWFibGUsc2hPcGVyYXRvcixzaEN0cmxTZXEKIGlmIGV4aXN0cygiYjppc19rb3Juc2hlbGwiKSB8fCBleGlzdHMoImI6aXNfYmFzaCIpCiAgc3luIGNsdXN0ZXIgc2hGdW5jdGlvbkxpc3QJYWRkPXNoUmVwZWF0CiAgc3luIGNsdXN0ZXIgc2hGdW5jdGlvbkxpc3QJYWRkPXNoRGJsQnJhY2Usc2hEYmxQYXJlbgpAQCAtMTQ3LDExICsxNDcsMTEgQEAKIHN5biBjbHVzdGVyIHNoSGVyZUJlZ2luTGlzdAljb250YWlucz1Ac2hDb21tYW5kU3ViTGlzdAogc3luIGNsdXN0ZXIgc2hIZXJlTGlzdAljb250YWlucz1zaEJlZ2luSGVyZSxzaEhlcmVQYXlsb2FkCiBzeW4gY2x1c3RlciBzaEhlcmVMaXN0RFEJY29udGFpbnM9c2hCZWdpbkhlcmUsQHNoRGJsUXVvdGVMaXN0LHNoSGVyZVBheWxvYWQKLXN5biBjbHVzdGVyIHNoSWRMaXN0CWNvbnRhaW5zPXNoQ29tbWFuZFN1YixzaFdyYXBMaW5lT3BlcmF0b3Isc2hTZXRPcHRpb24sc2hEZXJlZixzaERlcmVmU2ltcGxlLHNoUmVkaXIsc2hFeFNpbmdsZVF1b3RlLHNoRXhEb3VibGVRdW90ZSxzaFNpbmdsZVF1b3RlLHNoRG91YmxlUXVvdGUsc2hFeHByLHNoQ3RybFNlcSxzaFN0cmluZ1NwZWNpYWwsc2hBdEV4cHIKLXN5biBjbHVzdGVyIHNoSWZMaXN0CWNvbnRhaW5zPUBzaExvb3BMaXN0LHNoRGJsQnJhY2Usc2hEYmxQYXJlbixzaEZ1bmN0aW9uS2V5LHNoRnVuY3Rpb25PbmUsc2hGdW5jdGlvblR3bworc3luIGNsdXN0ZXIgc2hJZExpc3QJY29udGFpbnM9c2hDb21tYW5kU3ViLHNoV3JhcExpbmVPcGVyYXRvcixzaFNldE9wdGlvbixzaERlcmVmLHNoRGVyZWZTaW1wbGUsc2hIZXJlU3RyaW5nLHNoUmVkaXIsc2hFeFNpbmdsZVF1b3RlLHNoRXhEb3VibGVRdW90ZSxzaFNpbmdsZVF1b3RlLHNoRG91YmxlUXVvdGUsc2hFeHByLHNoQ3RybFNlcSxzaFN0cmluZ1NwZWNpYWwsc2hBdEV4cHIKK3N5biBjbHVzdGVyIHNoSWZMaXN0CWNvbnRhaW5zPUBzaExvb3BMaXN0LHNoRGJsQnJhY2Usc2hEYmxQYXJlbixzaEZ1bmN0aW9uS2V5LHNoRnVuY3Rpb25PbmUsc2hGdW5jdGlvblR3byxzaFBhcmVuCiBzeW4gY2x1c3RlciBzaExvb3BMaXN0CWNvbnRhaW5zPUBzaENhc2VMaXN0LEBzaEVycm9yTGlzdCxzaENhc2VFc2FjLHNoQ29uZGl0aW9uYWwsc2hEYmxCcmFjZSxzaEV4cHIsc2hGb3Isc2hGb3JQUCxzaElmLHNoT3B0aW9uLHNoU2V0LHNoVGVzdCxzaFRlc3RPcHIsc2hUb3VjaAogc3luIGNsdXN0ZXIgc2hQUFNSaWdodExpc3QJY29udGFpbnM9c2hDb21tZW50LHNoRGVyZWYsc2hEZXJlZlNpbXBsZSxzaEVzY2FwZSxzaFBvc25QYXJtCi1zeW4gY2x1c3RlciBzaFN1YlNoTGlzdAljb250YWlucz1Ac2hDb21tYW5kU3ViTGlzdCxzaENhc2VFc2FjLHNoQ29sb24sc2hDb21tYW5kU3ViLHNoQ29tbWVudCxzaERvLHNoRWNobyxzaEV4cHIsc2hGb3Isc2hJZixzaFJlZGlyLHNoU2V0TGlzdCxzaFNvdXJjZSxzaFN0YXRlbWVudCxzaFZhcmlhYmxlLHNoQ3RybFNlcSxzaE9wZXJhdG9yCitzeW4gY2x1c3RlciBzaFN1YlNoTGlzdAljb250YWlucz1Ac2hDb21tYW5kU3ViTGlzdCxzaENhc2VFc2FjLHNoQ29sb24sc2hDb21tYW5kU3ViLHNoQ29tbWVudCxzaERvLHNoRWNobyxzaEV4cHIsc2hGb3Isc2hJZixzaEhlcmVTdHJpbmcsc2hSZWRpcixzaFNldExpc3Qsc2hTb3VyY2Usc2hTdGF0ZW1lbnQsc2hWYXJpYWJsZSxzaEN0cmxTZXEsc2hPcGVyYXRvcgogc3luIGNsdXN0ZXIgc2hUZXN0TGlzdAljb250YWlucz1zaENoYXJDbGFzcyxzaENvbW1hbmRTdWIsc2hDdHJsU2VxLHNoRGVyZWYsc2hEZXJlZlNpbXBsZSxzaERvdWJsZVF1b3RlLHNoRXhEb3VibGVRdW90ZSxzaEV4cHIsc2hFeFNpbmdsZVF1b3RlLHNoTnVtYmVyLHNoT3BlcmF0b3Isc2hTaW5nbGVRdW90ZSxzaFRlc3Qsc2hUZXN0T3ByCiAKICIgRWNobzoge3t7MQpAQCAtMjE2LDggKzIxNiw4IEBACiAKICIgU3Vic2hlbGxzOiB7e3sxCiAiID09PT09PT09PT0KLXN5biByZWdpb24gc2hFeHByICB0cmFuc3BhcmVudCBtYXRjaGdyb3VwPXNoRXhwclJlZ2lvbiAgc3RhcnQ9InsiIGVuZD0ifSIJCWNvbnRhaW5zPUBzaEV4cHJMaXN0MiBuZXh0Z3JvdXA9c2hNb3JlU3BlY2lhbAotc3luIHJlZ2lvbiBzaFN1YlNoIHRyYW5zcGFyZW50IG1hdGNoZ3JvdXA9c2hTdWJTaFJlZ2lvbiBzdGFydD0iW14oXVx6cygiIGVuZD0iKSIJY29udGFpbnM9QHNoU3ViU2hMaXN0IG5leHRncm91cD1zaE1vcmVTcGVjaWFsCitzeW4gcmVnaW9uIHNoRXhwciAgdHJhbnNwYXJlbnQgbWF0Y2hncm91cD1zaEV4cHJSZWdpb24gIHN0YXJ0PSJ7IiBlbmQ9In0iCQljb250YWlucz1Ac2hFeHByTGlzdDIgbmV4dGdyb3VwPXNoU3BlY2lhbE54dAorc3luIHJlZ2lvbiBzaFN1YlNoIHRyYW5zcGFyZW50IG1hdGNoZ3JvdXA9c2hTdWJTaFJlZ2lvbiBzdGFydD0iW14oXVx6cygiIGVuZD0iKSIJY29udGFpbnM9QHNoU3ViU2hMaXN0IG5leHRncm91cD1zaFNwZWNpYWxOeHQKIAogIiBUZXN0czoge3t7MQogIj09PT09PT0KQEAgLTMzOSw4ICszMzksOCBAQAogIHN5biBtYXRjaCAgIHNoU3BlY2lhbAkiXlwoXFxcXFwpKlx6c1xcXG9cb1xvXHxcXHhceFx4XHxcXGNbXiJdXHxcXFthYmVmbnJ0dl0iCWNvbnRhaW5lZAogZW5kaWYKIGlmIGV4aXN0cygiYjppc19iYXNoIikKLSBzeW4gcmVnaW9uICBzaEV4U2luZ2xlUXVvdGUJbWF0Y2hncm91cD1zaFF1b3RlIHN0YXJ0PStcJCcrIHNraXA9K1xcXFxcfFxcLisgZW5kPSsnKwljb250YWlucz1zaFN0cmluZ1NwZWNpYWwsc2hTcGVjaWFsCi0gc3luIHJlZ2lvbiAgc2hFeERvdWJsZVF1b3RlCW1hdGNoZ3JvdXA9c2hRdW90ZSBzdGFydD0rXCQiKyBza2lwPStcXFxcXHxcXC5cfFxcIisgZW5kPSsiKwljb250YWlucz1Ac2hEYmxRdW90ZUxpc3Qsc2hTdHJpbmdTcGVjaWFsLHNoU3BlY2lhbAorIHN5biByZWdpb24gIHNoRXhTaW5nbGVRdW90ZQltYXRjaGdyb3VwPXNoUXVvdGUgc3RhcnQ9K1wkJysgc2tpcD0rXFxcXFx8XFwuKyBlbmQ9KycrCWNvbnRhaW5zPXNoU3RyaW5nU3BlY2lhbCxzaFNwZWNpYWwJCW5leHRncm91cD1zaFNwZWNpYWxOeHQKKyBzeW4gcmVnaW9uICBzaEV4RG91YmxlUXVvdGUJbWF0Y2hncm91cD1zaFF1b3RlIHN0YXJ0PStcJCIrIHNraXA9K1xcXFxcfFxcLlx8XFwiKyBlbmQ9KyIrCWNvbnRhaW5zPUBzaERibFF1b3RlTGlzdCxzaFN0cmluZ1NwZWNpYWwsc2hTcGVjaWFsCW5leHRncm91cD1zaFNwZWNpYWxOeHQKIGVsc2VpZiAhZXhpc3RzKCJnOnNoX25vX2Vycm9yIikKICBzeW4gcmVnaW9uICBzaEV4U2luZ2xlUXVvdGUJbWF0Y2hHcm91cD1FcnJvciBzdGFydD0rXCQnKyBza2lwPStcXFxcXHxcXC4rIGVuZD0rJysJY29udGFpbnM9c2hTdHJpbmdTcGVjaWFsCiAgc3luIHJlZ2lvbiAgc2hFeERvdWJsZVF1b3RlCW1hdGNoR3JvdXA9RXJyb3Igc3RhcnQ9K1wkIisgc2tpcD0rXFxcXFx8XFwuKyBlbmQ9KyIrCWNvbnRhaW5zPXNoU3RyaW5nU3BlY2lhbApAQCAtMzUxLDcgKzM1MSw3IEBACiBzeW4gbWF0Y2ggICBzaFN0cmluZ1NwZWNpYWwJIlteXFxdXHpzXCUoXFxcXFwpKlxcW1xcIidgJCgpI10iCiBzeW4gbWF0Y2ggICBzaFNwZWNpYWwJIlteXFxdXHpzXCUoXFxcXFwpKlxcW1xcIidgJCgpI10iCQluZXh0Z3JvdXA9c2hCa3Nsc2hTbmdsUXVvdGUsc2hCa3Nsc2hEYmxRdW90ZQogc3luIG1hdGNoICAgc2hTcGVjaWFsCSJeXCUoXFxcXFwpKlxcW1xcIidgJCgpI10iCi1zeW4gbWF0Y2ggICBzaE1vcmVTcGVjaWFsCSJbXlxcXVx6c1wlKFxcXFxcKSpcXFtcXCInYCQoKSNdIgkJbmV4dGdyb3VwPXNoTW9yZVNwZWNpYWwgY29udGFpbmVkCitzeW4gbWF0Y2ggICBzaFNwZWNpYWxOeHQJY29udGFpbmVkCSJcXFtcXCInYCQoKSNdIgogc3luIHJlZ2lvbiAgc2hCa3Nsc2hTbmdsUXVvdGUJY29udGFpbmVkCW1hdGNoZ3JvdXA9c2hRdW90ZSBzdGFydD0rJysgZW5kPSsnKwljb250YWlucz1AU3BlbGwKIHN5biByZWdpb24gIHNoQmtzbHNoRGJsUXVvdGUJY29udGFpbmVkCW1hdGNoZ3JvdXA9c2hRdW90ZSBzdGFydD0rIisgc2tpcD0rXFwiKyBlbmQ9KyIrCWNvbnRhaW5zPUBzaERibFF1b3RlTGlzdCxzaFN0cmluZ1NwZWNpYWwsQFNwZWxsCiAKQEAgLTM4Niw3ICszODYsNyBAQAogIiA9PT09PT09PT09PT09CiAiIGF2YWlsYWJsZSBmb3I6IGJhc2g7IGtzaCAocmVhbGx5IHNob3VsZCBiZSBrc2g5MyBvbmx5KSBidXQgbm90IGlmIGl0cyBhIHBvc2l4CiBpZiBleGlzdHMoImI6aXNfYmFzaCIpIHx8IChleGlzdHMoImI6aXNfa29ybnNoZWxsIikgJiYgIWV4aXN0cygiZzppc19wb3NpeCIpKQotIHN5biBtYXRjaCBzaFJlZGlyICI8PDwiCXNraXB3aGl0ZQluZXh0Z3JvdXA9c2hDbWRQYXJlblJlZ2lvbgorIHN5biBtYXRjaCBzaEhlcmVTdHJpbmcgIjw8PCIJc2tpcHdoaXRlCW5leHRncm91cD1zaENtZFBhcmVuUmVnaW9uCiBlbmRpZgogCiAiIElkZW50aWZpZXJzOiB7e3sxCkBAIC00MzEsNiArNDMxLDcgQEAKIHN5biByZWdpb24gc2hEZXJlZgltYXRjaGdyb3VwPVByZVByb2Mgc3RhcnQ9IlwkeyIgZW5kPSJ9Igljb250YWlucz1Ac2hEZXJlZkxpc3Qsc2hEZXJlZlZhckFycmF5CiBzeW4gbWF0Y2ggIHNoRGVyZWZTaW1wbGUJIlwkWy0jKkAhP10iCiBzeW4gbWF0Y2ggIHNoRGVyZWZTaW1wbGUJIlwkXCQiCitzeW4gbWF0Y2ggIHNoRGVyZWZTaW1wbGUJIlwke1xkfSIKIGlmIGV4aXN0cygiYjppc19iYXNoIikgfHwgZXhpc3RzKCJiOmlzX2tvcm5zaGVsbCIpCiAgc3luIHJlZ2lvbiBzaERlcmVmCW1hdGNoZ3JvdXA9UHJlUHJvYyBzdGFydD0iXCR7IyNcPSIgZW5kPSJ9Igljb250YWlucz1Ac2hEZXJlZkxpc3QKICBzeW4gcmVnaW9uIHNoRGVyZWYJbWF0Y2hncm91cD1QcmVQcm9jIHN0YXJ0PSJcJHtcJFwkIiBlbmQ9In0iCWNvbnRhaW5zPUBzaERlcmVmTGlzdApAQCAtNDU1LDYgKzQ1Niw3IEBACiBzeW4gbWF0Y2ggIHNoRGVyZWZTcGVjaWFsCWNvbnRhaW5lZAkie1xAPD1bLSpAPzBdIgkJbmV4dGdyb3VwPXNoRGVyZWZPcCxzaERlcmVmT3BFcnJvcgogc3luIG1hdGNoICBzaERlcmVmU3BlY2lhbAljb250YWluZWQJIlwoe1sjIV1cKVxAPD1bWzphbG51bTpdKkBfXVwrIgluZXh0Z3JvdXA9QHNoRGVyZWZWYXJMaXN0LHNoRGVyZWZPcAogc3luIG1hdGNoICBzaERlcmVmVmFyCWNvbnRhaW5lZAkie1xAPD1caFx3KiIJCW5leHRncm91cD1Ac2hEZXJlZlZhckxpc3QKK3N5biBtYXRjaCAgc2hEZXJlZlZhcgljb250YWluZWQJJ1xkJyAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXh0Z3JvdXA9QHNoRGVyZWZWYXJMaXN0CiBpZiBleGlzdHMoImI6aXNfa29ybnNoZWxsIikKICAgc3luIG1hdGNoICBzaERlcmVmVmFyCWNvbnRhaW5lZAkie1xAPD1caFx3KltbOmFsbnVtOl1fLl0qIgluZXh0Z3JvdXA9QHNoRGVyZWZWYXJMaXN0CiBlbmRpZgpAQCAtNDgyLDI0ICs0ODQsMjQgQEAKIHN5biBtYXRjaCAgc2hEZXJlZk9wCWNvbnRhaW5lZAkiOlw9Wy09P10iCW5leHRncm91cD1Ac2hEZXJlZlBhdHRlcm5MaXN0CiBzeW4gbWF0Y2ggIHNoRGVyZWZPcAljb250YWluZWQJIjpcPSsiCW5leHRncm91cD1Ac2hEZXJlZlBhdHRlcm5MaXN0CiBpZiBleGlzdHMoImI6aXNfYmFzaCIpIHx8IGV4aXN0cygiYjppc19rb3Juc2hlbGwiKQotIHN5biBtYXRjaCAgc2hEZXJlZk9wCWNvbnRhaW5lZAkiI1x7MSwyfSIJbmV4dGdyb3VwPUBzaERlcmVmUGF0dGVybkxpc3QKLSBzeW4gbWF0Y2ggIHNoRGVyZWZPcAljb250YWluZWQJIiVcezEsMn0iCW5leHRncm91cD1Ac2hEZXJlZlBhdHRlcm5MaXN0Ci0gc3luIG1hdGNoICBzaERlcmVmUGF0dGVybgljb250YWluZWQJIltee31dXCsiCWNvbnRhaW5zPXNoRGVyZWYsc2hEZXJlZlNpbXBsZSxzaERlcmVmUGF0dGVybixzaERlcmVmU3RyaW5nLHNoQ29tbWFuZFN1YixzaERlcmVmRXNjYXBlIG5leHRncm91cD1zaERlcmVmUGF0dGVybgorIHN5biBtYXRjaCAgc2hEZXJlZk9wCWNvbnRhaW5lZAkiI1x7MSwyfSIJCW5leHRncm91cD1Ac2hEZXJlZlBhdHRlcm5MaXN0Cisgc3luIG1hdGNoICBzaERlcmVmT3AJY29udGFpbmVkCSIlXHsxLDJ9IgkJbmV4dGdyb3VwPUBzaERlcmVmUGF0dGVybkxpc3QKKyBzeW4gbWF0Y2ggIHNoRGVyZWZQYXR0ZXJuCWNvbnRhaW5lZAkiW157fV1cKyIJCWNvbnRhaW5zPXNoRGVyZWYsc2hEZXJlZlNpbXBsZSxzaERlcmVmUGF0dGVybixzaERlcmVmU3RyaW5nLHNoQ29tbWFuZFN1YixzaERlcmVmRXNjYXBlIG5leHRncm91cD1zaERlcmVmUGF0dGVybgogIHN5biByZWdpb24gc2hEZXJlZlBhdHRlcm4JY29udGFpbmVkCXN0YXJ0PSJ7IiBlbmQ9In0iCWNvbnRhaW5zPXNoRGVyZWYsc2hEZXJlZlNpbXBsZSxzaERlcmVmU3RyaW5nLHNoQ29tbWFuZFN1YiBuZXh0Z3JvdXA9c2hEZXJlZlBhdHRlcm4KICBzeW4gbWF0Y2ggIHNoRGVyZWZFc2NhcGUJY29udGFpbmVkCSdcJShcXFxcXCkqXFwuJwogZW5kaWYKIGlmIGV4aXN0cygiYjppc19iYXNoIikKICBzeW4gbWF0Y2ggIHNoRGVyZWZPcAljb250YWluZWQJIlssXl1cezEsMn0iCW5leHRncm91cD1Ac2hEZXJlZlBhdHRlcm5MaXN0CiBlbmRpZgotc3luIHJlZ2lvbiBzaERlcmVmU3RyaW5nCWNvbnRhaW5lZAltYXRjaGdyb3VwPXNoRGVyZWZEZWxpbSBzdGFydD0rXCUoXFxcKVxAPCEnKyBlbmQ9KycrCQljb250YWlucz1zaFN0cmluZ1NwZWNpYWwKK3N5biByZWdpb24gc2hEZXJlZlN0cmluZwljb250YWluZWQJbWF0Y2hncm91cD1zaERlcmVmRGVsaW0gc3RhcnQ9K1wlKFxcXClcQDwhJysgZW5kPSsnKwljb250YWlucz1zaFN0cmluZ1NwZWNpYWwKIHN5biByZWdpb24gc2hEZXJlZlN0cmluZwljb250YWluZWQJbWF0Y2hncm91cD1zaERlcmVmRGVsaW0gc3RhcnQ9K1wlKFxcXClcQDwhIisgc2tpcD0rXFwiKyBlbmQ9KyIrCWNvbnRhaW5zPUBzaERibFF1b3RlTGlzdCxzaFN0cmluZ1NwZWNpYWwKIHN5biBtYXRjaCAgc2hEZXJlZlN0cmluZwljb250YWluZWQJIlxcWyInXSIJbmV4dGdyb3VwPXNoRGVyZWZQYXR0ZXJuCiAKIGlmIGV4aXN0cygiYjppc19iYXNoIikKICAiIGJhc2ggOiAke3BhcmFtZXRlcjpvZmZzZXR9CiAgIiBiYXNoIDogJHtwYXJhbWV0ZXI6b2Zmc2V0Omxlbmd0aH0KLSBzeW4gcmVnaW9uIHNoRGVyZWZPZmYJY29udGFpbmVkCXN0YXJ0PSc6JwllbmQ9J1x6ZTonCWVuZD0nXHplfScJY29udGFpbnM9c2hEZXJlZixzaERlcmVmU2ltcGxlCW5leHRncm91cD1zaERlcmVmTGVuLHNoRGVyZWYsc2hEZXJlZlNpbXBsZQotIHN5biByZWdpb24gc2hEZXJlZk9mZgljb250YWluZWQJc3RhcnQ9Jzpccy0nCWVuZD0nXHplOicJZW5kPSdcemV9Jwljb250YWlucz1zaERlcmVmLHNoRGVyZWZTaW1wbGUJbmV4dGdyb3VwPXNoRGVyZWZMZW4sc2hEZXJlZixzaERlcmVmU2ltcGxlCisgc3luIHJlZ2lvbiBzaERlcmVmT2ZmCWNvbnRhaW5lZAlzdGFydD0nOicJZW5kPSdcemU6JwllbmQ9J1x6ZX0nCWNvbnRhaW5zPXNoRGVyZWYsc2hEZXJlZlNpbXBsZSxzaERlcmVmRXNjYXBlCW5leHRncm91cD1zaERlcmVmTGVuLHNoRGVyZWYsc2hEZXJlZlNpbXBsZQorIHN5biByZWdpb24gc2hEZXJlZk9mZgljb250YWluZWQJc3RhcnQ9Jzpccy0nCWVuZD0nXHplOicJZW5kPSdcemV9Jwljb250YWlucz1zaERlcmVmLHNoRGVyZWZTaW1wbGUsc2hEZXJlZkVzY2FwZQluZXh0Z3JvdXA9c2hEZXJlZkxlbixzaERlcmVmLHNoRGVyZWZTaW1wbGUKICBzeW4gbWF0Y2ggIHNoRGVyZWZMZW4JY29udGFpbmVkCSI6W159XVwrIgljb250YWlucz1zaERlcmVmLHNoRGVyZWZTaW1wbGUKIAogICIgYmFzaCA6ICR7cGFyYW1ldGVyLy9wYXR0ZXJuL3N0cmluZ30KQEAgLTYwMiwxNCArNjA0LDE2IEBACiBoaSBkZWYgbGluayBzaEVjaG9EZWxpbQlzaE9wZXJhdG9yCiBoaSBkZWYgbGluayBzaEVjaG9RdW90ZQlzaFN0cmluZwogaGkgZGVmIGxpbmsgc2hGb3JQUAlzaExvb3AKK2hpIGRlZiBsaW5rIHNoRnVuY3Rpb24JRnVuY3Rpb24KIGhpIGRlZiBsaW5rIHNoRW1iZWRkZWRFY2hvCXNoU3RyaW5nCiBoaSBkZWYgbGluayBzaEVzY2FwZQlzaENvbW1hbmRTdWIKIGhpIGRlZiBsaW5rIHNoRXhEb3VibGVRdW90ZQlzaERvdWJsZVF1b3RlCiBoaSBkZWYgbGluayBzaEV4U2luZ2xlUXVvdGUJc2hTaW5nbGVRdW90ZQogaGkgZGVmIGxpbmsgc2hIZXJlRG9jCXNoU3RyaW5nCitoaSBkZWYgbGluayBzaEhlcmVTdHJpbmcJc2hSZWRpcgogaGkgZGVmIGxpbmsgc2hIZXJlUGF5bG9hZAlzaEhlcmVEb2MKIGhpIGRlZiBsaW5rIHNoTG9vcAlzaFN0YXRlbWVudAotaGkgZGVmIGxpbmsgc2hNb3JlU3BlY2lhbAlzaFNwZWNpYWwKK2hpIGRlZiBsaW5rIHNoU3BlY2lhbE54dAlzaFNwZWNpYWwKIGhpIGRlZiBsaW5rIHNoTm9RdW90ZQlzaERvdWJsZVF1b3RlCiBoaSBkZWYgbGluayBzaE9wdGlvbglzaENvbW1hbmRTdWIKIGhpIGRlZiBsaW5rIHNoUGF0dGVybglzaFN0cmluZwpkaWZmIC0tZ2l0IGEvcnVudGltZS9zeW50YXgvdmltLnZpbSBiL3J1bnRpbWUvc3ludGF4L3ZpbS52aW0KaW5kZXggMjBmMjJjNC4uMzg4OTc2OCAxMDA2NDQKLS0tIGEvcnVudGltZS9zeW50YXgvdmltLnZpbQorKysgYi9ydW50aW1lL3N5bnRheC92aW0udmltCkBAIC0xLDggKzEsOCBAQAogIiBWaW0gc3ludGF4IGZpbGUKICIgTGFuZ3VhZ2U6CVZpbSA3LjQgc2NyaXB0CiAiIE1haW50YWluZXI6CUNoYXJsZXMgRS4gQ2FtcGJlbGwgPE5kck9jaGlwU0BQY2FtcGJlbGxBZmFtaWx5Lk1iaXo+Ci0iIExhc3QgQ2hhbmdlOglKdWx5IDExLCAyMDE2Ci0iIFZlcnNpb246CTcuNC01MQorIiBMYXN0IENoYW5nZToJQXVndXN0IDI2LCAyMDE2CisiIFZlcnNpb246CTcuNC01MgogIiBBdXRvbWF0aWNhbGx5IGdlbmVyYXRlZCBrZXl3b3JkIGxpc3RzOiB7e3sxCiAKICIgUXVpdCB3aGVuIGEgc3ludGF4IGZpbGUgd2FzIGFscmVhZHkgbG9hZGVkIHt7ezIKQEAgLTE4LDI0ICsxOCwyNCBAQAogc3luIGNsdXN0ZXIgdmltQ29tbWVudEdyb3VwCWNvbnRhaW5zPXZpbVRvZG8sQFNwZWxsCiAKICIgcmVndWxhciB2aW0gY29tbWFuZHMge3t7Mgotc3luIGtleXdvcmQgdmltQ29tbWFuZCBjb250YWluZWQJYSBhcmdhW2RkXSBhcmd1W21lbnRdIGJhZFtkXSBibltleHRdIGJyZWFrZFtlbF0gYndbaXBlb3V0XSBjYWRkZVt4cHJdIGNjbFtvc2VdIGNmZG8gY2hkW2lyXSBjbG9bc2VdIGNvbFtkZXJdIGNvbmZbaXJtXSBjcyBkZWJ1ZyBkZWxldGVwIGRlbHAgZGlmZnBbYXRjaF0gZGpbdW1wXSBkcltvcF0gZWMgZW1bZW51XSBlbmVbd10gZmlsZXQgZml4W2RlbF0gZm9yIGd1aSBoZWxwZ1tyZXBdIGlhIGluIGp1W21wc10ga2VlcGpbdW1wc10gbGFbc3RdIGxhdCBsY2xbb3NlXSBsZWZ0YVtib3ZlXSBsZ1tldGZpbGVdIGxoW2VscGdyZXBdIGxtYXBjW2xlYXJdIGxvYWRrIGxvcFtlbl0gbHRbYWddIGx2aW1ncmVwYVtkZF0gbWFya3MgbWtbZXhyY10gbW9kW2VdIG5iY1tsb3NlXSBub2F1dG9jbWQgbnVbbWJlcl0gb3B0W2lvbnNdIHBjW2xvc2VdIHBvcHVbcF0gcHJvZltpbGVdIHB0TltleHRdIHB0bltleHRdIHB3W2RdIHB5ZltpbGVdIHJbZWFkXSByZWRyYXdzW3RhdHVzXSByZXdbaW5kXSBydWJ5ZFtvXSBzSWMgc0lwIHNhbltkYm94XSBzYmZbaXJzdF0gc2JyW2V3aW5kXSBzY2kgc2NzIHNldGxbb2NhbF0gc2djIHNncCBzaWUgc2luIHNtW2FnaWNdIHNuW2V4dF0gc29yW3RdIHNwZWxscltlcGFsbF0gc3JJIHNybCBzdGFyW3RpbnNlcnRdIHN0c1tlbGVjdF0gc3ZbaWV3XSBzeW5jYmluZCB0YWIgdGFiZltpbmRdIHRhYm5ldyB0YWdzIHRmW2lyc3RdIHRuW2V4dF0gdHNbZWxlY3RdIHVuZG9sW2lzdF0gdXBbZGF0ZV0gdmlbc3VhbF0gdm1hcGNbbGVhcl0gd2FbbGxdIHdpbnBbb3NdIHdzW3ZlcmJdIHhtYXBjW2xlYXJdIHhwcm9wCi1zeW4ga2V5d29yZCB2aW1Db21tYW5kIGNvbnRhaW5lZAlhYiBhcmdkW2VsZXRlXSBhc1tjaWldIGJkW2VsZXRlXSBib1t0cmlnaHRdIGJyZWFrbFtpc3RdIGNOW2V4dF0gY2FkZGZbaWxlXSBjZCBjZmlyW3N0XSBjaGVbY2twYXRoXSBjbWFwY1tsZWFyXSBjb2xvW3JzY2hlbWVdIGNvcGVbbl0gY3Njb3BlIGRlYnVnZ1tyZWVkeV0gZGVsZXRsIGRlcCBkaWZmcHVbdF0gZGwgZHNbZWFyY2hdIGVjaG9lW3JyXSBlbltkaWZdIGV4IGZpbGV0eXBlIGZvW2xkXSBmdVtuY3Rpb25dIGd2aW0gaGVscHRbYWdzXSBpYWJjW2xlYXJdIGludHJvIGsga2VlcHBbYXR0ZXJuc10gbGFkW2RleHByXSBsYXRlciBsY3MgbGV4W3ByXSBsZ2V0Ylt1ZmZlcl0gbGwgbG5lW3h0XSBsb2Fka2V5bWFwIGxwW3JldmlvdXNdIGx1YSBsd1tpbmRvd10gbWF0W2NoXSBta3NbZXNzaW9uXSBteltzY2hlbWVdIG5ic1t0YXJ0XSBub2hbbHNlYXJjaF0gb1twZW5dIG93bnN5bnRheCBwZVtybF0gcHBbb3BdIHByb2ZkW2VsXSBwdGFbZ10gcHRwW3JldmlvdXNdIHB5MyBweXRob24zIHJlY1tvdmVyXSByZWdbaXN0ZXJzXSByaVtnaHRdIHJ1YnlmW2lsZV0gc0llIHNJciBzYXZbZWFzXSBzYmxbYXN0XSBzYyBzY2wgc2NzY29wZSBzZltpbmRdIHNnZSBzZ3Igc2lnIHNpcCBzbVthcF0gc25vW21hZ2ljXSBzcFtsaXRdIHNwZWxsdVtuZG9dIHNyYyBzcm4gc3RhcnRnW3JlcGxhY2VdIHN1bltoaWRlXSBzd1thcG5hbWVdIHN5bnRpbWUgdGFiTltleHRdIHRhYmZpcltzdF0gdGFib1tubHldIHRjW2xdIHRoW3Jvd10gdG9bcGxlZnRdIHR1W25tZW51XSB1bmhbaWRlXSB2IHZpZVt3XSB2bmVbd10gd2hbaWxlXSB3bltleHRdIHd1bmRvIHhtZSB4dW5tZQotc3luIGtleXdvcmQgdmltQ29tbWFuZCBjb250YWluZWQJYWJjW2xlYXJdIGFyZ2RvIGF1IGJlbFtvd3JpZ2h0XSBicFtyZXZpb3VzXSBicm9bd3NlXSBjTmZbaWxlXSBjYWxbbF0gY2RvIGNnW2V0ZmlsZV0gY2hlY2t0W2ltZV0gY25bZXh0XSBjb20gY3BbcmV2aW91c10gY3N0YWcgZGVsY1tvbW1hbmRdIGRlbGV0cCBkaVtzcGxheV0gZGlmZnNbcGxpdF0gZGxpW3N0XSBkc3BbbGl0XSBlY2hvbVtzZ10gZW5kZlt1bmN0aW9uXSBleGlbdF0gZmluW2RdIGZvbGRjW2xvc2VdIGcgaFtlbHBdIGhpIGlmIGlzW2VhcmNoXSBrZWVbcG1hcmtzXSBsTltleHRdIGxhZGRiW3VmZmVyXSBsYlt1ZmZlcl0gbGNzY29wZSBsZltpbGVdIGxnZXRlW3hwcl0gbGxhW3N0XSBsbmV3W2VyXSBsb2Nba21hcmtzXSBscGZbaWxlXSBsdWFkbyBtW292ZV0gbWVudXRbcmFuc2xhdGVdIG1rc3BbZWxsXSBtemZbaWxlXSBuZXcgbm9yIG9sW2RmaWxlc10gcFtyaW50XSBwZWRbaXRdIHByZVtzZXJ2ZV0gcHJvbXB0ZltpbmRdIHB0ZltpcnN0XSBwdHJbZXdpbmRdIHB5M2RvIHFbdWl0XSByZWRbb10gcmVzW2l6ZV0gcmlnaHRiW2Vsb3ddIHJ1bmRvIHNJZyBzTltleHRdIHNiTltleHRdIHNibVtvZGlmaWVkXSBzY0kgc2NwIHNlW3RdIHNmaXJbc3RdIHNnaSBzaFtlbGxdIHNpZ24gc2lyIHNtZSBzbm9yZW1lIHNwZVtsbGdvb2RdIHNwZWxsd1tyb25nXSBzcmVbd2luZF0gc3JwIHN0YXJ0cltlcGxhY2VdIHN1bm1lIHN5IHQgdGFiY1tsb3NlXSB0YWJsW2FzdF0gdGFicFtyZXZpb3VzXSB0Y2xkW29dIHRqW3VtcF0gdHBbcmV2aW91c10gdVtuZG9dIHVubCB2ZVtyc2lvbl0gdmltW2dyZXBdIHZzW3BsaXRdIHdpbltzaXplXSB3cFtyZXZpb3VzXSB3dltpbWluZm9dIHhtZW51IHh1bm1lbnUKLXN5biBrZXl3b3JkIHZpbUNvbW1hbmQgY29udGFpbmVkCWFib1t2ZWxlZnRdIGFyZ2VbZGl0XSBiTltleHRdIGJmW2lyc3RdIGJyW2V3aW5kXSBidWZkbyBjW2hhbmdlXSBjYXRbY2hdIGNlW250ZXJdIGNnZXRiW3VmZmVyXSBjbFtpc3RdIGNuZXdbZXJdIGNvbWNbbGVhcl0gY3BmW2lsZV0gY3VuYVtiYnJldl0gZGVsZWwgZGVsZlt1bmN0aW9uXSBkaWZbZnVwZGF0ZV0gZGlmZnRbaGlzXSBkbyBlW2RpdF0gZWNob24gZW5kZm9bcl0gZXh1W3NhZ2VdIGZpbmFbbGx5XSBmb2xkZFtvb3Blbl0gZ29bdG9dIGhhW3JkY29weV0gaGlkW2VdIGlqW3VtcF0gaXNwW2xpdF0ga2VlcGEgbE5mW2lsZV0gbGFkZGZbaWxlXSBsY1tkXSBsZFtvXSBsZmRvIGxncltlcF0gbGxpW3N0XSBsbmZbaWxlXSBsb2Nrdlthcl0gbHJbZXdpbmRdIGx1YWZpbGUgbWFbcmtdIG1lcyBta3ZbaW1yY10gbltleHRdIG5tYXBjW2xlYXJdIG5vcmUgb21hcGNbbGVhcl0gcGFbY2thZGRdIHBlcmxkW29dIHByZXZbaW91c10gcHJvbXB0cltlcGxdIHB0alt1bXBdIHB0c1tlbGVjdF0gcHlbdGhvbl0gcWFbbGxdIHJlZGlbcl0gcmV0W2FiXSBydVtudGltZV0gcnZbaW1pbmZvXSBzSWwgc2Fbcmd1bWVudF0gc2JbdWZmZXJdIHNibltleHRdIHNjZSBzY3JbaXB0bmFtZXNdIHNldGZbaWxldHlwZV0gc2cgc2dsIHNpIHNpbFtlbnRdIHNsW2VlcF0gc21lbnUgc25vcmVtZW51IHNwZWxsZFt1bXBdIHNwcltldmlvdXNdIHNyZyBzdFtvcF0gc3RqW3VtcF0gc3VubWVudSBzeW4gdE5bZXh0XSB0YWJkW29dIHRhYm1bb3ZlXSB0YWJyW2V3aW5kXSB0Y2xmW2lsZV0gdGxbYXN0XSB0cltld2luZF0gdW5hW2JicmV2aWF0ZV0gdW5sb1tja3Zhcl0gdmVyYltvc2VdIHZpbWdyZXBhW2RkXSB3TltleHRdIHdpbmNbbWRdIHdxIHhbaXRdIHhub3JlbWUgeHdpbmluZm8KLXN5biBrZXl3b3JkIHZpbUNvbW1hbmQgY29udGFpbmVkCWFsW2xdIGFyZ2dbbG9iYWxdIGJbdWZmZXJdIGJsW2FzdF0gYnJlYVtrXSBidWZmZXJzIGNhYmNbbGVhcl0gY2JbdWZmZXJdIGNleFtwcl0gY2dldGVbeHByXSBjbGFbc3RdIGNuZltpbGVdIGNvbXBbaWxlcl0gY3FbdWl0XSBjd1tpbmRvd10gZGVsZXAgZGVsbCBkaWZmZ1tldF0gZGlnW3JhcGhzXSBkb2F1IGVhIGVsW3NlXSBlbmR0W3J5XSBmW2lsZV0gZmluaVtzaF0gZm9sZGRvY1tsb3NlZF0gZ3JbZXBdIGhlbHBjW2xvc2VdIGhpc1t0b3J5XSBpbFtpc3RdIGl1bmFbYmJyZXZdIGtlZXBhbHQgbFtpc3RdIGxhbltndWFnZV0gbGNoW2Rpcl0gbGVbZnRdIGxmaXJbc3RdIGxncmVwYVtkZF0gbG1ha1tlXSBsb1thZHZpZXddIGxvbFtkZXJdIGxzIGx2W2ltZ3JlcF0gbWFrW2VdIG1lc3NhZ2VzIG1rdmllW3ddIG5iW2tleV0gbm9hIG5vc1t3YXBmaWxlXSBvbltseV0gcGFja2xbb2FkYWxsXSBwb1twXSBwcm8gcHNbZWFyY2hdIHB0bFthc3RdIHB1W3RdIHB5ZG8gcXVpdGFbbGxdIHJlZHJbYXddIHJldHVbcm5dIHJ1Ylt5XSBzSSBzSW4gc2FsW2xdIHNiYVtsbF0gc2JwW3JldmlvdXNdIHNjZyBzY3JpcHRlW25jb2RpbmddIHNldGdbbG9iYWxdIHNnSSBzZ24gc2ljIHNpbVthbHRdIHNsYVtzdF0gc21pbGUgc29bdXJjZV0gc3BlbGxpW25mb10gc3Igc3JpIHN0YVtnXSBzdG9waVtuc2VydF0gc3VzW3BlbmRdIHN5bmMgdGFbZ10gdGFiZVtkaXRdIHRhYm5bZXh0XSB0YWJzIHRlW2Fyb2ZmXSB0bVtlbnVdIHRyeSB1bmRvaltvaW5dIHVuc1tpbGVudF0gdmVydFtpY2FsXSB2aXVbc2FnZV0gd1tyaXRlXSB3aW5kbyB3cWFbbGxdIHhhW2xsXSB4bm9yZW1lbnUgeVthbmtdCi1zeW4ga2V5d29yZCB2aW1Db21tYW5kIGNvbnRhaW5lZAlhcltnc10gYXJnbFtvY2FsXSBiYVtsbF0gYm1bb2RpZmllZF0gYnJlYWthW2RkXSBidW5bbG9hZF0gY2FkW2RidWZmZXJdIGNjIGNmW2lsZV0gY2hhbmdlcyBjbGVbYXJqdW1wc10gY29bcHldIGNvblt0aW51ZV0gY3JbZXdpbmRdIGRbZWxldGVdIGRlbGV0ZWwgZGVsbVthcmtzXSBkaWZmb1tmZl0gZGlyIGRwIGVhcmxpZXIgZWxzZWlbZl0gZW5kd1toaWxlXSBmaWxlcyBmaXJbc3RdIGZvbGRvW3Blbl0gZ3JlcGFbZGRdIGhlbHBmW2luZF0gaSBpbWFwY1tsZWFyXSBqW29pbl0gCitzeW4ga2V5d29yZCB2aW1Db21tYW5kIGNvbnRhaW5lZAlhIGFyZ2FbZGRdIGFyZ3VbbWVudF0gYmFkW2RdIGJuW2V4dF0gYnJlYWtkW2VsXSBid1tpcGVvdXRdIGNhZGRlW3hwcl0gY2MgY2ZbaWxlXSBjaGFuZ2VzIGNsYVtzdF0gY25mW2lsZV0gY29tcFtpbGVyXSBjcVt1aXRdIGN3W2luZG93XSBkZWxlcCBkZWxsIGRpZmZnW2V0XSBkaWdbcmFwaHNdIGRvYXUgZWEgZWxbc2VdIGVuZHRbcnldIGZbaWxlXSBmaW5hW2xseV0gZm9sZGRbb29wZW5dIGdvW3RvXSBoYVtyZGNvcHldIGhpZFtlXSBpalt1bXBdIGlzcFtsaXRdIGtlZXBhIGxbaXN0XSBsYXQgbGNsW29zZV0gbGV4W3ByXSBsZ2V0Ylt1ZmZlcl0gbGhpW3N0b3J5XSBsbWFwY1tsZWFyXSBsb2FkayBsb3BbZW5dIGx0W2FnXSBsdmltZ3JlcGFbZGRdIG1hcmtzIG1rW2V4cmNdIG1vZFtlXSBuYmNbbG9zZV0gbm9hdXRvY21kIG51W21iZXJdIG9wdFtpb25zXSBwY1tsb3NlXSBwb3B1W3BdIHByb2ZbaWxlXSBwdE5bZXh0XSBwdG5bZXh0XSBwd1tkXSBweWZbaWxlXSByW2VhZF0gcmVkcmF3c1t0YXR1c10gcmV3W2luZF0gcnVieWRbb10gc0ljIHNJcCBzYW5bZGJveF0gc2JmW2lyc3RdIHNicltld2luZF0gc2NpIHNjcyBzZXRsW29jYWxdIHNnYyBzZ3Agc2llIHNpbiBzbVthZ2ljXSBzbltleHRdIHNvclt0XSBzcGVsbHJbZXBhbGxdIHNySSBzcmwgc3Rhclt0aW5zZXJ0XSBzdHNbZWxlY3RdIHN2W2lld10gc3luY2JpbmQgdGFiIHRhYmZbaW5kXSB0YWJuZXcgdGFncyB0ZltpcnN0XSB0bltleHRdIHRzW2VsZWN0XSB1bmRvbFtpc3RdIHVwW2RhdGVdIHZpW3N1YWxdIHZtYXBjW2xlYXJdIHdhW2xsXSB3aW5wW29zXSB3c1t2ZXJiXSB4bWFwY1tsZWFyXSB4cHJvcAorc3luIGtleXdvcmQgdmltQ29tbWFuZCBjb250YWluZWQJYWIgYXJnZFtlbGV0ZV0gYXNbY2lpXSBiZFtlbGV0ZV0gYm9bdHJpZ2h0XSBicmVha2xbaXN0XSBjTltleHRdIGNhZGRmW2lsZV0gY2NsW29zZV0gY2ZkbyBjaGRbaXJdIGNsZVthcmp1bXBzXSBjb1tweV0gY29uW3RpbnVlXSBjcltld2luZF0gZFtlbGV0ZV0gZGVsZXRlbCBkZWxtW2Fya3NdIGRpZmZvW2ZmXSBkaXIgZHAgZWFybGllciBlbHNlaVtmXSBlbmR3W2hpbGVdIGZpbGVzIGZpbmlbc2hdIGZvbGRkb2NbbG9zZWRdIGdyW2VwXSBoZWxwY1tsb3NlXSBoaXNbdG9yeV0gaWxbaXN0XSBpdW5hW2JicmV2XSBrZWVwYWx0IGxhW3N0XSBsYXRlciBsY3MgbGZbaWxlXSBsZ2V0ZVt4cHJdIGxsIGxuZVt4dF0gbG9hZGtleW1hcCBscFtyZXZpb3VzXSBsdWEgbHdbaW5kb3ddIG1hdFtjaF0gbWtzW2Vzc2lvbl0gbXpbc2NoZW1lXSBuYnNbdGFydF0gbm9oW2xzZWFyY2hdIG9bcGVuXSBvd25zeW50YXggcGVbcmxdIHBwW29wXSBwcm9mZFtlbF0gcHRhW2ddIHB0cFtyZXZpb3VzXSBweTMgcHl0aG9uMyByZWNbb3Zlcl0gcmVnW2lzdGVyc10gcmlbZ2h0XSBydWJ5ZltpbGVdIHNJZSBzSXIgc2F2W2Vhc10gc2JsW2FzdF0gc2Mgc2NsIHNjc2NvcGUgc2ZbaW5kXSBzZ2Ugc2dyIHNpZyBzaXAgc21bYXBdIHNub1ttYWdpY10gc3BbbGl0XSBzcGVsbHVbbmRvXSBzcmMgc3JuIHN0YXJ0Z1tyZXBsYWNlXSBzdW5baGlkZV0gc3dbYXBuYW1lXSBzeW50aW1lIHRhYk5bZXh0XSB0YWJmaXJbc3RdIHRhYm9bbmx5XSB0Y1tsXSB0aFtyb3ddIHRvW3BsZWZ0XSB0dVtubWVudV0gdW5oW2lkZV0gdiB2aWVbd10gdm5lW3ddIHdoW2lsZV0gd25bZXh0XSB3dW5kbyB4bWUgeHVubWUKK3N5biBrZXl3b3JkIHZpbUNvbW1hbmQgY29udGFpbmVkCWFiY1tsZWFyXSBhcmdkbyBhdSBiZWxbb3dyaWdodF0gYnBbcmV2aW91c10gYnJvW3dzZV0gY05mW2lsZV0gY2FsW2xdIGNkIGNmaXJbc3RdIGNoZVtja3BhdGhdIGNsb1tzZV0gY29sW2Rlcl0gY29uZltpcm1dIGNzIGRlYnVnIGRlbGV0ZXAgZGVscCBkaWZmcFthdGNoXSBkalt1bXBdIGRyW29wXSBlYyBlbVtlbnVdIGVuZVt3XSBmaWxldCBmaXJbc3RdIGZvbGRvW3Blbl0gZ3JlcGFbZGRdIGhlbHBmW2luZF0gaSBpbWFwY1tsZWFyXSBqW29pbl0ga2VlcGpbdW1wc10gbGFkW2RleHByXSBsYlt1ZmZlcl0gbGNzY29wZSBsZmRvIGxncltlcF0gbGxhW3N0XSBsbmV3W2VyXSBsb2Nba21hcmtzXSBscGZbaWxlXSBsdWFkbyBtW292ZV0gbWVudXRbcmFuc2xhdGVdIG1rc3BbZWxsXSBtemZbaWxlXSBuZXcgbm9yIG9sW2RmaWxlc10gcFtyaW50XSBwZWRbaXRdIHByZVtzZXJ2ZV0gcHJvbXB0ZltpbmRdIHB0ZltpcnN0XSBwdHJbZXdpbmRdIHB5M2RvIHFbdWl0XSByZWRbb10gcmVzW2l6ZV0gcmlnaHRiW2Vsb3ddIHJ1bmRvIHNJZyBzTltleHRdIHNiTltleHRdIHNibVtvZGlmaWVkXSBzY0kgc2NwIHNlW3RdIHNmaXJbc3RdIHNnaSBzaFtlbGxdIHNpZ24gc2lyIHNtZSBzbm9yZW1lIHNwZVtsbGdvb2RdIHNwZWxsd1tyb25nXSBzcmVbd2luZF0gc3JwIHN0YXJ0cltlcGxhY2VdIHN1bm1lIHN5IHQgdGFiY1tsb3NlXSB0YWJsW2FzdF0gdGFicFtyZXZpb3VzXSB0Y2xkW29dIHRqW3VtcF0gdHBbcmV2aW91c10gdVtuZG9dIHVubCB2ZVtyc2lvbl0gdmltW2dyZXBdIHZzW3BsaXRdIHdpbltzaXplXSB3cFtyZXZpb3VzXSB3dltpbWluZm9dIHhtZW51IHh1bm1lbnUKK3N5biBrZXl3b3JkIHZpbUNvbW1hbmQgY29udGFpbmVkCWFib1t2ZWxlZnRdIGFyZ2VbZGl0XSBiTltleHRdIGJmW2lyc3RdIGJyW2V3aW5kXSBidWZkbyBjW2hhbmdlXSBjYXRbY2hdIGNkbyBjZ1tldGZpbGVdIGNoZWNrdFtpbWVdIGNtYXBjW2xlYXJdIGNvbG9bcnNjaGVtZV0gY29wZVtuXSBjc2NvcGUgZGVidWdnW3JlZWR5XSBkZWxldGwgZGVwIGRpZmZwdVt0XSBkbCBkc1tlYXJjaF0gZWNob2VbcnJdIGVuW2RpZl0gZXggZmlsZXR5cGUgZml4W2RlbF0gZm9yIGd1aSBoZWxwZ1tyZXBdIGlhIGluIGp1W21wc10ga2VlcHBbYXR0ZXJuc10gbGFkZGJbdWZmZXJdIGxib1t0dG9tXSBsZFtvXSBsZmlyW3N0XSBsZ3JlcGFbZGRdIGxsaVtzdF0gbG5mW2lsZV0gbG9ja3ZbYXJdIGxyW2V3aW5kXSBsdWFmaWxlIG1hW3JrXSBtZXMgbWt2W2ltcmNdIG5bZXh0XSBubWFwY1tsZWFyXSBub3JlIG9tYXBjW2xlYXJdIHBhW2NrYWRkXSBwZXJsZFtvXSBwcmV2W2lvdXNdIHByb21wdHJbZXBsXSBwdGpbdW1wXSBwdHNbZWxlY3RdIHB5W3Rob25dIHFhW2xsXSByZWRpW3JdIHJldFthYl0gcnVbbnRpbWVdIHJ2W2ltaW5mb10gc0lsIHNhW3JndW1lbnRdIHNiW3VmZmVyXSBzYm5bZXh0XSBzY2Ugc2NyW2lwdG5hbWVzXSBzZXRmW2lsZXR5cGVdIHNnIHNnbCBzaSBzaWxbZW50XSBzbFtlZXBdIHNtZW51IHNub3JlbWVudSBzcGVsbGRbdW1wXSBzcHJbZXZpb3VzXSBzcmcgc3Rbb3BdIHN0alt1bXBdIHN1bm1lbnUgc3luIHROW2V4dF0gdGFiZFtvXSB0YWJtW292ZV0gdGFicltld2luZF0gdGNsZltpbGVdIHRsW2FzdF0gdHJbZXdpbmRdIHVuYVtiYnJldmlhdGVdIHVubG9bY2t2YXJdIHZlcmJbb3NlXSB2aW1ncmVwYVtkZF0gd05bZXh0XSB3aW5jW21kXSB3cSB4W2l0XSB4bm9yZW1lIHh3aW5pbmZvCitzeW4ga2V5d29yZCB2aW1Db21tYW5kIGNvbnRhaW5lZAlhbFtsXSBhcmdnW2xvYmFsXSBiW3VmZmVyXSBibFthc3RdIGJyZWFba10gYnVmZmVycyBjYWJjW2xlYXJdIGNiW3VmZmVyXSBjZVtudGVyXSBjZ2V0Ylt1ZmZlcl0gY2hpW3N0b3J5XSBjbltleHRdIGNvbSBjcFtyZXZpb3VzXSBjc3RhZyBkZWxjW29tbWFuZF0gZGVsZXRwIGRpW3NwbGF5XSBkaWZmc1twbGl0XSBkbGlbc3RdIGRzcFtsaXRdIGVjaG9tW3NnXSBlbmRmW3VuY3Rpb25dIGV4aVt0XSBmaWx0W2VyXSBmb1tsZF0gZnVbbmN0aW9uXSBndmltIGhlbHB0W2Fnc10gaWFiY1tsZWFyXSBpbnRybyBrIGxOW2V4dF0gbGFkZGZbaWxlXSBsY1tkXSBsZVtmdF0gbGdbZXRmaWxlXSBsaFtlbHBncmVwXSBsbWFrW2VdIGxvW2Fkdmlld10gbG9sW2Rlcl0gbHMgbHZbaW1ncmVwXSBtYWtbZV0gbWVzc2FnZXMgbWt2aWVbd10gbmJba2V5XSBub2Egbm9zW3dhcGZpbGVdIG9uW2x5XSBwYWNrbFtvYWRhbGxdIHBvW3BdIHBybyBwc1tlYXJjaF0gcHRsW2FzdF0gcHVbdF0gcHlkbyBxdWl0YVtsbF0gcmVkclthd10gcmV0dVtybl0gcnViW3ldIHNJIHNJbiBzYWxbbF0gc2JhW2xsXSBzYnBbcmV2aW91c10gc2NnIHNjcmlwdGVbbmNvZGluZ10gc2V0Z1tsb2JhbF0gc2dJIHNnbiBzaWMgc2ltW2FsdF0gc2xhW3N0XSBzbWlsZSBzb1t1cmNlXSBzcGVsbGlbbmZvXSBzciBzcmkgc3RhW2ddIHN0b3BpW25zZXJ0XSBzdXNbcGVuZF0gc3luYyB0YVtnXSB0YWJlW2RpdF0gdGFibltleHRdIHRhYnMgdGVbYXJvZmZdIHRtW2VudV0gdHJ5IHVuZG9qW29pbl0gdW5zW2lsZW50XSB2ZXJ0W2ljYWxdIHZpdVtzYWdlXSB3W3JpdGVdIHdpbmRvIHdxYVtsbF0geGFbbGxdIHhub3JlbWVudSB5W2Fua10KK3N5biBrZXl3b3JkIHZpbUNvbW1hbmQgY29udGFpbmVkCWFyW2dzXSBhcmdsW29jYWxdIGJhW2xsXSBibVtvZGlmaWVkXSBicmVha2FbZGRdIGJ1bltsb2FkXSBjYWRbZGJ1ZmZlcl0gY2JvW3R0b21dIGNleFtwcl0gY2dldGVbeHByXSBjbFtpc3RdIGNuZXdbZXJdIGNvbWNbbGVhcl0gY3BmW2lsZV0gY3VuYVtiYnJldl0gZGVsZWwgZGVsZlt1bmN0aW9uXSBkaWZbZnVwZGF0ZV0gZGlmZnRbaGlzXSBkbyBlW2RpdF0gZWNob24gZW5kZm9bcl0gZXh1W3NhZ2VdIGZpbltkXSBmb2xkY1tsb3NlXSBnIGhbZWxwXSBoaSBpZiBpc1tlYXJjaF0ga2VlW3BtYXJrc10gbE5mW2lsZV0gbGFuW2d1YWdlXSBsY2hbZGlyXSBsZWZ0YVtib3ZlXSAKIHN5biBtYXRjaCAgIHZpbUNvbW1hbmQgY29udGFpbmVkCSJcPHpbLSteLj1dXD1cPiIKIHN5biBrZXl3b3JkIHZpbVN0ZFBsdWdpbiBjb250YWluZWQJRGlmZk9yaWcgTWFuIE5bZXh0XSBQW3JpbnRdIFMgVE9odG1sIFhNTGVudCBYTUxucyAKIAogIiB2aW1PcHRpb25zIGFyZSBjYXVnaHQgb25seSB3aGVuIGNvbnRhaW5lZCBpbiBhIHZpbVNldCB7e3syCi1zeW4ga2V5d29yZCB2aW1PcHRpb24gY29udGFpbmVkCWFjZCBhbWJ3IGFyc2hhcGUgYmFja2dyb3VuZCBiYWxsb29uZXZhbCBiZyBib21iIGJzIGNiIGNoIGNpbm9wdGlvbnMgY21zIGNvbW1lbnRzdHJpbmcgY29weWluZGVudCBjc2NvcGVwYXRoY29tcCBjc3ByZyBjdWwgZGVmIGRpZmYgZGlzcGxheSBlZGNvbXBhdGlibGUgZW5jIGVycm9yYmVsbHMgZXhwYW5kdGFiIGZkbCBmZW5jIGZpbGVlbmNvZGluZ3MgZml4ZW9sIGZvbGRjbG9zZSBmb2xkbWFya2VyIGZvcm1hdGxpc3RwYXQgZ2NyIGdociBndWljdXJzb3IgZ3VpdGFibGFiZWwgaGkgaGttYXBwIGljb24gaW1hayBpbXMgaW5jc2VhcmNoIGluZmVyY2FzZSBpc2sga2V5bWFwIGxhbmdtZW51IGxpbmVzIGxtYXAgbHcgbWF0IG1heG1lbXBhdHRlcm4gbWlzIG1tdCBtb3VzZSBtb3VzZXNoYXBlIG16cXVhbnR1bSBvZGV2IG9zZmlsZXR5cGUgcGF0Y2hleHByIHBleHByIHBtYmZuIHByaW50ZW5jb2RpbmcgcHJvbXB0IHFlIHJlbGF0aXZlbnVtYmVyIHJpZ2h0bGVmdCBycyBydW50aW1lcGF0aCBzY3JvbGwgc2VjdGlvbnMgc2ggc2hlbGxzbGFzaCBzaG0gc2hvd21vZGUgc2ogc21kIHNwZWxsIHNwbGl0YmVsb3cgc3NsIHN0bCBzdyBzeGUgdGFicGFnZW1heCB0YWdzIHRicyB0ZXJtZ3VpY29sb3JzIHRnc3QgdGl0bGVvbGQgdG9wIHR0aW1lb3V0bGVuIHR0eXNjcm9sbCB1bCB1ciB2ZXJib3NlZmlsZSB2aXN1YWxiZWxsIHdjbSB3aSB3aWxkbWVudSB3aW5maXh3aWR0aCB3bSB3cmFwc2Nhbgotc3luIGtleXdvcmQgdmltT3B0aW9uIGNvbnRhaW5lZAlhaSBhbnRpIGF1dG9jaGRpciBiYWNrc3BhY2UgYmFsbG9vbmV4cHIgYmggYnJlYWthdCBic2RpciBjYyBjaGFyY29udmVydCBjaW53IGNvIGNvbXBhdGlibGUgY290IGNzY29wZXByZyBjc3FmIGN1cnNvcmJpbmQgZGVmaW5lIGRpZmZleHByIGR5IGVmIGVuY29kaW5nIGVycm9yZmlsZSBleHJjIGZkbHMgZmVuY3MgZmlsZWZvcm1hdCBmayBmb2xkY29sdW1uIGZvbGRtZXRob2QgZm9ybWF0b3B0aW9ucyBnZCBnbyBndWlmb250IGd1aXRhYnRvb2x0aXAgaGlkIGhrcCBpY29uc3RyaW5nIGltYyBpbXNlYXJjaCBpbmRlIGluc2VydG1vZGUgaXNrZXl3b3JkIGtleW1vZGVsIGxhbmdub3JlbWFwIGxpbmVzcGFjZSBsbnIgbHogbWF0Y2hwYWlycyBtYXhtZW10b3QgbWtzcGVsbG1lbSBtb2QgbW91c2VmIG1vdXNldCBuZiBvZnQgcGEgcGF0Y2htb2RlIHBmbiBwb3B0IHByaW50ZXhwciBwdCBxdW90ZWVzY2FwZSByZW1hcCByaWdodGxlZnRjbWQgcnRwIHNiIHNjcm9sbGJpbmQgc2VjdXJlIHNoY2Ygc2hlbGx0ZW1wIHNob3J0bWVzcyBzaG93dGFibGluZSBzbG0gc24gc3BlbGxjYXBjaGVjayBzcGxpdHJpZ2h0IHNzb3Agc3RtcCBzd2FwZmlsZSBzeHEgdGFic3RvcCB0YWdzdGFjayB0YyB0ZXJzZSB0aGVzYXVydXMgdGl0bGVzdHJpbmcgdHBtIHR0bSB0dHl0eXBlIHVuZG9kaXIgdXQgdmZpbGUgdm9wIHdkIHdpYyB3aWxkbW9kZSB3aW5oZWlnaHQgd21oIHdyaXRlCi1zeW4ga2V5d29yZCB2aW1PcHRpb24gY29udGFpbmVkCWFrbSBhbnRpYWxpYXMgYXV0b2luZGVudCBiYWNrdXAgYmRpciBiaW4gYnJlYWtpbmRlbnQgYnNrIGNjdiBjaSBjaW53b3JkcyBjb2N1IGNvbXBsZXRlIGNwIGNzY29wZXF1aWNrZml4IGNzcmUgY3Vyc29yY29sdW1uIGRlbGNvbWJpbmUgZGlmZm9wdCBlYSBlZm0gZW5kb2ZsaW5lIGVycm9yZm9ybWF0IGZjbCBmZG0gZmV4IGZpbGVmb3JtYXRzIGZrbWFwIGZvbGRlbmFibGUgZm9sZG1pbmxpbmVzIGZvcm1hdHByZyBnZGVmYXVsdCBncCBndWlmb250c2V0IGhlbHBmaWxlIGhpZGRlbiBobCBpZ25vcmVjYXNlIGltY21kbGluZSBpbXNmIGluZGVudGV4cHIgaXMgaXNwIGtleXdvcmRwcmcgbGFzdHN0YXR1cyBsaXNwIGxvYWRwbHVnaW5zIG1hIG1hdGNodGltZSBtY28gbWwgbW9kZWxpbmUgbW91c2Vmb2N1cyBtb3VzZXRpbWUgbnJmb3JtYXRzIG9mdSBwYWNrcGF0aCBwYXRoIHBoIHBwIHByaW50Zm9udCBwdW1oZWlnaHQgcmR0IHJlbmRlcm9wdGlvbnMgcmwgcnUgc2JvIHNjcm9sbGp1bXAgc2VsIHNoZWxsIHNoZWxsdHlwZSBzaG9ydG5hbWUgc2hxIHNtIHNvIHNwZWxsZmlsZSBzcHIgc3Qgc3RzIHN3YXBzeW5jIHN5biB0YWcgdGFsIHRjbGRsbCB0ZXh0YXV0byB0aWxkZW9wIHRsIHRyIHR0eSB0dyB1bmRvZmlsZSB2YiB2aSB3YSB3ZWlyZGludmVydCB3aWcgd2lsZG9wdGlvbnMgd2lubWluaGVpZ2h0IHdtbnUgd3JpdGVhbnkKLXN5biBrZXl3b3JkIHZpbU9wdGlvbiBjb250YWluZWQJYWwgYXIgYXV0b3JlYWQgYmFja3VwY29weSBiZGxheSBiaW5hcnkgYnJlYWtpbmRlbnRvcHQgYnQgY2QgY2luIGNsaXBib2FyZCBjb2xlIGNvbXBsZXRlZnVuYyBjcG8gY3Njb3BlcmVsYXRpdmUgY3N0IGN1cnNvcmxpbmUgZGV4IGRpZ3JhcGggZWFkIGVpIGVvbCBlc2NrZXlzIGZjcyBmZG4gZmYgZmlsZWlnbm9yZWNhc2UgZmxwIGZvbGRleHByIGZvbGRuZXN0bWF4IGZwIGdmbSBncmVwZm9ybWF0IGd1aWZvbnR3aWRlIGhlbHBoZWlnaHQgaGlnaGxpZ2h0IGhsZyBpbSBpbWQgaW1zdGF0dXNmdW5jIGluZGVudGtleXMgaXNmIGlzcHJpbnQga20gbGF6eXJlZHJhdyBsaXNwd29yZHMgbHBsIG1hY2F0c3VpIG1heGNvbWJpbmUgbWVmIG1scyBtb2RlbGluZXMgbW91c2VoaWRlIG1wIG51IG9tbmlmdW5jIHBhcmEgcGRldiBwaGVhZGVyIHByZXNlcnZlaW5kZW50IHByaW50aGVhZGVyIHB2aCByZSByZXBvcnQgcmxjIHJ1YnlkbGwgc2JyIHNjcm9sbG9mZiBzZWxlY3Rpb24gc2hlbGxjbWRmbGFnIHNoZWxseGVzY2FwZSBzaG93YnJlYWsgc2kgc21hcnRjYXNlIHNvZnR0YWJzdG9wIHNwZWxsbGFuZyBzcHMgc3RhIHN1IHN3YiBzeW5tYXhjb2wgdGFnYnNlYXJjaCB0YiB0ZW5jIHRleHRtb2RlIHRpbWVvdXQgdG0gdHMgdHR5YnVpbHRpbiB0eCB1bmRvbGV2ZWxzIHZicyB2aWV3ZGlyIHdhayB3Zmggd2lsZGNoYXIgd2ltIHdpbm1pbndpZHRoIHdtdyB3cml0ZWJhY2t1cAotc3luIGtleXdvcmQgdmltT3B0aW9uIGNvbnRhaW5lZAlhbGVwaCBhcmFiIGF1dG93cml0ZSBiYWNrdXBkaXIgYmVsbG9mZiBiayBicmkgYnVmaGlkZGVuIGNkcGF0aCBjaW5kZW50IGNtIGNvbG9yY29sdW1uIGNvbXBsZXRlb3B0IGNwb3B0aW9ucyBjc2NvcGV0YWcgY3N0byBjd2ggZGcgZGlwIGVhZGlyZWN0aW9uIGVrIGVwIGV0IGZkYyBmZG8gZmZzIGZpbGV0eXBlIGZtbCBmb2xkaWdub3JlIGZvbGRvcGVuIGZzIGdmbiBncmVwcHJnIGd1aWhlYWRyb29tIGhlbHBsYW5nIGhpc3RvcnkgaGxzIGltYWN0aXZhdGVmdW5jIGltZGlzYWJsZSBpbmMgaW5kayBpc2ZuYW1lIGpvaW5zcGFjZXMga21wIGxiciBsaXN0IGxzIG1hZ2ljIG1heGZ1bmNkZXB0aCBtZW51aXRlbXMgbW0gbW9kaWZpYWJsZSBtb3VzZW0gbXBzIG51bWJlciBvcGVuZGV2aWNlIHBhcmFncmFwaHMgcGVuYyBwaSBwcmV2aWV3aGVpZ2h0IHByaW50bWJjaGFyc2V0IHB2dyByZWFkb25seSByZXN0b3Jlc2NyZWVuIHJudSBydWYgc2Mgc2Nyb2xsb3B0IHNlbGVjdG1vZGUgc2hlbGxwaXBlIHNoZWxseHF1b3RlIHNob3djbWQgc2lkZXNjcm9sbCBzbWFydGluZGVudCBzb2wgc3BlbGxzdWdnZXN0IHNyIHN0YWwgc3VhIHN3ZiBzeW50YXggdGFnY2FzZSB0YmkgdGVybSB0ZXh0d2lkdGggdGltZW91dGxlbiB0byB0c2wgdHR5ZmFzdCB1YyB1bmRvcmVsb2FkIHZkaXIgdmlld29wdGlvbnMgd2FybiB3Zncgd2lsZGNoYXJtIHdpbmFsdGtleXMgd2lud2lkdGggd29wIHdyaXRlZGVsYXkKLXN5biBrZXl3b3JkIHZpbU9wdGlvbiBjb250YWluZWQJYWxsb3dyZXZpbnMgYXJhYmljIGF1dG93cml0ZWFsbCBiYWNrdXBleHQgYmV2YWwgYmtjIGJyaW9wdCBidWZsaXN0ZWQgY2VkaXQgY2luayBjbWRoZWlnaHQgY29sdW1ucyBjb25jZWFsY3Vyc29yIGNwdCBjc2NvcGV0YWdvcmRlciBjc3ZlcmIgZGVidWcgZGljdCBkaXIgZWIgZW1vIGVxdWFsYWx3YXlzIGV2ZW50aWdub3JlIGZkZSBmZHQgZmljIGZpbGxjaGFycyBmbXIgZm9sZGxldmVsIGZvbGR0ZXh0IGZzeW5jIGdmcyBndGwgZ3Vpb3B0aW9ucyBoZiBoayBobHNlYXJjaCBpbWFjdGl2YXRla2V5IGltaSBpbmNsdWRlIGluZXggaXNpIGpzIGtwIGxjcyBsaXN0Y2hhcnMgbHNwIG1ha2VlZiBtYXhtYXBkZXB0aCBtZmQgbW1kIG1vZGlmaWVkIG1vdXNlbW9kZWwgbXNtIG51bWJlcndpZHRoIG9wZXJhdG9yZnVuYyBwYXN0ZSBwZXJsZGxsIHBtIHByZXZpZXd3aW5kb3cgcHJpbnRtYmZvbnQgcHl0aG9uZGxsIHJlZHJhd3RpbWUgcmV2aW5zIHJvIHJ1bGVyIHNjYiBzY3Mgc2Vzc2lvbm9wdGlvbnMgc2hlbGxxdW90ZSBzaGlmdHJvdW5kIHNob3dmdWxsdGFnIHNpZGVzY3JvbGxvZmYgc21hcnR0YWIgc3Agc3BmIHNyciBzdGFydG9mbGluZSBzdWZmaXhlcyBzd2l0Y2hidWYgdGEgdGFnbGVuZ3RoIHRiaWRpIHRlcm1iaWRpIHRmIHRpdGxlIHRvb2xiYXIgdHNyIHR0eW0gdWRmIHVwZGF0ZWNvdW50IHZlIHZpbWluZm8gd2Igd2ggd2lsZGlnbm9yZSB3aW5kb3cgd2l2IHdyYXAgd3MKLXN5biBrZXl3b3JkIHZpbU9wdGlvbiBjb250YWluZWQJYWx0a2V5bWFwIGFyYWJpY3NoYXBlIGF3IGJhY2t1cHNraXAgYmV4IGJsIGJyayBidWZ0eXBlIGNmIGNpbmtleXMgY21kd2luaGVpZ2h0IGNvbSBjb25jZWFsbGV2ZWwgY3JiIGNzY29wZXZlcmJvc2UgY3VjIGRlY28gZGljdGlvbmFyeSBkaXJlY3RvcnkgZWQgZW1vamkgZXF1YWxwcmcgZXggZmRpIGZlbiBmaWxlZW5jb2RpbmcgZml4ZW5kb2ZsaW5lIGZvIGZvbGRsZXZlbHN0YXJ0IGZvcm1hdGV4cHIgZnQgZ2Z3IGd0dCBndWlwdHkgaGggaGttYXAgaWMgaW1hZiBpbWluc2VydCBpbmNsdWRlZXhwciBpbmYgaXNpZGVudCBrZXkgbGFuZ21hcCBsaW5lYnJlYWsgbG0gbHVhZGxsIG1ha2VwcmcgbWF4bWVtIG1oIG1tcCBtb3JlIG1vdXNlcyBtenEgbnV3IG9wZnVuYyBwYXN0ZXRvZ2dsZSBwZXggcG1iY3MgcHJpbnRkZXZpY2UgcHJpbnRvcHRpb25zIHB5dGhvbnRocmVlZGxsIHJlZ2V4cGVuZ2luZSByaSByb3AgcnVsZXJmb3JtYXQgc2NyIHNlY3Qgc2Z0IHNoZWxscmVkaXIgc2hpZnR3aWR0aCBzaG93bWF0Y2ggc2lzbyBzbWMgc3BjIHNwbCBzcyBzdGF0dXNsaW5lIHN1ZmZpeGVzYWRkIHN3cyB0YWJsaW5lIHRhZ3JlbGF0aXZlIHRiaXMgdGVybWVuY29kaW5nIHRnYyB0aXRsZWxlbiB0b29sYmFyaWNvbnNpemUgdHRpbWVvdXQgdHR5bW91c2UgdWRpciB1cGRhdGV0aW1lIHZlcmJvc2UgdmlydHVhbGVkaXQgd2Mgd2hpY2h3cmFwIHdpbGRpZ25vcmVjYXNlIHdpbmZpeGhlaWdodCB3aXcgd3JhcG1hcmdpbiB3dwotc3luIGtleXdvcmQgdmltT3B0aW9uIGNvbnRhaW5lZAlhbWJpd2lkdGggYXJpIGF3YSBiYWxsb29uZGVsYXkgYmV4cHIgYm8gYnJvd3NlZGlyIGNhc2VtYXAgY2Z1IGNpbm8gY21wIGNvbW1lbnRzIGNvbmZpcm0gY3J5cHRtZXRob2QgY3NwYyAKK3N5biBrZXl3b3JkIHZpbU9wdGlvbiBjb250YWluZWQJYWNkIGFtYncgYXJzaGFwZSBiYWNrZ3JvdW5kIGJhbGxvb25ldmFsIGJnIGJvbWIgYnMgY2IgY2ggY2lub3B0aW9ucyBjbXMgY29tbWVudHN0cmluZyBjb3B5aW5kZW50IGNzY29wZXBhdGhjb21wIGNzcHJnIGN1cnNvcmJpbmQgZGVsY29tYmluZSBkaWZmb3B0IGVhIGVmbSBlbmRvZmxpbmUgZXJyb3Jmb3JtYXQgZmNsIGZkbSBmZXggZmlsZWZvcm1hdHMgZmttYXAgZm9sZGVuYWJsZSBmb2xkbWlubGluZXMgZm9ybWF0cHJnIGdkZWZhdWx0IGdwIGd1aWZvbnRzZXQgaGVscGZpbGUgaGlkZGVuIGhsIGlnbm9yZWNhc2UgaW1jbWRsaW5lIGltc2YgaW5kZW50ZXhwciBpcyBpc3Aga2V5d29yZHByZyBsYXN0c3RhdHVzIGxpc3AgbG9hZHBsdWdpbnMgbWEgbWF0Y2h0aW1lIG1jbyBtbCBtb2RlbGluZSBtb3VzZWZvY3VzIG1vdXNldGltZSBucmZvcm1hdHMgb2Z1IHBhY2twYXRoIHBhdGggcGggcHAgcHJpbnRmb250IHB1bWhlaWdodCByZHQgcmVuZGVyb3B0aW9ucyBybCBydSBzYm8gc2Nyb2xsYmluZCBzZWN1cmUgc2hjZiBzaGVsbHRlbXAgc2hvcnRtZXNzIHNob3d0YWJsaW5lIHNqIHNtZCBzcGVsbCBzcGxpdGJlbG93IHNzbCBzdGwgc3cgc3hlIHRhYnBhZ2VtYXggdGFncyB0YnMgdGVybWd1aWNvbG9ycyB0Z3N0IHRpdGxlb2xkIHRvcCB0dGltZW91dGxlbiB0dHlzY3JvbGwgdWwgdXIgdmVyYm9zZWZpbGUgdmlzdWFsYmVsbCB3Y20gd2kgd2lsZG1lbnUgd2luZml4d2lkdGggd20gd3JhcHNjYW4KK3N5biBrZXl3b3JkIHZpbU9wdGlvbiBjb250YWluZWQJYWkgYW50aSBhdXRvY2hkaXIgYmFja3NwYWNlIGJhbGxvb25leHByIGJoIGJyZWFrYXQgYnNkaXIgY2MgY2hhcmNvbnZlcnQgY2ludyBjbyBjb21wYXRpYmxlIGNvdCBjc2NvcGVwcmcgY3NxZiBjdXJzb3Jjb2x1bW4gZGV4IGRpZ3JhcGggZWFkIGVpIGVvbCBlc2NrZXlzIGZjcyBmZG4gZmYgZmlsZWlnbm9yZWNhc2UgZmxwIGZvbGRleHByIGZvbGRuZXN0bWF4IGZwIGdmbSBncmVwZm9ybWF0IGd1aWZvbnR3aWRlIGhlbHBoZWlnaHQgaGlnaGxpZ2h0IGhsZyBpbSBpbWQgaW1zdGF0dXNmdW5jIGluZGVudGtleXMgaXNmIGlzcHJpbnQga20gbGF6eXJlZHJhdyBsaXNwd29yZHMgbHBsIG1hY2F0c3VpIG1heGNvbWJpbmUgbWVmIG1scyBtb2RlbGluZXMgbW91c2VoaWRlIG1wIG51IG9tbmlmdW5jIHBhcmEgcGRldiBwaGVhZGVyIHByZXNlcnZlaW5kZW50IHByaW50aGVhZGVyIHB2aCByZSByZXBvcnQgcmxjIHJ1YnlkbGwgc2JyIHNjcm9sbGp1bXAgc2VsIHNoZWxsIHNoZWxsdHlwZSBzaG9ydG5hbWUgc2hxIHNsbSBzbiBzcGVsbGNhcGNoZWNrIHNwbGl0cmlnaHQgc3NvcCBzdG1wIHN3YXBmaWxlIHN4cSB0YWJzdG9wIHRhZ3N0YWNrIHRjIHRlcnNlIHRoZXNhdXJ1cyB0aXRsZXN0cmluZyB0cG0gdHRtIHR0eXR5cGUgdW5kb2RpciB1dCB2ZmlsZSB2b3Agd2Qgd2ljIHdpbGRtb2RlIHdpbmhlaWdodCB3bWggd3JpdGUKK3N5biBrZXl3b3JkIHZpbU9wdGlvbiBjb250YWluZWQJYWttIGFudGlhbGlhcyBhdXRvaW5kZW50IGJhY2t1cCBiZGlyIGJpbiBicmVha2luZGVudCBic2sgY2N2IGNpIGNpbndvcmRzIGNvY3UgY29tcGxldGUgY3AgY3Njb3BlcXVpY2tmaXggY3NyZSBjdXJzb3JsaW5lIGRnIGRpcCBlYWRpcmVjdGlvbiBlayBlcCBldCBmZGMgZmRvIGZmcyBmaWxldHlwZSBmbWwgZm9sZGlnbm9yZSBmb2xkb3BlbiBmcyBnZm4gZ3JlcHByZyBndWloZWFkcm9vbSBoZWxwbGFuZyBoaXN0b3J5IGhscyBpbWFjdGl2YXRlZnVuYyBpbWRpc2FibGUgaW5jIGluZGsgaXNmbmFtZSBqb2luc3BhY2VzIGttcCBsYnIgbGlzdCBscyBtYWdpYyBtYXhmdW5jZGVwdGggbWVudWl0ZW1zIG1tIG1vZGlmaWFibGUgbW91c2VtIG1wcyBudW1iZXIgb3BlbmRldmljZSBwYXJhZ3JhcGhzIHBlbmMgcGkgcHJldmlld2hlaWdodCBwcmludG1iY2hhcnNldCBwdncgcmVhZG9ubHkgcmVzdG9yZXNjcmVlbiBybnUgcnVmIHNjIHNjcm9sbG9mZiBzZWxlY3Rpb24gc2hlbGxjbWRmbGFnIHNoZWxseGVzY2FwZSBzaG93YnJlYWsgc2kgc20gc28gc3BlbGxmaWxlIHNwciBzdCBzdHMgc3dhcHN5bmMgc3luIHRhZyB0YWwgdGNsZGxsIHRleHRhdXRvIHRpbGRlb3AgdGwgdHIgdHR5IHR3IHVuZG9maWxlIHZiIHZpIHdhIHdlaXJkaW52ZXJ0IHdpZyB3aWxkb3B0aW9ucyB3aW5taW5oZWlnaHQgd21udSB3cml0ZWFueQorc3luIGtleXdvcmQgdmltT3B0aW9uIGNvbnRhaW5lZAlhbCBhciBhdXRvcmVhZCBiYWNrdXBjb3B5IGJkbGF5IGJpbmFyeSBicmVha2luZGVudG9wdCBidCBjZCBjaW4gY2xpcGJvYXJkIGNvbGUgY29tcGxldGVmdW5jIGNwbyBjc2NvcGVyZWxhdGl2ZSBjc3QgY3doIGRpY3QgZGlyIGViIGVtbyBlcXVhbGFsd2F5cyBldmVudGlnbm9yZSBmZGUgZmR0IGZpYyBmaWxsY2hhcnMgZm1yIGZvbGRsZXZlbCBmb2xkdGV4dCBmc3luYyBnZnMgZ3RsIGd1aW9wdGlvbnMgaGYgaGsgaGxzZWFyY2ggaW1hY3RpdmF0ZWtleSBpbWkgaW5jbHVkZSBpbmV4IGlzaSBqcyBrcCBsY3MgbGlzdGNoYXJzIGxzcCBtYWtlZWYgbWF4bWFwZGVwdGggbWZkIG1tZCBtb2RpZmllZCBtb3VzZW1vZGVsIG1zbSBudW1iZXJ3aWR0aCBvcGVyYXRvcmZ1bmMgcGFzdGUgcGVybGRsbCBwbSBwcmV2aWV3d2luZG93IHByaW50bWJmb250IHB5dGhvbmRsbCByZWRyYXd0aW1lIHJldmlucyBybyBydWxlciBzY2Igc2Nyb2xsb3B0IHNlbGVjdG1vZGUgc2hlbGxwaXBlIHNoZWxseHF1b3RlIHNob3djbWQgc2lkZXNjcm9sbCBzbWFydGNhc2Ugc29mdHRhYnN0b3Agc3BlbGxsYW5nIHNwcyBzdGEgc3Ugc3diIHN5bm1heGNvbCB0YWdic2VhcmNoIHRiIHRlbmMgdGV4dG1vZGUgdGltZW91dCB0bSB0cyB0dHlidWlsdGluIHR4IHVuZG9sZXZlbHMgdmJzIHZpZXdkaXIgd2FrIHdmaCB3aWxkY2hhciB3aW0gd2lubWlud2lkdGggd213IHdyaXRlYmFja3VwCitzeW4ga2V5d29yZCB2aW1PcHRpb24gY29udGFpbmVkCWFsZXBoIGFyYWIgYXV0b3dyaXRlIGJhY2t1cGRpciBiZWxsb2ZmIGJrIGJyaSBidWZoaWRkZW4gY2RwYXRoIGNpbmRlbnQgY20gY29sb3Jjb2x1bW4gY29tcGxldGVvcHQgY3BvcHRpb25zIGNzY29wZXRhZyBjc3RvIGRlYnVnIGRpY3Rpb25hcnkgZGlyZWN0b3J5IGVkIGVtb2ppIGVxdWFscHJnIGV4IGZkaSBmZW4gZmlsZWVuY29kaW5nIGZpeGVuZG9mbGluZSBmbyBmb2xkbGV2ZWxzdGFydCBmb3JtYXRleHByIGZ0IGdmdyBndHQgZ3VpcHR5IGhoIGhrbWFwIGljIGltYWYgaW1pbnNlcnQgaW5jbHVkZWV4cHIgaW5mIGlzaWRlbnQga2V5IGxhbmdtYXAgbGluZWJyZWFrIGxtIGx1YWRsbCBtYWtlcHJnIG1heG1lbSBtaCBtbXAgbW9yZSBtb3VzZXMgbXpxIG51dyBvcGZ1bmMgcGFzdGV0b2dnbGUgcGV4IHBtYmNzIHByaW50ZGV2aWNlIHByaW50b3B0aW9ucyBweXRob250aHJlZWRsbCByZWdleHBlbmdpbmUgcmkgcm9wIHJ1bGVyZm9ybWF0IHNjbCBzY3Mgc2Vzc2lvbm9wdGlvbnMgc2hlbGxxdW90ZSBzaGlmdHJvdW5kIHNob3dmdWxsdGFnIHNpZGVzY3JvbGxvZmYgc21hcnRpbmRlbnQgc29sIHNwZWxsc3VnZ2VzdCBzciBzdGFsIHN1YSBzd2Ygc3ludGF4IHRhZ2Nhc2UgdGJpIHRlcm0gdGV4dHdpZHRoIHRpbWVvdXRsZW4gdG8gdHNsIHR0eWZhc3QgdWMgdW5kb3JlbG9hZCB2ZGlyIHZpZXdvcHRpb25zIHdhcm4gd2Z3IHdpbGRjaGFybSB3aW5hbHRrZXlzIHdpbndpZHRoIHdvcCB3cml0ZWRlbGF5CitzeW4ga2V5d29yZCB2aW1PcHRpb24gY29udGFpbmVkCWFsbG93cmV2aW5zIGFyYWJpYyBhdXRvd3JpdGVhbGwgYmFja3VwZXh0IGJldmFsIGJrYyBicmlvcHQgYnVmbGlzdGVkIGNlZGl0IGNpbmsgY21kaGVpZ2h0IGNvbHVtbnMgY29uY2VhbGN1cnNvciBjcHQgY3Njb3BldGFnb3JkZXIgY3N2ZXJiIGRlY28gZGlmZiBkaXNwbGF5IGVkY29tcGF0aWJsZSBlbmMgZXJyb3JiZWxscyBleHBhbmR0YWIgZmRsIGZlbmMgZmlsZWVuY29kaW5ncyBmaXhlb2wgZm9sZGNsb3NlIGZvbGRtYXJrZXIgZm9ybWF0bGlzdHBhdCBnY3IgZ2hyIGd1aWN1cnNvciBndWl0YWJsYWJlbCBoaSBoa21hcHAgaWNvbiBpbWFrIGltcyBpbmNzZWFyY2ggaW5mZXJjYXNlIGlzayBrZXltYXAgbGFuZ21lbnUgbGluZXMgbG1hcCBsdyBtYXQgbWF4bWVtcGF0dGVybiBtaXMgbW10IG1vdXNlIG1vdXNlc2hhcGUgbXpxdWFudHVtIG9kZXYgb3NmaWxldHlwZSBwYXRjaGV4cHIgcGV4cHIgcG1iZm4gcHJpbnRlbmNvZGluZyBwcm9tcHQgcWUgcmVsYXRpdmVudW1iZXIgcmlnaHRsZWZ0IHJzIHJ1bnRpbWVwYXRoIHNjciBzZWN0IHNmdCBzaGVsbHJlZGlyIHNoaWZ0d2lkdGggc2hvd21hdGNoIHNpZ25jb2x1bW4gc21hcnR0YWIgc3Agc3BmIHNyciBzdGFydG9mbGluZSBzdWZmaXhlcyBzd2l0Y2hidWYgdGEgdGFnbGVuZ3RoIHRiaWRpIHRlcm1iaWRpIHRmIHRpdGxlIHRvb2xiYXIgdHNyIHR0eW0gdWRmIHVwZGF0ZWNvdW50IHZlIHZpbWluZm8gd2Igd2ggd2lsZGlnbm9yZSB3aW5kb3cgd2l2IHdyYXAgd3MKK3N5biBrZXl3b3JkIHZpbU9wdGlvbiBjb250YWluZWQJYWx0a2V5bWFwIGFyYWJpY3NoYXBlIGF3IGJhY2t1cHNraXAgYmV4IGJsIGJyayBidWZ0eXBlIGNmIGNpbmtleXMgY21kd2luaGVpZ2h0IGNvbSBjb25jZWFsbGV2ZWwgY3JiIGNzY29wZXZlcmJvc2UgY3VjIGRlZiBkaWZmZXhwciBkeSBlZiBlbmNvZGluZyBlcnJvcmZpbGUgZXhyYyBmZGxzIGZlbmNzIGZpbGVmb3JtYXQgZmsgZm9sZGNvbHVtbiBmb2xkbWV0aG9kIGZvcm1hdG9wdGlvbnMgZ2QgZ28gZ3VpZm9udCBndWl0YWJ0b29sdGlwIGhpZCBoa3AgaWNvbnN0cmluZyBpbWMgaW1zZWFyY2ggaW5kZSBpbnNlcnRtb2RlIGlza2V5d29yZCBrZXltb2RlbCBsYW5nbm9yZW1hcCBsaW5lc3BhY2UgbG5yIGx6IG1hdGNocGFpcnMgbWF4bWVtdG90IG1rc3BlbGxtZW0gbW9kIG1vdXNlZiBtb3VzZXQgbmYgb2Z0IHBhIHBhdGNobW9kZSBwZm4gcG9wdCBwcmludGV4cHIgcHQgcXVvdGVlc2NhcGUgcmVtYXAgcmlnaHRsZWZ0Y21kIHJ0cCBzYiBzY3JvbGwgc2VjdGlvbnMgc2ggc2hlbGxzbGFzaCBzaG0gc2hvd21vZGUgc2lzbyBzbWMgc3BjIHNwbCBzcyBzdGF0dXNsaW5lIHN1ZmZpeGVzYWRkIHN3cyB0YWJsaW5lIHRhZ3JlbGF0aXZlIHRiaXMgdGVybWVuY29kaW5nIHRnYyB0aXRsZWxlbiB0b29sYmFyaWNvbnNpemUgdHRpbWVvdXQgdHR5bW91c2UgdWRpciB1cGRhdGV0aW1lIHZlcmJvc2UgdmlydHVhbGVkaXQgd2Mgd2hpY2h3cmFwIHdpbGRpZ25vcmVjYXNlIHdpbmZpeGhlaWdodCB3aXcgd3JhcG1hcmdpbiB3dworc3luIGtleXdvcmQgdmltT3B0aW9uIGNvbnRhaW5lZAlhbWJpd2lkdGggYXJpIGF3YSBiYWxsb29uZGVsYXkgYmV4cHIgYm8gYnJvd3NlZGlyIGNhc2VtYXAgY2Z1IGNpbm8gY21wIGNvbW1lbnRzIGNvbmZpcm0gY3J5cHRtZXRob2QgY3NwYyBjdWwgZGVmaW5lIAogCiAiIHZpbU9wdGlvbnM6IFRoZXNlIGFyZSB0aGUgdHVybi1vZmYgc2V0dGluZyB2YXJpYW50cyB7e3syCiBzeW4ga2V5d29yZCB2aW1PcHRpb24gY29udGFpbmVkCW5vYWNkIG5vYWxsb3dyZXZpbnMgbm9hbnRpYWxpYXMgbm9hcmFiaWMgbm9hcnNoYXBlIG5vYXV0b3JlYWQgbm9hdyBub2JhbGxvb25ldmFsIG5vYmluYXJ5IG5vYm9tYiBub2J1Zmxpc3RlZCBub2NpbiBub2NvbmZpcm0gbm9jcmIgbm9jc2NvcGV2ZXJib3NlIG5vY3N2ZXJiIG5vY3Vyc29yYmluZCBub2RlY28gbm9kaWZmIG5vZWIgbm9layBub2VuZG9mbGluZSBub2Vycm9yYmVsbHMgbm9leCBub2ZlbiBub2ZpeGVuZG9mbGluZSBub2ZrbWFwIG5vZnN5bmMgbm9ndWlwdHkgbm9oayBub2hrcCBub2ljIG5vaW0gbm9pbWQgbm9pbmYgbm9pbnNlcnRtb2RlIG5vam9pbnNwYWNlcyBub2xhbmdub3JlbWFwIG5vbGJyIG5vbGlzcCBub2xuciBub2xwbCBub21hIG5vbWFnaWMgbm9tbCBub21vZGVsaW5lIG5vbW9kaWZpZWQgbm9tb3VzZWYgbm9tb3VzZWhpZGUgbm9udW1iZXIgbm9vcGVuZGV2aWNlIG5vcGkgbm9wcmV2aWV3d2luZG93IG5vcHZ3IG5vcmVsYXRpdmVudW1iZXIgbm9yZXN0b3Jlc2NyZWVuIG5vcmkgbm9ybCBub3JvIG5vcnUgbm9zYiBub3NjYiBub3NjcyBub3NmdCBub3NoZWxsdGVtcCBub3Nob3J0bmFtZSBub3Nob3dmdWxsdGFnIG5vc2hvd21vZGUgbm9zbSBub3NtYXJ0aW5kZW50IG5vc21kIG5vc29sIG5vc3BsaXRiZWxvdyBub3NwciBub3NzbCBub3N0YXJ0b2ZsaW5lIG5vc3dhcGZpbGUgbm90YSBub3RhZ3JlbGF0aXZlIG5vdGJpIG5vdGJzIG5vdGVyc2Ugbm90ZXh0bW9kZSBub3Rnc3Qgbm90aW1lb3V0IG5vdG8gbm90ciBub3R0eWJ1aWx0aW4gbm90eCBub3VuZG9maWxlIG5vdmlzdWFsYmVsbCBub3dhcm4gbm93ZWlyZGludmVydCBub3dmdyBub3dpbGRpZ25vcmVjYXNlIG5vd2luZml4aGVpZ2h0IG5vd2l2IG5vd3JhcCBub3dyaXRlIG5vd3JpdGViYWNrdXAKQEAgLTY1LDIxICs2NSwyMSBAQAogCiAiIEF1dG9DbWQgRXZlbnRzIHt7ezIKIHN5biBjYXNlIGlnbm9yZQotc3luIGtleXdvcmQgdmltQXV0b0V2ZW50IGNvbnRhaW5lZAlCdWZBZGQgQnVmQ3JlYXRlIEJ1ZkRlbGV0ZSBCdWZFbnRlciBCdWZGaWxlUG9zdCBCdWZGaWxlUHJlIEJ1ZkhpZGRlbiBCdWZMZWF2ZSBCdWZOZXcgQnVmTmV3RmlsZSBCdWZSZWFkIEJ1ZlJlYWRDbWQgQnVmUmVhZFBvc3QgQnVmUmVhZFByZSBCdWZVbmxvYWQgQnVmV2luRW50ZXIgQnVmV2luTGVhdmUgQnVmV2lwZW91dCBCdWZXcml0ZSBCdWZXcml0ZUNtZCBCdWZXcml0ZVBvc3QgQnVmV3JpdGVQcmUgQ21kVW5kZWZpbmVkIENtZHdpbkVudGVyIENtZHdpbkxlYXZlIENvbG9yU2NoZW1lIENvbXBsZXRlRG9uZSBDdXJzb3JIb2xkIEN1cnNvckhvbGRJIEN1cnNvck1vdmVkIEN1cnNvck1vdmVkSSBFbmNvZGluZ0NoYW5nZWQgRmlsZUFwcGVuZENtZCBGaWxlQXBwZW5kUG9zdCBGaWxlQXBwZW5kUHJlIEZpbGVDaGFuZ2VkUk8gRmlsZUNoYW5nZWRTaGVsbCBGaWxlQ2hhbmdlZFNoZWxsUG9zdCBGaWxlRW5jb2RpbmcgRmlsZVJlYWRDbWQgRmlsZVJlYWRQb3N0IEZpbGVSZWFkUHJlIEZpbGVUeXBlIEZpbGVXcml0ZUNtZCBGaWxlV3JpdGVQb3N0IEZpbGVXcml0ZVByZSBGaWx0ZXJSZWFkUG9zdCBGaWx0ZXJSZWFkUHJlIEZpbHRlcldyaXRlUG9zdCBGaWx0ZXJXcml0ZVByZSBGb2N1c0dhaW5lZCBGb2N1c0xvc3QgRnVuY1VuZGVmaW5lZCBHVUlFbnRlciBHVUlGYWlsZWQgSW5zZXJ0Q2hhbmdlIEluc2VydENoYXJQcmUgSW5zZXJ0RW50ZXIgSW5zZXJ0TGVhdmUgTWVudVBvcHVwIE9wdGlvblNldCBRdWlja0ZpeENtZFBvc3QgUXVpY2tGaXhDbWRQcmUgUXVpdFByZSBSZW1vdGVSZXBseSBTZXNzaW9uTG9hZFBvc3QgU2hlbGxDbWRQb3N0IFNoZWxsRmlsdGVyUG9zdCBTb3VyY2VDbWQgU291cmNlUHJlIFNwZWxsRmlsZU1pc3NpbmcgU3RkaW5SZWFkUG9zdCBTdGRpblJlYWRQcmUgU3dhcEV4aXN0cyBTeW50YXggVGFiRW50ZXIgVGFiTGVhdmUgVGVybUNoYW5nZWQgVGVybVJlc3BvbnNlIFRleHRDaGFuZ2VkIFRleHRDaGFuZ2VkSSBVc2VyIFZpbUVudGVyIFZpbUxlYXZlIFZpbUxlYXZlUHJlIFZpbVJlc2l6ZWQgV2luRW50ZXIgV2luTGVhdmUgCitzeW4ga2V5d29yZCB2aW1BdXRvRXZlbnQgY29udGFpbmVkCUJ1ZkFkZCBCdWZDcmVhdGUgQnVmRGVsZXRlIEJ1ZkVudGVyIEJ1ZkZpbGVQb3N0IEJ1ZkZpbGVQcmUgQnVmSGlkZGVuIEJ1ZkxlYXZlIEJ1Zk5ldyBCdWZOZXdGaWxlIEJ1ZlJlYWQgQnVmUmVhZENtZCBCdWZSZWFkUG9zdCBCdWZSZWFkUHJlIEJ1ZlVubG9hZCBCdWZXaW5FbnRlciBCdWZXaW5MZWF2ZSBCdWZXaXBlb3V0IEJ1ZldyaXRlIEJ1ZldyaXRlQ21kIEJ1ZldyaXRlUG9zdCBCdWZXcml0ZVByZSBDbWRVbmRlZmluZWQgQ21kd2luRW50ZXIgQ21kd2luTGVhdmUgQ29sb3JTY2hlbWUgQ29tcGxldGVEb25lIEN1cnNvckhvbGQgQ3Vyc29ySG9sZEkgQ3Vyc29yTW92ZWQgQ3Vyc29yTW92ZWRJIEVuY29kaW5nQ2hhbmdlZCBGaWxlQXBwZW5kQ21kIEZpbGVBcHBlbmRQb3N0IEZpbGVBcHBlbmRQcmUgRmlsZUNoYW5nZWRSTyBGaWxlQ2hhbmdlZFNoZWxsIEZpbGVDaGFuZ2VkU2hlbGxQb3N0IEZpbGVFbmNvZGluZyBGaWxlUmVhZENtZCBGaWxlUmVhZFBvc3QgRmlsZVJlYWRQcmUgRmlsZVR5cGUgRmlsZVdyaXRlQ21kIEZpbGVXcml0ZVBvc3QgRmlsZVdyaXRlUHJlIEZpbHRlclJlYWRQb3N0IEZpbHRlclJlYWRQcmUgRmlsdGVyV3JpdGVQb3N0IEZpbHRlcldyaXRlUHJlIEZvY3VzR2FpbmVkIEZvY3VzTG9zdCBGdW5jVW5kZWZpbmVkIEdVSUVudGVyIEdVSUZhaWxlZCBJbnNlcnRDaGFuZ2UgSW5zZXJ0Q2hhclByZSBJbnNlcnRFbnRlciBJbnNlcnRMZWF2ZSBNZW51UG9wdXAgT3B0aW9uU2V0IFF1aWNrRml4Q21kUG9zdCBRdWlja0ZpeENtZFByZSBRdWl0UHJlIFJlbW90ZVJlcGx5IFNlc3Npb25Mb2FkUG9zdCBTaGVsbENtZFBvc3QgU2hlbGxGaWx0ZXJQb3N0IFNvdXJjZUNtZCBTb3VyY2VQcmUgU3BlbGxGaWxlTWlzc2luZyBTdGRpblJlYWRQb3N0IFN0ZGluUmVhZFByZSBTd2FwRXhpc3RzIFN5bnRheCBUYWJDbG9zZWQgVGFiRW50ZXIgVGFiTGVhdmUgVGFiTmV3IFRlcm1DaGFuZ2VkIFRlcm1SZXNwb25zZSBUZXh0Q2hhbmdlZCBUZXh0Q2hhbmdlZEkgVXNlciBWaW1FbnRlciBWaW1MZWF2ZSBWaW1MZWF2ZVByZSBWaW1SZXNpemVkIFdpbkVudGVyIFdpbkxlYXZlIFdpbk5ldyAKIAogIiBIaWdobGlnaHQgY29tbW9ubHkgdXNlZCBHcm91cG5hbWVzIHt7ezIKIHN5biBrZXl3b3JkIHZpbUdyb3VwIGNvbnRhaW5lZAlDb21tZW50IENvbnN0YW50IFN0cmluZyBDaGFyYWN0ZXIgTnVtYmVyIEJvb2xlYW4gRmxvYXQgSWRlbnRpZmllciBGdW5jdGlvbiBTdGF0ZW1lbnQgQ29uZGl0aW9uYWwgUmVwZWF0IExhYmVsIE9wZXJhdG9yIEtleXdvcmQgRXhjZXB0aW9uIFByZVByb2MgSW5jbHVkZSBEZWZpbmUgTWFjcm8gUHJlQ29uZGl0IFR5cGUgU3RvcmFnZUNsYXNzIFN0cnVjdHVyZSBUeXBlZGVmIFNwZWNpYWwgU3BlY2lhbENoYXIgVGFnIERlbGltaXRlciBTcGVjaWFsQ29tbWVudCBEZWJ1ZyBVbmRlcmxpbmVkIElnbm9yZSBFcnJvciBUb2RvIAogCiAiIERlZmF1bHQgaGlnaGxpZ2h0aW5nIGdyb3VwcyB7e3syCi1zeW4ga2V5d29yZCB2aW1ITEdyb3VwIGNvbnRhaW5lZAlDb2xvckNvbHVtbiBDdXJzb3IgQ3Vyc29yQ29sdW1uIEN1cnNvcklNIEN1cnNvckxpbmUgQ3Vyc29yTGluZU5yIERpZmZBZGQgRGlmZkNoYW5nZSBEaWZmRGVsZXRlIERpZmZUZXh0IERpcmVjdG9yeSBFcnJvck1zZyBGb2xkQ29sdW1uIEZvbGRlZCBJbmNTZWFyY2ggTGluZU5yIE1hdGNoUGFyZW4gTWVudSBNb2RlTXNnIE1vcmVNc2cgTm9uVGV4dCBOb3JtYWwgUG1lbnUgUG1lbnVTYmFyIFBtZW51U2VsIFBtZW51VGh1bWIgUXVlc3Rpb24gU2Nyb2xsYmFyIFNlYXJjaCBTaWduQ29sdW1uIFNwZWNpYWxLZXkgU3BlbGxCYWQgU3BlbGxDYXAgU3BlbGxMb2NhbCBTcGVsbFJhcmUgU3RhdHVzTGluZSBTdGF0dXNMaW5lTkMgVGFiTGluZSBUYWJMaW5lRmlsbCBUYWJMaW5lU2VsIFRpdGxlIFRvb2x0aXAgVmVydFNwbGl0IFZpc3VhbCBWaXN1YWxOT1MgV2FybmluZ01zZyBXaWxkTWVudSAKK3N5biBrZXl3b3JkIHZpbUhMR3JvdXAgY29udGFpbmVkCUNvbG9yQ29sdW1uIEN1cnNvciBDdXJzb3JDb2x1bW4gQ3Vyc29ySU0gQ3Vyc29yTGluZSBDdXJzb3JMaW5lTnIgRGlmZkFkZCBEaWZmQ2hhbmdlIERpZmZEZWxldGUgRGlmZlRleHQgRGlyZWN0b3J5IEVuZE9mQnVmZmVyIEVycm9yTXNnIEZvbGRDb2x1bW4gRm9sZGVkIEluY1NlYXJjaCBMaW5lTnIgTWF0Y2hQYXJlbiBNZW51IE1vZGVNc2cgTW9yZU1zZyBOb25UZXh0IE5vcm1hbCBQbWVudSBQbWVudVNiYXIgUG1lbnVTZWwgUG1lbnVUaHVtYiBRdWVzdGlvbiBTY3JvbGxiYXIgU2VhcmNoIFNpZ25Db2x1bW4gU3BlY2lhbEtleSBTcGVsbEJhZCBTcGVsbENhcCBTcGVsbExvY2FsIFNwZWxsUmFyZSBTdGF0dXNMaW5lIFN0YXR1c0xpbmVOQyBUYWJMaW5lIFRhYkxpbmVGaWxsIFRhYkxpbmVTZWwgVGl0bGUgVG9vbHRpcCBWZXJ0U3BsaXQgVmlzdWFsIFZpc3VhbE5PUyBXYXJuaW5nTXNnIFdpbGRNZW51IAogc3luIG1hdGNoIHZpbUhMR3JvdXAgY29udGFpbmVkCSJDb25jZWFsIgogc3luIGNhc2UgbWF0Y2gKIAogIiBGdW5jdGlvbiBOYW1lcyB7e3syCi1zeW4ga2V5d29yZCB2aW1GdW5jTmFtZSBjb250YWluZWQJYWJzIGFwcGVuZCBhcmd2IGFzc2VydF9mYWlscyBhc3NlcnRfbm90bWF0Y2ggYnJvd3NlIGJ1ZmxvYWRlZCBidWZ3aW5uciBjYWxsIGNoX2Nsb3NlIGNoX2dldGpvYiBjaF9vcGVuIGNoX3NlbmRyYXcgY2xlYXJtYXRjaGVzIGNvbXBsZXRlX2NoZWNrIGNvc2ggZGVlcGNvcHkgZGlmZl9obElEIGV2ZW50aGFuZGxlciBleHAgZmlsZXJlYWRhYmxlIGZpbmRmaWxlIGZuYW1lZXNjYXBlIGZvbGRsZXZlbCBmdW5jdGlvbiBnZXRidWZ2YXIgZ2V0Y21kbGluZSBnZXRjdXJwb3MgZ2V0ZnNpemUgZ2V0bG9jbGlzdCBnZXRxZmxpc3QgZ2V0dGFid2ludmFyIGdldHdpbnZhciBnbG9icGF0aCBoYXNsb2NhbGRpciBoaXN0ZGVsIGhsZXhpc3RzIGljb252IGlucHV0IGlucHV0cmVzdG9yZSBpbnNlcnQgaXNsb2NrZWQgam9iX2dldGNoYW5uZWwgam9iX3N0YXJ0IGpvaW4ganNvbl9kZWNvZGUgbGVuIGxpbmUgbG9jYWx0aW1lIGx1YWV2YWwgbWFwY2hlY2sgbWF0Y2hhZGRwb3MgbWF0Y2hlbmQgbWF0Y2hzdHJwb3MgbWtkaXIgbmV4dG5vbmJsYW5rIHBhdGhzaG9ydGVuIHByZXZub25ibGFuayBweTNldmFsIHJlYWRmaWxlIHJlbHRpbWVzdHIgcmVtb3RlX3BlZWsgcmVtb3ZlIHJlc29sdmUgc2NyZWVuYXR0ciBzY3JlZW5yb3cgc2VhcmNocGFpciBzZXJ2ZXIyY2xpZW50IHNldGNoYXJzZWFyY2ggc2V0bGluZSBzZXRwb3Mgc2V0dGFidmFyIHNoYTI1NiBzaW1wbGlmeSBzb3J0IHNwZWxsc3VnZ2VzdCBzdHIyZmxvYXQgc3RyY2hhcnMgc3RyZ2V0Y2hhciBzdHJsZW4gc3RydHJhbnMgc3Vic3RpdHV0ZSBzeW5JRGF0dHIgc3lzdGVtIHRhYnBhZ2VuciB0YWdsaXN0IHRlbXBuYW1lIHRlc3RfZ2FyYmFnZWNvbGxlY3Rfbm93IHRlc3RfbnVsbF9qb2IgdGVzdF9udWxsX3N0cmluZyB0aW1lcl9zdG9wIHRyIHVuZG9maWxlIHZhbHVlcyB3aWxkbWVudW1vZGUgd2luX2ZpbmRidWYgd2luaGVpZ2h0IHdpbmxpbmUgd2lucmVzdHZpZXcgd29yZGNvdW50Ci1zeW4ga2V5d29yZCB2aW1GdW5jTmFtZSBjb250YWluZWQJYWNvcyBhcmdjIGFzaW4gYXNzZXJ0X2ZhbHNlIGFzc2VydF90cnVlIGJyb3dzZWRpciBidWZuYW1lIGJ5dGUybGluZSBjZWlsIGNoX2V2YWxleHByIGNoX2luZm8gY2hfcmVhZCBjaF9zZXRvcHRpb25zIGNvbCBjb25maXJtIGNvdW50IGRlbGV0ZSBlbXB0eSBleGVjdXRhYmxlIGV4cGFuZCBmaWxld3JpdGFibGUgZmxvYXQybnIgZm5hbWVtb2RpZnkgZm9sZHRleHQgZ2FyYmFnZWNvbGxlY3QgZ2V0Y2hhciBnZXRjbWRwb3MgZ2V0Y3dkIGdldGZ0aW1lIGdldG1hdGNoZXMgZ2V0cmVnIGdldHdpbnBvc3ggZ2xvYiBoYXMgaGFzbWFwdG8gaGlzdGdldCBobElEIGluZGVudCBpbnB1dGRpYWxvZyBpbnB1dHNhdmUgaW52ZXJ0IGlzbmFuIGpvYl9pbmZvIGpvYl9zdGF0dXMganNfZGVjb2RlIGpzb25fZW5jb2RlIGxpYmNhbGwgbGluZTJieXRlIGxvZyBtYXAgbWF0Y2ggbWF0Y2hhcmcgbWF0Y2hsaXN0IG1heCBtb2RlIG5yMmNoYXIgcGVybGV2YWwgcHJpbnRmIHB5ZXZhbCByZWx0aW1lIHJlbW90ZV9leHByIHJlbW90ZV9yZWFkIHJlbmFtZSByZXZlcnNlIHNjcmVlbmNoYXIgc2VhcmNoIHNlYXJjaHBhaXJwb3Mgc2VydmVybGlzdCBzZXRjbWRwb3Mgc2V0bG9jbGlzdCBzZXRxZmxpc3Qgc2V0dGFid2ludmFyIHNoZWxsZXNjYXBlIHNpbiBzb3VuZGZvbGQgc3BsaXQgc3RyMm5yIHN0cmRpc3BsYXl3aWR0aCBzdHJpZHggc3RycGFydCBzdHJ3aWR0aCBzeW5jb25jZWFsZWQgc3luSUR0cmFucyBzeXN0ZW1saXN0IHRhYnBhZ2V3aW5uciB0YW4gdGVzdF9hbGxvY19mYWlsIHRlc3RfbnVsbF9jaGFubmVsIHRlc3RfbnVsbF9saXN0IHRlc3Rfc2V0dGltZSB0b2xvd2VyIHRydW5jIHVuZG90cmVlIHZpcnRjb2wgd2luYnVmbnIgd2luX2dldGlkIHdpbl9pZDJ0YWJ3aW4gd2lubnIgd2luc2F2ZXZpZXcgd3JpdGVmaWxlCi1zeW4ga2V5d29yZCB2aW1GdW5jTmFtZSBjb250YWluZWQJYWRkIGFyZ2lkeCBhc3NlcnRfZXF1YWwgYXNzZXJ0X21hdGNoIGF0YW4gYnVmZXhpc3RzIGJ1Zm5yIGJ5dGVpZHggY2hhbmdlbnIgY2hfZXZhbHJhdyBjaF9sb2cgY2hfcmVhZHJhdyBjaF9zdGF0dXMgY29tcGxldGUgY29weSBjc2NvcGVfY29ubmVjdGlvbiBkaWRfZmlsZXR5cGUgZXNjYXBlIGV4ZXBhdGggZXh0ZW5kIGZpbHRlciBmbG9vciBmb2xkY2xvc2VkIGZvbGR0ZXh0cmVzdWx0IGdldCBnZXRjaGFybW9kIGdldGNtZHR5cGUgZ2V0Zm9udG5hbWUgZ2V0ZnR5cGUgZ2V0cGlkIGdldHJlZ3R5cGUgZ2V0d2lucG9zeSBnbG9iMnJlZ3BhdCBoYXNfa2V5IGhpc3RhZGQgaGlzdG5yIGhvc3RuYW1lIGluZGV4IGlucHV0bGlzdCBpbnB1dHNlY3JldCBpc2RpcmVjdG9yeSBpdGVtcyBqb2Jfc2V0b3B0aW9ucyBqb2Jfc3RvcCBqc19lbmNvZGUga2V5cyBsaWJjYWxsbnIgbGlzcGluZGVudCBsb2cxMCBtYXBhcmcgbWF0Y2hhZGQgbWF0Y2hkZWxldGUgbWF0Y2hzdHIgbWluIG16ZXZhbCBvciBwb3cgcHVtdmlzaWJsZSByYW5nZSByZWx0aW1lZmxvYXQgcmVtb3RlX2ZvcmVncm91bmQgcmVtb3RlX3NlbmQgcmVwZWF0IHJvdW5kIHNjcmVlbmNvbCBzZWFyY2hkZWNsIHNlYXJjaHBvcyBzZXRidWZ2YXIgc2V0ZnBlcm0gc2V0bWF0Y2hlcyBzZXRyZWcgc2V0d2ludmFyIHNoaWZ0d2lkdGggc2luaCBzcGVsbGJhZHdvcmQgc3FydCBzdHJjaGFycGFydCBzdHJmdGltZSBzdHJpbmcgc3RycmlkeCBzdWJtYXRjaCBzeW5JRCBzeW5zdGFjayB0YWJwYWdlYnVmbGlzdCB0YWdmaWxlcyB0YW5oIHRlc3RfZGlzYWJsZV9jaGFyX2F2YWlsIHRlc3RfbnVsbF9kaWN0IHRlc3RfbnVsbF9wYXJ0aWFsIHRpbWVyX3N0YXJ0IHRvdXBwZXIgdHlwZSB1bmlxIHZpc3VhbG1vZGUgd2luY29sIHdpbl9nb3RvaWQgd2luX2lkMndpbiB3aW5yZXN0Y21kIHdpbndpZHRoIHhvcgotc3luIGtleXdvcmQgdmltRnVuY05hbWUgY29udGFpbmVkCWFuZCBhcmdsaXN0aWQgYXNzZXJ0X2V4Y2VwdGlvbiBhc3NlcnRfbm90ZXF1YWwgYXRhbjIgYnVmbGlzdGVkIGJ1ZndpbmlkIGJ5dGVpZHhjb21wIGNoYXIybnIgY2hfZ2V0YnVmbnIgY2hfbG9nZmlsZSBjaF9zZW5kZXhwciBjaW5kZW50IGNvbXBsZXRlX2FkZCBjb3MgY3Vyc29yIGRpZmZfZmlsbGVyIGV2YWwgZXhpc3RzIGZlZWRrZXlzIGZpbmRkaXIgZm1vZCBmb2xkY2xvc2VkZW5kIGZvcmVncm91bmQgZ2V0YnVmbGluZSBnZXRjaGFyc2VhcmNoIGdldGNtZHdpbnR5cGUgZ2V0ZnBlcm0gZ2V0bGluZSBnZXRwb3MgZ2V0dGFidmFyIAorc3luIGtleXdvcmQgdmltRnVuY05hbWUgY29udGFpbmVkCWFicyBhcHBlbmQgYXJndiBhc3NlcnRfZmFpbHMgYXNzZXJ0X25vdGVxdWFsIGF0YW4yIGJ1Zmxpc3RlZCBidWZ3aW5pZCBieXRlaWR4Y29tcCBjaGFyMm5yIGNoX2dldGJ1Zm5yIGNoX2xvZ2ZpbGUgY2hfc2VuZGV4cHIgY2luZGVudCBjb21wbGV0ZV9hZGQgY29zIGN1cnNvciBkaWZmX2ZpbGxlciBldmFsIGV4ZXBhdGggZXh0ZW5kIGZpbHRlciBmbG9vciBmb2xkY2xvc2VkIGZvbGR0ZXh0cmVzdWx0IGdhcmJhZ2Vjb2xsZWN0IGdldGJ1ZnZhciBnZXRjbWRsaW5lIGdldGNvbXBsZXRpb24gZ2V0ZnBlcm0gZ2V0bGluZSBnZXRwb3MgZ2V0dGFiaW5mbyBnZXR3aW5wb3N4IGdsb2IycmVncGF0IGhhc2xvY2FsZGlyIGhpc3RnZXQgaG9zdG5hbWUgaW5wdXQgaW5wdXRzYXZlIGlzZGlyZWN0b3J5IGpvYl9nZXRjaGFubmVsIGpvYl9zdGF0dXMganNfZGVjb2RlIGpzb25fZW5jb2RlIGxpYmNhbGwgbGluZTJieXRlIGxvZyBtYXAgbWF0Y2ggbWF0Y2hhcmcgbWF0Y2hsaXN0IG1heCBtb2RlIG5yMmNoYXIgcGVybGV2YWwgcHJpbnRmIHB5ZXZhbCByZWx0aW1lIHJlbW90ZV9leHByIHJlbW90ZV9yZWFkIHJlbmFtZSByZXZlcnNlIHNjcmVlbmNoYXIgc2VhcmNoIHNlYXJjaHBhaXJwb3Mgc2VydmVybGlzdCBzZXRjbWRwb3Mgc2V0bG9jbGlzdCBzZXRxZmxpc3Qgc2V0dGFid2ludmFyIHNoZWxsZXNjYXBlIHNpbiBzb3VuZGZvbGQgc3BsaXQgc3RyMm5yIHN0cmRpc3BsYXl3aWR0aCBzdHJpZHggc3RycGFydCBzdHJ3aWR0aCBzeW5jb25jZWFsZWQgc3luSUR0cmFucyBzeXN0ZW1saXN0IHRhYnBhZ2V3aW5uciB0YW4gdGVzdF9hbGxvY19mYWlsIHRlc3RfZ2FyYmFnZWNvbGxlY3Rfbm93IHRlc3RfbnVsbF9qb2IgdGVzdF9udWxsX3N0cmluZyB0aW1lcl9wYXVzZSB0aW1lcl9zdG9wYWxsIHRyIHVuZG9maWxlIHZhbHVlcyB3aWxkbWVudW1vZGUgd2luX2ZpbmRidWYgd2luaGVpZ2h0IHdpbmxpbmUgd2lucmVzdHZpZXcgd29yZGNvdW50CitzeW4ga2V5d29yZCB2aW1GdW5jTmFtZSBjb250YWluZWQJYWNvcyBhcmdjIGFzaW4gYXNzZXJ0X2ZhbHNlIGFzc2VydF9ub3RtYXRjaCBicm93c2UgYnVmbG9hZGVkIGJ1Zndpbm5yIGNhbGwgY2hfY2xvc2UgY2hfZ2V0am9iIGNoX29wZW4gY2hfc2VuZHJhdyBjbGVhcm1hdGNoZXMgY29tcGxldGVfY2hlY2sgY29zaCBkZWVwY29weSBkaWZmX2hsSUQgZXZlbnRoYW5kbGVyIGV4aXN0cyBmZWVka2V5cyBmaW5kZGlyIGZtb2QgZm9sZGNsb3NlZGVuZCBmb3JlZ3JvdW5kIGdldCBnZXRjaGFyIGdldGNtZHBvcyBnZXRjdXJwb3MgZ2V0ZnNpemUgZ2V0bG9jbGlzdCBnZXRxZmxpc3QgZ2V0dGFidmFyIGdldHdpbnBvc3kgZ2xvYnBhdGggaGFzbWFwdG8gaGlzdG5yIGljb252IGlucHV0ZGlhbG9nIGlucHV0c2VjcmV0IGlzbG9ja2VkIGpvYl9pbmZvIGpvYl9zdG9wIGpzX2VuY29kZSBrZXlzIGxpYmNhbGxuciBsaXNwaW5kZW50IGxvZzEwIG1hcGFyZyBtYXRjaGFkZCBtYXRjaGRlbGV0ZSBtYXRjaHN0ciBtaW4gbXpldmFsIG9yIHBvdyBwdW12aXNpYmxlIHJhbmdlIHJlbHRpbWVmbG9hdCByZW1vdGVfZm9yZWdyb3VuZCByZW1vdGVfc2VuZCByZXBlYXQgcm91bmQgc2NyZWVuY29sIHNlYXJjaGRlY2wgc2VhcmNocG9zIHNldGJ1ZnZhciBzZXRmcGVybSBzZXRtYXRjaGVzIHNldHJlZyBzZXR3aW52YXIgc2hpZnR3aWR0aCBzaW5oIHNwZWxsYmFkd29yZCBzcXJ0IHN0cmNoYXJwYXJ0IHN0cmZ0aW1lIHN0cmluZyBzdHJyaWR4IHN1Ym1hdGNoIHN5bklEIHN5bnN0YWNrIHRhYnBhZ2VidWZsaXN0IHRhZ2ZpbGVzIHRhbmggdGVzdF9hdXRvY2hkaXIgdGVzdF9udWxsX2NoYW5uZWwgdGVzdF9udWxsX2xpc3QgdGVzdF9zZXR0aW1lIHRpbWVyX3N0YXJ0IHRvbG93ZXIgdHJ1bmMgdW5kb3RyZWUgdmlydGNvbCB3aW5idWZuciB3aW5fZ2V0aWQgd2luX2lkMnRhYndpbiB3aW5uciB3aW5zYXZldmlldyB3cml0ZWZpbGUKK3N5biBrZXl3b3JkIHZpbUZ1bmNOYW1lIGNvbnRhaW5lZAlhZGQgYXJnaWR4IGFzc2VydF9lcXVhbCBhc3NlcnRfaW5yYW5nZSBhc3NlcnRfdHJ1ZSBicm93c2VkaXIgYnVmbmFtZSBieXRlMmxpbmUgY2VpbCBjaF9ldmFsZXhwciBjaF9pbmZvIGNoX3JlYWQgY2hfc2V0b3B0aW9ucyBjb2wgY29uZmlybSBjb3VudCBkZWxldGUgZW1wdHkgZXhlY3V0YWJsZSBleHAgZmlsZXJlYWRhYmxlIGZpbmRmaWxlIGZuYW1lZXNjYXBlIGZvbGRsZXZlbCBmdW5jcmVmIGdldGJ1ZmluZm8gZ2V0Y2hhcm1vZCBnZXRjbWR0eXBlIGdldGN3ZCBnZXRmdGltZSBnZXRtYXRjaGVzIGdldHJlZyBnZXR0YWJ3aW52YXIgZ2V0d2ludmFyIGhhcyBoaXN0YWRkIGhsZXhpc3RzIGluZGVudCBpbnB1dGxpc3QgaW5zZXJ0IGlzbmFuIGpvYl9zZXRvcHRpb25zIGpvaW4ganNvbl9kZWNvZGUgbGVuIGxpbmUgbG9jYWx0aW1lIGx1YWV2YWwgbWFwY2hlY2sgbWF0Y2hhZGRwb3MgbWF0Y2hlbmQgbWF0Y2hzdHJwb3MgbWtkaXIgbmV4dG5vbmJsYW5rIHBhdGhzaG9ydGVuIHByZXZub25ibGFuayBweTNldmFsIHJlYWRmaWxlIHJlbHRpbWVzdHIgcmVtb3RlX3BlZWsgcmVtb3ZlIHJlc29sdmUgc2NyZWVuYXR0ciBzY3JlZW5yb3cgc2VhcmNocGFpciBzZXJ2ZXIyY2xpZW50IHNldGNoYXJzZWFyY2ggc2V0bGluZSBzZXRwb3Mgc2V0dGFidmFyIHNoYTI1NiBzaW1wbGlmeSBzb3J0IHNwZWxsc3VnZ2VzdCBzdHIyZmxvYXQgc3RyY2hhcnMgc3RyZ2V0Y2hhciBzdHJsZW4gc3RydHJhbnMgc3Vic3RpdHV0ZSBzeW5JRGF0dHIgc3lzdGVtIHRhYnBhZ2VuciB0YWdsaXN0IHRlbXBuYW1lIHRlc3RfZGlzYWJsZV9jaGFyX2F2YWlsIHRlc3RfbnVsbF9kaWN0IHRlc3RfbnVsbF9wYXJ0aWFsIHRpbWVyX2luZm8gdGltZXJfc3RvcCB0b3VwcGVyIHR5cGUgdW5pcSB2aXN1YWxtb2RlIHdpbmNvbCB3aW5fZ290b2lkIHdpbl9pZDJ3aW4gd2lucmVzdGNtZCB3aW53aWR0aCB4b3IKK3N5biBrZXl3b3JkIHZpbUZ1bmNOYW1lIGNvbnRhaW5lZAlhbmQgYXJnbGlzdGlkIGFzc2VydF9leGNlcHRpb24gYXNzZXJ0X21hdGNoIGF0YW4gYnVmZXhpc3RzIGJ1Zm5yIGJ5dGVpZHggY2hhbmdlbnIgY2hfZXZhbHJhdyBjaF9sb2cgY2hfcmVhZHJhdyBjaF9zdGF0dXMgY29tcGxldGUgY29weSBjc2NvcGVfY29ubmVjdGlvbiBkaWRfZmlsZXR5cGUgZXNjYXBlIGV4ZWN1dGUgZXhwYW5kIGZpbGV3cml0YWJsZSBmbG9hdDJuciBmbmFtZW1vZGlmeSBmb2xkdGV4dCBmdW5jdGlvbiBnZXRidWZsaW5lIGdldGNoYXJzZWFyY2ggZ2V0Y21kd2ludHlwZSBnZXRmb250bmFtZSBnZXRmdHlwZSBnZXRwaWQgZ2V0cmVndHlwZSBnZXR3aW5pbmZvIGdsb2IgaGFzX2tleSBoaXN0ZGVsIGhsSUQgaW5kZXggaW5wdXRyZXN0b3JlIGludmVydCBpdGVtcyBqb2Jfc3RhcnQgCiAKICItLS0gc3ludGF4IGhlcmUgYW5kIGFib3ZlIGdlbmVyYXRlZCBieSBta3ZpbXZpbSAtLS0KICIgU3BlY2lhbCBWaW0gSGlnaGxpZ2h0aW5nIChub3QgYXV0b21hdGljKSB7e3sxCmRpZmYgLS1naXQgYS9ydW50aW1lL3R1dG9yL3R1dG9yLmVzIGIvcnVudGltZS90dXRvci90dXRvci5lcwppbmRleCA3YmQwYzU0Li44MzJhZDA0IDEwMDY0NAotLS0gYS9ydW50aW1lL3R1dG9yL3R1dG9yLmVzCisrKyBiL3J1bnRpbWUvdHV0b3IvdHV0b3IuZXMKQEAgLTQ3OCw3ICs0NzgsNyBAQAogCiAgIDEuIEN0cmwtZyAgbXVlc3RyYSBsYSBwb3NpY2nzbiBkZWwgY3Vyc29yIGVuIGVsIGZpY2hlcm8geSBzdSBlc3RhZG8uCiAgICAgIE1heXUtRyBtdWV2ZSBlbCBjdXJzb3IgYWwgZmluYWwgZGVsIGZpY2hlcm8uIFVuIG76bWVybyBkZSBs7W5lYQotICAgICBzZXdndWlkbyBkZSBNYXl1LUcgbXVldmUgZWwgY3Vyc29yIGEgbGEgbO1uZWEgY29uIGVzZSBu+m1lcm8uCisgICAgIHNlZ3VpZG8gZGUgTWF5dS1HIG11ZXZlIGVsIGN1cnNvciBhIGxhIGztbmVhIGNvbiBlc2UgbvptZXJvLgogCiAgIDIuIFB1bHNhbmRvICAvICBzZWd1aWRvIGRlIHVuYSBmcmFzZSBidXNjYSBsYSBmcmFzZSBoYWNpYSBBREVMQU5URS4KICAgICAgUHVsc2FuZG8gID8gIHNlZ3VpZG8gZGUgdW5hIGZyYXNlIGJ1c2NhIGxhIGZyYXNlIGhhY2lhIEFUUsFTLgpkaWZmIC0tZ2l0IGEvcnVudGltZS90dXRvci90dXRvci5lcy51dGYtOCBiL3J1bnRpbWUvdHV0b3IvdHV0b3IuZXMudXRmLTgKaW5kZXggYjc1NjFlNC4uNDljOWNkYiAxMDA2NDQKLS0tIGEvcnVudGltZS90dXRvci90dXRvci5lcy51dGYtOAorKysgYi9ydW50aW1lL3R1dG9yL3R1dG9yLmVzLnV0Zi04CkBAIC00NzgsNyArNDc4LDcgQEAKIAogICAxLiBDdHJsLWcgIG11ZXN0cmEgbGEgcG9zaWNpw7NuIGRlbCBjdXJzb3IgZW4gZWwgZmljaGVybyB5IHN1IGVzdGFkby4KICAgICAgTWF5dS1HIG11ZXZlIGVsIGN1cnNvciBhbCBmaW5hbCBkZWwgZmljaGVyby4gVW4gbsO6bWVybyBkZSBsw61uZWEKLSAgICAgc2V3Z3VpZG8gZGUgTWF5dS1HIG11ZXZlIGVsIGN1cnNvciBhIGxhIGzDrW5lYSBjb24gZXNlIG7Dum1lcm8uCisgICAgIHNlZ3VpZG8gZGUgTWF5dS1HIG11ZXZlIGVsIGN1cnNvciBhIGxhIGzDrW5lYSBjb24gZXNlIG7Dum1lcm8uCiAKICAgMi4gUHVsc2FuZG8gIC8gIHNlZ3VpZG8gZGUgdW5hIGZyYXNlIGJ1c2NhIGxhIGZyYXNlIGhhY2lhIEFERUxBTlRFLgogICAgICBQdWxzYW5kbyAgPyAgc2VndWlkbyBkZSB1bmEgZnJhc2UgYnVzY2EgbGEgZnJhc2UgaGFjaWEgQVRSw4FTLgo=