ZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL01ha2VmaWxlIGIvcnVudGltZS9kb2MvTWFrZWZpbGUKaW5kZXggOGRhNTkyYy4uOTRiZjgwNSAxMDA2NDQKLS0tIGEvcnVudGltZS9kb2MvTWFrZWZpbGUKKysrIGIvcnVudGltZS9kb2MvTWFrZWZpbGUKQEAgLTM2LDYgKzM2LDcgQEAKIAloZWxwLnR4dCBcCiAJaG93dG8udHh0IFwKIAlpZl9jc2NvcC50eHQgXAorCWlmX216c2NoLnR4dCBcCiAJaWZfb2xlLnR4dCBcCiAJaWZfcGVybC50eHQgXAogCWlmX3B5dGgudHh0IFwKQEAgLTE1Niw2ICsxNTcsNyBAQAogCWhlbHAuaHRtbCBcCiAJaG93dG8uaHRtbCBcCiAJaWZfY3Njb3AuaHRtbCBcCisJaWZfbXpzY2guaHRtbCBcCiAJaWZfb2xlLmh0bWwgXAogCWlmX3BlcmwuaHRtbCBcCiAJaWZfcHl0aC5odG1sIFwKZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL2NoYW5nZS50eHQgYi9ydW50aW1lL2RvYy9jaGFuZ2UudHh0CmluZGV4IDRmMzcxZjkuLjVlNDVlYzcgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvZG9jL2NoYW5nZS50eHQKKysrIGIvcnVudGltZS9kb2MvY2hhbmdlLnR4dApAQCAtMSw0ICsxLDQgQEAKLSpjaGFuZ2UudHh0KiAgICBGb3IgVmltIHZlcnNpb24gNy4wYWEuICBMYXN0IGNoYW5nZTogMjAwNCBPY3QgMTEKKypjaGFuZ2UudHh0KiAgICBGb3IgVmltIHZlcnNpb24gNy4wYWEuICBMYXN0IGNoYW5nZTogMjAwNCBOb3YgMzAKIAogCiAJCSAgVklNIFJFRkVSRU5DRSBNQU5VQUwgICAgYnkgQnJhbSBNb29sZW5hYXIKQEAgLTM1MCwyMyArMzUwLDI0IEBACiBUaGUgQ1RSTC1BIGFuZCBDVFJMLVggY29tbWFuZHMgd29yayBmb3IgKHNpZ25lZCkgZGVjaW1hbCBudW1iZXJzLCB1bnNpZ25lZAogb2N0YWwgYW5kIGhleGFkZWNpbWFsIG51bWJlcnMgYW5kIGFscGhhYmV0aWMgY2hhcmFjdGVycy4gIFRoaXMgZGVwZW5kcyBvbiB0aGUKICducmZvcm1hdHMnIG9wdGlvbi4KLS0gV2hlbiAnbnJmb3JtYXRzJyBpbmNsdWRlcyAiYWxwaGEiLCBWaW0gd2lsbCBjaGFuZ2UgdGhlIGFscGhhYmV0aWMgY2hhcmFjdGVyCi0gIHVuZGVyIG9yIGFmdGVyIHRoZSBjdXJzb3IuICBUaGlzIGlzIHVzZWZ1bCB0byBtYWtlIGxpc3RzIHdpdGggYW4gYWxwaGFiZXRpYwotICBpbmRleC4KLS0gV2hlbiAnbnJmb3JtYXRzJyBpbmNsdWRlcyAiaGV4IiwgVmltIGFzc3VtZXMgbnVtYmVycyBzdGFydGluZyB3aXRoICcweCcgb3IKLSAgJzBYJyBhcmUgaGV4YWRlY2ltYWwuICBUaGUgY2FzZSBvZiB0aGUgcmlnaHRtb3N0IGxldHRlciBpbiB0aGUgbnVtYmVyCi0gIGRldGVybWluZXMgdGhlIGNhc2Ugb2YgdGhlIHJlc3VsdGluZyBoZXhhZGVjaW1hbCBudW1iZXIuICBJZiB0aGVyZSBpcyBubwotICBsZXR0ZXIgaW4gdGhlIGN1cnJlbnQgbnVtYmVyLCBWaW0gdXNlcyB0aGUgcHJldmlvdXNseSBkZXRlY3RlZCBjYXNlLgogLSBXaGVuICducmZvcm1hdHMnIGluY2x1ZGVzICJvY3RhbCIsIFZpbSBjb25zaWRlcnMgbnVtYmVycyBzdGFydGluZyB3aXRoIGEgJzAnCiAgIHRvIGJlIG9jdGFsLiAgT3RoZXIgbnVtYmVycyBhcmUgZGVjaW1hbCBhbmQgbWF5IGhhdmUgYSBwcmVjZWRpbmcgbWludXMgc2lnbi4KICAgSWYgdGhlIGN1cnNvciBpcyBvbiBhIG51bWJlciwgdGhlIGNvbW1hbmRzIGFwcGx5IHRvIHRoYXQgbnVtYmVyOyBvdGhlcndpc2UKICAgVmltIHVzZXMgdGhlIG51bWJlciB0byB0aGUgcmlnaHQgb2YgdGhlIGN1cnNvci4KKy0gV2hlbiAnbnJmb3JtYXRzJyBpbmNsdWRlcyAiaGV4IiwgVmltIGFzc3VtZXMgbnVtYmVycyBzdGFydGluZyB3aXRoICcweCcgb3IKKyAgJzBYJyBhcmUgaGV4YWRlY2ltYWwuICBUaGUgY2FzZSBvZiB0aGUgcmlnaHRtb3N0IGxldHRlciBpbiB0aGUgbnVtYmVyCisgIGRldGVybWluZXMgdGhlIGNhc2Ugb2YgdGhlIHJlc3VsdGluZyBoZXhhZGVjaW1hbCBudW1iZXIuICBJZiB0aGVyZSBpcyBubworICBsZXR0ZXIgaW4gdGhlIGN1cnJlbnQgbnVtYmVyLCBWaW0gdXNlcyB0aGUgcHJldmlvdXNseSBkZXRlY3RlZCBjYXNlLgorLSBXaGVuICducmZvcm1hdHMnIGluY2x1ZGVzICJhbHBoYSIsIFZpbSB3aWxsIGNoYW5nZSB0aGUgYWxwaGFiZXRpYyBjaGFyYWN0ZXIKKyAgdW5kZXIgb3IgYWZ0ZXIgdGhlIGN1cnNvci4gIFRoaXMgaXMgdXNlZnVsIHRvIG1ha2UgbGlzdHMgd2l0aCBhbiBhbHBoYWJldGljCisgIGluZGV4LgogCiBGb3IgbnVtYmVycyB3aXRoIGxlYWRpbmcgemVyb3MgKGluY2x1ZGluZyBhbGwgb2N0YWwgYW5kIGhleGFkZWNpbWFsIG51bWJlcnMpLAogVmltIHByZXNlcnZlcyB0aGUgbnVtYmVyIG9mIGNoYXJhY3RlcnMgaW4gdGhlIG51bWJlciB3aGVuIHBvc3NpYmxlLiAgQ1RSTC1BIG9uCi0iMDA3NyIgcmVzdWx0cyBpbiAiMDEwMCIsIENUUkwtWCBvbiAiMHgxMDAiIHJlc3VsdHMgaW4gIjB4MGZmIi4gIE5vdGUgdGhhdAotd2hlbiAnbnJmb3JtYXRzJyBpbmNsdWRlcyAib2N0YWwiLCBkZWNpbWFsIG51bWJlcnMgd2l0aCBsZWFkaW5nIHplcm9zIGFyZQotaW1wb3NzaWJsZSBiZWNhdXNlIHRoZXkgYXJlIGluZGlzdGluZ3Vpc2hhYmxlIGZyb20gb2N0YWwgbnVtYmVycy4KKyIwMDc3IiByZXN1bHRzIGluICIwMTAwIiwgQ1RSTC1YIG9uICIweDEwMCIgcmVzdWx0cyBpbiAiMHgwZmYiLgorCitOb3RlIHRoYXQgd2hlbiAnbnJmb3JtYXRzJyBpbmNsdWRlcyAib2N0YWwiLCBkZWNpbWFsIG51bWJlcnMgd2l0aCBsZWFkaW5nCit6ZXJvcyBhcmUgaW1wb3NzaWJsZSBiZWNhdXNlIHRoZXkgYXJlIGluZGlzdGluZ3Vpc2hhYmxlIGZyb20gb2N0YWwgbnVtYmVycy4KIAogVGhlIENUUkwtQSBjb21tYW5kIGlzIHZlcnkgdXNlZnVsIGluIGEgbWFjcm8uICBFeGFtcGxlOiBVc2UgdGhlIGZvbGxvd2luZwogc3RlcHMgdG8gbWFrZSBhIG51bWJlcmVkIGxpc3QuCkBAIC04NjMsOCArODY0LDEwIEBACiAJCQkJCQkJKjxNaWRkbGVNb3VzZT4qCiBbInhdPE1pZGRsZU1vdXNlPglQdXQgdGhlIHRleHQgZnJvbSBhIHJlZ2lzdGVyIGJlZm9yZSB0aGUgY3Vyc29yIFtjb3VudF0KIAkJCXRpbWVzLiAgVXNlcyB0aGUgIiogcmVnaXN0ZXIsIHVubGVzcyBhbm90aGVyIGlzCi0JCQlzcGVjaWZpZWQuICBVc2luZyB0aGUgbW91c2Ugb25seSB3b3JrcyB3aGVuICdtb3VzZScKLQkJCWNvbnRhaW5zICduJyBvciAnYScuCisJCQlzcGVjaWZpZWQuICAKKwkJCUxlYXZlcyB0aGUgY3Vyc29yIGF0IHRoZSBlbmQgb2YgdGhlIG5ldyB0ZXh0LgorCQkJVXNpbmcgdGhlIG1vdXNlIG9ubHkgd29ya3Mgd2hlbiAnbW91c2UnIGNvbnRhaW5zICduJworCQkJb3IgJ2EnLgogCQkJe25vdCBpbiBWaX0KIAkJCUlmIHlvdSBoYXZlIGEgc2Nyb2xsd2hlZWwgYW5kIG9mdGVuIGFjY2lkZW50YWxseSBwYXN0ZQogCQkJdGV4dCwgeW91IGNhbiB1c2UgdGhlc2UgbWFwcGluZ3MgdG8gZGlzYWJsZSB0aGUKZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL2V2aW0taXQuMSBiL3J1bnRpbWUvZG9jL2V2aW0taXQuMQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi42NDRmNzkzCi0tLSAvZGV2L251bGwKKysrIGIvcnVudGltZS9kb2MvZXZpbS1pdC4xCkBAIC0wLDAgKzEsNTQgQEAKKy5USCBFVklNIDEgIjE2IGZlYmJyYWlvIDIwMDIgIgorLlNIIE5PTUUKK2V2aW0gXC0gVmltICJmYWNpbGUiLCBWaW0gaW1wb3N0YXRvIGluIG1vZG8gZGEgcG90ZXIgZXNzZXJlIHVzYXRvCitmYWNpbG1lbnRlIHBlciBtb2RpZmljYXJlIGZpbGUsIGFuY2hlIGRhIGNoaSBub24gYWJiaWEgZmFtaWxpYXJpdOAKK2NvbiBpIGNvbWFuZGkuCisuU0ggU0lOVEFTU0kKKy5icgorLkIgZXZpbQorW29wemlvbmldIFtmaWxlIC4uXQorLmJyCisuQiBldmlldworLlNIIERFU0NSSVpJT05FCisuQiBldmltCitJbml6aWEKKy5CIFZpbQorZSBpbXBvc3RhIGxlIG9wemlvbmkgcGVyIGZhcmxvIGNvbXBvcnRhcmUgY29tZSB1biBlZGl0b3JlICJtb2RlbGVzcyIuCitTdGF0ZSBzZW1wcmUgdXNhbmRvIFZpbSwgbWEgY29tZSB1biBlZGl0b3JlICJwb3NpemlvbmF0aS1lLWNsaWNjYSIuCitTaW1pbGUgYWxsJ3VzbyBkaSBOb3RlcGFkIGluIE1TLVdpbmRvd3MuCisuQiBldmltCityaWNoaWVkZSBsYSBwcmVzZW56YSBkZWxsYSBHVUksIHBlciBhdmVyZSBhIGRpc3Bvc2l6aW9uZSBtZW51IGUgYmFycmEKK3N0cnVtZW50aS4KKy5QUAorRGEgdXNhcnNpIHNvbG8gZGEgcGFydGUgZGkgY2hpIG5vbiDoIGluIGdyYWRvIGRpIGxhdm9yYXJlIGNvbiBWaW0gbmVsbGEKK21hbmllcmEgdXN1YWxlLgorTGEgbW9kaWZpY2EgZmlsZSBzYXLgIG1vbHRvIG1lbm8gZWZmaWNpZW50ZS4KKy5QUAorLkIgZXZpZXcKK2NvbWUgc29wcmEsIG1hIHBhcnRlIGluIG1vZGFsaXTgICJTb2xhIExldHR1cmEiLiAgRnVuemlvbmEgY29tZSBldmltIC1SLgorLlBQCitWZWRlcmUgdmltKDEpIHBlciBkZXR0YWdsaSByaWd1YXJkbyBhIFZpbSwgb3B6aW9uaSwgZXRjLgorLlBQCitMJ29wemlvbmUgJ2luc2VydG1vZGUnIOggaW1wb3N0YXRhIHBlciBwb3RlciBpbW1ldHRlcmUgZGVsIHRlc3RvIGRpcmV0dGFtZW50ZS4KKy5icgorU29ubyBkZWZpbml0ZSBkZWxsZSBtYXBwYXR1cmUgY2hlIGNvbnNlbnRvbm8gZGkgdXNhcmUgQ09QSUEgZSBJTkNPTExBIGNvbiBpCitmYW1pbGlhcmkgdGFzdGkgdXNhdGkgc290dG8gTVMtV2luZG93cy4KK0NUUkwtWCB0YWdsaWEgdGVzdG8sIENUUkwtQyBjb3BpYSB0ZXN0byBlIENUUkwtViBpbmNvbGxhIHRlc3RvLgorVXNhdGUgQ1RSTC1RIHBlciBvdHRlbmVyZSBxdWVsbG8gY2hzIHNpIG90dGllcnJlYmJlIGNvbiBDVFJMLVYgaW4gVmltIG5hdGl2by4KKy5TSCBPUFpJT05JCitWZWRlcmUgdmltKDEpLgorLlNIIEZJTEUKKy5UUCAxNQorL3Vzci9sb2NhbC9saWIvdmltL2V2aW0udmltCitMbyBzY3JpcHQgY2FyaWNhdG8gcGVyIGluaXppYWxpenphcmUgZVZpbS4KKy5TSCBOQUMgW05PVE8gQU5DSEUgQ09NRV0KK05vdG8gQW5jaGUgQ29tZSAiVmltIHBlciBzZW1wbGljaSIuCitRdWFuZG8gdXNhdGUgZXZpbSBzaSBzdXBwb25lIGNoZSBwcmVuZGlhdGUgdW4gZmF6em9sZXR0bywKK2ZhY2NpYXRlIHVuIG5vZG8gYWQgb2duaSBhbmdvbG8gZSB2ZSBsbyBtZXR0aWF0ZSBpbiB0ZXN0YS4KKy5TSCBWRURFUkUgQU5DSEUKK3ZpbSgxKQorLlNIIEFVVE9SRQorQnVvbmEgcGFydGUgZGkKKy5CIFZpbQor6CBzdGF0byBzY3JpdHRvIGRhIEJyYW0gTW9vbGVuYWFyLCBjb24gbW9sdG8gYWl1dG8gZGEgYWx0cmkuCitWZWRlcmUgaWwgTWVudSAiQWl1dG8vQ3JlZGl0aSIuCmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy9pZl9vbGUudHh0IGIvcnVudGltZS9kb2MvaWZfb2xlLnR4dAppbmRleCA5Y2VkMzRlLi4wNmU1YjQyIDEwMDY0NAotLS0gYS9ydW50aW1lL2RvYy9pZl9vbGUudHh0CisrKyBiL3J1bnRpbWUvZG9jL2lmX29sZS50eHQKQEAgLTEsNCArMSw0IEBACi0qaWZfb2xlLnR4dCogICAgRm9yIFZpbSB2ZXJzaW9uIDcuMGFhLiAgTGFzdCBjaGFuZ2U6IDIwMDMgSnVuIDE5CisqaWZfb2xlLnR4dCogICAgRm9yIFZpbSB2ZXJzaW9uIDcuMGFhLiAgTGFzdCBjaGFuZ2U6IDIwMDQgRGVjIDA5CiAKIAogCQkgIFZJTSBSRUZFUkVOQ0UgTUFOVUFMICAgIGJ5IFBhdWwgTW9vcmUKQEAgLTE1OCw1ICsxNTgsNDEgQEAKIHRoZSBPTEUgdmVyc2lvbi4gIFRoZSBkb2N1bWVudGF0aW9uIGNhbiBiZSBmb3VuZCBpbiB0aGUgcnVudGltZSBkaXJlY3RvcnksIHRoZQogUkVBRE1FX1Zpc1ZpbS50eHQgZmlsZS4KIAorCitVc2luZyBWaW0gd2l0aCBWaXN1YWwgU3R1ZGlvIC5OZXR+CisKK1dpdGggLk5ldCB5b3Ugbm8gbG9uZ2VyIHJlYWxseSBuZWVkIFZpc1ZpbSwgc2luY2UgLk5ldCBzdHVkaW8gaGFzIHN1cHBvcnQgZm9yCitleHRlcm5hbCBlZGl0b3JzLiAgRm9sbG93IHRoZXNlIGRpcmVjdGlvbnM6CisKK0luIC5OZXQgU3R1ZGlvIGNob29zZSBmcm9tIHRoZSBtZW51IFRvb2xzLT5FeHRlcm5hbCBUb29scy4uLgorQWRkCisgICAgIFRpdGxlICAgICAtIFZpbQorICAgICBDb21tYW5kICAgLSBjOlx2aW1cdmltNjNcZ3ZpbS5leGUKKyAgICAgQXJndW1lbnRzIC0gLS1zZXJ2ZXJuYW1lIFZTX05FVCAtLXJlbW90ZS1zaWxlbnQgIitjYWxsIGN1cnNvcigkKEN1ckxpbmUpLCAkKEN1ckNvbCkpIiAkKEl0ZW1QYXRoKSAgCisgICAgIEluaXQgRGlyICAtIEVtcHR5CisKK05vdywgd2hlbiB5b3Ugb3BlbiBhIGZpbGUgaW4gLk5ldCwgeW91IGNhbiBjaG9vc2UgZnJvbSB0aGUgLk5ldCBtZW51OgorVG9vbHMtPlZpbQorCitUaGF0IHdpbGwgb3BlbiB0aGUgZmlsZSBpbiBWaW0uCitZb3UgY2FuIHRoZW4gYWRkIHRoaXMgZXh0ZXJuYWwgY29tbWFuZCBhcyBhbiBpY29uIGFuZCBwbGFjZSBpdCBhbnl3aGVyZSB5b3UKK2xpa2UuICBZb3UgbWlnaHQgYWxzbyBiZSBhYmxlIHRvIHNldCB0aGlzIGFzIHlvdXIgZGVmYXVsdCBlZGl0b3IuCisKK0lmIHlvdSByZWZpbmUgdGhpcyBmdXJ0aGVyLCBwbGVhc2UgcG9zdCBiYWNrIHRvIHRoZSBWaW0gbWFpbGxpc3Qgc28gd2UgaGF2ZSBhCityZWNvcmQgb2YgaXQuCisKKy0tc2VydmVybmFtZSBWU19ORVQgCitUaGlzIHdpbGwgY3JlYXRlIGEgbmV3IGluc3RhbmNlIG9mIHZpbSBjYWxsZWQgVlNfTkVULiAgU28gaWYgeW91IG9wZW4gbXVsdGlwbGUKK2ZpbGVzIGZyb20gVlMsIHRoZXkgd2lsbCB1c2UgdGhlIHNhbWUgaW5zdGFuY2Ugb2YgVmltLiAgVGhpcyBhbGxvd3MgeW91IHRvCitoYXZlIG11bHRpcGxlIGNvcGllcyBvZiBWaW0gcnVubmluZywgYnV0IHlvdSBjYW4gY29udHJvbCB3aGljaCBvbmUgaGFzIFZTCitmaWxlcyBpbiBpdC4KKworLS1yZW1vdGUtc2lsZW50ICIrY2FsbCBjdXJzb3IoMTAsIDI3KSIgCisgICAgICAgICAgICAgIC0gUGxhY2VzIHRoZSBjdXJzb3Igb24gbGluZSAxMCBjb2x1bW4gMjcKK0luIFZpbSA+CisgICA6aCAtLXJlbW90ZS1zaWxlbnQgZm9yIG1vciBkZXRhaWxzCisKK1suTmV0IHJlbWFya3MgcHJvdmlkZWQgYnkgRGF2ZSBGaXNoYnVybiBhbmQgQnJpYW4gU3R1cmtdCisKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogIHZpbTp0dz03ODp0cz04OmZ0PWhlbHA6bm9ybDoKZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL2luZGV4LnR4dCBiL3J1bnRpbWUvZG9jL2luZGV4LnR4dAppbmRleCA2MjU3NGQ0Li44NjcyMWQ1IDEwMDY0NAotLS0gYS9ydW50aW1lL2RvYy9pbmRleC50eHQKKysrIGIvcnVudGltZS9kb2MvaW5kZXgudHh0CkBAIC0xLDQgKzEsNCBAQAotKmluZGV4LnR4dCogICAgIEZvciBWaW0gdmVyc2lvbiA3LjBhYS4gIExhc3QgY2hhbmdlOiAyMDA0IFNlcCAwNworKmluZGV4LnR4dCogICAgIEZvciBWaW0gdmVyc2lvbiA3LjBhYS4gIExhc3QgY2hhbmdlOiAyMDA0IE5vdiAzMAogCiAKIAkJICBWSU0gUkVGRVJFTkNFIE1BTlVBTCAgICBieSBCcmFtIE1vb2xlbmFhcgpAQCAtMzI4LDggKzMyOCw3IEBACiAJCQkJICAgY2hhcmFjdGVycywgcmVwZWF0IHRoZSBlbnRlcmVkIHRleHQgTi0xCiAJCQkJICAgdGltZXMKIHxTfAkJWyJ4XVMJCTIgIGRlbGV0ZSBOIGxpbmVzIFtpbnRvIGJ1ZmZlciB4XSBhbmQgc3RhcnQKLQkJCQkgICBpbnNlcnQ7IHN5bm9ueW0gZm9yICJeY2MiIG9yICIwY2MiLAotCQkJCSAgIGRlcGVuZGluZyBvbiBhdXRvaW5kZW50CisJCQkJICAgaW5zZXJ0OyBzeW5vbnltIGZvciAiY2MiLgogfFR8CQlUe2NoYXJ9CQkxICBjdXJzb3IgdGlsbCBhZnRlciBOdGggb2NjdXJyZW5jZSBvZiB7Y2hhcn0KIAkJCQkgICB0byB0aGUgbGVmdAogfFV8CQlVCQkyICB1bmRvIGFsbCBsYXRlc3QgY2hhbmdlcyBvbiBvbmUgbGluZQpAQCAtNDI1LDcgKzQyNCw3IEBACiB8PEluc2VydD58CTxJbnNlcnQ+CTIgIHNhbWUgYXMgImkiCiB8PExlZnQ+fAk8TGVmdD4JCTEgIHNhbWUgYXMgImgiCiB8PExlZnRNb3VzZT58CTxMZWZ0TW91c2U+CTEgIG1vdmUgY3Vyc29yIHRvIHRoZSBtb3VzZSBjbGljayBwb3NpdGlvbgotfDxNaWRkbGVNb3VzZT58IDxNaWRkbGVNb3VzZT4JMiAgc2FtZSBhcyAiUCIgYXQgdGhlIG1vdXNlIGNsaWNrIHBvc2l0aW9uCit8PE1pZGRsZU1vdXNlPnwgPE1pZGRsZU1vdXNlPgkyICBzYW1lIGFzICJnUCIgYXQgdGhlIG1vdXNlIGNsaWNrIHBvc2l0aW9uCiB8PFBhZ2VEb3duPnwJPFBhZ2VEb3duPgkgICBzYW1lIGFzIENUUkwtRgogfDxQYWdlVXA+fAk8UGFnZVVwPgkgICBzYW1lIGFzIENUUkwtQgogfDxSaWdodD58CTxSaWdodD4JCTEgIHNhbWUgYXMgImwiCmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy9pbnNlcnQudHh0IGIvcnVudGltZS9kb2MvaW5zZXJ0LnR4dAppbmRleCAxYjcwNDQ4Li4wYmJmODY4IDEwMDY0NAotLS0gYS9ydW50aW1lL2RvYy9pbnNlcnQudHh0CisrKyBiL3J1bnRpbWUvZG9jL2luc2VydC50eHQKQEAgLTEsNCArMSw0IEBACi0qaW5zZXJ0LnR4dCogICAgRm9yIFZpbSB2ZXJzaW9uIDcuMGFhLiAgTGFzdCBjaGFuZ2U6IDIwMDQgSnVsIDA0CisqaW5zZXJ0LnR4dCogICAgRm9yIFZpbSB2ZXJzaW9uIDcuMGFhLiAgTGFzdCBjaGFuZ2U6IDIwMDQgTm92IDE4CiAKIAogCQkgIFZJTSBSRUZFUkVOQ0UgTUFOVUFMICAgIGJ5IEJyYW0gTW9vbGVuYWFyCkBAIC0xMjQsNiArMTI0LDkgQEAKIAkJCSctJwl0aGUgbGFzdCBzbWFsbCAobGVzcyB0aGFuIGEgbGluZSkgZGVsZXRlCiAJCQknPScJdGhlIGV4cHJlc3Npb24gcmVnaXN0ZXI6IHlvdSBhcmUgcHJvbXB0ZWQgdG8KIAkJCQllbnRlciBhbiBleHByZXNzaW9uIChzZWUgfGV4cHJlc3Npb258KQorCQkJCU5vdGUgdGhhdCAweDgwICgxMjggZGVjaW1hbCkgaXMgdXNlZCBmb3IKKwkJCQlzcGVjaWFsIGtleXMsIHVzZSBDVFJMLVIgQ1RSTC1SIHRvIGluc2VydCBpdAorCQkJCWxpdGVyYWxseS4KIAkJU2VlIHxyZWdpc3RlcnN8IGFib3V0IHJlZ2lzdGVycy4gIHtub3QgaW4gVml9CiAKIENUUkwtUiBDVFJMLVIgezAtOWEteiIlIyorLzouLT19CQkJKmlfQ1RSTC1SX0NUUkwtUioKZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL2ludHJvLnR4dCBiL3J1bnRpbWUvZG9jL2ludHJvLnR4dAppbmRleCAwM2Y3MzE1Li4wZDM2MjdjIDEwMDY0NAotLS0gYS9ydW50aW1lL2RvYy9pbnRyby50eHQKKysrIGIvcnVudGltZS9kb2MvaW50cm8udHh0CkBAIC0xLDQgKzEsNCBAQAotKmludHJvLnR4dCogICAgIEZvciBWaW0gdmVyc2lvbiA3LjBhYS4gIExhc3QgY2hhbmdlOiAyMDA0IE9jdCAwOAorKmludHJvLnR4dCogICAgIEZvciBWaW0gdmVyc2lvbiA3LjBhYS4gIExhc3QgY2hhbmdlOiAyMDA0IE5vdiAxOAogCiAKIAkJICBWSU0gUkVGRVJFTkNFIE1BTlVBTCAgICBieSBCcmFtIE1vb2xlbmFhcgpAQCAtMzUwLDcgKzM1MCw3IEBACiAJCWNvbmNhdGVuYXRlZC4gIEZvciBleGFtcGxlLCB7YS16QS1aMC05fSBpcyBhbnkgYWxwaGFudW1lcmljCiAJCWNoYXJhY3Rlci4KIAotCQkJCQkJCSp7bW90aW9ufSoKKwkJCQkJCSp7bW90aW9ufSogKm1vdmVtZW50Kgoge21vdGlvbn0JQSBjb21tYW5kIHRoYXQgbW92ZXMgdGhlIGN1cnNvci4gIFRoZXNlIGFyZSBleHBsYWluZWQgaW4KIAkJfG1vdGlvbi50eHR8LiAgRXhhbXBsZXM6CiAJCQl3CQl0byBzdGFydCBvZiBuZXh0IHdvcmQKZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL21hcC50eHQgYi9ydW50aW1lL2RvYy9tYXAudHh0CmluZGV4IDhjMDVkZGMuLjhjZDg4NTQgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvZG9jL21hcC50eHQKKysrIGIvcnVudGltZS9kb2MvbWFwLnR4dApAQCAtMSw0ICsxLDQgQEAKLSptYXAudHh0KiAgICAgICBGb3IgVmltIHZlcnNpb24gNy4wYWEuICBMYXN0IGNoYW5nZTogMjAwNCBNYXkgMjEKKyptYXAudHh0KiAgICAgICBGb3IgVmltIHZlcnNpb24gNy4wYWEuICBMYXN0IGNoYW5nZTogMjAwNCBEZWMgMDkKIAogCiAJCSAgVklNIFJFRkVSRU5DRSBNQU5VQUwgICAgYnkgQnJhbSBNb29sZW5hYXIKQEAgLTIzMiw4ICsyMzIsNiBAQAogaXMgdHlwZWQuICBUaGUgc3RhdGUgbGFzdCB1c2VkIGlzIHJlbWVtYmVyZWQgZm9yIEluc2VydCBtb2RlIGFuZCBTZWFyY2gKIHBhdHRlcm5zIHNlcGFyYXRlbHkuICBUaGUgc3RhdGUgZm9yIEluc2VydCBtb2RlIGlzIGFsc28gdXNlZCB3aGVuIHR5cGluZyBhCiBjaGFyYWN0ZXIgYXMgYW4gYXJndW1lbnQgdG8gY29tbWFuZCBsaWtlICJmIiBvciAidCIuCi0gICBXaGVuIGFkZGluZyBhICI6bG1hcCIgbWFwcGluZyB0aGUgdXNlIG9mIHRoZXNlIG1hcHBpbmdzIGluIEluc2VydCBtb2RlIGFuZAotZm9yIFNlYXJjaCBwYXR0ZXJucyB3aWxsIGJlIHN3aXRjaGVkIG9uLgogICAgTGFuZ3VhZ2UgbWFwcGluZ3Mgd2lsbCBuZXZlciBiZSBhcHBsaWVkIHRvIGFscmVhZHkgbWFwcGVkIGNoYXJhY3RlcnMuICBUaGV5CiBhcmUgb25seSB1c2VkIGZvciB0eXBlZCBjaGFyYWN0ZXJzLiAgVGhpcyBhc3N1bWVzIHRoYXQgdGhlIGxhbmd1YWdlIG1hcHBpbmcKIHdhcyBhbHJlYWR5IGRvbmUgd2hlbiB0eXBpbmcgdGhlIG1hcHBpbmcuCmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy9tb3Rpb24udHh0IGIvcnVudGltZS9kb2MvbW90aW9uLnR4dAppbmRleCA5ZDE0OWUwLi40Zjk0MDVmIDEwMDY0NAotLS0gYS9ydW50aW1lL2RvYy9tb3Rpb24udHh0CisrKyBiL3J1bnRpbWUvZG9jL21vdGlvbi50eHQKQEAgLTEsNCArMSw0IEBACi0qbW90aW9uLnR4dCogICAgRm9yIFZpbSB2ZXJzaW9uIDcuMGFhLiAgTGFzdCBjaGFuZ2U6IDIwMDQgU2VwIDA3CisqbW90aW9uLnR4dCogICAgRm9yIFZpbSB2ZXJzaW9uIDcuMGFhLiAgTGFzdCBjaGFuZ2U6IDIwMDQgTm92IDIzCiAKIAogCQkgIFZJTSBSRUZFUkVOQ0UgTUFOVUFMICAgIGJ5IEJyYW0gTW9vbGVuYWFyCkBAIC04MTQsOCArODE0LDggQEAKIAkJCWFyZWEgaW4gdGhlIGN1cnJlbnQgYnVmZmVyLiAge25vdCBpbiBWaX0uCiAKIAkJCQkJCQkqJycqICpgYCoKLScnICBgYAkJCVRvIHRoZSBwb3NpdGlvbiBiZWZvcmUgbGF0ZXN0IGp1bXAsIG9yIHdoZXJlIHRoZSBsYXN0Ci0JCQkibSciIG9yICJtYCIgY29tbWFuZCB3YXMgZ2l2ZW4uICBOb3Qgc2V0IHdoZW4gdGhlCisnJyAgYGAJCQlUbyB0aGUgcG9zaXRpb24gYmVmb3JlIHRoZSBsYXRlc3QganVtcCwgb3Igd2hlcmUgdGhlCisJCQlsYXN0ICJtJyIgb3IgIm1gIiBjb21tYW5kIHdhcyBnaXZlbi4gIE5vdCBzZXQgd2hlbiB0aGUKIAkJCXw6a2VlcGp1bXBzfCBjb21tYW5kIG1vZGlmaWVyIHdhcyB1c2VkLgogCQkJQWxzbyBzZWUgfHJlc3RvcmUtcG9zaXRpb258LgogCkBAIC0xMjQwLDcgKzEyNDAsNyBAQAogCQkJQ3Vyc29yIGlzIGFkanVzdGVkIGZvciAnc2Nyb2xsb2ZmJyBvcHRpb24uCiAKIDxMZWZ0TW91c2U+CQlNb3ZlcyB0byB0aGUgcG9zaXRpb24gb24gdGhlIHNjcmVlbiB3aGVyZSB0aGUgbW91c2UKLQkJCWNsaWNrIGlzIHxpbmNsdXNpdmV8LiAgU2VlIGFsc28gfDxMZWZ0TW91c2U+fC4gIElmIHRoZQorCQkJY2xpY2sgaXMgfGV4Y2x1c2l2ZXwuICBTZWUgYWxzbyB8PExlZnRNb3VzZT58LiAgSWYgdGhlCiAJCQlwb3NpdGlvbiBpcyBpbiBhIHN0YXR1cyBsaW5lLCB0aGF0IHdpbmRvdyBpcyBtYWRlIHRoZQogCQkJYWN0aXZlIHdpbmRvdyBhbmQgdGhlIGN1cnNvciBpcyBub3QgbW92ZWQuICB7bm90IGluIFZpfQogCmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy9vcHRpb25zLnR4dCBiL3J1bnRpbWUvZG9jL29wdGlvbnMudHh0CmluZGV4IDc2OWE0NWMuLmE4ODhkOTIgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvZG9jL29wdGlvbnMudHh0CisrKyBiL3J1bnRpbWUvZG9jL29wdGlvbnMudHh0CkBAIC0xLDQgKzEsNCBAQAotKm9wdGlvbnMudHh0KglGb3IgVmltIHZlcnNpb24gNy4wYWEuICBMYXN0IGNoYW5nZTogMjAwNCBPY3QgMjEKKypvcHRpb25zLnR4dCoJRm9yIFZpbSB2ZXJzaW9uIDcuMGFhLiAgTGFzdCBjaGFuZ2U6IDIwMDQgRGVjIDA5CiAKIAogCQkgIFZJTSBSRUZFUkVOQ0UgTUFOVUFMCSAgYnkgQnJhbSBNb29sZW5hYXIKQEAgLTEzOSw2ICsxMzksOSBAQAogKHRoZSBeWyBpcyBhIHJlYWwgPEVzYz4gaGVyZSwgdXNlIENUUkwtViA8RXNjPiB0byBlbnRlciBpdCkKIFRoZSBhZHZhbnRhZ2Ugb3ZlciBhIG1hcHBpbmcgaXMgdGhhdCBpdCB3b3JrcyBpbiBhbGwgc2l0dWF0aW9ucy4KIAorVGhlIHRfeHggb3B0aW9ucyBjYW5ub3QgYmUgc2V0IGZyb20gYSB8bW9kZWxpbmV8IG9yIGluIHRoZSB8c2FuZGJveHwsIGZvcgorc2VjdXJpdHkgcmVhc29ucy4KKwogVGhlIGxpc3RpbmcgZnJvbSAiOnNldCIgbG9va3MgZGlmZmVyZW50IGZyb20gVmkuICBMb25nIHN0cmluZyBvcHRpb25zIGFyZSBwdXQKIGF0IHRoZSBlbmQgb2YgdGhlIGxpc3QuICBUaGUgbnVtYmVyIG9mIG9wdGlvbnMgaXMgcXVpdGUgbGFyZ2UuICBUaGUgb3V0cHV0IG9mCiAic2V0IGFsbCIgcHJvYmFibHkgZG9lcyBub3QgZml0IG9uIHRoZSBzY3JlZW4sIGNhdXNpbmcgVmltIHRvIGdpdmUgdGhlCkBAIC05NTMsNiArOTU2LDcgQEAKIAlhY2NpZGVudGFsbHkgb3ZlcndyaXRpbmcgZXhpc3RpbmcgZmlsZXMgd2l0aCBhIGJhY2t1cCBmaWxlLiAgWW91IG1pZ2h0CiAJcHJlZmVyIHVzaW5nICIuYmFrIiwgYnV0IG1ha2Ugc3VyZSB0aGF0IHlvdSBkb24ndCBoYXZlIGZpbGVzIHdpdGgKIAkiLmJhayIgdGhhdCB5b3Ugd2FudCB0byBrZWVwLgorCU9ubHkgbm9ybWFsIGZpbGUgbmFtZSBjaGFyYWN0ZXJzIGNhbiBiZSB1c2VkLCAiL1wqP1t8PD4iIGFyZSBpbGxlZ2FsLgogCiAJSWYgeW91IGxpa2UgdG8ga2VlcCBhIGxvdCBvZiBiYWNrdXBzLCB5b3UgY291bGQgdXNlIGEgQnVmV3JpdGVQcmUKIAlhdXRvY29tbWFuZCB0byBjaGFuZ2UgJ2JhY2t1cGV4dCcganVzdCBiZWZvcmUgd3JpdGluZyB0aGUgZmlsZSB0bwpAQCAtMTgzNSw3ICsxODM5LDkgQEAKIAkJCWV2ZXJ5dGhpbmcgaW5zaWRlIHF1b3RlcyBpcyBpZ25vcmVkLiAgV2hlbiBtYXRjaGluZyBhCiAJCQlwYXJlbiBpbnNpZGUgcXVvdGVzLCBpdCB3aWxsIGZpbmQgdGhlIG1hdGNoaW5nIG9uZSAoaWYKIAkJCXRoZXJlIGlzIG9uZSkuICBUaGlzIHdvcmtzIHZlcnkgd2VsbCBmb3IgQyBwcm9ncmFtcy4KLQkJCQkJCQkJKmNwby1zdGFyKgorCQkJVGhpcyBmbGFnIGlzIGFsc28gdXNlZCBmb3Igb3RoZXIgZmVhdHVyZXMsIHN1Y2ggYXMKKwkJCUMtaW5kZW50aW5nLgorCQkJIAkJCQkJY3BvLXN0YXIqCiAJCSoJVXNlICI6KiIgaW4gdGhlIHNhbWUgd2F5IGFzICI6QCIuICBXaGVuIG5vdCBpbmNsdWRlZCwKIAkJCSI6KiIgaXMgYW4gYWxpYXMgZm9yICI6JzwsJz4iLCBzZWxlY3QgdGhlIFZpc3VhbCBhcmVhLgogCQkJCQkJCQkqY3BvLTwqCkBAIC0yNDc5LDYgKzI0ODUsNyBAQAogCXR5cGUgdGhhdCBpcyBhY3R1YWxseSBzdG9yZWQgd2l0aCB0aGUgZmlsZS4KIAlUaGlzIG9wdGlvbiBpcyBub3QgY29waWVkIHRvIGFub3RoZXIgYnVmZmVyLCBpbmRlcGVuZGVudCBvZiB0aGUgJ3MnIG9yCiAJJ1MnIGZsYWcgaW4gJ2Nwb3B0aW9ucycuCisJT25seSBub3JtYWwgZmlsZSBuYW1lIGNoYXJhY3RlcnMgY2FuIGJlIHVzZWQsICIvXCo/W3w8PiIgYXJlIGlsbGVnYWwuCiAKIAkJCQkJCSonZmlsbGNoYXJzJyogKidmY3MnKgogJ2ZpbGxjaGFycycgJ2ZjcycJc3RyaW5nCShkZWZhdWx0ICJ2ZXJ0OnwsZm9sZDotIikKQEAgLTI3MjUsNiArMjczMiwyMCBAQAogCVRoaXMgb3B0aW9uIGNhbm5vdCBiZSBzZXQgZnJvbSBhIHxtb2RlbGluZXwgb3IgaW4gdGhlIHxzYW5kYm94fCwgZm9yCiAJc2VjdXJpdHkgcmVhc29ucy4KIAorCQkJCQkJCSonZnN5bmMnKiAqJ2ZzJyoKKydmc3luYycgJ2ZzJwkJYm9vbGVhbgkoZGVmYXVsdCBvbikKKwkJCWdsb2JhbAorCQkJe25vdCBpbiBWaX0KKwlXaGVuIG9uLCB0aGUgbGlicmFyeSBmdW5jdGlvbiBmc3luYygpIHdpbGwgYmUgY2FsbGVkIGFmdGVyIHdyaXRpbmcgYQorCWZpbGUuICBUaGlzIHdpbGwgZmx1c2ggYSBmaWxlIHRvIGRpc2ssIGVuc3VyaW5nIHRoYXQgaXQgaXMgc2FmZWx5CisJd3JpdHRlbiBldmVuIG9uIGZpbGVzeXN0ZW1zIHdoaWNoIGRvIG1ldGFkYXRhLW9ubHkgam91cm5hbGluZy4gIFRoaXMKKwl3aWxsIGZvcmNlIHRoZSBoYXJkZHJpdmUgdG8gc3BpbiB1cCBvbiBMaW51eCBzeXN0ZW1zIHJ1bm5pbmcgaW4gbGFwdG9wCisJbW9kZSwgc28gaXQgbWF5IGJlIHVuZGVzaXJhYmxlIGluIHNvbWUgc2l0dWF0aW9ucy4gIEJlIHdhcm5lZCB0aGF0CisJdHVybmluZyB0aGlzIG9mZiBpbmNyZWFzZXMgdGhlIGNoYW5jZXMgb2YgZGF0YSBsb3NzIGFmdGVyIGEgY3Jhc2guICBPbgorCXN5c3RlbXMgd2l0aG91dCBhbiBmc3luYygpIGltcGxlbWVudGF0aW9uLCB0aGlzIHZhcmlhYmxlIGlzIGFsd2F5cworCW9mZi4KKwlBbHNvIHNlZSAnc3dhcHN5bmMnIGZvciBjb250cm9sbGluZyBmc3luYygpIG9uIHN3YXAgZmlsZXMuCisKIAkJCQkgICAqJ2dkZWZhdWx0JyogKidnZCcqIConbm9nZGVmYXVsdCcqIConbm9nZCcqCiAnZ2RlZmF1bHQnICdnZCcJCWJvb2xlYW4JKGRlZmF1bHQgb2ZmKQogCQkJZ2xvYmFsCkBAIC0yNzkxLDYgKzI4MTIsNyBAQAogCXRoZSBoZWlnaHQgb2YgdGhlIGN1cnNvciBjYW4gYmUgY2hhbmdlZC4gIFRoaXMgY2FuIGJlIGRvbmUgYnkKIAlzcGVjaWZ5aW5nIGEgYmxvY2sgY3Vyc29yLCBvciBhIHBlcmNlbnRhZ2UgZm9yIGEgdmVydGljYWwgb3IKIAlob3Jpem9udGFsIGN1cnNvci4KKwlGb3IgYSBjb25zb2xlIHRoZSAndF9TSScgYW5kICd0X0VJJyBlc2NhcGUgc2VxdWVuY2VzIGFyZSB1c2VkLgogCiAJVGhlIG9wdGlvbiBpcyBhIGNvbW1hIHNlcGFyYXRlZCBsaXN0IG9mIHBhcnRzLiAgRWFjaCBwYXJ0IGNvbnNpc3Qgb2YgYQogCW1vZGUtbGlzdCBhbmQgYW4gYXJndW1lbnQtbGlzdDoKQEAgLTM2ODYsNiArMzcwOCw3IEBACiAJU2V0dGluZyB0aGlzIG9wdGlvbiB0byBhIHZhbGlkIGtleW1hcCBuYW1lIGhhcyB0aGUgc2lkZSBlZmZlY3Qgb2YKIAlzZXR0aW5nICdpbWluc2VydCcgdG8gb25lLCBzbyB0aGF0IHRoZSBrZXltYXAgYmVjb21lcyBlZmZlY3RpdmUuCiAJJ2ltc2VhcmNoJyBpcyBhbHNvIHNldCB0byBvbmUsIHVubGVzcyBpdCB3YXMgLTEKKwlPbmx5IG5vcm1hbCBmaWxlIG5hbWUgY2hhcmFjdGVycyBjYW4gYmUgdXNlZCwgIi9cKj9bfDw+IiBhcmUgaWxsZWdhbC4KIAogCQkJCQkqJ2tleW1vZGVsJyogKidrbScqCiAna2V5bW9kZWwnICdrbScJCXN0cmluZwkoZGVmYXVsdCAiIikKQEAgLTM3NzcsNiArMzgwMCw3IEBACiAJbWF0dGVyIHdoYXQgJExBTkcgaXMgc2V0IHRvOiA+CiAJCTpzZXQgbGFuZ21lbnU9bmxfTkwuSVNPXzg4NTktMQogPAlXaGVuICdsYW5nbWVudScgaXMgZW1wdHksIHx2Omxhbmd8IGlzIHVzZWQuCisJT25seSBub3JtYWwgZmlsZSBuYW1lIGNoYXJhY3RlcnMgY2FuIGJlIHVzZWQsICIvXCo/W3w8PiIgYXJlIGlsbGVnYWwuCiAJSWYgeW91ciAkTEFORyBpcyBzZXQgdG8gYSBub24tRW5nbGlzaCBsYW5ndWFnZSBidXQgeW91IGRvIHdhbnQgdG8gdXNlCiAJdGhlIEVuZ2xpc2ggbWVudXM6ID4KIAkJOnNldCBsYW5nbWVudT1ub25lCkBAIC00NDI3LDYgKzQ0NTEsNyBAQAogCVVzaW5nICdwYXRjaG1vZGUnIGZvciBjb21wcmVzc2VkIGZpbGVzIGFwcGVuZHMgdGhlIGV4dGVuc2lvbiBhdCB0aGUKIAllbmQgKGUuZy4sICJmaWxlLmd6Lm9yaWciKSwgdGh1cyB0aGUgcmVzdWx0aW5nIG5hbWUgaXNuJ3QgYWx3YXlzCiAJcmVjb2duaXplZCBhcyBhIGNvbXByZXNzZWQgZmlsZS4KKwlPbmx5IG5vcm1hbCBmaWxlIG5hbWUgY2hhcmFjdGVycyBjYW4gYmUgdXNlZCwgIi9cKj9bfDw+IiBhcmUgaWxsZWdhbC4KIAogCQkJCQkqJ3BhdGgnKiAqJ3BhJyogKkUzNDMqICpFMzQ1KiAqRTM0NyoKICdwYXRoJyAncGEnCQlzdHJpbmcJKGRlZmF1bHQgb24gVW5peDogIi4sL3Vzci9pbmNsdWRlLCwiCkBAIC00NTM3LDYgKzQ1NjIsOCBAQAogCQkJZmVhdHVyZX0KIAlUaGUgbmFtZSBvZiB0aGUgcHJpbnRlciB0byBiZSB1c2VkIGZvciB8OmhhcmRjb3B5fC4KIAlTZWUgfHBkZXYtb3B0aW9ufC4KKwlUaGlzIG9wdGlvbiBjYW5ub3QgYmUgc2V0IGZyb20gYSB8bW9kZWxpbmV8IG9yIGluIHRoZSB8c2FuZGJveHwsIGZvcgorCXNlY3VyaXR5IHJlYXNvbnMuCiAKIAkJCQkJCSoncHJpbnRlbmNvZGluZycqIConcGVuYycqCiAncHJpbnRlbmNvZGluZycgJ3BlbmMnCVN0cmluZwkoZGVmYXVsdCBlbXB0eSwgZXhjZXB0IGZvciBzb21lIHN5c3RlbXMpCkBAIC01NjQ3LDYgKzU2NzQsNyBAQAogCXN5c3RlbXMgdGhlIHN3YXAgZmlsZSB3aWxsIG5vdCBiZSB3cml0dGVuIGF0IGFsbC4gIEZvciBhIHVuaXggc3lzdGVtCiAJc2V0dGluZyBpdCB0byAic3luYyIgd2lsbCB1c2UgdGhlIHN5bmMoKSBjYWxsIGluc3RlYWQgb2YgdGhlIGRlZmF1bHQKIAlmc3luYygpLCB3aGljaCBtYXkgd29yayBiZXR0ZXIgb24gc29tZSBzeXN0ZW1zLgorCVRoZSAnZnN5bmMnIG9wdGlvbiBpcyB1c2VkIGZvciB0aGUgYWN0dWFsIGZpbGUuCiAKIAkJCQkJCSonc3dpdGNoYnVmJyogKidzd2InKgogJ3N3aXRjaGJ1ZicgJ3N3YicJc3RyaW5nCShkZWZhdWx0ICIiKQpAQCAtNTY4Nyw2ICs1NzE1LDcgQEAKIAlTeW50YXggYXV0b2NvbW1hbmQgZXZlbnQgaXMgdHJpZ2dlcmVkIHdpdGggdGhlIHZhbHVlIGFzIGFyZ3VtZW50LgogCVRoaXMgb3B0aW9uIGlzIG5vdCBjb3BpZWQgdG8gYW5vdGhlciBidWZmZXIsIGluZGVwZW5kZW50IG9mIHRoZSAncycgb3IKIAknUycgZmxhZyBpbiAnY3BvcHRpb25zJy4KKwlPbmx5IG5vcm1hbCBmaWxlIG5hbWUgY2hhcmFjdGVycyBjYW4gYmUgdXNlZCwgIi9cKj9bfDw+IiBhcmUgaWxsZWdhbC4KIAogCQkJCQkqJ3RhYnN0b3AnKiAqJ3RzJyoKICd0YWJzdG9wJyAndHMnCQludW1iZXIJKGRlZmF1bHQgOCkKQEAgLTYwNjUsNiArNjA5NCw4IEBACiAJVGhpcyBvcHRpb24gd2lsbCBiZSB1c2VkIGZvciB0aGUgd2luZG93IHRpdGxlIHdoZW4gZXhpdGluZyBWaW0gaWYgdGhlCiAJb3JpZ2luYWwgdGl0bGUgY2Fubm90IGJlIHJlc3RvcmVkLiAgT25seSBoYXBwZW5zIGlmICd0aXRsZScgaXMgb24gb3IKIAkndGl0bGVzdHJpbmcnIGlzIG5vdCBlbXB0eS4KKwlUaGlzIG9wdGlvbiBjYW5ub3QgYmUgc2V0IGZyb20gYSB8bW9kZWxpbmV8IG9yIGluIHRoZSB8c2FuZGJveHwsIGZvcgorCXNlY3VyaXR5IHJlYXNvbnMuCiAJCQkJCQkqJ3RpdGxlc3RyaW5nJyoKICd0aXRsZXN0cmluZycJCXN0cmluZwkoZGVmYXVsdCAiIikKIAkJCWdsb2JhbApAQCAtNjY0OSw4ICs2NjgwLDggQEAKIAkJa2V5cyBjYW4gYmUgbWFwcGVkLgogCUlmIHRoZSBtZW51IGlzIGRpc2FibGVkIGJ5IGV4Y2x1ZGluZyAnbScgZnJvbSAnZ3Vpb3B0aW9ucycsIHRoZSBBTFQKIAlrZXkgaXMgbmV2ZXIgdXNlZCBmb3IgdGhlIG1lbnUuCi0JSW4gdGhlIFdpbjMyIHZlcnNpb24sIHRoZSA8RjEwPiBrZXkgaXMgaGFuZGxlZCBsaWtlIHRoaXMgdG9vLCBzaW5jZQotCVdpbmRvd3MgdXNlcyBpdCB0byBzZWxlY3QgYSBtZW51LgorCVRoaXMgb3B0aW9uIGlzIG5vdCB1c2VkIGZvciA8RjEwPjsgb24gV2luMzIgYW5kIHdpdGggR1RLIDxGMTA+IHdpbGwKKwlzZWxlY3QgdGhlIG1lbnUsIHVubGVzcyBpdCBoYXMgYmVlbiBtYXBwZWQuCiAKIAkJCQkJCSond2luaGVpZ2h0JyogKid3aCcqICpFNTkxKgogJ3dpbmhlaWdodCcgJ3doJwludW1iZXIJKGRlZmF1bHQgMSkKZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL3BpX25ldHJ3LnR4dCBiL3J1bnRpbWUvZG9jL3BpX25ldHJ3LnR4dAppbmRleCA0N2QwZDdlLi40ZTgyNDNkIDEwMDY0NAotLS0gYS9ydW50aW1lL2RvYy9waV9uZXRydy50eHQKKysrIGIvcnVudGltZS9kb2MvcGlfbmV0cncudHh0CkBAIC0xLDQgKzEsNCBAQAotKnBpX25ldHJ3LnR4dCAgRm9yIFZpbSB2ZXJzaW9uIDYuMi4gIExhc3QgY2hhbmdlOiBTZXAgMTMsIDIwMDQKKypwaV9uZXRydy50eHQqICBGb3IgVmltIHZlcnNpb24gNi4zLiAgTGFzdCBjaGFuZ2U6IE9jdCAwOCwgMjAwNAogCiAKIAkJVklNIFJFRkVSRU5DRSBNQU5VQUwgICAgYnkgQ2hhcmxlcyBFLiBDYW1wYmVsbCwgSnIuCkBAIC01MzYsMTEgKzUzNiwxMyBAQAogICAgICA8Yy1sPi4uLi4uLlJlZnJlc2hpbmcgdGhlIExpc3RpbmcuLi4uLi4uLi4uLi4uLi4uLi58bmV0cnctY3RybC1sfAogICAgICBvLi4uLi4uLi4uLkJyb3dzaW5nIHdpdGggYSBIb3Jpem9udGFsIFNwbGl0Li4uLi4uLi58bmV0cnctb3wKICAgICAgcC4uLi4uLi4uLi5QcmV2aWV3IFdpbmRvdy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4ufG5ldHJ3LXB8Ci0gICAgIHEuLi4uLi4uLi4uTGlzdGluZyBCb29rbWFya3MuLi4uLi4uLi4uLi4uLi4uLi4uLi4uLnxuZXRydy1xfAorICAgICBxLi4uLi4uLi4uLkxpc3RpbmcgQm9va21hcmtzIGFuZCBIaXN0b3J5Li4uLi4uLi4uLi58bmV0cnctcXwKICAgICAgci4uLi4uLi4uLi5SZXZlcnNpbmcgU29ydGluZyBPcmRlci4uLi4uLi4uLi4uLi4uLi4ufG5ldHJ3LXJ8CiAgICAgIFIuLi4uLi4uLi4uUmVuYW1pbmcgRmlsZXMgb3IgRGlyZWN0b3JpZXMuLi4uLi4uLi4uLnxuZXRydy1SfAogICAgICBzLi4uLi4uLi4uLlNlbGVjdGluZyBTb3J0aW5nIFN0eWxlLi4uLi4uLi4uLi4uLi4uLi58bmV0cnctc3wKICAgICAgUy4uLi4uLi4uLi5FZGl0aW5nIHRoZSBTb3J0aW5nIFNlcXVlbmNlLi4uLi4uLi4uLi4ufG5ldHJ3LVN8CisgICAgIHUuLi4uLi4uLi4uQ2hhbmdpbmcgdG8gYSBQcmVkZWNlc3NvciBEaXJlY3RvcnkuLi4uLnxuZXRydy11fAorICAgICBVLi4uLi4uLi4uLkNoYW5naW5nIHRvIGEgU3VjY2Vzc29yIERpcmVjdG9yeS4uLi4uLi58bmV0cnctVXwKICAgICAgdi4uLi4uLi4uLi5Ccm93c2luZyB3aXRoIGEgVmVydGljYWwgU3BsaXQuLi4uLi4uLi4ufG5ldHJ3LXZ8CiAgICAgIHguLi4uLi4uLi4uQ3VzdG9taXppbmcgQnJvd3NpbmcuLi4uLi4uLi4uLi4uLi4uLi4uLnxuZXRydy14fAogCkBAIC03NTEsNyArNzUzLDcgQEAKIFRoZSAiPGN0cmwtaD4iIG1hcCBicmluZ3MgdXAgYSByZXF1ZXN0b3IgYWxsb3dpbmcgdGhlIHVzZXIgdG8gY2hhbmdlIHRoZQogZmlsZS9kaXJlY3RvcnkgaGlkaW5nIGxpc3QuICBUaGUgaGlkaW5nIGxpc3QgY29uc2lzdHMgb2Ygb25lIG9yIG1vcmUgcGF0dGVybnMKIGRlbGltaXRlZCBieSBjb21tYXMuICBGaWxlcyBhbmQvb3IgZGlyZWN0b3JpZXMgc2F0aXNmeWluZyB0aGVzZSBwYXR0ZXJucyB3aWxsCi1iZSBoaWRkZW4gKGllLiBub3Qgc2hvd24pLgorZWl0aGVyIGJlIGhpZGRlbiAoaWUuIG5vdCBzaG93bikgb3IgYmUgdGhlIG9ubHkgb25lcyBkaXNwbGF5ZWQgKHNlZSB8bmV0cnctYXwpLgogCiAKIEJST1dTSU5HIFdJVEggQSBIT1JJWk9OVEFMTFkgU1BMSVQgV0lORE9XCQkJKm5ldHJ3LW8qCkBAIC04MDIsNiArODA0LDIyIEBACiAiciIga2V5LgogCiAKK0NIQU5HSU5HIFRPIEEgUFJFREVDRVNTT1IgRElSRUNUT1JZCQkJCSpuZXRydy11KgorCitFdmVyeSB0aW1lIHlvdSBjaGFuZ2UgdG8gYSBuZXcgZGlyZWN0b3J5IChuZXcgZm9yIHRoZSBjdXJyZW50IHNlc3Npb24pLAorbmV0cncgd2lsbCBzYXZlIHRoZSBkaXJlY3RvcnkgaW4gYSByZWNlbnRseS12aXNpdGVkIGRpcmVjdG9yeSBoaXN0b3J5CitsaXN0ICh1bmxlc3MgZzpuZXRyd19kaXJoaXN0bWF4IGlzIHplcm87IGJ5IGRlZmF1bHQsIGl0cyB0ZW4pLiAgV2l0aCB0aGUKKyJ1IiBtYXAsIG9uZSBjYW4gY2hhbmdlIHRvIGFuIGVhcmxpZXIgZGlyZWN0b3J5IChwcmVkZWNlc3NvcikuICBUbyBkbwordGhlIG9wcG9zaXRlLCBzZWUgfG5ldHJ3LVV8LgorCisKK0NIQU5HSU5HIFRPIEEgU1VDQ0VTU09SIERJUkVDVE9SWQkJCQkqbmV0cnctVSoKKworV2l0aCB0aGUgIlUiIG1hcCwgb25lIGNhbiBjaGFuZ2UgdG8gYSBsYXRlciBkaXJlY3RvcnkgKHN1Y2Nlc3NvcikuCitUaGlzIG1hcCBpcyB0aGUgb3Bwb3NpdGUgb2YgdGhlICJ1IiBtYXAuIChzZWUgfG5ldHJ3LXV8KSAgVXNlIHRoZQorcSBtYXAgdG8gbGlzdCBib3RoIHRoZSBib29rbWFya3MgYW5kIGhpc3RvcnkuIChzZWUgfG5ldHJ3LXF8KQorCisKIEJST1dTSU5HIFdJVEggQSBWRVJUSUNBTExZIFNQTElUIFdJTkRPVwkJCQkqbmV0cnctdioKIAogTm9ybWFsbHkgb25lIGVudGVycyBhIGZpbGUgb3IgZGlyZWN0b3J5IHVzaW5nIHRoZSA8Y3I+LiAgSG93ZXZlciwgdGhlICJ2IgpAQCAtODU0LDcgKzg3Miw4IEBACiAJe2NudH1iCiAKIEFueSBjb3VudCBtYXkgYmUgdXNlZC4gIE9uZSBtYXkgdXNlIHZpbWluZm8ncyAiISIgb3B0aW9uIHRvIHJldGFpbiBib29rbWFya3MKLWJldHdlZW4gdmltIHNlc3Npb25zLgorYmV0d2VlbiB2aW0gc2Vzc2lvbnMuICBTZWUgfG5ldHJ3LUJ8IGZvciBob3cgdG8gcmV0dXJuIHRvIGEgYm9va21hcmsgYW5kCit8bmV0cnctcXwgZm9yIGhvdyB0byBsaXN0IHRoZW0uCiAKIAogQ0hBTkdJTkcgVE8gQSBCT09LTUFSS0VEIERJUkVDVE9SWQkJCQkqbmV0cnctQioKQEAgLTg2MywxMiArODgyLDE0IEBACiAKIAl7Y250fUIKIAotQW55IGNvdW50IG1heSBiZSB1c2VkLgorQW55IGNvdW50IG1heSBiZSB1c2VkIHRvIHJlZmVyZW5jZSBhbnkgb2YgdGhlIGJvb2ttYXJrcy4gIFNlZSB8bmV0cnctYnwKK2ZvciBob3cgdG8gYm9va21hcmsgYSBkaXJlY3RvcnkgYW5kIHxuZXRydy1xfCBmb3IgaG93IHRvIGxpc3QgdGhlbS4KIAogCi1MSVNUSU5HIEJPT0tNQVJLUwkJCQkJCSpuZXRydy1xKgorTElTVElORyBCT09LTUFSS1MgQU5EIEhJU1RPUlkJCQkJCSpuZXRydy1xKgogCi1QcmVzc2luZyAicSIgd2lsbCBsaXN0IHRoZSBib29rbWFya2VkIGRpcmVjdG9yaWVzLiAocXVlcnkpCitQcmVzc2luZyAicSIgd2lsbCBsaXN0IHRoZSBib29rbWFya2VkIGRpcmVjdG9yaWVzIGFuZCBkaXJlY3RvcnkgdHJhdmVyc2FsCitoaXN0b3J5IChxdWVyeSkuIChzZWUgfG5ldHJ3LWJ8LCB8bmV0cnctQnwsIHxuZXRydy11fCwgYW5kIHxuZXRydy1VfCkKIAogCiBJTVBST1ZJTkcgRElSRUNUT1JZIEJST1dTSU5HCQkJCSpuZXRydy1saXN0LWhhY2sqCkBAIC05OTEsMTEgKzEwMTIsMjYgQEAKIAkgICBhdHRlbXB0aW5nIHRvIHJlYWQvd3JpdGUgeW91ciBmaWxlIG92ZXIgdGhlIG5ldHdvcmsuICBQbGVhc2UKIAkgICBzZW5kIHRoYXQgaW5mb3JtYXRpb24gdG8gPG5ldHJ3LnZpbT4ncyBtYWludGFpbmVyLAogCi0JCWRyY2hpcE5PU1BBTSBhdCBjYW1wYmVsbGZhbWlseS5iaXogLSBOT1NQQU0KKwkJTmRyT2NoaXAgYXQgU2NhbXBiZWxsUGZhbWlseS5BYml6TSAtIE5PU1BBTQogCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIDEwLiBIaXN0b3J5CQkJCQkJKm5ldHJ3LWhpc3RvcnkqCiAKKwl2NTI6ICogbm9udW1iZXInaW5nIG5vdyBzZXQgZm9yIGJyb3dzaW5nIGJ1ZmZlcnMKKwkgICAgICogd2hlbiB0aGUgaGlkaW5nIGxpc3QgaGlkIGFsbCBmaWxlcywgZXJyb3IgbWVzc2FnZXMgZW5zdWVkLiBGaXhlZAorCSAgICAgKiB3aGVuIGJyb3dzaW5nLCBzd2YgaXMgc2V0LCBidXQgZGlyZWN0b3J5IGlzIG5vdCBzZXQsIHdoZW4gbmV0cncKKwkgICAgICAgd2FzIGF0dGVtcHRpbmcgdG8gcmVzdG9yZSBvcHRpb25zLCB2aW0gd2FudGVkIHRvIHNhdmUgYSBzd2FwZmlsZQorCSAgICAgICB0byBhIGxvY2FsIGRpcmVjdG9yeSB1c2luZyBhbiB1cmwtc3R5bGUgcGF0aC4gIEZpeGVkCisJdjUxOiAqIGN5Z3dpbiBkZXRlY3Rpb24gbm93IGF1dG9tYXRlZCAodXNpbmcgd2luZG93cyBhbmQgJnNoZWxsIGlzIGJhc2gpCisJICAgICAqIGN1c3RvbWl6YWJsZSBicm93c2VyICJmaWxlIiByZWplY3Rpb24gcGF0dGVybnMKKwkgICAgICogZGlyZWN0b3J5IGhpc3RvcnkKKwkgICAgICogOltyYW5nZV13IHVybCAgbm93IHN1cHBvcnRlZCAoaWUuIG5ldHJ3IGhhcyBhIEZpbGVXcml0ZUNtZCBldmVudCkKKwkgICAgICogZXJyb3IgbWVzc2FnZXMgaGF2ZSBhICJQcmVzcyA8Y3I+IHRvIGNvbnRpbnVlIiB0byBhbGxvdyB0aGVtCisJICAgICAgIHRvIGJlIHNlZW4KKwkgICAgICogZGlyZWN0b3J5IGJyb3dzZXIgZGlzcGxheXMgbm8gbG9uZ2VyIGJvdGhlciB0aGUgc3dhcGZpbGUKKwkgICAgICogdS9VIGNvbW1hbmRzIHRvIGdvIHVwIGFuZCBkb3duIHRoZSBoaXN0b3J5IHN0YWNrCisJICAgICAqIGhpc3Rvcnkgc3RhY2sgbWF5IGJlIHNhdmVkIHdpdGggdmltaW5mbyB3aXRoIGl0cyAiISIgb3B0aW9uCisJICAgICAqIGJ1Z2ZpeGVzIGFzc29jaWF0ZWQgd2l0aCB1bndhbnRlZCBbTm8gRmlsZXNdIGVudHJpZXMKIAl2NTA6ICogZGlyZWN0b3JpZXMgbm93IGRpc3BsYXllZCB1c2luZyBidWZ0eXBlPW5vZmlsZTsgc2hvdWxkIGtlZXAgdGhlCiAJICAgICAgIGRpcmVjdG9yeSBuYW1lcyBhcy1pcwogCSAgICAgKiBhdHRlbXB0cyB0byByZW1vdmUgZW1wdHkgIltObyBGaWxlXSIgYnVmZmVycyBsZWZ0b3ZlcgpAQCAtMTAwMyw4ICsxMDM5LDggQEAKIAkgICAgICogYnVnZml4OiBhICJjYXBzLWxvY2siIGVkaXRpbmcgZGlmZmljdWx0eSBsZWZ0IGluIHY0OSB3YXMgZml4ZWQKIAkgICAgICogc3ludGF4IGhpZ2hsaWdodGluZyBmb3IgIlNob3dpbmc6IiB0aGUgaGlkaW5nIGxpc3QgaW5jbHVkZWQKIAkgICAgICogYm9va21hcmtzIGNhbiBub3cgYmUgcmV0YWluZWQgaWYgIiEiIGlzIGluIHRoZSB2aW1pbmZvIG9wdGlvbgotCXY0OTogKiB3aWxsIHVzZSBmdHAgZm9yIGh0dHA6Ly8uLi4vIGJyb3dzaW5nIHY0ODogKiBPbmUgbWF5IHVzZSBmdHAgdG8KLQkgICAgICAgZG8gcmVtb3RlIGhvc3QgZmlsZSBicm93c2luZworCXY0OTogKiB3aWxsIHVzZSBmdHAgZm9yIGh0dHA6Ly8uLi4vIGJyb3dzaW5nIHY0ODoKKwkgICAgICogT25lIG1heSB1c2UgZnRwIHRvIGRvIHJlbW90ZSBob3N0IGZpbGUgYnJvd3NpbmcKIAkgICAgICogKHdpbmRvd3MgYW5kICFjeWd3aW4pIHJlbW90ZSBicm93c2luZyB3aXRoIGZ0cCBjYW4gbm93IHVzZQogCSAgICAgICB0aGUgImRpciIgY29tbWFuZCBpbnRlcm5hbGx5IHRvIHByb3ZpZGUgbGlzdGluZ3MKIAkgICAgICogZzpuZXRyd19rZWVwZGlyIG5vdyBhbGxvd3Mgb25lIHRvIGtlZXAgdGhlIGluaXRpYWwgY3VycmVudApAQCAtMTAzMiw5ICsxMDY4LDkgQEAKIAkgICAgICAgbGlzdGluZ3MKIAkgICAgICogaW1wcm92ZWQgdW51c3VhbCBmaWxlIGFuZCBkaXJlY3RvcnkgbmFtZSBoYW5kbGluZyBwcmV2aWV3CiAJICAgICAqIHdpbmRvdyBzdXBwb3J0Ci0JdjQ3OiAqIG5vdyBoYW5kbGVzIGxvY2FsIGRpcmVjdG9yeSBicm93c2luZy4gIHY0NjogKiBub3cgaGFuZGxlcwotCXJlbW90ZSBkaXJlY3RvcnkgYnJvd3NpbmcKLQkgICAgICogZzpuZXRyd19zaWxlbnQgKGlmIDEpIHdpbGwgY2F1c2UgYWxsIHRyYW5zZmVycyB0byBiZSBzaWxlbnQnZAorCXY0NzogKiBub3cgaGFuZGxlcyBsb2NhbCBkaXJlY3RvcnkgYnJvd3NpbmcuCisJdjQ2OiAqIG5vdyBoYW5kbGVzIHJlbW90ZSBkaXJlY3RvcnkgYnJvd3NpbmcKKwkgICAgICogZzpuZXRyd19zaWxlbnQgKGlmIDEpIHdpbGwgY2F1c2UgYWxsIHRyYW5zZmVycyB0byBiZSBzaWxlbnQKIAl2NDU6ICogbWFkZSB0aGUgW3VzZXJAXWhvc3RuYW1lOnBhdGggZm9ybSBhIGJpdCBtb3JlIHJlc3RyaWN0aXZlIHRvCiAJICAgICAgIGJldHRlciBoYW5kbGUgZXJyb3JzIGluIHVzaW5nIHByb3RvY29scyAoZS5nLiBzY3A6dXNyQGhvc3Q6ZmlsZQogCSAgICAgICB3YXMgYmVpbmcgcmVjb2duaXplZCBhcyBhbiByY3AgcmVxdWVzdCkgdjQ0OiAqIGNoYW5nZWQgZnJvbQpkaWZmIC0tZ2l0IGEvcnVudGltZS9kb2Mvc3ludGF4LnR4dCBiL3J1bnRpbWUvZG9jL3N5bnRheC50eHQKaW5kZXggMGUxNDdiNS4uNTgzYTc4NCAxMDA2NDQKLS0tIGEvcnVudGltZS9kb2Mvc3ludGF4LnR4dAorKysgYi9ydW50aW1lL2RvYy9zeW50YXgudHh0CkBAIC0xLDQgKzEsNCBAQAotKnN5bnRheC50eHQqCUZvciBWaW0gdmVyc2lvbiA3LjBhYS4gIExhc3QgY2hhbmdlOiAyMDA0IE9jdCAxMgorKnN5bnRheC50eHQqCUZvciBWaW0gdmVyc2lvbiA3LjBhYS4gIExhc3QgY2hhbmdlOiAyMDA0IERlYyAwOQogCiAKIAkJICBWSU0gUkVGRVJFTkNFIE1BTlVBTAkgIGJ5IEJyYW0gTW9vbGVuYWFyCkBAIC02NDAsNiArNjQwLDEwIEBACiBjX25vX2Nmb3JtYXQJCWRvbid0IGhpZ2hsaWdodCAlLWZvcm1hdHMgaW4gc3RyaW5ncwogY19ub19jOTkJCWRvbid0IGhpZ2hsaWdodCBDOTkgc3RhbmRhcmQgaXRlbXMKIAorV2hlbiAnZm9sZG1ldGhvZCcgaXMgc2V0IHRvICJzeW50YXgiIHRoZW4gLyogKi8gY29tbWVudHMgYW5kIHsgfSBibG9ja3Mgd2lsbAorYmVjb21lIGEgZm9sZC4gIElmIHlvdSBkb24ndCB3YW50IGNvbW1lbnRzIHRvIGJlY29tZSBhIGZvbGQgdXNlOiA+CisJOmxldCBjX25vX2NvbW1lbnRfZm9sZCA9IDEKKwogSWYgeW91IG5vdGljZSBoaWdobGlnaHRpbmcgZXJyb3JzIHdoaWxlIHNjcm9sbGluZyBiYWNrd2FyZHMsIHdoaWNoIGFyZSBmaXhlZAogd2hlbiByZWRyYXdpbmcgd2l0aCBDVFJMLUwsIHRyeSBzZXR0aW5nIHRoZSAiY19taW5saW5lcyIgaW50ZXJuYWwgdmFyaWFibGUKIHRvIGEgbGFyZ2VyIG51bWJlcjogPgpAQCAtMjEyOCw2ICsyMTMyLDkgQEAKIAogTXpTY2hlbWUtc3BlY2lmaWMgc3R1ZmYgd2lsbCBiZSB1c2VkIGlmIGI6aXNfbXpzY2hlbWUgb3IgZzppc19tenNjaGVtZQogdmFyaWFibGVzIGFyZSBkZWZpbmVkLgorIAorQWxzbyBzY2hlbWUudmltIHN1cHBvcnRzIGtleXdvcmRzIG9mIHRoZSBDaGlja2VuIFNjaGVtZS0+QyBjb21waWxlci4gIERlZmluZQorYjppc19jaGlja2VuIG9yIGc6aXNfY2hpY2tlbiwgaWYgeW91IG5lZWQgdGhlbS4KIAogCiBTREwJCQkJCQkqc2RsLnZpbSogKnNkbC1zeW50YXgqCmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy90YWdzIGIvcnVudGltZS9kb2MvdGFncwppbmRleCBiM2VhMGU4Li40YzAyMGExIDEwMDY0NAotLS0gYS9ydW50aW1lL2RvYy90YWdzCisrKyBiL3J1bnRpbWUvZG9jL3RhZ3MKQEAgLTIyOSw2ICsyMjksOCBAQAogJ2Zvcm1hdG9wdGlvbnMnCW9wdGlvbnMudHh0CS8qJ2Zvcm1hdG9wdGlvbnMnKgogJ2Zvcm1hdHByZycJb3B0aW9ucy50eHQJLyonZm9ybWF0cHJnJyoKICdmcCcJb3B0aW9ucy50eHQJLyonZnAnKgorJ2ZzJwlvcHRpb25zLnR4dAkvKidmcycqCisnZnN5bmMnCW9wdGlvbnMudHh0CS8qJ2ZzeW5jJyoKICdmdCcJb3B0aW9ucy50eHQJLyonZnQnKgogJ2djcicJb3B0aW9ucy50eHQJLyonZ2NyJyoKICdnZCcJb3B0aW9ucy50eHQJLyonZ2QnKgpAQCAtNzU2LDYgKzc1OCw3IEBACiAndF9DVicJdGVybS50eHQJLyondF9DVicqCiAndF9DbycJdGVybS50eHQJLyondF9DbycqCiAndF9ETCcJdGVybS50eHQJLyondF9ETCcqCisndF9FSScJdGVybS50eHQJLyondF9FSScqCiAndF9GMScJdGVybS50eHQJLyondF9GMScqCiAndF9GMicJdGVybS50eHQJLyondF9GMicqCiAndF9GMycJdGVybS50eHQJLyondF9GMycqCkBAIC03ODksNiArNzkyLDcgQEAKICd0X0tMJwl0ZXJtLnR4dAkvKid0X0tMJyoKICd0X1JJJwl0ZXJtLnR4dAkvKid0X1JJJyoKICd0X1JWJwl0ZXJtLnR4dAkvKid0X1JWJyoKKyd0X1NJJwl0ZXJtLnR4dAkvKid0X1NJJyoKICd0X1NiJwl0ZXJtLnR4dAkvKid0X1NiJyoKICd0X1NmJwl0ZXJtLnR4dAkvKid0X1NmJyoKICd0X1dQJwl0ZXJtLnR4dAkvKid0X1dQJyoKQEAgLTQyOTgsNyArNDMwMiw2IEBACiBjcG8tcAlvcHRpb25zLnR4dAkvKmNwby1wKgogY3BvLXIJb3B0aW9ucy50eHQJLypjcG8tcioKIGNwby1zCW9wdGlvbnMudHh0CS8qY3BvLXMqCi1jcG8tc3RhcglvcHRpb25zLnR4dAkvKmNwby1zdGFyKgogY3BvLXQJb3B0aW9ucy50eHQJLypjcG8tdCoKIGNwby11CW9wdGlvbnMudHh0CS8qY3BvLXUqCiBjcG8tdglvcHRpb25zLnR4dAkvKmNwby12KgpAQCAtNDkyOSw3ICs0OTMyLDYgQEAKIGhlYnJldy50eHQJaGVicmV3LnR4dAkvKmhlYnJldy50eHQqCiBoZWxwCXZhcmlvdXMudHh0CS8qaGVscCoKIGhlbHAtY29udGV4dAloZWxwLnR4dAkvKmhlbHAtY29udGV4dCoKLWhlbHAtdGFncwl0YWdzCTEKIGhlbHAtdHJhbnNsYXRlZAl2YXJpb3VzLnR4dAkvKmhlbHAtdHJhbnNsYXRlZCoKIGhlbHAteHRlcm0td2luZG93CXZhcmlvdXMudHh0CS8qaGVscC14dGVybS13aW5kb3cqCiBoZWxwLnR4dAloZWxwLnR4dAkvKmhlbHAudHh0KgpAQCAtNTM5MSw2ICs1MzkzLDcgQEAKIG1vdXNlLW92ZXJ2aWV3CXRlcm0udHh0CS8qbW91c2Utb3ZlcnZpZXcqCiBtb3VzZS1zd2FwLWJ1dHRvbnMJdGVybS50eHQJLyptb3VzZS1zd2FwLWJ1dHRvbnMqCiBtb3VzZS11c2luZwl0ZXJtLnR4dAkvKm1vdXNlLXVzaW5nKgorbW92ZW1lbnQJaW50cm8udHh0CS8qbW92ZW1lbnQqCiBtcy1kb3MJb3NfbXNkb3MudHh0CS8qbXMtZG9zKgogbXNkb3MJb3NfbXNkb3MudHh0CS8qbXNkb3MqCiBtc2Rvcy1hcnJvd3MJb3NfbXNkb3MudHh0CS8qbXNkb3MtYXJyb3dzKgpAQCAtNTQ2Miw2ICs1NDY1LDcgQEAKIG5ldHJ3LUQJcGlfbmV0cncudHh0CS8qbmV0cnctRCoKIG5ldHJ3LVIJcGlfbmV0cncudHh0CS8qbmV0cnctUioKIG5ldHJ3LVMJcGlfbmV0cncudHh0CS8qbmV0cnctUyoKK25ldHJ3LVUJcGlfbmV0cncudHh0CS8qbmV0cnctVSoKIG5ldHJ3LWFjdGl2YXRlCXBpX25ldHJ3LnR4dAkvKm5ldHJ3LWFjdGl2YXRlKgogbmV0cnctYglwaV9uZXRydy50eHQJLypuZXRydy1iKgogbmV0cnctYm9va21hcmsJcGlfbmV0cncudHh0CS8qbmV0cnctYm9va21hcmsqCkBAIC01NTA3LDYgKzU1MTEsNyBAQAogbmV0cnctcmVuYW1lCXBpX25ldHJ3LnR4dAkvKm5ldHJ3LXJlbmFtZSoKIG5ldHJ3LXMJcGlfbmV0cncudHh0CS8qbmV0cnctcyoKIG5ldHJ3LXRyYW5zcGFyZW50CXBpX25ldHJ3LnR4dAkvKm5ldHJ3LXRyYW5zcGFyZW50KgorbmV0cnctdQlwaV9uZXRydy50eHQJLypuZXRydy11KgogbmV0cnctdWlkcGFzcwlwaV9uZXRydy50eHQJLypuZXRydy11aWRwYXNzKgogbmV0cnctdXJscwlwaV9uZXRydy50eHQJLypuZXRydy11cmxzKgogbmV0cnctdglwaV9uZXRydy50eHQJLypuZXRydy12KgpAQCAtNTU1Myw2ICs1NTU4LDcgQEAKIG5ldy1pdGVtcy02CXZlcnNpb242LnR4dAkvKm5ldy1pdGVtcy02KgogbmV3LWl0ZW1zLTcJdmVyc2lvbjcudHh0CS8qbmV3LWl0ZW1zLTcqCiBuZXctbGluZS1jb250aW51YXRpb24JdmVyc2lvbjUudHh0CS8qbmV3LWxpbmUtY29udGludWF0aW9uKgorbmV3LW1hbnBhZ2UtdHJhbnMJdmVyc2lvbjcudHh0CS8qbmV3LW1hbnBhZ2UtdHJhbnMqCiBuZXctbXVsdGktYnl0ZQl2ZXJzaW9uNS50eHQJLypuZXctbXVsdGktYnl0ZSoKIG5ldy1tdWx0aS1sYW5nCXZlcnNpb242LnR4dAkvKm5ldy1tdWx0aS1sYW5nKgogbmV3LW5ldHdvcmstZmlsZXMJdmVyc2lvbjYudHh0CS8qbmV3LW5ldHdvcmstZmlsZXMqCkBAIC01NjkwLDYgKzU2OTYsNyBAQAogcGh0bWwudmltCXN5bnRheC50eHQJLypwaHRtbC52aW0qCiBwaV9leHBsLnR4dAlwaV9leHBsLnR4dAkvKnBpX2V4cGwudHh0KgogcGlfZ3ppcC50eHQJcGlfZ3ppcC50eHQJLypwaV9nemlwLnR4dCoKK3BpX25ldHJ3LnR4dAlwaV9uZXRydy50eHQJLypwaV9uZXRydy50eHQqCiBwaV9zcGVjLnR4dAlwaV9zcGVjLnR4dAkvKnBpX3NwZWMudHh0KgogcGx1Z2luCXVzcl8wNS50eHQJLypwbHVnaW4qCiBwbHVnaW4tZGV0YWlscwlmaWxldHlwZS50eHQJLypwbHVnaW4tZGV0YWlscyoKQEAgLTYwODQsNiArNjA5MSw3IEBACiB0X0NWCXRlcm0udHh0CS8qdF9DVioKIHRfQ28JdGVybS50eHQJLyp0X0NvKgogdF9ETAl0ZXJtLnR4dAkvKnRfREwqCit0X0VJCXRlcm0udHh0CS8qdF9FSSoKIHRfRjEJdGVybS50eHQJLyp0X0YxKgogdF9GMgl0ZXJtLnR4dAkvKnRfRjIqCiB0X0YzCXRlcm0udHh0CS8qdF9GMyoKQEAgLTYxMTcsNiArNjEyNSw3IEBACiB0X0tMCXRlcm0udHh0CS8qdF9LTCoKIHRfUkkJdGVybS50eHQJLyp0X1JJKgogdF9SVgl0ZXJtLnR4dAkvKnRfUlYqCit0X1NJCXRlcm0udHh0CS8qdF9TSSoKIHRfU2IJdGVybS50eHQJLyp0X1NiKgogdF9TZgl0ZXJtLnR4dAkvKnRfU2YqCiB0X1dQCXRlcm0udHh0CS8qdF9XUCoKQEAgLTYyOTksNiArNjMwOCw4IEBACiB0ZXJtY2FwCXRlcm0udHh0CS8qdGVybWNhcCoKIHRlcm1jYXAtY2hhbmdlZAl2ZXJzaW9uNC50eHQJLyp0ZXJtY2FwLWNoYW5nZWQqCiB0ZXJtY2FwLWNvbG9ycwl0ZXJtLnR4dAkvKnRlcm1jYXAtY29sb3JzKgordGVybWNhcC1jdXJzb3ItY29sb3IJdGVybS50eHQJLyp0ZXJtY2FwLWN1cnNvci1jb2xvcioKK3Rlcm1jYXAtY3Vyc29yLXNoYXBlCXRlcm0udHh0CS8qdGVybWNhcC1jdXJzb3Itc2hhcGUqCiB0ZXJtY2FwLXN5bnRheAlzeW50YXgudHh0CS8qdGVybWNhcC1zeW50YXgqCiB0ZXJtY2FwLXRpdGxlCXRlcm0udHh0CS8qdGVybWNhcC10aXRsZSoKIHRlcm1pbmFsLWNvbG9ycwlvc191bml4LnR4dAkvKnRlcm1pbmFsLWNvbG9ycyoKZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL3Rlcm0udHh0IGIvcnVudGltZS9kb2MvdGVybS50eHQKaW5kZXggYjQxOGU0Yy4uYjkyNTJhOSAxMDA2NDQKLS0tIGEvcnVudGltZS9kb2MvdGVybS50eHQKKysrIGIvcnVudGltZS9kb2MvdGVybS50eHQKQEAgLTEsNCArMSw0IEBACi0qdGVybS50eHQqICAgICAgRm9yIFZpbSB2ZXJzaW9uIDcuMGFhLiAgTGFzdCBjaGFuZ2U6IDIwMDQgT2N0IDIwCisqdGVybS50eHQqICAgICAgRm9yIFZpbSB2ZXJzaW9uIDcuMGFhLiAgTGFzdCBjaGFuZ2U6IDIwMDQgRGVjIDA3CiAKIAogCQkgIFZJTSBSRUZFUkVOQ0UgTUFOVUFMICAgIGJ5IEJyYW0gTW9vbGVuYWFyCkBAIC0yNzUsNiArMjc1LDggQEAKIAl0X0lFCXNldCBpY29uIHRleHQgZW5kCQkJCSp0X0lFKiAqJ3RfSUUnKgogCXRfV1AJc2V0IHdpbmRvdyBwb3NpdGlvbiAoWSwgWCkgaW4gcGl4ZWxzCQkqdF9XUCogKid0X1dQJyoKIAl0X1dTCXNldCB3aW5kb3cgc2l6ZSAoaGVpZ2h0LCB3aWR0aCkgaW4gY2hhcmFjdGVycwkqdF9XUyogKid0X1dTJyoKKwl0X1NJICAgIHN0YXJ0IGluc2VydCBtb2RlIChiYXIgY3Vyc29yIHNoYXBlKSAgICAgICAgICAgICp0X1NJKiAqJ3RfU0knKgorCXRfRUkgICAgZW5kIGluc2VydCBtb2RlIChibG9jayBjdXJzb3Igc2hhcGUpICAgICAgICAgICAgKnRfRUkqICondF9FSScqCiAJdF9SVglyZXF1ZXN0IHRlcm1pbmFsIHZlcnNpb24gc3RyaW5nIChmb3IgeHRlcm0pCSp0X1JWKiAqJ3RfUlYnKgogCQl8eHRlcm0tOGJpdHwgfHY6dGVybXJlc3BvbnNlfCB8J3R0eW1vdXNlJ3wgfHh0ZXJtLWNvZGVzfAogCkBAIC0zOTUsNiArMzk3LDE5IEBACiBJZiBvbmUgb2YgdGhlc2UgaXMgbm90IGF2YWlsYWJsZSwgJ3RfU2InIGFuZCAndF9TZicgYXJlIHVzZWQuICAndF9tZScgaXMgdXNlZAogdG8gcmVzZXQgdG8gdGhlIGRlZmF1bHQgY29sb3JzLgogCisJCQkJKnRlcm1jYXAtY3Vyc29yLXNoYXBlKiAqdGVybWNhcC1jdXJzb3ItY29sb3IqCitXaGVuIFZpbSBlbnRlcnMgSW5zZXJ0IG1vZGUgdGhlICd0X1NJJyBlc2NhcGUgc2VxdWVuY2UgaXMgc2VudC4gIFdoZW4gbGVhdmluZworSW5zZXJ0IG1vZGUgJ3RfRUknIGlzIHVzZWQuICBCdXQgb25seSBpZiBib3RoIGFyZSBkZWZpbmVkLiAgVGhpcyBjYW4gYmUgdXNlZAordG8gY2hhbmdlIHRoZSBzaGFwZSBvciBjb2xvciBvZiB0aGUgY3Vyc29yIGluIEluc2VydCBtb2RlLiAgVGhlc2UgYXJlIG5vdAorc3RhbmRhcmQgdGVybWNhcC90ZXJtaW5mbyBlbnRyaWVzLCB5b3UgbmVlZCB0byBzZXQgdGhlbSB5b3Vyc2VsZi4KK0V4YW1wbGUgZm9yIGFuIHh0ZXJtLCB0aGlzIGNoYW5nZXMgdGhlIGNvbG9yIG9mIHRoZSBjdXJzb3I6ID4KKyAgICBpZiAmdGVybSA9fiAieHRlcm0iCisJbGV0ICZ0X1NJID0gIlw8RXNjPl0xMjtwdXJwbGVceDciCisJbGV0ICZ0X0VJID0gIlw8RXNjPl0xMjtibHVlXHg3IgorICAgIGVuZGlmCitOT1RFOiBXaGVuIFZpbSBleGl0cyB0aGUgc2hhcGUgZm9yIE5vcm1hbCBtb2RlIHdpbGwgcmVtYWluLiAgVGhlIHNoYXBlIGZyb20KK2JlZm9yZSBWaW0gc3RhcnRlZCB3aWxsIG5vdCBiZSByZXN0b3JlZC4KKwogCQkJCQkJCSp0ZXJtY2FwLXRpdGxlKgogVGhlICd0X3RzJyBhbmQgJ3RfZnMnIG9wdGlvbnMgYXJlIHVzZWQgdG8gc2V0IHRoZSB3aW5kb3cgdGl0bGUgaWYgdGhlIHRlcm1pbmFsCiBhbGxvd3MgdGl0bGUgc2V0dGluZyB2aWEgc2VuZGluZyBzdHJpbmdzLiAgVGhleSBhcmUgc2VudCBiZWZvcmUgYW5kIGFmdGVyIHRoZQpkaWZmIC0tZ2l0IGEvcnVudGltZS9kb2MvdG9kby50eHQgYi9ydW50aW1lL2RvYy90b2RvLnR4dAppbmRleCBhZDUyMDlhLi5kNmRhNjJmIDEwMDY0NAotLS0gYS9ydW50aW1lL2RvYy90b2RvLnR4dAorKysgYi9ydW50aW1lL2RvYy90b2RvLnR4dApAQCAtMSw0ICsxLDQgQEAKLSp0b2RvLnR4dCogICAgICBGb3IgVmltIHZlcnNpb24gNy4wYWEuICBMYXN0IGNoYW5nZTogMjAwNCBPY3QgMjQKKyp0b2RvLnR4dCogICAgICBGb3IgVmltIHZlcnNpb24gNy4wYWEuICBMYXN0IGNoYW5nZTogMjAwNCBEZWMgMDkKIAogCiAJCSAgVklNIFJFRkVSRU5DRSBNQU5VQUwJICBieSBCcmFtIE1vb2xlbmFhcgpAQCAtMzAsNTcgKzMwLDYgQEAKIAkJCQkJCQkqa25vd24tYnVncyoKIC0tLS0tLS0tLS0tLS0tLS0tLS0tIEtub3duIGJ1Z3MgYW5kIGN1cnJlbnQgd29yayAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCi1JbmNsdWRlIE5ldEJlYW5zIHBhdGNoZXMgKEdvcmRvbiBQcmlldXIsIE9jdCAyMCkKLSAgICBTZWUgdHdvIG1lc3NhZ2VzIGZvciBsaXN0IG9mIGNoYW5nZWQgZmlsZXMuICBBZGRpdGlvbmFsbHk6Ci0JZG9jL2V2YWwudHh0Ci0gICAgRG9jcyBmb3IgbWVzc2FnZSBFNjgwLgotCi1MaW5lIG51bWJlciBub3QgdXBkYXRlZCB3aGVuIGluc2VydGluZyBhIGxpbmUgaW4gYW5vdGhlIHdpbmRvdy4gKEhpdGllcgotU3lsdmFpbiwgT2N0IDI0KQotCi1BYm9ydGluZyBhdCB0aGUgQVRURU5USU9OIHByb21wdCBjYXVzZXMgdHJvdWJsZToKLSAgICBidWZmZXIgcmVtYWlucyBhY3RpdmUsIG53aW5kb3dzIGlzbid0IGNsb3NlZCAoZml4ZWQgaW4gYnVmZmVyLmMpCi0gICAgYWx0ZXJuYXRlIGJ1ZmZlciBnZXRzICJyZWFkIGVycm9yIiBmbGFnLgotICAgICI6c2J1ZiIgYW5kICI6YmFsbCIgbGVhdmUgYW4gZW1wdHkgd2luZG93IGJlaGluZC4KLUNoYW5nZSBpbiBoYW5kbGVfc3dhcF9leGlzdHMoKSBhbHNvIGluIDYuMz8KLUFkZCBlbnRlcl9jbGVhbnVwKCkgYW5kIGxlYXZlX2NsZWFudXAoKSBhbHNvIGluIDYuMz8KLSAgICBidWZmZXIuYwotICAgIGV4X2V2YWwuYwotICAgIHByb3RvL2V4X2V2YWwucHJvCi0gICAgc3RydWN0cy5oCi0gICAgdmltLmgKLQotV2luMzI6IFdoZW4gdGhlIHBhdGggdG8gYSBmaWxlIGhhcyBSdXNzaWFuIGNoYXJhY3RlcnMsICI6Y2QgJTpwOmgiIGRvZXNuJ3QKLXdvcmsuIChWYWxlcnkgS29uZGFrb2ZmKQotU29sdmVkIGluIG9zX21zd2luLmMuICBBZGQgdG8gNi4zPwotCi1QYXRjaCBmb3IgV2luMzIgdGV4dGRvbWFpbjogTkFLQURBSVJBIFl1a2loaXJvLCBTZXB0IDE3LgotCi1IYW5kbGluZyBkZWNpbWFsIHBvaW50IG9uIGtleXBhZDogdXNlIE1hcFZpcnR1YWxLZXkuIChWaW5jZSBOZWdyaSwgT2N0IDIwKQotCi1WYWxlbmNpYTogZXhlY3V0YWJsZSgieHhkLmV4ZSIpIHJldHVybnMgdHJ1ZSB3aGlsZSAiIXh4ZCIgZG9lc24ndCB3b3JrLgotV29ya3MgZmluZSBmb3IgbWUuICBPbmx5IGluIHNwZWNpZmljIGVudmlyb25tZW50PwotCi1uZXRydyBwbHVnaW46IFdoZW4gY29taW5nIGJhY2sgdG8gdGhlIHNhbWUgZGlyZWN0b3J5IGEgc2NyYXRjaCBidWZmZXIgYXBwZWFycy4KLU9ubHkgb24gV2luMzIuIChDaGFybGVzIENhbXBiZWxsLCBTZXB0IDE1KQotCi1OZXcgRWlmZmVsIGluZGVudCBzY3JpcHQgZnJvbSBKb2NlbHluIEZpYXQuICBPSyB3aXRoIERhdmlkIENsYXJrZS4KLQotV2luMzI6IG5vdCB1c2luZyAndGVuYycgaW4gR1VJIGNhdXNlcyBwcm9ibGVtcyBvbiBXaW4gOTg/ICAoSmlyaSBKZXpkaW5za3kpCi1Ucnkgb3V0IHdpdGggUnVzc2lhbiBpbnB1dCBtZXRob2QuCi0KLUFmdGVyICJZIiAnWyBhbmQgJ10gYXJlIG5vdCBhdCBzdGFydC9lbmQgb2YgdGhlIHlhbmtlZCB0ZXh0LiAoS2VuIENsYXJrKQotCi1QYXRjaCBmb3IgYWRkaW5nICdmc3luYycgb3B0aW9uOiBkaXNhYmxlIHVzaW5nIGZzeW5jKCkgb24gZmlsZSB3cml0ZS4gKFNlcHQuCi0yNiwgQ2lhcmFuIE1jQ3JlZXNoKQotCi1Gb2xkaW5nIGZvciBDIHN5bnRheDogKE9sYWYgRGFicnVueiAyNyBzZXB0IDIwMDQpCi0KLUFkZCByZW1hcmsgYWJvdXQgdXNpbmcgVmltIHdpdGggVlMgLm5ldCB0byBWaXN2aW0gZG9jcy4gKERhdmlkIEZpc2hidXJuLCBTZXB0Ci0yNykKLQotVmltIGljb24gZm9yIGRvY3VtZW50cyBhc3NvY2lhdGVkIHdpdGggVmltPyAoUmFodWwgS3Vsa2FybmksIHNlcHQgMjgpCi0KIEFkZCBhIGZ1bmN0aW9uIHRvIHRlc3QgaWYgYSBmb250IG5hbWUgYWN0dWFsbHkgd29ya3MuCiAKIFdoZW4gdXNpbmcgInNldCBsYXN0c3RhdHVzPTIgY21kaGVpZ2h0PTIiIGluIHRoZSAuZ3ZpbXJjIHlvdSBvbmx5IGdldCBvbmUgbGluZQpAQCAtODksNiArMzgsMzAgQEAKIAogIjplIDxjZmlsZT4iIGRvZXMgbm90IGV4cGFuZCB+L2ZpbGUsIHZlcnkgY29uZnVzaW5nIGNvbXBhcmVkIHRvICI6ZSB+L2ZpbGUiLgogCitTSUdIVVAgaXMgZGVsYXllZCB1bnRpbCB3YWl0aW5nIGZvciBhIGNoYXJhY3Rlci4gIENhbiB0aGUgc2FtZSB0aGluZyBiZSBkb25lCitmb3IgU0lHSU5UPyAgVGhlbiBhbHNvIGNoZWNrIHdoZW4gd2FpdGluZyBmb3IgYSBzaG9ydCB0aW1lLgorCitXaGVuIG5vIHRlcm1jYXAvdGVybWxpYiBsaWJyYXJ5IGlzIGZvdW5kLCBjaGVjayB0aGF0IGNvbXBpbGluZyBWaW0gd29ya3MgaW4KK2NvbmZpZ3VyZS4gIEdpdmUgYW4gY2xlYXIgZXJyb3IgbWVzc2FnZSAoImluc3RhbGwgdGVybWNhcCBvciBuY3Vyc2VzLWRldgorcGFja2FnZSIpIHdoZW4gaXQgZG9lc24ndC4KKworV2hlbiBkb2luZyAiOncgZmlsZSIgJ21vZGlmaWVkJyBpcyByZXNldCwgYnV0ICJ1IiBzZXRzIGl0LCB3aGlsZSB0aGUgZmlsZSBpcworYWN0dWFsbHkgdW5jaGFuZ2VkLiAgRG9uJ3QgcmVzZXQgJ21vZGlmaWVkJyB3aGVuICdub2NwJyBpcyBzZXQuCisKK1dpbjMyOiAiZ3ZpbSAtVjEwMCIgc2hvdWxkIHVzZSBkaWFsb2cgd2l0aCBzY3JvbGxiYXIuCisKK1VzaW5nIENUUkwtQSBvbiAiMDgiIHNob3VsZCBub3Qgd29yayBsaWtlIG9jdGFsLiAoTWF0dGhldyBEdWdnYW4pCisKK0N1cnNvciBvbmRlciBsYWF0c3RlIHJlZ2VsIG5hICI6Zy9wYXQvcy8vPiIgY29tbWFuZG8gd2FhcmRvb3IgcmVnZWxzIG5pZXQgbWVlcgord3JhcHBlbi4gKEFkcmkgVmVyaG9lZiwgRGVjIDEpCisKK0luY2x1ZGVkIE5ldEJlYW5zIHBhdGNoZXMgKEdvcmRvbiBQcmlldXIsIE9jdCAyMCkKKyAgICBTZWUgdHdvIG1lc3NhZ2VzIGZvciBsaXN0IG9mIGNoYW5nZWQgZmlsZXMuICBBZGRpdGlvbmFsbHk6CisJZG9jL2V2YWwudHh0CisgICAgRG9jcyBmb3IgbWVzc2FnZSBFNjgwLgorICAgIERvY3MgZm9yICI6bmJrZXkiLgorICAgIEFza2VkIEdvcmRvbiB0byBzZW5kIHRoZSBkaWZmZXJlbmNlcyBhZ2Fpbiwgc29tZSBwYXJ0cyBhcHBhcmVudGx5IGFyZQorICAgIG1pc3NpbmcuCiAKIEZvciB2ZXJzaW9uIDcuMDoKIApAQCAtMTcyLDYgKzE0NSw4IEBACiAJCQkJVGNsIGltcGxlbWVudGF0aW9uIH4vdmltL0hpZXJBc3Npc3QvICkKICAgICA3ICAgQWRkIHBhdGNoIGZyb20gQmVub2l0IENlcnJpbmEgdG8gaW50ZWdyYXRlIFZpbSBhbmQgUGVybCBmdW5jdGlvbnMKIAliZXR0ZXIuICBOb3cgYWxzbyB3b3JrcyBmb3IgUnVieSAoMjAwMSBOb3YgMTApCisgICAgLSAgIFBhdGNoIGZyb20gSGVyY3VsYW5vIGRlIExpbWEgRWlubG9mdCBOZXRvIGZvciBiZXR0ZXIgZm9ybWF0dGluZyBvZiB0aGUKKwlxdWlja2ZpeCB3aW5kb3cgKDIwMDQgZGVjIDIpCiAgICAgNyAgIE1vdGlmOiB1c2UgdGhlIG1lbnUgZm9udCBjb25zaXN0ZW50bHkuICBQYXRjaCBmcm9tIE1hcnRpbiBEYWxlY2tpIDIwMDIKIAlKYW4gMTEuCiAgICAgLSAgIE1vdGlmOiBhZGQgM0Qgc2hhZGluZyBmb3IgdGhlIG1lbnUgZW50cmllcz8gIFBhdGNoIGZyb20gTWFydGluIERhbGVja2kuCkBAIC0yMDQsMTMgKzE3OSwzMiBAQAogCXJ1bnRpbWUgZmlsZXM/CiAJQWxzbzogd2hlbiB0aGUgZW52aXJvbm1lbnQgdmFyaWFibGUgZXhpc3RzLCB1c2UgaXQuICBJZiBpdCBkb2Vzbid0CiAJZXhpc3QsIHNldCBpdC4gIFJlcXVpcmVzIGdvb2QgbmFtZXM6ICRWSU1fVVNFUl9WSU1SQyAgJFZJTV9VU0VSX0RJUgorICAgIC0JQWRkIHRoZSAiOmNidWZmZXIiIGNvbW1hbmQ6IHJlYWQgbGlzdCBvZiBlcnJvcnMgZnJvbSBhIGJ1ZmZlciBpbnN0ZWFkCisJb2YgZnJvbSBhIGZpbGUuIChZZWdhcHBhbiBMYWtzaG1hbmFuLCBPY3QgMzEsIGJ1dCBhdm9pZCB0aGUgdGVtcCBmaWxlKQorCVBlcmhhcHMgIjpjZXhwciIgY291bGQgcmVhZCBmcm9tIGEgbGlzdD8KKwlBZGQgJWIgdG8gJ2Vycm9yZm9ybWF0JzogYnVmZmVyIG51bWJlci4gKFllZ2FwcGFuIExha3NobWFuYW4gLyBTdXJlc2gKKwlHb3ZpbmRhY2hhcikKKyAgICAtCVRoZSBSZXBsYWNlIGRpYWxvZyB0YWtlcyAiXHIiIGxpdGVyYWwsIHVubGVzcyAicmVwbGFjZSBhbGwiIGlzIHVzZWQuCisJTmVlZCB0byBlc2NhcGUgYmFja3NsYXNoZXMuCisgICAgICAgIFdpbjMyOiB0aGUgdGV4dCB0byByZXBsYWNlIHdpdGggaXNuJ3QgcmVtZW1iZXJlZC4KKyAgICAtCUZvciBHVUkgRmluZC9SZXBsYWNlIGRpYWxvZyBzdXBwb3J0IHVzaW5nIGEgcmVnZXhwLiAgUGF0Y2ggZm9yIE1vdGlmCisJYW5kIEdUSyBieSBkZWdyZW5laXIgKG5vdiAxMCBhbmQgbm92IDE4KS4KKy0gICBVc2UgYSBidWlsdGluIGdyZXAgY29tbWFuZCBmb3IgIjpncmVwIj8gIE1ha2VzIGl0IHBvc3NpYmxlIHRvIGFkZCB0aGUKKyAgICBjb2x1bW4gbnVtYmVyLiAgQ2FuIHVzZSB0aGUgY29kZSBvZiAiOmhlbHBncmVwIi4KKyAgICBQYXRjaCBmcm9tIFllZ2FwcGFuIExha3NobWFuYW4sIE5vdiA0LiAgT3IgdXNlICI6Z3JlcCIgYW5kIHNldCAnZ3JlcHByZycKKyAgICB0byBzb21ldGhpbmcgc3BlY2lhbD8gIENvdWxkIGFsc28gZG8gYm90aC4KKyAgICBBbHNvIHN1cHBvcnQgdXNpbmcgIioqIiBpbiBmaWxlbmFtZSwgc28gdGhhdCBhIGRpcmVjdG9yeSB0cmVlIGNhbiBiZQorICAgIHNlYXJjaGVkLgorICAgIEFsc28gc2VlIHRoZSAibWluaWdyZXAudmltIiBzY3JpcHQgb24gd3d3LnZpbS5vcmcuCiAKIAogLSAgIEVkaXQgc2FtZSBmaWxlIG9uIFVuaXggYW5kIGZyb20gTVMtV2luZG93czogbm8gd2FybmluZyBmb3Igc3dhcCBmaWxlLgorLSAgIERyb3AgdGhlIGt2aW0gc3VwcG9ydD8gIFRoZXJlIGlzIG5vIG1haW50ZW5hbmNlIGFuZCAieXppcyIgaXMgc3VwcG9zZWQgdG8KKyAgICByZXBsYWNlIGl0LgogLSAgIEluIHRoZSBrdmltL0tERSBzb3VyY2UgZmlsZXMgZml4IHRoZSBmb3JtYXR0aW5nLgogLSAgIEtERSB2ZXJzaW9uIGlzIGNhbGxlZCAia3ZpbSIuICBNYWtlIGl0ICJndmltIiwgbGlrZSB0aGUgb3RoZXJzPwogLSAgIEJldHRlciBjb25maWd1cmUgY2hlY2sgZm9yIEtERSBpbmNsdWRlIGZpbGVzIGZyb20gRGFuIFNoYXJwLgotLSAgIEtERSBJbnB1dCBtZXRob2QgcGF0Y2guIChZYXN1aGlybyBNYXRzdW1vdG8pCistICAgS0RFIEdVSSBJbnB1dCBtZXRob2QgcGF0Y2guIChZYXN1aGlybyBNYXRzdW1vdG8pICh1cGQuIE9jdCAyNSAyMDA0KQogLSAgIENoYW5nZSBnYV9yb29tIGludG8gZ2FfbWF4bGVuLCBzbyB0aGF0IGl0IGRvZXNuJ3QgbmVlZCB0byBiZQogICAgIGluY3JlbWVudGVkL2RlY3JlbWVudGVkIGVhY2ggdGltZS4KIC0gICBGb3Igc3RyaW5nIHZhcmlhYmxlcywgdXNlIGxlbmd0aCBpbnN0ZWFkIG9mIE5VTCB0ZXJtaW5hdGlvbi4KQEAgLTI3OSw5ICsyNzMsMTEgQEAKICAgICBTaG91bGQgc3RvcmUgdGhlIHZhbHVlcyBpbiBibG9jayAwIG9mIHRoZSBzd2FwIGZpbGUsIGJ1dCB0aGF0IGlzIGFuCiAgICAgaW5jb21wYXRpYmxlIGNoYW5nZS4KIDcgICBTdXBwb3J0IFdJTkRPVyBUQUJTLiAgV29ya3MgbGlrZSBzZXZlcmFsIHBhZ2VzLCBlYWNoIHdpdGggdGhlaXIgb3duCi0gICAgc3BsaXQgd2luZG93cy4gIFBhdGNoIGZvciBHVEsgMS4yIGZyb20gQ2hyaXN0aWFuIE1pY2hvbiwgMjAwNCBKYW4gNi4KLSAgICBBbHNvIGZvciB0aGUgY29uc29sZSEgIEluIEVtYWNzIHRoZXNlIGFyZSBjYWxsZWQgZnJhbWVzLgorICAgIHNwbGl0IHdpbmRvd3MuICBQYXRjaCBmb3IgR1RLIDEuMiBwYXNzZWQgb24gYnkgQ2hyaXN0aWFuIE1pY2hvbiwgMjAwNCBKYW4gNi4KKyAgICBBbHNvIGZvciB0aGUgY29uc29sZSEKKyAgICBJbiBFbWFjcyB0aGVzZSBhcmUgY2FsbGVkIGZyYW1lcy4gIENvdWxkIGFsc28gY2FsbCB0aGVtICJwYWdlcyIuCiAgICAgVXNlICIxZ3QiIC0gIjk5Z3QiIHRvIHN3aXRjaCB0byBhIHRhYj8KKyAgICBTaW1wbGUgcGF0Y2ggZm9yIEdUSyBieSBMdWlzIE0gKG5vdiA3KS4KIC0gICBFTUJFRERJTkc6IE1ha2UgaXQgcG9zc2libGUgdG8gcnVuIFZpbSBpbnNpZGUgYSB3aW5kb3cgb2YgYW5vdGhlciBwcm9ncmFtLgogICAgIEZvciBYd2luZG93cyB0aGlzIGNhbiBiZSBkb25lIHdpdGggWFJlcGFyZW50V2luZG93KCkuCiAgICAgRm9yIEdUSyBOZWlsIEJpcmQgaGFzIGEgcGF0Y2ggdG8gdXNlIFZpbSBsaWtlIGEgd2lkZ2V0LgpAQCAtMzM3LDE0ICszMzMsMTggQEAKIC0gICAib25lbW9yZSIgZmxhZyBpbiAndmlydHVhbGVkaXQnOiBtb3ZlIGN1cnNvciBwYXN0IGVuZCBvZiBsaW5lLiAgUGF0Y2ggYnkKICAgICBNYXR0aWFzIEZsb2RpbiAoMjAwNCBKdWwgMzApCiAKLVRoZSBmc3luYygpIGluIGJ1Zl93cml0ZSgpIGNhdXNlcyBsYXB0b3AgaGFyZGRpc2sgc3BpbnVwLiAgQWRkIGFuIG9wdGlvbiB0bwotYXZvaWQgaXQ/CitXaW4zMjogV2hlbiBzZXR0aW5nICdlbmNvZGluZycgaW4gYSBWaW0gc2VydmVyIHRvICJ1dGYtOCIsIGFuZCB1c2luZyAidmltCistLXJlbW90ZSBydXNzaWFuIiBpbiBhIGNvbnNvbGUsICJydXNzaWFuIiBzaG91bGQgYmUgY29udmVydGVkIGZyb20gdGhlIGNvbnNvbGUKK2VuY29kaW5nIHRvIHV0Zi04LiAgU2VuZCBhbGwgcmVtb3RlIG1lc3NhZ2VzIGluIHV0Zi04PyAgT25seSBvbiBXaW4zMj8KIAogU3VwcG9ydCAiOnNldCBzeW50YXg9Y3BwLmRveHlnZW4iPyAgU3VnZ2VzdGVkIHBhdGNoIGJ5IE1pY2hhZWwgR2VkZGVzICg5IEF1ZwogMjAwNCkuICBTaG91bGQgYWxzbyB3b3JrIGZvciAnZmlsZXR5cGUnLgogCiBQYXRjaCBmb3IgJ2JyZWFraW5kZW50JyBvcHRpb246IHJlcGVhdCBpbmRlbnQgZm9yIHdyYXBwZWQgbGluZS4gKFZhY2xhdgotU21pbGF1ZXIsIDIwMDQgU2VwIDEzKQorU21pbGF1ZXIsIDIwMDQgU2VwIDEzLCBmaXggT2N0IDMxKQorCisiOmJ1ZmRvIGcvc29tZXRoaW5nL3AiIGhhcyB0aGUgbGFzdCBtYXRjaCBvdmVyd3JpdHRlbiBieSB0aGUgZmlsZSBpbmZvLgorRXhhbXBsZSBieSBDZXNhciBBbmRhbG91IChOb3YgMykuCiAKIFdpbjMyOiBJbiAnZmlsZWVuY29kaW5ncycgYWxsb3cgdXNpbmcgImFjcCIgZm9yIHRoZSBhY3RpdmUgY29kZXBhZ2UuICBVc2VmdWwKIHZhbHVlOiAidWNzLWJvbSx1dGYtOCxhY3AsbGF0aW4xIgpAQCAtMzc1LDcgKzM3NSwxMyBAQAogCiBBZGQgZ3VpX21jaF9icm93c2VkaXIoKSBmb3IgTW90aWYsIEtERSBhbmQgTWFjIE9TL1guCiAKLUluc3RhbGwgdmltLWl0LjEgbWFudWFsIHBhZ2UgaW4gLi4uL21hbi9pdC9tYW4xL3ZpbS4xCitBZGQgTWFrZWZpbGUgY29kZSB0byBpbnN0YWxsICotaXQuMSBtYW51YWwgcGFnZXMgaW4gLi4uL21hbi9pdC9tYW4xLyouMQorCitIVE1MIGluZGVudGluZyBjYW4gYmUgc2xvdywgZmluZCBvdXQgd2h5LiAgQW55IHdheSB0byBkbyBzb21lIGtpbmQgb2YKK3Byb2ZpbGluZyBmb3IgVmltIHNjcmlwdD8KKworTWFjOiBwcm9ibGVtIHdpdGggWGNvZGUsIFZpbSBkb2Vzbid0IGNvbnRpbnVlIHVudGlsIHRoZSBuZXh0IGNsaWNrLgorQXBwYXJlbnRseSBoYW5nZXMgaW4gaGFuZGxlX2Ryb3AoKS4gIEEgUG9zdEV2ZW50KCkgYXZvaWRzIGl0LiAoRGEgV29vbiBKdW5nKQogCiAKIFZpIGluY29tcGF0aWJpbGl0eToKQEAgLTEyMTgsNiArMTIyNCw4IEBACiAJCQkJCQkgICAgKmV4dGVuc2lvbnMtaW1wcm92ZW1lbnRzKgogCiBEb2N1bWVudGF0aW9uOgorOCAgIFRoZSBHVUkgaGVscCBzaG91bGQgZXhwbGFpbiB0aGUgRmluZCBhbmQgRmluZC9SZXBsYWNlIGRpYWxvZ3MuICBBZGQgYSBsaW5rCisgICAgdG8gaXQgZnJvbSAiOnByb21wdHJlcGwiIGFuZCAiOnByb21wdGZpbmQiLgogOCAgIExpc3Qgb2Ygb3B0aW9ucyBzaG91bGQgbWVudGlvbiB3aGV0aGVyIGVudmlyb25tZW50IHZhcmlhYmxlcyBhcmUgZXhwYW5kZWQKICAgICBvciBub3QuCiA4ICAgRXh0ZW5kIHVzcl8yNy50eHQgYSBiaXQuIChBZGFtIFNleWZhcnRoKQpAQCAtMTMwOCw4ICsxMzE2LDEwIEBACiA4ICAgIkgiIGFuZCAiTCIgY291bnQgYnVmZmVyIGxpbmVzIGluc3RlYWQgb2Ygd2luZG93IGxpbmVzLiAoU2VydmF0aXVzIEJyYW5kdCkKIDggICBBZGQgYSB3YXkgdG8gYWRkIGZvbGQtcGx1Z2lucy4gIEpvaGFubmVzIFplbGxuZXIgaGFzIG9uZSBmb3IgVkIuCiA3ICAgV2hlbiB1c2luZyBtYW51YWwgZm9sZGluZywgdGhlIHVuZG8gY29tbWFuZCBzaG91bGQgYWxzbyByZXN0b3JlIGZvbGRzLgotLSAgIEFsbG93IGNvbXBsZXRlbHkgaGlkaW5nIGEgY2xvc2VkIGZvbGQuICBSZXF1aXJlIHNob3dpbmcgYSBjaGFyYWN0ZXIgaW4KLSAgICAnZm9sZGNvbHVtbicgdG8gYXZvaWQgdGhlIG1pc3NpbmcgbGluZSBnb2VzIHVubm90aWNlZC4KKy0gICBBbGxvdyBjb21wbGV0ZWx5IGhpZGluZyBhIGNsb3NlZCBmb2xkLiAgRS5nLiwgYnkgc2V0dGluZyAnZm9sZHRleHQnIHRvIGFuCisgICAgZW1wdHkgc3RyaW5nLiAgUmVxdWlyZSBzaG93aW5nIGEgY2hhcmFjdGVyIGluICdmb2xkY29sdW1uJyB0byBhdm9pZCB0aGUKKyAgICBtaXNzaW5nIGxpbmUgZ29lcyB1bm5vdGljZWQuCisgICAgSG93IHRvIGltcGxlbWVudCB0aGlzPwogLSAgIFdoZW4gcHJlc3NpbmcgdGhlIGRvd24gYXJyb3cgb2YgYSBzY3JvbGxiYXIsIGEgY2xvc2VkIGZvbGQgZG9lc24ndCBzY3JvbGwKICAgICB1bnRpbCBhZnRlciBhIGxvbmcgdGltZS4gIEhvdyB0byBtYWtlIHNjcm9sbGluZyB3aXRoIGNsb3NlZCBmb2xkcwogICAgIHNtb290aGVyPwpAQCAtMTMxNywxNSArMTMyNywxNCBAQAogICAgIHVzaW5nIHRoZSB3aW5pbmZvIGluIHdpX2ZvbGRzLgogLSAgICdmb2xkbWV0aG9kJyAidGV4dG9iamVjdCI6IGZvbGQgb24gc2VjdGlvbnMgYW5kIHBhcmFncmFwaCB0ZXh0IG9iamVjdHMuCiAtICAgQWRkICdoaWRlY29tbWVudCcgb3B0aW9uOiBkb24ndCBkaXNwbGF5IGNvbW1lbnRzIGluIC8qICovIGFuZCBhZnRlciAvLy4KKyAgICBPciBpcyB0aGUgY29uY2VhbCBwYXRjaCBmcm9tIFZpbmNlIE5lZ3JpIGEgbW9yZSBnZW5lcmljIHNvbHV0aW9uPwogLSAgICJ6dSI6IHVuZG8gY2hhbmdlIGluIG1hbnVhbCBmb2xkLiAielUiIHJlZG8gY2hhbmdlIGluIG1hbnVhbCBmb2xkLiAgSG93IHRvCiAgICAgaW1wbGVtZW50IHRoaXM/CiAtICAgInpKIiBjb21tYW5kOiBhZGQgdGhlIGxpbmUgb3IgZm9sZCBiZWxvdyB0aGUgZm9sZCBpbiB0aGUgZm9sZCB1bmRlciB0aGUKICAgICBjdXJzb3IuCiAtICAgJ2ZvbGRtZXRob2QnICJzeW50YXgiOiAiZm9sZD0zIjogc2V0IGZvbGQgbGV2ZWwgZm9yIGEgcmVnaW9uLgotLSAgIENhbiBzZXQgJ2ZvbGR0ZXh0JyB0byBlbXB0eSBzdHJpbmc6IGRvbid0IGRpc3BsYXkgYW55IGxpbmUuICBIb3cgdG8KLSAgICBpbXBsZW1lbnQgdGhpcz8KIC0gICBBcHBseSBhIG5ldyBmb2xkbGV2ZWwgdG8gYSByYW5nZSBvZiBsaW5lcy4gKFN0ZXZlIExpdHQpCi0tICAgSGF2ZSBzb21lIHdheSB0byByZXN0cmljdCBjb21tYW5kcyB0byBub3QgZm9sZGVkIHRleHQuICBBbHNvIGNvbW1hbmRzIGxpa2UKKzggICBIYXZlIHNvbWUgd2F5IHRvIHJlc3RyaWN0IGNvbW1hbmRzIHRvIG5vdCBmb2xkZWQgdGV4dC4gIEFsc28gY29tbWFuZHMgbGlrZQogICAgIHNlYXJjaGVzLgogCiAKQEAgLTEzNDQsNyArMTM1Myw3IEBACiAgICAgdGhlIGVuY29kaW5nLiA8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PiAgT3IgImNoYXJzZXQ9VVRGLTgiPwogOCAgIFRoZSBxdWlja2ZpeCBmaWxlIGlzIHJlYWQgd2l0aG91dCBjb252ZXJzaW9uLCB0aHVzIGluICdlbmNvZGluZycuICBBZGQgYW4KICAgICBvcHRpb24gdG8gc3BlY2lmeSB0aGUgZW5jb2Rpbmcgb2YgdGhlIGVycm9yZmlsZSBhbmQgY29udmVydCBpdC4gIEFsc28gZm9yCi0gICAgIjpncmVwIi4KKyAgICAiOmdyZXAiIGFuZCAiOmhlbHBncmVwIi4KIDggICBXaGVuIGEgZmlsZSB3YXMgY29udmVydGVkIGZyb20gJ2ZpbGVlbmNvZGluZycgdG8gJ2VuY29kaW5nJywgYSB0YWcgc2VhcmNoCiAgICAgc2hvdWxkIGFsc28gZG8gdGhpcyBvbiB0aGUgc2VhcmNoIHBhdHRlcm4uIChBbmRyemVqIE0uIE9zdHJ1c3prYSkKIDcgICBXaGVuIGNvbnZlcnRpbmcgYSBmaWxlIGZhaWxzLCBtZW50aW9uIHdoaWNoIGJ5dGUgY291bGQgbm90IGJlIGNvbnZlcnRlZCwKQEAgLTE3MTcsOCArMTcyNiw4IEBACiAgICAgdGhpcyBiZSBpbXByb3ZlZD8KIDggICBTZXQgZGVmYXVsdCBmb3IgJ3R0eXNjcm9sbCcgdG8gaGFsZiBhIHNjcmVlbiBoZWlnaHQ/ICBTaG91bGQgc3BlZWQgdXAKICAgICBNUy1ET1MgdmVyc2lvbi4gKE5lZ3JpKQotNyAgIEMgc3ludGF4IGhpZ2hsaWdodGluZyBnZXRzIGEgbG90IHNsb3dlciB3aGVuIGFkZGluZyBhIHJlZ2lvbiBmb3IgZm9sZGluZwotICAgIGZyb20geyB0byB9LiAoQ2hhcmxlcyBDYW1wYmVsbCkgIEluc2VydGluZyBhICJ7IiBpcyB2ZXJ5IHNsb3cuIChkbWFuKQorNyAgIEMgc3ludGF4IGhpZ2hsaWdodGluZyBnZXRzIGEgbG90IHNsb3dlciBhZnRlciAiOnNldCBmb2xkbWV0aG9kPXN5bnRheCIuCisgICAgKENoYXJsZXMgQ2FtcGJlbGwpICBJbnNlcnRpbmcgYSAieyIgaXMgdmVyeSBzbG93LiAoZG1hbikKIDcgICBIVE1MIHN5bnRheCBoaWdobGlnaHRpbmcgaXMgc2xvdyBmb3IgbG9uZyBsaW5lcy4gIFRyeSBkaXNwbGF5aW5nCiAgICAgaHR0cDovL3d3dy50aGVyZWdpc3Rlci5jby51ay9jb250ZW50LzQvMjI5MDguaHRtbC4gKEFuZHJlIFBhbmcpCiA3ICAgQ2hlY2sgaG93IHBlcmZvcm1hbmNlIG9mIGxvYWRpbmcgdGhlIHdvcmRsaXN0IGNhbiBiZSBpbXByb3ZlZCAoYWRkaW5nIGEKQEAgLTIwNjQsNyArMjA3Myw3IEBACiA3ICAgTW90aWY6IEZvciBhIGNvbmZpcm0oKSBkaWFsb2cgPEVudGVyPiBzaG91bGQgYmUgaWdub3JlZCB3aGVuIG5vIGRlZmF1bHQKICAgICBidXR0b24gc2VsZWN0ZWQsIDxFc2M+IHNob3VsZCBjbG9zZSB0aGUgZGlhbG9nLgogLSAgIE1vdGlmIHN0ZWFscyA8RjEwPiBmcm9tIHVzLCB0byBwb3AgdXAgbWVudXMgd2l0aCB0aGUga2V5Ym9hcmQuICBIb3cgZG8gd2UKLSAgICBnZXQgaXQgYmFjayBpZiB3ZSB3YW50IGl0PworICAgIGdldCBpdCBiYWNrIGlmIHdlIHdhbnQgaXQ/ICBJdCdzIGFscmVhZHkgc29sdmVkIGZvciBHVEsuCiAtICAgUGFzdGUgaW4gSW5zZXJ0IG1vZGUgc2hvdWxkIG5vdCBkbyBhdXRvd3JhcCBldGMuICBPciBtYXliZSB0aGlzIHNob3VsZCBiZQogICAgIGNoYW5nZWFibGUgd2l0aCBhbiBvcHRpb24/CiAtICAgUHV0IGEgbmljZSBwaWN0dXJlIGluIHRoZSBpY29uIChidXQgaG93IGRvIHdlIGRvIHRoYXQ/KS4KQEAgLTMzNDAsMTEgKzMzNDksNiBAQAogICAgIHN1ZmZpY2llbnQuICAiOnNldGZsdXNoIiByZXNldHMgdGhlIG9wdGlvbiBzdGFjaz8KICAgICBIb3cgdG8gaGFuZGxlIGFuIGFib3J0ZWQgbWFwcGluZz8gIFJlbWVtYmVyIHBvc2l0aW9uIGluIHRhZyBzdGFjayB3aGVuCiAgICAgbWFwcGluZyBzdGFydHMsIHJlc3RvcmUgaXQgd2hlbiBhbiBlcnJvciBhYm9ydHMgdGhlIG1hcHBpbmc/Ci0tICAgVXNlIGEgYnVpbHRpbiBncmVwIGNvbW1hbmQgZm9yICI6Z3JlcCI/ICBNYWtlcyBpdCBwb3NzaWJsZSB0byBhZGQgdGhlCi0gICAgY29sdW1uIG51bWJlci4gIENhbiB1c2UgdGhlIGNvZGUgb2YgIjpoZWxwZ3JlcCIuCi0gICAgQWxzbyBzdXBwb3J0IHVzaW5nICIqKiIgaW4gZmlsZW5hbWUsIHNvIHRoYXQgYSBkaXJlY3RvcnkgdHJlZSBjYW4gYmUKLSAgICBzZWFyY2hlZC4KLSAgICBBbHNvIHNlZSB0aGUgIm1pbmlncmVwLnZpbSIgc2NyaXB0IG9uIHd3dy52aW0ub3JnLgogLSAgIENoYW5nZSAiOmZpeGRlbCIgaW50byBvcHRpb24gJ2ZpeGRlbCcsIHRfZGVsIHdpbGwgYmUgYWRqdXN0ZWQgZWFjaCB0aW1lCiAgICAgdF9icyBpcyBzZXQ/IChXZWJiKQogLSAgICJnYyI6IGdvdG8gY2hhcmFjdGVyLCBtb3ZlIGFic29sdXRlIGNoYXJhY3RlciBwb3NpdGlvbnMgZm9yd2FyZCwgYWxzbwpkaWZmIC0tZ2l0IGEvcnVudGltZS9kb2MvdmVyc2lvbjcudHh0IGIvcnVudGltZS9kb2MvdmVyc2lvbjcudHh0CmluZGV4IDNiMGEwNmMuLmNkZmIxYTAgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvZG9jL3ZlcnNpb243LnR4dAorKysgYi9ydW50aW1lL2RvYy92ZXJzaW9uNy50eHQKQEAgLTEsNCArMSw0IEBACi0qdmVyc2lvbjcudHh0KiAgRm9yIFZpbSB2ZXJzaW9uIDcuMGFhLiAgTGFzdCBjaGFuZ2U6IDIwMDQgT2N0IDEyCisqdmVyc2lvbjcudHh0KiAgRm9yIFZpbSB2ZXJzaW9uIDcuMGFhLiAgTGFzdCBjaGFuZ2U6IDIwMDQgRGVjIDA5CiAKIAogCQkgIFZJTSBSRUZFUkVOQ0UgTUFOVUFMICAgIGJ5IEJyYW0gTW9vbGVuYWFyCkBAIC0xOSw2ICsxOSw3IEBACiAKIE5ldyBkYXRhIHR5cGVzCQkJCXxuZXctZGF0YS10eXBlc3wKIEtERSBzdXBwb3J0CQkJCXxuZXctS0RFfAorVHJhbnNsYXRlZCBtYW51YWwgcGFnZXMJCQl8bmV3LW1hbnBhZ2UtdHJhbnN8CiBWYXJpb3VzIG5ldyBpdGVtcwkJCXxuZXctaXRlbXMtN3wKIAogSU1QUk9WRU1FTlRTCQkJCXxpbXByb3ZlbWVudHMtN3wKQEAgLTU2LDYgKzU3LDEwIEBACiBmb2xkcyBzaG91bGQgYXBwZWFyIGluIHRoZSBIVE1MLiAocGFydGx5IGJ5IENhcmwgT3N0ZXJ3aXNjaCkKIERpZmYgbW9kZSBub3cgaXMgYWxzbyBjb252ZXJ0ZWQgYXMgaXQgaXMgZGlzcGxheWVkLgogCitXaW4zMjogVGhlIGVmZmVjdCBvZiB0aGUgPEYxMD4ga2V5IGRlcGVuZGVkIG9uICd3aW5hbHRrZXlzJy4gIE5vdyBpdCBkZXBlbmRzCitvbiB3aGV0aGVyIDxGMTA+IGhhcyBiZWVuIG1hcHBlZCBvciBub3QuICBUaGlzIGFsbG93cyBtYXBwaW5nIDxGMTA+IHdpdGhvdXQKK2NoYW5naW5nICd3aW5hbHRrZXlzJy4KKwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiBORVcgRkVBVFVSRVMJCQkJCQkqbmV3LTcqCiAKQEAgLTk1LDYgKzEwMCwxMyBAQAogQWxzbyBzZWUgfHBvc3RzY3JpcHQtY2prLXByaW50aW5nfC4gIChNaWtlIFdpbGxpYW1zKQogCiAKK1RyYW5zbGF0ZWQgbWFudWFsIHBhZ2VzCQkJCQkqbmV3LW1hbnBhZ2UtdHJhbnMqCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCitUaGUgbWFudWFsIHBhZ2Ugb2YgVmltIGFuZCBhc3NvY2lhdGVkIHByb2dyYW1zIGlzIG5vdyBhbHNvIGF2YWlsYWJsZSBpbgorSXRhbGlhbiAodHJhbnNsYXRlZCBieSBBbnRvbmlvIENvbG9tYm8pLiAgTW9yZSBsYW5ndWFnZXMgd2lsbCBmb2xsb3cuCisKKwogVmFyaW91cyBuZXcgaXRlbXMJCQkJCSpuZXctaXRlbXMtNyoKIC0tLS0tLS0tLS0tLS0tLS0tCiAKQEAgLTExNSw2ICsxMjcsOCBAQAogJ216cXVhbnR1bScJCVRpbWUgaW4gbXNlYyB0byBzY2hlZHVsZSBNelNjaGVtZSB0aHJlYWRzLgogJ3ByaW50bWJjaGFyc2V0JwlDSksgY2hhcmFjdGVyIHNldCB0byBiZSB1c2VkIGZvciA6aGFyZGNvcHkKICdwcmludG1iZm9udCcJCWZvbnQgbmFtZXMgdG8gYmUgdXNlZCBmb3IgQ0pLIG91dHB1dCBvZiA6aGFyZGNvcHkKKydmc3luYycJCQlXaGV0aGVyIGZzeW5jKCkgaXMgY2FsbGVkIGFmdGVyIHdyaXRpbmcgYSBmaWxlLgorCQkJKENpYXJhbiBNY0NyZWVzaCkKIAogCiBFeCBjb21tYW5kczogfgpAQCAtMTg3LDYgKzIwMSw4IEBACiAKIFBIUCBjb21waWxlciBwbHVnaW4uIChEb3VnIEtlYXJucykKIAorU2l2ZSBzeW50YXggZmlsZS4gKE5pa29sYWkgV2VpYnVsbCkKKwogCiBOZXcgS2V5bWFwczogfgogCkBAIC0yMTAsNiArMjI2LDEwIEBACiBUaGUgbmV0cncgcGx1Z2luIG5vdyBhbHNvIHN1cHBvcnRzIHZpZXdpbmcgYSBkaXJlY3RvcnksIHdoZW4gInNjcDovLyIgaXMgdXNlZC4KIERlbGV0aW5nIGFuZCByZW5hbWluZyBmaWxlcyBpcyBwb3NzaWJsZS4gIChDaGFybGVzIENhbXBiZWxsKQogCitBZGRlZCB0aGUgdF9TSSBhbmQgdF9FSSBlc2NhcGUgc2VxdWVuY2VzIGZvciBzdGFydGluZyBhbmQgZW5kaW5nIEluc2VydCBtb2RlLgorVG8gYmUgdXNlZCB0byBzZXQgdGhlIGN1cnNvciBzaGFwZSB0byBhIGJhciBvciBhIGJsb2NrLiAgTm8gZGVmYXVsdCB2YWx1ZXMsCit0aGV5IGFyZSBub3Qgc3VwcG9ydGVkIGJ5IHRlcm1jYXAvdGVybWluZm8uCisKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogSU1QUk9WRU1FTlRTCQkJCQkJKmltcHJvdmVtZW50cy03KgogCkBAIC0yNjcsNiArMjg3LDE3IEBACiBTdXBwb3J0IGNvbnZlcnNpb24gYmV0d2VlbiB1dGYtOCBhbmQgbGF0aW45IChpc28tODg1OS0xNSkgaW50ZXJuYWxseSwgc28gdGhhdAogZGlncmFwaHMgc3RpbGwgd29yayB3aGVuIGljb252IGlzIG5vdCBhdmFpbGFibGUuCiAKK1doZW4gYSBzZXNzaW9uIGZpbGUgaXMgbG9hZGVkIHdoaWxlIGVkaXRpbmcgYW4gdW5uYW1lZCwgZW1wdHkgYnVmZmVyIHRoYXQKK2J1ZmZlciBpcyB3aXBlZCBvdXQuICBBdm9pZHMgdGhhdCB0aGVyZSBpcyBhbiB1bnVzZWQgYnVmZmVyIGluIHRoZSBidWZmZXIKK2xpc3QuCisKK1dpbjMyOiBXaGVuIGxpYmludGwuZGxsIHN1cHBvcnRzIGJpbmRfdGV4dGRvbWFpbl9jb2Rlc2V0KCksIHVzZSBpdC4KKyhOQUtBREFJUkEgWXVraWhpcm8pCisKK1doZW4gZm9sZHRleHQoKSBmaW5kcyBubyB0ZXh0IGFmdGVyIHJlbW92aW5nIHRoZSBjb21tZW50IGxlYWRlciwgdXNlIHRoZQorc2Vjb25kIGxpbmUgb2YgdGhlIGZvbGQuICBIZWxwcyBmb3IgQy1zdHlsZSAvKiAqLyBjb21tZW50cyB3aGVyZSB0aGUgZmlyc3QKK2xpbmUgaXMganVzdCAiLyoiLgorCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIENPTVBJTEUgVElNRSBDSEFOR0VTCQkJCQkqY29tcGlsZS1jaGFuZ2VzLTcqCiAKQEAgLTQyMSw0ICs0NTIsNDkgQEAKIFdpdGggdGhlIEdVSSBmaW5kL3JlcGxhY2UgZGlhbG9nIGEgcmVwbGFjZSBvbmx5IHdvcmtlZCBpZiB0aGUgcGF0dGVybiB3YXMKIGxpdGVyYWwgdGV4dC4gIE5vdyBpdCB3b3JrcyBmb3IgYW55IHBhdHRlcm4uCiAKK1doZW4gJ2VxdWFsYWx3YXlzJyBpcyBzZXQgYW5kICdlYWRpcmVjdGlvbicgaXMgImhvciIsICI6cXVpdCIgd291bGQgc3RpbGwKK2NhdXNlIGVxdWFsaXppbmcgd2luZG93IGhlaWdodHMgaW4gdGhlIHZlcnRpY2FsIGRpcmVjdGlvbi4KKworV2hlbiAiOmVtZW51IiBpcyB1c2VkIGluIGEgc3RhcnR1cCBzY3JpcHQgdGhlIGNvbW1hbmQgd2FzIHB1dCBpbiB0aGUgdHlwZWFoZWFkCitidWZmZXIsIGNhdXNpbmcgYSBwcm9tcHQgZm9yIHRoZSBjcnlwdCBrZXkgdG8gYmUgbWVzc2VkIHVwLgorCitNYWMgT1MvWDogVGhlIGRlZmF1bHQgZm9yICdpc3ByaW50JyBpbmNsdWRlZCBjaGFyYWN0ZXJzIDEyOC0xNjAsIGNhdXNlcworcHJvYmxlbXMgZm9yIFRlcm1pbmFsLmFwcC4KKworV2hlbiBhIHN5bnRheCBpdGVtIHdpdGggImNvbnRhaW5lZGluIiBpcyB1c2VkLCBpdCBtYXkgbWF0Y2ggaW4gdGhlIHN0YXJ0IG9yCitlbmQgb2YgYSByZWdpb24gd2l0aCBhIG1hdGNoZ3JvdXAsIHdoaWxlIHRoaXMgZG9lc24ndCBoYXBwZW4gZm9yIGEgImNvbnRhaW5zIgorYXJndW1lbnQuCisKK1doZW4gYSB0cmFuc3BhcmVudCBzeW50YXggaXRlbXMgbWF0Y2hlcyBpbiBhbm90aGVyIGl0ZW0gd2hlcmUgdGhlIGhpZ2hsaWdodGluZworaGFzIGFscmVhZHkgc3RvcHBlZCAoYmVjYXVzZSBvZiBhIGhlPSBhcmd1bWVudCksIHRoZSBoaWdobGlnaHRpbmcgd291bGQgY29tZQorYmFjay4KKworV2hlbiBjc2NvcGUgaXMgdXNlZCB0byBzZXQgdGhlIHF1aWNrZml4IGVycm9yIGxpc3QsIGl0IGRpZG4ndCBnZXQgc2V0IGlmIHRoZXJlCit3YXMgb25seSBvbmUgbWF0Y2guIChTZXJnZXkgS2hvcmV2KQorCitXaGVuICdjb25maXJtJyBpcyBzZXQgYW5kIHVzaW5nICI6YmRlbCIgaW4gYSBtb2RpZmllZCBidWZmZXIsIHRoZW4gc2VsZWN0aW5nCisiY2FuY2VsIiwgd291bGQgc3RpbGwgZ2l2ZSBhbiBlcnJvciBtZXNzYWdlLgorCitUaGUgUG9wVXAgbWVudSBpdGVtcyB0aGF0IHN0YXJ0ZWQgVmlzdWFsIG1vZGUgZGlkbid0IHdvcmsgd2hlbiBub3QgaW4gTm9ybWFsCittb2RlLiAgU3dpdGNoaW5nIGJldHdlZW4gc2VsZWN0aW5nIGEgd29yZCBhbmQgYSBsaW5lIHdhcyBub3QgcG9zc2libGUuCisKK1dpbjMyOiBUaGUga2V5cGFkIGRlY2ltYWwgcG9pbnQgYWx3YXlzIHJlc3VsdGVkIGluIGEgJy4nLCB3aGlsZSBvbiBzb21lCitrZXlib2FyZHMgaXQncyBhICcsJy4gIFVzZSBNYXBWaXJ0dWFsS2V5KFZLX0RFQ0lNQUwsIDIpLgorCitSZW1vdmVkIHVudXNlZCBmdW5jdGlvbiBEaXNwbGF5Q29tcFN0cmluZ09wYXF1ZSgpIGZyb20gZ3VpX3czMi5jCisKK0luIFZpc3VhbCBtb2RlIHRoZXJlIGlzIG5vdCBhbHdheXMgYW4gaW5kaWNhdGlvbiB3aGV0aGVyIHRoZSBsaW5lIGJyZWFrIGlzCitzZWxlY3RlZCBvciBub3QuICBIaWdobGlnaHQgdGhlIGNoYXJhY3RlciBhZnRlciB0aGUgbGluZSB3aGVuIHRoZSBsaW5lIGJyZWFrCitpcyBpbmNsdWRlZCwgZS5nLiwgYWZ0ZXIgInYkbyIuCisKK0dUSzogVGhlIDxGMTA+IGtleSBjYW4ndCBiZSBtYXBwZWQsIGl0IHNlbGVjdHMgdGhlIG1lbnUuICBEaXNhYmxlIHRoYXQgd2l0aCBhCitHVEsgc2V0dGluZyBhbmQgZG8gc2VsZWN0IHRoZSBtZW51IHdoZW4gPEYxMD4gaXNuJ3QgbWFwcGVkLiAoRGF2aWQgTmVjYXMpCisKK0FmdGVyICJZIiAnWyBhbmQgJ10gd2VyZSBub3QgYXQgc3RhcnQvZW5kIG9mIHRoZSB5YW5rZWQgdGV4dC4KKworV2hlbiBhIHRlbG5ldCBjb25uZWN0aW9uIGlzIGRyb3BwZWQgVmltIHByZXNlcnZlcyBmaWxlcyBhbmQgZXhpdHMuICBXaGlsZQorZG9pbmcgdGhhdCBhIFNJR0hVUCBtYXkgYXJyaXZlIGFuZCBkaXN0dXJiZSB1cywgdGh1cyBpZ25vcmUgaXQuIChTY290dAorQW5kZXJzb24pICBBbHNvIHBvc3Rwb25lIFNJR0hVUCB1bnRpbCBpdCdzIHNhZmUgdG8gaGFuZGxlLiAgQWRkZWQKK2hhbmRsZV9zaWdodXAoKS4KKwogIHZpbTp0dz03ODp0cz04OmZ0PWhlbHA6bm9ybDoKZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL3ZpbS1pdC4xIGIvcnVudGltZS9kb2MvdmltLWl0LjEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNjBmYjhhYwotLS0gL2Rldi9udWxsCisrKyBiL3J1bnRpbWUvZG9jL3ZpbS1pdC4xCkBAIC0wLDAgKzEsNTU4IEBACisuVEggVklNIDEgIjIyIGZlYmJyYWlvIDIwMDIiCisuU0ggTk9NRQordmltIFwtIFZJIE1pZ2xpb3JhdG8sIHVuIGVkaXRvciBkaSB0ZXN0aSBwZXIgcHJvZ3JhbW1hdG9yaQorLlNIIFNJTlRBU1NJCisuYnIKKy5CIHZpbQorW29wemlvbmldIFtmaWxlIC4uXQorLmJyCisuQiB2aW0KK1tvcHppb25pXSAtCisuYnIKKy5CIHZpbQorW29wemlvbmldIFwtdCB0YWcKKy5icgorLkIgdmltCitbb3B6aW9uaV0gXC1xIFtmaWxlX2Vycm9yaV0KKy5QUAorLmJyCisuQiBleAorLmJyCisuQiB2aWV3CisuYnIKKy5CIGd2aW0KKy5CIGd2aWV3CisuQiBldmltCisuQiBldmlldworLmJyCisuQiBydmltCisuQiBydmlldworLkIgcmd2aW0KKy5CIHJndmlldworLlNIIERFU0NSSVpJT05FCisuQiBWaW0KK1VuIGVkaXRvcmUgZGkgdGVzdGksIGNvbXBhdGliaWxlIGNvbiwgZSBtaWdsaW9yZSBkaSwgVmkuCitQdfIgZXNzZXJlIHVzYXRvIHBlciBlZGl0YXJlIHF1YWxzaWFzaSBmaWxlIGRpIHRlc3RvLgorUGFydGljb2xhcm1lbnRlIHV0aWxlIHBlciBlZGl0YXJlIHByb2dyYW1taS4KKy5QUAorQ2kgc29ubyBwYXJlY2NoaSBtaWdsaW9yYW1lbnRpIHJpc3BldHRvIGEgVmk6IHVuZG8gbXVsdGlwbGksCitmaW5lc3RyZSBlIGJ1ZmZlciBtdWx0aXBsaSwgZXZpZGVuemlhemlvbmUgc2ludGF0dGljYSwgcG9zc2liaWxpdOAKK2RpIG1vZGlmaWNhcmUgbGEgbGluZWEgZGkgY29tYW5kbywgY29tcGxldGFtZW50byBub21pIGZpbGUsIGhlbHAKK2luIGxpbmVhLCBzZWxlemlvbmUgdGVzdGkgaW4gbW9kYWxpdOAgdmlzdWFsZSwgZXRjLi4KK1ZlZGVyZSAiOmhlbHAgdmlfZGlmZi50eHQiIHBlciB1biBzb21tYXJpbyBkZWxsZSBkaWZmZXJlbnplIGZyYQorLkIgVmltCitlIFZpLgorLlBQCitNZW50cmUgdXNhdGUKKy5CIFZpbQorcG90ZXRlIHJpY2V2ZXJlIG1vbHRvIGFpdXRvIGRhbCBzaXN0ZW1hIGRpIGhlbHAgb25saW5lLCBjb2wgY29tYW5kbyAiOmhlbHAiLgorVmVkZXJlIHF1aSBzb3R0byBsYSBzZXppb25lIEFJVVRPIE9OTElORS4KKy5QUAorUXVhc2kgc2VtcHJlCisuQiBWaW0KK3ZpZW5lIGludm9jYXRvLCBwZXIgbW9kaWZpY2FyZSB1biBmaWxlLCBjb2wgY29tYW5kbworLlBQCisJdmltIGZpbGUKKy5QUAorUGn5IGluIGdlbmVyYWxlCisuQiBWaW0KK3ZpZW5lIGludm9jYXRvIGNvbjoKKy5QUAorCXZpbSBbb3B6aW9uaV0gW2xpc3RhX2ZpbGVdCisuUFAKK1NlIGxpc3RhX2ZpbGUgbm9uIOggcHJlc2VudGUsIGwnZWRpdG9yIGluaXppYSBhcHJlbmRvIHVuIGJ1ZmZlciB2dW90by4KK0FsdHJpbWVudGksIHVuYSBlIHVuYSBzb2xhIGRlbGxlIHF1YXR0cm8gbWFuaWVyZSBpbmRpY2F0ZSBxdWkgc290dG8gcHXyCitlc3NlcmUgdXNhdGEgcGVyIHNjZWdsaWVyZSB1bm8gbyBwafkgZmlsZSBkYSBtb2RpZmljYXJlLgorLlRQIDEyCitmaWxlIC4uCitVbmEgbGlzdGEgZGkgbm9taSBkaSBmaWxlLgorSWwgcHJpbW8gZGkgcXVlc3RpIHNhcuAgaWwgZmlsZSBjb3JyZW50ZSwgZSB2ZXJy4CBsZXR0byBuZWwgYnVmZmVyLgorSWwgY3Vyc29yZSBzYXLgIHBvc2l6aW9uYXRvIHN1bGxhIHByaW1hIGxpbmVhIGRlbCBidWZmZXIuCitQb3RldGUgYXJyaXZhcmUgYWdsaSBhbHRyaSBmaWxlIGNvbCBjb21hbmRvICI6bmV4dCIuCitQZXIgZWRpdGFyZSB1biBmaWxlIGlsIGN1aSBub21lIGluaXppYSBwZXIgIi0iIHByZW1ldHRldGUgIi0tIiBhbGxhCitsaXN0YV9maWxlLgorLlRQCistCitJbCBmaWxlIGRhIGVkaXRhcmUg6CBsZXR0byBkYWxsbyAic3RkaW4iIFtkaSBzb2xpdG8sIG1hIG5vbgorbmVjZXNzcmlhbWVudGUsIGlsIHRlcm1pbmFsZSAtIE5kVF0uICBJIGNvbWFuZGkgc29ubyBsZXR0aSBkYSAic3RkZXJyIiwKK2NoZSBkb3ZyZWJiZSBlc3NlcmUgdW4gdGVybWluYWxlIFt0dHldLgorLlRQCistdCB7dGFnfQorSWwgZmlsZSBkYSBlZGl0YXJlIGUgbGEgcG9zaXppb25lIGluaXppYWxlIGRlbCBjdXJzb3JlIGRpcGVuZG9ubyBkYSAidGFnIiwKK3VuYSBzcGVjaWUgZGkgImV0aWNoZXR0YSIgYSBjdWkgc2FsdGFyZS4KK3t0YWd9IHZpZW5lIGNlcmNhdGEgbmVsIGZpbGUgdGFncywgZWQgaWwgZmlsZSBhZCBlc3NhIGFzc29jaWF0byBkaXZlbnRhCitxdWVsbG8gY29ycmVudGUsIGVkIGlsIGNvbWFuZG8gYWQgZXNzYSBhc3NvY2lhdG8gdmllbmUgZXNlZ3VpdG8uCitEaSBzb2xpdG8gc2kgdXNhIHBlciBwcm9ncmFtbWkgQywgbmVsIHF1YWwgY2FzbyB7dGFnfSBwb3RyZWJiZSBlc3NlcmUgdW4KK25vbWUgZGkgZnVuemlvbmUuCitMJ2VmZmV0dG8g6CBjaGUgaWwgZmlsZSBjb250ZW5lbnRlIHF1ZWxsYSBmdW56aW9uZSBkaXZlbnRhIGlsIGZpbGUgY29ycmVudGUKK2UgaWwgY3Vyc29yZSDoIHBvc2l6aW9uYXRvIGFsbCdpbml6aW8gZGVsbGEgZnVuemlvbmUuCitWZWRlcmUgIjpoZWxwIHRhZy1jb21tYW5kcyIuCisuVFAKKy1xIFtmaWxlX2Vycm9yaV0KK0luaXppYSBuZWxsYSBtb2RhbGl04CBxdWlja0ZpeCBbY29ycmV6aW9uZSB2ZWxvY2VdLgorSWwgZmlsZSBbZmlsZV9lcnJvcmldIOggbGV0dG8gZSBpbCBwcmltbyBlcnJvcmUg6CB2aXN1YWxpenphdG8uCitTZSBbZmlsZV9lcnJvcmldIG5vbiDoIGluZGljYXRvLCBpbCBzdW8gbm9tZSDoIG90dGVudXRvIGRhbCB2YWxvcmUKK2RlbGwnb3B6aW9uZSAnZXJyb3JmaWxlJyAoY2hlLCBzZSBub24gc3BlY2lmaWNhdGEsIHZhbGUgIkF6dGVjQy5FcnIiCitwZXIgbCdBbWlnYSwgImVycm9ycy5lcnIiIHN1IGFsdHJpIHNpc3RlbWkpLgorU2kgcHXyIHNhbHRhcmUgYWxsJ2Vycm9yZSBzdWNjZXNzaXZvIGNvbCBjb21hbmRvICI6Y24iLgorVmVkZXJlICI6aGVscCBxdWlja2ZpeCIuCisuUFAKKy5CIFZpbQorc2kgY29tcG9ydGEgaW4gbW9kbyBkaXZlcnNvIHNlIGludm9jYXRvIGNvbiBub21pIGRpZmZlcmVudGkgKGlsIHByb2dyYW1tYQorZXNlZ3VpYmlsZSAic290dG9zdGFudGUiIHB18iBlc3NlcmUgc2VtcHJlIGxvIHN0ZXNzbykuCisuVFAgMTAKK3ZpbQorTW9kYWxpdOAgIk5vcm1hbCIsIGNvbXBvcnRhbWVudG8gbm9ybWFsZS4KKy5UUAorZXgKK0luaXppYSBpbiBtb2RhbGl04CAiRXgiLgorU2kgcHXyIHBhc3NhcmUgaW4gbW9kYWxpdOAgIk5vcm1hbCIgY29sIGNvbWFuZGkgIjp2aSIuCitTaSBwdfIgaW52b2NhcmUgbGEgbW9kYWxpdOAgIkV4IiBhbmNoZSBjb24gbCdhcmdvbWVudG8gIi1lIi4KKy5UUAordmlldworSW5pemlhIGluIG1vZGFsaXTgICJTb2xhIExldHR1cmEiLiAgTm9uIHBvdGV0ZSBtb2RpZmljYXJlIGkgZmlsZS4KK1NpIHB18iBpbnZvY2FyZSBsYSBtb2RhbGl04CAiU29sYSBMZXR0dXJhIiBhbmNoZSBjb24gbCdhcmdvbWVudG8gIi1SIi4KKy5UUAorZ3ZpbSBndmlldworTGEgdmVyc2lvbmUgR1VJIFtHcmFwaGljYWwgVXNlciBJbnRlcmZhY2VdLgorQXByZSB1bmEgbnVvdmEgZmluZXN0cmEuCitTaSBwdfIgaW52b2NhcmUgbGEgbW9kYWxpdOAgIkdVSSIgYW5jaGUgY29uIGwnYXJnb21lbnRvICItZyIuCisuVFAKK2V2aW0gZXZpZXcKK0xhIHZlcnNpb25lIEdVSSBpbiBtb2RhbGl04CAiRmFjaWxlIiAoc2VtcGxpZmljYXRhKS4KK0FwcmUgdW5hIG51b3ZhIGZpbmVzdHJhLgorU2kgcHXyIGludm9jYXJlIGxhIG1vZGFsaXTgICJGYWNpbGUiIGFuY2hlIGNvbiBsJ2FyZ29tZW50byAiLXkiLgorLlRQCitydmltIHJ2aWV3IHJndmltIHJndmlldworQ29tZSBzb3ByYSwgbWEgY29uIHJlc3RyaXppb25pIGFpIGNvbWFuZGkuICBOb24gc2kgcG90cm5ubyBlc2VndWlyZSBjb21hbmRpCitkZWxsbyBzaGVsbCBvIHNvc3BlbmRlcmUKKy5CIFZpbS4KK1NpIHB18iBpbnZvY2FyZSBsYSBtb2RhbGl04CAiUmlzdHJldHRhIiBhbmNoZSBjb24gbCdhcmdvbWVudG8gIi1aIi4KKy5TSCBPUFpJT05JCitMZSBvcHppb25pIHBvc3Nvbm8gZXNzZXJlIGluIHVuIG9yZGluZSBxdWFsc2lhc2ksIHByaW1hIG8gZG9wbyBpIG5vbWkgZGkKK2ZpbGUuICBPcHppb25pIGNoZSBub24gbmVjZXNzaXRhbm8gdW4gYXJnb21lbnRvIHBvc3Nvbm8gZXNzZXJlIHJhZ2dydXBwYXRlCitkaWV0cm8gYSB1biBzb2xvICItIi4KKy5UUCAxMgorK1tudW1lcm9dCitQZXIgaWwgcHJpbW8gZmlsZSBpbCBjdXJzb3JlIHNhcuAgcG9zaXppb25hdG8gc3VsbGEgbGluZWEgIm51bWVybyIuCitTZSAibnVtZXJvIiBtYW5jYSwgaWwgY3Vyc29yZSBzYXLgIHBvc2l6aW9uYXRvIHN1bGwndWx0aW1hIGxpbmVhIGRlbCBmaWxlLgorLlRQCisrL3tlc3ByZXNzaW9uZX0KK1BlciBpbCBwcmltbyBmaWxlIGlsIGN1cnNvcmUgc2Fy4CBwb3NpemlvbmF0byBhbGxhCitwcmltYSBvY2NvcnJlbnphIGRpIHtlc3ByZXNzaW9uZX0uCitWZWRlcmUgIjpoZWxwIHNlYXJjaC1wYXR0ZXJuIiBwZXIgY29tZSBzcGVjaWZpY2FyZSBsJ2VzcHJlc3Npb25lLgorLlRQCisre2NvbWFuZG99CisuVFAKKy1jIHtjb21hbmRvfQore2NvbWFuZG99IHNhcuAgZXNlZ3VpdG8gZG9wbyBjaGUgaWwKK3ByaW1vIGZpbGUg6CBzdGF0byBsZXR0by4KK3tjb21hbmRvfSDoIGludGVycHJldGF0byBjb21lIHVuIGNvbWFuZG8gRXguCitTZSBpbCB7Y29tYW5kb30gY29udGllbmUgc3BhemkgZGV2ZSBlc3NlcmUgaW5jbHVzbyBmcmEgZG9wcGkgYXBpY2kKKyhvIGFsdHJvIGRlbGltaXRhdG9yZSwgYSBzZWNvbmRhIGRlbGxvIHNoZWxsIGNoZSBzaSBzdGEgdXNhbmRvKS4KK0VzZW1waW86IFZpbSAiK3NldCBzaSIgbWFpbi5jCisuYnIKK05vdGU6IFNpIHBvc3Nvbm8gYXZlcmUgZmlubyBhIDEwIGNvbWFuZGkgIisiIG8gIi1jIi4KKy5UUAorLVMge2ZpbGV9CitJIGNvbWFuZGkgY29udGVudXRpIGluIHtmaWxlfSBzb25vIGVzZWd1aXRpIGRvcG8gbGEgbGV0dHVyYSBkZWwgcHJpbW8gZmlsZS4KK0VxdWl2YWxlbnRlIGEgLWMgInNvdXJjZSB7ZmlsZX0iLgore2ZpbGV9IG5vbiBwdfIgYXZlcmUgdW4gbm9tZSBjaGUgaW5pemlhIHBlciAnLScuCitTZSB7ZmlsZX0g6CBvbWVzc28gc2kgdXNhICJTZXNzaW9uLnZpbSIgKGZ1bnppb25hIHNvbG8gc2UgLVMg6CBsJ3VsdGltbworYXJnb21lbnRvIHNwZWNpZmljYXRvKS4KKy5UUAorLS1jbWQge2NvbWFuZG99CitDb21lICItYyIsIG1hIGlsIGNvbWFuZG8g6CBlc2VndWl0byBQUklNQQorZGkgZXNlZ3VpcmUgcXVhbHNpYXNpIGZpbGUgdmltcmMuCitTaSBwb3Nzb25vIHVzYXJlIGZpbm8gYSAxMCBkaSBxdWVzdGkgY29tYW5kaSwgaW5kaXBlbmRlbnRlbWVudGUgZGFpIGNvbWFuZGkKKyItYyIuCisuVFAKKy1BCitTZQorLkIgVmltCivoIHN0YXRvIGNvbXBpbGF0byBjb24gc3VwcG9ydG8gQVJBQklDIHBlciBlZGl0YXJlIGZpbGUgY29uIG9yaWVudGFtZW50bworZGVzdHJhLXNpbmlzdHJhIGUgdGFzdGllcmEgY29uIG1hcHBhdHVyYSBBcmFiYSwgcXVlc3RhIG9wemlvbmUgaW5pemlhCisuQiBWaW0KK2luIG1vZGFsaXTgICJBcmFiaWMiLCBjaW/oIGltcG9zdGFuZG8gJ2FyYWJpYycuCitBbHRyaW1lbnRpIHZpZW5lIGRhdG8gdW4gbWVzc2FnZ2lvIGRpIGVycm9yZSBlCisuQiBWaW0KK3Rlcm1pbmEgaW4gbW9kbyBhbm9ybWFsZS4KKy5UUAorLWIKK01vZGFsaXTgICJCaW5hcmlhIi4KK1Zlbmdvbm8gaW1wb3N0YXRlIGFsY3VuZSBvcHppb25pIGNoZSBwZXJtZXR0b25vIGRpIG1vZGlmaWNhcmUgdW4gZmlsZQorYmluYXJpbyBvIHVuIHByb2dyYW1tYSBlc2VndWliaWxlLgorLlRQCistQworQ29tcGF0aWJpbGUuICBJbXBvc3RhIGwnb3B6aW9uZSAnY29tcGF0aWJsZScuCitJbiBxdWVzdG8gbW9kbworLkIgVmltCitoYSBxdWFzaSBsbyBzdGVzc28gY29tcG9ydGFtZW50byBkaSBWaSwgYW5jaGUgaW4gcHJlc2VuemEgZGkgdW4gZmlsZQorZGkgY29uZmlndXJhemlvbmUgLnZpbXJjIFtwcm9wcmlvIGRpIFZpbSAtIE5kVF0uCisuVFAKKy1kCitJbml6aWEgaW4gbW9kYWxpdOAgIkRpZmYiIFtkaWZmZXJlbnplXS4KK0RvdnJlYmJlcm8gZXNzZXJjaSBjb21lIGFyZ29tZW50aSBkdWUgbyB0cmUgbm9taSBkaSBmaWxlLgorLkIgVmltCithcHJpcuAgdHV0dGkgaSBmaWxlIGV2aWRlbnppYW5kbyBsZSBkaWZmZXJlbnplIGZyYSBnbGkgc3Rlc3NpLgorRnVuemlvbmEgY29tZSB2aW1kaWZmKDEpLgorLlRQCistZCB7ZGlzcG9zaXRpdm99CitBcHJlIHtkaXNwb3NpdGl2b30gcGVyIHVzYXJsbyBjb21lIHRlcm1pbmFsZS4KK1NvbG8gcGVyIGwnQW1pZ2EuCitFc2VtcGlvOgorIlwtZCBjb246MjAvMzAvNjAwLzE1MCIuCisuVFAKKy1ECitEZWJ1Z2dpbmcuICBWaW0gc2kgbWV0dGUgaW4gbW9kYWxpdOAgImRlYnVnZ2luZyIgYSBwYXJ0aXJlCitkYWxsJ2VzZWN1emlvbmUgZGVsIHByaW1vIGNvbWFuZG8gZGEgdW5vIHNjcmlwdC4KKy5UUAorLWUKK0VzZWd1aXJlCisuQiBWaW0KK2luIG1vZGFsaXTgICJFeCIsIGNvbWUgc2UgaWwgcHJvZ3JhbW1hIGVzZWd1aXRvIHNpYSAiZXgiLgorLlRQCistRQorRXNlZ3VpcmUKKy5CIFZpbQoraW4gbW9kYWxpdOAgIkV4IiBtaWdsaW9yYXRhLCBjb21lIHNlIGlsIHByb2dyYW1tYSBlc2VndWl0byBzaWEgImV4aW0iLgorLlRQCistZgorRGlyZXR0YW1lbnRlIFtGb3JlZ3JvdW5kXS4gIFBlciBsYSB2ZXJzaW9uZSBHVUksCisuQiBWaW0KK25vbiBjcmVhIFtmb3JrXSB1bmEgbnVvdmEgZmluZXN0cmEsIGluZGlwZW5kZW50ZSBkYWxsbyBzaGVsbCBkaSBpbnZvY2F6aW9uZS4KK1BlciBsJ0FtaWdhLAorLkIgVmltCitub24g6CBmYXR0byByaXBhcnRpcmUgcGVyIGFwcmlyZSB1bmEgbnVvdmEgZmluZXN0cmEuCitPcHppb25lIGRhIHVzYXJlIHF1YW5kbworLkIgVmltCivoIGVzZWd1aXRvIGRhIHVuIHByb2dyYW1tYSBjaGUgYXR0ZW5kZSBsYSBmaW5lIGRlbGxhCitzZXNzaW9uZSBkaSBlZGl0IChhZCBlcy4gbWFpbCkuCitTdWxsJ0FtaWdhIGkgY29tYW5kaSAiOnNoIiBlICI6ISIgbm9uIHNvbm8gZGlzcG9uaWJpbGkuCisuVFAKKy0tbm9mb3JrCitEaXJldHRhbWVudGUgW0ZvcmVncm91bmRdLiAgUGVyIGxhIHZlcnNpb25lIEdVSSwKKy5CIFZpbQorbm9uIGNyZWEgW2ZvcmtdIHVuYSBudW92YSBmaW5lc3RyYSwgaW5kaXBlbmRlbnRlIGRhbGxvIHNoZWxsIGRpIGludm9jYXppb25lLgorLlRQCistRgorU2UKKy5CIFZpbQor6CBzdGF0byBjb21waWxhdG8gY29uIHN1cHBvcnRvIEZLTUFQIHBlciBlZGl0YXJlIGZpbGUgY29uIG9yaWVudGFtZW50bworZGVzdHJhLXNpbmlzdHJhIGUgdGFzdGllcmEgY29uIG1hcHBhdHVyYSBGYXJzaSwgcXVlc3RhIG9wemlvbmUgaW5pemlhCisuQiBWaW0KK2luIG1vZGFsaXTgICJGYXJzaSIsIGNpb+ggaW1wb3N0YW5kbyAnZmttYXAnIGUgJ3JpZ2h0bGVmdCcuCitBbHRyaW1lbnRpIHZpZW5lIGRhdG8gdW4gbWVzc2FnZ2lvIGRpIGVycm9yZSBlCisuQiBWaW0KK3Rlcm1pbmEgaW4gbW9kbyBhbm9ybWFsZS4KKy5UUAorLWcKK1NlCisuQiBWaW0KK+ggc3RhdG8gY29tcGlsYXRvIGNvbiBzdXBwb3J0byBHVUksIHF1ZXN0YSBvcHppb25lIGNoaWVkZSBkaSB1c2FybGEuCitTZSBWaW0g6CBzdGF0byBjb21waWxhdG8gc2VuemEgc3VwcG9ydG8gR1VJIHZpZW5lIGRhdG8gdW4gbWVzc2FnZ2lvIGRpIGVycm9yZSBlCisuQiBWaW0KK3Rlcm1pbmEgaW4gbW9kbyBhbm9ybWFsZS4KKy5UUAorLWgKK1VuIHBvJyBkaSBhaXV0byBzdSBvcHppb25pIGUgYXJnb21lbnRpIGNoZSBzaSBwb3Nzb25vIGRhcmUgaW52b2NhbmRvIFZpbS4KK1N1Yml0byBkb3BvCisuQiBWaW0KK2VzY2UuCisuVFAKKy1ICitTZQorLkIgVmltCivoIHN0YXRvIGNvbXBpbGF0byBjb2wgc3VwcG9ydG8gUklHSFRMRUZUIHBlciBlZGl0YXJlIGZpbGUgY29uIG9yaWVudGFtZW50bworZGVzdHJhLXNpbmlzdHJhIGUgdGFzdGllcmEgY29uIG1hcHBhdHVyYSBFYnJhaWNhLCBxdWVzdGEgb3B6aW9uZSBpbml6aWEKKy5CIFZpbQoraW4gbW9kYWxpdOAgIkVicmFpY2EiLCBjaW/oIGltcG9zdGFuZG8gJ2hrbWFwJyBlICdyaWdodGxlZnQnLgorQWx0cmltZW50aSB2aWVuZSBkYXRvIHVuIG1lc3NhZ2dpbyBkaSBlcnJvcmUgZQorLkIgVmltCit0ZXJtaW5hIGluIG1vZG8gYW5vcm1hbGUuCisuVFAKKy1pIHt2aW1pbmZvfQorU2Ug6CBhYmlsaXRhdG8gbCd1c28gZGkgdW4gZmlsZSB2aW1pbmZvLCBxdWVzdGEgb3B6aW9uZSBpbmRpY2EgaWwgbm9tZQorZGVsIGZpbGUgZGEgdXNhcmUgaW52ZWNlIGRpIHF1ZWxsbyBwcmVkZWZpbml0byAifi8udmltaW5mbyIuCitTaSBwdfIgYW5jaGUgZXZpdGFyZSBsJ3VzbyBkaSB1biBmaWxlIC52aW1pbmZvLCBkYW5kbyBjb21lIG5vbWUgIk5PTkUiLgorLlRQCistTAorRXF1aXZhbGVudGUgYSAtci4KKy5UUAorLWwKK01vZGFsaXTgIExpc3AuCitJbXBvc3RhIGxlIG9wemluaSAnbGlzcCcgZSAnc2hvd21hdGNoJy4KKy5UUAorLW0KK0luaWJpc2NlIG1vZGlmaWNhIGZpbGUuCitBbm51bGxhIGwnb3B6aW9uZSAnd3JpdGUnLgorRScgYW5jb3JhIHBvc3NpYmlsZSBtb2RpZmljYXJlIHVuIGJ1ZmZlciBbaW4gbWVtb3JpYSAtIE5kdF0sIG1hIG5vbiBzY3JpdmVybG8uCisuVFAKKy1NCitNb2RpZmljaGUgbm9uIHBlcm1lc3NlLiAgTGUgb3B6aW9uaSAnbW9kaWZpYWJsZScgZSAnd3JpdGUnIHNvbm8gYW5udWxsYXRlLAoraW4gbW9kbyBkYSBpbXBlZGlyZSBzaWEgbW9kaWZpY2hlIGNoZSByaXNjcml0dHVyZS4gIERhIG5vdGFyZSBjaGUgcXVlc3RlCitvcHppb25pIHBvc3Nvbm8gZXNzZXJlIGFiaWxpdGF0ZSBpbiBzZWd1aXRvLCBwZXJtZXR0ZW5kbyBjb3PsIG1vZGlmaWNoZS4KKy5UUAorLU4KK01vZGFsaXTgICJOb24tY29tcGF0aWJpbGUiLiAgQW5udWxsYSBsJ29wemlvbmUgJ2NvbXBhdGlibGUnLgorQ29z7AorLkIgVmltCit2YSB1biBwbycgbWVnbGlvLCBtYSDoIG1lbm8gY29tcGF0aWJpbGUgY29uIFZpLCBhbmNoZSBpbiBhc3NlbnphIGRpIHVuCitmaWxlIC52aW1yYy4KKy5UUAorLW4KK0luaWJpc2NlIGwndXNvIGRpIHVuIGZpbGUgZGkgc3dhcC4KK0lsIHJlY3VwZXJvIGRvcG8gdW5hIGNhZHV0YSBkaSBtYWNjaGluYSBkaXZlbnRhIGltcG9zc2liaWxlLgorVXRpbGUgcGVyIGVkaXRhcmUgdW4gZmlsZSBzdSB1biBzdXBwb3J0byBtb2x0byBsZW50byAoYWQgZXMuIGZsb3BweSkuCitJbCBjb21hbmRvICI6c2V0IHVjPTAiIGhhIGxvIHN0ZXNzbyBlZmZldHRvLgorUGVyIGFiaWxpdGFyZSBpbCByZWN1cGVybyB1c2FyZSAiOnNldCB1Yz0yMDAiLgorLlRQCistbmIKK0RpdmllbmUgdW4gRWRpdG9yIHNlcnZlciBwZXIgTmV0QmVhbnMuICBWZWRlcmUgbGEgZG9jdW1lbnRhemlvbmUgcGVyIGRldHRhZ2xpLgorLlRQCistb1tOXQorQXByaSBOIGZpbmVzdHJlIGluIG9yaXp6b250YWxlLgorU2UgTiBtYW5jYSwgYXByaSB1bmEgZmluZXN0cmEgcGVyIGNpYXNjdW4gZmlsZS4KKy5UUAorLU9bTl0KK0FwcmkgTiBmaW5lc3RyZSwgaW4gdmVydGljYWxlLgorU2UgTiBtYW5jYSwgYXByaSB1bmEgZmluZXN0cmEgcGVyIGNpYXNjdW4gZmlsZS4KKy5UUAorLVIKK01vZGFsaXTgICJTb2xhIExldHR1cmEiLgorSW1wb3N0YSBsJ29wemlvbmUgJ3JlYWRvbmx5Jy4KK1NpIHB18iBhbmNvcmEgbW9kaWZpY2FyZSBpbCBidWZmZXIsIG1hIHNpZXRlIHByb3RldHRpIGRhIHVuYSByaXNjcml0dHVyYQoraW52b2xvbnRhcmlhLgorU2Ugdm9sZXRlIGRhdnZlcm8gcmlzY3JpdmVyZSBpbCBmaWxlLCBhZ2dpdW5nZXRlIHVuIHB1bnRvIGVzY2xhbWF0aXZvCithbCBjb21hbmRvICJFeCIsIGNvbWUgaW4gIjp3ISIuCitMJ29wemlvbmUgLVIgaW1wbGljYSBhbmNoZSBsJ29wemlvbmUgLW4gKHZlZGVyZSBzb3R0bykuCitMJ29wemlvbmUgJ3JlYWRvbmx5JyBwdfIgZXNzZXJlIGFubnVsbGF0YSBjb24gIjpzZXQgbm9ybyIuCitWZWRlcmUgIjpoZWxwICdyZWFkb25seSciLgorLlRQCistcgorTGlzdGEgZmlsZSBkaSBzd2FwLCBhc3NpZW1lIGEgZGF0aSB1dGlsaSBwZXIgdW4gcmVjdXBlcm8uCisuVFAKKy1yIHtmaWxlfQorTW9kYWxpdOAgIlJlY292ZXJ5Ii4KK0lsIGZpbGUgZGkgc3dhcCDoIHVzYXRvIHBlciByZWN1cGVyYXJlIHVuYSBzZXNzaW9uZSBkaSBlZGl0IGZpbml0YSBtYWxlLgorSWwgZmlsZSBkaSBzd2FwIOggdW4gZmlsZSBjb24gbG8gc3Rlc3NvIG5vbWUgZmlsZSBkZWwgZmlsZSBkaSB0ZXN0bworZWRpdGF0bywgY29sIHN1ZmZpc3NvICIuc3dwIi4KK1ZlZGVyZSAiOmhlbHAgcmVjb3ZlcnkiLgorLlRQCistcworTW9kYWxpdOAgc2lsZW56aW9zYS4gIFNvbG8gcXVhbmRvIGludm9jYXRvIGNvbWUgIkV4IiBvIHF1YW5kbyBsJ29wemlvbmUKKyItZSIg6CBzdGF0YSBkYXRhIHByaW1hIGRlbGwnb3B6aW9uZSAiLXMiLgorLlRQCistcyB7c2NyaXB0aW59CitMbyBzY3JpcHQgZmlsZSB7c2NyaXB0aW59IOggbGV0dG8uCitJIGNhcmF0dGVyaSBuZWwgZmlsZSBzb25vIGludGVycHJldGF0aSBjb21lIHNlIGltbWVzc2kgZGEgdm9pLgorTG8gc3Rlc3NvIHNpIHB18iBvdHRlbmVyZSBjb2wgY29tYW5kbyAiOnNvdXJjZSEge3NjcmlwdGlufSIuCitTZSBsYSBmaW5lIGRlbCBmaWxlIGRpIGlucHV0IHZpZW5lIHJhZ2dpdW50YSBwcmltYSBjaGUgVmltIHRlcm1pbmksCitsJ3VsdGVyaW9yZSBpbnB1dCB2aWVuZSBwcmVzbyBkYWxsYSB0YXN0aWVyYS4KKy5UUAorLVQge3Rlcm1pbmFsZX0KK0RpY2UgYQorLkIgVmltCitxdWFsZSB0aXBvIGRpIHRlcm1pbmFsZSBzdGF0ZSB1c2FuZG8uCitVdGlsZSBzb2xvIHNlIGlsIHRlcm1pbmFsZSBub24gdmllbmUgcmljb25vc2NpdXRvIGNvcnJldHRhbWVudGUgZGEgVmltLgorRG92cmViYmUgZXNzZXJlIHVuIHRlcm1pbmFsZSBub3RvIGEKKy5CIFZpbQorKGludGVybmFtZW50ZSkgbyBkZWZpbml0byBuZWwgZmlsZSB0ZXJtY2FwIG8gdGVybWluZm8uCisuVFAKKy11IHt2aW1yY30KK1VzYSBpIGNvbWFuZGkgbmVsIGZpbGUge3ZpbXJjfSBwZXIgaW5pemlhbGl6emF6aW9uaS4KK1R1dHRlIGxlIGFsdHJlIGluaXppYWxpenphemlvbmkgbm9uIHNvbm8gZXNlZ3VpdGUuCitVc2F0ZSBxdWVzdGEgb3B6aW9uZSBwZXIgZWRpdGFyZSBxdWFsY2hlIGZpbGUgZGkgdGlwbyBzcGVjaWFsZS4KK1B18iBhbmNoZSBlc3NlcmUgdXNhdG8gcGVyIG5vbiBmYXJlIGFsY3VuYSBpbml6aWFsaXp6YXppb25lIGRhbmRvIAorY29tZSBub21lICJOT05FIi4KK1ZlZGVyZSAiOmhlbHAgaW5pdGlhbGl6YXRpb24iIGRhIHZpbSBwZXIgdWx0ZXJpb3JpIGRldHRhZ2xpLgorLlRQCistVSB7Z3ZpbXJjfQorVXNhIGkgY29tYW5kaSBuZWwgZmlsZSB7Z3ZpbXJjfSBwZXIgaW5pemlhbGl6emF6aW9uaSBHVUkuCitUdXR0ZSBsZSBhbHRyZSBpbml6aWFsaXp6YXppb25pIEdVSSBub24gc29ubyBlc2VndWl0ZS4KK1B18iBhbmNoZSBlc3NlcmUgdXNhdGEgcGVyIG5vbiBmYXJlIGFsY3VuYSBpbml6aWFsaXp6YXppb25lIEdVSSBkYW5kbyAKK2NvbWUgbm9tZSAiTk9ORSIuCitWZWRlcmUgIjpoZWxwIGd1aS1pbml0IiBkYSB2aW0gcGVyIHVsdGVyaW9yaSBkZXR0YWdsaS4KKy5UUAorLVZbTl0KK1ZlcmJvc28uICBWaW0gbWFuZGEgbWVzc2FnZ2kgcmVsYXRpdmkgYWdsaSBzY3JpcHQgZmlsZSBjaGUgZXNlZ3VlCitlIHF1YW5kbyBsZWdnZSBvIHNjcml2ZSB1biBmaWxlIHZpbWluZm8uICBJbCBudW1lcm8gb3B6aW9uYWxlIE4g6CBpbCB2YWxvcmUKK2RlbGwnb3B6aW9uZSAndmVyYm9zZScuCitJbCB2YWxvcmUgcHJlZGVmaW5pdG8g6CAxMC4KKy5UUAorLXYKK0luaXppYQorLkIgVmltCitpbiBtb2RhbGl04CAiVmkiLCBjb21lIHNlIGlsIHByb2dyYW1tYSBlc2VndWliaWxlIGZvc3NlICJ2aSIuICBRdWVzdG8gaGEKK2VmZmV0dG8gc29sbyBxdWFuZG8gVmltIHZpZW5lIGludm9jYXRvIGNvbiBpbCBub21lICJleCIuCisuVFAKKy13IHtzY3JpcHRvdXR9CitPZ25pIGNhcmF0dGVyZSBpbW1lc3NvIHZpZW5lIHJlZ2lzdHJhdG8gbmVsIGZpbGUge3NjcmlwdG91dH0sCitmaW5jaOkgbm9uIHVzY2l0ZSBkYQorLkIgVmltLgorVXRpbGUgc2Ugc2kgdnVvbGUgY3JlYXJlIHVubyBzY3JpcHQgZmlsZSBkYSB1c2FyZSBjb24gInZpbSAtcyIgbworIjpzb3VyY2UhIi4KK1NlIGlsIGZpbGUge3NjcmlwdG91dH0gZXNpc3RlLCBxdWVsIGNoZSBpbW1ldHRldGUgdmllbmUgYWdnaXVudG8gaW4gZm9uZG8uCisuVFAKKy1XIHtzY3JpcHRvdXR9CitDb21lIC13LCBtYSB1bm8gc2NyaXB0IGZpbGUgZXNpc3RlbnRlIHZpZW5lIHNvdnJhc2NyaXR0by4KKy5UUAorLXgKK1VzbyBkaSBjaWZyYXR1cmEgbmVsbGEgc2NyaXR0dXJhIGRlaSBmaWxlLiAgRScgbmVjZXNzYXJpbyBpbW1ldHRlcmUKK3VuYSBjaGlhdmUgZGkgY2lmcmF0dXJhLgorLlRQCistWAorTm9uIGNvbm5ldHRlcnRpIGFsIHNlcnZlciBYLiAgVmltIHBhcnRlIHBp+SByYXBpZGFtZW50ZSwKK21hIGlsIHRpdG9sbyBkZWxsYSBmaW5lc3RyYSBlIGxhIGNsaXBib2FyZCBub24gc29ubyBkaXNwb25pYmlsaS4KKy5UUAorLXkKK0VzZWd1aXJlCisuQiBWaW0KK2luIG1vZGFsaXTgICJGYWNpbGUiIChzZW1wbGlmaWNhdGEpLCBjb21lIHNlIGwnZXNlZ3VpYmlsZSBpbnZvY2F0bworc2lhICJldmltIiBvICJldmlldyIuCitGYSBz7CBjaGUKKy5CIFZpbQorc2kgY29tcG9ydGkgY29tZSB1biBlZGl0b3IgY2hlIHVzYSBzb2xvIGlsIG1vdXNlIGUgaSBjYXJhdHRlcmkuCisuVFAKKy1aCitNb2RhbGl04CAiUmlzdHJldHRhIi4gIFZpbSBzaSBjb21wb3J0YSBjb21lIHNlIGludm9jYXRvIGNvbiB1biBub21lCitjaGUgaW5pemlhIHBlciAiciIuCisuVFAKKy0tCitTcGVjaWZpY2EgbGEgZmluZSBkZWxsZSBvcHppb25pLgorQXJnb21lbnRpIHNwZWNpZmljYXRpIGRvcG8gcXVlc3RvIHNvbm8gY29uc2lkZXJhdGkgbm9taSBmaWxlLgorU2kgcHXyIHVzYXJlIHBlciBlZGl0YXJlIHVuIGZpbGUgaWwgY3VpIG5vbWUgaW5pemkgcGVyICctJy4KKy5UUAorLS1lY2hvLXdpZAorU29sbyBjb24gR1VJIEdUSzogVmlzdWFsaXp6YSBXaW5kb3cgSUQgc3UgInN0ZG91dCIuCisuVFAKKy0taGVscAorVmltIGTgIHVuIG1lc3NhZ2dpbyBlZCBlc2NlLCBjb21lIGNvbiBsJ2FyZ29tZW50byAiLWgiLgorLlRQCistLWxpdGVyYWwKK0NvbnNpZGVyYSBpIG5vbWkgcGFzc2F0aSBjb21lIGFyZ29tZW50aSBsZXR0ZXJhaSwgc2VuemEgZXNwYW5kZXJlCittZXRhY2FyYXR0ZXJpLiAgTm9uIG5lY2Vzc2FyaW8gaW4gVW5peCwgbG8gc2hlbGwgZXNwYW5kZSBpIG1ldGFjYXJhdHRlcmkuCisuVFAKKy0tbm9wbHVnaW4KK05vbiBjYXJpY2FyZSBwbHVnaW4uICBJbXBsaWNpdG8gc2Ugc2kgc3BlY2lmaWNhIC11IE5PTkUuCisuVFAKKy0tcmVtb3RlCitDb25uZXR0ZXJzaSBhIHVuIHNlcnZlciBWaW0gZSBjaGllZGVyZSBkaSBlZGl0YXJlIGkgZmlsZSBlbGVuY2F0aSBjb21lIGFsdHJpCithcmdvbWVudGkuICBTZSBub24gc2kgdHJvdmEgdW4gc2VydmVyIHZpZW5lIGRhdG8gdW4gbWVzc2FnZ2lvIGUgaSBmaWxlIHNvbm8KK2VkaXRhdGkgbmVsIFZpbSBjb3JyZW50ZS4KKy5UUAorLS1yZW1vdGUtZXhwciB7ZXhwcn0KK0Nvbm5ldHRlcnNpIGEgdW4gc2VydmVyIFZpbSwgdmFsdXRhcmUgaXZpIHtleHByfSBlIHN0YW1wYXJlIGlsIHJpc3VsdGF0b2kKK3N1ICJzdGRvdXQiLgorLlRQCistLXJlbW90ZS1zZW5kIHtjaGlhdml9CitDb25uZXR0ZXJzaSBhIHVuIHNlcnZlciBWaW0gZSBzcGVkaXJnbGkge2NoaWF2aX0uCisuVFAKKy0tcmVtb3RlLXNpbGVudAorQ29tZSAtLXJlbW90ZSwgbWEgc2VuemEgYXZ2aXNhcmUgc2Ugbm9uIHNpIHRyb3ZhIHVuIHNlcnZlci4KKy5UUAorLS1yZW1vdGUtd2FpdAorQ29tZSAtLXJlbW90ZSwgbWEgVmltIG5vbiB0ZXJtaW5hIGZpbmNo6SBpIGZpbGUgbm9uIHNvbm8gc3RhdGkgZWRpdGF0aS4KKy5UUAorLS1yZW1vdGUtd2FpdC1zaWxlbnQKK0NvbWUgLS1yZW1vdGUtd2FpdCwgbWEgc2VuemEgYXZ2aXNhcmUgc2Ugbm9uIHNpIHRyb3ZhIHVuIHNlcnZlci4KKy5UUAorLS1zZXJ2ZXJsaXN0CitMaXN0YSBpIG5vbWkgZGkgdHV0dGkgaSBzZXJ2ZXIgVmltIGRpc3BvbmliaWxpLgorLlRQCistLXNlcnZlcm5hbWUge25vbWV9CitVc2Ege25vbWV9IGNvbWUgbm9tZSBzZXJ2ZXIuICBVc2F0byBwZXIgaWwgVmltIGNvcnJlbnRlLCBhIG1lbm8gY2hlIHNpYQordXNhdG8gY29uIGwnYXJnb21lbnRvIC0tcmVtb3RlLCBuZWwgcXVhbCBjYXNvIGluZGljYSBpbCBzZXJ2ZXIgYSBjdWkKK2Nvbm5ldHRlcnNpLgorLlRQCistLXNvY2tldGlkIHtpZH0KK1NvbG8gY29uIEdVSSBHVEs6IFVzYSBpbCBtZWNjYW5pc21vIEd0a1BsdWcgcGVyIGVzZWd1aXJlIGd2aW0gaW4gdW4nYWx0cmEKK2ZpbmVzdHJhLgorLlRQCistLXZlcnNpb24KK1N0YW1wYSBsYSB2ZXJzaW9uZSBkaSBWaW0gZWQgZXNjaS4KKy5TSCBBSVVUTyBPTkxJTkUKK0JhdHRlcmUgIjpoZWxwIiBpbgorLkIgVmltCitwZXIgaW5pemlhcmUuCitCYXR0ZXJlICI6aGVscCBhcmdvbWVudG8iIHBlciByaWNldmVyZSBhaXV0byBzdSB1bm8gc3BlY2lmaWNvIGFyZ29tZW50by4KK1BlciBlc2VtcGlvOiAiOmhlbHAgWloiIHBlciByaWNldmVyZSBhaXV0byBzdWwgY29tYW5kbyAiWloiLgorVXNhcmUgPFRhYj4gZSBDVFJMLUQgcGVyIGNvbXBsZXRhcmUgZ2xpIGFyZ29tZW50aQorKCI6aGVscCBjbWRsaW5lLWNvbXBsZXRpb24iKS4KK0NpIHNvbm8gInRhZyIgbmVpIGZpbGUgZGkgaGVscCBwZXIgc2FsdGFyZSBkYSB1biBhcmdvbWVudG8gYSB1biBhbHRybworKHNpbWlsaSBhIGxlZ2FtaSBpcGVydGVzdHVhbGksIHZlZGVyZSAiOmhlbHAiKS4KK1R1dHRpIGkgZmlsZSBkaSBkb2N1bWVudGF6aW9uZSBwb3Nzb25vIGVzc2VyZSBuYXZpZ2F0aSBjb3PsLiAgQWQgZXMuOgorIjpoZWxwIHN5bnRheC50eHQiLgorLlNIIEZJTEUKKy5UUCAxNQorL3Vzci9sb2NhbC9saWIvdmltL2RvYy8qLnR4dAorSSBmaWxlIGRpIGNvY3VtZW50YXppb25hIGRpCisuQiBWaW0KKy4KK1VzYXRlICI6aGVscCBkb2MtZmlsZS1saXN0IiBwZXIgYXZlcmUgbGEgbGlzdGEgY29tcGxldGEuCisuVFAKKy91c3IvbG9jYWwvbGliL3ZpbS9kb2MvdGFncworSWwgZmlsZSBkaSB0YWdzIHVzYXRvIHBlciB0cm92YXJlIGluZm9ybWF6aW9uaSBuZWkgZmlsZSBkaSBkb2N1bWVudGF6aW9uZS4KKy5UUAorL3Vzci9sb2NhbC9saWIvdmltL3N5bnRheC9zeW50YXgudmltCitJbml6aWFsaXp6YXppb25pIHNpbnRhdHRpY2hlIGEgbGl2ZWxsbyBkaSBzaXN0ZW1hLgorLlRQCisvdXNyL2xvY2FsL2xpYi92aW0vc3ludGF4LyoudmltCitGaWxlIGRpIGNvbG9yYXppb25lIHNpbnRhdHRpY2EgcGVyIHZhcmkgbGluZ3VhZ2dpLgorLlRQCisvdXNyL2xvY2FsL2xpYi92aW0vdmltcmMKK0luaXppYWxpenphemlvbmkKKy5CIFZpbQorYSBsaXZlbGxvIGRpIHNpc3RlbWEuCisuVFAKKy91c3IvbG9jYWwvbGliL3ZpbS9ndmltcmMKK0luaXppYWxpenphemlvbmkgZ3ZpbSBhIGxpdmVsbG8gZGkgc2lzdGVtYS4KKy5UUAorL3Vzci9sb2NhbC9saWIvdmltL29wdHdpbi52aW0KK1NjcmlwdCBWaW0gdXNhdG8gZGFsIGNvbWFuZG8gIjpvcHRpb25zIiwgdW4gbW9kbyBzZW1wbGljZQorcGVyIHZpc3VhbGl6emFyZSBlIGltcG9zdGFyZSBvcHppb25pLgorLlRQCisvdXNyL2xvY2FsL2xpYi92aW0vbWVudS52aW0KK0luemlhbGl6emF6aW9uaSBkZWwgbWVudSBndmltIGEgbGl2ZWxsbyBkaSBzaXN0ZW1hLgorLlRQCisvdXNyL2xvY2FsL2xpYi92aW0vYnVncmVwb3J0LnZpbQorU2NyaXB0IFZpbSBwZXIgZ2VuZXJhcmUgdW5hIHNlZ25hbGF6aW9uZSBkaSBlcnJvcmUuICBWZWRlcmUgIjpoZWxwIGJ1Z3MiLgorLlRQCisvdXNyL2xvY2FsL2xpYi92aW0vZmlsZXR5cGUudmltCitTY3JpcHQgVmltIHBlciBkZXRlcm1pbmFyZSBpbCB0aXBvIGRpIHVuIGZpbGUgYSBwYXJ0aXJlIGRhbCBzdW8gbm9tZS4KK1ZlZGVyZSAiOmhlbHAgJ2ZpbGV0eXBlJyIuCisuVFAKKy91c3IvbG9jYWwvbGliL3ZpbS9zY3JpcHRzLnZpbQorU2NyaXB0IFZpbSBwZXIgZGV0ZXJtaW5hcmUgaWwgdGlwbyBkaSB1biBmaWxlIGEgcGFydGlyZSBkYWwgc3VvIGNvbnRlbnV0by4KK1ZlZGVyZSAiOmhlbHAgJ2ZpbGV0eXBlJyIuCisuVFAKKy91c3IvbG9jYWwvbGliL3ZpbS8qLnBzCitGaWxlIHVzYXRpIHBlciBzdGFtcGEgUG9zdFNjcmlwdC4KKy5QUAorUGVyIGluZm9ybWF6aW9uaSBhZ2dpb3JuYXRlIFtpbiBpbmdsZXNlIC0gTmRUXSB2ZWRlcmUgbGEgaG9tZSBwYWdlIGRpIFZpbToKKy5icgorPFVSTDpodHRwOi8vd3d3LnZpbS5vcmcvPgorLlNIIFZFREVSRSBBTkNIRQordmltdHV0b3IoMSkKKy5TSCBBVVRPUkUKK0J1b25hIHBhcnRlIGRpCisuQiBWaW0KK+ggc3RhdG8gc2NyaXR0byBkYSBCcmFtIE1vb2xlbmFhciwgY29uIG1vbHRvIGFpdXRvIGRhIGFsdHJpLgorVmVkZXJlICI6aGVscCBjcmVkaXRzIiBpbgorLkIgVmltLgorLmJyCisuQiBWaW0KK+ggYmFzYXRvIHN1IFN0ZXZpZSwgc2NyaXR0byBkYTogVGltIFRob21wc29uLAorVG9ueSBBbmRyZXdzIGUgRy5SLiAoRnJlZCkgV2FsdGVyLgorSW4gdmVyaXTgLCBwb2NvIG8gbnVsbGEg6CByaW1hc3RvIGRlbCBsb3JvIGNvZGljZSBvcmlnaW5hbGUuCisuU0ggQkFDSEkKK1Byb2JhYmlsaS4KK1ZlZGVyZSAiOmhlbHAgdG9kbyIgcGVyIHVuYSBsaXN0YSBkaSBwcm9ibGVtaSBub3RpLgorLlBQCitTaSBub3RpIGNoZSB1biBjZXJ0byBudW1lcm8gZGkgY29tcG9ydGFtZW50aSBjaGUgcG9zc29ubyBlc3NlcmUgY29uc2lkZXJhdGkKK2Vycm9yaSBkYSBxdWFsY3Vubywgc29ubyBpbiBlZmZldHRpIGNhdXNhdGkgZGEgdW5hIHJpcHJvZHV6aW9uZSBmaW4gdHJvcHBvCitmZWRlbGUgZGVsIGNvbXBvcnRhbWVudG8gZGkgVmkuCitTZSByaXRlbmV0ZSBjaGUgYWx0cmUgY29zZSBzaWFubyBlcnJvcmkgInBlcmNo6SBWaSBzaSBjb21wb3J0YSBkaXZlcnNhbWVudGUiLAorZGF0ZSBwcmltYSB1bidvY2NoaWF0YSBhbCBmaWxlIHZpX2RpZmYudHh0CisobyBiYXR0ZXJlIDpoZWxwIHZpX2RpZmYudHh0IGRhIFZpbSkuCitEYXRlIGFuY2hlIHVuJ29jY2hpYXRhIGFsbGUgb3B6aW9uaSAnY29tcGF0aWJsZScgZSAnY3BvcHRpb25zLgpkaWZmIC0tZ2l0IGEvcnVudGltZS9kb2MvdmltLm1hbiBiL3J1bnRpbWUvZG9jL3ZpbS5tYW4KaW5kZXggNTkzOTI2ZC4uZmY5MjVjNiAxMDA2NDQKLS0tIGEvcnVudGltZS9kb2MvdmltLm1hbgorKysgYi9ydW50aW1lL2RvYy92aW0ubWFuCkBAIC0yNzksOCArMjc5LDggQEAKICAgICAgICAtVyB7c2NyaXB0b3V0fQogICAgICAgICAgICAgICAgICAgIExpa2UgLXcsIGJ1dCBhbiBleGlzdGluZyBmaWxlIGlzIG92ZXJ3cml0dGVuLgogCi0gICAgICAgLXggICAgICAgICAgVXNlICBlbmNyeXB0aW9uICB3aGVuICB3cml0aW5nICBmaWxlcy4gICAgV2lsbCBwcm9tcHQgZm9yIGEKLSAgICAgICAgICAgICAgICAgICBjcnlwdCBrZXkuCisgICAgICAgLXggICAgICAgICAgVXNlIGVuY3J5cHRpb24gd2hlbiB3cml0aW5nIGZpbGVzLiAgV2lsbCBwcm9tcHQgZm9yIGEgY3J5cHQKKyAgICAgICAgICAgICAgICAgICBrZXkuCiAKICAgICAgICAtWCAgICAgICAgICBEb24ndCBjb25uZWN0IHRvIHRoZSBYIHNlcnZlci4gIFNob3J0ZW5zIHN0YXJ0dXAgdGltZSBpbiAgYQogICAgICAgICAgICAgICAgICAgIHRlcm1pbmFsLCAgYnV0ICB0aGUgIHdpbmRvdyB0aXRsZSBhbmQgY2xpcGJvYXJkIHdpbGwgbm90IGJlCkBAIC0yOTcsMTIgKzI5NywxMyBAQAogICAgICAgICAgICAgICAgICAgIGJlIGhhbmRsZWQgYXMgYSBmaWxlIG5hbWUuICBUaGlzIGNhbiAgYmUgIHVzZWQgIHRvICBlZGl0ICBhCiAgICAgICAgICAgICAgICAgICAgZmlsZW5hbWUgdGhhdCBzdGFydHMgd2l0aCBhICctJy4KIAotICAgICAgIC0tZWNoby13aWQgIEdUSyBHVUkgb25seTogRWNobyB0aGUgV2luZG93IElEIG9uIHN0ZG91dAorICAgICAgIC0tZWNoby13aWQgIEdUSyBHVUkgb25seTogRWNobyB0aGUgV2luZG93IElEIG9uIHN0ZG91dC4KIAogICAgICAgIC0taGVscCAgICAgIEdpdmUgYSBoZWxwIG1lc3NhZ2UgYW5kIGV4aXQsIGp1c3QgbGlrZSAiLWgiLgogCiAgICAgICAgLS1saXRlcmFsICAgVGFrZSAgZmlsZSAgbmFtZSAgYXJndW1lbnRzICBsaXRlcmFsbHksIGRvIG5vdCBleHBhbmQgd2lsZC0KLSAgICAgICAgICAgICAgICAgICBjYXJkcy4gIE5vdCBuZWVkZWQgb24gVW5peCwgdGhlIHNoZWxsIGV4cGFuZCB3aWxkY2FyZHMuCisgICAgICAgICAgICAgICAgICAgY2FyZHMuICBUaGlzIGhhcyBubyBlZmZlY3Qgb24gVW5peCB3aGVyZSB0aGUgc2hlbGwgIGV4cGFuZHMKKyAgICAgICAgICAgICAgICAgICB3aWxkY2FyZHMuCiAKICAgICAgICAtLW5vcGx1Z2luICBTa2lwIGxvYWRpbmcgcGx1Z2lucy4gIEltcGxpZWQgYnkgLXUgTk9ORS4KIApAQCAtMzExLDE4ICszMTIsMTggQEAKICAgICAgICAgICAgICAgICAgICBpcyBnaXZlbiBhbmQgdGhlIGZpbGVzIGFyZSBlZGl0ZWQgaW4gdGhlIGN1cnJlbnQgVmltLgogCiAgICAgICAgLS1yZW1vdGUtZXhwciB7ZXhwcn0KLSAgICAgICAgICAgICAgICAgICBDb25uZWN0IHRvIGEgVmltIHNlcnZlciwgZXZhbHVhdGUge2V4cHJ9IGluICBpdCAgYW5kICBwcmludAorICAgICAgICAgICAgICAgICAgIENvbm5lY3QgIHRvICBhICBWaW0gc2VydmVyLCBldmFsdWF0ZSB7ZXhwcn0gaW4gaXQgYW5kIHByaW50CiAgICAgICAgICAgICAgICAgICAgdGhlIHJlc3VsdCBvbiBzdGRvdXQuCiAKICAgICAgICAtLXJlbW90ZS1zZW5kIHtrZXlzfQogICAgICAgICAgICAgICAgICAgIENvbm5lY3QgdG8gYSBWaW0gc2VydmVyIGFuZCBzZW5kIHtrZXlzfSB0byBpdC4KIAogICAgICAgIC0tcmVtb3RlLXNpbGVudAotICAgICAgICAgICAgICAgICAgIEFzICAtLXJlbW90ZSwgIGJ1dCAgd2l0aG91dCAgdGhlICB3YXJuaW5nIHdoZW4gbm8gc2VydmVyIGlzCisgICAgICAgICAgICAgICAgICAgQXMgLS1yZW1vdGUsIGJ1dCB3aXRob3V0IHRoZSAgd2FybmluZyAgd2hlbiAgbm8gIHNlcnZlciAgaXMKICAgICAgICAgICAgICAgICAgICBmb3VuZC4KIAogICAgICAgIC0tcmVtb3RlLXdhaXQKLSAgICAgICAgICAgICAgICAgICBBcyAtLXJlbW90ZSwgYnV0IFZpbSBkb2VzIG5vdCBleGl0ICB1bnRpbCAgdGhlICBmaWxlcyAgaGF2ZQorICAgICAgICAgICAgICAgICAgIEFzICAtLXJlbW90ZSwgIGJ1dCAgVmltICBkb2VzIG5vdCBleGl0IHVudGlsIHRoZSBmaWxlcyBoYXZlCiAgICAgICAgICAgICAgICAgICAgYmVlbiBlZGl0ZWQuCiAKICAgICAgICAtLXJlbW90ZS13YWl0LXNpbGVudApAQCAtMzMzLDMxICszMzQsMzEgQEAKICAgICAgICAgICAgICAgICAgICBMaXN0IHRoZSBuYW1lcyBvZiBhbGwgVmltIHNlcnZlcnMgdGhhdCBjYW4gYmUgZm91bmQuCiAKICAgICAgICAtLXNlcnZlcm5hbWUge25hbWV9Ci0gICAgICAgICAgICAgICAgICAgVXNlIHtuYW1lfSBhcyB0aGUgc2VydmVyIG5hbWUuICBVc2VkIGZvciB0aGUgIGN1cnJlbnQgIFZpbSwKKyAgICAgICAgICAgICAgICAgICBVc2UgIHtuYW1lfSAgYXMgdGhlIHNlcnZlciBuYW1lLiAgVXNlZCBmb3IgdGhlIGN1cnJlbnQgVmltLAogICAgICAgICAgICAgICAgICAgIHVubGVzcyB1c2VkIHdpdGggYSAtLXJlbW90ZSBhcmd1bWVudCwgdGhlbiBpdCdzIHRoZSBuYW1lIG9mCiAgICAgICAgICAgICAgICAgICAgdGhlIHNlcnZlciB0byBjb25uZWN0IHRvLgogCiAgICAgICAgLS1zb2NrZXRpZCB7aWR9Ci0gICAgICAgICAgICAgICAgICAgR1RLIEdVSSBvbmx5OiBVc2UgdGhlIEd0a1BsdWcgIG1lY2hhbmlzbSAgdG8gIHJ1biAgZ3ZpbSAgaW4KKyAgICAgICAgICAgICAgICAgICBHVEsgIEdVSSAgb25seTogIFVzZSAgdGhlICBHdGtQbHVnIG1lY2hhbmlzbSB0byBydW4gZ3ZpbSBpbgogICAgICAgICAgICAgICAgICAgIGFub3RoZXIgd2luZG93LgogCiAgICAgICAgLS12ZXJzaW9uICAgUHJpbnQgdmVyc2lvbiBpbmZvcm1hdGlvbiBhbmQgZXhpdC4KIAogT04tTElORSBIRUxQCi0gICAgICAgVHlwZSAgIjpoZWxwIiAgaW4gVmltIHRvIGdldCBzdGFydGVkLiAgVHlwZSAiOmhlbHAgc3ViamVjdCIgdG8gZ2V0IGhlbHAKLSAgICAgICBvbiBhIHNwZWNpZmljIHN1YmplY3QuICBGb3IgZXhhbXBsZTogIjpoZWxwIFpaIiB0byAgZ2V0ICBoZWxwICBmb3IgIHRoZQotICAgICAgICJaWiIgIGNvbW1hbmQuICAgVXNlIDxUYWI+IGFuZCBDVFJMLUQgdG8gY29tcGxldGUgc3ViamVjdHMgKCI6aGVscCBjbWQtCi0gICAgICAgbGluZS1jb21wbGV0aW9uIikuICBUYWdzIGFyZSBwcmVzZW50IHRvIGp1bXAgZnJvbSBvbmUgcGxhY2UgdG8gIGFub3RoZXIKKyAgICAgICBUeXBlICI6aGVscCIgaW4gVmltIHRvIGdldCBzdGFydGVkLiAgVHlwZSAiOmhlbHAgc3ViamVjdCIgdG8gIGdldCAgaGVscAorICAgICAgIG9uICBhICBzcGVjaWZpYyAgc3ViamVjdC4gICBGb3IgZXhhbXBsZTogIjpoZWxwIFpaIiB0byBnZXQgaGVscCBmb3IgdGhlCisgICAgICAgIlpaIiBjb21tYW5kLiAgVXNlIDxUYWI+IGFuZCBDVFJMLUQgdG8gY29tcGxldGUgc3ViamVjdHMgICgiOmhlbHAgIGNtZC0KKyAgICAgICBsaW5lLWNvbXBsZXRpb24iKS4gICBUYWdzIGFyZSBwcmVzZW50IHRvIGp1bXAgZnJvbSBvbmUgcGxhY2UgdG8gYW5vdGhlcgogICAgICAgIChzb3J0IG9mIGh5cGVydGV4dCBsaW5rcywgc2VlICI6aGVscCIpLiAgQWxsIGRvY3VtZW50YXRpb24gZmlsZXMgY2FuIGJlCiAgICAgICAgdmlld2VkIGluIHRoaXMgd2F5LCBmb3IgZXhhbXBsZSAiOmhlbHAgc3ludGF4LnR4dCIuCiAKIEZJTEVTCiAgICAgICAgL3Vzci9sb2NhbC9saWIvdmltL2RvYy8qLnR4dAotICAgICAgICAgICAgICAgICAgICAgIFRoZSBWaW0gZG9jdW1lbnRhdGlvbiBmaWxlcy4gIFVzZSAiOmhlbHAgIGRvYy1maWxlLWxpc3QiCisgICAgICAgICAgICAgICAgICAgICAgVGhlICBWaW0gZG9jdW1lbnRhdGlvbiBmaWxlcy4gIFVzZSAiOmhlbHAgZG9jLWZpbGUtbGlzdCIKICAgICAgICAgICAgICAgICAgICAgICB0byBnZXQgdGhlIGNvbXBsZXRlIGxpc3QuCiAKICAgICAgICAvdXNyL2xvY2FsL2xpYi92aW0vZG9jL3RhZ3MKLSAgICAgICAgICAgICAgICAgICAgICBUaGUgIHRhZ3MgZmlsZSB1c2VkIGZvciBmaW5kaW5nIGluZm9ybWF0aW9uIGluIHRoZSBkb2N1LQorICAgICAgICAgICAgICAgICAgICAgIFRoZSB0YWdzIGZpbGUgdXNlZCBmb3IgZmluZGluZyBpbmZvcm1hdGlvbiBpbiB0aGUgIGRvY3UtCiAgICAgICAgICAgICAgICAgICAgICAgbWVudGF0aW9uIGZpbGVzLgogCiAgICAgICAgL3Vzci9sb2NhbC9saWIvdmltL3N5bnRheC9zeW50YXgudmltCkBAIC0zNzMsNyArMzc0LDcgQEAKICAgICAgICAgICAgICAgICAgICAgICBTeXN0ZW0gd2lkZSBndmltIGluaXRpYWxpemF0aW9ucy4KIAogICAgICAgIC91c3IvbG9jYWwvbGliL3ZpbS9vcHR3aW4udmltCi0gICAgICAgICAgICAgICAgICAgICAgU2NyaXB0IHVzZWQgZm9yIHRoZSAiOm9wdGlvbnMiIGNvbW1hbmQsIGEgIG5pY2UgIHdheSAgdG8KKyAgICAgICAgICAgICAgICAgICAgICBTY3JpcHQgIHVzZWQgIGZvciAgdGhlICI6b3B0aW9ucyIgY29tbWFuZCwgYSBuaWNlIHdheSB0bwogICAgICAgICAgICAgICAgICAgICAgIHZpZXcgYW5kIHNldCBvcHRpb25zLgogCiAgICAgICAgL3Vzci9sb2NhbC9saWIvdmltL21lbnUudmltCkBAIC0zODMsMTEgKzM4NCwxMSBAQAogICAgICAgICAgICAgICAgICAgICAgIFNjcmlwdCB0byBnZW5lcmF0ZSBhIGJ1ZyByZXBvcnQuICBTZWUgIjpoZWxwIGJ1Z3MiLgogCiAgICAgICAgL3Vzci9sb2NhbC9saWIvdmltL2ZpbGV0eXBlLnZpbQotICAgICAgICAgICAgICAgICAgICAgIFNjcmlwdCAgdG8gIGRldGVjdCAgdGhlIHR5cGUgb2YgYSBmaWxlIGJ5IGl0cyBuYW1lLiAgU2VlCisgICAgICAgICAgICAgICAgICAgICAgU2NyaXB0IHRvIGRldGVjdCB0aGUgdHlwZSBvZiBhIGZpbGUgYnkgIGl0cyAgbmFtZS4gICBTZWUKICAgICAgICAgICAgICAgICAgICAgICAiOmhlbHAgJ2ZpbGV0eXBlJyIuCiAKICAgICAgICAvdXNyL2xvY2FsL2xpYi92aW0vc2NyaXB0cy52aW0KLSAgICAgICAgICAgICAgICAgICAgICBTY3JpcHQgdG8gZGV0ZWN0IHRoZSB0eXBlIG9mIGEgIGZpbGUgIGJ5ICBpdHMgIGNvbnRlbnRzLgorICAgICAgICAgICAgICAgICAgICAgIFNjcmlwdCAgdG8gIGRldGVjdCAgdGhlICB0eXBlIG9mIGEgZmlsZSBieSBpdHMgY29udGVudHMuCiAgICAgICAgICAgICAgICAgICAgICAgU2VlICI6aGVscCAnZmlsZXR5cGUnIi4KIAogICAgICAgIC91c3IvbG9jYWwvbGliL3ZpbS8qLnBzCkBAIC00MDIsMTcgKzQwMywxNyBAQAogQVVUSE9SCiAgICAgICAgTW9zdCBvZiBWaW0gd2FzIG1hZGUgYnkgQnJhbSBNb29sZW5hYXIsIHdpdGggYSBsb3Qgb2YgaGVscCBmcm9tIG90aGVycy4KICAgICAgICBTZWUgIjpoZWxwIGNyZWRpdHMiIGluIFZpbS4KLSAgICAgICBWaW0gaXMgYmFzZWQgb24gU3RldmllLCB3b3JrZWQgb24gYnk6IFRpbSBUaG9tcHNvbiwgIFRvbnkgIEFuZHJld3MgIGFuZAotICAgICAgIEcuUi4gIChGcmVkKSBXYWx0ZXIuICBBbHRob3VnaCBoYXJkbHkgYW55IG9mIHRoZSBvcmlnaW5hbCBjb2RlIHJlbWFpbnMuCisgICAgICAgVmltICBpcyAgYmFzZWQgIG9uIFN0ZXZpZSwgd29ya2VkIG9uIGJ5OiBUaW0gVGhvbXBzb24sIFRvbnkgQW5kcmV3cyBhbmQKKyAgICAgICBHLlIuIChGcmVkKSBXYWx0ZXIuICBBbHRob3VnaCBoYXJkbHkgYW55IG9mIHRoZSBvcmlnaW5hbCBjb2RlICByZW1haW5zLgogCiBCVUdTCiAgICAgICAgUHJvYmFibHkuICBTZWUgIjpoZWxwIHRvZG8iIGZvciBhIGxpc3Qgb2Yga25vd24gcHJvYmxlbXMuCiAKLSAgICAgICBOb3RlIHRoYXQgYSBudW1iZXIgb2YgdGhpbmdzIHRoYXQgbWF5IGJlIHJlZ2FyZGVkIGFzIGJ1Z3MgYnkgc29tZSwgIGFyZQotICAgICAgIGluICBmYWN0ICBjYXVzZWQgYnkgYSB0b28tZmFpdGhmdWwgcmVwcm9kdWN0aW9uIG9mIFZpJ3MgYmVoYXZpb3VyLiAgQW5kCi0gICAgICAgaWYgeW91IHRoaW5rIG90aGVyIHRoaW5ncyBhcmUgYnVncyAiYmVjYXVzZSBWaSAgZG9lcyAgaXQgIGRpZmZlcmVudGx5IiwKLSAgICAgICB5b3UgIHNob3VsZCAgdGFrZSAgYSBjbG9zZXIgbG9vayBhdCB0aGUgdmlfZGlmZi50eHQgZmlsZSAob3IgdHlwZSA6aGVscAotICAgICAgIHZpX2RpZmYudHh0IHdoZW4gaW4gVmltKS4gIEFsc28gaGF2ZSBhIGxvb2sgIGF0ICB0aGUgICdjb21wYXRpYmxlJyAgYW5kCisgICAgICAgTm90ZSAgdGhhdCBhIG51bWJlciBvZiB0aGluZ3MgdGhhdCBtYXkgYmUgcmVnYXJkZWQgYXMgYnVncyBieSBzb21lLCBhcmUKKyAgICAgICBpbiBmYWN0IGNhdXNlZCBieSBhIHRvby1mYWl0aGZ1bCByZXByb2R1Y3Rpb24gb2YgVmkncyAgYmVoYXZpb3VyLiAgIEFuZAorICAgICAgIGlmICB5b3UgIHRoaW5rICBvdGhlciB0aGluZ3MgYXJlIGJ1Z3MgImJlY2F1c2UgVmkgZG9lcyBpdCBkaWZmZXJlbnRseSIsCisgICAgICAgeW91IHNob3VsZCB0YWtlIGEgY2xvc2VyIGxvb2sgYXQgdGhlIHZpX2RpZmYudHh0IGZpbGUgIChvciAgdHlwZSAgOmhlbHAKKyAgICAgICB2aV9kaWZmLnR4dCAgd2hlbiAgaW4gIFZpbSkuICAgQWxzbyBoYXZlIGEgbG9vayBhdCB0aGUgJ2NvbXBhdGlibGUnIGFuZAogICAgICAgICdjcG9wdGlvbnMnIG9wdGlvbnMuCiAKIApkaWZmIC0tZ2l0IGEvcnVudGltZS9kb2MvdmltZGktaXQuMSBiL3J1bnRpbWUvZG9jL3ZpbWRpLWl0LjEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uOTQxN2I5MAotLS0gL2Rldi9udWxsCisrKyBiL3J1bnRpbWUvZG9jL3ZpbWRpLWl0LjEKQEAgLTAsMCArMSw0OCBAQAorLlRIIFZJTURJRkYgMSAiMzAgbWFyem8gMjAwMSIKKy5TSCBOT01FCit2aW1kaWZmIFwtIG1vZGlmaWNhIGR1ZSBvIHRyZSB2ZXJzaW9uaSBkaSB1biBmaWxlIGNvbiBWaW0sIHZpc3VhbGl6emFuZG8gbGUKK2RpZmZlcmVuemUKKy5TSCBTSU5UQVNTSQorLmJyCisuQiB2aW1kaWZmCitbb3B6aW9uaV0gZmlsZTEgZmlsZTIgW2ZpbGUzXQorLlBQCisuQiBndmltZGlmZgorLlNIIERFU0NSSVpJT05FCisuQiBWaW1kaWZmCitpbml6aWEKKy5CIFZpbQorcGVyIGR1ZSAobyB0cmUpIGZpbGUuCitPZ25pIGZpbGUgaGEgdW5hIHN1YSBmaW5lc3RyYS4KK0xlIGRpZmZlcmVuemUgZnJhIGZpbGUgc29ubyBldmlkZW56aWF0ZS4KK0UnIHVuYSBtYW5pZXJhIGVsZWdhbnRlIHBlciBjb250cm9sbGFyZSBtb2RpZmljaGUgZSBwb3J0YXJlIG1vZGlmaWNoZQordmVyc28gdW4nYWx0cmEgdmVyc2lvbmUgZGVsbG8gc3Rlc3NvIGZpbGUuCisuUFAKK1ZlZGVyZSB2aW0oMSkgcGVyIGRldHRhZ2xpIHN1IFZpbSBpbiBnZW5lcmFsZS4KKy5QUAorU2UgaW5pemlhdG8gY29uCisuQiBndmltZGlmZgorbGEgR1VJIHNhcuAgdXRpbGl6emF0YSwgc2UgZGlzcG9uaWJpbGUuCisuUFAKK0luIG9nbmkgZmluZXN0cmEgbCdvcHppb25lICdkaWZmJyDoIGltcG9zdGF0YSwgZXZpZGVuemlhbmRvIGNvc+wgbGUKK2RpZmZlcmVuemUuCisuYnIKK0xlIG9wemlvbmkgJ3dyYXAnIGUgJ3Njcm9sbGJpbmQnIHNvbm8gaW1wb3N0YXRlIHBlciBtaWdsaW9yYXJlIGxhCit2aXNpYmlsaXTgIGRlbCB0ZXN0by4KKy5icgorTCdvcHppb25lICdmb2xkbWV0aG9kJyDoIGltcG9zdGF0YSBhbCB2YWxvcmUgImRpZmYiLCBjaGUgbWV0dGUgZ3J1cHBpIGRpCitsaW5lZSB1Z3VhbGkgZnJhIGkgZGl2ZXJzaSBmaWxlIGluIHVuYSBwaWVnYXR1cmEuICdmb2xkY29sdW1uJyDoIGltcG9zdGF0bworYSBkdWUgcGVyIHBvdGVyIGZhY2lsbWVudGUgdmlzdWFsaXp6YXJlIGxlIHBpZWdhdHVyZSwgYXByaXJsZSBlIGNoaXVkZXJsZS4KKy5TSCBPUFpJT05JCitMbyBzY2hlcm1vIOggZGl2aXNvIHZlcnRpY2FsbWVudGUsIGNvbWUgc2UgYXZlc3RlIHVzYXRvIGwnb3B6aW9uZSAiLU8iLgorUGVyIGRpdmlkZXJsbyBvcml6em9udGFsbWVudGUsIHVzYXJlIGwnb3B6aW9uZSAiLW8iLgorLlBQCitQZXIgdHV0dGUgbGUgYWx0cmUgb3B6aW9uaSwgdmVkZXJlIHZpbSgxKS4KKy5TSCBWRURFUkUgQU5DSEUKK3ZpbSgxKQorLlNIIEFVVE9SRQorQnVvbmEgcGFydGUgZGkKKy5CIFZpbQor6CBzdGF0byBzY3JpdHRvIGRhIEJyYW0gTW9vbGVuYWFyLCBjb24gbW9sdG8gYWl1dG8gZGEgYWx0cmkuCitWZWRlcmUgIjpoZWxwIGNyZWRpdHMiIGluCisuQiBWaW0uCmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy92aW10dS1pdC4xIGIvcnVudGltZS9kb2MvdmltdHUtaXQuMQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4xYTI4Njg4Ci0tLSAvZGV2L251bGwKKysrIGIvcnVudGltZS9kb2MvdmltdHUtaXQuMQpAQCAtMCwwICsxLDU0IEBACisuVEggVklNVFVUT1IgMSAiMjAwMSBBcHJpbCAyIgorLlNIIE5PTUUKK3ZpbXR1dG9yIFwtIHRoZSBWaW0gdHV0b3IKKy5TSCBTSU5UQVNTSQorLmJyCisuQiB2aW10dXRvciBbbGluZ3VhXQorLlNIIERFU0NSSVpJT05FCisuQiBWaW10dXRvcgoraW5pemlhIGlsCisuQiBWaW0KK3R1dG9yLgorSXQgY29waWVzIHRoZSB0dXRvciBmaWxlIGZpcnN0LCBzbyB0aGF0IGl0IGNhbiBiZSBtb2RpZmllZCB3aXRob3V0IGNoYW5naW5nCit0aGUgb3JpZ2luYWwgZmlsZS4KKy5QUAorVGhlCisuQiBWaW10dXRvcgoraXMgdXNlZnVsIGZvciBwZW9wbGUgdGhhdCB3YW50IHRvIGxlYXJuIHRoZWlyIGZpcnN0CisuQiBWaW0KK2NvbW1hbmRzLgorLlBQCitUaGUgb3B0aW9uYWwgW2xhbmd1YWdlXSBhcmd1bWVudCBpcyB0aGUgdHdvLWxldHRlciBuYW1lIG9mIGEgbGFuZ3VhZ2UsIGxpa2UKKyJpdCIgb3IgImVzIi4KK0lmIHRoZSBbbGFuZ3VhZ2VdIGFyZ3VtZW50IGlzIG1pc3NpbmcsIHRoZSBsYW5ndWFnZSBvZiB0aGUgY3VycmVudCBsb2NhbGUgd2lsbAorYmUgdXNlZC4KK0lmIGEgdHV0b3IgaW4gdGhpcyBsYW5ndWFnZSBpcyBhdmFpbGFibGUsIGl0IHdpbGwgYmUgdXNlZC4KK090aGVyd2lzZSB0aGUgRW5nbGlzaCB2ZXJzaW9uIHdpbGwgYmUgdXNlZC4KKy5QUAorLkIgVmltCitpcyBhbHdheXMgc3RhcnRlZCBpbiBWaSBjb21wYXRpYmxlIG1vZGUuCisuU0ggRklMRQorLlRQIDE1CisvdXNyL2xvY2FsL2xpYi92aW0vdHV0b3IvdHV0b3JbLmxhbmd1YWdlXQorVGhlCisuQiBWaW10dXRvcgordGV4dCBmaWxlKHMpLgorLlRQIDE1CisvdXNyL2xvY2FsL2xpYi92aW0vdHV0b3IvdHV0b3IudmltCitUaGUgVmltIHNjcmlwdCB1c2VkIHRvIGNvcHkgdGhlCisuQiBWaW10dXRvcgordGV4dCBmaWxlLgorLlNIIEFVVE9SRQorVGhlCisuQiBWaW10dXRvcgor6CBzdGF0byBzY3JpdHRvIGluIG9yaWdpbmUgcGVyIFZpIGRhIE1pY2hhZWwgQy4gUGllcmNlIGUgUm9iZXJ0IEsuIFdhcmUsCitDb2xvcmFkbyBTY2hvb2wgb2YgTWluZXMsIHVzYW5kbyBpZGVlIGZvcm5pdGUgZGEgQ2hhcmxlcyBTbWl0aCwKK0NvbG9yYWRvIFN0YXRlIFVuaXZlcnNpdHkuCitFLW1haWw6IGJ3YXJlQG1pbmVzLmNvbG9yYWRvLmVkdS4KKy5icgorRScgc3RhdG8gbW9kaWZpY2F0byBwZXIKKy5CIFZpbQorZGEgQnJhbSBNb29sZW5hYXIuCitQZXIgaSBub21pIGRlaSB0cmFkdXR0b3JpLCB2ZWRlcmUgaSBmaWxlIHVzYXRpIG5lbGxlIHJpc3BldHRpdmUgbGluZ3VlLgorLlNIIFZFREVSRSBBTkNIRQordmltKDEpCmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy94eGQtaXQuMSBiL3J1bnRpbWUvZG9jL3h4ZC1pdC4xCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjllNmJjNWYKLS0tIC9kZXYvbnVsbAorKysgYi9ydW50aW1lL2RvYy94eGQtaXQuMQpAQCAtMCwwICsxLDQwMiBAQAorLlRIIFhYRCAxICJBZ29zdG8gMTk5NiIgIlBhZ2luYSBkaSBtYW51YWxlIHBlciB4eGQiCisuXCIKKy5cIiAyMSBNYWdnaW8gMTk5NgorLlwiIEF1dG9yZSBkZWxsYSBwYWdpbmEgZGkgbWFudWFsZToKKy5cIiAgICBUb255IE51Z2VudCA8dG9ueUBzY3RudWdlbi5wcHAuZ3UuZWR1LmF1PiA8VC5OdWdlbnRAc2N0Lmd1LmVkdS5hdT4KKy5cIiAgICBNb2RpZmljYXRvIGRhIEJyYW0gTW9vbGVuYWFyIDxCcmFtQHZpbS5vcmc+CisuU0ggTk9NRQorLkkgeHhkCitcLSBQcm9kdWNlIGVzYWRlY2ltYWxlIGRhIHVuIGZpbGUgYmluYXJpbyBvIHZpY2V2ZXJzYS4KKy5TSCBTSU5UQVNTSQorLkIgeHhkCitcLWhbZWxwXQorLmJyCisuQiB4eGQKK1tvcHppb25pXSBbaW5wdXRfZmlsZSBbb3V0cHV0X2ZpbGVdXQorLmJyCisuQiB4eGQKK1wtcltldmVydF0gW29wemlvbmldIFtpbnB1dF9maWxlIFtvdXRwdXRfZmlsZV1dCisuU0ggREVTQ1JJWklPTkUKKy5JIHh4ZAorY3JlYSB1bidpbW1hZ2luZSBlc2FkZWNpbWFsZSBkaSB1biBkYXRvIGZpbGUgbyBkZWxsbyAic3RhbmRhcmQgaW5wdXQiLgorUHXyIGFuY2hlIG90dGVuZXJlIGRhIHVuJ2ltbWFnaW5lIGVzYWRlY2ltYWxlIGlsIGZpbGUgYmluYXJpbyBvcmlnaW5hbGUuCitDb21lCisuQlIgdXVlbmNvZGUoMSkKK2UKKy5CUiB1dWRlY29kZSgxKQorcGVybWV0dGUgZGkgdHJhc21ldHRlcmUgZGF0aSBiaW5hcmkgaW4gdW5hIHJhcHJlc2VudGF6aW9uZSBBU0NJSSAiYSBwcm92YQorZGkgZW1haWwiLCBtYSBoYSBhbmNoZSBpbCB2YW50YWdnaW8gZGkgcG90ZXIgZGVjb2RpZmljYXJlIHN1bGxvICJzdGFuZGFyZAorb3V0cHV0Ii4gIElub2x0cmUsIHB18iBlc3NlcmUgdXNhdG8gcGVyIGVmZmV0dHVhcmUgZGVsbGUgbW9kaWZpY2hlIChwYXRjaCkKK2EgZmlsZSBiaW5hcmkuCisuU0ggT1BaSU9OSQorU2Ugbm9uIHNpIHNwZWNpZmljYSB1bgorLkkgaW5wdXRfZmlsZQoraWwgcHJvZ3JhbW1hIGxlZ2dlIGRhbGxvICJzdGFuZGFyZCBpbnB1dCIuCitTZQorLkkgaW5wdXRfZmlsZQor6CBzcGVjaWZpY2F0byBjb21lIGlsIGNhcmF0dGVyZQorLlJCIFxgIFwtICcKKywgbCdpbnB1dCDoIGxldHRvIGRhbGxvICJzdGFuZGFyZCBpbnB1dCIuCitTZSBub24gc2kgc3BlY2lmaWNhIHVuCisuSSBvdXRwdXRfZmlsZQorKG8gc2kgbWV0dGUgYWwgc3VvIHBvc3RvIGlsIGNhcmF0dGVyZQorLlJCIFxgIFwtICcKKyksIGkgcmlzdWx0YXRpIHNvbm8gaW52aWF0aSBhbGxvICJzdGFuZGFyZCBvdXRwdXQiLgorLlBQCitTaSBub3RpIGNoZSBsYSBzY2Fuc2lvbmUgZGVpIGNhcmF0dGVyaSDoICJwaWdyYSIsIGUgbm9uIGNvbnRyb2xsYSBvbHRyZQorbGEgcHJpbWEgbGV0dGVyYSBkZWxsJ29wemlvbmUsIGEgbWVubyBjaGUgbCdvcHppb25lIHNpYSBzZWd1aXRhIGRhIHVuCitwYXJhbWV0cm8uCitHbGkgc3BhemkgZnJhIHVuYSBzaW5nb2xhIGxldHRlcmEgZGkgb3B6aW9uZSBlIGlsIGNvcnJpc3BvbmRlbnRlIHBhcmFtZXRybworZG9wbyBkaSBlc3NhIHNvbm8gZmFjb2x0YXRpdmkuCitJIHBhcmFtZXRyaSBkZWxsZSBvcHppb25pIHBvc3Nvbm8gZXNzZXJlIHNwZWNpZmljYXRpIHVzYW5kbyBsYSBub3RhemlvbmUKK2RlY2ltYWxlLCBlc2FkZWNpbWFsZSBvcHB1cmUgb3R0YWxlLgorUGVydGFudG8KKy5CUiBcLWM4ICwKKy5CUiAiXC1jIDgiICwKKy5CIFwtYyAwMTAKK2UKKy5CIFwtY29scyA4Citzb25vIG5vdGF6aW9uaSBlcXVpdmFsZW50aSBmcmEgbG9yby4KKy5QUAorLlRQCisuSVIgXC1hICIgfCAiIFwtYXV0b3NraXAKK1JpY2hpZXN0YSBkaSBhdXRvc2tpcDogVW4gc2luZ29sbyAnKicgcmltcGlhenphIGxpbmVlIGRpIHplcmkgYmluYXJpLgorVmFsb3JlIHByZWRlZmluaXRvOiBvZmYuCisuVFAKKy5JUiBcLWIgIiB8ICIgXC1iaXRzCitSaWNoaWVzdGEgZGkgdW5hIGltbWFnaW5lIGJpbmFyaWEgKGNpZnJlIGJpbmFyaWUpLCBpbnZlY2UgY2hlIGVzYWRlY2ltYWxlLgorUXVlc3RhIG9wemlvbmUgc2NyaXZlIHVuIGJ5dGUgY29tZSBvdHRvIGNpZnJlICIxIiBlICIwIiBpbnZlY2UgZGkgdXNhcmUgaQorbnVtZXJpIGVzYWRlY2ltYWxpLiBPZ25pIGxpbmVhIOggcHJlY2VkdXRhIGRhIHVuIGluZGlyaXp6byBpbiBlc2FkZWNpbWFsZSBlCitzZWd1aXRhIGRhIHVuYSBkZWNvZGlmaWNhIGFzY2lpIChvIGViY2RpYykuIExlIG9wemlvbmkgc3BlY2lmaWNhYmlsaSBkYWxsYQorbGluZWEgY29tYW5kbyBcLXIsIFwtcCwgXC1pIG5vbiBmdW56aW9uYW5vIGluIHF1ZXN0byBtb2RvLgorLlRQCisuSVIgIlwtYyBjb2xvbm5lICIgfCAiIFwtY29scyBjb2xvbm5lIgorLklSICJcLWMgY29sb25uZSAiIHwgIiBcLWNvbHMgY29sb25uZSIKK0luIG9nbmkgbGluZWEgc29ubyBmb3JtYXR0YXRlCisuUkkgPCBjb2xvbm5lID4KK2NvbG9ubmUuIFZhbG9yZSBwcmVkZWZpbml0byAxNiAoXC1pOiAxMiwgXC1wczogMzAsIFwtYjogNikuCitWYWxvcmUgbWFzc2ltbyAyNTYuCisuVFAKKy5JUiBcLUUgIiB8ICIgXC1FQkNESUMKK0NhbWJpYSBsYSBjb2RpZmljYSBkZWxsYSBjb2xvbm5hIGRpIGRlc3RyYSBkYSBBU0NJSSBhIEVCQ0RJQy4KK1F1ZXN0byBub24gbW9kaWZpY2EgbGEgcmFwcHJlc2VudGF6aW9uZSBlc2FkZWNpbWFsZS4gTm9uIGhhIHNlbnNvCitzcGVjaWZpY2FyZSBxdWVzdGEgb3B6aW9uZSBpbiBjb21iaW5hemlvbmUgY29uIFwtciwgXC1wIG8gXC1pLgorLlRQCisuSVIgIlwtZyBieXRlcyAiIHwgIiBcLWdyb3Vwc2l6ZSBieXRlcyIKK0luc2VyaXNjaSBvZ25pCisuUkkgPCBieXRlcyA+CitieXRlcyBkaSBvdXRwdXQgKGRpIGR1ZSBjYXJhdHRlcmkgZXNhZGVjaW1hbGkgbyBvdHRvIG51bWVyaSBiaW5hcmkgb2dudW5vKQordW5vIHNwYXppbyBiaWFuY28uCitTcGVjaWZpY2FuZG8KKy5JIFwtZyAwCitpIGJ5dGVzIGRpIG91dHB1dCBub24gc29ubyBzZXBhcmF0aSBkYSBhbGN1bm8gc3BhemlvLgorLlJJIDwgQnl0ZXMgIj4gaGEgY29tZSB2YWxvcmUgcHJlZGVmaW5pdG8gIiAyCitpbiBtb2RhbGl04CBub3JtYWxlIFtlc2FkZWNpbWFsZV0gZSBcZkkxXGZQIGluIG1vZGFsaXTgIGJpbmFyaWEuCitJbCByYWdncnVwcGFtZW50byBub24gc2kgYXBwbGljYSBhZ2xpIHN0aWxpICJQb3N0U2NyaXB0IiBlICJpbmNsdWRlIi4KKy5UUAorLklSIFwtaCAiIHwgIiBcLWhlbHAKK3N0YW1wYSB1biBzb21tYXJpbyBkZWkgY29tYW5kaSBkaXNwb25pYmlsaSBlZCBlc2NlLiAgTm9uIHZpZW5lIGZhdHRvCitudWxsJ2FsdHJvLgorLlRQCisuSVIgXC1pICIgfCAiIFwtaW5jbHVkZQorTCdvdXRwdXQg6CBuZWxsbyBzdGlsZSBkZWkgZmlsZSAiaW5jbHVkZSIgaW4gQy4gIFZpZW5lIHByZXBhcmF0YSBsYQorZGVmaW5pemlvbmUgY29tcGxldGEgZGkgdW4gImFycmF5IiBbdmV0dG9yZV0sIGRhbmRvZ2xpIGlsIG5vbWUgZGVsCitmaWxlIGRpIGlucHV0KSwgdHJhbm5lIGNoZSBuZWwgY2FzbyBpbiBjdWkgeHhkIGxlZ2dhIGRhbGxvICJzdGFuZGFyZCBpbnB1dCIuCisuVFAKKy5JUiAiXC1sIGx1bmdoZXp6YSAiIHwgIiBcLWxlbiBsdW5naGV6emEiCitJbCBwcm9ncmFtbWEgZXNjZSBkb3BvIGF2ZXIgc2NyaXR0bworLlJJICA8IGx1bmdoZXp6YSA+CitieXRlcy4KKy5UUAorLklSIFwtcCAiIHwgIiBcLXBzICIgfCAiIFwtcG9zdHNjcmlwdCAiIHwgIiBcLXBsYWluCitMJ291dHB1dCDoIG5lbGxvIHN0aWxlIGRpIHVuIGR1bXAgY29udGludW8gc290dG8gcG9zdHNjcmlwdC4KK05vdG8gYW5jaGUgY29tZSBzdGlsZSBlc2FkZWNpbWFsZSBzZW1wbGljZSBbcGxhaW5dLgorLlRQCisuSVIgXC1yICIgfCAiIFwtcmV2ZXJ0CityaWNvc3RydXppb25lOiBjb252ZXJ0ZSAobyBtZXR0ZSB1bmEgcGF0Y2gpIGEgcGFydGlyZSBkYWxsJ2ltbWFnaW5lCitlc2FkZWNpbWFsZSwgY3JlYW5kbyBbbyBtb2RpZmljYW5kb10gaWwgZmlsZSBiaW5hcmlvLgorU2Ugbm9uIGRpcmV0dG8gYWxsbyAic3RhbmRhcmQgb3V0cHV0IiwgeHhkIHNjcml2ZSBuZWwgc3VvIGZpbGUgZGkgb3V0cHV0CitpbiBtYW5pZXJhIGNvbnRpbnVhLCBzZW56YSBpbnRlcnJ1emlvbmkuICBVc2FyZSBsYSBjb21iaW5hemlvbmUKKy5JIFwtciBcLXAKK3BlciBsZWdnZXJlIGR1bXAgaW4gc3RpbGUgZXNhZGVjaW1hbGUgc2VtcGxpY2UgW3BsYWluXSwgc2VuemEgbCdpbmZvcm1hemlvbmUKK2RpIG51bWVybyBkaSBsaW5lYSBlIHNlbnphIHVuIHBhcnRpY29sYXJlIHRyYWNjaWF0byBkaSBjb2xvbm5hLiAgRGVnbGkgc3BhemkKK28gZGVsbGUgbGluZWUgdnVvdGUgcG9zc29ubyBlc3NlcmUgaW5zZXJpdGUgYSBwaWFjZXJlIFtlIHZlbmdvbm8gaW5nb3JhdGVdLgorLlRQCisuSSBcLXNlZWsgZGlzdGFuemEKK1VzYXRvIGNvbiBsJ29wemlvbmUKKy5JIFwtcgorOiAocmljb3N0cnV6aW9uZSksCisuUkkgPCBkaXN0YW56YSA+Cit2aWVuZSBhZ2dpdW50YSBhbGxhIHBvc2l6aW9uZSBuZWwgZmlsZSB0cm92YXRhIG5lbGxhIGltbWFnaW5lCitlc2FkZWNpbWFsZS4KKy5UUAorLkkgXC1zIFtcK11bXC1dc2VlaworSW5pemlhIGEKKy5SSSA8IHNlZWsgPgorYnl0ZXMgYXNzb2x1dGkgKG8gcmVsYXRpdmkpIGRpIGRpc3RhbnphIGFsbCdpbnRlcm5vIGRpIGlucHV0X2ZpbGUuCitcZklcKyBcZlJpbmRpY2EgY2hlIGlsICJzZWVrIiDoIHJlbGF0aXZvIGFsbGEgcG9zaXppb25lIGNvcnJlbnRlIG5lbCBmaWxlCisic3RhbmRhcmQgaW5wdXQiIChub24gc2lnbmlmaWNhdGl2YSBxdWFuZG8gbm9uIHNpIGxlZ2dlIGRhICJzdGFuZGFyZCBpbnB1dCIpLgorXGZJXC0gXGZSaW5kaWNhIGNoZSBpbCAic2VlayIgZG92cmViYmUgcG9zaXppb25hcnNpIGFkIHF1ZWwgbnVtZXJvIGRpCitjYXJhdHRlcmkgZGFsbGEgZmluZSBkZWxsJ2lucHV0IChvIHNlIGluIGNvbWJpbmF6aW9uZSBjb24KK1xmSSBcKyBcZlI6IHByaW1lIGRlbGxhIHBvc2l6aW9uZSBjb3JyZW50ZSBuZWwgZmlsZSAic3RhbmRhcmQgaW5wdXQiKS4KK1NlIG5vbiBzaSBzcGVjaWZpY2EgdW5hIG9wemlvbmUgXC1zIG9wdGlvbiwgeHhkIGluaXppYSBhbGxhIHBvc2l6aW9uZQorY29ycmVudGUgYWxsJ2ludGVybm8gZGVsIGZpbGUuCisuVFAKKy5JIFwtdQordXNhIGxldHRlcmUgZXNhZGVjaW1hbGkgbWFpdXNjb2xlLiBJbCB2YWxvcmUgcHJlZGVmaW5pdG8g6CBkaSB1c2FyZQorbGV0dGVyZSBtaW51c2NvbGUuCisuVFAKKy5JUiBcLXYgIiB8ICIgXC12ZXJzaW9uCit2aXN1YWxpenphIGxhIHN0cmluZ2EgY29udGVuZW50ZSBsYSB2ZXJzaW9uZSBkZWwgcHJvZ3JhbW1hLgorLlNIIEFUVEVOWklPTkUKKy5QUAorLkkgeHhkIFwtcgor6CBjYXBhY2UgZGkgb3BlcmFyZSAibWFnaWUiIG5lbGwndXRpbGl6emFyZSBsJ2luZm9ybWF6aW9uZSAibnVtZXJvIGRpIGxpbmVhIi4KK1NlIHN1bCBmaWxlIGRpIG91dHB1dCBjaSBzaSBwdfIgcG9zaXppb25hcmUgdXNhbmRvIGxhICJzZWVrIiwgaWwgbnVtZXJvIGRpCitsaW5lYSBhbGwnaW5pemlvIGRpIG9nbmkgcmlnYSBlc2FkZWNpbWFsZSBwdfIgZXNzZXJlIG5vbiBvcmRpbmF0bywgZGVsbGUKK2xpbmVlIHBvc3Nvbm8gbWFuY2FyZSBkZWxsZSBsaW5lZSwgb3BwdXJlIGVzc2VyY2kgZGVsbGUgc292cmFwcG9zaXppb25pLgorSW4gc2ltaWxpIGNhc2kgeHhkIHVzZXLgIGxzZWVrKDIpIHBlciByYWdnaXVuZ2VyZSBsYSBwb3NpemlvbmUgZCdpbml6aW8uCitTZSBpbCBmaWxlIGRpIG91dHB1dCBub24gY29uc2VudGUgZGkgdXNhcmUgInNlZWsiLCBzb25vIHBlcm1lc3NpIHNvbG8gZGVpCisiYnVjaGkiLCBjaGUgc2FyYW5ubyByaWVtcGl0aSBjb24gemVyaSBiaW5hcmkuCisuUFAKKy5JIHh4ZCBcLXIKK25vbiBnZW5lcmEgbWFpIGVycm9yaSBkaSBzcGVjaWZpY2EgcGFyYW1ldHJpLiBJIHBhcmFtZXRyaSBub24gcmljb25vc2NpdXRpCitzb25vIHNpbGVuemlvc2FtZW50ZSBpZ25vcmF0aS4KKy5QUAorTmVsIG1vZGlmaWNhcmUgaW1tYWdpbmkgZXNhZGVjaW1hbGksIHRlbmV0ZSBjb250byBjaGUKKy5JIHh4ZCBcLXIKK3NhbHRhIGlsIHJlc3RvIGRlbGxhIGxpbmVhLCBkb3BvIGF2ZXIgbGV0dG8gYWJiYXN0YW56YSBjYXJhdHRlcmkgY29udGVuZW50aQorZGF0aSBlc2FkZWNpbWFsaSAodmVkZXJlIG9wemlvbmUgXC1jKS4gQ2nyIGltcGxpY2EgcHVyZSBjaGUgbGUgbW9kaWZpY2hlIGFsbGUKK2NvbG9ubmUgZGkgY2FyYXR0ZXJpIHN0YW1wYWJpbGkgYXNjaWkgKG8gZWJjZGljKSBzb25vIHNlbXByZSBpZ25vcmF0ZS4KK0xhIHJpY29zdHJ1emlvbmUgZGEgdW4gZmlsZSBpbW1hZ2luZSBlc2FkZWNpbWFsZSBpbiBzdGlsZSBzZW1wbGljZQorKHBvc3RzY3JpcHQpIGNvbiB4eGQgXC1yIFwtcCBub24gZGlwZW5kZSBkYWwgbnVtZXJvIGNvcnJyZXR0byBkaSBjb2xvbm5lLiAKK0lOIHF1ZXN0byBjYXNvLCBxdWFsc2lhc2kgY29zYSBhc3NvbWlnbGkgYSB1bmEgY29wcGlhIGRpIGNpZnJlIGVzYWRlY2ltYWxpCivoIGludGVycHJldGF0YSBbZSB1dGlsaXp6YXRhXS4KKy5QUAorTm90YXJlIGxhIGRpZmZlcmVuemEgZnJhCisuYnIKK1xmSSUgeHhkIFwtaSBmaWxlXGZSCisuYnIKK2UKKy5icgorXGZJJSB4eGQgXC1pIFw8IGZpbGVcZlIKKy5QUAorLkkgeHhkIFwtcyBcK3NlZWsKK3B18iBjb21wb3J0YXJzaSBpbiBtb2RvIGRpdmVyc28gZGEKKy5JIHh4ZCBcLXMgc2VlaworLCBwZXJjaOkgbHNlZWsoMikg6CB1c2F0YSBwZXIgdG9ybmFyZSBpbmRpZXRybyBuZWwgZmlsZSBkaSBpbnB1dC4gIElsICcrJworZmEgZGlmZmVyZW56YSBzZSBpbCBmaWxlIGRpIGlucHV0IOggbG8gInN0YW5kYXJkIGlucHV0IiwgZSBzZSBsYSBwb3ppb25lIG5lbAorZmlsZSBkaSAic3RhbmRhcmQgaW5wdXQiIG5vbiDoIGFsbCdpbml6aW8gZGVsIGZpbGUgcXVhbmRvIHh4ZCDoIGVzZWd1aXRvLAorY29uIHF1ZXN0byBpbnB1dC4KK0kgc2VndWVudGkgZXNlbXBpIHBvc3Nvbm8gY29udHJpYnVpcmUgYSBjaGlhcmlyZSBpbCBjb25jZXR0bworKG8gYWQgb3NjdXJhcmxvISkuLi4KKy5QUAorUmlhdnZvbGdlIGxvICJzdGFuZGFyZCBpbnB1dCIgcHJpbWEgZGkgbGVnZ2VyZTsgbmVjZXNzYXJpbyBwZXJjaOkgYGNhdCcKK2hhIGdp4CBsZXR0byBsbyBzdGVzc28gZmlsZSBbImZpbGUiXSBmaW5vIGFsbGEgZmluZSBkZWxsbyAic3RhbmRhcmQgaW5wdXQiLgorLmJyCitcZkklIHNoIFwtYyAnY2F0ID4gY29waWFfbm9ybWFsZTsgeHhkIFwtcyAwID4gY29waWFfZXNhZGVjaW1hbGUnIDwgZmlsZQorLlBQCitTdGFtcGEgaW1tYWdpbmUgZXNhZGVjaW1hbGUgZGFsbGEgcG9zaXppb25lIGZpbGUgMHg0ODAgKD0xMDI0KzEyOCkgaW4gcG9pLgorSWwgc2Vnbm8gYCsnIHZ1b2wgZGlyZSAicmlzcGV0dG8gYWxsYSBwb3NpemlvbmUgY29ycmVudGUiLCBxdWluZGkgaWwgYDEyOCcKK3NpIGFnZ2l1bmdlIGEgMWsgKDEwMjQpIGRvdmUgYGRkJyBzaSBlcmEgZmVybWF0by4KKy5icgorXGZJJSBzaCBcLWMgJ2RkIG9mPW5vcm1hbGUgYnM9MWsgY291bnQ9MTsgeHhkIFwtcyArMTI4ID4gZXNhZGVjaW1hbGUnIDwgZmlsZQorLlBQCitJbW1hZ2luZSBlc2FkZWNpbWFsZSBkYWxsYSBwb3NpemlvbmUgMHgxMDAgKCA9IDEwMjQtNzY4ICkgZGVsIGZpbGUgaW4gYXZhbnRpLgorLmJyCitcZkklIHNoIFwtYyAnZGQgb2Y9bm9ybWFsZSBicz0xayBjb3VudD0xOyB4eGQgXC1zICstNzY4ID4gZXNhZGVjaW1hbGUnIDwgZmlsZQorLlBQCitDb211bnF1ZSwgcXVlc3RvIGNhcGl0YSByYXJhbWVudGUsIGUgbCd1c28gZGVsIGArJyBkaSByYWRvLgorTCdhdXRvcmUgcHJlZmVyaXNjZSBtb25pdG9yYXJlIGlsIGNvbXBvcnRhbWVudG8gZGkgeHhkIGNvbiBzdHJhY2UoMSkgbwordHJ1c3MoMSksIHF1YW5kbyBzaSB1c2EgbCdvcHppb25lIFwtcy4KKy5TSCBFU0VNUEkKKy5QUAorLmJyCitTdGFtcGEgdHV0dG8gdHJhbm5lIGxlIHByaW1lIHRyZSBsaW5lZSAoMHgzMCBieXRlcyBlc2FkZWNpbWFsaSkgZGkKKy5CIGZpbGUKK1wuCisuYnIKK1xmSSUgeHhkIFwtcyAweDMwIGZpbGUKKy5QUAorLmJyCitTdGFtcGEgMyBsaW5lZSAoMHgzMCBieXRlcyBlc2FkZWNpbWFsaSkgYWxsYSBmaW5lIGRpCisuQiBmaWxlCitcLgorLmJyCitcZkklIHh4ZCBcLXMgXC0weDMwIGZpbGUKKy5QUAorLmJyCitTdGFtcGEgMTIwIGJ5dGVzIGNvbWUgaW1tYWdpbmUgZXNhZGVjaW1hbGUgY29udGludWEgY29uIDQwIGJ5dGVzIHBlciBsaW5lYS4KKy5icgorXGZJJSB4eGQgXC1sIDEyMCBcLXBzIFwtYyAyMCB4eGQuMVxmUgorCisuYnIKKzJlNTQ0ODIwNTg1ODQ0MjAzMTIwMjI0MTc1Njc3NTczNzQyMDMxMzkKKy5icgorMzkzNjIyMjAyMjRkNjE2ZTc1NjE2YzIwNzA2MTY3NjUyMDY2NmY3MgorLmJyCisyMDc4Nzg2NDIyMGEyZTVjMjIwYTJlNWMyMjIwMzIzMTczNzQyMDRkCisuYnIKKzYxNzkyMDMxMzkzOTM2MGEyZTVjMjIyMDRkNjE2ZTIwNzA2MTY3NjUKKy5icgorMjA2MTc1NzQ2ODZmNzIzYTBhMmU1YzIyMjAyMDIwMjA1NDZmNmU3OQorLmJyCisyMDRlNzU2NzY1NmU3NDIwM2M3NDZmNmU3OTQwNzM2Mzc0NmU3NTY3CisuYnIKKworLmJyCitTdGFtcGEgaSBwcmltaSAxMjAgYnl0ZXMgZGVsbGEgcGFnaW5hIGRpIG1hbnVhbGUgdmltLjEgYSAxMiBieXRlcyBwZXIgbGluZWEuCisuYnIKK1xmSSUgeHhkIFwtbCAxMjAgXC1jIDEyIHh4ZC4xXGZSCisKKworLmJyCiswMDAwMDAwOiAyZTU0IDQ4MjAgNTg1OCA0NDIwIDMxMjAgMjI0MSAgLlRIIFhYRCAxICJBCisuYnIKKzAwMDAwMGM6IDc1NjcgNzU3MyA3NDIwIDMxMzkgMzkzNiAyMjIwICB1Z3VzdCAxOTk2IiAKKy5icgorMDAwMDAxODogMjI0ZCA2MTZlIDc1NjEgNmMyMCA3MDYxIDY3NjUgICJNYW51YWwgcGFnZQorLmJyCiswMDAwMDI0OiAyMDY2IDZmNzIgMjA3OCA3ODY0IDIyMGEgMmU1YyAgIGZvciB4eGQiLi5cCisuYnIKKzAwMDAwMzA6IDIyMGEgMmU1YyAyMjIwIDMyMzEgNzM3NCAyMDRkICAiLi5cIiAyMXN0IE0KKy5icgorMDAwMDAzYzogNjE3OSAyMDMxIDM5MzkgMzYwYSAyZTVjIDIyMjAgIGF5IDE5OTYuLlwiIAorLmJyCiswMDAwMDQ4OiA0ZDYxIDZlMjAgNzA2MSA2NzY1IDIwNjEgNzU3NCAgTWFuIHBhZ2UgYXV0CisuYnIKKzAwMDAwNTQ6IDY4NmYgNzIzYSAwYTJlIDVjMjIgMjAyMCAyMDIwICBob3I6Li5cIiAgICAKKy5icgorMDAwMDA2MDogNTQ2ZiA2ZTc5IDIwNGUgNzU2NyA2NTZlIDc0MjAgIFRvbnkgTnVnZW50IAorLmJyCiswMDAwMDZjOiAzYzc0IDZmNmUgNzk0MCA3MzYzIDc0NmUgNzU2NyAgPHRvbnlAc2N0bnVnCisuUFAKKy5icgorVmlzdWFsaXp6YSBsYSBkYXRhIGRhbCBmaWxlIHh4ZC4xCisuYnIKK1xmSSUgeHhkIFwtcyAweDM2IFwtbCAxMyBcLWMgMTMgeHhkLjFcZlIKKy5icgorMDAwMDAzNjogMzIzMSA3Mzc0IDIwNGQgNjE3OSAyMDMxIDM5MzkgMzYgIDIxc3QgTWF5IDE5OTYKKy5QUAorLmJyCitDb3BpYXJlCisuQiBpbnB1dF9maWxlCitzdQorLkIgb3V0cHV0X2ZpbGUKK3ByZW1ldHRlbmRvZ2xpIDEwMCBieXRlcyBhIDB4MDAuCisuYnIKK1xmSSUgeHhkIGlucHV0X2ZpbGUgfCB4eGQgXC1yIFwtcyAxMDAgXD4gb3V0cHV0X2ZpbGVcZlIKKy5icgorCisuYnIKK01vZGlmaWNhcmUgKHBhdGNoKSBsYSBkYXRhIG5lbCBmaWxlIHh4ZC4xCisuYnIKK1xmSSUgZWNobyAnMDAwMDAzNzogMzU3NCA2OCcgfCB4eGQgXC1yIFwtIHh4ZC4xXGZSCisuYnIKK1xmSSUgeHhkIFwtcyAweDM2IFwtbCAxMyBcLWMgMTMgeHhkLjFcZlIKKy5icgorMDAwMDAzNjogMzIzNSA3NDY4IDIwNGQgNjE3OSAyMDMxIDM5MzkgMzYgIDI1dGggTWF5IDE5OTYKKy5QUAorLmJyCitDcmVhcmUgdW4gZmlsZSBkaSA2NTUzNyB0dXR0byBhIDB4MDAsCit0cmFubmUgY2hlIGwndWx0aW1vIGNhcmF0dGVyZSBjaGUg6CB1bmEgJ0EnIChlc2FkZWNpbWFsZSAweDQxKS4KKy5icgorXGZJJSBlY2hvICcwMTAwMDA6IDQxJyB8IHh4ZCBcLXIgXD4gZmlsZVxmUgorLlBQCisuYnIKK1N0YW1wYSB1bmEgaW1tYWdpbmUgZXNhZGVjaW1hbGUgZGVsIGZpbGUgIGRpIGN1aSBzb3ByYSBjb24gb3B6aW9uZSBhdXRvc2tpcC4KKy5icgorXGZJJSB4eGQgXC1hIFwtYyAxMiBmaWxlXGZSCisuYnIKKzAwMDAwMDA6IDAwMDAgMDAwMCAwMDAwIDAwMDAgMDAwMCAwMDAwICAuLi4uLi4uLi4uLi4KKy5icgorKgorLmJyCiswMDBmZmZjOiAwMDAwIDAwMDAgNDAgICAgICAgICAgICAgICAgICAgLi4uLkEKKy5QUAorQ3JlYSB1biBmaWxlIGRpIDEgYnl0ZSBjaGUgY29udGllbmUgaWwgc29sbyBjYXJhdHRlcmUgJ0EnLgorSWwgbnVtZXJvIGRvcG8gJ1wtciBcLXMnIHZpZW5lIGFnZ2l1bnRvIGEgcXVlbGxvIHRyb3ZhdG8gbmVsIGZpbGU7CitpbiBwcmF0aWNhLCBpIGJ5dGVzIHByZWNlZGVudGkgbm9uIHNvbm8gc3RhbXBhdGkuCisuYnIKK1xmSSUgZWNobyAnMDEwMDAwOiA0MScgfCB4eGQgXC1yIFwtcyBcLTB4MTAwMDAgXD4gZmlsZVxmUgorLlBQCitVc2FyZSB4eGQgY29tZSBmaWx0cm8gYWxsJ2ludGVybm8gZGkgdW4gZWRpdG9yIGNvbWUKKy5CIHZpbSgxKQorcGVyIG90dGVuZXJlIHVuYSBpbW1hZ2luZSBlc2FkZWNpbWFsZSBkaSB1bmEgcGFydGUgZGkgZmlsZQorZGVsaW1pdGF0YSBkYWkgbWFyayBgYScgZSBgeicuCisuYnIKK1xmSTonYSwneiF4eGRcZlIKKy5QUAorVXNhcmUgeHhkIGNvbWUgZmlsdHJvIGFsbCdpbnRlcm5vIGRpIHVuIGVkaXRvciBjb21lCisuQiB2aW0oMSkKK3BlciByaWNvc3RydWlyZSB1biBwZXp6byBkaSBmaWxlIGJpbmFyaW8gZGEgdW5hIGltbWFnaW5lIGVzYWRlY2ltYWxlCitkZWxpbWl0YXRhIGRhaSBtYXJrIGBhJyBlIGB6Jy4KKy5icgorXGZJOidhLCd6IXh4ZCBcLXJcZlIKKy5QUAorVXNhcmUgeHhkIGNvbWUgZmlsdHJvIGFsbCdpbnRlcm5vIGRpIHVuIGVkaXRvciBjb21lCisuQiB2aW0oMSkKK3BlciByaWNvc3RydWlyZSB1bmEgc29sYSBsaW5lYSBkaSBmaWxlIGJpbmFyaW8gZGEgdW5hIGltbWFnaW5lIGVzYWRlY2ltYWxlLAorUG9ydGFyZSBpbCBjdXJzb3JlIHNvcHJhIGxhIGxpbmVhIGUgYmF0dGVyZToKKy5icgorXGZJISF4eGQgXC1yXGZSCisuUFAKK1BlciBsZWdnZXJlIHNpbmdvbGkgY2hhcmF0dGVyaSBkYSB1bmEgbGluZWEgc2VyaWFsZQorLmJyCitcZkklIHh4ZCBcLWMxIDwgL2Rldi90ZXJtL2IgJlxmUgorLmJyCitcZkklIHN0dHkgPCAvZGV2L3Rlcm0vYiBcLWVjaG8gXC1vcG9zdCBcLWlzaWcgXC1pY2Fub24gbWluIDFcZlIKKy5icgorXGZJJSBlY2hvIFwtbiBmb28gPiAvZGV2L3Rlcm0vYlxmUgorLlBQCisuU0ggQ09ESUNJIERJIFJJVE9STk8KK0lsIHByb2dyYW1tYSBwdfIgcmVzdGl0dWlyZSBxdWVzdGkgY29kaWNpIGRpIGVycm9yZToKKy5UUAorMAorbmVzc3VuIGVycm9yZSByaWxldmF0by4KKy5UUAorXC0xCitvcGVyYXppb25lIG5vbiBzdXBwb3J0YXRhICgKKy5JIHh4ZCBcLXIgXC1pCitub24gYW5jb3JhIHBvc3NpYmxlKS4KKy5UUAorMQorZXJyb3JlIGR1cmFudGUgbGEgc2NhbnNpb25lIHBhcmFtZXRyaS4KKy5UUAorMgorcHJvYmxlbWkgY29uIGlsIGZpbGUgZGkgaW5wdXQuCisuVFAKKzMKK3Byb2JsZW1pIGNvbiBpbCBmaWxlIGRpIG91dHB1dC4KKy5UUAorNCw1Citwb3NpemlvbmUgInNlZWsiIHNwZWNpZmljYXRhIG5vbiByYWdnaXVuZ2liaWxlIGFsbCdpbnRlcm5vIGRlbCBmaWxlLgorLlNIIFZFREVSRSBBTkNIRQordXVlbmNvZGUoMSksIHV1ZGVjb2RlKDEpLCBwYXRjaCgxKQorLmJyCisuU0ggQVZWRVJUSU1FTlRJCitMYSBzdHJhbmV6emEgZGVsbG8gc3RydW1lbnRvIHJpc3BlY2NoaWEgbGEgbWVudGUgZGVsIHN1byBjcmVhdG9yZS4KK1VzYXRlIGEgdm9zdHJvIHJpc2NoaW8gZSBwZXJpY29sby4gQ29waWF0ZSBpIGZpbGUuIFRyYWNjaWF0ZSBsJ2VzZWN1emlvbmUuCitEaXZlbnRhdGUgdW4gbWFnby4KKy5icgorLlNIIFZFUlNJT05FCitRdWVzdGEgcGFnaW5hIGRpIG1hbnVhbGUgZG9jdW1lbnRhIGxhIHZlcnNpb25lIDEuNyBkaSB4eGQuCisuU0ggQVVUT1JFCisuYnIKKyhjKSAxOTkwLTE5OTcgSnVlcmdlbiBXZWlnZXJ0CisuYnIKKzxqbndlaWdlckBpbmZvcm1hdGlrLnVuaS1lcmxhbmdlbi5kZT4KKy5MUAorRGlzdHJpYnVpdGUgbGliZXJhbWVudGUgZWQgYXR0cmlidWl0ZW1pIGlsIGNyZWRpdG8sCisuYnIKK2ZhdGUgc29sZGkgZSBjb25kaXZpZGV0ZWxpIGNvbiBtZQorLmJyCitwZXJkZXRlIHNvbGRpIGUgbm9uIHZlbml0ZSBhIGNoaWVkZXJsaSBhIG1lLgorLlBQCitQYWdpbmEgZGkgbWFudWFsZSBtZXNzYSBpbiBwaWVkaSBkYSBUb255IE51Z2VudAorLmJyCis8dG9ueUBzY3RudWdlbi5wcHAuZ3UuZWR1LmF1PiA8VC5OdWdlbnRAc2N0Lmd1LmVkdS5hdT4KKy5icgorUGljY29sZSBtb2RpZmljaGUgZGkgQnJhbSBNb29sZW5hYXIuCitNb2RpZmljYXRvIGRhIEp1ZXJnZW4gV2VpZ2VydC4KKy5QUApkaWZmIC0tZ2l0IGEvcnVudGltZS9kb2MveHhkLjEgYi9ydW50aW1lL2RvYy94eGQuMQppbmRleCBmYmEwNTIxLi5jY2FlYjIyIDEwMDY0NAotLS0gYS9ydW50aW1lL2RvYy94eGQuMQorKysgYi9ydW50aW1lL2RvYy94eGQuMQpAQCAtNjIsMTIgKzYyLDExIEBACiAuSVIgXC1iICIgfCAiIFwtYml0cwogU3dpdGNoIHRvIGJpdHMgKGJpbmFyeSBkaWdpdHMpIGR1bXAsIHJhdGhlciB0aGFuIGhleGR1bXAuCiBUaGlzIG9wdGlvbiB3cml0ZXMgb2N0ZXRzIGFzIGVpZ2h0IGRpZ2l0cyAiMSJzIGFuZCAiMCJzIGluc3RlYWQgb2YgYSBub3JtYWwKLWhleGFjZWNpbWFsIGR1bXAuIEVhY2ggbGluZSBpcyBwcmVjZWRlZCBieSBhIGxpbmUgbnVtYmVyIGluIGhleGFkZWNpbWFsIGFuZAoraGV4YWRlY2ltYWwgZHVtcC4gRWFjaCBsaW5lIGlzIHByZWNlZGVkIGJ5IGEgbGluZSBudW1iZXIgaW4gaGV4YWRlY2ltYWwgYW5kCiBmb2xsb3dlZCBieSBhbiBhc2NpaSAob3IgZWJjZGljKSByZXByZXNlbnRhdGlvbi4gVGhlIGNvbW1hbmQgbGluZSBzd2l0Y2hlcwogXC1yLCBcLXAsIFwtaSBkbyBub3Qgd29yayB3aXRoIHRoaXMgbW9kZS4KIC5UUAogLklSICJcLWMgY29scyAiIHwgIiBcLWNvbHMgY29scyIKLS5JUiAiXC1jIGNvbHMgIiB8ICIgXC1jb2xzIGNvbHMiCiBmb3JtYXQKIC5SSSA8IGNvbHMgPgogb2N0ZXRzIHBlciBsaW5lLiBEZWZhdWx0IDE2IChcLWk6IDEyLCBcLXBzOiAzMCwgXC1iOiA2KS4gTWF4IDI1Ni4KQEAgLTc4LDcgKzc3LDcgQEAKIG1lYW5pbmdsZXNzIGluIGNvbWJpbmF0aW9ucyB3aXRoIFwtciwgXC1wIG9yIFwtaS4KIC5UUAogLklSICJcLWcgYnl0ZXMgIiB8ICIgXC1ncm91cHNpemUgYnl0ZXMiCi1zZXBlcmF0ZSB0aGUgb3V0cHV0IG9mIGV2ZXJ5CitzZXBhcmF0ZSB0aGUgb3V0cHV0IG9mIGV2ZXJ5CiAuUkkgPCBieXRlcyA+CiBieXRlcyAodHdvIGhleCBjaGFyYWN0ZXJzIG9yIGVpZ2h0IGJpdC1kaWdpdHMgZWFjaCkgYnkgYSB3aGl0ZXNwYWNlLgogU3BlY2lmeQpAQCAtMTM5LDcgKzEzOCw3IEBACiAuUFAKIC5JIHh4ZCBcLXIKIGhhcyBzb21lIGJ1aWx0aW4gbWFnaWMgd2hpbGUgZXZhbHVhdGluZyBsaW5lIG51bWJlciBpbmZvcm1hdGlvbi4KLUlmIHRoZSBvdXB1dCBmaWxlIGlzIHNlZWthYmxlLCB0aGVuIHRoZSBsaW5lbnVtYmVycyBhdCB0aGUgc3RhcnQgb2YgZWFjaAorSWYgdGhlIG91dHB1dCBmaWxlIGlzIHNlZWthYmxlLCB0aGVuIHRoZSBsaW5lbnVtYmVycyBhdCB0aGUgc3RhcnQgb2YgZWFjaAogaGV4ZHVtcCBsaW5lIG1heSBiZSBvdXQgb2Ygb3JkZXIsIGxpbmVzIG1heSBiZSBtaXNzaW5nLCBvciBvdmVybGFwcGluZy4gSW4KIHRoZXNlIGNhc2VzIHh4ZCB3aWxsIGxzZWVrKDIpIHRvIHRoZSBuZXh0IHBvc2l0aW9uLiBJZiB0aGUgb3V0cHV0IGZpbGUgaXMgbm90CiBzZWVrYWJsZSwgb25seSBnYXBzIGFyZSBhbGxvd2VkLCB3aGljaCB3aWxsIGJlIGZpbGxlZCBieSBudWxsLWJ5dGVzLgpAQCAtMTUyLDcgKzE1MSw3IEBACiBza2lwcyBldmVyeXRoaW5nIG9uIHRoZSBpbnB1dCBsaW5lIGFmdGVyIHJlYWRpbmcgZW5vdWdoIGNvbHVtbnMgb2YgaGV4YWRlY2ltYWwKIGRhdGEgKHNlZSBvcHRpb24gXC1jKS4gVGhpcyBhbHNvIG1lYW5zLCB0aGF0IGNoYW5nZXMgdG8gdGhlIHByaW50YWJsZSBhc2NpaSAob3IKIGViY2RpYykgY29sdW1ucyBhcmUgYWx3YXlzIGlnbm9yZWQuIFJldmVydGluZyBhIHBsYWluIChvciBwb3N0c2NyaXB0KSBzdHlsZQotaGV4ZHVtcCB3aXRoIHh4ZCBcLXIgXC1wIGRvZXMgbm90IGRlcGVuZCBvbiB0aGUgY29ycmVjdCBudW1iZXIgb2YgY29sdW1ucy4gSGVyZSBhbiB0aGluZyB0aGF0IGxvb2tzIGxpa2UgYSBwYWlyIG9mIGhleC1kaWdpdHMgaXMgaW50ZXJwcmV0ZWQuCitoZXhkdW1wIHdpdGggeHhkIFwtciBcLXAgZG9lcyBub3QgZGVwZW5kIG9uIHRoZSBjb3JyZWN0IG51bWJlciBvZiBjb2x1bW5zLiBIZXJlIGFueXRoaW5nIHRoYXQgbG9va3MgbGlrZSBhIHBhaXIgb2YgaGV4LWRpZ2l0cyBpcyBpbnRlcnByZXRlZC4KIC5QUAogTm90ZSB0aGUgZGlmZmVyZW5jZSBiZXR3ZWVuCiAuYnIKQEAgLTE4Niw3ICsxODUsNyBAQAogXGZJJSBzaCBcLWMgJ2RkIG9mPXBsYWluX3NuaXBwZXQgYnM9MWsgY291bnQ9MTsgeHhkIFwtcyArLTc2OCA+IGhleF9zbmlwcGV0JyA8IGZpbGUKIC5QUAogSG93ZXZlciwgdGhpcyBpcyBhIHJhcmUgc2l0dWF0aW9uIGFuZCB0aGUgdXNlIG9mIGArJyBpcyByYXJlbHkgbmVlZGVkLgotdGhlIGF1dGhvciBwcmVmZXJzIHRvIG1vbml0b3IgdGhlIGVmZmVjdCBvZiB4eGQgd2l0aCBzdHJhY2UoMSkgb3IgdHJ1c3MoMSksIHdoZW5ldmVyIFwtcyBpcyB1c2VkLgorVGhlIGF1dGhvciBwcmVmZXJzIHRvIG1vbml0b3IgdGhlIGVmZmVjdCBvZiB4eGQgd2l0aCBzdHJhY2UoMSkgb3IgdHJ1c3MoMSksIHdoZW5ldmVyIFwtcyBpcyB1c2VkLgogLlNIIEVYQU1QTEVTCiAuUFAKIC5icgpAQCAtMjA4LDE3ICsyMDcsMTcgQEAKIC5icgogXGZJJSB4eGQgXC1sIDEyMCBcLXBzIFwtYyAyMCB4eGQuMVxmUgogLmJyCi0yZTU0NDgyMDU4NTg0NDIwMzEyMDIyNGQ2MTZlNzU2MTZjMjA3MDYxCisyZTU0NDgyMDU4NTg0NDIwMzEyMDIyNDE3NTY3NzU3Mzc0MjAzMTM5CiAuYnIKLTY3NjUyMDY2NmY3MjIwNzg3ODY0MjIwYTJlNWMyMjBhMmU1YzIyMjAKKzM5MzYyMjIwMjI0ZDYxNmU3NTYxNmMyMDcwNjE2NzY1MjA2NjZmNzIKIC5icgotMzIzMTczNzQyMDRkNjE3OTIwMzEzOTM5MzYwYTJlNWMyMjIwNGQ2MQorMjA3ODc4NjQyMjBhMmU1YzIyMGEyZTVjMjIyMDMyMzE3Mzc0MjA0ZAogLmJyCi02ZTIwNzA2MTY3NjUyMDYxNzU3NDY4NmY3MjNhMGEyZTVjMjIyMDIwCis2MTc5MjAzMTM5MzkzNjBhMmU1YzIyMjA0ZDYxNmUyMDcwNjE2NzY1CiAuYnIKLTIwMjA1NDZmNmU3OTIwNGU3NTY3NjU2ZTc0MjAzYzc0NmY2ZTc5NDAKKzIwNjE3NTc0Njg2ZjcyM2EwYTJlNWMyMjIwMjAyMDIwNTQ2ZjZlNzkKIC5icgotNzM2Mzc0NmU3NTY3NjU2ZTJlNzA3MDcwMmU2Nzc1MmU2NTY0NzUyZQorMjA0ZTc1Njc2NTZlNzQyMDNjNzQ2ZjZlNzk0MDczNjM3NDZlNzU2NwogLmJyCiAKIC5icgpAQCAtMjI2LDMyICsyMjUsMzIgQEAKIC5icgogXGZJJSB4eGQgXC1sIDEyMCBcLWMgMTIgeHhkLjFcZlIKIC5icgotMDAwMDAwMDogMmU1NCA0ODIwIDU4NTggNDQyMCAzMTIwIDIyNGQgIC5USCBYWEQgMSAiTQorMDAwMDAwMDogMmU1NCA0ODIwIDU4NTggNDQyMCAzMTIwIDIyNDEgIC5USCBYWEQgMSAiQQogLmJyCi0wMDAwMDBjOiA2MTZlIDc1NjEgNmMyMCA3MDYxIDY3NjUgMjA2NiAgYW51YWwgcGFnZSBmCiswMDAwMDBjOiA3NTY3IDc1NzMgNzQyMCAzMTM5IDM5MzYgMjIyMCAgdWd1c3QgMTk5NiIgCiAuYnIKLTAwMDAwMTg6IDZmNzIgMjA3OCA3ODY0IDIyMGEgMmU1YyAyMjBhICBvciB4eGQiLi5cXCIuCiswMDAwMDE4OiAyMjRkIDYxNmUgNzU2MSA2YzIwIDcwNjEgNjc2NSAgIk1hbnVhbCBwYWdlCiAuYnIKLTAwMDAwMjQ6IDJlNWMgMjIyMCAzMjMxIDczNzQgMjA0ZCA2MTc5ICAuXFwiIDIxc3QgTWF5CiswMDAwMDI0OiAyMDY2IDZmNzIgMjA3OCA3ODY0IDIyMGEgMmU1YyAgIGZvciB4eGQiLi5cXAogLmJyCi0wMDAwMDMwOiAyMDMxIDM5MzkgMzYwYSAyZTVjIDIyMjAgNGQ2MSAgIDE5OTYuLlxcIiBNYQorMDAwMDAzMDogMjIwYSAyZTVjIDIyMjAgMzIzMSA3Mzc0IDIwNGQgICIuLlxcIiAyMXN0IE0KIC5icgotMDAwMDAzYzogNmUyMCA3MDYxIDY3NjUgMjA2MSA3NTc0IDY4NmYgIG4gcGFnZSBhdXRobworMDAwMDAzYzogNjE3OSAyMDMxIDM5MzkgMzYwYSAyZTVjIDIyMjAgIGF5IDE5OTYuLlxcIiAKIC5icgotMDAwMDA0ODogNzIzYSAwYTJlIDVjMjIgMjAyMCAyMDIwIDU0NmYgIHI6Li5cXCIgICAgVG8KKzAwMDAwNDg6IDRkNjEgNmUyMCA3MDYxIDY3NjUgMjA2MSA3NTc0ICBNYW4gcGFnZSBhdXQKIC5icgotMDAwMDA1NDogNmU3OSAyMDRlIDc1NjcgNjU2ZSA3NDIwIDNjNzQgIG55IE51Z2VudCA8dAorMDAwMDA1NDogNjg2ZiA3MjNhIDBhMmUgNWMyMiAyMDIwIDIwMjAgIGhvcjouLlxcIiAgICAKIC5icgotMDAwMDA2MDogNmY2ZSA3OTQwIDczNjMgNzQ2ZSA3NTY3IDY1NmUgIG9ueUBzY3RudWdlbgorMDAwMDA2MDogNTQ2ZiA2ZTc5IDIwNGUgNzU2NyA2NTZlIDc0MjAgIFRvbnkgTnVnZW50IAogLmJyCi0wMDAwMDZjOiAyZTcwIDcwNzAgMmU2NyA3NTJlIDY1NjQgNzUyZSAgLnBwcC5ndS5lZHUuCiswMDAwMDZjOiAzYzc0IDZmNmUgNzk0MCA3MzYzIDc0NmUgNzU2NyAgPHRvbnlAc2N0bnVnCiAuUFAKIC5icgogRGlzcGxheSBqdXN0IHRoZSBkYXRlIGZyb20gdGhlIGZpbGUgeHhkLjEKIC5icgotXGZJJSB4eGQgXC1zIDB4MjggXC1sIDEyIFwtYyAxMiB4eGQuMVxmUgorXGZJJSB4eGQgXC1zIDB4MzYgXC1sIDEzIFwtYyAxMyB4eGQuMVxmUgogLmJyCi0wMDAwMDI4OiAzMjMxIDczNzQgMjA0ZCA2MTc5IDIwMzEgMzkzOSAgMjFzdCBNYXkgMTk5CiswMDAwMDM2OiAzMjMxIDczNzQgMjA0ZCA2MTc5IDIwMzEgMzkzOSAzNiAgMjFzdCBNYXkgMTk5NgogLlBQCiAuYnIKIENvcHkKQEAgLTI2NiwxMSArMjY1LDExIEBACiAuYnIKIFBhdGNoIHRoZSBkYXRlIGluIHRoZSBmaWxlIHh4ZC4xCiAuYnIKLVxmSSUgZWNobyAnMDAwMDAyOTogMzU3NCA2OCcgfCB4eGQgXC1yIFwtIHh4ZC4xXGZSCitcZkklIGVjaG8gJzAwMDAwMzc6IDM1NzQgNjgnIHwgeHhkIFwtciBcLSB4eGQuMVxmUgogLmJyCi1cZkklIHh4ZCBcLXMgMHgyOCBcLWwgMTIgXC1jIDEyIHh4ZC4xXGZSCitcZkklIHh4ZCBcLXMgMHgzNiBcLWwgMTMgXC1jIDEzIHh4ZC4xXGZSCiAuYnIKLTAwMDAwMjg6IDMyMzUgNzQ2OCAyMDRkIDYxNzkgMjAzMSAzOTM5ICAyNXRoIE1heSAxOTkKKzAwMDAwMzY6IDMyMzUgNzQ2OCAyMDRkIDYxNzkgMjAzMSAzOTM5IDM2ICAyNXRoIE1heSAxOTk2CiAuUFAKIC5icgogQ3JlYXRlIGEgNjU1MzcgYnl0ZSBmaWxlIHdpdGggYWxsIGJ5dGVzIDB4MDAsCmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy94eGQubWFuIGIvcnVudGltZS9kb2MveHhkLm1hbgppbmRleCAzN2IyMmQ2Li4wMGQ3NWRhIDEwMDY0NAotLS0gYS9ydW50aW1lL2RvYy94eGQubWFuCisrKyBiL3J1bnRpbWUvZG9jL3h4ZC5tYW4KQEAgLTEsOSArMSw3IEBACitYWEQoMSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBYWEQoMSkKIAogCiAKLVhYRCgxKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWFhEKDEpCi0KLQogTkFNRQogICAgICAgIHh4ZCAtIG1ha2UgYSBoZXhkdW1wIG9yIGRvIHRoZSByZXZlcnNlLgogCkBAIC0xMywyMzkgKzExLDE4NCBAQAogICAgICAgIHh4ZCAtcltldmVydF0gW29wdGlvbnNdIFtpbmZpbGUgW291dGZpbGVdXQogCiBERVNDUklQVElPTgotICAgICAgIHh4ZCAgY3JlYXRlcyBhIGhleCBkdW1wIG9mIGEgZ2l2ZW4gZmlsZSBvciBzdGFuZGFyZCBpbnB1dC4KLSAgICAgICBJdCBjYW4gYWxzbyBjb252ZXJ0IGEgaGV4IGR1bXAgYmFjayB0byBpdHMgb3JpZ2luYWwgYmluYXJ5Ci0gICAgICAgZm9ybS4gICBMaWtlICB1dWVuY29kZSgxKSAgYW5kICB1dWRlY29kZSgxKSAgaXQgYWxsb3dzIHRoZQotICAgICAgIHRyYW5zbWlzc2lvbiBvZiBiaW5hcnkgZGF0YSBpbiBhIGBtYWlsLXNhZmUnIEFTQ0lJICByZXByZS0KLSAgICAgICBzZW50YXRpb24sICBidXQgIGhhcyB0aGUgYWR2YW50YWdlIG9mIGRlY29kaW5nIHRvIHN0YW5kYXJkCi0gICAgICAgb3V0cHV0LiAgTW9yZW92ZXIsIGl0IGNhbiBiZSB1c2VkIHRvIHBlcmZvcm0gIGJpbmFyeSAgZmlsZQotICAgICAgIHBhdGNoaW5nLgorICAgICAgIHh4ZCAgY3JlYXRlcyBhIGhleCBkdW1wIG9mIGEgZ2l2ZW4gZmlsZSBvciBzdGFuZGFyZCBpbnB1dC4gIEl0IGNhbiBhbHNvCisgICAgICAgY29udmVydCBhIGhleCBkdW1wIGJhY2sgdG8gaXRzIG9yaWdpbmFsIGJpbmFyeSBmb3JtLiAgTGlrZSAgdXVlbmNvZGUoMSkKKyAgICAgICBhbmQgIHV1ZGVjb2RlKDEpICBpdCBhbGxvd3MgdGhlIHRyYW5zbWlzc2lvbiBvZiBiaW5hcnkgZGF0YSBpbiBhIGBtYWlsLQorICAgICAgIHNhZmUnIEFTQ0lJIHJlcHJlc2VudGF0aW9uLCBidXQgaGFzIHRoZSBhZHZhbnRhZ2Ugb2YgZGVjb2RpbmcgdG8gIHN0YW4tCisgICAgICAgZGFyZCBvdXRwdXQuICBNb3Jlb3ZlciwgaXQgY2FuIGJlIHVzZWQgdG8gcGVyZm9ybSBiaW5hcnkgZmlsZSBwYXRjaGluZy4KIAogT1BUSU9OUwotICAgICAgIElmICBubyBpbmZpbGUgaXMgZ2l2ZW4sIHN0YW5kYXJkIGlucHV0IGlzIHJlYWQuICBJZiBpbmZpbGUKLSAgICAgICBpcyBzcGVjaWZpZWQgYXMgYSBgLScgY2hhcmFjdGVyLCB0aGVuIGlucHV0IGlzIHRha2VuICBmcm9tCi0gICAgICAgc3RhbmRhcmQgIGlucHV0LiAgSWYgbm8gb3V0ZmlsZSBpcyBnaXZlbiAob3IgYSBgLScgY2hhcmFjLQotICAgICAgIHRlciBpcyBpbiBpdHMgcGxhY2UpLCByZXN1bHRzIGFyZSBzZW50IHRvIHN0YW5kYXJkIG91dHB1dC4KKyAgICAgICBJZiBubyBpbmZpbGUgaXMgZ2l2ZW4sIHN0YW5kYXJkIGlucHV0IGlzIHJlYWQuICBJZiBpbmZpbGUgaXMgIHNwZWNpZmllZAorICAgICAgIGFzICBhICBgLScgIGNoYXJhY3RlciwgIHRoZW4gaW5wdXQgaXMgdGFrZW4gZnJvbSBzdGFuZGFyZCBpbnB1dC4gIElmIG5vCisgICAgICAgb3V0ZmlsZSBpcyBnaXZlbiAob3IgYSBgLScgY2hhcmFjdGVyIGlzIGluIGl0cyBwbGFjZSksIHJlc3VsdHMgYXJlIHNlbnQKKyAgICAgICB0byBzdGFuZGFyZCBvdXRwdXQuCiAKLSAgICAgICBOb3RlIHRoYXQgYSAibGF6eSIgcGFyc2VyIGlzIHVzZWQgd2hpY2ggZG9lcyBub3QgY2hlY2sgZm9yCi0gICAgICAgbW9yZSB0aGFuIHRoZSBmaXJzdCBvcHRpb24gbGV0dGVyLCB1bmxlc3MgIHRoZSAgb3B0aW9uICBpcwotICAgICAgIGZvbGxvd2VkICBieSAgYSBwYXJhbWV0ZXIuICBTcGFjZXMgYmV0d2VlbiBhIHNpbmdsZSBvcHRpb24KLSAgICAgICBsZXR0ZXIgYW5kIGl0cyAgcGFyYW1ldGVyICBhcmUgIG9wdGlvbmFsLiAgIFBhcmFtZXRlcnMgIHRvCi0gICAgICAgb3B0aW9ucyAgY2FuIGJlIHNwZWNpZmllZCBpbiBkZWNpbWFsLCBoZXhhZGVjaW1hbCBvciBvY3RhbAotICAgICAgIG5vdGF0aW9uLiAgVGh1cyAtYzgsIC1jIDgsIC1jIDAxMCAgYW5kICAtY29scyAgOCAgYXJlICBhbGwKLSAgICAgICBlcXVpdmFsZW50LgorICAgICAgIE5vdGUgIHRoYXQgIGEgICJsYXp5IiBwYXJzZXIgaXMgdXNlZCB3aGljaCBkb2VzIG5vdCBjaGVjayBmb3IgbW9yZSB0aGFuCisgICAgICAgdGhlIGZpcnN0IG9wdGlvbiBsZXR0ZXIsIHVubGVzcyB0aGUgb3B0aW9uIGlzIGZvbGxvd2VkIGJ5IGEgIHBhcmFtZXRlci4KKyAgICAgICBTcGFjZXMgIGJldHdlZW4gIGEgc2luZ2xlIG9wdGlvbiBsZXR0ZXIgYW5kIGl0cyBwYXJhbWV0ZXIgYXJlIG9wdGlvbmFsLgorICAgICAgIFBhcmFtZXRlcnMgdG8gb3B0aW9ucyBjYW4gYmUgc3BlY2lmaWVkIGluIGRlY2ltYWwsIGhleGFkZWNpbWFsIG9yIG9jdGFsCisgICAgICAgbm90YXRpb24uICBUaHVzIC1jOCwgLWMgOCwgLWMgMDEwIGFuZCAtY29scyA4IGFyZSBhbGwgZXF1aXZhbGVudC4KIAogCiAgICAgICAgLWEgfCAtYXV0b3NraXAKLSAgICAgICAgICAgICAgdG9nZ2xlICBhdXRvc2tpcDogIEEgc2luZ2xlICcqJyByZXBsYWNlcyBudWwtbGluZXMuCi0gICAgICAgICAgICAgIERlZmF1bHQgb2ZmLgorICAgICAgICAgICAgICB0b2dnbGUgIGF1dG9za2lwOiBBIHNpbmdsZSAnKicgcmVwbGFjZXMgbnVsLWxpbmVzLiAgRGVmYXVsdCBvZmYuCiAKICAgICAgICAtYiB8IC1iaXRzCi0gICAgICAgICAgICAgIFN3aXRjaCB0byBiaXRzIChiaW5hcnkgZGlnaXRzKSAgZHVtcCwgIHJhdGhlciAgdGhhbgotICAgICAgICAgICAgICBoZXhkdW1wLiAgVGhpcyBvcHRpb24gd3JpdGVzIG9jdGV0cyBhcyBlaWdodCBkaWdpdHMKLSAgICAgICAgICAgICAgIjEicyBhbmQgIjAicyBpbnN0ZWFkIG9mIGEgbm9ybWFsIGhleGFjZWNpbWFsIGR1bXAuCi0gICAgICAgICAgICAgIEVhY2ggbGluZSBpcyBwcmVjZWRlZCBieSBhIGxpbmUgbnVtYmVyIGluIGhleGFkZWNpLQotICAgICAgICAgICAgICBtYWwgYW5kIGZvbGxvd2VkIGJ5IGFuIGFzY2lpIChvciBlYmNkaWMpICByZXByZXNlbi0KLSAgICAgICAgICAgICAgdGF0aW9uLiBUaGUgY29tbWFuZCBsaW5lIHN3aXRjaGVzIC1yLCAtcCwgLWkgZG8gbm90Ci0gICAgICAgICAgICAgIHdvcmsgd2l0aCB0aGlzIG1vZGUuCisgICAgICAgICAgICAgIFN3aXRjaCB0byBiaXRzIChiaW5hcnkgZGlnaXRzKSBkdW1wLCByYXRoZXIgdGhhbiBoZXhkdW1wLiAgIFRoaXMKKyAgICAgICAgICAgICAgb3B0aW9uICB3cml0ZXMgb2N0ZXRzIGFzIGVpZ2h0IGRpZ2l0cyAiMSJzIGFuZCAiMCJzIGluc3RlYWQgb2YgYQorICAgICAgICAgICAgICBub3JtYWwgaGV4YWRlY2ltYWwgZHVtcC4gRWFjaCBsaW5lIGlzIHByZWNlZGVkIGJ5IGEgbGluZSAgbnVtYmVyCisgICAgICAgICAgICAgIGluICBoZXhhZGVjaW1hbCBhbmQgZm9sbG93ZWQgYnkgYW4gYXNjaWkgKG9yIGViY2RpYykgcmVwcmVzZW50YS0KKyAgICAgICAgICAgICAgdGlvbi4gVGhlIGNvbW1hbmQgbGluZSBzd2l0Y2hlcyAtciwgLXAsIC1pIGRvIG5vdCB3b3JrIHdpdGggdGhpcworICAgICAgICAgICAgICBtb2RlLgogCiAgICAgICAgLWMgY29scyB8IC1jb2xzIGNvbHMKLSAgICAgICAgICAgICAgLWMgY29scyB8IC1jb2xzIGNvbHMgZm9ybWF0IDxjb2xzPiBvY3RldHMgcGVyIGxpbmUuCi0gICAgICAgICAgICAgIERlZmF1bHQgMTYgKC1pOiAxMiwgLXBzOiAzMCwgLWI6IDYpLiBNYXggMjU2LgorICAgICAgICAgICAgICBmb3JtYXQgIDxjb2xzPiBvY3RldHMgcGVyIGxpbmUuIERlZmF1bHQgMTYgKC1pOiAxMiwgLXBzOiAzMCwgLWI6CisgICAgICAgICAgICAgIDYpLiBNYXggMjU2LgogCiAgICAgICAgLUUgfCAtRUJDRElDCi0gICAgICAgICAgICAgIENoYW5nZSB0aGUgY2hhcmFjdGVyIGVuY29kaW5nIGluIHRoZSByaWdodGhhbmQgY29sLQotICAgICAgICAgICAgICB1bW4gZnJvbSBBU0NJSSB0byBFQkNESUMuICBUaGlzIGRvZXMgbm90IGNoYW5nZSB0aGUKLSAgICAgICAgICAgICAgaGV4YWRlY2ltYWwgIHJlcHJlc2VudGF0aW9uLiBUaGUgb3B0aW9uIGlzIG1lYW5pbmctCi0gICAgICAgICAgICAgIGxlc3MgaW4gY29tYmluYXRpb25zIHdpdGggLXIsIC1wIG9yIC1pLgotCi0KLQotTWFudWFsIHBhZ2UgZm9yIHh4ZCAgICAgICAgQXVndXN0IDE5OTYgICAgICAgICAgICAgICAgICAgICAgICAgIDEKLQotCi0KLQotCi1YWEQoMSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFhYRCgxKQotCisgICAgICAgICAgICAgIENoYW5nZSB0aGUgY2hhcmFjdGVyIGVuY29kaW5nIGluIHRoZSByaWdodGhhbmQgY29sdW1uIGZyb20gQVNDSUkKKyAgICAgICAgICAgICAgdG8gRUJDRElDLiAgVGhpcyBkb2VzIG5vdCBjaGFuZ2UgdGhlIGhleGFkZWNpbWFsIHJlcHJlc2VudGF0aW9uLgorICAgICAgICAgICAgICBUaGUgb3B0aW9uIGlzIG1lYW5pbmdsZXNzIGluIGNvbWJpbmF0aW9ucyB3aXRoIC1yLCAtcCBvciAtaS4KIAogICAgICAgIC1nIGJ5dGVzIHwgLWdyb3Vwc2l6ZSBieXRlcwotICAgICAgICAgICAgICBzZXBlcmF0ZSB0aGUgb3V0cHV0IG9mIGV2ZXJ5IDxieXRlcz4gYnl0ZXMgKHR3byBoZXgKLSAgICAgICAgICAgICAgY2hhcmFjdGVycyAgb3IgIGVpZ2h0IGJpdC1kaWdpdHMgZWFjaCkgYnkgYSB3aGl0ZXMtCi0gICAgICAgICAgICAgIHBhY2UuICBTcGVjaWZ5IC1nIDAgdG8gc3VwcHJlc3MgZ3JvdXBpbmcuICAgPEJ5dGVzPgotICAgICAgICAgICAgICBkZWZhdWx0cyAgdG8gIDIgIGluIG5vcm1hbCBtb2RlIGFuZCAxIGluIGJpdHMgbW9kZS4KLSAgICAgICAgICAgICAgR3JvdXBpbmcgZG9lcyBub3QgYXBwbHkgdG8gIHBvc3RzY3JpcHQgIG9yICBpbmNsdWRlCisgICAgICAgICAgICAgIHNlcGFyYXRlIHRoZSBvdXRwdXQgb2YgZXZlcnkgPGJ5dGVzPiBieXRlcyAodHdvICBoZXggIGNoYXJhY3RlcnMKKyAgICAgICAgICAgICAgb3IgZWlnaHQgYml0LWRpZ2l0cyBlYWNoKSBieSBhIHdoaXRlc3BhY2UuICBTcGVjaWZ5IC1nIDAgdG8gc3VwLQorICAgICAgICAgICAgICBwcmVzcyBncm91cGluZy4gIDxCeXRlcz4gZGVmYXVsdHMgdG8gMiBpbiBub3JtYWwgbW9kZSBhbmQgIDEgIGluCisgICAgICAgICAgICAgIGJpdHMgIG1vZGUuICAgR3JvdXBpbmcgIGRvZXMgIG5vdCBhcHBseSB0byBwb3N0c2NyaXB0IG9yIGluY2x1ZGUKICAgICAgICAgICAgICAgc3R5bGUuCiAKICAgICAgICAtaCB8IC1oZWxwCi0gICAgICAgICAgICAgIHByaW50IGEgc3VtbWFyeSBvZiBhdmFpbGFibGUgY29tbWFuZHMgYW5kIGV4aXQuICBObwotICAgICAgICAgICAgICBoZXggZHVtcGluZyBpcyBwZXJmb3JtZWQuCisgICAgICAgICAgICAgIHByaW50IGEgc3VtbWFyeSBvZiBhdmFpbGFibGUgY29tbWFuZHMgYW5kIGV4aXQuICBObyBoZXggIGR1bXBpbmcKKyAgICAgICAgICAgICAgaXMgcGVyZm9ybWVkLgogCiAgICAgICAgLWkgfCAtaW5jbHVkZQotICAgICAgICAgICAgICBvdXRwdXQgaW4gQyBpbmNsdWRlIGZpbGUgc3R5bGUuIEEgIGNvbXBsZXRlICBzdGF0aWMKLSAgICAgICAgICAgICAgYXJyYXkgIGRlZmluaXRpb24gaXMgd3JpdHRlbiAobmFtZWQgYWZ0ZXIgdGhlIGlucHV0Ci0gICAgICAgICAgICAgIGZpbGUpLCB1bmxlc3MgeHhkIHJlYWRzIGZyb20gc3RkaW4uCisgICAgICAgICAgICAgIG91dHB1dCAgaW4gQyBpbmNsdWRlIGZpbGUgc3R5bGUuIEEgY29tcGxldGUgc3RhdGljIGFycmF5IGRlZmluaS0KKyAgICAgICAgICAgICAgdGlvbiBpcyB3cml0dGVuIChuYW1lZCBhZnRlciB0aGUgaW5wdXQgZmlsZSksIHVubGVzcyAgeHhkICByZWFkcworICAgICAgICAgICAgICBmcm9tIHN0ZGluLgogCiAgICAgICAgLWwgbGVuIHwgLWxlbiBsZW4KICAgICAgICAgICAgICAgc3RvcCBhZnRlciB3cml0aW5nIDxsZW4+IG9jdGV0cy4KIAogICAgICAgIC1wIHwgLXBzIHwgLXBvc3RzY3JpcHQgfCAtcGxhaW4KLSAgICAgICAgICAgICAgb3V0cHV0IGluIHBvc3RzY3JpcHQgY29udGludW91cyBoZXhkdW1wIHN0eWxlLiBBbHNvCi0gICAgICAgICAgICAgIGtub3duIGFzIHBsYWluIGhleGR1bXAgc3R5bGUuCisgICAgICAgICAgICAgIG91dHB1dCAgaW4gIHBvc3RzY3JpcHQgIGNvbnRpbnVvdXMgIGhleGR1bXAgc3R5bGUuIEFsc28ga25vd24gYXMKKyAgICAgICAgICAgICAgcGxhaW4gaGV4ZHVtcCBzdHlsZS4KIAogICAgICAgIC1yIHwgLXJldmVydAotICAgICAgICAgICAgICByZXZlcnNlICBvcGVyYXRpb246IGNvbnZlcnQgKG9yIHBhdGNoKSBoZXhkdW1wIGludG8KLSAgICAgICAgICAgICAgYmluYXJ5LiAgSWYgbm90IHdyaXRpbmcgdG8gc3Rkb3V0LCB4eGQgd3JpdGVzICBpbnRvCi0gICAgICAgICAgICAgIGl0cyBvdXRwdXQgZmlsZSB3aXRob3V0IHRydW5jYXRpbmcgaXQuIFVzZSB0aGUgY29tLQotICAgICAgICAgICAgICBiaW5hdGlvbiAtciAtcCAgdG8gIHJlYWQgIHBsYWluICBoZXhhZGVjaW1hbCAgZHVtcHMKLSAgICAgICAgICAgICAgd2l0aG91dCAgbGluZSBudW1iZXIgaW5mb3JtYXRpb24gYW5kIHdpdGhvdXQgYSBwYXItCi0gICAgICAgICAgICAgIHRpY3VsYXIgY29sdW1uIGxheW91dC4gIEFkZGl0aW9uYWwgIFdoaXRlc3BhY2UgIGFuZAotICAgICAgICAgICAgICBsaW5lLWJyZWFrcyBhcmUgYWxsb3dlZCBhbnl3aGVyZS4KKyAgICAgICAgICAgICAgcmV2ZXJzZSBvcGVyYXRpb246IGNvbnZlcnQgKG9yIHBhdGNoKSBoZXhkdW1wIGludG8gIGJpbmFyeS4gICBJZgorICAgICAgICAgICAgICBub3QgIHdyaXRpbmcgIHRvIHN0ZG91dCwgeHhkIHdyaXRlcyBpbnRvIGl0cyBvdXRwdXQgZmlsZSB3aXRob3V0CisgICAgICAgICAgICAgIHRydW5jYXRpbmcgaXQuIFVzZSB0aGUgY29tYmluYXRpb24gLXIgLXAgdG8gcmVhZCBwbGFpbiBoZXhhZGVjaS0KKyAgICAgICAgICAgICAgbWFsIGR1bXBzIHdpdGhvdXQgbGluZSBudW1iZXIgaW5mb3JtYXRpb24gYW5kIHdpdGhvdXQgYSBwYXJ0aWN1LQorICAgICAgICAgICAgICBsYXIgY29sdW1uIGxheW91dC4gQWRkaXRpb25hbCAgV2hpdGVzcGFjZSAgYW5kICBsaW5lLWJyZWFrcyAgYXJlCisgICAgICAgICAgICAgIGFsbG93ZWQgYW55d2hlcmUuCiAKICAgICAgICAtc2VlayBvZmZzZXQKLSAgICAgICAgICAgICAgV2hlbiAgdXNlZCBhZnRlciAtciA6IHJldmVydCB3aXRoIDxvZmZzZXQ+IGFkZGVkIHRvCi0gICAgICAgICAgICAgIGZpbGUgcG9zaXRpb25zIGZvdW5kIGluIGhleGR1bXAuCisgICAgICAgICAgICAgIFdoZW4gIHVzZWQgIGFmdGVyICAtciA6IHJldmVydCB3aXRoIDxvZmZzZXQ+IGFkZGVkIHRvIGZpbGUgcG9zaS0KKyAgICAgICAgICAgICAgdGlvbnMgZm91bmQgaW4gaGV4ZHVtcC4KIAogICAgICAgIC1zIFsrXVstXXNlZWsKLSAgICAgICAgICAgICAgc3RhcnQgYXQgPHNlZWs+IGJ5dGVzIGFicy4gKG9yIHJlbC4pIGluZmlsZSBvZmZzZXQuCi0gICAgICAgICAgICAgICsgIGluZGljYXRlcyAgdGhhdCB0aGUgc2VlayBpcyByZWxhdGl2ZSB0byB0aGUgY3VyLQotICAgICAgICAgICAgICByZW50IHN0ZGluICBmaWxlICBwb3NpdGlvbiAgKG1lYW5pbmdsZXNzICB3aGVuICBub3QKLSAgICAgICAgICAgICAgcmVhZGluZyAgZnJvbSAgc3RkaW4pLiAgIC0gIGluZGljYXRlcyB0aGF0IHRoZSBzZWVrCi0gICAgICAgICAgICAgIHNob3VsZCBiZSB0aGF0IG1hbnkgY2hhcmFjdGVycyBmcm9tIHRoZSBlbmQgb2YgIHRoZQotICAgICAgICAgICAgICBpbnB1dCAob3IgaWYgY29tYmluZWQgd2l0aAotICAgICAgICAgICAgICAgKyAgOiAgYmVmb3JlICB0aGUgIGN1cnJlbnQgIHN0ZGluICBmaWxlIHBvc2l0aW9uKS4KLSAgICAgICAgICAgICAgV2l0aG91dCAtcyBvcHRpb24sIHh4ZCBzdGFydHMgYXQgdGhlICBjdXJyZW50ICBmaWxlCi0gICAgICAgICAgICAgIHBvc2l0aW9uLgorICAgICAgICAgICAgICBzdGFydCBhdCA8c2Vlaz4gYnl0ZXMgYWJzLiAob3IgcmVsLikgaW5maWxlIG9mZnNldC4gICsgaW5kaWNhdGVzCisgICAgICAgICAgICAgIHRoYXQgIHRoZSAgc2VlayAgaXMgIHJlbGF0aXZlIHRvIHRoZSBjdXJyZW50IHN0ZGluIGZpbGUgcG9zaXRpb24KKyAgICAgICAgICAgICAgKG1lYW5pbmdsZXNzIHdoZW4gbm90IHJlYWRpbmcgZnJvbSBzdGRpbikuICAtIGluZGljYXRlcyB0aGF0IHRoZQorICAgICAgICAgICAgICBzZWVrICBzaG91bGQgIGJlICB0aGF0IG1hbnkgY2hhcmFjdGVycyBmcm9tIHRoZSBlbmQgb2YgdGhlIGlucHV0CisgICAgICAgICAgICAgIChvciBpZiBjb21iaW5lZCB3aXRoCisgICAgICAgICAgICAgICArIDogYmVmb3JlICB0aGUgIGN1cnJlbnQgIHN0ZGluICBmaWxlICBwb3NpdGlvbikuICAgV2l0aG91dCAgLXMKKyAgICAgICAgICAgICAgb3B0aW9uLCB4eGQgc3RhcnRzIGF0IHRoZSBjdXJyZW50IGZpbGUgcG9zaXRpb24uCiAKLSAgICAgICAtdSAgICAgdXNlICB1cHBlciBjYXNlIGhleCBsZXR0ZXJzLiBEZWZhdWx0IGlzIGxvd2VyIGNhc2UuCisgICAgICAgLXUgICAgIHVzZSB1cHBlciBjYXNlIGhleCBsZXR0ZXJzLiBEZWZhdWx0IGlzIGxvd2VyIGNhc2UuCiAKICAgICAgICAtdiB8IC12ZXJzaW9uCiAgICAgICAgICAgICAgIHNob3cgdmVyc2lvbiBzdHJpbmcuCiAKLQotCi0KLQotTWFudWFsIHBhZ2UgZm9yIHh4ZCAgICAgICAgQXVndXN0IDE5OTYgICAgICAgICAgICAgICAgICAgICAgICAgIDIKLQotCi0KLQotCi1YWEQoMSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFhYRCgxKQotCi0KIENBVkVBVFMKLSAgICAgICB4eGQgLXIgaGFzIHNvbWUgYnVpbHRpbiBtYWdpYyB3aGlsZSBldmFsdWF0aW5nIGxpbmUgbnVtYmVyCi0gICAgICAgaW5mb3JtYXRpb24uICAgSWYgIHRoZSAgb3VwdXQgIGZpbGUgIGlzIHNlZWthYmxlLCB0aGVuIHRoZQotICAgICAgIGxpbmVudW1iZXJzIGF0IHRoZSBzdGFydCBvZiBlYWNoIGhleGR1bXAgbGluZSBtYXkgIGJlICBvdXQKLSAgICAgICBvZiAgb3JkZXIsICBsaW5lcyBtYXkgYmUgbWlzc2luZywgb3Igb3ZlcmxhcHBpbmcuIEluIHRoZXNlCi0gICAgICAgY2FzZXMgeHhkIHdpbGwgbHNlZWsoMikgdG8gdGhlIG5leHQgcG9zaXRpb24uIElmIHRoZSAgb3V0LQotICAgICAgIHB1dCAgZmlsZSAgaXMgIG5vdCAgc2Vla2FibGUsIG9ubHkgZ2FwcyBhcmUgYWxsb3dlZCwgd2hpY2gKLSAgICAgICB3aWxsIGJlIGZpbGxlZCBieSBudWxsLWJ5dGVzLgorICAgICAgIHh4ZCAtciBoYXMgc29tZSBidWlsdGluIG1hZ2ljIHdoaWxlIGV2YWx1YXRpbmcgbGluZSBudW1iZXIgaW5mb3JtYXRpb24uCisgICAgICAgSWYgdGhlIG91dHB1dCBmaWxlIGlzIHNlZWthYmxlLCB0aGVuIHRoZSBsaW5lbnVtYmVycyBhdCAgdGhlICBzdGFydCAgb2YKKyAgICAgICBlYWNoICBoZXhkdW1wICBsaW5lIG1heSBiZSBvdXQgb2Ygb3JkZXIsIGxpbmVzIG1heSBiZSBtaXNzaW5nLCBvciBvdmVyLQorICAgICAgIGxhcHBpbmcuIEluIHRoZXNlIGNhc2VzIHh4ZCB3aWxsIGxzZWVrKDIpIHRvIHRoZSBuZXh0IHBvc2l0aW9uLiBJZiAgdGhlCisgICAgICAgb3V0cHV0ICBmaWxlICBpcyAgbm90ICBzZWVrYWJsZSwgIG9ubHkgIGdhcHMgYXJlIGFsbG93ZWQsIHdoaWNoIHdpbGwgYmUKKyAgICAgICBmaWxsZWQgYnkgbnVsbC1ieXRlcy4KIAotICAgICAgIHh4ZCAtciBuZXZlciBnZW5lcmF0ZXMgcGFyc2UgZXJyb3JzLiBHYXJiYWdlICBpcyAgc2lsZW50bHkKLSAgICAgICBza2lwcGVkLgorICAgICAgIHh4ZCAtciBuZXZlciBnZW5lcmF0ZXMgcGFyc2UgZXJyb3JzLiBHYXJiYWdlIGlzIHNpbGVudGx5IHNraXBwZWQuCiAKLSAgICAgICBXaGVuICBlZGl0aW5nICBoZXhkdW1wcywgIHBsZWFzZSAgbm90ZSAgdGhhdCAgeHhkIC1yIHNraXBzCi0gICAgICAgZXZlcnl0aGluZyBvbiB0aGUgaW5wdXQgbGluZSBhZnRlciByZWFkaW5nIGVub3VnaCAgY29sdW1ucwotICAgICAgIG9mIGhleGFkZWNpbWFsIGRhdGEgKHNlZSBvcHRpb24gLWMpLiBUaGlzIGFsc28gbWVhbnMsIHRoYXQKLSAgICAgICBjaGFuZ2VzIHRvIHRoZSBwcmludGFibGUgYXNjaWkgIChvciAgZWJjZGljKSAgY29sdW1ucyAgYXJlCi0gICAgICAgYWx3YXlzICBpZ25vcmVkLiAgUmV2ZXJ0aW5nICBhIHBsYWluIChvciBwb3N0c2NyaXB0KSBzdHlsZQotICAgICAgIGhleGR1bXAgd2l0aCB4eGQgLXIgLXAgZG9lcyBub3QgZGVwZW5kIG9uIHRoZSBjb3JyZWN0IG51bS0KLSAgICAgICBiZXIgIG9mICBjb2x1bW5zLiAgSGVyZSBhbiB0aGluZyB0aGF0IGxvb2tzIGxpa2UgYSBwYWlyIG9mCi0gICAgICAgaGV4LWRpZ2l0cyBpcyBpbnRlcnByZXRlZC4KKyAgICAgICBXaGVuIGVkaXRpbmcgaGV4ZHVtcHMsIHBsZWFzZSBub3RlIHRoYXQgeHhkIC1yIHNraXBzIGV2ZXJ5dGhpbmcgb24gIHRoZQorICAgICAgIGlucHV0IGxpbmUgYWZ0ZXIgcmVhZGluZyBlbm91Z2ggY29sdW1ucyBvZiBoZXhhZGVjaW1hbCBkYXRhIChzZWUgb3B0aW9uCisgICAgICAgLWMpLiBUaGlzIGFsc28gbWVhbnMsIHRoYXQgY2hhbmdlcyB0byB0aGUgcHJpbnRhYmxlIGFzY2lpICAob3IgIGViY2RpYykKKyAgICAgICBjb2x1bW5zICBhcmUgIGFsd2F5cyAgaWdub3JlZC4gIFJldmVydGluZyBhIHBsYWluIChvciBwb3N0c2NyaXB0KSBzdHlsZQorICAgICAgIGhleGR1bXAgd2l0aCB4eGQgLXIgLXAgZG9lcyBub3QgZGVwZW5kIG9uIHRoZSBjb3JyZWN0ICBudW1iZXIgIG9mICBjb2wtCisgICAgICAgdW1ucy4gIEhlcmUgIGFueXRoaW5nICB0aGF0ICBsb29rcyAgbGlrZSBhIHBhaXIgb2YgaGV4LWRpZ2l0cyBpcyBpbnRlci0KKyAgICAgICBwcmV0ZWQuCiAKICAgICAgICBOb3RlIHRoZSBkaWZmZXJlbmNlIGJldHdlZW4KICAgICAgICAlIHh4ZCAtaSBmaWxlCiAgICAgICAgYW5kCiAgICAgICAgJSB4eGQgLWkgPCBmaWxlCiAKLSAgICAgICB4eGQgLXMgK3NlZWsgbWF5IGJlICBkaWZmZXJlbnQgIGZyb20gIHh4ZCAgLXMgIHNlZWsgICwgIGFzCi0gICAgICAgbHNlZWsoMikgaXMgdXNlZCB0byAicmV3aW5kIiBpbnB1dC4gIEEgJysnIG1ha2VzIGEgZGlmZmVyLQotICAgICAgIGVuY2UgaWYgdGhlIGlucHV0IHNvdXJjZSBpcyBzdGRpbiwgIGFuZCAgaWYgIHN0ZGluJ3MgIGZpbGUKLSAgICAgICBwb3NpdGlvbiAgaXMgIG5vdCBhdCB0aGUgc3RhcnQgb2YgdGhlIGZpbGUgYnkgdGhlIHRpbWUgeHhkCi0gICAgICAgaXMgc3RhcnRlZCBhbmQgZ2l2ZW4gaXRzIGlucHV0LiAgIFRoZSAgZm9sbG93aW5nICBleGFtcGxlcwotICAgICAgIG1heSBoZWxwIHRvIGNsYXJpZnkgKG9yIGZ1cnRoZXIgY29uZnVzZSEpLi4uCisgICAgICAgeHhkIC1zICtzZWVrIG1heSBiZSBkaWZmZXJlbnQgZnJvbSB4eGQgLXMgc2VlayAsIGFzIGxzZWVrKDIpIGlzIHVzZWQgdG8KKyAgICAgICAicmV3aW5kIiBpbnB1dC4gIEEgJysnIG1ha2VzIGEgZGlmZmVyZW5jZSBpZiB0aGUgaW5wdXQgc291cmNlIGlzIHN0ZGluLAorICAgICAgIGFuZCBpZiBzdGRpbidzIGZpbGUgcG9zaXRpb24gaXMgbm90IGF0IHRoZSBzdGFydCBvZiAgdGhlICBmaWxlICBieSAgdGhlCisgICAgICAgdGltZSAgeHhkICBpcyAgc3RhcnRlZCBhbmQgZ2l2ZW4gaXRzIGlucHV0LiAgVGhlIGZvbGxvd2luZyBleGFtcGxlcyBtYXkKKyAgICAgICBoZWxwIHRvIGNsYXJpZnkgKG9yIGZ1cnRoZXIgY29uZnVzZSEpLi4uCiAKLSAgICAgICBSZXdpbmQgIHN0ZGluIGJlZm9yZSByZWFkaW5nOyBuZWVkZWQgYmVjYXVzZSB0aGUgYGNhdCcgaGFzCi0gICAgICAgYWxyZWFkeSByZWFkIHRvIHRoZSBlbmQgb2Ygc3RkaW4uCisgICAgICAgUmV3aW5kIHN0ZGluIGJlZm9yZSByZWFkaW5nOyBuZWVkZWQgYmVjYXVzZSB0aGUgYGNhdCcgaGFzIGFscmVhZHkgIHJlYWQKKyAgICAgICB0byB0aGUgZW5kIG9mIHN0ZGluLgogICAgICAgICUgc2ggLWMgJ2NhdCA+IHBsYWluX2NvcHk7IHh4ZCAtcyAwID4gaGV4X2NvcHknIDwgZmlsZQogCi0gICAgICAgSGV4ZHVtcCBmcm9tIGZpbGUgcG9zaXRpb24gMHg0ODAgKD0xMDI0KzEyOCkgb253YXJkcy4gIFRoZQotICAgICAgIGArJyAgc2lnbiAgbWVhbnMgICJyZWxhdGl2ZSB0byB0aGUgY3VycmVudCBwb3NpdGlvbiIsIHRodXMKLSAgICAgICB0aGUgYDEyOCcgYWRkcyB0byB0aGUgMWsgd2hlcmUgZGQgbGVmdCBvZmYuCi0gICAgICAgJSBzaCAtYyAnZGQgb2Y9cGxhaW5fc25pcHBldCBicz0xayBjb3VudD0xOyB4eGQgLXMgKzEyOCAgPgotICAgICAgIGhleF9zbmlwcGV0JyA8IGZpbGUKKyAgICAgICBIZXhkdW1wICBmcm9tICBmaWxlICBwb3NpdGlvbiAgMHg0ODAgKD0xMDI0KzEyOCkgb253YXJkcy4gIFRoZSBgKycgc2lnbgorICAgICAgIG1lYW5zICJyZWxhdGl2ZSB0byB0aGUgY3VycmVudCBwb3NpdGlvbiIsIHRodXMgdGhlIGAxMjgnIGFkZHMgdG8gdGhlIDFrCisgICAgICAgd2hlcmUgZGQgbGVmdCBvZmYuCisgICAgICAgJSAgc2ggLWMgJ2RkIG9mPXBsYWluX3NuaXBwZXQgYnM9MWsgY291bnQ9MTsgeHhkIC1zICsxMjggPiBoZXhfc25pcHBldCcKKyAgICAgICA8IGZpbGUKIAogICAgICAgIEhleGR1bXAgZnJvbSBmaWxlIHBvc2l0aW9uIDB4MTAwICggPSAxMDI0LTc2OCkgb24uCi0gICAgICAgJSBzaCAtYyAnZGQgb2Y9cGxhaW5fc25pcHBldCBicz0xayBjb3VudD0xOyB4eGQgLXMgKy03NjggPgotICAgICAgIGhleF9zbmlwcGV0JyA8IGZpbGUKKyAgICAgICAlIHNoIC1jICdkZCBvZj1wbGFpbl9zbmlwcGV0IGJzPTFrIGNvdW50PTE7IHh4ZCAtcyArLTc2OCA+IGhleF9zbmlwcGV0JworICAgICAgIDwgZmlsZQogCi0gICAgICAgSG93ZXZlciwgdGhpcyBpcyBhIHJhcmUgc2l0dWF0aW9uIGFuZCB0aGUgdXNlICBvZiAgYCsnICBpcwotICAgICAgIHJhcmVseSAgbmVlZGVkLiAgIHRoZSBhdXRob3IgcHJlZmVycyB0byBtb25pdG9yIHRoZSBlZmZlY3QKLSAgICAgICBvZiB4eGQgd2l0aCBzdHJhY2UoMSkgb3IgdHJ1c3MoMSksIHdoZW5ldmVyIC1zIGlzIHVzZWQuCisgICAgICAgSG93ZXZlciwgIHRoaXMgaXMgYSByYXJlIHNpdHVhdGlvbiBhbmQgdGhlIHVzZSBvZiBgKycgaXMgcmFyZWx5IG5lZWRlZC4KKyAgICAgICBUaGUgYXV0aG9yIHByZWZlcnMgdG8gbW9uaXRvciB0aGUgIGVmZmVjdCAgb2YgIHh4ZCAgd2l0aCAgc3RyYWNlKDEpICBvcgorICAgICAgIHRydXNzKDEpLCB3aGVuZXZlciAtcyBpcyB1c2VkLgogCiBFWEFNUExFUwotICAgICAgIFByaW50IGV2ZXJ5dGhpbmcgYnV0ICB0aGUgIGZpcnN0ICB0aHJlZSAgbGluZXMgIChoZXggIDB4MzAKLSAgICAgICBieXRlcykgb2YgZmlsZQotCi0KLQotTWFudWFsIHBhZ2UgZm9yIHh4ZCAgICAgICAgQXVndXN0IDE5OTYgICAgICAgICAgICAgICAgICAgICAgICAgIDMKLQotCi0KLQotCi1YWEQoMSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFhYRCgxKQotCi0KKyAgICAgICBQcmludCBldmVyeXRoaW5nIGJ1dCB0aGUgZmlyc3QgdGhyZWUgbGluZXMgKGhleCAweDMwIGJ5dGVzKSBvZiBmaWxlCiAgICAgICAgJSB4eGQgLXMgMHgzMCBmaWxlCiAKICAgICAgICBQcmludCAzIGxpbmVzIChoZXggMHgzMCBieXRlcykgZnJvbSB0aGUgZW5kIG9mIGZpbGUKICAgICAgICAlIHh4ZCAtcyAtMHgzMCBmaWxlCiAKLSAgICAgICBQcmludCAgMTIwICBieXRlcyBhcyBjb250aW51b3VzIGhleGR1bXAgd2l0aCA0MCBvY3RldHMgcGVyCi0gICAgICAgbGluZS4KKyAgICAgICBQcmludCAxMjAgYnl0ZXMgYXMgY29udGludW91cyBoZXhkdW1wIHdpdGggNDAgb2N0ZXRzIHBlciBsaW5lLgogICAgICAgICUgeHhkIC1sIDEyMCAtcHMgLWMgMjAgeHhkLjEKLSAgICAgICAyZTU0NDgyMDU4NTg0NDIwMzEyMDIyNGQ2MTZlNzU2MTZjMjA3MDYxCi0gICAgICAgNjc2NTIwNjY2ZjcyMjA3ODc4NjQyMjBhMmU1YzIyMGEyZTVjMjIyMAotICAgICAgIDMyMzE3Mzc0MjA0ZDYxNzkyMDMxMzkzOTM2MGEyZTVjMjIyMDRkNjEKLSAgICAgICA2ZTIwNzA2MTY3NjUyMDYxNzU3NDY4NmY3MjNhMGEyZTVjMjIyMDIwCi0gICAgICAgMjAyMDU0NmY2ZTc5MjA0ZTc1Njc2NTZlNzQyMDNjNzQ2ZjZlNzk0MAotICAgICAgIDczNjM3NDZlNzU2NzY1NmUyZTcwNzA3MDJlNjc3NTJlNjU2NDc1MmUKKyAgICAgICAyZTU0NDgyMDU4NTg0NDIwMzEyMDIyNDE3NTY3NzU3Mzc0MjAzMTM5CisgICAgICAgMzkzNjIyMjAyMjRkNjE2ZTc1NjE2YzIwNzA2MTY3NjUyMDY2NmY3MgorICAgICAgIDIwNzg3ODY0MjIwYTJlNWMyMjBhMmU1YzIyMjAzMjMxNzM3NDIwNGQKKyAgICAgICA2MTc5MjAzMTM5MzkzNjBhMmU1YzIyMjA0ZDYxNmUyMDcwNjE2NzY1CisgICAgICAgMjA2MTc1NzQ2ODZmNzIzYTBhMmU1YzIyMjAyMDIwMjA1NDZmNmU3OQorICAgICAgIDIwNGU3NTY3NjU2ZTc0MjAzYzc0NmY2ZTc5NDA3MzYzNzQ2ZTc1NjcKIAotICAgICAgIEhleGR1bXAgdGhlIGZpcnN0IDEyMCBieXRlcyAgb2YgIHRoaXMgIG1hbiAgcGFnZSAgd2l0aCAgMTIKLSAgICAgICBvY3RldHMgcGVyIGxpbmUuCisgICAgICAgSGV4ZHVtcCB0aGUgZmlyc3QgMTIwIGJ5dGVzIG9mIHRoaXMgbWFuIHBhZ2Ugd2l0aCAxMiBvY3RldHMgcGVyIGxpbmUuCiAgICAgICAgJSB4eGQgLWwgMTIwIC1jIDEyIHh4ZC4xCi0gICAgICAgMDAwMDAwMDogMmU1NCA0ODIwIDU4NTggNDQyMCAzMTIwIDIyNGQgIC5USCBYWEQgMSAiTQotICAgICAgIDAwMDAwMGM6IDYxNmUgNzU2MSA2YzIwIDcwNjEgNjc2NSAyMDY2ICBhbnVhbCBwYWdlIGYKLSAgICAgICAwMDAwMDE4OiA2ZjcyIDIwNzggNzg2NCAyMjBhIDJlNWMgMjIwYSAgb3IgeHhkIi4uXCIuCi0gICAgICAgMDAwMDAyNDogMmU1YyAyMjIwIDMyMzEgNzM3NCAyMDRkIDYxNzkgIC5cIiAyMXN0IE1heQotICAgICAgIDAwMDAwMzA6IDIwMzEgMzkzOSAzNjBhIDJlNWMgMjIyMCA0ZDYxICAgMTk5Ni4uXCIgTWEKLSAgICAgICAwMDAwMDNjOiA2ZTIwIDcwNjEgNjc2NSAyMDYxIDc1NzQgNjg2ZiAgbiBwYWdlIGF1dGhvCi0gICAgICAgMDAwMDA0ODogNzIzYSAwYTJlIDVjMjIgMjAyMCAyMDIwIDU0NmYgIHI6Li5cIiAgICBUbwotICAgICAgIDAwMDAwNTQ6IDZlNzkgMjA0ZSA3NTY3IDY1NmUgNzQyMCAzYzc0ICBueSBOdWdlbnQgPHQKLSAgICAgICAwMDAwMDYwOiA2ZjZlIDc5NDAgNzM2MyA3NDZlIDc1NjcgNjU2ZSAgb255QHNjdG51Z2VuCi0gICAgICAgMDAwMDA2YzogMmU3MCA3MDcwIDJlNjcgNzUyZSA2NTY0IDc1MmUgIC5wcHAuZ3UuZWR1LgorICAgICAgIDAwMDAwMDA6IDJlNTQgNDgyMCA1ODU4IDQ0MjAgMzEyMCAyMjQxICAuVEggWFhEIDEgIkEKKyAgICAgICAwMDAwMDBjOiA3NTY3IDc1NzMgNzQyMCAzMTM5IDM5MzYgMjIyMCAgdWd1c3QgMTk5NiIKKyAgICAgICAwMDAwMDE4OiAyMjRkIDYxNmUgNzU2MSA2YzIwIDcwNjEgNjc2NSAgIk1hbnVhbCBwYWdlCisgICAgICAgMDAwMDAyNDogMjA2NiA2ZjcyIDIwNzggNzg2NCAyMjBhIDJlNWMgICBmb3IgeHhkIi4uXAorICAgICAgIDAwMDAwMzA6IDIyMGEgMmU1YyAyMjIwIDMyMzEgNzM3NCAyMDRkICAiLi5cIiAyMXN0IE0KKyAgICAgICAwMDAwMDNjOiA2MTc5IDIwMzEgMzkzOSAzNjBhIDJlNWMgMjIyMCAgYXkgMTk5Ni4uXCIKKyAgICAgICAwMDAwMDQ4OiA0ZDYxIDZlMjAgNzA2MSA2NzY1IDIwNjEgNzU3NCAgTWFuIHBhZ2UgYXV0CisgICAgICAgMDAwMDA1NDogNjg2ZiA3MjNhIDBhMmUgNWMyMiAyMDIwIDIwMjAgIGhvcjouLlwiCisgICAgICAgMDAwMDA2MDogNTQ2ZiA2ZTc5IDIwNGUgNzU2NyA2NTZlIDc0MjAgIFRvbnkgTnVnZW50CisgICAgICAgMDAwMDA2YzogM2M3NCA2ZjZlIDc5NDAgNzM2MyA3NDZlIDc1NjcgIDx0b255QHNjdG51ZwogCiAgICAgICAgRGlzcGxheSBqdXN0IHRoZSBkYXRlIGZyb20gdGhlIGZpbGUgeHhkLjEKLSAgICAgICAlIHh4ZCAtcyAweDI4IC1sIDEyIC1jIDEyIHh4ZC4xCi0gICAgICAgMDAwMDAyODogMzIzMSA3Mzc0IDIwNGQgNjE3OSAyMDMxIDM5MzkgIDIxc3QgTWF5IDE5OQorICAgICAgICUgeHhkIC1zIDB4MzYgLWwgMTMgLWMgMTMgeHhkLjEKKyAgICAgICAwMDAwMDM2OiAzMjMxIDczNzQgMjA0ZCA2MTc5IDIwMzEgMzkzOSAzNiAgMjFzdCBNYXkgMTk5NgogCi0gICAgICAgQ29weSAgaW5wdXRfZmlsZSAgdG8gIG91dHB1dF9maWxlIGFuZCBwcmVwZW5kIDEwMCBieXRlcyBvZgotICAgICAgIHZhbHVlIDB4MDAuCisgICAgICAgQ29weSBpbnB1dF9maWxlIHRvIG91dHB1dF9maWxlIGFuZCBwcmVwZW5kIDEwMCBieXRlcyBvZiB2YWx1ZSAweDAwLgogICAgICAgICUgeHhkIGlucHV0X2ZpbGUgfCB4eGQgLXIgLXMgMTAwID4gb3V0cHV0X2ZpbGUKIAogICAgICAgIFBhdGNoIHRoZSBkYXRlIGluIHRoZSBmaWxlIHh4ZC4xCi0gICAgICAgJSBlY2hvICcwMDAwMDI5OiAzNTc0IDY4JyB8IHh4ZCAtciAtIHh4ZC4xCi0gICAgICAgJSB4eGQgLXMgMHgyOCAtbCAxMiAtYyAxMiB4eGQuMQotICAgICAgIDAwMDAwMjg6IDMyMzUgNzQ2OCAyMDRkIDYxNzkgMjAzMSAzOTM5ICAyNXRoIE1heSAxOTkKKyAgICAgICAlIGVjaG8gJzAwMDAwMzc6IDM1NzQgNjgnIHwgeHhkIC1yIC0geHhkLjEKKyAgICAgICAlIHh4ZCAtcyAweDM2IC1sIDEzIC1jIDEzIHh4ZC4xCisgICAgICAgMDAwMDAzNjogMzIzNSA3NDY4IDIwNGQgNjE3OSAyMDMxIDM5MzkgMzYgIDI1dGggTWF5IDE5OTYKIAotICAgICAgIENyZWF0ZSBhIDY1NTM3IGJ5dGUgZmlsZSB3aXRoIGFsbCBieXRlcyAweDAwLCAgZXhjZXB0ICBmb3IKLSAgICAgICB0aGUgbGFzdCBvbmUgd2hpY2ggaXMgJ0EnIChoZXggMHg0MSkuCisgICAgICAgQ3JlYXRlICBhICA2NTUzNyBieXRlIGZpbGUgd2l0aCBhbGwgYnl0ZXMgMHgwMCwgZXhjZXB0IGZvciB0aGUgbGFzdCBvbmUKKyAgICAgICB3aGljaCBpcyAnQScgKGhleCAweDQxKS4KICAgICAgICAlIGVjaG8gJzAxMDAwMDogNDEnIHwgeHhkIC1yID4gZmlsZQogCiAgICAgICAgSGV4ZHVtcCB0aGlzIGZpbGUgd2l0aCBhdXRvc2tpcC4KQEAgLTI1NCwzNCArMTk3LDIxIEBACiAgICAgICAgKgogICAgICAgIDAwMGZmZmM6IDAwMDAgMDAwMCA0MCAgICAgICAgICAgICAgICAgICAuLi4uQQogCi0gICAgICAgQ3JlYXRlICBhICAxICBieXRlIGZpbGUgY29udGFpbmluZyBhIHNpbmdsZSAnQScgY2hhcmFjdGVyLgotICAgICAgIFRoZSBudW1iZXIgYWZ0ZXIgJy1yIC1zJyBhZGRzIHRvIHRoZSBsaW5lbnVtYmVycyBmb3VuZCAgaW4KLQotCi0KLU1hbnVhbCBwYWdlIGZvciB4eGQgICAgICAgIEF1Z3VzdCAxOTk2ICAgICAgICAgICAgICAgICAgICAgICAgICA0Ci0KLQotCi0KLQotWFhEKDEpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBYWEQoMSkKLQotCi0gICAgICAgdGhlIGZpbGU7IGluIGVmZmVjdCwgdGhlIGxlYWRpbmcgYnl0ZXMgYXJlIHN1cHByZXNzZWQuCisgICAgICAgQ3JlYXRlIGEgMSBieXRlIGZpbGUgY29udGFpbmluZyBhIHNpbmdsZSAgJ0EnICBjaGFyYWN0ZXIuICAgVGhlICBudW1iZXIKKyAgICAgICBhZnRlciAnLXIgLXMnIGFkZHMgdG8gdGhlIGxpbmVudW1iZXJzIGZvdW5kIGluIHRoZSBmaWxlOyBpbiBlZmZlY3QsIHRoZQorICAgICAgIGxlYWRpbmcgYnl0ZXMgYXJlIHN1cHByZXNzZWQuCiAgICAgICAgJSBlY2hvICcwMTAwMDA6IDQxJyB8IHh4ZCAtciAtcyAtMHgxMDAwMCA+IGZpbGUKIAotICAgICAgIFVzZSAgeHhkICBhcyAgYSAgZmlsdGVyIHdpdGhpbiBhbiBlZGl0b3Igc3VjaCBhcyB2aW0oMSkgdG8KLSAgICAgICBoZXhkdW1wIGEgcmVnaW9uIG1hcmtlZCBiZXR3ZWVuIGBhJyBhbmQgYHonLgorICAgICAgIFVzZSB4eGQgYXMgYSBmaWx0ZXIgd2l0aGluIGFuIGVkaXRvciBzdWNoIGFzIHZpbSgxKSB0byBoZXhkdW1wIGEgcmVnaW9uCisgICAgICAgbWFya2VkIGJldHdlZW4gYGEnIGFuZCBgeicuCiAgICAgICAgOidhLCd6IXh4ZAogCi0gICAgICAgVXNlIHh4ZCBhcyBhIGZpbHRlciB3aXRoaW4gYW4gZWRpdG9yICBzdWNoICBhcyAgdmltKDEpICB0bwotICAgICAgIHJlY292ZXIgYSBiaW5hcnkgaGV4ZHVtcCBtYXJrZWQgYmV0d2VlbiBgYScgYW5kIGB6Jy4KKyAgICAgICBVc2UgeHhkIGFzIGEgZmlsdGVyIHdpdGhpbiBhbiBlZGl0b3Igc3VjaCBhcyB2aW0oMSkgdG8gcmVjb3ZlciBhIGJpbmFyeQorICAgICAgIGhleGR1bXAgbWFya2VkIGJldHdlZW4gYGEnIGFuZCBgeicuCiAgICAgICAgOidhLCd6IXh4ZCAtcgogCi0gICAgICAgVXNlICB4eGQgIGFzICBhICBmaWx0ZXIgd2l0aGluIGFuIGVkaXRvciBzdWNoIGFzIHZpbSgxKSB0bwotICAgICAgIHJlY292ZXIgb25lIGxpbmUgb2YgYSBoZXhkdW1wLiAgTW92ZSB0aGUgY3Vyc29yICBvdmVyICB0aGUKLSAgICAgICBsaW5lIGFuZCB0eXBlOgorICAgICAgIFVzZSB4eGQgYXMgYSBmaWx0ZXIgd2l0aGluIGFuIGVkaXRvciBzdWNoIGFzIHZpbSgxKSB0byByZWNvdmVyIG9uZSBsaW5lCisgICAgICAgb2YgYSBoZXhkdW1wLiAgTW92ZSB0aGUgY3Vyc29yIG92ZXIgdGhlIGxpbmUgYW5kIHR5cGU6CiAgICAgICAgISF4eGQgLXIKIAogICAgICAgIFJlYWQgc2luZ2xlIGNoYXJhY3RlcnMgZnJvbSBhIHNlcmlhbCBsaW5lCkBAIC0yOTUsOCArMjI1LDcgQEAKIAogICAgICAgIDAgICAgICBubyBlcnJvcnMgZW5jb3VudGVyZWQuCiAKLSAgICAgICAtMSAgICAgb3BlcmF0aW9uICBub3Qgc3VwcG9ydGVkICggeHhkIC1yIC1pIHN0aWxsIGltcG9zc2ktCi0gICAgICAgICAgICAgIGJsZSkuCisgICAgICAgLTEgICAgIG9wZXJhdGlvbiBub3Qgc3VwcG9ydGVkICggeHhkIC1yIC1pIHN0aWxsIGltcG9zc2libGUpLgogCiAgICAgICAgMSAgICAgIGVycm9yIHdoaWxlIHBhcnNpbmcgb3B0aW9ucy4KIApAQCAtMzEwLDkgKzIzOSw4IEBACiAgICAgICAgdXVlbmNvZGUoMSksIHV1ZGVjb2RlKDEpLCBwYXRjaCgxKQogCiBXQVJOSU5HUwotICAgICAgIFRoZSB0b29scyAgd2VpcmRuZXNzICBtYXRjaGVzICBpdHMgIGNyZWF0b3JzICBicmFpbi4gICBVc2UKLSAgICAgICBlbnRpcmVseSAgYXQgeW91ciBvd24gcmlzay4gQ29weSBmaWxlcy4gVHJhY2UgaXQuIEJlY29tZSBhCi0gICAgICAgd2l6YXJkLgorICAgICAgIFRoZSAgdG9vbHMgIHdlaXJkbmVzcyBtYXRjaGVzIGl0cyBjcmVhdG9ycyBicmFpbi4gIFVzZSBlbnRpcmVseSBhdCB5b3VyCisgICAgICAgb3duIHJpc2suIENvcHkgZmlsZXMuIFRyYWNlIGl0LiBCZWNvbWUgYSB3aXphcmQuCiAKIFZFUlNJT04KICAgICAgICBUaGlzIG1hbnVhbCBwYWdlIGRvY3VtZW50cyB4eGQgdmVyc2lvbiAxLjcKQEAgLTMyMiw3NSArMjUwLDE0IEBACiAgICAgICAgPGpud2VpZ2VyQGluZm9ybWF0aWsudW5pLWVybGFuZ2VuLmRlPgogCiAgICAgICAgRGlzdHJpYnV0ZSBmcmVlbHkgYW5kIGNyZWRpdCBtZSwKLQotCi0KLU1hbnVhbCBwYWdlIGZvciB4eGQgICAgICAgIEF1Z3VzdCAxOTk2ICAgICAgICAgICAgICAgICAgICAgICAgICA1Ci0KLQotCi0KLQotWFhEKDEpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBYWEQoMSkKLQotCiAgICAgICAgbWFrZSBtb25leSBhbmQgc2hhcmUgd2l0aCBtZSwKICAgICAgICBsb3NlIG1vbmV5IGFuZCBkb24ndCBhc2sgbWUuCiAKICAgICAgICBNYW51YWwgcGFnZSBzdGFydGVkIGJ5IFRvbnkgTnVnZW50CiAgICAgICAgPHRvbnlAc2N0bnVnZW4ucHBwLmd1LmVkdS5hdT4gPFQuTnVnZW50QHNjdC5ndS5lZHUuYXU+Ci0gICAgICAgU21hbGwgIGNoYW5nZXMgIGJ5ICBCcmFtICBNb29sZW5hYXIuICAgRWRpdGVkICBieSAgSnVlcmdlbgotICAgICAgIFdlaWdlcnQuCisgICAgICAgU21hbGwgY2hhbmdlcyBieSBCcmFtIE1vb2xlbmFhci4gIEVkaXRlZCBieSBKdWVyZ2VuIFdlaWdlcnQuCiAKIAogCiAKLQotCi0KLQotCi0KLQotCi0KLQotCi0KLQotCi0KLQotCi0KLQotCi0KLQotCi0KLQotCi0KLQotCi0KLQotCi0KLQotCi0KLQotCi0KLQotCi0KLQotCi0KLQotTWFudWFsIHBhZ2UgZm9yIHh4ZCAgICAgICAgQXVndXN0IDE5OTYgICAgICAgICAgICAgICAgICAgICAgICAgIDYKLQotCitNYW51YWwgcGFnZSBmb3IgeHhkICAgICAgICAgICAgICAgQXVndXN0IDE5OTYgICAgICAgICAgICAgICAgICAgICAgICAgICBYWEQoMSkK