ZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL2V2YWwudHh0IGIvcnVudGltZS9kb2MvZXZhbC50eHQKaW5kZXggYmNjN2ZhMy4uMTJkOTUwNCAxMDA2NDQKLS0tIGEvcnVudGltZS9kb2MvZXZhbC50eHQKKysrIGIvcnVudGltZS9kb2MvZXZhbC50eHQKQEAgLTEsNCArMSw0IEBACi0qZXZhbC50eHQqCUZvciBWaW0gdmVyc2lvbiA3LjMuICBMYXN0IGNoYW5nZTogMjAxMSBKdW4gMTkKKypldmFsLnR4dCoJRm9yIFZpbSB2ZXJzaW9uIDcuMy4gIExhc3QgY2hhbmdlOiAyMDExIEp1bCAxMwogCiAKIAkJICBWSU0gUkVGRVJFTkNFIE1BTlVBTAkgIGJ5IEJyYW0gTW9vbGVuYWFyCkBAIC0yMjc3LDcgKzIyNzcsOCBAQAogPAkJVGhlIGN1cnJlbnQgJ2VuY29kaW5nJyBpcyB1c2VkLiAgRXhhbXBsZSBmb3IgInV0Zi04IjogPgogCQkJY2hhcjJucigi4SIpCQlyZXR1cm5zIDIyNQogCQkJY2hhcjJucigi4SJbMF0pCQlyZXR1cm5zIDE5NQotPAkJfG5yMmNoYXIoKXwgZG9lcyB0aGUgb3Bwb3NpdGUuCis8CQlBIGNvbWJpbmluZyBjaGFyYWN0ZXIgaXMgYSBzZXBhcmF0ZSBjaGFyYWN0ZXIuCisJCXxucjJjaGFyKCl8IGRvZXMgdGhlIG9wcG9zaXRlLgogCiBjaW5kZW50KHtsbnVtfSkJCQkJCQkqY2luZGVudCgpKgogCQlHZXQgdGhlIGFtb3VudCBvZiBpbmRlbnQgZm9yIGxpbmUge2xudW19IGFjY29yZGluZyB0aGUgQwpAQCAtNTk2OCw3ICs1OTY5LDcgQEAKIAkJV2hlbiAndmlydHVhbGVkaXQnIGlzIHVzZWQge2V4cHJ9IGNhbiBiZSBbbG51bSwgY29sLCBvZmZdLCB3aGVyZQogCQkib2ZmIiBpcyB0aGUgb2Zmc2V0IGluIHNjcmVlbiBjb2x1bW5zIGZyb20gdGhlIHN0YXJ0IG9mIHRoZQogCQljaGFyYWN0ZXIuICBFLmcuLCBhIHBvc2l0aW9uIHdpdGhpbiBhIDxUYWI+IG9yIGFmdGVyIHRoZSBsYXN0Ci0JCWNoYXJhY3Rlci4KKwkJY2hhcmFjdGVyLiAgV2hlbiAib2ZmIiBpcyBvbWl0dGVkIHplcm8gaXMgdXNlZC4KIAkJV2hlbiBWaXJ0dWFsIGVkaXRpbmcgaXMgYWN0aXZlIGluIHRoZSBjdXJyZW50IG1vZGUsIGEgcG9zaXRpb24KIAkJYmV5b25kIHRoZSBlbmQgb2YgdGhlIGxpbmUgY2FuIGJlIHJldHVybmVkLiB8J3ZpcnR1YWxlZGl0J3wKIAkJVGhlIGFjY2VwdGVkIHBvc2l0aW9ucyBhcmU6CmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy9pbmRlbnQudHh0IGIvcnVudGltZS9kb2MvaW5kZW50LnR4dAppbmRleCA0NGM3NmMyLi43NzY3Y2U4IDEwMDY0NAotLS0gYS9ydW50aW1lL2RvYy9pbmRlbnQudHh0CisrKyBiL3J1bnRpbWUvZG9jL2luZGVudC50eHQKQEAgLTEsNCArMSw0IEBACi0qaW5kZW50LnR4dCogICAgRm9yIFZpbSB2ZXJzaW9uIDcuMy4gIExhc3QgY2hhbmdlOiAyMDExIE1heSAzMQorKmluZGVudC50eHQqICAgIEZvciBWaW0gdmVyc2lvbiA3LjMuICBMYXN0IGNoYW5nZTogMjAxMSBKdWwgMTUKIAogCiAJCSAgVklNIFJFRkVSRU5DRSBNQU5VQUwgICAgYnkgQnJhbSBNb29sZW5hYXIKQEAgLTQ4Niw5ICs0ODYsMTAgQEAKIAkJICAgICApCQkJCSAgICkKIDwKIAkJCQkqamF2YS1jaW5vcHRpb25zKiAqamF2YS1pbmRlbnRpbmcqICpjaW5vLWoqCi0Jak4gICAgSW5kZW50IGphdmEgYW5vbnltb3VzIGNsYXNzZXMgY29ycmVjdGx5LiAgVGhlIHZhbHVlICdOJyBpcwotCSAgICAgIGN1cnJlbnRseSB1bnVzZWQgYnV0IG11c3QgYmUgbm9uLXplcm8gKGUuZy4gJ2oxJykuICAnajEnIHdpbGwKLQkgICAgICBpbmRlbnQgZm9yIGV4YW1wbGUgdGhlIGZvbGxvd2luZyBjb2RlIHNuaXBwZXQgY29ycmVjdGx5OiA+CisJak4gICAgSW5kZW50IEphdmEgYW5vbnltb3VzIGNsYXNzZXMgY29ycmVjdGx5LiAgQWxzbyB3b3JrcyB3ZWxsIGZvcgorCSAgICAgIEphdmFzY3JpcHQuICBUaGUgdmFsdWUgJ04nIGlzIGN1cnJlbnRseSB1bnVzZWQgYnV0IG11c3QgYmUKKwkgICAgICBub24temVybyAoZS5nLiAnajEnKS4gICdqMScgd2lsbCBpbmRlbnQgZm9yIGV4YW1wbGUgdGhlCisJICAgICAgZm9sbG93aW5nIGNvZGUgc25pcHBldCBjb3JyZWN0bHk6ID4KIAogCQlvYmplY3QuYWRkKG5ldyBDaGFuZ2VMaXN0ZW5lcigpIHsKIAkJICAgIHB1YmxpYyB2b2lkIHN0YXRlQ2hhbmdlZChDaGFuZ2VFdmVudCBlKSB7CkBAIC00OTksNyArNTAwLDggQEAKIAkJCSpqYXZhc2NyaXB0LWNpbm9wdGlvbnMqICpqYXZhc2NyaXB0LWluZGVudGluZyogKmNpbm8tSioKIAlKTiAgICBJbmRlbnQgSmF2YVNjcmlwdCBvYmplY3QgZGVjbGFyYXRpb25zIGNvcnJlY3RseSBieSBub3QgY29uZnVzaW5nCiAJICAgICAgdGhlbSB3aXRoIGxhYmVscy4gIFRoZSB2YWx1ZSAnTicgaXMgY3VycmVudGx5IHVudXNlZCBidXQgbXVzdCBiZSAKLQkgICAgICBub24temVybyAoZS5nLiAnSjEnKS4gPgorCSAgICAgIG5vbi16ZXJvIChlLmcuICdKMScpLiAgSWYgeW91IGVuYWJsZSB0aGlzIHlvdSBwcm9iYWJseSBhbHNvIHdhbnQKKwkgICAgICB0byBzZXQgfGNpbm8tanwuID4KIAogCQl2YXIgYmFyID0gewogCQkgICAgZm9vOiB7CmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy9tYnl0ZS50eHQgYi9ydW50aW1lL2RvYy9tYnl0ZS50eHQKaW5kZXggYzRmMjI3Yi4uNjZhZjdiNCAxMDA2NDQKLS0tIGEvcnVudGltZS9kb2MvbWJ5dGUudHh0CisrKyBiL3J1bnRpbWUvZG9jL21ieXRlLnR4dApAQCAtMSw0ICsxLDQgQEAKLSptYnl0ZS50eHQqICAgICBGb3IgVmltIHZlcnNpb24gNy4zLiAgTGFzdCBjaGFuZ2U6IDIwMTEgRmViIDAxCisqbWJ5dGUudHh0KiAgICAgRm9yIFZpbSB2ZXJzaW9uIDcuMy4gIExhc3QgY2hhbmdlOiAyMDExIEp1bCAxOAogCiAKIAkJICBWSU0gUkVGRVJFTkNFIE1BTlVBTAkgIGJ5IEJyYW0gTW9vbGVuYWFyIGV0IGFsLgpAQCAtMTMwNiw4ICsxMzA2LDggQEAKIGNoYXJhY3Rlci4pICBBbiBleGNlcHRpb24gaXMgTlVMICh6ZXJvKSB3aGljaCBpcyBkaXNwbGF5ZWQgYXMgIjwwMD4iLgogCiBJbiB0aGUgZmlsZSBhbmQgYnVmZmVyIHRoZSBmdWxsIHJhbmdlIG9mIFVuaWNvZGUgY2hhcmFjdGVycyBjYW4gYmUgdXNlZCAoMzEKLWJpdHMpLiAgSG93ZXZlciwgZGlzcGxheWluZyBvbmx5IHdvcmtzIGZvciAxNiBiaXQgY2hhcmFjdGVycywgYW5kIG9ubHkgZm9yIHRoZQotY2hhcmFjdGVycyBwcmVzZW50IGluIHRoZSBzZWxlY3RlZCBmb250LgorYml0cykuICBIb3dldmVyLCBkaXNwbGF5aW5nIG9ubHkgd29ya3MgZm9yIHRoZSBjaGFyYWN0ZXJzIHByZXNlbnQgaW4gdGhlCitzZWxlY3RlZCBmb250LgogCiBVc2VmdWwgY29tbWFuZHM6CiAtICJnYSIgc2hvd3MgdGhlIGRlY2ltYWwsIGhleGFkZWNpbWFsIGFuZCBvY3RhbCB2YWx1ZSBvZiB0aGUgY2hhcmFjdGVyIHVuZGVyCmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy9vcHRpb25zLnR4dCBiL3J1bnRpbWUvZG9jL29wdGlvbnMudHh0CmluZGV4IDdkOGY5MjYuLjNiZmMwNWEgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvZG9jL29wdGlvbnMudHh0CisrKyBiL3J1bnRpbWUvZG9jL29wdGlvbnMudHh0CkBAIC0xLDQgKzEsNCBAQAotKm9wdGlvbnMudHh0KglGb3IgVmltIHZlcnNpb24gNy4zLiAgTGFzdCBjaGFuZ2U6IDIwMTEgSnVuIDEyCisqb3B0aW9ucy50eHQqCUZvciBWaW0gdmVyc2lvbiA3LjMuICBMYXN0IGNoYW5nZTogMjAxMSBKdWwgMDcKIAogCiAJCSAgVklNIFJFRkVSRU5DRSBNQU5VQUwJICBieSBCcmFtIE1vb2xlbmFhcgpAQCAtNjAwMiw3ICs2MDAyLDggQEAKIAkJCXtub3QgaW4gVml9CiAJV2hlbiBvbiwgdXNlIHRlbXAgZmlsZXMgZm9yIHNoZWxsIGNvbW1hbmRzLiAgV2hlbiBvZmYgdXNlIGEgcGlwZS4KIAlXaGVuIHVzaW5nIGEgcGlwZSBpcyBub3QgcG9zc2libGUgdGVtcCBmaWxlcyBhcmUgdXNlZCBhbnl3YXkuCi0JQ3VycmVudGx5IGEgcGlwZSBpcyBvbmx5IHN1cHBvcnRlZCBvbiBVbml4LiAgWW91IGNhbiBjaGVjayBpdCB3aXRoOiA+CisJQ3VycmVudGx5IGEgcGlwZSBpcyBvbmx5IHN1cHBvcnRlZCBvbiBVbml4IGFuZCBNUy1XaW5kb3dzIDJLIGFuZAorCWxhdGVyLiAgWW91IGNhbiBjaGVjayBpdCB3aXRoOiA+CiAJCTppZiBoYXMoImZpbHRlcnBpcGUiKQogPAlUaGUgYWR2YW50YWdlIG9mIHVzaW5nIGEgcGlwZSBpcyB0aGF0IG5vYm9keSBjYW4gcmVhZCB0aGUgdGVtcCBmaWxlCiAJYW5kIHRoZSAnc2hlbGwnIGNvbW1hbmQgZG9lcyBub3QgbmVlZCB0byBzdXBwb3J0IHJlZGlyZWN0aW9uLgpkaWZmIC0tZ2l0IGEvcnVudGltZS9kb2Mvc3ludGF4LnR4dCBiL3J1bnRpbWUvZG9jL3N5bnRheC50eHQKaW5kZXggZmY4MjQzYS4uYWQzY2NjYyAxMDA2NDQKLS0tIGEvcnVudGltZS9kb2Mvc3ludGF4LnR4dAorKysgYi9ydW50aW1lL2RvYy9zeW50YXgudHh0CkBAIC0xLDQgKzEsNCBAQAotKnN5bnRheC50eHQqCUZvciBWaW0gdmVyc2lvbiA3LjMuICBMYXN0IGNoYW5nZTogMjAxMSBNYXkgMDYKKypzeW50YXgudHh0KglGb3IgVmltIHZlcnNpb24gNy4zLiAgTGFzdCBjaGFuZ2U6IDIwMTEgSnVsIDE4CiAKIAogCQkgIFZJTSBSRUZFUkVOQ0UgTUFOVUFMCSAgYnkgQnJhbSBNb29sZW5hYXIKQEAgLTg2NiwxMyArODY2LDEzIEBACiBEZXRlY3Rpbmcgd2hldGhlciBhIGZpbGUgaXMgY3NoIG9yIHRjc2ggaXMgbm90b3Jpb3VzbHkgaGFyZC4gIFNvbWUgc3lzdGVtcwogc3ltbGluayAvYmluL2NzaCB0byAvYmluL3Rjc2gsIG1ha2luZyBpdCBhbG1vc3QgaW1wb3NzaWJsZSB0byBkaXN0aW5ndWlzaAogYmV0d2VlbiBjc2ggYW5kIHRjc2guICBJbiBjYXNlIFZJTSBndWVzc2VzIHdyb25nIHlvdSBjYW4gc2V0IHRoZQotImZpbGV0eXBlX2NzaCIgdmFyaWFibGUuICBGb3IgdXNpbmcgY3NoOiA+Ci0KLQk6bGV0IGZpbGV0eXBlX2NzaCA9ICJjc2giCisiZmlsZXR5cGVfY3NoIiB2YXJpYWJsZS4gIEZvciB1c2luZyBjc2g6ICAqZzpmaWxldHlwZV9jc2gqCis+CisJOmxldCBnOmZpbGV0eXBlX2NzaCA9ICJjc2giCiAKIEZvciB1c2luZyB0Y3NoOiA+CiAKLQk6bGV0IGZpbGV0eXBlX2NzaCA9ICJ0Y3NoIgorCTpsZXQgZzpmaWxldHlwZV9jc2ggPSAidGNzaCIKIAogQW55IHNjcmlwdCB3aXRoIGEgdGNzaCBleHRlbnNpb24gb3IgYSBzdGFuZGFyZCB0Y3NoIGZpbGVuYW1lICgudGNzaHJjLAogdGNzaC50Y3NocmMsIHRjc2gubG9naW4pIHdpbGwgaGF2ZSBmaWxldHlwZSB0Y3NoLiAgQWxsIG90aGVyIHRjc2gvY3NoIHNjcmlwdHMKQEAgLTIzNzIsNiArMjM3MiwxMiBAQAogZGlzcGxheWVkIGxpbmUuICBUaGUgZGVmYXVsdCB2YWx1ZSBpcyAxMC4gIFRoZSBkaXNhZHZhbnRhZ2Ugb2YgdXNpbmcgYSBsYXJnZXIKIG51bWJlciBpcyB0aGF0IHJlZHJhd2luZyBjYW4gYmVjb21lIHNsb3cuCiAKK1ZpbSB0cmllcyB0byBndWVzcyB3aGF0IHR5cGUgYSAiLnIiIGZpbGUgaXMuICBJZiBpdCBjYW4ndCBiZSBkZXRlY3RlZCAoZnJvbQorY29tbWVudCBsaW5lcyksIHRoZSBkZWZhdWx0IGlzICJyIi4gIFRvIG1ha2UgdGhlIGRlZmF1bHQgcmV4eCBhZGQgdGhpcyBsaW5lIHRvCit5b3VyIC52aW1yYzogICpnOmZpbGV0eXBlX3IqCis+CisJOmxldCBnOmZpbGV0eXBlX3IgPSAiciIKKwogCiBSVUJZCQkJCQkJKnJ1YnkudmltKiAqZnQtcnVieS1zeW50YXgqCiAKZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL3RhZ3MgYi9ydW50aW1lL2RvYy90YWdzCmluZGV4IDcwYTM4MmEuLmU0NzJhM2IgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvZG9jL3RhZ3MKKysrIGIvcnVudGltZS9kb2MvdGFncwpAQCAtNTA5Niw2ICs1MDk2LDcgQEAKIGNwby0tCW9wdGlvbnMudHh0CS8qY3BvLS0qCiBjcG8tLglvcHRpb25zLnR4dAkvKmNwby0uKgogY3BvLS8Jb3B0aW9ucy50eHQJLypjcG8tXC8qCitjcG8tOwlvcHRpb25zLnR4dAkvKmNwby07KgogY3BvLTwJb3B0aW9ucy50eHQJLypjcG8tPCoKIGNwby0+CW9wdGlvbnMudHh0CS8qY3BvLT4qCiBjcG8tQQlvcHRpb25zLnR4dAkvKmNwby1BKgpAQCAtNTc4NCw2ICs1Nzg1LDggQEAKIGc6ZGVjYWRhLk1ha2UoKQlmdF9hZGEudHh0CS8qZzpkZWNhZGEuTWFrZSgpKgogZzpkZWNhZGEuTWFrZV9Db21tYW5kCWZ0X2FkYS50eHQJLypnOmRlY2FkYS5NYWtlX0NvbW1hbmQqCiBnOmRlY2FkYS5Vbml0X05hbWUoKQlmdF9hZGEudHh0CS8qZzpkZWNhZGEuVW5pdF9OYW1lKCkqCitnOmZpbGV0eXBlX2NzaAlzeW50YXgudHh0CS8qZzpmaWxldHlwZV9jc2gqCitnOmZpbGV0eXBlX3IJc3ludGF4LnR4dAkvKmc6ZmlsZXR5cGVfcioKIGc6Z25hdAlmdF9hZGEudHh0CS8qZzpnbmF0KgogZzpnbmF0LkVycm9yX0Zvcm1hdAlmdF9hZGEudHh0CS8qZzpnbmF0LkVycm9yX0Zvcm1hdCoKIGc6Z25hdC5GaW5kKCkJZnRfYWRhLnR4dAkvKmc6Z25hdC5GaW5kKCkqCmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy90b2RvLnR4dCBiL3J1bnRpbWUvZG9jL3RvZG8udHh0CmluZGV4IDA1NzI5NDguLjYxM2EyNWQgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvZG9jL3RvZG8udHh0CisrKyBiL3J1bnRpbWUvZG9jL3RvZG8udHh0CkBAIC0xLDQgKzEsNCBAQAotKnRvZG8udHh0KiAgICAgIEZvciBWaW0gdmVyc2lvbiA3LjMuICBMYXN0IGNoYW5nZTogMjAxMSBKdW4gMTkKKyp0b2RvLnR4dCogICAgICBGb3IgVmltIHZlcnNpb24gNy4zLiAgTGFzdCBjaGFuZ2U6IDIwMTEgSnVsIDE1CiAKIAogCQkgIFZJTSBSRUZFUkVOQ0UgTUFOVUFMCSAgYnkgQnJhbSBNb29sZW5hYXIKQEAgLTQwLDUyICs0MCwxMSBAQAogCiBEaXNjdXNzaW9uIGFib3V0IGNhbm9uaWNhbGl6YXRpb24gb2YgSGVicmV3LiAoUm9uIEFhcm9uLCAyMDExIEFwcmlsIDEwKQogCi1QYXRjaCB0byBmaXggZ2ogd2l0aCBjb3VudC4gKEphbWVzIFZlZ2EsIDIwMTEgSnVuIDEzKQotCi1QYXRjaCB0byBkaXNhbGxvdyBmb3JrKCkgd2hlbiBfX0FQUExFX18gaXMgZGVmaW5lZC4gKEhpc2FzaGkgVCBGdWppbmFrYSwgMjAxMAotTm92IDI1KQotCi03ICAgT3V0cHV0IGZvciAiOnNjcmlwdG5hbWVzIiBhbmQgIjpicmVha2xpc3QiIHNob3VsZCBzaG9ydGVuIHRoZSBmaWxlIG5hbWVzOgotICAgIHVzZSAifi8iIHdoZW4gcG9zc2libGUuCi1QYXRjaCBieSBKZWFuLVJlbmUgRGF2aWQsIDIwMTEgTWF5IDEuCi0KLUNpbmRlbnQgd3JvbmcgYWZ0ZXIgcGF0Y2ggNy4zLjIwMi4gKExlY2ggTG9yZW5zLCBpc3N1ZSA5KQotCi1QYXRjaCBmb3IgY2luZGVudCBmaXggd2l0aCBjbG9zaW5nIGJyYWNlIHBsYWNlbWVudCwgaW5jbHVkaW5nIHRlc3RzLgotKExlY2ggTG9yZW5zLCBpc3N1ZSAxMCwgMjAxMSBKdW4gMTIpCi0KLVBhdGNoIGZvciBiZXR0ZXIgI2lmIDAgc3ludGF4IGhpZ2hsaWdodGluZyBmb3IgQyBjb2RlLiAoQmVuIFNjaG1pZHQsIDIwMTEgSmFuCi0yMCkKLUNoYW5nZSB0byBDIHN5bnRheCBmb2xkaW5nIHRvIG1ha2UgaXQgd29yayBtdWNoIGZhc3RlciwgYnV0IGEgYml0IGxlc3MKLXJlbGlhYmxlLiAoTGVjaCBMb3JlbnMsIDIwMDkgTm92IDkpICBFbmFibGUgd2l0aCBhbiBvcHRpb24/Ci1Nb3N0IHRpbWUgaXMgc3BlbnQgaW4gaW5faWRfbGlzdCgpLgotVXBkYXRlZCB0byBtZXJnZSBib3RoIHBhdGNoZXMuIChCZW4gU2NobWlkdCwgMjAxMSBNYXkgMikKLQotR1RLOiBQYXRjaCB0byBmaXggbWVudSBwb3BwaW5nIGRvd24uIChIb25nIFh1LCAyMDEwIERlYyA0LCBEZWMgNSkKLVVwZGF0ZSAyMDExIEZlYiAzLgotCi1QYXRjaCB0byB1c2UgcGlwZXMgb24gV2luMzIuICAoVmluY2VudCBCZXJ0aG91eCwgMjAxMSBGZWIgMjgpCi1VcGRhdGUgTWFyIDEgdXNpbmcgJ3NoZWxsdGVtcCcuCi0KLVBhdGNoIHRvIGZpeCBDVFJMLVIgQ1RSTC1XIGluIHRoZSBjb21tYW5kIGxpbmUgd2hlbiB0aGUgY3Vyc29yIGlzIG5vdCBhdCB0aGUKLWVuZC4gKFR5cnUsIDIwMTEgSnVuIDYpCi0KIFBhdGNoIHRvIHN1cHBvcnQgVVRGLTggZm9yIEhhbmd1bC4gKFNoYXduIFkuSC4gS2ltLCAyMDExIE1heSAxKQogTmVlZHMgbW9yZSB3b3JrLgogCi1QYXRjaCB0byBtYWtlICI7IiBub3QgZ2V0IHN0dWNrIG9uICJ0IiBjb21tYW5kLiAoQ2hyaXN0aWFuIEJyYWJhbmR0LCAyMDExIE1heQotMjMpCi0KLVBhdGNoIHRvIGRvIG1vcmUgdGVzdGluZyBvZiBKYXZhc2NyaXB0IGluZGVudGluZy4gIFNvbWUgaXRlbXMgYXJlIHNyb25nLgotKEx1YyBEZXNjaGVuYXV4LCAyMDExIEp1biAxNCkKLQotImdoPERlbD4iIGRlbGV0ZXMgdGhlIGN1cnJlbnQgbGluZSwgZXhjZXB0IHdoZW4gaXQncyB0aGUgbGFzdCBsaW5lLgotSGludCBieSBDaHJpc3RpYW4gQnJhYmFuZHQsIDIwMTEgTWFyIDIyCi0KLSJlY2hvICdhYmMnID4gJyciIHJldHVybnMgMCBvciAxLCBkZXBlbmRpbmcgb24gJ2lnbm9yZWNhc2UnLgotbWJfc3RybmljbXAoKSBjaGVja3MgZm9yIGlsbGVnYWwgYW5kIHRydW5jYXRlZCBieXRlcyBhcmUgd3JvbmcuCi1TaG91bGQgYWxzbyBub3QgYXNzdW1lIHRoYXQgYnl0ZSBsZW5ndGggaXMgZXF1YWwgYmVmb3JlIGNhc2UgZm9sZGluZy4KLVBhdGNoIGJ5IEl2YW4gS3Jhc2lsbmlrb3YsIDIwMTEgTWF5IDI3LgorV2l0aCAidW5hbWVkcGx1cyIgaW4gJ2NsaXBib2FyZCcgcGFzdGluZyBpbiBWaXN1YWwgbW9kZSBjYXVzZXMgZXJyb3IgZm9yIGVtcHR5CityZWdpc3Rlci4gKE1pY2hhZWwgU2Vpd2FsZCwgMjAxMSBKdW4gMjgpCiAKIFRoZSA6eiBjb21tYW5kIGRvZXNuJ3Qgd29yayBleGFjdGx5IGFzIGl0IHNob3VsZC4gKENoYW5nWmh1byBDaGVuLCAyMDExIE1hciAyKQogQ29tcGFyZSB3aXRoIGhvdyBvbGQgVmkgd29ya3MgYW5kIHdpdGggcG9zaXggc3BlYy4gIHRlcm1pbmFsIGlzIDgwIHggMjQsCkBAIC05NCw2ICs1Myw3IEBACiAnY3Vyc29ybGluZScgaXMgZGlzcGxheWVkIHRvbyBzaG9ydCB3aGVuIHRoZXJlIGFyZSBjb25jZWFsZWQgY2hhcmFjdGVycyBhbmQKICdsaXN0JyBpcyBzZXQuICAoRGVubmlzIFByZWlzZXIpCiBQYXRjaCA3LjMuMTE2IHdhcyB0aGUgd3Jvbmcgc29sdXRpb24uCitDaHJpc3RpYW4gQnJhYmFuZHQgaGFzIGFub3RoZXIgaW5jb21wbGV0ZSBwYXRjaC4gKDIwMTEgSnVsIDEzKQogCiBXaXRoIGNvbmNlYWxlZCB0ZXh0IG1vdXNlIGNsaWNrIGRvZXNuJ3QgcHV0IHRoZSBjdXJzb3IgaW4gdGhlIHJpZ2h0IHBvc2l0aW9uLgogKEhlcmIgU2l0eikgIEZpeCBieSBDaHJpc3RpYW4gQnJhYmFuZHQsIDIwMTEgSnVuIDE2LiAgRG9lc24ndCB3b3JrIHByb3Blcmx5LApAQCAtMTE5LDggKzc5LDEzIEBACiBQYXRjaCB0byBhdXRvbWF0aWNhbGx5IGdldCB2ZXJzaW9uIG51bWJlciBpbnRvIE5TSVMuIChHdW9wZW5nIFdlbiwgMjAxMSBNYXkKIDI3KQogCitQYXRjaCB0byBhZGQgbW9yZSBjb21tYW5kIGNvbXBsZXRpb25zIChEb21pbmlxdWUgUGVsbGUsIDIwMTEgSnVuIDI1KQorCitQYXRjaCB0byBoYXZlIEd2aW1FeHQgbm90IHVzZSAiZWRpdCB3aXRoIGV4aXN0aW5nIFZpbSIgZW50cmllcy4KKyhKZXJvbWUgVnVhcmFuZCwgMjAxMSBKdW4gMjIpCisKIFBhdGNoIHRvIG1ha2UgY2hhcmFjdGVyIGNsYXNzZXMgd29yayB3aXRoIG11bHRpLWJ5dGUgY2hhcmFjdGVycy4KLShEb21pbmlxdWUgUGVsbGUsIDIwMTEgTWF5IDMxKQorKERvbWluaXF1ZSBQZWxsZSwgMjAxMSBNYXkgMzEsIHVwZGF0ZSBKdWx5IDExKQogCiBJbiBHVEsgR3ZpbSwgc2V0dGluZyAnbGluZXMnIGFuZCAnY29sdW1ucycgdG8gOTk5OTkgY2F1c2VzIGEgY3Jhc2ggKFRvbnkKIE1lY2hlbHluY2ssIDIwMTEgQXByIDI1KS4gIENhbiByZXByb2R1Y2UgdGhlIGNyYXNoIHNvbWV0aW1lczoKQEAgLTE0Myw2ICsxMDgsOSBAQAogZnVuY3Rpb24gdGhhdCByZXNldHMgZGlkX2N1cnNvcmhvbGQuCiBQYXRjaCBieSBDaHJpc3RpYW4gQnJhYmFuZHQsIDIwMTEgTWF5IDYuCiAKK3BvcHVwIGNvbXBsZXRpb24gbWVudSBjbG9zZXMgcXVpY2tseSB3aGVuIHRoZXJlIGlzIGEgZm9sZCBpbiB0aGUgYnVmZmVyLiAoSmFuCitDaHJpc3RvcGggRWJlcnNiYWNoLCAyMDExIEp1bCAzKQorCiBDdXJzb3JIb2xkIHJlcGVhdHMgdHlwZWQga2V5IHdoZW4gaXQncyB0aGUgc3RhcnQgb2YgYSBtYXBwaW5nLgogKFdpbGwgR3JheSwgMjAxMSBNYXIgMjMpCiBDaHJpc3RpYW4gQnJhYmFuZHQ6IHByb2JsZW0gaXMgdGhhdCBPUF9QRU5ESU5HIGlzbid0IHNldC4KQEAgLTE5Miw2ICsxNjAsMTAgQEAKIEhpZ2hsaWdodGluZyBzdG9wcyB3b3JraW5nIGFmdGVyIGNoYW5naW5nIGl0IG1hbnkgdGltZXMuICBTY3JpcHQgdG8gcmVwcm9kdWNlCiBpdDogUGFibG8gQ29udHJlcmFzLCAyMDEwIE9jdCAxMiAgV2luZG93cyBYUCBhbmQgNy4gIEZvbnQgaXMgbmV2ZXIgZnJlZWQ/CiAKK1doZW4gc2V0dGluZyBhIGxvY2FsIG9wdGlvbiB2YWx1ZSBmcm9tIHRoZSBnbG9iYWwgdmFsdWUsIGFkZCBhIHNjcmlwdCBJRCB0aGF0CitpbmRpY2F0ZXMgdGhpcywgc28gdGhhdCAiOnZlcmJvc2Ugc2V0IiBjYW4gZ2l2ZSBhIGhpbnQuICBDaGVjayB3aXRoIG9wdGlvbnMgaW4KK3RoZSBoZWxwIGZpbGUuCisKIEFmdGVyIHBhdGNoIDcuMy4wOTcgc3RpbGwgZ2V0IEUxNS4gKFl1a2loaXJvIE5ha2FkYWlyYSwgMjAxMSBKYW4gMTgpCiBBbHNvIGZvciBhbm90aGVyIGV4YW1wbGUgKFp5WCwgMjAxMSBKYW4gMjQpCiAKQEAgLTI1MSw2ICsyMjMsOSBAQAogIkwnSXRhbGllIiBub3RlZCBhcyBhIHNwZWxsIGVycm9yIGF0IHN0YXJ0IG9mIHRoZSBzZW50ZW5jZS4gKERvbWluaXF1ZSBQZWxsZSwKIDIwMTEgRmViIDI3KQogCitQYXRjaCB0byBmYWlsIGlmIGNvbmZpZ3VyZSBjYW4ndCBmaW5kIGFuIGludGVyZmFjZSwgc3VjaCBhcyBQeXRob24uCisoU2hsb21pIEZpc2gsIDIwMTEgSnVsIDExKQorCiBDb3B5L3Bhc3RlIGJldHdlZW4gVmltIGFuZCBHb29nbGUgY2hyb21lIGRvZXNuJ3Qgd29yayB3ZWxsIGZvciBtdWx0aS1ieXRlCiBjaGFyYWN0ZXJzLiAoQmVuIEhhc2tlbGwsIDIwMTAgU2VwIDE3KQogV2hlbiBwdXR0aW5nIHRleHQgaW4gdGhlIGN1dCBidWZmZXIgKHdoZW4gZXhpdGluZykgYW5kIGNvbnZlcnNpb24gZG9lc24ndCB3b3JrCkBAIC0zNDEsNyArMzE2LDcgQEAKIChBbnRvbmlvIENvbG9tYm8sIDIwMTAgRGVjIDE4KQogCiBQYXRjaDogTGV0IHJhcmUgd29yZCBoaWdobGlnaHRpbmcgb3ZlcnJ1bGUgZ29vZCB3b3JkIGhpZ2hsaWdodGluZy4KLShKYWtzb24gQS4gQXF1aW5vLCAyMDEwIEp1bCAzMCkKKyhKYWtzb24gQS4gQXF1aW5vLCAyMDEwIEp1bCAzMCwgYWdhaW4gMjAxMSBKdWwgMikKIAogUGF0Y2ggdG8gbWFrZSBtb3JlIGNoYXJhY3RlcnMgd29yayBpbiBkaWFsb2dzLiAoWWFua3dlaSBKaWEsIDIwMTAgQXVnIDQpCiAKQEAgLTQyOSw2ICs0MDQsOSBAQAogCiBQcm9ibGVtIHdpdGggc3RvcCBkaXJlY3RvcnkgaW4gZmluZGZpbGUoKS4gKEFkYW0gU2ltcGtpbnMsIDIwMDkgQXVnIDI2KQogCitVc2luZyAnXScgYXMgdGhlIGVuZCBvZiBhIHJhbmdlIGluIGEgcGF0dGVybiByZXF1aXJlcyBkb3VibGUgZXNjYXBpbmc6CisgICAgIC9bQC1cXF1dICAoQW5keSBXb2t1bGEsIDIwMTEgSnVuIDI4KQorCiBVbmRvIHByb2JsZW06IGxpbmUgbm90IHJlbW92ZWQgYXMgZXhwZWN0ZWQgd2hlbiB1c2luZyBzZXRsaW5lKCkgZnJvbSBJbnNlcnQKIG1vZGUuIChJc3JhZWwgQ2hhdWNhLCAyMDEwIE1heSAxMywgbW9yZSBpbiBzZWNvbmQgbXNnKQogQnJlYWsgdW5kbyB3aGVuIENUUkwtUiA9IGNoYW5nZXMgdGhlIHRleHQ/ICBPciBzYXZlIG1vcmUgbGluZXM/CkBAIC0xNTI1LDYgKzE1MDMsNyBAQAogLSAgIFBhdGNoIGZvciAnYnJlYWtpbmRlbnQnIG9wdGlvbjogcmVwZWF0IGluZGVudCBmb3Igd3JhcHBlZCBsaW5lLiAoVmFjbGF2CiAgICAgU21pbGF1ZXIsIDIwMDQgU2VwIDEzLCBmaXggT2N0IDMxLCB1cGRhdGUgMjAwNyBNYXkgMzApCiAgICAgVmVyc2lvbiBmb3IgbGF0ZXN0IE1hY1ZpbTogVG9iaWEgQ29uZm9ydG8sIDIwMDkgTm92IDIzCisgICAgTW9yZSByZWNlbnQgdmVyc2lvbjogaHR0cHM6Ly9yZXRyYWNpbGUubmV0L3dpa2kvVmltQnJlYWtJbmRlbnQKIDggICBBZGQgYSBmZXcgbW9yZSBjb21tYW5kIG5hbWVzIHRvIHRoZSBtZW51cy4gIFBhdGNoIGZyb20gSmlyaSBCcmV6aW5hCiAgICAgKDI4IGZlYiAyMDAyKS4gIFdpbGwgbWVzcyB0aGUgdHJhbnNsYXRpb25zLi4uCiA3ICAgQVRURU5USU9OIGRpYWxvZyBjaG9pY2VzIGFyZSBtb3JlIGxvZ2ljYWwgd2hlbiAiRGVsZXRlIGl0JyBhcHBlYXJzCg==