ZGlmZiAtLWdpdCBhL0xpYi9pZGxlbGliL0NSRURJVFMudHh0IGIvTGliL2lkbGVsaWIvQ1JFRElUUy50eHQKaW5kZXggZTgzOGMwMy4uMzA1NjFhOSAxMDA2NDQKLS0tIGEvTGliL2lkbGVsaWIvQ1JFRElUUy50eHQKKysrIGIvTGliL2lkbGVsaWIvQ1JFRElUUy50eHQKQEAgLTI0LDggKzI0LDggQEAKIGludGVncmF0aW9uLCBkZWJ1Z2dlciBpbnRlZ3JhdGlvbiBhbmQgcGVyc2lzdGVudCBicmVha3BvaW50cykuCiAKIFNjb3R0IERhdmlkIERhbmllbHMsIFRhbCBFaW5hdCwgSGVybmFuIEZvZmZhbmksIENocmlzdG9zIEdlb3JnaW91LAotTWFydGluIHYuIEz2d2lzLCBKYXNvbiBPcmVuZG9yZmYsIEpvc2ggUm9iYiwgTmlnZWwgUm93ZSwgQnJ1Y2UgU2hlcndvb2QsCi1hbmQgSmVmZiBTaHV0ZSBoYXZlIHN1Ym1pdHRlZCB1c2VmdWwgcGF0Y2hlcy4gIFRoYW5rcywgZ3V5cyEKK0ppbSBKZXdldHQsIE1hcnRpbiB2LiBM9ndpcywgSmFzb24gT3JlbmRvcmZmLCBKb3NoIFJvYmIsIE5pZ2VsIFJvd2UsCitCcnVjZSBTaGVyd29vZCwgYW5kIEplZmYgU2h1dGUgaGF2ZSBzdWJtaXR0ZWQgdXNlZnVsIHBhdGNoZXMuICBUaGFua3MsIGd1eXMhCiAKIEZvciBhZGRpdGlvbmFsIGRldGFpbHMgcmVmZXIgdG8gTkVXUy50eHQgYW5kIENoYW5nZWxvZy4KIApkaWZmIC0tZ2l0IGEvTGliL2lkbGVsaWIvTkVXUy50eHQgYi9MaWIvaWRsZWxpYi9ORVdTLnR4dAppbmRleCA5MGI1N2U2Li5kZmRiMGNiIDEwMDY0NAotLS0gYS9MaWIvaWRsZWxpYi9ORVdTLnR4dAorKysgYi9MaWIvaWRsZWxpYi9ORVdTLnR4dApAQCAtMyw3ICszLDExIEBACiAKICpSZWxlYXNlIGRhdGU6IDE3LUFVRy0yMDA2KgogCi0tIFRoZSAnd2l0aCcgc3RhdGVtZW50IGlzIG5vdyBhIENvZGUgQ29udGV4dCBibG9jayBvcGVuZXIKKy0gSURMRSBob25vcnMgbmV3IHF1aXQoKSBhbmQgZXhpdCgpIGNvbW1hbmRzIGZyb20gc2l0ZS5weSBRdWl0dGVyKCkgb2JqZWN0LgorICBQYXRjaCAxNTQwODkyLCBKaW0gSmV3ZXR0CisKKy0gVGhlICd3aXRoJyBzdGF0ZW1lbnQgaXMgbm93IGEgQ29kZSBDb250ZXh0IGJsb2NrIG9wZW5lci4KKyAgUGF0Y2ggMTU0MDg1MSwgSmltIEpld2V0dAogCiAtIFJldHJpZXZhbCBvZiBwcmV2aW91cyBzaGVsbCBjb21tYW5kIHdhcyBub3QgYWx3YXlzIHByZXNlcnZpbmcgaW5kZW50YXRpb24KICAgKHNpbmNlIDEuMmExKSBQYXRjaCAxNTI4NDY4IFRhbCBFaW5hdC4KZGlmZiAtLWdpdCBhL0xpYi9pZGxlbGliL1B5U2hlbGwucHkgYi9MaWIvaWRsZWxpYi9QeVNoZWxsLnB5CmluZGV4IDEyYTQ1YTQuLjU3OTA0ODMgMTAwNjQ0Ci0tLSBhL0xpYi9pZGxlbGliL1B5U2hlbGwucHkKKysrIGIvTGliL2lkbGVsaWIvUHlTaGVsbC5weQpAQCAtNDc4LDkgKzQ3OCw2IEBACiAgICAgICAgIGltcG9ydCBzeXMgYXMgX3N5cwogICAgICAgICBfc3lzLnBhdGggPSAlcgogICAgICAgICBkZWwgX3N5cwotICAgICAgICBfbXNnID0gJ1VzZSBGaWxlL0V4aXQgb3IgeW91ciBlbmQtb2YtZmlsZSBrZXkgdG8gcXVpdCBJRExFJwotICAgICAgICBfX2J1aWx0aW5zX18ucXVpdCA9IF9fYnVpbHRpbnNfXy5leGl0ID0gX21zZwotICAgICAgICBkZWwgX21zZwogICAgICAgICBcbiIiIiAlIChzeXMucGF0aCwpKQogCiAgICAgYWN0aXZlX3NlcSA9IE5vbmUKQEAgLTUxNCw3ICs1MTEsMTAgQEAKICAgICAgICAgICAgICAgICBwcmludCA+PnN5cy5fX3N0ZGVycl9fLCBlcnJtc2csIHdoYXQKICAgICAgICAgICAgICAgICBwcmludCA+PmNvbnNvbGUsIGVycm1zZywgd2hhdAogICAgICAgICAgICAgIyB3ZSByZWNlaXZlZCBhIHJlc3BvbnNlIHRvIHRoZSBjdXJyZW50bHkgYWN0aXZlIHNlcSBudW1iZXI6Ci0gICAgICAgICAgICBzZWxmLnRrY29uc29sZS5lbmRleGVjdXRpbmcoKQorICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgIHNlbGYudGtjb25zb2xlLmVuZGV4ZWN1dGluZygpCisgICAgICAgICAgICBleGNlcHQgQXR0cmlidXRlRXJyb3I6ICAjIHNoZWxsIG1heSBoYXZlIGNsb3NlZAorICAgICAgICAgICAgICAgIHBhc3MKICAgICAgICAgIyBSZXNjaGVkdWxlIG15c2VsZgogICAgICAgICBpZiBub3Qgc2VsZi50a2NvbnNvbGUuY2xvc2luZzoKICAgICAgICAgICAgIHNlbGYudGtjb25zb2xlLnRleHQuYWZ0ZXIoc2VsZi50a2NvbnNvbGUucG9sbGludGVydmFsLApAQCAtNzMwLDcgKzczMCwxMCBAQAogICAgICAgICAgICAgICAgICAgICBzZWxmLnRrY29uc29sZS5lbmRleGVjdXRpbmcoKQogICAgICAgICBmaW5hbGx5OgogICAgICAgICAgICAgaWYgbm90IHVzZV9zdWJwcm9jZXNzOgotICAgICAgICAgICAgICAgIHNlbGYudGtjb25zb2xlLmVuZGV4ZWN1dGluZygpCisgICAgICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgICAgICBzZWxmLnRrY29uc29sZS5lbmRleGVjdXRpbmcoKQorICAgICAgICAgICAgICAgIGV4Y2VwdCBBdHRyaWJ1dGVFcnJvcjogICMgc2hlbGwgbWF5IGhhdmUgY2xvc2VkCisgICAgICAgICAgICAgICAgICAgIHBhc3MKIAogICAgIGRlZiB3cml0ZShzZWxmLCBzKToKICAgICAgICAgIk92ZXJyaWRlIGJhc2UgY2xhc3MgbWV0aG9kIgpAQCAtODA0LDkgKzgwNyw2IEBACiAgICAgICAgICMKICAgICAgICAgT3V0cHV0V2luZG93Ll9faW5pdF9fKHNlbGYsIGZsaXN0LCBOb25lLCBOb25lKQogICAgICAgICAjCi0gICAgICAgIGltcG9ydCBfX2J1aWx0aW5fXwotICAgICAgICBfX2J1aWx0aW5fXy5xdWl0ID0gX19idWlsdGluX18uZXhpdCA9ICJUbyBleGl0LCB0eXBlIEN0cmwtRC4iCi0gICAgICAgICMKICMjICAgICAgICBzZWxmLmNvbmZpZyh1c2V0YWJzPTEsIGluZGVudHdpZHRoPTgsIGNvbnRleHRfdXNlX3BzMT0xKQogICAgICAgICBzZWxmLnVzZXRhYnMgPSBUcnVlCiAgICAgICAgICMgaW5kZW50d2lkdGggbXVzdCBiZSA4IHdoZW4gdXNpbmcgdGFicy4gIFNlZSBub3RlIGluIEVkaXRvcldpbmRvdzoKZGlmZiAtLWdpdCBhL0xpYi9zaXRlLnB5IGIvTGliL3NpdGUucHkKaW5kZXggZTJhZDNiOTJjLi4xMTNmMjIxIDEwMDY0NAotLS0gYS9MaWIvc2l0ZS5weQorKysgYi9MaWIvc2l0ZS5weQpAQCAtMjQyLDYgKzI0MiwxMiBAQAogICAgICAgICBkZWYgX19yZXByX18oc2VsZik6CiAgICAgICAgICAgICByZXR1cm4gJ1VzZSAlcygpIG9yICVzIHRvIGV4aXQnICUgKHNlbGYubmFtZSwgZW9mKQogICAgICAgICBkZWYgX19jYWxsX18oc2VsZiwgY29kZT1Ob25lKToKKyAgICAgICAgICAgICMgU2hlbGxzIGxpa2UgSURMRSBjYXRjaCB0aGUgU3lzdGVtRXhpdCwgYnV0IGxpc3RlbiB3aGVuIHRoZWlyCisgICAgICAgICAgICAjIHN0ZGluIHdyYXBwZXIgaXMgY2xvc2VkLgorICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgIHN5cy5zdGRpbi5jbG9zZSgpCisgICAgICAgICAgICBleGNlcHQ6CisgICAgICAgICAgICAgICAgcGFzcwogICAgICAgICAgICAgcmFpc2UgU3lzdGVtRXhpdChjb2RlKQogICAgIF9fYnVpbHRpbl9fLnF1aXQgPSBRdWl0dGVyKCdxdWl0JykKICAgICBfX2J1aWx0aW5fXy5leGl0ID0gUXVpdHRlcignZXhpdCcpCmRpZmYgLS1naXQgYS9NaXNjL05FV1MgYi9NaXNjL05FV1MKaW5kZXggZTMwOGI3ZC4uNjIxMjQ1OSAxMDA2NDQKLS0tIGEvTWlzYy9ORVdTCisrKyBiL01pc2MvTkVXUwpAQCAtNjQsNiArNjQsOSBAQAogTGlicmFyeQogLS0tLS0tLQogCistIFBhdGNoICMxNTQwODkyOiBzaXRlLnB5IFF1aXR0ZXIoKSBjbGFzcyBhdHRlbXB0cyB0byBjbG9zZSBzeXMuc3RkaW4KKyAgYmVmb3JlIHJhaXNpbmcgU3lzdGVtRXhpdCwgYWxsb3dpbmcgSURMRSB0byBob25vciBxdWl0KCkgYW5kIGV4aXQoKS4KKwogLSBCdWcgIzEyMjQ2MjE6IG1ha2UgdGFibmFubnkgcmVjb2duaXplIEluZGVudGF0aW9uRXJyb3JzIHJhaXNlZCBieSB0b2tlbml6ZS4KIAogLSBQYXRjaCAjMTUzNjA3MTogdHJhY2UucHkgc2hvdWxkIG5vdyBmaW5kIHRoZSBmdWxsIG1vZHVsZSBuYW1lIG9mIGEK