ZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL2FyYWJpYy50eHQgYi9ydW50aW1lL2RvYy9hcmFiaWMudHh0CmluZGV4IDg1OTEyNTMuLmYxM2E2NjMgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvZG9jL2FyYWJpYy50eHQKKysrIGIvcnVudGltZS9kb2MvYXJhYmljLnR4dApAQCAtMSw0ICsxLDQgQEAKLSphcmFiaWMudHh0KglGb3IgVmltIHZlcnNpb24gNy4wZi4gIExhc3QgY2hhbmdlOiAyMDA1IE1hciAyOQorKmFyYWJpYy50eHQqCUZvciBWaW0gdmVyc2lvbiA3LjBnLiAgTGFzdCBjaGFuZ2U6IDIwMDUgTWFyIDI5CiAKIAogCQkgIFZJTSBSRUZFUkVOQ0UgTUFOVUFMCSAgYnkgTmFkaW0gU2hhaWtsaQpkaWZmIC0tZ2l0IGEvcnVudGltZS9kb2MvYXV0b2NtZC50eHQgYi9ydW50aW1lL2RvYy9hdXRvY21kLnR4dAppbmRleCBjZjhhNDU3Li5iNzlhNWVmIDEwMDY0NAotLS0gYS9ydW50aW1lL2RvYy9hdXRvY21kLnR4dAorKysgYi9ydW50aW1lL2RvYy9hdXRvY21kLnR4dApAQCAtMSw0ICsxLDQgQEAKLSphdXRvY21kLnR4dCogICBGb3IgVmltIHZlcnNpb24gNy4wZi4gIExhc3QgY2hhbmdlOiAyMDA2IEFwciAyNQorKmF1dG9jbWQudHh0KiAgIEZvciBWaW0gdmVyc2lvbiA3LjBnLiAgTGFzdCBjaGFuZ2U6IDIwMDYgQXByIDMwCiAKIAogCQkgIFZJTSBSRUZFUkVOQ0UgTUFOVUFMICAgIGJ5IEJyYW0gTW9vbGVuYWFyCkBAIC0xNjIsNyArMTYyLDcgQEAKIAogICAgIDp2ZXJib3NlIGF1dG9jbWQgQnVmRW50ZXIKICAgICBGaWxlRXhwbG9yZXIgIEJ1ZkVudGVyCi0JKiAgICAgICAgIGNhbGwgczpMb2NhbEJyb3dzZShleHBhbmQoIjxhbWF0Y2g+IikpCisJKgkgIGNhbGwgczpMb2NhbEJyb3dzZShleHBhbmQoIjxhbWF0Y2g+IikpCiAJICAgIExhc3Qgc2V0IGZyb20gL3Vzci9zaGFyZS92aW0vdmltLTcuMC9wbHVnaW4vTmV0cndQbHVnaW4udmltCiA8CiBTZWUgfDp2ZXJib3NlLWNtZHwgZm9yIG1vcmUgaW5mb3JtYXRpb24uCkBAIC04ODQsOCArODg0LDggQEAKIHN0aWxsIGV4ZWN1dGVkLgogCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLTcuIEJ1ZmZlci1sb2NhbCBhdXRvY29tbWFuZHMgIAkqYXV0b2NtZC1idWZsb2NhbCogKmF1dG9jbWQtYnVmZmVyLWxvY2FsKgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCSo8YnVmZmVyPU4+KiAqPGJ1ZmZlcj1hYnVmPiogKkU2ODAqCis3LiBCdWZmZXItbG9jYWwgYXV0b2NvbW1hbmRzCSphdXRvY21kLWJ1ZmxvY2FsKiAqYXV0b2NtZC1idWZmZXItbG9jYWwqCisJCQkJCSo8YnVmZmVyPU4+KiAqPGJ1ZmZlcj1hYnVmPiogKkU2ODAqCiAKIEJ1ZmZlci1sb2NhbCBhdXRvY29tbWFuZHMgYXJlIGF0dGFjaGVkIHRvIGEgc3BlY2lmaWMgYnVmZmVyLiAgVGhleSBhcmUgdXNlZnVsCiBpZiB0aGUgYnVmZmVyIGRvZXMgbm90IGhhdmUgYSBuYW1lIGFuZCB3aGVuIHRoZSBuYW1lIGRvZXMgbm90IG1hdGNoIGEgc3BlY2lmaWMKQEAgLTkwNCwxNCArOTA0LDE0IEBACiAKIEFsbCB0aGUgY29tbWFuZHMgZm9yIGF1dG9jb21tYW5kcyBhbHNvIHdvcmsgd2l0aCBidWZmZXItbG9jYWwgYXV0b2NvbW1hbmRzLAogc2ltcGx5IHVzZSB0aGUgc3BlY2lhbCBzdHJpbmcgaW5zdGVhZCBvZiB0aGUgcGF0dGVybi4gIEV4YW1wbGVzOiA+Ci0gICAgOmF1ISAqIDxidWZmZXI+ICAgICAJICAgICAiIHJlbW92ZSBidWZmZXItbG9jYWwgYXV0b2NvbW1hbmRzIGZvcgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIgY3VycmVudCBidWZmZXIKLSAgICA6YXUhICogPGJ1ZmZlcj0zMz4gIAkgICAgICIgcmVtb3ZlIGJ1ZmZlci1sb2NhbCBhdXRvY29tbWFuZHMgZm9yCi0gICAgCQkJCSAgICAgIiBidWZmZXIgIzMzCisgICAgOmF1ISAqIDxidWZmZXI+CQkgICAgICIgcmVtb3ZlIGJ1ZmZlci1sb2NhbCBhdXRvY29tbWFuZHMgZm9yCisJCQkJICAgICAiIGN1cnJlbnQgYnVmZmVyCisgICAgOmF1ISAqIDxidWZmZXI9MzM+CQkgICAgICIgcmVtb3ZlIGJ1ZmZlci1sb2NhbCBhdXRvY29tbWFuZHMgZm9yCisJCQkJICAgICAiIGJ1ZmZlciAjMzMKICAgICA6ZG9idWYgOmF1ISBDdXJzb3JIb2xkIDxidWZmZXI+ICAiIHJlbW92ZSBhdXRvY21kIGZvciBnaXZlbiBldmVudCBmb3IgYWxsCi0gICAgCQkJCSAgICAgIiBidWZmZXJzCi0gICAgOmF1ICogPGJ1ZmZlcj4gICAgICAgCSAgICAgIiBsaXN0IGJ1ZmZlci1sb2NhbCBhdXRvY29tbWFuZHMgZm9yCi0gICAgCQkJCSAgICAgIiBjdXJyZW50IGJ1ZmZlcgorCQkJCSAgICAgIiBidWZmZXJzCisgICAgOmF1ICogPGJ1ZmZlcj4JCSAgICAgIiBsaXN0IGJ1ZmZlci1sb2NhbCBhdXRvY29tbWFuZHMgZm9yCisJCQkJICAgICAiIGN1cnJlbnQgYnVmZmVyCiAKIE5vdGUgdGhhdCB3aGVuIGFuIGF1dG9jb21tYW5kIGlzIGRlZmluZWQgZm9yIHRoZSBjdXJyZW50IGJ1ZmZlciwgaXQgaXMgc3RvcmVkCiB3aXRoIHRoZSBidWZmZXIgbnVtYmVyLiAgVGh1cyBpdCB1c2VzIHRoZSBmb3JtICI8YnVmZmVyPTEyPiIsIHdoZXJlIDEyIGlzIHRoZQpkaWZmIC0tZ2l0IGEvcnVudGltZS9kb2MvY2hhbmdlLnR4dCBiL3J1bnRpbWUvZG9jL2NoYW5nZS50eHQKaW5kZXggMjFiOThkNi4uNGNjNjcxMSAxMDA2NDQKLS0tIGEvcnVudGltZS9kb2MvY2hhbmdlLnR4dAorKysgYi9ydW50aW1lL2RvYy9jaGFuZ2UudHh0CkBAIC0xLDQgKzEsNCBAQAotKmNoYW5nZS50eHQqICAgIEZvciBWaW0gdmVyc2lvbiA3LjBmLiAgTGFzdCBjaGFuZ2U6IDIwMDYgQXByIDI1CisqY2hhbmdlLnR4dCogICAgRm9yIFZpbSB2ZXJzaW9uIDcuMGcuICBMYXN0IGNoYW5nZTogMjAwNiBBcHIgMzAKIAogCiAJCSAgVklNIFJFRkVSRU5DRSBNQU5VQUwgICAgYnkgQnJhbSBNb29sZW5hYXIKQEAgLTQ3MCw3ICs0NzAsNyBAQAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiA0LiBDb21wbGV4IGNoYW5nZXMJCQkJCSpjb21wbGV4LWNoYW5nZSoKIAotNC4xIEZpbHRlciBjb21tYW5kcyAJCQkJCSpmaWx0ZXIqCis0LjEgRmlsdGVyIGNvbW1hbmRzCQkJCQkqZmlsdGVyKgogCiBBIGZpbHRlciBpcyBhIHByb2dyYW0gdGhhdCBhY2NlcHRzIHRleHQgYXQgc3RhbmRhcmQgaW5wdXQsIGNoYW5nZXMgaXQgaW4gc29tZQogd2F5LCBhbmQgc2VuZHMgaXQgdG8gc3RhbmRhcmQgb3V0cHV0LiAgWW91IGNhbiB1c2UgdGhlIGNvbW1hbmRzIGJlbG93IHRvIHNlbmQKQEAgLTkwMCw3ICs5MDAsNyBAQAogCQkJCQkJCSo8TWlkZGxlTW91c2U+KgogWyJ4XTxNaWRkbGVNb3VzZT4JUHV0IHRoZSB0ZXh0IGZyb20gYSByZWdpc3RlciBiZWZvcmUgdGhlIGN1cnNvciBbY291bnRdCiAJCQl0aW1lcy4gIFVzZXMgdGhlICIqIHJlZ2lzdGVyLCB1bmxlc3MgYW5vdGhlciBpcwotCQkJc3BlY2lmaWVkLiAgCisJCQlzcGVjaWZpZWQuCiAJCQlMZWF2ZXMgdGhlIGN1cnNvciBhdCB0aGUgZW5kIG9mIHRoZSBuZXcgdGV4dC4KIAkJCVVzaW5nIHRoZSBtb3VzZSBvbmx5IHdvcmtzIHdoZW4gJ21vdXNlJyBjb250YWlucyAnbicKIAkJCW9yICdhJy4KZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL2NtZGxpbmUudHh0IGIvcnVudGltZS9kb2MvY21kbGluZS50eHQKaW5kZXggNGIxNWYzMy4uNDRmNjg1NyAxMDA2NDQKLS0tIGEvcnVudGltZS9kb2MvY21kbGluZS50eHQKKysrIGIvcnVudGltZS9kb2MvY21kbGluZS50eHQKQEAgLTEsNCArMSw0IEBACi0qY21kbGluZS50eHQqICAgRm9yIFZpbSB2ZXJzaW9uIDcuMGYuICBMYXN0IGNoYW5nZTogMjAwNiBNYXIgMTYKKypjbWRsaW5lLnR4dCogICBGb3IgVmltIHZlcnNpb24gNy4wZy4gIExhc3QgY2hhbmdlOiAyMDA2IEFwciAzMAogCiAKIAkJICBWSU0gUkVGRVJFTkNFIE1BTlVBTCAgICBieSBCcmFtIE1vb2xlbmFhcgpAQCAtNjYzLDcgKzY2Myw3IEBACiBSZXZlcnNlIFJhbmdlCQkJCQkJKkU0OTMqCiAKIEEgcmFuZ2Ugc2hvdWxkIGhhdmUgdGhlIGxvd2VyIGxpbmUgbnVtYmVyIGZpcnN0LiAgSWYgdGhpcyBpcyBub3QgdGhlIGNhc2UsIFZpbQotd2lsbCBhc2sgeW91IGlmIGl0IHNob3VsZCBzd2FwIHRoZSBsaW5lIG51bWJlcnMuIAord2lsbCBhc2sgeW91IGlmIGl0IHNob3VsZCBzd2FwIHRoZSBsaW5lIG51bWJlcnMuCiAJQmFja3dhcmRzIHJhbmdlIGdpdmVuLCBPSyB0byBzd2FwIH4KIFRoaXMgaXMgbm90IGRvbmUgd2l0aGluIHRoZSBnbG9iYWwgY29tbWFuZCAiOmciLgogCmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy9kZWJ1Zy50eHQgYi9ydW50aW1lL2RvYy9kZWJ1Zy50eHQKaW5kZXggMTMyMjBlYy4uODE1YzZkYyAxMDA2NDQKLS0tIGEvcnVudGltZS9kb2MvZGVidWcudHh0CisrKyBiL3J1bnRpbWUvZG9jL2RlYnVnLnR4dApAQCAtMSw0ICsxLDQgQEAKLSpkZWJ1Zy50eHQqICAgICBGb3IgVmltIHZlcnNpb24gNy4wZi4gIExhc3QgY2hhbmdlOiAyMDA2IEFwciAyNAorKmRlYnVnLnR4dCogICAgIEZvciBWaW0gdmVyc2lvbiA3LjBnLiAgTGFzdCBjaGFuZ2U6IDIwMDYgQXByIDMwCiAKIAogCQkgIFZJTSBSRUZFUkVOQ0UgTUFOVUFMICAgIGJ5IEJyYW0gTW9vbGVuYWFyCkBAIC0xMCw3ICsxMCw3IEBACiBGb3IgZGVidWdnaW5nIFZpbSBzY3JpcHRzLCBmdW5jdGlvbnMsIGV0Yy4gc2VlIHxkZWJ1Zy1zY3JpcHRzfAogCiAxLiBMb2NhdGlvbiBvZiBhIGNyYXNoLCB1c2luZyBnY2MgYW5kIGdkYgl8ZGVidWctZ2NjfAotMi4gV2luZG93cyBCdWcgUmVwb3J0aW5nICAgICAgICAgICAgICAgCQl8ZGVidWctd2luMzJ8CisyLiBXaW5kb3dzIEJ1ZyBSZXBvcnRpbmcJCQl8ZGVidWctd2luMzJ8CiAKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogCkBAIC0zOCw3ICszOCw3IEBACiAKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogCi0yLiBXaW5kb3dzIEJ1ZyBSZXBvcnRpbmcgICAgICAgICAgICAgICAgICAgICAgIAkJKmRlYnVnLXdpbjMyKgorMi4gV2luZG93cyBCdWcgUmVwb3J0aW5nCQkJCSpkZWJ1Zy13aW4zMioKIAogSWYgdGhlIFdpbmRvd3MgdmVyc2lvbiBvZiBWaW0gY3Jhc2hlcyBpbiBhIHJlcHJvZHVjaWJsZSBtYW5uZXIsIHlvdSBjYW4gdGFrZQogc29tZSBzdGVwcyB0byBwcm92aWRlIGEgdXNlZnVsIGJ1ZyByZXBvcnQuCmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy9kZWJ1Z2dlci50eHQgYi9ydW50aW1lL2RvYy9kZWJ1Z2dlci50eHQKaW5kZXggZTk0MDk2Yy4uOTI0NTNiNiAxMDA2NDQKLS0tIGEvcnVudGltZS9kb2MvZGVidWdnZXIudHh0CisrKyBiL3J1bnRpbWUvZG9jL2RlYnVnZ2VyLnR4dApAQCAtMSw0ICsxLDQgQEAKLSpkZWJ1Z2dlci50eHQqICBGb3IgVmltIHZlcnNpb24gNy4wZi4gIExhc3QgY2hhbmdlOiAyMDA1IE1hciAyOQorKmRlYnVnZ2VyLnR4dCogIEZvciBWaW0gdmVyc2lvbiA3LjBnLiAgTGFzdCBjaGFuZ2U6IDIwMDUgTWFyIDI5CiAKIAogCQkgIFZJTSBSRUZFUkVOQ0UgTUFOVUFMICAgIGJ5IEdvcmRvbiBQcmlldXIKZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL2RldmVsb3AudHh0IGIvcnVudGltZS9kb2MvZGV2ZWxvcC50eHQKaW5kZXggZDc2OWE4OC4uNTEwNDg1OSAxMDA2NDQKLS0tIGEvcnVudGltZS9kb2MvZGV2ZWxvcC50eHQKKysrIGIvcnVudGltZS9kb2MvZGV2ZWxvcC50eHQKQEAgLTEsNCArMSw0IEBACi0qZGV2ZWxvcC50eHQqICAgRm9yIFZpbSB2ZXJzaW9uIDcuMGYuICBMYXN0IGNoYW5nZTogMjAwNiBNYXIgMDkKKypkZXZlbG9wLnR4dCogICBGb3IgVmltIHZlcnNpb24gNy4wZy4gIExhc3QgY2hhbmdlOiAyMDA2IE1hciAwOQogCiAKIAkJICBWSU0gUkVGRVJFTkNFIE1BTlVBTCAgICBieSBCcmFtIE1vb2xlbmFhcgpkaWZmIC0tZ2l0IGEvcnVudGltZS9kb2MvZGlmZi50eHQgYi9ydW50aW1lL2RvYy9kaWZmLnR4dAppbmRleCA0Nzk2NjBjLi5iNDkwNDYwIDEwMDY0NAotLS0gYS9ydW50aW1lL2RvYy9kaWZmLnR4dAorKysgYi9ydW50aW1lL2RvYy9kaWZmLnR4dApAQCAtMSw0ICsxLDQgQEAKLSpkaWZmLnR4dCogICAgICBGb3IgVmltIHZlcnNpb24gNy4wZi4gIExhc3QgY2hhbmdlOiAyMDA2IEFwciAxNAorKmRpZmYudHh0KiAgICAgIEZvciBWaW0gdmVyc2lvbiA3LjBnLiAgTGFzdCBjaGFuZ2U6IDIwMDYgQXByIDE0CiAKIAogCQkgIFZJTSBSRUZFUkVOQ0UgTUFOVUFMICAgIGJ5IEJyYW0gTW9vbGVuYWFyCmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy9kaWdyYXBoLnR4dCBiL3J1bnRpbWUvZG9jL2RpZ3JhcGgudHh0CmluZGV4IDU5NGQxODkuLjk4MWJjMGQgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvZG9jL2RpZ3JhcGgudHh0CisrKyBiL3J1bnRpbWUvZG9jL2RpZ3JhcGgudHh0CkBAIC0xLDQgKzEsNCBAQAotKmRpZ3JhcGgudHh0KiAgIEZvciBWaW0gdmVyc2lvbiA3LjBmLiAgTGFzdCBjaGFuZ2U6IDIwMDYgQXByIDI1CisqZGlncmFwaC50eHQqICAgRm9yIFZpbSB2ZXJzaW9uIDcuMGcuICBMYXN0IGNoYW5nZTogMjAwNiBBcHIgMjUKIAogCiAJCSAgVklNIFJFRkVSRU5DRSBNQU5VQUwgICAgYnkgQnJhbSBNb29sZW5hYXIKZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL2VkaXRpbmcudHh0IGIvcnVudGltZS9kb2MvZWRpdGluZy50eHQKaW5kZXggMDJmNjQ2Yy4uOTMwYWU2ZCAxMDA2NDQKLS0tIGEvcnVudGltZS9kb2MvZWRpdGluZy50eHQKKysrIGIvcnVudGltZS9kb2MvZWRpdGluZy50eHQKQEAgLTEsNCArMSw0IEBACi0qZWRpdGluZy50eHQqICAgRm9yIFZpbSB2ZXJzaW9uIDcuMGYuICBMYXN0IGNoYW5nZTogMjAwNiBBcHIgMjkKKyplZGl0aW5nLnR4dCogICBGb3IgVmltIHZlcnNpb24gNy4wZy4gIExhc3QgY2hhbmdlOiAyMDA2IEFwciAzMAogCiAKIAkJICBWSU0gUkVGRVJFTkNFIE1BTlVBTCAgICBieSBCcmFtIE1vb2xlbmFhcgpAQCAtNDMzLDkgKzQzMyw5IEBACiAgICAgZW5jICAgIG9yICBlbmNvZGluZwkgICAgb3ZlcnJpZGVzICdmaWxlZW5jb2RpbmcnCiAgICAgYmluICAgIG9yICBiaW5hcnkJICAgIHNldHMgJ2JpbmFyeScKICAgICBub2JpbiAgb3IgIG5vYmluYXJ5CSAgICByZXNldHMgJ2JpbmFyeScKLSAgICBiYWQgICAgICAgICAgICAgICAgICAgICBzcGVjaWZpZXMgYmVoYXZpb3IgZm9yIGJhZCBjaGFyYWN0ZXJzCisgICAgYmFkCQkJICAgIHNwZWNpZmllcyBiZWhhdmlvciBmb3IgYmFkIGNoYXJhY3RlcnMKICAgICBlZGl0CQkgICAgZm9yIHw6cmVhZHwgb25seToga2VlcCBvcHRpb24gdmFsdWVzIGFzIGlmIGVkaXRpbmcKLSAgICAJCQkgICAgYSBmaWxlCisJCQkgICAgYSBmaWxlCiAKIHt2YWx1ZX0gY2Fubm90IGNvbnRhaW4gd2hpdGUgc3BhY2UuICBJdCBjYW4gYmUgYW55IHZhbGlkIHZhbHVlIGZvciB0aGVzZQogb3B0aW9ucy4gIEV4YW1wbGVzOiA+CkBAIC00NTMsNyArNDUzLDcgQEAKIGNvbnZlcnRlZCBhbmQgaWxsZWdhbCBieXRlcy4gIEl0IGNhbiBiZSBvbmUgb2YgdGhyZWUgdGhpbmdzOgogICAgICsrYmFkPVggICAgICBBIHNpbmdsZS1ieXRlIGNoYXJhY3RlciB0aGF0IHJlcGxhY2VzIGVhY2ggYmFkIGNoYXJhY3Rlci4KICAgICArK2JhZD1rZWVwICAgS2VlcCBiYWQgY2hhcmFjdGVycyB3aXRob3V0IGNvbnZlcnNpb24uICBOb3RlIHRoYXQgdGhpcyBtYXkKLSAgICAJCSByZXN1bHQgaW4gaWxsZWdhbCBieXRlcyBpbiB5b3VyIHRleHQhCisJCSByZXN1bHQgaW4gaWxsZWdhbCBieXRlcyBpbiB5b3VyIHRleHQhCiAgICAgKytiYWQ9ZHJvcCAgIFJlbW92ZSB0aGUgYmFkIGNoYXJhY3RlcnMuCiAKIFRoZSBkZWZhdWx0IGlzIGxpa2UgIisrYmFkPT8iOiBSZXBsYWNlIGVhY2ggYmFkIGNoYXJhY3RlciB3aXRoIGEgcXVlc3Rpb24KZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL2V2YWwudHh0IGIvcnVudGltZS9kb2MvZXZhbC50eHQKaW5kZXggNGU3ZDVmMy4uOGMzNjEyZiAxMDA2NDQKLS0tIGEvcnVudGltZS9kb2MvZXZhbC50eHQKKysrIGIvcnVudGltZS9kb2MvZXZhbC50eHQKQEAgLTEsNCArMSw0IEBACi0qZXZhbC50eHQqICAgICAgRm9yIFZpbSB2ZXJzaW9uIDcuMGYuICBMYXN0IGNoYW5nZTogMjAwNiBBcHIgMjkKKypldmFsLnR4dCogICAgICBGb3IgVmltIHZlcnNpb24gNy4wZy4gIExhc3QgY2hhbmdlOiAyMDA2IEFwciAzMAogCiAKIAkJICBWSU0gUkVGRVJFTkNFIE1BTlVBTCAgICBieSBCcmFtIE1vb2xlbmFhcgpAQCAtMTY4MSw3ICsxNjgxLDcgQEAKIHJlbW90ZV9zZW5kKCB7c2VydmVyfSwge3N0cmluZ30gWywge2lkdmFyfV0pCiAJCQkJU3RyaW5nCXNlbmQga2V5IHNlcXVlbmNlCiByZW1vdmUoIHtsaXN0fSwge2lkeH0gWywge2VuZH1dKSAgYW55CXJlbW92ZSBpdGVtcyB7aWR4fS17ZW5kfSBmcm9tIHtsaXN0fQotcmVtb3ZlKCB7ZGljdH0sIHtrZXl9KSAgCWFueQlyZW1vdmUgZW50cnkge2tleX0gZnJvbSB7ZGljdH0KK3JlbW92ZSgge2RpY3R9LCB7a2V5fSkJCWFueQlyZW1vdmUgZW50cnkge2tleX0gZnJvbSB7ZGljdH0KIHJlbmFtZSgge2Zyb219LCB7dG99KQkJTnVtYmVyCXJlbmFtZSAobW92ZSkgZmlsZSBmcm9tIHtmcm9tfSB0byB7dG99CiByZXBlYXQoIHtleHByfSwge2NvdW50fSkJU3RyaW5nCXJlcGVhdCB7ZXhwcn0ge2NvdW50fSB0aW1lcwogcmVzb2x2ZSgge2ZpbGVuYW1lfSkJCVN0cmluZwlnZXQgZmlsZW5hbWUgYSBzaG9ydGN1dCBwb2ludHMgdG8KQEAgLTIzMjMsNyArMjMyMyw3IEBACiAJCQkjZ3JvdXAjZXZlbnQJYXV0b2NvbW1hbmQgZGVmaW5lZCBmb3IgdGhpcyBncm91cCBhbmQKIAkJCQkJZXZlbnQuCiAJCQkjZ3JvdXAjZXZlbnQjcGF0dGVybgotCQkJCQlhdXRvY29tbWFuZCBkZWZpbmVkIGZvciB0aGlzIGdyb3VwLCAKKwkJCQkJYXV0b2NvbW1hbmQgZGVmaW5lZCBmb3IgdGhpcyBncm91cCwKIAkJCQkJZXZlbnQgYW5kIHBhdHRlcm4uCiAJCQkjI2V2ZW50CQlhdXRvY29tbWFuZCBmb3IgdGhpcyBldmVudCBpcwogCQkJCQlzdXBwb3J0ZWQuCkBAIC0yNDUwLDcgKzI0NTAsNyBAQAogCQl1c2VkIHRvIGRlY2lkZSB3aGF0IHRvIGRvOgogCQl7ZXhwcjN9ID0gImtlZXAiOiBrZWVwIHRoZSB2YWx1ZSBvZiB7ZXhwcjF9CiAJCXtleHByM30gPSAiZm9yY2UiOiB1c2UgdGhlIHZhbHVlIG9mIHtleHByMn0KLQkJe2V4cHIzfSA9ICJlcnJvciI6IGdpdmUgYW4gZXJyb3IgbWVzc2FnZSAJCSpFNzM3KgorCQl7ZXhwcjN9ID0gImVycm9yIjogZ2l2ZSBhbiBlcnJvciBtZXNzYWdlCQkqRTczNyoKIAkJV2hlbiB7ZXhwcjN9IGlzIG9taXR0ZWQgdGhlbiAiZm9yY2UiIGlzIGFzc3VtZWQuCiAKIAkJe2V4cHIxfSBpcyBjaGFuZ2VkIHdoZW4ge2V4cHIyfSBpcyBub3QgZW1wdHkuICBJZiBuZWNlc3NhcnkKQEAgLTM1MzgsNyArMzUzOCw3IEBACiAKIAogbWF0Y2hhcmcoe25yfSkJCQkJCQkJKm1hdGNoYXJnKCkqCi0JCVNlbGVjdHMgdGhlIHtucn0gbWF0Y2ggaXRlbSwgYXMgc2V0IHdpdGggYSB8Om1hdGNofCwgCisJCVNlbGVjdHMgdGhlIHtucn0gbWF0Y2ggaXRlbSwgYXMgc2V0IHdpdGggYSB8Om1hdGNofCwKIAkJfDoybWF0Y2h8IG9yIHw6M21hdGNofCBjb21tYW5kLgogCQlSZXR1cm4gYSB8TGlzdHwgd2l0aCB0d28gZWxlbWVudHM6CiAJCQlUaGUgbmFtZSBvZiB0aGUgaGlnaGxpZ2h0IGdyb3VwIHVzZWQKQEAgLTM2OTYsNyArMzY5Niw3IEBACiAJCQkiICA5OTogRTQyIGFzZGZhc2RmYXNkZmFzZGZhc2RmYXNkZmFzZGZhcyIgfgogCiAJCU9mdGVuIHVzZWQgaXRlbXMgYXJlOgotCQkgICVzICAgCXN0cmluZworCQkgICVzCXN0cmluZwogCQkgICU2cwlzdHJpbmcgcmlnaHQtYWxpZ25lZCBpbiA2IGJ5dGVzCiAJCSAgJS45cyAgc3RyaW5nIHRydW5jYXRlZCB0byA5IGJ5dGVzCiAJCSAgJWMgICAgc2luZ2xlIGJ5dGUKQEAgLTM3MTcsNyArMzcxNyw3IEBACiAKIAkJCSUgIFtmbGFnc10gIFtmaWVsZC13aWR0aF0gIFsucHJlY2lzaW9uXSAgdHlwZQogCi0JICAgICAgICBmbGFncworCQlmbGFncwogCQkJWmVybyBvciBtb3JlIG9mIHRoZSBmb2xsb3dpbmcgZmxhZ3M6CiAKIAkJICAgICMJICAgICAgVGhlIHZhbHVlIHNob3VsZCBiZSBjb252ZXJ0ZWQgdG8gYW4gImFsdGVybmF0ZQpAQCAtMzc3OSw3ICszNzc5LDcgQEAKIDwJCVRoaXMgbGltaXRzIHRoZSBsZW5ndGggb2YgdGhlIHRleHQgdXNlZCBmcm9tICJsaW5lIiB0bwogCQkid2lkdGgiIGJ5dGVzLgogCi0JICAgICAgICBUaGUgY29udmVyc2lvbiBzcGVjaWZpZXJzIGFuZCB0aGVpciBtZWFuaW5ncyBhcmU6CisJCVRoZSBjb252ZXJzaW9uIHNwZWNpZmllcnMgYW5kIHRoZWlyIG1lYW5pbmdzIGFyZToKIAogCQlkb3hYICAgIFRoZSBOdW1iZXIgYXJndW1lbnQgaXMgY29udmVydGVkIHRvIHNpZ25lZCBkZWNpbWFsCiAJCQkoZCksIHVuc2lnbmVkIG9jdGFsIChvKSwgb3IgdW5zaWduZWQgaGV4YWRlY2ltYWwgKHgKQEAgLTM4MzMsMTAgKzM4MzMsMTAgQEAKIAkJZW1wdHkgbGlzdC4gIFdoZW4gdGhlIG1heGltdW0gaXMgbW9yZSB0aGFuIG9uZSBiZWZvcmUgdGhlCiAJCXN0YXJ0IHRoaXMgaXMgYW4gZXJyb3IuCiAJCUV4YW1wbGVzOiA+Ci0JCQlyYW5nZSg0KSAJCSIgWzAsIDEsIDIsIDNdCisJCQlyYW5nZSg0KQkJIiBbMCwgMSwgMiwgM10KIAkJCXJhbmdlKDIsIDQpCQkiIFsyLCAzLCA0XQogCQkJcmFuZ2UoMiwgOSwgMykJCSIgWzIsIDUsIDhdCi0JCQlyYW5nZSgyLCAtMiwgLTEpIAkiIFsyLCAxLCAwLCAtMSwgLTJdCisJCQlyYW5nZSgyLCAtMiwgLTEpCSIgWzIsIDEsIDAsIC0xLCAtMl0KIAkJCXJhbmdlKDApCQkiIFtdCiAJCQlyYW5nZSgyLCAwKQkJIiBlcnJvciEKIDwKQEAgLTQxMDAsNyArNDEwMCw3IEBACiAKIHNlYXJjaGRlY2woe25hbWV9IFssIHtnbG9iYWx9IFssIHt0aGlzYmxvY2t9XV0pCQkJKnNlYXJjaGRlY2woKSoKIAkJU2VhcmNoIGZvciB0aGUgZGVjbGFyYXRpb24gb2Yge25hbWV9LgotCQkKKwogCQlXaXRoIGEgbm9uLXplcm8ge2dsb2JhbH0gYXJndW1lbnQgaXQgd29ya3MgbGlrZSB8Z0R8LCBmaW5kCiAJCWZpcnN0IG1hdGNoIGluIHRoZSBmaWxlLiAgT3RoZXJ3aXNlIGl0IHdvcmtzIGxpa2UgfGdkfCwgZmluZAogCQlmaXJzdCBtYXRjaCBpbiB0aGUgZnVuY3Rpb24uCkBAIC00MzA2LDcgKzQzMDYsNyBAQAogCQkgICAgW2J1Zm51bSwgbG51bSwgY29sLCBvZmZdCiAKIAkJImJ1Zm51bSIgaXMgdGhlIGJ1ZmZlciBudW1iZXIuICBaZXJvIGNhbiBiZSB1c2VkIGZvciB0aGUKLQkJY3VycmVudCBidWZmZXIuICBTZXR0aW5nIHRoZSBjdXJzb3IgaXMgb25seSBwb3NzaWJsZSBmb3IgCisJCWN1cnJlbnQgYnVmZmVyLiAgU2V0dGluZyB0aGUgY3Vyc29yIGlzIG9ubHkgcG9zc2libGUgZm9yCiAJCXRoZSBjdXJyZW50IGJ1ZmZlci4gIFRvIHNldCBhIG1hcmsgaW4gYW5vdGhlciBidWZmZXIgeW91IGNhbgogCQl1c2UgdGhlIHxidWZucigpfCBmdW5jdGlvbiB0byB0dXJuIGEgZmlsZSBuYW1lIGludG8gYSBidWZmZXIKIAkJbnVtYmVyLgpAQCAtNDMzNCw3ICs0MzM0LDcgQEAKIAkJICAgIHBhdHRlcm4Jc2VhcmNoIHBhdHRlcm4gdXNlZCB0byBsb2NhdGUgdGhlIGVycm9yCiAJCSAgICBjb2wJCWNvbHVtbiBudW1iZXIKIAkJICAgIHZjb2wJd2hlbiBub24temVybzogImNvbCIgaXMgdmlzdWFsIGNvbHVtbgotCQkgICAgCQl3aGVuIHplcm86ICJjb2wiIGlzIGJ5dGUgaW5kZXgKKwkJCQl3aGVuIHplcm86ICJjb2wiIGlzIGJ5dGUgaW5kZXgKIAkJICAgIG5yCQllcnJvciBudW1iZXIKIAkJICAgIHRleHQJZGVzY3JpcHRpb24gb2YgdGhlIGVycm9yCiAJCSAgICB0eXBlCXNpbmdsZS1jaGFyYWN0ZXIgZXJyb3IgdHlwZSwgJ0UnLCAnVycsIGV0Yy4KQEAgLTQ0NzgsNyArNDQ3OCw3IEBACiAJCVRoZSByZXR1cm4gdmFsdWUgaXMgYSBsaXN0IHdpdGggdHdvIGl0ZW1zOgogCQktIFRoZSBiYWRseSBzcGVsbGVkIHdvcmQgb3IgYW4gZW1wdHkgc3RyaW5nLgogCQktIFRoZSB0eXBlIG9mIHRoZSBzcGVsbGluZyBlcnJvcjoKLQkJICAJImJhZCIJCXNwZWxsaW5nIG1pc3Rha2UKKwkJCSJiYWQiCQlzcGVsbGluZyBtaXN0YWtlCiAJCQkicmFyZSIJCXJhcmUgd29yZAogCQkJImxvY2FsIgkJd29yZCBvbmx5IHZhbGlkIGluIGFub3RoZXIgcmVnaW9uCiAJCQkiY2FwcyIJCXdvcmQgc2hvdWxkIHN0YXJ0IHdpdGggQ2FwaXRhbApAQCAtNDU0NSw3ICs0NTQ1LDcgQEAKIAkJV2hlbiB7YmFzZX0gaXMgMTYgYSBsZWFkaW5nICIweCIgb3IgIjBYIiBpcyBpZ25vcmVkLiAgV2l0aCBhCiAJCWRpZmZlcmVudCBiYXNlIHRoZSByZXN1bHQgd2lsbCBiZSB6ZXJvLgogCQlUZXh0IGFmdGVyIHRoZSBudW1iZXIgaXMgc2lsZW50bHkgaWdub3JlZC4KLQkKKwogCiBzdHJmdGltZSh7Zm9ybWF0fSBbLCB7dGltZX1dKQkJCQkqc3RyZnRpbWUoKSoKIAkJVGhlIHJlc3VsdCBpcyBhIFN0cmluZywgd2hpY2ggaXMgYSBmb3JtYXR0ZWQgZGF0ZSBhbmQgdGltZSwgYXMKQEAgLTQ1ODEsNyArNDU4MSw3IEBACiAJCSAgOmVjaG8gc3RyaWR4KCJBbiBFeGFtcGxlIiwgIkV4YW1wbGUiKQkgICAgIDMKIAkJICA6ZWNobyBzdHJpZHgoIlN0YXJ0aW5nIHBvaW50IiwgIlN0YXJ0IikgICAgMAogCQkgIDplY2hvIHN0cmlkeCgiU3RhcnRpbmcgcG9pbnQiLCAic3RhcnQiKSAgIC0xCi08CSAgCQkJCQkqc3Ryc3RyKCkqICpzdHJjaHIoKSoKKzwJCQkJCQkqc3Ryc3RyKCkqICpzdHJjaHIoKSoKIAkJc3RyaWR4KCkgd29ya3Mgc2ltaWxhciB0byB0aGUgQyBmdW5jdGlvbiBzdHJzdHIoKS4gIFdoZW4gdXNlZAogCQl3aXRoIGEgc2luZ2xlIGNoYXJhY3RlciBpdCB3b3JrcyBzaW1pbGFyIHRvIHN0cmNocigpLgogCkBAIC00NjM4LDcgKzQ2MzgsNyBAQAogCQlJZiB0aGUge25lZWRsZX0gaXMgZW1wdHkgdGhlIGxlbmd0aCBvZiB7aGF5c3RhY2t9IGlzIHJldHVybmVkLgogCQlTZWUgYWxzbyB8c3RyaWR4KCl8LiAgRXhhbXBsZXM6ID4KIAkJICA6ZWNobyBzdHJyaWR4KCJhbiBhbmdyeSBhcm1hZGlsbG8iLCAiYW4iKQkgICAgIDMKLTwJCSAgCQkJCQkqc3RycmNocigpKgorPAkJCQkJCQkqc3RycmNocigpKgogCQlXaGVuIHVzZWQgd2l0aCBhIHNpbmdsZSBjaGFyYWN0ZXIgaXQgd29ya3Mgc2ltaWxhciB0byB0aGUgQwogCQlmdW5jdGlvbiBzdHJyY2hyKCkuCiAKQEAgLTQ5MzcsMTAgKzQ5MzcsMTEgQEAKIAogdmlzdWFsbW9kZShbZXhwcl0pCQkJCQkJKnZpc3VhbG1vZGUoKSoKIAkJVGhlIHJlc3VsdCBpcyBhIFN0cmluZywgd2hpY2ggZGVzY3JpYmVzIHRoZSBsYXN0IFZpc3VhbCBtb2RlCi0JCXVzZWQuICBJbml0aWFsbHkgaXQgcmV0dXJucyBhbiBlbXB0eSBzdHJpbmcsIGJ1dCBvbmNlIFZpc3VhbAotCQltb2RlIGhhcyBiZWVuIHVzZWQsIGl0IHJldHVybnMgInYiLCAiViIsIG9yICI8Q1RSTC1WPiIgKGEKLQkJc2luZ2xlIENUUkwtViBjaGFyYWN0ZXIpIGZvciBjaGFyYWN0ZXItd2lzZSwgbGluZS13aXNlLCBvcgotCQlibG9jay13aXNlIFZpc3VhbCBtb2RlIHJlc3BlY3RpdmVseS4KKwkJdXNlZCBpbiB0aGUgY3VycmVudCBidWZmZXIuICBJbml0aWFsbHkgaXQgcmV0dXJucyBhbiBlbXB0eQorCQlzdHJpbmcsIGJ1dCBvbmNlIFZpc3VhbCBtb2RlIGhhcyBiZWVuIHVzZWQsIGl0IHJldHVybnMgInYiLAorCQkiViIsIG9yICI8Q1RSTC1WPiIgKGEgc2luZ2xlIENUUkwtViBjaGFyYWN0ZXIpIGZvcgorCQljaGFyYWN0ZXItd2lzZSwgbGluZS13aXNlLCBvciBibG9jay13aXNlIFZpc3VhbCBtb2RlCisJCXJlc3BlY3RpdmVseS4KIAkJRXhhbXBsZTogPgogCQkJOmV4ZSAibm9ybWFsICIgLiB2aXN1YWxtb2RlKCkKIDwJCVRoaXMgZW50ZXJzIHRoZSBzYW1lIFZpc3VhbCBtb2RlIGFzIGJlZm9yZS4gIEl0IGlzIGFsc28gdXNlZnVsCkBAIC01MzAxLDcgKzUzMDIsNyBAQAogPAogU2VlIHw6dmVyYm9zZS1jbWR8IGZvciBtb3JlIGluZm9ybWF0aW9uLgogCi0gCQkJCQkJCSpFMTI0KiAqRTEyNSoKKwkJCQkJCQkqRTEyNCogKkUxMjUqCiA6ZnVbbmN0aW9uXVshXSB7bmFtZX0oW2FyZ3VtZW50c10pIFtyYW5nZV0gW2Fib3J0XSBbZGljdF0KIAkJCURlZmluZSBhIG5ldyBmdW5jdGlvbiBieSB0aGUgbmFtZSB7bmFtZX0uICBUaGUgbmFtZQogCQkJbXVzdCBiZSBtYWRlIG9mIGFscGhhbnVtZXJpYyBjaGFyYWN0ZXJzIGFuZCAnXycsIGFuZApAQCAtNTc1NCw3ICs1NzU1LDcgQEAKIAkJCXZhcmlhYmxlIGlzIGluZGljYXRlZCBiZWZvcmUgdGhlIHZhbHVlOgogCQkJICAgIDxub3RoaW5nPglTdHJpbmcKIAkJCQkjCU51bWJlcgotCQkJICAgIAkqCUZ1bmNyZWYKKwkJCQkqCUZ1bmNyZWYKIAogCiA6dW5sW2V0XVshXSB7bmFtZX0gLi4uCQkJCQkqOnVubGV0KiAqOnVubCogKkUxMDgqCmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy9mYXJzaS50eHQgYi9ydW50aW1lL2RvYy9mYXJzaS50eHQKaW5kZXggNDA0MjU5Yy4uYTVjNDRlMiAxMDA2NDQKLS0tIGEvcnVudGltZS9kb2MvZmFyc2kudHh0CisrKyBiL3J1bnRpbWUvZG9jL2ZhcnNpLnR4dApAQCAtMSw0ICsxLDQgQEAKLSpmYXJzaS50eHQqICAgICBGb3IgVmltIHZlcnNpb24gNy4wZi4gIExhc3QgY2hhbmdlOiAyMDA1IE1hciAyOQorKmZhcnNpLnR4dCogICAgIEZvciBWaW0gdmVyc2lvbiA3LjBnLiAgTGFzdCBjaGFuZ2U6IDIwMDUgTWFyIDI5CiAKIAogCQkgIFZJTSBSRUZFUkVOQ0UgTUFOVUFMICAgIGJ5IE1vcnRhemEgR2hhc3NhYiBTaGlyYW4KZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL2ZpbGV0eXBlLnR4dCBiL3J1bnRpbWUvZG9jL2ZpbGV0eXBlLnR4dAppbmRleCAzNDgzMjgxLi5mZTI4NmJhIDEwMDY0NAotLS0gYS9ydW50aW1lL2RvYy9maWxldHlwZS50eHQKKysrIGIvcnVudGltZS9kb2MvZmlsZXR5cGUudHh0CkBAIC0xLDQgKzEsNCBAQAotKmZpbGV0eXBlLnR4dCogIEZvciBWaW0gdmVyc2lvbiA3LjBmLiAgTGFzdCBjaGFuZ2U6IDIwMDYgQXByIDI4CisqZmlsZXR5cGUudHh0KiAgRm9yIFZpbSB2ZXJzaW9uIDcuMGcuICBMYXN0IGNoYW5nZTogMjAwNiBBcHIgMjgKIAogCiAJCSAgVklNIFJFRkVSRU5DRSBNQU5VQUwgICAgYnkgQnJhbSBNb29sZW5hYXIKZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL2ZvbGQudHh0IGIvcnVudGltZS9kb2MvZm9sZC50eHQKaW5kZXggMDY4NGQxNS4uNTEyM2QxZCAxMDA2NDQKLS0tIGEvcnVudGltZS9kb2MvZm9sZC50eHQKKysrIGIvcnVudGltZS9kb2MvZm9sZC50eHQKQEAgLTEsNCArMSw0IEBACi0qZm9sZC50eHQqICAgICAgRm9yIFZpbSB2ZXJzaW9uIDcuMGYuICBMYXN0IGNoYW5nZTogMjAwNiBNYXIgMjkKKypmb2xkLnR4dCogICAgICBGb3IgVmltIHZlcnNpb24gNy4wZy4gIExhc3QgY2hhbmdlOiAyMDA2IE1hciAyOQogCiAKIAkJICBWSU0gUkVGRVJFTkNFIE1BTlVBTCAgICBieSBCcmFtIE1vb2xlbmFhcgpkaWZmIC0tZ2l0IGEvcnVudGltZS9kb2MvZ2V0c2NyaXB0LnR4dCBiL3J1bnRpbWUvZG9jL2dldHNjcmlwdC50eHQKaW5kZXggNDY0YmE5NS4uYzY0ZTkzZSAxMDA2NDQKLS0tIGEvcnVudGltZS9kb2MvZ2V0c2NyaXB0LnR4dAorKysgYi9ydW50aW1lL2RvYy9nZXRzY3JpcHQudHh0CkBAIC0xLDQgKzEsNCBAQAotKmdldHNjcmlwdC50eHQqCUZvciBWaW0gdmVyc2lvbiA3LjBmLiAgTGFzdCBjaGFuZ2U6IDIwMDYgTWFyIDI0CisqZ2V0c2NyaXB0LnR4dCoJRm9yIFZpbSB2ZXJzaW9uIDcuMGcuICBMYXN0IGNoYW5nZTogMjAwNiBBcHIgMzAKIAogCQlHZXQgdGhlIExhdGVzdCBWaW1TY3JpcHRzCiAKQEAgLTYsMTAgKzYsMTAgQEAKIAkgIChyZW1vdmUgTk9TUEFNIGZyb20gdGhlIGVtYWlsIGFkZHJlc3MpCiAJCQkJCQkqR2V0TGF0ZXN0VmltU2NyaXB0cy1jb3B5cmlnaHQqCiBDb3B5cmlnaHQ6IChjKSAyMDA0LTIwMDUgYnkgQ2hhcmxlcyBFLiBDYW1wYmVsbCwgSnIuCi0gICAgICAgICAgIFRoZSBWSU0gTElDRU5TRSBhcHBsaWVzIHRvIEdldExhdGVzdFZpbVNjcmlwdHMudmltIGFuZAotICAgICAgICAgICBHZXRMYXRlc3RWaW1TY3JpcHRzLnR4dCAoc2VlIHxjb3B5cmlnaHR8KSBleGNlcHQgdXNlCi0gICAgICAgICAgICJHZXRMYXRlc3RWaW1TY3JpcHRzIiBpbnN0ZWFkIG9mICJWaW0iLgotICAgICAgICAgICBObyB3YXJyYW50eSwgZXhwcmVzcyBvciBpbXBsaWVkLiAgVXNlIEF0LVlvdXItT3duLVJpc2suCisJICAgVGhlIFZJTSBMSUNFTlNFIGFwcGxpZXMgdG8gR2V0TGF0ZXN0VmltU2NyaXB0cy52aW0gYW5kCisJICAgR2V0TGF0ZXN0VmltU2NyaXB0cy50eHQgKHNlZSB8Y29weXJpZ2h0fCkgZXhjZXB0IHVzZQorCSAgICJHZXRMYXRlc3RWaW1TY3JpcHRzIiBpbnN0ZWFkIG9mICJWaW0iLgorCSAgIE5vIHdhcnJhbnR5LCBleHByZXNzIG9yIGltcGxpZWQuICBVc2UgQXQtWW91ci1Pd24tUmlzay4KIAogCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KQEAgLTk5LDEyICs5OSwxMiBAQAogCXBsdWdpbiwgR2V0TGF0ZXN0VmltU2NyaXB0cyB3aWxsIGZpbmQgaXQgYW5kIHVzZSBpdCB0byBidWlsZCB1c2VyJ3MKIAlHZXRMYXRlc3RWaW1TY3JpcHRzLmRhdCBmaWxlczoKID4KLQkgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNyY19pZAotCQkgICAgICAgICAgICAgICAgICAgICAgICAgICAgdgorCQkJCSAgICAgc3JjX2lkCisJCQkJCSAgICB2CiAJCSIgR2V0TGF0ZXN0VmltU2NyaXB0czogIyMjICMjIyB5b3Vyc2NyaXB0bmFtZQotCQkgICAgICAgICAgICAgICAgICAgICAgICBeCi0JCSAgICAgICAgICAgICAgICAgICAgc2NyaXB0aWQKLTwgICAKKwkJCQkJXgorCQkJCSAgICBzY3JpcHRpZAorPAogCUFzIGFuIGF1dGhvciwgeW91IHNob3VsZCBpbmNsdWRlIHN1Y2ggYSBsaW5lIGluIHRvIHJlZmVyIHRvIHlvdXIgb3duCiAJc2NyaXB0IHBsdXMgYW55IGFkZGl0aW9uYWwgbGluZXMgZGVzY3JpYmluZyBhbnkgcGx1Z2luIGRlcGVuZGVuY2llcyBpdAogCW1heSBoYXZlLiAgU2FtZSBmb3JtYXQsIG9mIGNvdXJzZSEKQEAgLTE0NiwxMiArMTQ2LDEyIEBACiAJdG8gZG8gdG8gaW5zdGFsbCB0aGVtIChwbGVhc2UgcmVmZXIgdG8gdGhlIHNjcmlwdCdzICJpbnN0YWxsIgogCWRpcmVjdGlvbnMpLiAgT24gdGhlIG90aGVyIGhhbmQsIG1vc3Qgc2NyaXB0cyB3aWxsIGJlCiAJYXV0by1pbnN0YWxsYWJsZS4KLQkKKwogCVRvIGxldCBHZXRMYXRlc3RWaW1TY3JpcHRzIGRvIGFuIGF1dG9pbnN0YWxsLCB0aGUgZGF0YSBmaWxlJ3MgY29tbWVudAogCWZpZWxkIHNob3VsZCBiZWdpbiB3aXRoIChzdXJyb3VuZGluZyBibGFua3MgYXJlIGlnbm9yZWQpOgotCQorCiAJCTpBdXRvSW5zdGFsbDoKLQkKKwogCUJvdGggY29sb25zIGFyZSBuZWVkZWQsIGFuZCBpdCBzaG91bGQgYmVnaW4gdGhlIGNvbW1lbnQKIAkoeW91cnNjcmlwdG5hbWUpIGZpZWxkLgogCkBAIC0xNjAsMTYgKzE2MCwxNiBAQAogPgogCQlsZXQgZzpHZXRMYXRlc3RWaW1TY3JpcHRzX2FsbG93YXV0b2luc3RhbGw9IDAKIDwKLQkKKwogCVdpdGggOkF1dG9JbnN0YWxsOiBlbmFibGVkLCBhcyBpdCBpcyBieSBkZWZhdWx0LCBmaWxlcyB3aGljaCBlbmQgd2l0aAotCQorCiAJICAtLS0udGFyLmJ6MiAgOiBkZWNvbXByZXNzZWQgYW5kIHVudGFycmVkIGluIFsudmltfHZpbWZpbGVzXSBkaXJlY3RvcnkKIAkgIC0tLS50YXIuZ3ogICA6IGRlY29tcHJlc3NlZCBhbmQgdW50YXJyZWQgaW4gWy52aW18dmltZmlsZXNdIGRpcmVjdG9yeQogCSAgLS0tLnZpbS5iejIgIDogZGVjb21wcmVzc2VkIGFuZCBtb3ZlZCB0byB0aGUgLnZpbS9wbHVnaW4gZGlyZWN0b3J5CiAJICAtLS0udmltLmd6ICAgOiBkZWNvbXByZXNzZWQgYW5kIG1vdmVkIHRvIHRoZSAudmltL3BsdWdpbiBkaXJlY3RvcnkKIAkgIC0tLS56aXAgICAgICA6IHVuemlwcGVkIGluIFsudmltfHZpbWZpbGVzXSBkaXJlY3RvcnkKIAkgIC0tLS52aW0gICAgICA6IG1vdmVkIHRvIFsudmltfHZpbWZpbGVzXS9wbHVnaW4gZGlyZWN0b3J5Ci0JCisKIAlhbmQgd2hpY2ggbWVyZWx5IG5lZWQgdG8gaGF2ZSB0aGVpciBjb21wb25lbnRzIHBsYWNlZCBieSB0aGUKIAl1bnRhci9ndW56aXAgb3IgbW92ZS10by1wbHVnaW4tZGlyZWN0b3J5IHByb2Nlc3Mgc2hvdWxkIGJlCiAJYXV0by1pbnN0YWxsYWJsZS4KQEAgLTE4Niw3ICsxODYsNyBAQAogCUN1cnJlbnRseSwgdmltJ3MgYWZ0ZXIvc3ludGF4IG9ubHkgc3VwcG9ydHMgYnktZmlsZXR5cGUgc2NyaXB0cyAoaW4KIAlibG9ja2hsLnZpbSdzIGNhc2UsIHRoYXQncyBhZnRlci9zeW50YXgvYy52aW0pLiAgSGVuY2UsIGF1dG8taW5zdGFsbAogCXdvdWxkIHBvc3NpYmx5IG92ZXJ3cml0ZSB0aGUgY3VycmVudCB1c2VyJ3MgYWZ0ZXIvc3ludGF4L2MudmltIGZpbGUuCi0JCisKIAlJbiBteSBvd24gY2FzZSwgSSB1c2UgPGFmdGVyc3ludGF4LnZpbT4gKHJlbmFtZWQgdG8KIAlhZnRlci9zeW50YXgvYy52aW0pIHRvIGFsbG93IGEgYWZ0ZXIvc3ludGF4L2MvIGRpcmVjdG9yeToKID4KQEAgLTIyMSw3ICsyMjEsNyBAQAogCQlNb3ZlIHRoZSBmaWxlIGZyb20gR2V0TGF0ZXN0LyB0byB0aGUgZm9sbG93aW5nIGRpcmVjdG9yeQogCQkJVW5peCAgIDogJEhPTUUvLnZpbQogCQkJV2luZG93czogJEhPTUVcdmltZmlsZXMKLQkKKwogCQlpZiB0aGUgZG93bmxvYWRlZCBmaWxlIGVuZHMgd2l0aCAiLmJ6MiIKIAkJCWJ1bnppcDIgaXQKIAkJZWxzZSBpZiB0aGUgZG93bmxvYWRlZCBmaWxlIGVuZHMgd2l0aCAiLmd6IgpAQCAtMjM4LDY2ICsyMzgsNjYgQEAKIDcuIEdldExhdGVzdFZpbVNjcmlwdHMgSGlzdG9yeSAgICAgICAqZ2V0bGF0ZXN0dmltc2NyaXB0cy1oaXN0b3J5KiAqZ2x2cy1oaXN0KgogCiAJdjIwIERlYyAyMywgMjAwNSA6ICogRXJpYyBIYWFyYmF1ZXIgZm91bmQmZml4ZWQgYSBidWcgd2l0aCB1bnppcCB1c2U7Ci0JICAgICAgICAgICAgICAgICAgICAgdW56aXAgbmVlZHMgdGhlIC1vIGZsYWcgdG8gb3ZlcndyaXRlLgorCQkJICAgICB1bnppcCBuZWVkcyB0aGUgLW8gZmxhZyB0byBvdmVyd3JpdGUuCiAJdjE5IE5vdiAyOCwgMjAwNSA6ICogdjE4J3MgR2V0TGF0ZXN0VmltU2NyaXB0IGxpbmUgYWNjZXNzZWQgdGhlIHdyb25nCi0JICAgICAgICAgICAgICAgICAgICAgc2NyaXB0ISBGaXhlZC4KKwkJCSAgICAgc2NyaXB0ISBGaXhlZC4KIAl2MTggTWFyIDIxLCAyMDA1IDogKiBidWdmaXggdG8gYXV0b21hdGljIGRhdGFiYXNlIGNvbnN0cnVjdGlvbgotCSAgICAgICAgICAgICAgICAgICAqIGJ1Z2ZpeCAtIG5vd3JhcHNjYW4gY2F1c2VkIGFuIGVycm9yCi0JICAgICAgICAgICAgICAgICAgICAgKHRueCB0byBEYXZpZCBHcmVlbiBmb3IgdGhlIGZpeCkKKwkJCSAgICogYnVnZml4IC0gbm93cmFwc2NhbiBjYXVzZWQgYW4gZXJyb3IKKwkJCSAgICAgKHRueCB0byBEYXZpZCBHcmVlbiBmb3IgdGhlIGZpeCkKIAkgICAgQXByIDAxLCAyMDA1ICAgKiBpZiBzaGVsbCBpcyBiYXNoLCAibXYiIGluc3RlYWQgb2YgInJlbiIgdXNlZCBpbgotCSAgICAgICAgICAgICAgICAgICAgIDpBdXRvSW5zdGFsbDpzLCBldmVuIHRob3VnaCBpdHMgby9zIGlzIHdpbmRvd3MKKwkJCSAgICAgOkF1dG9JbnN0YWxsOnMsIGV2ZW4gdGhvdWdoIGl0cyBvL3MgaXMgd2luZG93cwogCSAgICBBcHIgMDEsIDIwMDUgICAqIHdoZW4gZG93bmxvYWRpbmcgZXJyb3JzIG9jY3VycmVkLCBHTFZTIHdhcwotCSAgICAgICAgICAgICAgICAgICAgIHRlcm1pbmF0aW5nIGVhcmx5LiAgSXQgbm93IGp1c3QgZ29lcyBvbiB0byB0cnlpbmcKLQkgICAgICAgICAgICAgICAgICAgICB0aGUgbmV4dCBzY3JpcHQgKGFmdGVyIHRyeWluZyB0aHJlZSB0aW1lcyB0bwotCSAgICAgICAgICAgICAgICAgICAgIGRvd25sb2FkIGEgc2NyaXB0IGRlc2NyaXB0aW9uIHBhZ2UpCisJCQkgICAgIHRlcm1pbmF0aW5nIGVhcmx5LiAgSXQgbm93IGp1c3QgZ29lcyBvbiB0byB0cnlpbmcKKwkJCSAgICAgdGhlIG5leHQgc2NyaXB0IChhZnRlciB0cnlpbmcgdGhyZWUgdGltZXMgdG8KKwkJCSAgICAgZG93bmxvYWQgYSBzY3JpcHQgZGVzY3JpcHRpb24gcGFnZSkKIAkgICAgQXByIDIwLCAyMDA1ICAgKiBidWdmaXggLSB3aGVuIGEgZmFpbHVyZSB0byBkb3dubG9hZCBvY2N1cnJlZCwKLQkgICAgICAgICAgICAgICAgICAgICBHZXRMYXRlc3RWaW1TY3JpcHRzIHdvdWxkIHN0b3AgZWFybHkgYW5kIGNsYWltIHRoYXQKLQkgICAgICAgICAgICAgICAgICAgICBldmVyeXRoaW5nIHdhcyBjdXJyZW50LiAgRml4ZWQuCisJCQkgICAgIEdldExhdGVzdFZpbVNjcmlwdHMgd291bGQgc3RvcCBlYXJseSBhbmQgY2xhaW0gdGhhdAorCQkJICAgICBldmVyeXRoaW5nIHdhcyBjdXJyZW50LiAgRml4ZWQuCiAJdjE3IEF1ZyAyNSwgMjAwNCA6ICogZzpHZXRMYXRlc3RWaW1TY3JpcHRzX2FsbG93YXV0b2luc3RhbGwsIHdoaWNoCi0JICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdHMgdG8gMSwgY2FuIGJlIHVzZWQgdG8gcHJldmVudCBhbGwKLQkgICAgICAgICAgICAgICAgICAgICA6QXV0b0luc3RhbGw6CisJCQkgICAgIGRlZmF1bHRzIHRvIDEsIGNhbiBiZSB1c2VkIHRvIHByZXZlbnQgYWxsCisJCQkgICAgIDpBdXRvSW5zdGFsbDoKIAl2MTYgQXVnIDI1LCAyMDA0IDogKiBtYWRlIGV4ZWN1dGlvbiBvZiBidW56aXAyL2d1bnppcC90YXIvemlwIHNpbGVudAotCSAgICAgICAgICAgICAgICAgICAqIGZpeGVkIGJ1ZyB3aXRoIDpBdXRvSW5zdGFsbDogdXNlIG9mIGhlbHB0YWdzCisJCQkgICAqIGZpeGVkIGJ1ZyB3aXRoIDpBdXRvSW5zdGFsbDogdXNlIG9mIGhlbHB0YWdzCiAJdjE1IEF1ZyAyNCwgMjAwNCA6ICogYnVnZml4OiB0aGUgIjAgMCBjb21tZW50IiBkb3dubG9hZCBwcmV2ZW50aW9uIHdhc24ndAotCSAgICAgICAgICAgICAgICAgICAgIGFsd2F5cyBwcmV2ZW50aW5nIGRvd25sb2FkcyAoanVzdCB1c3VhbGx5KS4gIEZpeGVkLgorCQkJICAgICBhbHdheXMgcHJldmVudGluZyBkb3dubG9hZHMgKGp1c3QgdXN1YWxseSkuICBGaXhlZC4KIAl2MTQgQXVnIDI0LCAyMDA0IDogKiBidWdmaXggLS0gaGVscHRhZ3Mgd2FzIHVzaW5nIGRvdHZpbSwgcmF0aGVyIHRoYW4KLQkgICAgICAgICAgICAgICAgICAgICBzOmRvdHZpbS4gIEZpeGVkLgorCQkJICAgICBzOmRvdHZpbS4JRml4ZWQuCiAJdjEzIEF1ZyAyMywgMjAwNCA6ICogd2lsbCBza2lwIGRvd25sb2FkaW5nIGEgZmlsZSBpZiBpdHMgc2NyaXB0aWQgb3Igc3JjaWQKLQkgICAgICAgICAgICAgICAgICAgICBpcyB6ZXJvLiAgVXNlZnVsIGZvciBzY3JpcHQgYXV0aG9yczsgdGhhdCB3YXkgdGhlaXIKLQkgICAgICAgICAgICAgICAgICAgICBvd24gR2V0TGF0ZXN0VmltU2NyaXB0cyBhY3Rpdml0eSB3b24ndCBvdmVyd3JpdGUKLQkgICAgICAgICAgICAgICAgICAgICB0aGVpciBzY3JpcHRzLgorCQkJICAgICBpcyB6ZXJvLiAgVXNlZnVsIGZvciBzY3JpcHQgYXV0aG9yczsgdGhhdCB3YXkgdGhlaXIKKwkJCSAgICAgb3duIEdldExhdGVzdFZpbVNjcmlwdHMgYWN0aXZpdHkgd29uJ3Qgb3ZlcndyaXRlCisJCQkgICAgIHRoZWlyIHNjcmlwdHMuCiAJdjEyIEF1ZyAyMywgMjAwNCA6ICogYnVnZml4IC0gYSAicmV0dXJuIiBnb3QgbGVmdCBpbiB0aGUgZGlzdHJpYnV0aW9uIHRoYXQKLQkgICAgICAgICAgICAgICAgICAgICB3YXMgaW50ZW5kZWQgb25seSBmb3IgdGVzdGluZy4gIFJlbW92ZWQsIG5vdyB3b3Jrcy4KLQkgICAgICAgICAgICAgICAgICAgKiA6QXV0b0luc3RhbGw6IGltcGxlbWVudGVkCisJCQkgICAgIHdhcyBpbnRlbmRlZCBvbmx5IGZvciB0ZXN0aW5nLiAgUmVtb3ZlZCwgbm93IHdvcmtzLgorCQkJICAgKiA6QXV0b0luc3RhbGw6IGltcGxlbWVudGVkCiAJdjExIEF1ZyAyMCwgMjAwNCA6ICogR2V0TGF0ZXN0VmltU2NyaXB0cyBpcyBub3cgYSBwbHVnaW46Ci0JICAgICAgICAgICAgICAgICAgICogOkdldExhdGVzdFZpbVNjcmlwdHMgY29tbWFuZAotCSAgICAgICAgICAgICAgICAgICAqIChydW50aW1lcGF0aCkvR2V0TGF0ZXN0L0dldExhdGVzdFZpbVNjcmlwdHMuZGF0Ci0JICAgICAgICAgICAgICAgICAgICAgbm93IGhvbGRzIHNjcmlwdHMgdGhhdCBuZWVkIHVwZGF0aW5nCisJCQkgICAqIDpHZXRMYXRlc3RWaW1TY3JpcHRzIGNvbW1hbmQKKwkJCSAgICogKHJ1bnRpbWVwYXRoKS9HZXRMYXRlc3QvR2V0TGF0ZXN0VmltU2NyaXB0cy5kYXQKKwkJCSAgICAgbm93IGhvbGRzIHNjcmlwdHMgdGhhdCBuZWVkIHVwZGF0aW5nCiAJdjEwIEFwciAxOSwgMjAwNCA6ICogbW92ZWQgaGlzdG9yeSBmcm9tIHNjcmlwdCB0byBkb2MKIAl2OSAgSmFuIDIzLCAyMDA0IDogICB3aW5kb3dzICh3aW4zMi93aW4xNi93aW45NSkgd2lsbCB1c2UKLQkgICAgICAgICAgICAgICAgICAgICBkb3VibGUgcXVvdGVzICgiIikgd2hlcmVhcyBvdGhlciBzeXN0ZW1zIHdpbGwgdXNlCi0JICAgICAgICAgICAgICAgICAgICAgc2luZ2xlIHF1b3RlcyAoJycpIGFyb3VuZCB0aGUgdXJscyBpbiBjYWxscyB2aWEgd2dldAorCQkJICAgICBkb3VibGUgcXVvdGVzICgiIikgd2hlcmVhcyBvdGhlciBzeXN0ZW1zIHdpbGwgdXNlCisJCQkgICAgIHNpbmdsZSBxdW90ZXMgKCcnKSBhcm91bmQgdGhlIHVybHMgaW4gY2FsbHMgdmlhIHdnZXQKIAl2OCAgRGVjIDAxLCAyMDAzIDogICBtYWtlcyB0aHJlZSB0cmllcyBhdCBkb3dubG9hZGluZwogCXY3ICBTZXAgMDIsIDIwMDMgOiAgIGFkZGVkIGVycm9yIG1lc3NhZ2VzIGlmICJDbGljayBvbi4uLiIgb3IgInNyY19pZD0iCi0JICAgICAgICAgICAgICAgICAgICAgbm90IGZvdW5kIGluIGRvd25sb2FkZWQgd2VicGFnZQotCSAgICAgICAgICAgICAgICAgICAgIFVzZXMgdF90aSwgdF90ZSwgYW5kIHJzIHRvIG1ha2UgcHJvZ3Jlc3MgdmlzaWJsZQorCQkJICAgICBub3QgZm91bmQgaW4gZG93bmxvYWRlZCB3ZWJwYWdlCisJCQkgICAgIFVzZXMgdF90aSwgdF90ZSwgYW5kIHJzIHRvIG1ha2UgcHJvZ3Jlc3MgdmlzaWJsZQogCXY2ICBBdWcgMDYsIDIwMDMgOiAgIGZpbmFsIHN0YXR1cyBtZXNzYWdlcyBub3cgZGlzcGxheSBzdW1tYXJ5IG9mIHdvcmsKLQkgICAgICAgICAgICAgICAgICAgICAoICJEb3dubG9hZGVkIHNvbWVxdHkgc2NyaXB0cyIgb3IKLQkgICAgICAgICAgICAgICAgICAgICAgICJFdmVyeXRoaW5nIHdhcyBjdXJyZW50IikKLQkgICAgICAgICAgICAgICAgICAgICBOb3cgR2V0TGF0ZXN0VmltU2NyaXB0cyBpcyBjYXJlZnVsIGFib3V0IGRvd25sb2FkaW5nCi0JICAgICAgICAgICAgICAgICAgICAgR2V0TGF0ZXN0VmltU2NyaXB0cy52aW0gaXRzZWxmIQotCSAgICAgICAgICAgICAgICAgICAgIChnb2VzIHRvIDxORVdfR2V0TGF0ZXN0VmltU2NyaXB0cy52aW0+KQorCQkJICAgICAoICJEb3dubG9hZGVkIHNvbWVxdHkgc2NyaXB0cyIgb3IKKwkJCSAgICAgICAiRXZlcnl0aGluZyB3YXMgY3VycmVudCIpCisJCQkgICAgIE5vdyBHZXRMYXRlc3RWaW1TY3JpcHRzIGlzIGNhcmVmdWwgYWJvdXQgZG93bmxvYWRpbmcKKwkJCSAgICAgR2V0TGF0ZXN0VmltU2NyaXB0cy52aW0gaXRzZWxmIQorCQkJICAgICAoZ29lcyB0byA8TkVXX0dldExhdGVzdFZpbVNjcmlwdHMudmltPikKIAl2NSAgQXVnIDA0LCAyMDAzIDogICBtaXNzaW5nIGFuIGVuZGlmIG5lYXIgYm90dG9tCiAJdjQgIEp1biAxNywgMjAwMyA6ICAgcmVkcmF3ISBqdXN0IGJlZm9yZSBlYWNoICJjb25zaWRlcmluZyIgbWVzc2FnZQogCXYzICBNYXkgMjcsIDIwMDMgOiAgIFByb3RlY3RzIGRvd25sb2FkZWQgZmlsZXMgZnJvbSBlcnJhbnQgc2hlbGwKLQkgICAgICAgICAgICAgICAgICAgICBleHBhbnNpb25zIHdpdGggc2luZ2xlIHF1b3RlczogJy4uLicKKwkJCSAgICAgZXhwYW5zaW9ucyB3aXRoIHNpbmdsZSBxdW90ZXM6ICcuLi4nCiAJdjIgIE1heSAxNCwgMjAwMyA6ICAgZXh0cmFjdHMgbmFtZSBvZiBpdGVtIHRvIGJlIG9idGFpbmVkIGZyb20gdGhlCi0JICAgICAgICAgICAgICAgICAgICAgc2NyaXB0IGZpbGUuICBVc2VzIGl0IGluc3RlYWQgb2YgY29tbWVudCBmaWVsZAotCSAgICAgICAgICAgICAgICAgICAgIGZvciBvdXRwdXQgZmlsZW5hbWU7IGNvbW1lbnQgaXMgdXNlZCBpbiB0aGUKLQkgICAgICAgICAgICAgICAgICAgICAiY29uc2lkZXJpbmcuLi4iIGxpbmUgYW5kIGlzIG5vdyBqdXN0IGEgY29tbWVudCEKLQkgICAgICAgICAgICAgICAgICAgKiBGaXhlZCBhIGJ1ZzogYSBzdHJpbmctb2YtbnVtYmVycyBpcyBub3QgdGhlCi0JICAgICAgICAgICAgICAgICAgICAgc2FtZSBhcyBhIG51bWJlciwgc28gSSBhZGRlZCB6ZXJvIHRvIHRoZW0KLQkgICAgICAgICAgICAgICAgICAgICBhbmQgdGhleSBiZWNhbWUgbnVtYmVycy4gIEZpeGVzIGNvbXBhcmlzb24uCisJCQkgICAgIHNjcmlwdCBmaWxlLiAgVXNlcyBpdCBpbnN0ZWFkIG9mIGNvbW1lbnQgZmllbGQKKwkJCSAgICAgZm9yIG91dHB1dCBmaWxlbmFtZTsgY29tbWVudCBpcyB1c2VkIGluIHRoZQorCQkJICAgICAiY29uc2lkZXJpbmcuLi4iIGxpbmUgYW5kIGlzIG5vdyBqdXN0IGEgY29tbWVudCEKKwkJCSAgICogRml4ZWQgYSBidWc6IGEgc3RyaW5nLW9mLW51bWJlcnMgaXMgbm90IHRoZQorCQkJICAgICBzYW1lIGFzIGEgbnVtYmVyLCBzbyBJIGFkZGVkIHplcm8gdG8gdGhlbQorCQkJICAgICBhbmQgdGhleSBiZWNhbWUgbnVtYmVycy4gIEZpeGVzIGNvbXBhcmlzb24uCiAKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogdmltOnR3PTc4OnRzPTg6ZnQ9aGVscApkaWZmIC0tZ2l0IGEvcnVudGltZS9kb2MvZ3VpLnR4dCBiL3J1bnRpbWUvZG9jL2d1aS50eHQKaW5kZXggMWU3YjdjZS4uZmUwOWQ4MCAxMDA2NDQKLS0tIGEvcnVudGltZS9kb2MvZ3VpLnR4dAorKysgYi9ydW50aW1lL2RvYy9ndWkudHh0CkBAIC0xLDQgKzEsNCBAQAotKmd1aS50eHQqICAgICAgIEZvciBWaW0gdmVyc2lvbiA3LjBmLiAgTGFzdCBjaGFuZ2U6IDIwMDYgQXByIDAyCisqZ3VpLnR4dCogICAgICAgRm9yIFZpbSB2ZXJzaW9uIDcuMGcuICBMYXN0IGNoYW5nZTogMjAwNiBBcHIgMDIKIAogCiAJCSAgVklNIFJFRkVSRU5DRSBNQU5VQUwgICAgYnkgQnJhbSBNb29sZW5hYXIKZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL2d1aV93MTYudHh0IGIvcnVudGltZS9kb2MvZ3VpX3cxNi50eHQKaW5kZXggMmViOTkzMy4uZmI3ODUzNCAxMDA2NDQKLS0tIGEvcnVudGltZS9kb2MvZ3VpX3cxNi50eHQKKysrIGIvcnVudGltZS9kb2MvZ3VpX3cxNi50eHQKQEAgLTEsNCArMSw0IEBACi0qZ3VpX3cxNi50eHQqICAgRm9yIFZpbSB2ZXJzaW9uIDcuMGYuICBMYXN0IGNoYW5nZTogMjAwNSBNYXIgMjkKKypndWlfdzE2LnR4dCogICBGb3IgVmltIHZlcnNpb24gNy4wZy4gIExhc3QgY2hhbmdlOiAyMDA1IE1hciAyOQogCiAKIAkJICBWSU0gUkVGRVJFTkNFIE1BTlVBTCAgICBieSBCcmFtIE1vb2xlbmFhcgpkaWZmIC0tZ2l0IGEvcnVudGltZS9kb2MvZ3VpX3czMi50eHQgYi9ydW50aW1lL2RvYy9ndWlfdzMyLnR4dAppbmRleCAwMDg3NWNhLi4xNmFmOGZiIDEwMDY0NAotLS0gYS9ydW50aW1lL2RvYy9ndWlfdzMyLnR4dAorKysgYi9ydW50aW1lL2RvYy9ndWlfdzMyLnR4dApAQCAtMSw0ICsxLDQgQEAKLSpndWlfdzMyLnR4dCogICBGb3IgVmltIHZlcnNpb24gNy4wZi4gIExhc3QgY2hhbmdlOiAyMDA1IE1hciAyOQorKmd1aV93MzIudHh0KiAgIEZvciBWaW0gdmVyc2lvbiA3LjBnLiAgTGFzdCBjaGFuZ2U6IDIwMDUgTWFyIDI5CiAKIAogCQkgIFZJTSBSRUZFUkVOQ0UgTUFOVUFMICAgIGJ5IEJyYW0gTW9vbGVuYWFyCmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy9ndWlfeDExLnR4dCBiL3J1bnRpbWUvZG9jL2d1aV94MTEudHh0CmluZGV4IDNjMDVhNjguLmI0YzNiZDIgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvZG9jL2d1aV94MTEudHh0CisrKyBiL3J1bnRpbWUvZG9jL2d1aV94MTEudHh0CkBAIC0xLDQgKzEsNCBAQAotKmd1aV94MTEudHh0KiAgIEZvciBWaW0gdmVyc2lvbiA3LjBmLiAgTGFzdCBjaGFuZ2U6IDIwMDUgRGVjIDA2CisqZ3VpX3gxMS50eHQqICAgRm9yIFZpbSB2ZXJzaW9uIDcuMGcuICBMYXN0IGNoYW5nZTogMjAwNiBBcHIgMzAKIAogCiAJCSAgVklNIFJFRkVSRU5DRSBNQU5VQUwgICAgYnkgQnJhbSBNb29sZW5hYXIKQEAgLTEyLDcgKzEyLDcgQEAKIDQuIFZhcmlvdXMJCQl8Z3VpLXgxMS12YXJpb3VzfAogNS4gR1RLIHZlcnNpb24JCQl8Z3VpLWd0a3wKIDYuIEdOT01FIHZlcnNpb24JCXxndWktZ25vbWV8Ci03LiBLREUgdmVyc2lvbiAgICAgICAgICAgICAgICAgIHxndWkta2RlfAorNy4gS0RFIHZlcnNpb24JCQl8Z3VpLWtkZXwKIDguIENvbXBpbGluZwkJCXxndWkteDExLWNvbXBpbGluZ3wKIDkuIFgxMSBzZWxlY3Rpb24gbWVjaGFuaXNtCXx4MTEtc2VsZWN0aW9ufAogCmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy9oYW5ndWxpbi50eHQgYi9ydW50aW1lL2RvYy9oYW5ndWxpbi50eHQKaW5kZXggN2RjMDVlZi4uOTA0ZjY1MCAxMDA2NDQKLS0tIGEvcnVudGltZS9kb2MvaGFuZ3VsaW4udHh0CisrKyBiL3J1bnRpbWUvZG9jL2hhbmd1bGluLnR4dApAQCAtMSw0ICsxLDQgQEAKLSpoYW5ndWxpbi50eHQqICBGb3IgVmltIHZlcnNpb24gNy4wZi4gIExhc3QgY2hhbmdlOiAyMDA2IEFwciAwMgorKmhhbmd1bGluLnR4dCogIEZvciBWaW0gdmVyc2lvbiA3LjBnLiAgTGFzdCBjaGFuZ2U6IDIwMDYgQXByIDAyCiAKIAogCQkgIFZJTSBSRUZFUkVOQ0UgTUFOVUFMICAgIGJ5IENoaS1EZW9rIEh3YW5nIGFuZCBTdW5nLUh5dW4gTmFtCmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy9oZWJyZXcudHh0IGIvcnVudGltZS9kb2MvaGVicmV3LnR4dAppbmRleCA0MmVkMDg4Li5mNDk1YWUyIDEwMDY0NAotLS0gYS9ydW50aW1lL2RvYy9oZWJyZXcudHh0CisrKyBiL3J1bnRpbWUvZG9jL2hlYnJldy50eHQKQEAgLTEsNCArMSw0IEBACi0qaGVicmV3LnR4dCogICAgRm9yIFZpbSB2ZXJzaW9uIDcuMGYuICBMYXN0IGNoYW5nZTogMjAwMyBNYXkgMTEKKypoZWJyZXcudHh0KiAgICBGb3IgVmltIHZlcnNpb24gNy4wZy4gIExhc3QgY2hhbmdlOiAyMDAzIE1heSAxMQogCiAKIAkgICBWSU0gUkVGRVJFTkNFIE1BTlVBTCAgICBieSBSb24gQWFyb24gKGFuZCBBdm5lciBMb3R0ZW0pCmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy9oZWxwLnR4dCBiL3J1bnRpbWUvZG9jL2hlbHAudHh0CmluZGV4IDQyMjY3MDQuLmNkYWEzOTcgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvZG9jL2hlbHAudHh0CisrKyBiL3J1bnRpbWUvZG9jL2hlbHAudHh0CkBAIC0xLDQgKzEsNCBAQAotKmhlbHAudHh0KglGb3IgVmltIHZlcnNpb24gNy4wZi4gIExhc3QgY2hhbmdlOiAyMDA2IEFwciAwMgorKmhlbHAudHh0KglGb3IgVmltIHZlcnNpb24gNy4wZy4gIExhc3QgY2hhbmdlOiAyMDA2IEFwciAzMAogCiAJCQlWSU0gLSBtYWluIGhlbHAgZmlsZQogCQkJCQkJCQkJIGsKQEAgLTE4LDEyICsxOCwxMiBAQAogCQkJCQkJCSpoZWxwLWNvbnRleHQqCiAJCQkgIFdIQVQJCQlQUkVQRU5EICAgIEVYQU1QTEUJfgogCQkgICAgICBOb3JtYWwgbW9kZSBjb21tYW5kICAgICAgKG5vdGhpbmcpICAgOmhlbHAgeAotCQkgICAgICBWaXN1YWwgbW9kZSBjb21tYW5kIAkgIHZfCSAgIDpoZWxwIHZfdQotCQkgICAgICBJbnNlcnQgbW9kZSBjb21tYW5kIAkgIGlfCSAgIDpoZWxwIGlfPEVzYz4KLQkJICAgICAgQ29tbWFuZC1saW5lIGNvbW1hbmQgCSAgOgkgICA6aGVscCA6cXVpdAorCQkgICAgICBWaXN1YWwgbW9kZSBjb21tYW5kCSAgdl8JICAgOmhlbHAgdl91CisJCSAgICAgIEluc2VydCBtb2RlIGNvbW1hbmQJICBpXwkgICA6aGVscCBpXzxFc2M+CisJCSAgICAgIENvbW1hbmQtbGluZSBjb21tYW5kCSAgOgkgICA6aGVscCA6cXVpdAogCQkgICAgICBDb21tYW5kLWxpbmUgZWRpdGluZwkgIGNfCSAgIDpoZWxwIGNfPERlbD4KLQkJICAgICAgVmltIGNvbW1hbmQgYXJndW1lbnQgCSAgLQkgICA6aGVscCAtcgotCQkgICAgICBPcHRpb24gCQkJICAnCSAgIDpoZWxwICd0ZXh0d2lkdGgnCisJCSAgICAgIFZpbSBjb21tYW5kIGFyZ3VtZW50CSAgLQkgICA6aGVscCAtcgorCQkgICAgICBPcHRpb24JCQkgICcJICAgOmhlbHAgJ3RleHR3aWR0aCcKICAgU2VhcmNoIGZvciBoZWxwOiAgVHlwZSAiOmhlbHAgd29yZCIsIHRoZW4gaGl0IENUUkwtRCB0byBzZWUgbWF0Y2hpbmcKIAkJICAgIGhlbHAgZW50cmllcyBmb3IgIndvcmQiLgogCmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy9ob3d0by50eHQgYi9ydW50aW1lL2RvYy9ob3d0by50eHQKaW5kZXggOTcyNzNlZC4uNTE4MzIxOCAxMDA2NDQKLS0tIGEvcnVudGltZS9kb2MvaG93dG8udHh0CisrKyBiL3J1bnRpbWUvZG9jL2hvd3RvLnR4dApAQCAtMSw0ICsxLDQgQEAKLSpob3d0by50eHQqCUZvciBWaW0gdmVyc2lvbiA3LjBmLiAgTGFzdCBjaGFuZ2U6IDIwMDYgQXByIDAyCisqaG93dG8udHh0KglGb3IgVmltIHZlcnNpb24gNy4wZy4gIExhc3QgY2hhbmdlOiAyMDA2IEFwciAwMgogCiAKIAkJICBWSU0gUkVGRVJFTkNFIE1BTlVBTAkgIGJ5IEJyYW0gTW9vbGVuYWFyCmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy9pZl9jc2NvcC50eHQgYi9ydW50aW1lL2RvYy9pZl9jc2NvcC50eHQKaW5kZXggZDQ1OWJhOS4uMDI0NzFmYSAxMDA2NDQKLS0tIGEvcnVudGltZS9kb2MvaWZfY3Njb3AudHh0CisrKyBiL3J1bnRpbWUvZG9jL2lmX2NzY29wLnR4dApAQCAtMSw0ICsxLDQgQEAKLSppZl9jc2NvcC50eHQqICBGb3IgVmltIHZlcnNpb24gNy4wZi4gIExhc3QgY2hhbmdlOiAyMDA1IE1hciAyOQorKmlmX2NzY29wLnR4dCogIEZvciBWaW0gdmVyc2lvbiA3LjBnLiAgTGFzdCBjaGFuZ2U6IDIwMDUgTWFyIDI5CiAKIAogCQkgIFZJTSBSRUZFUkVOQ0UgTUFOVUFMICAgIGJ5IEFuZHkgS2FobgpkaWZmIC0tZ2l0IGEvcnVudGltZS9kb2MvaWZfbXpzY2gudHh0IGIvcnVudGltZS9kb2MvaWZfbXpzY2gudHh0CmluZGV4IGY4ZmM2NDYuLjdjMzgxMWIgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvZG9jL2lmX216c2NoLnR4dAorKysgYi9ydW50aW1lL2RvYy9pZl9tenNjaC50eHQKQEAgLTEsNCArMSw0IEBACi0qaWZfbXpzY2gudHh0KiAgRm9yIFZpbSB2ZXJzaW9uIDcuMGYuICBMYXN0IGNoYW5nZTogMjAwNiBNYXIgMDYKKyppZl9tenNjaC50eHQqICBGb3IgVmltIHZlcnNpb24gNy4wZy4gIExhc3QgY2hhbmdlOiAyMDA2IEFwciAzMAogCiAKIAkJICBWSU0gUkVGRVJFTkNFIE1BTlVBTCAgICBieSBTZXJnZXkgS2hvcmV2CkBAIC00MSw3ICs0MSw3IEBACiAJCQkJCQkJKjptemZpbGUqICo6bXpmKgogOltyYW5nZV1temZbaWxlXSB7ZmlsZX0JRXhlY3V0ZSB0aGUgTXpTY2hlbWUgc2NyaXB0IGluIHtmaWxlfS4gIHtub3QgaW4gVml9CiAJCQlBbGwgc3RhdGVtZW50cyBhcmUgZXhlY3V0ZWQgaW4gdGhlIG5hbWVzcGFjZSBvZiB0aGUKLSAgICAgICAgICAgICAgICAgICAgICAgIGJ1ZmZlciB0aGF0IHdhcyBjdXJyZW50IGR1cmluZyA6bXpmaWxlIHN0YXJ0LgorCQkJYnVmZmVyIHRoYXQgd2FzIGN1cnJlbnQgZHVyaW5nIDptemZpbGUgc3RhcnQuCiAJCQlJZiB5b3Ugd2FudCB0byBhY2Nlc3Mgb3RoZXIgbmFtZXNwYWNlcywgdXNlCiAJCQkncGFyYW1ldGVyaXplJy4KIApAQCAtMTk2LDggKzE5Niw4IEBACiAgICAgKHNldC1idWZmLWxpbmUge2xpbmVucn0ge3N0cmluZ30gW2J1ZmZlcl0pCiAJCQkJICAgIFNldCBhIGxpbmUgaW4gYSBidWZmZXIuIElmIHtzdHJpbmd9IGlzICNmLAogCQkJCSAgICB0aGUgbGluZSBnZXRzIGRlbGV0ZWQuICBUaGUgW2J1ZmZlcl0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyZ3VtZW50IGlzIG9wdGlvbmFsLiBJZiBvbWl0dGVkLCB0aGUKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnQgYnVmZmVyIHdpbGwgYmUgdXNlZC4KKwkJCQkgICAgYXJndW1lbnQgaXMgb3B0aW9uYWwuIElmIG9taXR0ZWQsIHRoZQorCQkJCSAgICBjdXJyZW50IGJ1ZmZlciB3aWxsIGJlIHVzZWQuCiAgICAgKGdldC1idWZmLWxpbmUtbGlzdCB7c3RhcnR9IHtlbmR9IFtidWZmZXJdKQogCQkJCSAgICBHZXQgYSBsaXN0IG9mIGxpbmVzIGluIGEgYnVmZmVyLiB7U3RhcnR9CiAJCQkJICAgIGFuZCB7ZW5kfSBhcmUgMS1iYXNlZC4ge1N0YXJ0fSBpcwpAQCAtMjYyLDcgKzI2Miw3IEBACiAKIFRoZSBuYW1lcyBvZiB0aGUgRExMcyBtdXN0IG1hdGNoIHRoZSBNelNjaGVtZSB2ZXJzaW9uIFZpbSB3YXMgY29tcGlsZWQgd2l0aC4KIEZvciBNelNjaGVtZSB2ZXJzaW9uIDIwOSB0aGV5IHdpbGwgYmUgImxpYm16c2NoMjA5XzAwMC5kbGwiIGFuZAotImxpYm16Z2MyMDlfMDAwLmRsbCIuIFRvIGtub3cgZm9yIHN1cmUgZWRpdCAiZ3ZpbS5leGUiIGFuZCBzZWFyY2ggZm9yIAorImxpYm16Z2MyMDlfMDAwLmRsbCIuIFRvIGtub3cgZm9yIHN1cmUgZWRpdCAiZ3ZpbS5leGUiIGFuZCBzZWFyY2ggZm9yCiAibGlibXpzY2hcZFxkXGRfXGRcZFxkXC5kbGxcYyIuCiAKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL2lmX29sZS50eHQgYi9ydW50aW1lL2RvYy9pZl9vbGUudHh0CmluZGV4IDU2ZDA1YmMuLjk0ZGE3NWUgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvZG9jL2lmX29sZS50eHQKKysrIGIvcnVudGltZS9kb2MvaWZfb2xlLnR4dApAQCAtMSw0ICsxLDQgQEAKLSppZl9vbGUudHh0KiAgICBGb3IgVmltIHZlcnNpb24gNy4wZi4gIExhc3QgY2hhbmdlOiAyMDA2IE1hciAwNgorKmlmX29sZS50eHQqICAgIEZvciBWaW0gdmVyc2lvbiA3LjBnLiAgTGFzdCBjaGFuZ2U6IDIwMDYgQXByIDMwCiAKIAogCQkgIFZJTSBSRUZFUkVOQ0UgTUFOVUFMICAgIGJ5IFBhdWwgTW9vcmUKQEAgLTE2OSw3ICsxNjksNyBAQAogQWRkCiAgICAgIFRpdGxlICAgICAtIFZpbQogICAgICBDb21tYW5kICAgLSBjOlx2aW1cdmltNjNcZ3ZpbS5leGUKLSAgICAgQXJndW1lbnRzIC0gLS1zZXJ2ZXJuYW1lIFZTX05FVCAtLXJlbW90ZS1zaWxlbnQgIitjYWxsIGN1cnNvcigkKEN1ckxpbmUpLCAkKEN1ckNvbCkpIiAkKEl0ZW1QYXRoKSAgCisgICAgIEFyZ3VtZW50cyAtIC0tc2VydmVybmFtZSBWU19ORVQgLS1yZW1vdGUtc2lsZW50ICIrY2FsbCBjdXJzb3IoJChDdXJMaW5lKSwgJChDdXJDb2wpKSIgJChJdGVtUGF0aCkKICAgICAgSW5pdCBEaXIgIC0gRW1wdHkKIAogTm93LCB3aGVuIHlvdSBvcGVuIGEgZmlsZSBpbiAuTmV0LCB5b3UgY2FuIGNob29zZSBmcm9tIHRoZSAuTmV0IG1lbnU6CkBAIC0xODIsMTQgKzE4MiwxNCBAQAogSWYgeW91IHJlZmluZSB0aGlzIGZ1cnRoZXIsIHBsZWFzZSBwb3N0IGJhY2sgdG8gdGhlIFZpbSBtYWlsbGlzdCBzbyB3ZSBoYXZlIGEKIHJlY29yZCBvZiBpdC4KIAotLS1zZXJ2ZXJuYW1lIFZTX05FVCAKKy0tc2VydmVybmFtZSBWU19ORVQKIFRoaXMgd2lsbCBjcmVhdGUgYSBuZXcgaW5zdGFuY2Ugb2YgdmltIGNhbGxlZCBWU19ORVQuICBTbyBpZiB5b3Ugb3BlbiBtdWx0aXBsZQogZmlsZXMgZnJvbSBWUywgdGhleSB3aWxsIHVzZSB0aGUgc2FtZSBpbnN0YW5jZSBvZiBWaW0uICBUaGlzIGFsbG93cyB5b3UgdG8KIGhhdmUgbXVsdGlwbGUgY29waWVzIG9mIFZpbSBydW5uaW5nLCBidXQgeW91IGNhbiBjb250cm9sIHdoaWNoIG9uZSBoYXMgVlMKIGZpbGVzIGluIGl0LgogCi0tLXJlbW90ZS1zaWxlbnQgIitjYWxsIGN1cnNvcigxMCwgMjcpIiAKLSAgICAgICAgICAgICAgLSBQbGFjZXMgdGhlIGN1cnNvciBvbiBsaW5lIDEwIGNvbHVtbiAyNworLS1yZW1vdGUtc2lsZW50ICIrY2FsbCBjdXJzb3IoMTAsIDI3KSIKKwkgICAgICAtIFBsYWNlcyB0aGUgY3Vyc29yIG9uIGxpbmUgMTAgY29sdW1uIDI3CiBJbiBWaW0gPgogICAgOmggLS1yZW1vdGUtc2lsZW50IGZvciBtb3IgZGV0YWlscwogCmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy9pZl9wZXJsLnR4dCBiL3J1bnRpbWUvZG9jL2lmX3BlcmwudHh0CmluZGV4IDZhM2I2YWYuLjgwM2Y4NzMgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvZG9jL2lmX3BlcmwudHh0CisrKyBiL3J1bnRpbWUvZG9jL2lmX3BlcmwudHh0CkBAIC0xLDQgKzEsNCBAQAotKmlmX3BlcmwudHh0KiAgIEZvciBWaW0gdmVyc2lvbiA3LjBmLiAgTGFzdCBjaGFuZ2U6IDIwMDYgTWFyIDA2CisqaWZfcGVybC50eHQqICAgRm9yIFZpbSB2ZXJzaW9uIDcuMGcuICBMYXN0IGNoYW5nZTogMjAwNiBNYXIgMDYKIAogCiAJCSAgVklNIFJFRkVSRU5DRSBNQU5VQUwgICAgYnkgU3ZlbiBWZXJkb29sYWVnZQpkaWZmIC0tZ2l0IGEvcnVudGltZS9kb2MvaWZfcHl0aC50eHQgYi9ydW50aW1lL2RvYy9pZl9weXRoLnR4dAppbmRleCAwODFlZmM1Li5jOTZiYTlhIDEwMDY0NAotLS0gYS9ydW50aW1lL2RvYy9pZl9weXRoLnR4dAorKysgYi9ydW50aW1lL2RvYy9pZl9weXRoLnR4dApAQCAtMSw0ICsxLDQgQEAKLSppZl9weXRoLnR4dCogICBGb3IgVmltIHZlcnNpb24gNy4wZi4gIExhc3QgY2hhbmdlOiAyMDA2IEphbiAyMAorKmlmX3B5dGgudHh0KiAgIEZvciBWaW0gdmVyc2lvbiA3LjBnLiAgTGFzdCBjaGFuZ2U6IDIwMDYgQXByIDMwCiAKIAogCQkgIFZJTSBSRUZFUkVOQ0UgTUFOVUFMICAgIGJ5IFBhdWwgTW9vcmUKQEAgLTEzNCw3ICsxMzQsNyBAQAogCWV2YWx1YXRvciAoc2VlIHxleHByZXNzaW9ufCkuICBSZXR1cm5zIHRoZSBleHByZXNzaW9uIHJlc3VsdCBhczoKIAktIGEgc3RyaW5nIGlmIHRoZSBWaW0gZXhwcmVzc2lvbiBldmFsdWF0ZXMgdG8gYSBzdHJpbmcgb3IgbnVtYmVyCiAJLSBhIGxpc3QgaWYgdGhlIFZpbSBleHByZXNzaW9uIGV2YWx1YXRlcyB0byBhIFZpbSBsaXN0Ci0gIAktIGEgZGljdGlvbmFyeSBpZiB0aGUgVmltIGV4cHJlc3Npb24gZXZhbHVhdGVzIHRvIGEgVmltIGRpY3Rpb25hcnkKKwktIGEgZGljdGlvbmFyeSBpZiB0aGUgVmltIGV4cHJlc3Npb24gZXZhbHVhdGVzIHRvIGEgVmltIGRpY3Rpb25hcnkKIAlEaWN0aW9uYXJpZXMgYW5kIGxpc3RzIGFyZSByZWN1cnNpdmVseSBleHBhbmRlZC4KIAlFeGFtcGxlczogPgogCSAgICA6cHkgdGV4dF93aWR0aCA9IHZpbS5ldmFsKCImdHciKQpAQCAtMTQyLDcgKzE0Miw3IEBACiAJCQkJCQkjIHN0cmluZy5hdG9pKCkgdG8gY29udmVydCB0bwogCQkJCQkJIyBhIG51bWJlci4KIAotCSAgICA6cHkgdGFnTGlzdCA9IHZpbS5ldmFsKCd0YWdsaXN0KCJldmFsX2V4cHIiKScpIAorCSAgICA6cHkgdGFnTGlzdCA9IHZpbS5ldmFsKCd0YWdsaXN0KCJldmFsX2V4cHIiKScpCiA8CVRoZSBsYXR0ZXIgd2lsbCByZXR1cm4gYSBweXRob24gbGlzdCBvZiBweXRob24gZGljdHMsIGZvciBpbnN0YW5jZToKIAlbeydjbWQnOiAnL15ldmFsX2V4cHIoYXJnLCBuZXh0Y21kKSQvJywgJ3N0YXRpYyc6IDAsICduYW1lJzoKIAknZXZhbF9leHByJywgJ2tpbmQnOiAnZicsICdmaWxlbmFtZSc6ICcuL3NyYy9ldmFsLmMnfV0KZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL2lmX3J1YnkudHh0IGIvcnVudGltZS9kb2MvaWZfcnVieS50eHQKaW5kZXggZWI4YWRlMC4uOGY5NTdlMCAxMDA2NDQKLS0tIGEvcnVudGltZS9kb2MvaWZfcnVieS50eHQKKysrIGIvcnVudGltZS9kb2MvaWZfcnVieS50eHQKQEAgLTEsNCArMSw0IEBACi0qaWZfcnVieS50eHQqICAgRm9yIFZpbSB2ZXJzaW9uIDcuMGYuICBMYXN0IGNoYW5nZTogMjAwNiBNYXIgMjYKKyppZl9ydWJ5LnR4dCogICBGb3IgVmltIHZlcnNpb24gNy4wZy4gIExhc3QgY2hhbmdlOiAyMDA2IEFwciAzMAogCiAKIAkJICBWSU0gUkVGRVJFTkNFIE1BTlVBTCAgICBieSBTaHVnbyBNYWVkYQpAQCAtMTQ3LDcgKzE0Nyw3IEBACiBkZWxldGUoe259KQlEZWxldGVzIGEgbGluZSBmcm9tIHRoZSBidWZmZXIuIHtufSBpcyB0aGUgbGluZSBudW1iZXIuCiBhcHBlbmQoe259LCB7c3RyfSkKIAkJQXBwZW5kcyBhIGxpbmUgYWZ0ZXIgdGhlIGxpbmUge259LgotbGluZSAgICAgICAgICAgIFJldHVybnMgdGhlIGN1cnJlbnQgbGluZSBvZiB0aGUgYnVmZmVyIGlmIHRoZSBidWZmZXIgaXMKK2xpbmUJCVJldHVybnMgdGhlIGN1cnJlbnQgbGluZSBvZiB0aGUgYnVmZmVyIGlmIHRoZSBidWZmZXIgaXMKIAkJYWN0aXZlLgogbGluZSA9IHtzdHJ9ICAgIFNldHMgdGhlIGN1cnJlbnQgbGluZSBvZiB0aGUgYnVmZmVyIGlmIHRoZSBidWZmZXIgaXMgYWN0aXZlLgogbGluZV9udW1iZXIgICAgIFJldHVybnMgdGhlIG51bWJlciBvZiB0aGUgY3VycmVudCBsaW5lIGlmIHRoZSBidWZmZXIgaXMKZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL2lmX3NuaWZmLnR4dCBiL3J1bnRpbWUvZG9jL2lmX3NuaWZmLnR4dAppbmRleCAxNjY0YmIxLi5iZmZmMWJhIDEwMDY0NAotLS0gYS9ydW50aW1lL2RvYy9pZl9zbmlmZi50eHQKKysrIGIvcnVudGltZS9kb2MvaWZfc25pZmYudHh0CkBAIC0xLDQgKzEsNCBAQAotKmlmX3NuaWZmLnR4dCoJRm9yIFZpbSB2ZXJzaW9uIDcuMGYuICBMYXN0IGNoYW5nZTogMjAwNSBNYXIgMjkKKyppZl9zbmlmZi50eHQqCUZvciBWaW0gdmVyc2lvbiA3LjBnLiAgTGFzdCBjaGFuZ2U6IDIwMDUgTWFyIDI5CiAKIAogCQkgIFZJTSBSRUZFUkVOQ0UgTUFOVUFMCmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy9pZl90Y2wudHh0IGIvcnVudGltZS9kb2MvaWZfdGNsLnR4dAppbmRleCBlM2RjNDZkLi40MzJhNmJmIDEwMDY0NAotLS0gYS9ydW50aW1lL2RvYy9pZl90Y2wudHh0CisrKyBiL3J1bnRpbWUvZG9jL2lmX3RjbC50eHQKQEAgLTEsNCArMSw0IEBACi0qaWZfdGNsLnR4dCogICAgRm9yIFZpbSB2ZXJzaW9uIDcuMGYuICBMYXN0IGNoYW5nZTogMjAwNiBNYXIgMDYKKyppZl90Y2wudHh0KiAgICBGb3IgVmltIHZlcnNpb24gNy4wZy4gIExhc3QgY2hhbmdlOiAyMDA2IE1hciAwNgogCiAKIAkJICBWSU0gUkVGRVJFTkNFIE1BTlVBTCAgICBieSBJbmdvIFdpbGtlbgpkaWZmIC0tZ2l0IGEvcnVudGltZS9kb2MvaW5kZW50LnR4dCBiL3J1bnRpbWUvZG9jL2luZGVudC50eHQKaW5kZXggMzg0NDYyYi4uY2E5OTFjYSAxMDA2NDQKLS0tIGEvcnVudGltZS9kb2MvaW5kZW50LnR4dAorKysgYi9ydW50aW1lL2RvYy9pbmRlbnQudHh0CkBAIC0xLDQgKzEsNCBAQAotKmluZGVudC50eHQqICAgIEZvciBWaW0gdmVyc2lvbiA3LjBmLiAgTGFzdCBjaGFuZ2U6IDIwMDYgQXByIDI1CisqaW5kZW50LnR4dCogICAgRm9yIFZpbSB2ZXJzaW9uIDcuMGcuICBMYXN0IGNoYW5nZTogMjAwNiBBcHIgMzAKIAogCiAJCSAgVklNIFJFRkVSRU5DRSBNQU5VQUwgICAgYnkgQnJhbSBNb29sZW5hYXIKQEAgLTQxMiw4ICs0MTIsOCBAQAogCiAJCWNpbm89CQkJICBjaW5vPU0xID4KIAkJICBpZiAoY29uZDEgJiYJCSAgICBpZiAoY29uZDEgJiYKLQkJICAgICAgICAgY29uZDIJCQkgICBjb25kMgotCQkgICAgICkJCQkgICAgCSAgICkKKwkJCSBjb25kMgkJCSAgIGNvbmQyCisJCSAgICAgKQkJCQkgICApCiA8CiAJCQkJCSpqYXZhLWNpbm9wdGlvbnMqICpqYXZhLWluZGVudGluZyoKIAlqTiAgICBJbmRlbnQgamF2YSBhbm9ueW1vdXMgY2xhc3NlcyBjb3JyZWN0bHkuICBUaGUgdmFsdWUgJ04nIGlzCmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy9pbmRleC50eHQgYi9ydW50aW1lL2RvYy9pbmRleC50eHQKaW5kZXggMzMyYWQzNy4uNjVmNDljNCAxMDA2NDQKLS0tIGEvcnVudGltZS9kb2MvaW5kZXgudHh0CisrKyBiL3J1bnRpbWUvZG9jL2luZGV4LnR4dApAQCAtMSw0ICsxLDQgQEAKLSppbmRleC50eHQqICAgICBGb3IgVmltIHZlcnNpb24gNy4wZi4gIExhc3QgY2hhbmdlOiAyMDA2IEFwciAxMAorKmluZGV4LnR4dCogICAgIEZvciBWaW0gdmVyc2lvbiA3LjBnLiAgTGFzdCBjaGFuZ2U6IDIwMDYgQXByIDMwCiAKIAogCQkgIFZJTSBSRUZFUkVOQ0UgTUFOVUFMICAgIGJ5IEJyYW0gTW9vbGVuYWFyCkBAIC03NDgsNyArNzQ4LDcgQEAKIHxndXwJCWd1e21vdGlvbn0JMiAgbWFrZSBObW92ZSB0ZXh0IGxvd2VyY2FzZQogfGd2fAkJZ3YJCSAgIHJlc2VsZWN0IHRoZSBwcmV2aW91cyBWaXN1YWwgYXJlYQogfGd3fAkJZ3d7bW90aW9ufQkyICBmb3JtYXQgTm1vdmUgdGV4dCBhbmQga2VlcCBjdXJzb3IKLXxnQHwgICAgICAgICAgICBnQHttb3Rpb259ICAgICAgICAgY2FsbCAnb3BlcmF0b3JmdW5jJworfGdAfAkJZ0B7bW90aW9ufQkgICBjYWxsICdvcGVyYXRvcmZ1bmMnCiB8Z358CQlnfnttb3Rpb259CTIgIHN3YXAgY2FzZSBmb3IgTm1vdmUgdGV4dAogfGc8RG93bj58CWc8RG93bj4JCTEgIHNhbWUgYXMgImdqIgogfGc8RW5kPnwJZzxFbmQ+CQkxICBzYW1lIGFzICJnJCIKQEAgLTEzMzYsNyArMTMzNiw3IEBACiB8OnByb2ZkZWx8CTpwcm9mZFtlbF0Jc3RvcCBwcm9maWxpbmcgYSBmdW5jdGlvbiBvciBzY3JpcHQKIHw6cHJvZmlsZXwJOnByb2ZbaWxlXQlwcm9maWxpbmcgZnVuY3Rpb25zIGFuZCBzY3JpcHRzCiB8OnByb21wdGZpbmR8CTpwcm9bbXRmaW5kXQlvcGVuIEdVSSBkaWFsb2cgZm9yIHNlYXJjaGluZwotfDpwcm9tcHRyZXBsfCAJOnByb210cltlcGxdCW9wZW4gR1VJIGRpYWxvZyBmb3Igc2VhcmNoL3JlcGxhY2UKK3w6cHJvbXB0cmVwbHwJOnByb210cltlcGxdCW9wZW4gR1VJIGRpYWxvZyBmb3Igc2VhcmNoL3JlcGxhY2UKIHw6cGVybGRvfAk6cGVybGRbb10JZXhlY3V0ZSBQZXJsIGNvbW1hbmQgZm9yIGVhY2ggbGluZQogfDpwb3B8CQk6cG9bcF0JCWp1bXAgdG8gb2xkZXIgZW50cnkgaW4gdGFnIHN0YWNrCiB8OnBvcHVwfAk6cG9wW3VwXQlwb3B1cCBhIG1lbnUgYnkgbmFtZQpkaWZmIC0tZ2l0IGEvcnVudGltZS9kb2MvaW5zZXJ0LnR4dCBiL3J1bnRpbWUvZG9jL2luc2VydC50eHQKaW5kZXggYTBlZjYzYy4uZmM1NWU2YiAxMDA2NDQKLS0tIGEvcnVudGltZS9kb2MvaW5zZXJ0LnR4dAorKysgYi9ydW50aW1lL2RvYy9pbnNlcnQudHh0CkBAIC0xLDQgKzEsNCBAQAotKmluc2VydC50eHQqICAgIEZvciBWaW0gdmVyc2lvbiA3LjBmLiAgTGFzdCBjaGFuZ2U6IDIwMDYgQXByIDI2CisqaW5zZXJ0LnR4dCogICAgRm9yIFZpbSB2ZXJzaW9uIDcuMGcuICBMYXN0IGNoYW5nZTogMjAwNiBBcHIgMzAKIAogCiAJCSAgVklNIFJFRkVSRU5DRSBNQU5VQUwgICAgYnkgQnJhbSBNb29sZW5hYXIKQEAgLTEzNTEsNyArMTM1MSw3IEBACiAgICAgY2xhc3MuIFRvIGZpbmQgY2xhc3MgbG9jYXRpb24gYW5kIGNvbnRlbnRzIHRhZ3MgZmlsZSBpcyByZXF1aXJlZC4gQmVjYXVzZQogICAgIFBIUCBpc24ndCBzdHJvbmdseSB0eXBlZCBsYW5ndWFnZSB1c2VyIGNhbiB1c2UgQHZhciB0YWcgdG8gZGVjbGFyZSBjbGFzczogPgogCi0gICAgCS8qIEB2YXIgJG15VmFyIG15Q2xhc3MgKi8KKwkvKiBAdmFyICRteVZhciBteUNsYXNzICovCiAJJG15VmFyLT4KIDwKICAgICBTdGlsbCwgdG8gZmluZCBteUNsYXNzIGNvbnRlbnRzIHRhZ3MgZmlsZSBpcyByZXF1aXJlZC4KQEAgLTEzNzUsNyArMTM3NSw3IEBACiBvcmlnaW5hbCBIVE1MIGZpbGVzIGNvbXBsZXRpb24gb2YgdGFncyAoYW5kIG9ubHkgdGFncykgaXNuJ3QgY29udGV4dCBhd2FyZS4KIAogCi1SVUJZICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpmdC1ydWJ5LW9tbmkqCitSVUJZCQkJCQkJCSpmdC1ydWJ5LW9tbmkqCiAKIENvbXBsZXRpb24gb2YgUnVieSBjb2RlIHJlcXVpcmVzIHRoYXQgdmltIGJlIGJ1aWx0IHdpdGggfCtydWJ5fC4KIApAQCAtMTM4NSwxNiArMTM4NSwxNiBAQAogCiBUaGUgY29tcGxldGlvbnMgcHJvdmlkZWQgYnkgQ1RSTC1YIENUUkwtTyBhcmUgc2Vuc2l0aXZlIHRvIHRoZSBjb250ZXh0OgogCi0gICAgICAgICAgQ09OVEVYVCAgICAgICAgICAgICAgICAgICAgICAgICAgQ09NUExFVElPTlMgUFJPVklERUQgfgorCSAgQ09OVEVYVAkJCSAgIENPTVBMRVRJT05TIFBST1ZJREVEIH4KIAogIDEuIE5vdCBpbnNpZGUgYSBjbGFzcyBkZWZpbml0aW9uICAgIENsYXNzZXMsIGNvbnN0YW50cyBhbmQgZ2xvYmFscwogCi0gMi4gSW5zaWRlIGEgY2xhc3MgZGVmaW5pdGlvbiAgICAgICAgTWV0aG9kcyBvciBjb25zdGFudHMgZGVmaW5lZCBpbiB0aGUgY2xhc3MKKyAyLiBJbnNpZGUgYSBjbGFzcyBkZWZpbml0aW9uCSAgICAgTWV0aG9kcyBvciBjb25zdGFudHMgZGVmaW5lZCBpbiB0aGUgY2xhc3MKIAotIDMuIEFmdGVyICcuJywgJzo6JyBvciAnOicgICAgICAgICAgIE1ldGhvZHMgYXBwbGljYWJsZSB0byB0aGUgb2JqZWN0IGJlaW5nCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXJlZmVyZW5jZWQKKyAzLiBBZnRlciAnLicsICc6Oicgb3IgJzonCSAgICAgTWV0aG9kcyBhcHBsaWNhYmxlIHRvIHRoZSBvYmplY3QgYmVpbmcKKwkJCQkgICAgICAgZGVyZWZlcmVuY2VkCiAKLSA0LiBBZnRlciAnOicgb3IgJzpmb28nICAgICAgICAgICAgICBTeW1ib2wgbmFtZSAoYmVnaW5uaW5nIHdpdGggJ2ZvbycpCisgNC4gQWZ0ZXIgJzonIG9yICc6Zm9vJwkJICAgICBTeW1ib2wgbmFtZSAoYmVnaW5uaW5nIHdpdGggJ2ZvbycpCiAKIE5vdGVzOgogIC0gVmltIHdpbGwgbG9hZC9ldmFsdWF0ZSBjb2RlIGluIG9yZGVyIHRvIHByb3ZpZGUgY29tcGxldGlvbnMuICBUaGlzIG1heQpAQCAtMTU1Nyw3ICsxNTU3LDcgQEAKIHhzbC52aW0gZm9yIGV4YW1wbGUuCiAKIAotRFREIC0+IFZpbSAgICAgICAgICAgICAgICAgICAgIAkJCQkJKmR0ZDJ2aW0qCitEVEQgLT4gVmltCQkJCQkJCSpkdGQydmltKgogCiBPbiB8d3d3fCBpcyBzY3JpcHQgfGR0ZDJ2aW18IHdoaWNoIHBhcnNlcyBEVEQgYW5kIGNyZWF0ZXMgWE1MIGRhdGEgZmlsZQogZm9yIFZpbSBYTUwgb21uaSBjb21wbGV0aW9uLgpAQCAtMTU2NSw3ICsxNTY1LDcgQEAKICAgICBkdGQydmltOiBodHRwOi8vd3d3LnZpbS5vcmcvc2NyaXB0cy9zY3JpcHQucGhwP3NjcmlwdF9pZD0xNDYyCiAKIENoZWNrIHRoZXJlIGFuZCBiZWdpbm5pbmcgb2YgZmlsZSBmb3IgZGV0YWlscyBvZiB1c2FnZS4KLVNjcmlwdCByZXF1aXJlcyBwZXJsIGFuZDogCitTY3JpcHQgcmVxdWlyZXMgcGVybCBhbmQ6CiAKICAgICBwZXJsU0dNTDogaHR0cDovL3NhdmFubmFoLm5vbmdudS5vcmcvcHJvamVjdHMvcGVybHNnbWwKIApkaWZmIC0tZ2l0IGEvcnVudGltZS9kb2MvaW50cm8udHh0IGIvcnVudGltZS9kb2MvaW50cm8udHh0CmluZGV4IDZjZjUwMWEuLjQyNTlhYjUgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvZG9jL2ludHJvLnR4dAorKysgYi9ydW50aW1lL2RvYy9pbnRyby50eHQKQEAgLTEsNCArMSw0IEBACi0qaW50cm8udHh0KiAgICAgRm9yIFZpbSB2ZXJzaW9uIDcuMGYuICBMYXN0IGNoYW5nZTogMjAwNiBBcHIgMjAKKyppbnRyby50eHQqICAgICBGb3IgVmltIHZlcnNpb24gNy4wZy4gIExhc3QgY2hhbmdlOiAyMDA2IEFwciAyMAogCiAKIAkJICBWSU0gUkVGRVJFTkNFIE1BTlVBTCAgICBieSBCcmFtIE1vb2xlbmFhcgpkaWZmIC0tZ2l0IGEvcnVudGltZS9kb2MvbWFwLnR4dCBiL3J1bnRpbWUvZG9jL21hcC50eHQKaW5kZXggMmM1MTVjMi4uMjNhZjhiNSAxMDA2NDQKLS0tIGEvcnVudGltZS9kb2MvbWFwLnR4dAorKysgYi9ydW50aW1lL2RvYy9tYXAudHh0CkBAIC0xLDQgKzEsNCBAQAotKm1hcC50eHQqICAgICAgIEZvciBWaW0gdmVyc2lvbiA3LjBmLiAgTGFzdCBjaGFuZ2U6IDIwMDYgQXByIDI1CisqbWFwLnR4dCogICAgICAgRm9yIFZpbSB2ZXJzaW9uIDcuMGcuICBMYXN0IGNoYW5nZTogMjAwNiBBcHIgMzAKIAogCiAJCSAgVklNIFJFRkVSRU5DRSBNQU5VQUwgICAgYnkgQnJhbSBNb29sZW5hYXIKQEAgLTIxOCw4ICsyMTgsMTQgQEAKIHRleHQgYmVmb3JlIHRoZSBjdXJzb3IgYW5kIHN0YXJ0IG9tbmkgY29tcGxldGlvbiB3aGVuIHNvbWUgY29uZGl0aW9uIGlzIG1ldC4KIAogQmUgdmVyeSBjYXJlZnVsIGFib3V0IHNpZGUgZWZmZWN0cyEgIFRoZSBleHByZXNzaW9uIGlzIGV2YWx1YXRlZCB3aGlsZQotb2J0YWluaW5nIGNoYXJhY3RlcnMsIGlmIHlvdSBjaGFuZ2UgYnVmZmVyIHRleHQsIG1vdmUgdGhlIGN1cnNvciwgZWRpdCBhbm90aGVyCi1maWxlLCBldGMuIHlvdSBtYXkgdmVyeSB3ZWxsIG1ha2UgY29tbWFuZCBkeXNmdW5jdGlvbmFsLgorb2J0YWluaW5nIGNoYXJhY3RlcnMsIHlvdSBtYXkgdmVyeSB3ZWxsIG1ha2UgdGhlIGNvbW1hbmQgZHlzZnVuY3Rpb25hbC4KK0ZvciB0aGlzIHJlYXNvbiB0aGUgZm9sbG93aW5nIGlzIGJsb2NrZWQ6CistIGNoYW5naW5nIHRoZSBidWZmZXIgdGV4dCB8dGV4dGxvY2t8CistIGVkaXRpbmcgYW5vdGhlciBidWZmZXIKKy0gdGhlIHw6bm9ybWFsfCBjb21tYW5kCistIG1vdmluZyB0aGUgY3Vyc29yIGlzIGFsbG93ZWQsIGJ1dCBpdCBpcyByZXN0b3JlZCBhZnRlcndhcmRzCitJZiB5b3Ugd2FudCB0aGUgbWFwcGluZyB0byBkbyBhbnkgb2YgdGhlc2UgbGV0IHRoZSByZXR1cm5lZCBjaGFyYWN0ZXJzIGRvCit0aGF0LgogCiBIZXJlIGlzIGFuIGV4YW1wbGUgdGhhdCBpbnNlcnRzIGEgbGlzdCBudW1iZXIgdGhhdCBpbmNyZWFzZXM6ID4KIAlsZXQgY291bnRlciA9IDAKQEAgLTI2OSwyOCArMjc1LDI4IEBACiAKIAkJCSptYXBtb2RlLW52byogKm1hcG1vZGUtbiogKm1hcG1vZGUtdiogKm1hcG1vZGUtbyoKICAgICBjb21tYW5kczoJCQkJICAgICAgbW9kZXM6IH4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5vcm1hbCAgVmlzdWFsK1NlbGVjdCAgT3BlcmF0b3ItcGVuZGluZyB+Ci06bWFwICAgOm5vcmVtYXAgICA6dW5tYXAgICA6bWFwY2xlYXIgICAgIHllcyAgICAgICAgeWVzICAgICAgICAgICAgeWVzCi06bm1hcCAgOm5ub3JlbWFwICA6bnVubWFwICA6bm1hcGNsZWFyICAgIHllcyAgICAgICAgIC0gICAgICAgICAgICAgIC0KLTp2bWFwICA6dm5vcmVtYXAgIDp2dW5tYXAgIDp2bWFwY2xlYXIgICAgIC0gICAgICAgICB5ZXMgICAgICAgICAgICAgLQotOm9tYXAgIDpvbm9yZW1hcCAgOm91bm1hcCAgOm9tYXBjbGVhciAgICAgLSAgICAgICAgICAtICAgICAgICAgICAgIHllcworCQkJCSAgICAgICBOb3JtYWwgIFZpc3VhbCtTZWxlY3QgIE9wZXJhdG9yLXBlbmRpbmcgfgorOm1hcCAgIDpub3JlbWFwICAgOnVubWFwICAgOm1hcGNsZWFyCSB5ZXMJICAgIHllcwkJICAgeWVzCis6bm1hcCAgOm5ub3JlbWFwICA6bnVubWFwICA6bm1hcGNsZWFyCSB5ZXMJICAgICAtCQkgICAgLQorOnZtYXAgIDp2bm9yZW1hcCAgOnZ1bm1hcCAgOnZtYXBjbGVhcgkgIC0JICAgIHllcwkJICAgIC0KKzpvbWFwICA6b25vcmVtYXAgIDpvdW5tYXAgIDpvbWFwY2xlYXIJICAtCSAgICAgLQkJICAgeWVzCiAKIDpudW5tYXAgY2FuIGFsc28gYmUgdXNlZCBvdXRzaWRlIG9mIGEgbW9uYXN0ZXJ5LgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm1hcG1vZGUteCogKm1hcG1vZGUtcyoKKwkJCQkJCSptYXBtb2RlLXgqICptYXBtb2RlLXMqCiBTb21lIGNvbW1hbmRzIHdvcmsgYm90aCBpbiBWaXN1YWwgYW5kIFNlbGVjdCBtb2RlLCBzb21lIGluIG9ubHkgb25lLiAgTm90ZQogdGhhdCBxdWl0ZSBvZnRlbiAiVmlzdWFsIiBpcyBtZW50aW9uZWQgd2hlcmUgYm90aCBWaXN1YWwgYW5kIFNlbGVjdCBtb2RlCiBhcHBseS4gfFNlbGVjdC1tb2RlLW1hcHBpbmd8CiAKLSAgICBjb21tYW5kczogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtb2RlczogfgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVmlzdWFsICAgIFNlbGVjdCB+Ci06dm1hcCAgOnZub3JlbWFwICA6dnVubWFwICA6dm1hcGNsZWFyICAgICAgIHllcyAgICAgIHllcwotOnhtYXAgIDp4bm9yZW1hcCAgOnh1bm1hcCAgOnhtYXBjbGVhciAgICAgICB5ZXMgICAgICAgLQotOnNtYXAgIDpzbm9yZW1hcCAgOnN1bm1hcCAgOnNtYXBjbGVhciAgICAgICAtICAgICAgICB5ZXMKKyAgICBjb21tYW5kczoJCQkJICAgICAgbW9kZXM6IH4KKwkJCQkJICBWaXN1YWwgICAgU2VsZWN0IH4KKzp2bWFwICA6dm5vcmVtYXAgIDp2dW5tYXAgIDp2bWFwY2xlYXIJICAgIHllcyAgICAgIHllcworOnhtYXAgIDp4bm9yZW1hcCAgOnh1bm1hcCAgOnhtYXBjbGVhcgkgICAgeWVzICAgICAgIC0KKzpzbWFwICA6c25vcmVtYXAgIDpzdW5tYXAgIDpzbWFwY2xlYXIJICAgIC0JICAgICB5ZXMKIAogCQkJKm1hcG1vZGUtaWMqICptYXBtb2RlLWkqICptYXBtb2RlLWMqICptYXBtb2RlLWwqCiBTb21lIGNvbW1hbmRzIHdvcmsgYm90aCBpbiBJbnNlcnQgbW9kZSBhbmQgQ29tbWFuZC1saW5lIG1vZGUsIHNvbWUgbm90OgogCi0gICAgY29tbWFuZHM6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbW9kZXM6IH4KKyAgICBjb21tYW5kczoJCQkJICAgICAgbW9kZXM6IH4KIAkJCQkJICBJbnNlcnQgIENvbW1hbmQtbGluZQlMYW5nLUFyZyB+CiA6bWFwISAgOm5vcmVtYXAhICA6dW5tYXAhICA6bWFwY2xlYXIhCSAgICB5ZXMJICAgICAgIHllcwkgICAtCiA6aW1hcCAgOmlub3JlbWFwICA6aXVubWFwICA6aW1hcGNsZWFyCSAgICB5ZXMJCS0JICAgLQpAQCAtMzY2LDcgKzM3Miw3IEBACiAKIAk6dmVyYm9zZSBtYXAgPEMtVz4qCiAJbiAgPEMtVz4qICAgICAgKiA8Qy1XPjxDLVM+KgotCSAgICAgICAgTGFzdCBzZXQgZnJvbSAvaG9tZS9hYmNkLy52aW1yYworCQlMYXN0IHNldCBmcm9tIC9ob21lL2FiY2QvLnZpbXJjCiAKIFNlZSB8OnZlcmJvc2UtY21kfCBmb3IgbW9yZSBpbmZvcm1hdGlvbi4KIApAQCAtODcyLDcgKzg3OCw3IEBACiB3YXMgbGFzdCBkZWZpbmVkLiAgRXhhbXBsZTogPgogCiAJOnZlcmJvc2UgYWJicmV2aWF0ZQotCSEgIHRlaCAgICAgICAgICAgdGhlCisJISAgdGVoCQkgdGhlCiAJCUxhc3Qgc2V0IGZyb20gL2hvbWUvYWJjZC92aW0vYWJici52aW0KIAogU2VlIHw6dmVyYm9zZS1jbWR8IGZvciBtb3JlIGluZm9ybWF0aW9uLgpAQCAtMTA4MywxMCArMTA4OSwxMCBAQAogbGFzdCBkZWZpbmVkLiBFeGFtcGxlOiA+CiAKICAgICA6dmVyYm9zZSBjb21tYW5kIFRPaHRtbAotCU5hbWUgICAgICAgIEFyZ3MgUmFuZ2UgQ29tcGxldGUgIERlZmluaXRpb24KLQlUT2h0bWwgICAgICAwICAgICUgICAgICAgICAgICAgICA6Y2FsbCBDb252ZXJ0MkhUTUwoPGxpbmUxPiwgPGxpbmUyPikKLQkgICAgTGFzdCBzZXQgZnJvbSAvdXNyL3NoYXJlL3ZpbS92aW0tNy4wL3BsdWdpbi90b2h0bWwudmltCi08Cis8CU5hbWUJICAgIEFyZ3MgUmFuZ2UgQ29tcGxldGUgIERlZmluaXRpb24gfgorCVRPaHRtbAkgICAgMAkgJQkJIDpjYWxsIENvbnZlcnQySFRNTCg8bGluZTE+LCA8bGluZTI+KSB+CisJICAgIExhc3Qgc2V0IGZyb20gL3Vzci9zaGFyZS92aW0vdmltLTcuMC9wbHVnaW4vdG9odG1sLnZpbSB+CisKIFNlZSB8OnZlcmJvc2UtY21kfCBmb3IgbW9yZSBpbmZvcm1hdGlvbi4KIAogCQkJCQkJCSpFMTc0KiAqRTE4MioKQEAgLTEyOTUsNyArMTMwMSw3IEBACiBpcyBhIHNwZWNpYWwgZm9ybSA8Zi1hcmdzPiAoImZ1bmN0aW9uIGFyZ3MiKS4gIFRoaXMgc3BsaXRzIHRoZSBjb21tYW5kCiBhcmd1bWVudHMgYXQgc3BhY2VzIGFuZCBUYWJzLCBxdW90ZXMgZWFjaCBhcmd1bWVudCBpbmRpdmlkdWFsbHksIGFuZCB0aGUKIDxmLWFyZ3M+IHNlcXVlbmNlIGlzIHJlcGxhY2VkIGJ5IHRoZSBjb21tYS1zZXBhcmF0ZWQgbGlzdCBvZiBxdW90ZWQgYXJndW1lbnRzLgotU2VlIHRoZSBNeWNtZCBleGFtcGxlIGJlbG93LiAgSWYgbm8gYXJndW1lbnRzIGFyZSBnaXZlbiA8Zi1hcmdzPiBpcyByZW1vdmVkLiAKK1NlZSB0aGUgTXljbWQgZXhhbXBsZSBiZWxvdy4gIElmIG5vIGFyZ3VtZW50cyBhcmUgZ2l2ZW4gPGYtYXJncz4gaXMgcmVtb3ZlZC4KIAogRXhhbXBsZXMgPgogCmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy9tYnl0ZS50eHQgYi9ydW50aW1lL2RvYy9tYnl0ZS50eHQKaW5kZXggY2M4ZTcwMC4uNWQ4OWJmMSAxMDA2NDQKLS0tIGEvcnVudGltZS9kb2MvbWJ5dGUudHh0CisrKyBiL3J1bnRpbWUvZG9jL21ieXRlLnR4dApAQCAtMSw0ICsxLDQgQEAKLSptYnl0ZS50eHQqICAgICBGb3IgVmltIHZlcnNpb24gNy4wZi4gIExhc3QgY2hhbmdlOiAyMDA2IEFwciAyMQorKm1ieXRlLnR4dCogICAgIEZvciBWaW0gdmVyc2lvbiA3LjBnLiAgTGFzdCBjaGFuZ2U6IDIwMDYgQXByIDMwCiAKIAogCQkgIFZJTSBSRUZFUkVOQ0UgTUFOVUFMCSAgYnkgQnJhbSBNb29sZW5hYXIgZXQgYWwuCkBAIC0zNTIsNyArMzUyLDcgQEAKIHUgICB1Y3MtMmJlCXNhbWUgYXMgdWNzLTIgKGJpZyBlbmRpYW4pCiB1ICAgdWNzLTRiZQlzYW1lIGFzIHVjcy00IChiaWcgZW5kaWFuKQogICAgIGRlZmF1bHQgICAgIHN0YW5kcyBmb3IgdGhlIGRlZmF1bHQgdmFsdWUgb2YgJ2VuY29kaW5nJywgZGVwZW5kcyBvbiB0aGUKLSAgICAJCWVudmlyb25tZW50CisJCWVudmlyb25tZW50CiAKIEZvciB0aGUgVUNTIGNvZGVzIHRoZSBieXRlIG9yZGVyIG1hdHRlcnMuICBUaGlzIGlzIHRyaWNreSwgdXNlIFVURi04IHdoZW5ldmVyCiB5b3UgY2FuLiAgVGhlIGRlZmF1bHQgaXMgdG8gdXNlIGJpZy1lbmRpYW4gKG1vc3Qgc2lnbmlmaWNhbnQgYnl0ZSBjb21lcwpAQCAtNzc0LDcgKzc3NCw3IEBACiAgIGxvY2FsZSBpZiB5b3UgbWFrZSBhIGNvcnJlY3QgaW5wdXQgdGFibGUuICBYY2luIGNhbiBiZSBmb3VuZCBhdDoKICAgaHR0cDovL3hjaW4ubGludXgub3JnLnR3LwogICBPdGhlcnMgYXJlIHNjaW06IGh0dHA6Ly9zY2ltLmZyZWVkZXNrdG9wLm9yZy8gYW5kIGZjaXR4OgotICBodHRwOi8vd3d3LmZjaXR4Lm9yZy8gCisgIGh0dHA6Ly93d3cuZmNpdHgub3JnLwogCiAtIENvbnZlcnNpb24gU2VydmVyCiAJCQkJCQkJKmNvbnZlcnNpb24tc2VydmVyKgpAQCAtMTI2MSw3ICsxMjYxLDcgQEAKIAkJCQkJKm1ieXRlLWNvbWJpbmluZyogKm1ieXRlLWNvbXBvc2luZyoKIEEgY29tcG9zaW5nIG9yIGNvbWJpbmluZyBjaGFyYWN0ZXIgaXMgdXNlZCB0byBjaGFuZ2UgdGhlIG1lYW5pbmcgb2YgdGhlCiBjaGFyYWN0ZXIgYmVmb3JlIGl0LiAgVGhlIGNvbWJpbmluZyBjaGFyYWN0ZXJzIGFyZSBkcmF3biBvbiB0b3Agb2YgdGhlCi1wcmVjZWRpbmcgY2hhcmFjdGVyLiAgCitwcmVjZWRpbmcgY2hhcmFjdGVyLgogVXAgdG8gdHdvIGNvbWJpbmluZyBjaGFyYWN0ZXJzIGNhbiBiZSB1c2VkIGJ5IGRlZmF1bHQuICBUaGlzIGNhbiBiZSBjaGFuZ2VkCiB3aXRoIHRoZSAnbWF4Y29tYmluZScgb3B0aW9uLgogV2hlbiBlZGl0aW5nIHRleHQgYSBjb21wb3NpbmcgY2hhcmFjdGVyIGlzIG1vc3RseSBjb25zaWRlcmVkIHBhcnQgb2YgdGhlCmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy9tZXNzYWdlLnR4dCBiL3J1bnRpbWUvZG9jL21lc3NhZ2UudHh0CmluZGV4IDVlM2FkMmQuLjg5YjBmMGMgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvZG9jL21lc3NhZ2UudHh0CisrKyBiL3J1bnRpbWUvZG9jL21lc3NhZ2UudHh0CkBAIC0xLDQgKzEsNCBAQAotKm1lc3NhZ2UudHh0KiAgIEZvciBWaW0gdmVyc2lvbiA3LjBmLiAgTGFzdCBjaGFuZ2U6IDIwMDYgQXByIDExCisqbWVzc2FnZS50eHQqICAgRm9yIFZpbSB2ZXJzaW9uIDcuMGcuICBMYXN0IGNoYW5nZTogMjAwNiBBcHIgMzAKIAogCiAJCSAgVklNIFJFRkVSRU5DRSBNQU5VQUwgICAgYnkgQnJhbSBNb29sZW5hYXIKQEAgLTI5Nyw3ICsyOTcsNyBAQAogICB0byBkZWxldGUgdGhlIHN3YXBmaWxlLiAgRWRpdCB7ZmlsZW5hbWV9IHRvIGZpbmQgb3V0IGluZm9ybWF0aW9uIGFib3V0IHRoZQogICBzd2FwZmlsZS4KIC0gSWYgeW91IHdhbnQgdG8gd3JpdGUgYW55d2F5IHByZXBlbmQgIjpzaWxlbnQhIiB0byB0aGUgY29tbWFuZC4gIEZvciBleGFtcGxlOiA+Ci0gIAk6c2lsZW50ISB3ISAvdG1wL3Rlc3QKKwk6c2lsZW50ISB3ISAvdG1wL3Rlc3QKIDwgVGhlIHNwZWNpYWwgY29tbWFuZCBpcyBuZWVkZWQsIHNpbmNlIHlvdSBhbHJlYWR5IGFkZGVkIHRoZSAhIGZvciBvdmVyd3JpdGluZwogICBhbiBleGlzdGluZyBmaWxlLgogCkBAIC03OTYsNyArNzk2LDcgQEAKICAgICAgZAkJCQkJZG93biBhIHBhZ2UgKGhhbGYgYSBzY3JlZW4pCiAgICAgIDxTcGFjZT4gb3IgPFBhZ2VEb3duPgkJZG93biBhIHNjcmVlbgogICAgICBHCQkJCQlkb3duIGFsbCB0aGUgd2F5LCB1bnRpbCB0aGUgaGl0LWVudGVyCi0gICAgIAkJCQkJcHJvbXB0CisJCQkJCXByb21wdAogCiAgICAgIDxCUz4gb3IgayBvciA8VXA+CQkJb25lIGxpbmUgYmFjayAoKikKICAgICAgdQkJCQkJdXAgYSBwYWdlIChoYWxmIGEgc2NyZWVuKSAoKikKZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL21sYW5nLnR4dCBiL3J1bnRpbWUvZG9jL21sYW5nLnR4dAppbmRleCA5MTFmMmEwLi5hMzhiOGNkIDEwMDY0NAotLS0gYS9ydW50aW1lL2RvYy9tbGFuZy50eHQKKysrIGIvcnVudGltZS9kb2MvbWxhbmcudHh0CkBAIC0xLDQgKzEsNCBAQAotKm1sYW5nLnR4dCogICAgIEZvciBWaW0gdmVyc2lvbiA3LjBmLiAgTGFzdCBjaGFuZ2U6IDIwMDQgRmViIDI0CisqbWxhbmcudHh0KiAgICAgRm9yIFZpbSB2ZXJzaW9uIDcuMGcuICBMYXN0IGNoYW5nZTogMjAwNCBGZWIgMjQKIAogCiAJCSAgVklNIFJFRkVSRU5DRSBNQU5VQUwgICAgYnkgQnJhbSBNb29sZW5hYXIKZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL21vdGlvbi50eHQgYi9ydW50aW1lL2RvYy9tb3Rpb24udHh0CmluZGV4IDcxNzNmYWYuLjE2YzkyOWMgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvZG9jL21vdGlvbi50eHQKKysrIGIvcnVudGltZS9kb2MvbW90aW9uLnR4dApAQCAtMSw0ICsxLDQgQEAKLSptb3Rpb24udHh0KiAgICBGb3IgVmltIHZlcnNpb24gNy4wZi4gIExhc3QgY2hhbmdlOiAyMDA2IEFwciAyOQorKm1vdGlvbi50eHQqICAgIEZvciBWaW0gdmVyc2lvbiA3LjBnLiAgTGFzdCBjaGFuZ2U6IDIwMDYgQXByIDMwCiAKIAogCQkgIFZJTSBSRUZFUkVOQ0UgTUFOVUFMICAgIGJ5IEJyYW0gTW9vbGVuYWFyCkBAIC03ODAsNyArNzgwLDcgQEAKIDwJCQl0byBsaXN0IG1hcmtzICdhJyBhbmQgJ0InLiAge25vdCBpbiBWaX0KIAogCQkJCQkJCSo6ZGVsbSogKjpkZWxtYXJrcyoKLTpkZWxtW2Fya3NdIHttYXJrc30gCURlbGV0ZSB0aGUgc3BlY2lmaWVkIG1hcmtzLiAgTWFya3MgdGhhdCBjYW4gYmUgZGVsZXRlZAorOmRlbG1bYXJrc10ge21hcmtzfQlEZWxldGUgdGhlIHNwZWNpZmllZCBtYXJrcy4gIE1hcmtzIHRoYXQgY2FuIGJlIGRlbGV0ZWQKIAkJCWluY2x1ZGUgQS1aIGFuZCAwLTkuICBZb3UgY2Fubm90IGRlbGV0ZSB0aGUgJyBtYXJrLgogCQkJVGhleSBjYW4gYmUgc3BlY2lmaWVkIGJ5IGdpdmluZyB0aGUgbGlzdCBvZiBtYXJrCiAJCQluYW1lcywgb3Igd2l0aCBhIHJhbmdlLCBzZXBhcmF0ZWQgd2l0aCBhIGRhc2guICBTcGFjZXMKQEAgLTg1NCwxMSArODU0LDE3IEBACiAKIAkJCQkJCQkqJzwqICpgPCoKICc8ICBgPAkJCVRvIHRoZSBmaXJzdCBjaGFyYWN0ZXIgb2YgdGhlIGxhc3Qgc2VsZWN0ZWQgVmlzdWFsCi0JCQlhcmVhIGluIHRoZSBjdXJyZW50IGJ1ZmZlci4gIHtub3QgaW4gVml9LgorCQkJYXJlYSBpbiB0aGUgY3VycmVudCBidWZmZXIuICBGb3IgYmxvY2sgbW9kZSBpdCBtYXkKKwkJCWFsc28gYmUgdGhlIGxhc3QgY2hhcmFjdGVyIGluIHRoZSBmaXJzdCBsaW5lICh0byBiZQorCQkJYWJsZSB0byBkZWZpbmUgdGhlIGJsb2NrKS4gIHtub3QgaW4gVml9LgogCiAJCQkJCQkJKic+KiAqYD4qCiAnPiAgYD4JCQlUbyB0aGUgbGFzdCBjaGFyYWN0ZXIgb2YgdGhlIGxhc3Qgc2VsZWN0ZWQgVmlzdWFsCi0JCQlhcmVhIGluIHRoZSBjdXJyZW50IGJ1ZmZlci4gIHtub3QgaW4gVml9LgorCQkJYXJlYSBpbiB0aGUgY3VycmVudCBidWZmZXIuICBGb3IgYmxvY2sgbW9kZSBpdCBtYXkKKwkJCWFsc28gYmUgdGhlIGZpcnN0IGNoYXJhY3RlciBvZiB0aGUgbGFzdCBsaW5lICh0byBiZQorCQkJYWJsZSB0byBkZWZpbmUgdGhlIGJsb2NrKS4gIE5vdGUgdGhhdCAnc2VsZWN0aW9uJworCQkJYXBwbGllcywgdGhlIHBvc2l0aW9uIG1heSBiZSBqdXN0IGFmdGVyIHRoZSBWaXN1YWwKKwkJCWFyZWEuICB7bm90IGluIFZpfS4KIAogCQkJCQkJCSonJyogKmBgKgogJycgIGBgCQkJVG8gdGhlIHBvc2l0aW9uIGJlZm9yZSB0aGUgbGF0ZXN0IGp1bXAsIG9yIHdoZXJlIHRoZQpAQCAtOTg1LDcgKzk5MSw3IEBACiA8CiAJCQlOb3RlIHRoYXQgIjprZWVwanVtcHMiIG11c3QgYmUgdXNlZCBmb3IgZXZlcnkgY29tbWFuZC4KIAkJCVdoZW4gaW52b2tpbmcgYSBmdW5jdGlvbiB0aGUgY29tbWFuZHMgaW4gdGhhdCBmdW5jdGlvbgotCQkJY2FuIHN0aWxsIGNoYW5nZSB0aGUganVtcGxpc3QuICBBbHNvLCBmb3IgCisJCQljYW4gc3RpbGwgY2hhbmdlIHRoZSBqdW1wbGlzdC4gIEFsc28sIGZvcgogCQkJIjprZWVwanVtcHMgZXhlICdjb21tYW5kICciIHRoZSAiY29tbWFuZCIgd29uJ3Qga2VlcAogCQkJanVtcHMuICBJbnN0ZWFkIHVzZTogIjpleGUgJ2tlZXBqdW1wcyBjb21tYW5kJyIKIApkaWZmIC0tZ2l0IGEvcnVudGltZS9kb2MvbmV0YmVhbnMudHh0IGIvcnVudGltZS9kb2MvbmV0YmVhbnMudHh0CmluZGV4IDNmMDBkYjcuLjk3OTM5NTkgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvZG9jL25ldGJlYW5zLnR4dAorKysgYi9ydW50aW1lL2RvYy9uZXRiZWFucy50eHQKQEAgLTEsNCArMSw0IEBACi0qbmV0YmVhbnMudHh0KiAgRm9yIFZpbSB2ZXJzaW9uIDcuMGYuICBMYXN0IGNoYW5nZTogMjAwNiBNYXIgMDkKKypuZXRiZWFucy50eHQqICBGb3IgVmltIHZlcnNpb24gNy4wZy4gIExhc3QgY2hhbmdlOiAyMDA2IE1hciAwOQogCiAKIAkJICBWSU0gUkVGRVJFTkNFIE1BTlVBTCAgICBieSBHb3Jkb24gUHJpZXVyCmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy9vcHRpb25zLnR4dCBiL3J1bnRpbWUvZG9jL29wdGlvbnMudHh0CmluZGV4IDc0OWZiNTguLmFmNTI3OGYgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvZG9jL29wdGlvbnMudHh0CisrKyBiL3J1bnRpbWUvZG9jL29wdGlvbnMudHh0CkBAIC0xLDQgKzEsNCBAQAotKm9wdGlvbnMudHh0KglGb3IgVmltIHZlcnNpb24gNy4wZi4gIExhc3QgY2hhbmdlOiAyMDA2IEFwciAyOQorKm9wdGlvbnMudHh0KglGb3IgVmltIHZlcnNpb24gNy4wZy4gIExhc3QgY2hhbmdlOiAyMDA2IEFwciAzMAogCiAKIAkJICBWSU0gUkVGRVJFTkNFIE1BTlVBTAkgIGJ5IEJyYW0gTW9vbGVuYWFyCkBAIC0xMTkyLDcgKzExOTIsNyBAQAogCQkJd3JpdHRlbgogCSAgbm93cml0ZQlidWZmZXIgd2hpY2ggd2lsbCBub3QgYmUgd3JpdHRlbgogCSAgYWN3cml0ZQlidWZmZXIgd2hpY2ggd2lsbCBhbHdheXMgYmUgd3JpdHRlbiB3aXRoIEJ1ZldyaXRlQ21kCi0JICAJCWF1dG9jb21tYW5kcy4ge25vdCBhdmFpbGFibGUgd2hlbiBjb21waWxlZCB3aXRob3V0IHRoZQorCQkJYXV0b2NvbW1hbmRzLiB7bm90IGF2YWlsYWJsZSB3aGVuIGNvbXBpbGVkIHdpdGhvdXQgdGhlCiAJCQl8K2F1dG9jbWR8IGZlYXR1cmV9CiAJICBxdWlja2ZpeAlxdWlja2ZpeCBidWZmZXIsIGNvbnRhaW5zIGxpc3Qgb2YgZXJyb3JzIHw6Y3dpbmRvd3wKIAkJCW9yIGxpc3Qgb2YgbG9jYXRpb25zIHw6bHdpbmRvd3wKQEAgLTE2NDgsNyArMTY0OCw3IEBACiAJCSAgICBzdWZmaWNpZW50IGNvbG9ycyBhcmUgYXZhaWxhYmxlLiAgfGlucy1jb21wbGV0aW9uLW1lbnV8CiAKIAkgICBtZW51b25lICBVc2UgdGhlIHBvcHVwIG1lbnUgYWxzbyB3aGVuIHRoZXJlIGlzIG9ubHkgb25lIG1hdGNoLgotCSAgIAkgICAgVXNlZnVsIHdoZW4gdGhlcmUgaXMgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiBhYm91dCB0aGUKKwkJICAgIFVzZWZ1bCB3aGVuIHRoZXJlIGlzIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gYWJvdXQgdGhlCiAJCSAgICBtYXRjaCwgZS5nLiwgd2hhdCBmaWxlIGl0IGNvbWVzIGZyb20uCiAKIAkgICBsb25nZXN0ICBPbmx5IGluc2VydCB0aGUgbG9uZ2VzdCBjb21tb24gdGV4dCBvZiB0aGUgbWF0Y2hlcy4gIElmCkBAIC0xNjU4LDcgKzE2NTgsNyBAQAogCQkgICAgdXNlZC4KIAogCSAgIHByZXZpZXcgIFNob3cgZXh0cmEgaW5mb3JtYXRpb24gYWJvdXQgdGhlIGN1cnJlbnRseSBzZWxlY3RlZAotCSAgIAkgICAgY29tcGxldGlvbiBpbiB0aGUgcHJldmlldyB3aW5kb3cuCisJCSAgICBjb21wbGV0aW9uIGluIHRoZSBwcmV2aWV3IHdpbmRvdy4KIAogCQkJCSonY29uZmlybScqIConY2YnKiAqJ25vY29uZmlybScqIConbm9jZicqCiAnY29uZmlybScgJ2NmJwkJYm9vbGVhbiAoZGVmYXVsdCBvZmYpCkBAIC0xOTU0LDcgKzE5NTQsNyBAQAogCQkrCVdoZW4gaW5jbHVkZWQsIGEgIjp3cml0ZSBmaWxlIiBjb21tYW5kIHdpbGwgcmVzZXQgdGhlCiAJCQknbW9kaWZpZWQnIGZsYWcgb2YgdGhlIGJ1ZmZlciwgZXZlbiB0aG91Z2ggdGhlIGJ1ZmZlcgogCQkJaXRzZWxmIG1heSBzdGlsbCBiZSBkaWZmZXJlbnQgZnJvbSBpdHMgZmlsZS4KLQkJCSAJCQkJCSpjcG8tc3RhcioKKwkJCQkJCQkJKmNwby1zdGFyKgogCQkqCVVzZSAiOioiIGluIHRoZSBzYW1lIHdheSBhcyAiOkAiLiAgV2hlbiBub3QgaW5jbHVkZWQsCiAJCQkiOioiIGlzIGFuIGFsaWFzIGZvciAiOic8LCc+Iiwgc2VsZWN0IHRoZSBWaXN1YWwgYXJlYS4KIAkJCQkJCQkJKmNwby08KgpAQCAtMTk3Myw3ICsxOTczLDcgQEAKIAl3aGVuICRWSU1fUE9TSVggd2FzIHNldCBvbiBzdGFydHVwLiB8cG9zaXh8CiAKIAkgICAgY29udGFpbnMJYmVoYXZpb3IJfgotCQkJIAkJCQkJKmNwby0jKgorCQkJCQkJCQkqY3BvLSMqCiAJCSMJQSBjb3VudCBiZWZvcmUgIkQiLCAibyIgYW5kICJPIiBoYXMgbm8gZWZmZWN0LgogCQkJCQkJCQkqY3BvLSYqCiAJCSYJV2hlbiAiOnByZXNlcnZlIiB3YXMgdXNlZCBrZWVwIHRoZSBzd2FwIGZpbGUgd2hlbgpAQCAtMjk5MCw5ICsyOTkwLDkgQEAKIAlvcGVyYXRvci4gIFdoZW4gdGhpcyBvcHRpb24gaXMgZW1wdHkgJ2Zvcm1hdHByZycgaXMgdXNlZC4KIAogCVRoZSB8djpsbnVtfCAgdmFyaWFibGUgaG9sZHMgdGhlIGZpcnN0IGxpbmUgdG8gYmUgZm9ybWF0dGVkLgotCVRoZSB8djpjb3VudHwgdmFyaWFibGUgdGhlIG51bWJlciBvZiBsaW5lcyB0byBiZSBmb3JtYXR0ZWQuCi0JVGhlIHx2OmNoYXJ8ICB2YXJpYWJsZSB0aGUgY2hhcmFjdGVyIHRvIGJlIGluc2VydGVkLiAgVGhpcyBjYW4gYmUKLQkJICAgICAgZW1wdHkuICBEb24ndCBpbnNlcnQgaXQgeWV0IQorCVRoZSB8djpjb3VudHwgdmFyaWFibGUgaG9sZHMgdGhlIG51bWJlciBvZiBsaW5lcyB0byBiZSBmb3JtYXR0ZWQuCisJVGhlIHx2OmNoYXJ8ICB2YXJpYWJsZSBob2xkcyB0aGUgY2hhcmFjdGVyIHRoYXQgaXMgZ29pbmcgdG8gYmUKKwkJICAgICAgaW5zZXJ0ZWQuICBUaGlzIGNhbiBiZSBlbXB0eS4gIERvbid0IGluc2VydCBpdCB5ZXQhCiAKIAlFeGFtcGxlOiA+CiAJCTpzZXQgZm9ybWF0ZXhwcj1teWxhbmcjRm9ybWF0KCkKQEAgLTMzNzAsNyArMzM3MCw3IEBACiAJICAndCcJSW5jbHVkZSB0ZWFyb2ZmIG1lbnUgaXRlbXMuICBDdXJyZW50bHkgb25seSB3b3JrcyBmb3IgV2luMzIsCiAJCUdUSyssIGFuZCBNb3RpZiAxLjIgR1VJLgogCSAgJ1QnCUluY2x1ZGUgVG9vbGJhci4gIEN1cnJlbnRseSBvbmx5IGluIFdpbjMyLCBHVEsrLCBNb3RpZiwgUGhvdG9uCi0JICAgICAgICBhbmQgQXRoZW5hIEdVSXMuCisJCWFuZCBBdGhlbmEgR1VJcy4KIAogCSAgJ3InCVJpZ2h0LWhhbmQgc2Nyb2xsYmFyIGlzIGFsd2F5cyBwcmVzZW50LgogCSAgJ1InCVJpZ2h0LWhhbmQgc2Nyb2xsYmFyIGlzIHByZXNlbnQgd2hlbiB0aGVyZSBpcyBhIHZlcnRpY2FsbHkKQEAgLTQyOTQsNyArNDI5NCw3IEBACiAJCQlpcyBvZmYgYW5kIHRoZXJlIGlzIHRleHQgcHJlY2VkaW5nIHRoZSBjaGFyYWN0ZXIKIAkJCXZpc2libGUgaW4gdGhlIGZpcnN0IGNvbHVtbi4KIAkgIG5ic3A6YwlDaGFyYWN0ZXIgdG8gc2hvdyBmb3IgYSBub24tYnJlYWthYmxlIHNwYWNlIChjaGFyYWN0ZXIKLQkgIAkJMHhBMCwgMTYwKS4gIExlZnQgYmxhbmsgd2hlbiBvbWl0dGVkLgorCQkJMHhBMCwgMTYwKS4gIExlZnQgYmxhbmsgd2hlbiBvbWl0dGVkLgogCiAJVGhlIGNoYXJhY3RlcnMgJzonIGFuZCAnLCcgc2hvdWxkIG5vdCBiZSB1c2VkLiAgVVRGLTggY2hhcmFjdGVycyBjYW4KIAliZSB1c2VkIHdoZW4gJ2VuY29kaW5nJyBpcyAidXRmLTgiLCBvdGhlcndpc2Ugb25seSBwcmludGFibGUKQEAgLTY0MDgsNyArNjQwOCw3IEBACiAJCQlhbHNvIHVzZWQgaW4gYWxsIGJ1ZmZlciByZWxhdGVkIHNwbGl0IGNvbW1hbmRzLCBmb3IKIAkJCWV4YW1wbGUgIjpzYnVmZmVyIiwgIjpzYm5leHQiLCBvciAiOnNicmV3aW5kIi4KIAkgICB1c2V0YWIJTGlrZSAidXNlb3BlbiIsIGJ1dCBhbHNvIGNvbnNpZGVyIHdpbmRvd3MgaW4gb3RoZXIgdGFiCi0JICAgCQlwYWdlcy4KKwkJCXBhZ2VzLgogCSAgIHNwbGl0CUlmIGluY2x1ZGVkLCBzcGxpdCB0aGUgY3VycmVudCB3aW5kb3cgYmVmb3JlIGxvYWRpbmcKIAkJCWEgYnVmZmVyLiAgT3RoZXJ3aXNlOiBkbyBub3Qgc3BsaXQsIHVzZSBjdXJyZW50IHdpbmRvdy4KIAkJCVN1cHBvcnRlZCBpbiB8cXVpY2tmaXh8IGNvbW1hbmRzIHRoYXQgZGlzcGxheSBlcnJvcnMuCkBAIC02OTg4LDcgKzY5ODgsNyBAQAogCQkJCSJzIiAgPSBidXR0b24gc3RhdGUKIAkJCQkiYyIgID0gY29sdW1uIHBsdXMgMzMKIAkJCQkiciIgID0gcm93IHBsdXMgMzMKLQkgICAJCVRoaXMgb25seSB3b3JrcyB1cCB0byAyMjMgY29sdW1ucyEgIFNlZSAiZGVjIiBmb3IgYQorCQkJVGhpcyBvbmx5IHdvcmtzIHVwIHRvIDIyMyBjb2x1bW5zISAgU2VlICJkZWMiIGZvciBhCiAJCQlzb2x1dGlvbi4KIAkgICB4dGVybTIJV29ya3MgbGlrZSAieHRlcm0iLCBidXQgd2l0aCB0aGUgeHRlcm0gcmVwb3J0aW5nIHRoZQogCQkJbW91c2UgcG9zaXRpb24gd2hpbGUgdGhlIG1vdXNlIGlzIGRyYWdnZWQuICBUaGlzIHdvcmtzCkBAIC03NDc5LDcgKzc0NzksNyBAQAogCUEgbGlzdCBvZiB3b3JkcyB0aGF0IGNoYW5nZSBob3cgY29tbWFuZCBsaW5lIGNvbXBsZXRpb24gaXMgZG9uZS4KIAlDdXJyZW50bHkgb25seSBvbmUgd29yZCBpcyBhbGxvd2VkOgogCSAgdGFnZmlsZQlXaGVuIHVzaW5nIENUUkwtRCB0byBsaXN0IG1hdGNoaW5nIHRhZ3MsIHRoZSBraW5kIG9mCi0JICAgCQl0YWcgYW5kIHRoZSBmaWxlIG9mIHRoZSB0YWcgaXMgbGlzdGVkLiAgT25seSBvbmUgbWF0Y2gKKwkJCXRhZyBhbmQgdGhlIGZpbGUgb2YgdGhlIHRhZyBpcyBsaXN0ZWQuCU9ubHkgb25lIG1hdGNoCiAJCQlpcyBkaXNwbGF5ZWQgcGVyIGxpbmUuICBPZnRlbiB1c2VkIHRhZyBraW5kcyBhcmU6CiAJCQkJZAkjZGVmaW5lCiAJCQkJZglmdW5jdGlvbgpkaWZmIC0tZ2l0IGEvcnVudGltZS9kb2Mvb3NfMzkwLnR4dCBiL3J1bnRpbWUvZG9jL29zXzM5MC50eHQKaW5kZXggMzQyNTJiOS4uYzdhZDZmMiAxMDA2NDQKLS0tIGEvcnVudGltZS9kb2Mvb3NfMzkwLnR4dAorKysgYi9ydW50aW1lL2RvYy9vc18zOTAudHh0CkBAIC0xLDQgKzEsNCBAQAotKm9zXzM5MC50eHQqICAgIEZvciBWaW0gdmVyc2lvbiA3LjBmLiAgTGFzdCBjaGFuZ2U6IDIwMDUgTWFyIDI5Cisqb3NfMzkwLnR4dCogICAgRm9yIFZpbSB2ZXJzaW9uIDcuMGcuICBMYXN0IGNoYW5nZTogMjAwNSBNYXIgMjkKIAogCiAJCSAgVklNIFJFRkVSRU5DRSBNQU5VQUwJICBieSBSYWxmIFNjaGFuZGwKZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL29zX2FtaWdhLnR4dCBiL3J1bnRpbWUvZG9jL29zX2FtaWdhLnR4dAppbmRleCA0YjAxYmI1Li5lNGNjODhlIDEwMDY0NAotLS0gYS9ydW50aW1lL2RvYy9vc19hbWlnYS50eHQKKysrIGIvcnVudGltZS9kb2Mvb3NfYW1pZ2EudHh0CkBAIC0xLDQgKzEsNCBAQAotKm9zX2FtaWdhLnR4dCogIEZvciBWaW0gdmVyc2lvbiA3LjBmLiAgTGFzdCBjaGFuZ2U6IDIwMDUgTWFyIDI5Cisqb3NfYW1pZ2EudHh0KiAgRm9yIFZpbSB2ZXJzaW9uIDcuMGcuICBMYXN0IGNoYW5nZTogMjAwNSBNYXIgMjkKIAogCiAJCSAgVklNIFJFRkVSRU5DRSBNQU5VQUwgICAgYnkgQnJhbSBNb29sZW5hYXIKZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL29zX2Jlb3MudHh0IGIvcnVudGltZS9kb2Mvb3NfYmVvcy50eHQKaW5kZXggZmM4MTU1ZS4uY2Q0M2RmZSAxMDA2NDQKLS0tIGEvcnVudGltZS9kb2Mvb3NfYmVvcy50eHQKKysrIGIvcnVudGltZS9kb2Mvb3NfYmVvcy50eHQKQEAgLTEsNCArMSw0IEBACi0qb3NfYmVvcy50eHQqCUZvciBWaW0gdmVyc2lvbiA3LjBmLiAgTGFzdCBjaGFuZ2U6IDIwMDUgTWFyIDI5Cisqb3NfYmVvcy50eHQqCUZvciBWaW0gdmVyc2lvbiA3LjBnLiAgTGFzdCBjaGFuZ2U6IDIwMDUgTWFyIDI5CiAKIAogCQkgIFZJTSBSRUZFUkVOQ0UgTUFOVUFMICAgIGJ5IEJyYW0gTW9vbGVuYWFyCmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy9vc19kb3MudHh0IGIvcnVudGltZS9kb2Mvb3NfZG9zLnR4dAppbmRleCBhNmY0NTk0Li5lNzc5ZGMxIDEwMDY0NAotLS0gYS9ydW50aW1lL2RvYy9vc19kb3MudHh0CisrKyBiL3J1bnRpbWUvZG9jL29zX2Rvcy50eHQKQEAgLTEsNCArMSw0IEBACi0qb3NfZG9zLnR4dCogICAgRm9yIFZpbSB2ZXJzaW9uIDcuMGYuICBMYXN0IGNoYW5nZTogMjAwNiBNYXIgMzAKKypvc19kb3MudHh0KiAgICBGb3IgVmltIHZlcnNpb24gNy4wZy4gIExhc3QgY2hhbmdlOiAyMDA2IE1hciAzMAogCiAKIAkJICBWSU0gUkVGRVJFTkNFIE1BTlVBTCAgICBieSBCcmFtIE1vb2xlbmFhcgpkaWZmIC0tZ2l0IGEvcnVudGltZS9kb2Mvb3NfbWFjLnR4dCBiL3J1bnRpbWUvZG9jL29zX21hYy50eHQKaW5kZXggM2E3N2NhYS4uNTAzZDJiYiAxMDA2NDQKLS0tIGEvcnVudGltZS9kb2Mvb3NfbWFjLnR4dAorKysgYi9ydW50aW1lL2RvYy9vc19tYWMudHh0CkBAIC0xLDQgKzEsNCBAQAotKm9zX21hYy50eHQqICAgIEZvciBWaW0gdmVyc2lvbiA3LjBmLiAgTGFzdCBjaGFuZ2U6IDIwMDYgTWFyIDI5Cisqb3NfbWFjLnR4dCogICAgRm9yIFZpbSB2ZXJzaW9uIDcuMGcuICBMYXN0IGNoYW5nZTogMjAwNiBBcHIgMzAKIAogCiAJCSAgVklNIFJFRkVSRU5DRSBNQU5VQUwgICAgYnkgQnJhbSBNb29sZW5hYXIgZXQgYWwuCkBAIC04NCw3ICs4NCw3IEBACiBBOiBBc3N1bWluZyB0aGF0IFZpbS5hcHAgaXMgbG9jYXRlZCBpbiAvQXBwbGljYXRpb25zOgogCW9wZW4gL0FwcGxpY2F0aW9ucy9WaW0uYXBwCiAgICBPcjoKLSAgIAkvQXBwbGljYXRpb25zL1ZpbS5hcHAvQ29udGVudHMvTWFjT1MvVmltIC1nICB7YXJndW1lbnRzfQorCS9BcHBsaWNhdGlvbnMvVmltLmFwcC9Db250ZW50cy9NYWNPUy9WaW0gLWcgIHthcmd1bWVudHN9CiAKIFE6IEhvdyBjYW4gSSBzZXQgJFBBVEggdG8gc29tZXRoaW5nIHJlYXNvbmFibGUgd2hlbiBJIHN0YXJ0IFZpbS5hcHAgZnJvbSB0aGUKICAgIEdVSSBvciB3aXRoIG9wZW4/CmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy9vc19taW50LnR4dCBiL3J1bnRpbWUvZG9jL29zX21pbnQudHh0CmluZGV4IDQ1ZTZmZmEuLjcwOWIwOGMgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvZG9jL29zX21pbnQudHh0CisrKyBiL3J1bnRpbWUvZG9jL29zX21pbnQudHh0CkBAIC0xLDQgKzEsNCBAQAotKm9zX21pbnQudHh0KiAgIEZvciBWaW0gdmVyc2lvbiA3LjBmLiAgTGFzdCBjaGFuZ2U6IDIwMDUgTWFyIDI5Cisqb3NfbWludC50eHQqICAgRm9yIFZpbSB2ZXJzaW9uIDcuMGcuICBMYXN0IGNoYW5nZTogMjAwNSBNYXIgMjkKIAogCiAJCSAgVklNIFJFRkVSRU5DRSBNQU5VQUwgICAgYnkgSmVucyBNLiBGZWxkZXJob2ZmCmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy9vc19tc2Rvcy50eHQgYi9ydW50aW1lL2RvYy9vc19tc2Rvcy50eHQKaW5kZXggOTQ1MzAwNC4uNGUzNDdkOCAxMDA2NDQKLS0tIGEvcnVudGltZS9kb2Mvb3NfbXNkb3MudHh0CisrKyBiL3J1bnRpbWUvZG9jL29zX21zZG9zLnR4dApAQCAtMSw0ICsxLDQgQEAKLSpvc19tc2Rvcy50eHQqICBGb3IgVmltIHZlcnNpb24gNy4wZi4gIExhc3QgY2hhbmdlOiAyMDA1IE1hciAyOQorKm9zX21zZG9zLnR4dCogIEZvciBWaW0gdmVyc2lvbiA3LjBnLiAgTGFzdCBjaGFuZ2U6IDIwMDUgTWFyIDI5CiAKIAogCQkgIFZJTSBSRUZFUkVOQ0UgTUFOVUFMICAgIGJ5IEJyYW0gTW9vbGVuYWFyCmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy9vc19vczIudHh0IGIvcnVudGltZS9kb2Mvb3Nfb3MyLnR4dAppbmRleCA5N2M0N2U2Li42ZTJiNjM2IDEwMDY0NAotLS0gYS9ydW50aW1lL2RvYy9vc19vczIudHh0CisrKyBiL3J1bnRpbWUvZG9jL29zX29zMi50eHQKQEAgLTEsNCArMSw0IEBACi0qb3Nfb3MyLnR4dCogICAgRm9yIFZpbSB2ZXJzaW9uIDcuMGYuICBMYXN0IGNoYW5nZTogMjAwNSBNYXIgMjkKKypvc19vczIudHh0KiAgICBGb3IgVmltIHZlcnNpb24gNy4wZy4gIExhc3QgY2hhbmdlOiAyMDA1IE1hciAyOQogCiAKIAkJICBWSU0gUkVGRVJFTkNFIE1BTlVBTCAgICBieSBQYXVsIFNsb290bWFuCmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy9vc19xbngudHh0IGIvcnVudGltZS9kb2Mvb3NfcW54LnR4dAppbmRleCAyN2FjMzI4Li5lNDdlNGRiIDEwMDY0NAotLS0gYS9ydW50aW1lL2RvYy9vc19xbngudHh0CisrKyBiL3J1bnRpbWUvZG9jL29zX3FueC50eHQKQEAgLTEsNCArMSw0IEBACi0qb3NfcW54LnR4dCogICAgRm9yIFZpbSB2ZXJzaW9uIDcuMGYuICBMYXN0IGNoYW5nZTogMjAwNSBNYXIgMjkKKypvc19xbngudHh0KiAgICBGb3IgVmltIHZlcnNpb24gNy4wZy4gIExhc3QgY2hhbmdlOiAyMDA1IE1hciAyOQogCiAKIAkJICBWSU0gUkVGRVJFTkNFIE1BTlVBTCAgICBieSBKdWxpYW4gS2lucmFpZApkaWZmIC0tZ2l0IGEvcnVudGltZS9kb2Mvb3NfcmlzYy50eHQgYi9ydW50aW1lL2RvYy9vc19yaXNjLnR4dAppbmRleCBhZjhhMzdhLi4zZmQ2NDE3IDEwMDY0NAotLS0gYS9ydW50aW1lL2RvYy9vc19yaXNjLnR4dAorKysgYi9ydW50aW1lL2RvYy9vc19yaXNjLnR4dApAQCAtMSw0ICsxLDQgQEAKLSpvc19yaXNjLnR4dCogICBGb3IgVmltIHZlcnNpb24gNy4wZi4gIExhc3QgY2hhbmdlOiAyMDA1IE1hciAyOQorKm9zX3Jpc2MudHh0KiAgIEZvciBWaW0gdmVyc2lvbiA3LjBnLiAgTGFzdCBjaGFuZ2U6IDIwMDUgTWFyIDI5CiAKIAogCQkgIFZJTSBSRUZFUkVOQ0UgTUFOVUFMICAgIGJ5IFRob21hcyBMZW9uYXJkCmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy9vc191bml4LnR4dCBiL3J1bnRpbWUvZG9jL29zX3VuaXgudHh0CmluZGV4IGRlMzZjMDAuLjUxZmZmZDIgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvZG9jL29zX3VuaXgudHh0CisrKyBiL3J1bnRpbWUvZG9jL29zX3VuaXgudHh0CkBAIC0xLDQgKzEsNCBAQAotKm9zX3VuaXgudHh0KiAgIEZvciBWaW0gdmVyc2lvbiA3LjBmLiAgTGFzdCBjaGFuZ2U6IDIwMDUgTWFyIDI5Cisqb3NfdW5peC50eHQqICAgRm9yIFZpbSB2ZXJzaW9uIDcuMGcuICBMYXN0IGNoYW5nZTogMjAwNSBNYXIgMjkKIAogCiAJCSAgVklNIFJFRkVSRU5DRSBNQU5VQUwgICAgYnkgQnJhbSBNb29sZW5hYXIKZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL29zX3Ztcy50eHQgYi9ydW50aW1lL2RvYy9vc192bXMudHh0CmluZGV4IGQzMjk4NzUuLjQxNGRmMzIgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvZG9jL29zX3Ztcy50eHQKKysrIGIvcnVudGltZS9kb2Mvb3Nfdm1zLnR4dApAQCAtMSw0ICsxLDQgQEAKLSpvc192bXMudHh0KiAgICBGb3IgVmltIHZlcnNpb24gNy4wZi4gIExhc3QgY2hhbmdlOiAyMDA2IE1hciAwMgorKm9zX3Ztcy50eHQqICAgIEZvciBWaW0gdmVyc2lvbiA3LjBnLiAgTGFzdCBjaGFuZ2U6IDIwMDYgQXByIDMwCiAKIAogCQkgIFZJTSBSRUZFUkVOQ0UgTUFOVUFMCkBAIC01MCw4ICs1MCw4IEBACiAgIHZpbS1YWC1leGUtaWE2NC1ndWkuemlwICAgICAgIElBNjQgR1VJL01vdGlmIGV4ZWN1dGFibGVzCiAgIHZpbS1YWC1leGUtaWE2NC1ndGsuemlwICAgICAgIElBNjQgR1VJL0dUSyBleGVjdXRhYmxlcwogICB2aW0tWFgtZXhlLWlhNjQtdGVybS56aXAgICAgICBJQTY0IGNvbnNvbGUgZXhlY3V0YWJsZXMKLSAgdmltLVhYLWV4ZS1heHAtZ3VpLnppcCAgICAgICAgQWxwaGEgR1VJL01vdGlmIGV4ZWN1dGFibGVzCi0gIHZpbS1YWC1leGUtYXhwLWd0ay56aXAgICAgICAgIEFscGhhIEdVSS9HVEsgZXhlY3V0YWJsZXMKKyAgdmltLVhYLWV4ZS1heHAtZ3VpLnppcAlBbHBoYSBHVUkvTW90aWYgZXhlY3V0YWJsZXMKKyAgdmltLVhYLWV4ZS1heHAtZ3RrLnppcAlBbHBoYSBHVUkvR1RLIGV4ZWN1dGFibGVzCiAgIHZpbS1YWC1leGUtYXhwLXRlcm0uemlwICAgICAgIEFscGhhIGNvbnNvbGUgZXhlY3V0YWJsZXMKICAgdmltLVhYLWV4ZS12YXgtZ3VpLnppcAlWQVggR1VJIGV4ZWN1dGFibGVzCiAgIHZpbS1YWC1leGUtdmF4LXRlcm0uemlwICAgICAgIFZBWCBjb25zb2xlIGV4ZWN1dGFibGVzCkBAIC02MSw3ICs2MSw3IEBACiAKIFRoZSBiaW5hcnkgYXJjaGl2ZXMgY29udGFpbjogdmltLmV4ZSwgY3RhZ3MuZXhlLCB4eGQuZXhlIGZpbGVzLgogCi1Gb3IgR1RLIGV4ZWN1dGFibGVzIHlvdSB3aWxsIG5lZWQgR1RLTElCIHRoYXQgaXMgYXZhaWxhYmxlIGZvciAKK0ZvciBHVEsgZXhlY3V0YWJsZXMgeW91IHdpbGwgbmVlZCBHVEtMSUIgdGhhdCBpcyBhdmFpbGFibGUgZm9yCiBBbHBoYSBhbmQgSUE2NCBwbGF0Zm9ybS4KIAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CkBAIC0yNDksMTAgKzI0OSwxMCBAQAogRXhhbXBsZXM6CiAgID4KIAl2aW0gLVIgIGZpbGVuYW1lICAhIG1lYW5zOiAtciBMaXN0IHN3YXAgZmlsZXMgYW5kIGV4aXQKLSAgICAgICAgdmltIC0vciBmaWxlbmFtZSAgISBtZWFuczogLVIgUmVhZG9ubHkgbW9kZSAobGlrZSAidmlldyIpCi0gICAgICAgIHZpbSAtdSAgPHZpbXJjPiAgICEgbWVhbnM6IC11IFVzZSA8dmltcmM+IGluc3RlYWQgb2YgYW55IC52aW1yYyAgIAotICAgICAgICB2aW0gLS91IDxndmltcmM+ICAhIG1lYW5zOiAtVSBVc2UgPGd2aW1yYz4gaW5zdGVhZCBvZiBhbnkgLmd2aW1yYwotICAgICAgICAgICAgICAgICAgCisJdmltIC0vciBmaWxlbmFtZSAgISBtZWFuczogLVIgUmVhZG9ubHkgbW9kZSAobGlrZSAidmlldyIpCisJdmltIC11CTx2aW1yYz4gICAhIG1lYW5zOiAtdSBVc2UgPHZpbXJjPiBpbnN0ZWFkIG9mIGFueSAudmltcmMKKwl2aW0gLS91IDxndmltcmM+ICAhIG1lYW5zOiAtVSBVc2UgPGd2aW1yYz4gaW5zdGVhZCBvZiBhbnkgLmd2aW1yYworCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIAogNy4gR1VJIG1vZGUgcXVlc3Rpb25zCQkJCQkqdm1zLWd1aSoKQEAgLTM1Niw3ICszNTYsNyBAQAogCiAJOnNldCBub2JhY2t1cAkgICAgICIgZG9lcyBub3QgY3JlYXRlICouKl8gYmFja3VwIGZpbGVzCiAJOnNldCBub3dyaXRlYmFja3VwICAgIiBkb2VzIG5vdCBoYXZlIGFueSBwdXJwb3NlIG9uIFZNUy4gIEl0J3MgdGhlCi0JICAgICAgICAgICAgICAgICAgICAgIiBkZWZhdWx0LgorCQkJICAgICAiIGRlZmF1bHQuCiAKIFJlY292ZXJ5IGlzIHdvcmtpbmcgcGVyZmVjdCBhcyB3ZWxsIGZyb20gdGhlIGRlZmF1bHQgc3dhcCBmaWxlLgogUmVhZCBtb3JlIHdpdGggOmhlbHAgc3dhcGZpbGUKZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL29zX3dpbjMyLnR4dCBiL3J1bnRpbWUvZG9jL29zX3dpbjMyLnR4dAppbmRleCBmMTZkNzZkLi5jOWI4NjZlIDEwMDY0NAotLS0gYS9ydW50aW1lL2RvYy9vc193aW4zMi50eHQKKysrIGIvcnVudGltZS9kb2Mvb3Nfd2luMzIudHh0CkBAIC0xLDQgKzEsNCBAQAotKm9zX3dpbjMyLnR4dCogIEZvciBWaW0gdmVyc2lvbiA3LjBmLiAgTGFzdCBjaGFuZ2U6IDIwMDYgQXByIDAyCisqb3Nfd2luMzIudHh0KiAgRm9yIFZpbSB2ZXJzaW9uIDcuMGcuICBMYXN0IGNoYW5nZTogMjAwNiBBcHIgMzAKIAogCiAJCSAgVklNIFJFRkVSRU5DRSBNQU5VQUwgICAgYnkgR2VvcmdlIFJlaWxseQpkaWZmIC0tZ2l0IGEvcnVudGltZS9kb2MvcGF0dGVybi50eHQgYi9ydW50aW1lL2RvYy9wYXR0ZXJuLnR4dAppbmRleCBkNjhkYTQ0Li44Y2E1Yzc2IDEwMDY0NAotLS0gYS9ydW50aW1lL2RvYy9wYXR0ZXJuLnR4dAorKysgYi9ydW50aW1lL2RvYy9wYXR0ZXJuLnR4dApAQCAtMSw0ICsxLDQgQEAKLSpwYXR0ZXJuLnR4dCogICBGb3IgVmltIHZlcnNpb24gNy4wZi4gIExhc3QgY2hhbmdlOiAyMDA2IEFwciAyOQorKnBhdHRlcm4udHh0KiAgIEZvciBWaW0gdmVyc2lvbiA3LjBnLiAgTGFzdCBjaGFuZ2U6IDIwMDYgQXByIDMwCiAKIAogCQkgIFZJTSBSRUZFUkVOQ0UgTUFOVUFMICAgIGJ5IEJyYW0gTW9vbGVuYWFyCkBAIC0xMDE4LDEzICsxMDE4LDEzIEBACiAJLSBBbiBlcXVpdmFsZW5jZSBjbGFzcy4gIFRoaXMgbWVhbnMgdGhhdCBjaGFyYWN0ZXJzIGFyZSBtYXRjaGVkIHRoYXQKIAkgIGhhdmUgYWxtb3N0IHRoZSBzYW1lIG1lYW5pbmcsIGUuZy4sIHdoZW4gaWdub3JpbmcgYWNjZW50cy4gIFRoZSBmb3JtCiAJICBpczoKLQkgIAlbPWE9XQorCQlbPWE9XQogCSAgQ3VycmVudGx5IHRoaXMgaXMgb25seSBpbXBsZW1lbnRlZCBmb3IgbGF0aW4xLiAgQWxzbyB3b3JrcyBmb3IgdGhlCiAJICBsYXRpbjEgY2hhcmFjdGVycyBpbiB1dGYtOCBhbmQgbGF0aW45LgogCQkJCQkJCSovW1suKiAqWy4uXSoKIAktIEEgY29sbGF0aW9uIGVsZW1lbnQuICBUaGlzIGN1cnJlbnRseSBzaW1wbHkgYWNjZXB0cyBhIHNpbmdsZQogCSAgY2hhcmFjdGVyIGluIHRoZSBmb3JtOgotCSAgCVsuYS5dCisJCVsuYS5dCiAJCQkJCQkJICAqL1xdKgogCS0gVG8gaW5jbHVkZSBhIGxpdGVyYWwgJ10nLCAnXicsICctJyBvciAnXCcgaW4gdGhlIGNvbGxlY3Rpb24sIHB1dCBhCiAJICBiYWNrc2xhc2ggYmVmb3JlIGl0OiAiW3h5elxdXSIsICJbXF54eXpdIiwgIlt4eVwtel0iIGFuZCAiW3h5elxcXSIuCmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy9waV9nemlwLnR4dCBiL3J1bnRpbWUvZG9jL3BpX2d6aXAudHh0CmluZGV4IDAyZTk2OGQuLmZhYzQ3YTAgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvZG9jL3BpX2d6aXAudHh0CisrKyBiL3J1bnRpbWUvZG9jL3BpX2d6aXAudHh0CkBAIC0xLDQgKzEsNCBAQAotKnBpX2d6aXAudHh0KiAgIEZvciBWaW0gdmVyc2lvbiA3LjBmLiAgTGFzdCBjaGFuZ2U6IDIwMDIgT2N0IDI5CisqcGlfZ3ppcC50eHQqICAgRm9yIFZpbSB2ZXJzaW9uIDcuMGcuICBMYXN0IGNoYW5nZTogMjAwMiBPY3QgMjkKIAogCiAJCSAgVklNIFJFRkVSRU5DRSBNQU5VQUwgICAgYnkgQnJhbSBNb29sZW5hYXIKZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL3BpX25ldHJ3LnR4dCBiL3J1bnRpbWUvZG9jL3BpX25ldHJ3LnR4dAppbmRleCBhODNjYWFmLi5lYzg1NWYwIDEwMDY0NAotLS0gYS9ydW50aW1lL2RvYy9waV9uZXRydy50eHQKKysrIGIvcnVudGltZS9kb2MvcGlfbmV0cncudHh0CkBAIC0xLDExICsxLDExIEBACi0qcGlfbmV0cncudHh0KiAgRm9yIFZpbSB2ZXJzaW9uIDcuMGYuICBMYXN0IGNoYW5nZTogMjAwNiBBcHIgMjgKKypwaV9uZXRydy50eHQqICBGb3IgVmltIHZlcnNpb24gNy4wZy4gIExhc3QgY2hhbmdlOiAyMDA2IEFwciAzMAogCiAJCVZJTSBSRUZFUkVOQ0UgTUFOVUFMICAgIGJ5IENoYXJsZXMgRS4gQ2FtcGJlbGwsIEpyLgogCiAKLSpkYXYqICAgICAgICAgICAqaHR0cCogICAgICAgICAgKm5ldHdvcmsqICAgICAgICpyY3AqICAgICAgICAgICAqc2NwKgotKmZldGNoKiAgICAgICAgICpuZXRydyogICAgICAgICAqTnJlYWQqICAgICAgICAgKnJzeW5jKiAgICAgICAgICpzZnRwKgotKmZ0cCogICAgICAgICAgICpuZXRydy52aW0qICAgICAqTndyaXRlKiAgICAgICAgKm5ldHJ3LWZpbGUqCisqZGF2KgkJKmh0dHAqCQkqbmV0d29yayoJKnJjcCoJCSpzY3AqCisqZmV0Y2gqCQkqbmV0cncqCQkqTnJlYWQqCQkqcnN5bmMqCQkqc2Z0cCoKKypmdHAqCQkqbmV0cncudmltKgkqTndyaXRlKgkqbmV0cnctZmlsZSoKIAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAwLiBDb250ZW50cwkJCQkJCSpuZXRydy1jb250ZW50cyoKQEAgLTY4LDggKzY4LDggQEAKIGhhdmUgcGx1Z2lucyBhdmFpbGFibGUgd2hpY2ggY2FuIGJlIGRvbmUgd2l0aCB0aGUgZm9sbG93aW5nCiB0d28gbGluZXMgaW4geW91ciA8LnZpbXJjPjogPgogCi0Jc2V0IG5vY3AgICAgICAgICAgICAgICAgICAgICIgJ2NvbXBhdGlibGUnIGlzIG5vdCBzZXQKLQlmaWxldHlwZSBwbHVnaW4gb24gICAgICAgICAgIiBwbHVnaW5zIGFyZSBlbmFibGVkCisJc2V0IG5vY3AJCSAgICAiICdjb21wYXRpYmxlJyBpcyBub3Qgc2V0CisJZmlsZXR5cGUgcGx1Z2luIG9uCSAgICAiIHBsdWdpbnMgYXJlIGVuYWJsZWQKIDwKIFlvdSBjYW4gYXZvaWQgbG9hZGluZyB0aGlzIHBsdWdpbiBieSBzZXR0aW5nIHRoZSAibG9hZGVkX25ldHJ3IiB2YXJpYWJsZQogaW4geW91ciA8LnZpbXJjPiBmaWxlOiA+CkBAIC04NSw4ICs4NSw4IEBACiBGaXJzdCwgbWFrZSBzdXJlIHRoYXQgeW91IGhhdmUgcGx1Z2lucyBlbmFibGVkLCBzbyB5b3UnbGwgbmVlZCB0byBoYXZlIGF0CiBsZWFzdCB0aGUgZm9sbG93aW5nIGluIHlvdXIgPC52aW1yYz46IChvciBzZWUgfG5ldHJ3LWFjdGl2YXRlfCkgPgogCi0Jc2V0IG5vY3AgICAgICAgICAgICAgICAgICAgICIgJ2NvbXBhdGlibGUnIGlzIG5vdCBzZXQKLQlmaWxldHlwZSBwbHVnaW4gb24gICAgICAgICAgIiBwbHVnaW5zIGFyZSBlbmFibGVkCisJc2V0IG5vY3AJCSAgICAiICdjb21wYXRpYmxlJyBpcyBub3Qgc2V0CisJZmlsZXR5cGUgcGx1Z2luIG9uCSAgICAiIHBsdWdpbnMgYXJlIGVuYWJsZWQKIDwKIChzZWUgfCdjcCd8IGFuZCB8OmZpbGV0eXBlLXBsdWdpbi1vbnwpCiAKQEAgLTExMSw3ICsxMTEsNyBAQAogCW1hY2hpbmUgSE9TVE5BTUUgbG9naW4gVVNFUklEIHBhc3N3b3JkICJQQVNTV09SRCIKIAltYWNoaW5lIEhPU1ROQU1FIGxvZ2luIFVTRVJJRCBwYXNzd29yZCAiUEFTU1dPUkQiCiAJLi4uCi0JZGVmYXVsdCAgICAgICAgICBsb2dpbiBVU0VSSUQgcGFzc3dvcmQgIlBBU1NXT1JEIgorCWRlZmF1bHQJCSBsb2dpbiBVU0VSSUQgcGFzc3dvcmQgIlBBU1NXT1JEIgogPAogSG93IGFib3V0IGJyb3dzaW5nIC0tIGllLiB5b3UganVzdCB3YW50IHRvIGxvb2sgYXJvdW5kIGJlZm9yZSBlZGl0aW5nIGEKIGZpbGUuICBGb3IgYnJvd3Npbmcgb24geW91ciBjdXJyZW50IGhvc3QsIGp1c3QgImVkaXQiIGEgZGlyZWN0b3J5OiA+CkBAIC0xNDAsNyArMTQwLDcgQEAKIAkgICBkYXY6ICAgICpnOm5ldHJ3X2Rhdl9jbWQqICA9ICJjYWRhdmVyIgogCSBmZXRjaDogICpnOm5ldHJ3X2ZldGNoX2NtZCogID0gImZldGNoIC1vIiAgICBpZiBmZXRjaCBpcyBhdmFpbGFibGUKIAkgICBmdHA6ICAgICpnOm5ldHJ3X2Z0cF9jbWQqICA9ICJmdHAiCi0gICAgICAgICAgaHR0cDogICAqZzpuZXRyd19odHRwX2NtZCogID0gImZldGNoIC1vIiAgICBpZiBmZXRjaCBpcyBhdmFpbGFibGUKKwkgIGh0dHA6ICAgKmc6bmV0cndfaHR0cF9jbWQqICA9ICJmZXRjaCAtbyIgICAgaWYgZmV0Y2ggaXMgYXZhaWxhYmxlCiAJICBodHRwOiAgICBnOm5ldHJ3X2h0dHBfY21kICAgPSAid2dldCAtcSAtTyIgIElmIHdnZXQgIGlzIGF2YWlsYWJsZQogCSAgIHJjcDogICAgKmc6bmV0cndfcmNwX2NtZCogID0gInJjcCIKIAkgcnN5bmM6ICAqZzpuZXRyd19yc3luY19jbWQqICA9ICJyc3luYyAtYSIKQEAgLTIyNiw3ICsyMjYsNyBAQAogCQkJVGhpcyBvcHRpb24gaXMgaWdub3JlZCBpZiB5b3UncmUgdXNpbmcgdW5peAogCiAgKmc6bmV0cndfdXNlX250X3JjcCoJPTAgZG9uJ3QgdXNlIHRoZSByY3Agb2YgV2luTlQsIFdpbjIwMDAgYW5kIFdpblhQCi0JCQk9MSB1c2UgV2luTlQncyByY3AgaW4gYmluYXJ5IG1vZGUgICAgICAgICAoZGVmYXVsdCkKKwkJCT0xIHVzZSBXaW5OVCdzIHJjcCBpbiBiaW5hcnkgbW9kZQkgIChkZWZhdWx0KQogCiBQQVRIUwkJCQkJCQkJKm5ldHJ3LXBhdGgqCiAKQEAgLTMwMyw0OCArMzAzLDQ4IEBACiAKIAkJCQkJCQkJKm5ldHJ3LXVybHMqCiAgICs9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0rPT09PT09PT09PT09PT09PT09PT09PT09PT09PSs9PT09PT09PT09PT0rCi0gIHwgIFJlYWRpbmcgICAgICAgICAgICAgICAgICAgICAgICB8IFdyaXRpbmcgICAgICAgICAgICAgICAgICAgIHwgIFVzZXMgICAgICB8CisgIHwgIFJlYWRpbmcJCQkgICAgfCBXcml0aW5nCQkJIHwgIFVzZXMgICAgICB8CiAgICs9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0rPT09PT09PT09PT09PT09PT09PT09PT09PT09PSs9PT09PT09PT09PT0rCi0gIHwgREFWOiAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICB8Ci0gIHwgIGRhdjovL2hvc3QvcGF0aCAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgY2FkYXZlciAgICB8Ci0gIHwgIDpOcmVhZCBkYXY6Ly9ob3N0L3BhdGggICAgICAgICB8IDpOd3JpdGUgZGF2Oi8vaG9zdC9wYXRoICAgIHwgY2FkYXZlciAgICB8CisgIHwgREFWOgkJCSAgICB8CQkJCSB8CSAgICAgIHwKKyAgfCAgZGF2Oi8vaG9zdC9wYXRoCQkgICAgfAkJCQkgfCBjYWRhdmVyICAgIHwKKyAgfCAgOk5yZWFkIGRhdjovL2hvc3QvcGF0aAkgICAgfCA6TndyaXRlIGRhdjovL2hvc3QvcGF0aAkgfCBjYWRhdmVyICAgIHwKICAgKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSsKLSAgfCBGRVRDSDogICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgIHwKLSAgfCAgZmV0Y2g6Ly9bdXNlckBdaG9zdC9wYXRoICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgIHwKLSAgfCAgZmV0Y2g6Ly9bdXNlckBdaG9zdDpodHRwL3BhdGggIHwgIE5vdCBBdmFpbGFibGUgICAgICAgICAgICAgfCBmZXRjaCAgICAgIHwKLSAgfCAgOk5yZWFkIGZldGNoOi8vW3VzZXJAXWhvc3QvcGF0aHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgIHwKKyAgfCBGRVRDSDoJCQkgICAgfAkJCQkgfAkgICAgICB8CisgIHwgIGZldGNoOi8vW3VzZXJAXWhvc3QvcGF0aAkgICAgfAkJCQkgfAkgICAgICB8CisgIHwgIGZldGNoOi8vW3VzZXJAXWhvc3Q6aHR0cC9wYXRoICB8ICBOb3QgQXZhaWxhYmxlCQkgfCBmZXRjaCAgICAgIHwKKyAgfCAgOk5yZWFkIGZldGNoOi8vW3VzZXJAXWhvc3QvcGF0aHwJCQkJIHwJICAgICAgfAogICArLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKwotICB8IEZJTEU6ICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgfAotICB8ICBmaWxlOi8vLyogICAgICAgICAgICAgICAgICAgICAgfCBmaWxlOi8vLyogICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgfAotICB8ICBmaWxlOi8vbG9jYWxob3N0LyogICAgICAgICAgICAgfCBmaWxlOi8vbG9jYWxob3N0LyogICAgICAgICB8ICAgICAgICAgICAgfAorICB8IEZJTEU6CQkJICAgIHwJCQkJIHwJICAgICAgfAorICB8ICBmaWxlOi8vLyoJCQkgICAgfCBmaWxlOi8vLyoJCQkgfAkgICAgICB8CisgIHwgIGZpbGU6Ly9sb2NhbGhvc3QvKgkJICAgIHwgZmlsZTovL2xvY2FsaG9zdC8qCSB8CSAgICAgIHwKICAgKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSsKLSAgfCBGVFA6ICAgICAgICAgICgqMykgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICgqMykgICAgICAgICAgfCAgICAgICAgICAgIHwKLSAgfCAgZnRwOi8vW3VzZXJAXWhvc3QvcGF0aCAgICAgICAgIHwgZnRwOi8vW3VzZXJAXWhvc3QvcGF0aCAgICAgfCBmdHAgICgqMikgIHwKLSAgfCAgOk5yZWFkIGZ0cDovL2hvc3QvcGF0aCAgICAgICAgIHwgOk53cml0ZSBmdHA6Ly9ob3N0L3BhdGggICAgfCBmdHArLm5ldHJjIHwKLSAgfCAgOk5yZWFkIGhvc3QgcGF0aCAgICAgICAgICAgICAgIHwgOk53cml0ZSBob3N0IHBhdGggICAgICAgICAgfCBmdHArLm5ldHJjIHwKLSAgfCAgOk5yZWFkIGhvc3QgdWlkIHBhc3MgcGF0aCAgICAgIHwgOk53cml0ZSBob3N0IHVpZCBwYXNzIHBhdGggfCBmdHAgICAgICAgIHwKKyAgfCBGVFA6CSAgKCozKQkJICAgIHwJCSAgICgqMykJCSB8CSAgICAgIHwKKyAgfCAgZnRwOi8vW3VzZXJAXWhvc3QvcGF0aAkgICAgfCBmdHA6Ly9bdXNlckBdaG9zdC9wYXRoCSB8IGZ0cAkoKjIpICB8CisgIHwgIDpOcmVhZCBmdHA6Ly9ob3N0L3BhdGgJICAgIHwgOk53cml0ZSBmdHA6Ly9ob3N0L3BhdGgJIHwgZnRwKy5uZXRyYyB8CisgIHwgIDpOcmVhZCBob3N0IHBhdGgJCSAgICB8IDpOd3JpdGUgaG9zdCBwYXRoCQkgfCBmdHArLm5ldHJjIHwKKyAgfCAgOk5yZWFkIGhvc3QgdWlkIHBhc3MgcGF0aAkgICAgfCA6TndyaXRlIGhvc3QgdWlkIHBhc3MgcGF0aCB8IGZ0cAkgICAgICB8CiAgICstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rCi0gIHwgSFRUUDogd2dldCBpcyBleGVjdXRhYmxlOiAoKjQpICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICB8Ci0gIHwgIGh0dHA6Ly9bdXNlckBdaG9zdC9wYXRoICAgICAgICB8ICAgICAgICBOb3QgQXZhaWxhYmxlICAgICAgIHwgd2dldCAgICAgICB8CisgIHwgSFRUUDogd2dldCBpcyBleGVjdXRhYmxlOiAoKjQpICB8CQkJCSB8CSAgICAgIHwKKyAgfCAgaHR0cDovL1t1c2VyQF1ob3N0L3BhdGgJICAgIHwJICAgICBOb3QgQXZhaWxhYmxlCSB8IHdnZXQgICAgICAgfAogICArLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKwotICB8IEhUVFA6IGZldGNoIGlzIGV4ZWN1dGFibGUgKCo0KSAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgfAotICB8ICBodHRwOi8vW3VzZXJAXWhvc3QvcGF0aCAgICAgICAgfCAgICAgICAgTm90IEF2YWlsYWJsZSAgICAgICB8IGZldGNoICAgICAgfAorICB8IEhUVFA6IGZldGNoIGlzIGV4ZWN1dGFibGUgKCo0KSAgfAkJCQkgfAkgICAgICB8CisgIHwgIGh0dHA6Ly9bdXNlckBdaG9zdC9wYXRoCSAgICB8CSAgICAgTm90IEF2YWlsYWJsZQkgfCBmZXRjaCAgICAgIHwKICAgKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSsKLSAgfCBSQ1A6ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgIHwKLSAgfCAgcmNwOi8vW3VzZXJAXWhvc3QvcGF0aCAgICAgICAgIHwgcmNwOi8vW3VzZXJAXWhvc3QvcGF0aCAgICAgfCByY3AgICAgICAgIHwKKyAgfCBSQ1A6CQkJICAgIHwJCQkJIHwJICAgICAgfAorICB8ICByY3A6Ly9bdXNlckBdaG9zdC9wYXRoCSAgICB8IHJjcDovL1t1c2VyQF1ob3N0L3BhdGgJIHwgcmNwCSAgICAgIHwKICAgKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSsKLSAgfCBSU1lOQzogICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgIHwKLSAgfCAgcnN5bmM6Ly9bdXNlckBdaG9zdC9wYXRoICAgICAgIHwgcnN5bmM6Ly9bdXNlckBdaG9zdC9wYXRoICAgfCByc3luYyAgICAgIHwKLSAgfCAgOk5yZWFkIHJzeW5jOi8vaG9zdC9wYXRoICAgICAgIHwgOk53cml0ZSByc3luYzovL2hvc3QvcGF0aCAgfCByc3luYyAgICAgIHwKLSAgfCAgOk5yZWFkIHJjcDovL2hvc3QvcGF0aCAgICAgICAgIHwgOk53cml0ZSByY3A6Ly9ob3N0L3BhdGggICAgfCByY3AgICAgICAgIHwKKyAgfCBSU1lOQzoJCQkgICAgfAkJCQkgfAkgICAgICB8CisgIHwgIHJzeW5jOi8vW3VzZXJAXWhvc3QvcGF0aAkgICAgfCByc3luYzovL1t1c2VyQF1ob3N0L3BhdGgJIHwgcnN5bmMgICAgICB8CisgIHwgIDpOcmVhZCByc3luYzovL2hvc3QvcGF0aAkgICAgfCA6TndyaXRlIHJzeW5jOi8vaG9zdC9wYXRoICB8IHJzeW5jICAgICAgfAorICB8ICA6TnJlYWQgcmNwOi8vaG9zdC9wYXRoCSAgICB8IDpOd3JpdGUgcmNwOi8vaG9zdC9wYXRoCSB8IHJjcAkgICAgICB8CiAgICstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rCi0gIHwgU0NQOiAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICB8Ci0gIHwgIHNjcDovL1t1c2VyQF1ob3N0L3BhdGggICAgICAgICB8IHNjcDovL1t1c2VyQF1ob3N0L3BhdGggICAgIHwgc2NwICAgICAgICB8Ci0gIHwgIDpOcmVhZCBzY3A6Ly9ob3N0L3BhdGggICAgICAgICB8IDpOd3JpdGUgc2NwOi8vaG9zdC9wYXRoICAgIHwgc2NwICAoKjEpICB8CisgIHwgU0NQOgkJCSAgICB8CQkJCSB8CSAgICAgIHwKKyAgfCAgc2NwOi8vW3VzZXJAXWhvc3QvcGF0aAkgICAgfCBzY3A6Ly9bdXNlckBdaG9zdC9wYXRoCSB8IHNjcAkgICAgICB8CisgIHwgIDpOcmVhZCBzY3A6Ly9ob3N0L3BhdGgJICAgIHwgOk53cml0ZSBzY3A6Ly9ob3N0L3BhdGgJIHwgc2NwCSgqMSkgIHwKICAgKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSsKLSAgfCBTRlRQOiAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgIHwKLSAgfCAgc2Z0cDovL1t1c2VyQF1ob3N0L3BhdGggICAgICAgIHwgc2Z0cDovL1t1c2VyQF1ob3N0L3BhdGggICAgfCBzZnRwICAgICAgIHwKLSAgfCAgOk5yZWFkIHNmdHA6Ly9ob3N0L3BhdGggICAgICAgIHwgOk53cml0ZSBzZnRwOi8vaG9zdC9wYXRoICAgfCBzZnRwICAoKjEpIHwKKyAgfCBTRlRQOgkJCSAgICB8CQkJCSB8CSAgICAgIHwKKyAgfCAgc2Z0cDovL1t1c2VyQF1ob3N0L3BhdGgJICAgIHwgc2Z0cDovL1t1c2VyQF1ob3N0L3BhdGgJIHwgc2Z0cCAgICAgICB8CisgIHwgIDpOcmVhZCBzZnRwOi8vaG9zdC9wYXRoCSAgICB8IDpOd3JpdGUgc2Z0cDovL2hvc3QvcGF0aAkgfCBzZnRwICAoKjEpIHwKICAgKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSs9PT09PT09PT09PT09PT09PT09PT09PT09PT09Kz09PT09PT09PT09PSsKIAogCSgqMSkgRm9yIGFuIGFic29sdXRlIHBhdGggdXNlIHNjcDovL21hY2hpbmUvL3BhdGguCkBAIC0zNTMsNyArMzUzLDcgQEAKIAl3b3JrIHdpdGggeW91ciBmdHAgY2xpZW50LiAgT3RoZXJ3aXNlIHRoZSBzY3JpcHQgd2lsbAogCXByb21wdCBmb3IgdXNlci1pZCBhbmQgcGFzd29yZC4KIAotICAgICAgICAoKjMpIGZvciBmdHAsICJtYWNoaW5lIiBtYXkgYmUgbWFjaGluZSNwb3J0IG9yIG1hY2hpbmU6cG9ydAorCSgqMykgZm9yIGZ0cCwgIm1hY2hpbmUiIG1heSBiZSBtYWNoaW5lI3BvcnQgb3IgbWFjaGluZTpwb3J0CiAJaWYgYSBkaWZmZXJlbnQgcG9ydCBpcyBuZWVkZWQgdGhhbiB0aGUgc3RhbmRhcmQgZnRwIHBvcnQKIAogCSgqNCkgZm9yIGh0dHA6Li4uLCBpZiB3Z2V0IGlzIGF2YWlsYWJsZSBpdCB3aWxsIGJlIHVzZWQuICBPdGhlcndpc2UsCkBAIC00NTksNyArNDU5LDcgQEAKIAkJc3RyaW5ncy4KIAogOk5ldHJ3U2V0dGluZ3MgIFRoaXMgY29tbWFuZCBpcyBkZXNyaWJlZCBpbiB8bmV0cnctc2V0dGluZ3N8IC0tIHVzZWQgdG8KLSAgICAgICAgICAgICAgICBkaXNwbGF5IG5ldHJ3IHNldHRpbmdzIGFuZCBjaGFuZ2UgbmV0cncgYmVoYXZpb3IuCisJCWRpc3BsYXkgbmV0cncgc2V0dGluZ3MgYW5kIGNoYW5nZSBuZXRydyBiZWhhdmlvci4KIAogCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KQEAgLTQ2OSwzNyArNDY5LDM3IEBACiBiZWhhdmlvci4gIFRoZXNlIHZhcmlhYmxlcyB0eXBpY2FsbHkgbWF5IGJlIHNldCBpbiB0aGUgdXNlcidzIDwudmltcmM+IGZpbGU6CiAoYWxzbyBzZWUgfG5ldHJ3LXNldHRpbmdzfCkgPgogCi0gICAgICAgICAgICAgICAgICAgICAgICAtLS0tLS0tLS0tLS0tCi0gICAgICAgICAgICAgICAgICAgICAgICBOZXRydyBPcHRpb25zCi0gICAgICAgICAgICAgICAgICAgICAgICAtLS0tLS0tLS0tLS0tCisJCQktLS0tLS0tLS0tLS0tCisJCQlOZXRydyBPcHRpb25zCisJCQktLS0tLS0tLS0tLS0tCiAJT3B0aW9uCQkJTWVhbmluZwogCS0tLS0tLS0tLS0tLS0tCQktLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogPAotICAgICAgICBiOm5ldHJ3X2NvbCAgICAgICAgICAgICBIb2xkcyBjdXJyZW50IGN1cnNvciBwb3NpdGlvbiAoZHVyaW5nIE5ldFdyaXRlKQotICAgICAgICBnOm5ldHJ3X2N5Z3dpbiAgICAgICAgICA9MSBhc3N1bWUgc2NwIHVuZGVyIHdpbmRvd3MgaXMgZnJvbSBjeWd3aW4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRlZmF1bHQvd2luZG93cykKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPTAgYXNzdW1lIHNjcCB1bmRlciB3aW5kb3dzIGFjY2VwdHMgd2luZG93cwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHlsZSBwYXRocyAgICAgICAgICAgICAgICAoZGVmYXVsdC9lbHNlKQotICAgICAgICBnOm5ldHJ3X2Z0cCAgICAgICAgICAgICA9MCB1c2UgZGVmYXVsdCBmdHAgICAgICAgICAgICAodWlkIHBhc3N3b3JkKQotICAgICAgICBnOm5ldHJ3X2Z0cG1vZGUgICAgICAgICA9ImJpbmFyeSIgICAgICAgICAgICAgICAgICAgICAoZGVmYXVsdCkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSJhc2NpaSIgICAgICAgICAgICAgICAgICAgICAgKHlvdXIgY2hvaWNlKQotCWc6bmV0cndfaWdub3JlbmV0cmMgICAgID0xICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkZWZhdWx0KQotCSAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIHlvdSBoYXZlIGEgPC5uZXRyYz4gZmlsZSBidXQgeW91IGRvbid0CisJYjpuZXRyd19jb2wJCUhvbGRzIGN1cnJlbnQgY3Vyc29yIHBvc2l0aW9uIChkdXJpbmcgTmV0V3JpdGUpCisJZzpuZXRyd19jeWd3aW4JCT0xIGFzc3VtZSBzY3AgdW5kZXIgd2luZG93cyBpcyBmcm9tIGN5Z3dpbgorCQkJCQkJCSAgICAgIChkZWZhdWx0L3dpbmRvd3MpCisJCQkJPTAgYXNzdW1lIHNjcCB1bmRlciB3aW5kb3dzIGFjY2VwdHMgd2luZG93cworCQkJCSAgIHN0eWxlIHBhdGhzCQkgICAgICAoZGVmYXVsdC9lbHNlKQorCWc6bmV0cndfZnRwCQk9MCB1c2UgZGVmYXVsdCBmdHAJICAgICAgKHVpZCBwYXNzd29yZCkKKwlnOm5ldHJ3X2Z0cG1vZGUJCT0iYmluYXJ5IgkJICAgICAgKGRlZmF1bHQpCisJCQkJPSJhc2NpaSIJCSAgICAgICh5b3VyIGNob2ljZSkKKwlnOm5ldHJ3X2lnbm9yZW5ldHJjCT0xCQkJICAgICAgKGRlZmF1bHQpCisJCQkJICAgaWYgeW91IGhhdmUgYSA8Lm5ldHJjPiBmaWxlIGJ1dCB5b3UgZG9uJ3QKIAkJCQkgICB3YW50IGl0IHVzZWQsIHRoZW4gc2V0IHRoaXMgdmFyaWFibGUuICBJdHMKIAkJCQkgICBtZXJlIGV4aXN0ZW5jZSBpcyBlbm91Z2ggdG8gY2F1c2UgPC5uZXRyYz4KIAkJCQkgICB0byBiZSBpZ25vcmVkLgotICAgICAgICBiOm5ldHJ3X2xhc3RmaWxlICAgICAgICBIb2xkcyBsYXRlc3QgbWV0aG9kL21hY2hpbmUvcGF0aC4KLSAgICAgICAgYjpuZXRyd19saW5lICAgICAgICAgICAgSG9sZHMgY3VycmVudCBsaW5lIG51bWJlciAgICAgKGR1cmluZyBOZXRXcml0ZSkKLSAgICAgICAgZzpuZXRyd19wYXNzd2QgICAgICAgICAgSG9sZHMgY3VycmVudCBwYXNzd29yZCBmb3IgZnRwLgotCWc6bmV0cndfc2lsZW50ICAgICAgICAgID0wIHRyYW5zZmVycyBkb25lIG5vcm1hbGx5Ci0JICAgICAgICAgICAgICAgICAgICAgICAgPTEgdHJhbnNmZXJzIGRvbmUgc2lsZW50bHkKLSAgICAgICAgZzpuZXRyd191aWQgICAgICAgICAgICAgSG9sZHMgY3VycmVudCB1c2VyLWlkIGZvciBmdHAuCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0xIHVzZSBhbHRlcm5hdGUgZnRwICAgICAgICAgKHVzZXIgdWlkIHBhc3N3b3JkKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc2VlIHxuZXRydy1vcHRpb25zfCkKLSAgICAgICAgZzpuZXRyd191c2VfbnRfcmNwICAgICAgPTAgZG9uJ3QgdXNlIFdpbk5ULzJLL1hQJ3MgcmNwIChkZWZhdWx0KQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9MSB1c2UgV2luTlQvMksvWFAncyByY3AsIGJpbmFyeSBtb2RlCi0gICAgICAgIGc6bmV0cndfd2luOTVmdHAgICAgICAgID0wIHVzZSB1bml4LXN0eWxlIGZ0cCBldmVuIGlmIHdpbjk1Lzk4L01FL2V0YwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9MSB1c2UgZGVmYXVsdCBtZXRob2QgdG8gZG8gZnRwID4KKwliOm5ldHJ3X2xhc3RmaWxlCUhvbGRzIGxhdGVzdCBtZXRob2QvbWFjaGluZS9wYXRoLgorCWI6bmV0cndfbGluZQkJSG9sZHMgY3VycmVudCBsaW5lIG51bWJlciAgICAgKGR1cmluZyBOZXRXcml0ZSkKKwlnOm5ldHJ3X3Bhc3N3ZAkJSG9sZHMgY3VycmVudCBwYXNzd29yZCBmb3IgZnRwLgorCWc6bmV0cndfc2lsZW50CQk9MCB0cmFuc2ZlcnMgZG9uZSBub3JtYWxseQorCQkJCT0xIHRyYW5zZmVycyBkb25lIHNpbGVudGx5CisJZzpuZXRyd191aWQJCUhvbGRzIGN1cnJlbnQgdXNlci1pZCBmb3IgZnRwLgorCQkJCT0xIHVzZSBhbHRlcm5hdGUgZnRwCSAgICAgKHVzZXIgdWlkIHBhc3N3b3JkKQorCQkJCShzZWUgfG5ldHJ3LW9wdGlvbnN8KQorCWc6bmV0cndfdXNlX250X3JjcAk9MCBkb24ndCB1c2UgV2luTlQvMksvWFAncyByY3AgKGRlZmF1bHQpCisJCQkJPTEgdXNlIFdpbk5ULzJLL1hQJ3MgcmNwLCBiaW5hcnkgbW9kZQorCWc6bmV0cndfd2luOTVmdHAJPTAgdXNlIHVuaXgtc3R5bGUgZnRwIGV2ZW4gaWYgd2luOTUvOTgvTUUvZXRjCisJCQkJPTEgdXNlIGRlZmF1bHQgbWV0aG9kIHRvIGRvIGZ0cCA+CiAJLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIDwKIFRoZSBzY3JpcHQgd2lsbCBhbHNvIG1ha2UgdXNlIG9mIHRoZSBmb2xsb3dpbmcgdmFyaWFibGVzIGludGVybmFsbHksIGFsYmVpdApAQCAtNTIyLDIxICs1MjIsMjEgQEAKIHZhcmlhYmxlcyBsaXN0ZWQgYmVsb3csIGFuZCBtYXkgYmUgbW9kaWZpZWQgYnkgdGhlIHVzZXIuCiA+CiAJCQkgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgIFByb3RvY29sIENvbnRyb2wgT3B0aW9ucworCQkJICAgUHJvdG9jb2wgQ29udHJvbCBPcHRpb25zCiAJCQkgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSAgICBPcHRpb24gICAgICAgICAgICBUeXBlICAgICAgICBTZXR0aW5nICAgICAgICAgTWVhbmluZwotICAgIC0tLS0tLS0tLSAgICAgICAgIC0tLS0tLS0tICAgIC0tLS0tLS0tLS0tLS0tICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICBPcHRpb24JICAgICAgVHlwZQkgIFNldHRpbmcJICBNZWFuaW5nCisgICAgLS0tLS0tLS0tCSAgICAgIC0tLS0tLS0tCSAgLS0tLS0tLS0tLS0tLS0gIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogPAotICAgIG5ldHJ3X2Z0cCAgICAgICAgIHZhcmlhYmxlICAgID1kb2Vzbid0IGV4aXN0ICB1c2VyaWQgc2V0IGJ5ICJ1c2VyIHVzZXJpZCIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9MCAgICAgICAgICAgICAgdXNlcmlkIHNldCBieSAidXNlciB1c2VyaWQiCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPTEgICAgICAgICAgICAgIHVzZXJpZCBzZXQgYnkgInVzZXJpZCIKLSAgICBOZXRSZWFkRml4dXAgICAgICBmdW5jdGlvbiAgICA9ZG9lc24ndCBleGlzdCAgbm8gY2hhbmdlCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPWV4aXN0cyAgICAgICAgIEFsbG93cyB1c2VyIHRvIGhhdmUgZmlsZXMKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVhZCB2aWEgZnRwIGF1dG9tYXRpY2FsbHkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtZWQgaG93ZXZlciB0aGV5IHdpc2gKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnkgTmV0UmVhZEZpeHVwKCkKKyAgICBuZXRyd19mdHAJICAgICAgdmFyaWFibGUJICA9ZG9lc24ndCBleGlzdCAgdXNlcmlkIHNldCBieSAidXNlciB1c2VyaWQiCisJCQkJICA9MAkJICB1c2VyaWQgc2V0IGJ5ICJ1c2VyIHVzZXJpZCIKKwkJCQkgID0xCQkgIHVzZXJpZCBzZXQgYnkgInVzZXJpZCIKKyAgICBOZXRSZWFkRml4dXAgICAgICBmdW5jdGlvbgkgID1kb2Vzbid0IGV4aXN0ICBubyBjaGFuZ2UKKwkJCQkgID1leGlzdHMJICBBbGxvd3MgdXNlciB0byBoYXZlIGZpbGVzCisJCQkJCQkgIHJlYWQgdmlhIGZ0cCBhdXRvbWF0aWNhbGx5CisJCQkJCQkgIHRyYW5zZm9ybWVkIGhvd2V2ZXIgdGhleSB3aXNoCisJCQkJCQkgIGJ5IE5ldFJlYWRGaXh1cCgpCiAgICAgZzpuZXRyd19kYXZfY21kICAgIHZhcmlhYmxlICAgPSJjYWRhdmVyIgotICAgIGc6bmV0cndfZmV0Y2hfY21kICB2YXJpYWJsZSAgID0iZmV0Y2ggLW8iICAgICBpZiBmZXRjaCBpcyBhdmFpbGFibGUKKyAgICBnOm5ldHJ3X2ZldGNoX2NtZCAgdmFyaWFibGUgICA9ImZldGNoIC1vIgkgIGlmIGZldGNoIGlzIGF2YWlsYWJsZQogICAgIGc6bmV0cndfZnRwX2NtZCAgICB2YXJpYWJsZSAgID0iZnRwIgogICAgIGc6bmV0cndfaHR0cF9jbWQgICB2YXJpYWJsZSAgID0iZmV0Y2ggLW8iICAgICBpZiAgICAgIGZldGNoIGlzIGF2YWlsYWJsZQogICAgIGc6bmV0cndfaHR0cF9jbWQgICB2YXJpYWJsZSAgID0id2dldCAtTyIgICAgICBlbHNlIGlmIHdnZXQgIGlzIGF2YWlsYWJsZQpAQCAtNTY1LDExICs1NjUsMTEgQEAKICAgSUYgZzpuZXRyd19mdHAgIWV4aXN0cyBvciBpcyBub3QgMSAgICAgSUYgZzpuZXRyd19mdHAgZXhpc3RzIGFuZCBpcyAxCiAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogPAotICAgICAgIG9wZW4gbWFjaGluZSBbcG9ydF0gICAgICAgICAgICAgICAgICAgIG9wZW4gbWFjaGluZSBbcG9ydF0KLSAgICAgICB1c2VyIHVzZXJpZCBwYXNzd29yZCAgICAgICAgICAgICAgICAgICB1c2VyaWQgcGFzc3dvcmQKLSAgICAgICBbZzpuZXRyd19mdHBtb2RlXSAgICAgICAgICAgICAgICAgICAgICBwYXNzd29yZAotICAgICAgIGdldCBmaWxlbmFtZSB0ZW1wZmlsZSAgICAgICAgICAgICAgICAgIFtnOm5ldHJ3X2Z0cG1vZGVdCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2V0IGZpbGVuYW1lIHRlbXBmaWxlID4KKyAgICAgICBvcGVuIG1hY2hpbmUgW3BvcnRdCQkgICAgICBvcGVuIG1hY2hpbmUgW3BvcnRdCisgICAgICAgdXNlciB1c2VyaWQgcGFzc3dvcmQJCSAgICAgIHVzZXJpZCBwYXNzd29yZAorICAgICAgIFtnOm5ldHJ3X2Z0cG1vZGVdCQkgICAgICBwYXNzd29yZAorICAgICAgIGdldCBmaWxlbmFtZSB0ZW1wZmlsZQkJICAgICAgW2c6bmV0cndfZnRwbW9kZV0KKwkJCQkJICAgICAgZ2V0IGZpbGVuYW1lIHRlbXBmaWxlID4KICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiA8CiBOZXRydyB0aGVuIGV4ZWN1dGVzIHRoZSBsaW5lcyBhYm92ZSBieSB1c2Ugb2YgYSBmaWx0ZXI6CkBAIC02MTEsNyArNjExLDcgQEAKICAgICAgIGVsc2VpZiBhOm1ldGhvZCA9PSA3ICJyc3luYwogICAgICAgZWxzZWlmIGE6bWV0aG9kID09IDggImZldGNoCiAgICAgICBlbHNlaWYgYTptZXRob2QgPT0gOSAic2Z0cAotICAgICAgZWxzZSAgICAgICAgICAgICAgICIgY29tcGxhaW4KKyAgICAgIGVsc2UJCSAiIGNvbXBsYWluCiAgICAgICBlbmRpZgogICAgIGVuZGZ1bmN0aW9uCiA+CkBAIC02MjUsOCArNjI1LDggQEAKICAgICBpZiBoYXMoIndpbjk1IikgJiYgZzpuZXRyd193aW45NWZ0cAogICAgICBmdW4hIE5ldFJlYWRGaXh1cChtZXRob2QsIGxpbmUxLCBsaW5lMikKICAgICAgICBpZiBtZXRob2QgPT0gMyAgICIgZnRwIChubyA8Lm5ldHJjPikKLSAgICAgICAgbGV0IGZvdXJibGFua2xpbmVzPSBsaW5lMiAtIDMKLSAgICAgICAgc2lsZW50IGZvdXJibGFua2xpbmVzLiIsIi5saW5lMi4iZy9eXHMqL2QiCisJbGV0IGZvdXJibGFua2xpbmVzPSBsaW5lMiAtIDMKKwlzaWxlbnQgZm91cmJsYW5rbGluZXMuIiwiLmxpbmUyLiJnL15ccyovZCIKICAgICAgICBlbmRpZgogICAgICBlbmRmdW5jdGlvbgogICAgIGVuZGlmCkBAIC02NzIsOSArNjcyLDkgQEAKIAogUVVJQ0sgUkVGRVJFTkNFIENPTU1BTkRTIFRBQkxFCQkJCSpuZXRydy1icm93c2UtY21kcyoKID4KLSAgICAgICAgLS0tLS0tLQktLS0tLS0tLS0tLQorCS0tLS0tLS0JLS0tLS0tLS0tLS0KIAlDb21tYW5kCUV4cGxhbmF0aW9uCi0gICAgICAgIC0tLS0tLS0JLS0tLS0tLS0tLS0KKwktLS0tLS0tCS0tLS0tLS0tLS0tCiA8CTxGMT4JQ2F1c2VzIE5ldHJ3IHRvIGlzc3VlIGhlbHAKIAkgPGNyPglOZXRydyB3aWxsIGVudGVyIHRoZSBkaXJlY3Rvcnkgb3IgcmVhZCB0aGUgZmlsZSB8bmV0cnctY3J8CiAJIDxkZWw+CU5ldHJ3IHdpbGwgYXR0ZW1wdCB0byByZW1vdmUgdGhlIGZpbGUvZGlyZWN0b3J5IHxuZXRydy1kZWx8CkBAIC03MjQsOCArNzI0LDggQEAKIAogICAqZzpuZXRyd19icm93c2Vfc3BsaXQqCXdoZW4gYnJvd3NpbmcsIDxjcj4gd2lsbCBvcGVuIHRoZSBmaWxlIGJ5OgogCQkJCT0wOiByZS11c2luZyB0aGUgc2FtZSB3aW5kb3cKLQkJCQk9MTogaG9yaXpvbnRhbGx5IHNwbGl0dGluZyB0aGUgd2luZG93IGZpcnN0ICAKLQkJCQk9MjogdmVydGljYWxseSAgIHNwbGl0dGluZyB0aGUgd2luZG93IGZpcnN0ICAKKwkJCQk9MTogaG9yaXpvbnRhbGx5IHNwbGl0dGluZyB0aGUgd2luZG93IGZpcnN0CisJCQkJPTI6IHZlcnRpY2FsbHkgICBzcGxpdHRpbmcgdGhlIHdpbmRvdyBmaXJzdAogCiAgICpnOm5ldHJ3X2Jyb3dzZXhfdmlld2VyKglzcGVjaWZ5IHVzZXIncyBwcmVmZXJlbmNlIGZvciBhIHZpZXdlcjogPgogCQkJCQkia2ZtY2xpZW50IGV4ZWMiCkBAIC03NzIsNyArNzcyLDcgQEAKICAgKmc6bmV0cndfZnRwX2xpc3RfY21kKglvcHRpb25zIGZvciBwYXNzaW5nIGFsb25nIHRvIGZ0cCBmb3IgZGlyZWN0b3J5CiAJCQkJbGlzdGluZy4gIERlZmF1bHRzOgogCQkJCSB1bml4IG9yIGc6bmV0cndfY3lnd2luIHNldDogOiAibHMgLWxGIgotCQkJCSBvdGhlcndpc2UgICAgICAgICAgICAgICAgICAgICAiZGlyIgorCQkJCSBvdGhlcndpc2UJCSAgICAgICAiZGlyIgogCiAgICpnOm5ldHJ3X2hpZGUqCQkJaWYgdHJ1ZSwgdGhlIGhpZGluZyBsaXN0IGlzIHVzZWQKIAkJCQkgZGVmYXVsdDogPTAKQEAgLTc4Niw3ICs3ODYsNyBAQAogCiAgICpnOm5ldHJ3X2xpc3RfY21kKgkJY29tbWFuZCBmb3IgbGlzdGluZyByZW1vdGUgZGlyZWN0b3JpZXMKIAkJCQkgZGVmYXVsdDogKGlmIHNzaCBpcyBleGVjdXRhYmxlKQotCQkJCSAgICAgICAgICAic3NoIEhPU1ROQU1FIGxzIC1GTGEiCisJCQkJCSAgInNzaCBIT1NUTkFNRSBscyAtRkxhIgogCiAgICpnOm5ldHJ3X2xvbmdsaXN0KgkJaWYgPTEsIHRoZW4gbG9uZyBsaXN0aW5nIHdpbGwgYmUgZGVmYXVsdAogCkBAIC04MjcsNyArODI3LDcgQEAKICAgKmc6bmV0cndfc29ydF9zZXF1ZW5jZSoJd2hlbiBzb3J0aW5nIGJ5IG5hbWUsIGZpcnN0IHNvcnQgYnkgdGhlCiAJCQkJY29tbWEtc2VwYXJhdGVkIHBhdHRlcm4gc2VxdWVuY2UKIAkJCQkgZGVmYXVsdDogJ1tcL10kLCosXC5iYWskLFwubyQsXC5oJCwKLQkJCQkgICAgICAgICAgIFwuaW5mbyQsXC5zd3AkLFwub2JqJCcKKwkJCQkJICAgXC5pbmZvJCxcLnN3cCQsXC5vYmokJwogCiAgICpnOm5ldHJ3X3NzaF9jbWQqCQlPbmUgbWF5IHNwZWNpZnkgYW4gZXhlY3V0YWJsZSBjb21tYW5kCiAJCQkJdG8gdXNlIGluc3RlYWQgb2Ygc3NoIGZvciByZW1vdGUgYWN0aW9ucwpAQCAtODk0LDIxICs4OTQsMjEgQEAKIAogICAgICA6RXhwbG9yZVshXSAgIFtkaXJdLi4uIEV4cGxvcmUgZGlyZWN0b3J5IG9mIGN1cnJlbnQgZmlsZSAgICAgICAqOkV4cGxvcmUqCiAgICAgIDpTZXhwbG9yZVshXSAgW2Rpcl0uLi4gU3BsaXQmRXhwbG9yZSBkaXJlY3Rvcnkgb2YgY3VycmVudCBmaWxlICo6U2V4cGxvcmUqCi0gICAgIDpIZXhwbG9yZVshXSAgW2Rpcl0uLi4gSG9yaXpvbnRhbCBTcGxpdCAmIEV4cGxvcmUgICAgICAgICAgICAgICo6SGV4cGxvcmUqCi0gICAgIDpWZXhwbG9yZVshXSAgW2Rpcl0uLi4gVmVydGljYWwgICBTcGxpdCAmIEV4cGxvcmUgICAgICAgICAgICAgICo6VmV4cGxvcmUqCisgICAgIDpIZXhwbG9yZVshXSAgW2Rpcl0uLi4gSG9yaXpvbnRhbCBTcGxpdCAmIEV4cGxvcmUJCSAgICAqOkhleHBsb3JlKgorICAgICA6VmV4cGxvcmVbIV0gIFtkaXJdLi4uIFZlcnRpY2FsICAgU3BsaXQgJiBFeHBsb3JlCQkgICAgKjpWZXhwbG9yZSoKIAogICAgICBVc2VkIHdpdGggOkV4cGxvcmUgKiovcGF0dGVybiA6Ci0gICAgIDpOZXhwbG9yZS4uLi4uLi4uLi4uLi4gZ28gdG8gbmV4dCBtYXRjaGluZyBmaWxlICAgICAgICAgICAgICAgICo6TmV4cGxvcmUqCi0gICAgIDpQZXhwbG9yZS4uLi4uLi4uLi4uLi4gZ28gdG8gcHJldmlvdXMgbWF0Y2hpbmcgZmlsZSAgICAgICAgICAgICo6UGV4cGxvcmUqCisgICAgIDpOZXhwbG9yZS4uLi4uLi4uLi4uLi4gZ28gdG8gbmV4dCBtYXRjaGluZyBmaWxlCQkgICAgKjpOZXhwbG9yZSoKKyAgICAgOlBleHBsb3JlLi4uLi4uLi4uLi4uLiBnbyB0byBwcmV2aW91cyBtYXRjaGluZyBmaWxlCSAgICAqOlBleHBsb3JlKgogCiA6RXhwbG9yZSAgd2lsbCBvcGVuIHRoZSBsb2NhbC1kaXJlY3RvcnkgYnJvd3NlciBvbiB0aGUgY3VycmVudCBmaWxlJ3MKLSAgICAgICAgICBkaXJlY3RvcnkgKG9yIG9uIGRpcmVjdG9yeSBbZGlyXSBpZiBzcGVjaWZpZWQpLiAgVGhlIHdpbmRvdyB3aWxsIGJlCisJICBkaXJlY3RvcnkgKG9yIG9uIGRpcmVjdG9yeSBbZGlyXSBpZiBzcGVjaWZpZWQpLiAgVGhlIHdpbmRvdyB3aWxsIGJlCiAJICBzcGxpdCBvbmx5IGlmIHRoZSBmaWxlIGhhcyBiZWVuIG1vZGlmaWVkLCBvdGhlcndpc2UgdGhlIGJyb3dzaW5nCiAJICB3aW5kb3cgd2lsbCB0YWtlIG92ZXIgdGhhdCB3aW5kb3cuICBOb3JtYWxseSB0aGUgc3BsaXR0aW5nIGlzIHRha2VuCiAJICBob3Jpem9udGFsbHkuCiA6RXhwbG9yZSEgaXMgbGlrZSA6RXhwbG9yZSwgYnV0IHdpbGwgdXNlIHZlcnRpY2FsIHNwbGl0dGluZy4KIDpTZXhwbG9yZSB3aWxsIGFsd2F5cyBzcGxpdCB0aGUgd2luZG93IGJlZm9yZSBpbnZva2luZyB0aGUgbG9jYWwtZGlyZWN0b3J5Ci0gICAgICAgICAgYnJvd3Nlci4gIEFzIHdpdGggRXhwbG9yZSwgdGhlIHNwbGl0dGluZyBpcyBub3JtYWxseSBkb25lCisJICBicm93c2VyLiAgQXMgd2l0aCBFeHBsb3JlLCB0aGUgc3BsaXR0aW5nIGlzIG5vcm1hbGx5IGRvbmUKIAkgIGhvcml6b250YWxseS4KIDpTZXhwbG9yZSEgW2Rpcl0gaXMgbGlrZSA6U2V4cGxvcmUsIGJ1dCB0aGUgc3BsaXR0aW5nIHdpbGwgYmUgZG9uZSB2ZXJ0aWNhbGx5LgogOkhleHBsb3JlICBbZGlyXSBkb2VzIGFuIDpFeHBsb3JlIHdpdGggfDpiZWxvd3JpZ2h0fCBob3Jpem9udGFsIHNwbGl0dGluZy4KQEAgLTEwMDUsNyArMTAwNSw3IEBACiBCcm93c2luZyBpcyBzaW1wbGU6IG1vdmUgdGhlIGN1cnNvciBvbnRvIGEgZmlsZSBvciBkaXJlY3Rvcnkgb2YgaW50ZXJlc3QuCiBIaXR0aW5nIHRoZSA8Y3I+ICh0aGUgcmV0dXJuIGtleSkgd2lsbCBzZWxlY3QgdGhlIGZpbGUgb3IgZGlyZWN0b3J5LgogRGlyZWN0b3JpZXMgd2lsbCB0aGVtc2VsdmVzIGJlIGxpc3RlZCwgYW5kIGZpbGVzIHdpbGwgYmUgb3BlbmVkIHVzaW5nIHRoZQotcHJvdG9jb2wgZ2l2ZW4gaW4gdGhlIG9yaWdpbmFsIHJlYWQgcmVxdWVzdC4gIAorcHJvdG9jb2wgZ2l2ZW4gaW4gdGhlIG9yaWdpbmFsIHJlYWQgcmVxdWVzdC4KIAogICBDQVZFQVQ6IFRoZXJlIGFyZSB0aHJlZSBmb3JtcyBvZiBsaXN0aW5nIChzZWUgfG5ldHJ3LWl8KS4gIE5ldHJ3IGFzc3VtZXMKICAgdGhhdCB0d28gb3IgbW9yZSBzcGFjZXMgZGVsaW1pdCBmaWxlbmFtZXMgYW5kIGRpcmVjdG9yeSBuYW1lcyBmb3IgdGhlIGxvbmcKQEAgLTEyNTUsNyArMTI1NSw3IEBACiAgICAgSWYgZzpuZXRyd19icm93c2V4X3ZpZXdlciA9PSAnLScsIHRoZW4gbmV0cndGaWxlSGFuZGxlcigpIHdpbGwgYmUKICAgICBpbnZva2VkIGZpcnN0IChzZWUgfG5ldHJ3X2ZpbGVoYW5kbGVyfCkuCiAKLSAgKiBmb3IgV2luZG93cyAzMiBvciA2NCwgdGhlIHVybCBhbmQgRmlsZVByb3RvY29sSGFuZGxlciBkbGxzIGFyZSB1c2VkLiAgCisgICogZm9yIFdpbmRvd3MgMzIgb3IgNjQsIHRoZSB1cmwgYW5kIEZpbGVQcm90b2NvbEhhbmRsZXIgZGxscyBhcmUgdXNlZC4KICAgKiBmb3IgR25vbWUgKHdpdGggZ25vbWUtb3Blbik6IGdub21lLW9wZW4gaXMgdXNlZC4KICAgKiBmb3IgS0RFICh3aXRoIGtmbWNsaWVudCk6IGtmbWNsaWVudCBpcyB1c2VkLgogICAqIG90aGVyd2lzZSB0aGUgbmV0cndGaWxlSGFuZGxlciBwbHVnaW4gaXMgdXNlZC4KQEAgLTEyNzAsNyArMTI3MCw3IEBACiBleHRlbnNpb24uICBPZiBjb3Vyc2UsIHRoZSBoYW5kbGVyIGZ1bmN0aW9uIG11c3QgZXhpc3QgZm9yIGl0IHRvIGJlIGNhbGxlZCEKID4KICBFeC4gbXlwZ20uaHRtbCAgIHggLT4KLSAgICAgICAgICAgICAgICAgIG5ldHJ3RmlsZUhhbmRsZXJfaHRtbCgic2NwOi8vdXNlckBob3N0L3NvbWUvcGF0aC9teXBnbS5odG1sIikKKwkJICBuZXRyd0ZpbGVIYW5kbGVyX2h0bWwoInNjcDovL3VzZXJAaG9zdC9zb21lL3BhdGgvbXlwZ20uaHRtbCIpCiA8CiBTZWUgdGhlIDxwbHVnaW4vbmV0cndGaWxlSGFuZGxlcnMudmltPiBmb3IgYW4gZXhhbXBsZSBvZiBob3cgdG8gaGFuZGxlIGFuIGh0bWwKIGZpbGUgd2l0aCBtb3ppbGxhLgpAQCAtMTUyNSw3ICsxNTI1LDcgQEAKIAkgICAgICogZzpuZXRyd19icm93c2V4X3ZpZXdlciBpbXBsZW1lbnRlZAogCSAgICAgKiBNaWtvbGFqIE1hY2hvd3NraSBwb2ludGVkIG91dCB0aGF0IGdub21lLW9wZW4gaXMgb2Z0ZW4KIAkgICAgICAgZXhlY3V0YWJsZSB1bmRlciBLREUgc3lzdGVtcywgYWx0aG91Z2ggaXQgaXMgZWZmZWN0aXZlbHkKLQkgICAgICAgbm90IGZ1bmN0aW9uYWwuICBOZXRCcm93c2VYIG5vdyBsb29rcyBmb3IgImtpY2tlciIgYXMgCisJICAgICAgIG5vdCBmdW5jdGlvbmFsLiAgTmV0QnJvd3NlWCBub3cgbG9va3MgZm9yICJraWNrZXIiIGFzCiAJICAgICAgIGEgcnVubmluZyBwcm9jZXNzIHRvIGRldGVybWluZSBpZiBLREUgaXMgYWN0dWFsbHkgdGhlCiAJICAgICAgIHJlYWxseSBydW5uaW5nLgogCSAgICAgKiBFeHBsb3JlcidzIE8gZnVuY3Rpb25hbGl0eSB3YXMgaW5hZHZlcnRlbnRseSBsZWZ0IG91dC4KQEAgLTE1ODMsNyArMTU4Myw3IEBACiAJICAgICAgIGluIG9yZGVyIHRvIGFsbG93IHRoZW0gdG8gYmUgdXNlZCBmb3IgbW90aW9ucwogCXY2NTogKiBCcm93c2VyIGZ1bmN0aW9ucyBub3cgdXNlIE5ldE9wdGlvblNhdmUvUmVzdG9yZTsgaW4gcGFydGljdWxhciwKIAkgICAgICAgbmV0cncgbm93IHdvcmtzIGFyb3VuZCB0aGUgcmVwb3J0IHNldHRpbmcKLQl2NjQ6ICogQnVnZml4IC0gYnJvd3NpbmcgYSAiLyIgZGlyZWN0b3J5IChVbml4KSB5aWVsZGVkIGJ1ZmZlcnMgCisJdjY0OiAqIEJ1Z2ZpeCAtIGJyb3dzaW5nIGEgIi8iIGRpcmVjdG9yeSAoVW5peCkgeWllbGRlZCBidWZmZXJzCiAJICAgICAgIG5hbWVkICJbU2NyYXRjaF0iIGluc3RlYWQgb2YgIi8iCiAJICAgICAqIEJ1Z2ZpeCAtIHJlbW90ZSBicm93c2luZyB3aXRoIGZ0cCB3YXMgb21pdHRpbmcgdGhlIC4vIGFuZCAuLi8KIAl2NjM6ICogbmV0cncgbm93IHRha2VzIGFkdmFudGFnZSBvZiBhdXRvbG9hZCAoYW5kIHJlcXVpcmVzIDcuMCkKQEAgLTE3NDEsMTIgKzE3NDEsMTIgQEAKIAogCUrDqXLDtG1lIEF1Z8OpCQktLSBhbHNvIHVzaW5nIG5ldyBidWZmZXIgbWV0aG9kIHdpdGggZnRwKy5uZXRyYwogCUJyYW0gTW9vbGVuYWFyCQktLSBvYnZpb3VzbHkgdmltIGl0c2VsZiwgOmUgYW5kIHY6Y21kYXJnIHVzZSwKLQkgICAgICAgICAgICAgICAgICAgICAgICAgICBmZXRjaCwuLi4KKwkJCQkgICBmZXRjaCwuLi4KIAlZYXN1aGlybyBNYXRzdW1vdG8JLS0gcG9pbnRpbmcgb3V0IHVuZG8rMHIgcHJvYmxlbSBhbmQgYSBzb2x1dGlvbgogCUVyaWsgV2FyZW5kb3JwaAkJLS0gZm9yIHNldmVyYWwgc3VnZ2VzdGlvbnMgKGc6bmV0cndfLi4uX2NtZAogCQkJCSAgIHZhcmlhYmxlcywgcnN5bmMgZXRjKQogCURvdWcgQ2xhYXIJCS0tIG1vZGlmaWNhdGlvbnMgdG8gdGVzdCBmb3Igc3VjY2VzcyB3aXRoIGZ0cAotCSAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wZXJhdGlvbgorCQkJCSAgIG9wZXJhdGlvbgogCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICB2aW06dHc9Nzg6dHM9ODpmdD1oZWxwOm5vcmw6ZmRtPW1hcmtlcgpkaWZmIC0tZ2l0IGEvcnVudGltZS9kb2MvcGlfcGFyZW4udHh0IGIvcnVudGltZS9kb2MvcGlfcGFyZW4udHh0CmluZGV4IDczMjZhNGUuLmI3MjFkZTAgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvZG9jL3BpX3BhcmVuLnR4dAorKysgYi9ydW50aW1lL2RvYy9waV9wYXJlbi50eHQKQEAgLTEsNCArMSw0IEBACi0qcGlfcGFyZW4udHh0KiAgRm9yIFZpbSB2ZXJzaW9uIDcuMGYuICBMYXN0IGNoYW5nZTogMjAwNiBBcHIgMjQKKypwaV9wYXJlbi50eHQqICBGb3IgVmltIHZlcnNpb24gNy4wZy4gIExhc3QgY2hhbmdlOiAyMDA2IEFwciAyNAogCiAKIAkJICBWSU0gUkVGRVJFTkNFIE1BTlVBTCAgICBieSBCcmFtIE1vb2xlbmFhcgpkaWZmIC0tZ2l0IGEvcnVudGltZS9kb2MvcGlfc3BlYy50eHQgYi9ydW50aW1lL2RvYy9waV9zcGVjLnR4dAppbmRleCBlMGIwZTJjLi44YmEwZmZhIDEwMDY0NAotLS0gYS9ydW50aW1lL2RvYy9waV9zcGVjLnR4dAorKysgYi9ydW50aW1lL2RvYy9waV9zcGVjLnR4dApAQCAtMSw0ICsxLDQgQEAKLSpwaV9zcGVjLnR4dCogICBGb3IgVmltIHZlcnNpb24gNy4wZi4gIExhc3QgY2hhbmdlOiAyMDA2IEFwciAyNAorKnBpX3NwZWMudHh0KiAgIEZvciBWaW0gdmVyc2lvbiA3LjBnLiAgTGFzdCBjaGFuZ2U6IDIwMDYgQXByIDI0CiAKIGJ5IEd1c3Rhdm8gTmllbWV5ZXIgfgogCmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy9waV90YXIudHh0IGIvcnVudGltZS9kb2MvcGlfdGFyLnR4dAppbmRleCBmNGMzNjVkLi4wNzM4ZDA3IDEwMDY0NAotLS0gYS9ydW50aW1lL2RvYy9waV90YXIudHh0CisrKyBiL3J1bnRpbWUvZG9jL3BpX3Rhci50eHQKQEAgLTEsOCArMSw4IEBACi0qcGlfdGFyLnR4dCoJRm9yIFZpbSB2ZXJzaW9uIDcuMGYuICBMYXN0IGNoYW5nZTogMjAwNiBBcHIgMjQKKypwaV90YXIudHh0KglGb3IgVmltIHZlcnNpb24gNy4wZy4gIExhc3QgY2hhbmdlOiAyMDA2IEFwciAzMAogCi0gICAgICAgCSAgICAgICAJICAgICAgICs9PT09PT09PT09PT09PT09PT09PSsKLSAgICAgICAJICAgICAgIAkgICAgICAgfCBUYXIgRmlsZSBJbnRlcmZhY2UgfAotICAgICAgIAkgICAgICAgCSAgICAgICArPT09PT09PT09PT09PT09PT09PT0rCisJCSAgICAgICArPT09PT09PT09PT09PT09PT09PT0rCisJCSAgICAgICB8IFRhciBGaWxlIEludGVyZmFjZSB8CisJCSAgICAgICArPT09PT09PT09PT09PT09PT09PT0rCiAKIEF1dGhvcjogIENoYXJsZXMgRS4gQ2FtcGJlbGwsIEpyLiAgPE5kck9jaGlwQFNjYW1wYmVsbFBmYW1pbHkuQWJpek0+CiAJICAocmVtb3ZlIE5PU1BBTSBmcm9tIENhbXBiZWxsJ3MgZW1haWwgZmlyc3QpCkBAIC0zMSwxMSArMzEsMTEgQEAKIAogICAgVGhlc2Ugb3B0aW9ucyBhcmUgdmFyaWFibGVzIHRoYXQgb25lIG1heSBjaGFuZ2UsIHR5cGljYWxseSBpbiBvbmUncwogICAgPC52aW1yYz4gZmlsZS4KLSAgICAgICAgICAgICAgICAgICAgICAgICBEZWZhdWx0Ci0gICBWYXJpYWJsZSAgICAgICAgICAgICAgIFZhbHVlICAgRXhwbGFuYXRpb24KKwkJCSBEZWZhdWx0CisgICBWYXJpYWJsZQkJICBWYWx1ZSAgIEV4cGxhbmF0aW9uCiAgICAqZzp0YXJfYnJvd3Nlb3B0aW9ucyogICJQdGYiICAgdXNlZCB0byBnZXQgYSBsaXN0IG9mIGNvbnRlbnRzCi0gICAqZzp0YXJfcmVhZG9wdGlvbnMqICAgICJPUHhmIiAgdXNlZCB0byBleHRyYWN0IGEgZmlsZSBmcm9tIGEgdGFyYmFsbAotICAgKmc6dGFyX2NtZCogICAgICAgICAgICAidGFyIiAgIHRoZSBuYW1lIG9mIHRoZSB0YXIgcHJvZ3JhbQorICAgKmc6dGFyX3JlYWRvcHRpb25zKgkgICJPUHhmIiAgdXNlZCB0byBleHRyYWN0IGEgZmlsZSBmcm9tIGEgdGFyYmFsbAorICAgKmc6dGFyX2NtZCoJCSAgInRhciIgICB0aGUgbmFtZSBvZiB0aGUgdGFyIHByb2dyYW0KICAgICpnOnRhcl93cml0ZW9wdGlvbnMqICAgInVmIiAgICB1c2VkIHRvIHVwZGF0ZS9yZXBsYWNlIGEgZmlsZQogCiAKQEAgLTQ0LDE5ICs0NCwxOSBAQAogCiAgICB2NyBNYXIgMjIsIDIwMDYgKiB3b3JrIG9uIG1ha2luZyB0YXIgcGx1Z2luIHdvcmsgYWNyb3NzIG5ldHdvcmsKICAgICAgIE1hciAyNywgMjAwNiAqIGc6dGFyX2NtZCBub3cgYXZhaWxhYmxlIGZvciB1c2VycyB0byBjaGFuZ2UgdGhlIG5hbWUKLSAgICAgICAgICAgICAgICAgICAgIG9mIHRoZSB0YXIgcHJvZ3JhbSB0byBiZSB1c2VkLiAgQnkgZGVmYXVsdCwgb2YgY291cnNlLAorCQkgICAgIG9mIHRoZSB0YXIgcHJvZ3JhbSB0byBiZSB1c2VkLiAgQnkgZGVmYXVsdCwgb2YgY291cnNlLAogCQkgICAgIGl0cyAidGFyIi4KICAgIHY2IERlYyAyMSwgMjAwNSAqIHdyaXRpbmcgdG8gZmlsZXMgbm90IGluIGRpcmVjdG9yaWVzIGNhdXNlZCBwcm9ibGVtcyAtCi0gICAgICAgICAgICAgICAgICAgICBmaXhlZCAocG9pbnRlZCBvdXQgYnkgQ2hyaXN0aWFuIFJvYmluc29uKQorCQkgICAgIGZpeGVkIChwb2ludGVkIG91dCBieSBDaHJpc3RpYW4gUm9iaW5zb24pCiAgICB2NSBOb3YgMjIsIDIwMDUgKiByZXBvcnQgb3B0aW9uIHdvcmthcm91bmQgaW5zdGFsbGVkCiAgICB2MyBTZXAgMTYsIDIwMDUgKiBoYW5kbGVzIHdyaXRpbmcgZmlsZXMgaW4gYW4gYXJjaGl2ZSBiYWNrIHRvIHRoZQotICAgICAgICAgICAgICAgICAgICAgYXJjaGl2ZQorCQkgICAgIGFyY2hpdmUKICAgICAgIE9jdCAxOCwgMjAwNSAqIDxhbWF0Y2g+IHVzZWQgaW5zdGVhZCBvZiA8YWZpbGU+IGluIGF1dG9jbWRzCiAgICAgICBPY3QgMTgsIDIwMDUgKiBoYW5kbGVzIHdyaXRpbmcgdG8gY29tcHJlc3NlZCBhcmNoaXZlcwogICAgICAgTm92IDAzLCAyMDA1ICogaGFuZGxlcyB3cml0aW5nIHRhcmZpbGVzIGFjcm9zcyBhIG5ldHdvcmsgdXNpbmcKLSAgICAgICAgICAgICAgICAgICAgIG5ldHJ3I05ldFdyaXRlKCkKLSAgIHYyICAgICAgICAgICAgICAqIGNvbnZlcnRlZCB0byB1c2UgVmltNydzIG5ldyBhdXRvbG9hZCBmZWF0dXJlIGJ5Ci0gICAgICAgICAgICAgICAgICAgICBCcmFtIE1vb2xlbmFhcgorCQkgICAgIG5ldHJ3I05ldFdyaXRlKCkKKyAgIHYyCQkgICAqIGNvbnZlcnRlZCB0byB1c2UgVmltNydzIG5ldyBhdXRvbG9hZCBmZWF0dXJlIGJ5CisJCSAgICAgQnJhbSBNb29sZW5hYXIKICAgIHYxIChvcmlnaW5hbCkgICAqIE1pY2hhZWwgVG9yZW4gKHNlZSBodHRwOi8vbWljaGFlbC50b3Jlbi5uZXQvY29kZS8pCiAKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpkaWZmIC0tZ2l0IGEvcnVudGltZS9kb2MvcGlfdmltYmFsbC50eHQgYi9ydW50aW1lL2RvYy9waV92aW1iYWxsLnR4dAppbmRleCBkOWU4N2U4Li44NWRhYjQxIDEwMDY0NAotLS0gYS9ydW50aW1lL2RvYy9waV92aW1iYWxsLnR4dAorKysgYi9ydW50aW1lL2RvYy9waV92aW1iYWxsLnR4dApAQCAtMSw0ICsxLDQgQEAKLSpwaV92aW1iYWxsLnR4dCoJRm9yIFZpbSB2ZXJzaW9uIDcuMGYuICBMYXN0IGNoYW5nZTogMjAwNiBBcHIgMjcKKypwaV92aW1iYWxsLnR4dCoJRm9yIFZpbSB2ZXJzaW9uIDcuMGcuICBMYXN0IGNoYW5nZTogMjAwNiBBcHIgMzAKIAogCQkJICAgICAgIC0tLS0tLS0tLS0tLS0tLS0KIAkJCSAgICAgICBWaW1iYWxsIEFyY2hpdmVyCkBAIC03LDggKzcsOCBAQAogQXV0aG9yOiAgQ2hhcmxlcyBFLiBDYW1wYmVsbCwgSnIuICA8TmRyT2NoaXBAU2NhbXBiZWxsUGZhbWlseS5BYml6TT4KIAkgIChyZW1vdmUgTk9TUEFNIGZyb20gQ2FtcGJlbGwncyBlbWFpbCBmaXJzdCkKIENvcHlyaWdodDogKGMpIDIwMDQtMjAwNiBieSBDaGFybGVzIEUuIENhbXBiZWxsLCBKci4JKlZpbWJhbGwtY29weXJpZ2h0KgotICAgICAgICAgICBUaGUgVklNIExJQ0VOU0UgYXBwbGllcyB0byBWaW1iYWxsLnZpbSwgYW5kIFZpbWJhbGwudHh0Ci0gICAgICAgICAgIChzZWUgfGNvcHlyaWdodHwpIGV4Y2VwdCB1c2UgIlZpbWJhbGwiIGluc3RlYWQgb2YgIlZpbSIuCisJICAgVGhlIFZJTSBMSUNFTlNFIGFwcGxpZXMgdG8gVmltYmFsbC52aW0sIGFuZCBWaW1iYWxsLnR4dAorCSAgIChzZWUgfGNvcHlyaWdodHwpIGV4Y2VwdCB1c2UgIlZpbWJhbGwiIGluc3RlYWQgb2YgIlZpbSIuCiAJICAgTm8gd2FycmFudHksIGV4cHJlc3Mgb3IgaW1wbGllZC4KIAkgICBVc2UgQXQtWW91ci1Pd24tUmlzayEKIApAQCAtNTMsNyArNTMsNyBAQAogCWxpbmUuCiAKIAkJOlZpbWJhbGxMaXN0CQkJCSp2aW1iYWxsLXZpbWJhbGxsaXN0KgotCQorCiAJVGhpcyBjb21tYW5kIHdpbGwgdGVsbCBWaW1iYWxsIHRvIGxpc3QgdGhlIGZpbGVzIGluIHRoZSBhcmNoaXZlLCBhbG9uZwogCXdpdGggdGhlaXIgbGVuZ3RocyBpbiBsaW5lcy4KIApAQCAtNjIsMjIgKzYyLDIyIEBACiAzLiBWaW1iYWxsIEhpc3RvcnkJCQkJCSp2aW1iYWxsLWhpc3RvcnkqIHt7ezEKIAogCTExIDogQXByIDI3LCAyMDA2ICogVmltYmFsbExpc3Qgd291bGQgY3JlYXRlIG1pc3Npbmcgc3ViZGlyZWN0b3JpZXMgdGhhdAotCSAgICAgICAgICAgICAgICAgICAgdGhlIHZpbWJhbGwgc3BlY2lmaWVkIHdlcmUgbmVlZGVkLiAgRml4ZWQuCisJCQkgICAgdGhlIHZpbWJhbGwgc3BlY2lmaWVkIHdlcmUgbmVlZGVkLglGaXhlZC4KIAkxMCA6IEFwciAyNywgMjAwNiAqIG1vdmVkIGFsbCBzZXR0aW5nIHNhdmluZy9yZXN0b3JhdGlvbiB0byBhIHBhaXIgb2YKLQkgICAgICAgICAgICAgICAgICAgIGZ1bmN0aW9ucy4gIEluY2x1ZGVkIHNvbWUgbW9yZSBzZXR0aW5ncyBpbiB0aGVtCisJCQkgICAgZnVuY3Rpb25zLglJbmNsdWRlZCBzb21lIG1vcmUgc2V0dGluZ3MgaW4gdGhlbQogCQkJICAgIHdoaWNoIGZyZXF1ZW50bHkgY2F1c2UgdHJvdWJsZS4KIAk5ICA6IEFwciAyNiwgMjAwNiAqIHZhcmlvdXMgY2hhbmdlcyB0byBzdXBwb3J0IFdpbmRvd3MgcHJlZGlsaWN0aW9uCi0JICAgICAgICAgICAgICAgICAgICBmb3IgYmFja3NsYXNoZXMgYW5kIHNwYWNlcyBpbiBmaWxlIGFuZCBkaXJlY3RvcnkKKwkJCSAgICBmb3IgYmFja3NsYXNoZXMgYW5kIHNwYWNlcyBpbiBmaWxlIGFuZCBkaXJlY3RvcnkKIAkJCSAgICBuYW1lcy4KIAk3ICA6IEFwciAyNSwgMjAwNiAqIGJ5cGFzc2VzIGZvbGRlbmFibGUKLQkgICAgICAgICAgICAgICAgICAqIHVzZXMgbW9yZSBleGUgYW5kIGxlc3Mgbm9ybSEgKDp5YW5rIDpwdXQgZXRjKQorCQkJICAqIHVzZXMgbW9yZSBleGUgYW5kIGxlc3Mgbm9ybSEgKDp5YW5rIDpwdXQgZXRjKQogCQkJICAqIGRvZXMgYmV0dGVyIGF0IGluc3VyaW5nIGEgIlByZXNzIEVOVEVSIiBwcm9tcHQKIAkJCSAgICBhcHBlYXJzIHRvIGtlZXAgaXRzIG1lc3NhZ2VzIHZpc2libGUKIAk0ICA6IE1hciAzMSwgMjAwNiAqIEJ1ZlJlYWRQb3N0IHNlZW1zIHRvIGZpcmUgdHdpY2U7IEJ1ZlJlYWRFbnRlcgotCSAgICAgICAgICAgICAgICAgICAgb25seSBmaXJlcyBvbmNlLCBzbyB0aGUgIlNvdXJjZSB0aGlzIGZpbGUuLi4iCisJCQkgICAgb25seSBmaXJlcyBvbmNlLCBzbyB0aGUgIlNvdXJjZSB0aGlzIGZpbGUuLi4iCiAJCQkgICAgbWVzc2FnZSBpcyBub3cgaXNzdWVkIG9ubHkgb25jZS4KIAkzICA6IE1hciAyMCwgMjAwNiAqIHJlbW92ZWQgcXVlcnksIG5vdyByZXF1aXJlcyBzb3VyY2luZyB0byBiZQotCSAgICAgICAgICAgICAgICAgICAgZXh0cmFjdGVkICg6c28gJSkuICBNZXNzYWdlIHRvIHRoYXQgZWZmZWN0CisJCQkgICAgZXh0cmFjdGVkICg6c28gJSkuCU1lc3NhZ2UgdG8gdGhhdCBlZmZlY3QKIAkJCSAgICBpbmNsdWRlZC4KIAkJCSAgKiA6VmltYmFsbExpc3QgIG5vdyBzaG93cyBmaWxlcyB0aGF0IHdvdWxkIGJlCiAJCQkgICAgZXh0cmFjdGVkLgpkaWZmIC0tZ2l0IGEvcnVudGltZS9kb2MvcGlfemlwLnR4dCBiL3J1bnRpbWUvZG9jL3BpX3ppcC50eHQKaW5kZXggM2ZiYTAzZC4uMTBhNjJmNiAxMDA2NDQKLS0tIGEvcnVudGltZS9kb2MvcGlfemlwLnR4dAorKysgYi9ydW50aW1lL2RvYy9waV96aXAudHh0CkBAIC0xLDQgKzEsNCBAQAotKnBpX3ppcC50eHQqCUZvciBWaW0gdmVyc2lvbiA3LjBmLiAgTGFzdCBjaGFuZ2U6IDIwMDYgQXByIDI0CisqcGlfemlwLnR4dCoJRm9yIFZpbSB2ZXJzaW9uIDcuMGcuICBMYXN0IGNoYW5nZTogMjAwNiBBcHIgMzAKIAogCQkJCSs9PT09PT09PT09PT09PT09PT09PSsKIAkJCQl8IFppcCBGaWxlIEludGVyZmFjZSB8CkBAIC03LDcgKzcsNyBAQAogQXV0aG9yOiAgQ2hhcmxlcyBFLiBDYW1wYmVsbCwgSnIuICA8TmRyT2NoaXBAU2NhbXBiZWxsUGZhbWlseS5BYml6TT4KIAkgIChyZW1vdmUgTk9TUEFNIGZyb20gQ2FtcGJlbGwncyBlbWFpbCBmaXJzdCkKIENvcHlyaWdodDogQ29weXJpZ2h0IChDKSAyMDA1LDIwMDYgQ2hhcmxlcyBFIENhbXBiZWxsLCBKciB7e3sxICp6aXAtY29weXJpZ2h0KgotICAgICAgICAgICBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkIHRvIHVzZSBhbmQgZGlzdHJpYnV0ZSB0aGlzIGNvZGUsCisJICAgUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCB0byB1c2UgYW5kIGRpc3RyaWJ1dGUgdGhpcyBjb2RlLAogCSAgIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb25zLCBwcm92aWRlZCB0aGF0IHRoaXMgY29weXJpZ2h0CiAJICAgbm90aWNlIGlzIGNvcGllZCB3aXRoIGl0LiBMaWtlIGFueXRoaW5nIGVsc2UgdGhhdCdzIGZyZWUsCiAJICAgemlwLnZpbSwgemlwUGx1Z2luLnZpbSwgYW5kIHBpX3ppcC50eHQgYXJlIHByb3ZpZGVkICphcyBpcyoKQEAgLTM0LDIxICszNCwyMSBAQAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAzLiBIaXN0b3J5CQkJCQkqemlwLWhpc3RvcnkqCiAgICB2OCBBcHIgMTAsIDIwMDYgKiBCcmFtIE1vb2xlbmFhciByZXBvcnRlZCB0aGF0IGhlIHJlY2VpdmVkIGFuIGVycm9yIG1lc3NhZ2UKLSAgICAgICAgICAgICAgICAgICAgIGR1ZSB0byAiUGF0dGVybiBub3QgZm91bmQ6IF4uKlwlMGMiOyB0aGlzIHdhcyBjYXVzZWQgYnkKKwkJICAgICBkdWUgdG8gIlBhdHRlcm4gbm90IGZvdW5kOiBeLipcJTBjIjsgdGhpcyB3YXMgY2F1c2VkIGJ5CiAJCSAgICAgc3RyaWR4IGZpbmRpbmcgYSBOYW1lLi4uIGF0IHRoZSBiZWdpbm5pbmcgb2YgdGhlIGxpbmU7CiAJCSAgICAgemlwLnZpbSB0cmllZCA0LCRzL14uKlwlMGMvLywgYnV0IHRoYXQgZG9lc24ndCB3b3JrLgogCQkgICAgIEZpeGVkLgogICAgdjcgTWFyIDIyLCAyMDA2ICogZXNjYXBlZCBzb21lIGNoYXJhY3RlcnMgdGhhdCBjYW4gY2F1c2UgZmlsZW5hbWUgaGFuZGxpbmcKLSAgICAgICAgICAgICAgICAgICAgIHByb2JsZW1zLgorCQkgICAgIHByb2JsZW1zLgogICAgdjYgRGVjIDIxLCAyMDA1ICogd3JpdGluZyB0byBmaWxlcyBub3QgaW4gZGlyZWN0b3JpZXMgY2F1c2VkIHByb2JsZW1zIC0KLSAgICAgICAgICAgICAgICAgICAgIGZpeGVkIChwb2ludGVkIG91dCBieSBDaHJpc3RpYW4gUm9iaW5zb24pCisJCSAgICAgZml4ZWQgKHBvaW50ZWQgb3V0IGJ5IENocmlzdGlhbiBSb2JpbnNvbikKICAgIHY1IE5vdiAyMiwgMjAwNSAqIHJlcG9ydCBvcHRpb24gd29ya2Fyb3VuZCBpbnN0YWxsZWQKICAgIHYzIE9jdCAxOCwgMjAwNSAqIDxhbWF0Y2g+IHVzZWQgaW5zdGVhZCBvZiA8YWZpbGU+IGluIGF1dG9jbWRzCiAgICB2MiBTZXAgMTYsIDIwMDUgKiBzaWxlbmNlZCBzb21lIGNvbW1hbmRzIChhdm9pZGluZyBoaXQtZW50ZXIgcHJvbXB0KQotICAgICAgICAgICAgICAgICAgICogYmVnYW4gdGVzdGluZyB1bmRlciBXaW5kb3dzOyB3b3JrcyB0aHVzIGZhcgorCQkgICAqIGJlZ2FuIHRlc3RpbmcgdW5kZXIgV2luZG93czsgd29ya3MgdGh1cyBmYXIKIAkJICAgKiBmaWxldHlwZSBkZXRlY3Rpb24gZml4ZWQKICAgICAgIE5vdiAwMywgMjAwNSAqIGhhbmRsZXMgd3JpdGluZyB6aXBmaWxlcyBhY3Jvc3MgYSBuZXR3b3JrIHVzaW5nCi0gICAgICAgICAgICAgICAgICAgICBuZXRydyNOZXRXcml0ZSgpCisJCSAgICAgbmV0cncjTmV0V3JpdGUoKQogICAgdjEgU2VwIDE1LCAyMDA1ICogSW5pdGlhbCByZWxlYXNlLCBoYWQgYnJvd3NpbmcsIHJlYWRpbmcsIGFuZCB3cml0aW5nCiAKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpkaWZmIC0tZ2l0IGEvcnVudGltZS9kb2MvcHJpbnQudHh0IGIvcnVudGltZS9kb2MvcHJpbnQudHh0CmluZGV4IDQ4NDRmMDAuLjY0ZjA4N2EgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvZG9jL3ByaW50LnR4dAorKysgYi9ydW50aW1lL2RvYy9wcmludC50eHQKQEAgLTEsNCArMSw0IEBACi0qcHJpbnQudHh0KiAgICAgRm9yIFZpbSB2ZXJzaW9uIDcuMGYuICBMYXN0IGNoYW5nZTogMjAwNiBBcHIgMjQKKypwcmludC50eHQqICAgICBGb3IgVmltIHZlcnNpb24gNy4wZy4gIExhc3QgY2hhbmdlOiAyMDA2IEFwciAzMAogCiAKIAkJICBWSU0gUkVGRVJFTkNFIE1BTlVBTCAgICBieSBCcmFtIE1vb2xlbmFhcgpAQCAtMTAsNyArMTAsNyBAQAogMi4gUHJpbnQgb3B0aW9ucwkJCXxwcmludC1vcHRpb25zfAogMy4gUG9zdFNjcmlwdCBQcmludGluZwkJCXxwb3N0c2NyaXB0LXByaW50aW5nfAogNC4gUG9zdFNjcmlwdCBQcmludGluZyBFbmNvZGluZwkJfHBvc3RzY3JpcHQtcHJpbnQtZW5jb2Rpbmd8Ci01LiBQb3N0U2NyaXB0IENKSyBQcmludGluZyAJCXxwb3N0c2NyaXB0LWNqay1wcmludGluZ3wKKzUuIFBvc3RTY3JpcHQgQ0pLIFByaW50aW5nCQl8cG9zdHNjcmlwdC1jamstcHJpbnRpbmd8CiA2LiBQb3N0U2NyaXB0IFByaW50aW5nIFRyb3VibGVzaG9vdGluZwl8cG9zdHNjcmlwdC1wcmludC10cm91YmxlfAogNy4gUG9zdFNjcmlwdCBVdGlsaXRpZXMJCQl8cG9zdHNjcmlwdC1wcmludC11dGlsfAogOC4gRm9ybWZlZWQgQ2hhcmFjdGVycwkJCXxwcmludGluZy1mb3JtZmVlZHwKQEAgLTIxOCw3ICsyMTgsNyBAQAogICBKYXBhbmVzZQlKSVNfQ18xOTc4CiAJCUpJU19YXzE5ODMKIAkJSklTX1hfMTk5MAotCQlNU1dJTkRPV1MJV2luMy4xLzk1SiAoSklTIFggMTk5NyArIE5FQyArIAorCQlNU1dJTkRPV1MJV2luMy4xLzk1SiAoSklTIFggMTk5NyArIE5FQyArCiAJCQkJICBJQk0gZXh0ZW5zaW9ucykKIAkJS0FOSklUQUxLNglBcHBsZSBNYWMgS2FuamlUYWxrIFY2LngKIAkJS0FOSklUQUxLNwlBcHBsZSBNYWMgS2FuamlUYWxrIFY3LngKQEAgLTI1NCw3ICsyNTQsNyBAQAogCQlLQU5KSVRBTEs3CSAgIHgKIAogCQkJCWV1Yy1rcgkgY3A5NDkJdWNzLTIJdXRmLTggfgotICBLb3JlYW4JS1NfWF8xOTkyCSAgIHggICAKKyAgS29yZWFuCUtTX1hfMTk5MgkgICB4CiAJCU1BQwkJICAgeAogCQlNU1dJTkRPV1MJCSAgIHgKIAkJSVNPMTA2NDYJCQkgIHgJICB4CkBAIC0zMDcsNyArMzA3LDcgQEAKIAk6c2V0IHByaW50bWJmb250PXI6V2FkYU1pbi1SZWd1bGFyLGI6V2FkYU1pbi1Cb2xkLGM6eWVzCiA8CiAJCQkJCQkJKnBvcHQtb3B0aW9uKgotJ3ByaW50b3B0aW9ucycgJ3BvcHQnIAlzdHJpbmcgKGRlZmF1bHQgIiIpCisncHJpbnRvcHRpb25zJyAncG9wdCcJc3RyaW5nIChkZWZhdWx0ICIiKQogCQkJZ2xvYmFsCiBUaGlzIGlzIGEgY29tbWEtc2VwYXJhdGVkIGxpc3Qgb2YgaXRlbXMgdGhhdCBjb250cm9sIHRoZSBmb3JtYXQgb2YgdGhlIG91dHB1dAogb2YgfDpoYXJkY29weXw6CkBAIC0zMzYsNyArMzM2LDcgQEAKIAkJCXRodXMgdXNlZnVsIHdoZW4gcHJpbnRpbmcgbGFyZ2UgZmlsZXMuCiAgIHN5bnRheDp5CQlEbyBzeW50YXggaGlnaGxpZ2h0aW5nLgogICBzeW50YXg6YSAgKGRlZmF1bHQpCVVzZSBzeW50YXggaGlnaGxpZ2h0aW5nIGlmIHRoZSBwcmludGVyIGFwcGVhcnMgdG8gYmUKLSAgCQkJYWJsZSB0byBwcmludCBjb2xvciBvciBncmV5LgorCQkJYWJsZSB0byBwcmludCBjb2xvciBvciBncmV5LgogCiAgIG51bWJlcjp5CQlJbmNsdWRlIGxpbmUgbnVtYmVycyBpbiB0aGUgcHJpbnRlZCBvdXRwdXQuCiAgIG51bWJlcjpuICAoZGVmYXVsdCkJTm8gbGluZSBudW1iZXJzLgpAQCAtMzQ2LDE2ICszNDYsMTYgQEAKIAogICBkdXBsZXg6b2ZmCQlQcmludCBvbiBvbmUgc2lkZS4KICAgZHVwbGV4OmxvbmcgKGRlZmF1bHQpCVByaW50IG9uIGJvdGggc2lkZXMgKHdoZW4gcG9zc2libGUpLCBiaW5kIG9uIGxvbmcKLSAgCQkJc2lkZS4KKwkJCXNpZGUuCiAgIGR1cGxleDpzaG9ydAkJUHJpbnQgb24gYm90aCBzaWRlcyAod2hlbiBwb3NzaWJsZSksIGJpbmQgb24gc2hvcnQKLSAgCQkJc2lkZS4KKwkJCXNpZGUuCiAKICAgY29sbGF0ZTp5ICAoZGVmYXVsdCkJQ29sbGF0aW5nOiAxIDIgMywgMSAyIDMsIDEgMiAzCiAgIGNvbGxhdGU6bgkJTm8gY29sbGF0aW5nOiAxIDEgMSwgMiAyIDIsIDMgMyAzCiAKICAgam9ic3BsaXQ6biAoZGVmYXVsdCkJRG8gYWxsIGNvcGllcyBpbiBvbmUgcHJpbnQgam9iCiAgIGpvYnNwbGl0OnkJCURvIGVhY2ggY29weSBhcyBhIHNlcGFyYXRlIHByaW50IGpvYi4gIFVzZWZ1bCB3aGVuCi0gIAkJCWRvaW5nIE4tdXAgcG9zdHByb2Nlc3NpbmcuCisJCQlkb2luZyBOLXVwIHBvc3Rwcm9jZXNzaW5nLgogCiAgIHBvcnRyYWl0OnkgKGRlZmF1bHQpCU9yaWVudGF0aW9uIGlzIHBvcnRyYWl0LgogICBwb3J0cmFpdDpuCQlPcmllbnRhdGlvbiBpcyBsYW5kc2NhcGUuCkBAIC0zNzksNyArMzc5LDcgQEAKIAkJCXRhYmxvaWQgICAgIDI3Ljk2IHggNDMuMTMgICAgMTEgICAgeCAxNwogCiAgIGZvcm1mZWVkOm4gKGRlZmF1bHQpCVRyZWF0IGZvcm0gZmVlZCBjaGFyYWN0ZXJzICgweDBjKSBhcyBhIG5vcm1hbCBwcmludAotICAJCQljaGFyYWN0ZXIuCisJCQljaGFyYWN0ZXIuCiAgIGZvcm1mZWVkOnkJCVdoZW4gYSBmb3JtIGZlZWQgY2hhcmFjdGVyIGlzIGVuY291bnRlcmVkLCBjb250aW51ZQogCQkJcHJpbnRpbmcgb2YgdGhlIGN1cnJlbnQgbGluZSBhdCB0aGUgYmVnaW5uaW5nIG9mIHRoZQogCQkJZmlyc3QgbGluZSBvbiBhIG5ldyBwYWdlLgpAQCAtNDg0LDcgKzQ4NCw3IEBACiAKICAgaHR0cDovL2V4YW1wbGVzLm9yZWlsbHkuY29tL2Nqa3ZpbmZvL2Fkb2JlL3NhbXBsZXMvCiAKLVlvdSBjYW4gZmluZCBkZXNjcmlwdGlvbnMgb2YgdGhlIHZhcmlvdXMgZm9udHMgaW4gdGhlIHJlYWQgbWUgZmlsZSBhdCAKK1lvdSBjYW4gZmluZCBkZXNjcmlwdGlvbnMgb2YgdGhlIHZhcmlvdXMgZm9udHMgaW4gdGhlIHJlYWQgbWUgZmlsZSBhdAogCiAgIGh0dHA6Ly9leGFtcGxlcy5vcmVpbGx5LmNvbS9jamt2aW5mby9hZG9iZS8wMFJFQURNRQogCmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy9xdWlja2ZpeC50eHQgYi9ydW50aW1lL2RvYy9xdWlja2ZpeC50eHQKaW5kZXggNzMzMWM4OS4uNDAwOGE2ZSAxMDA2NDQKLS0tIGEvcnVudGltZS9kb2MvcXVpY2tmaXgudHh0CisrKyBiL3J1bnRpbWUvZG9jL3F1aWNrZml4LnR4dApAQCAtMSw0ICsxLDQgQEAKLSpxdWlja2ZpeC50eHQqICBGb3IgVmltIHZlcnNpb24gNy4wZi4gIExhc3QgY2hhbmdlOiAyMDA2IEFwciAyNAorKnF1aWNrZml4LnR4dCogIEZvciBWaW0gdmVyc2lvbiA3LjBnLiAgTGFzdCBjaGFuZ2U6IDIwMDYgQXByIDMwCiAKIAogCQkgIFZJTSBSRUZFUkVOQ0UgTUFOVUFMICAgIGJ5IEJyYW0gTW9vbGVuYWFyCkBAIC04OCw3ICs4OCw3IEBACiAJCQlhbGwsIGdvIHRvIHRoZSBbY291bnRdIHByZXZpb3VzIGVycm9yLiAgU2VlIHw6Y2N8IGZvcgogCQkJWyFdIGFuZCAnc3dpdGNoYnVmJy4KIAotCQkJCQorCiA6W2NvdW50XWxOW2V4dF1bIV0JCQkqOmxwKiAqOmxwcmV2aW91cyogKjpsTiogKjpsTmV4dCoKIDpbY291bnRdbHBbcmV2aW91c11bIV0JU2FtZSBhcyAiOmNOZXh0IiBhbmQgIjpjcHJldmlvdXMiLCBleGNlcHQgdGhlIGxvY2F0aW9uCiAJCQlsaXN0IGZvciB0aGUgY3VycmVudCB3aW5kb3cgaXMgdXNlZCBpbnN0ZWFkIG9mIHRoZQpAQCAtMTU4LDEyICsxNTgsMTIgQEAKIAkJCVlvdSBjYW4gbm90IHVzZSB0aGUgLXEgY29tbWFuZC1saW5lIG9wdGlvbiB0byBzZXQKIAkJCXRoZSBsb2NhdGlvbiBsaXN0LgogCi0JCQorCiA6Y2dbZXRmaWxlXVshXSBbZXJyb3JmaWxlXQkJCQkqOmNnKiAqOmNnZXRmaWxlKgogCQkJUmVhZCB0aGUgZXJyb3IgZmlsZS4gIEp1c3QgbGlrZSAiOmNmaWxlIiBidXQgZG9uJ3QKIAkJCWp1bXAgdG8gdGhlIGZpcnN0IGVycm9yLgogCi0JCQkKKwogOmxnW2V0ZmlsZV1bIV0gW2Vycm9yZmlsZV0JCQkJKjpsZyogKjpsZ2V0ZmlsZSoKIAkJCVNhbWUgYXMgIjpjZ2V0ZmlsZSIsIGV4Y2VwdCB0aGUgbG9jYXRpb24gbGlzdCBmb3IgdGhlCiAJCQljdXJyZW50IHdpbmRvdyBpcyB1c2VkIGluc3RlYWQgb2YgdGhlIHF1aWNrZml4IGxpc3QuCmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy9xdWlja3JlZi50eHQgYi9ydW50aW1lL2RvYy9xdWlja3JlZi50eHQKaW5kZXggNDVhM2E3ZC4uZGQ2OGIyYiAxMDA2NDQKLS0tIGEvcnVudGltZS9kb2MvcXVpY2tyZWYudHh0CisrKyBiL3J1bnRpbWUvZG9jL3F1aWNrcmVmLnR4dApAQCAtMSw0ICsxLDQgQEAKLSpxdWlja3JlZi50eHQqICBGb3IgVmltIHZlcnNpb24gNy4wZi4gIExhc3QgY2hhbmdlOiAyMDA2IEFwciAyNAorKnF1aWNrcmVmLnR4dCogIEZvciBWaW0gdmVyc2lvbiA3LjBnLiAgTGFzdCBjaGFuZ2U6IDIwMDYgQXByIDMwCiAKIAogCQkgIFZJTSBSRUZFUkVOQ0UgTUFOVUFMICAgIGJ5IEJyYW0gTW9vbGVuYWFyCkBAIC01ODgsNTggKzU4OCw1OCBAQAogCQkJCQkgIHRoZSBoZWxwLgogCiBTaG9ydCBleHBsYW5hdGlvbiBvZiBlYWNoIG9wdGlvbjoJCSpvcHRpb24tbGlzdCoKLSdhbGVwaCcgICAgICAgICAgICdhbCcgICAgICBBU0NJSSBjb2RlIG9mIHRoZSBsZXR0ZXIgQWxlcGggKEhlYnJldykKLSdhbGxvd3JldmlucycgICAgICdhcmknICAgICBhbGxvdyBDVFJMLV8gaW4gSW5zZXJ0IGFuZCBDb21tYW5kLWxpbmUgbW9kZQotJ2FsdGtleW1hcCcgICAgICAgJ2FrbScgICAgIGZvciBkZWZhdWx0IHNlY29uZCBsYW5ndWFnZSAoRmFyc2kvSGVicmV3KQotJ2FtYml3aWR0aCcgICAgICAgJ2FtYncnICAgIHdoYXQgdG8gZG8gd2l0aCBVbmljb2RlIGNoYXJzIG9mIGFtYmlndW91cyB3aWR0aAotJ2FudGlhbGlhcycgICAgICAgJ2FudGknICAgIE1hYyBPUyBYOiB1c2Ugc21vb3RoLCBhbnRpYWxpYXNlZCBmb250cwotJ2F1dG9jaGRpcicgICAgICAgJ2FjZCcgICAgIGNoYW5nZSBkaXJlY3RvcnkgdG8gdGhlIGZpbGUgaW4gdGhlIGN1cnJlbnQgd2luZG93Ci0nYXJhYmljJyAgICAgICAgICAnYXJhYicgICAgZm9yIEFyYWJpYyBhcyBhIGRlZmF1bHQgc2Vjb25kIGxhbmd1YWdlCi0nYXJhYmljc2hhcGUnICAgICAnYXJzaGFwZScgZG8gc2hhcGluZyBmb3IgQXJhYmljIGNoYXJhY3RlcnMKLSdhdXRvaW5kZW50JyAgICAgICdhaScgICAgICB0YWtlIGluZGVudCBmb3IgbmV3IGxpbmUgZnJvbSBwcmV2aW91cyBsaW5lCi0nYXV0b3JlYWQnICAgICAgICAnYXInICAgICAgYXV0b20uIHJlYWQgZmlsZSB3aGVuIGNoYW5nZWQgb3V0c2lkZSBvZiBWaW0KLSdhdXRvd3JpdGUnICAgICAgICdhdycgICAgICBhdXRvbWF0aWNhbGx5IHdyaXRlIGZpbGUgaWYgY2hhbmdlZAotJ2F1dG93cml0ZWFsbCcgICAgJ2F3YScgICAgIGFzICdhdXRvd3JpdGUnLCBidXQgd29ya3Mgd2l0aCBtb3JlIGNvbW1hbmRzCi0nYmFja2dyb3VuZCcgICAgICAnYmcnICAgICAgImRhcmsiIG9yICJsaWdodCIsIHVzZWQgZm9yIGhpZ2hsaWdodCBjb2xvcnMKLSdiYWNrc3BhY2UnICAgICAgICdicycgICAgICBob3cgYmFja3NwYWNlIHdvcmtzIGF0IHN0YXJ0IG9mIGxpbmUKLSdiYWNrdXAnICAgICAgICAgICdiaycgICAgICBrZWVwIGJhY2t1cCBmaWxlIGFmdGVyIG92ZXJ3cml0aW5nIGEgZmlsZQotJ2JhY2t1cGNvcHknICAgICAgJ2JrYycgICAgIG1ha2UgYmFja3VwIGFzIGEgY29weSwgZG9uJ3QgcmVuYW1lIHRoZSBmaWxlCi0nYmFja3VwZGlyJyAgICAgICAnYmRpcicgICAgbGlzdCBvZiBkaXJlY3RvcmllcyBmb3IgdGhlIGJhY2t1cCBmaWxlCi0nYmFja3VwZXh0JyAgICAgICAnYmV4JyAgICAgZXh0ZW5zaW9uIHVzZWQgZm9yIHRoZSBiYWNrdXAgZmlsZQotJ2JhY2t1cHNraXAnICAgICAgJ2JzaycgICAgIG5vIGJhY2t1cCBmb3IgZmlsZXMgdGhhdCBtYXRjaCB0aGVzZSBwYXR0ZXJucwotJ2JhbGxvb25kZWxheScgICAgJ2JkbGF5JyAgIGRlbGF5IGluIG1TIGJlZm9yZSBhIGJhbGxvb24gbWF5IHBvcCB1cAotJ2JhbGxvb25ldmFsJyAgICAgJ2JldmFsJyAgIHN3aXRjaCBvbiBiYWxsb29uIGV2YWx1YXRpb24KLSdiYWxsb29uZXhwcicgICAgICdiZXhwcicgICBleHByZXNzaW9uIHRvIHNob3cgaW4gYmFsbG9vbgotJ2JpbmFyeScgICAgICAgICAgJ2JpbicgICAgIHJlYWQvd3JpdGUvZWRpdCBmaWxlIGluIGJpbmFyeSBtb2RlCi0nYmlvc2tleScgICAgICAgICAnYmlvc2snICAgTVMtRE9TOiB1c2UgYmlvcyBjYWxscyBmb3IgaW5wdXQgY2hhcmFjdGVycwotJ2JvbWInICAgICAgICAgICAgICAgICAgICAgIHByZXBlbmQgYSBCeXRlIE9yZGVyIE1hcmsgdG8gdGhlIGZpbGUKLSdicmVha2F0JyAgICAgICAgICdicmsnICAgICBjaGFyYWN0ZXJzIHRoYXQgbWF5IGNhdXNlIGEgbGluZSBicmVhawotJ2Jyb3dzZWRpcicgICAgICAgJ2JzZGlyJyAgIHdoaWNoIGRpcmVjdG9yeSB0byBzdGFydCBicm93c2luZyBpbgotJ2J1ZmhpZGRlbicgICAgICAgJ2JoJyAgICAgIHdoYXQgdG8gZG8gd2hlbiBidWZmZXIgaXMgbm8gbG9uZ2VyIGluIHdpbmRvdwotJ2J1Zmxpc3RlZCcgICAgICAgJ2JsJyAgICAgIHdoZXRoZXIgdGhlIGJ1ZmZlciBzaG93cyB1cCBpbiB0aGUgYnVmZmVyIGxpc3QKLSdidWZ0eXBlJyAgICAgICAgICdidCcgICAgICBzcGVjaWFsIHR5cGUgb2YgYnVmZmVyCi0nY2FzZW1hcCcgICAgICAgICAnY21wJyAgICAgc3BlY2lmaWVzIGhvdyBjYXNlIG9mIGxldHRlcnMgaXMgY2hhbmdlZAotJ2NkcGF0aCcgICAgICAgICAgJ2NkJyAgICAgIGxpc3Qgb2YgZGlyZWN0b3JpZXMgc2VhcmNoZWQgd2l0aCAiOmNkIgotJ2NlZGl0JyAgICAgICAgICAgICAgICAgICAgIGtleSB1c2VkIHRvIG9wZW4gdGhlIGNvbW1hbmQtbGluZSB3aW5kb3cKLSdjaGFyY29udmVydCcgICAgICdjY3YnICAgICBleHByZXNzaW9uIGZvciBjaGFyYWN0ZXIgZW5jb2RpbmcgY29udmVyc2lvbgotJ2NpbmRlbnQnICAgICAgICAgJ2NpbicgICAgIGRvIEMgcHJvZ3JhbSBpbmRlbnRpbmcKLSdjaW5rZXlzJyAgICAgICAgICdjaW5rJyAgICBrZXlzIHRoYXQgdHJpZ2dlciBpbmRlbnQgd2hlbiAnY2luZGVudCcgaXMgc2V0Ci0nY2lub3B0aW9ucycgICAgICAnY2lubycgICAgaG93IHRvIGRvIGluZGVudGluZyB3aGVuICdjaW5kZW50JyBpcyBzZXQKLSdjaW53b3JkcycgICAgICAgICdjaW53JyAgICB3b3JkcyB3aGVyZSAnc2knIGFuZCAnY2luJyBhZGQgYW4gaW5kZW50Ci0nY2xpcGJvYXJkJyAgICAgICAnY2InICAgICAgdXNlIHRoZSBjbGlwYm9hcmQgYXMgdGhlIHVubmFtZWQgcmVnaXN0ZXIKLSdjbWRoZWlnaHQnICAgICAgICdjaCcgICAgICBudW1iZXIgb2YgbGluZXMgdG8gdXNlIGZvciB0aGUgY29tbWFuZC1saW5lCi0nY21kd2luaGVpZ2h0JyAgICAnY3doJyAgICAgaGVpZ2h0IG9mIHRoZSBjb21tYW5kLWxpbmUgd2luZG93Ci0nY29sdW1ucycgICAgICAgICAnY28nICAgICAgbnVtYmVyIG9mIGNvbHVtbnMgaW4gdGhlIGRpc3BsYXkKLSdjb21tZW50cycgICAgICAgICdjb20nICAgICBwYXR0ZXJucyB0aGF0IGNhbiBzdGFydCBhIGNvbW1lbnQgbGluZQorJ2FsZXBoJwkJICAnYWwnCSAgICBBU0NJSSBjb2RlIG9mIHRoZSBsZXR0ZXIgQWxlcGggKEhlYnJldykKKydhbGxvd3JldmlucycJICAnYXJpJyAgICAgYWxsb3cgQ1RSTC1fIGluIEluc2VydCBhbmQgQ29tbWFuZC1saW5lIG1vZGUKKydhbHRrZXltYXAnCSAgJ2FrbScgICAgIGZvciBkZWZhdWx0IHNlY29uZCBsYW5ndWFnZSAoRmFyc2kvSGVicmV3KQorJ2FtYml3aWR0aCcJICAnYW1idycgICAgd2hhdCB0byBkbyB3aXRoIFVuaWNvZGUgY2hhcnMgb2YgYW1iaWd1b3VzIHdpZHRoCisnYW50aWFsaWFzJwkgICdhbnRpJyAgICBNYWMgT1MgWDogdXNlIHNtb290aCwgYW50aWFsaWFzZWQgZm9udHMKKydhdXRvY2hkaXInCSAgJ2FjZCcgICAgIGNoYW5nZSBkaXJlY3RvcnkgdG8gdGhlIGZpbGUgaW4gdGhlIGN1cnJlbnQgd2luZG93CisnYXJhYmljJwkgICdhcmFiJyAgICBmb3IgQXJhYmljIGFzIGEgZGVmYXVsdCBzZWNvbmQgbGFuZ3VhZ2UKKydhcmFiaWNzaGFwZScJICAnYXJzaGFwZScgZG8gc2hhcGluZyBmb3IgQXJhYmljIGNoYXJhY3RlcnMKKydhdXRvaW5kZW50JwkgICdhaScJICAgIHRha2UgaW5kZW50IGZvciBuZXcgbGluZSBmcm9tIHByZXZpb3VzIGxpbmUKKydhdXRvcmVhZCcJICAnYXInCSAgICBhdXRvbS4gcmVhZCBmaWxlIHdoZW4gY2hhbmdlZCBvdXRzaWRlIG9mIFZpbQorJ2F1dG93cml0ZScJICAnYXcnCSAgICBhdXRvbWF0aWNhbGx5IHdyaXRlIGZpbGUgaWYgY2hhbmdlZAorJ2F1dG93cml0ZWFsbCcJICAnYXdhJyAgICAgYXMgJ2F1dG93cml0ZScsIGJ1dCB3b3JrcyB3aXRoIG1vcmUgY29tbWFuZHMKKydiYWNrZ3JvdW5kJwkgICdiZycJICAgICJkYXJrIiBvciAibGlnaHQiLCB1c2VkIGZvciBoaWdobGlnaHQgY29sb3JzCisnYmFja3NwYWNlJwkgICdicycJICAgIGhvdyBiYWNrc3BhY2Ugd29ya3MgYXQgc3RhcnQgb2YgbGluZQorJ2JhY2t1cCcJICAnYmsnCSAgICBrZWVwIGJhY2t1cCBmaWxlIGFmdGVyIG92ZXJ3cml0aW5nIGEgZmlsZQorJ2JhY2t1cGNvcHknCSAgJ2JrYycgICAgIG1ha2UgYmFja3VwIGFzIGEgY29weSwgZG9uJ3QgcmVuYW1lIHRoZSBmaWxlCisnYmFja3VwZGlyJwkgICdiZGlyJyAgICBsaXN0IG9mIGRpcmVjdG9yaWVzIGZvciB0aGUgYmFja3VwIGZpbGUKKydiYWNrdXBleHQnCSAgJ2JleCcgICAgIGV4dGVuc2lvbiB1c2VkIGZvciB0aGUgYmFja3VwIGZpbGUKKydiYWNrdXBza2lwJwkgICdic2snICAgICBubyBiYWNrdXAgZm9yIGZpbGVzIHRoYXQgbWF0Y2ggdGhlc2UgcGF0dGVybnMKKydiYWxsb29uZGVsYXknCSAgJ2JkbGF5JyAgIGRlbGF5IGluIG1TIGJlZm9yZSBhIGJhbGxvb24gbWF5IHBvcCB1cAorJ2JhbGxvb25ldmFsJwkgICdiZXZhbCcgICBzd2l0Y2ggb24gYmFsbG9vbiBldmFsdWF0aW9uCisnYmFsbG9vbmV4cHInCSAgJ2JleHByJyAgIGV4cHJlc3Npb24gdG8gc2hvdyBpbiBiYWxsb29uCisnYmluYXJ5JwkgICdiaW4nICAgICByZWFkL3dyaXRlL2VkaXQgZmlsZSBpbiBiaW5hcnkgbW9kZQorJ2Jpb3NrZXknCSAgJ2Jpb3NrJyAgIE1TLURPUzogdXNlIGJpb3MgY2FsbHMgZm9yIGlucHV0IGNoYXJhY3RlcnMKKydib21iJwkJCSAgICBwcmVwZW5kIGEgQnl0ZSBPcmRlciBNYXJrIHRvIHRoZSBmaWxlCisnYnJlYWthdCcJICAnYnJrJyAgICAgY2hhcmFjdGVycyB0aGF0IG1heSBjYXVzZSBhIGxpbmUgYnJlYWsKKydicm93c2VkaXInCSAgJ2JzZGlyJyAgIHdoaWNoIGRpcmVjdG9yeSB0byBzdGFydCBicm93c2luZyBpbgorJ2J1ZmhpZGRlbicJICAnYmgnCSAgICB3aGF0IHRvIGRvIHdoZW4gYnVmZmVyIGlzIG5vIGxvbmdlciBpbiB3aW5kb3cKKydidWZsaXN0ZWQnCSAgJ2JsJwkgICAgd2hldGhlciB0aGUgYnVmZmVyIHNob3dzIHVwIGluIHRoZSBidWZmZXIgbGlzdAorJ2J1ZnR5cGUnCSAgJ2J0JwkgICAgc3BlY2lhbCB0eXBlIG9mIGJ1ZmZlcgorJ2Nhc2VtYXAnCSAgJ2NtcCcgICAgIHNwZWNpZmllcyBob3cgY2FzZSBvZiBsZXR0ZXJzIGlzIGNoYW5nZWQKKydjZHBhdGgnCSAgJ2NkJwkgICAgbGlzdCBvZiBkaXJlY3RvcmllcyBzZWFyY2hlZCB3aXRoICI6Y2QiCisnY2VkaXQnCQkJICAgIGtleSB1c2VkIHRvIG9wZW4gdGhlIGNvbW1hbmQtbGluZSB3aW5kb3cKKydjaGFyY29udmVydCcJICAnY2N2JyAgICAgZXhwcmVzc2lvbiBmb3IgY2hhcmFjdGVyIGVuY29kaW5nIGNvbnZlcnNpb24KKydjaW5kZW50JwkgICdjaW4nICAgICBkbyBDIHByb2dyYW0gaW5kZW50aW5nCisnY2lua2V5cycJICAnY2luaycgICAga2V5cyB0aGF0IHRyaWdnZXIgaW5kZW50IHdoZW4gJ2NpbmRlbnQnIGlzIHNldAorJ2Npbm9wdGlvbnMnCSAgJ2Npbm8nICAgIGhvdyB0byBkbyBpbmRlbnRpbmcgd2hlbiAnY2luZGVudCcgaXMgc2V0CisnY2lud29yZHMnCSAgJ2NpbncnICAgIHdvcmRzIHdoZXJlICdzaScgYW5kICdjaW4nIGFkZCBhbiBpbmRlbnQKKydjbGlwYm9hcmQnCSAgJ2NiJwkgICAgdXNlIHRoZSBjbGlwYm9hcmQgYXMgdGhlIHVubmFtZWQgcmVnaXN0ZXIKKydjbWRoZWlnaHQnCSAgJ2NoJwkgICAgbnVtYmVyIG9mIGxpbmVzIHRvIHVzZSBmb3IgdGhlIGNvbW1hbmQtbGluZQorJ2NtZHdpbmhlaWdodCcJICAnY3doJyAgICAgaGVpZ2h0IG9mIHRoZSBjb21tYW5kLWxpbmUgd2luZG93CisnY29sdW1ucycJICAnY28nCSAgICBudW1iZXIgb2YgY29sdW1ucyBpbiB0aGUgZGlzcGxheQorJ2NvbW1lbnRzJwkgICdjb20nICAgICBwYXR0ZXJucyB0aGF0IGNhbiBzdGFydCBhIGNvbW1lbnQgbGluZQogJ2NvbW1lbnRzdHJpbmcnICAgJ2NtcycgICAgIHRlbXBsYXRlIGZvciBjb21tZW50czsgdXNlZCBmb3IgZm9sZCBtYXJrZXIKLSdjb21wYXRpYmxlJyAgICAgICdjcCcgICAgICBiZWhhdmUgVmktY29tcGF0aWJsZSBhcyBtdWNoIGFzIHBvc3NpYmxlCi0nY29tcGxldGUnICAgICAgICAnY3B0JyAgICAgc3BlY2lmeSBob3cgSW5zZXJ0IG1vZGUgY29tcGxldGlvbiB3b3JrcwotJ2NvbXBsZXRlZnVuYycgICAgJ2NmdScgICAgIGZ1bmN0aW9uIHRvIGJlIHVzZWQgZm9yIEluc2VydCBtb2RlIGNvbXBsZXRpb24KLSdjb21wbGV0ZW9wdCcgICAgICdjb3QnICAgICBvcHRpb25zIGZvciBJbnNlcnQgbW9kZSBjb21wbGV0aW9uCi0nY29uZmlybScgICAgICAgICAnY2YnICAgICAgYXNrIHdoYXQgdG8gZG8gYWJvdXQgdW5zYXZlZC9yZWFkLW9ubHkgZmlsZXMKLSdjb25za2V5JyAgICAgICAgICdjb25zaycgICBnZXQga2V5cyBkaXJlY3RseSBmcm9tIGNvbnNvbGUgKE1TLURPUyBvbmx5KQotJ2NvcHlpbmRlbnQnICAgICAgJ2NpJyAgICAgIG1ha2UgJ2F1dG9pbmRlbnQnIHVzZSBleGlzdGluZyBpbmRlbnQgc3RydWN0dXJlCi0nY3BvcHRpb25zJyAgICAgICAnY3BvJyAgICAgZmxhZ3MgZm9yIFZpLWNvbXBhdGlibGUgYmVoYXZpb3IKKydjb21wYXRpYmxlJwkgICdjcCcJICAgIGJlaGF2ZSBWaS1jb21wYXRpYmxlIGFzIG11Y2ggYXMgcG9zc2libGUKKydjb21wbGV0ZScJICAnY3B0JyAgICAgc3BlY2lmeSBob3cgSW5zZXJ0IG1vZGUgY29tcGxldGlvbiB3b3JrcworJ2NvbXBsZXRlZnVuYycJICAnY2Z1JyAgICAgZnVuY3Rpb24gdG8gYmUgdXNlZCBmb3IgSW5zZXJ0IG1vZGUgY29tcGxldGlvbgorJ2NvbXBsZXRlb3B0JwkgICdjb3QnICAgICBvcHRpb25zIGZvciBJbnNlcnQgbW9kZSBjb21wbGV0aW9uCisnY29uZmlybScJICAnY2YnCSAgICBhc2sgd2hhdCB0byBkbyBhYm91dCB1bnNhdmVkL3JlYWQtb25seSBmaWxlcworJ2NvbnNrZXknCSAgJ2NvbnNrJyAgIGdldCBrZXlzIGRpcmVjdGx5IGZyb20gY29uc29sZSAoTVMtRE9TIG9ubHkpCisnY29weWluZGVudCcJICAnY2knCSAgICBtYWtlICdhdXRvaW5kZW50JyB1c2UgZXhpc3RpbmcgaW5kZW50IHN0cnVjdHVyZQorJ2Nwb3B0aW9ucycJICAnY3BvJyAgICAgZmxhZ3MgZm9yIFZpLWNvbXBhdGlibGUgYmVoYXZpb3IKICdjc2NvcGVwYXRoY29tcCcgICdjc3BjJyAgICBob3cgbWFueSBjb21wb25lbnRzIG9mIHRoZSBwYXRoIHRvIHNob3cKICdjc2NvcGVwcmcnICAgICAgICdjc3ByZycgICBjb21tYW5kIHRvIGV4ZWN1dGUgY3Njb3BlCiAnY3Njb3BlcXVpY2tmaXgnICAnY3NxZicgICAgdXNlIHF1aWNrZml4IHdpbmRvdyBmb3IgY3Njb3BlIHJlc3VsdHMKQEAgLTY0OCwyODggKzY0OCwyODggQEAKICdjc2NvcGV2ZXJib3NlJyAgICdjc3ZlcmInICBnaXZlIG1lc3NhZ2VzIHdoZW4gYWRkaW5nIGEgY3Njb3BlIGRhdGFiYXNlCiAnY3Vyc29yY29sdW1uJwkgICdjdWMnCSAgICBoaWdobGlnaHQgdGhlIHNjcmVlbiBjb2x1bW4gb2YgdGhlIGN1cnNvcgogJ2N1cnNvcmxpbmUnCSAgJ2N1bCcJICAgIGhpZ2hsaWdodCB0aGUgc2NyZWVuIGxpbmUgb2YgdGhlIGN1cnNvcgotJ2RlYnVnJyAgICAgICAgICAgICAgICAgICAgIHNldCB0byAibXNnIiB0byBzZWUgYWxsIGVycm9yIG1lc3NhZ2VzCi0nZGVmaW5lJyAgICAgICAgICAnZGVmJyAgICAgcGF0dGVybiB0byBiZSB1c2VkIHRvIGZpbmQgYSBtYWNybyBkZWZpbml0aW9uCi0nZGVsY29tYmluZScgICAgICAnZGVjbycgICAgZGVsZXRlIGNvbWJpbmluZyBjaGFyYWN0ZXJzIG9uIHRoZWlyIG93bgotJ2RpY3Rpb25hcnknICAgICAgJ2RpY3QnICAgIGxpc3Qgb2YgZmlsZSBuYW1lcyB1c2VkIGZvciBrZXl3b3JkIGNvbXBsZXRpb24KLSdkaWZmJyAgICAgICAgICAgICAgICAgICAgICB1c2UgZGlmZiBtb2RlIGZvciB0aGUgY3VycmVudCB3aW5kb3cKLSdkaWZmZXhwcicgICAgICAgICdkZXgnICAgICBleHByZXNzaW9uIHVzZWQgdG8gb2J0YWluIGEgZGlmZiBmaWxlCi0nZGlmZm9wdCcgICAgICAgICAnZGlwJyAgICAgb3B0aW9ucyBmb3IgdXNpbmcgZGlmZiBtb2RlCi0nZGlncmFwaCcgICAgICAgICAnZGcnICAgICAgZW5hYmxlIHRoZSBlbnRlcmluZyBvZiBkaWdyYXBocyBpbiBJbnNlcnQgbW9kZQotJ2RpcmVjdG9yeScgICAgICAgJ2RpcicgICAgIGxpc3Qgb2YgZGlyZWN0b3J5IG5hbWVzIGZvciB0aGUgc3dhcCBmaWxlCi0nZGlzcGxheScgICAgICAgICAnZHknICAgICAgbGlzdCBvZiBmbGFncyBmb3IgaG93IHRvIGRpc3BsYXkgdGV4dAotJ2VhZGlyZWN0aW9uJyAgICAgJ2VhZCcgICAgIGluIHdoaWNoIGRpcmVjdGlvbiAnZXF1YWxhbHdheXMnIHdvcmtzCi0nZWRjb21wYXRpYmxlJyAgICAnZWQnICAgICAgdG9nZ2xlIGZsYWdzIG9mICI6c3Vic3RpdHV0ZSIgY29tbWFuZAotJ2VuY29kaW5nJyAgICAgICAgJ2VuYycgICAgIGVuY29kaW5nIHVzZWQgaW50ZXJuYWxseQotJ2VuZG9mbGluZScgICAgICAgJ2VvbCcgICAgIHdyaXRlIDxFT0w+IGZvciBsYXN0IGxpbmUgaW4gZmlsZQotJ2VxdWFsYWx3YXlzJyAgICAgJ2VhJyAgICAgIHdpbmRvd3MgYXJlIGF1dG9tYXRpY2FsbHkgbWFkZSB0aGUgc2FtZSBzaXplCi0nZXF1YWxwcmcnICAgICAgICAnZXAnICAgICAgZXh0ZXJuYWwgcHJvZ3JhbSB0byB1c2UgZm9yICI9IiBjb21tYW5kCi0nZXJyb3JiZWxscycgICAgICAnZWInICAgICAgcmluZyB0aGUgYmVsbCBmb3IgZXJyb3IgbWVzc2FnZXMKLSdlcnJvcmZpbGUnICAgICAgICdlZicgICAgICBuYW1lIG9mIHRoZSBlcnJvcmZpbGUgZm9yIHRoZSBRdWlja0ZpeCBtb2RlCi0nZXJyb3Jmb3JtYXQnICAgICAnZWZtJyAgICAgZGVzY3JpcHRpb24gb2YgdGhlIGxpbmVzIGluIHRoZSBlcnJvciBmaWxlCi0nZXNja2V5cycgICAgICAgICAnZWsnICAgICAgcmVjb2duaXplIGZ1bmN0aW9uIGtleXMgaW4gSW5zZXJ0IG1vZGUKLSdldmVudGlnbm9yZScgICAgICdlaScgICAgICBhdXRvY29tbWFuZCBldmVudHMgdGhhdCBhcmUgaWdub3JlZAotJ2V4cGFuZHRhYicgICAgICAgJ2V0JyAgICAgIHVzZSBzcGFjZXMgd2hlbiA8VGFiPiBpcyBpbnNlcnRlZAotJ2V4cmMnICAgICAgICAgICAgJ2V4JyAgICAgIHJlYWQgLnZpbXJjIGFuZCAuZXhyYyBpbiB0aGUgY3VycmVudCBkaXJlY3RvcnkKLSdmaWxlZW5jb2RpbmcnICAgICdmZW5jJyAgICBmaWxlIGVuY29kaW5nIGZvciBtdWx0aS1ieXRlIHRleHQKKydkZWJ1ZycJCQkgICAgc2V0IHRvICJtc2ciIHRvIHNlZSBhbGwgZXJyb3IgbWVzc2FnZXMKKydkZWZpbmUnCSAgJ2RlZicgICAgIHBhdHRlcm4gdG8gYmUgdXNlZCB0byBmaW5kIGEgbWFjcm8gZGVmaW5pdGlvbgorJ2RlbGNvbWJpbmUnCSAgJ2RlY28nICAgIGRlbGV0ZSBjb21iaW5pbmcgY2hhcmFjdGVycyBvbiB0aGVpciBvd24KKydkaWN0aW9uYXJ5JwkgICdkaWN0JyAgICBsaXN0IG9mIGZpbGUgbmFtZXMgdXNlZCBmb3Iga2V5d29yZCBjb21wbGV0aW9uCisnZGlmZicJCQkgICAgdXNlIGRpZmYgbW9kZSBmb3IgdGhlIGN1cnJlbnQgd2luZG93CisnZGlmZmV4cHInCSAgJ2RleCcgICAgIGV4cHJlc3Npb24gdXNlZCB0byBvYnRhaW4gYSBkaWZmIGZpbGUKKydkaWZmb3B0JwkgICdkaXAnICAgICBvcHRpb25zIGZvciB1c2luZyBkaWZmIG1vZGUKKydkaWdyYXBoJwkgICdkZycJICAgIGVuYWJsZSB0aGUgZW50ZXJpbmcgb2YgZGlncmFwaHMgaW4gSW5zZXJ0IG1vZGUKKydkaXJlY3RvcnknCSAgJ2RpcicgICAgIGxpc3Qgb2YgZGlyZWN0b3J5IG5hbWVzIGZvciB0aGUgc3dhcCBmaWxlCisnZGlzcGxheScJICAnZHknCSAgICBsaXN0IG9mIGZsYWdzIGZvciBob3cgdG8gZGlzcGxheSB0ZXh0CisnZWFkaXJlY3Rpb24nCSAgJ2VhZCcgICAgIGluIHdoaWNoIGRpcmVjdGlvbiAnZXF1YWxhbHdheXMnIHdvcmtzCisnZWRjb21wYXRpYmxlJwkgICdlZCcJICAgIHRvZ2dsZSBmbGFncyBvZiAiOnN1YnN0aXR1dGUiIGNvbW1hbmQKKydlbmNvZGluZycJICAnZW5jJyAgICAgZW5jb2RpbmcgdXNlZCBpbnRlcm5hbGx5CisnZW5kb2ZsaW5lJwkgICdlb2wnICAgICB3cml0ZSA8RU9MPiBmb3IgbGFzdCBsaW5lIGluIGZpbGUKKydlcXVhbGFsd2F5cycJICAnZWEnCSAgICB3aW5kb3dzIGFyZSBhdXRvbWF0aWNhbGx5IG1hZGUgdGhlIHNhbWUgc2l6ZQorJ2VxdWFscHJnJwkgICdlcCcJICAgIGV4dGVybmFsIHByb2dyYW0gdG8gdXNlIGZvciAiPSIgY29tbWFuZAorJ2Vycm9yYmVsbHMnCSAgJ2ViJwkgICAgcmluZyB0aGUgYmVsbCBmb3IgZXJyb3IgbWVzc2FnZXMKKydlcnJvcmZpbGUnCSAgJ2VmJwkgICAgbmFtZSBvZiB0aGUgZXJyb3JmaWxlIGZvciB0aGUgUXVpY2tGaXggbW9kZQorJ2Vycm9yZm9ybWF0JwkgICdlZm0nICAgICBkZXNjcmlwdGlvbiBvZiB0aGUgbGluZXMgaW4gdGhlIGVycm9yIGZpbGUKKydlc2NrZXlzJwkgICdlaycJICAgIHJlY29nbml6ZSBmdW5jdGlvbiBrZXlzIGluIEluc2VydCBtb2RlCisnZXZlbnRpZ25vcmUnCSAgJ2VpJwkgICAgYXV0b2NvbW1hbmQgZXZlbnRzIHRoYXQgYXJlIGlnbm9yZWQKKydleHBhbmR0YWInCSAgJ2V0JwkgICAgdXNlIHNwYWNlcyB3aGVuIDxUYWI+IGlzIGluc2VydGVkCisnZXhyYycJCSAgJ2V4JwkgICAgcmVhZCAudmltcmMgYW5kIC5leHJjIGluIHRoZSBjdXJyZW50IGRpcmVjdG9yeQorJ2ZpbGVlbmNvZGluZycJICAnZmVuYycgICAgZmlsZSBlbmNvZGluZyBmb3IgbXVsdGktYnl0ZSB0ZXh0CiAnZmlsZWVuY29kaW5ncycgICAnZmVuY3MnICAgYXV0b21hdGljYWxseSBkZXRlY3RlZCBjaGFyYWN0ZXIgZW5jb2RpbmdzCi0nZmlsZWZvcm1hdCcgICAgICAnZmYnICAgICAgZmlsZSBmb3JtYXQgdXNlZCBmb3IgZmlsZSBJL08KLSdmaWxlZm9ybWF0cycgICAgICdmZnMnICAgICBhdXRvbWF0aWNhbGx5IGRldGVjdGVkIHZhbHVlcyBmb3IgJ2ZpbGVmb3JtYXQnCi0nZmlsZXR5cGUnICAgICAgICAnZnQnICAgICAgdHlwZSBvZiBmaWxlLCB1c2VkIGZvciBhdXRvY29tbWFuZHMKLSdmaWxsY2hhcnMnICAgICAgICdmY3MnICAgICBjaGFyYWN0ZXJzIHRvIHVzZSBmb3IgZGlzcGxheWluZyBzcGVjaWFsIGl0ZW1zCi0nZmttYXAnICAgICAgICAgICAnZmsnICAgICAgRmFyc2kga2V5Ym9hcmQgbWFwcGluZwotJ2ZvbGRjbG9zZScgICAgICAgJ2ZjbCcgICAgIGNsb3NlIGEgZm9sZCB3aGVuIHRoZSBjdXJzb3IgbGVhdmVzIGl0Ci0nZm9sZGNvbHVtbicgICAgICAnZmRjJyAgICAgd2lkdGggb2YgdGhlIGNvbHVtbiB1c2VkIHRvIGluZGljYXRlIGZvbGRzCi0nZm9sZGVuYWJsZScgICAgICAnZmVuJyAgICAgc2V0IHRvIGRpc3BsYXkgYWxsIGZvbGRzIG9wZW4KLSdmb2xkZXhwcicgICAgICAgICdmZGUnICAgICBleHByZXNzaW9uIHVzZWQgd2hlbiAnZm9sZG1ldGhvZCcgaXMgImV4cHIiCi0nZm9sZGlnbm9yZScgICAgICAnZmRpJyAgICAgaWdub3JlIGxpbmVzIHdoZW4gJ2ZvbGRtZXRob2QnIGlzICJpbmRlbnQiCi0nZm9sZGxldmVsJyAgICAgICAnZmRsJyAgICAgY2xvc2UgZm9sZHMgd2l0aCBhIGxldmVsIGhpZ2hlciB0aGFuIHRoaXMKKydmaWxlZm9ybWF0JwkgICdmZicJICAgIGZpbGUgZm9ybWF0IHVzZWQgZm9yIGZpbGUgSS9PCisnZmlsZWZvcm1hdHMnCSAgJ2ZmcycgICAgIGF1dG9tYXRpY2FsbHkgZGV0ZWN0ZWQgdmFsdWVzIGZvciAnZmlsZWZvcm1hdCcKKydmaWxldHlwZScJICAnZnQnCSAgICB0eXBlIG9mIGZpbGUsIHVzZWQgZm9yIGF1dG9jb21tYW5kcworJ2ZpbGxjaGFycycJICAnZmNzJyAgICAgY2hhcmFjdGVycyB0byB1c2UgZm9yIGRpc3BsYXlpbmcgc3BlY2lhbCBpdGVtcworJ2ZrbWFwJwkJICAnZmsnCSAgICBGYXJzaSBrZXlib2FyZCBtYXBwaW5nCisnZm9sZGNsb3NlJwkgICdmY2wnICAgICBjbG9zZSBhIGZvbGQgd2hlbiB0aGUgY3Vyc29yIGxlYXZlcyBpdAorJ2ZvbGRjb2x1bW4nCSAgJ2ZkYycgICAgIHdpZHRoIG9mIHRoZSBjb2x1bW4gdXNlZCB0byBpbmRpY2F0ZSBmb2xkcworJ2ZvbGRlbmFibGUnCSAgJ2ZlbicgICAgIHNldCB0byBkaXNwbGF5IGFsbCBmb2xkcyBvcGVuCisnZm9sZGV4cHInCSAgJ2ZkZScgICAgIGV4cHJlc3Npb24gdXNlZCB3aGVuICdmb2xkbWV0aG9kJyBpcyAiZXhwciIKKydmb2xkaWdub3JlJwkgICdmZGknICAgICBpZ25vcmUgbGluZXMgd2hlbiAnZm9sZG1ldGhvZCcgaXMgImluZGVudCIKKydmb2xkbGV2ZWwnCSAgJ2ZkbCcgICAgIGNsb3NlIGZvbGRzIHdpdGggYSBsZXZlbCBoaWdoZXIgdGhhbiB0aGlzCiAnZm9sZGxldmVsc3RhcnQnICAnZmRscycgICAgJ2ZvbGRsZXZlbCcgd2hlbiBzdGFydGluZyB0byBlZGl0IGEgZmlsZQotJ2ZvbGRtYXJrZXInICAgICAgJ2ZtcicgICAgIG1hcmtlcnMgdXNlZCB3aGVuICdmb2xkbWV0aG9kJyBpcyAibWFya2VyIgotJ2ZvbGRtZXRob2QnICAgICAgJ2ZkbScgICAgIGZvbGRpbmcgdHlwZQotJ2ZvbGRtaW5saW5lcycgICAgJ2ZtbCcgICAgIG1pbmltdW0gbnVtYmVyIG9mIGxpbmVzIGZvciBhIGZvbGQgdG8gYmUgY2xvc2VkCi0nZm9sZG5lc3RtYXgnICAgICAnZmRuJyAgICAgbWF4aW11bSBmb2xkIGRlcHRoCi0nZm9sZG9wZW4nICAgICAgICAnZmRvJyAgICAgZm9yIHdoaWNoIGNvbW1hbmRzIGEgZm9sZCB3aWxsIGJlIG9wZW5lZAotJ2ZvbGR0ZXh0JyAgICAgICAgJ2ZkdCcgICAgIGV4cHJlc3Npb24gdXNlZCB0byBkaXNwbGF5IGZvciBhIGNsb3NlZCBmb2xkCisnZm9sZG1hcmtlcicJICAnZm1yJyAgICAgbWFya2VycyB1c2VkIHdoZW4gJ2ZvbGRtZXRob2QnIGlzICJtYXJrZXIiCisnZm9sZG1ldGhvZCcJICAnZmRtJyAgICAgZm9sZGluZyB0eXBlCisnZm9sZG1pbmxpbmVzJwkgICdmbWwnICAgICBtaW5pbXVtIG51bWJlciBvZiBsaW5lcyBmb3IgYSBmb2xkIHRvIGJlIGNsb3NlZAorJ2ZvbGRuZXN0bWF4JwkgICdmZG4nICAgICBtYXhpbXVtIGZvbGQgZGVwdGgKKydmb2xkb3BlbicJICAnZmRvJyAgICAgZm9yIHdoaWNoIGNvbW1hbmRzIGEgZm9sZCB3aWxsIGJlIG9wZW5lZAorJ2ZvbGR0ZXh0JwkgICdmZHQnICAgICBleHByZXNzaW9uIHVzZWQgdG8gZGlzcGxheSBmb3IgYSBjbG9zZWQgZm9sZAogJ2Zvcm1hdGxpc3RwYXQnICAgJ2ZscCcgICAgIHBhdHRlcm4gdXNlZCB0byByZWNvZ25pemUgYSBsaXN0IGhlYWRlcgotJ2Zvcm1hdG9wdGlvbnMnICAgJ2ZvJyAgICAgIGhvdyBhdXRvbWF0aWMgZm9ybWF0dGluZyBpcyB0byBiZSBkb25lCi0nZm9ybWF0cHJnJyAgICAgICAnZnAnICAgICAgbmFtZSBvZiBleHRlcm5hbCBwcm9ncmFtIHVzZWQgd2l0aCAiZ3EiIGNvbW1hbmQKLSdmb3JtYXRleHByJyAgICAgICdmZXgnICAgICBleHByZXNzaW9uIHVzZWQgd2l0aCAiZ3EiIGNvbW1hbmQKLSdmc3luYycgICAgICAgICAgICdmcycgICAgICB3aGV0aGVyIHRvIGludm9rZSBmc3luYygpIGFmdGVyIGZpbGUgd3JpdGUKLSdnZGVmYXVsdCcgICAgICAgICdnZCcgICAgICB0aGUgIjpzdWJzdGl0dXRlIiBmbGFnICdnJyBpcyBkZWZhdWx0IG9uCi0nZ3JlcGZvcm1hdCcgICAgICAnZ2ZtJyAgICAgZm9ybWF0IG9mICdncmVwcHJnJyBvdXRwdXQKLSdncmVwcHJnJyAgICAgICAgICdncCcgICAgICBwcm9ncmFtIHRvIHVzZSBmb3IgIjpncmVwIgotJ2d1aWN1cnNvcicgICAgICAgJ2djcicgICAgIEdVSTogc2V0dGluZ3MgZm9yIGN1cnNvciBzaGFwZSBhbmQgYmxpbmtpbmcKLSdndWlmb250JyAgICAgICAgICdnZm4nICAgICBHVUk6IE5hbWUocykgb2YgZm9udChzKSB0byBiZSB1c2VkCi0nZ3VpZm9udHNldCcgICAgICAnZ2ZzJyAgICAgR1VJOiBOYW1lcyBvZiBtdWx0aS1ieXRlIGZvbnRzIHRvIGJlIHVzZWQKLSdndWlmb250d2lkZScgICAgICdnZncnICAgICBsaXN0IG9mIGZvbnQgbmFtZXMgZm9yIGRvdWJsZS13aWRlIGNoYXJhY3RlcnMKLSdndWloZWFkcm9vbScgICAgICdnaHInICAgICBHVUk6IHBpeGVscyByb29tIGZvciB3aW5kb3cgZGVjb3JhdGlvbnMKLSdndWlvcHRpb25zJyAgICAgICdnbycgICAgICBHVUk6IFdoaWNoIGNvbXBvbmVudHMgYW5kIG9wdGlvbnMgYXJlIHVzZWQKLSdndWlwdHknICAgICAgICAgICAgICAgICAgICBHVUk6IHRyeSB0byB1c2UgYSBwc2V1ZG8tdHR5IGZvciAiOiEiIGNvbW1hbmRzCi0nZ3VpdGFibGFiZWwnICAgICAnZ3RsJyAgICAgR1VJOiBjdXN0b20gbGFiZWwgZm9yIGEgdGFiIHBhZ2UKKydmb3JtYXRvcHRpb25zJyAgICdmbycJICAgIGhvdyBhdXRvbWF0aWMgZm9ybWF0dGluZyBpcyB0byBiZSBkb25lCisnZm9ybWF0cHJnJwkgICdmcCcJICAgIG5hbWUgb2YgZXh0ZXJuYWwgcHJvZ3JhbSB1c2VkIHdpdGggImdxIiBjb21tYW5kCisnZm9ybWF0ZXhwcicJICAnZmV4JyAgICAgZXhwcmVzc2lvbiB1c2VkIHdpdGggImdxIiBjb21tYW5kCisnZnN5bmMnCQkgICdmcycJICAgIHdoZXRoZXIgdG8gaW52b2tlIGZzeW5jKCkgYWZ0ZXIgZmlsZSB3cml0ZQorJ2dkZWZhdWx0JwkgICdnZCcJICAgIHRoZSAiOnN1YnN0aXR1dGUiIGZsYWcgJ2cnIGlzIGRlZmF1bHQgb24KKydncmVwZm9ybWF0JwkgICdnZm0nICAgICBmb3JtYXQgb2YgJ2dyZXBwcmcnIG91dHB1dAorJ2dyZXBwcmcnCSAgJ2dwJwkgICAgcHJvZ3JhbSB0byB1c2UgZm9yICI6Z3JlcCIKKydndWljdXJzb3InCSAgJ2djcicgICAgIEdVSTogc2V0dGluZ3MgZm9yIGN1cnNvciBzaGFwZSBhbmQgYmxpbmtpbmcKKydndWlmb250JwkgICdnZm4nICAgICBHVUk6IE5hbWUocykgb2YgZm9udChzKSB0byBiZSB1c2VkCisnZ3VpZm9udHNldCcJICAnZ2ZzJyAgICAgR1VJOiBOYW1lcyBvZiBtdWx0aS1ieXRlIGZvbnRzIHRvIGJlIHVzZWQKKydndWlmb250d2lkZScJICAnZ2Z3JyAgICAgbGlzdCBvZiBmb250IG5hbWVzIGZvciBkb3VibGUtd2lkZSBjaGFyYWN0ZXJzCisnZ3VpaGVhZHJvb20nCSAgJ2docicgICAgIEdVSTogcGl4ZWxzIHJvb20gZm9yIHdpbmRvdyBkZWNvcmF0aW9ucworJ2d1aW9wdGlvbnMnCSAgJ2dvJwkgICAgR1VJOiBXaGljaCBjb21wb25lbnRzIGFuZCBvcHRpb25zIGFyZSB1c2VkCisnZ3VpcHR5JwkJICAgIEdVSTogdHJ5IHRvIHVzZSBhIHBzZXVkby10dHkgZm9yICI6ISIgY29tbWFuZHMKKydndWl0YWJsYWJlbCcJICAnZ3RsJyAgICAgR1VJOiBjdXN0b20gbGFiZWwgZm9yIGEgdGFiIHBhZ2UKICdndWl0YWJ0b29sdGlwJyAgICdndHQnICAgICBHVUk6IGN1c3RvbSB0b29sdGlwIGZvciBhIHRhYiBwYWdlCi0naGVscGZpbGUnICAgICAgICAnaGYnICAgICAgZnVsbCBwYXRoIG5hbWUgb2YgdGhlIG1haW4gaGVscCBmaWxlCi0naGVscGhlaWdodCcgICAgICAnaGgnICAgICAgbWluaW11bSBoZWlnaHQgb2YgYSBuZXcgaGVscCB3aW5kb3cKLSdoZWxwbGFuZycgICAgICAgICdobGcnICAgICBwcmVmZXJyZWQgaGVscCBsYW5ndWFnZXMKLSdoaWRkZW4nICAgICAgICAgICdoaWQnICAgICBkb24ndCB1bmxvYWQgYnVmZmVyIHdoZW4gaXQgaXMgfGFiYW5kb258ZWQKLSdoaWdobGlnaHQnICAgICAgICdobCcgICAgICBzZXRzIGhpZ2hsaWdodGluZyBtb2RlIGZvciB2YXJpb3VzIG9jY2FzaW9ucwotJ2hsc2VhcmNoJyAgICAgICAgJ2hscycgICAgIGhpZ2hsaWdodCBtYXRjaGVzIHdpdGggbGFzdCBzZWFyY2ggcGF0dGVybgotJ2hpc3RvcnknICAgICAgICAgJ2hpJyAgICAgIG51bWJlciBvZiBjb21tYW5kLWxpbmVzIHRoYXQgYXJlIHJlbWVtYmVyZWQKLSdoa21hcCcgICAgICAgICAgICdoaycgICAgICBIZWJyZXcga2V5Ym9hcmQgbWFwcGluZwotJ2hrbWFwcCcgICAgICAgICAgJ2hrcCcgICAgIHBob25ldGljIEhlYnJldyBrZXlib2FyZCBtYXBwaW5nCi0naWNvbicgICAgICAgICAgICAgICAgICAgICAgbGV0IFZpbSBzZXQgdGhlIHRleHQgb2YgdGhlIHdpbmRvdyBpY29uCi0naWNvbnN0cmluZycgICAgICAgICAgICAgICAgc3RyaW5nIHRvIHVzZSBmb3IgdGhlIFZpbSBpY29uIHRleHQKLSdpZ25vcmVjYXNlJyAgICAgICdpYycgICAgICBpZ25vcmUgY2FzZSBpbiBzZWFyY2ggcGF0dGVybnMKKydoZWxwZmlsZScJICAnaGYnCSAgICBmdWxsIHBhdGggbmFtZSBvZiB0aGUgbWFpbiBoZWxwIGZpbGUKKydoZWxwaGVpZ2h0JwkgICdoaCcJICAgIG1pbmltdW0gaGVpZ2h0IG9mIGEgbmV3IGhlbHAgd2luZG93CisnaGVscGxhbmcnCSAgJ2hsZycgICAgIHByZWZlcnJlZCBoZWxwIGxhbmd1YWdlcworJ2hpZGRlbicJICAnaGlkJyAgICAgZG9uJ3QgdW5sb2FkIGJ1ZmZlciB3aGVuIGl0IGlzIHxhYmFuZG9ufGVkCisnaGlnaGxpZ2h0JwkgICdobCcJICAgIHNldHMgaGlnaGxpZ2h0aW5nIG1vZGUgZm9yIHZhcmlvdXMgb2NjYXNpb25zCisnaGxzZWFyY2gnCSAgJ2hscycgICAgIGhpZ2hsaWdodCBtYXRjaGVzIHdpdGggbGFzdCBzZWFyY2ggcGF0dGVybgorJ2hpc3RvcnknCSAgJ2hpJwkgICAgbnVtYmVyIG9mIGNvbW1hbmQtbGluZXMgdGhhdCBhcmUgcmVtZW1iZXJlZAorJ2hrbWFwJwkJICAnaGsnCSAgICBIZWJyZXcga2V5Ym9hcmQgbWFwcGluZworJ2hrbWFwcCcJICAnaGtwJyAgICAgcGhvbmV0aWMgSGVicmV3IGtleWJvYXJkIG1hcHBpbmcKKydpY29uJwkJCSAgICBsZXQgVmltIHNldCB0aGUgdGV4dCBvZiB0aGUgd2luZG93IGljb24KKydpY29uc3RyaW5nJwkJICAgIHN0cmluZyB0byB1c2UgZm9yIHRoZSBWaW0gaWNvbiB0ZXh0CisnaWdub3JlY2FzZScJICAnaWMnCSAgICBpZ25vcmUgY2FzZSBpbiBzZWFyY2ggcGF0dGVybnMKICdpbWFjdGl2YXRla2V5JyAgICdpbWFrJyAgICBrZXkgdGhhdCBhY3RpdmF0ZXMgdGhlIFggaW5wdXQgbWV0aG9kCi0naW1jbWRsaW5lJyAgICAgICAnaW1jJyAgICAgdXNlIElNIHdoZW4gc3RhcnRpbmcgdG8gZWRpdCBhIGNvbW1hbmQgbGluZQotJ2ltZGlzYWJsZScgICAgICAgJ2ltZCcgICAgIGRvIG5vdCB1c2UgdGhlIElNIGluIGFueSBtb2RlCi0naW1pbnNlcnQnICAgICAgICAnaW1pJyAgICAgdXNlIDpsbWFwIG9yIElNIGluIEluc2VydCBtb2RlCi0naW1zZWFyY2gnICAgICAgICAnaW1zJyAgICAgdXNlIDpsbWFwIG9yIElNIHdoZW4gdHlwaW5nIGEgc2VhcmNoIHBhdHRlcm4KLSdpbmNsdWRlJyAgICAgICAgICdpbmMnICAgICBwYXR0ZXJuIHRvIGJlIHVzZWQgdG8gZmluZCBhbiBpbmNsdWRlIGZpbGUKLSdpbmNsdWRlZXhwcicgICAgICdpbmV4JyAgICBleHByZXNzaW9uIHVzZWQgdG8gcHJvY2VzcyBhbiBpbmNsdWRlIGxpbmUKLSdpbmNzZWFyY2gnICAgICAgICdpcycgICAgICBoaWdobGlnaHQgbWF0Y2ggd2hpbGUgdHlwaW5nIHNlYXJjaCBwYXR0ZXJuCi0naW5kZW50ZXhwcicgICAgICAnaW5kZScgICAgZXhwcmVzc2lvbiB1c2VkIHRvIG9idGFpbiB0aGUgaW5kZW50IG9mIGEgbGluZQotJ2luZGVudGtleXMnICAgICAgJ2luZGsnICAgIGtleXMgdGhhdCB0cmlnZ2VyIGluZGVudGluZyB3aXRoICdpbmRlbnRleHByJwotJ2luZmVyY2FzZScgICAgICAgJ2luZicgICAgIGFkanVzdCBjYXNlIG9mIG1hdGNoIGZvciBrZXl3b3JkIGNvbXBsZXRpb24KLSdpbnNlcnRtb2RlJyAgICAgICdpbScgICAgICBzdGFydCB0aGUgZWRpdCBvZiBhIGZpbGUgaW4gSW5zZXJ0IG1vZGUKLSdpc2ZuYW1lJyAgICAgICAgICdpc2YnICAgICBjaGFyYWN0ZXJzIGluY2x1ZGVkIGluIGZpbGUgbmFtZXMgYW5kIHBhdGhuYW1lcwotJ2lzaWRlbnQnICAgICAgICAgJ2lzaScgICAgIGNoYXJhY3RlcnMgaW5jbHVkZWQgaW4gaWRlbnRpZmllcnMKLSdpc2tleXdvcmQnICAgICAgICdpc2snICAgICBjaGFyYWN0ZXJzIGluY2x1ZGVkIGluIGtleXdvcmRzCi0naXNwcmludCcgICAgICAgICAnaXNwJyAgICAgcHJpbnRhYmxlIGNoYXJhY3RlcnMKLSdqb2luc3BhY2VzJyAgICAgICdqcycgICAgICB0d28gc3BhY2VzIGFmdGVyIGEgcGVyaW9kIHdpdGggYSBqb2luIGNvbW1hbmQKLSdrZXknICAgICAgICAgICAgICAgICAgICAgICBlbmNyeXB0aW9uIGtleQotJ2tleW1hcCcgICAgICAgICAgJ2ttcCcgICAgIG5hbWUgb2YgYSBrZXlib2FyZCBtYXBwaW5nCi0na2V5bW9kZWwnICAgICAgICAna20nICAgICAgZW5hYmxlIHN0YXJ0aW5nL3N0b3BwaW5nIHNlbGVjdGlvbiB3aXRoIGtleXMKLSdrZXl3b3JkcHJnJyAgICAgICdrcCcgICAgICBwcm9ncmFtIHRvIHVzZSBmb3IgdGhlICJLIiBjb21tYW5kCi0nbGFuZ21hcCcgICAgICAgICAnbG1hcCcgICAgYWxwaGFiZXRpYyBjaGFyYWN0ZXJzIGZvciBvdGhlciBsYW5ndWFnZSBtb2RlCi0nbGFuZ21lbnUnICAgICAgICAnbG0nICAgICAgbGFuZ3VhZ2UgdG8gYmUgdXNlZCBmb3IgdGhlIG1lbnVzCi0nbGFzdHN0YXR1cycgICAgICAnbHMnICAgICAgdGVsbHMgd2hlbiBsYXN0IHdpbmRvdyBoYXMgc3RhdHVzIGxpbmVzCi0nbGF6eXJlZHJhdycgICAgICAnbHonICAgICAgZG9uJ3QgcmVkcmF3IHdoaWxlIGV4ZWN1dGluZyBtYWNyb3MKLSdsaW5lYnJlYWsnICAgICAgICdsYnInICAgICB3cmFwIGxvbmcgbGluZXMgYXQgYSBibGFuawotJ2xpbmVzJyAgICAgICAgICAgICAgICAgICAgIG51bWJlciBvZiBsaW5lcyBpbiB0aGUgZGlzcGxheQotJ2xpbmVzcGFjZScgICAgICAgJ2xzcCcgICAgIG51bWJlciBvZiBwaXhlbCBsaW5lcyB0byB1c2UgYmV0d2VlbiBjaGFyYWN0ZXJzCi0nbGlzcCcgICAgICAgICAgICAgICAgICAgICAgYXV0b21hdGljIGluZGVudGluZyBmb3IgTGlzcAotJ2xpc3B3b3JkcycgICAgICAgJ2x3JyAgICAgIHdvcmRzIHRoYXQgY2hhbmdlIGhvdyBsaXNwIGluZGVudGluZyB3b3JrcwotJ2xpc3QnICAgICAgICAgICAgICAgICAgICAgIHNob3cgPFRhYj4gYW5kIDxFT0w+Ci0nbGlzdGNoYXJzJyAgICAgICAnbGNzJyAgICAgY2hhcmFjdGVycyBmb3IgZGlzcGxheWluZyBpbiBsaXN0IG1vZGUKLSdsb2FkcGx1Z2lucycgICAgICdscGwnICAgICBsb2FkIHBsdWdpbiBzY3JpcHRzIHdoZW4gc3RhcnRpbmcgdXAKKydpbWNtZGxpbmUnCSAgJ2ltYycgICAgIHVzZSBJTSB3aGVuIHN0YXJ0aW5nIHRvIGVkaXQgYSBjb21tYW5kIGxpbmUKKydpbWRpc2FibGUnCSAgJ2ltZCcgICAgIGRvIG5vdCB1c2UgdGhlIElNIGluIGFueSBtb2RlCisnaW1pbnNlcnQnCSAgJ2ltaScgICAgIHVzZSA6bG1hcCBvciBJTSBpbiBJbnNlcnQgbW9kZQorJ2ltc2VhcmNoJwkgICdpbXMnICAgICB1c2UgOmxtYXAgb3IgSU0gd2hlbiB0eXBpbmcgYSBzZWFyY2ggcGF0dGVybgorJ2luY2x1ZGUnCSAgJ2luYycgICAgIHBhdHRlcm4gdG8gYmUgdXNlZCB0byBmaW5kIGFuIGluY2x1ZGUgZmlsZQorJ2luY2x1ZGVleHByJwkgICdpbmV4JyAgICBleHByZXNzaW9uIHVzZWQgdG8gcHJvY2VzcyBhbiBpbmNsdWRlIGxpbmUKKydpbmNzZWFyY2gnCSAgJ2lzJwkgICAgaGlnaGxpZ2h0IG1hdGNoIHdoaWxlIHR5cGluZyBzZWFyY2ggcGF0dGVybgorJ2luZGVudGV4cHInCSAgJ2luZGUnICAgIGV4cHJlc3Npb24gdXNlZCB0byBvYnRhaW4gdGhlIGluZGVudCBvZiBhIGxpbmUKKydpbmRlbnRrZXlzJwkgICdpbmRrJyAgICBrZXlzIHRoYXQgdHJpZ2dlciBpbmRlbnRpbmcgd2l0aCAnaW5kZW50ZXhwcicKKydpbmZlcmNhc2UnCSAgJ2luZicgICAgIGFkanVzdCBjYXNlIG9mIG1hdGNoIGZvciBrZXl3b3JkIGNvbXBsZXRpb24KKydpbnNlcnRtb2RlJwkgICdpbScJICAgIHN0YXJ0IHRoZSBlZGl0IG9mIGEgZmlsZSBpbiBJbnNlcnQgbW9kZQorJ2lzZm5hbWUnCSAgJ2lzZicgICAgIGNoYXJhY3RlcnMgaW5jbHVkZWQgaW4gZmlsZSBuYW1lcyBhbmQgcGF0aG5hbWVzCisnaXNpZGVudCcJICAnaXNpJyAgICAgY2hhcmFjdGVycyBpbmNsdWRlZCBpbiBpZGVudGlmaWVycworJ2lza2V5d29yZCcJICAnaXNrJyAgICAgY2hhcmFjdGVycyBpbmNsdWRlZCBpbiBrZXl3b3JkcworJ2lzcHJpbnQnCSAgJ2lzcCcgICAgIHByaW50YWJsZSBjaGFyYWN0ZXJzCisnam9pbnNwYWNlcycJICAnanMnCSAgICB0d28gc3BhY2VzIGFmdGVyIGEgcGVyaW9kIHdpdGggYSBqb2luIGNvbW1hbmQKKydrZXknCQkJICAgIGVuY3J5cHRpb24ga2V5Cisna2V5bWFwJwkgICdrbXAnICAgICBuYW1lIG9mIGEga2V5Ym9hcmQgbWFwcGluZworJ2tleW1vZGVsJwkgICdrbScJICAgIGVuYWJsZSBzdGFydGluZy9zdG9wcGluZyBzZWxlY3Rpb24gd2l0aCBrZXlzCisna2V5d29yZHByZycJICAna3AnCSAgICBwcm9ncmFtIHRvIHVzZSBmb3IgdGhlICJLIiBjb21tYW5kCisnbGFuZ21hcCcJICAnbG1hcCcgICAgYWxwaGFiZXRpYyBjaGFyYWN0ZXJzIGZvciBvdGhlciBsYW5ndWFnZSBtb2RlCisnbGFuZ21lbnUnCSAgJ2xtJwkgICAgbGFuZ3VhZ2UgdG8gYmUgdXNlZCBmb3IgdGhlIG1lbnVzCisnbGFzdHN0YXR1cycJICAnbHMnCSAgICB0ZWxscyB3aGVuIGxhc3Qgd2luZG93IGhhcyBzdGF0dXMgbGluZXMKKydsYXp5cmVkcmF3JwkgICdseicJICAgIGRvbid0IHJlZHJhdyB3aGlsZSBleGVjdXRpbmcgbWFjcm9zCisnbGluZWJyZWFrJwkgICdsYnInICAgICB3cmFwIGxvbmcgbGluZXMgYXQgYSBibGFuaworJ2xpbmVzJwkJCSAgICBudW1iZXIgb2YgbGluZXMgaW4gdGhlIGRpc3BsYXkKKydsaW5lc3BhY2UnCSAgJ2xzcCcgICAgIG51bWJlciBvZiBwaXhlbCBsaW5lcyB0byB1c2UgYmV0d2VlbiBjaGFyYWN0ZXJzCisnbGlzcCcJCQkgICAgYXV0b21hdGljIGluZGVudGluZyBmb3IgTGlzcAorJ2xpc3B3b3JkcycJICAnbHcnCSAgICB3b3JkcyB0aGF0IGNoYW5nZSBob3cgbGlzcCBpbmRlbnRpbmcgd29ya3MKKydsaXN0JwkJCSAgICBzaG93IDxUYWI+IGFuZCA8RU9MPgorJ2xpc3RjaGFycycJICAnbGNzJyAgICAgY2hhcmFjdGVycyBmb3IgZGlzcGxheWluZyBpbiBsaXN0IG1vZGUKKydsb2FkcGx1Z2lucycJICAnbHBsJyAgICAgbG9hZCBwbHVnaW4gc2NyaXB0cyB3aGVuIHN0YXJ0aW5nIHVwCiAnbWFjYXRzdWknCQkgICAgTWFjIEdVSTogdXNlIEFUU1VJIHRleHQgZHJhd2luZwotJ21hZ2ljJyAgICAgICAgICAgICAgICAgICAgIGNoYW5nZXMgc3BlY2lhbCBjaGFyYWN0ZXJzIGluIHNlYXJjaCBwYXR0ZXJucwotJ21ha2VlZicgICAgICAgICAgJ21lZicgICAgIG5hbWUgb2YgdGhlIGVycm9yZmlsZSBmb3IgIjptYWtlIgotJ21ha2VwcmcnICAgICAgICAgJ21wJyAgICAgIHByb2dyYW0gdG8gdXNlIGZvciB0aGUgIjptYWtlIiBjb21tYW5kCi0nbWF0Y2hwYWlycycgICAgICAnbXBzJyAgICAgcGFpcnMgb2YgY2hhcmFjdGVycyB0aGF0ICIlIiBjYW4gbWF0Y2gKLSdtYXRjaHRpbWUnICAgICAgICdtYXQnICAgICB0ZW50aHMgb2YgYSBzZWNvbmQgdG8gc2hvdyBtYXRjaGluZyBwYXJlbgotJ21heGNvbWJpbmUnICAgICAgJ21jbycgICAgIG1heGltdW0gbnIgb2YgY29tYmluaW5nIGNoYXJhY3RlcnMgZGlzcGxheWVkCi0nbWF4ZnVuY2RlcHRoJyAgICAnbWZkJyAgICAgbWF4aW11bSByZWN1cnNpdmUgZGVwdGggZm9yIHVzZXIgZnVuY3Rpb25zCi0nbWF4bWFwZGVwdGgnICAgICAnbW1kJyAgICAgbWF4aW11bSByZWN1cnNpdmUgZGVwdGggZm9yIG1hcHBpbmcKLSdtYXhtZW0nICAgICAgICAgICdtbScgICAgICBtYXhpbXVtIG1lbW9yeSAoaW4gS2J5dGUpIHVzZWQgZm9yIG9uZSBidWZmZXIKKydtYWdpYycJCQkgICAgY2hhbmdlcyBzcGVjaWFsIGNoYXJhY3RlcnMgaW4gc2VhcmNoIHBhdHRlcm5zCisnbWFrZWVmJwkgICdtZWYnICAgICBuYW1lIG9mIHRoZSBlcnJvcmZpbGUgZm9yICI6bWFrZSIKKydtYWtlcHJnJwkgICdtcCcJICAgIHByb2dyYW0gdG8gdXNlIGZvciB0aGUgIjptYWtlIiBjb21tYW5kCisnbWF0Y2hwYWlycycJICAnbXBzJyAgICAgcGFpcnMgb2YgY2hhcmFjdGVycyB0aGF0ICIlIiBjYW4gbWF0Y2gKKydtYXRjaHRpbWUnCSAgJ21hdCcgICAgIHRlbnRocyBvZiBhIHNlY29uZCB0byBzaG93IG1hdGNoaW5nIHBhcmVuCisnbWF4Y29tYmluZScJICAnbWNvJyAgICAgbWF4aW11bSBuciBvZiBjb21iaW5pbmcgY2hhcmFjdGVycyBkaXNwbGF5ZWQKKydtYXhmdW5jZGVwdGgnCSAgJ21mZCcgICAgIG1heGltdW0gcmVjdXJzaXZlIGRlcHRoIGZvciB1c2VyIGZ1bmN0aW9ucworJ21heG1hcGRlcHRoJwkgICdtbWQnICAgICBtYXhpbXVtIHJlY3Vyc2l2ZSBkZXB0aCBmb3IgbWFwcGluZworJ21heG1lbScJICAnbW0nCSAgICBtYXhpbXVtIG1lbW9yeSAoaW4gS2J5dGUpIHVzZWQgZm9yIG9uZSBidWZmZXIKICdtYXhtZW1wYXR0ZXJuJyAgICdtbXAnICAgICBtYXhpbXVtIG1lbW9yeSAoaW4gS2J5dGUpIHVzZWQgZm9yIHBhdHRlcm4gc2VhcmNoCi0nbWF4bWVtdG90JyAgICAgICAnbW10JyAgICAgbWF4aW11bSBtZW1vcnkgKGluIEtieXRlKSB1c2VkIGZvciBhbGwgYnVmZmVycwotJ21lbnVpdGVtcycgICAgICAgJ21pcycgICAgIG1heGltdW0gbnVtYmVyIG9mIGl0ZW1zIGluIGEgbWVudQotJ21rc3BlbGxtZW0nICAgICAgJ21zbScgICAgIG1lbW9yeSB1c2VkIGJlZm9yZSB8Om1rc3BlbGx8IGNvbXByZXNzZXMgdGhlIHRyZWUKLSdtb2RlbGluZScgICAgICAgICdtbCcgICAgICByZWNvZ25pemUgbW9kZWxpbmVzIGF0IHN0YXJ0IG9yIGVuZCBvZiBmaWxlCi0nbW9kZWxpbmVzJyAgICAgICAnbWxzJyAgICAgbnVtYmVyIG9mIGxpbmVzIGNoZWNrZWQgZm9yIG1vZGVsaW5lcwotJ21vZGlmaWFibGUnICAgICAgJ21hJyAgICAgIGNoYW5nZXMgdG8gdGhlIHRleHQgYXJlIG5vdCBwb3NzaWJsZQotJ21vZGlmaWVkJyAgICAgICAgJ21vZCcgICAgIGJ1ZmZlciBoYXMgYmVlbiBtb2RpZmllZAotJ21vcmUnICAgICAgICAgICAgICAgICAgICAgIHBhdXNlIGxpc3RpbmdzIHdoZW4gdGhlIHdob2xlIHNjcmVlbiBpcyBmaWxsZWQKLSdtb3VzZScgICAgICAgICAgICAgICAgICAgICBlbmFibGUgdGhlIHVzZSBvZiBtb3VzZSBjbGlja3MKLSdtb3VzZWZvY3VzJyAgICAgICdtb3VzZWYnICBrZXlib2FyZCBmb2N1cyBmb2xsb3dzIHRoZSBtb3VzZQotJ21vdXNlaGlkZScgICAgICAgJ21oJyAgICAgIGhpZGUgbW91c2UgcG9pbnRlciB3aGlsZSB0eXBpbmcKLSdtb3VzZW1vZGVsJyAgICAgICdtb3VzZW0nICBjaGFuZ2VzIG1lYW5pbmcgb2YgbW91c2UgYnV0dG9ucwotJ21vdXNlc2hhcGUnICAgICAgJ21vdXNlcycgIHNoYXBlIG9mIHRoZSBtb3VzZSBwb2ludGVyIGluIGRpZmZlcmVudCBtb2RlcwotJ21vdXNldGltZScgICAgICAgJ21vdXNldCcgIG1heCB0aW1lIGJldHdlZW4gbW91c2UgZG91YmxlLWNsaWNrCi0nbXpxdWFudHVtJyAgICAgICAnbXpxJyAgICAgdGhlIGludGVydmFsIGJldHdlZW4gcG9sbHMgZm9yIE16U2NoZW1lIHRocmVhZHMKLSducmZvcm1hdHMnICAgICAgICduZicgICAgICBudW1iZXIgZm9ybWF0cyByZWNvZ25pemVkIGZvciBDVFJMLUEgY29tbWFuZAotJ251bWJlcicgICAgICAgICAgJ251JyAgICAgIHByaW50IHRoZSBsaW5lIG51bWJlciBpbiBmcm9udCBvZiBlYWNoIGxpbmUKLSdudW1iZXJ3aWR0aCcgICAgICdudXcnICAgICBudW1iZXIgb2YgY29sdW1ucyB1c2VkIGZvciB0aGUgbGluZSBudW1iZXIKLSdvbW5pZnVuYycgICAgICAgICdvZnUnICAgICBmdW5jdGlvbiBmb3IgZmlsZXR5cGUtc3BlY2lmaWMgY29tcGxldGlvbgotJ29wZXJhdG9yZnVuYycgICAgJ29wZnVuYycgIGZ1bnRpb24gdG8gYmUgY2FsbGVkIGZvciB8Z0B8IG9wZXJhdG9yCi0nb3NmaWxldHlwZScgICAgICAnb2Z0JyAgICAgb3BlcmF0aW5nIHN5c3RlbS1zcGVjaWZpYyBmaWxldHlwZSBpbmZvcm1hdGlvbgotJ3BhcmFncmFwaHMnICAgICAgJ3BhcmEnICAgIG5yb2ZmIG1hY3JvcyB0aGF0IHNlcGFyYXRlIHBhcmFncmFwaHMKLSdwYXN0ZScgICAgICAgICAgICAgICAgICAgICBhbGxvdyBwYXN0aW5nIHRleHQKLSdwYXN0ZXRvZ2dsZScgICAgICdwdCcgICAgICBrZXkgY29kZSB0aGF0IGNhdXNlcyAncGFzdGUnIHRvIHRvZ2dsZQotJ3BhdGNoZXhwcicgICAgICAgJ3BleCcgICAgIGV4cHJlc3Npb24gdXNlZCB0byBwYXRjaCBhIGZpbGUKLSdwYXRjaG1vZGUnICAgICAgICdwbScgICAgICBrZWVwIHRoZSBvbGRlc3QgdmVyc2lvbiBvZiBhIGZpbGUKLSdwYXRoJyAgICAgICAgICAgICdwYScgICAgICBsaXN0IG9mIGRpcmVjdG9yaWVzIHNlYXJjaGVkIHdpdGggImdmIiBldC5hbC4KLSdwcmVzZXJ2ZWluZGVudCcgICdwaScgICAgICBwcmVzZXJ2ZSB0aGUgaW5kZW50IHN0cnVjdHVyZSB3aGVuIHJlaW5kZW50aW5nCisnbWF4bWVtdG90JwkgICdtbXQnICAgICBtYXhpbXVtIG1lbW9yeSAoaW4gS2J5dGUpIHVzZWQgZm9yIGFsbCBidWZmZXJzCisnbWVudWl0ZW1zJwkgICdtaXMnICAgICBtYXhpbXVtIG51bWJlciBvZiBpdGVtcyBpbiBhIG1lbnUKKydta3NwZWxsbWVtJwkgICdtc20nICAgICBtZW1vcnkgdXNlZCBiZWZvcmUgfDpta3NwZWxsfCBjb21wcmVzc2VzIHRoZSB0cmVlCisnbW9kZWxpbmUnCSAgJ21sJwkgICAgcmVjb2duaXplIG1vZGVsaW5lcyBhdCBzdGFydCBvciBlbmQgb2YgZmlsZQorJ21vZGVsaW5lcycJICAnbWxzJyAgICAgbnVtYmVyIG9mIGxpbmVzIGNoZWNrZWQgZm9yIG1vZGVsaW5lcworJ21vZGlmaWFibGUnCSAgJ21hJwkgICAgY2hhbmdlcyB0byB0aGUgdGV4dCBhcmUgbm90IHBvc3NpYmxlCisnbW9kaWZpZWQnCSAgJ21vZCcgICAgIGJ1ZmZlciBoYXMgYmVlbiBtb2RpZmllZAorJ21vcmUnCQkJICAgIHBhdXNlIGxpc3RpbmdzIHdoZW4gdGhlIHdob2xlIHNjcmVlbiBpcyBmaWxsZWQKKydtb3VzZScJCQkgICAgZW5hYmxlIHRoZSB1c2Ugb2YgbW91c2UgY2xpY2tzCisnbW91c2Vmb2N1cycJICAnbW91c2VmJyAga2V5Ym9hcmQgZm9jdXMgZm9sbG93cyB0aGUgbW91c2UKKydtb3VzZWhpZGUnCSAgJ21oJwkgICAgaGlkZSBtb3VzZSBwb2ludGVyIHdoaWxlIHR5cGluZworJ21vdXNlbW9kZWwnCSAgJ21vdXNlbScgIGNoYW5nZXMgbWVhbmluZyBvZiBtb3VzZSBidXR0b25zCisnbW91c2VzaGFwZScJICAnbW91c2VzJyAgc2hhcGUgb2YgdGhlIG1vdXNlIHBvaW50ZXIgaW4gZGlmZmVyZW50IG1vZGVzCisnbW91c2V0aW1lJwkgICdtb3VzZXQnICBtYXggdGltZSBiZXR3ZWVuIG1vdXNlIGRvdWJsZS1jbGljaworJ216cXVhbnR1bScJICAnbXpxJyAgICAgdGhlIGludGVydmFsIGJldHdlZW4gcG9sbHMgZm9yIE16U2NoZW1lIHRocmVhZHMKKyducmZvcm1hdHMnCSAgJ25mJwkgICAgbnVtYmVyIGZvcm1hdHMgcmVjb2duaXplZCBmb3IgQ1RSTC1BIGNvbW1hbmQKKydudW1iZXInCSAgJ251JwkgICAgcHJpbnQgdGhlIGxpbmUgbnVtYmVyIGluIGZyb250IG9mIGVhY2ggbGluZQorJ251bWJlcndpZHRoJwkgICdudXcnICAgICBudW1iZXIgb2YgY29sdW1ucyB1c2VkIGZvciB0aGUgbGluZSBudW1iZXIKKydvbW5pZnVuYycJICAnb2Z1JyAgICAgZnVuY3Rpb24gZm9yIGZpbGV0eXBlLXNwZWNpZmljIGNvbXBsZXRpb24KKydvcGVyYXRvcmZ1bmMnCSAgJ29wZnVuYycgIGZ1bnRpb24gdG8gYmUgY2FsbGVkIGZvciB8Z0B8IG9wZXJhdG9yCisnb3NmaWxldHlwZScJICAnb2Z0JyAgICAgb3BlcmF0aW5nIHN5c3RlbS1zcGVjaWZpYyBmaWxldHlwZSBpbmZvcm1hdGlvbgorJ3BhcmFncmFwaHMnCSAgJ3BhcmEnICAgIG5yb2ZmIG1hY3JvcyB0aGF0IHNlcGFyYXRlIHBhcmFncmFwaHMKKydwYXN0ZScJCQkgICAgYWxsb3cgcGFzdGluZyB0ZXh0CisncGFzdGV0b2dnbGUnCSAgJ3B0JwkgICAga2V5IGNvZGUgdGhhdCBjYXVzZXMgJ3Bhc3RlJyB0byB0b2dnbGUKKydwYXRjaGV4cHInCSAgJ3BleCcgICAgIGV4cHJlc3Npb24gdXNlZCB0byBwYXRjaCBhIGZpbGUKKydwYXRjaG1vZGUnCSAgJ3BtJwkgICAga2VlcCB0aGUgb2xkZXN0IHZlcnNpb24gb2YgYSBmaWxlCisncGF0aCcJCSAgJ3BhJwkgICAgbGlzdCBvZiBkaXJlY3RvcmllcyBzZWFyY2hlZCB3aXRoICJnZiIgZXQuYWwuCisncHJlc2VydmVpbmRlbnQnICAncGknCSAgICBwcmVzZXJ2ZSB0aGUgaW5kZW50IHN0cnVjdHVyZSB3aGVuIHJlaW5kZW50aW5nCiAncHJldmlld2hlaWdodCcgICAncHZoJyAgICAgaGVpZ2h0IG9mIHRoZSBwcmV2aWV3IHdpbmRvdwogJ3ByZXZpZXd3aW5kb3cnICAgJ3B2dycgICAgIGlkZW50aWZpZXMgdGhlIHByZXZpZXcgd2luZG93Ci0ncHJpbnRkZXZpY2UnICAgICAncGRldicgICAgbmFtZSBvZiB0aGUgcHJpbnRlciB0byBiZSB1c2VkIGZvciA6aGFyZGNvcHkKKydwcmludGRldmljZScJICAncGRldicgICAgbmFtZSBvZiB0aGUgcHJpbnRlciB0byBiZSB1c2VkIGZvciA6aGFyZGNvcHkKICdwcmludGVuY29kaW5nJyAgICdwZW5jJyAgICBlbmNvZGluZyB0byBiZSB1c2VkIGZvciBwcmludGluZwotJ3ByaW50ZXhwcicgICAgICAgJ3BleHByJyAgIGV4cHJlc3Npb24gdXNlZCB0byBwcmludCBQb3N0U2NyaXB0IGZvciA6aGFyZGNvcHkKLSdwcmludGZvbnQnICAgICAgICdwZm4nICAgICBuYW1lIG9mIHRoZSBmb250IHRvIGJlIHVzZWQgZm9yIDpoYXJkY29weQotJ3ByaW50aGVhZGVyJyAgICAgJ3BoZWFkZXInIGZvcm1hdCBvZiB0aGUgaGVhZGVyIHVzZWQgZm9yIDpoYXJkY29weQorJ3ByaW50ZXhwcicJICAncGV4cHInICAgZXhwcmVzc2lvbiB1c2VkIHRvIHByaW50IFBvc3RTY3JpcHQgZm9yIDpoYXJkY29weQorJ3ByaW50Zm9udCcJICAncGZuJyAgICAgbmFtZSBvZiB0aGUgZm9udCB0byBiZSB1c2VkIGZvciA6aGFyZGNvcHkKKydwcmludGhlYWRlcicJICAncGhlYWRlcicgZm9ybWF0IG9mIHRoZSBoZWFkZXIgdXNlZCBmb3IgOmhhcmRjb3B5CiAncHJpbnRtYmNoYXJzZXQnICAncG1iY3MnICAgQ0pLIGNoYXJhY3RlciBzZXQgdG8gYmUgdXNlZCBmb3IgOmhhcmRjb3B5Ci0ncHJpbnRtYmZvbnQnICAgICAncG1iZm4nICAgZm9udCBuYW1lcyB0byBiZSB1c2VkIGZvciBDSksgb3V0cHV0IG9mIDpoYXJkY29weQotJ3ByaW50b3B0aW9ucycgICAgJ3BvcHQnICAgIGNvbnRyb2xzIHRoZSBmb3JtYXQgb2YgOmhhcmRjb3B5IG91dHB1dAotJ3B1bWhlaWdodCcnICAgICAgJ3BoJyAgICAgIG1heGltdW0gaGVpZ2h0IG9mIHRoZSBwb3B1cCBtZW51Ci0ncXVvdGVlc2NhcGUnICAgICAncWUnICAgICAgZXNjYXBlIGNoYXJhY3RlcnMgdXNlZCBpbiBhIHN0cmluZwotJ3JlYWRvbmx5JyAgICAgICAgJ3JvJyAgICAgIGRpc2FsbG93IHdyaXRpbmcgdGhlIGJ1ZmZlcgotJ3JlbWFwJyAgICAgICAgICAgICAgICAgICAgIGFsbG93IG1hcHBpbmdzIHRvIHdvcmsgcmVjdXJzaXZlbHkKLSdyZXBvcnQnICAgICAgICAgICAgICAgICAgICB0aHJlc2hvbGQgZm9yIHJlcG9ydGluZyBuci4gb2YgbGluZXMgY2hhbmdlZAotJ3Jlc3RvcmVzY3JlZW4nICAgJ3JzJyAgICAgIFdpbjMyOiByZXN0b3JlIHNjcmVlbiB3aGVuIGV4aXRpbmcKLSdyZXZpbnMnICAgICAgICAgICdyaScgICAgICBpbnNlcnRpbmcgY2hhcmFjdGVycyB3aWxsIHdvcmsgYmFja3dhcmRzCi0ncmlnaHRsZWZ0JyAgICAgICAncmwnICAgICAgd2luZG93IGlzIHJpZ2h0LXRvLWxlZnQgb3JpZW50ZWQKLSdyaWdodGxlZnRjbWQnICAgICdybGMnICAgICBjb21tYW5kcyBmb3Igd2hpY2ggZWRpdGluZyB3b3JrcyByaWdodC10by1sZWZ0Ci0ncnVsZXInICAgICAgICAgICAncnUnICAgICAgc2hvdyBjdXJzb3IgbGluZSBhbmQgY29sdW1uIGluIHRoZSBzdGF0dXMgbGluZQotJ3J1bGVyZm9ybWF0JyAgICAgJ3J1ZicgICAgIGN1c3RvbSBmb3JtYXQgZm9yIHRoZSBydWxlcgotJ3J1bnRpbWVwYXRoJyAgICAgJ3J0cCcgICAgIGxpc3Qgb2YgZGlyZWN0b3JpZXMgdXNlZCBmb3IgcnVudGltZSBmaWxlcwotJ3Njcm9sbCcgICAgICAgICAgJ3NjcicgICAgIGxpbmVzIHRvIHNjcm9sbCB3aXRoIENUUkwtVSBhbmQgQ1RSTC1ECi0nc2Nyb2xsYmluZCcgICAgICAnc2NiJyAgICAgc2Nyb2xsIGluIHdpbmRvdyBhcyBvdGhlciB3aW5kb3dzIHNjcm9sbAotJ3Njcm9sbGp1bXAnICAgICAgJ3NqJyAgICAgIG1pbmltdW0gbnVtYmVyIG9mIGxpbmVzIHRvIHNjcm9sbAotJ3Njcm9sbG9mZicgICAgICAgJ3NvJyAgICAgIG1pbmltdW0gbnIuIG9mIGxpbmVzIGFib3ZlIGFuZCBiZWxvdyBjdXJzb3IKLSdzY3JvbGxvcHQnICAgICAgICdzYm8nICAgICBob3cgJ3Njcm9sbGJpbmQnIHNob3VsZCBiZWhhdmUKLSdzZWN0aW9ucycgICAgICAgICdzZWN0JyAgICBucm9mZiBtYWNyb3MgdGhhdCBzZXBhcmF0ZSBzZWN0aW9ucwotJ3NlY3VyZScgICAgICAgICAgICAgICAgICAgIHNlY3VyZSBtb2RlIGZvciByZWFkaW5nIC52aW1yYyBpbiBjdXJyZW50IGRpcgotJ3NlbGVjdGlvbicgICAgICAgJ3NlbCcgICAgIHdoYXQgdHlwZSBvZiBzZWxlY3Rpb24gdG8gdXNlCi0nc2VsZWN0bW9kZScgICAgICAnc2xtJyAgICAgd2hlbiB0byB1c2UgU2VsZWN0IG1vZGUgaW5zdGVhZCBvZiBWaXN1YWwgbW9kZQorJ3ByaW50bWJmb250JwkgICdwbWJmbicgICBmb250IG5hbWVzIHRvIGJlIHVzZWQgZm9yIENKSyBvdXRwdXQgb2YgOmhhcmRjb3B5CisncHJpbnRvcHRpb25zJwkgICdwb3B0JyAgICBjb250cm9scyB0aGUgZm9ybWF0IG9mIDpoYXJkY29weSBvdXRwdXQKKydwdW1oZWlnaHQnJwkgICdwaCcJICAgIG1heGltdW0gaGVpZ2h0IG9mIHRoZSBwb3B1cCBtZW51CisncXVvdGVlc2NhcGUnCSAgJ3FlJwkgICAgZXNjYXBlIGNoYXJhY3RlcnMgdXNlZCBpbiBhIHN0cmluZworJ3JlYWRvbmx5JwkgICdybycJICAgIGRpc2FsbG93IHdyaXRpbmcgdGhlIGJ1ZmZlcgorJ3JlbWFwJwkJCSAgICBhbGxvdyBtYXBwaW5ncyB0byB3b3JrIHJlY3Vyc2l2ZWx5CisncmVwb3J0JwkJICAgIHRocmVzaG9sZCBmb3IgcmVwb3J0aW5nIG5yLiBvZiBsaW5lcyBjaGFuZ2VkCisncmVzdG9yZXNjcmVlbicgICAncnMnCSAgICBXaW4zMjogcmVzdG9yZSBzY3JlZW4gd2hlbiBleGl0aW5nCisncmV2aW5zJwkgICdyaScJICAgIGluc2VydGluZyBjaGFyYWN0ZXJzIHdpbGwgd29yayBiYWNrd2FyZHMKKydyaWdodGxlZnQnCSAgJ3JsJwkgICAgd2luZG93IGlzIHJpZ2h0LXRvLWxlZnQgb3JpZW50ZWQKKydyaWdodGxlZnRjbWQnCSAgJ3JsYycgICAgIGNvbW1hbmRzIGZvciB3aGljaCBlZGl0aW5nIHdvcmtzIHJpZ2h0LXRvLWxlZnQKKydydWxlcicJCSAgJ3J1JwkgICAgc2hvdyBjdXJzb3IgbGluZSBhbmQgY29sdW1uIGluIHRoZSBzdGF0dXMgbGluZQorJ3J1bGVyZm9ybWF0JwkgICdydWYnICAgICBjdXN0b20gZm9ybWF0IGZvciB0aGUgcnVsZXIKKydydW50aW1lcGF0aCcJICAncnRwJyAgICAgbGlzdCBvZiBkaXJlY3RvcmllcyB1c2VkIGZvciBydW50aW1lIGZpbGVzCisnc2Nyb2xsJwkgICdzY3InICAgICBsaW5lcyB0byBzY3JvbGwgd2l0aCBDVFJMLVUgYW5kIENUUkwtRAorJ3Njcm9sbGJpbmQnCSAgJ3NjYicgICAgIHNjcm9sbCBpbiB3aW5kb3cgYXMgb3RoZXIgd2luZG93cyBzY3JvbGwKKydzY3JvbGxqdW1wJwkgICdzaicJICAgIG1pbmltdW0gbnVtYmVyIG9mIGxpbmVzIHRvIHNjcm9sbAorJ3Njcm9sbG9mZicJICAnc28nCSAgICBtaW5pbXVtIG5yLiBvZiBsaW5lcyBhYm92ZSBhbmQgYmVsb3cgY3Vyc29yCisnc2Nyb2xsb3B0JwkgICdzYm8nICAgICBob3cgJ3Njcm9sbGJpbmQnIHNob3VsZCBiZWhhdmUKKydzZWN0aW9ucycJICAnc2VjdCcgICAgbnJvZmYgbWFjcm9zIHRoYXQgc2VwYXJhdGUgc2VjdGlvbnMKKydzZWN1cmUnCQkgICAgc2VjdXJlIG1vZGUgZm9yIHJlYWRpbmcgLnZpbXJjIGluIGN1cnJlbnQgZGlyCisnc2VsZWN0aW9uJwkgICdzZWwnICAgICB3aGF0IHR5cGUgb2Ygc2VsZWN0aW9uIHRvIHVzZQorJ3NlbGVjdG1vZGUnCSAgJ3NsbScgICAgIHdoZW4gdG8gdXNlIFNlbGVjdCBtb2RlIGluc3RlYWQgb2YgVmlzdWFsIG1vZGUKICdzZXNzaW9ub3B0aW9ucycgICdzc29wJyAgICBvcHRpb25zIGZvciB8Om1rc2Vzc2lvbnwKLSdzaGVsbCcgICAgICAgICAgICdzaCcgICAgICBuYW1lIG9mIHNoZWxsIHRvIHVzZSBmb3IgZXh0ZXJuYWwgY29tbWFuZHMKLSdzaGVsbGNtZGZsYWcnICAgICdzaGNmJyAgICBmbGFnIHRvIHNoZWxsIHRvIGV4ZWN1dGUgb25lIGNvbW1hbmQKLSdzaGVsbHBpcGUnICAgICAgICdzcCcgICAgICBzdHJpbmcgdG8gcHV0IG91dHB1dCBvZiAiOm1ha2UiIGluIGVycm9yIGZpbGUKLSdzaGVsbHF1b3RlJyAgICAgICdzaHEnICAgICBxdW90ZSBjaGFyYWN0ZXIocykgZm9yIGFyb3VuZCBzaGVsbCBjb21tYW5kCi0nc2hlbGxyZWRpcicgICAgICAnc3JyJyAgICAgc3RyaW5nIHRvIHB1dCBvdXRwdXQgb2YgZmlsdGVyIGluIGEgdGVtcCBmaWxlCi0nc2hlbGxzbGFzaCcgICAgICAnc3NsJyAgICAgdXNlIGZvcndhcmQgc2xhc2ggZm9yIHNoZWxsIGZpbGUgbmFtZXMKLSdzaGVsbHRlbXAnICAgICAgICdzdG1wJyAgICB3aGV0aGVyIHRvIHVzZSBhIHRlbXAgZmlsZSBmb3Igc2hlbGwgY29tbWFuZHMKLSdzaGVsbHR5cGUnICAgICAgICdzdCcgICAgICBBbWlnYTogaW5mbHVlbmNlcyBob3cgdG8gdXNlIGEgc2hlbGwKLSdzaGVsbHhxdW90ZScgICAgICdzeHEnICAgICBsaWtlICdzaGVsbHF1b3RlJywgYnV0IGluY2x1ZGUgcmVkaXJlY3Rpb24KLSdzaGlmdHJvdW5kJyAgICAgICdzcicgICAgICByb3VuZCBpbmRlbnQgdG8gbXVsdGlwbGUgb2Ygc2hpZnR3aWR0aAotJ3NoaWZ0d2lkdGgnICAgICAgJ3N3JyAgICAgIG51bWJlciBvZiBzcGFjZXMgdG8gdXNlIGZvciAoYXV0bylpbmRlbnQgc3RlcAotJ3Nob3J0bWVzcycgICAgICAgJ3NobScgICAgIGxpc3Qgb2YgZmxhZ3MsIHJlZHVjZSBsZW5ndGggb2YgbWVzc2FnZXMKLSdzaG9ydG5hbWUnICAgICAgICdzbicgICAgICBub24tTVMtRE9TOiBGaWxlbmFtZXMgYXNzdW1lZCB0byBiZSA4LjMgY2hhcnMKLSdzaG93YnJlYWsnICAgICAgICdzYnInICAgICBzdHJpbmcgdG8gdXNlIGF0IHRoZSBzdGFydCBvZiB3cmFwcGVkIGxpbmVzCi0nc2hvd2NtZCcgICAgICAgICAnc2MnICAgICAgc2hvdyAocGFydGlhbCkgY29tbWFuZCBpbiBzdGF0dXMgbGluZQotJ3Nob3dmdWxsdGFnJyAgICAgJ3NmdCcgICAgIHNob3cgZnVsbCB0YWcgcGF0dGVybiB3aGVuIGNvbXBsZXRpbmcgdGFnCi0nc2hvd21hdGNoJyAgICAgICAnc20nICAgICAgYnJpZWZseSBqdW1wIHRvIG1hdGNoaW5nIGJyYWNrZXQgaWYgaW5zZXJ0IG9uZQotJ3Nob3dtb2RlJyAgICAgICAgJ3NtZCcgICAgIG1lc3NhZ2Ugb24gc3RhdHVzIGxpbmUgdG8gc2hvdyBjdXJyZW50IG1vZGUKLSdzaG93dGFibGluZScgICAgICdzdGFsJyAgICB0ZWxscyB3aGVuIHRoZSB0YWIgcGFnZXMgbGluZSBpcyBkaXNwbGF5ZWQKLSdzaWRlc2Nyb2xsJyAgICAgICdzcycgICAgICBtaW5pbXVtIG51bWJlciBvZiBjb2x1bW5zIHRvIHNjcm9sbCBob3Jpem9udGFsCisnc2hlbGwnCQkgICdzaCcJICAgIG5hbWUgb2Ygc2hlbGwgdG8gdXNlIGZvciBleHRlcm5hbCBjb21tYW5kcworJ3NoZWxsY21kZmxhZycJICAnc2hjZicgICAgZmxhZyB0byBzaGVsbCB0byBleGVjdXRlIG9uZSBjb21tYW5kCisnc2hlbGxwaXBlJwkgICdzcCcJICAgIHN0cmluZyB0byBwdXQgb3V0cHV0IG9mICI6bWFrZSIgaW4gZXJyb3IgZmlsZQorJ3NoZWxscXVvdGUnCSAgJ3NocScgICAgIHF1b3RlIGNoYXJhY3RlcihzKSBmb3IgYXJvdW5kIHNoZWxsIGNvbW1hbmQKKydzaGVsbHJlZGlyJwkgICdzcnInICAgICBzdHJpbmcgdG8gcHV0IG91dHB1dCBvZiBmaWx0ZXIgaW4gYSB0ZW1wIGZpbGUKKydzaGVsbHNsYXNoJwkgICdzc2wnICAgICB1c2UgZm9yd2FyZCBzbGFzaCBmb3Igc2hlbGwgZmlsZSBuYW1lcworJ3NoZWxsdGVtcCcJICAnc3RtcCcgICAgd2hldGhlciB0byB1c2UgYSB0ZW1wIGZpbGUgZm9yIHNoZWxsIGNvbW1hbmRzCisnc2hlbGx0eXBlJwkgICdzdCcJICAgIEFtaWdhOiBpbmZsdWVuY2VzIGhvdyB0byB1c2UgYSBzaGVsbAorJ3NoZWxseHF1b3RlJwkgICdzeHEnICAgICBsaWtlICdzaGVsbHF1b3RlJywgYnV0IGluY2x1ZGUgcmVkaXJlY3Rpb24KKydzaGlmdHJvdW5kJwkgICdzcicJICAgIHJvdW5kIGluZGVudCB0byBtdWx0aXBsZSBvZiBzaGlmdHdpZHRoCisnc2hpZnR3aWR0aCcJICAnc3cnCSAgICBudW1iZXIgb2Ygc3BhY2VzIHRvIHVzZSBmb3IgKGF1dG8paW5kZW50IHN0ZXAKKydzaG9ydG1lc3MnCSAgJ3NobScgICAgIGxpc3Qgb2YgZmxhZ3MsIHJlZHVjZSBsZW5ndGggb2YgbWVzc2FnZXMKKydzaG9ydG5hbWUnCSAgJ3NuJwkgICAgbm9uLU1TLURPUzogRmlsZW5hbWVzIGFzc3VtZWQgdG8gYmUgOC4zIGNoYXJzCisnc2hvd2JyZWFrJwkgICdzYnInICAgICBzdHJpbmcgdG8gdXNlIGF0IHRoZSBzdGFydCBvZiB3cmFwcGVkIGxpbmVzCisnc2hvd2NtZCcJICAnc2MnCSAgICBzaG93IChwYXJ0aWFsKSBjb21tYW5kIGluIHN0YXR1cyBsaW5lCisnc2hvd2Z1bGx0YWcnCSAgJ3NmdCcgICAgIHNob3cgZnVsbCB0YWcgcGF0dGVybiB3aGVuIGNvbXBsZXRpbmcgdGFnCisnc2hvd21hdGNoJwkgICdzbScJICAgIGJyaWVmbHkganVtcCB0byBtYXRjaGluZyBicmFja2V0IGlmIGluc2VydCBvbmUKKydzaG93bW9kZScJICAnc21kJyAgICAgbWVzc2FnZSBvbiBzdGF0dXMgbGluZSB0byBzaG93IGN1cnJlbnQgbW9kZQorJ3Nob3d0YWJsaW5lJwkgICdzdGFsJyAgICB0ZWxscyB3aGVuIHRoZSB0YWIgcGFnZXMgbGluZSBpcyBkaXNwbGF5ZWQKKydzaWRlc2Nyb2xsJwkgICdzcycJICAgIG1pbmltdW0gbnVtYmVyIG9mIGNvbHVtbnMgdG8gc2Nyb2xsIGhvcml6b250YWwKICdzaWRlc2Nyb2xsb2ZmJyAgICdzaXNvJyAgICBtaW4uIG5yLiBvZiBjb2x1bW5zIHRvIGxlZnQgYW5kIHJpZ2h0IG9mIGN1cnNvcgotJ3NtYXJ0Y2FzZScgICAgICAgJ3NjcycgICAgIG5vIGlnbm9yZSBjYXNlIHdoZW4gcGF0dGVybiBoYXMgdXBwZXJjYXNlCi0nc21hcnRpbmRlbnQnICAgICAnc2knICAgICAgc21hcnQgYXV0b2luZGVudGluZyBmb3IgQyBwcm9ncmFtcwotJ3NtYXJ0dGFiJyAgICAgICAgJ3N0YScgICAgIHVzZSAnc2hpZnR3aWR0aCcgd2hlbiBpbnNlcnRpbmcgPFRhYj4KLSdzb2Z0dGFic3RvcCcgICAgICdzdHMnICAgICBudW1iZXIgb2Ygc3BhY2VzIHRoYXQgPFRhYj4gdXNlcyB3aGlsZSBlZGl0aW5nCi0nc3BlbGwnICAgICAgICAgICAgICAgICAgICAgZW5hYmxlIHNwZWxsIGNoZWNraW5nCisnc21hcnRjYXNlJwkgICdzY3MnICAgICBubyBpZ25vcmUgY2FzZSB3aGVuIHBhdHRlcm4gaGFzIHVwcGVyY2FzZQorJ3NtYXJ0aW5kZW50JwkgICdzaScJICAgIHNtYXJ0IGF1dG9pbmRlbnRpbmcgZm9yIEMgcHJvZ3JhbXMKKydzbWFydHRhYicJICAnc3RhJyAgICAgdXNlICdzaGlmdHdpZHRoJyB3aGVuIGluc2VydGluZyA8VGFiPgorJ3NvZnR0YWJzdG9wJwkgICdzdHMnICAgICBudW1iZXIgb2Ygc3BhY2VzIHRoYXQgPFRhYj4gdXNlcyB3aGlsZSBlZGl0aW5nCisnc3BlbGwnCQkJICAgIGVuYWJsZSBzcGVsbCBjaGVja2luZwogJ3NwZWxsY2FwY2hlY2snICAgJ3NwYycgICAgIHBhdHRlcm4gdG8gbG9jYXRlIGVuZCBvZiBhIHNlbnRlbmNlCi0nc3BlbGxmaWxlJyAgICAgICAnc3BmJyAgICAgZmlsZXMgd2hlcmUgfHpnfCBhbmQgfHp3fCBzdG9yZSB3b3JkcwotJ3NwZWxsbGFuZycgICAgICAgJ3NwbCcgICAgIGxhbmd1YWdlKHMpIHRvIGRvIHNwZWxsIGNoZWNraW5nIGZvcgotJ3NwZWxsc3VnZ2VzdCcgICAgJ3NwcycgICAgIG1ldGhvZChzKSB1c2VkIHRvIHN1Z2dlc3Qgc3BlbGxpbmcgY29ycmVjdGlvbnMKLSdzcGxpdGJlbG93JyAgICAgICdzYicgICAgICBuZXcgd2luZG93IGZyb20gc3BsaXQgaXMgYmVsb3cgdGhlIGN1cnJlbnQgb25lCi0nc3BsaXRyaWdodCcgICAgICAnc3ByJyAgICAgbmV3IHdpbmRvdyBpcyBwdXQgcmlnaHQgb2YgdGhlIGN1cnJlbnQgb25lCi0nc3RhcnRvZmxpbmUnICAgICAnc29sJyAgICAgY29tbWFuZHMgbW92ZSBjdXJzb3IgdG8gZmlyc3QgYmxhbmsgaW4gbGluZQotJ3N0YXR1c2xpbmUnICAgICAgJ3N0bCcgICAgIGN1c3RvbSBmb3JtYXQgZm9yIHRoZSBzdGF0dXMgbGluZQotJ3N1ZmZpeGVzJyAgICAgICAgJ3N1JyAgICAgIHN1ZmZpeGVzIHRoYXQgYXJlIGlnbm9yZWQgd2l0aCBtdWx0aXBsZSBtYXRjaAotJ3N1ZmZpeGVzYWRkJyAgICAgJ3N1YScgICAgIHN1ZmZpeGVzIGFkZGVkIHdoZW4gc2VhcmNoaW5nIGZvciBhIGZpbGUKLSdzd2FwZmlsZScgICAgICAgICdzd2YnICAgICB3aGV0aGVyIHRvIHVzZSBhIHN3YXBmaWxlIGZvciBhIGJ1ZmZlcgotJ3N3YXBzeW5jJyAgICAgICAgJ3N3cycgICAgIGhvdyB0byBzeW5jIHRoZSBzd2FwIGZpbGUKLSdzd2l0Y2hidWYnICAgICAgICdzd2InICAgICBzZXRzIGJlaGF2aW9yIHdoZW4gc3dpdGNoaW5nIHRvIGFub3RoZXIgYnVmZmVyCi0nc3lubWF4Y29sJyAgICAgICAnc21jJyAgICAgbWF4aW11bSBjb2x1bW4gdG8gZmluZCBzeW50YXggaXRlbXMKLSdzeW50YXgnICAgICAgICAgICdzeW4nICAgICBzeW50YXggdG8gYmUgbG9hZGVkIGZvciBjdXJyZW50IGJ1ZmZlcgotJ3RhYnN0b3AnICAgICAgICAgJ3RzJyAgICAgIG51bWJlciBvZiBzcGFjZXMgdGhhdCA8VGFiPiBpbiBmaWxlIHVzZXMKLSd0YWJsaW5lJyAgICAgICAgICd0YWwnICAgICBjdXN0b20gZm9ybWF0IGZvciB0aGUgY29uc29sZSB0YWIgcGFnZXMgbGluZQotJ3RhYnBhZ2VtYXgnICAgICAgJ3RwbScgICAgIG1heGltdW0gbnVtYmVyIG9mIHRhYiBwYWdlcyBmb3IgfC1wfCBhbmQgInRhYiBhbGwiCi0ndGFnYnNlYXJjaCcgICAgICAndGJzJyAgICAgdXNlIGJpbmFyeSBzZWFyY2hpbmcgaW4gdGFncyBmaWxlcwotJ3RhZ2xlbmd0aCcgICAgICAgJ3RsJyAgICAgIG51bWJlciBvZiBzaWduaWZpY2FudCBjaGFyYWN0ZXJzIGZvciBhIHRhZwotJ3RhZ3JlbGF0aXZlJyAgICAgJ3RyJyAgICAgIGZpbGUgbmFtZXMgaW4gdGFnIGZpbGUgYXJlIHJlbGF0aXZlCi0ndGFncycgICAgICAgICAgICAndGFnJyAgICAgbGlzdCBvZiBmaWxlIG5hbWVzIHVzZWQgYnkgdGhlIHRhZyBjb21tYW5kCi0ndGFnc3RhY2snICAgICAgICAndGdzdCcgICAgcHVzaCB0YWdzIG9udG8gdGhlIHRhZyBzdGFjawotJ3Rlcm0nICAgICAgICAgICAgICAgICAgICAgIG5hbWUgb2YgdGhlIHRlcm1pbmFsCi0ndGVybWJpZGknICAgICAgICAndGJpZGknICAgdGVybWluYWwgdGFrZXMgY2FyZSBvZiBiaS1kaXJlY3Rpb25hbGl0eQotJ3Rlcm1lbmNvZGluZycgICAgJ3RlbmMnICAgIGNoYXJhY3RlciBlbmNvZGluZyB1c2VkIGJ5IHRoZSB0ZXJtaW5hbAotJ3RlcnNlJyAgICAgICAgICAgICAgICAgICAgIHNob3J0ZW4gc29tZSBtZXNzYWdlcwotJ3RleHRhdXRvJyAgICAgICAgJ3RhJyAgICAgIG9ic29sZXRlLCB1c2UgJ2ZpbGVmb3JtYXRzJwotJ3RleHRtb2RlJyAgICAgICAgJ3R4JyAgICAgIG9ic29sZXRlLCB1c2UgJ2ZpbGVmb3JtYXQnCi0ndGV4dHdpZHRoJyAgICAgICAndHcnICAgICAgbWF4aW11bSB3aWR0aCBvZiB0ZXh0IHRoYXQgaXMgYmVpbmcgaW5zZXJ0ZWQKLSd0aGVzYXVydXMnICAgICAgICd0c3InICAgICBsaXN0IG9mIHRoZXNhdXJ1cyBmaWxlcyBmb3Iga2V5d29yZCBjb21wbGV0aW9uCi0ndGlsZGVvcCcgICAgICAgICAndG9wJyAgICAgdGlsZGUgY29tbWFuZCAifiIgYmVoYXZlcyBsaWtlIGFuIG9wZXJhdG9yCi0ndGltZW91dCcgICAgICAgICAndG8nICAgICAgdGltZSBvdXQgb24gbWFwcGluZ3MgYW5kIGtleSBjb2RlcwotJ3RpbWVvdXRsZW4nICAgICAgJ3RtJyAgICAgIHRpbWUgb3V0IHRpbWUgaW4gbWlsbGlzZWNvbmRzCi0ndGl0bGUnICAgICAgICAgICAgICAgICAgICAgbGV0IFZpbSBzZXQgdGhlIHRpdGxlIG9mIHRoZSB3aW5kb3cKLSd0aXRsZWxlbicgICAgICAgICAgICAgICAgICBwZXJjZW50YWdlIG9mICdjb2x1bW5zJyB1c2VkIGZvciB3aW5kb3cgdGl0bGUKLSd0aXRsZW9sZCcgICAgICAgICAgICAgICAgICBvbGQgdGl0bGUsIHJlc3RvcmVkIHdoZW4gZXhpdGluZwotJ3RpdGxlc3RyaW5nJyAgICAgICAgICAgICAgIHN0cmluZyB0byB1c2UgZm9yIHRoZSBWaW0gd2luZG93IHRpdGxlCi0ndG9vbGJhcicgICAgICAgICAndGInICAgICAgR1VJOiB3aGljaCBpdGVtcyB0byBzaG93IGluIHRoZSB0b29sYmFyCisnc3BlbGxmaWxlJwkgICdzcGYnICAgICBmaWxlcyB3aGVyZSB8emd8IGFuZCB8end8IHN0b3JlIHdvcmRzCisnc3BlbGxsYW5nJwkgICdzcGwnICAgICBsYW5ndWFnZShzKSB0byBkbyBzcGVsbCBjaGVja2luZyBmb3IKKydzcGVsbHN1Z2dlc3QnCSAgJ3NwcycgICAgIG1ldGhvZChzKSB1c2VkIHRvIHN1Z2dlc3Qgc3BlbGxpbmcgY29ycmVjdGlvbnMKKydzcGxpdGJlbG93JwkgICdzYicJICAgIG5ldyB3aW5kb3cgZnJvbSBzcGxpdCBpcyBiZWxvdyB0aGUgY3VycmVudCBvbmUKKydzcGxpdHJpZ2h0JwkgICdzcHInICAgICBuZXcgd2luZG93IGlzIHB1dCByaWdodCBvZiB0aGUgY3VycmVudCBvbmUKKydzdGFydG9mbGluZScJICAnc29sJyAgICAgY29tbWFuZHMgbW92ZSBjdXJzb3IgdG8gZmlyc3QgYmxhbmsgaW4gbGluZQorJ3N0YXR1c2xpbmUnCSAgJ3N0bCcgICAgIGN1c3RvbSBmb3JtYXQgZm9yIHRoZSBzdGF0dXMgbGluZQorJ3N1ZmZpeGVzJwkgICdzdScJICAgIHN1ZmZpeGVzIHRoYXQgYXJlIGlnbm9yZWQgd2l0aCBtdWx0aXBsZSBtYXRjaAorJ3N1ZmZpeGVzYWRkJwkgICdzdWEnICAgICBzdWZmaXhlcyBhZGRlZCB3aGVuIHNlYXJjaGluZyBmb3IgYSBmaWxlCisnc3dhcGZpbGUnCSAgJ3N3ZicgICAgIHdoZXRoZXIgdG8gdXNlIGEgc3dhcGZpbGUgZm9yIGEgYnVmZmVyCisnc3dhcHN5bmMnCSAgJ3N3cycgICAgIGhvdyB0byBzeW5jIHRoZSBzd2FwIGZpbGUKKydzd2l0Y2hidWYnCSAgJ3N3YicgICAgIHNldHMgYmVoYXZpb3Igd2hlbiBzd2l0Y2hpbmcgdG8gYW5vdGhlciBidWZmZXIKKydzeW5tYXhjb2wnCSAgJ3NtYycgICAgIG1heGltdW0gY29sdW1uIHRvIGZpbmQgc3ludGF4IGl0ZW1zCisnc3ludGF4JwkgICdzeW4nICAgICBzeW50YXggdG8gYmUgbG9hZGVkIGZvciBjdXJyZW50IGJ1ZmZlcgorJ3RhYnN0b3AnCSAgJ3RzJwkgICAgbnVtYmVyIG9mIHNwYWNlcyB0aGF0IDxUYWI+IGluIGZpbGUgdXNlcworJ3RhYmxpbmUnCSAgJ3RhbCcgICAgIGN1c3RvbSBmb3JtYXQgZm9yIHRoZSBjb25zb2xlIHRhYiBwYWdlcyBsaW5lCisndGFicGFnZW1heCcJICAndHBtJyAgICAgbWF4aW11bSBudW1iZXIgb2YgdGFiIHBhZ2VzIGZvciB8LXB8IGFuZCAidGFiIGFsbCIKKyd0YWdic2VhcmNoJwkgICd0YnMnICAgICB1c2UgYmluYXJ5IHNlYXJjaGluZyBpbiB0YWdzIGZpbGVzCisndGFnbGVuZ3RoJwkgICd0bCcJICAgIG51bWJlciBvZiBzaWduaWZpY2FudCBjaGFyYWN0ZXJzIGZvciBhIHRhZworJ3RhZ3JlbGF0aXZlJwkgICd0cicJICAgIGZpbGUgbmFtZXMgaW4gdGFnIGZpbGUgYXJlIHJlbGF0aXZlCisndGFncycJCSAgJ3RhZycgICAgIGxpc3Qgb2YgZmlsZSBuYW1lcyB1c2VkIGJ5IHRoZSB0YWcgY29tbWFuZAorJ3RhZ3N0YWNrJwkgICd0Z3N0JyAgICBwdXNoIHRhZ3Mgb250byB0aGUgdGFnIHN0YWNrCisndGVybScJCQkgICAgbmFtZSBvZiB0aGUgdGVybWluYWwKKyd0ZXJtYmlkaScJICAndGJpZGknICAgdGVybWluYWwgdGFrZXMgY2FyZSBvZiBiaS1kaXJlY3Rpb25hbGl0eQorJ3Rlcm1lbmNvZGluZycJICAndGVuYycgICAgY2hhcmFjdGVyIGVuY29kaW5nIHVzZWQgYnkgdGhlIHRlcm1pbmFsCisndGVyc2UnCQkJICAgIHNob3J0ZW4gc29tZSBtZXNzYWdlcworJ3RleHRhdXRvJwkgICd0YScJICAgIG9ic29sZXRlLCB1c2UgJ2ZpbGVmb3JtYXRzJworJ3RleHRtb2RlJwkgICd0eCcJICAgIG9ic29sZXRlLCB1c2UgJ2ZpbGVmb3JtYXQnCisndGV4dHdpZHRoJwkgICd0dycJICAgIG1heGltdW0gd2lkdGggb2YgdGV4dCB0aGF0IGlzIGJlaW5nIGluc2VydGVkCisndGhlc2F1cnVzJwkgICd0c3InICAgICBsaXN0IG9mIHRoZXNhdXJ1cyBmaWxlcyBmb3Iga2V5d29yZCBjb21wbGV0aW9uCisndGlsZGVvcCcJICAndG9wJyAgICAgdGlsZGUgY29tbWFuZCAifiIgYmVoYXZlcyBsaWtlIGFuIG9wZXJhdG9yCisndGltZW91dCcJICAndG8nCSAgICB0aW1lIG91dCBvbiBtYXBwaW5ncyBhbmQga2V5IGNvZGVzCisndGltZW91dGxlbicJICAndG0nCSAgICB0aW1lIG91dCB0aW1lIGluIG1pbGxpc2Vjb25kcworJ3RpdGxlJwkJCSAgICBsZXQgVmltIHNldCB0aGUgdGl0bGUgb2YgdGhlIHdpbmRvdworJ3RpdGxlbGVuJwkJICAgIHBlcmNlbnRhZ2Ugb2YgJ2NvbHVtbnMnIHVzZWQgZm9yIHdpbmRvdyB0aXRsZQorJ3RpdGxlb2xkJwkJICAgIG9sZCB0aXRsZSwgcmVzdG9yZWQgd2hlbiBleGl0aW5nCisndGl0bGVzdHJpbmcnCQkgICAgc3RyaW5nIHRvIHVzZSBmb3IgdGhlIFZpbSB3aW5kb3cgdGl0bGUKKyd0b29sYmFyJwkgICd0YicJICAgIEdVSTogd2hpY2ggaXRlbXMgdG8gc2hvdyBpbiB0aGUgdG9vbGJhcgogJ3Rvb2xiYXJpY29uc2l6ZScgJ3RiaXMnICAgIHNpemUgb2YgdGhlIHRvb2xiYXIgaWNvbnMgKGZvciBHVEsgMiBvbmx5KQotJ3R0aW1lb3V0JyAgICAgICAgICAgICAgICAgIHRpbWUgb3V0IG9uIG1hcHBpbmdzCi0ndHRpbWVvdXRsZW4nICAgICAndHRtJyAgICAgdGltZSBvdXQgdGltZSBmb3Iga2V5IGNvZGVzIGluIG1pbGxpc2Vjb25kcwotJ3R0eWJ1aWx0aW4nICAgICAgJ3RiaScgICAgIHVzZSBidWlsdC1pbiB0ZXJtY2FwIGJlZm9yZSBleHRlcm5hbCB0ZXJtY2FwCi0ndHR5ZmFzdCcgICAgICAgICAndGYnICAgICAgaW5kaWNhdGVzIGEgZmFzdCB0ZXJtaW5hbCBjb25uZWN0aW9uCi0ndHR5bW91c2UnICAgICAgICAndHR5bScgICAgdHlwZSBvZiBtb3VzZSBjb2RlcyBnZW5lcmF0ZWQKLSd0dHlzY3JvbGwnICAgICAgICd0c2wnICAgICBtYXhpbXVtIG51bWJlciBvZiBsaW5lcyBmb3IgYSBzY3JvbGwKLSd0dHl0eXBlJyAgICAgICAgICd0dHknICAgICBhbGlhcyBmb3IgJ3Rlcm0nCi0ndW5kb2xldmVscycgICAgICAndWwnICAgICAgbWF4aW11bSBudW1iZXIgb2YgY2hhbmdlcyB0aGF0IGNhbiBiZSB1bmRvbmUKLSd1cGRhdGVjb3VudCcgICAgICd1YycgICAgICBhZnRlciB0aGlzIG1hbnkgY2hhcmFjdGVycyBmbHVzaCBzd2FwIGZpbGUKLSd1cGRhdGV0aW1lJyAgICAgICd1dCcgICAgICBhZnRlciB0aGlzIG1hbnkgbWlsbGlzZWNvbmRzIGZsdXNoIHN3YXAgZmlsZQotJ3ZlcmJvc2UnICAgICAgICAgJ3ZicycgICAgIGdpdmUgaW5mb3JtYXRpdmUgbWVzc2FnZXMKLSd2ZXJib3NlZmlsZScgICAgICd2ZmlsZScgICBmaWxlIHRvIHdyaXRlIG1lc3NhZ2VzIGluCi0ndmlld2RpcicgICAgICAgICAndmRpcicgICAgZGlyZWN0b3J5IHdoZXJlIHRvIHN0b3JlIGZpbGVzIHdpdGggOm1rdmlldwotJ3ZpZXdvcHRpb25zJyAgICAgJ3ZvcCcgICAgIHNwZWNpZmllcyB3aGF0IHRvIHNhdmUgZm9yIDpta3ZpZXcKLSd2aW1pbmZvJyAgICAgICAgICd2aScgICAgICB1c2UgLnZpbWluZm8gZmlsZSB1cG9uIHN0YXJ0dXAgYW5kIGV4aXRpbmcKLSd2aXJ0dWFsZWRpdCcgICAgICd2ZScgICAgICB3aGVuIHRvIHVzZSB2aXJ0dWFsIGVkaXRpbmcKLSd2aXN1YWxiZWxsJyAgICAgICd2YicgICAgICB1c2UgdmlzdWFsIGJlbGwgaW5zdGVhZCBvZiBiZWVwaW5nCi0nd2FybicgICAgICAgICAgICAgICAgICAgICAgd2FybiBmb3Igc2hlbGwgY29tbWFuZCB3aGVuIGJ1ZmZlciB3YXMgY2hhbmdlZAotJ3dlaXJkaW52ZXJ0JyAgICAgJ3dpJyAgICAgIGZvciB0ZXJtaW5hbHMgdGhhdCBoYXZlIHdlaXJkIGludmVyc2lvbiBtZXRob2QKLSd3aGljaHdyYXAnICAgICAgICd3dycgICAgICBhbGxvdyBzcGVjaWZpZWQga2V5cyB0byBjcm9zcyBsaW5lIGJvdW5kYXJpZXMKLSd3aWxkY2hhcicgICAgICAgICd3YycgICAgICBjb21tYW5kLWxpbmUgY2hhcmFjdGVyIGZvciB3aWxkY2FyZCBleHBhbnNpb24KLSd3aWxkY2hhcm0nICAgICAgICd3Y20nICAgICBsaWtlICd3aWxkY2hhcicgYnV0IGFsc28gd29ya3Mgd2hlbiBtYXBwZWQKLSd3aWxkaWdub3JlJyAgICAgICd3aWcnICAgICBmaWxlcyBtYXRjaGluZyB0aGVzZSBwYXR0ZXJucyBhcmUgbm90IGNvbXBsZXRlZAotJ3dpbGRtZW51JyAgICAgICAgJ3dtbnUnICAgIHVzZSBtZW51IGZvciBjb21tYW5kIGxpbmUgY29tcGxldGlvbgotJ3dpbGRtb2RlJyAgICAgICAgJ3dpbScgICAgIG1vZGUgZm9yICd3aWxkY2hhcicgY29tbWFuZC1saW5lIGV4cGFuc2lvbgotJ3dpbGRvcHRpb25zJyAgICAgJ3dvcCcgICAgIHNwZWNpZmllcyBob3cgY29tbWFuZCBsaW5lIGNvbXBsZXRpb24gaXMgZG9uZS4KLSd3aW5hbHRrZXlzJyAgICAgICd3YWsnICAgICB3aGVuIHRoZSB3aW5kb3dzIHN5c3RlbSBoYW5kbGVzIEFMVCBrZXlzCi0nd2luaGVpZ2h0JyAgICAgICAnd2gnICAgICAgbWluaW11bSBudW1iZXIgb2YgbGluZXMgZm9yIHRoZSBjdXJyZW50IHdpbmRvdwotJ3dpbmZpeGhlaWdodCcgICAgJ3dmaCcgICAgIGtlZXAgd2luZG93IGhlaWdodCB3aGVuIG9wZW5pbmcvY2xvc2luZyB3aW5kb3dzCi0nd2luZml4d2lkdGgnICAgICAnd2Z3JyAgICAga2VlcCB3aW5kb3cgd2lkdGggd2hlbiBvcGVuaW5nL2Nsb3Npbmcgd2luZG93cwotJ3dpbm1pbmhlaWdodCcgICAgJ3dtaCcgICAgIG1pbmltdW0gbnVtYmVyIG9mIGxpbmVzIGZvciBhbnkgd2luZG93Ci0nd2lubWlud2lkdGgnICAgICAnd213JyAgICAgbWluaW1hbCBudW1iZXIgb2YgY29sdW1ucyBmb3IgYW55IHdpbmRvdwotJ3dpbndpZHRoJyAgICAgICAgJ3dpdycgICAgIG1pbmltYWwgbnVtYmVyIG9mIGNvbHVtbnMgZm9yIGN1cnJlbnQgd2luZG93Ci0nd3JhcCcgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsaW5lcyB3cmFwIGFuZCBjb250aW51ZSBvbiB0aGUgbmV4dCBsaW5lCi0nd3JhcG1hcmdpbicgICAgICAnd20nICAgICAgY2hhcnMgZnJvbSB0aGUgcmlnaHQgd2hlcmUgd3JhcHBpbmcgc3RhcnRzCi0nd3JhcHNjYW4nICAgICAgICAnd3MnICAgICAgc2VhcmNoZXMgd3JhcCBhcm91bmQgdGhlIGVuZCBvZiB0aGUgZmlsZQotJ3dyaXRlJyAgICAgICAgICAgICAgICAgICAgIHdyaXRpbmcgdG8gYSBmaWxlIGlzIGFsbG93ZWQKLSd3cml0ZWFueScgICAgICAgICd3YScgICAgICB3cml0ZSB0byBmaWxlIHdpdGggbm8gbmVlZCBmb3IgIiEiIG92ZXJyaWRlCi0nd3JpdGViYWNrdXAnICAgICAnd2InICAgICAgbWFrZSBhIGJhY2t1cCBiZWZvcmUgb3ZlcndyaXRpbmcgYSBmaWxlCi0nd3JpdGVkZWxheScgICAgICAnd2QnICAgICAgZGVsYXkgdGhpcyBtYW55IG1zZWMgZm9yIGVhY2ggY2hhciAoZm9yIGRlYnVnKQorJ3R0aW1lb3V0JwkJICAgIHRpbWUgb3V0IG9uIG1hcHBpbmdzCisndHRpbWVvdXRsZW4nCSAgJ3R0bScgICAgIHRpbWUgb3V0IHRpbWUgZm9yIGtleSBjb2RlcyBpbiBtaWxsaXNlY29uZHMKKyd0dHlidWlsdGluJwkgICd0YmknICAgICB1c2UgYnVpbHQtaW4gdGVybWNhcCBiZWZvcmUgZXh0ZXJuYWwgdGVybWNhcAorJ3R0eWZhc3QnCSAgJ3RmJwkgICAgaW5kaWNhdGVzIGEgZmFzdCB0ZXJtaW5hbCBjb25uZWN0aW9uCisndHR5bW91c2UnCSAgJ3R0eW0nICAgIHR5cGUgb2YgbW91c2UgY29kZXMgZ2VuZXJhdGVkCisndHR5c2Nyb2xsJwkgICd0c2wnICAgICBtYXhpbXVtIG51bWJlciBvZiBsaW5lcyBmb3IgYSBzY3JvbGwKKyd0dHl0eXBlJwkgICd0dHknICAgICBhbGlhcyBmb3IgJ3Rlcm0nCisndW5kb2xldmVscycJICAndWwnCSAgICBtYXhpbXVtIG51bWJlciBvZiBjaGFuZ2VzIHRoYXQgY2FuIGJlIHVuZG9uZQorJ3VwZGF0ZWNvdW50JwkgICd1YycJICAgIGFmdGVyIHRoaXMgbWFueSBjaGFyYWN0ZXJzIGZsdXNoIHN3YXAgZmlsZQorJ3VwZGF0ZXRpbWUnCSAgJ3V0JwkgICAgYWZ0ZXIgdGhpcyBtYW55IG1pbGxpc2Vjb25kcyBmbHVzaCBzd2FwIGZpbGUKKyd2ZXJib3NlJwkgICd2YnMnICAgICBnaXZlIGluZm9ybWF0aXZlIG1lc3NhZ2VzCisndmVyYm9zZWZpbGUnCSAgJ3ZmaWxlJyAgIGZpbGUgdG8gd3JpdGUgbWVzc2FnZXMgaW4KKyd2aWV3ZGlyJwkgICd2ZGlyJyAgICBkaXJlY3Rvcnkgd2hlcmUgdG8gc3RvcmUgZmlsZXMgd2l0aCA6bWt2aWV3Cisndmlld29wdGlvbnMnCSAgJ3ZvcCcgICAgIHNwZWNpZmllcyB3aGF0IHRvIHNhdmUgZm9yIDpta3ZpZXcKKyd2aW1pbmZvJwkgICd2aScJICAgIHVzZSAudmltaW5mbyBmaWxlIHVwb24gc3RhcnR1cCBhbmQgZXhpdGluZworJ3ZpcnR1YWxlZGl0JwkgICd2ZScJICAgIHdoZW4gdG8gdXNlIHZpcnR1YWwgZWRpdGluZworJ3Zpc3VhbGJlbGwnCSAgJ3ZiJwkgICAgdXNlIHZpc3VhbCBiZWxsIGluc3RlYWQgb2YgYmVlcGluZworJ3dhcm4nCQkJICAgIHdhcm4gZm9yIHNoZWxsIGNvbW1hbmQgd2hlbiBidWZmZXIgd2FzIGNoYW5nZWQKKyd3ZWlyZGludmVydCcJICAnd2knCSAgICBmb3IgdGVybWluYWxzIHRoYXQgaGF2ZSB3ZWlyZCBpbnZlcnNpb24gbWV0aG9kCisnd2hpY2h3cmFwJwkgICd3dycJICAgIGFsbG93IHNwZWNpZmllZCBrZXlzIHRvIGNyb3NzIGxpbmUgYm91bmRhcmllcworJ3dpbGRjaGFyJwkgICd3YycJICAgIGNvbW1hbmQtbGluZSBjaGFyYWN0ZXIgZm9yIHdpbGRjYXJkIGV4cGFuc2lvbgorJ3dpbGRjaGFybScJICAnd2NtJyAgICAgbGlrZSAnd2lsZGNoYXInIGJ1dCBhbHNvIHdvcmtzIHdoZW4gbWFwcGVkCisnd2lsZGlnbm9yZScJICAnd2lnJyAgICAgZmlsZXMgbWF0Y2hpbmcgdGhlc2UgcGF0dGVybnMgYXJlIG5vdCBjb21wbGV0ZWQKKyd3aWxkbWVudScJICAnd21udScgICAgdXNlIG1lbnUgZm9yIGNvbW1hbmQgbGluZSBjb21wbGV0aW9uCisnd2lsZG1vZGUnCSAgJ3dpbScgICAgIG1vZGUgZm9yICd3aWxkY2hhcicgY29tbWFuZC1saW5lIGV4cGFuc2lvbgorJ3dpbGRvcHRpb25zJwkgICd3b3AnICAgICBzcGVjaWZpZXMgaG93IGNvbW1hbmQgbGluZSBjb21wbGV0aW9uIGlzIGRvbmUuCisnd2luYWx0a2V5cycJICAnd2FrJyAgICAgd2hlbiB0aGUgd2luZG93cyBzeXN0ZW0gaGFuZGxlcyBBTFQga2V5cworJ3dpbmhlaWdodCcJICAnd2gnCSAgICBtaW5pbXVtIG51bWJlciBvZiBsaW5lcyBmb3IgdGhlIGN1cnJlbnQgd2luZG93Cisnd2luZml4aGVpZ2h0JwkgICd3ZmgnICAgICBrZWVwIHdpbmRvdyBoZWlnaHQgd2hlbiBvcGVuaW5nL2Nsb3Npbmcgd2luZG93cworJ3dpbmZpeHdpZHRoJwkgICd3ZncnICAgICBrZWVwIHdpbmRvdyB3aWR0aCB3aGVuIG9wZW5pbmcvY2xvc2luZyB3aW5kb3dzCisnd2lubWluaGVpZ2h0JwkgICd3bWgnICAgICBtaW5pbXVtIG51bWJlciBvZiBsaW5lcyBmb3IgYW55IHdpbmRvdworJ3dpbm1pbndpZHRoJwkgICd3bXcnICAgICBtaW5pbWFsIG51bWJlciBvZiBjb2x1bW5zIGZvciBhbnkgd2luZG93Cisnd2lud2lkdGgnCSAgJ3dpdycgICAgIG1pbmltYWwgbnVtYmVyIG9mIGNvbHVtbnMgZm9yIGN1cnJlbnQgd2luZG93Cisnd3JhcCcJCQkgICAgbG9uZyBsaW5lcyB3cmFwIGFuZCBjb250aW51ZSBvbiB0aGUgbmV4dCBsaW5lCisnd3JhcG1hcmdpbicJICAnd20nCSAgICBjaGFycyBmcm9tIHRoZSByaWdodCB3aGVyZSB3cmFwcGluZyBzdGFydHMKKyd3cmFwc2NhbicJICAnd3MnCSAgICBzZWFyY2hlcyB3cmFwIGFyb3VuZCB0aGUgZW5kIG9mIHRoZSBmaWxlCisnd3JpdGUnCQkJICAgIHdyaXRpbmcgdG8gYSBmaWxlIGlzIGFsbG93ZWQKKyd3cml0ZWFueScJICAnd2EnCSAgICB3cml0ZSB0byBmaWxlIHdpdGggbm8gbmVlZCBmb3IgIiEiIG92ZXJyaWRlCisnd3JpdGViYWNrdXAnCSAgJ3diJwkgICAgbWFrZSBhIGJhY2t1cCBiZWZvcmUgb3ZlcndyaXRpbmcgYSBmaWxlCisnd3JpdGVkZWxheScJICAnd2QnCSAgICBkZWxheSB0aGlzIG1hbnkgbXNlYyBmb3IgZWFjaCBjaGFyIChmb3IgZGVidWcpCiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICpRX3VyKgkJVW5kby9SZWRvIGNvbW1hbmRzCiAKQEAgLTk3NSw3ICs5NzUsNyBAQAogfGdhfAkJICAgZ2EJCXNob3cgYXNjaWkgdmFsdWUgb2YgY2hhcmFjdGVyIHVuZGVyIGN1cnNvciBpbgogCQkJCSAgIGRlY2ltYWwsIGhleCwgYW5kIG9jdGFsCiB8Zzh8CQkgICBnOAkJZm9yIHV0Zi04IGVuY29kaW5nOiBzaG93IGJ5dGUgc2VxdWVuY2UgZm9yCi0JCQkgCSAgIGNoYXJhY3RlciB1bmRlciBjdXJzb3IgaW4gaGV4LgorCQkJCSAgIGNoYXJhY3RlciB1bmRlciBjdXJzb3IgaW4gaGV4LgogfGdfQ1RSTC1HfAkgICBnIENUUkwtRwlzaG93IGN1cnNvciBjb2x1bW4sIGxpbmUsIGFuZCBjaGFyYWN0ZXIKIAkJCQkgICBwb3NpdGlvbgogfENUUkwtQ3wJICAgQ1RSTC1DCWR1cmluZyBzZWFyY2hlczogSW50ZXJydXB0IHRoZSBzZWFyY2gKZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL3F1b3Rlcy50eHQgYi9ydW50aW1lL2RvYy9xdW90ZXMudHh0CmluZGV4IGU5OWJlMjYuLmU2MzliMzUgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvZG9jL3F1b3Rlcy50eHQKKysrIGIvcnVudGltZS9kb2MvcXVvdGVzLnR4dApAQCAtMSw0ICsxLDQgQEAKLSpxdW90ZXMudHh0KiAgICBGb3IgVmltIHZlcnNpb24gNy4wZi4gIExhc3QgY2hhbmdlOiAyMDA2IEFwciAyNAorKnF1b3Rlcy50eHQqICAgIEZvciBWaW0gdmVyc2lvbiA3LjBnLiAgTGFzdCBjaGFuZ2U6IDIwMDYgQXByIDI0CiAKIAogCQkgIFZJTSBSRUZFUkVOQ0UgTUFOVUFMICAgIGJ5IEJyYW0gTW9vbGVuYWFyCmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy9yZWNvdmVyLnR4dCBiL3J1bnRpbWUvZG9jL3JlY292ZXIudHh0CmluZGV4IDQ0ZDY5NTIuLmQ2ZTE3NmUgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvZG9jL3JlY292ZXIudHh0CisrKyBiL3J1bnRpbWUvZG9jL3JlY292ZXIudHh0CkBAIC0xLDQgKzEsNCBAQAotKnJlY292ZXIudHh0KiAgIEZvciBWaW0gdmVyc2lvbiA3LjBmLiAgTGFzdCBjaGFuZ2U6IDIwMDYgQXByIDI0CisqcmVjb3Zlci50eHQqICAgRm9yIFZpbSB2ZXJzaW9uIDcuMGcuICBMYXN0IGNoYW5nZTogMjAwNiBBcHIgMjQKIAogCiAJCSAgVklNIFJFRkVSRU5DRSBNQU5VQUwgICAgYnkgQnJhbSBNb29sZW5hYXIKZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL3JlbW90ZS50eHQgYi9ydW50aW1lL2RvYy9yZW1vdGUudHh0CmluZGV4IGQzZDRhMzguLjU1NzkxOGQgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvZG9jL3JlbW90ZS50eHQKKysrIGIvcnVudGltZS9kb2MvcmVtb3RlLnR4dApAQCAtMSw0ICsxLDQgQEAKLSpyZW1vdGUudHh0KiAgICBGb3IgVmltIHZlcnNpb24gNy4wZi4gIExhc3QgY2hhbmdlOiAyMDA2IEFwciAyNAorKnJlbW90ZS50eHQqICAgIEZvciBWaW0gdmVyc2lvbiA3LjBnLiAgTGFzdCBjaGFuZ2U6IDIwMDYgQXByIDMwCiAKIAogCQkgIFZJTSBSRUZFUkVOQ0UgTUFOVUFMICAgIGJ5IEJyYW0gTW9vbGVuYWFyCkBAIC00NSwxOSArNDUsMTkgQEAKICAgIC0tcmVtb3RlLXdhaXQtc2lsZW50IFsre2NtZH1dIHtmaWxlfSAuLi4JCSotLXJlbW90ZS13YWl0LXNpbGVudCoKIAkJCQlBcyAtLXJlbW90ZS13YWl0LCBidXQgZG9uJ3QgY29tcGxhaW4gaWYgdGhlcmUKIAkJCQlpcyBubyBzZXJ2ZXIuCi0gICAgCQkJCQkJCSotLXJlbW90ZS10YWIqCisJCQkJCQkJKi0tcmVtb3RlLXRhYioKICAgIC0tcmVtb3RlLXRhYgkJCUxpa2UgLS1yZW1vdGUgYnV0IG9wZW4gZWFjaCBmaWxlIGluIGEgbmV3Ci0gICAgCQkJCXRhYnBhZ2UuCi0gICAgCQkJCQkJCSotLXJlbW90ZS10YWItc2lsZW50KgorCQkJCXRhYnBhZ2UuCisJCQkJCQkJKi0tcmVtb3RlLXRhYi1zaWxlbnQqCiAgICAtLXJlbW90ZS10YWItc2lsZW50CQlMaWtlIC0tcmVtb3RlLXNpbGVudCBidXQgb3BlbiBlYWNoIGZpbGUgaW4gYQotICAgIAkJCQluZXcgdGFicGFnZS4KKwkJCQluZXcgdGFicGFnZS4KIAkJCQkJCQkqLS1yZW1vdGUtdGFiLXdhaXQqCiAgICAtLXJlbW90ZS10YWItd2FpdAkJTGlrZSAtLXJlbW90ZS13YWl0IGJ1dCBvcGVuIGVhY2ggZmlsZSBpbiBhIG5ldwotICAgIAkJCQl0YWJwYWdlLgorCQkJCXRhYnBhZ2UuCiAKLSAgICAJCQkJCQkqLS1yZW1vdGUtdGFiLXdhaXQtc2lsZW50KgorCQkJCQkJKi0tcmVtb3RlLXRhYi13YWl0LXNpbGVudCoKICAgIC0tcmVtb3RlLXRhYi13YWl0LXNpbGVudAlMaWtlIC0tcmVtb3RlLXdhaXQtc2lsZW50IGJ1dCBvcGVuIGVhY2ggZmlsZQotICAgIAkJCQlpbiBhIG5ldyB0YWJwYWdlLgorCQkJCWluIGEgbmV3IHRhYnBhZ2UuCiAJCQkJCQkJCSotLXNlcnZlcm5hbWUqCiAgICAtLXNlcnZlcm5hbWUge25hbWV9CQlCZWNvbWUgdGhlIHNlcnZlciB7bmFtZX0uICBXaGVuIHVzZWQgdG9nZXRoZXIKIAkJCQl3aXRoIG9uZSBvZiB0aGUgLS1yZW1vdGUgY29tbWFuZHM6IGNvbm5lY3QgdG8KQEAgLTY3LDcgKzY3LDcgQEAKICAgIC0tcmVtb3RlLXNlbmQge2tleXN9CQlTZW5kIHtrZXlzfSB0byBzZXJ2ZXIgYW5kIGV4aXQuCiAJCQkJCQkJCSotLXJlbW90ZS1leHByKgogICAgLS1yZW1vdGUtZXhwciB7ZXhwcn0JCUV2YWx1YXRlIHtleHByfSBpbiBzZXJ2ZXIgYW5kIHByaW50IHRoZSByZXN1bHQKLSAgIAkJCQlvbiBzdGRvdXQuCisJCQkJb24gc3Rkb3V0LgogCQkJCQkJCQkqLS1zZXJ2ZXJsaXN0KgogICAgLS1zZXJ2ZXJsaXN0CQkJT3V0cHV0IGEgbGlzdCBvZiBzZXJ2ZXIgbmFtZXMuCiAKZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL3JlcGVhdC50eHQgYi9ydW50aW1lL2RvYy9yZXBlYXQudHh0CmluZGV4IDdjM2FkNjcuLjZiOWE1NWIgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvZG9jL3JlcGVhdC50eHQKKysrIGIvcnVudGltZS9kb2MvcmVwZWF0LnR4dApAQCAtMSw0ICsxLDQgQEAKLSpyZXBlYXQudHh0KiAgICBGb3IgVmltIHZlcnNpb24gNy4wZi4gIExhc3QgY2hhbmdlOiAyMDA2IEFwciAyNAorKnJlcGVhdC50eHQqICAgIEZvciBWaW0gdmVyc2lvbiA3LjBnLiAgTGFzdCBjaGFuZ2U6IDIwMDYgQXByIDMwCiAKIAogCQkgIFZJTSBSRUZFUkVOQ0UgTUFOVUFMICAgIGJ5IEJyYW0gTW9vbGVuYWFyCkBAIC02MDYsMTEgKzYwNiwxMSBAQAogICA0ICBTZWxmIHRpbWU6ICAgMC4wMDIwMDYgfgogICA1ICB+CiAgIDYgY291bnQgIHRvdGFsIChzKSAgIHNlbGYgKHMpIH4KLSAgNyAgICAgOSAgICAgICAgICAgICAgMC4wMDAwOTYgICBmb3IgaSBpbiByYW5nZSg4KSB+Ci0gIDggICAgIDggICAwLjE1MzY1NSAgIDAuMDAwNDEwICAgICBjYWxsIFRlc3QzKCkgfgotICA5ICAgICA4ICAgICAgICAgICAgICAwLjAwMDA3MCAgIGVuZGZvciB+Ci0gMTAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiBBc2sgYSBxdWVzdGlvbiB+Ci0gMTEgICAgIDEgICAgICAgICAgICAgIDAuMDAxMzQxICAgZWNobyBpbnB1dCgiZ2l2ZSBtZSBhbiBhbnN3ZXI6ICIpIH4KKyAgNwk5CSAgICAgICAwLjAwMDA5NiAgIGZvciBpIGluIHJhbmdlKDgpIH4KKyAgOAk4ICAgMC4xNTM2NTUgICAwLjAwMDQxMCAgICAgY2FsbCBUZXN0MygpIH4KKyAgOQk4CSAgICAgICAwLjAwMDA3MCAgIGVuZGZvciB+CisgMTAJCQkJICAiIEFzayBhIHF1ZXN0aW9uIH4KKyAxMQkxCSAgICAgICAwLjAwMTM0MSAgIGVjaG8gaW5wdXQoImdpdmUgbWUgYW4gYW5zd2VyOiAiKSB+CiAKIFRoZSBoZWFkZXIgKGxpbmVzIDEtNCkgZ2l2ZXMgdGhlIHRpbWUgZm9yIHRoZSB3aG9sZSBmdW5jdGlvbi4gIFRoZSAiVG90YWwiCiB0aW1lIGlzIHRoZSB0aW1lIHBhc3NlZCB3aGlsZSB0aGUgZnVuY3Rpb24gd2FzIGV4ZWN1dGluZy4gIFRoZSAiU2VsZiIgdGltZSBpcwpAQCAtNjQ5LDcgKzY0OSw3IEBACiAKIC0gRnVuY3Rpb25zIHRoYXQgYXJlIGRlbGV0ZWQgYmVmb3JlIFZpbSBleGl0cyB3aWxsIG5vdCBwcm9kdWNlIHByb2ZpbGluZwogICBpbmZvcm1hdGlvbi4gIFlvdSBjYW4gY2hlY2sgdGhlIHx2OnByb2ZpbGluZ3wgdmFyaWFibGUgaWYgbmVlZGVkOiA+Ci0gIAk6aWYgIXY6cHJvZmlsaW5nCisJOmlmICF2OnByb2ZpbGluZwogCTogICBkZWxmdW5jIE15RnVuYwogCTplbmRpZgogPApkaWZmIC0tZ2l0IGEvcnVudGltZS9kb2MvcmlsZWZ0LnR4dCBiL3J1bnRpbWUvZG9jL3JpbGVmdC50eHQKaW5kZXggZWVhMjg3MS4uOGQ1ZjE1MiAxMDA2NDQKLS0tIGEvcnVudGltZS9kb2MvcmlsZWZ0LnR4dAorKysgYi9ydW50aW1lL2RvYy9yaWxlZnQudHh0CkBAIC0xLDQgKzEsNCBAQAotKnJpbGVmdC50eHQqICAgIEZvciBWaW0gdmVyc2lvbiA3LjBmLiAgTGFzdCBjaGFuZ2U6IDIwMDYgQXByIDI0CisqcmlsZWZ0LnR4dCogICAgRm9yIFZpbSB2ZXJzaW9uIDcuMGcuICBMYXN0IGNoYW5nZTogMjAwNiBBcHIgMjQKIAogCiAJCSAgVklNIFJFRkVSRU5DRSBNQU5VQUwgICAgYnkgQXZuZXIgTG90dGVtCmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy9ydXNzaWFuLnR4dCBiL3J1bnRpbWUvZG9jL3J1c3NpYW4udHh0CmluZGV4IDBmNmRjZWMuLmRiM2NjOTkgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvZG9jL3J1c3NpYW4udHh0CisrKyBiL3J1bnRpbWUvZG9jL3J1c3NpYW4udHh0CkBAIC0xLDQgKzEsNCBAQAotKnJ1c3NpYW4udHh0KiAgIEZvciBWaW0gdmVyc2lvbiA3LjBmLiAgTGFzdCBjaGFuZ2U6IDIwMDYgQXByIDI0CisqcnVzc2lhbi50eHQqICAgRm9yIFZpbSB2ZXJzaW9uIDcuMGcuICBMYXN0IGNoYW5nZTogMjAwNiBBcHIgMjQKIAogCiAJCSAgVklNIFJFRkVSRU5DRSBNQU5VQUwgICAgYnkgVmFzc2lseSBSYWdvc2luCmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy9zY3JvbGwudHh0IGIvcnVudGltZS9kb2Mvc2Nyb2xsLnR4dAppbmRleCA1YTgzNGE1Li4yODgxYTJhIDEwMDY0NAotLS0gYS9ydW50aW1lL2RvYy9zY3JvbGwudHh0CisrKyBiL3J1bnRpbWUvZG9jL3Njcm9sbC50eHQKQEAgLTEsNCArMSw0IEBACi0qc2Nyb2xsLnR4dCogICAgRm9yIFZpbSB2ZXJzaW9uIDcuMGYuICBMYXN0IGNoYW5nZTogMjAwNiBBcHIgMjQKKypzY3JvbGwudHh0KiAgICBGb3IgVmltIHZlcnNpb24gNy4wZy4gIExhc3QgY2hhbmdlOiAyMDA2IEFwciAyNAogCiAKIAkJICBWSU0gUkVGRVJFTkNFIE1BTlVBTCAgICBieSBCcmFtIE1vb2xlbmFhcgpkaWZmIC0tZ2l0IGEvcnVudGltZS9kb2Mvc2lnbi50eHQgYi9ydW50aW1lL2RvYy9zaWduLnR4dAppbmRleCAwZTgyMzNlLi41NGFlNmQ2IDEwMDY0NAotLS0gYS9ydW50aW1lL2RvYy9zaWduLnR4dAorKysgYi9ydW50aW1lL2RvYy9zaWduLnR4dApAQCAtMSw0ICsxLDQgQEAKLSpzaWduLnR4dCogICAgICBGb3IgVmltIHZlcnNpb24gNy4wZi4gIExhc3QgY2hhbmdlOiAyMDA2IEFwciAyNAorKnNpZ24udHh0KiAgICAgIEZvciBWaW0gdmVyc2lvbiA3LjBnLiAgTGFzdCBjaGFuZ2U6IDIwMDYgQXByIDI0CiAKIAogCQkgIFZJTSBSRUZFUkVOQ0UgTUFOVUFMICAgIGJ5IEdvcmRvbiBQcmlldXIKZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL3NwZWxsLnR4dCBiL3J1bnRpbWUvZG9jL3NwZWxsLnR4dAppbmRleCA4YjBjODgzLi5kNjljN2FkIDEwMDY0NAotLS0gYS9ydW50aW1lL2RvYy9zcGVsbC50eHQKKysrIGIvcnVudGltZS9kb2Mvc3BlbGwudHh0CkBAIC0xLDQgKzEsNCBAQAotKnNwZWxsLnR4dCoJRm9yIFZpbSB2ZXJzaW9uIDcuMGYuICBMYXN0IGNoYW5nZTogMjAwNiBBcHIgMjQKKypzcGVsbC50eHQqCUZvciBWaW0gdmVyc2lvbiA3LjBnLiAgTGFzdCBjaGFuZ2U6IDIwMDYgQXByIDMwCiAKIAogCQkgIFZJTSBSRUZFUkVOQ0UgTUFOVUFMCSAgYnkgQnJhbSBNb29sZW5hYXIKQEAgLTY5OCwxMSArNjk4LDExIEBACiAgIGtub3cgc29tZXRoaW5nIHdvbid0IHdvcmsuCiAKIC0gQSAiLyIgbWF5IGZvbGxvdyB0aGUgd29yZCB3aXRoIHRoZSBmb2xsb3dpbmcgaXRlbXM6Ci0gICAgPSAgIAlDYXNlIG11c3QgbWF0Y2ggZXhhY3RseS4KKyAgICA9CQlDYXNlIG11c3QgbWF0Y2ggZXhhY3RseS4KICAgICA/CQlSYXJlIHdvcmQuCiAgICAgIQkJQmFkICh3cm9uZykgd29yZC4KICAgICBkaWdpdAlBIHJlZ2lvbiBpbiB3aGljaCB0aGUgd29yZCBpcyB2YWxpZC4gIElmIG5vIHJlZ2lvbnMgYXJlCi0gICAgCQlzcGVjaWZpZWQgdGhlIHdvcmQgaXMgdmFsaWQgaW4gYWxsIHJlZ2lvbnMuCisJCXNwZWNpZmllZCB0aGUgd29yZCBpcyB2YWxpZCBpbiBhbGwgcmVnaW9ucy4KIAogRXhhbXBsZToKIApAQCAtODU3LDEyICs4NTcsMTIgQEAKIAogCQkJCSpzcGVsbC1OQU1FKiAqc3BlbGwtVkVSU0lPTiogKnNwZWxsLUhPTUUqCiAJCQkJKnNwZWxsLUFVVEhPUiogKnNwZWxsLUVNQUlMKiAqc3BlbGwtQ09QWVJJR0hUKgotCU5BTUUJICAJTmFtZSBvZiB0aGUgbGFuZ3VhZ2UKLQlWRVJTSU9OICAgCTEuMC4xICB3aXRoIGZpeGVzCisJTkFNRQkJTmFtZSBvZiB0aGUgbGFuZ3VhZ2UKKwlWRVJTSU9OCQkxLjAuMSAgd2l0aCBmaXhlcwogCUhPTUUJCWh0dHA6Ly93d3cubXlob21lLmV1CiAJQVVUSE9SCQlKb2huIERvZQogCUVNQUlMCQlqb2huIEFUIERvZSBET1QgbmV0Ci0JQ09QWVJJR0hUICAgCUxHUEwKKwlDT1BZUklHSFQJTEdQTAogCiBUaGVzZSBmaWVsZHMgYXJlIHB1dCBpbiB0aGUgLnNwbCBmaWxlIGFzLWlzLiAgVGhlIHw6c3BlbGxpbmZvfCBjb21tYW5kIGNhbiBiZQogdXNlZCB0byB2aWV3IHRoZSBpbmZvLgpAQCAtMTAyMyw3ICsxMDIzLDcgQEAKIHRoaXMgdGV4dCB0byBzdGFydCB3aXRoIGEgIiMiIHNvIHRoYXQgbWlzdGFrZXMgZG9uJ3QgZ28gdW5ub3RpY2VkLiAgRXhhbXBsZToKIAogCVNGWCBGIDAgaW4gICBbXmldbiAgICAgICMgU3Bpb24gPiBTcGlvbmluICB+Ci0JU0ZYIEYgMCBuZW4gIGluICAgICAgICAgIyBCYXVlcmluID4gQmF1ZXJpbm5lbiB+CisJU0ZYIEYgMCBuZW4gIGluCQkjIEJhdWVyaW4gPiBCYXVlcmlubmVuIH4KIAogQXBwYXJlbnRseSBNeXNwZWxsIGFsbG93cyBhbiBhZmZpeCBuYW1lIHRvIGFwcGVhciBtb3JlIHRoYW4gb25jZS4gIFNpbmNlIHRoaXMKIG1pZ2h0IGFsc28gYmUgYSBtaXN0YWtlLCBWaW0gY2hlY2tzIGZvciBhbiBleHRyYSAiUyIuICBUaGUgYWZmaXggZmlsZXMgZm9yCkBAIC0xMDg3LDcgKzEwODcsNyBAQAogZmxhZ3M6IFRoZSByZXF1aXJlZCBwcmVmaXggYW5kIHRoZSBORUVEQUZGSVggZmxhZy4gIHxzcGVsbC1ORUVEQUZGSVh8CiAKIAotUEZYUE9TVFBPTkUJCQkJCSAgICAJKnNwZWxsLVBGWFBPU1RQT05FKgorUEZYUE9TVFBPTkUJCQkJCQkqc3BlbGwtUEZYUE9TVFBPTkUqCiAKIFdoZW4gYW4gYWZmaXggZmlsZSBoYXMgdmVyeSBtYW55IHByZWZpeGVzIHRoYXQgYXBwbHkgdG8gbWFueSB3b3JkcyBpdCdzIG5vdAogcG9zc2libGUgdG8gYnVpbGQgdGhlIHdob2xlIHdvcmQgbGlzdCBpbiBtZW1vcnkuICBUaGlzIGFwcGxpZXMgdG8gSGVicmV3IChhCkBAIC0xNDM0LDEwICsxNDM0LDEwIEBACiB0byBiZSB1c2VkLiAgVGhlIG1haW4gaXRlbXMgZGVmaW5lIHRoZSAiZnJvbSIgdGV4dCBhbmQgdGhlICJ0byIgcmVwbGFjZW1lbnQuCiBTaW1wbGlzdGljIGV4YW1wbGU6CiAKLQlTQUwgQ0lBICAgICAgICAgICAgICAgICAgWCB+Ci0JU0FMIENIICAgICAgICAgICAgICAgICAgIFggfgotCVNBTCBDICAgICAgICAgICAgICAgICAgICBLIH4KLQlTQUwgSyAgICAgICAgICAgICAgICAgICAgSyB+CisJU0FMIENJQQkJCSBYIH4KKwlTQUwgQ0gJCQkgWCB+CisJU0FMIEMJCQkgSyB+CisJU0FMIEsJCQkgSyB+CiAKIFRoZXJlIGFyZSBhIGZldyBydWxlcyBhbmQgdGhpcyBjYW4gYmVjb21lIHF1aXRlIGNvbXBsaWNhdGVkLiAgQW4gZXhwbGFuYXRpb24KIGhvdyBpdCB3b3JrcyBjYW4gYmUgZm91bmQgaW4gdGhlIEFzcGVsbCBtYW51YWw6CkBAIC0xNTEwLDEwICsxNTEwLDEwIEBACiAJCUVuYWJsZXMgdXNpbmcgdHdvIHByZWZpeGVzLiAgTm90IHN1cHBvcnRlZC4KIAogQ09NUE9VTkQJKEh1bnNwZWxsKQkJCQkqc3BlbGwtQ09NUE9VTkQqCi0gICAgICAgICAgICAgICAgVGhpcyBpcyBvbmUgbGluZSB3aXRoIHRoZSBjb3VudCBvZiBDT01QT1VORCBpdGVtcywgZm9sbG93ZCBieQotICAgICAgICAgICAgICAgIHRoYXQgbWFueSBDT01QT1VORCBsaW5lcyB3aXRoIGEgcGF0dGVybi4KLSAgICAgICAgICAgICAgICBSZW1vdmUgdGhlIGZpcnN0IGxpbmUgd2l0aCB0aGUgY291bnQgYW5kIHJlbmFtZSB0aGUgb3RoZXIKLSAgICAgICAgICAgICAgICBpdGVtcyB0byBDT01QT1VORFJVTEUgfHNwZWxsLUNPTVBPVU5EUlVMRXwKKwkJVGhpcyBpcyBvbmUgbGluZSB3aXRoIHRoZSBjb3VudCBvZiBDT01QT1VORCBpdGVtcywgZm9sbG93ZCBieQorCQl0aGF0IG1hbnkgQ09NUE9VTkQgbGluZXMgd2l0aCBhIHBhdHRlcm4uCisJCVJlbW92ZSB0aGUgZmlyc3QgbGluZSB3aXRoIHRoZSBjb3VudCBhbmQgcmVuYW1lIHRoZSBvdGhlcgorCQlpdGVtcyB0byBDT01QT1VORFJVTEUgfHNwZWxsLUNPTVBPVU5EUlVMRXwKIAogQ09NUE9VTkRGSVJTVAkoSHVuc3BlbGwpCQkJCSpzcGVsbC1DT01QT1VOREZJUlNUKgogCQlVc2UgQ09NUE9VTkRSVUxFIGluc3RlYWQuIHxzcGVsbC1DT01QT1VORFJVTEV8CmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy9zcG9uc29yLnR4dCBiL3J1bnRpbWUvZG9jL3Nwb25zb3IudHh0CmluZGV4IGQwOGRlNDkuLjcwYTNhZTUgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvZG9jL3Nwb25zb3IudHh0CisrKyBiL3J1bnRpbWUvZG9jL3Nwb25zb3IudHh0CkBAIC0xLDQgKzEsNCBAQAotKnNwb25zb3IudHh0KiAgIEZvciBWaW0gdmVyc2lvbiA3LjBmLiAgTGFzdCBjaGFuZ2U6IDIwMDYgQXByIDI0Cisqc3BvbnNvci50eHQqICAgRm9yIFZpbSB2ZXJzaW9uIDcuMGcuICBMYXN0IGNoYW5nZTogMjAwNiBBcHIgMzAKIAogCiAJCSAgVklNIFJFRkVSRU5DRSBNQU5VQUwgICAgYnkgQnJhbSBNb29sZW5hYXIKQEAgLTIwOCw3ICsyMDgsNyBAQAogCiBDYW4geW91IHNlbmQgbWUgYSBiaWxsPwogCi1ObywgYmVjYXVzZSB0aGVyZSBpcyBubyByZWxhdGlvbiBiZXR3ZWVuIHRoZSBtb25leSB5b3Ugc2VuZCBhbmQgdGhlIHdvcmsgdGhhdCAKK05vLCBiZWNhdXNlIHRoZXJlIGlzIG5vIHJlbGF0aW9uIGJldHdlZW4gdGhlIG1vbmV5IHlvdSBzZW5kIGFuZCB0aGUgd29yayB0aGF0CiBpcyBkb25lLiAgQnV0IGEgcmVjZWlwdCBpcyBwb3NzaWJsZS4KIAogCmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy9zcWwudHh0IGIvcnVudGltZS9kb2Mvc3FsLnR4dAppbmRleCBlN2Q0MGQ2Li5mMDg5MDEyIDEwMDY0NAotLS0gYS9ydW50aW1lL2RvYy9zcWwudHh0CisrKyBiL3J1bnRpbWUvZG9jL3NxbC50eHQKQEAgLTEsNCArMSw0IEBACi0qc3FsLnR4dCogICAJRm9yIFZpbSB2ZXJzaW9uIDcuMGYuICBMYXN0IGNoYW5nZTogV2VkIEFwciAyNiAyMDA2IDM6MDU6MzMgUE0KKypzcWwudHh0KglGb3IgVmltIHZlcnNpb24gNy4wZy4gIExhc3QgY2hhbmdlOiBXZWQgQXByIDI2IDIwMDYgMzowNTozMyBQTQogCiBieSBEYXZpZCBGaXNoYnVybgogCkBAIC04LDQwICs4LDQwIEBACiB0aGF0IGFsbG93IGEgdXNlciB0byBpbnRlcmFjdCB3aXRoIGEgcmVsYXRpb25hbCBkYXRhYmFzZS4gIFZpbSBpbmNsdWRlcwogZmVhdHVyZXMgZm9yIG5hdmlnYXRpb24sIGluZGVudGF0aW9uIGFuZCBzeW50YXggaGlnaGxpZ2h0aW5nLgogCi0xLiBOYXZpZ2F0aW9uICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8c3FsLW5hdmlnYXRpb258Ci0gICAgMS4xIE1hdGNoaXQJCSAgICAgICAgCQl8c3FsLW1hdGNoaXR8Ci0gICAgMS4yIFRleHQgT2JqZWN0IE1vdGlvbnMJCSAgICAgICAgfHNxbC1vYmplY3QtbW90aW9uc3wKLSAgICAxLjMgUHJlZGVmaW5lZCBPYmplY3QgTW90aW9ucyAgICAgICAgICAgICAgIHxzcWwtcHJlZGVmaW5lZC1vYmplY3RzfAotICAgIDEuNCBNYWNyb3MgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfHNxbC1tYWNyb3N8Ci0yLiBTUUwgRGlhbGVjdHMJCSAgICAgICAgICAgICAgICAgICAgICAgIHxzcWwtZGlhbGVjdHN8Ci0gICAgMi4xIFNRTFNldFR5cGUJCSAgICAgICAgCXxTUUxTZXRUeXBlfAotICAgIDIuMiBTUUwgRGlhbGVjdCBEZWZhdWx0CQkgICAgICAgIHxzcWwtdHlwZS1kZWZhdWx0fAotMy4gQWRkaW5nIG5ldyBTUUwgRGlhbGVjdHMJCSAgICAgICAgfHNxbC1hZGRpbmctZGlhbGVjdHN8Ci00LiBPTU5JIFNRTCBDb21wbGV0aW9uICAJCSAgICAgICAgfHNxbC1jb21wbGV0aW9ufAotICAgIDQuMSBTdGF0aWMgbW9kZQkJICAgICAgICAJfHNxbC1jb21wbGV0aW9uLXN0YXRpY3wKLSAgICA0LjIgRHluYW1pYyBtb2RlICAgIAkJICAgICAgICB8c3FsLWNvbXBsZXRpb24tZHluYW1pY3wKKzEuIE5hdmlnYXRpb24JCQkJCXxzcWwtbmF2aWdhdGlvbnwKKyAgICAxLjEgTWF0Y2hpdAkJCQkJfHNxbC1tYXRjaGl0fAorICAgIDEuMiBUZXh0IE9iamVjdCBNb3Rpb25zCQkJfHNxbC1vYmplY3QtbW90aW9uc3wKKyAgICAxLjMgUHJlZGVmaW5lZCBPYmplY3QgTW90aW9ucwkJfHNxbC1wcmVkZWZpbmVkLW9iamVjdHN8CisgICAgMS40IE1hY3JvcwkJCQkJfHNxbC1tYWNyb3N8CisyLiBTUUwgRGlhbGVjdHMJCQkJCXxzcWwtZGlhbGVjdHN8CisgICAgMi4xIFNRTFNldFR5cGUJCQkJfFNRTFNldFR5cGV8CisgICAgMi4yIFNRTCBEaWFsZWN0IERlZmF1bHQJCQl8c3FsLXR5cGUtZGVmYXVsdHwKKzMuIEFkZGluZyBuZXcgU1FMIERpYWxlY3RzCQkJfHNxbC1hZGRpbmctZGlhbGVjdHN8Cis0LiBPTU5JIFNRTCBDb21wbGV0aW9uCQkJCXxzcWwtY29tcGxldGlvbnwKKyAgICA0LjEgU3RhdGljIG1vZGUJCQkJfHNxbC1jb21wbGV0aW9uLXN0YXRpY3wKKyAgICA0LjIgRHluYW1pYyBtb2RlCQkJCXxzcWwtY29tcGxldGlvbi1keW5hbWljfAogICAgIDQuMyBUdXRvcmlhbAkJCQl8c3FsLWNvbXBsZXRpb24tdHV0b3JpYWx8Ci0gICAgICAgIDQuMy4xIENvbXBsZXRlIFRhYmxlcwkJCXxzcWwtY29tcGxldGlvbi10YWJsZXN8Ci0gICAgICAgIDQuMy4yIENvbXBsZXRlIENvbHVtbnMJCQl8c3FsLWNvbXBsZXRpb24tY29sdW1uc3wKLSAgICAgICAgNC4zLjMgQ29tcGxldGUgUHJvY2VkdXJlcwkJfHNxbC1jb21wbGV0aW9uLXByb2NlZHVyZXN8Ci0gICAgICAgIDQuMy40IENvbXBsZXRlIFZpZXdzCQkJfHNxbC1jb21wbGV0aW9uLXZpZXdzfAorCTQuMy4xIENvbXBsZXRlIFRhYmxlcwkJCXxzcWwtY29tcGxldGlvbi10YWJsZXN8CisJNC4zLjIgQ29tcGxldGUgQ29sdW1ucwkJCXxzcWwtY29tcGxldGlvbi1jb2x1bW5zfAorCTQuMy4zIENvbXBsZXRlIFByb2NlZHVyZXMJCXxzcWwtY29tcGxldGlvbi1wcm9jZWR1cmVzfAorCTQuMy40IENvbXBsZXRlIFZpZXdzCQkJfHNxbC1jb21wbGV0aW9uLXZpZXdzfAogICAgIDQuNCBDb21wbGV0aW9uIEN1c3RvbWl6YXRpb24JCXxzcWwtY29tcGxldGlvbi1jdXN0b21pemF0aW9ufAotICAgIDQuNSBTUUwgTWFwcwkgICAgICAgIAkJfHNxbC1jb21wbGV0aW9uLW1hcHN8CisgICAgNC41IFNRTCBNYXBzCQkJCXxzcWwtY29tcGxldGlvbi1tYXBzfAogICAgIDQuNiBVc2luZyB3aXRoIG90aGVyIGZpbGV0eXBlcwkJfHNxbC1jb21wbGV0aW9uLWZpbGV0eXBlc3wKIAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0xLiBOYXZpZ2F0aW9uCSAgICAgICAgCQkJKnNxbC1uYXZpZ2F0aW9uKgorMS4gTmF2aWdhdGlvbgkJCQkJKnNxbC1uYXZpZ2F0aW9uKgogCiBUaGUgU1FMIGZ0cGx1Z2luIHByb3ZpZGVzIGEgbnVtYmVyIG9mIG9wdGlvbnMgdG8gYXNzaXN0IHdpdGggZmlsZQogbmF2aWdhdGlvbi4KIAogCi0xLjEgTWF0Y2hpdAkJICAgICAgICAJCSpzcWwtbWF0Y2hpdCoKKzEuMSBNYXRjaGl0CQkJCQkqc3FsLW1hdGNoaXQqCiAtLS0tLS0tLS0tLQogVGhlIG1hdGNoaXQgcGx1Z2luIChodHRwOi8vd3d3LnZpbS5vcmcvc2NyaXB0cy9zY3JpcHQucGhwP3NjcmlwdF9pZD0zOSkKIHByb3ZpZGVzIG1hbnkgYWRkaXRpb25hbCBmZWF0dXJlcyBhbmQgY2FuIGJlIGN1c3RvbWl6ZWQgZm9yIGRpZmZlcmVudAotbGFuZ3VhZ2VzLiAgVGhlIG1hdGNoaXQgcGx1Z2luIGlzIGNvbmZpZ3VyZWQgYnkgZGVmaW5pbmcgYSBsb2NhbCAKLWJ1ZmZlciB2YXJpYWJsZSwgYjptYXRjaF93b3Jkcy4gIFByZXNzaW5nIHRoZSAlIGtleSB3aGlsZSBvbiB2YXJpb3VzIAorbGFuZ3VhZ2VzLiAgVGhlIG1hdGNoaXQgcGx1Z2luIGlzIGNvbmZpZ3VyZWQgYnkgZGVmaW5pbmcgYSBsb2NhbAorYnVmZmVyIHZhcmlhYmxlLCBiOm1hdGNoX3dvcmRzLiAgUHJlc3NpbmcgdGhlICUga2V5IHdoaWxlIG9uIHZhcmlvdXMKIGtleXdvcmRzIHdpbGwgbW92ZSB0aGUgY3Vyc29yIHRvIGl0cyBtYXRjaC4gIEZvciBleGFtcGxlLCBpZiB0aGUgY3Vyc29yCiBpcyBvbiBhbiAiaWYiLCBwcmVzc2luZyAlIHdpbGwgY3ljbGUgYmV0d2VlbiB0aGUgImVsc2UiLCAiZWxzZWlmIiBhbmQKICJlbmQgaWYiIGtleXdvcmRzLgpAQCAtNTEsNDAgKzUxLDQwIEBACiAgICAgZWxzZWlmIHwgZWxzaWYKICAgICBlbHNlIFtpZl0KICAgICBlbmQgaWYKLSAgICAKKwogICAgIFt3aGlsZSBjb25kaXRpb25dIGxvb3AKLSAgICAgICAgbGVhdmUKLSAgICAgICAgYnJlYWsKLSAgICAgICAgY29udGludWUKLSAgICAgICAgZXhpdAorCWxlYXZlCisJYnJlYWsKKwljb250aW51ZQorCWV4aXQKICAgICBlbmQgbG9vcAotICAgIAorCiAgICAgZm9yCi0gICAgICAgIGxlYXZlCi0gICAgICAgIGJyZWFrCi0gICAgICAgIGNvbnRpbnVlCi0gICAgICAgIGV4aXQKKwlsZWF2ZQorCWJyZWFrCisJY29udGludWUKKwlleGl0CiAgICAgZW5kIGxvb3AKLSAgICAKKwogICAgIGRvCi0gICAgICAgIHN0YXRlbWVudHMKKwlzdGF0ZW1lbnRzCiAgICAgZG9lbmQKLSAgICAKKwogICAgIGNhc2UKLSAgICB3aGVuIAorICAgIHdoZW4KICAgICB3aGVuCiAgICAgZGVmYXVsdAogICAgIGVuZCBjYXNlCi0gICAgCisKICAgICBtZXJnZQogICAgIHdoZW4gbm90IG1hdGNoZWQKICAgICB3aGVuIG1hdGNoZWQKIAogICAgIGNyZWF0ZVsgb3IgcmVwbGFjZV0gcHJvY2VkdXJlfGZ1bmN0aW9ufGV2ZW50CiAgICAgcmV0dXJucwotIAogCi0xLjIgVGV4dCBPYmplY3QgTW90aW9ucwkJICAgICAgICAJKnNxbC1vYmplY3QtbW90aW9ucyoKKworMS4yIFRleHQgT2JqZWN0IE1vdGlvbnMJCQkJKnNxbC1vYmplY3QtbW90aW9ucyoKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiBWaW0gaGFzIGEgbnVtYmVyIG9mIHByZWRlZmluZWQga2V5cyBmb3Igd29ya2luZyB3aXRoIHRleHQgfG9iamVjdC1tb3Rpb25zfC4KIFRoaXMgZmlsZXR5cGUgcGx1Z2luIGF0dGVtcHRzIHRvIHRyYW5zbGF0ZSB0aGVzZSBrZXlzIHRvIG1hcHMgd2hpY2ggbWFrZSBzZW5zZQpAQCAtOTIsMTMgKzkyLDEzIEBACiAKIFRoZSBmb2xsb3dpbmcgfE5vcm1hbHwgbW9kZSBhbmQgfFZpc3VhbHwgbW9kZSBtYXBzIGV4aXN0ICh3aGVuIHlvdSBlZGl0IGEgU1FMCiBmaWxlKTogPgotICAgIF1dICAgICAgICAgICAgICBtb3ZlIGZvcndhcmQgdG8gdGhlIG5leHQgJ2JlZ2luJwotICAgIFtbICAgICAgICAgICAgICBtb3ZlIGJhY2t3YXJkcyB0byB0aGUgcHJldmlvdXMgJ2JlZ2luJwotICAgIF1bICAgICAgICAgICAgICBtb3ZlIGZvcndhcmQgdG8gdGhlIG5leHQgJ2VuZCcKLSAgICBbXSAgICAgICAgICAgICAgbW92ZSBiYWNrd2FyZHMgdG8gdGhlIHByZXZpb3VzICdlbmQnCi0gCisgICAgXV0JCSAgICBtb3ZlIGZvcndhcmQgdG8gdGhlIG5leHQgJ2JlZ2luJworICAgIFtbCQkgICAgbW92ZSBiYWNrd2FyZHMgdG8gdGhlIHByZXZpb3VzICdiZWdpbicKKyAgICBdWwkJICAgIG1vdmUgZm9yd2FyZCB0byB0aGUgbmV4dCAnZW5kJworICAgIFtdCQkgICAgbW92ZSBiYWNrd2FyZHMgdG8gdGhlIHByZXZpb3VzICdlbmQnCiAKLTEuMyBQcmVkZWZpbmVkIE9iamVjdCBNb3Rpb25zICAgICAgICAgICAgICAgICAgICpzcWwtcHJlZGVmaW5lZC1vYmplY3RzKgorCisxLjMgUHJlZGVmaW5lZCBPYmplY3QgTW90aW9ucwkJCSpzcWwtcHJlZGVmaW5lZC1vYmplY3RzKgogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIE1vc3QgcmVsYXRpb25hbCBkYXRhYmFzZXMgc3VwcG9ydCB2YXJpb3VzIHN0YW5kYXJkIGZlYXR1cmVzLCB0YWJsZXMsIGluZGljZXMsCiB0cmlnZ2VycyBhbmQgc3RvcmVkIHByb2NlZHVyZXMuICBFYWNoIHZlbmRvciBhbHNvIGhhcyBhIHZhcmlldHkgb2YgcHJvcHJpZXRhcnkKQEAgLTEwOSw0NCArMTA5LDQ0IEBACiBmbGV4aWJsZSBhcyBwb3NzaWJsZSwgeW91IGNhbiBvdmVycmlkZSB0aGUgbGlzdCBvZiBvYmplY3RzIGZyb20gd2l0aGluIHlvdXIKIHx2aW1yY3wgd2l0aCB0aGUgZm9sbG93aW5nOiA+CiAgICAgbGV0IGc6ZnRwbHVnaW5fc3FsX29iamVjdHMgPSAnZnVuY3Rpb24scHJvY2VkdXJlLGV2ZW50LHRhYmxlLHRyaWdnZXInIC4KLSAgICAgICAgICAgICAgICBcICcsc2NoZW1hLHNlcnZpY2UscHVibGljYXRpb24sZGF0YWJhc2UsZGF0YXR5cGUsZG9tYWluJyAuCi0gICAgICAgICAgICAgICAgXCAnLGluZGV4LHN1YnNjcmlwdGlvbixzeW5jaHJvbml6YXRpb24sdmlldyx2YXJpYWJsZScKLSAgICAgICAgICAgICAgICAgCisJCVwgJyxzY2hlbWEsc2VydmljZSxwdWJsaWNhdGlvbixkYXRhYmFzZSxkYXRhdHlwZSxkb21haW4nIC4KKwkJXCAnLGluZGV4LHN1YnNjcmlwdGlvbixzeW5jaHJvbml6YXRpb24sdmlldyx2YXJpYWJsZScKKwogVGhlIGZvbGxvd2luZyB8Tm9ybWFsfCBtb2RlIGFuZCB8VmlzdWFsfCBtb2RlIG1hcHMgaGF2ZSBiZWVuIGNyZWF0ZWQgd2hpY2ggdXNlCiB0aGUgYWJvdmUgbGlzdDogPgotICAgIF19ICAgICAgICAgICAgICBtb3ZlIGZvcndhcmQgdG8gdGhlIG5leHQgJ2NyZWF0ZSA8b2JqZWN0IG5hbWU+JwotICAgIFt7ICAgICAgICAgICAgICBtb3ZlIGJhY2t3YXJkIHRvIHRoZSBwcmV2aW91cyAnY3JlYXRlIDxvYmplY3QgbmFtZT4nCisgICAgXX0JCSAgICBtb3ZlIGZvcndhcmQgdG8gdGhlIG5leHQgJ2NyZWF0ZSA8b2JqZWN0IG5hbWU+JworICAgIFt7CQkgICAgbW92ZSBiYWNrd2FyZCB0byB0aGUgcHJldmlvdXMgJ2NyZWF0ZSA8b2JqZWN0IG5hbWU+JwogCiBSZXBlYXRlZGx5IHByZXNzaW5nIF19IHdpbGwgY3ljbGUgdGhyb3VnaCBlYWNoIG9mIHRoZXNlIGNyZWF0ZSBzdGF0ZW1lbnRzOiA+CiAgICAgY3JlYXRlIHRhYmxlIHQxICgKLSAgICAgICAgLi4uCisJLi4uCiAgICAgKTsKIAogICAgIGNyZWF0ZSBwcm9jZWR1cmUgcDEKICAgICBiZWdpbgotICAgICAgICAuLi4KKwkuLi4KICAgICBlbmQ7CiAKICAgICBjcmVhdGUgaW5kZXggaTEgb24gdDEgKGMxKTsKLSAKKwogVGhlIGRlZmF1bHQgc2V0dGluZyBmb3IgZzpmdHBsdWdpbl9zcWxfb2JqZWN0cyBpczogPgogICAgIGxldCBnOmZ0cGx1Z2luX3NxbF9vYmplY3RzID0gJ2Z1bmN0aW9uLHByb2NlZHVyZSxldmVudCwnIC4KLSAgICAgICAgICAgICAgICBcICdcXChleGlzdGluZ1xcXFx8Z2xvYmFsXFxzXFwrdGVtcG9yYXJ5XFxzXFwrXFwpXFxceywxfScgLgotICAgICAgICAgICAgICAgIFwgJ3RhYmxlLHRyaWdnZXInIC4KLSAgICAgICAgICAgICAgICBcICcsc2NoZW1hLHNlcnZpY2UscHVibGljYXRpb24sZGF0YWJhc2UsZGF0YXR5cGUsZG9tYWluJyAuCi0gICAgICAgICAgICAgICAgXCAnLGluZGV4LHN1YnNjcmlwdGlvbixzeW5jaHJvbml6YXRpb24sdmlldyx2YXJpYWJsZScKLSAKKwkJXCAnXFwoZXhpc3RpbmdcXFxcfGdsb2JhbFxcc1xcK3RlbXBvcmFyeVxcc1xcK1xcKVxcXHssMX0nIC4KKwkJXCAndGFibGUsdHJpZ2dlcicgLgorCQlcICcsc2NoZW1hLHNlcnZpY2UscHVibGljYXRpb24sZGF0YWJhc2UsZGF0YXR5cGUsZG9tYWluJyAuCisJCVwgJyxpbmRleCxzdWJzY3JpcHRpb24sc3luY2hyb25pemF0aW9uLHZpZXcsdmFyaWFibGUnCisKIFRoZSBhYm92ZSB3aWxsIGFsc28gaGFuZGxlIHRoZXNlIGNhc2VzOiA+CiAgICAgY3JlYXRlIHRhYmxlIHQxICgKLSAgICAgICAgLi4uCisJLi4uCiAgICAgKTsKICAgICBjcmVhdGUgZXhpc3RpbmcgdGFibGUgdDIgKAotICAgICAgICAuLi4KKwkuLi4KICAgICApOwogICAgIGNyZWF0ZSBnbG9iYWwgdGVtcG9yYXJ5IHRhYmxlIHQzICgKLSAgICAgICAgLi4uCisJLi4uCiAgICAgKTsKLSAKKwogQnkgZGVmYXVsdCwgdGhlIGZ0cGx1Z2luIG9ubHkgc2VhcmNoZXMgZm9yIENSRUFURSBzdGF0ZW1lbnRzLiAgWW91IGNhbiBhbHNvCiBvdmVycmlkZSB0aGlzIHZpYSB5b3VyIHx2aW1yY3wgd2l0aCB0aGUgZm9sbG93aW5nOiA+CiAgICAgbGV0IGc6ZnRwbHVnaW5fc3FsX3N0YXRlbWVudHMgPSAnY3JlYXRlLGFsdGVyJwpAQCAtMTU1LDQzICsxNTUsNDMgQEAKICAgICAxLiAgLS0KICAgICAyLiAgLy8KICAgICAzLiAgLyoKLSAgICAgICAgICoKLSAgICAgICAgICovCi0gICAgICAgICAgCisJICoKKwkgKi8KKwogVGhlIGZvbGxvd2luZyB8Tm9ybWFsfCBtb2RlIGFuZCB8VmlzdWFsfCBtb2RlIG1hcHMgaGF2ZSBiZWVuIGNyZWF0ZWQgdG8gd29yawogd2l0aCBjb21tZW50czogPgotICAgIF0iICAgICAgICAgICAgICBtb3ZlIGZvcndhcmQgdG8gdGhlIGJlZ2lubmluZyBvZiBhIGNvbW1lbnQKLSAgICBbIiAgICAgICAgICAgICAgbW92ZSBmb3J3YXJkIHRvIHRoZSBlbmQgb2YgYSBjb21tZW50CisgICAgXSIJCSAgICBtb3ZlIGZvcndhcmQgdG8gdGhlIGJlZ2lubmluZyBvZiBhIGNvbW1lbnQKKyAgICBbIgkJICAgIG1vdmUgZm9yd2FyZCB0byB0aGUgZW5kIG9mIGEgY29tbWVudAogCiAKIAotMS40IE1hY3JvcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKnNxbC1tYWNyb3MqCisxLjQgTWFjcm9zCQkJCQkgICAqc3FsLW1hY3JvcyoKIC0tLS0tLS0tLS0KIFZpbSdzIGZlYXR1cmUgdG8gZmluZCBtYWNybyBkZWZpbml0aW9ucywgfCdkZWZpbmUnfCwgaXMgc3VwcG9ydGVkIHVzaW5nIHRoaXMKIHJlZ3VsYXIgZXhwcmVzc2lvbjogPgogICAgIFxjXDxcKFZBUklBQkxFXHxERUNMQVJFXHxJTlx8T1VUXHxJTk9VVFwpXD4KLSAKKwogVGhpcyBhZGRyZXNzZXMgdGhlIGZvbGxvd2luZyBjb2RlOiA+CiAgICAgQ1JFQVRFIFZBUklBQkxFIG15VmFyMSBJTlRFR0VSOwogCiAgICAgQ1JFQVRFIFBST0NFRFVSRSBzcF90ZXN0KAotICAgICAgICBJTiBteVZhcjIgSU5URUdFUiwKLSAgICAgICAgT1VUIG15VmFyMyBDSEFSKDMwKSwKLSAgICAgICAgSU5PVVQgbXlWYXI0IE5VTUVSSUMoMjAsMCkKKwlJTiBteVZhcjIgSU5URUdFUiwKKwlPVVQgbXlWYXIzIENIQVIoMzApLAorCUlOT1VUIG15VmFyNCBOVU1FUklDKDIwLDApCiAgICAgKQogICAgIEJFR0lOCi0gICAgICAgIERFQ0xBUkUgbXlWYXI1IElOVEVHRVI7CisJREVDTEFSRSBteVZhcjUgSU5URUdFUjsKIAotICAgICAgICBTRUxFQ1QgYzEsIGMyLCBjMwotICAgICAgICAgIElOVE8gbXlWYXIyLCBteVZhcjMsIG15VmFyNAotICAgICAgICAgIEZST00gVDEKLSAgICAgICAgIFdIRVJFIGM0ID0gbXlWYXIxOworCVNFTEVDVCBjMSwgYzIsIGMzCisJICBJTlRPIG15VmFyMiwgbXlWYXIzLCBteVZhcjQKKwkgIEZST00gVDEKKwkgV0hFUkUgYzQgPSBteVZhcjE7CiAgICAgRU5EOwotIAorCiBQbGFjZSB5b3VyIGN1cnNvciBvbiAibXlWYXIxIiBvbiB0aGlzIGxpbmU6ID4KLSAgICAgICAgIFdIRVJFIGM0ID0gbXlWYXIxOwotICAgICAgICAgICAgICAgICAgICAgXgotIAorCSBXSEVSRSBjNCA9IG15VmFyMTsKKwkJICAgICBeCisKIFByZXNzIGFueSBvZiB0aGUgZm9sbG93aW5nIGtleXM6ID4KICAgICBbZAogICAgIFtECkBAIC0xOTksMTcgKzE5OSwxNyBAQAogCiAKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotMi4gU1FMIERpYWxlY3RzCSAgICAgICAgCQkJKnNxbC1kaWFsZWN0cyogKnNxbC10eXBlcyoKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpzeWJhc2UqICpUU1FMKiAqVHJhbnNhY3QtU1FMKgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKnNxbGFueXdoZXJlKiAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpvcmFjbGUqICpwbHNxbCogKnNxbGoqCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqc3Fsc2VydmVyKgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm15c3FsKiAqcG9zdGdyZXNzKiAqcHNxbCoKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICppbmZvcm1peCoKKzIuIFNRTCBEaWFsZWN0cwkJCQkJKnNxbC1kaWFsZWN0cyogKnNxbC10eXBlcyoKKwkJCQkJCSpzeWJhc2UqICpUU1FMKiAqVHJhbnNhY3QtU1FMKgorCQkJCQkJKnNxbGFueXdoZXJlKgorCQkJCQkJKm9yYWNsZSogKnBsc3FsKiAqc3FsaioKKwkJCQkJCSpzcWxzZXJ2ZXIqCisJCQkJCQkqbXlzcWwqICpwb3N0Z3Jlc3MqICpwc3FsKgorCQkJCQkJKmluZm9ybWl4KgogCiBBbGwgcmVsYXRpb25hbCBkYXRhYmFzZXMgc3VwcG9ydCBTUUwuICBUaGVyZSBpcyBhIHBvcnRpb24gb2YgU1FMIHRoYXQgaXMKIHBvcnRhYmxlIGFjcm9zcyB2ZW5kb3JzIChleC4gQ1JFQVRFIFRBQkxFLCBDUkVBVEUgSU5ERVgpLCBidXQgdGhlcmUgaXMgYQotZ3JlYXQgZGVhbCBvZiB2ZW5kb3Igc3BlY2lmaWMgZXh0ZW5zaW9ucyB0byBTUUwuICBPcmFjbGUgc3VwcG9ydHMgdGhlIAorZ3JlYXQgZGVhbCBvZiB2ZW5kb3Igc3BlY2lmaWMgZXh0ZW5zaW9ucyB0byBTUUwuICBPcmFjbGUgc3VwcG9ydHMgdGhlCiAiQ1JFQVRFIE9SIFJFUExBQ0UiIHN5bnRheCwgY29sdW1uIGRlZmF1bHRzIHNwZWNpZmllZCBpbiB0aGUgQ1JFQVRFIFRBQkxFCiBzdGF0ZW1lbnQgYW5kIHRoZSBwcm9jZWR1cmFsIGxhbmd1YWdlIChmb3Igc3RvcmVkIHByb2NlZHVyZXMgYW5kIHRyaWdnZXJzKS4KIApAQCAtMjI5LDEzICsyMjksMTMgQEAKIGJlIG5pY2UgdG8gc3BlY2lmeSBhIGRlZmF1bHQgaW4geW91ciB8dmltcmN8LgogCiAKLTIuMSBTUUxTZXRUeXBlCQkgICAgICAgIAkJKnNxbHNldHR5cGUqICpTUUxTZXRUeXBlKgorMi4xIFNRTFNldFR5cGUJCQkJCSpzcWxzZXR0eXBlKiAqU1FMU2V0VHlwZSoKIC0tLS0tLS0tLS0tLS0tCiBGb3IgdGhlIHBlb3BsZSB0aGF0IHdvcmsgd2l0aCBtYW55IGRpZmZlcmVudCBkYXRhYmFzZXMsIGl0IHdvdWxkIGJlIG5pY2UgdG8gYmUKIGFibGUgdG8gZmxpcCBiZXR3ZWVuIHRoZSB2YXJpb3VzIHZlbmRvcnMgcnVsZXMgKGluZGVudCwgc3ludGF4KSBvbiBhIHBlcgogYnVmZmVyIGJhc2lzLCBhdCBhbnkgdGltZS4gIFRoZSBmdHBsdWdpbi9zcWwudmltIGZpbGUgZGVmaW5lcyB0aGlzIGZ1bmN0aW9uOiA+CiAgICAgU1FMU2V0VHlwZQotIAorCiBFeGVjdXRpbmcgdGhpcyBmdW5jdGlvbiB3aXRob3V0IGFueSBwYXJhbWV0ZXJzIHdpbGwgc2V0IHRoZSBpbmRlbnQgYW5kIHN5bnRheAogc2NyaXB0cyBiYWNrIHRvIHRoZWlyIGRlZmF1bHRzLCBzZWUgfHNxbC10eXBlLWRlZmF1bHR8LiAgSWYgeW91IGhhdmUgdHVybmVkCiBvZmYgVmkncyBjb21wYXRpYmlsaXR5IG1vZGUsIHwnY29tcGF0aWJsZSd8LCB5b3UgY2FuIHVzZSB0aGUgPFRhYj4ga2V5IHRvCkBAIC0yNDcsMTkgKzI0NywxOSBAQAogc2VhcmNoIHRoZSB8J3J1bnRpbWVwYXRoJ3wgZm9yIGFsbCBWaW0gc2NyaXB0cyB3aXRoIGEgbmFtZSBjb250YWluaW5nICdzcWwnLgogVGhpcyB0YWtlcyB0aGUgZ3Vlc3Mgd29yayBvdXQgb2YgdGhlIHNwZWxsaW5nIG9mIHRoZSBuYW1lcy4gIFRoZSBmb2xsb3dpbmcgYXJlCiBleGFtcGxlczogPgotICAgIDpTUUxTZXRUeXBlIAorICAgIDpTUUxTZXRUeXBlCiAgICAgOlNRTFNldFR5cGUgc3Fsb3JhY2xlCiAgICAgOlNRTFNldFR5cGUgc3FsYW55d2hlcmUKICAgICA6U1FMU2V0VHlwZSBzcWxpbmZvcm1peAogICAgIDpTUUxTZXRUeXBlIG15c3FsCi0gCisKIFRoZSBlYXNpZXN0IGFwcHJvYWNoIGlzIHRvIHRoZSB1c2UgPFRhYj4gY2hhcmFjdGVyIHdoaWNoIHdpbGwgZmlyc3QgY29tcGxldGUKIHRoZSBjb21tYW5kIG5hbWUgKFNRTFNldFR5cGUpLCBhZnRlciBhIHNwYWNlIGFuZCBhbm90aGVyIDxUYWI+LCBkaXNwbGF5IGEgbGlzdAogb2YgYXZhaWxhYmxlIFZpbSBzY3JpcHQgbmFtZXM6ID4KICAgICA6U1FMPFRhYj48c3BhY2U+PFRhYj4KLSAKIAotMi4yIFNRTCBEaWFsZWN0IERlZmF1bHQJCSAgICAgICAgCSpzcWwtdHlwZS1kZWZhdWx0KgorCisyLjIgU1FMIERpYWxlY3QgRGVmYXVsdAkJCQkqc3FsLXR5cGUtZGVmYXVsdCoKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiBBcyBtZW50aW9uZWQgZWFybGllciwgdGhlIGRlZmF1bHQgc3ludGF4IHJ1bGVzIGZvciBWaW0gaXMgYmFzZWQgb24gT3JhY2xlCiAoUEwvU1FMKS4gIFlvdSBjYW4gb3ZlcnJpZGUgdGhpcyBkZWZhdWx0IGJ5IHBsYWNpbmcgb25lIG9mIHRoZSBmb2xsb3dpbmcgaW4KQEAgLTI2NywxMSArMjY3LDExIEBACiAgICAgbGV0IGc6c3FsX3R5cGVfZGVmYXVsdCA9ICdzcWxhbnl3aGVyZScKICAgICBsZXQgZzpzcWxfdHlwZV9kZWZhdWx0ID0gJ3NxbGluZm9ybWl4JwogICAgIGxldCBnOnNxbF90eXBlX2RlZmF1bHQgPSAnbXlzcWwnCi0gCisKIElmIHlvdSBhZGRlZCB0aGUgZm9sbG93aW5nIHRvIHlvdXIgfHZpbXJjfDogPgogICAgIGxldCBnOnNxbF90eXBlX2RlZmF1bHQgPSAnc3FsaW5mb3JtaXgnCi0gCi1UaGUgbmV4dCB0aW1lIGVkaXQgYSBTUUwgZmlsZSB0aGUgZm9sbG93aW5nIHNjcmlwdHMgd2lsbCBiZSBhdXRvbWF0aWNhbGx5IAorCitUaGUgbmV4dCB0aW1lIGVkaXQgYSBTUUwgZmlsZSB0aGUgZm9sbG93aW5nIHNjcmlwdHMgd2lsbCBiZSBhdXRvbWF0aWNhbGx5CiBsb2FkZWQgYnkgVmltOiA+CiAgICAgZnRwbHVnaW4vc3FsLnZpbQogICAgIHN5bnRheC9zcWxpbmZvcm1peC52aW0KQEAgLTI4Myw3ICsyODMsNyBAQAogCiAKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotMy4gQWRkaW5nIG5ldyBTUUwgRGlhbGVjdHMJCSAgICAgICAgKnNxbC1hZGRpbmctZGlhbGVjdHMqCiszLiBBZGRpbmcgbmV3IFNRTCBEaWFsZWN0cwkJCSpzcWwtYWRkaW5nLWRpYWxlY3RzKgogCiBJZiB5b3UgYmVnaW4gd29ya2luZyB3aXRoIGEgU1FMIGRpYWxlY3Qgd2hpY2ggZG9lcyBub3QgaGF2ZSBhbnkgY3VzdG9taXphdGlvbnMKIGF2YWlsYWJsZSB3aXRoIHRoZSBkZWZhdWx0IFZpbSBkaXN0cmlidXRpb24geW91IGNhbiBjaGVjayBodHRwOi8vd3d3LnZpbS5vcmcKQEAgLTI5NCwyMiArMjk0LDIyIEBACiBJZiB5b3UgZGVjaWRlIHlvdSB3aXNoIHRvIGNyZWF0ZSBjdXN0b21pemF0aW9ucyBmb3IgdGhlIFNRTGl0ZSBkYXRhYmFzZSwgeW91CiBjYW4gY3JlYXRlIGFueSBvZiB0aGUgZm9sbG93aW5nOiA+CiAgICAgVW5peAotICAgICAgICB+Ly52aW0vc3ludGF4L3NxbGl0ZS52aW0KLSAgICAgICAgfi8udmltL2luZGVudC9zcWxpdGUudmltCisJfi8udmltL3N5bnRheC9zcWxpdGUudmltCisJfi8udmltL2luZGVudC9zcWxpdGUudmltCiAgICAgV2luZG93cwotICAgICAgICAkVklNL3ZpbWZpbGVzL3N5bnRheC9zcWxpdGUudmltCi0gICAgICAgICRWSU0vdmltZmlsZXMvaW5kZW50L3NxbGl0ZS52aW0KLSAKKwkkVklNL3ZpbWZpbGVzL3N5bnRheC9zcWxpdGUudmltCisJJFZJTS92aW1maWxlcy9pbmRlbnQvc3FsaXRlLnZpbQorCiBObyBjaGFuZ2VzIGFyZSBuZWNlc3NhcnkgdG8gdGhlIFNRTFNldFR5cGUgZnVuY3Rpb24uICBJdCB3aWxsIGF1dG9tYXRpY2FsbHkKLXBpY2t1cCB0aGUgbmV3IFNRTCBmaWxlcyBhbmQgbG9hZCB0aGVtIHdoZW4geW91IGlzc3VlIHRoZSBTUUxTZXRUeXBlIGNvbW1hbmQuIAorcGlja3VwIHRoZSBuZXcgU1FMIGZpbGVzIGFuZCBsb2FkIHRoZW0gd2hlbiB5b3UgaXNzdWUgdGhlIFNRTFNldFR5cGUgY29tbWFuZC4KIAogCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLTQuIE9NTkkgU1FMIENvbXBsZXRpb24gIAkJICAgICAgICAqc3FsLWNvbXBsZXRpb24qIAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm9tbmktc3FsLWNvbXBsZXRpb24qCis0LiBPTU5JIFNRTCBDb21wbGV0aW9uCQkJCSpzcWwtY29tcGxldGlvbioKKwkJCQkJCSpvbW5pLXNxbC1jb21wbGV0aW9uKgogCiBWaW0gNyBpbmNsdWRlcyBhIGNvZGUgY29tcGxldGlvbiBpbnRlcmZhY2UgYW5kIGZ1bmN0aW9ucyB3aGljaCBhbGxvd3MgcGx1Z2luCi1kZXZlbG9wZXJzIHRvIGJ1aWxkIGluIGNvZGUgY29tcGxldGlvbiBmb3IgYW55IGxhbmd1YWdlLiAgVmltIDcgaW5jbHVkZXMgCitkZXZlbG9wZXJzIHRvIGJ1aWxkIGluIGNvZGUgY29tcGxldGlvbiBmb3IgYW55IGxhbmd1YWdlLiAgVmltIDcgaW5jbHVkZXMKIGNvZGUgY29tcGxldGlvbiBmb3IgdGhlIFNRTCBsYW5ndWFnZS4KIAogVGhlcmUgYXJlIHR3byBtb2RlcyB0byB0aGUgU1FMIGNvbXBsZXRpb24gcGx1Z2luLCBzdGF0aWMgYW5kIGR5bmFtaWMuICBUaGUKQEAgLTMxOCw3ICszMTgsNyBAQAogZGlyZWN0bHkgZnJvbSBhIGRhdGFiYXNlLiAgVGhpcyBpbmNsdWRlcywgdGFibGUgbGlzdHMsIGNvbHVtbiBsaXN0cywKIHByb2NlZHVyZXMgbmFtZXMgYW5kIG1vcmUuCiAKLTQuMSBTdGF0aWMgTW9kZSAgCQkgICAgICAgICAgICAgICAgKnNxbC1jb21wbGV0aW9uLXN0YXRpYyoKKzQuMSBTdGF0aWMgTW9kZQkJCQkJKnNxbC1jb21wbGV0aW9uLXN0YXRpYyoKIC0tLS0tLS0tLS0tLS0tLQogVGhlIHN0YXRpYyBwb3B1cHMgY3JlYXRlZCBjb250YWluIGl0ZW1zIGRlZmluZWQgYnkgdGhlIGFjdGl2ZSBzeW50YXggcnVsZXMKIHdoaWxlIGVkaXRpbmcgYSBmaWxlIHdpdGggYSBmaWxldHlwZSBvZiBTUUwuICBUaGUgcGx1Z2luIGRlZmluZXMgKGJ5IGRlZmF1bHQpCkBAIC0zMzAsMzkgKzMzMCwzOSBAQAogICAgIGltYXAgPGJ1ZmZlcj4gPEMtQz5vIDxDLVw+PEMtTz46Y2FsbCBzcWxjb21wbGV0ZSNNYXAoJ3NxbE9wdGlvbicpPENSPjxDLVg+PEMtTz4KICAgICBpbWFwIDxidWZmZXI+IDxDLUM+VCA8Qy1cPjxDLU8+OmNhbGwgc3FsY29tcGxldGUjTWFwKCdzcWxUeXBlJyk8Q1I+PEMtWD48Qy1PPgogICAgIGltYXAgPGJ1ZmZlcj4gPEMtQz5zIDxDLVw+PEMtTz46Y2FsbCBzcWxjb21wbGV0ZSNNYXAoJ3NxbFN0YXRlbWVudCcpPENSPjxDLVg+PEMtTz4KLSAgCisKIFRoZSBzdGF0aWMgbWFwcyAod2hpY2ggYXJlIGJhc2VkIG9uIHRoZSBzeW50YXggaGlnaGxpZ2h0IGdyb3VwcykgZm9sbG93IHRoaXMKIGZvcm1hdDogPgogICAgIGltYXAgPGJ1ZmZlcj4gPEMtQz5rIDxDLVw+PEMtTz46Y2FsbCBzcWxjb21wbGV0ZSNNYXAoJ3NxbEtleXdvcmQnKTxDUj48Qy1YPjxDLU8+Ci0gCisKIFRoaXMgY29tbWFuZCBicmVha3MgZG93biBhczogPgotICAgIGltYXAgICAgICAgICAgICAgICAgICAgLSBDcmVhdGUgYW4gaW5zZXJ0IG1hcAotICAgIDxidWZmZXI+ICAgICAgICAgICAgICAgLSBPbmx5IGZvciB0aGlzIGJ1ZmZlcgotICAgIDxDLUM+ayAgICAgICAgICAgICAgICAgLSBZb3VyIGNob2ljZSBvZiBrZXkgbWFwCi0gICAgPEMtXD48Qy1PPiAgICAgICAgICAgICAtIEV4ZWN1dGUgb25lIGNvbW1hbmQsIHJldHVybiB0byBJbnNlcnQgbW9kZQorICAgIGltYXAJCSAgIC0gQ3JlYXRlIGFuIGluc2VydCBtYXAKKyAgICA8YnVmZmVyPgkJICAgLSBPbmx5IGZvciB0aGlzIGJ1ZmZlcgorICAgIDxDLUM+awkJICAgLSBZb3VyIGNob2ljZSBvZiBrZXkgbWFwCisgICAgPEMtXD48Qy1PPgkJICAgLSBFeGVjdXRlIG9uZSBjb21tYW5kLCByZXR1cm4gdG8gSW5zZXJ0IG1vZGUKICAgICA6Y2FsbCBzcWxjb21wbGV0ZSNNYXAoIC0gQWxsb3dzIHRoZSBTUUwgY29tcGxldGlvbiBwbHVnaW4gdG8gcGVyZm9ybSBzb21lCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhvdXNla2VlcGluZyBmdW5jdGlvbnMgdG8gYWxsb3cgaXQgdG8gYmUgdXNlZCBpbgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25qdW5jdGlvbiB3aXRoIG90aGVyIGNvbXBsZXRpb24gcGx1Z2lucy4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSW5kaWNhdGUgd2hpY2ggaXRlbSB5b3Ugd2FudCB0aGUgU1FMIGNvbXBsZXRpb24KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGx1Z2luIHRvIGNvbXBsZXRlLgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJbiB0aGlzIGNhc2Ugd2UgYXJlIGFza2luZyB0aGUgcGx1Z2luIHRvIGRpc3BsYXkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXRlbXMgZnJvbSB0aGUgc3ludGF4IGhpZ2hsaWdodCBncm91cAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnc3FsS2V5d29yZCcuCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFlvdSBjYW4gdmlldyBhIGxpc3Qgb2YgaGlnaGxpZ2h0IGdyb3VwIG5hbWVzIHRvCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNob29zZSBmcm9tIGJ5IGV4ZWN1dGluZyB0aGUKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDpzeW50YXggbGlzdAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb21tYW5kIHdoaWxlIGVkaXRpbmcgYSBTUUwgZmlsZS4KLSAgICAnc3FsS2V5d29yZCcgICAgICAgICAgIC0gRGlzcGxheSB0aGUgaXRlbXMgZm9yIHRoZSBzcWxLZXl3b3JkIGhpZ2hsaWdodAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBncm91cAotICAgICk8Q1I+ICAgICAgICAgICAgICAgICAgLSBFeGVjdXRlIHRoZSA6bGV0IGNvbW1hbmQKLSAgICA8Qy1YPjxDLU8+ICAgICAgICAgICAgIC0gVHJpZ2dlciB0aGUgc3RhbmRhcmQgb21uaSBjb21wbGV0aW9uIGtleSBzdHJva2UuCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBhc3NpbmcgaW4gJ3NxbEtleXdvcmQnIGluc3RydWN0cyB0aGUgU1FMCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbXBsZXRpb24gcGx1Z2luIHRvIHBvcHVsYXRlIHRoZSBwb3B1cCB3aXRoCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW1zIGZyb20gdGhlIHNxbEtleXdvcmQgaGlnaGxpZ2h0IGdyb3VwLiAgVGhlCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsdWdpbiB3aWxsIGFsc28gY2FjaGUgdGhpcyByZXN1bHQgdW50aWwgVmltIGlzCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3RhcnRlZC4gIFRoZSBzeW50YXggbGlzdCBpcyByZXRyaWV2ZWQgdXNpbmcKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlIHN5bnRheGNvbXBsZXRlIHBsdWdpbi4KLSAKKwkJCSAgICAgaG91c2VrZWVwaW5nIGZ1bmN0aW9ucyB0byBhbGxvdyBpdCB0byBiZSB1c2VkIGluCisJCQkgICAgIGNvbmp1bmN0aW9uIHdpdGggb3RoZXIgY29tcGxldGlvbiBwbHVnaW5zLgorCQkJICAgICBJbmRpY2F0ZSB3aGljaCBpdGVtIHlvdSB3YW50IHRoZSBTUUwgY29tcGxldGlvbgorCQkJICAgICBwbHVnaW4gdG8gY29tcGxldGUuCisJCQkgICAgIEluIHRoaXMgY2FzZSB3ZSBhcmUgYXNraW5nIHRoZSBwbHVnaW4gdG8gZGlzcGxheQorCQkJICAgICBpdGVtcyBmcm9tIHRoZSBzeW50YXggaGlnaGxpZ2h0IGdyb3VwCisJCQkgICAgICdzcWxLZXl3b3JkJy4KKwkJCSAgICAgWW91IGNhbiB2aWV3IGEgbGlzdCBvZiBoaWdobGlnaHQgZ3JvdXAgbmFtZXMgdG8KKwkJCSAgICAgY2hvb3NlIGZyb20gYnkgZXhlY3V0aW5nIHRoZQorCQkJCSA6c3ludGF4IGxpc3QKKwkJCSAgICAgY29tbWFuZCB3aGlsZSBlZGl0aW5nIGEgU1FMIGZpbGUuCisgICAgJ3NxbEtleXdvcmQnCSAgIC0gRGlzcGxheSB0aGUgaXRlbXMgZm9yIHRoZSBzcWxLZXl3b3JkIGhpZ2hsaWdodAorCQkJICAgICBncm91cAorICAgICk8Q1I+CQkgICAtIEV4ZWN1dGUgdGhlIDpsZXQgY29tbWFuZAorICAgIDxDLVg+PEMtTz4JCSAgIC0gVHJpZ2dlciB0aGUgc3RhbmRhcmQgb21uaSBjb21wbGV0aW9uIGtleSBzdHJva2UuCisJCQkgICAgIFBhc3NpbmcgaW4gJ3NxbEtleXdvcmQnIGluc3RydWN0cyB0aGUgU1FMCisJCQkgICAgIGNvbXBsZXRpb24gcGx1Z2luIHRvIHBvcHVsYXRlIHRoZSBwb3B1cCB3aXRoCisJCQkgICAgIGl0ZW1zIGZyb20gdGhlIHNxbEtleXdvcmQgaGlnaGxpZ2h0IGdyb3VwLiAgVGhlCisJCQkgICAgIHBsdWdpbiB3aWxsIGFsc28gY2FjaGUgdGhpcyByZXN1bHQgdW50aWwgVmltIGlzCisJCQkgICAgIHJlc3RhcnRlZC4gIFRoZSBzeW50YXggbGlzdCBpcyByZXRyaWV2ZWQgdXNpbmcKKwkJCSAgICAgdGhlIHN5bnRheGNvbXBsZXRlIHBsdWdpbi4KKwogVXNpbmcgdGhlICdzeW50YXgnIGtleXdvcmQgaXMgYSBzcGVjaWFsIGNhc2UuICBUaGlzIGluc3RydWN0cyB0aGUKIHN5bnRheGNvbXBsZXRlIHBsdWdpbiB0byByZXRyaWV2ZSBhbGwgc3ludGF4IGl0ZW1zLiAgU28gdGhpcyB3aWxsIGVmZmVjdGl2ZWx5CiB3b3JrIGZvciBhbnkgb2YgVmltJ3MgU1FMIHN5bnRheCBmaWxlcy4gIEF0IHRoZSB0aW1lIG9mIHdyaXRpbmcgdGhpcyBpbmNsdWRlcwpAQCAtMzcxLDc3ICszNzEsNzcgQEAKIAogSGVyZSBhcmUgc29tZSBleGFtcGxlcyBvZiB0aGUgZW50cmllcyB3aGljaCBhcmUgcHVsbGVkIGZyb20gdGhlIHN5bnRheCBmaWxlczogPgogICAgICBBbGwKLSAgICAgICAgIC0gQ29udGFpbnMgdGhlIGNvbnRlbnRzIG9mIGFsbCBzeW50YXggaGlnaGxpZ2h0IGdyb3VwcworCSAtIENvbnRhaW5zIHRoZSBjb250ZW50cyBvZiBhbGwgc3ludGF4IGhpZ2hsaWdodCBncm91cHMKICAgICAgU3RhdGVtZW50cwotICAgICAgICAgLSBTZWxlY3QsIEluc2VydCwgVXBkYXRlLCBEZWxldGUsIENyZWF0ZSwgQWx0ZXIsIC4uLgorCSAtIFNlbGVjdCwgSW5zZXJ0LCBVcGRhdGUsIERlbGV0ZSwgQ3JlYXRlLCBBbHRlciwgLi4uCiAgICAgIEZ1bmN0aW9ucwotICAgICAgICAgLSBNaW4sIE1heCwgVHJpbSwgUm91bmQsIERhdGUsIC4uLgorCSAtIE1pbiwgTWF4LCBUcmltLCBSb3VuZCwgRGF0ZSwgLi4uCiAgICAgIEtleXdvcmRzCi0gICAgICAgICAtIEluZGV4LCBEYXRhYmFzZSwgSGF2aW5nLCBHcm91cCwgV2l0aAorCSAtIEluZGV4LCBEYXRhYmFzZSwgSGF2aW5nLCBHcm91cCwgV2l0aAogICAgICBPcHRpb25zCi0gICAgICAgICAtIElzb2xhdGlvbl9sZXZlbCwgT25fZXJyb3IsIFF1YWxpZnlfb3duZXJzLCBGaXJlX3RyaWdnZXJzLCAuLi4KKwkgLSBJc29sYXRpb25fbGV2ZWwsIE9uX2Vycm9yLCBRdWFsaWZ5X293bmVycywgRmlyZV90cmlnZ2VycywgLi4uCiAgICAgIFR5cGVzCi0gICAgICAgICAtIEludGVnZXIsIENoYXIsIFZhcmNoYXIsIERhdGUsIERhdGVUaW1lLCBUaW1lc3RhbXAsIC4uLgotIAotIAotNC4yIER5bmFtaWMgTW9kZSAgCQkgICAgICAgICAgICAgICAgKnNxbC1jb21wbGV0aW9uLWR5bmFtaWMqCisJIC0gSW50ZWdlciwgQ2hhciwgVmFyY2hhciwgRGF0ZSwgRGF0ZVRpbWUsIFRpbWVzdGFtcCwgLi4uCisKKworNC4yIER5bmFtaWMgTW9kZQkJCQkqc3FsLWNvbXBsZXRpb24tZHluYW1pYyoKIC0tLS0tLS0tLS0tLS0tLS0KIER5bmFtaWMgbW9kZSBwb3B1bGF0ZXMgdGhlIHBvcHVwcyB3aXRoIGRhdGEgZGlyZWN0bHkgZnJvbSBhIGRhdGFiYXNlLiAgSW4KIG9yZGVyIGZvciB0aGUgZHluYW1pYyBmZWF0dXJlIHRvIGJlIGVuYWJsZWQgeW91IG11c3QgaGF2ZSB0aGUgZGJleHQudmltCiBwbHVnaW4gaW5zdGFsbGVkLCAoaHR0cDovL3ZpbS5zb3VyY2Vmb3JnZS5uZXQvc2NyaXB0LnBocD9zY3JpcHRfaWQ9MzU2KS4KIAotRHluYW1pYyBtb2RlIGlzIHVzZWQgYnkgc2V2ZXJhbCBmZWF0dXJlcyBvZiB0aGUgU1FMIGNvbXBsZXRpb24gcGx1Z2luLiAgCitEeW5hbWljIG1vZGUgaXMgdXNlZCBieSBzZXZlcmFsIGZlYXR1cmVzIG9mIHRoZSBTUUwgY29tcGxldGlvbiBwbHVnaW4uCiBBZnRlciBpbnN0YWxsaW5nIHRoZSBkYmV4dCBwbHVnaW4gc2VlIHRoZSBkYmV4dC10dXRvcmlhbCBmb3IgYWRkaXRpb25hbAogY29uZmlndXJhdGlvbiBhbmQgdXNhZ2UuICBUaGUgZGJleHQgcGx1Z2luIGFsbG93cyB0aGUgU1FMIGNvbXBsZXRpb24gcGx1Z2luCiB0byBkaXNwbGF5IGEgbGlzdCBvZiB0YWJsZXMsIHByb2NlZHVyZXMsIHZpZXdzIGFuZCBjb2x1bW5zLiA+CiAgICAgIFRhYmxlIExpc3QKLSAgICAgICAgIC0gQWxsIHRhYmxlcyBmb3IgYWxsIHNjaGVtYSBvd25lcnMKKwkgLSBBbGwgdGFibGVzIGZvciBhbGwgc2NoZW1hIG93bmVycwogICAgICBQcm9jZWR1cmUgTGlzdAotICAgICAgICAgLSBBbGwgc3RvcmVkIHByb2NlZHVyZXMgZm9yIGFsbCBzY2hlbWEgb3duZXJzCisJIC0gQWxsIHN0b3JlZCBwcm9jZWR1cmVzIGZvciBhbGwgc2NoZW1hIG93bmVycwogICAgICBWaWV3IExpc3QKLSAgICAgICAgIC0gQWxsIHN0b3JlZCBwcm9jZWR1cmVzIGZvciBhbGwgc2NoZW1hIG93bmVycworCSAtIEFsbCBzdG9yZWQgcHJvY2VkdXJlcyBmb3IgYWxsIHNjaGVtYSBvd25lcnMKICAgICAgQ29sdW1uIExpc3QKLSAgICAgICAgIC0gRm9yIHRoZSBzZWxlY3RlZCB0YWJsZSwgdGhlIGNvbHVtbnMgdGhhdCBhcmUgcGFydCBvZiB0aGUgdGFibGUKLSAKKwkgLSBGb3IgdGhlIHNlbGVjdGVkIHRhYmxlLCB0aGUgY29sdW1ucyB0aGF0IGFyZSBwYXJ0IG9mIHRoZSB0YWJsZQorCiBUbyBlbmFibGUgdGhlIHBvcHVwLCB3aGlsZSBpbiBJTlNFUlQgbW9kZSwgdXNlIHRoZSBmb2xsb3dpbmcga2V5IGNvbWJpbmF0aW9ucwotZm9yIGVhY2ggZ3JvdXAgKHdoZXJlIDxDLUM+IG1lYW5zIGhvbGQgdGhlIENUUkwga2V5IGRvd24gd2hpbGUgcHJlc3NpbmcgCitmb3IgZWFjaCBncm91cCAod2hlcmUgPEMtQz4gbWVhbnMgaG9sZCB0aGUgQ1RSTCBrZXkgZG93biB3aGlsZSBwcmVzc2luZwogdGhlIHNwYWNlIGJhcik6Ci0gICAgIFRhYmxlIExpc3QgICAgICAgICAgICAgLSA8Qy1DPnQKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAtIDxDLVg+PEMtTz4gKHRoZSBkZWZhdWx0IG1hcCBhc3N1bWVzIHRhYmxlcykKKyAgICAgVGFibGUgTGlzdAkJICAgIC0gPEMtQz50CisJCQkgICAgLSA8Qy1YPjxDLU8+ICh0aGUgZGVmYXVsdCBtYXAgYXNzdW1lcyB0YWJsZXMpCiAgICAgIFN0b3JlZCBQcm9jZWR1cmUgTGlzdCAgLSA8Qy1DPnAKLSAgICAgVmlldyBMaXN0ICAgICAgICAgICAgICAtIDxDLUM+dgotICAgICBDb2x1bW4gTGlzdCAgICAgICAgICAgIC0gPEMtQz5jCisgICAgIFZpZXcgTGlzdAkJICAgIC0gPEMtQz52CisgICAgIENvbHVtbiBMaXN0CSAgICAtIDxDLUM+YwogCiAgICAgIFdpbmRvd3MgcGxhdGZvcm0gb25seSAgLSBXaGVuIHZpZXdpbmcgYSBwb3B1cCB3aW5kb3cgZGlzcGxheWluZyB0aGUgbGlzdAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2YgdGFibGVzLCB5b3UgY2FuIHByZXNzIDxDLVJpZ2h0PiwgdGhpcyB3aWxsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXBsYWNlIHRoZSB0YWJsZSBjdXJyZW50bHkgaGlnaGxpZ2h0ZWQgd2l0aAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlIGNvbHVtbiBsaXN0IGZvciB0aGF0IHRhYmxlLgotICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0gV2hlbiB2aWV3aW5nIGEgcG9wdXAgd2luZG93IGRpc3BsYXlpbmcgdGhlIGxpc3QKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9mIGNvbHVtbnMsIHlvdSBjYW4gcHJlc3MgPEMtTGVmdD4sIHRoaXMgd2lsbAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVwbGFjZSB0aGUgY29sdW1uIGxpc3Qgd2l0aCB0aGUgbGlzdCBvZiB0YWJsZXMuCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgLSBUaGlzIGFsbG93cyB5b3UgdG8gcXVpY2tseSBkcmlsbCBkb3duIGludG8gYQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFibGUgdG8gdmlldyBpdCdzIGNvbHVtbnMgYW5kIGJhY2sgYWdhaW4uCi0gCisJCQkgICAgICBvZiB0YWJsZXMsIHlvdSBjYW4gcHJlc3MgPEMtUmlnaHQ+LCB0aGlzIHdpbGwKKwkJCSAgICAgIHJlcGxhY2UgdGhlIHRhYmxlIGN1cnJlbnRseSBoaWdobGlnaHRlZCB3aXRoCisJCQkgICAgICB0aGUgY29sdW1uIGxpc3QgZm9yIHRoYXQgdGFibGUuCisJCQkgICAgLSBXaGVuIHZpZXdpbmcgYSBwb3B1cCB3aW5kb3cgZGlzcGxheWluZyB0aGUgbGlzdAorCQkJICAgICAgb2YgY29sdW1ucywgeW91IGNhbiBwcmVzcyA8Qy1MZWZ0PiwgdGhpcyB3aWxsCisJCQkgICAgICByZXBsYWNlIHRoZSBjb2x1bW4gbGlzdCB3aXRoIHRoZSBsaXN0IG9mIHRhYmxlcy4KKwkJCSAgICAtIFRoaXMgYWxsb3dzIHlvdSB0byBxdWlja2x5IGRyaWxsIGRvd24gaW50byBhCisJCQkgICAgICB0YWJsZSB0byB2aWV3IGl0J3MgY29sdW1ucyBhbmQgYmFjayBhZ2Fpbi4KKwogVGhlIFNRTCBjb21wbGV0aW9uIHBsdWdpbiBjYWNoZXMgdmFyaW91cyBsaXN0cyB0aGF0IGFyZSBkaXNwbGF5ZWQgaW4KIHRoZSBwb3B1cCB3aW5kb3cuICBUaGlzIG1ha2VzIHRoZSByZS1kaXNwbGF5aW5nIG9mIHRoZXNlIGxpc3RzIHZlcnkKLWZhc3QuICBJZiBuZXcgdGFibGVzIG9yIGNvbHVtbnMgYXJlIGFkZGVkIHRvIHRoZSBkYXRhYmFzZSBpdCBtYXkgYmVjb21lIAorZmFzdC4gIElmIG5ldyB0YWJsZXMgb3IgY29sdW1ucyBhcmUgYWRkZWQgdG8gdGhlIGRhdGFiYXNlIGl0IG1heSBiZWNvbWUKIG5lY2Vzc2FyeSB0byBjbGVhciB0aGUgcGx1Z2lucyBjYWNoZS4gIFRoZSBkZWZhdWx0IG1hcCBmb3IgdGhpcyBpczogPgogICAgIGltYXAgPGJ1ZmZlcj4gPEMtQz5SIDxDLVw+PEMtTz46Y2FsbCBzcWxjb21wbGV0ZSNNYXAoJ1Jlc2V0Q2FjaGUnKTxDUj48Qy1YPjxDLU8+Ci0gCi0gCisKKwogNC4zIFNRTCBUdXRvcmlhbAkJCQkqc3FsLWNvbXBsZXRpb24tdHV0b3JpYWwqCiAtLS0tLS0tLS0tLS0tLS0tCi0gCisKIFRoaXMgdHV0b3JpYWwgaXMgZGVzaWduZWQgdG8gdGFrZSB5b3UgdGhyb3VnaCB0aGUgY29tbW9uIGZlYXR1cmVzIG9mIHRoZSBTUUwKIGNvbXBsZXRpb24gcGx1Z2luIHNvIHRoYXQ6ID4KICAgICAgYSkgWW91IGdhaW4gZmFtaWxpYXJpdHkgd2l0aCB0aGUgcGx1Z2luCiAgICAgIGIpIFlvdSBhcmUgaW50cm9kdWNlZCB0byBzb21lIG9mIHRoZSBtb3JlIGNvbW1vbiBmZWF0dXJlcwogICAgICBjKSBTaG93IGhvdyB0byBjdXN0b21pemUgaXQgdG8geW91ciBwcmVmZXJlbmNlcwogICAgICBkKSBEZW1vbnN0cmF0ZSAiQmVzdCBvZiBVc2UiIG9mIHRoZSBwbHVnaW4gKGVhc2llc3Qgd2F5IHRvIGNvbmZpZ3VyZSkuCi0gCisKIEZpcnN0LCBjcmVhdGUgYSBuZXcgYnVmZmVyOiA+CiAgICAgIDplIHR1dG9yaWFsLnNxbAotIAorCiAKIFN0YXRpYyBmZWF0dXJlcwogLS0tLS0tLS0tLS0tLS0tCkBAIC00NTAsOCArNDUwLDggQEAKIEF0IHRoaXMgcG9pbnQsIHlvdSBjYW4gcGFnZSBkb3duIHRocm91Z2ggdGhlIGxpc3QgdW50aWwgeW91IGZpbmQgInNlbGVjdCIuCiBJZiB5b3UgYXJlIGZhbWlsaWFyIHdpdGggdGhlIGl0ZW0geW91IGFyZSBsb29raW5nIGZvciwgZm9yIGV4YW1wbGUgeW91IGtub3cKIHRoZSBzdGF0ZW1lbnQgYmVnaW5zIHdpdGggdGhlIGxldHRlciAicyIuICBZb3UgY2FuIHR5cGUgYWhlYWQgKHdpdGhvdXQgdGhlCi1xdW90ZXMpICJzZSIgdGhlbiBwcmVzczogCi0gICAgPEMtU3BhY3Q+dCAKK3F1b3RlcykgInNlIiB0aGVuIHByZXNzOgorICAgIDxDLVNwYWNlPnQKIEFzc3VtaW5nICJzZWxlY3QiIGlzIGhpZ2hsaWdodGVkIGluIHRoZSBwb3B1cCBsaXN0IHByZXNzIDxFbnRlcj4gdG8gY2hvb3NlCiB0aGUgZW50cnkuICBOb3cgdHlwZToKICAgICAqIGZyPEMtQz5hIChzaG93IGFsbCBzeW50YXggaXRlbXMpCkBAIC00NjIsMTIgKzQ2MiwxMiBAQAogZGVwZW5kaW5nIG9uIHRoZSBzeW50YXggZmlsZSB5b3UgYXJlIHVzaW5nLiAgVGhlIFNRTCBBbnl3aGVyZSBzeW50YXggZmlsZQogKHNxbGFueXdoZXJlLnZpbSkgaGFzIHN1cHBvcnQgZm9yIHRoaXM6ID4KICAgICAgQkVHSU4KLSAgICAgICAgREVDTEFSRSBjdXN0b21lcl9pZCA8Qy1DPlQgPC0tIENob29zZSBhIHR5cGUgZnJvbSB0aGUgbGlzdAotICAKKwlERUNMQVJFIGN1c3RvbWVyX2lkIDxDLUM+VCA8LS0gQ2hvb3NlIGEgdHlwZSBmcm9tIHRoZSBsaXN0CisKIAogRHluYW1pYyBmZWF0dXJlcwogLS0tLS0tLS0tLS0tLS0tLQotVG8gdGFrZSBhZHZhbnRhZ2Ugb2YgdGhlIGR5bmFtaWMgZmVhdHVyZXMgeW91IG11c3QgZmlyc3QgaW5zdGFsbCB0aGUgCitUbyB0YWtlIGFkdmFudGFnZSBvZiB0aGUgZHluYW1pYyBmZWF0dXJlcyB5b3UgbXVzdCBmaXJzdCBpbnN0YWxsIHRoZQogZGJleHQudmltIHBsdWdpbiAoaHR0cDovL3ZpbS5zb3VyY2Vmb3JnZS5uZXQvc2NyaXB0LnBocD9zY3JpcHRfaWQ9MzU2KS4gIEl0CiBhbHNvIGNvbWVzIHdpdGggYSB0dXRvcmlhbC4gIEZyb20gdGhlIFNRTCBjb21wbGV0aW9uIHBsdWdpbidzIHBlcnNwZWN0aXZlLAogdGhlIG1haW4gZmVhdHVyZSBkYmV4dCBwcm92aWRlcyBpcyBhIGNvbm5lY3Rpb24gdG8gYSBkYXRhYmFzZS4gIGRiZXh0CkBAIC00NzcsMjQgKzQ3NywyNCBAQAogCiBXaGF0IGZvbGxvd3MgYXNzdW1lcyBkYmV4dC52aW0gaGFzIGJlZW4gY29ycmVjdGx5IGNvbmZpZ3VyZWQsIGEgc2ltcGxlIHRlc3QKIGlzIHRvIHJ1biB0aGUgY29tbWFuZCwgOkRCTGlzdFRhYmxlLiAgSWYgYSBsaXN0IG9mIHRhYmxlcyBpcyBzaG93biwgeW91IGtub3cKLWRiZXh0LnZpbSBpcyB3b3JraW5nIGFzIGV4cGVjdGVkLiAgSWYgbm90LCBwbGVhc2UgY29uc3VsdCB0aGUgZGJleHQudHh0IAorZGJleHQudmltIGlzIHdvcmtpbmcgYXMgZXhwZWN0ZWQuICBJZiBub3QsIHBsZWFzZSBjb25zdWx0IHRoZSBkYmV4dC50eHQKIGRvY3VtZW50YXRpb24uCiAKIEFzc3VtaW5nIHlvdSBoYXZlIGZvbGxvd2VkIHRoZSBkYmV4dC10dXRvcmlhbCB5b3UgY2FuIHByZXNzIDxDLUM+dCB0bwogZGlzcGxheSBhIGxpc3Qgb2YgdGFibGVzLiAgVGhlcmUgaXMgYSBkZWxheSB3aGlsZSBkYmV4dCBpcyBjcmVhdGluZyB0aGUgdGFibGUKLWxpc3QuICBBZnRlciB0aGUgbGlzdCBpcyBkaXNwbGF5ZWQgcHJlc3MgPEMtVz4uICBUaGlzIHdpbGwgcmVtb3ZlIGJvdGggdGhlIAorbGlzdC4gIEFmdGVyIHRoZSBsaXN0IGlzIGRpc3BsYXllZCBwcmVzcyA8Qy1XPi4gIFRoaXMgd2lsbCByZW1vdmUgYm90aCB0aGUKIHBvcHVwIHdpbmRvdyBhbmQgdGhlIHRhYmxlIG5hbWUgYWxyZWFkeSBjaG9zZW4gd2hlbiB0aGUgbGlzdCBiZWNhbWUgYWN0aXZlLiA+Ci0gCisKICA0LjMuMSBUYWJsZSBDb21wbGV0aW9uOgkJCSpzcWwtY29tcGxldGlvbi10YWJsZXMqCi0gCisKIFByZXNzIDxDLUM+dCB0byBkaXNwbGF5IGEgbGlzdCBvZiB0YWJsZXMgZnJvbSB3aXRoaW4gdGhlIGRhdGFiYXNlIHlvdQotaGF2ZSBjb25uZWN0ZWQgdmlhIHRoZSBkYmV4dCBwbHVnaW4uICAKK2hhdmUgY29ubmVjdGVkIHZpYSB0aGUgZGJleHQgcGx1Z2luLgogTk9URTogQWxsIG9mIHRoZSBTUUwgY29tcGxldGlvbiBwb3B1cHMgc3VwcG9ydCB0eXBpbmcgYSBwcmVmaXggYmVmb3JlIHByZXNzaW5nCiB0aGUga2V5IG1hcC4gIFRoaXMgd2lsbCBsaW1pdCB0aGUgY29udGVudHMgb2YgdGhlIHBvcHVwIHdpbmRvdyB0byBqdXN0IGl0ZW1zCiBiZWdpbm5pbmcgd2l0aCB0aG9zZSBjaGFyYWN0ZXJzLiAgPgotIAorCiAgNC4zLjIgQ29sdW1uIENvbXBsZXRpb246CQkJKnNxbC1jb21wbGV0aW9uLWNvbHVtbnMqCi0gCisKIFRoZSBTUUwgY29tcGxldGlvbiBwbHVnaW4gY2FuIGFsc28gZGlzcGxheSBhIGxpc3Qgb2YgY29sdW1ucyBmb3IgcGFydGljdWxhcgogdGFibGVzLiAgVGhlIGNvbHVtbiBjb21wbGV0aW9uIGlzIHRyaWdnZXIgdmlhIDxDLUM+Yy4KIApAQCAtNTA2LDY0ICs1MDYsNjQgQEAKIGRldGFpbHMgb24gd2hlcmUgdG8gY3JlYXRlIHRoaXMgaW1hcCk6ID4KICAgICBpbWFwIDxidWZmZXI+IDx5b3VyX2tleXN0cm9rZT4gPEMtUj49c3FsY29tcGxldGUjRHJpbGxJbnRvVGFibGUoKTxDUj4KICAgICBpbWFwIDxidWZmZXI+IDx5b3VyX2tleXN0cm9rZT4gPEMtWT48Qy1cPjxDLU8+OmNhbGwgc3FsY29tcGxldGUjTWFwKCdjb2x1bW4nKTxDUj48Qy1YPjxDLU8+Ci0gCisKIEV4YW1wbGUgb2YgdXNpbmcgY29sdW1uIGNvbXBsZXRpb246Ci0gICAgIC0gUHJlc3MgPEMtQz50IGFnYWluIHRvIGRpc3BsYXkgdGhlIGxpc3Qgb2YgdGFibGVzLiAgCisgICAgIC0gUHJlc3MgPEMtQz50IGFnYWluIHRvIGRpc3BsYXkgdGhlIGxpc3Qgb2YgdGFibGVzLgogICAgICAtIFdoZW4gdGhlIGxpc3QgaXMgZGlzcGxheWVkIGluIHRoZSBjb21wbGV0aW9uIHdpbmRvdywgcHJlc3MgPEMtUmlnaHQ+LAogICAgICAgIHRoaXMgd2lsbCByZXBsYWNlIHRoZSBsaXN0IG9mIHRhYmxlcywgd2l0aCBhIGxpc3Qgb2YgY29sdW1ucyBmb3IgdGhlCi0gICAgICAgdGFibGUgaGlnaGxpZ2h0ZWQgKGFmdGVyIHRoZSBzYW1lIHNob3J0IGRlbGF5KS4gIAorICAgICAgIHRhYmxlIGhpZ2hsaWdodGVkIChhZnRlciB0aGUgc2FtZSBzaG9ydCBkZWxheSkuCiAgICAgIC0gSWYgeW91IHByZXNzIDxDLUxlZnQ+LCB0aGlzIHdpbGwgYWdhaW4gcmVwbGFjZSB0aGUgY29sdW1uIGxpc3Qgd2l0aCB0aGUKICAgICAgICBsaXN0IG9mIHRhYmxlcy4gIFRoaXMgYWxsb3dzIHlvdSB0byBkcmlsbCBpbnRvIHRhYmxlcyBhbmQgY29sdW1uIGxpc3RzCi0gICAgICAgdmVyeSBxdWlja2x5LiAgCisgICAgICAgdmVyeSBxdWlja2x5LgogICAgICAtIFByZXNzIDxDLVJpZ2h0PiBhZ2FpbiB3aGlsZSB0aGUgc2FtZSB0YWJsZSBpcyBoaWdobGlnaHRlZC4gIFlvdSB3aWxsCiAgICAgICAgbm90aWNlIHRoZXJlIGlzIG5vIGRlbGF5IHNpbmNlIHRoZSBjb2x1bW4gbGlzdCBoYXMgYmVlbiBjYWNoZWQuICBJZiB5b3UKICAgICAgICBjaGFuZ2UgdGhlIHNjaGVtYSBvZiBhIGNhY2hlZCB0YWJsZSB5b3UgY2FuIHByZXNzIDxDLUM+Uiwgd2hpY2gKLSAgICAgICBjbGVhcnMgdGhlIFNRTCBjb21wbGV0aW9uIGNhY2hlLiAgCisgICAgICAgY2xlYXJzIHRoZSBTUUwgY29tcGxldGlvbiBjYWNoZS4KICAgICAgLSBOT1RFOiA8Qy1SaWdodD4gYW5kIDxDLUxlZnQ+IGhhdmUgYmVlbiBkZXNpZ25lZCB0byB3b3JrIHdoaWxlIHRoZQotICAgICAgIGNvbXBsZXRpb24gd2luZG93IGlzIGFjdGl2ZS4gIElmIHRoZSBjb21wbGV0aW9uIHBvcHVwIHdpbmRvdyBpcyAKKyAgICAgICBjb21wbGV0aW9uIHdpbmRvdyBpcyBhY3RpdmUuICBJZiB0aGUgY29tcGxldGlvbiBwb3B1cCB3aW5kb3cgaXMKICAgICAgICBub3QgYWN0aXZlLCBhIG5vcm1hbCA8Qy1SaWdodD4gb3IgPEMtTGVmdD4gd2lsbCBiZSBleGVjdXRlZC4KLSAKKwogTGV0cyBsb29rIGhvdyB3ZSBjYW4gYnVpbGQgYSBTUUwgc3RhdGVtZW50IGR5bmFtaWNhbGx5LiAgQSBzZWxlY3Qgc3RhdGVtZW50CiByZXF1aXJlcyBhIGxpc3Qgb2YgY29sdW1ucy4gIFRoZXJlIGFyZSB0d28gd2F5cyB0byBidWlsZCBhIGNvbHVtbiBsaXN0IHVzaW5nCiB0aGUgU1FMIGNvbXBsZXRpb24gcGx1Z2luLiA+CiAgICAgT25lIGNvbHVtbiBhdCBhIHRpbWU6CiA8ICAgICAgIDEuIEFmdGVyIHR5cGluZyBTRUxFQ1QgcHJlc3MgPEMtQz50IHRvIGRpc3BsYXkgYSBsaXN0IG9mIHRhYmxlcy4KLSAgICAgICAgMi4gQ2hvb3NlIGEgdGFibGUgZnJvbSB0aGUgbGlzdC4KLSAgICAgICAgMy4gUHJlc3MgPEMtUmlnaHQ+IHRvIGRpc3BsYXkgYSBsaXN0IG9mIGNvbHVtbnMuCi0gICAgICAgIDQuIENob29zZSB0aGUgY29sdW1uIGZyb20gdGhlIGxpc3QgYW5kIHByZXNzIGVudGVyLgotICAgICAgICA1LiBFbnRlciBhICIsIiBhbmQgcHJlc3MgPEMtQz5jLiAgR2VuZXJhdGluZyBhIGNvbHVtbiBsaXN0Ci0gICAgICAgICAgIGdlbmVyYWxseSByZXF1aXJlcyBoYXZpbmcgdGhlIGN1cnNvciBvbiBhIHRhYmxlIG5hbWUuICBUaGUgcGx1Z2luCi0gICAgICAgICAgIHVzZXMgdGhpcyBuYW1lIHRvIGRldGVybWluZSB3aGF0IHRhYmxlIHRvIHJldHJpZXZlIHRoZSBjb2x1bW4gbGlzdC4gIAotICAgICAgICAgICBJbiB0aGlzIHN0ZXAsIHNpbmNlIHdlIGFyZSBwcmVzc2luZyA8Qy1DPmMgd2l0aG91dCB0aGUgY3Vyc29yIAotICAgICAgICAgICBvbiBhIHRhYmxlIG5hbWUgdGhlIGNvbHVtbiBsaXN0IGRpc3BsYXllZCB3aWxsIGJlIGZvciB0aGUgcHJldmlvdXMgCi0gICAgICAgICAgIHRhYmxlLiAgQ2hvb3NlIGEgZGlmZmVyZW50IGNvbHVtbiBhbmQgbW92ZSBvbi4gCi0gICAgICAgIDYuIFJlcGVhdCBzdGVwIDUgYXMgb2Z0ZW4gYXMgbmVjZXNzYXJ5LiA+Ci0gICAgQWxsIGNvbHVtbnMgZm9yIGEgdGFibGU6IAotPCAgICAgICAxLiBBZnRlciB0eXBpbmcgU0VMRUNUIHByZXNzIDxDLUM+dCB0byBkaXNwbGF5IGEgbGlzdCBvZiB0YWJsZXMuCi0gICAgICAgIDIuIEhpZ2hsaWdodCB0aGUgdGFibGUgeW91IG5lZWQgdGhlIGNvbHVtbiBsaXN0IGZvci4KLSAgICAgICAgMy4gUHJlc3MgPEVudGVyPiB0byBjaG9vc2UgdGhlIHRhYmxlIGZyb20gdGhlIGxpc3QuCi0gICAgICAgIDQuIFByZXNzIDxDLUM+bCB0byByZXF1ZXN0IGEgY29tbWEgc2VwYXJhdGVkIGxpc3Qgb2YgYWxsIGNvbHVtbnMKLSAgICAgICAgICAgZm9yIHRoaXMgdGFibGUuCi0gICAgICAgIDUuIEJhc2VkIG9uIHRoZSB0YWJsZSBuYW1lIGNob3NlbiBpbiBzdGVwIDMsIHRoZSBwbHVnaW4gYXR0ZW1wdHMgdG8KLSAgICAgICAgICAgZGVjaWRlIG9uIGEgcmVhc29uYWJsZSB0YWJsZSBhbGlhcy4gIFlvdSBhcmUgdGhlbiBwcm9tcHRlZCB0bwotICAgICAgICAgICBlaXRoZXIgYWNjZXB0IG9mIGNoYW5nZSB0aGUgYWxpYXMuICBQcmVzcyBPSy4KLSAgICAgICAgNi4gVGhlIHRhYmxlIG5hbWUgaXMgcmVwbGFjZWQgd2l0aCB0aGUgY29sdW1uIGxpc3Qgb2YgdGhlIHRhYmxlIGlzCi0gICAgICAgICAgIHJlcGxhY2VkIHdpdGggdGhlIGNvbW1hIHNlcGFyYXRlIGxpc3Qgb2YgY29sdW1ucyB3aXRoIHRoZSBhbGlhcwotICAgICAgICAgICBwcmVwZW5kZWQgdG8gZWFjaCBvZiB0aGUgY29sdW1ucy4KLSAgICAgICAgNy4gU3RlcCAzIGFuZCA0IGNhbiBiZSByZXBsYWNlZCBieSBwcmVzc2luZyA8Qy1DPkwsIHdoaWNoIGhhcwotICAgICAgICAgICBhIDxDLVk+IGVtYmVkZGVkIGluIHRoZSBtYXAgdG8gY2hvb3NlIHRoZSBjdXJyZW50bHkgaGlnaGxpZ2h0ZWQgCi0gICAgICAgICAgIHRhYmxlIGluIHRoZSBsaXN0LgorCTIuIENob29zZSBhIHRhYmxlIGZyb20gdGhlIGxpc3QuCisJMy4gUHJlc3MgPEMtUmlnaHQ+IHRvIGRpc3BsYXkgYSBsaXN0IG9mIGNvbHVtbnMuCisJNC4gQ2hvb3NlIHRoZSBjb2x1bW4gZnJvbSB0aGUgbGlzdCBhbmQgcHJlc3MgZW50ZXIuCisJNS4gRW50ZXIgYSAiLCIgYW5kIHByZXNzIDxDLUM+Yy4gIEdlbmVyYXRpbmcgYSBjb2x1bW4gbGlzdAorCSAgIGdlbmVyYWxseSByZXF1aXJlcyBoYXZpbmcgdGhlIGN1cnNvciBvbiBhIHRhYmxlIG5hbWUuICBUaGUgcGx1Z2luCisJICAgdXNlcyB0aGlzIG5hbWUgdG8gZGV0ZXJtaW5lIHdoYXQgdGFibGUgdG8gcmV0cmlldmUgdGhlIGNvbHVtbiBsaXN0LgorCSAgIEluIHRoaXMgc3RlcCwgc2luY2Ugd2UgYXJlIHByZXNzaW5nIDxDLUM+YyB3aXRob3V0IHRoZSBjdXJzb3IKKwkgICBvbiBhIHRhYmxlIG5hbWUgdGhlIGNvbHVtbiBsaXN0IGRpc3BsYXllZCB3aWxsIGJlIGZvciB0aGUgcHJldmlvdXMKKwkgICB0YWJsZS4gIENob29zZSBhIGRpZmZlcmVudCBjb2x1bW4gYW5kIG1vdmUgb24uCisJNi4gUmVwZWF0IHN0ZXAgNSBhcyBvZnRlbiBhcyBuZWNlc3NhcnkuID4KKyAgICBBbGwgY29sdW1ucyBmb3IgYSB0YWJsZToKKzwJMS4gQWZ0ZXIgdHlwaW5nIFNFTEVDVCBwcmVzcyA8Qy1DPnQgdG8gZGlzcGxheSBhIGxpc3Qgb2YgdGFibGVzLgorCTIuIEhpZ2hsaWdodCB0aGUgdGFibGUgeW91IG5lZWQgdGhlIGNvbHVtbiBsaXN0IGZvci4KKwkzLiBQcmVzcyA8RW50ZXI+IHRvIGNob29zZSB0aGUgdGFibGUgZnJvbSB0aGUgbGlzdC4KKwk0LiBQcmVzcyA8Qy1DPmwgdG8gcmVxdWVzdCBhIGNvbW1hIHNlcGFyYXRlZCBsaXN0IG9mIGFsbCBjb2x1bW5zCisJICAgZm9yIHRoaXMgdGFibGUuCisJNS4gQmFzZWQgb24gdGhlIHRhYmxlIG5hbWUgY2hvc2VuIGluIHN0ZXAgMywgdGhlIHBsdWdpbiBhdHRlbXB0cyB0bworCSAgIGRlY2lkZSBvbiBhIHJlYXNvbmFibGUgdGFibGUgYWxpYXMuCVlvdSBhcmUgdGhlbiBwcm9tcHRlZCB0bworCSAgIGVpdGhlciBhY2NlcHQgb2YgY2hhbmdlIHRoZSBhbGlhcy4gIFByZXNzIE9LLgorCTYuIFRoZSB0YWJsZSBuYW1lIGlzIHJlcGxhY2VkIHdpdGggdGhlIGNvbHVtbiBsaXN0IG9mIHRoZSB0YWJsZSBpcworCSAgIHJlcGxhY2VkIHdpdGggdGhlIGNvbW1hIHNlcGFyYXRlIGxpc3Qgb2YgY29sdW1ucyB3aXRoIHRoZSBhbGlhcworCSAgIHByZXBlbmRlZCB0byBlYWNoIG9mIHRoZSBjb2x1bW5zLgorCTcuIFN0ZXAgMyBhbmQgNCBjYW4gYmUgcmVwbGFjZWQgYnkgcHJlc3NpbmcgPEMtQz5MLCB3aGljaCBoYXMKKwkgICBhIDxDLVk+IGVtYmVkZGVkIGluIHRoZSBtYXAgdG8gY2hvb3NlIHRoZSBjdXJyZW50bHkgaGlnaGxpZ2h0ZWQKKwkgICB0YWJsZSBpbiB0aGUgbGlzdC4KIAogVGhlcmUgaXMgYSBzcGVjaWFsIHByb3Zpc2lvbiB3aGVuIHdyaXRpbmcgc2VsZWN0IHN0YXRlbWVudHMuICBDb25zaWRlciB0aGUKIGZvbGxvd2luZyBzdGF0ZW1lbnQ6ID4KLSAgICAgc2VsZWN0ICogCisgICAgIHNlbGVjdCAqCiAgICAgICAgZnJvbSBjdXN0b21lciBjLAotICAgICAgICAgICAgY29udGFjdCBjbiwKLSAgICAgICAgICAgIGRlcGFydG1lbnQgYXMgZHAsCi0gICAgICAgICAgICBlbXBsb3llZSBlLAotICAgICAgICAgICAgc2l0ZV9vcHRpb25zIHNvCisJICAgIGNvbnRhY3QgY24sCisJICAgIGRlcGFydG1lbnQgYXMgZHAsCisJICAgIGVtcGxveWVlIGUsCisJICAgIHNpdGVfb3B0aW9ucyBzbwogICAgICAgd2hlcmUgYy4KLSAKKwogSW4gSU5TRVJUIG1vZGUgYWZ0ZXIgdHlwaW5nIHRoZSBmaW5hbCAiYy4iIHdoaWNoIGlzIGFuIGFsaWFzIGZvciB0aGUKICJjdXN0b21lciIgdGFibGUsIHlvdSBjYW4gcHJlc3MgZWl0aGVyIDxDLUM+YyBvciA8Qy1YPjxDLU8+LiAgVGhpcyB3aWxsCiBwb3B1cCBhIGxpc3Qgb2YgY29sdW1ucyBmb3IgdGhlIGN1c3RvbWVyIHRhYmxlLiAgSXQgZG9lcyB0aGlzIGJ5IGxvb2tpbmcgYmFjawpAQCAtNTcxLDE5ICs1NzEsMTkgQEAKIHNwZWNpZmllZCBpbiB0aGUgRlJPTSBjbGF1c2UuICBJbiB0aGlzIGNhc2UgaXQgbm90ZXMgdGhhdCBpbiB0aGUgc3RyaW5nCiAiY3VzdG9tZXIgYyIsICJjIiBpcyBhbiBhbGlhcyBmb3IgdGhlIGN1c3RvbWVyIHRhYmxlLiAgVGhlIG9wdGlvbmFsICJBUyIKIGtleXdvcmQgaXMgYWxzbyBzdXBwb3J0ZWQsICJjdXN0b21lciBBUyBjIi4gPgotIAotIAorCisKICA0LjMuMyBQcm9jZWR1cmUgQ29tcGxldGlvbjoJCQkqc3FsLWNvbXBsZXRpb24tcHJvY2VkdXJlcyoKLSAKKwogU2ltaWxhciB0byB0aGUgdGFibGUgbGlzdCwgPEMtQz5wLCB3aWxsIGRpc3BsYXkgYSBsaXN0IG9mIHN0b3JlZAogcHJvY2VkdXJlcyBzdG9yZWQgd2l0aGluIHRoZSBkYXRhYmFzZS4gPgotIAorCiAgNC4zLjQgVmlldyBDb21wbGV0aW9uOgkJCQkqc3FsLWNvbXBsZXRpb24tdmlld3MqCi0gCisKIFNpbWlsYXIgdG8gdGhlIHRhYmxlIGxpc3QsIDxDLUM+diwgd2lsbCBkaXNwbGF5IGEgbGlzdCBvZiB2aWV3cyBpbiB0aGUKIGRhdGFiYXNlLgogCi0gCisKIDQuNCBDb21wbGV0aW9uIEN1c3RvbWl6YXRpb24JCQkqc3FsLWNvbXBsZXRpb24tY3VzdG9taXphdGlvbioKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIApAQCAtNTkxLDYwICs1OTEsNjAgQEAKIHlvdXIgfHZpbXJjfDogPgogICAgIG9tbmlfc3FsX25vX2RlZmF1bHRfbWFwcwogPCAgICAgICAtIERlZmF1bHQ6IFRoaXMgdmFyaWFibGUgaXMgbm90IGRlZmluZWQKLSAgICAgICAgLSBJZiB0aGlzIHZhcmlhYmxlIGlzIGRlZmluZWQsIG5vIG1hcHMgYXJlIGNyZWF0ZWQgZm9yIE9NTkkKLSAgICAgICAgICBjb21wbGV0aW9uLiAgU2VlIHxzcWwtY29tcGxldGlvbi1tYXBzfCBmb3IgZnVydGhlciBkaXNjdXNzaW9uLgorCS0gSWYgdGhpcyB2YXJpYWJsZSBpcyBkZWZpbmVkLCBubyBtYXBzIGFyZSBjcmVhdGVkIGZvciBPTU5JCisJICBjb21wbGV0aW9uLiAgU2VlIHxzcWwtY29tcGxldGlvbi1tYXBzfCBmb3IgZnVydGhlciBkaXNjdXNzaW9uLgogPgogICAgIG9tbmlfc3FsX3VzZV90YmxfYWxpYXMKLTwgICAgICAgLSBEZWZhdWx0OiBhCi0gICAgICAgIC0gVGhpcyBzZXR0aW5nIGlzIG9ubHkgdXNlZCB3aGVuIGdlbmVyYXRpbmcgYSBjb21tYSBzZXBhcmF0ZWQKLSAgICAgICAgICBjb2x1bW4gbGlzdC4gIEJ5IGRlZmF1bHQgdGhlIG1hcCBpcyA8Qy1DPmwuICBXaGVuIGdlbmVyYXRpbmcKLSAgICAgICAgICBhIGNvbHVtbiBsaXN0LCBhbiBhbGlhcyBjYW4gYmUgcHJlcGVuZGVkIHRvIHRoZSBiZWdpbm5pbmcgb2YgZWFjaAotICAgICAgICAgIGNvbHVtbiwgZm9yIGV4YW1wbGU6ICBlLmVtcF9pZCwgZS5lbXBfbmFtZS4gIFRoaXMgb3B0aW9uIGhhcyB0aHJlZSAKLSAgICAgICAgICBzZXR0aW5nczogPgotICAgICAgICAgICAgICAgIG4gLSBkbyBub3QgdXNlIGFuIGFsaWFzCi0gICAgICAgICAgICAgICAgZCAtIHVzZSB0aGUgZGVmYXVsdCAoY2FsY3VsYXRlZCkgYWxpYXMKLSAgICAgICAgICAgICAgICBhIC0gYXNrIHRvIGNvbmZpcm0gdGhlIGFsaWFzIG5hbWUKKzwJLSBEZWZhdWx0OiBhCisJLSBUaGlzIHNldHRpbmcgaXMgb25seSB1c2VkIHdoZW4gZ2VuZXJhdGluZyBhIGNvbW1hIHNlcGFyYXRlZAorCSAgY29sdW1uIGxpc3QuCUJ5IGRlZmF1bHQgdGhlIG1hcCBpcyA8Qy1DPmwuICBXaGVuIGdlbmVyYXRpbmcKKwkgIGEgY29sdW1uIGxpc3QsIGFuIGFsaWFzIGNhbiBiZSBwcmVwZW5kZWQgdG8gdGhlIGJlZ2lubmluZyBvZiBlYWNoCisJICBjb2x1bW4sIGZvciBleGFtcGxlOgllLmVtcF9pZCwgZS5lbXBfbmFtZS4gIFRoaXMgb3B0aW9uIGhhcyB0aHJlZQorCSAgc2V0dGluZ3M6ID4KKwkJbiAtIGRvIG5vdCB1c2UgYW4gYWxpYXMKKwkJZCAtIHVzZSB0aGUgZGVmYXVsdCAoY2FsY3VsYXRlZCkgYWxpYXMKKwkJYSAtIGFzayB0byBjb25maXJtIHRoZSBhbGlhcyBuYW1lCiA8Ci0gICAgICAgICAgQW4gYWxpYXMgaXMgZGV0ZXJtaW5lZCBmb2xsb3dpbmcgYSBmZXcgcnVsZXM6Ci0gICAgICAgICAgICAgICAxLiAgSWYgdGhlIHRhYmxlIG5hbWUgaGFzIGFuICdfJywgdGhlbiB1c2UgaXQgYXMgYSBzZXBhcmF0b3I6ID4KLSAgICAgICAgICAgICAgICAgICBNWV9UQUJMRV9OQU1FIC0tPiBNVE4KLSAgICAgICAgICAgICAgICAgICBteV90YWJsZV9uYW1lIC0tPiBtdG4KLSAgICAgICAgICAgICAgICAgICBNeV90YWJsZV9OQU1FIC0tPiBNdE4KLTwgICAgICAgICAgICAgIDIuICBJZiB0aGUgdGFibGUgbmFtZSBkb2VzIE5PVCBjb250YWluIGFuICdfJywgYnV0IERPRVMgdXNlCi0gICAgICAgICAgICAgICAgICAgbWl4ZWQgY2FzZSB0aGVuIHRoZSBjYXNlIGlzIHVzZWQgYXMgYSBzZXBhcmF0b3I6ID4KLSAgICAgICAgICAgICAgICAgICBNeVRhYmxlTmFtZSAtLT4gTVROCi08ICAgICAgICAgICAgICAzLiAgSWYgdGhlIHRhYmxlIG5hbWUgZG9lcyBOT1QgY29udGFpbiBhbiAnXycsIGFuZCBkb2VzIE5PVCAKLSAgICAgICAgICAgICAgICAgICB1c2UgbWl4ZWQgY2FzZSB0aGVuIHRoZSBmaXJzdCBsZXR0ZXIgb2YgdGhlIHRhYmxlIGlzIHVzZWQ6ID4KLSAgICAgICAgICAgICAgICAgICBteXRhYmxlbmFtZSAtLT4gbQotICAgICAgICAgICAgICAgICAgIE1ZVEFCTEVOQU1FIC0tPiBNCi0gCisJICBBbiBhbGlhcyBpcyBkZXRlcm1pbmVkIGZvbGxvd2luZyBhIGZldyBydWxlczoKKwkgICAgICAgMS4gIElmIHRoZSB0YWJsZSBuYW1lIGhhcyBhbiAnXycsIHRoZW4gdXNlIGl0IGFzIGEgc2VwYXJhdG9yOiA+CisJCSAgIE1ZX1RBQkxFX05BTUUgLS0+IE1UTgorCQkgICBteV90YWJsZV9uYW1lIC0tPiBtdG4KKwkJICAgTXlfdGFibGVfTkFNRSAtLT4gTXROCis8CSAgICAgICAyLiAgSWYgdGhlIHRhYmxlIG5hbWUgZG9lcyBOT1QgY29udGFpbiBhbiAnXycsIGJ1dCBET0VTIHVzZQorCQkgICBtaXhlZCBjYXNlIHRoZW4gdGhlIGNhc2UgaXMgdXNlZCBhcyBhIHNlcGFyYXRvcjogPgorCQkgICBNeVRhYmxlTmFtZSAtLT4gTVROCis8CSAgICAgICAzLiAgSWYgdGhlIHRhYmxlIG5hbWUgZG9lcyBOT1QgY29udGFpbiBhbiAnXycsIGFuZCBkb2VzIE5PVAorCQkgICB1c2UgbWl4ZWQgY2FzZSB0aGVuIHRoZSBmaXJzdCBsZXR0ZXIgb2YgdGhlIHRhYmxlIGlzIHVzZWQ6ID4KKwkJICAgbXl0YWJsZW5hbWUgLS0+IG0KKwkJICAgTVlUQUJMRU5BTUUgLS0+IE0KKwogICAgIG9tbmlfc3FsX2lnbm9yZWNhc2UKLTwgICAgICAgLSBEZWZhdWx0OiBDdXJyZW50IHNldHRpbmcgZm9yfGlnbm9yZWNhc2V8Ci0gICAgICAgIC0gVmFsaWQgc2V0dGluZ3MgYXJlIDAgb3IgMS4gIAotICAgICAgICAtIFdoZW4gZW50ZXJpbmcgYSBmZXcgbGV0dGVycyBiZWZvcmUgaW5pdGlhdGluZyBjb21wbGV0aW9uLCB0aGUgbGlzdAotICAgICAgICAgIHdpbGwgYmUgZmlsdGVyZWQgdG8gZGlzcGxheSBvbmx5IHRoZSBlbnRyaWVzIHdoaWNoIGJlZ2luIHdpdGggdGhlCi0gICAgICAgICAgbGlzdCBvZiBjaGFyYWN0ZXJzLiAgV2hlbiB0aGlzIG9wdGlvbiBpcyBzZXQgdG8gMCwgdGhlIGxpc3Qgd2lsbCBiZQotICAgICAgICAgIGZpbHRlcmVkIHVzaW5nIGNhc2Ugc2Vuc2l0aXZpdHkuID4KLSAKKzwJLSBEZWZhdWx0OiBDdXJyZW50IHNldHRpbmcgZm9yfGlnbm9yZWNhc2V8CisJLSBWYWxpZCBzZXR0aW5ncyBhcmUgMCBvciAxLgorCS0gV2hlbiBlbnRlcmluZyBhIGZldyBsZXR0ZXJzIGJlZm9yZSBpbml0aWF0aW5nIGNvbXBsZXRpb24sIHRoZSBsaXN0CisJICB3aWxsIGJlIGZpbHRlcmVkIHRvIGRpc3BsYXkgb25seSB0aGUgZW50cmllcyB3aGljaCBiZWdpbiB3aXRoIHRoZQorCSAgbGlzdCBvZiBjaGFyYWN0ZXJzLiAgV2hlbiB0aGlzIG9wdGlvbiBpcyBzZXQgdG8gMCwgdGhlIGxpc3Qgd2lsbCBiZQorCSAgZmlsdGVyZWQgdXNpbmcgY2FzZSBzZW5zaXRpdml0eS4gPgorCiAgICAgb21uaV9zcWxfaW5jbHVkZV9vd25lcgotPCAgICAgICAtIERlZmF1bHQ6IDAsIHVubGVzcyBkYmV4dC52aW0gMy4wMCBoYXMgYmVlbiBpbnN0YWxsZWQKLSAgICAgICAgLSBWYWxpZCBzZXR0aW5ncyBhcmUgMCBvciAxLiAgCi0gICAgICAgIC0gV2hlbiBjb21wbGV0aW5nIHRhYmxlcywgcHJvY2VkdXJlIG9yIHZpZXdzIGFuZCB1c2luZyBkYmV4dC52aW0gMy4wMCAKLSAgICAgICAgICBvciBoaWdoZXIgdGhlIGxpc3Qgb2Ygb2JqZWN0cyB3aWxsIGFsc28gaW5jbHVkZSB0aGUgb3duZXIgbmFtZS4KLSAgICAgICAgICBXaGVuIGNvbXBsZXRpbmcgdGhlc2Ugb2JqZWN0cyBhbmQgb21uaV9zcWxfaW5jbHVkZV9vd25lciBpcyBlbmFibGVkCi0gICAgICAgICAgdGhlIG93bmVyIG5hbWUgd2lsbCBiZSBiZSByZXBsYWNlZC4gPgotIAorPAktIERlZmF1bHQ6IDAsIHVubGVzcyBkYmV4dC52aW0gMy4wMCBoYXMgYmVlbiBpbnN0YWxsZWQKKwktIFZhbGlkIHNldHRpbmdzIGFyZSAwIG9yIDEuCisJLSBXaGVuIGNvbXBsZXRpbmcgdGFibGVzLCBwcm9jZWR1cmUgb3Igdmlld3MgYW5kIHVzaW5nIGRiZXh0LnZpbSAzLjAwCisJICBvciBoaWdoZXIgdGhlIGxpc3Qgb2Ygb2JqZWN0cyB3aWxsIGFsc28gaW5jbHVkZSB0aGUgb3duZXIgbmFtZS4KKwkgIFdoZW4gY29tcGxldGluZyB0aGVzZSBvYmplY3RzIGFuZCBvbW5pX3NxbF9pbmNsdWRlX293bmVyIGlzIGVuYWJsZWQKKwkgIHRoZSBvd25lciBuYW1lIHdpbGwgYmUgYmUgcmVwbGFjZWQuID4KKwogICAgIG9tbmlfc3FsX3ByZWNhY2hlX3N5bnRheF9ncm91cHMKLTwgICAgICAgLSBEZWZhdWx0OiAKLSAgICAgICAgICBbJ3N5bnRheCcsJ3NxbEtleXdvcmQnLCdzcWxGdW5jdGlvbicsJ3NxbE9wdGlvbicsJ3NxbFR5cGUnLCdzcWxTdGF0ZW1lbnQnXQotICAgICAgICAtIHNxbGNvbXBsZXRlIGNhbiBiZSB1c2VkIGluIGNvbmp1bmN0aW9uIHdpdGggb3RoZXIgY29tcGxldGlvbgotICAgICAgICAgIHBsdWdpbnMuICBUaGlzIGlzIG91dGxpbmVkIGF0IHxzcWwtY29tcGxldGlvbi1maWxldHlwZXN8LiAgV2hlbiB0aGUgCi0gICAgICAgICAgZmlsZXR5cGUgaXMgY2hhbmdlZCB0ZW1wb3JhcmlseSB0byBTUUwsIHRoZSBzcWxjb21wbGV0aW9uIHBsdWdpbgotICAgICAgICAgIHdpbGwgY2FjaGUgdGhlIHN5bnRheCBncm91cHMgbGlzdGVkIGluIHRoZSBMaXN0IHNwZWNpZmllZCBpbiB0aGlzCi0gICAgICAgICAgb3B0aW9uLgorPAktIERlZmF1bHQ6CisJICBbJ3N5bnRheCcsJ3NxbEtleXdvcmQnLCdzcWxGdW5jdGlvbicsJ3NxbE9wdGlvbicsJ3NxbFR5cGUnLCdzcWxTdGF0ZW1lbnQnXQorCS0gc3FsY29tcGxldGUgY2FuIGJlIHVzZWQgaW4gY29uanVuY3Rpb24gd2l0aCBvdGhlciBjb21wbGV0aW9uCisJICBwbHVnaW5zLiAgVGhpcyBpcyBvdXRsaW5lZCBhdCB8c3FsLWNvbXBsZXRpb24tZmlsZXR5cGVzfC4gIFdoZW4gdGhlCisJICBmaWxldHlwZSBpcyBjaGFuZ2VkIHRlbXBvcmFyaWx5IHRvIFNRTCwgdGhlIHNxbGNvbXBsZXRpb24gcGx1Z2luCisJICB3aWxsIGNhY2hlIHRoZSBzeW50YXggZ3JvdXBzIGxpc3RlZCBpbiB0aGUgTGlzdCBzcGVjaWZpZWQgaW4gdGhpcworCSAgb3B0aW9uLgogPgotIAotNC41IFNRTCBNYXBzCSAgICAgICAgCQkJKnNxbC1jb21wbGV0aW9uLW1hcHMqCisKKzQuNSBTUUwgTWFwcwkJCQkJKnNxbC1jb21wbGV0aW9uLW1hcHMqCiAtLS0tLS0tLS0tLS0KIAogVGhlIGRlZmF1bHQgU1FMIG1hcHMgaGF2ZSBiZWVuIGRlc2NyaWJlZCBpbiBvdGhlciBzZWN0aW9ucyBvZiB0aGlzIGRvY3VtZW50IGluCkBAIC02NTYsOSArNjU2LDkgQEAKIGhpZ2hsaWdodGluZyBydWxlcy4gPgogICAgIDxDLUM+YQogPCAgICAgICAtIERpc3BsYXlzIGFsbCBTUUwgc3ludGF4IGl0ZW1zLiA+Ci0gICAgPEMtQz5rIAorICAgIDxDLUM+awogPCAgICAgICAtIERpc3BsYXlzIGFsbCBTUUwgc3ludGF4IGl0ZW1zIGRlZmluZWQgYXMgJ3NxbEtleXdvcmQnLiA+Ci0gICAgPEMtQz5mIAorICAgIDxDLUM+ZgogPCAgICAgICAtIERpc3BsYXlzIGFsbCBTUUwgc3ludGF4IGl0ZW1zIGRlZmluZWQgYXMgJ3NxbEZ1bmN0aW9uLiA+CiAgICAgPEMtQz5vCiA8ICAgICAgIC0gRGlzcGxheXMgYWxsIFNRTCBzeW50YXggaXRlbXMgZGVmaW5lZCBhcyAnc3FsT3B0aW9uJy4gPgpAQCAtNjcxLDcgKzY3MSw3IEBACiAtLS0tLS0tLS0tLS0KIFRoZXNlIGFyZSBtYXBzIHdoaWNoIHVzZSBwb3B1bGF0ZSB0aGUgY29tcGxldGlvbiBsaXN0IHVzaW5nIHRoZSBkYmV4dC52aW0KIHBsdWdpbi4gPgotICAgIDxDLUM+dCAgCisgICAgPEMtQz50CiA8ICAgICAgIC0gRGlzcGxheXMgYSBsaXN0IG9mIHRhYmxlcy4gPgogICAgIDxDLUM+cAogPCAgICAgICAtIERpc3BsYXlzIGEgbGlzdCBvZiBwcm9jZWR1cmVzLiA+CkBAIC02ODMsMzMgKzY4MywzMyBAQAogPCAgICAgICAtIERpc3BsYXlzIGEgY29tbWEgc2VwYXJhdGVkIGxpc3Qgb2YgY29sdW1ucyBmb3IgYSBzcGVjaWZpYyB0YWJsZS4gPgogICAgIDxDLUM+TAogPCAgICAgICAtIERpc3BsYXlzIGEgY29tbWEgc2VwYXJhdGVkIGxpc3Qgb2YgY29sdW1ucyBmb3IgYSBzcGVjaWZpYyB0YWJsZS4KLSAgICAgICAgICBUaGlzIHNob3VsZCBvbmx5IGJlIHVzZWQgd2hlbiB0aGUgY29tcGxldGlvbiB3aW5kb3cgaXMgYWN0aXZlLiA+CisJICBUaGlzIHNob3VsZCBvbmx5IGJlIHVzZWQgd2hlbiB0aGUgY29tcGxldGlvbiB3aW5kb3cgaXMgYWN0aXZlLiA+CiAgICAgPEMtUmlnaHQ+Ci08ICAgICAgIC0gRGlzcGxheXMgYSBsaXN0IG9mIGNvbHVtbnMgZm9yIHRoZSB0YWJsZSBjdXJyZW50bHkgaGlnaGxpZ2h0ZWQgaW4KLSAgICAgICAgICB0aGUgY29tcGxldGlvbiB3aW5kb3cuICA8Qy1SaWdodD4gaXMgbm90IHJlY29nbml6ZWQgb24gbW9zdCBVbml4Ci0gICAgICAgICAgc3lzdGVtcywgc28gdGhpcyBtYXBzIGlzIG9ubHkgY3JlYXRlZCBvbiB0aGUgV2luZG93cyBwbGF0Zm9ybS4KLSAgICAgICAgICBJZiB5b3Ugd291bGQgbGlrZSB0aGUgc2FtZSBmZWF0dXJlIG9uIFVuaXgsIGNob29zZSBhIGRpZmZlcmVudCBrZXkKLSAgICAgICAgICBhbmQgbWFrZSB0aGUgc2FtZSBtYXAgaW4geW91ciB2aW1yYy4gPgorPAktIERpc3BsYXlzIGEgbGlzdCBvZiBjb2x1bW5zIGZvciB0aGUgdGFibGUgY3VycmVudGx5IGhpZ2hsaWdodGVkIGluCisJICB0aGUgY29tcGxldGlvbiB3aW5kb3cuICA8Qy1SaWdodD4gaXMgbm90IHJlY29nbml6ZWQgb24gbW9zdCBVbml4CisJICBzeXN0ZW1zLCBzbyB0aGlzIG1hcHMgaXMgb25seSBjcmVhdGVkIG9uIHRoZSBXaW5kb3dzIHBsYXRmb3JtLgorCSAgSWYgeW91IHdvdWxkIGxpa2UgdGhlIHNhbWUgZmVhdHVyZSBvbiBVbml4LCBjaG9vc2UgYSBkaWZmZXJlbnQga2V5CisJICBhbmQgbWFrZSB0aGUgc2FtZSBtYXAgaW4geW91ciB2aW1yYy4gPgogICAgIDxDLUxlZnQ+Ci08ICAgICAgIC0gRGlzcGxheXMgdGhlIGxpc3Qgb2YgdGFibGVzLgotICAgICAgICAgIDxDLUxlZnQ+IGlzIG5vdCByZWNvZ25pemVkIG9uIG1vc3QgVW5peCBzeXN0ZW1zLCBzbyB0aGlzIG1hcHMgaXMKLSAgICAgICAgICBvbmx5IGNyZWF0ZWQgb24gdGhlIFdpbmRvd3MgcGxhdGZvcm0uICBJZiB5b3Ugd291bGQgbGlrZSB0aGUgc2FtZQotICAgICAgICAgIGZlYXR1cmUgb24gVW5peCwgY2hvb3NlIGEgZGlmZmVyZW50IGtleSBhbmQgbWFrZSB0aGUgc2FtZSBtYXAgaW4KLSAgICAgICAgICB5b3VyIHZpbXJjLiA+Cis8CS0gRGlzcGxheXMgdGhlIGxpc3Qgb2YgdGFibGVzLgorCSAgPEMtTGVmdD4gaXMgbm90IHJlY29nbml6ZWQgb24gbW9zdCBVbml4IHN5c3RlbXMsIHNvIHRoaXMgbWFwcyBpcworCSAgb25seSBjcmVhdGVkIG9uIHRoZSBXaW5kb3dzIHBsYXRmb3JtLiAgSWYgeW91IHdvdWxkIGxpa2UgdGhlIHNhbWUKKwkgIGZlYXR1cmUgb24gVW5peCwgY2hvb3NlIGEgZGlmZmVyZW50IGtleSBhbmQgbWFrZSB0aGUgc2FtZSBtYXAgaW4KKwkgIHlvdXIgdmltcmMuID4KICAgICA8Qy1DPlIKLTwgICAgICAgLSBUaGlzIG1hcHMgcmVtb3ZlcyBhbGwgY2FjaGVkIGl0ZW1zIGFuZCBmb3JjZXMgdGhlIFNRTCBjb21wbGV0aW9uIAotICAgICAgICAgIHRvIHJlZ2VuZXJhdGUgdGhlIGxpc3Qgb2YgaXRlbXMuCis8CS0gVGhpcyBtYXBzIHJlbW92ZXMgYWxsIGNhY2hlZCBpdGVtcyBhbmQgZm9yY2VzIHRoZSBTUUwgY29tcGxldGlvbgorCSAgdG8gcmVnZW5lcmF0ZSB0aGUgbGlzdCBvZiBpdGVtcy4KIAogQ3VzdG9taXppbmcgTWFwcwogLS0tLS0tLS0tLS0tLS0tLQogWW91IGNhbiBjcmVhdGUgYXMgbWFueSBhZGRpdGlvbmFsIGtleSBtYXBzIGFzIHlvdSBsaWtlLiAgR2VuZXJhbGx5LCB0aGUgbWFwcwotd2lsbCBiZSBzcGVjaWZ5aW5nIGRpZmZlcmVudCBzeW50YXggaGlnaGxpZ2h0IGdyb3Vwcy4gIAord2lsbCBiZSBzcGVjaWZ5aW5nIGRpZmZlcmVudCBzeW50YXggaGlnaGxpZ2h0IGdyb3Vwcy4KIAogSWYgeW91IGRvIG5vdCB3aXNoIHRoZSBkZWZhdWx0IG1hcHMgY3JlYXRlZCBvciB0aGUga2V5IGNob2ljZXMgZG8gbm90IHdvcmsgb24KIHlvdXIgcGxhdGZvcm0gKG9mdGVuIGEgY2FzZSBvbiAqbml4KSB5b3UgZGVmaW5lIHRoZSBmb2xsb3dpbmcgdmFyaWFibGUgaW4KIHlvdXIgfHZpbXJjfDogPgogICAgIGxldCBnOm9tbmlfc3FsX25vX2RlZmF1bHRfbWFwcyA9IDEKLSAgCisKIERvIG5vIGVkaXQgZnRwbHVnaW4vc3FsLnZpbSBkaXJlY3RseSEgIElmIHlvdSBjaGFuZ2UgdGhpcyBmaWxlIHlvdXIgY2hhbmdlcwogd2lsbCBiZSBvdmVyIHdyaXR0ZW4gb24gZnV0dXJlIHVwZGF0ZXMuICBWaW0gaGFzIGEgc3BlY2lhbCBkaXJlY3Rvcnkgc3RydWN0dXJlCiB3aGljaCBhbGxvd3MgeW91IHRvIG1ha2UgY3VzdG9taXphdGlvbnMgd2l0aG91dCBjaGFuZ2luZyB0aGUgZmlsZXMgdGhhdCBhcmUKQEAgLTcxOCw5ICs3MTgsOSBAQAogbWFwcyBmcm9tIHRoZSBmdHBsdWdpbi9zcWwudmltIGluIGl0IHVzaW5nIHlvdXIgb3duIGtleSBzdHJva2VzLiAgPEMtQz4gd2FzCiBjaG9zZW4gc2luY2UgaXQgd2lsbCB3b3JrIG9uIGJvdGggV2luZG93cyBhbmQgKm5peCBwbGF0Zm9ybXMuICBPbiB0aGUgd2luZG93cwogcGxhdGZvcm0geW91IGNhbiBhbHNvIHVzZSA8Qy1TcGFjZT4gb3IgQUxUIGtleXMuCi0gCiAKLTQuNiBVc2luZyB3aXRoIG90aGVyIGZpbGV0eXBlcwkJICAgICAgICAqc3FsLWNvbXBsZXRpb24tZmlsZXR5cGVzKgorCis0LjYgVXNpbmcgd2l0aCBvdGhlciBmaWxldHlwZXMJCQkqc3FsLWNvbXBsZXRpb24tZmlsZXR5cGVzKgogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKIE1hbnkgdGltZXMgU1FMIGNhbiBiZSB1c2VkIHdpdGggZGlmZmVyZW50IGZpbGV0eXBlcy4gIEZvciBleGFtcGxlIFBlcmwsIEphdmEsCkBAIC03NTgsNiArNzU4LDYgQEAKIC0tLS0tLQogU2V0dGluZyB0aGUgZmlsZXR5cGUgYmFjayB0byBQZXJsIHNldHMgYWxsIHRoZSB1c3VhbCAicGVybCIgcmVsYXRlZCBpdGVtcyBiYWNrCiBhcyB0aGV5IHdlcmUuCi0gICAgIAorCiAKIHZpbTp0dz03ODp0cz04OmZ0PWhlbHA6bm9ybDoKZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL3N0YXJ0aW5nLnR4dCBiL3J1bnRpbWUvZG9jL3N0YXJ0aW5nLnR4dAppbmRleCA3N2NhYmFhLi5lNzk5ZDQ3IDEwMDY0NAotLS0gYS9ydW50aW1lL2RvYy9zdGFydGluZy50eHQKKysrIGIvcnVudGltZS9kb2Mvc3RhcnRpbmcudHh0CkBAIC0xLDQgKzEsNCBAQAotKnN0YXJ0aW5nLnR4dCogIEZvciBWaW0gdmVyc2lvbiA3LjBmLiAgTGFzdCBjaGFuZ2U6IDIwMDYgQXByIDI1Cisqc3RhcnRpbmcudHh0KiAgRm9yIFZpbSB2ZXJzaW9uIDcuMGcuICBMYXN0IGNoYW5nZTogMjAwNiBBcHIgMjUKIAogCiAJCSAgVklNIFJFRkVSRU5DRSBNQU5VQUwgICAgYnkgQnJhbSBNb29sZW5hYXIKZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL3N5bnRheC50eHQgYi9ydW50aW1lL2RvYy9zeW50YXgudHh0CmluZGV4IGNmZWVlYzYuLjFlMDk5OTIgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvZG9jL3N5bnRheC50eHQKKysrIGIvcnVudGltZS9kb2Mvc3ludGF4LnR4dApAQCAtMSw0ICsxLDQgQEAKLSpzeW50YXgudHh0KglGb3IgVmltIHZlcnNpb24gNy4wZi4gIExhc3QgY2hhbmdlOiAyMDA2IEFwciAyNworKnN5bnRheC50eHQqCUZvciBWaW0gdmVyc2lvbiA3LjBnLiAgTGFzdCBjaGFuZ2U6IDIwMDYgQXByIDMwCiAKIAogCQkgIFZJTSBSRUZFUkVOQ0UgTUFOVUFMCSAgYnkgQnJhbSBNb29sZW5hYXIKQEAgLTYxMCw3ICs2MTAsNyBAQAogCTpsZXQgZzpmaWxldHlwZV9hc3AgPSAiYXNwdmJzIgogCiAKLUJBQU4gCQkJCQkJICAgICpiYWFuLnZpbSogKmJhYW4tc3ludGF4KgorQkFBTgkJCQkJCSAgICAqYmFhbi52aW0qICpiYWFuLXN5bnRheCoKIAogVGhlIGJhYW4udmltIGdpdmVzIHN5bnRheCBzdXBwb3J0IGZvciBCYWFuQyBvZiByZWxlYXNlIEJhYW5JViB1cHRvIFNTQSBFUlAgTE4KIGZvciBib3RoIDMgR0wgYW5kIDQgR0wgcHJvZ3JhbW1pbmcuIExhcmdlIG51bWJlciBvZiBzdGFuZGFyZCBkZWZpbmVzL2NvbnN0YW50cwpAQCAtNjMzLDEwICs2MzMsMTAgQEAKIGNvbnNpZGVyZWQgZXF1YWwgdG8gYSB0YWIpLiA+CiAJbGV0IGJhYW5fZm9sZF9ibG9jaz0xCiBGb2xkaW5nIGNhbiBiZSBlbmFibGVkIGZvciBlbWJlZGRlZCBTUUwgYmxvY2tzIGFzIFNFTEVDVCwgU0VMRUNURE8sCi1TRUxFQ1RFTVBUWSwgLi4uIFRoZSBpbmRlbnRhdGlvbiBwcmVjZWRpbmcgdGhlIGJlZ2luL2VuZCBrZXl3b3JkcyBoYXMgdG8gCitTRUxFQ1RFTVBUWSwgLi4uIFRoZSBpbmRlbnRhdGlvbiBwcmVjZWRpbmcgdGhlIGJlZ2luL2VuZCBrZXl3b3JkcyBoYXMgdG8KIG1hdGNoIChzcGFjZXMgYXJlIG5vdCBjb25zaWRlcmVkIGVxdWFsIHRvIGEgdGFiKS4gPgogCWxldCBiYWFuX2ZvbGRfc3FsPTEKLU5vdGU6IEJsb2NrIGZvbGRpbmcgY2FuIHJlc3VsdCBpbiBtYW55IHNtYWxsIGZvbGRzLiBJdCBpcyBzdWdnZXN0ZWQgdG8gfDpzZXR8IAorTm90ZTogQmxvY2sgZm9sZGluZyBjYW4gcmVzdWx0IGluIG1hbnkgc21hbGwgZm9sZHMuIEl0IGlzIHN1Z2dlc3RlZCB0byB8OnNldHwKIHRoZSBvcHRpb25zICdmb2xkbWlubGluZXMnIGFuZCAnZm9sZG5lc3RtYXgnIGluIHwudmltcmN8IG9yIHVzZSB8OnNldGxvY2FsfCBpbgogLi4uL2FmdGVyL3N5bnRheC9iYWFuLnZpbSAoc2VlIHxhZnRlci1kaXJlY3Rvcnl8KS4gRWc6ID4KIAlzZXQgZm9sZG1pbmxpbmVzPTUKQEAgLTkyNyw3ICs5MjcsNyBAQAogCQkJCQljb2xvdXIgaGlnaGxpZ2h0aW5nLgogCiBkb3h5Z2VuX2VuZF9wdW5jdHVhdGlvbgkJJ1suXScJU2V0IHRvIHJlZ2V4cCBtYXRjaCBmb3IgdGhlIGVuZGluZwotCQkJCQlwdW5jdHVhdGlvbiBvZiBicmllZiAKKwkJCQkJcHVuY3R1YXRpb24gb2YgYnJpZWYKIAogVGhlcmUgYXJlIGFsc28gc29tZSBoaWxpZ2h0IGdyb3VwcyB3b3J0aCBtZW50aW9uaW5nIGFzIHRoZXkgY2FuIGJlIHVzZWZ1bCBpbgogY29uZmlndXJhdGlvbi4KQEAgLTIwMDIsOCArMjAwMiw4IEBACiBUbyBhdm9pZCBmb2xkaW5nIHBhY2thZ2VzIG9yIHN1YnMgd2hlbiBwZXJsX2ZvbGQgaXMgbGV0LCBsZXQgdGhlIGFwcHJvcHJpYXRlCiB2YXJpYWJsZShzKTogPgogCi0gCTp1bmxldCBwZXJsX25vZm9sZF9wYWNrYWdlcwotIAk6dW5sZXQgcGVybF9ub2ZvbGRfc3VicworCTp1bmxldCBwZXJsX25vZm9sZF9wYWNrYWdlcworCTp1bmxldCBwZXJsX25vZm9sZF9zdWJzCiAKIAogCkBAIC0yMDY0LDcgKzIwNjQsNyBAQAogCiBUZVggaXMgYSB0eXBlc2V0dGluZyBsYW5ndWFnZSwgYW5kIHBsYWludGV4IGlzIHRoZSBmaWxlIHR5cGUgZm9yIHRoZSAicGxhaW4iCiB2YXJpYW50IG9mIFRlWC4gIElmIHlvdSBuZXZlciB3YW50IHlvdXIgKi50ZXggZmlsZXMgcmVjb2duaXplZCBhcyBwbGFpbiBUZVgsCi1zZWUgfGZ0LXRleC1wbHVnaW58LiAgCitzZWUgfGZ0LXRleC1wbHVnaW58LgogCiBUaGlzIHN5bnRheCBmaWxlIGhhcyB0aGUgb3B0aW9uID4KIApAQCAtMjMyOCw3ICsyMzI4LDcgQEAKIAogTXpTY2hlbWUtc3BlY2lmaWMgc3R1ZmYgd2lsbCBiZSB1c2VkIGlmIGI6aXNfbXpzY2hlbWUgb3IgZzppc19tenNjaGVtZQogdmFyaWFibGVzIGFyZSBkZWZpbmVkLgotIAorCiBBbHNvIHNjaGVtZS52aW0gc3VwcG9ydHMga2V5d29yZHMgb2YgdGhlIENoaWNrZW4gU2NoZW1lLT5DIGNvbXBpbGVyLiAgRGVmaW5lCiBiOmlzX2NoaWNrZW4gb3IgZzppc19jaGlja2VuLCBpZiB5b3UgbmVlZCB0aGVtLgogCkBAIC0zNzQ1LDcgKzM3NDUsNyBAQAogCVdpdGhvdXQgYSAiZ3JvdXB0aGVyZSIgYXJndW1lbnQuICBEZWZpbmUgYSByZWdpb24gb3IgbWF0Y2ggdGhhdCBpcwogCXNraXBwZWQgd2hpbGUgc2VhcmNoaW5nIGZvciBhIHN5bmMgcG9pbnQuCiAKLSAgICAJCQkJCQkqc3luLXN5bmMtbGluZWNvbnQqCisJCQkJCQkqc3luLXN5bmMtbGluZWNvbnQqCiAgICAgOnN5bnRheCBzeW5jIGxpbmVjb250IHtwYXR0ZXJufQogCiAJV2hlbiB7cGF0dGVybn0gbWF0Y2hlcyBpbiBhIGxpbmUsIGl0IGlzIGNvbnNpZGVyZWQgdG8gY29udGludWUgaW4KQEAgLTM4NTEsMTIgKzM4NTEsMTIgQEAKIHJlc3VsdCBpcyBsaWtlIHRoaXMgc2luZ2xlIGNvbW1hbmQgaGFzIGJlZW4gdXNlZDogPgogICAgOmhpIENvbW1lbnQJdGVybT1ib2xkIGN0ZXJtZmc9Q3lhbiBndWlmZz0jODBhMGZmIGd1aT1ib2xkCiA8Ci0JCQkJCQkgICAgCSo6aGlnaGxpZ2h0LXZlcmJvc2UqCisJCQkJCQkJKjpoaWdobGlnaHQtdmVyYm9zZSoKIFdoZW4gbGlzdGluZyBhIGhpZ2hsaWdodCBncm91cCBhbmQgJ3ZlcmJvc2UnIGlzIG5vbi16ZXJvLCB0aGUgbGlzdGluZyB3aWxsCiBhbHNvIHRlbGwgd2hlcmUgaXQgd2FzIGxhc3Qgc2V0LiAgRXhhbXBsZTogPgogCTp2ZXJib3NlIGhpIENvbW1lbnQKIDwJQ29tbWVudCAgICAgICAgeHh4IHRlcm09Ym9sZCBjdGVybWZnPTQgZ3VpZmc9Qmx1ZSB+Ci0gICAgICAgICAgIExhc3Qgc2V0IGZyb20gL2hvbWUvbW9vbC92aW0vdmltNy9ydW50aW1lL3N5bnRheC9zeW5jb2xvci52aW0gfgorCSAgIExhc3Qgc2V0IGZyb20gL2hvbWUvbW9vbC92aW0vdmltNy9ydW50aW1lL3N5bnRheC9zeW5jb2xvci52aW0gfgogCiBXaGVuICI6aGkgY2xlYXIiIGlzIHVzZWQgdGhlbiB0aGUgc2NyaXB0IHdoZXJlIHRoaXMgY29tbWFuZCBpcyB1c2VkIHdpbGwgYmUKIG1lbnRpb25lZCBmb3IgdGhlIGRlZmF1bHQgdmFsdWVzLiBTZWUgfDp2ZXJib3NlLWNtZHwgZm9yIG1vcmUgaW5mb3JtYXRpb24uCmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy90YWJwYWdlLnR4dCBiL3J1bnRpbWUvZG9jL3RhYnBhZ2UudHh0CmluZGV4IGRmNzMwNTUuLjFjYjA1NzYgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvZG9jL3RhYnBhZ2UudHh0CisrKyBiL3J1bnRpbWUvZG9jL3RhYnBhZ2UudHh0CkBAIC0xLDQgKzEsNCBAQAotKnRhYnBhZ2UudHh0KiAgIEZvciBWaW0gdmVyc2lvbiA3LjBmLiAgTGFzdCBjaGFuZ2U6IDIwMDYgQXByIDI2CisqdGFicGFnZS50eHQqICAgRm9yIFZpbSB2ZXJzaW9uIDcuMGcuICBMYXN0IGNoYW5nZTogMjAwNiBBcHIgMjYKIAogCiAJCSAgVklNIFJFRkVSRU5DRSBNQU5VQUwgICAgYnkgQnJhbSBNb29sZW5hYXIKZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL3RhZ3NyY2gudHh0IGIvcnVudGltZS9kb2MvdGFnc3JjaC50eHQKaW5kZXggYjA5ZGFlNC4uMmYzYmY1OSAxMDA2NDQKLS0tIGEvcnVudGltZS9kb2MvdGFnc3JjaC50eHQKKysrIGIvcnVudGltZS9kb2MvdGFnc3JjaC50eHQKQEAgLTEsNCArMSw0IEBACi0qdGFnc3JjaC50eHQqICAgRm9yIFZpbSB2ZXJzaW9uIDcuMGYuICBMYXN0IGNoYW5nZTogMjAwNiBBcHIgMjQKKyp0YWdzcmNoLnR4dCogICBGb3IgVmltIHZlcnNpb24gNy4wZy4gIExhc3QgY2hhbmdlOiAyMDA2IEFwciAyNAogCiAKIAkJICBWSU0gUkVGRVJFTkNFIE1BTlVBTCAgICBieSBCcmFtIE1vb2xlbmFhcgpkaWZmIC0tZ2l0IGEvcnVudGltZS9kb2MvdGVybS50eHQgYi9ydW50aW1lL2RvYy90ZXJtLnR4dAppbmRleCBkNWEyMGYzLi45OGE3ZTExIDEwMDY0NAotLS0gYS9ydW50aW1lL2RvYy90ZXJtLnR4dAorKysgYi9ydW50aW1lL2RvYy90ZXJtLnR4dApAQCAtMSw0ICsxLDQgQEAKLSp0ZXJtLnR4dCogICAgICBGb3IgVmltIHZlcnNpb24gNy4wZi4gIExhc3QgY2hhbmdlOiAyMDA2IEFwciAyOQorKnRlcm0udHh0KiAgICAgIEZvciBWaW0gdmVyc2lvbiA3LjBnLiAgTGFzdCBjaGFuZ2U6IDIwMDYgQXByIDMwCiAKIAogCQkgIFZJTSBSRUZFUkVOQ0UgTUFOVUFMICAgIGJ5IEJyYW0gTW9vbGVuYWFyCkBAIC0yODksOCArMjg5LDggQEAKIAl0X0lFCXNldCBpY29uIHRleHQgZW5kCQkJCSp0X0lFKiAqJ3RfSUUnKgogCXRfV1AJc2V0IHdpbmRvdyBwb3NpdGlvbiAoWSwgWCkgaW4gcGl4ZWxzCQkqdF9XUCogKid0X1dQJyoKIAl0X1dTCXNldCB3aW5kb3cgc2l6ZSAoaGVpZ2h0LCB3aWR0aCkgaW4gY2hhcmFjdGVycwkqdF9XUyogKid0X1dTJyoKLQl0X1NJICAgIHN0YXJ0IGluc2VydCBtb2RlIChiYXIgY3Vyc29yIHNoYXBlKSAgICAgICAgICAgICp0X1NJKiAqJ3RfU0knKgotCXRfRUkgICAgZW5kIGluc2VydCBtb2RlIChibG9jayBjdXJzb3Igc2hhcGUpICAgICAgICAgICAgKnRfRUkqICondF9FSScqCisJdF9TSQlzdGFydCBpbnNlcnQgbW9kZSAoYmFyIGN1cnNvciBzaGFwZSkJCSp0X1NJKiAqJ3RfU0knKgorCXRfRUkJZW5kIGluc2VydCBtb2RlIChibG9jayBjdXJzb3Igc2hhcGUpCQkqdF9FSSogKid0X0VJJyoKIAkJfHRlcm1jYXAtY3Vyc29yLXNoYXBlfAogCXRfUlYJcmVxdWVzdCB0ZXJtaW5hbCB2ZXJzaW9uIHN0cmluZyAoZm9yIHh0ZXJtKQkqdF9SViogKid0X1JWJyoKIAkJfHh0ZXJtLThiaXR8IHx2OnRlcm1yZXNwb25zZXwgfCd0dHltb3VzZSd8IHx4dGVybS1jb2Rlc3wKZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL3RpcHMudHh0IGIvcnVudGltZS9kb2MvdGlwcy50eHQKaW5kZXggZGNlY2MyOS4uZDFkNDE1YyAxMDA2NDQKLS0tIGEvcnVudGltZS9kb2MvdGlwcy50eHQKKysrIGIvcnVudGltZS9kb2MvdGlwcy50eHQKQEAgLTEsNCArMSw0IEBACi0qdGlwcy50eHQqICAgICAgRm9yIFZpbSB2ZXJzaW9uIDcuMGYuICBMYXN0IGNoYW5nZTogMjAwNiBBcHIgMjQKKyp0aXBzLnR4dCogICAgICBGb3IgVmltIHZlcnNpb24gNy4wZy4gIExhc3QgY2hhbmdlOiAyMDA2IEFwciAzMAogCiAKIAkJICBWSU0gUkVGRVJFTkNFIE1BTlVBTCAgICBieSBCcmFtIE1vb2xlbmFhcgpAQCAtNDg5LDggKzQ4OSw4IEBACiAJICAgIGxldCBjMiA9ICdcXScKIAkgIGVuZGlmCiAJICBsZXQgc19za2lwID0nc3luSURhdHRyKHN5bklEKGxpbmUoIi4iKSwgY29sKCIuIiksIDApLCAibmFtZSIpICcgLgotIAkgIAlcICc9fj8gICJzdHJpbmdcXHxjb21tZW50IicKLSAJICBleGVjdXRlICdpZicgc19za2lwICd8IGxldCBzX3NraXAgPSAwIHwgZW5kaWYnCisJCVwgJz1+Pwkic3RyaW5nXFx8Y29tbWVudCInCisJICBleGVjdXRlICdpZicgc19za2lwICd8IGxldCBzX3NraXAgPSAwIHwgZW5kaWYnCiAKIAkgIGxldCBbbV9sbnVtLCBtX2NvbF0gPSBzZWFyY2hwYWlycG9zKGMsICcnLCBjMiwgc19mbGFncywgc19za2lwKQogCmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy90b2RvLnR4dCBiL3J1bnRpbWUvZG9jL3RvZG8udHh0CmluZGV4IGE1NWM5ZmIuLmZlMDQ1ZjUgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvZG9jL3RvZG8udHh0CisrKyBiL3J1bnRpbWUvZG9jL3RvZG8udHh0CkBAIC0xLDQgKzEsNCBAQAotKnRvZG8udHh0KiAgICAgIEZvciBWaW0gdmVyc2lvbiA3LjBmLiAgTGFzdCBjaGFuZ2U6IDIwMDYgQXByIDI5CisqdG9kby50eHQqICAgICAgRm9yIFZpbSB2ZXJzaW9uIDcuMGcuICBMYXN0IGNoYW5nZTogMjAwNiBBcHIgMzAKIAogCiAJCSAgVklNIFJFRkVSRU5DRSBNQU5VQUwJICBieSBCcmFtIE1vb2xlbmFhcgpAQCAtMzAsMTAgKzMwLDYgQEAKIAkJCQkJCQkqa25vd24tYnVncyoKIC0tLS0tLS0tLS0tLS0tLS0tLS0tIEtub3duIGJ1Z3MgYW5kIGN1cnJlbnQgd29yayAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCi1EYXJyZW4gSGllYmVydCBpcyBpbmNsdWRpbmcgdGhlIHBhdGNoIGZvciBvbW5pIGNvbXBsZXRpb24gaW4gY3RhZ3MuICBBIG5ldwotdmVyc2lvbiBzdGlsbCBpc24ndCBhdmFpbGFibGUgZm9yIGRvd25sb2FkLgotCi0KIEF3YWl0aW5nIHVwZGF0ZWQgcGF0Y2hlczoKIDkgICBNYWMgdW5pY29kZSBwYXRjaCAoRGEgV29vbiBKdW5nLCBFY2tlaGFyZCBCZXJucyk6CiAgICAgOCAgIEFkZCBwYXRjaCBmcm9tIE11cmFva2EgVGFybyAoTWFyIDE2KSB0byBzdXBwb3J0IGlucHV0IG1ldGhvZCBvbiBNYWM/CkBAIC00OCw4ICs0NCw3IEBACiAgICAgYmUgdXNlZCBpbnN0ZWFkPwogOCAgIFdpbjMyOiBBZGQgbWluaWR1bXAgZ2VuZXJhdGlvbi4gKEdlb3JnZSBSZWlsbHksIDIwMDYgQXByIDI0KQogOCAgIEFkZCAiOm4iIHRvIGZuYW1lbW9kaWZ5KCk6IG5vcm1hbGl6ZSBwYXRoLCByZW1vdmUgIi4uLyIgd2hlbiBwb3NzaWJsZS4KLSAgICBBcmljIEJsdW1lciBoYXMgYSBwYXRjaCBmb3IgdGhpcy4KLSAgICBIZSB3aWxsIHVwZGF0ZSB0aGUgcGF0Y2ggZm9yIDYuMy4KKyAgICBBcmljIEJsdW1lciBoYXMgYSBwYXRjaCBmb3IgdGhpcy4gIEhlIHdpbGwgdXBkYXRlIHRoZSBwYXRjaCBmb3IgNi4zLgogNyAgIENvbXBsZXRpb24gb2YgbmV0d29yayBzaGFyZXMsIHBhdGNoIGJ5IFlhc3VoaXJvIE1hdHN1bW90by4KICAgICBVcGRhdGUgMjAwNCBTZXAgNi4KICAgICBIb3cgZG9lcyB0aGlzIHdvcms/ICBNaXNzaW5nIGNvbW1lbnRzLgpAQCAtNjk3LDYgKzY5Miw4IEBACiA4ICAgVGhlIHNjcmlwdCBJRCB0aGF0IGlzIHN0b3JlZCB3aXRoIGFuIG9wdGlvbiBhbmQgZGlzcGxheWVkIHdpdGggIjp2ZXJib3NlCiAgICAgc2V0IiBpc24ndCByZXNldCB3aGVuIHRoZSBvcHRpb24gaXMgc2V0IGludGVybmFsbHkuICBGb3IgZXhhbXBsZSB3aGVuCiAgICAgJ2ZvbGRsZXZlbCcgaXMgc2V0IGZyb20gJ2ZvbGRsZXZlbHN0YXJ0Jy4KKzggICBBbHNvIHN0b3JlIHRoZSBsaW5lIG51bWJlciB3aXRoIHRoZSBzY3JpcHQgSUQgYW5kIHVzZSBpdCBmb3IgIjp2ZXJib3NlIiwKKyAgICBzbyB0aGF0ICJzZXQgbm9jb21wYXRpYmxlIiBpcyBmb3VuZCB3aGVuIGl0IGNoYW5nZXMgb3RoZXIgb3B0aW9uIHZhbHVlcy4KIDggICBJbiB0aGUgZmlsZWZvcm1hdCBkaWFsb2csICJDYW5jZWwiIGlzbid0IHRyYW5zbGF0ZWQuICBBZGQgYSBnbG9iYWwKICAgICB2YXJpYWJsZSBmb3IgdGhpcy4gKEVkdWFyZG8gRmVybmFuZGV6KQogOSAgIFdoZW4gZWRpdGluZyBhIGZpbGUgd2l0aCAncmVhZG9ubHknIHNldCwgdGhlcmUgaXMgbm8gY2hlY2sgZm9yIGFuIGV4aXN0aW5nCkBAIC0yNzk0LDcgKzI3OTEsNyBAQAogNyAgIFdpdGggIjpta3Nlc3Npb24iIGFsc28gc3RvcmUgdGhlIHRhZyBzdGFjayBhbmQganVtcCBoaXN0b3J5LiAoTWljaGFsCiAgICAgTWFsZWNraSkKIDcgICBQZXJzaXN0ZW50IHZhcmlhYmxlczogInA6dmFyIjsgc3RvcmVkIGluIHZpbWluZm8gZmlsZSBhbmQgc2Vzc2lvbnMgZmlsZXMuCi0gCisKIAogT3B0aW9uczoKIDcgICAiOndpdGggb3B0aW9uPXZhbHVlIHwgY29tbWFuZCI6IHRlbXBvcmFyaWx5IHNldCBhbiBvcHRpb24gdmFsdWUgYW5kCmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy91Z2FuZGEubnNpcy50eHQgYi9ydW50aW1lL2RvYy91Z2FuZGEubnNpcy50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYmQ4MDI0YwotLS0gL2Rldi9udWxsCisrKyBiL3J1bnRpbWUvZG9jL3VnYW5kYS5uc2lzLnR4dApAQCAtMCwwICsxLDI5MiBAQAorICAgIEZvciBWaW0gdmVyc2lvbiA3LjBnLiAgTGFzdCBjaGFuZ2U6IDIwMDYgQXByIDI0CisKKwkJICBWSU0gUkVGRVJFTkNFIE1BTlVBTCAgICBieSBCcmFtIE1vb2xlbmFhcgorCitTVU1NQVJZCisKK1ZpbSBpcyBDaGFyaXR5d2FyZS4gIFlvdSBjYW4gdXNlIGFuZCBjb3B5IGl0IGFzIG11Y2ggYXMgeW91IGxpa2UsIGJ1dCB5b3UgYXJlCitlbmNvdXJhZ2VkIHRvIG1ha2UgYSBkb25hdGlvbiBmb3IgbmVlZHkgY2hpbGRyZW4gaW4gVWdhbmRhLiAgUGxlYXNlIHNlZSB8a2NjfAorYmVsb3cgb3IgdmlzaXQgdGhlIElDQ0Ygd2ViIHNpdGUsIGF2YWlsYWJsZSBhdCB0aGVzZSBVUkxzOgorCisJaHR0cDovL2ljY2YtaG9sbGFuZC5vcmcvCisJaHR0cDovL3d3dy52aW0ub3JnL2ljY2YvCisKK1lvdSBjYW4gYWxzbyBzcG9uc29yIHRoZSBkZXZlbG9wbWVudCBvZiBWaW0uICBWaW0gc3BvbnNvcnMgY2FuIHZvdGUgZm9yCitmZWF0dXJlcy4gIFNlZSB8c3BvbnNvcnwuICBUaGUgbW9uZXkgZ29lcyB0byBVZ2FuZGEgYW55d2F5LgorCitUaGUgT3BlbiBQdWJsaWNhdGlvbiBMaWNlbnNlIGFwcGxpZXMgdG8gdGhlIFZpbSBkb2N1bWVudGF0aW9uLCBzZWUKK3xtYW51YWwtY29weXJpZ2h0fC4KKworPT09IGJlZ2luIG9mIGxpY2Vuc2UgPT09CisKK1ZJTSBMSUNFTlNFCisKK0kpICBUaGVyZSBhcmUgbm8gcmVzdHJpY3Rpb25zIG9uIGRpc3RyaWJ1dGluZyB1bm1vZGlmaWVkIGNvcGllcyBvZiBWaW0gZXhjZXB0CisgICAgdGhhdCB0aGV5IG11c3QgaW5jbHVkZSB0aGlzIGxpY2Vuc2UgdGV4dC4gIFlvdSBjYW4gYWxzbyBkaXN0cmlidXRlCisgICAgdW5tb2RpZmllZCBwYXJ0cyBvZiBWaW0sIGxpa2V3aXNlIHVucmVzdHJpY3RlZCBleGNlcHQgdGhhdCB0aGV5IG11c3QKKyAgICBpbmNsdWRlIHRoaXMgbGljZW5zZSB0ZXh0LiAgWW91IGFyZSBhbHNvIGFsbG93ZWQgdG8gaW5jbHVkZSBleGVjdXRhYmxlcworICAgIHRoYXQgeW91IG1hZGUgZnJvbSB0aGUgdW5tb2RpZmllZCBWaW0gc291cmNlcywgcGx1cyB5b3VyIG93biB1c2FnZQorICAgIGV4YW1wbGVzIGFuZCBWaW0gc2NyaXB0cy4KKworSUkpIEl0IGlzIGFsbG93ZWQgdG8gZGlzdHJpYnV0ZSBhIG1vZGlmaWVkIChvciBleHRlbmRlZCkgdmVyc2lvbiBvZiBWaW0sCisgICAgaW5jbHVkaW5nIGV4ZWN1dGFibGVzIGFuZC9vciBzb3VyY2UgY29kZSwgd2hlbiB0aGUgZm9sbG93aW5nIGZvdXIKKyAgICBjb25kaXRpb25zIGFyZSBtZXQ6CisgICAgMSkgVGhpcyBsaWNlbnNlIHRleHQgbXVzdCBiZSBpbmNsdWRlZCB1bm1vZGlmaWVkLgorICAgIDIpIFRoZSBtb2RpZmllZCBWaW0gbXVzdCBiZSBkaXN0cmlidXRlZCBpbiBvbmUgb2YgdGhlIGZvbGxvd2luZyBmaXZlIHdheXM6CisgICAgICAgYSkgSWYgeW91IG1ha2UgY2hhbmdlcyB0byBWaW0geW91cnNlbGYsIHlvdSBtdXN0IGNsZWFybHkgZGVzY3JpYmUgaW4KKwkgIHRoZSBkaXN0cmlidXRpb24gaG93IHRvIGNvbnRhY3QgeW91LiAgV2hlbiB0aGUgbWFpbnRhaW5lciBhc2tzIHlvdQorCSAgKGluIGFueSB3YXkpIGZvciBhIGNvcHkgb2YgdGhlIG1vZGlmaWVkIFZpbSB5b3UgZGlzdHJpYnV0ZWQsIHlvdQorCSAgbXVzdCBtYWtlIHlvdXIgY2hhbmdlcywgaW5jbHVkaW5nIHNvdXJjZSBjb2RlLCBhdmFpbGFibGUgdG8gdGhlCisJICBtYWludGFpbmVyIHdpdGhvdXQgZmVlLiAgVGhlIG1haW50YWluZXIgcmVzZXJ2ZXMgdGhlIHJpZ2h0IHRvCisJICBpbmNsdWRlIHlvdXIgY2hhbmdlcyBpbiB0aGUgb2ZmaWNpYWwgdmVyc2lvbiBvZiBWaW0uICBXaGF0IHRoZQorCSAgbWFpbnRhaW5lciB3aWxsIGRvIHdpdGggeW91ciBjaGFuZ2VzIGFuZCB1bmRlciB3aGF0IGxpY2Vuc2UgdGhleQorCSAgd2lsbCBiZSBkaXN0cmlidXRlZCBpcyBuZWdvdGlhYmxlLiAgSWYgdGhlcmUgaGFzIGJlZW4gbm8gbmVnb3RpYXRpb24KKwkgIHRoZW4gdGhpcyBsaWNlbnNlLCBvciBhIGxhdGVyIHZlcnNpb24sIGFsc28gYXBwbGllcyB0byB5b3VyIGNoYW5nZXMuCisJICBUaGUgY3VycmVudCBtYWludGFpbmVyIGlzIEJyYW0gTW9vbGVuYWFyIDxCcmFtQHZpbS5vcmc+LiAgSWYgdGhpcworCSAgY2hhbmdlcyBpdCB3aWxsIGJlIGFubm91bmNlZCBpbiBhcHByb3ByaWF0ZSBwbGFjZXMgKG1vc3QgbGlrZWx5CisJICB2aW0uc2YubmV0LCB3d3cudmltLm9yZyBhbmQvb3IgY29tcC5lZGl0b3JzKS4gIFdoZW4gaXQgaXMgY29tcGxldGVseQorCSAgaW1wb3NzaWJsZSB0byBjb250YWN0IHRoZSBtYWludGFpbmVyLCB0aGUgb2JsaWdhdGlvbiB0byBzZW5kIGhpbQorCSAgeW91ciBjaGFuZ2VzIGNlYXNlcy4gIE9uY2UgdGhlIG1haW50YWluZXIgaGFzIGNvbmZpcm1lZCB0aGF0IGhlIGhhcworCSAgcmVjZWl2ZWQgeW91ciBjaGFuZ2VzIHRoZXkgd2lsbCBub3QgaGF2ZSB0byBiZSBzZW50IGFnYWluLgorICAgICAgIGIpIElmIHlvdSBoYXZlIHJlY2VpdmVkIGEgbW9kaWZpZWQgVmltIHRoYXQgd2FzIGRpc3RyaWJ1dGVkIGFzCisJICBtZW50aW9uZWQgdW5kZXIgYSkgeW91IGFyZSBhbGxvd2VkIHRvIGZ1cnRoZXIgZGlzdHJpYnV0ZSBpdAorCSAgdW5tb2RpZmllZCwgYXMgbWVudGlvbmVkIGF0IEkpLiAgSWYgeW91IG1ha2UgYWRkaXRpb25hbCBjaGFuZ2VzIHRoZQorCSAgdGV4dCB1bmRlciBhKSBhcHBsaWVzIHRvIHRob3NlIGNoYW5nZXMuCisgICAgICAgYykgUHJvdmlkZSBhbGwgdGhlIGNoYW5nZXMsIGluY2x1ZGluZyBzb3VyY2UgY29kZSwgd2l0aCBldmVyeSBjb3B5IG9mCisJICB0aGUgbW9kaWZpZWQgVmltIHlvdSBkaXN0cmlidXRlLiAgVGhpcyBtYXkgYmUgZG9uZSBpbiB0aGUgZm9ybSBvZiBhCisJICBjb250ZXh0IGRpZmYuICBZb3UgY2FuIGNob29zZSB3aGF0IGxpY2Vuc2UgdG8gdXNlIGZvciBuZXcgY29kZSB5b3UKKwkgIGFkZC4gIFRoZSBjaGFuZ2VzIGFuZCB0aGVpciBsaWNlbnNlIG11c3Qgbm90IHJlc3RyaWN0IG90aGVycyBmcm9tCisJICBtYWtpbmcgdGhlaXIgb3duIGNoYW5nZXMgdG8gdGhlIG9mZmljaWFsIHZlcnNpb24gb2YgVmltLgorICAgICAgIGQpIFdoZW4geW91IGhhdmUgYSBtb2RpZmllZCBWaW0gd2hpY2ggaW5jbHVkZXMgY2hhbmdlcyBhcyBtZW50aW9uZWQKKwkgIHVuZGVyIGMpLCB5b3UgY2FuIGRpc3RyaWJ1dGUgaXQgd2l0aG91dCB0aGUgc291cmNlIGNvZGUgZm9yIHRoZQorCSAgY2hhbmdlcyBpZiB0aGUgZm9sbG93aW5nIHRocmVlIGNvbmRpdGlvbnMgYXJlIG1ldDoKKwkgIC0gVGhlIGxpY2Vuc2UgdGhhdCBhcHBsaWVzIHRvIHRoZSBjaGFuZ2VzIHBlcm1pdHMgeW91IHRvIGRpc3RyaWJ1dGUKKwkgICAgdGhlIGNoYW5nZXMgdG8gdGhlIFZpbSBtYWludGFpbmVyIHdpdGhvdXQgZmVlIG9yIHJlc3RyaWN0aW9uLCBhbmQKKwkgICAgcGVybWl0cyB0aGUgVmltIG1haW50YWluZXIgdG8gaW5jbHVkZSB0aGUgY2hhbmdlcyBpbiB0aGUgb2ZmaWNpYWwKKwkgICAgdmVyc2lvbiBvZiBWaW0gd2l0aG91dCBmZWUgb3IgcmVzdHJpY3Rpb24uCisJICAtIFlvdSBrZWVwIHRoZSBjaGFuZ2VzIGZvciBhdCBsZWFzdCB0aHJlZSB5ZWFycyBhZnRlciBsYXN0CisJICAgIGRpc3RyaWJ1dGluZyB0aGUgY29ycmVzcG9uZGluZyBtb2RpZmllZCBWaW0uICBXaGVuIHRoZSBtYWludGFpbmVyCisJICAgIG9yIHNvbWVvbmUgd2hvIHlvdSBkaXN0cmlidXRlZCB0aGUgbW9kaWZpZWQgVmltIHRvIGFza3MgeW91IChpbgorCSAgICBhbnkgd2F5KSBmb3IgdGhlIGNoYW5nZXMgd2l0aGluIHRoaXMgcGVyaW9kLCB5b3UgbXVzdCBtYWtlIHRoZW0KKwkgICAgYXZhaWxhYmxlIHRvIGhpbS4KKwkgIC0gWW91IGNsZWFybHkgZGVzY3JpYmUgaW4gdGhlIGRpc3RyaWJ1dGlvbiBob3cgdG8gY29udGFjdCB5b3UuICBUaGlzCisJICAgIGNvbnRhY3QgaW5mb3JtYXRpb24gbXVzdCByZW1haW4gdmFsaWQgZm9yIGF0IGxlYXN0IHRocmVlIHllYXJzCisJICAgIGFmdGVyIGxhc3QgZGlzdHJpYnV0aW5nIHRoZSBjb3JyZXNwb25kaW5nIG1vZGlmaWVkIFZpbSwgb3IgYXMgbG9uZworCSAgICBhcyBwb3NzaWJsZS4KKyAgICAgICBlKSBXaGVuIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSAoR1BMKSBhcHBsaWVzIHRvIHRoZSBjaGFuZ2VzLAorCSAgeW91IGNhbiBkaXN0cmlidXRlIHRoZSBtb2RpZmllZCBWaW0gdW5kZXIgdGhlIEdOVSBHUEwgdmVyc2lvbiAyIG9yCisJICBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAgICAzKSBBIG1lc3NhZ2UgbXVzdCBiZSBhZGRlZCwgYXQgbGVhc3QgaW4gdGhlIG91dHB1dCBvZiB0aGUgIjp2ZXJzaW9uIgorICAgICAgIGNvbW1hbmQgYW5kIGluIHRoZSBpbnRybyBzY3JlZW4sIHN1Y2ggdGhhdCB0aGUgdXNlciBvZiB0aGUgbW9kaWZpZWQgVmltCisgICAgICAgaXMgYWJsZSB0byBzZWUgdGhhdCBpdCB3YXMgbW9kaWZpZWQuICBXaGVuIGRpc3RyaWJ1dGluZyBhcyBtZW50aW9uZWQKKyAgICAgICB1bmRlciAyKWUpIGFkZGluZyB0aGUgbWVzc2FnZSBpcyBvbmx5IHJlcXVpcmVkIGZvciBhcyBmYXIgYXMgdGhpcyBkb2VzCisgICAgICAgbm90IGNvbmZsaWN0IHdpdGggdGhlIGxpY2Vuc2UgdXNlZCBmb3IgdGhlIGNoYW5nZXMuCisgICAgNCkgVGhlIGNvbnRhY3QgaW5mb3JtYXRpb24gYXMgcmVxdWlyZWQgdW5kZXIgMilhKSBhbmQgMilkKSBtdXN0IG5vdCBiZQorICAgICAgIHJlbW92ZWQgb3IgY2hhbmdlZCwgZXhjZXB0IHRoYXQgdGhlIHBlcnNvbiBoaW1zZWxmIGNhbiBtYWtlCisgICAgICAgY29ycmVjdGlvbnMuCisKK0lJSSkgSWYgeW91IGRpc3RyaWJ1dGUgYSBtb2RpZmllZCB2ZXJzaW9uIG9mIFZpbSwgeW91IGFyZSBlbmNvdXJhZ2VkIHRvIHVzZQorICAgICB0aGUgVmltIGxpY2Vuc2UgZm9yIHlvdXIgY2hhbmdlcyBhbmQgbWFrZSB0aGVtIGF2YWlsYWJsZSB0byB0aGUKKyAgICAgbWFpbnRhaW5lciwgaW5jbHVkaW5nIHRoZSBzb3VyY2UgY29kZS4gIFRoZSBwcmVmZXJyZWQgd2F5IHRvIGRvIHRoaXMgaXMKKyAgICAgYnkgZS1tYWlsIG9yIGJ5IHVwbG9hZGluZyB0aGUgZmlsZXMgdG8gYSBzZXJ2ZXIgYW5kIGUtbWFpbGluZyB0aGUgVVJMLgorICAgICBJZiB0aGUgbnVtYmVyIG9mIGNoYW5nZXMgaXMgc21hbGwgKGUuZy4sIGEgbW9kaWZpZWQgTWFrZWZpbGUpIGUtbWFpbGluZyBhCisgICAgIGNvbnRleHQgZGlmZiB3aWxsIGRvLiAgVGhlIGUtbWFpbCBhZGRyZXNzIHRvIGJlIHVzZWQgaXMKKyAgICAgPG1haW50YWluZXJAdmltLm9yZz4KKworSVYpICBJdCBpcyBub3QgYWxsb3dlZCB0byByZW1vdmUgdGhpcyBsaWNlbnNlIGZyb20gdGhlIGRpc3RyaWJ1dGlvbiBvZiB0aGUgVmltCisgICAgIHNvdXJjZXMsIHBhcnRzIG9mIGl0IG9yIGZyb20gYSBtb2RpZmllZCB2ZXJzaW9uLiAgWW91IG1heSB1c2UgdGhpcworICAgICBsaWNlbnNlIGZvciBwcmV2aW91cyBWaW0gcmVsZWFzZXMgaW5zdGVhZCBvZiB0aGUgbGljZW5zZSB0aGF0IHRoZXkgY2FtZQorICAgICB3aXRoLCBhdCB5b3VyIG9wdGlvbi4KKworPT09IGVuZCBvZiBsaWNlbnNlID09PQorCitOb3RlOgorCistIElmIHlvdSBhcmUgaGFwcHkgd2l0aCBWaW0sIHBsZWFzZSBleHByZXNzIHRoYXQgYnkgcmVhZGluZyB0aGUgcmVzdCBvZiB0aGlzCisgIGZpbGUgYW5kIGNvbnNpZGVyIGhlbHBpbmcgbmVlZHkgY2hpbGRyZW4gaW4gVWdhbmRhLgorCistIElmIHlvdSB3YW50IHRvIHN1cHBvcnQgZnVydGhlciBWaW0gZGV2ZWxvcG1lbnQgY29uc2lkZXIgYmVjb21pbmcgYQorICB8c3BvbnNvcnwuICBUaGUgbW9uZXkgZ29lcyB0byBVZ2FuZGEgYW55d2F5LgorCistIEFjY29yZGluZyB0byBSaWNoYXJkIFN0YWxsbWFuIHRoZSBWaW0gbGljZW5zZSBpcyBHTlUgR1BMIGNvbXBhdGlibGUuCisgIEEgZmV3IG1pbm9yIGNoYW5nZXMgaGF2ZSBiZWVuIG1hZGUgc2luY2UgaGUgY2hlY2tlZCBpdCwgYnV0IHRoYXQgc2hvdWxkIG5vdAorICBtYWtlIGEgZGlmZmVyZW5jZS4KKworLSBJZiB5b3UgbGluayBWaW0gd2l0aCBhIGxpYnJhcnkgdGhhdCBnb2VzIHVuZGVyIHRoZSBHTlUgR1BMLCB0aGlzIGxpbWl0cworICBmdXJ0aGVyIGRpc3RyaWJ1dGlvbiB0byB0aGUgR05VIEdQTC4gIEFsc28gd2hlbiB5b3UgZGlkbid0IGFjdHVhbGx5IGNoYW5nZQorICBhbnl0aGluZyBpbiBWaW0uCisKKy0gT25jZSBhIGNoYW5nZSBpcyBpbmNsdWRlZCB0aGF0IGdvZXMgdW5kZXIgdGhlIEdOVSBHUEwsIHRoaXMgZm9yY2VzIGFsbAorICBmdXJ0aGVyIGNoYW5nZXMgdG8gYWxzbyBiZSBtYWRlIHVuZGVyIHRoZSBHTlUgR1BMIG9yIGEgY29tcGF0aWJsZSBsaWNlbnNlLgorCistIElmIHlvdSBkaXN0cmlidXRlIGEgbW9kaWZpZWQgdmVyc2lvbiBvZiBWaW0sIHlvdSBjYW4gaW5jbHVkZSB5b3VyIG5hbWUgYW5kCisgIGNvbnRhY3QgaW5mb3JtYXRpb24gd2l0aCB0aGUgIi0td2l0aC1tb2RpZmllZC1ieSIgY29uZmlndXJlIGFyZ3VtZW50IG9yIHRoZQorICBNT0RJRklFRF9CWSBkZWZpbmUuCisKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorS2liYWFsZSBDaGlsZHJlbidzIENlbnRyZQorCitLaWJhYWxlIENoaWxkcmVuJ3MgQ2VudHJlIChLQ0MpIGlzIGxvY2F0ZWQgaW4gS2liYWFsZSwgYSBzbWFsbCB0b3duIGluIHRoZQorc291dGggb2YgVWdhbmRhLCBuZWFyIFRhbnphbmlhLCBpbiBFYXN0IEFmcmljYS4gIFRoZSBhcmVhIGlzIGtub3duIGFzIFJha2FpCitEaXN0cmljdC4gIFRoZSBwb3B1bGF0aW9uIGlzIG1vc3RseSBmYXJtZXJzLiAgQWx0aG91Z2ggcGVvcGxlIGFyZSBwb29yLCB0aGVyZQoraXMgZW5vdWdoIGZvb2QuICBCdXQgdGhpcyBkaXN0cmljdCBpcyBzdWZmZXJpbmcgZnJvbSBBSURTIG1vcmUgdGhhbiBhbnkgb3RoZXIKK3BhcnQgb2YgdGhlIHdvcmxkLiAgU29tZSBzYXkgdGhhdCBpdCBzdGFydGVkIHRoZXJlLiAgRXN0aW1hdGlvbnMgYXJlIHRoYXQgMTAKK3RvIDMwJSBvZiB0aGUgVWdhbmRhbnMgYXJlIGluZmVjdGVkIHdpdGggSElWLiAgQmVjYXVzZSBwYXJlbnRzIGRpZSwgdGhlcmUgYXJlCittYW55IG9ycGhhbnMuICBJbiB0aGlzIGRpc3RyaWN0IGFib3V0IDYwLDAwMCBjaGlsZHJlbiBoYXZlIGxvc3Qgb25lIG9yIGJvdGgKK3BhcmVudHMsIG91dCBvZiBhIHBvcHVsYXRpb24gb2YgMzUwLDAwMC4gIEFuZCB0aGlzIGlzIHN0aWxsIGNvbnRpbnVpbmcuCisKK1RoZSBjaGlsZHJlbiBuZWVkIGEgbG90IG9mIGhlbHAuICBUaGUgS0NDIGlzIHdvcmtpbmcgaGFyZCB0byBwcm92aWRlIHRoZSBuZWVkeQord2l0aCBmb29kLCBtZWRpY2FsIGNhcmUgYW5kIGVkdWNhdGlvbi4gIEZvb2QgYW5kIG1lZGljYWwgY2FyZSB0byBrZWVwIHRoZW0KK2hlYWx0aHkgbm93LCBhbmQgZWR1Y2F0aW9uIHNvIHRoYXQgdGhleSBjYW4gdGFrZSBjYXJlIG9mIHRoZW1zZWx2ZXMgaW4gdGhlCitmdXR1cmUuICBLQ0Mgd29ya3Mgb24gYSBDaHJpc3RpYW4gYmFzZSwgYnV0IGhlbHAgaXMgZ2l2ZW4gdG8gY2hpbGRyZW4gb2YgYW55CityZWxpZ2lvbi4KKworVGhlIGtleSB0byBzb2x2aW5nIHRoZSBwcm9ibGVtcyBpbiB0aGlzIGFyZWEgaXMgZWR1Y2F0aW9uLiAgVGhpcyBoYXMgYmVlbgorbmVnbGVjdGVkIGluIHRoZSBwYXN0IHllYXJzIHdpdGggcHJlc2lkZW50IElkaSBBbWluIGFuZCB0aGUgZm9sbG93aW5nIGNpdmlsCit3YXJzLiAgTm93IHRoYXQgdGhlIGdvdmVybm1lbnQgaXMgc3RhYmxlIGFnYWluLCB0aGUgY2hpbGRyZW4gYW5kIHBhcmVudHMgaGF2ZQordG8gbGVhcm4gaG93IHRvIHRha2UgY2FyZSBvZiB0aGVtc2VsdmVzIGFuZCBob3cgdG8gYXZvaWQgaW5mZWN0aW9ucy4gIFRoZXJlIGlzCithbHNvIGhlbHAgZm9yIHBlb3BsZSB3aG8gYXJlIGlsbCBhbmQgaHVuZ3J5LCBidXQgdGhlIHByaW1hcnkgZ29hbCBpcyB0bworcHJldmVudCBwZW9wbGUgZnJvbSBnZXR0aW5nIGlsbCBhbmQgdG8gdGVhY2ggdGhlbSBob3cgdG8gZ3JvdyBoZWFsdGh5IGZvb2QuCisKK01vc3Qgb2YgdGhlIG9ycGhhbnMgYXJlIGxpdmluZyBpbiBhbiBleHRlbmRlZCBmYW1pbHkuICBBbiB1bmNsZSBvciBvbGRlcgorc2lzdGVyIGlzIHRha2luZyBjYXJlIG9mIHRoZW0uICBCZWNhdXNlIHRoZXNlIGZhbWlsaWVzIGFyZSBiaWcgYW5kIHRoZSBpbmNvbWUKKyhpZiBhbnkpIGlzIGxvdywgYSBjaGlsZCBpcyBsdWNreSBpZiBpdCBnZXRzIGhlYWx0aHkgZm9vZC4gIENsb3RoZXMsIG1lZGljYWwKK2NhcmUgYW5kIHNjaG9vbGluZyBpcyBiZXlvbmQgaXRzIHJlYWNoLiAgVG8gaGVscCB0aGVzZSBuZWVkeSBjaGlsZHJlbiwgYQorc3BvbnNvcnNoaXAgcHJvZ3JhbSB3YXMgcHV0IGludG8gcGxhY2UuICBBIGNoaWxkIGNhbiBiZSBmaW5hbmNpYWxseSBhZG9wdGVkLgorRm9yIGEgZmV3IGRvbGxhcnMgYSBtb250aCBLQ0Mgc2VlcyB0byBpdCB0aGF0IHRoZSBjaGlsZCBnZXRzIGluZGlzcGVuc2FibGUKK2l0ZW1zLCBpcyBoZWFsdGh5LCBnb2VzIHRvIHNjaG9vbCBhbmQgS0NDIHRha2VzIGNhcmUgb2YgYW55dGhpbmcgZWxzZSB0aGF0CituZWVkcyB0byBiZSBkb25lIGZvciB0aGUgY2hpbGQgYW5kIHRoZSBmYW1pbHkgdGhhdCBzdXBwb3J0cyBpdC4KKworQmVzaWRlcyBoZWxwaW5nIHRoZSBjaGlsZCBkaXJlY3RseSwgdGhlIGVudmlyb25tZW50IHdoZXJlIHRoZSBjaGlsZCBncm93cyB1cAorbmVlZHMgdG8gYmUgaW1wcm92ZWQuICBLQ0MgaGVscHMgc2Nob29scyB0byBpbXByb3ZlIHRoZWlyIHRlYWNoaW5nIG1ldGhvZHMuCitUaGVyZSBpcyBhIGRlbW9uc3RyYXRpb24gc2Nob29sIGF0IHRoZSBjZW50cmUgYW5kIHRlYWNoZXIgdHJhaW5pbmdzIGFyZSBnaXZlbi4KK0hlYWx0aCB3b3JrZXJzIGFyZSBiZWluZyB0cmFpbmVkLCBoeWdpZW5lIGVkdWNhdGlvbiBpcyBjYXJyaWVkIG91dCBhbmQKK2hvdXNlaG9sZHMgYXJlIHN0aW11bGF0ZWQgdG8gYnVpbGQgYSBwcm9wZXIgbGF0cmluZS4gIEkgaGVscGVkIHNldHRpbmcgdXAgYQorcHJvZHVjdGlvbiBzaXRlIGZvciBjZW1lbnQgc2xhYnMuICBUaGVzZSBhcmUgdXNlZCB0byBidWlsZCBhIGdvb2QgbGF0cmluZS4KK1RoZXkgYXJlIHNvbGQgYmVsb3cgY29zdCBwcmljZS4KKworVGhlcmUgaXMgYSBzbWFsbCBjbGluaWMgYXQgdGhlIHByb2plY3QsIHdoaWNoIHByb3ZpZGVzIGNoaWxkcmVuIGFuZCB0aGVpcgorZmFtaWx5IHdpdGggbWVkaWNhbCBoZWxwLiAgV2hlbiBuZWVkZWQsIHRyYW5zcG9ydCB0byBhIGhvc3BpdGFsIGlzIG9mZmVyZWQuCitJbW11bml6YXRpb24gcHJvZ3JhbXMgYXJlIGNhcnJpZWQgb3V0IGFuZCBoZWxwIGlzIHByb3ZpZGVkIHdoZW4gYW4gZXBpZGVtaWMgaXMKK2JyZWFraW5nIG91dCAobWVhc2xlcyBhbmQgY2hvbGVyYSBoYXZlIGJlZW4gYSBwcm9ibGVtKS4KKworU3VtbWVyIDE5OTQgdG8gc3VtbWVyIDE5OTUgSSBzcGVudCBhIHdob2xlIHllYXIgYXQgdGhlIGNlbnRyZSwgd29ya2luZyBhcyBhCit2b2x1bnRlZXIuICBJIGhhdmUgaGVscGVkIHRvIGV4cGFuZCB0aGUgY2VudHJlIGFuZCB3b3JrZWQgaW4gdGhlIGFyZWEgb2Ygd2F0ZXIKK2FuZCBzYW5pdGF0aW9uLiAgSSBsZWFybmVkIHRoYXQgdGhlIGhlbHAgdGhhdCB0aGUgS0NDIHByb3ZpZGVzIHJlYWxseSBoZWxwcy4KK05vdyB0aGF0IEknbSBiYWNrIGluIEhvbGxhbmQsIEkgd291bGQgbGlrZSB0byBjb250aW51ZSBzdXBwb3J0aW5nIEtDQy4gIFRvIGRvCit0aGlzIEknbSByYWlzaW5nIGZ1bmRzIGFuZCBvcmdhbml6aW5nIHRoZSBzcG9uc29yc2hpcCBwcm9ncmFtLiAgUGxlYXNlCitjb25zaWRlciBvbmUgb2YgdGhlc2UgcG9zc2liaWxpdGllczoKKworMS4gIFNwb25zb3IgYSBjaGlsZCBpbiBwcmltYXJ5IHNjaG9vbDogMTcgZXVybyBhIG1vbnRoIChvciBtb3JlKS4KKzIuICBTcG9uc29yIGEgY2hpbGQgaW4gc2Vjb25kYXJ5IHNjaG9vbDogMjUgZXVybyBhIG1vbnRoIChvciBtb3JlKS4KKzMuICBTcG9uc29yIHRoZSBjbGluaWM6IEFueSBhbW91bnQgYSBtb250aCBvciBxdWFydGVyCis0LiAgQSBvbmUtdGltZSBkb25hdGlvbgorCitDb21wYXJlZCB3aXRoIG90aGVyIG9yZ2FuaXphdGlvbnMgdGhhdCBkbyBjaGlsZCBzcG9uc29yc2hpcCB0aGUgYW1vdW50cyBhcmUKK3ZlcnkgbG93LiAgVGhpcyBpcyBiZWNhdXNlIHRoZSBtb25leSBnb2VzIGRpcmVjdGx5IHRvIHRoZSBjZW50cmUuICBMZXNzIHRoYW4KKzUlIGlzIHVzZWQgZm9yIGFkbWluaXN0cmF0aW9uLiAgVGhpcyBpcyBwb3NzaWJsZSBiZWNhdXNlIHRoaXMgaXMgYSBzbWFsbAorb3JnYW5pemF0aW9uIHRoYXQgd29ya3Mgd2l0aCB2b2x1bnRlZXJzLiAgSWYgeW91IHdvdWxkIGxpa2UgdG8gc3BvbnNvciBhCitjaGlsZCwgeW91IHNob3VsZCBoYXZlIHRoZSBpbnRlbnRpb24gdG8gZG8gdGhpcyBmb3IgYXQgbGVhc3Qgb25lIHllYXIuCisKK0hvdyBkbyB5b3Uga25vdyB0aGF0IHRoZSBtb25leSB3aWxsIGJlIHNwZW50IHJpZ2h0PyAgRmlyc3Qgb2YgYWxsIHlvdSBoYXZlIG15CitwZXJzb25hbCBndWFyYW50ZWUgYXMgdGhlIGF1dGhvciBvZiBWaW0uICBJIHRydXN0IHRoZSBwZW9wbGUgdGhhdCBhcmUgd29ya2luZworYXQgdGhlIGNlbnRyZSwgSSBrbm93IHRoZW0gcGVyc29uYWxseS4gIEZ1cnRoZXIgbW9yZSwgdGhlIGNlbnRyZSBpcworY28tc3BvbnNvcmVkIGFuZCBpbnNwZWN0ZWQgYnkgV29ybGQgVmlzaW9uLCBTYXZlIHRoZSBDaGlsZHJlbiBGdW5kIGFuZAorSW50ZXJuYXRpb25hbCBDaGlsZCBDYXJlIEZ1bmQuICBUaGUgY2VudHJlIGlzIHZpc2l0ZWQgYWJvdXQgb25jZSBhIHllYXIgdG8KK2NoZWNrIHRoZSBwcm9ncmVzcyAoYXQgb3VyIG93biBjb3N0KS4gIEkgaGF2ZSB2aXNpdGVkIHRoZSBjZW50cmUgbXlzZWxmIGluCisxOTk2LCAxOTk4LCAyMDAwLCAyMDAxIGFuZCAyMDAzLiAgVGhlIHZpc2l0IHJlcG9ydHMgYXJlIG9uIHRoZSBJQ0NGIHdlYiBzaXRlLgorCitJZiB5b3UgaGF2ZSBhbnkgZnVydGhlciBxdWVzdGlvbnMsIHNlbmQgbWUgZS1tYWlsOiA8QnJhbUB2aW0ub3JnPi4KKworVGhlIGFkZHJlc3Mgb2YgdGhlIGNlbnRyZSBpczoKKwkJCUtpYmFhbGUgQ2hpbGRyZW4ncyBDZW50cmUKKwkJCXAuby4gYm94IDE2NTgKKwkJCU1hc2FrYSwgVWdhbmRhLCBFYXN0IEFmcmljYQorCitTZW5kaW5nIG1vbmV5OgorCitDaGVjayB0aGUgSUNDRiB3ZWIgc2l0ZSBmb3IgdGhlIGxhdGVzdCBpbmZvcm1hdGlvbiEgIFNlZSB8aWNjZnwgZm9yIHRoZSBVUkwuCisKK1VTQToJCVRoZSBtZXRob2RzIG1lbnRpb25lZCBiZWxvdyBjYW4gYmUgdXNlZC4gIEFsdGVybmF0aXZlbHksIHlvdQorCQljYW4gc2VuZCBhIGNoZWNrIHRvIHRoZSBOZWhlbWlhaCBHcm91cCBPdXRyZWFjaCBTb2NpZXR5CisJCShOR09TKS4gIFRoaXMgd2lsbCByZWR1Y2UgYmFua2luZyBjb3N0cyBhbmQgeW91IGNhbiBnZXQgYW4gSVJTCisJCXRheCByZWNlaXB0LiAgVGhlIE5HT1MgZm9yd2FyZHMgdGhlIGZ1bmRzIGRpcmVjdGx5IHRvIHRoZQorCQlLaWJhYWxlIHByb2plY3QgaW4gVWdhbmRhLiAgQ2hlY2tzIG11c3QgYmUgbWFkZSBwYXlhYmxlIHRvCisJCU5HT1MgYnV0IHBsZWFzZSBub3RlIG9uIHRoZSBjaGVjayAiZG9uYXRpb24gS2liYWFsZSIuICBNYWlsCisJCWNoZWNrcyB0bzoKKwkJCU5HT1MKKwkJCVAuTy4gQm94IDUwODYyCisJCQlJbmRpYW5hcG9saXMsIElOIDQ1MjUwCisJCVF1ZXN0aW9ucyByZWdhcmRpbmcgdGhlIE5laGVtaWFoIEdyb3VwIE91dHJlYWNoIFNvY2lldHkgKE5HT1MpCisJCXNob3VsZCBiZSBkaXJlY3RlZCB0bzogUm9zcyBkZU1lcmNoYW50LCBFeGVjdXRpdmUgRGlyZWN0b3IgLQorCQlyLmRlbWVyY2hhbnQgQVQgc2JjZ2xvYmFsIERPVCBuZXQuCisJCUZvciBzcG9uc29yaW5nIGEgY2hpbGQgY29udGFjdCBLQ0YgaW4gQ2FuYWRhIChzZWUgYmVsb3cpIGFuZAorCQlzZW5kIHRoZSBjaGVjayB0byBOR09TIGluIEluZGlhbmFwb2xpcy4KKworQ2FuYWRhOgkJQ29udGFjdCBLaWJhYWxlIENoaWxkcmVuJ3MgRnVuZCAoS0NGKSBpbiBTdXJyZXksIENhbmFkYS4gIFRoZXkKKwkJdGFrZSBjYXJlIG9mIHRoZSBDYW5hZGlhbiBzcG9uc29ycyBmb3IgdGhlIGNoaWxkcmVuIGluCisJCUtpYmFhbGUuICBLQ0YgZm9yd2FyZHMgMTAwJSBvZiB0aGUgbW9uZXkgdG8gdGhlIHByb2plY3QgaW4KKwkJVWdhbmRhLiAgWW91IGNhbiBzZW5kIHRoZW0gYSBvbmUgdGltZSBkb25hdGlvbiBkaXJlY3RseS4KKwkJUGxlYXNlIHNlbmQgbWUgYSBub3RlIHNvIHRoYXQgSSBrbm93IHdoYXQgaGFzIGJlZW4gZG9uYXRlZAorCQliZWNhdXNlIG9mIFZpbS4gIEFzayBLQ0YgZm9yIGluZm9ybWF0aW9uIGFib3V0IHNwb25zb3JzaGlwLgorCQkJS2liYWFsZSBDaGlsZHJlbidzIEZ1bmQgYy9vIFBhY2lmaWMgQWNhZGVteQorCQkJMTAyMzgtMTY4IFN0cmVldAorCQkJU3VycmV5LCBCLkMuIFY0TiAxWjQKKwkJCUNhbmFkYQorCQkJUGhvbmU6IDYwNC01ODEtNTM1MworCQlJZiB5b3UgbWFrZSBhIGRvbmF0aW9uIHRvIEtpYmFhbGUgQ2hpbGRyZW4ncyBGdW5kIChLQ0YpIHlvdQorCQl3aWxsIHJlY2VpdmUgYSB0YXggcmVjZWlwdCB3aGljaCBjYW4gYmUgc3VibWl0dGVkIHdpdGggeW91cgorCQl0YXggcmV0dXJuLgorCitIb2xsYW5kOglUcmFuc2ZlciB0byB0aGUgYWNjb3VudCBvZiAiU3RpY2h0aW5nIElDQ0YgSG9sbGFuZCIgaW4gVmVubG8uCisJCVRoaXMgd2lsbCBhbGxvdyBmb3IgdGF4IGRlZHVjdGlvbiBpZiB5b3UgbGl2ZSBpbiBIb2xsYW5kLgorCQkJUG9zdGJhbmssIG5yLiA0NTQ4Nzc0CisKK0dlcm1hbnk6CUl0IGlzIHBvc3NpYmxlIHRvIG1ha2UgZG9uYXRpb25zIHRoYXQgYWxsb3cgZm9yIGEgdGF4IHJldHVybi4KKwkJQ2hlY2sgdGhlIElDQ0Ygd2ViIHNpdGUgZm9yIHRoZSBsYXRlc3QgaW5mb3JtYXRpb246CisJCQlodHRwOi8vaWNjZi1ob2xsYW5kLm9yZy9nZXJtYW55Lmh0bWwKKworV29ybGQ6CQlVc2UgYSBwb3N0YWwgbW9uZXkgb3JkZXIuICBUaGF0IHNob3VsZCBiZSBwb3NzaWJsZSBmcm9tIGFueQorCQljb3VudHJ5LCBtb3N0bHkgZnJvbSB0aGUgcG9zdCBvZmZpY2UuICBVc2UgdGhpcyBuYW1lICh3aGljaCBpcworCQlpbiBteSBwYXNzcG9ydCk6ICJBYnJhaGFtIE1vb2xlbmFhciIuICBVc2UgRXVybyBmb3IgdGhlCisJCWN1cnJlbmN5IGlmIHBvc3NpYmxlLgorCitFdXJvcGU6CQlVc2UgYSBiYW5rIHRyYW5zZmVyIGlmIHBvc3NpYmxlLiAgWW91ciBiYW5rIHNob3VsZCBoYXZlIGEgZm9ybQorCQl0aGF0IHlvdSBjYW4gdXNlIGZvciB0aGlzLiAgU2VlICJPdGhlcnMiIGJlbG93IGZvciB0aGUgc3dpZnQKKwkJY29kZSBhbmQgSUJBTiBudW1iZXIuCisJCUFueSBvdGhlciBtZXRob2Qgc2hvdWxkIHdvcmsuICBBc2sgZm9yIGluZm9ybWF0aW9uIGFib3V0CisJCXNwb25zb3JzaGlwLgorCitDcmVkaXQgQ2FyZDoJWW91IGNhbiB1c2UgUGF5UGFsIHRvIHNlbmQgbW9uZXkgd2l0aCBhIENyZWRpdCBjYXJkLiAgVGhpcyBpcworCQl0aGUgbW9zdCB3aWRlbHkgdXNlZCBJbnRlcm5ldCBiYXNlZCBwYXltZW50IHN5c3RlbS4gIEl0J3MKKwkJcmVhbGx5IHNpbXBsZSB0byB1c2UuICBVc2UgdGhpcyBsaW5rIHRvIGZpbmQgbW9yZSBpbmZvOgorCQkgICAgaHR0cHM6Ly93d3cucGF5cGFsLmNvbS9hZmZpbC9wYWw9QnJhbSU0MGljY2YtaG9sbGFuZC5vcmcKKwkJVGhlIGUtbWFpbCBhZGRyZXNzIGZvciBzZW5kaW5nIHRoZSBtb25leSB0byBpczoKKwkJICAgIEJyYW1AaWNjZi1ob2xsYW5kLm9yZworCQlGb3IgYW1vdW50cyBhYm92ZSA0MDAgRXVybyAoJDUwMCkgc2VuZGluZyBhIGNoZWNrIGlzCisJCXByZWZlcnJlZC4KKworT3RoZXJzOgkJVHJhbnNmZXIgdG8gb25lIG9mIHRoZXNlIGFjY291bnRzIGlmIHBvc3NpYmxlOgorCQkgICAgUG9zdGJhbmssIGFjY291bnQgNDU0ODc3NAorCQkJCVN3aWZ0IGNvZGU6IElOR0IgTkwgMkEKKwkJCQlJQkFOOiBOTDQ3IFBTVEIgMDAwNCA1NDg3IDc0CisJCQl1bmRlciB0aGUgbmFtZSAic3RpY2h0aW5nIElDQ0YgSG9sbGFuZCIsIFZlbmxvCisJCSAgICBJZiB0aGF0IGRvZXNuJ3Qgd29yazoKKwkJICAgIFJhYm9iYW5rIFZlbmxvLCBhY2NvdW50IDM3NjUuMDUuMTE3CisJCQkJU3dpZnQgY29kZTogUkFCTyBOTCAyVQorCQkJdW5kZXIgdGhlIG5hbWUgIkJyYW0gTW9vbGVuYWFyIiwgVmVubG8KKwkJT3RoZXJ3aXNlLCBzZW5kIGEgY2hlY2sgaW4gZXVybyBvciBVUyBkb2xsYXJzIHRvIHRoZSBhZGRyZXNzCisJCWJlbG93LiAgTWluaW1hbCBhbW91bnQ6ICQ3MCAobXkgYmFuayBkb2VzIG5vdCBhY2NlcHQgc21hbGxlcgorCQlhbW91bnRzIGZvciBmb3JlaWduIGNoZWNrLCBzb3JyeSkKKworQWRkcmVzcyB0byBzZW5kIGNoZWNrcyB0bzoKKwkJCXN0aWNodGluZyBJQ0NGIEhvbGxhbmQKKwkJCUJyYW0gTW9vbGVuYWFyCisJCQlNb2xlbnN0cmFhdCAyCisJCQkyMTYxIEhQIExpc3NlCisJCQlUaGUgTmV0aGVybGFuZHMKKworVGhpcyBhZGRyZXNzIGlzIGV4cGVjdGVkIHRvIGJlIHZhbGlkIGZvciBhIGxvbmcgdGltZS4gIFRoZSBhZGRyZXNzIGluIFZlbmxvCit3aWxsIG5vdCBiZSB2YWxpZCBhZnRlciBKdW5lIDIwMDYuCisKKyB0cz04OmZ0PWhlbHA6bm9ybDoKZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL3VnYW5kYS50eHQgYi9ydW50aW1lL2RvYy91Z2FuZGEudHh0CmluZGV4IGRhYmNlOTMuLmMwYTUwYzggMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvZG9jL3VnYW5kYS50eHQKKysrIGIvcnVudGltZS9kb2MvdWdhbmRhLnR4dApAQCAtMSw0ICsxLDQgQEAKLSp1Z2FuZGEudHh0KiAgICBGb3IgVmltIHZlcnNpb24gNy4wZi4gIExhc3QgY2hhbmdlOiAyMDA2IEFwciAyNAorKnVnYW5kYS50eHQqICAgIEZvciBWaW0gdmVyc2lvbiA3LjBnLiAgTGFzdCBjaGFuZ2U6IDIwMDYgQXByIDI0CiAKIAogCQkgIFZJTSBSRUZFUkVOQ0UgTUFOVUFMICAgIGJ5IEJyYW0gTW9vbGVuYWFyCmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy91bmRvLnR4dCBiL3J1bnRpbWUvZG9jL3VuZG8udHh0CmluZGV4IDEwYjMyOGQuLjhjN2RhOWIgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvZG9jL3VuZG8udHh0CisrKyBiL3J1bnRpbWUvZG9jL3VuZG8udHh0CkBAIC0xLDQgKzEsNCBAQAotKnVuZG8udHh0KiAgICAgIEZvciBWaW0gdmVyc2lvbiA3LjBmLiAgTGFzdCBjaGFuZ2U6IDIwMDYgQXByIDI0CisqdW5kby50eHQqICAgICAgRm9yIFZpbSB2ZXJzaW9uIDcuMGcuICBMYXN0IGNoYW5nZTogMjAwNiBBcHIgMzAKIAogCiAJCSAgVklNIFJFRkVSRU5DRSBNQU5VQUwgICAgYnkgQnJhbSBNb29sZW5hYXIKQEAgLTExOSw4ICsxMTksOCBAQAogCQkJCQkJCSo6dW5kb2wqICo6dW5kb2xpc3QqCiA6dW5kb2xbaXN0XQkJTGlzdCB0aGUgbGVhZnMgaW4gdGhlIHRyZWUgb2YgY2hhbmdlcy4gIEV4YW1wbGU6CiAJCQkJbnVtYmVyIGNoYW5nZXMgICB0aW1lIH4KLQkJCQk0ICAgICAgMTAgICAgICAgIDEwOjM0OjExCi0JCQkJMTggICAgIDQgICAgICAgICAxMTowMTo0NgorCQkJCTQgICAgICAxMAkgMTA6MzQ6MTEKKwkJCQkxOCAgICAgNAkgMTE6MDE6NDYKIAogCQkJVGhlICJudW1iZXIiIGNvbHVtbiBpcyB0aGUgY2hhbmdlIG51bWJlci4gIFRoaXMgbnVtYmVyCiAJCQljb250aW51b3VzbHkgaW5jcmVhc2VzIGFuZCBjYW4gYmUgdXNlZCB0byBpZGVudGlmeSBhCmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy91c3JfMDEudHh0IGIvcnVudGltZS9kb2MvdXNyXzAxLnR4dAppbmRleCA4YjQ4NDMwLi44OTg3NDJkIDEwMDY0NAotLS0gYS9ydW50aW1lL2RvYy91c3JfMDEudHh0CisrKyBiL3J1bnRpbWUvZG9jL3Vzcl8wMS50eHQKQEAgLTEsNCArMSw0IEBACi0qdXNyXzAxLnR4dCoJRm9yIFZpbSB2ZXJzaW9uIDcuMGYuICBMYXN0IGNoYW5nZTogMjAwNiBBcHIgMjQKKyp1c3JfMDEudHh0KglGb3IgVmltIHZlcnNpb24gNy4wZy4gIExhc3QgY2hhbmdlOiAyMDA2IEFwciAyNAogCiAJCSAgICAgVklNIFVTRVIgTUFOVUFMIC0gYnkgQnJhbSBNb29sZW5hYXIKIApkaWZmIC0tZ2l0IGEvcnVudGltZS9kb2MvdXNyXzAyLnR4dCBiL3J1bnRpbWUvZG9jL3Vzcl8wMi50eHQKaW5kZXggNjA3NGViZi4uMTU1OWMwYiAxMDA2NDQKLS0tIGEvcnVudGltZS9kb2MvdXNyXzAyLnR4dAorKysgYi9ydW50aW1lL2RvYy91c3JfMDIudHh0CkBAIC0xLDQgKzEsNCBAQAotKnVzcl8wMi50eHQqCUZvciBWaW0gdmVyc2lvbiA3LjBmLiAgTGFzdCBjaGFuZ2U6IDIwMDYgQXByIDI0CisqdXNyXzAyLnR4dCoJRm9yIFZpbSB2ZXJzaW9uIDcuMGcuICBMYXN0IGNoYW5nZTogMjAwNiBBcHIgMjQKIAogCQkgICAgIFZJTSBVU0VSIE1BTlVBTCAtIGJ5IEJyYW0gTW9vbGVuYWFyCiAKZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL3Vzcl8wMy50eHQgYi9ydW50aW1lL2RvYy91c3JfMDMudHh0CmluZGV4IGEwYmNkNjAuLjUzZWYwNTYgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvZG9jL3Vzcl8wMy50eHQKKysrIGIvcnVudGltZS9kb2MvdXNyXzAzLnR4dApAQCAtMSw0ICsxLDQgQEAKLSp1c3JfMDMudHh0KglGb3IgVmltIHZlcnNpb24gNy4wZi4gIExhc3QgY2hhbmdlOiAyMDA2IEFwciAyNAorKnVzcl8wMy50eHQqCUZvciBWaW0gdmVyc2lvbiA3LjBnLiAgTGFzdCBjaGFuZ2U6IDIwMDYgQXByIDI0CiAKIAkJICAgICBWSU0gVVNFUiBNQU5VQUwgLSBieSBCcmFtIE1vb2xlbmFhcgogCmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy91c3JfMDQudHh0IGIvcnVudGltZS9kb2MvdXNyXzA0LnR4dAppbmRleCAyZDJmYTM5Li5kYmEzYjVlIDEwMDY0NAotLS0gYS9ydW50aW1lL2RvYy91c3JfMDQudHh0CisrKyBiL3J1bnRpbWUvZG9jL3Vzcl8wNC50eHQKQEAgLTEsNCArMSw0IEBACi0qdXNyXzA0LnR4dCoJRm9yIFZpbSB2ZXJzaW9uIDcuMGYuICBMYXN0IGNoYW5nZTogMjAwNiBBcHIgMjQKKyp1c3JfMDQudHh0KglGb3IgVmltIHZlcnNpb24gNy4wZy4gIExhc3QgY2hhbmdlOiAyMDA2IEFwciAyNAogCiAJCSAgICAgVklNIFVTRVIgTUFOVUFMIC0gYnkgQnJhbSBNb29sZW5hYXIKIApkaWZmIC0tZ2l0IGEvcnVudGltZS9kb2MvdXNyXzA1LnR4dCBiL3J1bnRpbWUvZG9jL3Vzcl8wNS50eHQKaW5kZXggMDJkODI4OS4uZDRlMTg5YyAxMDA2NDQKLS0tIGEvcnVudGltZS9kb2MvdXNyXzA1LnR4dAorKysgYi9ydW50aW1lL2RvYy91c3JfMDUudHh0CkBAIC0xLDQgKzEsNCBAQAotKnVzcl8wNS50eHQqCUZvciBWaW0gdmVyc2lvbiA3LjBmLiAgTGFzdCBjaGFuZ2U6IDIwMDYgQXByIDI0CisqdXNyXzA1LnR4dCoJRm9yIFZpbSB2ZXJzaW9uIDcuMGcuICBMYXN0IGNoYW5nZTogMjAwNiBBcHIgMjQKIAogCQkgICAgIFZJTSBVU0VSIE1BTlVBTCAtIGJ5IEJyYW0gTW9vbGVuYWFyCiAKZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL3Vzcl8wNi50eHQgYi9ydW50aW1lL2RvYy91c3JfMDYudHh0CmluZGV4IGU4MzRmOGQuLmRjOTExZmYgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvZG9jL3Vzcl8wNi50eHQKKysrIGIvcnVudGltZS9kb2MvdXNyXzA2LnR4dApAQCAtMSw0ICsxLDQgQEAKLSp1c3JfMDYudHh0KglGb3IgVmltIHZlcnNpb24gNy4wZi4gIExhc3QgY2hhbmdlOiAyMDA2IEFwciAyNAorKnVzcl8wNi50eHQqCUZvciBWaW0gdmVyc2lvbiA3LjBnLiAgTGFzdCBjaGFuZ2U6IDIwMDYgQXByIDI0CiAKIAkJICAgICBWSU0gVVNFUiBNQU5VQUwgLSBieSBCcmFtIE1vb2xlbmFhcgogCmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy91c3JfMDcudHh0IGIvcnVudGltZS9kb2MvdXNyXzA3LnR4dAppbmRleCAyOTYxYzdjLi4yZGZmNDI3IDEwMDY0NAotLS0gYS9ydW50aW1lL2RvYy91c3JfMDcudHh0CisrKyBiL3J1bnRpbWUvZG9jL3Vzcl8wNy50eHQKQEAgLTEsNCArMSw0IEBACi0qdXNyXzA3LnR4dCoJRm9yIFZpbSB2ZXJzaW9uIDcuMGYuICBMYXN0IGNoYW5nZTogMjAwNiBBcHIgMjQKKyp1c3JfMDcudHh0KglGb3IgVmltIHZlcnNpb24gNy4wZy4gIExhc3QgY2hhbmdlOiAyMDA2IEFwciAyNAogCiAJCSAgICAgVklNIFVTRVIgTUFOVUFMIC0gYnkgQnJhbSBNb29sZW5hYXIKIApkaWZmIC0tZ2l0IGEvcnVudGltZS9kb2MvdXNyXzA4LnR4dCBiL3J1bnRpbWUvZG9jL3Vzcl8wOC50eHQKaW5kZXggN2FhYjAzMC4uMzAzOGMwZCAxMDA2NDQKLS0tIGEvcnVudGltZS9kb2MvdXNyXzA4LnR4dAorKysgYi9ydW50aW1lL2RvYy91c3JfMDgudHh0CkBAIC0xLDQgKzEsNCBAQAotKnVzcl8wOC50eHQqCUZvciBWaW0gdmVyc2lvbiA3LjBmLiAgTGFzdCBjaGFuZ2U6IDIwMDYgQXByIDI0CisqdXNyXzA4LnR4dCoJRm9yIFZpbSB2ZXJzaW9uIDcuMGcuICBMYXN0IGNoYW5nZTogMjAwNiBBcHIgMzAKIAogCQkgICAgIFZJTSBVU0VSIE1BTlVBTCAtIGJ5IEJyYW0gTW9vbGVuYWFyCiAKQEAgLTUyMSwxMiArNTIxLDEyIEBACiAKIAkrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKIAl8IHRoaXNmaWxlIHwgL3RoYXRmaWxlLyBfX19fX19fX19fWHwgICAgKHRoYXRmaWxlIGlzIGJvbGQpCi0JfC8qIHRoYXRmaWxlICovICAJCSAgIHwKKwl8LyogdGhhdGZpbGUgKi8JCQkgICB8CiAJfHRoYXQJCQkJICAgfAogCXx0aGF0CQkJCSAgIHwKLQl8fiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKLQl8fiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKLQl8fiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKKwl8fgkJCQkgICB8CisJfH4JCQkJICAgfAorCXx+CQkJCSAgIHwKIAl8CQkJCSAgIHwKIAkrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKIApAQCAtNTM4LDEyICs1MzgsMTIgQEAKIAogCSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKwogCXwgL3RoaXNmaWxlLyB8IHRoYXRmaWxlIF9fX19fX19fX19YfCAgICAodGhpc2ZpbGUgaXMgYm9sZCkKLQl8LyogdGhpc2ZpbGUgKi8gIAkJICAgfAorCXwvKiB0aGlzZmlsZSAqLwkJCSAgIHwKIAl8dGhpcwkJCQkgICB8CiAJfHRoaXMJCQkJICAgfAotCXx+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAotCXx+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAotCXx+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAorCXx+CQkJCSAgIHwKKwl8fgkJCQkgICB8CisJfH4JCQkJICAgfAogCXwJCQkJICAgfAogCSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKwogCkBAIC01NjAsMTIgKzU2MCwxMiBAQAogCiAJKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCiAJfCB0aGlzZmlsZSB8IC90aGlzZmlsZS8gfCB0aGF0ZmlsZSBfX1h8ICAgKHRoaXNmaWxlIGlzIGJvbGQpCi0JfC8qIHRoaXNmaWxlICovICAJCSAgICAgIHwKKwl8LyogdGhpc2ZpbGUgKi8JCQkgICAgICB8CiAJfHRoaXMJCQkJICAgICAgfAogCXx0aGlzCQkJCSAgICAgIHwKLQl8fiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKLQl8fiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKLQl8fiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKKwl8fgkJCQkgICAgICB8CisJfH4JCQkJICAgICAgfAorCXx+CQkJCSAgICAgIHwKIAl8CQkJCSAgICAgIHwKIAkrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKIApAQCAtNTc5LDE3ICs1NzksMTcgQEAKIEEgZmV3IG1vcmUgdGhpbmdzIHlvdSBjYW4gZG8gd2l0aCB0YWIgcGFnZXM6CiAKIC0gY2xpY2sgd2l0aCB0aGUgbW91c2UgaW4gdGhlIHNwYWNlIGFmdGVyIHRoZSBsYXN0IGxhYmVsCi0gIAlUaGUgbmV4dCB0YWIgcGFnZSB3aWxsIGJlIHNlbGVjdGVkLCBsaWtlIHdpdGggImd0Ii4KKwlUaGUgbmV4dCB0YWIgcGFnZSB3aWxsIGJlIHNlbGVjdGVkLCBsaWtlIHdpdGggImd0Ii4KIAogLSBjbGljayB3aXRoIHRoZSBtb3VzZSBvbiB0aGUgIlgiIGluIHRoZSB0b3AgcmlnaHQgY29ybmVyCi0gIAlUaGUgY3VycmVudCB0YWIgcGFnZSB3aWxsIGJlIGNsb3NlZC4gIFVubGVzcyB0aGVyZSBhcmUgdW5zYXZlZAorCVRoZSBjdXJyZW50IHRhYiBwYWdlIHdpbGwgYmUgY2xvc2VkLiAgVW5sZXNzIHRoZXJlIGFyZSB1bnNhdmVkCiAJY2hhbmdlcyBpbiB0aGUgY3VycmVudCB0YWIgcGFnZS4KIAogLSBkb3VibGUgY2xpY2sgd2l0aCB0aGUgbW91c2UgaW4gdGhlIHRvcCBsaW5lCi0gIAlBIG5ldyB0YWIgcGFnZSB3aWxsIGJlIGNyZWF0ZWQuCisJQSBuZXcgdGFiIHBhZ2Ugd2lsbCBiZSBjcmVhdGVkLgogCiAtIHRoZSAidGFib25seSIgY29tbWFuZAotICAJQ2xvc2VzIGFsbCB0YWIgcGFnZXMgZXhjZXB0IHRoZSBjdXJyZW50IG9uZS4gIFVubGVzcyB0aGVyZSBhcmUgdW5zYXZlZAorCUNsb3NlcyBhbGwgdGFiIHBhZ2VzIGV4Y2VwdCB0aGUgY3VycmVudCBvbmUuICBVbmxlc3MgdGhlcmUgYXJlIHVuc2F2ZWQKIAljaGFuZ2VzIGluIG90aGVyIHRhYiBwYWdlcy4KIAogRm9yIG1vcmUgaW5mb3JtYXRpb24gYWJvdXQgdGFiIHBhZ2VzIHNlZSB8dGFiLXBhZ2V8LgpkaWZmIC0tZ2l0IGEvcnVudGltZS9kb2MvdXNyXzA5LnR4dCBiL3J1bnRpbWUvZG9jL3Vzcl8wOS50eHQKaW5kZXggZmE5MDI0Mi4uZDE1Zjg5ZSAxMDA2NDQKLS0tIGEvcnVudGltZS9kb2MvdXNyXzA5LnR4dAorKysgYi9ydW50aW1lL2RvYy91c3JfMDkudHh0CkBAIC0xLDQgKzEsNCBAQAotKnVzcl8wOS50eHQqCUZvciBWaW0gdmVyc2lvbiA3LjBmLiAgTGFzdCBjaGFuZ2U6IDIwMDYgQXByIDI0CisqdXNyXzA5LnR4dCoJRm9yIFZpbSB2ZXJzaW9uIDcuMGcuICBMYXN0IGNoYW5nZTogMjAwNiBBcHIgMjQKIAogCQkgICAgIFZJTSBVU0VSIE1BTlVBTCAtIGJ5IEJyYW0gTW9vbGVuYWFyCiAKZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL3Vzcl8xMC50eHQgYi9ydW50aW1lL2RvYy91c3JfMTAudHh0CmluZGV4IGVjODdiZWUuLjJjMDQ2NzMgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvZG9jL3Vzcl8xMC50eHQKKysrIGIvcnVudGltZS9kb2MvdXNyXzEwLnR4dApAQCAtMSw0ICsxLDQgQEAKLSp1c3JfMTAudHh0KglGb3IgVmltIHZlcnNpb24gNy4wZi4gIExhc3QgY2hhbmdlOiAyMDA2IEFwciAyNAorKnVzcl8xMC50eHQqCUZvciBWaW0gdmVyc2lvbiA3LjBnLiAgTGFzdCBjaGFuZ2U6IDIwMDYgQXByIDI0CiAKIAkJICAgICBWSU0gVVNFUiBNQU5VQUwgLSBieSBCcmFtIE1vb2xlbmFhcgogCmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy91c3JfMTEudHh0IGIvcnVudGltZS9kb2MvdXNyXzExLnR4dAppbmRleCA0NzljZGIxLi40MTIwNWVjIDEwMDY0NAotLS0gYS9ydW50aW1lL2RvYy91c3JfMTEudHh0CisrKyBiL3J1bnRpbWUvZG9jL3Vzcl8xMS50eHQKQEAgLTEsNCArMSw0IEBACi0qdXNyXzExLnR4dCoJRm9yIFZpbSB2ZXJzaW9uIDcuMGYuICBMYXN0IGNoYW5nZTogMjAwNiBBcHIgMjQKKyp1c3JfMTEudHh0KglGb3IgVmltIHZlcnNpb24gNy4wZy4gIExhc3QgY2hhbmdlOiAyMDA2IEFwciAyNAogCiAJCSAgICAgVklNIFVTRVIgTUFOVUFMIC0gYnkgQnJhbSBNb29sZW5hYXIKIApkaWZmIC0tZ2l0IGEvcnVudGltZS9kb2MvdXNyXzEyLnR4dCBiL3J1bnRpbWUvZG9jL3Vzcl8xMi50eHQKaW5kZXggYjU5YjNlYy4uMDQ0NTQ5ZSAxMDA2NDQKLS0tIGEvcnVudGltZS9kb2MvdXNyXzEyLnR4dAorKysgYi9ydW50aW1lL2RvYy91c3JfMTIudHh0CkBAIC0xLDQgKzEsNCBAQAotKnVzcl8xMi50eHQqCUZvciBWaW0gdmVyc2lvbiA3LjBmLiAgTGFzdCBjaGFuZ2U6IDIwMDYgQXByIDI0CisqdXNyXzEyLnR4dCoJRm9yIFZpbSB2ZXJzaW9uIDcuMGcuICBMYXN0IGNoYW5nZTogMjAwNiBBcHIgMjQKIAogCQkgICAgIFZJTSBVU0VSIE1BTlVBTCAtIGJ5IEJyYW0gTW9vbGVuYWFyCiAKZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL3Vzcl8yMC50eHQgYi9ydW50aW1lL2RvYy91c3JfMjAudHh0CmluZGV4IDJjYmQ0MjguLmRlMjZhYWIgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvZG9jL3Vzcl8yMC50eHQKKysrIGIvcnVudGltZS9kb2MvdXNyXzIwLnR4dApAQCAtMSw0ICsxLDQgQEAKLSp1c3JfMjAudHh0KglGb3IgVmltIHZlcnNpb24gNy4wZi4gIExhc3QgY2hhbmdlOiAyMDA2IEFwciAyNAorKnVzcl8yMC50eHQqCUZvciBWaW0gdmVyc2lvbiA3LjBnLiAgTGFzdCBjaGFuZ2U6IDIwMDYgQXByIDI0CiAKIAkJICAgICBWSU0gVVNFUiBNQU5VQUwgLSBieSBCcmFtIE1vb2xlbmFhcgogCmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy91c3JfMjEudHh0IGIvcnVudGltZS9kb2MvdXNyXzIxLnR4dAppbmRleCBhNDNmMDI0Li5mOTllODExIDEwMDY0NAotLS0gYS9ydW50aW1lL2RvYy91c3JfMjEudHh0CisrKyBiL3J1bnRpbWUvZG9jL3Vzcl8yMS50eHQKQEAgLTEsNCArMSw0IEBACi0qdXNyXzIxLnR4dCoJRm9yIFZpbSB2ZXJzaW9uIDcuMGYuICBMYXN0IGNoYW5nZTogMjAwNiBBcHIgMjUKKyp1c3JfMjEudHh0KglGb3IgVmltIHZlcnNpb24gNy4wZy4gIExhc3QgY2hhbmdlOiAyMDA2IEFwciAyNQogCiAJCSAgICAgVklNIFVTRVIgTUFOVUFMIC0gYnkgQnJhbSBNb29sZW5hYXIKIApkaWZmIC0tZ2l0IGEvcnVudGltZS9kb2MvdXNyXzIyLnR4dCBiL3J1bnRpbWUvZG9jL3Vzcl8yMi50eHQKaW5kZXggMzFlNWQzOC4uOTBlMmIwOCAxMDA2NDQKLS0tIGEvcnVudGltZS9kb2MvdXNyXzIyLnR4dAorKysgYi9ydW50aW1lL2RvYy91c3JfMjIudHh0CkBAIC0xLDQgKzEsNCBAQAotKnVzcl8yMi50eHQqCUZvciBWaW0gdmVyc2lvbiA3LjBmLiAgTGFzdCBjaGFuZ2U6IDIwMDYgQXByIDI0CisqdXNyXzIyLnR4dCoJRm9yIFZpbSB2ZXJzaW9uIDcuMGcuICBMYXN0IGNoYW5nZTogMjAwNiBBcHIgMjQKIAogCQkgICAgIFZJTSBVU0VSIE1BTlVBTCAtIGJ5IEJyYW0gTW9vbGVuYWFyCiAKZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL3Vzcl8yMy50eHQgYi9ydW50aW1lL2RvYy91c3JfMjMudHh0CmluZGV4IDFjZjc1OTUuLmUxNjhhYmMgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvZG9jL3Vzcl8yMy50eHQKKysrIGIvcnVudGltZS9kb2MvdXNyXzIzLnR4dApAQCAtMSw0ICsxLDQgQEAKLSp1c3JfMjMudHh0KglGb3IgVmltIHZlcnNpb24gNy4wZi4gIExhc3QgY2hhbmdlOiAyMDA2IEFwciAyNAorKnVzcl8yMy50eHQqCUZvciBWaW0gdmVyc2lvbiA3LjBnLiAgTGFzdCBjaGFuZ2U6IDIwMDYgQXByIDI0CiAKIAkJICAgICBWSU0gVVNFUiBNQU5VQUwgLSBieSBCcmFtIE1vb2xlbmFhcgogCmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy91c3JfMjQudHh0IGIvcnVudGltZS9kb2MvdXNyXzI0LnR4dAppbmRleCA5OGMyYTI1Li4xNzVkMDlmIDEwMDY0NAotLS0gYS9ydW50aW1lL2RvYy91c3JfMjQudHh0CisrKyBiL3J1bnRpbWUvZG9jL3Vzcl8yNC50eHQKQEAgLTEsNCArMSw0IEBACi0qdXNyXzI0LnR4dCoJRm9yIFZpbSB2ZXJzaW9uIDcuMGYuICBMYXN0IGNoYW5nZTogMjAwNiBBcHIgMjQKKyp1c3JfMjQudHh0KglGb3IgVmltIHZlcnNpb24gNy4wZy4gIExhc3QgY2hhbmdlOiAyMDA2IEFwciAyNAogCiAJCSAgICAgVklNIFVTRVIgTUFOVUFMIC0gYnkgQnJhbSBNb29sZW5hYXIKIApkaWZmIC0tZ2l0IGEvcnVudGltZS9kb2MvdXNyXzI1LnR4dCBiL3J1bnRpbWUvZG9jL3Vzcl8yNS50eHQKaW5kZXggYTAzM2FmYi4uNDk2MjVlMSAxMDA2NDQKLS0tIGEvcnVudGltZS9kb2MvdXNyXzI1LnR4dAorKysgYi9ydW50aW1lL2RvYy91c3JfMjUudHh0CkBAIC0xLDQgKzEsNCBAQAotKnVzcl8yNS50eHQqCUZvciBWaW0gdmVyc2lvbiA3LjBmLiAgTGFzdCBjaGFuZ2U6IDIwMDYgQXByIDI0CisqdXNyXzI1LnR4dCoJRm9yIFZpbSB2ZXJzaW9uIDcuMGcuICBMYXN0IGNoYW5nZTogMjAwNiBBcHIgMjQKIAogCQkgICAgIFZJTSBVU0VSIE1BTlVBTCAtIGJ5IEJyYW0gTW9vbGVuYWFyCiAKZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL3Vzcl8yNi50eHQgYi9ydW50aW1lL2RvYy91c3JfMjYudHh0CmluZGV4IDFhMjFlNjYuLmMwODRhZmQgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvZG9jL3Vzcl8yNi50eHQKKysrIGIvcnVudGltZS9kb2MvdXNyXzI2LnR4dApAQCAtMSw0ICsxLDQgQEAKLSp1c3JfMjYudHh0KglGb3IgVmltIHZlcnNpb24gNy4wZi4gIExhc3QgY2hhbmdlOiAyMDA2IEFwciAyNAorKnVzcl8yNi50eHQqCUZvciBWaW0gdmVyc2lvbiA3LjBnLiAgTGFzdCBjaGFuZ2U6IDIwMDYgQXByIDI0CiAKIAkJICAgICBWSU0gVVNFUiBNQU5VQUwgLSBieSBCcmFtIE1vb2xlbmFhcgogCmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy91c3JfMjcudHh0IGIvcnVudGltZS9kb2MvdXNyXzI3LnR4dAppbmRleCA3NmI1NzIxLi40MGU1MDkwIDEwMDY0NAotLS0gYS9ydW50aW1lL2RvYy91c3JfMjcudHh0CisrKyBiL3J1bnRpbWUvZG9jL3Vzcl8yNy50eHQKQEAgLTEsNCArMSw0IEBACi0qdXNyXzI3LnR4dCoJRm9yIFZpbSB2ZXJzaW9uIDcuMGYuICBMYXN0IGNoYW5nZTogMjAwNiBBcHIgMjQKKyp1c3JfMjcudHh0KglGb3IgVmltIHZlcnNpb24gNy4wZy4gIExhc3QgY2hhbmdlOiAyMDA2IEFwciAyNAogCiAJCSAgICAgVklNIFVTRVIgTUFOVUFMIC0gYnkgQnJhbSBNb29sZW5hYXIKIApkaWZmIC0tZ2l0IGEvcnVudGltZS9kb2MvdXNyXzI4LnR4dCBiL3J1bnRpbWUvZG9jL3Vzcl8yOC50eHQKaW5kZXggN2M1ZWJiZi4uYTY5MDgxZiAxMDA2NDQKLS0tIGEvcnVudGltZS9kb2MvdXNyXzI4LnR4dAorKysgYi9ydW50aW1lL2RvYy91c3JfMjgudHh0CkBAIC0xLDQgKzEsNCBAQAotKnVzcl8yOC50eHQqCUZvciBWaW0gdmVyc2lvbiA3LjBmLiAgTGFzdCBjaGFuZ2U6IDIwMDYgQXByIDI0CisqdXNyXzI4LnR4dCoJRm9yIFZpbSB2ZXJzaW9uIDcuMGcuICBMYXN0IGNoYW5nZTogMjAwNiBBcHIgMjQKIAogCQkgICAgIFZJTSBVU0VSIE1BTlVBTCAtIGJ5IEJyYW0gTW9vbGVuYWFyCiAKZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL3Vzcl8yOS50eHQgYi9ydW50aW1lL2RvYy91c3JfMjkudHh0CmluZGV4IDI1NTY3ZjAuLjEwOTQ4NzMgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvZG9jL3Vzcl8yOS50eHQKKysrIGIvcnVudGltZS9kb2MvdXNyXzI5LnR4dApAQCAtMSw0ICsxLDQgQEAKLSp1c3JfMjkudHh0KglGb3IgVmltIHZlcnNpb24gNy4wZi4gIExhc3QgY2hhbmdlOiAyMDA2IEFwciAyNAorKnVzcl8yOS50eHQqCUZvciBWaW0gdmVyc2lvbiA3LjBnLiAgTGFzdCBjaGFuZ2U6IDIwMDYgQXByIDI0CiAKIAkJICAgICBWSU0gVVNFUiBNQU5VQUwgLSBieSBCcmFtIE1vb2xlbmFhcgogCmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy91c3JfMzAudHh0IGIvcnVudGltZS9kb2MvdXNyXzMwLnR4dAppbmRleCAxMzQ0OWEwLi45ZTFjZWQyIDEwMDY0NAotLS0gYS9ydW50aW1lL2RvYy91c3JfMzAudHh0CisrKyBiL3J1bnRpbWUvZG9jL3Vzcl8zMC50eHQKQEAgLTEsNCArMSw0IEBACi0qdXNyXzMwLnR4dCoJRm9yIFZpbSB2ZXJzaW9uIDcuMGYuICBMYXN0IGNoYW5nZTogMjAwNiBBcHIgMjQKKyp1c3JfMzAudHh0KglGb3IgVmltIHZlcnNpb24gNy4wZy4gIExhc3QgY2hhbmdlOiAyMDA2IEFwciAyNAogCiAJCSAgICAgVklNIFVTRVIgTUFOVUFMIC0gYnkgQnJhbSBNb29sZW5hYXIKIApkaWZmIC0tZ2l0IGEvcnVudGltZS9kb2MvdXNyXzMxLnR4dCBiL3J1bnRpbWUvZG9jL3Vzcl8zMS50eHQKaW5kZXggYzk0ZDNjYS4uMmI2ZjhlOSAxMDA2NDQKLS0tIGEvcnVudGltZS9kb2MvdXNyXzMxLnR4dAorKysgYi9ydW50aW1lL2RvYy91c3JfMzEudHh0CkBAIC0xLDQgKzEsNCBAQAotKnVzcl8zMS50eHQqCUZvciBWaW0gdmVyc2lvbiA3LjBmLiAgTGFzdCBjaGFuZ2U6IDIwMDYgQXByIDI0CisqdXNyXzMxLnR4dCoJRm9yIFZpbSB2ZXJzaW9uIDcuMGcuICBMYXN0IGNoYW5nZTogMjAwNiBBcHIgMjQKIAogCQkgICAgIFZJTSBVU0VSIE1BTlVBTCAtIGJ5IEJyYW0gTW9vbGVuYWFyCiAKZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL3Vzcl8zMi50eHQgYi9ydW50aW1lL2RvYy91c3JfMzIudHh0CmluZGV4IDlmYWIxODYuLjVlNjAwZDMgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvZG9jL3Vzcl8zMi50eHQKKysrIGIvcnVudGltZS9kb2MvdXNyXzMyLnR4dApAQCAtMSw0ICsxLDQgQEAKLSp1c3JfMzIudHh0KglGb3IgVmltIHZlcnNpb24gNy4wZi4gIExhc3QgY2hhbmdlOiAyMDA2IEFwciAyNAorKnVzcl8zMi50eHQqCUZvciBWaW0gdmVyc2lvbiA3LjBnLiAgTGFzdCBjaGFuZ2U6IDIwMDYgQXByIDMwCiAKIAkJICAgICBWSU0gVVNFUiBNQU5VQUwgLSBieSBCcmFtIE1vb2xlbmFhcgogCkBAIC0zMSwxMSArMzEsMTEgQEAKIAkJb25lIH4KIAkJIHwKIAkgICAgICBjaGFuZ2UgMQotCSAgICAgICAgIHwKKwkJIHwKIAkgICAgICBvbmUgdG9vIH4KLQkgICAgICAgICB8CisJCSB8CiAJICAgICAgY2hhbmdlIDIKLQkgICAgICAgICB8CisJCSB8CiAJICAgICAgb25lIHR3byB+CiAKIElmIHdlIG5vdyB1bmRvIG9uZSBjaGFuZ2UsIGJhY2sgdG8gIm9uZSB0b28iLCBhbmQgY2hhbmdlICJvbmUiIHRvICJtZSIgd2UKQEAgLTQ0LDEyICs0NCwxMiBAQAogCQlvbmUgfgogCQkgfAogCSAgICAgIGNoYW5nZSAxCi0JICAgICAgICAgfAorCQkgfAogCSAgICAgIG9uZSB0b28gfgogCSAgICAgIC8gICAgIFwKLSAgICAgICAgIGNoYW5nZSAyICBjaGFuZ2UgMwotICAgICAgICAgICAgfCAgICAgICAgIHwKLSAgICAgICAgIG9uZSB0d28gICAgbWUgdG9vIH4KKwkgY2hhbmdlIDIgIGNoYW5nZSAzCisJICAgIHwJICAgICAgfAorCSBvbmUgdHdvICAgIG1lIHRvbyB+CiAKIFlvdSBjYW4gbm93IHVzZSB0aGUgfHV8IGNvbW1hbmQgdG8gdW5kby4gIElmIHlvdSBkbyB0aGlzIHR3aWNlIHlvdSBnZXQgdG8KICJvbmUiLiAgVXNlIHxDVFJMLVJ8IHRvIHJlZG8sIGFuZCB5b3Ugd2lsbCBnbyB0byAib25lIHRvbyIuICBPbmUgbW9yZSB8Q1RSTC1SfApAQCAtODAsMTIgKzgwLDEyIEBACiAJCW9uZSB+CiAJCSB8CiAJICAgICAgY2hhbmdlIDEKLQkgICAgICAgICB8CisJCSB8CiAJICAgICAgb25lIHRvbyB+CiAJICAgICAgLyAgICAgXAotICAgICAgICAgY2hhbmdlIDIgIGNoYW5nZSAzCi0gICAgICAgICAgICB8ICAgICAgICAgfAotICAgICAgICAgb25lIHR3byAgICBtZSB0b28gfgorCSBjaGFuZ2UgMiAgY2hhbmdlIDMKKwkgICAgfAkgICAgICB8CisJIG9uZSB0d28gICAgbWUgdG9vIH4KIAkgICAgfAogCSBjaGFuZ2UgNAogCSAgICB8CmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy91c3JfNDAudHh0IGIvcnVudGltZS9kb2MvdXNyXzQwLnR4dAppbmRleCBmZmYyOGFlLi5iNDZhZTViIDEwMDY0NAotLS0gYS9ydW50aW1lL2RvYy91c3JfNDAudHh0CisrKyBiL3J1bnRpbWUvZG9jL3Vzcl80MC50eHQKQEAgLTEsNCArMSw0IEBACi0qdXNyXzQwLnR4dCoJRm9yIFZpbSB2ZXJzaW9uIDcuMGYuICBMYXN0IGNoYW5nZTogMjAwNiBBcHIgMjQKKyp1c3JfNDAudHh0KglGb3IgVmltIHZlcnNpb24gNy4wZy4gIExhc3QgY2hhbmdlOiAyMDA2IEFwciAyNAogCiAJCSAgICAgVklNIFVTRVIgTUFOVUFMIC0gYnkgQnJhbSBNb29sZW5hYXIKIApkaWZmIC0tZ2l0IGEvcnVudGltZS9kb2MvdXNyXzQxLnR4dCBiL3J1bnRpbWUvZG9jL3Vzcl80MS50eHQKaW5kZXggODExY2M5Zi4uOWIwNGE2NyAxMDA2NDQKLS0tIGEvcnVudGltZS9kb2MvdXNyXzQxLnR4dAorKysgYi9ydW50aW1lL2RvYy91c3JfNDEudHh0CkBAIC0xLDQgKzEsNCBAQAotKnVzcl80MS50eHQqCUZvciBWaW0gdmVyc2lvbiA3LjBmLiAgTGFzdCBjaGFuZ2U6IDIwMDYgQXByIDI0CisqdXNyXzQxLnR4dCoJRm9yIFZpbSB2ZXJzaW9uIDcuMGcuICBMYXN0IGNoYW5nZTogMjAwNiBBcHIgMzAKIAogCQkgICAgIFZJTSBVU0VSIE1BTlVBTCAtIGJ5IEJyYW0gTW9vbGVuYWFyCiAKQEAgLTIwOSw3ICsyMDksNyBAQAogYmVjb21lcyBmYWxzZS4gIFdoZW4gaXQgd2FzIGZhbHNlLCBpdCBiZWNvbWVzIHRydWUuICBZb3UgY2FuIHJlYWQgaXQgYXMgIm5vdCIuCiBUaHVzICJpZiAhZXhpc3RzKCkiIGNhbiBiZSByZWFkIGFzICJpZiBub3QgZXhpc3RzKCkiLgogICAgV2hhdCBWaW0gY2FsbHMgdHJ1ZSBpcyBhbnl0aGluZyB0aGF0IGlzIG5vdCB6ZXJvLiAgWmVybyBpcyBmYWxzZS4KLSAgIAlOb3RlOgorCU5vdGU6CiAJVmltIGF1dG9tYXRpY2FsbHkgY29udmVydHMgYSBzdHJpbmcgdG8gYSBudW1iZXIgd2hlbiBpdCBpcyBsb29raW5nIGZvcgogCWEgbnVtYmVyLiAgV2hlbiB1c2luZyBhIHN0cmluZyB0aGF0IGRvZXNuJ3Qgc3RhcnQgd2l0aCBhIGRpZ2l0IHRoZQogCXJlc3VsdGluZyBudW1iZXIgaXMgemVyby4gIFRodXMgbG9vayBvdXQgZm9yIHRoaXM6ID4KQEAgLTEwNzYsMTYgKzEwNzYsMTYgQEAKIHRodXMgeW91IGNhbiBtYWtlIGEgTGlzdCBvZiBudW1iZXJzLCBhIExpc3Qgb2YgTGlzdHMgYW5kIGV2ZW4gYSBMaXN0IG9mIG1peGVkCiBpdGVtcy4gIFRvIGNyZWF0ZSBhIExpc3Qgd2l0aCB0aHJlZSBzdHJpbmdzOiA+CiAKLSAgIAk6bGV0IGFsaXN0ID0gWydhYXAnLCAnbWllcycsICdub290J10KKwk6bGV0IGFsaXN0ID0gWydhYXAnLCAnbWllcycsICdub290J10KIAogVGhlIExpc3QgaXRlbXMgYXJlIGVuY2xvc2VkIGluIHNxdWFyZSBicmFja2V0cyBhbmQgc2VwYXJhdGVkIGJ5IGNvbW1hcy4gIFRvCiBjcmVhdGUgYW4gZW1wdHkgTGlzdDogPgogCi0gICAJOmxldCBhbGlzdCA9IFtdCisJOmxldCBhbGlzdCA9IFtdCiAKIFlvdSBjYW4gYWRkIGl0ZW1zIHRvIGEgTGlzdCB3aXRoIHRoZSBhZGQoKSBmdW5jdGlvbjogPgogCi0gICAJOmxldCBhbGlzdCA9IFtdCisJOmxldCBhbGlzdCA9IFtdCiAJOmNhbGwgYWRkKGFsaXN0LCAnZm9vJykKIAk6Y2FsbCBhZGQoYWxpc3QsICdiYXInKQogCTplY2hvIGFsaXN0CkBAIC0xMDk4LDE0ICsxMDk4LDE0IEBACiAKIE9yLCBpZiB5b3Ugd2FudCB0byBleHRlbmQgYSBMaXN0IGRpcmVjdGx5OiA+CiAKLSAgIAk6bGV0IGFsaXN0ID0gWydvbmUnXQorCTpsZXQgYWxpc3QgPSBbJ29uZSddCiAJOmNhbGwgZXh0ZW5kKGFsaXN0LCBbJ3R3bycsICd0aHJlZSddKQogCTplY2hvIGFsaXN0CiA8CVsnb25lJywgJ3R3bycsICd0aHJlZSddIH4KIAogTm90aWNlIHRoYXQgdXNpbmcgYWRkKCkgd2lsbCBoYXZlIGEgZGlmZmVyZW50IGVmZmVjdDogPgogCi0gICAJOmxldCBhbGlzdCA9IFsnb25lJ10KKwk6bGV0IGFsaXN0ID0gWydvbmUnXQogCTpjYWxsIGFkZChhbGlzdCwgWyd0d28nLCAndGhyZWUnXSkKIAk6ZWNobyBhbGlzdAogPAlbJ29uZScsIFsndHdvJywgJ3RocmVlJ11dIH4KQEAgLTExNTUsMTEgKzExNTUsMTEgQEAKIAogQSBtb3JlIHVzZWZ1bCBleGFtcGxlLCBsb29waW5nIG92ZXIgbGluZXMgaW4gdGhlIGJ1ZmZlcjogPgogCi0gICAgICAgIDpmb3IgbGluZSBpbiBnZXRsaW5lKDEsIDIwKQotICAgICAgICA6ICBpZiBsaW5lID1+ICJEYXRlOiAiCi0gICAgICAgIDogICAgZWNobyBtYXRjaHN0cihsaW5lLCAnRGF0ZTogXHpzLionKQotICAgICAgICA6ICBlbmRpZgotICAgICAgICA6ZW5kZm9yCisJOmZvciBsaW5lIGluIGdldGxpbmUoMSwgMjApCisJOiAgaWYgbGluZSA9fiAiRGF0ZTogIgorCTogICAgZWNobyBtYXRjaHN0cihsaW5lLCAnRGF0ZTogXHpzLionKQorCTogIGVuZGlmCisJOmVuZGZvcgogCiBUaGlzIGxvb2tzIGludG8gbGluZXMgMSB0byAyMCAoaW5jbHVzaXZlKSBhbmQgZWNob2VzIGFueSBkYXRlIGZvdW5kIGluIHRoZXJlLgogCkBAIC0xMTY4LDcgKzExNjgsNyBAQAogCiBBIERpY3Rpb25hcnkgc3RvcmVzIGtleS12YWx1ZSBwYWlycy4gIFlvdSBjYW4gcXVpY2tseSBsb29rdXAgYSB2YWx1ZSBpZiB5b3UKIGtub3cgdGhlIGtleS4gIEEgRGljdGlvbmFyeSBpcyBjcmVhdGVkIHdpdGggY3VybHkgYnJhY2VzOiA+Ci0gICAJCisKIAk6bGV0IHVrMm5sID0geydvbmUnOiAnZWVuJywgJ3R3byc6ICd0d2VlJywgJ3RocmVlJzogJ2RyaWUnfQogCiBOb3cgeW91IGNhbiBsb29rdXAgd29yZHMgYnkgcHV0dGluZyB0aGUga2V5IGluIHNxdWFyZSBicmFja2V0czogPgpAQCAtMjI3NCw3ICsyMjc0LDcgQEAKIAogMi4gVGhlIHVzZXIgdHlwZXMgdGhlIEJOUmVhZCBjb21tYW5kIG9yIHByZXNzZXMgdGhlIDxGMTk+IGtleS4gIFRoZQogICAgQnVmTmV0UmVhZCgpIG9yIEJ1Zk5ldFdyaXRlKCkgZnVuY3Rpb24gd2lsbCBiZSBjYWxsZWQuCi0gICAKKwogMy4gVmltIGNhbid0IGZpbmQgdGhlIGZ1bmN0aW9uIGFuZCB0cmlnZ2VycyB0aGUgfEZ1bmNVbmRlZmluZWR8IGF1dG9jb21tYW5kCiAgICBldmVudC4gIFNpbmNlIHRoZSBwYXR0ZXJuICJCdWZOZXQqIiBtYXRjaGVzIHRoZSBpbnZva2VkIGZ1bmN0aW9uLCB0aGUKICAgIGNvbW1hbmQgInNvdXJjZSBmbmFtZSIgd2lsbCBiZSBleGVjdXRlZC4gICJmbmFtZSIgd2lsbCBiZSBlcXVhbCB0byB0aGUgbmFtZQpkaWZmIC0tZ2l0IGEvcnVudGltZS9kb2MvdXNyXzQyLnR4dCBiL3J1bnRpbWUvZG9jL3Vzcl80Mi50eHQKaW5kZXggMzdlMWYzOC4uOGI3MGQ5ZCAxMDA2NDQKLS0tIGEvcnVudGltZS9kb2MvdXNyXzQyLnR4dAorKysgYi9ydW50aW1lL2RvYy91c3JfNDIudHh0CkBAIC0xLDQgKzEsNCBAQAotKnVzcl80Mi50eHQqCUZvciBWaW0gdmVyc2lvbiA3LjBmLiAgTGFzdCBjaGFuZ2U6IDIwMDYgQXByIDI0CisqdXNyXzQyLnR4dCoJRm9yIFZpbSB2ZXJzaW9uIDcuMGcuICBMYXN0IGNoYW5nZTogMjAwNiBBcHIgMjQKIAogCQkgICAgIFZJTSBVU0VSIE1BTlVBTCAtIGJ5IEJyYW0gTW9vbGVuYWFyCiAKZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL3Vzcl80My50eHQgYi9ydW50aW1lL2RvYy91c3JfNDMudHh0CmluZGV4IGNkZGJmNTQuLjRkZTI5OGYgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvZG9jL3Vzcl80My50eHQKKysrIGIvcnVudGltZS9kb2MvdXNyXzQzLnR4dApAQCAtMSw0ICsxLDQgQEAKLSp1c3JfNDMudHh0KglGb3IgVmltIHZlcnNpb24gNy4wZi4gIExhc3QgY2hhbmdlOiAyMDA2IEFwciAyNAorKnVzcl80My50eHQqCUZvciBWaW0gdmVyc2lvbiA3LjBnLiAgTGFzdCBjaGFuZ2U6IDIwMDYgQXByIDI0CiAKIAkJICAgICBWSU0gVVNFUiBNQU5VQUwgLSBieSBCcmFtIE1vb2xlbmFhcgogCmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy91c3JfNDQudHh0IGIvcnVudGltZS9kb2MvdXNyXzQ0LnR4dAppbmRleCA4NDVjYTNjLi4yMTg3M2YxIDEwMDY0NAotLS0gYS9ydW50aW1lL2RvYy91c3JfNDQudHh0CisrKyBiL3J1bnRpbWUvZG9jL3Vzcl80NC50eHQKQEAgLTEsNCArMSw0IEBACi0qdXNyXzQ0LnR4dCoJRm9yIFZpbSB2ZXJzaW9uIDcuMGYuICBMYXN0IGNoYW5nZTogMjAwNiBBcHIgMjQKKyp1c3JfNDQudHh0KglGb3IgVmltIHZlcnNpb24gNy4wZy4gIExhc3QgY2hhbmdlOiAyMDA2IEFwciAyNAogCiAJCSAgICAgVklNIFVTRVIgTUFOVUFMIC0gYnkgQnJhbSBNb29sZW5hYXIKIApkaWZmIC0tZ2l0IGEvcnVudGltZS9kb2MvdXNyXzQ1LnR4dCBiL3J1bnRpbWUvZG9jL3Vzcl80NS50eHQKaW5kZXggMTY5ZDJlNy4uYmQ2OWFkOSAxMDA2NDQKLS0tIGEvcnVudGltZS9kb2MvdXNyXzQ1LnR4dAorKysgYi9ydW50aW1lL2RvYy91c3JfNDUudHh0CkBAIC0xLDQgKzEsNCBAQAotKnVzcl80NS50eHQqCUZvciBWaW0gdmVyc2lvbiA3LjBmLiAgTGFzdCBjaGFuZ2U6IDIwMDYgQXByIDI0CisqdXNyXzQ1LnR4dCoJRm9yIFZpbSB2ZXJzaW9uIDcuMGcuICBMYXN0IGNoYW5nZTogMjAwNiBBcHIgMjQKIAogCQkgICAgIFZJTSBVU0VSIE1BTlVBTCAtIGJ5IEJyYW0gTW9vbGVuYWFyCiAKZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL3Vzcl85MC50eHQgYi9ydW50aW1lL2RvYy91c3JfOTAudHh0CmluZGV4IDI4ZWQxODAuLjU0MDllZDEgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvZG9jL3Vzcl85MC50eHQKKysrIGIvcnVudGltZS9kb2MvdXNyXzkwLnR4dApAQCAtMSw0ICsxLDQgQEAKLSp1c3JfOTAudHh0KglGb3IgVmltIHZlcnNpb24gNy4wZi4gIExhc3QgY2hhbmdlOiAyMDA2IEFwciAyNAorKnVzcl85MC50eHQqCUZvciBWaW0gdmVyc2lvbiA3LjBnLiAgTGFzdCBjaGFuZ2U6IDIwMDYgQXByIDI0CiAKIAkJICAgICBWSU0gVVNFUiBNQU5VQUwgLSBieSBCcmFtIE1vb2xlbmFhcgogCmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy91c3JfdG9jLnR4dCBiL3J1bnRpbWUvZG9jL3Vzcl90b2MudHh0CmluZGV4IDg2NDhmN2UuLjg5YzlhMmMgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvZG9jL3Vzcl90b2MudHh0CisrKyBiL3J1bnRpbWUvZG9jL3Vzcl90b2MudHh0CkBAIC0xLDQgKzEsNCBAQAotKnVzcl90b2MudHh0KglGb3IgVmltIHZlcnNpb24gNy4wZi4gIExhc3QgY2hhbmdlOiAyMDA2IEFwciAyNAorKnVzcl90b2MudHh0KglGb3IgVmltIHZlcnNpb24gNy4wZy4gIExhc3QgY2hhbmdlOiAyMDA2IEFwciAyNAogCiAJCSAgICAgVklNIFVTRVIgTUFOVUFMIC0gYnkgQnJhbSBNb29sZW5hYXIKIApkaWZmIC0tZ2l0IGEvcnVudGltZS9kb2MvdmFyaW91cy50eHQgYi9ydW50aW1lL2RvYy92YXJpb3VzLnR4dAppbmRleCA2MDFmMTdiLi44YWFmYWI3IDEwMDY0NAotLS0gYS9ydW50aW1lL2RvYy92YXJpb3VzLnR4dAorKysgYi9ydW50aW1lL2RvYy92YXJpb3VzLnR4dApAQCAtMSw0ICsxLDQgQEAKLSp2YXJpb3VzLnR4dCogICBGb3IgVmltIHZlcnNpb24gNy4wZi4gIExhc3QgY2hhbmdlOiAyMDA2IEFwciAyNQorKnZhcmlvdXMudHh0KiAgIEZvciBWaW0gdmVyc2lvbiA3LjBnLiAgTGFzdCBjaGFuZ2U6IDIwMDYgQXByIDI1CiAKIAogCQkgIFZJTSBSRUZFUkVOQ0UgTUFOVUFMICAgIGJ5IEJyYW0gTW9vbGVuYWFyCmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy92ZXJzaW9uNC50eHQgYi9ydW50aW1lL2RvYy92ZXJzaW9uNC50eHQKaW5kZXggYzFmOTQ2ZC4uM2NlZWU1MyAxMDA2NDQKLS0tIGEvcnVudGltZS9kb2MvdmVyc2lvbjQudHh0CisrKyBiL3J1bnRpbWUvZG9jL3ZlcnNpb240LnR4dApAQCAtMSw0ICsxLDQgQEAKLSp2ZXJzaW9uNC50eHQqICBGb3IgVmltIHZlcnNpb24gNy4wZi4gIExhc3QgY2hhbmdlOiAyMDA2IEFwciAyNAorKnZlcnNpb240LnR4dCogIEZvciBWaW0gdmVyc2lvbiA3LjBnLiAgTGFzdCBjaGFuZ2U6IDIwMDYgQXByIDI0CiAKIAogCQkgIFZJTSBSRUZFUkVOQ0UgTUFOVUFMICAgIGJ5IEJyYW0gTW9vbGVuYWFyCmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy92ZXJzaW9uNS50eHQgYi9ydW50aW1lL2RvYy92ZXJzaW9uNS50eHQKaW5kZXggNmU5NDI0NS4uOTIyOTdkMiAxMDA2NDQKLS0tIGEvcnVudGltZS9kb2MvdmVyc2lvbjUudHh0CisrKyBiL3J1bnRpbWUvZG9jL3ZlcnNpb241LnR4dApAQCAtMSw0ICsxLDQgQEAKLSp2ZXJzaW9uNS50eHQqICBGb3IgVmltIHZlcnNpb24gNy4wZi4gIExhc3QgY2hhbmdlOiAyMDA2IEFwciAyNAorKnZlcnNpb241LnR4dCogIEZvciBWaW0gdmVyc2lvbiA3LjBnLiAgTGFzdCBjaGFuZ2U6IDIwMDYgQXByIDI0CiAKIAogCQkgIFZJTSBSRUZFUkVOQ0UgTUFOVUFMICAgIGJ5IEJyYW0gTW9vbGVuYWFyCmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy92ZXJzaW9uNi50eHQgYi9ydW50aW1lL2RvYy92ZXJzaW9uNi50eHQKaW5kZXggZGU5ZGNjYi4uYTQ2NTE0MyAxMDA2NDQKLS0tIGEvcnVudGltZS9kb2MvdmVyc2lvbjYudHh0CisrKyBiL3J1bnRpbWUvZG9jL3ZlcnNpb242LnR4dApAQCAtMSw0ICsxLDQgQEAKLSp2ZXJzaW9uNi50eHQqICBGb3IgVmltIHZlcnNpb24gNy4wZi4gIExhc3QgY2hhbmdlOiAyMDA2IEFwciAyNAorKnZlcnNpb242LnR4dCogIEZvciBWaW0gdmVyc2lvbiA3LjBnLiAgTGFzdCBjaGFuZ2U6IDIwMDYgQXByIDMwCiAKIAogCQkgIFZJTSBSRUZFUkVOQ0UgTUFOVUFMICAgIGJ5IEJyYW0gTW9vbGVuYWFyCkBAIC0xNDEzNSw3ICsxNDEzNSw3IEBACiBGaWxlczoJICAgIHNyYy9ub3JtYWwuYwogCiBQYXRjaCA2LjMuMDM0Ci1Qcm9ibGVtOiAgICBWTVM6IGNyYXNoIHdoZW4gdXNpbmcgIjpoZWxwIi4gCitQcm9ibGVtOiAgICBWTVM6IGNyYXNoIHdoZW4gdXNpbmcgIjpoZWxwIi4KIFNvbHV0aW9uOiAgIEF2b2lkIHVzaW5nICJ0YWdzLT8/Iiwgc29tZSBPcGVuIFZNUyBzeXN0ZW1zIGNhbid0IGhhbmRsZSB0aGUgIj8iCiAJICAgIHdpbGRjYXJkLiAgKFpvbHRhbiBBcnBhZGZmeSkKIEZpbGVzOgkgICAgc3JjL3RhZy5jCmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy92ZXJzaW9uNy50eHQgYi9ydW50aW1lL2RvYy92ZXJzaW9uNy50eHQKaW5kZXggYTg3NGNmOC4uODBiZmY3NyAxMDA2NDQKLS0tIGEvcnVudGltZS9kb2MvdmVyc2lvbjcudHh0CisrKyBiL3J1bnRpbWUvZG9jL3ZlcnNpb243LnR4dApAQCAtMSw0ICsxLDQgQEAKLSp2ZXJzaW9uNy50eHQqICBGb3IgVmltIHZlcnNpb24gNy4wZi4gIExhc3QgY2hhbmdlOiAyMDA2IEFwciAyOQorKnZlcnNpb243LnR4dCogIEZvciBWaW0gdmVyc2lvbiA3LjBnLiAgTGFzdCBjaGFuZ2U6IDIwMDYgQXByIDMwCiAKIAogCQkgIFZJTSBSRUZFUkVOQ0UgTUFOVUFMICAgIGJ5IEJyYW0gTW9vbGVuYWFyCkBAIC02NCw5ICs2NCw5IEBACiBuYW1lLiAgVGhpcyBjYXVzZWQgYSBkaWZmZXJlbmNlIGJldHdlZW4gIjplZGl0IiBhbmQgIjpuZXh0IiBmb3IgZXNjYXBpbmcKIGRvdWJsZSBxdW90ZXMgYW5kIGl0IGlzIGluY29tcGF0aWJsZSB3aXRoIHNvbWUgdmVyc2lvbnMgb2YgVmkuCiAJQ29tbWFuZAkJCVZpbSA2LngJZmlsZSBuYW1lCVZpbSA3LnggZmlsZSBuYW1lIH4KLQk6ZWRpdCBmb29cIjg4OCAgICAgICAgICBmb28iODg4ICAgICAgICAgCWZvbyI4ODgKLQk6bmV4dCBmb29cIjg4OCAgICAgICAgICBmb284ODggICAgICAgICAgCWZvbyI4ODgKLQk6bmV4dCBhXCJiIGNcImQgICAgICAgICBhYiBjZCAgICAgICAgICAgCWEiYiAgYW5kICBjImQKKwk6ZWRpdCBmb29cIjg4OAkJZm9vIjg4OAkJCWZvbyI4ODgKKwk6bmV4dCBmb29cIjg4OAkJZm9vODg4CQkJZm9vIjg4OAorCTpuZXh0IGFcImIgY1wiZAkJYWIgY2QJCQlhImIgIGFuZCAgYyJkCiAKIEluIGEgfGxpdGVyYWwtc3RyaW5nfCBhIHNpbmdsZSBxdW90ZSBjYW4gYmUgZG91YmxlZCB0byBnZXQgb25lLgogIjplY2hvICdhJydiJyIgd291bGQgcmVzdWx0IGluICJhIGIiLCBidXQgbm93IHRoYXQgdHdvIHF1b3RlcyBzdGFuZCBmb3Igb25lIGl0CkBAIC0xMDYsNyArMTA2LDcgQEAKIGxvb2tzIGxpa2UgaXRzIGRpc3BsYXllZCwgd2l0aCB0aGUgc2FtZSBmb2xkcyBvcGVuIGFuZCBjbG9zZWQuICBVc2UgInpSIiwgb3IKICJsZXQgaHRtbF9pZ25vcmVfZm9sZGluZz0xIiwgaWYgbm8gZm9sZHMgc2hvdWxkIGFwcGVhciBpbiB0aGUgSFRNTC4gKHBhcnRseSBieQogQ2FybCBPc3Rlcndpc2NoKQotRGlmZiBtb2RlIG5vdyBpcyBhbHNvIGNvbnZlcnRlZCB0byBIVE1MIGFzIGl0IGlzIGRpc3BsYXllZC4KK0RpZmYgbW9kZSBpcyBub3cgYWxzbyBjb252ZXJ0ZWQgdG8gSFRNTCBhcyBpdCBpcyBkaXNwbGF5ZWQuCiAKIFdpbjMyOiBUaGUgZWZmZWN0IG9mIHRoZSA8RjEwPiBrZXkgZGVwZW5kZWQgb24gJ3dpbmFsdGtleXMnLiAgTm93IGl0IGRlcGVuZHMKIG9uIHdoZXRoZXIgPEYxMD4gaGFzIGJlZW4gbWFwcGVkIG9yIG5vdC4gIFRoaXMgYWxsb3dzIG1hcHBpbmcgPEYxMD4gd2l0aG91dApAQCAtMjE2LDcgKzIxNiw3IEBACiAKIFRoZSB8W3N8IGFuZCB8XXN8IGNvbW1hbmRzIGNhbiBiZSB1c2VkIHRvIG1vdmUgdG8gdGhlIG5leHQgb3IgcHJldmlvdXMgZXJyb3IKIFRoZSB8emd8IGFuZCB8end8IGNvbW1hbmRzIGNhbiBiZSB1c2VkIHRvIGFkZCBnb29kIGFuZCB3cm9uZyB3b3JkcwotVGhlIHx6PXwgICAgICAgICAgY29tbWFuZCBjYW4gYmUgdXNlZCB0byBsaXN0IHN1Z2dlc3Rpb25zIGFuZCBjb3JyZWN0IHRoZSB3b3JkCitUaGUgfHo9fAkgIGNvbW1hbmQgY2FuIGJlIHVzZWQgdG8gbGlzdCBzdWdnZXN0aW9ucyBhbmQgY29ycmVjdCB0aGUgd29yZAogVGhlIHw6bWtzcGVsbHwgICAgY29tbWFuZCBpcyB1c2VkIHRvIGdlbmVyYXRlIGEgVmltIHNwZWxsIGZpbGUgZnJvbSB3b3JkIGxpc3RzCiAKIFRoZSAidW5kZXJjdXJsIiBoaWdobGlnaHRpbmcgYXR0cmlidXRlIHdhcyBhZGRlZCB0byBuaWNlbHkgcG9pbnQgb3V0IHNwZWxsaW5nCkBAIC0zMjQsNyArMzI0LDcgQEAKIAogVG8gYmUgYWJsZSB0byBuYXZpZ2F0ZSB0aGUgdW5kbyBicmFuY2hlcyBlYWNoIGNoYW5nZSBpcyBudW1iZXJlZCBzZXF1ZW50aWFsbHkuCiBUaGUgY29tbWFuZHMgfGctfCBhbmQgfDplYXJsaWVyfCBnbyBiYWNrIGluIHRpbWUsIHRvIG9sZGVyIGNoYW5nZXMuICBUaGUKLWNvbW1hbmRzIHxnK3wgYW5kIHw6bGF0ZXJ8IGdvIGZvcndhcmQgaW4gdGltZSwgdG8gbmV3ZXIgY2hhbmdlcy4gIAorY29tbWFuZHMgfGcrfCBhbmQgfDpsYXRlcnwgZ28gZm9yd2FyZCBpbiB0aW1lLCB0byBuZXdlciBjaGFuZ2VzLgogCiBUaGUgY2hhbmdlcyBhcmUgYWxzbyB0aW1lc3RhbXBlZC4gIFVzZSAiOmVhcmxpZXIgMTBtIiB0byBnbyB0byB0aGUgdGV4dCBhcyBpdAogd2FzIGFib3V0IHRlbiBtaW51dGVzIGVhcmxpZXIuCkBAIC03NDgsNyArNzQ4LDcgQEAKIHw6c3BlbGx1bmRvfAkJUmVtb3ZlIGEgd29yZCBmcm9tIGxpc3Qgb2YgZ29vZCBhbmQgYmFkIHdvcmRzLgogCiB8Om16c2NoZW1lfAkJRXhlY3V0ZSBNelNjaGVtZSBjb21tYW5kcy4KLXw6bXpmaWxlfCAgIAkJRXhlY3V0ZSBhbiBNelNjaGVtZSBzY3JpcHQgZmlsZS4KK3w6bXpmaWxlfAkJRXhlY3V0ZSBhbiBNelNjaGVtZSBzY3JpcHQgZmlsZS4KIAogfDpuYmtleXwJCVBhc3MgYSBrZXkgdG8gTmV0QmVhbnMgZm9yIHByb2Nlc3NpbmcuCiAKQEAgLTgxNiw3ICs4MTYsNyBAQAogfGFyZ3YoKXwJCXdpdGhvdXQgYW4gYXJndW1lbnQgcmV0dXJuIHRoZSB3aG9sZSBhcmd1bWVudCBsaXN0CiB8YnJvd3NlZGlyKCl8CQlkaWFsb2cgdG8gc2VsZWN0IGEgZGlyZWN0b3J5CiB8YnVmbnIoKXwJCXRha2VzIGFuIGV4dHJhIGFyZ3VtZW50OiBjcmVhdGUgYnVmZmVyCi18Ynl0ZWlkeCgpfCAJCWluZGV4IG9mIGEgY2hhcmFjdGVyIChJbHlhIFNoZXIpCit8Ynl0ZWlkeCgpfAkJaW5kZXggb2YgYSBjaGFyYWN0ZXIgKElseWEgU2hlcikKIHxjYWxsKCl8CQljYWxsIGEgZnVuY3Rpb24gd2l0aCBMaXN0IGFzIGFyZ3VtZW50cwogfGNoYW5nZW5yKCl8CQludW1iZXIgb2YgY3VycmVudCBjaGFuZ2UKIHxjb21wbGV0ZSgpfAkJc2V0IG1hdGNoZXMgZm9yIEluc2VydCBtb2RlIGNvbXBsZXRpb24KQEAgLTgzNyw3ICs4MzcsNyBAQAogfGZpbHRlcigpfAkJcmVtb3ZlIHNlbGVjdGVkIGl0ZW1zIGZyb20gYSBMaXN0IG9yIERpY3Rpb25hcnkKIHxmaW5kZGlyKCl8CQlmaW5kIGEgZGlyZWN0b3J5IGluICdwYXRoJwogfGZpbmRmaWxlKCl8CQlmaW5kIGEgZmlsZSBpbiAncGF0aCcgKEpvaGFubmVzIFplbGxuZXIpCi18Zm9sZHRleHRyZXN1bHQoKXwgIAl0aGUgdGV4dCBkaXNwbGF5ZWQgZm9yIGEgY2xvc2VkIGZvbGQgYXQgbGluZSAibG51bSIKK3xmb2xkdGV4dHJlc3VsdCgpfAl0aGUgdGV4dCBkaXNwbGF5ZWQgZm9yIGEgY2xvc2VkIGZvbGQgYXQgbGluZSAibG51bSIKIHxmdW5jdGlvbigpfAkJbWFrZSBhIEZ1bmNyZWYgb3V0IG9mIGEgZnVuY3Rpb24gbmFtZQogfGdhcmJhZ2Vjb2xsZWN0KCl8CWNsZWFudXAgdW51c2VkIHxMaXN0c3wgYW5kIHxEaWN0aW9uYXJpZXN8IHdpdGggY2lyY3VsYXIKIAkJCXJlZmVyZW5jZXMKQEAgLTg0Niw3ICs4NDYsNyBAQAogCQkJKFllZ2FwcGFuIExha3NobWFuYW4pCiB8Z2V0Y21kdHlwZSgpfAkJcmV0dXJuIHRoZSBjdXJyZW50IGNvbW1hbmQtbGluZSB0eXBlCiAJCQkoWWVnYXBwYW4gTGFrc2htYW5hbikKLXxnZXRmb250bmFtZSgpfCAJZ2V0IGFjdHVhbCBmb250IG5hbWUgYmVpbmcgdXNlZAorfGdldGZvbnRuYW1lKCl8CQlnZXQgYWN0dWFsIGZvbnQgbmFtZSBiZWluZyB1c2VkCiB8Z2V0ZnBlcm0oKXwJCWdldCBmaWxlIHBlcm1pc3Npb24gc3RyaW5nIChOaWtvbGFpIFdlaWJ1bGwpCiB8Z2V0ZnR5cGUoKXwJCWdldCB0eXBlIG9mIGZpbGUgKE5pa29sYWkgV2VpYnVsbCkKIHxnZXRsaW5lKCl8CQl3aXRoIHNlY29uZCBhcmd1bWVudDogZ2V0IExpc3Qgd2l0aCBidWZmZXIgbGluZXMKQEAgLTg4NSwxMyArODg1LDEzIEBACiB8cmVsdGltZSgpfAkJZ2V0IHRpbWUgdmFsdWUsIHBvc3NpYmx5IHJlbGF0aXZlCiB8cmVsdGltZXN0cigpfAkJdHVybiBhIHRpbWUgdmFsdWUgaW50byBhIHN0cmluZwogfHJlbW92ZSgpfAkJcmVtb3ZlIG9uZSBvciBtb3JlIGl0ZW1zIGZyb20gYSBMaXN0IG9yIERpY3Rpb25hcnkKLXxyZXBlYXQoKXwgCQlyZXBlYXQgImV4cHIiICJjb3VudCIgdGltZXMgKENocmlzdG9waGUgUG91Y2V0KQorfHJlcGVhdCgpfAkJcmVwZWF0ICJleHByIiAiY291bnQiIHRpbWVzIChDaHJpc3RvcGhlIFBvdWNldCkKIHxyZXZlcnNlKCl8CQlyZXZlcnNlIHRoZSBvcmRlciBvZiBhIExpc3QKIHxzZWFyY2goKXwJCWV4dHJhIGFyZ3VtZW50OgogfHNlYXJjaGRlY2woKXwJCXNlYXJjaCBmb3IgZGVjbGFyYXRpb24gb2YgdmFyaWFibGUKIHxzZWFyY2hwYWlyKCl8CQlleHRyYSBhcmd1bWVudDogbGluZSB0byBzdG9wIHNlYXJjaGluZwogfHNlYXJjaHBhaXJwb3MoKXwJcmV0dXJuIGEgTGlzdCB3aXRoIHRoZSBwb3NpdGlvbiBvZiB0aGUgbWF0Y2gKLXxzZWFyY2hwb3MoKXwJICAgICAgICByZXR1cm4gYSBMaXN0IHdpdGggdGhlIHBvc2l0aW9uIG9mIHRoZSBtYXRjaAorfHNlYXJjaHBvcygpfAkJcmV0dXJuIGEgTGlzdCB3aXRoIHRoZSBwb3NpdGlvbiBvZiB0aGUgbWF0Y2gKIHxzZXRsb2NsaXN0KCl8CQltb2RpZnkgYSBsb2NhdGlvbiBsaXN0IChZZWdhcHBhbiBMYWtzaG1hbmFuKQogfHNldHBvcygpfAkJc2V0IGN1cnNvciBvciBtYXJrIHRvIGEgcG9zaXRpb24KIHxzZXRxZmxpc3QoKXwJCW1vZGlmeSBhIHF1aWNrZml4IGxpc3QgKFllZ2FwcGFuIExha3NobWFuYW4pCkBAIC05MjgsOCArOTI4LDggQEAKIHx2OnZhbHwJCQlpdGVtIHZhbHVlIGluIGEgfG1hcCgpfCBvciB8ZmlsdGVyKCl8IGZ1bmN0aW9uCiB8djprZXl8CQkJaXRlbSBrZXkgaW4gYSB8bWFwKCl8IG9yIHxmaWx0ZXIoKXwgZnVuY3Rpb24KIHx2OnByb2ZpbGluZ3wJCW5vbi16ZXJvIGFmdGVyIGEgIjpwcm9maWxlIHN0YXJ0IiBjb21tYW5kCi18djpmY3NfcmVhc29ufCAJCXRoZSByZWFzb24gd2h5IHxGaWxlQ2hhbmdlZFNoZWxsfCB3YXMgdHJpZ2dlcmVkCi18djpmY3NfY2hvaWNlfCAJCXdoYXQgc2hvdWxkIGhhcHBlbiBhZnRlciB8RmlsZUNoYW5nZWRTaGVsbHwKK3x2OmZjc19yZWFzb258CQl0aGUgcmVhc29uIHdoeSB8RmlsZUNoYW5nZWRTaGVsbHwgd2FzIHRyaWdnZXJlZAorfHY6ZmNzX2Nob2ljZXwJCXdoYXQgc2hvdWxkIGhhcHBlbiBhZnRlciB8RmlsZUNoYW5nZWRTaGVsbHwKIHx2OmJldmFsX2J1Zm5yfAkJYnVmZmVyIG51bWJlciBmb3IgJ2JhbGxvb25leHByJwogfHY6YmV2YWxfd2lubnJ8CQl3aW5kb3cgbnVtYmVyIGZvciAnYmFsbG9vbmV4cHInCiB8djpiZXZhbF9sbnVtfAkJbGluZSBudW1iZXIgZm9yICdiYWxsb29uZXhwcicKQEAgLTI4MjIsNSArMjgyMiwxMyBAQAogY3Vyc29yIGxlZnQgd2hlbiBpdCB3YXMgYWZ0ZXIgdGhlIGVuZCBvZiB0aGUgbGluZSwgZXZlbiB0aG91Z2ggaXQncyBhbGxvd2VkIHRvCiBiZSB0aGVyZS4KIAorQWRkZWQgdGVzdCBmb3IgdXNpbmcgdGFiIHBhZ2VzLgorCit0b3d1cHBlcigpIGFuZCB0b3dsb3dlcigpIHdlcmUgbm90IHVzZWQsIGJlY2F1c2Ugb2YgY2hlY2tpbmcgZm9yCitfX1NURENfX0lTT18xMDY0Nl9fIGluc3RlYWQgb2YgX19TVERDX0lTT18xMDY0Nl9fLiAoc2VydGFjeWlsZGl6KQorCitGb3IgIjptYXAgPGV4cHI+IiBmb3JiaWQgY2hhbmdpbmcgdGhlIHRleHQsIGp1bXBpbmcgdG8gYW5vdGhlciBidWZmZXIgYW5kCit1c2luZyAiOm5vcm1hbCIgdG8gYXZvaWQgbmFzdHkgc2lkZSBlZmZlY3RzLgorCiAKICB2aW06dHc9Nzg6dHM9ODpmdD1oZWxwOm5vcmw6CmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy92aV9kaWZmLnR4dCBiL3J1bnRpbWUvZG9jL3ZpX2RpZmYudHh0CmluZGV4IGNiNDJkYjEuLjA0OGI4M2YgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvZG9jL3ZpX2RpZmYudHh0CisrKyBiL3J1bnRpbWUvZG9jL3ZpX2RpZmYudHh0CkBAIC0xLDQgKzEsNCBAQAotKnZpX2RpZmYudHh0KiAgIEZvciBWaW0gdmVyc2lvbiA3LjBmLiAgTGFzdCBjaGFuZ2U6IDIwMDYgQXByIDI0CisqdmlfZGlmZi50eHQqICAgRm9yIFZpbSB2ZXJzaW9uIDcuMGcuICBMYXN0IGNoYW5nZTogMjAwNiBBcHIgMjQKIAogCiAJCSAgVklNIFJFRkVSRU5DRSBNQU5VQUwgICAgYnkgQnJhbSBNb29sZW5hYXIKZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL3ZpbS1mci4xIGIvcnVudGltZS9kb2MvdmltLWZyLjEKaW5kZXggODIwOTg1Ny4uMzc1M2EzYiAxMDA2NDQKLS0tIGEvcnVudGltZS9kb2MvdmltLWZyLjEKKysrIGIvcnVudGltZS9kb2MvdmltLWZyLjEKQEAgLTQ0LDcgKzQ0LDcgQEAKIHBsdXNpZXVycyBuaXZlYXV4LCBmZW7qdHJlcyBldCB0YW1wb25zIG11bHRpcGxlcywgY29sb3JhdGlvbiBzeW50YXhpcXVlLAog6WRpdGlvbiBlbiBsaWduZSBkZSBjb21tYW5kZSwgY29tcGzodGVtZW50IGRlcyBub21zIGRlIGZpY2hpZXJzLCBhaWRlIGVuCiBsaWduZSwgc+lsZWN0aW9uIHZpc3VlbGxlLCBldGMuCi1Wb2lyICI6aGVscCB2aV9kaWZmLnR4dCIgcG91ciB1biBy6XN1bekgZGVzIGRpZmbpcmVuY2VzIGVudHJlIAorVm9pciAiOmhlbHAgdmlfZGlmZi50eHQiIHBvdXIgdW4gculzdW3pIGRlcyBkaWZm6XJlbmNlcyBlbnRyZQogLkIgVmltCiBldCBWaS4KIC5QUApAQCAtOTYsNyArOTYsNyBAQAogXC1xIFtmaWNoaWVyZXJyZXVyc10KIETpbWFycmUgZW4gbW9kZSBNaXNlLWF1LXBvaW50IChRdWlja0ZpeCkuCiBMZSBmaWNoaWVyIFtmaWNoaWVyZXJyZXVyc10gZXN0IGx1IGV0IGxhIHByZW1p6HJlIGVycmV1ciBlc3QgYWZmaWNo6WUuCi1TaSBbZmljaGllcmVycmV1cnNdIGVzdCBvbWlzLCBsZSBub20gZHUgZmljaGllciBlc3QgbHUgZGFucyAKK1NpIFtmaWNoaWVyZXJyZXVyc10gZXN0IG9taXMsIGxlIG5vbSBkdSBmaWNoaWVyIGVzdCBsdSBkYW5zCiBsJ29wdGlvbiAnZXJyb3JmaWxlJyAoIkF6dGVjQy5FcnIiIHBhciBk6WZhdXQgc3VyIEFtaWdhLCAiZXJyb3JzLmVyciIgc3VyIGxlcwogYXV0cmVzIHN5c3TobWVzKS4KIExhIGNvbW1hbmRlICI6Y24iIHBlcm1ldCBkZSBzYXV0ZXIgYXV4IGVycmV1cnMgc3VpdmFudGVzLgpAQCAtMjU5LDcgKzI1OSw3IEBACiAuVFAKIFwtaAogRG9ubmUgdW5lIGFpZGUgc3VjY2ludGUgc3VyIGxlcyBhcmd1bWVudHMgZXQgbGVzIG9wdGlvbnMgZGUgbGEgbGlnbmUgZGUKLWNvbW1hbmRlLiBBcHLocyBjZWxhLCAKK2NvbW1hbmRlLiBBcHLocyBjZWxhLAogLkIgVmltCiBxdWl0dGUuCiAuVFAKZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL3ZpbS1mci5VVEYtOC4xIGIvcnVudGltZS9kb2MvdmltLWZyLlVURi04LjEKaW5kZXggYTIxYWQwNi4uNzIwMDlmMiAxMDA2NDQKLS0tIGEvcnVudGltZS9kb2MvdmltLWZyLlVURi04LjEKKysrIGIvcnVudGltZS9kb2MvdmltLWZyLlVURi04LjEKQEAgLTQ0LDcgKzQ0LDcgQEAKIHBsdXNpZXVycyBuaXZlYXV4LCBmZW7DqnRyZXMgZXQgdGFtcG9ucyBtdWx0aXBsZXMsIGNvbG9yYXRpb24gc3ludGF4aXF1ZSwKIMOpZGl0aW9uIGVuIGxpZ25lIGRlIGNvbW1hbmRlLCBjb21wbMOodGVtZW50IGRlcyBub21zIGRlIGZpY2hpZXJzLCBhaWRlIGVuCiBsaWduZSwgc8OpbGVjdGlvbiB2aXN1ZWxsZSwgZXRjLgotVm9pciAiOmhlbHAgdmlfZGlmZi50eHQiIHBvdXIgdW4gcsOpc3Vtw6kgZGVzIGRpZmbDqXJlbmNlcyBlbnRyZSAKK1ZvaXIgIjpoZWxwIHZpX2RpZmYudHh0IiBwb3VyIHVuIHLDqXN1bcOpIGRlcyBkaWZmw6lyZW5jZXMgZW50cmUKIC5CIFZpbQogZXQgVmkuCiAuUFAKQEAgLTk2LDcgKzk2LDcgQEAKIFwtcSBbZmljaGllcmVycmV1cnNdCiBEw6ltYXJyZSBlbiBtb2RlIE1pc2UtYXUtcG9pbnQgKFF1aWNrRml4KS4KIExlIGZpY2hpZXIgW2ZpY2hpZXJlcnJldXJzXSBlc3QgbHUgZXQgbGEgcHJlbWnDqHJlIGVycmV1ciBlc3QgYWZmaWNow6llLgotU2kgW2ZpY2hpZXJlcnJldXJzXSBlc3Qgb21pcywgbGUgbm9tIGR1IGZpY2hpZXIgZXN0IGx1IGRhbnMgCitTaSBbZmljaGllcmVycmV1cnNdIGVzdCBvbWlzLCBsZSBub20gZHUgZmljaGllciBlc3QgbHUgZGFucwogbCdvcHRpb24gJ2Vycm9yZmlsZScgKCJBenRlY0MuRXJyIiBwYXIgZMOpZmF1dCBzdXIgQW1pZ2EsICJlcnJvcnMuZXJyIiBzdXIgbGVzCiBhdXRyZXMgc3lzdMOobWVzKS4KIExhIGNvbW1hbmRlICI6Y24iIHBlcm1ldCBkZSBzYXV0ZXIgYXV4IGVycmV1cnMgc3VpdmFudGVzLgpAQCAtMjU5LDcgKzI1OSw3IEBACiAuVFAKIFwtaAogRG9ubmUgdW5lIGFpZGUgc3VjY2ludGUgc3VyIGxlcyBhcmd1bWVudHMgZXQgbGVzIG9wdGlvbnMgZGUgbGEgbGlnbmUgZGUKLWNvbW1hbmRlLiBBcHLDqHMgY2VsYSwgCitjb21tYW5kZS4gQXByw6hzIGNlbGEsCiAuQiBWaW0KIHF1aXR0ZS4KIC5UUApkaWZmIC0tZ2l0IGEvcnVudGltZS9kb2MvdmltLWl0LjEgYi9ydW50aW1lL2RvYy92aW0taXQuMQppbmRleCBiN2U5ZGFiLi5kNzEyYWY0IDEwMDc1NQotLS0gYS9ydW50aW1lL2RvYy92aW0taXQuMQorKysgYi9ydW50aW1lL2RvYy92aW0taXQuMQpAQCAtMzYzLDE0ICszNjMsMTQgQEAKIFVzYSBpIGNvbWFuZGkgbmVsIGZpbGUge3ZpbXJjfSBwZXIgaW5pemlhbGl6emF6aW9uaS4KIFR1dHRlIGxlIGFsdHJlIGluaXppYWxpenphemlvbmkgbm9uIHNvbm8gZXNlZ3VpdGUuCiBVc2F0ZSBxdWVzdGEgb3B6aW9uZSBwZXIgZWRpdGFyZSBxdWFsY2hlIGZpbGUgZGkgdGlwbyBzcGVjaWFsZS4KLVB18iBhbmNoZSBlc3NlcmUgdXNhdG8gcGVyIG5vbiBmYXJlIGFsY3VuYSBpbml6aWFsaXp6YXppb25lIGRhbmRvIAorUHXyIGFuY2hlIGVzc2VyZSB1c2F0byBwZXIgbm9uIGZhcmUgYWxjdW5hIGluaXppYWxpenphemlvbmUgZGFuZG8KIGNvbWUgbm9tZSAiTk9ORSIuCiBWZWRlcmUgIjpoZWxwIGluaXRpYWxpemF0aW9uIiBkYSB2aW0gcGVyIHVsdGVyaW9yaSBkZXR0YWdsaS4KIC5UUAogXC1VIHtndmltcmN9CiBVc2EgaSBjb21hbmRpIG5lbCBmaWxlIHtndmltcmN9IHBlciBpbml6aWFsaXp6YXppb25pIEdVSS4KIFR1dHRlIGxlIGFsdHJlIGluaXppYWxpenphemlvbmkgR1VJIG5vbiBzb25vIGVzZWd1aXRlLgotUHXyIGFuY2hlIGVzc2VyZSB1c2F0YSBwZXIgbm9uIGZhcmUgYWxjdW5hIGluaXppYWxpenphemlvbmUgR1VJIGRhbmRvIAorUHXyIGFuY2hlIGVzc2VyZSB1c2F0YSBwZXIgbm9uIGZhcmUgYWxjdW5hIGluaXppYWxpenphemlvbmUgR1VJIGRhbmRvCiBjb21lIG5vbWUgIk5PTkUiLgogVmVkZXJlICI6aGVscCBndWktaW5pdCIgZGEgdmltIHBlciB1bHRlcmlvcmkgZGV0dGFnbGkuCiAuVFAKZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL3ZpbS1pdC5VVEYtOC4xIGIvcnVudGltZS9kb2MvdmltLWl0LlVURi04LjEKaW5kZXggNDdkNjY4OC4uZjQxNjkxZCAxMDA2NDQKLS0tIGEvcnVudGltZS9kb2MvdmltLWl0LlVURi04LjEKKysrIGIvcnVudGltZS9kb2MvdmltLWl0LlVURi04LjEKQEAgLTM2MywxNCArMzYzLDE0IEBACiBVc2EgaSBjb21hbmRpIG5lbCBmaWxlIHt2aW1yY30gcGVyIGluaXppYWxpenphemlvbmkuCiBUdXR0ZSBsZSBhbHRyZSBpbml6aWFsaXp6YXppb25pIG5vbiBzb25vIGVzZWd1aXRlLgogVXNhdGUgcXVlc3RhIG9wemlvbmUgcGVyIGVkaXRhcmUgcXVhbGNoZSBmaWxlIGRpIHRpcG8gc3BlY2lhbGUuCi1QdcOyIGFuY2hlIGVzc2VyZSB1c2F0byBwZXIgbm9uIGZhcmUgYWxjdW5hIGluaXppYWxpenphemlvbmUgZGFuZG8gCitQdcOyIGFuY2hlIGVzc2VyZSB1c2F0byBwZXIgbm9uIGZhcmUgYWxjdW5hIGluaXppYWxpenphemlvbmUgZGFuZG8KIGNvbWUgbm9tZSAiTk9ORSIuCiBWZWRlcmUgIjpoZWxwIGluaXRpYWxpemF0aW9uIiBkYSB2aW0gcGVyIHVsdGVyaW9yaSBkZXR0YWdsaS4KIC5UUAogXC1VIHtndmltcmN9CiBVc2EgaSBjb21hbmRpIG5lbCBmaWxlIHtndmltcmN9IHBlciBpbml6aWFsaXp6YXppb25pIEdVSS4KIFR1dHRlIGxlIGFsdHJlIGluaXppYWxpenphemlvbmkgR1VJIG5vbiBzb25vIGVzZWd1aXRlLgotUHXDsiBhbmNoZSBlc3NlcmUgdXNhdGEgcGVyIG5vbiBmYXJlIGFsY3VuYSBpbml6aWFsaXp6YXppb25lIEdVSSBkYW5kbyAKK1B1w7IgYW5jaGUgZXNzZXJlIHVzYXRhIHBlciBub24gZmFyZSBhbGN1bmEgaW5pemlhbGl6emF6aW9uZSBHVUkgZGFuZG8KIGNvbWUgbm9tZSAiTk9ORSIuCiBWZWRlcmUgIjpoZWxwIGd1aS1pbml0IiBkYSB2aW0gcGVyIHVsdGVyaW9yaSBkZXR0YWdsaS4KIC5UUApkaWZmIC0tZ2l0IGEvcnVudGltZS9kb2MvdmltdHV0b3ItZnIuMSBiL3J1bnRpbWUvZG9jL3ZpbXR1dG9yLWZyLjEKaW5kZXggZTZhZTY0OC4uYWI1ZDI5OCAxMDA2NDQKLS0tIGEvcnVudGltZS9kb2MvdmltdHV0b3ItZnIuMQorKysgYi9ydW50aW1lL2RvYy92aW10dXRvci1mci4xCkBAIC0yOCwxMiArMjgsMTIgQEAKIC5TSCBGSUNISUVSUwogLlRQIDE1CiAvdXNyL2xvY2FsL2xpYi92aW0vdHV0b3IvdHV0b3JbLmxhbmd1ZV0KLUxlcyBmaWNoaWVycyB0ZXh0ZXMgZGUgCitMZXMgZmljaGllcnMgdGV4dGVzIGRlCiAuQiBWaW10dXRvcgogXC4KIC5UUCAxNQogL3Vzci9sb2NhbC9saWIvdmltL3R1dG9yL3R1dG9yLnZpbQotTGUgc2NyaXB0IFZpbSB1dGlsaXPpIHBvdXIgY29waWVyIGxlcyBmaWNoaWVycyB0ZXh0ZSBkZSAKK0xlIHNjcmlwdCBWaW0gdXRpbGlz6SBwb3VyIGNvcGllciBsZXMgZmljaGllcnMgdGV4dGUgZGUKIC5CIFZpbXR1dG9yCiBcLgogLlNIIEFVVEVVUgpkaWZmIC0tZ2l0IGEvcnVudGltZS9kb2MvdmltdHV0b3ItZnIuVVRGLTguMSBiL3J1bnRpbWUvZG9jL3ZpbXR1dG9yLWZyLlVURi04LjEKaW5kZXggZTM2YzM0ZC4uYTQxZTE2MyAxMDA2NDQKLS0tIGEvcnVudGltZS9kb2MvdmltdHV0b3ItZnIuVVRGLTguMQorKysgYi9ydW50aW1lL2RvYy92aW10dXRvci1mci5VVEYtOC4xCkBAIC0yOCwxMiArMjgsMTIgQEAKIC5TSCBGSUNISUVSUwogLlRQIDE1CiAvdXNyL2xvY2FsL2xpYi92aW0vdHV0b3IvdHV0b3JbLmxhbmd1ZV0KLUxlcyBmaWNoaWVycyB0ZXh0ZXMgZGUgCitMZXMgZmljaGllcnMgdGV4dGVzIGRlCiAuQiBWaW10dXRvcgogXC4KIC5UUCAxNQogL3Vzci9sb2NhbC9saWIvdmltL3R1dG9yL3R1dG9yLnZpbQotTGUgc2NyaXB0IFZpbSB1dGlsaXPDqSBwb3VyIGNvcGllciBsZXMgZmljaGllcnMgdGV4dGUgZGUgCitMZSBzY3JpcHQgVmltIHV0aWxpc8OpIHBvdXIgY29waWVyIGxlcyBmaWNoaWVycyB0ZXh0ZSBkZQogLkIgVmltdHV0b3IKIFwuCiAuU0ggQVVURVVSCmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy92aXN1YWwudHh0IGIvcnVudGltZS9kb2MvdmlzdWFsLnR4dAppbmRleCBhNjMwZGY4Li5lOWZiYzcyIDEwMDY0NAotLS0gYS9ydW50aW1lL2RvYy92aXN1YWwudHh0CisrKyBiL3J1bnRpbWUvZG9jL3Zpc3VhbC50eHQKQEAgLTEsNCArMSw0IEBACi0qdmlzdWFsLnR4dCogICAgRm9yIFZpbSB2ZXJzaW9uIDcuMGYuICBMYXN0IGNoYW5nZTogMjAwNiBBcHIgMjQKKyp2aXN1YWwudHh0KiAgICBGb3IgVmltIHZlcnNpb24gNy4wZy4gIExhc3QgY2hhbmdlOiAyMDA2IEFwciAyNAogCiAKIAkJICBWSU0gUkVGRVJFTkNFIE1BTlVBTCAgICBieSBCcmFtIE1vb2xlbmFhcgpkaWZmIC0tZ2l0IGEvcnVudGltZS9kb2Mvd2luZG93cy50eHQgYi9ydW50aW1lL2RvYy93aW5kb3dzLnR4dAppbmRleCAxMGZmOWRlLi42NWQ1Y2YyIDEwMDY0NAotLS0gYS9ydW50aW1lL2RvYy93aW5kb3dzLnR4dAorKysgYi9ydW50aW1lL2RvYy93aW5kb3dzLnR4dApAQCAtMSw0ICsxLDQgQEAKLSp3aW5kb3dzLnR4dCogICBGb3IgVmltIHZlcnNpb24gNy4wZi4gIExhc3QgY2hhbmdlOiAyMDA2IEFwciAyNAorKndpbmRvd3MudHh0KiAgIEZvciBWaW0gdmVyc2lvbiA3LjBnLiAgTGFzdCBjaGFuZ2U6IDIwMDYgQXByIDI0CiAKIAogCQkgIFZJTSBSRUZFUkVOQ0UgTUFOVUFMICAgIGJ5IEJyYW0gTW9vbGVuYWFyCmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy93b3Jrc2hvcC50eHQgYi9ydW50aW1lL2RvYy93b3Jrc2hvcC50eHQKaW5kZXggZDU4ZWYyOC4uNjk5OGI0YyAxMDA2NDQKLS0tIGEvcnVudGltZS9kb2Mvd29ya3Nob3AudHh0CisrKyBiL3J1bnRpbWUvZG9jL3dvcmtzaG9wLnR4dApAQCAtMSw0ICsxLDQgQEAKLSp3b3Jrc2hvcC50eHQqICBGb3IgVmltIHZlcnNpb24gNy4wZi4gIExhc3QgY2hhbmdlOiAyMDA2IEFwciAyNAorKndvcmtzaG9wLnR4dCogIEZvciBWaW0gdmVyc2lvbiA3LjBnLiAgTGFzdCBjaGFuZ2U6IDIwMDYgQXByIDI0CiAKIAogCQkgIFZJTSBSRUZFUkVOQ0UgTUFOVUFMICAgIGJ5IEdvcmRvbiBQcmlldXIKZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL3h4ZC1mci4xIGIvcnVudGltZS9kb2MveHhkLWZyLjEKaW5kZXggYjAwMjUxYy4uZGZiYzI5MSAxMDA2NDQKLS0tIGEvcnVudGltZS9kb2MveHhkLWZyLjEKKysrIGIvcnVudGltZS9kb2MveHhkLWZyLjEKQEAgLTExOCw3ICsxMTgsNyBAQAogT3DpcmF0aW9uIGludmVyc2UgOiBjb252ZXJ0aXQgdW4gZmljaGllciBoZXhhZOljaW1hbCBlbiB1biBmaWNoaWVyIGJpbmFpcmUgKG91CiBhcHBsaXF1ZSB1bmUgcnVzdGluZSDgIHVuIGZpY2hpZXIgYmluYWlyZSkuCiBTaSBsJ+ljcml0dXJlIG4nYSBwYXMgbGlldSBzdXIgbGEgc29ydGllIHN0YW5kYXJkLCB4eGQg6WNyaXQgZGFucyBsZSBmaWNoaWVyCi1xdSdpbCBwcm9kdWl0IHNhbnMgbGUgdHJvbnF1ZXIuIFV0aWxpc2V6IGxhIGNvbWJpbmFpc29uIAorcXUnaWwgcHJvZHVpdCBzYW5zIGxlIHRyb25xdWVyLiBVdGlsaXNleiBsYSBjb21iaW5haXNvbgogLkkgXC1yIFwtcAogcG91ciBsaXJlIGRlIGwnaGV4YWTpY2ltYWwgYnJ1dCBzYW5zIGluZm9ybWF0aW9uIHN1ciBsZSBudW3pcm8gZGVzIGxpZ25lcyBldAogc2FucyBmb3JtYXQgZGUgY29sb25uZXMgcGFydGljdWxpZXIuIERlcyBlc3BhY2VzIGJsYW5jcyBldCBjb3VwdXJlcyBkZSBsaWduZXMKQEAgLTE4MCw3ICsxODAsNyBAQAogXGZJJSB4eGQgXC1pIDwgZmljaGllclxmUgogLlBQCiAuSSB4eGQgXC1zIFwrc2VlawotcGV1dCBkaWZm6XJlciBkZSAKK3BldXQgZGlmZulyZXIgZGUKIC5JUiAieHhkIFwtcyBzZWVrIiAsCiBjYXIgbHNlZWsoMikgZXN0IHV0aWxpc+kgcG91ciCrIHJldmVuaXIgZW4gYXJyaehyZSC7LiBMZSAnKycgZmFpdCB1bmUKIGRpZmbpcmVuY2UgcXVhbmQgbGEgc291cmNlIGRlcyBkb25u6WVzIGVzdCBsJ2VudHLpZSBzdGFuZGFyZCBldCBzaSBsYSBwb3NpdGlvbgpkaWZmIC0tZ2l0IGEvcnVudGltZS9kb2MveHhkLWZyLlVURi04LjEgYi9ydW50aW1lL2RvYy94eGQtZnIuVVRGLTguMQppbmRleCBiYWI1NzJjLi43YmRiNjU1IDEwMDY0NAotLS0gYS9ydW50aW1lL2RvYy94eGQtZnIuVVRGLTguMQorKysgYi9ydW50aW1lL2RvYy94eGQtZnIuVVRGLTguMQpAQCAtMTE4LDcgKzExOCw3IEBACiBPcMOpcmF0aW9uIGludmVyc2UgOiBjb252ZXJ0aXQgdW4gZmljaGllciBoZXhhZMOpY2ltYWwgZW4gdW4gZmljaGllciBiaW5haXJlIChvdQogYXBwbGlxdWUgdW5lIHJ1c3RpbmUgw6AgdW4gZmljaGllciBiaW5haXJlKS4KIFNpIGwnw6ljcml0dXJlIG4nYSBwYXMgbGlldSBzdXIgbGEgc29ydGllIHN0YW5kYXJkLCB4eGQgw6ljcml0IGRhbnMgbGUgZmljaGllcgotcXUnaWwgcHJvZHVpdCBzYW5zIGxlIHRyb25xdWVyLiBVdGlsaXNleiBsYSBjb21iaW5haXNvbiAKK3F1J2lsIHByb2R1aXQgc2FucyBsZSB0cm9ucXVlci4gVXRpbGlzZXogbGEgY29tYmluYWlzb24KIC5JIFwtciBcLXAKIHBvdXIgbGlyZSBkZSBsJ2hleGFkw6ljaW1hbCBicnV0IHNhbnMgaW5mb3JtYXRpb24gc3VyIGxlIG51bcOpcm8gZGVzIGxpZ25lcyBldAogc2FucyBmb3JtYXQgZGUgY29sb25uZXMgcGFydGljdWxpZXIuIERlcyBlc3BhY2VzIGJsYW5jcyBldCBjb3VwdXJlcyBkZSBsaWduZXMKQEAgLTE4MCw3ICsxODAsNyBAQAogXGZJJSB4eGQgXC1pIDwgZmljaGllclxmUgogLlBQCiAuSSB4eGQgXC1zIFwrc2VlawotcGV1dCBkaWZmw6lyZXIgZGUgCitwZXV0IGRpZmbDqXJlciBkZQogLklSICJ4eGQgXC1zIHNlZWsiICwKIGNhciBsc2VlaygyKSBlc3QgdXRpbGlzw6kgcG91ciDCqyByZXZlbmlyIGVuIGFycmnDqHJlIMK7LiBMZSAnKycgZmFpdCB1bmUKIGRpZmbDqXJlbmNlIHF1YW5kIGxhIHNvdXJjZSBkZXMgZG9ubsOpZXMgZXN0IGwnZW50csOpZSBzdGFuZGFyZCBldCBzaSBsYSBwb3NpdGlvbgpkaWZmIC0tZ2l0IGEvcnVudGltZS9kb2MveHhkLWl0LlVURi04LjEgYi9ydW50aW1lL2RvYy94eGQtaXQuVVRGLTguMQppbmRleCBmOTE5YTE4Li45ZTM3NDJkIDEwMDY0NAotLS0gYS9ydW50aW1lL2RvYy94eGQtaXQuVVRGLTguMQorKysgYi9ydW50aW1lL2RvYy94eGQtaXQuVVRGLTguMQpAQCAtMTY5LDcgKzE2OSw3IEBACiBkYXRpIGVzYWRlY2ltYWxpICh2ZWRlcmUgb3B6aW9uZSBcLWMpLiBDacOyIGltcGxpY2EgcHVyZSBjaGUgbGUgbW9kaWZpY2hlIGFsbGUKIGNvbG9ubmUgZGkgY2FyYXR0ZXJpIHN0YW1wYWJpbGkgYXNjaWkgKG8gZWJjZGljKSBzb25vIHNlbXByZSBpZ25vcmF0ZS4KIExhIHJpY29zdHJ1emlvbmUgZGEgdW4gZmlsZSBpbW1hZ2luZSBlc2FkZWNpbWFsZSBpbiBzdGlsZSBzZW1wbGljZQotKHBvc3RzY3JpcHQpIGNvbiB4eGQgXC1yIFwtcCBub24gZGlwZW5kZSBkYWwgbnVtZXJvIGNvcnJyZXR0byBkaSBjb2xvbm5lLiAKKyhwb3N0c2NyaXB0KSBjb24geHhkIFwtciBcLXAgbm9uIGRpcGVuZGUgZGFsIG51bWVybyBjb3JycmV0dG8gZGkgY29sb25uZS4KIElOIHF1ZXN0byBjYXNvLCBxdWFsc2lhc2kgY29zYSBhc3NvbWlnbGkgYSB1bmEgY29wcGlhIGRpIGNpZnJlIGVzYWRlY2ltYWxpCiDDqCBpbnRlcnByZXRhdGEgW2UgdXRpbGl6emF0YV0uCiAuUFAK