ZGlmZiAtLWdpdCBhL0xpYi9haWZjLnB5IGIvTGliL2FpZmMucHkKaW5kZXggZjY2M2RkNi4uOGU0Zjg2NCAxMDA2NDQKLS0tIGEvTGliL2FpZmMucHkKKysrIGIvTGliL2FpZmMucHkKQEAgLTE0NCw5ICsxNDQsNiBAQAogCiBfQUlGQ192ZXJzaW9uID0gMHhBMjgwNTE0MEwgICAgICMgVmVyc2lvbiAxIG9mIEFJRkYtQwogCi1fc2tpcGxpc3QgPSAnQ09NVCcsICdJTlNUJywgJ01JREknLCAnQUVTRCcsIFwKLSAgICAgICdBUFBMJywgJ05BTUUnLCAnQVVUSCcsICcoYykgJywgJ0FOTk8nCi0KIGRlZiBfcmVhZF9sb25nKGZpbGUpOgogICAgIHRyeToKICAgICAgICAgcmV0dXJuIHN0cnVjdC51bnBhY2soJz5sJywgZmlsZS5yZWFkKDQpKVswXQpAQCAtMzE0LDEwICszMTEsNiBAQAogICAgICAgICAgICAgICAgIHNlbGYuX3ZlcnNpb24gPSBfcmVhZF91bG9uZyhjaHVuaykKICAgICAgICAgICAgIGVsaWYgY2h1bmtuYW1lID09ICdNQVJLJzoKICAgICAgICAgICAgICAgICBzZWxmLl9yZWFkbWFyayhjaHVuaykKLSAgICAgICAgICAgIGVsaWYgY2h1bmtuYW1lIGluIF9za2lwbGlzdDoKLSAgICAgICAgICAgICAgICBwYXNzCi0gICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgIHJhaXNlIEVycm9yLCAndW5yZWNvZ25pemVkIGNodW5rIHR5cGUgJytjaHVuay5jaHVua25hbWUKICAgICAgICAgICAgIGNodW5rLnNraXAoKQogICAgICAgICBpZiBub3Qgc2VsZi5fY29tbV9jaHVua19yZWFkIG9yIG5vdCBzZWxmLl9zc25kX2NodW5rOgogICAgICAgICAgICAgcmFpc2UgRXJyb3IsICdDT01NIGNodW5rIGFuZC9vciBTU05EIGNodW5rIG1pc3NpbmcnCmRpZmYgLS1naXQgYS9MaWIvdGVzdC9TaW5lLTEwMDBIei0zMDBtcy5haWYgYi9MaWIvdGVzdC9TaW5lLTEwMDBIei0zMDBtcy5haWYKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYmYwOGY1YwotLS0gL2Rldi9udWxsCisrKyBiL0xpYi90ZXN0L1NpbmUtMTAwMEh6LTMwMG1zLmFpZgpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9MaWIvdGVzdC90ZXN0X2FpZmMucHkgYi9MaWIvdGVzdC90ZXN0X2FpZmMucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uN2U1YjJlOQotLS0gL2Rldi9udWxsCisrKyBiL0xpYi90ZXN0L3Rlc3RfYWlmYy5weQpAQCAtMCwwICsxLDU0IEBACitmcm9tIHRlc3QudGVzdF9zdXBwb3J0IGltcG9ydCBmaW5kZmlsZSwgcnVuX3VuaXR0ZXN0CitpbXBvcnQgdW5pdHRlc3QKKworaW1wb3J0IGFpZmMKKworCitjbGFzcyBBSUZDVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CisKKyAgICBkZWYgc2V0VXAoc2VsZik6CisgICAgICAgIHNlbGYuc25kZmlsZXBhdGggPSBmaW5kZmlsZSgnU2luZS0xMDAwSHotMzAwbXMuYWlmJykKKworICAgIGRlZiB0ZXN0X3NraXB1bmtub3duKHNlbGYpOgorICAgICAgICAjSXNzdWUgMjI0NQorICAgICAgICAjVGhpcyBmaWxlIGNvbnRhaW5zIGNodW5rIHR5cGVzIGFpZmMgZG9lc24ndCByZWNvZ25pemUuCisgICAgICAgIGYgPSBhaWZjLm9wZW4oc2VsZi5zbmRmaWxlcGF0aCkKKyAgICAgICAgZi5jbG9zZSgpCisKKyAgICBkZWYgdGVzdF9wYXJhbXMoc2VsZik6CisgICAgICAgIGYgPSBhaWZjLm9wZW4oc2VsZi5zbmRmaWxlcGF0aCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChmLmdldG5jaGFubmVscygpLCAyKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGYuZ2V0c2FtcHdpZHRoKCksIDIpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZi5nZXRmcmFtZXJhdGUoKSwgNDgwMDApCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZi5nZXRuZnJhbWVzKCksIDE0NDAwKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGYuZ2V0Y29tcHR5cGUoKSwgJ05PTkUnKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGYuZ2V0Y29tcG5hbWUoKSwgJ25vdCBjb21wcmVzc2VkJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChmLmdldHBhcmFtcygpLCAoMiwgMiwgNDgwMDAsIDE0NDAwLCAnTk9ORScsICdub3QgY29tcHJlc3NlZCcpKQorICAgICAgICBmLmNsb3NlKCkKKworICAgIGRlZiB0ZXN0X3JlYWQoc2VsZik6CisgICAgICAgIGYgPSBhaWZjLm9wZW4oc2VsZi5zbmRmaWxlcGF0aCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChmLnRlbGwoKSwgMCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChmLnJlYWRmcmFtZXMoMiksICdceDAwXHgwMFx4MDBceDAwXHgwYlx4ZDRceDBiXHhkNCcpCisgICAgICAgIGYucmV3aW5kKCkKKyAgICAgICAgcG9zMCA9IGYudGVsbCgpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocG9zMCwgMCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChmLnJlYWRmcmFtZXMoMiksICdceDAwXHgwMFx4MDBceDAwXHgwYlx4ZDRceDBiXHhkNCcpCisgICAgICAgIHBvczIgPSBmLnRlbGwoKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHBvczIsIDIpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZi5yZWFkZnJhbWVzKDIpLCAnXHgxN3RceDE3dCJceGFkIlx4YWQnKQorICAgICAgICBmLnNldHBvcyhwb3MyKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGYucmVhZGZyYW1lcygyKSwgJ1x4MTd0XHgxN3QiXHhhZCJceGFkJykKKyAgICAgICAgZi5zZXRwb3MocG9zMCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChmLnJlYWRmcmFtZXMoMiksICdceDAwXHgwMFx4MDBceDAwXHgwYlx4ZDRceDBiXHhkNCcpCisgICAgICAgIGYuY2xvc2UoKQorCisgICAgI1hYWCBOZWVkIG1vcmUgdGVzdHMhCisKKworZGVmIHRlc3RfbWFpbigpOgorICAgIHJ1bl91bml0dGVzdChBSUZDVGVzdCkKKworCitpZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgorICAgIHVuaXR0ZXN0Lm1haW4oKQpkaWZmIC0tZ2l0IGEvTGliL3Rlc3QvdGVzdF9zdW5kcnkucHkgYi9MaWIvdGVzdC90ZXN0X3N1bmRyeS5weQppbmRleCBlNzQ5OWFlLi4zYjkxZDY1IDEwMDY0NAotLS0gYS9MaWIvdGVzdC90ZXN0X3N1bmRyeS5weQorKysgYi9MaWIvdGVzdC90ZXN0X3N1bmRyeS5weQpAQCAtMTAsNyArMTAsNiBAQAogICAgIGRlZiB0ZXN0X2F0X2xlYXN0X2ltcG9ydF91bnRlc3RlZF9tb2R1bGVzKHNlbGYpOgogICAgICAgICB3aXRoIHdhcm5pbmdzLmNhdGNoX3dhcm5pbmdzKCk6CiAgICAgICAgICAgICBpbXBvcnQgQ0dJSFRUUFNlcnZlcgotICAgICAgICAgICAgaW1wb3J0IGFpZmMKICAgICAgICAgICAgIGltcG9ydCBhdWRpb2RldgogICAgICAgICAgICAgaW1wb3J0IGJkYgogICAgICAgICAgICAgaW1wb3J0IGNnaXRiCmRpZmYgLS1naXQgYS9NaXNjL0FDS1MgYi9NaXNjL0FDS1MKaW5kZXggNzliNzQ2Ny4uNGYyNWM1NiAxMDA2NDQKLS0tIGEvTWlzYy9BQ0tTCisrKyBiL01pc2MvQUNLUwpAQCAtMzYyLDYgKzM2Miw3IEBACiBQZXRlciB2YW4gS2FtcGVuCiBKYWNvYiBLYXBsYW4tTW9zcwogTG91IEthdGVzCitIaXJvYWtpIEthd2FpCiBTZWJhc3RpZW4gS2VpbQogUm9iZXJ0IEtlcm4KIFJhbmRhbGwgS2VybgpAQCAtNTI3LDYgKzUyOCw3IEBACiBTYW11ZWxlIFBlZHJvbmkKIE1hcmNlbCB2YW4gZGVyIFBlaWpsCiBTdGV2ZW4gUGVtYmVydG9uCitTYW50aWFnbyBQZXJlc/NuCiBNYXJrIFBlcnJlZ28KIFRyZXZvciBQZXJyaW4KIFRpbSBQZXRlcnMKZGlmZiAtLWdpdCBhL01pc2MvTkVXUyBiL01pc2MvTkVXUwppbmRleCA5NmZjYzNjLi4xMzJjZWE4IDEwMDY0NAotLS0gYS9NaXNjL05FV1MKKysrIGIvTWlzYy9ORVdTCkBAIC0yNyw2ICsyNyw4IEBACiBMaWJyYXJ5CiAtLS0tLS0tCiAKKy0gSXNzdWUgIzIyNDU6IGFpZmMgbm93IHNraXBzIGNodW5rIHR5cGVzIGl0IGRvZXNuJ3QgcmVjb2duaXplLCBwZXIgc3BlYy4KKwogLSBJc3N1ZSAjNDMwNTogY3R5cGVzIHNob3VsZCBub3cgYnVpbGQgYWdhaW4gb24gbWlwc2VsLWxpbnV4LWdudQogCiAtIElzc3VlICM1ODUzOiBjYWxsaW5nIGEgZnVuY3Rpb24gb2YgdGhlIG1pbWV0eXBlcyBtb2R1bGUgZnJvbSBzZXZlcmFsIHRocmVhZHMK