ZGlmZiAtLWdpdCBhL3Bva3kvbWV0YS9jbGFzc2VzL2FyY2hpdmVyLmJiY2xhc3MgYi9wb2t5L21ldGEvY2xhc3Nlcy9hcmNoaXZlci5iYmNsYXNzCmluZGV4IGFmOWYwMTAuLjEzYjA1YmIgMTAwNjQ0Ci0tLSBhL3Bva3kvbWV0YS9jbGFzc2VzL2FyY2hpdmVyLmJiY2xhc3MKKysrIGIvcG9reS9tZXRhL2NsYXNzZXMvYXJjaGl2ZXIuYmJjbGFzcwpAQCAtNzgsNiArNzgsOSBAQAogICAgICAgICBiYi5kZWJ1ZygxLCAnYXJjaGl2ZXI6ICVzIGlzIGV4Y2x1ZGVkLCBjb3ZlcmVkIGJ5IGdjYy1zb3VyY2UnICUgcG4pCiAgICAgICAgIHJldHVybgogCisgICAgZGVmIGhhc1Rhc2sodGFzayk6CisgICAgICAgIHJldHVybiBib29sKGQuZ2V0VmFyRmxhZyh0YXNrLCAidGFzayIsIEZhbHNlKSkgYW5kIG5vdCBib29sKGQuZ2V0VmFyRmxhZyh0YXNrLCAibm9leGVjIiwgRmFsc2UpKQorCiAgICAgYXJfc3JjID0gZC5nZXRWYXJGbGFnKCdBUkNISVZFUl9NT0RFJywgJ3NyYycpCiAgICAgYXJfZHVtcGRhdGEgPSBkLmdldFZhckZsYWcoJ0FSQ0hJVkVSX01PREUnLCAnZHVtcGRhdGEnKQogICAgIGFyX3JlY2lwZSA9IGQuZ2V0VmFyRmxhZygnQVJDSElWRVJfTU9ERScsICdyZWNpcGUnKQpAQCAtOTgsOSArMTAxLDYgQEAKIAogICAgICAgICAjIFRoZXJlIGlzIGEgY29ybmVyIGNhc2Ugd2l0aCAiZ2NjLXNvdXJjZS0ke1BWfSIgcmVjaXBlcywgdGhleSBkb24ndCBoYXZlCiAgICAgICAgICMgdGhlICJkb19jb25maWd1cmUiIHRhc2ssIHNvIHdlIG5lZWQgdG8gdXNlICJkb19wcmVjb25maWd1cmUiCi0gICAgICAgIGRlZiBoYXNUYXNrKHRhc2spOgotICAgICAgICAgICAgcmV0dXJuIGJvb2woZC5nZXRWYXJGbGFnKHRhc2ssICJ0YXNrIiwgRmFsc2UpKSBhbmQgbm90IGJvb2woZC5nZXRWYXJGbGFnKHRhc2ssICJub2V4ZWMiLCBGYWxzZSkpCi0KICAgICAgICAgaWYgaGFzVGFzaygiZG9fcHJlY29uZmlndXJlIik6CiAgICAgICAgICAgICBkLmFwcGVuZFZhckZsYWcoJ2RvX2FyX2NvbmZpZ3VyZWQnLCAnZGVwZW5kcycsICcgJXM6ZG9fcHJlY29uZmlndXJlJyAlIHBuKQogICAgICAgICBlbGlmIGhhc1Rhc2soImRvX2NvbmZpZ3VyZSIpOgpAQCAtMTE4LDcgKzExOCwxMSBAQAogCiAgICAgIyBPdXRwdXQgdGhlIFNSUE0gcGFja2FnZQogICAgIGlmIGQuZ2V0VmFyRmxhZygnQVJDSElWRVJfTU9ERScsICdzcnBtJykgPT0gIjEiIGFuZCBkLmdldFZhcignUEFDS0FHRVMnKToKLSAgICAgICAgaWYgInBhY2thZ2VfcnBtIiBpbiBkLmdldFZhcignUEFDS0FHRV9DTEFTU0VTJyk6CisgICAgICAgIGlmICJwYWNrYWdlX3JwbSIgbm90IGluIGQuZ2V0VmFyKCdQQUNLQUdFX0NMQVNTRVMnKToKKyAgICAgICAgICAgIGJiLmZhdGFsKCJBUkNISVZFUl9NT0RFW3NycG1dIG5lZWRzIHBhY2thZ2VfcnBtIGluIFBBQ0tBR0VfQ0xBU1NFUyIpCisKKyAgICAgICAgIyBTb21lIHJlY2lwZXMgZG8gbm90IGhhdmUgYW55IHBhY2thZ2luZyB0YXNrcworICAgICAgICBpZiBoYXNUYXNrKCJkb19wYWNrYWdlX3dyaXRlX3JwbSIpOgogICAgICAgICAgICAgZC5hcHBlbmRWYXJGbGFnKCdkb19kZXBsb3lfYXJjaGl2ZXMnLCAnZGVwZW5kcycsICcgJXM6ZG9fcGFja2FnZV93cml0ZV9ycG0nICUgcG4pCiAgICAgICAgICAgICBkLmFwcGVuZFZhckZsYWcoJ2RvX3BhY2thZ2Vfd3JpdGVfcnBtJywgJ2RpcnMnLCAnICR7QVJDSElWRVJfUlBNVE9QRElSfScpCiAgICAgICAgICAgICBkLmFwcGVuZFZhckZsYWcoJ2RvX3BhY2thZ2Vfd3JpdGVfcnBtJywgJ3NzdGF0ZS1pbnB1dGRpcnMnLCAnICR7QVJDSElWRVJfUlBNVE9QRElSfScpCkBAIC0xMzMsOCArMTM3LDYgQEAKICAgICAgICAgICAgICAgICBkLmFwcGVuZFZhckZsYWcoJ2RvX3BhY2thZ2Vfd3JpdGVfcnBtJywgJ2RlcGVuZHMnLCAnICVzOmRvX2FyX3BhdGNoZWQnICUgcG4pCiAgICAgICAgICAgICBlbGlmIGFyX3NyYyA9PSAiY29uZmlndXJlZCI6CiAgICAgICAgICAgICAgICAgZC5hcHBlbmRWYXJGbGFnKCdkb19wYWNrYWdlX3dyaXRlX3JwbScsICdkZXBlbmRzJywgJyAlczpkb19hcl9jb25maWd1cmVkJyAlIHBuKQotICAgICAgICBlbHNlOgotICAgICAgICAgICAgYmIuZmF0YWwoIkFSQ0hJVkVSX01PREVbc3JwbV0gbmVlZHMgcGFja2FnZV9ycG0gaW4gUEFDS0FHRV9DTEFTU0VTIikKIH0KIAogIyBUYWtlIGFsbCB0aGUgc291cmNlcyBmb3IgYSByZWNpcGUgYW5kIHB1dHMgdGhlbSBpbiBXT1JLRElSL2FyY2hpdmVyLXdvcmsvLgpkaWZmIC0tZ2l0IGEvcG9reS9tZXRhL2NsYXNzZXMvYXV0b3Rvb2xzLmJiY2xhc3MgYi9wb2t5L21ldGEvY2xhc3Nlcy9hdXRvdG9vbHMuYmJjbGFzcwppbmRleCA4NzY4YTZhLi4zZDIyYWQwIDEwMDY0NAotLS0gYS9wb2t5L21ldGEvY2xhc3Nlcy9hdXRvdG9vbHMuYmJjbGFzcworKysgYi9wb2t5L21ldGEvY2xhc3Nlcy9hdXRvdG9vbHMuYmJjbGFzcwpAQCAtMjUsNyArMjUsOSBAQAogCiAjIFNwYWNlIHNlcGFyYXRlZCBsaXN0IG9mIHNoZWxsIHNjcmlwdHMgd2l0aCB2YXJpYWJsZXMgZGVmaW5lZCB0byBzdXBwbHkgdGVzdAogIyByZXN1bHRzIGZvciBhdXRvY29uZiB0ZXN0cyB3ZSBjYW5ub3QgcnVuIGF0IGJ1aWxkIHRpbWUuCi1leHBvcnQgQ09ORklHX1NJVEUgPSAiJHtAc2l0ZWluZm9fZ2V0X2ZpbGVzKGQpfSIKKyMgVGhlIHZhbHVlIG9mIHRoaXMgdmFyaWFibGUgaXMgZmlsbGVkIGluIGluIGEgcHJlZnVuYyBiZWNhdXNlIGl0IGRlcGVuZHMgb24KKyMgdGhlIGNvbnRlbnRzIG9mIHRoZSBzeXNyb290LgorZXhwb3J0IENPTkZJR19TSVRFCiAKIGFjcGF0aHMgPz0gImRlZmF1bHQiCiBFWFRSQV9BVVRPUkVDT05GID0gIi0tZXhjbHVkZT1hdXRvcG9pbnQiCkBAIC0xMzIsNiArMTM0LDggQEAKIEVYVFJBX09FQ09ORl9hcHBlbmQgPSAiICR7UEFDS0FHRUNPTkZJR19DT05GQVJHU30iCiAKIGRvX2NvbmZpZ3VyZVtwcmVmdW5jc10gKz0gImF1dG90b29sc19wcmVjb25maWd1cmUgYXV0b3Rvb2xzX2FjbG9jYWxzICR7RVhUUkFDT05GRlVOQ1N9IgorZG9fY29tcGlsZVtwcmVmdW5jc10gKz0gImF1dG90b29sc19hY2xvY2FscyIKK2RvX2luc3RhbGxbcHJlZnVuY3NdICs9ICJhdXRvdG9vbHNfYWNsb2NhbHMiCiBkb19jb25maWd1cmVbcG9zdGZ1bmNzXSArPSAiYXV0b3Rvb2xzX3Bvc3Rjb25maWd1cmUiCiAKIEFDTE9DQUxESVIgPSAiJHtTVEFHSU5HX0RBVEFESVJ9L2FjbG9jYWwiCkBAIC0xNDAsNyArMTQ0LDYgQEAKIEFDTE9DQUxFWFRSQVBBVEhfY2xhc3MtbmF0aXZlc2RrID0gIiAtSSAke1NUQUdJTkdfREFUQURJUl9OQVRJVkV9L2FjbG9jYWwvIgogCiBweXRob24gYXV0b3Rvb2xzX2FjbG9jYWxzICgpIHsKLSAgICAjIFJlZnJlc2ggdmFyaWFibGUgd2l0aCBjYWNoZSBmaWxlcwogICAgIGQuc2V0VmFyKCJDT05GSUdfU0lURSIsIHNpdGVpbmZvX2dldF9maWxlcyhkLCBzeXNyb290Y2FjaGU9VHJ1ZSkpCiB9CiAKZGlmZiAtLWdpdCBhL3Bva3kvbWV0YS9jbGFzc2VzL2ljZWNjLmJiY2xhc3MgYi9wb2t5L21ldGEvY2xhc3Nlcy9pY2VjYy5iYmNsYXNzCmluZGV4IDc4YTJmNzYuLmZjODJmOGQgMTAwNjQ0Ci0tLSBhL3Bva3kvbWV0YS9jbGFzc2VzL2ljZWNjLmJiY2xhc3MKKysrIGIvcG9reS9tZXRhL2NsYXNzZXMvaWNlY2MuYmJjbGFzcwpAQCAtNzMsMTAgKzczLDEzIEBACiAjCiAjIGxpYmdjYy1pbml0aWFsIC0gZmFpbHMgd2l0aCBDUFAgc2FuaXR5IGNoZWNrIGVycm9yIGlmIGhvc3Qgc3lzcm9vdCBjb250YWlucwogIyAgICAgICAgICAgICAgICAgIGNyb3NzIGdjYyBidWlsdCBmb3IgYW5vdGhlciB0YXJnZXQgdHVuZS92YXJpYW50CisjIHN5c3RlbXRhcCAtIF9IZWxwZXJTRFQuYyB1bmRlZnMgbWFjcm9zIGFuZCB1c2VzIHRoZSBpZGVudGlmaWVycyBpbiBtYWNyb3MgZW1pdHRpbmcKKyMgICAgICAgICAgICAgaW5saW5lIGFzc2VtYmx5CiAjIHRhcmdldC1zZGstcHJvdmlkZXMtZHVtbXkgLSAke0hPU1RfUFJFRklYfSBpcyBlbXB0eSB3aGljaCB0cmlnZ2VycyB0aGUgIk5VTEwKICMgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByZWZpeCIgZXJyb3IuCiBJQ0VDQ19TWVNURU1fUEFDS0FHRV9CTCArPSAiXAogICAgIGxpYmdjYy1pbml0aWFsIFwKKyAgICBzeXN0ZW10YXAgXAogICAgIHRhcmdldC1zZGstcHJvdmlkZXMtZHVtbXkgXAogICAgICIKIApkaWZmIC0tZ2l0IGEvcG9reS9tZXRhL2NsYXNzZXMvaW1hZ2UuYmJjbGFzcyBiL3Bva3kvbWV0YS9jbGFzc2VzL2ltYWdlLmJiY2xhc3MKaW5kZXggN2ZhNGZmMi4uZjQ2MzNkYSAxMDA2NDQKLS0tIGEvcG9reS9tZXRhL2NsYXNzZXMvaW1hZ2UuYmJjbGFzcworKysgYi9wb2t5L21ldGEvY2xhc3Nlcy9pbWFnZS5iYmNsYXNzCkBAIC01MjYsNyArNTI2LDcgQEAKICAgICBiYXNlX3NpemUgPSBzaXplX2tiICogb3ZlcmhlYWRfZmFjdG9yCiAgICAgYmIuZGVidWcoMSwgJyVmID0gJWQgKiAlZicgJSAoYmFzZV9zaXplLCBzaXplX2tiLCBvdmVyaGVhZF9mYWN0b3IpKQogICAgIGJhc2Vfc2l6ZTIgPSBtYXgoYmFzZV9zaXplLCByb290ZnNfcmVxX3NpemUpICsgcm9vdGZzX2V4dHJhX3NwYWNlCi0gICAgYmIuZGVidWcoMSwgJyVmID0gbWF4KCVmLCAlZClbJWZdICsgJWQnICUgKGJhc2Vfc2l6ZTIsIGJhc2Vfc2l6ZSwgcm9vdGZzX3JlcV9zaXplLCBtYXgoYmFzZV9zaXplLCByb290ZnNfcmVxX3NpemUpLCBvdmVyaGVhZF9mYWN0b3IpKQorICAgIGJiLmRlYnVnKDEsICclZiA9IG1heCglZiwgJWQpWyVmXSArICVkJyAlIChiYXNlX3NpemUyLCBiYXNlX3NpemUsIHJvb3Rmc19yZXFfc2l6ZSwgbWF4KGJhc2Vfc2l6ZSwgcm9vdGZzX3JlcV9zaXplKSwgcm9vdGZzX2V4dHJhX3NwYWNlKSkKIAogICAgIGJhc2Vfc2l6ZSA9IGJhc2Vfc2l6ZTIKICAgICBpZiBiYXNlX3NpemUgIT0gaW50KGJhc2Vfc2l6ZSk6CmRpZmYgLS1naXQgYS9wb2t5L21ldGEvY2xhc3Nlcy9rZXJuZWwuYmJjbGFzcyBiL3Bva3kvbWV0YS9jbGFzc2VzL2tlcm5lbC5iYmNsYXNzCmluZGV4IGJmMzY3NDIuLmViY2I3OWEgMTAwNjQ0Ci0tLSBhL3Bva3kvbWV0YS9jbGFzc2VzL2tlcm5lbC5iYmNsYXNzCisrKyBiL3Bva3kvbWV0YS9jbGFzc2VzL2tlcm5lbC5iYmNsYXNzCkBAIC05Niw4ICs5NiwxMCBAQAogICAgICAgICBkLnNldFZhcignQUxMT1dfRU1QVFlfJXMtaW1hZ2UtJXMnICUgKGtuYW1lLCB0eXBlbG93ZXIpLCAnMScpCiAKICAgICBpbWFnZSA9IGQuZ2V0VmFyKCdJTklUUkFNRlNfSU1BR0UnKQotICAgIGltYWdlX2J1bmRsZSA9IGQuZ2V0VmFyKCdJTklUUkFNRlNfSU1BR0VfQlVORExFJykKLSAgICBpZiBpbWFnZSBhbmQgYmIudXRpbHMudG9fYm9vbGVhbihpbWFnZV9idW5kbGUsIEZhbHNlKToKKyAgICAjIElmIHRoZSBJTlRJUkFNRlNfSU1BR0UgaXMgc2V0IGJ1dCB0aGUgSU5JVFJBTUZTX0lNQUdFX0JVTkRMRSBpcyBzZXQgdG8gMCwKKyAgICAjIHRoZSBkb19idW5kbGVfaW5pdHJhbWZzIGRvZXMgbm90aGluZywgYnV0IHRoZSBJTklUUkFNRlNfSU1BR0UgaXMgYnVpbHQKKyAgICAjIHN0YW5kYWxvbmUgZm9yIHVzZSBieSB3aWMgYW5kIG90aGVyIHRvb2xzLgorICAgIGlmIGltYWdlOgogICAgICAgICBkLmFwcGVuZFZhckZsYWcoJ2RvX2J1bmRsZV9pbml0cmFtZnMnLCAnZGVwZW5kcycsICcgJHtJTklUUkFNRlNfSU1BR0V9OmRvX2ltYWdlX2NvbXBsZXRlJykKIAogICAgICMgTk9URTogc2V0dGluZyBJTklUUkFNRlNfVEFTSyBpcyBmb3IgYmFja3dhcmQgY29tcGF0aWJpbGl0eQpkaWZmIC0tZ2l0IGEvcG9reS9tZXRhL2NsYXNzZXMvcGFja2FnZS5iYmNsYXNzIGIvcG9reS9tZXRhL2NsYXNzZXMvcGFja2FnZS5iYmNsYXNzCmluZGV4IDExNGQ2NTUuLmFhODQ1MWYgMTAwNjQ0Ci0tLSBhL3Bva3kvbWV0YS9jbGFzc2VzL3BhY2thZ2UuYmJjbGFzcworKysgYi9wb2t5L21ldGEvY2xhc3Nlcy9wYWNrYWdlLmJiY2xhc3MKQEAgLTE2NDYsNyArMTY0Niw4IEBACiAgICAgICAgICAgICAgICAgcHJvdiA9ICh0aGlzX3NvbmFtZSwgbGRpciwgcGtndmVyKQogICAgICAgICAgICAgICAgIGlmIG5vdCBwcm92IGluIHNvbmFtZXM6CiAgICAgICAgICAgICAgICAgICAgICMgaWYgbGlicmFyeSBpcyBwcml2YXRlIChvbmx5IHVzZWQgYnkgcGFja2FnZSkgdGhlbiBkbyBub3QgYnVpbGQgc2hsaWIgZm9yIGl0Ci0gICAgICAgICAgICAgICAgICAgIGlmIG5vdCBwcml2YXRlX2xpYnMgb3IgdGhpc19zb25hbWUgbm90IGluIHByaXZhdGVfbGliczoKKyAgICAgICAgICAgICAgICAgICAgaW1wb3J0IGZubWF0Y2gKKyAgICAgICAgICAgICAgICAgICAgaWYgbm90IHByaXZhdGVfbGlicyBvciBsZW4oW2kgZm9yIGkgaW4gcHJpdmF0ZV9saWJzIGlmIGZubWF0Y2guZm5tYXRjaCh0aGlzX3NvbmFtZSwgaSldKSA9PSAwOgogICAgICAgICAgICAgICAgICAgICAgICAgc29uYW1lcy5hZGQocHJvdikKICAgICAgICAgICAgICAgICBpZiBsaWJkaXJfcmUubWF0Y2gob3MucGF0aC5kaXJuYW1lKGZpbGUpKToKICAgICAgICAgICAgICAgICAgICAgbmVlZHNfbGRjb25maWcgPSBUcnVlCkBAIC0xODI5LDcgKzE4MzAsOCBAQAogICAgICAgICAgICAgIyAvb3B0L2FiYy9saWIvbGliZm9vLnNvLjEgYW5kIGNvbnRhaW5zIC91c3IvYmluL2FiYyBkZXBlbmRpbmcgb24gc3lzdGVtIGxpYnJhcnkgbGliZm9vLnNvLjEKICAgICAgICAgICAgICMgYnV0IHNraXBwaW5nIGl0IGlzIHN0aWxsIGJldHRlciBhbHRlcm5hdGl2ZSB0aGFuIHByb3ZpZGluZyBvd24KICAgICAgICAgICAgICMgdmVyc2lvbiBhbmQgdGhlbiBhZGRpbmcgcnVudGltZSBkZXBlbmRlbmN5IGZvciB0aGUgc2FtZSBzeXN0ZW0gbGlicmFyeQotICAgICAgICAgICAgaWYgcHJpdmF0ZV9saWJzIGFuZCBuWzBdIGluIHByaXZhdGVfbGliczoKKyAgICAgICAgICAgIGltcG9ydCBmbm1hdGNoCisgICAgICAgICAgICBpZiBwcml2YXRlX2xpYnMgYW5kIGxlbihbaSBmb3IgaSBpbiBwcml2YXRlX2xpYnMgaWYgZm5tYXRjaC5mbm1hdGNoKG5bMF0sIGkpXSkgPiAwOgogICAgICAgICAgICAgICAgIGJiLmRlYnVnKDIsICclczogRGVwZW5kZW5jeSAlcyBjb3ZlcmVkIGJ5IFBSSVZBVEVfTElCUycgJSAocGtnLCBuWzBdKSkKICAgICAgICAgICAgICAgICBjb250aW51ZQogICAgICAgICAgICAgaWYgblswXSBpbiBzaGxpYl9wcm92aWRlci5rZXlzKCk6CmRpZmYgLS1naXQgYS9wb2t5L21ldGEvY2xhc3Nlcy9weXRob24zbmF0aXZlLmJiY2xhc3MgYi9wb2t5L21ldGEvY2xhc3Nlcy9weXRob24zbmF0aXZlLmJiY2xhc3MKaW5kZXggYTNhY2FmNi4uZDk4ZmI0YyAxMDA2NDQKLS0tIGEvcG9reS9tZXRhL2NsYXNzZXMvcHl0aG9uM25hdGl2ZS5iYmNsYXNzCisrKyBiL3Bva3kvbWV0YS9jbGFzc2VzL3B5dGhvbjNuYXRpdmUuYmJjbGFzcwpAQCAtOSw2ICs5LDE0IEBACiBleHBvcnQgU1RBR0lOR19JTkNESVIKIGV4cG9ydCBTVEFHSU5HX0xJQkRJUgogCisjIFBhY2thZ2VzIGNhbiB1c2UKKyMgZmluZF9wYWNrYWdlKFB5dGhvbkludGVycCBSRVFVSVJFRCkKKyMgZmluZF9wYWNrYWdlKFB5dGhvbkxpYnMgUkVRVUlSRUQpCisjIHdoaWNoIGVuZHMgdXAgdXNpbmcgbGlicy9pbmNsdWRlcyBmcm9tIGJ1aWxkIGhvc3QKKyMgVGhlcmVmb3JlIHByZS1lbXB0IHRoYXQgZWZmb3J0CitleHBvcnQgUFlUSE9OX0xJQlJBUlk9IiR7U1RBR0lOR19MSUJESVJ9L2xpYiR7UFlUSE9OX0RJUn0ke1BZVEhPTl9BQkl9LnNvIgorZXhwb3J0IFBZVEhPTl9JTkNMVURFX0RJUj0iJHtTVEFHSU5HX0lOQ0RJUn0vJHtQWVRIT05fRElSfSR7UFlUSE9OX0FCSX0iCisKIGV4cG9ydCBfUFlUSE9OX1NZU0NPTkZJR0RBVEFfTkFNRT0iX3N5c2NvbmZpZ2RhdGEiCiAKICMgc3VwcHJlc3MgaG9zdCB1c2VyJ3Mgc2l0ZS1wYWNrYWdlcyBkaXJzLgpkaWZmIC0tZ2l0IGEvcG9reS9tZXRhL2NsYXNzZXMvcHl0aG9ubmF0aXZlLmJiY2xhc3MgYi9wb2t5L21ldGEvY2xhc3Nlcy9weXRob25uYXRpdmUuYmJjbGFzcwppbmRleCBhZTY2MDBjLi4wZTkwMTlkIDEwMDY0NAotLS0gYS9wb2t5L21ldGEvY2xhc3Nlcy9weXRob25uYXRpdmUuYmJjbGFzcworKysgYi9wb2t5L21ldGEvY2xhc3Nlcy9weXRob25uYXRpdmUuYmJjbGFzcwpAQCAtMTIsNiArMTIsMTQgQEAKIGV4cG9ydCBTVEFHSU5HX0lOQ0RJUgogZXhwb3J0IFNUQUdJTkdfTElCRElSCiAKKyMgUGFja2FnZXMgY2FuIHVzZQorIyBmaW5kX3BhY2thZ2UoUHl0aG9uSW50ZXJwIFJFUVVJUkVEKQorIyBmaW5kX3BhY2thZ2UoUHl0aG9uTGlicyBSRVFVSVJFRCkKKyMgd2hpY2ggZW5kcyB1cCB1c2luZyBsaWJzL2luY2x1ZGVzIGZyb20gYnVpbGQgaG9zdAorIyBUaGVyZWZvcmUgcHJlLWVtcHQgdGhhdCBlZmZvcnQKK2V4cG9ydCBQWVRIT05fTElCUkFSWT0iJHtTVEFHSU5HX0xJQkRJUn0vbGliJHtQWVRIT05fRElSfSR7UFlUSE9OX0FCSX0uc28iCitleHBvcnQgUFlUSE9OX0lOQ0xVREVfRElSPSIke1NUQUdJTkdfSU5DRElSfS8ke1BZVEhPTl9ESVJ9JHtQWVRIT05fQUJJfSIKKwogIyBzdXBwcmVzcyBob3N0IHVzZXIncyBzaXRlLXBhY2thZ2VzIGRpcnMuCiBleHBvcnQgUFlUSE9OTk9VU0VSU0lURSA9ICIxIgogCmRpZmYgLS1naXQgYS9wb2t5L21ldGEvY2xhc3Nlcy9ybV93b3JrLmJiY2xhc3MgYi9wb2t5L21ldGEvY2xhc3Nlcy9ybV93b3JrLmJiY2xhc3MKaW5kZXggYzQ3OGY0YS4uYTZiZDNmNyAxMDA2NDQKLS0tIGEvcG9reS9tZXRhL2NsYXNzZXMvcm1fd29yay5iYmNsYXNzCisrKyBiL3Bva3kvbWV0YS9jbGFzc2VzL3JtX3dvcmsuYmJjbGFzcwpAQCAtMTIxLDcgKzEyMSw3IEBACiB9CiBkb19ybV93b3JrX2FsbFtyZWNyZGVwdGFza10gPSAiZG9fcm1fd29yayIKIGRvX3JtX3dvcmtfYWxsW25vZXhlY10gPSAiMSIKLWFkZHRhc2sgcm1fd29ya19hbGwgYWZ0ZXIgYmVmb3JlIGRvX2J1aWxkCithZGR0YXNrIHJtX3dvcmtfYWxsIGJlZm9yZSBkb19idWlsZAogCiBkb19wb3B1bGF0ZV9zZGtbcG9zdGZ1bmNzXSArPSAicm1fd29ya19wb3B1bGF0ZXNkayIKIHJtX3dvcmtfcG9wdWxhdGVzZGsgKCkgewpkaWZmIC0tZ2l0IGEvcG9reS9tZXRhL2NsYXNzZXMvcm9vdGZzLXBvc3Rjb21tYW5kcy5iYmNsYXNzIGIvcG9reS9tZXRhL2NsYXNzZXMvcm9vdGZzLXBvc3Rjb21tYW5kcy5iYmNsYXNzCmluZGV4IDZjZWMyM2UuLmZjMzM4MTYgMTAwNjQ0Ci0tLSBhL3Bva3kvbWV0YS9jbGFzc2VzL3Jvb3Rmcy1wb3N0Y29tbWFuZHMuYmJjbGFzcworKysgYi9wb2t5L21ldGEvY2xhc3Nlcy9yb290ZnMtcG9zdGNvbW1hbmRzLmJiY2xhc3MKQEAgLTk1LDYgKzk1LDExIEBACiAJCXNlZCAtaSAtZSAnL15bI1s6c3BhY2U6XV0qXC9kZXZcL3Jvb3Qve3MvZGVmYXVsdHMvcm8vO3MvXChbWzpzcGFjZTpdXSpbWzpkaWdpdDpdXVwpXChbWzpzcGFjZTpdXSpcKVtbOmRpZ2l0Ol1dJC9cMVwyMC99JyAke0lNQUdFX1JPT1RGU30vZXRjL2ZzdGFiCiAJZmkKIAorCSMgVHdlYWsgdGhlICJtb3VudCAtbyByZW1vdW50LHJ3IC8iIGNvbW1hbmQgaW4gYnVzeWJveC1pbml0dGFiIGluaXR0YWIKKwlpZiBbIC1mICR7SU1BR0VfUk9PVEZTfS9ldGMvaW5pdHRhYiBdOyB0aGVuCisJCXNlZCAtaSAnc3wvYmluL21vdW50IC1vIHJlbW91bnQscncgL3wvYmluL21vdW50IC1vIHJlbW91bnQscm8gL3wnICR7SU1BR0VfUk9PVEZTfS9ldGMvaW5pdHRhYgorCWZpCisKIAkjIElmIHdlJ3JlIHVzaW5nIG9wZW5zc2ggYW5kIHRoZSAvZXRjL3NzaCBkaXJlY3RvcnkgaGFzIG5vIHByZS1nZW5lcmF0ZWQga2V5cywKIAkjIHdlIHNob3VsZCBjb25maWd1cmUgb3BlbnNzaCB0byB1c2UgdGhlIGNvbmZpZ3VyYXRpb24gZmlsZSAvZXRjL3NzaC9zc2hkX2NvbmZpZ19yZWFkb25seQogCSMgYW5kIHRoZSBrZXlzIHVuZGVyIC92YXIvcnVuL3NzaC4KZGlmZiAtLWdpdCBhL3Bva3kvbWV0YS9jbGFzc2VzL3N0YWdpbmcuYmJjbGFzcyBiL3Bva3kvbWV0YS9jbGFzc2VzL3N0YWdpbmcuYmJjbGFzcwppbmRleCBjZGMzNDJkLi41NWE5YjUyIDEwMDY0NAotLS0gYS9wb2t5L21ldGEvY2xhc3Nlcy9zdGFnaW5nLmJiY2xhc3MKKysrIGIvcG9reS9tZXRhL2NsYXNzZXMvc3RhZ2luZy5iYmNsYXNzCkBAIC0xOTcsNyArMTk3LDcgQEAKICAgICBmb3IgcGtnYXJjaCBpbiBwa2dhcmNoczoKICAgICAgICAgZm9yIG1hbmlmZXN0IGluIGdsb2IuZ2xvYihkLmV4cGFuZCgiJHtTU1RBVEVfTUFOSUZFU1RTfS9tYW5pZmVzdC0lcy0qLnBvcHVsYXRlX3N5c3Jvb3QiICUgcGtnYXJjaCkpOgogICAgICAgICAgICAgaWYgbWFuaWZlc3QuZW5kc3dpdGgoIi1pbml0aWFsLnBvcHVsYXRlX3N5c3Jvb3QiKToKLSAgICAgICAgICAgICAgICAjIHNraXAgZ2xpYmMtaW5pdGlhbCBhbmQgbGliZ2NjLWluaXRpYWwgZHVlIHRvIGZpbGUgb3ZlcmxhcAorICAgICAgICAgICAgICAgICMgc2tpcCBsaWJnY2MtaW5pdGlhbCBkdWUgdG8gZmlsZSBvdmVybGFwCiAgICAgICAgICAgICAgICAgY29udGludWUKICAgICAgICAgICAgIGlmIG5vdCBuYXRpdmUgYW5kIChtYW5pZmVzdC5lbmRzd2l0aCgiLW5hdGl2ZS5wb3B1bGF0ZV9zeXNyb290Iikgb3IgIm5hdGl2ZXNkay0iIGluIG1hbmlmZXN0KToKICAgICAgICAgICAgICAgICBjb250aW51ZQpkaWZmIC0tZ2l0IGEvcG9reS9tZXRhL2NvbmYvYml0YmFrZS5jb25mIGIvcG9reS9tZXRhL2NvbmYvYml0YmFrZS5jb25mCmluZGV4IDEzMTFlNmIuLmEwYTdmNDkgMTAwNjQ0Ci0tLSBhL3Bva3kvbWV0YS9jb25mL2JpdGJha2UuY29uZgorKysgYi9wb2t5L21ldGEvY29uZi9iaXRiYWtlLmNvbmYKQEAgLTM2MCwxMiArMzYwLDYgQEAKICMgVGhlIHBlcnNpc3RlbnQgY2FjaGUgc2hvdWxkIGJlIHNoYXJlZCBieSBhbGwgYnVpbGRzCiBQRVJTSVNURU5UX0RJUiA9ICIke1RPUERJUn0vY2FjaGUiCiBMT0dfRElSID0gIiR7VE1QRElSfS9sb2ciCi1DT19ESVIgPSAiJHtETF9ESVJ9IgotQ1ZTRElSID0gIiR7Q09fRElSfS9jdnMiCi1TVk5ESVIgPSAiJHtDT19ESVJ9L3N2biIKLUdJVERJUiA9ICIke0NPX0RJUn0vZ2l0MiIKLUJaUkRJUiA9ICIke0NPX0RJUn0vYnpyIgotSEdESVIgPSAiJHtDT19ESVJ9L2hnIgogCiBTVEFNUFNfRElSID89ICIke1RNUERJUn0vc3RhbXBzIgogU1RBTVAgPSAiJHtTVEFNUFNfRElSfS8ke01VTFRJTUFDSF9UQVJHRVRfU1lTfS8ke1BOfS8ke0VYVEVORFBFfSR7UFZ9LSR7UFJ9IgpAQCAtNjc2LDEyICs2NzAsNiBAQAogIyAgZXhwb3J0IERFQklBTl9NSVJST1IgPSAiaHR0cDovL2Z0cC5kZS5kZWJpYW4ub3JnL2RlYmlhbi9wb29sIgogIyAgICAgaW50byB5b3VyIGxvY2FsLmNvbmYKIAotRkVUQ0hDTURfc3ZuID0gIi91c3IvYmluL2VudiBzdm4gLS1ub24taW50ZXJhY3RpdmUgLS10cnVzdC1zZXJ2ZXItY2VydCIKLUZFVENIQ01EX2N2cyA9ICIvdXNyL2Jpbi9lbnYgY3ZzIgotRkVUQ0hDTURfd2dldCA9ICIvdXNyL2Jpbi9lbnYgd2dldCAtdCAyIC1UIDMwIC0tcGFzc2l2ZS1mdHAgLS1uby1jaGVjay1jZXJ0aWZpY2F0ZSIKLUZFVENIQ01EX2J6ciA9ICIvdXNyL2Jpbi9lbnYgYnpyIgotRkVUQ0hDTURfaGcgPSAiL3Vzci9iaW4vZW52IGhnIgotCiBTUkNEQVRFID0gIiR7REFURX0iCiBTUkNSRVYgPz89ICJJTlZBTElEIgogQVVUT1JFViA9ICIke0BiYi5mZXRjaDIuZ2V0X2F1dG9yZXYoZCl9IgpkaWZmIC0tZ2l0IGEvcG9reS9tZXRhL2NvbmYvZGlzdHJvL2RlZmF1bHRzZXR1cC5jb25mIGIvcG9reS9tZXRhL2NvbmYvZGlzdHJvL2RlZmF1bHRzZXR1cC5jb25mCmluZGV4IDliMWVlMjAuLjY2ZmQyNDYgMTAwNjQ0Ci0tLSBhL3Bva3kvbWV0YS9jb25mL2Rpc3Ryby9kZWZhdWx0c2V0dXAuY29uZgorKysgYi9wb2t5L21ldGEvY29uZi9kaXN0cm8vZGVmYXVsdHNldHVwLmNvbmYKQEAgLTEsNyArMSw2IEBACiBpbmNsdWRlIGNvbmYvZGlzdHJvL2luY2x1ZGUvZGVmYXVsdC1wcm92aWRlcnMuaW5jCiBpbmNsdWRlIGNvbmYvZGlzdHJvL2luY2x1ZGUvZGVmYXVsdC12ZXJzaW9ucy5pbmMKIGluY2x1ZGUgY29uZi9kaXN0cm8vaW5jbHVkZS9kZWZhdWx0LWRpc3Ryb3ZhcnMuaW5jCi1pbmNsdWRlIGNvbmYvZGlzdHJvL2luY2x1ZGUvd29ybGQtYnJva2VuLmluYwogaW5jbHVkZSBjb25mL2Rpc3Ryby9pbmNsdWRlL21haW50YWluZXJzLmluYwogCiBUQ01PREUgPz0gImRlZmF1bHQiCmRpZmYgLS1naXQgYS9wb2t5L21ldGEvY29uZi9kaXN0cm8vaW5jbHVkZS9kZWZhdWx0LXByb3ZpZGVycy5pbmMgYi9wb2t5L21ldGEvY29uZi9kaXN0cm8vaW5jbHVkZS9kZWZhdWx0LXByb3ZpZGVycy5pbmMKaW5kZXggOGY0ZDQ0ZC4uZWE4OGJkNCAxMDA2NDQKLS0tIGEvcG9reS9tZXRhL2NvbmYvZGlzdHJvL2luY2x1ZGUvZGVmYXVsdC1wcm92aWRlcnMuaW5jCisrKyBiL3Bva3kvbWV0YS9jb25mL2Rpc3Ryby9pbmNsdWRlL2RlZmF1bHQtcHJvdmlkZXJzLmluYwpAQCAtNSw2ICs1LDggQEAKIFBSRUZFUlJFRF9QUk9WSURFUl92aXJ0dWFsL3hzZXJ2ZXIteGY4NiA/PSAieHNlcnZlci14b3JnIgogUFJFRkVSUkVEX1BST1ZJREVSX3ZpcnR1YWwvZWdsID89ICJtZXNhIgogUFJFRkVSUkVEX1BST1ZJREVSX3ZpcnR1YWwvbGliZ2wgPz0gIm1lc2EiCitQUkVGRVJSRURfUFJPVklERVJfdmlydHVhbC9saWJnbC1uYXRpdmUgPz0gIm1lc2EtbmF0aXZlIgorUFJFRkVSUkVEX1BST1ZJREVSX3ZpcnR1YWwvbmF0aXZlc2RrLWxpYmdsID89ICJuYXRpdmVzZGstbWVzYSIKIFBSRUZFUlJFRF9QUk9WSURFUl92aXJ0dWFsL2xpYmdsZXMxID89ICJtZXNhIgogUFJFRkVSUkVEX1BST1ZJREVSX3ZpcnR1YWwvbGliZ2xlczIgPz0gIm1lc2EiCiBQUkVGRVJSRURfUFJPVklERVJfdmlydHVhbC9tZXNhID89ICJtZXNhIgpkaWZmIC0tZ2l0IGEvcG9reS9tZXRhL2NvbmYvZGlzdHJvL2luY2x1ZGUvZGlzdHJvX2FsaWFzLmluYyBiL3Bva3kvbWV0YS9jb25mL2Rpc3Ryby9pbmNsdWRlL2Rpc3Ryb19hbGlhcy5pbmMKaW5kZXggYWI2ZWJkYi4uZTMxNDY0MiAxMDA2NDQKLS0tIGEvcG9reS9tZXRhL2NvbmYvZGlzdHJvL2luY2x1ZGUvZGlzdHJvX2FsaWFzLmluYworKysgYi9wb2t5L21ldGEvY29uZi9kaXN0cm8vaW5jbHVkZS9kaXN0cm9fYWxpYXMuaW5jCkBAIC00Myw5ICs0Myw2IEBACiBESVNUUk9fUE5fQUxJQVNfcG4tY29yZS1pbWFnZS1jbHV0dGVyID0gIk9FLUNvcmUiCiBESVNUUk9fUE5fQUxJQVNfcG4tY29yZS1pbWFnZS1mdWxsLWNtZGxpbmUgPSAiT0UtQ29yZSIKIERJU1RST19QTl9BTElBU19wbi1jb3JlLWltYWdlLWtlcm5lbC1kZXYgPSAiT0UtQ29yZSIKLURJU1RST19QTl9BTElBU19wbi1jb3JlLWltYWdlLWxzYiA9ICJPRS1Db3JlIgotRElTVFJPX1BOX0FMSUFTX3BuLWNvcmUtaW1hZ2UtbHNiLWRldiA9ICJPRS1Db3JlIgotRElTVFJPX1BOX0FMSUFTX3BuLWNvcmUtaW1hZ2UtbHNiLXNkayA9ICJPRS1Db3JlIgogRElTVFJPX1BOX0FMSUFTX3BuLWNvcmUtaW1hZ2UtbWluaW1hbCA9ICJPRS1Db3JlIgogRElTVFJPX1BOX0FMSUFTX3BuLWNvcmUtaW1hZ2UtbWluaW1hbC1kZXYgPSAiT0UtQ29yZSIKIERJU1RST19QTl9BTElBU19wbi1jb3JlLWltYWdlLW1pbmltYWwtaW5pdHJhbWZzID0gIk9FLUNvcmUiCkBAIC04MCw4ICs3Nyw2IEBACiBESVNUUk9fUE5fQUxJQVNfcG4tZG9jYm9vay14c2wtc3R5bGVzaGVldHMgPSAiRmVkb3JhPWRvY2Jvb2steHNsLXN0eWxlc2hlZXRzIE9wZW5zdXNlPWRvY2Jvb2steHNsLXN0eWxlc2hlZXRzIgogRElTVFJPX1BOX0FMSUFTX3BuLWRyb3BiZWFyID0gIkRlYmlhbj1kcm9wYmVhciBVYnVudHU9ZHJvcGJlYXIiCiBESVNUUk9fUE5fQUxJQVNfcG4tZHRjID0gIkZlZG9yYT1kdGMgVWJ1bnR1PWR0YyIKLURJU1RST19QTl9BTElBU19wbi1lZ2xpbmZvLWZiID0gIk9FLUNvcmUiCi1ESVNUUk9fUE5fQUxJQVNfcG4tZWdsaW5mby14MTEgPSAiT0UtQ29yZSIKIERJU1RST19QTl9BTElBU19wbi1lbmNvZGluZ3MgPSAiVWJ1bnR1PXhmb250cy1lbmNvZGluZ3MgTWFuZHJpdmE9eDExLWZvbnQtZW5jb2RpbmdzIERlYmlhbj14Zm9udHMtZW5jb2RpbmdzIgogRElTVFJPX1BOX0FMSUFTX3BuLWZvbnQtYWxpYXMgPSAiRmVkb3JhPXhvcmcteDExLWZvbnRzLWJhc2UgTWFuZHJpdmE9eDExLWZvbnQtYWxpYXMgTWVlZ289eG9yZy14MTEtZm9udHMiCiBESVNUUk9fUE5fQUxJQVNfcG4tZm9udC11dGlsID0gIk1lZWdvPXhvcmcteDExLWZvbnQtdXRpbHMgRmVkb3JhPXhvcmcteDExLWZvbnQtdXRpbHMgVWJ1bnR1PXhmb250cy11dGlscyBNYW5kcml2YT14MTEtZm9udC11dGlsIERlYmlhbj14Zm9udHMtdXRpbHMiCkBAIC0yMDIsOCArMTk3LDYgQEAKIERJU1RST19QTl9BTElBU19wbi1saW51eC15b2N0byA9ICJEZWJpYW49bGludXgtYmFzZSBVYnVudHU9bGludXgiCiBESVNUUk9fUE5fQUxJQVNfcG4tbGludXgteW9jdG8tcnQgPSAiRGViaWFuPWxpbnV4LWJhc2UgVWJ1bnR1PWxpbnV4IgogRElTVFJPX1BOX0FMSUFTX3BuLWxpbnV4LXlvY3RvLXRpbnkgPSAiT1NQRFQiCi1ESVNUUk9fUE5fQUxJQVNfcG4tbHNiaW5pdHNjcmlwdHMgPSAiV2luZHJpdmVyIgotRElTVFJPX1BOX0FMSUFTX3BuLWxzYnRlc3QgPSAiV2luZHJpdmVyIgogRElTVFJPX1BOX0FMSUFTX3BuLWx0cCA9ICJNYW5kcml2YT1sdHAgVWJ1bnR1PWx0cCIKIERJU1RST19QTl9BTElBU19wbi1sdHRuZy1tb2R1bGVzID0gIk9TUERUIHVwc3RyZWFtPWh0dHA6Ly9sdHRuZy5vcmcvIgogRElTVFJPX1BOX0FMSUFTX3BuLWx0dG5nLXRvb2xzID0gIk9TUERUIHVwc3RyZWFtPWh0dHA6Ly9sdHRuZy5vcmcvIgpAQCAtMjY1LDcgKzI1OCw2IEBACiBESVNUUk9fUE5fQUxJQVNfcG4tcGFja2FnZWdyb3VwLWNvcmUtZGV2aWNlLWRldmVsID0gIk9FLUNvcmUiCiBESVNUUk9fUE5fQUxJQVNfcG4tcGFja2FnZWdyb3VwLWNvcmUtZWNsaXBzZS1kZWJ1ZyA9ICJPRS1Db3JlIgogRElTVFJPX1BOX0FMSUFTX3BuLXBhY2thZ2Vncm91cC1jb3JlLWZ1bGwtY21kbGluZSA9ICJPRS1Db3JlIgotRElTVFJPX1BOX0FMSUFTX3BuLXBhY2thZ2Vncm91cC1jb3JlLWxzYiA9ICJPRS1Db3JlIgogRElTVFJPX1BOX0FMSUFTX3BuLXBhY2thZ2Vncm91cC1jb3JlLW5mcyA9ICJPRS1Db3JlIgogRElTVFJPX1BOX0FMSUFTX3BuLXBhY2thZ2Vncm91cC1jb3JlLXNkayA9ICJPRS1Db3JlIgogRElTVFJPX1BOX0FMSUFTX3BuLXBhY2thZ2Vncm91cC1jb3JlLXNzaC1kcm9wYmVhciA9ICJPRS1Db3JlIgpkaWZmIC0tZ2l0IGEvcG9reS9tZXRhL2NvbmYvZGlzdHJvL2luY2x1ZGUvbWFpbnRhaW5lcnMuaW5jIGIvcG9reS9tZXRhL2NvbmYvZGlzdHJvL2luY2x1ZGUvbWFpbnRhaW5lcnMuaW5jCmluZGV4IDZhMjMwOGQuLjVmMjFmOTggMTAwNjQ0Ci0tLSBhL3Bva3kvbWV0YS9jb25mL2Rpc3Ryby9pbmNsdWRlL21haW50YWluZXJzLmluYworKysgYi9wb2t5L21ldGEvY29uZi9kaXN0cm8vaW5jbHVkZS9tYWludGFpbmVycy5pbmMKQEAgLTY2LDYgKzY2LDcgQEAKIFJFQ0lQRV9NQUlOVEFJTkVSX3BuLWJpbnV0aWxzID0gIktoZW0gUmFqIDxyYWoua2hlbUBnbWFpbC5jb20+IgogUkVDSVBFX01BSU5UQUlORVJfcG4tYmludXRpbHMtY3Jvc3MtJHtUQVJHRVRfQVJDSH0gPSAiS2hlbSBSYWogPHJhai5raGVtQGdtYWlsLmNvbT4iCiBSRUNJUEVfTUFJTlRBSU5FUl9wbi1iaW51dGlscy1jcm9zcy1jYW5hZGlhbi0ke1RSQU5TTEFURURfVEFSR0VUX0FSQ0h9ID0gIktoZW0gUmFqIDxyYWoua2hlbUBnbWFpbC5jb20+IgorUkVDSVBFX01BSU5UQUlORVJfcG4tYmludXRpbHMtY3Jvc3MtdGVzdHN1aXRlID0gIktoZW0gUmFqIDxyYWoua2hlbUBnbWFpbC5jb20+IgogUkVDSVBFX01BSU5UQUlORVJfcG4tYmludXRpbHMtY3Jvc3NzZGstJHtTREtfU1lTfSA9ICJLaGVtIFJhaiA8cmFqLmtoZW1AZ21haWwuY29tPiIKIFJFQ0lQRV9NQUlOVEFJTkVSX3BuLWJpc29uID0gIkNoZW4gUWkgPFFpLkNoZW5Ad2luZHJpdmVyLmNvbT4iCiBSRUNJUEVfTUFJTlRBSU5FUl9wbi1iamFtLW5hdGl2ZSA9ICJBbGV4YW5kZXIgS2FuYXZpbiA8YWxleC5rYW5hdmluQGdtYWlsLmNvbT4iCkBAIC0xMTQsOCArMTE1LDYgQEAKIFJFQ0lQRV9NQUlOVEFJTkVSX3BuLWNvcmUtaW1hZ2Uta2VybmVsLWRldiA9ICJSaWNoYXJkIFB1cmRpZSA8cmljaGFyZC5wdXJkaWVAbGludXhmb3VuZGF0aW9uLm9yZz4iCiBSRUNJUEVfTUFJTlRBSU5FUl9wbi1jb3JlLWltYWdlLXNhdG8gPSAiUmljaGFyZCBQdXJkaWUgPHJpY2hhcmQucHVyZGllQGxpbnV4Zm91bmRhdGlvbi5vcmc+IgogUkVDSVBFX01BSU5UQUlORVJfcG4tY29yZS1pbWFnZS1zYXRvLXNkayA9ICJSaWNoYXJkIFB1cmRpZSA8cmljaGFyZC5wdXJkaWVAbGludXhmb3VuZGF0aW9uLm9yZz4iCi1SRUNJUEVfTUFJTlRBSU5FUl9wbi1jb3JlLWltYWdlLWxzYiA9ICJSaWNoYXJkIFB1cmRpZSA8cmljaGFyZC5wdXJkaWVAbGludXhmb3VuZGF0aW9uLm9yZz4iCi1SRUNJUEVfTUFJTlRBSU5FUl9wbi1jb3JlLWltYWdlLWxzYi1zZGsgPSAiUmljaGFyZCBQdXJkaWUgPHJpY2hhcmQucHVyZGllQGxpbnV4Zm91bmRhdGlvbi5vcmc+IgogUkVDSVBFX01BSU5UQUlORVJfcG4tY29yZS1pbWFnZS10ZXN0bWFzdGVyLWluaXRyYW1mcyA9ICJSaWNoYXJkIFB1cmRpZSA8cmljaGFyZC5wdXJkaWVAbGludXhmb3VuZGF0aW9uLm9yZz4iCiBSRUNJUEVfTUFJTlRBSU5FUl9wbi1jb3JlLWltYWdlLXRlc3RtYXN0ZXIgPSAiUmljaGFyZCBQdXJkaWUgPHJpY2hhcmQucHVyZGllQGxpbnV4Zm91bmRhdGlvbi5vcmc+IgogUkVDSVBFX01BSU5UQUlORVJfcG4tY29yZS1pbWFnZS1jbHV0dGVyID0gIlJpY2hhcmQgUHVyZGllIDxyaWNoYXJkLnB1cmRpZUBsaW51eGZvdW5kYXRpb24ub3JnPiIKQEAgLTE0NCw2ICsxNDMsNyBAQAogUkVDSVBFX01BSU5UQUlORVJfcG4tZGJ1cy10ZXN0ID0gIkNoZW4gUWkgPFFpLkNoZW5Ad2luZHJpdmVyLmNvbT4iCiBSRUNJUEVfTUFJTlRBSU5FUl9wbi1kYnVzLXdhaXQgPSAiQ2hlbiBRaSA8UWkuQ2hlbkB3aW5kcml2ZXIuY29tPiIKIFJFQ0lQRV9NQUlOVEFJTkVSX3BuLWRlYmlhbnV0aWxzID0gIllpIFpoYW8gPHlpLnpoYW9Ad2luZHJpdmVyLmNvbT4iCitSRUNJUEVfTUFJTlRBSU5FUl9wbi1kZWphZ251ID0gIk5hdGhhbiBSb3NzaSA8bmF0aGFuQG5hdGhhbnJvc3NpLmNvbT4iCiBSRUNJUEVfTUFJTlRBSU5FUl9wbi1kZXBtb2R3cmFwcGVyLWNyb3NzID0gIk1hcmsgSGF0bGUgPG1hcmsuaGF0bGVAd2luZHJpdmVyLmNvbT4iCiBSRUNJUEVfTUFJTlRBSU5FUl9wbi1kZXNrdG9wLWZpbGUtdXRpbHMgPSAiQWxleGFuZGVyIEthbmF2aW4gPGFsZXgua2FuYXZpbkBnbWFpbC5jb20+IgogUkVDSVBFX01BSU5UQUlORVJfcG4tZGhjcCA9ICJIb25neHUgSmlhIDxob25neHUuamlhQHdpbmRyaXZlci5jb20+IgpAQCAtMTY1LDkgKzE2NSw2IEBACiBSRUNJUEVfTUFJTlRBSU5FUl9wbi1lZCA9ICJBbGV4YW5kZXIgS2FuYXZpbiA8YWxleC5rYW5hdmluQGdtYWlsLmNvbT4iCiBSRUNJUEVfTUFJTlRBSU5FUl9wbi1lZml2YXIgPSAiUm9zcyBCdXJ0b24gPHJvc3MuYnVydG9uQGludGVsLmNvbT4iCiBSRUNJUEVfTUFJTlRBSU5FUl9wbi1lZmlib290bWdyID0gIlJvc3MgQnVydG9uIDxyb3NzLmJ1cnRvbkBpbnRlbC5jb20+IgotUkVDSVBFX01BSU5UQUlORVJfcG4tZWdsaW5mby1mYiA9ICJBbGV4YW5kZXIgS2FuYXZpbiA8YWxleC5rYW5hdmluQGdtYWlsLmNvbT4iCi1SRUNJUEVfTUFJTlRBSU5FUl9wbi1lZ2xpbmZvLXgxMSA9ICJBbGV4YW5kZXIgS2FuYXZpbiA8YWxleC5rYW5hdmluQGdtYWlsLmNvbT4iCi1SRUNJUEVfTUFJTlRBSU5FUl9wbi1lZ2xpbmZvLXdheWxhbmQgPSAiQWxleGFuZGVyIEthbmF2aW4gPGFsZXgua2FuYXZpbkBnbWFpbC5jb20+IgogUkVDSVBFX01BSU5UQUlORVJfcG4tZWxmdXRpbHMgPSAiSG9uZ3h1IEppYSA8aG9uZ3h1LmppYUB3aW5kcml2ZXIuY29tPiIKIFJFQ0lQRV9NQUlOVEFJTkVSX3BuLWVsbCA9ICJPbGVrc2FuZHIgS3JhdmNodWsgPG9wZW4uc291cmNlQG9sZWtzYW5kci1rcmF2Y2h1ay5jb20+IgogUkVDSVBFX01BSU5UQUlORVJfcG4tZW5jaGFudCA9ICJBbnVqIE1pdHRhbCA8YW51ai5taXR0YWxAaW50ZWwuY29tPiIKQEAgLTIxNywxMCArMjE0LDEwIEBACiBSRUNJUEVfTUFJTlRBSU5FUl9wbi1nbGliLTIuMCA9ICJBbnVqIE1pdHRhbCA8YW51ai5taXR0YWxAaW50ZWwuY29tPiIKIFJFQ0lQRV9NQUlOVEFJTkVSX3BuLWdsaWItbmV0d29ya2luZyA9ICJBbnVqIE1pdHRhbCA8YW51ai5taXR0YWxAaW50ZWwuY29tPiIKIFJFQ0lQRV9NQUlOVEFJTkVSX3BuLWdsaWJjID0gIktoZW0gUmFqIDxyYWoua2hlbUBnbWFpbC5jb20+IgotUkVDSVBFX01BSU5UQUlORVJfcG4tZ2xpYmMtaW5pdGlhbCA9ICJLaGVtIFJhaiA8cmFqLmtoZW1AZ21haWwuY29tPiIKIFJFQ0lQRV9NQUlOVEFJTkVSX3BuLWdsaWJjLWxvY2FsZSA9ICJLaGVtIFJhaiA8cmFqLmtoZW1AZ21haWwuY29tPiIKIFJFQ0lQRV9NQUlOVEFJTkVSX3BuLWdsaWJjLW10cmFjZSA9ICJLaGVtIFJhaiA8cmFqLmtoZW1AZ21haWwuY29tPiIKIFJFQ0lQRV9NQUlOVEFJTkVSX3BuLWdsaWJjLXNjcmlwdHMgPSAiS2hlbSBSYWogPHJhai5raGVtQGdtYWlsLmNvbT4iCitSRUNJUEVfTUFJTlRBSU5FUl9wbi1nbGliYy10ZXN0c3VpdGUgPSAiS2hlbSBSYWogPHJhai5raGVtQGdtYWlsLmNvbT4iCiBSRUNJUEVfTUFJTlRBSU5FUl9wbi1nbGlkZSA9ICJPdGF2aW8gU2FsdmFkb3IgPG90YXZpby5zYWx2YWRvckBvc3N5c3RlbXMuY29tLmJyPiIKIFJFQ0lQRV9NQUlOVEFJTkVSX3BuLWdtcCA9ICJLaGVtIFJhaiA8cmFqLmtoZW1AZ21haWwuY29tPiIKIFJFQ0lQRV9NQUlOVEFJTkVSX3BuLWdub21lLWRlc2t0b3AtdGVzdGluZyA9ICJSb3NzIEJ1cnRvbiA8cm9zcy5idXJ0b25AaW50ZWwuY29tPiIKQEAgLTQ1NSw5ICs0NTIsNyBAQAogUkVDSVBFX01BSU5UQUlORVJfcG4tbGx2bSA9ICJLaGVtIFJhaiA8cmFqLmtoZW1AZ21haWwuY29tPiIKIFJFQ0lQRV9NQUlOVEFJTkVSX3BuLWxvZ3JvdGF0ZSA9ICJZaSBaaGFvIDx5aS56aGFvQHdpbmRyaXZlci5jb20+IgogUkVDSVBFX01BSU5UQUlORVJfcG4tbHJ6c3ogPSAiQW51aiBNaXR0YWwgPGFudWoubWl0dGFsQGludGVsLmNvbT4iCi1SRUNJUEVfTUFJTlRBSU5FUl9wbi1sc2IgPSAiSG9uZ3h1IEppYSA8aG9uZ3h1LmppYUB3aW5kcml2ZXIuY29tPiIKLVJFQ0lQRV9NQUlOVEFJTkVSX3BuLWxzYmluaXRzY3JpcHRzID0gIlJvc3MgQnVydG9uIDxyb3NzLmJ1cnRvbkBpbnRlbC5jb20+IgotUkVDSVBFX01BSU5UQUlORVJfcG4tbHNidGVzdCA9ICJZaSBaaGFvIDx5aS56aGFvQHdpbmRyaXZlci5jb20+IgorUkVDSVBFX01BSU5UQUlORVJfcG4tbHNiLXJlbGVhc2UgPSAiSG9uZ3h1IEppYSA8aG9uZ3h1LmppYUB3aW5kcml2ZXIuY29tPiIKIFJFQ0lQRV9NQUlOVEFJTkVSX3BuLWxzb2YgPSAiUm9zcyBCdXJ0b24gPHJvc3MuYnVydG9uQGludGVsLmNvbT4iCiBSRUNJUEVfTUFJTlRBSU5FUl9wbi1sdHAgPSAiWWkgWmhhbyA8eWkuemhhb0B3aW5kcml2ZXIuY29tPiIKIFJFQ0lQRV9NQUlOVEFJTkVSX3BuLWx0dG5nLW1vZHVsZXMgPSAiUmljaGFyZCBQdXJkaWUgPHJpY2hhcmQucHVyZGllQGxpbnV4Zm91bmRhdGlvbi5vcmc+IgpkaWZmIC0tZ2l0IGEvcG9reS9tZXRhL2NvbmYvZGlzdHJvL2luY2x1ZGUvc2VjdXJpdHlfZmxhZ3MuaW5jIGIvcG9reS9tZXRhL2NvbmYvZGlzdHJvL2luY2x1ZGUvc2VjdXJpdHlfZmxhZ3MuaW5jCmluZGV4IDYyMDk3OGEuLmFhZjA0ZTkgMTAwNjQ0Ci0tLSBhL3Bva3kvbWV0YS9jb25mL2Rpc3Ryby9pbmNsdWRlL3NlY3VyaXR5X2ZsYWdzLmluYworKysgYi9wb2t5L21ldGEvY29uZi9kaXN0cm8vaW5jbHVkZS9zZWN1cml0eV9mbGFncy5pbmMKQEAgLTM2LDcgKzM2LDcgQEAKIFNFQ1VSSVRZX0NGTEFHU19wbi1saWJnY2NfcG93ZXJwYyA9ICIiCiAKIFNFQ1VSSVRZX0NGTEFHU19wbi1nbGliYyA9ICIiCi1TRUNVUklUWV9DRkxBR1NfcG4tZ2xpYmMtaW5pdGlhbCA9ICIiCitTRUNVUklUWV9DRkxBR1NfcG4tZ2xpYmMtdGVzdHN1aXRlID0gIiIKIFNFQ1VSSVRZX0NGTEFHU19wbi1nY2MtcnVudGltZSA9ICIiCiBTRUNVUklUWV9DRkxBR1NfcG4tZ3J1YiA9ICIiCiBTRUNVUklUWV9DRkxBR1NfcG4tZ3J1Yi1lZmkgPSAiIgpAQCAtNjAsNyArNjAsNyBAQAogCiBTRUNVUklUWV9TVEFDS19QUk9URUNUT1JfcG4tZ2NjLXJ1bnRpbWUgPSAiIgogU0VDVVJJVFlfU1RBQ0tfUFJPVEVDVE9SX3BuLWdsaWJjID0gIiIKLVNFQ1VSSVRZX1NUQUNLX1BST1RFQ1RPUl9wbi1nbGliYy1pbml0aWFsID0gIiIKK1NFQ1VSSVRZX1NUQUNLX1BST1RFQ1RPUl9wbi1nbGliYy10ZXN0c3VpdGUgPSAiIgogIyBBbGwgeG9yZyBtb2R1bGUgZHJpdmVycyBuZWVkIHRvIGJlIGxpbmtlZCB0aGlzIHdheSBhcyB3ZWxsIGFuZCBhcmUKICMgaGFuZGxlZCBpbiByZWNpcGVzLWdyYXBoaWNzL3hvcmctZHJpdmVyL3hvcmctZHJpdmVyLWNvbW1vbi5pbmMKIFNFQ1VSSVRZX0xERkxBR1NfcG4teHNlcnZlci14b3JnID0gIiR7U0VDVVJJVFlfWF9MREZMQUdTfSIKZGlmZiAtLWdpdCBhL3Bva3kvbWV0YS9jb25mL2Rpc3Ryby9pbmNsdWRlL3RjbW9kZS1kZWZhdWx0LmluYyBiL3Bva3kvbWV0YS9jb25mL2Rpc3Ryby9pbmNsdWRlL3RjbW9kZS1kZWZhdWx0LmluYwppbmRleCBjODliOGUwLi5kOGY0MzQ2IDEwMDY0NAotLS0gYS9wb2t5L21ldGEvY29uZi9kaXN0cm8vaW5jbHVkZS90Y21vZGUtZGVmYXVsdC5pbmMKKysrIGIvcG9reS9tZXRhL2NvbmYvZGlzdHJvL2luY2x1ZGUvdGNtb2RlLWRlZmF1bHQuaW5jCkBAIC0xNCw4ICsxNCw2IEBACiBQUkVGRVJSRURfUFJPVklERVJfdmlydHVhbC8ke1NES19QUkVGSVh9Y29tcGlsZXJsaWJzID0gIm5hdGl2ZXNkay1nY2MtcnVudGltZSIKIAogIyBEZWZhdWx0IGxpYmMgY29uZmlnCi1QUkVGRVJSRURfUFJPVklERVJfdmlydHVhbC8ke1RBUkdFVF9QUkVGSVh9bGliYy1pbml0aWFsID0gIiR7VENMSUJDfS1pbml0aWFsIgotUFJFRkVSUkVEX1BST1ZJREVSX3ZpcnR1YWwvbmF0aXZlc2RrLSR7U0RLX1BSRUZJWH1saWJjLWluaXRpYWwgPz0gIm5hdGl2ZXNkay1nbGliYy1pbml0aWFsIgogUFJFRkVSUkVEX1BST1ZJREVSX3ZpcnR1YWwvZ2V0dGV4dCA/Pz0gImdldHRleHQiCiAKIEdDQ1ZFUlNJT04gPz0gIjkuJSIKQEAgLTIzLDcgKzIxLDcgQEAKIEJJTlVWRVJTSU9OID89ICIyLjMyJSIKIEdEQlZFUlNJT04gPz0gIjguMyUiCiBHTElCQ1ZFUlNJT04gPz0gIjIuMzAlIgotTElOVVhMSUJDVkVSU0lPTiA/PSAiNS4wJSIKK0xJTlVYTElCQ1ZFUlNJT04gPz0gIjUuMiUiCiBRRU1VVkVSU0lPTiA/PSAiNC4xJSIKIEdPVkVSU0lPTiA/PSAiMS4xMiUiCiAjIFRoaXMgY2FuIG5vdCB1c2Ugd2lsZGNhcmRzIGxpa2UgOC4wLiUgc2luY2UgaXQgaXMgYWxzbyB1c2VkIGluIG1lc2EgdG8gZGVub3RlCkBAIC02Miw4ICs2MCw2IEBACiBQUkVGRVJSRURfVkVSU0lPTl9nbGliYy1tdHJhY2UgICAgICAgICAgICAgPz0gIiR7R0xJQkNWRVJTSU9OfSIKIFBSRUZFUlJFRF9WRVJTSU9OX2dsaWJjLXNjcmlwdHMgICAgICAgICAgICA/PSAiJHtHTElCQ1ZFUlNJT059IgogUFJFRkVSUkVEX1ZFUlNJT05fbmF0aXZlc2RrLWdsaWJjICAgICAgICAgID89ICIke0dMSUJDVkVSU0lPTn0iCi1QUkVGRVJSRURfVkVSU0lPTl9nbGliYy1pbml0aWFsICAgICAgICAgICAgPz0gIiR7R0xJQkNWRVJTSU9OfSIKLVBSRUZFUlJFRF9WRVJTSU9OX25hdGl2ZXNkay1nbGliYy1pbml0aWFsICA/PSAiJHtHTElCQ1ZFUlNJT059IgogUFJFRkVSUkVEX1ZFUlNJT05fY3Jvc3MtbG9jYWxlZGVmLW5hdGl2ZSAgID89ICIke0dMSUJDVkVSU0lPTn0iCiAKIFBSRUZFUlJFRF9WRVJTSU9OX3FlbXUgPz0gIiR7UUVNVVZFUlNJT059IgpkaWZmIC0tZ2l0IGEvcG9reS9tZXRhL2NvbmYvZGlzdHJvL2luY2x1ZGUvd29ybGQtYnJva2VuLmluYyBiL3Bva3kvbWV0YS9jb25mL2Rpc3Ryby9pbmNsdWRlL3dvcmxkLWJyb2tlbi5pbmMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDQyY2FjZmQuLjAwMDAwMDAKLS0tIGEvcG9reS9tZXRhL2NvbmYvZGlzdHJvL2luY2x1ZGUvd29ybGQtYnJva2VuLmluYworKysgL2Rldi9udWxsCkBAIC0xLDI3ICswLDAgQEAKLSMKLSMgRXhjbHVkZSBrbm93biBicm9rZW4gcGFja2FnZXMKLSMKLQotIyBydC10ZXN0cyBuZWVkcyBQSSBtdXRleCBzdXBwb3J0IGluIGxpYmMKLUVYQ0xVREVfRlJPTV9XT1JMRF9wbi1ydC10ZXN0c19saWJjLW11c2wgPSAiMSIKLQotIyBlcnJvcjogdXNlIG9mIHVuZGVjbGFyZWQgaWRlbnRpZmllciAnX1NUQVRfVkVSJwotRVhDTFVERV9GUk9NX1dPUkxEX3BuLXBzZXVkb19saWJjLW11c2wgPSAiMSIKLQotIyBlcnJvcjogZXJyb3IuaDogTm8gc3VjaCBmaWxlIG9yIGRpcmVjdG9yeQotRVhDTFVERV9GUk9NX1dPUkxEX3BuLXByZWxpbmtfbGliYy1tdXNsID0gIjEiCi0KLSMgZXJyb3I6IG9ic3RhY2suaDogTm8gc3VjaCBmaWxlIG9yIGRpcmVjdG9yeQotRVhDTFVERV9GUk9NX1dPUkxEX3BuLXN5c3RlbXRhcF9saWJjLW11c2wgPSAiMSIKLUVYQ0xVREVfRlJPTV9XT1JMRF9wbi1zeXN0ZW10YXAtdXByb2Jlc19saWJjLW11c2wgPSAiMSIKLQotIyBlcnJvcjogYSBwYXJhbWV0ZXIgbGlzdCB3aXRob3V0IHR5cGVzIGlzIG9ubHkgYWxsb3dlZCBpbiBhIGZ1bmN0aW9uIGRlZmluaXRpb24KLSMgICAgICAgICAgICB2b2lkICgqX2Z1bmN0aW9uKShzaWd2YWxfdCk7Ci1FWENMVURFX0ZST01fV09STERfcG4tcWVtdV9saWJjLW11c2wgPSAiMSIKLQotIyBlcnJvcjogZm9ybWF0ICclcycgZXhwZWN0cyBhcmd1bWVudCBvZiB0eXBlICdjaGFyIConLCBidXQgYXJndW1lbnQgNCBoYXMgdHlwZSAnaW50JyBbLVdlcnJvcj1mb3JtYXQ9XQotIyAgIHNucHJpbnRmKGJ1Ziwgc2l6ZSwgIiVzIiwgc3RyZXJyb3JfcihlcnIsIHNidWYsIHNpemVvZihzYnVmKSkpOwotRVhDTFVERV9GUk9NX1dPUkxEX3BuLXBlcmZfbGliYy1tdXNsID0gIjEiCi0KLSMgZXJyb3I6ICdSVExEX05FWFQnIHdhcyBub3QgZGVjbGFyZWQgaW4gdGhpcyBzY29wZQotRVhDTFVERV9GUk9NX1dPUkxEX3BuLWdjYy1zYW5pdGl6ZXJzX2xpYmMtbXVzbCA9ICIxIgpkaWZmIC0tZ2l0IGEvcG9reS9tZXRhL2NvbmYvbWFjaGluZS9pbmNsdWRlL2FybS9mZWF0dXJlLWFybS10aHVtYi5pbmMgYi9wb2t5L21ldGEvY29uZi9tYWNoaW5lL2luY2x1ZGUvYXJtL2ZlYXR1cmUtYXJtLXRodW1iLmluYwppbmRleCAwYjQ3Y2NhLi5iYWUxNjlkIDEwMDY0NAotLS0gYS9wb2t5L21ldGEvY29uZi9tYWNoaW5lL2luY2x1ZGUvYXJtL2ZlYXR1cmUtYXJtLXRodW1iLmluYworKysgYi9wb2t5L21ldGEvY29uZi9tYWNoaW5lL2luY2x1ZGUvYXJtL2ZlYXR1cmUtYXJtLXRodW1iLmluYwpAQCAtMSw4ICsxLDYgQEAKIAogVFVORVZBTElEW3RodW1iXSA9ICJTdXBwb3J0IFRodW1iIGluc3RydWN0aW9ucyIKIAotQVJNX1RIVU1CX1NVRkZJWCA9ICIke0BiYi51dGlscy5jb250YWluc19hbnkoJ1RVTkVfRkVBVFVSRVMnLCAnYXJtdjQgYXJtdjUgYXJtdjYnLCAndCcsICd0MicsIGQpfSIKLQogIyBJZiB0aGUgZGV2aWNlIHN1cHBvcnRzIEFSTSwgdGhlbiByZXNwZWN0IEFSTV9USFVNQl9PUFQgKHdoaWNoIGNhbiBiZSAiYXJtIiBvciAidGh1bWIiKQogIyBJZiB0aGUgZGV2aWNlIGRvZXNuJ3Qgc3VwcG9ydCBBUk0sIHRoZW4gYWx3YXlzIHNldCAidGh1bWIiIGV2ZW4gd2hlbgogIyBzb21lIHJlY2lwZSBleHBsaWNpdGx5IHNldHMgQVJNX0lOU1RSVUNUSU9OX1NFVCB0byAiYXJtIgpAQCAtMjMsNiArMjEsMTEgQEAKIAogVFVORV9DQ0FSR1MgLj0gIiR7QGJiLnV0aWxzLmNvbnRhaW5zKCdUVU5FX0ZFQVRVUkVTJywgJ3RodW1iJywgJyAtbSR7QVJNX01fT1BUfScsICcnLCBkKX0iCiAKK0FSTV9USFVNQl9TVUZGSVggPSAidDIiCitBUk1fVEhVTUJfU1VGRklYX2FybXY0ID0gInQiCitBUk1fVEhVTUJfU1VGRklYX2FybXY1ID0gInQiCitBUk1fVEhVTUJfU1VGRklYX2FybXY2ID0gInQiCisKICMgQWRkIHN1ZmZpeCBmcm9tIEFSTV9USFVNQl9TVUZGSVggb25seSBpZiBhZnRlciBhbGwgdGhpcyB3ZSBzdGlsbCBzZXQgQVJNX01fT1BUIHRvIHRodW1iCiBBUk1QS0dTRlhfVEhVTUIgLj0gIiR7QGJiLnV0aWxzLmNvbnRhaW5zKCdUVU5FX0ZFQVRVUkVTJywgJ3RodW1iJywgJyR7QVJNX1RIVU1CX1NVRkZJWH0nLCAnJywgZCkgaWYgZC5nZXRWYXIoJ0FSTV9NX09QVCcpID09ICd0aHVtYicgZWxzZSAnJ30iCiAKZGlmZiAtLWdpdCBhL3Bva3kvbWV0YS9jb25mL21hY2hpbmUvaW5jbHVkZS9wb3dlcnBjL2FyY2gtcG93ZXJwYy5pbmMgYi9wb2t5L21ldGEvY29uZi9tYWNoaW5lL2luY2x1ZGUvcG93ZXJwYy9hcmNoLXBvd2VycGMuaW5jCmluZGV4IDljZjZiODguLjhjMGM5NDMgMTAwNjQ0Ci0tLSBhL3Bva3kvbWV0YS9jb25mL21hY2hpbmUvaW5jbHVkZS9wb3dlcnBjL2FyY2gtcG93ZXJwYy5pbmMKKysrIGIvcG9reS9tZXRhL2NvbmYvbWFjaGluZS9pbmNsdWRlL3Bvd2VycGMvYXJjaC1wb3dlcnBjLmluYwpAQCAtOCw2ICs4LDExIEBACiBUVU5FX1BLR0FSQ0ggPSAiJHtUVU5FX1BLR0FSQ0hfdHVuZS0ke0RFRkFVTFRUVU5FfX0iCiBBQklFWFRFTlNJT04gPz0gIiIKIAorIyBFbmRpYW4KK1RVTkVWQUxJRFtiaWdlbmRpYW5dID0gIlVzZSBQb3dlclBDIEJpZyBFbmRpYW4iCisKK1RVTkVfQ0NBUkdTIC49ICIke0BiYi51dGlscy5jb250YWlucygiVFVORV9GRUFUVVJFUyIsICJiaWdlbmRpYW4iLCAiIC1tYmlnLWVuZGlhbiIsICIgLW1saXR0bGUtZW5kaWFuIiwgZCl9IgorCiBUVU5FVkFMSURbbTMyXSA9ICJQb3dlciBFTEYzMiBzdGFuZGFyZCBBQkkiCiBUVU5FX0NDQVJHUyAuPSAiJHtAYmIudXRpbHMuY29udGFpbnMoJ1RVTkVfRkVBVFVSRVMnLCAnbTMyJywgJyAtbTMyJywgJycsIGQpfSIKIFRVTkVfQVJDSCAuPSAiJHtAYmIudXRpbHMuY29udGFpbnMoJ1RVTkVfRkVBVFVSRVMnLCAnbTMyJywgJ3Bvd2VycGMnLCAnJywgZCl9IgpAQCAtMjIsMTMgKzI3LDI0IEBACiBUVU5FVkFMSURbYWx0aXZlY10gPSAiQWx0aXZlYyIKIAogIyBCYXNpYyB0dW5lIGRlZmluaXRpb25zCi1BVkFJTFRVTkVTICs9ICJwb3dlcnBjIHBvd2VycGMtbmYiIAotVFVORV9GRUFUVVJFU190dW5lLXBvd2VycGMtbmYgPSAibTMyIGZwdS1zb2Z0IgorQVZBSUxUVU5FUyArPSAicG93ZXJwYyBwb3dlcnBjLW5mIHBvd2VycGNsZSBwb3dlcnBjbGUtbmYiIAorCitUVU5FX0ZFQVRVUkVTX3R1bmUtcG93ZXJwYy1uZiA9ICJtMzIgZnB1LXNvZnQgYmlnZW5kaWFuIgogQkFTRV9MSUJfdHVuZS1wb3dlcnBjLW5mID0gImxpYiIKIFRVTkVfUEtHQVJDSF90dW5lLXBvd2VycGMtbmYgPSAicG93ZXJwYy1uZiIKIFBBQ0tBR0VfRVhUUkFfQVJDSFNfdHVuZS1wb3dlcnBjLW5mID0gInBvd2VycGMtbmYiCiAKLVRVTkVfRkVBVFVSRVNfdHVuZS1wb3dlcnBjID0gIm0zMiBmcHUtaGFyZCIKK1RVTkVfRkVBVFVSRVNfdHVuZS1wb3dlcnBjID0gIm0zMiBmcHUtaGFyZCBiaWdlbmRpYW4iCiBCQVNFX0xJQl90dW5lLXBvd2VycGMgPSAibGliIgogVFVORV9QS0dBUkNIX3R1bmUtcG93ZXJwYyA9ICJwb3dlcnBjIgogUEFDS0FHRV9FWFRSQV9BUkNIU190dW5lLXBvd2VycGMgPSAicG93ZXJwYyIKKworVFVORV9GRUFUVVJFU190dW5lLXBvd2VycGNsZS1uZiA9ICJtMzIgZnB1LXNvZnQiCitCQVNFX0xJQl90dW5lLXBvd2VycGNsZS1uZiA9ICJsaWIiCitUVU5FX1BLR0FSQ0hfdHVuZS1wb3dlcnBjbGUtbmYgPSAicG93ZXJwY2xlLW5mIgorUEFDS0FHRV9FWFRSQV9BUkNIU190dW5lLXBvd2VycGNsZS1uZiA9ICJwb3dlcnBjbGUtbmYiCisKK1RVTkVfRkVBVFVSRVNfdHVuZS1wb3dlcnBjbGUgPSAibTMyIGZwdS1oYXJkIgorQkFTRV9MSUJfdHVuZS1wb3dlcnBjbGUgPSAibGliIgorVFVORV9QS0dBUkNIX3R1bmUtcG93ZXJwY2xlID0gInBvd2VycGNsZSIKK1BBQ0tBR0VfRVhUUkFfQVJDSFNfdHVuZS1wb3dlcnBjbGUgPSAicG93ZXJwY2xlIgpkaWZmIC0tZ2l0IGEvcG9reS9tZXRhL2NvbmYvbWFjaGluZS9pbmNsdWRlL3Bvd2VycGMvYXJjaC1wb3dlcnBjNjQuaW5jIGIvcG9reS9tZXRhL2NvbmYvbWFjaGluZS9pbmNsdWRlL3Bvd2VycGMvYXJjaC1wb3dlcnBjNjQuaW5jCmluZGV4IGQ5OTE2ZDQuLjRiYzU5ODMgMTAwNjQ0Ci0tLSBhL3Bva3kvbWV0YS9jb25mL21hY2hpbmUvaW5jbHVkZS9wb3dlcnBjL2FyY2gtcG93ZXJwYzY0LmluYworKysgYi9wb2t5L21ldGEvY29uZi9tYWNoaW5lL2luY2x1ZGUvcG93ZXJwYy9hcmNoLXBvd2VycGM2NC5pbmMKQEAgLTEzLDggKzEzLDE0IEBACiAjIHVzZXIgbW9kZSBxZW11IGRvZXNuJ3Qgc3VwcG9ydCBwcGM2NAogTUFDSElORV9GRUFUVVJFU19CQUNLRklMTF9DT05TSURFUkVEX2FwcGVuZCA9ICIgJHtAYmIudXRpbHMuY29udGFpbnMoJ1RVTkVfRkVBVFVSRVMnLCAnbTY0JywgJ3FlbXUtdXNlcm1vZGUnLCAnJywgZCl9IgogCi1BVkFJTFRVTkVTICs9ICJwb3dlcnBjNjQiCi1UVU5FX0ZFQVRVUkVTX3R1bmUtcG93ZXJwYzY0ID0gIm02NCBmcHUtaGFyZCIKK0FWQUlMVFVORVMgKz0gInBvd2VycGM2NCBwb3dlcnBjNjRsZSIKKworVFVORV9GRUFUVVJFU190dW5lLXBvd2VycGM2NCA9ICJtNjQgZnB1LWhhcmQgYmlnZW5kaWFuIgogQkFTRV9MSUJfdHVuZS1wb3dlcnBjNjQgPSAibGliNjQiCiBUVU5FX1BLR0FSQ0hfdHVuZS1wb3dlcnBjNjQgPSAicG93ZXJwYzY0IgogUEFDS0FHRV9FWFRSQV9BUkNIU190dW5lLXBvd2VycGM2NCA9ICJwb3dlcnBjNjQiCisKK1RVTkVfRkVBVFVSRVNfdHVuZS1wb3dlcnBjNjRsZSA9ICJtNjQgZnB1LWhhcmQiCitCQVNFX0xJQl90dW5lLXBvd2VycGM2NGxlID0gImxpYjY0IgorVFVORV9QS0dBUkNIX3R1bmUtcG93ZXJwYzY0bGUgPSAicG93ZXJwYzY0bGUiCitQQUNLQUdFX0VYVFJBX0FSQ0hTX3R1bmUtcG93ZXJwYzY0bGUgPSAicG93ZXJwYzY0bGUiCmRpZmYgLS1naXQgYS9wb2t5L21ldGEvY29uZi9tYWNoaW5lL2luY2x1ZGUvcWVtdWJvb3QtbWlwcy5pbmMgYi9wb2t5L21ldGEvY29uZi9tYWNoaW5lL2luY2x1ZGUvcWVtdWJvb3QtbWlwcy5pbmMKaW5kZXggYTVmOWVkOC4uOTc4ODIwYSAxMDA2NDQKLS0tIGEvcG9reS9tZXRhL2NvbmYvbWFjaGluZS9pbmNsdWRlL3FlbXVib290LW1pcHMuaW5jCisrKyBiL3Bva3kvbWV0YS9jb25mL21hY2hpbmUvaW5jbHVkZS9xZW11Ym9vdC1taXBzLmluYwpAQCAtMSw4ICsxLDcgQEAKICMgRm9yIHJ1bnFlbXUKIElNQUdFX0NMQVNTRVMgKz0gInFlbXVib290IgotUUJfTUVNID0gIi1tIDI1NiIKIFFCX01BQ0hJTkUgPSAiLW1hY2hpbmUgbWFsdGEiCiBRQl9LRVJORUxfQ01ETElORV9BUFBFTkQgPSAiY29uc29sZT10dHlTMCBjb25zb2xlPXR0eSIKLVFCX09QVF9BUFBFTkQgPSAiLXZnYSBjaXJydXMgLXNob3ctY3Vyc29yIC11c2IgLWRldmljZSB1c2ItdGFibGV0IgorUUJfT1BUX0FQUEVORCA9ICItc2hvdy1jdXJzb3IgLXVzYiAtZGV2aWNlIHVzYi10YWJsZXQiCiAjIEFkZCB0aGUgJ3ZpcnRpby1ybmctcGNpJyBkZXZpY2Ugb3RoZXJ3aXNlIHRoZSBndWVzdCBtYXkgcnVuIG91dCBvZiBlbnRyb3B5CiBRQl9PUFRfQVBQRU5EICs9ICItb2JqZWN0IHJuZy1yYW5kb20sZmlsZW5hbWU9L2Rldi91cmFuZG9tLGlkPXJuZzAgLWRldmljZSB2aXJ0aW8tcm5nLXBjaSxybmc9cm5nMCIKZGlmZiAtLWdpdCBhL3Bva3kvbWV0YS9jb25mL21hY2hpbmUvaW5jbHVkZS9xZW11Ym9vdC14ODYuaW5jIGIvcG9reS9tZXRhL2NvbmYvbWFjaGluZS9pbmNsdWRlL3FlbXVib290LXg4Ni5pbmMKaW5kZXggMzkzMWIwZi4uNDk1NDE4ZiAxMDA2NDQKLS0tIGEvcG9reS9tZXRhL2NvbmYvbWFjaGluZS9pbmNsdWRlL3FlbXVib290LXg4Ni5pbmMKKysrIGIvcG9reS9tZXRhL2NvbmYvbWFjaGluZS9pbmNsdWRlL3FlbXVib290LXg4Ni5pbmMKQEAgLTksNyArOSw3IEBACiBRQl9BVURJT19EUlYgPSAiYWxzYSIKIFFCX0FVRElPX09QVCA9ICItc291bmRodyBhYzk3LGVzMTM3MCIKIFFCX0tFUk5FTF9DTURMSU5FX0FQUEVORCA9ICJ2Z2E9MCB1dmVzYWZiLm1vZGVfb3B0aW9uPSR7VVZFU0FfTU9ERX0gb3Byb2ZpbGUudGltZXI9MSB1dmVzYWZiLnRhc2tfdGltZW91dD0tMSIKLVFCX09QVF9BUFBFTkQgPSAiLXZnYSB2bXdhcmUgLXNob3ctY3Vyc29yIC11c2IgLWRldmljZSB1c2ItdGFibGV0IgorUUJfT1BUX0FQUEVORCA9ICItc2hvdy1jdXJzb3IgLXVzYiAtZGV2aWNlIHVzYi10YWJsZXQiCiAjIEFkZCB0aGUgJ3ZpcnRpby1ybmctcGNpJyBkZXZpY2Ugb3RoZXJ3aXNlIHRoZSBndWVzdCBtYXkgcnVuIG91dCBvZiBlbnRyb3B5CiBRQl9PUFRfQVBQRU5EICs9ICItb2JqZWN0IHJuZy1yYW5kb20sZmlsZW5hbWU9L2Rldi91cmFuZG9tLGlkPXJuZzAgLWRldmljZSB2aXJ0aW8tcm5nLXBjaSxybmc9cm5nMCIKIApkaWZmIC0tZ2l0IGEvcG9reS9tZXRhL2NvbmYvbWFjaGluZS9pbmNsdWRlL3Jpc2N2L3FlbXVyaXNjdi5pbmMgYi9wb2t5L21ldGEvY29uZi9tYWNoaW5lL2luY2x1ZGUvcmlzY3YvcWVtdXJpc2N2LmluYwppbmRleCBmMWNiNjI4Li5kZjM1ZjI4IDEwMDY0NAotLS0gYS9wb2t5L21ldGEvY29uZi9tYWNoaW5lL2luY2x1ZGUvcmlzY3YvcWVtdXJpc2N2LmluYworKysgYi9wb2t5L21ldGEvY29uZi9tYWNoaW5lL2luY2x1ZGUvcmlzY3YvcWVtdXJpc2N2LmluYwpAQCAtMTEsNyArMTEsOSBAQAogCiBTRVJJQUxfQ09OU09MRVMgPz0gIjExNTIwMDt0dHlTMCAxMTUyMDA7aHZjMCIKIAotSU1BR0VfRlNUWVBFU19hcHBlbmQgPSAiIGV4dDQiCitJTUFHRV9GU1RZUEVTICs9ICJleHQ0IHdpYy5xY293MiIKKworV0tTX0ZJTEUgPz0gInFlbXVyaXNjdi53a3MiCiAKIE1BQ0hJTkVfRVhUUkFfUlJFQ09NTUVORFMgKz0gIiBrZXJuZWwtbW9kdWxlcyIKIApAQCAtMjQsNyArMjYsNiBAQAogCiAjIHFlbXVib290IG9wdGlvbnMKIFFCX0tFUk5FTF9DTURMSU5FX0FQUEVORCA9ICJlYXJseWNvbj1zYmkiCi1RQl9NRU0gPSAiLW0gNTEyIgogUUJfTUFDSElORSA9ICItbWFjaGluZSB2aXJ0IgogUUJfREVGQVVMVF9CSU9TID0gImZ3X2p1bXAuZWxmIgogUUJfVEFQX09QVCA9ICItbmV0ZGV2IHRhcCxpZD1uZXQwLGlmbmFtZT1AVEFQQCxzY3JpcHQ9bm8sZG93bnNjcmlwdD1ubyIKZGlmZiAtLWdpdCBhL3Bva3kvbWV0YS9jb25mL21hY2hpbmUvaW5jbHVkZS9yaXNjdi90dW5lLXJpc2N2LmluYyBiL3Bva3kvbWV0YS9jb25mL21hY2hpbmUvaW5jbHVkZS9yaXNjdi90dW5lLXJpc2N2LmluYwppbmRleCAxZTNhMTA4Li4yNWQwNDYzIDEwMDY0NAotLS0gYS9wb2t5L21ldGEvY29uZi9tYWNoaW5lL2luY2x1ZGUvcmlzY3YvdHVuZS1yaXNjdi5pbmMKKysrIGIvcG9reS9tZXRhL2NvbmYvbWFjaGluZS9pbmNsdWRlL3Jpc2N2L3R1bmUtcmlzY3YuaW5jCkBAIC0zLDE2ICszLDE2IEBACiBUVU5FVkFMSURbcmlzY3Y2NF0gPSAiRW5hYmxlIDY0LWJpdCBSSVNDLVYgb3B0aW1pemF0aW9ucyIKIFRVTkVWQUxJRFtyaXNjdjMyXSA9ICJFbmFibGUgMzItYml0IFJJU0MtViBvcHRpbWl6YXRpb25zIgogCi1UVU5FVkFMSURbbGl0dGxlZW5kaWFuXSA9ICJMaXR0bGUgZW5kaWFuIG1vZGUiCitUVU5FVkFMSURbYmlnZW5kaWFuXSA9ICJCaWcgZW5kaWFuIG1vZGUiCiAKIEFWQUlMVFVORVMgKz0gInJpc2N2NjQgcmlzY3YzMiIKIAotVFVORV9GRUFUVVJFU190dW5lLXJpc2N2NjQgPSAicmlzY3Y2NCBsaXR0bGVlbmRpYW4iCitUVU5FX0ZFQVRVUkVTX3R1bmUtcmlzY3Y2NCA9ICJyaXNjdjY0IgogVFVORV9BUkNIX3R1bmUtcmlzY3Y2NCA9ICJyaXNjdjY0IgogVFVORV9QS0dBUkNIX3R1bmUtcmlzY3Y2NCA9ICJyaXNjdjY0IgogUEFDS0FHRV9FWFRSQV9BUkNIU190dW5lLXJpc2N2NjQgPSAicmlzY3Y2NCIKIAotVFVORV9GRUFUVVJFU190dW5lLXJpc2N2MzIgPSAicmlzY3YzMiBsaXR0bGVlbmRpYW4iCitUVU5FX0ZFQVRVUkVTX3R1bmUtcmlzY3YzMiA9ICJyaXNjdjMyIgogVFVORV9BUkNIX3R1bmUtcmlzY3YzMiA9ICJyaXNjdjMyIgogVFVORV9QS0dBUkNIX3R1bmUtcmlzY3YzMiA9ICJyaXNjdjMyIgogUEFDS0FHRV9FWFRSQV9BUkNIU190dW5lLXJpc2N2MzIgPSAicmlzY3YzMiIKZGlmZiAtLWdpdCBhL3Bva3kvbWV0YS9jb25mL21hY2hpbmUvaW5jbHVkZS90dW5lLWFybTExMzZqZi1zLmluYyBiL3Bva3kvbWV0YS9jb25mL21hY2hpbmUvaW5jbHVkZS90dW5lLWFybTExMzZqZi1zLmluYwppbmRleCBkODgzZWJhLi5iMjU5OTVkIDEwMDY0NAotLS0gYS9wb2t5L21ldGEvY29uZi9tYWNoaW5lL2luY2x1ZGUvdHVuZS1hcm0xMTM2amYtcy5pbmMKKysrIGIvcG9reS9tZXRhL2NvbmYvbWFjaGluZS9pbmNsdWRlL3R1bmUtYXJtMTEzNmpmLXMuaW5jCkBAIC02LDggKzYsMTEgQEAKIFRVTkVfQ0NBUkdTIC49ICIke0BiYi51dGlscy5jb250YWlucygnVFVORV9GRUFUVVJFUycsICdhcm0xMTM2amZzJywgJyAtbWNwdT1hcm0xMTM2amYtcycsICcnLCBkKX0iCiBNQUNISU5FT1ZFUlJJREVTID0uICIke0BiYi51dGlscy5jb250YWlucygnVFVORV9GRUFUVVJFUycsICdhcm0xMTM2amZzJywgJ2FybXY2OicsICcnICxkKX0iCiAKLUFWQUlMVFVORVMgKz0gImFybTExMzZqZnMiCitBVkFJTFRVTkVTICs9ICJhcm0xMTM2amZzIGFybTExMzZqZnNoZiIKIEFSTVBLR0FSQ0hfdHVuZS1hcm0xMTM2amZzID0gImFybTExMzZqZnMiCitBUk1QS0dBUkNIX3R1bmUtYXJtMTEzNmpmc2hmID0gImFybTExMzZqZnMiCiAjIG1jcHUgaXMgdXNlZCBzbyBkb24ndCB1c2UgYXJtdjYgYXMgd2UgZG9uJ3Qgd2FudCBtYXJjaAogVFVORV9GRUFUVVJFU190dW5lLWFybTExMzZqZnMgPSAiYXJtIGFybTExMzZqZnMiCitUVU5FX0ZFQVRVUkVTX3R1bmUtYXJtMTEzNmpmc2hmID0gIiR7VFVORV9GRUFUVVJFU190dW5lLWFybTExMzZqZnN9IGNhbGxjb252ZW50aW9uLWhhcmQiCiBQQUNLQUdFX0VYVFJBX0FSQ0hTX3R1bmUtYXJtMTEzNmpmcyA9ICIke1BBQ0tBR0VfRVhUUkFfQVJDSFNfdHVuZS1hcm12Nn0gYXJtMTEzNmpmcy12ZnAiCitQQUNLQUdFX0VYVFJBX0FSQ0hTX3R1bmUtYXJtMTEzNmpmc2hmID0gIiR7UEFDS0FHRV9FWFRSQV9BUkNIU190dW5lLWFybXY2aGZ9IGFybTExMzZqZnNoZi12ZnAiCmRpZmYgLS1naXQgYS9wb2t5L21ldGEvY29uZi9tYWNoaW5lL2luY2x1ZGUvdHVuZS1hcm0xMTc2anotcy5pbmMgYi9wb2t5L21ldGEvY29uZi9tYWNoaW5lL2luY2x1ZGUvdHVuZS1hcm0xMTc2anotcy5pbmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzc0MWU4MAotLS0gL2Rldi9udWxsCisrKyBiL3Bva3kvbWV0YS9jb25mL21hY2hpbmUvaW5jbHVkZS90dW5lLWFybTExNzZqei1zLmluYwpAQCAtMCwwICsxLDE3IEBACitERUZBVUxUVFVORSA/PSAiYXJtMTE3Nmp6cyIKKworcmVxdWlyZSBjb25mL21hY2hpbmUvaW5jbHVkZS9hcm0vYXJjaC1hcm12Ni5pbmMKKworVFVORVZBTElEW2FybTExNzZqenNdID0gIkVuYWJsZSBhcm0xMTc2anpzIHNwZWNpZmljIHByb2Nlc3NvciBvcHRpbWl6YXRpb25zIgorVFVORV9DQ0FSR1MgLj0gIiR7QGJiLnV0aWxzLmNvbnRhaW5zKCdUVU5FX0ZFQVRVUkVTJywgJ2FybTExNzZqenMnLCAnIC1tY3B1PWFybTExNzZqei1zJywgJycsIGQpfSIKK01BQ0hJTkVPVkVSUklERVMgPS4gIiR7QGJiLnV0aWxzLmNvbnRhaW5zKCdUVU5FX0ZFQVRVUkVTJywgJ2FybTExNzZqenMnLCAnYXJtdjY6JywgJycgLGQpfSIKKworQVZBSUxUVU5FUyArPSAiYXJtMTE3Nmp6cyIKK0FSTVBLR0FSQ0hfdHVuZS1hcm0xMTc2anpzID0gImFybTExNzZqenMiCitUVU5FX0ZFQVRVUkVTX3R1bmUtYXJtMTE3Nmp6cyA9ICJhcm0gdGh1bWIgYXJtMTE3Nmp6cyIKK1BBQ0tBR0VfRVhUUkFfQVJDSFNfdHVuZS1hcm0xMTc2anpzID0gIiR7UEFDS0FHRV9FWFRSQV9BUkNIU190dW5lLWFybXY2dGItbm92ZnB9IGFybTExNzZqenMgYXJtMTE3Nmp6c3QiCisKK0FWQUlMVFVORVMgKz0gImFybTExNzZqenMtYmUiCitBUk1QS0dBUkNIX3R1bmUtYXJtMTE3Nmp6cy1iZSA9ICIke0FSTVBLR0FSQ0hfdHVuZS1hcm0xMTc2anpzfSIKK1RVTkVfRkVBVFVSRVNfdHVuZS1hcm0xMTc2anpzLWJlID0gIiR7VFVORV9GRUFUVVJFU190dW5lLWFybTExNzZqenN9IGJpZ2VuZGlhbiIKK1BBQ0tBR0VfRVhUUkFfQVJDSFNfdHVuZS1hcm0xMTc2anpzLWJlID0gIiR7UEFDS0FHRV9FWFRSQV9BUkNIU190dW5lLWFybXY2dGItbm92ZnB9IGFybTExNzZqenNiIGFybTExNzZqenN0YiIKZGlmZiAtLWdpdCBhL3Bva3kvbWV0YS9jb25mL21hY2hpbmUvaW5jbHVkZS90dW5lLWVwOTMxMi5pbmMgYi9wb2t5L21ldGEvY29uZi9tYWNoaW5lL2luY2x1ZGUvdHVuZS1lcDkzMTIuaW5jCmluZGV4IDRkOTI4MjEuLmJlMjBlYjMgMTAwNjQ0Ci0tLSBhL3Bva3kvbWV0YS9jb25mL21hY2hpbmUvaW5jbHVkZS90dW5lLWVwOTMxMi5pbmMKKysrIGIvcG9reS9tZXRhL2NvbmYvbWFjaGluZS9pbmNsdWRlL3R1bmUtZXA5MzEyLmluYwpAQCAtMiw3ICsyLDcgQEAKIAogcmVxdWlyZSBjb25mL21hY2hpbmUvaW5jbHVkZS9hcm0vYXJjaC1hcm12NC5pbmMKIAotVFVORVZBTElEW2VwOTMxMl0gPSAiRW5hYmxlIEludGVsIFBYQTI3eCBzcGVjaWZpYyBwcm9jZXNzb3Igb3B0aW1pemF0aW9ucyIKK1RVTkVWQUxJRFtlcDkzMTJdID0gIkVuYWJsZSBDaXJydXMgTG9naWMgRVA5MzEyIHNwZWNpZmljIHByb2Nlc3NvciBvcHRpbWl6YXRpb25zIgogVFVORV9DQ0FSR1MgLj0gIiR7QGJiLnV0aWxzLmNvbnRhaW5zKCdUVU5FX0ZFQVRVUkVTJywgJ2VwOTMxMicsICcgLW1hcmNoPWVwOTMxMiAtbWNwdT1lcDkzMTInLCAnJywgZCl9IgogTUFDSElORU9WRVJSSURFUyA9LiAiJHtAYmIudXRpbHMuY29udGFpbnMoJ1RVTkVfRkVBVFVSRVMnLCAnZXA5MzEyJywgJ2FybXY0OicsICcnICxkKX0iCiAKZGlmZiAtLWdpdCBhL3Bva3kvbWV0YS9jb25mL21hY2hpbmUvaW5jbHVkZS90dW5lLXBvd2VyNS5pbmMgYi9wb2t5L21ldGEvY29uZi9tYWNoaW5lL2luY2x1ZGUvdHVuZS1wb3dlcjUuaW5jCmluZGV4IDM5NTAxYmQuLjQ4YzMzZmIgMTAwNjQ0Ci0tLSBhL3Bva3kvbWV0YS9jb25mL21hY2hpbmUvaW5jbHVkZS90dW5lLXBvd2VyNS5pbmMKKysrIGIvcG9reS9tZXRhL2NvbmYvbWFjaGluZS9pbmNsdWRlL3R1bmUtcG93ZXI1LmluYwpAQCAtNiwxMiArNiwxMiBAQAogVFVORV9DQ0FSR1MgLj0gIiR7QGJiLnV0aWxzLmNvbnRhaW5zKCdUVU5FX0ZFQVRVUkVTJywgJ3Bvd2VyNScsICcgLW1jcHU9cG93ZXI1JywgJycsIGQpfSIKIAogQVZBSUxUVU5FUyArPSAicHBjcDUgcHBjNjRwNSIKLVRVTkVfRkVBVFVSRVNfdHVuZS1wcGNwNSA9ICJtMzIgZnB1LWhhcmQgcG93ZXI1IGFsdGl2ZWMiCitUVU5FX0ZFQVRVUkVTX3R1bmUtcHBjcDUgPSAibTMyIGZwdS1oYXJkIHBvd2VyNSBhbHRpdmVjIGJpZ2VuZGlhbiIKIEJBU0VfTElCX3R1bmUtcHBjcDUgPSAibGliIgogVFVORV9QS0dBUkNIX3R1bmUtcHBjcDUgPSAicHBjcDUiCiBQQUNLQUdFX0VYVFJBX0FSQ0hTX3R1bmUtcHBjcDUgPSAiJHtQQUNLQUdFX0VYVFJBX0FSQ0hTX3R1bmUtcG93ZXJwY30gcHBjcDUiCiAKLVRVTkVfRkVBVFVSRVNfdHVuZS1wcGM2NHA1ID0gIm02NCBmcHUtaGFyZCBwb3dlcjUgYWx0aXZlYyIKK1RVTkVfRkVBVFVSRVNfdHVuZS1wcGM2NHA1ID0gIm02NCBmcHUtaGFyZCBwb3dlcjUgYWx0aXZlYyBiaWdlbmRpYW4iCiBCQVNFX0xJQl90dW5lLXBwYzY0cDUgPSAibGliNjQiCiBUVU5FX1BLR0FSQ0hfdHVuZS1wcGM2NHA1ID0gInBwYzY0cDUiCiBQQUNLQUdFX0VYVFJBX0FSQ0hTX3R1bmUtcHBjNjRwNSA9ICIke1BBQ0tBR0VfRVhUUkFfQVJDSFNfdHVuZS1wb3dlcnBjNjR9IHBwYzY0cDUiCmRpZmYgLS1naXQgYS9wb2t5L21ldGEvY29uZi9tYWNoaW5lL2luY2x1ZGUvdHVuZS1wb3dlcjYuaW5jIGIvcG9reS9tZXRhL2NvbmYvbWFjaGluZS9pbmNsdWRlL3R1bmUtcG93ZXI2LmluYwppbmRleCAxZDVlOGVjLi5iNzA4NjYwIDEwMDY0NAotLS0gYS9wb2t5L21ldGEvY29uZi9tYWNoaW5lL2luY2x1ZGUvdHVuZS1wb3dlcjYuaW5jCisrKyBiL3Bva3kvbWV0YS9jb25mL21hY2hpbmUvaW5jbHVkZS90dW5lLXBvd2VyNi5pbmMKQEAgLTYsMTIgKzYsMTIgQEAKIFRVTkVfQ0NBUkdTIC49ICIke0BiYi51dGlscy5jb250YWlucygnVFVORV9GRUFUVVJFUycsICdwb3dlcjYnLCAnIC1tY3B1PXBvd2VyNicsICcnLCBkKX0iCiAKIEFWQUlMVFVORVMgKz0gInBwY3A2IHBwYzY0cDYiCi1UVU5FX0ZFQVRVUkVTX3R1bmUtcHBjcDYgPSAibTMyIGZwdS1oYXJkIHBvd2VyNiBhbHRpdmVjIgorVFVORV9GRUFUVVJFU190dW5lLXBwY3A2ID0gIm0zMiBmcHUtaGFyZCBwb3dlcjYgYWx0aXZlYyBiaWdlbmRpYW4iCiBCQVNFX0xJQl90dW5lLXBwY3A2ID0gImxpYiIKIFRVTkVfUEtHQVJDSF90dW5lLXBwY3A2ID0gInBwY3A2IgogUEFDS0FHRV9FWFRSQV9BUkNIU190dW5lLXBwY3A2ID0gIiR7UEFDS0FHRV9FWFRSQV9BUkNIU190dW5lLXBvd2VycGN9IHBwY3A2IgogCi1UVU5FX0ZFQVRVUkVTX3R1bmUtcHBjNjRwNiA9ICJtNjQgZnB1LWhhcmQgcG93ZXI2IGFsdGl2ZWMiCitUVU5FX0ZFQVRVUkVTX3R1bmUtcHBjNjRwNiA9ICJtNjQgZnB1LWhhcmQgcG93ZXI2IGFsdGl2ZWMgYmlnZW5kaWFuIgogQkFTRV9MSUJfdHVuZS1wcGM2NHA2ID0gImxpYjY0IgogVFVORV9QS0dBUkNIX3R1bmUtcHBjNjRwNiA9ICJwcGM2NHA2IgogUEFDS0FHRV9FWFRSQV9BUkNIU190dW5lLXBwYzY0cDYgPSAiJHtQQUNLQUdFX0VYVFJBX0FSQ0hTX3R1bmUtcG93ZXJwYzY0fSBwcGM2NHA2IgpkaWZmIC0tZ2l0IGEvcG9reS9tZXRhL2NvbmYvbWFjaGluZS9pbmNsdWRlL3R1bmUtcG93ZXI3LmluYyBiL3Bva3kvbWV0YS9jb25mL21hY2hpbmUvaW5jbHVkZS90dW5lLXBvd2VyNy5pbmMKaW5kZXggOGYzZjAzNy4uZTk3NmNjMCAxMDA2NDQKLS0tIGEvcG9reS9tZXRhL2NvbmYvbWFjaGluZS9pbmNsdWRlL3R1bmUtcG93ZXI3LmluYworKysgYi9wb2t5L21ldGEvY29uZi9tYWNoaW5lL2luY2x1ZGUvdHVuZS1wb3dlcjcuaW5jCkBAIC02LDEyICs2LDEyIEBACiBUVU5FX0NDQVJHUyAuPSAiJHtAYmIudXRpbHMuY29udGFpbnMoJ1RVTkVfRkVBVFVSRVMnLCAncG93ZXI3JywgJyAtbWNwdT1wb3dlcjcnLCAnJywgZCl9IgogCiBBVkFJTFRVTkVTICs9ICJwcGNwNyBwcGM2NHA3IgotVFVORV9GRUFUVVJFU190dW5lLXBwY3A3ID0gIm0zMiBmcHUtaGFyZCBwb3dlcjcgYWx0aXZlYyIKK1RVTkVfRkVBVFVSRVNfdHVuZS1wcGNwNyA9ICJtMzIgZnB1LWhhcmQgcG93ZXI3IGFsdGl2ZWMgYmlnZW5kaWFuIgogQkFTRV9MSUJfdHVuZS1wcGNwNyA9ICJsaWIiCiBUVU5FX1BLR0FSQ0hfdHVuZS1wcGNwNyA9ICJwcGNwNyIKIFBBQ0tBR0VfRVhUUkFfQVJDSFNfdHVuZS1wcGNwNyA9ICIke1BBQ0tBR0VfRVhUUkFfQVJDSFNfdHVuZS1wb3dlcnBjfSBwcGNwNyIKIAotVFVORV9GRUFUVVJFU190dW5lLXBwYzY0cDcgPSAibTY0IGZwdS1oYXJkIHBvd2VyNyBhbHRpdmVjIgorVFVORV9GRUFUVVJFU190dW5lLXBwYzY0cDcgPSAibTY0IGZwdS1oYXJkIHBvd2VyNyBhbHRpdmVjIGJpZ2VuZGlhbiIKIEJBU0VfTElCX3R1bmUtcHBjNjRwNyA9ICJsaWI2NCIKIFRVTkVfUEtHQVJDSF90dW5lLXBwYzY0cDcgPSAicHBjNjRwNyIKIFBBQ0tBR0VfRVhUUkFfQVJDSFNfdHVuZS1wcGM2NHA3ID0gIiR7UEFDS0FHRV9FWFRSQV9BUkNIU190dW5lLXBvd2VycGM2NH0gcHBjNjRwNyIKZGlmZiAtLWdpdCBhL3Bva3kvbWV0YS9jb25mL21hY2hpbmUvaW5jbHVkZS90dW5lLXBwYzQ3Ni5pbmMgYi9wb2t5L21ldGEvY29uZi9tYWNoaW5lL2luY2x1ZGUvdHVuZS1wcGM0NzYuaW5jCmluZGV4IGQwMDExZmYuLjMxZWVjYzQgMTAwNjQ0Ci0tLSBhL3Bva3kvbWV0YS9jb25mL21hY2hpbmUvaW5jbHVkZS90dW5lLXBwYzQ3Ni5pbmMKKysrIGIvcG9reS9tZXRhL2NvbmYvbWFjaGluZS9pbmNsdWRlL3R1bmUtcHBjNDc2LmluYwpAQCAtNiw3ICs2LDcgQEAKIFRVTkVfQ0NBUkdTIC49ICIke0BiYi51dGlscy5jb250YWlucygnVFVORV9GRUFUVVJFUycsICdwcGM0NzYnLCAnIC1tY3B1PTQ3NicsICcnLCBkKX0iCiAKIEFWQUlMVFVORVMgKz0gInBwYzQ3NiIKLVRVTkVfRkVBVFVSRVNfdHVuZS1wcGM0NzYgPSAibTMyIGZwdS1oYXJkIHBwYzQ3NiIKK1RVTkVfRkVBVFVSRVNfdHVuZS1wcGM0NzYgPSAibTMyIGZwdS1oYXJkIHBwYzQ3NiBiaWdlbmRpYW4iCiBUVU5FX1BLR0FSQ0hfdHVuZS1wcGM0NzYgPSAicHBjNDc2IgogUEFDS0FHRV9FWFRSQV9BUkNIU190dW5lLXBwYzQ3NiA9ICIke1BBQ0tBR0VfRVhUUkFfQVJDSFNfdHVuZS1wb3dlcnBjfSBwcGM0NzYiCiAKZGlmZiAtLWdpdCBhL3Bva3kvbWV0YS9jb25mL21hY2hpbmUvaW5jbHVkZS90dW5lLXBwYzYwM2UuaW5jIGIvcG9reS9tZXRhL2NvbmYvbWFjaGluZS9pbmNsdWRlL3R1bmUtcHBjNjAzZS5pbmMKaW5kZXggMTNmNjBkZC4uYjExMGYxMyAxMDA2NDQKLS0tIGEvcG9reS9tZXRhL2NvbmYvbWFjaGluZS9pbmNsdWRlL3R1bmUtcHBjNjAzZS5pbmMKKysrIGIvcG9reS9tZXRhL2NvbmYvbWFjaGluZS9pbmNsdWRlL3R1bmUtcHBjNjAzZS5pbmMKQEAgLTYsNyArNiw3IEBACiBUVU5FX0NDQVJHUyAuPSAiJHtAYmIudXRpbHMuY29udGFpbnMoJ1RVTkVfRkVBVFVSRVMnLCAncHBjNjAzZScsICcgLW1jcHU9NjAzZScsICcnLCBkKX0iCiAKIEFWQUlMVFVORVMgKz0gInBwYzYwM2UiCi1UVU5FX0ZFQVRVUkVTX3R1bmUtcHBjNjAzZSA9ICJtMzIgZnB1LWhhcmQgcHBjNjAzZSIKK1RVTkVfRkVBVFVSRVNfdHVuZS1wcGM2MDNlID0gIm0zMiBmcHUtaGFyZCBwcGM2MDNlIGJpZ2VuZGlhbiIKIFRVTkVfUEtHQVJDSF90dW5lLXBwYzYwM2UgPSAicHBjNjAzZSIKIFBBQ0tBR0VfRVhUUkFfQVJDSFNfdHVuZS1wcGM2MDNlID0gIiR7UEFDS0FHRV9FWFRSQV9BUkNIU190dW5lLXBvd2VycGN9IHBwYzYwM2UiCiAKZGlmZiAtLWdpdCBhL3Bva3kvbWV0YS9jb25mL21hY2hpbmUvaW5jbHVkZS90dW5lLXBwYzc0MDAuaW5jIGIvcG9reS9tZXRhL2NvbmYvbWFjaGluZS9pbmNsdWRlL3R1bmUtcHBjNzQwMC5pbmMKaW5kZXggNDI1ZThiZC4uOTJkOTAyOSAxMDA2NDQKLS0tIGEvcG9reS9tZXRhL2NvbmYvbWFjaGluZS9pbmNsdWRlL3R1bmUtcHBjNzQwMC5pbmMKKysrIGIvcG9reS9tZXRhL2NvbmYvbWFjaGluZS9pbmNsdWRlL3R1bmUtcHBjNzQwMC5pbmMKQEAgLTYsNyArNiw3IEBACiBUVU5FX0NDQVJHUyAuPSAiJHtAYmIudXRpbHMuY29udGFpbnMoJ1RVTkVfRkVBVFVSRVMnLCAncHBjNzQwMCcsICcgLW1jcHU9NzQwMCAtbW5vLXNwZScsICcnLCBkKX0iCiAKIEFWQUlMVFVORVMgKz0gInBwYzc0MDAiCi1UVU5FX0ZFQVRVUkVTX3R1bmUtcHBjNzQwMCA9ICJtMzIgZnB1LWhhcmQgcHBjNzQwMCBhbHRpdmVjIgorVFVORV9GRUFUVVJFU190dW5lLXBwYzc0MDAgPSAibTMyIGZwdS1oYXJkIHBwYzc0MDAgYWx0aXZlYyBiaWdlbmRpYW4iCiBUVU5FX1BLR0FSQ0hfdHVuZS1wcGM3NDAwID0gInBwYzc0MDAiCiBQQUNLQUdFX0VYVFJBX0FSQ0hTX3R1bmUtcHBjNzQwMCA9ICIke1BBQ0tBR0VfRVhUUkFfQVJDSFNfdHVuZS1wb3dlcnBjfSBwcGM3NDAwIgogCmRpZmYgLS1naXQgYS9wb2t5L21ldGEvY29uZi9tYWNoaW5lL2luY2x1ZGUvdHVuZS1wcGNlMzAwYzIuaW5jIGIvcG9reS9tZXRhL2NvbmYvbWFjaGluZS9pbmNsdWRlL3R1bmUtcHBjZTMwMGMyLmluYwppbmRleCBhZjIxZjYwLi42YWRlYjRiIDEwMDY0NAotLS0gYS9wb2t5L21ldGEvY29uZi9tYWNoaW5lL2luY2x1ZGUvdHVuZS1wcGNlMzAwYzIuaW5jCisrKyBiL3Bva3kvbWV0YS9jb25mL21hY2hpbmUvaW5jbHVkZS90dW5lLXBwY2UzMDBjMi5pbmMKQEAgLTYsNiArNiw2IEBACiBUVU5FX0NDQVJHUyAuPSAiJHtAYmIudXRpbHMuY29udGFpbnMoJ1RVTkVfRkVBVFVSRVMnLCAncHBjZTMwMGMyJywgJyAtbWNwdT1lMzAwYzInLCAnJywgZCl9IgogCiBBVkFJTFRVTkVTICs9ICJwcGNlMzAwYzIiCi1UVU5FX0ZFQVRVUkVTX3R1bmUtcHBjZTMwMGMyID0gIm0zMiBmcHUtc29mdCBwcGNlMzAwYzIiCitUVU5FX0ZFQVRVUkVTX3R1bmUtcHBjZTMwMGMyID0gIm0zMiBmcHUtc29mdCBwcGNlMzAwYzIgYmlnZW5kaWFuIgogVFVORV9QS0dBUkNIX3R1bmUtcHBjZTMwMGMyID0gInBwY2UzMDBjMiIKIFBBQ0tBR0VfRVhUUkFfQVJDSFNfdHVuZS1wcGNlMzAwYzIgPSAiJHtQQUNLQUdFX0VYVFJBX0FSQ0hTX3R1bmUtcG93ZXJwYy1uZn0gcHBjZTMwMGMyIgpkaWZmIC0tZ2l0IGEvcG9reS9tZXRhL2NvbmYvbWFjaGluZS9pbmNsdWRlL3R1bmUtcHBjZTUwMC5pbmMgYi9wb2t5L21ldGEvY29uZi9tYWNoaW5lL2luY2x1ZGUvdHVuZS1wcGNlNTAwLmluYwppbmRleCA4OWVjM2YzLi5hYmY4MWI5IDEwMDY0NAotLS0gYS9wb2t5L21ldGEvY29uZi9tYWNoaW5lL2luY2x1ZGUvdHVuZS1wcGNlNTAwLmluYworKysgYi9wb2t5L21ldGEvY29uZi9tYWNoaW5lL2luY2x1ZGUvdHVuZS1wcGNlNTAwLmluYwpAQCAtMTUsNiArMTUsNiBAQAogQUJJRVhURU5TSU9OIC49ICIke1NQRUFCSUVYVEVOU0lPTn0iCiAKIEFWQUlMVFVORVMgKz0gInBwY2U1MDAiCi1UVU5FX0ZFQVRVUkVTX3R1bmUtcHBjZTUwMCA9ICJtMzIgc3BlIHBwY2U1MDAiCitUVU5FX0ZFQVRVUkVTX3R1bmUtcHBjZTUwMCA9ICJtMzIgc3BlIHBwY2U1MDAgYmlnZW5kaWFuIgogVFVORV9QS0dBUkNIX3R1bmUtcHBjZTUwMCA9ICJwcGNlNTAwIgogUEFDS0FHRV9FWFRSQV9BUkNIU190dW5lLXBwY2U1MDAgPSAicHBjZTUwMCIKZGlmZiAtLWdpdCBhL3Bva3kvbWV0YS9jb25mL21hY2hpbmUvaW5jbHVkZS90dW5lLXBwY2U1MDBtYy5pbmMgYi9wb2t5L21ldGEvY29uZi9tYWNoaW5lL2luY2x1ZGUvdHVuZS1wcGNlNTAwbWMuaW5jCmluZGV4IGJjMjZhMGYuLjlmOGExNzIgMTAwNjQ0Ci0tLSBhL3Bva3kvbWV0YS9jb25mL21hY2hpbmUvaW5jbHVkZS90dW5lLXBwY2U1MDBtYy5pbmMKKysrIGIvcG9reS9tZXRhL2NvbmYvbWFjaGluZS9pbmNsdWRlL3R1bmUtcHBjZTUwMG1jLmluYwpAQCAtNiw3ICs2LDcgQEAKIFRVTkVfQ0NBUkdTIC49ICIke0BiYi51dGlscy5jb250YWlucygnVFVORV9GRUFUVVJFUycsICdwcGNlNTAwbWMnLCAnIC1tY3B1PWU1MDBtYycsICcnLCBkKX0iCiAKIEFWQUlMVFVORVMgKz0gInBwY2U1MDBtYyIKLVRVTkVfRkVBVFVSRVNfdHVuZS1wcGNlNTAwbWMgPSAibTMyIGZwdS1oYXJkIHBwY2U1MDBtYyIKK1RVTkVfRkVBVFVSRVNfdHVuZS1wcGNlNTAwbWMgPSAibTMyIGZwdS1oYXJkIHBwY2U1MDBtYyBiaWdlbmRpYW4iCiBUVU5FX1BLR0FSQ0hfdHVuZS1wcGNlNTAwbWMgPSAicHBjZTUwMG1jIgogUEFDS0FHRV9FWFRSQV9BUkNIU190dW5lLXBwY2U1MDBtYyA9ICIke1BBQ0tBR0VfRVhUUkFfQVJDSFNfdHVuZS1wb3dlcnBjfSBwcGNlNTAwbWMiCiAKZGlmZiAtLWdpdCBhL3Bva3kvbWV0YS9jb25mL21hY2hpbmUvaW5jbHVkZS90dW5lLXBwY2U1MDB2Mi5pbmMgYi9wb2t5L21ldGEvY29uZi9tYWNoaW5lL2luY2x1ZGUvdHVuZS1wcGNlNTAwdjIuaW5jCmluZGV4IGQzMThiYmEuLmY2YzdjMTcgMTAwNjQ0Ci0tLSBhL3Bva3kvbWV0YS9jb25mL21hY2hpbmUvaW5jbHVkZS90dW5lLXBwY2U1MDB2Mi5pbmMKKysrIGIvcG9reS9tZXRhL2NvbmYvbWFjaGluZS9pbmNsdWRlL3R1bmUtcHBjZTUwMHYyLmluYwpAQCAtMTUsNiArMTUsNiBAQAogQUJJRVhURU5TSU9OIC49ICIke1NQRUFCSUVYVEVOU0lPTn0iCiAKIEFWQUlMVFVORVMgKz0gInBwY2U1MDB2MiIKLVRVTkVfRkVBVFVSRVNfdHVuZS1wcGNlNTAwdjIgPSAibTMyIHBwY2U1MDB2MiIKK1RVTkVfRkVBVFVSRVNfdHVuZS1wcGNlNTAwdjIgPSAibTMyIHBwY2U1MDB2MiBiaWdlbmRpYW4iCiBUVU5FX1BLR0FSQ0hfdHVuZS1wcGNlNTAwdjIgPSAicHBjZTUwMHYyIgogUEFDS0FHRV9FWFRSQV9BUkNIU190dW5lLXBwY2U1MDB2MiA9ICJwcGNlNTAwdjIiCmRpZmYgLS1naXQgYS9wb2t5L21ldGEvY29uZi9tYWNoaW5lL2luY2x1ZGUvdHVuZS1wcGNlNTUwMC5pbmMgYi9wb2t5L21ldGEvY29uZi9tYWNoaW5lL2luY2x1ZGUvdHVuZS1wcGNlNTUwMC5pbmMKaW5kZXggY2ViYjI0NC4uYWNjNmE1MCAxMDA2NDQKLS0tIGEvcG9reS9tZXRhL2NvbmYvbWFjaGluZS9pbmNsdWRlL3R1bmUtcHBjZTU1MDAuaW5jCisrKyBiL3Bva3kvbWV0YS9jb25mL21hY2hpbmUvaW5jbHVkZS90dW5lLXBwY2U1NTAwLmluYwpAQCAtNiwxMiArNiwxMiBAQAogVFVORV9DQ0FSR1MgLj0gIiR7QGJiLnV0aWxzLmNvbnRhaW5zKCdUVU5FX0ZFQVRVUkVTJywgJ2U1NTAwJywgJyAtbWNwdT1lNTUwMCcsICcnLCBkKX0iCiAKIEFWQUlMVFVORVMgKz0gInBwY2U1NTAwIHBwYzY0ZTU1MDAiCi1UVU5FX0ZFQVRVUkVTX3R1bmUtcHBjZTU1MDAgPSAibTMyIGZwdS1oYXJkIGU1NTAwIgorVFVORV9GRUFUVVJFU190dW5lLXBwY2U1NTAwID0gIm0zMiBmcHUtaGFyZCBlNTUwMCBiaWdlbmRpYW4iCiBCQVNFX0xJQl90dW5lLXBwY2U1NTAwID0gImxpYiIKIFRVTkVfUEtHQVJDSF90dW5lLXBwY2U1NTAwID0gInBwY2U1NTAwIgogUEFDS0FHRV9FWFRSQV9BUkNIU190dW5lLXBwY2U1NTAwID0gIiR7UEFDS0FHRV9FWFRSQV9BUkNIU190dW5lLXBvd2VycGN9IHBwY2U1NTAwIgogCi1UVU5FX0ZFQVRVUkVTX3R1bmUtcHBjNjRlNTUwMCA9ICJtNjQgZnB1LWhhcmQgZTU1MDAiCitUVU5FX0ZFQVRVUkVTX3R1bmUtcHBjNjRlNTUwMCA9ICJtNjQgZnB1LWhhcmQgZTU1MDAgYmlnZW5kaWFuIgogQkFTRV9MSUJfdHVuZS1wcGM2NGU1NTAwID0gImxpYjY0IgogVFVORV9QS0dBUkNIX3R1bmUtcHBjNjRlNTUwMCA9ICJwcGM2NGU1NTAwIgogUEFDS0FHRV9FWFRSQV9BUkNIU190dW5lLXBwYzY0ZTU1MDAgPSAiJHtQQUNLQUdFX0VYVFJBX0FSQ0hTX3R1bmUtcG93ZXJwYzY0fSBwcGM2NGU1NTAwIgpkaWZmIC0tZ2l0IGEvcG9reS9tZXRhL2NvbmYvbWFjaGluZS9pbmNsdWRlL3R1bmUtcHBjZTY1MDAuaW5jIGIvcG9reS9tZXRhL2NvbmYvbWFjaGluZS9pbmNsdWRlL3R1bmUtcHBjZTY1MDAuaW5jCmluZGV4IDVkYjdlNzYuLmQxMmQyMTggMTAwNjQ0Ci0tLSBhL3Bva3kvbWV0YS9jb25mL21hY2hpbmUvaW5jbHVkZS90dW5lLXBwY2U2NTAwLmluYworKysgYi9wb2t5L21ldGEvY29uZi9tYWNoaW5lL2luY2x1ZGUvdHVuZS1wcGNlNjUwMC5pbmMKQEAgLTYsMTIgKzYsMTIgQEAKIFRVTkVfQ0NBUkdTIC49ICIke0BiYi51dGlscy5jb250YWlucygnVFVORV9GRUFUVVJFUycsICdlNjUwMCcsICcgLW1jcHU9ZTY1MDAnLCAnJywgZCl9IgogCiBBVkFJTFRVTkVTICs9ICJwcGNlNjUwMCBwcGM2NGU2NTAwIgotVFVORV9GRUFUVVJFU190dW5lLXBwY2U2NTAwID0gIm0zMiBmcHUtaGFyZCBlNjUwMCBhbHRpdmVjIgorVFVORV9GRUFUVVJFU190dW5lLXBwY2U2NTAwID0gIm0zMiBmcHUtaGFyZCBlNjUwMCBhbHRpdmVjIGJpZ2VuZGlhbiIKIEJBU0VfTElCX3R1bmUtcHBjZTY1MDAgPSAibGliIgogVFVORV9QS0dBUkNIX3R1bmUtcHBjZTY1MDAgPSAicHBjZTY1MDAiCiBQQUNLQUdFX0VYVFJBX0FSQ0hTX3R1bmUtcHBjZTY1MDAgPSAiJHtQQUNLQUdFX0VYVFJBX0FSQ0hTX3R1bmUtcG93ZXJwY30gcHBjZTY1MDAiCiAKLVRVTkVfRkVBVFVSRVNfdHVuZS1wcGM2NGU2NTAwID0gIm02NCBmcHUtaGFyZCBlNjUwMCBhbHRpdmVjIgorVFVORV9GRUFUVVJFU190dW5lLXBwYzY0ZTY1MDAgPSAibTY0IGZwdS1oYXJkIGU2NTAwIGFsdGl2ZWMgYmlnZW5kaWFuIgogQkFTRV9MSUJfdHVuZS1wcGM2NGU2NTAwID0gImxpYjY0IgogVFVORV9QS0dBUkNIX3R1bmUtcHBjNjRlNjUwMCA9ICJwcGM2NGU2NTAwIgogUEFDS0FHRV9FWFRSQV9BUkNIU190dW5lLXBwYzY0ZTY1MDAgPSAiJHtQQUNLQUdFX0VYVFJBX0FSQ0hTX3R1bmUtcG93ZXJwYzY0fSBwcGM2NGU2NTAwIgpkaWZmIC0tZ2l0IGEvcG9reS9tZXRhL2NvbmYvbWFjaGluZS9pbmNsdWRlL3g4Ni1iYXNlLmluYyBiL3Bva3kvbWV0YS9jb25mL21hY2hpbmUvaW5jbHVkZS94ODYtYmFzZS5pbmMKaW5kZXggNjg2ZjkzOC4uMDIyN2YzYyAxMDA2NDQKLS0tIGEvcG9reS9tZXRhL2NvbmYvbWFjaGluZS9pbmNsdWRlL3g4Ni1iYXNlLmluYworKysgYi9wb2t5L21ldGEvY29uZi9tYWNoaW5lL2luY2x1ZGUveDg2LWJhc2UuaW5jCkBAIC0xOCw3ICsxOCw3IEBACiAjIGtlcm5lbC1yZWxhdGVkIHZhcmlhYmxlcwogIwogUFJFRkVSUkVEX1BST1ZJREVSX3ZpcnR1YWwva2VybmVsID8/PSAibGludXgteW9jdG8iCi1QUkVGRVJSRURfVkVSU0lPTl9saW51eC15b2N0byA/Pz0gIjUuMCUiCitQUkVGRVJSRURfVkVSU0lPTl9saW51eC15b2N0byA/Pz0gIjUuMiUiCiAKICMKICMgWFNFUlZFUiBzdWJjb21wb25lbnRzLCB1c2VkIHRvIGJ1aWxkIHRoZSBYU0VSVkVSIHZhcmlhYmxlCmRpZmYgLS1naXQgYS9wb2t5L21ldGEvY29uZi9tYWNoaW5lL3FlbXVhcm0uY29uZiBiL3Bva3kvbWV0YS9jb25mL21hY2hpbmUvcWVtdWFybS5jb25mCmluZGV4IDBhMmM5OTUuLjI2ZjQwYjEgMTAwNjQ0Ci0tLSBhL3Bva3kvbWV0YS9jb25mL21hY2hpbmUvcWVtdWFybS5jb25mCisrKyBiL3Bva3kvbWV0YS9jb25mL21hY2hpbmUvcWVtdWFybS5jb25mCkBAIC0xMSw3ICsxMSw2IEBACiAKICMgRm9yIHJ1bnFlbXUKIFFCX1NZU1RFTV9OQU1FID0gInFlbXUtc3lzdGVtLWFybSIKLVFCX01FTSA9ICItbSA1MTIiCiBRQl9NQUNISU5FID0gIi1tYWNoaW5lIHZpcnQiCiBRQl9DUFUgPSAiLWNwdSBjb3J0ZXgtYTE1IgogIyBTdGFuZGFyZCBTZXJpYWwgY29uc29sZQpkaWZmIC0tZ2l0IGEvcG9reS9tZXRhL2NvbmYvbWFjaGluZS9xZW11YXJtNjQuY29uZiBiL3Bva3kvbWV0YS9jb25mL21hY2hpbmUvcWVtdWFybTY0LmNvbmYKaW5kZXggMzUzYWM5Mi4uZWMyYTg4NyAxMDA2NDQKLS0tIGEvcG9reS9tZXRhL2NvbmYvbWFjaGluZS9xZW11YXJtNjQuY29uZgorKysgYi9wb2t5L21ldGEvY29uZi9tYWNoaW5lL3FlbXVhcm02NC5jb25mCkBAIC0xMSw3ICsxMSw2IEBACiAKICMgRm9yIHJ1bnFlbXUKIFFCX1NZU1RFTV9OQU1FID0gInFlbXUtc3lzdGVtLWFhcmNoNjQiCi1RQl9NRU0gPSAiLW0gNTEyIgogUUJfTUFDSElORSA9ICItbWFjaGluZSB2aXJ0IgogUUJfQ1BVID0gIi1jcHUgY29ydGV4LWE1NyIKIFFCX0NQVV9LVk0gPSAiLWNwdSBob3N0IgpkaWZmIC0tZ2l0IGEvcG9reS9tZXRhL2NvbmYvbWFjaGluZS9xZW11YXJtdjUuY29uZiBiL3Bva3kvbWV0YS9jb25mL21hY2hpbmUvcWVtdWFybXY1LmNvbmYKaW5kZXggMWMyMWQzMy4uZmI0Nzg5ZiAxMDA2NDQKLS0tIGEvcG9reS9tZXRhL2NvbmYvbWFjaGluZS9xZW11YXJtdjUuY29uZgorKysgYi9wb2t5L21ldGEvY29uZi9tYWNoaW5lL3FlbXVhcm12NS5jb25mCkBAIC0xNyw3ICsxNyw3IEBACiBRQl9PUFRfQVBQRU5EID0gIi1zaG93LWN1cnNvciAtdXNiIC1kZXZpY2UgdXNiLXRhYmxldCIKICMgQWRkIHRoZSAndmlydGlvLXJuZy1wY2knIGRldmljZSBvdGhlcndpc2UgdGhlIGd1ZXN0IG1heSBydW4gb3V0IG9mIGVudHJvcHkKIFFCX09QVF9BUFBFTkQgKz0gIi1vYmplY3Qgcm5nLXJhbmRvbSxmaWxlbmFtZT0vZGV2L3VyYW5kb20saWQ9cm5nMCAtZGV2aWNlIHZpcnRpby1ybmctcGNpLHJuZz1ybmcwIgotUFJFRkVSUkVEX1ZFUlNJT05fbGludXgteW9jdG8gPz89ICI1LjAlIgorUFJFRkVSUkVEX1ZFUlNJT05fbGludXgteW9jdG8gPz89ICI1LjIlIgogUUJfRFRCID0gIiR7QG9lLnV0aWxzLnZlcnNpb25fbGVzc19vcl9lcXVhbCgnUFJFRkVSUkVEX1ZFUlNJT05fbGludXgteW9jdG8nLCAnNC43JywgJycsICd6SW1hZ2UtdmVyc2F0aWxlLXBiLmR0YicsIGQpfSIKIAogS01BQ0hJTkVfcWVtdWFybXY1ID0gInFlbXVhcm0iCmRpZmYgLS1naXQgYS9wb2t5L21ldGEvY29uZi9tYWNoaW5lL3FlbXV4ODYtNjQuY29uZiBiL3Bva3kvbWV0YS9jb25mL21hY2hpbmUvcWVtdXg4Ni02NC5jb25mCmluZGV4IDRiNTBlNjYuLjY0OGNmMmYgMTAwNjQ0Ci0tLSBhL3Bva3kvbWV0YS9jb25mL21hY2hpbmUvcWVtdXg4Ni02NC5jb25mCisrKyBiL3Bva3kvbWV0YS9jb25mL21hY2hpbmUvcWVtdXg4Ni02NC5jb25mCkBAIC0xOCwxMiArMTgsMTYgQEAKIAogU0VSSUFMX0NPTlNPTEVTID89ICIxMTUyMDA7dHR5UzAgMTE1MjAwO3R0eVMxIgogCisjIEluc3RhbGwgc3dyYXN0IGFuZCBnbHggaWYgb3BlbmdsIGlzIGluIERJU1RST19GRUFUVVJFUyBhbmQgeDMyIGlzIG5vdCBpbiB1c2UuCisjIFRoaXMgaXMgYmVjYXVzZSBnYWxsaXVtIHN3cmFzdCBkcml2ZXIgd2FzIGZvdW5kIHRvIGNyYXNoIFggc2VydmVyIG9uIHN0YXJ0dXAgaW4gcWVtdSB4MzIuCiBYU0VSVkVSID0gInhzZXJ2ZXIteG9yZyBcCi0gICAgICAgICAgICR7QGJiLnV0aWxzLmNvbnRhaW5zKCdESVNUUk9fRkVBVFVSRVMnLCAnb3BlbmdsJywgJ21lc2EtZHJpdmVyLXN3cmFzdCB4c2VydmVyLXhvcmctZXh0ZW5zaW9uLWdseCcsICcnLCBkKX0gXAorICAgICAgICAgICAke0BiYi51dGlscy5jb250YWlucygnRElTVFJPX0ZFQVRVUkVTJywgJ29wZW5nbCcsIFwKKyAgICAgICAgICAgYmIudXRpbHMuY29udGFpbnMoJ1RVTkVfRkVBVFVSRVMnLCAnbXgzMicsICcnLCAnbWVzYS1kcml2ZXItc3dyYXN0IHhzZXJ2ZXIteG9yZy1leHRlbnNpb24tZ2x4JywgZCksICcnLCBkKX0gXAogICAgICAgICAgICB4Zjg2LXZpZGVvLWNpcnJ1cyBcCiAgICAgICAgICAgIHhmODYtdmlkZW8tZmJkZXYgXAogICAgICAgICAgICB4Zjg2LXZpZGVvLXZtd2FyZSBcCiAgICAgICAgICAgIHhmODYtdmlkZW8tbW9kZXNldHRpbmcgXAorICAgICAgICAgICB4Zjg2LXZpZGVvLXZlc2EgXAogICAgICAgICAgICB4c2VydmVyLXhvcmctbW9kdWxlLWxpYmludDEwIFwKICAgICAgICAgICAgIgogCmRpZmYgLS1naXQgYS9wb2t5L21ldGEvY29uZi9tYWNoaW5lL3FlbXV4ODYuY29uZiBiL3Bva3kvbWV0YS9jb25mL21hY2hpbmUvcWVtdXg4Ni5jb25mCmluZGV4IDM4MzIzMDIuLjhlMGRhODIgMTAwNjQ0Ci0tLSBhL3Bva3kvbWV0YS9jb25mL21hY2hpbmUvcWVtdXg4Ni5jb25mCisrKyBiL3Bva3kvbWV0YS9jb25mL21hY2hpbmUvcWVtdXg4Ni5jb25mCkBAIC0yNCw2ICsyNCw3IEBACiAgICAgICAgICAgIHhmODYtdmlkZW8tZmJkZXYgXAogICAgICAgICAgICB4Zjg2LXZpZGVvLXZtd2FyZSBcCiAgICAgICAgICAgIHhmODYtdmlkZW8tbW9kZXNldHRpbmcgXAorICAgICAgICAgICB4Zjg2LXZpZGVvLXZlc2EgXAogICAgICAgICAgICB4c2VydmVyLXhvcmctbW9kdWxlLWxpYmludDEwIFwKICAgICAgICAgICAgIgogCmRpZmYgLS1naXQgYS9wb2t5L21ldGEvZmlsZXMvY29tbW9uLWxpY2Vuc2VzL0JTRC0yLUNsYXVzZSBiL3Bva3kvbWV0YS9maWxlcy9jb21tb24tbGljZW5zZXMvQlNELTItQ2xhdXNlCmluZGV4IGFkZTBmMzQuLmYxOTE3ZDYgMTAwNjQ0Ci0tLSBhL3Bva3kvbWV0YS9maWxlcy9jb21tb24tbGljZW5zZXMvQlNELTItQ2xhdXNlCisrKyBiL3Bva3kvbWV0YS9maWxlcy9jb21tb24tbGljZW5zZXMvQlNELTItQ2xhdXNlCkBAIC0xLDEzICsxLDEwIEBACiAKLVRoZSBGcmVlQlNEIENvcHlyaWdodAotCi1Db3B5cmlnaHQgMTk5Mi0yMDEwIFRoZSBGcmVlQlNEIFByb2plY3QuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCitDb3B5cmlnaHQgPFlFQVI+IDxDT1BZUklHSFQgSE9MREVSPgogCiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZSBtZXQ6CiAKLVJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLVJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLVRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIEZSRUVCU0QgUFJPSkVDVCBgYEFTIElTYGAgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEZSRUVCU0QgUFJPSkVDVCBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCiAKLVRoZSB2aWV3cyBhbmQgY29uY2x1c2lvbnMgY29udGFpbmVkIGluIHRoZSBzb2Z0d2FyZSBhbmQgZG9jdW1lbnRhdGlvbiBhcmUgdGhvc2Ugb2YgdGhlIGF1dGhvcnMgYW5kIHNob3VsZCBub3QgYmUgaW50ZXJwcmV0ZWQgYXMgcmVwcmVzZW50aW5nIG9mZmljaWFsIHBvbGljaWVzLCBlaXRoZXIgZXhwcmVzc2VkIG9yIGltcGxpZWQsIG9mIHRoZSBGcmVlQlNEIFByb2plY3QuCisyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCiAKK1RISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUIEhPTERFUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCmRpZmYgLS1naXQgYS9wb2t5L21ldGEvbGliL29lL2dwZ19zaWduLnB5IGIvcG9reS9tZXRhL2xpYi9vZS9ncGdfc2lnbi5weQppbmRleCBkNzYyNDgwLi43NjM0ZDdlIDEwMDY0NAotLS0gYS9wb2t5L21ldGEvbGliL29lL2dwZ19zaWduLnB5CisrKyBiL3Bva3kvbWV0YS9saWIvb2UvZ3BnX3NpZ24ucHkKQEAgLTYsNyArNiw2IEBACiBpbXBvcnQgb3MKIAogaW1wb3J0IGJiCi1pbXBvcnQgb2UudXRpbHMKIGltcG9ydCBzdWJwcm9jZXNzCiBpbXBvcnQgc2hsZXgKIApkaWZmIC0tZ2l0IGEvcG9reS9tZXRhL2xpYi9vZXFhL2NvcmUvY29udGV4dC5weSBiL3Bva3kvbWV0YS9saWIvb2VxYS9jb3JlL2NvbnRleHQucHkKaW5kZXggNjg4MTljYy4uMTRmYzZhNSAxMDA2NDQKLS0tIGEvcG9reS9tZXRhL2xpYi9vZXFhL2NvcmUvY29udGV4dC5weQorKysgYi9wb2t5L21ldGEvbGliL29lcWEvY29yZS9jb250ZXh0LnB5CkBAIC02NCwxMiArNjQsMTIgQEAKICAgICAgICAgICAgICAgICAgICAgc2V0YXR0cih0Y2xhc3MsICdzZXRVcEhvb2tlcicsIHNraXBmdW5jZ2VuKCdTa2lwIGJ5IHRoZSBjb21tYW5kIGxpbmUgYXJndW1lbnQgIiVzIicgJSBza2lwKSkKIAogICAgIGRlZiBsb2FkVGVzdHMoc2VsZiwgbW9kdWxlX3BhdGhzLCBtb2R1bGVzPVtdLCB0ZXN0cz1bXSwKLSAgICAgICAgICAgIG1vZHVsZXNfbWFuaWZlc3Q9IiIsIG1vZHVsZXNfcmVxdWlyZWQ9W10sIGZpbHRlcnM9e30pOgorICAgICAgICAgICAgbW9kdWxlc19tYW5pZmVzdD0iIiwgbW9kdWxlc19yZXF1aXJlZD1bXSwgKiprd2FyZ3MpOgogICAgICAgICBpZiBtb2R1bGVzX21hbmlmZXN0OgogICAgICAgICAgICAgbW9kdWxlcyA9IHNlbGYuX3JlYWRfbW9kdWxlc19mcm9tX21hbmlmZXN0KG1vZHVsZXNfbWFuaWZlc3QpCiAKICAgICAgICAgc2VsZi5sb2FkZXIgPSBzZWxmLmxvYWRlckNsYXNzKHNlbGYsIG1vZHVsZV9wYXRocywgbW9kdWxlcywgdGVzdHMsCi0gICAgICAgICAgICAgICAgbW9kdWxlc19yZXF1aXJlZCwgZmlsdGVycykKKyAgICAgICAgICAgICAgICBtb2R1bGVzX3JlcXVpcmVkLCAqKmt3YXJncykKICAgICAgICAgc2VsZi5zdWl0ZXMgPSBzZWxmLmxvYWRlci5kaXNjb3ZlcigpCiAKICAgICBkZWYgcnVuVGVzdHMoc2VsZiwgcHJvY2Vzc2VzPU5vbmUsIHNraXBzPVtdKToKZGlmZiAtLWdpdCBhL3Bva3kvbWV0YS9saWIvb2VxYS9jb3JlL2RlY29yYXRvci9fX2luaXRfXy5weSBiL3Bva3kvbWV0YS9saWIvb2VxYS9jb3JlL2RlY29yYXRvci9fX2luaXRfXy5weQppbmRleCA5MjNiMjE4Li4xYTgyNTE4IDEwMDY0NAotLS0gYS9wb2t5L21ldGEvbGliL29lcWEvY29yZS9kZWNvcmF0b3IvX19pbml0X18ucHkKKysrIGIvcG9reS9tZXRhL2xpYi9vZXFhL2NvcmUvZGVjb3JhdG9yL19faW5pdF9fLnB5CkBAIC02LDYgKzYsNyBAQAogCiBmcm9tIGZ1bmN0b29scyBpbXBvcnQgd3JhcHMKIGZyb20gYWJjIGltcG9ydCBhYnN0cmFjdG1ldGhvZCwgQUJDTWV0YQorZnJvbSBvZXFhLmNvcmUudXRpbHMubWlzYyBpbXBvcnQgc3RyVG9MaXN0CiAKIGRlY29yYXRvckNsYXNzZXMgPSBzZXQoKQogCkBAIC02MywxMiArNjQsMTYgQEAKICAgICBkZWYgZGlzY292ZXIocmVnaXN0cnkpOgogICAgICAgICByZXR1cm4gcmVnaXN0cnlbJ2Nhc2VzJ10KIAotY2xhc3MgT0VUZXN0RmlsdGVyKE9FVGVzdERlY29yYXRvcik6CitkZWYgT0VUZXN0VGFnKCp0YWdzKToKKyAgICBleHBhbmRlZHRhZ3MgPSBbXQorICAgIGZvciB0YWcgaW4gdGFnczoKKyAgICAgICAgZXhwYW5kZWR0YWdzICs9IHN0clRvTGlzdCh0YWcpCisgICAgZGVmIGRlY29yYXRvcihpdGVtKToKKyAgICAgICAgaWYgaGFzYXR0cihpdGVtLCAiX19vZXFhX3Rlc3R0YWdzIik6CisgICAgICAgICAgICAjIGRvIG5vdCBhcHBlbmQsIGNyZWF0ZSBhIG5ldyBsaXN0ICh0byBoYW5kbGUgY2xhc3NlcyB3aXRoIGluaGVyaXRhbmNlKQorICAgICAgICAgICAgaXRlbS5fX29lcWFfdGVzdHRhZ3MgPSBsaXN0KGl0ZW0uX19vZXFhX3Rlc3R0YWdzKSArIGV4cGFuZGVkdGFncworICAgICAgICBlbHNlOgorICAgICAgICAgICAgaXRlbS5fX29lcWFfdGVzdHRhZ3MgPSBleHBhbmRlZHRhZ3MKKyAgICAgICAgcmV0dXJuIGl0ZW0KKyAgICByZXR1cm4gZGVjb3JhdG9yCiAKLSAgICAjIE9FVGVzdExvYWRlciBjYWxsIGl0IHdoaWxlIGxvYWRpbmcgdGhlIHRlc3RzCi0gICAgIyBpbiBsb2FkVGVzdHNGcm9tVGVzdENhc2UgbWV0aG9kLCBpdCBuZWVkcyB0bwotICAgICMgcmV0dXJuIGEgYm9vbCwgVHJ1ZSBpZiBuZWVkcyB0byBiZSBmaWx0ZXJlZC4KLSAgICAjIFRoaXMgbWV0aG9kIG11c3QgY29uc3VtZSB0aGUgZmlsdGVyIHVzZWQuCi0gICAgQGFic3RyYWN0bWV0aG9kCi0gICAgZGVmIGZpbHRyYXRlKHNlbGYsIGZpbHRlcnMpOgotICAgICAgICByZXR1cm4gRmFsc2UKZGlmZiAtLWdpdCBhL3Bva3kvbWV0YS9saWIvb2VxYS9jb3JlL2RlY29yYXRvci9vZXRhZy5weSBiL3Bva3kvbWV0YS9saWIvb2VxYS9jb3JlL2RlY29yYXRvci9vZXRhZy5weQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOGMzMTEzOC4uMDAwMDAwMAotLS0gYS9wb2t5L21ldGEvbGliL29lcWEvY29yZS9kZWNvcmF0b3Ivb2V0YWcucHkKKysrIC9kZXYvbnVsbApAQCAtMSwyNyArMCwwIEBACi0jCi0jIENvcHlyaWdodCAoQykgMjAxNiBJbnRlbCBDb3Jwb3JhdGlvbgotIwotIyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTUlUCi0jCi0KLWZyb20gLiBpbXBvcnQgT0VUZXN0RmlsdGVyLCByZWdpc3RlckRlY29yYXRvcgotZnJvbSBvZXFhLmNvcmUudXRpbHMubWlzYyBpbXBvcnQgc3RyVG9MaXN0Ci0KLWRlZiBfdGFnRmlsdGVyKHRhZ3MsIGZpbHRlcnMpOgotICAgIHJldHVybiBGYWxzZSBpZiBzZXQodGFncykgJiBzZXQoZmlsdGVycykgZWxzZSBUcnVlCi0KLUByZWdpc3RlckRlY29yYXRvcgotY2xhc3MgT0VUZXN0VGFnKE9FVGVzdEZpbHRlcik6Ci0gICAgYXR0cnMgPSAoJ29ldGFnJywpCi0KLSAgICBkZWYgYmluZChzZWxmLCByZWdpc3RyeSwgY2FzZSk6Ci0gICAgICAgIHN1cGVyKE9FVGVzdFRhZywgc2VsZikuYmluZChyZWdpc3RyeSwgY2FzZSkKLSAgICAgICAgc2VsZi5vZXRhZyA9IHN0clRvTGlzdChzZWxmLm9ldGFnLCAnb2V0YWcnKQotCi0gICAgZGVmIGZpbHRyYXRlKHNlbGYsIGZpbHRlcnMpOgotICAgICAgICBpZiBmaWx0ZXJzLmdldCgnb2V0YWcnKToKLSAgICAgICAgICAgIGZpbHRlcnggPSBzdHJUb0xpc3QoZmlsdGVyc1snb2V0YWcnXSwgJ29ldGFnJykKLSAgICAgICAgICAgIGRlbCBmaWx0ZXJzWydvZXRhZyddCi0gICAgICAgICAgICBpZiBfdGFnRmlsdGVyKHNlbGYub2V0YWcsIGZpbHRlcngpOgotICAgICAgICAgICAgICAgIHJldHVybiBUcnVlCi0gICAgICAgIHJldHVybiBGYWxzZQpkaWZmIC0tZ2l0IGEvcG9reS9tZXRhL2xpYi9vZXFhL2NvcmUvbG9hZGVyLnB5IGIvcG9reS9tZXRhL2xpYi9vZXFhL2NvcmUvbG9hZGVyLnB5CmluZGV4IDdmZWEwNTguLjBkNzk3MGQgMTAwNjQ0Ci0tLSBhL3Bva3kvbWV0YS9saWIvb2VxYS9jb3JlL2xvYWRlci5weQorKysgYi9wb2t5L21ldGEvbGliL29lcWEvY29yZS9sb2FkZXIucHkKQEAgLTE2LDcgKzE2LDcgQEAKIGZyb20gb2VxYS5jb3JlLmV4Y2VwdGlvbiBpbXBvcnQgT0VRQVRlc3ROb3RGb3VuZAogZnJvbSBvZXFhLmNvcmUuY2FzZSBpbXBvcnQgT0VUZXN0Q2FzZQogZnJvbSBvZXFhLmNvcmUuZGVjb3JhdG9yIGltcG9ydCBkZWNvcmF0b3JDbGFzc2VzLCBPRVRlc3REZWNvcmF0b3IsIFwKLSAgICAgICAgT0VUZXN0RmlsdGVyLCBPRVRlc3REaXNjb3ZlcgorICAgICAgICBPRVRlc3REaXNjb3ZlcgogCiAjIFdoZW4gbG9hZGluZyB0ZXN0cywgdGhlIHVuaXR0ZXN0IGZyYW1ld29yayBzdG9yZXMgYW55IGV4Y2VwdGlvbnMgYW5kCiAjIGRpc3BsYXlzIHRoZW0gb25seSB3aGVuIHRoZSBydW4gbWV0aG9kIGlzIGNhbGxlZC4KQEAgLTY4LDcgKzY4LDcgQEAKICAgICAgICAgICAgICdfdG9wX2xldmVsX2RpciddCiAKICAgICBkZWYgX19pbml0X18oc2VsZiwgdGMsIG1vZHVsZV9wYXRocywgbW9kdWxlcywgdGVzdHMsIG1vZHVsZXNfcmVxdWlyZWQsCi0gICAgICAgICAgICBmaWx0ZXJzLCAqYXJncywgKiprd2FyZ3MpOgorICAgICAgICAgICAgKmFyZ3MsICoqa3dhcmdzKToKICAgICAgICAgc2VsZi50YyA9IHRjCiAKICAgICAgICAgc2VsZi5tb2R1bGVzID0gX2J1aWx0X21vZHVsZXNfZGljdChtb2R1bGVzKQpAQCAtNzYsMTMgKzc2LDcgQEAKICAgICAgICAgc2VsZi50ZXN0cyA9IHRlc3RzCiAgICAgICAgIHNlbGYubW9kdWxlc19yZXF1aXJlZCA9IG1vZHVsZXNfcmVxdWlyZWQKIAotICAgICAgICBzZWxmLmZpbHRlcnMgPSBmaWx0ZXJzCi0gICAgICAgIHNlbGYuZGVjb3JhdG9yX2ZpbHRlcnMgPSBbZCBmb3IgZCBpbiBkZWNvcmF0b3JDbGFzc2VzIGlmIFwKLSAgICAgICAgICAgICAgICBpc3N1YmNsYXNzKGQsIE9FVGVzdEZpbHRlcildCi0gICAgICAgIHNlbGYuX3ZhbGlkYXRlRmlsdGVycyhzZWxmLmZpbHRlcnMsIHNlbGYuZGVjb3JhdG9yX2ZpbHRlcnMpCi0gICAgICAgIHNlbGYudXNlZF9maWx0ZXJzID0gW2QgZm9yIGQgaW4gc2VsZi5kZWNvcmF0b3JfZmlsdGVycwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3IgZiBpbiBzZWxmLmZpbHRlcnMKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgZiBpbiBkLmF0dHJzXQorICAgICAgICBzZWxmLnRhZ3NfZmlsdGVyID0ga3dhcmdzLmdldCgidGFnc19maWx0ZXIiLCBOb25lKQogCiAgICAgICAgIGlmIGlzaW5zdGFuY2UobW9kdWxlX3BhdGhzLCBzdHIpOgogICAgICAgICAgICAgbW9kdWxlX3BhdGhzID0gW21vZHVsZV9wYXRoc10KQEAgLTEwNCwyOCArOTgsNiBAQAogICAgICAgICBzZXRhdHRyKHRlc3RDYXNlQ2xhc3MsICd0ZCcsIHNlbGYudGMudGQpCiAgICAgICAgIHNldGF0dHIodGVzdENhc2VDbGFzcywgJ2xvZ2dlcicsIHNlbGYudGMubG9nZ2VyKQogCi0gICAgZGVmIF92YWxpZGF0ZUZpbHRlcnMoc2VsZiwgZmlsdGVycywgZGVjb3JhdG9yX2ZpbHRlcnMpOgotICAgICAgICAjIFZhbGlkYXRlIGlmIGZpbHRlciBpc24ndCBlbXB0eQotICAgICAgICBmb3Iga2V5LHZhbHVlIGluIGZpbHRlcnMuaXRlbXMoKToKLSAgICAgICAgICAgIGlmIG5vdCB2YWx1ZToKLSAgICAgICAgICAgICAgICByYWlzZSBUeXBlRXJyb3IoIkZpbHRlciAlcyBzcGVjaWZpZWQgaXMgZW1wdHkiICUga2V5KQotCi0gICAgICAgICMgVmFsaWRhdGUgdW5pcXVlIGF0dHJpYnV0ZXMKLSAgICAgICAgYXR0cl9maWx0ZXJzID0gW2F0dHIgZm9yIGNsc3MgaW4gZGVjb3JhdG9yX2ZpbHRlcnMgXAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3IgYXR0ciBpbiBjbHNzLmF0dHJzXQotICAgICAgICBkdXBfYXR0ciA9IFthdHRyIGZvciBhdHRyIGluIGF0dHJfZmlsdGVycwotICAgICAgICAgICAgICAgICAgICBpZiBhdHRyX2ZpbHRlcnMuY291bnQoYXR0cikgPiAxXQotICAgICAgICBpZiBkdXBfYXR0cjoKLSAgICAgICAgICAgIHJhaXNlIFR5cGVFcnJvcignRGV0ZWN0ZWQgZHVwbGljYXRlZCBhdHRyaWJ1dGUocykgJXMgaW4gZmlsdGVyJwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICcgZGVjb3JhdG9ycycgJSAnICwnLmpvaW4oZHVwX2F0dHIpKQotCi0gICAgICAgICMgVmFsaWRhdGUgaWYgZmlsdGVyIGlzIHN1cHBvcnRlZAotICAgICAgICBmb3IgZiBpbiBmaWx0ZXJzOgotICAgICAgICAgICAgaWYgZiBub3QgaW4gYXR0cl9maWx0ZXJzOgotICAgICAgICAgICAgICAgIGNsYXNzZXMgPSAnLCAnLmpvaW4oW2QuX19uYW1lX18gZm9yIGQgaW4gZGVjb3JhdG9yX2ZpbHRlcnNdKQotICAgICAgICAgICAgICAgIHJhaXNlIFR5cGVFcnJvcignRm91bmQgIiVzIiBmaWx0ZXIgYnV0IG5vdCBkZWNsYXJlZCBpbiBhbnkgb2YgJwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnJXMgZGVjb3JhdG9ycycgJSAoZiwgY2xhc3NlcykpCi0KICAgICBkZWYgX3JlZ2lzdGVyVGVzdENhc2Uoc2VsZiwgY2FzZSk6CiAgICAgICAgIGNhc2VfaWQgPSBjYXNlLmlkKCkKICAgICAgICAgc2VsZi50Yy5fcmVnaXN0cnlbJ2Nhc2VzJ11bY2FzZV9pZF0gPSBjYXNlCkBAIC0xODgsMTkgKzE2MCwyMCBAQAogICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFRydWUKIAogICAgICAgICAjIERlY29yYXRvciBmaWx0ZXJzCi0gICAgICAgIGlmIHNlbGYuZmlsdGVycyBhbmQgaXNpbnN0YW5jZShjYXNlLCBPRVRlc3RDYXNlKToKLSAgICAgICAgICAgIGZpbHRlcnMgPSBzZWxmLmZpbHRlcnMuY29weSgpCi0gICAgICAgICAgICBjYXNlX2RlY29yYXRvcnMgPSBbY2QgZm9yIGNkIGluIGNhc2UuZGVjb3JhdG9ycwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIGNkLl9fY2xhc3NfXyBpbiBzZWxmLnVzZWRfZmlsdGVyc10KKyAgICAgICAgaWYgc2VsZi50YWdzX2ZpbHRlciBpcyBub3QgTm9uZSBhbmQgY2FsbGFibGUoc2VsZi50YWdzX2ZpbHRlcik6CisgICAgICAgICAgICBhbGx0YWdzID0gc2V0KCkKKyAgICAgICAgICAgICMgcHVsbCB0YWdzIGZyb20gdGhlIGNhc2UgY2xhc3MKKyAgICAgICAgICAgIGlmIGhhc2F0dHIoY2FzZSwgIl9fb2VxYV90ZXN0dGFncyIpOgorICAgICAgICAgICAgICAgIGZvciB0IGluIGdldGF0dHIoY2FzZSwgIl9fb2VxYV90ZXN0dGFncyIpOgorICAgICAgICAgICAgICAgICAgICBhbGx0YWdzLmFkZCh0KQorICAgICAgICAgICAgIyBwdWxsIHRhZ3MgZnJvbSB0aGUgbWV0aG9kIGl0c2VsZgorICAgICAgICAgICAgaWYgaGFzYXR0cihjYXNlLCB0ZXN0X25hbWUpOgorICAgICAgICAgICAgICAgIG1ldGhvZCA9IGdldGF0dHIoY2FzZSwgdGVzdF9uYW1lKQorICAgICAgICAgICAgICAgIGlmIGhhc2F0dHIobWV0aG9kLCAiX19vZXFhX3Rlc3R0YWdzIik6CisgICAgICAgICAgICAgICAgICAgIGZvciB0IGluIGdldGF0dHIobWV0aG9kLCAiX19vZXFhX3Rlc3R0YWdzIik6CisgICAgICAgICAgICAgICAgICAgICAgICBhbGx0YWdzLmFkZCh0KQogCi0gICAgICAgICAgICAjIEl0ZXJhdGUgb3ZlciBjYXNlIGRlY29yYXRvcnMgdG8gY2hlY2sgaWYgbmVlZHMgdG8gYmUgZmlsdGVyZWQuCi0gICAgICAgICAgICBmb3IgY2QgaW4gY2FzZV9kZWNvcmF0b3JzOgotICAgICAgICAgICAgICAgIGlmIGNkLmZpbHRyYXRlKGZpbHRlcnMpOgotICAgICAgICAgICAgICAgICAgICByZXR1cm4gVHJ1ZQotCi0gICAgICAgICAgICAjIENhc2UgaXMgbWlzc2luZyBvbmUgb3IgbW9yZSBkZWNvcmF0b3JzIGZvciBhbGwgdGhlIGZpbHRlcnMKLSAgICAgICAgICAgICMgYmVpbmcgdXNlZCwgc28gZmlsdGVyIHRlc3QgY2FzZS4KLSAgICAgICAgICAgIGlmIGZpbHRlcnM6CisgICAgICAgICAgICBpZiBzZWxmLnRhZ3NfZmlsdGVyKGFsbHRhZ3MpOgogICAgICAgICAgICAgICAgIHJldHVybiBUcnVlCiAKICAgICAgICAgcmV0dXJuIEZhbHNlCmRpZmYgLS1naXQgYS9wb2t5L21ldGEvbGliL29lcWEvY29yZS9ydW5uZXIucHkgYi9wb2t5L21ldGEvbGliL29lcWEvY29yZS9ydW5uZXIucHkKaW5kZXggOTMwNjIwZS4uZjY1NmUxYSAxMDA2NDQKLS0tIGEvcG9reS9tZXRhL2xpYi9vZXFhL2NvcmUvcnVubmVyLnB5CisrKyBiL3Bva3kvbWV0YS9saWIvb2VxYS9jb3JlL3J1bm5lci5weQpAQCAtNDMsNiArNDMsNyBAQAogICAgICAgICBzZWxmLnN0YXJ0dGltZSA9IHt9CiAgICAgICAgIHNlbGYuZW5kdGltZSA9IHt9CiAgICAgICAgIHNlbGYucHJvZ3Jlc3NpbmZvID0ge30KKyAgICAgICAgc2VsZi5leHRyYXJlc3VsdHMgPSB7fQogCiAgICAgICAgICMgSW5qZWN0IGludG8gdGMgc28gdGhhdCBUZXN0RGVwZW5kcyBkZWNvcmF0b3IgY2FuIHNlZSByZXN1bHRzCiAgICAgICAgIHRjLnJlc3VsdHMgPSBzZWxmCkBAIC0xMjksMTkgKzEzMCw1MSBAQAogCiAgICAgICAgIHJldHVybiAnVU5LTk9XTicsIE5vbmUKIAotICAgIGRlZiBhZGRTdWNjZXNzKHNlbGYsIHRlc3QpOgorICAgIGRlZiBleHRyYWN0RXh0cmFSZXN1bHRzKHNlbGYsIHRlc3QsIGRldGFpbHMgPSBOb25lKToKKyAgICAgICAgZXh0cmFyZXN1bHRzID0gTm9uZQorICAgICAgICBpZiBkZXRhaWxzIGlzIG5vdCBOb25lIGFuZCAiZXh0cmFyZXN1bHRzIiBpbiBkZXRhaWxzOgorICAgICAgICAgICAgZXh0cmFyZXN1bHRzID0gZGV0YWlscy5nZXQoImV4dHJhcmVzdWx0cyIsIHt9KQorICAgICAgICBlbGlmIGhhc2F0dHIodGVzdCwgImV4dHJhcmVzdWx0cyIpOgorICAgICAgICAgICAgZXh0cmFyZXN1bHRzID0gdGVzdC5leHRyYXJlc3VsdHMKKworICAgICAgICBpZiBleHRyYXJlc3VsdHMgaXMgbm90IE5vbmU6CisgICAgICAgICAgICBmb3IgaywgdiBpbiBleHRyYXJlc3VsdHMuaXRlbXMoKToKKyAgICAgICAgICAgICAgICAjIGhhbmRsZSB1cGRhdGluZyBhbHJlYWR5IGV4aXN0aW5nIGVudHJpZXMgKGUuZy4gcHRlc3RyZXN1bHRzLnNlY3Rpb25zKQorICAgICAgICAgICAgICAgIGlmIGsgaW4gc2VsZi5leHRyYXJlc3VsdHM6CisgICAgICAgICAgICAgICAgICAgIHNlbGYuZXh0cmFyZXN1bHRzW2tdLnVwZGF0ZSh2KQorICAgICAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgICAgIHNlbGYuZXh0cmFyZXN1bHRzW2tdID0gdgorCisgICAgZGVmIGFkZEVycm9yKHNlbGYsIHRlc3QsICphcmdzLCBkZXRhaWxzID0gTm9uZSk6CisgICAgICAgIHNlbGYuZXh0cmFjdEV4dHJhUmVzdWx0cyh0ZXN0LCBkZXRhaWxzID0gZGV0YWlscykKKyAgICAgICAgcmV0dXJuIHN1cGVyKE9FVGVzdFJlc3VsdCwgc2VsZikuYWRkRXJyb3IodGVzdCwgKmFyZ3MpCisKKyAgICBkZWYgYWRkRmFpbHVyZShzZWxmLCB0ZXN0LCAqYXJncywgZGV0YWlscyA9IE5vbmUpOgorICAgICAgICBzZWxmLmV4dHJhY3RFeHRyYVJlc3VsdHModGVzdCwgZGV0YWlscyA9IGRldGFpbHMpCisgICAgICAgIHJldHVybiBzdXBlcihPRVRlc3RSZXN1bHQsIHNlbGYpLmFkZEZhaWx1cmUodGVzdCwgKmFyZ3MpCisKKyAgICBkZWYgYWRkU3VjY2VzcyhzZWxmLCB0ZXN0LCBkZXRhaWxzID0gTm9uZSk6CiAgICAgICAgICNBZGRlZCBzbyB3ZSBjYW4ga2VlcCB0cmFjayBvZiBzdWNjZXNzZXMgdG9vCiAgICAgICAgIHNlbGYuc3VjY2Vzc2VzLmFwcGVuZCgodGVzdCwgTm9uZSkpCi0gICAgICAgIHN1cGVyKE9FVGVzdFJlc3VsdCwgc2VsZikuYWRkU3VjY2Vzcyh0ZXN0KQorICAgICAgICBzZWxmLmV4dHJhY3RFeHRyYVJlc3VsdHModGVzdCwgZGV0YWlscyA9IGRldGFpbHMpCisgICAgICAgIHJldHVybiBzdXBlcihPRVRlc3RSZXN1bHQsIHNlbGYpLmFkZFN1Y2Nlc3ModGVzdCkKKworICAgIGRlZiBhZGRFeHBlY3RlZEZhaWx1cmUoc2VsZiwgdGVzdCwgKmFyZ3MsIGRldGFpbHMgPSBOb25lKToKKyAgICAgICAgc2VsZi5leHRyYWN0RXh0cmFSZXN1bHRzKHRlc3QsIGRldGFpbHMgPSBkZXRhaWxzKQorICAgICAgICByZXR1cm4gc3VwZXIoT0VUZXN0UmVzdWx0LCBzZWxmKS5hZGRFeHBlY3RlZEZhaWx1cmUodGVzdCwgKmFyZ3MpCisKKyAgICBkZWYgYWRkVW5leHBlY3RlZFN1Y2Nlc3Moc2VsZiwgdGVzdCwgZGV0YWlscyA9IE5vbmUpOgorICAgICAgICBzZWxmLmV4dHJhY3RFeHRyYVJlc3VsdHModGVzdCwgZGV0YWlscyA9IGRldGFpbHMpCisgICAgICAgIHJldHVybiBzdXBlcihPRVRlc3RSZXN1bHQsIHNlbGYpLmFkZFVuZXhwZWN0ZWRTdWNjZXNzKHRlc3QpCiAKICAgICBkZWYgbG9nRGV0YWlscyhzZWxmLCBqc29uX2ZpbGVfZGlyPU5vbmUsIGNvbmZpZ3VyYXRpb249Tm9uZSwgcmVzdWx0X2lkPU5vbmUsCiAgICAgICAgICAgICBkdW1wX3N0cmVhbXM9RmFsc2UpOgogICAgICAgICBzZWxmLnRjLmxvZ2dlci5pbmZvKCJSRVNVTFRTOiIpCiAKLSAgICAgICAgcmVzdWx0ID0ge30KKyAgICAgICAgcmVzdWx0ID0gc2VsZi5leHRyYXJlc3VsdHMKICAgICAgICAgbG9ncyA9IHt9CiAgICAgICAgIGlmIGhhc2F0dHIoc2VsZi50YywgImV4dHJhcmVzdWx0cyIpOgotICAgICAgICAgICAgcmVzdWx0ID0gc2VsZi50Yy5leHRyYXJlc3VsdHMKKyAgICAgICAgICAgIHJlc3VsdC51cGRhdGUoc2VsZi50Yy5leHRyYXJlc3VsdHMpCiAKICAgICAgICAgZm9yIGNhc2VfbmFtZSBpbiBzZWxmLnRjLl9yZWdpc3RyeVsnY2FzZXMnXToKICAgICAgICAgICAgIGNhc2UgPSBzZWxmLnRjLl9yZWdpc3RyeVsnY2FzZXMnXVtjYXNlX25hbWVdCkBAIC0yMDUsMjMgKzIzOCwyMCBAQAogICAgICAgICAgICAgICAgIHNlbGYuX3dhbGtlZF9jYXNlcyA9IHNlbGYuX3dhbGtlZF9jYXNlcyArIDEKIAogICAgIGRlZiBfbGlzdF90ZXN0c19uYW1lKHNlbGYsIHN1aXRlKToKLSAgICAgICAgZnJvbSBvZXFhLmNvcmUuZGVjb3JhdG9yLm9ldGFnIGltcG9ydCBPRVRlc3RUYWcKLQogICAgICAgICBzZWxmLl93YWxrZWRfY2FzZXMgPSAwCiAKICAgICAgICAgZGVmIF9saXN0X2Nhc2VzKGxvZ2dlciwgY2FzZSk6Ci0gICAgICAgICAgICBvZXRhZyA9IE5vbmUKLQotICAgICAgICAgICAgaWYgaGFzYXR0cihjYXNlLCAnZGVjb3JhdG9ycycpOgotICAgICAgICAgICAgICAgIGZvciBkIGluIGNhc2UuZGVjb3JhdG9yczoKLSAgICAgICAgICAgICAgICAgICAgaWYgaXNpbnN0YW5jZShkLCBPRVRlc3RUYWcpOgotICAgICAgICAgICAgICAgICAgICAgICAgb2V0YWcgPSBkLm9ldGFnCi0KLSAgICAgICAgICAgIGxvZ2dlci5pbmZvKCIlc1x0XHQlcyIgJSAob2V0YWcsIGNhc2UuaWQoKSkpCisgICAgICAgICAgICBvZXRhZ3MgPSBbXQorICAgICAgICAgICAgaWYgaGFzYXR0cihjYXNlLCAnX19vZXFhX3Rlc3R0YWdzJyk6CisgICAgICAgICAgICAgICAgb2V0YWdzID0gZ2V0YXR0cihjYXNlLCAnX19vZXFhX3Rlc3R0YWdzJykKKyAgICAgICAgICAgIGlmIG9ldGFnczoKKyAgICAgICAgICAgICAgICBsb2dnZXIuaW5mbygiJXMgKCVzKSIgJSAoY2FzZS5pZCgpLCAiLCIuam9pbihvZXRhZ3MpKSkKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgbG9nZ2VyLmluZm8oIiVzIiAlIChjYXNlLmlkKCkpKQogCiAgICAgICAgIHNlbGYudGMubG9nZ2VyLmluZm8oIkxpc3RpbmcgYWxsIGF2YWlsYWJsZSB0ZXN0czoiKQogICAgICAgICBzZWxmLl93YWxrZWRfY2FzZXMgPSAwCi0gICAgICAgIHNlbGYudGMubG9nZ2VyLmluZm8oImlkXHR0YWdcdFx0dGVzdCIpCisgICAgICAgIHNlbGYudGMubG9nZ2VyLmluZm8oInRlc3QgKHRhZ3MpIikKICAgICAgICAgc2VsZi50Yy5sb2dnZXIuaW5mbygiLSIgKiA4MCkKICAgICAgICAgc2VsZi5fd2Fsa19zdWl0ZShzdWl0ZSwgX2xpc3RfY2FzZXMpCiAgICAgICAgIHNlbGYudGMubG9nZ2VyLmluZm8oIi0iICogODApCmRpZmYgLS1naXQgYS9wb2t5L21ldGEvbGliL29lcWEvY29yZS90ZXN0cy9jYXNlcy9kYXRhLnB5IGIvcG9reS9tZXRhL2xpYi9vZXFhL2NvcmUvdGVzdHMvY2FzZXMvZGF0YS5weQppbmRleCAwZDhkZTg3Li42MWY4ODU0IDEwMDY0NAotLS0gYS9wb2t5L21ldGEvbGliL29lcWEvY29yZS90ZXN0cy9jYXNlcy9kYXRhLnB5CisrKyBiL3Bva3kvbWV0YS9saWIvb2VxYS9jb3JlL3Rlc3RzL2Nhc2VzL2RhdGEucHkKQEAgLTUsNyArNSw3IEBACiAjCiAKIGZyb20gb2VxYS5jb3JlLmNhc2UgaW1wb3J0IE9FVGVzdENhc2UKLWZyb20gb2VxYS5jb3JlLmRlY29yYXRvci5vZXRhZyBpbXBvcnQgT0VUZXN0VGFnCitmcm9tIG9lcWEuY29yZS5kZWNvcmF0b3IgaW1wb3J0IE9FVGVzdFRhZwogZnJvbSBvZXFhLmNvcmUuZGVjb3JhdG9yLmRhdGEgaW1wb3J0IE9FVGVzdERhdGFEZXBlbmRzCiAKIGNsYXNzIERhdGFUZXN0KE9FVGVzdENhc2UpOgpkaWZmIC0tZ2l0IGEvcG9reS9tZXRhL2xpYi9vZXFhL2NvcmUvdGVzdHMvY2FzZXMvb2V0YWcucHkgYi9wb2t5L21ldGEvbGliL29lcWEvY29yZS90ZXN0cy9jYXNlcy9vZXRhZy5weQppbmRleCA0ZTFkMDgwLi41MmY5N2RmIDEwMDY0NAotLS0gYS9wb2t5L21ldGEvbGliL29lcWEvY29yZS90ZXN0cy9jYXNlcy9vZXRhZy5weQorKysgYi9wb2t5L21ldGEvbGliL29lcWEvY29yZS90ZXN0cy9jYXNlcy9vZXRhZy5weQpAQCAtNSwxMCArNSw5IEBACiAjCiAKIGZyb20gb2VxYS5jb3JlLmNhc2UgaW1wb3J0IE9FVGVzdENhc2UKLWZyb20gb2VxYS5jb3JlLmRlY29yYXRvci5vZXRhZyBpbXBvcnQgT0VUZXN0VGFnCitmcm9tIG9lcWEuY29yZS5kZWNvcmF0b3IgaW1wb3J0IE9FVGVzdFRhZwogCiBjbGFzcyBUYWdUZXN0KE9FVGVzdENhc2UpOgotCiAgICAgQE9FVGVzdFRhZygnZ29vZFRhZycpCiAgICAgZGVmIHRlc3RUYWdHb29kKHNlbGYpOgogICAgICAgICBzZWxmLmFzc2VydFRydWUoVHJ1ZSwgbXNnPSdIb3cgaXMgdGhpcyBwb3NzaWJsZT8nKQpAQCAtMTcsNSArMTYsMjMgQEAKICAgICBkZWYgdGVzdFRhZ090aGVyKHNlbGYpOgogICAgICAgICBzZWxmLmFzc2VydFRydWUoVHJ1ZSwgbXNnPSdIb3cgaXMgdGhpcyBwb3NzaWJsZT8nKQogCisgICAgQE9FVGVzdFRhZygnb3RoZXJUYWcnLCAnbXVsdGlUYWcnKQorICAgIGRlZiB0ZXN0VGFnT3RoZXJNdWx0aShzZWxmKToKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKFRydWUsIG1zZz0nSG93IGlzIHRoaXMgcG9zc2libGU/JykKKwogICAgIGRlZiB0ZXN0VGFnTm9uZShzZWxmKToKICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKFRydWUsIG1zZz0nSG93IGlzIHRoaXMgcG9zc2libGU/JykKKworQE9FVGVzdFRhZygnY2xhc3NUYWcnKQorY2xhc3MgVGFnQ2xhc3NUZXN0KE9FVGVzdENhc2UpOgorICAgIEBPRVRlc3RUYWcoJ290aGVyVGFnJykKKyAgICBkZWYgdGVzdFRhZ090aGVyKHNlbGYpOgorICAgICAgICBzZWxmLmFzc2VydFRydWUoVHJ1ZSwgbXNnPSdIb3cgaXMgdGhpcyBwb3NzaWJsZT8nKQorCisgICAgQE9FVGVzdFRhZygnb3RoZXJUYWcnLCAnbXVsdGlUYWcnKQorICAgIGRlZiB0ZXN0VGFnT3RoZXJNdWx0aShzZWxmKToKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKFRydWUsIG1zZz0nSG93IGlzIHRoaXMgcG9zc2libGU/JykKKworICAgIGRlZiB0ZXN0VGFnTm9uZShzZWxmKToKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKFRydWUsIG1zZz0nSG93IGlzIHRoaXMgcG9zc2libGU/JykKKwpkaWZmIC0tZ2l0IGEvcG9reS9tZXRhL2xpYi9vZXFhL2NvcmUvdGVzdHMvY29tbW9uLnB5IGIvcG9reS9tZXRhL2xpYi9vZXFhL2NvcmUvdGVzdHMvY29tbW9uLnB5CmluZGV4IDM5ZWZkNTAuLjg4Y2M3NTggMTAwNjQ0Ci0tLSBhL3Bva3kvbWV0YS9saWIvb2VxYS9jb3JlL3Rlc3RzL2NvbW1vbi5weQorKysgYi9wb2t5L21ldGEvbGliL29lcWEvY29yZS90ZXN0cy9jb21tb24ucHkKQEAgLTMwLDkgKzMwLDkgQEAKICAgICAgICAgZGlyZWN0b3J5ID0gb3MucGF0aC5kaXJuYW1lKG9zLnBhdGguYWJzcGF0aChfX2ZpbGVfXykpCiAgICAgICAgIHNlbGYuY2FzZXNfcGF0aCA9IG9zLnBhdGguam9pbihkaXJlY3RvcnksICdjYXNlcycpCiAKLSAgICBkZWYgX3Rlc3RMb2FkZXIoc2VsZiwgZD17fSwgbW9kdWxlcz1bXSwgdGVzdHM9W10sIGZpbHRlcnM9e30pOgorICAgIGRlZiBfdGVzdExvYWRlcihzZWxmLCBkPXt9LCBtb2R1bGVzPVtdLCB0ZXN0cz1bXSwgKiprd2FyZ3MpOgogICAgICAgICBmcm9tIG9lcWEuY29yZS5jb250ZXh0IGltcG9ydCBPRVRlc3RDb250ZXh0CiAgICAgICAgIHRjID0gT0VUZXN0Q29udGV4dChkLCBzZWxmLmxvZ2dlcikKICAgICAgICAgdGMubG9hZFRlc3RzKHNlbGYuY2FzZXNfcGF0aCwgbW9kdWxlcz1tb2R1bGVzLCB0ZXN0cz10ZXN0cywKLSAgICAgICAgICAgICAgICAgICAgIGZpbHRlcnM9ZmlsdGVycykKKyAgICAgICAgICAgICAgICAgICAgICoqa3dhcmdzKQogICAgICAgICByZXR1cm4gdGMKZGlmZiAtLWdpdCBhL3Bva3kvbWV0YS9saWIvb2VxYS9jb3JlL3Rlc3RzL3Rlc3RfZGF0YS5weSBiL3Bva3kvbWV0YS9saWIvb2VxYS9jb3JlL3Rlc3RzL3Rlc3RfZGF0YS5weQppbmRleCA1MDgxMWJiLi5hYzc0MDk4IDEwMDc1NQotLS0gYS9wb2t5L21ldGEvbGliL29lcWEvY29yZS90ZXN0cy90ZXN0X2RhdGEucHkKKysrIGIvcG9reS9tZXRhL2xpYi9vZXFhL2NvcmUvdGVzdHMvdGVzdF9kYXRhLnB5CkBAIC0yMiw4ICsyMiw5IEBACiAgICAgICAgIGV4cGVjdGVkRXhjZXB0aW9uID0gIm9lcWEuY29yZS5leGNlcHRpb24uT0VRQU1pc3NpbmdWYXJpYWJsZSIKIAogICAgICAgICB0YyA9IHNlbGYuX3Rlc3RMb2FkZXIobW9kdWxlcz1zZWxmLm1vZHVsZXMpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoRmFsc2UsIHRjLnJ1blRlc3RzKCkud2FzU3VjY2Vzc2Z1bCgpKQotICAgICAgICBmb3IgdGVzdCwgZGF0YSBpbiB0Yy5lcnJvcnM6CisgICAgICAgIHJlc3VsdHMgPSB0Yy5ydW5UZXN0cygpCisgICAgICAgIHNlbGYuYXNzZXJ0RmFsc2UocmVzdWx0cy53YXNTdWNjZXNzZnVsKCkpCisgICAgICAgIGZvciB0ZXN0LCBkYXRhIGluIHJlc3VsdHMuZXJyb3JzOgogICAgICAgICAgICAgZXhwZWN0ID0gRmFsc2UKICAgICAgICAgICAgIGlmIGV4cGVjdGVkRXhjZXB0aW9uIGluIGRhdGE6CiAgICAgICAgICAgICAgICAgZXhwZWN0ID0gVHJ1ZQpAQCAtMzUsOCArMzYsOSBAQAogICAgICAgICBkID0geydJTUFHRScgOiAnY29yZS1pbWFnZS1zYXRvJywgJ0FSQ0gnIDogJ2FybSd9CiAKICAgICAgICAgdGMgPSBzZWxmLl90ZXN0TG9hZGVyKGQ9ZCwgbW9kdWxlcz1zZWxmLm1vZHVsZXMpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoRmFsc2UsIHRjLnJ1blRlc3RzKCkud2FzU3VjY2Vzc2Z1bCgpKQotICAgICAgICBmb3IgdGVzdCwgZGF0YSBpbiB0Yy5mYWlsdXJlczoKKyAgICAgICAgcmVzdWx0cyA9IHRjLnJ1blRlc3RzKCkKKyAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShyZXN1bHRzLndhc1N1Y2Nlc3NmdWwoKSkKKyAgICAgICAgZm9yIHRlc3QsIGRhdGEgaW4gcmVzdWx0cy5mYWlsdXJlczoKICAgICAgICAgICAgIGV4cGVjdCA9IEZhbHNlCiAgICAgICAgICAgICBpZiBleHBlY3RlZEVycm9yIGluIGRhdGE6CiAgICAgICAgICAgICAgICAgZXhwZWN0ID0gVHJ1ZQpkaWZmIC0tZ2l0IGEvcG9reS9tZXRhL2xpYi9vZXFhL2NvcmUvdGVzdHMvdGVzdF9kZWNvcmF0b3JzLnB5IGIvcG9reS9tZXRhL2xpYi9vZXFhL2NvcmUvdGVzdHMvdGVzdF9kZWNvcmF0b3JzLnB5CmluZGV4IDQ5OWNkNjYuLmI3OThiZjcgMTAwNzU1Ci0tLSBhL3Bva3kvbWV0YS9saWIvb2VxYS9jb3JlL3Rlc3RzL3Rlc3RfZGVjb3JhdG9ycy5weQorKysgYi9wb2t5L21ldGEvbGliL29lcWEvY29yZS90ZXN0cy90ZXN0X2RlY29yYXRvcnMucHkKQEAgLTE0LDM1ICsxNCw1OCBAQAogZnJvbSBvZXFhLmNvcmUuZXhjZXB0aW9uIGltcG9ydCBPRVFBRGVwZW5kZW5jeQogZnJvbSBvZXFhLmNvcmUudXRpbHMudGVzdCBpbXBvcnQgZ2V0Q2FzZU1ldGhvZCwgZ2V0U3VpdGVDYXNlc05hbWVzLCBnZXRTdWl0ZUNhc2VzSURzCiAKLWNsYXNzIFRlc3RGaWx0ZXJEZWNvcmF0b3IoVGVzdEJhc2UpOgotCi0gICAgZGVmIF9ydW5GaWx0ZXJUZXN0KHNlbGYsIG1vZHVsZXMsIGZpbHRlcnMsIGV4cGVjdCwgbXNnKToKLSAgICAgICAgdGMgPSBzZWxmLl90ZXN0TG9hZGVyKG1vZHVsZXM9bW9kdWxlcywgZmlsdGVycz1maWx0ZXJzKQotICAgICAgICB0ZXN0X2xvYWRlZCA9IHNldChnZXRTdWl0ZUNhc2VzTmFtZXModGMuc3VpdGVzKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChleHBlY3QsIHRlc3RfbG9hZGVkLCBtc2c9bXNnKQorY2xhc3MgVGVzdFRhZ0RlY29yYXRvcihUZXN0QmFzZSk6CisgICAgZGVmIF9ydW5UZXN0KHNlbGYsIG1vZHVsZXMsIGZpbHRlcmZuLCBleHBlY3QpOgorICAgICAgICB0YyA9IHNlbGYuX3Rlc3RMb2FkZXIobW9kdWxlcyA9IG1vZHVsZXMsIHRhZ3NfZmlsdGVyID0gZmlsdGVyZm4pCisgICAgICAgIHRlc3RfbG9hZGVkID0gc2V0KGdldFN1aXRlQ2FzZXNJRHModGMuc3VpdGVzKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChleHBlY3QsIHRlc3RfbG9hZGVkKQogCiAgICAgZGVmIHRlc3Rfb2V0YWcoc2VsZik6Ci0gICAgICAgICMgR2V0IGFsbCBjYXNlcyB3aXRob3V0IGZpbHRlcmluZy4KLSAgICAgICAgZmlsdGVyX2FsbCA9IHt9Ci0gICAgICAgIHRlc3RfYWxsID0geyd0ZXN0VGFnR29vZCcsICd0ZXN0VGFnT3RoZXInLCAndGVzdFRhZ05vbmUnfQotICAgICAgICBtc2dfYWxsID0gJ0ZhaWxlZCB0byBnZXQgYWxsIG9ldGFnIGNhc2VzIHdpdGhvdXQgZmlsdGVyaW5nLicKKyAgICAgICAgIyBnZXQgYWxsIGNhc2VzIHdpdGhvdXQgYW55IGZpbHRlcmluZworICAgICAgICBzZWxmLl9ydW5UZXN0KFsnb2V0YWcnXSwgTm9uZSwgeworICAgICAgICAgICAgICAgICdvZXRhZy5UYWdUZXN0LnRlc3RUYWdHb29kJywKKyAgICAgICAgICAgICAgICAnb2V0YWcuVGFnVGVzdC50ZXN0VGFnT3RoZXInLAorICAgICAgICAgICAgICAgICdvZXRhZy5UYWdUZXN0LnRlc3RUYWdPdGhlck11bHRpJywKKyAgICAgICAgICAgICAgICAnb2V0YWcuVGFnVGVzdC50ZXN0VGFnTm9uZScsCisgICAgICAgICAgICAgICAgJ29ldGFnLlRhZ0NsYXNzVGVzdC50ZXN0VGFnT3RoZXInLAorICAgICAgICAgICAgICAgICdvZXRhZy5UYWdDbGFzc1Rlc3QudGVzdFRhZ090aGVyTXVsdGknLAorICAgICAgICAgICAgICAgICdvZXRhZy5UYWdDbGFzc1Rlc3QudGVzdFRhZ05vbmUnLAorICAgICAgICAgICAgICAgIH0pCiAKLSAgICAgICAgIyBHZXQgY2FzZXMgd2l0aCAnZ29vZFRhZycuCi0gICAgICAgIGZpbHRlcl9nb29kID0geydvZXRhZyc6J2dvb2RUYWcnfQotICAgICAgICB0ZXN0X2dvb2QgPSB7J3Rlc3RUYWdHb29kJ30KLSAgICAgICAgbXNnX2dvb2QgPSAnRmFpbGVkIHRvIGdldCBqdXN0IG9uZSB0ZXN0IGZpbHRlcmluZyB3aXRoICJnb29kVGFnIiBvZXRhZy4nCisgICAgICAgICMgZXhjbHVkZSBhbnkgY2FzZSB3aXRoIHRhZ3MKKyAgICAgICAgc2VsZi5fcnVuVGVzdChbJ29ldGFnJ10sIGxhbWJkYSB0YWdzOiB0YWdzLCB7CisgICAgICAgICAgICAgICAgJ29ldGFnLlRhZ1Rlc3QudGVzdFRhZ05vbmUnLAorICAgICAgICAgICAgICAgIH0pCiAKLSAgICAgICAgIyBHZXQgY2FzZXMgd2l0aCBhbiBpbnZhbGlkIHRhZy4KLSAgICAgICAgZmlsdGVyX2ludmFsaWQgPSB7J29ldGFnJzonaW52YWxpZFRhZyd9Ci0gICAgICAgIHRlc3RfaW52YWxpZCA9IHNldCgpCi0gICAgICAgIG1zZ19pbnZhbGlkID0gJ0ZhaWxlZCB0byBmaWx0ZXIgYWxsIHRlc3QgdXNpbmcgYW4gaW52YWxpZCBvZXRhZy4nCisgICAgICAgICMgZXhjbHVkZSBhbnkgY2FzZSB3aXRoIG90aGVyVGFnCisgICAgICAgIHNlbGYuX3J1blRlc3QoWydvZXRhZyddLCBsYW1iZGEgdGFnczogIm90aGVyVGFnIiBpbiB0YWdzLCB7CisgICAgICAgICAgICAgICAgJ29ldGFnLlRhZ1Rlc3QudGVzdFRhZ0dvb2QnLAorICAgICAgICAgICAgICAgICdvZXRhZy5UYWdUZXN0LnRlc3RUYWdOb25lJywKKyAgICAgICAgICAgICAgICAnb2V0YWcuVGFnQ2xhc3NUZXN0LnRlc3RUYWdOb25lJywKKyAgICAgICAgICAgICAgICB9KQogCi0gICAgICAgIHRlc3RzID0gKChmaWx0ZXJfYWxsLCB0ZXN0X2FsbCwgbXNnX2FsbCksCi0gICAgICAgICAgICAgICAgIChmaWx0ZXJfZ29vZCwgdGVzdF9nb29kLCBtc2dfZ29vZCksCi0gICAgICAgICAgICAgICAgIChmaWx0ZXJfaW52YWxpZCwgdGVzdF9pbnZhbGlkLCBtc2dfaW52YWxpZCkpCisgICAgICAgICMgZXhjbHVkZSBhbnkgY2FzZSB3aXRoIGNsYXNzVGFnCisgICAgICAgIHNlbGYuX3J1blRlc3QoWydvZXRhZyddLCBsYW1iZGEgdGFnczogImNsYXNzVGFnIiBpbiB0YWdzLCB7CisgICAgICAgICAgICAgICAgJ29ldGFnLlRhZ1Rlc3QudGVzdFRhZ0dvb2QnLAorICAgICAgICAgICAgICAgICdvZXRhZy5UYWdUZXN0LnRlc3RUYWdPdGhlcicsCisgICAgICAgICAgICAgICAgJ29ldGFnLlRhZ1Rlc3QudGVzdFRhZ090aGVyTXVsdGknLAorICAgICAgICAgICAgICAgICdvZXRhZy5UYWdUZXN0LnRlc3RUYWdOb25lJywKKyAgICAgICAgICAgICAgICB9KQogCi0gICAgICAgIGZvciB0ZXN0IGluIHRlc3RzOgotICAgICAgICAgICAgc2VsZi5fcnVuRmlsdGVyVGVzdChbJ29ldGFnJ10sIHRlc3RbMF0sIHRlc3RbMV0sIHRlc3RbMl0pCisgICAgICAgICMgaW5jbHVkZSBhbnkgY2FzZSB3aXRoIGNsYXNzVGFnCisgICAgICAgIHNlbGYuX3J1blRlc3QoWydvZXRhZyddLCBsYW1iZGEgdGFnczogImNsYXNzVGFnIiBub3QgaW4gdGFncywgeworICAgICAgICAgICAgICAgICdvZXRhZy5UYWdDbGFzc1Rlc3QudGVzdFRhZ090aGVyJywKKyAgICAgICAgICAgICAgICAnb2V0YWcuVGFnQ2xhc3NUZXN0LnRlc3RUYWdPdGhlck11bHRpJywKKyAgICAgICAgICAgICAgICAnb2V0YWcuVGFnQ2xhc3NUZXN0LnRlc3RUYWdOb25lJywKKyAgICAgICAgICAgICAgICB9KQorCisgICAgICAgICMgaW5jbHVkZSBhbnkgY2FzZSB3aXRoIGNsYXNzVGFnIG9yIG5vIHRhZ3MKKyAgICAgICAgc2VsZi5fcnVuVGVzdChbJ29ldGFnJ10sIGxhbWJkYSB0YWdzOiB0YWdzIGFuZCAiY2xhc3NUYWciIG5vdCBpbiB0YWdzLCB7CisgICAgICAgICAgICAgICAgJ29ldGFnLlRhZ1Rlc3QudGVzdFRhZ05vbmUnLAorICAgICAgICAgICAgICAgICdvZXRhZy5UYWdDbGFzc1Rlc3QudGVzdFRhZ090aGVyJywKKyAgICAgICAgICAgICAgICAnb2V0YWcuVGFnQ2xhc3NUZXN0LnRlc3RUYWdPdGhlck11bHRpJywKKyAgICAgICAgICAgICAgICAnb2V0YWcuVGFnQ2xhc3NUZXN0LnRlc3RUYWdOb25lJywKKyAgICAgICAgICAgICAgICB9KQogCiBjbGFzcyBUZXN0RGVwZW5kc0RlY29yYXRvcihUZXN0QmFzZSk6CiAgICAgbW9kdWxlcyA9IFsnZGVwZW5kcyddCmRpZmYgLS1naXQgYS9wb2t5L21ldGEvbGliL29lcWEvY29yZS90ZXN0cy90ZXN0X2xvYWRlci5weSBiL3Bva3kvbWV0YS9saWIvb2VxYS9jb3JlL3Rlc3RzL3Rlc3RfbG9hZGVyLnB5CmluZGV4IDUxOWJhOTYuLmNiMzhhYzggMTAwNzU1Ci0tLSBhL3Bva3kvbWV0YS9saWIvb2VxYS9jb3JlL3Rlc3RzL3Rlc3RfbG9hZGVyLnB5CisrKyBiL3Bva3kvbWV0YS9saWIvb2VxYS9jb3JlL3Rlc3RzL3Rlc3RfbG9hZGVyLnB5CkBAIC0xNSwzMSArMTUsNyBAQAogZnJvbSBvZXFhLmNvcmUudXRpbHMudGVzdCBpbXBvcnQgZ2V0U3VpdGVNb2R1bGVzLCBnZXRTdWl0ZUNhc2VzSURzCiAKIGNsYXNzIFRlc3RMb2FkZXIoVGVzdEJhc2UpOgotCi0gICAgZGVmIHRlc3RfZmFpbF9lbXB0eV9maWx0ZXIoc2VsZik6Ci0gICAgICAgIGZpbHRlcnMgPSB7J29ldGFnJyA6ICcnfQotICAgICAgICBleHBlY3QgPSAnRmlsdGVyIG9ldGFnIHNwZWNpZmllZCBpcyBlbXB0eScKLSAgICAgICAgbXNnID0gJ0V4cGVjdGVkIFR5cGVFcnJvciBleGNlcHRpb24gZm9yIGhhdmluZyBpbnZhbGlkIGZpbHRlcicKLSAgICAgICAgdHJ5OgotICAgICAgICAgICAgIyBNdXN0IHRocm93IFR5cGVFcnJvciBiZWNhdXNlIGVtcHR5IGZpbHRlcgotICAgICAgICAgICAgdGMgPSBzZWxmLl90ZXN0TG9hZGVyKGZpbHRlcnM9ZmlsdGVycykKLSAgICAgICAgICAgIHNlbGYuZmFpbChtc2cpCi0gICAgICAgIGV4Y2VwdCBUeXBlRXJyb3IgYXMgZToKLSAgICAgICAgICAgIHJlc3VsdCA9IFRydWUgaWYgZXhwZWN0IGluIHN0cihlKSBlbHNlIEZhbHNlCi0gICAgICAgICAgICBzZWxmLmFzc2VydFRydWUocmVzdWx0LCBtc2c9bXNnKQotCi0gICAgZGVmIHRlc3RfZmFpbF9pbnZhbGlkX2ZpbHRlcihzZWxmKToKLSAgICAgICAgZmlsdGVycyA9IHsnaW52YWxpZCcgOiAnZ29vZCd9Ci0gICAgICAgIGV4cGVjdCA9ICdmaWx0ZXIgYnV0IG5vdCBkZWNsYXJlZCBpbiBhbnkgb2YnCi0gICAgICAgIG1zZyA9ICdFeHBlY3RlZCBUeXBlRXJyb3IgZXhjZXB0aW9uIGZvciBoYXZpbmcgaW52YWxpZCBmaWx0ZXInCi0gICAgICAgIHRyeToKLSAgICAgICAgICAgICMgTXVzdCB0aHJvdyBUeXBlRXJyb3IgYmVjYXVzZSBpbnZhbGlkIGZpbHRlcgotICAgICAgICAgICAgdGMgPSBzZWxmLl90ZXN0TG9hZGVyKGZpbHRlcnM9ZmlsdGVycykKLSAgICAgICAgICAgIHNlbGYuZmFpbChtc2cpCi0gICAgICAgIGV4Y2VwdCBUeXBlRXJyb3IgYXMgZToKLSAgICAgICAgICAgIHJlc3VsdCA9IFRydWUgaWYgZXhwZWN0IGluIHN0cihlKSBlbHNlIEZhbHNlCi0gICAgICAgICAgICBzZWxmLmFzc2VydFRydWUocmVzdWx0LCBtc2c9bXNnKQotCisgICAgQHVuaXR0ZXN0LnNraXAoImludmFsaWQgZGlyZWN0b3J5IGlzIG1pc3Npbmcgb2V0YWcucHkiKQogICAgIGRlZiB0ZXN0X2ZhaWxfZHVwbGljYXRlZF9tb2R1bGUoc2VsZik6CiAgICAgICAgIGNhc2VzX3BhdGggPSBzZWxmLmNhc2VzX3BhdGgKICAgICAgICAgaW52YWxpZF9wYXRoID0gb3MucGF0aC5qb2luKGNhc2VzX3BhdGgsICdsb2FkZXInLCAnaW52YWxpZCcpCmRpZmYgLS1naXQgYS9wb2t5L21ldGEvbGliL29lcWEvY29yZS91dGlscy9jb25jdXJyZW5jeXRlc3QucHkgYi9wb2t5L21ldGEvbGliL29lcWEvY29yZS91dGlscy9jb25jdXJyZW5jeXRlc3QucHkKaW5kZXggNmJmNzcxOC4uZmE2ZmEzNCAxMDA2NDQKLS0tIGEvcG9reS9tZXRhL2xpYi9vZXFhL2NvcmUvdXRpbHMvY29uY3VycmVuY3l0ZXN0LnB5CisrKyBiL3Bva3kvbWV0YS9saWIvb2VxYS9jb3JlL3V0aWxzL2NvbmN1cnJlbmN5dGVzdC5weQpAQCAtMjEsNiArMjEsNyBAQAogaW1wb3J0IHRocmVhZGluZwogaW1wb3J0IHRpbWUKIGltcG9ydCBpbworaW1wb3J0IGpzb24KIGltcG9ydCBzdWJ1bml0CiAKIGZyb20gcXVldWUgaW1wb3J0IFF1ZXVlCkBAIC0yOCw2ICsyOSw4IEBACiBmcm9tIHN1YnVuaXQgaW1wb3J0IFByb3RvY29sVGVzdENhc2UsIFRlc3RQcm90b2NvbENsaWVudAogZnJvbSBzdWJ1bml0LnRlc3RfcmVzdWx0cyBpbXBvcnQgQXV0b1RpbWluZ1Rlc3RSZXN1bHREZWNvcmF0b3IKIGZyb20gdGVzdHRvb2xzIGltcG9ydCBUaHJlYWRzYWZlRm9yd2FyZGluZ1Jlc3VsdCwgaXRlcmF0ZV90ZXN0cworZnJvbSB0ZXN0dG9vbHMuY29udGVudCBpbXBvcnQgQ29udGVudAorZnJvbSB0ZXN0dG9vbHMuY29udGVudF90eXBlIGltcG9ydCBDb250ZW50VHlwZQogZnJvbSBvZXFhLnV0aWxzLmNvbW1hbmRzIGltcG9ydCBnZXRfdGVzdF9sYXllcgogCiBpbXBvcnQgYmIudXRpbHMKQEAgLTcwLDYgKzczLDU4IEBACiAgICAgICAgICAgICBzZWxmLnNlbWFwaG9yZS5yZWxlYXNlKCkKICAgICAgICAgc3VwZXIoQkJUaHJlYWRzYWZlRm9yd2FyZGluZ1Jlc3VsdCwgc2VsZikuX2FkZF9yZXN1bHRfd2l0aF9zZW1hcGhvcmUobWV0aG9kLCB0ZXN0LCAqYXJncywgKiprd2FyZ3MpCiAKK2NsYXNzIFByb3h5VGVzdFJlc3VsdDoKKyAgICAjIGEgdmVyeSBiYXNpYyBUZXN0UmVzdWx0IHByb3h5LCBpbiBvcmRlciB0byBtb2RpZnkgYWRkKiBjYWxscworICAgIGRlZiBfX2luaXRfXyhzZWxmLCB0YXJnZXQpOgorICAgICAgICBzZWxmLnJlc3VsdCA9IHRhcmdldAorCisgICAgZGVmIF9hZGRSZXN1bHQoc2VsZiwgbWV0aG9kLCB0ZXN0LCAqYXJncywgKiprd2FyZ3MpOgorICAgICAgICByZXR1cm4gbWV0aG9kKHRlc3QsICphcmdzLCAqKmt3YXJncykKKworICAgIGRlZiBhZGRFcnJvcihzZWxmLCB0ZXN0LCAqYXJncywgKiprd2FyZ3MpOgorICAgICAgICBzZWxmLl9hZGRSZXN1bHQoc2VsZi5yZXN1bHQuYWRkRXJyb3IsIHRlc3QsICphcmdzLCAqKmt3YXJncykKKworICAgIGRlZiBhZGRGYWlsdXJlKHNlbGYsIHRlc3QsICphcmdzLCAqKmt3YXJncyk6CisgICAgICAgIHNlbGYuX2FkZFJlc3VsdChzZWxmLnJlc3VsdC5hZGRGYWlsdXJlLCB0ZXN0LCAqYXJncywgKiprd2FyZ3MpCisKKyAgICBkZWYgYWRkU3VjY2VzcyhzZWxmLCB0ZXN0LCAqYXJncywgKiprd2FyZ3MpOgorICAgICAgICBzZWxmLl9hZGRSZXN1bHQoc2VsZi5yZXN1bHQuYWRkU3VjY2VzcywgdGVzdCwgKmFyZ3MsICoqa3dhcmdzKQorCisgICAgZGVmIGFkZEV4cGVjdGVkRmFpbHVyZShzZWxmLCB0ZXN0LCAqYXJncywgKiprd2FyZ3MpOgorICAgICAgICBzZWxmLl9hZGRSZXN1bHQoc2VsZi5yZXN1bHQuYWRkRXhwZWN0ZWRGYWlsdXJlLCB0ZXN0LCAqYXJncywgKiprd2FyZ3MpCisKKyAgICBkZWYgYWRkVW5leHBlY3RlZFN1Y2Nlc3Moc2VsZiwgdGVzdCwgKmFyZ3MsICoqa3dhcmdzKToKKyAgICAgICAgc2VsZi5fYWRkUmVzdWx0KHNlbGYucmVzdWx0LmFkZFVuZXhwZWN0ZWRTdWNjZXNzLCB0ZXN0LCAqYXJncywgKiprd2FyZ3MpCisKKyAgICBkZWYgX19nZXRhdHRyX18oc2VsZiwgYXR0cik6CisgICAgICAgIHJldHVybiBnZXRhdHRyKHNlbGYucmVzdWx0LCBhdHRyKQorCitjbGFzcyBFeHRyYVJlc3VsdHNEZWNvZGVyVGVzdFJlc3VsdChQcm94eVRlc3RSZXN1bHQpOgorICAgIGRlZiBfYWRkUmVzdWx0KHNlbGYsIG1ldGhvZCwgdGVzdCwgKmFyZ3MsICoqa3dhcmdzKToKKyAgICAgICAgaWYgImRldGFpbHMiIGluIGt3YXJncyBhbmQgImV4dHJhcmVzdWx0cyIgaW4ga3dhcmdzWyJkZXRhaWxzIl06CisgICAgICAgICAgICBpZiBpc2luc3RhbmNlKGt3YXJnc1siZGV0YWlscyJdWyJleHRyYXJlc3VsdHMiXSwgQ29udGVudCk6CisgICAgICAgICAgICAgICAga3dhcmdzID0ga3dhcmdzLmNvcHkoKQorICAgICAgICAgICAgICAgIGt3YXJnc1siZGV0YWlscyJdID0ga3dhcmdzWyJkZXRhaWxzIl0uY29weSgpCisgICAgICAgICAgICAgICAgZXh0cmFyZXN1bHRzID0ga3dhcmdzWyJkZXRhaWxzIl1bImV4dHJhcmVzdWx0cyJdCisgICAgICAgICAgICAgICAgZGF0YSA9IGJ5dGVhcnJheSgpCisgICAgICAgICAgICAgICAgZm9yIGIgaW4gZXh0cmFyZXN1bHRzLml0ZXJfYnl0ZXMoKToKKyAgICAgICAgICAgICAgICAgICAgZGF0YSArPSBiCisgICAgICAgICAgICAgICAgZXh0cmFyZXN1bHRzID0ganNvbi5sb2FkcyhkYXRhLmRlY29kZSgpKQorICAgICAgICAgICAgICAgIGt3YXJnc1siZGV0YWlscyJdWyJleHRyYXJlc3VsdHMiXSA9IGV4dHJhcmVzdWx0cworICAgICAgICByZXR1cm4gbWV0aG9kKHRlc3QsICphcmdzLCAqKmt3YXJncykKKworY2xhc3MgRXh0cmFSZXN1bHRzRW5jb2RlclRlc3RSZXN1bHQoUHJveHlUZXN0UmVzdWx0KToKKyAgICBkZWYgX2FkZFJlc3VsdChzZWxmLCBtZXRob2QsIHRlc3QsICphcmdzLCAqKmt3YXJncyk6CisgICAgICAgIGlmIGhhc2F0dHIodGVzdCwgImV4dHJhcmVzdWx0cyIpOgorICAgICAgICAgICAgZXh0cmFzID0gbGFtYmRhIDogW2pzb24uZHVtcHModGVzdC5leHRyYXJlc3VsdHMpLmVuY29kZSgpXQorICAgICAgICAgICAga3dhcmdzID0ga3dhcmdzLmNvcHkoKQorICAgICAgICAgICAgaWYgImRldGFpbHMiIG5vdCBpbiBrd2FyZ3M6CisgICAgICAgICAgICAgICAga3dhcmdzWyJkZXRhaWxzIl0gPSB7fQorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICBrd2FyZ3NbImRldGFpbHMiXSA9IGt3YXJnc1siZGV0YWlscyJdLmNvcHkoKQorICAgICAgICAgICAga3dhcmdzWyJkZXRhaWxzIl1bImV4dHJhcmVzdWx0cyJdID0gQ29udGVudChDb250ZW50VHlwZSgiYXBwbGljYXRpb24iLCAianNvbiIsIHsnY2hhcnNldCc6ICd1dGY4J30pLCBleHRyYXMpCisgICAgICAgIHJldHVybiBtZXRob2QodGVzdCwgKmFyZ3MsICoqa3dhcmdzKQorCiAjCiAjIFdlIGhhdmUgdG8gcGF0Y2ggc3VidW5pdCBzaW5jZSBpdCBkb2Vzbid0IHVuZGVyc3RhbmQgaG93IHRvIGhhbmRsZSBhZGRFcnJvcgogIyBvdXRzaWRlIG9mIGEgcnVubmluZyB0ZXN0IGNhc2UuIFRoaXMgY2FuIGhhcHBlbiBpZiBjbGFzc1NldFVwKCkgZmFpbHMKQEAgLTExNiw3ICsxNzEsOSBAQAogICAgICAgICAgICAgcmVzdWx0LnRocmVhZHByb2dyZXNzID0ge30KICAgICAgICAgICAgIGZvciBpLCAodGVzdCwgdGVzdG51bSkgaW4gZW51bWVyYXRlKHRlc3RzKToKICAgICAgICAgICAgICAgICByZXN1bHQudGhyZWFkcHJvZ3Jlc3NbaV0gPSBbXQotICAgICAgICAgICAgICAgIHByb2Nlc3NfcmVzdWx0ID0gQkJUaHJlYWRzYWZlRm9yd2FyZGluZ1Jlc3VsdChyZXN1bHQsIHNlbWFwaG9yZSwgaSwgdGVzdG51bSwgdG90YWx0ZXN0cykKKyAgICAgICAgICAgICAgICBwcm9jZXNzX3Jlc3VsdCA9IEJCVGhyZWFkc2FmZUZvcndhcmRpbmdSZXN1bHQoCisgICAgICAgICAgICAgICAgICAgICAgICBFeHRyYVJlc3VsdHNEZWNvZGVyVGVzdFJlc3VsdChyZXN1bHQpLAorICAgICAgICAgICAgICAgICAgICAgICAgc2VtYXBob3JlLCBpLCB0ZXN0bnVtLCB0b3RhbHRlc3RzKQogICAgICAgICAgICAgICAgICMgRm9yY2UgYnVmZmVyaW5nIG9mIHN0ZG91dC9zdGRlcnIgc28gdGhlIGNvbnNvbGUgZG9lc24ndCBnZXQgY29ycnVwdGVkIGJ5IHRlc3Qgb3V0cHV0CiAgICAgICAgICAgICAgICAgIyBhcyBwZXIgZGVmYXVsdCBpbiBwYXJlbnQgY29kZQogICAgICAgICAgICAgICAgIHByb2Nlc3NfcmVzdWx0LmJ1ZmZlciA9IFRydWUKQEAgLTIzMSw3ICsyODgsNyBAQAogICAgICAgICAgICAgICAgICMgYXMgcGVyIGRlZmF1bHQgaW4gcGFyZW50IGNvZGUKICAgICAgICAgICAgICAgICBzdWJ1bml0X2NsaWVudC5idWZmZXIgPSBUcnVlCiAgICAgICAgICAgICAgICAgc3VidW5pdF9yZXN1bHQgPSBBdXRvVGltaW5nVGVzdFJlc3VsdERlY29yYXRvcihzdWJ1bml0X2NsaWVudCkKLSAgICAgICAgICAgICAgICBwcm9jZXNzX3N1aXRlLnJ1bihzdWJ1bml0X3Jlc3VsdCkKKyAgICAgICAgICAgICAgICBwcm9jZXNzX3N1aXRlLnJ1bihFeHRyYVJlc3VsdHNFbmNvZGVyVGVzdFJlc3VsdChzdWJ1bml0X3Jlc3VsdCkpCiAgICAgICAgICAgICAgICAgaWYgb3VycGlkICE9IG9zLmdldHBpZCgpOgogICAgICAgICAgICAgICAgICAgICBvcy5fZXhpdCgwKQogICAgICAgICAgICAgICAgIGlmIG5ld2J1aWxkZGlyOgpkaWZmIC0tZ2l0IGEvcG9reS9tZXRhL2xpYi9vZXFhL21hbnVhbC9ic3AtaHcuanNvbiBiL3Bva3kvbWV0YS9saWIvb2VxYS9tYW51YWwvYnNwLWh3Lmpzb24KaW5kZXggNGI3Yzc2Zi4uMThjZWMyMiAxMDA2NDQKLS0tIGEvcG9reS9tZXRhL2xpYi9vZXFhL21hbnVhbC9ic3AtaHcuanNvbgorKysgYi9wb2t5L21ldGEvbGliL29lcWEvbWFudWFsL2JzcC1ody5qc29uCkBAIC01MjYsNyArNTI2LDcgQEAKICAgICAgICAgICAgICAgICAgICAgImV4cGVjdGVkX3Jlc3VsdHMiOiAiIgogICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgIjQiOiB7Ci0gICAgICAgICAgICAgICAgICAgICJhY3Rpb24iOiAiY2hlY2sgcGluZyBzdGF0dXMgIFxuXG5Ob3RlOiBUaGlzIFRDIGFwcGx5IG9ubHkgZm9yIGNvcmUtaW1hZ2UtZnVsbC1jbWQgYW5kIGNvcmUtaW1hZ2UtbHNiIC4iLAorICAgICAgICAgICAgICAgICAgICAiYWN0aW9uIjogImNoZWNrIHBpbmcgc3RhdHVzICBcblxuTm90ZTogVGhpcyBUQyBhcHBseSBvbmx5IGZvciBjb3JlLWltYWdlLWZ1bGwtY21kLiIsCiAgICAgICAgICAgICAgICAgICAgICJleHBlY3RlZF9yZXN1bHRzIjogInBpbmcgc2hvdWxkIGFsd2F5cyB3b3JrIGJlZm9yZS9hZnRlciBzdGFuZGJ5IgogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0sCmRpZmYgLS1naXQgYS9wb2t5L21ldGEvbGliL29lcWEvbWFudWFsL2NvbXBsaWFuY2UtdGVzdC5qc29uIGIvcG9reS9tZXRhL2xpYi9vZXFhL21hbnVhbC9jb21wbGlhbmNlLXRlc3QuanNvbgppbmRleCA4YzEzYjY4Li4zNjdhNDE2IDEwMDY0NAotLS0gYS9wb2t5L21ldGEvbGliL29lcWEvbWFudWFsL2NvbXBsaWFuY2UtdGVzdC5qc29uCisrKyBiL3Bva3kvbWV0YS9saWIvb2VxYS9tYW51YWwvY29tcGxpYW5jZS10ZXN0Lmpzb24KQEAgLTEsMzYgKzEsNiBAQAogWwogICAgIHsKICAgICAgICAgInRlc3QiOiB7Ci0gICAgICAgICAgICAiQGFsaWFzIjogImNvbXBsaWFuY2UtdGVzdC5jb21wbGlhbmNlLXRlc3QuTFNCX3N1YnNldF90ZXN0X3N1aXRlIiwKLSAgICAgICAgICAgICJhdXRob3IiOiBbCi0gICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICAiZW1haWwiOiAiY29ybmVsaXV4LnN0b2ljZXNjdUBpbnRlbC5jb20iLAotICAgICAgICAgICAgICAgICAgICAibmFtZSI6ICJjb3JuZWxpdXguc3RvaWNlc2N1QGludGVsLmNvbSIKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICBdLAotICAgICAgICAgICAgImV4ZWN1dGlvbiI6IHsKLSAgICAgICAgICAgICAgICAiMSI6IHsKLSAgICAgICAgICAgICAgICAgICAgImFjdGlvbiI6ICJHZXQgbHNkLXNkayBpbWFnZSBhbmQgaW5zdGFsbCBpdCBvbiB0YXJnZXQgZGV2aWNlIG9yIHN0YXJ0IHRoZSBpbWFnZShpZiBpdCBpcyBRRU1VKSB3aXRoIG9wdGlvbiBcIi1tIDUxMk1cIiIsCi0gICAgICAgICAgICAgICAgICAgICJleHBlY3RlZF9yZXN1bHRzIjogIiIKLSAgICAgICAgICAgICAgICB9LAotICAgICAgICAgICAgICAgICIyIjogewotICAgICAgICAgICAgICAgICAgICAiYWN0aW9uIjogIkNvbW1lbnQgaW4gL29wdC9sc2ItdGVzdC9zZXNzaW9uIGFueSB0ZXN0cyB5b3UgZG9uJ3Qgd2FudCB0byBydW4uIiwKLSAgICAgICAgICAgICAgICAgICAgImV4cGVjdGVkX3Jlc3VsdHMiOiAiIgotICAgICAgICAgICAgICAgIH0sCi0gICAgICAgICAgICAgICAgIjMiOiB7Ci0gICAgICAgICAgICAgICAgICAgICJhY3Rpb24iOiAiUnVuIC91c3IvYmluL0xTQl9UZXN0LnNoIHdoaWNoIHNob3VsZCBkb3dubG9hZCB0aGUgTFNCIHN1aXRlIGFuZCBzZXQgaXQgdXAuIFNvbWUgcGFja2FnZXMgbWF5IGZhaWwgdG8gZG93bmxvYWQgYmVjYXVzZSB0aGVpciBsb2NhdGlvbiBjaGFuZ2VkIG9uIGZ0cC5saW51eGZvdW5kYXRpb24ub3JnLiBZb3UgbmVlZCB0byBtYW51YWxseSB1cGRhdGUgL29wdC9sc2ItdGVzdC9wYWNrYWdlc19saXN0IiwKLSAgICAgICAgICAgICAgICAgICAgImV4cGVjdGVkX3Jlc3VsdHMiOiAiIgotICAgICAgICAgICAgICAgIH0sCi0gICAgICAgICAgICAgICAgIjQiOiB7Ci0gICAgICAgICAgICAgICAgICAgICJhY3Rpb24iOiAiVGVzdHMgc2hvdWxkIHN0YXJ0IGF1dG9tYXRpY2FsbHksIHlvdSBjYW4gdXNlIHRoZSB3ZWIgaW50ZXJmYWNlIHRvIHJlY29uZmlndXJlIHRoZSBzZXR1cC4gIiwKLSAgICAgICAgICAgICAgICAgICAgImV4cGVjdGVkX3Jlc3VsdHMiOiAiQ2hlY2sgdGhlIHJlc3VsdCBvbiB3aWtpIGh0dHBzOi8vd2lraS55b2N0b3Byb2plY3Qub3JnL3dpa2kvTFNCX1Jlc3VsdCBObyByZWdyZXNzaW9uIGZhaWx1cmVzIHNob3VsZCBiZSBtZXQuIgotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0sCi0gICAgICAgICAgICAic3VtbWFyeSI6ICJMU0Jfc3Vic2V0X3Rlc3Rfc3VpdGUiCi0gICAgICAgIH0KLSAgICB9LAotICAgIHsKLSAgICAgICAgInRlc3QiOiB7CiAgICAgICAgICAgICAiQGFsaWFzIjogImNvbXBsaWFuY2UtdGVzdC5jb21wbGlhbmNlLXRlc3Quc3RyZXNzX3Rlc3RfLV9HZW5lcmljeDg2LTY0IiwKICAgICAgICAgICAgICJhdXRob3IiOiBbCiAgICAgICAgICAgICAgICAgewpAQCAtNDAsNyArMTAsNyBAQAogICAgICAgICAgICAgXSwKICAgICAgICAgICAgICJleGVjdXRpb24iOiB7CiAgICAgICAgICAgICAgICAgIjEiOiB7Ci0gICAgICAgICAgICAgICAgICAgICJhY3Rpb24iOiAiQm9vdHVwIHdpdGggY29yZS1pbWFnZS1sc2Itc2RrIGltYWdlIiwKKyAgICAgICAgICAgICAgICAgICAgImFjdGlvbiI6ICJCb290dXAgd2l0aCBjb3JlLWltYWdlLXNhdG8tc2RrIGltYWdlIiwKICAgICAgICAgICAgICAgICAgICAgImV4cGVjdGVkX3Jlc3VsdHMiOiAiIgogICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgIjIiOiB7CmRpZmYgLS1naXQgYS9wb2t5L21ldGEvbGliL29lcWEvbWFudWFsL2Nyb3BzLmpzb24gYi9wb2t5L21ldGEvbGliL29lcWEvbWFudWFsL2Nyb3BzLmpzb24KaW5kZXggMWNmM2M4Zi4uNWNmYTY1MyAxMDA2NDQKLS0tIGEvcG9reS9tZXRhL2xpYi9vZXFhL21hbnVhbC9jcm9wcy5qc29uCisrKyBiL3Bva3kvbWV0YS9saWIvb2VxYS9tYW51YWwvY3JvcHMuanNvbgpAQCAtMjM0LDE2ICsyMzQsMTYgQEAKICAgICAgICAgICAgICAgICAgICAgImV4cGVjdGVkX3Jlc3VsdHMiOiAidGhpcyBzaG91bGQgb3V0cHV0IHRoZSBkaXJlY3Rvcnkgb2YgdGhlIGRldnRvb2wgc2NyaXB0IGFuZCBpdCBzaG91bGQgYmUgd2l0aGluIHRoZSBzZGsgd29ya2RpciB5b3UgYXJlIHdvcmtpbmcgaW4uICAgXG5cbiIKICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICI1IjogewotICAgICAgICAgICAgICAgICAgICAiYWN0aW9uIjogImRldnRvb2wgYWRkIHY0bDJsb29wYmFjay1kcml2ZXIgIGh0dHBzOi8vZ2l0aHViLmNvbS91bWxhZXV0ZS92NGwybG9vcGJhY2suZ2l0ICAgXG5cbiIsCi0gICAgICAgICAgICAgICAgICAgICJleHBlY3RlZF9yZXN1bHRzIjogIlRoaXMgc2hvdWxkIGF1dG9tYXRpY2FsbHkgY3JlYXRlIHRoZSByZWNpcGUgdjRsMmxvb3BiYWNrLWRyaXZlci5iYiB1bmRlciA8Y3JvcHMtZXNkay13b3JrZGlyLXdvcmtzcGFjZT4vcmVjaXBlcy92NGwybG9vcGJhY2stZHJpdmVyL3Y0bDJsb29wYmFjay1kcml2ZXIuYmIgIgorICAgICAgICAgICAgICAgICAgICAiYWN0aW9uIjogImRldnRvb2wgYWRkIGtlcm5lbC1tb2R1bGUtaGVsbG8td29ybGQgaHR0cHM6Ly9naXQueW9jdG9wcm9qZWN0Lm9yZy9naXQva2VybmVsLW1vZHVsZS1oZWxsby13b3JsZCBcblxuIiwKKyAgICAgICAgICAgICAgICAgICAgImV4cGVjdGVkX3Jlc3VsdHMiOiAiVGhpcyBzaG91bGQgYXV0b21hdGljYWxseSBjcmVhdGUgdGhlIHJlY2lwZSBrZXJuZWwtbW9kdWxlLWhlbGxvLXdvcmxkLmJiIHVuZGVyIDxjcm9wcy1lc2RrLXdvcmtkaXItd29ya3NwYWNlPi9yZWNpcGVzL2tlcm5lbC1tb2R1bGUtaGVsbG8td29ybGQva2VybmVsLW1vZHVsZS1oZWxsby13b3JsZC5iYiAiCiAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAiNiI6IHsKLSAgICAgICAgICAgICAgICAgICAgImFjdGlvbiI6ICJkZXZ0b29sIGJ1aWxkIHY0bDJsb29wYmFjay1kcml2ZXIgICBcblxuIiwKKyAgICAgICAgICAgICAgICAgICAgImFjdGlvbiI6ICJkZXZ0b29sIGJ1aWxkIGtlcm5lbC1tb2R1bGUtaGVsbG8td29ybGQgICBcblxuIiwKICAgICAgICAgICAgICAgICAgICAgImV4cGVjdGVkX3Jlc3VsdHMiOiAiVGhpcyBzaG91bGQgY29tcGlsZSBhbiBpbWFnZSAgIFxuXG4iCiAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAiNyI6IHsKLSAgICAgICAgICAgICAgICAgICAgImFjdGlvbiI6ICJkZXZ0b29sIHJlc2V0IHY0bDJsb29wYmFjay1kcml2ZXIgICAiLAotICAgICAgICAgICAgICAgICAgICAiZXhwZWN0ZWRfcmVzdWx0cyI6ICJUaGlzIGNsZWFucyBzeXNyb290IG9mIHRoZSB2NGwybG9vcGJhY2stZHJpdmVyIHJlY2lwZSwgYnV0IGl0IGxlYXZlcyB0aGUgc291cmNlIHRyZWUgaW50YWN0LiBtZWFuaW5nIGl0IGRvZXMgbm90IGVyYXNlLiIKKyAgICAgICAgICAgICAgICAgICAgImFjdGlvbiI6ICJkZXZ0b29sIHJlc2V0IGtlcm5lbC1tb2R1bGUtaGVsbG8td29ybGQgICAiLAorICAgICAgICAgICAgICAgICAgICAiZXhwZWN0ZWRfcmVzdWx0cyI6ICJUaGlzIGNsZWFucyBzeXNyb290IG9mIHRoZSBrZXJuZWwtbW9kdWxlLWhlbGxvLXdvcmxkIHJlY2lwZSwgYnV0IGl0IGxlYXZlcyB0aGUgc291cmNlIHRyZWUgaW50YWN0LiBtZWFuaW5nIGl0IGRvZXMgbm90IGVyYXNlLiIKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICB9LAogICAgICAgICAgICAgInN1bW1hcnkiOiAic2RrZXh0X2RldnRvb2xfa2VybmVsbW9kdWxlIgpAQCAtMjkxLDQgKzI5MSw0IEBACiAgICAgICAgICAgICAic3VtbWFyeSI6ICJzZGtleHRfcmVjaXBlc19mb3Jfbm9kZWpzIgogICAgICAgICB9CiAgICAgfQotXQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKK10KZGlmZiAtLWdpdCBhL3Bva3kvbWV0YS9saWIvb2VxYS9tYW51YWwvdG9hc3Rlci1tYW5hZ2VkLW1vZGUuanNvbiBiL3Bva3kvbWV0YS9saWIvb2VxYS9tYW51YWwvdG9hc3Rlci1tYW5hZ2VkLW1vZGUuanNvbgppbmRleCA4MTJmNTdkLi4xMjM3NGM3IDEwMDY0NAotLS0gYS9wb2t5L21ldGEvbGliL29lcWEvbWFudWFsL3RvYXN0ZXItbWFuYWdlZC1tb2RlLmpzb24KKysrIGIvcG9reS9tZXRhL2xpYi9vZXFhL21hbnVhbC90b2FzdGVyLW1hbmFnZWQtbW9kZS5qc29uCkBAIC0xNDk0LDcgKzE0OTQsNyBAQAogICAgICAgICAgICJleHBlY3RlZF9yZXN1bHRzIjogIkEgdHlwZSBpbiBmb3JtIGFwcGVhcnMuIFxuXG5cdCIKICAgICAgICAgfSwKICAgICAgICAgIjYiOiB7Ci0gICAgICAgICAgImFjdGlvbiI6ICJDaGFuZ2UgZGlzdHJvIChleDogcG9reS1sc2IpLiBcblxuXHQiLAorICAgICAgICAgICJhY3Rpb24iOiAiQ2hhbmdlIGRpc3RybyAoZXg6IHBva3ktdGlueSkuIFxuXG5cdCIsCiAgICAgICAgICAgImV4cGVjdGVkX3Jlc3VsdHMiOiAiRGlzdHJvIGhhcyBjaGFuZ2VkLiBcblxuXHQiCiAgICAgICAgIH0sCiAgICAgICAgICI3IjogewpAQCAtMTUwMyw3ICsxNTAzLDcgQEAKICAgICAgICAgfSwKICAgICAgICAgIjgiOiB7CiAgICAgICAgICAgImFjdGlvbiI6ICIgQnVpbGQgYSByZWNpcGUgKGV4OiBjb3JlLWltYWdlLW1pbmltYWwpIGFuZCB3YWl0IHVudGlsIGJ1aWxkIGZpbmlzaC4iLAotICAgICAgICAgICJleHBlY3RlZF9yZXN1bHRzIjogIkJ1aWxkIGZpbmlzaGVzIHN1Y2Nlc3NmdWxseS4gXG5cblRoZSAnc3VjY2VzcycgY3JpdGVyaWEgZm9yIHRoaXMgb25lIHNob3VsZCBiZSB0aGF0IHRoZSBidWlsZCBpcyByZXBvcnRlZCBhcyB1c2luZyB0aGUgcG9reS1sc2IgZGlzdHJvIGluIHRoZSBidWlsZCBzdW1tYXJ5IHBhZ2UsIGFuZCB0aGF0IHRoZSBESVNUUk8gdmFyaWFibGUgdmFsdWUgaW4gdGhlIGJpdGJha2UgdmFyaWFibGVzIHRhYmxlIGlzIHNldCB0byB0aGUgdmFsdWUgc3BlY2lmaWVkIGluIHRvYXN0ZXIgKHBva3ktbHNiIGFnYWluKS4iCisgICAgICAgICAgImV4cGVjdGVkX3Jlc3VsdHMiOiAiQnVpbGQgZmluaXNoZXMgc3VjY2Vzc2Z1bGx5LiBcblxuVGhlICdzdWNjZXNzJyBjcml0ZXJpYSBmb3IgdGhpcyBvbmUgc2hvdWxkIGJlIHRoYXQgdGhlIGJ1aWxkIGlzIHJlcG9ydGVkIGFzIHVzaW5nIHRoZSBwb2t5LXRpbnkgZGlzdHJvIGluIHRoZSBidWlsZCBzdW1tYXJ5IHBhZ2UsIGFuZCB0aGF0IHRoZSBESVNUUk8gdmFyaWFibGUgdmFsdWUgaW4gdGhlIGJpdGJha2UgdmFyaWFibGVzIHRhYmxlIGlzIHNldCB0byB0aGUgdmFsdWUgc3BlY2lmaWVkIGluIHRvYXN0ZXIgKHBva3ktdGlueSBhZ2FpbikuIgogICAgICAgICB9CiAgICAgICB9LAogICAgICAgInN1bW1hcnkiOiAiQnVpbGRfYV9yZWNpcGVfd2l0aF9kaWZmZXJlbnRfZGlzdHJvIgpAQCAtMTYxMiw3ICsxNjEyLDcgQEAKICAgICAgICAgICAiZXhwZWN0ZWRfcmVzdWx0cyI6ICIiCiAgICAgICAgIH0sCiAgICAgICAgICIzIjogewotICAgICAgICAgICJhY3Rpb24iOiAiQ2hlY2sgdGhhdCB0aGUgdGFibGUgaXMgcG9wdWxhdGVkIHdpdGggdGhlIGxpc3Qgb2YgaW1hZ2UgcmVjaXBlcyAoZWcuIGNvcmUtaW1hZ2UgbWluaW1hbCwgY29yZS1pbWFnZS1sc2IpIFxuXG5cbiIsCisgICAgICAgICAgImFjdGlvbiI6ICJDaGVjayB0aGF0IHRoZSB0YWJsZSBpcyBwb3B1bGF0ZWQgd2l0aCB0aGUgbGlzdCBvZiBpbWFnZSByZWNpcGVzIChlZy4gY29yZS1pbWFnZSBtaW5pbWFsKSBcblxuXG4iLAogICAgICAgICAgICJleHBlY3RlZF9yZXN1bHRzIjogIiIKICAgICAgICAgfSwKICAgICAgICAgIjQiOiB7CkBAIC0xNjcwLDcgKzE2NzAsNyBAQAogICAgICAgICAgICJleHBlY3RlZF9yZXN1bHRzIjogIiIKICAgICAgICAgfSwKICAgICAgICAgIjciOiB7Ci0gICAgICAgICAgImFjdGlvbiI6ICJTb3J0IHRoZSB0YWJsZSBieSBcIkxheWVyXCIgYW5kIHRoZW4gbmF2aWdhdGUgYXdheSBieSBzZWxlY3RpbmcgYW4gaW1hZ2UgKHN1Y2ggYXMgY29yZS1pbWFnZS1sc2IpLiBXaGVuIHlvdSBjbGljayB0aGUgXCJiYWNrXCIgYnV0dG9uIGluIHRoZSB3ZWItYnJvd3NlciB0byBnbyBiYWNrLCB0aGUgXCJOZXcgY3VzdG9tIGltYWdlXCIgdGFibGUgc2hvdWxkIHN0aWxsIGJlIHNvcnRlZCBieSBcIkxheWVyXCIuICBcblRoaXMgc2hvdWxkIGFwcGx5IGFsc28gYnkgbmF2aWdhdGluZyBiYWNrIHRvIHRoZSBwYWdlIGJ5IGFueSBvdGhlciBtZWFucy4gXG5cbiIsCisgICAgICAgICAgImFjdGlvbiI6ICJTb3J0IHRoZSB0YWJsZSBieSBcIkxheWVyXCIgYW5kIHRoZW4gbmF2aWdhdGUgYXdheSBieSBzZWxlY3RpbmcgYW4gaW1hZ2UuIFdoZW4geW91IGNsaWNrIHRoZSBcImJhY2tcIiBidXR0b24gaW4gdGhlIHdlYi1icm93c2VyIHRvIGdvIGJhY2ssIHRoZSBcIk5ldyBjdXN0b20gaW1hZ2VcIiB0YWJsZSBzaG91bGQgc3RpbGwgYmUgc29ydGVkIGJ5IFwiTGF5ZXJcIi4gIFxuVGhpcyBzaG91bGQgYXBwbHkgYWxzbyBieSBuYXZpZ2F0aW5nIGJhY2sgdG8gdGhlIHBhZ2UgYnkgYW55IG90aGVyIG1lYW5zLiBcblxuIiwKICAgICAgICAgICAiZXhwZWN0ZWRfcmVzdWx0cyI6ICIiCiAgICAgICAgIH0sCiAgICAgICAgICI4IjogewpAQCAtMjM0OCw3ICsyMzQ4LDcgQEAKICAgICAgICAgICAiZXhwZWN0ZWRfcmVzdWx0cyI6ICIiCiAgICAgICAgIH0sCiAgICAgICAgICIzIjogewotICAgICAgICAgICJhY3Rpb24iOiAiQnVpbGQgNiByZWNpcGVzIGV4YW1wbGUgKGNvcmUtaW1hZ2Utc2F0bywgY29yZS1pbWFnZS1taW5pbWFsLCBjb3JlLWltYWdlLWJhc2UsIGNvcmUtaW1hZ2UtbHNiLCBjb3JlLWltYWdlLWNsdXR0ZXIpIHRvIG5hbWUgYSBmZXcuICIsCisgICAgICAgICAgImFjdGlvbiI6ICJCdWlsZCA2IHJlY2lwZXMgZXhhbXBsZSAoY29yZS1pbWFnZS1zYXRvLCBjb3JlLWltYWdlLW1pbmltYWwsIGNvcmUtaW1hZ2UtYmFzZSwgY29yZS1pbWFnZS1jbHV0dGVyKSB0byBuYW1lIGEgZmV3LiAiLAogICAgICAgICAgICJleHBlY3RlZF9yZXN1bHRzIjogIiBBbGwgcmVjaXBlcyBhcmUgYnVpbHQgY29ycmVjdGx5IFxuXG4iCiAgICAgICAgIH0sCiAgICAgICAgICI0IjogewpAQCAtMjM4Miw3ICsyMzgyLDcgQEAKICAgICAgICAgICAiZXhwZWN0ZWRfcmVzdWx0cyI6ICIiCiAgICAgICAgIH0sCiAgICAgICAgICIzIjogewotICAgICAgICAgICJhY3Rpb24iOiAiQnVpbGQgNiByZWNpcGVzIGV4YW1wbGUgKGNvcmUtaW1hZ2Utc2F0bywgY29yZS1pbWFnZS1taW5pbWFsLCBjb3JlLWltYWdlLWJhc2UsIGNvcmUtaW1hZ2UtbHNiLCBjb3JlLWltYWdlLWNsdXR0ZXIpIHRvIG5hbWUgYSBmZXcuIFxuXG4iLAorICAgICAgICAgICJhY3Rpb24iOiAiQnVpbGQgNiByZWNpcGVzIGV4YW1wbGUgKGNvcmUtaW1hZ2Utc2F0bywgY29yZS1pbWFnZS1taW5pbWFsLCBjb3JlLWltYWdlLWJhc2UsIGNvcmUtaW1hZ2UtY2x1dHRlcikgdG8gbmFtZSBhIGZldy4gXG5cbiIsCiAgICAgICAgICAgImV4cGVjdGVkX3Jlc3VsdHMiOiAiQWxsIHJlY2lwZXMgYXJlIGJ1aWx0IGNvcnJlY3RseSBcblxuIgogICAgICAgICB9LAogICAgICAgICAiNCI6IHsKQEAgLTI0MjAsNyArMjQyMCw3IEBACiAgICAgICAgICAgImV4cGVjdGVkX3Jlc3VsdHMiOiAiIgogICAgICAgICB9LAogICAgICAgICAiMyI6IHsKLSAgICAgICAgICAiYWN0aW9uIjogIkJ1aWxkIDQgcmVjaXBlcyBleGFtcGxlIChjb3JlLWltYWdlLXNhdG8sIGNvcmUtaW1hZ2UtbWluaW1hbCwgY29yZS1pbWFnZS1iYXNlLCBjb3JlLWltYWdlLWxzYiwgY29yZS1pbWFnZS1jbHV0dGVyKSB0byBuYW1lIGEgZmV3LiBcblxuIiwKKyAgICAgICAgICAiYWN0aW9uIjogIkJ1aWxkIDQgcmVjaXBlcyBleGFtcGxlIChjb3JlLWltYWdlLXNhdG8sIGNvcmUtaW1hZ2UtbWluaW1hbCwgY29yZS1pbWFnZS1iYXNlLCBjb3JlLWltYWdlLWNsdXR0ZXIpIHRvIG5hbWUgYSBmZXcuIFxuXG4iLAogICAgICAgICAgICJleHBlY3RlZF9yZXN1bHRzIjogIiBBbGwgcmVjaXBlcyBhcmUgYnVpbHQgY29ycmVjdGx5IFxuXG4iCiAgICAgICAgIH0sCiAgICAgICAgICI0IjogewpkaWZmIC0tZ2l0IGEvcG9reS9tZXRhL2xpYi9vZXFhL3J1bnRpbWUvY2FzZXMvZG5mLnB5IGIvcG9reS9tZXRhL2xpYi9vZXFhL3J1bnRpbWUvY2FzZXMvZG5mLnB5CmluZGV4IDYyOWI5YWYuLjgwY2M4NmEgMTAwNjQ0Ci0tLSBhL3Bva3kvbWV0YS9saWIvb2VxYS9ydW50aW1lL2Nhc2VzL2RuZi5weQorKysgYi9wb2t5L21ldGEvbGliL29lcWEvcnVudGltZS9jYXNlcy9kbmYucHkKQEAgLTksNyArOSw3IEBACiAKIGZyb20gb2VxYS5ydW50aW1lLmNhc2UgaW1wb3J0IE9FUnVudGltZVRlc3RDYXNlCiBmcm9tIG9lcWEuY29yZS5kZWNvcmF0b3IuZGVwZW5kcyBpbXBvcnQgT0VUZXN0RGVwZW5kcwotZnJvbSBvZXFhLmNvcmUuZGVjb3JhdG9yLmRhdGEgaW1wb3J0IHNraXBJZk5vdERhdGFWYXIsIHNraXBJZk5vdEZlYXR1cmUKK2Zyb20gb2VxYS5jb3JlLmRlY29yYXRvci5kYXRhIGltcG9ydCBza2lwSWZOb3REYXRhVmFyLCBza2lwSWZOb3RGZWF0dXJlLCBza2lwSWZJbkRhdGFWYXIsIHNraXBJZk5vdEluRGF0YVZhcgogZnJvbSBvZXFhLnJ1bnRpbWUuZGVjb3JhdG9yLnBhY2thZ2UgaW1wb3J0IE9FSGFzUGFja2FnZQogCiBjbGFzcyBEbmZUZXN0KE9FUnVudGltZVRlc3RDYXNlKToKQEAgLTExNiw2ICsxMTYsNyBAQAogICAgICAgICBzZWxmLmRuZl93aXRoX3JlcG8oJ3JlaW5zdGFsbCAteSBydW4tcG9zdGluc3RzLWRldicpCiAKICAgICBAT0VUZXN0RGVwZW5kcyhbJ2RuZi5EbmZSZXBvVGVzdC50ZXN0X2RuZl9tYWtlY2FjaGUnXSkKKyAgICBAc2tpcElmSW5EYXRhVmFyKCdESVNUUk9fRkVBVFVSRVMnLCAndXNybWVyZ2UnLCAnVGVzdCBydW4gd2hlbiBub3QgZW5hYmxlIHVzcm1lcmdlJykKICAgICBkZWYgdGVzdF9kbmZfaW5zdGFsbHJvb3Qoc2VsZik6CiAgICAgICAgIHJvb3RwYXRoID0gJy9ob21lL3Jvb3QvY2hyb290L3Rlc3QnCiAgICAgICAgICNDb3B5IG5lY2Vzc2FyeSBmaWxlcyB0byBhdm9pZCBlcnJvcnMgd2l0aCBub3QgeWV0IGluc3RhbGxlZCB0b29scyBvbgpAQCAtMTQxLDYgKzE0MiwzNyBAQAogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKDAsIHN0YXR1cywgb3V0cHV0KQogCiAgICAgQE9FVGVzdERlcGVuZHMoWydkbmYuRG5mUmVwb1Rlc3QudGVzdF9kbmZfbWFrZWNhY2hlJ10pCisgICAgQHNraXBJZk5vdEluRGF0YVZhcignRElTVFJPX0ZFQVRVUkVTJywgJ3Vzcm1lcmdlJywgJ1Rlc3QgcnVuIHdoZW4gZW5hYmxlIHVzcm1lZ2UnKQorICAgIGRlZiB0ZXN0X2RuZl9pbnN0YWxscm9vdF91c3JtZXJnZShzZWxmKToKKyAgICAgICAgcm9vdHBhdGggPSAnL2hvbWUvcm9vdC9jaHJvb3QvdGVzdCcKKyAgICAgICAgI0NvcHkgbmVjZXNzYXJ5IGZpbGVzIHRvIGF2b2lkIGVycm9ycyB3aXRoIG5vdCB5ZXQgaW5zdGFsbGVkIHRvb2xzIG9uCisgICAgICAgICNpbnN0YWxscm9vdCBkaXJlY3RvcnkuCisgICAgICAgIHNlbGYudGFyZ2V0LnJ1bignbWtkaXIgLXAgJXMvZXRjJyAlIHJvb3RwYXRoLCAxNTAwKQorICAgICAgICBzZWxmLnRhcmdldC5ydW4oJ21rZGlyIC1wICVzL3Vzci9iaW4gJXMvdXNyL3NiaW4nICUgKHJvb3RwYXRoLCByb290cGF0aCksIDE1MDApCisgICAgICAgIHNlbGYudGFyZ2V0LnJ1bignbG4gLXNmIC1yICVzL3Vzci9iaW4gJXMvYmluJyAgJSAocm9vdHBhdGgsIHJvb3RwYXRoKSwgMTUwMCkKKyAgICAgICAgc2VsZi50YXJnZXQucnVuKCdsbiAtc2YgLXIgJXMvdXNyL3NiaW4gJXMvc2JpbicgICUgKHJvb3RwYXRoLCByb290cGF0aCksIDE1MDApCisgICAgICAgIHNlbGYudGFyZ2V0LnJ1bignbWtkaXIgLXAgJXMvZGV2JyAlIHJvb3RwYXRoLCAxNTAwKQorICAgICAgICAjSGFuZGxlIGRpZmZlcmVudCBhcmNoaXRlY3R1cmVzIGxpYiBkaXJzCisgICAgICAgIHNlbGYudGFyZ2V0LnJ1bignbWtkaXIgLXAgJXMvdXNyL2xpYicgJSByb290cGF0aCwgMTUwMCkKKyAgICAgICAgc2VsZi50YXJnZXQucnVuKCdta2RpciAtcCAlcy91c3IvbGlieDMyJyAlIHJvb3RwYXRoLCAxNTAwKQorICAgICAgICBzZWxmLnRhcmdldC5ydW4oJ21rZGlyIC1wICVzL3Vzci9saWI2NCcgJSByb290cGF0aCwgMTUwMCkKKyAgICAgICAgc2VsZi50YXJnZXQucnVuKCdjcCAvbGliL2xpYnRpbmZvLnNvLjUgJXMvdXNyL2xpYicgJSByb290cGF0aCwgMTUwMCkKKyAgICAgICAgc2VsZi50YXJnZXQucnVuKCdjcCAvbGlieDMyL2xpYnRpbmZvLnNvLjUgJXMvdXNyL2xpYngzMicgJSByb290cGF0aCwgMTUwMCkKKyAgICAgICAgc2VsZi50YXJnZXQucnVuKCdjcCAvbGliNjQvbGlidGluZm8uc28uNSAlcy91c3IvbGliNjQnICUgcm9vdHBhdGgsIDE1MDApCisgICAgICAgIHNlbGYudGFyZ2V0LnJ1bignbG4gLXNmIC1yICVzL2xpYiAlcy91c3IvbGliJyAlIChyb290cGF0aCxyb290cGF0aCksIDE1MDApCisgICAgICAgIHNlbGYudGFyZ2V0LnJ1bignbG4gLXNmIC1yICVzL2xpYngzMiAlcy91c3IvbGlieDMyJyAlIChyb290cGF0aCxyb290cGF0aCksIDE1MDApCisgICAgICAgIHNlbGYudGFyZ2V0LnJ1bignbG4gLXNmIC1yICVzL2xpYjY0ICVzL3Vzci9saWI2NCcgJSAocm9vdHBhdGgscm9vdHBhdGgpLCAxNTAwKQorICAgICAgICBzZWxmLnRhcmdldC5ydW4oJ2NwIC1yIC9ldGMvcnBtICVzL2V0YycgJSByb290cGF0aCwgMTUwMCkKKyAgICAgICAgc2VsZi50YXJnZXQucnVuKCdjcCAtciAvZXRjL2RuZiAlcy9ldGMnICUgcm9vdHBhdGgsIDE1MDApCisgICAgICAgIHNlbGYudGFyZ2V0LnJ1bignY3AgL2Jpbi9zaCAlcy9iaW4nICUgcm9vdHBhdGgsIDE1MDApCisgICAgICAgIHNlbGYudGFyZ2V0LnJ1bignbW91bnQgLW8gYmluZCAvZGV2ICVzL2Rldi8nICUgcm9vdHBhdGgsIDE1MDApCisgICAgICAgIHNlbGYuZG5mX3dpdGhfcmVwbygnaW5zdGFsbCAtLWluc3RhbGxyb290PSVzIC12IC15IC0tcnBtdmVyYm9zaXR5PWRlYnVnIGJ1c3lib3ggcnVuLXBvc3RpbnN0cycgJSByb290cGF0aCkKKyAgICAgICAgc3RhdHVzLCBvdXRwdXQgPSBzZWxmLnRhcmdldC5ydW4oJ3Rlc3QgLWUgJXMvdmFyL2NhY2hlL2RuZicgJSByb290cGF0aCwgMTUwMCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgwLCBzdGF0dXMsIG91dHB1dCkKKyAgICAgICAgc3RhdHVzLCBvdXRwdXQgPSBzZWxmLnRhcmdldC5ydW4oJ3Rlc3QgLWUgJXMvYmluL2J1c3lib3gnICUgcm9vdHBhdGgsIDE1MDApCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoMCwgc3RhdHVzLCBvdXRwdXQpCisKKyAgICBAT0VUZXN0RGVwZW5kcyhbJ2RuZi5EbmZSZXBvVGVzdC50ZXN0X2RuZl9tYWtlY2FjaGUnXSkKICAgICBkZWYgdGVzdF9kbmZfZXhjbHVkZShzZWxmKToKICAgICAgICAgZXhjbHVkZXBrZyA9ICdjdXJsLWRldicKICAgICAgICAgc2VsZi5kbmZfd2l0aF9yZXBvKCdpbnN0YWxsIC15IGN1cmwqJykKZGlmZiAtLWdpdCBhL3Bva3kvbWV0YS9saWIvb2VxYS9ydW50aW1lL2Nhc2VzL29lX3N5c2xvZy5weSBiL3Bva3kvbWV0YS9saWIvb2VxYS9ydW50aW1lL2Nhc2VzL29lX3N5c2xvZy5weQppbmRleCAzYTgyNzFhLi5mM2MyYmVkIDEwMDY0NAotLS0gYS9wb2t5L21ldGEvbGliL29lcWEvcnVudGltZS9jYXNlcy9vZV9zeXNsb2cucHkKKysrIGIvcG9reS9tZXRhL2xpYi9vZXFhL3J1bnRpbWUvY2FzZXMvb2Vfc3lzbG9nLnB5CkBAIC0xNyw3ICsxNyw3IEBACiAgICAgICAgIG1zZyA9ICJGYWlsZWQgdG8gZXhlY3V0ZSAlcyIgJSBzZWxmLnRjLnRhcmdldF9jbWRzWydwcyddCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc3RhdHVzLCAwLCBtc2c9bXNnKQogICAgICAgICBtc2cgPSAiTm8gc3lzbG9nIGRhZW1vbiBwcm9jZXNzOyAlcyBvdXRwdXQ6XG4lcyIgJSAoc2VsZi50Yy50YXJnZXRfY21kc1sncHMnXSwgb3V0cHV0KQotICAgICAgICBoYXNkYWVtb24gPSAic3lzbG9nZCIgaW4gb3V0cHV0IG9yICJzeXNsb2ctbmciIGluIG91dHB1dAorICAgICAgICBoYXNkYWVtb24gPSAic3lzbG9nZCIgaW4gb3V0cHV0IG9yICJzeXNsb2ctbmciIGluIG91dHB1dCBvciAic3Zsb2dkIiBpbiBvdXRwdXQKICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGhhc2RhZW1vbiwgbXNnPW1zZykKIAogY2xhc3MgU3lzbG9nVGVzdENvbmZpZyhPRVJ1bnRpbWVUZXN0Q2FzZSk6CmRpZmYgLS1naXQgYS9wb2t5L21ldGEvbGliL29lcWEvcnVudGltZS9jYXNlcy9wYXJzZWxvZ3MucHkgYi9wb2t5L21ldGEvbGliL29lcWEvcnVudGltZS9jYXNlcy9wYXJzZWxvZ3MucHkKaW5kZXggMTljOWM1Mi4uMTUzNDNkNyAxMDA2NDQKLS0tIGEvcG9reS9tZXRhL2xpYi9vZXFhL3J1bnRpbWUvY2FzZXMvcGFyc2Vsb2dzLnB5CisrKyBiL3Bva3kvbWV0YS9saWIvb2VxYS9ydW50aW1lL2Nhc2VzL3BhcnNlbG9ncy5weQpAQCAtODMsNiArODMsMTAgQEAKICAgICAnYW1kX25iOiBDYW5ub3QgZW51bWVyYXRlIEFNRCBub3J0aGJyaWRnZXMnLAogICAgICd1dmVzYWZiOiA1MDAwIG1zIHRhc2sgdGltZW91dCwgaW5maW5pdGVseSB3YWl0aW5nJywKICAgICAndHNjOiBIUEVUL1BNVElNRVIgY2FsaWJyYXRpb24gZmFpbGVkJywKKyAgICAibW9kZXNldCgwKTogRmFpbGVkIHRvIGluaXRpYWxpemUgdGhlIERSSTIgZXh0ZW5zaW9uIiwKKyAgICAidXZlc2FmYjogY2Fubm90IHJlc2VydmUgdmlkZW8gbWVtb3J5IGF0IiwKKyAgICAidXZlc2FmYjogcHJvYmUgb2YgdXZlc2FmYi4wIGZhaWxlZCB3aXRoIGVycm9yIiwKKyAgICAiZ2xhbW9yIGluaXRpYWxpemF0aW9uIGZhaWxlZCIsCiBdICsgY29tbW9uX2Vycm9ycwogCiBpZ25vcmVfZXJyb3JzID0gewpkaWZmIC0tZ2l0IGEvcG9reS9tZXRhL2xpYi9vZXFhL3Nka2V4dC9jYXNlcy9kZXZ0b29sLnB5IGIvcG9reS9tZXRhL2xpYi9vZXFhL3Nka2V4dC9jYXNlcy9kZXZ0b29sLnB5CmluZGV4IDVhMDJhZGQuLjhlOTJiZjggMTAwNjQ0Ci0tLSBhL3Bva3kvbWV0YS9saWIvb2VxYS9zZGtleHQvY2FzZXMvZGV2dG9vbC5weQorKysgYi9wb2t5L21ldGEvbGliL29lcWEvc2RrZXh0L2Nhc2VzL2RldnRvb2wucHkKQEAgLTczLDggKzczLDggQEAKICAgICAgICAgICAgIHNlbGYuX3J1bignZGV2dG9vbCByZXNldCAlcycgJSByZWNpcGUpCiAKICAgICBkZWYgdGVzdF9kZXZ0b29sX2tlcm5lbG1vZHVsZShzZWxmKToKLSAgICAgICAgZG9jZmlsZSA9ICdodHRwczovL2dpdGh1Yi5jb20vdW1sYWV1dGUvdjRsMmxvb3BiYWNrLmdpdCcKLSAgICAgICAgcmVjaXBlID0gJ3Y0bDJsb29wYmFjay1kcml2ZXInCisgICAgICAgIGRvY2ZpbGUgPSAnaHR0cHM6Ly9naXQueW9jdG9wcm9qZWN0Lm9yZy9naXQva2VybmVsLW1vZHVsZS1oZWxsby13b3JsZCcKKyAgICAgICAgcmVjaXBlID0gJ2tlcm5lbC1tb2R1bGUtaGVsbG8td29ybGQnCiAgICAgICAgIHNlbGYuX3J1bignZGV2dG9vbCBhZGQgJXMgJXMnICUgKHJlY2lwZSwgZG9jZmlsZSkgKQogICAgICAgICB0cnk6CiAgICAgICAgICAgICBzZWxmLl9ydW4oJ2RldnRvb2wgYnVpbGQgJXMnICUgcmVjaXBlKQpkaWZmIC0tZ2l0IGEvcG9reS9tZXRhL2xpYi9vZXFhL3NlbGZ0ZXN0L2Nhc2VzL2JidGVzdHMucHkgYi9wb2t5L21ldGEvbGliL29lcWEvc2VsZnRlc3QvY2FzZXMvYmJ0ZXN0cy5weQppbmRleCAwNjkzYmE4Li44ZTU5YmFmIDEwMDY0NAotLS0gYS9wb2t5L21ldGEvbGliL29lcWEvc2VsZnRlc3QvY2FzZXMvYmJ0ZXN0cy5weQorKysgYi9wb2t5L21ldGEvbGliL29lcWEvc2VsZnRlc3QvY2FzZXMvYmJ0ZXN0cy5weQpAQCAtMTE5LDcgKzExOSw3IEBACiAKICAgICBkZWYgdGVzdF9iaXRiYWtlX2coc2VsZik6CiAgICAgICAgIHJlc3VsdCA9IGJpdGJha2UoJy1nIGNvcmUtaW1hZ2UtbWluaW1hbCcpCi0gICAgICAgIGZvciBmIGluIFsncG4tYnVpbGRsaXN0JywgJ3JlY2lwZS1kZXBlbmRzLmRvdCcsICd0YXNrLWRlcGVuZHMuZG90J106CisgICAgICAgIGZvciBmIGluIFsncG4tYnVpbGRsaXN0JywgJ3Rhc2stZGVwZW5kcy5kb3QnXToKICAgICAgICAgICAgIHNlbGYuYWRkQ2xlYW51cChvcy5yZW1vdmUsIGYpCiAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZSgnVGFzayBkZXBlbmRlbmNpZXMgc2F2ZWQgdG8gXCd0YXNrLWRlcGVuZHMuZG90XCcnIGluIHJlc3VsdC5vdXRwdXQsIG1zZyA9ICJObyB0YXNrIGRlcGVuZGVuY3kgXCJ0YXNrLWRlcGVuZHMuZG90XCIgZmlsZSB3YXMgZ2VuZXJhdGVkIGZvciB0aGUgZ2l2ZW4gdGFzayB0YXJnZXQuIGJpdGJha2Ugb3V0cHV0OiAlcyIgJSByZXN1bHQub3V0cHV0KQogICAgICAgICBzZWxmLmFzc2VydFRydWUoJ2J1c3lib3gnIGluIGZ0b29scy5yZWFkX2ZpbGUob3MucGF0aC5qb2luKHNlbGYuYnVpbGRkaXIsICd0YXNrLWRlcGVuZHMuZG90JykpLCBtc2cgPSAiTm8gXCJidXN5Ym94XCIgZGVwZW5kZW5jeSBmb3VuZCBpbiB0YXNrLWRlcGVuZHMuZG90IGZpbGUuIikKZGlmZiAtLWdpdCBhL3Bva3kvbWV0YS9saWIvb2VxYS9zZWxmdGVzdC9jYXNlcy9iaW51dGlscy5weSBiL3Bva3kvbWV0YS9saWIvb2VxYS9zZWxmdGVzdC9jYXNlcy9iaW51dGlscy5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45YmM3NTIwCi0tLSAvZGV2L251bGwKKysrIGIvcG9reS9tZXRhL2xpYi9vZXFhL3NlbGZ0ZXN0L2Nhc2VzL2JpbnV0aWxzLnB5CkBAIC0wLDAgKzEsNDkgQEAKKyMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVAoraW1wb3J0IG9zCitpbXBvcnQgc3lzCitpbXBvcnQgcmUKK2ltcG9ydCBsb2dnaW5nCitmcm9tIG9lcWEuY29yZS5kZWNvcmF0b3IgaW1wb3J0IE9FVGVzdFRhZworZnJvbSBvZXFhLnNlbGZ0ZXN0LmNhc2UgaW1wb3J0IE9FU2VsZnRlc3RUZXN0Q2FzZQorZnJvbSBvZXFhLnV0aWxzLmNvbW1hbmRzIGltcG9ydCBiaXRiYWtlLCBnZXRfYmJfdmFyLCBnZXRfYmJfdmFycworCitkZWYgcGFyc2VfdmFsdWVzKGNvbnRlbnQpOgorICAgIGZvciBpIGluIGNvbnRlbnQ6CisgICAgICAgIGZvciB2IGluIFsiUEFTUyIsICJGQUlMIiwgIlhQQVNTIiwgIlhGQUlMIiwgIlVOUkVTT0xWRUQiLCAiVU5TVVBQT1JURUQiLCAiVU5URVNURUQiLCAiRVJST1IiLCAiV0FSTklORyJdOgorICAgICAgICAgICAgaWYgaS5zdGFydHN3aXRoKHYgKyAiOiAiKToKKyAgICAgICAgICAgICAgICB5aWVsZCBpW2xlbih2KSArIDI6XS5zdHJpcCgpLCB2CisgICAgICAgICAgICAgICAgYnJlYWsKKworQE9FVGVzdFRhZygidG9vbGNoYWluLXVzZXIiLCAidG9vbGNoYWluLXN5c3RlbSIpCitjbGFzcyBCaW51dGlsc0Nyb3NzU2VsZlRlc3QoT0VTZWxmdGVzdFRlc3RDYXNlKToKKyAgICBkZWYgdGVzdF9iaW51dGlscyhzZWxmKToKKyAgICAgICAgc2VsZi5ydW5fYmludXRpbHMoImJpbnV0aWxzIikKKworICAgIGRlZiB0ZXN0X2dhcyhzZWxmKToKKyAgICAgICAgc2VsZi5ydW5fYmludXRpbHMoImdhcyIpCisKKyAgICBkZWYgdGVzdF9sZChzZWxmKToKKyAgICAgICAgc2VsZi5ydW5fYmludXRpbHMoImxkIikKKworICAgIGRlZiBydW5fYmludXRpbHMoc2VsZiwgc3VpdGUpOgorICAgICAgICBmZWF0dXJlcyA9IFtdCisgICAgICAgIGZlYXR1cmVzLmFwcGVuZCgnQ0hFQ0tfVEFSR0VUUyA9ICJ7MH0iJy5mb3JtYXQoc3VpdGUpKQorICAgICAgICBzZWxmLndyaXRlX2NvbmZpZygiXG4iLmpvaW4oZmVhdHVyZXMpKQorCisgICAgICAgIHJlY2lwZSA9ICJiaW51dGlscy1jcm9zcy10ZXN0c3VpdGUiCisgICAgICAgIGJiX3ZhcnMgPSBnZXRfYmJfdmFycyhbIkIiLCAiVEFSR0VUX1NZUyIsICJUIl0sIHJlY2lwZSkKKyAgICAgICAgYnVpbGRkaXIsIHRhcmdldF9zeXMsIHRkaXIgPSBiYl92YXJzWyJCIl0sIGJiX3ZhcnNbIlRBUkdFVF9TWVMiXSwgYmJfdmFyc1siVCJdCisKKyAgICAgICAgYml0YmFrZSgiezB9IC1jIGNoZWNrIi5mb3JtYXQocmVjaXBlKSkKKworICAgICAgICBwdGVzdHN1aXRlID0gImJpbnV0aWxzLXt9Ii5mb3JtYXQoc3VpdGUpIGlmIHN1aXRlICE9ICJiaW51dGlscyIgZWxzZSBzdWl0ZQorICAgICAgICBzZWxmLmV4dHJhcmVzdWx0cyA9IHsicHRlc3RyZXN1bHQuc2VjdGlvbnMiIDoge3B0ZXN0c3VpdGUgOiB7fX19CisKKyAgICAgICAgc3Vtc3BhdGggPSBvcy5wYXRoLmpvaW4oYnVpbGRkaXIsIHN1aXRlLCAiezB9LnN1bSIuZm9ybWF0KHN1aXRlKSkKKyAgICAgICAgaWYgbm90IG9zLnBhdGguZXhpc3RzKHN1bXNwYXRoKToKKyAgICAgICAgICAgIHN1bXNwYXRoID0gb3MucGF0aC5qb2luKGJ1aWxkZGlyLCBzdWl0ZSwgInRlc3RzdWl0ZSIsICJ7MH0uc3VtIi5mb3JtYXQoc3VpdGUpKQorCisgICAgICAgIHdpdGggb3BlbihzdW1zcGF0aCwgInIiKSBhcyBmOgorICAgICAgICAgICAgZm9yIHRlc3QsIHJlc3VsdCBpbiBwYXJzZV92YWx1ZXMoZik6CisgICAgICAgICAgICAgICAgc2VsZi5leHRyYXJlc3VsdHNbInB0ZXN0cmVzdWx0Lnt9Lnt9Ii5mb3JtYXQocHRlc3RzdWl0ZSwgdGVzdCldID0geyJzdGF0dXMiIDogcmVzdWx0fQorCmRpZmYgLS1naXQgYS9wb2t5L21ldGEvbGliL29lcWEvc2VsZnRlc3QvY2FzZXMvZ2NjLnB5IGIvcG9reS9tZXRhL2xpYi9vZXFhL3NlbGZ0ZXN0L2Nhc2VzL2djYy5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yYzI1YjU5Ci0tLSAvZGV2L251bGwKKysrIGIvcG9reS9tZXRhL2xpYi9vZXFhL3NlbGZ0ZXN0L2Nhc2VzL2djYy5weQpAQCAtMCwwICsxLDEzOSBAQAorIyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTUlUCitpbXBvcnQgb3MKK2Zyb20gb2VxYS5jb3JlLmRlY29yYXRvciBpbXBvcnQgT0VUZXN0VGFnCitmcm9tIG9lcWEuc2VsZnRlc3QuY2FzZSBpbXBvcnQgT0VTZWxmdGVzdFRlc3RDYXNlCitmcm9tIG9lcWEudXRpbHMuY29tbWFuZHMgaW1wb3J0IGJpdGJha2UsIGdldF9iYl92YXIsIGdldF9iYl92YXJzLCBydW5xZW11LCBDb21tYW5kCisKK2RlZiBwYXJzZV92YWx1ZXMoY29udGVudCk6CisgICAgZm9yIGkgaW4gY29udGVudDoKKyAgICAgICAgZm9yIHYgaW4gWyJQQVNTIiwgIkZBSUwiLCAiWFBBU1MiLCAiWEZBSUwiLCAiVU5SRVNPTFZFRCIsICJVTlNVUFBPUlRFRCIsICJVTlRFU1RFRCIsICJFUlJPUiIsICJXQVJOSU5HIl06CisgICAgICAgICAgICBpZiBpLnN0YXJ0c3dpdGgodiArICI6ICIpOgorICAgICAgICAgICAgICAgIHlpZWxkIGlbbGVuKHYpICsgMjpdLnN0cmlwKCksIHYKKyAgICAgICAgICAgICAgICBicmVhaworCitjbGFzcyBHY2NTZWxmVGVzdEJhc2UoT0VTZWxmdGVzdFRlc3RDYXNlKToKKyAgICBkZWYgY2hlY2tfc2tpcChzZWxmLCBzdWl0ZSk6CisgICAgICAgIHRhcmdldHMgPSBnZXRfYmJfdmFyKCJSVU5USU1FVEFSR0VUIiwgImdjYy1ydW50aW1lIikuc3BsaXQoKQorICAgICAgICBpZiBzdWl0ZSBub3QgaW4gdGFyZ2V0czoKKyAgICAgICAgICAgIHNlbGYuc2tpcFRlc3QoIlRhcmdldCBkb2VzIG5vdCB1c2UgezB9Ii5mb3JtYXQoc3VpdGUpKQorCisgICAgZGVmIHJ1bl9jaGVjayhzZWxmLCAqc3VpdGVzLCBzc2ggPSBOb25lKToKKyAgICAgICAgdGFyZ2V0cyA9IHNldCgpCisgICAgICAgIGZvciBzIGluIHN1aXRlczoKKyAgICAgICAgICAgIGlmIHMgaW4gWyJnY2MiLCAiZysrIl06CisgICAgICAgICAgICAgICAgdGFyZ2V0cy5hZGQoImNoZWNrLWdjYyIpCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIHRhcmdldHMuYWRkKCJjaGVjay10YXJnZXQte30iLmZvcm1hdChzKSkKKworICAgICAgICAjIGNvbmZpZ3VyZSBzc2ggdGFyZ2V0CisgICAgICAgIGZlYXR1cmVzID0gW10KKyAgICAgICAgZmVhdHVyZXMuYXBwZW5kKCdNQUtFX0NIRUNLX1RBUkdFVFMgPSAiezB9IicuZm9ybWF0KCIgIi5qb2luKHRhcmdldHMpKSkKKyAgICAgICAgaWYgc3NoIGlzIG5vdCBOb25lOgorICAgICAgICAgICAgZmVhdHVyZXMuYXBwZW5kKCdUT09MQ0hBSU5fVEVTVF9UQVJHRVQgPSAic3NoIicpCisgICAgICAgICAgICBmZWF0dXJlcy5hcHBlbmQoJ1RPT0xDSEFJTl9URVNUX0hPU1QgPSAiezB9IicuZm9ybWF0KHNzaCkpCisgICAgICAgICAgICBmZWF0dXJlcy5hcHBlbmQoJ1RPT0xDSEFJTl9URVNUX0hPU1RfVVNFUiA9ICJyb290IicpCisgICAgICAgICAgICBmZWF0dXJlcy5hcHBlbmQoJ1RPT0xDSEFJTl9URVNUX0hPU1RfUE9SVCA9ICIyMiInKQorICAgICAgICBzZWxmLndyaXRlX2NvbmZpZygiXG4iLmpvaW4oZmVhdHVyZXMpKQorCisgICAgICAgIHJlY2lwZSA9ICJnY2MtcnVudGltZSIKKyAgICAgICAgYml0YmFrZSgie30gLWMgY2hlY2siLmZvcm1hdChyZWNpcGUpKQorCisgICAgICAgIGJiX3ZhcnMgPSBnZXRfYmJfdmFycyhbIkIiLCAiVEFSR0VUX1NZUyJdLCByZWNpcGUpCisgICAgICAgIGJ1aWxkZGlyLCB0YXJnZXRfc3lzID0gYmJfdmFyc1siQiJdLCBiYl92YXJzWyJUQVJHRVRfU1lTIl0KKworICAgICAgICBzZWxmLmV4dHJhcmVzdWx0cyA9IHsicHRlc3RyZXN1bHQuc2VjdGlvbnMiIDoge319CisgICAgICAgIGZvciBzdWl0ZSBpbiBzdWl0ZXM6CisgICAgICAgICAgICBzdW1zcGF0aCA9IG9zLnBhdGguam9pbihidWlsZGRpciwgImdjYyIsICJ0ZXN0c3VpdGUiLCBzdWl0ZSwgInswfS5zdW0iLmZvcm1hdChzdWl0ZSkpCisgICAgICAgICAgICBpZiBub3Qgb3MucGF0aC5leGlzdHMoc3Vtc3BhdGgpOiAjIGNoZWNrIGluIHRhcmdldCBkaXJzCisgICAgICAgICAgICAgICAgc3Vtc3BhdGggPSBvcy5wYXRoLmpvaW4oYnVpbGRkaXIsIHRhcmdldF9zeXMsIHN1aXRlLCAidGVzdHN1aXRlIiwgInswfS5zdW0iLmZvcm1hdChzdWl0ZSkpCisgICAgICAgICAgICBpZiBub3Qgb3MucGF0aC5leGlzdHMoc3Vtc3BhdGgpOiAjIGhhbmRsZSBsaWJzdGRjKystdjMgLT4gbGlic3RkYysrCisgICAgICAgICAgICAgICAgc3Vtc3BhdGggPSBvcy5wYXRoLmpvaW4oYnVpbGRkaXIsIHRhcmdldF9zeXMsIHN1aXRlLCAidGVzdHN1aXRlIiwgInswfS5zdW0iLmZvcm1hdChzdWl0ZS5zcGxpdCgiLSIpWzBdKSkKKworICAgICAgICAgICAgcHRlc3RzdWl0ZSA9ICJnY2Mte30iLmZvcm1hdChzdWl0ZSkgaWYgc3VpdGUgIT0gImdjYyIgZWxzZSBzdWl0ZQorICAgICAgICAgICAgcHRlc3RzdWl0ZSA9IHB0ZXN0c3VpdGUgKyAiLXVzZXIiIGlmIHNzaCBpcyBOb25lIGVsc2UgcHRlc3RzdWl0ZQorICAgICAgICAgICAgc2VsZi5leHRyYXJlc3VsdHNbInB0ZXN0cmVzdWx0LnNlY3Rpb25zIl1bcHRlc3RzdWl0ZV0gPSB7fQorICAgICAgICAgICAgd2l0aCBvcGVuKHN1bXNwYXRoLCAiciIpIGFzIGY6CisgICAgICAgICAgICAgICAgZm9yIHRlc3QsIHJlc3VsdCBpbiBwYXJzZV92YWx1ZXMoZik6CisgICAgICAgICAgICAgICAgICAgIHNlbGYuZXh0cmFyZXN1bHRzWyJwdGVzdHJlc3VsdC57fS57fSIuZm9ybWF0KHB0ZXN0c3VpdGUsIHRlc3QpXSA9IHsic3RhdHVzIiA6IHJlc3VsdH0KKworICAgIGRlZiBydW5fY2hlY2tfZW11bGF0ZWQoc2VsZiwgKmFyZ3MsICoqa3dhcmdzKToKKyAgICAgICAgIyBidWlsZCBjb3JlLWltYWdlLW1pbmltYWwgd2l0aCByZXF1aXJlZCBwYWNrYWdlcworICAgICAgICBkZWZhdWx0X2luc3RhbGxlZF9wYWNrYWdlcyA9IFsibGliZ2NjIiwgImxpYnN0ZGMrKyIsICJsaWJhdG9taWMiLCAibGliZ29tcCJdCisgICAgICAgIGZlYXR1cmVzID0gW10KKyAgICAgICAgZmVhdHVyZXMuYXBwZW5kKCdJTUFHRV9GRUFUVVJFUyArPSAic3NoLXNlcnZlci1vcGVuc3NoIicpCisgICAgICAgIGZlYXR1cmVzLmFwcGVuZCgnQ09SRV9JTUFHRV9FWFRSQV9JTlNUQUxMICs9ICJ7MH0iJy5mb3JtYXQoIiAiLmpvaW4oZGVmYXVsdF9pbnN0YWxsZWRfcGFja2FnZXMpKSkKKyAgICAgICAgc2VsZi53cml0ZV9jb25maWcoIlxuIi5qb2luKGZlYXR1cmVzKSkKKyAgICAgICAgYml0YmFrZSgiY29yZS1pbWFnZS1taW5pbWFsIikKKworICAgICAgICAjIHdyYXAgdGhlIGV4ZWN1dGlvbiB3aXRoIGEgcWVtdSBpbnN0YW5jZQorICAgICAgICB3aXRoIHJ1bnFlbXUoImNvcmUtaW1hZ2UtbWluaW1hbCIsIHJ1bnFlbXVwYXJhbXMgPSAibm9ncmFwaGljIikgYXMgcWVtdToKKyAgICAgICAgICAgICMgdmFsaWRhdGUgdGhhdCBTU0ggaXMgd29ya2luZworICAgICAgICAgICAgc3RhdHVzLCBfID0gcWVtdS5ydW4oInVuYW1lIikKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc3RhdHVzLCAwKQorCisgICAgICAgICAgICByZXR1cm4gc2VsZi5ydW5fY2hlY2soKmFyZ3MsIHNzaD1xZW11LmlwLCAqKmt3YXJncykKKworQE9FVGVzdFRhZygidG9vbGNoYWluLXVzZXIiKQorY2xhc3MgR2NjQ3Jvc3NTZWxmVGVzdChHY2NTZWxmVGVzdEJhc2UpOgorICAgIGRlZiB0ZXN0X2Nyb3NzX2djYyhzZWxmKToKKyAgICAgICAgc2VsZi5ydW5fY2hlY2soImdjYyIsICJnKysiKQorCitAT0VUZXN0VGFnKCJ0b29sY2hhaW4tdXNlciIpCitjbGFzcyBHY2NMaWJBdG9taWNTZWxmVGVzdChHY2NTZWxmVGVzdEJhc2UpOgorICAgIGRlZiB0ZXN0X2xpYmF0b21pYyhzZWxmKToKKyAgICAgICAgc2VsZi5ydW5fY2hlY2soImxpYmF0b21pYyIpCisKK0BPRVRlc3RUYWcoInRvb2xjaGFpbi11c2VyIikKK2NsYXNzIEdjY0xpYkdvbXBTZWxmVGVzdChHY2NTZWxmVGVzdEJhc2UpOgorICAgIGRlZiB0ZXN0X2xpYmdvbXAoc2VsZik6CisgICAgICAgIHNlbGYucnVuX2NoZWNrKCJsaWJnb21wIikKKworQE9FVGVzdFRhZygidG9vbGNoYWluLXVzZXIiKQorY2xhc3MgR2NjTGliU3RkQ3h4U2VsZlRlc3QoR2NjU2VsZlRlc3RCYXNlKToKKyAgICBkZWYgdGVzdF9saWJzdGRjeHgoc2VsZik6CisgICAgICAgIHNlbGYucnVuX2NoZWNrKCJsaWJzdGRjKystdjMiKQorCitAT0VUZXN0VGFnKCJ0b29sY2hhaW4tdXNlciIpCitjbGFzcyBHY2NMaWJTc3BTZWxmVGVzdChHY2NTZWxmVGVzdEJhc2UpOgorICAgIGRlZiB0ZXN0X2xpYnNzcChzZWxmKToKKyAgICAgICAgc2VsZi5jaGVja19za2lwKCJsaWJzc3AiKQorICAgICAgICBzZWxmLnJ1bl9jaGVjaygibGlic3NwIikKKworQE9FVGVzdFRhZygidG9vbGNoYWluLXVzZXIiKQorY2xhc3MgR2NjTGliSXRtU2VsZlRlc3QoR2NjU2VsZlRlc3RCYXNlKToKKyAgICBkZWYgdGVzdF9saWJpdG0oc2VsZik6CisgICAgICAgIHNlbGYuY2hlY2tfc2tpcCgibGliaXRtIikKKyAgICAgICAgc2VsZi5ydW5fY2hlY2soImxpYml0bSIpCisKK0BPRVRlc3RUYWcoInRvb2xjaGFpbi1zeXN0ZW0iKQorY2xhc3MgR2NjQ3Jvc3NTZWxmVGVzdFN5c3RlbUVtdWxhdGVkKEdjY1NlbGZUZXN0QmFzZSk6CisgICAgZGVmIHRlc3RfY3Jvc3NfZ2NjKHNlbGYpOgorICAgICAgICBzZWxmLnJ1bl9jaGVja19lbXVsYXRlZCgiZ2NjIiwgImcrKyIpCisKK0BPRVRlc3RUYWcoInRvb2xjaGFpbi1zeXN0ZW0iKQorY2xhc3MgR2NjTGliQXRvbWljU2VsZlRlc3RTeXN0ZW1FbXVsYXRlZChHY2NTZWxmVGVzdEJhc2UpOgorICAgIGRlZiB0ZXN0X2xpYmF0b21pYyhzZWxmKToKKyAgICAgICAgc2VsZi5ydW5fY2hlY2tfZW11bGF0ZWQoImxpYmF0b21pYyIpCisKK0BPRVRlc3RUYWcoInRvb2xjaGFpbi1zeXN0ZW0iKQorY2xhc3MgR2NjTGliR29tcFNlbGZUZXN0U3lzdGVtRW11bGF0ZWQoR2NjU2VsZlRlc3RCYXNlKToKKyAgICBkZWYgdGVzdF9saWJnb21wKHNlbGYpOgorICAgICAgICBzZWxmLnJ1bl9jaGVja19lbXVsYXRlZCgibGliZ29tcCIpCisKK0BPRVRlc3RUYWcoInRvb2xjaGFpbi1zeXN0ZW0iKQorY2xhc3MgR2NjTGliU3RkQ3h4U2VsZlRlc3RTeXN0ZW1FbXVsYXRlZChHY2NTZWxmVGVzdEJhc2UpOgorICAgIGRlZiB0ZXN0X2xpYnN0ZGN4eChzZWxmKToKKyAgICAgICAgc2VsZi5ydW5fY2hlY2tfZW11bGF0ZWQoImxpYnN0ZGMrKy12MyIpCisKK0BPRVRlc3RUYWcoInRvb2xjaGFpbi1zeXN0ZW0iKQorY2xhc3MgR2NjTGliU3NwU2VsZlRlc3RTeXN0ZW1FbXVsYXRlZChHY2NTZWxmVGVzdEJhc2UpOgorICAgIGRlZiB0ZXN0X2xpYnNzcChzZWxmKToKKyAgICAgICAgc2VsZi5jaGVja19za2lwKCJsaWJzc3AiKQorICAgICAgICBzZWxmLnJ1bl9jaGVja19lbXVsYXRlZCgibGlic3NwIikKKworQE9FVGVzdFRhZygidG9vbGNoYWluLXN5c3RlbSIpCitjbGFzcyBHY2NMaWJJdG1TZWxmVGVzdFN5c3RlbUVtdWxhdGVkKEdjY1NlbGZUZXN0QmFzZSk6CisgICAgZGVmIHRlc3RfbGliaXRtKHNlbGYpOgorICAgICAgICBzZWxmLmNoZWNrX3NraXAoImxpYml0bSIpCisgICAgICAgIHNlbGYucnVuX2NoZWNrX2VtdWxhdGVkKCJsaWJpdG0iKQorCmRpZmYgLS1naXQgYS9wb2t5L21ldGEvbGliL29lcWEvc2VsZnRlc3QvY2FzZXMvZ2xpYmMucHkgYi9wb2t5L21ldGEvbGliL29lcWEvc2VsZnRlc3QvY2FzZXMvZ2xpYmMucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMmU0MjQ4NQotLS0gL2Rldi9udWxsCisrKyBiL3Bva3kvbWV0YS9saWIvb2VxYS9zZWxmdGVzdC9jYXNlcy9nbGliYy5weQpAQCAtMCwwICsxLDg4IEBACisjIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVQKK2ltcG9ydCBvcworaW1wb3J0IGNvbnRleHRsaWIKK2Zyb20gb2VxYS5jb3JlLmRlY29yYXRvciBpbXBvcnQgT0VUZXN0VGFnCitmcm9tIG9lcWEuc2VsZnRlc3QuY2FzZSBpbXBvcnQgT0VTZWxmdGVzdFRlc3RDYXNlCitmcm9tIG9lcWEudXRpbHMuY29tbWFuZHMgaW1wb3J0IGJpdGJha2UsIGdldF9iYl92YXIsIGdldF9iYl92YXJzLCBydW5xZW11LCBDb21tYW5kCitmcm9tIG9lcWEudXRpbHMubmZzIGltcG9ydCB1bmZzX3NlcnZlcgorCitkZWYgcGFyc2VfdmFsdWVzKGNvbnRlbnQpOgorICAgIGZvciBpIGluIGNvbnRlbnQ6CisgICAgICAgIGZvciB2IGluIFsiUEFTUyIsICJGQUlMIiwgIlhQQVNTIiwgIlhGQUlMIiwgIlVOUkVTT0xWRUQiLCAiVU5TVVBQT1JURUQiLCAiVU5URVNURUQiLCAiRVJST1IiLCAiV0FSTklORyJdOgorICAgICAgICAgICAgaWYgaS5zdGFydHN3aXRoKHYgKyAiOiAiKToKKyAgICAgICAgICAgICAgICB5aWVsZCBpW2xlbih2KSArIDI6XS5zdHJpcCgpLCB2CisgICAgICAgICAgICAgICAgYnJlYWsKKworY2xhc3MgR2xpYmNTZWxmVGVzdEJhc2UoT0VTZWxmdGVzdFRlc3RDYXNlKToKKyAgICBkZWYgcnVuX2NoZWNrKHNlbGYsIHNzaCA9IE5vbmUpOgorICAgICAgICAjIGNvbmZpZ3VyZSBzc2ggdGFyZ2V0CisgICAgICAgIGZlYXR1cmVzID0gW10KKyAgICAgICAgaWYgc3NoIGlzIG5vdCBOb25lOgorICAgICAgICAgICAgZmVhdHVyZXMuYXBwZW5kKCdUT09MQ0hBSU5fVEVTVF9UQVJHRVQgPSAic3NoIicpCisgICAgICAgICAgICBmZWF0dXJlcy5hcHBlbmQoJ1RPT0xDSEFJTl9URVNUX0hPU1QgPSAiezB9IicuZm9ybWF0KHNzaCkpCisgICAgICAgICAgICBmZWF0dXJlcy5hcHBlbmQoJ1RPT0xDSEFJTl9URVNUX0hPU1RfVVNFUiA9ICJyb290IicpCisgICAgICAgICAgICBmZWF0dXJlcy5hcHBlbmQoJ1RPT0xDSEFJTl9URVNUX0hPU1RfUE9SVCA9ICIyMiInKQorICAgICAgICAgICAgIyBmb3JjZSBzaW5nbGUgdGhyZWFkZWQgdGVzdCBleGVjdXRpb24KKyAgICAgICAgICAgIGZlYXR1cmVzLmFwcGVuZCgnRUdMSUJDUEFSQUxMRUxJU01fdGFzay1jaGVja19wbi1nbGliYy10ZXN0c3VpdGUgPSAiUEFSQUxMRUxNRkxBR1M9Ii1qMSIiJykKKyAgICAgICAgc2VsZi53cml0ZV9jb25maWcoIlxuIi5qb2luKGZlYXR1cmVzKSkKKworICAgICAgICBiaXRiYWtlKCJnbGliYy10ZXN0c3VpdGUgLWMgY2hlY2siKQorCisgICAgICAgIGJ1aWxkZGlyID0gZ2V0X2JiX3ZhcigiQiIsICJnbGliYy10ZXN0c3VpdGUiKQorCisgICAgICAgIHB0ZXN0c3VpdGUgPSAiZ2xpYmMtdXNlciIgaWYgc3NoIGlzIE5vbmUgZWxzZSAiZ2xpYmMiCisgICAgICAgIHNlbGYuZXh0cmFyZXN1bHRzID0geyJwdGVzdHJlc3VsdC5zZWN0aW9ucyIgOiB7cHRlc3RzdWl0ZSA6IHt9fX0KKyAgICAgICAgd2l0aCBvcGVuKG9zLnBhdGguam9pbihidWlsZGRpciwgInRlc3RzLnN1bSIpLCAiciIpIGFzIGY6CisgICAgICAgICAgICBmb3IgdGVzdCwgcmVzdWx0IGluIHBhcnNlX3ZhbHVlcyhmKToKKyAgICAgICAgICAgICAgICBzZWxmLmV4dHJhcmVzdWx0c1sicHRlc3RyZXN1bHQue30ue30iLmZvcm1hdChwdGVzdHN1aXRlLCB0ZXN0KV0gPSB7InN0YXR1cyIgOiByZXN1bHR9CisKKyAgICBkZWYgcnVuX2NoZWNrX2VtdWxhdGVkKHNlbGYpOgorICAgICAgICB3aXRoIGNvbnRleHRsaWIuRXhpdFN0YWNrKCkgYXMgczoKKyAgICAgICAgICAgICMgdXNlIHRoZSBiYXNlIHdvcmsgZGlyLCBhcyB0aGUgbmZzIG1vdW50LCBzaW5jZSB0aGUgcmVjaXBlIGRpcmVjdG9yeSBtYXkgbm90IGV4aXN0CisgICAgICAgICAgICB0bXBkaXIgPSBnZXRfYmJfdmFyKCJCQVNFX1dPUktESVIiKQorICAgICAgICAgICAgbmZzcG9ydCwgbW91bnRwb3J0ID0gcy5lbnRlcl9jb250ZXh0KHVuZnNfc2VydmVyKHRtcGRpcikpCisKKyAgICAgICAgICAgICMgYnVpbGQgY29yZS1pbWFnZS1taW5pbWFsIHdpdGggcmVxdWlyZWQgcGFja2FnZXMKKyAgICAgICAgICAgIGRlZmF1bHRfaW5zdGFsbGVkX3BhY2thZ2VzID0gWworICAgICAgICAgICAgICAgICJnbGliYy1jaGFybWFwcyIsCisgICAgICAgICAgICAgICAgImxpYmdjYyIsCisgICAgICAgICAgICAgICAgImxpYnN0ZGMrKyIsCisgICAgICAgICAgICAgICAgImxpYmF0b21pYyIsCisgICAgICAgICAgICAgICAgImxpYmdvbXAiLAorICAgICAgICAgICAgICAgICMgInB5dGhvbjMiLAorICAgICAgICAgICAgICAgICMgInB5dGhvbjMtcGV4cGVjdCIsCisgICAgICAgICAgICAgICAgIm5mcy11dGlscyIsCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgZmVhdHVyZXMgPSBbXQorICAgICAgICAgICAgZmVhdHVyZXMuYXBwZW5kKCdJTUFHRV9GRUFUVVJFUyArPSAic3NoLXNlcnZlci1vcGVuc3NoIicpCisgICAgICAgICAgICBmZWF0dXJlcy5hcHBlbmQoJ0NPUkVfSU1BR0VfRVhUUkFfSU5TVEFMTCArPSAiezB9IicuZm9ybWF0KCIgIi5qb2luKGRlZmF1bHRfaW5zdGFsbGVkX3BhY2thZ2VzKSkpCisgICAgICAgICAgICBzZWxmLndyaXRlX2NvbmZpZygiXG4iLmpvaW4oZmVhdHVyZXMpKQorICAgICAgICAgICAgYml0YmFrZSgiY29yZS1pbWFnZS1taW5pbWFsIikKKworICAgICAgICAgICAgIyBzdGFydCBydW5xZW11CisgICAgICAgICAgICBxZW11ID0gcy5lbnRlcl9jb250ZXh0KHJ1bnFlbXUoImNvcmUtaW1hZ2UtbWluaW1hbCIsIHJ1bnFlbXVwYXJhbXMgPSAibm9ncmFwaGljIikpCisKKyAgICAgICAgICAgICMgdmFsaWRhdGUgdGhhdCBTU0ggaXMgd29ya2luZworICAgICAgICAgICAgc3RhdHVzLCBfID0gcWVtdS5ydW4oInVuYW1lIikKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc3RhdHVzLCAwKQorCisgICAgICAgICAgICAjIHNldHVwIG5mcyBtb3VudAorICAgICAgICAgICAgaWYgcWVtdS5ydW4oIm1rZGlyIC1wIFwiezB9XCIiLmZvcm1hdCh0bXBkaXIpKVswXSAhPSAwOgorICAgICAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigiRmFpbGVkIHRvIHNldHVwIE5GUyBtb3VudCBkaXJlY3Rvcnkgb24gdGFyZ2V0IikKKyAgICAgICAgICAgIG1vdW50Y21kID0gIm1vdW50IC1vIG5vYWMsbmZzdmVycz0zLHBvcnQ9ezB9LHVkcCxtb3VudHBvcnQ9ezF9IFwiezJ9OnszfVwiIFwiezN9XCIiLmZvcm1hdChuZnNwb3J0LCBtb3VudHBvcnQsIHFlbXUuc2VydmVyX2lwLCB0bXBkaXIpCisgICAgICAgICAgICBzdGF0dXMsIG91dHB1dCA9IHFlbXUucnVuKG1vdW50Y21kKQorICAgICAgICAgICAgaWYgc3RhdHVzICE9IDA6CisgICAgICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCJGYWlsZWQgdG8gc2V0dXAgTkZTIG1vdW50IG9uIHRhcmdldCAoe30pIi5mb3JtYXQocmVwcihvdXRwdXQpKSkKKworICAgICAgICAgICAgc2VsZi5ydW5fY2hlY2soc3NoID0gcWVtdS5pcCkKKworQE9FVGVzdFRhZygidG9vbGNoYWluLXVzZXIiKQorY2xhc3MgR2xpYmNTZWxmVGVzdChHbGliY1NlbGZUZXN0QmFzZSk6CisgICAgZGVmIHRlc3RfZ2xpYmMoc2VsZik6CisgICAgICAgIHNlbGYucnVuX2NoZWNrKCkKKworQE9FVGVzdFRhZygidG9vbGNoYWluLXN5c3RlbSIpCitjbGFzcyBHbGliY1NlbGZUZXN0U3lzdGVtRW11bGF0ZWQoR2xpYmNTZWxmVGVzdEJhc2UpOgorICAgIGRlZiB0ZXN0X2dsaWJjKHNlbGYpOgorICAgICAgICBzZWxmLnJ1bl9jaGVja19lbXVsYXRlZCgpCisKZGlmZiAtLWdpdCBhL3Bva3kvbWV0YS9saWIvb2VxYS9zZWxmdGVzdC9jYXNlcy9rZXJuZWxkZXZlbG9wbWVudC5weSBiL3Bva3kvbWV0YS9saWIvb2VxYS9zZWxmdGVzdC9jYXNlcy9rZXJuZWxkZXZlbG9wbWVudC5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hNjE4NzZlCi0tLSAvZGV2L251bGwKKysrIGIvcG9reS9tZXRhL2xpYi9vZXFhL3NlbGZ0ZXN0L2Nhc2VzL2tlcm5lbGRldmVsb3BtZW50LnB5CkBAIC0wLDAgKzEsNjcgQEAKK2ltcG9ydCBvcworZnJvbSBvZXFhLnNlbGZ0ZXN0LmNhc2UgaW1wb3J0IE9FU2VsZnRlc3RUZXN0Q2FzZQorZnJvbSBvZXFhLnV0aWxzLmNvbW1hbmRzIGltcG9ydCBydW5DbWQsIGdldF9iYl92YXIKK2Zyb20gb2VxYS51dGlscy5naXQgaW1wb3J0IEdpdFJlcG8KKworY2xhc3MgS2VybmVsRGV2KE9FU2VsZnRlc3RUZXN0Q2FzZSk6CisKKyAgICBAY2xhc3NtZXRob2QKKyAgICBkZWYgc2V0VXBDbGFzcyhjbHMpOgorICAgICAgICBzdXBlcihLZXJuZWxEZXYsIGNscykuc2V0VXBDbGFzcygpCisgICAgICAgICMgQ3JlYXRlIHRoZSByZWNpcGUgZGlyZWN0b3J5IHN0cnVjdHVyZSBpbnNpZGUgdGhlIGNyZWF0ZWQgbGF5ZXIKKyAgICAgICAgY2xzLmxheWVybmFtZSA9ICdtZXRhLWtlcm5lbHRlc3QnCisgICAgICAgIHJ1bkNtZCgnYml0YmFrZS1sYXllcnMgY3JlYXRlLWxheWVyICVzJyAlIGNscy5sYXllcm5hbWUpCisgICAgICAgIHJ1bkNtZCgnbWtkaXIgLXAgJXMvcmVjaXBlcy1rZXJuZWwvbGludXgvbGludXgteW9jdG8nICUgY2xzLmxheWVybmFtZSkKKyAgICAgICAgY2xzLnJlY2lwZXNfbGludXh5b2N0b19kaXIgPSBvcy5wYXRoLmpvaW4gXAorICAgICAgICAgICAgKGNscy5idWlsZGRpciwgY2xzLmxheWVybmFtZSwgJ3JlY2lwZXMta2VybmVsJywgJ2xpbnV4JywgJ2xpbnV4LXlvY3RvJykKKyAgICAgICAgY2xzLnJlY2lwZXNrZXJuZWxfZGlyID0gb3MucGF0aC5kaXJuYW1lKGNscy5yZWNpcGVzX2xpbnV4eW9jdG9fZGlyKQorICAgICAgICBydW5DbWQoJ2JpdGJha2UtbGF5ZXJzIGFkZC1sYXllciAlcycgJSBjbHMubGF5ZXJuYW1lKQorCisgICAgQGNsYXNzbWV0aG9kCisgICAgZGVmIHRlYXJEb3duQ2xhc3MoY2xzKToKKyAgICAgICAgcnVuQ21kKCdiaXRiYWtlLWxheWVycyByZW1vdmUtbGF5ZXIgJXMnICUgY2xzLmxheWVybmFtZSwgaWdub3JlX3N0YXR1cz1UcnVlKQorICAgICAgICBydW5DbWQoJ3JtIC1yZiAlcycgJSBjbHMubGF5ZXJuYW1lKQorICAgICAgICBzdXBlcihLZXJuZWxEZXYsIGNscykudGVhckRvd25DbGFzcygpCisKKyAgICBkZWYgc2V0VXAoc2VsZik6CisgICAgICAgIHN1cGVyKEtlcm5lbERldiwgc2VsZikuc2V0VXAoKQorICAgICAgICBzZWxmLnNldF9tYWNoaW5lX2NvbmZpZygnTUFDSElORSA9ICJxZW11eDg2LTY0IlxuJykKKworICAgIGRlZiB0ZXN0X2FwcGx5X3BhdGNoZXMoc2VsZik6CisgICAgICAgICIiIgorICAgICAgICBTdW1tYXJ5OiAgICAgQWJsZSB0byBhcHBseSBhIHNpbmdsZSBwYXRjaCB0byB0aGUgTGludXgga2VybmVsIHNvdXJjZQorICAgICAgICBFeHBlY3RlZDogICAgVGhlIFJFQURNRSBmaWxlIHNob3VsZCBleGlzdCBhbmQgdGhlIHBhdGNoIGNoYW5nZXMgc2hvdWxkIGJlCisgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5ZWQgYXQgdGhlIGVuZCBvZiB0aGUgZmlsZS4KKyAgICAgICAgUHJvZHVjdDogICAgIEtlcm5lbCBEZXZlbG9wbWVudAorICAgICAgICBBdXRob3I6ICAgICAgWWVvaCBFZSBQZW5nIDxlZS5wZW5nLnllb2hAaW50ZWwuY29tPgorICAgICAgICBBdXRvbWF0ZWRCeTogTWF6bGlhbmEgTW9oYW1hZCA8bWF6bGlhbmEubW9oYW1hZEBpbnRlbC5jb20+CisgICAgICAgICIiIgorICAgICAgICBydW5DbWQoJ2JpdGJha2UgdmlydHVhbC9rZXJuZWwgLWMgcGF0Y2gnKQorICAgICAgICBrZXJuZWxfc291cmNlID0gZ2V0X2JiX3ZhcignU1RBR0lOR19LRVJORUxfRElSJykKKyAgICAgICAgcmVhZG1lID0gb3MucGF0aC5qb2luKGtlcm5lbF9zb3VyY2UsICdSRUFETUUnKQorCisgICAgICAgICMgVGhpcyB0ZXN0IHN0ZXAgYWRkcyBtb2RpZmllZCBmaWxlICdSRUFETUUnIHRvIGdpdCBhbmQgY3JlYXRlcyBhCisgICAgICAgICMgcGF0Y2ggZmlsZSAnMDAwMS1LRVJORUxfREVWX1RFU1RfQ0FTRS5wYXRjaCcgYXQgdGhlIHNhbWUgbG9jYXRpb24gYXMgZmlsZQorICAgICAgICBwYXRjaF9jb250ZW50ID0gJ1RoaXMgaXMgYSB0ZXN0IHRvIGFwcGx5IGEgcGF0Y2ggdG8gdGhlIGtlcm5lbCcKKyAgICAgICAgd2l0aCBvcGVuKHJlYWRtZSwgJ2ErJykgYXMgZjoKKyAgICAgICAgICAgIGYud3JpdGUocGF0Y2hfY29udGVudCkKKyAgICAgICAgcmVwbyA9IEdpdFJlcG8oJyVzJyAlIGtlcm5lbF9zb3VyY2UsIGlzX3RvcGRpcj1UcnVlKQorICAgICAgICByZXBvLnJ1bl9jbWQoJ2FkZCAlcycgJSByZWFkbWUpCisgICAgICAgIHJlcG8ucnVuX2NtZChbJ2NvbW1pdCcsICctbScsICdLRVJORUxfREVWX1RFU1RfQ0FTRSddKQorICAgICAgICByZXBvLnJ1bl9jbWQoWydmb3JtYXQtcGF0Y2gnLCAnLTEnXSkKKyAgICAgICAgcGF0Y2hfbmFtZSA9ICcwMDAxLUtFUk5FTF9ERVZfVEVTVF9DQVNFLnBhdGNoJworICAgICAgICBwYXRjaHBhdGggPSBvcy5wYXRoLmpvaW4oa2VybmVsX3NvdXJjZSwgcGF0Y2hfbmFtZSkKKyAgICAgICAgcnVuQ21kKCdtdiAlcyAlcycgJSAocGF0Y2hwYXRoLCBzZWxmLnJlY2lwZXNfbGludXh5b2N0b19kaXIpKQorICAgICAgICBydW5DbWQoJ3JtICVzICcgJSByZWFkbWUpCisgICAgICAgIHNlbGYuYXNzZXJ0RmFsc2Uob3MucGF0aC5leGlzdHMocmVhZG1lKSkKKworICAgICAgICByZWNpcGVfYXBwZW5kID0gb3MucGF0aC5qb2luKHNlbGYucmVjaXBlc2tlcm5lbF9kaXIsICdsaW51eC15b2N0b18lLmJiYXBwZW5kJykKKyAgICAgICAgd2l0aCBvcGVuKHJlY2lwZV9hcHBlbmQsICd3KycpIGFzIGZoOgorICAgICAgICAgICAgZmgud3JpdGUoJ1NSQ19VUkkgKz0gImZpbGU6Ly8lcyJcbicgJSBwYXRjaF9uYW1lKQorICAgICAgICAgICAgZmgud3JpdGUoJ0ZJTEVTRVhUUkFQQVRIU19wcmVwZW5kIDo9ICIke1RISVNESVJ9LyR7UE59OiInKQorCisgICAgICAgIHJ1bkNtZCgnYml0YmFrZSB2aXJ0dWFsL2tlcm5lbCAtYyBjbGVhbicpCisgICAgICAgIHJ1bkNtZCgnYml0YmFrZSB2aXJ0dWFsL2tlcm5lbCAtYyBwYXRjaCcpCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShvcy5wYXRoLmV4aXN0cyhyZWFkbWUpKQorICAgICAgICByZXN1bHQgPSBydW5DbWQoJ3RhaWwgLW4gMSAlcycgJSByZWFkbWUpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocmVzdWx0Lm91dHB1dCwgcGF0Y2hfY29udGVudCkKZGlmZiAtLWdpdCBhL3Bva3kvbWV0YS9saWIvb2VxYS9zZWxmdGVzdC9jYXNlcy9tZXRhX2lkZS5weSBiL3Bva3kvbWV0YS9saWIvb2VxYS9zZWxmdGVzdC9jYXNlcy9tZXRhX2lkZS5weQppbmRleCBmNDdiYzcwLi4wMzkwMWEyIDEwMDY0NAotLS0gYS9wb2t5L21ldGEvbGliL29lcWEvc2VsZnRlc3QvY2FzZXMvbWV0YV9pZGUucHkKKysrIGIvcG9reS9tZXRhL2xpYi9vZXFhL3NlbGZ0ZXN0L2Nhc2VzL21ldGFfaWRlLnB5CkBAIC01LDkgKzUsMTEgQEAKIGZyb20gb2VxYS5zZWxmdGVzdC5jYXNlIGltcG9ydCBPRVNlbGZ0ZXN0VGVzdENhc2UKIGZyb20gb2VxYS5zZGsudXRpbHMuc2RrYnVpbGRwcm9qZWN0IGltcG9ydCBTREtCdWlsZFByb2plY3QKIGZyb20gb2VxYS51dGlscy5jb21tYW5kcyBpbXBvcnQgYml0YmFrZSwgZ2V0X2JiX3ZhcnMsIHJ1bkNtZAorZnJvbSBvZXFhLmNvcmUuZGVjb3JhdG9yIGltcG9ydCBPRVRlc3RUYWcKIGltcG9ydCB0ZW1wZmlsZQogaW1wb3J0IHNodXRpbAogCitAT0VUZXN0VGFnKCJtYWNoaW5lIikKIGNsYXNzIE1ldGFJREUoT0VTZWxmdGVzdFRlc3RDYXNlKToKIAogICAgIEBjbGFzc21ldGhvZApkaWZmIC0tZ2l0IGEvcG9reS9tZXRhL2xpYi9vZXFhL3NlbGZ0ZXN0L2Nhc2VzL3JlcHJvZHVjaWJsZS5weSBiL3Bva3kvbWV0YS9saWIvb2VxYS9zZWxmdGVzdC9jYXNlcy9yZXByb2R1Y2libGUucHkKaW5kZXggNmRjODNkMi4uZWVlMDlkMyAxMDA2NDQKLS0tIGEvcG9reS9tZXRhL2xpYi9vZXFhL3NlbGZ0ZXN0L2Nhc2VzL3JlcHJvZHVjaWJsZS5weQorKysgYi9wb2t5L21ldGEvbGliL29lcWEvc2VsZnRlc3QvY2FzZXMvcmVwcm9kdWNpYmxlLnB5CkBAIC04LDYgKzgsNyBAQAogaW1wb3J0IGZ1bmN0b29scwogaW1wb3J0IG11bHRpcHJvY2Vzc2luZwogaW1wb3J0IHRleHR3cmFwCitpbXBvcnQganNvbgogaW1wb3J0IHVuaXR0ZXN0CiAKIE1JU1NJTkcgPSAnTUlTU0lORycKQEAgLTgxLDE0ICs4MiwxMiBAQAogICAgICAgICBmb3IgdiBpbiBuZWVkZWRfdmFyczoKICAgICAgICAgICAgIHNldGF0dHIoc2VsZiwgdi5sb3dlcigpLCBiYl92YXJzW3ZdKQogCi0gICAgICAgIGlmIG5vdCBoYXNhdHRyKHNlbGYudGMsICJleHRyYXJlc3VsdHMiKToKLSAgICAgICAgICAgIHNlbGYudGMuZXh0cmFyZXN1bHRzID0ge30KLSAgICAgICAgc2VsZi5leHRyYXMgPSBzZWxmLnRjLmV4dHJhcmVzdWx0cwotCi0gICAgICAgIHNlbGYuZXh0cmFzLnNldGRlZmF1bHQoJ3JlcHJvZHVjaWJsZS5yYXdsb2dzJywge30pWydsb2cnXSA9ICcnCisgICAgICAgIHNlbGYuZXh0cmFzcmVzdWx0cyA9IHt9CisgICAgICAgIHNlbGYuZXh0cmFzcmVzdWx0cy5zZXRkZWZhdWx0KCdyZXByb2R1Y2libGUucmF3bG9ncycsIHt9KVsnbG9nJ10gPSAnJworICAgICAgICBzZWxmLmV4dHJhc3Jlc3VsdHMuc2V0ZGVmYXVsdCgncmVwcm9kdWNpYmxlJywge30pLnNldGRlZmF1bHQoJ2ZpbGVzJywge30pCiAKICAgICBkZWYgYXBwZW5kX3RvX2xvZyhzZWxmLCBtc2cpOgotICAgICAgICBzZWxmLmV4dHJhc1sncmVwcm9kdWNpYmxlLnJhd2xvZ3MnXVsnbG9nJ10gKz0gbXNnCisgICAgICAgIHNlbGYuZXh0cmFzcmVzdWx0c1sncmVwcm9kdWNpYmxlLnJhd2xvZ3MnXVsnbG9nJ10gKz0gbXNnCiAKICAgICBkZWYgY29tcGFyZV9wYWNrYWdlcyhzZWxmLCByZWZlcmVuY2VfZGlyLCB0ZXN0X2RpciwgZGlmZnV0aWxzX3N5c3Jvb3QpOgogICAgICAgICByZXN1bHQgPSBQYWNrYWdlQ29tcGFyZVJlc3VsdHMoKQpAQCAtMTE0LDQ3ICsxMTMsNzAgQEAKICAgICAgICAgcmVzdWx0LnNvcnQoKQogICAgICAgICByZXR1cm4gcmVzdWx0CiAKLSAgICBAdW5pdHRlc3Quc2tpcCgiUmVwcm9kdWNpYmxlIGJ1aWxkcyBkbyBub3QgeWV0IHBhc3MiKQorICAgIGRlZiB3cml0ZV9wYWNrYWdlX2xpc3Qoc2VsZiwgcGFja2FnZV9jbGFzcywgbmFtZSwgcGFja2FnZXMpOgorICAgICAgICBzZWxmLmV4dHJhc3Jlc3VsdHNbJ3JlcHJvZHVjaWJsZSddWydmaWxlcyddLnNldGRlZmF1bHQocGFja2FnZV9jbGFzcywge30pW25hbWVdID0gWworICAgICAgICAgICAgICAgIHsncmVmZXJlbmNlJzogcC5yZWZlcmVuY2UsICd0ZXN0JzogcC50ZXN0fSBmb3IgcCBpbiBwYWNrYWdlc10KKwogICAgIGRlZiB0ZXN0X3JlcHJvZHVjaWJsZV9idWlsZHMoc2VsZik6CiAgICAgICAgIGNhcHR1cmVfdmFycyA9IFsnREVQTE9ZX0RJUl8nICsgYy51cHBlcigpIGZvciBjIGluIHNlbGYucGFja2FnZV9jbGFzc2VzXQogCi0gICAgICAgIGNvbW1vbl9jb25maWcgPSB0ZXh0d3JhcC5kZWRlbnQoJycnXAotICAgICAgICAgICAgSU5IRVJJVCArPSAicmVwcm9kdWNpYmxlX2J1aWxkIgotICAgICAgICAgICAgUEFDS0FHRV9DTEFTU0VTID0gIiVzIgotICAgICAgICAgICAgJycnKSAlICgnICcuam9pbigncGFja2FnZV8lcycgJSBjIGZvciBjIGluIHNlbGYucGFja2FnZV9jbGFzc2VzKSkKLQotICAgICAgICAjIERvIGFuIGluaXRpYWwgYnVpbGQuIEl0J3MgYWNjZXB0YWJsZSBmb3IgdGhpcyBidWlsZCB0byB1c2Ugc3N0YXRlCi0gICAgICAgIHNlbGYud3JpdGVfY29uZmlnKGNvbW1vbl9jb25maWcpCi0gICAgICAgIHZhcnNfcmVmZXJlbmNlID0gZ2V0X2JiX3ZhcnMoY2FwdHVyZV92YXJzKQotICAgICAgICBiaXRiYWtlKCcgJy5qb2luKHNlbGYuaW1hZ2VzKSkKLQogICAgICAgICAjIEJ1aWxkIG5hdGl2ZSB1dGlsaXRpZXMKKyAgICAgICAgc2VsZi53cml0ZV9jb25maWcoJycpCiAgICAgICAgIGJpdGJha2UoImRpZmZ1dGlscy1uYXRpdmUgLWMgYWRkdG9fcmVjaXBlX3N5c3Jvb3QiKQogICAgICAgICBkaWZmdXRpbHNfc3lzcm9vdCA9IGdldF9iYl92YXIoIlJFQ0lQRV9TWVNST09UX05BVElWRSIsICJkaWZmdXRpbHMtbmF0aXZlIikKIAotICAgICAgICAjIFBlcmZvcm0gYW5vdGhlciBidWlsZC4gVGhpcyBidWlsZCBzaG91bGQgKm5vdCogc2hhcmUgc3N0YXRlIG9yIHB1bGwKLSAgICAgICAgIyBmcm9tIGFueSBtaXJyb3JzLCBidXQgc2hhcmluZyBhIERMX0RJUiBpcyBmaW5lCi0gICAgICAgIHNlbGYud3JpdGVfY29uZmlnKHRleHR3cmFwLmRlZGVudCgnJydcCi0gICAgICAgICAgICBUTVBESVIgPSAiJHtUT1BESVJ9L3JlcHJvZHVjaWJsZS90bXAiCisgICAgICAgICMgUmVwcm9kdWNpYmxlIGJ1aWxkcyBzaG91bGQgbm90IHB1bGwgZnJvbSBzc3RhdGUgb3IgbWlycm9ycywgYnV0CisgICAgICAgICMgc2hhcmluZyBETF9ESVIgaXMgZmluZQorICAgICAgICBjb21tb25fY29uZmlnID0gdGV4dHdyYXAuZGVkZW50KCcnJ1wKKyAgICAgICAgICAgIElOSEVSSVQgKz0gInJlcHJvZHVjaWJsZV9idWlsZCIKKyAgICAgICAgICAgIFBBQ0tBR0VfQ0xBU1NFUyA9ICIlcyIKICAgICAgICAgICAgIFNTVEFURV9ESVIgPSAiJHtUTVBESVJ9L3NzdGF0ZSIKLSAgICAgICAgICAgIFNTVEFURV9NSVJST1IgPSAiIgotICAgICAgICAgICAgJycnKSArIGNvbW1vbl9jb25maWcpCi0gICAgICAgIHZhcnNfdGVzdCA9IGdldF9iYl92YXJzKGNhcHR1cmVfdmFycykKKyAgICAgICAgICAgICcnJykgJSAoJyAnLmpvaW4oJ3BhY2thZ2VfJXMnICUgYyBmb3IgYyBpbiBzZWxmLnBhY2thZ2VfY2xhc3NlcykpCisKKyAgICAgICAgIyBQZXJmb3JtIGEgYnVpbGQuCisgICAgICAgIHJlcHJvZHVjaWJsZUFfdG1wID0gb3MucGF0aC5qb2luKHNlbGYudG9wZGlyLCAncmVwcm9kdWNpYmxlQScsICd0bXAnKQorICAgICAgICBpZiBvcy5wYXRoLmV4aXN0cyhyZXByb2R1Y2libGVBX3RtcCk6CisgICAgICAgICAgICBiYi51dGlscy5yZW1vdmUocmVwcm9kdWNpYmxlQV90bXAsIHJlY3Vyc2U9VHJ1ZSkKKworICAgICAgICBzZWxmLndyaXRlX2NvbmZpZygodGV4dHdyYXAuZGVkZW50KCcnJ1wKKyAgICAgICAgICAgIFRNUERJUiA9ICIlcyIKKyAgICAgICAgICAgICcnJykgJSByZXByb2R1Y2libGVBX3RtcCkgKyBjb21tb25fY29uZmlnKQorICAgICAgICB2YXJzX0EgPSBnZXRfYmJfdmFycyhjYXB0dXJlX3ZhcnMpCiAgICAgICAgIGJpdGJha2UoJyAnLmpvaW4oc2VsZi5pbWFnZXMpKQogCisgICAgICAgICMgUGVyZm9ybSBhbm90aGVyIGJ1aWxkLgorICAgICAgICByZXByb2R1Y2libGVCX3RtcCA9IG9zLnBhdGguam9pbihzZWxmLnRvcGRpciwgJ3JlcHJvZHVjaWJsZUInLCAndG1wJykKKyAgICAgICAgaWYgb3MucGF0aC5leGlzdHMocmVwcm9kdWNpYmxlQl90bXApOgorICAgICAgICAgICAgYmIudXRpbHMucmVtb3ZlKHJlcHJvZHVjaWJsZUJfdG1wLCByZWN1cnNlPVRydWUpCisKKyAgICAgICAgc2VsZi53cml0ZV9jb25maWcoKHRleHR3cmFwLmRlZGVudCgnJydcCisgICAgICAgICAgICBTU1RBVEVfTUlSUk9SID0gIiIKKyAgICAgICAgICAgIFRNUERJUiA9ICIlcyIKKyAgICAgICAgICAgICcnJykgJSByZXByb2R1Y2libGVCX3RtcCkgKyBjb21tb25fY29uZmlnKQorICAgICAgICB2YXJzX0IgPSBnZXRfYmJfdmFycyhjYXB0dXJlX3ZhcnMpCisgICAgICAgIGJpdGJha2UoJyAnLmpvaW4oc2VsZi5pbWFnZXMpKQorCisgICAgICAgICMgTk9URTogVGhlIHRlbXAgZGlyZWN0b3JpZXMgZnJvbSB0aGUgcmVwcm9kdWNpYmxlIGJ1aWxkIGFyZSBwdXJwb3NlbHkKKyAgICAgICAgIyBrZXB0IGFmdGVyIHRoZSBidWlsZCBzbyBpdCBjYW4gYmUgZGlmZmVkIGZvciBkZWJ1Z2dpbmcuCisKICAgICAgICAgZm9yIGMgaW4gc2VsZi5wYWNrYWdlX2NsYXNzZXM6Ci0gICAgICAgICAgICBwYWNrYWdlX2NsYXNzID0gJ3BhY2thZ2VfJyArIGMKKyAgICAgICAgICAgIHdpdGggc2VsZi5zdWJUZXN0KHBhY2thZ2VfY2xhc3M9Yyk6CisgICAgICAgICAgICAgICAgcGFja2FnZV9jbGFzcyA9ICdwYWNrYWdlXycgKyBjCiAKLSAgICAgICAgICAgIGRlcGxveV9yZWZlcmVuY2UgPSB2YXJzX3JlZmVyZW5jZVsnREVQTE9ZX0RJUl8nICsgYy51cHBlcigpXQotICAgICAgICAgICAgZGVwbG95X3Rlc3QgPSB2YXJzX3Rlc3RbJ0RFUExPWV9ESVJfJyArIGMudXBwZXIoKV0KKyAgICAgICAgICAgICAgICBkZXBsb3lfQSA9IHZhcnNfQVsnREVQTE9ZX0RJUl8nICsgYy51cHBlcigpXQorICAgICAgICAgICAgICAgIGRlcGxveV9CID0gdmFyc19CWydERVBMT1lfRElSXycgKyBjLnVwcGVyKCldCiAKLSAgICAgICAgICAgIHJlc3VsdCA9IHNlbGYuY29tcGFyZV9wYWNrYWdlcyhkZXBsb3lfcmVmZXJlbmNlLCBkZXBsb3lfdGVzdCwgZGlmZnV0aWxzX3N5c3Jvb3QpCisgICAgICAgICAgICAgICAgcmVzdWx0ID0gc2VsZi5jb21wYXJlX3BhY2thZ2VzKGRlcGxveV9BLCBkZXBsb3lfQiwgZGlmZnV0aWxzX3N5c3Jvb3QpCiAKLSAgICAgICAgICAgIHNlbGYubG9nZ2VyLmluZm8oJ1JlcHJvZHVjaWJpbGl0eSBzdW1tYXJ5IGZvciAlczogJXMnICUgKGMsIHJlc3VsdCkpCisgICAgICAgICAgICAgICAgc2VsZi5sb2dnZXIuaW5mbygnUmVwcm9kdWNpYmlsaXR5IHN1bW1hcnkgZm9yICVzOiAlcycgJSAoYywgcmVzdWx0KSkKIAotICAgICAgICAgICAgc2VsZi5hcHBlbmRfdG9fbG9nKCdcbicuam9pbigiJXM6ICVzIiAlIChyLnN0YXR1cywgci50ZXN0KSBmb3IgciBpbiByZXN1bHQudG90YWwpKQorICAgICAgICAgICAgICAgIHNlbGYuYXBwZW5kX3RvX2xvZygnXG4nLmpvaW4oIiVzOiAlcyIgJSAoci5zdGF0dXMsIHIudGVzdCkgZm9yIHIgaW4gcmVzdWx0LnRvdGFsKSkKIAotICAgICAgICAgICAgaWYgcmVzdWx0Lm1pc3Npbmcgb3IgcmVzdWx0LmRpZmZlcmVudDoKLSAgICAgICAgICAgICAgICBzZWxmLmZhaWwoIlRoZSBmb2xsb3dpbmcgJXMgcGFja2FnZXMgYXJlIG1pc3Npbmcgb3IgZGlmZmVyZW50OiAlcyIgJQotICAgICAgICAgICAgICAgICAgICAgICAgKGMsICcgJy5qb2luKHIudGVzdCBmb3IgciBpbiAocmVzdWx0Lm1pc3NpbmcgKyByZXN1bHQuZGlmZmVyZW50KSkpKQorICAgICAgICAgICAgICAgIHNlbGYud3JpdGVfcGFja2FnZV9saXN0KHBhY2thZ2VfY2xhc3MsICdtaXNzaW5nJywgcmVzdWx0Lm1pc3NpbmcpCisgICAgICAgICAgICAgICAgc2VsZi53cml0ZV9wYWNrYWdlX2xpc3QocGFja2FnZV9jbGFzcywgJ2RpZmZlcmVudCcsIHJlc3VsdC5kaWZmZXJlbnQpCisgICAgICAgICAgICAgICAgc2VsZi53cml0ZV9wYWNrYWdlX2xpc3QocGFja2FnZV9jbGFzcywgJ3NhbWUnLCByZXN1bHQuc2FtZSkKKworICAgICAgICAgICAgICAgIGlmIHJlc3VsdC5taXNzaW5nIG9yIHJlc3VsdC5kaWZmZXJlbnQ6CisgICAgICAgICAgICAgICAgICAgIHNlbGYuZmFpbCgiVGhlIGZvbGxvd2luZyAlcyBwYWNrYWdlcyBhcmUgbWlzc2luZyBvciBkaWZmZXJlbnQ6ICVzIiAlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGMsICcgJy5qb2luKHIudGVzdCBmb3IgciBpbiAocmVzdWx0Lm1pc3NpbmcgKyByZXN1bHQuZGlmZmVyZW50KSkpKQogCmRpZmYgLS1naXQgYS9wb2t5L21ldGEvbGliL29lcWEvc2VsZnRlc3QvY2FzZXMvcnVucWVtdS5weSBiL3Bva3kvbWV0YS9saWIvb2VxYS9zZWxmdGVzdC9jYXNlcy9ydW5xZW11LnB5CmluZGV4IGI4OGFlMzAuLjdlNjc2YmMgMTAwNjQ0Ci0tLSBhL3Bva3kvbWV0YS9saWIvb2VxYS9zZWxmdGVzdC9jYXNlcy9ydW5xZW11LnB5CisrKyBiL3Bva3kvbWV0YS9saWIvb2VxYS9zZWxmdGVzdC9jYXNlcy9ydW5xZW11LnB5CkBAIC04LDYgKzgsNyBAQAogaW1wb3J0IHRlbXBmaWxlCiBpbXBvcnQgdGltZQogaW1wb3J0IG9lLnR5cGVzCitmcm9tIG9lcWEuY29yZS5kZWNvcmF0b3IgaW1wb3J0IE9FVGVzdFRhZwogZnJvbSBvZXFhLnNlbGZ0ZXN0LmNhc2UgaW1wb3J0IE9FU2VsZnRlc3RUZXN0Q2FzZQogZnJvbSBvZXFhLnV0aWxzLmNvbW1hbmRzIGltcG9ydCBiaXRiYWtlLCBydW5xZW11LCBnZXRfYmJfdmFyLCBydW5DbWQKIApAQCAtMTQ3LDYgKzE0OCw3IEBACiAjIGRlZGljYXRlZCBmb3IgTUFDSElORT1xZW11eDg2LTY0IHdoZXJlIGl0IHRlc3QgdGhhdCBxZW11eDg2LTY0IHdpbGwKICMgYm9vdHVwIHZhcmlvdXMgZmlsZXN5c3RlbSB0eXBlcywgaW5jbHVkaW5nIGxpdmUgaW1hZ2UoaXNvIGFuZCBoZGRpbWcpCiAjIHdoZXJlIGxpdmUgaW1hZ2Ugd2FzIG5vdCBzdXBwb3J0ZWQgb24gYWxsIHFlbXUgYXJjaGl0ZWN0dXJlLgorQE9FVGVzdFRhZygibWFjaGluZSIpCiBjbGFzcyBRZW11VGVzdChPRVNlbGZ0ZXN0VGVzdENhc2UpOgogCiAgICAgQGNsYXNzbWV0aG9kCmRpZmYgLS1naXQgYS9wb2t5L21ldGEvbGliL29lcWEvc2VsZnRlc3QvY29udGV4dC5weSBiL3Bva3kvbWV0YS9saWIvb2VxYS9zZWxmdGVzdC9jb250ZXh0LnB5CmluZGV4IGQyNzk5OTQuLjMxMjZhZGEgMTAwNjQ0Ci0tLSBhL3Bva3kvbWV0YS9saWIvb2VxYS9zZWxmdGVzdC9jb250ZXh0LnB5CisrKyBiL3Bva3kvbWV0YS9saWIvb2VxYS9zZWxmdGVzdC9jb250ZXh0LnB5CkBAIC03Nyw3ICs3NywxNCBAQAogCiAgICAgICAgIHBhcnNlci5hZGRfYXJndW1lbnQoJy0tbWFjaGluZScsIHJlcXVpcmVkPUZhbHNlLCBjaG9pY2VzPVsncmFuZG9tJywgJ2FsbCddLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlbHA9J1J1biB0ZXN0cyBvbiBkaWZmZXJlbnQgbWFjaGluZXMgKHJhbmRvbS9hbGwpLicpCi0gICAgICAgIAorCisgICAgICAgIHBhcnNlci5hZGRfYXJndW1lbnQoJy10JywgJy0tc2VsZWN0LXRhZ3MnLCBkZXN0PSJzZWxlY3RfdGFncyIsCisgICAgICAgICAgICAgICAgbmFyZ3M9JyonLCBkZWZhdWx0PU5vbmUsCisgICAgICAgICAgICAgICAgaGVscD0nRmlsdGVyIGFsbCAodW5oaWRkZW4pIHRlc3RzIHRvIGFueSB0aGF0IG1hdGNoIGFueSBvZiB0aGUgc3BlY2lmaWVkIHRhZ3MuJykKKyAgICAgICAgcGFyc2VyLmFkZF9hcmd1bWVudCgnLVQnLCAnLS1leGNsdWRlLXRhZ3MnLCBkZXN0PSJleGNsdWRlX3RhZ3MiLAorICAgICAgICAgICAgICAgIG5hcmdzPScqJywgZGVmYXVsdD1Ob25lLAorICAgICAgICAgICAgICAgIGhlbHA9J0V4Y2x1ZGUgYWxsICh1bmhpZGRlbikgdGVzdHMgdGhhdCBtYXRjaCBhbnkgb2YgdGhlIHNwZWNpZmllZCB0YWdzLiAoZXhjbHVkZSBhcHBsaWVzIGJlZm9yZSBzZWxlY3QpJykKKwogICAgICAgICBwYXJzZXIuc2V0X2RlZmF1bHRzKGZ1bmM9c2VsZi5ydW4pCiAKICAgICBkZWYgX2dldF9hdmFpbGFibGVfbWFjaGluZXMoc2VsZik6CkBAIC0xNDksNiArMTU2LDE4IEBACiAgICAgICAgIGNvcHlmaWxlKHNlbGYudGNfa3dhcmdzWydpbml0J11bJ2NvbmZpZ19wYXRocyddWydiYmxheWVycyddLCAKICAgICAgICAgICAgICAgICBzZWxmLnRjX2t3YXJnc1snaW5pdCddWydjb25maWdfcGF0aHMnXVsnYmJsYXllcnNfYmFja3VwJ10pCiAKKyAgICAgICAgZGVmIHRhZ19maWx0ZXIodGFncyk6CisgICAgICAgICAgICBpZiBhcmdzLmV4Y2x1ZGVfdGFnczoKKyAgICAgICAgICAgICAgICBpZiBhbnkodGFnIGluIGFyZ3MuZXhjbHVkZV90YWdzIGZvciB0YWcgaW4gdGFncyk6CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBUcnVlCisgICAgICAgICAgICBpZiBhcmdzLnNlbGVjdF90YWdzOgorICAgICAgICAgICAgICAgIGlmIG5vdCB0YWdzIG9yIG5vdCBhbnkodGFnIGluIGFyZ3Muc2VsZWN0X3RhZ3MgZm9yIHRhZyBpbiB0YWdzKToKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFRydWUKKyAgICAgICAgICAgIHJldHVybiBGYWxzZQorCisgICAgICAgIGlmIGFyZ3Muc2VsZWN0X3RhZ3Mgb3IgYXJncy5leGNsdWRlX3RhZ3M6CisgICAgICAgICAgICBzZWxmLnRjX2t3YXJnc1snbG9hZCddWyd0YWdzX2ZpbHRlciddID0gdGFnX2ZpbHRlcgorCiAgICAgICAgIHNlbGYudGNfa3dhcmdzWydydW4nXVsnc2tpcHMnXSA9IGFyZ3Muc2tpcHMKICAgICAgICAgc2VsZi50Y19rd2FyZ3NbJ3J1biddWydwcm9jZXNzZXMnXSA9IGFyZ3MucHJvY2Vzc2VzCiAKZGlmZiAtLWdpdCBhL3Bva3kvbWV0YS9saWIvb2VxYS91dGlscy9jb21tYW5kcy5weSBiL3Bva3kvbWV0YS9saWIvb2VxYS91dGlscy9jb21tYW5kcy5weQppbmRleCA3MTQwYmM3Li5kYzFlMjg2IDEwMDY0NAotLS0gYS9wb2t5L21ldGEvbGliL29lcWEvdXRpbHMvY29tbWFuZHMucHkKKysrIGIvcG9reS9tZXRhL2xpYi9vZXFhL3V0aWxzL2NvbW1hbmRzLnB5CkBAIC0xNzIsOCArMTcyLDExIEBACiAgICAgaWYgbmF0aXZlX3N5c3Jvb3Q6CiAgICAgICAgIGV4dHJhX3BhdGhzID0gIiVzL3NiaW46JXMvdXNyL3NiaW46JXMvdXNyL2JpbiIgJSBcCiAgICAgICAgICAgICAgICAgICAgICAgKG5hdGl2ZV9zeXNyb290LCBuYXRpdmVfc3lzcm9vdCwgbmF0aXZlX3N5c3Jvb3QpCisgICAgICAgIGV4dHJhX2xpYnBhdGhzID0gIiVzL2xpYjolcy91c3IvbGliIiAlIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAobmF0aXZlX3N5c3Jvb3QsIG5hdGl2ZV9zeXNyb290KQogICAgICAgICBuZW52ID0gZGljdChvcHRpb25zLmdldCgnZW52Jywgb3MuZW52aXJvbikpCiAgICAgICAgIG5lbnZbJ1BBVEgnXSA9IGV4dHJhX3BhdGhzICsgJzonICsgbmVudi5nZXQoJ1BBVEgnLCAnJykKKyAgICAgICAgbmVudlsnTERfTElCUkFSWV9QQVRIJ10gPSBleHRyYV9saWJwYXRocyArICc6JyArIG5lbnYuZ2V0KCdMRF9MSUJSQVJZX1BBVEgnLCAnJykKICAgICAgICAgb3B0aW9uc1snZW52J10gPSBuZW52CiAKICAgICBjbWQgPSBDb21tYW5kKGNvbW1hbmQsIHRpbWVvdXQ9dGltZW91dCwgb3V0cHV0X2xvZz1vdXRwdXRfbG9nLCAqKm9wdGlvbnMpCkBAIC0zMzcsNyArMzQwLDcgQEAKICAgICAgICAgcWVtdS5kZXBsb3koKQogICAgICAgICB0cnk6CiAgICAgICAgICAgICBxZW11LnN0YXJ0KHBhcmFtcz1xZW11cGFyYW1zLCBzc2g9c3NoLCBydW5xZW11cGFyYW1zPXJ1bnFlbXVwYXJhbXMsIGxhdW5jaF9jbWQ9bGF1bmNoX2NtZCwgZGlzY2FyZF93cml0ZXM9ZGlzY2FyZF93cml0ZXMpCi0gICAgICAgIGV4Y2VwdCBFWGNlcHRpb24gYXMgZToKKyAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgogICAgICAgICAgICAgbXNnID0gc3RyKGUpICsgJ1xuRmFpbGVkIHRvIHN0YXJ0IFFFTVUgLSBzZWUgdGhlIGxvZ3MgaW4gJXMnICUgbG9nZGlyCiAgICAgICAgICAgICBpZiBvcy5wYXRoLmV4aXN0cyhxZW11LnFlbXVydW5uZXJsb2cpOgogICAgICAgICAgICAgICAgIHdpdGggb3BlbihxZW11LnFlbXVydW5uZXJsb2csICdyJykgYXMgZjoKZGlmZiAtLWdpdCBhL3Bva3kvbWV0YS9saWIvb2VxYS91dGlscy9uZXR3b3JrLnB5IGIvcG9reS9tZXRhL2xpYi9vZXFhL3V0aWxzL25ldHdvcmsucHkKaW5kZXggNTljYmJjNC4uNTlkMDE3MiAxMDA2NDQKLS0tIGEvcG9reS9tZXRhL2xpYi9vZXFhL3V0aWxzL25ldHdvcmsucHkKKysrIGIvcG9reS9tZXRhL2xpYi9vZXFhL3V0aWxzL25ldHdvcmsucHkKQEAgLTQsOCArNCw4IEBACiAKIGltcG9ydCBzb2NrZXQKIAotZGVmIGdldF9mcmVlX3BvcnQoKToKLSAgICBzID0gc29ja2V0LnNvY2tldChzb2NrZXQuQUZfSU5FVCwgc29ja2V0LlNPQ0tfU1RSRUFNKQorZGVmIGdldF9mcmVlX3BvcnQodWRwID0gRmFsc2UpOgorICAgIHMgPSBzb2NrZXQuc29ja2V0KHNvY2tldC5BRl9JTkVULCBzb2NrZXQuU09DS19TVFJFQU0gaWYgbm90IHVkcCBlbHNlIHNvY2tldC5TT0NLX0RHUkFNKQogICAgIHMuYmluZCgoJycsIDApKQogICAgIGFkZHIgPSBzLmdldHNvY2tuYW1lKCkKICAgICBzLmNsb3NlKCkKZGlmZiAtLWdpdCBhL3Bva3kvbWV0YS9saWIvb2VxYS91dGlscy9uZnMucHkgYi9wb2t5L21ldGEvbGliL29lcWEvdXRpbHMvbmZzLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmEzNzY4NmMKLS0tIC9kZXYvbnVsbAorKysgYi9wb2t5L21ldGEvbGliL29lcWEvdXRpbHMvbmZzLnB5CkBAIC0wLDAgKzEsMzkgQEAKKyMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVAoraW1wb3J0IG9zCitpbXBvcnQgc3lzCitpbXBvcnQgdGVtcGZpbGUKK2ltcG9ydCBjb250ZXh0bGliCitpbXBvcnQgc29ja2V0Citmcm9tIG9lcWEudXRpbHMuY29tbWFuZHMgaW1wb3J0IGJpdGJha2UsIGdldF9iYl92YXIsIENvbW1hbmQKK2Zyb20gb2VxYS51dGlscy5uZXR3b3JrIGltcG9ydCBnZXRfZnJlZV9wb3J0CisKK0Bjb250ZXh0bGliLmNvbnRleHRtYW5hZ2VyCitkZWYgdW5mc19zZXJ2ZXIoZGlyZWN0b3J5LCBsb2dnZXIgPSBOb25lKToKKyAgICB1bmZzX3N5c3Jvb3QgPSBnZXRfYmJfdmFyKCJSRUNJUEVfU1lTUk9PVF9OQVRJVkUiLCAidW5mczMtbmF0aXZlIikKKyAgICBpZiBub3Qgb3MucGF0aC5leGlzdHMob3MucGF0aC5qb2luKHVuZnNfc3lzcm9vdCwgInVzciIsICJiaW4iLCAidW5mc2QiKSk6CisgICAgICAgICMgYnVpbGQgbmF0aXZlIHRvb2wKKyAgICAgICAgYml0YmFrZSgidW5mczMtbmF0aXZlIC1jIGFkZHRvX3JlY2lwZV9zeXNyb290IikKKworICAgIGV4cG9ydHMgPSBOb25lCisgICAgY21kID0gTm9uZQorICAgIHRyeToKKyAgICAgICAgIyBjcmVhdGUgdGhlIGV4cG9ydHMgZmlsZQorICAgICAgICB3aXRoIHRlbXBmaWxlLk5hbWVkVGVtcG9yYXJ5RmlsZShkZWxldGUgPSBGYWxzZSkgYXMgZXhwb3J0czoKKyAgICAgICAgICAgIGV4cG9ydHMud3JpdGUoInswfSAocncsbm9fcm9vdF9zcXVhc2gsbm9fYWxsX3NxdWFzaCxpbnNlY3VyZSlcbiIuZm9ybWF0KGRpcmVjdG9yeSkuZW5jb2RlKCkpCisKKyAgICAgICAgIyBmaW5kIHNvbWUgcG9ydHMgZm9yIHRoZSBzZXJ2ZXIKKyAgICAgICAgbmZzcG9ydCwgbW91bnRwb3J0ID0gZ2V0X2ZyZWVfcG9ydCh1ZHAgPSBUcnVlKSwgZ2V0X2ZyZWVfcG9ydCh1ZHAgPSBUcnVlKQorCisgICAgICAgIG5lbnYgPSBkaWN0KG9zLmVudmlyb24pCisgICAgICAgIG5lbnZbJ1BBVEgnXSA9ICJ7MH0vc2Jpbjp7MH0vdXNyL3NiaW46ezB9L3Vzci9iaW46Ii5mb3JtYXQodW5mc19zeXNyb290KSArIG5lbnYuZ2V0KCdQQVRIJywgJycpCisgICAgICAgIGNtZCA9IENvbW1hbmQoWyJ1bmZzZCIsICItZCIsICItcCIsICItTiIsICItZSIsIGV4cG9ydHMubmFtZSwgIi1uIiwgc3RyKG5mc3BvcnQpLCAiLW0iLCBzdHIobW91bnRwb3J0KV0sCisgICAgICAgICAgICAgICAgYmcgPSBUcnVlLCBlbnYgPSBuZW52LCBvdXRwdXRfbG9nID0gbG9nZ2VyKQorICAgICAgICBjbWQucnVuKCkKKyAgICAgICAgeWllbGQgbmZzcG9ydCwgbW91bnRwb3J0CisgICAgZmluYWxseToKKyAgICAgICAgaWYgY21kIGlzIG5vdCBOb25lOgorICAgICAgICAgICAgY21kLnN0b3AoKQorICAgICAgICBpZiBleHBvcnRzIGlzIG5vdCBOb25lOgorICAgICAgICAgICAgIyBjbGVhbiB1cCBleHBvcnRzIGZpbGUKKyAgICAgICAgICAgIG9zLnVubGluayhleHBvcnRzLm5hbWUpCisKZGlmZiAtLWdpdCBhL3Bva3kvbWV0YS9yZWNpcGVzLWNvbm5lY3Rpdml0eS9hdmFoaS9hdmFoaS11aV8wLjcuYmIgYi9wb2t5L21ldGEvcmVjaXBlcy1jb25uZWN0aXZpdHkvYXZhaGkvYXZhaGktdWlfMC43LmJiCmluZGV4IGE3NzY1M2IuLjFjNmU0NmEgMTAwNjQ0Ci0tLSBhL3Bva3kvbWV0YS9yZWNpcGVzLWNvbm5lY3Rpdml0eS9hdmFoaS9hdmFoaS11aV8wLjcuYmIKKysrIGIvcG9reS9tZXRhL3JlY2lwZXMtY29ubmVjdGl2aXR5L2F2YWhpL2F2YWhpLXVpXzAuNy5iYgpAQCAtMjAsNyArMjAsMTMgQEAKIAogZG9faW5zdGFsbF9hcHBlbmQgKCkgewogCXJtICR7RH0ke3N5c2NvbmZkaXJ9IC1yZgotCXJtICR7RH0ke2Jhc2VfbGliZGlyfSAtcmYKKwlpZiAke0BiYi51dGlscy5jb250YWlucygnRElTVFJPX0ZFQVRVUkVTJywndXNybWVyZ2UnLCd0cnVlJywnZmFsc2UnLGQpfTsgdGhlbgorICAgICAgICAgICAgICAgaWYgWyAiJHtub25hcmNoX2Jhc2VfbGliZGlyfSIgIT0gIiR7YmFzZV9saWJkaXJ9IiBdO3RoZW4KKyAgICAgICAgICAgICAgICAgICBybSAke0R9JHtub25hcmNoX2Jhc2VfbGliZGlyfSAtcmYKKyAgICAgICAgICAgICAgIGZpCisgICAgICAgIGVsc2UKKwkJcm0gJHtEfSR7YmFzZV9saWJkaXJ9IC1yZgorICAgICAgICBmaQogCXJtICR7RH0ke3N5c3RlbWRfdW5pdGRpcn0gLXJmCiAJIyBUaGUgJHtzeXN0ZW1kX3VuaXRkaXJ9IGlzIC9saWIvc3lzdGVtZCwgc28gd2UgbmVlZCBybWRpciAvbGliLAogCSMgYnV0IG5vdCAke2Jhc2VfbGliZGlyfSBoZXJlLiBBbmQgdGhlIC9saWIgbWF5IG5vdCBleGlzdApkaWZmIC0tZ2l0IGEvcG9reS9tZXRhL3JlY2lwZXMtY29ubmVjdGl2aXR5L2F2YWhpL2ZpbGVzLzAwMDEtRml4LW9wZW5pbmctZXRjLXJlc29sdi5jb25mLWVycm9yLnBhdGNoIGIvcG9reS9tZXRhL3JlY2lwZXMtY29ubmVjdGl2aXR5L2F2YWhpL2ZpbGVzLzAwMDEtRml4LW9wZW5pbmctZXRjLXJlc29sdi5jb25mLWVycm9yLnBhdGNoCmluZGV4IDExZTdlOGEuLmNiOGI4M2YgMTAwNjQ0Ci0tLSBhL3Bva3kvbWV0YS9yZWNpcGVzLWNvbm5lY3Rpdml0eS9hdmFoaS9maWxlcy8wMDAxLUZpeC1vcGVuaW5nLWV0Yy1yZXNvbHYuY29uZi1lcnJvci5wYXRjaAorKysgYi9wb2t5L21ldGEvcmVjaXBlcy1jb25uZWN0aXZpdHkvYXZhaGkvZmlsZXMvMDAwMS1GaXgtb3BlbmluZy1ldGMtcmVzb2x2LmNvbmYtZXJyb3IucGF0Y2gKQEAgLTE5LDYgKzE5LDExIEBACiBVcHN0cmVhbS1TdGF0dXM6IEluYXBwcm9wcmlhdGUgW09FIFNwZWNpZmljXQogCiBTaWduZWQtb2ZmLWJ5OiBDaGVuIFFpIDxRaS5DaGVuQHdpbmRyaXZlci5jb20+CisKK1doZW4gY29ubm1hbiBpbnN0YWxsZWQgdG8gaW1hZ2UsIC9ldGMvcmVzb2x2LmNvbmYgaXMgbGluayB0bworL2V0Yy9yZXNvbHYtY29uZi5jb25ubWFuLiBTbyBsYXVuY2ggYXZhaGktZGFlbW9uIGFmdGVyIGNvbm5tYW4gdG9vLgorCitTaWduZWQtb2ZmLWJ5OiBLYWkgS2FuZyA8a2FpLmthbmdAd2luZHJpdmVyLmNvbT4KIC0tLQogIGF2YWhpLWRhZW1vbi9hdmFoaS1kYWVtb24uc2VydmljZS5pbiB8IDEgKwogIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKQpAQCAtMzEsNyArMzYsNyBAQAogIFtVbml0XQogIERlc2NyaXB0aW9uPUF2YWhpIG1ETlMvRE5TLVNEIFN0YWNrCiAgUmVxdWlyZXM9YXZhaGktZGFlbW9uLnNvY2tldAotK0FmdGVyPXN5c3RlbWQtcmVzb2x2ZWQuc2VydmljZQorK0FmdGVyPXN5c3RlbWQtcmVzb2x2ZWQuc2VydmljZSBjb25ubWFuLnNlcnZpY2UKICAKICBbU2VydmljZV0KICBUeXBlPWRidXMKZGlmZiAtLWdpdCBhL3Bva3kvbWV0YS9yZWNpcGVzLWNvbm5lY3Rpdml0eS9iaW5kL2JpbmRfOS4xMS41LVA0LmJiIGIvcG9reS9tZXRhL3JlY2lwZXMtY29ubmVjdGl2aXR5L2JpbmQvYmluZF85LjExLjUtUDQuYmIKaW5kZXggOTNjNDA2Zi4uNjliMTE3NCAxMDA2NDQKLS0tIGEvcG9reS9tZXRhL3JlY2lwZXMtY29ubmVjdGl2aXR5L2JpbmQvYmluZF85LjExLjUtUDQuYmIKKysrIGIvcG9reS9tZXRhL3JlY2lwZXMtY29ubmVjdGl2aXR5L2JpbmQvYmluZF85LjExLjUtUDQuYmIKQEAgLTM5LDcgKzM5LDcgQEAKIFBBQ0tBR0VDT05GSUdbcmVhZGxpbmVdID0gIi0td2l0aC1yZWFkbGluZT0tbHJlYWRsaW5lLCxyZWFkbGluZSIKIFBBQ0tBR0VDT05GSUdbbGliZWRpdF0gPSAiLS13aXRoLXJlYWRsaW5lPS1sZWRpdCwsbGliZWRpdCIKIFBBQ0tBR0VDT05GSUdbdXJhbmRvbV0gPSAiLS13aXRoLXJhbmRvbWRldj0vZGV2L3VyYW5kb20sLS13aXRoLXJhbmRvbWRldj0vZGV2L3JhbmRvbSwsIgotUEFDS0FHRUNPTkZJR1tweXRob24zXSA9ICItLXdpdGgtcHl0aG9uPSR7UFlUSE9OfSAtLXdpdGgtcHl0aG9uLWluc3RhbGwtZGlyPSR7RH0vJHtQWVRIT05fU0lURVBBQ0tBR0VTX0RJUn0gLCAtLXdpdGhvdXQtcHl0aG9uLCBweXRob24zLXBseS1uYXRpdmUsIgorUEFDS0FHRUNPTkZJR1tweXRob24zXSA9ICItLXdpdGgtcHl0aG9uPXllcyAtLXdpdGgtcHl0aG9uLWluc3RhbGwtZGlyPSR7UFlUSE9OX1NJVEVQQUNLQUdFU19ESVJ9ICwgLS13aXRob3V0LXB5dGhvbiwgcHl0aG9uMy1wbHktbmF0aXZlLCIKIAogRU5BQkxFX0lQVjYgPSAiLS1lbmFibGUtaXB2Nj0ke0BiYi51dGlscy5jb250YWlucygnRElTVFJPX0ZFQVRVUkVTJywgJ2lwdjYnLCAneWVzJywgJ25vJywgZCl9IgogRVhUUkFfT0VDT05GID0gIiAke0VOQUJMRV9JUFY2fSAtLXdpdGgtbGlidG9vbCAtLWVuYWJsZS10aHJlYWRzIFwKZGlmZiAtLWdpdCBhL3Bva3kvbWV0YS9yZWNpcGVzLWNvbm5lY3Rpdml0eS9ibHVlejUvYmx1ZXo1LmluYyBiL3Bva3kvbWV0YS9yZWNpcGVzLWNvbm5lY3Rpdml0eS9ibHVlejUvYmx1ZXo1LmluYwppbmRleCBiZmZkMTc0Li42Yzc5ZWQwIDEwMDY0NAotLS0gYS9wb2t5L21ldGEvcmVjaXBlcy1jb25uZWN0aXZpdHkvYmx1ZXo1L2JsdWV6NS5pbmMKKysrIGIvcG9reS9tZXRhL3JlY2lwZXMtY29ubmVjdGl2aXR5L2JsdWV6NS9ibHVlejUuaW5jCkBAIC01Nyw2ICs1Nyw3IEBACiAgICAgZmlsZTovLzAwMDEtTWFrZWZpbGUuYW0tRml4LWEtcmFjZS1pc3N1ZS1mb3ItdG9vbHMucGF0Y2ggXAogICAgIGZpbGU6Ly9DVkUtMjAxOC0xMDkxMC5wYXRjaCBcCiAgICAgZmlsZTovL2djYzktZml4ZXMucGF0Y2ggXAorICAgIGZpbGU6Ly8wMDAxLXRvb2xzLUZpeC1idWlsZC1hZnRlci15MjAzOC1jaGFuZ2VzLWluLWdsaWJjLnBhdGNoIFwKICIKIFMgPSAiJHtXT1JLRElSfS9ibHVlei0ke1BWfSIKIApkaWZmIC0tZ2l0IGEvcG9reS9tZXRhL3JlY2lwZXMtY29ubmVjdGl2aXR5L2JsdWV6NS9ibHVlejUvMDAwMS10b29scy1GaXgtYnVpbGQtYWZ0ZXIteTIwMzgtY2hhbmdlcy1pbi1nbGliYy5wYXRjaCBiL3Bva3kvbWV0YS9yZWNpcGVzLWNvbm5lY3Rpdml0eS9ibHVlejUvYmx1ZXo1LzAwMDEtdG9vbHMtRml4LWJ1aWxkLWFmdGVyLXkyMDM4LWNoYW5nZXMtaW4tZ2xpYmMucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOWNhMjBhZQotLS0gL2Rldi9udWxsCisrKyBiL3Bva3kvbWV0YS9yZWNpcGVzLWNvbm5lY3Rpdml0eS9ibHVlejUvYmx1ZXo1LzAwMDEtdG9vbHMtRml4LWJ1aWxkLWFmdGVyLXkyMDM4LWNoYW5nZXMtaW4tZ2xpYmMucGF0Y2gKQEAgLTAsMCArMSw2OCBAQAorRnJvbSBmMzZmNzFmNjBiMWU2OGMwZjEyZTYxNWI5YjEyOGQwODllYzNkZDE5IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogQmFzdGllbiBOb2NlcmEgPGhhZGVzc0BoYWRlc3MubmV0PgorRGF0ZTogRnJpLCA3IEp1biAyMDE5IDA5OjUxOjMzICswMjAwCitTdWJqZWN0OiBbUEFUQ0hdIHRvb2xzOiBGaXggYnVpbGQgYWZ0ZXIgeTIwMzggY2hhbmdlcyBpbiBnbGliYworCitUaGUgMzItYml0IFNJT0NHU1RBTVAgaGFzIGJlZW4gZGVwcmVjYXRlZC4gVXNlIHRoZSBkZXByZWNhdGVkIG5hbWUKK3RvIGZpeCB0aGUgYnVpbGQuCisKK1Vwc3RyZWFtLVN0YXR1czogYmFja3BvcnQgY29tbWl0IGYzNmY3MWY2MGIxZTY4YzBmMTJlNjE1YjliMTI4ZDA4OWVjM2RkMTkKKworU2lnbmVkLW9mZi1ieTogQnJ1Y2UgQXNoZmllbGQgPGJydWNlLmFzaGZpZWxkQGdtYWlsLmNvbT4KKworLS0tCisgdG9vbHMvbDJ0ZXN0LmMgfCA2ICsrKysrLQorIHRvb2xzL3JjdGVzdC5jIHwgNiArKysrKy0KKyAyIGZpbGVzIGNoYW5nZWQsIDEwIGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCisKK2RpZmYgLS1naXQgYS90b29scy9sMnRlc3QuYyBiL3Rvb2xzL2wydGVzdC5jCitpbmRleCBlNzU1YWM4ODEuLmU3ODdjMmNlMiAxMDA2NDQKKy0tLSBhL3Rvb2xzL2wydGVzdC5jCisrKysgYi90b29scy9sMnRlc3QuYworQEAgLTU1LDYgKzU1LDEwIEBACisgI2RlZmluZSBCUkVEUl9ERUZBVUxUX1BTTQkweDEwMTEKKyAjZGVmaW5lIExFX0RFRkFVTFRfUFNNCQkweDAwODAKKyAKKysjaWZuZGVmIFNJT0NHU1RBTVBfT0xECisrI2RlZmluZSBTSU9DR1NUQU1QX09MRCBTSU9DR1NUQU1QCisrI2VuZGlmCisrCisgLyogVGVzdCBtb2RlcyAqLworIGVudW0geworIAlTRU5ELAorQEAgLTkwNyw3ICs5MTEsNyBAQCBzdGF0aWMgdm9pZCByZWN2X21vZGUoaW50IHNrKQorIAkJCWlmICh0aW1lc3RhbXApIHsKKyAJCQkJc3RydWN0IHRpbWV2YWwgdHY7CisgCistCQkJCWlmIChpb2N0bChzaywgU0lPQ0dTVEFNUCwgJnR2KSA8IDApIHsKKysJCQkJaWYgKGlvY3RsKHNrLCBTSU9DR1NUQU1QX09MRCwgJnR2KSA8IDApIHsKKyAJCQkJCXRpbWVzdGFtcCA9IDA7CisgCQkJCQltZW1zZXQodHMsIDAsIHNpemVvZih0cykpOworIAkJCQl9IGVsc2UgeworZGlmZiAtLWdpdCBhL3Rvb2xzL3JjdGVzdC5jIGIvdG9vbHMvcmN0ZXN0LmMKK2luZGV4IDk0NDkwZjQ2Mi4uYmM4ZWQ4NzVkIDEwMDY0NAorLS0tIGEvdG9vbHMvcmN0ZXN0LmMKKysrKyBiL3Rvb2xzL3JjdGVzdC5jCitAQCAtNTAsNiArNTAsMTAgQEAKKyAKKyAjaW5jbHVkZSAic3JjL3NoYXJlZC91dGlsLmgiCisgCisrI2lmbmRlZiBTSU9DR1NUQU1QX09MRAorKyNkZWZpbmUgU0lPQ0dTVEFNUF9PTEQgU0lPQ0dTVEFNUAorKyNlbmRpZgorKworIC8qIFRlc3QgbW9kZXMgKi8KKyBlbnVtIHsKKyAJU0VORCwKK0BAIC01MDUsNyArNTA5LDcgQEAgc3RhdGljIHZvaWQgcmVjdl9tb2RlKGludCBzaykKKyAJCQlpZiAodGltZXN0YW1wKSB7CisgCQkJCXN0cnVjdCB0aW1ldmFsIHR2OworIAorLQkJCQlpZiAoaW9jdGwoc2ssIFNJT0NHU1RBTVAsICZ0dikgPCAwKSB7CisrCQkJCWlmIChpb2N0bChzaywgU0lPQ0dTVEFNUF9PTEQsICZ0dikgPCAwKSB7CisgCQkJCQl0aW1lc3RhbXAgPSAwOworIAkJCQkJbWVtc2V0KHRzLCAwLCBzaXplb2YodHMpKTsKKyAJCQkJfSBlbHNlIHsKKy0tIAorMi4xOS4xCisKZGlmZiAtLWdpdCBhL3Bva3kvbWV0YS9yZWNpcGVzLWNvbm5lY3Rpdml0eS9uZnMtdXRpbHMvbmZzLXV0aWxzLzAwMDEtRG8tbm90LXBhc3MtbnVsbC1wb2ludGVyLXRvLWZyZWVhZGRyaW5mby5wYXRjaCBiL3Bva3kvbWV0YS9yZWNpcGVzLWNvbm5lY3Rpdml0eS9uZnMtdXRpbHMvbmZzLXV0aWxzLzAwMDEtRG8tbm90LXBhc3MtbnVsbC1wb2ludGVyLXRvLWZyZWVhZGRyaW5mby5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYTQ0ZDFiZi4uMDAwMDAwMAotLS0gYS9wb2t5L21ldGEvcmVjaXBlcy1jb25uZWN0aXZpdHkvbmZzLXV0aWxzL25mcy11dGlscy8wMDAxLURvLW5vdC1wYXNzLW51bGwtcG9pbnRlci10by1mcmVlYWRkcmluZm8ucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwzMiArMCwwIEBACi1Gcm9tIDRmMTE1ZmMzMTQ2NDY1MDBmN2I0MTc4ZDcyNDhhMDI2NTRjN2NkMTAgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBLaGVtIFJhaiA8cmFqLmtoZW1AZ21haWwuY29tPgotRGF0ZTogRnJpLCAzMCBOb3YgMjAxOCAxNjo0Nzo1NyAtMDgwMAotU3ViamVjdDogW1BBVENIXSBEbyBub3QgcGFzcyBudWxsIHBvaW50ZXIgdG8gZnJlZWFkZHJpbmZvKCkKLQotUGFzc2luZyBudWxsIHBvaW50ZXIgYXMgaW5wdXQgcGFyYW1ldGVyIHRvIGZyZWVhZGRyaW5mbygpIGlzIHVuZGVmaW5lZAotYmVoYXZpb3VyLCBzb21lIGxpYmNzIGUuZy4gZ2xpYmMgbWlnaHQganVzdCBjYWxsIGZyZWUoKSB3aGljaCBkb2VzCi1hY2NlcHQgbnVsbCBwb2ludGVyIGJ1dCBvdGhlciBsaWJjcyBlLmcuIG11c2wgbWlnaHQgbm90IGFuZCBpbnN0ZWFkCi1jYXVzZSB0aGUgcHJvZ3JhbSB0byBzZWdmYXVsdC4gVGhlcmVmb3JlIGRvIG5vdCByZWx5IG9uIHVuZGVmaW5lZAotYmVoYXZpb3VyIGluc3RlYWQgbWFrZSBpdCBkZXRlcm1pbmlzdGljCi0KLVVwc3RyZWFtLVN0YXR1czogUGVuZGluZwotCi1TaWduZWQtb2ZmLWJ5OiBLaGVtIFJhaiA8cmFqLmtoZW1AZ21haWwuY29tPgotLS0tCi0gc3VwcG9ydC9leHBvcnQvY2xpZW50LmMgfCAzICsrLQotIDEgZmlsZSBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKLQotSW5kZXg6IG5mcy11dGlscy0yLjMuMi9zdXBwb3J0L2V4cG9ydC9jbGllbnQuYwotPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIG5mcy11dGlscy0yLjMuMi5vcmlnL3N1cHBvcnQvZXhwb3J0L2NsaWVudC5jCi0rKysgbmZzLXV0aWxzLTIuMy4yL3N1cHBvcnQvZXhwb3J0L2NsaWVudC5jCi1AQCAtMzA5LDcgKzMwOSw4IEBAIGNsaWVudF9sb29rdXAoY2hhciAqaG5hbWUsIGludCBjYW5vbmljYWwKLSAJCWluaXRfYWRkcmxpc3QoY2xwLCBhaSk7Ci0gCi0gb3V0OgotLQlmcmVlYWRkcmluZm8oYWkpOwotKwlpZiAoYWkpCi0rCQlmcmVlYWRkcmluZm8oYWkpOwotIAlyZXR1cm4gY2xwOwotIH0KLSAKZGlmZiAtLWdpdCBhL3Bva3kvbWV0YS9yZWNpcGVzLWNvbm5lY3Rpdml0eS9uZnMtdXRpbHMvbmZzLXV0aWxzLzAwMDEtTWFrZWZpbGUuYW0tZml4LXVuZGVmaW5lZC1mdW5jdGlvbi1mb3ItbGlibnNtLmEucGF0Y2ggYi9wb2t5L21ldGEvcmVjaXBlcy1jb25uZWN0aXZpdHkvbmZzLXV0aWxzL25mcy11dGlscy8wMDAxLU1ha2VmaWxlLmFtLWZpeC11bmRlZmluZWQtZnVuY3Rpb24tZm9yLWxpYm5zbS5hLnBhdGNoCmluZGV4IGFhNTUxZWIuLmZjYjBlOTkgMTAwNjQ0Ci0tLSBhL3Bva3kvbWV0YS9yZWNpcGVzLWNvbm5lY3Rpdml0eS9uZnMtdXRpbHMvbmZzLXV0aWxzLzAwMDEtTWFrZWZpbGUuYW0tZml4LXVuZGVmaW5lZC1mdW5jdGlvbi1mb3ItbGlibnNtLmEucGF0Y2gKKysrIGIvcG9reS9tZXRhL3JlY2lwZXMtY29ubmVjdGl2aXR5L25mcy11dGlscy9uZnMtdXRpbHMvMDAwMS1NYWtlZmlsZS5hbS1maXgtdW5kZWZpbmVkLWZ1bmN0aW9uLWZvci1saWJuc20uYS5wYXRjaApAQCAtMjIsMjUgKzIyLDI4IEBACiBVcHN0cmVhbS1TdGF0dXM6IFN1Ym1pdHRlZFtodHRwczovL21hcmMuaW5mby8/bD1saW51eC1uZnMmbT0xNTQ1MDI3ODA0MjMwNTgmdz0yXQogCiBTaWduZWQtb2ZmLWJ5OiBNaW5nbGkgWXUgPE1pbmdsaS5ZdUB3aW5kcml2ZXIuY29tPgorCitSZWJhc2UgaXQuCisKK1NpZ25lZC1vZmYtYnk6IFJvYmVydCBZYW5nIDxsaWV6aGkueWFuZ0B3aW5kcml2ZXIuY29tPgogLS0tCiAgc3VwcG9ydC9taXNjL01ha2VmaWxlLmFtIHwgICAyICstCi0gc3VwcG9ydC9taXNjL2ZpbGUuYyAgICAgIHwgMTExIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gc3VwcG9ydC9taXNjL21pc2MuYyAgICAgIHwgMTExICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCisgc3VwcG9ydC9taXNjL2ZpbGUuYyAgICAgIHwgMTExIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIHN1cHBvcnQvbWlzYy9taXNjLmMgICAgICB8IDExMSArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKICBzdXBwb3J0L25zbS9NYWtlZmlsZS5hbSAgfCAgIDIgKy0KICA0IGZpbGVzIGNoYW5nZWQsIDExMyBpbnNlcnRpb25zKCspLCAxMTMgZGVsZXRpb25zKC0pCi0gZGVsZXRlIG1vZGUgMTAwNjQ0IHN1cHBvcnQvbWlzYy9maWxlLmMKLSBjcmVhdGUgbW9kZSAxMDA2NDQgc3VwcG9ydC9taXNjL21pc2MuYwogCiBkaWZmIC0tZ2l0IGEvc3VwcG9ydC9taXNjL01ha2VmaWxlLmFtIGIvc3VwcG9ydC9taXNjL01ha2VmaWxlLmFtCi1pbmRleCA4OTM2YjBkLi5kNGMxZjc2IDEwMDY0NAoraW5kZXggZjk5OTNlMy4uOGIwZTlkYiAxMDA2NDQKIC0tLSBhL3N1cHBvcnQvbWlzYy9NYWtlZmlsZS5hbQogKysrIGIvc3VwcG9ydC9taXNjL01ha2VmaWxlLmFtCi1AQCAtMSw2ICsxLDYgQEAKK0BAIC0xLDcgKzEsNyBAQAogICMjIFByb2Nlc3MgdGhpcyBmaWxlIHdpdGggYXV0b21ha2UgdG8gcHJvZHVjZSBNYWtlZmlsZS5pbgogIAogIG5vaW5zdF9MSUJSQVJJRVMgPSBsaWJtaXNjLmEKLS1saWJtaXNjX2FfU09VUkNFUyA9IHRjcHdyYXBwZXIuYyBmcm9tX2xvY2FsLmMgbW91bnRwb2ludC5jIGZpbGUuYwotK2xpYm1pc2NfYV9TT1VSQ0VTID0gdGNwd3JhcHBlci5jIGZyb21fbG9jYWwuYyBtb3VudHBvaW50LmMgbWlzYy5jCistbGlibWlzY19hX1NPVVJDRVMgPSB0Y3B3cmFwcGVyLmMgZnJvbV9sb2NhbC5jIG1vdW50cG9pbnQuYyBmaWxlLmMgXAorK2xpYm1pc2NfYV9TT1VSQ0VTID0gdGNwd3JhcHBlci5jIGZyb21fbG9jYWwuYyBtb3VudHBvaW50LmMgbWlzYy5jIFwKKyAJCSAgICBuZnNkX3BhdGguYyB3b3JrcXVldWUuYyB4c3RhdC5jCiAgCiAgTUFJTlRBSU5FUkNMRUFORklMRVMgPSBNYWtlZmlsZS5pbgogZGlmZiAtLWdpdCBhL3N1cHBvcnQvbWlzYy9maWxlLmMgYi9zdXBwb3J0L21pc2MvZmlsZS5jCkBAIC0yOTAsNiArMjkzLDMgQEAKICAKICBCVUlMVF9TT1VSQ0VTID0gJChHRU5GSUxFUykKICAKLS0tIAotMi43LjQKLQpkaWZmIC0tZ2l0IGEvcG9reS9tZXRhL3JlY2lwZXMtY29ubmVjdGl2aXR5L25mcy11dGlscy9uZnMtdXRpbHMvMDAwMS1NYWtlZmlsZS5hbS11cGRhdGUtdGhlLXBhdGgtb2YtbGlibmZzLmEucGF0Y2ggYi9wb2t5L21ldGEvcmVjaXBlcy1jb25uZWN0aXZpdHkvbmZzLXV0aWxzL25mcy11dGlscy8wMDAxLU1ha2VmaWxlLmFtLXVwZGF0ZS10aGUtcGF0aC1vZi1saWJuZnMuYS5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOTA2YWMwZi4uMDAwMDAwMAotLS0gYS9wb2t5L21ldGEvcmVjaXBlcy1jb25uZWN0aXZpdHkvbmZzLXV0aWxzL25mcy11dGlscy8wMDAxLU1ha2VmaWxlLmFtLXVwZGF0ZS10aGUtcGF0aC1vZi1saWJuZnMuYS5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDUwICswLDAgQEAKLUZyb20gZmNlY2U2NWQxYjcxM2VhZWVmNDE3MDY4OTg0NDAzMDJmOGNlOTJkOSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IE1pbmdsaSBZdSA8TWluZ2xpLll1QHdpbmRyaXZlci5jb20+Ci1EYXRlOiBUaHUsIDEyIEp1bCAyMDE4IDE1OjE5OjQxICswODAwCi1TdWJqZWN0OiBbUEFUQ0hdIE1ha2VmaWxlLmFtOiB1cGRhdGUgdGhlIHBhdGggb2YgbGlibmZzLmEKLQotVGhlIGxpYm5mcy5hIGlzIHVuZGVyIC4uL3N1cHBvcnQvbmZzLy5saWJzLyBub3csCi11cGRhdGUgdGhlIHJlZmVyZW5jZSBwYXRoIGFjY29yZGluZ2x5IHRvIGZpeCBiZWxvdwotYnVpbGQgZXJyb3Igd2hlbiBydW4gIm1ha2UgLUMgdGVzdHMgc3RhdGRiX2R1bXAiOgotfCBtYWtlOiAqKiogTm8gcnVsZSB0byBtYWtlIHRhcmdldCAnLi4vc3VwcG9ydC9uZnMvbGlibmZzLmEnLCBuZWVkZWQgYnkgJ3N0YXRkYl9kdW1wJy4gIFN0b3AuCi0KLUFuZCBiZWxvdyBlcnJvciB3aGVuIHJ1biAibWFrZSAtQyB0ZXN0cy9uc21fY2xpZW50IG5zbV9jbGllbnQiCi18IG1ha2U6ICoqKiBObyBydWxlIHRvIG1ha2UgdGFyZ2V0ICcuLi8uLi9zdXBwb3J0L25mcy9saWJuZnMuYScsIG5lZWRlZCBieSAnbnNtX2NsaWVudCcuICBTdG9wLgotCi1VcHN0cmVhbS1TdGF0dXM6IFN1Ym1pdHRlZFtodHRwczovL21hcmMuaW5mby8/bD1saW51eC1uZnMmbT0xNTQ1MDI2MzY1MjI3NDUmdz0yXQotCi1TaWduZWQtb2ZmLWJ5OiBNaW5nbGkgWXUgPE1pbmdsaS5ZdUB3aW5kcml2ZXIuY29tPgotLS0tCi0gdGVzdHMvTWFrZWZpbGUuYW0gICAgICAgICAgICB8IDIgKy0KLSB0ZXN0cy9uc21fY2xpZW50L01ha2VmaWxlLmFtIHwgMiArLQotIDIgZmlsZXMgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQotCi1kaWZmIC0tZ2l0IGEvdGVzdHMvTWFrZWZpbGUuYW0gYi90ZXN0cy9NYWtlZmlsZS5hbQotaW5kZXggMWY5NjI2NC4uNzRhYTYyOSAxMDA2NDQKLS0tLSBhL3Rlc3RzL01ha2VmaWxlLmFtCi0rKysgYi90ZXN0cy9NYWtlZmlsZS5hbQotQEAgLTMsNyArMyw3IEBACi0gY2hlY2tfUFJPR1JBTVMgPSBzdGF0ZGJfZHVtcAotIHN0YXRkYl9kdW1wX1NPVVJDRVMgPSBzdGF0ZGJfZHVtcC5jCi0gCi0tc3RhdGRiX2R1bXBfTERBREQgPSAuLi9zdXBwb3J0L25mcy9saWJuZnMuYSBcCi0rc3RhdGRiX2R1bXBfTERBREQgPSAuLi9zdXBwb3J0L25mcy8ubGlicy9saWJuZnMuYSBcCi0gCQkgICAgLi4vc3VwcG9ydC9uc20vbGlibnNtLmEgJChMSUJDQVApCi0gCi0gU1VCRElSUyA9IG5zbV9jbGllbnQKLWRpZmYgLS1naXQgYS90ZXN0cy9uc21fY2xpZW50L01ha2VmaWxlLmFtIGIvdGVzdHMvbnNtX2NsaWVudC9NYWtlZmlsZS5hbQotaW5kZXggYThmYzEzMS4uNDNkYjljMiAxMDA2NDQKLS0tLSBhL3Rlc3RzL25zbV9jbGllbnQvTWFrZWZpbGUuYW0KLSsrKyBiL3Rlc3RzL25zbV9jbGllbnQvTWFrZWZpbGUuYW0KLUBAIC0xMyw3ICsxMyw3IEBAIGNoZWNrX1BST0dSQU1TCT0gbnNtX2NsaWVudAotIG5zbV9jbGllbnRfU09VUkNFUyA9ICQoR0VORklMRVMpIG5zbV9jbGllbnQuYwotIAotIEJVSUxUX1NPVVJDRVMgPSAkKEdFTkZJTEVTKQotLW5zbV9jbGllbnRfTERBREQgPSAuLi8uLi9zdXBwb3J0L25mcy9saWJuZnMuYSBcCi0rbnNtX2NsaWVudF9MREFERCA9IC4uLy4uL3N1cHBvcnQvbmZzLy5saWJzL2xpYm5mcy5hIFwKLSAJCSAgIC4uLy4uL3N1cHBvcnQvbnNtL2xpYm5zbS5hICQoTElCQ0FQKSAkKExJQlRJUlBDKQotIAotIGlmIENPTkZJR19SUENHRU4KLS0tIAotMi43LjQKLQpkaWZmIC0tZ2l0IGEvcG9reS9tZXRhL3JlY2lwZXMtY29ubmVjdGl2aXR5L25mcy11dGlscy9uZnMtdXRpbHMvMDAwMS1jb25maWd1cmUuYWMtRG8tbm90LWZhdGFsaXplLVdtaXNzaW5nLXByb3RvdHlwZXMucGF0Y2ggYi9wb2t5L21ldGEvcmVjaXBlcy1jb25uZWN0aXZpdHkvbmZzLXV0aWxzL25mcy11dGlscy8wMDAxLWNvbmZpZ3VyZS5hYy1Eby1ub3QtZmF0YWxpemUtV21pc3NpbmctcHJvdG90eXBlcy5wYXRjaAppbmRleCAxN2FhYmI5Li5kMTRmMDc4IDEwMDY0NAotLS0gYS9wb2t5L21ldGEvcmVjaXBlcy1jb25uZWN0aXZpdHkvbmZzLXV0aWxzL25mcy11dGlscy8wMDAxLWNvbmZpZ3VyZS5hYy1Eby1ub3QtZmF0YWxpemUtV21pc3NpbmctcHJvdG90eXBlcy5wYXRjaAorKysgYi9wb2t5L21ldGEvcmVjaXBlcy1jb25uZWN0aXZpdHkvbmZzLXV0aWxzL25mcy11dGlscy8wMDAxLWNvbmZpZ3VyZS5hYy1Eby1ub3QtZmF0YWxpemUtV21pc3NpbmctcHJvdG90eXBlcy5wYXRjaApAQCAtMjYsMTggKzI2LDE1IEBACiAgMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAxIGRlbGV0aW9uKC0pCiAKIGRpZmYgLS1naXQgYS9jb25maWd1cmUuYWMgYi9jb25maWd1cmUuYWMKLWluZGV4IGU4MmZmMTQuLmQwY2M1ZDUgMTAwNjQ0CitpbmRleCA1MDAwMmI0Li5hZWJmZjAxIDEwMDY0NAogLS0tIGEvY29uZmlndXJlLmFjCiArKysgYi9jb25maWd1cmUuYWMKLUBAIC01NDgsNyArNTQ4LDcgQEAgbXlfYW1fY2ZsYWdzPSJcCitAQCAtNTgyLDcgKzU4Miw3IEBAIG15X2FtX2NmbGFncz0iXAogICAtV2FsbCBcCiAgIC1XZXh0cmEgXAotICAtV2Vycm9yPXN0cmljdC1wcm90b3R5cGVzIFwKKyAgJHJwY2dlbl9jZmxhZ3MgXAogLSAtV2Vycm9yPW1pc3NpbmctcHJvdG90eXBlcyBcCiArIC1XbWlzc2luZy1wcm90b3R5cGVzIFwKICAgLVdlcnJvcj1taXNzaW5nLWRlY2xhcmF0aW9ucyBcCiAgIC1XZXJyb3I9Zm9ybWF0PTIgXAogICAtV2Vycm9yPXVuZGVmIFwKLS0tIAotMi43LjQKLQpkaWZmIC0tZ2l0IGEvcG9reS9tZXRhL3JlY2lwZXMtY29ubmVjdGl2aXR5L25mcy11dGlscy9uZnMtdXRpbHMvYnVnZml4LWFkanVzdC1zdGF0ZC1zZXJ2aWNlLW5hbWUucGF0Y2ggYi9wb2t5L21ldGEvcmVjaXBlcy1jb25uZWN0aXZpdHkvbmZzLXV0aWxzL25mcy11dGlscy9idWdmaXgtYWRqdXN0LXN0YXRkLXNlcnZpY2UtbmFtZS5wYXRjaAppbmRleCA4MjI5MzlmLi5mMTNkN2IzIDEwMDY0NAotLS0gYS9wb2t5L21ldGEvcmVjaXBlcy1jb25uZWN0aXZpdHkvbmZzLXV0aWxzL25mcy11dGlscy9idWdmaXgtYWRqdXN0LXN0YXRkLXNlcnZpY2UtbmFtZS5wYXRjaAorKysgYi9wb2t5L21ldGEvcmVjaXBlcy1jb25uZWN0aXZpdHkvbmZzLXV0aWxzL25mcy11dGlscy9idWdmaXgtYWRqdXN0LXN0YXRkLXNlcnZpY2UtbmFtZS5wYXRjaApAQCAtMTIsMjAgKzEyLDI4IEBACiBVcHN0cmVhbS1TdGF0dXM6IEluYXBwcm9wcmlhdGUgW290aGVyXQogCiBTaWduZWQtb2ZmLWJ5OiBVbHJpY2ggw5ZsbWFubiA8dS5vZWxtYW5uQHBlbmd1dHJvbml4LmRlPgotLS0tCi0gdXRpbHMvc3RhdGQvc3RhcnQtc3RhdGQgfCAyICstCi0gMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAxIGRlbGV0aW9uKC0pCiAKLUluZGV4OiBuZnMtdXRpbHMtMi4xLjEvdXRpbHMvc3RhdGQvc3RhcnQtc3RhdGQKLT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBuZnMtdXRpbHMtMi4xLjEub3JpZy91dGlscy9zdGF0ZC9zdGFydC1zdGF0ZAotKysrIG5mcy11dGlscy0yLjEuMS91dGlscy9zdGF0ZC9zdGFydC1zdGF0ZAotQEAgLTI4LDcgKzI4LDcgQEAgZmkKK1JlYmFzZSBpdC4KKworU2lnbmVkLW9mZi1ieTogUm9iZXJ0IFlhbmcgPGxpZXpoaS55YW5nQHdpbmRyaXZlci5jb20+CistLS0KKyB1dGlscy9zdGF0ZC9zdGFydC1zdGF0ZCB8IDQgKystLQorIDEgZmlsZSBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCisKK2RpZmYgLS1naXQgYS91dGlscy9zdGF0ZC9zdGFydC1zdGF0ZCBiL3V0aWxzL3N0YXRkL3N0YXJ0LXN0YXRkCitpbmRleCBhZjVjOTUwLi5kZjliOWJlIDEwMDc1NQorLS0tIGEvdXRpbHMvc3RhdGQvc3RhcnQtc3RhdGQKKysrKyBiL3V0aWxzL3N0YXRkL3N0YXJ0LXN0YXRkCitAQCAtMjgsMTAgKzI4LDEwIEBAIGZpCiAgIyBGaXJzdCB0cnkgc3lzdGVtZCBpZiBpdCdzIGluc3RhbGxlZC4KICBpZiBbIC1kIC9ydW4vc3lzdGVtZC9zeXN0ZW0gXTsgdGhlbgogICAgICAjIFF1aXQgb25seSBpZiB0aGUgY2FsbCB3b3JrZWQuCi0tICAgIHN5c3RlbWN0bCBzdGFydCBycGMtc3RhdGQuc2VydmljZSAmJiBleGl0Ci0rICAgIHN5c3RlbWN0bCBzdGFydCBuZnMtc3RhdGQuc2VydmljZSAmJiBleGl0CistICAgIGlmIHN5c3RlbWN0bCBzdGFydCBycGMtc3RhdGQuc2VydmljZTsgdGhlbgorKyAgICBpZiBzeXN0ZW1jdGwgc3RhcnQgbmZzLXN0YXRkLnNlcnZpY2U7IHRoZW4KKyAgICAgICAgICMgRW5zdXJlIHN5c3RlbWQga25vd3Mgbm90IHRvIHN0b3AgcnBjLnN0YXRkIG9yIGl0cyBkZXBlbmRlbmNpZXMKKyAgICAgICAgICMgb24gJ3N5c3RlbWN0bCBpc29sYXRlIC4uJworLSAgICAgICAgc3lzdGVtY3RsIGFkZC13YW50cyAtLXJ1bnRpbWUgcmVtb3RlLWZzLnRhcmdldCBycGMtc3RhdGQuc2VydmljZQorKyAgICAgICAgc3lzdGVtY3RsIGFkZC13YW50cyAtLXJ1bnRpbWUgcmVtb3RlLWZzLnRhcmdldCBuZnMtc3RhdGQuc2VydmljZQorICAgICAgICAgZXhpdCAwCisgICAgIGZpCiAgZmkKLSAKLSBjZCAvCmRpZmYgLS1naXQgYS9wb2t5L21ldGEvcmVjaXBlcy1jb25uZWN0aXZpdHkvbmZzLXV0aWxzL25mcy11dGlscy9uZnMtdXRpbHMtbXVzbC1saW1pdHMucGF0Y2ggYi9wb2t5L21ldGEvcmVjaXBlcy1jb25uZWN0aXZpdHkvbmZzLXV0aWxzL25mcy11dGlscy9uZnMtdXRpbHMtbXVzbC1saW1pdHMucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDI1Y2E0MTUuLjAwMDAwMDAKLS0tIGEvcG9reS9tZXRhL3JlY2lwZXMtY29ubmVjdGl2aXR5L25mcy11dGlscy9uZnMtdXRpbHMvbmZzLXV0aWxzLW11c2wtbGltaXRzLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMTMzICswLDAgQEAKLUZpeGVkOgotfCBmaWxlLmM6IEluIGZ1bmN0aW9uICdnZW5lcmljX21ha2VfcGF0aG5hbWUnOgotfCBmaWxlLmM6NDg6MTM6IGVycm9yOiAnUEFUSF9NQVgnIHVuZGVjbGFyZWQgKGZpcnN0IHVzZSBpbiB0aGlzIGZ1bmN0aW9uKTsgZGlkIHlvdSBtZWFuICdSQU5EX01BWCc/Ci18ICAgaWYgKHNpemUgPiBQQVRIX01BWCkKLXwgICAgICAgICAgICAgIF5+fn5+fn5+Ci1bc25pcF0KLQotVXBzdHJlYW0tU3RhdHVzOiBQZW5kaW5nIFtodHRwczovL2dpdC5hbHBpbmVsaW51eC5vcmcvY2dpdC9hcG9ydHMvdHJlZS9tYWluL25mcy11dGlscy9saW1pdHMucGF0Y2g/aWQ9ZjY3MzRhNzdkM2NhZWU3MzMyNWY4Y2MxZjc3ZDFiNTExN2E3NTA5Nl0KLQotU2lnbmVkLW9mZi1ieTogUm9iZXJ0IFlhbmcgPGxpZXpoaS55YW5nQHdpbmRyaXZlci5jb20+Ci0tLS0KLSBzdXBwb3J0L2V4cG9ydC9leHBvcnQuYyAgICAgICAgICB8IDEgKwotIHN1cHBvcnQvZXhwb3J0L3h0YWIuYyAgICAgICAgICAgIHwgMSArCi0gc3VwcG9ydC9taXNjL2ZpbGUuYyAgICAgICAgICAgICAgfCAxICsKLSBzdXBwb3J0L25mcy94Y29tbW9uLmMgICAgICAgICAgICB8IDEgKwotIHN1cHBvcnQvbnNtL2ZpbGUuYyAgICAgICAgICAgICAgIHwgMSArCi0gdXRpbHMvYmxrbWFwZC9kZXZpY2UtZGlzY292ZXJ5LmMgfCAxICsKLSB1dGlscy9nc3NkL2tyYjVfdXRpbC5jICAgICAgICAgICB8IDEgKwotIHV0aWxzL21vdW50ZC9jYWNoZS5jICAgICAgICAgICAgIHwgMSArCi0gdXRpbHMvbW91bnRkL21vdW50ZC5jICAgICAgICAgICAgfCAxICsKLSB1dGlscy9tb3VudGQvcm10YWIuYyAgICAgICAgICAgICB8IDEgKwotIDEwIGZpbGVzIGNoYW5nZWQsIDEwIGluc2VydGlvbnMoKykKLQotZGlmZiAtLWdpdCBhL3N1cHBvcnQvZXhwb3J0L2V4cG9ydC5jIGIvc3VwcG9ydC9leHBvcnQvZXhwb3J0LmMKLS0tLSBhL3N1cHBvcnQvZXhwb3J0L2V4cG9ydC5jCi0rKysgYi9zdXBwb3J0L2V4cG9ydC9leHBvcnQuYwotQEAgLTE3LDYgKzE3LDcgQEAKLSAjaW5jbHVkZSA8c3RkbGliLmg+Ci0gI2luY2x1ZGUgPGRpcmVudC5oPgotICNpbmNsdWRlIDxlcnJuby5oPgotKyNpbmNsdWRlIDxsaW1pdHMuaD4KLSAjaW5jbHVkZSAieG1hbGxvYy5oIgotICNpbmNsdWRlICJuZnNsaWIuaCIKLSAjaW5jbHVkZSAiZXhwb3J0ZnMuaCIKLWRpZmYgLS1naXQgYS9zdXBwb3J0L2V4cG9ydC94dGFiLmMgYi9zdXBwb3J0L2V4cG9ydC94dGFiLmMKLS0tLSBhL3N1cHBvcnQvZXhwb3J0L3h0YWIuYwotKysrIGIvc3VwcG9ydC9leHBvcnQveHRhYi5jCi1AQCAtMTgsNiArMTgsNyBAQAotICNpbmNsdWRlIDxzeXMvc3RhdC5oPgotICNpbmNsdWRlIDxlcnJuby5oPgotICNpbmNsdWRlIDxsaWJnZW4uaD4KLSsjaW5jbHVkZSA8bGltaXRzLmg+Ci0gCi0gI2luY2x1ZGUgIm5mc2xpYi5oIgotICNpbmNsdWRlICJleHBvcnRmcy5oIgotZGlmZiAtLWdpdCBhL3N1cHBvcnQvbWlzYy9maWxlLmMgYi9zdXBwb3J0L21pc2MvZmlsZS5jCi0tLS0gYS9zdXBwb3J0L21pc2MvZmlsZS5jCi0rKysgYi9zdXBwb3J0L21pc2MvZmlsZS5jCi1AQCAtMjcsNiArMjcsNyBAQAotICNpbmNsdWRlIDxkaXJlbnQuaD4KLSAjaW5jbHVkZSA8c3RkbGliLmg+Ci0gI2luY2x1ZGUgPHN0ZGJvb2wuaD4KLSsjaW5jbHVkZSA8bGltaXRzLmg+Ci0gCi0gI2luY2x1ZGUgInhsb2cuaCIKLSAjaW5jbHVkZSAibWlzYy5oIgotZGlmZiAtLWdpdCBhL3N1cHBvcnQvbmZzL3hjb21tb24uYyBiL3N1cHBvcnQvbmZzL3hjb21tb24uYwotLS0tIGEvc3VwcG9ydC9uZnMveGNvbW1vbi5jCi0rKysgYi9zdXBwb3J0L25mcy94Y29tbW9uLmMKLUBAIC0xNiw2ICsxNiw3IEBACi0gI2luY2x1ZGUgPHN0ZGlvLmg+Ci0gI2luY2x1ZGUgPHN0ZGxpYi5oPgotICNpbmNsdWRlIDxzdHJpbmcuaD4KLSsjaW5jbHVkZSA8bGltaXRzLmg+Ci0gCi0gI2luY2x1ZGUgInhjb21tb24uaCIKLSAjaW5jbHVkZSAibmxzLmgiCS8qIF8oKSAqLwotZGlmZiAtLWdpdCBhL3N1cHBvcnQvbnNtL2ZpbGUuYyBiL3N1cHBvcnQvbnNtL2ZpbGUuYwotLS0tIGEvc3VwcG9ydC9uc20vZmlsZS5jCi0rKysgYi9zdXBwb3J0L25zbS9maWxlLmMKLUBAIC04NSw2ICs4NSw3IEBACi0gI2luY2x1ZGUgPGZjbnRsLmg+Ci0gI2luY2x1ZGUgPGRpcmVudC5oPgotICNpbmNsdWRlIDxncnAuaD4KLSsjaW5jbHVkZSA8bGltaXRzLmg+Ci0gCi0gI2luY2x1ZGUgInhsb2cuaCIKLSAjaW5jbHVkZSAibnNtLmgiCi1kaWZmIC0tZ2l0IGEvdXRpbHMvYmxrbWFwZC9kZXZpY2UtZGlzY292ZXJ5LmMgYi91dGlscy9ibGttYXBkL2RldmljZS1kaXNjb3ZlcnkuYwotLS0tIGEvdXRpbHMvYmxrbWFwZC9kZXZpY2UtZGlzY292ZXJ5LmMKLSsrKyBiL3V0aWxzL2Jsa21hcGQvZGV2aWNlLWRpc2NvdmVyeS5jCi1AQCAtNDksNiArNDksNyBAQAotICNpbmNsdWRlIDx1bmlzdGQuaD4KLSAjaW5jbHVkZSA8bGliZ2VuLmg+Ci0gI2luY2x1ZGUgPGVycm5vLmg+Ci0rI2luY2x1ZGUgPGxpbWl0cy5oPgotICNpbmNsdWRlIDxsaWJkZXZtYXBwZXIuaD4KLSAKLSAjaWZkZWYgSEFWRV9DT05GSUdfSAotZGlmZiAtLWdpdCBhL3V0aWxzL2dzc2Qva3JiNV91dGlsLmMgYi91dGlscy9nc3NkL2tyYjVfdXRpbC5jCi0tLS0gYS91dGlscy9nc3NkL2tyYjVfdXRpbC5jCi0rKysgYi91dGlscy9nc3NkL2tyYjVfdXRpbC5jCi1AQCAtMTIwLDYgKzEyMCw3IEBACi0gI2VuZGlmCi0gI2luY2x1ZGUgPGtyYjUuaD4KLSAjaW5jbHVkZSA8cnBjL2F1dGhfZ3NzLmg+Ci0rI2luY2x1ZGUgPGxpbWl0cy5oPgotIAotICNpbmNsdWRlICJnc3NkLmgiCi0gI2luY2x1ZGUgImVycl91dGlsLmgiCi1kaWZmIC0tZ2l0IGEvdXRpbHMvbW91bnRkL2NhY2hlLmMgYi91dGlscy9tb3VudGQvY2FjaGUuYwotLS0tIGEvdXRpbHMvbW91bnRkL2NhY2hlLmMKLSsrKyBiL3V0aWxzL21vdW50ZC9jYWNoZS5jCi1AQCAtMjYsNiArMjYsNyBAQAotICNpbmNsdWRlIDxwd2QuaD4KLSAjaW5jbHVkZSA8Z3JwLmg+Ci0gI2luY2x1ZGUgPG1udGVudC5oPgotKyNpbmNsdWRlIDxsaW1pdHMuaD4KLSAjaW5jbHVkZSAibWlzYy5oIgotICNpbmNsdWRlICJuZnNsaWIuaCIKLSAjaW5jbHVkZSAiZXhwb3J0ZnMuaCIKLWRpZmYgLS1naXQgYS91dGlscy9tb3VudGQvbW91bnRkLmMgYi91dGlscy9tb3VudGQvbW91bnRkLmMKLS0tLSBhL3V0aWxzL21vdW50ZC9tb3VudGQuYwotKysrIGIvdXRpbHMvbW91bnRkL21vdW50ZC5jCi1AQCAtMjIsNiArMjIsNyBAQAotICNpbmNsdWRlIDxmY250bC5oPgotICNpbmNsdWRlIDxzeXMvcmVzb3VyY2UuaD4KLSAjaW5jbHVkZSA8c3lzL3dhaXQuaD4KLSsjaW5jbHVkZSA8bGltaXRzLmg+Ci0gCi0gI2luY2x1ZGUgImNvbmZmaWxlLmgiCi0gI2luY2x1ZGUgInhtYWxsb2MuaCIKLWRpZmYgLS1naXQgYS91dGlscy9tb3VudGQvcm10YWIuYyBiL3V0aWxzL21vdW50ZC9ybXRhYi5jCi0tLS0gYS91dGlscy9tb3VudGQvcm10YWIuYwotKysrIGIvdXRpbHMvbW91bnRkL3JtdGFiLmMKLUBAIC0xNiw2ICsxNiw3IEBACi0gI2luY2x1ZGUgPG5ldGluZXQvaW4uaD4KLSAjaW5jbHVkZSA8YXJwYS9pbmV0Lmg+Ci0gI2luY2x1ZGUgPG5ldGRiLmg+Ci0rI2luY2x1ZGUgPGxpbWl0cy5oPgotIAotICNpbmNsdWRlICJtaXNjLmgiCi0gI2luY2x1ZGUgImV4cG9ydGZzLmgiCmRpZmYgLS1naXQgYS9wb2t5L21ldGEvcmVjaXBlcy1jb25uZWN0aXZpdHkvbmZzLXV0aWxzL25mcy11dGlscy9uZnMtdXRpbHMtbXVzbC1yZXNfcXVlcnlkb21haW4ucGF0Y2ggYi9wb2t5L21ldGEvcmVjaXBlcy1jb25uZWN0aXZpdHkvbmZzLXV0aWxzL25mcy11dGlscy9uZnMtdXRpbHMtbXVzbC1yZXNfcXVlcnlkb21haW4ucGF0Y2gKaW5kZXggMjIwMDJmYS4uOTIxZjVlZCAxMDA2NDQKLS0tIGEvcG9reS9tZXRhL3JlY2lwZXMtY29ubmVjdGl2aXR5L25mcy11dGlscy9uZnMtdXRpbHMvbmZzLXV0aWxzLW11c2wtcmVzX3F1ZXJ5ZG9tYWluLnBhdGNoCisrKyBiL3Bva3kvbWV0YS9yZWNpcGVzLWNvbm5lY3Rpdml0eS9uZnMtdXRpbHMvbmZzLXV0aWxzL25mcy11dGlscy1tdXNsLXJlc19xdWVyeWRvbWFpbi5wYXRjaApAQCAtMTEsMzAgKzExLDE5IEBACiBTaWduZWQtb2ZmLWJ5OiBSb2JlcnQgWWFuZyA8bGllemhpLnlhbmdAd2luZHJpdmVyLmNvbT4KIAogLS0tCi0gY29uZmlndXJlLmFjIHwgMTMgKysrKysrLS0tLS0tLQotIDEgZmlsZSBjaGFuZ2VkLCA2IGluc2VydGlvbnMoKyksIDcgZGVsZXRpb25zKC0pCisgY29uZmlndXJlLmFjIHwgOSArKysrLS0tLS0KKyAxIGZpbGUgY2hhbmdlZCwgNCBpbnNlcnRpb25zKCspLCA1IGRlbGV0aW9ucygtKQogCiBkaWZmIC0tZ2l0IGEvY29uZmlndXJlLmFjIGIvY29uZmlndXJlLmFjCi1pbmRleCAyNzZkZWMzLi43NjAyMzhiIDEwMDY0NAoraW5kZXggNTAwMDJiNC4uZGNhZGIyMyAxMDA2NDQKIC0tLSBhL2NvbmZpZ3VyZS5hYwogKysrIGIvY29uZmlndXJlLmFjCi1AQCAtNDA4LDcgKzQwOCw3IEBAIGlmIHRlc3QgIiRlbmFibGVfZ3NzIiA9IHllczsgdGhlbgotIGZpCi0gCi0gZG5sIGxpYmRuc2lkbWFwIHNwZWNpZmljIGNoZWNrcwotLUFDX0NIRUNLX0xJQihbcmVzb2x2XSwgW19fcmVzX3F1ZXJ5ZG9tYWluXSwgLCBBQ19NU0dfRVJST1IocmVzX3F1ZXJ5ZG9tYWluIG5lZWRlZCkpCi0rQUNfQ0hFQ0tfTElCKFtyZXNvbHZdLCBbcmVzX3F1ZXJ5ZG9tYWluXSwgLCBBQ19NU0dfRVJST1IocmVzX3F1ZXJ5ZG9tYWluIG5lZWRlZCkpCi0gCi0gQUNfQVJHX0VOQUJMRShbbGRhcF0sCi0gCVtBU19IRUxQX1NUUklORyhbLS1kaXNhYmxlLWxkYXBdLFtEaXNhYmxlIHN1cHBvcnQgZm9yIExEQVAgQDw6ZGVmYXVsdD1kZXRlY3RAOj5AXSldKQotQEAgLTU0NywxMSArNTQ3LDExIEBAIG15X2FtX2NmbGFncz0iXAotICAtcGlwZSBcCitAQCAtNTgyLDEwICs1ODIsMTAgQEAgbXlfYW1fY2ZsYWdzPSJcCiAgIC1XYWxsIFwKICAgLVdleHRyYSBcCi0tIC1XZXJyb3I9c3RyaWN0LXByb3RvdHlwZXMgXAorICAkcnBjZ2VuX2NmbGFncyBcCiAtIC1XZXJyb3I9bWlzc2luZy1wcm90b3R5cGVzIFwKIC0gLVdlcnJvcj1taXNzaW5nLWRlY2xhcmF0aW9ucyBcCi0rIC1Xc3RyaWN0LXByb3RvdHlwZXMgXAogKyAtV21pc3NpbmctcHJvdG90eXBlcyBcCiArIC1XbWlzc2luZy1kZWNsYXJhdGlvbnMgXAogICAtV2Vycm9yPWZvcm1hdD0yIFwKQEAgLTQzLDcgKzMyLDcgQEAKICAgLVdlcnJvcj1taXNzaW5nLWluY2x1ZGUtZGlycyBcCiAgIC1XZXJyb3I9c3RyaWN0LWFsaWFzaW5nPTIgXAogICAtV2Vycm9yPWluaXQtc2VsZiBcCi1AQCAtNTc5LDEwICs1NzksOSBAQCBBQ19ERUZVTihbQ0hFQ0tfQ0NTVVBQT1JUXSwgWworQEAgLTYxNCwxMCArNjE0LDkgQEAgQUNfREVGVU4oW0NIRUNLX0NDU1VQUE9SVF0sIFsKICAKICBDSEVDS19DQ1NVUFBPUlQoWy1XZXJyb3I9Zm9ybWF0LW92ZXJmbG93PTJdLCBbZmxnMV0pCiAgQ0hFQ0tfQ0NTVVBQT1JUKFstV2Vycm9yPWludC1jb252ZXJzaW9uXSwgW2ZsZzJdKQpkaWZmIC0tZ2l0IGEvcG9reS9tZXRhL3JlY2lwZXMtY29ubmVjdGl2aXR5L25mcy11dGlscy9uZnMtdXRpbHNfMi4zLjMuYmIgYi9wb2t5L21ldGEvcmVjaXBlcy1jb25uZWN0aXZpdHkvbmZzLXV0aWxzL25mcy11dGlsc18yLjQuMS5iYgpzaW1pbGFyaXR5IGluZGV4IDkyJQpyZW5hbWUgZnJvbSBwb2t5L21ldGEvcmVjaXBlcy1jb25uZWN0aXZpdHkvbmZzLXV0aWxzL25mcy11dGlsc18yLjMuMy5iYgpyZW5hbWUgdG8gcG9reS9tZXRhL3JlY2lwZXMtY29ubmVjdGl2aXR5L25mcy11dGlscy9uZnMtdXRpbHNfMi40LjEuYmIKaW5kZXggMjhmOTg5OC4uOGI2NzNjOCAxMDA2NDQKLS0tIGEvcG9reS9tZXRhL3JlY2lwZXMtY29ubmVjdGl2aXR5L25mcy11dGlscy9uZnMtdXRpbHNfMi4zLjMuYmIKKysrIGIvcG9reS9tZXRhL3JlY2lwZXMtY29ubmVjdGl2aXR5L25mcy11dGlscy9uZnMtdXRpbHNfMi40LjEuYmIKQEAgLTI4LDE5ICsyOCwxNiBAQAogICAgICAgICAgICBmaWxlOi8vcHJvYy1mcy1uZnNkLm1vdW50IFwKICAgICAgICAgICAgZmlsZTovL25mcy11dGlscy1kZWJpYW5pemUtc3RhcnQtc3RhdGQucGF0Y2ggXAogICAgICAgICAgICBmaWxlOi8vYnVnZml4LWFkanVzdC1zdGF0ZC1zZXJ2aWNlLW5hbWUucGF0Y2ggXAotICAgICAgICAgICBmaWxlOi8vbmZzLXV0aWxzLW11c2wtbGltaXRzLnBhdGNoIFwKICAgICAgICAgICAgZmlsZTovLzAwMDEtY2FjaGVpby11c2UtaW50bWF4X3QtZm9yLWZvcm1hdHRlZC1JTy5wYXRjaCBcCi0gICAgICAgICAgIGZpbGU6Ly8wMDAxLURvLW5vdC1wYXNzLW51bGwtcG9pbnRlci10by1mcmVlYWRkcmluZm8ucGF0Y2ggXAogICAgICAgICAgICBmaWxlOi8vY2xhbmctZm9ybWF0LXN0cmluZy5wYXRjaCBcCi0gICAgICAgICAgIGZpbGU6Ly8wMDAxLU1ha2VmaWxlLmFtLXVwZGF0ZS10aGUtcGF0aC1vZi1saWJuZnMuYS5wYXRjaCBcCiAgICAgICAgICAgIGZpbGU6Ly8wMDAxLU1ha2VmaWxlLmFtLWZpeC11bmRlZmluZWQtZnVuY3Rpb24tZm9yLWxpYm5zbS5hLnBhdGNoIFwKICAgICAgICAgICAgZmlsZTovLzAwMDEtRG9uLXQtYnVpbGQtdG9vbHMtd2l0aC1DQ19GT1JfQlVJTEQucGF0Y2ggXAogIgogU1JDX1VSSV9hcHBlbmRfbGliYy1nbGliYyA9ICIgZmlsZTovLzAwMDEtY29uZmlndXJlLmFjLURvLW5vdC1mYXRhbGl6ZS1XbWlzc2luZy1wcm90b3R5cGVzLnBhdGNoIgogU1JDX1VSSV9hcHBlbmRfbGliYy1tdXNsID0gIiBmaWxlOi8vbmZzLXV0aWxzLW11c2wtcmVzX3F1ZXJ5ZG9tYWluLnBhdGNoIgogCi1TUkNfVVJJW21kNXN1bV0gPSAiYjZjOWMwMzI5OTVhZjFjMDhmZWE5ZmJjYzFjZTMzZTkiCi1TUkNfVVJJW3NoYTI1NnN1bV0gPSAiZjY4YjM0NzkzODMxYjA1ZjFmZDU3NjBkNmJkZWM5Mjc3MmM3Njg0MTc3NTg2YTk5YTYxZTdiNDQ0ZjMzNjMyMiIKK1NSQ19VUklbbWQ1c3VtXSA9ICIxNjFlZmU0NjllYzFiMDZmMWM3NTBiZDg3ZjhiYTZkZCIKK1NSQ19VUklbc2hhMjU2c3VtXSA9ICI4NTI3NGFkYTk0NDc5YjFiZWJhOWY4ZWVmZmQxOWY0NzdjNTNhNjcxMGI5OTk4ZDExOTJjODA3ODU0MDg3NzM2IgogCiAjIE9ubHkga2VybmVsLW1vZHVsZS1uZnNkIGlzIHJlcXVpcmVkIGhlcmUgKGJ1dCBjYW4gYmUgYnVpbHQtaW4pICAtIHRoZSBuZnNkIG1vZHVsZSB3aWxsCiAjIHB1bGwgaW4gdGhlIHJlbWFpbmRlciBvZiB0aGUgZGVwZW5kZW5jaWVzLgpAQCAtMTA4LDkgKzEwNSw2IEBACiBkb19jb25maWd1cmVfcHJlcGVuZCgpIHsKICAgICAgICAgc2VkIC1pIC1lICdzLHNiaW5kaXIgPSAvc2JpbixzYmluZGlyID0gJHtiYXNlX3NiaW5kaXJ9LGcnIFwKICAgICAgICAgICAgICR7U30vdXRpbHMvbW91bnQvTWFrZWZpbGUuYW0KLQotICAgICAgICBzZWQgLWkgLWUgJ3Msc2JpbmRpciA9IC9zYmluLHNiaW5kaXIgPSAke2Jhc2Vfc2JpbmRpcn0sZycgXAotICAgICAgICAgICAgJHtTfS91dGlscy9vc2RfbG9naW4vTWFrZWZpbGUuYW0KIH0KIAogIyBNYWtlIGNsZWFuIG5lZWRlZCBiZWNhdXNlIHRoZSBwYWNrYWdlIGNvbWVzIHdpdGgKZGlmZiAtLWdpdCBhL3Bva3kvbWV0YS9yZWNpcGVzLWNvcmUvYmFzZS1maWxlcy9iYXNlLWZpbGVzXzMuMC4xNC5iYiBiL3Bva3kvbWV0YS9yZWNpcGVzLWNvcmUvYmFzZS1maWxlcy9iYXNlLWZpbGVzXzMuMC4xNC5iYgppbmRleCA0YjQwMjdmLi4yYjFmMjE3IDEwMDY0NAotLS0gYS9wb2t5L21ldGEvcmVjaXBlcy1jb3JlL2Jhc2UtZmlsZXMvYmFzZS1maWxlc18zLjAuMTQuYmIKKysrIGIvcG9reS9tZXRhL3JlY2lwZXMtY29yZS9iYXNlLWZpbGVzL2Jhc2UtZmlsZXNfMy4wLjE0LmJiCkBAIC0xMjksNyArMTI5LDYgQEAKIAlpbnN0YWxsIC1tIDA2NDQgJHtXT1JLRElSfS9zaGVsbHMgJHtEfSR7c3lzY29uZmRpcn0vc2hlbGxzCiAJaW5zdGFsbCAtbSAwNzU1ICR7V09SS0RJUn0vc2hhcmUvZG90LnByb2ZpbGUgJHtEfSR7c3lzY29uZmRpcn0vc2tlbC8ucHJvZmlsZQogCWluc3RhbGwgLW0gMDc1NSAke1dPUktESVJ9L3NoYXJlL2RvdC5iYXNocmMgJHtEfSR7c3lzY29uZmRpcn0vc2tlbC8uYmFzaHJjCi0JaW5zdGFsbCAtbSAwNjQ0ICR7V09SS0RJUn0vbnNzd2l0Y2guY29uZiAke0R9JHtzeXNjb25mZGlyfS9uc3N3aXRjaC5jb25mCiAJaW5zdGFsbCAtbSAwNjQ0ICR7V09SS0RJUn0vaG9zdC5jb25mICR7RH0ke3N5c2NvbmZkaXJ9L2hvc3QuY29uZgogCWluc3RhbGwgLW0gMDY0NCAke1dPUktESVJ9L21vdGQgJHtEfSR7c3lzY29uZmRpcn0vbW90ZAogCkBAIC0xNDIsNiArMTQxLDEwIEBACiAJZmkKIH0KIAorZG9faW5zdGFsbF9hcHBlbmRfbGliYy1nbGliYyAoKSB7CisJaW5zdGFsbCAtbSAwNjQ0ICR7V09SS0RJUn0vbnNzd2l0Y2guY29uZiAke0R9JHtzeXNjb25mZGlyfS9uc3N3aXRjaC5jb25mCit9CisKIERJU1RST19WRVJTSU9OW3ZhcmRlcHNleGNsdWRlXSArPSAiREFURSIKIGRvX2luc3RhbGxfYmFzZWZpbGVzaXNzdWUgKCkgewogCWluc3RhbGwgLW0gNjQ0ICR7V09SS0RJUn0vaXNzdWUqICAke0R9JHtzeXNjb25mZGlyfQpkaWZmIC0tZ2l0IGEvcG9reS9tZXRhL3JlY2lwZXMtY29yZS9kcm9wYmVhci9kcm9wYmVhci5pbmMgYi9wb2t5L21ldGEvcmVjaXBlcy1jb3JlL2Ryb3BiZWFyL2Ryb3BiZWFyLmluYwppbmRleCBkY2JkYTc0Li43MjY5ODg4IDEwMDY0NAotLS0gYS9wb2t5L21ldGEvcmVjaXBlcy1jb3JlL2Ryb3BiZWFyL2Ryb3BiZWFyLmluYworKysgYi9wb2t5L21ldGEvcmVjaXBlcy1jb3JlL2Ryb3BiZWFyL2Ryb3BiZWFyLmluYwpAQCAtNzAsOCArNzAsMTMgQEAKIAlpbnN0YWxsIC1tIDA2NDQgJHtXT1JLRElSfS9kcm9wYmVhci5kZWZhdWx0ICR7RH0ke3N5c2NvbmZkaXJ9L2RlZmF1bHQvZHJvcGJlYXIKIAogCWluc3RhbGwgLW0gMDc1NSBkcm9wYmVhcm11bHRpICR7RH0ke3NiaW5kaXJ9LwotCWxuIC1zICR7c2JpbmRpcn0vZHJvcGJlYXJtdWx0aSAke0R9JHtiaW5kaXJ9L2RiY2xpZW50CiAKKwlmb3IgaSBpbiAke0JJTkNPTU1BTkRTfQorCWRvCisJCSMgc3NoIGFuZCBzY3Agc3ltbGlua3MgYXJlIGNyZWF0ZWQgYnkgdXBkYXRlLWFsdGVybmF0aXZlcworCQlpZiBbICRpID0gc3NoIF0gfHwgWyAkaSA9IHNjcCBdOyB0aGVuIGNvbnRpbnVlOyBmaQorCQlsbiAtcyAke3NiaW5kaXJ9L2Ryb3BiZWFybXVsdGkgJHtEfSR7YmluZGlyfS8kaQorCWRvbmUKIAlmb3IgaSBpbiAke1NCSU5DT01NQU5EU30KIAlkbwogCQlsbiAtcyAuL2Ryb3BiZWFybXVsdGkgJHtEfSR7c2JpbmRpcn0vJGkKQEAgLTEwMSw3ICsxMDYsNyBAQAogaW5oZXJpdCB1cGRhdGUtYWx0ZXJuYXRpdmVzCiAKIEFMVEVSTkFUSVZFX1BSSU9SSVRZID0gIjIwIgotQUxURVJOQVRJVkVfJHtQTn0gPSAic2NwIHNzaCIKK0FMVEVSTkFUSVZFXyR7UE59ID0gIiR7QGJiLnV0aWxzLmZpbHRlcignQklOQ09NTUFORFMnLCAnc2NwIHNzaCcsIGQpfSIKIAogQUxURVJOQVRJVkVfVEFSR0VUID0gIiR7c2JpbmRpcn0vZHJvcGJlYXJtdWx0aSIKIApAQCAtMTEzLDMgKzExOCw1IEBACiAgICAgICAgIHJtICR7c3lzY29uZmRpcn0vZHJvcGJlYXIvZHJvcGJlYXJfZHNzX2hvc3Rfa2V5CiAgIGZpCiB9CisKK0ZJTEVTXyR7UE59ICs9ICIke2JpbmRpcn0iCmRpZmYgLS1naXQgYS9wb2t5L21ldGEvcmVjaXBlcy1jb3JlL2VsbC9lbGxfMC4yMS5iYiBiL3Bva3kvbWV0YS9yZWNpcGVzLWNvcmUvZWxsL2VsbF8wLjIyLmJiCnNpbWlsYXJpdHkgaW5kZXggODMlCnJlbmFtZSBmcm9tIHBva3kvbWV0YS9yZWNpcGVzLWNvcmUvZWxsL2VsbF8wLjIxLmJiCnJlbmFtZSB0byBwb2t5L21ldGEvcmVjaXBlcy1jb3JlL2VsbC9lbGxfMC4yMi5iYgppbmRleCA0ODdmYmNjLi5iMzk0MmZjIDEwMDY0NAotLS0gYS9wb2t5L21ldGEvcmVjaXBlcy1jb3JlL2VsbC9lbGxfMC4yMS5iYgorKysgYi9wb2t5L21ldGEvcmVjaXBlcy1jb3JlL2VsbC9lbGxfMC4yMi5iYgpAQCAtMTQsOCArMTQsOCBAQAogaW5oZXJpdCBhdXRvdG9vbHMgcGtnY29uZmlnCiAKIFNSQ19VUkkgPSAiaHR0cHM6Ly9taXJyb3JzLmVkZ2Uua2VybmVsLm9yZy9wdWIvbGludXgvbGlicy8ke0JQTn0vJHtCUE59LSR7UFZ9LnRhci54eiIKLVNSQ19VUklbbWQ1c3VtXSA9ICJmOTRmOGM4MTJiMDQyNmIwYzMwYjY1MWZhNTE0MmRkOSIKLVNSQ19VUklbc2hhMjU2c3VtXSA9ICJhMGRiNGUzMDU3YmE0MTAzNTYzNzM1NGI2YWYyYWE0Yzc0ZjgzNTA5ZTBjM2U1NjNkNjgyZGY5ZDcyZWFmZjE3IgorU1JDX1VSSVttZDVzdW1dID0gImE0ZTdkNzQ0MDRmMTFlNzE3NzViODlmNTNhOGYxYzMzIgorU1JDX1VSSVtzaGEyNTZzdW1dID0gIjNjMWQ2ZDk5N2UxN2RmY2JlNGViY2QxMzMxZDlhN2JlNWM2NGYyZjBhMDgxM2JjMjIzNzkwZTU3MGQ4ZGEyZTMiCiAKIGRvX2NvbmZpZ3VyZV9wcmVwZW5kICgpIHsKICAgICBta2RpciAtcCAke1N9L2J1aWxkLWF1eApkaWZmIC0tZ2l0IGEvcG9reS9tZXRhL3JlY2lwZXMtY29yZS9nbGliLW5ldHdvcmtpbmcvZ2xpYi1uZXR3b3JraW5nXzIuNjAuMi5iYiBiL3Bva3kvbWV0YS9yZWNpcGVzLWNvcmUvZ2xpYi1uZXR3b3JraW5nL2dsaWItbmV0d29ya2luZ18yLjYwLjMuYmIKc2ltaWxhcml0eSBpbmRleCA4NyUKcmVuYW1lIGZyb20gcG9reS9tZXRhL3JlY2lwZXMtY29yZS9nbGliLW5ldHdvcmtpbmcvZ2xpYi1uZXR3b3JraW5nXzIuNjAuMi5iYgpyZW5hbWUgdG8gcG9reS9tZXRhL3JlY2lwZXMtY29yZS9nbGliLW5ldHdvcmtpbmcvZ2xpYi1uZXR3b3JraW5nXzIuNjAuMy5iYgppbmRleCA0ZDRmZTY0Li5kODkzYjdhIDEwMDY0NAotLS0gYS9wb2t5L21ldGEvcmVjaXBlcy1jb3JlL2dsaWItbmV0d29ya2luZy9nbGliLW5ldHdvcmtpbmdfMi42MC4yLmJiCisrKyBiL3Bva3kvbWV0YS9yZWNpcGVzLWNvcmUvZ2xpYi1uZXR3b3JraW5nL2dsaWItbmV0d29ya2luZ18yLjYwLjMuYmIKQEAgLTksOCArOSw4IEBACiBTRUNUSU9OID0gImxpYnMiCiBERVBFTkRTID0gImdsaWItMi4wIgogCi1TUkNfVVJJW2FyY2hpdmUubWQ1c3VtXSA9ICJiZjQ2ZDEyMDhhYzAwZDc4YTQ1ZmJmNjIxZDQ1OTAyNSIKLVNSQ19VUklbYXJjaGl2ZS5zaGEyNTZzdW1dID0gImMwMjJmM2QxMGY1NWE1YjdjMzE2NzZmYjAwMWI0Y2I2NDAxZGI4YWI5ZjZlODQxOGM2OWRlMDBkMGYyNjg3MzIiCitTUkNfVVJJW2FyY2hpdmUubWQ1c3VtXSA9ICJlOGZkMDQ2MmE4MjI2OWZiNGJiZDZjMDdhMWU3ZDBmNCIKK1NSQ19VUklbYXJjaGl2ZS5zaGEyNTZzdW1dID0gImQ1MDE4MzA0NmE0ZmY5NTVkOGNjN2U5NTMwNjdjZGZjOTRmMTRkYmZkYTMwMjRiZjM3N2ZmMzdhMzEyMWRjZDUiCiAKIFBBQ0tBR0VDT05GSUcgPz89ICJnbnV0bHMiCiAKZGlmZiAtLWdpdCBhL3Bva3kvbWV0YS9yZWNpcGVzLWNvcmUvZ2xpYmMvZ2xpYmMtcGFja2FnZS5pbmMgYi9wb2t5L21ldGEvcmVjaXBlcy1jb3JlL2dsaWJjL2dsaWJjLXBhY2thZ2UuaW5jCmluZGV4IGY3OTY4NzYuLjliMWU3YjcgMTAwNjQ0Ci0tLSBhL3Bva3kvbWV0YS9yZWNpcGVzLWNvcmUvZ2xpYmMvZ2xpYmMtcGFja2FnZS5pbmMKKysrIGIvcG9reS9tZXRhL3JlY2lwZXMtY29yZS9nbGliYy9nbGliYy1wYWNrYWdlLmluYwpAQCAtODgsMTQgKzg4LDcgQEAKIAkJcm0gLWYgJHtEfSR7c3lzY29uZmRpcn0vbGQuc28uY29uZgogCQlybSAtZiAke0R9JHtiYXNlX3NiaW5kaXJ9L2xkY29uZmlnCiAJCSMgVGhpcyBkaXJlY3Rvcnkgd2lsbCBiZSBlbXB0eSBub3cgc28gcmVtb3ZlIGl0IHRvby4KLQkJIyBCdXQgY2hlY2sgd2hldGhlciBpdCBleGlzdHMgZmlyc3QsIHNpbmNlIGl0IHdvbid0IGZvciBnbGliYy1pbml0aWFsLgotCQlpZiBbIC1kICR7RH0ke3N5c2NvbmZkaXJ9IF07IHRoZW4KLQkJCXJtZGlyICR7RH0ke3N5c2NvbmZkaXJ9Ci0JCWZpCi0JZmkKLQotCWlmIGVjaG8gJHtQTn18Z3JlcCAtcSAiZ2xpYmMtaW5pdGlhbCI7IHRoZW4KLQkJcmV0dXJuCisJCXJtZGlyICR7RH0ke3N5c2NvbmZkaXJ9CiAJZmkKIAogCWluc3RhbGwgLWQgJHtEfSR7c3lzY29uZmRpcn0vaW5pdC5kCmRpZmYgLS1naXQgYS9wb2t5L21ldGEvcmVjaXBlcy1jb3JlL2dsaWJjL2dsaWJjLXRlc3RzdWl0ZV8yLjMwLmJiIGIvcG9reS9tZXRhL3JlY2lwZXMtY29yZS9nbGliYy9nbGliYy10ZXN0c3VpdGVfMi4zMC5iYgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42NGZhOGQ4Ci0tLSAvZGV2L251bGwKKysrIGIvcG9reS9tZXRhL3JlY2lwZXMtY29yZS9nbGliYy9nbGliYy10ZXN0c3VpdGVfMi4zMC5iYgpAQCAtMCwwICsxLDUzIEBACityZXF1aXJlIGdsaWJjXyR7UFZ9LmJiCisKKyMgaGFuZGxlIFBOIGRpZmZlcmVuY2VzCitGSUxFU0VYVFJBUEFUSFNfcHJlcGVuZCA6PSAiJHtUSElTRElSfS9nbGliYzoiCisKKyMgc3RyaXAgcHJvdmlkZXMKK1BST1ZJREVTID0gIiIKKyMgc2V0dXAgZGVwZW5kcworSU5ISUJJVF9ERUZBVUxUX0RFUFMgPSAiIgorCitERVBFTkRTICs9ICJnbGliYy1sb2NhbGUgbGliZ2NjIGdjYy1ydW50aW1lIgorCisjIHJlbW92ZSB0aGUgaW5pdGlhbCBkZXBlbmRzCitERVBFTkRTX3JlbW92ZSA9ICJsaWJnY2MtaW5pdGlhbCIKKworaW5oZXJpdCBxZW11CisKK1NSQ19VUkkgKz0gImZpbGU6Ly9jaGVjay10ZXN0LXdyYXBwZXIiCisKK0RFUEVORFMgKz0gIiR7QCdxZW11LW5hdGl2ZScgaWYgZC5nZXRWYXIoJ1RPT0xDSEFJTl9URVNUX1RBUkdFVCcpID09ICd1c2VyJyBlbHNlICcnfSIKKworVE9PTENIQUlOX1RFU1RfVEFSR0VUID8/PSAidXNlciIKK1RPT0xDSEFJTl9URVNUX0hPU1QgPz89ICJsb2NhbGhvc3QiCitUT09MQ0hBSU5fVEVTVF9IT1NUX1VTRVIgPz89ICJyb290IgorVE9PTENIQUlOX1RFU1RfSE9TVF9QT1JUID8/PSAiMjIyMiIKKworZG9fY2hlY2tbZGlyc10gKz0gIiR7Qn0iCitkb19jaGVja1tub3N0YW1wXSA9ICIxIgorZG9fY2hlY2sgKCkgeworICAgIGNobW9kIDA3NTUgJHtXT1JLRElSfS9jaGVjay10ZXN0LXdyYXBwZXIKKworICAgICMgY2xlYW4gb3V0IHByZXZpb3VzIHRlc3QgcmVzdWx0cworICAgIG9lX3J1bm1ha2UgdGVzdHMtY2xlYW4KKyAgICAjIG1ha2VmaWxlcyBkb24ndCBjbGVhbiBlbnRpcmVseSAoYW5kIGFsc28gc29tZXRpbWVzIGZhaWxzIGR1ZSB0byB0b28gbWFueSBhcmdzKQorICAgIGZpbmQgJHtCfSAtdHlwZSBmIC1uYW1lICIqLm91dCIgLWRlbGV0ZQorICAgIGZpbmQgJHtCfSAtdHlwZSBmIC1uYW1lICIqLnRlc3QtcmVzdWx0IiAtZGVsZXRlCisgICAgZmluZCAke0J9L2NhdGdldHMgLW5hbWUgIiouY2F0IiAtZGVsZXRlCisgICAgZmluZCAke0J9L2NvbmZvcm0gLW5hbWUgInN5bWxpc3QtKiIgLWRlbGV0ZQorICAgIFsgISAtZSAke0J9L3RpbWV6b25lL3Rlc3RkYXRhIF0gfHwgcm0gLXJmICR7Qn0vdGltZXpvbmUvdGVzdGRhdGEKKworICAgIG9lX3J1bm1ha2UgLWkgXAorICAgICAgICBRRU1VX1NZU1JPT1Q9IiR7UkVDSVBFX1NZU1JPT1R9IiBcCisgICAgICAgIFFFTVVfT1BUSU9OUz0iJHtAcWVtdV90YXJnZXRfYmluYXJ5KGQpfSAke1FFTVVfT1BUSU9OU30iIFwKKyAgICAgICAgU1NIX0hPU1Q9IiR7VE9PTENIQUlOX1RFU1RfSE9TVH0iIFwKKyAgICAgICAgU1NIX0hPU1RfVVNFUj0iJHtUT09MQ0hBSU5fVEVTVF9IT1NUX1VTRVJ9IiBcCisgICAgICAgIFNTSF9IT1NUX1BPUlQ9IiR7VE9PTENIQUlOX1RFU1RfSE9TVF9QT1JUfSIgXAorICAgICAgICB0ZXN0LXdyYXBwZXI9IiR7V09SS0RJUn0vY2hlY2stdGVzdC13cmFwcGVyICR7VE9PTENIQUlOX1RFU1RfVEFSR0VUfSIgXAorICAgICAgICBjaGVjaworfQorYWRkdGFzayBkb19jaGVjayBhZnRlciBkb19jb21waWxlCisKK2luaGVyaXQgbm9wYWNrYWdlcworZGVsdGFzayBkb19zdGFzaF9sb2NhbGUKZGlmZiAtLWdpdCBhL3Bva3kvbWV0YS9yZWNpcGVzLWNvcmUvZ2xpYmMvZ2xpYmMvY2hlY2stdGVzdC13cmFwcGVyIGIvcG9reS9tZXRhL3JlY2lwZXMtY29yZS9nbGliYy9nbGliYy9jaGVjay10ZXN0LXdyYXBwZXIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjhlMDRlMAotLS0gL2Rldi9udWxsCisrKyBiL3Bva3kvbWV0YS9yZWNpcGVzLWNvcmUvZ2xpYmMvZ2xpYmMvY2hlY2stdGVzdC13cmFwcGVyCkBAIC0wLDAgKzEsNzEgQEAKKyMhL3Vzci9iaW4vZW52IHB5dGhvbjMKK2ltcG9ydCBzeXMKK2ltcG9ydCBvcworaW1wb3J0IHN1YnByb2Nlc3MKKworZW52ID0gb3MuZW52aXJvbi5jb3B5KCkKK2FyZ3MgPSBzeXMuYXJndlsxOl0KK3RhcmdldHR5cGUgPSBhcmdzLnBvcCgwKQorCitpZiB0YXJnZXR0eXBlID09ICJ1c2VyIjoKKyAgICBxZW11YXJncyA9IG9zLmVudmlyb24uZ2V0KCJRRU1VX09QVElPTlMiLCAiIikuc3BsaXQoKQorICAgIGlmIG5vdCBvcy5wYXRoLmV4aXN0cyhxZW11YXJnc1swXSk6CisgICAgICAgICMgZW5zdXJlIHFlbXUgYXJncyBoYXMgYSB2YWxpZCBhYnNvbHV0ZSBwYXRoCisgICAgICAgIGZvciBpIGluIG9zLmVudmlyb24uZ2V0KCJQQVRIIiwgIiIpLnNwbGl0KCI6Iik6CisgICAgICAgICAgICBpZiBvcy5wYXRoLmV4aXN0cyhvcy5wYXRoLmpvaW4oaSwgcWVtdWFyZ3NbMF0pKToKKyAgICAgICAgICAgICAgICBxZW11YXJnc1swXSA9IG9zLnBhdGguam9pbihpLCBxZW11YXJnc1swXSkKKyAgICAgICAgICAgICAgICBicmVhaworICAgIHN5c3Jvb3QgPSBvcy5lbnZpcm9uLmdldCgiUUVNVV9TWVNST09UIiwgTm9uZSkKKyAgICBpZiBub3Qgc3lzcm9vdDoKKyAgICAgICAgc3lzLmV4aXQoLTEpCisgICAgbGlicGF0aHMgPSBbc3lzcm9vdCArICIvdXNyL2xpYiIsIHN5c3Jvb3QgKyAiL2xpYiJdCisKKyAgICBpZiBhcmdzWzBdID09ICJlbnYiOgorICAgICAgICBhcmdzLnBvcCgwKQorICAgICAgICBpZiBsZW4oYXJncykgPT0gMDoKKyAgICAgICAgICAgIGFyZ3MgPSBbImVudiJdCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICAjIHByb2Nlc3Mgb3B0aW9ucworICAgICAgICAgICAgd2hpbGUgYXJnc1swXS5zdGFydHN3aXRoKCItIik6CisgICAgICAgICAgICAgICAgb3B0ID0gYXJncy5wb3AoMCkubHN0cmlwKCItIikKKyAgICAgICAgICAgICAgICBpZiAiaSIgaW4gb3B0OgorICAgICAgICAgICAgICAgICAgICBlbnYuY2xlYXIoKQorICAgICAgICAgICAgIyBwcm9jZXNzIGVudmlyb25tZW50IHZhcnMKKyAgICAgICAgICAgIHdoaWxlICI9IiBpbiBhcmdzWzBdOgorICAgICAgICAgICAgICAgIGtleSwgdmFsID0gYXJncy5wb3AoMCkuc3BsaXQoIj0iLCAxKQorICAgICAgICAgICAgICAgIGlmIGtleSA9PSAiTERfTElCUkFSWV9QQVRIIjoKKyAgICAgICAgICAgICAgICAgICAgbGlicGF0aHMgKz0gdmFsLnNwbGl0KCI6IikKKyAgICAgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgICAgICBlbnZba2V5XSA9IHZhbAorICAgIGlmIGFyZ3NbMF0gPT0gImNwIjoKKyAgICAgICAgIyBpZ25vcmUgY29waWVzLCB0aGUgZmlsZXN5c3RlbSBpcyB0aGUgc2FtZQorICAgICAgICBzeXMuZXhpdCgwKQorCisgICAgcWVtdWFyZ3MgKz0gWyItTCIsIHN5c3Jvb3RdCisgICAgcWVtdWFyZ3MgKz0gWyItRSIsICJMRF9MSUJSQVJZX1BBVEg9e30iLmZvcm1hdCgiOiIuam9pbihsaWJwYXRocykpXQorICAgIGNvbW1hbmQgPSBxZW11YXJncyArIGFyZ3MKK2VsaWYgdGFyZ2V0dHlwZSA9PSAic3NoIjoKKyAgICBob3N0ID0gb3MuZW52aXJvbi5nZXQoIlNTSF9IT1NUIiwgTm9uZSkKKyAgICB1c2VyID0gb3MuZW52aXJvbi5nZXQoIlNTSF9IT1NUX1VTRVIiLCBOb25lKQorICAgIHBvcnQgPSBvcy5lbnZpcm9uLmdldCgiU1NIX0hPU1RfUE9SVCIsIE5vbmUpCisKKyAgICBjb21tYW5kID0gWyJzc2giLCAiLW8iLCAiVXNlcktub3duSG9zdHNGaWxlPS9kZXYvbnVsbCIsICItbyIsICJTdHJpY3RIb3N0S2V5Q2hlY2tpbmc9bm8iXQorICAgIGlmIHBvcnQ6CisgICAgICAgIGNvbW1hbmQgKz0gWyItcCIsIHN0cihwb3J0KV0KKyAgICBpZiBub3QgaG9zdDoKKyAgICAgICAgc3lzLmV4aXQoLTEpCisgICAgY29tbWFuZCArPSBbInt9QHt9Ii5mb3JtYXQodXNlciwgaG9zdCkgaWYgdXNlciBlbHNlIGhvc3RdCisKKyAgICAjIHdyYXAgYW5kIHJlcGxhY2UgcXVvdGVzIGZvciBjb3JyZWN0IHRyYW5zZm9ybWF0aW9uIG9uIHNzaAorICAgIHdyYXBwZWQgPSAiICIuam9pbihbIid7MH0nIi5mb3JtYXQoaS5yZXBsYWNlKCInIiwgciInXCcnIikpIGZvciBpIGluIFsiY2QiLCBvcy5nZXRjd2QoKV1dKSArICI7ICIKKyAgICB3cmFwcGVkICs9ICIgIi5qb2luKFsiJ3swfSciLmZvcm1hdChpLnJlcGxhY2UoIiciLCByIidcJyciKSkgZm9yIGkgaW4gYXJnc10pCisgICAgY29tbWFuZCArPSBbInNoIiwgIi1jIiwgIlwie31cIiIuZm9ybWF0KHdyYXBwZWQpXQorZWxzZToKKyAgICBzeXMuZXhpdCgtMSkKKwordHJ5OgorICAgIHIgPSBzdWJwcm9jZXNzLnJ1bihjb21tYW5kLCB0aW1lb3V0ID0gMTgwMCwgZW52ID0gZW52KQorICAgIHN5cy5leGl0KHIucmV0dXJuY29kZSkKK2V4Y2VwdCBzdWJwcm9jZXNzLlRpbWVvdXRFeHBpcmVkOgorICAgIHN5cy5leGl0KC0xKQorCmRpZmYgLS1naXQgYS9wb2t5L21ldGEvcmVjaXBlcy1jb3JlL2ltYWdlcy9idWlsZC1hcHBsaWFuY2UtaW1hZ2VfMTUuMC4wLmJiIGIvcG9reS9tZXRhL3JlY2lwZXMtY29yZS9pbWFnZXMvYnVpbGQtYXBwbGlhbmNlLWltYWdlXzE1LjAuMC5iYgppbmRleCBlOWNhYzk4Li4zZjFiMWM3IDEwMDY0NAotLS0gYS9wb2t5L21ldGEvcmVjaXBlcy1jb3JlL2ltYWdlcy9idWlsZC1hcHBsaWFuY2UtaW1hZ2VfMTUuMC4wLmJiCisrKyBiL3Bva3kvbWV0YS9yZWNpcGVzLWNvcmUvaW1hZ2VzL2J1aWxkLWFwcGxpYW5jZS1pbWFnZV8xNS4wLjAuYmIKQEAgLTExLDYgKzExLDggQEAKIAogSU1BR0VfRkVBVFVSRVMgKz0gIngxMS1iYXNlIHBhY2thZ2UtbWFuYWdlbWVudCBzcGxhc2giCiAKK1FCX01FTSA9ICcke0BiYi51dGlscy5jb250YWlucygiRElTVFJPX0ZFQVRVUkVTIiwgIm9wZW5nbCIsICItbSA1MTIiLCAiLW0gMjU2IiwgZCl9JworCiAjIEVuc3VyZSB0aGVyZSdzIGVub3VnaCBzcGFjZSB0byBkbyBhIGNvcmUtaW1hZ2Utc2F0byBidWlsZCwgd2l0aCBybV93b3JrIGVuYWJsZWQKIElNQUdFX1JPT1RGU19FWFRSQV9TUEFDRSA9ICI0MTk0MzA0MCIKIApkaWZmIC0tZ2l0IGEvcG9reS9tZXRhL3JlY2lwZXMtY29yZS9pbml0c2NyaXB0cy9pbml0c2NyaXB0cy0xLjAvcG9wdWxhdGUtdm9sYXRpbGUuc2ggYi9wb2t5L21ldGEvcmVjaXBlcy1jb3JlL2luaXRzY3JpcHRzL2luaXRzY3JpcHRzLTEuMC9wb3B1bGF0ZS12b2xhdGlsZS5zaAppbmRleCA2Zjk2NWE2Li4xYzUyNWI3IDEwMDc1NQotLS0gYS9wb2t5L21ldGEvcmVjaXBlcy1jb3JlL2luaXRzY3JpcHRzL2luaXRzY3JpcHRzLTEuMC9wb3B1bGF0ZS12b2xhdGlsZS5zaAorKysgYi9wb2t5L21ldGEvcmVjaXBlcy1jb3JlL2luaXRzY3JpcHRzL2luaXRzY3JpcHRzLTEuMC9wb3B1bGF0ZS12b2xhdGlsZS5zaApAQCAtODAsNyArODAsNyBAQAogbGlua19maWxlKCkgewogCUVYRUM9IgogCWlmIFsgLUwgXCIkMlwiIF07IHRoZW4KLQkJWyBcIlwkKHJlYWRsaW5rIC1mIFwiJDJcIilcIiAhPSBcIiQxXCIgXSAmJiB7IHJtIC1mIFwiJDJcIjsgbG4gLXNmIFwiJDFcIiBcIiQyXCI7IH07CisJCVsgXCJcJChyZWFkbGluayBcIiQyXCIpXCIgIT0gXCIkMVwiIF0gJiYgeyBybSAtZiBcIiQyXCI7IGxuIC1zZiBcIiQxXCIgXCIkMlwiOyB9OwogCWVsaWYgWyAtZCBcIiQyXCIgXTsgdGhlbgogCQlpZiBhd2sgJ1wkMiA9PSBcIiQyXCIge2V4aXQgMX0nIC9wcm9jL21vdW50czsgdGhlbgogCQkJY3AgLWEgJDIvKiAkMSAyPi9kZXYvbnVsbDsKZGlmZiAtLWdpdCBhL3Bva3kvbWV0YS9yZWNpcGVzLWNvcmUvbGlieGNyeXB0L2xpYnhjcnlwdC1jb21wYXRfNC40LjYuYmIgYi9wb2t5L21ldGEvcmVjaXBlcy1jb3JlL2xpYnhjcnlwdC9saWJ4Y3J5cHQtY29tcGF0XzQuNC44LmJiCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBwb2t5L21ldGEvcmVjaXBlcy1jb3JlL2xpYnhjcnlwdC9saWJ4Y3J5cHQtY29tcGF0XzQuNC42LmJiCnJlbmFtZSB0byBwb2t5L21ldGEvcmVjaXBlcy1jb3JlL2xpYnhjcnlwdC9saWJ4Y3J5cHQtY29tcGF0XzQuNC44LmJiCmRpZmYgLS1naXQgYS9wb2t5L21ldGEvcmVjaXBlcy1jb3JlL2xpYnhjcnlwdC9saWJ4Y3J5cHRfNC40LjYuYmIgYi9wb2t5L21ldGEvcmVjaXBlcy1jb3JlL2xpYnhjcnlwdC9saWJ4Y3J5cHRfNC40LjguYmIKc2ltaWxhcml0eSBpbmRleCA3OCUKcmVuYW1lIGZyb20gcG9reS9tZXRhL3JlY2lwZXMtY29yZS9saWJ4Y3J5cHQvbGlieGNyeXB0XzQuNC42LmJiCnJlbmFtZSB0byBwb2t5L21ldGEvcmVjaXBlcy1jb3JlL2xpYnhjcnlwdC9saWJ4Y3J5cHRfNC40LjguYmIKaW5kZXggODkzZjVlNy4uMTc4N2Y2OSAxMDA2NDQKLS0tIGEvcG9reS9tZXRhL3JlY2lwZXMtY29yZS9saWJ4Y3J5cHQvbGlieGNyeXB0XzQuNC42LmJiCisrKyBiL3Bva3kvbWV0YS9yZWNpcGVzLWNvcmUvbGlieGNyeXB0L2xpYnhjcnlwdF80LjQuOC5iYgpAQCAtMywxNiArMywxNCBAQAogSE9NRVBBR0UgPSAiaHR0cHM6Ly9naXRodWIuY29tL2Jlc3NlcjgyL2xpYnhjcnlwdCIKIFNFQ1RJT04gPSAibGlicyIKIExJQ0VOU0UgPSAiTEdQTHYyLjEiCi1MSUNfRklMRVNfQ0hLU1VNID89ICJmaWxlOi8vTElDRU5TSU5HO21kNT1iZTI3NWJjN2Y5MTY0MmVmZTc3MDlhOGFlN2ExNDMzYiBcCitMSUNfRklMRVNfQ0hLU1VNID89ICJmaWxlOi8vTElDRU5TSU5HO21kNT0zYmI2NjE0Y2Y1ODgwY2JmMWI5ZGJkOWUzZDE0NWUyYyBcCiAgICAgICAgICAgICAgICAgICAgICBmaWxlOi8vQ09QWUlORy5MSUI7bWQ1PTRmYmQ2NTM4MGNkZDI1NTk1MTA3OTAwOGIzNjQ1MTZjIFwKICIKIAogaW5oZXJpdCBhdXRvdG9vbHMgcGtnY29uZmlnCiAKLVBWID0gIjQuNC42IgotCiBTUkNfVVJJID0gImdpdDovL2dpdGh1Yi5jb20vYmVzc2VyODIvbGlieGNyeXB0LmdpdDticmFuY2g9JHtTUkNCUkFOQ0h9IgotU1JDUkVWID0gIjM5ODk0Mzc3NGM1ZmYzOGJhZjFiYzVlZTA4ODg1NWZkODk4M2JiMDUiCitTUkNSRVYgPSAiYWNkODQ5OTdhNWE4YjJiYWRkMjhiNzBhNjQyYWJlZTExMjcyZmFkMiIKIFNSQ0JSQU5DSCA/PSAiZGV2ZWxvcCIKIAogUFJPVklERVMgPSAidmlydHVhbC9jcnlwdCIKQEAgLTI2LDggKzI0LDggQEAKIFMgPSAiJHtXT1JLRElSfS9naXQiCiAKIEJVSUxEX0NQUEZMQUdTID0gIi1JJHtTVEFHSU5HX0lOQ0RJUl9OQVRJVkV9IgotVEFSR0VUX0NQUEZMQUdTID0gIi1JJHtTVEFHSU5HX0RJUl9UQVJHRVR9JHtpbmNsdWRlZGlyfSAtV25vLWVycm9yPW1pc3NpbmctYXR0cmlidXRlcyIKLUNQUEZMQUdTX2FwcGVuZF9jbGFzcy1uYXRpdmVzZGsgPSAiIC1Xbm8tZXJyb3I9bWlzc2luZy1hdHRyaWJ1dGVzIgorVEFSR0VUX0NQUEZMQUdTID0gIi1JJHtTVEFHSU5HX0RJUl9UQVJHRVR9JHtpbmNsdWRlZGlyfSAtV25vLWVycm9yIgorQ1BQRkxBR1NfYXBwZW5kX2NsYXNzLW5hdGl2ZXNkayA9ICIgLVduby1lcnJvciIKIAogQVBJID0gIi0tZGlzYWJsZS1vYnNvbGV0ZS1hcGkiCiBFWFRSQV9PRUNPTkYgKz0gIiR7QVBJfSIKZGlmZiAtLWdpdCBhL3Bva3kvbWV0YS9yZWNpcGVzLWNvcmUvbXVzbC9tdXNsX2dpdC5iYiBiL3Bva3kvbWV0YS9yZWNpcGVzLWNvcmUvbXVzbC9tdXNsX2dpdC5iYgppbmRleCA2NGFlZTZjLi45MzQxYmY1IDEwMDY0NAotLS0gYS9wb2t5L21ldGEvcmVjaXBlcy1jb3JlL211c2wvbXVzbF9naXQuYmIKKysrIGIvcG9reS9tZXRhL3JlY2lwZXMtY29yZS9tdXNsL211c2xfZ2l0LmJiCkBAIC00LDcgKzQsNyBAQAogcmVxdWlyZSBtdXNsLmluYwogaW5oZXJpdCBsaW51eGxvYWRlcgogCi1TUkNSRVYgPSAiMjllODczN2Y4MWNjYzlmYmFkY2Y2MWE3NTMxOGFhM2QwNTE2YWFmYSIKK1NSQ1JFViA9ICI2YWQ1MTRlNGUyNzhmMGMzYjE4ZWIyZGIxZDQ1NjM4YzlhZjFjMDdmIgogCiBCQVNFVkVSID0gIjEuMS4yMyIKIApkaWZmIC0tZ2l0IGEvcG9reS9tZXRhL3JlY2lwZXMtY29yZS9wYWNrYWdlZ3JvdXBzL3BhY2thZ2Vncm91cC1jb3JlLWJvb3QuYmIgYi9wb2t5L21ldGEvcmVjaXBlcy1jb3JlL3BhY2thZ2Vncm91cHMvcGFja2FnZWdyb3VwLWNvcmUtYm9vdC5iYgppbmRleCAzYTJmNTBmLi5hYmJlZTE0IDEwMDY0NAotLS0gYS9wb2t5L21ldGEvcmVjaXBlcy1jb3JlL3BhY2thZ2Vncm91cHMvcGFja2FnZWdyb3VwLWNvcmUtYm9vdC5iYgorKysgYi9wb2t5L21ldGEvcmVjaXBlcy1jb3JlL3BhY2thZ2Vncm91cHMvcGFja2FnZWdyb3VwLWNvcmUtYm9vdC5iYgpAQCAtMTAsMTIgKzEwLDYgQEAKIAogaW5oZXJpdCBwYWNrYWdlZ3JvdXAKIAotIwotIyBTZXQgYnkgdGhlIG1hY2hpbmUgY29uZmlndXJhdGlvbiB3aXRoIHBhY2thZ2VzIGVzc2VudGlhbCBmb3IgZGV2aWNlIGJvb3R1cAotIwotTUFDSElORV9FU1NFTlRJQUxfRVhUUkFfUkRFUEVORFMgPz0gIiIKLU1BQ0hJTkVfRVNTRU5USUFMX0VYVFJBX1JSRUNPTU1FTkRTID89ICIiCi0KICMgRGlzdHJvIGNhbiBvdmVycmlkZSB0aGUgZm9sbG93aW5nIFZJUlRVQUwtUlVOVElNRSBwcm92aWRlcnM6CiBWSVJUVUFMLVJVTlRJTUVfZGV2X21hbmFnZXIgPz0gInVkZXYiCiBWSVJUVUFMLVJVTlRJTUVfa2V5bWFwcyA/PSAia2V5bWFwcyIKZGlmZiAtLWdpdCBhL3Bva3kvbWV0YS9yZWNpcGVzLWNvcmUvcGFja2FnZWdyb3Vwcy9wYWNrYWdlZ3JvdXAtc2VsZi1ob3N0ZWQuYmIgYi9wb2t5L21ldGEvcmVjaXBlcy1jb3JlL3BhY2thZ2Vncm91cHMvcGFja2FnZWdyb3VwLXNlbGYtaG9zdGVkLmJiCmluZGV4IGYyMDZjZWUuLjliMGFlMGQgMTAwNjQ0Ci0tLSBhL3Bva3kvbWV0YS9yZWNpcGVzLWNvcmUvcGFja2FnZWdyb3Vwcy9wYWNrYWdlZ3JvdXAtc2VsZi1ob3N0ZWQuYmIKKysrIGIvcG9reS9tZXRhL3JlY2lwZXMtY29yZS9wYWNrYWdlZ3JvdXBzL3BhY2thZ2Vncm91cC1zZWxmLWhvc3RlZC5iYgpAQCAtMzcsNyArMzcsNyBAQAogICAgIGUyZnNwcm9ncy10dW5lMmZzIFwKICAgICBoZHBhcm0gXAogICAgIGlwdGFibGVzIFwKLSAgICBsc2IgXAorICAgIGxzYi1yZWxlYXNlIFwKICAgICBtYyBcCiAgICAgbWMtZmlzaCBcCiAgICAgbWMtaGVscGVycyBcCmRpZmYgLS1naXQgYS9wb2t5L21ldGEvcmVjaXBlcy1jb3JlL3N5c3RlbWQvc3lzdGVtZC1zZXJpYWxnZXR0eS9zZXJpYWwtZ2V0dHlALnNlcnZpY2UgYi9wb2t5L21ldGEvcmVjaXBlcy1jb3JlL3N5c3RlbWQvc3lzdGVtZC1zZXJpYWxnZXR0eS9zZXJpYWwtZ2V0dHlALnNlcnZpY2UKaW5kZXggZThiMDI3ZS4uMTVhZjE2YSAxMDA2NDQKLS0tIGEvcG9reS9tZXRhL3JlY2lwZXMtY29yZS9zeXN0ZW1kL3N5c3RlbWQtc2VyaWFsZ2V0dHkvc2VyaWFsLWdldHR5QC5zZXJ2aWNlCisrKyBiL3Bva3kvbWV0YS9yZWNpcGVzLWNvcmUvc3lzdGVtZC9zeXN0ZW1kLXNlcmlhbGdldHR5L3NlcmlhbC1nZXR0eUAuc2VydmljZQpAQCAtOSw3ICs5LDggQEAKIERlc2NyaXB0aW9uPVNlcmlhbCBHZXR0eSBvbiAlSQogRG9jdW1lbnRhdGlvbj1tYW46YWdldHR5KDgpIG1hbjpzeXN0ZW1kLWdldHR5LWdlbmVyYXRvcig4KQogRG9jdW1lbnRhdGlvbj1odHRwOi8vMHBvaW50ZXIuZGUvYmxvZy9wcm9qZWN0cy9zZXJpYWwtY29uc29sZS5odG1sCi1CaW5kc1RvPWRldi0laS5kZXZpY2UKK1BhcnRPZj1kZXYtJWkuZGV2aWNlCitDb25kaXRpb25QYXRoRXhpc3RzPS9kZXYvJWkKIEFmdGVyPWRldi0laS5kZXZpY2Ugc3lzdGVtZC11c2VyLXNlc3Npb25zLnNlcnZpY2UgcGx5bW91dGgtcXVpdC13YWl0LnNlcnZpY2UKIEFmdGVyPXJjLWxvY2FsLnNlcnZpY2UKIApkaWZmIC0tZ2l0IGEvcG9reS9tZXRhL3JlY2lwZXMtY29yZS9zeXN0ZW1kL3N5c3RlbWQuaW5jIGIvcG9reS9tZXRhL3JlY2lwZXMtY29yZS9zeXN0ZW1kL3N5c3RlbWQuaW5jCmluZGV4IDNhMzUzYjAuLjE5MTI3MTUgMTAwNjQ0Ci0tLSBhL3Bva3kvbWV0YS9yZWNpcGVzLWNvcmUvc3lzdGVtZC9zeXN0ZW1kLmluYworKysgYi9wb2t5L21ldGEvcmVjaXBlcy1jb3JlL3N5c3RlbWQvc3lzdGVtZC5pbmMKQEAgLTE0LDcgKzE0LDcgQEAKIExJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0xJQ0VOU0UuR1BMMjttZDU9NzUxNDE5MjYwYWE5NTQ0OTlmN2FiYWFiYWE4ODJiYmUgXAogICAgICAgICAgICAgICAgICAgICBmaWxlOi8vTElDRU5TRS5MR1BMMi4xO21kNT00ZmJkNjUzODBjZGQyNTU5NTEwNzkwMDhiMzY0NTE2YyIKIAotU1JDUkVWID0gImRiMmUzNjdiZmMzYjExOTYwOWY4MzdlYjk3M2Q5MTVmNmM1NTBiMmYiCitTUkNSRVYgPSAiZjg3NWRjZWQzMzQ2MjY0MWUxZmI3ODc1ZDJmOWE4Y2Q4ZThjMmZjYyIKIFNSQ0JSQU5DSCA9ICJ2MjQyLXN0YWJsZSIKIFNSQ19VUkkgPSAiZ2l0Oi8vZ2l0aHViLmNvbS9zeXN0ZW1kL3N5c3RlbWQtc3RhYmxlLmdpdDtwcm90b2NvbD1naXQ7YnJhbmNoPSR7U1JDQlJBTkNIfSIKIApkaWZmIC0tZ2l0IGEvcG9reS9tZXRhL3JlY2lwZXMtY29yZS9zeXN0ZW1kL3N5c3RlbWQvMDAwMS1jb3JlLXNldC1mcy5maWxlLW1heC1zeXNjdGwtdG8tTE9OR19NQVgtcmF0aGVyLXRoYW4tLnBhdGNoIGIvcG9reS9tZXRhL3JlY2lwZXMtY29yZS9zeXN0ZW1kL3N5c3RlbWQvMDAwMS1jb3JlLXNldC1mcy5maWxlLW1heC1zeXNjdGwtdG8tTE9OR19NQVgtcmF0aGVyLXRoYW4tLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmZjY0ZjU4Li4wMDAwMDAwCi0tLSBhL3Bva3kvbWV0YS9yZWNpcGVzLWNvcmUvc3lzdGVtZC9zeXN0ZW1kLzAwMDEtY29yZS1zZXQtZnMuZmlsZS1tYXgtc3lzY3RsLXRvLUxPTkdfTUFYLXJhdGhlci10aGFuLS5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDM5ICswLDAgQEAKLUZyb20gNmUyZjc4OTQ4NDAzYTRjY2U0NWI5ZTM0MzExYzk1NzdjNjI0ZjA2NiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IExlbm5hcnQgUG9ldHRlcmluZyA8bGVubmFydEBwb2V0dGVyaW5nLm5ldD4KLURhdGU6IE1vbiwgMTcgSnVuIDIwMTkgMTA6NTE6MjUgKzAyMDAKLVN1YmplY3Q6IFtQQVRDSF0gY29yZTogc2V0IGZzLmZpbGUtbWF4IHN5c2N0bCB0byBMT05HX01BWCByYXRoZXIgdGhhbgotIFVMT05HX01BWAotCi1TaW5jZSBrZXJuZWwgNS4yIHRoZSBrZXJuZWwgdGhhbmtmdWxseSByZXR1cm5zIHByb3BlciBlcnJvcnMgd2hlbiB3ZQotd3JpdGUgYSB2YWx1ZSBvdXQgb2YgcmFuZ2UgdG8gdGhlIHN5c2N0bC4gV2hpY2ggaG93ZXZlciBicmVha3Mgd3JpdGluZwotVUxPTkdfTUFYIHRvIHJlcXVlc3QgdGhlIG1heGltdW0gdmFsdWUuIEhlbmNlIGxldCdzIHdyaXRlIHRoZSBuZXcKLW1heGltdW0gdmFsdWUgaW5zdGVhZCwgTE9OR19NQVguCi0KLS9jYyBAYnJhdW5lcgotCi1GaXhlczogIzEyODAzCi0KLVVwc3RyZWFtLVN0YXR1czogQmFja3BvcnQKLQotU2lnbmVkLW9mZi1ieTogTWF0dGhpYXMgU2NoaWZmZXIgPG1hdHRoaWFzLnNjaGlmZmVyQGV3LnRxLWdyb3VwLmNvbT4KLS0tLQotIHNyYy9jb3JlL21haW4uYyB8IDYgKysrLS0tCi0gMSBmaWxlIGNoYW5nZWQsIDMgaW5zZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMoLSkKLQotZGlmZiAtLWdpdCBhL3NyYy9jb3JlL21haW4uYyBiL3NyYy9jb3JlL21haW4uYwotaW5kZXggYjMzZWExYjViNS4uZTdmNTE4MTVmMCAxMDA2NDQKLS0tLSBhL3NyYy9jb3JlL21haW4uYwotKysrIGIvc3JjL2NvcmUvbWFpbi5jCi1AQCAtMTI0NSw5ICsxMjQ1LDkgQEAgc3RhdGljIHZvaWQgYnVtcF9maWxlX21heF9hbmRfbnJfb3Blbih2b2lkKSB7Ci0gI2VuZGlmCi0gCi0gI2lmIEJVTVBfUFJPQ19TWVNfRlNfRklMRV9NQVgKLS0gICAgICAgIC8qIEkgc28gd2FudGVkIHRvIHVzZSBTVFJJTkdJRlkoVUxPTkdfTUFYKSBoZXJlLCBidXQgYWxhcyB3ZSBjYW4ndCBhcyBnbGliYy9nY2MgZGVmaW5lIHRoYXQgYXMKLS0gICAgICAgICAqICIoMHg3ZmZmZmZmZmZmZmZmZmZmTCAqIDJVTCArIDFVTCkiLiBTZXJpb3VzbHkuIPCfmKIgKi8KLS0gICAgICAgIGlmIChhc3ByaW50ZigmdCwgIiVsdVxuIiwgVUxPTkdfTUFYKSA8IDApIHsKLSsgICAgICAgIC8qIFRoZSBtYXhpbXVtIHRoZSBrZXJuZWwgYWxsb3dzIGZvciB0aGlzIHNpbmNlIDUuMiBpcyBMT05HX01BWCwgdXNlIHRoYXQuIChQcmV2aW91c2x5IHRoaW5nIHdoZXJlCi0rICAgICAgICAgKiBkaWZmZXJlbnQgYnV0IHRoZSBvcGVyYXRpb24gd291bGQgZmFpbCBzaWxlbnRseS4pICovCi0rICAgICAgICBpZiAoYXNwcmludGYoJnQsICIlbGlcbiIsIExPTkdfTUFYKSA8IDApIHsKLSAgICAgICAgICAgICAgICAgbG9nX29vbSgpOwotICAgICAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgICB9CmRpZmYgLS1naXQgYS9wb2t5L21ldGEvcmVjaXBlcy1jb3JlL3N5c3RlbWQvc3lzdGVtZC8wMDAxLW5ldHdvcmtkLWZpeC1saW5rLXVwLnBhdGNoIGIvcG9reS9tZXRhL3JlY2lwZXMtY29yZS9zeXN0ZW1kL3N5c3RlbWQvMDAwMS1uZXR3b3JrZC1maXgtbGluay11cC5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNGM3YTBhMy4uMDAwMDAwMAotLS0gYS9wb2t5L21ldGEvcmVjaXBlcy1jb3JlL3N5c3RlbWQvc3lzdGVtZC8wMDAxLW5ldHdvcmtkLWZpeC1saW5rLXVwLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsNjYgKzAsMCBAQAotRnJvbSA2YmQ3NmQyZDRmZjEzMGRlY2QzYWExM2UwYzJkYmZkNTZmZjhkN2I3IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogU3VzYW50IFNhaGFuaSA8c3NhaGFuaUBnbWFpbC5jb20+Ci1EYXRlOiBUaHUsIDkgTWF5IDIwMTkgMDc6MzU6MzUgKzA1MzAKLVN1YmplY3Q6IFtQQVRDSF0gbmV0d29ya2Q6IGZpeCBsaW5rX3VwKCkgKCMxMjUwNSkKLQotRmlsbHVwIElGTEFfSU5FVDZfQUREUl9HRU5fTU9ERSB3aGlsZSB3ZSBkbyBsaW5rX3VwLgotCi1GaXhlcyB0aGUgZm9sbG93aW5nIGVycm9yOgotYGBgCi1kdW1teS10ZXN0OiBDb3VsZCBub3QgYnJpbmcgdXAgaW50ZXJmYWNlOiBJbnZhbGlkIGFyZ3VtZW50Ci1gYGAKLQotQWZ0ZXIgcmVhZGluZyB0aGUga2VybmVsIGNvZGUgd2hlbiB3ZSBkbyBhIGxpbmsgdXAKLWBgYAotbmV0L2NvcmUvcnRuZXRsaW5rLmMKLUlGTEFfQUZfU1BFQwotIGFmX29wcy0+c2V0X2xpbmtfYWYoZGV2LCBhZik7Ci0gIGluZXQ2X3NldF9saW5rX2FmCi0gICBpZiAodGJbSUZMQV9JTkVUNl9BRERSX0dFTl9NT0RFXSkKLSAgICAgICAgICAgICBIZXJlIGl0IGxvb2tzIGZvciBJRkxBX0lORVQ2X0FERFJfR0VOX01PREUKLWBgYAotU2luY2UgbGluayB1cCB3ZSBkaWRuJ3QgZmlsbGluZyB1cCB0aGF0IGl0J3MgZmFpbGluZy4KLQotQ2xvc2VzICMxMjUwNC4KLQotU2lnbmVkLW9mZi1ieTogUmljYXJkbyBSaWJhbGRhIERlbGdhZG8gPHJpY2FyZG9AcmliYWxkYS5jb20+Ci0KLVVwc3RyZWFtLVN0YXR1czogQmFja3BvcnQgW2h0dHBzOi8vZ2l0aHViLmNvbS9zeXN0ZW1kL3N5c3RlbWQvY29tbWl0LzRlYjA4NmEzODcxMmVhOThmYWY0MWUwNzViODQ1NTViMTFiNTQzNjIucGF0Y2hdCi0KLS0tLQotIHNyYy9uZXR3b3JrL25ldHdvcmtkLWxpbmsuYyB8IDE1ICsrKysrKysrKysrKysrKwotIDEgZmlsZSBjaGFuZ2VkLCAxNSBpbnNlcnRpb25zKCspCi0KLWRpZmYgLS1naXQgYS9zcmMvbmV0d29yay9uZXR3b3JrZC1saW5rLmMgYi9zcmMvbmV0d29yay9uZXR3b3JrZC1saW5rLmMKLWluZGV4IGU0NjZiOTY3OTIuLjA0MjQ5NjE3M2MgMTAwNjQ0Ci0tLS0gYS9zcmMvbmV0d29yay9uZXR3b3JrZC1saW5rLmMKLSsrKyBiL3NyYy9uZXR3b3JrL25ldHdvcmtkLWxpbmsuYwotQEAgLTIwMzQsNiArMjAzNCw4IEBAIHN0YXRpYyBpbnQgbGlua191cChMaW5rICpsaW5rKSB7Ci0gICAgICAgICB9Ci0gCi0gICAgICAgICBpZiAobGlua19pcHY2X2VuYWJsZWQobGluaykpIHsKLSsgICAgICAgICAgICAgICAgdWludDhfdCBpcHY2bGxfbW9kZTsKLSsKLSAgICAgICAgICAgICAgICAgciA9IHNkX25ldGxpbmtfbWVzc2FnZV9vcGVuX2NvbnRhaW5lcihyZXEsIElGTEFfQUZfU1BFQyk7Ci0gICAgICAgICAgICAgICAgIGlmIChyIDwgMCkKLSAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gbG9nX2xpbmtfZXJyb3JfZXJybm8obGluaywgciwgIkNvdWxkIG5vdCBvcGVuIElGTEFfQUZfU1BFQyBjb250YWluZXI6ICVtIik7Ci1AQCAtMjA0OSw2ICsyMDUxLDE5IEBAIHN0YXRpYyBpbnQgbGlua191cChMaW5rICpsaW5rKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gbG9nX2xpbmtfZXJyb3JfZXJybm8obGluaywgciwgIkNvdWxkIG5vdCBhcHBlbmQgSUZMQV9JTkVUNl9UT0tFTjogJW0iKTsKLSAgICAgICAgICAgICAgICAgfQotIAotKyAgICAgICAgICAgICAgICBpZiAoIWxpbmtfaXB2NmxsX2VuYWJsZWQobGluaykpCi0rICAgICAgICAgICAgICAgICAgICAgICAgaXB2NmxsX21vZGUgPSBJTjZfQUREUl9HRU5fTU9ERV9OT05FOwotKyAgICAgICAgICAgICAgICBlbHNlIGlmIChzeXNjdGxfcmVhZF9pcF9wcm9wZXJ0eShBRl9JTkVUNiwgbGluay0+aWZuYW1lLCAic3RhYmxlX3NlY3JldCIsIE5VTEwpIDwgMCkKLSsgICAgICAgICAgICAgICAgICAgICAgICAvKiBUaGUgZmlsZSBtYXkgbm90IGV4aXN0LiBBbmQgZXZlbnQgaWYgaXQgZXhpc3RzLCB3aGVuIHN0YWJsZV9zZWNyZXQgaXMgdW5zZXQsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICogcmVhZGluZyB0aGUgZmlsZSBmYWlscyB3aXRoIEVJTy4gKi8KLSsgICAgICAgICAgICAgICAgICAgICAgICBpcHY2bGxfbW9kZSA9IElONl9BRERSX0dFTl9NT0RFX0VVSTY0OwotKyAgICAgICAgICAgICAgICBlbHNlCi0rICAgICAgICAgICAgICAgICAgICAgICAgaXB2NmxsX21vZGUgPSBJTjZfQUREUl9HRU5fTU9ERV9TVEFCTEVfUFJJVkFDWTsKLSsKLSsgICAgICAgICAgICAgICAgciA9IHNkX25ldGxpbmtfbWVzc2FnZV9hcHBlbmRfdTgocmVxLCBJRkxBX0lORVQ2X0FERFJfR0VOX01PREUsIGlwdjZsbF9tb2RlKTsKLSsgICAgICAgICAgICAgICAgaWYgKHIgPCAwKQotKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBsb2dfbGlua19lcnJvcl9lcnJubyhsaW5rLCByLCAiQ291bGQgbm90IGFwcGVuZCBJRkxBX0lORVQ2X0FERFJfR0VOX01PREU6ICVtIik7Ci0rCi0gICAgICAgICAgICAgICAgIHIgPSBzZF9uZXRsaW5rX21lc3NhZ2VfY2xvc2VfY29udGFpbmVyKHJlcSk7Ci0gICAgICAgICAgICAgICAgIGlmIChyIDwgMCkKLSAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gbG9nX2xpbmtfZXJyb3JfZXJybm8obGluaywgciwgIkNvdWxkIG5vdCBjbG9zZSBBRl9JTkVUNiBjb250YWluZXI6ICVtIik7CmRpZmYgLS1naXQgYS9wb2t5L21ldGEvcmVjaXBlcy1jb3JlL3N5c3RlbWQvc3lzdGVtZC8wMDAxLXJlc29sdmVkLUZpeC1pbmNvcnJlY3QtdXNlLW9mLU9wZW5TU0wtQlVGX01FTS5wYXRjaCBiL3Bva3kvbWV0YS9yZWNpcGVzLWNvcmUvc3lzdGVtZC9zeXN0ZW1kLzAwMDEtcmVzb2x2ZWQtRml4LWluY29ycmVjdC11c2Utb2YtT3BlblNTTC1CVUZfTUVNLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmMGFlMWRiLi4wMDAwMDAwCi0tLSBhL3Bva3kvbWV0YS9yZWNpcGVzLWNvcmUvc3lzdGVtZC9zeXN0ZW1kLzAwMDEtcmVzb2x2ZWQtRml4LWluY29ycmVjdC11c2Utb2YtT3BlblNTTC1CVUZfTUVNLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsNDEgKzAsMCBAQAotRnJvbSAxOGJkZGVhYWYyMjVkNWJlY2ZjMTBjZDJjNmExZDAzN2M5MDU3NGEyIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogVG9tYXMgTXJheiA8dG1yYXpAZmVkb3JhcHJvamVjdC5vcmc+Ci1EYXRlOiBUdWUsIDExIEp1biAyMDE5IDE1OjEwOjIxICswMjAwCi1TdWJqZWN0OiBbUEFUQ0hdIHJlc29sdmVkOiBGaXggaW5jb3JyZWN0IHVzZSBvZiBPcGVuU1NMIEJVRl9NRU0KLQotRml4ZXM6ICMxMjc2MwotVXBzdHJlYW0tU3RhdHVzOiBCYWNrcG9ydCBbTm90IHlldCByZWxlYXNlZF0KLSAgaHR0cHM6Ly9naXRodWIuY29tL3N5c3RlbWQvc3lzdGVtZC9jb21taXQvMThiZGRlYWFmMjI1ZDViZWNmYzEwY2QyYzZhMWQwMzdjOTA1NzRhMgotU2lnbmVkLW9mZi1ieTogQWxleCBLaWVybmFuIDxhbGV4LmtpZXJuYW5AZ21haWwuY29tPgotLS0tCi0gc3JjL3Jlc29sdmUvcmVzb2x2ZWQtZG5zdGxzLW9wZW5zc2wuYyB8IDUgKysrKy0KLSAxIGZpbGUgY2hhbmdlZCwgNCBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCi0KLWRpZmYgLS1naXQgYS9zcmMvcmVzb2x2ZS9yZXNvbHZlZC1kbnN0bHMtb3BlbnNzbC5jIGIvc3JjL3Jlc29sdmUvcmVzb2x2ZWQtZG5zdGxzLW9wZW5zc2wuYwotaW5kZXggZjI2OWU0ZDY0ODdmLi41ZDkyMjMwMDc1ODEgMTAwNjQ0Ci0tLS0gYS9zcmMvcmVzb2x2ZS9yZXNvbHZlZC1kbnN0bHMtb3BlbnNzbC5jCi0rKysgYi9zcmMvcmVzb2x2ZS9yZXNvbHZlZC1kbnN0bHMtb3BlbnNzbC5jCi1AQCAtNiw2ICs2LDcgQEAKLSAKLSAjaW5jbHVkZSA8b3BlbnNzbC9iaW8uaD4KLSAjaW5jbHVkZSA8b3BlbnNzbC9lcnIuaD4KLSsjaW5jbHVkZSA8c3RyaW5nLmg+Ci0gCi0gI2luY2x1ZGUgImlvLXV0aWwuaCIKLSAjaW5jbHVkZSAicmVzb2x2ZWQtZG5zLXN0cmVhbS5oIgotQEAgLTM0LDkgKzM1LDExIEBAIHN0YXRpYyBpbnQgZG5zdGxzX2ZsdXNoX3dyaXRlX2J1ZmZlcihEbnNTdHJlYW0gKnN0cmVhbSkgewotICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBzczsKLSAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICBzdHJlYW0tPmRuc3Rsc19kYXRhLndyaXRlX2J1ZmZlci0+bGVuZ3RoIC09IHNzOwotLSAgICAgICAgICAgICAgICAgICAgICAgIHN0cmVhbS0+ZG5zdGxzX2RhdGEud3JpdGVfYnVmZmVyLT5kYXRhICs9IHNzOwotIAotICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChzdHJlYW0tPmRuc3Rsc19kYXRhLndyaXRlX2J1ZmZlci0+bGVuZ3RoID4gMCkgewotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWVtbW92ZShzdHJlYW0tPmRuc3Rsc19kYXRhLndyaXRlX2J1ZmZlci0+ZGF0YSwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RyZWFtLT5kbnN0bHNfZGF0YS53cml0ZV9idWZmZXItPmRhdGEgKyBzcywKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RyZWFtLT5kbnN0bHNfZGF0YS53cml0ZV9idWZmZXItPmxlbmd0aCk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJlYW0tPmRuc3Rsc19ldmVudHMgfD0gRVBPTExPVVQ7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gLUVBR0FJTjsKLSAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0tLSAKLTIuMTcuMQotCmRpZmYgLS1naXQgYS9wb2t5L21ldGEvcmVjaXBlcy1jb3JlL3N5c3RlbWQvc3lzdGVtZC8wMDAyLW5ldHdvcmstZG8tbm90LXNlbmQtaXB2Ni5wYXRjaCBiL3Bva3kvbWV0YS9yZWNpcGVzLWNvcmUvc3lzdGVtZC9zeXN0ZW1kLzAwMDItbmV0d29yay1kby1ub3Qtc2VuZC1pcHY2LnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyNTY1MzE0Li4wMDAwMDAwCi0tLSBhL3Bva3kvbWV0YS9yZWNpcGVzLWNvcmUvc3lzdGVtZC9zeXN0ZW1kLzAwMDItbmV0d29yay1kby1ub3Qtc2VuZC1pcHY2LnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsOTYgKzAsMCBAQAotRnJvbSBiNWM0ZWI4MTgxMDExMjdhNjA2ODQ5ZTgyMjkzN2IxNWI4NDk3Yzc1IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogWXUgV2F0YW5hYmUgPHdhdGFuYWJlLnl1K2dpdGh1YkBnbWFpbC5jb20+Ci1EYXRlOiBUaHUsIDkgTWF5IDIwMTkgMTQ6Mzk6NDYgKzA5MDAKLVN1YmplY3Q6IFtQQVRDSF0gbmV0d29yazogZG8gbm90IHNlbmQgaXB2NiB0b2tlbiB0byBrZXJuZWwKLQotV2UgZGlzYWJsZWQga2VybmVsIFJBIHN1cHBvcnQuIFRoZW4sIHdlIHNob3VsZCBub3Qgc2VuZAotSUZMQV9JTkVUNl9UT0tFTi4KLVRodXMsIHdlIGRvIG5vdCBuZWVkIHRvIHNlbmQgSUZMQV9JTkVUNl9BRERSX0dFTl9NT0RFIHR3aWNlLgotCi1Gb2xsb3ctdXAgZm9yIDBlMmZkYjgzYmI1ZTIyMDQ3ZTBjN2NjMDU4YjQxNWQwZTkzZjAyY2YgYW5kCi00ZWIwODZhMzg3MTJlYTk4ZmFmNDFlMDc1Yjg0NTU1YjExYjU0MzYyLgotCi1TaWduZWQtb2ZmLWJ5OiBSaWNhcmRvIFJpYmFsZGEgRGVsZ2FkbyA8cmljYXJkb0ByaWJhbGRhLmNvbT4KLQotVXBzdHJlYW0tU3RhdHVzOiBCYWNrcG9ydCBbaHR0cHM6Ly9naXRodWIuY29tL3N5c3RlbWQvc3lzdGVtZC9jb21taXQvOWY2ZTgyZTZlYjNiNmU3M2Q2NmQwMGQxZDZlZWU2MDY5MWZiNzAyZl0KLQotLS0tCi0gc3JjL25ldHdvcmsvbmV0d29ya2QtbGluay5jIHwgNTEgKysrKystLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIDEgZmlsZSBjaGFuZ2VkLCA2IGluc2VydGlvbnMoKyksIDQ1IGRlbGV0aW9ucygtKQotCi1kaWZmIC0tZ2l0IGEvc3JjL25ldHdvcmsvbmV0d29ya2QtbGluay5jIGIvc3JjL25ldHdvcmsvbmV0d29ya2QtbGluay5jCi1pbmRleCAwNDI0OTYxNzNjLi5jNDlkYmEzM2RhIDEwMDY0NAotLS0tIGEvc3JjL25ldHdvcmsvbmV0d29ya2QtbGluay5jCi0rKysgYi9zcmMvbmV0d29yay9uZXR3b3JrZC1saW5rLmMKLUBAIC0xOTQwLDYgKzE5NDAsOSBAQCBzdGF0aWMgaW50IGxpbmtfY29uZmlndXJlX2FkZHJnZW5fbW9kZShMaW5rICpsaW5rKSB7Ci0gICAgICAgICBhc3NlcnQobGluay0+bWFuYWdlcik7Ci0gICAgICAgICBhc3NlcnQobGluay0+bWFuYWdlci0+cnRubCk7Ci0gCi0rICAgICAgICBpZiAoIXNvY2tldF9pcHY2X2lzX3N1cHBvcnRlZCgpKQotKyAgICAgICAgICAgICAgICByZXR1cm4gMDsKLSsKLSAgICAgICAgIGxvZ19saW5rX2RlYnVnKGxpbmssICJTZXR0aW5nIGFkZHJlc3MgZ2VubW9kZSBmb3IgbGluayIpOwotIAotICAgICAgICAgciA9IHNkX3J0bmxfbWVzc2FnZV9uZXdfbGluayhsaW5rLT5tYW5hZ2VyLT5ydG5sLCAmcmVxLCBSVE1fU0VUTElOSywgbGluay0+aWZpbmRleCk7Ci1AQCAtMjAzMyw0NiArMjAzNiw2IEBAIHN0YXRpYyBpbnQgbGlua191cChMaW5rICpsaW5rKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGxvZ19saW5rX2Vycm9yX2Vycm5vKGxpbmssIHIsICJDb3VsZCBub3Qgc2V0IE1BQyBhZGRyZXNzOiAlbSIpOwotICAgICAgICAgfQotIAotLSAgICAgICAgaWYgKGxpbmtfaXB2Nl9lbmFibGVkKGxpbmspKSB7Ci0tICAgICAgICAgICAgICAgIHVpbnQ4X3QgaXB2NmxsX21vZGU7Ci0tCi0tICAgICAgICAgICAgICAgIHIgPSBzZF9uZXRsaW5rX21lc3NhZ2Vfb3Blbl9jb250YWluZXIocmVxLCBJRkxBX0FGX1NQRUMpOwotLSAgICAgICAgICAgICAgICBpZiAociA8IDApCi0tICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGxvZ19saW5rX2Vycm9yX2Vycm5vKGxpbmssIHIsICJDb3VsZCBub3Qgb3BlbiBJRkxBX0FGX1NQRUMgY29udGFpbmVyOiAlbSIpOwotLQotLSAgICAgICAgICAgICAgICAvKiBpZiB0aGUga2VybmVsIGxhY2tzIGlwdjYgc3VwcG9ydCBzZXR0aW5nIElGRl9VUCBmYWlscyBpZiBhbnkgaXB2NiBvcHRpb25zIGFyZSBwYXNzZWQgKi8KLS0gICAgICAgICAgICAgICAgciA9IHNkX25ldGxpbmtfbWVzc2FnZV9vcGVuX2NvbnRhaW5lcihyZXEsIEFGX0lORVQ2KTsKLS0gICAgICAgICAgICAgICAgaWYgKHIgPCAwKQotLSAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBsb2dfbGlua19lcnJvcl9lcnJubyhsaW5rLCByLCAiQ291bGQgbm90IG9wZW4gQUZfSU5FVDYgY29udGFpbmVyOiAlbSIpOwotLQotLSAgICAgICAgICAgICAgICBpZiAoIWluX2FkZHJfaXNfbnVsbChBRl9JTkVUNiwgJmxpbmstPm5ldHdvcmstPmlwdjZfdG9rZW4pKSB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgciA9IHNkX25ldGxpbmtfbWVzc2FnZV9hcHBlbmRfaW42X2FkZHIocmVxLCBJRkxBX0lORVQ2X1RPS0VOLCAmbGluay0+bmV0d29yay0+aXB2Nl90b2tlbi5pbjYpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGlmIChyIDwgMCkKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBsb2dfbGlua19lcnJvcl9lcnJubyhsaW5rLCByLCAiQ291bGQgbm90IGFwcGVuZCBJRkxBX0lORVQ2X1RPS0VOOiAlbSIpOwotLSAgICAgICAgICAgICAgICB9Ci0tCi0tICAgICAgICAgICAgICAgIGlmICghbGlua19pcHY2bGxfZW5hYmxlZChsaW5rKSkKLS0gICAgICAgICAgICAgICAgICAgICAgICBpcHY2bGxfbW9kZSA9IElONl9BRERSX0dFTl9NT0RFX05PTkU7Ci0tICAgICAgICAgICAgICAgIGVsc2UgaWYgKHN5c2N0bF9yZWFkX2lwX3Byb3BlcnR5KEFGX0lORVQ2LCBsaW5rLT5pZm5hbWUsICJzdGFibGVfc2VjcmV0IiwgTlVMTCkgPCAwKQotLSAgICAgICAgICAgICAgICAgICAgICAgIC8qIFRoZSBmaWxlIG1heSBub3QgZXhpc3QuIEFuZCBldmVudCBpZiBpdCBleGlzdHMsIHdoZW4gc3RhYmxlX3NlY3JldCBpcyB1bnNldCwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgKiByZWFkaW5nIHRoZSBmaWxlIGZhaWxzIHdpdGggRUlPLiAqLwotLSAgICAgICAgICAgICAgICAgICAgICAgIGlwdjZsbF9tb2RlID0gSU42X0FERFJfR0VOX01PREVfRVVJNjQ7Ci0tICAgICAgICAgICAgICAgIGVsc2UKLS0gICAgICAgICAgICAgICAgICAgICAgICBpcHY2bGxfbW9kZSA9IElONl9BRERSX0dFTl9NT0RFX1NUQUJMRV9QUklWQUNZOwotLQotLSAgICAgICAgICAgICAgICByID0gc2RfbmV0bGlua19tZXNzYWdlX2FwcGVuZF91OChyZXEsIElGTEFfSU5FVDZfQUREUl9HRU5fTU9ERSwgaXB2NmxsX21vZGUpOwotLSAgICAgICAgICAgICAgICBpZiAociA8IDApCi0tICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGxvZ19saW5rX2Vycm9yX2Vycm5vKGxpbmssIHIsICJDb3VsZCBub3QgYXBwZW5kIElGTEFfSU5FVDZfQUREUl9HRU5fTU9ERTogJW0iKTsKLS0KLS0gICAgICAgICAgICAgICAgciA9IHNkX25ldGxpbmtfbWVzc2FnZV9jbG9zZV9jb250YWluZXIocmVxKTsKLS0gICAgICAgICAgICAgICAgaWYgKHIgPCAwKQotLSAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBsb2dfbGlua19lcnJvcl9lcnJubyhsaW5rLCByLCAiQ291bGQgbm90IGNsb3NlIEFGX0lORVQ2IGNvbnRhaW5lcjogJW0iKTsKLS0KLS0gICAgICAgICAgICAgICAgciA9IHNkX25ldGxpbmtfbWVzc2FnZV9jbG9zZV9jb250YWluZXIocmVxKTsKLS0gICAgICAgICAgICAgICAgaWYgKHIgPCAwKQotLSAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBsb2dfbGlua19lcnJvcl9lcnJubyhsaW5rLCByLCAiQ291bGQgbm90IGNsb3NlIElGTEFfQUZfU1BFQyBjb250YWluZXI6ICVtIik7Ci0tICAgICAgICB9Ci0tCi0gICAgICAgICByID0gbmV0bGlua19jYWxsX2FzeW5jKGxpbmstPm1hbmFnZXItPnJ0bmwsIE5VTEwsIHJlcSwgbGlua191cF9oYW5kbGVyLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaW5rX25ldGxpbmtfZGVzdHJveV9jYWxsYmFjaywgbGluayk7Ci0gICAgICAgICBpZiAociA8IDApCi1AQCAtMzIwOCwxMSArMzE3MSw5IEBAIHN0YXRpYyBpbnQgbGlua19jb25maWd1cmUoTGluayAqbGluaykgewotICAgICAgICAgaWYgKHIgPCAwKQotICAgICAgICAgICAgICAgICByZXR1cm4gcjsKLSAKLS0gICAgICAgIGlmIChzb2NrZXRfaXB2Nl9pc19zdXBwb3J0ZWQoKSkgewotLSAgICAgICAgICAgICAgICByID0gbGlua19jb25maWd1cmVfYWRkcmdlbl9tb2RlKGxpbmspOwotLSAgICAgICAgICAgICAgICBpZiAociA8IDApCi0tICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHI7Ci0tICAgICAgICB9Ci0rICAgICAgICByID0gbGlua19jb25maWd1cmVfYWRkcmdlbl9tb2RlKGxpbmspOwotKyAgICAgICAgaWYgKHIgPCAwKQotKyAgICAgICAgICAgICAgICByZXR1cm4gcjsKLSAKLSAgICAgICAgIHJldHVybiBsaW5rX2NvbmZpZ3VyZV9hZnRlcl9zZXR0aW5nX210dShsaW5rKTsKLSB9CmRpZmYgLS1naXQgYS9wb2t5L21ldGEvcmVjaXBlcy1jb3JlL3N5c3RlbWQvc3lzdGVtZC8wMDA2LW5ldHdvcmstcmVtb3ZlLXJlZHVuYW50LWxpbmstbmFtZS1pbi1tZXNzYWdlLnBhdGNoIGIvcG9reS9tZXRhL3JlY2lwZXMtY29yZS9zeXN0ZW1kL3N5c3RlbWQvMDAwNi1uZXR3b3JrLXJlbW92ZS1yZWR1bmFudC1saW5rLW5hbWUtaW4tbWVzc2FnZS5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMzNmNDgyYS4uMDAwMDAwMAotLS0gYS9wb2t5L21ldGEvcmVjaXBlcy1jb3JlL3N5c3RlbWQvc3lzdGVtZC8wMDA2LW5ldHdvcmstcmVtb3ZlLXJlZHVuYW50LWxpbmstbmFtZS1pbi1tZXNzYWdlLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsNDEgKzAsMCBAQAotRnJvbSA5ZTY5NDA4NThjN2RiZGQ1NmIyOTdiZGY0OWY1OGQ2MjNlMzQzMGI3IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogPT9VVEYtOD9xP1piaWduaWV3PTIwSj1DND05OWRyemVqZXdza2ktU3ptZWs/PSA8emJ5c3pla0Bpbi53YXcucGw+Ci1EYXRlOiBUdWUsIDcgTWF5IDIwMTkgMTM6NDY6NTUgKzAyMDAKLVN1YmplY3Q6IFtQQVRDSF0gbmV0d29yazogcmVtb3ZlIHJlZHVuYW50IGxpbmsgbmFtZSBpbiBtZXNzYWdlCi0KLUZpeGVzICMxMjQ1NC4KLQotZ2NjIHdhcyBjb21wbGFpbmluZyB0aGF0IHRoZSBsaW5rLT5pZm5hbWUgYXJndW1lbnQgaXMgTlVMTC4gQWRkaW5nCi1hc3NlcnQobGluay0+aWZuYW1lKSByaWdodCBiZWZvcmUgdGhlIGNhbGwgaGFzIG5vIGVmZmVjdC4gSXQgc2VlbXMgdGhhdAotZ2NjIGlzIGNvbmZ1c2VkIGJ5IHRoZSBmYWN0IHRoYXQgbG9nX2xpbmtfd2FybmluZ19lcnJubygpIGludGVybmFsbHkKLWNhbGxzIGxvZ19vYmplY3QoKSwgd2l0aCBsaW5rLT5pZm5hbWUgcGFzc2VkIGFzIHRoZSBvYmplY3QuIGxvZ19vYmplY3QoKQotaXMgYWxzbyBhIG1hY3JvIGFuZCBpcyBkb2VzIGEgY2hlY2sgd2hldGhlciB0aGUgcGFzc2VkIG9iamVjdCBpcyBOVUxMLgotU28gd2UgaGF2ZSBhIGNoZWNrIGlmIHNvbWV0aGluZyBpcyBOVUxMIHJpZ2h0IG5leHQgYW4gdW5jb25kaXRpb25hbCB1c2UKLW9mIGl0IHdoZXJlIGl0IGNhbm5vdCBiZSBOVUxMLiBJIHRoaW5rIGl0J3MgYSBidWcgaW4gZ2NjLgotCi1Bbnl3YXksIHdlIGRvbid0IG5lZWQgdG8gdXNlIGxpbmstPmlmbmFtZSBoZXJlLiBsb2dfb2JqZWN0KCkgYWxyZWFkeSBwcmVwZW5kcwotdGhlIG9iamVjdCBuYW1lIHRvIHRoZSBtZXNzYWdlLgotCi1TaWduZWQtb2ZmLWJ5OiBLaGVtIFJhaiA8cmFqLmtoZW1AZ21haWwuY29tPgotVXBzdHJlYW0tU3RhdHVzOiBiYWNrcG9ydCBbaHR0cHM6Ly9naXRodWIuY29tL3N5c3RlbWQvc3lzdGVtZC9jb21taXQvYzk4YjM1NDUwMDhkOGU5ODRhYjQ1NmRjZjc5Nzg3NDE4ZmNiZmUxM10KLS0tLQotIHNyYy9uZXR3b3JrL25ldHdvcmtkLWxpbmsuYyB8IDMgKy0tCi0gMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAyIGRlbGV0aW9ucygtKQotCi1kaWZmIC0tZ2l0IGEvc3JjL25ldHdvcmsvbmV0d29ya2QtbGluay5jIGIvc3JjL25ldHdvcmsvbmV0d29ya2QtbGluay5jCi1pbmRleCAzZTMzNGM4ZDI5Li5hMTU4YzAxYmJkIDEwMDY0NAotLS0tIGEvc3JjL25ldHdvcmsvbmV0d29ya2QtbGluay5jCi0rKysgYi9zcmMvbmV0d29yay9uZXR3b3JrZC1saW5rLmMKLUBAIC0zMjEsOCArMzIxLDcgQEAgc3RhdGljIGludCBsaW5rX2VuYWJsZV9pcHY2KExpbmsgKmxpbmspIHsKLSAKLSAgICAgICAgIHIgPSBzeXNjdGxfd3JpdGVfaXBfcHJvcGVydHlfYm9vbGVhbihBRl9JTkVUNiwgbGluay0+aWZuYW1lLCAiZGlzYWJsZV9pcHY2IiwgZGlzYWJsZWQpOwotICAgICAgICAgaWYgKHIgPCAwKQotLSAgICAgICAgICAgICAgICBsb2dfbGlua193YXJuaW5nX2Vycm5vKGxpbmssIHIsICJDYW5ub3QgJXMgSVB2NiBmb3IgaW50ZXJmYWNlICVzOiAlbSIsCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5hYmxlX2Rpc2FibGUoIWRpc2FibGVkKSwgbGluay0+aWZuYW1lKTsKLSsgICAgICAgICAgICAgICAgbG9nX2xpbmtfd2FybmluZ19lcnJubyhsaW5rLCByLCAiQ2Fubm90ICVzIElQdjY6ICVtIiwgZW5hYmxlX2Rpc2FibGUoIWRpc2FibGVkKSk7Ci0gICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgIGxvZ19saW5rX2luZm8obGluaywgIklQdjYgc3VjY2Vzc2Z1bGx5ICVzZCIsIGVuYWJsZV9kaXNhYmxlKCFkaXNhYmxlZCkpOwotIAotLS0gCi0yLjIxLjAKLQpkaWZmIC0tZ2l0IGEvcG9reS9tZXRhL3JlY2lwZXMtY29yZS9zeXN0ZW1kL3N5c3RlbWRfMjQyLmJiIGIvcG9reS9tZXRhL3JlY2lwZXMtY29yZS9zeXN0ZW1kL3N5c3RlbWRfMjQyLmJiCmluZGV4IGIzNjhjYTguLjJjMTAxY2IgMTAwNjQ0Ci0tLSBhL3Bva3kvbWV0YS9yZWNpcGVzLWNvcmUvc3lzdGVtZC9zeXN0ZW1kXzI0Mi5iYgorKysgYi9wb2t5L21ldGEvcmVjaXBlcy1jb3JlL3N5c3RlbWQvc3lzdGVtZF8yNDIuYmIKQEAgLTIyLDEyICsyMiw3IEBACiAgICAgICAgICAgIGZpbGU6Ly8wMDAzLWltcGxtZW50LXN5c3RlbWQtc3lzdi1pbnN0YWxsLWZvci1PRS5wYXRjaCBcCiAgICAgICAgICAgIGZpbGU6Ly8wMDA0LXJ1bGVzLXdoaXRlbGlzdC1oZC1kZXZpY2VzLnBhdGNoIFwKICAgICAgICAgICAgZmlsZTovLzAwMDUtcnVsZXMtd2F0Y2gtbWV0YWRhdGEtY2hhbmdlcy1pbi1pZGUtZGV2aWNlcy5wYXRjaCBcCi0gICAgICAgICAgIGZpbGU6Ly8wMDA2LW5ldHdvcmstcmVtb3ZlLXJlZHVuYW50LWxpbmstbmFtZS1pbi1tZXNzYWdlLnBhdGNoIFwKICAgICAgICAgICAgZmlsZTovLzk5LWRlZmF1bHQucHJlc2V0IFwKLSAgICAgICAgICAgZmlsZTovLzAwMDEtcmVzb2x2ZWQtRml4LWluY29ycmVjdC11c2Utb2YtT3BlblNTTC1CVUZfTUVNLnBhdGNoIFwKLSAgICAgICAgICAgZmlsZTovLzAwMDEtY29yZS1zZXQtZnMuZmlsZS1tYXgtc3lzY3RsLXRvLUxPTkdfTUFYLXJhdGhlci10aGFuLS5wYXRjaCBcCi0gICAgICAgICAgIGZpbGU6Ly8wMDAxLW5ldHdvcmtkLWZpeC1saW5rLXVwLnBhdGNoIFwKLSAgICAgICAgICAgZmlsZTovLzAwMDItbmV0d29yay1kby1ub3Qtc2VuZC1pcHY2LnBhdGNoIFwKICAgICAgICAgICAgIgogCiAjIHBhdGNoZXMgbmVlZGVkIGJ5IG11c2wKQEAgLTg4LDYgKzgzLDcgQEAKICAgICBxdW90YWNoZWNrIFwKICAgICByYW5kb21zZWVkIFwKICAgICByZXNvbHZlZCBcCisgICAgc2V0LXRpbWUtZXBvY2ggXAogICAgIHNtYWNrIFwKICAgICBzeXN1c2VycyBcCiAgICAgdGltZWRhdGVkIFwKQEAgLTE3MSw3ICsxNjcsMTIgQEAKIFBBQ0tBR0VDT05GSUdbc2VsaW51eF0gPSAiLURzZWxpbnV4PXRydWUsLURzZWxpbnV4PWZhbHNlLGxpYnNlbGludXgsaW5pdHNjcmlwdHMtc3VzaGVsbCIKIFBBQ0tBR0VDT05GSUdbc21hY2tdID0gIi1Ec21hY2s9dHJ1ZSwtRHNtYWNrPWZhbHNlIgogUEFDS0FHRUNPTkZJR1tzeXN1c2Vyc10gPSAiLURzeXN1c2Vycz10cnVlLC1Ec3lzdXNlcnM9ZmFsc2UiCi1QQUNLQUdFQ09ORklHW3RpbWUtZXBvY2hdID0gIi1EdGltZS1lcG9jaD0wLCwiCisjIFdoZW4gZW5hYmxlZCB1c2UgcmVwcm9kdWNibGUgYnVpbGQgdGltZXN0YW1wIGlmIHNldCBhcyB0aW1lIGVwb2NoLAorIyBvciBidWlsZCB0aW1lIGlmIG5vdC4gV2hlbiBkaXNhYmxlZCwgdGltZSBlcG9jaCBpcyB1bnNldC4KK2RlZiBidWlsZF9lcG9jaChkKToKKyAgICBlcG9jaCA9IGQuZ2V0VmFyKCdTT1VSQ0VfREFURV9FUE9DSCcpIG9yICItMSIKKyAgICByZXR1cm4gJy1EdGltZS1lcG9jaD0lZCcgJSBpbnQoZXBvY2gpCitQQUNLQUdFQ09ORklHW3NldC10aW1lLWVwb2NoXSA9ICIke0BidWlsZF9lcG9jaChkKX0sLUR0aW1lLWVwb2NoPTAiCiBQQUNLQUdFQ09ORklHW3RpbWVkYXRlZF0gPSAiLUR0aW1lZGF0ZWQ9dHJ1ZSwtRHRpbWVkYXRlZD1mYWxzZSIKIFBBQ0tBR0VDT05GSUdbdGltZXN5bmNkXSA9ICItRHRpbWVzeW5jZD10cnVlLC1EdGltZXN5bmNkPWZhbHNlIgogUEFDS0FHRUNPTkZJR1t1c3JtZXJnZV0gPSAiLURzcGxpdC11c3I9ZmFsc2UsLURzcGxpdC11c3I9dHJ1ZSIKQEAgLTIxMCw2ICsyMTEsNyBAQAogICAgICAgICAgICAgICAgICAgLURxdW90YWNoZWNrLXBhdGg9JHtzYmluZGlyfS9xdW90YWNoZWNrIFwKICAgICAgICAgICAgICAgICAgIC1EcXVvdGFvbi1wYXRoPSR7c2JpbmRpcn0vcXVvdGFvbiBcCiAgICAgICAgICAgICAgICAgICAtRHN1bG9naW4tcGF0aD0ke2Jhc2Vfc2JpbmRpcn0vc3Vsb2dpbiBcCisgICAgICAgICAgICAgICAgICAtRG5vbG9naW4tcGF0aD0ke2Jhc2Vfc2JpbmRpcn0vbm9sb2dpbiBcCiAgICAgICAgICAgICAgICAgICAtRHVtb3VudC1wYXRoPSR7YmFzZV9iaW5kaXJ9L3Vtb3VudCIKIAogZG9faW5zdGFsbCgpIHsKQEAgLTYxOSw2ICs2MjEsMTIgQEAKICAgICAgICAgZC5zZXRWYXIoIklOSElCSVRfVVBEQVRFUkNEX0JCQ0xBU1MiLCAiMSIpCiB9CiAKK3B5dGhvbiBkb193YXJuX211c2woKSB7CisgICAgaWYgZC5nZXRWYXIoJ1RDTElCQycpID09ICJtdXNsIjoKKyAgICAgICAgYmIud2FybigiVXNpbmcgc3lzdGVtZCB3aXRoIG11c2wgaXMgbm90IHJlY29tbWVuZGVkIHNpbmNlIGl0IGlzIG5vdCBzdXBwb3J0ZWQgdXBzdHJlYW0gYW5kIHNvbWUgcGF0Y2hlcyBhcmUga25vd24gdG8gYmUgcHJvYmxlbWF0aWMuIikKK30KK2FkZHRhc2sgd2Fybl9tdXNsIGJlZm9yZSBkb19jb25maWd1cmUKKwogQUxURVJOQVRJVkVfJHtQTn0gPSAiaGFsdCByZWJvb3Qgc2h1dGRvd24gcG93ZXJvZmYgcnVubGV2ZWwgcmVzb2x2LWNvbmYiCiAKIEFMVEVSTkFUSVZFX1RBUkdFVFtyZXNvbHYtY29uZl0gPSAiJHtzeXNjb25mZGlyfS9yZXNvbHYtY29uZi5zeXN0ZW1kIgpkaWZmIC0tZ2l0IGEvcG9reS9tZXRhL3JlY2lwZXMtZGV2dG9vbHMvYmludXRpbHMvYmludXRpbHMtY3Jvc3MtdGVzdHN1aXRlXzIuMzIuYmIgYi9wb2t5L21ldGEvcmVjaXBlcy1kZXZ0b29scy9iaW51dGlscy9iaW51dGlscy1jcm9zcy10ZXN0c3VpdGVfMi4zMi5iYgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wN2E4ZTdjCi0tLSAvZGV2L251bGwKKysrIGIvcG9reS9tZXRhL3JlY2lwZXMtZGV2dG9vbHMvYmludXRpbHMvYmludXRpbHMtY3Jvc3MtdGVzdHN1aXRlXzIuMzIuYmIKQEAgLTAsMCArMSw4NSBAQAorcmVxdWlyZSBiaW51dGlscy5pbmMKK3JlcXVpcmUgYmludXRpbHMtJHtQVn0uaW5jCisKK0JQTiA9ICJiaW51dGlscyIKKworREVQRU5EUyArPSAiZGVqYWdudS1uYXRpdmUgZXhwZWN0LW5hdGl2ZSIKK0RFUEVORFMgKz0gImJpbnV0aWxzLW5hdGl2ZSIKKworZGVsdGFzayBkb19jb21waWxlCitkZWx0YXNrIGRvX2luc3RhbGwKKworaW5oZXJpdCBub3BhY2thZ2VzCisKK2RvX2NvbmZpZ3VyZVtkaXJzXSArPSAiJHtCfS9sZCAke0J9L2JmZCIKK2RvX2NvbmZpZ3VyZSgpIHsKKyAgICAjIGNyZWF0ZSBjb25maWcuaCwgb2UgZW5hYmxlcyBpbml0ZmluaS1hcnJheSBieSBkZWZhdWx0CisgICAgZWNobyAiI2RlZmluZSBIQVZFX0lOSVRGSU5JX0FSUkFZIiA+ICR7Qn0vbGQvY29uZmlnLmgKKyAgICAjIHVzZSB0aGUgYmZkX3N0ZGludC5oIGZyb20gYmludXRpbHMtbmF0aXZlLCB0aGlzIGlzIHRoZSBzYW1lIG9mIHRoZSBvbmUKKyAgICAjIGdlbmVyYXRlZCBieSBiaW51dGlscy1jcm9zcworICAgIGNwICR7UkVDSVBFX1NZU1JPT1RfTkFUSVZFfS91c3IvaW5jbHVkZS9iZmRfc3RkaW50LmggJHtCfS9iZmQvCit9CisKKyMgdGFyZ2V0IGRlcGVuZHMKK0RFUEVORFMgKz0gInZpcnR1YWwvJHtNTFBSRUZJWH0ke1RBUkdFVF9QUkVGSVh9YmludXRpbHMiCitERVBFTkRTICs9ICJ2aXJ0dWFsLyR7TUxQUkVGSVh9JHtUQVJHRVRfUFJFRklYfWdjYyIKK0RFUEVORFMgKz0gInZpcnR1YWwvJHtNTFBSRUZJWH0ke1RBUkdFVF9QUkVGSVh9Y29tcGlsZXJsaWJzIgorREVQRU5EUyArPSAidmlydHVhbC8ke01MUFJFRklYfWxpYmMiCisKK3B5dGhvbiBjaGVja19wcmVwYXJlKCkgeworICAgIGRlZiBzdWZmaXhfc3lzKHN5cyk6CisgICAgICAgIGlmIHN5cy5lbmRzd2l0aCgiLWxpbnV4Iik6CisgICAgICAgICAgICByZXR1cm4gc3lzICsgIi1nbnUiCisgICAgICAgIHJldHVybiBzeXMKKworICAgIGRlZiBnZW5lcmF0ZV9zaXRlX2V4cChkLCBzdWl0ZSk6CisgICAgICAgIGNvbnRlbnQgPSBbXQorICAgICAgICBjb250ZW50LmFwcGVuZCgnc2V0IHNyY2RpciAiezB9L3sxfSInLmZvcm1hdChkLmdldFZhcigiUyIpLCBzdWl0ZSkpCisgICAgICAgIGNvbnRlbnQuYXBwZW5kKCdzZXQgb2JqZGlyICJ7MH0vezF9IicuZm9ybWF0KGQuZ2V0VmFyKCJCIiksIHN1aXRlKSkKKyAgICAgICAgY29udGVudC5hcHBlbmQoJ3NldCBidWlsZF9hbGlhcyAiezB9IicuZm9ybWF0KGQuZ2V0VmFyKCJCVUlMRF9TWVMiKSkpCisgICAgICAgIGNvbnRlbnQuYXBwZW5kKCdzZXQgYnVpbGRfdHJpcGxldCB7MH0nLmZvcm1hdChkLmdldFZhcigiQlVJTERfU1lTIikpKQorICAgICAgICAjIHVzZSBCVUlMRCBoZXJlIHNpbmNlIEhPU1Q9VEFSR0VUCisgICAgICAgIGNvbnRlbnQuYXBwZW5kKCdzZXQgaG9zdF9hbGlhcyAiezB9IicuZm9ybWF0KGQuZ2V0VmFyKCJCVUlMRF9TWVMiKSkpCisgICAgICAgIGNvbnRlbnQuYXBwZW5kKCdzZXQgaG9zdF90cmlwbGV0IHswfScuZm9ybWF0KGQuZ2V0VmFyKCJCVUlMRF9TWVMiKSkpCisgICAgICAgIGNvbnRlbnQuYXBwZW5kKCdzZXQgdGFyZ2V0X2FsaWFzICJ7MH0iJy5mb3JtYXQoZC5nZXRWYXIoIlRBUkdFVF9TWVMiKSkpCisgICAgICAgIGNvbnRlbnQuYXBwZW5kKCdzZXQgdGFyZ2V0X3RyaXBsZXQgezB9Jy5mb3JtYXQoc3VmZml4X3N5cyhkLmdldFZhcigiVEFSR0VUX1NZUyIpKSkpCisgICAgICAgIGNvbnRlbnQuYXBwZW5kKCJzZXQgZGV2ZWxvcG1lbnQgdHJ1ZSIpCisgICAgICAgIGNvbnRlbnQuYXBwZW5kKCJzZXQgZXhwZXJpbWVudGFsIGZhbHNlIikKKworICAgICAgICBjb250ZW50LmFwcGVuZChkLmV4cGFuZCgnc2V0IENYWEZJTFQgIiR7VEFSR0VUX1BSRUZJWH1jKytmaWx0IicpKQorICAgICAgICBjb250ZW50LmFwcGVuZChkLmV4cGFuZCgnc2V0IENDICIke1RBUkdFVF9QUkVGSVh9Z2NjIC0tc3lzcm9vdD0ke1NUQUdJTkdfRElSX1RBUkdFVH0gJHtUVU5FX0NDQVJHU30iJykpCisgICAgICAgIGNvbnRlbnQuYXBwZW5kKGQuZXhwYW5kKCdzZXQgQ1hYICIke1RBUkdFVF9QUkVGSVh9ZysrIC0tc3lzcm9vdD0ke1NUQUdJTkdfRElSX1RBUkdFVH0gJHtUVU5FX0NDQVJHU30iJykpCisgICAgICAgIGNvbnRlbnQuYXBwZW5kKGQuZXhwYW5kKCdzZXQgQ0ZMQUdTX0ZPUl9UQVJHRVQgIi0tc3lzcm9vdD0ke1NUQUdJTkdfRElSX1RBUkdFVH0gJHtUVU5FX0NDQVJHU30iJykpCisKKyAgICAgICAgaWYgc3VpdGUgPT0gImxkIiBhbmQgZC5nZXRWYXIoIlRVTkVfQVJDSCIpID09ICJtaXBzNjQiOgorICAgICAgICAgICAgIyBvZSBwYXRjaGVzIGJpbnV0aWxzIHRvIGhhdmUgdGhlIGRlZmF1bHQgbWlwczY0IGFiaSBhcyA2NGJpdCwgYnV0CisgICAgICAgICAgICAjIHNraXBzIGdhcyBjYXVzaW5nIGlzc3VlcyB3aXRoIHRoZSBsZCB0ZXN0IHN1aXRlICh3aGljaCB1c2VzIGdhcykKKyAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kKCdzZXQgQVNGTEFHUyAiLTY0IicpCisKKyAgICAgICAgcmV0dXJuICJcbiIuam9pbihjb250ZW50KQorCisgICAgZm9yIGkgaW4gWyJiaW51dGlscyIsICJnYXMiLCAibGQiXToKKyAgICAgICAgYnVpbGRkaXIgPSBvcy5wYXRoLmpvaW4oZC5nZXRWYXIoIkIiKSwgaSkKKyAgICAgICAgaWYgbm90IG9zLnBhdGguaXNkaXIoYnVpbGRkaXIpOgorICAgICAgICAgICAgb3MubWFrZWRpcnMoYnVpbGRkaXIpCisgICAgICAgIHdpdGggb3Blbihvcy5wYXRoLmpvaW4oYnVpbGRkaXIsICJzaXRlLmV4cCIpLCAidyIpIGFzIGY6CisgICAgICAgICAgICBmLndyaXRlKGdlbmVyYXRlX3NpdGVfZXhwKGQsIGkpKQorfQorCitDSEVDS19UQVJHRVRTID8/PSAiYmludXRpbHMgZ2FzIGxkIgorCitkb19jaGVja1tkaXJzXSA9ICIke0J9ICR7Qn0vYmludXRpbHMgJHtCfS9nYXMgJHtCfS9sZCIKK2RvX2NoZWNrW3ByZWZ1bmNzXSArPSAiY2hlY2tfcHJlcGFyZSIKK2RvX2NoZWNrW25vc3RhbXBdID0gIjEiCitkb19jaGVjaygpIHsKKyAgICBleHBvcnQgTENfQUxMPUMKKyAgICBmb3IgaSBpbiAke0NIRUNLX1RBUkdFVFN9OyBkbworICAgICAgICAoY2QgJHtCfS8kaTsgcnVudGVzdCBcCisgICAgICAgICAgICAtLXRvb2wgJGkgXAorICAgICAgICAgICAgLS1zcmNkaXIgJHtTfS8kaS90ZXN0c3VpdGUgXAorICAgICAgICAgICAgLS1pZ25vcmUgJ3BsdWdpbi5leHAnIFwKKyAgICAgICAgICAgIHx8IHRydWUpCisgICAgZG9uZQorfQorYWRkdGFzayBjaGVjayBhZnRlciBkb19jb25maWd1cmUKKwpkaWZmIC0tZ2l0IGEvcG9reS9tZXRhL3JlY2lwZXMtZGV2dG9vbHMvYmludXRpbHMvYmludXRpbHMvMDAxMC1DaGFuZ2UtZGVmYXVsdC1lbXVsYXRpb24tZm9yLW1pcHM2NC1saW51eC5wYXRjaCBiL3Bva3kvbWV0YS9yZWNpcGVzLWRldnRvb2xzL2JpbnV0aWxzL2JpbnV0aWxzLzAwMTAtQ2hhbmdlLWRlZmF1bHQtZW11bGF0aW9uLWZvci1taXBzNjQtbGludXgucGF0Y2gKaW5kZXggYmE1ZTRjMi4uNWY0YWM3MiAxMDA2NDQKLS0tIGEvcG9reS9tZXRhL3JlY2lwZXMtZGV2dG9vbHMvYmludXRpbHMvYmludXRpbHMvMDAxMC1DaGFuZ2UtZGVmYXVsdC1lbXVsYXRpb24tZm9yLW1pcHM2NC1saW51eC5wYXRjaAorKysgYi9wb2t5L21ldGEvcmVjaXBlcy1kZXZ0b29scy9iaW51dGlscy9iaW51dGlscy8wMDEwLUNoYW5nZS1kZWZhdWx0LWVtdWxhdGlvbi1mb3ItbWlwczY0LWxpbnV4LnBhdGNoCkBAIC0xLDQgKzEsNCBAQAotRnJvbSBkNTQwZTk1ZDA1Y2Q3YzRiODkyNGFjN2IyNTdjMTRhZTAxMDVkMGFiIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbSA5NThhNDk3NDliNzcyNjYwZDNiYWZiODA3NDg4MjljYmE2YmVkMDY1IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQogRnJvbTogS2hlbSBSYWogPHJhai5raGVtQGdtYWlsLmNvbT4KIERhdGU6IE1vbiwgMiBNYXIgMjAxNSAwMTo0NDoxNCArMDAwMAogU3ViamVjdDogW1BBVENIIDEwLzE1XSBDaGFuZ2UgZGVmYXVsdCBlbXVsYXRpb24gZm9yIG1pcHM2NCotKi1saW51eApAQCAtMTQsNyArMTQsNyBAQAogIDIgZmlsZXMgY2hhbmdlZCwgOCBpbnNlcnRpb25zKCspLCA4IGRlbGV0aW9ucygtKQogCiBkaWZmIC0tZ2l0IGEvYmZkL2NvbmZpZy5iZmQgYi9iZmQvY29uZmlnLmJmZAotaW5kZXggMGUxZGRiNjU5Yy4uY2M2NTU0NzU4OCAxMDA2NDQKK2luZGV4IDBlMWRkYjY1OWMuLmQ0ZjUwZjBhOGQgMTAwNjQ0CiAtLS0gYS9iZmQvY29uZmlnLmJmZAogKysrIGIvYmZkL2NvbmZpZy5iZmQKIEBAIC05MTksMTIgKzkxOSwxMiBAQCBjYXNlICIke3Rhcmd9IiBpbgpAQCAtMzAsNyArMzAsNyBAQAogLSAgICB0YXJnX2RlZnZlYz1taXBzX2VsZjMyX250cmFkX2JlX3ZlYwogLSAgICB0YXJnX3NlbHZlY3M9Im1pcHNfZWxmMzJfbnRyYWRfbGVfdmVjIG1pcHNfZWxmMzJfdHJhZF9iZV92ZWMgbWlwc19lbGYzMl90cmFkX2xlX3ZlYyBtaXBzX2VsZjY0X3RyYWRfYmVfdmVjIG1pcHNfZWxmNjRfdHJhZF9sZV92ZWMiCiArICAgIHRhcmdfZGVmdmVjPW1pcHNfZWxmNjRfdHJhZF9iZV92ZWMKLSsgICAgdGFyZ19zZWx2ZWNzPSJtaXBzX2VsZjMyX250cmFkX2JlX3ZlYyBtaXBzX2VsZjMyX250cmFkX2JlX3ZlYyBtaXBzX2VsZjMyX3RyYWRfYmVfdmVjIG1pcHNfZWxmMzJfdHJhZF9sZV92ZWMgbWlwc19lbGY2NF90cmFkX2xlX3ZlYyIKKysgICAgdGFyZ19zZWx2ZWNzPSJtaXBzX2VsZjMyX250cmFkX2JlX3ZlYyBtaXBzX2VsZjMyX250cmFkX2xlX3ZlYyBtaXBzX2VsZjMyX3RyYWRfYmVfdmVjIG1pcHNfZWxmMzJfdHJhZF9sZV92ZWMgbWlwc19lbGY2NF90cmFkX2xlX3ZlYyIKICAgICAgOzsKICAgIG1pcHMqZWwtKi1saW51eCopCiAgICAgIHRhcmdfZGVmdmVjPW1pcHNfZWxmMzJfdHJhZF9sZV92ZWMKQEAgLTU0LDYgKzU0LDMgQEAKICAJCQl0YXJnX2V4dHJhX2xpYnBhdGg9JHRhcmdfZXh0cmFfZW11bHMgOzsKICBtaXBzKmVsLSotbGludXgtKikJdGFyZ19lbXVsPWVsZjMybHRzbWlwCiAgCQkJdGFyZ19leHRyYV9lbXVscz0iZWxmMzJidHNtaXAgZWxmMzJsdHNtaXBuMzIgZWxmNjRsdHNtaXAgZWxmMzJidHNtaXBuMzIgZWxmNjRidHNtaXAiCi0tLSAKLTIuMjAuMQotCmRpZmYgLS1naXQgYS9wb2t5L21ldGEvcmVjaXBlcy1kZXZ0b29scy9ib290Y2hhcnQyL2Jvb3RjaGFydDIvMDAwMS1ib290Y2hhcnQyLXN1cHBvcnQtdXNybWVyZ2UucGF0Y2ggYi9wb2t5L21ldGEvcmVjaXBlcy1kZXZ0b29scy9ib290Y2hhcnQyL2Jvb3RjaGFydDIvMDAwMS1ib290Y2hhcnQyLXN1cHBvcnQtdXNybWVyZ2UucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOGVlNjcyMwotLS0gL2Rldi9udWxsCisrKyBiL3Bva3kvbWV0YS9yZWNpcGVzLWRldnRvb2xzL2Jvb3RjaGFydDIvYm9vdGNoYXJ0Mi8wMDAxLWJvb3RjaGFydDItc3VwcG9ydC11c3JtZXJnZS5wYXRjaApAQCAtMCwwICsxLDM3IEBACitGcm9tIGI2ZDFhMWZmMmRlMzYzYjFiNzZjOGM3MGY3N2FlNTZhNGU0ZDRiNTYgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBDaGFuZ3FpbmcgTGkgPGNoYW5ncWluZy5saUB3aW5kcml2ZXIuY29tPgorRGF0ZTogVGh1LCA1IFNlcCAyMDE5IDE4OjM3OjMxICswODAwCitTdWJqZWN0OiBbUEFUQ0hdIGJvb3RjaGFydDI6IHN1cHBvcnQgdXNybWVyZ2UKKworVXBzdHJlYW0tU3RhdHVzOiBJbmFwcHJvcHJpYXRlW29lLXNwZWNpZmljXQorCitTaWduZWQtb2ZmLWJ5OiBDaGFuZ3FpbmcgTGkgPGNoYW5ncWluZy5saUB3aW5kcml2ZXIuY29tPgorLS0tCisgTWFrZWZpbGUgfCA0ICsrLS0KKyAxIGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQorCitkaWZmIC0tZ2l0IGEvTWFrZWZpbGUgYi9NYWtlZmlsZQoraW5kZXggMWNjMjk3NC4uZjk4ODkwNCAxMDA2NDQKKy0tLSBhL01ha2VmaWxlCisrKysgYi9NYWtlZmlsZQorQEAgLTM2LDcgKzM2LDcgQEAgZW5kaWYKKyBQWV9TSVRFRElSID89ICQoUFlfTElCRElSKS9zaXRlLXBhY2thZ2VzCisgTElCQ19BX1BBVEggPSAvdXNyJChMSUJESVIpCisgIyBBbHdheXMgbGliLCBldmVuIG9uIHN5c3RlbXMgdGhhdCBvdGhlcndpc2UgdXNlIGxpYjY0CistU1lTVEVNRF9VTklUX0RJUiA9ICQoRUFSTFlfUFJFRklYKS9saWIvc3lzdGVtZC9zeXN0ZW0KKytTWVNURU1EX1VOSVRfRElSID89ICQoRUFSTFlfUFJFRklYKS9saWIvc3lzdGVtZC9zeXN0ZW0KKyBDT0xMRUNUT1IgPSBcCisgCWNvbGxlY3Rvci9jb2xsZWN0b3IubyBcCisgCWNvbGxlY3Rvci9vdXRwdXQubyBcCitAQCAtOTksNyArOTksNyBAQCBpbnN0YWxsLWNocm9vdDoKKyAJaW5zdGFsbCAtZCAkKERFU1RESVIpJChQS0dMSUJESVIpL3RtcGZzCisgCisgaW5zdGFsbC1jb2xsZWN0b3I6IGFsbCBpbnN0YWxsLWNocm9vdAorLQlpbnN0YWxsIC1tIDc1NSAtRCBib290Y2hhcnRkICQoREVTVERJUikkKEVBUkxZX1BSRUZJWCkvc2Jpbi8kKFBST0dSQU1fUFJFRklYKWJvb3RjaGFydGQkKFBST0dSQU1fU1VGRklYKQorKwlpbnN0YWxsIC1tIDc1NSAtRCBib290Y2hhcnRkICQoREVTVERJUikke0JBU0VfU0JJTkRJUn0vJChQUk9HUkFNX1BSRUZJWClib290Y2hhcnRkJChQUk9HUkFNX1NVRkZJWCkKKyAJaW5zdGFsbCAtbSA2NDQgLUQgYm9vdGNoYXJ0ZC5jb25mICQoREVTVERJUikvZXRjLyQoUFJPR1JBTV9QUkVGSVgpYm9vdGNoYXJ0ZCQoUFJPR1JBTV9TVUZGSVgpLmNvbmYKKyAJaW5zdGFsbCAtbSA3NTUgLUQgYm9vdGNoYXJ0LWNvbGxlY3RvciAkKERFU1RESVIpJChQS0dMSUJESVIpLyQoUFJPR1JBTV9QUkVGSVgpYm9vdGNoYXJ0JChQUk9HUkFNX1NVRkZJWCktY29sbGVjdG9yCisgCistLSAKKzIuNy40CisKZGlmZiAtLWdpdCBhL3Bva3kvbWV0YS9yZWNpcGVzLWRldnRvb2xzL2Jvb3RjaGFydDIvYm9vdGNoYXJ0Ml8wLjE0LjguYmIgYi9wb2t5L21ldGEvcmVjaXBlcy1kZXZ0b29scy9ib290Y2hhcnQyL2Jvb3RjaGFydDJfMC4xNC44LmJiCmluZGV4IDM5NmQwZWMuLmE5MzhiMmQgMTAwNjQ0Ci0tLSBhL3Bva3kvbWV0YS9yZWNpcGVzLWRldnRvb2xzL2Jvb3RjaGFydDIvYm9vdGNoYXJ0Ml8wLjE0LjguYmIKKysrIGIvcG9reS9tZXRhL3JlY2lwZXMtZGV2dG9vbHMvYm9vdGNoYXJ0Mi9ib290Y2hhcnQyXzAuMTQuOC5iYgpAQCAtOTMsNiArOTMsNyBAQAogU1JDX1VSSSA9ICJnaXQ6Ly9naXRodWIuY29tL3hybXgvYm9vdGNoYXJ0LmdpdCBcCiAgICAgICAgICAgIGZpbGU6Ly9ib290Y2hhcnRkX3N0b3Auc2ggXAogICAgICAgICAgICBmaWxlOi8vMDAwMS1jb2xsZWN0b3ItQWxsb2NhdGUtc3BhY2Utb24taGVhcC1mb3ItY2h1bmtzLnBhdGNoIFwKKyAgICAgICAgICAgZmlsZTovLzAwMDEtYm9vdGNoYXJ0Mi1zdXBwb3J0LXVzcm1lcmdlLnBhdGNoIFwKICAgICAgICAgICAiCiAKIFMgPSAiJHtXT1JLRElSfS9naXQiCkBAIC0xMTQsNiArMTE1LDggQEAKIElOSVRTQ1JJUFRfTkFNRSA9ICJib290Y2hhcnRkX3N0b3Auc2giCiBJTklUU0NSSVBUX1BBUkFNUyA9ICJzdGFydCA5OSAyIDMgNCA1IC4iCiAKK0VYVFJBX09FTUFLRSA9ICdCQVNFX1NCSU5ESVI9IiR7YmFzZV9zYmluZGlyfSInCisKIGRvX2NvbXBpbGVfcHJlcGVuZCAoKSB7CiAgICAgZXhwb3J0IFBZX0xJQkRJUj0iJHtsaWJkaXJ9LyR7UFlUSE9OX0RJUn0iCiAgICAgZXhwb3J0IEJJTkRJUj0iJHtiaW5kaXJ9IgpAQCAtMTI2LDYgKzEyOSw4IEBACiAgICAgZXhwb3J0IEJJTkRJUj0iJHtiaW5kaXJ9IgogICAgIGV4cG9ydCBERVNURElSPSIke0R9IgogICAgIGV4cG9ydCBMSUJESVI9IiR7YmFzZV9saWJkaXJ9IgorICAgIGV4cG9ydCBQS0dMSUJESVI9IiR7YmFzZV9saWJkaXJ9L2Jvb3RjaGFydCIKKyAgICBleHBvcnQgU1lTVEVNRF9VTklUX0RJUj0iJHtzeXN0ZW1kX3VuaXRkaXJ9L3N5c3RlbSIKIAogICAgIG9lX3J1bm1ha2UgaW5zdGFsbAogICAgIGluc3RhbGwgLWQgJHtEfSR7c3lzY29uZmRpcn0vaW5pdC5kCkBAIC0xNDEsNyArMTQ2LDcgQEAKIEZJTEVTX3B5Ym9vdGNoYXJ0Z3VpICs9ICIke1BZVEhPTl9TSVRFUEFDS0FHRVNfRElSfS9weWJvb3RjaGFydGd1aSAke2JpbmRpcn0vcHlib290Y2hhcnRndWkiCiBSREVQRU5EU19weWJvb3RjaGFydGd1aSA9ICJweXRob24zLXB5Y2Fpcm8gcHl0aG9uMy1jb21wcmVzc2lvbiBweXRob24zLWltYWdlIHB5dGhvbjMtc2hlbGwgcHl0aG9uMy1jb21wcmVzc2lvbiBweXRob24zLWNvZGVjcyIKIFJERVBFTkRTXyR7UE59X2NsYXNzLXRhcmdldCArPSAiJHtAYmIudXRpbHMuY29udGFpbnMoJ0RJU1RST19GRUFUVVJFUycsICdzeXN2aW5pdCcsICdzeXN2aW5pdC1waWRvZicsICdwcm9jcHMnLCBkKX0iCi1SREVQRU5EU18ke1BOfV9jbGFzcy10YXJnZXQgKz0gImxzYiIKK1JERVBFTkRTXyR7UE59X2NsYXNzLXRhcmdldCArPSAibHNiLXJlbGVhc2UiCiBERVBFTkRTX2FwcGVuZF9jbGFzcy1uYXRpdmUgPSAiIHB5dGhvbjMtcHljYWlyby1uYXRpdmUiCiAKIFBBQ0tBR0VTID0rICJib290Y2hhcnRkLXN0b3AtaW5pdHNjcmlwdCIKZGlmZiAtLWdpdCBhL3Bva3kvbWV0YS9yZWNpcGVzLWRldnRvb2xzL2J0cmZzLXRvb2xzL2J0cmZzLXRvb2xzXzUuMi4xLmJiIGIvcG9reS9tZXRhL3JlY2lwZXMtZGV2dG9vbHMvYnRyZnMtdG9vbHMvYnRyZnMtdG9vbHNfNS4yLjEuYmIKaW5kZXggNjQ3NTE2Yy4uYTM2NGNmNSAxMDA2NDQKLS0tIGEvcG9reS9tZXRhL3JlY2lwZXMtZGV2dG9vbHMvYnRyZnMtdG9vbHMvYnRyZnMtdG9vbHNfNS4yLjEuYmIKKysrIGIvcG9reS9tZXRhL3JlY2lwZXMtZGV2dG9vbHMvYnRyZnMtdG9vbHMvYnRyZnMtdG9vbHNfNS4yLjEuYmIKQEAgLTEwLDcgKzEwLDcgQEAKIExJQ0VOU0UgPSAiR1BMdjIiCiBMSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9DT1BZSU5HO21kNT1mY2IwMmRjNTUyYTA0MWRlZTI3ZTRiODVjNzM5NjA2NyIKIFNFQ1RJT04gPSAiYmFzZSIKLURFUEVORFMgPSAidXRpbC1saW51eCBhdHRyIGUyZnNwcm9ncyBsem8gYWNsIHB5dGhvbjMtc2V0dXB0b29scy1uYXRpdmUiCitERVBFTkRTID0gInV0aWwtbGludXggYXR0ciBlMmZzcHJvZ3MgbHpvIGFjbCIKIERFUEVORFNfYXBwZW5kX2NsYXNzLXRhcmdldCA9ICIgdWRldiIKIFJERVBFTkRTXyR7UE59ID0gImxpYmdjYyIKIApAQCAtMTksMTMgKzE5LDE2IEBACiAgICAgICAgICAgIGZpbGU6Ly8wMDAxLUFkZC1hLXBvc3NpYmlsaXR5LXRvLXNwZWNpZnktd2hlcmUtcHl0aG9uLW1vZHVsZXMtYXIucGF0Y2ggXAogICAgICAgICAgICAiCiAKLWluaGVyaXQgYXV0b3Rvb2xzLWJyb2tlbnNlcCBwa2djb25maWcgbWFucGFnZXMgZGlzdHV0aWxzMy1iYXNlCitQQUNLQUdFQ09ORklHID8/PSAicHl0aG9uIgorUEFDS0FHRUNPTkZJR1ttYW5wYWdlc10gPSAiLS1lbmFibGUtZG9jdW1lbnRhdGlvbiwgLS1kaXNhYmxlLWRvY3VtZW50YXRpb24sIGFzY2lpZG9jLW5hdGl2ZSB4bWx0by1uYXRpdmUiCitQQUNLQUdFQ09ORklHW3B5dGhvbl0gPSAiLS1lbmFibGUtcHl0aG9uLC0tZGlzYWJsZS1weXRob24scHl0aG9uMy1zZXR1cHRvb2xzLW5hdGl2ZSIKK1BBQ0tBR0VDT05GSUdbenN0ZF0gPSAiLS1lbmFibGUtenN0ZCwtLWRpc2FibGUtenN0ZCx6c3RkIgorCitpbmhlcml0IGF1dG90b29scy1icm9rZW5zZXAgcGtnY29uZmlnIG1hbnBhZ2VzCitpbmhlcml0ICR7QGJiLnV0aWxzLmNvbnRhaW5zKCdQQUNLQUdFQ09ORklHJywgJ3B5dGhvbicsICdkaXN0dXRpbHMzLWJhc2UnLCAnJywgZCl9CiAKIENMRUFOQlJPS0VOID0gIjEiCiAKLVBBQ0tBR0VDT05GSUdbbWFucGFnZXNdID0gIi0tZW5hYmxlLWRvY3VtZW50YXRpb24sIC0tZGlzYWJsZS1kb2N1bWVudGF0aW9uLCBhc2NpaWRvYy1uYXRpdmUgeG1sdG8tbmF0aXZlIgotUEFDS0FHRUNPTkZJR1t6c3RkXSA9ICItLWVuYWJsZS16c3RkLC0tZGlzYWJsZS16c3RkLHpzdGQiCi0KIEVYVFJBX09FQ09ORl9hcHBlbmRfbGliYy1tdXNsID0gIiAtLWRpc2FibGUtYmFja3RyYWNlICIKIEVYVFJBX1BZVEhPTl9DRkxBR1MgPSAiJHtERUJVR19QUkVGSVhfTUFQfSIKIEVYVFJBX1BZVEhPTl9DRkxBR1NfY2xhc3MtbmF0aXZlID0gIiIKQEAgLTQxLDcgKzQ0LDkgQEAKIFMgPSAiJHtXT1JLRElSfS9naXQiCiAKIGRvX2luc3RhbGxfYXBwZW5kKCkgewotICAgIG9lX3J1bm1ha2UgJ0RFU1RESVI9JHtEfScgJ1BZVEhPTl9TSVRFUEFDS0FHRVNfRElSPSR7UFlUSE9OX1NJVEVQQUNLQUdFU19ESVJ9JyBpbnN0YWxsX3B5dGhvbgorICAgIGlmIFsgIiR7QGJiLnV0aWxzLmZpbHRlcignUEFDS0FHRUNPTkZJRycsICdweXRob24nLCBkKX0iIF07IHRoZW4KKyAgICAgICAgb2VfcnVubWFrZSAnREVTVERJUj0ke0R9JyAnUFlUSE9OX1NJVEVQQUNLQUdFU19ESVI9JHtQWVRIT05fU0lURVBBQ0tBR0VTX0RJUn0nIGluc3RhbGxfcHl0aG9uCisgICAgZmkKIH0KIAogQkJDTEFTU0VYVEVORCA9ICJuYXRpdmUiCmRpZmYgLS1naXQgYS9wb2t5L21ldGEvcmVjaXBlcy1kZXZ0b29scy9idWlsZC1jb21wYXJlL2J1aWxkLWNvbXBhcmVfZ2l0LmJiIGIvcG9reS9tZXRhL3JlY2lwZXMtZGV2dG9vbHMvYnVpbGQtY29tcGFyZS9idWlsZC1jb21wYXJlX2dpdC5iYgppbmRleCBlZmNmNmI2Li5iMDU2MGNjIDEwMDY0NAotLS0gYS9wb2t5L21ldGEvcmVjaXBlcy1kZXZ0b29scy9idWlsZC1jb21wYXJlL2J1aWxkLWNvbXBhcmVfZ2l0LmJiCisrKyBiL3Bva3kvbWV0YS9yZWNpcGVzLWRldnRvb2xzL2J1aWxkLWNvbXBhcmUvYnVpbGQtY29tcGFyZV9naXQuYmIKQEAgLTYsMjIgKzYsMTQgQEAKIExJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0NPUFlJTkc7bWQ1PTc1MTQxOTI2MGFhOTU0NDk5ZjdhYmFhYmFhODgyYmJlIgogCiBTUkNfVVJJID0gImdpdDovL2dpdGh1Yi5jb20vb3BlblNVU0UvYnVpbGQtY29tcGFyZS5naXQgXAotICAgICAgICAgICBmaWxlOi8vUmVuYW1lLXJwbS1jaGVjay5zaC10by1wa2ctZGlmZi5zaC5wYXRjaDtzdHJpcGxldmVsPTEgXAogICAgICAgICAgICBmaWxlOi8vSWdub3JlLURXQVJGLXNlY3Rpb25zLnBhdGNoO3N0cmlwbGV2ZWw9MSBcCi0gICAgICAgICAgIGZpbGU6Ly8wMDAxLUFkZC1zdXBwb3J0LWZvci1kZWItYW5kLWlway1wYWNrYWdpbmcucGF0Y2ggXAotICAgICAgICAgICBmaWxlOi8vZnVuY3Rpb25zLnNoLXJlbW92ZS1zcGFjZS1hdC1oZWFkLnBhdGNoIFwKLSAgICAgICAgICAgZmlsZTovL2Z1bmN0aW9ucy5zaC1ydW4tcnBtLW9uY2UtdG8tbWFrZS1pdC1mYXN0ZXIucGF0Y2ggXAotICAgICAgICAgICBmaWxlOi8vcGtnLWRpZmYuc2gtY2hlY2stZm9yLWZpZm8tbmFtZWQtcGlwZS5wYXRjaCBcCi0gICAgICAgICAgIGZpbGU6Ly9wa2ctZGlmZi5zaC1jaGVja19zaW5nbGVfZmlsZS1yZXR1cm4tYXQtb25jZS13aGVuLXNhLnBhdGNoIFwKLSAgICAgICAgICAgZmlsZTovL3BrZy1kaWZmLnNoLXJlbW92ZS1zcGFjZS1pbi10aGUtZW5kLWZvci1mdHlwZS5wYXRjaCBcCi0gICAgICAgICAgIGZpbGU6Ly9mdW5jdGlvbnMuc2gtaW1wcm92ZS1kZWItYW5kLWlway1jaGVja2luZy5wYXRjaCBcCiAgICAgICAgICAgICIKIAogIyBEYXRlIG1hdGNoZXMgZW50cnkgaW4gYnVpbGQtY29tcGFyZS5jaGFuZ2VzIGFuZCBkYXRlIG9mIFNSQ1JFVi4KICMKLVNSQ1JFViA9ICJjNTM1MmMwNTRjNmVmMTU3MzVkYTMxYjc2ZDZkODg2MjBmNGFmZjBhIgorU1JDUkVWID0gIjRkZmEyMDc2NjA3NzZjYWUxMjBhZmE0MzUzYWVjN2YxZjJhOTk4ZDIiCiBQRSA9ICIxIgotUFYgPSAiMjAxNS4wMi4xMCtnaXQke1NSQ1BWfSIKK1BWID0gIjIwMTkuMDguMTQrZ2l0JHtTUkNQVn0iCiBVUFNUUkVBTV9DSEVDS19DT01NSVRTID0gIjEiCiAKIFMgPSAiJHtXT1JLRElSfS9naXQiCmRpZmYgLS1naXQgYS9wb2t5L21ldGEvcmVjaXBlcy1kZXZ0b29scy9idWlsZC1jb21wYXJlL2ZpbGVzLzAwMDEtQWRkLXN1cHBvcnQtZm9yLWRlYi1hbmQtaXBrLXBhY2thZ2luZy5wYXRjaCBiL3Bva3kvbWV0YS9yZWNpcGVzLWRldnRvb2xzL2J1aWxkLWNvbXBhcmUvZmlsZXMvMDAwMS1BZGQtc3VwcG9ydC1mb3ItZGViLWFuZC1pcGstcGFja2FnaW5nLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4MmZkODE2Li4wMDAwMDAwCi0tLSBhL3Bva3kvbWV0YS9yZWNpcGVzLWRldnRvb2xzL2J1aWxkLWNvbXBhcmUvZmlsZXMvMDAwMS1BZGQtc3VwcG9ydC1mb3ItZGViLWFuZC1pcGstcGFja2FnaW5nLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsNjQgKzAsMCBAQAotRnJvbSAwMmRiYzdlMzQ3OGU0MDlkNmY1ZTNlMWM1M2RhZGRmODgzOGJlOTk5IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogUGF1bCBFZ2dsZXRvbiA8cGF1bC5lZ2dsZXRvbkBsaW51eC5pbnRlbC5jb20+Ci1EYXRlOiBUdWUsIDEgU2VwIDIwMTUgMTI6MDQ6MzMgKzAxMDAKLVN1YmplY3Q6IFtQQVRDSF0gQWRkIHN1cHBvcnQgZm9yIGRlYiBhbmQgaXBrIHBhY2thZ2luZwotCi1VcHN0cmVhbS1TdGF0dXM6IFN1Ym1pdHRlZCBbaHR0cHM6Ly9naXRodWIuY29tL29wZW5TVVNFL2J1aWxkLWNvbXBhcmUvcHVsbC8xMF0KLQotU2lnbmVkLW9mZi1ieTogUGF1bCBFZ2dsZXRvbiA8cGF1bC5lZ2dsZXRvbkBsaW51eC5pbnRlbC5jb20+Ci0tLS0KLSBmdW5jdGlvbnMuc2ggfCAxNSArKysrKysrKysrKysrKysKLSBwa2ctZGlmZi5zaCAgfCAgNiArKysrKysKLSAyIGZpbGVzIGNoYW5nZWQsIDIxIGluc2VydGlvbnMoKykKLQotZGlmZiAtLWdpdCBhL2Z1bmN0aW9ucy5zaCBiL2Z1bmN0aW9ucy5zaAotaW5kZXggMDYwNzlkZi4uODVjOTAwMyAxMDA2NDQKLS0tLSBhL2Z1bmN0aW9ucy5zaAotKysrIGIvZnVuY3Rpb25zLnNoCi1AQCAtODUsNiArODUsMTMgQEAgZnVuY3Rpb24gdW5wYWNrYWdlKCkKLSAgICAgICAgICAgICBDUElPX09QVFM9Ii0tZXh0cmFjdCAtLXVuY29uZGl0aW9uYWwgLS1wcmVzZXJ2ZS1tb2RpZmljYXRpb24tdGltZSAtLW1ha2UtZGlyZWN0b3JpZXMgLS1xdWlldCIKLSAgICAgICAgICAgICBycG0yY3BpbyAkZmlsZSB8IGNwaW8gJHtDUElPX09QVFN9Ci0gICAgICAgICAgICAgOzsKLSsgICAgICAgICouaXBrfCouZGViKQotKyAgICAgICAgICAgIGFyIHggJGZpbGUKLSsgICAgICAgICAgICB0YXIgeGYgY29udHJvbC50YXIuZ3oKLSsgICAgICAgICAgICBybSBjb250cm9sLnRhci5negotKyAgICAgICAgICAgIHRhciB4ZiBkYXRhLnRhci5negotKyAgICAgICAgICAgIHJtIGRhdGEudGFyLmd6Ci0rICAgICAgICAgICAgOzsKLSAgICAgZXNhYwotICAgICBwb3BkIDE+L2Rldi9udWxsCi0gfQotQEAgLTI1NSw0ICsyNjIsMTIgQEAgZnVuY3Rpb24gY21wX3NwZWMgKCkKLSAgICAgcm0gJGZpbGUxICRmaWxlMgotICAgICByZXR1cm4gJFJFUwotIH0KLSsKLStmdW5jdGlvbiBhZGp1c3RfY29udHJvbGZpbGUoKSB7Ci0rICAgIGNhdCAkMS9jb250cm9sIHwgc2VkICcvXlZlcnNpb246IC9kJyA+ICQxL2NvbnRyb2wuZml4ZWQKLSsgICAgbXYgJDEvY29udHJvbC5maXhlZCAkMS9jb250cm9sCi0rICAgIGNhdCAkMi9jb250cm9sIHwgc2VkICcvXlZlcnNpb246IC9kJyA+ICQyL2NvbnRyb2wuZml4ZWQKLSsgICAgbXYgJDIvY29udHJvbC5maXhlZCAkMi9jb250cm9sCi0rfQotKwotICMgdmltOiB0dz02NjYgdHM9MiBldAotZGlmZiAtLWdpdCBhL3BrZy1kaWZmLnNoIGIvcGtnLWRpZmYuc2gKLWluZGV4IDBmMWZhNzYuLjNjZjEwYWEgMTAwNjQ0Ci0tLS0gYS9wa2ctZGlmZi5zaAotKysrIGIvcGtnLWRpZmYuc2gKLUBAIC0xMzgsNiArMTM4LDEyIEBAIGVjaG8gIkV4dHJhY3RpbmcgcGFja2FnZXMiCi0gdW5wYWNrYWdlICRvbGRwa2cgJGRpci9vbGQKLSB1bnBhY2thZ2UgJG5ld3BrZyAkZGlyL25ldwotIAotK2Nhc2UgJG9sZHBrZyBpbgotKyAgKi5kZWJ8Ki5pcGspCi0rICAgICBhZGp1c3RfY29udHJvbGZpbGUgJGRpci9vbGQgJGRpci9uZXcKLSsgIDs7Ci0rZXNhYwotKwotICMgZmlsZXMgaXMgc2V0IGluIGNtcF9zcGVjIGZvciBycG1zLCBzbyBpZiBSRVMgaXMgZW1wdHkgd2Ugc2hvdWxkIGFzc3VtZQotICMgaXQgd2Fzbid0IGFuIHJwbSBhbmQgcGljayBhbGwgZmlsZXMgZm9yIGNvbXBhcmlzb24uCi0gaWYgWyAteiAkUkVTIF07IHRoZW4KLS0tIAotMi4xLjAKLQpkaWZmIC0tZ2l0IGEvcG9reS9tZXRhL3JlY2lwZXMtZGV2dG9vbHMvYnVpbGQtY29tcGFyZS9maWxlcy9JZ25vcmUtRFdBUkYtc2VjdGlvbnMucGF0Y2ggYi9wb2t5L21ldGEvcmVjaXBlcy1kZXZ0b29scy9idWlsZC1jb21wYXJlL2ZpbGVzL0lnbm9yZS1EV0FSRi1zZWN0aW9ucy5wYXRjaAppbmRleCA3ZGRhMWFjLi4yZmI2MmFlIDEwMDY0NAotLS0gYS9wb2t5L21ldGEvcmVjaXBlcy1kZXZ0b29scy9idWlsZC1jb21wYXJlL2ZpbGVzL0lnbm9yZS1EV0FSRi1zZWN0aW9ucy5wYXRjaAorKysgYi9wb2t5L21ldGEvcmVjaXBlcy1kZXZ0b29scy9idWlsZC1jb21wYXJlL2ZpbGVzL0lnbm9yZS1EV0FSRi1zZWN0aW9ucy5wYXRjaApAQCAtMjMsMTggKzIzLDE1IEBACiAgMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAxIGRlbGV0aW9uKC0pCiAKIGRpZmYgLS1naXQgYS9wa2ctZGlmZi5zaCBiL3BrZy1kaWZmLnNoCi1pbmRleCA1NjAzNWMxLi4wZjFmYTc2IDEwMDc1NQoraW5kZXggOWMyMTI1ZS4uYjBkNzdjOCAxMDA3NTUKIC0tLSBhL3BrZy1kaWZmLnNoCiArKysgYi9wa2ctZGlmZi5zaAotQEAgLTY1OCw3ICs2NTgsNyBAQCBjaGVja19zaW5nbGVfZmlsZSgpCitAQCAtODUxLDcgKzg1MSw3IEBAIGNoZWNrX3NpbmdsZV9maWxlKCkKICAgICAgICAgZWNobyAiIiA+JGZpbGUxCiAgICAgICAgIGVjaG8gIiIgPiRmaWxlMgotICAgICAgICAjIERvbid0IGNvbXBhcmUgLmJ1aWxkLWlkIGFuZCAuZ251X2RlYnVnbGluayBzZWN0aW9ucwotLSAgICAgICBzZWN0aW9ucz0iJChvYmpkdW1wIC1zIG5ldy8kZmlsZSB8IGdyZXAgIkNvbnRlbnRzIG9mIHNlY3Rpb24gLio6IiB8IHNlZCAtciAicywuKiAoLiopOixcMSxnIiB8IGdyZXAgLXYgLWUgIlwuYnVpbGQtaWQiIC1lICJcLmdudV9kZWJ1Z2xpbmsiIHwgdHIgIlxuIiAiICIpIgotKyAgICAgICBzZWN0aW9ucz0iJChvYmpkdW1wIC1zIG5ldy8kZmlsZSB8IGdyZXAgIkNvbnRlbnRzIG9mIHNlY3Rpb24gLio6IiB8IHNlZCAtciAicywuKiAoLiopOixcMSxnIiB8IGdyZXAgLXYgLWUgIlwuYnVpbGQtaWQiIC1lICJcLmdudV9kZWJ1Z2xpbmsiIC1lICJcLmRlYnVnX2FiYnJldiIgLWUgIlwuZGVidWdfYXJhbmdlcyIgLWUgIlwuZGVidWdfZnJhbWUiIC1lICJcLmRlYnVnX2luZm8iIC1lICJcLmRlYnVnX2xpbmUiIC1lICJcLmRlYnVnX2xvYyIgLWUgIlwuZGVidWdfbWFjaW5mbyIgLWUgIlwuZGVidWdfcHVibmFtZXMiIC1lICJcLmRlYnVnX3B1YnR5cGVzIiAtZSAiXC5kZWJ1Z19yYW5nZXMiICAtZSAiXC5kZWJ1Z19zdHIiIHwgdHIgIlxuIiAiICIpIgorICAgICAgICAjIERvbid0IGNvbXBhcmUgLmJ1aWxkLWlkLCAuZ251X2RlYnVnbGluayBhbmQgLmdudV9kZWJ1Z2RhdGEgc2VjdGlvbnMKKy0gICAgICAgc2VjdGlvbnM9IiQoJE9CSkRVTVAgLXMgbmV3LyRmaWxlIHwgZ3JlcCAiQ29udGVudHMgb2Ygc2VjdGlvbiAuKjoiIHwgc2VkIC1yICJzLC4qICguKik6LFwxLGciIHwgZ3JlcCAtdiAtZSAiXC5idWlsZC1pZCIgLWUgIlwuZ251X2RlYnVnbGluayIgLWUgIlwuZ251X2RlYnVnZGF0YSIgfCB0ciAiXG4iICIgIikiCisrICAgICAgIHNlY3Rpb25zPSIkKCRPQkpEVU1QIC1zIG5ldy8kZmlsZSB8IGdyZXAgIkNvbnRlbnRzIG9mIHNlY3Rpb24gLio6IiB8IHNlZCAtciAicywuKiAoLiopOixcMSxnIiB8IGdyZXAgLXYgLWUgIlwuYnVpbGQtaWQiIC1lICJcLmdudV9kZWJ1Z2xpbmsiIC1lICJcLmdudV9kZWJ1Z2RhdGEiIC1lICJcLmRlYnVnX2FiYnJldiIgLWUgIlwuZGVidWdfYXJhbmdlcyIgLWUgIlwuZGVidWdfZnJhbWUiIC1lICJcLmRlYnVnX2luZm8iIC1lICJcLmRlYnVnX2xpbmUiIC1lICJcLmRlYnVnX2xvYyIgLWUgIlwuZGVidWdfbWFjaW5mbyIgLWUgIlwuZGVidWdfcHVibmFtZXMiIC1lICJcLmRlYnVnX3B1YnR5cGVzIiAtZSAiXC5kZWJ1Z19yYW5nZXMiICAtZSAiXC5kZWJ1Z19zdHIiIHwgdHIgIlxuIiAiICIpIgogICAgICAgICBmb3Igc2VjdGlvbiBpbiAkc2VjdGlvbnM7IGRvCi0gICAgICAgICAgIG9iamR1bXAgLXMgLWogJHNlY3Rpb24gb2xkLyRmaWxlIHwgc2VkICJzLF5vbGQvLCwiID4gJGZpbGUxCi0gICAgICAgICAgIG9iamR1bXAgLXMgLWogJHNlY3Rpb24gbmV3LyRmaWxlIHwgc2VkICJzLF5uZXcvLCwiID4gJGZpbGUyCi0tLSAKLTEuOS4zCi0KKyAgICAgICAgICAgJE9CSkRVTVAgLXMgLWogJHNlY3Rpb24gb2xkLyRmaWxlIHwgc2VkICJzLF5vbGQvLCwiID4gJGZpbGUxCisgICAgICAgICAgICRPQkpEVU1QIC1zIC1qICRzZWN0aW9uIG5ldy8kZmlsZSB8IHNlZCAicyxebmV3LywsIiA+ICRmaWxlMgpkaWZmIC0tZ2l0IGEvcG9reS9tZXRhL3JlY2lwZXMtZGV2dG9vbHMvYnVpbGQtY29tcGFyZS9maWxlcy9SZW5hbWUtcnBtLWNoZWNrLnNoLXRvLXBrZy1kaWZmLnNoLnBhdGNoIGIvcG9reS9tZXRhL3JlY2lwZXMtZGV2dG9vbHMvYnVpbGQtY29tcGFyZS9maWxlcy9SZW5hbWUtcnBtLWNoZWNrLnNoLXRvLXBrZy1kaWZmLnNoLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjZmYzYTllLi4wMDAwMDAwCi0tLSBhL3Bva3kvbWV0YS9yZWNpcGVzLWRldnRvb2xzL2J1aWxkLWNvbXBhcmUvZmlsZXMvUmVuYW1lLXJwbS1jaGVjay5zaC10by1wa2ctZGlmZi5zaC5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDE1OTkgKzAsMCBAQAotRnJvbSA0ZGUzZGY1YTFiMzYxY2QwOWEwODFmMGUwYmRiOTRjYmY2ODRlZDQ4IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogUm9iZXJ0IFlhbmcgPGxpZXpoaS55YW5nQHdpbmRyaXZlci5jb20+Ci1EYXRlOiBUaHUsIDE5IEZlYiAyMDE1IDAwOjM0OjQ3IC0wODAwCi1TdWJqZWN0OiBbUEFUQ0hdIFJlbmFtZSBycG0tY2hlY2suc2ggdG8gcGtnLWRpZmYuc2guCi0KLVRoZSB0b29sIG5vdyBhY2NlcHRzIHBhY2thZ2UgaW5wdXQgb3RoZXIgdGhhbiBycG0sIHNvIGNoYW5nZSB0aGUgbmFtZQotd2hpY2ggY291bGQgYmUgbWlzbGVhZGluZy4KLQotVXBzdHJlYW0tU3RhdHVzOiBTdWJtaXR0ZWQgW2h0dHBzOi8vZ2l0aHViLmNvbS9vcGVuU1VTRS9idWlsZC1jb21wYXJlL3B1bGxzXQotCi1TaWduZWQtb2ZmLWJ5OiBSYW5keSBXaXR0IDxyYW5keS5lLndpdHRAbGludXguaW50ZWwuY29tPgotCi1VcGRhdGVkIGZvciBycG0tY2hlY2suc2guCi0KLVNpZ25lZC1vZmYtYnk6IFJvYmVydCBZYW5nIDxsaWV6aGkueWFuZ0B3aW5kcml2ZXIuY29tPgotLS0tCi0gYnVpbGQtY29tcGFyZS5zcGVjICAgfCAgICAyICstCi0gcGtnLWRpZmYuc2ggICAgICAgICAgfCAgNzY1ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCi0gcnBtLWNoZWNrLnNoICAgICAgICAgfCAgNzY0IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSBzYW1lLWJ1aWxkLXJlc3VsdC5zaCB8ICAgIDQgKy0KLSA0IGZpbGVzIGNoYW5nZWQsIDc2OCBpbnNlcnRpb25zKCspLCA3NjcgZGVsZXRpb25zKC0pCi0gY3JlYXRlIG1vZGUgMTAwNjQ0IHBrZy1kaWZmLnNoCi0gZGVsZXRlIG1vZGUgMTAwNzU1IHJwbS1jaGVjay5zaAotCi1kaWZmIC0tZ2l0IGEvYnVpbGQtY29tcGFyZS5zcGVjIGIvYnVpbGQtY29tcGFyZS5zcGVjCi1pbmRleCAxNGE5N2U5Li41ZjQ3Y2ExIDEwMDY0NAotLS0tIGEvYnVpbGQtY29tcGFyZS5zcGVjCi0rKysgYi9idWlsZC1jb21wYXJlLnNwZWMKLUBAIC0yNSw3ICsyNSw3IEBAIFZlcnNpb246ICAgICAgICAyMDE1LjAyLjEwCi0gUmVsZWFzZTogICAgICAgIDAKLSBTb3VyY2UxOiAgICAgICAgQ09QWUlORwotIFNvdXJjZTI6ICAgICAgICBzYW1lLWJ1aWxkLXJlc3VsdC5zaAotLVNvdXJjZTM6ICAgICAgICBycG0tY2hlY2suc2gKLStTb3VyY2UzOiAgICAgICAgcGtnLWRpZmYuc2gKLSBTb3VyY2U0OiAgICAgICAgZnVuY3Rpb25zLnNoCi0gU291cmNlNTogICAgICAgIHNycG0tY2hlY2suc2gKLSBCdWlsZFJvb3Q6ICAgICAgJXtfdG1wcGF0aH0vJXtuYW1lfS0le3ZlcnNpb259LWJ1aWxkCi1kaWZmIC0tZ2l0IGEvcGtnLWRpZmYuc2ggYi9wa2ctZGlmZi5zaAotbmV3IGZpbGUgbW9kZSAxMDA2NDQKLWluZGV4IDAwMDAwMDAuLjU2MDM1YzEKLS0tLSAvZGV2L251bGwKLSsrKyBiL3BrZy1kaWZmLnNoCi1AQCAtMCwwICsxLDc2NSBAQAotKyMhIC9iaW4vYmFzaAotKyMKLSsjIENvcHlyaWdodCAoYykgMjAwOSwgMjAxMCwgMjAxMSwgMjAxMiBTVVNFIExpbnV4IFByb2R1Y3QgR21iSCwgR2VybWFueS4KLSsjIExpY2Vuc2VkIHVuZGVyIEdQTCB2Miwgc2VlIENPUFlJTkcgZmlsZSBmb3IgZGV0YWlscy4KLSsjCi0rIyBXcml0dGVuIGJ5IE1pY2hhZWwgTWF0eiBhbmQgU3RlcGhhbiBDb29sbwotKyMgRW5oYW5jZWQgYnkgQW5kcmVhcyBKYWVnZXIKLSsKLStGVU5DVElPTlM9JHswJS8qfS9mdW5jdGlvbnMuc2gKLSsKLStjaGVja19hbGw9Ci0rY2FzZSAkMSBpbgotKyAgLWEgfCAtLWNoZWNrLWFsbCkKLSsgICAgY2hlY2tfYWxsPTEKLSsgICAgc2hpZnQKLStlc2FjCi0rCi0raWYgdGVzdCAiJCMiICE9IDI7IHRoZW4KLSsgICBlY2hvICJ1c2FnZTogJDAgWy1hfC0tY2hlY2stYWxsXSBvbGQucnBtIG5ldy5ycG0iCi0rICAgZXhpdCAxCi0rZmkKLSsKLStzZWxmX3NjcmlwdD0kKGNkICQoZGlybmFtZSAkMCk7IGVjaG8gJChwd2QpLyQoYmFzZW5hbWUgJDApKQotKwotK3NvdXJjZSAkRlVOQ1RJT05TCi0rCi0rb2xkcGtnPWByZWFkbGluayAtZiAkMWAKLStuZXdwa2c9YHJlYWRsaW5rIC1mICQyYAotK3JlbmFtZV9zY3JpcHQ9YG1rdGVtcGAKLSsKLStpZiB0ZXN0ICEgLWYgIiRvbGRwa2ciOyB0aGVuCi0rICAgIGVjaG8gImNhbid0IG9wZW4gJDEiCi0rICAgIGV4aXQgMQotK2ZpCi0rCi0raWYgdGVzdCAhIC1mICIkbmV3cGtnIjsgdGhlbgotKyAgICBlY2hvICJjYW4ndCBvcGVuICQyIgotKyAgICBleGl0IDEKLStmaQotKwotKyN1c2FnZSB1bmphciA8ZmlsZT4KLStmdW5jdGlvbiB1bmphcigpCi0rewotKyAgICBsb2NhbCBmaWxlCi0rICAgIGZpbGU9JDEKLSsKLSsgICAgaWYgW1sgJCh0eXBlIC1wIGZhc3RqYXIpIF1dOyB0aGVuCi0rICAgICAgICBVTkpBUj1mYXN0amFyCi0rICAgIGVsaWYgW1sgJCh0eXBlIC1wIGphcikgXV07IHRoZW4KLSsgICAgICAgIFVOSkFSPWphcgotKyAgICBlbGlmIFtbICQodHlwZSAtcCB1bnppcCkgXV07IHRoZW4KLSsgICAgICAgIFVOSkFSPXVuemlwCi0rICAgIGVsc2UKLSsgICAgICAgIGVjaG8gIkVSUk9SOiBqYXIsIGZhc3RqYXIsIG9yIHVuemlwIGlzIG5vdCBpbnN0YWxsZWQgKHRyeWluZyBmaWxlICRmaWxlKSIKLSsgICAgICAgIGV4aXQgMQotKyAgICBmaQotKwotKyAgICBjYXNlICRVTkpBUiBpbgotKyAgICAgICAgamFyfGZhc3RqYXIpCi0rICAgICAgICAjIGVjaG8gamFyIC14ZiAkZmlsZQotKyAgICAgICAgJHtVTkpBUn0gLXhmICRmaWxlCi0rICAgICAgICA7OwotKyAgICAgICAgdW56aXApCi0rICAgICAgICB1bnppcCAtb3FxICRmaWxlCi0rICAgICAgICA7OwotKyAgICBlc2FjCi0rfQotKwotKyMgbGlzdCBmaWxlcyBpbiBkaXJlY3RvcnkKLSsjdXNhZ2UgdW5qYXJfbCA8ZmlsZT4KLStmdW5jdGlvbiB1bmphcl9sKCkKLSt7Ci0rICAgIGxvY2FsIGZpbGUKLSsgICAgZmlsZT0kMQotKwotKyAgICBpZiBbWyAkKHR5cGUgLXAgZmFzdGphcikgXV07IHRoZW4KLSsgICAgICAgIFVOSkFSPWZhc3RqYXIKLSsgICAgZWxpZiBbWyAkKHR5cGUgLXAgamFyKSBdXTsgdGhlbgotKyAgICAgICAgVU5KQVI9amFyCi0rICAgIGVsaWYgW1sgJCh0eXBlIC1wIHVuemlwKSBdXTsgdGhlbgotKyAgICAgICAgVU5KQVI9dW56aXAKLSsgICAgZWxzZQotKyAgICAgICAgZWNobyAiRVJST1I6IGphciwgZmFzdGphciwgb3IgdW56aXAgaXMgbm90IGluc3RhbGxlZCAodHJ5aW5nIGZpbGUgJGZpbGUpIgotKyAgICAgICAgZXhpdCAxCi0rICAgIGZpCi0rCi0rICAgIGNhc2UgJFVOSkFSIGluCi0rICAgICAgICBqYXJ8ZmFzdGphcikKLSsgICAgICAgICR7VU5KQVJ9IC10ZiAkZmlsZQotKyAgICAgICAgOzsKLSsgICAgICAgIHVuemlwKQotKyAgICAgICAgdW56aXAgLWwgJGZpbGUKLSsgICAgICAgIDs7Ci0rICAgIGVzYWMKLSt9Ci0rCi0rZmlsdGVyX2Rpc2FzbSgpCi0rewotKyAgIHNlZCAtZSAncy9eICpbMC05YS1mXVwrOi8vJyAtZSAncy9cJDB4WzAtOWEtZl1cKy8kc29tZXRoaW5nLycgLWUgJ3MvY2FsbHEgKlswLTlhLWZdXCsvY2FsbHEgLycgLWUgJ3MvIyAqWzAtOWEtZl1cKy8jICAvJyAtZSAncy9cKDB4XClcP1swLTlhLWZdXCsoL29mZnNldCgvJyAtZSAncy9bMC05YS1mXVwrIDwvPC8nIC1lICdzL148XCguKlwpPjovXDE6LycgLWUgJ3MvPFwoLipcKSsweFswLTlhLWZdXCs+LzxcMSArIG9mcz4vJyAKLSt9Ci0rCi0rZWNobyAiQ29tcGFyaW5nIGBiYXNlbmFtZSAkb2xkcGtnYCB0byBgYmFzZW5hbWUgJG5ld3BrZ2AiCi0rCi0rY2FzZSAkb2xkcGtnIGluCi0rICAqLnJwbSkKLSsgICAgIGNtcF9zcGVjICRyZW5hbWVfc2NyaXB0ICRvbGRwa2cgJG5ld3BrZwotKyAgICAgUkVTPSQ/Ci0rICAgICBjYXNlICRSRVMgaW4KLSsgICAgICAgMCkKLSsgICAgICAgICAgZWNobyAiUlBNIG1ldGEgaW5mb3JtYXRpb24gaXMgaWRlbnRpY2FsIgotKyAgICAgICAgICBpZiB0ZXN0IC16ICIkY2hlY2tfYWxsIjsgdGhlbgotKyAgICAgICAgICAgICBleGl0IDAKLSsgICAgICAgICAgZmkKLSsgICAgICAgICAgOzsKLSsgICAgICAgMSkKLSsgICAgICAgICAgZWNobyAiUlBNIG1ldGEgaW5mb3JtYXRpb24gaXMgZGlmZmVyZW50IgotKyAgICAgICAgICBpZiB0ZXN0IC16ICIkY2hlY2tfYWxsIjsgdGhlbgotKyAgICAgICAgICAgICBleGl0IDEKLSsgICAgICAgICAgZmkKLSsgICAgICAgICAgOzsKLSsgICAgICAgMikKLSsgICAgICAgICAgZWNobyAiUlBNIGZpbGUgY2hlY2tzdW0gZGlmZmVycy4iCi0rICAgICAgICAgIFJFUz0wCi0rICAgICAgICAgIDs7Ci0rICAgICAgICopCi0rICAgICAgICAgIGVjaG8gIldyb25nIGV4aXQgY29kZSEiCi0rICAgICAgICAgIGV4aXQgMQotKyAgICAgICAgICA7OwotKyAgICAgZXNhYwotKyAgICAgOzsKLStlc2FjCi0rCi0rZmlsZTE9YG1rdGVtcGAKLStmaWxlMj1gbWt0ZW1wYAotKwotK2Rpcj1gbWt0ZW1wIC1kYAotK2VjaG8gIkV4dHJhY3RpbmcgcGFja2FnZXMiCi0rdW5wYWNrYWdlICRvbGRwa2cgJGRpci9vbGQKLSt1bnBhY2thZ2UgJG5ld3BrZyAkZGlyL25ldwotKwotKyMgZmlsZXMgaXMgc2V0IGluIGNtcF9zcGVjIGZvciBycG1zLCBzbyBpZiBSRVMgaXMgZW1wdHkgd2Ugc2hvdWxkIGFzc3VtZQotKyMgaXQgd2Fzbid0IGFuIHJwbSBhbmQgcGljayBhbGwgZmlsZXMgZm9yIGNvbXBhcmlzb24uCi0raWYgWyAteiAkUkVTIF07IHRoZW4KLSsgICAgb2xkZmlsZXM9YGNkICRkaXIvb2xkOyBmaW5kIC4gLXR5cGUgZmAKLSsgICAgbmV3ZmlsZXM9YGNkICRkaXIvbmV3OyBmaW5kIC4gLXR5cGUgZmAKLSsKLSsgICAgZmlsZXM9YGVjaG8gLWUgIiRvbGRmaWxlc1xuJG5ld2ZpbGVzIiB8IHNvcnQgLXVgCi0rZmkKLSsKLStjZCAkZGlyCi0rYmFzaCAkcmVuYW1lX3NjcmlwdAotKwotK2RmaWxlPWBta3RlbXBgCi0rCi0rZGlmZl90d29fZmlsZXMoKQotK3sKLSsgIGlmICEgY21wIC1zIG9sZC8kZmlsZSBuZXcvJGZpbGU7IHRoZW4KLSsgICAgIGVjaG8gIiRmaWxlIGRpZmZlcnMgKCRmdHlwZSkiCi0rICAgICBoZXhkdW1wIC1DIG9sZC8kZmlsZSA+ICRmaWxlMQotKyAgICAgaGV4ZHVtcCAtQyBuZXcvJGZpbGUgPiAkZmlsZTIKLSsgICAgIGRpZmYgLXUgJGZpbGUxICRmaWxlMiB8IGhlYWQgLW4gMjAwCi0rICAgICByZXR1cm4gMQotKyAgZmkKLSsgIHJldHVybiAwCi0rfQotKwotK3RyaW1fbWFuX2ZpcnN0X2xpbmUoKQotK3sKLSsgICAgIyBIYW5kbGVzIHRoZSBmaXJzdCBsaW5lIGlmIGl0IGlzIGxpa2U6Ci0rICAgICMuXCIgQXV0b21hdGljYWxseSBnZW5lcmF0ZWQgYnkgUG9kOjpNYW4gMi4yOCAoUG9kOjpTaW1wbGUgMy4yOCkKLSsgICAgIy5cIiBETyBOT1QgTU9ESUZZIFRISVMgRklMRSEgIEl0IHdhcyBnZW5lcmF0ZWQgYnkgaGVscDJtYW4gMS40My4zLgotKyAgICBsb2NhbCBmPSQxCi0rICAgIHNlZCAtaSAtZSAnMXsKLSsgICAgc3xeXC5cXCJbWzpibGFuazpdXVwrQXV0b21hdGljYWxseVtbOmJsYW5rOl1dZ2VuZXJhdGVkW1s6Ymxhbms6XV1ieVtbOmJsYW5rOl1dUG9kOjpNYW5bWzpibGFuazpdXS4qfC5cXCIgT3Zlcmx5IHZlcmJvc2UgUG9kOjpNYW58Ci0rICAgIHN8XlwuXFwiW1s6Ymxhbms6XV1cK0RPW1s6Ymxhbms6XV1OT1RbWzpibGFuazpdXU1PRElGWVtbOmJsYW5rOl1dVEhJU1tbOmJsYW5rOl1dRklMRSFbWzpibGFuazpdXVwrSXRbWzpibGFuazpdXXdhc1tbOmJsYW5rOl1dZ2VuZXJhdGVkW1s6Ymxhbms6XV1ieVtbOmJsYW5rOl1daGVscDJtYW5bWzpibGFuazpdXS4qfC5cXCIgT3Zlcmx5IHZlcmJvc2UgaGVscDJtYW58Ci0rICAgIH0nICRmCi0rfQotKwotK3RyaW1fbWFuX1RIKCkKLSt7Ci0rICAgICMgSGFuZGxlcyBsaW5lcyBsaWtlOgotKyAgICAjIC5USCBkZWJoZWxwZXIgNyAiMjAxMC0wMi0yNyIgIjcuNC4xNSIgIkRlYmhlbHBlciIKLSsgICAgIyAuVEggRElSTU5HUi1DTElFTlQgMSAyMDEwLTAyLTI3ICJEaXJtbmdyIDEuMC4zIiAiR05VIFByaXZhY3kgR3VhcmQiCi0rICAgICMgLlRIIGNjbWFrZSAxICJNYXJjaCAwNiwgMjAxMCIgImNjbWFrZSAyLjguMS1yYzMiCi0rICAgICMgLlRIIFFFTVUtSU1HIDEgIjIwMTAtMDMtMTQiICIgIiAiICIKLSsgICAgIyAuVEgga2RlY21ha2UgMSAiTWF5IDA3LCAyMDEwIiAiY21ha2UgMi44LjEiCi0rICAgICMgLlRIICJhcHBlbmRlci5oIiAzICIxMiBNYXkgMjAxMCIgIlZlcnNpb24gMS4yLjEiICJsb2c0YyIgXCIgLSotIG5yb2ZmIC0qLQotKyAgICAjIC5USOKAgiJhcHBlbmRlci5oIuKAgjPigIIiVHVl4oCCQXVn4oCCMzHigIIyMDEwIuKAgiJWZXJzaW9u4oCCMS4yLjEi4oCCImxvZzRjIuKAglwi4oCCLSot4oCCbnJvZmbigIItKi0KLSsgICAgIyAuVEggIk9GRkxJTkVJTUFQIiAiMSIgIjExIE1heSAyMDEwIiAiSm9obiBHb2VyemVuIiAiT2ZmbGluZUlNQVAgTWFudWFsIgotKyAgICAjIC5USCBndiAzZ3VpbGUgIjEzIE1heSAyMDEwIgotKyAgICAjLlRIICJHSVRcLUFSQ0hJTVBPUlQiICIxIiAiMDkvMTMvMjAxMCIgIkdpdCAxXCYuN1wmLjEiICJHaXQgTWFudWFsIgotKyAgICAjIC5USCBMRElSRUNUT1JEIDggIjIwMTAtMTAtMjAiICJwZXJsIHY1LjEyLjIiICJVc2VyIENvbnRyaWJ1dGVkIFBlcmwgRG9jdW1lbnRhdGlvbiIKLSsgICAgIyAuVEggY2NtYWtlIDEgIkZlYnJ1YXJ5IDA1LCAyMDEyIiAiY2NtYWtlIDIuOC43IgotKyAgICAjIC5USOKAgiJhcHBlbmRlci5oIuKAgjPigIIiVHVl4oCCQXVn4oCCMzHigIIyMDEwIuKAgiJWZXJzaW9u4oCCMS4yLjEi4oCCImxvZzRjIuKAglwi4oCCLSot4oCCbnJvZmbigIItKi0KLSsgICAgIyAuVEggQVJDSCAiMSIgIlNlcHRlbWJlciAyMDEwIiAiR05VIGNvcmV1dGlscyA4LjUiICJVc2VyIENvbW1hbmRzIgotKyAgICAjIC5USCAiR0NNLUNBTElCUkFURSIgIjEiICIwMyBGZWJydWFyeSAyMDEyIiAiIiAiIgotKyAgICAjLlRIIExvY2FsZTo6UG80YTo6WG1sLnBtIDNwbSAiMjAxNS0wMS0zMCIgIlBvNGEgVG9vbHMiICJQbzRhIFRvb2xzIgotKyAgICBsb2NhbCBmPSQxCi0rICAgICMgKC5USCAgIHF1b3RlZCBzZWN0aW9uKSAocXVvdGVkX2RhdGUpKCopCi0rICAgIHNlZCAtaSAtZSAnc3xeXChbWzpibGFuazpdXSpcLlRIW1s6Ymxhbms6XV1cKyJbXiJdXCsiW1s6Ymxhbms6XV1cK1teWzpibGFuazpdXVwrXClbWzpibGFuazpdXVwrXCgiW14iXVwrIlwpXChbWzpibGFuazpdXVwrLipcKVw/fFwxICJxcTIwMDAtMDEtMDEiXDN8JyAkZgotKyAgICAjICguVEggdW5xdW90ZWQgc2VjdGlvbikgKHF1b3RlZF9kYXRlKSgqKQotKyAgICBzZWQgLWkgLWUgJ3N8XlwoW1s6Ymxhbms6XV0qXC5USFtbOmJsYW5rOl1dXCtbXiJdW15bOmJsYW5rOl1dXCtbWzpibGFuazpdXVwrW15bOmJsYW5rOl1dXCtcKVtbOmJsYW5rOl1dXCtcKCJbXiJdXCsiXClcKFtbOmJsYW5rOl1dXCsuKlwpXD98XDEgInVxMjAwMC0wMi0wMiJcM3wnICRmCi0rICAgICMgKC5USCAgIHF1b3RlZCBzZWN0aW9uKSAodW5xdW90ZWRfZGF0ZSkoKikKLSsgICAgc2VkIC1pIC1lICdzfF5cKFtbOmJsYW5rOl1dKlwuVEhbWzpibGFuazpdXVwrIlteIl1cKyJbWzpibGFuazpdXVwrW15bOmJsYW5rOl1dXCtcKVtbOmJsYW5rOl1dXCtcKFteIl1bXls6Ymxhbms6XV1cK1wpXChbWzpibGFuazpdXVwrLipcKVw/fFwxIHF1MjAwMC0wMy0wM1wzfCcgJGYKLSsgICAgIyAoLlRIIHVucXVvdGVkIHNlY3Rpb24pICh1bnF1b3RlZF9kYXRlKSgqKQotKyAgICBzZWQgLWkgLWUgJ3N8XlwoW1s6Ymxhbms6XV0qXC5USFtbOmJsYW5rOl1dXCtbXiJdW15bOmJsYW5rOl1dXCtbWzpibGFuazpdXVwrW15bOmJsYW5rOl1dXCtcKVtbOmJsYW5rOl1dXCtcKFteIl1bXls6Ymxhbms6XV1cK1wpXChbWzpibGFuazpdXVwrLipcKVw/fFwxIHV1MjAwMC0wNC0wNFwzfCcgJGYKLSt9Ci0rCi0rc3RyaXBfbnVtYmVyZWRfYW5jaG9ycygpCi0rewotKyAgIyBSZW1vdmUgbnVtYmVyZWQgYW5jaG9ycyBvbiBEb2Nib29rIC8gSFRNTCBmaWxlcy4KLSsgICMgVGhpcyBzaG91bGQgYmUgc2F2ZSBzaW5jZSB3ZSByZW1vdmUgdGhlbSBmcm9tIG9sZCBhbmQgbmV3IGZpbGVzLgotKyAgIyBBIHRyYWlsaW5nIDwvYT4gb3IgPC9kaXY+IHRhZyB3aWxsIHN0YXkgYWxzbyBvbiBib3RoIGZpbGVzLgotKyAgZm9yIGYgaW4gb2xkLyRmaWxlIG5ldy8kZmlsZTsgZG8KLSsgICAgIHNlZCAtaSAtZSAncyU8WyBdKmFbIF1cK25hbWVbXjxdKlswLTldXCtbXjxdKiUlZycgXAotKyAgICAgLWUgJ3MlPFsgXSphWyBdXCtocmVmW148XSojW148XSpbMC05XVwrW148XSolJWcnIFwKLSsgICAgIC1lICdzJTxbXjxdKmlkPSJmdG5cLltePF0qWzAtOV1cK1tePF0qJSVnJyAkZgotKyAgZG9uZQotK30KLSsKLSsKLStjaGVja19jb21wcmVzc2VkX2ZpbGUoKQotK3sKLSsgIGxvY2FsIGZpbGU9JDEKLSsgIGxvY2FsIGV4dD0kMgotKyAgbG9jYWwgdG1wZGlyPWBta3RlbXAgLWRgCi0rICBsb2NhbCBmdHlwZQotKyAgbG9jYWwgcmV0PTAKLSsgIGVjaG8gIiRleHQgZmlsZSB3aXRoIG9kZCBmaWxlbmFtZTogJGZpbGUiCi0rICBpZiB0ZXN0IC1uICIkdG1wZGlyIjsgdGhlbgotKyAgICBta2RpciAkdG1wZGlyL3tvbGQsbmV3fQotKyAgICBjcCAtLXBhcmVudHMgLS1kZXJlZmVyZW5jZSBvbGQvJGZpbGUgJHRtcGRpci8KLSsgICAgY3AgLS1wYXJlbnRzIC0tZGVyZWZlcmVuY2UgbmV3LyRmaWxlICR0bXBkaXIvCi0rICAgIGlmIHB1c2hkICR0bXBkaXIgPiAvZGV2L251bGwgOyB0aGVuCi0rICAgICAgY2FzZSAiJGV4dCIgaW4KLSsgICAgICAgIGJ6MikKLSsgICAgICAgICAgbXYgb2xkLyRmaWxleywuYnoyfQotKyAgICAgICAgICBtdiBuZXcvJGZpbGV7LC5iejJ9Ci0rICAgICAgICAgIGJ6aXAyIC1kIG9sZC8kZmlsZS5iejIKLSsgICAgICAgICAgYnppcDIgLWQgbmV3LyRmaWxlLmJ6MgotKyAgICAgICAgICA7OwotKyAgICAgICAgZ3ppcCkKLSsgICAgICAgICAgbXYgb2xkLyRmaWxleywuZ3p9Ci0rICAgICAgICAgIG12IG5ldy8kZmlsZXssLmd6fQotKyAgICAgICAgICBnemlwIC1kIG9sZC8kZmlsZS5negotKyAgICAgICAgICBnemlwIC1kIG5ldy8kZmlsZS5negotKyAgICAgICAgICA7OwotKyAgICAgICAgeHopCi0rICAgICAgICAgIG12IG9sZC8kZmlsZXssLnh6fQotKyAgICAgICAgICBtdiBuZXcvJGZpbGV7LC54en0KLSsgICAgICAgICAgeHogLWQgb2xkLyRmaWxlLnh6Ci0rICAgICAgICAgIHh6IC1kIG5ldy8kZmlsZS54egotKyAgICAgICAgICA7OwotKyAgICAgIGVzYWMKLSsgICAgICBmdHlwZT1gL3Vzci9iaW4vZmlsZSBvbGQvJGZpbGUgfCBzZWQgJ3NAXlteOl1cKzpbWzpibGFuazpdXSpAQCdgCi0rICAgICAgY2FzZSAkZnR5cGUgaW4KLSsgICAgICAgIFBPU0lYXCB0YXJcIGFyY2hpdmUpCi0rICAgICAgICAgIGVjaG8gIiRleHQgY29udGVudCBpczogJGZ0eXBlIgotKyAgICAgICAgICBtdiBvbGQvJGZpbGV7LC50YXJ9Ci0rICAgICAgICAgIG12IG5ldy8kZmlsZXssLnRhcn0KLSsgICAgICAgICAgaWYgISBjaGVja19zaW5nbGVfZmlsZSAke2ZpbGV9LnRhcjsgdGhlbgotKyAgICAgICAgICAgIHJldD0xCi0rICAgICAgICAgIGZpCi0rICAgICAgICAgIDs7Ci0rICAgICAgICBBU0NJSVwgY3Bpb1wgYXJjaGl2ZVwgKikKLSsgICAgICAgICAgZWNobyAiJGV4dCBjb250ZW50IGlzOiAkZnR5cGUiCi0rICAgICAgICAgIG12IG9sZC8kZmlsZXssLmNwaW99Ci0rICAgICAgICAgIG12IG5ldy8kZmlsZXssLmNwaW99Ci0rICAgICAgICAgIGlmICEgY2hlY2tfc2luZ2xlX2ZpbGUgJHtmaWxlfS5jcGlvOyB0aGVuCi0rICAgICAgICAgICAgcmV0PTEKLSsgICAgICAgICAgZmkKLSsgICAgICAgICAgOzsKLSsgICAgICAgICopCi0rICAgICAgICAgIGVjaG8gInVuaGFuZGxlZCAkZXh0IGNvbnRlbnQ6ICRmdHlwZSIKLSsgICAgICAgICAgaWYgISBkaWZmX3R3b19maWxlczsgdGhlbgotKyAgICAgICAgICAgIHJldD0xCi0rICAgICAgICAgIGZpCi0rICAgICAgICAgIDs7Ci0rICAgICAgZXNhYwotKyAgICAgIHBvcGQgPiAvZGV2L251bGwKLSsgICAgZmkKLSsgICAgcm0gLXJmICIkdG1wZGlyIgotKyAgZmkKLSsgIHJldHVybiAkcmV0Ci0rfQotKwotK2NoZWNrX3NpbmdsZV9maWxlKCkKLSt7Ci0rICBsb2NhbCBmaWxlPSIkMSIKLSsgIGNhc2UgJGZpbGUgaW4KLSsgICAgKi5zcGVjKQotKyAgICAgICBzZWQgLWkgLWUgInMsUmVsZWFzZTouKiRyZWxlYXNlMSxSZWxlYXNlOiBAUkVMRUFTRUAsIiBvbGQvJGZpbGUKLSsgICAgICAgc2VkIC1pIC1lICJzLFJlbGVhc2U6LiokcmVsZWFzZTIsUmVsZWFzZTogQFJFTEVBU0VALCIgbmV3LyRmaWxlCi0rICAgICAgIDs7Ci0rICAgICouZXhlLm1kYnwqLmRsbC5tZGIpCi0rICAgICAgICMgSnVzdCBkZWJ1ZyBpbmZvcm1hdGlvbiwgd2UgY2FuIHNraXAgdGhlbQotKyAgICAgICBlY2hvICIkZmlsZSBza2lwcGVkIGFzIGRlYnVnIGZpbGUuIgotKyAgICAgICByZXR1cm4gMAotKyAgICAgICA7OwotKyAgICAqLmEpCi0rICAgICAgIGZsaXN0PWBhciB0IG5ldy8kZmlsZWAKLSsgICAgICAgcHdkPSRQV0QKLSsgICAgICAgZmRpcj1gZGlybmFtZSAkZmlsZWAKLSsgICAgICAgY2Qgb2xkLyRmZGlyCi0rICAgICAgIGFyIHggYGJhc2VuYW1lICRmaWxlYAotKyAgICAgICBjZCAkcHdkL25ldy8kZmRpcgotKyAgICAgICBhciB4IGBiYXNlbmFtZSAkZmlsZWAKLSsgICAgICAgY2QgJHB3ZAotKyAgICAgICBmb3IgZiBpbiAkZmxpc3Q7IGRvCi0rICAgICAgICAgIGlmICEgY2hlY2tfc2luZ2xlX2ZpbGUgJGZkaXIvJGY7IHRoZW4KLSsgICAgICAgICAgICAgcmV0dXJuIDEKLSsgICAgICAgICAgZmkKLSsgICAgICAgZG9uZQotKyAgICAgICByZXR1cm4gMAotKyAgICAgICA7OwotKyAgICAqLmNwaW8pCi0rICAgICAgIGZsaXN0PWBjcGlvIC0tcXVpZXQgLS1saXN0IC0tZm9yY2UtbG9jYWwgPCAibmV3LyRmaWxlImAKLSsgICAgICAgcHdkPSRQV0QKLSsgICAgICAgZmRpcj0kZmlsZS5leHRyYWN0LiRQUElELiQkCi0rICAgICAgIG1rZGlyIG9sZC8kZmRpciBuZXcvJGZkaXIKLSsgICAgICAgY2Qgb2xkLyRmZGlyCi0rICAgICAgIGNwaW8gLS1xdWlldCAtLWV4dHJhY3QgLS1mb3JjZS1sb2NhbCA8ICIuLi8ke2ZpbGUjIyovfSIKLSsgICAgICAgY2QgJHB3ZC9uZXcvJGZkaXIKLSsgICAgICAgY3BpbyAtLXF1aWV0IC0tZXh0cmFjdCAtLWZvcmNlLWxvY2FsIDwgIi4uLyR7ZmlsZSMjKi99IgotKyAgICAgICBjZCAkcHdkCi0rICAgICAgIGxvY2FsIHJldD0wCi0rICAgICAgIGZvciBmIGluICRmbGlzdDsgZG8KLSsgICAgICAgICBpZiAhIGNoZWNrX3NpbmdsZV9maWxlICRmZGlyLyRmOyB0aGVuCi0rICAgICAgICAgICByZXQ9MQotKyAgICAgICAgICAgaWYgdGVzdCAteiAiJGNoZWNrX2FsbCI7IHRoZW4KLSsgICAgICAgICAgICAgYnJlYWsKLSsgICAgICAgICAgIGZpCi0rICAgICAgICAgZmkKLSsgICAgICAgZG9uZQotKyAgICAgICBybSAtcmYgb2xkLyRmZGlyIG5ldy8kZmRpcgotKyAgICAgICByZXR1cm4gJHJldAotKyAgICAgICA7OwotKyAgICAqLnRhcnwqLnRhci5iejJ8Ki50YXIuZ3p8Ki50Z3p8Ki50YnoyKQotKyAgICAgICBmbGlzdD1gdGFyIHRmIG5ldy8kZmlsZWAKLSsgICAgICAgcHdkPSRQV0QKLSsgICAgICAgZmRpcj1gZGlybmFtZSAkZmlsZWAKLSsgICAgICAgY2Qgb2xkLyRmZGlyCi0rICAgICAgIHRhciB4ZiBgYmFzZW5hbWUgJGZpbGVgCi0rICAgICAgIGNkICRwd2QvbmV3LyRmZGlyCi0rICAgICAgIHRhciB4ZiBgYmFzZW5hbWUgJGZpbGVgCi0rICAgICAgIGNkICRwd2QKLSsgICAgICAgbG9jYWwgcmV0PTAKLSsgICAgICAgZm9yIGYgaW4gJGZsaXN0OyBkbwotKyAgICAgICAgIGlmICEgY2hlY2tfc2luZ2xlX2ZpbGUgJGZkaXIvJGY7IHRoZW4KLSsgICAgICAgICAgIHJldD0xCi0rICAgICAgICAgICBpZiB0ZXN0IC16ICIkY2hlY2tfYWxsIjsgdGhlbgotKyAgICAgICAgICAgICBicmVhawotKyAgICAgICAgICAgZmkKLSsgICAgICAgICBmaQotKyAgICAgICBkb25lCi0rICAgICAgIHJldHVybiAkcmV0Ci0rICAgICAgIDs7Ci0rICAgICouemlwfCouamFyfCoud2FyKQotKyAgICAgICBjZCBvbGQKLSsgICAgICAgdW5qYXJfbCAuLyRmaWxlIHxzb3J0ID4gZmxpc3QKLSsgICAgICAgIyAgMTAtMDUtMjAxMCAxNDozOQotKyAgICAgICBzZWQgLWkgLWUgInMsIFswLTldWzAtOV0tWzAtOV1bMC05XS1bMC05XVwrIFswLTldWzAtOV06WzAtOV1bMC05XSAsIGRhdGUgLCIgZmxpc3QKLSsgICAgICAgIyAyMDEyLTAyLTAzIDA3OjU5Ci0rICAgICAgIHNlZCAtaSAtZSAicywgMjBbMC05XVswLTldLVswLTldWzAtOV0tWzAtOV1bMC05XSBbMC05XVswLTldOlswLTldWzAtOV0gLCBkYXRlICwiIGZsaXN0Ci0rICAgICAgIGNkIC4uL25ldwotKyAgICAgICB1bmphcl9sIC4vJGZpbGUgfHNvcnQ+IGZsaXN0Ci0rICAgICAgIHNlZCAtaSAtZSAicywgWzAtOV1bMC05XS1bMC05XVswLTldLVswLTldXCsgWzAtOV1bMC05XTpbMC05XVswLTldICwgZGF0ZSAsOyAiIGZsaXN0Ci0rICAgICAgIHNlZCAtaSAtZSAicywgMjBbMC05XVswLTldLVswLTldWzAtOV0tWzAtOV1bMC05XSBbMC05XVswLTldOlswLTldWzAtOV0gLCBkYXRlICwiIGZsaXN0Ci0rICAgICAgIGNkIC4uCi0rICAgICAgIGlmICEgY21wIC1zIG9sZC9mbGlzdCBuZXcvZmxpc3Q7IHRoZW4KLSsgICAgICAgICAgZWNobyAiJGZpbGUgaGFzIGRpZmZlcmVudCBmaWxlIGxpc3QiCi0rICAgICAgICAgIGRpZmYgLXUgb2xkL2ZsaXN0IG5ldy9mbGlzdAotKyAgICAgICAgICByZXR1cm4gMQotKyAgICAgICBmaQotKyAgICAgICBmbGlzdD1gZ3JlcCBkYXRlIG5ldy9mbGlzdCB8IHNlZCAtZSAncywuKiBkYXRlICwsJ2AKLSsgICAgICAgcHdkPSRQV0QKLSsgICAgICAgZmRpcj1gZGlybmFtZSAkZmlsZWAKLSsgICAgICAgY2Qgb2xkLyRmZGlyCi0rICAgICAgIHVuamFyIGBiYXNlbmFtZSAkZmlsZWAKLSsgICAgICAgY2QgJHB3ZC9uZXcvJGZkaXIKLSsgICAgICAgdW5qYXIgYGJhc2VuYW1lICRmaWxlYAotKyAgICAgICBjZCAkcHdkCi0rICAgICAgIGxvY2FsIHJldD0wCi0rICAgICAgIGZvciBmIGluICRmbGlzdDsgZG8KLSsgICAgICAgICBpZiB0ZXN0IC1mIG5ldy8kZmRpci8kZiAmJiAhIGNoZWNrX3NpbmdsZV9maWxlICRmZGlyLyRmOyB0aGVuCi0rICAgICAgICAgICByZXQ9MQotKyAgICAgICAgICAgaWYgdGVzdCAteiAiJGNoZWNrX2FsbCI7IHRoZW4KLSsgICAgICAgICAgICAgYnJlYWsKLSsgICAgICAgICAgIGZpCi0rICAgICAgICAgZmkKLSsgICAgICAgZG9uZQotKyAgICAgICByZXR1cm4gJHJldDs7Ci0rICAgICAqLnB5Y3wqLnB5bykKLSsgICAgICAgIHBlcmwgLWUgIm9wZW4gZmgsICcrPCcsICdvbGQvJGZpbGUnOyBzZWVrIGZoLCA0LCBTRUVLX1NFVDsgcHJpbnQgZmggJzAwMDAnOyIKLSsgICAgICAgIHBlcmwgLWUgIm9wZW4gZmgsICcrPCcsICduZXcvJGZpbGUnOyBzZWVrIGZoLCA0LCBTRUVLX1NFVDsgcHJpbnQgZmggJzAwMDAnOyIKLSsgICAgICAgIDs7Ci0rICAgICAqLmJ6MikKLSsgICAgICAgIGJ1bnppcDIgLWMgb2xkLyRmaWxlID4gb2xkLyR7ZmlsZS8uYnoyL30KLSsgICAgICAgIGJ1bnppcDIgLWMgbmV3LyRmaWxlID4gbmV3LyR7ZmlsZS8uYnoyL30KLSsgICAgICAgIGNoZWNrX3NpbmdsZV9maWxlICR7ZmlsZS8uYnoyL30KLSsgICAgICAgIHJldHVybiAkPwotKyAgICAgICAgOzsKLSsgICAgICouZ3opCi0rICAgICAgICBndW56aXAgLWMgb2xkLyRmaWxlID4gb2xkLyR7ZmlsZS8uZ3ovfQotKyAgICAgICAgZ3VuemlwIC1jIG5ldy8kZmlsZSA+IG5ldy8ke2ZpbGUvLmd6L30KLSsgICAgICAgIGNoZWNrX3NpbmdsZV9maWxlICR7ZmlsZS8uZ3ovfQotKyAgICAgICAgcmV0dXJuICQ/Ci0rICAgICAgICA7OwotKyAgICAgKi5ycG0pCi0rCSRzZWxmX3NjcmlwdCAtYSBvbGQvJGZpbGUgbmV3LyRmaWxlCi0rICAgICAgICByZXR1cm4gJD8KLSsgICAgICAgIDs7Ci0rICAgICAqcG5nKQotKwkjIFRyeSB0byByZW1vdmUgdGltZXN0YW1wcywgb25seSBpZiBjb252ZXJ0IGZyb20gSW1hZ2VNYWdpY2sgaXMgaW5zdGFsbGVkCi0rICAgICAgICBpZiBbWyAkKHR5cGUgLXAgY29udmVydCkgXV07IHRoZW4KLSsJICBjb252ZXJ0IG9sZC8kZmlsZSArc2V0IGRhdGU6Y3JlYXRlICtzZXQgZGF0ZTptb2RpZnkgb2xkLyR7ZmlsZS8ucG5nL19uLnBuZ30KLSsJICBjb252ZXJ0IG9sZC8kZmlsZSArc2V0IGRhdGU6Y3JlYXRlICtzZXQgZGF0ZTptb2RpZnkgbmV3LyR7ZmlsZS8ucG5nL19uLnBuZ30KLSsJICBpZiAhIGNtcCAtcyBvbGQvJHtmaWxlLy5wbmcvX24ucG5nfSBuZXcvJHtmaWxlLy5wbmcvX24ucG5nfTsgdGhlbgotKwkgICAgICBlY2hvICIkZmlsZSBkaWZmZXJzICgkZnR5cGUpIgotKwkgICAgICBoZXhkdW1wIC1DIG9sZC8ke2ZpbGUvLnBuZy9fbi5wbmd9ID4gJGZpbGUxCi0rCSAgICAgIGhleGR1bXAgLUMgbmV3LyR7ZmlsZS8ucG5nL19uLnBuZ30gPiAkZmlsZTIKLSsJICAgICAgZGlmZiAtdSAkZmlsZTEgJGZpbGUyIHwgaGVhZCAtbiAyMAotKwkgICAgICByZXR1cm4gMQotKwkgIGZpCi0rCSAgcmV0dXJuIDAKLSsJZmkKLSsgICAgICAgIDs7Ci0rICAgICAvdXNyL3NoYXJlL2xvY2FsZS8qL0xDX01FU1NBR0VTLyoubW98L3Vzci9zaGFyZS9sb2NhbGUtYnVuZGxlLyovTENfTUVTU0FHRVMvKi5tbykKLSsgICAgICAgZm9yIGYgaW4gb2xkLyRmaWxlIG5ldy8kZmlsZTsgZG8KLSsgICAgICAgICBzZWQgLWkgLWUgInMsUE9ULUNyZWF0aW9uLURhdGU6IC4uLi4tLi4tLi4gLi46Li4rLi4uLixQT1QtQ3JlYXRpb24tRGF0ZTogMTk3MC0wMS0wMSAwMDowMCswMDAwLCIgJGYKLSsgICAgICAgZG9uZQotKyAgICAgICA7OwotKyAgICAgL3Vzci9zaGFyZS9kb2MvcGFja2FnZXMvKi8qLmh0bWx8XAotKyAgICAgL3Vzci9zaGFyZS9kb2Mva2RlL0hUTUwvKi8qLyouaHRtbHwvdXNyL3NoYXJlL2RvYy8qL2h0bWwvKi5odG1sKQotKyAgICAgICBmb3IgZiBpbiBvbGQvJGZpbGUgbmV3LyRmaWxlOyBkbwotKyAgICAgICAgICMgdGV4aTJodG1sIG91dHB1dCwgZS5nLiBpbiBrdm0sIGluZGVudCwgcWVtdQotKwkgc2VkIC1pIC1lICJzfF48IS0tIENyZWF0ZWQgb24gLiosIDIwLi4gYnkgdGV4aTJodG1sIC5cLi4ufDwhLS0gQ3JlYXRlZCBvbiBBdWd1c3QgNywgMjAwOSBieSB0ZXhpMmh0bWwgMS44MnwiICRmCi0rCSBzZWQgLWkgLWUgJ3N8XiAqVGhpcyBkb2N1bWVudCB3YXMgZ2VuZXJhdGVkIGJ5IDxlbT5BdXRvYnVpbGQ8L2VtPiBvbiA8ZW0+LiosIDIwLi48L2VtPiB1c2luZyA8YSBocmVmPSJodHRwOi8vd3d3Lm5vbmdudS5vcmcvdGV4aTJodG1sLyI+PGVtPnRleGkyaHRtbCAuXC4uLjwvZW0+PC9hPi4kfCAgVGhpcyBkb2N1bWVudCB3YXMgZ2VuZXJhdGVkIGJ5IDxlbT5BdXRvYnVpbGQ8L2VtPiBvbiA8ZW0+QXVndXN0IDcsIDIwMDk8L2VtPiB1c2luZyA8YSBocmVmPSJodHRwOi8vd3d3Lm5vbmdudS5vcmcvdGV4aTJodG1sLyI+PGVtPnRleGkyaHRtbCAxLjgyPC9lbT48L2E+LnwnICRmCi0rCSAjIGRveHlnZW4gZG9jdSwgZS5nLiBpbiBsaWJzc2ggYW5kIGxvZzRjCi0rCSBzZWQgLWkgLWUgJ3N8R2VuZXJhdGVkIG9uIC4uLiAuLi4gWzAtOV0qIFswLTldKjpbMC05XVswLTldOlswLTldWzAtOV0gMjBbMC05XVswLTldIGZvciB8R2VuZXJhdGVkIG9uIE1vbiBNYXkgMTAgMjA6NDU6MDAgMjAxMCBmb3IgfCcgJGYKLSsJICMgR2VuZXJhdGVkIG9uIFNhdCBBdWcgMTQgMjAxMCAxNjo0OTo0OCBmb3IgbGlic3NoCi0rCSBzZWQgLWkgLWUgJ3N8R2VuZXJhdGVkIG9uIC4uLiAuLi4gWzAtOV0qIDIwWzAtOV1bMC05XSBbMC05XSo6WzAtOV1bMC05XTpbMC05XVswLTldIGZvciB8R2VuZXJhdGVkIG9uIE1vbiBNYXkgMTAgMjA6NDU6MDAgMjAxMCBmb3IgfCcgJGYKLSsgICAgICAgZG9uZQotKyAgICAgICBzdHJpcF9udW1iZXJlZF9hbmNob3JzCi0rICAgICAgIDs7Ci0rICAgICAvdXNyL3NoYXJlL2phdmFkb2MvKi5odG1sIHxcCi0rICAgICAvdXNyL3NoYXJlL2phdmFkb2MvKi8qLmh0bWx8L3Vzci9zaGFyZS9qYXZhZG9jLyovKi8qLmh0bWwpCi0rICAgICAgIHN0cmlwX251bWJlcmVkX2FuY2hvcnMKLSsgICAgICAgIyBUaGVyZSBhcmUgbW9yZSB0aW1lc3RhbXBzIGluIGh0bWwsIHNvIGZhciB3ZSBoYW5kbGUgb25seSBzb21lIHByaW1pdGl2ZSB2ZXJzaW9ucy4KLSsgICAgICAgZm9yIGYgaW4gb2xkLyRmaWxlIG5ldy8kZmlsZTsgZG8KLSsgICAgICAgICAjIEphdmFkb2M6Ci0rICAgICAgICAgICMgPGhlYWQ+Ci0rICAgICAgICAgICMgPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyAodmVyc2lvbiAxLjcuMF83NSkgb24gVHVlIEZlYiAwMyAwMjoyMDoxMiBHTVQgMjAxNSAtLT4KLSsgICAgICAgICAgIyA8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIFR1ZSBGZWIgMDMgMDA6MDI6NDggR01UIDIwMTUgLS0+Ci0rICAgICAgICAgICMgPG1ldGEgbmFtZT0iZGF0ZSIgY29udGVudD0iMjAxNS0wMi0wMyI+Ci0rICAgICAgICAgICMgPC9oZWFkPgotKyAgICAgICAgICBzZWQgLWkgLWUgJwotKyAgICAgICAgICAgIC9ePGhlYWQ+L3sKLSsgICAgICAgICAgICAgIDogbmV4dAotKyAgICAgICAgICAgICAgbgotKyAgICAgICAgICAgICAgL148XC9oZWFkPi97Ci0rICAgICAgICAgICAgICAgIGIgZW5kX2hlYWQKLSsgICAgICAgICAgICAgIH0KLSsgICAgICAgICAgICAgIHMvXlwoPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvY1wpIFwoKFwoYnVpbGRcfHZlcnNpb25cKSBbMC05Ll9dXCspIG9uIC4uLiAuLi4gLi4gLi46Li46Li4gXChHTVRcfFVUQ1wpIC4uLi5cKSBcKC0tPlwpL1wxIHNvbWUtZGF0ZS1yZW1vdmVkLWJ5LWJ1aWxkLWNvbXBhcmUgXDUvCi0rICAgICAgICAgICAgICB0IG5leHQKLSsgICAgICAgICAgICAgIHMvXlwoPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvY1wpIFwob24gLi4uIC4uLiAuLiAuLjouLjouLiBcKEdNVFx8VVRDXCkgLi4uLlwpIFwoLS0+XCkvXDEgc29tZS1kYXRlLXJlbW92ZWQtYnktYnVpbGQtY29tcGFyZSBcMy8KLSsgICAgICAgICAgICAgIHQgbmV4dAotKyAgICAgICAgICAgICAgcy9ePG1ldGEgbmFtZT0iZGF0ZSIgY29udGVudD0iWzAtOV1cezRcfS1bMC05XVx7Mlx9LVswLTldXHsyXH0iPi88bWV0YSBuYW1lPSJkYXRlIiBjb250ZW50PSJzb21lLWRhdGUtcmVtb3ZlZC1ieS1idWlsZC1jb21wYXJlIj4vCi0rICAgICAgICAgICAgICBiIG5leHQKLSsgICAgICAgICAgICB9Ci0rICAgICAgICAgICAgOiBlbmRfaGVhZAotKyAgICAgICAgICAnICRmCi0rICAgICAgICAgIyBHamRvYyBIdG1sRG9jbGV0OgotKwkgc2VkIC1pIC1lICdzJUdlbmVyYXRlZCBieSBHamRvYyBIdG1sRG9jbGV0IFswLTksLl0qLCBwYXJ0IG9mIDxhIGhyZWY9Imh0dHA6Ly93d3cuZ251Lm9yZy9zb2Z0d2FyZS9jbGFzc3BhdGgvY3AtdG9vbHMvIiB0aXRsZT0iIiB0YXJnZXQ9Il90b3AiPkdOVSBDbGFzc3BhdGggVG9vbHM8L2E+LCBvbiAuKiwgMjAuLiBbMC05XSo6Li46Li4gXChhXHxwXClcLm1cLiBHTVQuJUdlbmVyYXRlZCBieSBHamRvYy4lJyAkZgotKwkgc2VkIC1pIC1lICdzJTwhRE9DVFlQRSBodG1sIFBVQkxJQyAiLS8vZ251Lm9yZy8vL0RURCBYSFRNTCAxLjEgcGx1cyBUYXJnZXQgMS4wLy9FTiJcKC4qXClHTlUgQ2xhc3NwYXRoIFRvb2xzPC9hPiwgb24gW0EtWl1bYS16XSogWzAtOV0qLCAyMD8/IFswLTldKjo/Pzo/PyBcKGF8cFwpXC5tXC4gR01ULjwvcD4lPCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9nbnUub3JnLy8vRFREIFhIVE1MIDEuMSBwbHVzIFRhcmdldCAxLjAvL0VOIlwxR05VIENsYXNzcGF0aCBUb29sczwvYT4sIG9uIEphbnVhcnkgMSwgMjAwOSAwOjAwOjAwIGEubS4gR01ULjwvcD4lJyAkZgotKwkgc2VkIC1pIC1lICdzJTwhRE9DVFlQRSBodG1sIFBVQkxJQyAiLS8vZ251Lm9yZy8vL0RURFwoLipHTlUgQ2xhc3NwYXRoIFRvb2xzPC9hPlwpLCBvbiBbYS16QS1aXSogWzAtOV1bMC05XSwgMjAuLiBbMC05XSo6Li46Li4gXChhXHxwXClcLm1cLiBHTVQuPC9wPiU8IURPQ1RZUEUgaHRtbCBQVUJMSUMgIi0vL2dudS5vcmcvLy9EVERcMSxvbiBNYXkgMSwgMjAxMCAxOjExOjQyIHAubS4gR01ULjwvcD4lJyAkZgotKwkgIyBkZXByZWNhdGVkLWxpc3QgaXMgcmFuZG9tbHkgb3JkZXJlZCwgc29ydCBpdCBmb3IgY29tcGFyaXNvbgotKwkgY2FzZSAkZiBpbgotKwkgICAqL2RlcHJlY2F0ZWQtbGlzdC5odG1sKQotKwkgICAgIHNvcnQgLW8gJGYgJGYKLSsJICAgICA7OwotKwkgZXNhYwotKyAgICAgICBkb25lCi0rICAgICAgIDs7Ci0rICAgICAvdXNyL3NoYXJlL2phdmFkb2MvZ2pkb2MucHJvcGVydGllcyB8XAotKyAgICAgL3Vzci9zaGFyZS9qYXZhZG9jLyovZ2pkb2MucHJvcGVydGllcykKLSsgICAgICAgZm9yIGYgaW4gb2xkLyRmaWxlIG5ldy8kZmlsZTsgZG8KLSsJIHNlZCAtaSAtZSAnc3xeI1tBLVpdW2Etel1cezJcfSBbQS1aXVthLXpdXHsyXH0gWzAtOV1cezJcfSAuLjouLjouLiBHTVQgMjAuLiR8I0ZyaSBKYW4gMDEgMTE6Mjc6MzYgR01UIDIwMDl8JyAkZgotKyAgICAgICBkb25lCi0rICAgICAgIDs7Ci0rICAgICAqL2ZvbnRzLnNjYWxlfCovZm9udHMuZGlyfCovZW5jb2RpbmdzLmRpcikKLSsgICAgICAgZm9yIGYgaW4gb2xkLyRmaWxlIG5ldy8kZmlsZTsgZG8KLSsgICAgICAgICAjIHNvcnQgZmlsZXMgYmVmb3JlIGNvbXBhcmluZwotKyAgICAgICAgIHNvcnQgLW8gJGYgJGYKLSsgICAgICAgZG9uZQotKyAgICAgICA7OwotKyAgICAgL3Zhci9hZG0vcGVybC1tb2R1bGVzLyopCi0rICAgICAgIGZvciBmIGluIG9sZC8kZmlsZSBuZXcvJGZpbGU7IGRvCi0rICAgICAgICAgc2VkIC1pIC1lICdzfF49aGVhZDIgLi4uIC4uLiAuLiAuLjouLjouLiAuLi4uOiBDPE1vZHVsZT58PWhlYWQyIFdlZCBKdWwgIDEgMDA6MDA6MDAgMjAwOTogQzxNb2R1bGU+fCcgJGYKLSsgICAgICAgZG9uZQotKyAgICAgICA7OwotKyAgICAgL3Vzci9zaGFyZS9tYW4vbWFuMy8qM3BtKQotKyAgICAgICBmb3IgZiBpbiBvbGQvJGZpbGUgbmV3LyRmaWxlOyBkbwotKyAgICAgICAgIHNlZCAtaSAtZSAnc3wgMyAiMjAuLi0uLi0uLiIgInBlcmwgdjUuLi4uLiIgIlVzZXIgQ29udHJpYnV0ZWQgUGVybCBEb2N1bWVudGF0aW9uIiR8IDMgIjIwMDktMDEtMDEiICJwZXJsIHY1LjEwLjAiICJVc2VyIENvbnRyaWJ1dGVkIFBlcmwgRG9jdW1lbnRhdGlvbiJ8JyAkZgotKyAgICAgICAgIHRyaW1fbWFuX1RIICRmCi0rICAgICAgICAgdHJpbV9tYW5fZmlyc3RfbGluZSAkZgotKyAgICAgICBkb25lCi0rICAgICAgIDs7Ci0rICAgICAvdXNyL3NoYXJlL21hbi8qL21hbip8L3Vzci9zaGFyZS9tYW4vbWFuKnwvdXNyL2xpYi90ZXhtZi9kb2MvbWFuLyovKikKLSsKLSsgICAgICAgZm9yIGYgaW4gb2xkLyRmaWxlIG5ldy8kZmlsZTsgZG8KLSsgICAgICAgICB0cmltX21hbl9USCAkZgotKyAgICAgICAgIHRyaW1fbWFuX2ZpcnN0X2xpbmUgJGYKLSsgICAgICAgICAjIGdlbmVyYXRlZCBieSBkb2Nib29rIHhtbDoKLSsgICAgICAgICAjLlwiICAgICAgRGF0ZTogMDkvMTMvMjAxMAotKyAgICAgICAgIHNlZCAtaSAtZSAnc3xEYXRlOiBbMC0xXVswLTldL1swLTldWzAtOV0vMjAxWzAtOV18RGF0ZTogMDkvMTMvMjAxMHwnICRmCi0rICAgICAgIGRvbmUKLSsgICAgICAgOzsKLSsgICAgICouZWxjKQotKyAgICAgICAjIGVtYWNzIGxpc3AgZmlsZXMKLSsgICAgICAgZm9yIGYgaW4gb2xkLyRmaWxlIG5ldy8kZmlsZTsgZG8KLSsgICAgICAgICBzZWQgLWkgLWUgJ3N8Q29tcGlsZWQgYnkgYWJ1aWxkQC4qIG9uIC4uLiAuLi4gLi4gLi46Li46Li4gMjAuLiR8Y29tcGlsZWQgYnkgYWJ1aWxkQGJ1aWxkaG9zdCBvbiBXZWQgSnVsIDAxIDAwOjAwOjAwIDIwMDl8JyAkZgotKyAgICAgICBkb25lCi0rICAgICAgIDs7Ci0rICAgICAvdmFyL2xpYi90ZXhtZi93ZWIyYy8qLypmbXQgfFwKLSsgICAgIC92YXIvbGliL3RleG1mL3dlYjJjL21ldGFmb250LyouYmFzZXxcCi0rICAgICAvdmFyL2xpYi90ZXhtZi93ZWIyYy9tZXRhcG9zdC8qLm1lbSkKLSsgICAgICAgIyBiaW5hcnkgZHVtcCBvZiBUZVggYW5kIE1ldGFmb250IGZvcm1hdHMsIHdlIGNhbiBpZ25vcmUgdGhlbSBmb3IgZ29vZAotKyAgICAgICBlY2hvICJkaWZmZXJlbmNlIGluICRmaWxlIGlnbm9yZWQuIgotKyAgICAgICByZXR1cm4gMAotKyAgICAgICA7OwotKyAgICAgKi9saWJ0b29sKQotKyAgICAgICBmb3IgZiBpbiBvbGQvJGZpbGUgbmV3LyRmaWxlOyBkbwotKwkgIHNlZCAtaSAtZSAnc3xeIyBMaWJ0b29sIHdhcyBjb25maWd1cmVkIG9uIGhvc3QgW0EtWmEtejAtOV0qOiR8IyBMaWJ0b29sIHdhcyBjb25maWd1cmVkIG9uIGhvc3QgeDQyOnwnICRmCi0rICAgICAgIGRvbmUKLSsgICAgICAgOzsKLSsgICAgIC9ldGMvbWFpbC8qY2Z8L2V0Yy9zZW5kbWFpbC5jZikKLSsgICAgICAgIyBmcm9tIHNlbmRtYWlsIHBhY2thZ2UKLSsgICAgICAgZm9yIGYgaW4gb2xkLyRmaWxlIG5ldy8kZmlsZTsgZG8KLSsJICAjIC0gIyMjIyMgYnVpbHQgYnkgYWJ1aWxkQGJ1aWxkMzMgb24gVGh1IE1heSA2IDExOjIxOjE3IFVUQyAyMDEwCi0rCSAgc2VkIC1pIC1lICdzfGJ1aWx0IGJ5IGFidWlsZEBbYS16MC05XSogb24gLi4uIC4uLiBbMC05XSogWzAtOV0qOlswLTldWzAtOV06WzAtOV1bMC05XSAuKiAyMFswLTldWzAtOV18YnVpbHQgYnkgYWJ1aWxkQGJ1aWxkNDIgb24gVGh1IE1heSA2IDExOjIxOjE3IFVUQyAyMDEwfCcgJGYKLSsgICAgICAgZG9uZQotKyAgICAgICA7OwotKyAgICAgL3Vzci9zaGFyZS9kb2Mva2RlL0hUTUwvKi8qL2luZGV4LmNhY2hlfC91c3Ivc2hhcmUvZG9jL2tkZS9IVE1MLyovKi8qL2luZGV4LmNhY2hlfFwKLSsgICAgIC91c3Ivc2hhcmUvZ3RrLWRvYy9odG1sLyovKi5odG1sfC91c3Ivc2hhcmUvZ3RrLWRvYy9odG1sLyovKi5kZXZoZWxwMikKLSsgICAgICAgIyB2YXJpb3VzIGtkZSBhbmQgZ3RrIHBhY2thZ2VzCi0rICAgICAgIHN0cmlwX251bWJlcmVkX2FuY2hvcnMKLSsgICAgICAgOzsKLSsgICAgKi9jcmVhdGVkLnJpZCkKLSsgICAgICAgIyBydWJ5IGRvY3VtZW50YXRpb24KLSsgICAgICAgIyBmaWxlIGp1c3QgY29udGFpbnMgYSB0aW1lc3RhbXAgYW5kIG5vdGhpbmcgZWxzZSwgc28gaWdub3JlIGl0Ci0rICAgICAgIGVjaG8gIklnbm9yZSAkZmlsZSIKLSsgICAgICAgcmV0dXJuIDAKLSsgICAgICAgOzsKLSsgICAgKi9yZG9jL2ZpbGVzLyouaHRtbCkKLSsgICAgICAgIyBydWJ5IGRvY3VtZW50YXRpb24KLSsgICAgICAgIyA8dGQ+TW9u4oCCU2Vw4oCCMjDigIIxOTowMjo0M+KAgiswMDAw4oCCMjAxMDwvdGQ+Ci0rICAgICAgIGZvciBmIGluIG9sZC8kZmlsZSBuZXcvJGZpbGU7IGRvCi0rICAgICAgICAgIHNlZCAtaSAtZSAncyU8dGQ+W0EtWl1bYS16XVthLXpdIFtBLVpdW2Etel1bYS16XSBbMC05XVwrIFswLTldXCs6WzAtOV1cKzpbMC05XVwrICswMDAwIDIwMVswLTldPC90ZD4lPHRkPk1vbuKAglNlcOKAgjIw4oCCMTk6MDI6NDPigIIrMDAwMOKAgjIwMTA8L3RkPiVnJyAkZgotKyAgICAgICBkb25lCi0rICAgICAgIHN0cmlwX251bWJlcmVkX2FuY2hvcnMKLSsgICAgICAgOzsKLSsgICAgKi9MaW51eCpFbnYuU2V0LnNoKQotKyAgICAgICAjIExpYnJlT2ZmaWNlIGZpbGVzLCBjb250YWluczoKLSsgICAgICAgIyBHZW5lcmF0ZWQgb246IE1vbiBBcHIgMTggMTM6MTk6MjIgVVRDIDIwMTEKLSsgICAgICAgZm9yIGYgaW4gb2xkLyRmaWxlIG5ldy8kZmlsZTsgZG8KLSsJIHNlZCAtaSAtZSAncyVeIyBHZW5lcmF0ZWQgb246LipVVEMgMjAxWzAtOV0gKiQlIyBHZW5lcmF0ZWQgb246IFNvbWV0aW1lJWcnICRmCi0rICAgICAgIGRvbmUKLSsgICAgICAgOzsKLSsgICAgL3Vzci9saWIvbGlicmVvZmZpY2Uvc29sdmVyL2luYy8qL2RlbGl2ZXIubG9nKQotKyAgICAgICAjIExpYnJlT2ZmaWNlIGxvZyBmaWxlCi0rICAgICAgZWNobyAiSWdub3JlICRmaWxlIgotKyAgICAgIHJldHVybiAwCi0rICAgICAgOzsKLSsgICAgL3Zhci9hZG0vdXBkYXRlLW1lc3NhZ2VzLyp8L3Zhci9hZG0vdXBkYXRlLXNjcmlwdHMvKikKLSsgICAgICAjIGVuY29kZSB2ZXJzaW9uLXJlbGVhc2UgaW5zaWRlCi0rICAgICAgb2xkZm49YGVjaG8gIiRmaWxlInxzZWQgLWUgcy8tJHJlbGVhc2UyLy0kcmVsZWFzZTEvO2AKLSsKLSsgICAgICAjIGZldGNobXN0dGZvbnRzIGVtYmVkcyB0aGUgcmVsZWFzZSBudW1iZXIgaW4gdGhlIHVwZGF0ZSBzaGVsbCBzY3JpcHQuCi0rICAgICAgZWNobyBzZWQgLWkgLWUgInMvLSRyZWxlYXNlMS8tJHJlbGVhc2UyL2c7IiAib2xkLyRvbGRmbiIKLSsgICAgICBzZWQgLWkgLWUgInMvLSRyZWxlYXNlMS8tJHJlbGVhc2UyL2c7IiAib2xkLyRvbGRmbiIKLSsKLSsgICAgICBpZiAhIGRpZmYgLXUgb2xkLyRvbGRmbiBuZXcvJGZpbGU7IHRoZW4KLSsgICAgICAgICAgIGVjaG8gIiRvbGRmbiBpcyBub3Qgc2FtZSBhcyAkZmlsZSIKLSsgICAgICAgICAgIHJldHVybiAxCi0rICAgICAgZmkKLSsgICAgICBlY2hvICIkZmlsZSBhbmQgJG9sZGZuIGFyZSBzYW1lIgotKyAgICAgIHJldHVybiAwCi0rICAgICAgOzsKLSsgICAgKi5wcykKLSsgICAgICBmb3IgZiBpbiAib2xkLyRmaWxlIiAibmV3LyRmaWxlIjsgZG8KLSsgICAgICAgIHNlZCAtaSAtZSAnCi0rICAgICAgICAgIC9eJSVDcmVhdGlvbkRhdGU6W1s6Ymxhbms6XV0vZAotKyAgICAgICAgICAvXiUlQ3JlYXRvcjpbWzpibGFuazpdXWdyb2ZmW1s6Ymxhbms6XV12ZXJzaW9uW1s6Ymxhbms6XV0vZAotKyAgICAgICAgICAvXiVEVklQU1NvdXJjZTpbWzpibGFuazpdXS9kCi0rICAgICAgICAnICIkZiIKLSsgICAgICBkb25lCi0rICAgIDs7Ci0rICAgICpwZGYpCi0rICAgICAgIyBQREYgZmlsZXMgY29udGFpbiBhIHVuaXF1ZSBJRCwgcmVtb3ZlIGl0Ci0rICAgICAgIyBGb3JtYXQgb2YgdGhlIElEIGlzOgotKyAgICAgICMgL0lEIFs8OUFDRTI0N0E3MENGOUJFQUZFRTE1RTExNjI1OUJENkQ+IDw5QUNFMjQ3QTcwQ0Y5QkVBRkVFMTVFMTE2MjU5QkQ2RD5dCi0rICAgICAgIyB3aXRoIG9wdGlvbmFsIHNwYWNlcy4gcGRmdGV4IGNyZWF0ZXMgYWxzbzoKLSsgICAgICAjIC9DcmVhdGlvbkRhdGUgKEQ6MjAxMjAxMDMwODMyMDZaKQotKyAgICAgICMgL01vZERhdGUgKEQ6MjAxMjAxMDMwODMyMDZaKQotKyAgICAgICMgYW5kIHBvc3NpYmx5IFhNTCBtZXRhZGF0YSBhcyB3ZWxsCi0rICAgICAgZm9yIGYgaW4gIm9sZC8kZmlsZSIgIm5ldy8kZmlsZSI7IGRvCi0rICAgICAgICBzZWQgLWkgXAotKyAgICAgICAgICAgICcvb2JqLywvZW5kb2JqL3sKLSsgICAgICAgICAgICAgICBzJS9JRCBcP1xbIFw/PFtePl1cKz4gXD88W14+XVwrPiBcP1xdJS9JRHJhbmRvbSVnOwotKyAgICAgICAgICAgICAgIHMlL0NyZWF0aW9uRGF0ZSBcPyhEOlteKV0qKSUvQ3JlYXRpb25EYXRlIChEOiBYWFgpJWc7Ci0rICAgICAgICAgICAgICAgcyUvTW9kRGF0ZSBcPyhEOlteKV0qKSUvTW9kRGF0ZSAoRDogWFhYKSVnOwotKyAgICAgICAgICAgICAgIHMlPHBkZjpDcmVhdGlvbkRhdGU+W148XSo8L3BkZjpDcmVhdGlvbkRhdGU+JTxwZGY6Q3JlYXRpb25EYXRlPlhYWDwvcGRmOkNyZWF0aW9uRGF0ZT4lZzsKLSsgICAgICAgICAgICAgICBzJTxwZGY6TW9kRGF0ZT5bXjxdKjwvcGRmOk1vZERhdGU+JTxwZGY6TW9kRGF0ZT5YWFg8L3BkZjpNb2REYXRlPiVnOwotKyAgICAgICAgICAgICAgIHMlPHhhcDpDcmVhdGVEYXRlPltePF0qPC94YXA6Q3JlYXRlRGF0ZT4lPHhhcDpDcmVhdGVEYXRlPlhYWDwveGFwOkNyZWF0ZURhdGU+JWc7Ci0rICAgICAgICAgICAgICAgcyU8eGFwOk1vZGlmeURhdGU+W148XSo8L3hhcDpNb2RpZnlEYXRlPiU8eGFwOk1vZGlmeURhdGU+WFhYPC94YXA6TW9kaWZ5RGF0ZT4lZzsKLSsgICAgICAgICAgICAgICBzJTx4YXA6TWV0YWRhdGFEYXRlPltePF0qPC94YXA6TWV0YWRhdGFEYXRlPiU8eGFwOk1ldGFkYXRhRGF0ZT5YWFg8L3hhcDpNZXRhZGF0YURhdGU+JWc7Ci0rICAgICAgICAgICAgfScgIiRmIgotKyAgICAgIGRvbmUKLSsgICAgICA7OwotKyAgZXNhYwotKwotKyAgZnR5cGU9YC91c3IvYmluL2ZpbGUgb2xkLyRmaWxlIHwgc2VkICdzQF5bXjpdXCs6W1s6Ymxhbms6XV0qQEAnYAotKyAgY2FzZSAkZnR5cGUgaW4KLSsgICAgIFBFMzJcIGV4ZWN1dGFibGUqTW9ub1wvXC5OZXRcIGFzc2VtYmx5KikKLSsgICAgICAgZWNobyAiUEUzMiBNb25vLy5OZXQgYXNzZW1ibHk6ICRmaWxlIgotKyAgICAgICBpZiBbIC14IC91c3IvYmluL21vbm9kaXMgXSA7IHRoZW4KLSsgICAgICAgICBtb25vZGlzIG9sZC8kZmlsZSAyPi9kZXYvbnVsbHxzZWQgLWUgJ3MvR1VJRCA9IHsuKn0vR1VJRCA9IHsgNDIgfS87Jz4gJHtmaWxlMX0KLSsgICAgICAgICBtb25vZGlzIG5ldy8kZmlsZSAyPi9kZXYvbnVsbHxzZWQgLWUgJ3MvR1VJRCA9IHsuKn0vR1VJRCA9IHsgNDIgfS87Jz4gJHtmaWxlMn0KLSsgICAgICAgICBpZiAhIGNtcCAtcyAke2ZpbGUxfSAke2ZpbGUyfTsgdGhlbgotKyAgICAgICAgICAgZWNobyAiJGZpbGUgZGlmZmVycyAoJGZ0eXBlKSIKLSsgICAgICAgICAgIGRpZmYgLXUgJHtmaWxlMX0gJHtmaWxlMn0KLSsgICAgICAgICAgIHJldHVybiAxCi0rICAgICAgICAgZmkKLSsgICAgICAgZWxzZQotKyAgICAgICAgIGVjaG8gIkNhbm5vdCBjb21wYXJlLCBubyBtb25vZGlzIGluc3RhbGxlZCIKLSsgICAgICAgICByZXR1cm4gMQotKyAgICAgICBmaQotKyAgICAgICA7OwotKyAgICBFTEYqZXhlY3V0YWJsZSp8RUxGKltMTV1TQlwgc2hhcmVkXCBvYmplY3QqKQotKyAgICAgICBvYmpkdW1wIC1kIC0tbm8tc2hvdy1yYXctaW5zbiBvbGQvJGZpbGUgfCBmaWx0ZXJfZGlzYXNtID4gJGZpbGUxCi0rICAgICAgIGlmICEgdGVzdCAtcyAkZmlsZTE7IHRoZW4KLSsgICAgICAgICAjIG9iamR1bXAgaGFzIG5vIGlkZWEgaG93IHRvIGhhbmRsZSBpdAotKyAgICAgICAgIGlmICEgZGlmZl90d29fZmlsZXM7IHRoZW4KLSsgICAgICAgICAgIHJldD0xCi0rICAgICAgICAgICBicmVhawotKyAgICAgICAgIGZpCi0rICAgICAgIGZpICAgICAgIAotKyAgICAgICBlbGZkaWZmPQotKyAgICAgICBzZWQgLWkgLWUgInMsb2xkLywsIiAkZmlsZTEKLSsgICAgICAgb2JqZHVtcCAtZCAtLW5vLXNob3ctcmF3LWluc24gbmV3LyRmaWxlIHwgZmlsdGVyX2Rpc2FzbSA+ICRmaWxlMgotKyAgICAgICBzZWQgLWkgLWUgInMsbmV3LywsIiAkZmlsZTIKLSsgICAgICAgaWYgISBkaWZmIC11ICRmaWxlMSAkZmlsZTIgPiAkZGZpbGU7IHRoZW4KLSsgICAgICAgICAgZWNobyAiJGZpbGUgZGlmZmVycyBpbiBhc3NlbWJsZXIgb3V0cHV0IgotKyAgICAgICAgICBoZWFkIC1uIDIwMCAkZGZpbGUKLSsgICAgICAgICAgZWxmZGlmZj0iMSIKLSsgICAgICAgZmkKLSsgICAgICAgZWNobyAiIiA+JGZpbGUxCi0rICAgICAgIGVjaG8gIiIgPiRmaWxlMgotKyAgICAgICAjIERvbid0IGNvbXBhcmUgLmJ1aWxkLWlkIGFuZCAuZ251X2RlYnVnbGluayBzZWN0aW9ucwotKyAgICAgICBzZWN0aW9ucz0iJChvYmpkdW1wIC1zIG5ldy8kZmlsZSB8IGdyZXAgIkNvbnRlbnRzIG9mIHNlY3Rpb24gLio6IiB8IHNlZCAtciAicywuKiAoLiopOixcMSxnIiB8IGdyZXAgLXYgLWUgIlwuYnVpbGQtaWQiIC1lICJcLmdudV9kZWJ1Z2xpbmsiIHwgdHIgIlxuIiAiICIpIgotKyAgICAgICBmb3Igc2VjdGlvbiBpbiAkc2VjdGlvbnM7IGRvCi0rICAgICAgICAgIG9iamR1bXAgLXMgLWogJHNlY3Rpb24gb2xkLyRmaWxlIHwgc2VkICJzLF5vbGQvLCwiID4gJGZpbGUxCi0rICAgICAgICAgIG9iamR1bXAgLXMgLWogJHNlY3Rpb24gbmV3LyRmaWxlIHwgc2VkICJzLF5uZXcvLCwiID4gJGZpbGUyCi0rICAgICAgICAgIGlmICEgZGlmZiAtdSAkZmlsZTEgJGZpbGUyID4gJGRmaWxlOyB0aGVuCi0rICAgICAgICAgICAgIGVjaG8gIiRmaWxlIGRpZmZlcnMgaW4gRUxGIHNlY3Rpb24gJHNlY3Rpb24iCi0rICAgICAgICAgICAgIGhlYWQgLW4gMjAwICRkZmlsZQotKyAgICAgICAgICAgICBlbGZkaWZmPSIxIgotKyAgICAgICAgICBmaQotKyAgICAgICBkb25lCi0rICAgICAgIGlmIHRlc3QgLXogIiRlbGZkaWZmIjsgdGhlbgotKyAgICAgICAgICBlY2hvICIkZmlsZTogb25seSBkaWZmZXJlbmNlIHdhcyBpbiBidWlsZC1pZCBvciBnbnVfZGVidWdsaW5rLCBHT09ELiIKLSsgICAgICAgICAgcmV0dXJuIDAKLSsgICAgICAgZmkKLSsgICAgICAgcmV0dXJuIDEKLSsgICAgICAgOzsKLSsgICAgICpBU0NJSSp8KnRleHQqKQotKyAgICAgICBpZiAhIGNtcCAtcyBvbGQvJGZpbGUgbmV3LyRmaWxlOyB0aGVuCi0rICAgICAgICAgZWNobyAiJGZpbGUgZGlmZmVycyAoJGZ0eXBlKSIKLSsgICAgICAgICBkaWZmIC11IG9sZC8kZmlsZSBuZXcvJGZpbGUgfCBoZWFkIC1uIDIwMAotKyAgICAgICAgIHJldHVybiAxCi0rICAgICAgIGZpCi0rICAgICAgIDs7Ci0rICAgICBkaXJlY3Rvcnl8c2V0dWlkLFwgZGlyZWN0b3J5fHN0aWNreSxcIGRpcmVjdG9yeSkKLSsgICAgICAgIyB0YXIgbWlnaHQgcGFja2FnZSBkaXJlY3RvcmllcyAtIGlnbm9yZSB0aGVtIGhlcmUKLSsgICAgICAgcmV0dXJuIDAKLSsgICAgICAgOzsKLSsgICAgIGJ6aXAyXCBjb21wcmVzc2VkXCBkYXRhKikKLSsgICAgICAgaWYgISBjaGVja19jb21wcmVzc2VkX2ZpbGUgIiRmaWxlIiAiYnoyIjsgdGhlbgotKyAgICAgICAgICAgcmV0dXJuIDEKLSsgICAgICAgZmkKLSsgICAgICAgOzsKLSsgICAgIGd6aXBcIGNvbXByZXNzZWRcIGRhdGEqKQotKyAgICAgICBpZiAhIGNoZWNrX2NvbXByZXNzZWRfZmlsZSAiJGZpbGUiICJnemlwIjsgdGhlbgotKyAgICAgICAgICAgcmV0dXJuIDEKLSsgICAgICAgZmkKLSsgICAgICAgOzsKLSsgICAgIFhaXCBjb21wcmVzc2VkXCBkYXRhKikKLSsgICAgICAgaWYgISBjaGVja19jb21wcmVzc2VkX2ZpbGUgIiRmaWxlIiAieHoiOyB0aGVuCi0rICAgICAgICAgICByZXR1cm4gMQotKyAgICAgICBmaQotKyAgICAgICA7OwotKyAgICAgUE9TSVhcIHRhclwgYXJjaGl2ZSkKLSsgICAgICAgICAgbXYgb2xkLyRmaWxleywudGFyfQotKyAgICAgICAgICBtdiBuZXcvJGZpbGV7LC50YXJ9Ci0rICAgICAgICAgIGlmICEgY2hlY2tfc2luZ2xlX2ZpbGUgJHtmaWxlfS50YXI7IHRoZW4KLSsgICAgICAgICAgICByZXR1cm4gMQotKyAgICAgICAgICBmaQotKyAgICAgICA7OwotKyAgICAgY3Bpb1wgYXJjaGl2ZSkKLSsgICAgICAgICAgbXYgb2xkLyRmaWxleywuY3Bpb30KLSsgICAgICAgICAgbXYgbmV3LyRmaWxleywuY3Bpb30KLSsgICAgICAgICAgaWYgISBjaGVja19zaW5nbGVfZmlsZSAke2ZpbGV9LmNwaW87IHRoZW4KLSsgICAgICAgICAgICByZXR1cm4gMQotKyAgICAgICAgICBmaQotKyAgICAgOzsKLSsgICAgIHN5bWJvbGljXCBsaW5rXCB0b1wgKikKLSsgICAgICAgcmVhZGxpbmsgIm9sZC8kZmlsZSIgPiAkZmlsZTEKLSsgICAgICAgcmVhZGxpbmsgIm5ldy8kZmlsZSIgPiAkZmlsZTIKLSsgICAgICAgaWYgISBkaWZmIC11ICRmaWxlMSAkZmlsZTI7IHRoZW4KLSsgICAgICAgICBlY2hvICJzeW1saW5rIHRhcmdldCBmb3IgJGZpbGUgZGlmZmVycyIKLSsgICAgICAgICByZXR1cm4gMQotKyAgICAgICBmaQotKyAgICAgICA7OwotKyAgICAgKikKLSsgICAgICAgaWYgISBkaWZmX3R3b19maWxlczsgdGhlbgotKyAgICAgICAgICAgcmV0dXJuIDEKLSsgICAgICAgZmkKLSsgICAgICAgOzsKLSsgIGVzYWMKLSsgIHJldHVybiAwCi0rfQotKwotKyMgV2UgbmVlZCAvcHJvYyBtb3VudGVkIGZvciBzb21lIHRlc3RzLCBzbyBjaGVjayB0aGF0IGl0J3MgbW91bnRlZCBhbmQKLSsjIGNvbXBsYWluIGlmIG5vdC4KLStQUk9DX01PVU5URUQ9MAotK2lmIFsgISAtZCAvcHJvYy9zZWxmLyBdOyB0aGVuCi0rICBlY2hvICIvcHJvYyBpcyBub3QgbW91bnRlZCIKLSsgIG1vdW50IC1vcncgLW4gLXRwcm9jIG5vbmUgL3Byb2MKLSsgIFBST0NfTU9VTlRFRD0xCi0rZmkKLSsKLSsjIHByZXNlcnZlIGNtcF9zcGVjIHJlc3VsdCBmb3IgY2hlY2tfYWxsIHJ1bnMKLStyZXQ9JFJFUwotK2ZvciBmaWxlIGluICRmaWxlczsgZG8KLSsgICBpZiAhIGNoZWNrX3NpbmdsZV9maWxlICRmaWxlOyB0aGVuCi0rICAgICAgIHJldD0xCi0rICAgICAgIGlmIHRlc3QgLXogIiRjaGVja19hbGwiOyB0aGVuCi0rICAgICAgICAgICBicmVhawotKyAgICAgICBmaQotKyAgIGZpCi0rZG9uZQotKwotK2lmIFsgIiRQUk9DX01PVU5URUQiIC1lcSAiMSIgXTsgdGhlbgotKyAgZWNobyAiVW5tb3VudGluZyBwcm9jIgotKyAgdW1vdW50IC9wcm9jCi0rZmkKLSsKLStybSAkZmlsZTEgJGZpbGUyICRkZmlsZSAkcmVuYW1lX3NjcmlwdAotK3JtIC1yZiAkZGlyCi0raWYgdGVzdCAiJHJldCIgPSAwOyB0aGVuCi0rICAgICBlY2hvICJQYWNrYWdlIGNvbnRlbnQgaXMgaWRlbnRpY2FsIgotK2ZpCi0rZXhpdCAkcmV0Ci0rIyB2aW06IHR3PTY2NiB0cz0yIGV0Ci1kaWZmIC0tZ2l0IGEvcnBtLWNoZWNrLnNoIGIvcnBtLWNoZWNrLnNoCi1kZWxldGVkIGZpbGUgbW9kZSAxMDA3NTUKLWluZGV4IGRkNDc2NDIuLjAwMDAwMDAKLS0tLSBhL3JwbS1jaGVjay5zaAotKysrIC9kZXYvbnVsbAotQEAgLTEsNzY0ICswLDAgQEAKLS0jISAvYmluL2Jhc2gKLS0jCi0tIyBDb3B5cmlnaHQgKGMpIDIwMDksIDIwMTAsIDIwMTEsIDIwMTIgU1VTRSBMaW51eCBQcm9kdWN0IEdtYkgsIEdlcm1hbnkuCi0tIyBMaWNlbnNlZCB1bmRlciBHUEwgdjIsIHNlZSBDT1BZSU5HIGZpbGUgZm9yIGRldGFpbHMuCi0tIwotLSMgV3JpdHRlbiBieSBNaWNoYWVsIE1hdHogYW5kIFN0ZXBoYW4gQ29vbG8KLS0jIEVuaGFuY2VkIGJ5IEFuZHJlYXMgSmFlZ2VyCi0tCi0tRlVOQ1RJT05TPSR7MCUvKn0vZnVuY3Rpb25zLnNoCi0tCi0tY2hlY2tfYWxsPQotLWNhc2UgJDEgaW4KLS0gIC1hIHwgLS1jaGVjay1hbGwpCi0tICAgIGNoZWNrX2FsbD0xCi0tICAgIHNoaWZ0Ci0tZXNhYwotLQotLWlmIHRlc3QgIiQjIiAhPSAyOyB0aGVuCi0tICAgZWNobyAidXNhZ2U6ICQwIFstYXwtLWNoZWNrLWFsbF0gb2xkLnJwbSBuZXcucnBtIgotLSAgIGV4aXQgMQotLWZpCi0tCi0tc2VsZl9zY3JpcHQ9JChjZCAkKGRpcm5hbWUgJDApOyBlY2hvICQocHdkKS8kKGJhc2VuYW1lICQwKSkKLS0KLS1zb3VyY2UgJEZVTkNUSU9OUwotLQotLW9sZHBrZz1gcmVhZGxpbmsgLWYgJDFgCi0tbmV3cGtnPWByZWFkbGluayAtZiAkMmAKLS1yZW5hbWVfc2NyaXB0PWBta3RlbXBgCi0tCi0taWYgdGVzdCAhIC1mICIkb2xkcGtnIjsgdGhlbgotLSAgICBlY2hvICJjYW4ndCBvcGVuICQxIgotLSAgICBleGl0IDEKLS1maQotLQotLWlmIHRlc3QgISAtZiAiJG5ld3BrZyI7IHRoZW4KLS0gICAgZWNobyAiY2FuJ3Qgb3BlbiAkMiIKLS0gICAgZXhpdCAxCi0tZmkKLS0KLS0jdXNhZ2UgdW5qYXIgPGZpbGU+Ci0tZnVuY3Rpb24gdW5qYXIoKQotLXsKLS0gICAgbG9jYWwgZmlsZQotLSAgICBmaWxlPSQxCi0tCi0tICAgIGlmIFtbICQodHlwZSAtcCBmYXN0amFyKSBdXTsgdGhlbgotLSAgICAgICAgVU5KQVI9ZmFzdGphcgotLSAgICBlbGlmIFtbICQodHlwZSAtcCBqYXIpIF1dOyB0aGVuCi0tICAgICAgICBVTkpBUj1qYXIKLS0gICAgZWxpZiBbWyAkKHR5cGUgLXAgdW56aXApIF1dOyB0aGVuCi0tICAgICAgICBVTkpBUj11bnppcAotLSAgICBlbHNlCi0tICAgICAgICBlY2hvICJFUlJPUjogamFyLCBmYXN0amFyLCBvciB1bnppcCBpcyBub3QgaW5zdGFsbGVkICh0cnlpbmcgZmlsZSAkZmlsZSkiCi0tICAgICAgICBleGl0IDEKLS0gICAgZmkKLS0KLS0gICAgY2FzZSAkVU5KQVIgaW4KLS0gICAgICAgIGphcnxmYXN0amFyKQotLSAgICAgICAgIyBlY2hvIGphciAteGYgJGZpbGUKLS0gICAgICAgICR7VU5KQVJ9IC14ZiAkZmlsZQotLSAgICAgICAgOzsKLS0gICAgICAgIHVuemlwKQotLSAgICAgICAgdW56aXAgLW9xcSAkZmlsZQotLSAgICAgICAgOzsKLS0gICAgZXNhYwotLX0KLS0KLS0jIGxpc3QgZmlsZXMgaW4gZGlyZWN0b3J5Ci0tI3VzYWdlIHVuamFyX2wgPGZpbGU+Ci0tZnVuY3Rpb24gdW5qYXJfbCgpCi0tewotLSAgICBsb2NhbCBmaWxlCi0tICAgIGZpbGU9JDEKLS0KLS0gICAgaWYgW1sgJCh0eXBlIC1wIGZhc3RqYXIpIF1dOyB0aGVuCi0tICAgICAgICBVTkpBUj1mYXN0amFyCi0tICAgIGVsaWYgW1sgJCh0eXBlIC1wIGphcikgXV07IHRoZW4KLS0gICAgICAgIFVOSkFSPWphcgotLSAgICBlbGlmIFtbICQodHlwZSAtcCB1bnppcCkgXV07IHRoZW4KLS0gICAgICAgIFVOSkFSPXVuemlwCi0tICAgIGVsc2UKLS0gICAgICAgIGVjaG8gIkVSUk9SOiBqYXIsIGZhc3RqYXIsIG9yIHVuemlwIGlzIG5vdCBpbnN0YWxsZWQgKHRyeWluZyBmaWxlICRmaWxlKSIKLS0gICAgICAgIGV4aXQgMQotLSAgICBmaQotLQotLSAgICBjYXNlICRVTkpBUiBpbgotLSAgICAgICAgamFyfGZhc3RqYXIpCi0tICAgICAgICAke1VOSkFSfSAtdGYgJGZpbGUKLS0gICAgICAgIDs7Ci0tICAgICAgICB1bnppcCkKLS0gICAgICAgIHVuemlwIC1sICRmaWxlCi0tICAgICAgICA7OwotLSAgICBlc2FjCi0tfQotLQotLWZpbHRlcl9kaXNhc20oKQotLXsKLS0gICBzZWQgLWUgJ3MvXiAqWzAtOWEtZl1cKzovLycgLWUgJ3MvXCQweFswLTlhLWZdXCsvJHNvbWV0aGluZy8nIC1lICdzL2NhbGxxICpbMC05YS1mXVwrL2NhbGxxIC8nIC1lICdzLyMgKlswLTlhLWZdXCsvIyAgLycgLWUgJ3MvXCgweFwpXD9bMC05YS1mXVwrKC9vZmZzZXQoLycgLWUgJ3MvWzAtOWEtZl1cKyA8LzwvJyAtZSAncy9ePFwoLipcKT46L1wxOi8nIC1lICdzLzxcKC4qXCkrMHhbMC05YS1mXVwrPi88XDEgKyBvZnM+LycgCi0tfQotLQotLWVjaG8gIkNvbXBhcmluZyBgYmFzZW5hbWUgJG9sZHBrZ2AgdG8gYGJhc2VuYW1lICRuZXdwa2dgIgotLQotLWNhc2UgJG9sZHBrZyBpbgotLSAgKi5ycG0pCi0tICAgICBjbXBfc3BlYyAkcmVuYW1lX3NjcmlwdCAkb2xkcGtnICRuZXdwa2cKLS0gICAgIFJFUz0kPwotLSAgICAgY2FzZSAkUkVTIGluCi0tICAgICAgIDApCi0tICAgICAgICAgIGVjaG8gIlJQTSBtZXRhIGluZm9ybWF0aW9uIGlzIGlkZW50aWNhbCIKLS0gICAgICAgICAgaWYgdGVzdCAteiAiJGNoZWNrX2FsbCI7IHRoZW4KLS0gICAgICAgICAgICAgZXhpdCAwCi0tICAgICAgICAgIGZpCi0tICAgICAgICAgIDs7Ci0tICAgICAgIDEpCi0tICAgICAgICAgIGVjaG8gIlJQTSBtZXRhIGluZm9ybWF0aW9uIGlzIGRpZmZlcmVudCIKLS0gICAgICAgICAgaWYgdGVzdCAteiAiJGNoZWNrX2FsbCI7IHRoZW4KLS0gICAgICAgICAgICAgZXhpdCAxCi0tICAgICAgICAgIGZpCi0tICAgICAgICAgIDs7Ci0tICAgICAgIDIpCi0tICAgICAgICAgIGVjaG8gIlJQTSBmaWxlIGNoZWNrc3VtIGRpZmZlcnMuIgotLSAgICAgICAgICBSRVM9MAotLSAgICAgICAgICA7OwotLSAgICAgICAqKQotLSAgICAgICAgICBlY2hvICJXcm9uZyBleGl0IGNvZGUhIgotLSAgICAgICAgICBleGl0IDEKLS0gICAgICAgICAgOzsKLS0gICAgIGVzYWMKLS0gICAgIDs7Ci0tZXNhYwotLQotLWZpbGUxPWBta3RlbXBgCi0tZmlsZTI9YG1rdGVtcGAKLS0KLS1kaXI9YG1rdGVtcCAtZGAKLS1lY2hvICJFeHRyYWN0aW5nIHBhY2thZ2VzIgotLXVucGFja2FnZSAkb2xkcGtnICRkaXIvb2xkCi0tdW5wYWNrYWdlICRuZXdwa2cgJGRpci9uZXcKLS0KLS0jIGZpbGVzIGlzIHNldCBpbiBjbXBfc3BlYyBmb3IgcnBtcywgc28gaWYgUkVTIGlzIGVtcHR5IHdlIHNob3VsZCBhc3N1bWUKLS0jIGl0IHdhc24ndCBhbiBycG0gYW5kIHBpY2sgYWxsIGZpbGVzIGZvciBjb21wYXJpc29uLgotLWlmIFsgLXogJFJFUyBdOyB0aGVuCi0tICAgIG9sZGZpbGVzPWBjZCAkZGlyL29sZDsgZmluZCAuIC10eXBlIGZgCi0tICAgIG5ld2ZpbGVzPWBjZCAkZGlyL25ldzsgZmluZCAuIC10eXBlIGZgCi0tCi0tICAgIGZpbGVzPWBlY2hvIC1lICIkb2xkZmlsZXNcbiRuZXdmaWxlcyIgfCBzb3J0IC11YAotLWZpCi0tCi0tY2QgJGRpcgotLWJhc2ggJHJlbmFtZV9zY3JpcHQKLS0KLS1kZmlsZT1gbWt0ZW1wYAotLQotLWRpZmZfdHdvX2ZpbGVzKCkKLS17Ci0tICBpZiAhIGNtcCAtcyBvbGQvJGZpbGUgbmV3LyRmaWxlOyB0aGVuCi0tICAgICBlY2hvICIkZmlsZSBkaWZmZXJzICgkZnR5cGUpIgotLSAgICAgaGV4ZHVtcCAtQyBvbGQvJGZpbGUgPiAkZmlsZTEKLS0gICAgIGhleGR1bXAgLUMgbmV3LyRmaWxlID4gJGZpbGUyCi0tICAgICBkaWZmIC11ICRmaWxlMSAkZmlsZTIgfCBoZWFkIC1uIDIwMAotLSAgICAgcmV0dXJuIDEKLS0gIGZpCi0tICByZXR1cm4gMAotLX0KLS0KLS10cmltX21hbl9maXJzdF9saW5lKCkKLS17Ci0tICAgICMgSGFuZGxlcyB0aGUgZmlyc3QgbGluZSBpZiBpdCBpcyBsaWtlOgotLSAgICAjLlwiIEF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIGJ5IFBvZDo6TWFuIDIuMjggKFBvZDo6U2ltcGxlIDMuMjgpCi0tICAgICMuXCIgRE8gTk9UIE1PRElGWSBUSElTIEZJTEUhICBJdCB3YXMgZ2VuZXJhdGVkIGJ5IGhlbHAybWFuIDEuNDMuMy4KLS0gICAgbG9jYWwgZj0kMQotLSAgICBzZWQgLWkgLWUgJzF7Ci0tICAgIHN8XlwuXFwiW1s6Ymxhbms6XV1cK0F1dG9tYXRpY2FsbHlbWzpibGFuazpdXWdlbmVyYXRlZFtbOmJsYW5rOl1dYnlbWzpibGFuazpdXVBvZDo6TWFuW1s6Ymxhbms6XV0uKnwuXFwiIE92ZXJseSB2ZXJib3NlIFBvZDo6TWFufAotLSAgICBzfF5cLlxcIltbOmJsYW5rOl1dXCtET1tbOmJsYW5rOl1dTk9UW1s6Ymxhbms6XV1NT0RJRllbWzpibGFuazpdXVRISVNbWzpibGFuazpdXUZJTEUhW1s6Ymxhbms6XV1cK0l0W1s6Ymxhbms6XV13YXNbWzpibGFuazpdXWdlbmVyYXRlZFtbOmJsYW5rOl1dYnlbWzpibGFuazpdXWhlbHAybWFuW1s6Ymxhbms6XV0uKnwuXFwiIE92ZXJseSB2ZXJib3NlIGhlbHAybWFufAotLSAgICB9JyAkZgotLX0KLS0KLS10cmltX21hbl9USCgpCi0tewotLSAgICAjIEhhbmRsZXMgbGluZXMgbGlrZToKLS0gICAgIyAuVEggZGViaGVscGVyIDcgIjIwMTAtMDItMjciICI3LjQuMTUiICJEZWJoZWxwZXIiCi0tICAgICMgLlRIIERJUk1OR1ItQ0xJRU5UIDEgMjAxMC0wMi0yNyAiRGlybW5nciAxLjAuMyIgIkdOVSBQcml2YWN5IEd1YXJkIgotLSAgICAjIC5USCBjY21ha2UgMSAiTWFyY2ggMDYsIDIwMTAiICJjY21ha2UgMi44LjEtcmMzIgotLSAgICAjIC5USCBRRU1VLUlNRyAxICIyMDEwLTAzLTE0IiAiICIgIiAiCi0tICAgICMgLlRIIGtkZWNtYWtlIDEgIk1heSAwNywgMjAxMCIgImNtYWtlIDIuOC4xIgotLSAgICAjIC5USCAiYXBwZW5kZXIuaCIgMyAiMTIgTWF5IDIwMTAiICJWZXJzaW9uIDEuMi4xIiAibG9nNGMiIFwiIC0qLSBucm9mZiAtKi0KLS0gICAgIyAuVEjigIIiYXBwZW5kZXIuaCLigIIz4oCCIlR1ZeKAgkF1Z+KAgjMx4oCCMjAxMCLigIIiVmVyc2lvbuKAgjEuMi4xIuKAgiJsb2c0YyLigIJcIuKAgi0qLeKAgm5yb2Zm4oCCLSotCi0tICAgICMgLlRIICJPRkZMSU5FSU1BUCIgIjEiICIxMSBNYXkgMjAxMCIgIkpvaG4gR29lcnplbiIgIk9mZmxpbmVJTUFQIE1hbnVhbCIKLS0gICAgIyAuVEggZ3YgM2d1aWxlICIxMyBNYXkgMjAxMCIKLS0gICAgIy5USCAiR0lUXC1BUkNISU1QT1JUIiAiMSIgIjA5LzEzLzIwMTAiICJHaXQgMVwmLjdcJi4xIiAiR2l0IE1hbnVhbCIKLS0gICAgIyAuVEggTERJUkVDVE9SRCA4ICIyMDEwLTEwLTIwIiAicGVybCB2NS4xMi4yIiAiVXNlciBDb250cmlidXRlZCBQZXJsIERvY3VtZW50YXRpb24iCi0tICAgICMgLlRIIGNjbWFrZSAxICJGZWJydWFyeSAwNSwgMjAxMiIgImNjbWFrZSAyLjguNyIKLS0gICAgIyAuVEjigIIiYXBwZW5kZXIuaCLigIIz4oCCIlR1ZeKAgkF1Z+KAgjMx4oCCMjAxMCLigIIiVmVyc2lvbuKAgjEuMi4xIuKAgiJsb2c0YyLigIJcIuKAgi0qLeKAgm5yb2Zm4oCCLSotCi0tICAgICMgLlRIIEFSQ0ggIjEiICJTZXB0ZW1iZXIgMjAxMCIgIkdOVSBjb3JldXRpbHMgOC41IiAiVXNlciBDb21tYW5kcyIKLS0gICAgIyAuVEggIkdDTS1DQUxJQlJBVEUiICIxIiAiMDMgRmVicnVhcnkgMjAxMiIgIiIgIiIKLS0gICAgIy5USCBMb2NhbGU6OlBvNGE6OlhtbC5wbSAzcG0gIjIwMTUtMDEtMzAiICJQbzRhIFRvb2xzIiAiUG80YSBUb29scyIKLS0gICAgbG9jYWwgZj0kMQotLSAgICAjICguVEggICBxdW90ZWQgc2VjdGlvbikgKHF1b3RlZF9kYXRlKSgqKQotLSAgICBzZWQgLWkgLWUgJ3N8XlwoW1s6Ymxhbms6XV0qXC5USFtbOmJsYW5rOl1dXCsiW14iXVwrIltbOmJsYW5rOl1dXCtbXls6Ymxhbms6XV1cK1wpW1s6Ymxhbms6XV1cK1woIlteIl1cKyJcKVwoW1s6Ymxhbms6XV1cKy4qXClcP3xcMSAicXEyMDAwLTAxLTAxIlwzfCcgJGYKLS0gICAgIyAoLlRIIHVucXVvdGVkIHNlY3Rpb24pIChxdW90ZWRfZGF0ZSkoKikKLS0gICAgc2VkIC1pIC1lICdzfF5cKFtbOmJsYW5rOl1dKlwuVEhbWzpibGFuazpdXVwrW14iXVteWzpibGFuazpdXVwrW1s6Ymxhbms6XV1cK1teWzpibGFuazpdXVwrXClbWzpibGFuazpdXVwrXCgiW14iXVwrIlwpXChbWzpibGFuazpdXVwrLipcKVw/fFwxICJ1cTIwMDAtMDItMDIiXDN8JyAkZgotLSAgICAjICguVEggICBxdW90ZWQgc2VjdGlvbikgKHVucXVvdGVkX2RhdGUpKCopCi0tICAgIHNlZCAtaSAtZSAnc3xeXChbWzpibGFuazpdXSpcLlRIW1s6Ymxhbms6XV1cKyJbXiJdXCsiW1s6Ymxhbms6XV1cK1teWzpibGFuazpdXVwrXClbWzpibGFuazpdXVwrXChbXiJdW15bOmJsYW5rOl1dXCtcKVwoW1s6Ymxhbms6XV1cKy4qXClcP3xcMSBxdTIwMDAtMDMtMDNcM3wnICRmCi0tICAgICMgKC5USCB1bnF1b3RlZCBzZWN0aW9uKSAodW5xdW90ZWRfZGF0ZSkoKikKLS0gICAgc2VkIC1pIC1lICdzfF5cKFtbOmJsYW5rOl1dKlwuVEhbWzpibGFuazpdXVwrW14iXVteWzpibGFuazpdXVwrW1s6Ymxhbms6XV1cK1teWzpibGFuazpdXVwrXClbWzpibGFuazpdXVwrXChbXiJdW15bOmJsYW5rOl1dXCtcKVwoW1s6Ymxhbms6XV1cKy4qXClcP3xcMSB1dTIwMDAtMDQtMDRcM3wnICRmCi0tfQotLQotLXN0cmlwX251bWJlcmVkX2FuY2hvcnMoKQotLXsKLS0gICMgUmVtb3ZlIG51bWJlcmVkIGFuY2hvcnMgb24gRG9jYm9vayAvIEhUTUwgZmlsZXMuCi0tICAjIFRoaXMgc2hvdWxkIGJlIHNhdmUgc2luY2Ugd2UgcmVtb3ZlIHRoZW0gZnJvbSBvbGQgYW5kIG5ldyBmaWxlcy4KLS0gICMgQSB0cmFpbGluZyA8L2E+IG9yIDwvZGl2PiB0YWcgd2lsbCBzdGF5IGFsc28gb24gYm90aCBmaWxlcy4KLS0gIGZvciBmIGluIG9sZC8kZmlsZSBuZXcvJGZpbGU7IGRvCi0tICAgICBzZWQgLWkgLWUgJ3MlPFsgXSphWyBdXCtuYW1lW148XSpbMC05XVwrW148XSolJWcnIFwKLS0gICAgIC1lICdzJTxbIF0qYVsgXVwraHJlZltePF0qI1tePF0qWzAtOV1cK1tePF0qJSVnJyBcCi0tICAgICAtZSAncyU8W148XSppZD0iZnRuXC5bXjxdKlswLTldXCtbXjxdKiUlZycgJGYKLS0gIGRvbmUKLS19Ci0tCi0tCi0tY2hlY2tfY29tcHJlc3NlZF9maWxlKCkKLS17Ci0tICBsb2NhbCBmaWxlPSQxCi0tICBsb2NhbCBleHQ9JDIKLS0gIGxvY2FsIHRtcGRpcj1gbWt0ZW1wIC1kYAotLSAgbG9jYWwgZnR5cGUKLS0gIGxvY2FsIHJldD0wCi0tICBlY2hvICIkZXh0IGZpbGUgd2l0aCBvZGQgZmlsZW5hbWU6ICRmaWxlIgotLSAgaWYgdGVzdCAtbiAiJHRtcGRpciI7IHRoZW4KLS0gICAgbWtkaXIgJHRtcGRpci97b2xkLG5ld30KLS0gICAgY3AgLS1wYXJlbnRzIC0tZGVyZWZlcmVuY2Ugb2xkLyRmaWxlICR0bXBkaXIvCi0tICAgIGNwIC0tcGFyZW50cyAtLWRlcmVmZXJlbmNlIG5ldy8kZmlsZSAkdG1wZGlyLwotLSAgICBpZiBwdXNoZCAkdG1wZGlyID4gL2Rldi9udWxsIDsgdGhlbgotLSAgICAgIGNhc2UgIiRleHQiIGluCi0tICAgICAgICBiejIpCi0tICAgICAgICAgIG12IG9sZC8kZmlsZXssLmJ6Mn0KLS0gICAgICAgICAgbXYgbmV3LyRmaWxleywuYnoyfQotLSAgICAgICAgICBiemlwMiAtZCBvbGQvJGZpbGUuYnoyCi0tICAgICAgICAgIGJ6aXAyIC1kIG5ldy8kZmlsZS5iejIKLS0gICAgICAgICAgOzsKLS0gICAgICAgIGd6aXApCi0tICAgICAgICAgIG12IG9sZC8kZmlsZXssLmd6fQotLSAgICAgICAgICBtdiBuZXcvJGZpbGV7LC5nen0KLS0gICAgICAgICAgZ3ppcCAtZCBvbGQvJGZpbGUuZ3oKLS0gICAgICAgICAgZ3ppcCAtZCBuZXcvJGZpbGUuZ3oKLS0gICAgICAgICAgOzsKLS0gICAgICAgIHh6KQotLSAgICAgICAgICBtdiBvbGQvJGZpbGV7LC54en0KLS0gICAgICAgICAgbXYgbmV3LyRmaWxleywueHp9Ci0tICAgICAgICAgIHh6IC1kIG9sZC8kZmlsZS54egotLSAgICAgICAgICB4eiAtZCBuZXcvJGZpbGUueHoKLS0gICAgICAgICAgOzsKLS0gICAgICBlc2FjCi0tICAgICAgZnR5cGU9YC91c3IvYmluL2ZpbGUgb2xkLyRmaWxlIHwgc2VkICdzQF5bXjpdXCs6W1s6Ymxhbms6XV0qQEAnYAotLSAgICAgIGNhc2UgJGZ0eXBlIGluCi0tICAgICAgICBQT1NJWFwgdGFyXCBhcmNoaXZlKQotLSAgICAgICAgICBlY2hvICIkZXh0IGNvbnRlbnQgaXM6ICRmdHlwZSIKLS0gICAgICAgICAgbXYgb2xkLyRmaWxleywudGFyfQotLSAgICAgICAgICBtdiBuZXcvJGZpbGV7LC50YXJ9Ci0tICAgICAgICAgIGlmICEgY2hlY2tfc2luZ2xlX2ZpbGUgJHtmaWxlfS50YXI7IHRoZW4KLS0gICAgICAgICAgICByZXQ9MQotLSAgICAgICAgICBmaQotLSAgICAgICAgICA7OwotLSAgICAgICAgQVNDSUlcIGNwaW9cIGFyY2hpdmVcICopCi0tICAgICAgICAgIGVjaG8gIiRleHQgY29udGVudCBpczogJGZ0eXBlIgotLSAgICAgICAgICBtdiBvbGQvJGZpbGV7LC5jcGlvfQotLSAgICAgICAgICBtdiBuZXcvJGZpbGV7LC5jcGlvfQotLSAgICAgICAgICBpZiAhIGNoZWNrX3NpbmdsZV9maWxlICR7ZmlsZX0uY3BpbzsgdGhlbgotLSAgICAgICAgICAgIHJldD0xCi0tICAgICAgICAgIGZpCi0tICAgICAgICAgIDs7Ci0tICAgICAgICAqKQotLSAgICAgICAgICBlY2hvICJ1bmhhbmRsZWQgJGV4dCBjb250ZW50OiAkZnR5cGUiCi0tICAgICAgICAgIGlmICEgZGlmZl90d29fZmlsZXM7IHRoZW4KLS0gICAgICAgICAgICByZXQ9MQotLSAgICAgICAgICBmaQotLSAgICAgICAgICA7OwotLSAgICAgIGVzYWMKLS0gICAgICBwb3BkID4gL2Rldi9udWxsCi0tICAgIGZpCi0tICAgIHJtIC1yZiAiJHRtcGRpciIKLS0gIGZpCi0tICByZXR1cm4gJHJldAotLX0KLS0KLS1jaGVja19zaW5nbGVfZmlsZSgpCi0tewotLSAgbG9jYWwgZmlsZT0iJDEiCi0tICBjYXNlICRmaWxlIGluCi0tICAgICouc3BlYykKLS0gICAgICAgc2VkIC1pIC1lICJzLFJlbGVhc2U6LiokcmVsZWFzZTEsUmVsZWFzZTogQFJFTEVBU0VALCIgb2xkLyRmaWxlCi0tICAgICAgIHNlZCAtaSAtZSAicyxSZWxlYXNlOi4qJHJlbGVhc2UyLFJlbGVhc2U6IEBSRUxFQVNFQCwiIG5ldy8kZmlsZQotLSAgICAgICA7OwotLSAgICAqLmV4ZS5tZGJ8Ki5kbGwubWRiKQotLSAgICAgICAjIEp1c3QgZGVidWcgaW5mb3JtYXRpb24sIHdlIGNhbiBza2lwIHRoZW0KLS0gICAgICAgZWNobyAiJGZpbGUgc2tpcHBlZCBhcyBkZWJ1ZyBmaWxlLiIKLS0gICAgICAgcmV0dXJuIDAKLS0gICAgICAgOzsKLS0gICAgKi5hKQotLSAgICAgICBmbGlzdD1gYXIgdCBuZXcvJGZpbGVgCi0tICAgICAgIHB3ZD0kUFdECi0tICAgICAgIGZkaXI9YGRpcm5hbWUgJGZpbGVgCi0tICAgICAgIGNkIG9sZC8kZmRpcgotLSAgICAgICBhciB4IGBiYXNlbmFtZSAkZmlsZWAKLS0gICAgICAgY2QgJHB3ZC9uZXcvJGZkaXIKLS0gICAgICAgYXIgeCBgYmFzZW5hbWUgJGZpbGVgCi0tICAgICAgIGNkICRwd2QKLS0gICAgICAgZm9yIGYgaW4gJGZsaXN0OyBkbwotLSAgICAgICAgICBpZiAhIGNoZWNrX3NpbmdsZV9maWxlICRmZGlyLyRmOyB0aGVuCi0tICAgICAgICAgICAgIHJldHVybiAxCi0tICAgICAgICAgIGZpCi0tICAgICAgIGRvbmUKLS0gICAgICAgcmV0dXJuIDAKLS0gICAgICAgOzsKLS0gICAgKi5jcGlvKQotLSAgICAgICBmbGlzdD1gY3BpbyAtLXF1aWV0IC0tbGlzdCAtLWZvcmNlLWxvY2FsIDwgIm5ldy8kZmlsZSJgCi0tICAgICAgIHB3ZD0kUFdECi0tICAgICAgIGZkaXI9JGZpbGUuZXh0cmFjdC4kUFBJRC4kJAotLSAgICAgICBta2RpciBvbGQvJGZkaXIgbmV3LyRmZGlyCi0tICAgICAgIGNkIG9sZC8kZmRpcgotLSAgICAgICBjcGlvIC0tcXVpZXQgLS1leHRyYWN0IC0tZm9yY2UtbG9jYWwgPCAiLi4vJHtmaWxlIyMqL30iCi0tICAgICAgIGNkICRwd2QvbmV3LyRmZGlyCi0tICAgICAgIGNwaW8gLS1xdWlldCAtLWV4dHJhY3QgLS1mb3JjZS1sb2NhbCA8ICIuLi8ke2ZpbGUjIyovfSIKLS0gICAgICAgY2QgJHB3ZAotLSAgICAgICBsb2NhbCByZXQ9MAotLSAgICAgICBmb3IgZiBpbiAkZmxpc3Q7IGRvCi0tICAgICAgICAgaWYgISBjaGVja19zaW5nbGVfZmlsZSAkZmRpci8kZjsgdGhlbgotLSAgICAgICAgICAgcmV0PTEKLS0gICAgICAgICAgIGlmIHRlc3QgLXogIiRjaGVja19hbGwiOyB0aGVuCi0tICAgICAgICAgICAgIGJyZWFrCi0tICAgICAgICAgICBmaQotLSAgICAgICAgIGZpCi0tICAgICAgIGRvbmUKLS0gICAgICAgcm0gLXJmIG9sZC8kZmRpciBuZXcvJGZkaXIKLS0gICAgICAgcmV0dXJuICRyZXQKLS0gICAgICAgOzsKLS0gICAgKi50YXJ8Ki50YXIuYnoyfCoudGFyLmd6fCoudGd6fCoudGJ6MikKLS0gICAgICAgZmxpc3Q9YHRhciB0ZiBuZXcvJGZpbGVgCi0tICAgICAgIHB3ZD0kUFdECi0tICAgICAgIGZkaXI9YGRpcm5hbWUgJGZpbGVgCi0tICAgICAgIGNkIG9sZC8kZmRpcgotLSAgICAgICB0YXIgeGYgYGJhc2VuYW1lICRmaWxlYAotLSAgICAgICBjZCAkcHdkL25ldy8kZmRpcgotLSAgICAgICB0YXIgeGYgYGJhc2VuYW1lICRmaWxlYAotLSAgICAgICBjZCAkcHdkCi0tICAgICAgIGxvY2FsIHJldD0wCi0tICAgICAgIGZvciBmIGluICRmbGlzdDsgZG8KLS0gICAgICAgICBpZiAhIGNoZWNrX3NpbmdsZV9maWxlICRmZGlyLyRmOyB0aGVuCi0tICAgICAgICAgICByZXQ9MQotLSAgICAgICAgICAgaWYgdGVzdCAteiAiJGNoZWNrX2FsbCI7IHRoZW4KLS0gICAgICAgICAgICAgYnJlYWsKLS0gICAgICAgICAgIGZpCi0tICAgICAgICAgZmkKLS0gICAgICAgZG9uZQotLSAgICAgICByZXR1cm4gJHJldAotLSAgICAgICA7OwotLSAgICAqLnppcHwqLmphcnwqLndhcikKLS0gICAgICAgY2Qgb2xkCi0tICAgICAgIHVuamFyX2wgLi8kZmlsZSB8c29ydCA+IGZsaXN0Ci0tICAgICAgICMgIDEwLTA1LTIwMTAgMTQ6MzkKLS0gICAgICAgc2VkIC1pIC1lICJzLCBbMC05XVswLTldLVswLTldWzAtOV0tWzAtOV1cKyBbMC05XVswLTldOlswLTldWzAtOV0gLCBkYXRlICwiIGZsaXN0Ci0tICAgICAgICMgMjAxMi0wMi0wMyAwNzo1OQotLSAgICAgICBzZWQgLWkgLWUgInMsIDIwWzAtOV1bMC05XS1bMC05XVswLTldLVswLTldWzAtOV0gWzAtOV1bMC05XTpbMC05XVswLTldICwgZGF0ZSAsIiBmbGlzdAotLSAgICAgICBjZCAuLi9uZXcKLS0gICAgICAgdW5qYXJfbCAuLyRmaWxlIHxzb3J0PiBmbGlzdAotLSAgICAgICBzZWQgLWkgLWUgInMsIFswLTldWzAtOV0tWzAtOV1bMC05XS1bMC05XVwrIFswLTldWzAtOV06WzAtOV1bMC05XSAsIGRhdGUgLDsgIiBmbGlzdAotLSAgICAgICBzZWQgLWkgLWUgInMsIDIwWzAtOV1bMC05XS1bMC05XVswLTldLVswLTldWzAtOV0gWzAtOV1bMC05XTpbMC05XVswLTldICwgZGF0ZSAsIiBmbGlzdAotLSAgICAgICBjZCAuLgotLSAgICAgICBpZiAhIGNtcCAtcyBvbGQvZmxpc3QgbmV3L2ZsaXN0OyB0aGVuCi0tICAgICAgICAgIGVjaG8gIiRmaWxlIGhhcyBkaWZmZXJlbnQgZmlsZSBsaXN0IgotLSAgICAgICAgICBkaWZmIC11IG9sZC9mbGlzdCBuZXcvZmxpc3QKLS0gICAgICAgICAgcmV0dXJuIDEKLS0gICAgICAgZmkKLS0gICAgICAgZmxpc3Q9YGdyZXAgZGF0ZSBuZXcvZmxpc3QgfCBzZWQgLWUgJ3MsLiogZGF0ZSAsLCdgCi0tICAgICAgIHB3ZD0kUFdECi0tICAgICAgIGZkaXI9YGRpcm5hbWUgJGZpbGVgCi0tICAgICAgIGNkIG9sZC8kZmRpcgotLSAgICAgICB1bmphciBgYmFzZW5hbWUgJGZpbGVgCi0tICAgICAgIGNkICRwd2QvbmV3LyRmZGlyCi0tICAgICAgIHVuamFyIGBiYXNlbmFtZSAkZmlsZWAKLS0gICAgICAgY2QgJHB3ZAotLSAgICAgICBsb2NhbCByZXQ9MAotLSAgICAgICBmb3IgZiBpbiAkZmxpc3Q7IGRvCi0tICAgICAgICAgaWYgdGVzdCAtZiBuZXcvJGZkaXIvJGYgJiYgISBjaGVja19zaW5nbGVfZmlsZSAkZmRpci8kZjsgdGhlbgotLSAgICAgICAgICAgcmV0PTEKLS0gICAgICAgICAgIGlmIHRlc3QgLXogIiRjaGVja19hbGwiOyB0aGVuCi0tICAgICAgICAgICAgIGJyZWFrCi0tICAgICAgICAgICBmaQotLSAgICAgICAgIGZpCi0tICAgICAgIGRvbmUKLS0gICAgICAgcmV0dXJuICRyZXQ7OwotLSAgICAgKi5weWN8Ki5weW8pCi0tICAgICAgICBwZXJsIC1lICJvcGVuIGZoLCAnKzwnLCAnb2xkLyRmaWxlJzsgc2VlayBmaCwgNCwgU0VFS19TRVQ7IHByaW50IGZoICcwMDAwJzsiCi0tICAgICAgICBwZXJsIC1lICJvcGVuIGZoLCAnKzwnLCAnbmV3LyRmaWxlJzsgc2VlayBmaCwgNCwgU0VFS19TRVQ7IHByaW50IGZoICcwMDAwJzsiCi0tICAgICAgICA7OwotLSAgICAgKi5iejIpCi0tICAgICAgICBidW56aXAyIC1jIG9sZC8kZmlsZSA+IG9sZC8ke2ZpbGUvLmJ6Mi99Ci0tICAgICAgICBidW56aXAyIC1jIG5ldy8kZmlsZSA+IG5ldy8ke2ZpbGUvLmJ6Mi99Ci0tICAgICAgICBjaGVja19zaW5nbGVfZmlsZSAke2ZpbGUvLmJ6Mi99Ci0tICAgICAgICByZXR1cm4gJD8KLS0gICAgICAgIDs7Ci0tICAgICAqLmd6KQotLSAgICAgICAgZ3VuemlwIC1jIG9sZC8kZmlsZSA+IG9sZC8ke2ZpbGUvLmd6L30KLS0gICAgICAgIGd1bnppcCAtYyBuZXcvJGZpbGUgPiBuZXcvJHtmaWxlLy5nei99Ci0tICAgICAgICBjaGVja19zaW5nbGVfZmlsZSAke2ZpbGUvLmd6L30KLS0gICAgICAgIHJldHVybiAkPwotLSAgICAgICAgOzsKLS0gICAgICoucnBtKQotLQkkc2VsZl9zY3JpcHQgLWEgb2xkLyRmaWxlIG5ldy8kZmlsZQotLSAgICAgICAgcmV0dXJuICQ/Ci0tICAgICAgICA7OwotLSAgICAgKnBuZykKLS0JIyBUcnkgdG8gcmVtb3ZlIHRpbWVzdGFtcHMsIG9ubHkgaWYgY29udmVydCBmcm9tIEltYWdlTWFnaWNrIGlzIGluc3RhbGxlZAotLSAgICAgICAgaWYgW1sgJCh0eXBlIC1wIGNvbnZlcnQpIF1dOyB0aGVuCi0tCSAgY29udmVydCBvbGQvJGZpbGUgK3NldCBkYXRlOmNyZWF0ZSArc2V0IGRhdGU6bW9kaWZ5IG9sZC8ke2ZpbGUvLnBuZy9fbi5wbmd9Ci0tCSAgY29udmVydCBvbGQvJGZpbGUgK3NldCBkYXRlOmNyZWF0ZSArc2V0IGRhdGU6bW9kaWZ5IG5ldy8ke2ZpbGUvLnBuZy9fbi5wbmd9Ci0tCSAgaWYgISBjbXAgLXMgb2xkLyR7ZmlsZS8ucG5nL19uLnBuZ30gbmV3LyR7ZmlsZS8ucG5nL19uLnBuZ307IHRoZW4KLS0JICAgICAgZWNobyAiJGZpbGUgZGlmZmVycyAoJGZ0eXBlKSIKLS0JICAgICAgaGV4ZHVtcCAtQyBvbGQvJHtmaWxlLy5wbmcvX24ucG5nfSA+ICRmaWxlMQotLQkgICAgICBoZXhkdW1wIC1DIG5ldy8ke2ZpbGUvLnBuZy9fbi5wbmd9ID4gJGZpbGUyCi0tCSAgICAgIGRpZmYgLXUgJGZpbGUxICRmaWxlMiB8IGhlYWQgLW4gMjAKLS0JICAgICAgcmV0dXJuIDEKLS0JICBmaQotLQkgIHJldHVybiAwCi0tCWZpCi0tICAgICAgICA7OwotLSAgICAgL3Vzci9zaGFyZS9sb2NhbGUvKi9MQ19NRVNTQUdFUy8qLm1vfC91c3Ivc2hhcmUvbG9jYWxlLWJ1bmRsZS8qL0xDX01FU1NBR0VTLyoubW8pCi0tICAgICAgIGZvciBmIGluIG9sZC8kZmlsZSBuZXcvJGZpbGU7IGRvCi0tICAgICAgICAgc2VkIC1pIC1lICJzLFBPVC1DcmVhdGlvbi1EYXRlOiAuLi4uLS4uLS4uIC4uOi4uKy4uLi4sUE9ULUNyZWF0aW9uLURhdGU6IDE5NzAtMDEtMDEgMDA6MDArMDAwMCwiICRmCi0tICAgICAgIGRvbmUKLS0gICAgICAgOzsKLS0gICAgIC91c3Ivc2hhcmUvZG9jL3BhY2thZ2VzLyovKi5odG1sfFwKLS0gICAgIC91c3Ivc2hhcmUvZG9jL2tkZS9IVE1MLyovKi8qLmh0bWx8L3Vzci9zaGFyZS9kb2MvKi9odG1sLyouaHRtbCkKLS0gICAgICAgZm9yIGYgaW4gb2xkLyRmaWxlIG5ldy8kZmlsZTsgZG8KLS0gICAgICAgICAjIHRleGkyaHRtbCBvdXRwdXQsIGUuZy4gaW4ga3ZtLCBpbmRlbnQsIHFlbXUKLS0JIHNlZCAtaSAtZSAic3xePCEtLSBDcmVhdGVkIG9uIC4qLCAyMC4uIGJ5IHRleGkyaHRtbCAuXC4uLnw8IS0tIENyZWF0ZWQgb24gQXVndXN0IDcsIDIwMDkgYnkgdGV4aTJodG1sIDEuODJ8IiAkZgotLQkgc2VkIC1pIC1lICdzfF4gKlRoaXMgZG9jdW1lbnQgd2FzIGdlbmVyYXRlZCBieSA8ZW0+QXV0b2J1aWxkPC9lbT4gb24gPGVtPi4qLCAyMC4uPC9lbT4gdXNpbmcgPGEgaHJlZj0iaHR0cDovL3d3dy5ub25nbnUub3JnL3RleGkyaHRtbC8iPjxlbT50ZXhpMmh0bWwgLlwuLi48L2VtPjwvYT4uJHwgIFRoaXMgZG9jdW1lbnQgd2FzIGdlbmVyYXRlZCBieSA8ZW0+QXV0b2J1aWxkPC9lbT4gb24gPGVtPkF1Z3VzdCA3LCAyMDA5PC9lbT4gdXNpbmcgPGEgaHJlZj0iaHR0cDovL3d3dy5ub25nbnUub3JnL3RleGkyaHRtbC8iPjxlbT50ZXhpMmh0bWwgMS44MjwvZW0+PC9hPi58JyAkZgotLQkgIyBkb3h5Z2VuIGRvY3UsIGUuZy4gaW4gbGlic3NoIGFuZCBsb2c0YwotLQkgc2VkIC1pIC1lICdzfEdlbmVyYXRlZCBvbiAuLi4gLi4uIFswLTldKiBbMC05XSo6WzAtOV1bMC05XTpbMC05XVswLTldIDIwWzAtOV1bMC05XSBmb3IgfEdlbmVyYXRlZCBvbiBNb24gTWF5IDEwIDIwOjQ1OjAwIDIwMTAgZm9yIHwnICRmCi0tCSAjIEdlbmVyYXRlZCBvbiBTYXQgQXVnIDE0IDIwMTAgMTY6NDk6NDggZm9yIGxpYnNzaAotLQkgc2VkIC1pIC1lICdzfEdlbmVyYXRlZCBvbiAuLi4gLi4uIFswLTldKiAyMFswLTldWzAtOV0gWzAtOV0qOlswLTldWzAtOV06WzAtOV1bMC05XSBmb3IgfEdlbmVyYXRlZCBvbiBNb24gTWF5IDEwIDIwOjQ1OjAwIDIwMTAgZm9yIHwnICRmCi0tICAgICAgIGRvbmUKLS0gICAgICAgc3RyaXBfbnVtYmVyZWRfYW5jaG9ycwotLSAgICAgICA7OwotLSAgICAgL3Vzci9zaGFyZS9qYXZhZG9jLyouaHRtbCB8XAotLSAgICAgL3Vzci9zaGFyZS9qYXZhZG9jLyovKi5odG1sfC91c3Ivc2hhcmUvamF2YWRvYy8qLyovKi5odG1sKQotLSAgICAgICBzdHJpcF9udW1iZXJlZF9hbmNob3JzCi0tICAgICAgICMgVGhlcmUgYXJlIG1vcmUgdGltZXN0YW1wcyBpbiBodG1sLCBzbyBmYXIgd2UgaGFuZGxlIG9ubHkgc29tZSBwcmltaXRpdmUgdmVyc2lvbnMuCi0tICAgICAgIGZvciBmIGluIG9sZC8kZmlsZSBuZXcvJGZpbGU7IGRvCi0tICAgICAgICAgIyBKYXZhZG9jOgotLSAgICAgICAgICAjIDxoZWFkPgotLSAgICAgICAgICAjIDwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2MgKHZlcnNpb24gMS43LjBfNzUpIG9uIFR1ZSBGZWIgMDMgMDI6MjA6MTIgR01UIDIwMTUgLS0+Ci0tICAgICAgICAgICMgPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBUdWUgRmViIDAzIDAwOjAyOjQ4IEdNVCAyMDE1IC0tPgotLSAgICAgICAgICAjIDxtZXRhIG5hbWU9ImRhdGUiIGNvbnRlbnQ9IjIwMTUtMDItMDMiPgotLSAgICAgICAgICAjIDwvaGVhZD4KLS0gICAgICAgICAgc2VkIC1pIC1lICcKLS0gICAgICAgICAgICAvXjxoZWFkPi97Ci0tICAgICAgICAgICAgICA6IG5leHQKLS0gICAgICAgICAgICAgIG4KLS0gICAgICAgICAgICAgIC9ePFwvaGVhZD4vewotLSAgICAgICAgICAgICAgICBiIGVuZF9oZWFkCi0tICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgICBzL15cKDwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2NcKSBcKChcKGJ1aWxkXHx2ZXJzaW9uXCkgWzAtOS5fXVwrKSBvbiAuLi4gLi4uIC4uIC4uOi4uOi4uIFwoR01UXHxVVENcKSAuLi4uXCkgXCgtLT5cKS9cMSBzb21lLWRhdGUtcmVtb3ZlZC1ieS1idWlsZC1jb21wYXJlIFw1LwotLSAgICAgICAgICAgICAgdCBuZXh0Ci0tICAgICAgICAgICAgICBzL15cKDwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2NcKSBcKG9uIC4uLiAuLi4gLi4gLi46Li46Li4gXChHTVRcfFVUQ1wpIC4uLi5cKSBcKC0tPlwpL1wxIHNvbWUtZGF0ZS1yZW1vdmVkLWJ5LWJ1aWxkLWNvbXBhcmUgXDMvCi0tICAgICAgICAgICAgICB0IG5leHQKLS0gICAgICAgICAgICAgIHMvXjxtZXRhIG5hbWU9ImRhdGUiIGNvbnRlbnQ9IlswLTldXHs0XH0tWzAtOV1cezJcfS1bMC05XVx7Mlx9Ij4vPG1ldGEgbmFtZT0iZGF0ZSIgY29udGVudD0ic29tZS1kYXRlLXJlbW92ZWQtYnktYnVpbGQtY29tcGFyZSI+LwotLSAgICAgICAgICAgICAgYiBuZXh0Ci0tICAgICAgICAgICAgfQotLSAgICAgICAgICAgIDogZW5kX2hlYWQKLS0gICAgICAgICAgJyAkZgotLSAgICAgICAgICMgR2pkb2MgSHRtbERvY2xldDoKLS0JIHNlZCAtaSAtZSAncyVHZW5lcmF0ZWQgYnkgR2pkb2MgSHRtbERvY2xldCBbMC05LC5dKiwgcGFydCBvZiA8YSBocmVmPSJodHRwOi8vd3d3LmdudS5vcmcvc29mdHdhcmUvY2xhc3NwYXRoL2NwLXRvb2xzLyIgdGl0bGU9IiIgdGFyZ2V0PSJfdG9wIj5HTlUgQ2xhc3NwYXRoIFRvb2xzPC9hPiwgb24gLiosIDIwLi4gWzAtOV0qOi4uOi4uIFwoYVx8cFwpXC5tXC4gR01ULiVHZW5lcmF0ZWQgYnkgR2pkb2MuJScgJGYKLS0JIHNlZCAtaSAtZSAncyU8IURPQ1RZUEUgaHRtbCBQVUJMSUMgIi0vL2dudS5vcmcvLy9EVEQgWEhUTUwgMS4xIHBsdXMgVGFyZ2V0IDEuMC8vRU4iXCguKlwpR05VIENsYXNzcGF0aCBUb29sczwvYT4sIG9uIFtBLVpdW2Etel0qIFswLTldKiwgMjA/PyBbMC05XSo6Pz86Pz8gXChhfHBcKVwubVwuIEdNVC48L3A+JTwhRE9DVFlQRSBodG1sIFBVQkxJQyAiLS8vZ251Lm9yZy8vL0RURCBYSFRNTCAxLjEgcGx1cyBUYXJnZXQgMS4wLy9FTiJcMUdOVSBDbGFzc3BhdGggVG9vbHM8L2E+LCBvbiBKYW51YXJ5IDEsIDIwMDkgMDowMDowMCBhLm0uIEdNVC48L3A+JScgJGYKLS0JIHNlZCAtaSAtZSAncyU8IURPQ1RZUEUgaHRtbCBQVUJMSUMgIi0vL2dudS5vcmcvLy9EVERcKC4qR05VIENsYXNzcGF0aCBUb29sczwvYT5cKSwgb24gW2EtekEtWl0qIFswLTldWzAtOV0sIDIwLi4gWzAtOV0qOi4uOi4uIFwoYVx8cFwpXC5tXC4gR01ULjwvcD4lPCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9nbnUub3JnLy8vRFREXDEsb24gTWF5IDEsIDIwMTAgMToxMTo0MiBwLm0uIEdNVC48L3A+JScgJGYKLS0JICMgZGVwcmVjYXRlZC1saXN0IGlzIHJhbmRvbWx5IG9yZGVyZWQsIHNvcnQgaXQgZm9yIGNvbXBhcmlzb24KLS0JIGNhc2UgJGYgaW4KLS0JICAgKi9kZXByZWNhdGVkLWxpc3QuaHRtbCkKLS0JICAgICBzb3J0IC1vICRmICRmCi0tCSAgICAgOzsKLS0JIGVzYWMKLS0gICAgICAgZG9uZQotLSAgICAgICA7OwotLSAgICAgL3Vzci9zaGFyZS9qYXZhZG9jL2dqZG9jLnByb3BlcnRpZXMgfFwKLS0gICAgIC91c3Ivc2hhcmUvamF2YWRvYy8qL2dqZG9jLnByb3BlcnRpZXMpCi0tICAgICAgIGZvciBmIGluIG9sZC8kZmlsZSBuZXcvJGZpbGU7IGRvCi0tCSBzZWQgLWkgLWUgJ3N8XiNbQS1aXVthLXpdXHsyXH0gW0EtWl1bYS16XVx7Mlx9IFswLTldXHsyXH0gLi46Li46Li4gR01UIDIwLi4kfCNGcmkgSmFuIDAxIDExOjI3OjM2IEdNVCAyMDA5fCcgJGYKLS0gICAgICAgZG9uZQotLSAgICAgICA7OwotLSAgICAgKi9mb250cy5zY2FsZXwqL2ZvbnRzLmRpcnwqL2VuY29kaW5ncy5kaXIpCi0tICAgICAgIGZvciBmIGluIG9sZC8kZmlsZSBuZXcvJGZpbGU7IGRvCi0tICAgICAgICAgIyBzb3J0IGZpbGVzIGJlZm9yZSBjb21wYXJpbmcKLS0gICAgICAgICBzb3J0IC1vICRmICRmCi0tICAgICAgIGRvbmUKLS0gICAgICAgOzsKLS0gICAgIC92YXIvYWRtL3BlcmwtbW9kdWxlcy8qKQotLSAgICAgICBmb3IgZiBpbiBvbGQvJGZpbGUgbmV3LyRmaWxlOyBkbwotLSAgICAgICAgIHNlZCAtaSAtZSAnc3xePWhlYWQyIC4uLiAuLi4gLi4gLi46Li46Li4gLi4uLjogQzxNb2R1bGU+fD1oZWFkMiBXZWQgSnVsICAxIDAwOjAwOjAwIDIwMDk6IEM8TW9kdWxlPnwnICRmCi0tICAgICAgIGRvbmUKLS0gICAgICAgOzsKLS0gICAgIC91c3Ivc2hhcmUvbWFuL21hbjMvKjNwbSkKLS0gICAgICAgZm9yIGYgaW4gb2xkLyRmaWxlIG5ldy8kZmlsZTsgZG8KLS0gICAgICAgICBzZWQgLWkgLWUgJ3N8IDMgIjIwLi4tLi4tLi4iICJwZXJsIHY1Li4uLi4iICJVc2VyIENvbnRyaWJ1dGVkIFBlcmwgRG9jdW1lbnRhdGlvbiIkfCAzICIyMDA5LTAxLTAxIiAicGVybCB2NS4xMC4wIiAiVXNlciBDb250cmlidXRlZCBQZXJsIERvY3VtZW50YXRpb24ifCcgJGYKLS0gICAgICAgICB0cmltX21hbl9USCAkZgotLSAgICAgICAgIHRyaW1fbWFuX2ZpcnN0X2xpbmUgJGYKLS0gICAgICAgZG9uZQotLSAgICAgICA7OwotLSAgICAgL3Vzci9zaGFyZS9tYW4vKi9tYW4qfC91c3Ivc2hhcmUvbWFuL21hbip8L3Vzci9saWIvdGV4bWYvZG9jL21hbi8qLyopCi0tCi0tICAgICAgIGZvciBmIGluIG9sZC8kZmlsZSBuZXcvJGZpbGU7IGRvCi0tICAgICAgICAgdHJpbV9tYW5fVEggJGYKLS0gICAgICAgICB0cmltX21hbl9maXJzdF9saW5lICRmCi0tICAgICAgICAgIyBnZW5lcmF0ZWQgYnkgZG9jYm9vayB4bWw6Ci0tICAgICAgICAgIy5cIiAgICAgIERhdGU6IDA5LzEzLzIwMTAKLS0gICAgICAgICBzZWQgLWkgLWUgJ3N8RGF0ZTogWzAtMV1bMC05XS9bMC05XVswLTldLzIwMVswLTldfERhdGU6IDA5LzEzLzIwMTB8JyAkZgotLSAgICAgICBkb25lCi0tICAgICAgIDs7Ci0tICAgICAqLmVsYykKLS0gICAgICAgIyBlbWFjcyBsaXNwIGZpbGVzCi0tICAgICAgIGZvciBmIGluIG9sZC8kZmlsZSBuZXcvJGZpbGU7IGRvCi0tICAgICAgICAgc2VkIC1pIC1lICdzfENvbXBpbGVkIGJ5IGFidWlsZEAuKiBvbiAuLi4gLi4uIC4uIC4uOi4uOi4uIDIwLi4kfGNvbXBpbGVkIGJ5IGFidWlsZEBidWlsZGhvc3Qgb24gV2VkIEp1bCAwMSAwMDowMDowMCAyMDA5fCcgJGYKLS0gICAgICAgZG9uZQotLSAgICAgICA7OwotLSAgICAgL3Zhci9saWIvdGV4bWYvd2ViMmMvKi8qZm10IHxcCi0tICAgICAvdmFyL2xpYi90ZXhtZi93ZWIyYy9tZXRhZm9udC8qLmJhc2V8XAotLSAgICAgL3Zhci9saWIvdGV4bWYvd2ViMmMvbWV0YXBvc3QvKi5tZW0pCi0tICAgICAgICMgYmluYXJ5IGR1bXAgb2YgVGVYIGFuZCBNZXRhZm9udCBmb3JtYXRzLCB3ZSBjYW4gaWdub3JlIHRoZW0gZm9yIGdvb2QKLS0gICAgICAgZWNobyAiZGlmZmVyZW5jZSBpbiAkZmlsZSBpZ25vcmVkLiIKLS0gICAgICAgcmV0dXJuIDAKLS0gICAgICAgOzsKLS0gICAgICovbGlidG9vbCkKLS0gICAgICAgZm9yIGYgaW4gb2xkLyRmaWxlIG5ldy8kZmlsZTsgZG8KLS0JICBzZWQgLWkgLWUgJ3N8XiMgTGlidG9vbCB3YXMgY29uZmlndXJlZCBvbiBob3N0IFtBLVphLXowLTldKjokfCMgTGlidG9vbCB3YXMgY29uZmlndXJlZCBvbiBob3N0IHg0Mjp8JyAkZgotLSAgICAgICBkb25lCi0tICAgICAgIDs7Ci0tICAgICAvZXRjL21haWwvKmNmfC9ldGMvc2VuZG1haWwuY2YpCi0tICAgICAgICMgZnJvbSBzZW5kbWFpbCBwYWNrYWdlCi0tICAgICAgIGZvciBmIGluIG9sZC8kZmlsZSBuZXcvJGZpbGU7IGRvCi0tCSAgIyAtICMjIyMjIGJ1aWx0IGJ5IGFidWlsZEBidWlsZDMzIG9uIFRodSBNYXkgNiAxMToyMToxNyBVVEMgMjAxMAotLQkgIHNlZCAtaSAtZSAnc3xidWlsdCBieSBhYnVpbGRAW2EtejAtOV0qIG9uIC4uLiAuLi4gWzAtOV0qIFswLTldKjpbMC05XVswLTldOlswLTldWzAtOV0gLiogMjBbMC05XVswLTldfGJ1aWx0IGJ5IGFidWlsZEBidWlsZDQyIG9uIFRodSBNYXkgNiAxMToyMToxNyBVVEMgMjAxMHwnICRmCi0tICAgICAgIGRvbmUKLS0gICAgICAgOzsKLS0gICAgIC91c3Ivc2hhcmUvZG9jL2tkZS9IVE1MLyovKi9pbmRleC5jYWNoZXwvdXNyL3NoYXJlL2RvYy9rZGUvSFRNTC8qLyovKi9pbmRleC5jYWNoZXxcCi0tICAgICAvdXNyL3NoYXJlL2d0ay1kb2MvaHRtbC8qLyouaHRtbHwvdXNyL3NoYXJlL2d0ay1kb2MvaHRtbC8qLyouZGV2aGVscDIpCi0tICAgICAgICMgdmFyaW91cyBrZGUgYW5kIGd0ayBwYWNrYWdlcwotLSAgICAgICBzdHJpcF9udW1iZXJlZF9hbmNob3JzCi0tICAgICAgIDs7Ci0tICAgICovY3JlYXRlZC5yaWQpCi0tICAgICAgICMgcnVieSBkb2N1bWVudGF0aW9uCi0tICAgICAgICMgZmlsZSBqdXN0IGNvbnRhaW5zIGEgdGltZXN0YW1wIGFuZCBub3RoaW5nIGVsc2UsIHNvIGlnbm9yZSBpdAotLSAgICAgICBlY2hvICJJZ25vcmUgJGZpbGUiCi0tICAgICAgIHJldHVybiAwCi0tICAgICAgIDs7Ci0tICAgICovcmRvYy9maWxlcy8qLmh0bWwpCi0tICAgICAgICMgcnVieSBkb2N1bWVudGF0aW9uCi0tICAgICAgICMgPHRkPk1vbuKAglNlcOKAgjIw4oCCMTk6MDI6NDPigIIrMDAwMOKAgjIwMTA8L3RkPgotLSAgICAgICBmb3IgZiBpbiBvbGQvJGZpbGUgbmV3LyRmaWxlOyBkbwotLSAgICAgICAgICBzZWQgLWkgLWUgJ3MlPHRkPltBLVpdW2Etel1bYS16XSBbQS1aXVthLXpdW2Etel0gWzAtOV1cKyBbMC05XVwrOlswLTldXCs6WzAtOV1cKyArMDAwMCAyMDFbMC05XTwvdGQ+JTx0ZD5Nb27igIJTZXDigIIyMOKAgjE5OjAyOjQz4oCCKzAwMDDigIIyMDEwPC90ZD4lZycgJGYKLS0gICAgICAgZG9uZQotLSAgICAgICBzdHJpcF9udW1iZXJlZF9hbmNob3JzCi0tICAgICAgIDs7Ci0tICAgICovTGludXgqRW52LlNldC5zaCkKLS0gICAgICAgIyBMaWJyZU9mZmljZSBmaWxlcywgY29udGFpbnM6Ci0tICAgICAgICMgR2VuZXJhdGVkIG9uOiBNb24gQXByIDE4IDEzOjE5OjIyIFVUQyAyMDExCi0tICAgICAgIGZvciBmIGluIG9sZC8kZmlsZSBuZXcvJGZpbGU7IGRvCi0tCSBzZWQgLWkgLWUgJ3MlXiMgR2VuZXJhdGVkIG9uOi4qVVRDIDIwMVswLTldICokJSMgR2VuZXJhdGVkIG9uOiBTb21ldGltZSVnJyAkZgotLSAgICAgICBkb25lCi0tICAgICAgIDs7Ci0tICAgIC91c3IvbGliL2xpYnJlb2ZmaWNlL3NvbHZlci9pbmMvKi9kZWxpdmVyLmxvZykKLS0gICAgICAgIyBMaWJyZU9mZmljZSBsb2cgZmlsZQotLSAgICAgIGVjaG8gIklnbm9yZSAkZmlsZSIKLS0gICAgICByZXR1cm4gMAotLSAgICAgIDs7Ci0tICAgIC92YXIvYWRtL3VwZGF0ZS1tZXNzYWdlcy8qfC92YXIvYWRtL3VwZGF0ZS1zY3JpcHRzLyopCi0tICAgICAgIyBlbmNvZGUgdmVyc2lvbi1yZWxlYXNlIGluc2lkZQotLSAgICAgIG9sZGZuPWBlY2hvICIkZmlsZSJ8c2VkIC1lIHMvLSRyZWxlYXNlMi8tJHJlbGVhc2UxLztgCi0tCi0tICAgICAgIyBmZXRjaG1zdHRmb250cyBlbWJlZHMgdGhlIHJlbGVhc2UgbnVtYmVyIGluIHRoZSB1cGRhdGUgc2hlbGwgc2NyaXB0LgotLSAgICAgIGVjaG8gc2VkIC1pIC1lICJzLy0kcmVsZWFzZTEvLSRyZWxlYXNlMi9nOyIgIm9sZC8kb2xkZm4iCi0tICAgICAgc2VkIC1pIC1lICJzLy0kcmVsZWFzZTEvLSRyZWxlYXNlMi9nOyIgIm9sZC8kb2xkZm4iCi0tCi0tICAgICAgaWYgISBkaWZmIC11IG9sZC8kb2xkZm4gbmV3LyRmaWxlOyB0aGVuCi0tICAgICAgICAgICBlY2hvICIkb2xkZm4gaXMgbm90IHNhbWUgYXMgJGZpbGUiCi0tICAgICAgICAgICByZXR1cm4gMQotLSAgICAgIGZpCi0tICAgICAgZWNobyAiJGZpbGUgYW5kICRvbGRmbiBhcmUgc2FtZSIKLS0gICAgICByZXR1cm4gMAotLSAgICAgIDs7Ci0tICAgICoucHMpCi0tICAgICAgZm9yIGYgaW4gIm9sZC8kZmlsZSIgIm5ldy8kZmlsZSI7IGRvCi0tICAgICAgICBzZWQgLWkgLWUgJwotLQkvXiUlQ3JlYXRpb25EYXRlOltbOmJsYW5rOl1dL2QKLS0JL14lJUNyZWF0b3I6W1s6Ymxhbms6XV1ncm9mZltbOmJsYW5rOl1ddmVyc2lvbltbOmJsYW5rOl1dL2QKLS0JJyAiJGYiCi0tICAgICAgZG9uZQotLSAgICA7OwotLSAgICAqcGRmKQotLSAgICAgICMgUERGIGZpbGVzIGNvbnRhaW4gYSB1bmlxdWUgSUQsIHJlbW92ZSBpdAotLSAgICAgICMgRm9ybWF0IG9mIHRoZSBJRCBpczoKLS0gICAgICAjIC9JRCBbPDlBQ0UyNDdBNzBDRjlCRUFGRUUxNUUxMTYyNTlCRDZEPiA8OUFDRTI0N0E3MENGOUJFQUZFRTE1RTExNjI1OUJENkQ+XQotLSAgICAgICMgd2l0aCBvcHRpb25hbCBzcGFjZXMuIHBkZnRleCBjcmVhdGVzIGFsc286Ci0tICAgICAgIyAvQ3JlYXRpb25EYXRlIChEOjIwMTIwMTAzMDgzMjA2WikKLS0gICAgICAjIC9Nb2REYXRlIChEOjIwMTIwMTAzMDgzMjA2WikKLS0gICAgICAjIGFuZCBwb3NzaWJseSBYTUwgbWV0YWRhdGEgYXMgd2VsbAotLSAgICAgIGZvciBmIGluICJvbGQvJGZpbGUiICJuZXcvJGZpbGUiOyBkbwotLSAgICAgICAgc2VkIC1pIFwKLS0gICAgICAgICAgICAnL29iai8sL2VuZG9iai97Ci0tICAgICAgICAgICAgICAgcyUvSUQgXD9cWyBcPzxbXj5dXCs+IFw/PFtePl1cKz4gXD9cXSUvSURyYW5kb20lZzsKLS0gICAgICAgICAgICAgICBzJS9DcmVhdGlvbkRhdGUgXD8oRDpbXildKiklL0NyZWF0aW9uRGF0ZSAoRDogWFhYKSVnOwotLSAgICAgICAgICAgICAgIHMlL01vZERhdGUgXD8oRDpbXildKiklL01vZERhdGUgKEQ6IFhYWCklZzsKLS0gICAgICAgICAgICAgICBzJTxwZGY6Q3JlYXRpb25EYXRlPltePF0qPC9wZGY6Q3JlYXRpb25EYXRlPiU8cGRmOkNyZWF0aW9uRGF0ZT5YWFg8L3BkZjpDcmVhdGlvbkRhdGU+JWc7Ci0tICAgICAgICAgICAgICAgcyU8cGRmOk1vZERhdGU+W148XSo8L3BkZjpNb2REYXRlPiU8cGRmOk1vZERhdGU+WFhYPC9wZGY6TW9kRGF0ZT4lZzsKLS0gICAgICAgICAgICAgICBzJTx4YXA6Q3JlYXRlRGF0ZT5bXjxdKjwveGFwOkNyZWF0ZURhdGU+JTx4YXA6Q3JlYXRlRGF0ZT5YWFg8L3hhcDpDcmVhdGVEYXRlPiVnOwotLSAgICAgICAgICAgICAgIHMlPHhhcDpNb2RpZnlEYXRlPltePF0qPC94YXA6TW9kaWZ5RGF0ZT4lPHhhcDpNb2RpZnlEYXRlPlhYWDwveGFwOk1vZGlmeURhdGU+JWc7Ci0tICAgICAgICAgICAgICAgcyU8eGFwOk1ldGFkYXRhRGF0ZT5bXjxdKjwveGFwOk1ldGFkYXRhRGF0ZT4lPHhhcDpNZXRhZGF0YURhdGU+WFhYPC94YXA6TWV0YWRhdGFEYXRlPiVnOwotLSAgICAgICAgICAgIH0nICIkZiIKLS0gICAgICBkb25lCi0tICAgICAgOzsKLS0gIGVzYWMKLS0KLS0gIGZ0eXBlPWAvdXNyL2Jpbi9maWxlIG9sZC8kZmlsZSB8IHNlZCAnc0BeW146XVwrOltbOmJsYW5rOl1dKkBAJ2AKLS0gIGNhc2UgJGZ0eXBlIGluCi0tICAgICBQRTMyXCBleGVjdXRhYmxlKk1vbm9cL1wuTmV0XCBhc3NlbWJseSopCi0tICAgICAgIGVjaG8gIlBFMzIgTW9uby8uTmV0IGFzc2VtYmx5OiAkZmlsZSIKLS0gICAgICAgaWYgWyAteCAvdXNyL2Jpbi9tb25vZGlzIF0gOyB0aGVuCi0tICAgICAgICAgbW9ub2RpcyBvbGQvJGZpbGUgMj4vZGV2L251bGx8c2VkIC1lICdzL0dVSUQgPSB7Lip9L0dVSUQgPSB7IDQyIH0vOyc+ICR7ZmlsZTF9Ci0tICAgICAgICAgbW9ub2RpcyBuZXcvJGZpbGUgMj4vZGV2L251bGx8c2VkIC1lICdzL0dVSUQgPSB7Lip9L0dVSUQgPSB7IDQyIH0vOyc+ICR7ZmlsZTJ9Ci0tICAgICAgICAgaWYgISBjbXAgLXMgJHtmaWxlMX0gJHtmaWxlMn07IHRoZW4KLS0gICAgICAgICAgIGVjaG8gIiRmaWxlIGRpZmZlcnMgKCRmdHlwZSkiCi0tICAgICAgICAgICBkaWZmIC11ICR7ZmlsZTF9ICR7ZmlsZTJ9Ci0tICAgICAgICAgICByZXR1cm4gMQotLSAgICAgICAgIGZpCi0tICAgICAgIGVsc2UKLS0gICAgICAgICBlY2hvICJDYW5ub3QgY29tcGFyZSwgbm8gbW9ub2RpcyBpbnN0YWxsZWQiCi0tICAgICAgICAgcmV0dXJuIDEKLS0gICAgICAgZmkKLS0gICAgICAgOzsKLS0gICAgRUxGKmV4ZWN1dGFibGUqfEVMRipbTE1dU0JcIHNoYXJlZFwgb2JqZWN0KikKLS0gICAgICAgb2JqZHVtcCAtZCAtLW5vLXNob3ctcmF3LWluc24gb2xkLyRmaWxlIHwgZmlsdGVyX2Rpc2FzbSA+ICRmaWxlMQotLSAgICAgICBpZiAhIHRlc3QgLXMgJGZpbGUxOyB0aGVuCi0tICAgICAgICAgIyBvYmpkdW1wIGhhcyBubyBpZGVhIGhvdyB0byBoYW5kbGUgaXQKLS0gICAgICAgICBpZiAhIGRpZmZfdHdvX2ZpbGVzOyB0aGVuCi0tICAgICAgICAgICByZXQ9MQotLSAgICAgICAgICAgYnJlYWsKLS0gICAgICAgICBmaQotLSAgICAgICBmaSAgICAgICAKLS0gICAgICAgZWxmZGlmZj0KLS0gICAgICAgc2VkIC1pIC1lICJzLG9sZC8sLCIgJGZpbGUxCi0tICAgICAgIG9iamR1bXAgLWQgLS1uby1zaG93LXJhdy1pbnNuIG5ldy8kZmlsZSB8IGZpbHRlcl9kaXNhc20gPiAkZmlsZTIKLS0gICAgICAgc2VkIC1pIC1lICJzLG5ldy8sLCIgJGZpbGUyCi0tICAgICAgIGlmICEgZGlmZiAtdSAkZmlsZTEgJGZpbGUyID4gJGRmaWxlOyB0aGVuCi0tICAgICAgICAgIGVjaG8gIiRmaWxlIGRpZmZlcnMgaW4gYXNzZW1ibGVyIG91dHB1dCIKLS0gICAgICAgICAgaGVhZCAtbiAyMDAgJGRmaWxlCi0tICAgICAgICAgIGVsZmRpZmY9IjEiCi0tICAgICAgIGZpCi0tICAgICAgIGVjaG8gIiIgPiRmaWxlMQotLSAgICAgICBlY2hvICIiID4kZmlsZTIKLS0gICAgICAgIyBEb24ndCBjb21wYXJlIC5idWlsZC1pZCBhbmQgLmdudV9kZWJ1Z2xpbmsgc2VjdGlvbnMKLS0gICAgICAgc2VjdGlvbnM9IiQob2JqZHVtcCAtcyBuZXcvJGZpbGUgfCBncmVwICJDb250ZW50cyBvZiBzZWN0aW9uIC4qOiIgfCBzZWQgLXIgInMsLiogKC4qKTosXDEsZyIgfCBncmVwIC12IC1lICJcLmJ1aWxkLWlkIiAtZSAiXC5nbnVfZGVidWdsaW5rIiB8IHRyICJcbiIgIiAiKSIKLS0gICAgICAgZm9yIHNlY3Rpb24gaW4gJHNlY3Rpb25zOyBkbwotLSAgICAgICAgICBvYmpkdW1wIC1zIC1qICRzZWN0aW9uIG9sZC8kZmlsZSB8IHNlZCAicyxeb2xkLywsIiA+ICRmaWxlMQotLSAgICAgICAgICBvYmpkdW1wIC1zIC1qICRzZWN0aW9uIG5ldy8kZmlsZSB8IHNlZCAicyxebmV3LywsIiA+ICRmaWxlMgotLSAgICAgICAgICBpZiAhIGRpZmYgLXUgJGZpbGUxICRmaWxlMiA+ICRkZmlsZTsgdGhlbgotLSAgICAgICAgICAgICBlY2hvICIkZmlsZSBkaWZmZXJzIGluIEVMRiBzZWN0aW9uICRzZWN0aW9uIgotLSAgICAgICAgICAgICBoZWFkIC1uIDIwMCAkZGZpbGUKLS0gICAgICAgICAgICAgZWxmZGlmZj0iMSIKLS0gICAgICAgICAgZmkKLS0gICAgICAgZG9uZQotLSAgICAgICBpZiB0ZXN0IC16ICIkZWxmZGlmZiI7IHRoZW4KLS0gICAgICAgICAgZWNobyAiJGZpbGU6IG9ubHkgZGlmZmVyZW5jZSB3YXMgaW4gYnVpbGQtaWQgb3IgZ251X2RlYnVnbGluaywgR09PRC4iCi0tICAgICAgICAgIHJldHVybiAwCi0tICAgICAgIGZpCi0tICAgICAgIHJldHVybiAxCi0tICAgICAgIDs7Ci0tICAgICAqQVNDSUkqfCp0ZXh0KikKLS0gICAgICAgaWYgISBjbXAgLXMgb2xkLyRmaWxlIG5ldy8kZmlsZTsgdGhlbgotLSAgICAgICAgIGVjaG8gIiRmaWxlIGRpZmZlcnMgKCRmdHlwZSkiCi0tICAgICAgICAgZGlmZiAtdSBvbGQvJGZpbGUgbmV3LyRmaWxlIHwgaGVhZCAtbiAyMDAKLS0gICAgICAgICByZXR1cm4gMQotLSAgICAgICBmaQotLSAgICAgICA7OwotLSAgICAgZGlyZWN0b3J5fHNldHVpZCxcIGRpcmVjdG9yeXxzdGlja3ksXCBkaXJlY3RvcnkpCi0tICAgICAgICMgdGFyIG1pZ2h0IHBhY2thZ2UgZGlyZWN0b3JpZXMgLSBpZ25vcmUgdGhlbSBoZXJlCi0tICAgICAgIHJldHVybiAwCi0tICAgICAgIDs7Ci0tICAgICBiemlwMlwgY29tcHJlc3NlZFwgZGF0YSopCi0tICAgICAgIGlmICEgY2hlY2tfY29tcHJlc3NlZF9maWxlICIkZmlsZSIgImJ6MiI7IHRoZW4KLS0gICAgICAgICAgIHJldHVybiAxCi0tICAgICAgIGZpCi0tICAgICAgIDs7Ci0tICAgICBnemlwXCBjb21wcmVzc2VkXCBkYXRhKikKLS0gICAgICAgaWYgISBjaGVja19jb21wcmVzc2VkX2ZpbGUgIiRmaWxlIiAiZ3ppcCI7IHRoZW4KLS0gICAgICAgICAgIHJldHVybiAxCi0tICAgICAgIGZpCi0tICAgICAgIDs7Ci0tICAgICBYWlwgY29tcHJlc3NlZFwgZGF0YSopCi0tICAgICAgIGlmICEgY2hlY2tfY29tcHJlc3NlZF9maWxlICIkZmlsZSIgInh6IjsgdGhlbgotLSAgICAgICAgICAgcmV0dXJuIDEKLS0gICAgICAgZmkKLS0gICAgICAgOzsKLS0gICAgIFBPU0lYXCB0YXJcIGFyY2hpdmUpCi0tICAgICAgICAgIG12IG9sZC8kZmlsZXssLnRhcn0KLS0gICAgICAgICAgbXYgbmV3LyRmaWxleywudGFyfQotLSAgICAgICAgICBpZiAhIGNoZWNrX3NpbmdsZV9maWxlICR7ZmlsZX0udGFyOyB0aGVuCi0tICAgICAgICAgICAgcmV0dXJuIDEKLS0gICAgICAgICAgZmkKLS0gICAgICAgOzsKLS0gICAgIGNwaW9cIGFyY2hpdmUpCi0tICAgICAgICAgIG12IG9sZC8kZmlsZXssLmNwaW99Ci0tICAgICAgICAgIG12IG5ldy8kZmlsZXssLmNwaW99Ci0tICAgICAgICAgIGlmICEgY2hlY2tfc2luZ2xlX2ZpbGUgJHtmaWxlfS5jcGlvOyB0aGVuCi0tICAgICAgICAgICAgcmV0dXJuIDEKLS0gICAgICAgICAgZmkKLS0gICAgIDs7Ci0tICAgICBzeW1ib2xpY1wgbGlua1wgdG9cICopCi0tICAgICAgIHJlYWRsaW5rICJvbGQvJGZpbGUiID4gJGZpbGUxCi0tICAgICAgIHJlYWRsaW5rICJuZXcvJGZpbGUiID4gJGZpbGUyCi0tICAgICAgIGlmICEgZGlmZiAtdSAkZmlsZTEgJGZpbGUyOyB0aGVuCi0tICAgICAgICAgZWNobyAic3ltbGluayB0YXJnZXQgZm9yICRmaWxlIGRpZmZlcnMiCi0tICAgICAgICAgcmV0dXJuIDEKLS0gICAgICAgZmkKLS0gICAgICAgOzsKLS0gICAgICopCi0tICAgICAgIGlmICEgZGlmZl90d29fZmlsZXM7IHRoZW4KLS0gICAgICAgICAgIHJldHVybiAxCi0tICAgICAgIGZpCi0tICAgICAgIDs7Ci0tICBlc2FjCi0tICByZXR1cm4gMAotLX0KLS0KLS0jIFdlIG5lZWQgL3Byb2MgbW91bnRlZCBmb3Igc29tZSB0ZXN0cywgc28gY2hlY2sgdGhhdCBpdCdzIG1vdW50ZWQgYW5kCi0tIyBjb21wbGFpbiBpZiBub3QuCi0tUFJPQ19NT1VOVEVEPTAKLS1pZiBbICEgLWQgL3Byb2Mvc2VsZi8gXTsgdGhlbgotLSAgZWNobyAiL3Byb2MgaXMgbm90IG1vdW50ZWQiCi0tICBtb3VudCAtb3J3IC1uIC10cHJvYyBub25lIC9wcm9jCi0tICBQUk9DX01PVU5URUQ9MQotLWZpCi0tCi0tIyBwcmVzZXJ2ZSBjbXBfc3BlYyByZXN1bHQgZm9yIGNoZWNrX2FsbCBydW5zCi0tcmV0PSRSRVMKLS1mb3IgZmlsZSBpbiAkZmlsZXM7IGRvCi0tICAgaWYgISBjaGVja19zaW5nbGVfZmlsZSAkZmlsZTsgdGhlbgotLSAgICAgICByZXQ9MQotLSAgICAgICBpZiB0ZXN0IC16ICIkY2hlY2tfYWxsIjsgdGhlbgotLSAgICAgICAgICAgYnJlYWsKLS0gICAgICAgZmkKLS0gICBmaQotLWRvbmUKLS0KLS1pZiBbICIkUFJPQ19NT1VOVEVEIiAtZXEgIjEiIF07IHRoZW4KLS0gIGVjaG8gIlVubW91bnRpbmcgcHJvYyIKLS0gIHVtb3VudCAvcHJvYwotLWZpCi0tCi0tcm0gJGZpbGUxICRmaWxlMiAkZGZpbGUgJHJlbmFtZV9zY3JpcHQKLS1ybSAtcmYgJGRpcgotLWlmIHRlc3QgIiRyZXQiID0gMDsgdGhlbgotLSAgICAgZWNobyAiUGFja2FnZSBjb250ZW50IGlzIGlkZW50aWNhbCIKLS1maQotLWV4aXQgJHJldAotLSMgdmltOiB0dz02NjYgdHM9MiBldAotZGlmZiAtLWdpdCBhL3NhbWUtYnVpbGQtcmVzdWx0LnNoIGIvc2FtZS1idWlsZC1yZXN1bHQuc2gKLWluZGV4IGM4OTA3ZTIuLjdlOWJkNGYgMTAwNjQ0Ci0tLS0gYS9zYW1lLWJ1aWxkLXJlc3VsdC5zaAotKysrIGIvc2FtZS1idWlsZC1yZXN1bHQuc2gKLUBAIC03LDExICs3LDExIEBACi0gIyBFbmhhbmNlZCBieSBBbmRyZWFzIEphZWdlciA8YWpAc3VzZS5kZT4KLSAjCi0gIyBUaGUgc2NyaXB0IGRlY2lkZXMgaWYgdGhlIG5ldyBidWlsZCBkaWZmZXJlcyBmcm9tIHRoZSBmb3JtZXIgb25lLAotLSMgdXNpbmcgcnBtLWNoZWNrLnNoLgotKyMgdXNpbmcgcGtnLWRpZmYuc2guCi0gIyBUaGUgc2NyaXB0IGlzIGNhbGxlZCBhcyBwYXJ0IG9mIHRoZSBidWlsZCBwcm9jZXNzIGFzOgotICMgL3Vzci9saWIvYnVpbGQvc2FtZS1idWlsZC1yZXN1bHQuc2ggLy5idWlsZC5vbGRwYWNrYWdlcyAvdXNyL3NyYy9wYWNrYWdlcy9SUE1TIC91c3Ivc3JjL3BhY2thZ2VzL1NSUE1TCi0gCi0tQ01QU0NSSVBUPSR7MCUvKn0vcnBtLWNoZWNrLnNoCi0rQ01QU0NSSVBUPSR7MCUvKn0vcGtnLWRpZmYuc2gKLSBTQ01QU0NSSVBUPSR7MCUvKn0vc3JwbS1jaGVjay5zaAotIAotIGNoZWNrX2FsbD0xCi0tLSAKLTEuNy45LjUKLQpkaWZmIC0tZ2l0IGEvcG9reS9tZXRhL3JlY2lwZXMtZGV2dG9vbHMvYnVpbGQtY29tcGFyZS9maWxlcy9mdW5jdGlvbnMuc2gtaW1wcm92ZS1kZWItYW5kLWlway1jaGVja2luZy5wYXRjaCBiL3Bva3kvbWV0YS9yZWNpcGVzLWRldnRvb2xzL2J1aWxkLWNvbXBhcmUvZmlsZXMvZnVuY3Rpb25zLnNoLWltcHJvdmUtZGViLWFuZC1pcGstY2hlY2tpbmcucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDA1NDIwZjguLjAwMDAwMDAKLS0tIGEvcG9reS9tZXRhL3JlY2lwZXMtZGV2dG9vbHMvYnVpbGQtY29tcGFyZS9maWxlcy9mdW5jdGlvbnMuc2gtaW1wcm92ZS1kZWItYW5kLWlway1jaGVja2luZy5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDExNyArMCwwIEBACi1Gcm9tIGI0ZWI3ZmRlMTAzMTgxNjJiZDJkMDJiOTAxN2VmNTE3NDY3NTJhOTEgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBSb2JlcnQgWWFuZyA8bGllemhpLnlhbmdAd2luZHJpdmVyLmNvbT4KLURhdGU6IFRodSwgMTQgSnVsIDIwMTYgMjM6MTQ6MjEgLTA3MDAKLVN1YmplY3Q6IFtQQVRDSCA0LzRdIGZ1bmN0aW9ucy5zaDogaW1wcm92ZSBkZWIgYW5kIGlwayBjaGVja2luZwotCi0qIFRoZSBkZWIgYW5kIGlwaydzIGRlcGVuZHMgdmVyc2lvbiBzdHJpbmcgaXMgbGlrZToKLSAgRGVwZW5kczogbGliYzYgKD49IDIuMjQpCi0gIFVwZGF0ZSB0cmltX3JlbGVhc2Vfb2xkIGFuZCB0cmltX3JlbGVhc2VfbmV3IHRvIG1hdGNoIHRoZSBicmFja2V0IGluCi0gIHRoZSBlbmQgIikiLgotCi0qIFRoZSBkZWIncyBkYXRhIHRhcmJhbGwgbm93IGlzIC50YXIueHosIGFuZCBpcGsncyBpcyAudGFyLmd6LgotCi0qIFVwZGF0ZSBhZGp1c3RfY29udHJvbGZpbGUoKSB0byBtYWtlIGl0dXNlIHRyaW1fcmVsZWFzZV9vbGQgYW5kCi0gIHRyaW1fcmVsZWFzZV9uZXcuCi0KLVVwc3RyZWFtLVN0YXR1czogU3VibWl0dGVkIFtodHRwczovL2dpdGh1Yi5jb20vb3BlblNVU0UvYnVpbGQtY29tcGFyZS9wdWxsLzEwXQotCi1TaWduZWQtb2ZmLWJ5OiBSb2JlcnQgWWFuZyA8bGllemhpLnlhbmdAd2luZHJpdmVyLmNvbT4KLS0tLQotIGZ1bmN0aW9ucy5zaCB8IDQ1ICsrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tLQotIDEgZmlsZSBjaGFuZ2VkLCAyOCBpbnNlcnRpb25zKCspLCAxNyBkZWxldGlvbnMoLSkKLQotZGlmZiAtLWdpdCBhL2Z1bmN0aW9ucy5zaCBiL2Z1bmN0aW9ucy5zaAotaW5kZXggYWE1NzJmOS4uZmU0OTNiYSAxMDA3NTUKLS0tLSBhL2Z1bmN0aW9ucy5zaAotKysrIGIvZnVuY3Rpb25zLnNoCi1AQCAtNzgsNyArNzgsNyBAQCBjaGVja19oZWFkZXIoKQotIGZ1bmN0aW9uIHRyaW1fcmVsZWFzZV9vbGQoKQotIHsKLSAgIHNlZCAtZSAiCi0tICAvXChcL2Jvb3RcfFwvbGliXC9tb2R1bGVzXHxcL2xpYlwvZmlybXdhcmVcfFwvdXNyXC9zcmNcfCR2ZXJzaW9uX3JlbGVhc2Vfb2xkX3JlZ2V4X2xcJFwpL3tzLCR2ZXJzaW9uX3JlbGVhc2Vfb2xkX3JlZ2V4X2wsQFZFUlNJT05ALUBSRUxFQVNFX0xPTkdALGc7cywkdmVyc2lvbl9yZWxlYXNlX29sZF9yZWdleF9zLEBWRVJTSU9OQC1AUkVMRUFTRV9TSE9SVEAsZ30KLSsgIC9cKFwvYm9vdFx8XC9saWJcL21vZHVsZXNcfFwvbGliXC9maXJtd2FyZVx8XC91c3JcL3NyY1x8JHZlcnNpb25fcmVsZWFzZV9vbGRfcmVnZXhfbFwkXHwkdmVyc2lvbl9yZWxlYXNlX29sZF9yZWdleF9sKVwpL3tzLCR2ZXJzaW9uX3JlbGVhc2Vfb2xkX3JlZ2V4X2wsQFZFUlNJT05ALUBSRUxFQVNFX0xPTkdALGc7cywkdmVyc2lvbl9yZWxlYXNlX29sZF9yZWdleF9zLEBWRVJTSU9OQC1AUkVMRUFTRV9TSE9SVEAsZ30KLSAgIHMvXChcL3ZhclwvYWRtXC91cGRhdGUtc2NyaXB0c1wvXCkke25hbWVfdmVyX3JlbF9vbGRfcmVnZXhfbH1cKFteWzpibGFuazpdXVwrXCkvXDFATkFNRV9WRVJfUkVMQFwyL2cKLSAgIHMvXiAqLy9nCi0gICAiCi1AQCAtODYsNyArODYsNyBAQCBmdW5jdGlvbiB0cmltX3JlbGVhc2Vfb2xkKCkKLSBmdW5jdGlvbiB0cmltX3JlbGVhc2VfbmV3KCkKLSB7Ci0gICBzZWQgLWUgIgotLSAgL1woXC9ib290XHxcL2xpYlwvbW9kdWxlc1x8XC9saWJcL2Zpcm13YXJlXHxcL3Vzclwvc3JjXHwkdmVyc2lvbl9yZWxlYXNlX25ld19yZWdleF9sXCRcKS97cywkdmVyc2lvbl9yZWxlYXNlX25ld19yZWdleF9sLEBWRVJTSU9OQC1AUkVMRUFTRV9MT05HQCxnO3MsJHZlcnNpb25fcmVsZWFzZV9uZXdfcmVnZXhfcyxAVkVSU0lPTkAtQFJFTEVBU0VfU0hPUlRALGd9Ci0rICAvXChcL2Jvb3RcfFwvbGliXC9tb2R1bGVzXHxcL2xpYlwvZmlybXdhcmVcfFwvdXNyXC9zcmNcfCR2ZXJzaW9uX3JlbGVhc2VfbmV3X3JlZ2V4X2xcJFx8JHZlcnNpb25fcmVsZWFzZV9uZXdfcmVnZXhfbClcKS97cywkdmVyc2lvbl9yZWxlYXNlX25ld19yZWdleF9sLEBWRVJTSU9OQC1AUkVMRUFTRV9MT05HQCxnO3MsJHZlcnNpb25fcmVsZWFzZV9uZXdfcmVnZXhfcyxAVkVSU0lPTkAtQFJFTEVBU0VfU0hPUlRALGd9Ci0gICBzL1woXC92YXJcL2FkbVwvdXBkYXRlLXNjcmlwdHNcL1wpJHtuYW1lX3Zlcl9yZWxfbmV3X3JlZ2V4X2x9XChbXls6Ymxhbms6XV1cK1wpL1wxQE5BTUVfVkVSX1JFTEBcMi9nCi0gICBzL14gKi8vZwotICAgIgotQEAgLTEzMyw4ICsxMzMsOCBAQCBmdW5jdGlvbiB1bnBhY2thZ2UoKQotICAgICAgICAgICAgIGFyIHggJGZpbGUKLSAgICAgICAgICAgICB0YXIgeGYgY29udHJvbC50YXIuZ3oKLSAgICAgICAgICAgICBybSBjb250cm9sLnRhci5negotLSAgICAgICAgICAgIHRhciB4ZiBkYXRhLnRhci5negotLSAgICAgICAgICAgIHJtIGRhdGEudGFyLmd6Ci0rICAgICAgICAgICAgdGFyIHhmIGRhdGEudGFyLlt4Z116Ci0rICAgICAgICAgICAgcm0gZGF0YS50YXIuW3hnXXoKLSAgICAgICAgICAgICA7OwotICAgICBlc2FjCi0gICAgIHBvcGQgMT4vZGV2L251bGwKLUBAIC0xNjQsNiArMTY0LDIyIEBAIGZ1bmN0aW9uIGdldF92YWx1ZSgpCi0gICAgIHNlZCAtbiAtZSAiL15fX18kezF9X19fLywvXl9fXyR7MX1fX18vcCIgJDIgfCBzZWQgLWUgIi9eX19fJHsxfV9fXy9kIgotIH0KLSAKLSsjIFNldCB2ZXJzaW9uX3JlbGVhc2Vfb2xkX3JlZ2V4X3MsIHZlcnNpb25fcmVsZWFzZV9vbGRfcmVnZXhfbCBhbmQKLSsjIG5hbWVfdmVyX3JlbF9vbGRfcmVnZXhfbCwgYWxzbyB0aGUgbmV3IG9uZXMuCi0rZnVuY3Rpb24gc2V0X3JlZ2V4KCkgewotKyAgICAjIFJlbWVtYmVyIHRvIHF1b3RlIHRoZSAuIHdoaWNoIGlzIGluIHJlbGVhc2UKLSsgICAgIyBTaG9ydCB2ZXJzaW9uIHdpdGhvdXQgQl9DTgotKyAgICB2ZXJzaW9uX3JlbGVhc2Vfb2xkX3JlZ2V4X3M9JHt2ZXJzaW9uX3JlbGVhc2Vfb2xkJS4qfQotKyAgICB2ZXJzaW9uX3JlbGVhc2Vfb2xkX3JlZ2V4X3M9JHt2ZXJzaW9uX3JlbGVhc2Vfb2xkX3JlZ2V4X3MvLy4vXFwufQotKyAgICB2ZXJzaW9uX3JlbGVhc2VfbmV3X3JlZ2V4X3M9JHt2ZXJzaW9uX3JlbGVhc2VfbmV3JS4qfQotKyAgICB2ZXJzaW9uX3JlbGVhc2VfbmV3X3JlZ2V4X3M9JHt2ZXJzaW9uX3JlbGVhc2VfbmV3X3JlZ2V4X3MvLy4vXFwufQotKyAgICAjIExvbmcgdmVyc2lvbiB3aXRoIEJfQ05UCi0rICAgIHZlcnNpb25fcmVsZWFzZV9vbGRfcmVnZXhfbD0ke3ZlcnNpb25fcmVsZWFzZV9vbGQvLy4vXFwufQotKyAgICB2ZXJzaW9uX3JlbGVhc2VfbmV3X3JlZ2V4X2w9JHt2ZXJzaW9uX3JlbGVhc2VfbmV3Ly8uL1xcLn0KLSsgICAgbmFtZV92ZXJfcmVsX29sZF9yZWdleF9sPSR7bmFtZV92ZXJfcmVsX29sZC8vLi9cXC59Ci0rICAgIG5hbWVfdmVyX3JlbF9uZXdfcmVnZXhfbD0ke25hbWVfdmVyX3JlbF9uZXcvLy4vXFwufQotK30KLSsKLSAjIENvbXBhcmUganVzdCB0aGUgcnBtIG1ldGEgZGF0YSBvZiB0d28gcnBtcwotICMgUmV0dXJuczoKLSAjIDAgaW4gY2FzZSBvZiBzYW1lIGNvbnRlbnQKLUBAIC0xOTQsMTcgKzIxMCw3IEBAIGZ1bmN0aW9uIGNtcF9zcGVjICgpCi0gICAgIHZlcnNpb25fcmVsZWFzZV9vbGQ9IiQoZ2V0X3ZhbHVlIFFGX1ZFUl9SRUwgJHNwZWNfb2xkKSIKLSAgICAgbmFtZV92ZXJfcmVsX29sZD0iJChnZXRfdmFsdWUgUUZfTkFNRV9WRVJfUkVMICRzcGVjX29sZCkiCi0gCi0tICAgICMgUmVtZW1iZXIgdG8gcXVvdGUgdGhlIC4gd2hpY2ggaXMgaW4gcmVsZWFzZQotLSAgICAjIFNob3J0IHZlcnNpb24gd2l0aG91dCBCX0NOCi0tICAgIHZlcnNpb25fcmVsZWFzZV9vbGRfcmVnZXhfcz0ke3ZlcnNpb25fcmVsZWFzZV9vbGQlLip9Ci0tICAgIHZlcnNpb25fcmVsZWFzZV9vbGRfcmVnZXhfcz0ke3ZlcnNpb25fcmVsZWFzZV9vbGRfcmVnZXhfcy8vLi9cXC59Ci0tICAgIHZlcnNpb25fcmVsZWFzZV9uZXdfcmVnZXhfcz0ke3ZlcnNpb25fcmVsZWFzZV9uZXclLip9Ci0tICAgIHZlcnNpb25fcmVsZWFzZV9uZXdfcmVnZXhfcz0ke3ZlcnNpb25fcmVsZWFzZV9uZXdfcmVnZXhfcy8vLi9cXC59Ci0tICAgICMgTG9uZyB2ZXJzaW9uIHdpdGggQl9DTlQKLS0gICAgdmVyc2lvbl9yZWxlYXNlX29sZF9yZWdleF9sPSR7dmVyc2lvbl9yZWxlYXNlX29sZC8vLi9cXC59Ci0tICAgIHZlcnNpb25fcmVsZWFzZV9uZXdfcmVnZXhfbD0ke3ZlcnNpb25fcmVsZWFzZV9uZXcvLy4vXFwufQotLSAgICBuYW1lX3Zlcl9yZWxfb2xkX3JlZ2V4X2w9JHtuYW1lX3Zlcl9yZWxfb2xkLy8uL1xcLn0KLS0gICAgbmFtZV92ZXJfcmVsX25ld19yZWdleF9sPSR7bmFtZV92ZXJfcmVsX25ldy8vLi9cXC59Ci0rICAgIHNldF9yZWdleAotIAotICAgICAjIENoZWNrIHRoZSB3aG9sZSBzcGVjIGZpbGUgYXQgZmlyc3QsIHJldHVybiAwIGltbWVkaWF0ZWx5IGlmIHRoZQotICAgICAjIGFyZSB0aGUgc2FtZS4KLUBAIC0yODUsOSArMjkxLDE0IEBAIGZ1bmN0aW9uIGNtcF9zcGVjICgpCi0gfQotIAotIGZ1bmN0aW9uIGFkanVzdF9jb250cm9sZmlsZSgpIHsKLS0gICAgY2F0ICQxL2NvbnRyb2wgfCBzZWQgJy9eVmVyc2lvbjogL2QnID4gJDEvY29udHJvbC5maXhlZAotKyAgICB2ZXJzaW9uX3JlbGVhc2Vfb2xkPSJgc2VkIC1uZSAncy9eVmVyc2lvbjogXCguKlwpL1wxL3AnICQxL2NvbnRyb2xgIgotKyAgICBuYW1lX3Zlcl9yZWxfb2xkPSJgc2VkIC1uIC1lICdzL15QYWNrYWdlOiBcKC4qXCkvXDEvcCcgJDEvY29udHJvbGAtYHNlZCAtbiAtZSAncy9eVmVyc2lvbjogXCguKlwpL1wxL3AnICQxL2NvbnRyb2xgIgotKyAgICB2ZXJzaW9uX3JlbGVhc2VfbmV3PSJgc2VkIC1uZSAncy9eVmVyc2lvbjogXCguKlwpL1wxL3AnICQyL2NvbnRyb2xgIgotKyAgICBuYW1lX3Zlcl9yZWxfbmV3PSJgc2VkIC1uIC1lICdzL15QYWNrYWdlOiBcKC4qXCkvXDEvcCcgJDIvY29udHJvbGAtYHNlZCAtbiAtZSAncy9eVmVyc2lvbjogXCguKlwpL1wxL3AnICQyL2NvbnRyb2xgIgotKyAgICBzZXRfcmVnZXgKLSsgICAgY2F0ICQxL2NvbnRyb2wgfCB0cmltX3JlbGVhc2Vfb2xkID4gJDEvY29udHJvbC5maXhlZAotICAgICBtdiAkMS9jb250cm9sLmZpeGVkICQxL2NvbnRyb2wKLS0gICAgY2F0ICQyL2NvbnRyb2wgfCBzZWQgJy9eVmVyc2lvbjogL2QnID4gJDIvY29udHJvbC5maXhlZAotKyAgICBjYXQgJDIvY29udHJvbCB8IHRyaW1fcmVsZWFzZV9uZXcgPiAkMi9jb250cm9sLmZpeGVkCi0gICAgIG12ICQyL2NvbnRyb2wuZml4ZWQgJDIvY29udHJvbAotIH0KLSAKLS0tIAotMi45LjAKLQpkaWZmIC0tZ2l0IGEvcG9reS9tZXRhL3JlY2lwZXMtZGV2dG9vbHMvYnVpbGQtY29tcGFyZS9maWxlcy9mdW5jdGlvbnMuc2gtcmVtb3ZlLXNwYWNlLWF0LWhlYWQucGF0Y2ggYi9wb2t5L21ldGEvcmVjaXBlcy1kZXZ0b29scy9idWlsZC1jb21wYXJlL2ZpbGVzL2Z1bmN0aW9ucy5zaC1yZW1vdmUtc3BhY2UtYXQtaGVhZC5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDJlOTZiYS4uMDAwMDAwMAotLS0gYS9wb2t5L21ldGEvcmVjaXBlcy1kZXZ0b29scy9idWlsZC1jb21wYXJlL2ZpbGVzL2Z1bmN0aW9ucy5zaC1yZW1vdmUtc3BhY2UtYXQtaGVhZC5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDQxICswLDAgQEAKLUZyb20gNDAyYTgyMWU2MDRmMjgwZTYyYzM0YmY0ZDQwYzZkMWI0YzZjODkyZCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IFJvYmVydCBZYW5nIDxsaWV6aGkueWFuZ0B3aW5kcml2ZXIuY29tPgotRGF0ZTogTW9uLCA0IEp1bCAyMDE2IDIwOjExOjMzIC0wNzAwCi1TdWJqZWN0OiBbUEFUQ0hdIGZ1bmN0aW9ucy5zaDogcmVtb3ZlIHNwYWNlIGF0IGhlYWQKLQotVGhlIGNvbW1hbmQgbGlrZToKLXJwbSAtcXAgLS1ub2RpZ2VzdCAtLW5vc2lnbmF0dXJlIC0tcWYgJzxmb28+IFsle1JFUVVJUkVOQU1FfVxuXVxuJwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeXnNwYWNlCi0KLVRoZSBzcGFjZSB3aWxsIGJlIHByaW50ZWQsIGFuZCB3aWxsIGltcGFjdCB0aGUgY2hlY2sgcmVzdWx0LCBzbyByZW1vdmUgaXQuCi0KLVVwc3RyZWFtLVN0YXR1czogU3VibWl0dGVkIFtodHRwczovL2dpdGh1Yi5jb20vb3BlblNVU0UvYnVpbGQtY29tcGFyZS9wdWxsLzldCi0KLVNpZ25lZC1vZmYtYnk6IFJvYmVydCBZYW5nIDxsaWV6aGkueWFuZ0B3aW5kcml2ZXIuY29tPgotLS0tCi0gZnVuY3Rpb25zLnNoIHwgMiArKwotIDEgZmlsZSBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKykKLQotZGlmZiAtLWdpdCBhL2Z1bmN0aW9ucy5zaCBiL2Z1bmN0aW9ucy5zaAotaW5kZXggODVjOTAwMy4uYjEwNjlkMiAxMDA2NDQKLS0tLSBhL2Z1bmN0aW9ucy5zaAotKysrIGIvZnVuY3Rpb25zLnNoCi1AQCAtMjYsNiArMjYsNyBAQCBmdW5jdGlvbiB0cmltX3JlbGVhc2Vfb2xkKCkKLSAgIHNlZCAtZSAiCi0gICAvXChcL2Jvb3RcfFwvbGliXC9tb2R1bGVzXHxcL2xpYlwvZmlybXdhcmVcfFwvdXNyXC9zcmNcfCR2ZXJzaW9uX3JlbGVhc2Vfb2xkX3JlZ2V4X2xcJFwpL3tzLCR2ZXJzaW9uX3JlbGVhc2Vfb2xkX3JlZ2V4X2wsQFZFUlNJT05ALUBSRUxFQVNFX0xPTkdALGc7cywkdmVyc2lvbl9yZWxlYXNlX29sZF9yZWdleF9zLEBWRVJTSU9OQC1AUkVMRUFTRV9TSE9SVEAsZ30KLSAgIHMvXChcL3ZhclwvYWRtXC91cGRhdGUtc2NyaXB0c1wvXCkke25hbWVfdmVyX3JlbF9vbGRfcmVnZXhfbH1cKFteWzpibGFuazpdXVwrXCkvXDFATkFNRV9WRVJfUkVMQFwyL2cKLSsgIHMvXiAqLy9nCi0gICAiCi0gfQotIGZ1bmN0aW9uIHRyaW1fcmVsZWFzZV9uZXcoKQotQEAgLTMzLDYgKzM0LDcgQEAgZnVuY3Rpb24gdHJpbV9yZWxlYXNlX25ldygpCi0gICBzZWQgLWUgIgotICAgL1woXC9ib290XHxcL2xpYlwvbW9kdWxlc1x8XC9saWJcL2Zpcm13YXJlXHxcL3Vzclwvc3JjXHwkdmVyc2lvbl9yZWxlYXNlX25ld19yZWdleF9sXCRcKS97cywkdmVyc2lvbl9yZWxlYXNlX25ld19yZWdleF9sLEBWRVJTSU9OQC1AUkVMRUFTRV9MT05HQCxnO3MsJHZlcnNpb25fcmVsZWFzZV9uZXdfcmVnZXhfcyxAVkVSU0lPTkAtQFJFTEVBU0VfU0hPUlRALGd9Ci0gICBzL1woXC92YXJcL2FkbVwvdXBkYXRlLXNjcmlwdHNcL1wpJHtuYW1lX3Zlcl9yZWxfbmV3X3JlZ2V4X2x9XChbXls6Ymxhbms6XV1cK1wpL1wxQE5BTUVfVkVSX1JFTEBcMi9nCi0rICBzL14gKi8vZwotICAgIgotIH0KLSAjIEdldCBzaW5nbGUgZGlyZWN0b3J5IG9yIGZpbGVuYW1lIHdpdGggbG9uZyBvciBzaG9ydCByZWxlYXNlIHN0cmluZwotLS0gCi0yLjkuMAotCmRpZmYgLS1naXQgYS9wb2t5L21ldGEvcmVjaXBlcy1kZXZ0b29scy9idWlsZC1jb21wYXJlL2ZpbGVzL2Z1bmN0aW9ucy5zaC1ydW4tcnBtLW9uY2UtdG8tbWFrZS1pdC1mYXN0ZXIucGF0Y2ggYi9wb2t5L21ldGEvcmVjaXBlcy1kZXZ0b29scy9idWlsZC1jb21wYXJlL2ZpbGVzL2Z1bmN0aW9ucy5zaC1ydW4tcnBtLW9uY2UtdG8tbWFrZS1pdC1mYXN0ZXIucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGY1Yjk5ZDkuLjAwMDAwMDAKLS0tIGEvcG9reS9tZXRhL3JlY2lwZXMtZGV2dG9vbHMvYnVpbGQtY29tcGFyZS9maWxlcy9mdW5jdGlvbnMuc2gtcnVuLXJwbS1vbmNlLXRvLW1ha2UtaXQtZmFzdGVyLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMzYxICswLDAgQEAKLUZyb20gZjM0ZDYzMmM0MjdiMWUxNTcwZWY5MTM2NDU0ZmMwMWQ4YzlmMTBhNiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IFJvYmVydCBZYW5nIDxsaWV6aGkueWFuZ0B3aW5kcml2ZXIuY29tPgotRGF0ZTogVGh1LCA3IEp1bCAyMDE2IDE5OjM0OjA5IC0wNzAwCi1TdWJqZWN0OiBbUEFUQ0hdIGZ1bmN0aW9ucy5zaDogcnVuIHJwbSBvbmNlIHRvIG1ha2UgaXQgZmFzdGVyCi0KLVRoZSBycG0gdG9vbCBpcyBhIGhlYXZ5IHByb2Nlc3MsIGl0IHJhbiAxNiAob3IgMTcgZm9yIGtlcm5lbCkKLSJycG0gLXFwIiB0aW1lcyB3aGVuIHRoZSBwa2dzIGFyZSBpZGVudGljYWwsIG5vdyB3ZSBvbmx5IHJ1bgotInJwbSAtcXAgLS1xZiA8YWxsIHdlIG5lZWQ+IiB0d2ljZSAob25lIGlzIGZvciBvbGQgcGtnLCBhbmQgb25lIGlzIGZvcgotbmV3KSwgc2F2ZSB0aGUgcmVzdWx0cyB0byBzcGVjX29sZCBhbmQgc3BlY19uZXcsIHRoZW4gdXNlIHNlZCBjb21tYW5kIHRvCi1nZXQgd2hhdCB3ZSBuZWVkIGxhdGVyLCB0aGlzIGNhbiBtYWtlIGl0IDc1JSBmYXN0ZXIgd2hlbiB0aGUgcGtncyBhcmUKLWlkZW50aWNhbC4gSGVyZSBpcyB0aGUgcm91Z2ggZGF0YSBvbiBteSBob3N0IFVidW50dSAxNC4wNC40LCAzMiBjb3JlcwotQ1BVIGFuZCAxMjhHIG1lbToKLSogV2hlbiB0aGUgcGtncyBhcmUgaWRlbnRpY2FsOgotICAtIEJlZm9yZSB0aGUgcGF0Y2g6IDFzCi0gIC0gQWZ0ZXIgdGhlIHBhdGNoOiAwLjI2cwotICBJIGNvbXBhcmUgdGhlIHdob2xlIHNwZWMgZmlyc3RseSwgYW5kIHJldHVybiAwIGlmIHRoZXkgYXJlIHRoZSBzYW1lLAotICBvciBnbyBvbiBjaGVja2luZyBvbmUgYnkgb25lIGlmIG5vdCwgd2l0aG91dCB0aGlzLCBpdCB3b3VsZCBiZSAwLjQ2cywKLSAgdGhlIGdhaW4gaXMgZ3JlYXQgd2hlbiB0aGVyZSBhcmUgbG90IG9mIHBhY2thZ2VzLCB1c3VhbGx5LCB3ZSBoYXZlCi0gIG1vcmUgdGhhbiAxMCwwMDAgcnBtcyB0byBjb21wYXJlLgotCi0qIFdoZW4gdGhlIHBrZ3MgYXJlIGRpZmZlcmVudDoKLSAgVGhhdCBkZXBlbmRzIG9uIHdoZXJlIGlzIHRoZSBkaWZmZXJlbnQsIGlmIHRoZSBkaWZmZXJlbnQgaXMgYXQgdGhlCi0gIGNvbXBhcmluZyBycG10YWdzIHN0YWdlOgotICAtIEJlZm9yZSB0aGUgcGF0Y2g6IDAuMjZzCi0gIC0gQWZ0ZXIgdGhlIHBhdGNoOiAwLjI5cwotICBJbmNyZWFzZWQgMC4wM3MsIGJ1dCBpZiB0aGUgZGlmZmVyZW50IGlzIGhhcHBlbmQgbGF0ZXIgdGhhbiBjb21wYXJpbmcKLSAgcnBtdGFncywgaXQgd2lsbCBzYXZlIHRpbWUuCi0KLVVwc3RyZWFtLVN0YXR1czogU3VibWl0dGVkIFtodHRwczovL2dpdGh1Yi5jb20vb3BlblNVU0UvYnVpbGQtY29tcGFyZS9wdWxsLzldCi0KLVNpZ25lZC1vZmYtYnk6IFJvYmVydCBZYW5nIDxsaWV6aGkueWFuZ0B3aW5kcml2ZXIuY29tPgotLS0tCi0gZnVuY3Rpb25zLnNoIHwgMjQ1ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gMSBmaWxlIGNoYW5nZWQsIDEzMiBpbnNlcnRpb25zKCspLCAxMTMgZGVsZXRpb25zKC0pCi0gbW9kZSBjaGFuZ2UgMTAwNjQ0ID0+IDEwMDc1NSBmdW5jdGlvbnMuc2gKLQotZGlmZiAtLWdpdCBhL2Z1bmN0aW9ucy5zaCBiL2Z1bmN0aW9ucy5zaAotb2xkIG1vZGUgMTAwNjQ0Ci1uZXcgbW9kZSAxMDA3NTUKLWluZGV4IGIxMDY5ZDIuLmFhNTcyZjkKLS0tLSBhL2Z1bmN0aW9ucy5zaAotKysrIGIvZnVuY3Rpb25zLnNoCi1AQCAtMTAsOSArMTAsNjMgQEAKLSAKLSBSUE09InJwbSAtcXAgLS1ub2RpZ2VzdCAtLW5vc2lnbmF0dXJlIgotIAotLWNoZWNrX2hlYWRlcigpIAotKyMgTmFtZSwgVmVyc2lvbiwgUmVsZWFzZQotK1FGX05BTUU9IiV7TkFNRX0iCi0rUUZfVkVSX1JFTD0iJXtWRVJTSU9OfS0le1JFTEVBU0V9IgotK1FGX05BTUVfVkVSX1JFTD0iJXtOQU1FfS0le1ZFUlNJT059LSV7UkVMRUFTRX0iCi0rCi0rIyBwcm92aWRlcyBkZXN0cm95IHRoaXMgYmVjYXVzZSBhdCBsZWFzdCB0aGUgc2VsZi1wcm92aWRlIGluY2x1ZGVzIHRoZQotKyMgLWJ1aWxkbnVtYmVyIDotKAotK1FGX1BST1ZJREVTPSJbJXtQUk9WSURFTkFNRX0gJXtQUk9WSURFRkxBR1N9ICV7UFJPVklERVZFUlNJT059XFxuXVxcbiIKLStRRl9QUk9WSURFUz0iJFFGX1BST1ZJREVTIFsle1JFUVVJUkVOQU1FfSAle1JFUVVJUkVGTEFHU30gJXtSRVFVSVJFVkVSU0lPTn1cXG5dXFxuIgotK1FGX1BST1ZJREVTPSIkUUZfUFJPVklERVMgWyV7Q09ORkxJQ1ROQU1FfSAle0NPTkZMSUNURkxBR1N9ICV7Q09ORkxJQ1RWRVJTSU9OfVxcbl1cXG4iCi0rUUZfUFJPVklERVM9IiRRRl9QUk9WSURFUyBbJXtPQlNPTEVURU5BTUV9ICV7T0JTT0xFVEVGTEFHU30gJXtPQlNPTEVURVZFUlNJT059XFxuXVxcbiIKLSsKLSsjIGRvbid0IGxvb2sgYXQgUkVMRUFTRSwgaXQgY29udGFpbnMgb3VyIGJ1aWxkIG51bWJlcgotK1FGX1RBR1M9IiV7TkFNRX0gJXtWRVJTSU9OfSAle0VQT0NIfVxcbiIKLStRRl9UQUdTPSIkUUZfVEFHUyAle1NVTU1BUll9XFxuJXtERVNDUklQVElPTn1cXG4iCi0rIyB0aGUgRElTVFVSTCB0YWcgY2FuIGJlIHVzZWQgYXMgY2hlY2tpbiBJRAotK1FGX1RBR1M9IiRRRl9UQUdTICV7VkVORE9SfSAle0RJU1RSSUJVVElPTn0gJXtESVNUVVJMfSIKLStRRl9UQUdTPSIkUUZfVEFHUyAle0xJQ0VOU0V9ICV7TElDRU5TRX1cXG4iCi0rUUZfVEFHUz0iJFFGX1RBR1MgJXtHUk9VUH0gJXtVUkx9ICV7RVhDTFVERUFSQ0h9ICV7RVhDTFVERU9TfSAle0VYQ0xVU0lWRUFSQ0h9XFxuIgotK1FGX1RBR1M9IiRRRl9UQUdTICV7RVhDTFVTSVZFT1N9ICV7UlBNVkVSU0lPTn0gJXtQTEFURk9STX1cXG4iCi0rUUZfVEFHUz0iJFFGX1RBR1MgJXtQQVlMT0FERk9STUFUfSAle1BBWUxPQURDT01QUkVTU09SfSAle1BBWUxPQURGTEFHU31cXG4iCi0rCi0rIyBYWFggV2UgYWxzbyBuZWVkIHRvIGNoZWNrIHRoZSBleGlzdGVuY2UgKGJ1dCBub3QgdGhlIGNvbnRlbnQgKCEpKQotKyMgb2YgU0lHR1BHIChhbmQgcGVyaGFwcyB0aGUgb3RoZXIgU0lHKikKLSsjIFhYWCBXZSBkb24ndCBsb29rIGF0IHRyaWdnZXJzCi0rUUZfVEFHUz0iJFFGX1RBR1MgWyV7VkVSSUZZU0NSSVBUUFJPR30gJXtWRVJJRllTQ1JJUFR9XVxcbiIKLSsjIE9ubHkgdGhlIGZpcnN0IENoYW5nZUxvZyBlbnRyeTsgc2hvdWxkIGJlIGVub3VnaAotK1FGX1RBR1M9IiRRRl9UQUdTICV7Q0hBTkdFTE9HVElNRX0gJXtDSEFOR0VMT0dOQU1FfSAle0NIQU5HRUxPR1RFWFR9XFxuIgotKwotKyMgc2NyaXB0cywgbWlnaHQgY29udGFpbiByZWxlYXNlIG51bWJlcgotK1FGX1NDUklQVD0iWyV7UFJFSU5QUk9HfSAle1BSRUlOfVxcbl1cXG5bJXtQT1NUSU5QUk9HfSAle1BPU1RJTn1cXG5dXFxuWyV7UFJFVU5QUk9HfSAle1BSRVVOfVxcbl1cXG5bJXtQT1NUVU5QUk9HfSAle1BPU1RVTn1cXG5dXFxuIgotKwotKyMgTm93IHRoZSBmaWxlcy4gV2UgbGVhdmUgb3V0IG10aW1lIGFuZCBzaXplLiAgRm9yIG5vcm1hbCBmaWxlcwotKyMgdGhlIHNpemUgd2lsbCBpbmZsdWVuY2UgdGhlIE1ENSBhbnl3YXkuICBGb3IgZGlyZWN0b3JpZXMgdGhlIHNpemVzIGNhbgotKyMgZGlmZmVyLCBkZXBlbmRpbmcgb24gd2hpY2ggZmlsZSBzeXN0ZW0gdGhlIHBhY2thZ2Ugd2FzIGJ1aWx0LiAgVG8gbm90Ci0rIyBoYXZlIHRvIGZpbHRlciBvdXQgZGlyZWN0b3JpZXMgd2Ugc2ltcGx5IGlnbm9yZSBhbGwgc2l6ZXMuCi0rIyBBbHNvIGxlYXZlIG91dCBGSUxFREVWSUNFUywgRklMRUlOT0RFUyAoZGVwZW5kcyBvbiB0aGUgYnVpbGQgaG9zdCksCi0rIyBGSUxFQ09MT1JTLCBGSUxFQ0xBU1MgKG5vcm1hbGx5IHVzZWZ1bCBidXQgZmlsZSBvdXRwdXQgY29udGFpbnMgbXRpbWVzKSwKLSsjIEZJTEVERVBFTkRTWCBhbmQgRklMRURFUEVORFNOLgotKyMgQWxzbyBGSUxFTEFOR1MgKG9yPykKLStRRl9GSUxFTElTVD0iWyV7RklMRU5BTUVTfSAle0ZJTEVGTEFHU30gJXtGSUxFU1RBVEVTfSAle0ZJTEVNT0RFUzpvY3RhbH0gJXtGSUxFVVNFUk5BTUV9ICV7RklMRUdST1VQTkFNRX0gJXtGSUxFUkRFVlN9ICV7RklMRVZFUklGWUZMQUdTfSAle0ZJTEVMSU5LVE9TfVxuXVxcbiIKLSsjID8/PyB3aGF0IHRvIGRvIHdpdGggRklMRVBST1ZJREUgYW5kIEZJTEVSRVFVSVJFPwotKwotK1FGX0NIRUNLU1VNPSJbJXtGSUxFTkFNRVN9ICV7RklMRU1ENVN9ICV7RklMRUZMQUdTfVxuXVxcbiIKLSsKLStRRl9BTEw9IlxuX19fUUZfTkFNRV9fX1xuJHtRRl9OQU1FfVxuX19fUUZfTkFNRV9fX1xuIgotK1FGX0FMTD0iJFFGX0FMTFxuX19fUUZfVEFHU19fX1xuJHtRRl9UQUdTfVxuX19fUUZfVEFHU19fX1xuIgotK1FGX0FMTD0iJFFGX0FMTFxuX19fUUZfVkVSX1JFTF9fX1xuJHtRRl9WRVJfUkVMfVxuX19fUUZfVkVSX1JFTF9fX1xuIgotK1FGX0FMTD0iJFFGX0FMTFxuX19fUUZfTkFNRV9WRVJfUkVMX19fXG4ke1FGX05BTUVfVkVSX1JFTH1cbl9fX1FGX05BTUVfVkVSX1JFTF9fX1xuIgotK1FGX0FMTD0iJFFGX0FMTFxuX19fUUZfUFJPVklERVNfX19cbiR7UUZfUFJPVklERVN9XG5fX19RRl9QUk9WSURFU19fX1xuIgotK1FGX0FMTD0iJFFGX0FMTFxuX19fUUZfU0NSSVBUX19fXG4ke1FGX1NDUklQVH1cbl9fX1FGX1NDUklQVF9fX1xuIgotK1FGX0FMTD0iJFFGX0FMTFxuX19fUUZfRklMRUxJU1RfX19cbiR7UUZfRklMRUxJU1R9XG5fX19RRl9GSUxFTElTVF9fX1xuIgotK1FGX0FMTD0iJFFGX0FMTFxuX19fUUZfQ0hFQ0tTVU1fX19cbiR7UUZfQ0hFQ0tTVU19XG5fX19RRl9DSEVDS1NVTV9fX1xuIgotKwotK2NoZWNrX2hlYWRlcigpCi0gewotLSAgICRSUE0gLS1xZiAiJFFGIiAiJDEiCi0rICAgJFJQTSAtLXFmICIkMSIgIiQyIgotIH0KLSAKLSAjIFRyaW0gdmVyc2lvbi1yZWxlYXNlIHN0cmluZzoKLUBAIC00NywxOCArMTAxLDYgQEAgZnVuY3Rpb24gZ3JlcF9yZWxlYXNlX25ldygpCi0gICBncmVwIC1FICIoL2Jvb3R8L2xpYi9tb2R1bGVzfC9saWIvZmlybXdhcmV8L3Vzci9zcmMpL1teL10rKCR7dmVyc2lvbl9yZWxlYXNlX25ld19yZWdleF9sfShcJHxbXi9dK1wkKXwke3ZlcnNpb25fcmVsZWFzZV9uZXdfcmVnZXhfc30oXCR8W14vXStcJCkpIgotIH0KLSAKLS1mdW5jdGlvbiBjaGVja19wcm92aWRlcygpCi0tewotLSAgbG9jYWwgcGtnPSQxCi0tICAjIHByb3ZpZGVzIGRlc3Ryb3kgdGhpcyBiZWNhdXNlIGF0IGxlYXN0IHRoZSBzZWxmLXByb3ZpZGUgaW5jbHVkZXMgdGhlCi0tICAjIC1idWlsZG51bWJlciA6LSgKLS0gIFFGPSJbJXtQUk9WSURFTkFNRX0gJXtQUk9WSURFRkxBR1N9ICV7UFJPVklERVZFUlNJT059XFxuXVxcbiIKLS0gIFFGPSIkUUYgWyV7UkVRVUlSRU5BTUV9ICV7UkVRVUlSRUZMQUdTfSAle1JFUVVJUkVWRVJTSU9OfVxcbl1cXG4iCi0tICBRRj0iJFFGIFsle0NPTkZMSUNUTkFNRX0gJXtDT05GTElDVEZMQUdTfSAle0NPTkZMSUNUVkVSU0lPTn1cXG5dXFxuIgotLSAgUUY9IiRRRiBbJXtPQlNPTEVURU5BTUV9ICV7T0JTT0xFVEVGTEFHU30gJXtPQlNPTEVURVZFUlNJT059XFxuXVxcbiIKLS0gIGNoZWNrX2hlYWRlciAiJHBrZyIKLS19Ci0tCi0gI3VzYWdlIHVucGFja2FnZSA8ZmlsZT4gJGRpcgotICMgVW5wYWNrIGZpbGVzIGluIGRpcmVjdG9yeSAkZGlyCi0gIyBsaWtlIC91c3IvYmluL3VucGFja2FnZSAtIGp1c3QgZm9yIG9uZSBmaWxlIGFuZCB3aXRoIG5vIG9wdGlvbnMKLUBAIC05OCw2ICsxNDAsMzAgQEAgZnVuY3Rpb24gdW5wYWNrYWdlKCkKLSAgICAgcG9wZCAxPi9kZXYvbnVsbAotIH0KLSAKLSsjIFJ1biBkaWZmIGNvbW1hbmQgb24gdGhlIGZpbGVzCi0rIyAkMTogcHJpbnRlZCBpbmZvCi0rIyAkMjogZmlsZTEKLSsjICQzOiBmaWxlMgotK2Z1bmN0aW9uIGNvbXBfZmlsZSgpCi0rewotKyAgICBlY2hvICJjb21wYXJpbmcgJDEiCi0rICAgIGlmICEgZGlmZiAtYXUgJDIgJDM7IHRoZW4KLSsgICAgICBpZiB0ZXN0IC16ICIkY2hlY2tfYWxsIjsgdGhlbgotKyAgICAgICAgcm0gJDIgJDMgJHNwZWNfb2xkICRzcGVjX25ldwotKyAgICAgICAgcmV0dXJuIDEKLSsgICAgICBmaQotKyAgICBmaQotKyAgICByZXR1cm4gMAotK30KLSsKLSsjIEdldCB2YXIncyB2YWx1ZSBmcm9tIHNwZWNmaWxlLgotKyMgJDE6IHZhciBuYW1lCi0rIyAkMjogc3BlY2ZpbGUKLStmdW5jdGlvbiBnZXRfdmFsdWUoKQotK3sKLSsgICAgc2VkIC1uIC1lICIvXl9fXyR7MX1fX18vLC9eX19fJHsxfV9fXy9wIiAkMiB8IHNlZCAtZSAiL15fX18kezF9X19fL2QiCi0rfQotKwotICMgQ29tcGFyZSBqdXN0IHRoZSBycG0gbWV0YSBkYXRhIG9mIHR3byBycG1zCi0gIyBSZXR1cm5zOgotICMgMCBpbiBjYXNlIG9mIHNhbWUgY29udGVudAotQEAgLTEwNyw1NiArMTczLDI5IEBAIGZ1bmN0aW9uIHVucGFja2FnZSgpCi0gZnVuY3Rpb24gY21wX3NwZWMgKCkKLSB7Ci0gICAgIGxvY2FsIFJFUwotLSAgICBsb2NhbCBmaWxlMSBmaWxlMgotKyAgICBsb2NhbCBmaWxlX29sZCBmaWxlX25ldwotICAgICBsb2NhbCBmCi0gICAgIGxvY2FsIHNoPSQxCi0gICAgIGxvY2FsIG9sZHJwbT0kMgotICAgICBsb2NhbCBuZXdycG09JDMKLSAKLS0gICAgUUY9IiV7TkFNRX0iCi0tICAgIAotLSAgICAjIGRvbid0IGxvb2sgYXQgUkVMRUFTRSwgaXQgY29udGFpbnMgb3VyIGJ1aWxkIG51bWJlcgotLSAgICBRRj0iJFFGICV7VkVSU0lPTn0gJXtFUE9DSH1cXG4iCi0tICAgIFFGPSIkUUYgJXtTVU1NQVJZfVxcbiV7REVTQ1JJUFRJT059XFxuIgotLSAgICBRRj0iJFFGICV7VkVORE9SfSAle0RJU1RSSUJVVElPTn0gJXtESVNUVVJMfSIKLS0gICAgUUY9IiRRRiAle0xJQ0VOU0V9ICV7TElDRU5TRX1cXG4iCi0tICAgIFFGPSIkUUYgJXtHUk9VUH0gJXtVUkx9ICV7RVhDTFVERUFSQ0h9ICV7RVhDTFVERU9TfSAle0VYQ0xVU0lWRUFSQ0h9XFxuIgotLSAgICBRRj0iJFFGICV7RVhDTFVTSVZFT1N9ICV7UlBNVkVSU0lPTn0gJXtQTEFURk9STX1cXG4iCi0tICAgIFFGPSIkUUYgJXtQQVlMT0FERk9STUFUfSAle1BBWUxPQURDT01QUkVTU09SfSAle1BBWUxPQURGTEFHU31cXG4iCi0tICAgIAotLSAKLS0gICAgIyBYWFggV2UgYWxzbyBuZWVkIHRvIGNoZWNrIHRoZSBleGlzdGVuY2UgKGJ1dCBub3QgdGhlIGNvbnRlbnQgKCEpKQotLSAgICAjIG9mIFNJR0dQRyAoYW5kIHBlcmhhcHMgdGhlIG90aGVyIFNJRyopCi0tICAgIAotLSAgICAjIFhYWCBXZSBkb24ndCBsb29rIGF0IHRyaWdnZXJzCi0tICAgIAotLSAgICBRRj0iJFFGIFsle1ZFUklGWVNDUklQVFBST0d9ICV7VkVSSUZZU0NSSVBUfV1cXG4iCi0tICAgIAotLSAgICAjIE9ubHkgdGhlIGZpcnN0IENoYW5nZUxvZyBlbnRyeTsgc2hvdWxkIGJlIGVub3VnaAotLSAgICBRRj0iJFFGICV7Q0hBTkdFTE9HVElNRX0gJXtDSEFOR0VMT0dOQU1FfSAle0NIQU5HRUxPR1RFWFR9XFxuIgotLSAgICAKLS0gICAgZmlsZTE9YG1rdGVtcGAKLS0gICAgZmlsZTI9YG1rdGVtcGAKLS0gICAgCi0tICAgIGNoZWNrX2hlYWRlciAkb2xkcnBtID4gJGZpbGUxCi0tICAgIGNoZWNrX2hlYWRlciAkbmV3cnBtID4gJGZpbGUyCi0tICAgIAotLSAgICAjIHRoZSBESVNUVVJMIHRhZyBjYW4gYmUgdXNlZCBhcyBjaGVja2luIElECi0tICAgICNlY2hvICIkUUYiCi0tICAgIGVjaG8gImNvbXBhcmluZyBycG10YWdzIgotLSAgICBpZiAhIGRpZmYgLWF1ICRmaWxlMSAkZmlsZTI7IHRoZW4KLS0gICAgICBpZiB0ZXN0IC16ICIkY2hlY2tfYWxsIjsgdGhlbgotLSAgICAgICAgcm0gJGZpbGUxICRmaWxlMgotLSAgICAgICAgcmV0dXJuIDEKLS0gICAgICBmaQotLSAgICBmaQotLSAgICAKLSsgICAgZmlsZV9vbGQ9YG1rdGVtcGAKLSsgICAgZmlsZV9uZXc9YG1rdGVtcGAKLSsgICAgc3BlY19vbGQ9YG1rdGVtcGAKLSsgICAgc3BlY19uZXc9YG1rdGVtcGAKLSsKLSsgICAgY2hlY2tfaGVhZGVyICIkUUZfQUxMIiAkb2xkcnBtID4gJHNwZWNfb2xkCi0rICAgIGNoZWNrX2hlYWRlciAiJFFGX0FMTCIgJG5ld3JwbSA+ICRzcGVjX25ldwotKwotKyAgICBuYW1lX25ldz0iJChnZXRfdmFsdWUgUUZfTkFNRSAkc3BlY19uZXcpIgotKyAgICB2ZXJzaW9uX3JlbGVhc2VfbmV3PSIkKGdldF92YWx1ZSBRRl9WRVJfUkVMICRzcGVjX25ldykiCi0rICAgIG5hbWVfdmVyX3JlbF9uZXc9IiQoZ2V0X3ZhbHVlIFFGX05BTUVfVkVSX1JFTCAkc3BlY19uZXcpIgotKwotKyAgICB2ZXJzaW9uX3JlbGVhc2Vfb2xkPSIkKGdldF92YWx1ZSBRRl9WRVJfUkVMICRzcGVjX29sZCkiCi0rICAgIG5hbWVfdmVyX3JlbF9vbGQ9IiQoZ2V0X3ZhbHVlIFFGX05BTUVfVkVSX1JFTCAkc3BlY19vbGQpIgotKwotICAgICAjIFJlbWVtYmVyIHRvIHF1b3RlIHRoZSAuIHdoaWNoIGlzIGluIHJlbGVhc2UKLS0gICAgdmVyc2lvbl9yZWxlYXNlX29sZD0kKCRSUE0gLS1xZiAiJXtWRVJTSU9OfS0le1JFTEVBU0V9IiAiJG9sZHJwbSIpCi0tICAgIHZlcnNpb25fcmVsZWFzZV9uZXc9JCgkUlBNIC0tcWYgIiV7VkVSU0lPTn0tJXtSRUxFQVNFfSIgIiRuZXdycG0iKQotLSAgICBuYW1lX3Zlcl9yZWxfb2xkPSQoJFJQTSAtLXFmICIle05BTUV9LSV7VkVSU0lPTn0tJXtSRUxFQVNFfSIgIiRvbGRycG0iKQotLSAgICBuYW1lX3Zlcl9yZWxfbmV3PSQoJFJQTSAtLXFmICIle05BTUV9LSV7VkVSU0lPTn0tJXtSRUxFQVNFfSIgIiRuZXdycG0iKQotLSAgICAjIFNob3J0IHZlcnNpb24gd2l0aG91dCBCX0NOVAotKyAgICAjIFNob3J0IHZlcnNpb24gd2l0aG91dCBCX0NOCi0gICAgIHZlcnNpb25fcmVsZWFzZV9vbGRfcmVnZXhfcz0ke3ZlcnNpb25fcmVsZWFzZV9vbGQlLip9Ci0gICAgIHZlcnNpb25fcmVsZWFzZV9vbGRfcmVnZXhfcz0ke3ZlcnNpb25fcmVsZWFzZV9vbGRfcmVnZXhfcy8vLi9cXC59Ci0gICAgIHZlcnNpb25fcmVsZWFzZV9uZXdfcmVnZXhfcz0ke3ZlcnNpb25fcmVsZWFzZV9uZXclLip9Ci1AQCAtMTY2LDEwICsyMDUsMjcgQEAgZnVuY3Rpb24gY21wX3NwZWMgKCkKLSAgICAgdmVyc2lvbl9yZWxlYXNlX25ld19yZWdleF9sPSR7dmVyc2lvbl9yZWxlYXNlX25ldy8vLi9cXC59Ci0gICAgIG5hbWVfdmVyX3JlbF9vbGRfcmVnZXhfbD0ke25hbWVfdmVyX3JlbF9vbGQvLy4vXFwufQotICAgICBuYW1lX3Zlcl9yZWxfbmV3X3JlZ2V4X2w9JHtuYW1lX3Zlcl9yZWxfbmV3Ly8uL1xcLn0KLSsKLSsgICAgIyBDaGVjayB0aGUgd2hvbGUgc3BlYyBmaWxlIGF0IGZpcnN0LCByZXR1cm4gMCBpbW1lZGlhdGVseSBpZiB0aGUKLSsgICAgIyBhcmUgdGhlIHNhbWUuCi0rICAgIGNhdCAkc3BlY19vbGQgfCB0cmltX3JlbGVhc2Vfb2xkID4gJGZpbGVfb2xkCi0rICAgIGNhdCAkc3BlY19uZXcgfCB0cmltX3JlbGVhc2VfbmV3ID4gJGZpbGVfbmV3Ci0rICAgIGVjaG8gImNvbXBhcmluZyB0aGUgd2hvbGUgc3BlY2ZpbGUiCi0rICAgIGlmIGRpZmYgLWF1ICRzcGVjX29sZCAkc3BlY19uZXc7IHRoZW4KLSsgICAgICBpZiB0ZXN0IC16ICIkY2hlY2tfYWxsIjsgdGhlbgotKyAgICAgICAgcm0gJGZpbGVfb2xkICRmaWxlX25ldyAkc3BlY19vbGQgJHNwZWNfbmV3Ci0rICAgICAgICByZXR1cm4gMAotKyAgICAgIGZpCi0rICAgIGZpCi0rCi0rICAgIGdldF92YWx1ZSBRRl9UQUdTICRzcGVjX29sZCA+ICRmaWxlX29sZAotKyAgICBnZXRfdmFsdWUgUUZfVEFHUyAkc3BlY19uZXcgPiAkZmlsZV9uZXcKLSsgICAgY29tcF9maWxlIHJwbXRhZ3MgJGZpbGVfb2xkICRmaWxlX25ldyB8fCByZXR1cm4gMQotKwotICAgICAjIFRoaXMgbWlnaHQgaGFwcGVuIHdoZW4/IQotICAgICBlY2hvICJjb21wYXJpbmcgUkVMRUFTRSIKLSAgICAgaWYgWyAiJHt2ZXJzaW9uX3JlbGVhc2Vfb2xkJS4qfSIgIT0gIiR7dmVyc2lvbl9yZWxlYXNlX25ldyUuKn0iIF0gOyB0aGVuCi0tICAgICAgY2FzZSAkKCRSUE0gLS1xZiAnJXtOQU1FfScgIiRuZXdycG0iKSBpbgotKyAgICAgIGNhc2UgJG5hbWVfbmV3IGluCi0gICAgICAgICBrZXJuZWwtKikKLSAgICAgICAgICAgIyBNYWtlIHN1cmUgYWxsIGtlcm5lbCBwYWNrYWdlcyBoYXZlIHRoZSBzYW1lICVSRUxFQVNFCi0gICAgICAgICAgIGVjaG8gInJlbGVhc2UgcHJlZml4IG1pc21hdGNoIgotQEAgLTE4MSw3MSArMjM3LDM0IEBAIGZ1bmN0aW9uIGNtcF9zcGVjICgpCi0gICAgICAgICAqKSA7OwotICAgICAgIGVzYWMKLSAgICAgZmkKLS0gICAgCi0tICAgIGNoZWNrX3Byb3ZpZGVzICRvbGRycG0gfCB0cmltX3JlbGVhc2Vfb2xkIHwgc29ydCA+ICRmaWxlMQotLSAgICBjaGVja19wcm92aWRlcyAkbmV3cnBtIHwgdHJpbV9yZWxlYXNlX25ldyB8IHNvcnQgPiAkZmlsZTIKLS0gICAgCi0tICAgIGVjaG8gImNvbXBhcmluZyBQUk9WSURFUyIKLS0gICAgaWYgISBkaWZmIC1hdSAkZmlsZTEgJGZpbGUyOyB0aGVuCi0tICAgICAgaWYgdGVzdCAteiAiJGNoZWNrX2FsbCI7IHRoZW4KLS0gICAgICAgIHJtICRmaWxlMSAkZmlsZTIKLS0gICAgICAgIHJldHVybiAxCi0tICAgICAgZmkKLS0gICAgZmkKLSAKLS0gICAgIyBzY3JpcHRzLCBtaWdodCBjb250YWluIHJlbGVhc2UgbnVtYmVyCi0tICAgIFFGPSJbJXtQUkVJTlBST0d9ICV7UFJFSU59XFxuXVxcblsle1BPU1RJTlBST0d9ICV7UE9TVElOfVxcbl1cXG5bJXtQUkVVTlBST0d9ICV7UFJFVU59XFxuXVxcblsle1BPU1RVTlBST0d9ICV7UE9TVFVOfVxcbl1cXG4iCi0tICAgIGNoZWNrX2hlYWRlciAkb2xkcnBtIHwgdHJpbV9yZWxlYXNlX29sZCA+ICRmaWxlMQotLSAgICBjaGVja19oZWFkZXIgJG5ld3JwbSB8IHRyaW1fcmVsZWFzZV9uZXcgPiAkZmlsZTIKLSsgICAgZ2V0X3ZhbHVlIFFGX1BST1ZJREVTICRzcGVjX29sZCB8IHRyaW1fcmVsZWFzZV9vbGQgfCBzb3J0ID4gJGZpbGVfb2xkCi0rICAgIGdldF92YWx1ZSBRRl9QUk9WSURFUyAkc3BlY19uZXcgfCB0cmltX3JlbGVhc2VfbmV3IHwgc29ydCA+ICRmaWxlX25ldwotKyAgICBjb21wX2ZpbGUgUFJPVklERVMgJGZpbGVfb2xkICRmaWxlX25ldyB8fCByZXR1cm4gMQotKwotKyAgICBnZXRfdmFsdWUgUUZfU0NSSVBUICRzcGVjX29sZCB8IHRyaW1fcmVsZWFzZV9vbGQgPiAkZmlsZV9vbGQKLSsgICAgZ2V0X3ZhbHVlIFFGX1NDUklQVCAkc3BlY19uZXcgfCB0cmltX3JlbGVhc2VfbmV3ID4gJGZpbGVfbmV3Ci0rICAgIGNvbXBfZmlsZSBzY3JpcHRzICRmaWxlX29sZCAkZmlsZV9uZXcgfHwgcmV0dXJuIDEKLSAKLS0gICAgZWNobyAiY29tcGFyaW5nIHNjcmlwdHMiCi0tICAgIGlmICEgZGlmZiAtYXUgJGZpbGUxICRmaWxlMjsgdGhlbgotLSAgICAgIGlmIHRlc3QgLXogIiRjaGVja19hbGwiOyB0aGVuCi0tICAgICAgICBybSAkZmlsZTEgJGZpbGUyCi0tICAgICAgICByZXR1cm4gMQotLSAgICAgIGZpCi0tICAgIGZpCi0tICAgIAotICAgICAjIEZpcnN0IGNoZWNrIHRoZSBmaWxlIGF0dHJpYnV0ZXMgYW5kIGxhdGVyIHRoZSBtZDVzCi0tICAgIAotLSAgICAjIE5vdyB0aGUgZmlsZXMuICBXZSBsZWF2ZSBvdXQgbXRpbWUgYW5kIHNpemUuICBGb3Igbm9ybWFsIGZpbGVzCi0tICAgICMgdGhlIHNpemUgd2lsbCBpbmZsdWVuY2UgdGhlIE1ENSBhbnl3YXkuICBGb3IgZGlyZWN0b3JpZXMgdGhlIHNpemVzIGNhbgotLSAgICAjIGRpZmZlciwgZGVwZW5kaW5nIG9uIHdoaWNoIGZpbGUgc3lzdGVtIHRoZSBwYWNrYWdlIHdhcyBidWlsdC4gIFRvIG5vdAotLSAgICAjIGhhdmUgdG8gZmlsdGVyIG91dCBkaXJlY3RvcmllcyB3ZSBzaW1wbHkgaWdub3JlIGFsbCBzaXplcy4KLS0gICAgIyBBbHNvIGxlYXZlIG91dCBGSUxFREVWSUNFUywgRklMRUlOT0RFUyAoZGVwZW5kcyBvbiB0aGUgYnVpbGQgaG9zdCksCi0tICAgICMgRklMRUNPTE9SUywgRklMRUNMQVNTIChub3JtYWxseSB1c2VmdWwgYnV0IGZpbGUgb3V0cHV0IGNvbnRhaW5zIG10aW1lcyksIAotLSAgICAjIEZJTEVERVBFTkRTWCBhbmQgRklMRURFUEVORFNOLiAKLS0gICAgIyBBbHNvIEZJTEVMQU5HUyAob3I/KQotLSAgICBRRj0iWyV7RklMRU5BTUVTfSAle0ZJTEVGTEFHU30gJXtGSUxFU1RBVEVTfSAle0ZJTEVNT0RFUzpvY3RhbH0gJXtGSUxFVVNFUk5BTUV9ICV7RklMRUdST1VQTkFNRX0gJXtGSUxFUkRFVlN9ICV7RklMRVZFUklGWUZMQUdTfSAle0ZJTEVMSU5LVE9TfVxuXVxcbiIKLS0gICAgIyA/Pz8gd2hhdCB0byBkbyB3aXRoIEZJTEVQUk9WSURFIGFuZCBGSUxFUkVRVUlSRT8KLS0KLS0gICAgY2hlY2tfaGVhZGVyICRvbGRycG0gfCB0cmltX3JlbGVhc2Vfb2xkID4gJGZpbGUxCi0tICAgIGNoZWNrX2hlYWRlciAkbmV3cnBtIHwgdHJpbV9yZWxlYXNlX25ldyA+ICRmaWxlMgotLSAgICAKLS0gICAgZWNobyAiY29tcGFyaW5nIGZpbGVsaXN0IgotLSAgICBpZiAhIGRpZmYgLWF1ICRmaWxlMSAkZmlsZTI7IHRoZW4KLS0gICAgICBpZiB0ZXN0IC16ICIkY2hlY2tfYWxsIjsgdGhlbgotLSAgICAgICAgcm0gJGZpbGUxICRmaWxlMgotLSAgICAgICAgcmV0dXJuIDEKLS0gICAgICBmaQotLSAgICBmaQotLSAgICAKLSsgICAgZ2V0X3ZhbHVlIFFGX0ZJTEVMSVNUICRzcGVjX29sZCB8IHRyaW1fcmVsZWFzZV9vbGQgPiAkZmlsZV9vbGQKLSsgICAgZ2V0X3ZhbHVlIFFGX0ZJTEVMSVNUICRzcGVjX25ldyB8IHRyaW1fcmVsZWFzZV9uZXcgPiAkZmlsZV9uZXcKLSsgICAgY29tcF9maWxlIGZpbGVsaXN0ICRmaWxlX29sZCAkZmlsZV9uZXcgfHwgcmV0dXJuIDEKLSsKLSAgICAgIyBub3cgdGhlIG1kNXN1bXMuIGlmIHRoZXkgYXJlIGRpZmZlcmVudCwgd2UgY2hlY2sgbW9yZSBkZXRhaWxlZAotICAgICAjIGlmIHRoZXJlIGFyZSBkaWZmZXJlbnQgZmlsZW5hbWVzLCB3ZSB3aWxsIGFscmVhZHkgaGF2ZSBhYm9ydGVkIGJlZm9yZQotICAgICAjIGZpbGUgZmxhZyA2NCBtZWFucyAiZ2hvc3QiLCBmaWx0ZXIgdGhvc2Ugb3V0LgotLSAgICBRRj0iWyV7RklMRU5BTUVTfSAle0ZJTEVNRDVTfSAle0ZJTEVGTEFHU31cbl1cXG4iCi0tICAgIGNoZWNrX2hlYWRlciAkb2xkcnBtIHxncmVwIC12ICIgNjQkInwgdHJpbV9yZWxlYXNlX29sZCA+ICRmaWxlMQotLSAgICBjaGVja19oZWFkZXIgJG5ld3JwbSB8Z3JlcCAtdiAiIDY0JCJ8IHRyaW1fcmVsZWFzZV9uZXcgPiAkZmlsZTIKLS0gICAgCi0rICAgIGdldF92YWx1ZSBRRl9DSEVDS1NVTSAkc3BlY19vbGQgfCBncmVwIC12ICIgNjQkIiB8IHRyaW1fcmVsZWFzZV9vbGQgPiAkZmlsZV9vbGQKLSsgICAgZ2V0X3ZhbHVlIFFGX0NIRUNLU1VNICRzcGVjX25ldyB8IGdyZXAgLXYgIiA2NCQiIHwgdHJpbV9yZWxlYXNlX25ldyA+ICRmaWxlX25ldwotICAgICBSRVM9MgotICAgICAjIGRvbmUgaWYgdGhlIHNhbWUKLSAgICAgZWNobyAiY29tcGFyaW5nIGZpbGUgY2hlY2tzdW0iCi0tICAgIGlmIGNtcCAtcyAkZmlsZTEgJGZpbGUyOyB0aGVuCi0rICAgIGlmIGNtcCAtcyAkZmlsZV9vbGQgJGZpbGVfbmV3OyB0aGVuCi0gICAgICAgUkVTPTAKLSAgICAgZmkKLS0gICAgCi0rCi0gICAgICMgR2V0IG9ubHkgZmlsZXMgd2l0aCBkaWZmZXJlbnQgTUQ1c3VtcwotLSAgICBmaWxlcz1gZGlmZiAtVTAgJGZpbGUxICRmaWxlMiB8IGZncmVwIC12ICsrKyB8IGdyZXAgXisgfCBjdXQgLWIyLSB8IGF3ayAne3ByaW50ICQxfSdgCi0rICAgIGZpbGVzPWBkaWZmIC1VMCAkZmlsZV9vbGQgJGZpbGVfbmV3IHwgZmdyZXAgLXYgKysrIHwgZ3JlcCBeKyB8IGN1dCAtYjItIHwgYXdrICd7cHJpbnQgJDF9J2AKLSAKLSAgICAgaWYgdGVzdCAtZiAiJHNoIjsgdGhlbgotICAgICAgIGVjaG8gImNyZWF0aW5nIHJlbmFtZSBzY3JpcHQiCi1AQCAtMjYxLDcgKzI4MCw3IEBAIGZ1bmN0aW9uIGNtcF9zcGVjICgpCi0gICAgICAgZG9uZSA+PiAiJHtzaH0iCi0gICAgIGZpCi0gICAgICMKLS0gICAgcm0gJGZpbGUxICRmaWxlMgotKyAgICBybSAkZmlsZV9vbGQgJGZpbGVfbmV3Ci0gICAgIHJldHVybiAkUkVTCi0gfQotIAotLS0gCi0yLjkuMAotCmRpZmYgLS1naXQgYS9wb2t5L21ldGEvcmVjaXBlcy1kZXZ0b29scy9idWlsZC1jb21wYXJlL2ZpbGVzL3BrZy1kaWZmLnNoLWNoZWNrLWZvci1maWZvLW5hbWVkLXBpcGUucGF0Y2ggYi9wb2t5L21ldGEvcmVjaXBlcy1kZXZ0b29scy9idWlsZC1jb21wYXJlL2ZpbGVzL3BrZy1kaWZmLnNoLWNoZWNrLWZvci1maWZvLW5hbWVkLXBpcGUucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGU0ZjBjNTQuLjAwMDAwMDAKLS0tIGEvcG9reS9tZXRhL3JlY2lwZXMtZGV2dG9vbHMvYnVpbGQtY29tcGFyZS9maWxlcy9wa2ctZGlmZi5zaC1jaGVjay1mb3ItZmlmby1uYW1lZC1waXBlLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMzUgKzAsMCBAQAotRnJvbSBhNzhmZTRmNzkyYTlhYzlmNGQzNjRlODM2Yzg4NTVmNDg1NjFkNmYyIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogUm9iZXJ0IFlhbmcgPGxpZXpoaS55YW5nQHdpbmRyaXZlci5jb20+Ci1EYXRlOiBUaHUsIDE0IEp1bCAyMDE2IDE5OjUyOjE4IC0wNzAwCi1TdWJqZWN0OiBbUEFUQ0ggMy80XSBwa2ctZGlmZi5zaDogY2hlY2sgZm9yIGZpZm8obmFtZWQgcGlwZSkKLQotT3RoZXJ3aXNlICJjbXAgLXMgZmlmbzEgZmlmbzIiIHdpbGwgd2FpdCBmb3IgaW5wdXRpbmcgZm9yZXZlci4KLQotVXBzdHJlYW0tU3RhdHVzOiBTdWJtaXR0ZWQgW2h0dHBzOi8vZ2l0aHViLmNvbS9vcGVuU1VTRS9idWlsZC1jb21wYXJlL3B1bGwvMTBdCi0KLVNpZ25lZC1vZmYtYnk6IFJvYmVydCBZYW5nIDxsaWV6aGkueWFuZ0B3aW5kcml2ZXIuY29tPgotLS0tCi0gcGtnLWRpZmYuc2ggfCA3ICsrKysrKysKLSAxIGZpbGUgY2hhbmdlZCwgNyBpbnNlcnRpb25zKCspCi0KLWRpZmYgLS1naXQgYS9wa2ctZGlmZi5zaCBiL3BrZy1kaWZmLnNoCi1pbmRleCA1ZGQzYTM4Li4xZjM1M2FhIDEwMDY0NAotLS0tIGEvcGtnLWRpZmYuc2gKLSsrKyBiL3BrZy1kaWZmLnNoCi1AQCAtNzM1LDYgKzczNSwxMyBAQCBjaGVja19zaW5nbGVfZmlsZSgpCi0gICAgICAgICAgcmV0dXJuIDEKLSAgICAgICAgZmkKLSAgICAgICAgOzsKLSsgICAgIGZpZm8qcGlwZSopCi0rICAgICAgIGZ0eXBlX25ldz0iYC91c3IvYmluL2ZpbGUgbmV3LyRmaWxlIHwgc2VkIC1lICdzQF5bXjpdXCs6W1s6Ymxhbms6XV0qQEAnIC1lICdzQFtbOmJsYW5rOl1dKiRAQCdgIgotKyAgICAgICBpZiBbICIkZnR5cGVfbmV3IiA9ICIkZnR5cGUiICBdOyB0aGVuCi0rICAgICAgICAgcmV0dXJuIDAKLSsgICAgICAgZmkKLSsgICAgICAgcmV0dXJuIDEKLSsgICAgICAgOzsKLSAgICAgICopCi0gICAgICAgIGlmICEgZGlmZl90d29fZmlsZXM7IHRoZW4KLSAgICAgICAgICAgIHJldHVybiAxCi0tLSAKLTIuOS4wCi0KZGlmZiAtLWdpdCBhL3Bva3kvbWV0YS9yZWNpcGVzLWRldnRvb2xzL2J1aWxkLWNvbXBhcmUvZmlsZXMvcGtnLWRpZmYuc2gtY2hlY2tfc2luZ2xlX2ZpbGUtcmV0dXJuLWF0LW9uY2Utd2hlbi1zYS5wYXRjaCBiL3Bva3kvbWV0YS9yZWNpcGVzLWRldnRvb2xzL2J1aWxkLWNvbXBhcmUvZmlsZXMvcGtnLWRpZmYuc2gtY2hlY2tfc2luZ2xlX2ZpbGUtcmV0dXJuLWF0LW9uY2Utd2hlbi1zYS5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYjQyYWYyNS4uMDAwMDAwMAotLS0gYS9wb2t5L21ldGEvcmVjaXBlcy1kZXZ0b29scy9idWlsZC1jb21wYXJlL2ZpbGVzL3BrZy1kaWZmLnNoLWNoZWNrX3NpbmdsZV9maWxlLXJldHVybi1hdC1vbmNlLXdoZW4tc2EucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwzNyArMCwwIEBACi1Gcm9tIDY1Nzk4M2VmOWNhOGY4MzU0MTcyNjgyZTE3NDA4YzRmNmI1YmM2NjcgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBSb2JlcnQgWWFuZyA8bGllemhpLnlhbmdAd2luZHJpdmVyLmNvbT4KLURhdGU6IFRodSwgMTQgSnVsIDIwMTYgMTk6NDY6MDggLTA3MDAKLVN1YmplY3Q6IFtQQVRDSCAxLzRdIHBrZy1kaWZmLnNoOiBjaGVja19zaW5nbGVfZmlsZSgpOiByZXR1cm4gYXQgb25jZSB3aGVuCi0gc2FtZQotCi1JZiB0aGUgdHdvIGZpbGVzIGFyZSB0aGUgc2FtZSwgcmV0dXJuIGF0IG9uY2UsIHRoaXMgY2FuIHNhdmUgYSBsb3Qgb2YKLXRpbWUgd2hlbiB0aGVyZSBhcmUgYXJjaGl2ZXMgaW5zaWRlIGFyY2hpdmVzLgotCi1VcHN0cmVhbS1TdGF0dXM6IFN1Ym1pdHRlZCBbaHR0cHM6Ly9naXRodWIuY29tL29wZW5TVVNFL2J1aWxkLWNvbXBhcmUvcHVsbC8xMF0KLQotU2lnbmVkLW9mZi1ieTogUm9iZXJ0IFlhbmcgPGxpZXpoaS55YW5nQHdpbmRyaXZlci5jb20+Ci0tLS0KLSBwa2ctZGlmZi5zaCB8IDcgKysrKysrKwotIDEgZmlsZSBjaGFuZ2VkLCA3IGluc2VydGlvbnMoKykKLQotZGlmZiAtLWdpdCBhL3BrZy1kaWZmLnNoIGIvcGtnLWRpZmYuc2gKLWluZGV4IDNjZjEwYWEuLjQwMmQ0YTQgMTAwNjQ0Ci0tLS0gYS9wa2ctZGlmZi5zaAotKysrIGIvcGtnLWRpZmYuc2gKLUBAIC0yOTMsNiArMjkzLDEzIEBAIGNoZWNrX2NvbXByZXNzZWRfZmlsZSgpCi0gY2hlY2tfc2luZ2xlX2ZpbGUoKQotIHsKLSAgIGxvY2FsIGZpbGU9IiQxIgotKwotKyAgIyBJZiB0aGUgdHdvIGZpbGVzIGFyZSB0aGUgc2FtZSwgcmV0dXJuIGF0IG9uY2UuCi0rICBpZiBbIC1mIG9sZC8kZmlsZSAtYSAtZiBuZXcvJGZpbGUgXTsgdGhlbgotKyAgICBpZiBjbXAgLXMgb2xkLyRmaWxlIG5ldy8kZmlsZTsgdGhlbgotKyAgICAgIHJldHVybiAwCi0rICAgIGZpCi0rICBmaQotICAgY2FzZSAkZmlsZSBpbgotICAgICAqLnNwZWMpCi0gICAgICAgIHNlZCAtaSAtZSAicyxSZWxlYXNlOi4qJHJlbGVhc2UxLFJlbGVhc2U6IEBSRUxFQVNFQCwiIG9sZC8kZmlsZQotLS0gCi0yLjkuMAotCmRpZmYgLS1naXQgYS9wb2t5L21ldGEvcmVjaXBlcy1kZXZ0b29scy9idWlsZC1jb21wYXJlL2ZpbGVzL3BrZy1kaWZmLnNoLXJlbW92ZS1zcGFjZS1pbi10aGUtZW5kLWZvci1mdHlwZS5wYXRjaCBiL3Bva3kvbWV0YS9yZWNpcGVzLWRldnRvb2xzL2J1aWxkLWNvbXBhcmUvZmlsZXMvcGtnLWRpZmYuc2gtcmVtb3ZlLXNwYWNlLWluLXRoZS1lbmQtZm9yLWZ0eXBlLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4MDc3MTcyLi4wMDAwMDAwCi0tLSBhL3Bva3kvbWV0YS9yZWNpcGVzLWRldnRvb2xzL2J1aWxkLWNvbXBhcmUvZmlsZXMvcGtnLWRpZmYuc2gtcmVtb3ZlLXNwYWNlLWluLXRoZS1lbmQtZm9yLWZ0eXBlLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMzIgKzAsMCBAQAotRnJvbSA4MzZhNjc4M2RmOWM1ODJhODM0ZmNhMjM5ZjIyNzA2M2E1Njg3NzE1IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogUm9iZXJ0IFlhbmcgPGxpZXpoaS55YW5nQHdpbmRyaXZlci5jb20+Ci1EYXRlOiBUaHUsIDE0IEp1bCAyMDE2IDE5OjQ5OjEyIC0wNzAwCi1TdWJqZWN0OiBbUEFUQ0ggMi80XSBwa2ctZGlmZi5zaDogcmVtb3ZlIHNwYWNlIGluIHRoZSBlbmQgZm9yIGZ0eXBlCi0KLVZlcnNpb25zIG9mIGZpbGUgbGlrZSA1LjE0IHJldHVybnMgYSAiICIgaW4gdGhlIGVuZCwgZm9yIGV4YW1wbGU6Ci1mdHlwZT0iZGlyZWN0b3J5ICIsIGJ1dCB3ZSBuZWVkIGZ0eXBlPSJkaXJlY3RvcnkiLCByZW1vdmUgdGhlIHNwYWNlIHRvCi1maXggdGhlIHByb2JsZW0uCi0KLVVwc3RyZWFtLVN0YXR1czogU3VibWl0dGVkIFtodHRwczovL2dpdGh1Yi5jb20vb3BlblNVU0UvYnVpbGQtY29tcGFyZS9wdWxsLzEwXQotCi1TaWduZWQtb2ZmLWJ5OiBSb2JlcnQgWWFuZyA8bGllemhpLnlhbmdAd2luZHJpdmVyLmNvbT4KLS0tLQotIHBrZy1kaWZmLnNoIHwgMiArLQotIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMSBkZWxldGlvbigtKQotCi1kaWZmIC0tZ2l0IGEvcGtnLWRpZmYuc2ggYi9wa2ctZGlmZi5zaAotaW5kZXggNDAyZDRhNC4uNWRkM2EzOCAxMDA2NDQKLS0tLSBhL3BrZy1kaWZmLnNoCi0rKysgYi9wa2ctZGlmZi5zaAotQEAgLTYzMyw3ICs2MzMsNyBAQCBjaGVja19zaW5nbGVfZmlsZSgpCi0gICAgICAgOzsKLSAgIGVzYWMKLSAKLS0gIGZ0eXBlPWAvdXNyL2Jpbi9maWxlIG9sZC8kZmlsZSB8IHNlZCAnc0BeW146XVwrOltbOmJsYW5rOl1dKkBAJ2AKLSsgIGZ0eXBlPWAvdXNyL2Jpbi9maWxlIG9sZC8kZmlsZSB8IHNlZCAtZSAnc0BeW146XVwrOltbOmJsYW5rOl1dKkBAJyAtZSAnc0BbWzpibGFuazpdXSokQEAnYAotICAgY2FzZSAkZnR5cGUgaW4KLSAgICAgIFBFMzJcIGV4ZWN1dGFibGUqTW9ub1wvXC5OZXRcIGFzc2VtYmx5KikKLSAgICAgICAgZWNobyAiUEUzMiBNb25vLy5OZXQgYXNzZW1ibHk6ICRmaWxlIgotLS0gCi0yLjkuMAotCmRpZmYgLS1naXQgYS9wb2t5L21ldGEvcmVjaXBlcy1kZXZ0b29scy9jY2FjaGUvY2NhY2hlXzMuNy4xLmJiIGIvcG9reS9tZXRhL3JlY2lwZXMtZGV2dG9vbHMvY2NhY2hlL2NjYWNoZV8zLjcuMS5iYgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMWRiNzA5NC4uMDAwMDAwMAotLS0gYS9wb2t5L21ldGEvcmVjaXBlcy1kZXZ0b29scy9jY2FjaGUvY2NhY2hlXzMuNy4xLmJiCisrKyAvZGV2L251bGwKQEAgLTEsNyArMCwwIEBACi1yZXF1aXJlIGNjYWNoZS5pbmMKLQotTElDRU5TRSA9ICJHUEx2MysiCi1MSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9MSUNFTlNFLmFkb2M7bWQ1PTAwOTRjNTkwMzljZWM2NmI4YTRjOTA1MjA0MzMzNTE0IgotCi1TUkNfVVJJW21kNXN1bV0gPSAiNzQzMzk0NjVhYjg3ZTBiNDA2OTg1ZWQ2OTUxNWYxOWIiCi1TUkNfVVJJW3NoYTI1NnN1bV0gPSAiZTU2MmZjZGJlNzY2NDA2YjZmZTRiZjk3Y2U1YzAwMWQyYmU4YTE3NDY1ZjMzYmNkZGVmYzk0OTliYmIwNTdkOCIKZGlmZiAtLWdpdCBhL3Bva3kvbWV0YS9yZWNpcGVzLWRldnRvb2xzL2NjYWNoZS9jY2FjaGVfMy43LjMuYmIgYi9wb2t5L21ldGEvcmVjaXBlcy1kZXZ0b29scy9jY2FjaGUvY2NhY2hlXzMuNy4zLmJiCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmM2YTY4MmUKLS0tIC9kZXYvbnVsbAorKysgYi9wb2t5L21ldGEvcmVjaXBlcy1kZXZ0b29scy9jY2FjaGUvY2NhY2hlXzMuNy4zLmJiCkBAIC0wLDAgKzEsNyBAQAorcmVxdWlyZSBjY2FjaGUuaW5jCisKK0xJQ0VOU0UgPSAiR1BMdjMrIgorTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vTElDRU5TRS5hZG9jO21kNT0wMDk0YzU5MDM5Y2VjNjZiOGE0YzkwNTIwNDMzMzUxNCIKKworU1JDX1VSSVttZDVzdW1dID0gIjdiZTYyZWE2ZTE5MDk0MWE4YzEyYTNkNTM5NGZkOTI2IgorU1JDX1VSSVtzaGEyNTZzdW1dID0gIjM1NTk1NWE2MTU2MmM1M2M0ZWM0NjY5ZTFjOTI3MDhiMDAwOGY1MGQyMTRiMjdmMDdhODdjZjRhMWZhNmIwMWUiCmRpZmYgLS1naXQgYS9wb2t5L21ldGEvcmVjaXBlcy1kZXZ0b29scy9kZWphZ251L2RlamFnbnVfMS42LjIuYmIgYi9wb2t5L21ldGEvcmVjaXBlcy1kZXZ0b29scy9kZWphZ251L2RlamFnbnVfMS42LjIuYmIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uN2RjNGU0MQotLS0gL2Rldi9udWxsCisrKyBiL3Bva3kvbWV0YS9yZWNpcGVzLWRldnRvb2xzL2RlamFnbnUvZGVqYWdudV8xLjYuMi5iYgpAQCAtMCwwICsxLDE1IEBACitTVU1NQVJZID0gIkdOVSB1bml0IHRlc3RpbmcgZnJhbWV3b3JrLCB3cml0dGVuIGluIEV4cGVjdCBhbmQgVGNsIgorTElDRU5TRSA9ICJHUEx2MiIKK0xJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0NPUFlJTkc7bWQ1PWQzMjIzOWJjYjY3MzQ2M2FiODc0ZTgwZDQ3ZmFlNTA0IgorU0VDVElPTiA9ICJkZXZlbCIKKworREVQRU5EUyArPSAiZXhwZWN0LW5hdGl2ZSIKKworaW5oZXJpdCBhdXRvdG9vbHMKKworU1JDX1VSSSA9ICIke0dOVV9NSVJST1J9LyR7QlBOfS8ke0JQfS50YXIuZ3oiCisKK1NSQ19VUklbbWQ1c3VtXSA9ICJlMWIwNzUxNjUzM2YzNTFiM2FiYTM0MjNmYWZlZmZkNiIKK1NSQ19VUklbc2hhMjU2c3VtXSA9ICIwZDA2NzFlMWI0NTE4OWM1ZmM4YWRlNGIzYjAxNjM1ZmI5ZWVhYjQ1Y2Y1NGY1N2RiMjNlNGM0YzFhMTdkMjYxIgorCitCQkNMQVNTRVhURU5EID0gIm5hdGl2ZSIKZGlmZiAtLWdpdCBhL3Bva3kvbWV0YS9yZWNpcGVzLWRldnRvb2xzL2djYy9nY2MtOC4zLmluYyBiL3Bva3kvbWV0YS9yZWNpcGVzLWRldnRvb2xzL2djYy9nY2MtOC4zLmluYwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMTc4MWZmNS4uMDAwMDAwMAotLS0gYS9wb2t5L21ldGEvcmVjaXBlcy1kZXZ0b29scy9nY2MvZ2NjLTguMy5pbmMKKysrIC9kZXYvbnVsbApAQCAtMSwxMTIgKzAsMCBAQAotcmVxdWlyZSBnY2MtY29tbW9uLmluYwotCi0jIFRoaXJkIGRpZ2l0IGluIFBWIHNob3VsZCBiZSBpbmNyZW1lbnRlZCBhZnRlciBhIG1pbm9yIHJlbGVhc2UKLQotUFYgPSAiOC4zLjAiCi0KLSMgQklOViBzaG91bGQgYmUgaW5jcmVtZW50ZWQgdG8gYSByZXZpc2lvbiBhZnRlciBhIG1pbm9yIGdjYyByZWxlYXNlCi0KLUJJTlYgPSAiOC4zLjAiCi0KLUZJTEVTRVhUUkFQQVRIUyA9LiAiJHtGSUxFX0RJUk5BTUV9L2djYy04LjM6IgotCi1ERVBFTkRTID0rICJtcGZyIGdtcCBsaWJtcGMgemxpYiBmbGV4LW5hdGl2ZSIKLU5BVElWRURFUFMgPSAibXBmci1uYXRpdmUgZ21wLW5hdGl2ZSBsaWJtcGMtbmF0aXZlIHpsaWItbmF0aXZlIGZsZXgtbmF0aXZlIgotCi1MSUNFTlNFID0gIkdQTC0zLjAtd2l0aC1HQ0MtZXhjZXB0aW9uICYgR1BMdjMiCi0KLUxJQ19GSUxFU19DSEtTVU0gPSAiXAotICAgIGZpbGU6Ly9DT1BZSU5HO21kNT01OTUzMGJkZjMzNjU5YjI5ZTczZDRhZGI5ZjlmNjU1MiBcCi0gICAgZmlsZTovL0NPUFlJTkczO21kNT1kMzIyMzliY2I2NzM0NjNhYjg3NGU4MGQ0N2ZhZTUwNCBcCi0gICAgZmlsZTovL0NPUFlJTkczLkxJQjttZDU9NmE2YThlMDIwODM4YjIzNDA2YzgxYjE5YzFkNDZkZjYgXAotICAgIGZpbGU6Ly9DT1BZSU5HLkxJQjttZDU9MmQ1MDI1ZDRhYTM0OTViZWZlZjhmMTcyMDZhNWIwYTEgXAotICAgIGZpbGU6Ly9DT1BZSU5HLlJVTlRJTUU7bWQ1PWZlNjBkODcwNDg1NjdkNGZlOGM4YTBlZDI0NDhiY2M4IFwKLSIKLQotI1JFTEVBU0UgPSAiOC4wLjEtUkMtMjAxODA0MjciCi1CQVNFVVJJID89ICIke0dOVV9NSVJST1J9L2djYy9nY2MtJHtQVn0vZ2NjLSR7UFZ9LnRhci54eiIKLSNTUkNSRVYgPSAiZjdjZjc5OGI3M2ZkMWEwNzA5OGY5YTQ5MGRlZWMxZTJhMzZlMGJlZCIKLSNCQVNFVVJJID89ICJnaXQ6Ly9naXRodWIuY29tL2djYy1taXJyb3IvZ2NjO2JyYW5jaD1nY2MtNi1icmFuY2g7cHJvdG9jb2w9Z2l0IgotI0JBU0VVUkkgPz0gImh0dHA6Ly9taXJyb3JzLmNvbmNlcnRwYXNzLmNvbS9nY2Mvc25hcHNob3RzLyR7UkVMRUFTRX0vZ2NjLSR7UkVMRUFTRX0udGFyLnh6IgotCi1TUkNfVVJJID0gIlwKLSAgICAgICAgICAgJHtCQVNFVVJJfSBcCi0gICAgICAgICAgIGZpbGU6Ly8wMDAxLWdjYy00LjMuMS1BUkNIX0ZMQUdTX0ZPUl9UQVJHRVQucGF0Y2ggXAotICAgICAgICAgICBmaWxlOi8vMDAwMi1nY2MtcG9pc29uLXN5c3RlbS1kaXJlY3Rvcmllcy5wYXRjaCBcCi0gICAgICAgICAgIGZpbGU6Ly8wMDAzLWdjYy00LjMuMy1TWVNST09UX0NGTEFHU19GT1JfVEFSR0VULnBhdGNoIFwKLSAgICAgICAgICAgZmlsZTovLzAwMDQtNjQtYml0LW11bHRpbGliLWhhY2sucGF0Y2ggXAotICAgICAgICAgICBmaWxlOi8vMDAwNS1vcHRpb25hbC1saWJzdGRjLnBhdGNoIFwKLSAgICAgICAgICAgZmlsZTovLzAwMDctQ09MTEVDVF9HQ0NfT1BUSU9OUy5wYXRjaCBcCi0gICAgICAgICAgIGZpbGU6Ly8wMDA4LVVzZS10aGUtZGVmYXVsdHMuaC1pbi1CLWluc3RlYWQtb2YtUy1hbmQtdC1vZS1pbi1CLnBhdGNoIFwKLSAgICAgICAgICAgZmlsZTovLzAwMDktZm9ydHJhbi1jcm9zcy1jb21waWxlLWhhY2sucGF0Y2ggXAotICAgICAgICAgICBmaWxlOi8vMDAxMC1jcHAtaG9ub3Itc3lzcm9vdC5wYXRjaCBcCi0gICAgICAgICAgIGZpbGU6Ly8wMDExLU1JUFM2NC1EZWZhdWx0LXRvLU42NC1BQkkucGF0Y2ggXAotICAgICAgICAgICBmaWxlOi8vMDAxMi1EZWZpbmUtR0xJQkNfRFlOQU1JQ19MSU5LRVItYW5kLVVDTElCQ19EWU5BTUlDX0xJTktFLnBhdGNoIFwKLSAgICAgICAgICAgZmlsZTovLzAwMTMtZ2NjLUZpeC1hcmd1bWVudC1saXN0LXRvby1sb25nLWVycm9yLnBhdGNoIFwKLSAgICAgICAgICAgZmlsZTovLzAwMTQtRGlzYWJsZS1zZHQucGF0Y2ggXAotICAgICAgICAgICBmaWxlOi8vMDAxNS1saWJ0b29sLnBhdGNoIFwKLSAgICAgICAgICAgZmlsZTovLzAwMTYtZ2NjLWFybXY0LXBhc3MtZml4LXY0YngtdG8tbGlua2VyLXRvLXN1cHBvcnQtRUFCSS5wYXRjaCBcCi0gICAgICAgICAgIGZpbGU6Ly8wMDE3LVVzZS10aGUtbXVsdGlsaWItY29uZmlnLWZpbGVzLWZyb20tQi1pbnN0ZWFkLW9mLXVzaW4ucGF0Y2ggXAotICAgICAgICAgICBmaWxlOi8vMDAxOC1Bdm9pZC11c2luZy1saWJkaXItZnJvbS0ubGEtd2hpY2gtdXN1YWxseS1wb2ludHMtdG8tLnBhdGNoIFwKLSAgICAgICAgICAgZmlsZTovLzAwMTktZXhwb3J0LUNQUC5wYXRjaCBcCi0gICAgICAgICAgIGZpbGU6Ly8wMDIwLURpc2FibGUtdGhlLU1VTFRJTElCX09TRElSTkFNRVMtYW5kLW90aGVyLW11bHRpbGliLW8ucGF0Y2ggXAotICAgICAgICAgICBmaWxlOi8vMDAyMS1FbnN1cmUtdGFyZ2V0LWdjYy1oZWFkZXJzLWNhbi1iZS1pbmNsdWRlZC5wYXRjaCBcCi0gICAgICAgICAgIGZpbGU6Ly8wMDIyLWdjYy00Ljgtd29uLXQtYnVpbGQtd2l0aC1kaXNhYmxlLWRlcGVuZGVuY3ktdHJhY2tpbmcucGF0Y2ggXAotICAgICAgICAgICBmaWxlOi8vMDAyMy1Eb24tdC1zZWFyY2gtaG9zdC1kaXJlY3RvcnktZHVyaW5nLXJlbGluay1pZi1pbnN0X3ByLnBhdGNoIFwKLSAgICAgICAgICAgZmlsZTovLzAwMjQtVXNlLVNZU1RFTUxJQlNfRElSLXJlcGxhY2VtZW50LWluc3RlYWQtb2YtaGFyZGNvZGluZy5wYXRjaCBcCi0gICAgICAgICAgIGZpbGU6Ly8wMDI1LWFhcmNoNjQtQWRkLXN1cHBvcnQtZm9yLW11c2wtbGRzby5wYXRjaCBcCi0gICAgICAgICAgIGZpbGU6Ly8wMDI2LWxpYmNjMS1maXgtbGliY2MxLXMtaW5zdGFsbC1wYXRoLWFuZC1ycGF0aC5wYXRjaCBcCi0gICAgICAgICAgIGZpbGU6Ly8wMDI3LWhhbmRsZS1zeXNyb290LXN1cHBvcnQtZm9yLW5hdGl2ZXNkay1nY2MucGF0Y2ggXAotICAgICAgICAgICBmaWxlOi8vMDAyOC1TZWFyY2gtdGFyZ2V0LXN5c3Jvb3QtZ2NjLXZlcnNpb24tc3BlY2lmaWMtZGlycy13aXRoLnBhdGNoIFwKLSAgICAgICAgICAgZmlsZTovLzAwMjktRml4LXZhcmlvdXMtX0ZPUl9CVUlMRC1hbmQtcmVsYXRlZC12YXJpYWJsZXMucGF0Y2ggXAotICAgICAgICAgICBmaWxlOi8vMDAzMC1uaW9zMi1EZWZpbmUtTVVTTF9EWU5BTUlDX0xJTktFUi5wYXRjaCBcCi0gICAgICAgICAgIGZpbGU6Ly8wMDMxLUFkZC1zc3Bfbm9uc2hhcmVkLXRvLWxpbmstY29tbWFuZGxpbmUtZm9yLW11c2wtdGFyZ2UucGF0Y2ggXAotICAgICAgICAgICBmaWxlOi8vMDAzMi1saWJnY2MtQWRkLWtub2ItdG8tdXNlLWxkYmwtMTI4LW9uLXBwYy5wYXRjaCBcCi0gICAgICAgICAgIGZpbGU6Ly8wMDMzLUxpbmstbGliZ2NjLXVzaW5nLUxERkxBR1Mtbm90LWp1c3QtU0hMSUJfTERGTEFHUy5wYXRjaCBcCi0gICAgICAgICAgIGZpbGU6Ly8wMDM0LWxpYmdjY19zLVVzZS1hbGlhcy1mb3ItX19jcHVfaW5kaWNhdG9yX2luaXQtaW5zdGVhZC0ucGF0Y2ggXAotICAgICAgICAgICBmaWxlOi8vMDAzNS1zeW5jLWdjYy1zdGRkZWYuaC13aXRoLW11c2wucGF0Y2ggXAotICAgICAgICAgICBmaWxlOi8vMDAzNi1maXgtc2VnbWVudGF0aW9uLWZhdWx0LWluLXByZWNvbXBpbGVkLWhlYWRlci1nZW5lcmF0LnBhdGNoIFwKLSAgICAgICAgICAgZmlsZTovLzAwMzctRml4LWZvci10ZXN0c3VpdGUtZmFpbHVyZS5wYXRjaCBcCi0gICAgICAgICAgIGZpbGU6Ly8wMDM4LVJlLWludHJvZHVjZS1zcGUtY29tbWFuZGxpbmUtb3B0aW9ucy5wYXRjaCBcCi0gICAgICAgICAgIGZpbGU6Ly8wMDM5LXJpc2N2LURpc2FibGUtbXVsdGlsaWItZm9yLU9FLnBhdGNoIFwKLSAgICAgICAgICAgZmlsZTovLzAwNDAtcG93ZXJwYy1wb3dlcnBjNjQtQWRkLXN1cHBvcnQtZm9yLW11c2wtbGRzby5wYXRjaCBcCi0gICAgICAgICAgIGZpbGU6Ly8wMDQxLUFkZC1hLXJlY3Vyc2lvbi1saW1pdC10by1saWJpYmVydHktcy1kZW1hbmdsaW5nLWNvZGUucGF0Y2ggXAotICAgICAgICAgICBmaWxlOi8vMDA0Mi1QUi1kZWJ1Zy04Njk2NC5wYXRjaCBcCi0gICAgICAgICAgIGZpbGU6Ly8wMDQzLVBSODU0MzQtUHJldmVudC1zcGlsbGluZy1vZi1zdGFjay1wcm90ZWN0b3ItZ3VhcmQtcy0ucGF0Y2ggXAotIgotU1JDX1VSSVttZDVzdW1dID0gIjY1YjIxMGI0YmZlN2UwNjAwNTFmNzk5ZTBmOTk0ODk2IgotU1JDX1VSSVtzaGEyNTZzdW1dID0gIjY0YmFhZGZlNmNjMGY0OTQ3YTg0Y2IxMmQ3ZjBkZmFmNDViYjU4YjdlOTI0NjE2Mzk1OTZjMjFlMDJkOTdkMmMiCi0KLVMgPSAiJHtUTVBESVJ9L3dvcmstc2hhcmVkL2djYy0ke1BWfS0ke1BSfS9nY2MtJHtQVn0iCi0jUyA9ICIke1RNUERJUn0vd29yay1zaGFyZWQvZ2NjLSR7UFZ9LSR7UFJ9L2dpdCIKLSNTID0gIiR7VE1QRElSfS93b3JrLXNoYXJlZC9nY2MtJHtQVn0tJHtQUn0vZ2NjLSR7UkVMRUFTRX0iCi1CID0gIiR7V09SS0RJUn0vZ2NjLSR7UFZ9L2J1aWxkLiR7SE9TVF9TWVN9LiR7VEFSR0VUX1NZU30iCi0KLSMgTGFuZ3VhZ2UgT3ZlcnJpZGVzCi1GT1JUUkFOID0gIiIKLQotTFRPID0gIi0tZW5hYmxlLWx0byIKLVNTUCA/PSAiLS1kaXNhYmxlLWxpYnNzcCIKLVNTUF9taW5ndzMyID0gIi0tZW5hYmxlLWxpYnNzcCIKLQotRVhUUkFfT0VDT05GX0JBU0UgPSAiXAotICAgICR7TFRPfSBcCi0gICAgJHtTU1B9IFwKLSAgICAtLWVuYWJsZS1saWJpdG0gXAotICAgIC0tZGlzYWJsZS1ib290c3RyYXAgXAotICAgIC0tZGlzYWJsZS1saWJtdWRmbGFwIFwKLSAgICAtLXdpdGgtc3lzdGVtLXpsaWIgXAotICAgICR7QCctLXdpdGgtbGlua2VyLWhhc2gtc3R5bGU9JHtMSU5LRVJfSEFTSF9TVFlMRX0nIGlmICcke0xJTktFUl9IQVNIX1NUWUxFfScgZWxzZSAnJ30gXAotICAgIC0tZW5hYmxlLWxpbmtlci1idWlsZC1pZCBcCi0gICAgLS13aXRoLXBwbD1ubyBcCi0gICAgLS13aXRoLWNsb29nPW5vIFwKLSAgICAtLWVuYWJsZS1jaGVja2luZz1yZWxlYXNlIFwKLSAgICAtLWVuYWJsZS1jaGVhZGVycz1jX2dsb2JhbCBcCi0gICAgLS13aXRob3V0LWlzbCBcCi0iCi0KLUVYVFJBX09FQ09ORl9QQVRIUyA9ICJcCi0gICAgLS13aXRoLWd4eC1pbmNsdWRlLWRpcj0vbm90L2V4aXN0e3RhcmdldF9pbmNsdWRlZGlyfS9jKysvJHtCSU5WfSBcCi0gICAgLS13aXRoLXN5c3Jvb3Q9L25vdC9leGlzdCBcCi0gICAgLS13aXRoLWJ1aWxkLXN5c3Jvb3Q9JHtTVEFHSU5HX0RJUl9UQVJHRVR9IFwKLSIKZGlmZiAtLWdpdCBhL3Bva3kvbWV0YS9yZWNpcGVzLWRldnRvb2xzL2djYy9nY2MtOC4zLzAwMDEtZ2NjLTQuMy4xLUFSQ0hfRkxBR1NfRk9SX1RBUkdFVC5wYXRjaCBiL3Bva3kvbWV0YS9yZWNpcGVzLWRldnRvb2xzL2djYy9nY2MtOC4zLzAwMDEtZ2NjLTQuMy4xLUFSQ0hfRkxBR1NfRk9SX1RBUkdFVC5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNGFkNzllNC4uMDAwMDAwMAotLS0gYS9wb2t5L21ldGEvcmVjaXBlcy1kZXZ0b29scy9nY2MvZ2NjLTguMy8wMDAxLWdjYy00LjMuMS1BUkNIX0ZMQUdTX0ZPUl9UQVJHRVQucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSw0MiArMCwwIEBACi1Gcm9tIGQ3YjI4NGE5YmVkZTlkNTA1OWFkN2U5NWE4NjcyNTRiZjkxM2M2MzggTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBLaGVtIFJhaiA8cmFqLmtoZW1AZ21haWwuY29tPgotRGF0ZTogRnJpLCAyOSBNYXIgMjAxMyAwODozNzoxMSArMDQwMAotU3ViamVjdDogW1BBVENIIDAxLzQwXSBnY2MtNC4zLjE6IEFSQ0hfRkxBR1NfRk9SX1RBUkdFVAotCi1TaWduZWQtb2ZmLWJ5OiBLaGVtIFJhaiA8cmFqLmtoZW1AZ21haWwuY29tPgotCi1VcHN0cmVhbS1TdGF0dXM6IEluYXBwcm9wcmlhdGUgW2VtYmVkZGVkIHNwZWNpZmljXQotLS0tCi0gY29uZmlndXJlICAgIHwgMiArLQotIGNvbmZpZ3VyZS5hYyB8IDIgKy0KLSAyIGZpbGVzIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKLQotZGlmZiAtLWdpdCBhL2NvbmZpZ3VyZSBiL2NvbmZpZ3VyZQotaW5kZXggMDYwMTM5NTUxMmYuLjhjNWIxZTlkNTYxIDEwMDc1NQotLS0tIGEvY29uZmlndXJlCi0rKysgYi9jb25maWd1cmUKLUBAIC03NTA3LDcgKzc1MDcsNyBAQCBmaQotICMgZm9yIHRhcmdldF9hbGlhcyBhbmQgZ2NjIGRvZXNuJ3QgbWFuYWdlIGl0IGNvbnNpc3RlbnRseS4KLSB0YXJnZXRfY29uZmlnYXJncz0iLS1jYWNoZS1maWxlPS4vY29uZmlnLmNhY2hlICR7dGFyZ2V0X2NvbmZpZ2FyZ3N9IgotIAotLUZMQUdTX0ZPUl9UQVJHRVQ9Ci0rRkxBR1NfRk9SX1RBUkdFVD0iJEFSQ0hfRkxBR1NfRk9SX1RBUkdFVCIKLSBjYXNlICIgJHRhcmdldF9jb25maWdkaXJzICIgaW4KLSAgKiIgbmV3bGliICIqKQotICAgY2FzZSAiICR0YXJnZXRfY29uZmlnYXJncyAiIGluCi1kaWZmIC0tZ2l0IGEvY29uZmlndXJlLmFjIGIvY29uZmlndXJlLmFjCi1pbmRleCBjMzQzMzMzNjUyMy4uNjljMzFjNjVhZDcgMTAwNjQ0Ci0tLS0gYS9jb25maWd1cmUuYWMKLSsrKyBiL2NvbmZpZ3VyZS5hYwotQEAgLTMwOTYsNyArMzA5Niw3IEBAIGZpCi0gIyBmb3IgdGFyZ2V0X2FsaWFzIGFuZCBnY2MgZG9lc24ndCBtYW5hZ2UgaXQgY29uc2lzdGVudGx5LgotIHRhcmdldF9jb25maWdhcmdzPSItLWNhY2hlLWZpbGU9Li9jb25maWcuY2FjaGUgJHt0YXJnZXRfY29uZmlnYXJnc30iCi0gCi0tRkxBR1NfRk9SX1RBUkdFVD0KLStGTEFHU19GT1JfVEFSR0VUPSIkQVJDSF9GTEFHU19GT1JfVEFSR0VUIgotIGNhc2UgIiAkdGFyZ2V0X2NvbmZpZ2RpcnMgIiBpbgotICAqIiBuZXdsaWIgIiopCi0gICBjYXNlICIgJHRhcmdldF9jb25maWdhcmdzICIgaW4KLS0tIAotMi4yMS4wCi0KZGlmZiAtLWdpdCBhL3Bva3kvbWV0YS9yZWNpcGVzLWRldnRvb2xzL2djYy9nY2MtOC4zLzAwMDItZ2NjLXBvaXNvbi1zeXN0ZW0tZGlyZWN0b3JpZXMucGF0Y2ggYi9wb2t5L21ldGEvcmVjaXBlcy1kZXZ0b29scy9nY2MvZ2NjLTguMy8wMDAyLWdjYy1wb2lzb24tc3lzdGVtLWRpcmVjdG9yaWVzLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlN2ZmMTI0Li4wMDAwMDAwCi0tLSBhL3Bva3kvbWV0YS9yZWNpcGVzLWRldnRvb2xzL2djYy9nY2MtOC4zLzAwMDItZ2NjLXBvaXNvbi1zeXN0ZW0tZGlyZWN0b3JpZXMucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwyMDMgKzAsMCBAQAotRnJvbSA5NWVjNDc2ZGQ3NzI2Y2M5YzFiZmQ2ZmIyM2JhM2FlYThiYmY2MWE0IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogS2hlbSBSYWogPHJhai5raGVtQGdtYWlsLmNvbT4KLURhdGU6IEZyaSwgMjkgTWFyIDIwMTMgMDg6NTk6MDAgKzA0MDAKLVN1YmplY3Q6IFtQQVRDSCAwMi80MF0gZ2NjOiBwb2lzb24tc3lzdGVtLWRpcmVjdG9yaWVzCi0KLUFkZCAvc3cvaW5jbHVkZSBhbmQgL29wdC9pbmNsdWRlIGJhc2VkIG9uIHRoZSBvcmlnaW5hbAotemVja2Utbm8taG9zdC1pbmNsdWRlcy5wYXRjaCBwYXRjaC4gIFRoZSBvcmlnaW5hbCBwYXRjaCBjaGVja2VkIGZvcgotL3Vzci9pbmNsdWRlLCAvc3cvaW5jbHVkZSBhbmQgL29wdC9pbmNsdWRlIGFuZCB0aGVuIHRyaWdnZXJlZCBhIGZhaWx1cmUgYW5kCi1hYm9ydGVkLgotCi1JbnN0ZWFkLCB3ZSBhZGQgdGhlIHR3byBtaXNzaW5nIGl0ZW1zIHRvIHRoZSBjdXJyZW50IHNjYW4uICBJZiB0aGUgdXNlcgotd2FudHMgdGhpcyB0byBiZSBhIGZhaWx1cmUsIHRoZXkgY2FuIGFkZCAiLVdlcnJvcj1wb2lzb24tc3lzdGVtLWRpcmVjdG9yaWVzIi4KLQotU2lnbmVkLW9mZi1ieTogTWFyayBIYXRsZSA8bWFyay5oYXRsZUB3aW5kcml2ZXIuY29tPgotU2lnbmVkLW9mZi1ieTogS2hlbSBSYWogPHJhai5raGVtQGdtYWlsLmNvbT4KLQotVXBzdHJlYW0tU3RhdHVzOiBQZW5kaW5nCi0tLS0KLSBnY2MvY29tbW9uLm9wdCAgICAgIHwgIDQgKysrKwotIGdjYy9jb25maWcuaW4gICAgICAgfCAgNiArKysrKysKLSBnY2MvY29uZmlndXJlICAgICAgIHwgMTYgKysrKysrKysrKysrKysrKwotIGdjYy9jb25maWd1cmUuYWMgICAgfCAxMCArKysrKysrKysrCi0gZ2NjL2RvYy9pbnZva2UudGV4aSB8ICA5ICsrKysrKysrKwotIGdjYy9nY2MuYyAgICAgICAgICAgfCAgMiArKwotIGdjYy9pbmNwYXRoLmMgICAgICAgfCAyMSArKysrKysrKysrKysrKysrKysrKysKLSA3IGZpbGVzIGNoYW5nZWQsIDY4IGluc2VydGlvbnMoKykKLQotZGlmZiAtLWdpdCBhL2djYy9jb21tb24ub3B0IGIvZ2NjL2NvbW1vbi5vcHQKLWluZGV4IGI1MmVmMGIzOGM4Li4wZGUzZjA5MjRjZCAxMDA2NDQKLS0tLSBhL2djYy9jb21tb24ub3B0Ci0rKysgYi9nY2MvY29tbW9uLm9wdAotQEAgLTY3OSw2ICs2NzksMTAgQEAgV3JldHVybi1sb2NhbC1hZGRyCi0gQ29tbW9uIFZhcih3YXJuX3JldHVybl9sb2NhbF9hZGRyKSBJbml0KDEpIFdhcm5pbmcKLSBXYXJuIGFib3V0IHJldHVybmluZyBhIHBvaW50ZXIvcmVmZXJlbmNlIHRvIGEgbG9jYWwgb3IgdGVtcG9yYXJ5IHZhcmlhYmxlLgotIAotK1dwb2lzb24tc3lzdGVtLWRpcmVjdG9yaWVzCi0rQ29tbW9uIFZhcihmbGFnX3BvaXNvbl9zeXN0ZW1fZGlyZWN0b3JpZXMpIEluaXQoMSkgV2FybmluZwotK1dhcm4gZm9yIC1JIGFuZCAtTCBvcHRpb25zIHVzaW5nIHN5c3RlbSBkaXJlY3RvcmllcyBpZiBjcm9zcyBjb21waWxpbmcKLSsKLSBXc2hhZG93Ci0gQ29tbW9uIFZhcih3YXJuX3NoYWRvdykgV2FybmluZwotIFdhcm4gd2hlbiBvbmUgdmFyaWFibGUgc2hhZG93cyBhbm90aGVyLiAgU2FtZSBhcyAtV3NoYWRvdz1nbG9iYWwuCi1kaWZmIC0tZ2l0IGEvZ2NjL2NvbmZpZy5pbiBiL2djYy9jb25maWcuaW4KLWluZGV4IDViY2NiNDA4MDE2Li4xYzc4NGE4Mjc2YiAxMDA2NDQKLS0tLSBhL2djYy9jb25maWcuaW4KLSsrKyBiL2djYy9jb25maWcuaW4KLUBAIC0xOTQsNiArMTk0LDEyIEBACi0gI2VuZGlmCi0gCi0gCi0rLyogRGVmaW5lIHRvIHdhcm4gZm9yIHVzZSBvZiBuYXRpdmUgc3lzdGVtIGhlYWRlciBkaXJlY3RvcmllcyAqLwotKyNpZm5kZWYgVVNFRF9GT1JfVEFSR0VUCi0rI3VuZGVmIEVOQUJMRV9QT0lTT05fU1lTVEVNX0RJUkVDVE9SSUVTCi0rI2VuZGlmCi0rCi0rCi0gLyogRGVmaW5lIGlmIHlvdSB3YW50IGFsbCBvcGVyYXRpb25zIG9uIFJUTCAodGhlIGJhc2ljIGRhdGEgc3RydWN0dXJlIG9mIHRoZQotICAgIG9wdGltaXplciBhbmQgYmFjayBlbmQpIHRvIGJlIGNoZWNrZWQgZm9yIGR5bmFtaWMgdHlwZSBzYWZldHkgYXQgcnVudGltZS4KLSAgICBUaGlzIGlzIHF1aXRlIGV4cGVuc2l2ZS4gKi8KLWRpZmYgLS1naXQgYS9nY2MvY29uZmlndXJlIGIvZ2NjL2NvbmZpZ3VyZQotaW5kZXggNjEyMWUxNjMyNTkuLjM5MDE3MjI0MDBjIDEwMDc1NQotLS0tIGEvZ2NjL2NvbmZpZ3VyZQotKysrIGIvZ2NjL2NvbmZpZ3VyZQotQEAgLTk1Myw2ICs5NTMsNyBAQCB3aXRoX3N5c3RlbV96bGliCi0gZW5hYmxlX21haW50YWluZXJfbW9kZQotIGVuYWJsZV9saW5rX211dGV4Ci0gZW5hYmxlX3ZlcnNpb25fc3BlY2lmaWNfcnVudGltZV9saWJzCi0rZW5hYmxlX3BvaXNvbl9zeXN0ZW1fZGlyZWN0b3JpZXMKLSBlbmFibGVfcGx1Z2luCi0gZW5hYmxlX2hvc3Rfc2hhcmVkCi0gZW5hYmxlX2xpYnF1YWRtYXRoX3N1cHBvcnQKLUBAIC0xNjk2LDYgKzE2OTcsOCBAQCBPcHRpb25hbCBGZWF0dXJlczoKLSAgIC0tZW5hYmxlLXZlcnNpb24tc3BlY2lmaWMtcnVudGltZS1saWJzCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBzcGVjaWZ5IHRoYXQgcnVudGltZSBsaWJyYXJpZXMgc2hvdWxkIGJlIGluc3RhbGxlZAotICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gYSBjb21waWxlci1zcGVjaWZpYyBkaXJlY3RvcnkKLSsgIC0tZW5hYmxlLXBvaXNvbi1zeXN0ZW0tZGlyZWN0b3JpZXMKLSsgICAgICAgICAgICAgICAgICAgICAgICAgIHdhcm4gZm9yIHVzZSBvZiBuYXRpdmUgc3lzdGVtIGhlYWRlciBkaXJlY3RvcmllcwotICAgLS1lbmFibGUtcGx1Z2luICAgICAgICAgZW5hYmxlIHBsdWdpbiBzdXBwb3J0Ci0gICAtLWVuYWJsZS1ob3N0LXNoYXJlZCAgICBidWlsZCBob3N0IGNvZGUgYXMgc2hhcmVkIGxpYnJhcmllcwotICAgLS1kaXNhYmxlLWxpYnF1YWRtYXRoLXN1cHBvcnQKLUBAIC0yOTcwMSw2ICsyOTcwNCwxOSBAQCBpZiB0ZXN0ICIke2VuYWJsZV92ZXJzaW9uX3NwZWNpZmljX3J1bnRpbWVfbGlicytzZXR9IiA9IHNldDsgdGhlbiA6Ci0gZmkKLSAKLSAKLSsjIENoZWNrIHdoZXRoZXIgLS1lbmFibGUtcG9pc29uLXN5c3RlbS1kaXJlY3RvcmllcyB3YXMgZ2l2ZW4uCi0raWYgdGVzdCAiJHtlbmFibGVfcG9pc29uX3N5c3RlbV9kaXJlY3RvcmllcytzZXR9IiA9IHNldDsgdGhlbiA6Ci0rICBlbmFibGV2YWw9JGVuYWJsZV9wb2lzb25fc3lzdGVtX2RpcmVjdG9yaWVzOwotK2Vsc2UKLSsgIGVuYWJsZV9wb2lzb25fc3lzdGVtX2RpcmVjdG9yaWVzPW5vCi0rZmkKLSsKLStpZiB0ZXN0ICJ4JHtlbmFibGVfcG9pc29uX3N5c3RlbV9kaXJlY3Rvcmllc30iID0gInh5ZXMiOyB0aGVuCi0rCi0rJGFzX2VjaG8gIiNkZWZpbmUgRU5BQkxFX1BPSVNPTl9TWVNURU1fRElSRUNUT1JJRVMgMSIgPj5jb25mZGVmcy5oCi0rCi0rZmkKLSsKLSAjIFN1YnN0aXR1dGUgY29uZmlndXJhdGlvbiB2YXJpYWJsZXMKLSAKLSAKLWRpZmYgLS1naXQgYS9nY2MvY29uZmlndXJlLmFjIGIvZ2NjL2NvbmZpZ3VyZS5hYwotaW5kZXggYjA2NmNjNjA5ZTEuLjFiMTM2MmY3MGZlIDEwMDY0NAotLS0tIGEvZ2NjL2NvbmZpZ3VyZS5hYwotKysrIGIvZ2NjL2NvbmZpZ3VyZS5hYwotQEAgLTYzMjcsNiArNjMyNywxNiBAQCBBQ19BUkdfRU5BQkxFKHZlcnNpb24tc3BlY2lmaWMtcnVudGltZS1saWJzLAotICAgICAgICAgICAgICAgICBbc3BlY2lmeSB0aGF0IHJ1bnRpbWUgbGlicmFyaWVzIHNob3VsZCBiZQotICAgICAgICAgICAgICAgICAgaW5zdGFsbGVkIGluIGEgY29tcGlsZXItc3BlY2lmaWMgZGlyZWN0b3J5XSldKQotIAotK0FDX0FSR19FTkFCTEUoW3BvaXNvbi1zeXN0ZW0tZGlyZWN0b3JpZXNdLAotKyAgICAgICAgICAgICBBU19IRUxQX1NUUklORyhbLS1lbmFibGUtcG9pc29uLXN5c3RlbS1kaXJlY3Rvcmllc10sCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt3YXJuIGZvciB1c2Ugb2YgbmF0aXZlIHN5c3RlbSBoZWFkZXIgZGlyZWN0b3JpZXNdKSwsCi0rICAgICAgICAgICAgIFtlbmFibGVfcG9pc29uX3N5c3RlbV9kaXJlY3Rvcmllcz1ub10pCi0raWYgdGVzdCAieCR7ZW5hYmxlX3BvaXNvbl9zeXN0ZW1fZGlyZWN0b3JpZXN9IiA9ICJ4eWVzIjsgdGhlbgotKyAgQUNfREVGSU5FKFtFTkFCTEVfUE9JU09OX1NZU1RFTV9ESVJFQ1RPUklFU10sCi0rICAgICAgICAgICBbMV0sCi0rICAgICAgICAgICBbRGVmaW5lIHRvIHdhcm4gZm9yIHVzZSBvZiBuYXRpdmUgc3lzdGVtIGhlYWRlciBkaXJlY3Rvcmllc10pCi0rZmkKLSsKLSAjIFN1YnN0aXR1dGUgY29uZmlndXJhdGlvbiB2YXJpYWJsZXMKLSBBQ19TVUJTVChzdWJkaXJzKQotIEFDX1NVQlNUKHNyY2RpcikKLWRpZmYgLS1naXQgYS9nY2MvZG9jL2ludm9rZS50ZXhpIGIvZ2NjL2RvYy9pbnZva2UudGV4aQotaW5kZXggZTVjNGU4MTI1YWEuLmZiMjI4NjMxYTQyIDEwMDY0NAotLS0tIGEvZ2NjL2RvYy9pbnZva2UudGV4aQotKysrIGIvZ2NjL2RvYy9pbnZva2UudGV4aQotQEAgLTMwNCw2ICszMDQsNyBAQCBPYmplY3RpdmUtQyBhbmQgT2JqZWN0aXZlLUMrKyBEaWFsZWN0c30uCi0gLVdwYWNrZWQgIC1XcGFja2VkLWJpdGZpZWxkLWNvbXBhdCAtV3BhY2tlZC1ub3QtYWxpZ25lZCAtV3BhZGRlZCBAZ29sCi0gLVdwYXJlbnRoZXNlcyAgLVduby1wZWRhbnRpYy1tcy1mb3JtYXQgQGdvbAotIC1XcGxhY2VtZW50LW5ldyAgLVdwbGFjZW1lbnQtbmV3PUB2YXJ7bn0gQGdvbAotKy1Xbm8tcG9pc29uLXN5c3RlbS1kaXJlY3RvcmllcyBAZ29sCi0gLVdwb2ludGVyLWFyaXRoICAtV3BvaW50ZXItY29tcGFyZSAgLVduby1wb2ludGVyLXRvLWludC1jYXN0IEBnb2wKLSAtV25vLXByYWdtYXMgIC1XcmVkdW5kYW50LWRlY2xzICAtV3Jlc3RyaWN0ICAtV25vLXJldHVybi1sb2NhbC1hZGRyIEBnb2wKLSAtV3JldHVybi10eXBlICAtV3NlcXVlbmNlLXBvaW50ICAtV3NoYWRvdyAgLVduby1zaGFkb3ctaXZhciBAZ29sCi1AQCAtNTc0Myw2ICs1NzQ0LDE0IEBAIG1hZGUgdXAgb2YgZGF0YSBvbmx5IGFuZCB0aHVzIHJlcXVpcmVzIG5vIHNwZWNpYWwgdHJlYXRtZW50LiAgQnV0LCBmb3IKLSBtb3N0IHRhcmdldHMsIGl0IGlzIG1hZGUgdXAgb2YgY29kZSBhbmQgdGh1cyByZXF1aXJlcyB0aGUgc3RhY2sgdG8gYmUKLSBtYWRlIGV4ZWN1dGFibGUgaW4gb3JkZXIgZm9yIHRoZSBwcm9ncmFtIHRvIHdvcmsgcHJvcGVybHkuCi0gCi0rQGl0ZW0gLVduby1wb2lzb24tc3lzdGVtLWRpcmVjdG9yaWVzCi0rQG9waW5kZXggV25vLXBvaXNvbi1zeXN0ZW0tZGlyZWN0b3JpZXMKLStEbyBub3Qgd2FybiBmb3IgQG9wdGlvbnstSX0gb3IgQG9wdGlvbnstTH0gb3B0aW9ucyB1c2luZyBzeXN0ZW0KLStkaXJlY3RvcmllcyBzdWNoIGFzIEBmaWxley91c3IvaW5jbHVkZX0gd2hlbiBjcm9zcyBjb21waWxpbmcuICBUaGlzCi0rb3B0aW9uIGlzIGludGVuZGVkIGZvciB1c2UgaW4gY2hyb290IGVudmlyb25tZW50cyB3aGVuIHN1Y2gKLStkaXJlY3RvcmllcyBjb250YWluIHRoZSBjb3JyZWN0IGhlYWRlcnMgYW5kIGxpYnJhcmllcyBmb3IgdGhlIHRhcmdldAotK3N5c3RlbSByYXRoZXIgdGhhbiB0aGUgaG9zdC4KLSsKLSBAaXRlbSAtV2Zsb2F0LWVxdWFsCi0gQG9waW5kZXggV2Zsb2F0LWVxdWFsCi0gQG9waW5kZXggV25vLWZsb2F0LWVxdWFsCi1kaWZmIC0tZ2l0IGEvZ2NjL2djYy5jIGIvZ2NjL2djYy5jCi1pbmRleCBhNzE2ZjcwODI1OS4uMDJiM2NkMzlmYzIgMTAwNjQ0Ci0tLS0gYS9nY2MvZ2NjLmMKLSsrKyBiL2djYy9nY2MuYwotQEAgLTEwMzcsNiArMTAzNyw4IEBAIHByb3BlciBwb3NpdGlvbiBhbW9uZyB0aGUgb3RoZXIgb3V0cHV0IGZpbGVzLiAgKi8KLSAgICAiJXtmdXNlLWxkPSo6LWZ1c2UtbGQ9JSp9ICIgTElOS19DT01QUkVTU19ERUJVR19TUEVDIFwKLSAgICAiJVggJXtvKn0gJXtlKn0gJXtOfSAle259ICV7cn1cCi0gICAgICV7c30gJXt0fSAle3UqfSAle3p9ICV7Wn0gJXshbm9zdGRsaWI6JXshbm9zdGFydGZpbGVzOiVTfX0gXAotKyAgICAle1duby1wb2lzb24tc3lzdGVtLWRpcmVjdG9yaWVzOi0tbm8tcG9pc29uLXN5c3RlbS1kaXJlY3Rvcmllc30gXAotKyAgICAle1dlcnJvcj1wb2lzb24tc3lzdGVtLWRpcmVjdG9yaWVzOi0tZXJyb3ItcG9pc29uLXN5c3RlbS1kaXJlY3Rvcmllc30gXAotICAgICAle3N0YXRpY3xuby1waWV8c3RhdGljLXBpZTp9ICV7TCp9ICUobWZ3cmFwKSAlKGxpbmtfbGliZ2NjKSAiIFwKLSAgICAgVlRBQkxFX1ZFUklGSUNBVElPTl9TUEVDICIgIiBTQU5JVElaRVJfRUFSTFlfU1BFQyAiICVvICIgQ0hLUF9TUEVDICIgXAotICAgICAle2ZvcGVuYWNjfGZvcGVubXB8JTpndCgle2Z0cmVlLXBhcmFsbGVsaXplLWxvb3BzPSo6JSp9IDEpOlwKLWRpZmYgLS1naXQgYS9nY2MvaW5jcGF0aC5jIGIvZ2NjL2luY3BhdGguYwotaW5kZXggYjExYzZhNTc5MzkuLjlhNDU3ZTAyZGQzIDEwMDY0NAotLS0tIGEvZ2NjL2luY3BhdGguYwotKysrIGIvZ2NjL2luY3BhdGguYwotQEAgLTI2LDYgKzI2LDcgQEAKLSAjaW5jbHVkZSAiaW50bC5oIgotICNpbmNsdWRlICJpbmNwYXRoLmgiCi0gI2luY2x1ZGUgImNwcGRlZmF1bHQuaCIKLSsjaW5jbHVkZSAiZGlhZ25vc3RpYy1jb3JlLmgiCi0gCi0gLyogTWljcm9zb2Z0IFdpbmRvd3MgZG9lcyBub3QgbmF0aXZlbHkgc3VwcG9ydCBpbm9kZXMuCi0gICAgVk1TIGhhcyBub24tbnVtZXJpYyBpbm9kZXMuICAqLwotQEAgLTM5Myw2ICszOTQsMjYgQEAgbWVyZ2VfaW5jbHVkZV9jaGFpbnMgKGNvbnN0IGNoYXIgKnN5c3Jvb3QsIGNwcF9yZWFkZXIgKnBmaWxlLCBpbnQgdmVyYm9zZSkKLSAJfQotICAgICAgIGZwcmludGYgKHN0ZGVyciwgXygiRW5kIG9mIHNlYXJjaCBsaXN0LlxuIikpOwotICAgICB9Ci0rCi0rI2lmZGVmIEVOQUJMRV9QT0lTT05fU1lTVEVNX0RJUkVDVE9SSUVTCi0rICBpZiAoZmxhZ19wb2lzb25fc3lzdGVtX2RpcmVjdG9yaWVzKQotKyAgICB7Ci0rICAgICAgIHN0cnVjdCBjcHBfZGlyICpwOwotKwotKyAgICAgICBmb3IgKHAgPSBoZWFkc1tJTkNfUVVPVEVdOyBwOyBwID0gcC0+bmV4dCkKLSsgICAgICAgICB7Ci0rICAgICAgICAgIGlmICgoIXN0cm5jbXAgKHAtPm5hbWUsICIvdXNyL2luY2x1ZGUiLCAxMikpCi0rICAgICAgICAgICAgICB8fCAoIXN0cm5jbXAgKHAtPm5hbWUsICIvdXNyL2xvY2FsL2luY2x1ZGUiLCAxOCkpCi0rICAgICAgICAgICAgICB8fCAoIXN0cm5jbXAgKHAtPm5hbWUsICIvdXNyL1gxMVI2L2luY2x1ZGUiLCAxOCkpCi0rICAgICAgICAgICAgICB8fCAoIXN0cm5jbXAgKHAtPm5hbWUsICIvc3cvaW5jbHVkZSIsIDExKSkKLSsgICAgICAgICAgICAgIHx8ICghc3RybmNtcCAocC0+bmFtZSwgIi9vcHQvaW5jbHVkZSIsIDEyKSkpCi0rICAgICAgICAgICAgd2FybmluZyAoT1BUX1dwb2lzb25fc3lzdGVtX2RpcmVjdG9yaWVzLAotKyAgICAgICAgICAgICAgICAgICAgICJpbmNsdWRlIGxvY2F0aW9uIFwiJXNcIiBpcyB1bnNhZmUgZm9yICIKLSsgICAgICAgICAgICAgICAgICAgICAiY3Jvc3MtY29tcGlsYXRpb24iLAotKyAgICAgICAgICAgICAgICAgICAgIHAtPm5hbWUpOwotKyAgICAgICAgIH0KLSsgICAgfQotKyNlbmRpZgotIH0KLSAKLSAvKiBVc2UgZ2l2ZW4gLUkgcGF0aHMgZm9yICNpbmNsdWRlICIuLi4iIGJ1dCBub3QgI2luY2x1ZGUgPC4uLj4sIGFuZAotLS0gCi0yLjIxLjAKLQpkaWZmIC0tZ2l0IGEvcG9reS9tZXRhL3JlY2lwZXMtZGV2dG9vbHMvZ2NjL2djYy04LjMvMDAwMy1nY2MtNC4zLjMtU1lTUk9PVF9DRkxBR1NfRk9SX1RBUkdFVC5wYXRjaCBiL3Bva3kvbWV0YS9yZWNpcGVzLWRldnRvb2xzL2djYy9nY2MtOC4zLzAwMDMtZ2NjLTQuMy4zLVNZU1JPT1RfQ0ZMQUdTX0ZPUl9UQVJHRVQucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGU2MmRlYjIuLjAwMDAwMDAKLS0tIGEvcG9reS9tZXRhL3JlY2lwZXMtZGV2dG9vbHMvZ2NjL2djYy04LjMvMDAwMy1nY2MtNC4zLjMtU1lTUk9PVF9DRkxBR1NfRk9SX1RBUkdFVC5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDczICswLDAgQEAKLUZyb20gNjY0MGQ3ZTM5YjEzZDFlZjI2ZDI0OTE1M2FiMTVkNTEwZmRhMzU2NiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IEtoZW0gUmFqIDxyYWoua2hlbUBnbWFpbC5jb20+Ci1EYXRlOiBGcmksIDI5IE1hciAyMDEzIDA5OjA4OjMxICswNDAwCi1TdWJqZWN0OiBbUEFUQ0ggMDMvNDBdIGdjYy00LjMuMzogU1lTUk9PVF9DRkxBR1NfRk9SX1RBUkdFVAotCi1CZWZvcmUgY29tbWl0dGluZywgSSBub3RpY2VkIHRoYXQgUFIvMzIxNjEgd2FzIG1hcmtlZCBhcyBhIGR1cCBvZiBQUi8zMjAwOSwgYnV0IG15IHByZXZpb3VzIHBhdGNoIGRpZCBub3QgZml4IGl0LgotCi1UaGlzIGFsdGVybmF0aXZlIHBhdGNoIGlzIGJldHRlciBiZWNhdXNlIGl0IGxldHMgeW91IGp1c3QgdXNlIENGTEFHU19GT1JfVEFSR0VUIHRvIHNldCB0aGUgY29tcGlsYXRpb24gZmxhZ3MgZm9yIGxpYmdjYy4gU2luY2UgYm9vdHN0cmFwcGVkIHRhcmdldCBsaWJyYXJpZXMgYXJlIG5ldmVyIGNvbXBpbGVkIHdpdGggdGhlIG5hdGl2ZSBjb21waWxlciwgaXQgbWFrZXMgbGl0dGxlIHNlbnNlIHRvIHVzZSBkaWZmZXJlbnQgZmxhZ3MgZm9yIHN0YWdlMSBhbmQgbGF0ZXIgc3RhZ2VzLiBBbmQgaXQgYWxzbyBtYWtlcyBsaXR0bGUgc2Vuc2UgdG8gdXNlIGEgZGlmZmVyZW50IHZhcmlhYmxlIHRoYW4gQ0ZMQUdTX0ZPUl9UQVJHRVQuCi0KLU90aGVyIGNoYW5nZXMgSSBoYWQgdG8gZG8gaW5jbHVkZToKLQotLSBtb3ZpbmcgdGhlIGNyZWF0aW9uIG9mIGRlZmF1bHQgQ0ZMQUdTX0ZPUl9UQVJHRVQgZnJvbSBNYWtlZmlsZS5hbSB0byBjb25maWd1cmUuYWMsIGJlY2F1c2Ugb3RoZXJ3aXNlIHRoZSBCT09UX0NGTEFHUyBhcmUgc3Vic3RpdHV0ZWQgaW50byBDRkxBR1NfRk9SX1RBUkdFVCAod2hpY2ggaXMgIi1PMiAtZyAkKENGTEFHUykiKSB2aWEgJChDRkxBR1MpLiBJdCBpcyBhbHNvIGNsZWFuZXIgdGhpcyB3YXkgdGhvdWdoLgotCi0tIHBhc3NpbmcgdGhlIHJpZ2h0IENGTEFHUyB0byBjb25maWd1cmUgc2NyaXB0cyBhcyBleHBvcnRlZCBlbnZpcm9ubWVudCB2YXJpYWJsZXMKLQotSSBhbHNvIHN0b3BwZWQgcGFzc2luZyBMSUJDRkxBR1MgdG8gY29uZmlndXJlIHNjcmlwdHMgc2luY2UgdGhleSBhcmUgdW51c2VkIGluIHRoZSB3aG9sZSBzcmMgdHJlZS4gQW5kIEkgdXBkYXRlZCB0aGUgZG9jdW1lbnRhdGlvbiBhcyBILVAgcmVtaW5kZWQgbWUgdG8gZG8uCi0KLUJvb3RzdHJhcHBlZC9yZWd0ZXN0ZWQgaTY4Ni1wYy1saW51eC1nbnUsIHdpbGwgY29tbWl0IHRvIDQuNCBzaG9ydGx5LiBPayBmb3IgNC4zPwotCi1TaWduZWQtb2ZmLWJ5OiBQYW9sbyBCb256aW5pICA8Ym9uemluaUBnbnUub3JnPgotU2lnbmVkLW9mZi1ieTogS2hlbSBSYWogPHJhai5raGVtQGdtYWlsLmNvbT4KLQotVXBzdHJlYW0tU3RhdHVzOiBQZW5kaW5nCi0tLS0KLSBjb25maWd1cmUgfCAzMiArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwotIDEgZmlsZSBjaGFuZ2VkLCAzMiBpbnNlcnRpb25zKCspCi0KLWRpZmYgLS1naXQgYS9jb25maWd1cmUgYi9jb25maWd1cmUKLWluZGV4IDhjNWIxZTlkNTYxLi4yZDFmYzZiOTRkOSAxMDA3NTUKLS0tLSBhL2NvbmZpZ3VyZQotKysrIGIvY29uZmlndXJlCi1AQCAtNjc2OCw2ICs2NzY4LDM4IEBAIGZpCi0gCi0gCi0gCi0rIyBEdXJpbmcgZ2NjIGJvb3RzdHJhcCwgaWYgd2UgdXNlIHNvbWUgcmFuZG9tIGNjIGZvciBzdGFnZTEgdGhlbiBDRkxBR1MKLSsjIG1pZ2h0IGJlIGVtcHR5IG9yICItZyIuICBXZSBkb24ndCByZXF1aXJlIGEgQysrIGNvbXBpbGVyLCBzbyBDWFhGTEFHUwotKyMgbWlnaHQgYWxzbyBiZSBlbXB0eSAob3IgIi1nIiwgaWYgYSBub24tR0NDIEMrKyBjb21waWxlciBpcyBpbiB0aGUgcGF0aCkuCi0rIyBXZSB3YW50IHRvIGVuc3VyZSB0aGF0IFRBUkdFVCBsaWJyYXJpZXMgKHdoaWNoIHdlIGtub3cgYXJlIGJ1aWx0IHdpdGgKLSsjIGdjYykgYXJlIGJ1aWx0IHdpdGggIi1PMiAtZyIsIHNvIGluY2x1ZGUgdGhvc2Ugb3B0aW9ucyB3aGVuIHNldHRpbmcKLSsjIENGTEFHU19GT1JfVEFSR0VUIGFuZCBDWFhGTEFHU19GT1JfVEFSR0VULgotK2lmIHRlc3QgIngkQ0ZMQUdTX0ZPUl9UQVJHRVQiID0geDsgdGhlbgotKyAgQ0ZMQUdTX0ZPUl9UQVJHRVQ9JENGTEFHUwotKyAgY2FzZSAiICRDRkxBR1MgIiBpbgotKyAgICAqIiAtTzIgIiopIDs7Ci0rICAgICopIENGTEFHU19GT1JfVEFSR0VUPSItTzIgJENGTEFHUyIgOzsKLSsgIGVzYWMKLSsgIGNhc2UgIiAkQ0ZMQUdTICIgaW4KLSsgICAgKiIgLWcgIiogfCAqIiAtZzMgIiopIDs7Ci0rICAgICopIENGTEFHU19GT1JfVEFSR0VUPSItZyAkQ0ZMQUdTIiA7OwotKyAgZXNhYwotK2ZpCi0rCi0rCi0raWYgdGVzdCAieCRDWFhGTEFHU19GT1JfVEFSR0VUIiA9IHg7IHRoZW4KLSsgIENYWEZMQUdTX0ZPUl9UQVJHRVQ9JENYWEZMQUdTCi0rICBjYXNlICIgJENYWEZMQUdTICIgaW4KLSsgICAgKiIgLU8yICIqKSA7OwotKyAgICAqKSBDWFhGTEFHU19GT1JfVEFSR0VUPSItTzIgJENYWEZMQUdTIiA7OwotKyAgZXNhYwotKyAgY2FzZSAiICRDWFhGTEFHUyAiIGluCi0rICAgICoiIC1nICIqIHwgKiIgLWczICIqKSA7OwotKyAgICAqKSBDWFhGTEFHU19GT1JfVEFSR0VUPSItZyAkQ1hYRkxBR1MiIDs7Ci0rICBlc2FjCi0rZmkKLSsKLSsKLSAjIEhhbmRsZSAtLXdpdGgtaGVhZGVycz1YWFguICBJZiB0aGUgdmFsdWUgaXMgbm90ICJ5ZXMiLCB0aGUgY29udGVudHMgb2YKLSAjIHRoZSBuYW1lZCBkaXJlY3RvcnkgYXJlIGNvcGllZCB0byAkKHRvb2xkaXIpL3N5cy1pbmNsdWRlLgotIGlmIHRlc3QgeCIke3dpdGhfaGVhZGVyc30iICE9IHggJiYgdGVzdCB4IiR7d2l0aF9oZWFkZXJzfSIgIT0geG5vIDsgdGhlbgotLS0gCi0yLjIxLjAKLQpkaWZmIC0tZ2l0IGEvcG9reS9tZXRhL3JlY2lwZXMtZGV2dG9vbHMvZ2NjL2djYy04LjMvMDAwNC02NC1iaXQtbXVsdGlsaWItaGFjay5wYXRjaCBiL3Bva3kvbWV0YS9yZWNpcGVzLWRldnRvb2xzL2djYy9nY2MtOC4zLzAwMDQtNjQtYml0LW11bHRpbGliLWhhY2sucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDM3MWQ4NzcuLjAwMDAwMDAKLS0tIGEvcG9reS9tZXRhL3JlY2lwZXMtZGV2dG9vbHMvZ2NjL2djYy04LjMvMDAwNC02NC1iaXQtbXVsdGlsaWItaGFjay5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDg1ICswLDAgQEAKLUZyb20gMWU2NDlkODFjYTY2MmM0Y2RmNzM4ODJlYmI4YTExZjBmMTlmNWJhZiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IEtoZW0gUmFqIDxyYWoua2hlbUBnbWFpbC5jb20+Ci1EYXRlOiBGcmksIDI5IE1hciAyMDEzIDA5OjEwOjA2ICswNDAwCi1TdWJqZWN0OiBbUEFUQ0ggMDQvNDBdIDY0LWJpdCBtdWx0aWxpYiBoYWNrLgotCi1HQ0MgaGFzIGludGVybmFsIG11bHRpbGliIGhhbmRsaW5nIGNvZGUgYnV0IGl0IGFzc3VtZXMgYSB2ZXJ5IHNwZWNpZmljIHJpZ2lkIGRpcmVjdG9yeQotbGF5b3V0LiBUaGUgYnVpbGQgc3lzdGVtIGltcGxlbWVudGF0aW9uIG9mIG11bHRpbGliIGxheW91dCBpcyB2ZXJ5IGdlbmVyaWMgYW5kIGFsbG93cwotY29tcGxldGUgY3VzdG9taXNhdGlvbiBvZiB0aGUgbGlicmFyeSBkaXJlY3Rvcmllcy4KLQotVGhpcyBwYXRjaCBpcyBhIHBhcnRpYWwgc29sdXRpb24gdG8gYWxsb3cgYW55IGN1c3RvbSBkaXJlY3RvcmllcyB0byBiZSBwYXNzZWQgaW50byBnY2MKLWFuZCBoYW5kbGVkIGNvcnJlY3RseS4gSXQgZm9yY2VzIGdjYyB0byB1c2UgdGhlIGJhc2VfbGliZGlyICh3aGljaCBpcyB0aGUgY3VycmVudAotZGlyZWN0b3J5LCAiLiIpLiBXZSBuZWVkIHRvIGRvIHRoaXMgZm9yIGVhY2ggbXVsdGlsaWIgdGhhdCBpcyBjb25maWd1cmVkIGFzIHdlIGRvbid0Ci1rbm93IHdoaWNoIGNvbXBpbGVyIG9wdGlvbnMgbWF5IGJlIGJlaW5nIHBhc3NlZCBpbnRvIHRoZSBjb21waWxlci4gU2luY2Ugd2UgaGF2ZSBhIGNvbXBpbGVyCi1wZXIgbXVsaXRsaWIgYXQgdGhpcyBwb2ludCB0aGF0IGlzbid0IGFuIGlzc3VlLgotCi1UaGUgb25lIHByb2JsZW0gaXMgdGhlIHRhcmdldCBjb21waWxlciBpcyBvbmx5IGdvaW5nIHRvIHdvcmsgZm9yIHRoZSBkZWZhdWx0IG11bHRsaWxpYiBhdAotdGhpcyBwb2ludC4gSWRlYWxseSB3ZSdkIGZpZ3VyZSBvdXQgd2hpY2ggbXVsdGlsaWJzIHdlcmUgYmVpbmcgZW5hYmxlZCB3aXRoIHdoaWNoIHBhdGhzCi1hbmQgYmUgYWJsZSB0byBwYXRjaCB0aGVzZSBlbnRyaWVzIHdpdGggYSBjb21wbGV0ZSBzZXQgb2YgY29ycmVjdCBwYXRocyBidXQgdGhpcyB3ZQotZG9uJ3QgaGF2ZSBzdWNoIGNvZGUgYXQgdGhpcyBwb2ludC4gVGhpcyBpcyBzb21ldGhpbmcgdGhlIHRhcmdldCBnY2MgcmVjaXBlIHNob3VsZCBkbwotYW5kIG92ZXJyaWRlIHRoZXNlIHBsYXRmb3JtIGRlZmF1bHRzIGluIGl0cyBidWlsZCBjb25maWcuCi0KLVJQIDE1LzgvMTEKLQotU2lnbmVkLW9mZi1ieTogS2hlbSBSYWogPHJhai5raGVtQGdtYWlsLmNvbT4KLVNpZ25lZC1vZmYtYnk6IEVsdmlzIERvd3NvbiA8ZWx2aXMuZG93c29uQGdtYWlsLmNvbT4KLQotVXBzdHJlYW0tU3RhdHVzOiBQZW5kaW5nCi0tLS0KLSBnY2MvY29uZmlnL2kzODYvdC1saW51eDY0ICAgfCAgNiArKy0tLS0KLSBnY2MvY29uZmlnL21pcHMvdC1saW51eDY0ICAgfCAxMCArKystLS0tLS0tCi0gZ2NjL2NvbmZpZy9yczYwMDAvdC1saW51eDY0IHwgIDUgKystLS0KLSAzIGZpbGVzIGNoYW5nZWQsIDcgaW5zZXJ0aW9ucygrKSwgMTQgZGVsZXRpb25zKC0pCi0KLWRpZmYgLS1naXQgYS9nY2MvY29uZmlnL2kzODYvdC1saW51eDY0IGIvZ2NjL2NvbmZpZy9pMzg2L3QtbGludXg2NAotaW5kZXggOGVhMGZhZmYzNjkuLjI2NmM2MDA4MDA0IDEwMDY0NAotLS0tIGEvZ2NjL2NvbmZpZy9pMzg2L3QtbGludXg2NAotKysrIGIvZ2NjL2NvbmZpZy9pMzg2L3QtbGludXg2NAotQEAgLTMyLDcgKzMyLDUgQEAKLSAjCi0gY29tbWE9LAotIE1VTFRJTElCX09QVElPTlMgICAgPSAkKHN1YnN0ICQoY29tbWEpLC8sJChUTV9NVUxUSUxJQl9DT05GSUcpKQotLU1VTFRJTElCX0RJUk5BTUVTICAgPSAkKHBhdHN1YnN0IG0lLCAlLCAkKHN1YnN0IC8sICwkKE1VTFRJTElCX09QVElPTlMpKSkKLS1NVUxUSUxJQl9PU0RJUk5BTUVTID0gbTY0PS4uL2xpYjY0JChjYWxsIGlmX211bHRpYXJjaCw6eDg2XzY0LWxpbnV4LWdudSkKLS1NVUxUSUxJQl9PU0RJUk5BTUVTKz0gbTMyPSQoaWYgJCh3aWxkY2FyZCAkKHNoZWxsIGVjaG8gJChTWVNURU1fSEVBREVSX0RJUikpLy4uLy4uL3Vzci9saWIzMiksLi4vbGliMzIsLi4vbGliKSQoY2FsbCBpZl9tdWx0aWFyY2gsOmkzODYtbGludXgtZ251KQotLU1VTFRJTElCX09TRElSTkFNRVMrPSBteDMyPS4uL2xpYngzMiQoY2FsbCBpZl9tdWx0aWFyY2gsOng4Nl82NC1saW51eC1nbnV4MzIpCi0rTVVMVElMSUJfRElSTkFNRVMgPSAuIC4KLStNVUxUSUxJQl9PU0RJUk5BTUVTID0gLi4vJChzaGVsbCBiYXNlbmFtZSAkKGJhc2VfbGliZGlyKSkgLi4vJChzaGVsbCBiYXNlbmFtZSAkKGJhc2VfbGliZGlyKSkKLWRpZmYgLS1naXQgYS9nY2MvY29uZmlnL21pcHMvdC1saW51eDY0IGIvZ2NjL2NvbmZpZy9taXBzL3QtbGludXg2NAotaW5kZXggYzAxN2I3ZDA0YzUuLjEyNjg5MmNmNDBiIDEwMDY0NAotLS0tIGEvZ2NjL2NvbmZpZy9taXBzL3QtbGludXg2NAotKysrIGIvZ2NjL2NvbmZpZy9taXBzL3QtbGludXg2NAotQEAgLTE3LDEwICsxNyw2IEBACi0gIyA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uCi0gCi0gTVVMVElMSUJfT1BUSU9OUyA9IG1hYmk9bjMyL21hYmk9MzIvbWFiaT02NAotLU1VTFRJTElCX0RJUk5BTUVTID0gbjMyIDMyIDY0Ci0tTUlQU19FTCA9ICQoaWYgJChmaWx0ZXIgJWVsLCAkKGZpcnN0d29yZCAkKHN1YnN0IC0sICwkKHRhcmdldCkpKSksZWwpCi0tTUlQU19TT0ZUID0gJChpZiAkKHN0cmlwICQoZmlsdGVyIE1BU0tfU09GVF9GTE9BVF9BQkksICQodGFyZ2V0X2NwdV9kZWZhdWx0KSkgJChmaWx0ZXIgc29mdCwgJCh3aXRoX2Zsb2F0KSkpLHNvZnQpCi0tTVVMVElMSUJfT1NESVJOQU1FUyA9IFwKLS0JLi4vbGliMzIkKGNhbGwgaWZfbXVsdGlhcmNoLDptaXBzNjQkKE1JUFNfRUwpLWxpbnV4LWdudWFiaW4zMiQoTUlQU19TT0ZUKSkgXAotLQkuLi9saWIkKGNhbGwgaWZfbXVsdGlhcmNoLDptaXBzJChNSVBTX0VMKS1saW51eC1nbnUkKE1JUFNfU09GVCkpIFwKLS0JLi4vbGliNjQkKGNhbGwgaWZfbXVsdGlhcmNoLDptaXBzNjQkKE1JUFNfRUwpLWxpbnV4LWdudWFiaTY0JChNSVBTX1NPRlQpKQotK01VTFRJTElCX0RJUk5BTUVTID0gLiAuIC4KLStNVUxUSUxJQl9PU0RJUk5BTUVTID0gLi4vJChzaGVsbCBiYXNlbmFtZSAkKGJhc2VfbGliZGlyKSkgLi4vJChzaGVsbCBiYXNlbmFtZSAkKGJhc2VfbGliZGlyKSkgLi4vJChzaGVsbCBiYXNlbmFtZSAkKGJhc2VfbGliZGlyKSkKLSsKLWRpZmYgLS1naXQgYS9nY2MvY29uZmlnL3JzNjAwMC90LWxpbnV4NjQgYi9nY2MvY29uZmlnL3JzNjAwMC90LWxpbnV4NjQKLWluZGV4IDBmYWEyYTAyZGY0Li4xM2ZkOGNhOTcxZSAxMDA2NDQKLS0tLSBhL2djYy9jb25maWcvcnM2MDAwL3QtbGludXg2NAotKysrIGIvZ2NjL2NvbmZpZy9yczYwMDAvdC1saW51eDY0Ci1AQCAtMjYsMTAgKzI2LDkgQEAKLSAjIE1VTFRJTElCX09TRElSTkFNRVMgYWNjb3JkaW5nIHRvIHdoYXQgaXMgZm91bmQgb24gdGhlIHRhcmdldC4KLSAKLSBNVUxUSUxJQl9PUFRJT05TICAgIDo9IG02NC9tMzIKLS1NVUxUSUxJQl9ESVJOQU1FUyAgIDo9IDY0IDMyCi0rTVVMVElMSUJfRElSTkFNRVMgICA6PSAuIC4KLSBNVUxUSUxJQl9FWFRSQV9PUFRTIDo9IAotLU1VTFRJTElCX09TRElSTkFNRVMgOj0gbTY0PS4uL2xpYjY0JChjYWxsIGlmX211bHRpYXJjaCw6cG93ZXJwYzY0LWxpbnV4LWdudSkKLS1NVUxUSUxJQl9PU0RJUk5BTUVTICs9IG0zMj0kKGlmICQod2lsZGNhcmQgJChzaGVsbCBlY2hvICQoU1lTVEVNX0hFQURFUl9ESVIpKS8uLi8uLi91c3IvbGliMzIpLC4uL2xpYjMyLC4uL2xpYikkKGNhbGwgaWZfbXVsdGlhcmNoLDpwb3dlcnBjLWxpbnV4LWdudSkKLStNVUxUSUxJQl9PU0RJUk5BTUVTIDo9IC4uLyQoc2hlbGwgYmFzZW5hbWUgJChiYXNlX2xpYmRpcikpIC4uLyQoc2hlbGwgYmFzZW5hbWUgJChiYXNlX2xpYmRpcikpCi0gCi0gcnM2MDAwLWxpbnV4Lm86ICQoc3JjZGlyKS9jb25maWcvcnM2MDAwL3JzNjAwMC1saW51eC5jCi0gCSQoQ09NUElMRSkgJDwKLS0tIAotMi4yMS4wCi0KZGlmZiAtLWdpdCBhL3Bva3kvbWV0YS9yZWNpcGVzLWRldnRvb2xzL2djYy9nY2MtOC4zLzAwMDUtb3B0aW9uYWwtbGlic3RkYy5wYXRjaCBiL3Bva3kvbWV0YS9yZWNpcGVzLWRldnRvb2xzL2djYy9nY2MtOC4zLzAwMDUtb3B0aW9uYWwtbGlic3RkYy5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZjljZjZjMi4uMDAwMDAwMAotLS0gYS9wb2t5L21ldGEvcmVjaXBlcy1kZXZ0b29scy9nY2MvZ2NjLTguMy8wMDA1LW9wdGlvbmFsLWxpYnN0ZGMucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwxMjUgKzAsMCBAQAotRnJvbSBiNDg2MzgwZGNjNDc1OGU4NTZhYjZkODQ3ZWIzNThkMDViZDc5ZDY0IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogS2hlbSBSYWogPHJhai5raGVtQGdtYWlsLmNvbT4KLURhdGU6IEZyaSwgMjkgTWFyIDIwMTMgMDk6MTI6NTYgKzA0MDAKLVN1YmplY3Q6IFtQQVRDSCAwNS80MF0gb3B0aW9uYWwgbGlic3RkYwotCi1nY2MtcnVudGltZSBidWlsZHMgbGlic3RkYysrIHNlcGFyYXRlbHkgZnJvbSBnY2MtY3Jvc3MtKi4gSXRzIGNvbmZpZ3VyZSB0ZXN0cyB1c2luZyBnKysKLXdpbGwgbm90IHJ1biBjb3JyZWN0bHkgc2luY2UgYnkgZGVmYXVsdCB0aGUgbGlua2VyIHdpbGwgdHJ5IHRvIGxpbmsgYWdhaW5zdCBsaWJzdGRjKysKLXdoaWNoIHNob3VsZG4ndCBleGlzdCB5ZXQuIFdlIG5lZWQgYW4gb3B0aW9uIHRvIGRpc2FibGUgLWxzdGRjKysKLW9wdGlvbiB3aGlsc3QgbGVhdmluZyAtbGMsIC1sZ2NjIGFuZCBvdGhlciBhdXRvbWF0aWMgbGlicmFyeSBkZXBlbmRlbmNpZXMgYWRkZWQgYnkgZ2NjCi1kcml2ZXIuIFRoaXMgcGF0Y2ggYWRkcyBzdWNoIGFuIG9wdGlvbiB3aGljaCBvbmx5IGRpc2FibGVzIHRoZSAtbHN0ZGMrKy4KLQotQSAic3RhbmRhcmQiIGdjYyBidWlsZCB1c2VzIHhnY2MgYW5kIGhlbmNlIGF2b2lkcyB0aGlzLiBXZSBzaG91bGQgYXNrIHVwc3RyZWFtIGhvdyB0bwotZG8gdGhpcyBvZmZpY2lhbGx5LCB0aGUgbGlrZWx5IGFuc3dlciBpcyBkb24ndCBidWlsZCBsaWJzdGRjKysgc2VwYXJhdGVseS4KLQotUlAgMjkvNi8xMAotCi1TaWduZWQtb2ZmLWJ5OiBLaGVtIFJhaiA8cmFqLmtoZW1AZ21haWwuY29tPgotCi1VcHN0cmVhbS1TdGF0dXM6IEluYXBwcm9wcmlhdGUgW2VtYmVkZGVkIHNwZWNpZmljXQotLS0tCi0gZ2NjL2MtZmFtaWx5L2Mub3B0ICB8ICA0ICsrKysKLSBnY2MvY3AvZysrc3BlYy5jICAgIHwgIDEgKwotIGdjYy9kb2MvaW52b2tlLnRleGkgfCAzMiArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLQotIGdjYy9nY2MuYyAgICAgICAgICAgfCAgMSArCi0gNCBmaWxlcyBjaGFuZ2VkLCAzNyBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCi0KLWRpZmYgLS1naXQgYS9nY2MvYy1mYW1pbHkvYy5vcHQgYi9nY2MvYy1mYW1pbHkvYy5vcHQKLWluZGV4IGY1OTFiMzliZTVhLi4yOTU1ZmNlYTg2NyAxMDA2NDQKLS0tLSBhL2djYy9jLWZhbWlseS9jLm9wdAotKysrIGIvZ2NjL2MtZmFtaWx5L2Mub3B0Ci1AQCAtMTkwMSw2ICsxOTAxLDEwIEBAIG5vc3RkaW5jKysKLSBDKysgT2JqQysrCi0gRG8gbm90IHNlYXJjaCBzdGFuZGFyZCBzeXN0ZW0gaW5jbHVkZSBkaXJlY3RvcmllcyBmb3IgQysrLgotIAotK25vc3RkbGliKysKLStEcml2ZXIKLStEbyBub3QgbGluayBzdGFuZGFyZCBDKysgcnVudGltZSBsaWJyYXJ5Ci0rCi0gbwotIEMgT2JqQyBDKysgT2JqQysrIEpvaW5lZCBTZXBhcmF0ZQotIDsgRG9jdW1lbnRlZCBpbiBjb21tb24ub3B0Ci1kaWZmIC0tZ2l0IGEvZ2NjL2NwL2crK3NwZWMuYyBiL2djYy9jcC9nKytzcGVjLmMKLWluZGV4IDQ0M2ExNzQ2ZGEzLi5lOWI1MWJlNjJlZiAxMDA2NDQKLS0tLSBhL2djYy9jcC9nKytzcGVjLmMKLSsrKyBiL2djYy9jcC9nKytzcGVjLmMKLUBAIC0xMzcsNiArMTM3LDcgQEAgbGFuZ19zcGVjaWZpY19kcml2ZXIgKHN0cnVjdCBjbF9kZWNvZGVkX29wdGlvbiAqKmluX2RlY29kZWRfb3B0aW9ucywKLSAgICAgICBzd2l0Y2ggKGRlY29kZWRfb3B0aW9uc1tpXS5vcHRfaW5kZXgpCi0gCXsKLSAJY2FzZSBPUFRfbm9zdGRsaWI6Ci0rCWNhc2UgT1BUX25vc3RkbGliX186Ci0gCWNhc2UgT1BUX25vZGVmYXVsdGxpYnM6Ci0gCSAgbGlicmFyeSA9IC0xOwotIAkgIGJyZWFrOwotZGlmZiAtLWdpdCBhL2djYy9kb2MvaW52b2tlLnRleGkgYi9nY2MvZG9jL2ludm9rZS50ZXhpCi1pbmRleCBmYjIyODYzMWE0Mi4uMzEwYmE4MTA5ZWQgMTAwNjQ0Ci0tLS0gYS9nY2MvZG9jL2ludm9rZS50ZXhpCi0rKysgYi9nY2MvZG9jL2ludm9rZS50ZXhpCi1AQCAtMjEyLDYgKzIxMiw5IEBAIGluIHRoZSBmb2xsb3dpbmcgc2VjdGlvbnMuCi0gLWZuby13ZWFrICAtbm9zdGRpbmMrKyBAZ29sCi0gLWZ2aXNpYmlsaXR5LWlubGluZXMtaGlkZGVuIEBnb2wKLSAtZnZpc2liaWxpdHktbXMtY29tcGF0IEBnb2wKLSstZnZ0YWJsZS12ZXJpZnk9QHJ7W31zdGRAcnt8fXByZWluaXRAcnt8fW5vbmVAcntdfSBAZ29sCi0rLWZ2dHYtY291bnRzIC1mdnR2LWRlYnVnIEBnb2wKLSstbm9zdGRsaWIrKyBAZ29sCi0gLWZleHQtbnVtZXJpYy1saXRlcmFscyBAZ29sCi0gLVdhYmk9QHZhcntufSAgLVdhYmktdGFnICAtV2NvbnZlcnNpb24tbnVsbCAgLVdjdG9yLWR0b3ItcHJpdmFjeSBAZ29sCi0gLVdkZWxldGUtbm9uLXZpcnR1YWwtZHRvciAgLVdsaXRlcmFsLXN1ZmZpeCAgLVdtdWx0aXBsZS1pbmhlcml0YW5jZSBAZ29sCi1AQCAtNTEwLDcgKzUxMyw3IEBAIE9iamVjdGl2ZS1DIGFuZCBPYmplY3RpdmUtQysrIERpYWxlY3RzfS4KLSAtcyAgLXN0YXRpYyAtc3RhdGljLXBpZSAtc3RhdGljLWxpYmdjYyAgLXN0YXRpYy1saWJzdGRjKysgQGdvbAotIC1zdGF0aWMtbGliYXNhbiAgLXN0YXRpYy1saWJ0c2FuICAtc3RhdGljLWxpYmxzYW4gIC1zdGF0aWMtbGlidWJzYW4gQGdvbAotIC1zdGF0aWMtbGlibXB4ICAtc3RhdGljLWxpYm1weHdyYXBwZXJzIEBnb2wKLS0tc2hhcmVkICAtc2hhcmVkLWxpYmdjYyAgLXN5bWJvbGljIEBnb2wKLSstc2hhcmVkICAtc2hhcmVkLWxpYmdjYyAgLXN5bWJvbGljIC1ub3N0ZGxpYisrIEBnb2wKLSAtVCBAdmFye3NjcmlwdH0gIC1XbCxAdmFye29wdGlvbn0gIC1YbGlua2VyIEB2YXJ7b3B0aW9ufSBAZ29sCi0gLXUgQHZhcntzeW1ib2x9ICAteiBAdmFye2tleXdvcmR9fQotIAotQEAgLTEyMzU5LDYgKzEyMzYyLDMzIEBAIGxpYnJhcnkgc3Vicm91dGluZXMuCi0gY29uc3RydWN0b3JzIGFyZSBjYWxsZWQ7IEBweHJlZntDb2xsZWN0MiwsQGNvZGV7Y29sbGVjdDJ9LCBnY2NpbnQsCi0gR05VIENvbXBpbGVyIENvbGxlY3Rpb24gKEdDQykgSW50ZXJuYWxzfS4pCi0gCi0rQGl0ZW0gLW5vc3RkbGliKysKLStAb3BpbmRleCBub3N0ZGxpYisrCi0rRG8gbm90IHVzZSB0aGUgc3RhbmRhcmQgc3lzdGVtIEMrKyBydW50aW1lIGxpYnJhcmllcyB3aGVuIGxpbmtpbmcuCi0rT25seSB0aGUgbGlicmFyaWVzIHlvdSBzcGVjaWZ5IHdpbGwgYmUgcGFzc2VkIHRvIHRoZSBsaW5rZXIuCi0rCi0rQGNpbmRleCBAb3B0aW9uey1sZ2NjfSwgdXNlIHdpdGggQG9wdGlvbnstbm9zdGRsaWJ9Ci0rQGNpbmRleCBAb3B0aW9uey1ub3N0ZGxpYn0gYW5kIHVucmVzb2x2ZWQgcmVmZXJlbmNlcwotK0BjaW5kZXggdW5yZXNvbHZlZCByZWZlcmVuY2VzIGFuZCBAb3B0aW9uey1ub3N0ZGxpYn0KLStAY2luZGV4IEBvcHRpb257LWxnY2N9LCB1c2Ugd2l0aCBAb3B0aW9uey1ub2RlZmF1bHRsaWJzfQotK0BjaW5kZXggQG9wdGlvbnstbm9kZWZhdWx0bGlic30gYW5kIHVucmVzb2x2ZWQgcmVmZXJlbmNlcwotK0BjaW5kZXggdW5yZXNvbHZlZCByZWZlcmVuY2VzIGFuZCBAb3B0aW9uey1ub2RlZmF1bHRsaWJzfQotK09uZSBvZiB0aGUgc3RhbmRhcmQgbGlicmFyaWVzIGJ5cGFzc2VkIGJ5IEBvcHRpb257LW5vc3RkbGlifSBhbmQKLStAb3B0aW9uey1ub2RlZmF1bHRsaWJzfSBpcyBAZmlsZXtsaWJnY2MuYX0sIGEgbGlicmFyeSBvZiBpbnRlcm5hbCBzdWJyb3V0aW5lcwotK3doaWNoIEdDQyB1c2VzIHRvIG92ZXJjb21lIHNob3J0Y29taW5ncyBvZiBwYXJ0aWN1bGFyIG1hY2hpbmVzLCBvciBzcGVjaWFsCi0rbmVlZHMgZm9yIHNvbWUgbGFuZ3VhZ2VzLgotKyhAeHJlZntJbnRlcmZhY2UsLEludGVyZmFjaW5nIHRvIEdDQyBPdXRwdXQsZ2NjaW50LEdOVSBDb21waWxlcgotK0NvbGxlY3Rpb24gKEdDQykgSW50ZXJuYWxzfSwKLStmb3IgbW9yZSBkaXNjdXNzaW9uIG9mIEBmaWxle2xpYmdjYy5hfS4pCi0rSW4gbW9zdCBjYXNlcywgeW91IG5lZWQgQGZpbGV7bGliZ2NjLmF9IGV2ZW4gd2hlbiB5b3Ugd2FudCB0byBhdm9pZAotK290aGVyIHN0YW5kYXJkIGxpYnJhcmllcy4gIEluIG90aGVyIHdvcmRzLCB3aGVuIHlvdSBzcGVjaWZ5IEBvcHRpb257LW5vc3RkbGlifQotK29yIEBvcHRpb257LW5vZGVmYXVsdGxpYnN9IHlvdSBzaG91bGQgdXN1YWxseSBzcGVjaWZ5IEBvcHRpb257LWxnY2N9IGFzIHdlbGwuCi0rVGhpcyBlbnN1cmVzIHRoYXQgeW91IGhhdmUgbm8gdW5yZXNvbHZlZCByZWZlcmVuY2VzIHRvIGludGVybmFsIEdDQwotK2xpYnJhcnkgc3Vicm91dGluZXMuCi0rKEFuIGV4YW1wbGUgb2Ygc3VjaCBhbiBpbnRlcm5hbCBzdWJyb3V0aW5lIGlzIEBjb2Rle19fbWFpbn0sIHVzZWQgdG8gZW5zdXJlIEMrKwotK2NvbnN0cnVjdG9ycyBhcmUgY2FsbGVkOyBAcHhyZWZ7Q29sbGVjdDIsLEBjb2Rle2NvbGxlY3QyfSwgZ2NjaW50LAotK0dOVSBDb21waWxlciBDb2xsZWN0aW9uIChHQ0MpIEludGVybmFsc30uKQotKwotIEBpdGVtIC1waWUKLSBAb3BpbmRleCBwaWUKLSBQcm9kdWNlIGEgZHluYW1pY2FsbHkgbGlua2VkIHBvc2l0aW9uIGluZGVwZW5kZW50IGV4ZWN1dGFibGUgb24gdGFyZ2V0cwotZGlmZiAtLWdpdCBhL2djYy9nY2MuYyBiL2djYy9nY2MuYwotaW5kZXggMDJiM2NkMzlmYzIuLjhjZDI3YTVkYWQ1IDEwMDY0NAotLS0tIGEvZ2NjL2djYy5jCi0rKysgYi9nY2MvZ2NjLmMKLUBAIC0xMDQ3LDYgKzEwNDcsNyBAQCBwcm9wZXIgcG9zaXRpb24gYW1vbmcgdGhlIG90aGVyIG91dHB1dCBmaWxlcy4gICovCi0gICAgICUobWZsaWIpICIgU1RBQ0tfU1BMSVRfU1BFQyAiXAotICAgICAle2Zwcm9maWxlLWFyY3N8ZnByb2ZpbGUtZ2VuZXJhdGUqfGNvdmVyYWdlOi1sZ2Nvdn0gIiBTQU5JVElaRVJfU1BFQyAiIFwKLSAgICAgJXshbm9zdGRsaWI6JXshbm9kZWZhdWx0bGliczolKGxpbmtfc3NwKSAlKGxpbmtfZ2NjX2Nfc2VxdWVuY2UpfX1cCi0rICAgICV7IW5vc3RkbGliKys6fVwKLSAgICAgJXshbm9zdGRsaWI6JXshbm9zdGFydGZpbGVzOiVFfX0gJXtUKn0gIFxuJShwb3N0X2xpbmspIH19fX19fSIKLSAjZW5kaWYKLSAKLS0tIAotMi4yMS4wCi0KZGlmZiAtLWdpdCBhL3Bva3kvbWV0YS9yZWNpcGVzLWRldnRvb2xzL2djYy9nY2MtOC4zLzAwMDctQ09MTEVDVF9HQ0NfT1BUSU9OUy5wYXRjaCBiL3Bva3kvbWV0YS9yZWNpcGVzLWRldnRvb2xzL2djYy9nY2MtOC4zLzAwMDctQ09MTEVDVF9HQ0NfT1BUSU9OUy5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOGM3ZTcyZS4uMDAwMDAwMAotLS0gYS9wb2t5L21ldGEvcmVjaXBlcy1kZXZ0b29scy9nY2MvZ2NjLTguMy8wMDA3LUNPTExFQ1RfR0NDX09QVElPTlMucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwzOCArMCwwIEBACi1Gcm9tIDIwOWU0NmY0NTM4MjA4OGNhYWI1NDQyNWI5MmI1ZGZjNDNlYmI0ZmMgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBLaGVtIFJhaiA8cmFqLmtoZW1AZ21haWwuY29tPgotRGF0ZTogRnJpLCAyOSBNYXIgMjAxMyAwOToxNjoyOCArMDQwMAotU3ViamVjdDogW1BBVENIIDA3LzQwXSBDT0xMRUNUX0dDQ19PUFRJT05TCi0KLVRoaXMgcGF0Y2ggYWRkcyAtLXN5c3Jvb3QgaW50byBDT0xMRUNUX0dDQ19PUFRJT05TIHdoaWNoIGlzIHVzZWQgdG8KLWludm9rZSBjb2xsZWN0Mi4KLQotU2lnbmVkLW9mZi1ieTogS2hlbSBSYWogPHJhai5raGVtQGdtYWlsLmNvbT4KLQotVXBzdHJlYW0tU3RhdHVzOiBQZW5kaW5nCi0tLS0KLSBnY2MvZ2NjLmMgfCA5ICsrKysrKysrKwotIDEgZmlsZSBjaGFuZ2VkLCA5IGluc2VydGlvbnMoKykKLQotZGlmZiAtLWdpdCBhL2djYy9nY2MuYyBiL2djYy9nY2MuYwotaW5kZXggOGNkMjdhNWRhZDUuLmQzNTVkNjU1ODNhIDEwMDY0NAotLS0tIGEvZ2NjL2djYy5jCi0rKysgYi9nY2MvZ2NjLmMKLUBAIC00Njc3LDYgKzQ2NzcsMTUgQEAgc2V0X2NvbGxlY3RfZ2NjX29wdGlvbnMgKHZvaWQpCi0gCQlzaXplb2YgKCJDT0xMRUNUX0dDQ19PUFRJT05TPSIpIC0gMSk7Ci0gCi0gICBmaXJzdF90aW1lID0gVFJVRTsKLSsjaWZkZWYgSEFWRV9MRF9TWVNST09UCi0rICBpZiAodGFyZ2V0X3N5c3RlbV9yb290X2NoYW5nZWQgJiYgdGFyZ2V0X3N5c3RlbV9yb290KQotKyAgICB7Ci0rICAgICAgb2JzdGFja19ncm93ICgmY29sbGVjdF9vYnN0YWNrLCAiJy0tc3lzcm9vdD0iLCBzaXplb2YoIictLXN5c3Jvb3Q9IiktMSk7Ci0rICAgICAgb2JzdGFja19ncm93ICgmY29sbGVjdF9vYnN0YWNrLCB0YXJnZXRfc3lzdGVtX3Jvb3Qsc3RybGVuKHRhcmdldF9zeXN0ZW1fcm9vdCkpOwotKyAgICAgIG9ic3RhY2tfZ3JvdyAoJmNvbGxlY3Rfb2JzdGFjaywgIiciLCAxKTsKLSsgICAgICBmaXJzdF90aW1lID0gRkFMU0U7Ci0rICAgIH0KLSsjZW5kaWYKLSAgIGZvciAoaSA9IDA7IChpbnQpIGkgPCBuX3N3aXRjaGVzOyBpKyspCi0gICAgIHsKLSAgICAgICBjb25zdCBjaGFyICpjb25zdCAqYXJnczsKLS0tIAotMi4yMS4wCi0KZGlmZiAtLWdpdCBhL3Bva3kvbWV0YS9yZWNpcGVzLWRldnRvb2xzL2djYy9nY2MtOC4zLzAwMDgtVXNlLXRoZS1kZWZhdWx0cy5oLWluLUItaW5zdGVhZC1vZi1TLWFuZC10LW9lLWluLUIucGF0Y2ggYi9wb2t5L21ldGEvcmVjaXBlcy1kZXZ0b29scy9nY2MvZ2NjLTguMy8wMDA4LVVzZS10aGUtZGVmYXVsdHMuaC1pbi1CLWluc3RlYWQtb2YtUy1hbmQtdC1vZS1pbi1CLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmOTYzMmFmLi4wMDAwMDAwCi0tLSBhL3Bva3kvbWV0YS9yZWNpcGVzLWRldnRvb2xzL2djYy9nY2MtOC4zLzAwMDgtVXNlLXRoZS1kZWZhdWx0cy5oLWluLUItaW5zdGVhZC1vZi1TLWFuZC10LW9lLWluLUIucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSw5NiArMCwwIEBACi1Gcm9tIDNiY2JkZjVhZGU1NGE3MjgyMGFkNzc5ODExOWQwYmJhZDRiYWY2ZWMgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBLaGVtIFJhaiA8cmFqLmtoZW1AZ21haWwuY29tPgotRGF0ZTogRnJpLCAyOSBNYXIgMjAxMyAwOToxNzoyNSArMDQwMAotU3ViamVjdDogW1BBVENIIDA4LzQwXSBVc2UgdGhlIGRlZmF1bHRzLmggaW4gJHtCfSBpbnN0ZWFkIG9mICR7U30sIGFuZCB0LW9lIGluCi0gJHtCfQotCi1Vc2UgdGhlIGRlZmF1bHRzLmggaW4gJHtCfSBpbnN0ZWFkIG9mICR7U30sIGFuZCB0LW9lIGluICR7Qn0sIHNvIHRoYXQKLXRoZSBzb3VyY2UgY2FuIGJlIHNoYXJlZCBiZXR3ZWVuIGdjYy1jcm9zcy1pbml0aWFsLAotZ2NjLWNyb3NzLWludGVybWVkaWF0ZSwgZ2NjLWNyb3NzLCBnY2MtcnVudGltZSwgYW5kIGFsc28gdGhlIHNkayBidWlsZC4KLQotU2lnbmVkLW9mZi1ieTogS2hlbSBSYWogPHJhai5raGVtQGdtYWlsLmNvbT4KLQotVXBzdHJlYW0tU3RhdHVzOiBQZW5kaW5nCi0KLVdoaWxlIGNvbXBpbGluZyBnY2MtY3Jvc3NzZGstaW5pdGlhbC14ODZfNjQgb24gc29tZSBob3N0LCB0aGVyZSBpcwotb2NjYXNpb25hbGx5IGZhaWx1cmUgdGhhdCB0ZXN0IHRoZSBleGlzdGFuY2Ugb2YgZGVmYXVsdC5oIGRvZXNuJ3QKLXdvcmssIHRoZSByZWFzb24gaXMgdG1faW5jbHVkZV9saXN0PScqKiBkZWZhdWx0cy5oJyByYXRoZXIgdGhhbgotdG1faW5jbHVkZV9saXN0PScqKiAuL2RlZmF1bHRzLmgnCi0KLVNvIHdlIGFkZCB0aGUgdGVzdCBjb25kaXRpb24gZm9yIHRoaXMgc2l0dWF0aW9uLgotU2lnbmVkLW9mZi1ieTogSG9uZ3h1IEppYSA8aG9uZ3h1LmppYUB3aW5kcml2ZXIuY29tPgotLS0tCi0gZ2NjL01ha2VmaWxlLmluICB8IDIgKy0KLSBnY2MvY29uZmlndXJlICAgIHwgNCArKy0tCi0gZ2NjL2NvbmZpZ3VyZS5hYyB8IDQgKystLQotIGdjYy9ta2NvbmZpZy5zaCAgfCA0ICsrLS0KLSA0IGZpbGVzIGNoYW5nZWQsIDcgaW5zZXJ0aW9ucygrKSwgNyBkZWxldGlvbnMoLSkKLQotZGlmZiAtLWdpdCBhL2djYy9NYWtlZmlsZS5pbiBiL2djYy9NYWtlZmlsZS5pbgotaW5kZXggMjBiZWUwNDk0YjEuLjEzNjcxMzZiZmFjIDEwMDY0NAotLS0tIGEvZ2NjL01ha2VmaWxlLmluCi0rKysgYi9nY2MvTWFrZWZpbGUuaW4KLUBAIC01MzgsNyArNTM4LDcgQEAgVEFSR0VUX1NZU1RFTV9ST09UID0gQFRBUkdFVF9TWVNURU1fUk9PVEAKLSBUQVJHRVRfU1lTVEVNX1JPT1RfREVGSU5FID0gQFRBUkdFVF9TWVNURU1fUk9PVF9ERUZJTkVACi0gCi0geG1ha2VfZmlsZT1AeG1ha2VfZmlsZUAKLS10bWFrZV9maWxlPUB0bWFrZV9maWxlQAotK3RtYWtlX2ZpbGU9QHRtYWtlX2ZpbGVAIC4vdC1vZQotIFRNX0VORElBTl9DT05GSUc9QFRNX0VORElBTl9DT05GSUdACi0gVE1fTVVMVElMSUJfQ09ORklHPUBUTV9NVUxUSUxJQl9DT05GSUdACi0gVE1fTVVMVElMSUJfRVhDRVBUSU9OU19DT05GSUc9QFRNX01VTFRJTElCX0VYQ0VQVElPTlNfQ09ORklHQAotZGlmZiAtLWdpdCBhL2djYy9jb25maWd1cmUgYi9nY2MvY29uZmlndXJlCi1pbmRleCAwYzliOGFjNWY1NS4uMTM0YzJjMmYxNTYgMTAwNzU1Ci0tLS0gYS9nY2MvY29uZmlndXJlCi0rKysgYi9nY2MvY29uZmlndXJlCi1AQCAtMTIxNTgsOCArMTIxNTgsOCBAQCBmb3IgZiBpbiAkdG1fZmlsZTsgZG8KLSAgICAgICAgdG1faW5jbHVkZV9saXN0PSIke3RtX2luY2x1ZGVfbGlzdH0gJGYiCi0gICAgICAgIDs7Ci0gICAgIGRlZmF1bHRzLmggKQotLSAgICAgICB0bV9maWxlX2xpc3Q9IiR7dG1fZmlsZV9saXN0fSBcJChzcmNkaXIpLyRmIgotLSAgICAgICB0bV9pbmNsdWRlX2xpc3Q9IiR7dG1faW5jbHVkZV9saXN0fSAkZiIKLSsgICAgICAgdG1fZmlsZV9saXN0PSIke3RtX2ZpbGVfbGlzdH0gLi8kZiIKLSsgICAgICAgdG1faW5jbHVkZV9saXN0PSIke3RtX2luY2x1ZGVfbGlzdH0gLi8kZiIKLSAgICAgICAgOzsKLSAgICAgKiApCi0gICAgICAgIHRtX2ZpbGVfbGlzdD0iJHt0bV9maWxlX2xpc3R9IFwkKHNyY2RpcikvY29uZmlnLyRmIgotZGlmZiAtLWdpdCBhL2djYy9jb25maWd1cmUuYWMgYi9nY2MvY29uZmlndXJlLmFjCi1pbmRleCA1Mzg0MDM2MzExNS4uMGMzYzgyZTRmZjcgMTAwNjQ0Ci0tLS0gYS9nY2MvY29uZmlndXJlLmFjCi0rKysgYi9nY2MvY29uZmlndXJlLmFjCi1AQCAtMTkyMiw4ICsxOTIyLDggQEAgZm9yIGYgaW4gJHRtX2ZpbGU7IGRvCi0gICAgICAgIHRtX2luY2x1ZGVfbGlzdD0iJHt0bV9pbmNsdWRlX2xpc3R9ICRmIgotICAgICAgICA7OwotICAgICBkZWZhdWx0cy5oICkKLS0gICAgICAgdG1fZmlsZV9saXN0PSIke3RtX2ZpbGVfbGlzdH0gXCQoc3JjZGlyKS8kZiIKLS0gICAgICAgdG1faW5jbHVkZV9saXN0PSIke3RtX2luY2x1ZGVfbGlzdH0gJGYiCi0rICAgICAgIHRtX2ZpbGVfbGlzdD0iJHt0bV9maWxlX2xpc3R9IC4vJGYiCi0rICAgICAgIHRtX2luY2x1ZGVfbGlzdD0iJHt0bV9pbmNsdWRlX2xpc3R9IC4vJGYiCi0gICAgICAgIDs7Ci0gICAgICogKQotICAgICAgICB0bV9maWxlX2xpc3Q9IiR7dG1fZmlsZV9saXN0fSBcJChzcmNkaXIpL2NvbmZpZy8kZiIKLWRpZmYgLS1naXQgYS9nY2MvbWtjb25maWcuc2ggYi9nY2MvbWtjb25maWcuc2gKLWluZGV4IDBmNzVjODYzYzBiLi42OGQ4ZDY2MTNjZiAxMDA2NDQKLS0tLSBhL2djYy9ta2NvbmZpZy5zaAotKysrIGIvZ2NjL21rY29uZmlnLnNoCi1AQCAtNzcsNyArNzcsNyBAQCBpZiBbIC1uICIkSEVBREVSUyIgXTsgdGhlbgotICAgICBpZiBbICQjIC1nZSAxIF07IHRoZW4KLSAJZWNobyAnI2lmZGVmIElOX0dDQycgPj4gJHtvdXRwdXR9VAotIAlmb3IgZmlsZSBpbiAiJEAiOyBkbwotLQkgICAgaWYgdGVzdCB4IiRmaWxlIiA9IHgiZGVmYXVsdHMuaCI7IHRoZW4KLSsJICAgIGlmIHRlc3QgeCIkZmlsZSIgPSB4Ii4vZGVmYXVsdHMuaCIgLW8geCIkZmlsZSIgPSB4ImRlZmF1bHRzLmgiOyB0aGVuCi0gCQlwb3N0cG9uZV9kZWZhdWx0c19oPSJ5ZXMiCi0gCSAgICBlbHNlCi0gCQllY2hvICIjIGluY2x1ZGUgXCIkZmlsZVwiIiA+PiAke291dHB1dH1UCi1AQCAtMTA2LDcgKzEwNiw3IEBAIGVzYWMKLSAKLSAjIElmIHdlIHBvc3Rwb25lZCBpbmNsdWRpbmcgZGVmYXVsdHMuaCwgYWRkIHRoZSAjaW5jbHVkZSBub3cuCi0gaWYgdGVzdCB4IiRwb3N0cG9uZV9kZWZhdWx0c19oIiA9IHgieWVzIjsgdGhlbgotLSAgICBlY2hvICIjIGluY2x1ZGUgXCJkZWZhdWx0cy5oXCIiID4+ICR7b3V0cHV0fVQKLSsgICAgZWNobyAiIyBpbmNsdWRlIFwiLi9kZWZhdWx0cy5oXCIiID4+ICR7b3V0cHV0fVQKLSBmaQotIAotICMgQWRkIG11bHRpcGxlIGluY2x1c2lvbiBwcm90ZWN0aW9uIGd1YXJkLCBwYXJ0IHR3by4KLS0tIAotMi4yMS4wCi0KZGlmZiAtLWdpdCBhL3Bva3kvbWV0YS9yZWNpcGVzLWRldnRvb2xzL2djYy9nY2MtOC4zLzAwMDktZm9ydHJhbi1jcm9zcy1jb21waWxlLWhhY2sucGF0Y2ggYi9wb2t5L21ldGEvcmVjaXBlcy1kZXZ0b29scy9nY2MvZ2NjLTguMy8wMDA5LWZvcnRyYW4tY3Jvc3MtY29tcGlsZS1oYWNrLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1MGQ4OTViLi4wMDAwMDAwCi0tLSBhL3Bva3kvbWV0YS9yZWNpcGVzLWRldnRvb2xzL2djYy9nY2MtOC4zLzAwMDktZm9ydHJhbi1jcm9zcy1jb21waWxlLWhhY2sucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSw0NiArMCwwIEBACi1Gcm9tIGU2NTQ1NzMzNTJkMjhmMTYwZjM3OWVlNzdlNDA2N2NmMTA4NzE0ZDAgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBLaGVtIFJhaiA8cmFqLmtoZW1AZ21haWwuY29tPgotRGF0ZTogRnJpLCAyOSBNYXIgMjAxMyAwOToyMDowMSArMDQwMAotU3ViamVjdDogW1BBVENIIDA5LzQwXSBmb3J0cmFuIGNyb3NzLWNvbXBpbGUgaGFjay4KLQotKiBGb3J0cmFuIHdvdWxkIGhhdmUgc2VhcmNoZWQgZm9yIGFybS1hbmdzdHJvbS1nbnVlYWJpLWdmb3J0cmFuIGJ1dCB3b3VsZCBoYXZlIHVzZWQKLXVzZWQgZ2ZvcnRhbi4gRm9yIGdjY180LjIuMi5iYiB3ZSB3YW50IHRvIHVzZSB0aGUgZ2ZvcnRyYW4gY29tcGlsZXIgZnJvbSBvdXIgY3Jvc3MKLWRpcmVjdG9yeS4KLQotU2lnbmVkLW9mZi1ieTogS2hlbSBSYWogPHJhai5raGVtQGdtYWlsLmNvbT4KLQotVXBzdHJlYW0tU3RhdHVzOiBJbmFwcHJvcHJpYXRlIFtlbWJlZGRlZCBzcGVjaWZpY10KLS0tLQotIGxpYmdmb3J0cmFuL2NvbmZpZ3VyZSAgICB8IDIgKy0KLSBsaWJnZm9ydHJhbi9jb25maWd1cmUuYWMgfCAyICstCi0gMiBmaWxlcyBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCi0KLWRpZmYgLS1naXQgYS9saWJnZm9ydHJhbi9jb25maWd1cmUgYi9saWJnZm9ydHJhbi9jb25maWd1cmUKLWluZGV4IDkxZmNlOGZlY2QwLi42NzQ3Zjg2ZWI5OCAxMDA3NTUKLS0tLSBhL2xpYmdmb3J0cmFuL2NvbmZpZ3VyZQotKysrIGIvbGliZ2ZvcnRyYW4vY29uZmlndXJlCi1AQCAtMTI4ODMsNyArMTI4ODMsNyBAQCBlc2FjCi0gCi0gIyBXZSBuZWVkIGdmb3J0cmFuIHRvIGNvbXBpbGUgcGFydHMgb2YgdGhlIGxpYnJhcnkKLSAjQUNfUFJPR19GQyhnZm9ydHJhbikKLS1GQz0iJEdGT1JUUkFOIgotKyNGQz0iJEdGT1JUUkFOIgotIGFjX2V4dD0ke2FjX2ZjX3NyY2V4dC1mfQotIGFjX2NvbXBpbGU9JyRGQyAtYyAkRkNGTEFHUyAkYWNfZmNmbGFnc19zcmNleHQgY29uZnRlc3QuJGFjX2V4dCA+JjUnCi0gYWNfbGluaz0nJEZDIC1vIGNvbmZ0ZXN0JGFjX2V4ZWV4dCAkRkNGTEFHUyAkTERGTEFHUyAkYWNfZmNmbGFnc19zcmNleHQgY29uZnRlc3QuJGFjX2V4dCAkTElCUyA+JjUnCi1kaWZmIC0tZ2l0IGEvbGliZ2ZvcnRyYW4vY29uZmlndXJlLmFjIGIvbGliZ2ZvcnRyYW4vY29uZmlndXJlLmFjCi1pbmRleCBiZjZkMzYzNGRkYS4uOWRiZTQzY2M2MTYgMTAwNjQ0Ci0tLS0gYS9saWJnZm9ydHJhbi9jb25maWd1cmUuYWMKLSsrKyBiL2xpYmdmb3J0cmFuL2NvbmZpZ3VyZS5hYwotQEAgLTI1MCw3ICsyNTAsNyBAQCBBQ19TVUJTVChlbmFibGVfc3RhdGljKQotIAotICMgV2UgbmVlZCBnZm9ydHJhbiB0byBjb21waWxlIHBhcnRzIG9mIHRoZSBsaWJyYXJ5Ci0gI0FDX1BST0dfRkMoZ2ZvcnRyYW4pCi0tRkM9IiRHRk9SVFJBTiIKLSsjRkM9IiRHRk9SVFJBTiIKLSBBQ19QUk9HX0ZDKGdmb3J0cmFuKQotIAotICMgZXh0cmEgTEQgRmxhZ3Mgd2hpY2ggYXJlIHJlcXVpcmVkIGZvciB0YXJnZXRzCi0tLSAKLTIuMjEuMAotCmRpZmYgLS1naXQgYS9wb2t5L21ldGEvcmVjaXBlcy1kZXZ0b29scy9nY2MvZ2NjLTguMy8wMDEwLWNwcC1ob25vci1zeXNyb290LnBhdGNoIGIvcG9reS9tZXRhL3JlY2lwZXMtZGV2dG9vbHMvZ2NjL2djYy04LjMvMDAxMC1jcHAtaG9ub3Itc3lzcm9vdC5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDM3ZWFjZi4uMDAwMDAwMAotLS0gYS9wb2t5L21ldGEvcmVjaXBlcy1kZXZ0b29scy9nY2MvZ2NjLTguMy8wMDEwLWNwcC1ob25vci1zeXNyb290LnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsNTQgKzAsMCBAQAotRnJvbSAyYWU3YWY0ZWI3MGVmZjZhZWRhMWZlOTYzMzNmZjUwY2ZhYTlkOTA2IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogS2hlbSBSYWogPHJhai5raGVtQGdtYWlsLmNvbT4KLURhdGU6IEZyaSwgMjkgTWFyIDIwMTMgMDk6MjI6MDAgKzA0MDAKLVN1YmplY3Q6IFtQQVRDSCAxMC80MF0gY3BwOiBob25vciBzeXNyb290LgotCi1DdXJyZW50bHksIGlmIHRoZSBnY2MgdG9vbGNoYWluIGlzIHJlbG9jYXRlZCBhbmQgaW5zdGFsbGVkIGZyb20gc3N0YXRlLCB0aGVuIHlvdSB0cnkgYW5kIGNvbXBpbGUKLXByZXByb2Nlc3NlZCBzb3VyY2UgKC5pIG9yIC5paSBmaWxlcyksIHRoZSBjb21waWxlciB3aWxsIHRyeSBhbmQgYWNjZXNzIHRoZSBidWlsdGluIHN5c3Jvb3QgbG9jYXRpb24KLXJhdGhlciB0aGFuIHRoZSAtLXN5c3Jvb3Qgb3B0aW9uIHNwZWNpZmllZCBvbiB0aGUgY29tbWFuZGxpbmUuIElmIGFjY2VzcyB0byB0aGF0IGRpcmVjdG9yeSBpcwotcGVybWlzc2lvbiBkZW5pZWQgKHVucmVhZGFibGUpLCBnY2Mgd2lsbCBlcnJvci4KLQotVGhpcyBoYXBwZW5zIHdoZW4gY2NhY2hlIGlzIGluIHVzZSBkdWUgdG8gdGhlIGZhY3QgaXQgdXNlcyBwcmVwcm9jZXNzZWQgc291cmNlIGZpbGVzLgotCi1UaGUgZml4IGJlbG93IGFkZHMgJUkgdG8gdGhlIGNwcC1vdXRwdXQgc3BlYyBtYWNybyBzbyB0aGUgZGVmYXVsdCBzdWJzdGl0dXRpb25zIGZvciAtaXByZWZpeCwKLS1pc3lzdGVtLCAtaXN5c3Jvb3QgaGFwcGVuIGFuZCB0aGUgY29ycmVjdCBzeXNyb290IGlzIHVzZWQuCi0KLVtZT0NUTyAjMjA3NF0KLQotUlAgMjAxMi8wNC8xMwotCi1TaWduZWQtb2ZmLWJ5OiBLaGVtIFJhaiA8cmFqLmtoZW1AZ21haWwuY29tPgotCi1VcHN0cmVhbS1TdGF0dXM6IFBlbmRpbmcKLS0tLQotIGdjYy9jcC9sYW5nLXNwZWNzLmggfCAyICstCi0gZ2NjL2djYy5jICAgICAgICAgICB8IDIgKy0KLSAyIGZpbGVzIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKLQotZGlmZiAtLWdpdCBhL2djYy9jcC9sYW5nLXNwZWNzLmggYi9nY2MvY3AvbGFuZy1zcGVjcy5oCi1pbmRleCBmMDgwMmI4OTE1Yy4uZjMyNGQyOTk4NDkgMTAwNjQ0Ci0tLS0gYS9nY2MvY3AvbGFuZy1zcGVjcy5oCi0rKysgYi9nY2MvY3AvbGFuZy1zcGVjcy5oCi1AQCAtNjQsNSArNjQsNSBAQCBhbG9uZyB3aXRoIEdDQzsgc2VlIHRoZSBmaWxlIENPUFlJTkczLiAgSWYgbm90IHNlZQotICAgeyIuaWkiLCAiQGMrKy1jcHAtb3V0cHV0IiwgMCwgMCwgMH0sCi0gICB7IkBjKystY3BwLW91dHB1dCIsCi0gICAgIiV7IU06JXshTU06JXshRTpcCi0tICAgIGNjMXBsdXMgLWZwcmVwcm9jZXNzZWQgJWkgJShjYzFfb3B0aW9ucykgJTJcCi0rICAgIGNjMXBsdXMgLWZwcmVwcm9jZXNzZWQgJWkgJUkgJShjYzFfb3B0aW9ucykgJTJcCi0gICAgICV7IWZzeW50YXgtb25seTolKGludm9rZV9hcyl9fX19IiwgMCwgMCwgMH0sCi1kaWZmIC0tZ2l0IGEvZ2NjL2djYy5jIGIvZ2NjL2djYy5jCi1pbmRleCBkMzU1ZDY1NTgzYS4uNTcwY2RjMDAwMzQgMTAwNjQ0Ci0tLS0gYS9nY2MvZ2NjLmMKLSsrKyBiL2djYy9nY2MuYwotQEAgLTEzNDMsNyArMTM0Myw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgY29tcGlsZXIgZGVmYXVsdF9jb21waWxlcnNbXSA9Ci0gCQkJCQkgICAlV3tvKjotLW91dHB1dC1wY2g9JSp9fSVWfX19fX19fSIsIDAsIDAsIDB9LAotICAgeyIuaSIsICJAY3BwLW91dHB1dCIsIDAsIDAsIDB9LAotICAgeyJAY3BwLW91dHB1dCIsCi0tICAgIiV7IU06JXshTU06JXshRTpjYzEgLWZwcmVwcm9jZXNzZWQgJWkgJShjYzFfb3B0aW9ucykgJXshZnN5bnRheC1vbmx5OiUoaW52b2tlX2FzKX19fX0iLCAwLCAwLCAwfSwKLSsgICAiJXshTToleyFNTToleyFFOmNjMSAtZnByZXByb2Nlc3NlZCAlaSAlSSAlKGNjMV9vcHRpb25zKSAleyFmc3ludGF4LW9ubHk6JShpbnZva2VfYXMpfX19fSIsIDAsIDAsIDB9LAotICAgeyIucyIsICJAYXNzZW1ibGVyIiwgMCwgMCwgMH0sCi0gICB7IkBhc3NlbWJsZXIiLAotICAgICIleyFNOiV7IU1NOiV7IUU6JXshUzphcyAlKGFzbV9kZWJ1ZykgJShhc21fb3B0aW9ucykgJWkgJUEgfX19fSIsIDAsIDAsIDB9LAotLS0gCi0yLjIxLjAKLQpkaWZmIC0tZ2l0IGEvcG9reS9tZXRhL3JlY2lwZXMtZGV2dG9vbHMvZ2NjL2djYy04LjMvMDAxMS1NSVBTNjQtRGVmYXVsdC10by1ONjQtQUJJLnBhdGNoIGIvcG9reS9tZXRhL3JlY2lwZXMtZGV2dG9vbHMvZ2NjL2djYy04LjMvMDAxMS1NSVBTNjQtRGVmYXVsdC10by1ONjQtQUJJLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjODYzY2ZmLi4wMDAwMDAwCi0tLSBhL3Bva3kvbWV0YS9yZWNpcGVzLWRldnRvb2xzL2djYy9nY2MtOC4zLzAwMTEtTUlQUzY0LURlZmF1bHQtdG8tTjY0LUFCSS5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDU3ICswLDAgQEAKLUZyb20gMWUxZWEwZWI1NWE1OTRhYzRjZDdiODM4Zjc0ZGVjNzQwNWFhZTAyYiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IEtoZW0gUmFqIDxyYWoua2hlbUBnbWFpbC5jb20+Ci1EYXRlOiBGcmksIDI5IE1hciAyMDEzIDA5OjIzOjA4ICswNDAwCi1TdWJqZWN0OiBbUEFUQ0ggMTEvNDBdIE1JUFM2NDogRGVmYXVsdCB0byBONjQgQUJJCi0KLU1JUFM2NCBkZWZhdWx0cyB0byBuMzIgQUJJLCB0aGlzIHBhdGNoIG1ha2VzIGl0Ci1zbyB0aGF0IGl0IGRlZmF1bHRzIHRvIE42NCBBQkkKLQotU2lnbmVkLW9mZi1ieTogS2hlbSBSYWogPHJhai5raGVtQGdtYWlsLmNvbT4KLQotVXBzdHJlYW0tU3RhdHVzOiBJbmFwcHJvcHJpYXRlIFtPRSBjb25maWcgc3BlY2lmaWNdCi0tLS0KLSBnY2MvY29uZmlnLmdjYyB8IDEwICsrKysrLS0tLS0KLSAxIGZpbGUgY2hhbmdlZCwgNSBpbnNlcnRpb25zKCspLCA1IGRlbGV0aW9ucygtKQotCi1kaWZmIC0tZ2l0IGEvZ2NjL2NvbmZpZy5nY2MgYi9nY2MvY29uZmlnLmdjYwotaW5kZXggN2FmOGUwMjgxMDQuLmZjN2M5MTI0NmVkIDEwMDY0NAotLS0tIGEvZ2NjL2NvbmZpZy5nY2MKLSsrKyBiL2djYy9jb25maWcuZ2NjCi1AQCAtMjE0MywyOSArMjE0MywyOSBAQCBtaXBzKi0qLWxpbnV4KikJCQkJIyBMaW51eCBNSVBTLCBlaXRoZXIgZW5kaWFuLgotIAkJCWRlZmF1bHRfbWlwc19hcmNoPW1pcHMzMgotIAkJCTs7Ci0gCQltaXBzNjRlbC1zdC1saW51eC1nbnUpCi0tCQkJZGVmYXVsdF9taXBzX2FiaT1uMzIKLSsJCQlkZWZhdWx0X21pcHNfYWJpPTY0Ci0gCQkJdG1fZmlsZT0iJHt0bV9maWxlfSBtaXBzL3N0LmgiCi0gCQkJdG1ha2VfZmlsZT0iJHt0bWFrZV9maWxlfSBtaXBzL3Qtc3QiCi0gCQkJZW5hYmxlX21pcHNfbXVsdGlsaWJzPSJ5ZXMiCi0gCQkJOzsKLSAJCW1pcHM2NG9jdGVvbiotKi1saW51eCopCi0tCQkJZGVmYXVsdF9taXBzX2FiaT1uMzIKLSsJCQlkZWZhdWx0X21pcHNfYWJpPTY0Ci0gCQkJdG1fZGVmaW5lcz0iJHt0bV9kZWZpbmVzfSBNSVBTX0NQVV9TVFJJTkdfREVGQVVMVD1cXFwib2N0ZW9uXFxcIiIKLSAJCQl0YXJnZXRfY3B1X2RlZmF1bHQ9TUFTS19TT0ZUX0ZMT0FUX0FCSQotIAkJCWVuYWJsZV9taXBzX211bHRpbGlicz0ieWVzIgotIAkJCTs7Ci0gCQltaXBzaXNhNjRyNiotKi1saW51eCopCi0tCQkJZGVmYXVsdF9taXBzX2FiaT1uMzIKLSsJCQlkZWZhdWx0X21pcHNfYWJpPTY0Ci0gCQkJZGVmYXVsdF9taXBzX2FyY2g9bWlwczY0cjYKLSAJCQllbmFibGVfbWlwc19tdWx0aWxpYnM9InllcyIKLSAJCQk7OwotIAkJbWlwc2lzYTY0cjIqLSotbGludXgqKQotLQkJCWRlZmF1bHRfbWlwc19hYmk9bjMyCi0rCQkJZGVmYXVsdF9taXBzX2FiaT02NAotIAkJCWRlZmF1bHRfbWlwc19hcmNoPW1pcHM2NHIyCi0gCQkJZW5hYmxlX21pcHNfbXVsdGlsaWJzPSJ5ZXMiCi0gCQkJOzsKLSAJCW1pcHM2NCotKi1saW51eCogfCBtaXBzaXNhNjQqLSotbGludXgqKQotLQkJCWRlZmF1bHRfbWlwc19hYmk9bjMyCi0rCQkJZGVmYXVsdF9taXBzX2FiaT02NAotIAkJCWVuYWJsZV9taXBzX211bHRpbGlicz0ieWVzIgotIAkJCTs7Ci0gCWVzYWMKLS0tIAotMi4yMS4wCi0KZGlmZiAtLWdpdCBhL3Bva3kvbWV0YS9yZWNpcGVzLWRldnRvb2xzL2djYy9nY2MtOC4zLzAwMTItRGVmaW5lLUdMSUJDX0RZTkFNSUNfTElOS0VSLWFuZC1VQ0xJQkNfRFlOQU1JQ19MSU5LRS5wYXRjaCBiL3Bva3kvbWV0YS9yZWNpcGVzLWRldnRvb2xzL2djYy9nY2MtOC4zLzAwMTItRGVmaW5lLUdMSUJDX0RZTkFNSUNfTElOS0VSLWFuZC1VQ0xJQkNfRFlOQU1JQ19MSU5LRS5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZDNiZTEwZi4uMDAwMDAwMAotLS0gYS9wb2t5L21ldGEvcmVjaXBlcy1kZXZ0b29scy9nY2MvZ2NjLTguMy8wMDEyLURlZmluZS1HTElCQ19EWU5BTUlDX0xJTktFUi1hbmQtVUNMSUJDX0RZTkFNSUNfTElOS0UucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwyNDggKzAsMCBAQAotRnJvbSA2Zjg2NDk5MzZkZjM2NzcxMDliODM5NmY1NjNjNzE2YWU4YjIzN2ZlIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogS2hlbSBSYWogPHJhai5raGVtQGdtYWlsLmNvbT4KLURhdGU6IEZyaSwgMjkgTWFyIDIwMTMgMDk6MjQ6NTAgKzA0MDAKLVN1YmplY3Q6IFtQQVRDSCAxMi80MF0gRGVmaW5lIEdMSUJDX0RZTkFNSUNfTElOS0VSIGFuZCBVQ0xJQkNfRFlOQU1JQ19MSU5LRVIKLSByZWxhdGl2ZSB0byBTWVNURU1MSUJTX0RJUgotCi1UaGlzIHBhdGNoIGRlZmluZXMgR0xJQkNfRFlOQU1JQ19MSU5LRVIgYW5kIFVDTElCQ19EWU5BTUlDX0xJTktFUgotcmVsYXRpdmUgdG8gU1lTVEVNTElCU19ESVIgd2hpY2ggY2FuIGJlIHNldCBpbiBnZW5lcmF0ZWQgaGVhZGVycwotVGhpcyBicmVha3MgdGhlIGFzc3VtcHRpb24gb2YgaGFyZGNvZGVkIG11bHRpbGliIGluIGdjYwotQ2hhbmdlIGlzIG9ubHkgZm9yIHRoZSBzdXBwb3J0ZWQgYXJjaGl0ZWN0dXJlcyBpbiBPRSBpbmNsdWRpbmcKLVNILCBzcGFyYywgYWxwaGEgZm9yIHBvc3NpYmxlIGZ1dHVyZSBzdXBwb3J0IChpZiBhbnkpCi0KLVJlbW92ZXMgdGhlIGRvX2hlYWRlcmZpeCB0YXNrIGluIG1ldGFkYXRhCi0KLVNpZ25lZC1vZmYtYnk6IEtoZW0gUmFqIDxyYWoua2hlbUBnbWFpbC5jb20+Ci0KLVVwc3RyZWFtLVN0YXR1czogSW5hcHByb3ByaWF0ZSBbT0UgY29uZmlndXJhdGlvbl0KLS0tLQotIGdjYy9jb25maWcvYWxwaGEvbGludXgtZWxmLmggfCAgNCArKy0tCi0gZ2NjL2NvbmZpZy9hcm0vbGludXgtZWFiaS5oICB8ICA0ICsrLS0KLSBnY2MvY29uZmlnL2FybS9saW51eC1lbGYuaCAgIHwgIDIgKy0KLSBnY2MvY29uZmlnL2kzODYvbGludXguaCAgICAgIHwgIDIgKy0KLSBnY2MvY29uZmlnL2kzODYvbGludXg2NC5oICAgIHwgIDYgKysrLS0tCi0gZ2NjL2NvbmZpZy9saW51eC5oICAgICAgICAgICB8ICA4ICsrKystLS0tCi0gZ2NjL2NvbmZpZy9taXBzL2xpbnV4LmggICAgICB8IDEyICsrKysrKy0tLS0tLQotIGdjYy9jb25maWcvcmlzY3YvbGludXguaCAgICAgfCAgMiArLQotIGdjYy9jb25maWcvcnM2MDAwL2xpbnV4NjQuaCAgfCAxNiArKysrKystLS0tLS0tLS0tCi0gZ2NjL2NvbmZpZy9zaC9saW51eC5oICAgICAgICB8ICAyICstCi0gZ2NjL2NvbmZpZy9zcGFyYy9saW51eC5oICAgICB8ICAyICstCi0gZ2NjL2NvbmZpZy9zcGFyYy9saW51eDY0LmggICB8ICA0ICsrLS0KLSAxMiBmaWxlcyBjaGFuZ2VkLCAzMCBpbnNlcnRpb25zKCspLCAzNCBkZWxldGlvbnMoLSkKLQotZGlmZiAtLWdpdCBhL2djYy9jb25maWcvYWxwaGEvbGludXgtZWxmLmggYi9nY2MvY29uZmlnL2FscGhhL2xpbnV4LWVsZi5oCi1pbmRleCAzNmI3NGRjMTk5My4uMDIzNzM1NzhhZjggMTAwNjQ0Ci0tLS0gYS9nY2MvY29uZmlnL2FscGhhL2xpbnV4LWVsZi5oCi0rKysgYi9nY2MvY29uZmlnL2FscGhhL2xpbnV4LWVsZi5oCi1AQCAtMjMsOCArMjMsOCBAQCBhbG9uZyB3aXRoIEdDQzsgc2VlIHRoZSBmaWxlIENPUFlJTkczLiAgSWYgbm90IHNlZQotICNkZWZpbmUgRVhUUkFfU1BFQ1MgXAotIHsgImVsZl9keW5hbWljX2xpbmtlciIsIEVMRl9EWU5BTUlDX0xJTktFUiB9LAotIAotLSNkZWZpbmUgR0xJQkNfRFlOQU1JQ19MSU5LRVIJIi9saWIvbGQtbGludXguc28uMiIKLS0jZGVmaW5lIFVDTElCQ19EWU5BTUlDX0xJTktFUiAiL2xpYi9sZC11Q2xpYmMuc28uMCIKLSsjZGVmaW5lIEdMSUJDX0RZTkFNSUNfTElOS0VSCVNZU1RFTUxJQlNfRElSICJsZC1saW51eC5zby4yIgotKyNkZWZpbmUgVUNMSUJDX0RZTkFNSUNfTElOS0VSICBTWVNURU1MSUJTX0RJUiAibGQtdUNsaWJjLnNvLjAiCi0gI2lmIERFRkFVTFRfTElCQyA9PSBMSUJDX1VDTElCQwotICNkZWZpbmUgQ0hPT1NFX0RZTkFNSUNfTElOS0VSKEcsIFUpICIle21nbGliYzoiIEcgIjs6IiBVICJ9IgotICNlbGlmIERFRkFVTFRfTElCQyA9PSBMSUJDX0dMSUJDCi1kaWZmIC0tZ2l0IGEvZ2NjL2NvbmZpZy9hcm0vbGludXgtZWFiaS5oIGIvZ2NjL2NvbmZpZy9hcm0vbGludXgtZWFiaS5oCi1pbmRleCA4NTg1ZmRlM2Q0MS4uYjNhZjY4Y2FjNTcgMTAwNjQ0Ci0tLS0gYS9nY2MvY29uZmlnL2FybS9saW51eC1lYWJpLmgKLSsrKyBiL2djYy9jb25maWcvYXJtL2xpbnV4LWVhYmkuaAotQEAgLTYyLDggKzYyLDggQEAKLSAgICBHTElCQ19EWU5BTUlDX0xJTktFUl9ERUZBVUxUIGFuZCBUQVJHRVRfREVGQVVMVF9GTE9BVF9BQkkuICAqLwotIAotICN1bmRlZiAgR0xJQkNfRFlOQU1JQ19MSU5LRVIKLS0jZGVmaW5lIEdMSUJDX0RZTkFNSUNfTElOS0VSX1NPRlRfRkxPQVQgIi9saWIvbGQtbGludXguc28uMyIKLS0jZGVmaW5lIEdMSUJDX0RZTkFNSUNfTElOS0VSX0hBUkRfRkxPQVQgIi9saWIvbGQtbGludXgtYXJtaGYuc28uMyIKLSsjZGVmaW5lIEdMSUJDX0RZTkFNSUNfTElOS0VSX1NPRlRfRkxPQVQgU1lTVEVNTElCU19ESVIgImxkLWxpbnV4LnNvLjMiCi0rI2RlZmluZSBHTElCQ19EWU5BTUlDX0xJTktFUl9IQVJEX0ZMT0FUIFNZU1RFTUxJQlNfRElSICJsZC1saW51eC1hcm1oZi5zby4zIgotICNkZWZpbmUgR0xJQkNfRFlOQU1JQ19MSU5LRVJfREVGQVVMVCBHTElCQ19EWU5BTUlDX0xJTktFUl9TT0ZUX0ZMT0FUCi0gCi0gI2RlZmluZSBHTElCQ19EWU5BTUlDX0xJTktFUiBcCi1kaWZmIC0tZ2l0IGEvZ2NjL2NvbmZpZy9hcm0vbGludXgtZWxmLmggYi9nY2MvY29uZmlnL2FybS9saW51eC1lbGYuaAotaW5kZXggY2ZjZDljYjFhNWMuLmE3OThlOTg3ZWNiIDEwMDY0NAotLS0tIGEvZ2NjL2NvbmZpZy9hcm0vbGludXgtZWxmLmgKLSsrKyBiL2djYy9jb25maWcvYXJtL2xpbnV4LWVsZi5oCi1AQCAtNjAsNyArNjAsNyBAQAotIAotICNkZWZpbmUgTElCR0NDX1NQRUMgIiV7bWZsb2F0LWFiaT1zb2Z0KjotbGZsb2F0fSAtbGdjYyIKLSAKLS0jZGVmaW5lIEdMSUJDX0RZTkFNSUNfTElOS0VSICIvbGliL2xkLWxpbnV4LnNvLjIiCi0rI2RlZmluZSBHTElCQ19EWU5BTUlDX0xJTktFUiBTWVNURU1MSUJTX0RJUiAibGQtbGludXguc28uMiIKLSAKLSAjZGVmaW5lIExJTlVYX1RBUkdFVF9MSU5LX1NQRUMgICIle2gqfSBcCi0gICAgJXtzdGF0aWM6LUJzdGF0aWN9IFwKLWRpZmYgLS1naXQgYS9nY2MvY29uZmlnL2kzODYvbGludXguaCBiL2djYy9jb25maWcvaTM4Ni9saW51eC5oCi1pbmRleCA2OWY5N2YxNWIwZC4uNzFiYzMxZDkyMzEgMTAwNjQ0Ci0tLS0gYS9nY2MvY29uZmlnL2kzODYvbGludXguaAotKysrIGIvZ2NjL2NvbmZpZy9pMzg2L2xpbnV4LmgKLUBAIC0yMCw3ICsyMCw3IEBAIGFsb25nIHdpdGggR0NDOyBzZWUgdGhlIGZpbGUgQ09QWUlORzMuICBJZiBub3Qgc2VlCi0gPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LiAgKi8KLSAKLSAjZGVmaW5lIEdOVV9VU0VSX0xJTktfRU1VTEFUSU9OICJlbGZfaTM4NiIKLS0jZGVmaW5lIEdMSUJDX0RZTkFNSUNfTElOS0VSICIvbGliL2xkLWxpbnV4LnNvLjIiCi0rI2RlZmluZSBHTElCQ19EWU5BTUlDX0xJTktFUiBTWVNURU1MSUJTX0RJUiAibGQtbGludXguc28uMiIKLSAKLSAjdW5kZWYgTVVTTF9EWU5BTUlDX0xJTktFUgotICNkZWZpbmUgTVVTTF9EWU5BTUlDX0xJTktFUiAiL2xpYi9sZC1tdXNsLWkzODYuc28uMSIKLWRpZmYgLS1naXQgYS9nY2MvY29uZmlnL2kzODYvbGludXg2NC5oIGIvZ2NjL2NvbmZpZy9pMzg2L2xpbnV4NjQuaAotaW5kZXggZjJkOTEzZTMwYWMuLjg3MjVmMzNkOGE1IDEwMDY0NAotLS0tIGEvZ2NjL2NvbmZpZy9pMzg2L2xpbnV4NjQuaAotKysrIGIvZ2NjL2NvbmZpZy9pMzg2L2xpbnV4NjQuaAotQEAgLTI3LDkgKzI3LDkgQEAgc2VlIHRoZSBmaWxlcyBDT1BZSU5HMyBhbmQgQ09QWUlORy5SVU5USU1FIHJlc3BlY3RpdmVseS4gIElmIG5vdCwgc2VlCi0gI2RlZmluZSBHTlVfVVNFUl9MSU5LX0VNVUxBVElPTjY0ICJlbGZfeDg2XzY0IgotICNkZWZpbmUgR05VX1VTRVJfTElOS19FTVVMQVRJT05YMzIgImVsZjMyX3g4Nl82NCIKLSAKLS0jZGVmaW5lIEdMSUJDX0RZTkFNSUNfTElOS0VSMzIgIi9saWIvbGQtbGludXguc28uMiIKLS0jZGVmaW5lIEdMSUJDX0RZTkFNSUNfTElOS0VSNjQgIi9saWI2NC9sZC1saW51eC14ODYtNjQuc28uMiIKLS0jZGVmaW5lIEdMSUJDX0RZTkFNSUNfTElOS0VSWDMyICIvbGlieDMyL2xkLWxpbnV4LXgzMi5zby4yIgotKyNkZWZpbmUgR0xJQkNfRFlOQU1JQ19MSU5LRVIzMiBTWVNURU1MSUJTX0RJUiAibGQtbGludXguc28uMiIKLSsjZGVmaW5lIEdMSUJDX0RZTkFNSUNfTElOS0VSNjQgU1lTVEVNTElCU19ESVIgImxkLWxpbnV4LXg4Ni02NC5zby4yIgotKyNkZWZpbmUgR0xJQkNfRFlOQU1JQ19MSU5LRVJYMzIgU1lTVEVNTElCU19ESVIgImxkLWxpbnV4LXgzMi5zby4yIgotIAotICN1bmRlZiBNVVNMX0RZTkFNSUNfTElOS0VSMzIKLSAjZGVmaW5lIE1VU0xfRFlOQU1JQ19MSU5LRVIzMiAiL2xpYi9sZC1tdXNsLWkzODYuc28uMSIKLWRpZmYgLS1naXQgYS9nY2MvY29uZmlnL2xpbnV4LmggYi9nY2MvY29uZmlnL2xpbnV4LmgKLWluZGV4IDJlYTRmZjkyYzFkLi40ODdiMGMwOTIzYiAxMDA2NDQKLS0tLSBhL2djYy9jb25maWcvbGludXguaAotKysrIGIvZ2NjL2NvbmZpZy9saW51eC5oCi1AQCAtODEsMTAgKzgxLDEwIEBAIHNlZSB0aGUgZmlsZXMgQ09QWUlORzMgYW5kIENPUFlJTkcuUlVOVElNRSByZXNwZWN0aXZlbHkuICBJZiBub3QsIHNlZQotICAgIEdMSUJDX0RZTkFNSUNfTElOS0VSIG11c3QgYmUgZGVmaW5lZCBmb3IgZWFjaCB0YXJnZXQgdXNpbmcgdGhlbSwgb3IKLSAgICBHTElCQ19EWU5BTUlDX0xJTktFUjMyIGFuZCBHTElCQ19EWU5BTUlDX0xJTktFUjY0IGZvciB0YXJnZXRzCi0gICAgc3VwcG9ydGluZyBib3RoIDMyLWJpdCBhbmQgNjQtYml0IGNvbXBpbGF0aW9uLiAgKi8KLS0jZGVmaW5lIFVDTElCQ19EWU5BTUlDX0xJTktFUiAiL2xpYi9sZC11Q2xpYmMuc28uMCIKLS0jZGVmaW5lIFVDTElCQ19EWU5BTUlDX0xJTktFUjMyICIvbGliL2xkLXVDbGliYy5zby4wIgotLSNkZWZpbmUgVUNMSUJDX0RZTkFNSUNfTElOS0VSNjQgIi9saWIvbGQ2NC11Q2xpYmMuc28uMCIKLS0jZGVmaW5lIFVDTElCQ19EWU5BTUlDX0xJTktFUlgzMiAiL2xpYi9sZHgzMi11Q2xpYmMuc28uMCIKLSsjZGVmaW5lIFVDTElCQ19EWU5BTUlDX0xJTktFUiBTWVNURU1MSUJTX0RJUiAibGQtdUNsaWJjLnNvLjAiCi0rI2RlZmluZSBVQ0xJQkNfRFlOQU1JQ19MSU5LRVIzMiBTWVNURU1MSUJTX0RJUiAibGQtdUNsaWJjLnNvLjAiCi0rI2RlZmluZSBVQ0xJQkNfRFlOQU1JQ19MSU5LRVI2NCBTWVNURU1MSUJTX0RJUiAibGQ2NC11Q2xpYmMuc28uMCIKLSsjZGVmaW5lIFVDTElCQ19EWU5BTUlDX0xJTktFUlgzMiBTWVNURU1MSUJTX0RJUiAibGR4MzItdUNsaWJjLnNvLjAiCi0gI2RlZmluZSBCSU9OSUNfRFlOQU1JQ19MSU5LRVIgIi9zeXN0ZW0vYmluL2xpbmtlciIKLSAjZGVmaW5lIEJJT05JQ19EWU5BTUlDX0xJTktFUjMyICIvc3lzdGVtL2Jpbi9saW5rZXIiCi0gI2RlZmluZSBCSU9OSUNfRFlOQU1JQ19MSU5LRVI2NCAiL3N5c3RlbS9iaW4vbGlua2VyNjQiCi1kaWZmIC0tZ2l0IGEvZ2NjL2NvbmZpZy9taXBzL2xpbnV4LmggYi9nY2MvY29uZmlnL21pcHMvbGludXguaAotaW5kZXggMmRmZDBjMThiOTAuLjEyMDU3YzUxYjVlIDEwMDY0NAotLS0tIGEvZ2NjL2NvbmZpZy9taXBzL2xpbnV4LmgKLSsrKyBiL2djYy9jb25maWcvbWlwcy9saW51eC5oCi1AQCAtMjIsMjAgKzIyLDIwIEBAIGFsb25nIHdpdGggR0NDOyBzZWUgdGhlIGZpbGUgQ09QWUlORzMuICBJZiBub3Qgc2VlCi0gI2RlZmluZSBHTlVfVVNFUl9MSU5LX0VNVUxBVElPTk4zMiAiZWxmMzIle0VCOmJ9JXtFTDpsfXRzbWlwbjMyIgotIAotICNkZWZpbmUgR0xJQkNfRFlOQU1JQ19MSU5LRVIzMiBcCi0tICAiJXttbmFuPTIwMDg6L2xpYi9sZC1saW51eC1taXBzbjguc28uMTs6L2xpYi9sZC5zby4xfSIKLSsgICIle21uYW49MjAwODoiIFNZU1RFTUxJQlNfRElSICJsZC1saW51eC1taXBzbjguc28uMTs6IiBTWVNURU1MSUJTX0RJUiAibGQuc28uMX0iCi0gI2RlZmluZSBHTElCQ19EWU5BTUlDX0xJTktFUjY0IFwKLS0gICIle21uYW49MjAwODovbGliNjQvbGQtbGludXgtbWlwc244LnNvLjE7Oi9saWI2NC9sZC5zby4xfSIKLSsgICIle21uYW49MjAwODoiIFNZU1RFTUxJQlNfRElSICJsZC1saW51eC1taXBzbjguc28uMTs6IiBTWVNURU1MSUJTX0RJUiAibGQuc28uMX0iCi0gI2RlZmluZSBHTElCQ19EWU5BTUlDX0xJTktFUk4zMiBcCi0tICAiJXttbmFuPTIwMDg6L2xpYjMyL2xkLWxpbnV4LW1pcHNuOC5zby4xOzovbGliMzIvbGQuc28uMX0iCi0rICAiJXttbmFuPTIwMDg6IiBTWVNURU1MSUJTX0RJUiAibGQtbGludXgtbWlwc244LnNvLjE7OiIgU1lTVEVNTElCU19ESVIgImxkLnNvLjF9IgotIAotICN1bmRlZiBVQ0xJQkNfRFlOQU1JQ19MSU5LRVIzMgotICNkZWZpbmUgVUNMSUJDX0RZTkFNSUNfTElOS0VSMzIgXAotLSAgIiV7bW5hbj0yMDA4Oi9saWIvbGQtdUNsaWJjLW1pcHNuOC5zby4wOzovbGliL2xkLXVDbGliYy5zby4wfSIKLSsgICIle21uYW49MjAwODoiIFNZU1RFTUxJQlNfRElSICJsZC11Q2xpYmMtbWlwc244LnNvLjA7OiIgU1lTVEVNTElCU19ESVIgImxkLXVDbGliYy5zby4wfSIKLSAjdW5kZWYgVUNMSUJDX0RZTkFNSUNfTElOS0VSNjQKLSAjZGVmaW5lIFVDTElCQ19EWU5BTUlDX0xJTktFUjY0IFwKLS0gICIle21uYW49MjAwODovbGliL2xkNjQtdUNsaWJjLW1pcHNuOC5zby4wOzovbGliL2xkNjQtdUNsaWJjLnNvLjB9IgotKyAgIiV7bW5hbj0yMDA4OiIgU1lTVEVNTElCU19ESVIgImxkNjQtdUNsaWJjLW1pcHNuOC5zby4wOzoiIFNZU1RFTUxJQlNfRElSICJsZDY0LXVDbGliYy5zby4wfSIKLSAjZGVmaW5lIFVDTElCQ19EWU5BTUlDX0xJTktFUk4zMiBcCi0tICAiJXttbmFuPTIwMDg6L2xpYjMyL2xkLXVDbGliYy1taXBzbjguc28uMDs6L2xpYjMyL2xkLXVDbGliYy5zby4wfSIKLSsgICIle21uYW49MjAwODoiIFNZU1RFTUxJQlNfRElSICJsZC11Q2xpYmMtbWlwc244LnNvLjA7OiIgU1lTVEVNTElCU19ESVIgImxkLXVDbGliYy5zby4wfSIKLSAKLSAjdW5kZWYgTVVTTF9EWU5BTUlDX0xJTktFUjMyCi0gI2RlZmluZSBNVVNMX0RZTkFNSUNfTElOS0VSMzIgXAotZGlmZiAtLWdpdCBhL2djYy9jb25maWcvcmlzY3YvbGludXguaCBiL2djYy9jb25maWcvcmlzY3YvbGludXguaAotaW5kZXggYWE4YTI4ZDVkMzEuLmViZjk1NTFjOTU1IDEwMDY0NAotLS0tIGEvZ2NjL2NvbmZpZy9yaXNjdi9saW51eC5oCi0rKysgYi9nY2MvY29uZmlnL3Jpc2N2L2xpbnV4LmgKLUBAIC0yMiw3ICsyMiw3IEBAIGFsb25nIHdpdGggR0NDOyBzZWUgdGhlIGZpbGUgQ09QWUlORzMuICBJZiBub3Qgc2VlCi0gICAgIEdOVV9VU0VSX1RBUkdFVF9PU19DUFBfQlVJTFRJTlMoKTsJCQkJXAotICAgfSB3aGlsZSAoMCkKLSAKLS0jZGVmaW5lIEdMSUJDX0RZTkFNSUNfTElOS0VSICIvbGliL2xkLWxpbnV4LXJpc2N2IiBYTEVOX1NQRUMgIi0iIEFCSV9TUEVDICIuc28uMSIKLSsjZGVmaW5lIEdMSUJDX0RZTkFNSUNfTElOS0VSIFNZU1RFTUxJQlNfRElSICJsZC1saW51eC1yaXNjdiIgWExFTl9TUEVDICItIiBBQklfU1BFQyAiLnNvLjEiCi0gCi0gI2RlZmluZSBNVVNMX0FCSV9TVUZGSVggXAotICAgIiV7bWFiaT1pbHAzMjotc2Z9IiBcCi1kaWZmIC0tZ2l0IGEvZ2NjL2NvbmZpZy9yczYwMDAvbGludXg2NC5oIGIvZ2NjL2NvbmZpZy9yczYwMDAvbGludXg2NC5oCi1pbmRleCA0NGVhYjQwYTIzNC4uNTRhYThkOTU3ZTcgMTAwNjQ0Ci0tLS0gYS9nY2MvY29uZmlnL3JzNjAwMC9saW51eDY0LmgKLSsrKyBiL2djYy9jb25maWcvcnM2MDAwL2xpbnV4NjQuaAotQEAgLTQxMywxNiArNDEzLDExIEBAIGV4dGVybiBpbnQgZG90X3N5bWJvbHM7Ci0gI3VuZGVmCUxJTktfT1NfREVGQVVMVF9TUEVDCi0gI2RlZmluZSBMSU5LX09TX0RFRkFVTFRfU1BFQyAiJShsaW5rX29zX2xpbnV4KSIKLSAKLS0jZGVmaW5lIEdMSUJDX0RZTkFNSUNfTElOS0VSMzIgIiUoZHluYW1pY19saW5rZXJfcHJlZml4KS9saWIvbGQuc28uMSIKLS0KLSsjZGVmaW5lIEdMSUJDX0RZTkFNSUNfTElOS0VSMzIgU1lTVEVNTElCU19ESVIgImxkLnNvLjEiCi0gI2lmZGVmIExJTlVYNjRfREVGQVVMVF9BQklfRUxGdjIKLS0jZGVmaW5lIEdMSUJDX0RZTkFNSUNfTElOS0VSNjQgXAotLSIle21hYmk9ZWxmdjE6JShkeW5hbWljX2xpbmtlcl9wcmVmaXgpL2xpYjY0L2xkNjQuc28uMTsiIFwKLS0iOiUoZHluYW1pY19saW5rZXJfcHJlZml4KS9saWI2NC9sZDY0LnNvLjJ9IgotKyNkZWZpbmUgR0xJQkNfRFlOQU1JQ19MSU5LRVI2NCAiJXttYWJpPWVsZnYxOiIgU1lTVEVNTElCU19ESVIgImxkNjQuc28uMTs6IiBTWVNURU1MSUJTX0RJUiAibGQ2NC5zby4yfSIKLSAjZWxzZQotLSNkZWZpbmUgR0xJQkNfRFlOQU1JQ19MSU5LRVI2NCBcCi0tIiV7bWFiaT1lbGZ2MjolKGR5bmFtaWNfbGlua2VyX3ByZWZpeCkvbGliNjQvbGQ2NC5zby4yOyIgXAotLSI6JShkeW5hbWljX2xpbmtlcl9wcmVmaXgpL2xpYjY0L2xkNjQuc28uMX0iCi0rI2RlZmluZSBHTElCQ19EWU5BTUlDX0xJTktFUjY0ICIle21hYmk9ZWxmdjI6IiBTWVNURU1MSUJTX0RJUiAibGQ2NC5zby4yOzoiIFNZU1RFTUxJQlNfRElSICJsZDY0LnNvLjF9IgotICNlbmRpZgotIAotICNkZWZpbmUgTVVTTF9EWU5BTUlDX0xJTktFUjMyIFwKLUBAIC00MzAsOCArNDI1LDkgQEAgZXh0ZXJuIGludCBkb3Rfc3ltYm9sczsKLSAjZGVmaW5lIE1VU0xfRFlOQU1JQ19MSU5LRVI2NCBcCi0gICAiL2xpYi9sZC1tdXNsLXBvd2VycGM2NCIgTVVTTF9EWU5BTUlDX0xJTktFUl9FICIle21zb2Z0LWZsb2F0Oi1zZn0uc28uMSIKLSAKLS0jZGVmaW5lIFVDTElCQ19EWU5BTUlDX0xJTktFUjMyICIvbGliL2xkLXVDbGliYy5zby4wIgotLSNkZWZpbmUgVUNMSUJDX0RZTkFNSUNfTElOS0VSNjQgIi9saWIvbGQ2NC11Q2xpYmMuc28uMCIKLSsjZGVmaW5lIFVDTElCQ19EWU5BTUlDX0xJTktFUjMyIFNZU1RFTUxJQlNfRElSICJsZC11Q2xpYmMuc28uMCIKLSsjZGVmaW5lIFVDTElCQ19EWU5BTUlDX0xJTktFUjY0IFNZU1RFTUxJQlNfRElSICJsZDY0LXVDbGliYy5zby4wIgotKwotICNpZiBERUZBVUxUX0xJQkMgPT0gTElCQ19VQ0xJQkMKLSAjZGVmaW5lIENIT09TRV9EWU5BTUlDX0xJTktFUihHLCBVLCBNKSBcCi0gICAiJXttZ2xpYmM6IiBHICI7OiV7bW11c2w6IiBNICI7OiIgVSAifX0iCi1kaWZmIC0tZ2l0IGEvZ2NjL2NvbmZpZy9zaC9saW51eC5oIGIvZ2NjL2NvbmZpZy9zaC9saW51eC5oCi1pbmRleCA2ZDJjY2QwMTJiYS4uZWM3OGE4OWNlMTUgMTAwNjQ0Ci0tLS0gYS9nY2MvY29uZmlnL3NoL2xpbnV4LmgKLSsrKyBiL2djYy9jb25maWcvc2gvbGludXguaAotQEAgLTY0LDcgKzY0LDcgQEAgYWxvbmcgd2l0aCBHQ0M7IHNlZSB0aGUgZmlsZSBDT1BZSU5HMy4gIElmIG5vdCBzZWUKLSAgICIvbGliL2xkLW11c2wtc2giIE1VU0xfRFlOQU1JQ19MSU5LRVJfRSBNVVNMX0RZTkFNSUNfTElOS0VSX0ZQIFwKLSAgICIle21mZHBpYzotZmRwaWN9LnNvLjEiCi0gCi0tI2RlZmluZSBHTElCQ19EWU5BTUlDX0xJTktFUiAiL2xpYi9sZC1saW51eC5zby4yIgotKyNkZWZpbmUgR0xJQkNfRFlOQU1JQ19MSU5LRVIgU1lTVEVNTElCU19ESVIgImxkLWxpbnV4LnNvLjIiCi0gCi0gI3VuZGVmIFNVQlRBUkdFVF9MSU5LX0VNVUxfU1VGRklYCi0gI2RlZmluZSBTVUJUQVJHRVRfTElOS19FTVVMX1NVRkZJWCAiJXttZmRwaWM6X2ZkOzpfbGludXh9IgotZGlmZiAtLWdpdCBhL2djYy9jb25maWcvc3BhcmMvbGludXguaCBiL2djYy9jb25maWcvc3BhcmMvbGludXguaAotaW5kZXggOWZiMDNhZjBmZTkuLjQwMWZkZGJiYjIyIDEwMDY0NAotLS0tIGEvZ2NjL2NvbmZpZy9zcGFyYy9saW51eC5oCi0rKysgYi9nY2MvY29uZmlnL3NwYXJjL2xpbnV4LmgKLUBAIC04Myw3ICs4Myw3IEBAIGV4dGVybiBjb25zdCBjaGFyICpob3N0X2RldGVjdF9sb2NhbF9jcHUgKGludCBhcmdjLCBjb25zdCBjaGFyICoqYXJndik7Ci0gICAgV2hlbiB0aGUgLXNoYXJlZCBsaW5rIG9wdGlvbiBpcyB1c2VkIGEgZmluYWwgbGluayBpcyBub3QgYmVpbmcKLSAgICBkb25lLiAgKi8KLSAKLS0jZGVmaW5lIEdMSUJDX0RZTkFNSUNfTElOS0VSICIvbGliL2xkLWxpbnV4LnNvLjIiCi0rI2RlZmluZSBHTElCQ19EWU5BTUlDX0xJTktFUiBTWVNURU1MSUJTX0RJUiAibGQtbGludXguc28uMiIKLSAKLSAjdW5kZWYgIExJTktfU1BFQwotICNkZWZpbmUgTElOS19TUEVDICItbSBlbGYzMl9zcGFyYyAle3NoYXJlZDotc2hhcmVkfSBcCi1kaWZmIC0tZ2l0IGEvZ2NjL2NvbmZpZy9zcGFyYy9saW51eDY0LmggYi9nY2MvY29uZmlnL3NwYXJjL2xpbnV4NjQuaAotaW5kZXggYzFmZTQyMTY1YjcuLjI2YTc5YmZhMmUzIDEwMDY0NAotLS0tIGEvZ2NjL2NvbmZpZy9zcGFyYy9saW51eDY0LmgKLSsrKyBiL2djYy9jb25maWcvc3BhcmMvbGludXg2NC5oCi1AQCAtODQsOCArODQsOCBAQCBhbG9uZyB3aXRoIEdDQzsgc2VlIHRoZSBmaWxlIENPUFlJTkczLiAgSWYgbm90IHNlZQotICAgIFdoZW4gdGhlIC1zaGFyZWQgbGluayBvcHRpb24gaXMgdXNlZCBhIGZpbmFsIGxpbmsgaXMgbm90IGJlaW5nCi0gICAgZG9uZS4gICovCi0gCi0tI2RlZmluZSBHTElCQ19EWU5BTUlDX0xJTktFUjMyICIvbGliL2xkLWxpbnV4LnNvLjIiCi0tI2RlZmluZSBHTElCQ19EWU5BTUlDX0xJTktFUjY0ICIvbGliNjQvbGQtbGludXguc28uMiIKLSsjZGVmaW5lIEdMSUJDX0RZTkFNSUNfTElOS0VSMzIgU1lTVEVNTElCU19ESVIgImxkLWxpbnV4LnNvLjIiCi0rI2RlZmluZSBHTElCQ19EWU5BTUlDX0xJTktFUjY0IFNZU1RFTUxJQlNfRElSICJsZC1saW51eC5zby4yIgotIAotICNpZmRlZiBTUEFSQ19CSV9BUkNICi0gCi0tLSAKLTIuMjEuMAotCmRpZmYgLS1naXQgYS9wb2t5L21ldGEvcmVjaXBlcy1kZXZ0b29scy9nY2MvZ2NjLTguMy8wMDEzLWdjYy1GaXgtYXJndW1lbnQtbGlzdC10b28tbG9uZy1lcnJvci5wYXRjaCBiL3Bva3kvbWV0YS9yZWNpcGVzLWRldnRvb2xzL2djYy9nY2MtOC4zLzAwMTMtZ2NjLUZpeC1hcmd1bWVudC1saXN0LXRvby1sb25nLWVycm9yLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlOWQyY2FjLi4wMDAwMDAwCi0tLSBhL3Bva3kvbWV0YS9yZWNpcGVzLWRldnRvb2xzL2djYy9nY2MtOC4zLzAwMTMtZ2NjLUZpeC1hcmd1bWVudC1saXN0LXRvby1sb25nLWVycm9yLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsNDAgKzAsMCBAQAotRnJvbSA5ZTgxNTk2NWZiYWE5MDEzNGJlMGU3NzdjZmMyZmJjZmFiMTZiNjc0IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogS2hlbSBSYWogPHJhai5raGVtQGdtYWlsLmNvbT4KLURhdGU6IEZyaSwgMjkgTWFyIDIwMTMgMDk6MjY6MzcgKzA0MDAKLVN1YmplY3Q6IFtQQVRDSCAxMy80MF0gZ2NjOiBGaXggYXJndW1lbnQgbGlzdCB0b28gbG9uZyBlcnJvci4KLQotVGhlcmUgd291bGQgYmUgYW4gIkFyZ3VtZW50IGxpc3QgdG9vIGxvbmciIGVycm9yIHdoZW4gdGhlCi1idWlsZCBkaXJlY3RvcnkgaXMgbG9uZ2VyIHRoYW4gMjAwLCB0aGlzIGlzIGNhdXNlZCBieToKLQotaGVhZGVycz1gZWNobyAkKFBMVUdJTl9IRUFERVJTKSB8IHRyICcgJyAnXDAxMicgfCBzb3J0IC11YAotCi1UaGUgUExVR0lOX0hFQURFUlMgaXMgdG9vIGxvbmcgYmVmb3JlIHNvcnQsIHNvIHRoZSAiZWNobyIgY2FuJ3QgaGFuZGxlCi1pdCwgdXNlIHRoZSAkKHNvcnQgbGlzdCkgb2YgR05VIG1ha2Ugd2hpY2ggY2FuIGhhbmRsZSB0aGUgdG9vIGxvbmcgbGlzdAotd291bGQgZml4IHRoZSBwcm9ibGVtLCB0aGUgaGVhZGVyIHdvdWxkIGJlIHNob3J0IGVub3VnaCBhZnRlciBzb3J0ZWQuCi1UaGUgInRyICcgJyAnXDAxMiciIHdhcyB1c2VkIGZvciB0cmFuc2xhdGluZyB0aGUgc3BhY2UgdG8gIlxuIiwgdGhlCi0kKHNvcnQgbGlzdCkgZG9lc24ndCBuZWVkIHRoaXMuCi0KLVNpZ25lZC1vZmYtYnk6IFJvYmVydCBZYW5nIDxsaWV6aGkueWFuZ0B3aW5kcml2ZXIuY29tPgotU2lnbmVkLW9mZi1ieTogS2hlbSBSYWogPHJhai5raGVtQGdtYWlsLmNvbT4KLQotVXBzdHJlYW0tU3RhdHVzOiBQZW5kaW5nCi0tLS0KLSBnY2MvTWFrZWZpbGUuaW4gfCAyICstCi0gMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAxIGRlbGV0aW9uKC0pCi0KLWRpZmYgLS1naXQgYS9nY2MvTWFrZWZpbGUuaW4gYi9nY2MvTWFrZWZpbGUuaW4KLWluZGV4IDEzNjcxMzZiZmFjLi43MWE4Mjc1YzM5ZiAxMDA2NDQKLS0tLSBhL2djYy9NYWtlZmlsZS5pbgotKysrIGIvZ2NjL01ha2VmaWxlLmluCi1AQCAtMzUzOCw3ICszNTM4LDcgQEAgaW5zdGFsbC1wbHVnaW46IGluc3RhbGxkaXJzIGxhbmcuaW5zdGFsbC1wbHVnaW4gcy1oZWFkZXItdmFycyBpbnN0YWxsLWdlbmd0eXBlCi0gIyBXZSBrZWVwIHRoZSBkaXJlY3Rvcnkgc3RydWN0dXJlIGZvciBmaWxlcyBpbiBjb25maWcgb3IgYy1mYW1pbHkgYW5kIC5kZWYKLSAjIGZpbGVzLiBBbGwgb3RoZXIgZmlsZXMgYXJlIGZsYXR0ZW5lZCB0byBhIHNpbmdsZSBkaXJlY3RvcnkuCi0gCSQobWtpbnN0YWxsZGlycykgJChERVNURElSKSQocGx1Z2luX2luY2x1ZGVkaXIpCi0tCWhlYWRlcnM9YGVjaG8gJChQTFVHSU5fSEVBREVSUykgJCQoY2QgJChzcmNkaXIpOyBlY2hvICouaCAqLmRlZikgfCB0ciAnICcgJ1wwMTInIHwgc29ydCAtdWA7IFwKLSsJaGVhZGVycz0iJChzb3J0ICQoUExVR0lOX0hFQURFUlMpICQkKGNkICQoc3JjZGlyKTsgZWNobyAqLmggKi5kZWYpKSI7IFwKLSAJc3JjZGlyc3RyaXA9YGVjaG8gIiQoc3JjZGlyKSIgfCBzZWQgJ3MvW10uW14kJFxcKnxdL1xcXFwmL2cnYDsgXAotIAlmb3IgZmlsZSBpbiAkJGhlYWRlcnM7IGRvIFwKLSAJICBpZiBbIC1mICQkZmlsZSBdIDsgdGhlbiBcCi0tLSAKLTIuMjEuMAotCmRpZmYgLS1naXQgYS9wb2t5L21ldGEvcmVjaXBlcy1kZXZ0b29scy9nY2MvZ2NjLTguMy8wMDE0LURpc2FibGUtc2R0LnBhdGNoIGIvcG9reS9tZXRhL3JlY2lwZXMtZGV2dG9vbHMvZ2NjL2djYy04LjMvMDAxNC1EaXNhYmxlLXNkdC5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMmJjNDQ1MS4uMDAwMDAwMAotLS0gYS9wb2t5L21ldGEvcmVjaXBlcy1kZXZ0b29scy9nY2MvZ2NjLTguMy8wMDE0LURpc2FibGUtc2R0LnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMTEzICswLDAgQEAKLUZyb20gMDBjN2E3ZmRkNGI0YWFkOWU1N2Q4YjU0MWRlMTdhZDIwOWI2Y2QwNiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IEtoZW0gUmFqIDxyYWoua2hlbUBnbWFpbC5jb20+Ci1EYXRlOiBGcmksIDI5IE1hciAyMDEzIDA5OjI4OjEwICswNDAwCi1TdWJqZWN0OiBbUEFUQ0ggMTQvNDBdIERpc2FibGUgc2R0LgotCi1XZSBkb24ndCBsaXN0IGR0cmFjZSBpbiBERVBFTkRTIHNvIHdlIHNob3VsZG4ndCBiZSBkZXBlbmRpbmcgb24gdGhpcyBoZWFkZXIuCi1JdCBtYXkgb3IgbWF5IG5vdCBleGlzdCBmcm9tIHByZWl2b3VzIGJ1aWxkcyB0aG91Z2guIFRvIGJlIGRldGVybWluc3RpYywgZGlzYWJsZQotc2R0LmggdXNhZ2UgYWx3YXlzLiBUaGlzIGF2b2lkcyBidWlsZCBmYWlsdXJlcyBpZiB0aGUgaGVhZGVyIGlzIHJlbW92ZWQgYWZ0ZXIgY29uZmlndXJlCi1idXQgYmVmb3JlIGxpYmdjYyBpcyBjb21waWxlZCBmb3IgZXhhbXBsZS4KLQotUlAgMjAxMi84LzcKLQotU2lnbmVkLW9mZi1ieTogS2hlbSBSYWogPHJhai5raGVtQGdtYWlsLmNvbT4KLQotRGlzYWJsZSBzZHQgZm9yIGxpYnN0ZGMrKy12My4KLQotU2lnbmVkLW9mZi1ieTogUm9iZXJ0IFlhbmcgPGxpZXpoaS55YW5nQHdpbmRyaXZlci5jb20+Ci0KLVVwc3RyZWFtLVN0YXR1czogSW5hcHByb3ByaWF0ZSBbaGFja10KLS0tLQotIGdjYy9jb25maWd1cmUgICAgICAgICAgICAgfCAxMiArKysrKystLS0tLS0KLSBnY2MvY29uZmlndXJlLmFjICAgICAgICAgIHwgMTggKysrKysrKysrLS0tLS0tLS0tCi0gbGlic3RkYysrLXYzL2NvbmZpZ3VyZSAgICB8ICA2ICsrKy0tLQotIGxpYnN0ZGMrKy12My9jb25maWd1cmUuYWMgfCAgMiArLQotIDQgZmlsZXMgY2hhbmdlZCwgMTkgaW5zZXJ0aW9ucygrKSwgMTkgZGVsZXRpb25zKC0pCi0KLWRpZmYgLS1naXQgYS9nY2MvY29uZmlndXJlIGIvZ2NjL2NvbmZpZ3VyZQotaW5kZXggMTM0YzJjMmYxNTYuLjUxMTFlYzBhYWJiIDEwMDc1NQotLS0tIGEvZ2NjL2NvbmZpZ3VyZQotKysrIGIvZ2NjL2NvbmZpZ3VyZQotQEAgLTI5MjgyLDEyICsyOTI4MiwxMiBAQCBmaQotIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogY2hlY2tpbmcgc3lzL3NkdC5oIGluIHRoZSB0YXJnZXQgQyBsaWJyYXJ5IiA+JjUKLSAkYXNfZWNob19uICJjaGVja2luZyBzeXMvc2R0LmggaW4gdGhlIHRhcmdldCBDIGxpYnJhcnkuLi4gIiA+JjY7IH0KLSBoYXZlX3N5c19zZHRfaD1ubwotLWlmIHRlc3QgLWYgJHRhcmdldF9oZWFkZXJfZGlyL3N5cy9zZHQuaDsgdGhlbgotLSAgaGF2ZV9zeXNfc2R0X2g9eWVzCi0tCi0tJGFzX2VjaG8gIiNkZWZpbmUgSEFWRV9TWVNfU0RUX0ggMSIgPj5jb25mZGVmcy5oCi0tCi0tZmkKLSsjaWYgdGVzdCAtZiAkdGFyZ2V0X2hlYWRlcl9kaXIvc3lzL3NkdC5oOyB0aGVuCi0rIyAgaGF2ZV9zeXNfc2R0X2g9eWVzCi0rIwotKyMkYXNfZWNobyAiI2RlZmluZSBIQVZFX1NZU19TRFRfSCAxIiA+PmNvbmZkZWZzLmgKLSsjCi0rI2ZpCi0geyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6ICRoYXZlX3N5c19zZHRfaCIgPiY1Ci0gJGFzX2VjaG8gIiRoYXZlX3N5c19zZHRfaCIgPiY2OyB9Ci0gCi1kaWZmIC0tZ2l0IGEvZ2NjL2NvbmZpZ3VyZS5hYyBiL2djYy9jb25maWd1cmUuYWMKLWluZGV4IDBjM2M4MmU0ZmY3Li4zZTA5YWY5MTZmZCAxMDA2NDQKLS0tLSBhL2djYy9jb25maWd1cmUuYWMKLSsrKyBiL2djYy9jb25maWd1cmUuYWMKLUBAIC01OTQzLDE1ICs1OTQzLDE1IEBAIGZpCi0gQUNfU1VCU1QoW2VuYWJsZV9kZWZhdWx0X3NzcF0pCi0gCi0gIyBUZXN0IGZvciA8c3lzL3NkdC5oPiBvbiB0aGUgdGFyZ2V0LgotLUdDQ19UQVJHRVRfVEVNUExBVEUoW0hBVkVfU1lTX1NEVF9IXSkKLS1BQ19NU0dfQ0hFQ0tJTkcoc3lzL3NkdC5oIGluIHRoZSB0YXJnZXQgQyBsaWJyYXJ5KQotLWhhdmVfc3lzX3NkdF9oPW5vCi0taWYgdGVzdCAtZiAkdGFyZ2V0X2hlYWRlcl9kaXIvc3lzL3NkdC5oOyB0aGVuCi0tICBoYXZlX3N5c19zZHRfaD15ZXMKLS0gIEFDX0RFRklORShIQVZFX1NZU19TRFRfSCwgMSwKLS0gICAgICAgICAgICBbRGVmaW5lIGlmIHlvdXIgdGFyZ2V0IEMgbGlicmFyeSBwcm92aWRlcyBzeXMvc2R0LmhdKQotLWZpCi0tQUNfTVNHX1JFU1VMVCgkaGF2ZV9zeXNfc2R0X2gpCi0rI0dDQ19UQVJHRVRfVEVNUExBVEUoW0hBVkVfU1lTX1NEVF9IXSkKLSsjQUNfTVNHX0NIRUNLSU5HKHN5cy9zZHQuaCBpbiB0aGUgdGFyZ2V0IEMgbGlicmFyeSkKLSsjaGF2ZV9zeXNfc2R0X2g9bm8KLSsjaWYgdGVzdCAtZiAkdGFyZ2V0X2hlYWRlcl9kaXIvc3lzL3NkdC5oOyB0aGVuCi0rIyAgaGF2ZV9zeXNfc2R0X2g9eWVzCi0rIyAgQUNfREVGSU5FKEhBVkVfU1lTX1NEVF9ILCAxLAotKyMgICAgICAgICAgICBbRGVmaW5lIGlmIHlvdXIgdGFyZ2V0IEMgbGlicmFyeSBwcm92aWRlcyBzeXMvc2R0LmhdKQotKyNmaQotKyNBQ19NU0dfUkVTVUxUKCRoYXZlX3N5c19zZHRfaCkKLSAKLSAjIENoZWNrIGlmIFRGbW9kZSBsb25nIGRvdWJsZSBzaG91bGQgYmUgdXNlZCBieSBkZWZhdWx0IG9yIG5vdC4KLSAjIFNvbWUgZ2xpYmMgdGFyZ2V0cyB1c2VkIERGbW9kZSBsb25nIGRvdWJsZSwgYnV0IHdpdGggZ2xpYmMgMi40Ci1kaWZmIC0tZ2l0IGEvbGlic3RkYysrLXYzL2NvbmZpZ3VyZSBiL2xpYnN0ZGMrKy12My9jb25maWd1cmUKLWluZGV4IDU1MzViZmEyYjVhLi4xM2Q3OTNmNTA1OSAxMDA3NTUKLS0tLSBhL2xpYnN0ZGMrKy12My9jb25maWd1cmUKLSsrKyBiL2xpYnN0ZGMrKy12My9jb25maWd1cmUKLUBAIC0yMTc4NiwxMSArMjE3ODYsMTEgQEAgYWNfY29tcGlsZT0nJENDIC1jICRDRkxBR1MgJENQUEZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgPiY1JwotIGFjX2xpbms9JyRDQyAtbyBjb25mdGVzdCRhY19leGVleHQgJENGTEFHUyAkQ1BQRkxBR1MgJExERkxBR1MgY29uZnRlc3QuJGFjX2V4dCAkTElCUyA+JjUnCi0gYWNfY29tcGlsZXJfZ251PSRhY19jdl9jX2NvbXBpbGVyX2dudQotIAotLSAgaWYgdGVzdCAkZ2xpYmN4eF9jdl9zeXNfc2R0X2ggPSB5ZXM7IHRoZW4KLSsjICBpZiB0ZXN0ICRnbGliY3h4X2N2X3N5c19zZHRfaCA9IHllczsgdGhlbgotIAotLSRhc19lY2hvICIjZGVmaW5lIEhBVkVfU1lTX1NEVF9IIDEiID4+Y29uZmRlZnMuaAotKyMkYXNfZWNobyAiI2RlZmluZSBIQVZFX1NZU19TRFRfSCAxIiA+PmNvbmZkZWZzLmgKLSAKLS0gIGZpCi0rIyAgZmkKLSAgIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiAkZ2xpYmN4eF9jdl9zeXNfc2R0X2giID4mNQotICRhc19lY2hvICIkZ2xpYmN4eF9jdl9zeXNfc2R0X2giID4mNjsgfQotIAotZGlmZiAtLWdpdCBhL2xpYnN0ZGMrKy12My9jb25maWd1cmUuYWMgYi9saWJzdGRjKystdjMvY29uZmlndXJlLmFjCi1pbmRleCAwZWY5NjI3MGM5Yy4uYWZlNTVhMWIyMTUgMTAwNjQ0Ci0tLS0gYS9saWJzdGRjKystdjMvY29uZmlndXJlLmFjCi0rKysgYi9saWJzdGRjKystdjMvY29uZmlndXJlLmFjCi1AQCAtMjMwLDcgKzIzMCw3IEBAIEdMSUJDWFhfQ0hFQ0tfU0NfTlBST0NFU1NPUlNfT05MTgotIEdMSUJDWFhfQ0hFQ0tfU0NfTlBST0NfT05MTgotIEdMSUJDWFhfQ0hFQ0tfUFRIUkVBRFNfTlVNX1BST0NFU1NPUlNfTlAKLSBHTElCQ1hYX0NIRUNLX1NZU0NUTF9IV19OQ1BVCi0tR0xJQkNYWF9DSEVDS19TRFRfSAotKyNHTElCQ1hYX0NIRUNLX1NEVF9ICi0gCi0gIyBDaGVjayBmb3IgYXZhaWxhYmxlIGhlYWRlcnMuCi0gQUNfQ0hFQ0tfSEVBREVSUyhbZW5kaWFuLmggZXhlY2luZm8uaCBmbG9hdC5oIGZwLmggaWVlZWZwLmggaW50dHlwZXMuaCBcCi0tLSAKLTIuMjEuMAotCmRpZmYgLS1naXQgYS9wb2t5L21ldGEvcmVjaXBlcy1kZXZ0b29scy9nY2MvZ2NjLTguMy8wMDE1LWxpYnRvb2wucGF0Y2ggYi9wb2t5L21ldGEvcmVjaXBlcy1kZXZ0b29scy9nY2MvZ2NjLTguMy8wMDE1LWxpYnRvb2wucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDc1MGY4YTIuLjAwMDAwMDAKLS0tIGEvcG9reS9tZXRhL3JlY2lwZXMtZGV2dG9vbHMvZ2NjL2djYy04LjMvMDAxNS1saWJ0b29sLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsNDIgKzAsMCBAQAotRnJvbSA4MGYyYjAxYjNmOTE3Y2VhMDgyOTQzMjhjOGJiYzUxZGFkZWNlNGFmIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogS2hlbSBSYWogPHJhai5raGVtQGdtYWlsLmNvbT4KLURhdGU6IEZyaSwgMjkgTWFyIDIwMTMgMDk6Mjk6MTEgKzA0MDAKLVN1YmplY3Q6IFtQQVRDSCAxNS80MF0gbGlidG9vbAotCi1saWJzdGRjKysgZnJvbSBnY2MtcnVudGltZSBnZXRzIGNyZWF0ZWQgd2l0aCAtcnBhdGg9L3Vzci9saWIvLi4vbGliIGZvciBxZW11eDg2LTY0Ci13aGVuIHJ1bm5pbmcgb24gYW0geDg2XzY0IGJ1aWxkIGhvc3QuCi0KLVRoaXMgcGF0Y2ggc3RvcHMgdGhpcyBzcGVhZGluZyB0byBsaWJkaXIgaW4gdGhlIGxpYnN0ZGMrKy5sYSBmaWxlIHdpdGhpbiBsaWJ0b29sLgotQXJndWFibHksIGl0IHNob3VsZG4ndCBiZSBwYXNzaW5nIHRoaXMgaW50byBsaWJ0b29sIGluIHRoZSBmaXJzdCBwbGFjZSBidXQKLWZvciBub3cgdGhpcyByZXNvbHZlcyB0aGUgbmFzdGllc3QgcHJvYmxlbXMgdGhpcyBjYXVzZXMuCi0KLWZ1bmNfbm9ybWFsX2Fic3BhdGggd291bGQgcmVzb2x2ZSBhbiBlbXB0eSBwYXRoIHRvIGBwd2RgIHNvIHdlIG5lZWQKLXRvIGZpbHRlciB0aGUgemVybyBjYXNlLgotCi1SUCAyMDEyLzgvMjQKLQotU2lnbmVkLW9mZi1ieTogS2hlbSBSYWogPHJhai5raGVtQGdtYWlsLmNvbT4KLQotVXBzdHJlYW0tU3RhdHVzOiBQZW5kaW5nCi0tLS0KLSBsdG1haW4uc2ggfCA0ICsrKysKLSAxIGZpbGUgY2hhbmdlZCwgNCBpbnNlcnRpb25zKCspCi0KLWRpZmYgLS1naXQgYS9sdG1haW4uc2ggYi9sdG1haW4uc2gKLWluZGV4IDk1MDNlYzg1ZDcwLi4wMTIxZmJhNzA3ZiAxMDA2NDQKLS0tLSBhL2x0bWFpbi5zaAotKysrIGIvbHRtYWluLnNoCi1AQCAtNjM1OSw2ICs2MzU5LDEwIEBAIGZ1bmNfbW9kZV9saW5rICgpCi0gCWZ1bmNfd2FybmluZyAiaWdub3JpbmcgbXVsdGlwbGUgXGAtcnBhdGgncyBmb3IgYSBsaWJ0b29sIGxpYnJhcnkiCi0gCi0gICAgICAgaW5zdGFsbF9saWJkaXI9IiQxIgotKyAgICAgIGlmIHRlc3QgLW4gIiRpbnN0YWxsX2xpYmRpciI7IHRoZW4KLSsJZnVuY19ub3JtYWxfYWJzcGF0aCAiJGluc3RhbGxfbGliZGlyIgotKwlpbnN0YWxsX2xpYmRpcj0kZnVuY19ub3JtYWxfYWJzcGF0aF9yZXN1bHQKLSsgICAgICBmaQotIAotICAgICAgIG9sZGxpYnM9Ci0gICAgICAgaWYgdGVzdCAteiAiJHJwYXRoIjsgdGhlbgotLS0gCi0yLjIxLjAKLQpkaWZmIC0tZ2l0IGEvcG9reS9tZXRhL3JlY2lwZXMtZGV2dG9vbHMvZ2NjL2djYy04LjMvMDAxNi1nY2MtYXJtdjQtcGFzcy1maXgtdjRieC10by1saW5rZXItdG8tc3VwcG9ydC1FQUJJLnBhdGNoIGIvcG9reS9tZXRhL3JlY2lwZXMtZGV2dG9vbHMvZ2NjL2djYy04LjMvMDAxNi1nY2MtYXJtdjQtcGFzcy1maXgtdjRieC10by1saW5rZXItdG8tc3VwcG9ydC1FQUJJLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5YjFiNGQ0Li4wMDAwMDAwCi0tLSBhL3Bva3kvbWV0YS9yZWNpcGVzLWRldnRvb2xzL2djYy9nY2MtOC4zLzAwMTYtZ2NjLWFybXY0LXBhc3MtZml4LXY0YngtdG8tbGlua2VyLXRvLXN1cHBvcnQtRUFCSS5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDQzICswLDAgQEAKLUZyb20gYTY2ZWMxZTM4MmJmODY5NzQ5NTg4ZjA3MmE0YTdjMDkwMzlmMmIzYSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IEtoZW0gUmFqIDxyYWoua2hlbUBnbWFpbC5jb20+Ci1EYXRlOiBGcmksIDI5IE1hciAyMDEzIDA5OjMwOjMyICswNDAwCi1TdWJqZWN0OiBbUEFUQ0ggMTYvNDBdIGdjYzogYXJtdjQ6IHBhc3MgZml4LXY0YnggdG8gbGlua2VyIHRvIHN1cHBvcnQgRUFCSS4KLQotVGhlIExJTktfU1BFQyBmb3IgbGludXggZ2V0cyBvdmVyd3JpdHRlbiBieSBsaW51eC1lYWJpLmggd2hpY2gKLW1lYW5zIHRoZSB2YWx1ZSBvZiBUQVJHRVRfRklYX1Y0QlhfU1BFQyBnZXRzIGxvc3QgYW5kIGFzIGEgcmVzdWx0Ci10aGUgb3B0aW9uIGlzIG5vdCBwYXNzZWQgdG8gbGlua2VyIHdoZW4gY2hvc2luZyBtYXJjaD1hcm12NAotVGhpcyBwYXRjaCByZWRlZmluZXMgdGhpcyBpbiBsaW51eC1lYWJpLmggYW5kIHJlaW5zZXJ0cyBpdAotZm9yIGVhYmkgZGVmYXVsdGluZyB0b29sY2hhaW5zLgotCi1XZSBtaWdodCB3YW50IHRvIHNlbmQgaXQgdXBzdHJlYW0uCi0KLVNpZ25lZC1vZmYtYnk6IEtoZW0gUmFqIDxyYWoua2hlbUBnbWFpbC5jb20+Ci0KLVVwc3RyZWFtLVN0YXR1czogUGVuZGluZwotLS0tCi0gZ2NjL2NvbmZpZy9hcm0vbGludXgtZWFiaS5oIHwgNiArKysrKy0KLSAxIGZpbGUgY2hhbmdlZCwgNSBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCi0KLWRpZmYgLS1naXQgYS9nY2MvY29uZmlnL2FybS9saW51eC1lYWJpLmggYi9nY2MvY29uZmlnL2FybS9saW51eC1lYWJpLmgKLWluZGV4IGIzYWY2OGNhYzU3Li4zMzBiNmUxM2M1ZiAxMDA2NDQKLS0tLSBhL2djYy9jb25maWcvYXJtL2xpbnV4LWVhYmkuaAotKysrIGIvZ2NjL2NvbmZpZy9hcm0vbGludXgtZWFiaS5oCi1AQCAtODgsMTAgKzg4LDE0IEBACi0gI2RlZmluZSBNVVNMX0RZTkFNSUNfTElOS0VSIFwKLSAgICIvbGliL2xkLW11c2wtYXJtIiBNVVNMX0RZTkFNSUNfTElOS0VSX0UgIiV7bWZsb2F0LWFiaT1oYXJkOmhmfS5zby4xIgotIAotKy8qIEZvciBhcm12NCB3ZSBwYXNzIC0tZml4LXY0YnggdG8gbGlua2VyIHRvIHN1cHBvcnQgRUFCSSAqLwotKyN1bmRlZiBUQVJHRVRfRklYX1Y0QlhfU1BFQwotKyNkZWZpbmUgVEFSR0VUX0ZJWF9WNEJYX1NQRUMgIiV7bWNwdT1hcm04fG1jcHU9YXJtODEwfG1jcHU9c3Ryb25nYXJtKnxtYXJjaD1hcm12NDogLS1maXgtdjRieH0iCi0rCi0gLyogQXQgdGhpcyBwb2ludCwgYnBhYmkuaCB3aWxsIGhhdmUgY2xvYmJlcmVkIExJTktfU1BFQy4gIFdlIHdhbnQgdG8KLSAgICB1c2UgdGhlIEdOVS9MaW51eCB2ZXJzaW9uLCBub3QgdGhlIGdlbmVyaWMgQlBBQkkgdmVyc2lvbi4gICovCi0gI3VuZGVmICBMSU5LX1NQRUMKLS0jZGVmaW5lIExJTktfU1BFQyBFQUJJX0xJTktfU1BFQwkJCQkJXAotKyNkZWZpbmUgTElOS19TUEVDIFRBUkdFVF9GSVhfVjRCWF9TUEVDIEVBQklfTElOS19TUEVDCQkJXAotICAgTElOVVhfT1JfQU5EUk9JRF9MRCAoTElOVVhfVEFSR0VUX0xJTktfU1BFQywJCQkJXAotIAkJICAgICAgIExJTlVYX1RBUkdFVF9MSU5LX1NQRUMgIiAiIEFORFJPSURfTElOS19TUEVDKQotIAotLS0gCi0yLjIxLjAKLQpkaWZmIC0tZ2l0IGEvcG9reS9tZXRhL3JlY2lwZXMtZGV2dG9vbHMvZ2NjL2djYy04LjMvMDAxNy1Vc2UtdGhlLW11bHRpbGliLWNvbmZpZy1maWxlcy1mcm9tLUItaW5zdGVhZC1vZi11c2luLnBhdGNoIGIvcG9reS9tZXRhL3JlY2lwZXMtZGV2dG9vbHMvZ2NjL2djYy04LjMvMDAxNy1Vc2UtdGhlLW11bHRpbGliLWNvbmZpZy1maWxlcy1mcm9tLUItaW5zdGVhZC1vZi11c2luLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzODJmZWNkLi4wMDAwMDAwCi0tLSBhL3Bva3kvbWV0YS9yZWNpcGVzLWRldnRvb2xzL2djYy9nY2MtOC4zLzAwMTctVXNlLXRoZS1tdWx0aWxpYi1jb25maWctZmlsZXMtZnJvbS1CLWluc3RlYWQtb2YtdXNpbi5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDEwMiArMCwwIEBACi1Gcm9tIDYyNGRiNzM0ZjY1NmFkOGNkZjhiM2NmM2ZjOGU4NjBiNzBjNmMyNTEgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBLaGVtIFJhaiA8cmFqLmtoZW1AZ21haWwuY29tPgotRGF0ZTogRnJpLCAyOSBNYXIgMjAxMyAwOTozMzowNCArMDQwMAotU3ViamVjdDogW1BBVENIIDE3LzQwXSBVc2UgdGhlIG11bHRpbGliIGNvbmZpZyBmaWxlcyBmcm9tICR7Qn0gaW5zdGVhZCBvZgotIHVzaW5nIHRoZSBvbmVzIGZyb20gJHtTfQotCi1Vc2UgdGhlIG11bHRpbGliIGNvbmZpZyBmaWxlcyBmcm9tICR7Qn0gaW5zdGVhZCBvZiB1c2luZyB0aGUgb25lcyBmcm9tICR7U30KLXNvIHRoYXQgdGhlIHNvdXJjZSBjYW4gYmUgc2hhcmVkIGJldHdlZW4gZ2NjLWNyb3NzLWluaXRpYWwsCi1nY2MtY3Jvc3MtaW50ZXJtZWRpYXRlLCBnY2MtY3Jvc3MsIGdjYy1ydW50aW1lLCBhbmQgYWxzbyB0aGUgc2RrIGJ1aWxkLgotCi1TaWduZWQtb2ZmLWJ5OiBLaGVtIFJhaiA8cmFqLmtoZW1AZ21haWwuY29tPgotU2lnbmVkLW9mZi1ieTogQ29uc3RhbnRpbiBNdXNjYSA8Y29uc3RhbnRpbngubXVzY2FAaW50ZWwuY29tPgotCi1VcHN0cmVhbS1TdGF0dXM6IEluYXBwcm9wcmlhdGUgW2NvbmZpZ3VyYXRpb25dCi0tLS0KLSBnY2MvY29uZmlndXJlICAgIHwgMjIgKysrKysrKysrKysrKysrKysrLS0tLQotIGdjYy9jb25maWd1cmUuYWMgfCAyMiArKysrKysrKysrKysrKysrKystLS0tCi0gMiBmaWxlcyBjaGFuZ2VkLCAzNiBpbnNlcnRpb25zKCspLCA4IGRlbGV0aW9ucygtKQotCi1kaWZmIC0tZ2l0IGEvZ2NjL2NvbmZpZ3VyZSBiL2djYy9jb25maWd1cmUKLWluZGV4IDUxMTFlYzBhYWJiLi4zZDlkY2JkYzkzZCAxMDA3NTUKLS0tLSBhL2djYy9jb25maWd1cmUKLSsrKyBiL2djYy9jb25maWd1cmUKLUBAIC0xMjEzOCwxMCArMTIxMzgsMjAgQEAgZG9uZQotIHRtYWtlX2ZpbGVfPQotIGZvciBmIGluICR7dG1ha2VfZmlsZX0KLSBkbwotLQlpZiB0ZXN0IC1mICR7c3JjZGlyfS9jb25maWcvJGYKLS0JdGhlbgotLQkJdG1ha2VfZmlsZV89IiR7dG1ha2VfZmlsZV99IFwkKHNyY2RpcikvY29uZmlnLyRmIgotLQlmaQotKyAgY2FzZSAkZiBpbgotKyAgICAqL3QtbGludXg2NCApCi0rICAgICAgIGlmIHRlc3QgLWYgLi9jb25maWcvJGYKLSsgICAgICAgdGhlbgotKyAgICAgICAgIHRtYWtlX2ZpbGVfPSIke3RtYWtlX2ZpbGVffSAuL2NvbmZpZy8kZiIKLSsgICAgICAgZmkKLSsgICAgICAgOzsKLSsgICAgKiApCi0rICAgICAgIGlmIHRlc3QgLWYgJHtzcmNkaXJ9L2NvbmZpZy8kZgotKyAgICAgICB0aGVuCi0rICAgICAgICAgdG1ha2VfZmlsZV89IiR7dG1ha2VfZmlsZV99IFwkKHNyY2RpcikvY29uZmlnLyRmIgotKyAgICAgICBmaQotKyAgICAgICA7OwotKyAgZXNhYwotIGRvbmUKLSB0bWFrZV9maWxlPSIke3RtYWtlX2ZpbGVffSIKLSAKLUBAIC0xMjE1Miw2ICsxMjE2MiwxMCBAQCB0bV9maWxlX2xpc3Q9Im9wdGlvbnMuaCIKLSB0bV9pbmNsdWRlX2xpc3Q9Im9wdGlvbnMuaCBpbnNuLWNvbnN0YW50cy5oIgotIGZvciBmIGluICR0bV9maWxlOyBkbwotICAgY2FzZSAkZiBpbgotKyAgICAqL2xpbnV4NjQuaCApCi0rICAgICAgIHRtX2ZpbGVfbGlzdD0iJHt0bV9maWxlX2xpc3R9IC4vY29uZmlnLyRmIgotKyAgICAgICB0bV9pbmNsdWRlX2xpc3Q9IiR7dG1faW5jbHVkZV9saXN0fSAuL2NvbmZpZy8kZiIKLSsgICAgICAgOzsKLSAgICAgLi8qICkKLSAgICAgICAgZj1gZWNobyAkZiB8IHNlZCAncy9eLi4vLydgCi0gICAgICAgIHRtX2ZpbGVfbGlzdD0iJHt0bV9maWxlX2xpc3R9ICRmIgotZGlmZiAtLWdpdCBhL2djYy9jb25maWd1cmUuYWMgYi9nY2MvY29uZmlndXJlLmFjCi1pbmRleCAzZTA5YWY5MTZmZC4uZTA5Yzg0MGI2MDUgMTAwNjQ0Ci0tLS0gYS9nY2MvY29uZmlndXJlLmFjCi0rKysgYi9nY2MvY29uZmlndXJlLmFjCi1AQCAtMTkwMiwxMCArMTkwMiwyMCBAQCBkb25lCi0gdG1ha2VfZmlsZV89Ci0gZm9yIGYgaW4gJHt0bWFrZV9maWxlfQotIGRvCi0tCWlmIHRlc3QgLWYgJHtzcmNkaXJ9L2NvbmZpZy8kZgotLQl0aGVuCi0tCQl0bWFrZV9maWxlXz0iJHt0bWFrZV9maWxlX30gXCQoc3JjZGlyKS9jb25maWcvJGYiCi0tCWZpCi0rICBjYXNlICRmIGluCi0rICAgICovdC1saW51eDY0ICkKLSsgICAgICAgaWYgdGVzdCAtZiAuL2NvbmZpZy8kZgotKyAgICAgICB0aGVuCi0rICAgICAgICAgdG1ha2VfZmlsZV89IiR7dG1ha2VfZmlsZV99IC4vY29uZmlnLyRmIgotKyAgICAgICBmaQotKyAgICAgICA7OwotKyAgICAqICkKLSsgICAgICAgaWYgdGVzdCAtZiAke3NyY2Rpcn0vY29uZmlnLyRmCi0rICAgICAgIHRoZW4KLSsgICAgICAgICB0bWFrZV9maWxlXz0iJHt0bWFrZV9maWxlX30gXCQoc3JjZGlyKS9jb25maWcvJGYiCi0rICAgICAgIGZpCi0rICAgICAgIDs7Ci0rICBlc2FjCi0gZG9uZQotIHRtYWtlX2ZpbGU9IiR7dG1ha2VfZmlsZV99IgotIAotQEAgLTE5MTYsNiArMTkyNiwxMCBAQCB0bV9maWxlX2xpc3Q9Im9wdGlvbnMuaCIKLSB0bV9pbmNsdWRlX2xpc3Q9Im9wdGlvbnMuaCBpbnNuLWNvbnN0YW50cy5oIgotIGZvciBmIGluICR0bV9maWxlOyBkbwotICAgY2FzZSAkZiBpbgotKyAgICAqL2xpbnV4NjQuaCApCi0rICAgICAgIHRtX2ZpbGVfbGlzdD0iJHt0bV9maWxlX2xpc3R9IC4vY29uZmlnLyRmIgotKyAgICAgICB0bV9pbmNsdWRlX2xpc3Q9IiR7dG1faW5jbHVkZV9saXN0fSAuL2NvbmZpZy8kZiIKLSsgICAgICAgOzsKLSAgICAgLi8qICkKLSAgICAgICAgZj1gZWNobyAkZiB8IHNlZCAncy9eLi4vLydgCi0gICAgICAgIHRtX2ZpbGVfbGlzdD0iJHt0bV9maWxlX2xpc3R9ICRmIgotLS0gCi0yLjIxLjAKLQpkaWZmIC0tZ2l0IGEvcG9reS9tZXRhL3JlY2lwZXMtZGV2dG9vbHMvZ2NjL2djYy04LjMvMDAxOC1Bdm9pZC11c2luZy1saWJkaXItZnJvbS0ubGEtd2hpY2gtdXN1YWxseS1wb2ludHMtdG8tLnBhdGNoIGIvcG9reS9tZXRhL3JlY2lwZXMtZGV2dG9vbHMvZ2NjL2djYy04LjMvMDAxOC1Bdm9pZC11c2luZy1saWJkaXItZnJvbS0ubGEtd2hpY2gtdXN1YWxseS1wb2ludHMtdG8tLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyMGU3N2Q2Li4wMDAwMDAwCi0tLSBhL3Bva3kvbWV0YS9yZWNpcGVzLWRldnRvb2xzL2djYy9nY2MtOC4zLzAwMTgtQXZvaWQtdXNpbmctbGliZGlyLWZyb20tLmxhLXdoaWNoLXVzdWFsbHktcG9pbnRzLXRvLS5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDMxICswLDAgQEAKLUZyb20gMjdjY2E5NWRjZmVlYWQ4YzUyZDI5MmM0ODI0ZWU5NmYxNzhkNjE4MyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IEtoZW0gUmFqIDxyYWoua2hlbUBnbWFpbC5jb20+Ci1EYXRlOiBGcmksIDIwIEZlYiAyMDE1IDA5OjM5OjM4ICswMDAwCi1TdWJqZWN0OiBbUEFUQ0ggMTgvNDBdIEF2b2lkIHVzaW5nIGxpYmRpciBmcm9tIC5sYSB3aGljaCB1c3VhbGx5IHBvaW50cyB0byBhCi0gaG9zdCBwYXRoCi0KLVVwc3RyZWFtLVN0YXR1czogSW5hcHByb3ByaWF0ZSBbZW1iZWRkZWQgc3BlY2lmaWNdCi0KLVNpZ25lZC1vZmYtYnk6IEpvbmF0aGFuIExpdSA8bmV0MTQ3QGdtYWlsLmNvbT4KLVNpZ25lZC1vZmYtYnk6IEtoZW0gUmFqIDxyYWoua2hlbUBnbWFpbC5jb20+Ci0tLS0KLSBsdG1haW4uc2ggfCAzICsrKwotIDEgZmlsZSBjaGFuZ2VkLCAzIGluc2VydGlvbnMoKykKLQotZGlmZiAtLWdpdCBhL2x0bWFpbi5zaCBiL2x0bWFpbi5zaAotaW5kZXggMDEyMWZiYTcwN2YuLjUyYmRiZGI1ZjljIDEwMDY0NAotLS0tIGEvbHRtYWluLnNoCi0rKysgYi9sdG1haW4uc2gKLUBAIC01NjI4LDYgKzU2MjgsOSBAQCBmdW5jX21vZGVfbGluayAoKQotIAkgICAgYWJzZGlyPSIkYWJzX2xhZGlyIgotIAkgICAgbGliZGlyPSIkYWJzX2xhZGlyIgotIAkgIGVsc2UKLSsJICAgICMgSW5zdGVhZCBvZiB1c2luZyBsaWJkaXIgZnJvbSAubGEgd2hpY2ggdXN1YWxseSBwb2ludHMgdG8gYSBob3N0IHBhdGgsCi0rCSAgICAjIHVzZSB0aGUgcGF0aCB0aGUgLmxhIGlzIGNvbnRhaW5lZCBpbi4KLSsJICAgIGxpYmRpcj0iJGFic19sYWRpciIKLSAJICAgIGRpcj0iJGxpYmRpciIKLSAJICAgIGFic2Rpcj0iJGxpYmRpciIKLSAJICBmaQotLS0gCi0yLjIxLjAKLQpkaWZmIC0tZ2l0IGEvcG9reS9tZXRhL3JlY2lwZXMtZGV2dG9vbHMvZ2NjL2djYy04LjMvMDAxOS1leHBvcnQtQ1BQLnBhdGNoIGIvcG9reS9tZXRhL3JlY2lwZXMtZGV2dG9vbHMvZ2NjL2djYy04LjMvMDAxOS1leHBvcnQtQ1BQLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxNDBjNjdhLi4wMDAwMDAwCi0tLSBhL3Bva3kvbWV0YS9yZWNpcGVzLWRldnRvb2xzL2djYy9nY2MtOC4zLzAwMTktZXhwb3J0LUNQUC5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDUzICswLDAgQEAKLUZyb20gYTI5MzYzODJkYTgxYWVmYTliNjljMWZjNjI1ZjZjNzA2YjdlYTFkOCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IEtoZW0gUmFqIDxyYWoua2hlbUBnbWFpbC5jb20+Ci1EYXRlOiBGcmksIDIwIEZlYiAyMDE1IDA5OjQwOjU5ICswMDAwCi1TdWJqZWN0OiBbUEFUQ0ggMTkvNDBdIGV4cG9ydCBDUFAKLQotVGhlIE9FIGVudmlyb25tZW50IHNldHMgYW5kIGV4cG9ydHMgQ1BQIGFzIGJlaW5nIHRoZSB0YXJnZXQgZ2NjLiBXaGVuCi1idWlsZGluZyBnY2MtY3Jvc3MtY2FuYWRpYW4gZm9yIGEgbWluZ3cgdGFyZ2V0dGVkIHNkaywgdGhlIGZvbGxvd2luZyBjYW4gYmUgZm91bmQKLWluIGJ1aWxkLng4Nl82NC1wb2t5c2RrLW1pbmd3MzIuaTU4Ni1wb2t5LWxpbnV4L2J1aWxkLXg4Nl82NC1saW51eC9saWJpYmVydHkvY29uZmlnLmxvZzoKLQotY29uZmlndXJlOjM2NDE6IGNoZWNraW5nIGZvciBfRklMRV9PRkZTRVRfQklUUyB2YWx1ZSBuZWVkZWQgZm9yIGxhcmdlIGZpbGVzCi1jb25maWd1cmU6MzY2NjogZ2NjICAtYyAtaXN5c3RlbS9tZWRpYS9idWlsZDEvcG9reS9idWlsZC90bXAvc3lzcm9vdHMveDg2XzY0LWxpbnV4L3Vzci9pbmNsdWRlIC1PMiAtcGlwZSAgY29uZnRlc3QuYyA+JjUKLWNvbmZpZ3VyZTozNjY2OiAkPyA9IDAKLWNvbmZpZ3VyZTozNjk4OiByZXN1bHQ6IG5vCi1jb25maWd1cmU6Mzc4NjogY2hlY2tpbmcgaG93IHRvIHJ1biB0aGUgQyBwcmVwcm9jZXNzb3IKLWNvbmZpZ3VyZTozODU2OiByZXN1bHQ6IHg4Nl82NC1wb2t5c2RrLW1pbmd3MzItZ2NjIC1FIC0tc3lzcm9vdD0vbWVkaWEvYnVpbGQxL3Bva3kvYnVpbGQvdG1wL3N5c3Jvb3RzL3g4Nl82NC1uYXRpdmVzZGstbWluZ3czMi1wb2t5c2RrLW1pbmd3MzIKLWNvbmZpZ3VyZTozODc2OiB4ODZfNjQtcG9reXNkay1taW5ndzMyLWdjYyAtRSAtLXN5c3Jvb3Q9L21lZGlhL2J1aWxkMS9wb2t5L2J1aWxkL3RtcC9zeXNyb290cy94ODZfNjQtbmF0aXZlc2RrLW1pbmd3MzItcG9reXNkay1taW5ndzMyIGNvbmZ0ZXN0LmMKLWNvbmZpZ3VyZTozODc2OiAkPyA9IDAKLQotTm90ZSB0aGlzIGlzIGEgKmJ1aWxkKiB0YXJnZXQgKGluIGJ1aWxkLXg4Nl82NC1saW51eCkgc28gaXQgc2hvdWxkIGJlCi11c2luZyB0aGUgaG9zdCAiZ2NjIiwgbm90IHg4Nl82NC1wb2t5c2RrLW1pbmd3MzItZ2NjLiBTaW5jZSB0aGUgbWluZ3czMgotaGVhZGVycyBhcmUgdmVyeSBkaWZmZXJlbnQsIHVzaW5nIHRoZSB3cm9uZyBjcHAgaXMgYSByZWFsIHByb2JsZW0uIEl0IGlzIGxlYWtpbmcKLWludG8gY29uZmlndXJlIHRocm91Z2ggdGhlIENQUCB2YXJpYWJsZS4gVWx0aW1hdGVseSB0aGlzIGxlYWRzIHRvIGJ1aWxkCi1mYWlsdXJlcyByZWxhdGVkIHRvIG5vdCBiZWluZyBhYmxlIHRvIGluY2x1ZGUgYSBwcm9jZXNzLmggZmlsZSBmb3IgcGVtLXVuaXguYy4KLQotVGhlIGZpeCBpcyB0byBlbnN1cmUgd2UgZXhwb3J0IGEgc2FuZSBDUFAgdmFsdWUgaW50byB0aGUgYnVpbGQKLWVudmlyb25tZW50IHdoZW4gdXNpbmcgYnVpbGQgdGFyZ2V0cy4gV2UgY291bGQgZGVmaW5lIGEgQ1BQX0ZPUl9CVUlMRCB2YWx1ZSB3aGljaCBtYXkgYmUKLXRoZSB2ZXJzaW9uIHdoaWNoIG5lZWRzIHRvIGJlIHVwc3RyZWFtZWQgYnV0IGZvciBub3csIHRoaXMgZml4IGlzIGdvb2QgZW5vdWdoIHRvCi1hdm9pZCB0aGUgcHJvYmxlbS4KLQotUlAgMjIvMDgvMjAxMwotCi1VcHN0cmVhbS1TdGF0dXM6IFBlbmRpbmcKLQotU2lnbmVkLW9mZi1ieTogS2hlbSBSYWogPHJhai5raGVtQGdtYWlsLmNvbT4KLS0tLQotIE1ha2VmaWxlLmluIHwgMSArCi0gMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspCi0KLWRpZmYgLS1naXQgYS9NYWtlZmlsZS5pbiBiL01ha2VmaWxlLmluCi1pbmRleCAzODc3NGY1NDJhNi4uYjQyNmQ0ZjkzNTAgMTAwNjQ0Ci0tLS0gYS9NYWtlZmlsZS5pbgotKysrIGIvTWFrZWZpbGUuaW4KLUBAIC0xNDksNiArMTQ5LDcgQEAgQlVJTERfRVhQT1JUUyA9IFwKLSAJQVI9IiQoQVJfRk9SX0JVSUxEKSI7IGV4cG9ydCBBUjsgXAotIAlBUz0iJChBU19GT1JfQlVJTEQpIjsgZXhwb3J0IEFTOyBcCi0gCUNDPSIkKENDX0ZPUl9CVUlMRCkiOyBleHBvcnQgQ0M7IFwKLSsJQ1BQPSIkKENDX0ZPUl9CVUlMRCkgLUUiOyBleHBvcnQgQ1BQOyBcCi0gCUNGTEFHUz0iJChDRkxBR1NfRk9SX0JVSUxEKSI7IGV4cG9ydCBDRkxBR1M7IFwKLSAJQ09ORklHX1NIRUxMPSIkKFNIRUxMKSI7IGV4cG9ydCBDT05GSUdfU0hFTEw7IFwKLSAJQ1hYPSIkKENYWF9GT1JfQlVJTEQpIjsgZXhwb3J0IENYWDsgXAotLS0gCi0yLjIxLjAKLQpkaWZmIC0tZ2l0IGEvcG9reS9tZXRhL3JlY2lwZXMtZGV2dG9vbHMvZ2NjL2djYy04LjMvMDAyMC1EaXNhYmxlLXRoZS1NVUxUSUxJQl9PU0RJUk5BTUVTLWFuZC1vdGhlci1tdWx0aWxpYi1vLnBhdGNoIGIvcG9reS9tZXRhL3JlY2lwZXMtZGV2dG9vbHMvZ2NjL2djYy04LjMvMDAyMC1EaXNhYmxlLXRoZS1NVUxUSUxJQl9PU0RJUk5BTUVTLWFuZC1vdGhlci1tdWx0aWxpYi1vLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiMjI1NTdlLi4wMDAwMDAwCi0tLSBhL3Bva3kvbWV0YS9yZWNpcGVzLWRldnRvb2xzL2djYy9nY2MtOC4zLzAwMjAtRGlzYWJsZS10aGUtTVVMVElMSUJfT1NESVJOQU1FUy1hbmQtb3RoZXItbXVsdGlsaWItby5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDQyICswLDAgQEAKLUZyb20gZDQzMjZhYjc0YTM2MmIwZmM4M2VkODY2ZjgyYzM1OTM4OWEzNmFkYyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IEtoZW0gUmFqIDxyYWoua2hlbUBnbWFpbC5jb20+Ci1EYXRlOiBGcmksIDIwIEZlYiAyMDE1IDEwOjIxOjU1ICswMDAwCi1TdWJqZWN0OiBbUEFUQ0ggMjAvNDBdIERpc2FibGUgdGhlIE1VTFRJTElCX09TRElSTkFNRVMgYW5kIG90aGVyIG11bHRpbGliCi0gb3B0aW9ucy4KLQotSGFyZCBjb2RpbmcgdGhlIE1VTFRJTElCX09TRElSTkFNRVMgd2l0aCAuLi9saWI2NCBpcyBjYXVzaW5nIHByb2JsZW1zIG9uCi1zeXN0ZW1zIHdoZXJlIHRoZSBsaWJkaXIgaXMgTk9UIHNldCB0byAvbGliNjQuICBUaGlzIGlzIGFsbG93ZWQgYnkgdGhlCi1BQkksIGFzCi1sb25nIGFzIHRoZSBkeW5hbWljIGxvYWRlciBpcyBwcmVzZW50IGluIC9saWIuCi0KLVdlIHNpbXBseSB3YW50IHRvIHVzZSB0aGUgZGVmYXVsdCBydWxlcyBpbiBnY2MgdG8gZmluZCBhbmQgY29uZmlndXJlIHRoZQotbm9ybWFsIGxpYmRpci4KLQotVXBzdHJlYW0tU3RhdHVzOiBJbmFwcHJvcHJpYXRlW09FLVNwZWNpZmljXQotCi1TaWduZWQtb2ZmLWJ5OiBNYXJrIEhhdGxlIDxtYXJrLmhhdGxlQHdpbmRyaXZlci5jb20+Ci1TaWduZWQtb2ZmLWJ5OiBLaGVtIFJhaiA8cmFqLmtoZW1AZ21haWwuY29tPgotLS0tCi0gZ2NjL2NvbmZpZy9hYXJjaDY0L3QtYWFyY2g2NC1saW51eCB8IDggKysrKy0tLS0KLSAxIGZpbGUgY2hhbmdlZCwgNCBpbnNlcnRpb25zKCspLCA0IGRlbGV0aW9ucygtKQotCi1kaWZmIC0tZ2l0IGEvZ2NjL2NvbmZpZy9hYXJjaDY0L3QtYWFyY2g2NC1saW51eCBiL2djYy9jb25maWcvYWFyY2g2NC90LWFhcmNoNjQtbGludXgKLWluZGV4IGI5ODk3Nzg1YTg5Li43ZDA2ZjBkMGVkYiAxMDA2NDQKLS0tLSBhL2djYy9jb25maWcvYWFyY2g2NC90LWFhcmNoNjQtbGludXgKLSsrKyBiL2djYy9jb25maWcvYWFyY2g2NC90LWFhcmNoNjQtbGludXgKLUBAIC0yMSw4ICsyMSw4IEBACi0gTElCMUFTTVNSQyAgID0gYWFyY2g2NC9saWIxZnVuY3MuYXNtCi0gTElCMUFTTUZVTkNTID0gX2FhcmNoNjRfc3luY19jYWNoZV9yYW5nZQotIAotLUFBUkNIX0JFID0gJChpZiAkKGZpbmRzdHJpbmcgVEFSR0VUX0JJR19FTkRJQU5fREVGQVVMVD0xLCAkKHRtX2RlZmluZXMpKSxfYmUpCi0tTVVMVElMSUJfT1NESVJOQU1FUyA9IG1hYmkubHA2ND0uLi9saWI2NCQoY2FsbCBpZl9tdWx0aWFyY2gsOmFhcmNoNjQkKEFBUkNIX0JFKS1saW51eC1nbnUpCi0tTVVMVElBUkNIX0RJUk5BTUUgPSAkKGNhbGwgaWZfbXVsdGlhcmNoLGFhcmNoNjQkKEFBUkNIX0JFKS1saW51eC1nbnUpCi0rI0FBUkNIX0JFID0gJChpZiAkKGZpbmRzdHJpbmcgVEFSR0VUX0JJR19FTkRJQU5fREVGQVVMVD0xLCAkKHRtX2RlZmluZXMpKSxfYmUpCi0rI01VTFRJTElCX09TRElSTkFNRVMgPSBtYWJpLmxwNjQ9Li4vbGliNjQkKGNhbGwgaWZfbXVsdGlhcmNoLDphYXJjaDY0JChBQVJDSF9CRSktbGludXgtZ251KQotKyNNVUxUSUFSQ0hfRElSTkFNRSA9ICQoY2FsbCBpZl9tdWx0aWFyY2gsYWFyY2g2NCQoQUFSQ0hfQkUpLWxpbnV4LWdudSkKLSAKLS1NVUxUSUxJQl9PU0RJUk5BTUVTICs9IG1hYmkuaWxwMzI9Li4vbGliaWxwMzIkKGNhbGwgaWZfbXVsdGlhcmNoLDphYXJjaDY0JChBQVJDSF9CRSktbGludXgtZ251X2lscDMyKQotKyNNVUxUSUxJQl9PU0RJUk5BTUVTICs9IG1hYmkuaWxwMzI9Li4vbGliaWxwMzIkKGNhbGwgaWZfbXVsdGlhcmNoLDphYXJjaDY0JChBQVJDSF9CRSktbGludXgtZ251X2lscDMyKQotLS0gCi0yLjIxLjAKLQpkaWZmIC0tZ2l0IGEvcG9reS9tZXRhL3JlY2lwZXMtZGV2dG9vbHMvZ2NjL2djYy04LjMvMDAyMS1FbnN1cmUtdGFyZ2V0LWdjYy1oZWFkZXJzLWNhbi1iZS1pbmNsdWRlZC5wYXRjaCBiL3Bva3kvbWV0YS9yZWNpcGVzLWRldnRvb2xzL2djYy9nY2MtOC4zLzAwMjEtRW5zdXJlLXRhcmdldC1nY2MtaGVhZGVycy1jYW4tYmUtaW5jbHVkZWQucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDU4YjRkMWEuLjAwMDAwMDAKLS0tIGEvcG9reS9tZXRhL3JlY2lwZXMtZGV2dG9vbHMvZ2NjL2djYy04LjMvMDAyMS1FbnN1cmUtdGFyZ2V0LWdjYy1oZWFkZXJzLWNhbi1iZS1pbmNsdWRlZC5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDk4ICswLDAgQEAKLUZyb20gOTRjYzk5NWNlZTc2YTlkNTkyMDRhOTAwZmNhYTJhZmIyZWFhNzVjMiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IEtoZW0gUmFqIDxyYWoua2hlbUBnbWFpbC5jb20+Ci1EYXRlOiBGcmksIDIwIEZlYiAyMDE1IDEwOjI1OjExICswMDAwCi1TdWJqZWN0OiBbUEFUQ0ggMjEvNDBdIEVuc3VyZSB0YXJnZXQgZ2NjIGhlYWRlcnMgY2FuIGJlIGluY2x1ZGVkCi0KLVRoZXJlIGFyZSBhIGZldyBoZWFkZXJzIGluc3RhbGxlZCBhcyBwYXJ0IG9mIHRoZSBPcGVuRW1iZWRkZWQKLWdjYy1ydW50aW1lIHRhcmdldCAob21wLmgsIHNzcC8qLmgpLiBCZWluZyBpbnN0YWxsZWQgZnJvbSBhIHJlY2lwZQotYnVpbHQgZm9yIHRoZSB0YXJnZXQgYXJjaGl0ZWN0dXJlLCB0aGVzZSBhcmUgd2l0aGluIHRoZSB0YXJnZXQKLXN5c3Jvb3QgYW5kIG5vdCBjcm9zcy9uYXRpdmVzZGs7IHRodXMgdGhleSB3ZXJlbid0IGFibGUgdG8gYmUKLWZvdW5kIGJ5IGdjYyB3aXRoIHRoZSBleGlzdGluZyBzZWFyY2ggcGF0aHMuIEFkZCBzdXBwb3J0IGZvcgotcGlja2luZyB1cCB0aGVzZSBoZWFkZXJzIHVuZGVyIHRoZSBzeXNyb290IHN1cHBsaWVkIG9uIHRoZSBnY2MKLWNvbW1hbmQgbGluZSBpbiBvcmRlciB0byByZXNvbHZlIHRoaXMuCi0KLVVwc3RyZWFtLVN0YXR1czogUGVuZGluZwotCi1TaWduZWQtb2ZmLWJ5OiBQYXVsIEVnZ2xldG9uIDxwYXVsLmVnZ2xldG9uQGxpbnV4LmludGVsLmNvbT4KLVNpZ25lZC1vZmYtYnk6IEtoZW0gUmFqIDxyYWoua2hlbUBnbWFpbC5jb20+Ci0tLS0KLSBnY2MvTWFrZWZpbGUuaW4gIHwgMiArKwotIGdjYy9jcHBkZWZhdWx0LmMgfCA0ICsrKysKLSBnY2MvZGVmYXVsdHMuaCAgIHwgOSArKysrKysrKysKLSBnY2MvZ2NjLmMgICAgICAgIHwgNyAtLS0tLS0tCi0gNCBmaWxlcyBjaGFuZ2VkLCAxNSBpbnNlcnRpb25zKCspLCA3IGRlbGV0aW9ucygtKQotCi1kaWZmIC0tZ2l0IGEvZ2NjL01ha2VmaWxlLmluIGIvZ2NjL01ha2VmaWxlLmluCi1pbmRleCA3MWE4Mjc1YzM5Zi4uYWE0YWRjM2RiMjQgMTAwNjQ0Ci0tLS0gYS9nY2MvTWFrZWZpbGUuaW4KLSsrKyBiL2djYy9NYWtlZmlsZS5pbgotQEAgLTYxNCw2ICs2MTQsNyBAQCBsaWJleGVjZGlyID0gQGxpYmV4ZWNkaXJACi0gCi0gIyBEaXJlY3RvcnkgaW4gd2hpY2ggdGhlIGNvbXBpbGVyIGZpbmRzIGxpYnJhcmllcyBldGMuCi0gbGlic3ViZGlyID0gJChsaWJkaXIpL2djYy8kKHJlYWxfdGFyZ2V0X25vbmNhbm9uaWNhbCkvJCh2ZXJzaW9uKSQoYWNjZWxfZGlyX3N1ZmZpeCkKLStsaWJzdWJkaXJfdGFyZ2V0ID0gJCh0YXJnZXRfbm9uY2Fub25pY2FsKS8kKHZlcnNpb24pCi0gIyBEaXJlY3RvcnkgaW4gd2hpY2ggdGhlIGNvbXBpbGVyIGZpbmRzIGV4ZWN1dGFibGVzCi0gbGliZXhlY3N1YmRpciA9ICQobGliZXhlY2RpcikvZ2NjLyQocmVhbF90YXJnZXRfbm9uY2Fub25pY2FsKS8kKHZlcnNpb24pJChhY2NlbF9kaXJfc3VmZml4KQotICMgRGlyZWN0b3J5IGluIHdoaWNoIGFsbCBwbHVnaW4gcmVzb3VyY2VzIGFyZSBpbnN0YWxsZWQKLUBAIC0yODcwLDYgKzI4NzEsNyBAQCBDRkxBR1MtaW50bC5vICs9IC1ETE9DQUxFRElSPVwiJChsb2NhbGVkaXIpXCIKLSAKLSBQUkVQUk9DRVNTT1JfREVGSU5FUyA9IFwKLSAgIC1ER0NDX0lOQ0xVREVfRElSPVwiJChsaWJzdWJkaXIpL2luY2x1ZGVcIiBcCi0rICAtREdDQ19JTkNMVURFX1NVQkRJUl9UQVJHRVQ9XCIkKGxpYnN1YmRpcl90YXJnZXQpL2luY2x1ZGVcIiBcCi0gICAtREZJWEVEX0lOQ0xVREVfRElSPVwiJChsaWJzdWJkaXIpL2luY2x1ZGUtZml4ZWRcIiBcCi0gICAtREdQTFVTUExVU19JTkNMVURFX0RJUj1cIiQoZ2NjX2d4eF9pbmNsdWRlX2RpcilcIiBcCi0gICAtREdQTFVTUExVU19JTkNMVURFX0RJUl9BRERfU1lTUk9PVD0kKGdjY19neHhfaW5jbHVkZV9kaXJfYWRkX3N5c3Jvb3QpIFwKLWRpZmYgLS1naXQgYS9nY2MvY3BwZGVmYXVsdC5jIGIvZ2NjL2NwcGRlZmF1bHQuYwotaW5kZXggYjM2YTk3OWQ1YmEuLmUyZTE4N2RlZGFmIDEwMDY0NAotLS0tIGEvZ2NjL2NwcGRlZmF1bHQuYwotKysrIGIvZ2NjL2NwcGRlZmF1bHQuYwotQEAgLTU5LDYgKzU5LDEwIEBAIGNvbnN0IHN0cnVjdCBkZWZhdWx0X2luY2x1ZGUgY3BwX2luY2x1ZGVfZGVmYXVsdHNbXQotICAgICAvKiBUaGlzIGlzIHRoZSBkaXIgZm9yIGdjYydzIHByaXZhdGUgaGVhZGVycy4gICovCi0gICAgIHsgR0NDX0lOQ0xVREVfRElSLCAiR0NDIiwgMCwgMCwgMCwgMCB9LAotICNlbmRpZgotKyNpZmRlZiBHQ0NfSU5DTFVERV9TVUJESVJfVEFSR0VUCi0rICAgIC8qIFRoaXMgaXMgdGhlIGRpciBmb3IgZ2NjJ3MgcHJpdmF0ZSBoZWFkZXJzIHVuZGVyIHRoZSBzcGVjaWZpZWQgc3lzcm9vdC4gICovCi0rICAgIHsgU1RBTkRBUkRfU1RBUlRGSUxFX1BSRUZJWF8yIEdDQ19JTkNMVURFX1NVQkRJUl9UQVJHRVQsICJHQ0MiLCAwLCAwLCAxLCAwIH0sCi0rI2VuZGlmCi0gI2lmZGVmIExPQ0FMX0lOQ0xVREVfRElSCi0gICAgIC8qIC91c3IvbG9jYWwvaW5jbHVkZSBjb21lcyBiZWZvcmUgdGhlIGZpeGluY2x1ZGVkIGhlYWRlciBmaWxlcy4gICovCi0gICAgIHsgTE9DQUxfSU5DTFVERV9ESVIsIDAsIDAsIDEsIDEsIDIgfSwKLWRpZmYgLS1naXQgYS9nY2MvZGVmYXVsdHMuaCBiL2djYy9kZWZhdWx0cy5oCi1pbmRleCA5MDM1YjMzM2JlOC4uNTk4MmJiZGE2MWQgMTAwNjQ0Ci0tLS0gYS9nY2MvZGVmYXVsdHMuaAotKysrIGIvZ2NjL2RlZmF1bHRzLmgKLUBAIC0xNDU1LDQgKzE0NTUsMTMgQEAgc2VlIHRoZSBmaWxlcyBDT1BZSU5HMyBhbmQgQ09QWUlORy5SVU5USU1FIHJlc3BlY3RpdmVseS4gIElmIG5vdCwgc2VlCi0gI2RlZmluZSBEV0FSRl9HTkFUX0VOQ09ESU5HU19ERUZBVUxUIERXQVJGX0dOQVRfRU5DT0RJTkdTX0dEQgotICNlbmRpZgotIAotKy8qIERlZmF1bHQgcHJlZml4ZXMgdG8gYXR0YWNoIHRvIGNvbW1hbmQgbmFtZXMuICAqLwotKwotKyNpZm5kZWYgU1RBTkRBUkRfU1RBUlRGSUxFX1BSRUZJWF8xCi0rI2RlZmluZSBTVEFOREFSRF9TVEFSVEZJTEVfUFJFRklYXzEgIi9saWIvIgotKyNlbmRpZgotKyNpZm5kZWYgU1RBTkRBUkRfU1RBUlRGSUxFX1BSRUZJWF8yCi0rI2RlZmluZSBTVEFOREFSRF9TVEFSVEZJTEVfUFJFRklYXzIgIi91c3IvbGliLyIKLSsjZW5kaWYKLSsKLSAjZW5kaWYgIC8qICEgR0NDX0RFRkFVTFRTX0ggKi8KLWRpZmYgLS1naXQgYS9nY2MvZ2NjLmMgYi9nY2MvZ2NjLmMKLWluZGV4IDU3MGNkYzAwMDM0Li4zZmI2NGQ0NTNmMSAxMDA2NDQKLS0tLSBhL2djYy9nY2MuYwotKysrIGIvZ2NjL2djYy5jCi1AQCAtMTQ2NCwxMyArMTQ2NCw2IEBAIHN0YXRpYyBjb25zdCBjaGFyICpnY2NfbGliZXhlY19wcmVmaXg7Ci0gCi0gLyogRGVmYXVsdCBwcmVmaXhlcyB0byBhdHRhY2ggdG8gY29tbWFuZCBuYW1lcy4gICovCi0gCi0tI2lmbmRlZiBTVEFOREFSRF9TVEFSVEZJTEVfUFJFRklYXzEKLS0jZGVmaW5lIFNUQU5EQVJEX1NUQVJURklMRV9QUkVGSVhfMSAiL2xpYi8iCi0tI2VuZGlmCi0tI2lmbmRlZiBTVEFOREFSRF9TVEFSVEZJTEVfUFJFRklYXzIKLS0jZGVmaW5lIFNUQU5EQVJEX1NUQVJURklMRV9QUkVGSVhfMiAiL3Vzci9saWIvIgotLSNlbmRpZgotLQotICNpZmRlZiBDUk9TU19ESVJFQ1RPUllfU1RSVUNUVVJFICAvKiBEb24ndCB1c2UgdGhlc2UgcHJlZml4ZXMgZm9yIGEgY3Jvc3MgY29tcGlsZXIuICAqLwotICN1bmRlZiBNRF9FWEVDX1BSRUZJWAotICN1bmRlZiBNRF9TVEFSVEZJTEVfUFJFRklYCi0tLSAKLTIuMjIuMQotCmRpZmYgLS1naXQgYS9wb2t5L21ldGEvcmVjaXBlcy1kZXZ0b29scy9nY2MvZ2NjLTguMy8wMDIyLWdjYy00Ljgtd29uLXQtYnVpbGQtd2l0aC1kaXNhYmxlLWRlcGVuZGVuY3ktdHJhY2tpbmcucGF0Y2ggYi9wb2t5L21ldGEvcmVjaXBlcy1kZXZ0b29scy9nY2MvZ2NjLTguMy8wMDIyLWdjYy00Ljgtd29uLXQtYnVpbGQtd2l0aC1kaXNhYmxlLWRlcGVuZGVuY3ktdHJhY2tpbmcucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDZmMGQzZjEuLjAwMDAwMDAKLS0tIGEvcG9reS9tZXRhL3JlY2lwZXMtZGV2dG9vbHMvZ2NjL2djYy04LjMvMDAyMi1nY2MtNC44LXdvbi10LWJ1aWxkLXdpdGgtZGlzYWJsZS1kZXBlbmRlbmN5LXRyYWNraW5nLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsNTQgKzAsMCBAQAotRnJvbSBiYzE5MmYwYTA3YWQ4MTlkZWU5MzQ0NmM1ZWY2ODk1ZDk1NTBkOTJkIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogS2hlbSBSYWogPHJhai5raGVtQGdtYWlsLmNvbT4KLURhdGU6IEZyaSwgMjAgRmViIDIwMTUgMTE6MTc6MTkgKzAwMDAKLVN1YmplY3Q6IFtQQVRDSCAyMi80MF0gZ2NjIDQuOCsgd29uJ3QgYnVpbGQgd2l0aCAtLWRpc2FibGUtZGVwZW5kZW5jeS10cmFja2luZwotCi1zaW5jZSB0aGUgKi5QcG8gZmlsZXMgZG9uJ3QgZ2V0IGNyZWF0ZWQgdW5sZXNzIC0tZW5hYmxlLWRlcGVuZGVuY3ktdHJhY2tpbmcgaXMgdHJ1ZS4KLQotVGhpcyBwYXRjaCBlbnN1cmVzIHdlIG9ubHkgdXNlIHRob3NlIGNvbXBpbGVyIG9wdGlvbnMgd2hlbiBpdHMgZW5hYmxlZC4KLQotVXBzdHJlYW0tU3RhdHVzOiBTdWJtaXR0ZWQKLQotKFByb2JsZW0gd2FzIGFscmVhZHkgcmVwb3J0ZWQgdXBzdHJlYW0sIGF0dGFjaGVkIHRoaXMgcGF0Y2ggdGhlcmUKLWh0dHA6Ly9nY2MuZ251Lm9yZy9idWd6aWxsYS9zaG93X2J1Zy5jZ2k/aWQ9NTU5MzApCi0KLVJQCi0yMDEyLzA5LzIyCi0KLVNpZ25lZC1vZmYtYnk6IEtoZW0gUmFqIDxyYWoua2hlbUBnbWFpbC5jb20+Ci0tLS0KLSBsaWJhdG9taWMvTWFrZWZpbGUuYW0gfCAzICsrLQotIGxpYmF0b21pYy9NYWtlZmlsZS5pbiB8IDMgKystCi0gMiBmaWxlcyBjaGFuZ2VkLCA0IGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCi0KLWRpZmYgLS1naXQgYS9saWJhdG9taWMvTWFrZWZpbGUuYW0gYi9saWJhdG9taWMvTWFrZWZpbGUuYW0KLWluZGV4IDgwM2IyOTJjY2U1Li5iNDc4NDJlYjU5MCAxMDA2NDQKLS0tLSBhL2xpYmF0b21pYy9NYWtlZmlsZS5hbQotKysrIGIvbGliYXRvbWljL01ha2VmaWxlLmFtCi1AQCAtMTAxLDcgKzEwMSw4IEBAIFBBVF9TCQk9ICQod29yZCAzLCQoUEFUX1NQTElUKSkKLSBJRlVOQ19ERUYJPSAtRElGVU5DX0FMVD0kKFBBVF9TKQotIElGVU5DX09QVAk9ICQod29yZCAkKFBBVF9TKSwkKElGVU5DX09QVElPTlMpKQotIAotLU1fREVQUwkJPSAtTVQgJEAgLU1EIC1NUCAtTUYgJChERVBESVIpLyQoQEYpLlBwbwotK0BBTURFUF9UUlVFQE1fREVQUwkJPSAtTVQgJEAgLU1EIC1NUCAtTUYgJChERVBESVIpLyQoQEYpLlBwbwotK0BBTURFUF9GQUxTRUBNX0RFUFMJCT0KLSBNX1NJWkUJCT0gLUROPSQoUEFUX04pCi0gTV9JRlVOQwkJPSAkKGlmICQoUEFUX1MpLCQoSUZVTkNfREVGKSAkKElGVU5DX09QVCkpCi0gTV9GSUxFCQk9ICQoUEFUX0JBU0UpX24uYwotZGlmZiAtLWdpdCBhL2xpYmF0b21pYy9NYWtlZmlsZS5pbiBiL2xpYmF0b21pYy9NYWtlZmlsZS5pbgotaW5kZXggYzhmMzhiZTU4MzUuLjRmYWI3Y2VjM2VhIDEwMDY0NAotLS0tIGEvbGliYXRvbWljL01ha2VmaWxlLmluCi0rKysgYi9saWJhdG9taWMvTWFrZWZpbGUuaW4KLUBAIC0zMzUsNyArMzM1LDggQEAgUEFUX04gPSAkKHdvcmQgMiwkKFBBVF9TUExJVCkpCi0gUEFUX1MgPSAkKHdvcmQgMywkKFBBVF9TUExJVCkpCi0gSUZVTkNfREVGID0gLURJRlVOQ19BTFQ9JChQQVRfUykKLSBJRlVOQ19PUFQgPSAkKHdvcmQgJChQQVRfUyksJChJRlVOQ19PUFRJT05TKSkKLS1NX0RFUFMgPSAtTVQgJEAgLU1EIC1NUCAtTUYgJChERVBESVIpLyQoQEYpLlBwbwotK0BBTURFUF9UUlVFQE1fREVQUyA9IC1NVCAkQCAtTUQgLU1QIC1NRiAkKERFUERJUikvJChARikuUHBvCi0rQEFNREVQX0ZBTFNFQE1fREVQUyA9Ci0gTV9TSVpFID0gLUROPSQoUEFUX04pCi0gTV9JRlVOQyA9ICQoaWYgJChQQVRfUyksJChJRlVOQ19ERUYpICQoSUZVTkNfT1BUKSkKLSBNX0ZJTEUgPSAkKFBBVF9CQVNFKV9uLmMKLS0tIAotMi4yMS4wCi0KZGlmZiAtLWdpdCBhL3Bva3kvbWV0YS9yZWNpcGVzLWRldnRvb2xzL2djYy9nY2MtOC4zLzAwMjMtRG9uLXQtc2VhcmNoLWhvc3QtZGlyZWN0b3J5LWR1cmluZy1yZWxpbmstaWYtaW5zdF9wci5wYXRjaCBiL3Bva3kvbWV0YS9yZWNpcGVzLWRldnRvb2xzL2djYy9nY2MtOC4zLzAwMjMtRG9uLXQtc2VhcmNoLWhvc3QtZGlyZWN0b3J5LWR1cmluZy1yZWxpbmstaWYtaW5zdF9wci5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZmUzZjM0My4uMDAwMDAwMAotLS0gYS9wb2t5L21ldGEvcmVjaXBlcy1kZXZ0b29scy9nY2MvZ2NjLTguMy8wMDIzLURvbi10LXNlYXJjaC1ob3N0LWRpcmVjdG9yeS1kdXJpbmctcmVsaW5rLWlmLWluc3RfcHIucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwzOCArMCwwIEBACi1Gcm9tIDA0MDlkMmRkNzMyMmVjYmVkNzMxY2JlMjliMDM0ZmVhNDNjNWRkZGMgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBLaGVtIFJhaiA8cmFqLmtoZW1AZ21haWwuY29tPgotRGF0ZTogVHVlLCAzIE1hciAyMDE1IDA4OjIxOjE5ICswMDAwCi1TdWJqZWN0OiBbUEFUQ0ggMjMvNDBdIERvbid0IHNlYXJjaCBob3N0IGRpcmVjdG9yeSBkdXJpbmcgInJlbGluayIgaWYKLSAkaW5zdF9wcmVmaXggaXMgcHJvdmlkZWQKLQotaHR0cDovL2xpc3RzLmdudS5vcmcvYXJjaGl2ZS9odG1sL2xpYnRvb2wtcGF0Y2hlcy8yMDExLTAxL21zZzAwMDI2Lmh0bWwKLQotVXBzdHJlYW0tU3RhdHVzOiBTdWJtaXR0ZWQKLQotU2lnbmVkLW9mZi1ieTogS2hlbSBSYWogPHJhai5raGVtQGdtYWlsLmNvbT4KLS0tLQotIGx0bWFpbi5zaCB8IDUgKysrLS0KLSAxIGZpbGUgY2hhbmdlZCwgMyBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQotCi1kaWZmIC0tZ2l0IGEvbHRtYWluLnNoIGIvbHRtYWluLnNoCi1pbmRleCA1MmJkYmRiNWY5Yy4uODJiY2VjMzlmMDUgMTAwNjQ0Ci0tLS0gYS9sdG1haW4uc2gKLSsrKyBiL2x0bWFpbi5zaAotQEAgLTYwMDQsMTIgKzYwMDQsMTMgQEAgZnVuY19tb2RlX2xpbmsgKCkKLSAJICAgICAgZmkKLSAJICAgIGVsc2UKLSAJICAgICAgIyBXZSBjYW5ub3Qgc2VlbSB0byBoYXJkY29kZSBpdCwgZ3Vlc3Mgd2UnbGwgZmFrZSBpdC4KLSsJICAgICAgIyBEZWZhdWx0IGlmICRsaWJkaXIgaXMgbm90IHJlbGF0aXZlIHRvIHRoZSBwcmVmaXg6Ci0gCSAgICAgIGFkZF9kaXI9Ii1MJGxpYmRpciIKLS0JICAgICAgIyBUcnkgbG9va2luZyBmaXJzdCBpbiB0aGUgbG9jYXRpb24gd2UncmUgYmVpbmcgaW5zdGFsbGVkIHRvLgotKwotIAkgICAgICBpZiB0ZXN0IC1uICIkaW5zdF9wcmVmaXhfZGlyIjsgdGhlbgotIAkJY2FzZSAkbGliZGlyIGluCi0gCQkgIFtcXC9dKikKLS0JCSAgICBhZGRfZGlyPSIkYWRkX2RpciAtTCRpbnN0X3ByZWZpeF9kaXIkbGliZGlyIgotKwkJICAgIGFkZF9kaXI9Ii1MJGluc3RfcHJlZml4X2RpciRsaWJkaXIiCi0gCQkgICAgOzsKLSAJCWVzYWMKLSAJICAgICAgZmkKLS0tIAotMi4yMS4wCi0KZGlmZiAtLWdpdCBhL3Bva3kvbWV0YS9yZWNpcGVzLWRldnRvb2xzL2djYy9nY2MtOC4zLzAwMjQtVXNlLVNZU1RFTUxJQlNfRElSLXJlcGxhY2VtZW50LWluc3RlYWQtb2YtaGFyZGNvZGluZy5wYXRjaCBiL3Bva3kvbWV0YS9yZWNpcGVzLWRldnRvb2xzL2djYy9nY2MtOC4zLzAwMjQtVXNlLVNZU1RFTUxJQlNfRElSLXJlcGxhY2VtZW50LWluc3RlYWQtb2YtaGFyZGNvZGluZy5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYzM4OGEwYS4uMDAwMDAwMAotLS0gYS9wb2t5L21ldGEvcmVjaXBlcy1kZXZ0b29scy9nY2MvZ2NjLTguMy8wMDI0LVVzZS1TWVNURU1MSUJTX0RJUi1yZXBsYWNlbWVudC1pbnN0ZWFkLW9mLWhhcmRjb2RpbmcucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwyOCArMCwwIEBACi1Gcm9tIDU2ZTJlMWZjMmEyN2M0YTVjYzliNDcxZDVkMGFmOTBiY2I4NzFiZmEgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBLaGVtIFJhaiA8cmFqLmtoZW1AZ21haWwuY29tPgotRGF0ZTogVHVlLCAyOCBBcHIgMjAxNSAyMzoxNToyNyAtMDcwMAotU3ViamVjdDogW1BBVENIIDI0LzQwXSBVc2UgU1lTVEVNTElCU19ESVIgcmVwbGFjZW1lbnQgaW5zdGVhZCBvZiBoYXJkY29kaW5nIGJhc2VfbGliZGlyCi0KLVVwc3RyZWFtLVN0YXR1czogUGVuZGluZwotCi1TaWduZWQtb2ZmLWJ5OiBLaGVtIFJhaiA8cmFqLmtoZW1AZ21haWwuY29tPgotLS0tCi0gZ2NjL2NvbmZpZy9hYXJjaDY0L2FhcmNoNjQtbGludXguaCB8IDIgKy0KLSAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkKLQotZGlmZiAtLWdpdCBhL2djYy9jb25maWcvYWFyY2g2NC9hYXJjaDY0LWxpbnV4LmggYi9nY2MvY29uZmlnL2FhcmNoNjQvYWFyY2g2NC1saW51eC5oCi1pbmRleCBiZjEzMjdlOThjYy4uNjQ0MzYxODNiYzggMTAwNjQ0Ci0tLS0gYS9nY2MvY29uZmlnL2FhcmNoNjQvYWFyY2g2NC1saW51eC5oCi0rKysgYi9nY2MvY29uZmlnL2FhcmNoNjQvYWFyY2g2NC1saW51eC5oCi1AQCAtMjEsNyArMjEsNyBAQAotICNpZm5kZWYgR0NDX0FBUkNINjRfTElOVVhfSAotICNkZWZpbmUgR0NDX0FBUkNINjRfTElOVVhfSAotIAotLSNkZWZpbmUgR0xJQkNfRFlOQU1JQ19MSU5LRVIgIi9saWIvbGQtbGludXgtYWFyY2g2NCV7bWJpZy1lbmRpYW46X2JlfSV7bWFiaT1pbHAzMjpfaWxwMzJ9LnNvLjEiCi0rI2RlZmluZSBHTElCQ19EWU5BTUlDX0xJTktFUiAgU1lTVEVNTElCU19ESVIgImxkLWxpbnV4LWFhcmNoNjQle21iaWctZW5kaWFuOl9iZX0le21hYmk9aWxwMzI6X2lscDMyfS5zby4xIgotIAotICN1bmRlZiBNVVNMX0RZTkFNSUNfTElOS0VSCi0gI2RlZmluZSBNVVNMX0RZTkFNSUNfTElOS0VSICIvbGliL2xkLW11c2wtYWFyY2g2NCV7bWJpZy1lbmRpYW46X2JlfSV7bWFiaT1pbHAzMjpfaWxwMzJ9LnNvLjEiCi0tLSAKLTIuMjEuMAotCmRpZmYgLS1naXQgYS9wb2t5L21ldGEvcmVjaXBlcy1kZXZ0b29scy9nY2MvZ2NjLTguMy8wMDI1LWFhcmNoNjQtQWRkLXN1cHBvcnQtZm9yLW11c2wtbGRzby5wYXRjaCBiL3Bva3kvbWV0YS9yZWNpcGVzLWRldnRvb2xzL2djYy9nY2MtOC4zLzAwMjUtYWFyY2g2NC1BZGQtc3VwcG9ydC1mb3ItbXVzbC1sZHNvLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwM2Y5NzI1Li4wMDAwMDAwCi0tLSBhL3Bva3kvbWV0YS9yZWNpcGVzLWRldnRvb2xzL2djYy9nY2MtOC4zLzAwMjUtYWFyY2g2NC1BZGQtc3VwcG9ydC1mb3ItbXVzbC1sZHNvLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMjggKzAsMCBAQAotRnJvbSBiMTQyZTc3ZTQ0ZTFhY2VjZTZkYTU0Y2NkYzI0YzRkYTg5Y2Y0Yjk5IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogS2hlbSBSYWogPHJhai5raGVtQGdtYWlsLmNvbT4KLURhdGU6IFR1ZSwgMjggQXByIDIwMTUgMjM6MTg6MzkgLTA3MDAKLVN1YmplY3Q6IFtQQVRDSCAyNS80MF0gYWFyY2g2NDogQWRkIHN1cHBvcnQgZm9yIG11c2wgbGRzbwotCi1VcHN0cmVhbS1TdGF0dXM6IFBlbmRpbmcKLQotU2lnbmVkLW9mZi1ieTogS2hlbSBSYWogPHJhai5raGVtQGdtYWlsLmNvbT4KLS0tLQotIGdjYy9jb25maWcvYWFyY2g2NC9hYXJjaDY0LWxpbnV4LmggfCAyICstCi0gMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAxIGRlbGV0aW9uKC0pCi0KLWRpZmYgLS1naXQgYS9nY2MvY29uZmlnL2FhcmNoNjQvYWFyY2g2NC1saW51eC5oIGIvZ2NjL2NvbmZpZy9hYXJjaDY0L2FhcmNoNjQtbGludXguaAotaW5kZXggNjQ0MzYxODNiYzguLmJhMTU2Njc2MDI2IDEwMDY0NAotLS0tIGEvZ2NjL2NvbmZpZy9hYXJjaDY0L2FhcmNoNjQtbGludXguaAotKysrIGIvZ2NjL2NvbmZpZy9hYXJjaDY0L2FhcmNoNjQtbGludXguaAotQEAgLTI0LDcgKzI0LDcgQEAKLSAjZGVmaW5lIEdMSUJDX0RZTkFNSUNfTElOS0VSICBTWVNURU1MSUJTX0RJUiAibGQtbGludXgtYWFyY2g2NCV7bWJpZy1lbmRpYW46X2JlfSV7bWFiaT1pbHAzMjpfaWxwMzJ9LnNvLjEiCi0gCi0gI3VuZGVmIE1VU0xfRFlOQU1JQ19MSU5LRVIKLS0jZGVmaW5lIE1VU0xfRFlOQU1JQ19MSU5LRVIgIi9saWIvbGQtbXVzbC1hYXJjaDY0JXttYmlnLWVuZGlhbjpfYmV9JXttYWJpPWlscDMyOl9pbHAzMn0uc28uMSIKLSsjZGVmaW5lIE1VU0xfRFlOQU1JQ19MSU5LRVIgIFNZU1RFTUxJQlNfRElSICJsZC1tdXNsLWFhcmNoNjQle21iaWctZW5kaWFuOl9iZX0le21hYmk9aWxwMzI6X2lscDMyfS5zby4xIgotIAotICN1bmRlZiAgQVNBTl9DQzFfU1BFQwotICNkZWZpbmUgQVNBTl9DQzFfU1BFQyAiJXslOnNhbml0aXplKGFkZHJlc3MpOi1mdW53aW5kLXRhYmxlc30iCi0tLSAKLTIuMjEuMAotCmRpZmYgLS1naXQgYS9wb2t5L21ldGEvcmVjaXBlcy1kZXZ0b29scy9nY2MvZ2NjLTguMy8wMDI2LWxpYmNjMS1maXgtbGliY2MxLXMtaW5zdGFsbC1wYXRoLWFuZC1ycGF0aC5wYXRjaCBiL3Bva3kvbWV0YS9yZWNpcGVzLWRldnRvb2xzL2djYy9nY2MtOC4zLzAwMjYtbGliY2MxLWZpeC1saWJjYzEtcy1pbnN0YWxsLXBhdGgtYW5kLXJwYXRoLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4NTkxNzM4Li4wMDAwMDAwCi0tLSBhL3Bva3kvbWV0YS9yZWNpcGVzLWRldnRvb2xzL2djYy9nY2MtOC4zLzAwMjYtbGliY2MxLWZpeC1saWJjYzEtcy1pbnN0YWxsLXBhdGgtYW5kLXJwYXRoLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsNTQgKzAsMCBAQAotRnJvbSAzZDRlNTNmYzdjZDcxY2UxMTgxYWY4YTVlOTY1NTM5ODg1N2FmNzQxIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogUm9iZXJ0IFlhbmcgPGxpZXpoaS55YW5nQHdpbmRyaXZlci5jb20+Ci1EYXRlOiBTdW4sIDUgSnVsIDIwMTUgMjA6MjU6MTggLTA3MDAKLVN1YmplY3Q6IFtQQVRDSCAyNi80MF0gbGliY2MxOiBmaXggbGliY2MxJ3MgaW5zdGFsbCBwYXRoIGFuZCBycGF0aAotCi0qIEluc3RhbGwgbGliY2MxLnNvIGFuZCBsaWJjYzFwbHVnaW4uc28gaW50bwotICAkKGxpYmV4ZWNkaXIpL2djYy8kKHRhcmdldF9ub25jYW5vbmljYWwpLyQoZ2NjX3ZlcnNpb24pLCBhcyB3aGF0IHdlCi0gIGhhZCBkb25lIHRvIGx0by1wbHVnaW4uCi0qIEZpeCBiYWQgUlBBVEggaXVzc3VlOgotICBnY2MtNS4yLjA6IHBhY2thZ2UgZ2NjLXBsdWdpbnMgY29udGFpbnMgYmFkIFJQQVRIIC9wYXRodC90by90bXAvc3lzcm9vdHMvcWVtdXg4Ni02NC91c3IvbGliNjQvLi4vbGliNjQgaW4gZmlsZQotIC9wYXRoL3RvL2djYy81LjIuMC1yMC9wYWNrYWdlcy1zcGxpdC9nY2MtcGx1Z2lucy91c3IvbGliNjQvZ2NjL3g4Nl82NC1wb2t5LWxpbnV4LzUuMi4wL3BsdWdpbi9saWJjYzFwbHVnaW4uc28uMC4wLjAKLSBbcnBhdGhzXQotCi1VcHN0cmVhbS1TdGF0dXM6IEluYXBwcm9wcmlhdGUgW09FIGNvbmZpZ3VyYXRpb25dCi0KLVNpZ25lZC1vZmYtYnk6IFJvYmVydCBZYW5nIDxsaWV6aGkueWFuZ0B3aW5kcml2ZXIuY29tPgotLS0tCi0gbGliY2MxL01ha2VmaWxlLmFtIHwgNCArKy0tCi0gbGliY2MxL01ha2VmaWxlLmluIHwgNCArKy0tCi0gMiBmaWxlcyBjaGFuZ2VkLCA0IGluc2VydGlvbnMoKyksIDQgZGVsZXRpb25zKC0pCi0KLWRpZmYgLS1naXQgYS9saWJjYzEvTWFrZWZpbGUuYW0gYi9saWJjYzEvTWFrZWZpbGUuYW0KLWluZGV4IDZlY2I2NmI0MzY1Li42MzRjY2UzYzJhOSAxMDA2NDQKLS0tLSBhL2xpYmNjMS9NYWtlZmlsZS5hbQotKysrIGIvbGliY2MxL01ha2VmaWxlLmFtCi1AQCAtMzcsOCArMzcsOCBAQCBsaWJpYmVydHkgPSAkKGlmICQod2lsZGNhcmQgJChsaWJpYmVydHlfbm9hc2FuKSksJChXYykkKGxpYmliZXJ0eV9ub2FzYW4pLCBcCi0gCSAgICAkKFdjKSQobGliaWJlcnR5X25vcm1hbCkpKQotIGxpYmliZXJ0eV9kZXAgPSAkKHBhdHN1YnN0ICQoV2MpJSwlLCQobGliaWJlcnR5KSkKLSAKLS1wbHVnaW5kaXIgPSAkKGxpYmRpcikvZ2NjLyQodGFyZ2V0X25vbmNhbm9uaWNhbCkvJChnY2NfdmVyc2lvbikvcGx1Z2luCi0tY2MxbGliZGlyID0gJChsaWJkaXIpLyQobGlic3VmZml4KQotK2NjMWxpYmRpciA9ICQobGliZXhlY2RpcikvZ2NjLyQodGFyZ2V0X25vbmNhbm9uaWNhbCkvJChnY2NfdmVyc2lvbikKLStwbHVnaW5kaXIgPSAkKGNjMWxpYmRpcikKLSAKLSBpZiBFTkFCTEVfUExVR0lOCi0gcGx1Z2luX0xUTElCUkFSSUVTID0gbGliY2MxcGx1Z2luLmxhIGxpYmNwMXBsdWdpbi5sYQotZGlmZiAtLWdpdCBhL2xpYmNjMS9NYWtlZmlsZS5pbiBiL2xpYmNjMS9NYWtlZmlsZS5pbgotaW5kZXggNDdiZTEwMDI1YWQuLjhkNTQ4MWQ4N2JkIDEwMDY0NAotLS0tIGEvbGliY2MxL01ha2VmaWxlLmluCi0rKysgYi9saWJjYzEvTWFrZWZpbGUuaW4KLUBAIC0zMDMsOCArMzAzLDggQEAgbGliaWJlcnR5ID0gJChpZiAkKHdpbGRjYXJkICQobGliaWJlcnR5X25vYXNhbikpLCQoV2MpJChsaWJpYmVydHlfbm9hc2FuKSwgXAotIAkgICAgJChXYykkKGxpYmliZXJ0eV9ub3JtYWwpKSkKLSAKLSBsaWJpYmVydHlfZGVwID0gJChwYXRzdWJzdCAkKFdjKSUsJSwkKGxpYmliZXJ0eSkpCi0tcGx1Z2luZGlyID0gJChsaWJkaXIpL2djYy8kKHRhcmdldF9ub25jYW5vbmljYWwpLyQoZ2NjX3ZlcnNpb24pL3BsdWdpbgotLWNjMWxpYmRpciA9ICQobGliZGlyKS8kKGxpYnN1ZmZpeCkKLStjYzFsaWJkaXIgPSAkKGxpYmV4ZWNkaXIpL2djYy8kKHRhcmdldF9ub25jYW5vbmljYWwpLyQoZ2NjX3ZlcnNpb24pCi0rcGx1Z2luZGlyID0gJChjYzFsaWJkaXIpCi0gQEVOQUJMRV9QTFVHSU5fVFJVRUBwbHVnaW5fTFRMSUJSQVJJRVMgPSBsaWJjYzFwbHVnaW4ubGEgbGliY3AxcGx1Z2luLmxhCi0gQEVOQUJMRV9QTFVHSU5fVFJVRUBjYzFsaWJfTFRMSUJSQVJJRVMgPSBsaWJjYzEubGEKLSBzaGFyZWRfc291cmNlID0gY2FsbGJhY2tzLmNjIGNhbGxiYWNrcy5oaCBjb25uZWN0aW9uLmNjIGNvbm5lY3Rpb24uaGggXAotLS0gCi0yLjIxLjAKLQpkaWZmIC0tZ2l0IGEvcG9reS9tZXRhL3JlY2lwZXMtZGV2dG9vbHMvZ2NjL2djYy04LjMvMDAyNy1oYW5kbGUtc3lzcm9vdC1zdXBwb3J0LWZvci1uYXRpdmVzZGstZ2NjLnBhdGNoIGIvcG9reS9tZXRhL3JlY2lwZXMtZGV2dG9vbHMvZ2NjL2djYy04LjMvMDAyNy1oYW5kbGUtc3lzcm9vdC1zdXBwb3J0LWZvci1uYXRpdmVzZGstZ2NjLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0Yjk1NWRlLi4wMDAwMDAwCi0tLSBhL3Bva3kvbWV0YS9yZWNpcGVzLWRldnRvb2xzL2djYy9nY2MtOC4zLzAwMjctaGFuZGxlLXN5c3Jvb3Qtc3VwcG9ydC1mb3ItbmF0aXZlc2RrLWdjYy5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDIxMyArMCwwIEBACi1Gcm9tIGMwMzNjMWRmMTFiNjkyMjEzZDAzZGI5MWQ2Y2MxNDViNGFkZWRmYWMgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBLaGVtIFJhaiA8cmFqLmtoZW1AZ21haWwuY29tPgotRGF0ZTogTW9uLCA3IERlYyAyMDE1IDIzOjM5OjU0ICswMDAwCi1TdWJqZWN0OiBbUEFUQ0ggMjcvNDBdIGhhbmRsZSBzeXNyb290IHN1cHBvcnQgZm9yIG5hdGl2ZXNkay1nY2MKLQotQmVpbmcgYWJsZSB0byBidWlsZCBhIG5hdGl2ZXNkayBnY2MgaXMgdXNlZnVsLCBwYXJ0aWN1bGFybHkgaW4gY2FzZXMKLXdoZXJlIHRoZSBob3N0IGNvbXBpbGVyIG1heSBiZSBvZiBhbiBpbmNvbXBhdGlibGUgdmVyc2lvbiAob3IgYSAzMgotYml0IGNvbXBpbGVyIGlzIG5lZWRlZCkuCi0KLVNhZGx5LCBidWlsZGluZyBuYXRpdmVzZGstZ2NjIGlzIG5vdCBzdHJhaWdodCBmb3J3YXJkLiBXZSBpbnN0YWxsCi1uYXRpdmVzZGstZ2NjIGludG8gYSByZWxvY2F0YWJsZSBsb2NhdGlvbiBhbmQgdGhpcyBtZWFucyB0aGF0IGl0cwotbGlicmFyeSBsb2NhdGlvbnMgY2FuIGNoYW5nZS4gIk5vcm1hbCIgc3lzcm9vdCBzdXBwb3J0IGRvZXNuJ3QgaGVscAotaW4gdGhpcyBjYXNlIHNpbmNlIHRoZSB2YWx1ZXMgb2YgcGF0aHMgbGlrZSAibGliZGlyIiBjaGFuZ2UsIG5vdCBqdXN0Ci1iYXNlIHJvb3QgZGlyZWN0b3J5IG9mIHRoZSBzeXN0ZW0uCi0KLUluIG9yZGVyIHRvIGhhbmRsZSB0aGlzIHdlIGRvIHR3byB0aGluZ3M6Ci0KLWEpIEFkZCAlciBpbnRvIHNwZWMgZmlsZSBtYXJrdXAgd2hpY2ggY2FuIGJlIHVzZWQgZm9yIGluamVjdGVkIHBhdGhzCi0gICBzdWNoIGFzIFNZU1RFTUxJQlNfRElSIChzZWUgZ2NjX211bHRpbGliX3NldHVwKCkpLgotYikgQWRkIG90aGVyIHBhdGhzIHdoaWNoIG5lZWQgcmVsb2NhdGlvbiBpbnRvIGEgLmdjY3JlbG9jcHJlZml4IHNlY3Rpb24KLSAgIHdoaWNoIHRoZSByZWxvY2F0aW9uIGNvZGUgd2lsbCBub3RpY2UgYW5kIGFkanVzdCBhdXRvbWF0aWNhbGx5LgotCi1VcHN0cmVhbS1TdGF0dXM6IEluYXBwcm9wcmlhdGUKLVJQIDIwMTUvNy8yOAotCi1TaWduZWQtb2ZmLWJ5OiBLaGVtIFJhaiA8cmFqLmtoZW1AZ21haWwuY29tPgotLS0tCi0gZ2NjL2NwcGRlZmF1bHQuYyB8IDUwICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLQotIGdjYy9jcHBkZWZhdWx0LmggfCAgMyArKy0KLSBnY2MvZ2NjLmMgICAgICAgIHwgMjAgKysrKysrKysrKysrKy0tLS0tLQotIDMgZmlsZXMgY2hhbmdlZCwgNTMgaW5zZXJ0aW9ucygrKSwgMjAgZGVsZXRpb25zKC0pCi0KLWRpZmYgLS1naXQgYS9nY2MvY3BwZGVmYXVsdC5jIGIvZ2NjL2NwcGRlZmF1bHQuYwotaW5kZXggZTJlMTg3ZGVkYWYuLjJmYWJhMmIxZDYzIDEwMDY0NAotLS0tIGEvZ2NjL2NwcGRlZmF1bHQuYwotKysrIGIvZ2NjL2NwcGRlZmF1bHQuYwotQEAgLTM1LDYgKzM1LDMwIEBACi0gIyB1bmRlZiBDUk9TU19JTkNMVURFX0RJUgotICNlbmRpZgotIAotK3N0YXRpYyBjaGFyIEdQTFVTUExVU19JTkNMVURFX0RJUlZBUls0MDk2XSBfX2F0dHJpYnV0ZV9fICgoc2VjdGlvbiAoIi5nY2NyZWxvY3ByZWZpeCIpKSkgPSBHUExVU1BMVVNfSU5DTFVERV9ESVI7Ci0rc3RhdGljIGNoYXIgR0NDX0lOQ0xVREVfRElSVkFSWzQwOTZdIF9fYXR0cmlidXRlX18gKChzZWN0aW9uICgiLmdjY3JlbG9jcHJlZml4IikpKSA9IEdDQ19JTkNMVURFX0RJUjsKLStzdGF0aWMgY2hhciBHUExVU1BMVVNfVE9PTF9JTkNMVURFX0RJUlZBUls0MDk2XSBfX2F0dHJpYnV0ZV9fICgoc2VjdGlvbiAoIi5nY2NyZWxvY3ByZWZpeCIpKSkgPSBHUExVU1BMVVNfVE9PTF9JTkNMVURFX0RJUjsKLStzdGF0aWMgY2hhciBHUExVU1BMVVNfQkFDS1dBUkRfSU5DTFVERV9ESVJWQVJbNDA5Nl0gX19hdHRyaWJ1dGVfXyAoKHNlY3Rpb24gKCIuZ2NjcmVsb2NwcmVmaXgiKSkpID0gR1BMVVNQTFVTX0JBQ0tXQVJEX0lOQ0xVREVfRElSOwotK3N0YXRpYyBjaGFyIFNUQU5EQVJEX1NUQVJURklMRV9QUkVGSVhfMlZBUls0MDk2XSBfX2F0dHJpYnV0ZV9fICgoc2VjdGlvbiAoIi5nY2NyZWxvY3ByZWZpeCIpKSkgPSBTVEFOREFSRF9TVEFSVEZJTEVfUFJFRklYXzIgR0NDX0lOQ0xVREVfU1VCRElSX1RBUkdFVDsKLSsjaWZkZWYgTE9DQUxfSU5DTFVERV9ESVIKLStzdGF0aWMgY2hhciBMT0NBTF9JTkNMVURFX0RJUlZBUls0MDk2XSBfX2F0dHJpYnV0ZV9fICgoc2VjdGlvbiAoIi5nY2NyZWxvY3ByZWZpeCIpKSkgPSBMT0NBTF9JTkNMVURFX0RJUjsKLSsjZW5kaWYKLSsjaWZkZWYgUFJFRklYX0lOQ0xVREVfRElSCi0rc3RhdGljIGNoYXIgUFJFRklYX0lOQ0xVREVfRElSVkFSWzQwOTZdIF9fYXR0cmlidXRlX18gKChzZWN0aW9uICgiLmdjY3JlbG9jcHJlZml4IikpKSA9IFBSRUZJWF9JTkNMVURFX0RJUjsKLSsjZW5kaWYKLSsjaWZkZWYgRklYRURfSU5DTFVERV9ESVIKLStzdGF0aWMgY2hhciBGSVhFRF9JTkNMVURFX0RJUlZBUls0MDk2XSBfX2F0dHJpYnV0ZV9fICgoc2VjdGlvbiAoIi5nY2NyZWxvY3ByZWZpeCIpKSkgPSBGSVhFRF9JTkNMVURFX0RJUjsKLSsjZW5kaWYKLSsjaWZkZWYgQ1JPU1NfSU5DTFVERV9ESVIKLStzdGF0aWMgY2hhciBDUk9TU19JTkNMVURFX0RJUlZBUls0MDk2XSBfX2F0dHJpYnV0ZV9fICgoc2VjdGlvbiAoIi5nY2NyZWxvY3ByZWZpeCIpKSkgPSBDUk9TU19JTkNMVURFX0RJUjsKLSsjZW5kaWYKLSsjaWZkZWYgVE9PTF9JTkNMVURFX0RJUgotK3N0YXRpYyBjaGFyIFRPT0xfSU5DTFVERV9ESVJWQVJbNDA5Nl0gX19hdHRyaWJ1dGVfXyAoKHNlY3Rpb24gKCIuZ2NjcmVsb2NwcmVmaXgiKSkpID0gVE9PTF9JTkNMVURFX0RJUjsKLSsjZW5kaWYKLSsjaWZkZWYgTkFUSVZFX1NZU1RFTV9IRUFERVJfRElSCi0rc3RhdGljIGNoYXIgTkFUSVZFX1NZU1RFTV9IRUFERVJfRElSVkFSWzQwOTZdIF9fYXR0cmlidXRlX18gKChzZWN0aW9uICgiLmdjY3JlbG9jcHJlZml4IikpKSA9IE5BVElWRV9TWVNURU1fSEVBREVSX0RJUjsKLSsjZW5kaWYKLSsKLSBjb25zdCBzdHJ1Y3QgZGVmYXVsdF9pbmNsdWRlIGNwcF9pbmNsdWRlX2RlZmF1bHRzW10KLSAjaWZkZWYgSU5DTFVERV9ERUZBVUxUUwotID0gSU5DTFVERV9ERUZBVUxUUzsKLUBAIC00MiwzOCArNjYsMzggQEAgY29uc3Qgc3RydWN0IGRlZmF1bHRfaW5jbHVkZSBjcHBfaW5jbHVkZV9kZWZhdWx0c1tdCi0gPSB7Ci0gI2lmZGVmIEdQTFVTUExVU19JTkNMVURFX0RJUgotICAgICAvKiBQaWNrIHVwIEdOVSBDKysgZ2VuZXJpYyBpbmNsdWRlIGZpbGVzLiAgKi8KLS0gICAgeyBHUExVU1BMVVNfSU5DTFVERV9ESVIsICJHKysiLCAxLCAxLAotKyAgICB7IEdQTFVTUExVU19JTkNMVURFX0RJUlZBUiwgIkcrKyIsIDEsIDEsCi0gICAgICAgR1BMVVNQTFVTX0lOQ0xVREVfRElSX0FERF9TWVNST09ULCAwIH0sCi0gI2VuZGlmCi0gI2lmZGVmIEdQTFVTUExVU19UT09MX0lOQ0xVREVfRElSCi0gICAgIC8qIFBpY2sgdXAgR05VIEMrKyB0YXJnZXQtZGVwZW5kZW50IGluY2x1ZGUgZmlsZXMuICAqLwotLSAgICB7IEdQTFVTUExVU19UT09MX0lOQ0xVREVfRElSLCAiRysrIiwgMSwgMSwKLSsgICAgeyBHUExVU1BMVVNfVE9PTF9JTkNMVURFX0RJUlZBUiwgIkcrKyIsIDEsIDEsCi0gICAgICAgR1BMVVNQTFVTX0lOQ0xVREVfRElSX0FERF9TWVNST09ULCAxIH0sCi0gI2VuZGlmCi0gI2lmZGVmIEdQTFVTUExVU19CQUNLV0FSRF9JTkNMVURFX0RJUgotICAgICAvKiBQaWNrIHVwIEdOVSBDKysgYmFja3dhcmQgYW5kIGRlcHJlY2F0ZWQgaW5jbHVkZSBmaWxlcy4gICovCi0tICAgIHsgR1BMVVNQTFVTX0JBQ0tXQVJEX0lOQ0xVREVfRElSLCAiRysrIiwgMSwgMSwKLSsgICAgeyBHUExVU1BMVVNfQkFDS1dBUkRfSU5DTFVERV9ESVJWQVIsICJHKysiLCAxLCAxLAotICAgICAgIEdQTFVTUExVU19JTkNMVURFX0RJUl9BRERfU1lTUk9PVCwgMCB9LAotICNlbmRpZgotICNpZmRlZiBHQ0NfSU5DTFVERV9ESVIKLSAgICAgLyogVGhpcyBpcyB0aGUgZGlyIGZvciBnY2MncyBwcml2YXRlIGhlYWRlcnMuICAqLwotLSAgICB7IEdDQ19JTkNMVURFX0RJUiwgIkdDQyIsIDAsIDAsIDAsIDAgfSwKLSsgICAgeyBHQ0NfSU5DTFVERV9ESVJWQVIsICJHQ0MiLCAwLCAwLCAwLCAwIH0sCi0gI2VuZGlmCi0gI2lmZGVmIEdDQ19JTkNMVURFX1NVQkRJUl9UQVJHRVQKLSAgICAgLyogVGhpcyBpcyB0aGUgZGlyIGZvciBnY2MncyBwcml2YXRlIGhlYWRlcnMgdW5kZXIgdGhlIHNwZWNpZmllZCBzeXNyb290LiAgKi8KLS0gICAgeyBTVEFOREFSRF9TVEFSVEZJTEVfUFJFRklYXzIgR0NDX0lOQ0xVREVfU1VCRElSX1RBUkdFVCwgIkdDQyIsIDAsIDAsIDEsIDAgfSwKLSsgICAgeyBTVEFOREFSRF9TVEFSVEZJTEVfUFJFRklYXzJWQVIsICJHQ0MiLCAwLCAwLCAxLCAwIH0sCi0gI2VuZGlmCi0gI2lmZGVmIExPQ0FMX0lOQ0xVREVfRElSCi0gICAgIC8qIC91c3IvbG9jYWwvaW5jbHVkZSBjb21lcyBiZWZvcmUgdGhlIGZpeGluY2x1ZGVkIGhlYWRlciBmaWxlcy4gICovCi0tICAgIHsgTE9DQUxfSU5DTFVERV9ESVIsIDAsIDAsIDEsIDEsIDIgfSwKLS0gICAgeyBMT0NBTF9JTkNMVURFX0RJUiwgMCwgMCwgMSwgMSwgMCB9LAotKyAgICB7IExPQ0FMX0lOQ0xVREVfRElSVkFSLCAwLCAwLCAxLCAxLCAyIH0sCi0rICAgIHsgTE9DQUxfSU5DTFVERV9ESVJWQVIsIDAsIDAsIDEsIDEsIDAgfSwKLSAjZW5kaWYKLSAjaWZkZWYgUFJFRklYX0lOQ0xVREVfRElSCi0tICAgIHsgUFJFRklYX0lOQ0xVREVfRElSLCAwLCAwLCAxLCAwLCAwIH0sCi0rICAgIHsgUFJFRklYX0lOQ0xVREVfRElSVkFSLCAwLCAwLCAxLCAwLCAwIH0sCi0gI2VuZGlmCi0gI2lmZGVmIEZJWEVEX0lOQ0xVREVfRElSCi0gICAgIC8qIFRoaXMgaXMgdGhlIGRpciBmb3IgZml4aW5jbHVkZXMuICAqLwotLSAgICB7IEZJWEVEX0lOQ0xVREVfRElSLCAiR0NDIiwgMCwgMCwgMCwKLSsgICAgeyBGSVhFRF9JTkNMVURFX0RJUlZBUiwgIkdDQyIsIDAsIDAsIDAsCi0gICAgICAgLyogQSBtdWx0aWxpYiBzdWZmaXggbmVlZHMgYWRkaW5nIGlmIGRpZmZlcmVudCBtdWx0aWxpYnMgdXNlCi0gCSBkaWZmZXJlbnQgaGVhZGVycy4gICovCi0gI2lmZGVmIFNZU1JPT1RfSEVBREVSU19TVUZGSVhfU1BFQwotQEAgLTg1LDE2ICsxMDksMTYgQEAgY29uc3Qgc3RydWN0IGRlZmF1bHRfaW5jbHVkZSBjcHBfaW5jbHVkZV9kZWZhdWx0c1tdCi0gI2VuZGlmCi0gI2lmZGVmIENST1NTX0lOQ0xVREVfRElSCi0gICAgIC8qIE9uZSBwbGFjZSB0aGUgdGFyZ2V0IHN5c3RlbSdzIGhlYWRlcnMgbWlnaHQgYmUuICAqLwotLSAgICB7IENST1NTX0lOQ0xVREVfRElSLCAiR0NDIiwgMCwgMCwgMCwgMCB9LAotKyAgICB7IENST1NTX0lOQ0xVREVfRElSVkFSLCAiR0NDIiwgMCwgMCwgMCwgMCB9LAotICNlbmRpZgotICNpZmRlZiBUT09MX0lOQ0xVREVfRElSCi0gICAgIC8qIEFub3RoZXIgcGxhY2UgdGhlIHRhcmdldCBzeXN0ZW0ncyBoZWFkZXJzIG1pZ2h0IGJlLiAgKi8KLS0gICAgeyBUT09MX0lOQ0xVREVfRElSLCAiQklOVVRJTFMiLCAwLCAxLCAwLCAwIH0sCi0rICAgIHsgVE9PTF9JTkNMVURFX0RJUlZBUiwgIkJJTlVUSUxTIiwgMCwgMSwgMCwgMCB9LAotICNlbmRpZgotICNpZmRlZiBOQVRJVkVfU1lTVEVNX0hFQURFUl9ESVIKLSAgICAgLyogL3Vzci9pbmNsdWRlIGNvbWVzIGRlYWQgbGFzdC4gICovCi0tICAgIHsgTkFUSVZFX1NZU1RFTV9IRUFERVJfRElSLCBOQVRJVkVfU1lTVEVNX0hFQURFUl9DT01QT05FTlQsIDAsIDAsIDEsIDIgfSwKLS0gICAgeyBOQVRJVkVfU1lTVEVNX0hFQURFUl9ESVIsIE5BVElWRV9TWVNURU1fSEVBREVSX0NPTVBPTkVOVCwgMCwgMCwgMSwgMCB9LAotKyAgICB7IE5BVElWRV9TWVNURU1fSEVBREVSX0RJUlZBUiwgTkFUSVZFX1NZU1RFTV9IRUFERVJfQ09NUE9ORU5ULCAwLCAwLCAxLCAyIH0sCi0rICAgIHsgTkFUSVZFX1NZU1RFTV9IRUFERVJfRElSVkFSLCBOQVRJVkVfU1lTVEVNX0hFQURFUl9DT01QT05FTlQsIDAsIDAsIDEsIDAgfSwKLSAjZW5kaWYKLSAgICAgeyAwLCAwLCAwLCAwLCAwLCAwIH0KLSAgIH07Ci1kaWZmIC0tZ2l0IGEvZ2NjL2NwcGRlZmF1bHQuaCBiL2djYy9jcHBkZWZhdWx0LmgKLWluZGV4IDRhMDE4NmQxY2YyLi4yOWU1ZDlkYTBkYyAxMDA2NDQKLS0tLSBhL2djYy9jcHBkZWZhdWx0LmgKLSsrKyBiL2djYy9jcHBkZWZhdWx0LmgKLUBAIC0zMyw3ICszMyw4IEBACi0gCi0gc3RydWN0IGRlZmF1bHRfaW5jbHVkZQotIHsKLS0gIGNvbnN0IGNoYXIgKmNvbnN0IGZuYW1lOwkvKiBUaGUgbmFtZSBvZiB0aGUgZGlyZWN0b3J5LiAgKi8KLSsgIGNvbnN0IGNoYXIgKmZuYW1lOyAgICAgLyogVGhlIG5hbWUgb2YgdGhlIGRpcmVjdG9yeS4gICovCi0rCi0gICBjb25zdCBjaGFyICpjb25zdCBjb21wb25lbnQ7CS8qIFRoZSBjb21wb25lbnQgY29udGFpbmluZyB0aGUgZGlyZWN0b3J5Ci0gCQkJCSAgIChzZWUgdXBkYXRlX3BhdGggaW4gcHJlZml4LmMpICovCi0gICBjb25zdCBjaGFyIGNwbHVzcGx1czsJCS8qIE9ubHkgbG9vayBoZXJlIGlmIHdlJ3JlIGNvbXBpbGluZyBDKysuICAqLwotZGlmZiAtLWdpdCBhL2djYy9nY2MuYyBiL2djYy9nY2MuYwotaW5kZXggM2ZiNjRkNDUzZjEuLmNkMGM3ZmJlOTYxIDEwMDY0NAotLS0tIGEvZ2NjL2djYy5jCi0rKysgYi9nY2MvZ2NjLmMKLUBAIC0yNDgsNiArMjQ4LDggQEAgRklMRSAqcmVwb3J0X3RpbWVzX3RvX2ZpbGUgPSBOVUxMOwotICNlbmRpZgotIHN0YXRpYyBjb25zdCBjaGFyICp0YXJnZXRfc3lzdGVtX3Jvb3QgPSBERUZBVUxUX1RBUkdFVF9TWVNURU1fUk9PVDsKLSAKLStzdGF0aWMgY2hhciB0YXJnZXRfcmVsb2NhdGFibGVfcHJlZml4WzQwOTZdIF9fYXR0cmlidXRlX18gKChzZWN0aW9uICgiLmdjY3JlbG9jcHJlZml4IikpKSA9IFNZU1RFTUxJQlNfRElSOwotKwotIC8qIE5vbnplcm8gbWVhbnMgcGFzcyB0aGUgdXBkYXRlZCB0YXJnZXRfc3lzdGVtX3Jvb3QgdG8gdGhlIGNvbXBpbGVyLiAgKi8KLSAKLSBzdGF0aWMgaW50IHRhcmdldF9zeXN0ZW1fcm9vdF9jaGFuZ2VkOwotQEAgLTUxOSw2ICs1MjEsNyBAQCBvciB3aXRoIGNvbnN0YW50IHRleHQgaW4gYSBzaW5nbGUgYXJndW1lbnQuCi0gICVHICAgICBwcm9jZXNzIExJQkdDQ19TUEVDIGFzIGEgc3BlYy4KLSAgJVIgICAgIE91dHB1dCB0aGUgY29uY2F0ZW5hdGlvbiBvZiB0YXJnZXRfc3lzdGVtX3Jvb3QgYW5kCi0gICAgICAgICB0YXJnZXRfc3lzcm9vdF9zdWZmaXguCi0rICVyICAgICBPdXRwdXQgdGhlIGJhc2UgcGF0aCB0YXJnZXRfcmVsb2NhdGFibGVfcHJlZml4Ci0gICVTICAgICBwcm9jZXNzIFNUQVJURklMRV9TUEVDIGFzIGEgc3BlYy4gIEEgY2FwaXRhbCBTIGlzIGFjdHVhbGx5IHVzZWQgaGVyZS4KLSAgJUUgICAgIHByb2Nlc3MgRU5ERklMRV9TUEVDIGFzIGEgc3BlYy4gIEEgY2FwaXRhbCBFIGlzIGFjdHVhbGx5IHVzZWQgaGVyZS4KLSAgJUMgICAgIHByb2Nlc3MgQ1BQX1NQRUMgYXMgYSBzcGVjLgotQEAgLTE0ODcsMTAgKzE0OTAsMTAgQEAgc3RhdGljIGNvbnN0IGNoYXIgKmdjY19saWJleGVjX3ByZWZpeDsKLSAgICBnY2NfZXhlY19wcmVmaXggaXMgc2V0IGJlY2F1c2UsIGluIHRoYXQgY2FzZSwgd2Uga25vdyB3aGVyZSB0aGUKLSAgICBjb21waWxlciBoYXMgYmVlbiBpbnN0YWxsZWQsIGFuZCB1c2UgcGF0aHMgcmVsYXRpdmUgdG8gdGhhdAotICAgIGxvY2F0aW9uIGluc3RlYWQuICAqLwotLXN0YXRpYyBjb25zdCBjaGFyICpjb25zdCBzdGFuZGFyZF9leGVjX3ByZWZpeCA9IFNUQU5EQVJEX0VYRUNfUFJFRklYOwotLXN0YXRpYyBjb25zdCBjaGFyICpjb25zdCBzdGFuZGFyZF9saWJleGVjX3ByZWZpeCA9IFNUQU5EQVJEX0xJQkVYRUNfUFJFRklYOwotLXN0YXRpYyBjb25zdCBjaGFyICpjb25zdCBzdGFuZGFyZF9iaW5kaXJfcHJlZml4ID0gU1RBTkRBUkRfQklORElSX1BSRUZJWDsKLS1zdGF0aWMgY29uc3QgY2hhciAqY29uc3Qgc3RhbmRhcmRfc3RhcnRmaWxlX3ByZWZpeCA9IFNUQU5EQVJEX1NUQVJURklMRV9QUkVGSVg7Ci0rc3RhdGljIGNoYXIgc3RhbmRhcmRfZXhlY19wcmVmaXhbNDA5Nl0gX19hdHRyaWJ1dGVfXyAoKHNlY3Rpb24gKCIuZ2NjcmVsb2NwcmVmaXgiKSkpID0gU1RBTkRBUkRfRVhFQ19QUkVGSVg7Ci0rc3RhdGljIGNoYXIgc3RhbmRhcmRfbGliZXhlY19wcmVmaXhbNDA5Nl0gX19hdHRyaWJ1dGVfXyAoKHNlY3Rpb24gKCIuZ2NjcmVsb2NwcmVmaXgiKSkpID0gU1RBTkRBUkRfTElCRVhFQ19QUkVGSVg7Ci0rc3RhdGljIGNoYXIgc3RhbmRhcmRfYmluZGlyX3ByZWZpeFs0MDk2XSBfX2F0dHJpYnV0ZV9fICgoc2VjdGlvbiAoIi5nY2NyZWxvY3ByZWZpeCIpKSkgPSBTVEFOREFSRF9CSU5ESVJfUFJFRklYOwotK3N0YXRpYyBjaGFyICpjb25zdCBzdGFuZGFyZF9zdGFydGZpbGVfcHJlZml4ID0gU1RBTkRBUkRfU1RBUlRGSUxFX1BSRUZJWDsKLSAKLSAvKiBGb3IgbmF0aXZlIGNvbXBpbGVycywgdGhlc2UgYXJlIHdlbGwta25vd24gcGF0aHMgY29udGFpbmluZwotICAgIGNvbXBvbmVudHMgdGhhdCBtYXkgYmUgcHJvdmlkZWQgYnkgdGhlIHN5c3RlbS4gIEZvciBjcm9zcwotQEAgLTE0OTgsOSArMTUwMSw5IEBAIHN0YXRpYyBjb25zdCBjaGFyICpjb25zdCBzdGFuZGFyZF9zdGFydGZpbGVfcHJlZml4ID0gU1RBTkRBUkRfU1RBUlRGSUxFX1BSRUZJWDsKLSBzdGF0aWMgY29uc3QgY2hhciAqbWRfZXhlY19wcmVmaXggPSBNRF9FWEVDX1BSRUZJWDsKLSBzdGF0aWMgY29uc3QgY2hhciAqbWRfc3RhcnRmaWxlX3ByZWZpeCA9IE1EX1NUQVJURklMRV9QUkVGSVg7Ci0gc3RhdGljIGNvbnN0IGNoYXIgKm1kX3N0YXJ0ZmlsZV9wcmVmaXhfMSA9IE1EX1NUQVJURklMRV9QUkVGSVhfMTsKLS1zdGF0aWMgY29uc3QgY2hhciAqY29uc3Qgc3RhbmRhcmRfc3RhcnRmaWxlX3ByZWZpeF8xCi0rc3RhdGljIGNoYXIgc3RhbmRhcmRfc3RhcnRmaWxlX3ByZWZpeF8xWzQwOTZdIF9fYXR0cmlidXRlX18gKChzZWN0aW9uICgiLmdjY3JlbG9jcHJlZml4IikpKQotICAgPSBTVEFOREFSRF9TVEFSVEZJTEVfUFJFRklYXzE7Ci0tc3RhdGljIGNvbnN0IGNoYXIgKmNvbnN0IHN0YW5kYXJkX3N0YXJ0ZmlsZV9wcmVmaXhfMgotK3N0YXRpYyBjaGFyIHN0YW5kYXJkX3N0YXJ0ZmlsZV9wcmVmaXhfMls0MDk2XSBfX2F0dHJpYnV0ZV9fICgoc2VjdGlvbiAoIi5nY2NyZWxvY3ByZWZpeCIpKSkKLSAgID0gU1RBTkRBUkRfU1RBUlRGSUxFX1BSRUZJWF8yOwotIAotIC8qIEEgcmVsYXRpdmUgcGF0aCB0byBiZSB1c2VkIGluIGZpbmRpbmcgdGhlIGxvY2F0aW9uIG9mIHRvb2xzCi1AQCAtNTg0OSw2ICs1ODUyLDExIEBAIGRvX3NwZWNfMSAoY29uc3QgY2hhciAqc3BlYywgaW50IGluc3dpdGNoLCBjb25zdCBjaGFyICpzb2Z0X21hdGNoZWRfcGFydCkKLSAJICAgICAgfQotIAkgICAgYnJlYWs7Ci0gCi0rICAgICAgICAgIGNhc2UgJ3InOgotKyAgICAgICAgICAgICAgb2JzdGFja19ncm93ICgmb2JzdGFjaywgdGFyZ2V0X3JlbG9jYXRhYmxlX3ByZWZpeCwKLSsJCSAgICAgIHN0cmxlbiAodGFyZ2V0X3JlbG9jYXRhYmxlX3ByZWZpeCkpOwotKyAgICAgICAgICAgIGJyZWFrOwotKwotIAkgIGNhc2UgJ1MnOgotIAkgICAgdmFsdWUgPSBkb19zcGVjXzEgKHN0YXJ0ZmlsZV9zcGVjLCAwLCBOVUxMKTsKLSAJICAgIGlmICh2YWx1ZSAhPSAwKQotLS0gCi0yLjIxLjAKLQpkaWZmIC0tZ2l0IGEvcG9reS9tZXRhL3JlY2lwZXMtZGV2dG9vbHMvZ2NjL2djYy04LjMvMDAyOC1TZWFyY2gtdGFyZ2V0LXN5c3Jvb3QtZ2NjLXZlcnNpb24tc3BlY2lmaWMtZGlycy13aXRoLnBhdGNoIGIvcG9reS9tZXRhL3JlY2lwZXMtZGV2dG9vbHMvZ2NjL2djYy04LjMvMDAyOC1TZWFyY2gtdGFyZ2V0LXN5c3Jvb3QtZ2NjLXZlcnNpb24tc3BlY2lmaWMtZGlycy13aXRoLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxYjI1ZDc4Li4wMDAwMDAwCi0tLSBhL3Bva3kvbWV0YS9yZWNpcGVzLWRldnRvb2xzL2djYy9nY2MtOC4zLzAwMjgtU2VhcmNoLXRhcmdldC1zeXNyb290LWdjYy12ZXJzaW9uLXNwZWNpZmljLWRpcnMtd2l0aC5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDEwMiArMCwwIEBACi1Gcm9tIDYyMjQwZDRjNzI1ZWEwYjQzYWJmYjkwMWRkYWQ5MGU4M2UyOWEyNWMgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBLaGVtIFJhaiA8cmFqLmtoZW1AZ21haWwuY29tPgotRGF0ZTogTW9uLCA3IERlYyAyMDE1IDIzOjQxOjQ1ICswMDAwCi1TdWJqZWN0OiBbUEFUQ0ggMjgvNDBdIFNlYXJjaCB0YXJnZXQgc3lzcm9vdCBnY2MgdmVyc2lvbiBzcGVjaWZpYyBkaXJzIHdpdGgKLSBtdWx0aWxpYi4KLQotV2UgaW5zdGFsbCB0aGUgZ2NjIGxpYnJhcmllcyAoc3VjaCBhcyBjcnRiZWdpbi5wKSBpbnRvCi08c3lzcm9vdD48bGliZGlyPi88dGFyZ2V0LXN5cz4vNS4yLjAvCi13aGljaCBpcyBhIGRlZmF1bHQgc2VhcmNoIHBhdGggZm9yIEdDQyAoYWthIG11bHRpX3N1ZmZpeCBpbiB0aGUKLWNvZGUgYmVsb3cpLiA8dGFyZ2V0LXN5cz4gaXMgJ21hY2hpbmUnIGluIGdjYydzIHRlcm1pbm9sb2d5LiBXZSB1c2UKLXRoZXNlIGRpcmVjdG9yaWVzIHNvIHRoYXQgbXVsdGlwbGUgZ2NjIHZlcnNpb25zIGNvdWxkIGluIHRoZW9yeQotY28tZXhpc3Qgb24gdGFyZ2V0LgotCi1XZSBvbmx5IHdhbnQgdG8gYnVpbGQgb25lIGdjYy1jcm9zcy1jYW5hZGlhbiBwZXIgYXJjaCBhbmQgaGF2ZSB0aGlzIHdvcmsKLWZvciBhbGwgbXVsdGlsaWJzLiA8dGFyZ2V0LXN5cz4gY2FuIGJlIGhhbmRsZWQgYnkgbWFwcGluZyB0aGUgbXVsdGlsaWIKLTx0YXJnZXQtc3lzPiB0byB0aGUgb25lIHVzZWQgYnkgZ2NjLWNyb3NzLWNhbmFkaWFuLCBlLmcuCi1taXBzNjQtcG9sa21sbGliMzItbGludXgKLWlzIHN5bWxpbmtlZCB0byBieSBtaXBzNjQtcG9reS1saW51eC4KLQotVGhlIGRlZmF1bHQgZ2NjIHNlYXJjaCBwYXRoIGluIHRoZSB0YXJnZXQgc3lzcm9vdCBmb3IgYSAibGliNjQiIG11dGxpbGliCi1pczoKLQotPHN5c3Jvb3Q+L2xpYjMyL21pcHM2NC1wb2t5LWxpbnV4LzUuMi4wLwotPHN5c3Jvb3Q+L2xpYjMyLy4uL2xpYjY0LwotPHN5c3Jvb3Q+L3Vzci9saWIzMi9taXBzNjQtcG9reS1saW51eC81LjIuMC8KLTxzeXNyb290Pi91c3IvbGliMzIvLi4vbGliNjQvCi08c3lzcm9vdD4vbGliMzIvCi08c3lzcm9vdD4vdXNyL2xpYjMyLwotCi13aGljaCBtZWFucyB0aGF0IHRoZSBsaWIzMiBjcnRiZWdpbi5vIHdpbGwgYmUgZm91bmQgYW5kIHRoZSBsaWI2NCBvbmVzCi13aWxsIG5vdCB3aGljaCBsZWFkcyB0byBjb21waWxlciBmYWlsdXJlcy4KLQotVGhpcyBwYXRjaCBpbmplY3RzIGEgbXVsdGlsaWIgdmVyc2lvbiBvZiB0aGF0IHBhdGggZmlyc3Qgc28gdGhlIGxpYjY0Ci1iaW5hcmllcyBjYW4gYmUgZm91bmQgZmlyc3QuIFdpdGggdGhpcyBjaGFuZ2UgdGhlIHNlYXJjaCBwYXRoIGJlY29tZXM6Ci0KLTxzeXNyb290Pi9saWIzMi8uLi9saWI2NC9taXBzNjQtcG9reS1saW51eC81LjIuMC8KLTxzeXNyb290Pi9saWIzMi9taXBzNjQtcG9reS1saW51eC81LjIuMC8KLTxzeXNyb290Pi9saWIzMi8uLi9saWI2NC8KLTxzeXNyb290Pi91c3IvbGliMzIvLi4vbGliNjQvbWlwczY0LXBva3ktbGludXgvNS4yLjAvCi08c3lzcm9vdD4vdXNyL2xpYjMyL21pcHM2NC1wb2t5LWxpbnV4LzUuMi4wLwotPHN5c3Jvb3Q+L3Vzci9saWIzMi8uLi9saWI2NC8KLTxzeXNyb290Pi9saWIzMi8KLTxzeXNyb290Pi91c3IvbGliMzIvCi0KLVVwc3RyZWFtLVN0YXR1czogUGVuZGluZwotUlAgMjAxNS83LzMxCi0KLVNpZ25lZC1vZmYtYnk6IEtoZW0gUmFqIDxyYWoua2hlbUBnbWFpbC5jb20+Ci0tLS0KLSBnY2MvZ2NjLmMgfCAyOSArKysrKysrKysrKysrKysrKysrKysrKysrKysrLQotIDEgZmlsZSBjaGFuZ2VkLCAyOCBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCi0KLWRpZmYgLS1naXQgYS9nY2MvZ2NjLmMgYi9nY2MvZ2NjLmMKLWluZGV4IGNkMGM3ZmJlOTYxLi5mNmYzYWEwNzdjOCAxMDA2NDQKLS0tLSBhL2djYy9nY2MuYwotKysrIGIvZ2NjL2djYy5jCi1AQCAtMjUyNyw3ICsyNTI3LDcgQEAgZm9yX2VhY2hfcGF0aCAoY29uc3Qgc3RydWN0IHBhdGhfcHJlZml4ICpwYXRocywKLSAgICAgICBpZiAocGF0aCA9PSBOVUxMKQotIAl7Ci0gCSAgbGVuID0gcGF0aHMtPm1heF9sZW4gKyBleHRyYV9zcGFjZSArIDE7Ci0tCSAgbGVuICs9IE1BWCAoTUFYIChzdWZmaXhfbGVuLCBtdWx0aV9vc19kaXJfbGVuKSwgbXVsdGlhcmNoX2xlbik7Ci0rCSAgbGVuICs9IE1BWCAoKHN1ZmZpeF9sZW4gKyBtdWx0aV9vc19kaXJfbGVuKSwgbXVsdGlhcmNoX2xlbik7Ci0gCSAgcGF0aCA9IFhORVdWRUMgKGNoYXIsIGxlbik7Ci0gCX0KLSAKLUBAIC0yNTM5LDYgKzI1MzksMzMgQEAgZm9yX2VhY2hfcGF0aCAoY29uc3Qgc3RydWN0IHBhdGhfcHJlZml4ICpwYXRocywKLSAJICAvKiBMb29rIGZpcnN0IGluIE1BQ0hJTkUvVkVSU0lPTiBzdWJkaXJlY3RvcnkuICAqLwotIAkgIGlmICghc2tpcF9tdWx0aV9kaXIpCi0gCSAgICB7Ci0rCSAgICAgIGlmICghKHBsLT5vc19tdWx0aWxpYiA/IHNraXBfbXVsdGlfb3NfZGlyIDogc2tpcF9tdWx0aV9kaXIpKQotKwkgICAgICAgIHsKLSsJICAgICAgICAgIGNvbnN0IGNoYXIgKnRoaXNfbXVsdGk7Ci0rCSAgICAgICAgICBzaXplX3QgdGhpc19tdWx0aV9sZW47Ci0rCi0rCSAgICAgICAgICBpZiAocGwtPm9zX211bHRpbGliKQotKwkJICAgIHsKLSsJCSAgICAgIHRoaXNfbXVsdGkgPSBtdWx0aV9vc19kaXI7Ci0rCQkgICAgICB0aGlzX211bHRpX2xlbiA9IG11bHRpX29zX2Rpcl9sZW47Ci0rCQkgICAgfQotKwkgICAgICAgICAgZWxzZQotKwkJICAgIHsKLSsJCSAgICAgIHRoaXNfbXVsdGkgPSBtdWx0aV9kaXI7Ci0rCQkgICAgICB0aGlzX211bHRpX2xlbiA9IG11bHRpX2Rpcl9sZW47Ci0rCQkgICAgfQotKwotKwkgICAgICAgICAgLyogTG9vayBpbiBtdWx0aWxpYiBNQUNISU5FL1ZFUlNJT04gc3ViZGlyZWN0b3J5IGZpcnN0ICovCi0rCSAgICAgICAgICBpZiAodGhpc19tdWx0aV9sZW4pCi0rCSAgICAgICAgICAgIHsKLSsJCSAgICAgIG1lbWNweSAocGF0aCArIGxlbiwgdGhpc19tdWx0aSwgdGhpc19tdWx0aV9sZW4gKyAxKTsKLSsJICAgICAgICAgICAgICBtZW1jcHkgKHBhdGggKyBsZW4gKyB0aGlzX211bHRpX2xlbiwgbXVsdGlfc3VmZml4LCBzdWZmaXhfbGVuICsgMSk7Ci0rCSAgICAgICAgICAgICAgcmV0ID0gY2FsbGJhY2sgKHBhdGgsIGNhbGxiYWNrX2luZm8pOwotKwkgICAgICAgICAgICAgICAgaWYgKHJldCkKLSsJCSAgICAgICAgICBicmVhazsKLSsJICAgICAgICAgICAgfQotKwkgICAgICAgIH0KLSsKLSAJICAgICAgbWVtY3B5IChwYXRoICsgbGVuLCBtdWx0aV9zdWZmaXgsIHN1ZmZpeF9sZW4gKyAxKTsKLSAJICAgICAgcmV0ID0gY2FsbGJhY2sgKHBhdGgsIGNhbGxiYWNrX2luZm8pOwotIAkgICAgICBpZiAocmV0KQotLS0gCi0yLjIxLjAKLQpkaWZmIC0tZ2l0IGEvcG9reS9tZXRhL3JlY2lwZXMtZGV2dG9vbHMvZ2NjL2djYy04LjMvMDAyOS1GaXgtdmFyaW91cy1fRk9SX0JVSUxELWFuZC1yZWxhdGVkLXZhcmlhYmxlcy5wYXRjaCBiL3Bva3kvbWV0YS9yZWNpcGVzLWRldnRvb2xzL2djYy9nY2MtOC4zLzAwMjktRml4LXZhcmlvdXMtX0ZPUl9CVUlMRC1hbmQtcmVsYXRlZC12YXJpYWJsZXMucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDBjOGJkYjEuLjAwMDAwMDAKLS0tIGEvcG9reS9tZXRhL3JlY2lwZXMtZGV2dG9vbHMvZ2NjL2djYy04LjMvMDAyOS1GaXgtdmFyaW91cy1fRk9SX0JVSUxELWFuZC1yZWxhdGVkLXZhcmlhYmxlcy5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDEzNyArMCwwIEBACi1Gcm9tIDEzNzdjNzM4ZTMxYTFlMTU5OWNmYWIxODk0ODVhOTQ1OWY4MDNlNzkgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBLaGVtIFJhaiA8cmFqLmtoZW1AZ21haWwuY29tPgotRGF0ZTogTW9uLCA3IERlYyAyMDE1IDIzOjQyOjQ1ICswMDAwCi1TdWJqZWN0OiBbUEFUQ0ggMjkvNDBdIEZpeCB2YXJpb3VzIF9GT1JfQlVJTEQgYW5kIHJlbGF0ZWQgdmFyaWFibGVzCi0KLVdoZW4gZG9pbmcgYSBGT1JfQlVJTEQgdGhpbmcsIHlvdSBoYXZlIHRvIG92ZXJyaWRlIENGTEFHUyB3aXRoCi1DRkxBR1NfRk9SX0JVSUxELiBBbmQgaWYgeW91IHVzZSBDKyssIHlvdSBhbHNvIGhhdmUgdG8gb3ZlcnJpZGUKLUNYWEZMQUdTIHdpdGggQ1hYRkxBR1NfRk9SX0JVSUxELgotV2l0aG91dCB0aGlzLCB3aGVuIGJ1aWxkaW5nIGZvciBtaW5ndywgeW91IGVuZCB1cCB0cnlpbmcgdG8gdXNlCi10aGUgbWluZ3cgaGVhZGVycyBmb3IgYSBob3N0IGJ1aWxkLgotCi1UaGUgc2FtZSBnb2VzIGZvciBvdGhlciB2YXJpYWJsZXMgYXMgd2VsbCwgc3VjaCBhcyBDUFBGTEFHUywKLUNQUCwgYW5kIEdNUElOQy4KLQotVXBzdHJlYW0tU3RhdHVzOiBQZW5kaW5nCi0KLVNpZ25lZC1vZmYtYnk6IFBldGVyIFNlZWJhY2ggPHBldGVyLnNlZWJhY2hAd2luZHJpdmVyLmNvbT4KLVNpZ25lZC1vZmYtYnk6IE1hcmsgSGF0bGUgPG1hcmsuaGF0bGVAd2luZHJpdmVyLmNvbT4KLVNpZ25lZC1vZmYtYnk6IEtoZW0gUmFqIDxyYWoua2hlbUBnbWFpbC5jb20+Ci0tLS0KLSBNYWtlZmlsZS5pbiAgICAgIHwgNiArKysrKysKLSBNYWtlZmlsZS50cGwgICAgIHwgNSArKysrKwotIGdjYy9NYWtlZmlsZS5pbiAgfCAyICstCi0gZ2NjL2NvbmZpZ3VyZSAgICB8IDIgKy0KLSBnY2MvY29uZmlndXJlLmFjIHwgMiArLQotIDUgZmlsZXMgY2hhbmdlZCwgMTQgaW5zZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMoLSkKLQotZGlmZiAtLWdpdCBhL01ha2VmaWxlLmluIGIvTWFrZWZpbGUuaW4KLWluZGV4IGI0MjZkNGY5MzUwLi5hMmFmOTkwNWNjZSAxMDA2NDQKLS0tLSBhL01ha2VmaWxlLmluCi0rKysgYi9NYWtlZmlsZS5pbgotQEAgLTE1Miw2ICsxNTIsNyBAQCBCVUlMRF9FWFBPUlRTID0gXAotIAlDUFA9IiQoQ0NfRk9SX0JVSUxEKSAtRSI7IGV4cG9ydCBDUFA7IFwKLSAJQ0ZMQUdTPSIkKENGTEFHU19GT1JfQlVJTEQpIjsgZXhwb3J0IENGTEFHUzsgXAotIAlDT05GSUdfU0hFTEw9IiQoU0hFTEwpIjsgZXhwb3J0IENPTkZJR19TSEVMTDsgXAotKwlDUFBGTEFHUz0iJChDUFBGTEFHU19GT1JfQlVJTEQpIjsgZXhwb3J0IENQUEZMQUdTOyBcCi0gCUNYWD0iJChDWFhfRk9SX0JVSUxEKSI7IGV4cG9ydCBDWFg7IFwKLSAJQ1hYRkxBR1M9IiQoQ1hYRkxBR1NfRk9SX0JVSUxEKSI7IGV4cG9ydCBDWFhGTEFHUzsgXAotIAlHRk9SVFJBTj0iJChHRk9SVFJBTl9GT1JfQlVJTEQpIjsgZXhwb3J0IEdGT1JUUkFOOyBcCi1AQCAtMTY5LDYgKzE3MCw5IEBAIEJVSUxEX0VYUE9SVFMgPSBcCi0gIyBidWlsdCBmb3IgdGhlIGJ1aWxkIHN5c3RlbSB0byBvdmVycmlkZSB0aG9zZSBpbiBCQVNFX0ZMQUdTX1RPX1BBU1MuCi0gRVhUUkFfQlVJTERfRkxBR1MgPSBcCi0gCUNGTEFHUz0iJChDRkxBR1NfRk9SX0JVSUxEKSIgXAotKwlDWFhGTEFHUz0iJChDWFhGTEFHU19GT1JfQlVJTEQpIiBcCi0rCUNQUD0iJChDQ19GT1JfQlVJTEQpIC1FIiBcCi0rCUNQUEZMQUdTPSIkKENQUEZMQUdTX0ZPUl9CVUlMRCkiIFwKLSAJTERGTEFHUz0iJChMREZMQUdTX0ZPUl9CVUlMRCkiCi0gCi0gIyBUaGlzIGlzIHRoZSBsaXN0IG9mIGRpcmVjdG9yaWVzIHRvIGJ1aWx0IGZvciB0aGUgaG9zdCBzeXN0ZW0uCi1AQCAtMTg2LDYgKzE5MCw3IEBAIEhPU1RfU1VCRElSID0gQGhvc3Rfc3ViZGlyQAotIEhPU1RfRVhQT1JUUyA9IFwKLSAJJChCQVNFX0VYUE9SVFMpIFwKLSAJQ0M9IiQoQ0MpIjsgZXhwb3J0IENDOyBcCi0rCUNQUD0iJChDQykgLUUiOyBleHBvcnQgQ1BQOyBcCi0gCUFEQV9DRkxBR1M9IiQoQURBX0NGTEFHUykiOyBleHBvcnQgQURBX0NGTEFHUzsgXAotIAlDRkxBR1M9IiQoQ0ZMQUdTKSI7IGV4cG9ydCBDRkxBR1M7IFwKLSAJQ09ORklHX1NIRUxMPSIkKFNIRUxMKSI7IGV4cG9ydCBDT05GSUdfU0hFTEw7IFwKLUBAIC03NDMsNiArNzQ4LDcgQEAgQkFTRV9GTEFHU19UT19QQVNTID0gXAotIAkiQ0NfRk9SX0JVSUxEPSQoQ0NfRk9SX0JVSUxEKSIgXAotIAkiQ0ZMQUdTX0ZPUl9CVUlMRD0kKENGTEFHU19GT1JfQlVJTEQpIiBcCi0gCSJDWFhfRk9SX0JVSUxEPSQoQ1hYX0ZPUl9CVUlMRCkiIFwKLSsJIkNYWEZMQUdTX0ZPUl9CVUlMRD0kKENYWEZMQUdTX0ZPUl9CVUlMRCkiIFwKLSAJIkVYUEVDVD0kKEVYUEVDVCkiIFwKLSAJIkZMRVg9JChGTEVYKSIgXAotIAkiSU5TVEFMTD0kKElOU1RBTEwpIiBcCi1kaWZmIC0tZ2l0IGEvTWFrZWZpbGUudHBsIGIvTWFrZWZpbGUudHBsCi1pbmRleCAxZjIzYjc5YjRiMi4uNmM1NjUyZTgxMWQgMTAwNjQ0Ci0tLS0gYS9NYWtlZmlsZS50cGwKLSsrKyBiL01ha2VmaWxlLnRwbAotQEAgLTE1NCw2ICsxNTQsNyBAQCBCVUlMRF9FWFBPUlRTID0gXAotIAlDQz0iJChDQ19GT1JfQlVJTEQpIjsgZXhwb3J0IENDOyBcCi0gCUNGTEFHUz0iJChDRkxBR1NfRk9SX0JVSUxEKSI7IGV4cG9ydCBDRkxBR1M7IFwKLSAJQ09ORklHX1NIRUxMPSIkKFNIRUxMKSI7IGV4cG9ydCBDT05GSUdfU0hFTEw7IFwKLSsJQ1BQRkxBR1M9IiQoQ1BQRkxBR1NfRk9SX0JVSUxEKSI7IGV4cG9ydCBDUFBGTEFHUzsgXAotIAlDWFg9IiQoQ1hYX0ZPUl9CVUlMRCkiOyBleHBvcnQgQ1hYOyBcCi0gCUNYWEZMQUdTPSIkKENYWEZMQUdTX0ZPUl9CVUlMRCkiOyBleHBvcnQgQ1hYRkxBR1M7IFwKLSAJR0ZPUlRSQU49IiQoR0ZPUlRSQU5fRk9SX0JVSUxEKSI7IGV4cG9ydCBHRk9SVFJBTjsgXAotQEAgLTE3MSw2ICsxNzIsOSBAQCBCVUlMRF9FWFBPUlRTID0gXAotICMgYnVpbHQgZm9yIHRoZSBidWlsZCBzeXN0ZW0gdG8gb3ZlcnJpZGUgdGhvc2UgaW4gQkFTRV9GTEFHU19UT19QQVNTLgotIEVYVFJBX0JVSUxEX0ZMQUdTID0gXAotIAlDRkxBR1M9IiQoQ0ZMQUdTX0ZPUl9CVUlMRCkiIFwKLSsJQ1hYRkxBR1M9IiQoQ1hYRkxBR1NfRk9SX0JVSUxEKSIgXAotKwlDUFA9IiQoQ0NfRk9SX0JVSUxEKSAtRSIgXAotKwlDUFBGTEFHUz0iJChDUFBGTEFHU19GT1JfQlVJTEQpIiBcCi0gCUxERkxBR1M9IiQoTERGTEFHU19GT1JfQlVJTEQpIgotIAotICMgVGhpcyBpcyB0aGUgbGlzdCBvZiBkaXJlY3RvcmllcyB0byBidWlsdCBmb3IgdGhlIGhvc3Qgc3lzdGVtLgotQEAgLTE4OCw2ICsxOTIsNyBAQCBIT1NUX1NVQkRJUiA9IEBob3N0X3N1YmRpckAKLSBIT1NUX0VYUE9SVFMgPSBcCi0gCSQoQkFTRV9FWFBPUlRTKSBcCi0gCUNDPSIkKENDKSI7IGV4cG9ydCBDQzsgXAotKwlDUFA9IiQoQ0MpIC1FIjsgZXhwb3J0IENQUDsgXAotIAlBREFfQ0ZMQUdTPSIkKEFEQV9DRkxBR1MpIjsgZXhwb3J0IEFEQV9DRkxBR1M7IFwKLSAJQ0ZMQUdTPSIkKENGTEFHUykiOyBleHBvcnQgQ0ZMQUdTOyBcCi0gCUNPTkZJR19TSEVMTD0iJChTSEVMTCkiOyBleHBvcnQgQ09ORklHX1NIRUxMOyBcCi1kaWZmIC0tZ2l0IGEvZ2NjL01ha2VmaWxlLmluIGIvZ2NjL01ha2VmaWxlLmluCi1pbmRleCA1YWU2OTNmYjA2Yy4uMDJlZTBhYTcyZjQgMTAwNjQ0Ci0tLS0gYS9nY2MvTWFrZWZpbGUuaW4KLSsrKyBiL2djYy9NYWtlZmlsZS5pbgotQEAgLTgwMSw3ICs4MDEsNyBAQCBCVUlMRF9MREZMQUdTPUBCVUlMRF9MREZMQUdTQAotIEJVSUxEX05PX1BJRV9GTEFHID0gQEJVSUxEX05PX1BJRV9GTEFHQAotIEJVSUxEX0xERkxBR1MgKz0gJChCVUlMRF9OT19QSUVfRkxBRykKLSBCVUlMRF9DUFBGTEFHUz0gLUkuIC1JJChARCkgLUkkKHNyY2RpcikgLUkkKHNyY2RpcikvJChARCkgXAotLQkJLUkkKHNyY2RpcikvLi4vaW5jbHVkZSBASU5DSU5UTEAgJChDUFBJTkMpICQoQ1BQRkxBR1MpCi0rCQktSSQoc3JjZGlyKS8uLi9pbmNsdWRlIEBJTkNJTlRMQCAkKENQUElOQykgJChDUFBGTEFHU19GT1JfQlVJTEQpCi0gCi0gIyBBY3R1YWwgbmFtZSB0byB1c2Ugd2hlbiBpbnN0YWxsaW5nIGEgbmF0aXZlIGNvbXBpbGVyLgotIEdDQ19JTlNUQUxMX05BTUUgOj0gJChzaGVsbCBlY2hvIGdjY3xzZWQgJyQocHJvZ3JhbV90cmFuc2Zvcm1fbmFtZSknKQotZGlmZiAtLWdpdCBhL2djYy9jb25maWd1cmUgYi9nY2MvY29uZmlndXJlCi1pbmRleCAzZDlkY2JkYzkzZC4uYWExMjdhNGY2YTQgMTAwNzU1Ci0tLS0gYS9nY2MvY29uZmlndXJlCi0rKysgYi9nY2MvY29uZmlndXJlCi1AQCAtMTE3OTcsNyArMTE3OTcsNyBAQCBlbHNlCi0gCUNDPSIke0NDX0ZPUl9CVUlMRH0iIENGTEFHUz0iJHtDRkxBR1NfRk9SX0JVSUxEfSIgXAotIAlDWFg9IiR7Q1hYX0ZPUl9CVUlMRH0iIENYWEZMQUdTPSIke0NYWEZMQUdTX0ZPUl9CVUlMRH0iIFwKLSAJTEQ9IiR7TERfRk9SX0JVSUxEfSIgTERGTEFHUz0iJHtMREZMQUdTX0ZPUl9CVUlMRH0iIFwKLS0JR01QSU5DPSIiIENQUEZMQUdTPSIke0NQUEZMQUdTfSAtREdFTkVSQVRPUl9GSUxFIiBcCi0rCUdNUElOQz0iIiBDUFBGTEFHUz0iJHtDUFBGTEFHU19GT1JfQlVJTER9IC1ER0VORVJBVE9SX0ZJTEUiIFwKLSAJJHtyZWFsc3JjZGlyfS9jb25maWd1cmUgXAotIAkJLS1lbmFibGUtbGFuZ3VhZ2VzPSR7ZW5hYmxlX2xhbmd1YWdlcy1hbGx9IFwKLSAJCS0tdGFyZ2V0PSR0YXJnZXRfYWxpYXMgLS1ob3N0PSRidWlsZF9hbGlhcyAtLWJ1aWxkPSRidWlsZF9hbGlhcwotZGlmZiAtLWdpdCBhL2djYy9jb25maWd1cmUuYWMgYi9nY2MvY29uZmlndXJlLmFjCi1pbmRleCBlMDljODQwYjYwNS4uMThiZjUzYzdlMGEgMTAwNjQ0Ci0tLS0gYS9nY2MvY29uZmlndXJlLmFjCi0rKysgYi9nY2MvY29uZmlndXJlLmFjCi1AQCAtMTcwOCw3ICsxNzA4LDcgQEAgZWxzZQotIAlDQz0iJHtDQ19GT1JfQlVJTER9IiBDRkxBR1M9IiR7Q0ZMQUdTX0ZPUl9CVUlMRH0iIFwKLSAJQ1hYPSIke0NYWF9GT1JfQlVJTER9IiBDWFhGTEFHUz0iJHtDWFhGTEFHU19GT1JfQlVJTER9IiBcCi0gCUxEPSIke0xEX0ZPUl9CVUlMRH0iIExERkxBR1M9IiR7TERGTEFHU19GT1JfQlVJTER9IiBcCi0tCUdNUElOQz0iIiBDUFBGTEFHUz0iJHtDUFBGTEFHU30gLURHRU5FUkFUT1JfRklMRSIgXAotKwlHTVBJTkM9IiIgQ1BQRkxBR1M9IiR7Q1BQRkxBR1NfRk9SX0JVSUxEfSAtREdFTkVSQVRPUl9GSUxFIiBcCi0gCSR7cmVhbHNyY2Rpcn0vY29uZmlndXJlIFwKLSAJCS0tZW5hYmxlLWxhbmd1YWdlcz0ke2VuYWJsZV9sYW5ndWFnZXMtYWxsfSBcCi0gCQktLXRhcmdldD0kdGFyZ2V0X2FsaWFzIC0taG9zdD0kYnVpbGRfYWxpYXMgLS1idWlsZD0kYnVpbGRfYWxpYXMKLS0tIAotMi4yMS4wCi0KZGlmZiAtLWdpdCBhL3Bva3kvbWV0YS9yZWNpcGVzLWRldnRvb2xzL2djYy9nY2MtOC4zLzAwMzAtbmlvczItRGVmaW5lLU1VU0xfRFlOQU1JQ19MSU5LRVIucGF0Y2ggYi9wb2t5L21ldGEvcmVjaXBlcy1kZXZ0b29scy9nY2MvZ2NjLTguMy8wMDMwLW5pb3MyLURlZmluZS1NVVNMX0RZTkFNSUNfTElOS0VSLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwNGUxMjZjLi4wMDAwMDAwCi0tLSBhL3Bva3kvbWV0YS9yZWNpcGVzLWRldnRvb2xzL2djYy9nY2MtOC4zLzAwMzAtbmlvczItRGVmaW5lLU1VU0xfRFlOQU1JQ19MSU5LRVIucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwyOCArMCwwIEBACi1Gcm9tIDc1ZGEzY2M5Y2EyZDNkZThjMjA2MmYyM2JmNGY3MjQxNTc0MWVmODMgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBLaGVtIFJhaiA8cmFqLmtoZW1AZ21haWwuY29tPgotRGF0ZTogVHVlLCAyIEZlYiAyMDE2IDEwOjI2OjEwIC0wODAwCi1TdWJqZWN0OiBbUEFUQ0ggMzAvNDBdIG5pb3MyOiBEZWZpbmUgTVVTTF9EWU5BTUlDX0xJTktFUgotCi1VcHN0cmVhbS1TdGF0dXM6IFBlbmRpbmcKLQotU2lnbmVkLW9mZi1ieTogTWFyZWsgVmFzdXQgPG1hcmV4QGRlbnguZGU+Ci1TaWduZWQtb2ZmLWJ5OiBLaGVtIFJhaiA8cmFqLmtoZW1AZ21haWwuY29tPgotLS0tCi0gZ2NjL2NvbmZpZy9uaW9zMi9saW51eC5oIHwgMSArCi0gMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspCi0KLWRpZmYgLS1naXQgYS9nY2MvY29uZmlnL25pb3MyL2xpbnV4LmggYi9nY2MvY29uZmlnL25pb3MyL2xpbnV4LmgKLWluZGV4IDQ3MjkxMDU2MjZkLi4zNjE4MWViN2I4NSAxMDA2NDQKLS0tLSBhL2djYy9jb25maWcvbmlvczIvbGludXguaAotKysrIGIvZ2NjL2NvbmZpZy9uaW9zMi9saW51eC5oCi1AQCAtMzAsNiArMzAsNyBAQAotICNkZWZpbmUgQ1BQX1NQRUMgIiV7cG9zaXg6LURfUE9TSVhfU09VUkNFfSAle3B0aHJlYWQ6LURfUkVFTlRSQU5UfSIKLSAKLSAjZGVmaW5lIEdMSUJDX0RZTkFNSUNfTElOS0VSICIvbGliL2xkLWxpbnV4LW5pb3MyLnNvLjEiCi0rI2RlZmluZSBNVVNMX0RZTkFNSUNfTElOS0VSICAiL2xpYi9sZC1tdXNsLW5pb3MyLnNvLjEiCi0gCi0gI3VuZGVmIExJTktfU1BFQwotICNkZWZpbmUgTElOS19TUEVDIExJTktfU1BFQ19FTkRJQU4gXAotLS0gCi0yLjIxLjAKLQpkaWZmIC0tZ2l0IGEvcG9reS9tZXRhL3JlY2lwZXMtZGV2dG9vbHMvZ2NjL2djYy04LjMvMDAzMS1BZGQtc3NwX25vbnNoYXJlZC10by1saW5rLWNvbW1hbmRsaW5lLWZvci1tdXNsLXRhcmdlLnBhdGNoIGIvcG9reS9tZXRhL3JlY2lwZXMtZGV2dG9vbHMvZ2NjL2djYy04LjMvMDAzMS1BZGQtc3NwX25vbnNoYXJlZC10by1saW5rLWNvbW1hbmRsaW5lLWZvci1tdXNsLXRhcmdlLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDJjZjJiLi4wMDAwMDAwCi0tLSBhL3Bva3kvbWV0YS9yZWNpcGVzLWRldnRvb2xzL2djYy9nY2MtOC4zLzAwMzEtQWRkLXNzcF9ub25zaGFyZWQtdG8tbGluay1jb21tYW5kbGluZS1mb3ItbXVzbC10YXJnZS5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDg3ICswLDAgQEAKLUZyb20gZjcxNWFlZWYyOTRiODVmYTU5M2VmNjllNmQwMTE0Y2M3YjE1MzEyYiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IEtoZW0gUmFqIDxyYWoua2hlbUBnbWFpbC5jb20+Ci1EYXRlOiBUdWUsIDI3IEp1biAyMDE3IDE4OjEwOjU0IC0wNzAwCi1TdWJqZWN0OiBbUEFUQ0ggMzEvNDBdIEFkZCBzc3Bfbm9uc2hhcmVkIHRvIGxpbmsgY29tbWFuZGxpbmUgZm9yIG11c2wgdGFyZ2V0cwotCi13aGVuIC1mc3RhY2stcHJvdGVjdG9yIG9wdGlvbnMgYXJlIGVuYWJsZWQgd2UgbmVlZCB0bwotbGluayB3aXRoIHNzcF9zaGFyZWQgb24gbXVzbCBzaW5jZSBpdCBkb2VzIG5vdCBwcm92aWRlCi10aGUgX19zdGFja19jaGtfZmFpbF9sb2NhbCgpIHNvIGVzc2VudGlhbGx5IGl0IHByb3ZpZGVzCi1saWJzc3AgYnV0IG5vdCBsaWJzc3Bfbm9uc2hhcmVkIHNvbWV0aGluZyBsaWtlCi1UQVJHRVRfTElCQ19QUk9WSURFU19TU1BfQlVUX05PVF9TU1BfTk9OU0hBUkVECi0gd2hlcmUtYXMgZm9yIGdsaWJjIHRoZSBuZWVkZWQgc3ltYm9scwotYXJlIGFscmVhZHkgcHJlc2VudCBpbiBsaWJjX25vbnNoYXJlZCBsaWJyYXJ5IHRoZXJlZm9yZQotd2UgZG8gbm90IG5lZWQgYW55IGxpYnJhcnkgaGVscGVyIG9uIGdsaWJjIGJhc2VkIHN5c3RlbXMKLWJ1dCBtdXNsIG5lZWRzIHRoZSBsaWJzc3Bfbm9zaGFyZWQgZnJvbSBnY2MKLQotVXBzdHJlYW0tU3RhdHVzOiBQZW5kaW5nCi0KLVNpZ25lZC1vZmYtYnk6IEtoZW0gUmFqIDxyYWoua2hlbUBnbWFpbC5jb20+Ci0tLS0KLSBnY2MvY29uZmlnL2xpbnV4LmggICAgICAgICAgfCAgNyArKysrKysrCi0gZ2NjL2NvbmZpZy9yczYwMDAvbGludXguaCAgIHwgMTAgKysrKysrKysrKwotIGdjYy9jb25maWcvcnM2MDAwL2xpbnV4NjQuaCB8IDEwICsrKysrKysrKysKLSAzIGZpbGVzIGNoYW5nZWQsIDI3IGluc2VydGlvbnMoKykKLQotZGlmZiAtLWdpdCBhL2djYy9jb25maWcvbGludXguaCBiL2djYy9jb25maWcvbGludXguaAotaW5kZXggNDg3YjBjMDkyM2IuLjQ3NjlkMDg5NTM4IDEwMDY0NAotLS0tIGEvZ2NjL2NvbmZpZy9saW51eC5oCi0rKysgYi9nY2MvY29uZmlnL2xpbnV4LmgKLUBAIC0xODIsNiArMTgyLDEzIEBAIHNlZSB0aGUgZmlsZXMgQ09QWUlORzMgYW5kIENPUFlJTkcuUlVOVElNRSByZXNwZWN0aXZlbHkuICBJZiBub3QsIHNlZQotICAgICB7IEdDQ19JTkNMVURFX0RJUiwgIkdDQyIsIDAsIDEsIDAsIDAgfSwJCVwKLSAgICAgeyAwLCAwLCAwLCAwLCAwLCAwIH0JCQkJXAotICAgfQotKyNpZmRlZiBUQVJHRVRfTElCQ19QUk9WSURFU19TU1AKLSsjdW5kZWYgTElOS19TU1BfU1BFQwotKyNkZWZpbmUgTElOS19TU1BfU1BFQyAiJXtmc3RhY2stcHJvdGVjdG9yfGZzdGFjay1wcm90ZWN0b3ItYWxsIiBcCi0rCQkgICAgICAgInxmc3RhY2stcHJvdGVjdG9yLXN0cm9uZ3xmc3RhY2stcHJvdGVjdG9yLWV4cGxpY2l0IiBcCi0rCQkgICAgICAgIjotbHNzcF9ub25zaGFyZWR9IgotKyNlbmRpZgotKwotICNlbmRpZgotIAotICNpZiAoREVGQVVMVF9MSUJDID09IExJQkNfVUNMSUJDKSAmJiBkZWZpbmVkIChTSU5HTEVfTElCQykgLyogdUNsaW51eCAqLwotZGlmZiAtLWdpdCBhL2djYy9jb25maWcvcnM2MDAwL2xpbnV4LmggYi9nY2MvY29uZmlnL3JzNjAwMC9saW51eC5oCi1pbmRleCAwMWI0MGM3NjJmNi4uZTdjNWU5MjIxNWMgMTAwNjQ0Ci0tLS0gYS9nY2MvY29uZmlnL3JzNjAwMC9saW51eC5oCi0rKysgYi9nY2MvY29uZmlnL3JzNjAwMC9saW51eC5oCi1AQCAtOTIsNiArOTIsMTYgQEAKLSAJCQkJCSAiIC1tIGVsZjMycHBjbGludXgiKQotICNlbmRpZgotIAotKy8qIGxpbmsgbGlic3NwX25vbnNoYXJlZC5hIHdpdGggbXVzbCAqLwotKyNpZiBERUZBVUxUX0xJQkMgPT0gTElCQ19NVVNMCi0rI2lmZGVmIFRBUkdFVF9MSUJDX1BST1ZJREVTX1NTUAotKyN1bmRlZiBMSU5LX1NTUF9TUEVDCi0rI2RlZmluZSBMSU5LX1NTUF9TUEVDICIle2ZzdGFjay1wcm90ZWN0b3J8ZnN0YWNrLXByb3RlY3Rvci1hbGwiIFwKLSsJCSAgICAgICAifGZzdGFjay1wcm90ZWN0b3Itc3Ryb25nfGZzdGFjay1wcm90ZWN0b3ItZXhwbGljaXQiIFwKLSsJCSAgICAgICAiOi1sc3NwX25vbnNoYXJlZH0iCi0rI2VuZGlmCi0rI2VuZGlmCi0rCi0gI3VuZGVmIExJTktfT1NfTElOVVhfU1BFQwotICNkZWZpbmUgTElOS19PU19MSU5VWF9TUEVDIExJTktfT1NfTElOVVhfRU1VTCAiICV7IXNoYXJlZDogJXshc3RhdGljOiBcCi0gICAleyFzdGF0aWMtcGllOiBcCi1kaWZmIC0tZ2l0IGEvZ2NjL2NvbmZpZy9yczYwMDAvbGludXg2NC5oIGIvZ2NjL2NvbmZpZy9yczYwMDAvbGludXg2NC5oCi1pbmRleCA1NGFhOGQ5NTdlNy4uNjE5ZTExM2UyYjggMTAwNjQ0Ci0tLS0gYS9nY2MvY29uZmlnL3JzNjAwMC9saW51eDY0LmgKLSsrKyBiL2djYy9jb25maWcvcnM2MDAwL2xpbnV4NjQuaAotQEAgLTQ2Niw2ICs0NjYsMTYgQEAgZXh0ZXJuIGludCBkb3Rfc3ltYm9sczsKLSAJCQkJCSAgICIgLW0gZWxmNjRwcGMiKQotICNlbmRpZgotIAotKy8qIGxpbmsgbGlic3NwX25vbnNoYXJlZC5hIHdpdGggbXVzbCAqLwotKyNpZiBERUZBVUxUX0xJQkMgPT0gTElCQ19NVVNMCi0rI2lmZGVmIFRBUkdFVF9MSUJDX1BST1ZJREVTX1NTUAotKyN1bmRlZiBMSU5LX1NTUF9TUEVDCi0rI2RlZmluZSBMSU5LX1NTUF9TUEVDICIle2ZzdGFjay1wcm90ZWN0b3J8ZnN0YWNrLXByb3RlY3Rvci1hbGwiIFwKLSsJCSAgICAgICAifGZzdGFjay1wcm90ZWN0b3Itc3Ryb25nfGZzdGFjay1wcm90ZWN0b3ItZXhwbGljaXQiIFwKLSsJCSAgICAgICAiOi1sc3NwX25vbnNoYXJlZH0iCi0rI2VuZGlmCi0rI2VuZGlmCi0rCi0gI2RlZmluZSBMSU5LX09TX0xJTlVYX1NQRUMzMiBMSU5LX09TX0xJTlVYX0VNVUwzMiAiICV7IXNoYXJlZDogJXshc3RhdGljOiBcCi0gICAleyFzdGF0aWMtcGllOiBcCi0gICAgICV7cmR5bmFtaWM6LWV4cG9ydC1keW5hbWljfSBcCi0tLSAKLTIuMjEuMAotCmRpZmYgLS1naXQgYS9wb2t5L21ldGEvcmVjaXBlcy1kZXZ0b29scy9nY2MvZ2NjLTguMy8wMDMyLWxpYmdjYy1BZGQta25vYi10by11c2UtbGRibC0xMjgtb24tcHBjLnBhdGNoIGIvcG9reS9tZXRhL3JlY2lwZXMtZGV2dG9vbHMvZ2NjL2djYy04LjMvMDAzMi1saWJnY2MtQWRkLWtub2ItdG8tdXNlLWxkYmwtMTI4LW9uLXBwYy5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDI1Y2FiYS4uMDAwMDAwMAotLS0gYS9wb2t5L21ldGEvcmVjaXBlcy1kZXZ0b29scy9nY2MvZ2NjLTguMy8wMDMyLWxpYmdjYy1BZGQta25vYi10by11c2UtbGRibC0xMjgtb24tcHBjLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMTI1ICswLDAgQEAKLUZyb20gNmRmYmNhNzhiOGQyNTNhZWNmOWNiYjVlNjhlMDRiOGRkM2Q2YTU0MyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IEtoZW0gUmFqIDxyYWoua2hlbUBnbWFpbC5jb20+Ci1EYXRlOiBGcmksIDI5IEFwciAyMDE2IDIwOjAzOjI4ICswMDAwCi1TdWJqZWN0OiBbUEFUQ0ggMzIvNDBdIGxpYmdjYzogQWRkIGtub2IgdG8gdXNlIGxkYmwtMTI4IG9uIHBwYwotCi1tdXNsIGRvZXMgbm90IHN1cHBvcnQgbGRibCAxMjggc28gd2UgY2FuIG5vdCBhc3N1bWUKLXRoYXQgbGludXggYXMgYSB3aG9sZSBzdXBwb3J0cyBsZGJsLTEyOCBiaXRzLCBpbnN0ZWFkCi1hY3QgdXBvbiBjb25maWd1cmUgb3B0aW9uIHBhc3NlZCB0byBnY2MgYW5kIGFzc3VtZSBubwotb24gbXVzbCBhbmQgeWVzIG90aGVyd2lzZSBpZiBubyBvcHRpb24gaXMgcGFzc2VkIHNpbmNlCi1kZWZhdWx0IGJlaGF2aW91ciBpcyB0byBhc3N1bWUgbGRibDEyOCBpdCBkb2VzIG5vdAotY2hhbmdlIHRoZSBkZWZhdWx0cwotCi1VcHN0cmVhbS1TdGF0dXM6IFBlbmRpbmcKLQotU2lnbmVkLW9mZi1ieTogS2hlbSBSYWogPHJhai5raGVtQGdtYWlsLmNvbT4KLS0tLQotIGxpYmdjYy9NYWtlZmlsZS5pbiAgICAgICAgICAgfCAgMSArCi0gbGliZ2NjL2NvbmZpZy9yczYwMDAvdC1saW51eCB8ICA1ICsrKystCi0gbGliZ2NjL2NvbmZpZ3VyZSAgICAgICAgICAgICB8IDE4ICsrKysrKysrKysrKysrKysrKwotIGxpYmdjYy9jb25maWd1cmUuYWMgICAgICAgICAgfCAxMiArKysrKysrKysrKysKLSA0IGZpbGVzIGNoYW5nZWQsIDM1IGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKLSBtb2RlIGNoYW5nZSAxMDA2NDQgPT4gMTAwNzU1IGxpYmdjYy9jb25maWd1cmUKLQotZGlmZiAtLWdpdCBhL2xpYmdjYy9NYWtlZmlsZS5pbiBiL2xpYmdjYy9NYWtlZmlsZS5pbgotaW5kZXggZGQ4Y2VlOTlmZDMuLmI1ZjQ3OGFmMzgyIDEwMDY0NAotLS0tIGEvbGliZ2NjL01ha2VmaWxlLmluCi0rKysgYi9saWJnY2MvTWFrZWZpbGUuaW4KLUBAIC00OCw2ICs0OCw3IEBAIHVud2luZF9oZWFkZXIgPSBAdW53aW5kX2hlYWRlckAKLSBtZF91bndpbmRfaGVhZGVyID0gQG1kX3Vud2luZF9oZWFkZXJACi0gc2ZwX21hY2hpbmVfaGVhZGVyID0gQHNmcF9tYWNoaW5lX2hlYWRlckAKLSB0aHJlYWRfaGVhZGVyID0gQHRocmVhZF9oZWFkZXJACi0rd2l0aF9sZGJsMTI4ID0gQHdpdGhfbGRibDEyOEAKLSAKLSBob3N0X25vbmNhbm9uaWNhbCA9IEBob3N0X25vbmNhbm9uaWNhbEAKLSByZWFsX2hvc3Rfbm9uY2Fub25pY2FsID0gQHJlYWxfaG9zdF9ub25jYW5vbmljYWxACi1kaWZmIC0tZ2l0IGEvbGliZ2NjL2NvbmZpZy9yczYwMDAvdC1saW51eCBiL2xpYmdjYy9jb25maWcvcnM2MDAwL3QtbGludXgKLWluZGV4IDRmNmQ0YzRhNGQyLi5jNTBkZDk0YTJkYSAxMDA2NDQKLS0tLSBhL2xpYmdjYy9jb25maWcvcnM2MDAwL3QtbGludXgKLSsrKyBiL2xpYmdjYy9jb25maWcvcnM2MDAwL3QtbGludXgKLUBAIC0xLDMgKzEsNiBAQAotIFNITElCX01BUEZJTEVTICs9ICQoc3JjZGlyKS9jb25maWcvcnM2MDAwL2xpYmdjYy1nbGliYy52ZXIKLSAKLS1IT1NUX0xJQkdDQzJfQ0ZMQUdTICs9IC1tbG9uZy1kb3VibGUtMTI4IC1tbm8tbWluaW1hbC10b2MKLStpZmVxICgkKHdpdGhfbGRibDEyOCkseWVzKQotK0hPU1RfTElCR0NDMl9DRkxBR1MgKz0gLW1sb25nLWRvdWJsZS0xMjgKLStlbmRpZgotK0hPU1RfTElCR0NDMl9DRkxBR1MgKz0gLW1uby1taW5pbWFsLXRvYwotZGlmZiAtLWdpdCBhL2xpYmdjYy9jb25maWd1cmUgYi9saWJnY2MvY29uZmlndXJlCi1vbGQgbW9kZSAxMDA2NDQKLW5ldyBtb2RlIDEwMDc1NQotaW5kZXggYjJmM2Y4NzA4NDQuLmVkODA2NTg3YzE3Ci0tLS0gYS9saWJnY2MvY29uZmlndXJlCi0rKysgYi9saWJnY2MvY29uZmlndXJlCi1AQCAtNjE5LDYgKzYxOSw3IEBAIGJ1aWxkX3ZlbmRvcgotIGJ1aWxkX2NwdQotIGJ1aWxkCi0gd2l0aF9haXhfc29uYW1lCi0rd2l0aF9sZGJsMTI4Ci0gZW5hYmxlX3Z0YWJsZV92ZXJpZnkKLSBlbmFibGVfc2hhcmVkCi0gbGliZ2NjX3RvcGRpcgotQEAgLTY2OCw2ICs2NjksNyBAQCB3aXRoX2Nyb3NzX2hvc3QKLSB3aXRoX2xkCi0gZW5hYmxlX3NoYXJlZAotIGVuYWJsZV92dGFibGVfdmVyaWZ5Ci0rd2l0aF9sb25nX2RvdWJsZV8xMjgKLSB3aXRoX2FpeF9zb25hbWUKLSBlbmFibGVfdmVyc2lvbl9zcGVjaWZpY19ydW50aW1lX2xpYnMKLSB3aXRoX3NsaWJkaXIKLUBAIC0xMzI5LDYgKzEzMzEsNyBAQCBPcHRpb25hbCBQYWNrYWdlczoKLSAgIC0td2l0aC10YXJnZXQtc3ViZGlyPVNVQkRJUiAgICAgIENvbmZpZ3VyaW5nIGluIGEgc3ViZGlyZWN0b3J5IGZvciB0YXJnZXQKLSAgIC0td2l0aC1jcm9zcy1ob3N0PUhPU1QgICAgICAgICAgIENvbmZpZ3VyaW5nIHdpdGggYSBjcm9zcyBjb21waWxlcgotICAgLS13aXRoLWxkICAgICAgICAgICAgICAgYXJyYW5nZSB0byB1c2UgdGhlIHNwZWNpZmllZCBsZCAoZnVsbCBwYXRobmFtZSkKLSsgIC0td2l0aC1sb25nLWRvdWJsZS0xMjggIHVzZSAxMjgtYml0IGxvbmcgZG91YmxlIGJ5IGRlZmF1bHQKLSAgIC0td2l0aC1haXgtc29uYW1lPWFpeHxzdnI0fGJvdGgKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIHNoYXJlZCBsaWJyYXJ5IHZlcnNpb25pbmcgKGFrYSAiU09OQU1FIikgdmFyaWFudCB0bwotICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvdmlkZSBvbiBBSVgKLUBAIC0yMjEzLDYgKzIyMTYsMjEgQEAgZmkKLSAKLSAKLSAKLSsjIENoZWNrIHdoZXRoZXIgLS13aXRoLWxvbmctZG91YmxlLTEyOCB3YXMgZ2l2ZW4uCi0raWYgdGVzdCAiJHt3aXRoX2xvbmdfZG91YmxlXzEyOCtzZXR9IiA9IHNldDsgdGhlbiA6Ci0rICB3aXRodmFsPSR3aXRoX2xvbmdfZG91YmxlXzEyODsgd2l0aF9sZGJsMTI4PSIkd2l0aF9sb25nX2RvdWJsZV8xMjgiCi0rZWxzZQotKyAgY2FzZSAiJHtob3N0fSIgaW4KLSsgcG93ZXIqLSotbXVzbCopCi0rICAgd2l0aF9sZGJsMTI4PSJubyI7OwotKyAqKSB3aXRoX2xkYmwxMjg9InllcyI7OwotKyBlc2FjCi0rCi0rZmkKLSsKLSsKLSsKLSsKLSAjIENoZWNrIHdoZXRoZXIgLS13aXRoLWFpeC1zb25hbWUgd2FzIGdpdmVuLgotIGlmIHRlc3QgIiR7d2l0aF9haXhfc29uYW1lK3NldH0iID0gc2V0OyB0aGVuIDoKLSAgIHdpdGh2YWw9JHdpdGhfYWl4X3NvbmFtZTsgY2FzZSAiJHtob3N0fToke2VuYWJsZV9zaGFyZWR9IiBpbgotZGlmZiAtLWdpdCBhL2xpYmdjYy9jb25maWd1cmUuYWMgYi9saWJnY2MvY29uZmlndXJlLmFjCi1pbmRleCBiNTlhYTc0NmFmYy4uNDIyMjBhMjYzYzUgMTAwNjQ0Ci0tLS0gYS9saWJnY2MvY29uZmlndXJlLmFjCi0rKysgYi9saWJnY2MvY29uZmlndXJlLmFjCi1AQCAtNzgsNiArNzgsMTggQEAgQUNfQVJHX0VOQUJMRSh2dGFibGUtdmVyaWZ5LAotIFtlbmFibGVfdnRhYmxlX3ZlcmlmeT1ub10pCi0gQUNfU1VCU1QoZW5hYmxlX3Z0YWJsZV92ZXJpZnkpCi0gCi0rQUNfQVJHX1dJVEgobG9uZy1kb3VibGUtMTI4LAotK1tBU19IRUxQX1NUUklORyhbLS13aXRoLWxvbmctZG91YmxlLTEyOF0sCi0rICAgIFt1c2UgMTI4LWJpdCBsb25nIGRvdWJsZSBieSBkZWZhdWx0XSldLAotKyAgICAgIHdpdGhfbGRibDEyOD0iJHdpdGhfbG9uZ19kb3VibGVfMTI4IiwKLStbY2FzZSAiJHtob3N0fSIgaW4KLSsgcG93ZXIqLSotbXVzbCopCi0rICAgd2l0aF9sZGJsMTI4PSJubyI7OwotKyAqKSB3aXRoX2xkYmwxMjg9InllcyI7OwotKyBlc2FjCi0rXSkKLStBQ19TVUJTVCh3aXRoX2xkYmwxMjgpCi0rCi0gQUNfQVJHX1dJVEgoYWl4LXNvbmFtZSwKLSBbQVNfSEVMUF9TVFJJTkcoWy0td2l0aC1haXgtc29uYW1lPWFpeHxzdnI0fGJvdGhdLAotICAgICBbc2hhcmVkIGxpYnJhcnkgdmVyc2lvbmluZyAoYWthICJTT05BTUUiKSB2YXJpYW50IHRvIHByb3ZpZGUgb24gQUlYXSldLAotLS0gCi0yLjIxLjAKLQpkaWZmIC0tZ2l0IGEvcG9reS9tZXRhL3JlY2lwZXMtZGV2dG9vbHMvZ2NjL2djYy04LjMvMDAzMy1MaW5rLWxpYmdjYy11c2luZy1MREZMQUdTLW5vdC1qdXN0LVNITElCX0xERkxBR1MucGF0Y2ggYi9wb2t5L21ldGEvcmVjaXBlcy1kZXZ0b29scy9nY2MvZ2NjLTguMy8wMDMzLUxpbmstbGliZ2NjLXVzaW5nLUxERkxBR1Mtbm90LWp1c3QtU0hMSUJfTERGTEFHUy5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMzQzZjdhYS4uMDAwMDAwMAotLS0gYS9wb2t5L21ldGEvcmVjaXBlcy1kZXZ0b29scy9nY2MvZ2NjLTguMy8wMDMzLUxpbmstbGliZ2NjLXVzaW5nLUxERkxBR1Mtbm90LWp1c3QtU0hMSUJfTERGTEFHUy5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDI5ICswLDAgQEAKLUZyb20gN2U1NTE0N2U4ZTYwOWFjZTZmOWVlY2Q4NmE5NTY2MzY2ODc2NzFmMCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IEtoZW0gUmFqIDxyYWoua2hlbUBnbWFpbC5jb20+Ci1EYXRlOiBXZWQsIDQgTWF5IDIwMTYgMjE6MTE6MzQgLTA3MDAKLVN1YmplY3Q6IFtQQVRDSCAzMy80MF0gTGluayBsaWJnY2MgdXNpbmcgTERGTEFHUywgbm90IGp1c3QgU0hMSUJfTERGTEFHUwotCi1VcHN0cmVhbS1TdGF0dXM6IFBlbmRpbmcKLQotU2lnbmVkLW9mZi1ieTogQ2hyaXN0b3BoZXIgTGFyc29uIDxjaHJpc19sYXJzb25AbWVudG9yLmNvbT4KLVNpZ25lZC1vZmYtYnk6IEtoZW0gUmFqIDxyYWoua2hlbUBnbWFpbC5jb20+Ci0tLS0KLSBsaWJnY2MvY29uZmlnL3Qtc2xpYmdjYyB8IDIgKy0KLSAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkKLQotZGlmZiAtLWdpdCBhL2xpYmdjYy9jb25maWcvdC1zbGliZ2NjIGIvbGliZ2NjL2NvbmZpZy90LXNsaWJnY2MKLWluZGV4IDdlNjBiNjIxYTJkLi5lYTIyZWRlMzM2MSAxMDA2NDQKLS0tLSBhL2xpYmdjYy9jb25maWcvdC1zbGliZ2NjCi0rKysgYi9saWJnY2MvY29uZmlnL3Qtc2xpYmdjYwotQEAgLTMyLDcgKzMyLDcgQEAgU0hMSUJfSU5TVEFMTF9TT0xJTksgPSAkKExOX1MpICQoU0hMSUJfU09OQU1FKSBcCi0gCSQoREVTVERJUikkKHNsaWJkaXIpJChTSExJQl9TTElCRElSX1FVQUwpLyQoU0hMSUJfU09MSU5LKQotIAotIFNITElCX0xJTksgPSAkKENDKSAkKExJQkdDQzJfQ0ZMQUdTKSAtc2hhcmVkIC1ub2RlZmF1bHRsaWJzIFwKLS0JJChTSExJQl9MREZMQUdTKSBcCi0rCSQoTERGTEFHUykgJChTSExJQl9MREZMQUdTKSBcCi0gCS1vICQoU0hMSUJfRElSKS8kKFNITElCX1NPTkFNRSkudG1wIEBtdWx0aWxpYl9mbGFnc0AgXAotIAkkKFNITElCX09CSlMpICQoU0hMSUJfTEMpICYmIFwKLSAJcm0gLWYgJChTSExJQl9ESVIpLyQoU0hMSUJfU09MSU5LKSAmJiBcCi0tLSAKLTIuMjEuMAotCmRpZmYgLS1naXQgYS9wb2t5L21ldGEvcmVjaXBlcy1kZXZ0b29scy9nY2MvZ2NjLTguMy8wMDM0LWxpYmdjY19zLVVzZS1hbGlhcy1mb3ItX19jcHVfaW5kaWNhdG9yX2luaXQtaW5zdGVhZC0ucGF0Y2ggYi9wb2t5L21ldGEvcmVjaXBlcy1kZXZ0b29scy9nY2MvZ2NjLTguMy8wMDM0LWxpYmdjY19zLVVzZS1hbGlhcy1mb3ItX19jcHVfaW5kaWNhdG9yX2luaXQtaW5zdGVhZC0ucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDkyMjI0Y2MuLjAwMDAwMDAKLS0tIGEvcG9reS9tZXRhL3JlY2lwZXMtZGV2dG9vbHMvZ2NjL2djYy04LjMvMDAzNC1saWJnY2Nfcy1Vc2UtYWxpYXMtZm9yLV9fY3B1X2luZGljYXRvcl9pbml0LWluc3RlYWQtLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsODUgKzAsMCBAQAotRnJvbSA0NmNhNTFkZDQxMzMzMGJiODQyNWIwNjI4M2U3NjY3YmZiNTA3YzNkIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogU3phYm9sY3MgTmFneSA8bnN6QHBvcnQ3MC5uZXQ+Ci1EYXRlOiBTYXQsIDI0IE9jdCAyMDE1IDIwOjA5OjUzICswMDAwCi1TdWJqZWN0OiBbUEFUQ0ggMzQvNDBdIGxpYmdjY19zOiBVc2UgYWxpYXMgZm9yIF9fY3B1X2luZGljYXRvcl9pbml0IGluc3RlYWQgb2Ygc3ltdmVyCi0KLUFkYXB0ZXIgZnJvbQotCi1odHRwczovL2djYy5nbnUub3JnL21sL2djYy1wYXRjaGVzLzIwMTUtMDUvbXNnMDA4OTkuaHRtbAotCi1UaGlzIGZpeCB3YXMgZGViYXRlZCBidXQgaGFzbnQgYmVlbiBhcHBsaWVkIGdjYyB1cHN0cmVhbSBzaW5jZQotdGhleSBleHBlY3QgbXVzbCB0byBzdXBwb3J0ICdAJyBpbiBzeW1ib2wgdmVyc2lvbmluZyB3aGljaCBpcwotYSBzdW4vZ251IHZlcnNpb25pbmcgZXh0ZW50aW9uLiBUaGlzIHBhdGNoIGhvd2V2ZXIgYXZvaWRzIHRoZQotbmVlZCBmb3IgdGhlICdAJyBzeW1ib2xzIGF0IGFsbAotCi1saWJnY2MvQ2hhbmdlbG9nOgotCi0yMDE1LTA1LTExICBTemFib2xjcyBOYWd5ICA8c3phYm9sY3MubmFneUBhcm0uY29tPgotCi0JKiBjb25maWcvaTM4Ni9jcHVpbmZvLmMgKF9fY3B1X2luZGljYXRvcl9pbml0X2xvY2FsKTogQWRkLgotCShfX2NwdV9pbmRpY2F0b3JfaW5pdEBHQ0NfNC44LjAsIF9fY3B1X21vZGVsQEdDQ180LjguMCk6IFJlbW92ZS4KLQotCSogY29uZmlnL2kzODYvdC1saW51eCAoSE9TVF9MSUJHQ0MyX0NGTEFHUyk6IFJlbW92ZSAtRFVTRV9FTEZfU1lNVkVSLgotCi1nY2MvQ2hhbmdlbG9nOgotCi0yMDE1LTA1LTExICBTemFib2xjcyBOYWd5ICA8c3phYm9sY3MubmFneUBhcm0uY29tPgotCi0JKiBjb25maWcvaTM4Ni9pMzg2LmMgKGl4ODZfZXhwYW5kX2J1aWx0aW4pOiBNYWtlIF9fYnVpbHRpbl9jcHVfaW5pdAotCWNhbGwgX19jcHVfaW5kaWNhdG9yX2luaXRfbG9jYWwgaW5zdGVhZCBvZiBfX2NwdV9pbmRpY2F0b3JfaW5pdC4KLQotVXBzdHJlYW0tU3RhdHVzOiBQZW5kaW5nCi0KLVNpZ25lZC1vZmYtYnk6IEtoZW0gUmFqIDxyYWoua2hlbUBnbWFpbC5jb20+Ci0tLS0KLSBnY2MvY29uZmlnL2kzODYvaTM4Ni5jICAgICAgIHwgNCArKy0tCi0gbGliZ2NjL2NvbmZpZy9pMzg2L2NwdWluZm8uYyB8IDYgKysrLS0tCi0gbGliZ2NjL2NvbmZpZy9pMzg2L3QtbGludXggICB8IDIgKy0KLSAzIGZpbGVzIGNoYW5nZWQsIDYgaW5zZXJ0aW9ucygrKSwgNiBkZWxldGlvbnMoLSkKLQotZGlmZiAtLWdpdCBhL2djYy9jb25maWcvaTM4Ni9pMzg2LmMgYi9nY2MvY29uZmlnL2kzODYvaTM4Ni5jCi1pbmRleCBhODhhMjliNTFlNi4uNmYzZjUxODc5NzAgMTAwNjQ0Ci0tLS0gYS9nY2MvY29uZmlnL2kzODYvaTM4Ni5jCi0rKysgYi9nY2MvY29uZmlnL2kzODYvaTM4Ni5jCi1AQCAtMzY1NTUsMTAgKzM2NTU1LDEwIEBAIGl4ODZfZXhwYW5kX2J1aWx0aW4gKHRyZWUgZXhwLCBydHggdGFyZ2V0LCBydHggc3VidGFyZ2V0LAotICAgICB7Ci0gICAgIGNhc2UgSVg4Nl9CVUlMVElOX0NQVV9JTklUOgotICAgICAgIHsKLS0JLyogTWFrZSBpdCBjYWxsIF9fY3B1X2luZGljYXRvcl9pbml0IGluIGxpYmdjYy4gKi8KLSsJLyogTWFrZSBpdCBjYWxsIF9fY3B1X2luZGljYXRvcl9pbml0X2xvY2FsIGluIGxpYmdjYy5hLiAqLwotIAl0cmVlIGNhbGxfZXhwciwgZm5kZWNsLCB0eXBlOwotICAgICAgICAgdHlwZSA9IGJ1aWxkX2Z1bmN0aW9uX3R5cGVfbGlzdCAoaW50ZWdlcl90eXBlX25vZGUsIE5VTExfVFJFRSk7IAotLQlmbmRlY2wgPSBidWlsZF9mbl9kZWNsICgiX19jcHVfaW5kaWNhdG9yX2luaXQiLCB0eXBlKTsKLSsJZm5kZWNsID0gYnVpbGRfZm5fZGVjbCAoIl9fY3B1X2luZGljYXRvcl9pbml0X2xvY2FsIiwgdHlwZSk7Ci0gCWNhbGxfZXhwciA9IGJ1aWxkX2NhbGxfZXhwciAoZm5kZWNsLCAwKTsgCi0gCXJldHVybiBleHBhbmRfZXhwciAoY2FsbF9leHByLCB0YXJnZXQsIG1vZGUsIEVYUEFORF9OT1JNQUwpOwotICAgICAgIH0KLWRpZmYgLS1naXQgYS9saWJnY2MvY29uZmlnL2kzODYvY3B1aW5mby5jIGIvbGliZ2NjL2NvbmZpZy9pMzg2L2NwdWluZm8uYwotaW5kZXggZDE4NTNkNTUxNWIuLjg2NDE1MGM5MjQ5IDEwMDY0NAotLS0tIGEvbGliZ2NjL2NvbmZpZy9pMzg2L2NwdWluZm8uYwotKysrIGIvbGliZ2NjL2NvbmZpZy9pMzg2L2NwdWluZm8uYwotQEAgLTQ4NSw3ICs0ODUsNyBAQCBfX2NwdV9pbmRpY2F0b3JfaW5pdCAodm9pZCkKLSAgIHJldHVybiAwOwotIH0KLSAKLS0jaWYgZGVmaW5lZCBTSEFSRUQgJiYgZGVmaW5lZCBVU0VfRUxGX1NZTVZFUgotLV9fYXNtX18gKCIuc3ltdmVyIF9fY3B1X2luZGljYXRvcl9pbml0LCBfX2NwdV9pbmRpY2F0b3JfaW5pdEBHQ0NfNC44LjAiKTsKLS1fX2FzbV9fICgiLnN5bXZlciBfX2NwdV9tb2RlbCwgX19jcHVfbW9kZWxAR0NDXzQuOC4wIik7Ci0rI2lmbmRlZiBTSEFSRUQKLStpbnQgX19jcHVfaW5kaWNhdG9yX2luaXRfbG9jYWwgKHZvaWQpCi0rICBfX2F0dHJpYnV0ZV9fICgod2VhaywgYWxpYXMgKCJfX2NwdV9pbmRpY2F0b3JfaW5pdCIpKSk7Ci0gI2VuZGlmCi1kaWZmIC0tZ2l0IGEvbGliZ2NjL2NvbmZpZy9pMzg2L3QtbGludXggYi9saWJnY2MvY29uZmlnL2kzODYvdC1saW51eAotaW5kZXggODUwNmE2MzU3OTAuLjU2NDI5NmY3ODhlIDEwMDY0NAotLS0tIGEvbGliZ2NjL2NvbmZpZy9pMzg2L3QtbGludXgKLSsrKyBiL2xpYmdjYy9jb25maWcvaTM4Ni90LWxpbnV4Ci1AQCAtMyw1ICszLDUgQEAKLSAjIHQtc2xpYmdjYy1lbGYtdmVyIGFuZCB0LWxpbnV4Ci0gU0hMSUJfTUFQRklMRVMgPSBsaWJnY2Mtc3RkLnZlciAkKHNyY2RpcikvY29uZmlnL2kzODYvbGliZ2NjLWdsaWJjLnZlcgotIAotLUhPU1RfTElCR0NDMl9DRkxBR1MgKz0gLW1sb25nLWRvdWJsZS04MCAtRFVTRV9FTEZfU1lNVkVSICQoQ0VUX0ZMQUdTKQotK0hPU1RfTElCR0NDMl9DRkxBR1MgKz0gLW1sb25nLWRvdWJsZS04MCAkKENFVF9GTEFHUykKLSBDUlRTVFVGRl9UX0NGTEFHUyArPSAkKENFVF9GTEFHUykKLS0tIAotMi4yMS4wCi0KZGlmZiAtLWdpdCBhL3Bva3kvbWV0YS9yZWNpcGVzLWRldnRvb2xzL2djYy9nY2MtOC4zLzAwMzUtc3luYy1nY2Mtc3RkZGVmLmgtd2l0aC1tdXNsLnBhdGNoIGIvcG9reS9tZXRhL3JlY2lwZXMtZGV2dG9vbHMvZ2NjL2djYy04LjMvMDAzNS1zeW5jLWdjYy1zdGRkZWYuaC13aXRoLW11c2wucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDZlY2Q2ZTkuLjAwMDAwMDAKLS0tIGEvcG9reS9tZXRhL3JlY2lwZXMtZGV2dG9vbHMvZ2NjL2djYy04LjMvMDAzNS1zeW5jLWdjYy1zdGRkZWYuaC13aXRoLW11c2wucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSw5MSArMCwwIEBACi1Gcm9tIDM4ZDQwMWZiNmFiNTU1ZDA5ZjRhOWE2Nzc3MjFkZGUwNzQzODc2ZTEgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBLaGVtIFJhaiA8cmFqLmtoZW1AZ21haWwuY29tPgotRGF0ZTogRnJpLCAzIEZlYiAyMDE3IDEyOjU2OjAwIC0wODAwCi1TdWJqZWN0OiBbUEFUQ0ggMzUvNDBdIHN5bmMgZ2NjIHN0ZGRlZi5oIHdpdGggbXVzbAotCi1tdXNsIGRlZmluZXMgcHRyZGlmZl90IHNpemVfdCBhbmQgd2NoYXJfdAotc28gZG9udCBkZWZpbmUgdGhlbSBoZXJlIGlmIG11c2wgaXMgZGVmaW5pbmluZyB0aGVtCi0KLVVwc3RyZWFtLVN0YXR1czogUGVuZGluZwotCi1TaWduZWQtb2ZmLWJ5OiBLaGVtIFJhaiA8cmFqLmtoZW1AZ21haWwuY29tPgotLS0tCi0gZ2NjL2dpbmNsdWRlL3N0ZGRlZi5oIHwgOSArKysrKysrKysKLSAxIGZpbGUgY2hhbmdlZCwgOSBpbnNlcnRpb25zKCspCi0KLWRpZmYgLS1naXQgYS9nY2MvZ2luY2x1ZGUvc3RkZGVmLmggYi9nY2MvZ2luY2x1ZGUvc3RkZGVmLmgKLWluZGV4IDMxYjk2YTdlNWUxLi40MzhhM2NlN2M1NiAxMDA2NDQKLS0tLSBhL2djYy9naW5jbHVkZS9zdGRkZWYuaAotKysrIGIvZ2NjL2dpbmNsdWRlL3N0ZGRlZi5oCi1AQCAtMTM0LDYgKzEzNCw3IEBAIF9UWVBFX3djaGFyX3Q7Ci0gI2lmbmRlZiBfX19pbnRfcHRyZGlmZl90X2gKLSAjaWZuZGVmIF9HQ0NfUFRSRElGRl9UCi0gI2lmbmRlZiBfUFRSRElGRl9UX0RFQ0xBUkVEIC8qIERyYWdvbkZseSAqLwotKyNpZm5kZWYgX19ERUZJTkVEX3B0cmRpZmZfdCAvKiBtdXNsICovCi0gI2RlZmluZSBfUFRSRElGRl9UCi0gI2RlZmluZSBfVF9QVFJESUZGXwotICNkZWZpbmUgX1RfUFRSRElGRgotQEAgLTE0MywxMCArMTQ0LDEyIEBAIF9UWVBFX3djaGFyX3Q7Ci0gI2RlZmluZSBfX19pbnRfcHRyZGlmZl90X2gKLSAjZGVmaW5lIF9HQ0NfUFRSRElGRl9UCi0gI2RlZmluZSBfUFRSRElGRl9UX0RFQ0xBUkVECi0rI2RlZmluZSBfX0RFRklORURfcHRyZGlmZl90IC8qIG11c2wgKi8KLSAjaWZuZGVmIF9fUFRSRElGRl9UWVBFX18KLSAjZGVmaW5lIF9fUFRSRElGRl9UWVBFX18gbG9uZyBpbnQKLSAjZW5kaWYKLSB0eXBlZGVmIF9fUFRSRElGRl9UWVBFX18gcHRyZGlmZl90OwotKyNlbmRpZiAvKiBfX0RFRklORURfcHRyZGlmZl90ICovCi0gI2VuZGlmIC8qIF9QVFJESUZGX1RfREVDTEFSRUQgKi8KLSAjZW5kaWYgLyogX0dDQ19QVFJESUZGX1QgKi8KLSAjZW5kaWYgLyogX19faW50X3B0cmRpZmZfdF9oICovCi1AQCAtMTg0LDYgKzE4Nyw3IEBAIHR5cGVkZWYgX19QVFJESUZGX1RZUEVfXyBwdHJkaWZmX3Q7Ci0gI2lmbmRlZiBfR0NDX1NJWkVfVAotICNpZm5kZWYgX1NJWkVUXwotICNpZm5kZWYgX19zaXplX3QKLSsjaWZuZGVmIF9fREVGSU5FRF9zaXplX3QgLyogbXVzbCAqLwotICNkZWZpbmUgX19zaXplX3RfXwkvKiBCZU9TICovCi0gI2RlZmluZSBfX1NJWkVfVF9fCS8qIENyYXkgVW5pY29zL01rICovCi0gI2RlZmluZSBfU0laRV9UCi1AQCAtMjAwLDYgKzIwNCw3IEBAIHR5cGVkZWYgX19QVFJESUZGX1RZUEVfXyBwdHJkaWZmX3Q7Ci0gI2RlZmluZSBfX19pbnRfc2l6ZV90X2gKLSAjZGVmaW5lIF9HQ0NfU0laRV9UCi0gI2RlZmluZSBfU0laRVRfCi0rI2RlZmluZSBfX0RFRklORURfc2l6ZV90IC8qIG11c2wgKi8KLSAjaWYgKGRlZmluZWQgKF9fRnJlZUJTRF9fKSAmJiAoX19GcmVlQlNEX18gPj0gNSkpIFwKLSAgIHx8IGRlZmluZWQoX19EcmFnb25GbHlfXykgXAotICAgfHwgZGVmaW5lZChfX0ZyZWVCU0Rfa2VybmVsX18pCi1AQCAtMjM1LDYgKzI0MCw3IEBAIHR5cGVkZWYgbG9uZyBzc2l6ZV90OwotICNlbmRpZiAvKiBfU0laRV9UICovCi0gI2VuZGlmIC8qIF9fU0laRV9UX18gKi8KLSAjZW5kaWYgLyogX19zaXplX3RfXyAqLwotKyNlbmRpZiAvKiBfX0RFRklORURfc2l6ZV90ICovCi0gI3VuZGVmCV9fbmVlZF9zaXplX3QKLSAjZW5kaWYgLyogX1NURERFRl9IIG9yIF9fbmVlZF9zaXplX3QuICAqLwotIAotQEAgLTI2NCw2ICsyNzAsNyBAQCB0eXBlZGVmIGxvbmcgc3NpemVfdDsKLSAjaWZuZGVmIF9fX2ludF93Y2hhcl90X2gKLSAjaWZuZGVmIF9fSU5UX1dDSEFSX1RfSAotICNpZm5kZWYgX0dDQ19XQ0hBUl9UCi0rI2lmbmRlZiBfX0RFRklORURfd2NoYXJfdCAvKiBtdXNsICovCi0gI2RlZmluZSBfX3djaGFyX3RfXwkvKiBCZU9TICovCi0gI2RlZmluZSBfX1dDSEFSX1RfXwkvKiBDcmF5IFVuaWNvcy9NayAqLwotICNkZWZpbmUgX1dDSEFSX1QKLUBAIC0yNzksNiArMjg2LDcgQEAgdHlwZWRlZiBsb25nIHNzaXplX3Q7Ci0gI2RlZmluZSBfX0lOVF9XQ0hBUl9UX0gKLSAjZGVmaW5lIF9HQ0NfV0NIQVJfVAotICNkZWZpbmUgX1dDSEFSX1RfREVDTEFSRUQKLSsjZGVmaW5lIF9fREVGSU5FRF93Y2hhcl90IC8qIG11c2wgKi8KLSAKLSAvKiBPbiBCU0QvMzg2IDEuMSwgYXQgbGVhc3QsIG1hY2hpbmUvYW5zaS5oIGRlZmluZXMgX0JTRF9XQ0hBUl9UXwotICAgIGluc3RlYWQgb2YgX1dDSEFSX1RfLCBhbmQgX0JTRF9SVU5FX1RfICh3aGljaCwgdW5saWtlIHRoZSBvdGhlcgotQEAgLTM0NCw2ICszNTIsNyBAQCB0eXBlZGVmIF9fV0NIQVJfVFlQRV9fIHdjaGFyX3Q7Ci0gI2VuZGlmCi0gI2VuZGlmIC8qIF9fV0NIQVJfVF9fICovCi0gI2VuZGlmIC8qIF9fd2NoYXJfdF9fICovCi0rI2VuZGlmIC8qIF9fREVGSU5FRF93Y2hhcl90IG11c2wgKi8KLSAjdW5kZWYJX19uZWVkX3djaGFyX3QKLSAjZW5kaWYgLyogX1NURERFRl9IIG9yIF9fbmVlZF93Y2hhcl90LiAgKi8KLSAKLS0tIAotMi4yMS4wCi0KZGlmZiAtLWdpdCBhL3Bva3kvbWV0YS9yZWNpcGVzLWRldnRvb2xzL2djYy9nY2MtOC4zLzAwMzYtZml4LXNlZ21lbnRhdGlvbi1mYXVsdC1pbi1wcmVjb21waWxlZC1oZWFkZXItZ2VuZXJhdC5wYXRjaCBiL3Bva3kvbWV0YS9yZWNpcGVzLWRldnRvb2xzL2djYy9nY2MtOC4zLzAwMzYtZml4LXNlZ21lbnRhdGlvbi1mYXVsdC1pbi1wcmVjb21waWxlZC1oZWFkZXItZ2VuZXJhdC5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYzRjZTVkYi4uMDAwMDAwMAotLS0gYS9wb2t5L21ldGEvcmVjaXBlcy1kZXZ0b29scy9nY2MvZ2NjLTguMy8wMDM2LWZpeC1zZWdtZW50YXRpb24tZmF1bHQtaW4tcHJlY29tcGlsZWQtaGVhZGVyLWdlbmVyYXQucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSw2MCArMCwwIEBACi1Gcm9tIGE5YmIyOWE0ZTliNDc4ZjliMTI2ZTQ4MzQ2N2NlOTAzMWMzM2ZlNGYgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBKdXJvIEJ5c3RyaWNreSA8anVyby5ieXN0cmlja3lAaW50ZWwuY29tPgotRGF0ZTogTW9uLCAxOSBNYXIgMjAxOCAyMjozMToyMCAtMDcwMAotU3ViamVjdDogW1BBVENIIDM2LzQwXSBmaXggc2VnbWVudGF0aW9uIGZhdWx0IGluIHByZWNvbXBpbGVkIGhlYWRlciBnZW5lcmF0aW9uCi0KLVByZXZlbnQgYSBzZWdtZW50YXRpb24gZmF1bHQgd2hpY2ggb2NjdXJzIHdoZW4gdXNpbmcgaW5jb3JyZWN0Ci1zdHJ1Y3R1cmUgdHJ5aW5nIHRvIGFjY2VzcyBuYW1lIG9mIHNvbWUgbmFtZWQgb3BlcmF0b3JzLCBzdWNoIGFzCi1DUFBfTk9ULCBDUFBfQU5EIGV0Yy4gInRva2VuLT52YWwubm9kZS5zcGVsbGluZyIgY2Fubm90IGJlIHVzZWQgaW4KLXRob3NlIGNhc2VzLCBhcyBpcyBtYXkgbm90IGJlIGluaXRpYWxpemVkIGF0IGFsbC4KLQotW1lPQ1RPICMxMTczOF0KLQotVXBzdHJlYW0tU3RhdHVzOiBQZW5kaW5nCi0KLVNpZ25lZC1vZmYtYnk6IEp1cm8gQnlzdHJpY2t5IDxqdXJvLmJ5c3RyaWNreUBpbnRlbC5jb20+Ci1TaWduZWQtb2ZmLWJ5OiBLaGVtIFJhaiA8cmFqLmtoZW1AZ21haWwuY29tPgotLS0tCi0gbGliY3BwL2xleC5jIHwgMjYgKysrKysrKysrKysrKysrKysrKysrLS0tLS0KLSAxIGZpbGUgY2hhbmdlZCwgMjEgaW5zZXJ0aW9ucygrKSwgNSBkZWxldGlvbnMoLSkKLQotZGlmZiAtLWdpdCBhL2xpYmNwcC9sZXguYyBiL2xpYmNwcC9sZXguYwotaW5kZXggMzdjMzY1YTM1NjAuLjYzNDgwMDQ4ZGI2IDEwMDY0NAotLS0tIGEvbGliY3BwL2xleC5jCi0rKysgYi9saWJjcHAvbGV4LmMKLUBAIC0zMjc5LDExICszMjc5LDI3IEBAIGNwcF9zcGVsbF90b2tlbiAoY3BwX3JlYWRlciAqcGZpbGUsIGNvbnN0IGNwcF90b2tlbiAqdG9rZW4sCi0gICAgIHNwZWxsX2lkZW50OgotICAgICBjYXNlIFNQRUxMX0lERU5UOgotICAgICAgIGlmIChmb3JzdHJpbmcpCi0tCXsKLS0JICBtZW1jcHkgKGJ1ZmZlciwgTk9ERV9OQU1FICh0b2tlbi0+dmFsLm5vZGUuc3BlbGxpbmcpLAotLQkJICBOT0RFX0xFTiAodG9rZW4tPnZhbC5ub2RlLnNwZWxsaW5nKSk7Ci0tCSAgYnVmZmVyICs9IE5PREVfTEVOICh0b2tlbi0+dmFsLm5vZGUuc3BlbGxpbmcpOwotLQl9Ci0rICAgICAgICB7Ci0rICAgICAgICAgIGlmICh0b2tlbi0+dHlwZSA9PSBDUFBfTkFNRSkKLSsgICAgICAgICAgICB7Ci0rICAgICAgICAgICAgICBtZW1jcHkgKGJ1ZmZlciwgTk9ERV9OQU1FICh0b2tlbi0+dmFsLm5vZGUuc3BlbGxpbmcpLAotKyAgICAgICAgICAgICAgICAgICAgTk9ERV9MRU4gKHRva2VuLT52YWwubm9kZS5zcGVsbGluZykpOwotKyAgICAgICAgICAgICAgYnVmZmVyICs9IE5PREVfTEVOICh0b2tlbi0+dmFsLm5vZGUuc3BlbGxpbmcpOwotKyAgICAgICAgICAgICAgYnJlYWs7Ci0rICAgICAgICAgICAgfQotKyAgICAgICAgICAvKiBOQU1FRF9PUCwgY2Fubm90IHVzZSBub2RlLnNwZWxsaW5nICovCi0rICAgICAgICAgIGlmICh0b2tlbi0+ZmxhZ3MgJiBOQU1FRF9PUCkKLSsgICAgICAgICAgICB7Ci0rICAgICAgICAgICAgICBjb25zdCBjaGFyICpzdHIgPSBjcHBfbmFtZWRfb3BlcmF0b3IybmFtZSAodG9rZW4tPnR5cGUpOwotKyAgICAgICAgICAgICAgaWYgKHN0cikKLSsgICAgICAgICAgICAgICAgewotKyAgICAgICAgICAgICAgICAgIHNpemVfdCBsZW4gPSBzdHJsZW4oc3RyKTsKLSsgICAgICAgICAgICAgICAgICBtZW1jcHkoYnVmZmVyLCBzdHIsIGxlbik7Ci0rICAgICAgICAgICAgICAgICAgYnVmZmVyICs9IGxlbjsKLSsgICAgICAgICAgICAgICAgfQotKyAgICAgICAgICAgICAgYnJlYWs7Ci0rICAgICAgICAgICAgfQotKyAgICAgICAgfQotICAgICAgIGVsc2UKLSAJYnVmZmVyID0gX2NwcF9zcGVsbF9pZGVudF91Y25zIChidWZmZXIsIHRva2VuLT52YWwubm9kZS5ub2RlKTsKLSAgICAgICBicmVhazsKLS0tIAotMi4yMS4wCi0KZGlmZiAtLWdpdCBhL3Bva3kvbWV0YS9yZWNpcGVzLWRldnRvb2xzL2djYy9nY2MtOC4zLzAwMzctRml4LWZvci10ZXN0c3VpdGUtZmFpbHVyZS5wYXRjaCBiL3Bva3kvbWV0YS9yZWNpcGVzLWRldnRvb2xzL2djYy9nY2MtOC4zLzAwMzctRml4LWZvci10ZXN0c3VpdGUtZmFpbHVyZS5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNzA5OTlkZC4uMDAwMDAwMAotLS0gYS9wb2t5L21ldGEvcmVjaXBlcy1kZXZ0b29scy9nY2MvZ2NjLTguMy8wMDM3LUZpeC1mb3ItdGVzdHN1aXRlLWZhaWx1cmUucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwyNTggKzAsMCBAQAotRnJvbSAxZTVjMWVmMzRkOTJiNDE1N2UxYTI0Y2E3NDNkNDVmM2E3Mzc1YTVlIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogUkFHSFVOQVRIIExPTFVSIDxyYWdodW5hdGgubG9sdXJAa3BpdC5jb20+Ci1EYXRlOiBXZWQsIDYgRGVjIDIwMTcgMjI6NTI6MjYgLTA4MDAKLVN1YmplY3Q6IFtQQVRDSCAzNy80MF0gRml4IGZvciB0ZXN0c3VpdGUgZmFpbHVyZQotCi0yMDE3LTExLTE2ICBSYWdodW5hdGggTG9sdXIgIDxyYWdodW5hdGgubG9sdXJAa3BpdC5jb20+Ci0KLQkqIGdjYy5kZy9wcjU2Mjc1LmM6IElmIFNTRSBpcyBkaXNhYmxlZCwgZW5zdXJlIHRoYXQKLQkiLW1mcG1hdGgiIGlzIG5vdCBzZXQgdG8gdXNlIFNTRS4gU2V0ICItbWZwbWF0aD0zODciLgotCSogZ2NjLmRnL3ByNjgzMDYuYzogTGlrZXdpc2UKLQkqIGdjYy5kZy9wcjY4MzA2LTIuYzogTGlrZXdpc2UKLQkqIGdjYy5kZy9wcjY4MzA2LTMuYzogTGlrZXdpc2UKLQkqIGdjYy5kZy9wcjY5NjM0LmM6IExpa2V3aXNlCi0JKiBnY2MudGFyZ2V0L2kzODYvYW1kNjQtYWJpLTEuYzogTGlrZXdpc2UKLQkqIGdjYy50YXJnZXQvaTM4Ni9mdW5jc3BlYy02LmM6IExpa2V3aXNlCi0JKiBnY2MudGFyZ2V0L2kzODYvaW50ZXJydXB0LTM4Ny1lcnItMS5jOiBMaWtld2lzZQotCSogZ2NjLnRhcmdldC9pMzg2L2lzYS0xNC5jOiBMaWtld2lzZQotCSogZ2NjLnRhcmdldC9pMzg2L3ByNDQ5NDgtMmIuYzogTGlrZXdpc2UKLQkqIGdjYy50YXJnZXQvaTM4Ni9wcjUzNDI1LTEuYzogTGlrZXdpc2UKLQkqIGdjYy50YXJnZXQvaTM4Ni9wcjUzNDI1LTIuYzogTGlrZXdpc2UKLQkqIGdjYy50YXJnZXQvaTM4Ni9wcjU1MjQ3LmM6IExpa2V3aXNlCi0JKiBnY2MudGFyZ2V0L2kzODYvcHI1OTY0NC5jOiBMaWtld2lzZQotCSogZ2NjLnRhcmdldC9pMzg2L3ByNjIxMjAuYzogTGlrZXdpc2UKLQkqIGdjYy50YXJnZXQvaTM4Ni9wcjcwNDY3LTEuYzogTGlrZXdpc2UKLQkqIGdjYy50YXJnZXQvaTM4Ni93YXJuLXZlY3Qtb3AtMS5jOiBMaWtld2lzZQotCi1JZiAtV2FsbCwgLVdlcnJvciBhcmUgdXNlZCBkdXJpbmcgY29tcGlsYXRpb24gdmFyaW91cyB0ZXN0IGNhc2VzIGZhaWwKLXRvIGNvbXBpbGUuCi0KLUlmIFNTRSBpcyBkaXNhYmxlZCwgYmUgc3VyZSB0byAtbWZwbWF0aD0zODcgdG8gcmVzb2x2ZSB0aGlzLgotCi1UaGlzIHBhdGNoIHJlbW92ZXMgdGhlIGNoYW5nZXMgdG8gQ2hhbmdlbG9nIGZyb20gdGhlIG9yaWdpbmFsIHBhdGNoLgotVGhpcyB3aWxsIGhlbHAgdXMgYXZvaWQgY29uZmxpY3RzLgotCi1VcHN0cmVhbS1TdGF0dXM6IFBlbmRpbmcKLQotU2lnbmVkLW9mZi1ieTogTWFyayBIYXRsZSA8bWFyay5oYXRsZUB3aW5kcml2ZXIuY29tPgotLS0tCi0gZ2NjL3Rlc3RzdWl0ZS9nY2MuZGcvcHI1NjI3NS5jICAgICAgICAgICAgICAgICAgICAgIHwgMiArLQotIGdjYy90ZXN0c3VpdGUvZ2NjLmRnL3ByNjgzMDYtMi5jICAgICAgICAgICAgICAgICAgICB8IDIgKy0KLSBnY2MvdGVzdHN1aXRlL2djYy5kZy9wcjY4MzA2LTMuYyAgICAgICAgICAgICAgICAgICAgfCAyICstCi0gZ2NjL3Rlc3RzdWl0ZS9nY2MuZGcvcHI2ODMwNi5jICAgICAgICAgICAgICAgICAgICAgIHwgMiArLQotIGdjYy90ZXN0c3VpdGUvZ2NjLmRnL3ByNjk2MzQuYyAgICAgICAgICAgICAgICAgICAgICB8IDIgKy0KLSBnY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvaTM4Ni9hbWQ2NC1hYmktMS5jICAgICAgICAgfCAyICstCi0gZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2kzODYvZnVuY3NwZWMtNi5jICAgICAgICAgIHwgMSArCi0gZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2kzODYvaW50ZXJydXB0LTM4Ny1lcnItMS5jIHwgMiArLQotIGdjYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9pMzg2L2lzYS0xNC5jICAgICAgICAgICAgICB8IDIgKy0KLSBnY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvaTM4Ni9wcjQ0OTQ4LTJiLmMgICAgICAgICAgfCAyICstCi0gZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2kzODYvcHI1MzQyNS0xLmMgICAgICAgICAgIHwgMiArLQotIGdjYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9pMzg2L3ByNTM0MjUtMi5jICAgICAgICAgICB8IDIgKy0KLSBnY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvaTM4Ni9wcjU1MjQ3LmMgICAgICAgICAgICAgfCAyICstCi0gZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2kzODYvcHI1OTY0NC5jICAgICAgICAgICAgIHwgMiArLQotIGdjYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9pMzg2L3ByNjIxMjAuYyAgICAgICAgICAgICB8IDIgKy0KLSBnY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvaTM4Ni9wcjcwNDY3LTEuYyAgICAgICAgICAgfCAyICstCi0gZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2kzODYvd2Fybi12ZWN0LW9wLTEuYyAgICAgIHwgMiArLQotIDE3IGZpbGVzIGNoYW5nZWQsIDE3IGluc2VydGlvbnMoKyksIDE2IGRlbGV0aW9ucygtKQotCi1kaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nY2MuZGcvcHI1NjI3NS5jIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MuZGcvcHI1NjI3NS5jCi1pbmRleCBiOTAxYmIyYjE5OS4uYTRmNmM5NWUxYTEgMTAwNjQ0Ci0tLS0gYS9nY2MvdGVzdHN1aXRlL2djYy5kZy9wcjU2Mjc1LmMKLSsrKyBiL2djYy90ZXN0c3VpdGUvZ2NjLmRnL3ByNTYyNzUuYwotQEAgLTEsNiArMSw2IEBACi0gLyogeyBkZy1kbyBjb21waWxlIH0gKi8KLSAvKiB7IGRnLW9wdGlvbnMgIi1PMiIgfSAqLwotLS8qIHsgZGctYWRkaXRpb25hbC1vcHRpb25zICItbW5vLXNzZSIgeyB0YXJnZXQgeyBpPzg2LSotKiB4ODZfNjQtKi0qIH0gfSB9ICovCi0rLyogeyBkZy1hZGRpdGlvbmFsLW9wdGlvbnMgIi1tbm8tc3NlIC1tZnBtYXRoPTM4NyIgeyB0YXJnZXQgeyBpPzg2LSotKiB4ODZfNjQtKi0qIH0gfSB9ICovCi0gCi0gdHlwZWRlZiBsb25nIGxvbmcgdjJ0dyBfX2F0dHJpYnV0ZV9fICgodmVjdG9yX3NpemUgKDIgKiBzaXplb2YgKGxvbmcgbG9uZykpKSk7Ci0gCi1kaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nY2MuZGcvcHI2ODMwNi0yLmMgYi9nY2MvdGVzdHN1aXRlL2djYy5kZy9wcjY4MzA2LTIuYwotaW5kZXggNDY3MmViZTc5ODcuLjJhMzY4YzQ4NGI2IDEwMDY0NAotLS0tIGEvZ2NjL3Rlc3RzdWl0ZS9nY2MuZGcvcHI2ODMwNi0yLmMKLSsrKyBiL2djYy90ZXN0c3VpdGUvZ2NjLmRnL3ByNjgzMDYtMi5jCi1AQCAtMSw2ICsxLDYgQEAKLSAvKiB7IGRnLWRvIGNvbXBpbGUgfSAqLwotIC8qIHsgZGctb3B0aW9ucyAiLU8zIiB9ICovCi0tLyogeyBkZy1hZGRpdGlvbmFsLW9wdGlvbnMgIi1tbm8tc3NlIC1tbm8tbW14IiB7IHRhcmdldCBpPzg2LSotKiB4ODZfNjQtKi0qIH0gfSAqLwotKy8qIHsgZGctYWRkaXRpb25hbC1vcHRpb25zICItbW5vLXNzZSAtbW5vLW1teCAtbWZwbWF0aD0zODciIHsgdGFyZ2V0IGk/ODYtKi0qIHg4Nl82NC0qLSogfSB9ICovCi0gCi0gc3RydWN0IHsKLSAgICAgaW50IHR6X21pbnV0ZXN3ZXN0OwotZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvZ2NjLmRnL3ByNjgzMDYtMy5jIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MuZGcvcHI2ODMwNi0zLmMKLWluZGV4IGY1YThjMTAyY2Y4Li5kZjMzOTBjNjRjMiAxMDA2NDQKLS0tLSBhL2djYy90ZXN0c3VpdGUvZ2NjLmRnL3ByNjgzMDYtMy5jCi0rKysgYi9nY2MvdGVzdHN1aXRlL2djYy5kZy9wcjY4MzA2LTMuYwotQEAgLTEsNiArMSw2IEBACi0gLyogeyBkZy1kbyBjb21waWxlIH0gKi8KLSAvKiB7IGRnLW9wdGlvbnMgIi1PMyIgfSAqLwotLS8qIHsgZGctYWRkaXRpb25hbC1vcHRpb25zICItbW5vLXNzZSAtbW5vLW1teCIgeyB0YXJnZXQgaT84Ni0qLSogeDg2XzY0LSotKiB9IH0gKi8KLSsvKiB7IGRnLWFkZGl0aW9uYWwtb3B0aW9ucyAiLW1uby1zc2UgLW1uby1tbXggLW1mcG1hdGg9Mzg3IiB7IHRhcmdldCBpPzg2LSotKiB4ODZfNjQtKi0qIH0gfSAqLwotIC8qIHsgZGctYWRkaXRpb25hbC1vcHRpb25zICItbW5vLWFsdGl2ZWMgLW1uby12c3giIHsgdGFyZ2V0IHBvd2VycGMqLSotKiB9IH0gKi8KLSAKLSBleHRlcm4gdm9pZCBmbjIoKTsKLWRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2djYy5kZy9wcjY4MzA2LmMgYi9nY2MvdGVzdHN1aXRlL2djYy5kZy9wcjY4MzA2LmMKLWluZGV4IDU0ZTViNDBmMjIxLi4wODEzMzg5ZTJjMSAxMDA2NDQKLS0tLSBhL2djYy90ZXN0c3VpdGUvZ2NjLmRnL3ByNjgzMDYuYwotKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MuZGcvcHI2ODMwNi5jCi1AQCAtMSw2ICsxLDYgQEAKLSAvKiB7IGRnLWRvIGNvbXBpbGUgfSAqLwotIC8qIHsgZGctb3B0aW9ucyAiLU8zIiB9ICovCi0tLyogeyBkZy1hZGRpdGlvbmFsLW9wdGlvbnMgIi1tbm8tc3NlIC1tbm8tbW14IiB7IHRhcmdldCBpPzg2LSotKiB4ODZfNjQtKi0qIH0gfSAqLwotKy8qIHsgZGctYWRkaXRpb25hbC1vcHRpb25zICItbW5vLXNzZSAtbW5vLW1teCAtbWZwbWF0aD0zODciIHsgdGFyZ2V0IGk/ODYtKi0qIHg4Nl82NC0qLSogfSB9ICovCi0gCi0gZW51bSBwb3dlcnBjX3BtY190eXBlIHsgUFBDX1BNQ19JQk0gfTsKLSBzdHJ1Y3QgewotZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvZ2NjLmRnL3ByNjk2MzQuYyBiL2djYy90ZXN0c3VpdGUvZ2NjLmRnL3ByNjk2MzQuYwotaW5kZXggNjBhNTYxNDk0NjMuLmJjYzIzZjljY2Q2IDEwMDY0NAotLS0tIGEvZ2NjL3Rlc3RzdWl0ZS9nY2MuZGcvcHI2OTYzNC5jCi0rKysgYi9nY2MvdGVzdHN1aXRlL2djYy5kZy9wcjY5NjM0LmMKLUBAIC0xLDYgKzEsNiBAQAotIC8qIHsgZGctZG8gY29tcGlsZSB9ICovCi0gLyogeyBkZy1vcHRpb25zICItTzIgLWZuby1kY2UgLWZzY2hlZHVsZS1pbnNucyAtZm5vLXRyZWUtdnJwIC1mY29tcGFyZS1kZWJ1ZyAtV25vLXBzYWJpIiB9ICovCi0tLyogeyBkZy1hZGRpdGlvbmFsLW9wdGlvbnMgIi1tbm8tc3NlIiB7IHRhcmdldCBpPzg2LSotKiB4ODZfNjQtKi0qIH0gfSAqLwotKy8qIHsgZGctYWRkaXRpb25hbC1vcHRpb25zICItbW5vLXNzZSAtbWZwbWF0aD0zODciIHsgdGFyZ2V0IGk/ODYtKi0qIHg4Nl82NC0qLSogfSB9ICovCi0gLyogeyBkZy1yZXF1aXJlLWVmZmVjdGl2ZS10YXJnZXQgc2NoZWR1bGluZyB9ICovCi0gCi0gdHlwZWRlZiB1bnNpZ25lZCBzaG9ydCB1MTY7Ci1kaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2kzODYvYW1kNjQtYWJpLTEuYyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9pMzg2L2FtZDY0LWFiaS0xLmMKLWluZGV4IDY5ZmRlNTdiZjA2Li43ZjFmMWMwM2VkZiAxMDA2NDQKLS0tLSBhL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9pMzg2L2FtZDY0LWFiaS0xLmMKLSsrKyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9pMzg2L2FtZDY0LWFiaS0xLmMKLUBAIC0xLDUgKzEsNSBAQAotIC8qIHsgZGctZG8gY29tcGlsZSB7IHRhcmdldCB7ICEgaWEzMiB9IH0gfSAqLwotLS8qIHsgZGctb3B0aW9ucyAiLW1uby1zc2UiIH0gKi8KLSsvKiB7IGRnLW9wdGlvbnMgIi1tbm8tc3NlIC1tZnBtYXRoPTM4NyIgfSAqLwotIC8qIHsgZGctYWRkaXRpb25hbC1vcHRpb25zICItbWFiaT1zeXN2IiB7IHRhcmdldCAqLSotbWluZ3cqIH0gfSAqLwotIAotIGRvdWJsZSBmb28odm9pZCkgeyByZXR1cm4gMDsgfQkvKiB7IGRnLWVycm9yICJTU0UgZGlzYWJsZWQiIH0gKi8KLWRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvaTM4Ni9mdW5jc3BlYy02LmMgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvaTM4Ni9mdW5jc3BlYy02LmMKLWluZGV4IGVhODk2YjdlYmZkLi5iZjE1NTY5YjgyNiAxMDA2NDQKLS0tLSBhL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9pMzg2L2Z1bmNzcGVjLTYuYwotKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2kzODYvZnVuY3NwZWMtNi5jCi1AQCAtMSw2ICsxLDcgQEAKLSAvKiBUZXN0IHdoZXRoZXIgYWxsIG9mIHRoZSA2NC1iaXQgZnVuY3Rpb24gc3BlY2lmaWMgb3B0aW9ucyBhcmUgYWNjZXB0ZWQKLSAgICB3aXRob3V0IGVycm9yLiAgKi8KLSAvKiB7IGRnLWRvIGNvbXBpbGUgeyB0YXJnZXQgeyAhIGlhMzIgfSB9IH0gKi8KLSsvKiB7IGRnLWFkZGl0aW9uYWwtb3B0aW9ucyAiLW1mcG1hdGg9Mzg3IiB9ICovCi0gCi0gI2luY2x1ZGUgImZ1bmNzcGVjLTU2LmluYyIKLSAKLWRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvaTM4Ni9pbnRlcnJ1cHQtMzg3LWVyci0xLmMgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvaTM4Ni9pbnRlcnJ1cHQtMzg3LWVyci0xLmMKLWluZGV4IDNmYmRjODgxZGRhLi42YjRkOWQxMjUyYSAxMDA2NDQKLS0tLSBhL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9pMzg2L2ludGVycnVwdC0zODctZXJyLTEuYwotKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2kzODYvaW50ZXJydXB0LTM4Ny1lcnItMS5jCi1AQCAtMSw1ICsxLDUgQEAKLSAvKiB7IGRnLWRvIGNvbXBpbGUgfSAqLwotLS8qIHsgZGctb3B0aW9ucyAiLU8yIC1tZ2VuZXJhbC1yZWdzLW9ubHkgLW1uby1jbGQgLW1uby1pYW1jdSAtbTgwMzg3IiB9ICovCi0rLyogeyBkZy1vcHRpb25zICItTzIgLW1nZW5lcmFsLXJlZ3Mtb25seSAtbW5vLWNsZCAtbW5vLWlhbWN1IC1tODAzODcgLW1mcG1hdGg9Mzg3IiB9ICovCi0gCi0gdHlwZWRlZiB1bnNpZ25lZCBpbnQgdXdvcmRfdCBfX2F0dHJpYnV0ZV9fICgobW9kZSAoX193b3JkX18pKSk7Ci0gCi1kaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2kzODYvaXNhLTE0LmMgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvaTM4Ni9pc2EtMTQuYwotaW5kZXggNWQ0OWU2ZTc3ZmUuLjFkZTJkYjkyYmRkIDEwMDY0NAotLS0tIGEvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2kzODYvaXNhLTE0LmMKLSsrKyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9pMzg2L2lzYS0xNC5jCi1AQCAtMSw1ICsxLDUgQEAKLSAvKiB7IGRnLWRvIHJ1biB9ICovCi0tLyogeyBkZy1vcHRpb25zICItbWFyY2g9eDg2LTY0IC1tc3NlNGEgLW1mbWE0IC1tbm8tc3NlIiB9ICovCi0rLyogeyBkZy1vcHRpb25zICItbWFyY2g9eDg2LTY0IC1tc3NlNGEgLW1mbWE0IC1tbm8tc3NlIC1tZnBtYXRoPTM4NyIgfSAqLwotIAotIGV4dGVybiB2b2lkIGFib3J0ICh2b2lkKTsKLSAKLWRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvaTM4Ni9wcjQ0OTQ4LTJiLmMgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvaTM4Ni9wcjQ0OTQ4LTJiLmMKLWluZGV4IGZhMTc2OWI2MmZiLi5mNzlmYjEyNzI2ZiAxMDA2NDQKLS0tLSBhL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9pMzg2L3ByNDQ5NDgtMmIuYwotKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2kzODYvcHI0NDk0OC0yYi5jCi1AQCAtMSw1ICsxLDUgQEAKLSAvKiB7IGRnLWRvIGNvbXBpbGUgfSAqLwotLS8qIHsgZGctb3B0aW9ucyAiLU8gLW1uby1zc2UgLVduby1wc2FiaSAtbXR1bmU9Z2VuZXJpYyIgfSAqLwotKy8qIHsgZGctb3B0aW9ucyAiLU8gLW1uby1zc2UgLVduby1wc2FiaSAtbXR1bmU9Z2VuZXJpYyAtbWZwbWF0aD0zODciIH0gKi8KLSAKLSBzdHJ1Y3QgQQotIHsgCi1kaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2kzODYvcHI1MzQyNS0xLmMgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvaTM4Ni9wcjUzNDI1LTEuYwotaW5kZXggMmU4OWZmN2Q4MWQuLjYzMzliZjZiNzM2IDEwMDY0NAotLS0tIGEvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2kzODYvcHI1MzQyNS0xLmMKLSsrKyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9pMzg2L3ByNTM0MjUtMS5jCi1AQCAtMSw2ICsxLDYgQEAKLSAvKiBQUiB0YXJnZXQvNTM0MjUgKi8KLSAvKiB7IGRnLWRvIGNvbXBpbGUgeyB0YXJnZXQgeyAhIGlhMzIgfSB9IH0gKi8KLS0vKiB7IGRnLW9wdGlvbnMgIi1PMiAtbW5vLXNzZSIgfSAqLwotKy8qIHsgZGctb3B0aW9ucyAiLU8yIC1tbm8tc3NlIC1tZnBtYXRoPTM4NyIgfSAqLwotIC8qIHsgZGctc2tpcC1pZiAibm8gU1NFIHZlY3RvciIgeyB4ODZfNjQtKi1taW5ndyogfSB9ICovCi0gCi0gdHlwZWRlZiBkb3VibGUgX192MmRmIF9fYXR0cmlidXRlX18gKChfX3ZlY3Rvcl9zaXplX18gKDE2KSkpOwotZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9pMzg2L3ByNTM0MjUtMi5jIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2kzODYvcHI1MzQyNS0yLmMKLWluZGV4IDYxZjYyODNkYmU5Li4yYzVhNTVmMGFjMyAxMDA2NDQKLS0tLSBhL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9pMzg2L3ByNTM0MjUtMi5jCi0rKysgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvaTM4Ni9wcjUzNDI1LTIuYwotQEAgLTEsNiArMSw2IEBACi0gLyogUFIgdGFyZ2V0LzUzNDI1ICovCi0gLyogeyBkZy1kbyBjb21waWxlIHsgdGFyZ2V0IHsgISBpYTMyIH0gfSB9ICovCi0tLyogeyBkZy1vcHRpb25zICItTzIgLW1uby1zc2UiIH0gKi8KLSsvKiB7IGRnLW9wdGlvbnMgIi1PMiAtbW5vLXNzZSAtbWZwbWF0aD0zODciIH0gKi8KLSAvKiB7IGRnLXNraXAtaWYgIm5vIFNTRSB2ZWN0b3IiIHsgeDg2XzY0LSotbWluZ3cqIH0gfSAqLwotIAotIHR5cGVkZWYgZmxvYXQgX192MnNmIF9fYXR0cmlidXRlX18gKChfX3ZlY3Rvcl9zaXplX18gKDgpKSk7Ci1kaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2kzODYvcHI1NTI0Ny5jIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2kzODYvcHI1NTI0Ny5jCi1pbmRleCAyMzM2NmQwOTA5ZC4uOTgxMGUzYWJiNzYgMTAwNjQ0Ci0tLS0gYS9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvaTM4Ni9wcjU1MjQ3LmMKLSsrKyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9pMzg2L3ByNTUyNDcuYwotQEAgLTEsNiArMSw2IEBACi0gLyogeyBkZy1kbyBjb21waWxlIHsgdGFyZ2V0IHsgISBpYTMyIH0gfSB9ICovCi0gLyogeyBkZy1yZXF1aXJlLWVmZmVjdGl2ZS10YXJnZXQgbWF5YmVfeDMyIH0gKi8KLS0vKiB7IGRnLW9wdGlvbnMgIi1PMiAtbW5vLXNzZSAtbW5vLW1teCAtbXgzMiAtbWFkZHJlc3MtbW9kZT1sb25nIiB9ICovCi0rLyogeyBkZy1vcHRpb25zICItTzIgLW1uby1zc2UgLW1uby1tbXggLW14MzIgLW1hZGRyZXNzLW1vZGU9bG9uZyAtbWZwbWF0aD0zODciIH0gKi8KLSAKLSB0eXBlZGVmIHVuc2lnbmVkIGludCB1aW50MzJfdDsKLSB0eXBlZGVmIHVpbnQzMl90IEVsZjMyX1dvcmQ7Ci1kaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2kzODYvcHI1OTY0NC5jIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2kzODYvcHI1OTY0NC5jCi1pbmRleCA5NjAwNmIzZTMzOC4uNDI4N2U0NTM4YmYgMTAwNjQ0Ci0tLS0gYS9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvaTM4Ni9wcjU5NjQ0LmMKLSsrKyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9pMzg2L3ByNTk2NDQuYwotQEAgLTEsNiArMSw2IEBACi0gLyogUFIgdGFyZ2V0LzU5NjQ0ICovCi0gLyogeyBkZy1kbyBydW4geyB0YXJnZXQgbHA2NCB9IH0gKi8KLS0vKiB7IGRnLW9wdGlvbnMgIi1PMiAtZmZyZWVzdGFuZGluZyAtbW5vLXNzZSAtbXByZWZlcnJlZC1zdGFjay1ib3VuZGFyeT0zIC1tYWNjdW11bGF0ZS1vdXRnb2luZy1hcmdzIC1tbm8tcmVkLXpvbmUiIH0gKi8KLSsvKiB7IGRnLW9wdGlvbnMgIi1PMiAtZmZyZWVzdGFuZGluZyAtbW5vLXNzZSAtbXByZWZlcnJlZC1zdGFjay1ib3VuZGFyeT0zIC1tYWNjdW11bGF0ZS1vdXRnb2luZy1hcmdzIC1tbm8tcmVkLXpvbmUgLW1mcG1hdGg9Mzg3IiB9ICovCi0gCi0gLyogVGhpcyB0ZXN0IHVzZXMgX19idWlsdGluX3RyYXAgKCkgaW5zdGVhZCBvZiBlLmcuIGFib3J0LAotICAgIGJlY2F1c2UgZHVlIHRvIC1tcHJlZmVycmVkLXN0YWNrLWJvdW5kYXJ5PTMgaXQgc2hvdWxkIG5vdCBjYWxsCi1kaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2kzODYvcHI2MjEyMC5jIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2kzODYvcHI2MjEyMC5jCi1pbmRleCBiZmI4YzQ3MDNlYi4uZWQwNGNmMTgxZjMgMTAwNjQ0Ci0tLS0gYS9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvaTM4Ni9wcjYyMTIwLmMKLSsrKyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9pMzg2L3ByNjIxMjAuYwotQEAgLTEsNSArMSw1IEBACi0gLyogeyBkZy1kbyBjb21waWxlIH0gKi8KLS0vKiB7IGRnLW9wdGlvbnMgIi1tbm8tc3NlIiB9ICovCi0rLyogeyBkZy1vcHRpb25zICItbW5vLXNzZSAtbWZwbWF0aD0zODciIH0gKi8KLSAKLSB2b2lkIGZvbyAoKQotIHsKLWRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvaTM4Ni9wcjcwNDY3LTEuYyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9pMzg2L3ByNzA0NjctMS5jCi1pbmRleCA0ZTExMmM4OGQwNy4uYmNmYjM5NmE2OGQgMTAwNjQ0Ci0tLS0gYS9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvaTM4Ni9wcjcwNDY3LTEuYwotKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2kzODYvcHI3MDQ2Ny0xLmMKLUBAIC0xLDYgKzEsNiBAQAotIC8qIFBSIHJ0bC1vcHRpbWl6YXRpb24vNzA0NjcgKi8KLSAvKiB7IGRnLWRvIGNvbXBpbGUgfSAqLwotLS8qIHsgZGctb3B0aW9ucyAiLU8yIC1tbm8tc3NlIiB9ICovCi0rLyogeyBkZy1vcHRpb25zICItTzIgLW1uby1zc2UgLW1mcG1hdGg9Mzg3IiB9ICovCi0gCi0gdm9pZCBmb28gKHVuc2lnbmVkIGxvbmcgbG9uZyAqKTsKLSAKLWRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvaTM4Ni93YXJuLXZlY3Qtb3AtMS5jIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2kzODYvd2Fybi12ZWN0LW9wLTEuYwotaW5kZXggNmNkYTE1MzQzMTEuLjI2ZTM3ZjViOGJhIDEwMDY0NAotLS0tIGEvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2kzODYvd2Fybi12ZWN0LW9wLTEuYwotKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2kzODYvd2Fybi12ZWN0LW9wLTEuYwotQEAgLTEsNSArMSw1IEBACi0gLyogeyBkZy1kbyBjb21waWxlIHsgdGFyZ2V0IHsgISBpYTMyIH0gfSB9ICAqLwotLS8qIHsgZGctb3B0aW9ucyAiLW1uby1zc2UgLVd2ZWN0b3Itb3BlcmF0aW9uLXBlcmZvcm1hbmNlIiB9ICAqLwotKy8qIHsgZGctb3B0aW9ucyAiLW1uby1zc2UgLVd2ZWN0b3Itb3BlcmF0aW9uLXBlcmZvcm1hbmNlIC1tZnBtYXRoPTM4NyIgfSAgKi8KLSAjZGVmaW5lIHZlY3RvcihlbGNvdW50LCB0eXBlKSAgXAotIF9fYXR0cmlidXRlX18oKHZlY3Rvcl9zaXplKChlbGNvdW50KSpzaXplb2YodHlwZSkpKSkgdHlwZQotIAotLS0gCi0yLjIxLjAKLQpkaWZmIC0tZ2l0IGEvcG9reS9tZXRhL3JlY2lwZXMtZGV2dG9vbHMvZ2NjL2djYy04LjMvMDAzOC1SZS1pbnRyb2R1Y2Utc3BlLWNvbW1hbmRsaW5lLW9wdGlvbnMucGF0Y2ggYi9wb2t5L21ldGEvcmVjaXBlcy1kZXZ0b29scy9nY2MvZ2NjLTguMy8wMDM4LVJlLWludHJvZHVjZS1zcGUtY29tbWFuZGxpbmUtb3B0aW9ucy5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOGRlODg5Mi4uMDAwMDAwMAotLS0gYS9wb2t5L21ldGEvcmVjaXBlcy1kZXZ0b29scy9nY2MvZ2NjLTguMy8wMDM4LVJlLWludHJvZHVjZS1zcGUtY29tbWFuZGxpbmUtb3B0aW9ucy5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDQxICswLDAgQEAKLUZyb20gZjBiZWE5NjQzNGFjNDc4YzNjZmY4YzI5ZGQ5N2NjY2ZhYzViMzVlMyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IEtoZW0gUmFqIDxyYWoua2hlbUBnbWFpbC5jb20+Ci1EYXRlOiBXZWQsIDYgSnVuIDIwMTggMTI6MTA6MjIgLTA3MDAKLVN1YmplY3Q6IFtQQVRDSCAzOC80MF0gUmUtaW50cm9kdWNlIHNwZSBjb21tYW5kbGluZSBvcHRpb25zCi0KLVRoaXMgc2hvdWxkIGVuc3VyZSB0aGF0IHdlIGtlZXAgYWNjZXB0aW5nCi1zcGUgb3B0aW9ucwotCi1VcHN0cmVhbS1TdGF0dXM6IEluYXBwcm9wcmlhdGUgW1NQRSBwb3J0IGlzIHJlbW92ZWQgZnJvbSByczYwMCBwb3J0XQotCi1TaWduZWQtb2ZmLWJ5OiBLaGVtIFJhaiA8cmFqLmtoZW1AZ21haWwuY29tPgotLS0tCi0gZ2NjL2NvbmZpZy9yczYwMDAvcnM2MDAwLm9wdCB8IDEyICsrKysrKysrKysrKwotIDEgZmlsZSBjaGFuZ2VkLCAxMiBpbnNlcnRpb25zKCspCi0KLWRpZmYgLS1naXQgYS9nY2MvY29uZmlnL3JzNjAwMC9yczYwMDAub3B0IGIvZ2NjL2NvbmZpZy9yczYwMDAvcnM2MDAwLm9wdAotaW5kZXggYWNlOGE0Nzc1NTAuLmQ2YThmODI1ZDg4IDEwMDY0NAotLS0tIGEvZ2NjL2NvbmZpZy9yczYwMDAvcnM2MDAwLm9wdAotKysrIGIvZ2NjL2NvbmZpZy9yczYwMDAvcnM2MDAwLm9wdAotQEAgLTM2NSw2ICszNjUsMTggQEAgbWRlYnVnPQotIFRhcmdldCBSZWplY3ROZWdhdGl2ZSBKb2luZWQKLSAtbWRlYnVnPQlFbmFibGUgZGVidWcgb3V0cHV0LgotIAotK21zcGUKLStUYXJnZXQgVmFyKHJzNjAwMF9zcGUpIFNhdmUKLStHZW5lcmF0ZSBTUEUgU0lNRCBpbnN0cnVjdGlvbnMgb24gRTUwMC4KLSsKLSttYWJpPXNwZQotK1RhcmdldCBSZWplY3ROZWdhdGl2ZSBWYXIocnM2MDAwX3NwZV9hYmkpIFNhdmUKLStVc2UgdGhlIFNQRSBBQkkgZXh0ZW5zaW9ucy4KLSsKLSttYWJpPW5vLXNwZQotK1RhcmdldCBSZWplY3ROZWdhdGl2ZSBWYXIocnM2MDAwX3NwZV9hYmksIDApCi0rRG8gbm90IHVzZSB0aGUgU1BFIEFCSSBleHRlbnNpb25zLgotKwotIG1hYmk9YWx0aXZlYwotIFRhcmdldCBSZWplY3ROZWdhdGl2ZSBWYXIocnM2MDAwX2FsdGl2ZWNfYWJpKSBTYXZlCi0gVXNlIHRoZSBBbHRpVmVjIEFCSSBleHRlbnNpb25zLgotLS0gCi0yLjIxLjAKLQpkaWZmIC0tZ2l0IGEvcG9reS9tZXRhL3JlY2lwZXMtZGV2dG9vbHMvZ2NjL2djYy04LjMvMDAzOS1yaXNjdi1EaXNhYmxlLW11bHRpbGliLWZvci1PRS5wYXRjaCBiL3Bva3kvbWV0YS9yZWNpcGVzLWRldnRvb2xzL2djYy9nY2MtOC4zLzAwMzktcmlzY3YtRGlzYWJsZS1tdWx0aWxpYi1mb3ItT0UucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGY3YjIyMmUuLjAwMDAwMDAKLS0tIGEvcG9reS9tZXRhL3JlY2lwZXMtZGV2dG9vbHMvZ2NjL2djYy04LjMvMDAzOS1yaXNjdi1EaXNhYmxlLW11bHRpbGliLWZvci1PRS5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDI3ICswLDAgQEAKLUZyb20gMjRmNzQ0NDRjMDBjNmM5YmYwNzZmYjAwMjYxNGViZjZkZWMzMWYxYSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IEtoZW0gUmFqIDxyYWoua2hlbUBnbWFpbC5jb20+Ci1EYXRlOiBGcmksIDI4IERlYyAyMDE4IDA5OjU5OjUzIC0wODAwCi1TdWJqZWN0OiBbUEFUQ0ggMzkvNDBdIHJpc2N2OiBEaXNhYmxlIG11bHRpbGliIGZvciBPRQotCi1VcHN0cmVhbS1TdGF0dXM6IEluYXBwcm9wcmlhdGUgW09FLVNwZWNpZmljXQotCi1TaWduZWQtb2ZmLWJ5OiBLaGVtIFJhaiA8cmFqLmtoZW1AZ21haWwuY29tPgotLS0tCi0gZ2NjL2NvbmZpZy9yaXNjdi90LWxpbnV4IHwgNiArKysrLS0KLSAxIGZpbGUgY2hhbmdlZCwgNCBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQotCi1kaWZmIC0tZ2l0IGEvZ2NjL2NvbmZpZy9yaXNjdi90LWxpbnV4IGIvZ2NjL2NvbmZpZy9yaXNjdi90LWxpbnV4Ci1pbmRleCAyMTZkMjc3NmExOC4uZTRkODE3NjIxZmMgMTAwNjQ0Ci0tLS0gYS9nY2MvY29uZmlnL3Jpc2N2L3QtbGludXgKLSsrKyBiL2djYy9jb25maWcvcmlzY3YvdC1saW51eAotQEAgLTEsMyArMSw1IEBACi0gIyBPbmx5IFhMRU4gYW5kIEFCSSBhZmZlY3QgTGludXggbXVsdGlsaWIgZGlyIG5hbWVzLCBlLmcuIC9saWIzMi9pbHAzMmQvCi0tTVVMVElMSUJfRElSTkFNRVMgOj0gJChwYXRzdWJzdCBydjMyJSxsaWIzMiwkKHBhdHN1YnN0IHJ2NjQlLGxpYjY0LCQoTVVMVElMSUJfRElSTkFNRVMpKSkKLS1NVUxUSUxJQl9PU0RJUk5BTUVTIDo9ICQocGF0c3Vic3QgbGliJSwuLi9saWIlLCQoTVVMVElMSUJfRElSTkFNRVMpKQotKyNNVUxUSUxJQl9ESVJOQU1FUyA6PSAkKHBhdHN1YnN0IHJ2MzIlLGxpYjMyLCQocGF0c3Vic3QgcnY2NCUsbGliNjQsJChNVUxUSUxJQl9ESVJOQU1FUykpKQotK01VTFRJTElCX0RJUk5BTUVTIDo9IC4gLgotKyNNVUxUSUxJQl9PU0RJUk5BTUVTIDo9ICQocGF0c3Vic3QgbGliJSwuLi9saWIlLCQoTVVMVElMSUJfRElSTkFNRVMpKQotK01VTFRJTElCX09TRElSTkFNRVMgOj0gLi4vJChzaGVsbCBiYXNlbmFtZSAkKGJhc2VfbGliZGlyKSkgLi4vJChzaGVsbCBiYXNlbmFtZSAkKGJhc2VfbGliZGlyKSkKLS0tIAotMi4yMS4wCi0KZGlmZiAtLWdpdCBhL3Bva3kvbWV0YS9yZWNpcGVzLWRldnRvb2xzL2djYy9nY2MtOC4zLzAwNDAtcG93ZXJwYy1wb3dlcnBjNjQtQWRkLXN1cHBvcnQtZm9yLW11c2wtbGRzby5wYXRjaCBiL3Bva3kvbWV0YS9yZWNpcGVzLWRldnRvb2xzL2djYy9nY2MtOC4zLzAwNDAtcG93ZXJwYy1wb3dlcnBjNjQtQWRkLXN1cHBvcnQtZm9yLW11c2wtbGRzby5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOWZiYTE2My4uMDAwMDAwMAotLS0gYS9wb2t5L21ldGEvcmVjaXBlcy1kZXZ0b29scy9nY2MvZ2NjLTguMy8wMDQwLXBvd2VycGMtcG93ZXJwYzY0LUFkZC1zdXBwb3J0LWZvci1tdXNsLWxkc28ucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwzMSArMCwwIEBACi1Gcm9tIDRiZDBhMzg2NmYzMDI3MjVjYjRlZGRjYWRkYWVlY2U2NDkwMGM0MmYgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBTZXJoZXkgUG9wb3Z5Y2ggPHNlcmhlLnBvcG92eWNoQGdtYWlsLmNvbT4KLURhdGU6IFR1ZSwgMTEgRGVjIDIwMTggMDI6MzA6NTAgLTA1MDAKLVN1YmplY3Q6IFtQQVRDSCA0MC80MF0gcG93ZXJwYy9wb3dlcnBjNjQ6IEFkZCBzdXBwb3J0IGZvciBtdXNsIGxkc28KLQotVXBzdHJlYW0tU3RhdHVzOiBJbmFwcHJvcHJpYXRlIFtPRS1TcGVjaWZpY10KLQotU2lnbmVkLW9mZi1ieTogU2VyaGV5IFBvcG92eWNoIDxzZXJoZS5wb3BvdnljaEBnbWFpbC5jb20+Ci0tLS0KLSBnY2MvY29uZmlnL3JzNjAwMC9saW51eDY0LmggfCA0ICsrLS0KLSAxIGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQotCi1kaWZmIC0tZ2l0IGEvZ2NjL2NvbmZpZy9yczYwMDAvbGludXg2NC5oIGIvZ2NjL2NvbmZpZy9yczYwMDAvbGludXg2NC5oCi1pbmRleCA2MTllMTEzZTJiOC4uZWU4YjQ0ZjkzNzQgMTAwNjQ0Ci0tLS0gYS9nY2MvY29uZmlnL3JzNjAwMC9saW51eDY0LmgKLSsrKyBiL2djYy9jb25maWcvcnM2MDAwL2xpbnV4NjQuaAotQEAgLTQyMSw5ICs0MjEsOSBAQCBleHRlcm4gaW50IGRvdF9zeW1ib2xzOwotICNlbmRpZgotIAotICNkZWZpbmUgTVVTTF9EWU5BTUlDX0xJTktFUjMyIFwKLS0gICIvbGliL2xkLW11c2wtcG93ZXJwYyIgTVVTTF9EWU5BTUlDX0xJTktFUl9FICIle21zb2Z0LWZsb2F0Oi1zZn0uc28uMSIKLSsgIFNZU1RFTUxJQlNfRElSICJsZC1tdXNsLXBvd2VycGMiIE1VU0xfRFlOQU1JQ19MSU5LRVJfRSAiJXttc29mdC1mbG9hdDotc2Z9LnNvLjEiCi0gI2RlZmluZSBNVVNMX0RZTkFNSUNfTElOS0VSNjQgXAotLSAgIi9saWIvbGQtbXVzbC1wb3dlcnBjNjQiIE1VU0xfRFlOQU1JQ19MSU5LRVJfRSAiJXttc29mdC1mbG9hdDotc2Z9LnNvLjEiCi0rICBTWVNURU1MSUJTX0RJUiAibGQtbXVzbC1wb3dlcnBjNjQiIE1VU0xfRFlOQU1JQ19MSU5LRVJfRSAiJXttc29mdC1mbG9hdDotc2Z9LnNvLjEiCi0gCi0gI2RlZmluZSBVQ0xJQkNfRFlOQU1JQ19MSU5LRVIzMiBTWVNURU1MSUJTX0RJUiAibGQtdUNsaWJjLnNvLjAiCi0gI2RlZmluZSBVQ0xJQkNfRFlOQU1JQ19MSU5LRVI2NCBTWVNURU1MSUJTX0RJUiAibGQ2NC11Q2xpYmMuc28uMCIKLS0tIAotMi4yMS4wCi0KZGlmZiAtLWdpdCBhL3Bva3kvbWV0YS9yZWNpcGVzLWRldnRvb2xzL2djYy9nY2MtOC4zLzAwNDEtQWRkLWEtcmVjdXJzaW9uLWxpbWl0LXRvLWxpYmliZXJ0eS1zLWRlbWFuZ2xpbmctY29kZS5wYXRjaCBiL3Bva3kvbWV0YS9yZWNpcGVzLWRldnRvb2xzL2djYy9nY2MtOC4zLzAwNDEtQWRkLWEtcmVjdXJzaW9uLWxpbWl0LXRvLWxpYmliZXJ0eS1zLWRlbWFuZ2xpbmctY29kZS5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZjMzMDNiNi4uMDAwMDAwMAotLS0gYS9wb2t5L21ldGEvcmVjaXBlcy1kZXZ0b29scy9nY2MvZ2NjLTguMy8wMDQxLUFkZC1hLXJlY3Vyc2lvbi1saW1pdC10by1saWJpYmVydHktcy1kZW1hbmdsaW5nLWNvZGUucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwzMjUgKzAsMCBAQAotRnJvbSBlMTc0NGUxMWIxYzJiMzZmOTFhODg0N2I2MWJhZmI4YzVlNzQwN2FlIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogbmlja2MgPG5pY2tjQDEzOGJjNzVkLTBkMDQtMDQxMC05NjFmLTgyZWU3MmIwNTRhND4KLURhdGU6IEZyaSwgNyBEZWMgMjAxOCAxMDozMzozMCArMDAwMAotU3ViamVjdDogW1BBVENIXSBBZGQgYSByZWN1cnNpb24gbGltaXQgdG8gbGliaWJlcnR5J3MgZGVtYW5nbGluZyBjb2RlLiBUaGUKLSBsaW1pdCBpcyBlbmFibGVkIGJ5IGRlZmF1bHQsIGJ1dCBjYW4gYmUgZGlzYWJsZWQgdmlhIGEgbmV3IGRlbWFuZ2xpbmcgb3B0aW9uLgotCi1pbmNsdWRlCSogZGVtYW5nbGUuaCAoRE1HTF9OT19SRUNVUlNFX0xJTUlUKTogRGVmaW5lLgotICAgICAgICAoREVNQU5HTEVfUkVDVVJTSU9OX0xJTUlUKTogRGVmaW5lCi0KLQlQUiA4NzY4MQotCVBSIDg3Njc1Ci0JUFIgODc2MzYKLQlQUiA4NzM1MAotCVBSIDg3MzM1Ci1saWJpYmVydHkgKiBjcC1kZW1hbmdsZS5oIChzdHJ1Y3QgZF9pbmZvKTogQWRkIHJlY3Vyc2lvbl9sZXZlbCBmaWVsZC4KLQkqIGNwLWRlbWFuZ2xlLmMgKGRfZnVuY3Rpb25fdHlwZSk6IEFkZCByZWN1cnNpb24gY291bnRlci4KLQlJZiB0aGUgcmVjdXJzaW9uIGxpbWl0IGlzIHJlYWNoZWQgYW5kIHRoZSBjaGVjayBpcyBub3QgZGlzYWJsZWQsCi0JdGhlbiByZXR1cm4gd2l0aCBhIGZhaWx1cmUgcmVzdWx0LgotCShjcGx1c19kZW1hbmdsZV9pbml0X2luZm8pOiBJbml0aWFsaXNlIHRoZSByZWN1cnNpb25fbGV2ZWwgZmllbGQuCi0gICAgICAgIChkX2RlbWFuZ2xlX2NhbGxiYWNrKTogSWYgdGhlIHJlY3Vyc2lvbiBsaW1pdCBpcyBlbmFibGVkLCBjaGVjawotCWZvciBhIG1hbmdsZWQgc3RyaW5nIHRoYXQgaXMgc28gbG9uZyB0aGF0IHRoZXJlIGlzIG5vdCBlbm91Z2gKLQlzdGFjayBzcGFjZSBmb3IgdGhlIGxvY2FsIGFycmF5cy4KLSAgICAgICAgKiBjcGx1cy1kZW0uYyAoc3RydWN0IHdvcmspOiBBZGQgcmVjdXJzaW9uX2xldmVsIGZpZWxkLgotCShzcXVhbmdsZV9tb3BfdXApOiBTZXQgdGhlIG51bWIgYW5kIG51bWsgZmllbGRzIHRvIHplcm8uCi0JKHdvcmtfc3R1ZmZfY29weV90b19mcm9tKTogSGFuZGxlIHRoZSBjYXNlIHdoZXJlIGEgYnR5cGV2ZWMgb3IKLQlrdHlwZXZlYyBmaWVsZCBpcyBOVUxMLgotCShkZW1hbmdsZV9uZXN0ZWRfYXJncyk6IEFkZCByZWN1cnNpb24gY291bnRlci4gIElmCi0JdGhlIHJlY3Vyc2lvbiBsaW1pdCBpcyBub3QgZGlzYWJsZWQgYW5kIHJlYWNoZWQsIHJldHVybiB3aXRoIGEKLQlmYWlsdXJlIHJlc3VsdC4KLQotZ2l0LXN2bi1pZDogc3ZuK3NzaDovL2djYy5nbnUub3JnL3N2bi9nY2MvdHJ1bmtAMjY2ODg2IDEzOGJjNzVkLTBkMDQtMDQxMC05NjFmLTgyZWU3MmIwNTRhNAotCi1DVkU6IENWRS0yMDE4LTE4NDg0Ci1VcHN0cmVhbS1TdGF0dXM6IEJhY2twb3J0IFtodHRwczovL2dpdGh1Yi5jb20vZ2NjLW1pcnJvci9nY2MvY29tbWl0LzAzZTUxNzQ2ZWQ5OGQ5MTA2ODAzZjYwMDllYmQ3MWVhNjcwYWQzYjldCi1TaWduZWQtb2ZmLWJ5OiBBbnVqIE1pdHRhbCA8YW51ai5taXR0YWxAaW50ZWwuY29tPgotLS0tCi0gaW5jbHVkZS9DaGFuZ2VMb2cgICAgICAgfCAgNSArKysrKwotIGluY2x1ZGUvZGVtYW5nbGUuaCAgICAgIHwgMTEgKysrKysrKysrKysKLSBsaWJpYmVydHkvQ2hhbmdlTG9nICAgICB8IDIzICsrKysrKysrKysrKysrKysrKysrKysKLSBsaWJpYmVydHkvY3AtZGVtYW5nbGUuYyB8IDUxICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0KLSBsaWJpYmVydHkvY3AtZGVtYW5nbGUuaCB8ICAzICsrKwotIGxpYmliZXJ0eS9jcGx1cy1kZW0uYyAgIHwgMzcgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0KLSA2IGZpbGVzIGNoYW5nZWQsIDExNyBpbnNlcnRpb25zKCspLCAxMyBkZWxldGlvbnMoLSkKLQotZGlmZiAtLWdpdCBhL2luY2x1ZGUvQ2hhbmdlTG9nIGIvaW5jbHVkZS9DaGFuZ2VMb2cKLWluZGV4IDAyYWIzMzYuLjg4YjA2NDggMTAwNjQ0Ci0tLS0gYS9pbmNsdWRlL0NoYW5nZUxvZwotKysrIGIvaW5jbHVkZS9DaGFuZ2VMb2cKLUBAIC0yLDYgKzIsMTEgQEAKLSAKLSAJKiBHQ0MgOC4zLjAgcmVsZWFzZWQuCi0gCi0rMjAxOC0xMi0wNyAgTmljayBDbGlmdG9uICA8bmlja2NAcmVkaGF0LmNvbT4KLSsKLSsJKiBkZW1hbmdsZS5oIChETUdMX05PX1JFQ1VSU0VfTElNSVQpOiBEZWZpbmUuCi0rCShERU1BTkdMRV9SRUNVUlNJT05fTElNSVQpOiBEZWZpbmUKLSsKLSAyMDE4LTA3LTI2ICBSZWxlYXNlIE1hbmFnZXIKLSAKLSAJKiBHQ0MgOC4yLjAgcmVsZWFzZWQuCi1kaWZmIC0tZ2l0IGEvaW5jbHVkZS9kZW1hbmdsZS5oIGIvaW5jbHVkZS9kZW1hbmdsZS5oCi1pbmRleCBiOGQ1N2NmLi45YmI4YTE5IDEwMDY0NAotLS0tIGEvaW5jbHVkZS9kZW1hbmdsZS5oCi0rKysgYi9pbmNsdWRlL2RlbWFuZ2xlLmgKLUBAIC02OCw2ICs2OCwxNyBAQCBleHRlcm4gIkMiIHsKLSAvKiBJZiBub25lIG9mIHRoZXNlIGFyZSBzZXQsIHVzZSAnY3VycmVudF9kZW1hbmdsaW5nX3N0eWxlJyBhcyB0aGUgZGVmYXVsdC4gKi8KLSAjZGVmaW5lIERNR0xfU1RZTEVfTUFTSyAoRE1HTF9BVVRPfERNR0xfR05VfERNR0xfTFVDSUR8RE1HTF9BUk18RE1HTF9IUHxETUdMX0VER3xETUdMX0dOVV9WM3xETUdMX0pBVkF8RE1HTF9HTkFUfERNR0xfRExBTkd8RE1HTF9SVVNUKQotIAotKy8qIERpc2FibGUgYSBsaW1pdCBvbiB0aGUgZGVwdGggb2YgcmVjdXJzaW9uIGluIG1hbmdsZWQgc3RyaW5ncy4KLSsgICBOb3RlIGlmIHRoaXMgbGltaXQgaXMgZGlzYWJsZWQgdGhlbiBzdGFjayBleGhhdXN0aW9uIGlzIHBvc3NpYmxlIHdoZW4KLSsgICBkZW1hbmdsaW5nIHBhdGhvbG9naWNhbGx5IGNvbXBsaWNhdGVkIHN0cmluZ3MuICBCdWcgcmVwb3J0cyBhYm91dCBzdGFjawotKyAgIGV4aGF1c3Rpb24gd2hlbiB0aGUgb3B0aW9uIGlzIGVuYWJsZWQgd2lsbCBiZSByZWplY3RlZC4gICovICAKLSsjZGVmaW5lIERNR0xfTk9fUkVDVVJTRV9MSU1JVCAoMSA8PCAxOCkJCi0rCi0rLyogSWYgRE1HTF9OT19SRUNVUlNFX0xJTUlUIGlzIG5vdCBlbmFibGVkLCB0aGVuIHRoaXMgaXMgdGhlIHZhbHVlIHVzZWQgYXMKLSsgICB0aGUgbWF4aW11bSBkZXB0aCBvZiByZWN1cnNpb24gYWxsb3dlZC4gIEl0IHNob3VsZCBiZSBlbm91Z2ggZm9yIGFueQotKyAgIHJlYWwtd29ybGQgbWFuZ2xlZCBuYW1lLiAgKi8KLSsjZGVmaW5lIERFTUFOR0xFX1JFQ1VSU0lPTl9MSU1JVCAxMDI0Ci0rICAKLSAvKiBFbnVtZXJhdGlvbiBvZiBwb3NzaWJsZSBkZW1hbmdsaW5nIHN0eWxlcy4KLSAKLSAgICBMdWNpZCBhbmQgQVJNIHN0eWxlcyBhcmUgc3RpbGwga2VwdCBsb2dpY2FsbHkgZGlzdGluY3QsIGV2ZW4gdGhvdWdoCi1kaWZmIC0tZ2l0IGEvbGliaWJlcnR5L0NoYW5nZUxvZyBiL2xpYmliZXJ0eS9DaGFuZ2VMb2cKLWluZGV4IDFkZDA1ZGEuLjJmNzcwMzggMTAwNjQ0Ci0tLS0gYS9saWJpYmVydHkvQ2hhbmdlTG9nCi0rKysgYi9saWJpYmVydHkvQ2hhbmdlTG9nCi1AQCAtOSw2ICs5LDI5IEBACi0gCShzaW1wbGVfb2JqZWN0X2NvcHlfbHRvX2RlYnVnX3NlY3Rpb25zKTogQ3JlYXRlIGZpbGUgaW4gYmluYXJ5Ci0gCW1vZGUuCi0gCi0rMjAxOC0xMi0wNyAgTmljayBDbGlmdG9uICA8bmlja2NAcmVkaGF0LmNvbT4KLSsKLSsJUFIgODc2ODEKLSsJUFIgODc2NzUKLSsJUFIgODc2MzYKLSsJUFIgODczNTAKLSsJUFIgODczMzUKLSsJKiBjcC1kZW1hbmdsZS5oIChzdHJ1Y3QgZF9pbmZvKTogQWRkIHJlY3Vyc2lvbl9sZXZlbCBmaWVsZC4KLSsJKiBjcC1kZW1hbmdsZS5jIChkX2Z1bmN0aW9uX3R5cGUpOiBBZGQgcmVjdXJzaW9uIGNvdW50ZXIuCi0rCUlmIHRoZSByZWN1cnNpb24gbGltaXQgaXMgcmVhY2hlZCBhbmQgdGhlIGNoZWNrIGlzIG5vdCBkaXNhYmxlZCwKLSsJdGhlbiByZXR1cm4gd2l0aCBhIGZhaWx1cmUgcmVzdWx0LgotKwkoY3BsdXNfZGVtYW5nbGVfaW5pdF9pbmZvKTogSW5pdGlhbGlzZSB0aGUgcmVjdXJzaW9uX2xldmVsIGZpZWxkLgotKwkgKGRfZGVtYW5nbGVfY2FsbGJhY2spOiBJZiB0aGUgcmVjdXJzaW9uIGxpbWl0IGlzIGVuYWJsZWQsIGNoZWNrCi0rCWZvciBhIG1hbmdsZWQgc3RyaW5nIHRoYXQgaXMgc28gbG9uZyB0aGF0IHRoZXJlIGlzIG5vdCBlbm91Z2gKLSsJc3RhY2sgc3BhY2UgZm9yIHRoZSBsb2NhbCBhcnJheXMuCi0rCSAqIGNwbHVzLWRlbS5jIChzdHJ1Y3Qgd29yayk6IEFkZCByZWN1cnNpb25fbGV2ZWwgZmllbGQuCi0rCShzcXVhbmdsZV9tb3BfdXApOiBTZXQgdGhlIG51bWIgYW5kIG51bWsgZmllbGRzIHRvIHplcm8uCi0rCSh3b3JrX3N0dWZmX2NvcHlfdG9fZnJvbSk6IEhhbmRsZSB0aGUgY2FzZSB3aGVyZSBhIGJ0eXBldmVjIG9yCi0rCWt0eXBldmVjIGZpZWxkIGlzIE5VTEwuCi0rCShkZW1hbmdsZV9uZXN0ZWRfYXJncyk6IEFkZCByZWN1cnNpb24gY291bnRlci4gIElmCi0rCXRoZSByZWN1cnNpb24gbGltaXQgaXMgbm90IGRpc2FibGVkIGFuZCByZWFjaGVkLCByZXR1cm4gd2l0aCBhCi0rCWZhaWx1cmUgcmVzdWx0LgotKwotIDIwMTgtMDctMjYgIFJlbGVhc2UgTWFuYWdlcgotIAotIAkqIEdDQyA4LjIuMCByZWxlYXNlZC4KLWRpZmYgLS1naXQgYS9saWJpYmVydHkvY3AtZGVtYW5nbGUuYyBiL2xpYmliZXJ0eS9jcC1kZW1hbmdsZS5jCi1pbmRleCAzZjJhMDk3Li5jMzc0ZTQ2IDEwMDY0NAotLS0tIGEvbGliaWJlcnR5L2NwLWRlbWFuZ2xlLmMKLSsrKyBiL2xpYmliZXJ0eS9jcC1kZW1hbmdsZS5jCi1AQCAtMjg0MywyMSArMjg0MywzNSBAQCBkX3JlZl9xdWFsaWZpZXIgKHN0cnVjdCBkX2luZm8gKmRpLCBzdHJ1Y3QgZGVtYW5nbGVfY29tcG9uZW50ICpzdWIpCi0gc3RhdGljIHN0cnVjdCBkZW1hbmdsZV9jb21wb25lbnQgKgotIGRfZnVuY3Rpb25fdHlwZSAoc3RydWN0IGRfaW5mbyAqZGkpCi0gewotLSAgc3RydWN0IGRlbWFuZ2xlX2NvbXBvbmVudCAqcmV0OwotKyAgc3RydWN0IGRlbWFuZ2xlX2NvbXBvbmVudCAqcmV0ID0gTlVMTDsKLSAKLS0gIGlmICghIGRfY2hlY2tfY2hhciAoZGksICdGJykpCi0tICAgIHJldHVybiBOVUxMOwotLSAgaWYgKGRfcGVla19jaGFyIChkaSkgPT0gJ1knKQotKyAgaWYgKChkaS0+b3B0aW9ucyAmIERNR0xfTk9fUkVDVVJTRV9MSU1JVCkgPT0gMCkKLSAgICAgewotLSAgICAgIC8qIEZ1bmN0aW9uIGhhcyBDIGxpbmthZ2UuICBXZSBkb24ndCBwcmludCB0aGlzIGluZm9ybWF0aW9uLgotLQkgRklYTUU6IFdlIHNob3VsZCBwcmludCBpdCBpbiB2ZXJib3NlIG1vZGUuICAqLwotLSAgICAgIGRfYWR2YW5jZSAoZGksIDEpOwotKyAgICAgIGlmIChkaS0+cmVjdXJzaW9uX2xldmVsID4gREVNQU5HTEVfUkVDVVJTSU9OX0xJTUlUKQotKwkvKiBGSVhNRTogVGhlcmUgb3VnaHQgdG8gYmUgYSB3YXkgdG8gcmVwb3J0Ci0rCSAgIHRoYXQgdGhlIHJlY3Vyc2lvbiBsaW1pdCBoYXMgYmVlbiByZWFjaGVkLiAgKi8KLSsJcmV0dXJuIE5VTEw7Ci0rCi0rICAgICAgZGktPnJlY3Vyc2lvbl9sZXZlbCArKzsKLSAgICAgfQotLSAgcmV0ID0gZF9iYXJlX2Z1bmN0aW9uX3R5cGUgKGRpLCAxKTsKLS0gIHJldCA9IGRfcmVmX3F1YWxpZmllciAoZGksIHJldCk7Ci0gCi0tICBpZiAoISBkX2NoZWNrX2NoYXIgKGRpLCAnRScpKQotLSAgICByZXR1cm4gTlVMTDsKLSsgIGlmIChkX2NoZWNrX2NoYXIgKGRpLCAnRicpKQotKyAgICB7Ci0rICAgICAgaWYgKGRfcGVla19jaGFyIChkaSkgPT0gJ1knKQotKwl7Ci0rCSAgLyogRnVuY3Rpb24gaGFzIEMgbGlua2FnZS4gIFdlIGRvbid0IHByaW50IHRoaXMgaW5mb3JtYXRpb24uCi0rCSAgICAgRklYTUU6IFdlIHNob3VsZCBwcmludCBpdCBpbiB2ZXJib3NlIG1vZGUuICAqLwotKwkgIGRfYWR2YW5jZSAoZGksIDEpOwotKwl9Ci0rICAgICAgcmV0ID0gZF9iYXJlX2Z1bmN0aW9uX3R5cGUgKGRpLCAxKTsKLSsgICAgICByZXQgPSBkX3JlZl9xdWFsaWZpZXIgKGRpLCByZXQpOwotKyAgICAgIAotKyAgICAgIGlmICghIGRfY2hlY2tfY2hhciAoZGksICdFJykpCi0rCXJldCA9IE5VTEw7Ci0rICAgIH0KLSsKLSsgIGlmICgoZGktPm9wdGlvbnMgJiBETUdMX05PX1JFQ1VSU0VfTElNSVQpID09IDApCi0rICAgIGRpLT5yZWN1cnNpb25fbGV2ZWwgLS07Ci0gICByZXR1cm4gcmV0OwotIH0KLSAKLUBAIC02MTg4LDYgKzYyMDIsNyBAQCBjcGx1c19kZW1hbmdsZV9pbml0X2luZm8gKGNvbnN0IGNoYXIgKm1hbmdsZWQsIGludCBvcHRpb25zLCBzaXplX3QgbGVuLAotICAgZGktPmV4cGFuc2lvbiA9IDA7Ci0gICBkaS0+aXNfZXhwcmVzc2lvbiA9IDA7Ci0gICBkaS0+aXNfY29udmVyc2lvbiA9IDA7Ci0rICBkaS0+cmVjdXJzaW9uX2xldmVsID0gMDsKLSB9Ci0gCi0gLyogSW50ZXJuYWwgaW1wbGVtZW50YXRpb24gZm9yIHRoZSBkZW1hbmdsZXIuICBJZiBNQU5HTEVEIGlzIGEgZysrIHYzIEFCSQotQEAgLTYyMjcsNiArNjI0MiwyMCBAQCBkX2RlbWFuZ2xlX2NhbGxiYWNrIChjb25zdCBjaGFyICptYW5nbGVkLCBpbnQgb3B0aW9ucywKLSAKLSAgIGNwbHVzX2RlbWFuZ2xlX2luaXRfaW5mbyAobWFuZ2xlZCwgb3B0aW9ucywgc3RybGVuIChtYW5nbGVkKSwgJmRpKTsKLSAKLSsgIC8qIFBSIDg3Njc1IC0gQ2hlY2sgZm9yIGEgbWFuZ2xlZCBzdHJpbmcgdGhhdCBpcyBzbyBsb25nCi0rICAgICB0aGF0IHdlIGRvIG5vdCBoYXZlIGVub3VnaCBzdGFjayBzcGFjZSB0byBkZW1hbmdsZSBpdC4gICovCi0rICBpZiAoKChvcHRpb25zICYgRE1HTF9OT19SRUNVUlNFX0xJTUlUKSA9PSAwKQotKyAgICAgIC8qIFRoaXMgY2hlY2sgaXMgYSBiaXQgYXJiaXRyYXJ5LCBzaW5jZSB3aGF0IHdlIHJlYWxseSB3YW50IHRvIGRvIGlzIHRvCi0rCSBjb21wYXJlIHRoZSBzaXplcyBvZiB0aGUgZGkuY29tcHMgYW5kIGRpLnN1YnMgYXJyYXlzIGFnYWluc3QgdGhlCi0rCSBhbW91bnQgb2Ygc3RhY2sgc3BhY2UgcmVtYWluaW5nLiAgQnV0IHRoZXJlIGlzIG5vIHBvcnRhYmxlIHdheSB0byBkbwotKwkgdGhpcywgc28gaW5zdGVhZCB3ZSB1c2UgdGhlIHJlY3Vyc2lvbiBsaW1pdCBhcyBhIGd1aWRlIHRvIHRoZSBtYXhpbXVtCi0rCSBzaXplIG9mIHRoZSBhcnJheXMuICAqLwotKyAgICAgICYmICh1bnNpZ25lZCBsb25nKSBkaS5udW1fY29tcHMgPiBERU1BTkdMRV9SRUNVUlNJT05fTElNSVQpCi0rICAgIHsKLSsgICAgICAvKiBGSVhNRTogV2UgbmVlZCBhIHdheSB0byBpbmRpY2F0ZSB0aGF0IGEgc3RhY2sgbGltaXQgaGFzIGJlZW4gcmVhY2hlZC4gICovCi0rICAgICAgcmV0dXJuIDA7Ci0rICAgIH0KLSsKLSAgIHsKLSAjaWZkZWYgQ1BfRFlOQU1JQ19BUlJBWVMKLSAgICAgX19leHRlbnNpb25fXyBzdHJ1Y3QgZGVtYW5nbGVfY29tcG9uZW50IGNvbXBzW2RpLm51bV9jb21wc107Ci1kaWZmIC0tZ2l0IGEvbGliaWJlcnR5L2NwLWRlbWFuZ2xlLmggYi9saWJpYmVydHkvY3AtZGVtYW5nbGUuaAotaW5kZXggNTFiOGEyNC4uZDg3YTgzMCAxMDA2NDQKLS0tLSBhL2xpYmliZXJ0eS9jcC1kZW1hbmdsZS5oCi0rKysgYi9saWJpYmVydHkvY3AtZGVtYW5nbGUuaAotQEAgLTEyMiw2ICsxMjIsOSBAQCBzdHJ1Y3QgZF9pbmZvCi0gICAvKiBOb24temVybyBpZiB3ZSBhcmUgcGFyc2luZyB0aGUgdHlwZSBvcGVyYW5kIG9mIGEgY29udmVyc2lvbgotICAgICAgb3BlcmF0b3IsIGJ1dCBub3Qgd2hlbiBpbiBhbiBleHByZXNzaW9uLiAgKi8KLSAgIGludCBpc19jb252ZXJzaW9uOwotKyAgLyogSWYgRE1HTF9OT19SRUNVUlNFX0xJTUlUIGlzIG5vdCBhY3RpdmUgdGhlbiB0aGlzIGlzIHNldCB0bwotKyAgICAgdGhlIGN1cnJlbnQgcmVjdXJzaW9uIGxldmVsLiAgKi8KLSsgIHVuc2lnbmVkIGludCByZWN1cnNpb25fbGV2ZWw7Ci0gfTsKLSAKLSAvKiBUbyBhdm9pZCBydW5uaW5nIHBhc3QgdGhlIGVuZGluZyAnXDAnLCBkb24ndDoKLWRpZmYgLS1naXQgYS9saWJpYmVydHkvY3BsdXMtZGVtLmMgYi9saWJpYmVydHkvY3BsdXMtZGVtLmMKLWluZGV4IDZkNThiZDguLjhiOTY0NmYgMTAwNjQ0Ci0tLS0gYS9saWJpYmVydHkvY3BsdXMtZGVtLmMKLSsrKyBiL2xpYmliZXJ0eS9jcGx1cy1kZW0uYwotQEAgLTE0Niw2ICsxNDYsNyBAQCBzdHJ1Y3Qgd29ya19zdHVmZgotICAgaW50ICpwcm9jdHlwZXZlYzsgICAgIC8qIEluZGljZXMgb2YgY3VycmVudGx5IHByb2Nlc3NlZCByZW1lbWJlcmVkIHR5cGV2ZWNzLiAgKi8KLSAgIGludCBwcm9jdHlwZXZlY19zaXplOwotICAgaW50IG5wcm9jdHlwZXM7Ci0rICB1bnNpZ25lZCBpbnQgcmVjdXJzaW9uX2xldmVsOwotIH07Ci0gCi0gI2RlZmluZSBQUklOVF9BTlNJX1FVQUxJRklFUlMgKHdvcmsgLT4gb3B0aW9ucyAmIERNR0xfQU5TSSkKLUBAIC0xMjkyLDEyICsxMjkzLDE0IEBAIHNxdWFuZ2xlX21vcF91cCAoc3RydWN0IHdvcmtfc3R1ZmYgKndvcmspCi0gICAgICAgZnJlZSAoKGNoYXIgKikgd29yayAtPiBidHlwZXZlYyk7Ci0gICAgICAgd29yay0+YnR5cGV2ZWMgPSBOVUxMOwotICAgICAgIHdvcmstPmJzaXplID0gMDsKLSsgICAgICB3b3JrLT5udW1iID0gMDsKLSAgICAgfQotICAgaWYgKHdvcmsgLT4ga3R5cGV2ZWMgIT0gTlVMTCkKLSAgICAgewotICAgICAgIGZyZWUgKChjaGFyICopIHdvcmsgLT4ga3R5cGV2ZWMpOwotICAgICAgIHdvcmstPmt0eXBldmVjID0gTlVMTDsKLSAgICAgICB3b3JrLT5rc2l6ZSA9IDA7Ci0rICAgICAgd29yay0+bnVtayA9IDA7Ci0gICAgIH0KLSB9Ci0gCi1AQCAtMTMzMSw4ICsxMzM0LDE1IEBAIHdvcmtfc3R1ZmZfY29weV90b19mcm9tIChzdHJ1Y3Qgd29ya19zdHVmZiAqdG8sIHN0cnVjdCB3b3JrX3N0dWZmICpmcm9tKQotIAotICAgZm9yIChpID0gMDsgaSA8IGZyb20tPm51bWs7IGkrKykKLSAgICAgewotLSAgICAgIGludCBsZW4gPSBzdHJsZW4gKGZyb20tPmt0eXBldmVjW2ldKSArIDE7Ci0rICAgICAgaW50IGxlbjsKLSsKLSsgICAgICBpZiAoZnJvbS0+a3R5cGV2ZWNbaV0gPT0gTlVMTCkKLSsJewotKwkgIHRvLT5rdHlwZXZlY1tpXSA9IE5VTEw7Ci0rCSAgY29udGludWU7Ci0rCX0KLSAKLSsgICAgICBsZW4gPSBzdHJsZW4gKGZyb20tPmt0eXBldmVjW2ldKSArIDE7Ci0gICAgICAgdG8tPmt0eXBldmVjW2ldID0gWE5FV1ZFQyAoY2hhciwgbGVuKTsKLSAgICAgICBtZW1jcHkgKHRvLT5rdHlwZXZlY1tpXSwgZnJvbS0+a3R5cGV2ZWNbaV0sIGxlbik7Ci0gICAgIH0KLUBAIC0xMzQyLDggKzEzNTIsMTUgQEAgd29ya19zdHVmZl9jb3B5X3RvX2Zyb20gKHN0cnVjdCB3b3JrX3N0dWZmICp0bywgc3RydWN0IHdvcmtfc3R1ZmYgKmZyb20pCi0gCi0gICBmb3IgKGkgPSAwOyBpIDwgZnJvbS0+bnVtYjsgaSsrKQotICAgICB7Ci0tICAgICAgaW50IGxlbiA9IHN0cmxlbiAoZnJvbS0+YnR5cGV2ZWNbaV0pICsgMTsKLSsgICAgICBpbnQgbGVuOwotKwotKyAgICAgIGlmIChmcm9tLT5idHlwZXZlY1tpXSA9PSBOVUxMKQotKwl7Ci0rCSAgdG8tPmJ0eXBldmVjW2ldID0gTlVMTDsKLSsJICBjb250aW51ZTsKLSsJfQotIAotKyAgICAgIGxlbiA9IHN0cmxlbiAoZnJvbS0+YnR5cGV2ZWNbaV0pICsgMTsKLSAgICAgICB0by0+YnR5cGV2ZWNbaV0gPSBYTkVXVkVDIChjaGFyICwgbGVuKTsKLSAgICAgICBtZW1jcHkgKHRvLT5idHlwZXZlY1tpXSwgZnJvbS0+YnR5cGV2ZWNbaV0sIGxlbik7Ci0gICAgIH0KLUBAIC0xNDAxLDYgKzE0MTgsNyBAQCBkZWxldGVfbm9uX0JfS193b3JrX3N0dWZmIChzdHJ1Y3Qgd29ya19zdHVmZiAqd29yaykKLSAKLSAgICAgICBmcmVlICgoY2hhciopIHdvcmstPnRtcGxfYXJndmVjKTsKLSAgICAgICB3b3JrLT50bXBsX2FyZ3ZlYyA9IE5VTEw7Ci0rICAgICAgd29yay0+bnRtcGxfYXJncyA9IDA7Ci0gICAgIH0KLSAgIGlmICh3b3JrLT5wcmV2aW91c19hcmd1bWVudCkKLSAgICAgewotQEAgLTQ0NzcsNiArNDQ5NSw3IEBAIHJlbWVtYmVyX0J0eXBlIChzdHJ1Y3Qgd29ya19zdHVmZiAqd29yaywgY29uc3QgY2hhciAqc3RhcnQsCi0gfQotIAotIC8qIExvc2UgYWxsIHRoZSBpbmZvIHJlbGF0ZWQgdG8gQiBhbmQgSyB0eXBlIGNvZGVzLiAqLwotKwotIHN0YXRpYyB2b2lkCi0gZm9yZ2V0X0JfYW5kX0tfdHlwZXMgKHN0cnVjdCB3b3JrX3N0dWZmICp3b3JrKQotIHsKLUBAIC00NTAyLDYgKzQ1MjEsNyBAQCBmb3JnZXRfQl9hbmRfS190eXBlcyAoc3RydWN0IHdvcmtfc3R1ZmYgKndvcmspCi0gCX0KLSAgICAgfQotIH0KLSsKLSAvKiBGb3JnZXQgdGhlIHJlbWVtYmVyZWQgdHlwZXMsIGJ1dCBub3QgdGhlIHR5cGUgdmVjdG9yIGl0c2VsZi4gICovCi0gCi0gc3RhdGljIHZvaWQKLUBAIC00Njk2LDYgKzQ3MTYsMTYgQEAgZGVtYW5nbGVfbmVzdGVkX2FyZ3MgKHN0cnVjdCB3b3JrX3N0dWZmICp3b3JrLCBjb25zdCBjaGFyICoqbWFuZ2xlZCwKLSAgIGludCByZXN1bHQ7Ci0gICBpbnQgc2F2ZWRfbnJlcGVhdHM7Ci0gCi0rICBpZiAoKHdvcmstPm9wdGlvbnMgJiBETUdMX05PX1JFQ1VSU0VfTElNSVQpID09IDApCi0rICAgIHsKLSsgICAgICBpZiAod29yay0+cmVjdXJzaW9uX2xldmVsID4gREVNQU5HTEVfUkVDVVJTSU9OX0xJTUlUKQotKwkvKiBGSVhNRTogVGhlcmUgb3VnaHQgdG8gYmUgYSB3YXkgdG8gcmVwb3J0Ci0rCSAgIHRoYXQgdGhlIHJlY3Vyc2lvbiBsaW1pdCBoYXMgYmVlbiByZWFjaGVkLiAgKi8KLSsJcmV0dXJuIDA7Ci0rCi0rICAgICAgd29yay0+cmVjdXJzaW9uX2xldmVsICsrOwotKyAgICB9Ci0rCi0gICAvKiBUaGUgRysrIG5hbWUtbWFuZ2xpbmcgYWxnb3JpdGhtIGRvZXMgbm90IHJlbWVtYmVyIHR5cGVzIG9uIG5lc3RlZAotICAgICAgYXJndW1lbnQgbGlzdHMsIHVubGVzcyAtZnNxdWFuZ2xpbmcgaXMgdXNlZCwgYW5kIGluIHRoYXQgY2FzZSB0aGUKLSAgICAgIHR5cGUgdmVjdG9yIHVwZGF0ZWQgYnkgcmVtZW1iZXJfdHlwZSBpcyBub3QgdXNlZC4gIFNvLCB3ZSB0dXJuCi1AQCAtNDcyMiw2ICs0NzUyLDkgQEAgZGVtYW5nbGVfbmVzdGVkX2FyZ3MgKHN0cnVjdCB3b3JrX3N0dWZmICp3b3JrLCBjb25zdCBjaGFyICoqbWFuZ2xlZCwKLSAgIC0td29yay0+Zm9yZ2V0dGluZ190eXBlczsKLSAgIHdvcmstPm5yZXBlYXRzID0gc2F2ZWRfbnJlcGVhdHM7Ci0gCi0rICBpZiAoKHdvcmstPm9wdGlvbnMgJiBETUdMX05PX1JFQ1VSU0VfTElNSVQpID09IDApCi0rICAgIC0td29yay0+cmVjdXJzaW9uX2xldmVsOwotKwotICAgcmV0dXJuIHJlc3VsdDsKLSB9Ci0gCi0tLSAKLTIuNy40Ci0KZGlmZiAtLWdpdCBhL3Bva3kvbWV0YS9yZWNpcGVzLWRldnRvb2xzL2djYy9nY2MtOC4zLzAwNDItUFItZGVidWctODY5NjQucGF0Y2ggYi9wb2t5L21ldGEvcmVjaXBlcy1kZXZ0b29scy9nY2MvZ2NjLTguMy8wMDQyLVBSLWRlYnVnLTg2OTY0LnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkOWI1ZDM5Li4wMDAwMDAwCi0tLSBhL3Bva3kvbWV0YS9yZWNpcGVzLWRldnRvb2xzL2djYy9nY2MtOC4zLzAwNDItUFItZGVidWctODY5NjQucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSw5NCArMCwwIEBACi1Gcm9tIGJlYjkyMWUxMTA2YjViY2JiMGM2ZTJiZTg0YjI0MTMyN2UyZmZjNTEgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBsYXcgPGxhd0AxMzhiYzc1ZC0wZDA0LTA0MTAtOTYxZi04MmVlNzJiMDU0YTQ+Ci1EYXRlOiBNb24sIDI1IE1hciAyMDE5IDIxOjE5OjA5ICswMDAwCi1TdWJqZWN0OiBbUEFUQ0hdIAlQUiBkZWJ1Zy84Njk2NCAJKiBkd2FyZjJvdXQuYwotIChwcmVtYXJrX3VzZWRfdmFyaWFibGVzKTogTmV3IGZ1bmN0aW9uLiAJKHBydW5lX3VudXNlZF90eXBlc193YWxrKTogRG8KLSBub3QgbWFyayBub3QgcHJlbWFya2VkIGV4dGVybmFsIAl2YXJpYWJsZXMuIAkocHJ1bmVfdW51c2VkX3R5cGVzKToKLSBDYWxsIHByZW1hcmtfdXNlZF92YXJpYWJsZXMuCi0KLQkqIGdjYy5kZy9kZWJ1Zy9kd2FyZjIvcHI4Njk2NC5jOiBOZXcgdGVzdGNhc2UuCi0KLWdpdC1zdm4taWQ6IHN2bitzc2g6Ly9nY2MuZ251Lm9yZy9zdm4vZ2NjL3RydW5rQDI2OTkyNSAxMzhiYzc1ZC0wZDA0LTA0MTAtOTYxZi04MmVlNzJiMDU0YTQKLQotVXBzdHJlYW0tU3RhdHVzOiBCYWNrcG9ydAotU2lnbmVkLW9mZi1ieTogWmhpeGlvbmcgQ2hpIDx6aGl4aW9uZy5jaGlAd2luZHJpdmVyLmNvbT4KLS0tLQotIGdjYy9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgOCArKysrKysKLSBnY2MvZHdhcmYyb3V0LmMgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgMzIgKysrKysrKysrKysrKysrKysrKysrCi0gMiBmaWxlcyBjaGFuZ2VkLCA0MCBpbnNlcnRpb25zKCspCi0KLWRpZmYgLS1naXQgYS9nY2MvQ2hhbmdlTG9nIGIvZ2NjL0NoYW5nZUxvZwotaW5kZXggMjA3NTQ4MGNhMmIuLmNkY2U1MzlhYzZmIDEwMDY0NAotLS0tIGEvZ2NjL0NoYW5nZUxvZwotKysrIGIvZ2NjL0NoYW5nZUxvZwotQEAgLTEsMyArMSwxMSBAQAotKzIwMTktMDMtMjUgIEpvaGFuIEthcmxzc29uIDxqb2hhbi5rYXJsc3NvbkBlbmVhLmNvbT4KLSsKLSsJUFIgZGVidWcvODY5NjQKLSsJKiBkd2FyZjJvdXQuYyAocHJlbWFya191c2VkX3ZhcmlhYmxlcyk6IE5ldyBmdW5jdGlvbi4KLSsJKHBydW5lX3VudXNlZF90eXBlc193YWxrKTogRG8gbm90IG1hcmsgbm90IHByZW1hcmtlZCBleHRlcm5hbAotKwl2YXJpYWJsZXMuCi0rCShwcnVuZV91bnVzZWRfdHlwZXMpOiBDYWxsIHByZW1hcmtfdXNlZF92YXJpYWJsZXMuCi0rCi0gMjAxOS0wMi0yMiAgUmVsZWFzZSBNYW5hZ2VyCi0gCi0gCSogR0NDIDguMy4wIHJlbGVhc2VkLgotZGlmZiAtLWdpdCBhL2djYy9kd2FyZjJvdXQuYyBiL2djYy9kd2FyZjJvdXQuYwotaW5kZXggYWU4YmRlZTk5ODEuLmI5YTYyNGUxYWM3IDEwMDY0NAotLS0tIGEvZ2NjL2R3YXJmMm91dC5jCi0rKysgYi9nY2MvZHdhcmYyb3V0LmMKLUBAIC0yMjY1OCw2ICsyMjY1OCwyMSBAQCBwcmVtYXJrX3R5cGVzX3VzZWRfYnlfZ2xvYmFsX3ZhcnMgKHZvaWQpCi0gICAgICAgLT50cmF2ZXJzZTx2b2lkICosIHByZW1hcmtfdHlwZXNfdXNlZF9ieV9nbG9iYWxfdmFyc19oZWxwZXI+IChOVUxMKTsKLSB9Ci0gCi0rLyogTWFyayBhbGwgdmFyaWFibGVzIHVzZWQgYnkgdGhlIHN5bXRhYiBhcyBwZXJlbm5pYWwuICAqLwotKwotK3N0YXRpYyB2b2lkCi0rcHJlbWFya191c2VkX3ZhcmlhYmxlcyAodm9pZCkKLSt7Ci0rICAvKiBNYXJrIERJRXMgaW4gdGhlIHN5bXRhYiBhcyB1c2VkLiAgKi8KLSsgIHZhcnBvb2xfbm9kZSAqdmFyOwotKyAgRk9SX0VBQ0hfVkFSSUFCTEUgKHZhcikKLSsgICAgewotKyAgICAgIGR3X2RpZV9yZWYgZGllID0gbG9va3VwX2RlY2xfZGllICh2YXItPmRlY2wpOwotKyAgICAgIGlmIChkaWUpCi0rCWRpZS0+ZGllX3BlcmVubmlhbF9wID0gMTsKLSsgICAgfQotK30KLSsKLSAvKiBHZW5lcmF0ZSBhIERXX1RBR19jYWxsX3NpdGUgRElFIGluIGZ1bmN0aW9uIERFQ0wgdW5kZXIgU1VCUl9ESUUKLSAgICBmb3IgQ0FfTE9DIGNhbGwgYXJnIGxvYyBub2RlLiAgKi8KLSAKLUBAIC0yOTI2NCw2ICsyOTI3OSwxOSBAQCBwcnVuZV91bnVzZWRfdHlwZXNfd2FsayAoZHdfZGllX3JlZiBkaWUpCi0gCi0gICAgICAgcmV0dXJuOwotIAotKyAgICBjYXNlIERXX1RBR192YXJpYWJsZToKLSsgICAgICBpZiAoZmxhZ19kZWJ1Z19vbmx5X3VzZWRfc3ltYm9scykKLSsJewotKwkgIGlmIChkaWUtPmRpZV9wZXJlbm5pYWxfcCkKLSsJICAgIGJyZWFrOwotKwotKwkgIC8qIHByZW1hcmtfdXNlZF92YXJpYWJsZXMgbWFya3MgZXh0ZXJuYWwgdmFyaWFibGVzIC0tLSBkb24ndCBtYXJrCi0rCSAgICAgdGhlbSBoZXJlLiAgKi8KLSsJICBpZiAoZ2V0X0FUIChkaWUsIERXX0FUX2V4dGVybmFsKSkKLSsJICAgIHJldHVybjsKLSsJfQotKyAgICAgIC8qIEZBTExUSFJPVUdIICovCi0rCi0gICAgIGRlZmF1bHQ6Ci0gICAgICAgLyogTWFyayBldmVyeXRoaW5nIGVsc2UuICAqLwotICAgICAgIGJyZWFrOwotQEAgLTI5MzkwLDYgKzI5NDE4LDEwIEBAIHBydW5lX3VudXNlZF90eXBlcyAodm9pZCkKLSAgIC8qIE1hcmsgdHlwZXMgdGhhdCBhcmUgdXNlZCBpbiBnbG9iYWwgdmFyaWFibGVzLiAgKi8KLSAgIHByZW1hcmtfdHlwZXNfdXNlZF9ieV9nbG9iYWxfdmFycyAoKTsKLSAKLSsgIC8qIE1hcmsgdmFyaWFibGVzIHVzZWQgaW4gdGhlIHN5bXRhYi4gICovCi0rICBpZiAoZmxhZ19kZWJ1Z19vbmx5X3VzZWRfc3ltYm9scykKLSsgICAgcHJlbWFya191c2VkX3ZhcmlhYmxlcyAoKTsKLSsKLSAgIC8qIFNldCB0aGUgbWFyayBvbiBub2RlcyB0aGF0IGFyZSBhY3R1YWxseSB1c2VkLiAgKi8KLSAgIHBydW5lX3VudXNlZF90eXBlc193YWxrIChjb21wX3VuaXRfZGllICgpKTsKLSAgIGZvciAobm9kZSA9IGxpbWJvX2RpZV9saXN0OyBub2RlOyBub2RlID0gbm9kZS0+bmV4dCkKLS0tIAotMi4yMS4wCmRpZmYgLS1naXQgYS9wb2t5L21ldGEvcmVjaXBlcy1kZXZ0b29scy9nY2MvZ2NjLTguMy8wMDQzLVBSODU0MzQtUHJldmVudC1zcGlsbGluZy1vZi1zdGFjay1wcm90ZWN0b3ItZ3VhcmQtcy0ucGF0Y2ggYi9wb2t5L21ldGEvcmVjaXBlcy1kZXZ0b29scy9nY2MvZ2NjLTguMy8wMDQzLVBSODU0MzQtUHJldmVudC1zcGlsbGluZy1vZi1zdGFjay1wcm90ZWN0b3ItZ3VhcmQtcy0ucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGYxNTIwN2YuLjAwMDAwMDAKLS0tIGEvcG9reS9tZXRhL3JlY2lwZXMtZGV2dG9vbHMvZ2NjL2djYy04LjMvMDA0My1QUjg1NDM0LVByZXZlbnQtc3BpbGxpbmctb2Ytc3RhY2stcHJvdGVjdG9yLWd1YXJkLXMtLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsODEzICswLDAgQEAKLUZyb20gZjk4NDk1ZDkwYmE2NmY2N2ZlOTIyYTRiOTIyOWVhNzg3MDQxYzQxOCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IHRob3ByZTAxIDx0aG9wcmUwMUAxMzhiYzc1ZC0wZDA0LTA0MTAtOTYxZi04MmVlNzJiMDU0YTQ+Ci1EYXRlOiBUaHUsIDIyIE5vdiAyMDE4IDE0OjQ2OjE3ICswMDAwCi1TdWJqZWN0OiBbUEFUQ0hdIFBSODU0MzQ6IFByZXZlbnQgc3BpbGxpbmcgb2Ygc3RhY2sgcHJvdGVjdG9yIGd1YXJkJ3MgYWRkcmVzcwotIG9uIEFSTQotCi1JbiBjYXNlIG9mIGhpZ2ggcmVnaXN0ZXIgcHJlc3N1cmUgaW4gUElDIG1vZGUsIGFkZHJlc3Mgb2YgdGhlIHN0YWNrCi1wcm90ZWN0b3IncyBndWFyZCBjYW4gYmUgc3BpbGxlZCBvbiBBUk0gdGFyZ2V0cyBhcyBzaG93biBpbiBQUjg1NDM0LAotdGh1cyBhbGxvd2luZyBhbiBhdHRhY2tlciB0byBjb250cm9sIHdoYXQgdGhlIGNhbmFyeSB3b3VsZCBiZSBjb21wYXJlZAotYWdhaW5zdC4gQVJNIGRvZXMgbGFjayBzdGFja19wcm90ZWN0X3NldCBhbmQgc3RhY2tfcHJvdGVjdF90ZXN0IGluc24KLXBhdHRlcm5zLCBkZWZpbmluZyB0aGVtIGRvZXMgbm90IGhlbHAgYXMgdGhlIGFkZHJlc3MgaXMgZXhwYW5kZWQKLXJlZ3VsYXJseSBhbmQgdGhlIHBhdHRlcm5zIG9ubHkgZGVhbCB3aXRoIHRoZSBjb3B5IGFuZCB0ZXN0IG9mIHRoZQotZ3VhcmQgd2l0aCB0aGUgY2FuYXJ5LgotCi1UaGlzIHByb2JsZW0gZG9lcyBub3Qgb2NjdXIgZm9yIHg4NiB0YXJnZXRzIGJlY2F1c2UgdGhlIFBJQyBhY2Nlc3MgYW5kCi10aGUgdGVzdCBjYW4gYmUgZG9uZSBpbiB0aGUgc2FtZSBpbnN0cnVjdGlvbi4gQWFyY2g2NCBpcyBleGVtcHQgdG9vCi1iZWNhdXNlIFBJQyBhY2Nlc3MgaW5zbiBwYXR0ZXJuIGFyZSBtb3Ygb2YgVU5TUEVDIHdoaWNoIHByZXZlbnRzIGl0IGZyb20KLXRoZSBzZWNvbmQgYWNjZXNzIGluIHRoZSBlcGlsb2d1ZSBiZWluZyBDU0VkIGluIGNzZV9sb2NhbCBwYXNzIHdpdGggdGhlCi1maXJzdCBhY2Nlc3MgaW4gdGhlIHByb2xvZ3VlLgotCi1UaGUgYXBwcm9hY2ggZm9sbG93ZWQgaGVyZSBpcyB0byBjcmVhdGUgbmV3ICJjb21iaW5lZCIgc2V0IGFuZCB0ZXN0Ci1zdGFuZGFyZCBwYXR0ZXJuIG5hbWVzIHRoYXQgdGFrZSB0aGUgdW5leHBhbmRlZCBndWFyZCBhbmQgZG8gdGhlIHNldCBvcgotdGVzdC4gVGhpcyBhbGxvd3MgdGhlIHRhcmdldCB0byB1c2UgYW4gb3BhcXVlIHBhdHRlcm4gKGVnLiB1c2luZyBVTlNQRUMpCi10byBoaWRlIHRoZSBpbmRpdmlkdWFsIGluc3RydWN0aW9ucyBiZWluZyBnZW5lcmF0ZWQgdG8gdGhlIGNvbXBpbGVyIGFuZAotc3BsaXQgdGhlIHBhdHRlcm4gaW50byBnZW5lcmljIGxvYWQsIGNvbXBhcmUgYW5kIGJyYW5jaCBpbnN0cnVjdGlvbgotYWZ0ZXIgcmVnaXN0ZXIgYWxsb2NhdG9yLCB0aGVyZWZvcmUgYXZvaWRpbmcgYW55IHNwaWxsaW5nLiBUaGlzIGlzIGhlcmUKLWltcGxlbWVudGVkIGZvciB0aGUgQVJNIHRhcmdldHMuIEZvciB0YXJnZXRzIG5vdCBpbXBsZW1lbnRpbmcgdGhlc2UgbmV3Ci1zdGFuZGFyZCBwYXR0ZXJuIG5hbWVzLCB0aGUgZXhpc3Rpbmcgc3RhY2tfcHJvdGVjdF9zZXQgYW5kCi1zdGFja19wcm90ZWN0X3Rlc3QgcGF0dGVybiBuYW1lcyBhcmUgdXNlZC4KLQotVG8gYmUgYWJsZSB0byBzcGxpdCBQSUMgYWNjZXNzIGFmdGVyIHJlZ2lzdGVyIGFsbG9jYXRpb24sIHRoZSBmdW5jdGlvbnMKLWhhZCB0byBiZSBhdWdtZW50ZWQgdG8gZm9yY2UgYSBuZXcgUElDIHJlZ2lzdGVyIGxvYWQgYW5kIHRvIGNvbnRyb2wKLXdoaWNoIHJlZ2lzdGVyIGl0IGxvYWRzIGludG8uIFRoaXMgaXMgYmVjYXVzZSBzaGFyaW5nIHRoZSBQSUMgcmVnaXN0ZXIKLWJldHdlZW4gcHJvbG9ndWUgYW5kIGVwaWxvZ3VlIGNvdWxkIGxlYWQgdG8gc3BpbGxpbmcgZHVlIHRvIENTRSBhZ2Fpbgotd2hpY2ggYW4gYXR0YWNrZXIgY291bGQgdXNlIHRvIGNvbnRyb2wgd2hhdCB0aGUgY2FuYXJ5IGdldHMgY29tcGFyZWQKLWFnYWluc3QuCi0KLTIwMTgtMTEtMjIgIFRob21hcyBQcmV1ZCdob21tZSAgPHRob21hcy5wcmV1ZGhvbW1lQGxpbmFyby5vcmc+Ci0KLSAgICBnY2MvCi0gICAgUFIgdGFyZ2V0Lzg1NDM0Ci0gICAgKiB0YXJnZXQtaW5zbnMuZGVmIChzdGFja19wcm90ZWN0X2NvbWJpbmVkX3NldCk6IERlZmluZSBuZXcgc3RhbmRhcmQKLSAgICBwYXR0ZXJuIG5hbWUuCi0gICAgKHN0YWNrX3Byb3RlY3RfY29tYmluZWRfdGVzdCk6IExpa2V3aXNlLgotICAgICogY2ZnZXhwYW5kLmMgKHN0YWNrX3Byb3RlY3RfcHJvbG9ndWUpOiBUcnkgbmV3Ci0gICAgc3RhY2tfcHJvdGVjdF9jb21iaW5lZF9zZXQgcGF0dGVybiBmaXJzdC4KLSAgICAqIGZ1bmN0aW9uLmMgKHN0YWNrX3Byb3RlY3RfZXBpbG9ndWUpOiBUcnkgbmV3Ci0gICAgc3RhY2tfcHJvdGVjdF9jb21iaW5lZF90ZXN0IHBhdHRlcm4gZmlyc3QuCi0gICAgKiBjb25maWcvYXJtL2FybS5jIChyZXF1aXJlX3BpY19yZWdpc3Rlcik6IEFkZCBwaWNfcmVnIGFuZCBjb21wdXRlX25vdwotICAgIHBhcmFtZXRlcnMgdG8gY29udHJvbCB3aGljaCByZWdpc3RlciB0byB1c2UgYXMgUElDIHJlZ2lzdGVyIGFuZCBmb3JjZQotICAgIHJlbG9hZGluZyBQSUMgcmVnaXN0ZXIgcmVzcGVjdGl2ZWx5LiAgSW5zZXJ0IGluIHRoZSBzdHJlYW0gb2YgaW5zbnMgaWYKLSAgICBwb3NzaWJsZS4KLSAgICAobGVnaXRpbWl6ZV9waWNfYWRkcmVzcyk6IEV4cG9zZSBhYm92ZSBuZXcgcGFyYW1ldGVycyBpbiBwcm90b3R5cGUgYW5kCi0gICAgYWRhcHQgcmVjdXJzaXZlIGNhbGxzIGFjY29yZGluZ2x5LiAgVXNlIHBpY19yZWcgaWYgbm9uIG51bGwgaW5zdGVhZCBvZgotICAgIGNhY2hlZCBvbmUuCi0gICAgKGFybV9sb2FkX3BpY19yZWdpc3Rlcik6IEFkZCBwaWNfcmVnIHBhcmFtZXRlciBhbmQgdXNlIGl0IGlmIG5vbiBudWxsLgotICAgIChhcm1fbGVnaXRpbWl6ZV9hZGRyZXNzKTogQWRhcHQgdG8gbmV3IGxlZ2l0aW1pemVfcGljX2FkZHJlc3MKLSAgICBwcm90b3R5cGUuCi0gICAgKHRodW1iX2xlZ2l0aW1pemVfYWRkcmVzcyk6IExpa2V3aXNlLgotICAgIChhcm1fZW1pdF9jYWxsX2luc24pOiBBZGFwdCB0byByZXF1aXJlX3BpY19yZWdpc3RlciBwcm90b3R5cGUgY2hhbmdlLgotICAgIChhcm1fZXhwYW5kX3Byb2xvZ3VlKTogQWRhcHQgdG8gYXJtX2xvYWRfcGljX3JlZ2lzdGVyIHByb3RvdHlwZSBjaGFuZ2UuCi0gICAgKHRodW1iMV9leHBhbmRfcHJvbG9ndWUpOiBMaWtld2lzZS4KLSAgICAqIGNvbmZpZy9hcm0vYXJtLXByb3Rvcy5oIChsZWdpdGltaXplX3BpY19hZGRyZXNzKTogQWRhcHQgdG8gcHJvdG90eXBlCi0gICAgY2hhbmdlLgotICAgIChhcm1fbG9hZF9waWNfcmVnaXN0ZXIpOiBMaWtld2lzZS4KLSAgICAqIGNvbmZpZy9hcm0vcHJlZGljYXRlZC5tZCAoZ3VhcmRfYWRkcl9vcGVyYW5kKTogTmV3IHByZWRpY2F0ZS4KLSAgICAoZ3VhcmRfb3BlcmFuZCk6IE5ldyBwcmVkaWNhdGUuCi0gICAgKiBjb25maWcvYXJtL2FybS5tZCAobW92c2kgZXhwYW5kZXIpOiBBZGFwdCB0byBsZWdpdGltaXplX3BpY19hZGRyZXNzCi0gICAgcHJvdG90eXBlIGNoYW5nZS4KLSAgICAoYnVpbHRpbl9zZXRqbXBfcmVjZWl2ZXIgZXhwYW5kZXIpOiBBZGFwdCB0byB0aHVtYjFfZXhwYW5kX3Byb2xvZ3VlCi0gICAgcHJvdG90eXBlIGNoYW5nZS4KLSAgICAoc3RhY2tfcHJvdGVjdF9jb21iaW5lZF9zZXQpOiBOZXcgZXhwYW5kZXIuLgotICAgIChzdGFja19wcm90ZWN0X2NvbWJpbmVkX3NldF9pbnNuKTogTmV3IGluc25fYW5kX3NwbGl0IHBhdHRlcm4uCi0gICAgKHN0YWNrX3Byb3RlY3Rfc2V0X2luc24pOiBOZXcgaW5zbiBwYXR0ZXJuLgotICAgIChzdGFja19wcm90ZWN0X2NvbWJpbmVkX3Rlc3QpOiBOZXcgZXhwYW5kZXIuCi0gICAgKHN0YWNrX3Byb3RlY3RfY29tYmluZWRfdGVzdF9pbnNuKTogTmV3IGluc25fYW5kX3NwbGl0IHBhdHRlcm4uCi0gICAgKGFybV9zdGFja19wcm90ZWN0X3Rlc3RfaW5zbik6IE5ldyBpbnNuIHBhdHRlcm4uCi0gICAgKiBjb25maWcvYXJtL3RodW1iMS5tZCAodGh1bWIxX3N0YWNrX3Byb3RlY3RfdGVzdF9pbnNuKTogTmV3IGluc24gcGF0dGVybi4KLSAgICAqIGNvbmZpZy9hcm0vdW5zcGVjcy5tZCAoVU5TUEVDX1NQX1NFVCk6IE5ldyB1bnNwZWMuCi0gICAgKFVOU1BFQ19TUF9URVNUKTogTGlrZXdpc2UuCi0gICAgKiBkb2MvbWQudGV4aSAoc3RhY2tfcHJvdGVjdF9jb21iaW5lZF9zZXQpOiBEb2N1bWVudCBuZXcgc3RhbmRhcmQKLSAgICBwYXR0ZXJuIG5hbWUuCi0gICAgKHN0YWNrX3Byb3RlY3Rfc2V0KTogQ2xhcmlmeSB0aGF0IHRoZSBvcGVyYW5kIGZvciBndWFyZCdzIGFkZHJlc3MgaXMKLSAgICBsZWdhbC4KLSAgICAoc3RhY2tfcHJvdGVjdF9jb21iaW5lZF90ZXN0KTogRG9jdW1lbnQgbmV3IHN0YW5kYXJkIHBhdHRlcm4gbmFtZS4KLSAgICAoc3RhY2tfcHJvdGVjdF90ZXN0KTogQ2xhcmlmeSB0aGF0IHRoZSBvcGVyYW5kIGZvciBndWFyZCdzIGFkZHJlc3MgaXMKLSAgICBsZWdhbC4KLQotCi1naXQtc3ZuLWlkOiBzdm4rc3NoOi8vZ2NjLmdudS5vcmcvc3ZuL2djYy90cnVua0AyNjYzNzkgMTM4YmM3NWQtMGQwNC0wNDEwLTk2MWYtODJlZTcyYjA1NGE0Ci0KLVVwc3RyZWFtLVN0YXR1czogQmFja3BvcnQKLUNWRTogQ1ZFLTIwMTgtMTI4ODYKLVNpZ25lZC1vZmYtYnk6IFpoaXhpb25nIENoaSA8emhpeGlvbmcuY2hpQHdpbmRyaXZlci5jb20+Ci0tLS0KLSBnY2MvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICB8ICA0OSArKysrKysKLSBnY2MvY2ZnZXhwYW5kLmMgICAgICAgICAgICAgICAgICAgICAgICB8ICAxNyArKysKLSBnY2MvY29uZmlnL2FybS9hcm0tcHJvdG9zLmggICAgICAgICAgICB8ICAgNCArLQotIGdjYy9jb25maWcvYXJtL2FybS5jICAgICAgICAgICAgICAgICAgIHwgIDg3ICsrKysrKysrLS0tCi0gZ2NjL2NvbmZpZy9hcm0vYXJtLm1kICAgICAgICAgICAgICAgICAgfCAxNjMgKysrKysrKysrKysrKysrKysrKy0KLSBnY2MvY29uZmlnL2FybS9wcmVkaWNhdGVzLm1kICAgICAgICAgICB8ICAxNyArKysKLSBnY2MvY29uZmlnL2FybS90aHVtYjEubWQgICAgICAgICAgICAgICB8ICAxMyArKwotIGdjYy9jb25maWcvYXJtL3Vuc3BlY3MubWQgICAgICAgICAgICAgIHwgICAzICsKLSBnY2MvZG9jL21kLnRleGkgICAgICAgICAgICAgICAgICAgICAgICB8ICA1NSArKysrKystCi0gZ2NjL2Z1bmN0aW9uLmMgICAgICAgICAgICAgICAgICAgICAgICAgfCAgMzIgKysrLQotIGdjYy90YXJnZXQtaW5zbnMuZGVmICAgICAgICAgICAgICAgICAgIHwgICAyICsKLSAxMSBmaWxlcyBjaGFuZ2VkLCAzOTkgaW5zZXJ0aW9ucygrKSwgNDMgZGVsZXRpb25zKC0pCi0gY3JlYXRlIG1vZGUgMTAwNjQ0IGdjYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9hcm0vcHI4NTQzNC5jCi0KLWRpZmYgLS1naXQgYS9nY2MvQ2hhbmdlTG9nIGIvZ2NjL0NoYW5nZUxvZwotaW5kZXggZTJlYmZkMzQyMTQuLmZhNDFlNzExMmUwIDEwMDY0NAotLS0tIGEvZ2NjL0NoYW5nZUxvZwotKysrIGIvZ2NjL0NoYW5nZUxvZwotQEAgLTE1MzcsNiArMTUzNyw1NSBAQAotIAkqIGNvbmZpZy9hcm0vbmVvbi5tZCAobW92djRoZiwgbW92djhoZik6IFJlZmFjdG9yZWQgdG8uLgotIAkobW92PG1vdj4pOiAuLnRoaXMgYW5kIGVuYWJsZSB1bmNvbmRpdGlvbmFsbHkuCi0gCi0rMjAxOC0xMS0yMiAgVGhvbWFzIFByZXVkJ2hvbW1lICA8dGhvbWFzLnByZXVkaG9tbWVAbGluYXJvLm9yZz4KLSsKLSsJKiB0YXJnZXQtaW5zbnMuZGVmIChzdGFja19wcm90ZWN0X2NvbWJpbmVkX3NldCk6IERlZmluZSBuZXcgc3RhbmRhcmQKLSsJcGF0dGVybiBuYW1lLgotKwkoc3RhY2tfcHJvdGVjdF9jb21iaW5lZF90ZXN0KTogTGlrZXdpc2UuCi0rCSogY2ZnZXhwYW5kLmMgKHN0YWNrX3Byb3RlY3RfcHJvbG9ndWUpOiBUcnkgbmV3Ci0rCXN0YWNrX3Byb3RlY3RfY29tYmluZWRfc2V0IHBhdHRlcm4gZmlyc3QuCi0rCSogZnVuY3Rpb24uYyAoc3RhY2tfcHJvdGVjdF9lcGlsb2d1ZSk6IFRyeSBuZXcKLSsJc3RhY2tfcHJvdGVjdF9jb21iaW5lZF90ZXN0IHBhdHRlcm4gZmlyc3QuCi0rCSogY29uZmlnL2FybS9hcm0uYyAocmVxdWlyZV9waWNfcmVnaXN0ZXIpOiBBZGQgcGljX3JlZyBhbmQgY29tcHV0ZV9ub3cKLSsJcGFyYW1ldGVycyB0byBjb250cm9sIHdoaWNoIHJlZ2lzdGVyIHRvIHVzZSBhcyBQSUMgcmVnaXN0ZXIgYW5kIGZvcmNlCi0rCXJlbG9hZGluZyBQSUMgcmVnaXN0ZXIgcmVzcGVjdGl2ZWx5LiAgSW5zZXJ0IGluIHRoZSBzdHJlYW0gb2YgaW5zbnMgaWYKLSsJcG9zc2libGUuCi0rCShsZWdpdGltaXplX3BpY19hZGRyZXNzKTogRXhwb3NlIGFib3ZlIG5ldyBwYXJhbWV0ZXJzIGluIHByb3RvdHlwZSBhbmQKLSsJYWRhcHQgcmVjdXJzaXZlIGNhbGxzIGFjY29yZGluZ2x5LiAgVXNlIHBpY19yZWcgaWYgbm9uIG51bGwgaW5zdGVhZCBvZgotKwljYWNoZWQgb25lLgotKwkoYXJtX2xvYWRfcGljX3JlZ2lzdGVyKTogQWRkIHBpY19yZWcgcGFyYW1ldGVyIGFuZCB1c2UgaXQgaWYgbm9uIG51bGwuCi0rCShhcm1fbGVnaXRpbWl6ZV9hZGRyZXNzKTogQWRhcHQgdG8gbmV3IGxlZ2l0aW1pemVfcGljX2FkZHJlc3MKLSsJcHJvdG90eXBlLgotKwkodGh1bWJfbGVnaXRpbWl6ZV9hZGRyZXNzKTogTGlrZXdpc2UuCi0rCShhcm1fZW1pdF9jYWxsX2luc24pOiBBZGFwdCB0byByZXF1aXJlX3BpY19yZWdpc3RlciBwcm90b3R5cGUgY2hhbmdlLgotKwkoYXJtX2V4cGFuZF9wcm9sb2d1ZSk6IEFkYXB0IHRvIGFybV9sb2FkX3BpY19yZWdpc3RlciBwcm90b3R5cGUgY2hhbmdlLgotKwkodGh1bWIxX2V4cGFuZF9wcm9sb2d1ZSk6IExpa2V3aXNlLgotKwkqIGNvbmZpZy9hcm0vYXJtLXByb3Rvcy5oIChsZWdpdGltaXplX3BpY19hZGRyZXNzKTogQWRhcHQgdG8gcHJvdG90eXBlCi0rCWNoYW5nZS4KLSsJKGFybV9sb2FkX3BpY19yZWdpc3Rlcik6IExpa2V3aXNlLgotKwkqIGNvbmZpZy9hcm0vcHJlZGljYXRlZC5tZCAoZ3VhcmRfYWRkcl9vcGVyYW5kKTogTmV3IHByZWRpY2F0ZS4KLSsJKGd1YXJkX29wZXJhbmQpOiBOZXcgcHJlZGljYXRlLgotKwkqIGNvbmZpZy9hcm0vYXJtLm1kIChtb3ZzaSBleHBhbmRlcik6IEFkYXB0IHRvIGxlZ2l0aW1pemVfcGljX2FkZHJlc3MKLSsJcHJvdG90eXBlIGNoYW5nZS4KLSsJKGJ1aWx0aW5fc2V0am1wX3JlY2VpdmVyIGV4cGFuZGVyKTogQWRhcHQgdG8gdGh1bWIxX2V4cGFuZF9wcm9sb2d1ZQotKwlwcm90b3R5cGUgY2hhbmdlLgotKwkoc3RhY2tfcHJvdGVjdF9jb21iaW5lZF9zZXQpOiBOZXcgZXhwYW5kZXIuLgotKwkoc3RhY2tfcHJvdGVjdF9jb21iaW5lZF9zZXRfaW5zbik6IE5ldyBpbnNuX2FuZF9zcGxpdCBwYXR0ZXJuLgotKwkoc3RhY2tfcHJvdGVjdF9zZXRfaW5zbik6IE5ldyBpbnNuIHBhdHRlcm4uCi0rCShzdGFja19wcm90ZWN0X2NvbWJpbmVkX3Rlc3QpOiBOZXcgZXhwYW5kZXIuCi0rCShzdGFja19wcm90ZWN0X2NvbWJpbmVkX3Rlc3RfaW5zbik6IE5ldyBpbnNuX2FuZF9zcGxpdCBwYXR0ZXJuLgotKwkoYXJtX3N0YWNrX3Byb3RlY3RfdGVzdF9pbnNuKTogTmV3IGluc24gcGF0dGVybi4KLSsJKiBjb25maWcvYXJtL3RodW1iMS5tZCAodGh1bWIxX3N0YWNrX3Byb3RlY3RfdGVzdF9pbnNuKTogTmV3IGluc24gcGF0dGVybi4KLSsJKiBjb25maWcvYXJtL3Vuc3BlY3MubWQgKFVOU1BFQ19TUF9TRVQpOiBOZXcgdW5zcGVjLgotKwkoVU5TUEVDX1NQX1RFU1QpOiBMaWtld2lzZS4KLSsJKiBkb2MvbWQudGV4aSAoc3RhY2tfcHJvdGVjdF9jb21iaW5lZF9zZXQpOiBEb2N1bWVudCBuZXcgc3RhbmRhcmQKLSsJcGF0dGVybiBuYW1lLgotKwkoc3RhY2tfcHJvdGVjdF9zZXQpOiBDbGFyaWZ5IHRoYXQgdGhlIG9wZXJhbmQgZm9yIGd1YXJkJ3MgYWRkcmVzcyBpcwotKwlsZWdhbC4KLSsJKHN0YWNrX3Byb3RlY3RfY29tYmluZWRfdGVzdCk6IERvY3VtZW50IG5ldyBzdGFuZGFyZCBwYXR0ZXJuIG5hbWUuCi0rCShzdGFja19wcm90ZWN0X3Rlc3QpOiBDbGFyaWZ5IHRoYXQgdGhlIG9wZXJhbmQgZm9yIGd1YXJkJ3MgYWRkcmVzcyBpcwotKwlsZWdhbC4KLSsKLSAyMDE4LTExLTIyICBVcm9zIEJpemphayAgPHViaXpqYWtAZ21haWwuY29tPgotIAotIAlCYWNrcG9ydCBmcm9tIG1haW5saW5lCi1kaWZmIC0tZ2l0IGEvZ2NjL2NmZ2V4cGFuZC5jIGIvZ2NjL2NmZ2V4cGFuZC5jCi1pbmRleCA4ZmEzOTJmY2Q4YS4uMjFiZGNkYWVhYTMgMTAwNjQ0Ci0tLS0gYS9nY2MvY2ZnZXhwYW5kLmMKLSsrKyBiL2djYy9jZmdleHBhbmQuYwotQEAgLTYxODUsNiArNjE4NSwyMyBAQCBzdGFja19wcm90ZWN0X3Byb2xvZ3VlICh2b2lkKQotICAgcnR4IHgsIHk7Ci0gCi0gICB4ID0gZXhwYW5kX25vcm1hbCAoY3J0bC0+c3RhY2tfcHJvdGVjdF9ndWFyZCk7Ci0rCi0rICBpZiAodGFyZ2V0bS5oYXZlX3N0YWNrX3Byb3RlY3RfY29tYmluZWRfc2V0ICgpICYmIGd1YXJkX2RlY2wpCi0rICAgIHsKLSsgICAgICBnY2NfYXNzZXJ0IChERUNMX1AgKGd1YXJkX2RlY2wpKTsKLSsgICAgICB5ID0gREVDTF9SVEwgKGd1YXJkX2RlY2wpOwotKwotKyAgICAgIC8qIEFsbG93IHRoZSB0YXJnZXQgdG8gY29tcHV0ZSBhZGRyZXNzIG9mIFkgYW5kIGNvcHkgaXQgdG8gWCB3aXRob3V0Ci0rCSBsZWFraW5nIFkgaW50byBhIHJlZ2lzdGVyLiAgVGhpcyBjb21iaW5lZCBhZGRyZXNzICsgY29weSBwYXR0ZXJuCi0rCSBhbGxvd3MgdGhlIHRhcmdldCB0byBwcmV2ZW50IHNwaWxsaW5nIG9mIGFueSBpbnRlcm1lZGlhdGUgcmVzdWx0cyBieQotKwkgc3BsaXR0aW5nIGl0IGFmdGVyIHJlZ2lzdGVyIGFsbG9jYXRvci4gICovCi0rICAgICAgaWYgKHJ0eF9pbnNuICppbnNuID0gdGFyZ2V0bS5nZW5fc3RhY2tfcHJvdGVjdF9jb21iaW5lZF9zZXQgKHgsIHkpKQotKwl7Ci0rCSAgZW1pdF9pbnNuIChpbnNuKTsKLSsJICByZXR1cm47Ci0rCX0KLSsgICAgfQotKwotICAgaWYgKGd1YXJkX2RlY2wpCi0gICAgIHkgPSBleHBhbmRfbm9ybWFsIChndWFyZF9kZWNsKTsKLSAgIGVsc2UKLWRpZmYgLS1naXQgYS9nY2MvY29uZmlnL2FybS9hcm0tcHJvdG9zLmggYi9nY2MvY29uZmlnL2FybS9hcm0tcHJvdG9zLmgKLWluZGV4IDhkNmQyMzk1Yjg0Li4wMGY1ZjE2ZWQwMiAxMDA2NDQKLS0tLSBhL2djYy9jb25maWcvYXJtL2FybS1wcm90b3MuaAotKysrIGIvZ2NjL2NvbmZpZy9hcm0vYXJtLXByb3Rvcy5oCi1AQCAtMjgsNyArMjgsNyBAQCBleHRlcm4gZW51bSB1bndpbmRfaW5mb190eXBlIGFybV9leGNlcHRfdW53aW5kX2luZm8gKHN0cnVjdCBnY2Nfb3B0aW9ucyAqKTsKLSBleHRlcm4gaW50IHVzZV9yZXR1cm5faW5zbiAoaW50LCBydHgpOwotIGV4dGVybiBib29sIHVzZV9zaW1wbGVfcmV0dXJuX3AgKHZvaWQpOwotIGV4dGVybiBlbnVtIHJlZ19jbGFzcyBhcm1fcmVnbm9fY2xhc3MgKGludCk7Ci0tZXh0ZXJuIHZvaWQgYXJtX2xvYWRfcGljX3JlZ2lzdGVyICh1bnNpZ25lZCBsb25nKTsKLStleHRlcm4gdm9pZCBhcm1fbG9hZF9waWNfcmVnaXN0ZXIgKHVuc2lnbmVkIGxvbmcsIHJ0eCk7Ci0gZXh0ZXJuIGludCBhcm1fdm9sYXRpbGVfZnVuYyAodm9pZCk7Ci0gZXh0ZXJuIHZvaWQgYXJtX2V4cGFuZF9wcm9sb2d1ZSAodm9pZCk7Ci0gZXh0ZXJuIHZvaWQgYXJtX2V4cGFuZF9lcGlsb2d1ZSAoYm9vbCk7Ci1AQCAtNjksNyArNjksNyBAQCBleHRlcm4gaW50IGNvbnN0X29rX2Zvcl9kaW1vZGVfb3AgKEhPU1RfV0lERV9JTlQsIGVudW0gcnR4X2NvZGUpOwotIGV4dGVybiBpbnQgYXJtX3NwbGl0X2NvbnN0YW50IChSVFhfQ09ERSwgbWFjaGluZV9tb2RlLCBydHgsCi0gCQkJICAgICAgIEhPU1RfV0lERV9JTlQsIHJ0eCwgcnR4LCBpbnQpOwotIGV4dGVybiBpbnQgbGVnaXRpbWF0ZV9waWNfb3BlcmFuZF9wIChydHgpOwotLWV4dGVybiBydHggbGVnaXRpbWl6ZV9waWNfYWRkcmVzcyAocnR4LCBtYWNoaW5lX21vZGUsIHJ0eCk7Ci0rZXh0ZXJuIHJ0eCBsZWdpdGltaXplX3BpY19hZGRyZXNzIChydHgsIG1hY2hpbmVfbW9kZSwgcnR4LCBydHgsIGJvb2wpOwotIGV4dGVybiBydHggbGVnaXRpbWl6ZV90bHNfYWRkcmVzcyAocnR4LCBydHgpOwotIGV4dGVybiBib29sIGFybV9sZWdpdGltYXRlX2FkZHJlc3NfcCAobWFjaGluZV9tb2RlLCBydHgsIGJvb2wpOwotIGV4dGVybiBpbnQgYXJtX2xlZ2l0aW1hdGVfYWRkcmVzc19vdXRlcl9wIChtYWNoaW5lX21vZGUsIHJ0eCwgUlRYX0NPREUsIGludCk7Ci1kaWZmIC0tZ2l0IGEvZ2NjL2NvbmZpZy9hcm0vYXJtLmMgYi9nY2MvY29uZmlnL2FybS9hcm0uYwotaW5kZXggODM5M2YwYjg3ZjMuLjEyNDE3ZGU1MTAyIDEwMDY0NAotLS0tIGEvZ2NjL2NvbmZpZy9hcm0vYXJtLmMKLSsrKyBiL2djYy9jb25maWcvYXJtL2FybS5jCi1AQCAtNzM3OSwyMSArNzM3OSwzNCBAQCBsZWdpdGltYXRlX3BpY19vcGVyYW5kX3AgKHJ0eCB4KQotICAgcmV0dXJuIDE7Ci0gfQotIAotLS8qIFJlY29yZCB0aGF0IHRoZSBjdXJyZW50IGZ1bmN0aW9uIG5lZWRzIGEgUElDIHJlZ2lzdGVyLiAgSW5pdGlhbGl6ZQotLSAgIGNmdW4tPm1hY2hpbmUtPnBpY19yZWcgaWYgd2UgaGF2ZSBub3QgYWxyZWFkeSBkb25lIHNvLiAgKi8KLSsvKiBSZWNvcmQgdGhhdCB0aGUgY3VycmVudCBmdW5jdGlvbiBuZWVkcyBhIFBJQyByZWdpc3Rlci4gIElmIFBJQ19SRUcgaXMgbnVsbCwKLSsgICBhIG5ldyBwc2V1ZG8gaXMgYWxsb2NhdGVkIGFzIFBJQyByZWdpc3Rlciwgb3RoZXJ3aXNlIFBJQ19SRUcgaXMgdXNlZC4gIEluCi0rICAgYm90aCBjYXNlIGNmdW4tPm1hY2hpbmUtPnBpY19yZWcgaXMgaW5pdGlhbGl6ZWQgaWYgd2UgaGF2ZSBub3QgYWxyZWFkeSBkb25lCi0rICAgc28uICBDT01QVVRFX05PVyBkZWNpZGUgd2hldGhlciBhbmQgd2hlcmUgdG8gc2V0IHRoZSBQSUMgcmVnaXN0ZXIuICBJZiB0cnVlLAotKyAgIFBJQyByZWdpc3RlciBpcyByZWxvYWRlZCBpbiB0aGUgY3VycmVudCBwb3NpdGlvbiBvZiB0aGUgaW5zdHJ1Y3Rpb24gc3RyZWFtCi0rICAgaXJyZWdhcmRsZXNzIG9mIHdoZXRoZXIgaXQgd2FzIGxvYWRlZCBiZWZvcmUuICBPdGhlcndpc2UsIGl0IGlzIG9ubHkgbG9hZGVkCi0rICAgaWYgbm90IGFscmVhZHkgZG9uZSBzbyAoY3J0bC0+dXNlc19waWNfb2Zmc2V0X3RhYmxlIGlzIG51bGwpLiAgTm90ZSB0aGF0Ci0rICAgbm9ubnVsbCBQSUNfUkVHIGlzIG9ubHkgc3VwcG9ydGVkIGlmZiBDT01QVVRFX05PVyBpcyB0cnVlIGFuZCBudWxsIFBJQ19SRUcKLSsgICBpcyBvbmx5IHN1cHBvcnRlZCBpZmYgQ09NUFVURV9OT1cgaXMgZmFsc2UuICAqLwotIAotIHN0YXRpYyB2b2lkCi0tcmVxdWlyZV9waWNfcmVnaXN0ZXIgKHZvaWQpCi0rcmVxdWlyZV9waWNfcmVnaXN0ZXIgKHJ0eCBwaWNfcmVnLCBib29sIGNvbXB1dGVfbm93KQotIHsKLSsgIGdjY19hc3NlcnQgKGNvbXB1dGVfbm93ID09IChwaWNfcmVnICE9IE5VTExfUlRYKSk7Ci0rCi0gICAvKiBBIGxvdCBvZiB0aGUgbG9naWMgaGVyZSBpcyBtYWRlIG9ic2N1cmUgYnkgdGhlIGZhY3QgdGhhdCB0aGlzCi0gICAgICByb3V0aW5lIGdldHMgY2FsbGVkIGFzIHBhcnQgb2YgdGhlIHJ0eCBjb3N0IGVzdGltYXRpb24gcHJvY2Vzcy4KLSAgICAgIFdlIGRvbid0IHdhbnQgdGhvc2UgY2FsbHMgdG8gYWZmZWN0IGFueSBhc3N1bXB0aW9ucyBhYm91dCB0aGUgcmVhbAotICAgICAgZnVuY3Rpb247IGFuZCBmdXJ0aGVyLCB3ZSBjYW4ndCBjYWxsIGVudHJ5X29mX2Z1bmN0aW9uKCkgdW50aWwgd2UKLSAgICAgIHN0YXJ0IHRoZSByZWFsIGV4cGFuc2lvbiBwcm9jZXNzLiAgKi8KLS0gIGlmICghY3J0bC0+dXNlc19waWNfb2Zmc2V0X3RhYmxlKQotKyAgaWYgKCFjcnRsLT51c2VzX3BpY19vZmZzZXRfdGFibGUgfHwgY29tcHV0ZV9ub3cpCi0gICAgIHsKLS0gICAgICBnY2NfYXNzZXJ0IChjYW5fY3JlYXRlX3BzZXVkb19wICgpKTsKLSsgICAgICBnY2NfYXNzZXJ0IChjYW5fY3JlYXRlX3BzZXVkb19wICgpCi0rCQkgIHx8IChwaWNfcmVnICE9IE5VTExfUlRYCi0rCQkgICAgICAmJiBSRUdfUCAocGljX3JlZykKLSsJCSAgICAgICYmIEdFVF9NT0RFIChwaWNfcmVnKSA9PSBQbW9kZSkpOwotICAgICAgIGlmIChhcm1fcGljX3JlZ2lzdGVyICE9IElOVkFMSURfUkVHTlVNCi0rCSAgJiYgIWNvbXB1dGVfbm93Ci0gCSAgJiYgIShUQVJHRVRfVEhVTUIxICYmIGFybV9waWNfcmVnaXN0ZXIgPiBMQVNUX0xPX1JFR05VTSkpCi0gCXsKLSAJICBpZiAoIWNmdW4tPm1hY2hpbmUtPnBpY19yZWcpCi1AQCAtNzQwOSw4ICs3NDIyLDEwIEBAIHJlcXVpcmVfcGljX3JlZ2lzdGVyICh2b2lkKQotIAl7Ci0gCSAgcnR4X2luc24gKnNlcSwgKmluc247Ci0gCi0rCSAgaWYgKHBpY19yZWcgPT0gTlVMTF9SVFgpCi0rCSAgICBwaWNfcmVnID0gZ2VuX3JlZ19ydHggKFBtb2RlKTsKLSAJICBpZiAoIWNmdW4tPm1hY2hpbmUtPnBpY19yZWcpCi0tCSAgICBjZnVuLT5tYWNoaW5lLT5waWNfcmVnID0gZ2VuX3JlZ19ydHggKFBtb2RlKTsKLSsJICAgIGNmdW4tPm1hY2hpbmUtPnBpY19yZWcgPSBwaWNfcmVnOwotIAotIAkgIC8qIFBsYXkgZ2FtZXMgdG8gYXZvaWQgbWFya2luZyB0aGUgZnVuY3Rpb24gYXMgbmVlZGluZyBwaWMKLSAJICAgICBpZiB3ZSBhcmUgYmVpbmcgY2FsbGVkIGFzIHBhcnQgb2YgdGhlIGNvc3QtZXN0aW1hdGlvbgotQEAgLTc0MjEsMTEgKzc0MzYsMTIgQEAgcmVxdWlyZV9waWNfcmVnaXN0ZXIgKHZvaWQpCi0gCSAgICAgIHN0YXJ0X3NlcXVlbmNlICgpOwotIAotIAkgICAgICBpZiAoVEFSR0VUX1RIVU1CMSAmJiBhcm1fcGljX3JlZ2lzdGVyICE9IElOVkFMSURfUkVHTlVNCi0tCQkgICYmIGFybV9waWNfcmVnaXN0ZXIgPiBMQVNUX0xPX1JFR05VTSkKLSsJCSAgJiYgYXJtX3BpY19yZWdpc3RlciA+IExBU1RfTE9fUkVHTlVNCi0rCQkgICYmICFjb21wdXRlX25vdykKLSAJCWVtaXRfbW92ZV9pbnNuIChjZnVuLT5tYWNoaW5lLT5waWNfcmVnLAotIAkJCQlnZW5fcnR4X1JFRyAoUG1vZGUsIGFybV9waWNfcmVnaXN0ZXIpKTsKLSAJICAgICAgZWxzZQotLQkJYXJtX2xvYWRfcGljX3JlZ2lzdGVyICgwVUwpOwotKwkJYXJtX2xvYWRfcGljX3JlZ2lzdGVyICgwVUwsIHBpY19yZWcpOwotIAotIAkgICAgICBzZXEgPSBnZXRfaW5zbnMgKCk7Ci0gCSAgICAgIGVuZF9zZXF1ZW5jZSAoKTsKLUBAIC03NDM4LDE2ICs3NDU0LDMzIEBAIHJlcXVpcmVfcGljX3JlZ2lzdGVyICh2b2lkKQotIAkgICAgICAgICB3ZSBjYW4ndCB5ZXQgZW1pdCBpbnN0cnVjdGlvbnMgZGlyZWN0bHkgaW4gdGhlIGZpbmFsCi0gCQkgaW5zbiBzdHJlYW0uICBRdWV1ZSB0aGUgaW5zbnMgb24gdGhlIGVudHJ5IGVkZ2UsIHRoZXkgd2lsbAotIAkJIGJlIGNvbW1pdHRlZCBhZnRlciBldmVyeXRoaW5nIGVsc2UgaXMgZXhwYW5kZWQuICAqLwotLQkgICAgICBpbnNlcnRfaW5zbl9vbl9lZGdlIChzZXEsCi0tCQkJCSAgIHNpbmdsZV9zdWNjX2VkZ2UgKEVOVFJZX0JMT0NLX1BUUl9GT1JfRk4gKGNmdW4pKSk7Ci0rCSAgICAgIGlmIChjdXJyZW50bHlfZXhwYW5kaW5nX3RvX3J0bCkKLSsJCWluc2VydF9pbnNuX29uX2VkZ2UgKHNlcSwKLSsJCQkJICAgICBzaW5nbGVfc3VjY19lZGdlCi0rCQkJCSAgICAgKEVOVFJZX0JMT0NLX1BUUl9GT1JfRk4gKGNmdW4pKSk7Ci0rCSAgICAgIGVsc2UKLSsJCWVtaXRfaW5zbiAoc2VxKTsKLSAJICAgIH0KLSAJfQotICAgICB9Ci0gfQotIAotKy8qIExlZ2l0aW1pemUgUElDIGxvYWQgdG8gT1JJRyBpbnRvIFJFRy4gIElmIFJFRyBpcyBOVUxMLCBhIG5ldyBwc2V1ZG8gaXMKLSsgICBjcmVhdGVkIHRvIGhvbGQgdGhlIHJlc3VsdCBvZiB0aGUgbG9hZC4gIElmIG5vdCBOVUxMLCBQSUNfUkVHIGluZGljYXRlcwotKyAgIHdoaWNoIHJlZ2lzdGVyIHRvIHVzZSBhcyBQSUMgcmVnaXN0ZXIsIG90aGVyd2lzZSBpdCBpcyBkZWNpZGVkIGJ5IHJlZ2lzdGVyCi0rICAgYWxsb2NhdG9yLiAgQ09NUFVURV9OT1cgZm9yY2VzIHRoZSBQSUMgcmVnaXN0ZXIgdG8gYmUgbG9hZGVkIGF0IHRoZSBjdXJyZW50Ci0rICAgbG9jYXRpb24gaW4gdGhlIGluc3RydWN0aW9uIHN0cmVhbSwgaXJyZWdhcmRsZXNzIG9mIHdoZXRoZXIgaXQgd2FzIGxvYWRlZAotKyAgIHByZXZpb3VzbHkuICBOb3RlIHRoYXQgbm9ubnVsbCBQSUNfUkVHIGlzIG9ubHkgc3VwcG9ydGVkIGlmZiBDT01QVVRFX05PVyBpcwotKyAgIHRydWUgYW5kIG51bGwgUElDX1JFRyBpcyBvbmx5IHN1cHBvcnRlZCBpZmYgQ09NUFVURV9OT1cgaXMgZmFsc2UuCi0rCi0rICAgUmV0dXJucyB0aGUgcmVnaXN0ZXIgUkVHIGludG8gd2hpY2ggdGhlIFBJQyBsb2FkIGlzIHBlcmZvcm1lZC4gICovCi0rCi0gcnR4Ci0tbGVnaXRpbWl6ZV9waWNfYWRkcmVzcyAocnR4IG9yaWcsIG1hY2hpbmVfbW9kZSBtb2RlLCBydHggcmVnKQotK2xlZ2l0aW1pemVfcGljX2FkZHJlc3MgKHJ0eCBvcmlnLCBtYWNoaW5lX21vZGUgbW9kZSwgcnR4IHJlZywgcnR4IHBpY19yZWcsCi0rCQkJYm9vbCBjb21wdXRlX25vdykKLSB7Ci0rICBnY2NfYXNzZXJ0IChjb21wdXRlX25vdyA9PSAocGljX3JlZyAhPSBOVUxMX1JUWCkpOwotKwotICAgaWYgKEdFVF9DT0RFIChvcmlnKSA9PSBTWU1CT0xfUkVGCi0gICAgICAgfHwgR0VUX0NPREUgKG9yaWcpID09IExBQkVMX1JFRikKLSAgICAgewotQEAgLTc0ODAsOSArNzUxMywxMiBAQCBsZWdpdGltaXplX3BpY19hZGRyZXNzIChydHggb3JpZywgbWFjaGluZV9tb2RlIG1vZGUsIHJ0eCByZWcpCi0gCSAgcnR4IG1lbTsKLSAKLSAJICAvKiBJZiB0aGlzIGZ1bmN0aW9uIGRvZXNuJ3QgaGF2ZSBhIHBpYyByZWdpc3RlciwgY3JlYXRlIG9uZSBub3cuICAqLwotLQkgIHJlcXVpcmVfcGljX3JlZ2lzdGVyICgpOwotKwkgIHJlcXVpcmVfcGljX3JlZ2lzdGVyIChwaWNfcmVnLCBjb21wdXRlX25vdyk7Ci0rCi0rCSAgaWYgKHBpY19yZWcgPT0gTlVMTF9SVFgpCi0rCSAgICBwaWNfcmVnID0gY2Z1bi0+bWFjaGluZS0+cGljX3JlZzsKLSAKLS0JICBwYXQgPSBnZW5fY2FsY3VsYXRlX3BpY19hZGRyZXNzIChyZWcsIGNmdW4tPm1hY2hpbmUtPnBpY19yZWcsIG9yaWcpOwotKwkgIHBhdCA9IGdlbl9jYWxjdWxhdGVfcGljX2FkZHJlc3MgKHJlZywgcGljX3JlZywgb3JpZyk7Ci0gCi0gCSAgLyogTWFrZSB0aGUgTUVNIGFzIGNsb3NlIHRvIGEgY29uc3RhbnQgYXMgcG9zc2libGUuICAqLwotIAkgIG1lbSA9IFNFVF9TUkMgKHBhdCk7Ci1AQCAtNzUzMSw5ICs3NTY3LDExIEBAIGxlZ2l0aW1pemVfcGljX2FkZHJlc3MgKHJ0eCBvcmlnLCBtYWNoaW5lX21vZGUgbW9kZSwgcnR4IHJlZykKLSAKLSAgICAgICBnY2NfYXNzZXJ0IChHRVRfQ09ERSAoWEVYUCAob3JpZywgMCkpID09IFBMVVMpOwotIAotLSAgICAgIGJhc2UgPSBsZWdpdGltaXplX3BpY19hZGRyZXNzIChYRVhQIChYRVhQIChvcmlnLCAwKSwgMCksIFBtb2RlLCByZWcpOwotKyAgICAgIGJhc2UgPSBsZWdpdGltaXplX3BpY19hZGRyZXNzIChYRVhQIChYRVhQIChvcmlnLCAwKSwgMCksIFBtb2RlLCByZWcsCi0rCQkJCSAgICAgcGljX3JlZywgY29tcHV0ZV9ub3cpOwotICAgICAgIG9mZnNldCA9IGxlZ2l0aW1pemVfcGljX2FkZHJlc3MgKFhFWFAgKFhFWFAgKG9yaWcsIDApLCAxKSwgUG1vZGUsCi0tCQkJCSAgICAgICBiYXNlID09IHJlZyA/IDAgOiByZWcpOwotKwkJCQkgICAgICAgYmFzZSA9PSByZWcgPyAwIDogcmVnLCBwaWNfcmVnLAotKwkJCQkgICAgICAgY29tcHV0ZV9ub3cpOwotIAotICAgICAgIGlmIChDT05TVF9JTlRfUCAob2Zmc2V0KSkKLSAJewotQEAgLTc2MzMsMTYgKzc2NzEsMTcgQEAgc3RhdGljIEdUWSgoKSkgaW50IHBpY19sYWJlbG5vOwotICAgIGxvdyByZWdpc3Rlci4gICovCi0gCi0gdm9pZAotLWFybV9sb2FkX3BpY19yZWdpc3RlciAodW5zaWduZWQgbG9uZyBzYXZlZF9yZWdzIEFUVFJJQlVURV9VTlVTRUQpCi0rYXJtX2xvYWRfcGljX3JlZ2lzdGVyICh1bnNpZ25lZCBsb25nIHNhdmVkX3JlZ3MgQVRUUklCVVRFX1VOVVNFRCwgcnR4IHBpY19yZWcpCi0gewotLSAgcnR4IGwxLCBsYWJlbG5vLCBwaWNfdG1wLCBwaWNfcnR4LCBwaWNfcmVnOwotKyAgcnR4IGwxLCBsYWJlbG5vLCBwaWNfdG1wLCBwaWNfcnR4OwotIAotICAgaWYgKGNydGwtPnVzZXNfcGljX29mZnNldF90YWJsZSA9PSAwIHx8IFRBUkdFVF9TSU5HTEVfUElDX0JBU0UpCi0gICAgIHJldHVybjsKLSAKLSAgIGdjY19hc3NlcnQgKGZsYWdfcGljKTsKLSAKLS0gIHBpY19yZWcgPSBjZnVuLT5tYWNoaW5lLT5waWNfcmVnOwotKyAgaWYgKHBpY19yZWcgPT0gTlVMTF9SVFgpCi0rICAgIHBpY19yZWcgPSBjZnVuLT5tYWNoaW5lLT5waWNfcmVnOwotICAgaWYgKFRBUkdFVF9WWFdPUktTX1JUUCkKLSAgICAgewotICAgICAgIHBpY19ydHggPSBnZW5fcnR4X1NZTUJPTF9SRUYgKFBtb2RlLCBWWFdPUktTX0dPVFRfQkFTRSk7Ci1AQCAtODcxOCw3ICs4NzU3LDggQEAgYXJtX2xlZ2l0aW1pemVfYWRkcmVzcyAocnR4IHgsIHJ0eCBvcmlnX3gsIG1hY2hpbmVfbW9kZSBtb2RlKQotICAgICB7Ci0gICAgICAgLyogV2UgbmVlZCB0byBmaW5kIGFuZCBjYXJlZnVsbHkgdHJhbnNmb3JtIGFueSBTWU1CT0wgYW5kIExBQkVMCi0gCSByZWZlcmVuY2VzOyBzbyBnbyBiYWNrIHRvIHRoZSBvcmlnaW5hbCBhZGRyZXNzIGV4cHJlc3Npb24uICAqLwotLSAgICAgIHJ0eCBuZXdfeCA9IGxlZ2l0aW1pemVfcGljX2FkZHJlc3MgKG9yaWdfeCwgbW9kZSwgTlVMTF9SVFgpOwotKyAgICAgIHJ0eCBuZXdfeCA9IGxlZ2l0aW1pemVfcGljX2FkZHJlc3MgKG9yaWdfeCwgbW9kZSwgTlVMTF9SVFgsIE5VTExfUlRYLAotKwkJCQkJICBmYWxzZSAvKmNvbXB1dGVfbm93Ki8pOwotIAotICAgICAgIGlmIChuZXdfeCAhPSBvcmlnX3gpCi0gCXggPSBuZXdfeDsKLUBAIC04Nzg2LDcgKzg4MjYsOCBAQCB0aHVtYl9sZWdpdGltaXplX2FkZHJlc3MgKHJ0eCB4LCBydHggb3JpZ194LCBtYWNoaW5lX21vZGUgbW9kZSkKLSAgICAgewotICAgICAgIC8qIFdlIG5lZWQgdG8gZmluZCBhbmQgY2FyZWZ1bGx5IHRyYW5zZm9ybSBhbnkgU1lNQk9MIGFuZCBMQUJFTAotIAkgcmVmZXJlbmNlczsgc28gZ28gYmFjayB0byB0aGUgb3JpZ2luYWwgYWRkcmVzcyBleHByZXNzaW9uLiAgKi8KLS0gICAgICBydHggbmV3X3ggPSBsZWdpdGltaXplX3BpY19hZGRyZXNzIChvcmlnX3gsIG1vZGUsIE5VTExfUlRYKTsKLSsgICAgICBydHggbmV3X3ggPSBsZWdpdGltaXplX3BpY19hZGRyZXNzIChvcmlnX3gsIG1vZGUsIE5VTExfUlRYLCBOVUxMX1JUWCwKLSsJCQkJCSAgZmFsc2UgLypjb21wdXRlX25vdyovKTsKLSAKLSAgICAgICBpZiAobmV3X3ggIT0gb3JpZ194KQotIAl4ID0gbmV3X3g7Ci1AQCAtMTgwNzQsNyArMTgxMTUsNyBAQCBhcm1fZW1pdF9jYWxsX2luc24gKHJ0eCBwYXQsIHJ0eCBhZGRyLCBib29sIHNpYmNhbGwpCi0gCSAgPyAhdGFyZ2V0bS5iaW5kc19sb2NhbF9wIChTWU1CT0xfUkVGX0RFQ0wgKGFkZHIpKQotIAkgIDogIVNZTUJPTF9SRUZfTE9DQUxfUCAoYWRkcikpKQotICAgICB7Ci0tICAgICAgcmVxdWlyZV9waWNfcmVnaXN0ZXIgKCk7Ci0rICAgICAgcmVxdWlyZV9waWNfcmVnaXN0ZXIgKE5VTExfUlRYLCBmYWxzZSAvKmNvbXB1dGVfbm93Ki8pOwotICAgICAgIHVzZV9yZWcgKCZDQUxMX0lOU05fRlVOQ1RJT05fVVNBR0UgKGluc24pLCBjZnVuLT5tYWNoaW5lLT5waWNfcmVnKTsKLSAgICAgfQotIAotQEAgLTIyMDA2LDcgKzIyMDQ3LDcgQEAgYXJtX2V4cGFuZF9wcm9sb2d1ZSAodm9pZCkKLSAgICAgICBtYXNrICY9IFRIVU1CMl9XT1JLX1JFR1M7Ci0gICAgICAgaWYgKCFJU19ORVNURUQgKGZ1bmNfdHlwZSkpCi0gCW1hc2sgfD0gKDEgPDwgSVBfUkVHTlVNKTsKLS0gICAgICBhcm1fbG9hZF9waWNfcmVnaXN0ZXIgKG1hc2spOwotKyAgICAgIGFybV9sb2FkX3BpY19yZWdpc3RlciAobWFzaywgTlVMTF9SVFgpOwotICAgICB9Ci0gCi0gICAvKiBJZiB3ZSBhcmUgcHJvZmlsaW5nLCBtYWtlIHN1cmUgbm8gaW5zdHJ1Y3Rpb25zIGFyZSBzY2hlZHVsZWQgYmVmb3JlCi1AQCAtMjUyMzcsNyArMjUyNzgsNyBAQCB0aHVtYjFfZXhwYW5kX3Byb2xvZ3VlICh2b2lkKQotICAgLyogTG9hZCB0aGUgcGljIHJlZ2lzdGVyIGJlZm9yZSBzZXR0aW5nIHRoZSBmcmFtZSBwb2ludGVyLAotICAgICAgc28gd2UgY2FuIHVzZSByNyBhcyBhIHRlbXBvcmFyeSB3b3JrIHJlZ2lzdGVyLiAgKi8KLSAgIGlmIChmbGFnX3BpYyAmJiBhcm1fcGljX3JlZ2lzdGVyICE9IElOVkFMSURfUkVHTlVNKQotLSAgICBhcm1fbG9hZF9waWNfcmVnaXN0ZXIgKGxpdmVfcmVnc19tYXNrKTsKLSsgICAgYXJtX2xvYWRfcGljX3JlZ2lzdGVyIChsaXZlX3JlZ3NfbWFzaywgTlVMTF9SVFgpOwotIAotICAgaWYgKCFmcmFtZV9wb2ludGVyX25lZWRlZCAmJiBDQUxMRVJfSU5URVJXT1JLSU5HX1NMT1RfU0laRSA+IDApCi0gICAgIGVtaXRfbW92ZV9pbnNuIChnZW5fcnR4X1JFRyAoUG1vZGUsIEFSTV9IQVJEX0ZSQU1FX1BPSU5URVJfUkVHTlVNKSwKLWRpZmYgLS1naXQgYS9nY2MvY29uZmlnL2FybS9hcm0ubWQgYi9nY2MvY29uZmlnL2FybS9hcm0ubWQKLWluZGV4IGM4ZGM5NDc0YjFiLi5mNjE5NmU5MzE2OCAxMDA2NDQKLS0tLSBhL2djYy9jb25maWcvYXJtL2FybS5tZAotKysrIGIvZ2NjL2NvbmZpZy9hcm0vYXJtLm1kCi1AQCAtNjAyMSw3ICs2MDIxLDggQEAKLSAgICAgICBvcGVyYW5kc1sxXSA9IGxlZ2l0aW1pemVfcGljX2FkZHJlc3MgKG9wZXJhbmRzWzFdLCBTSW1vZGUsCi0gCQkJCQkgICAgKCFjYW5fY3JlYXRlX3BzZXVkb19wICgpCi0gCQkJCQkgICAgID8gb3BlcmFuZHNbMF0KLS0JCQkJCSAgICAgOiAwKSk7Ci0rCQkJCQkgICAgIDogTlVMTF9SVFgpLCBOVUxMX1JUWCwKLSsJCQkJCSAgICBmYWxzZSAvKmNvbXB1dGVfbm93Ki8pOwotICAgfQotICAgIgotICkKLUBAIC02MzA5LDcgKzYzMTAsNyBAQAotICAgLyogcjMgaXMgY2xvYmJlcmVkIGJ5IHNldC9sb25nam1wLCBzbyB3ZSBjYW4gdXNlIGl0IGFzIGEgc2NyYXRjaAotICAgICAgcmVnaXN0ZXIuICAqLwotICAgaWYgKGFybV9waWNfcmVnaXN0ZXIgIT0gSU5WQUxJRF9SRUdOVU0pCi0tICAgIGFybV9sb2FkX3BpY19yZWdpc3RlciAoMVVMIDw8IDMpOwotKyAgICBhcm1fbG9hZF9waWNfcmVnaXN0ZXIgKDFVTCA8PCAzLCBOVUxMX1JUWCk7Ci0gICBET05FOwotIH0iKQotIAotQEAgLTg2MzQsNiArODYzNSwxNjQgQEAKLSAgICAoc2V0X2F0dHIgImNvbmRzIiAiY2xvYiIpXQotICkKLSAKLSs7OyBOYW1lZCBwYXR0ZXJucyBmb3Igc3RhY2sgc21hc2hpbmcgcHJvdGVjdGlvbi4KLSsoZGVmaW5lX2V4cGFuZCAic3RhY2tfcHJvdGVjdF9jb21iaW5lZF9zZXQiCi0rICBbKHBhcmFsbGVsCi0rICAgICBbKHNldCAobWF0Y2hfb3BlcmFuZDpTSSAwICJtZW1vcnlfb3BlcmFuZCIgIiIpCi0rCSAgICh1bnNwZWM6U0kgWyhtYXRjaF9vcGVyYW5kOlNJIDEgImd1YXJkX29wZXJhbmQiICIiKV0KLSsJCSAgICAgIFVOU1BFQ19TUF9TRVQpKQotKyAgICAgIChjbG9iYmVyIChtYXRjaF9zY3JhdGNoOlNJIDIgIiIpKQotKyAgICAgIChjbG9iYmVyIChtYXRjaF9zY3JhdGNoOlNJIDMgIiIpKV0pXQotKyAgIiIKLSsgICIiCi0rKQotKwotKzs7IFVzZSBhIHNlcGFyYXRlIGluc24gZnJvbSB0aGUgYWJvdmUgZXhwYW5kIHRvIGJlIGFibGUgdG8gaGF2ZSB0aGUgbWVtIG91dHNpZGUKLSs7OyB0aGUgb3BlcmFuZCAjMSB3aGVuIHJlZ2lzdGVyIGFsbG9jYXRpb24gY29tZXMuIFRoaXMgaXMgbmVlZGVkIHRvIGF2b2lkIExSQQotKzs7IHRyeSB0byByZWxvYWQgdGhlIGd1YXJkIHNpbmNlIHdlIG5lZWQgdG8gY29udHJvbCBob3cgUElDIGFjY2VzcyBpcyBkb25lIGluCi0rOzsgdGhlIC1mcGljLy1mUElDIGNhc2UgKHNlZSBDT01QVVRFX05PVyBwYXJhbWV0ZXIgd2hlbiBjYWxsaW5nCi0rOzsgbGVnaXRpbWl6ZV9waWNfYWRkcmVzcyAoKSkuCi0rKGRlZmluZV9pbnNuX2FuZF9zcGxpdCAiKnN0YWNrX3Byb3RlY3RfY29tYmluZWRfc2V0X2luc24iCi0rICBbKHNldCAobWF0Y2hfb3BlcmFuZDpTSSAwICJtZW1vcnlfb3BlcmFuZCIgIj1tLG0iKQotKwkodW5zcGVjOlNJIFsobWVtOlNJIChtYXRjaF9vcGVyYW5kOlNJIDEgImd1YXJkX2FkZHJfb3BlcmFuZCIgIlgsWCIpKV0KLSsJCSAgIFVOU1BFQ19TUF9TRVQpKQotKyAgIChjbG9iYmVyIChtYXRjaF9zY3JhdGNoOlNJIDIgIj0mbCwmciIpKQotKyAgIChjbG9iYmVyIChtYXRjaF9zY3JhdGNoOlNJIDMgIj0mbCwmciIpKV0KLSsgICIiCi0rICAiIyIKLSsgICJyZWxvYWRfY29tcGxldGVkIgotKyAgWyhwYXJhbGxlbCBbKHNldCAobWF0Y2hfZHVwIDApICh1bnNwZWM6U0kgWyhtZW06U0kgKG1hdGNoX2R1cCAyKSldCi0rCQkJCQkgICAgVU5TUEVDX1NQX1NFVCkpCi0rCSAgICAgIChjbG9iYmVyIChtYXRjaF9kdXAgMikpXSldCi0rICAiCi0rewotKyAgaWYgKGZsYWdfcGljKQotKyAgICB7Ci0rICAgICAgLyogRm9yY2VzIHJlY29tcHV0aW5nIG9mIEdPVCBiYXNlIG5vdy4gICovCi0rICAgICAgbGVnaXRpbWl6ZV9waWNfYWRkcmVzcyAob3BlcmFuZHNbMV0sIFNJbW9kZSwgb3BlcmFuZHNbMl0sIG9wZXJhbmRzWzNdLAotKwkJCSAgICAgIHRydWUgLypjb21wdXRlX25vdyovKTsKLSsgICAgfQotKyAgZWxzZQotKyAgICB7Ci0rICAgICAgaWYgKGFkZHJlc3Nfb3BlcmFuZCAob3BlcmFuZHNbMV0sIFNJbW9kZSkpCi0rCW9wZXJhbmRzWzJdID0gb3BlcmFuZHNbMV07Ci0rICAgICAgZWxzZQotKwl7Ci0rCSAgcnR4IG1lbSA9IFhFWFAgKGZvcmNlX2NvbnN0X21lbSAoU0ltb2RlLCBvcGVyYW5kc1sxXSksIDApOwotKwkgIGVtaXRfbW92ZV9pbnNuIChvcGVyYW5kc1syXSwgbWVtKTsKLSsJfQotKyAgICB9Ci0rfSIKLSsgIFsoc2V0X2F0dHIgImFyY2giICJ0MSwzMiIpXQotKykKLSsKLSsoZGVmaW5lX2luc24gIipzdGFja19wcm90ZWN0X3NldF9pbnNuIgotKyAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6U0kgMCAibWVtb3J5X29wZXJhbmQiICI9bSxtIikKLSsJKHVuc3BlYzpTSSBbKG1lbTpTSSAobWF0Y2hfb3BlcmFuZDpTSSAxICJyZWdpc3Rlcl9vcGVyYW5kIiAiKyZsLCZyIikpXQotKwkgVU5TUEVDX1NQX1NFVCkpCi0rICAgKGNsb2JiZXIgKG1hdGNoX2R1cCAxKSldCi0rICAiIgotKyAgIkAKLSsgICBsZHJcXHQlMSwgWyUxXVw7c3RyXFx0JTEsICUwXDttb3ZzXHQlMSwjMAotKyAgIGxkclxcdCUxLCBbJTFdXDtzdHJcXHQlMSwgJTBcO21vdlx0JTEsIzAiCi0rICBbKHNldF9hdHRyICJsZW5ndGgiICI4LDEyIikKLSsgICAoc2V0X2F0dHIgImNvbmRzIiAiY2xvYixub2NvbmQiKQotKyAgIChzZXRfYXR0ciAidHlwZSIgIm11bHRpcGxlIikKLSsgICAoc2V0X2F0dHIgImFyY2giICJ0MSwzMiIpXQotKykKLSsKLSsoZGVmaW5lX2V4cGFuZCAic3RhY2tfcHJvdGVjdF9jb21iaW5lZF90ZXN0IgotKyAgWyhwYXJhbGxlbAotKyAgICAgWyhzZXQgKHBjKQotKwkgICAoaWZfdGhlbl9lbHNlCi0rCQkoZXEgKG1hdGNoX29wZXJhbmQ6U0kgMCAibWVtb3J5X29wZXJhbmQiICIiKQotKwkJICAgICh1bnNwZWM6U0kgWyhtYXRjaF9vcGVyYW5kOlNJIDEgImd1YXJkX29wZXJhbmQiICIiKV0KLSsJCQkgICAgICAgVU5TUEVDX1NQX1RFU1QpKQotKwkJKGxhYmVsX3JlZiAobWF0Y2hfb3BlcmFuZCAyKSkKLSsJCShwYykpKQotKyAgICAgIChjbG9iYmVyIChtYXRjaF9zY3JhdGNoOlNJIDMgIiIpKQotKyAgICAgIChjbG9iYmVyIChtYXRjaF9zY3JhdGNoOlNJIDQgIiIpKQotKyAgICAgIChjbG9iYmVyIChyZWc6Q0MgQ0NfUkVHTlVNKSldKV0KLSsgICIiCi0rICAiIgotKykKLSsKLSs7OyBVc2UgYSBzZXBhcmF0ZSBpbnNuIGZyb20gdGhlIGFib3ZlIGV4cGFuZCB0byBiZSBhYmxlIHRvIGhhdmUgdGhlIG1lbSBvdXRzaWRlCi0rOzsgdGhlIG9wZXJhbmQgIzEgd2hlbiByZWdpc3RlciBhbGxvY2F0aW9uIGNvbWVzLiBUaGlzIGlzIG5lZWRlZCB0byBhdm9pZCBMUkEKLSs7OyB0cnkgdG8gcmVsb2FkIHRoZSBndWFyZCBzaW5jZSB3ZSBuZWVkIHRvIGNvbnRyb2wgaG93IFBJQyBhY2Nlc3MgaXMgZG9uZSBpbgotKzs7IHRoZSAtZnBpYy8tZlBJQyBjYXNlIChzZWUgQ09NUFVURV9OT1cgcGFyYW1ldGVyIHdoZW4gY2FsbGluZwotKzs7IGxlZ2l0aW1pemVfcGljX2FkZHJlc3MgKCkpLgotKyhkZWZpbmVfaW5zbl9hbmRfc3BsaXQgIipzdGFja19wcm90ZWN0X2NvbWJpbmVkX3Rlc3RfaW5zbiIKLSsgIFsoc2V0IChwYykKLSsJKGlmX3RoZW5fZWxzZQotKwkJKGVxIChtYXRjaF9vcGVyYW5kOlNJIDAgIm1lbW9yeV9vcGVyYW5kIiAibSxtIikKLSsJCSAgICAodW5zcGVjOlNJIFsobWVtOlNJIChtYXRjaF9vcGVyYW5kOlNJIDEgImd1YXJkX2FkZHJfb3BlcmFuZCIgIlgsWCIpKV0KLSsJCQkgICAgICAgVU5TUEVDX1NQX1RFU1QpKQotKwkJKGxhYmVsX3JlZiAobWF0Y2hfb3BlcmFuZCAyKSkKLSsJCShwYykpKQotKyAgIChjbG9iYmVyIChtYXRjaF9zY3JhdGNoOlNJIDMgIj0mbCwmciIpKQotKyAgIChjbG9iYmVyIChtYXRjaF9zY3JhdGNoOlNJIDQgIj0mbCwmciIpKQotKyAgIChjbG9iYmVyIChyZWc6Q0MgQ0NfUkVHTlVNKSldCi0rICAiIgotKyAgIiMiCi0rICAicmVsb2FkX2NvbXBsZXRlZCIKLSsgIFsoY29uc3RfaW50IDApXQotK3sKLSsgIHJ0eCBlcTsKLSsKLSsgIGlmIChmbGFnX3BpYykKLSsgICAgewotKyAgICAgIC8qIEZvcmNlcyByZWNvbXB1dGluZyBvZiBHT1QgYmFzZSBub3cuICAqLwotKyAgICAgIGxlZ2l0aW1pemVfcGljX2FkZHJlc3MgKG9wZXJhbmRzWzFdLCBTSW1vZGUsIG9wZXJhbmRzWzNdLCBvcGVyYW5kc1s0XSwKLSsJCQkgICAgICB0cnVlIC8qY29tcHV0ZV9ub3cqLyk7Ci0rICAgIH0KLSsgIGVsc2UKLSsgICAgewotKyAgICAgIGlmIChhZGRyZXNzX29wZXJhbmQgKG9wZXJhbmRzWzFdLCBTSW1vZGUpKQotKwlvcGVyYW5kc1szXSA9IG9wZXJhbmRzWzFdOwotKyAgICAgIGVsc2UKLSsJewotKwkgIHJ0eCBtZW0gPSBYRVhQIChmb3JjZV9jb25zdF9tZW0gKFNJbW9kZSwgb3BlcmFuZHNbMV0pLCAwKTsKLSsJICBlbWl0X21vdmVfaW5zbiAob3BlcmFuZHNbM10sIG1lbSk7Ci0rCX0KLSsgICAgfQotKyAgaWYgKFRBUkdFVF8zMkJJVCkKLSsgICAgewotKyAgICAgIGVtaXRfaW5zbiAoZ2VuX2FybV9zdGFja19wcm90ZWN0X3Rlc3RfaW5zbiAob3BlcmFuZHNbNF0sIG9wZXJhbmRzWzBdLAotKwkJCQkJCSAgb3BlcmFuZHNbM10pKTsKLSsgICAgICBydHggY2NfcmVnID0gZ2VuX3J0eF9SRUcgKENDX1ptb2RlLCBDQ19SRUdOVU0pOwotKyAgICAgIGVxID0gZ2VuX3J0eF9FUSAoQ0NfWm1vZGUsIGNjX3JlZywgY29uc3QwX3J0eCk7Ci0rICAgICAgZW1pdF9qdW1wX2luc24gKGdlbl9hcm1fY29uZF9icmFuY2ggKG9wZXJhbmRzWzJdLCBlcSwgY2NfcmVnKSk7Ci0rICAgIH0KLSsgIGVsc2UKLSsgICAgewotKyAgICAgIGVtaXRfaW5zbiAoZ2VuX3RodW1iMV9zdGFja19wcm90ZWN0X3Rlc3RfaW5zbiAob3BlcmFuZHNbNF0sIG9wZXJhbmRzWzBdLAotKwkJCQkJCSAgICAgb3BlcmFuZHNbM10pKTsKLSsgICAgICBlcSA9IGdlbl9ydHhfRVEgKFZPSURtb2RlLCBvcGVyYW5kc1s0XSwgY29uc3QwX3J0eCk7Ci0rICAgICAgZW1pdF9qdW1wX2luc24gKGdlbl9jYnJhbmNoc2k0IChlcSwgb3BlcmFuZHNbNF0sIGNvbnN0MF9ydHgsCi0rCQkJCSAgICAgIG9wZXJhbmRzWzJdKSk7Ci0rICAgIH0KLSsgIERPTkU7Ci0rfQotKyAgWyhzZXRfYXR0ciAiYXJjaCIgInQxLDMyIildCi0rKQotKwotKyhkZWZpbmVfaW5zbiAiYXJtX3N0YWNrX3Byb3RlY3RfdGVzdF9pbnNuIgotKyAgWyhzZXQgKHJlZzpDQ19aIENDX1JFR05VTSkKLSsJKGNvbXBhcmU6Q0NfWiAodW5zcGVjOlNJIFsobWF0Y2hfb3BlcmFuZDpTSSAxICJtZW1vcnlfb3BlcmFuZCIgIm0sbSIpCi0rCQkJCSAgKG1lbTpTSSAobWF0Y2hfb3BlcmFuZDpTSSAyICJyZWdpc3Rlcl9vcGVyYW5kIiAiK2wsciIpKV0KLSsJCQkJIFVOU1BFQ19TUF9URVNUKQotKwkJICAgICAgKGNvbnN0X2ludCAwKSkpCi0rICAgKGNsb2JiZXIgKG1hdGNoX29wZXJhbmQ6U0kgMCAicmVnaXN0ZXJfb3BlcmFuZCIgIj0mbCwmciIpKQotKyAgIChjbG9iYmVyIChtYXRjaF9kdXAgMikpXQotKyAgIlRBUkdFVF8zMkJJVCIKLSsgICJsZHJcdCUwLCBbJTJdXDtsZHJcdCUyLCAlMVw7ZW9yc1x0JTAsICUyLCAlMCIKLSsgIFsoc2V0X2F0dHIgImxlbmd0aCIgIjgsMTIiKQotKyAgIChzZXRfYXR0ciAiY29uZHMiICJzZXQiKQotKyAgIChzZXRfYXR0ciAidHlwZSIgIm11bHRpcGxlIikKLSsgICAoc2V0X2F0dHIgImFyY2giICJ0LDMyIildCi0rKQotKwotIChkZWZpbmVfZXhwYW5kICJjYXNlc2kiCi0gICBbKG1hdGNoX29wZXJhbmQ6U0kgMCAic19yZWdpc3Rlcl9vcGVyYW5kIiAiIikJOyBpbmRleCB0byBqdW1wIG9uCi0gICAgKG1hdGNoX29wZXJhbmQ6U0kgMSAiY29uc3RfaW50X29wZXJhbmQiICIiKQk7IGxvd2VyIGJvdW5kCi1kaWZmIC0tZ2l0IGEvZ2NjL2NvbmZpZy9hcm0vcHJlZGljYXRlcy5tZCBiL2djYy9jb25maWcvYXJtL3ByZWRpY2F0ZXMubWQKLWluZGV4IDdlMTk4ZjliY2U0Li42OTcxOGVlOWM3YSAxMDA2NDQKLS0tLSBhL2djYy9jb25maWcvYXJtL3ByZWRpY2F0ZXMubWQKLSsrKyBiL2djYy9jb25maWcvYXJtL3ByZWRpY2F0ZXMubWQKLUBAIC0zMSw2ICszMSwyMyBAQAotIAkgICAgICB8fCBSRUdOT19SRUdfQ0xBU1MgKFJFR05PIChvcCkpICE9IE5PX1JFR1MpKTsKLSB9KQotIAotKzsgUHJlZGljYXRlIGZvciBzdGFjayBwcm90ZWN0b3IgZ3VhcmQncyBhZGRyZXNzIGluCi0rOyBzdGFja19wcm90ZWN0X2NvbWJpbmVkX3NldF9pbnNuIGFuZCBzdGFja19wcm90ZWN0X2NvbWJpbmVkX3Rlc3RfaW5zbiBwYXR0ZXJucwotKyhkZWZpbmVfcHJlZGljYXRlICJndWFyZF9hZGRyX29wZXJhbmQiCi0rICAobWF0Y2hfdGVzdCAidHJ1ZSIpCi0rewotKyAgcmV0dXJuIChDT05TVEFOVF9BRERSRVNTX1AgKG9wKQotKwkgIHx8ICF0YXJnZXRtLmNhbm5vdF9mb3JjZV9jb25zdF9tZW0gKG1vZGUsIG9wKSk7Ci0rfSkKLSsKLSs7IFByZWRpY2F0ZSBmb3Igc3RhY2sgcHJvdGVjdG9yIGd1YXJkIGluIHN0YWNrX3Byb3RlY3RfY29tYmluZWRfc2V0IGFuZAotKzsgc3RhY2tfcHJvdGVjdF9jb21iaW5lZF90ZXN0IHBhdHRlcm5zCi0rKGRlZmluZV9wcmVkaWNhdGUgImd1YXJkX29wZXJhbmQiCi0rICAobWF0Y2hfY29kZSAibWVtIikKLSt7Ci0rICByZXR1cm4gZ3VhcmRfYWRkcl9vcGVyYW5kIChYRVhQIChvcCwgMCksIG1vZGUpOwotK30pCi0rCi0gKGRlZmluZV9wcmVkaWNhdGUgImltbV9mb3JfbmVvbl9pbnZfbG9naWNfb3BlcmFuZCIKLSAgIChtYXRjaF9jb2RlICJjb25zdF92ZWN0b3IiKQotIHsKLWRpZmYgLS1naXQgYS9nY2MvY29uZmlnL2FybS90aHVtYjEubWQgYi9nY2MvY29uZmlnL2FybS90aHVtYjEubWQKLWluZGV4IDE5ZGNkYmNkZDczLi5jZDE5OWM5YzUyOSAxMDA2NDQKLS0tLSBhL2djYy9jb25maWcvYXJtL3RodW1iMS5tZAotKysrIGIvZ2NjL2NvbmZpZy9hcm0vdGh1bWIxLm1kCi1AQCAtMTk2Miw0ICsxOTYyLDE3IEBACi0gICB9IgotICAgWyhzZXRfYXR0ciAidHlwZSIgIm1vdl9yZWciKV0KLSApCi0rCi0rKGRlZmluZV9pbnNuICJ0aHVtYjFfc3RhY2tfcHJvdGVjdF90ZXN0X2luc24iCi0rICBbKHNldCAobWF0Y2hfb3BlcmFuZDpTSSAwICJyZWdpc3Rlcl9vcGVyYW5kIiAiPSZsIikKLSsJKHVuc3BlYzpTSSBbKG1hdGNoX29wZXJhbmQ6U0kgMSAibWVtb3J5X29wZXJhbmQiICJtIikKLSsJCSAgICAobWVtOlNJIChtYXRjaF9vcGVyYW5kOlNJIDIgInJlZ2lzdGVyX29wZXJhbmQiICIrbCIpKV0KLSsJIFVOU1BFQ19TUF9URVNUKSkKLSsgICAoY2xvYmJlciAobWF0Y2hfZHVwIDIpKV0KLSsgICJUQVJHRVRfVEhVTUIxIgotKyAgImxkclx0JTAsIFslMl1cO2xkclx0JTIsICUxXDtlb3JzXHQlMCwgJTIsICUwIgotKyAgWyhzZXRfYXR0ciAibGVuZ3RoIiAiOCIpCi0rICAgKHNldF9hdHRyICJjb25kcyIgInNldCIpCi0rICAgKHNldF9hdHRyICJ0eXBlIiAibXVsdGlwbGUiKV0KLSspCi0gDAotZGlmZiAtLWdpdCBhL2djYy9jb25maWcvYXJtL3Vuc3BlY3MubWQgYi9nY2MvY29uZmlnL2FybS91bnNwZWNzLm1kCi1pbmRleCAxOTQxNjczNmVmOS4uOGY5ZGJjYjA4ZGMgMTAwNjQ0Ci0tLS0gYS9nY2MvY29uZmlnL2FybS91bnNwZWNzLm1kCi0rKysgYi9nY2MvY29uZmlnL2FybS91bnNwZWNzLm1kCi1AQCAtODYsNiArODYsOSBAQAotICAgVU5TUEVDX1BST0JFX1NUQUNLICAgIDsgUHJvYmUgc3RhY2sgbWVtb3J5IHJlZmVyZW5jZQotICAgVU5TUEVDX05PTlNFQ1VSRV9NRU0JOyBSZXByZXNlbnQgbm9uLXNlY3VyZSBtZW1vcnkgaW4gQVJNdjgtTSB3aXRoCi0gCQkJOyBzZWN1cml0eSBleHRlbnNpb24KLSsgIFVOU1BFQ19TUF9TRVQJCTsgUmVwcmVzZW50IHRoZSBzZXR0aW5nIG9mIHN0YWNrIHByb3RlY3RvcidzIGNhbmFyeQotKyAgVU5TUEVDX1NQX1RFU1QJOyBSZXByZXNlbnQgdGhlIHRlc3Rpbmcgb2Ygc3RhY2sgcHJvdGVjdG9yJ3MgY2FuYXJ5Ci0rCQkJOyBhZ2FpbnN0IHRoZSBndWFyZC4KLSBdKQotIAotIChkZWZpbmVfY19lbnVtICJ1bnNwZWMiIFsKLWRpZmYgLS1naXQgYS9nY2MvZG9jL21kLnRleGkgYi9nY2MvZG9jL21kLnRleGkKLWluZGV4IDI5NWZjMWYxMTQzLi44OTUzMDliMmYzYyAxMDA2NDQKLS0tLSBhL2djYy9kb2MvbWQudGV4aQotKysrIGIvZ2NjL2RvYy9tZC50ZXhpCi1AQCAtNzQ1MCwyMiArNzQ1MCw2MSBAQCBidWlsdGlucy4KLSBUaGUgZ2V0L3NldCBwYXR0ZXJucyBoYXZlIGEgc2luZ2xlIG91dHB1dC9pbnB1dCBvcGVyYW5kIHJlc3BlY3RpdmVseSwKLSB3aXRoIEB2YXJ7bW9kZX0gaW50ZW5kZWQgdG8gYmUgQGNvZGV7UG1vZGV9LgotIAotK0BjaW5kZXggQGNvZGV7c3RhY2tfcHJvdGVjdF9jb21iaW5lZF9zZXR9IGluc3RydWN0aW9uIHBhdHRlcm4KLStAaXRlbSBAc2FtcHtzdGFja19wcm90ZWN0X2NvbWJpbmVkX3NldH0KLStUaGlzIHBhdHRlcm4sIGlmIGRlZmluZWQsIG1vdmVzIGEgQGNvZGV7cHRyX21vZGV9IHZhbHVlIGZyb20gYW4gYWRkcmVzcwotK3dob3NlIGRlY2xhcmF0aW9uIFJUWCBpcyBnaXZlbiBpbiBvcGVyYW5kIDEgdG8gdGhlIG1lbW9yeSBpbiBvcGVyYW5kIDAKLSt3aXRob3V0IGxlYXZpbmcgdGhlIHZhbHVlIGluIGEgcmVnaXN0ZXIgYWZ0ZXJ3YXJkLiAgSWYgc2V2ZXJhbAotK2luc3RydWN0aW9ucyBhcmUgbmVlZGVkIGJ5IHRoZSB0YXJnZXQgdG8gcGVyZm9ybSB0aGUgb3BlcmF0aW9uIChlZy4gdG8KLStsb2FkIHRoZSBhZGRyZXNzIGZyb20gYSBHT1QgZW50cnkgdGhlbiBsb2FkIHRoZSBAY29kZXtwdHJfbW9kZX0gdmFsdWUKLSthbmQgZmluYWxseSBzdG9yZSBpdCksIGl0IGlzIHRoZSBiYWNrZW5kJ3MgcmVzcG9uc2liaWxpdHkgdG8gZW5zdXJlIG5vCi0raW50ZXJtZWRpYXRlIHJlc3VsdCBnZXRzIHNwaWxsZWQuICBUaGlzIGlzIHRvIGF2b2lkIGxlYWtpbmcgdGhlIHZhbHVlCi0rc29tZSBwbGFjZSB0aGF0IGFuIGF0dGFja2VyIG1pZ2h0IHVzZSB0byByZXdyaXRlIHRoZSBzdGFjayBndWFyZCBzbG90Ci0rYWZ0ZXIgaGF2aW5nIGNsb2JiZXJlZCBpdC4KLSsKLStJZiB0aGlzIHBhdHRlcm4gaXMgbm90IGRlZmluZWQsIHRoZW4gdGhlIGFkZHJlc3MgZGVjbGFyYXRpb24gaXMKLStleHBhbmRlZCBmaXJzdCBpbiB0aGUgc3RhbmRhcmQgd2F5IGFuZCBhIEBjb2Rle3N0YWNrX3Byb3RlY3Rfc2V0fQotK3BhdHRlcm4gaXMgdGhlbiBnZW5lcmF0ZWQgdG8gbW92ZSB0aGUgdmFsdWUgZnJvbSB0aGF0IGFkZHJlc3MgdG8gdGhlCi0rYWRkcmVzcyBpbiBvcGVyYW5kIDAuCi0rCi0gQGNpbmRleCBAY29kZXtzdGFja19wcm90ZWN0X3NldH0gaW5zdHJ1Y3Rpb24gcGF0dGVybgotIEBpdGVtIEBzYW1we3N0YWNrX3Byb3RlY3Rfc2V0fQotLVRoaXMgcGF0dGVybiwgaWYgZGVmaW5lZCwgbW92ZXMgYSBAY29kZXtwdHJfbW9kZX0gdmFsdWUgZnJvbSB0aGUgbWVtb3J5Ci0taW4gb3BlcmFuZCAxIHRvIHRoZSBtZW1vcnkgaW4gb3BlcmFuZCAwIHdpdGhvdXQgbGVhdmluZyB0aGUgdmFsdWUgaW4KLS1hIHJlZ2lzdGVyIGFmdGVyd2FyZC4gIFRoaXMgaXMgdG8gYXZvaWQgbGVha2luZyB0aGUgdmFsdWUgc29tZSBwbGFjZQotLXRoYXQgYW4gYXR0YWNrZXIgbWlnaHQgdXNlIHRvIHJld3JpdGUgdGhlIHN0YWNrIGd1YXJkIHNsb3QgYWZ0ZXIKLS1oYXZpbmcgY2xvYmJlcmVkIGl0LgotK1RoaXMgcGF0dGVybiwgaWYgZGVmaW5lZCwgbW92ZXMgYSBAY29kZXtwdHJfbW9kZX0gdmFsdWUgZnJvbSB0aGUgdmFsaWQKLSttZW1vcnkgbG9jYXRpb24gaW4gb3BlcmFuZCAxIHRvIHRoZSBtZW1vcnkgaW4gb3BlcmFuZCAwIHdpdGhvdXQgbGVhdmluZwotK3RoZSB2YWx1ZSBpbiBhIHJlZ2lzdGVyIGFmdGVyd2FyZC4gIFRoaXMgaXMgdG8gYXZvaWQgbGVha2luZyB0aGUgdmFsdWUKLStzb21lIHBsYWNlIHRoYXQgYW4gYXR0YWNrZXIgbWlnaHQgdXNlIHRvIHJld3JpdGUgdGhlIHN0YWNrIGd1YXJkIHNsb3QKLSthZnRlciBoYXZpbmcgY2xvYmJlcmVkIGl0LgotKwotK05vdGU6IG9uIHRhcmdldHMgd2hlcmUgdGhlIGFkZHJlc3NpbmcgbW9kZXMgZG8gbm90IGFsbG93IHRvIGxvYWQKLStkaXJlY3RseSBmcm9tIHN0YWNrIGd1YXJkIGFkZHJlc3MsIHRoZSBhZGRyZXNzIGlzIGV4cGFuZGVkIGluIGEgc3RhbmRhcmQKLSt3YXkgZmlyc3Qgd2hpY2ggY291bGQgY2F1c2Ugc29tZSBzcGlsbHMuCi0gCi0gSWYgdGhpcyBwYXR0ZXJuIGlzIG5vdCBkZWZpbmVkLCB0aGVuIGEgcGxhaW4gbW92ZSBwYXR0ZXJuIGlzIGdlbmVyYXRlZC4KLSAKLStAY2luZGV4IEBjb2Rle3N0YWNrX3Byb3RlY3RfY29tYmluZWRfdGVzdH0gaW5zdHJ1Y3Rpb24gcGF0dGVybgotK0BpdGVtIEBzYW1we3N0YWNrX3Byb3RlY3RfY29tYmluZWRfdGVzdH0KLStUaGlzIHBhdHRlcm4sIGlmIGRlZmluZWQsIGNvbXBhcmVzIGEgQGNvZGV7cHRyX21vZGV9IHZhbHVlIGZyb20gYW4KLSthZGRyZXNzIHdob3NlIGRlY2xhcmF0aW9uIFJUWCBpcyBnaXZlbiBpbiBvcGVyYW5kIDEgd2l0aCB0aGUgbWVtb3J5IGluCi0rb3BlcmFuZCAwIHdpdGhvdXQgbGVhdmluZyB0aGUgdmFsdWUgaW4gYSByZWdpc3RlciBhZnRlcndhcmQgYW5kCi0rYnJhbmNoZXMgdG8gb3BlcmFuZCAyIGlmIHRoZSB2YWx1ZXMgd2VyZSBlcXVhbC4gIElmIHNldmVyYWwKLStpbnN0cnVjdGlvbnMgYXJlIG5lZWRlZCBieSB0aGUgdGFyZ2V0IHRvIHBlcmZvcm0gdGhlIG9wZXJhdGlvbiAoZWcuIHRvCi0rbG9hZCB0aGUgYWRkcmVzcyBmcm9tIGEgR09UIGVudHJ5IHRoZW4gbG9hZCB0aGUgQGNvZGV7cHRyX21vZGV9IHZhbHVlCi0rYW5kIGZpbmFsbHkgc3RvcmUgaXQpLCBpdCBpcyB0aGUgYmFja2VuZCdzIHJlc3BvbnNpYmlsaXR5IHRvIGVuc3VyZSBubwotK2ludGVybWVkaWF0ZSByZXN1bHQgZ2V0cyBzcGlsbGVkLiAgVGhpcyBpcyB0byBhdm9pZCBsZWFraW5nIHRoZSB2YWx1ZQotK3NvbWUgcGxhY2UgdGhhdCBhbiBhdHRhY2tlciBtaWdodCB1c2UgdG8gcmV3cml0ZSB0aGUgc3RhY2sgZ3VhcmQgc2xvdAotK2FmdGVyIGhhdmluZyBjbG9iYmVyZWQgaXQuCi0rCi0rSWYgdGhpcyBwYXR0ZXJuIGlzIG5vdCBkZWZpbmVkLCB0aGVuIHRoZSBhZGRyZXNzIGRlY2xhcmF0aW9uIGlzCi0rZXhwYW5kZWQgZmlyc3QgaW4gdGhlIHN0YW5kYXJkIHdheSBhbmQgYSBAY29kZXtzdGFja19wcm90ZWN0X3Rlc3R9Ci0rcGF0dGVybiBpcyB0aGVuIGdlbmVyYXRlZCB0byBjb21wYXJlIHRoZSB2YWx1ZSBmcm9tIHRoYXQgYWRkcmVzcyB0byB0aGUKLSt2YWx1ZSBhdCB0aGUgbWVtb3J5IGluIG9wZXJhbmQgMC4KLSsKLSBAY2luZGV4IEBjb2Rle3N0YWNrX3Byb3RlY3RfdGVzdH0gaW5zdHJ1Y3Rpb24gcGF0dGVybgotIEBpdGVtIEBzYW1we3N0YWNrX3Byb3RlY3RfdGVzdH0KLSBUaGlzIHBhdHRlcm4sIGlmIGRlZmluZWQsIGNvbXBhcmVzIGEgQGNvZGV7cHRyX21vZGV9IHZhbHVlIGZyb20gdGhlCi0tbWVtb3J5IGluIG9wZXJhbmQgMSB3aXRoIHRoZSBtZW1vcnkgaW4gb3BlcmFuZCAwIHdpdGhvdXQgbGVhdmluZyB0aGUKLS12YWx1ZSBpbiBhIHJlZ2lzdGVyIGFmdGVyd2FyZCBhbmQgYnJhbmNoZXMgdG8gb3BlcmFuZCAyIGlmIHRoZSB2YWx1ZXMKLS13ZXJlIGVxdWFsLgotK3ZhbGlkIG1lbW9yeSBsb2NhdGlvbiBpbiBvcGVyYW5kIDEgd2l0aCB0aGUgbWVtb3J5IGluIG9wZXJhbmQgMCB3aXRob3V0Ci0rbGVhdmluZyB0aGUgdmFsdWUgaW4gYSByZWdpc3RlciBhZnRlcndhcmQgYW5kIGJyYW5jaGVzIHRvIG9wZXJhbmQgMiBpZgotK3RoZSB2YWx1ZXMgd2VyZSBlcXVhbC4KLSAKLSBJZiB0aGlzIHBhdHRlcm4gaXMgbm90IGRlZmluZWQsIHRoZW4gYSBwbGFpbiBjb21wYXJlIHBhdHRlcm4gYW5kCi0gY29uZGl0aW9uYWwgYnJhbmNoIHBhdHRlcm4gaXMgdXNlZC4KLWRpZmYgLS1naXQgYS9nY2MvZnVuY3Rpb24uYyBiL2djYy9mdW5jdGlvbi5jCi1pbmRleCA4NWE1ZDlmNDNmNy4uNjk1MjNjMWQ3MjMgMTAwNjQ0Ci0tLS0gYS9nY2MvZnVuY3Rpb24uYwotKysrIGIvZ2NjL2Z1bmN0aW9uLmMKLUBAIC00OTM3LDE4ICs0OTM3LDM0IEBAIHN0YWNrX3Byb3RlY3RfZXBpbG9ndWUgKHZvaWQpCi0gICB0cmVlIGd1YXJkX2RlY2wgPSB0YXJnZXRtLnN0YWNrX3Byb3RlY3RfZ3VhcmQgKCk7Ci0gICBydHhfY29kZV9sYWJlbCAqbGFiZWwgPSBnZW5fbGFiZWxfcnR4ICgpOwotICAgcnR4IHgsIHk7Ci0tICBydHhfaW5zbiAqc2VxOwotKyAgcnR4X2luc24gKnNlcSA9IE5VTEw7Ci0gCi0gICB4ID0gZXhwYW5kX25vcm1hbCAoY3J0bC0+c3RhY2tfcHJvdGVjdF9ndWFyZCk7Ci0tICBpZiAoZ3VhcmRfZGVjbCkKLS0gICAgeSA9IGV4cGFuZF9ub3JtYWwgKGd1YXJkX2RlY2wpOwotKwotKyAgaWYgKHRhcmdldG0uaGF2ZV9zdGFja19wcm90ZWN0X2NvbWJpbmVkX3Rlc3QgKCkgJiYgZ3VhcmRfZGVjbCkKLSsgICAgewotKyAgICAgIGdjY19hc3NlcnQgKERFQ0xfUCAoZ3VhcmRfZGVjbCkpOwotKyAgICAgIHkgPSBERUNMX1JUTCAoZ3VhcmRfZGVjbCk7Ci0rICAgICAgLyogQWxsb3cgdGhlIHRhcmdldCB0byBjb21wdXRlIGFkZHJlc3Mgb2YgWSBhbmQgY29tcGFyZSBpdCB3aXRoIFggd2l0aG91dAotKwkgbGVha2luZyBZIGludG8gYSByZWdpc3Rlci4gIFRoaXMgY29tYmluZWQgYWRkcmVzcyArIGNvbXBhcmUgcGF0dGVybgotKwkgYWxsb3dzIHRoZSB0YXJnZXQgdG8gcHJldmVudCBzcGlsbGluZyBvZiBhbnkgaW50ZXJtZWRpYXRlIHJlc3VsdHMgYnkKLSsJIHNwbGl0dGluZyBpdCBhZnRlciByZWdpc3RlciBhbGxvY2F0b3IuICAqLwotKyAgICAgIHNlcSA9IHRhcmdldG0uZ2VuX3N0YWNrX3Byb3RlY3RfY29tYmluZWRfdGVzdCAoeCwgeSwgbGFiZWwpOwotKyAgICB9Ci0gICBlbHNlCi0tICAgIHkgPSBjb25zdDBfcnR4OwotKyAgICB7Ci0rICAgICAgaWYgKGd1YXJkX2RlY2wpCi0rCXkgPSBleHBhbmRfbm9ybWFsIChndWFyZF9kZWNsKTsKLSsgICAgICBlbHNlCi0rCXkgPSBjb25zdDBfcnR4OwotKwotKyAgICAgIC8qIEFsbG93IHRoZSB0YXJnZXQgdG8gY29tcGFyZSBZIHdpdGggWCB3aXRob3V0IGxlYWtpbmcgZWl0aGVyIGludG8KLSsJIGEgcmVnaXN0ZXIuICAqLwotKyAgICAgIGlmICh0YXJnZXRtLmhhdmVfc3RhY2tfcHJvdGVjdF90ZXN0ICgpKQotKwlzZXEgPSB0YXJnZXRtLmdlbl9zdGFja19wcm90ZWN0X3Rlc3QgKHgsIHksIGxhYmVsKTsKLSsgICAgfQotIAotLSAgLyogQWxsb3cgdGhlIHRhcmdldCB0byBjb21wYXJlIFkgd2l0aCBYIHdpdGhvdXQgbGVha2luZyBlaXRoZXIgaW50bwotLSAgICAgYSByZWdpc3Rlci4gICovCi0tICBpZiAodGFyZ2V0bS5oYXZlX3N0YWNrX3Byb3RlY3RfdGVzdCAoKQotLSAgICAgICYmICgoc2VxID0gdGFyZ2V0bS5nZW5fc3RhY2tfcHJvdGVjdF90ZXN0ICh4LCB5LCBsYWJlbCkpICE9IE5VTExfUlRYKSkKLSsgIGlmIChzZXEpCi0gICAgIGVtaXRfaW5zbiAoc2VxKTsKLSAgIGVsc2UKLSAgICAgZW1pdF9jbXBfYW5kX2p1bXBfaW5zbnMgKHgsIHksIEVRLCBOVUxMX1JUWCwgcHRyX21vZGUsIDEsIGxhYmVsKTsKLWRpZmYgLS1naXQgYS9nY2MvdGFyZ2V0LWluc25zLmRlZiBiL2djYy90YXJnZXQtaW5zbnMuZGVmCi1pbmRleCA5YTU1MmMzZDExYy4uZDM5ODg5YjM1MjIgMTAwNjQ0Ci0tLS0gYS9nY2MvdGFyZ2V0LWluc25zLmRlZgotKysrIGIvZ2NjL3RhcmdldC1pbnNucy5kZWYKLUBAIC05Niw3ICs5Niw5IEBAIERFRl9UQVJHRVRfSU5TTiAoc2liY2FsbF92YWx1ZSwgKHJ0eCB4MCwgcnR4IHgxLCBydHggb3B0MiwgcnR4IG9wdDMsCi0gREVGX1RBUkdFVF9JTlNOIChzaW1wbGVfcmV0dXJuLCAodm9pZCkpCi0gREVGX1RBUkdFVF9JTlNOIChzcGxpdF9zdGFja19wcm9sb2d1ZSwgKHZvaWQpKQotIERFRl9UQVJHRVRfSU5TTiAoc3BsaXRfc3RhY2tfc3BhY2VfY2hlY2ssIChydHggeDAsIHJ0eCB4MSkpCi0rREVGX1RBUkdFVF9JTlNOIChzdGFja19wcm90ZWN0X2NvbWJpbmVkX3NldCwgKHJ0eCB4MCwgcnR4IHgxKSkKLSBERUZfVEFSR0VUX0lOU04gKHN0YWNrX3Byb3RlY3Rfc2V0LCAocnR4IHgwLCBydHggeDEpKQotK0RFRl9UQVJHRVRfSU5TTiAoc3RhY2tfcHJvdGVjdF9jb21iaW5lZF90ZXN0LCAocnR4IHgwLCBydHggeDEsIHJ0eCB4MikpCi0gREVGX1RBUkdFVF9JTlNOIChzdGFja19wcm90ZWN0X3Rlc3QsIChydHggeDAsIHJ0eCB4MSwgcnR4IHgyKSkKLSBERUZfVEFSR0VUX0lOU04gKHN0b3JlX211bHRpcGxlLCAocnR4IHgwLCBydHggeDEsIHJ0eCB4MikpCi0gREVGX1RBUkdFVF9JTlNOICh0YWJsZWp1bXAsIChydHggeDAsIHJ0eCB4MSkpCi0tLSAKLTIuMjEuMApkaWZmIC0tZ2l0IGEvcG9reS9tZXRhL3JlY2lwZXMtZGV2dG9vbHMvZ2NjL2djYy04LjMvQ1ZFLTIwMTktMTQyNTAucGF0Y2ggYi9wb2t5L21ldGEvcmVjaXBlcy1kZXZ0b29scy9nY2MvZ2NjLTguMy9DVkUtMjAxOS0xNDI1MC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lMzI3Njg0Ci0tLSAvZGV2L251bGwKKysrIGIvcG9reS9tZXRhL3JlY2lwZXMtZGV2dG9vbHMvZ2NjL2djYy04LjMvQ1ZFLTIwMTktMTQyNTAucGF0Y2gKQEAgLTAsMCArMSw0NCBAQAorRnJvbSBhNGYxYjU4ZWI0OGIzNDlhNWYzNTNiYzY5YzMwYmU1NTM1MDZkMzNiIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogcmd1ZW50aCA8cmd1ZW50aEAxMzhiYzc1ZC0wZDA0LTA0MTAtOTYxZi04MmVlNzJiMDU0YTQ+CitEYXRlOiBUaHUsIDI1IEp1bCAyMDE5IDEwOjQ4OjI2ICswMDAwCitTdWJqZWN0OiBbUEFUQ0hdIDIwMTktMDctMjUgIFJpY2hhcmQgQmllbmVyICA8cmd1ZW50aGVyQHN1c2UuZGU+CisKKwlQUiBsdG8vOTA5MjQKKwlCYWNrcG9ydCBmcm9tIG1haW5saW5lCisJMjAxOS0wNy0xMiAgUmVuIEtpbXVyYSAgPHJreDEyMDlkZXZAZ21haWwuY29tPgorCisJKiBzaW1wbGUtb2JqZWN0LWVsZi5jIChzaW1wbGVfb2JqZWN0X2VsZl9tYXRjaCk6IENoZWNrIHplcm8gdmFsdWUKKwlzaHN0cm5keC4KKworCitnaXQtc3ZuLWlkOiBzdm4rc3NoOi8vZ2NjLmdudS5vcmcvc3ZuL2djYy9icmFuY2hlcy9nY2MtOC1icmFuY2hAMjczNzk0IDEzOGJjNzVkLTBkMDQtMDQxMC05NjFmLTgyZWU3MmIwNTRhNAorCitVcHN0cmVhbS1TdGF0dXM6IEJhY2twb3J0CitBZmZlY3RlczogPCAgOS4yCitDVkU6IENWRS0yMDE5LTE0MjUwCitEcm9wcGVkIGNoYW5nZWxvZworU2lnbmVkLW9mZi1ieTogQXJtaW4gS3VzdGVyIDxBa3VzdHJlQG12aXN0YS5jb20+CisKKy0tLQorIGxpYmliZXJ0eS9zaW1wbGUtb2JqZWN0LWVsZi5jIHwgOCArKysrKysrKworIDIgZmlsZXMgY2hhbmdlZCwgMTcgaW5zZXJ0aW9ucygrKQorCitJbmRleDogZ2NjLTguMi4wL2xpYmliZXJ0eS9zaW1wbGUtb2JqZWN0LWVsZi5jCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0gZ2NjLTguMi4wLm9yaWcvbGliaWJlcnR5L3NpbXBsZS1vYmplY3QtZWxmLmMKKysrKyBnY2MtOC4yLjAvbGliaWJlcnR5L3NpbXBsZS1vYmplY3QtZWxmLmMKK0BAIC01NDksNiArNTQ5LDE0IEBAIHNpbXBsZV9vYmplY3RfZWxmX21hdGNoICh1bnNpZ25lZCBjaGFyIGgKKyAgICAgICByZXR1cm4gTlVMTDsKKyAgICAgfQorIAorKyAgaWYgKGVvci0+c2hzdHJuZHggPT0gMCkKKysgICAgeworKyAgICAgICplcnJtc2cgPSAiaW52YWxpZCBFTEYgc2hzdHJuZHggPT0gMCI7CisrICAgICAgKmVyciA9IDA7CisrICAgICAgWERFTEVURSAoZW9yKTsKKysgICAgICByZXR1cm4gTlVMTDsKKysgICAgfQorKworICAgcmV0dXJuICh2b2lkICopIGVvcjsKKyB9CisgCmRpZmYgLS1naXQgYS9wb2t5L21ldGEvcmVjaXBlcy1kZXZ0b29scy9nY2MvZ2NjLTkuMi5pbmMgYi9wb2t5L21ldGEvcmVjaXBlcy1kZXZ0b29scy9nY2MvZ2NjLTkuMi5pbmMKaW5kZXggMWMzZTIwMC4uMDFkM2JmMCAxMDA2NDQKLS0tIGEvcG9reS9tZXRhL3JlY2lwZXMtZGV2dG9vbHMvZ2NjL2djYy05LjIuaW5jCisrKyBiL3Bva3kvbWV0YS9yZWNpcGVzLWRldnRvb2xzL2djYy9nY2MtOS4yLmluYwpAQCAtNjQsNiArNjQsNyBAQAogICAgICAgICAgICBmaWxlOi8vMDAzNC1maXgtc2VnbWVudGF0aW9uLWZhdWx0LWluLXByZWNvbXBpbGVkLWhlYWRlci1nZW5lcmF0LnBhdGNoIFwKICAgICAgICAgICAgZmlsZTovLzAwMzUtRml4LWZvci10ZXN0c3VpdGUtZmFpbHVyZS5wYXRjaCBcCiAgICAgICAgICAgIGZpbGU6Ly8wMDM2LVJlLWludHJvZHVjZS1zcGUtY29tbWFuZGxpbmUtb3B0aW9ucy5wYXRjaCBcCisgICAgICAgICAgIGZpbGU6Ly9DVkUtMjAxOS0xNDI1MC5wYXRjaCBcCiAiCiBTID0gIiR7VE1QRElSfS93b3JrLXNoYXJlZC9nY2MtJHtQVn0tJHtQUn0vZ2NjLSR7UFZ9IgogU1JDX1VSSVttZDVzdW1dID0gIjM4MThhZDg2MDA0NDdmMDUzNDkwOTgyMzJjMmRkYzc4IgpkaWZmIC0tZ2l0IGEvcG9reS9tZXRhL3JlY2lwZXMtZGV2dG9vbHMvZ2NjL2djYy05LjIvMDAxMS1EZWZpbmUtR0xJQkNfRFlOQU1JQ19MSU5LRVItYW5kLVVDTElCQ19EWU5BTUlDX0xJTktFLnBhdGNoIGIvcG9reS9tZXRhL3JlY2lwZXMtZGV2dG9vbHMvZ2NjL2djYy05LjIvMDAxMS1EZWZpbmUtR0xJQkNfRFlOQU1JQ19MSU5LRVItYW5kLVVDTElCQ19EWU5BTUlDX0xJTktFLnBhdGNoCmluZGV4IDIxOTA4YmMuLjY2ZmIyNGQgMTAwNjQ0Ci0tLSBhL3Bva3kvbWV0YS9yZWNpcGVzLWRldnRvb2xzL2djYy9nY2MtOS4yLzAwMTEtRGVmaW5lLUdMSUJDX0RZTkFNSUNfTElOS0VSLWFuZC1VQ0xJQkNfRFlOQU1JQ19MSU5LRS5wYXRjaAorKysgYi9wb2t5L21ldGEvcmVjaXBlcy1kZXZ0b29scy9nY2MvZ2NjLTkuMi8wMDExLURlZmluZS1HTElCQ19EWU5BTUlDX0xJTktFUi1hbmQtVUNMSUJDX0RZTkFNSUNfTElOS0UucGF0Y2gKQEAgLTEsNyArMSw3IEBACi1Gcm9tIGE5Mzc0MzczMmIyMTI1YWViZDlhNmQ2NWU5OTlkNzUwNmIwMWQ2YjMgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tIDcyZmMzOTc1YmNkNzIwYjJmODA0MGZhODdjZDIzZDNkYjRjNTk3NWEgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCiBGcm9tOiBLaGVtIFJhaiA8cmFqLmtoZW1AZ21haWwuY29tPgogRGF0ZTogRnJpLCAyOSBNYXIgMjAxMyAwOToyNDo1MCArMDQwMAotU3ViamVjdDogW1BBVENIIDExLzM2XSBEZWZpbmUgR0xJQkNfRFlOQU1JQ19MSU5LRVIgYW5kIFVDTElCQ19EWU5BTUlDX0xJTktFUgorU3ViamVjdDogW1BBVENIXSBEZWZpbmUgR0xJQkNfRFlOQU1JQ19MSU5LRVIgYW5kIFVDTElCQ19EWU5BTUlDX0xJTktFUgogIHJlbGF0aXZlIHRvIFNZU1RFTUxJQlNfRElSCiAKIFRoaXMgcGF0Y2ggZGVmaW5lcyBHTElCQ19EWU5BTUlDX0xJTktFUiBhbmQgVUNMSUJDX0RZTkFNSUNfTElOS0VSCkBAIC0yMywxMSArMjMsMTIgQEAKICBnY2MvY29uZmlnL2kzODYvbGludXg2NC5oICAgIHwgIDYgKysrLS0tCiAgZ2NjL2NvbmZpZy9saW51eC5oICAgICAgICAgICB8ICA4ICsrKystLS0tCiAgZ2NjL2NvbmZpZy9taXBzL2xpbnV4LmggICAgICB8IDEyICsrKysrKy0tLS0tLQorIGdjYy9jb25maWcvcmlzY3YvbGludXguaCAgICAgfCAgMiArLQogIGdjYy9jb25maWcvcnM2MDAwL2xpbnV4NjQuaCAgfCAxNSArKysrKy0tLS0tLS0tLS0KICBnY2MvY29uZmlnL3NoL2xpbnV4LmggICAgICAgIHwgIDIgKy0KICBnY2MvY29uZmlnL3NwYXJjL2xpbnV4LmggICAgIHwgIDIgKy0KICBnY2MvY29uZmlnL3NwYXJjL2xpbnV4NjQuaCAgIHwgIDQgKystLQotIDExIGZpbGVzIGNoYW5nZWQsIDI4IGluc2VydGlvbnMoKyksIDMzIGRlbGV0aW9ucygtKQorIDEyIGZpbGVzIGNoYW5nZWQsIDI5IGluc2VydGlvbnMoKyksIDM0IGRlbGV0aW9ucygtKQogCiBkaWZmIC0tZ2l0IGEvZ2NjL2NvbmZpZy9hbHBoYS9saW51eC1lbGYuaCBiL2djYy9jb25maWcvYWxwaGEvbGludXgtZWxmLmgKIGluZGV4IDgyNDg2MWJlZmVjLi42YWZhY2NlMzI5MiAxMDA2NDQKQEAgLTE1Miw2ICsxNTMsMTkgQEAKICAKICAjdW5kZWYgTVVTTF9EWU5BTUlDX0xJTktFUjMyCiAgI2RlZmluZSBNVVNMX0RZTkFNSUNfTElOS0VSMzIgXAorZGlmZiAtLWdpdCBhL2djYy9jb25maWcvcmlzY3YvbGludXguaCBiL2djYy9jb25maWcvcmlzY3YvbGludXguaAoraW5kZXggNThkZDE4Yjg5ZjMuLjExMmJhOWNkNzY0IDEwMDY0NAorLS0tIGEvZ2NjL2NvbmZpZy9yaXNjdi9saW51eC5oCisrKysgYi9nY2MvY29uZmlnL3Jpc2N2L2xpbnV4LmgKK0BAIC0yMiw3ICsyMiw3IEBAIGFsb25nIHdpdGggR0NDOyBzZWUgdGhlIGZpbGUgQ09QWUlORzMuICBJZiBub3Qgc2VlCisgICAgIEdOVV9VU0VSX1RBUkdFVF9PU19DUFBfQlVJTFRJTlMoKTsJCQkJXAorICAgfSB3aGlsZSAoMCkKKyAKKy0jZGVmaW5lIEdMSUJDX0RZTkFNSUNfTElOS0VSICIvbGliL2xkLWxpbnV4LXJpc2N2IiBYTEVOX1NQRUMgIi0iIEFCSV9TUEVDICIuc28uMSIKKysjZGVmaW5lIEdMSUJDX0RZTkFNSUNfTElOS0VSIFNZU1RFTUxJQlNfRElSICJsZC1saW51eC1yaXNjdiIgWExFTl9TUEVDICItIiBBQklfU1BFQyAiLnNvLjEiCisgCisgI2RlZmluZSBNVVNMX0FCSV9TVUZGSVggXAorICAgIiV7bWFiaT1pbHAzMjotc2Z9IiBcCiBkaWZmIC0tZ2l0IGEvZ2NjL2NvbmZpZy9yczYwMDAvbGludXg2NC5oIGIvZ2NjL2NvbmZpZy9yczYwMDAvbGludXg2NC5oCiBpbmRleCA5OTQ2ZDNmZWQ5NC4uNDVhOWE3Y2FlNTkgMTAwNjQ0CiAtLS0gYS9nY2MvY29uZmlnL3JzNjAwMC9saW51eDY0LmgKQEAgLTIyNyw2ICsyNDEsMyBAQAogIAogICNpZmRlZiBTUEFSQ19CSV9BUkNICiAgCi0tLSAKLTIuMjIuMQotCmRpZmYgLS1naXQgYS9wb2t5L21ldGEvcmVjaXBlcy1kZXZ0b29scy9nY2MvZ2NjLTkuMi8wMDE5LUVuc3VyZS10YXJnZXQtZ2NjLWhlYWRlcnMtY2FuLWJlLWluY2x1ZGVkLnBhdGNoIGIvcG9reS9tZXRhL3JlY2lwZXMtZGV2dG9vbHMvZ2NjL2djYy05LjIvMDAxOS1FbnN1cmUtdGFyZ2V0LWdjYy1oZWFkZXJzLWNhbi1iZS1pbmNsdWRlZC5wYXRjaAppbmRleCBhZjBlYTVjLi41M2Y5ZTk5IDEwMDY0NAotLS0gYS9wb2t5L21ldGEvcmVjaXBlcy1kZXZ0b29scy9nY2MvZ2NjLTkuMi8wMDE5LUVuc3VyZS10YXJnZXQtZ2NjLWhlYWRlcnMtY2FuLWJlLWluY2x1ZGVkLnBhdGNoCisrKyBiL3Bva3kvbWV0YS9yZWNpcGVzLWRldnRvb2xzL2djYy9nY2MtOS4yLzAwMTktRW5zdXJlLXRhcmdldC1nY2MtaGVhZGVycy1jYW4tYmUtaW5jbHVkZWQucGF0Y2gKQEAgLTIyLDggKzIyLDYgQEAKICBnY2MvZ2NjLmMgICAgICAgIHwgNyAtLS0tLS0tCiAgNCBmaWxlcyBjaGFuZ2VkLCAxNSBpbnNlcnRpb25zKCspLCA3IGRlbGV0aW9ucygtKQogCi1kaWZmIC0tZ2l0IGEvZ2NjL01ha2VmaWxlLmluIGIvZ2NjL01ha2VmaWxlLmluCi1pbmRleCAwMDY0YTI4MjQ4OC4uOThkMTQ4ODE3MWYgMTAwNjQ0CiAtLS0gYS9nY2MvTWFrZWZpbGUuaW4KICsrKyBiL2djYy9NYWtlZmlsZS5pbgogQEAgLTYxOCw2ICs2MTgsNyBAQCBsaWJleGVjZGlyID0gQGxpYmV4ZWNkaXJACkBAIC0zNCw3ICszMiw3IEBACiAgIyBEaXJlY3RvcnkgaW4gd2hpY2ggdGhlIGNvbXBpbGVyIGZpbmRzIGV4ZWN1dGFibGVzCiAgbGliZXhlY3N1YmRpciA9ICQobGliZXhlY2RpcikvZ2NjLyQocmVhbF90YXJnZXRfbm9uY2Fub25pY2FsKS8kKHZlcnNpb24pJChhY2NlbF9kaXJfc3VmZml4KQogICMgRGlyZWN0b3J5IGluIHdoaWNoIGFsbCBwbHVnaW4gcmVzb3VyY2VzIGFyZSBpbnN0YWxsZWQKLUBAIC0yODY2LDYgKzI4NjcsNyBAQCBDRkxBR1MtaW50bC5vICs9IC1ETE9DQUxFRElSPVwiJChsb2NhbGVkaXIpXCIKK0BAIC0yODY2LDYgKzI4NjcsNyBAQCBDRkxBR1MtaW50bC5vICs9IC1ETE9DQUxFRElSPVwiJChsb2NhbGVkCiAgCiAgUFJFUFJPQ0VTU09SX0RFRklORVMgPSBcCiAgICAtREdDQ19JTkNMVURFX0RJUj1cIiQobGlic3ViZGlyKS9pbmNsdWRlXCIgXApAQCAtNDIsMTEgKzQwLDkgQEAKICAgIC1ERklYRURfSU5DTFVERV9ESVI9XCIkKGxpYnN1YmRpcikvaW5jbHVkZS1maXhlZFwiIFwKICAgIC1ER1BMVVNQTFVTX0lOQ0xVREVfRElSPVwiJChnY2NfZ3h4X2luY2x1ZGVfZGlyKVwiIFwKICAgIC1ER1BMVVNQTFVTX0lOQ0xVREVfRElSX0FERF9TWVNST09UPSQoZ2NjX2d4eF9pbmNsdWRlX2Rpcl9hZGRfc3lzcm9vdCkgXAotZGlmZiAtLWdpdCBhL2djYy9jcHBkZWZhdWx0LmMgYi9nY2MvY3BwZGVmYXVsdC5jCi1pbmRleCBjNDc5NjM4NTY0My4uOTgwZTJiZDQ3YTcgMTAwNjQ0CiAtLS0gYS9nY2MvY3BwZGVmYXVsdC5jCiArKysgYi9nY2MvY3BwZGVmYXVsdC5jCi1AQCAtNTksNiArNTksMTAgQEAgY29uc3Qgc3RydWN0IGRlZmF1bHRfaW5jbHVkZSBjcHBfaW5jbHVkZV9kZWZhdWx0c1tdCitAQCAtNTksNiArNTksMTAgQEAgY29uc3Qgc3RydWN0IGRlZmF1bHRfaW5jbHVkZSBjcHBfaW5jbHVkZQogICAgICAvKiBUaGlzIGlzIHRoZSBkaXIgZm9yIGdjYydzIHByaXZhdGUgaGVhZGVycy4gICovCiAgICAgIHsgR0NDX0lOQ0xVREVfRElSLCAiR0NDIiwgMCwgMCwgMCwgMCB9LAogICNlbmRpZgpAQCAtNTcsNDIgKzUzLDMgQEAKICAjaWZkZWYgTE9DQUxfSU5DTFVERV9ESVIKICAgICAgLyogL3Vzci9sb2NhbC9pbmNsdWRlIGNvbWVzIGJlZm9yZSB0aGUgZml4aW5jbHVkZWQgaGVhZGVyIGZpbGVzLiAgKi8KICAgICAgeyBMT0NBTF9JTkNMVURFX0RJUiwgMCwgMCwgMSwgMSwgMiB9LAotZGlmZiAtLWdpdCBhL2djYy9kZWZhdWx0cy5oIGIvZ2NjL2RlZmF1bHRzLmgKLWluZGV4IGI3NTM0MjU2MTE5Li40MWNhNTc5YjI2NyAxMDA2NDQKLS0tLSBhL2djYy9kZWZhdWx0cy5oCi0rKysgYi9nY2MvZGVmYXVsdHMuaAotQEAgLTE0NTksNCArMTQ1OSwxMyBAQCBzZWUgdGhlIGZpbGVzIENPUFlJTkczIGFuZCBDT1BZSU5HLlJVTlRJTUUgcmVzcGVjdGl2ZWx5LiAgSWYgbm90LCBzZWUKLSAjZGVmaW5lIERXQVJGX0dOQVRfRU5DT0RJTkdTX0RFRkFVTFQgRFdBUkZfR05BVF9FTkNPRElOR1NfR0RCCi0gI2VuZGlmCi0gCi0rLyogRGVmYXVsdCBwcmVmaXhlcyB0byBhdHRhY2ggdG8gY29tbWFuZCBuYW1lcy4gICovCi0rCi0rI2lmbmRlZiBTVEFOREFSRF9TVEFSVEZJTEVfUFJFRklYXzEKLSsjZGVmaW5lIFNUQU5EQVJEX1NUQVJURklMRV9QUkVGSVhfMSAiL2xpYi8iCi0rI2VuZGlmCi0rI2lmbmRlZiBTVEFOREFSRF9TVEFSVEZJTEVfUFJFRklYXzIKLSsjZGVmaW5lIFNUQU5EQVJEX1NUQVJURklMRV9QUkVGSVhfMiAiL3Vzci9saWIvIgotKyNlbmRpZgotKwotICNlbmRpZiAgLyogISBHQ0NfREVGQVVMVFNfSCAqLwotZGlmZiAtLWdpdCBhL2djYy9nY2MuYyBiL2djYy9nY2MuYwotaW5kZXggNGU3YzQ1YjI2OGMuLjFhMzcwNGIyNzYzIDEwMDY0NAotLS0tIGEvZ2NjL2djYy5jCi0rKysgYi9nY2MvZ2NjLmMKLUBAIC0xNDcwLDEzICsxNDcwLDYgQEAgc3RhdGljIGNvbnN0IGNoYXIgKmdjY19saWJleGVjX3ByZWZpeDsKLSAKLSAvKiBEZWZhdWx0IHByZWZpeGVzIHRvIGF0dGFjaCB0byBjb21tYW5kIG5hbWVzLiAgKi8KLSAKLS0jaWZuZGVmIFNUQU5EQVJEX1NUQVJURklMRV9QUkVGSVhfMQotLSNkZWZpbmUgU1RBTkRBUkRfU1RBUlRGSUxFX1BSRUZJWF8xICIvbGliLyIKLS0jZW5kaWYKLS0jaWZuZGVmIFNUQU5EQVJEX1NUQVJURklMRV9QUkVGSVhfMgotLSNkZWZpbmUgU1RBTkRBUkRfU1RBUlRGSUxFX1BSRUZJWF8yICIvdXNyL2xpYi8iCi0tI2VuZGlmCi0tCi0gI2lmZGVmIENST1NTX0RJUkVDVE9SWV9TVFJVQ1RVUkUgIC8qIERvbid0IHVzZSB0aGVzZSBwcmVmaXhlcyBmb3IgYSBjcm9zcyBjb21waWxlci4gICovCi0gI3VuZGVmIE1EX0VYRUNfUFJFRklYCi0gI3VuZGVmIE1EX1NUQVJURklMRV9QUkVGSVgKLS0tIAotMi4yMi4xCi0KZGlmZiAtLWdpdCBhL3Bva3kvbWV0YS9yZWNpcGVzLWRldnRvb2xzL2djYy9nY2MtOS4yLzAwMzAtbGliZ2NjLUFkZC1rbm9iLXRvLXVzZS1sZGJsLTEyOC1vbi1wcGMucGF0Y2ggYi9wb2t5L21ldGEvcmVjaXBlcy1kZXZ0b29scy9nY2MvZ2NjLTkuMi8wMDMwLWxpYmdjYy1BZGQta25vYi10by11c2UtbGRibC0xMjgtb24tcHBjLnBhdGNoCmluZGV4IGY1NzY5YmMuLjM4ZWFiNWEgMTAwNjQ0Ci0tLSBhL3Bva3kvbWV0YS9yZWNpcGVzLWRldnRvb2xzL2djYy9nY2MtOS4yLzAwMzAtbGliZ2NjLUFkZC1rbm9iLXRvLXVzZS1sZGJsLTEyOC1vbi1wcGMucGF0Y2gKKysrIGIvcG9reS9tZXRhL3JlY2lwZXMtZGV2dG9vbHMvZ2NjL2djYy05LjIvMDAzMC1saWJnY2MtQWRkLWtub2ItdG8tdXNlLWxkYmwtMTI4LW9uLXBwYy5wYXRjaApAQCAtMSwxMjUgKzEsNzkgQEAKLUZyb20gYmFhYjYxYWUzOTM4ZWUyZmE5ZWMwM2EyMDc5MzUwODUxNmE0NmRhZSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IEtoZW0gUmFqIDxyYWoua2hlbUBnbWFpbC5jb20+Ci1EYXRlOiBGcmksIDI5IEFwciAyMDE2IDIwOjAzOjI4ICswMDAwCi1TdWJqZWN0OiBbUEFUQ0ggMzAvMzZdIGxpYmdjYzogQWRkIGtub2IgdG8gdXNlIGxkYmwtMTI4IG9uIHBwYwotCi1tdXNsIGRvZXMgbm90IHN1cHBvcnQgbGRibCAxMjggc28gd2UgY2FuIG5vdCBhc3N1bWUKLXRoYXQgbGludXggYXMgYSB3aG9sZSBzdXBwb3J0cyBsZGJsLTEyOCBiaXRzLCBpbnN0ZWFkCi1hY3QgdXBvbiBjb25maWd1cmUgb3B0aW9uIHBhc3NlZCB0byBnY2MgYW5kIGFzc3VtZSBubwotb24gbXVzbCBhbmQgeWVzIG90aGVyd2lzZSBpZiBubyBvcHRpb24gaXMgcGFzc2VkIHNpbmNlCi1kZWZhdWx0IGJlaGF2aW91ciBpcyB0byBhc3N1bWUgbGRibDEyOCBpdCBkb2VzIG5vdAotY2hhbmdlIHRoZSBkZWZhdWx0cworRnJvbSA0NzQ2N2YzYWIwZmIyZjJmY2VkZTgxMDYwZmU4YmIzMzlkMDkwOWViIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogU3phYm9sY3MgTmFneSA8bnN6QHBvcnQ3MC5uZXQ+CitEYXRlOiBXZWQsIDI4IEZlYiAyMDE4IDAwOjU0OjA1ICswMDAwCitTdWJqZWN0OiBbUEFUQ0ggMTAvMTJdIGxkYmwxMjggY29uZmlnCiAKIFVwc3RyZWFtLVN0YXR1czogUGVuZGluZwogCiBTaWduZWQtb2ZmLWJ5OiBLaGVtIFJhaiA8cmFqLmtoZW1AZ21haWwuY29tPgogLS0tCi0gbGliZ2NjL01ha2VmaWxlLmluICAgICAgICAgICB8ICAxICsKLSBsaWJnY2MvY29uZmlnL3JzNjAwMC90LWxpbnV4IHwgIDUgKysrKy0KLSBsaWJnY2MvY29uZmlndXJlICAgICAgICAgICAgIHwgMTggKysrKysrKysrKysrKysrKysrCi0gbGliZ2NjL2NvbmZpZ3VyZS5hYyAgICAgICAgICB8IDEyICsrKysrKysrKysrKwotIDQgZmlsZXMgY2hhbmdlZCwgMzUgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQotIG1vZGUgY2hhbmdlIDEwMDY0NCA9PiAxMDA3NTUgbGliZ2NjL2NvbmZpZ3VyZQorIGdjYy9jb25maWd1cmUgICAgfCAxMyArKysrKysrKysrKysrCisgZ2NjL2NvbmZpZ3VyZS5hYyB8IDE2ICsrKysrKysrKysrKysrLS0KKyAyIGZpbGVzIGNoYW5nZWQsIDI3IGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCiAKLWRpZmYgLS1naXQgYS9saWJnY2MvTWFrZWZpbGUuaW4gYi9saWJnY2MvTWFrZWZpbGUuaW4KLWluZGV4IGVhMzkwYTViYmVhLi4xMTRjNzg3NjMwNCAxMDA2NDQKLS0tLSBhL2xpYmdjYy9NYWtlZmlsZS5pbgotKysrIGIvbGliZ2NjL01ha2VmaWxlLmluCi1AQCAtNTAsNiArNTAsNyBAQCB1bndpbmRfaGVhZGVyID0gQHVud2luZF9oZWFkZXJACi0gbWRfdW53aW5kX2hlYWRlciA9IEBtZF91bndpbmRfaGVhZGVyQAotIHNmcF9tYWNoaW5lX2hlYWRlciA9IEBzZnBfbWFjaGluZV9oZWFkZXJACi0gdGhyZWFkX2hlYWRlciA9IEB0aHJlYWRfaGVhZGVyQAotK3dpdGhfbGRibDEyOCA9IEB3aXRoX2xkYmwxMjhACitkaWZmIC0tZ2l0IGEvZ2NjL2NvbmZpZ3VyZSBiL2djYy9jb25maWd1cmUKK2luZGV4IDYxMjFlMTYzMjU5Li4wN2ZmODU5N2Q0OCAxMDA3NTUKKy0tLSBhL2djYy9jb25maWd1cmUKKysrKyBiL2djYy9jb25maWd1cmUKK0BAIC0yOTMwOSw2ICsyOTMwOSwxNSBAQCBpZiB0ZXN0ICIke3dpdGhfbG9uZ19kb3VibGVfMTI4K3NldH0iID0gc2V0OyB0aGVuIDoKKyAgIHdpdGh2YWw9JHdpdGhfbG9uZ19kb3VibGVfMTI4OyBnY2NfY3ZfdGFyZ2V0X2xkYmwxMjg9IiR3aXRoX2xvbmdfZG91YmxlXzEyOCIKKyBlbHNlCiAgCi0gaG9zdF9ub25jYW5vbmljYWwgPSBAaG9zdF9ub25jYW5vbmljYWxACi0gcmVhbF9ob3N0X25vbmNhbm9uaWNhbCA9IEByZWFsX2hvc3Rfbm9uY2Fub25pY2FsQAotZGlmZiAtLWdpdCBhL2xpYmdjYy9jb25maWcvcnM2MDAwL3QtbGludXggYi9saWJnY2MvY29uZmlnL3JzNjAwMC90LWxpbnV4Ci1pbmRleCA0ZjZkNGM0YTRkMi4uYzUwZGQ5NGEyZGEgMTAwNjQ0Ci0tLS0gYS9saWJnY2MvY29uZmlnL3JzNjAwMC90LWxpbnV4Ci0rKysgYi9saWJnY2MvY29uZmlnL3JzNjAwMC90LWxpbnV4Ci1AQCAtMSwzICsxLDYgQEAKLSBTSExJQl9NQVBGSUxFUyArPSAkKHNyY2RpcikvY29uZmlnL3JzNjAwMC9saWJnY2MtZ2xpYmMudmVyCisrICAgICAgY2FzZSAiJHRhcmdldCIgaW4KKysJczM5MCotKi1saW51eC1tdXNsKikKKysJICBnY2NfY3ZfdGFyZ2V0X2xkYmwxMjg9eWVzCisrCSAgOzsKKysJcG93ZXJwYyotKi1saW51eC1tdXNsKikKKysJICBnY2NfY3ZfdGFyZ2V0X2xkYmwxMjg9bm8KKysJICA7OworKwkqKQorKworIGlmIHRlc3QgJGdsaWJjX3ZlcnNpb25fbWFqb3IgLWd0IDIgXAorICAgfHwgKCB0ZXN0ICRnbGliY192ZXJzaW9uX21ham9yIC1lcSAyICYmIHRlc3QgJGdsaWJjX3ZlcnNpb25fbWlub3IgLWdlIDQgKTsgdGhlbiA6CisgICBnY2NfY3ZfdGFyZ2V0X2xkYmwxMjg9eWVzCitAQCAtMjkzMjAsNiArMjkzMjksMTAgQEAgZWxzZQorICAgICAgICYmIGdjY19jdl90YXJnZXRfbGRibDEyOD15ZXMKICAKLS1IT1NUX0xJQkdDQzJfQ0ZMQUdTICs9IC1tbG9uZy1kb3VibGUtMTI4IC1tbm8tbWluaW1hbC10b2MKLStpZmVxICgkKHdpdGhfbGRibDEyOCkseWVzKQotK0hPU1RfTElCR0NDMl9DRkxBR1MgKz0gLW1sb25nLWRvdWJsZS0xMjgKLStlbmRpZgotK0hPU1RfTElCR0NDMl9DRkxBR1MgKz0gLW1uby1taW5pbWFsLXRvYwotZGlmZiAtLWdpdCBhL2xpYmdjYy9jb25maWd1cmUgYi9saWJnY2MvY29uZmlndXJlCi1vbGQgbW9kZSAxMDA2NDQKLW5ldyBtb2RlIDEwMDc1NQotaW5kZXggMzZkYmJjMWY2OTkuLmI1ZGQ1YzM0ZTJhCi0tLS0gYS9saWJnY2MvY29uZmlndXJlCi0rKysgYi9saWJnY2MvY29uZmlndXJlCi1AQCAtNjUxLDYgKzY1MSw3IEBAIGJ1aWxkX3ZlbmRvcgotIGJ1aWxkX2NwdQotIGJ1aWxkCi0gd2l0aF9haXhfc29uYW1lCi0rd2l0aF9sZGJsMTI4Ci0gZW5hYmxlX3Z0YWJsZV92ZXJpZnkKLSBlbmFibGVfZ2NvdgotIGVuYWJsZV9zaGFyZWQKLUBAIC03MDIsNiArNzAzLDcgQEAgd2l0aF9sZAotIGVuYWJsZV9zaGFyZWQKLSBlbmFibGVfZ2NvdgotIGVuYWJsZV92dGFibGVfdmVyaWZ5Ci0rd2l0aF9sb25nX2RvdWJsZV8xMjgKLSB3aXRoX2FpeF9zb25hbWUKLSBlbmFibGVfdmVyc2lvbl9zcGVjaWZpY19ydW50aW1lX2xpYnMKLSB3aXRoX3NsaWJkaXIKLUBAIC0xMzYzLDYgKzEzNjUsNyBAQCBPcHRpb25hbCBQYWNrYWdlczoKLSAgIC0td2l0aC10YXJnZXQtc3ViZGlyPVNVQkRJUiAgICAgIENvbmZpZ3VyaW5nIGluIGEgc3ViZGlyZWN0b3J5IGZvciB0YXJnZXQKLSAgIC0td2l0aC1jcm9zcy1ob3N0PUhPU1QgICAgICAgICAgIENvbmZpZ3VyaW5nIHdpdGggYSBjcm9zcyBjb21waWxlcgotICAgLS13aXRoLWxkICAgICAgICAgICAgICAgYXJyYW5nZSB0byB1c2UgdGhlIHNwZWNpZmllZCBsZCAoZnVsbCBwYXRobmFtZSkKLSsgIC0td2l0aC1sb25nLWRvdWJsZS0xMjggIHVzZSAxMjgtYml0IGxvbmcgZG91YmxlIGJ5IGRlZmF1bHQKLSAgIC0td2l0aC1haXgtc29uYW1lPWFpeHxzdnI0fGJvdGgKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIHNoYXJlZCBsaWJyYXJ5IHZlcnNpb25pbmcgKGFrYSAiU09OQU1FIikgdmFyaWFudCB0bwotICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvdmlkZSBvbiBBSVgKLUBAIC0yMjY4LDYgKzIyNzEsMjEgQEAgZmkKKyBmaQorKworKwkgIDs7CisrICAgICAgZXNhYworKworIGZpCiAgCi0gCi0gCi0rIyBDaGVjayB3aGV0aGVyIC0td2l0aC1sb25nLWRvdWJsZS0xMjggd2FzIGdpdmVuLgotK2lmIHRlc3QgIiR7d2l0aF9sb25nX2RvdWJsZV8xMjgrc2V0fSIgPSBzZXQ7IHRoZW4gOgotKyAgd2l0aHZhbD0kd2l0aF9sb25nX2RvdWJsZV8xMjg7IHdpdGhfbGRibDEyOD0iJHdpdGhfbG9uZ19kb3VibGVfMTI4IgotK2Vsc2UKLSsgIGNhc2UgIiR7aG9zdH0iIGluCi0rIHBvd2VyKi0qLW11c2wqKQotKyAgIHdpdGhfbGRibDEyOD0ibm8iOzsKLSsgKikgd2l0aF9sZGJsMTI4PSJ5ZXMiOzsKLSsgZXNhYwotKwotK2ZpCi0rCi0rCi0rCi0rCi0gIyBDaGVjayB3aGV0aGVyIC0td2l0aC1haXgtc29uYW1lIHdhcyBnaXZlbi4KLSBpZiB0ZXN0ICIke3dpdGhfYWl4X3NvbmFtZStzZXR9IiA9IHNldDsgdGhlbiA6Ci0gICB3aXRodmFsPSR3aXRoX2FpeF9zb25hbWU7IGNhc2UgIiR7aG9zdH06JHtlbmFibGVfc2hhcmVkfSIgaW4KLWRpZmYgLS1naXQgYS9saWJnY2MvY29uZmlndXJlLmFjIGIvbGliZ2NjL2NvbmZpZ3VyZS5hYwotaW5kZXggOGU5NmNhZmRmOGIuLjkyNDc4NTZiZjI0IDEwMDY0NAotLS0tIGEvbGliZ2NjL2NvbmZpZ3VyZS5hYwotKysrIGIvbGliZ2NjL2NvbmZpZ3VyZS5hYwotQEAgLTgyLDYgKzgyLDE4IEBAIEFDX0FSR19FTkFCTEUodnRhYmxlLXZlcmlmeSwKLSBbZW5hYmxlX3Z0YWJsZV92ZXJpZnk9bm9dKQotIEFDX1NVQlNUKGVuYWJsZV92dGFibGVfdmVyaWZ5KQotIAotK0FDX0FSR19XSVRIKGxvbmctZG91YmxlLTEyOCwKLStbQVNfSEVMUF9TVFJJTkcoWy0td2l0aC1sb25nLWRvdWJsZS0xMjhdLAotKyAgICBbdXNlIDEyOC1iaXQgbG9uZyBkb3VibGUgYnkgZGVmYXVsdF0pXSwKLSsgICAgICB3aXRoX2xkYmwxMjg9IiR3aXRoX2xvbmdfZG91YmxlXzEyOCIsCi0rW2Nhc2UgIiR7aG9zdH0iIGluCi0rIHBvd2VyKi0qLW11c2wqKQotKyAgIHdpdGhfbGRibDEyOD0ibm8iOzsKLSsgKikgd2l0aF9sZGJsMTI4PSJ5ZXMiOzsKLSsgZXNhYwotK10pCi0rQUNfU1VCU1Qod2l0aF9sZGJsMTI4KQotKwotIEFDX0FSR19XSVRIKGFpeC1zb25hbWUsCi0gW0FTX0hFTFBfU1RSSU5HKFstLXdpdGgtYWl4LXNvbmFtZT1haXh8c3ZyNHxib3RoXSwKLSAgICAgW3NoYXJlZCBsaWJyYXJ5IHZlcnNpb25pbmcgKGFrYSAiU09OQU1FIikgdmFyaWFudCB0byBwcm92aWRlIG9uIEFJWF0pXSwKKyAgICAgOzsKK2RpZmYgLS1naXQgYS9nY2MvY29uZmlndXJlLmFjIGIvZ2NjL2NvbmZpZ3VyZS5hYworaW5kZXggYjA2NmNjNjA5ZTEuLjZjMTVlZDg5OGMwIDEwMDY0NAorLS0tIGEvZ2NjL2NvbmZpZ3VyZS5hYworKysrIGIvZ2NjL2NvbmZpZ3VyZS5hYworQEAgLTU5NzEsMTMgKzU5NzEsMjUgQEAgY2FzZSAiJHRhcmdldCIgaW4KKyAgICAgQUNfQVJHX1dJVEgobG9uZy1kb3VibGUtMTI4LAorICAgICAgIFtBU19IRUxQX1NUUklORyhbLS13aXRoLWxvbmctZG91YmxlLTEyOF0sCisgCQkgICAgICBbdXNlIDEyOC1iaXQgbG9uZyBkb3VibGUgYnkgZGVmYXVsdF0pXSwKKy0gICAgICBnY2NfY3ZfdGFyZ2V0X2xkYmwxMjg9IiR3aXRoX2xvbmdfZG91YmxlXzEyOCIsCisrICAgICAgZ2NjX2N2X3RhcmdldF9sZGJsMTI4PSIkd2l0aF9sb25nX2RvdWJsZV8xMjgiLCBbCisrICAgICAgY2FzZSAiJHRhcmdldCIgaW4KKysJczM5MCotKi1saW51eC1tdXNsKikKKysJICBnY2NfY3ZfdGFyZ2V0X2xkYmwxMjg9eWVzCisrCSAgOzsKKysJcG93ZXJwYyotKi1saW51eC1tdXNsKikKKysJICBnY2NfY3ZfdGFyZ2V0X2xkYmwxMjg9bm8KKysJICA7OworKwkqKV0KKyAgICAgICBbR0NDX0dMSUJDX1ZFUlNJT05fR1RFX0lGRUxTRShbMl0sIFs0XSwgW2djY19jdl90YXJnZXRfbGRibDEyOD15ZXNdLCBbCisgICAgICAgW2djY19jdl90YXJnZXRfbGRibDEyOD1ubworICAgICAgIGdyZXAgJ15bIAldKiNbIAldKmRlZmluZVsgCV1bIAldKl9fTE9OR19ET1VCTEVfTUFUSF9PUFRJT05BTCcgXAorICAgICAgICAgJHRhcmdldF9oZWFkZXJfZGlyL2JpdHMvd29yZHNpemUuaCA+IC9kZXYvbnVsbCAyPiYxIFwKKyAgICAgICAmJiBnY2NfY3ZfdGFyZ2V0X2xkYmwxMjg9eWVzCistICAgICAgXV0pXSkKKysgICAgICBdXSldCisrICAgICAgWworKwkgIDs7CisrICAgICAgZXNhYworKyAgICAgIF0pCisgICAgIDs7CisgZXNhYworIGlmIHRlc3QgeCRnY2NfY3ZfdGFyZ2V0X2xkYmwxMjggPSB4eWVzOyB0aGVuCiAtLSAKLTIuMjIuMQorMi4xNy4xCiAKZGlmZiAtLWdpdCBhL3Bva3kvbWV0YS9yZWNpcGVzLWRldnRvb2xzL2djYy9nY2MtOS4yL0NWRS0yMDE5LTE0MjUwLnBhdGNoIGIvcG9reS9tZXRhL3JlY2lwZXMtZGV2dG9vbHMvZ2NjL2djYy05LjIvQ1ZFLTIwMTktMTQyNTAucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjVlYTM0NQotLS0gL2Rldi9udWxsCisrKyBiL3Bva3kvbWV0YS9yZWNpcGVzLWRldnRvb2xzL2djYy9nY2MtOS4yL0NWRS0yMDE5LTE0MjUwLnBhdGNoCkBAIC0wLDAgKzEsNDQgQEAKK0Zyb20gNTE3YjIxMWEzZDc4MzY2Y2E4ZDU5MjlmNTgwZThjYTcyZmQyYzAwNCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IHJndWVudGggPHJndWVudGhAMTM4YmM3NWQtMGQwNC0wNDEwLTk2MWYtODJlZTcyYjA1NGE0PgorRGF0ZTogVGh1LCAyNSBKdWwgMjAxOSAxMDo0Njo1NCArMDAwMAorU3ViamVjdDogW1BBVENIXSAyMDE5LTA3LTI1ICBSaWNoYXJkIEJpZW5lciAgPHJndWVudGhlckBzdXNlLmRlPgorCisJUFIgbHRvLzkwOTI0CisJQmFja3BvcnQgZnJvbSBtYWlubGluZQorCTIwMTktMDctMTIgIFJlbiBLaW11cmEgIDxya3gxMjA5ZGV2QGdtYWlsLmNvbT4KKworCSogc2ltcGxlLW9iamVjdC1lbGYuYyAoc2ltcGxlX29iamVjdF9lbGZfbWF0Y2gpOiBDaGVjayB6ZXJvIHZhbHVlCisJc2hzdHJuZHguCisKKworZ2l0LXN2bi1pZDogc3ZuK3NzaDovL2djYy5nbnUub3JnL3N2bi9nY2MvYnJhbmNoZXMvZ2NjLTktYnJhbmNoQDI3Mzc5MyAxMzhiYzc1ZC0wZDA0LTA0MTAtOTYxZi04MmVlNzJiMDU0YTQKKworVXBzdHJlYW0tU3RhdHVzOiBCYWNrcG9ydAorQWZmZWN0ZXM6IDwgIDkuMgorQ1ZFOiBDVkUtMjAxOS0xNDI1MAorRHJvcHBlZCBjaGFuZ2Vsb2cKK1NpZ25lZC1vZmYtYnk6IEFybWluIEt1c3RlciA8QWt1c3RyZUBtdmlzdGEuY29tPgorCistLS0KKyBsaWJpYmVydHkvc2ltcGxlLW9iamVjdC1lbGYuYyB8IDggKysrKysrKysKKyAyIGZpbGVzIGNoYW5nZWQsIDE3IGluc2VydGlvbnMoKykKKworSW5kZXg6IGdjYy05LjIuMC9saWJpYmVydHkvc2ltcGxlLW9iamVjdC1lbGYuYworPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tIGdjYy05LjIuMC5vcmlnL2xpYmliZXJ0eS9zaW1wbGUtb2JqZWN0LWVsZi5jCisrKysgZ2NjLTkuMi4wL2xpYmliZXJ0eS9zaW1wbGUtb2JqZWN0LWVsZi5jCitAQCAtNTU3LDYgKzU1NywxNCBAQCBzaW1wbGVfb2JqZWN0X2VsZl9tYXRjaCAodW5zaWduZWQgY2hhciBoCisgICAgICAgcmV0dXJuIE5VTEw7CisgICAgIH0KKyAKKysgIGlmIChlb3ItPnNoc3RybmR4ID09IDApCisrICAgIHsKKysgICAgICAqZXJybXNnID0gImludmFsaWQgRUxGIHNoc3RybmR4ID09IDAiOworKyAgICAgICplcnIgPSAwOworKyAgICAgIFhERUxFVEUgKGVvcik7CisrICAgICAgcmV0dXJuIE5VTEw7CisrICAgIH0KKysKKyAgIHJldHVybiAodm9pZCAqKSBlb3I7CisgfQorIApkaWZmIC0tZ2l0IGEvcG9reS9tZXRhL3JlY2lwZXMtZGV2dG9vbHMvZ2NjL2djYy1jb21tb24uaW5jIGIvcG9reS9tZXRhL3JlY2lwZXMtZGV2dG9vbHMvZ2NjL2djYy1jb21tb24uaW5jCmluZGV4IDk2MzM0ZTUuLjQ0Y2JhMjggMTAwNjQ0Ci0tLSBhL3Bva3kvbWV0YS9yZWNpcGVzLWRldnRvb2xzL2djYy9nY2MtY29tbW9uLmluYworKysgYi9wb2t5L21ldGEvcmVjaXBlcy1kZXZ0b29scy9nY2MvZ2NjLWNvbW1vbi5pbmMKQEAgLTE3LDcgKzE3LDcgQEAKICAgICBzcmMgPSBkLmV4cGFuZCgiJHtDT01QT05FTlRTX0RJUn0vJHtCVUlMRF9BUkNIfS9nY2Mtc3Rhc2hlZC1idWlsZGRpci0ke1RBUkdFVF9TWVN9IikKICAgICBkZXN0ID0gZC5nZXRWYXIoIkIiKQogICAgIG9lLnBhdGguY29weWhhcmRsaW5rdHJlZShzcmMsIGRlc3QpCi0gICAgc3RhZ2luZ19wcm9jZXNzZml4bWUoW3NyYyArICIvZml4bWVwYXRoIl0sIGRlc3QsIGRlc3QsIGRlc3QsIGQpCisgICAgc3RhZ2luZ19wcm9jZXNzZml4bWUoW3NyYyArICIvZml4bWVwYXRoIl0sIGRlc3QsIGQuZ2V0VmFyKCJSRUNJUEVfU1lTUk9PVCIpLCBkLmdldFZhcigiUkVDSVBFX1NZU1JPT1RfTkFUSVZFIiksIGQpCiB9CiAKIGRlZiBnZXRfZ2NjX2Zsb2F0X3NldHRpbmcoYmIsIGQpOgpAQCAtNDEsMTMgKzQxLDYgQEAKICAgICAgICAgcmV0dXJuICItLWVuYWJsZS1zZWN1cmVwbHQiCiAgICAgcmV0dXJuICIiCiAKLWRlZiBnZXRfbG9uZ19kb3VibGVfc2V0dGluZyhiYiwgZCk6Ci0gICAgaWYgZC5nZXRWYXIoJ1RSQU5TTEFURURfVEFSR0VUX0FSQ0gnKSBpbiBbICdwb3dlcnBjJywgJ3Bvd2VycGM2NCcgXSBhbmQgZC5nZXRWYXIoJ1RDTElCQycpIGluIFsgJ2dsaWJjJyBdOgotICAgICAgICByZXR1cm4gIi0td2l0aC1sb25nLWRvdWJsZS0xMjgiCi0gICAgZWxzZToKLSAgICAgICAgcmV0dXJuICItLXdpdGhvdXQtbG9uZy1kb3VibGUtMTI4IGxpYmdjY19jdl9wb3dlcnBjX2Zsb2F0MTI4PW5vIgotICAgIHJldHVybiAiIgotCiBkZWYgZ2V0X2djY19tdWx0aWFyY2hfc2V0dGluZyhiYiwgZCk6CiAgICAgdGFyZ2V0X2FyY2ggPSBkLmdldFZhcignVFJBTlNMQVRFRF9UQVJHRVRfQVJDSCcpCiAgICAgbXVsdGlhcmNoX29wdGlvbnMgPSB7CmRpZmYgLS1naXQgYS9wb2t5L21ldGEvcmVjaXBlcy1kZXZ0b29scy9nY2MvZ2NjLWNvbmZpZ3VyZS1jb21tb24uaW5jIGIvcG9reS9tZXRhL3JlY2lwZXMtZGV2dG9vbHMvZ2NjL2djYy1jb25maWd1cmUtY29tbW9uLmluYwppbmRleCBiNmYyY2E1Li4yNGJhOGNlIDEwMDY0NAotLS0gYS9wb2t5L21ldGEvcmVjaXBlcy1kZXZ0b29scy9nY2MvZ2NjLWNvbmZpZ3VyZS1jb21tb24uaW5jCisrKyBiL3Bva3kvbWV0YS9yZWNpcGVzLWRldnRvb2xzL2djYy9nY2MtY29uZmlndXJlLWNvbW1vbi5pbmMKQEAgLTM2LDcgKzM2LDYgQEAKICAgICAke0VYVFJBX09FQ09ORl9QQVRIU30gXAogICAgICR7QGdldF9nY2NfbWlwc19wbHRfc2V0dGluZyhiYiwgZCl9IFwKICAgICAke0BnZXRfZ2NjX3BwY19wbHRfc2V0dGluZ3MoYmIsIGQpfSBcCi0gICAgJHtAZ2V0X2xvbmdfZG91YmxlX3NldHRpbmcoYmIsIGQpfSBcCiAgICAgJHtAZ2V0X2djY19tdWx0aWFyY2hfc2V0dGluZyhiYiwgZCl9IFwKICIKIApkaWZmIC0tZ2l0IGEvcG9reS9tZXRhL3JlY2lwZXMtZGV2dG9vbHMvZ2NjL2djYy1jcm9zcy1jYW5hZGlhbl84LjMuYmIgYi9wb2t5L21ldGEvcmVjaXBlcy1kZXZ0b29scy9nY2MvZ2NjLWNyb3NzLWNhbmFkaWFuXzguMy5iYgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYmY1M2M1Yy4uMDAwMDAwMAotLS0gYS9wb2t5L21ldGEvcmVjaXBlcy1kZXZ0b29scy9nY2MvZ2NjLWNyb3NzLWNhbmFkaWFuXzguMy5iYgorKysgL2Rldi9udWxsCkBAIC0xLDUgKzAsMCBAQAotcmVxdWlyZSByZWNpcGVzLWRldnRvb2xzL2djYy9nY2MtJHtQVn0uaW5jCi1yZXF1aXJlIGdjYy1jcm9zcy1jYW5hZGlhbi5pbmMKLQotCi0KZGlmZiAtLWdpdCBhL3Bva3kvbWV0YS9yZWNpcGVzLWRldnRvb2xzL2djYy9nY2MtY3Jvc3MuaW5jIGIvcG9reS9tZXRhL3JlY2lwZXMtZGV2dG9vbHMvZ2NjL2djYy1jcm9zcy5pbmMKaW5kZXggNjIyMmMyZS4uOTVhZjZkOCAxMDA2NDQKLS0tIGEvcG9reS9tZXRhL3JlY2lwZXMtZGV2dG9vbHMvZ2NjL2djYy1jcm9zcy5pbmMKKysrIGIvcG9reS9tZXRhL3JlY2lwZXMtZGV2dG9vbHMvZ2NjL2djYy1jcm9zcy5pbmMKQEAgLTE5Niw2ICsxOTYsOCBAQAogCSMgV2UgdXNlIGxpYmliZXJ0eSBmcm9tIGJpbnV0aWxzCiAJZmluZCAke0R9JHtleGVjX3ByZWZpeH0vbGliIC1uYW1lIGxpYmliZXJ0eS5hIHwgeGFyZ3Mgcm0gLWYKIAlmaW5kICR7RH0ke2V4ZWNfcHJlZml4fS9saWIgLW5hbWUgbGliaWJlcnR5LmggfCB4YXJncyBybSAtZgorCisJZmluZCAke0R9JHtsaWJkaXJ9L2djYy8ke1RBUkdFVF9TWVN9LyR7QklOVn0vaW5jbHVkZS1maXhlZCAtdHlwZSBmIC1ub3QgLW5hbWUgIlJFQURNRSIgLW5vdCAtbmFtZSBsaW1pdHMuaCAtbm90IC1uYW1lIHN5c2xpbWl0cy5oIHwgeGFyZ3Mgcm0gLWYKIH0KIAogZG9fcGFja2FnZVtub2V4ZWNdID0gIjEiCkBAIC0yMTAsNiArMjEyLDkgQEAKIGRvX2djY19zdGFzaF9idWlsZGRpciAoKSB7CiAJZGVzdD0ke0JVSUxERElSU1RBU0h9CiAJaGFyZGxpbmtkaXIgLiAkZGVzdAorCSMgTWFrZWZpbGUgZG9lcyBtb3ZlLWlmLWNoYW5nZSB3aGljaCBjYW4gZW5kIHVwIHdpdGggJ3RpbWVzdGFtcCcgYXMgZmlsZSBjb250ZW50cyBzbyBicmVhayBsaW5rcyB0byB0aG9zZSBmaWxlcworCXJtICRkZXN0L2djYy9pbmNsdWRlLyouaAorCWNwIGdjYy9pbmNsdWRlLyouaCAkZGVzdC9nY2MvaW5jbHVkZS8KIH0KIGFkZHRhc2sgZG9fZ2NjX3N0YXNoX2J1aWxkZGlyIGFmdGVyIGRvX2NvbXBpbGUgYmVmb3JlIGRvX2luc3RhbGwKIFNTVEFURVRBU0tTICs9ICJkb19nY2Nfc3Rhc2hfYnVpbGRkaXIiCmRpZmYgLS1naXQgYS9wb2t5L21ldGEvcmVjaXBlcy1kZXZ0b29scy9nY2MvZ2NjLWNyb3NzXzguMy5iYiBiL3Bva3kvbWV0YS9yZWNpcGVzLWRldnRvb2xzL2djYy9nY2MtY3Jvc3NfOC4zLmJiCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiNDNjY2EwLi4wMDAwMDAwCi0tLSBhL3Bva3kvbWV0YS9yZWNpcGVzLWRldnRvb2xzL2djYy9nY2MtY3Jvc3NfOC4zLmJiCisrKyAvZGV2L251bGwKQEAgLTEsMyArMCwwIEBACi1yZXF1aXJlIHJlY2lwZXMtZGV2dG9vbHMvZ2NjL2djYy0ke1BWfS5pbmMKLXJlcXVpcmUgZ2NjLWNyb3NzLmluYwotCmRpZmYgLS1naXQgYS9wb2t5L21ldGEvcmVjaXBlcy1kZXZ0b29scy9nY2MvZ2NjLWNyb3Nzc2RrXzguMy5iYiBiL3Bva3kvbWV0YS9yZWNpcGVzLWRldnRvb2xzL2djYy9nY2MtY3Jvc3NzZGtfOC4zLmJiCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0MGE2YzRmLi4wMDAwMDAwCi0tLSBhL3Bva3kvbWV0YS9yZWNpcGVzLWRldnRvb2xzL2djYy9nY2MtY3Jvc3NzZGtfOC4zLmJiCisrKyAvZGV2L251bGwKQEAgLTEsMiArMCwwIEBACi1yZXF1aXJlIHJlY2lwZXMtZGV2dG9vbHMvZ2NjL2djYy1jcm9zc18ke1BWfS5iYgotcmVxdWlyZSBnY2MtY3Jvc3NzZGsuaW5jCmRpZmYgLS1naXQgYS9wb2t5L21ldGEvcmVjaXBlcy1kZXZ0b29scy9nY2MvZ2NjLXJ1bnRpbWUuaW5jIGIvcG9reS9tZXRhL3JlY2lwZXMtZGV2dG9vbHMvZ2NjL2djYy1ydW50aW1lLmluYwppbmRleCAyMmMxZDc4Li4yZGEzYzAyIDEwMDY0NAotLS0gYS9wb2t5L21ldGEvcmVjaXBlcy1kZXZ0b29scy9nY2MvZ2NjLXJ1bnRpbWUuaW5jCisrKyBiL3Bva3kvbWV0YS9yZWNpcGVzLWRldnRvb2xzL2djYy9nY2MtcnVudGltZS5pbmMKQEAgLTI3NywzICsyNzcsNDUgQEAKIFNVTU1BUllfbGliaXRtLWRldiA9ICJHTlUgdHJhbnNhY3Rpb25hbCBtZW1vcnkgc3VwcG9ydCBsaWJyYXJ5IC0gZGV2ZWxvcG1lbnQgZmlsZXMiCiBGSUxFU19saWJpdG0tc3RhdGljZGV2ID0gIiR7bGliZGlyfS9saWJpdG0uYSIKIFNVTU1BUllfbGliaXRtLXN0YXRpY2RldiA9ICJHTlUgdHJhbnNhY3Rpb25hbCBtZW1vcnkgc3VwcG9ydCBsaWJyYXJ5IC0gc3RhdGljIGRldmVsb3BtZW50IGZpbGVzIgorCityZXF1aXJlIGdjYy10ZXN0c3VpdGUuaW5jCisKK0VYVFJBX09FTUFLRV9wcmVwZW5kX3Rhc2stY2hlY2sgPSAiJHtQQVJBTExFTF9NQUtFfSAiCisKK01BS0VfQ0hFQ0tfVEFSR0VUUyA/Pz0gImNoZWNrLWdjYyAke0AiICIuam9pbigiY2hlY2stdGFyZ2V0LSIgKyBpIGZvciBpIGluIGQuZ2V0VmFyKCJSVU5USU1FVEFSR0VUIikuc3BsaXQoKSl9IgorIyBwcmV0dHlwcmludGVycyBhbmQgeG1ldGhvZHMgcmVxdWlyZSBnZGIgdG9vbGluZworTUFLRV9DSEVDS19JR05PUkUgPz89ICJwcmV0dHlwcmludGVycy5leHAgeG1ldGhvZHMuZXhwIgorTUFLRV9DSEVDS19SVU5URVNURkxBR1MgPz89ICIke01BS0VfQ0hFQ0tfQk9BUkRBUkdTfSAtLWlnbm9yZSAnJHtNQUtFX0NIRUNLX0lHTk9SRX0nIgorCisjIHNwZWNpZmljIGhvc3QgYW5kIHRhcmdldCBkZXBlbmRlbmNpZXMgcmVxdWlyZWQgZm9yIHRlc3Qgc3VpdGUgcnVubmluZworZG9fY2hlY2tbZGVwZW5kc10gKz0gImRlamFnbnUtbmF0aXZlOmRvX3BvcHVsYXRlX3N5c3Jvb3QgZXhwZWN0LW5hdGl2ZTpkb19wb3B1bGF0ZV9zeXNyb290IgorZG9fY2hlY2tbZGVwZW5kc10gKz0gInZpcnR1YWwvbGliYzpkb19wb3B1bGF0ZV9zeXNyb290IgorIyBvbmx5IGRlcGVuZCBvbiBxZW11IGlmIHRhcmdldGluZyBsaW51eCB1c2VyIGV4ZWN1dGlvbgorZG9fY2hlY2tbZGVwZW5kc10gKz0gIiR7QCdxZW11LW5hdGl2ZTpkb19wb3B1bGF0ZV9zeXNyb290JyBpZiAidXNlciIgaW4gZC5nZXRWYXIoJ1RPT0xDSEFJTl9URVNUX1RBUkdFVCcpIGVsc2UgJyd9IgorIyBleHRlbmQgdGhlIHJlY2lwZSBzeXNyb290IHRvIGluY2x1ZGUgdGhlIGJ1aWx0IGxpYnJhcmllcyAoZm9yIHFlbXUgdXNlcm1vZGUpCitkb19jaGVja1twcmVmdW5jc10gKz0gImV4dGVuZF9yZWNpcGVfc3lzcm9vdCIKK2RvX2NoZWNrW3ByZWZ1bmNzXSArPSAiY2hlY2tfcHJlcGFyZSIKK2RvX2NoZWNrW2RpcnNdID0gIiR7V09SS0RJUn0vZGVqYWdudSAke0J9IgorZG9fY2hlY2tbbm9zdGFtcF0gPSAiMSIKK2RvX2NoZWNrKCkgeworICAgIGV4cG9ydCBERUpBR05VPSIke1dPUktESVJ9L2RlamFnbnUvc2l0ZS5leHAiCisKKyAgICAjIEhBQ0s6IHRoaXMgd29ya3MgYXJvdW5kIHRoZSBjb25maWd1cmUgc2V0dGluZyBDWFggd2l0aCAtbm9zdGQqIGFyZ3MKKyAgICBzZWQgLWkgJ3MvLW5vc3RkaW5jKysgLW5vc3RkbGliKysvL2cnICQoZmluZCAke0J9IC1uYW1lIHRlc3RzdWl0ZV9mbGFncyB8IGhlYWQgLTEpCisgICAgIyBIQUNLOiB0aGlzIHdvcmtzIGFyb3VuZCB0aGUgZGUtc3Rhc2hpbmcgY2hhbmdlcyB0byBjb25maWdhcmdzLmgsIGFzIHdlbGwgYXMgcmVjaXBlLXN5c3Jvb3QgY2hhbmdpbmcgdGhlIGNvbnRlbnQKKyAgICBzZWQgLWkgJy9zdGF0aWMgY29uc3QgY2hhciBjb25maWd1cmF0aW9uX2FyZ3VtZW50cy9kJyAke0J9L2djYy9jb25maWdhcmdzLmgKKyAgICAke0NDfSAtdiAyPiYxIHwgZ3JlcCAiXkNvbmZpZ3VyZWQgd2l0aDoiIHwgXAorICAgICAgICBzZWQgJ3MvQ29uZmlndXJlZCB3aXRoOiBcKC4qXCkvc3RhdGljIGNvbnN0IGNoYXIgY29uZmlndXJhdGlvbl9hcmd1bWVudHNbXSA9ICJcMSI7L2cnID4+ICR7Qn0vZ2NjL2NvbmZpZ2FyZ3MuaAorCisgICAgaWYgWyAiJHtUT09MQ0hBSU5fVEVTVF9UQVJHRVR9IiA9ICJ1c2VyIiBdOyB0aGVuCisgICAgICAgICMgcWVtdSB1c2VyIGhhcyBpc3N1ZXMgYWxsb2NhdGluZyBsYXJnZSBhbW91bnRzIG9mIG1lbW9yeQorICAgICAgICBleHBvcnQgR19TTElDRT1hbHdheXMtbWFsbG9jCisgICAgICAgICMgbm8gdGVzdCBzaG91bGQgbmVlZCBtb3JlIHRoYXQgMTBHIG9mIG1lbW9yeSwgdGhpcyBwcmV2ZW50cyB0ZXN0cyBsaWtlIHB0aHJlYWQ3LXJvcGUgZnJvbSBsZWFraW5nIG1lbW9yeQorICAgICAgICB1bGltaXQgLW0gNDE5NDMwNAorICAgICAgICB1bGltaXQgLXYgMTA0ODU3NjAKKyAgICBmaQorCisgICAgb2VfcnVubWFrZSAtaSAke01BS0VfQ0hFQ0tfVEFSR0VUU30gUlVOVEVTVEZMQUdTPSIke01BS0VfQ0hFQ0tfUlVOVEVTVEZMQUdTfSIKK30KK2FkZHRhc2sgY2hlY2sgYWZ0ZXIgZG9fY29tcGlsZSBkb19wb3B1bGF0ZV9zeXNyb290CisKZGlmZiAtLWdpdCBhL3Bva3kvbWV0YS9yZWNpcGVzLWRldnRvb2xzL2djYy9nY2MtcnVudGltZV84LjMuYmIgYi9wb2t5L21ldGEvcmVjaXBlcy1kZXZ0b29scy9nY2MvZ2NjLXJ1bnRpbWVfOC4zLmJiCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkZDQzMGI1Li4wMDAwMDAwCi0tLSBhL3Bva3kvbWV0YS9yZWNpcGVzLWRldnRvb2xzL2djYy9nY2MtcnVudGltZV84LjMuYmIKKysrIC9kZXYvbnVsbApAQCAtMSwyICswLDAgQEAKLXJlcXVpcmUgcmVjaXBlcy1kZXZ0b29scy9nY2MvZ2NjLSR7UFZ9LmluYwotcmVxdWlyZSBnY2MtcnVudGltZS5pbmMKZGlmZiAtLWdpdCBhL3Bva3kvbWV0YS9yZWNpcGVzLWRldnRvb2xzL2djYy9nY2Mtc2FuaXRpemVyc184LjMuYmIgYi9wb2t5L21ldGEvcmVjaXBlcy1kZXZ0b29scy9nY2MvZ2NjLXNhbml0aXplcnNfOC4zLmJiCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmM2M3MDU4Li4wMDAwMDAwCi0tLSBhL3Bva3kvbWV0YS9yZWNpcGVzLWRldnRvb2xzL2djYy9nY2Mtc2FuaXRpemVyc184LjMuYmIKKysrIC9kZXYvbnVsbApAQCAtMSw3ICswLDAgQEAKLXJlcXVpcmUgcmVjaXBlcy1kZXZ0b29scy9nY2MvZ2NjLSR7UFZ9LmluYwotcmVxdWlyZSBnY2Mtc2FuaXRpemVycy5pbmMKLQotIyBCdWlsZGluZyB3aXRoIHRodW1iIGVuYWJsZWQgb24gYXJtdjR0IGFybXY1dCBmYWlscyB3aXRoCi0jIHNhbml0aXplcl9saW51eC5zOjU3NDk6IEVycm9yOiBsbyByZWdpc3RlciByZXF1aXJlZCAtLSBgbGRyIGlwLFtzcF0sIzgnCi1BUk1fSU5TVFJVQ1RJT05fU0VUX2FybXY0ID0gImFybSIKLUFSTV9JTlNUUlVDVElPTl9TRVRfYXJtdjUgPSAiYXJtIgpkaWZmIC0tZ2l0IGEvcG9reS9tZXRhL3JlY2lwZXMtZGV2dG9vbHMvZ2NjL2djYy1zb3VyY2VfOC4zLmJiIGIvcG9reS9tZXRhL3JlY2lwZXMtZGV2dG9vbHMvZ2NjL2djYy1zb3VyY2VfOC4zLmJiCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiODkwZmEzLi4wMDAwMDAwCi0tLSBhL3Bva3kvbWV0YS9yZWNpcGVzLWRldnRvb2xzL2djYy9nY2Mtc291cmNlXzguMy5iYgorKysgL2Rldi9udWxsCkBAIC0xLDQgKzAsMCBAQAotcmVxdWlyZSByZWNpcGVzLWRldnRvb2xzL2djYy9nY2MtJHtQVn0uaW5jCi1yZXF1aXJlIHJlY2lwZXMtZGV2dG9vbHMvZ2NjL2djYy1zb3VyY2UuaW5jCi0KLUVYQ0xVREVfRlJPTV9XT1JMRCA9ICIxIgpkaWZmIC0tZ2l0IGEvcG9reS9tZXRhL3JlY2lwZXMtZGV2dG9vbHMvZ2NjL2djYy10ZXN0c3VpdGUuaW5jIGIvcG9reS9tZXRhL3JlY2lwZXMtZGV2dG9vbHMvZ2NjL2djYy10ZXN0c3VpdGUuaW5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmY2OGZlYzUKLS0tIC9kZXYvbnVsbAorKysgYi9wb2t5L21ldGEvcmVjaXBlcy1kZXZ0b29scy9nY2MvZ2NjLXRlc3RzdWl0ZS5pbmMKQEAgLTAsMCArMSwxMDcgQEAKK2luaGVyaXQgcWVtdQorCitUT09MQ0hBSU5fVEVTVF9UQVJHRVQgPz89ICJ1c2VyIgorVE9PTENIQUlOX1RFU1RfSE9TVCA/Pz0gImxvY2FsaG9zdCIKK1RPT0xDSEFJTl9URVNUX0hPU1RfVVNFUiA/Pz0gInJvb3QiCitUT09MQ0hBSU5fVEVTVF9IT1NUX1BPUlQgPz89ICIyMjIyIgorCitNQUtFX0NIRUNLX0JPQVJERkxBR1MgPz89ICIiCitNQUtFX0NIRUNLX0JPQVJEQVJHUyA/Pz0gIi0tdGFyZ2V0X2JvYXJkPSR7VE9PTENIQUlOX1RFU1RfVEFSR0VUfSR7TUFLRV9DSEVDS19CT0FSREZMQUdTfSIKKworcHl0aG9uICgpIHsKKyAgICAjIFByb3ZpZGUgdGhlIHRhcmdldHMgY29tcGlsZXIgYXJncyB2aWEgdGFyZ2V0cyBvcHRpb25zLiBUaGlzIGFsbG93cyBkZWphZ251IHRvCisgICAgIyBjb3JyZWN0bHkgbWFyayBpbmNvbXBhdGlibGUgdGVzdHMgYXMgVU5TVVBQT1JURUQgKGUuZy4gbmVlZHMgc29mdC1mbG9hdAorICAgICMgYnV0IHJ1bm5pbmcgb24gaGFyZC1mbG9hdCB0YXJnZXQpLgorICAgICMKKyAgICAjIFRoZXNlIG9wdGlvbnMgYXJlIGNhbGxlZCAibXVsdGlsaWJfZmxhZ3MiIHdpdGhpbiB0aGUgZ2NjIHRlc3Qgc3VpdGUuIE1vc3QKKyAgICAjIGFyY2hpdGVjdHVyZXMgaGFuZGxlIHRoZXNlIG9wdGlvbnMgaW4gYSBzZW5zaWJsZSB3YXkgc3VjaCB0aGF0IHRlc3RzIHRoYXQKKyAgICAjIGFyZSBpbmNvbXBhdGlibGUgd2l0aCB0aGUgcHJvdmlkZWQgbXVsdGlsaWIgYXJlIG1hcmtlZCBhcyBVTlNVUFBPUlRFRC4KKyAgICAjCisgICAgIyBOb3RlOiBtdWx0aWxpYiBmbGFncyBhcmUgYWRkZWQgdG8gdGhlIGNvbXBpbGUgY29tbWFuZCBhZnRlciB0aGUgYXJncworICAgICMgcHJvdmlkZWQgYnkgYW55IHRlc3QgKHRocm91Z2ggZGctb3B0aW9ucyksIENGTEFHU19GT1JfVEFSR0VUIGlzIGFsd2F5cworICAgICMgYWRkZWQgdG8gdGhlIGNvbXBpbGUgY29tbWFuZCBiZWZvcmUgYW55IG90aGVyIGFyZ3MgYnV0IGlzIG5vdCBpbnRlcnB0ZWQKKyAgICAjIGFzIG9wdGlvbnMgbGlrZSBtdWx0aWxpYiBmbGFncy4KKyAgICAjCisgICAgIyBpNjg2LCB4ODYtNjQgYW5kIGFhcmNoNjQgYXJlIHNwZWNpYWwsIHNpbmNlIG1vc3QgdG9vbGNoYWlucyBidWlsdCBmb3IKKyAgICAjIHRoZXNlIHRhcmdldHMgZG9uJ3QgZG8gbXVsdGlsaWIgdGhlIHRlc3RzIGRvIG5vdCBnZXQgY29ycmVjdGx5IG1hcmtlZCBhcworICAgICMgVU5TVVBQT1JURUQuIE1vcmUgaW1wb3J0YW50bHkgdGhlIHRlc3Qgc3VpdGUgaXRzZWxmIGRvZXMgbm90IGhhbmRsZQorICAgICMgb3ZlcnJpZGluZyB0aGUgbXVsdGlsaWIgZmxhZ3Mgd2hlcmUgaXQgY291bGQgKGxpa2Ugb3RoZXIgYXJjaHMgZG8pLiBBcworICAgICMgc3VjaCBkbyBub3QgcGFzcyB0aGUgdGFyZ2V0IGNvbXBpbGVyIGFyZ3MgZm9yIHRoZXNlIHRhcmdldHMuCisgICAgYXJncyA9IGQuZ2V0VmFyKCJUVU5FX0NDQVJHUyIpLnNwbGl0KCkKKyAgICBpZiBkLmdldFZhcigiVFVORV9BUkNIIikgaW4gWyJpNjg2IiwgIng4Nl82NCIsICJhYXJjaDY0Il06CisgICAgICAgIGFyZ3MgPSBbXQorICAgIGQuc2V0VmFyKCJNQUtFX0NIRUNLX0JPQVJERkxBR1MiLCAoIi8iICsgIi8iLmpvaW4oYXJncykpIGlmIGxlbihhcmdzKSAhPSAwIGVsc2UgIiIpCit9CisKK3B5dGhvbiBjaGVja19wcmVwYXJlKCkgeworICAgIGRlZiBnZW5lcmF0ZV9xZW11X2xpbnV4X3VzZXJfY29uZmlnKGQpOgorICAgICAgICBjb250ZW50ID0gW10KKyAgICAgICAgY29udGVudC5hcHBlbmQoJ2xvYWRfZ2VuZXJpY19jb25maWcgInNpbSInKQorICAgICAgICBjb250ZW50LmFwcGVuZCgnbG9hZF9iYXNlX2JvYXJkX2Rlc2NyaXB0aW9uICJiYXNpYy1zaW0iJykKKyAgICAgICAgY29udGVudC5hcHBlbmQoJ3Byb2Nlc3NfbXVsdGlsaWJfb3B0aW9ucyAiIicpCisKKyAgICAgICAgIyBxZW11IGFyZ3MKKyAgICAgICAgcWVtdV9iaW5hcnkgPSBxZW11X3RhcmdldF9iaW5hcnkoZCkKKyAgICAgICAgaWYgbm90IHFlbXVfYmluYXJ5OgorICAgICAgICAgICAgYmIuZmF0YWwoIk1pc3NpbmcgdGFyZ2V0IHFlbXUgbGludXgtdXNlciBiaW5hcnkiKQorCisgICAgICAgIGFyZ3MgPSBbXQorICAgICAgICAjIFFFTVVfT1BUSU9OUyBpcyBub3QgYWx3YXlzIHZhbGlkIGR1ZSB0byAtY3Jvc3MgcmVjaXBlCisgICAgICAgIGFyZ3MgKz0gWyItciIsIGQuZ2V0VmFyKCJPTERFU1RfS0VSTkVMIildCisgICAgICAgICMgZW5hYmxlIGFsbCB2YWxpZCBpbnN0cnVjdGlvbnMsIHNpbmNlIHRoZSB0ZXN0IHN1aXRlIGl0c2VsZiBkb2VzIG5vdAorICAgICAgICAjIGxpbWl0IGl0c2VsZiB0byB0aGUgdGFyZ2V0IGNwdSBvcHRpb25zLgorICAgICAgICAjICAgLSB2YWxpZCBmb3IgeDg2KiwgcG93ZXJwYywgYXJtLCBhcm02NAorICAgICAgICBpZiBxZW11X2JpbmFyeS5sc3RyaXAoInFlbXUtIikgaW4gWyJ4ODZfNjQiLCAiaTM4NiIsICJwcGMiLCAiYXJtIiwgImFhcmNoNjQiXToKKyAgICAgICAgICAgIGFyZ3MgKz0gWyItY3B1IiwgIm1heCJdCisKKyAgICAgICAgc3lzcm9vdCA9IGQuZ2V0VmFyKCJSRUNJUEVfU1lTUk9PVCIpCisgICAgICAgIGFyZ3MgKz0gWyItTCIsIHN5c3Jvb3RdCisgICAgICAgICMgbGliIHBhdGhzIGFyZSBzdGF0aWMgaGVyZSBpbnN0ZWFkIG9mIHVzaW5nICRsaWJkaXIgc2luY2UgdGhpcyBpcyB1c2VkIGJ5IGEgLWNyb3NzIHJlY2lwZQorICAgICAgICBsaWJwYXRocyA9IFtzeXNyb290ICsgIi91c3IvbGliIiwgc3lzcm9vdCArICIvbGliIl0KKyAgICAgICAgYXJncyArPSBbIi1FIiwgIkxEX0xJQlJBUllfUEFUSD17MH0iLmZvcm1hdCgiOiIuam9pbihsaWJwYXRocykpXQorCisgICAgICAgIGNvbnRlbnQuYXBwZW5kKCdzZXRfYm9hcmRfaW5mbyBpc19zaW11bGF0b3IgMScpCisgICAgICAgIGNvbnRlbnQuYXBwZW5kKCdzZXRfYm9hcmRfaW5mbyBzaW0gInswfSInLmZvcm1hdChxZW11X2JpbmFyeSkpCisgICAgICAgIGNvbnRlbnQuYXBwZW5kKCdzZXRfYm9hcmRfaW5mbyBzaW0sb3B0aW9ucyAiezB9IicuZm9ybWF0KCIgIi5qb2luKGFyZ3MpKSkKKworICAgICAgICAjIHRhcmdldCBidWlsZC90ZXN0IGNvbmZpZworICAgICAgICBjb250ZW50LmFwcGVuZCgnc2V0X2JvYXJkX2luZm8gdGFyZ2V0X2luc3RhbGwgeyVzfScgJSBkLmdldFZhcigiVEFSR0VUX1NZUyIpKQorICAgICAgICBjb250ZW50LmFwcGVuZCgnc2V0X2JvYXJkX2luZm8gbGRzY3JpcHQgIiInKQorICAgICAgICAjY29udGVudC5hcHBlbmQoJ3NldF9ib2FyZF9pbmZvIG5lZWRzX3N0YXR1c193cmFwcGVyIDEnKSAjIHFlbXUtbGludXgtdXNlciByZXR1cm4gY29kZXMgd29yaywgYW5kIGFib3J0IHdvcmtzIGZpbmUKKyAgICAgICAgY29udGVudC5hcHBlbmQoJ3NldF9ib2FyZF9pbmZvIGdjYyxzdGFja19zaXplIDE2ODM0JykKKyAgICAgICAgY29udGVudC5hcHBlbmQoJ3NldF9ib2FyZF9pbmZvIGdkYixub3NpZ25hbHMgMScpCisgICAgICAgIGNvbnRlbnQuYXBwZW5kKCdzZXRfYm9hcmRfaW5mbyBnY2MsdGltZW91dCA2MCcpCisKKyAgICAgICAgcmV0dXJuICJcbiIuam9pbihjb250ZW50KQorCisgICAgZGVmIGdlbmVyYXRlX3JlbW90ZV9zc2hfbGludXhfY29uZmlnKGQpOgorICAgICAgICBjb250ZW50ID0gW10KKyAgICAgICAgY29udGVudC5hcHBlbmQoJ2xvYWRfZ2VuZXJpY19jb25maWcgInVuaXgiJykKKyAgICAgICAgY29udGVudC5hcHBlbmQoJ3Byb2Nlc3NfbXVsdGlsaWJfb3B0aW9ucyAiIicpCisgICAgICAgIGNvbnRlbnQuYXBwZW5kKCJzZXRfYm9hcmRfaW5mbyBob3N0bmFtZSB7MH0iLmZvcm1hdChkLmdldFZhcigiVE9PTENIQUlOX1RFU1RfSE9TVCIpKSkKKyAgICAgICAgY29udGVudC5hcHBlbmQoInNldF9ib2FyZF9pbmZvIHVzZXJuYW1lIHswfSIuZm9ybWF0KGQuZ2V0VmFyKCJUT09MQ0hBSU5fVEVTVF9IT1NUX1VTRVIiKSkpCisKKyAgICAgICAgcG9ydCA9IGQuZ2V0VmFyKCJUT09MQ0hBSU5fVEVTVF9IT1NUX1BPUlQiKQorICAgICAgICBjb250ZW50LmFwcGVuZCgic2V0X2JvYXJkX2luZm8gcnNoX3Byb2cgXCIvdXNyL2Jpbi9zc2ggLXAgezB9IC1vIFVzZXJLbm93bkhvc3RzRmlsZT0vZGV2L251bGwgLW8gU3RyaWN0SG9zdEtleUNoZWNraW5nPW5vXCIiLmZvcm1hdChwb3J0KSkKKyAgICAgICAgY29udGVudC5hcHBlbmQoInNldF9ib2FyZF9pbmZvIHJjcF9wcm9nIFwiL3Vzci9iaW4vc2NwIC1QIHswfSAtbyBVc2VyS25vd25Ib3N0c0ZpbGU9L2Rldi9udWxsIC1vIFN0cmljdEhvc3RLZXlDaGVja2luZz1ub1wiIi5mb3JtYXQocG9ydCkpCisKKyAgICAgICAgcmV0dXJuICJcbiIuam9pbihjb250ZW50KQorCisgICAgZGVqYWdudWRpciA9IGQuZXhwYW5kKCIke1dPUktESVJ9L2RlamFnbnUiKQorICAgIGlmIG5vdCBvcy5wYXRoLmlzZGlyKGRlamFnbnVkaXIpOgorICAgICAgICBvcy5tYWtlZGlycyhkZWphZ251ZGlyKQorCisgICAgIyB3cml0ZSBvdXQgdGFyZ2V0IHFlbXUgYm9hcmQgY29uZmlnCisgICAgd2l0aCBvcGVuKG9zLnBhdGguam9pbihkZWphZ251ZGlyLCAidXNlci5leHAiKSwgInciKSBhcyBmOgorICAgICAgICBmLndyaXRlKGdlbmVyYXRlX3FlbXVfbGludXhfdXNlcl9jb25maWcoZCkpCisKKyAgICAjIHdyaXRlIG91dCB0YXJnZXQgc3NoIGJvYXJkIGNvbmZpZworICAgIHdpdGggb3Blbihvcy5wYXRoLmpvaW4oZGVqYWdudWRpciwgInNzaC5leHAiKSwgInciKSBhcyBmOgorICAgICAgICBmLndyaXRlKGdlbmVyYXRlX3JlbW90ZV9zc2hfbGludXhfY29uZmlnKGQpKQorCisgICAgIyBnZW5lcmF0ZSBzaXRlLmV4cCB0byBwcm92aWRlIGJvYXJkcworICAgIHdpdGggb3Blbihvcy5wYXRoLmpvaW4oZGVqYWdudWRpciwgInNpdGUuZXhwIiksICJ3IikgYXMgZjoKKyAgICAgICAgZi53cml0ZSgibGFwcGVuZCBib2FyZHNfZGlyIHswfVxuIi5mb3JtYXQoZGVqYWdudWRpcikpCisgICAgICAgIGYud3JpdGUoInNldCBDRkxBR1NfRk9SX1RBUkdFVCBcInswfVwiXG4iLmZvcm1hdChkLmdldFZhcigiVE9PTENIQUlOX09QVElPTlMiKSkpCit9CisKZGlmZiAtLWdpdCBhL3Bva3kvbWV0YS9yZWNpcGVzLWRldnRvb2xzL2djYy9nY2NfOC4zLmJiIGIvcG9reS9tZXRhL3JlY2lwZXMtZGV2dG9vbHMvZ2NjL2djY184LjMuYmIKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDdkOTM1OTAuLjAwMDAwMDAKLS0tIGEvcG9reS9tZXRhL3JlY2lwZXMtZGV2dG9vbHMvZ2NjL2djY184LjMuYmIKKysrIC9kZXYvbnVsbApAQCAtMSwxNCArMCwwIEBACi1yZXF1aXJlIHJlY2lwZXMtZGV2dG9vbHMvZ2NjL2djYy0ke1BWfS5pbmMKLXJlcXVpcmUgZ2NjLXRhcmdldC5pbmMKLQotIyBCdWlsZGluZyB3aXRoIHRodW1iIGVuYWJsZWQgb24gYXJtdjR0IGFybXY1dCBmYWlscyB3aXRoCi0jIHwgZ2NjLTQuOC4xLXIwL2djYy00LjguMS9nY2MvY3AvZGVjbC5jOjc0Mzg6KC50ZXh0LnVubGlrZWx5KzB4MmZhKTogcmVsb2NhdGlvbiB0cnVuY2F0ZWQgdG8gZml0OiBSX0FSTV9USE1fQ0FMTCBhZ2FpbnN0IHN5bWJvbCBgZmFuY3lfYWJvcnQoY2hhciBjb25zdCosIGludCwgY2hhciBjb25zdCopJyBkZWZpbmVkIGluIC5nbHVlXzcgc2VjdGlvbiBpbiBsaW5rZXIgc3R1YnMKLSMgfCBnY2MtNC44LjEtcjAvZ2NjLTQuOC4xL2djYy9jcC9kZWNsLmM6NzQ0MjooLnRleHQudW5saWtlbHkrMHgzMTgpOiBhZGRpdGlvbmFsIHJlbG9jYXRpb24gb3ZlcmZsb3dzIG9taXR0ZWQgZnJvbSB0aGUgb3V0cHV0Ci1BUk1fSU5TVFJVQ1RJT05fU0VUX2FybXY0ID0gImFybSIKLUFSTV9JTlNUUlVDVElPTl9TRVRfYXJtdjUgPSAiYXJtIgotCi1BUk1GUEFSQ0hFWFRfYXJtdjYgPSAiJHtAJytmcCcgaWYgZC5nZXRWYXIoJ1RBUkdFVF9GUFUnKSA9PSAnaGFyZCcgZWxzZSAnJ30iCi1BUk1GUEFSQ0hFWFRfYXJtdjdhID0gIiR7QCcrZnAnIGlmIGQuZ2V0VmFyKCdUQVJHRVRfRlBVJykgPT0gJ2hhcmQnIGVsc2UgJyd9IgotQVJNRlBBUkNIRVhUX2FybXY3dmUgPSAiJHtAJytmcCcgaWYgZC5nZXRWYXIoJ1RBUkdFVF9GUFUnKSA9PSAnaGFyZCcgZWxzZSAnJ30iCi0KLUJCQ0xBU1NFWFRFTkQgPSAibmF0aXZlc2RrIgpkaWZmIC0tZ2l0IGEvcG9reS9tZXRhL3JlY2lwZXMtZGV2dG9vbHMvZ2NjL2xpYmdjYy1pbml0aWFsXzguMy5iYiBiL3Bva3kvbWV0YS9yZWNpcGVzLWRldnRvb2xzL2djYy9saWJnY2MtaW5pdGlhbF84LjMuYmIKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDBjNjk4YzIuLjAwMDAwMDAKLS0tIGEvcG9reS9tZXRhL3JlY2lwZXMtZGV2dG9vbHMvZ2NjL2xpYmdjYy1pbml0aWFsXzguMy5iYgorKysgL2Rldi9udWxsCkBAIC0xLDUgKzAsMCBAQAotcmVxdWlyZSByZWNpcGVzLWRldnRvb2xzL2djYy9nY2MtJHtQVn0uaW5jCi1yZXF1aXJlIGxpYmdjYy1pbml0aWFsLmluYwotCi0jIEJ1aWxkaW5nIHdpdGggdGh1bWIgZW5hYmxlZCBvbiBhcm12NnQgZmFpbHMKLUFSTV9JTlNUUlVDVElPTl9TRVRfYXJtdjYgPSAiYXJtIgpkaWZmIC0tZ2l0IGEvcG9reS9tZXRhL3JlY2lwZXMtZGV2dG9vbHMvZ2NjL2xpYmdjY184LjMuYmIgYi9wb2t5L21ldGEvcmVjaXBlcy1kZXZ0b29scy9nY2MvbGliZ2NjXzguMy5iYgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZWEyMTBhMS4uMDAwMDAwMAotLS0gYS9wb2t5L21ldGEvcmVjaXBlcy1kZXZ0b29scy9nY2MvbGliZ2NjXzguMy5iYgorKysgL2Rldi9udWxsCkBAIC0xLDUgKzAsMCBAQAotcmVxdWlyZSByZWNpcGVzLWRldnRvb2xzL2djYy9nY2MtJHtQVn0uaW5jCi1yZXF1aXJlIGxpYmdjYy5pbmMKLQotIyBCdWlsZGluZyB3aXRoIHRodW1iIGVuYWJsZWQgb24gYXJtdjZ0IGZhaWxzCi1BUk1fSU5TVFJVQ1RJT05fU0VUX2FybXY2ID0gImFybSIKZGlmZiAtLWdpdCBhL3Bva3kvbWV0YS9yZWNpcGVzLWRldnRvb2xzL2djYy9saWJnZm9ydHJhbl84LjMuYmIgYi9wb2t5L21ldGEvcmVjaXBlcy1kZXZ0b29scy9nY2MvbGliZ2ZvcnRyYW5fOC4zLmJiCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3MWRkOGI0Li4wMDAwMDAwCi0tLSBhL3Bva3kvbWV0YS9yZWNpcGVzLWRldnRvb2xzL2djYy9saWJnZm9ydHJhbl84LjMuYmIKKysrIC9kZXYvbnVsbApAQCAtMSwzICswLDAgQEAKLXJlcXVpcmUgcmVjaXBlcy1kZXZ0b29scy9nY2MvZ2NjLSR7UFZ9LmluYwotcmVxdWlyZSBsaWJnZm9ydHJhbi5pbmMKLQpkaWZmIC0tZ2l0IGEvcG9reS9tZXRhL3JlY2lwZXMtZGV2dG9vbHMvZ28vZ28tMS4xMi5pbmMgYi9wb2t5L21ldGEvcmVjaXBlcy1kZXZ0b29scy9nby9nby0xLjEyLmluYwppbmRleCAzZjIzZjA2Li4zOTE1N2ZmIDEwMDY0NAotLS0gYS9wb2t5L21ldGEvcmVjaXBlcy1kZXZ0b29scy9nby9nby0xLjEyLmluYworKysgYi9wb2t5L21ldGEvcmVjaXBlcy1kZXZ0b29scy9nby9nby0xLjEyLmluYwpAQCAtMSw3ICsxLDcgQEAKIHJlcXVpcmUgZ28tY29tbW9uLmluYwogCiBHT19CQVNFVkVSU0lPTiA9ICIxLjEyIgotR09fTUlOT1IgPSAiLjYiCitHT19NSU5PUiA9ICIuOSIKIFBWIC49ICIke0dPX01JTk9SfSIKIEZJTEVTRVhUUkFQQVRIU19wcmVwZW5kIDo9ICIke0ZJTEVfRElSTkFNRX0vZ28tJHtHT19CQVNFVkVSU0lPTn06IgogCkBAIC0xOSw1ICsxOSw1IEBACiAiCiBTUkNfVVJJX2FwcGVuZF9saWJjLW11c2wgPSAiIGZpbGU6Ly8wMDA5LWxkLXJlcGxhY2UtZ2xpYmMtZHluYW1pYy1saW5rZXItd2l0aC1tdXNsLnBhdGNoIgogCi1TUkNfVVJJW21haW4ubWQ1c3VtXSA9ICI0OGE0MTQxZmM3MThkZDc0MmQxMDY0MzEyOTRmMDhiZiIKLVNSQ19VUklbbWFpbi5zaGEyNTZzdW1dID0gImM5NmM1Y2NjNzQ1NTYzOGFlMWE4Yjc0OThhMDMwZmU2NTM3MzFjODM5MWM1ZjhlNzk1OTBiY2U3MmY5MmI0Y2EiCitTUkNfVVJJW21haW4ubWQ1c3VtXSA9ICI2MTMyMTA5ZDQwNTBkYTM0OWVhZGM5ZjdiMDMwNGVmNCIKK1NSQ19VUklbbWFpbi5zaGEyNTZzdW1dID0gImFiMGU1NmVkOWM0NzMyYTY1M2VkMjJlMjMyNjUyNzA5YWZiZjU3M2U3MTBmNTZhMDdmN2ZkZWNhNTc4ZDYyZmMiCmRpZmYgLS1naXQgYS9wb2t5L21ldGEvcmVjaXBlcy1kZXZ0b29scy9nby9nby1kZXBfMC41LjAuYmIgYi9wb2t5L21ldGEvcmVjaXBlcy1kZXZ0b29scy9nby9nby1kZXBfMC41LjQuYmIKc2ltaWxhcml0eSBpbmRleCA5MCUKcmVuYW1lIGZyb20gcG9reS9tZXRhL3JlY2lwZXMtZGV2dG9vbHMvZ28vZ28tZGVwXzAuNS4wLmJiCnJlbmFtZSB0byBwb2t5L21ldGEvcmVjaXBlcy1kZXZ0b29scy9nby9nby1kZXBfMC41LjQuYmIKaW5kZXggYTRkNjMxZi4uZWFkODc4NyAxMDA2NDQKLS0tIGEvcG9reS9tZXRhL3JlY2lwZXMtZGV2dG9vbHMvZ28vZ28tZGVwXzAuNS4wLmJiCisrKyBiL3Bva3kvbWV0YS9yZWNpcGVzLWRldnRvb2xzL2dvL2dvLWRlcF8wLjUuNC5iYgpAQCAtOCw4ICs4LDcgQEAKICAgICAgICAgICAgZmlsZTovLzAwMDEtQWRkLXN1cHBvcnQtZm9yLW1pcHMtbWlwczY0LnBhdGNoO3BhdGNoZGlyPXNyYy9naXRodWIuY29tL2dvbGFuZy9kZXAgXAogICAgICAgICAgICIKIAotIyBQb2ludHMgdG8gMC41LjAgdGFnCi1TUkNSRVYgPSAiMjI0YTU2NGFiZTI5NjY3MGI2OTJmZTA4YmI2M2EzZTRjNGFkNzk3OCIKK1NSQ1JFViA9ICIxZjdjMTllNWY1MmY0OWZmYjlmOTU2ZjY0YzAxMGJlMTQ2ODM0NjhiIgogCiBpbmhlcml0IGdvCiAKZGlmZiAtLWdpdCBhL3Bva3kvbWV0YS9yZWNpcGVzLWRldnRvb2xzL2hlbHAybWFuL2hlbHAybWFuLW5hdGl2ZV8xLjQ3LjEwLmJiIGIvcG9reS9tZXRhL3JlY2lwZXMtZGV2dG9vbHMvaGVscDJtYW4vaGVscDJtYW4tbmF0aXZlXzEuNDcuMTEuYmIKc2ltaWxhcml0eSBpbmRleCA3OSUKcmVuYW1lIGZyb20gcG9reS9tZXRhL3JlY2lwZXMtZGV2dG9vbHMvaGVscDJtYW4vaGVscDJtYW4tbmF0aXZlXzEuNDcuMTAuYmIKcmVuYW1lIHRvIHBva3kvbWV0YS9yZWNpcGVzLWRldnRvb2xzL2hlbHAybWFuL2hlbHAybWFuLW5hdGl2ZV8xLjQ3LjExLmJiCmluZGV4IDVmZWFlZWEuLmE2MGU4NTEgMTAwNjQ0Ci0tLSBhL3Bva3kvbWV0YS9yZWNpcGVzLWRldnRvb2xzL2hlbHAybWFuL2hlbHAybWFuLW5hdGl2ZV8xLjQ3LjEwLmJiCisrKyBiL3Bva3kvbWV0YS9yZWNpcGVzLWRldnRvb2xzL2hlbHAybWFuL2hlbHAybWFuLW5hdGl2ZV8xLjQ3LjExLmJiCkBAIC01LDggKzUsOCBAQAogREVQRU5EUyA9ICJhdXRvY29uZi1uYXRpdmUgYXV0b21ha2UtbmF0aXZlIgogCiBTUkNfVVJJID0gIiR7R05VX01JUlJPUn0vJHtCUE59LyR7QlBOfS0ke1BWfS50YXIueHoiCi1TUkNfVVJJW21kNXN1bV0gPSAiMGQ3MDgzMzY1MGE1NTJlMGFmNzQyODgyYmE4NGYyZWUiCi1TUkNfVVJJW3NoYTI1NnN1bV0gPSAiZjM3MWNiZmQ2M2Y4NzkwNjU0MjJiNThmYTZiODFlMjE4NzBjZDc5MWVmNmUxMWQ0NTI4NjA4MjA0YWE0ZGNmYiIKK1NSQ19VUklbbWQ1c3VtXSA9ICJkZDMyMmFkY2FlZGU1YmQ1ZWFlZDA3NWZmODk3MWJjMSIKK1NSQ19VUklbc2hhMjU2c3VtXSA9ICI1OTg1YjI1N2Y4NjMwNGM4NzkxODQyYzBjODA3YTM3NTQxZDBkNjgwN2VlOTczMDAwY2Y4YTNmZTZhZDQ3Yjg4IgogCiBpbmhlcml0IGF1dG90b29scyBuYXRpdmUKIApkaWZmIC0tZ2l0IGEvcG9reS9tZXRhL3JlY2lwZXMtZGV2dG9vbHMvbGliZWRpdC9saWJlZGl0LzAwMDEtcmVhZGxpbmUuYy1maXgtY2Fubm90LWdldC1oaXN0b3J5LnBhdGNoIGIvcG9reS9tZXRhL3JlY2lwZXMtZGV2dG9vbHMvbGliZWRpdC9saWJlZGl0LzAwMDEtcmVhZGxpbmUuYy1maXgtY2Fubm90LWdldC1oaXN0b3J5LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjdlNTRhYzkKLS0tIC9kZXYvbnVsbAorKysgYi9wb2t5L21ldGEvcmVjaXBlcy1kZXZ0b29scy9saWJlZGl0L2xpYmVkaXQvMDAwMS1yZWFkbGluZS5jLWZpeC1jYW5ub3QtZ2V0LWhpc3RvcnkucGF0Y2gKQEAgLTAsMCArMSwzNCBAQAorRnJvbSBlZjFmYTliZWY0OTdkOTQ5MWE1MTAxN2YzY2FkMDEzNWEyM2JiMGI0IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogQ2hhbmdxaW5nIExpIDxjaGFuZ3FpbmcubGlAd2luZHJpdmVyLmNvbT4KK0RhdGU6IFR1ZSwgMjAgQXVnIDIwMTkgMTc6MzM6MTUgKzA4MDAKK1N1YmplY3Q6IFtQQVRDSF0gcmVhZGxpbmUuYzogZml4IGNhbm5vdCBnZXQgaGlzdG9yeQorCitpZiBoaXN0b3J5X29mZnNldCBub3QgaW5jcmVhdGUgd2hlbiBhZGQgaGlzdG9yeSwKK2l0IHdpbGwgbWFrZSBjdXJyZW50IGhpc3RvcnkgZXZlbnQgbm90IGFsaWduIHdpdGggb2Zmc2V0LAorYW5kIGNhbm5vdCBnZXQgaGlzdG9yeSBjb3JyZWN0bHkuCisKK1Vwc3RyZWFtLVN0YXR1czogU3VibWl0dGVkIFt0ZWNoLXVzZXJsZXZlbEBOZXRCU0Qub3JnXSAKKworU2lnbmVkLW9mZi1ieTogQ2hhbmdxaW5nIExpIDxjaGFuZ3FpbmcubGlAd2luZHJpdmVyLmNvbT4KKy0tLQorIHNyYy9yZWFkbGluZS5jIHwgMyArKysKKyAxIGZpbGUgY2hhbmdlZCwgMyBpbnNlcnRpb25zKCspCisKK2RpZmYgLS1naXQgYS9zcmMvcmVhZGxpbmUuYyBiL3NyYy9yZWFkbGluZS5jCitpbmRleCA0M2FjNWJkLi41NGIwNTQ4IDEwMDY0NAorLS0tIGEvc3JjL3JlYWRsaW5lLmMKKysrKyBiL3NyYy9yZWFkbGluZS5jCitAQCAtMTQ3Niw3ICsxNDc2LDEwIEBAIGFkZF9oaXN0b3J5KGNvbnN0IGNoYXIgKmxpbmUpCisgCWlmIChldi5udW0gPT0gaGlzdG9yeV9sZW5ndGgpCisgCQloaXN0b3J5X2Jhc2UrKzsKKyAJZWxzZQorKyAgICAgICAgeworKyAgICAgICAgICAgICAgICBoaXN0b3J5X29mZnNldCsrOworIAkJaGlzdG9yeV9sZW5ndGggPSBldi5udW07CisrICAgICAgICB9CisgCXJldHVybiAwOworIH0KKyAKKy0tIAorMi43LjQKKwpkaWZmIC0tZ2l0IGEvcG9reS9tZXRhL3JlY2lwZXMtZGV2dG9vbHMvbGliZWRpdC9saWJlZGl0XzIwMTkwMzI0LTMuMS5iYiBiL3Bva3kvbWV0YS9yZWNpcGVzLWRldnRvb2xzL2xpYmVkaXQvbGliZWRpdF8yMDE5MDMyNC0zLjEuYmIKaW5kZXggNmE1OTllYi4uMjU2NjdjYyAxMDA2NDQKLS0tIGEvcG9reS9tZXRhL3JlY2lwZXMtZGV2dG9vbHMvbGliZWRpdC9saWJlZGl0XzIwMTkwMzI0LTMuMS5iYgorKysgYi9wb2t5L21ldGEvcmVjaXBlcy1kZXZ0b29scy9saWJlZGl0L2xpYmVkaXRfMjAxOTAzMjQtMy4xLmJiCkBAIC0xMCwxMCArMTAsOSBAQAogCiBpbmhlcml0IGF1dG90b29scwogCi0jIHVwc3RyZWFtIHNpdGUgZG9lcyBub3QgYWxsb3cgd2dldCdzIFVzZXItQWdlbnQKLUZFVENIQ01EX3dnZXQgKz0gIi1VIGJpdGJha2UiCiBTUkNfVVJJID0gImh0dHA6Ly93d3cudGhyeXNvZWUuZGsvZWRpdGxpbmUvJHtCUH0udGFyLmd6IFwKICAgICAgICAgICAgZmlsZTovL3N0ZGMtcHJlZGVmLnBhdGNoIFwKKyAgICAgICAgICAgZmlsZTovLzAwMDEtcmVhZGxpbmUuYy1maXgtY2Fubm90LWdldC1oaXN0b3J5LnBhdGNoIFwKICAgICAgICAgICAiCiBTUkNfVVJJW21kNXN1bV0gPSAiYmVjNzU1YzgwNDRhZDg0Yjc1MmRmZTQ5YTBiMzcxZDgiCiBTUkNfVVJJW3NoYTI1NnN1bV0gPSAiYWM4ZjBmNTFjMWNmNjU0OTJlNGQxZTNlZDJiZTM2MGJkYTQxZTU0NjMzNDQ0NjY2NDIyZmJmMzkzYmJhMWJhZSIKZGlmZiAtLWdpdCBhL3Bva3kvbWV0YS9yZWNpcGVzLWRldnRvb2xzL2xsdm0vbGx2bV9naXQuYmIgYi9wb2t5L21ldGEvcmVjaXBlcy1kZXZ0b29scy9sbHZtL2xsdm1fZ2l0LmJiCmluZGV4IDM1YWQzY2UuLjA4YjE5YTMgMTAwNjQ0Ci0tLSBhL3Bva3kvbWV0YS9yZWNpcGVzLWRldnRvb2xzL2xsdm0vbGx2bV9naXQuYmIKKysrIGIvcG9reS9tZXRhL3JlY2lwZXMtZGV2dG9vbHMvbGx2bS9sbHZtX2dpdC5iYgpAQCAtNzEsNyArNzEsNyBAQAogICAgICAgICAgICAgICAgICAgLURMTFZNX09QVElNSVpFRF9UQUJMRUdFTj1PTiBcCiAgICAgICAgICAgICAgICAgICAtRExMVk1fVEFSR0VUU19UT19CVUlMRD0nJHtMTFZNX1RBUkdFVFN9JyBcCiAgICAgICAgICAgICAgICAgICAtRExMVk1fVEVNUE9SQVJJTFlfQUxMT1dfT0xEX1RPT0xDSEFJTj1PTiBcCi0gICAgICAgICAgICAgICAgICAtRFBZVEhPTl9FWEVDVVRBQkxFPSR7SE9TVFRPT0xTX0RJUn0vcHl0aG9uMiBcCisgICAgICAgICAgICAgICAgICAtRFBZVEhPTl9FWEVDVVRBQkxFPSR7SE9TVFRPT0xTX0RJUn0vcHl0aG9uMyBcCiAgICAgICAgICAgICAgICAgICAtRyBOaW5qYSIKIAogRVhUUkFfT0VDTUFLRV9hcHBlbmRfY2xhc3MtdGFyZ2V0ID0gIlwKZGlmZiAtLWdpdCBhL3Bva3kvbWV0YS9yZWNpcGVzLWRldnRvb2xzL21lc29uL21lc29uLmluYyBiL3Bva3kvbWV0YS9yZWNpcGVzLWRldnRvb2xzL21lc29uL21lc29uLmluYwppbmRleCAxNGU1ZjhhLi42ZGUxMDlkIDEwMDY0NAotLS0gYS9wb2t5L21ldGEvcmVjaXBlcy1kZXZ0b29scy9tZXNvbi9tZXNvbi5pbmMKKysrIGIvcG9reS9tZXRhL3JlY2lwZXMtZGV2dG9vbHMvbWVzb24vbWVzb24uaW5jCkBAIC0xNiwxMCArMTYsOSBAQAogICAgICAgICAgICBmaWxlOi8vMDAwMS1tZXNvbmJ1aWxkLWVudmlyb25tZW50LnB5LWNoZWNrLWVudmlyb25tZW50LWZvci12YXJpLnBhdGNoIFwKICAgICAgICAgICAgZmlsZTovLzAwMDEtbW9kdWxlcy1weXRob24ucHktZG8tbm90LXN1YnN0aXR1dGUtcHl0aG9uLXMtaW5zdGFsbC5wYXRjaCBcCiAgICAgICAgICAgIGZpbGU6Ly92YWxhLWNyb3NzLWNvbXBpbGUucGF0Y2ggXAotICAgICAgICAgICBmaWxlOi8vMDAwMS1GaXgtbWlzc2luZy1yZXR1cm4tc3RhdGVtZW50cy10aGF0LWFyZS1zZWVuLXdpdGgtV2VyLnBhdGNoIFwKICAgICAgICAgICAgIgotU1JDX1VSSVtzaGEyNTZzdW1dID0gImYyN2I3YTYwZjMzOWJhNjZmZTRiOGY4MWYwZDEwNzJlMDkwYTA4ZWFiYmQ2YWEyODc2ODNiMmMyYjlkZDJkODIiCi1TUkNfVVJJW21kNXN1bV0gPSAiNDg3ODdlMzkxZWM1YzA1Mjc5OWEzZGQ0OTFmNzM5MDkiCitTUkNfVVJJW3NoYTI1NnN1bV0gPSAiMjM2ODhmMGZjOTBiZTYyM2Q5OGU4MGUxZGVmZWVhOTJiYmI3MTAzYmY5MzM2YTVmNWI5ODY1ZDM2ZTg5MmQ3NiIKK1NSQ19VUklbbWQ1c3VtXSA9ICJkNDZjNGE4ZTNjZmQyN2Y5MGUyYzZmZTRhNjllNTc0YiIKIAogU1JDX1VSSV9hcHBlbmRfY2xhc3MtbmF0aXZlID0gIiBcCiAgICAgZmlsZTovLzAwMDEtTWFrZS1DUFUtZmFtaWx5LXdhcm5pbmdzLWZhdGFsLnBhdGNoIFwKZGlmZiAtLWdpdCBhL3Bva3kvbWV0YS9yZWNpcGVzLWRldnRvb2xzL21lc29uL21lc29uLzAwMDEtRml4LW1pc3NpbmctcmV0dXJuLXN0YXRlbWVudHMtdGhhdC1hcmUtc2Vlbi13aXRoLVdlci5wYXRjaCBiL3Bva3kvbWV0YS9yZWNpcGVzLWRldnRvb2xzL21lc29uL21lc29uLzAwMDEtRml4LW1pc3NpbmctcmV0dXJuLXN0YXRlbWVudHMtdGhhdC1hcmUtc2Vlbi13aXRoLVdlci5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMTZjNmQ5MC4uMDAwMDAwMAotLS0gYS9wb2t5L21ldGEvcmVjaXBlcy1kZXZ0b29scy9tZXNvbi9tZXNvbi8wMDAxLUZpeC1taXNzaW5nLXJldHVybi1zdGF0ZW1lbnRzLXRoYXQtYXJlLXNlZW4td2l0aC1XZXIucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwxMDAgKzAsMCBAQAotRnJvbSAxNWY0NGJlMWM3ZjcxY2IwYThjNjg2MzkxN2FjYmJjMzAxYzYyMWZlIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogTWFydGluIExpc2thIDxtbGlza2FAc3VzZS5jej4KLURhdGU6IE1vbiwgMTUgSnVsIDIwMTkgMTA6MDY6MTcgKzAyMDAKLVN1YmplY3Q6IFtQQVRDSF0gRml4IG1pc3NpbmcgcmV0dXJuIHN0YXRlbWVudHMgdGhhdCBhcmUgc2VlbiB3aXRoCi0gLVdlcnJvcj1yZXR1cm4tdHlwZS4KLQotRXJyb3IgZXhhbXBsZToKLQotQ29kZToKLQotICAgICAgICAjaW5jbHVkZSA8bG9jYWxlLmg+Ci0gICAgICAgIGludCBtYWluICgpIHsKLSAgICAgICAgICAgIC8qIElmIGl0J3Mgbm90IGRlZmluZWQgYXMgYSBtYWNybywgdHJ5IHRvIHVzZSBhcyBhIHN5bWJvbCAqLwotICAgICAgICAgICAgI2lmbmRlZiBMQ19NRVNTQUdFUwotICAgICAgICAgICAgICAgIExDX01FU1NBR0VTOwotICAgICAgICAgICAgI2VuZGlmCi0gICAgICAgIH0KLUNvbXBpbGVyIHN0ZG91dDoKLQotQ29tcGlsZXIgc3RkZXJyOgotIEluIGZpbGUgaW5jbHVkZWQgZnJvbSAvdXNyL2luY2x1ZGUvbG9jYWxlLmg6MjUsCi0gICAgICAgICAgICAgICAgIGZyb20gL3RtcC90bXBlcF9pNGl3Zy90ZXN0ZmlsZS5jOjI6Ci0vdXNyL2luY2x1ZGUvZmVhdHVyZXMuaDozODI6NDogd2FybmluZzogI3dhcm5pbmcgX0ZPUlRJRllfU09VUkNFCi1yZXF1aXJlcyBjb21waWxpbmcgd2l0aCBvcHRpbWl6YXRpb24gKC1PKSBbLVdjcHBdCi0gIDM4MiB8ICMgIHdhcm5pbmcgX0ZPUlRJRllfU09VUkNFIHJlcXVpcmVzIGNvbXBpbGluZyB3aXRoIG9wdGltaXphdGlvbgotKC1PKQotICAgICAgfCAgICBefn5+fn5+Ci0vdG1wL3RtcGVwX2k0aXdnL3Rlc3RmaWxlLmM6IEluIGZ1bmN0aW9uICdtYWluJzoKLS90bXAvdG1wZXBfaTRpd2cvdGVzdGZpbGUuYzo4Ojk6IGVycm9yOiBjb250cm9sIHJlYWNoZXMgZW5kIG9mIG5vbi12b2lkCi1mdW5jdGlvbiBbLVdlcnJvcj1yZXR1cm4tdHlwZV0KLSAgICA4IHwgICAgICAgICB9Ci0gICAgICB8ICAgICAgICAgXgotY2MxOiBzb21lIHdhcm5pbmdzIGJlaW5nIHRyZWF0ZWQgYXMgZXJyb3JzCi0KLVVwc3RyZWFtLVN0YXR1czogQmFja3BvcnQKLVNpZ25lZC1vZmYtYnk6IE1hcnRpbiBKYW5zYSA8TWFydGluLkphbnNhQGdtYWlsLmNvbT4KLS0tLQotIG1lc29uYnVpbGQvY29tcGlsZXJzL2MucHkgICAgIHwgMSArCi0gbWVzb25idWlsZC9jb21waWxlcnMvY2xpa2UucHkgfCA1ICsrKysrCi0gMiBmaWxlcyBjaGFuZ2VkLCA2IGluc2VydGlvbnMoKykKLQotZGlmZiAtLWdpdCBhL21lc29uYnVpbGQvY29tcGlsZXJzL2MucHkgYi9tZXNvbmJ1aWxkL2NvbXBpbGVycy9jLnB5Ci1pbmRleCAzYjU4YTA3Ni4uOWVmOTIwNzcgMTAwNjQ0Ci0tLS0gYS9tZXNvbmJ1aWxkL2NvbXBpbGVycy9jLnB5Ci0rKysgYi9tZXNvbmJ1aWxkL2NvbXBpbGVycy9jLnB5Ci1AQCAtNzAsNiArNzAsNyBAQCBjbGFzcyBDQ29tcGlsZXIoQ0xpa2VDb21waWxlciwgQ29tcGlsZXIpOgotICAgICAgICAgICAgICNpZm5kZWYge3N5bWJvbH0KLSAgICAgICAgICAgICAgICAge3N5bWJvbH07Ci0gICAgICAgICAgICAgI2VuZGlmCi0rICAgICAgICAgICAgcmV0dXJuIDA7Ci0gICAgICAgICB9fScnJwotICAgICAgICAgcmV0dXJuIHNlbGYuY29tcGlsZXModC5mb3JtYXQoKipmYXJncyksIGVudiwgZXh0cmFfYXJncz1leHRyYV9hcmdzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVwZW5kZW5jaWVzPWRlcGVuZGVuY2llcykKLWRpZmYgLS1naXQgYS9tZXNvbmJ1aWxkL2NvbXBpbGVycy9jbGlrZS5weSBiL21lc29uYnVpbGQvY29tcGlsZXJzL2NsaWtlLnB5Ci1pbmRleCA4M2Y2NzU5MS4uZjljYmVhYmQgMTAwNjQ0Ci0tLS0gYS9tZXNvbmJ1aWxkL2NvbXBpbGVycy9jbGlrZS5weQotKysrIGIvbWVzb25idWlsZC9jb21waWxlcnMvY2xpa2UucHkKLUBAIC0zNzUsNiArMzc1LDcgQEAgY2xhc3MgQ0xpa2VDb21waWxlcjoKLSAgICAgICAgICAgICAjaWZuZGVmIHtzeW1ib2x9Ci0gICAgICAgICAgICAgICAgIHtzeW1ib2x9OwotICAgICAgICAgICAgICNlbmRpZgotKyAgICAgICAgICAgIHJldHVybiAwOwotICAgICAgICAgfX0nJycKLSAgICAgICAgIHJldHVybiBzZWxmLmNvbXBpbGVzKHQuZm9ybWF0KCoqZmFyZ3MpLCBlbnYsIGV4dHJhX2FyZ3M9ZXh0cmFfYXJncywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlcGVuZGVuY2llcz1kZXBlbmRlbmNpZXMpCi1AQCAtNTU0LDYgKzU1NSw3IEBAIGNsYXNzIENMaWtlQ29tcGlsZXI6Ci0gICAgICAgICB7cHJlZml4fQotICAgICAgICAgaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KSB7ewotICAgICAgICAgICAgIHt0eXBlfSBzb21ldGhpbmc7Ci0rICAgICAgICAgICAgcmV0dXJuIDA7Ci0gICAgICAgICB9fScnJwotICAgICAgICAgaWYgbm90IHNlbGYuY29tcGlsZXModC5mb3JtYXQoKipmYXJncyksIGVudiwgZXh0cmFfYXJncz1leHRyYV9hcmdzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVwZW5kZW5jaWVzPWRlcGVuZGVuY2llcylbMF06Ci1AQCAtNTg5LDYgKzU5MSw3IEBAIGNsYXNzIENMaWtlQ29tcGlsZXI6Ci0gICAgICAgICB7cHJlZml4fQotICAgICAgICAgaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KSB7ewotICAgICAgICAgICAgIHt0eXBlfSBzb21ldGhpbmc7Ci0rICAgICAgICAgICAgcmV0dXJuIDA7Ci0gICAgICAgICB9fScnJwotICAgICAgICAgaWYgbm90IHNlbGYuY29tcGlsZXModC5mb3JtYXQoKipmYXJncyksIGVudiwgZXh0cmFfYXJncz1leHRyYV9hcmdzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVwZW5kZW5jaWVzPWRlcGVuZGVuY2llcylbMF06Ci1AQCAtNjY3LDYgKzY3MCw3IEBAIGNsYXNzIENMaWtlQ29tcGlsZXI6Ci0gICAgICAgICAjaW5jbHVkZSA8c3RkaW8uaD4KLSAgICAgICAgIGludCBtYWluKGludCBhcmdjLCBjaGFyICphcmd2W10pIHt7Ci0gICAgICAgICAgICAgcHJpbnRmICgie2ZtdH0iLCB7Y2FzdH0ge2Z9KCkpOwotKyAgICAgICAgICAgIHJldHVybiAwOwotICAgICAgICAgfX0nJycuZm9ybWF0KCoqZmFyZ3MpCi0gICAgICAgICByZXMgPSBzZWxmLnJ1bihjb2RlLCBlbnYsIGV4dHJhX2FyZ3M9ZXh0cmFfYXJncywgZGVwZW5kZW5jaWVzPWRlcGVuZGVuY2llcykKLSAgICAgICAgIGlmIG5vdCByZXMuY29tcGlsZWQ6Ci1AQCAtODE5LDYgKzgyMyw3IEBAIGNsYXNzIENMaWtlQ29tcGlsZXI6Ci0gICAgICAgICAgICAgICAgICNlcnJvciAiTm8gZGVmaW5pdGlvbiBmb3IgX19idWlsdGluX3tmdW5jfSBmb3VuZCBpbiB0aGUgcHJlZml4IgotICAgICAgICAgICAgICNlbmRpZgotICAgICAgICAgI2VuZGlmCi0rICAgICAgICByZXR1cm4gMDsKLSAgICAgICAgIH19JycnCi0gICAgICAgICByZXR1cm4gc2VsZi5saW5rcyh0LmZvcm1hdCgqKmZhcmdzKSwgZW52LCBleHRyYV9hcmdzPWV4dHJhX2FyZ3MsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBkZXBlbmRlbmNpZXM9ZGVwZW5kZW5jaWVzKQotLS0gCi0yLjE3LjEKLQpkaWZmIC0tZ2l0IGEvcG9reS9tZXRhL3JlY2lwZXMtZGV2dG9vbHMvbWVzb24vbWVzb25fMC41MS4xLmJiIGIvcG9reS9tZXRhL3JlY2lwZXMtZGV2dG9vbHMvbWVzb24vbWVzb25fMC41MS4yLmJiCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBwb2t5L21ldGEvcmVjaXBlcy1kZXZ0b29scy9tZXNvbi9tZXNvbl8wLjUxLjEuYmIKcmVuYW1lIHRvIHBva3kvbWV0YS9yZWNpcGVzLWRldnRvb2xzL21lc29uL21lc29uXzAuNTEuMi5iYgpkaWZmIC0tZ2l0IGEvcG9reS9tZXRhL3JlY2lwZXMtZGV2dG9vbHMvbWVzb24vbmF0aXZlc2RrLW1lc29uXzAuNTEuMS5iYiBiL3Bva3kvbWV0YS9yZWNpcGVzLWRldnRvb2xzL21lc29uL25hdGl2ZXNkay1tZXNvbl8wLjUxLjIuYmIKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHBva3kvbWV0YS9yZWNpcGVzLWRldnRvb2xzL21lc29uL25hdGl2ZXNkay1tZXNvbl8wLjUxLjEuYmIKcmVuYW1lIHRvIHBva3kvbWV0YS9yZWNpcGVzLWRldnRvb2xzL21lc29uL25hdGl2ZXNkay1tZXNvbl8wLjUxLjIuYmIKZGlmZiAtLWdpdCBhL3Bva3kvbWV0YS9yZWNpcGVzLWRldnRvb2xzL3BhdGNoL3BhdGNoLzAwMDEtRG9uLXQtbGVhay10ZW1wb3JhcnktZmlsZS1vbi1mYWlsZWQtZWQtc3R5bGUtcGF0Y2gucGF0Y2ggYi9wb2t5L21ldGEvcmVjaXBlcy1kZXZ0b29scy9wYXRjaC9wYXRjaC8wMDAxLURvbi10LWxlYWstdGVtcG9yYXJ5LWZpbGUtb24tZmFpbGVkLWVkLXN0eWxlLXBhdGNoLnBhdGNoCmluZGV4IDk4OTE1MjYuLjc4MzQ1ZTkgMTAwNjQ0Ci0tLSBhL3Bva3kvbWV0YS9yZWNpcGVzLWRldnRvb2xzL3BhdGNoL3BhdGNoLzAwMDEtRG9uLXQtbGVhay10ZW1wb3JhcnktZmlsZS1vbi1mYWlsZWQtZWQtc3R5bGUtcGF0Y2gucGF0Y2gKKysrIGIvcG9reS9tZXRhL3JlY2lwZXMtZGV2dG9vbHMvcGF0Y2gvcGF0Y2gvMDAwMS1Eb24tdC1sZWFrLXRlbXBvcmFyeS1maWxlLW9uLWZhaWxlZC1lZC1zdHlsZS1wYXRjaC5wYXRjaApAQCAtMTcsNiArMTcsNyBAQAogCiBGaXhlczogMTIzZWFmZjBkNWQxICgiRml4IGFyYml0cmFyeSBjb21tYW5kIGV4ZWN1dGlvbiBpbiBlZC1zdHlsZSBwYXRjaGVzIChDVkUtMjAxOC0xMDAwMTU2KSIpCiAKK0NWRTogQ1ZFLTIwMTgtMTAwMDE1NgogVXBzdHJlYW0tU3RhdHVzOiBCYWNrcG9ydCBbaHR0cDovL2dpdC5zYXZhbm5haC5nbnUub3JnL2NnaXQvcGF0Y2guZ2l0L2NvbW1pdC8/aWQ9MTk1OTk4ODNmZmI2YTQ1MGQyODg0ZjA4MWY4ZWNmNjhlZGJlZDdlZV0KIFNpZ25lZC1vZmYtYnk6IEFudWogTWl0dGFsIDxhbnVqLm1pdHRhbEBpbnRlbC5jb20+CiAtLS0KZGlmZiAtLWdpdCBhL3Bva3kvbWV0YS9yZWNpcGVzLWRldnRvb2xzL3BhdGNoL3BhdGNoLzAwMDEtRG9uLXQtbGVhay10ZW1wb3JhcnktZmlsZS1vbi1mYWlsZWQtbXVsdGktZmlsZS1lZC5wYXRjaCBiL3Bva3kvbWV0YS9yZWNpcGVzLWRldnRvb2xzL3BhdGNoL3BhdGNoLzAwMDEtRG9uLXQtbGVhay10ZW1wb3JhcnktZmlsZS1vbi1mYWlsZWQtbXVsdGktZmlsZS1lZC5wYXRjaAppbmRleCBkNmEyMTlhLi44ZmZmZmVmIDEwMDY0NAotLS0gYS9wb2t5L21ldGEvcmVjaXBlcy1kZXZ0b29scy9wYXRjaC9wYXRjaC8wMDAxLURvbi10LWxlYWstdGVtcG9yYXJ5LWZpbGUtb24tZmFpbGVkLW11bHRpLWZpbGUtZWQucGF0Y2gKKysrIGIvcG9reS9tZXRhL3JlY2lwZXMtZGV2dG9vbHMvcGF0Y2gvcGF0Y2gvMDAwMS1Eb24tdC1sZWFrLXRlbXBvcmFyeS1maWxlLW9uLWZhaWxlZC1tdWx0aS1maWxlLWVkLnBhdGNoCkBAIC0xNyw2ICsxNyw3IEBACiBGaXhlczogMTIzZWFmZjBkNWQxICgiRml4IGFyYml0cmFyeSBjb21tYW5kIGV4ZWN1dGlvbiBpbiBlZC1zdHlsZSBwYXRjaGVzIChDVkUtMjAxOC0xMDAwMTU2KSIpCiBGaXhlczogMTk1OTk4ODNmZmI2ICgiRG9uJ3QgbGVhayB0ZW1wb3JhcnkgZmlsZSBvbiBmYWlsZWQgZWQtc3R5bGUgcGF0Y2giKQogCitDVkU6IENWRS0yMDE4LTEwMDAxNTYKIFVwc3RyZWFtLVN0YXR1czogQmFja3BvcnQgW2h0dHA6Ly9naXQuc2F2YW5uYWguZ251Lm9yZy9jZ2l0L3BhdGNoLmdpdC9jb21taXQvP2lkPTM2OWRjY2NkZmE2MzM2ZTVhODczZDZkNjM3MDVjZmJlMDRjNTU3MjddCiBTaWduZWQtb2ZmLWJ5OiBBbnVqIE1pdHRhbCA8YW51ai5taXR0YWxAaW50ZWwuY29tPgogLS0tCmRpZmYgLS1naXQgYS9wb2t5L21ldGEvcmVjaXBlcy1kZXZ0b29scy9wcmVsaW5rL3ByZWxpbmtfZ2l0LmJiIGIvcG9reS9tZXRhL3JlY2lwZXMtZGV2dG9vbHMvcHJlbGluay9wcmVsaW5rX2dpdC5iYgppbmRleCBiMTI2MWQ1Li5mMDk0NmRlIDEwMDY0NAotLS0gYS9wb2t5L21ldGEvcmVjaXBlcy1kZXZ0b29scy9wcmVsaW5rL3ByZWxpbmtfZ2l0LmJiCisrKyBiL3Bva3kvbWV0YS9yZWNpcGVzLWRldnRvb2xzL3ByZWxpbmsvcHJlbGlua19naXQuYmIKQEAgLTM2LDYgKzM2LDkgQEAKICIKIFVQU1RSRUFNX0NIRUNLX0NPTU1JVFMgPSAiMSIKIAorIyBlcnJvcjogZXJyb3IuaDogTm8gc3VjaCBmaWxlIG9yIGRpcmVjdG9yeQorQ09NUEFUSUJMRV9IT1NUX2xpYmMtbXVzbCA9ICdudWxsJworCiBUQVJHRVRfT1NfT1JJRyA6PSAiJHtUQVJHRVRfT1N9IgogT1ZFUlJJREVTX2FwcGVuZCA9ICI6JHtUQVJHRVRfT1NfT1JJR30iCiAKZGlmZiAtLWdpdCBhL3Bva3kvbWV0YS9yZWNpcGVzLWRldnRvb2xzL3BzZXVkby9maWxlcy8wMDAxLW1ha2V0YWJsZXMtd3JhcHBlcnMtdXNlLVB5dGhvbi0zLnBhdGNoIGIvcG9reS9tZXRhL3JlY2lwZXMtZGV2dG9vbHMvcHNldWRvL2ZpbGVzLzAwMDEtbWFrZXRhYmxlcy13cmFwcGVycy11c2UtUHl0aG9uLTMucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjJkYmRhZAotLS0gL2Rldi9udWxsCisrKyBiL3Bva3kvbWV0YS9yZWNpcGVzLWRldnRvb2xzL3BzZXVkby9maWxlcy8wMDAxLW1ha2V0YWJsZXMtd3JhcHBlcnMtdXNlLVB5dGhvbi0zLnBhdGNoCkBAIC0wLDAgKzEsMzQgQEAKK0Zyb20gZGJkMzRiMWIyYWY4ZmJmNDRhMGQ1YzM3YWJlMzQ0ODQwNTgxOTgyMyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IEFsZXhhbmRlciBLYW5hdmluIDxhbGV4LmthbmF2aW5AZ21haWwuY29tPgorRGF0ZTogV2VkLCAyOCBBdWcgMjAxOSAxOToyMDoyOSArMDIwMAorU3ViamVjdDogW1BBVENIXSBtYWtldGFibGVzL3dyYXBwZXJzOiB1c2UgUHl0aG9uIDMKKworQ2hhbmdlbG9nIGluZGljYXRlcyB0aGV5IHNob3VsZCBiZSBjb21wYXRpYmxlLgorCitVcHN0cmVhbS1TdGF0dXM6IFBlbmRpbmcKK1NpZ25lZC1vZmYtYnk6IEFsZXhhbmRlciBLYW5hdmluIDxhbGV4LmthbmF2aW5AZ21haWwuY29tPgorLS0tCisgbWFrZXRhYmxlcyAgIHwgMiArLQorIG1ha2V3cmFwcGVycyB8IDIgKy0KKyAyIGZpbGVzIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKKworZGlmZiAtLWdpdCBhL21ha2V0YWJsZXMgYi9tYWtldGFibGVzCitpbmRleCBhMjExNzcyLi41MjI4NWUyIDEwMDc1NQorLS0tIGEvbWFrZXRhYmxlcworKysrIGIvbWFrZXRhYmxlcworQEAgLTEsNCArMSw0IEBACistIyEvdXNyL2Jpbi9lbnYgcHl0aG9uCisrIyEvdXNyL2Jpbi9lbnYgcHl0aG9uMworICMKKyAjIENvcHlyaWdodCAoYykgMjAwOC0yMDEwLCAyMDEzIFdpbmQgUml2ZXIgU3lzdGVtcywgSW5jLgorICMKK2RpZmYgLS1naXQgYS9tYWtld3JhcHBlcnMgYi9tYWtld3JhcHBlcnMKK2luZGV4IGU4NDYwN2QuLmIzNGY3ZWIgMTAwNzU1CistLS0gYS9tYWtld3JhcHBlcnMKKysrKyBiL21ha2V3cmFwcGVycworQEAgLTEsNCArMSw0IEBACistIyEvdXNyL2Jpbi9lbnYgcHl0aG9uCisrIyEvdXNyL2Jpbi9lbnYgcHl0aG9uMworICMKKyAjIENvcHlyaWdodCAoYykgMjAwOC0yMDExLDIwMTMgV2luZCBSaXZlciBTeXN0ZW1zLCBJbmMuCisgIwpkaWZmIC0tZ2l0IGEvcG9reS9tZXRhL3JlY2lwZXMtZGV2dG9vbHMvcHNldWRvL3BzZXVkb19naXQuYmIgYi9wb2t5L21ldGEvcmVjaXBlcy1kZXZ0b29scy9wc2V1ZG8vcHNldWRvX2dpdC5iYgppbmRleCA2Y2Y3MTFlLi43ODUwMGUxIDEwMDY0NAotLS0gYS9wb2t5L21ldGEvcmVjaXBlcy1kZXZ0b29scy9wc2V1ZG8vcHNldWRvX2dpdC5iYgorKysgYi9wb2t5L21ldGEvcmVjaXBlcy1kZXZ0b29scy9wc2V1ZG8vcHNldWRvX2dpdC5iYgpAQCAtNiw5ICs2LDEyIEBACiAgICAgICAgICAgIGZpbGU6Ly9mYWxsYmFjay1ncm91cCBcCiAgICAgICAgICAgIGZpbGU6Ly9tb3JlcmV0cmllcy5wYXRjaCBcCiAgICAgICAgICAgIGZpbGU6Ly90b29tYW55ZmlsZXMucGF0Y2ggXAorICAgICAgICAgICBmaWxlOi8vMDAwMS1tYWtldGFibGVzLXdyYXBwZXJzLXVzZS1QeXRob24tMy5wYXRjaCBcCiAgICAgICAgICAgICIKIAogU1JDUkVWID0gIjA2MDA1OGJiMjlmNzBiMjQ0ZTY4NWIzYzcwNGViMDY0MWI3MzZmNzMiCiBTID0gIiR7V09SS0RJUn0vZ2l0IgogUFYgPSAiMS45LjArZ2l0JHtTUkNQVn0iCiAKKyMgZXJyb3I6IHVzZSBvZiB1bmRlY2xhcmVkIGlkZW50aWZpZXIgJ19TVEFUX1ZFUicKK0NPTVBBVElCTEVfSE9TVF9saWJjLW11c2wgPSAnbnVsbCcKZGlmZiAtLWdpdCBhL3Bva3kvbWV0YS9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi1udW1weS9maWxlcy8wMDAxLURvbi10LXNlYXJjaC11c3ItYW5kLXNvLW9uLWZvci1saWJyYXJpZXMtYnktZGVmYXVsdC0ucGF0Y2ggYi9wb2t5L21ldGEvcmVjaXBlcy1kZXZ0b29scy9weXRob24tbnVtcHkvZmlsZXMvMDAwMS1Eb24tdC1zZWFyY2gtdXNyLWFuZC1zby1vbi1mb3ItbGlicmFyaWVzLWJ5LWRlZmF1bHQtLnBhdGNoCmluZGV4IDhmZTBkMWEuLjk4YTk3MDUgMTAwNjQ0Ci0tLSBhL3Bva3kvbWV0YS9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi1udW1weS9maWxlcy8wMDAxLURvbi10LXNlYXJjaC11c3ItYW5kLXNvLW9uLWZvci1saWJyYXJpZXMtYnktZGVmYXVsdC0ucGF0Y2gKKysrIGIvcG9reS9tZXRhL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uLW51bXB5L2ZpbGVzLzAwMDEtRG9uLXQtc2VhcmNoLXVzci1hbmQtc28tb24tZm9yLWxpYnJhcmllcy1ieS1kZWZhdWx0LS5wYXRjaApAQCAtMSw0ICsxLDQgQEAKLUZyb20gYzE0NTU0YzdlMmZmZjhkZDU1OWRmYjQxZTdkZDExMzkyYzZmODVlMyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb20gNjcyYTc1Yzg0MTdjZTA4ZGI5ZTMxZmM0MTVlYzQ0NTQ3OTIzMWQ1YSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKIEZyb206IEFsZXhhbmRlciBLYW5hdmluIDxhbGV4LmthbmF2aW5AZ21haWwuY29tPgogRGF0ZTogVGh1LCAxMCBEZWMgMjAxNSAxMzoyMDozMCArMDIwMAogU3ViamVjdDogW1BBVENIXSBEb24ndCBzZWFyY2ggL3VzciBhbmQgc28gb24gZm9yIGxpYnJhcmllcyBieSBkZWZhdWx0IHRvCkBAIC0xMCwxNCArMTAsMTQgQEAKIFNpZ25lZC1vZmYtYnk6IEFsZXhhbmRlciBLYW5hdmluIDxhbGV4LmthbmF2aW5AZ21haWwuY29tPgogCiAtLS0KLSBudW1weS9kaXN0dXRpbHMvc3lzdGVtX2luZm8ucHkgfCA1MCArKysrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gMSBmaWxlIGNoYW5nZWQsIDYgaW5zZXJ0aW9ucygrKSwgNDQgZGVsZXRpb25zKC0pCisgbnVtcHkvZGlzdHV0aWxzL3N5c3RlbV9pbmZvLnB5IHwgNDIgKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIDEgZmlsZSBjaGFuZ2VkLCA1IGluc2VydGlvbnMoKyksIDM3IGRlbGV0aW9ucygtKQogCiBkaWZmIC0tZ2l0IGEvbnVtcHkvZGlzdHV0aWxzL3N5c3RlbV9pbmZvLnB5IGIvbnVtcHkvZGlzdHV0aWxzL3N5c3RlbV9pbmZvLnB5Ci1pbmRleCAyNDI0OTQzLi5iZjU2YTZkIDEwMDY0NAoraW5kZXggYmEyYjFmNC4uZjk0ZGNlMSAxMDA2NDQKIC0tLSBhL251bXB5L2Rpc3R1dGlscy9zeXN0ZW1faW5mby5weQogKysrIGIvbnVtcHkvZGlzdHV0aWxzL3N5c3RlbV9pbmZvLnB5Ci1AQCAtMjc0LDUxICsyNzQsMTMgQEAgaWYgc3lzLnBsYXRmb3JtID09ICd3aW4zMic6CitAQCAtMjc4LDQ1ICsyNzgsMTMgQEAgaWYgc3lzLnBsYXRmb3JtID09ICd3aW4zMic6CiAgICAgICAgICAgICAgYWRkX3N5c3RlbV9yb290KG9zLnBhdGguam9pbihjb25kYV9kaXIsICdMaWJyYXJ5JykpCiAgCiAgZWxzZToKQEAgLTQ1LDMxICs0NSwyNCBAQAogLSAgICAgICAgICAgIGRlZmF1bHRfeDExX2luY2x1ZGVfZGlycy5leHRlbmQoWycvdXNyL2xpYi9YMTEvaW5jbHVkZScsCiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJy91c3IvaW5jbHVkZS9YMTEnXSkKIC0KLS0gICAgaW1wb3J0IHN1YnByb2Nlc3MgYXMgc3AKLS0gICAgdG1wID0gTm9uZQotLSAgICB0cnk6Ci0tICAgICAgICAjIEV4cGxpY2l0bHkgb3Blbi9jbG9zZSBmaWxlIHRvIGF2b2lkIFJlc291cmNlV2FybmluZyB3aGVuCi0tICAgICAgICAjIHRlc3RzIGFyZSBydW4gaW4gZGVidWcgbW9kZSBQeXRob24gMy4KLS0gICAgICAgIHRtcCA9IG9wZW4ob3MuZGV2bnVsbCwgJ3cnKQotLSAgICAgICAgcCA9IHNwLlBvcGVuKFsiZ2NjIiwgIi1wcmludC1tdWx0aWFyY2giXSwgc3Rkb3V0PXNwLlBJUEUsCi0tICAgICAgICAgICAgICAgICAgICAgc3RkZXJyPXRtcCkKLS0gICAgZXhjZXB0IChPU0Vycm9yLCBEaXN0dXRpbHNFcnJvcik6Ci0tICAgICAgICAjIE9TRXJyb3IgaWYgZ2NjIGlzIG5vdCBpbnN0YWxsZWQsIG9yIFNhbmRib3hWaW9sYXRpb24gKERpc3R1dGlsc0Vycm9yCi0tICAgICAgICAjIHN1YmNsYXNzKSBpZiBhbiBvbGQgc2V0dXB0b29scyBidWcgaXMgdHJpZ2dlcmVkIChzZWUgZ2gtMzE2MCkuCi0tICAgICAgICBwYXNzCi0tICAgIGVsc2U6Ci0tICAgICAgICB0cmlwbGV0ID0gc3RyKHAuY29tbXVuaWNhdGUoKVswXS5kZWNvZGUoKS5zdHJpcCgpKQotLSAgICAgICAgaWYgcC5yZXR1cm5jb2RlID09IDA6Ci0tICAgICAgICAgICAgIyBnY2Mgc3VwcG9ydHMgdGhlICItcHJpbnQtbXVsdGlhcmNoIiBvcHRpb24KLS0gICAgICAgICAgICBkZWZhdWx0X3gxMV9saWJfZGlycyArPSBbb3MucGF0aC5qb2luKCIvdXNyL2xpYi8iLCB0cmlwbGV0KV0KLS0gICAgICAgICAgICBkZWZhdWx0X2xpYl9kaXJzICs9IFtvcy5wYXRoLmpvaW4oIi91c3IvbGliLyIsIHRyaXBsZXQpXQotLSAgICBmaW5hbGx5OgotLSAgICAgICAgaWYgdG1wIGlzIG5vdCBOb25lOgotLSAgICAgICAgICAgIHRtcC5jbG9zZSgpCistICAgIHdpdGggb3Blbihvcy5kZXZudWxsLCAndycpIGFzIHRtcDoKKy0gICAgICAgIHRyeToKKy0gICAgICAgICAgICBwID0gc3VicHJvY2Vzcy5Qb3BlbihbImdjYyIsICItcHJpbnQtbXVsdGlhcmNoIl0sIHN0ZG91dD1zdWJwcm9jZXNzLlBJUEUsCistICAgICAgICAgICAgICAgICAgICAgICAgIHN0ZGVycj10bXApCistICAgICAgICBleGNlcHQgKE9TRXJyb3IsIERpc3R1dGlsc0Vycm9yKToKKy0gICAgICAgICAgICAjIE9TRXJyb3IgaWYgZ2NjIGlzIG5vdCBpbnN0YWxsZWQsIG9yIFNhbmRib3hWaW9sYXRpb24gKERpc3R1dGlsc0Vycm9yCistICAgICAgICAgICAgIyBzdWJjbGFzcykgaWYgYW4gb2xkIHNldHVwdG9vbHMgYnVnIGlzIHRyaWdnZXJlZCAoc2VlIGdoLTMxNjApLgorLSAgICAgICAgICAgIHBhc3MKKy0gICAgICAgIGVsc2U6CistICAgICAgICAgICAgdHJpcGxldCA9IHN0cihwLmNvbW11bmljYXRlKClbMF0uZGVjb2RlKCkuc3RyaXAoKSkKKy0gICAgICAgICAgICBpZiBwLnJldHVybmNvZGUgPT0gMDoKKy0gICAgICAgICAgICAgICAgIyBnY2Mgc3VwcG9ydHMgdGhlICItcHJpbnQtbXVsdGlhcmNoIiBvcHRpb24KKy0gICAgICAgICAgICAgICAgZGVmYXVsdF94MTFfbGliX2RpcnMgKz0gW29zLnBhdGguam9pbigiL3Vzci9saWIvIiwgdHJpcGxldCldCistICAgICAgICAgICAgICAgIGRlZmF1bHRfbGliX2RpcnMgKz0gW29zLnBhdGguam9pbigiL3Vzci9saWIvIiwgdHJpcGxldCldCiArICAgIGRlZmF1bHRfbGliX2RpcnMgPSBsaWJwYXRocyhbJy9kZWFkaXIvbGliJ10sIHBsYXRmb3JtX2JpdHMpCiArICAgIGRlZmF1bHRfaW5jbHVkZV9kaXJzID0gWycvZGVhZGRpci9pbmNsdWRlJ10KICsgICAgZGVmYXVsdF9zcmNfZGlycyA9IFsnLicsICcvZGVhZGRpci9zcmMnXQotKworIAogKyAgICBkZWZhdWx0X3gxMV9saWJfZGlycyA9IGxpYnBhdGhzKFsnL2RlYWRkaXIvbGliJ10sIHBsYXRmb3JtX2JpdHMpCiArICAgIGRlZmF1bHRfeDExX2luY2x1ZGVfZGlycyA9IFsnL2RlYWRkaXIvaW5jbHVkZSddCiAgCmRpZmYgLS1naXQgYS9wb2t5L21ldGEvcmVjaXBlcy1kZXZ0b29scy9weXRob24tbnVtcHkvZmlsZXMvMDAwMS1udW1weS1yYW5kb20tc2V0dXAucHktcmVtb3ZlLXRoZS1kZXRlY3Rpb24tb2YteDg2LXRhLnBhdGNoIGIvcG9reS9tZXRhL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uLW51bXB5L2ZpbGVzLzAwMDEtbnVtcHktcmFuZG9tLXNldHVwLnB5LXJlbW92ZS10aGUtZGV0ZWN0aW9uLW9mLXg4Ni10YS5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lYmIyYTZmCi0tLSAvZGV2L251bGwKKysrIGIvcG9reS9tZXRhL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uLW51bXB5L2ZpbGVzLzAwMDEtbnVtcHktcmFuZG9tLXNldHVwLnB5LXJlbW92ZS10aGUtZGV0ZWN0aW9uLW9mLXg4Ni10YS5wYXRjaApAQCAtMCwwICsxLDMyIEBACitGcm9tIGI4ODFlMGIyYmE5Y2YxYTRhYTM1MWExYzFlYTkwYjFlMTc3NmNlMjEgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBBbGV4YW5kZXIgS2FuYXZpbiA8YWxleC5rYW5hdmluQGdtYWlsLmNvbT4KK0RhdGU6IE1vbiwgMTIgQXVnIDIwMTkgMTU6Mzc6MzYgKzAyMDAKK1N1YmplY3Q6IFtQQVRDSF0gbnVtcHkvcmFuZG9tL3NldHVwLnB5OiByZW1vdmUgdGhlIGRldGVjdGlvbiBvZiB4ODYgdGFyZ2V0cworIHZpYSB1bmFtZSgpCisKK1RoaXMgd2FzIGJhZGx5IGJyZWFraW5nIGNvbXBpbGF0aW9uIGZvciBBUk0gdGFyZ2V0cyAoYW5kIHBvc3NpYmx5CitvdGhlciBub24teDg2IHRhcmdldHMpOyBpZiAtbXNzZTIgaXMgZGVzaXJhYmxlIGZvciB4ODYgYnVpbGRzIGl0IGhhcwordG8gYmUgcGFzc2VkIHRocm91Z2ggYW5vdGhlciBjaGFubmVsLgorCitVcHN0cmVhbS1TdGF0dXM6IEluYXBwcm9wcmlhdGUgW29lLWNvcmUgc3BlY2lmaWNdCitTaWduZWQtb2ZmLWJ5OiBBbGV4YW5kZXIgS2FuYXZpbiA8YWxleC5rYW5hdmluQGdtYWlsLmNvbT4KKy0tLQorIG51bXB5L3JhbmRvbS9zZXR1cC5weSB8IDUgLS0tLS0KKyAxIGZpbGUgY2hhbmdlZCwgNSBkZWxldGlvbnMoLSkKKworZGlmZiAtLWdpdCBhL251bXB5L3JhbmRvbS9zZXR1cC5weSBiL251bXB5L3JhbmRvbS9zZXR1cC5weQoraW5kZXggYTFiZjNiOC4uNjBmYjUzNCAxMDA2NDQKKy0tLSBhL251bXB5L3JhbmRvbS9zZXR1cC5weQorKysrIGIvbnVtcHkvcmFuZG9tL3NldHVwLnB5CitAQCAtNDksMTEgKzQ5LDYgQEAgZGVmIGNvbmZpZ3VyYXRpb24ocGFyZW50X3BhY2thZ2U9JycsIHRvcF9wYXRoPU5vbmUpOgorICAgICBlbGlmIG5vdCBpc19tc3ZjOgorICAgICAgICAgIyBTb21lIGJpdCBnZW5lcmF0b3JzIHJlcXVpcmUgYzk5CisgICAgICAgICBFWFRSQV9DT01QSUxFX0FSR1MgKz0gWyctc3RkPWM5OSddCistICAgICAgICBJTlRFTF9MSUtFID0gYW55KFt2YWwgaW4gay5sb3dlcigpIGZvciBrIGluIHBsYXRmb3JtLnVuYW1lKCkKKy0gICAgICAgICAgICAgICAgICAgICAgICAgIGZvciB2YWwgaW4gKCd4ODYnLCAnaTY4NicsICdpMzg2JywgJ2FtZDY0JyldKQorLSAgICAgICAgaWYgSU5URUxfTElLRToKKy0gICAgICAgICAgICAjIEFzc3VtZXMgR0NDIG9yIEdDQy1saWtlIGNvbXBpbGVyCistICAgICAgICAgICAgRVhUUkFfQ09NUElMRV9BUkdTICs9IFsnLW1zc2UyJ10KKyAKKyAgICAgIyBVc2UgbGVnYWN5IGludGVnZXIgdmFyaWFibGUgc2l6ZXMKKyAgICAgTEVHQUNZX0RFRlMgPSBbKCdOUF9SQU5ET01fTEVHQUNZJywgJzEnKV0KZGlmZiAtLWdpdCBhL3Bva3kvbWV0YS9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi1udW1weS9weXRob24tbnVtcHkuaW5jIGIvcG9reS9tZXRhL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uLW51bXB5L3B5dGhvbi1udW1weS5pbmMKaW5kZXggNDNjMzA1My4uYTEyZTcyZiAxMDA2NDQKLS0tIGEvcG9reS9tZXRhL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uLW51bXB5L3B5dGhvbi1udW1weS5pbmMKKysrIGIvcG9reS9tZXRhL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uLW51bXB5L3B5dGhvbi1udW1weS5pbmMKQEAgLTEsNyArMSw3IEBACiBTVU1NQVJZID0gIkEgc29waGlzdGljYXRlZCBOdW1lcmljIFByb2Nlc3NpbmcgUGFja2FnZSBmb3IgUHl0aG9uIgogU0VDVElPTiA9ICJkZXZlbC9weXRob24iCi1MSUNFTlNFID0gIkJTRC0zLUNsYXVzZSAmIEJTRC0yLUNsYXVzZSAmIFBTRiAmIEFwYWNoZS0yLjAgJiBCU0QiCi1MSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9MSUNFTlNFLnR4dDttZDU9ZDI2YmRlNTQzMjYxM2NjZTIzMzRiOTM5ODU1NzYyMzEiCitMSUNFTlNFID0gIkJTRC0zLUNsYXVzZSAmIEJTRC0yLUNsYXVzZSAmIFBTRiAmIEFwYWNoZS0yLjAgJiBCU0QgJiBNSVQiCitMSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9MSUNFTlNFLnR4dDttZDU9MWEzMmFiYTAwN2E0MTVhYThhMWM3MDhhMGUyYjg2YTEiCiAKIFNSQ05BTUUgPSAibnVtcHkiCiAKQEAgLTksMTMgKzksMTcgQEAKICAgICAgICAgICAgZmlsZTovLzAwMDEtRG9uLXQtc2VhcmNoLXVzci1hbmQtc28tb24tZm9yLWxpYnJhcmllcy1ieS1kZWZhdWx0LS5wYXRjaCBcCiAgICAgICAgICAgIGZpbGU6Ly8wMDAxLW5weV9jcHUtQWRkLXJpc2N2LXN1cHBvcnQucGF0Y2ggXAogICAgICAgICAgICAke0NPTkZJR0ZJTEVTVVJJfSBcCisgICAgICAgICAgIGZpbGU6Ly8wMDAxLW51bXB5LXJhbmRvbS1zZXR1cC5weS1yZW1vdmUtdGhlLWRldGVjdGlvbi1vZi14ODYtdGEucGF0Y2ggXAogICAgICAgICAgICAiCi1TUkNfVVJJW21kNXN1bV0gPSAiMDg4NmU1YjUwMTdmMDhmMmI3YTYyNGMwYjU5MzFlNjEiCi1TUkNfVVJJW3NoYTI1NnN1bV0gPSAiYWRmMDYzYTNmODdhYjg5MzkzZjVlZWEwZWI5MDMyOTNiMTEyZmEwYTMwOGU4YzU5NGE3NWZmYTU4NWQ4MWQ0ZiIKK1NSQ19VUklbbWQ1c3VtXSA9ICJjNDhiMmFkNzg1ZjgyY2RmZTI4YzkwN2NlMzVlMmE3MSIKK1NSQ19VUklbc2hhMjU2c3VtXSA9ICI0N2I3YjYxNDVlN2JhNTkxOGNlMjZiZTI1OTk5YjZkNGIzNWNmOWZiZmRmNDZiN2RhNTAwOTBmZmRiMDIwNDQ1IgogCiBVUFNUUkVBTV9DSEVDS19VUkkgPSAiaHR0cHM6Ly9naXRodWIuY29tL251bXB5L251bXB5L3JlbGVhc2VzIgogVVBTVFJFQU1fQ0hFQ0tfUkVHRVggPSAiKD9QPHB2ZXI+XGQrKFwuXGQrKSspXC50YXIiCiAKKyMgTmVlZGVkIGZvciBidWlsZGluZyB3aXRoIGdjYyA0LnggZnJvbSBjZW50b3MgNworQ0ZMQUdTX2FwcGVuZF9jbGFzcy1uYXRpdmUgPSAiIC1zdGQ9Yzk5IgorCiBDT05GSUdGSUxFU1VSSSA/PSAiIgogCiBDT05GSUdGSUxFU1VSSV9hYXJjaDY0ID0gIiBcCkBAIC0xMDksNiArMTEzLDcgQEAKICAgICAgICAgICAgICAgICAgICR7UFlUSE9OX1BOfS1jb21wcmVzc2lvbiBcCiAgICAgICAgICAgICAgICAgICAke1BZVEhPTl9QTn0tY3R5cGVzIFwKICAgICAgICAgICAgICAgICAgICR7UFlUSE9OX1BOfS10aHJlYWRpbmcgXAorICAgICAgICAgICAgICAgICAgJHtQWVRIT05fUE59LW11bHRpcHJvY2Vzc2luZyBcCiAiCiAKIFJERVBFTkRTXyR7UE59X2NsYXNzLW5hdGl2ZSA9ICIiCmRpZmYgLS1naXQgYS9wb2t5L21ldGEvcmVjaXBlcy1kZXZ0b29scy9weXRob24tbnVtcHkvcHl0aG9uMy1udW1weV8xLjE2LjMuYmIgYi9wb2t5L21ldGEvcmVjaXBlcy1kZXZ0b29scy9weXRob24tbnVtcHkvcHl0aG9uMy1udW1weV8xLjE3LjAuYmIKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHBva3kvbWV0YS9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi1udW1weS9weXRob24zLW51bXB5XzEuMTYuMy5iYgpyZW5hbWUgdG8gcG9reS9tZXRhL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uLW51bXB5L3B5dGhvbjMtbnVtcHlfMS4xNy4wLmJiCmRpZmYgLS1naXQgYS9wb2t5L21ldGEvcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXRlc3R0b29scy5pbmMgYi9wb2t5L21ldGEvcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXRlc3R0b29scy5pbmMKaW5kZXggMTAxMWM5OC4uZDBiMmU0NiAxMDA2NDQKLS0tIGEvcG9reS9tZXRhL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi10ZXN0dG9vbHMuaW5jCisrKyBiL3Bva3kvbWV0YS9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tdGVzdHRvb2xzLmluYwpAQCAtMTksNiArMTksNyBAQAogICAgICIKIAogUkRFUEVORFNfJHtQTn0gKz0gIlwKKyAgICAke1BZVEhPTl9QTn0tZG9jdGVzdCBcCiAgICAgJHtQWVRIT05fUE59LWV4dHJhcyBcCiAgICAgJHtQWVRIT05fUE59LXBiciBcCiAgICAgJHtQWVRIT05fUE59LXNpeCBcCmRpZmYgLS1naXQgYS9wb2t5L21ldGEvcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLmluYyBiL3Bva3kvbWV0YS9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24uaW5jCmluZGV4IDcwNDgxMDAuLjE0NjJiNzcgMTAwNjQ0Ci0tLSBhL3Bva3kvbWV0YS9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24uaW5jCisrKyBiL3Bva3kvbWV0YS9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24uaW5jCkBAIC0zNyw3ICszNyw2IEBACiAgIC0tZW5hYmxlLXNoYXJlZCBcCiAgIC0tZW5hYmxlLWlwdjY9JHtAYmIudXRpbHMuY29udGFpbnMoJ0RJU1RST19GRUFUVVJFUycsICdpcHY2JywgJ3llcycsICdubycsIGQpfSBcCiAgIGFjX2N2X2hlYWRlcl9ibHVldG9vdGhfYmx1ZXRvb3RoX2g9bm8gYWNfY3ZfaGVhZGVyX2JsdWV0b290aF9oPW5vIFwKLSAgJHtQWVRIT05MU0JPUFRTfSBcCiAiCiAKIGRvX2NvbmZpZ3VyZV9wcmVwZW5kKCkgewpkaWZmIC0tZ2l0IGEvcG9reS9tZXRhL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtZGJ1c18xLjIuOC5iYiBiL3Bva3kvbWV0YS9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLWRidXNfMS4yLjEwLmJiCnNpbWlsYXJpdHkgaW5kZXggODUlCnJlbmFtZSBmcm9tIHBva3kvbWV0YS9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLWRidXNfMS4yLjguYmIKcmVuYW1lIHRvIHBva3kvbWV0YS9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLWRidXNfMS4yLjEwLmJiCmluZGV4IDJmYjFlYWUuLjg4OTJkMGYgMTAwNjQ0Ci0tLSBhL3Bva3kvbWV0YS9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLWRidXNfMS4yLjguYmIKKysrIGIvcG9reS9tZXRhL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtZGJ1c18xLjIuMTAuYmIKQEAgLTgsOCArOCw4IEBACiBTUkNfVVJJID0gImh0dHA6Ly9kYnVzLmZyZWVkZXNrdG9wLm9yZy9yZWxlYXNlcy9kYnVzLXB5dGhvbi9kYnVzLXB5dGhvbi0ke1BWfS50YXIuZ3ogXAogIgogCi1TUkNfVVJJW21kNXN1bV0gPSAiNzM3OWRiNzc0YzEwOTA0ZjI3ZTdlMjc0M2Q5MGZiNDMiCi1TUkNfVVJJW3NoYTI1NnN1bV0gPSAiYWJmMTJiYmI3NjVlMzAwYmY4ZTJhMWIyZjMyZjg1OTQ5ZWFiMDY5OThkYmRhMTI3OTUyYzMxY2I2Mzk1N2I2ZiIKK1NSQ19VUklbbWQ1c3VtXSA9ICI1ZDIxZDVhZTY0MjNmMGU0MWNhYTM0MDBhZjQ0ZWRhYyIKK1NSQ19VUklbc2hhMjU2c3VtXSA9ICJkNDMzMmJiZDRhMDA1NGZhNDAxMGIyNTljMjkzYjg0ZDQ2MWJiZDlkN2E4ZWY1MjgxNTdkMTUxYzAzOThkODg2IgogUyA9ICIke1dPUktESVJ9L2RidXMtcHl0aG9uLSR7UFZ9IgogCiBpbmhlcml0IGRpc3R1dGlsczMtYmFzZSBhdXRvdG9vbHMgcGtnY29uZmlnCmRpZmYgLS1naXQgYS9wb2t5L21ldGEvcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy1naXRfMy4wLjAuYmIgYi9wb2t5L21ldGEvcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy1naXRfMy4wLjIuYmIKc2ltaWxhcml0eSBpbmRleCA4NyUKcmVuYW1lIGZyb20gcG9reS9tZXRhL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtZ2l0XzMuMC4wLmJiCnJlbmFtZSB0byBwb2t5L21ldGEvcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy1naXRfMy4wLjIuYmIKaW5kZXggYjZjODM3Yy4uOWRkNzUzZCAxMDA2NDQKLS0tIGEvcG9reS9tZXRhL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtZ2l0XzMuMC4wLmJiCisrKyBiL3Bva3kvbWV0YS9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLWdpdF8zLjAuMi5iYgpAQCAtMTIsOCArMTIsOCBAQAogCiBpbmhlcml0IHB5cGkgc2V0dXB0b29sczMKIAotU1JDX1VSSVttZDVzdW1dID0gIjk0MTJhZTk2NjVmZDI5MzI4ZjJhZmM2ZGY4ODdhZTgxIgotU1JDX1VSSVtzaGEyNTZzdW1dID0gIjYyOTg2N2ViZjYwOWNlZjIxYmI5ZDg0OTAzOWUyODFlMjU5NjNmYjdkNzE0YTJmNmJhY2MxZWNjZTQ4MDAyOTMiCitTUkNfVVJJW21kNXN1bV0gPSAiY2NlYzE0YTVjOWYxODcwMjQwNjEyMjk4M2Q4MDAzMmMiCitTUkNfVVJJW3NoYTI1NnN1bV0gPSAiZDJmNDk0NWY4MjYwZjY5ODFkNzI0ZjU5NTdiYzA3NjM5OGFkYTU1Y2I1ZDI1YWFlZTEwMTA4YmNkYzg5NDEwMCIKIAogREVQRU5EUyArPSAiICR7UFlUSE9OX1BOfS1naXRkYiIKIApkaWZmIC0tZ2l0IGEvcG9reS9tZXRhL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtcGJyXzUuNC4yLmJiIGIvcG9reS9tZXRhL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtcGJyXzUuNC4yLmJiCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkNTllNzQ0Li4wMDAwMDAwCi0tLSBhL3Bva3kvbWV0YS9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLXBicl81LjQuMi5iYgorKysgL2Rldi9udWxsCkBAIC0xLDUgKzAsMCBAQAotaW5oZXJpdCBzZXR1cHRvb2xzMwotcmVxdWlyZSBweXRob24tcGJyLmluYwotCi1TUkNfVVJJW21kNXN1bV0gPSAiZWE5MGUxMTE4YTAxMzJkYTc1MmQ0NWU2OGQxMGIyYjgiCi1TUkNfVVJJW3NoYTI1NnN1bV0gPSAiOWIzMjFjMjA0YTg4ZDhhYjUwODI2OTk0NjlmNTJjYzk0YzVkYTQ1YzUxZjExNDExM2QwMWIzZDk5M2MyNGNkZiIKZGlmZiAtLWdpdCBhL3Bva3kvbWV0YS9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLXBicl81LjQuMy5iYiBiL3Bva3kvbWV0YS9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLXBicl81LjQuMy5iYgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNzgzNWU3Ci0tLSAvZGV2L251bGwKKysrIGIvcG9reS9tZXRhL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtcGJyXzUuNC4zLmJiCkBAIC0wLDAgKzEsNSBAQAoraW5oZXJpdCBzZXR1cHRvb2xzMworcmVxdWlyZSBweXRob24tcGJyLmluYworCitTUkNfVVJJW21kNXN1bV0gPSAiNDc3ZDJhYTI4NWFkOTcyNTBhMTcyYjE5OWY0MDYwYjciCitTUkNfVVJJW3NoYTI1NnN1bV0gPSAiMmM4ZTQyMGNkNGVkNGNlYzRlNzk5OWVlNDc0MDllODc2YWY1NzVkNGMzNWE0NTg0MGQ1OWU4YjVmMzE1NWFiOCIKZGlmZiAtLWdpdCBhL3Bva3kvbWV0YS9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLXBpcF8xOS4yLjIuYmIgYi9wb2t5L21ldGEvcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy1waXBfMTkuMi4zLmJiCnNpbWlsYXJpdHkgaW5kZXggODElCnJlbmFtZSBmcm9tIHBva3kvbWV0YS9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLXBpcF8xOS4yLjIuYmIKcmVuYW1lIHRvIHBva3kvbWV0YS9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLXBpcF8xOS4yLjMuYmIKaW5kZXggZmFhZmJjMS4uYWE3MjUzZCAxMDA2NDQKLS0tIGEvcG9reS9tZXRhL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtcGlwXzE5LjIuMi5iYgorKysgYi9wb2t5L21ldGEvcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy1waXBfMTkuMi4zLmJiCkBAIC02LDggKzYsOCBAQAogCiBERVBFTkRTICs9ICJweXRob24zIHB5dGhvbjMtc2V0dXB0b29scy1uYXRpdmUiCiAKLVNSQ19VUklbbWQ1c3VtXSA9ICIyYmEwYTNiNzZkMzljY2Q5MGNhMjJiZmE4MmZjNjM1ZiIKLVNSQ19VUklbc2hhMjU2c3VtXSA9ICJlMDUxMDM4MjU4NzFlMjEwZDUwYTQ0YzdlNDQ4NTg3YjBlZDk5ZGQ3NzVkM2VmNTg2MzA0YzU4ZjQwMjI0YTUzIgorU1JDX1VSSVttZDVzdW1dID0gImY0MTc0NDRjNjZhMGRiMWE4MmM4ZDlkMjI4M2EyZjk1IgorU1JDX1VSSVtzaGEyNTZzdW1dID0gImU3YTMxZjE0Nzk3NDM2MmU2YzgyZDg0YjkxYzdmMmJkZjU3ZTRkMzE2M2QzZDQ1NGU2YzNlNzE5NDRkNjcxMzUiCiAKIGluaGVyaXQgcHlwaSBkaXN0dXRpbHMzCiAKZGlmZiAtLWdpdCBhL3Bva3kvbWV0YS9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zL3B5dGhvbjMtbWFuaWZlc3QuanNvbiBiL3Bva3kvbWV0YS9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zL3B5dGhvbjMtbWFuaWZlc3QuanNvbgppbmRleCBlYzI4YzJkLi44ZTk0MzA1IDEwMDY0NAotLS0gYS9wb2t5L21ldGEvcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy9weXRob24zLW1hbmlmZXN0Lmpzb24KKysrIGIvcG9reS9tZXRhL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMvcHl0aG9uMy1tYW5pZmVzdC5qc29uCkBAIC0xMTUsNyArMTE1LDcgQEAKICAgICAgICAgImNhY2hlZCI6IFtdCiAgICAgfSwKICAgICAiYXN5bmNpbyI6IHsKLSAgICAgICAgInN1bW1hcnkiOiAiUHl0aG9uIEFzeW5jaHJvbm91cyBJLyIsCisgICAgICAgICJzdW1tYXJ5IjogIlB5dGhvbiBBc3luY2hyb25vdXMgSS9PIiwKICAgICAgICAgInJkZXBlbmRzIjogWwogICAgICAgICAgICAgImNvcmUiLAogICAgICAgICAgICAgImlvIiwKZGlmZiAtLWdpdCBhL3Bva3kvbWV0YS9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zXzMuNy40LmJiIGIvcG9reS9tZXRhL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjNfMy43LjQuYmIKaW5kZXggODBjOWIyOS4uMTQxMTljMyAxMDA2NDQKLS0tIGEvcG9reS9tZXRhL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjNfMy43LjQuYmIKKysrIGIvcG9reS9tZXRhL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjNfMy43LjQuYmIKQEAgLTMxMCw3ICszMTAsNyBAQAogCiAjIGNhdGNoIGFsbCB0aGUgcmVzdCAodW5zb3J0ZWQpCiBQQUNLQUdFUyArPSAiJHtQTn0tbWlzYyIKLVJERVBFTkRTXyR7UE59LW1pc2MgKz0gInB5dGhvbjMtY29yZSBweXRob24zLWVtYWlsIHB5dGhvbjMtY29kZWNzIgorUkRFUEVORFNfJHtQTn0tbWlzYyArPSAicHl0aG9uMy1jb3JlIHB5dGhvbjMtZW1haWwgcHl0aG9uMy1jb2RlY3MgcHl0aG9uMy1weWRvYyBweXRob24zLXBpY2tsZSIKIFJERVBFTkRTXyR7UE59LW1vZHVsZXNfYXBwZW5kX2NsYXNzLXRhcmdldCA9ICIgcHl0aG9uMy1taXNjIgogUkRFUEVORFNfJHtQTn0tbW9kdWxlc19hcHBlbmRfY2xhc3MtbmF0aXZlc2RrID0gIiBweXRob24zLW1pc2MiCiBGSUxFU18ke1BOfS1taXNjID0gIiR7bGliZGlyfS9weXRob24ke1BZVEhPTl9NQUpNSU59ICR7bGliZGlyfS9weXRob24ke1BZVEhPTl9NQUpNSU59L2xpYi1keW5sb2FkIgpkaWZmIC0tZ2l0IGEvcG9reS9tZXRhL3JlY2lwZXMtZGV2dG9vbHMvcWVtdS9xZW11LmluYyBiL3Bva3kvbWV0YS9yZWNpcGVzLWRldnRvb2xzL3FlbXUvcWVtdS5pbmMKaW5kZXggZDJkZDJiYy4uMjQxZjlkYiAxMDA2NDQKLS0tIGEvcG9reS9tZXRhL3JlY2lwZXMtZGV2dG9vbHMvcWVtdS9xZW11LmluYworKysgYi9wb2t5L21ldGEvcmVjaXBlcy1kZXZ0b29scy9xZW11L3FlbXUuaW5jCkBAIC0yMiw2ICsyMiw3IEBACiAgICAgICAgICAgIGZpbGU6Ly8wMDA3LWFwaWMtZml4dXAtZmFsbHRocm91Z2gtdG8tUElDLnBhdGNoIFwKICAgICAgICAgICAgZmlsZTovLzAwMDgtbGludXgtdXNlci1GaXgtd2Via2l0Z3RrLWhhbmdzLW9uLTMyLWJpdC14ODYtdGFyZ2V0LnBhdGNoIFwKICAgICAgICAgICAgZmlsZTovLzAwMDktRml4LXdlYmtpdGd0ay1idWlsZHMucGF0Y2ggXAorICAgICAgICAgICBmaWxlOi8vMDAxMC1jb25maWd1cmUtQWRkLXBrZy1jb25maWctaGFuZGxpbmctZm9yLWxpYmdjcnlwdC5wYXRjaCBcCiAgICAgICAgICAgICIKIFVQU1RSRUFNX0NIRUNLX1JFR0VYID0gInFlbXUtKD9QPHB2ZXI+XGQrKFwuXGQrKSspXC50YXIiCiAKQEAgLTEzMSw3ICsxMzIsNyBAQAogUEFDS0FHRUNPTkZJR1t2bmMtc2FzbF0gPSAiLS1lbmFibGUtdm5jIC0tZW5hYmxlLXZuYy1zYXNsLC0tZGlzYWJsZS12bmMtc2FzbCxjeXJ1cy1zYXNsLCIKIFBBQ0tBR0VDT05GSUdbdm5jLWpwZWddID0gIi0tZW5hYmxlLXZuYyAtLWVuYWJsZS12bmMtanBlZywtLWRpc2FibGUtdm5jLWpwZWcsanBlZywiCiBQQUNLQUdFQ09ORklHW3ZuYy1wbmddID0gIi0tZW5hYmxlLXZuYyAtLWVuYWJsZS12bmMtcG5nLC0tZGlzYWJsZS12bmMtcG5nLGxpYnBuZywiCi1QQUNLQUdFQ09ORklHW2xpYmN1cmxdID0gIi0tZW5hYmxlLWN1cmwsLS1kaXNhYmxlLWN1cmwsbGliY3VybCwiCitQQUNLQUdFQ09ORklHW2xpYmN1cmxdID0gIi0tZW5hYmxlLWN1cmwsLS1kaXNhYmxlLWN1cmwsY3VybCwiCiBQQUNLQUdFQ09ORklHW25zc10gPSAiLS1lbmFibGUtc21hcnRjYXJkLC0tZGlzYWJsZS1zbWFydGNhcmQsbnNzLCIKIFBBQ0tBR0VDT05GSUdbY3Vyc2VzXSA9ICItLWVuYWJsZS1jdXJzZXMsLS1kaXNhYmxlLWN1cnNlcyxuY3Vyc2VzLCIKIFBBQ0tBR0VDT05GSUdbZ3RrK10gPSAiLS1lbmFibGUtZ3RrLC0tZGlzYWJsZS1ndGssZ3RrKzMgZ2V0dGV4dC1uYXRpdmUiCmRpZmYgLS1naXQgYS9wb2t5L21ldGEvcmVjaXBlcy1kZXZ0b29scy9xZW11L3FlbXUvMDAxMC1jb25maWd1cmUtQWRkLXBrZy1jb25maWctaGFuZGxpbmctZm9yLWxpYmdjcnlwdC5wYXRjaCBiL3Bva3kvbWV0YS9yZWNpcGVzLWRldnRvb2xzL3FlbXUvcWVtdS8wMDEwLWNvbmZpZ3VyZS1BZGQtcGtnLWNvbmZpZy1oYW5kbGluZy1mb3ItbGliZ2NyeXB0LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmE4YWI3ZGEKLS0tIC9kZXYvbnVsbAorKysgYi9wb2t5L21ldGEvcmVjaXBlcy1kZXZ0b29scy9xZW11L3FlbXUvMDAxMC1jb25maWd1cmUtQWRkLXBrZy1jb25maWctaGFuZGxpbmctZm9yLWxpYmdjcnlwdC5wYXRjaApAQCAtMCwwICsxLDkzIEBACitGcm9tIDUyMTRkZDQ0NjFmMjA5MGVmMDk2NWI0ZDI1MThmNDk5MjdkNjFjYmMgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBIZSBaaGUgPHpoZS5oZUB3aW5kcml2ZXIuY29tPgorRGF0ZTogV2VkLCAyOCBBdWcgMjAxOSAxOTo1NjoyOCArMDgwMAorU3ViamVjdDogW1FlbXUtZGV2ZWxdIFtQQVRDSF0gY29uZmlndXJlOiBBZGQgcGtnLWNvbmZpZyBoYW5kbGluZyBmb3IgbGliZ2NyeXB0CisKK2xpYmdjcnlwdCBtYXkgYWxzbyBiZSBjb250cm9sbGVkIGJ5IHBrZy1jb25maWcsIHRoaXMgcGF0Y2ggYWRkcyBwa2ctY29uZmlnCitoYW5kbGluZyBmb3IgbGliZ2NyeXB0LgorCitVcHN0cmVhbS1TdGF0dXM6IERlbmllZCBbaHR0cHM6Ly9saXN0cy5ub25nbnUub3JnL2FyY2hpdmUvaHRtbC9xZW11LWRldmVsLzIwMTktMDgvbXNnMDYzMzMuaHRtbF0KKworU2lnbmVkLW9mZi1ieTogSGUgWmhlIDx6aGUuaGVAd2luZHJpdmVyLmNvbT4KKy0tLQorIGNvbmZpZ3VyZSB8IDQ4ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLQorIDEgZmlsZSBjaGFuZ2VkLCA0MCBpbnNlcnRpb25zKCspLCA4IGRlbGV0aW9ucygtKQorCitkaWZmIC0tZ2l0IGEvY29uZmlndXJlIGIvY29uZmlndXJlCitpbmRleCBlNDRlNDU0Li4wZjM2MmE3IDEwMDc1NQorLS0tIGEvY29uZmlndXJlCisrKysgYi9jb25maWd1cmUKK0BAIC0yODc1LDYgKzI4NzUsMzAgQEAgaGFzX2xpYmdjcnlwdCgpIHsKKyAgICAgcmV0dXJuIDAKKyB9CisgCisraGFzX2xpYmdjcnlwdF9wa2djb25maWcoKSB7CisrICAgIGlmICEgaGFzICRwa2dfY29uZmlnIDsgdGhlbgorKyAgICAgICAgcmV0dXJuIDEKKysgICAgZmkKKysKKysgICAgaWYgISAkcGtnX2NvbmZpZyAtLWxpc3QtYWxsIHwgZ3JlcCBsaWJnY3J5cHQgPiAvZGV2L251bGwgMj4mMSA7IHRoZW4KKysgICAgICAgIHJldHVybiAxCisrICAgIGZpCisrCisrICAgIGlmIHRlc3QgLW4gIiRjcm9zc19wcmVmaXgiIDsgdGhlbgorKyAgICAgICAgaG9zdD0kKCRwa2dfY29uZmlnIC0tdmFyaWFibGU9aG9zdCBsaWJnY3J5cHQpCisrICAgICAgICBpZiB0ZXN0ICIke2hvc3QlLWdudX0tIiAhPSAiJHtjcm9zc19wcmVmaXglLWdudX0iIDsgdGhlbgorKyAgICAgICAgICAgIHByaW50X2Vycm9yICJob3N0KCRob3N0KSBkb2VzIG5vdCBtYXRjaCBjcm9zc19wcmVmaXgoJGNyb3NzX3ByZWZpeCkiCisrICAgICAgICAgICAgcmV0dXJuIDEKKysgICAgICAgIGZpCisrICAgIGZpCisrCisrICAgIGlmICEgJHBrZ19jb25maWcgLS1hdGxlYXN0LXZlcnNpb249MS41LjAgbGliZ2NyeXB0IDsgdGhlbgorKyAgICAgICAgcHJpbnRfZXJyb3IgImxpYmdjcnlwdCB2ZXJzaW9uIGlzICQoJHBrZ19jb25maWcgLS1tb2R2ZXJzaW9uIGxpYmdjcnlwdCkiCisrICAgICAgICByZXR1cm4gMQorKyAgICBmaQorKworKyAgICByZXR1cm4gMAorK30KKyAKKyBpZiB0ZXN0ICIkbmV0dGxlIiAhPSAibm8iOyB0aGVuCisgICAgIHBhc3M9Im5vIgorQEAgLTI5MDIsNyArMjkyNiwxNCBAQCBmaQorIAorIGlmIHRlc3QgIiRnY3J5cHQiICE9ICJubyI7IHRoZW4KKyAgICAgcGFzcz0ibm8iCistICAgIGlmIGhhc19saWJnY3J5cHQ7IHRoZW4KKysgICAgaWYgaGFzX2xpYmdjcnlwdF9wa2djb25maWc7IHRoZW4KKysgICAgICAgIGdjcnlwdF9jZmxhZ3M9JCgkcGtnX2NvbmZpZyAtLWNmbGFncyBsaWJnY3J5cHQpCisrICAgICAgICBpZiB0ZXN0ICIkc3RhdGljIiA9ICJ5ZXMiIDsgdGhlbgorKyAgICAgICAgICAgIGdjcnlwdF9saWJzPSQoJHBrZ19jb25maWcgLS1saWJzIC0tc3RhdGljIGxpYmdjcnlwdCkKKysgICAgICAgIGVsc2UKKysgICAgICAgICAgICBnY3J5cHRfbGlicz0kKCRwa2dfY29uZmlnIC0tbGlicyBsaWJnY3J5cHQpCisrICAgICAgICBmaQorKyAgICBlbGlmIGhhc19saWJnY3J5cHQ7IHRoZW4KKyAgICAgICAgIGdjcnlwdF9jZmxhZ3M9JChsaWJnY3J5cHQtY29uZmlnIC0tY2ZsYWdzKQorICAgICAgICAgZ2NyeXB0X2xpYnM9JChsaWJnY3J5cHQtY29uZmlnIC0tbGlicykKKyAgICAgICAgICMgRGViaWFuIGhhcyByZW1vdmVkIC1sZ3BnLWVycm9yIGZyb20gbGliZ2NyeXB0LWNvbmZpZworQEAgLTI5MTIsMTUgKzI5NDMsMTYgQEAgaWYgdGVzdCAiJGdjcnlwdCIgIT0gIm5vIjsgdGhlbgorICAgICAgICAgdGhlbgorICAgICAgICAgICAgIGdjcnlwdF9saWJzPSIkZ2NyeXB0X2xpYnMgLWxncGctZXJyb3IiCisgICAgICAgICBmaQorKyAgICBmaQorIAorLSAgICAgICAgIyBMaW5rIHRlc3QgdG8gbWFrZSBzdXJlIHRoZSBnaXZlbiBsaWJyYXJpZXMgd29yayAoZS5nIGZvciBzdGF0aWMpLgorLSAgICAgICAgd3JpdGVfY19za2VsZXRvbgorLSAgICAgICAgaWYgY29tcGlsZV9wcm9nICIiICIkZ2NyeXB0X2xpYnMiIDsgdGhlbgorLSAgICAgICAgICAgIExJQlM9IiRnY3J5cHRfbGlicyAkTElCUyIKKy0gICAgICAgICAgICBRRU1VX0NGTEFHUz0iJFFFTVVfQ0ZMQUdTICRnY3J5cHRfY2ZsYWdzIgorLSAgICAgICAgICAgIHBhc3M9InllcyIKKy0gICAgICAgIGZpCisrICAgICMgTGluayB0ZXN0IHRvIG1ha2Ugc3VyZSB0aGUgZ2l2ZW4gbGlicmFyaWVzIHdvcmsgKGUuZyBmb3Igc3RhdGljKS4KKysgICAgd3JpdGVfY19za2VsZXRvbgorKyAgICBpZiBjb21waWxlX3Byb2cgIiIgIiRnY3J5cHRfbGlicyIgOyB0aGVuCisrCSAgICBMSUJTPSIkZ2NyeXB0X2xpYnMgJExJQlMiCisrCSAgICBRRU1VX0NGTEFHUz0iJFFFTVVfQ0ZMQUdTICRnY3J5cHRfY2ZsYWdzIgorKwkgICAgcGFzcz0ieWVzIgorICAgICBmaQorKworICAgICBpZiB0ZXN0ICIkcGFzcyIgPSAieWVzIjsgdGhlbgorICAgICAgICAgZ2NyeXB0PSJ5ZXMiCisgICAgICAgICBjYXQgPiAkVE1QQyA8PCBFT0YKKy0tIAorMi43LjQKKwpkaWZmIC0tZ2l0IGEvcG9reS9tZXRhL3JlY2lwZXMtZGV2dG9vbHMvcWVtdS9xZW11XzQuMS4wLmJiIGIvcG9reS9tZXRhL3JlY2lwZXMtZGV2dG9vbHMvcWVtdS9xZW11XzQuMS4wLmJiCmluZGV4IDc2Nzc2MDkuLmYwYzFkYWEgMTAwNjQ0Ci0tLSBhL3Bva3kvbWV0YS9yZWNpcGVzLWRldnRvb2xzL3FlbXUvcWVtdV80LjEuMC5iYgorKysgYi9wb2t5L21ldGEvcmVjaXBlcy1kZXZ0b29scy9xZW11L3FlbXVfNC4xLjAuYmIKQEAgLTIsNiArMiwxMCBAQAogCiByZXF1aXJlIHFlbXUuaW5jCiAKKyMgZXJyb3I6IGEgcGFyYW1ldGVyIGxpc3Qgd2l0aG91dCB0eXBlcyBpcyBvbmx5IGFsbG93ZWQgaW4gYSBmdW5jdGlvbiBkZWZpbml0aW9uCisjICAgICAgICAgICAgdm9pZCAoKl9mdW5jdGlvbikoc2lndmFsX3QpOworQ09NUEFUSUJMRV9IT1NUX2xpYmMtbXVzbCA9ICdudWxsJworCiBERVBFTkRTID0gImdsaWItMi4wIHpsaWIgcGl4bWFuIGJpc29uLW5hdGl2ZSIKIAogUkRFUEVORFNfJHtQTn1fY2xhc3MtdGFyZ2V0ICs9ICJiYXNoIgpkaWZmIC0tZ2l0IGEvcG9reS9tZXRhL3JlY2lwZXMtZGV2dG9vbHMvcnBtL2ZpbGVzLzAwMDEtbW9uby1maW5kLXByb3ZpZGVzLXJlcXVpcmVzLWRvLW5vdC11c2UtbW9ub2Rpcy1mcm9tLS5wYXRjaCBiL3Bva3kvbWV0YS9yZWNpcGVzLWRldnRvb2xzL3JwbS9maWxlcy8wMDAxLW1vbm8tZmluZC1wcm92aWRlcy1yZXF1aXJlcy1kby1ub3QtdXNlLW1vbm9kaXMtZnJvbS0ucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjRhYTRjNwotLS0gL2Rldi9udWxsCisrKyBiL3Bva3kvbWV0YS9yZWNpcGVzLWRldnRvb2xzL3JwbS9maWxlcy8wMDAxLW1vbm8tZmluZC1wcm92aWRlcy1yZXF1aXJlcy1kby1ub3QtdXNlLW1vbm9kaXMtZnJvbS0ucGF0Y2gKQEAgLTAsMCArMSw1OCBAQAorRnJvbSA0M2ZiYzNmNTMzMDJhMzk1NDYzZTg0NTBhYzgxYzUzZjYyM2VlYzNmIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogQWxleGFuZGVyIEthbmF2aW4gPGFsZXgua2FuYXZpbkBnbWFpbC5jb20+CitEYXRlOiBUdWUsIDI3IEF1ZyAyMDE5IDE3OjQyOjM0ICswMjAwCitTdWJqZWN0OiBbUEFUQ0hdIG1vbm8tZmluZC1wcm92aWRlcy9yZXF1aXJlczogZG8gbm90IHVzZSBtb25vZGlzIGZyb20gdGhlIGhvc3QKKworVGhlcmUgd2FzIGEgaG9zdCBjb250YW1pbmF0aW9uIGlzc3VlIGhlcmU6IGlmIG1vbm9kaXMgd2FzIGluc3RhbGxlZAorb24gdGhlIGhvc3QsIGRvX3BhY2thZ2Ugd291bGQgdXNlIHRoYXQgdG8gcmVzb2x2ZSBkZXBlbmRlbmNpZXMKK29mIG1vbm8gbGlicmFyaWVzIChhbmQgb2Z0ZW4gZmFpbCBpbiB0aGF0KS4gV2l0aG91dCBtb25vZGlzLAorbm8gZGVwZW5kZW5jaWVzIGFyZSByZXNvbHZlZCwgd2hpY2ggaXMgc2VlbWluZ2x5IGhvdyB0aGluZ3MKK2FyZSBzdXBwb3NlZCB0byB3b3JrLgorCitVcHN0cmVhbS1TdGF0dXM6IEluYXBwcm9wcmlhdGUgW29lLWNvcmUgc3BlY2lmaWNdCitTaWduZWQtb2ZmLWJ5OiBBbGV4YW5kZXIgS2FuYXZpbiA8YWxleC5rYW5hdmluQGdtYWlsLmNvbT4KKy0tLQorIHNjcmlwdHMvbW9uby1maW5kLXByb3ZpZGVzIHwgOCArKysrLS0tLQorIHNjcmlwdHMvbW9uby1maW5kLXJlcXVpcmVzIHwgOCArKysrLS0tLQorIDIgZmlsZXMgY2hhbmdlZCwgOCBpbnNlcnRpb25zKCspLCA4IGRlbGV0aW9ucygtKQorCitkaWZmIC0tZ2l0IGEvc2NyaXB0cy9tb25vLWZpbmQtcHJvdmlkZXMgYi9zY3JpcHRzL21vbm8tZmluZC1wcm92aWRlcworaW5kZXggOTM0ODQ1N2QzLi5iMjg4NzJmZmIgMTAwNjQ0CistLS0gYS9zY3JpcHRzL21vbm8tZmluZC1wcm92aWRlcworKysrIGIvc2NyaXB0cy9tb25vLWZpbmQtcHJvdmlkZXMKK0BAIC0xOCwxMSArMTgsMTEgQEAgbW9ub2xpc3Q9KCQocHJpbnRmICIlc1xuIiAiJHtmaWxlbGlzdFtAXX0iIHwgZ3JlcCAtRSAiXFwuKGV4ZXxkbGwpXCQiKSkKKyBidWlsZF9iaW5kaXI9IiQyL3Vzci9iaW4iCisgYnVpbGRfbGliZGlyPSIkMiQzIgorIAorLWlmIFsgLXggJGJ1aWxkX2JpbmRpci9tb25vZGlzIF07IHRoZW4KKy0gICAgbW9ub2Rpcz0iJGJ1aWxkX2JpbmRpci9tb25vZGlzIgorK2lmIFsgLXggJGJ1aWxkX2JpbmRpci9tb25vZGlzLmJvZ3VzIF07IHRoZW4KKysgICAgbW9ub2Rpcz0iJGJ1aWxkX2JpbmRpci9tb25vZGlzLmJvZ3VzIgorICAgICBleHBvcnQgTERfTElCUkFSWV9QQVRIPSRidWlsZF9saWJkaXIke0xEX0xJQlJBUllfUEFUSDorOiRMRF9MSUJSQVJZX1BBVEh9CistZWxpZiBbIC14IC91c3IvYmluL21vbm9kaXMgXTsgdGhlbgorLSAgICBtb25vZGlzPSIvdXNyL2Jpbi9tb25vZGlzIgorK2VsaWYgWyAteCAvdXNyL2Jpbi9tb25vZGlzLmJvZ3VzIF07IHRoZW4KKysgICAgbW9ub2Rpcz0iL3Vzci9iaW4vbW9ub2Rpcy5ib2d1cyIKKyBlbHNlCisgICAgIGV4aXQgMDsKKyBmaQorZGlmZiAtLWdpdCBhL3NjcmlwdHMvbW9uby1maW5kLXJlcXVpcmVzIGIvc2NyaXB0cy9tb25vLWZpbmQtcmVxdWlyZXMKK2luZGV4IGVhNThjYWU0OC4uZDI3MDE2OWUxIDEwMDY0NAorLS0tIGEvc2NyaXB0cy9tb25vLWZpbmQtcmVxdWlyZXMKKysrKyBiL3NjcmlwdHMvbW9uby1maW5kLXJlcXVpcmVzCitAQCAtMTgsMTEgKzE4LDExIEBAIG1vbm9saXN0PSgkKHByaW50ZiAiJXNcbiIgIiR7ZmlsZWxpc3RbQF19IiB8IGdyZXAgLUUgIlxcLihleGV8ZGxsKVwkIikpCisgYnVpbGRfYmluZGlyPSIkMi91c3IvYmluIgorIGJ1aWxkX2xpYmRpcj0iJDIkMyIKKyAKKy1pZiBbIC14ICRidWlsZF9iaW5kaXIvbW9ub2RpcyBdOyB0aGVuCistICAgIG1vbm9kaXM9IiRidWlsZF9iaW5kaXIvbW9ub2RpcyIKKytpZiBbIC14ICRidWlsZF9iaW5kaXIvbW9ub2Rpcy5ib2d1cyBdOyB0aGVuCisrICAgIG1vbm9kaXM9IiRidWlsZF9iaW5kaXIvbW9ub2Rpcy5ib2d1cyIKKyAgICAgZXhwb3J0IExEX0xJQlJBUllfUEFUSD0kYnVpbGRfbGliZGlyJHtMRF9MSUJSQVJZX1BBVEg6KzokTERfTElCUkFSWV9QQVRIfQorLWVsaWYgWyAteCAvdXNyL2Jpbi9tb25vZGlzIF07IHRoZW4KKy0gICAgbW9ub2Rpcz0iL3Vzci9iaW4vbW9ub2RpcyIKKytlbGlmIFsgLXggL3Vzci9iaW4vbW9ub2Rpcy5ib2d1cyBdOyB0aGVuCisrICAgIG1vbm9kaXM9Ii91c3IvYmluL21vbm9kaXMuYm9ndXMiCisgZWxzZQorICAgICBleGl0IDA7CisgZmkKZGlmZiAtLWdpdCBhL3Bva3kvbWV0YS9yZWNpcGVzLWRldnRvb2xzL3JwbS9ycG1fNC4xNC4yLjEuYmIgYi9wb2t5L21ldGEvcmVjaXBlcy1kZXZ0b29scy9ycG0vcnBtXzQuMTQuMi4xLmJiCmluZGV4IDA2M2Y0MjYuLmMzNzMzMGUgMTAwNjQ0Ci0tLSBhL3Bva3kvbWV0YS9yZWNpcGVzLWRldnRvb2xzL3JwbS9ycG1fNC4xNC4yLjEuYmIKKysrIGIvcG9reS9tZXRhL3JlY2lwZXMtZGV2dG9vbHMvcnBtL3JwbV80LjE0LjIuMS5iYgpAQCAtNDEsNiArNDEsNyBAQAogICAgICAgICAgICBmaWxlOi8vMDAwMS1wZXJsLWRpc2FibGUtYXV0by1yZXFzLnBhdGNoIFwKICAgICAgICAgICAgZmlsZTovLzAwMDEtcnBtLXJwbWlvLmMtcmVzdHJpY3QtdmlydHVhbC1tZW1vcnktdXNhZ2UtaWYtbGltaXQtcy5wYXRjaCBcCiAgICAgICAgICAgIGZpbGU6Ly8wMDE2LXJwbXNjcmlwdC5jLWNoYW5nZS1sb2dnaW5nLWxldmVsLWFyb3VuZC1zY3JpcHRsZXRzLXQucGF0Y2ggXAorICAgICAgICAgICBmaWxlOi8vMDAwMS1tb25vLWZpbmQtcHJvdmlkZXMtcmVxdWlyZXMtZG8tbm90LXVzZS1tb25vZGlzLWZyb20tLnBhdGNoIFwKICAgICAgICAgICAgIgogCiBQRSA9ICIxIgpkaWZmIC0tZ2l0IGEvcG9reS9tZXRhL3JlY2lwZXMtZGV2dG9vbHMvc3VidmVyc2lvbi9zdWJ2ZXJzaW9uL3N1YnZlcnNpb24tMS4xMi4wLWFwcl8xLjcuMF9maXgtMS5wYXRjaCBiL3Bva3kvbWV0YS9yZWNpcGVzLWRldnRvb2xzL3N1YnZlcnNpb24vc3VidmVyc2lvbi9zdWJ2ZXJzaW9uLTEuMTIuMC1hcHJfMS43LjBfZml4LTEucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGYwZWRkNWYuLjAwMDAwMDAKLS0tIGEvcG9reS9tZXRhL3JlY2lwZXMtZGV2dG9vbHMvc3VidmVyc2lvbi9zdWJ2ZXJzaW9uL3N1YnZlcnNpb24tMS4xMi4wLWFwcl8xLjcuMF9maXgtMS5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDEwNyArMCwwIEBACi1Gcm9tIGIxNDc4MDM1NTMyMzc2NTRmODI2OGU4MzFkZWU4ZmVkNDk4OWFkM2IgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBIb25neHUgSmlhIDxob25neHUuamlhQHdpbmRyaXZlci5jb20+Ci1EYXRlOiBTYXQsIDExIE1heSAyMDE5IDE0OjQ2OjM5ICswODAwCi1TdWJqZWN0OiBbUEFUQ0hdIFN1Ym1pdHRlZCBCeTogUGllcnJlIExhYmFzdGllIChwaWVycmUgZG90IGxhYmFzdGllIGF0IG5ldWYKLSBkb3QgZnIpIERhdGU6IDIwMTktMDQtMTcgSW5pdGlhbCBQYWNrYWdlIFZlcnNpb246IDEuMTEuMSBPcmlnaW46IFVwc3RyZWFtCi0gcmV2aXNpb24gMTg1NzM5MSBVcHN0cmVhbSBTdGF0dXM6IENvbW1pdHRlZCBEZXNjcmlwdGlvbjogR2V0IHJpZCBvZgotIGFwcl9pbnQ2NF90IGZvcm1hdCBzdHJpbmcgY2hlY2sgaW4gc3dpZyBweSBjb25maWd1cmUuCi0KLVRoaXMgY2hlY2sgcmVsaWVkIG9uIEFQUiBpbXBsZW1lbnRhdGlvbiBkZXRhaWxzIGFuZCBicm9rZSB3aXRoIEFQUiAxLjcuMC4KLVJhdGhlciB0aGFuIHRyeWluZyB0byBndWVzcyBhIHBlcmZlY3QgZm9ybWF0IHN0cmluZyB0byB1c2UsIGp1c3QgdXNlIHRoZQotbGFyZ2VzdCBwb3NzaWJsZSBmb3JtYXQgYW5kIGNhc3QgdGhlIGFyZ3VtZW50IGFjY29yZGluZ2x5LgotCi1TaG91bGQgZml4IGJ1aWxkIGFnYWluc3QgQVBSIDEuNy4wIGFuZCBsYXRlci4KLQotU3VnZ2VzdGVkIGJ5OiBicmFuZQotCi0qIGJ1aWxkL2FjLW1hY3Jvcy9zd2lnLm00OiBSZW1vdmUgY29kZSByZWxhdGVkIHRvIFNWTl9BUFJfSU5UNjRfVF9QWUNGTVQuCi0KLSogc3VidmVyc2lvbi9iaW5kaW5ncy9zd2lnL3B5dGhvbi9saWJzdm5fc3dpZ19weS9zd2lndXRpbF9weS5jCi0gIChzdm5fc3dpZ19weV9jbGllbnRfYmxhbWVfcmVjZWl2ZXJfZnVuYyk6IFN0b3AgcmVseWluZyBvbiB0aGUKLSAgIFNWTl9BUFJfSU5UNjRfVF9QWUNGTVQgY29uc3RhbnQgZnJvbSBjb25maWd1cmUuIFVzZSAiTCIgYW5kCi0gICBhY2FzdCB0byBQWV9MT05HX0xPTkcgaW5zdGVhZC4KLQotVXBzdHJlYW0tU3RhdHVzOiBCYWNrcG9ydCBbd3d3LmxpbnV4ZnJvbXNjcmF0Y2gub3JnL3BhdGNoZXMvYmxmcy9zdm4vc3VidmVyc2lvbi0xLjEyLjAtYXByXzEuNy4wX2ZpeC0xLnBhdGNoXQotCi1TaWduZWQtb2ZmLWJ5OiBIb25neHUgSmlhIDxob25neHUuamlhQHdpbmRyaXZlci5jb20+Ci0tLS0KLSBidWlsZC9hYy1tYWNyb3Mvc3dpZy5tNCAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDM1IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSAuLi4vc3dpZy9weXRob24vbGlic3ZuX3N3aWdfcHkvc3dpZ3V0aWxfcHkuYyAgICAgICB8ICA5ICsrKy0tLQotIDIgZmlsZXMgY2hhbmdlZCwgNCBpbnNlcnRpb25zKCspLCA0MCBkZWxldGlvbnMoLSkKLQotZGlmZiAtLWdpdCBhL2J1aWxkL2FjLW1hY3Jvcy9zd2lnLm00IGIvYnVpbGQvYWMtbWFjcm9zL3N3aWcubTQKLWluZGV4IDU1NTAxZmIuLjI5NjM4NzIgMTAwNjQ0Ci0tLS0gYS9idWlsZC9hYy1tYWNyb3Mvc3dpZy5tNAotKysrIGIvYnVpbGQvYWMtbWFjcm9zL3N3aWcubTQKLUBAIC0xMjgsNDEgKzEyOCw2IEBAIEFDX0RFRlVOKFNWTl9GSU5EX1NXSUcsCi0gICAgICAgYWNfY3ZfcHl0aG9uX2xpYnM9ImAkUFlUSE9OICR7YWJzX3NyY2Rpcn0vYnVpbGQvZ2V0LXB5LWluZm8ucHkgLS1saWJzYCIKLSAgICAgXSkKLSAgICAgU1dJR19QWV9MSUJTPSJgU1ZOX1JFTU9WRV9TVEFOREFSRF9MSUJfRElSUygkYWNfY3ZfcHl0aG9uX2xpYnMpYCIKLS0KLS0gICAgZG5sIFN1biBGb3J0ZSBhZGRzIGFuIGV4dHJhIHNwYWNlIGJlZm9yZSBzdWJzdGl0dXRpbmcgQVBSX0lOVDY0X1RfRk1UCi0tICAgIGRubCBnY2MtMi45NSBhZGRzIGFuIGV4dHJhIHNwYWNlIGFmdGVyIHN1YnN0aXR1dGluZyBBUFJfSU5UNjRfVF9GTVQKLS0gICAgZG5sIHRodXMgdGhlIGVncmVwIHBhdHRlcm5zIGhhdmUgYSArIGluIHRoZW0uCi0tICAgIFNWTl9QWUNGTVRfU0FWRV9DUFBGTEFHUz0iJENQUEZMQUdTIgotLSAgICBDUFBGTEFHUz0iJENQUEZMQUdTICRTVk5fQVBSX0lOQ0xVREVTIgotLSAgICBBQ19DQUNIRV9DSEVDSyhbZm9yIGFwcl9pbnQ2NF90IFB5dGhvbi9DIEFQSSBmb3JtYXQgc3RyaW5nXSwKLS0gICAgICAgICAgICAgICAgICAgW3N2bl9jdl9weWNmbXRfYXByX2ludDY0X3RdLCBbCi0tICAgICAgaWYgdGVzdCAieCRzdm5fY3ZfcHljZm10X2Fwcl9pbnQ2NF90IiA9ICJ4IjsgdGhlbgotLSAgICAgICAgQUNfRUdSRVBfQ1BQKFtNYVRjSHRIaVMgK1wibGxkXCIgK0VuRGVOZF0sCi0tICAgICAgICAgICAgICAgICAgICAgWyNpbmNsdWRlIDxhcHIuaD4KLS0gICAgICAgICAgICAgICAgICAgICAgTWFUY0h0SGlTIEFQUl9JTlQ2NF9UX0ZNVCBFbkRlTmRdLAotLSAgICAgICAgICAgICAgICAgICAgIFtzdm5fY3ZfcHljZm10X2Fwcl9pbnQ2NF90PSJMIl0pCi0tICAgICAgZmkKLS0gICAgICBpZiB0ZXN0ICJ4JHN2bl9jdl9weWNmbXRfYXByX2ludDY0X3QiID0gIngiOyB0aGVuCi0tICAgICAgICBBQ19FR1JFUF9DUFAoW01hVGNIdEhpUyArXCJsZFwiICtFbkRlTmRdLHIKLS0gICAgICAgICAgICAgICAgICAgICBbI2luY2x1ZGUgPGFwci5oPgotLSAgICAgICAgICAgICAgICAgICAgICBNYVRjSHRIaVMgQVBSX0lOVDY0X1RfRk1UIEVuRGVOZF0sCi0tICAgICAgICAgICAgICAgICAgICAgW3N2bl9jdl9weWNmbXRfYXByX2ludDY0X3Q9ImwiXSkKLS0gICAgICBmaQotLSAgICAgIGlmIHRlc3QgIngkc3ZuX2N2X3B5Y2ZtdF9hcHJfaW50NjRfdCIgPSAieCI7IHRoZW4KLS0gICAgICAgIEFDX0VHUkVQX0NQUChbTWFUY0h0SGlTICtcImRcIiArRW5EZU5kXSwKLS0gICAgICAgICAgICAgICAgICAgICBbI2luY2x1ZGUgPGFwci5oPgotLSAgICAgICAgICAgICAgICAgICAgICBNYVRjSHRIaVMgQVBSX0lOVDY0X1RfRk1UIEVuRGVOZF0sCi0tICAgICAgICAgICAgICAgICAgICAgW3N2bl9jdl9weWNmbXRfYXByX2ludDY0X3Q9ImkiXSkKLS0gICAgICBmaQotLSAgICBdKQotLSAgICBDUFBGTEFHUz0iJFNWTl9QWUNGTVRfU0FWRV9DUFBGTEFHUyIKLS0gICAgaWYgdGVzdCAieCRzdm5fY3ZfcHljZm10X2Fwcl9pbnQ2NF90IiA9ICJ4IjsgdGhlbgotLSAgICAgIEFDX01TR19FUlJPUihbZmFpbGVkIHRvIHJlY29nbml6ZSBBUFJfSU5UNjRfVF9GTVQgb24gdGhpcyBwbGF0Zm9ybV0pCi0tICAgIGZpCi0tICAgIEFDX0RFRklORV9VTlFVT1RFRChbU1ZOX0FQUl9JTlQ2NF9UX1BZQ0ZNVF0sCi0tICAgICAgICAgICAgICAgICAgICAgICBbIiRzdm5fY3ZfcHljZm10X2Fwcl9pbnQ2NF90Il0sCi0tICAgICAgICAgICAgICAgICAgICAgICBbRGVmaW5lIHRvIHRoZSBQeXRob24vQyBBUEkgZm9ybWF0IGNoYXJhY3RlciBzdWl0YWJsZV0KLS0gICAgICAgICAgICAgICAgICAgICAgIFsgZm9yIGFwcl9pbnQ2NF90XSkKLSAgIGZpCi0gCi0gICBpZiB0ZXN0ICIkUEVSTCIgIT0gIm5vbmUiOyB0aGVuCi1kaWZmIC0tZ2l0IGEvc3VidmVyc2lvbi9iaW5kaW5ncy9zd2lnL3B5dGhvbi9saWJzdm5fc3dpZ19weS9zd2lndXRpbF9weS5jIGIvc3VidmVyc2lvbi9iaW5kaW5ncy9zd2lnL3B5dGhvbi9saWJzdm5fc3dpZ19weS9zd2lndXRpbF9weS5jCi1pbmRleCAyYzkwYTZhLi5hYmU1YTJhIDEwMDY0NAotLS0tIGEvc3VidmVyc2lvbi9iaW5kaW5ncy9zd2lnL3B5dGhvbi9saWJzdm5fc3dpZ19weS9zd2lndXRpbF9weS5jCi0rKysgYi9zdWJ2ZXJzaW9uL2JpbmRpbmdzL3N3aWcvcHl0aG9uL2xpYnN2bl9zd2lnX3B5L3N3aWd1dGlsX3B5LmMKLUBAIC00Niw3ICs0Niw3IEBACi0gI2luY2x1ZGUgInN2bl9tZXJnZWluZm8uaCIKLSAjaW5jbHVkZSAic3ZuX3R5cGVzLmgiCi0gCi0tI2luY2x1ZGUgInN2bl9wcml2YXRlX2NvbmZpZy5oIiAvKiBmb3IgU1ZOX0FQUl9JTlQ2NF9UX1BZQ0ZNVCAqLwotKyNpbmNsdWRlICJzdm5fcHJpdmF0ZV9jb25maWcuaCIKLSAKLSAjaW5jbHVkZSAic3dpZ19weXRob25fZXh0ZXJuYWxfcnVudGltZS5zd2ciCi0gI2luY2x1ZGUgInN3aWd1dGlsX3B5LmgiCi1AQCAtMzM5NCwxMCArMzM5NCw5IEBAIHN2bl9lcnJvcl90ICpzdm5fc3dpZ19weV9jbGllbnRfYmxhbWVfcmVjZWl2ZXJfZnVuYyh2b2lkICpiYXRvbiwKLSAgIHN2bl9zd2lnX3B5X2FjcXVpcmVfcHlfbG9jaygpOwotIAotICAgaWYgKChyZXN1bHQgPSBQeU9iamVjdF9DYWxsRnVuY3Rpb24ocmVjZWl2ZXIsCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2hhciAqKQotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFNWTl9BUFJfSU5UNjRfVF9QWUNGTVQgImxzc3NPJiIpLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGluZV9ubywgcmV2aXNpb24sIGF1dGhvciwgZGF0ZSwgbGluZSwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1ha2Vfb2JfcG9vbCwgcG9vbCkpID09IE5VTEwpCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2hhciAqKSJMbHNzc08mIiwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChQWV9MT05HX0xPTkcpbGluZV9ubywgcmV2aXNpb24sIGF1dGhvciwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGUsIGxpbmUsIG1ha2Vfb2JfcG9vbCwgcG9vbCkpID09IE5VTEwpCi0gICAgIHsKLSAgICAgICBlcnIgPSBjYWxsYmFja19leGNlcHRpb25fZXJyb3IoKTsKLSAgICAgfQotLS0gCi0yLjcuNAotCmRpZmYgLS1naXQgYS9wb2t5L21ldGEvcmVjaXBlcy1kZXZ0b29scy9zdWJ2ZXJzaW9uL3N1YnZlcnNpb25fMS4xMi4wLmJiIGIvcG9reS9tZXRhL3JlY2lwZXMtZGV2dG9vbHMvc3VidmVyc2lvbi9zdWJ2ZXJzaW9uXzEuMTIuMi5iYgpzaW1pbGFyaXR5IGluZGV4IDk0JQpyZW5hbWUgZnJvbSBwb2t5L21ldGEvcmVjaXBlcy1kZXZ0b29scy9zdWJ2ZXJzaW9uL3N1YnZlcnNpb25fMS4xMi4wLmJiCnJlbmFtZSB0byBwb2t5L21ldGEvcmVjaXBlcy1kZXZ0b29scy9zdWJ2ZXJzaW9uL3N1YnZlcnNpb25fMS4xMi4yLmJiCmluZGV4IGYxYWMxZGMuLjRmZmExYzUgMTAwNjQ0Ci0tLSBhL3Bva3kvbWV0YS9yZWNpcGVzLWRldnRvb2xzL3N1YnZlcnNpb24vc3VidmVyc2lvbl8xLjEyLjAuYmIKKysrIGIvcG9reS9tZXRhL3JlY2lwZXMtZGV2dG9vbHMvc3VidmVyc2lvbi9zdWJ2ZXJzaW9uXzEuMTIuMi5iYgpAQCAtMTEsMTEgKzExLDEwIEBACiAgICAgICAgICAgIGZpbGU6Ly9kaXNhYmxlX21hY29zLnBhdGNoIFwKICAgICAgICAgICAgZmlsZTovLzAwMDEtRml4LWxpYnRvb2wtbmFtZS1pbi1jb25maWd1cmUuYWMucGF0Y2ggXAogICAgICAgICAgICBmaWxlOi8vc2VyZm1hY3JvLnBhdGNoIFwKLSAgICAgICAgICAgZmlsZTovL3N1YnZlcnNpb24tMS4xMi4wLWFwcl8xLjcuMF9maXgtMS5wYXRjaCBcCiAgICAgICAgICAgICIKIAotU1JDX1VSSVttZDVzdW1dID0gImJlNGY1YzBiMWIzOGE1ZDgyYmQ2ZDE2YTE2ZmYxMzQ2IgotU1JDX1VSSVtzaGEyNTZzdW1dID0gIjdmYWU3YzczZDhhMDA3YzEwN2MwYWU1ZWIzNzJiYzBiYjAxM2RiZmU5NjZmY2Q1YzU5Y2Q1YTE5NWE1ZTJlZGYiCitTUkNfVVJJW21kNXN1bV0gPSAiMWZmMjQ5Zjg0OGY4MzRkZWQ4ODUzNjU0M2UwMzE5NzUiCitTUkNfVVJJW3NoYTI1NnN1bV0gPSAiM2JkMGI1YzhlNGM1MTc1MjYzZGM5YTkyZmQ5YWVmOTRjZTkxN2U4MGFmMDM0ZjI2ZmU1YzQ1ZmRlN2UwZjc3MSIKIAogaW5oZXJpdCBhdXRvdG9vbHMgcGtnY29uZmlnIGdldHRleHQKIApkaWZmIC0tZ2l0IGEvcG9reS9tZXRhL3JlY2lwZXMtZGV2dG9vbHMvc3lzdGVtZC1ib290Y2hhcnQvc3lzdGVtZC1ib290Y2hhcnRfMjMzLmJiIGIvcG9reS9tZXRhL3JlY2lwZXMtZGV2dG9vbHMvc3lzdGVtZC1ib290Y2hhcnQvc3lzdGVtZC1ib290Y2hhcnRfMjMzLmJiCmluZGV4IDFhZTIxYjEuLmIwNDMzZTAgMTAwNjQ0Ci0tLSBhL3Bva3kvbWV0YS9yZWNpcGVzLWRldnRvb2xzL3N5c3RlbWQtYm9vdGNoYXJ0L3N5c3RlbWQtYm9vdGNoYXJ0XzIzMy5iYgorKysgYi9wb2t5L21ldGEvcmVjaXBlcy1kZXZ0b29scy9zeXN0ZW1kLWJvb3RjaGFydC9zeXN0ZW1kLWJvb3RjaGFydF8yMzMuYmIKQEAgLTMzLDUgKzMzLDUgQEAKIAogRklMRVNfJHtQTn0gKz0gIiR7c3lzdGVtZF91bml0ZGlyfS9zeXN0ZW1kLWJvb3RjaGFydCIKIAotRVhUUkFfT0VDT05GID0gIiAtLXdpdGgtcm9vdHByZWZpeD0ke2Jhc2VfcHJlZml4fSBcCitFWFRSQV9PRUNPTkYgPSAiIC0td2l0aC1yb290cHJlZml4PSR7cm9vdF9wcmVmaXh9IFwKICAgICAgICAgICAgICAgICAgLS13aXRoLXJvb3RsaWJkaXI9JHtiYXNlX2xpYmRpcn0iCmRpZmYgLS1naXQgYS9wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC9jdXBzL2N1cHMuaW5jIGIvcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvY3Vwcy9jdXBzLmluYwppbmRleCA0NmZiMmRkLi5lMzAzZjM0IDEwMDY0NAotLS0gYS9wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC9jdXBzL2N1cHMuaW5jCisrKyBiL3Bva3kvbWV0YS9yZWNpcGVzLWV4dGVuZGVkL2N1cHMvY3Vwcy5pbmMKQEAgLTY3LDcgKzY3LDcgQEAKIAogCSMgUmVtb3ZlIC92YXIvcnVuIGZyb20gcGFja2FnZSBhcyBjdXBzZCB3aWxsIHBvcHVsYXRlIGl0IG9uIHN0YXJ0dXAKIAlybSAtZnIgJHtEfS8ke2xvY2Fsc3RhdGVkaXJ9L3J1bgotCXJtZGlyICR7RH0vJHtsaWJkaXJ9LyR7QlBOfS9kcml2ZXIKKwlybWRpciAke0R9LyR7bGliZXhlY2Rpcn0vJHtCUE59L2RyaXZlcgogCiAJIyBGaXggdGhlIHBhbSBjb25maWd1cmF0aW9uIGZpbGUgcGVybWlzc2lvbnMKIAlpZiAke0BiYi51dGlscy5jb250YWlucygnRElTVFJPX0ZFQVRVUkVTJywgJ3BhbScsICd0cnVlJywgJ2ZhbHNlJywgZCl9OyB0aGVuCmRpZmYgLS1naXQgYS9wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC9jdXBzL2N1cHMvY3Vwc19zZXJ2ZXJiaW4ucGF0Y2ggYi9wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC9jdXBzL2N1cHMvY3Vwc19zZXJ2ZXJiaW4ucGF0Y2gKaW5kZXggZjdiNDRhNy4uODVjNmFmMSAxMDA2NDQKLS0tIGEvcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvY3Vwcy9jdXBzL2N1cHNfc2VydmVyYmluLnBhdGNoCisrKyBiL3Bva3kvbWV0YS9yZWNpcGVzLWV4dGVuZGVkL2N1cHMvY3Vwcy9jdXBzX3NlcnZlcmJpbi5wYXRjaApAQCAtNCw2ICs0LDEyIEBACiBTaWduZWQtb2ZmLWJ5OiBLaGVtIFJhaiA8cmFqLmtoZW1AZ21haWwuY29tPgogVXBzdHJlYW0tU3RhdHVzOiBJbmFwcHJvcHJpYXRlIFtPRSBjb25maWcgc3BlY2lmaWNdCiAKK1VwZGF0ZSBvbiAyMDE5MDkwNDoKK1JlZGVmaW5lIENVUFNfU0VSVkVSQklOIHRvICIkbGliZXhlY2Rpci9jdXBzIiB3aGljaCBzb2x2ZXMgZmlsZSBjb25mbGljdGlvbgord2hlbiBtdWx0aWxpYiBpcyBlbmFibGVkLgorCitTaWduZWQtb2ZmLWJ5OiBLYWkgS2FuZyA8a2FpLmthbmdAd2luZHJpdmVyLmNvbT4KKwogSW5kZXg6IGN1cHMtMS40LjYvY29uZmlnLXNjcmlwdHMvY3Vwcy1kaXJlY3Rvcmllcy5tNAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogLS0tIGN1cHMtMS40LjYub3JpZy9jb25maWctc2NyaXB0cy9jdXBzLWRpcmVjdG9yaWVzLm00CTIwMDktMDQtMTIgMTY6MDQ6NTEuMDAwMDAwMDAwIC0wNzAwCkBAIC0xMyw3ICsxOSw3IEBACiAgCQkjIEFsbCBvdGhlcnMKICAJCUlOU1RBTExfU1lTVj0iaW5zdGFsbC1zeXN2IgogLQkJQ1VQU19TRVJWRVJCSU49IiRleGVjX3ByZWZpeC9saWIvY3VwcyIKLSsJCUNVUFNfU0VSVkVSQklOPSIkbGliZGlyL2N1cHMiCisrCQlDVVBTX1NFUlZFUkJJTj0iJGxpYmV4ZWNkaXIvY3VwcyIKICAJCTs7CiAgZXNhYwogIApAQCAtMjYsNyArMzIsNyBAQAogIAkJIyBBbGwgb3RoZXJzCiAgCQlJTlNUQUxMX1NZU1Y9Imluc3RhbGwtc3lzdiIKIC0JCUNVUFNfU0VSVkVSQklOPSIkZXhlY19wcmVmaXgvbGliL2N1cHMiCi0rCQlDVVBTX1NFUlZFUkJJTj0iJGxpYmRpci9jdXBzIgorKwkJQ1VQU19TRVJWRVJCSU49IiRsaWJleGVjZGlyL2N1cHMiCiAgCQk7OwogIGVzYWMKICAKZGlmZiAtLWdpdCBhL3Bva3kvbWV0YS9yZWNpcGVzLWV4dGVuZGVkL2RpZmZ1dGlscy9kaWZmdXRpbHMvMDAwMS1Ta2lwLXN0cmlwLXRyYWlsaW5nLWNyLXRlc3QtY2FzZS5wYXRjaCBiL3Bva3kvbWV0YS9yZWNpcGVzLWV4dGVuZGVkL2RpZmZ1dGlscy9kaWZmdXRpbHMvMDAwMS1Ta2lwLXN0cmlwLXRyYWlsaW5nLWNyLXRlc3QtY2FzZS5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hYWMxYzQzCi0tLSAvZGV2L251bGwKKysrIGIvcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvZGlmZnV0aWxzL2RpZmZ1dGlscy8wMDAxLVNraXAtc3RyaXAtdHJhaWxpbmctY3ItdGVzdC1jYXNlLnBhdGNoCkBAIC0wLDAgKzEsMzUgQEAKK0Zyb20gYmQ3ZmI4YmUyYWUyZDc1MzQ3Y2Y3NzMzMzAyZDUwOTMwNDZmZmE4NSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IFBlaXJhbiBIb25nIDxwZWlyYW4uaG9uZ0B3aW5kcml2ZXIuY29tPgorRGF0ZTogVGh1LCA1IFNlcCAyMDE5IDE1OjQyOjIyIC0wNDAwCitTdWJqZWN0OiBbUEFUQ0hdIFNraXAgc3RyaXAtdHJhaWxpbmctY3IgdGVzdCBjYXNlCisKK1NraXAgdGhlIHRlc3QgInN0cmlwLXRyYWlsaW5nLWNyIiBzaW5jZSBpdCByZXF1aXJlcyB2YWxncmluZCB0bword29yaywgYnV0IHZhbGdyaW5kIGlzIGNvbnNpZGVyZWQgdG9vIGhlYXZ5LXdlaWdodCBmb3IgZGlmZnV0aWxzCitwYWNrYWdlLgorCitVcHN0cmVhbS1TdGF0dXM6IEluYXBwcm9wcmlhdGUgW2VtYmVkZGVkIHNwZWNpZmljXQorCitTaWduZWQtb2ZmLWJ5OiBQZWlyYW4gSG9uZyA8cGVpcmFuLmhvbmdAd2luZHJpdmVyLmNvbT4KKy0tLQorIHRlc3RzL01ha2VmaWxlLmFtIHwgNCArKystCisgMSBmaWxlIGNoYW5nZWQsIDMgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQorCitkaWZmIC0tZ2l0IGEvdGVzdHMvTWFrZWZpbGUuYW0gYi90ZXN0cy9NYWtlZmlsZS5hbQoraW5kZXggODNhN2M5ZC4uMDRkNTFiNSAxMDA2NDQKKy0tLSBhL3Rlc3RzL01ha2VmaWxlLmFtCisrKysgYi90ZXN0cy9NYWtlZmlsZS5hbQorQEAgLTIxLDggKzIxLDEwIEBAIFRFU1RTID0gXAorICAgc3RkaW4gXAorICAgc3RyY29sbC0wLW5hbWVzIFwKKyAgIGZpbGVuYW1lLXF1b3RpbmcgXAorLSAgc3RyaXAtdHJhaWxpbmctY3IgXAorICAgY29sb3JzCisrIyBTa2lwcGluZyB0aGlzIHRlc3Qgc2luY2UgaXQgcmVxdWlyZXMgdmFsZ3JpbmQKKysjIGFuZCB0aHVzIGlzIHRvbyBoZWF2eSBmb3IgZGlmZnV0aWxzIHBhY2thZ2UKKysjIHN0cmlwLXRyYWlsaW5nLWNyCisgCisgWEZBSUxfVEVTVFMgPSBsYXJnZS1zdWJvcHQKKyAKKy0tIAorMi4yMS4wCisKZGlmZiAtLWdpdCBhL3Bva3kvbWV0YS9yZWNpcGVzLWV4dGVuZGVkL2RpZmZ1dGlscy9kaWZmdXRpbHNfMy43LmJiIGIvcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvZGlmZnV0aWxzL2RpZmZ1dGlsc18zLjcuYmIKaW5kZXggN2RhZWVlMy4uODExMWFlNiAxMDA2NDQKLS0tIGEvcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvZGlmZnV0aWxzL2RpZmZ1dGlsc18zLjcuYmIKKysrIGIvcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvZGlmZnV0aWxzL2RpZmZ1dGlsc18zLjcuYmIKQEAgLTUsNiArNSw3IEBACiAKIFNSQ19VUkkgPSAiJHtHTlVfTUlSUk9SfS9kaWZmdXRpbHMvZGlmZnV0aWxzLSR7UFZ9LnRhci54eiBcCiAgICAgICAgICAgIGZpbGU6Ly9ydW4tcHRlc3QgXAorICAgICAgICAgICBmaWxlOi8vMDAwMS1Ta2lwLXN0cmlwLXRyYWlsaW5nLWNyLXRlc3QtY2FzZS5wYXRjaCBcCiAiCiAKIFNSQ19VUklbbWQ1c3VtXSA9ICI0ODI0YWRjMGU5NWRiYmYxMWRmYmRmYWFkNmExZTQ2MSIKQEAgLTE3LDcgKzE4LDcgQEAKIAogaW5oZXJpdCBwdGVzdAogCi1SREVQRU5EU18ke1BOfS1wdGVzdCArPSAibWFrZSIKK1JERVBFTkRTXyR7UE59LXB0ZXN0ICs9ICJtYWtlIHBlcmwiCiAKIGRvX2luc3RhbGxfcHRlc3QoKSB7CiAJdD0ke0R9JHtQVEVTVF9QQVRIfQpkaWZmIC0tZ2l0IGEvcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvZ3ppcC9nemlwXzEuMTAuYmIgYi9wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC9nemlwL2d6aXBfMS4xMC5iYgppbmRleCA1YWI5OWQwLi41MGRhZDdiIDEwMDY0NAotLS0gYS9wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC9nemlwL2d6aXBfMS4xMC5iYgorKysgYi9wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC9nemlwL2d6aXBfMS4xMC5iYgpAQCAtMTQsNyArMTQsNyBAQAogCiBSREVQRU5EU18ke1BOfS1wdGVzdCArPSAibWFrZSBwZXJsIHBlcmwtcHRlc3QgZ3JlcCBkaWZmdXRpbHMiCiAKLUJCQ0xBU1NFWFRFTkQgPSAibmF0aXZlIgorQkJDTEFTU0VYVEVORCA9ICJuYXRpdmUgbmF0aXZlc2RrIgogCiBpbmhlcml0IHB0ZXN0CiAKZGlmZiAtLWdpdCBhL3Bva3kvbWV0YS9yZWNpcGVzLWV4dGVuZGVkL2ltYWdlcy9jb3JlLWltYWdlLWxzYi1kZXYuYmIgYi9wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC9pbWFnZXMvY29yZS1pbWFnZS1sc2ItZGV2LmJiCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkMmRjOWUyLi4wMDAwMDAwCi0tLSBhL3Bva3kvbWV0YS9yZWNpcGVzLWV4dGVuZGVkL2ltYWdlcy9jb3JlLWltYWdlLWxzYi1kZXYuYmIKKysrIC9kZXYvbnVsbApAQCAtMSw3ICswLDAgQEAKLXJlcXVpcmUgY29yZS1pbWFnZS1sc2IuYmIKLQotREVTQ1JJUFRJT04gPSAiQmFzaWMgaW1hZ2Ugd2l0aG91dCBYIHN1cHBvcnQgc3VpdGFibGUgZm9yIGRldmVsb3BtZW50IHdvcmsuIEl0IFwKLWNhbiBiZSB1c2VkIGZvciBjdXN0b21pemF0aW9uIGFuZCBpbXBsZW1lbnRhdGlvbnMgdGhhdCBjb25mb3JtIHRvIExpbnV4IFwKLVN0YW5kYXJkIEJhc2UgKExTQikuIgotCi1JTUFHRV9GRUFUVVJFUyArPSAiZGV2LXBrZ3MiCmRpZmYgLS1naXQgYS9wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC9pbWFnZXMvY29yZS1pbWFnZS1sc2Itc2RrLmJiIGIvcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvaW1hZ2VzL2NvcmUtaW1hZ2UtbHNiLXNkay5iYgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYTNkNjAyZS4uMDAwMDAwMAotLS0gYS9wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC9pbWFnZXMvY29yZS1pbWFnZS1sc2Itc2RrLmJiCisrKyAvZGV2L251bGwKQEAgLTEsMTIgKzAsMCBAQAotcmVxdWlyZSBjb3JlLWltYWdlLWxzYi5iYgotCi1ERVNDUklQVElPTiA9ICJCYXNpYyBpbWFnZSB3aXRob3V0IFggc3VwcG9ydCBzdWl0YWJsZSBmb3IgTGludXggU3RhbmRhcmQgQmFzZSBcCi0oTFNCKSBpbXBsZW1lbnRhdGlvbnMuIEl0IGluY2x1ZGVzIHRoZSBmdWxsIG1ldGEtdG9vbGNoYWluLCBwbHVzIGRldmVsb3BtZW50IFwKLWhlYWRlcnMgYW5kIGxpYnJhcmllcyB0byBmb3JtIGEgc3RhbmRhbG9uZSBTREsuIgotCi1JTUFHRV9GRUFUVVJFUyArPSAidG9vbHMtc2RrIGRldi1wa2dzIHRvb2xzLWRlYnVnIGVjbGlwc2UtZGVidWcgdG9vbHMtcHJvZmlsZSB0b29scy10ZXN0YXBwcyBkZWJ1Zy10d2Vha3MiCi0KLUlNQUdFX0lOU1RBTEwgKz0gImtlcm5lbC1kZXZzcmMiCi0KLSMgUmVkdWNlIHRoaXMgdG8gdHJ5IGFuZCBrZWVwIGJlbG93IHRoZSA0R0IgaW1hZ2Ugc2l6ZSBmb3Igbm93Ci1JTUFHRV9PVkVSSEVBRF9GQUNUT1IgPSAiMS4yIgpkaWZmIC0tZ2l0IGEvcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvaW1hZ2VzL2NvcmUtaW1hZ2UtbHNiLmJiIGIvcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvaW1hZ2VzL2NvcmUtaW1hZ2UtbHNiLmJiCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhYjYxYzZlLi4wMDAwMDAwCi0tLSBhL3Bva3kvbWV0YS9yZWNpcGVzLWV4dGVuZGVkL2ltYWdlcy9jb3JlLWltYWdlLWxzYi5iYgorKysgL2Rldi9udWxsCkBAIC0xLDE0ICswLDAgQEAKLURFU0NSSVBUSU9OID0gIkFuIGltYWdlIGNvbnRhaW5pbmcgcGFja2FnZXMgdGhhdCBhcmUgcmVxdWlyZWQgdG8gY29uZm9ybSBcCi10byB0aGUgTGludXggU3RhbmRhcmQgQmFzZSAoTFNCKSBzcGVjaWZpY2F0aW9uLiIKLQotSU1BR0VfRkVBVFVSRVMgKz0gInNwbGFzaCBzc2gtc2VydmVyLW9wZW5zc2ggaHdjb2RlY3MgcGFja2FnZS1tYW5hZ2VtZW50IgotCi1JTUFHRV9JTlNUQUxMID0gIlwKLSAgICAke0NPUkVfSU1BR0VfQkFTRV9JTlNUQUxMfSBcCi0gICAgcGFja2FnZWdyb3VwLWNvcmUtZnVsbC1jbWRsaW5lIFwKLSAgICBwYWNrYWdlZ3JvdXAtY29yZS1sc2IgXAotICAgICIKLQotaW5oZXJpdCBjb3JlLWltYWdlIGRpc3Ryb19mZWF0dXJlc19jaGVjawotCi1SRVFVSVJFRF9ESVNUUk9fRkVBVFVSRVMgPSAicGFtIgpkaWZmIC0tZ2l0IGEvcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvaXB1dGlscy9pcHV0aWxzL2FpX2Nhbm9uaWRuLnBhdGNoIGIvcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvaXB1dGlscy9pcHV0aWxzL2FpX2Nhbm9uaWRuLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjZDkxMjY3Li4wMDAwMDAwCi0tLSBhL3Bva3kvbWV0YS9yZWNpcGVzLWV4dGVuZGVkL2lwdXRpbHMvaXB1dGlscy9haV9jYW5vbmlkbi5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDU4ICswLDAgQEAKLUZyb20gNzE0ZTJiNDU4YzE1MWM1YmRmZTkzNjQ3NDQ1Y2QwMGRkOGUzNmZmZiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IFBldHIgVm9yZWwgPHBldHIudm9yZWxAZ21haWwuY29tPgotRGF0ZTogU2F0LCAyMSBKdWwgMjAxOCAxNzo0NjoxNCArMDIwMAotU3ViamVjdDogW1BBVENIXSBwaW5nOiBGaXggQUlfQ0FOT05JRE4gdXNhZ2Ugb24gc29tZSBzeXN0ZW1zCi0KLVVwc3RyZWFtLVN0YXR1czogQmFja3BvcnQKLVNpZ25lZC1vZmYtYnk6IFJvc3MgQnVydG9uIDxyb3NzLmJ1cnRvbkBpbnRlbC5jb20+Ci0KLUNvbW1pdCA5OWY2N2RiIHVzZWQgQUlfQ0FOT05JRE4gaW4gYSB3YXksIHdoaWNoIGJyb2tlIGNvbXBpbGF0aW9uIG9uCi1zeXN0ZW1zIHdoZXJlIEFJX0NBTk9OSUROIGlzIG5vdCBkZWZpbmVkIGluIG5ldGRiLmggKGUuZy4gZ2xpYmMgPCAyLjMuNCwKLWFsdGVybmF0aXZlIGxpYmNzIHRoYXQgZG9uJ3Qgc3VwcG9ydCBJRE46IGUuZy4gY3VycmVudCBtdXNsIDEuMS4xOSBhbmQKLXVDbGliYy1uZyAxLjAuMzApIHdoZW4gbm90IHVzaW5nIHRoZSBzeXN0ZW0gbGliaWRuMi4KLQotRml4ZXM6IDk5ZjY3ZGIgcGluZzogRml4IHBpbmcgbmFtZSBlbmNvZGVkIHVzaW5nIEFDRSBvbiBDIGxvY2FsZQotCi1SZXBvcnRlZC1ieTogTmljaG9sYXMgRmlzaAotU2lnbmVkLW9mZi1ieTogUGV0ciBWb3JlbCA8cGV0ci52b3JlbEBnbWFpbC5jb20+Ci0KLS0tLQotIHBpbmcuYyB8IDIgKy0KLSBwaW5nLmggfCAyICstCi0gMiBmaWxlcyBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCi0KLWRpZmYgLS1naXQgYS9waW5nLmMgYi9waW5nLmMKLWluZGV4IDczMzQ3N2YuLmIyNDE4MTUgMTAwNjQ0Ci0tLS0gYS9waW5nLmMKLSsrKyBiL3BpbmcuYwotQEAgLTIwNyw5ICsyMDcsOSBAQCBtYWluKGludCBhcmdjLCBjaGFyICoqYXJndikKLSAKLSAjaWZkZWYgVVNFX0lETgotIAlzZXRsb2NhbGUoTENfQUxMLCAiIik7Ci0tI2VuZGlmCi0gCWlmICghc3RyY21wKHNldGxvY2FsZShMQ19BTEwsIE5VTEwpLCAiQyIpKQotIAkJaGludHMuYWlfZmxhZ3MgJj0gfiBBSV9DQU5PTklETjsKLSsjZW5kaWYKLSAKLSAJLyogU3VwcG9ydCBiZWluZyBjYWxsZWQgdXNpbmcgYHBpbmc0YCBvciBgcGluZzZgIHN5bWxpbmtzICovCi0gCWlmIChhcmd2WzBdW3N0cmxlbihhcmd2WzBdKS0xXSA9PSAnNCcpCi1kaWZmIC0tZ2l0IGEvcGluZy5oIGIvcGluZy5oCi1pbmRleCAzZTA5Njg1Li44YTBjNGVmIDEwMDY0NAotLS0tIGEvcGluZy5oCi0rKysgYi9waW5nLmgKLUBAIC0yOCw3ICsyOCw2IEBACi0gI2luY2x1ZGUgPG5ldGluZXQvaWNtcDYuaD4KLSAjaW5jbHVkZSA8bGludXgvZmlsdGVyLmg+Ci0gI2luY2x1ZGUgPHJlc29sdi5oPgotLSNpbmNsdWRlIDxsb2NhbGUuaD4KLSAKLSAjaWZkZWYgQ0FQQUJJTElUSUVTCi0gI2luY2x1ZGUgPHN5cy9wcmN0bC5oPgotQEAgLTM2LDYgKzM1LDcgQEAKLSAjZW5kaWYKLSAKLSAjaWZkZWYgVVNFX0lETgotKyNpbmNsdWRlIDxsb2NhbGUuaD4KLSAjaW5jbHVkZSA8aWRuMi5oPgotICNkZWZpbmUgZ2V0YWRkcmluZm9fZmxhZ3MgKEFJX0NBTk9OTkFNRSB8IEFJX0lETiB8IEFJX0NBTk9OSUROKQotICNkZWZpbmUgZ2V0bmFtZWluZm9fZmxhZ3MgTklfSUROCmRpZmYgLS1naXQgYS9wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC9pcHV0aWxzL2lwdXRpbHMvaW5zdGFsbC5wYXRjaCBiL3Bva3kvbWV0YS9yZWNpcGVzLWV4dGVuZGVkL2lwdXRpbHMvaXB1dGlscy9pbnN0YWxsLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhYmZlZmQ3Li4wMDAwMDAwCi0tLSBhL3Bva3kvbWV0YS9yZWNpcGVzLWV4dGVuZGVkL2lwdXRpbHMvaXB1dGlscy9pbnN0YWxsLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMjYgKzAsMCBAQAotRnJvbSA1YzhjM2IwNGQ3MzMwNDY3OTM0MGY4OTM2MzZlODc2OTE5OTIwNTNiIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogUm9zcyBCdXJ0b24gPHJvc3NAYnVydG9uaW5pLmNvbT4KLURhdGU6IE1vbiwgMjMgSnVsIDIwMTggMTQ6MjE6MDMgKzAxMDAKLVN1YmplY3Q6IFtQQVRDSF0gQWRkIGluc3RhbGwKLQotQWRkIGEgc2ltcGxlIGluc3RhbGwgcnVsZSBzbyB0aGF0IHdlIGFsd2F5cyBpbnN0YWxsIHRoZSBiaW5hcmllcyB0aGF0IHdlcmUgYnVpbHQuCi0KLVVwc3RyZWFtLVN0YXR1czogSW5hcHByb3ByaWF0ZQotU2lnbmVkLW9mZi1ieTogUm9zcyBCdXJ0b24gPHJvc3MuYnVydG9uQGludGVsLmNvbT4KLQotLS0tCi0gTWFrZWZpbGUgfCA0ICsrKysKLSAxIGZpbGUgY2hhbmdlZCwgNCBpbnNlcnRpb25zKCspCi0KLWRpZmYgLS1naXQgYS9NYWtlZmlsZSBiL01ha2VmaWxlCi1pbmRleCAxN2ZjNWM5Li5lMGMyNzg0IDEwMDY0NAotLS0tIGEvTWFrZWZpbGUKLSsrKyBiL01ha2VmaWxlCi1AQCAtMjMxLDMgKzIzMSw3IEBAIHJwbToKLSAJQCQoUlBNQlVJTEQpIC10YSAtLWRlZmluZSAnY3VycmVudCB5ZXMnICQoUlBNVE1QKS9pcHV0aWxzLnRhci5iejIKLSAJQHJtIC1mICQoUlBNVE1QKS9pcHV0aWxzLnRhci5iejIKLSAKLStpbnN0YWxsOgotKwlmb3IgdCBpbiAkKFRBUkdFVFMpOyBkbyBcCi0rCQlpbnN0YWxsIC1EICQkdCAkKERFU1RESVIpJChiaW5kaXIpLyQkdDsgXAotKwlkb25lCmRpZmYgLS1naXQgYS9wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC9pcHV0aWxzL2lwdXRpbHNfczIwMTgwNjI5LmJiIGIvcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvaXB1dGlscy9pcHV0aWxzX3MyMDE4MDYyOS5iYgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZWZmNDRiZS4uMDAwMDAwMAotLS0gYS9wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC9pcHV0aWxzL2lwdXRpbHNfczIwMTgwNjI5LmJiCisrKyAvZGV2L251bGwKQEAgLTEsNjEgKzAsMCBAQAotU1VNTUFSWSA9ICJOZXR3b3JrIG1vbml0b3JpbmcgdG9vbHMiCi1ERVNDUklQVElPTiA9ICJVdGlsaXRpZXMgZm9yIHRoZSBJUCBwcm90b2NvbCwgaW5jbHVkaW5nIHRyYWNlcm91dGU2LCBcCi10cmFjZXBhdGgsIHRyYWNlcGF0aDYsIHBpbmcsIHBpbmc2IGFuZCBhcnBpbmcuIgotSE9NRVBBR0UgPSAiaHR0cHM6Ly9naXRodWIuY29tL2lwdXRpbHMvaXB1dGlscyIKLVNFQ1RJT04gPSAiY29uc29sZS9uZXR3b3JrIgotCi1MSUNFTlNFID0gIkJTRCAmIEdQTHYyKyIKLQotTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vTElDRU5TRTttZDU9Yjc5MmUzOGFiZGM1OWY3NjZhMzE1MzkwOGYyM2U3NjYgXAotICAgICAgICAgICAgICAgICAgICBmaWxlOi8vTElDRU5TRS5CU0QzO21kNT0wZjAwZDk5MjM5ZDkyMmZmZDEzY2FiZWY4M2IzMzQ0NCBcCi0gICAgICAgICAgICAgICAgICAgIGZpbGU6Ly9MSUNFTlNFLkdQTDI7bWQ1PWIyMzRlZTRkNjlmNWZjZTQ0ODZhODBmZGFmNGE0MjYzIgotCi1ERVBFTkRTID0gImdudXRscyBsaWJjYXAgbGliZ2NyeXB0IgotCi1TUkNfVVJJID0gImdpdDovL2dpdGh1Yi5jb20vaXB1dGlscy9pcHV0aWxzIFwKLSAgICAgICAgICAgZmlsZTovL2FpX2Nhbm9uaWRuLnBhdGNoIFwKLSAgICAgICAgICAgZmlsZTovL2luc3RhbGwucGF0Y2giCi1TUkNSRVYgPSAiZjZhYWM4ZGJlM2Y4YzQ1YzUzNDI0ODU0YTMzMTJiZGQ4Y2RkNThkMyIKLQotUyA9ICIke1dPUktESVJ9L2dpdCIKLQotVVBTVFJFQU1fQ0hFQ0tfR0lUVEFHUkVHRVggPSAiKD9QPHB2ZXI+c1xkKykiCi0KLUVYVFJBX09FTUFLRSA9ICItZSBNQUtFRkxBR1M9IgotCi1QQUNLQUdFQ09ORklHID8/PSAiIgotUEFDS0FHRUNPTkZJR1tsaWJpZG5dID0gIlVTRV9JRE49eWVzLFVTRV9JRE49bm8sbGliaWRuMiIKLQotZG9fY29tcGlsZSAoKSB7Ci0Jb2VfcnVubWFrZSAnQ0M9JHtDQ30gLURfR05VX1NPVVJDRScgVlBBVEg9IiR7U1RBR0lOR19MSUJESVJ9OiR7U1RBR0lOR19ESVJfSE9TVH0vJHtiYXNlX2xpYmRpcn0iICR7UEFDS0FHRUNPTkZJR19DT05GQVJHU30gYWxsCi19Ci0KLWRvX2luc3RhbGwoKSB7Ci0Jb2VfcnVubWFrZSBERVNURElSPSR7RH0gYmluZGlyPSR7YmFzZV9iaW5kaXJ9IGluc3RhbGwKLQlmb3IgYiBpbiBwaW5nIHRyYWNlcm91dGU2IGNsb2NrZGlmZjsgZG8KLQkJY2htb2QgdStzICR7RH0ke2Jhc2VfYmluZGlyfS8kYgotCWRvbmUKLX0KLQotaW5oZXJpdCB1cGRhdGUtYWx0ZXJuYXRpdmVzCi0KLUFMVEVSTkFUSVZFX1BSSU9SSVRZID0gIjEwMCIKLQotQUxURVJOQVRJVkVfJHtQTn0tcGluZyA9ICJwaW5nIgotQUxURVJOQVRJVkVfTElOS19OQU1FW3BpbmddID0gIiR7YmFzZV9iaW5kaXJ9L3BpbmciCi0KLVNQTElUUEtHUyA9ICIke1BOfS1waW5nICR7UE59LWFycGluZyAke1BOfS10cmFjZXBhdGggJHtQTn0tdHJhY2Vyb3V0ZTYgJHtQTn0tY2xvY2tkaWZmICR7UE59LXRmdHBkICR7UE59LXJhcnBkICR7UE59LXJkaXNjIgotUEFDS0FHRVMgKz0gIiR7U1BMSVRQS0dTfSIKLQotQUxMT1dfRU1QVFlfJHtQTn0gPSAiMSIKLVJERVBFTkRTXyR7UE59ICs9ICIke1NQTElUUEtHU30iCi0KLUZJTEVTXyR7UE59CT0gIiIKLUZJTEVTXyR7UE59LXBpbmcgPSAiJHtiYXNlX2JpbmRpcn0vcGluZy4ke0JQTn0iCi1GSUxFU18ke1BOfS1hcnBpbmcgPSAiJHtiYXNlX2JpbmRpcn0vYXJwaW5nIgotRklMRVNfJHtQTn0tdHJhY2VwYXRoID0gIiR7YmFzZV9iaW5kaXJ9L3RyYWNlcGF0aCIKLUZJTEVTXyR7UE59LXRyYWNlcm91dGU2CT0gIiR7YmFzZV9iaW5kaXJ9L3RyYWNlcm91dGU2IgotRklMRVNfJHtQTn0tY2xvY2tkaWZmID0gIiR7YmFzZV9iaW5kaXJ9L2Nsb2NrZGlmZiIKLUZJTEVTXyR7UE59LXRmdHBkID0gIiR7YmFzZV9iaW5kaXJ9L3RmdHBkIgotRklMRVNfJHtQTn0tcmFycGQgPSAiJHtiYXNlX2JpbmRpcn0vcmFycGQiCi1GSUxFU18ke1BOfS1yZGlzYyA9ICIke2Jhc2VfYmluZGlyfS9yZGlzYyIKZGlmZiAtLWdpdCBhL3Bva3kvbWV0YS9yZWNpcGVzLWV4dGVuZGVkL2lwdXRpbHMvaXB1dGlsc19zMjAxOTA3MDkuYmIgYi9wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC9pcHV0aWxzL2lwdXRpbHNfczIwMTkwNzA5LmJiCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQ4ZjI0NzAKLS0tIC9kZXYvbnVsbAorKysgYi9wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC9pcHV0aWxzL2lwdXRpbHNfczIwMTkwNzA5LmJiCkBAIC0wLDAgKzEsNTUgQEAKK1NVTU1BUlkgPSAiTmV0d29yayBtb25pdG9yaW5nIHRvb2xzIgorREVTQ1JJUFRJT04gPSAiVXRpbGl0aWVzIGZvciB0aGUgSVAgcHJvdG9jb2wsIGluY2x1ZGluZyB0cmFjZXJvdXRlNiwgXAordHJhY2VwYXRoLCB0cmFjZXBhdGg2LCBwaW5nLCBwaW5nNiBhbmQgYXJwaW5nLiIKK0hPTUVQQUdFID0gImh0dHBzOi8vZ2l0aHViLmNvbS9pcHV0aWxzL2lwdXRpbHMiCitTRUNUSU9OID0gImNvbnNvbGUvbmV0d29yayIKKworTElDRU5TRSA9ICJCU0QgJiBHUEx2MisiCisKK0xJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0xJQ0VOU0U7bWQ1PTU1YWE4YzlmY2FkMDY5MWNlZjBlY2Q0MjAzNjFlMzkwIgorCitERVBFTkRTID0gImdudXRscyIKKworU1JDX1VSSSA9ICJnaXQ6Ly9naXRodWIuY29tL2lwdXRpbHMvaXB1dGlscyIKK1NSQ1JFViA9ICIxM2UwMDg0NzE3NmFhMjM2ODNkNjhmY2UxZDE3ZmZiNTIzNTEwOTQ2IgorCitTID0gIiR7V09SS0RJUn0vZ2l0IgorCitVUFNUUkVBTV9DSEVDS19HSVRUQUdSRUdFWCA9ICIoP1A8cHZlcj5zXGQrKSIKKworUEFDS0FHRUNPTkZJRyA/Pz0gImxpYmNhcCBsaWJnY3J5cHQgcmFycGQgdHJhY2Vyb3V0ZTYiCitQQUNLQUdFQ09ORklHW2xpYmNhcF0gPSAiLURVU0VfQ0FQPXRydWUsIC1EVVNFX0NBUD1mYWxzZSwgbGliY2FwIgorUEFDS0FHRUNPTkZJR1tsaWJnY3J5cHRdID0gIi1EVVNFX0NSWVBUTz1nY3J5cHQsIC1EVVNFX0NSWVBUTz1ub25lLCBsaWJnY3J5cHQiCitQQUNLQUdFQ09ORklHW2xpYmlkbl0gPSAiLURVU0VfSUROPXRydWUsIC1EVVNFX0lETj1mYWxzZSwgbGliaWRuMiIKK1BBQ0tBR0VDT05GSUdbZ2V0dGV4dF0gPSAiLURVU0VfR0VUVEVYVD10cnVlLCAtRFVTRV9HRVRURVhUPWZhbHNlLCBnZXR0ZXh0IgorUEFDS0FHRUNPTkZJR1tyYXJwZF0gPSAiLURCVUlMRF9SQVJQRD10cnVlLC1EQlVJTERfUkFSUEQ9ZmFsc2UsIgorUEFDS0FHRUNPTkZJR1t0cmFjZXJvdXRlNl0gPSAiLURCVUlMRF9UUkFDRVJPVVRFNj10cnVlLC1EQlVJTERfVFJBQ0VST1VURTY9ZmFsc2UsIgorUEFDS0FHRUNPTkZJR1tkb2NzXSA9ICItREJVSUxEX0hUTUxfTUFOUz10cnVlIC1EQlVJTERfTUFOUz10cnVlLC1EQlVJTERfSFRNTF9NQU5TPWZhbHNlIC1EQlVJTERfTUFOUz1mYWxzZSwgbGlieHNsdCIKKworaW5oZXJpdCBtZXNvbiB1cGRhdGUtYWx0ZXJuYXRpdmVzCisKK0VYVFJBX09FTUVTT04gKz0gIi0tcHJlZml4PSR7cm9vdF9wcmVmaXh9LyIKKworQUxURVJOQVRJVkVfUFJJT1JJVFkgPSAiMTAwIgorCitBTFRFUk5BVElWRV8ke1BOfS1waW5nID0gInBpbmciCitBTFRFUk5BVElWRV9MSU5LX05BTUVbcGluZ10gPSAiJHtiYXNlX2JpbmRpcn0vcGluZyIKKworU1BMSVRQS0dTID0gIiR7UE59LXBpbmcgJHtQTn0tYXJwaW5nICR7UE59LXRyYWNlcGF0aCAke1BOfS10cmFjZXJvdXRlNiAke1BOfS1jbG9ja2RpZmYgJHtQTn0tdGZ0cGQgJHtQTn0tcmFycGQgJHtQTn0tcmRpc2MgJHtQTn0tbmluZm9kIgorUEFDS0FHRVMgKz0gIiR7U1BMSVRQS0dTfSIKKworQUxMT1dfRU1QVFlfJHtQTn0gPSAiMSIKK0FMTE9XX0VNUFRZXyR7UE59LXJhcnBkID0gIjEiCitBTExPV19FTVBUWV8ke1BOfS10cmFjZXJvdXRlNiA9ICIxIgorUkRFUEVORFNfJHtQTn0gKz0gIiR7U1BMSVRQS0dTfSIKKworRklMRVNfJHtQTn0gPSAiIgorRklMRVNfJHtQTn0tcGluZyA9ICIke2Jhc2VfYmluZGlyfS9waW5nLiR7QlBOfSIKK0ZJTEVTXyR7UE59LWFycGluZyA9ICIke2Jhc2VfYmluZGlyfS9hcnBpbmciCitGSUxFU18ke1BOfS10cmFjZXBhdGggPSAiJHtiYXNlX2JpbmRpcn0vdHJhY2VwYXRoIgorRklMRVNfJHtQTn0tdHJhY2Vyb3V0ZTYJPSAiJHtiYXNlX2JpbmRpcn0vdHJhY2Vyb3V0ZTYiCitGSUxFU18ke1BOfS1jbG9ja2RpZmYgPSAiJHtiYXNlX2JpbmRpcn0vY2xvY2tkaWZmIgorRklMRVNfJHtQTn0tdGZ0cGQgPSAiJHtiYXNlX2JpbmRpcn0vdGZ0cGQiCitGSUxFU18ke1BOfS1yYXJwZCA9ICIke2Jhc2Vfc2JpbmRpcn0vcmFycGQiCitGSUxFU18ke1BOfS1yZGlzYyA9ICIke2Jhc2Vfc2JpbmRpcn0vcmRpc2MiCitGSUxFU18ke1BOfS1uaW5mb2QgPSAiJHtiYXNlX3NiaW5kaXJ9L25pbmZvZCAke3N5c2NvbmZkaXJ9L2luaXQuZC9uaW5mb2Quc2giCmRpZmYgLS1naXQgYS9wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC9saWJhcmNoaXZlL2xpYmFyY2hpdmUvQ1ZFLTIwMTgtMTAwMDg3Ny5wYXRjaCBiL3Bva3kvbWV0YS9yZWNpcGVzLWV4dGVuZGVkL2xpYmFyY2hpdmUvbGliYXJjaGl2ZS9DVkUtMjAxOC0xMDAwODc3LnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjZTYzODM3Li4wMDAwMDAwCi0tLSBhL3Bva3kvbWV0YS9yZWNpcGVzLWV4dGVuZGVkL2xpYmFyY2hpdmUvbGliYXJjaGl2ZS9DVkUtMjAxOC0xMDAwODc3LnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMzggKzAsMCBAQAotQ1ZFOiBDVkUtMjAxOC0xMDAwODc3Ci1VcHN0cmVhbS1TdGF0dXM6IEJhY2twb3J0Ci1TaWduZWQtb2ZmLWJ5OiBSb3NzIEJ1cnRvbiA8cm9zcy5idXJ0b25AaW50ZWwuY29tPgotCi1Gcm9tIDAyMWVmYTUyMmFkNzI5ZmYwZjU4MDZjNGNlNTNlNGE2Y2MxZGFhMzEgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBEYW5pZWwgQXh0ZW5zIDxkamFAYXh0ZW5zLm5ldD4KLURhdGU6IFR1ZSwgMjAgTm92IDIwMTggMTc6NTY6MjkgKzExMDAKLVN1YmplY3Q6IFtQQVRDSF0gQXZvaWQgYSBkb3VibGUtZnJlZSB3aGVuIGEgd2luZG93IHNpemUgb2YgMCBpcyBzcGVjaWZpZWQKLQotbmV3X3NpemUgY2FuIGJlIDAgd2l0aCBhIG1hbGljaW91cyBvciBjb3JydXB0ZWQgUkFSIGFyY2hpdmUuCi0KLXJlYWxsb2MoYXJlYSwgMCkgaXMgZXF1aXZhbGVudCB0byBmcmVlKGFyZWEpLCBzbyB0aGUgcmVnaW9uIHdvdWxkCi1iZSBmcmVlKClkIGhlcmUgYW5kIHRoZSBmcmVlKClkIGFnYWluIGluIHRoZSBjbGVhbnVwIGZ1bmN0aW9uLgotCi1Gb3VuZCB3aXRoIGEgc2V0dXAgcnVubmluZyBBRkwsIGFmbC1yYiwgYW5kIHFzeW0uCi0tLS0KLSBsaWJhcmNoaXZlL2FyY2hpdmVfcmVhZF9zdXBwb3J0X2Zvcm1hdF9yYXIuYyB8IDUgKysrKysKLSAxIGZpbGUgY2hhbmdlZCwgNSBpbnNlcnRpb25zKCspCi0KLWRpZmYgLS1naXQgYS9saWJhcmNoaXZlL2FyY2hpdmVfcmVhZF9zdXBwb3J0X2Zvcm1hdF9yYXIuYyBiL2xpYmFyY2hpdmUvYXJjaGl2ZV9yZWFkX3N1cHBvcnRfZm9ybWF0X3Jhci5jCi1pbmRleCAyMzQ1MjIyMi4uNmY0MTljMjcgMTAwNjQ0Ci0tLS0gYS9saWJhcmNoaXZlL2FyY2hpdmVfcmVhZF9zdXBwb3J0X2Zvcm1hdF9yYXIuYwotKysrIGIvbGliYXJjaGl2ZS9hcmNoaXZlX3JlYWRfc3VwcG9ydF9mb3JtYXRfcmFyLmMKLUBAIC0yMzAwLDYgKzIzMDAsMTEgQEAgcGFyc2VfY29kZXMoc3RydWN0IGFyY2hpdmVfcmVhZCAqYSkKLSAgICAgICBuZXdfc2l6ZSA9IERJQ1RJT05BUllfTUFYX1NJWkU7Ci0gICAgIGVsc2UKLSAgICAgICBuZXdfc2l6ZSA9IHJhcl9mbHMoKHVuc2lnbmVkIGludClyYXItPnVucF9zaXplKSA8PCAxOwotKyAgICBpZiAobmV3X3NpemUgPT0gMCkgewotKyAgICAgIGFyY2hpdmVfc2V0X2Vycm9yKCZhLT5hcmNoaXZlLCBBUkNISVZFX0VSUk5PX0ZJTEVfRk9STUFULAotKyAgICAgICAgICAgICAgICAgICAgICAgICJaZXJvIHdpbmRvdyBzaXplIGlzIGludmFsaWQuIik7Ci0rICAgICAgcmV0dXJuIChBUkNISVZFX0ZBVEFMKTsKLSsgICAgfQotICAgICBuZXdfd2luZG93ID0gcmVhbGxvYyhyYXItPmx6c3Mud2luZG93LCBuZXdfc2l6ZSk7Ci0gICAgIGlmIChuZXdfd2luZG93ID09IE5VTEwpIHsKLSAgICAgICBhcmNoaXZlX3NldF9lcnJvcigmYS0+YXJjaGl2ZSwgRU5PTUVNLAotLS0gCi0yLjIwLjAKLQpkaWZmIC0tZ2l0IGEvcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvbGliYXJjaGl2ZS9saWJhcmNoaXZlL0NWRS0yMDE4LTEwMDA4NzgucGF0Y2ggYi9wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC9saWJhcmNoaXZlL2xpYmFyY2hpdmUvQ1ZFLTIwMTgtMTAwMDg3OC5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNzQ2OGZkMy4uMDAwMDAwMAotLS0gYS9wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC9saWJhcmNoaXZlL2xpYmFyY2hpdmUvQ1ZFLTIwMTgtMTAwMDg3OC5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDc5ICswLDAgQEAKLUNWRTogQ1ZFLTIwMTgtMTAwMDg3OAotVXBzdHJlYW0tU3RhdHVzOiBCYWNrcG9ydAotU2lnbmVkLW9mZi1ieTogUm9zcyBCdXJ0b24gPHJvc3MuYnVydG9uQGludGVsLmNvbT4KLQotRnJvbSBiZmNmZTZmMDRlZDIwZGIyNTA0ZGI4YTI1NGQxZjQwYTFkODRlYjI4IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogRGFuaWVsIEF4dGVucyA8ZGphQGF4dGVucy5uZXQ+Ci1EYXRlOiBUdWUsIDQgRGVjIDIwMTggMDA6NTU6MjIgKzExMDAKLVN1YmplY3Q6IFtQQVRDSF0gcmFyOiBmaWxlIHNwbGl0IGFjcm9zcyBtdWx0aS1wYXJ0IGFyY2hpdmVzIG11c3QgbWF0Y2gKLQotRnV6emluZyB1bmNvdmVyZWQgc29tZSBVQUYgYW5kIG1lbW9yeSBvdmVycnVuIGJ1Z3Mgd2hlcmUgYSBmaWxlIGluIGEKLXNpbmdsZSBmaWxlIGFyY2hpdmUgcmVwb3J0ZWQgdGhhdCBpdCB3YXMgc3BsaXQgYWNyb3NzIG11bHRpcGxlCi12b2x1bWVzLiBUaGlzIHdhcyBjYXVzZWQgYnkgcHBtZDcgb3BlcmF0aW9ucyBjYWxsaW5nCi1yYXJfYnJfZmlsbHVwLiBUaGlzIHdvdWxkIGludm9rZSByYXJfcmVhZF9haGVhZCwgd2hpY2ggd291bGQgaW4gc29tZQotc2l0dWF0aW9ucyBpbnZva2UgYXJjaGl2ZV9yZWFkX2Zvcm1hdF9yYXJfcmVhZF9oZWFkZXIuICBUaGF0IHdvdWxkCi1jaGVjayB0aGUgbmV3IGZpbGUgbmFtZSBhZ2FpbnN0IHRoZSBvbGQgZmlsZSBuYW1lLCBhbmQgaWYgdGhleSBkaWRuJ3QKLW1hdGNoIHVwIGl0IHdvdWxkIGZyZWUgdGhlIHBwbWQ3IGJ1ZmZlciBhbmQgYWxsb2NhdGUgYSBuZXcKLW9uZS4gSG93ZXZlciwgYmVjYXVzZSB0aGUgcHBtZDcgZGVjb2RlciB3YXNuJ3QgYWN0dWFsbHkgZG9uZSB3aXRoIHRoZQotYnVmZmVyLCBpdCB3b3VsZCBjb250aW51ZSB0byB1c2VkIHRoZSBmcmVlZCBidWZmZXIuIEJvdGggcmVhZHMgYW5kCi13cml0ZXMgdG8gdGhlIGZyZWVkIHJlZ2lvbiBjYW4gYmUgb2JzZXJ2ZWQuCi0KLVRoaXMgaXMgcXVpdGUgdHJpY2t5IHRvIHNvbHZlOiBvbmNlIHRoZSBidWZmZXIgaGFzIGJlZW4gZnJlZWQgaXQgaXMKLXRvbyBsYXRlLCBhcyB0aGUgcHBtZDcgZGVjb2RlciBmdW5jdGlvbnMgYWxtb3N0IHVuaXZlcnNhbGx5IGFzc3VtZQotc3VjY2VzcyAtIHRoZXJlJ3Mgbm8gd2F5IGZvciBwcG1kX3JlYWQgdG8gc2lnbmFsIGVycm9yLCBub3IgYXJlIHRoZXJlCi1nb29kIHdheXMgZm9yIGZ1bmN0aW9ucyBsaWtlIFJhbmdlX05vcm1hbGlzZSB0byBwcm9wYWdhdGUgdGhlbS4gU28gd2UKLWNhbid0IGRldGVjdCBhZnRlciB0aGUgZmFjdCB0aGF0IHdlJ3JlIGluIGFuIGludmFsaWQgc3RhdGUgLSBlLmcuIGJ5Ci1jaGVja2luZyByYXItPmN1cnNvciwgd2UgaGF2ZSB0byBwcmV2ZW50IG91cnNlbHZlcyBmcm9tIGV2ZXIgZW5kaW5nIHVwCi10aGVyZS4gU28sIHdoZW4gd2UgYXJlIGluIHRoZSBkYW5nZXJvdXMgcGFydCBvciByYXJfcmVhZF9haGVhZCB0aGF0Ci1hc3N1bWVzIGEgdmFsaWQgc3BsaXQsIHdlIHNldCBhIGZsYWcgZm9yY2UgcmVhZF9oZWFkZXIgdG8gZWl0aGVyIGdvCi1kb3duIHRoZSBwYXRoIGZvciBzcGxpdCBmaWxlcyBvciBiYWlsLiBUaGlzIG1lYW5zIHRoYXQgdGhlIHBwbWQ3Ci1kZWNvZGVyIGtlZXBzIGEgdmFsaWQgYnVmZmVyIGFuZCBqdXN0IHJ1bnMgb3V0IG9mIGRhdGEuCi0KLUZvdW5kIHdpdGggYSBjb21iaW5hdGlvbiBvZiBBRkwsIGFmbC1yYiBhbmQgcXN5bS4KLS0tLQotIGxpYmFyY2hpdmUvYXJjaGl2ZV9yZWFkX3N1cHBvcnRfZm9ybWF0X3Jhci5jIHwgOSArKysrKysrKysKLSAxIGZpbGUgY2hhbmdlZCwgOSBpbnNlcnRpb25zKCspCi0KLWRpZmYgLS1naXQgYS9saWJhcmNoaXZlL2FyY2hpdmVfcmVhZF9zdXBwb3J0X2Zvcm1hdF9yYXIuYyBiL2xpYmFyY2hpdmUvYXJjaGl2ZV9yZWFkX3N1cHBvcnRfZm9ybWF0X3Jhci5jCi1pbmRleCA2ZjQxOWMyNy4uYThjYzVjOTQgMTAwNjQ0Ci0tLS0gYS9saWJhcmNoaXZlL2FyY2hpdmVfcmVhZF9zdXBwb3J0X2Zvcm1hdF9yYXIuYwotKysrIGIvbGliYXJjaGl2ZS9hcmNoaXZlX3JlYWRfc3VwcG9ydF9mb3JtYXRfcmFyLmMKLUBAIC0yNTgsNiArMjU4LDcgQEAgc3RydWN0IHJhcgotICAgc3RydWN0IGRhdGFfYmxvY2tfb2Zmc2V0cyAqZGJvOwotICAgdW5zaWduZWQgaW50IGN1cnNvcjsKLSAgIHVuc2lnbmVkIGludCBub2RlczsKLSsgIGNoYXIgZmlsZW5hbWVfbXVzdF9tYXRjaDsKLSAKLSAgIC8qIExaU1MgbWVtYmVycyAqLwotICAgc3RydWN0IGh1ZmZtYW5fY29kZSBtYWluY29kZTsKLUBAIC0xNTYwLDYgKzE1NjEsMTIgQEAgcmVhZF9oZWFkZXIoc3RydWN0IGFyY2hpdmVfcmVhZCAqYSwgc3RydWN0IGFyY2hpdmVfZW50cnkgKmVudHJ5LAotICAgICB9Ci0gICAgIHJldHVybiByZXQ7Ci0gICB9Ci0rICBlbHNlIGlmIChyYXItPmZpbGVuYW1lX211c3RfbWF0Y2gpCi0rICB7Ci0rICAgIGFyY2hpdmVfc2V0X2Vycm9yKCZhLT5hcmNoaXZlLCBBUkNISVZFX0VSUk5PX0ZJTEVfRk9STUFULAotKyAgICAgICJNaXNtYXRjaCBvZiBmaWxlIHBhcnRzIHNwbGl0IGFjcm9zcyBtdWx0aS12b2x1bWUgYXJjaGl2ZSIpOwotKyAgICByZXR1cm4gKEFSQ0hJVkVfRkFUQUwpOwotKyAgfQotIAotICAgcmFyLT5maWxlbmFtZV9zYXZlID0gKGNoYXIqKXJlYWxsb2MocmFyLT5maWxlbmFtZV9zYXZlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsZW5hbWVfc2l6ZSArIDEpOwotQEAgLTI5MzMsMTIgKzI5NDAsMTQgQEAgcmFyX3JlYWRfYWhlYWQoc3RydWN0IGFyY2hpdmVfcmVhZCAqYSwgc2l6ZV90IG1pbiwgc3NpemVfdCAqYXZhaWwpCi0gICAgIGVsc2UgaWYgKCphdmFpbCA9PSAwICYmIHJhci0+bWFpbl9mbGFncyAmIE1IRF9WT0xVTUUgJiYKLSAgICAgICByYXItPmZpbGVfZmxhZ3MgJiBGSERfU1BMSVRfQUZURVIpCi0gICAgIHsKLSsgICAgICByYXItPmZpbGVuYW1lX211c3RfbWF0Y2ggPSAxOwotICAgICAgIHJldCA9IGFyY2hpdmVfcmVhZF9mb3JtYXRfcmFyX3JlYWRfaGVhZGVyKGEsIGEtPmVudHJ5KTsKLSAgICAgICBpZiAocmV0ID09IChBUkNISVZFX0VPRikpCi0gICAgICAgewotICAgICAgICAgcmFyLT5oYXNfZW5kYXJjX2hlYWRlciA9IDE7Ci0gICAgICAgICByZXQgPSBhcmNoaXZlX3JlYWRfZm9ybWF0X3Jhcl9yZWFkX2hlYWRlcihhLCBhLT5lbnRyeSk7Ci0gICAgICAgfQotKyAgICAgIHJhci0+ZmlsZW5hbWVfbXVzdF9tYXRjaCA9IDA7Ci0gICAgICAgaWYgKHJldCAhPSAoQVJDSElWRV9PSykpCi0gICAgICAgICByZXR1cm4gTlVMTDsKLSAgICAgICByZXR1cm4gcmFyX3JlYWRfYWhlYWQoYSwgbWluLCBhdmFpbCk7Ci0tLSAKLTIuMjAuMAotCmRpZmYgLS1naXQgYS9wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC9saWJhcmNoaXZlL2xpYmFyY2hpdmUvQ1ZFLTIwMTgtMTAwMDg3OS5wYXRjaCBiL3Bva3kvbWV0YS9yZWNpcGVzLWV4dGVuZGVkL2xpYmFyY2hpdmUvbGliYXJjaGl2ZS9DVkUtMjAxOC0xMDAwODc5LnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5ZjI1OTMyLi4wMDAwMDAwCi0tLSBhL3Bva3kvbWV0YS9yZWNpcGVzLWV4dGVuZGVkL2xpYmFyY2hpdmUvbGliYXJjaGl2ZS9DVkUtMjAxOC0xMDAwODc5LnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsNTAgKzAsMCBAQAotQ1ZFOiBDVkUtMjAxOC0xMDAwODc5Ci1VcHN0cmVhbS1TdGF0dXM6IEJhY2twb3J0Ci1TaWduZWQtb2ZmLWJ5OiBSb3NzIEJ1cnRvbiA8cm9zcy5idXJ0b25AaW50ZWwuY29tPgotCi1Gcm9tIDE1YmY0NGZkMmMxYWQwZTNmZDg3MDQ4YjNmY2M5MGM0ZGNmZjExNzUgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBEYW5pZWwgQXh0ZW5zIDxkamFAYXh0ZW5zLm5ldD4KLURhdGU6IFR1ZSwgNCBEZWMgMjAxOCAxNDoyOTo0MiArMTEwMAotU3ViamVjdDogW1BBVENIXSBTa2lwIDAtbGVuZ3RoIEFDTCBmaWVsZHMKLQotQ3VycmVudGx5LCBpdCBpcyBwb3NzaWJsZSB0byBjcmVhdGUgYW4gYXJjaGl2ZSB0aGF0IGNyYXNoZXMgYnNkdGFyCi13aXRoIGEgbWFsZm9ybWVkIEFDTDoKLQotUHJvZ3JhbSByZWNlaXZlZCBzaWduYWwgU0lHU0VHViwgU2VnbWVudGF0aW9uIGZhdWx0LgotYXJjaGl2ZV9hY2xfZnJvbV90ZXh0X2wgKGFjbD08b3B0aW1pc2VkIG91dD4sIHRleHQ9MHg3ZTJlOTIgIiIsIHdhbnRfdHlwZT08b3B0aW1pc2VkIG91dD4sIHNjPTxvcHRpbWlzZWQgb3V0PikgYXQgbGliYXJjaGl2ZS9hcmNoaXZlX2FjbC5jOjE3MjYKLTE3MjYJCQkJc3dpdGNoICgqcykgewotKGdkYikgcCBuCi0kMSA9IDEKLShnZGIpIHAgZmllbGRbbl0KLSQyID0ge3N0YXJ0ID0gMHgwLCBlbmQgPSAweDB9Ci0KLVN0b3AgdGhpcyBieSBjaGVja2luZyB0aGF0IHRoZSBsZW5ndGggaXMgbm90IHplcm8gYmVmb3JlIGJlZ2lubmluZwotdGhlIHN3aXRjaCBzdGF0ZW1lbnQuCi0KLUkgYW0gcHJldHR5IHN1cmUgdGhpcyBpcyB0aGUgYnVnIG1lbnRpb25lZCBpbiB0aGUgcXN5bSBwYXBlciBbMV0sCi1hbmQgSSB3YXMgYWJsZSB0byByZXBsaWNhdGUgaXQgd2l0aCBhIHFzeW0gKyBBRkwgKyBhZmwtcmIgc2V0dXAuCi0KLVsxXSBodHRwczovL3d3dy51c2VuaXgub3JnL2NvbmZlcmVuY2UvdXNlbml4c2VjdXJpdHkxOC9wcmVzZW50YXRpb24veXVuCi0tLS0KLSBsaWJhcmNoaXZlL2FyY2hpdmVfYWNsLmMgfCA1ICsrKysrCi0gMSBmaWxlIGNoYW5nZWQsIDUgaW5zZXJ0aW9ucygrKQotCi1kaWZmIC0tZ2l0IGEvbGliYXJjaGl2ZS9hcmNoaXZlX2FjbC5jIGIvbGliYXJjaGl2ZS9hcmNoaXZlX2FjbC5jCi1pbmRleCA1MTJiZWVlMS4uN2JlZWVlODYgMTAwNjQ0Ci0tLS0gYS9saWJhcmNoaXZlL2FyY2hpdmVfYWNsLmMKLSsrKyBiL2xpYmFyY2hpdmUvYXJjaGl2ZV9hY2wuYwotQEAgLTE3MjMsNiArMTcyMywxMSBAQCBhcmNoaXZlX2FjbF9mcm9tX3RleHRfbChzdHJ1Y3QgYXJjaGl2ZV9hY2wgKmFjbCwgY29uc3QgY2hhciAqdGV4dCwKLSAJCQlzdCA9IGZpZWxkW25dLnN0YXJ0ICsgMTsKLSAJCQlsZW4gPSBmaWVsZFtuXS5lbmQgLSBmaWVsZFtuXS5zdGFydDsKLSAKLSsJCQlpZiAobGVuID09IDApIHsKLSsJCQkJcmV0ID0gQVJDSElWRV9XQVJOOwotKwkJCQljb250aW51ZTsKLSsJCQl9Ci0rCi0gCQkJc3dpdGNoICgqcykgewotIAkJCWNhc2UgJ3UnOgotIAkJCQlpZiAobGVuID09IDEgfHwgKGxlbiA9PSA0Ci0tLSAKLTIuMjAuMAotCmRpZmYgLS1naXQgYS9wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC9saWJhcmNoaXZlL2xpYmFyY2hpdmUvQ1ZFLTIwMTgtMTAwMDg4MC5wYXRjaCBiL3Bva3kvbWV0YS9yZWNpcGVzLWV4dGVuZGVkL2xpYmFyY2hpdmUvbGliYXJjaGl2ZS9DVkUtMjAxOC0xMDAwODgwLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiYzI2NGExLi4wMDAwMDAwCi0tLSBhL3Bva3kvbWV0YS9yZWNpcGVzLWV4dGVuZGVkL2xpYmFyY2hpdmUvbGliYXJjaGl2ZS9DVkUtMjAxOC0xMDAwODgwLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsNDQgKzAsMCBAQAotQ1ZFOiBDVkUtMjAxOC0xMDAwODgwCi1VcHN0cmVhbS1TdGF0dXM6IEJhY2twb3J0Ci1TaWduZWQtb2ZmLWJ5OiBSb3NzIEJ1cnRvbiA8cm9zcy5idXJ0b25AaW50ZWwuY29tPgotCi1Gcm9tIDljODRiNzQyNjY2MGMwOWMxOGNjMzQ5ZjZkNzBiNWY4MTY4YjU2ODAgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBEYW5pZWwgQXh0ZW5zIDxkamFAYXh0ZW5zLm5ldD4KLURhdGU6IFR1ZSwgNCBEZWMgMjAxOCAxNjozMzo0MiArMTEwMAotU3ViamVjdDogW1BBVENIXSB3YXJjOiBjb25zdW1lIGRhdGEgb25jZSByZWFkCi0KLVRoZSB3YXJjIGRlY29kZXIgb25seSB1c2VkIHJlYWQgYWhlYWQsIGl0IHdvdWxkbid0IGFjdHVhbGx5IGNvbnN1bWUKLWRhdGEgdGhhdCBoYWQgcHJldmlvdXNseSBiZWVuIHByaW50ZWQuIFRoaXMgbWVhbnMgdGhhdCBpZiB5b3Ugc3BlY2lmeQotYW4gaW52YWxpZCBjb250ZW50IGxlbmd0aCwgaXQgd2lsbCBqdXN0IHJlcHJpbnQgdGhlIHNhbWUgZGF0YSBvdmVyCi1hbmQgb3ZlciBhbmQgb3ZlciBhZ2FpbiB1bnRpbCBpdCBoaXRzIHRoZSBkZXNpcmVkIGxlbmd0aC4KLQotVGhpcyBtZWFucyB0aGF0IGEgV0FSQyByZXNvdXJjZSB3aXRoIGUuZy4KLUNvbnRlbnQtTGVuZ3RoOiA2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjUKLWJ1dCBvbmx5IGEgZmV3IGh1bmRyZWQgYnl0ZXMgb2YgZGF0YSwgY2F1c2VzIGEgcXVhc2ktaW5maW5pdGUgbG9vcC4KLQotQ29uc3VtZSBkYXRhIGluIHN1YnNlcXVlbnQgY2FsbHMgdG8gX3dhcmNfcmVhZC4KLQotRm91bmQgd2l0aCBhbiBBRkwgKyBhZmwtcmIgKyBxc3ltIHNldHVwLgotLS0tCi0gbGliYXJjaGl2ZS9hcmNoaXZlX3JlYWRfc3VwcG9ydF9mb3JtYXRfd2FyYy5jIHwgNSArKysrKwotIDEgZmlsZSBjaGFuZ2VkLCA1IGluc2VydGlvbnMoKykKLQotZGlmZiAtLWdpdCBhL2xpYmFyY2hpdmUvYXJjaGl2ZV9yZWFkX3N1cHBvcnRfZm9ybWF0X3dhcmMuYyBiL2xpYmFyY2hpdmUvYXJjaGl2ZV9yZWFkX3N1cHBvcnRfZm9ybWF0X3dhcmMuYwotaW5kZXggZTg3NTM4NTMuLmU4ZmM4NDI4IDEwMDY0NAotLS0tIGEvbGliYXJjaGl2ZS9hcmNoaXZlX3JlYWRfc3VwcG9ydF9mb3JtYXRfd2FyYy5jCi0rKysgYi9saWJhcmNoaXZlL2FyY2hpdmVfcmVhZF9zdXBwb3J0X2Zvcm1hdF93YXJjLmMKLUBAIC0zODYsNiArMzg2LDExIEBAIF93YXJjX3JlYWQoc3RydWN0IGFyY2hpdmVfcmVhZCAqYSwgY29uc3Qgdm9pZCAqKmJ1Ziwgc2l6ZV90ICpic3osIGludDY0X3QgKm9mZikKLSAJCXJldHVybiAoQVJDSElWRV9FT0YpOwotIAl9Ci0gCi0rCWlmICh3LT51bmNvbnN1bWVkKSB7Ci0rCQlfX2FyY2hpdmVfcmVhZF9jb25zdW1lKGEsIHctPnVuY29uc3VtZWQpOwotKwkJdy0+dW5jb25zdW1lZCA9IDBVOwotKwl9Ci0rCi0gCXJhYiA9IF9fYXJjaGl2ZV9yZWFkX2FoZWFkKGEsIDFVLCAmbnJkKTsKLSAJaWYgKG5yZCA8IDApIHsKLSAJCSpic3ogPSAwVTsKLS0tIAotMi4yMC4wCi0KZGlmZiAtLWdpdCBhL3Bva3kvbWV0YS9yZWNpcGVzLWV4dGVuZGVkL2xpYmFyY2hpdmUvbGliYXJjaGl2ZS9DVkUtMjAxOS0xMDAwMDE5LnBhdGNoIGIvcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvbGliYXJjaGl2ZS9saWJhcmNoaXZlL0NWRS0yMDE5LTEwMDAwMTkucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDdmMzk4OTMuLjAwMDAwMDAKLS0tIGEvcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvbGliYXJjaGl2ZS9saWJhcmNoaXZlL0NWRS0yMDE5LTEwMDAwMTkucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSw1OSArMCwwIEBACi1DVkU6IENWRS0yMDE5LTEwMDAwMTkKLVVwc3RyZWFtLVN0YXR1czogQmFja3BvcnQKLVNpZ25lZC1vZmYtYnk6IFJvc3MgQnVydG9uIDxyb3NzLmJ1cnRvbkBpbnRlbC5jb20+Ci0KLUZyb20gNjVhMjNmNWRiZWU0NDk3MDY0ZTliYjQ2N2Y4MTEzOGE2MmIwZGFlMSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IERhbmllbCBBeHRlbnMgPGRqYUBheHRlbnMubmV0PgotRGF0ZTogVHVlLCAxIEphbiAyMDE5IDE2OjAxOjQwICsxMTAwCi1TdWJqZWN0OiBbUEFUQ0ggMi8yXSA3emlwOiBmaXggY3Jhc2ggd2hlbiBwYXJzaW5nIGNlcnRhaW4gYXJjaGl2ZXMKLQotRnV6emluZyB3aXRoIENSQ3MgZGlzYWJsZWQgcmV2ZWFsZWQgdGhhdCBhIGNhbGwgdG8gZ2V0X3VuY29tcHJlc3NlZF9kYXRhKCkKLXdvdWxkIHNvbWV0aW1lcyBmYWlsIHRvIHJldHVybiBhdCBsZWFzdCAnbWluaW11bScgYnl0ZXMuIFRoaXMgY2FuIGNhdXNlCi10aGUgY3JjMzIoKSBpbnZvY2F0aW9uIGluIGhlYWRlcl9ieXRlcyB0byByZWFkIG9mZiBpbnRvIGludmFsaWQgbWVtb3J5LgotCi1BIHNwZWNpYWxseSBjcmFmdGVkIGFyY2hpdmUgY2FuIHVzZSB0aGlzIHRvIGNhdXNlIGEgY3Jhc2guCi0KLUFuIEFTQU4gdHJhY2UgaXMgYmVsb3csIGJ1dCBBU0FOIGlzIG5vdCByZXF1aXJlZCAtIGFuIHVuaW5zdHJ1bWVudGVkCi1iaW5hcnkgd2lsbCBhbHNvIGNyYXNoLgotCi09PTc3MTk9PUVSUk9SOiBBZGRyZXNzU2FuaXRpemVyOiBTRUdWIG9uIHVua25vd24gYWRkcmVzcyAweDYzMTAwMDA0MDAwMCAocGMgMHg3ZmJkYjNiM2VjMWQgYnAgMHg3ZmZlNzdhNTEzMTAgc3AgMHg3ZmZlNzdhNTExNTAgVDApCi09PTc3MTk9PVRoZSBzaWduYWwgaXMgY2F1c2VkIGJ5IGEgUkVBRCBtZW1vcnkgYWNjZXNzLgotICAgICMwIDB4N2ZiZGIzYjNlYzFjIGluIGNyYzMyX3ogKC9saWIveDg2XzY0LWxpbnV4LWdudS9saWJ6LnNvLjErMHgyYzFjKQotICAgICMxIDB4ODRmNWViIGluIGhlYWRlcl9ieXRlcyAoL3RtcC9saWJhcmNoaXZlL2JzZHRhcisweDg0ZjVlYikKLSAgICAjMiAweDg1NjE1NiBpbiByZWFkX0hlYWRlciAoL3RtcC9saWJhcmNoaXZlL2JzZHRhcisweDg1NjE1NikKLSAgICAjMyAweDg0ZTEzNCBpbiBzbHVycF9jZW50cmFsX2RpcmVjdG9yeSAoL3RtcC9saWJhcmNoaXZlL2JzZHRhcisweDg0ZTEzNCkKLSAgICAjNCAweDg0OTY5MCBpbiBhcmNoaXZlX3JlYWRfZm9ybWF0Xzd6aXBfcmVhZF9oZWFkZXIgKC90bXAvbGliYXJjaGl2ZS9ic2R0YXIrMHg4NDk2OTApCi0gICAgIzUgMHg1NzEzYjcgaW4gX2FyY2hpdmVfcmVhZF9uZXh0X2hlYWRlcjIgKC90bXAvbGliYXJjaGl2ZS9ic2R0YXIrMHg1NzEzYjcpCi0gICAgIzYgMHg1NzBlNjMgaW4gX2FyY2hpdmVfcmVhZF9uZXh0X2hlYWRlciAoL3RtcC9saWJhcmNoaXZlL2JzZHRhcisweDU3MGU2MykKLSAgICAjNyAweDZmMDhiZCBpbiBhcmNoaXZlX3JlYWRfbmV4dF9oZWFkZXIgKC90bXAvbGliYXJjaGl2ZS9ic2R0YXIrMHg2ZjA4YmQpCi0gICAgIzggMHg1MjM3M2YgaW4gcmVhZF9hcmNoaXZlICgvdG1wL2xpYmFyY2hpdmUvYnNkdGFyKzB4NTIzNzNmKQotICAgICM5IDB4NTI1N2JlIGluIHRhcl9tb2RlX3ggKC90bXAvbGliYXJjaGl2ZS9ic2R0YXIrMHg1MjU3YmUpCi0gICAgIzEwIDB4NTFkYWViIGluIG1haW4gKC90bXAvbGliYXJjaGl2ZS9ic2R0YXIrMHg1MWRhZWIpCi0gICAgIzExIDB4N2ZiZGIyN2NhYjk2IGluIF9fbGliY19zdGFydF9tYWluIC9idWlsZC9nbGliYy1PVHNFTDUvZ2xpYmMtMi4yNy9jc3UvLi4vY3N1L2xpYmMtc3RhcnQuYzozMTAKLSAgICAjMTIgMHg0MWRkMDkgaW4gX3N0YXJ0ICgvdG1wL2xpYmFyY2hpdmUvYnNkdGFyKzB4NDFkZDA5KQotCi1UaGlzIHdhcyBwcmltYXJseSBkb25lIHdpdGggYWZsIGFuZCBGYWlyRnV6ei4gU29tZSBlYXJseSBjb3JwdXMgZW50cmllcwotbWF5IGhhdmUgYmVlbiBnZW5lcmF0ZWQgYnkgcXN5bS4KLS0tLQotIGxpYmFyY2hpdmUvYXJjaGl2ZV9yZWFkX3N1cHBvcnRfZm9ybWF0Xzd6aXAuYyB8IDggKy0tLS0tLS0KLSAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDcgZGVsZXRpb25zKC0pCi0KLWRpZmYgLS1naXQgYS9saWJhcmNoaXZlL2FyY2hpdmVfcmVhZF9zdXBwb3J0X2Zvcm1hdF83emlwLmMgYi9saWJhcmNoaXZlL2FyY2hpdmVfcmVhZF9zdXBwb3J0X2Zvcm1hdF83emlwLmMKLWluZGV4IGJjY2JmODk2Ni4uYjZkMTUwNWQzIDEwMDY0NAotLS0tIGEvbGliYXJjaGl2ZS9hcmNoaXZlX3JlYWRfc3VwcG9ydF9mb3JtYXRfN3ppcC5jCi0rKysgYi9saWJhcmNoaXZlL2FyY2hpdmVfcmVhZF9zdXBwb3J0X2Zvcm1hdF83emlwLmMKLUBAIC0yOTY0LDEzICsyOTY0LDcgQEAgZ2V0X3VuY29tcHJlc3NlZF9kYXRhKHN0cnVjdCBhcmNoaXZlX3JlYWQgKmEsIGNvbnN0IHZvaWQgKipidWZmLCBzaXplX3Qgc2l6ZSwKLSAJaWYgKHppcC0+Y29kZWMgPT0gXzdaX0NPUFkgJiYgemlwLT5jb2RlYzIgPT0gKHVuc2lnbmVkIGxvbmcpLTEpIHsKLSAJCS8qIENvcHkgbW9kZS4gKi8KLSAKLS0JCS8qCi0tCQkgKiBOb3RlOiAnMScgaGVyZSBpcyBhIHBlcmZvcm1hbmNlIG9wdGltaXphdGlvbi4KLS0JCSAqIFJlY2FsbCB0aGF0IHRoZSBkZWNvbXByZXNzaW9uIGxheWVyIHJldHVybnMgYSBjb3VudCBvZgotLQkJICogYXZhaWxhYmxlIGJ5dGVzOyBhc2tpbmcgZm9yIG1vcmUgdGhhbiB0aGF0IGZvcmNlcyB0aGUKLS0JCSAqIGRlY29tcHJlc3NvciB0byBjb21iaW5lIHJlYWRzIGJ5IGNvcHlpbmcgZGF0YS4KLS0JCSAqLwotLQkJKmJ1ZmYgPSBfX2FyY2hpdmVfcmVhZF9haGVhZChhLCAxLCAmYnl0ZXNfYXZhaWwpOwotKwkJKmJ1ZmYgPSBfX2FyY2hpdmVfcmVhZF9haGVhZChhLCBtaW5pbXVtLCAmYnl0ZXNfYXZhaWwpOwotIAkJaWYgKGJ5dGVzX2F2YWlsIDw9IDApIHsKLSAJCQlhcmNoaXZlX3NldF9lcnJvcigmYS0+YXJjaGl2ZSwKLSAJCQkgICAgQVJDSElWRV9FUlJOT19GSUxFX0ZPUk1BVCwKZGlmZiAtLWdpdCBhL3Bva3kvbWV0YS9yZWNpcGVzLWV4dGVuZGVkL2xpYmFyY2hpdmUvbGliYXJjaGl2ZS9DVkUtMjAxOS0xMDAwMDIwLnBhdGNoIGIvcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvbGliYXJjaGl2ZS9saWJhcmNoaXZlL0NWRS0yMDE5LTEwMDAwMjAucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDI1YTc2ZmQuLjAwMDAwMDAKLS0tIGEvcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvbGliYXJjaGl2ZS9saWJhcmNoaXZlL0NWRS0yMDE5LTEwMDAwMjAucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSw2MSArMCwwIEBACi1DVkU6IENWRS0yMDE5LTEwMDAwMjAKLVVwc3RyZWFtLVN0YXR1czogQmFja3BvcnQKLVNpZ25lZC1vZmYtYnk6IFJvc3MgQnVydG9uIDxyb3NzLmJ1cnRvbkBpbnRlbC5jb20+Ci0KLUZyb20gODMxMmVhYTU3NjAxNGNkOWI5NjUwMTJhZjUxYmMxZjk2N2IxMjQyMyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IERhbmllbCBBeHRlbnMgPGRqYUBheHRlbnMubmV0PgotRGF0ZTogVHVlLCAxIEphbiAyMDE5IDE3OjEwOjQ5ICsxMTAwCi1TdWJqZWN0OiBbUEFUQ0ggMS8yXSBpc285NjYwOiBGYWlsIHdoZW4gZXhwZWN0ZWQgUm9ja3JpZGdlIGV4dGVuc2lvbnMgaXMKLSBtaXNzaW5nCi0KLUEgY29ycnVwdGVkIG9yIG1hbGljaW91cyBJU085NjYwIGltYWdlIGNhbiBjYXVzZSByZWFkX0NFKCkgdG8gbG9vcAotZm9yZXZlci4KLQotcmVhZF9DRSgpIGNhbGxzIHBhcnNlX3JvY2tyaWRnZSgpLCBleHBlY3RpbmcgYSBSb2NrcmlkZ2UgZXh0ZW5zaW9uCi10byBiZSByZWFkLiBIb3dldmVyLCBwYXJzZV9yb2NrcmlkZ2UoKSBpcyBzdHJ1Y3R1cmVkIGFzIGEgd2hpbGUKLWxvb3Agc3RhcnRpbmcgd2l0aCBhIHNhbml0eSBjaGVjaywgYW5kIGlmIHRoZSBzYW5pdHkgY2hlY2sgZmFpbHMKLWJlZm9yZSB0aGUgbG9vcCBoYXMgcnVuLCB0aGUgZnVuY3Rpb24gcmV0dXJucyBBUkNISVZFX09LIHdpdGhvdXQKLWFkdmFuY2luZyB0aGUgcG9zaXRpb24gaW4gdGhlIGZpbGUuIFRoaXMgY2F1c2VzIHJlYWRfQ0UoKSB0byByZXRyeQotaW5kZWZpbml0ZWx5LgotCi1NYWtlIHBhcnNlX3JvY2tyaWRnZSgpIHJldHVybiBBUkNISVZFX1dBUk4gaWYgaXQgZGlkbid0IHJlYWQgYW4KLWV4dGVuc2lvbi4gQXMgc29tZW9uZSB3aXRoIG5vIHJlYWwga25vd2xlZGdlIG9mIHRoZSBmb3JtYXQsIHRoaXMKLXNlZW1zIG1vcmUgYXB0IHRoYW4gQVJDSElWRV9GQVRBTCwgYnV0IGJvdGggdGhlIGNhbGwtc2l0ZXMgZXNjYWxhdGUKLWl0IHRvIGEgZmF0YWwgZXJyb3IgaW1tZWRpYXRlbHkgYW55d2F5LgotCi1Gb3VuZCB3aXRoIGEgY29tYmluYXRpb24gb2YgQUZMLCBhZmwtcmIgKEZhaXJGdXp6KSBhbmQgcXN5bS4KLS0tLQotIGxpYmFyY2hpdmUvYXJjaGl2ZV9yZWFkX3N1cHBvcnRfZm9ybWF0X2lzbzk2NjAuYyB8IDExICsrKysrKysrKystCi0gMSBmaWxlIGNoYW5nZWQsIDEwIGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKLQotZGlmZiAtLWdpdCBhL2xpYmFyY2hpdmUvYXJjaGl2ZV9yZWFkX3N1cHBvcnRfZm9ybWF0X2lzbzk2NjAuYyBiL2xpYmFyY2hpdmUvYXJjaGl2ZV9yZWFkX3N1cHBvcnRfZm9ybWF0X2lzbzk2NjAuYwotaW5kZXggMjhhY2ZlZmJiLi5iYWQ4ZjFkZmUgMTAwNjQ0Ci0tLS0gYS9saWJhcmNoaXZlL2FyY2hpdmVfcmVhZF9zdXBwb3J0X2Zvcm1hdF9pc285NjYwLmMKLSsrKyBiL2xpYmFyY2hpdmUvYXJjaGl2ZV9yZWFkX3N1cHBvcnRfZm9ybWF0X2lzbzk2NjAuYwotQEAgLTIxMDIsNiArMjEwMiw3IEBAIHBhcnNlX3JvY2tyaWRnZShzdHJ1Y3QgYXJjaGl2ZV9yZWFkICphLCBzdHJ1Y3QgZmlsZV9pbmZvICpmaWxlLAotICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICpwLCBjb25zdCB1bnNpZ25lZCBjaGFyICplbmQpCi0gewotIAlzdHJ1Y3QgaXNvOTY2MCAqaXNvOTY2MDsKLSsJaW50IGVudHJ5X3NlZW4gPSAwOwotIAotIAlpc285NjYwID0gKHN0cnVjdCBpc285NjYwICopKGEtPmZvcm1hdC0+ZGF0YSk7Ci0gCi1AQCAtMjI1Nyw4ICsyMjU4LDE2IEBAIHBhcnNlX3JvY2tyaWRnZShzdHJ1Y3QgYXJjaGl2ZV9yZWFkICphLCBzdHJ1Y3QgZmlsZV9pbmZvICpmaWxlLAotIAkJfQotIAotIAkJcCArPSBwWzJdOwotKwkJZW50cnlfc2VlbiA9IDE7Ci0rCX0KLSsKLSsJaWYgKGVudHJ5X3NlZW4pCi0rCQlyZXR1cm4gKEFSQ0hJVkVfT0spOwotKwllbHNlIHsKLSsJCWFyY2hpdmVfc2V0X2Vycm9yKCZhLT5hcmNoaXZlLCBBUkNISVZFX0VSUk5PX0ZJTEVfRk9STUFULAotKwkJCQkgICJUcmllZCB0byBwYXJzZSBSb2NrcmlkZ2UgZXh0ZW5zaW9ucywgYnV0IG5vbmUgZm91bmQiKTsKLSsJCXJldHVybiAoQVJDSElWRV9XQVJOKTsKLSAJfQotLQlyZXR1cm4gKEFSQ0hJVkVfT0spOwotIH0KLSAKLSBzdGF0aWMgaW50Ci0KZGlmZiAtLWdpdCBhL3Bva3kvbWV0YS9yZWNpcGVzLWV4dGVuZGVkL2xpYmFyY2hpdmUvbGliYXJjaGl2ZS9idWcxMDY2LnBhdGNoIGIvcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvbGliYXJjaGl2ZS9saWJhcmNoaXZlL2J1ZzEwNjYucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDBhNjYyYjUuLjAwMDAwMDAKLS0tIGEvcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvbGliYXJjaGl2ZS9saWJhcmNoaXZlL2J1ZzEwNjYucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSw1NCArMCwwIEBACi1saWJhcmNoaXZlLTMuMy4zOiBGaXggYnVnMTA2NgotCi1bTm8gdXBzdHJlYW0gdHJhY2tpbmddIC0tIGh0dHBzOi8vZ2l0aHViLmNvbS9saWJhcmNoaXZlL2xpYmFyY2hpdmUvcHVsbC8xMDY2Ci0KLWFyY2hpdmVfd3JpdGVfc2V0X2Zvcm1hdF8qLmM6IGZpeCBvdXQgb2YgYm91bmRzIHJlYWQgb24gZW1wdHkgc3RyaW5nICgpIGZpbGVuYW1lCi1mb3IgZ3VudGFyLCBwYXggYW5kIHY3dGFyCi0KLVRoZXJlIGlzIGFuIG91dCBvZiBib3VuZHMgcmVhZCBmbGF3IGluIHRoZSBhcmNoaXZlX3dyaXRlX2dudXRhcl9oZWFkZXIsCi1hcmNoaXZlX3dyaXRlX3BheF9oZWFkZXIgYW5kIGFyY2hpdmVfd3JpdGVfdjd0YXJfaGVhZGVyIGZ1bmN0aW9ucyB3aGljaAotY291bGQgbGVkcyB0byBjYXVzZSBhIGRlbmlhbCBvZiBzZXJ2aWNlLgotCi1VcHN0cmVhbS1TdGF0dXM6IEJhY2twb3J0IFtodHRwczovL2dpdGh1Yi5jb20vbGliYXJjaGl2ZS9saWJhcmNoaXZlL2NvbW1pdC9jMjQ2ZWM1ZDA1OGEzZjcwYTJkM2ZiNzY1ZjkyZmU5ZGI3N2IyNWRmXQotQnVnOiAxMDY2Ci1TaWduZWQtb2ZmLWJ5OiBBbmRyZWogVmFsZWsgPGFuZHJlai52YWxla0BzaWVtZW5zLmNvbT4KLQotZGlmZiAtLWdpdCBhL2xpYmFyY2hpdmUvYXJjaGl2ZV93cml0ZV9zZXRfZm9ybWF0X2dudXRhci5jIGIvbGliYXJjaGl2ZS9hcmNoaXZlX3dyaXRlX3NldF9mb3JtYXRfZ251dGFyLmMKLWluZGV4IDJkODU4YzkuLjE5NjZjNTMgMTAwNjQ0Ci0tLS0gYS9saWJhcmNoaXZlL2FyY2hpdmVfd3JpdGVfc2V0X2Zvcm1hdF9nbnV0YXIuYwotKysrIGIvbGliYXJjaGl2ZS9hcmNoaXZlX3dyaXRlX3NldF9mb3JtYXRfZ251dGFyLmMKLUBAIC0zMzksNyArMzM5LDcgQEAgYXJjaGl2ZV93cml0ZV9nbnV0YXJfaGVhZGVyKHN0cnVjdCBhcmNoaXZlX3dyaXRlICphLAotIAkJICogY2FzZSBnZXR0aW5nIFdDUyBmYWlsZWQuIE9uIFBPU0lYLCB0aGlzIGlzIGEKLSAJCSAqIG5vcm1hbCBvcGVyYXRpb24uCi0gCQkgKi8KLS0JCWlmIChwICE9IE5VTEwgJiYgcFtzdHJsZW4ocCkgLSAxXSAhPSAnLycpIHsKLSsJCWlmIChwICE9IE5VTEwgJiYgcFswXSAhPSAnXDAnICYmIHBbc3RybGVuKHApIC0gMV0gIT0gJy8nKSB7Ci0gCQkJc3RydWN0IGFyY2hpdmVfc3RyaW5nIGFzOwotIAotIAkJCWFyY2hpdmVfc3RyaW5nX2luaXQoJmFzKTsKLWRpZmYgLS1naXQgYS9saWJhcmNoaXZlL2FyY2hpdmVfd3JpdGVfc2V0X2Zvcm1hdF9wYXguYyBiL2xpYmFyY2hpdmUvYXJjaGl2ZV93cml0ZV9zZXRfZm9ybWF0X3BheC5jCi1pbmRleCA2YTMwMWFjLi40Y2ZhOGZmIDEwMDY0NAotLS0tIGEvbGliYXJjaGl2ZS9hcmNoaXZlX3dyaXRlX3NldF9mb3JtYXRfcGF4LmMKLSsrKyBiL2xpYmFyY2hpdmUvYXJjaGl2ZV93cml0ZV9zZXRfZm9ybWF0X3BheC5jCi1AQCAtNjYwLDcgKzY2MCw3IEBAIGFyY2hpdmVfd3JpdGVfcGF4X2hlYWRlcihzdHJ1Y3QgYXJjaGl2ZV93cml0ZSAqYSwKLSAJCQkgKiBjYXNlIGdldHRpbmcgV0NTIGZhaWxlZC4gT24gUE9TSVgsIHRoaXMgaXMgYQotIAkJCSAqIG5vcm1hbCBvcGVyYXRpb24uCi0gCQkJICovCi0tCQkJaWYgKHAgIT0gTlVMTCAmJiBwW3N0cmxlbihwKSAtIDFdICE9ICcvJykgewotKwkJCWlmIChwICE9IE5VTEwgJiYgcFswXSAhPSAnXDAnICYmIHBbc3RybGVuKHApIC0gMV0gIT0gJy8nKSB7Ci0gCQkJCXN0cnVjdCBhcmNoaXZlX3N0cmluZyBhczsKLSAKLSAJCQkJYXJjaGl2ZV9zdHJpbmdfaW5pdCgmYXMpOwotZGlmZiAtLWdpdCBhL2xpYmFyY2hpdmUvYXJjaGl2ZV93cml0ZV9zZXRfZm9ybWF0X3Y3dGFyLmMgYi9saWJhcmNoaXZlL2FyY2hpdmVfd3JpdGVfc2V0X2Zvcm1hdF92N3Rhci5jCi1pbmRleCA2MmIxNTIyLi41M2MwZGIwIDEwMDY0NAotLS0tIGEvbGliYXJjaGl2ZS9hcmNoaXZlX3dyaXRlX3NldF9mb3JtYXRfdjd0YXIuYwotKysrIGIvbGliYXJjaGl2ZS9hcmNoaXZlX3dyaXRlX3NldF9mb3JtYXRfdjd0YXIuYwotQEAgLTI4NCw3ICsyODQsNyBAQCBhcmNoaXZlX3dyaXRlX3Y3dGFyX2hlYWRlcihzdHJ1Y3QgYXJjaGl2ZV93cml0ZSAqYSwgc3RydWN0IGFyY2hpdmVfZW50cnkgKmVudHJ5KQotIAkJICogY2FzZSBnZXR0aW5nIFdDUyBmYWlsZWQuIE9uIFBPU0lYLCB0aGlzIGlzIGEKLSAJCSAqIG5vcm1hbCBvcGVyYXRpb24uCi0gCQkgKi8KLS0JCWlmIChwICE9IE5VTEwgJiYgcFtzdHJsZW4ocCkgLSAxXSAhPSAnLycpIHsKLSsJCWlmIChwICE9IE5VTEwgJiYgcFswXSAhPSAnXDAnICYmIHBbc3RybGVuKHApIC0gMV0gIT0gJy8nKSB7Ci0gCQkJc3RydWN0IGFyY2hpdmVfc3RyaW5nIGFzOwotIAotIAkJCWFyY2hpdmVfc3RyaW5nX2luaXQoJmFzKTsKZGlmZiAtLWdpdCBhL3Bva3kvbWV0YS9yZWNpcGVzLWV4dGVuZGVkL2xpYmFyY2hpdmUvbGliYXJjaGl2ZS9ub24tcmVjdXJzaXZlLWV4dHJhY3QtYW5kLWxpc3QucGF0Y2ggYi9wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC9saWJhcmNoaXZlL2xpYmFyY2hpdmUvbm9uLXJlY3Vyc2l2ZS1leHRyYWN0LWFuZC1saXN0LnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjZDdiZTUxLi4wMDAwMDAwCi0tLSBhL3Bva3kvbWV0YS9yZWNpcGVzLWV4dGVuZGVkL2xpYmFyY2hpdmUvbGliYXJjaGl2ZS9ub24tcmVjdXJzaXZlLWV4dHJhY3QtYW5kLWxpc3QucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwxNTMgKzAsMCBAQAotRnJvbSA0N2Y3NTY2ZjY4MjljMmIxNGUyMWJiYmJhNjk5OTE2ZGU0OTk4YzcyIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogUGF0cmljayBPaGx5IDxwYXRyaWNrLm9obHlAaW50ZWwuY29tPgotRGF0ZTogTW9uLCAyNCBPY3QgMjAxNiAxMjo1NDo0OCArMDIwMAotU3ViamVjdDogW1BBVENIIDEvMV0gbm9uLXJlY3Vyc2l2ZSBleHRyYWN0IGFuZCBsaXN0Ci0KLVNvbWV0aW1lcyBpdCBtYWtlcyBzZW5zZSB0byBleHRyYWN0IG9yIGxpc3QgYSBkaXJlY3RvcnkgY29udGFpbmVkIGluCi1hbiBhcmNoaXZlIHdpdGhvdXQgYWxzbyBkb2luZyB0aGUgc2FtZSBmb3IgdGhlIGNvbnRlbnQgb2YgdGhlCi1kaXJlY3RvcnksIGkuZS4gYWxsb3dpbmcgLW4gKD0gLS1uby1yZWN1cnNpb24pIGluIGNvbWJpbmF0aW9uIHdpdGggdGhlCi14IGFuZCB0IG1vZGVzLgotCi1ic2R0YXIgdXNlcyB0aGUgbWF0Y2ggZnVuY3Rpb25hbGl0eSBpbiBsaWJhcmNoaXZlIHRvIHRyYWNrIGluY2x1ZGUKLW1hdGNoZXMuIEEgbmV3IGxpYmFyY2hpdmUgQVBJIGNhbGwKLWFyY2hpdmVfbWF0Y2hfaW5jbHVkZV9kaXJlY3Rvcmllc19yZWN1cnNpdmVseSgpIGdldHMgaW50cm9kdWNlZCB0bwotaW5mbHVlbmNlIHRoZSBtYXRjaGluZyBiZWhhdmlvciwgd2l0aCB0aGUgZGVmYXVsdCBiZWhhdmlvciBhcyBiZWZvcmUuCi0KLU5vbi1yZWN1cnNpdmUgbWF0Y2hpbmcgY2FuIGJlIGFjaGlldmVkIGJ5IGFuY2hvcmluZyB0aGUgcGF0aCBtYXRjaCBhdAotYm90aCBzdGFydCBhbmQgZW5kLiBBc2tpbmcgZm9yIGEgZGlyZWN0b3J5IHdoaWNoIGl0c2VsZiBpc24ndCBpbiB0aGUKLWFyY2hpdmUgd2hlbiBpbiBub24tcmVjdXJzaXZlIG1vZGUgaXMgYW4gZXJyb3IgYW5kIGhhbmRsZWQgYnkgdGhlCi1leGlzdGluZyBtZWNoYW5pc20gZm9yIHRyYWNraW5nIHVudXNlZCBpbmNsdXNpb24gZW50cmllcy4KLQotVXBzdHJlYW0tU3RhdHVzOiBTdWJtaXR0ZWQgW2h0dHBzOi8vZ2l0aHViLmNvbS9saWJhcmNoaXZlL2xpYmFyY2hpdmUvcHVsbC84MTJdCi0KLVNpZ25lZC1vZmYtYnk6IFBhdHJpY2sgT2hseSA8cGF0cmljay5vaGx5QGludGVsLmNvbT4KLQotLS0tCi0gbGliYXJjaGl2ZS9hcmNoaXZlLmggICAgICAgfCAgMiArKwotIGxpYmFyY2hpdmUvYXJjaGl2ZV9tYXRjaC5jIHwgMzAgKysrKysrKysrKysrKysrKysrKysrKysrKysrKystCi0gdGFyL2JzZHRhci4xICAgICAgICAgICAgICAgfCAgMyArLS0KLSB0YXIvYnNkdGFyLmMgICAgICAgICAgICAgICB8IDEyICsrKysrKysrKystLQotIDQgZmlsZXMgY2hhbmdlZCwgNDIgaW5zZXJ0aW9ucygrKSwgNSBkZWxldGlvbnMoLSkKLQotZGlmZiAtLWdpdCBhL2xpYmFyY2hpdmUvYXJjaGl2ZS5oIGIvbGliYXJjaGl2ZS9hcmNoaXZlLmgKLWluZGV4IDMyNzEwMjAxLi41OWZiNGFhNiAxMDA2NDQKLS0tLSBhL2xpYmFyY2hpdmUvYXJjaGl2ZS5oCi0rKysgYi9saWJhcmNoaXZlL2FyY2hpdmUuaAotQEAgLTEwOTMsNiArMTA5Myw4IEBAIF9fTEFfREVDTCBpbnQJYXJjaGl2ZV9tYXRjaF9leGNsdWRlZChzdHJ1Y3QgYXJjaGl2ZSAqLAotICAqLwotIF9fTEFfREVDTCBpbnQJYXJjaGl2ZV9tYXRjaF9wYXRoX2V4Y2x1ZGVkKHN0cnVjdCBhcmNoaXZlICosCi0gCQkgICAgc3RydWN0IGFyY2hpdmVfZW50cnkgKik7Ci0rLyogQ29udHJvbCByZWN1cnNpdmUgaW5jbHVzaW9uIG9mIGRpcmVjdG9yeSBjb250ZW50IHdoZW4gZGlyZWN0b3J5IGlzIGluY2x1ZGVkLiBEZWZhdWx0IG9uLiAqLwotK19fTEFfREVDTCBpbnQJYXJjaGl2ZV9tYXRjaF9pbmNsdWRlX2RpcmVjdG9yaWVzX3JlY3Vyc2l2ZWx5KHN0cnVjdCBhcmNoaXZlICosIGludCBfZW5hYmxlZCk7Ci0gLyogQWRkIGV4Y2x1c2lvbiBwYXRobmFtZSBwYXR0ZXJuLiAqLwotIF9fTEFfREVDTCBpbnQJYXJjaGl2ZV9tYXRjaF9leGNsdWRlX3BhdHRlcm4oc3RydWN0IGFyY2hpdmUgKiwgY29uc3QgY2hhciAqKTsKLSBfX0xBX0RFQ0wgaW50CWFyY2hpdmVfbWF0Y2hfZXhjbHVkZV9wYXR0ZXJuX3coc3RydWN0IGFyY2hpdmUgKiwKLWRpZmYgLS1naXQgYS9saWJhcmNoaXZlL2FyY2hpdmVfbWF0Y2guYyBiL2xpYmFyY2hpdmUvYXJjaGl2ZV9tYXRjaC5jCi1pbmRleCBiZTcyMDY2ZS4uYmI2YTM0MDcgMTAwNjQ0Ci0tLS0gYS9saWJhcmNoaXZlL2FyY2hpdmVfbWF0Y2guYwotKysrIGIvbGliYXJjaGl2ZS9hcmNoaXZlX21hdGNoLmMKLUBAIC05Myw2ICs5Myw5IEBAIHN0cnVjdCBhcmNoaXZlX21hdGNoIHsKLSAJLyogZXhjbHVzaW9uL2luY2x1c2lvbiBzZXQgZmxhZy4gKi8KLSAJaW50CQkJIHNldGZsYWc7Ci0gCi0rCS8qIFJlY3Vyc2l2ZWx5IGluY2x1ZGUgZGlyZWN0b3J5IGNvbnRlbnQ/ICovCi0rCWludAkJCSByZWN1cnNpdmVfaW5jbHVkZTsKLSsKLSAJLyoKLSAJICogTWF0Y2hpbmcgZmlsZW5hbWUgcGF0dGVybnMuCi0gCSAqLwotQEAgLTIyMyw2ICsyMjYsNyBAQCBhcmNoaXZlX21hdGNoX25ldyh2b2lkKQotIAkJcmV0dXJuIChOVUxMKTsKLSAJYS0+YXJjaGl2ZS5tYWdpYyA9IEFSQ0hJVkVfTUFUQ0hfTUFHSUM7Ci0gCWEtPmFyY2hpdmUuc3RhdGUgPSBBUkNISVZFX1NUQVRFX05FVzsKLSsJYS0+cmVjdXJzaXZlX2luY2x1ZGUgPSAxOwotIAltYXRjaF9saXN0X2luaXQoJihhLT5pbmNsdXNpb25zKSk7Ci0gCW1hdGNoX2xpc3RfaW5pdCgmKGEtPmV4Y2x1c2lvbnMpKTsKLSAJX19hcmNoaXZlX3JiX3RyZWVfaW5pdCgmKGEtPmV4Y2x1c2lvbl90cmVlKSwgJnJiX29wc19tYnMpOwotQEAgLTQ3MSw2ICs0NzUsMjggQEAgYXJjaGl2ZV9tYXRjaF9wYXRoX2V4Y2x1ZGVkKHN0cnVjdCBhcmNoaXZlICpfYSwKLSB9Ci0gCi0gLyoKLSsgKiBXaGVuIHJlY3Vyc2l2ZSBpbmNsdXNpb24gb2YgZGlyZWN0b3J5IGNvbnRlbnQgaXMgZW5hYmxlZCwKLSsgKiBhbiBpbmNsdXNpb24gcGF0dGVybiB0aGF0IG1hdGNoZXMgYSBkaXJlY3Rvcnkgd2lsbCBhbHNvCi0rICogaW5jbHVkZSBldmVyeXRoaW5nIGJlbmVhdGggdGhhdCBkaXJlY3RvcnkuIEVuYWJsZWQgYnkgZGVmYXVsdC4KLSsgKgotKyAqIEZvciBjb21wYXRpYmlsaXR5IHdpdGggR05VIHRhciwgZXhjbHVzaW9uIHBhdHRlcm5zIGFsd2F5cwotKyAqIG1hdGNoIGlmIGEgc3Vic2V0IG9mIHRoZSBmdWxsIHBhdGNoIG1hdGNoZXMgKGkuZS4sIHRoZXkgYXJlCi0rICogYXJlIG5vdCByb290ZWQgYXQgdGhlIGJlZ2lubmluZyBvZiB0aGUgcGF0aCkgYW5kIHRodXMgdGhlcmUKLSsgKiBpcyBubyBjb3JyZXNwb25kaW5nIG5vbi1yZWN1cnNpdmUgZXhjbHVzaW9uIG1vZGUuCi0rICovCi0raW50Ci0rYXJjaGl2ZV9tYXRjaF9pbmNsdWRlX2RpcmVjdG9yaWVzX3JlY3Vyc2l2ZWx5KHN0cnVjdCBhcmNoaXZlICpfYSwgaW50IF9lbmFibGVkKQotK3sKLSsJc3RydWN0IGFyY2hpdmVfbWF0Y2ggKmE7Ci0rCi0rCWFyY2hpdmVfY2hlY2tfbWFnaWMoX2EsIEFSQ0hJVkVfTUFUQ0hfTUFHSUMsCi0rCSAgICBBUkNISVZFX1NUQVRFX05FVywgImFyY2hpdmVfbWF0Y2hfaW5jbHVkZV9kaXJlY3Rvcmllc19yZWN1cnNpdmVseSIpOwotKwlhID0gKHN0cnVjdCBhcmNoaXZlX21hdGNoICopX2E7Ci0rCWEtPnJlY3Vyc2l2ZV9pbmNsdWRlID0gX2VuYWJsZWQ7Ci0rCXJldHVybiAoQVJDSElWRV9PSyk7Ci0rfQotKwotKy8qCi0gICogVXRpbGl0eSBmdW5jdGlvbnMgdG8gZ2V0IHN0YXRpc3RpYyBpbmZvcm1hdGlvbiBmb3IgaW5jbHVzaW9uIHBhdHRlcm5zLgotICAqLwotIGludAotQEAgLTc4MSw3ICs4MDcsOSBAQCBzdGF0aWMgaW50Ci0gbWF0Y2hfcGF0aF9pbmNsdXNpb24oc3RydWN0IGFyY2hpdmVfbWF0Y2ggKmEsIHN0cnVjdCBtYXRjaCAqbSwKLSAgICAgaW50IG1icywgY29uc3Qgdm9pZCAqcG4pCi0gewotLQlpbnQgZmxhZyA9IFBBVEhNQVRDSF9OT19BTkNIT1JfRU5EOwotKwlpbnQgZmxhZyA9IGEtPnJlY3Vyc2l2ZV9pbmNsdWRlID8KLSsJCVBBVEhNQVRDSF9OT19BTkNIT1JfRU5EIDogLyogUHJlZml4IG1hdGNoIGlzIGdvb2QgZW5vdWdoLiAqLwotKwkJMDsgLyogRnVsbCBtYXRjaCByZXF1aXJlZC4gKi8KLSAJaW50IHI7Ci0gCi0gCWlmIChtYnMpIHsKLWRpZmYgLS1naXQgYS90YXIvYnNkdGFyLjEgYi90YXIvYnNkdGFyLjEKLWluZGV4IDEzMmUxMTQ1Li4xZGQyYTg0NyAxMDA2NDQKLS0tLSBhL3Rhci9ic2R0YXIuMQotKysrIGIvdGFyL2JzZHRhci4xCi1AQCAtMzg2LDggKzM4Niw3IEBAIGFuZCB0aGUgZGVmYXVsdCBiZWhhdmlvciBpbiBjLCByLCBhbmQgdSBtb2RlcyBvciBpZgotIC5ObQotIGlzIHJ1biBpbiB4IG1vZGUgYXMgcm9vdC4KLSAuSXQgRmwgbiAsIEZsIEZsIG5vcmVjdXJzZSAsIEZsIEZsIG5vLXJlY3Vyc2lvbgotLShjLCByLCB1IG1vZGVzIG9ubHkpCi0tRG8gbm90IHJlY3Vyc2l2ZWx5IGFyY2hpdmUgdGhlIGNvbnRlbnRzIG9mIGRpcmVjdG9yaWVzLgotK0RvIG5vdCByZWN1cnNpdmVseSBhcmNoaXZlIChjLCByLCB1KSwgZXh0cmFjdCAoeCkgb3IgbGlzdCAodCkgdGhlIGNvbnRlbnRzIG9mIGRpcmVjdG9yaWVzLgotIC5JdCBGbCBGbCBuZXdlciBBciBkYXRlCi0gKGMsIHIsIHUgbW9kZXMgb25seSkKLSBPbmx5IGluY2x1ZGUgZmlsZXMgYW5kIGRpcmVjdG9yaWVzIG5ld2VyIHRoYW4gdGhlIHNwZWNpZmllZCBkYXRlLgotZGlmZiAtLWdpdCBhL3Rhci9ic2R0YXIuYyBiL3Rhci9ic2R0YXIuYwotaW5kZXggMTFkZWRiZjkuLmQwMTRjYzNlIDEwMDY0NAotLS0tIGEvdGFyL2JzZHRhci5jCi0rKysgYi90YXIvYnNkdGFyLmMKLUBAIC03OTQsOCArNzk0LDYgQEAgbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCi0gCQkJYnJlYWs7Ci0gCQl9Ci0gCX0KLS0JaWYgKGJzZHRhci0+ZmxhZ3MgJiBPUFRGTEFHX05PX1NVQkRJUlMpCi0tCQlvbmx5X21vZGUoYnNkdGFyLCAiLW4iLCAiY3J1Iik7Ci0gCWlmIChic2R0YXItPmZsYWdzICYgT1BURkxBR19TVERPVVQpCi0gCQlvbmx5X21vZGUoYnNkdGFyLCAiLU8iLCAieHQiKTsKLSAJaWYgKGJzZHRhci0+ZmxhZ3MgJiBPUFRGTEFHX1VOTElOS19GSVJTVCkKLUBAIC04NDUsNiArODQzLDE2IEBAIG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQotIAkJb25seV9tb2RlKGJzZHRhciwgYnVmZiwgImNydSIpOwotIAl9Ci0gCi0rCS8qCi0rCSAqIFdoZW4gY3JlYXRpbmcgYW4gYXJjaGl2ZSBmcm9tIGEgZGlyZWN0b3J5IHRyZWUsIHRoZSBkaXJlY3RvcnkKLSsJICogd2Fsa2luZyBjb2RlIHdpbGwgYWxyZWFkeSBhdm9pZCBlbnRlcmluZyBkaXJlY3RvcmllcyB3aGVuCi0rCSAqIHJlY3Vyc2l2ZSBpbmNsdXNpb24gb2YgZGlyZWN0b3J5IGNvbnRlbnQgaXMgZGlzYWJsZWQsIHRoZXJlZm9yZQotKwkgKiBjaGFuZ2luZyB0aGUgbWF0Y2hpbmcgYmVoYXZpb3IgaGFzIG5vIGVmZmVjdCBmb3IgY3JlYXRpb24gbW9kZXMuCi0rCSAqIEl0IGlzIHJlbGV2YW50IGZvciBleHRyYWN0aW9uIG9yIGxpc3RpbmcuCi0rCSAqLwotKwlhcmNoaXZlX21hdGNoX2luY2x1ZGVfZGlyZWN0b3JpZXNfcmVjdXJzaXZlbHkoYnNkdGFyLT5tYXRjaGluZywKLSsJCQkJCQkgICAgICAhKGJzZHRhci0+ZmxhZ3MgJiBPUFRGTEFHX05PX1NVQkRJUlMpKTsKLSsKLSAJLyogRmlsZW5hbWUgIi0iIGltcGxpZXMgc3RkaW8uICovCi0gCWlmIChzdHJjbXAoYnNkdGFyLT5maWxlbmFtZSwgIi0iKSA9PSAwKQotIAkJYnNkdGFyLT5maWxlbmFtZSA9IE5VTEw7Ci0tLSAKLTIuMTEuMAotCmRpZmYgLS1naXQgYS9wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC9saWJhcmNoaXZlL2xpYmFyY2hpdmVfMy4zLjMuYmIgYi9wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC9saWJhcmNoaXZlL2xpYmFyY2hpdmVfMy40LjAuYmIKc2ltaWxhcml0eSBpbmRleCA3OCUKcmVuYW1lIGZyb20gcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvbGliYXJjaGl2ZS9saWJhcmNoaXZlXzMuMy4zLmJiCnJlbmFtZSB0byBwb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC9saWJhcmNoaXZlL2xpYmFyY2hpdmVfMy40LjAuYmIKaW5kZXggYWY1Y2E2NS4uYzc4OWNkNCAxMDA2NDQKLS0tIGEvcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvbGliYXJjaGl2ZS9saWJhcmNoaXZlXzMuMy4zLmJiCisrKyBiL3Bva3kvbWV0YS9yZWNpcGVzLWV4dGVuZGVkL2xpYmFyY2hpdmUvbGliYXJjaGl2ZV8zLjQuMC5iYgpAQCAtMyw3ICszLDcgQEAKIEhPTUVQQUdFID0gImh0dHA6Ly93d3cubGliYXJjaGl2ZS5vcmcvIgogU0VDVElPTiA9ICJkZXZlbCIKIExJQ0VOU0UgPSAiQlNEIgotTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vQ09QWUlORzttZDU9ZWQ5OWFjYTAwNmJjMzQ2OTc0YmI3NDVhMzUzMzY0MjUiCitMSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9DT1BZSU5HO21kNT1mZTAxZjVlMDJiMWYwY2M5MzRkNTkzYTdiMGRkY2ViNiIKIAogREVQRU5EUyA9ICJlMmZzcHJvZ3MtbmF0aXZlIgogCkBAIC0zMiwxOCArMzIsMTAgQEAKIEVYVFJBX09FQ09ORiArPSAiLS1lbmFibGUtbGFyZ2VmaWxlIgogCiBTUkNfVVJJID0gImh0dHA6Ly9saWJhcmNoaXZlLm9yZy9kb3dubG9hZHMvbGliYXJjaGl2ZS0ke1BWfS50YXIuZ3ogXAotICAgICAgICAgICBmaWxlOi8vbm9uLXJlY3Vyc2l2ZS1leHRyYWN0LWFuZC1saXN0LnBhdGNoIFwKLSAgICAgICAgICAgZmlsZTovL2J1ZzEwNjYucGF0Y2ggXAotICAgICAgICAgICBmaWxlOi8vQ1ZFLTIwMTgtMTAwMDg3Ny5wYXRjaCBcCi0gICAgICAgICAgIGZpbGU6Ly9DVkUtMjAxOC0xMDAwODc4LnBhdGNoIFwKLSAgICAgICAgICAgZmlsZTovL0NWRS0yMDE4LTEwMDA4NzkucGF0Y2ggXAotICAgICAgICAgICBmaWxlOi8vQ1ZFLTIwMTgtMTAwMDg4MC5wYXRjaCBcCi0gICAgICAgICAgIGZpbGU6Ly9DVkUtMjAxOS0xMDAwMDE5LnBhdGNoIFwKLSAgICAgICAgICAgZmlsZTovL0NWRS0yMDE5LTEwMDAwMjAucGF0Y2ggXAogIgogCi1TUkNfVVJJW21kNXN1bV0gPSAiNDAzOGUzNjZjYTViNjU5ZGFlM2VmY2M3NDRlNzIxMjAiCi1TUkNfVVJJW3NoYTI1NnN1bV0gPSAiYmE3ZWIxNzgxYzlmYmJhZTE3OGM0YzZiYWQxYzZlYjA4ZWRhYjlhMTQ5NmM2NDgzM2QxNzE1ZDAyMmIzMGUyZSIKK1NSQ19VUklbbWQ1c3VtXSA9ICI2MDQ2Mzk2MjU1YmQ3Y2Y2ZDBmNjYwM2E5YmRhMzlhYyIKK1NSQ19VUklbc2hhMjU2c3VtXSA9ICI4NjQzZDUwZWQ0MGM3NTlmNTQxMmEzYWY0ZTM1M2NmZmJjZTRmZGYzYjVjZjMyMWNiNzJjYWNmMDZiMmQ4MjVlIgogCiBpbmhlcml0IGF1dG90b29scyB1cGRhdGUtYWx0ZXJuYXRpdmVzIHBrZ2NvbmZpZwogCmRpZmYgLS1naXQgYS9wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC9saWJzb2x2L2xpYnNvbHZfMC43LjUuYmIgYi9wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC9saWJzb2x2L2xpYnNvbHZfMC43LjYuYmIKc2ltaWxhcml0eSBpbmRleCA5MyUKcmVuYW1lIGZyb20gcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvbGlic29sdi9saWJzb2x2XzAuNy41LmJiCnJlbmFtZSB0byBwb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC9saWJzb2x2L2xpYnNvbHZfMC43LjYuYmIKaW5kZXggODBjZTc2Yi4uM2RmODk5MyAxMDA2NDQKLS0tIGEvcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvbGlic29sdi9saWJzb2x2XzAuNy41LmJiCisrKyBiL3Bva3kvbWV0YS9yZWNpcGVzLWV4dGVuZGVkL2xpYnNvbHYvbGlic29sdl8wLjcuNi5iYgpAQCAtMTAsNyArMTAsNyBAQAogU1JDX1VSSSA9ICJnaXQ6Ly9naXRodWIuY29tL29wZW5TVVNFL2xpYnNvbHYuZ2l0IFwKICIKIAotU1JDUkVWID0gIjJjYWI3ZWEwMGQwODM5MDM3NGIyNWIxMWQ5NjlmMzc0MGM0NjYwZjQiCitTUkNSRVYgPSAiMTdjZTRiYzRmYjUyYTBiMzI5NjRmM2I3ZDQ5MWMxODE3Nzk4MGJlMSIKIAogVVBTVFJFQU1fQ0hFQ0tfR0lUVEFHUkVHRVggPSAiKD9QPHB2ZXI+XGQrKFwuXGQrKSspIgogCmRpZmYgLS1naXQgYS9wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC9saWdodHRwZC9saWdodHRwZF8xLjQuNTQuYmIgYi9wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC9saWdodHRwZC9saWdodHRwZF8xLjQuNTQuYmIKaW5kZXggYmExYTJjNS4uNzI5OTBkMCAxMDA2NDQKLS0tIGEvcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvbGlnaHR0cGQvbGlnaHR0cGRfMS40LjU0LmJiCisrKyBiL3Bva3kvbWV0YS9yZWNpcGVzLWV4dGVuZGVkL2xpZ2h0dHBkL2xpZ2h0dHBkXzEuNC41NC5iYgpAQCAtNDQsNyArNDQsNyBAQAogUEFDS0FHRUNPTkZJR1t3ZWJkYXYtbG9ja3NdID0gIi0td2l0aC13ZWJkYXYtbG9ja3MsLS13aXRob3V0LXdlYmRhdi1sb2Nrcyx1dGlsLWxpbnV4IgogUEFDS0FHRUNPTkZJR1tnZGJtXSA9ICItLXdpdGgtZ2RibSwtLXdpdGhvdXQtZ2RibSxnZGJtIgogUEFDS0FHRUNPTkZJR1ttZW1jYWNoZV0gPSAiLS13aXRoLW1lbWNhY2hlZCwtLXdpdGhvdXQtbWVtY2FjaGVkLGxpYm1lbWNhY2hlZCIKLVBBQ0tBR0VDT05GSUdbbHVhXSA9ICItLXdpdGgtbHVhLC0td2l0aG91dC1sdWEsbHVhNS4xIgorUEFDS0FHRUNPTkZJR1tsdWFdID0gIi0td2l0aC1sdWEsLS13aXRob3V0LWx1YSxsdWEiCiAKIEVYVFJBX09FQ09ORiArPSAiLS1lbmFibGUtbGZzIgogCmRpZmYgLS1naXQgYS9wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC9sb2dyb3RhdGUvbG9ncm90YXRlXzMuMTUuMC5iYiBiL3Bva3kvbWV0YS9yZWNpcGVzLWV4dGVuZGVkL2xvZ3JvdGF0ZS9sb2dyb3RhdGVfMy4xNS4xLmJiCnNpbWlsYXJpdHkgaW5kZXggOTYlCnJlbmFtZSBmcm9tIHBva3kvbWV0YS9yZWNpcGVzLWV4dGVuZGVkL2xvZ3JvdGF0ZS9sb2dyb3RhdGVfMy4xNS4wLmJiCnJlbmFtZSB0byBwb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC9sb2dyb3RhdGUvbG9ncm90YXRlXzMuMTUuMS5iYgppbmRleCAwZjNkYTJiLi43YzdkNTFiIDEwMDY0NAotLS0gYS9wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC9sb2dyb3RhdGUvbG9ncm90YXRlXzMuMTUuMC5iYgorKysgYi9wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC9sb2dyb3RhdGUvbG9ncm90YXRlXzMuMTUuMS5iYgpAQCAtMjUsOCArMjUsOCBAQAogICAgICAgICAgICAgZmlsZTovL2Rpc2FibGUtY2hlY2stZGlmZmVyZW50LWZpbGVzeXN0ZW1zLnBhdGNoIFwKICAgICAgICAgICAgICIKIAotU1JDX1VSSVttZDVzdW1dID0gIjMyMDA0NmYwYjlmYzM4MzM3ZTg4MjdkNGM1YTg2NmEwIgotU1JDX1VSSVtzaGEyNTZzdW1dID0gIjMxMzYxMmM0Nzc2YTMwNTM5MzQ1NGM4NzRlZjU5MGQ4YWNmODRjOWZmYTY0ODcxNzczMWRmZTkwMjI4NGZmOGYiCitTUkNfVVJJW21kNXN1bV0gPSAiYWZlMTA5YWZlYTc0OWMzMDZmZjQ4OTIwM2ZkZTZiZWIiCitTUkNfVVJJW3NoYTI1NnN1bV0gPSAiNDkxZmVjOWU4OWYxMzcyZjAyYTBhYjY2NTc5YWEyZTlkNjNjYWM1MTc4ZGZhNjcyYzIwNGM4OGU2OTNhOTA4YiIKIAogUEFDS0FHRUNPTkZJRyA/PSAiJHtAYmIudXRpbHMuZmlsdGVyKCdESVNUUk9fRkVBVFVSRVMnLCAnYWNsIHNlbGludXgnLCBkKX0iCiAKZGlmZiAtLWdpdCBhL3Bva3kvbWV0YS9yZWNpcGVzLWV4dGVuZGVkL2xzYi9sc2IvMDAwMS1maXgtbHNiX3JlbGVhc2UtdG8td29yay13aXRoLWJ1c3lib3gtaGVhZC1hbmQtZmluZC5wYXRjaCBiL3Bva3kvbWV0YS9yZWNpcGVzLWV4dGVuZGVkL2xzYi9sc2ItcmVsZWFzZS8wMDAxLWZpeC1sc2JfcmVsZWFzZS10by13b3JrLXdpdGgtYnVzeWJveC1oZWFkLWFuZC1maW5kLnBhdGNoCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBwb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC9sc2IvbHNiLzAwMDEtZml4LWxzYl9yZWxlYXNlLXRvLXdvcmstd2l0aC1idXN5Ym94LWhlYWQtYW5kLWZpbmQucGF0Y2gKcmVuYW1lIHRvIHBva3kvbWV0YS9yZWNpcGVzLWV4dGVuZGVkL2xzYi9sc2ItcmVsZWFzZS8wMDAxLWZpeC1sc2JfcmVsZWFzZS10by13b3JrLXdpdGgtYnVzeWJveC1oZWFkLWFuZC1maW5kLnBhdGNoCmRpZmYgLS1naXQgYS9wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC9sc2IvbHNiLXJlbGVhc2VfMS40LmJiIGIvcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvbHNiL2xzYi1yZWxlYXNlXzEuNC5iYgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41MmUzMDI2Ci0tLSAvZGV2L251bGwKKysrIGIvcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvbHNiL2xzYi1yZWxlYXNlXzEuNC5iYgpAQCAtMCwwICsxLDM2IEBACitTVU1NQVJZID0gImxzYl9yZWxlYXNlIHN1cHBvcnQgZm9yIE9wZW5FbWJlZGRlZCIKK1NFQ1RJT04gPSAiY29uc29sZS91dGlscyIKK0hPTUVQQUdFID0gImh0dHA6Ly9wcmRvd25sb2Fkcy5zb3VyY2Vmb3JnZS5uZXQvbHNiIgorTElDRU5TRSA9ICJHUEx2MisiCisKKyMgbHNiX3JlbGVhc2UgbmVlZHMgZ2V0b3B0CitSREVQRU5EU18ke1BOfSArPSAiJHtWSVJUVUFMLVJVTlRJTUVfZ2V0b3B0fSIKKworTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vUkVBRE1FO21kNT0xMmRhNTQ0YjFhM2E1YTE3OTVhMjExNjBiNDk0NzFjZiIKKworU1JDX1VSSSA9ICIke1NPVVJDRUZPUkdFX01JUlJPUn0vcHJvamVjdC9sc2IvbHNiX3JlbGVhc2UvMS40L2xzYi1yZWxlYXNlLTEuNC50YXIuZ3ogXAorICAgICAgICAgICBmaWxlOi8vMDAwMS1maXgtbHNiX3JlbGVhc2UtdG8td29yay13aXRoLWJ1c3lib3gtaGVhZC1hbmQtZmluZC5wYXRjaCBcCisgICAgICAgICAgICIKKworU1JDX1VSSVttZDVzdW1dID0gIjMwNTM3ZWY1YTAxZTBjYTk0YjdiOGViNmEzNmJiMWU0IgorU1JDX1VSSVtzaGEyNTZzdW1dID0gIjk5MzIxMjg4ZjhkNjJlN2ExZDQ4NWI3YzZiZGNjZjA2NzY2ZmI4Y2E2MDNjNjE5NTgwNmU0NDU3ZmRmMTcxNzIiCisKK1VQU1RSRUFNX0NIRUNLX1VSSSA9ICJodHRwOi8vc291cmNlZm9yZ2UubmV0L3Byb2plY3RzL2xzYi9maWxlcy9sc2JfcmVsZWFzZS8iCitVUFNUUkVBTV9DSEVDS19SRUdFWCA9ICIvbHNiX3JlbGVhc2UvKD9QPHB2ZXI+KFxkK1tcLlwtX10qKSspLyIKKworQ0xFQU5CUk9LRU4gPSAiMSIKKworZG9faW5zdGFsbCgpIHsKKwlvZV9ydW5tYWtlIGluc3RhbGwgcHJlZml4PSR7RH0ke3Jvb3RfcHJlZml4fSBtYW5kaXI9JHtEfSR7ZGF0YWRpcn0vbWFuLyBERVNURElSPSR7RH0KKworCW1rZGlyIC1wICR7RH0ke3N5c2NvbmZkaXJ9L2xzYi1yZWxlYXNlLmQKKworCWVjaG8gIkRJU1RSSUJfSUQ9JHtESVNUUk99IiA+PiAke0R9JHtzeXNjb25mZGlyfS9sc2ItcmVsZWFzZQorCWVjaG8gIkRJU1RSSUJfUkVMRUFTRT0ke0RJU1RST19WRVJTSU9OfSIgPj4gJHtEfSR7c3lzY29uZmRpcn0vbHNiLXJlbGVhc2UKKwlpZiBbIC1uICIke0RJU1RST19DT0RFTkFNRX0iIF07IHRoZW4KKwkJZWNobyAiRElTVFJJQl9DT0RFTkFNRT0ke0RJU1RST19DT0RFTkFNRX0iID4+ICR7RH0ke3N5c2NvbmZkaXJ9L2xzYi1yZWxlYXNlCisJZmkKKwllY2hvICJESVNUUklCX0RFU0NSSVBUSU9OPVwiJHtESVNUUk9fTkFNRX0gJHtESVNUUk9fVkVSU0lPTn1cIiIgPj4gJHtEfSR7c3lzY29uZmRpcn0vbHNiLXJlbGVhc2UKK30KKworRklMRVNfJHtQTn0gKz0gIiR7YmFzZV9saWJkaXJ9IgpkaWZmIC0tZ2l0IGEvcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvbHNiL2xzYi9pbml0LWZ1bmN0aW9ucyBiL3Bva3kvbWV0YS9yZWNpcGVzLWV4dGVuZGVkL2xzYi9sc2IvaW5pdC1mdW5jdGlvbnMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDdjMWRjZTIuLjAwMDAwMDAKLS0tIGEvcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvbHNiL2xzYi9pbml0LWZ1bmN0aW9ucworKysgL2Rldi9udWxsCkBAIC0xLDQ0ICswLDAgQEAKLSMhL2Jpbi9zaAotCi0jIExTQiBpbml0c2NyaXB0IGZ1bmN0aW9ucywgYXMgZGVmaW5lZCBpbiB0aGUgTFNCIFNwZWMgMS4xLjAKLSMKLSMgTGF3cmVuY2UgTGltIDxsbGltQGNvcmUuY29tPiAtIFR1ZSwgMjYgSnVuZSAyMDA3Ci0jIFVwZGF0ZWQgdG8gdGhlIGxhdGVzdCBMU0IgMy4xIHNwZWMKLSMgaHR0cDovL3JlZnNwZWNzLmZyZWVzdGFuZGFyZHMub3JnL0xTQl8zLjEuMC9MU0ItQ29yZS1nZW5lcmljL0xTQi1Db3JlLWdlbmVyaWNfbGluZXMudHh0Ci0KLXN0YXJ0X2RhZW1vbiAoKSB7Ci0JL2V0Yy9jb3JlLWxzYi9sc2Jfc3RhcnRfZGFlbW9uICIkQCIKLX0KLQota2lsbHByb2MgKCkgewotCS9ldGMvY29yZS1sc2IvbHNiX2tpbGxwcm9jICIkQCIKLX0KLQotcGlkb2Zwcm9jICgpIHsKLQkvZXRjL2NvcmUtbHNiL2xzYl9waWRvZnByb2MgIiRAIgotfQotCi1sb2dfc3VjY2Vzc19tc2cgKCkgewotCS9ldGMvY29yZS1sc2IvbHNiX2xvZ19tZXNzYWdlIHN1Y2Nlc3MgIiRAIgotfQotCi1sb2dfZmFpbHVyZV9tc2cgKCkgewotCS9ldGMvY29yZS1sc2IvbHNiX2xvZ19tZXNzYWdlIGZhaWx1cmUgIiRAIgotfQotCi1sb2dfd2FybmluZ19tc2cgKCkgewotCS9ldGMvY29yZS1sc2IvbHNiX2xvZ19tZXNzYWdlIHdhcm5pbmcgIiRAIgotfQotCi0jIGludCBsb2dfYmVnaW5fbWVzc2FnZSAoY2hhciAqbWVzc2FnZSkKLWxvZ19iZWdpbl9tc2cgKCkgewotCWlmIFsgLXogIiQxIiBdOyB0aGVuCi0JCXJldHVybiAxCi0JZmkKLQllY2hvICIgKiAkQCIKLX0KLQotCi1sb2dfZW5kX21zZyAoKSB7Ci0JL2V0Yy9jb3JlLWxzYi9sc2JfbG9nX21lc3NhZ2UgZW5kICIkQCIKLX0KZGlmZiAtLWdpdCBhL3Bva3kvbWV0YS9yZWNpcGVzLWV4dGVuZGVkL2xzYi9sc2IvbHNiX2tpbGxwcm9jIGIvcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvbHNiL2xzYi9sc2Jfa2lsbHByb2MKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDg2NmMxYTkuLjAwMDAwMDAKLS0tIGEvcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvbHNiL2xzYi9sc2Jfa2lsbHByb2MKKysrIC9kZXYvbnVsbApAQCAtMSw2ICswLDAgQEAKLSMhL2Jpbi9zaAotCi0uIC9ldGMvaW5pdC5kL2Z1bmN0aW9ucwotCi1MU0I9TFNCLTEuMSBraWxscHJvYyAkKgotZXhpdCAkPwpkaWZmIC0tZ2l0IGEvcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvbHNiL2xzYi9sc2JfbG9nX21lc3NhZ2UgYi9wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC9sc2IvbHNiL2xzYl9sb2dfbWVzc2FnZQpkZWxldGVkIGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMTAzNDNiMC4uMDAwMDAwMAotLS0gYS9wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC9sc2IvbHNiL2xzYl9sb2dfbWVzc2FnZQorKysgL2Rldi9udWxsCkBAIC0xLDI3ICswLDAgQEAKLSMhL2Jpbi9zaAotCi0uIC9ldGMvaW5pdC5kL2Z1bmN0aW9ucwotCi1BQ1RJT049JDEKLXNoaWZ0Ci0KLWNhc2UgIiRBQ1RJT04iIGluCi0gIHN1Y2Nlc3MpCi0gIAllY2hvIC1uICQqCi0Jc3VjY2VzcyAiJCoiCi0JZWNobwotCTs7Ci0gIGZhaWx1cmUpCi0gIAllY2hvIC1uICQqCi0JZmFpbHVyZSAiJCoiCi0JZWNobwotCTs7Ci0gIHdhcm5pbmcpCi0gIAllY2hvIC1uICQqCi0Jd2FybmluZyAiJCoiCi0JZWNobwotCTs7Ci0gICopCi0gIAk7OwotZXNhYwotZXhpdCAwCmRpZmYgLS1naXQgYS9wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC9sc2IvbHNiL2xzYl9waWRvZnByb2MgYi9wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC9sc2IvbHNiL2xzYl9waWRvZnByb2MKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDZkMWZkMGYuLjAwMDAwMDAKLS0tIGEvcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvbHNiL2xzYi9sc2JfcGlkb2Zwcm9jCisrKyAvZGV2L251bGwKQEAgLTEsNiArMCwwIEBACi0jIS9iaW4vc2gKLQotLiAvZXRjL2luaXQuZC9mdW5jdGlvbnMKLQotcGlkb2Zwcm9jICQqCi1leGl0ICQ/CmRpZmYgLS1naXQgYS9wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC9sc2IvbHNiL2xzYl9zdGFydF9kYWVtb24gYi9wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC9sc2IvbHNiL2xzYl9zdGFydF9kYWVtb24KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IGRlNjJjMjMuLjAwMDAwMDAKLS0tIGEvcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvbHNiL2xzYi9sc2Jfc3RhcnRfZGFlbW9uCisrKyAvZGV2L251bGwKQEAgLTEsNDUgKzAsMCBAQAotIyEvYmluL3NoCi0KLS4gL2V0Yy9pbml0LmQvZnVuY3Rpb25zCi0KLW5pY2U9Ci1mb3JjZT0KLXBpZGZpbGU9Ci11c2VyPQotY2hlY2s9Ci1SRVRWQUw9Ci13aGlsZSBbICIkMSIgIT0gIiR7MSMjWy0rXX0iIF07IGRvCi0JY2FzZSAkMSBpbgotCSAgICAgLWYpCi0JICAgICAJZm9yY2U9Ii0tZm9yY2UiCi0JCXNoaWZ0Ci0JCTs7Ci0JICAgICAtbikKLQkgICAgIAluaWNlPSQyCi0JCXNoaWZ0IDIKLQkJOzsKLQkgICAgIC1wKQotCQlwaWRmaWxlPSItLXBpZGZpbGUgJDIiCi0JCXNoaWZ0IDIKLQkJOzsKLQkgICAgIC11KQotCSAgICAgICAgdXNlcj0iLS11c2VyICQyIgotCQlzaGlmdCAyCi0JCTs7Ci0JICAgICAtYykKLQkgICAgICAgIGNoZWNrPSItLWNoZWNrICQyIgotCQlzaGlmdCAyCi0JCTs7Ci0JICAgICAgKikgICAgIAotIAkJZWNobyAiVW5rbm93biBPcHRpb24gJDEiCi0gCQllY2hvICJPcHRpb25zIGFyZToiCi0gCQllY2hvICItZiIgCi0JCWVjaG8gIi1wIHtwaWRmaWxlfSIKLQkJZWNobyAiLW4gWysvLW5pY2VsZXZlbF0iCi0JCWVjaG8gIi11IHt1c2VyfSIKLQkJZWNobyAiLWMge2Jhc2V9IgotCSAgICAgICAgZXhpdCAxOzsJCi0JZXNhYwotZG9uZQotTFNCPUxTQi0xLjEgZGFlbW9uICR7Zm9yY2U6LX0gJHtuaWNlOi19ICR7cGlkZmlsZTotfSAke3VzZXI6LX0gJHtjaGVjazotfSAkKgotZXhpdCAkPwpkaWZmIC0tZ2l0IGEvcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvbHNiL2xzYl81LjAuYmIgYi9wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC9sc2IvbHNiXzUuMC5iYgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZDFkZTMzNC4uMDAwMDAwMAotLS0gYS9wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC9sc2IvbHNiXzUuMC5iYgorKysgL2Rldi9udWxsCkBAIC0xLDEzNiArMCwwIEBACi1TVU1NQVJZID0gIkxTQiBzdXBwb3J0IGZvciBPcGVuRW1iZWRkZWQiCi1TRUNUSU9OID0gImNvbnNvbGUvdXRpbHMiCi1IT01FUEFHRSA9ICJodHRwOi8vcHJkb3dubG9hZHMuc291cmNlZm9yZ2UubmV0L2xzYiIKLUxJQ0VOU0UgPSAiR1BMdjIrIgotCi1MU0JfQ09SRSA9ICJsc2ItY29yZS0ke1RBUkdFVF9BUkNIfSIKLUxTQl9DT1JFX3g4NiA9ICJsc2ItY29yZS1pYTMyIgotTFNCX0NPUkVfeDg2LTY0ID0gImxzYi1jb3JlLWFtZDY0IgotUlBST1ZJREVTXyR7UE59ICs9ICIke0xTQl9DT1JFfSIKLQotIyBsc2JfcmVsZWFzZSBuZWVkcyBnZXRvcHQsIGxzYmluaXRzY3JpcHRzCi1SREVQRU5EU18ke1BOfSArPSAiJHtWSVJUVUFMLVJVTlRJTUVfZ2V0b3B0fSBsc2Jpbml0c2NyaXB0cyIKLQotTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vUkVBRE1FO21kNT0xMmRhNTQ0YjFhM2E1YTE3OTVhMjExNjBiNDk0NzFjZiIKLQotU1JDX1VSSSA9ICIke1NPVVJDRUZPUkdFX01JUlJPUn0vcHJvamVjdC9sc2IvbHNiX3JlbGVhc2UvMS40L2xzYi1yZWxlYXNlLTEuNC50YXIuZ3ogXAotICAgICAgICAgICBmaWxlOi8vMDAwMS1maXgtbHNiX3JlbGVhc2UtdG8td29yay13aXRoLWJ1c3lib3gtaGVhZC1hbmQtZmluZC5wYXRjaCBcCi0gICAgICAgICAgIGZpbGU6Ly9pbml0LWZ1bmN0aW9ucyBcCi0gICAgICAgICAgIGZpbGU6Ly9sc2Jfa2lsbHByb2MgXAotICAgICAgICAgICBmaWxlOi8vbHNiX2xvZ19tZXNzYWdlIFwKLSAgICAgICAgICAgZmlsZTovL2xzYl9waWRvZnByb2MgXAotICAgICAgICAgICBmaWxlOi8vbHNiX3N0YXJ0X2RhZW1vbiBcCi0gICAgICAgICAgICIKLVVQU1RSRUFNX1ZFUlNJT05fVU5LTk9XTiA9ICIxIgotCi1TUkNfVVJJW21kNXN1bV0gPSAiMzA1MzdlZjVhMDFlMGNhOTRiN2I4ZWI2YTM2YmIxZTQiCi1TUkNfVVJJW3NoYTI1NnN1bV0gPSAiOTkzMjEyODhmOGQ2MmU3YTFkNDg1YjdjNmJkY2NmMDY3NjZmYjhjYTYwM2M2MTk1ODA2ZTQ0NTdmZGYxNzE3MiIKLQotVVBTVFJFQU1fQ0hFQ0tfVVJJID0gImh0dHA6Ly9zb3VyY2Vmb3JnZS5uZXQvcHJvamVjdHMvbHNiL2ZpbGVzL2xzYl9yZWxlYXNlLyIKLVVQU1RSRUFNX0NIRUNLX1JFR0VYID0gIi9sc2JfcmVsZWFzZS8oP1A8cHZlcj4oXGQrW1wuXC1fXSopKykvIgotCi1TID0gIiR7V09SS0RJUn0vbHNiLXJlbGVhc2UtMS40IgotCi1DTEVBTkJST0tFTiA9ICIxIgotCi1kb19pbnN0YWxsKCkgewotCW9lX3J1bm1ha2UgaW5zdGFsbCBwcmVmaXg9JHtEfSR7cm9vdF9wcmVmaXh9IG1hbmRpcj0ke0R9JHtkYXRhZGlyfS9tYW4vIERFU1RESVI9JHtEfQotCi0JIyB0aGVzZSB0d28gZGlycyBhcmUgbmVlZGVkIGJ5IHBhY2thZ2UgbHNiLWRpc3QtY2hlY2tlcgotCW1rZGlyIC1wICR7RH0ke3N5c2NvbmZkaXJ9L29wdAotCW1rZGlyIC1wICR7RH0ke2xvY2Fsc3RhdGVkaXJ9L29wdAotCi0JbWtkaXIgLXAgJHtEfSR7YmFzZV9saWJkaXJ9Ci0JbWtkaXIgLXAgJHtEfSR7c3lzY29uZmRpcn0vbHNiLXJlbGVhc2UuZAotCXByaW50ZiAiTFNCX1ZFUlNJT049XCJjb3JlLTUuMC1ub2FyY2g6IiA+ICR7RH0ke3N5c2NvbmZkaXJ9L2xzYi1yZWxlYXNlCi0KLQlpZiBbICIke1RBUkdFVF9BUkNIfSIgPSAiaTU4NiIgXSB8fCBbICIke1RBUkdFVF9BUkNIfSIgPSAiaTY4NiIgXTsgdGhlbgotCQlwcmludGYgImNvcmUtNS4wLWlhMzIiID4+ICAke0R9JHtzeXNjb25mZGlyfS9sc2ItcmVsZWFzZQotCWVsc2UKLQkJcHJpbnRmICJjb3JlLTUuMC0ke1RBUkdFVF9BUkNIfSIgPj4gICR7RH0ke3N5c2NvbmZkaXJ9L2xzYi1yZWxlYXNlCi0JZmkKLQllY2hvICJcIiIgPj4gJHtEfSR7c3lzY29uZmRpcn0vbHNiLXJlbGVhc2UKLQllY2hvICJESVNUUklCX0lEPSR7RElTVFJPfSIgPj4gJHtEfSR7c3lzY29uZmRpcn0vbHNiLXJlbGVhc2UKLQllY2hvICJESVNUUklCX1JFTEVBU0U9JHtESVNUUk9fVkVSU0lPTn0iID4+ICR7RH0ke3N5c2NvbmZkaXJ9L2xzYi1yZWxlYXNlCi0JaWYgWyAtbiAiJHtESVNUUk9fQ09ERU5BTUV9IiBdOyB0aGVuCi0JCWVjaG8gIkRJU1RSSUJfQ09ERU5BTUU9JHtESVNUUk9fQ09ERU5BTUV9IiA+PiAke0R9JHtzeXNjb25mZGlyfS9sc2ItcmVsZWFzZQotCWZpCi0JZWNobyAiRElTVFJJQl9ERVNDUklQVElPTj1cIiR7RElTVFJPX05BTUV9ICR7RElTVFJPX1ZFUlNJT059XCIiID4+ICR7RH0ke3N5c2NvbmZkaXJ9L2xzYi1yZWxlYXNlCi0KLQlpZiBbICIke1RBUkdFVF9BUkNIfSIgPSAiaTU4NiIgXSB8fCBbICIke1RBUkdFVF9BUkNIfSIgPSAiaTY4NiIgXTsgdGhlbgotCQlta2RpciAtcCAke0R9JHtzeXNjb25mZGlyfS9sc2ItcmVsZWFzZS5kCi0JCXRvdWNoICR7RH0ke3N5c2NvbmZkaXJ9L2xzYi1yZWxlYXNlLmQvZ3JhcGhpY3MtJHtQVn0tbm9hcmNoCi0JCXRvdWNoICR7RH0ke3N5c2NvbmZkaXJ9L2xzYi1yZWxlYXNlLmQvZGVza3RvcC0ke1BWfS1ub2FyY2gKLQkJdG91Y2ggJHtEfSR7c3lzY29uZmRpcn0vbHNiLXJlbGVhc2UuZC9ncmFwaGljcy0ke1BWfS1pYTMyCi0JCXRvdWNoICR7RH0ke3N5c2NvbmZkaXJ9L2xzYi1yZWxlYXNlLmQvZGVza3RvcC0ke1BWfS1pYTMyCi0JZWxpZiBbICIke1RBUkdFVF9BUkNIfSIgPSAieDg2XzY0IiBdOyB0aGVuCi0JCXRvdWNoICR7RH0ke3N5c2NvbmZkaXJ9L2xzYi1yZWxlYXNlLmQvZ3JhcGhpY3MtJHtQVn0tbm9hcmNoCi0JCXRvdWNoICR7RH0ke3N5c2NvbmZkaXJ9L2xzYi1yZWxlYXNlLmQvZ3JhcGhpY3MtJHtQVn0tYW1kNjQKLQkJdG91Y2ggJHtEfSR7c3lzY29uZmRpcn0vbHNiLXJlbGVhc2UuZC9kZXNrdG9wLSR7UFZ9LWFtZDY0Ci0JZmkKLQlpZiBbICIke1RBUkdFVF9BUkNIfSIgPSAicG93ZXJwYyIgXTsgdGhlbgotCQl0b3VjaCAke0R9JHtzeXNjb25mZGlyfS9sc2ItcmVsZWFzZS5kL2dyYXBoaWNzLSR7UFZ9LW5vYXJjaAotCQl0b3VjaCAke0R9JHtzeXNjb25mZGlyfS9sc2ItcmVsZWFzZS5kL2dyYXBoaWNzLSR7UFZ9LXBwYzMyCi0JCXRvdWNoICR7RH0ke3N5c2NvbmZkaXJ9L2xzYi1yZWxlYXNlLmQvZGVza3RvcC0ke1BWfS1wcGMzMgotCWVsaWYgWyAiJHtUQVJHRVRfQVJDSH0iID0gInBvd2VycGM2NCIgXTsgdGhlbgotCQl0b3VjaCAke0R9JHtzeXNjb25mZGlyfS9sc2ItcmVsZWFzZS5kL2dyYXBoaWNzLSR7UFZ9LW5vYXJjaAotCQl0b3VjaCAke0R9JHtzeXNjb25mZGlyfS9sc2ItcmVsZWFzZS5kL2dyYXBoaWNzLSR7UFZ9LXBwYzY0Ci0JCXRvdWNoICR7RH0ke3N5c2NvbmZkaXJ9L2xzYi1yZWxlYXNlLmQvZGVza3RvcC0ke1BWfS1wcGM2NAotCWZpCi19Ci0KLWRvX2luc3RhbGxfYXBwZW5kKCkgewotICAgICAgIGluc3RhbGwgLWQgJHtEfSR7c3lzY29uZmRpcn0vY29yZS1sc2IKLSAgICAgICBmb3IgaSBpbiBsc2Jfa2lsbHByb2MgbHNiX2xvZ19tZXNzYWdlIGxzYl9waWRvZnByb2MgbHNiX3N0YXJ0X2RhZW1vbgotICAgICAgIGRvCi0gICAgICAgICAgIGluc3RhbGwgLW0gMDc1NSAke1dPUktESVJ9LyRpICR7RH0ke3N5c2NvbmZkaXJ9L2NvcmUtbHNiCi0gICAgICAgZG9uZQotCi0gICAgICAgaW5zdGFsbCAtZCAke0R9JHtub25hcmNoX2Jhc2VfbGliZGlyfS9sc2IKLSAgICAgICBpbnN0YWxsIC1tIDA3NTUgJHtXT1JLRElSfS9pbml0LWZ1bmN0aW9ucyAke0R9JHtub25hcmNoX2Jhc2VfbGliZGlyfS9sc2IKLQotICAgICAgICMgY3JlYXRlIGxpbmtzIGZvciBMU0IgdGVzdAotICAgICAgIGlmIFsgLWUgJHtzYmluZGlyfS9jaGtjb25maWcgXTsgdGhlbgotICAgICAgICAgICAgICAgaWYgWyAiJHtub25hcmNoX2Jhc2VfbGliZGlyfSIgIT0gIiR7bm9uYXJjaF9saWJkaXJ9IiBdIDsgdGhlbgotICAgICAgICAgICAgICAgICAgICAgICBpbnN0YWxsIC1kICR7RH0ke25vbmFyY2hfbGliZGlyfS9sc2IKLSAgICAgICAgICAgICAgIGZpCi0gICAgICAgICAgICAgICBsbiAtc2YgJHtzYmluZGlyfS9jaGtjb25maWcgJHtEfSR7bm9uYXJjaF9saWJkaXJ9L2xzYi9pbnN0YWxsX2luaXRkCi0gICAgICAgICAgICAgICBsbiAtc2YgJHtzYmluZGlyfS9jaGtjb25maWcgJHtEfSR7bm9uYXJjaF9saWJkaXJ9L2xzYi9yZW1vdmVfaW5pdGQKLSAgICAgICBmaQotCi0gICAgICAgaWYgWyAiJHtUQVJHRVRfQVJDSH0iID0gIng4Nl82NCIgXTsgdGhlbgotICAgICAgIAkgICAgICAgIyBkb24ndCBzeW1saW5rIGlmIHVzcm1lcmdlIGlzIGluIERJU1RST19GRUFUVVJFUyBhcyBpdCBtYW5hZ2VzIHRoZSBzeW1saW5rCi0gICAgICAgICAgICAgICBpZiAke0BiYi51dGlscy5jb250YWlucygnRElTVFJPX0ZFQVRVUkVTJywndXNybWVyZ2UnLCdmYWxzZScsJ3RydWUnLGQpfSAmJiBcCi0JICAgICAgIAkgIFsgIiR7YmFzZV9saWJkaXJ9IiAhPSAiJHtiYXNlX3ByZWZpeH0vbGliNjQiIF07IHRoZW4KLSAgICAgICAgICAgICAgICAgICBsbnIgJHtEfSR7YmFzZV9saWJkaXJ9ICR7RH0ke2Jhc2VfcHJlZml4fS9saWI2NAotICAgICAgICAgICAgICAgZmkKLQkgICAgICAgY2QgJHtEfSR7YmFzZV9saWJkaXJ9Ci0gICAgICAgICAgICAgICBsbiAtc2YgbGQtbGludXgteDg2LTY0LnNvLjIgbGQtbHNiLXg4Ni02NC5zby4yCi0gICAgICAgICAgICAgICBsbiAtc2YgbGQtbGludXgteDg2LTY0LnNvLjIgbGQtbHNiLXg4Ni02NC5zby4zCi0gICAgICAgZmkKLSAgICAgICBpZiBbICIke1RBUkdFVF9BUkNIfSIgPSAiaTU4NiIgXSB8fCBbICIke1RBUkdFVF9BUkNIfSIgPSAiaTY4NiIgXTsgdGhlbgotCSAgICAgICBjZCAke0R9JHtiYXNlX2xpYmRpcn0KLSAgICAgICAgICAgICAgIGxuIC1zZiBsZC1saW51eC5zby4yIGxkLWxzYi5zby4yCi0gICAgICAgICAgICAgICBsbiAtc2YgbGQtbGludXguc28uMiBsZC1sc2Iuc28uMwotICAgICAgIGZpCi0KLSAgICAgICBpZiBbICIke1RBUkdFVF9BUkNIfSIgPSAicG93ZXJwYzY0IiBdOyB0aGVuCi0gICAgICAgICAgICAgICBpZiBbICIke2Jhc2VfbGliZGlyfSIgIT0gIiR7YmFzZV9wcmVmaXh9L2xpYjY0IiBdOyB0aGVuCi0gICAgICAgICAgICAgICAgICAgbG5yICR7RH0ke2Jhc2VfbGliZGlyfSAke0R9JHtiYXNlX3ByZWZpeH0vbGliNjQKLSAgICAgICAgICAgICAgIGZpCi0gICAgICAgICAgICAgICBjZCAke0R9JHtiYXNlX2xpYmRpcn0KLSAgICAgICAgICAgICAgIGxuIC1zZiBsZDY0LnNvLjEgbGQtbHNiLXBwYzY0LnNvLjIKLSAgICAgICAgICAgICAgIGxuIC1zZiBsZDY0LnNvLjEgbGQtbHNiLXBwYzY0LnNvLjMKLSAgICAgICBmaQotICAgICAgIGlmIFsgIiR7VEFSR0VUX0FSQ0h9IiA9ICJwb3dlcnBjIiBdOyB0aGVuCi0JICAgICAgIGNkICR7RH0ke2Jhc2VfbGliZGlyfQotICAgICAgICAgICAgICAgbG4gLXNmIGxkLnNvLjEgbGQtbHNiLXBwYzMyLnNvLjIKLSAgICAgICAgICAgICAgIGxuIC1zZiBsZC5zby4xIGxkLWxzYi1wcGMzMi5zby4zCi0gICAgICAgZmkKLX0KLQotRklMRVNfJHtQTn0gKz0gIiR7QCcke2Jhc2VfcHJlZml4fS9saWI2NCcgaWYgZC5nZXRWYXIoJ1RBUkdFVF9BUkNIJykgPT0gKCd4ODZfNjQnIG9yICdwb3dlcnBjNjQnKSBhbmQgJyR7YmFzZV9saWJkaXJ9JyAhPSAnJHtiYXNlX3ByZWZpeH0vbGliNjQnIGVsc2UgJyd9IFwKLSAgICAgICAgICAgICAgICAke2Jhc2VfbGliZGlyfSBcCi0gICAgICAgICAgICAgICAgJHtub25hcmNoX2xpYmRpcn0vbHNiIFwKLSAgICAgICAgICAgICAgICAke25vbmFyY2hfYmFzZV9saWJkaXJ9L2xzYi8qIFwKLSAgICAgICAgICAgICAgICAiCmRpZmYgLS1naXQgYS9wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC9sc2IvbHNiaW5pdHNjcmlwdHMvMDAwMS1mdW5jdGlvbnMtYXZvaWQtZXhpdC0xLXdoaWNoLWNhdXNlcy1pbml0LXNjcmlwdHMtdG8tLnBhdGNoIGIvcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvbHNiL2xzYmluaXRzY3JpcHRzLzAwMDEtZnVuY3Rpb25zLWF2b2lkLWV4aXQtMS13aGljaC1jYXVzZXMtaW5pdC1zY3JpcHRzLXRvLS5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYzAwNzY0NS4uMDAwMDAwMAotLS0gYS9wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC9sc2IvbHNiaW5pdHNjcmlwdHMvMDAwMS1mdW5jdGlvbnMtYXZvaWQtZXhpdC0xLXdoaWNoLWNhdXNlcy1pbml0LXNjcmlwdHMtdG8tLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMjEgKzAsMCBAQAotVXBzdHJlYW0tU3RhdHVzOiBQZW5kaW5nCi0KLVN1YmplY3Q6IGZ1bmN0aW9uczogYXZvaWQgZXhpdCAxIHdoaWNoIGNhdXNlcyBpbml0IHNjcmlwdHMgdG8gZmFpbAotCi1TaWduZWQtb2ZmLWJ5OiBDaGVuIFFpIDxRaS5DaGVuQHdpbmRyaXZlci5jb20+Ci0tLS0KLSByYy5kL2luaXQuZC9mdW5jdGlvbnMgfCAyICstCi0gMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAxIGRlbGV0aW9uKC0pCi0KLUluZGV4OiBpbml0c2NyaXB0cy05LjcyL3JjLmQvaW5pdC5kL2Z1bmN0aW9ucwotPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGluaXRzY3JpcHRzLTkuNzIub3JpZy9yYy5kL2luaXQuZC9mdW5jdGlvbnMKLSsrKyBpbml0c2NyaXB0cy05LjcyL3JjLmQvaW5pdC5kL2Z1bmN0aW9ucwotQEAgLTY4Niw2ICs2ODYsNiBAQCBpZiBbICIkX3VzZV9zeXN0ZW1jdGwiID0gIjEiIF07IHRoZW4KLSAgICAgZmkKLSBmaQotIAotLXN0cnN0ciAiJChjYXQgL3Byb2MvY21kbGluZSkiICJyYy5kZWJ1ZyIgJiYgc2V0IC14Ci0rc3Ryc3RyICIkKGNhdCAvcHJvYy9jbWRsaW5lKSIgInJjLmRlYnVnIiAmJiBzZXQgLXggfHwgdHJ1ZQotIHJldHVybiAwCi0gCmRpZmYgLS1naXQgYS9wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC9sc2IvbHNiaW5pdHNjcmlwdHMvZnVuY3Rpb25zLnBhdGNoIGIvcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvbHNiL2xzYmluaXRzY3JpcHRzL2Z1bmN0aW9ucy5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZTkxMmRhYS4uMDAwMDAwMAotLS0gYS9wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC9sc2IvbHNiaW5pdHNjcmlwdHMvZnVuY3Rpb25zLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMzMgKzAsMCBAQAotRnJvbSBlNDZiMDU2MjgyYzg0MjBmMDk2ZDVjMzRkNzhjMDBmODE2Nzg4Nzg0IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogRmFuIFhpbiA8ZmFuLnhpbkBqcC5mdWppdHN1LmNvbT4KLURhdGU6IE1vbiwgNSBKdW4gMjAxNyAxNjoyNjo0NyArMDkwMAotU3ViamVjdDogW1BBVENIIDEvMl0gVXBzdHJlYW0tU3RhdHVzOiBJbmFwcHJvcHJpYXRlIFtjb25maWd1cmF0aW9uXQotCi1TaWduZWQtb2ZmLWJ5OiBYaWFvZmVuZyBZYW4gPHhpYW9mZW5nLnlhbkB3aW5kcml2ZXIuY29tPgotU2lnbmVkLW9mZi1ieTogU2F1bCBXb2xkIDxzZ3dAbGludXguaW50ZWwuY29tPgotCi1SZWJhc2Ugb24gOS43MgotCi1TaWduZWQtb2ZmLWJ5OiBGYW4gWGluIDxmYW4ueGluQGpwLmZ1aml0c3UuY29tPgotVXBzdHJlYW0tU3RhdHVzOiBQZW5kaW5nCi0KLS0tLQotIHJjLmQvaW5pdC5kL2Z1bmN0aW9ucyB8IDIgKy0KLSAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkKLQotZGlmZiAtLWdpdCBhL3JjLmQvaW5pdC5kL2Z1bmN0aW9ucyBiL3JjLmQvaW5pdC5kL2Z1bmN0aW9ucwotaW5kZXggMmUzZGE5NjQuLjFhMjA0ZGVjIDEwMDY0NAotLS0tIGEvcmMuZC9pbml0LmQvZnVuY3Rpb25zCi0rKysgYi9yYy5kL2luaXQuZC9mdW5jdGlvbnMKLUBAIC01OSw3ICs1OSw3IEBAIHN5c3RlbWN0bF9yZWRpcmVjdCAoKSB7Ci0gWyAteiAiJHtDT0xVTU5TOi19IiBdICYmIENPTFVNTlM9ODAKLSAKLSBpZiBbIC16ICIke0NPTlNPTEVUWVBFOi19IiBdOyB0aGVuCi0tICAgIGlmIFsgLWMgIi9kZXYvc3RkZXJyIiBdICYmIFsgLXIgIi9kZXYvc3RkZXJyIiBdOyB0aGVuCi0rICAgIGlmIFsgLWMgIi9kZXYvc3RkZXJyIiBdICYmIFsgLXIgIi9kZXYvc3RkZXJyIiBdICYmIFsgLWUgL3NiaW4vY29uc29sZXR5cGUgXTsgdGhlbgotICAgICAgICAgQ09OU09MRVRZUEU9IiQoL3NiaW4vY29uc29sZXR5cGUgPCAvZGV2L3N0ZGVyciAyPi9kZXYvbnVsbCkiCi0gICAgIGVsc2UKLSAgICAgICAgIENPTlNPTEVUWVBFPSJzZXJpYWwiCi0tLSAKLTIuMTUuMQotCmRpZmYgLS1naXQgYS9wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC9sc2IvbHNiaW5pdHNjcmlwdHNfOS43OS5iYiBiL3Bva3kvbWV0YS9yZWNpcGVzLWV4dGVuZGVkL2xzYi9sc2Jpbml0c2NyaXB0c185Ljc5LmJiCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2ZDNmY2YxLi4wMDAwMDAwCi0tLSBhL3Bva3kvbWV0YS9yZWNpcGVzLWV4dGVuZGVkL2xzYi9sc2Jpbml0c2NyaXB0c185Ljc5LmJiCisrKyAvZGV2L251bGwKQEAgLTEsMzEgKzAsMCBAQAotU1VNTUFSWSA9ICJTeXNWIGluaXQgc2NyaXB0cyB3aGljaCBhcmUgb25seSB1c2VkIGluIGFuIExTQiBpbWFnZSIKLUhPTUVQQUdFID0gImh0dHBzOi8vd2lraS5kZWJpYW4ub3JnL0xTQkluaXRTY3JpcHRzIgotU0VDVElPTiA9ICJiYXNlIgotTElDRU5TRSA9ICJHUEx2MiIKLQotUlBST1ZJREVTXyR7UE59ICs9ICJpbml0ZC1mdW5jdGlvbnMiCi1SREVQRU5EU18ke1BOfSArPSAidXRpbC1saW51eCIKLVJDT05GTElDVFNfJHtQTn0gPSAiaW5pdHNjcmlwdHMtZnVuY3Rpb25zIgotCi1MSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9DT1BZSU5HO21kNT1lYmY0ZThiNDk3ODBhYjE4N2Q1MWJkMjZhYWEwMjJjNiIKLQotUyA9ICIke1dPUktESVJ9L2dpdCIKLVNSQ19VUkkgPSAiZ2l0Oi8vZ2l0aHViLmNvbS9mZWRvcmEtc3lzdi9pbml0c2NyaXB0cyBcCi0gICAgICAgICAgIGZpbGU6Ly9mdW5jdGlvbnMucGF0Y2ggXAotICAgICAgICAgICBmaWxlOi8vMDAwMS1mdW5jdGlvbnMtYXZvaWQtZXhpdC0xLXdoaWNoLWNhdXNlcy1pbml0LXNjcmlwdHMtdG8tLnBhdGNoIFwKLSAgICAgICAgICAiIAotU1JDUkVWID0gImE1MWMxYjRmN2RjZjU1YjU2OGIyZWU0YzJiMTgwNzg4NDk5NDM0NjkiCi1VUFNUUkVBTV9DSEVDS19HSVRUQUdSRUdFWCA9ICJeKD9QPHB2ZXI+XGQrKFwuXGQrKSspIgotCi1TUkNfVVJJW21kNXN1bV0gPSAiZDZjNzk4ZjQwZGNlYjExN2UxMjEyNmQ5NGNiMjVhOWEiCi1TUkNfVVJJW3NoYTI1NnN1bV0gPSAiMTc5MzY3N2JkZDFmN2VlNGNiMDA4NzhjZTQzMzQ2MTk2Mzc0Zjg0OGE0YzhlNDU1OWUwODYwNDBmYzc0ODdkYiIKLQotIyBTaW5jZSB3ZSBhcmUgb25seSB0YWtpbmcgdGhlIHBhdGNoZWQgdmVyc2lvbiBvZiBmdW5jdGlvbnMsIG5vIG5lZWQgdG8KLSMgY29uZmlndXJlIG9yIGNvbXBpbGUgYW55dGhpbmcgc28gZG8gbm90IGV4ZWN1dGUgdGhlc2UKLWRvX2NvbmZpZ3VyZVtub2V4ZWNdID0gIjEiIAotZG9fY29tcGlsZVtub2V4ZWNdID0gIjEiIAotCi1kb19pbnN0YWxsKCl7Ci0JaW5zdGFsbCAtZCAke0R9JHtzeXNjb25mZGlyfS9pbml0LmQvCi0JaW5zdGFsbCAtbSAwNjQ0ICR7U30vcmMuZC9pbml0LmQvZnVuY3Rpb25zICR7RH0ke3N5c2NvbmZkaXJ9L2luaXQuZC9mdW5jdGlvbnMKLX0KZGlmZiAtLWdpdCBhL3Bva3kvbWV0YS9yZWNpcGVzLWV4dGVuZGVkL2xzYi9sc2J0ZXN0L0xTQl9UZXN0LnNoIGIvcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvbHNiL2xzYnRlc3QvTFNCX1Rlc3Quc2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDA3M2UyNDcuLjAwMDAwMDAKLS0tIGEvcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvbHNiL2xzYnRlc3QvTFNCX1Rlc3Quc2gKKysrIC9kZXYvbnVsbApAQCAtMSw1MjUgKzAsMCBAQAotIyEvYmluL3NoCi0KLSMgQ29weXJpZ2h0IChDKSAyMDEyIFdpbmQgUml2ZXIgU3lzdGVtcywgSW5jLgotIwotIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQotIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMiBhcwotIyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbi4KLSMKLSMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0jIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0jIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4KLSMgU2VlIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotIwotIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQotIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQotIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQotCi0KLVdPUktfRElSPSIvb3B0L2xzYi10ZXN0IgotCi1pZiBbIGBpZCAtdWAgLW5lIDAgXQotdGhlbgotCWNhdCA8PCBFT0YKLQlJbiBvcmRlciB0byBpbnN0YWxsIGFuZCBydW4gTFNCIHRlc3RzdWl0ZSwgeW91IG5lZWQgYWRtaW5pc3RyYXRvciBwcml2aWxlZ2VzLgotCVlvdSBhcmUgY3VycmVudGx5IHJ1bm5pbmcgdGhpcyBzY3JpcHQgYXMgYW4gdW5wcml2aWxlZ2VkIHVzZXIuCi0KLUVPRgotCWV4aXQgMQotZmkKLQotQVJDSD1gdW5hbWUgLW1gCi1pZiBbICR7QVJDSH0gIT0gImk2ODYiIF0gJiYgWyAke0FSQ0h9ICE9ICJ4ODZfNjQiIF0gJiYgWyAke0FSQ0h9ICE9ICJwcGMiIF0gJiYgWyAke0FSQ0h9ICE9ICJwcGM2NCIgXQotdGhlbgotCWVjaG8gIkVycm9yOiBVbnN1cHBvcnRlZCBhcmNoaXRlY3R1cmUiCi0JZXhpdCAxCi1maQotCi13aGljaCBycG0KLWlmIFsgJD8gLW5lIDAgXQotdGhlbgotCWVjaG8gIk5vIHJwbSBjb21tYW5kIGZvdW5kIgotCWV4aXQgMQotZmkKLQotUkVUPTAKLQotY2QgJHtXT1JLX0RJUn0gfHwgZXhpdCAxCi0jIFN0ZXAgMTogRG93bmxvYWQgdGhlIExTQiBQYWNrYWdlcwotZWNobyAiIgotZWNobyAiRG93bmxvYWQgTFNCIHBhY2thZ2VzLi4uIgotZWNobyAiIgotCi1pZiBbICEgLWUgLi9wYWNrYWdlc19saXN0IF0KLXRoZW4KLQllY2hvICJFcnJvcjogQ291bGQgbm90IGZpbmQgcGFja2FnZXMgbGlzdCIgPiYyCi0JZXhpdCAxCi1maQotCi0uIC4vcGFja2FnZXNfbGlzdAotCi1QQUNLQUdFU19ESVI9Ii92YXIvb3B0L2xzYi90ZXN0L21hbmFnZXIvcGFja2FnZXMvZnRwLmxpbnV4Zm91bmRhdGlvbi5vcmcvcHViL2xzYiIKLQotQkFTRV9QQUNLQUdFU19ESVI9IiR7UEFDS0FHRVNfRElSfS9iYXNlL3JlbGVhc2VkLWFsbC9iaW5hcnkiCi1SVU5USU1FX0JBU0VfUEFDS0FHRVNfRElSPSIke1BBQ0tBR0VTX0RJUn0vdGVzdF9zdWl0ZXMvcmVsZWFzZWQtYWxsL2JpbmFyeS9ydW50aW1lIgotUlVOVElNRV9QQUNLQUdFU19ESVI9IiR7UEFDS0FHRVNfRElSfS90ZXN0X3N1aXRlcy8ke0xTQl9SRUxFQVNFfS9iaW5hcnkvcnVudGltZSIKLUFQUF9QQUNLQUdFU19ESVI9IiR7UEFDS0FHRVNfRElSfS9hcHAtYmF0dGVyeS8ke0xTQl9SRUxFQVNFfS8ke0xTQl9BUkNIfSIKLUFQUF9URVNURklMRVNfRElSPSIke1BBQ0tBR0VTX0RJUn0vYXBwLWJhdHRlcnkvdGVzdHMiCi1TTkFQU0hPVFNfVEVTVEZJTEVTX0RJUj0iJHtQQUNLQUdFU19ESVJ9L3NuYXBzaG90cy9hcHBiYXQvdGVzdHMiCi0KLWlmIFsgISAtZCAke1BBQ0tBR0VTX0RJUn0gXQotdGhlbgotCW1rZGlyIC1wICR7UEFDS0FHRVNfRElSfQotZmkKLQotaWYgWyAhIC1kICR7QkFTRV9QQUNLQUdFU19ESVJ9IF0KLXRoZW4KLQlta2RpciAtcCAke0JBU0VfUEFDS0FHRVNfRElSfQotZmkKLQotaWYgWyAhIC1kICR7UlVOVElNRV9CQVNFX1BBQ0tBR0VTX0RJUn0gXQotdGhlbgotCW1rZGlyIC1wICR7UlVOVElNRV9CQVNFX1BBQ0tBR0VTX0RJUn0KLWZpCi0KLWlmIFsgISAtZCAke1JVTlRJTUVfUEFDS0FHRVNfRElSfSBdCi10aGVuCi0JbWtkaXIgLXAgJHtSVU5USU1FX1BBQ0tBR0VTX0RJUn0KLWZpCi0KLWlmIFsgISAtZCAke0FQUF9QQUNLQUdFU19ESVJ9IF0KLXRoZW4KLQlta2RpciAtcCAke0FQUF9QQUNLQUdFU19ESVJ9Ci1maQotCi1pZiBbICEgLWQgJHtBUFBfVEVTVEZJTEVTX0RJUn0gXQotdGhlbgotCW1rZGlyIC1wICR7QVBQX1RFU1RGSUxFU19ESVJ9Ci1maQotCi0jIE9mZmljaWFsIGRvd25sb2FkIHNlcnZlciBsaXN0LiBZb3UgY2FuIHJlcGxhY2UgdGhlbSB3aXRoIHlvdXIgb3duIHNlcnZlci4KLVNFUlZFUl9JUEFERFI9IjE0MC4yMTEuMTY5LjI4IgotU0VSVkVSX05BTUU9ImZ0cC5saW51eGZvdW5kYXRpb24ub3JnIgotCi1pZiAhIGBncmVwIC1GIC1xICIke1NFUlZFUl9OQU1FfSIgL2V0Yy9ob3N0c2A7IHRoZW4KLQllY2hvICIke1NFUlZFUl9JUEFERFJ9CSR7U0VSVkVSX05BTUV9CSR7U0VSVkVSX05BTUV9IiA+PiAvZXRjL2hvc3RzCi1maQotCi0jcGluZyAtYyA1ICR7U0VSVkVSX05BTUV9Ci0jaWYgWyAkPyAtbmUgMCBdCi0jdGhlbgotIwllY2hvICJUaGUgc2VydmVyOiAke1NFUlZFUl9OQU1FfSBpcyB1bnJlYWNoYWJsZSIKLSMJZXhpdCAxCi0jZmkKLQotU0VSVkVSMT0iXAotCWh0dHA6Ly8ke1NFUlZFUl9OQU1FfS9wdWIvbHNiL2Jhc2UvcmVsZWFzZWQtYWxsL2JpbmFyeSIJCi1TRVJWRVIyPSJcCi0JaHR0cDovLyR7U0VSVkVSX05BTUV9L3B1Yi9sc2IvdGVzdF9zdWl0ZXMvcmVsZWFzZWQtYWxsL2JpbmFyeS9ydW50aW1lIgotU0VSVkVSMz0iXAotCWh0dHA6Ly8ke1NFUlZFUl9OQU1FfS9wdWIvbHNiL3Rlc3Rfc3VpdGVzLyR7TFNCX1JFTEVBU0V9L2JpbmFyeS9ydW50aW1lIgotU0VSVkVSND0iXAotCWh0dHA6Ly8ke1NFUlZFUl9OQU1FfS9wdWIvbHNiL2FwcC1iYXR0ZXJ5LyR7TFNCX1JFTEVBU0V9LyR7TFNCX0FSQ0h9IgotU0VSVkVSNT0iXAotCWh0dHA6Ly8ke1NFUlZFUl9OQU1FfS9wdWIvbHNiL2FwcC1iYXR0ZXJ5L3Rlc3RzIgotCi0jIFdlIHVzaW5nICJjdXJsIiBhcyBhIGRvd25sb2FkIHRvb2wsICJ3Z2V0IiBpcyBhbiBhbHRlcm5hdGl2ZS4KLUNVUkw9YHdoaWNoIGN1cmxgCi1XR0VUPWB3aGljaCB3Z2V0YAotaWYgWyAhIC16ICR7Q1VSTH0gXQotdGhlbgotCURPV05MT0FEX0NNRD0iJHtDVVJMfSAtUiAtTCAtZiAtLXJldHJ5IDMgLS1yZXRyeS1kZWxheSA0IC0tY29ubmVjdC10aW1lb3V0IDE4MCAtLWNvbXByZXNzZWQgLUMgLSAtbyIKLWVsaWYgWyAhIC16ICR7V0dFVH0gXQotdGhlbgotCURPV05MT0FEX0NNRD0iJHtXR0VUfSAtYyAtdCA1IC1PIgotZWxzZQotCWVjaG8gIkNhbiBub3QgZmluZCBhIGRvd25sb2FkIHRvb2wsIHBsZWFzZSBpbnN0YWxsIGN1cmwgb3Igd2dldC4iCi0JZXhpdCAxCi1maQotCi1jZCAke0JBU0VfUEFDS0FHRVNfRElSfQotZm9yIHBrZyBpbiAke0JBU0VfUEFDS0FHRVNfTElTVH07IGRvCi0JaWYgWyAhIC1mICR7cGtnfSBdCi0JdGhlbgotCQkjJHtET1dOTE9BRF9DTUR9ICR7cGtnfSIuI3BhcnQiICR7U0VSVkVSMX0vJHtwa2d9ID4gL2Rldi9udWxsIDI+JjEKLQkJJHtET1dOTE9BRF9DTUR9ICR7cGtnfSIuI3BhcnQiICR7U0VSVkVSMX0vJHtwa2d9Ci0JCWlmIFsgJD8gLWVxIDAgXQotCQl0aGVuCi0JCQltdiAtZiAke3BrZ30iLiNwYXJ0IiAke3BrZ30KLQkJCWVjaG8gIkRvd25sb2FkICR7cGtnfSBzdWNjZXNzZnVsbHkuIgotCQllbHNlCi0JCQllY2hvICJEb3dubG9hZCAke3BrZ30gZmFpbGVkLiIKLQkJCVJFVD0xCi0JCWZpCi0JZmkKLWRvbmUKLQotY2QgJHtSVU5USU1FX0JBU0VfUEFDS0FHRVNfRElSfQotZm9yIHBrZyBpbiAke1JVTlRJTUVfQkFTRV9QQUNLQUdFU19MSVNUfTsgZG8KLQlpZiBbICEgLWYgJHtwa2d9IF0KLQl0aGVuCi0JCSMke0RPV05MT0FEX0NNRH0gJHtwa2d9Ii4jcGFydCIgJHtTRVJWRVIyfS8ke3BrZ30gPiAvZGV2L251bGwgMj4mMQotCQkke0RPV05MT0FEX0NNRH0gJHtwa2d9Ii4jcGFydCIgJHtTRVJWRVIyfS8ke3BrZ30KLQkJaWYgWyAkPyAtZXEgMCBdCi0JCXRoZW4KLQkJCW12IC1mICR7cGtnfSIuI3BhcnQiICR7cGtnfQotCQkJZWNobyAiRG93bmxvYWQgJHtwa2d9IHN1Y2Nlc3NmdWxseS4iCi0JCWVsc2UKLQkJCWVjaG8gIkRvd25sb2FkICR7cGtnfSBmYWlsZWQuIgotCQkJUkVUPTEKLQkJZmkKLQlmaQotZG9uZQotCi1jZCAke1JVTlRJTUVfUEFDS0FHRVNfRElSfQotZm9yIHBrZyBpbiAke1JVTlRJTUVfUEFDS0FHRVNfTElTVH07IGRvCi0JaWYgWyAhIC1mICR7cGtnfSBdCi0JdGhlbgotCQkjJHtET1dOTE9BRF9DTUR9ICR7cGtnfSIuI3BhcnQiICR7U0VSVkVSM30vJHtwa2d9ID4gL2Rldi9udWxsIDI+JjEKLQkJJHtET1dOTE9BRF9DTUR9ICR7cGtnfSIuI3BhcnQiICR7U0VSVkVSM30vJHtwa2d9Ci0JCWlmIFsgJD8gLWVxIDAgXQotCQl0aGVuCi0JCQltdiAtZiAke3BrZ30iLiNwYXJ0IiAke3BrZ30KLQkJCWVjaG8gIkRvd25sb2FkICR7cGtnfSBzdWNjZXNzZnVsbHkuIgotCQllbHNlCi0JCQllY2hvICJEb3dubG9hZCAke3BrZ30gZmFpbGVkLiIKLQkJCVJFVD0xCi0JCWZpCi0JZmkKLWRvbmUKLQotY2QgJHtBUFBfUEFDS0FHRVNfRElSfQotZm9yIHBrZyBpbiAke0FQUF9QQUNLQUdFU19MSVNUfTsgZG8KLQlpZiBbICEgLWYgJHtwa2d9IF0KLQl0aGVuCi0JCSMke0RPV05MT0FEX0NNRH0gJHtwa2d9Ii4jcGFydCIgJHtTRVJWRVI0fS8ke3BrZ30gPiAvZGV2L251bGwgMj4mMQotCQkke0RPV05MT0FEX0NNRH0gJHtwa2d9Ii4jcGFydCIgJHtTRVJWRVI0fS8ke3BrZ30KLQkJaWYgWyAkPyAtZXEgMCBdCi0JCXRoZW4KLQkJCW12IC1mICR7cGtnfSIuI3BhcnQiICR7cGtnfQotCQkJZWNobyAiRG93bmxvYWQgJHtwa2d9IHN1Y2Nlc3NmdWxseS4iCi0JCWVsc2UKLQkJCWVjaG8gIkRvd25sb2FkICR7cGtnfSBmYWlsZWQuIgotCQkJUkVUPTEKLQkJZmkKLQlmaQotZG9uZQotCi1jZCAke0FQUF9URVNURklMRVNfRElSfQotZm9yIHBrZyBpbiAke0FQUF9URVNURklMRVNfTElTVH07IGRvCi0JaWYgWyAhIC1mICR7cGtnfSBdCi0JdGhlbgotCQkjJHtET1dOTE9BRF9DTUR9ICR7cGtnfSIuI3BhcnQiICR7U0VSVkVSNX0vJHtwa2d9ID4gL2Rldi9udWxsIDI+JjEKLQkJJHtET1dOTE9BRF9DTUR9ICR7cGtnfSIuI3BhcnQiICR7U0VSVkVSNX0vJHtwa2d9Ci0JCWlmIFsgJD8gLWVxIDAgXQotCQl0aGVuCi0JCQltdiAtZiAke3BrZ30iLiNwYXJ0IiAke3BrZ30KLQkJCWVjaG8gIkRvd25sb2FkICR7cGtnfSBzdWNjZXNzZnVsbHkuIgotCQllbHNlCi0JCQllY2hvICJEb3dubG9hZCAke3BrZ30gZmFpbGVkLiIKLQkJCVJFVD0xCi0JCWZpCi0JZmkKLWRvbmUKLQotaWYgWyAke1JFVH0gLW5lIDAgXQotdGhlbgotCWVjaG8gIkRvd25sb2FkIHNvbWUgcGFja2FnZXMgZmFpbGVkLiBQbGVhc2UgZG93bmxvYWQgdGhlbSBhZ2Fpbi4iCi0JZXhpdCAxCi1maQotCi0jIFN0ZXAgMjogSW5zdGFsbCB0aGUgTFNCIFBhY2thZ2VzCi1lY2hvICIiCi1lY2hvICJJbnN0YWxsIExTQiBwYWNrYWdlcy4uLiIKLWVjaG8gIiIKLQotIyBLaWxsIGxpZ2h0dHBkCi1wcyBhdXggfCBncmVwICJsaWdodHRwZCIgfCBncmVwIC12IC1xICJncmVwIgotaWYgWyAkPyAtZXEgMCBdCi10aGVuCi0Ja2lsbGFsbCBsaWdodHRwZCA+L2Rldi9udWxsIDI+JjEKLWZpCi0KLSMgU3RhcnQgYXZhaGktZGFlbW9uCi1wcyBhdXggfCBncmVwICJhdmFoaS1kYWVtb24iIHwgZ3JlcCAtdiAtcSAiZ3JlcCIKLWlmIFsgJD8gLW5lIDAgXQotdGhlbgotCS9ldGMvaW5pdC5kL2F2YWhpLWRhZW1vbiBzdGFydCA+L2Rldi9udWxsIDI+JjEKLWZpCi0KLUxTQl9TVEFSVF9DTUQ9Ii9vcHQvbHNiL3Rlc3QvbWFuYWdlci9iaW4vZGlzdC1jaGVja2VyLXN0YXJ0LnBsIgotTFNCX1NUT1BfQ01EPSIvb3B0L2xzYi90ZXN0L21hbmFnZXIvYmluL2Rpc3QtY2hlY2tlci1zdG9wLnBsIgotCi1QTEFURk9STV9GSUxFPSIvZXRjL3JwbS9wbGF0Zm9ybSIKLQotUlBNX0lOU1RBTExfQ01EPSJycG0gLS1xdWlldCAtLW5vZGVwcyAtLXJlcGxhY2Vwa2dzIC0tbm9zaWduYXR1cmUgLWkgLS1pZ25vcmVvcyIKLVJQTV9JTlNUQUxMX0NNRF9OT1NDUklQVFM9InJwbSAtLXF1aWV0IC0tbm9kZXBzIC0tcmVwbGFjZXBrZ3MgLS1ub3NjcmlwdHMgLS1ub3NpZ25hdHVyZSAtaSAtLWlnbm9yZW9zIgotCi0jIElmIHRoZSBsc2IgaGFzIGJlZW4gc3RhcnRlZCwgc3RvcCBpdCBmaXJzdC4KLWlmIFsgLXggJHtMU0JfU1RPUF9DTUR9IF0KLXRoZW4KLQkke0xTQl9TVE9QX0NNRH0KLWZpCi0KLWlmIFsgISAtZCAvZXRjL3JwbSBdCi10aGVuCi0JbWtkaXIgLXAgL2V0Yy9ycG0KLWZpCi0KLWlmIFsgISAtZiAke1BMQVRGT1JNX0ZJTEV9IF0KLXRoZW4KLQl0b3VjaCAke1BMQVRGT1JNX0ZJTEV9Ci1maQotCi1pZiAhIGBncmVwIC1GIC1xICJub2FyY2gtc3VzZSIgJHtQTEFURk9STV9GSUxFfWA7IHRoZW4KLQlpZiBbICR7QVJDSH0gPSBpNjg2IF07dGhlbgotCQllY2hvICJpNDg2LXN1c2UiID4+ICR7UExBVEZPUk1fRklMRX0KLQkJZWNobyAiaTQ4Ni1ub2FyY2giID4+ICR7UExBVEZPUk1fRklMRX0KLQkJZWNobyAiaTQ4Ni1wYyIgPj4gJHtQTEFURk9STV9GSUxFfQotCQllY2hvICJub2FyY2gtc3VzZSIgPj4gJHtQTEFURk9STV9GSUxFfQotCWVsaWYgWyAke0FSQ0h9ID0geDg2XzY0IF07IHRoZW4KLQkJZWNobyAiaTQ4Ni1zdXNlIiA+PiAke1BMQVRGT1JNX0ZJTEV9Ci0JCWVjaG8gImk0ODYtbm9hcmNoIiA+PiAke1BMQVRGT1JNX0ZJTEV9Ci0JCWVjaG8gImk0ODYtcGMiID4+ICR7UExBVEZPUk1fRklMRX0KLQkJZWNobyAiaTQ4Ni0uKi1saW51eC4qIiA+PiAke1BMQVRGT1JNX0ZJTEV9Ci0JCWVjaG8gIm5vYXJjaC1zdXNlIiA+PiAke1BMQVRGT1JNX0ZJTEV9Ci0JCWVjaG8gIiR7QVJDSH0tc3VzZSIgPj4gJHtQTEFURk9STV9GSUxFfQotCQllY2hvICIke0FSQ0h9LW5vYXJjaCIgPj4gJHtQTEFURk9STV9GSUxFfQotCQllY2hvICIke0FSQ0h9LXBjIiA+PiAke1BMQVRGT1JNX0ZJTEV9Ci0JZWxzZQotCQllY2hvICIke0FSQ0h9LXN1c2UiID4+ICR7UExBVEZPUk1fRklMRX0KLQkJZWNobyAiJHtBUkNIfS1ub2FyY2giID4+ICR7UExBVEZPUk1fRklMRX0KLQkJZWNobyAiJHtBUkNIfS1wYyIgPj4gJHtQTEFURk9STV9GSUxFfQotCQllY2hvICJub2FyY2gtc3VzZSIgPj4gJHtQTEFURk9STV9GSUxFfQotCWZpCi1maQotCi1pZiBbIC1kICR7QkFTRV9QQUNLQUdFU19ESVJ9IF0KLXRoZW4KLQljZCAke0JBU0VfUEFDS0FHRVNfRElSfQotCWZvciBwa2cgaW4gJHtCQVNFX1BBQ0tBR0VTX0xJU1R9Ci0JZG8KLQkJcnBtIC0tcXVpZXQgLXEgJHtwa2clXC4qfQotCQlpZiBbICQ/IC1uZSAwIF07IHRoZW4KLQkJCSRSUE1fSU5TVEFMTF9DTUQgJHtwa2d9Ci0JCWZpCi0JZG9uZQotZmkKLQotaWYgWyAtZCAke1JVTlRJTUVfQkFTRV9QQUNLQUdFU19ESVJ9IF0KLXRoZW4KLQljZCAke1JVTlRJTUVfQkFTRV9QQUNLQUdFU19ESVJ9Ci0JZm9yIHBrZyBpbiAke1JVTlRJTUVfQkFTRV9QQUNLQUdFU19MSVNUfQotCWRvCi0JCXJwbSAtLXF1aWV0IC1xICR7cGtnJVwuKn0KLQkJaWYgWyAkPyAtbmUgMCBdOyB0aGVuCi0JCQkkUlBNX0lOU1RBTExfQ01EICR7cGtnfQotCQlmaQotCWRvbmUKLWZpCi0KLWlmIFsgLWQgJHtSVU5USU1FX1BBQ0tBR0VTX0RJUn0gXQotdGhlbgotCWNkICR7UlVOVElNRV9QQUNLQUdFU19ESVJ9Ci0JZm9yIHBrZyBpbiAke1JVTlRJTUVfUEFDS0FHRVNfTElTVH0KLQlkbwotCQlycG0gLS1xdWlldCAtcSAke3BrZyVcLip9Ci0JCWlmIFsgJD8gLW5lIDAgXTsgdGhlbgotCQkJJFJQTV9JTlNUQUxMX0NNRCAke3BrZ30KLQkJZmkKLQlkb25lCi1maQotCi1pZiBbIC1kICR7QVBQX1BBQ0tBR0VTX0RJUn0gXQotdGhlbgotCWNkICR7QVBQX1BBQ0tBR0VTX0RJUn0KLQlmb3IgcGtnIGluICR7QVBQX1BBQ0tBR0VTX0xJU1R9Ci0JZG8KLQkJZWNobyAiJHtwa2d9IiB8IGdyZXAgLXEgImFwYWNoZVx8eHBkZiIKLQkJaWYgWyAkPyAtZXEgMCBdCi0JCXRoZW4KLQkJCXJwbSAtLXF1aWV0IC1xICR7cGtnJVwuKn0KLQkJCWlmIFsgJD8gLW5lIDAgXTsgdGhlbgotCQkJCSRSUE1fSU5TVEFMTF9DTURfTk9TQ1JJUFRTICR7cGtnfQotCQkJZmkKLQkJZWxzZQotCQkJcnBtIC0tcXVpZXQgLXEgJHtwa2clXC4qfQotCQkJaWYgWyAkPyAtbmUgMCBdOyB0aGVuCi0JCQkJJFJQTV9JTlNUQUxMX0NNRCAke3BrZ30KLQkJCWZpCi0JCWZpCi0JZG9uZQotZmkKLQotaWYgWyAhIC1kICR7U05BUFNIT1RTX1RFU1RGSUxFU19ESVJ9IF0KLXRoZW4KLQlta2RpciAtcCAke1NOQVBTSE9UU19URVNURklMRVNfRElSfQotZmkKLQotaWYgWyAtZCAke0FQUF9URVNURklMRVNfRElSfSBdCi10aGVuCi0JY2QgJHtBUFBfVEVTVEZJTEVTX0RJUn0KLQlmb3IgcGtnIGluICR7QVBQX1RFU1RGSUxFU19MSVNUfQotCWRvCi0JCWNwIC1mICR7cGtnfSAke1NOQVBTSE9UU19URVNURklMRVNfRElSfQotCWRvbmUKLWZpCi0KLWNkICR7V09SS19ESVJ9Ci0KLSMgU3RlcCAzOiBTZXQgZW52aXJvbm1lbnQKLWVjaG8gIiIKLWVjaG8gIlNldCBlbnZpcm9ubWVudC4uLiIKLWVjaG8gIiIKLQotY2hlY2sgKCkKLXsKLQlpZiBbICQ/IC1lcSAwIF0KLQl0aGVuCi0JCWVjaG8gIlBBU1MiCi0JZWxzZSAKLQkJZWNobyAiRkFJTCIKLQkJZXhpdCAxCi0JZmkKLX0KLQotZWNobyAiIgotZWNobyAiLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIgotZWNobyAiQ3JlYXRlIHRoZSBEaXJuYW1lcyBvbiB0YXJnZXQiCi0KLWlmIFsgISAtZCAvZXRjL3JwbS9zeXNpbmZvIF0KLXRoZW4KLQlta2RpciAtcCAvZXRjL3JwbS9zeXNpbmZvCi1maQotCi1jYXQgPiAvZXRjL3JwbS9zeXNpbmZvL0Rpcm5hbWVzIDw8IEVPRgotL2V0Yy9vcHQvbHNiCi0vaG9tZS90ZXQvTFNCLnRvb2xzCi0vb3B0L2xzYi10ZXQzLWxpdGUvbGliL2tzaAotL29wdC9sc2ItdGV0My1saXRlL2xpYi9wZXJsCi0vb3B0L2xzYi10ZXQzLWxpdGUvbGliL3Bvc2l4X3NoCi0vb3B0L2xzYi10ZXQzLWxpdGUvbGliL3RldDMKLS9vcHQvbHNiLXRldDMtbGl0ZS9saWIveHBnM3NoCi0vb3B0L2xzYi9hcHBiYXQvbGliL3B5dGhvbjIuNC9zaXRlLXBhY2thZ2VzL3FtCi0vb3B0L2xzYi9hcHBiYXQvbGliL3B5dGhvbjIuNC9zaXRlLXBhY2thZ2VzL3FtL2V4dGVybmFsCi0vb3B0L2xzYi9hcHBiYXQvbGliL3B5dGhvbjIuNC9zaXRlLXBhY2thZ2VzL3FtL2V4dGVybmFsL0RvY3VtZW50VGVtcGxhdGUKLS9vcHQvbHNiL2FwcGJhdC9saWIvcHl0aG9uMi40L3NpdGUtcGFja2FnZXMvcW0vdGVzdAotL29wdC9sc2IvYXBwYmF0L2xpYi9weXRob24yLjQvc2l0ZS1wYWNrYWdlcy9xbS90ZXN0L2NsYXNzZXMKLS9vcHQvbHNiL2FwcGJhdC9saWIvcHl0aG9uMi40L3NpdGUtcGFja2FnZXMvcW0vdGVzdC93ZWIKLS9vcHQvbHNiL3Rlc3QvZG9jCi0vb3B0L2xzYi90ZXN0L2xpYgotL29wdC9sc2IvdGVzdC9xbS9kaWFnbm9zdGljcwotL29wdC9sc2IvdGVzdC9xbS9kb2MKLS9vcHQvbHNiL3Rlc3QvcW0vZG9jL3Rlc3QvaHRtbAotL29wdC9sc2IvdGVzdC9xbS9kb2MvdGVzdC9wcmludAotL29wdC9sc2IvdGVzdC9xbS9kdG1sCi0vb3B0L2xzYi90ZXN0L3FtL2R0bWwvdGVzdAotL29wdC9sc2IvdGVzdC9xbS9tZXNzYWdlcy90ZXN0Ci0vb3B0L2xzYi90ZXN0L3FtL3R1dG9yaWFsL3Rlc3QvdGRiCi0vb3B0L2xzYi90ZXN0L3FtL3R1dG9yaWFsL3Rlc3QvdGRiL1FNVGVzdAotL29wdC9sc2IvdGVzdC9xbS93ZWIKLS9vcHQvbHNiL3Rlc3QvcW0vd2ViL2ltYWdlcwotL29wdC9sc2IvdGVzdC9xbS93ZWIvc3R5bGVzaGVldHMKLS9vcHQvbHNiL3Rlc3QvcW0veG1sCi0vb3B0L2xzYi90ZXN0L3NoYXJlCi0vdXNyL3NoYXJlL2RvYy9sc2ItcnVudGltZS10ZXN0Ci0vdmFyL29wdC9sc2IKLS9vcHQvbHNiL3Rlc3QvZGVza3RvcAotL29wdC9sc2IvdGVzdC9kZXNrdG9wL2ZvbnRjb25maWcKLS9vcHQvbHNiL3Rlc3QvZGVza3RvcC9mcmVldHlwZQotL29wdC9sc2IvdGVzdC9kZXNrdG9wL2d0a3Z0cwotL29wdC9sc2IvdGVzdC9kZXNrdG9wL2xpYnBuZwotL29wdC9sc2IvdGVzdC9kZXNrdG9wL3hmdAotL29wdC9sc2IvdGVzdC9kZXNrdG9wL3htbAotL29wdC9sc2IvdGVzdC9kZXNrdG9wL3hyZW5kZXIKLQotCi1FT0YKLQotaWYgWyAtZiAvZXRjL3JwbS9zeXNpbmZvL0Rpcm5hbWVzIF0KLXRoZW4KLQllY2hvICJTdWNjZXNzIHRvIGNyZWF0IERpcm5hbWVzIGZpbGUiCi1lbHNlIAotCWVjaG8gIkZhaWwgdG8gY3JlYXQgRGlybmFtZXMgZmlsZSIKLWZpCi0KLVsgLXggL3NiaW4vbGRjb25maWcgXSAmJiB7Ci1lY2hvICIiCi1lY2hvICItLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iCi1lY2hvICJVcGRhdGUgY2FjaGUiCi0vc2Jpbi9sZGNvbmZpZwotY2hlY2s7Ci19Ci0KLSMgQ2hlY2sgbG9vcCBkZXZpY2UKLWlmIFsgISAtYiAvZGV2L2xvb3AwIF0KLXRoZW4KLQlpbnNtb2QgL2xpYi9tb2R1bGVzL2B1bmFtZSAtcmAva2VybmVsL2RyaXZlcnMvYmxvY2svbG9vcC5rbwotCWlmIFsgJD8gIT0gMCBdO3RoZW4KLQkJZWNobyAiSW5zbW9kIGxvb3Aua28gZmFpbGVkLiIKLQlmaQotZmkKLQotIyBSZXNvbHZlIGxvY2FsaG9zdAotTE9DQUxIT1NUPWBob3N0bmFtZWAKLWlmICEgYGdyZXAgLUYgLXEgIiRMT0NBTEhPU1QiIC9ldGMvaG9zdHNgOyB0aGVuCi0JZWNobyAiMTI3LjAuMC4xCSRMT0NBTEhPU1QiID4+IC9ldGMvaG9zdHMKLWZpCi0KLSMgV29ya2Fyb3VuZCB0byBhZGQgcGFydCBvZiBsb2NhbGVzIGZvciBMU0IgdGVzdAotbG9jYWxlZGVmIC1pIGRlX0RFIC1mIElTTy04ODU5LTEgZGVfREUKLWxvY2FsZWRlZiAtaSBkZV9ERSAtZiBJU08tODg1OS0xNSBkZV9ERS5JU08tODg1OS0xNQotbG9jYWxlZGVmIC1pIGRlX0RFIC1mIFVURi04IGRlX0RFLlVURi04Ci1sb2NhbGVkZWYgLWkgZGVfREVAZXVybyAtZiBJU08tODg1OS0xNSBkZV9ERUBldXJvCi1sb2NhbGVkZWYgLWkgZW5fSEsgLWYgSVNPLTg4NTktMSBlbl9ISwotbG9jYWxlZGVmIC1pIGVuX1BIIC1mIElTTy04ODU5LTEgZW5fUEgKLWxvY2FsZWRlZiAtaSBlbl9VUyAtZiBJU08tODg1OS0xNSBlbl9VUy5JU08tODg1OS0xNQotbG9jYWxlZGVmIC1pIGVuX1VTIC1mIElTTy04ODU5LTEgZW5fVVMuSVNPLTg4NTktMQotbG9jYWxlZGVmIC1pIGVuX1VTIC1mIElTTy04ODU5LTEgZW5fVVMKLWxvY2FsZWRlZiAtaSBlbl9VUyAtZiBVVEYtOCBlbl9VUy5VVEYtOAotbG9jYWxlZGVmIC1pIGVuX1VTIC1mIElTTy04ODU5LTEgZW5fVVMuSVNPODg1OS0xCi1sb2NhbGVkZWYgLWkgZXNfTVggLWYgSVNPLTg4NTktMSBlc19NWAotbG9jYWxlZGVmIC1pIGZyX0ZSIC1mIElTTy04ODU5LTEgZnJfRlIKLWxvY2FsZWRlZiAtaSBpdF9JVCAtZiBJU08tODg1OS0xIGl0X0lUCi1sb2NhbGVkZWYgLWkgamFfSlAgLWYgRVVDLUpQIGphX0pQLmV1Y2pwCi1sb2NhbGVkZWYgLWkgc2VfTk8gLWYgVVRGLTggc2VfTk8uVVRGLTgKLWxvY2FsZWRlZiAtaSB0YV9JTiAtZiBVVEYtOCB0YV9JTgotbG9jYWxlZGVmIC1pIGVzX0VTIC1mIElTTy04ODU5LTEgZXNfRVMKLWxvY2FsZWRlZiAtaSBmcl9GUkBldXJvIC1mIElTTy04ODU5LTEgZnJfRlJAZXVybwotbG9jYWxlZGVmIC1pIGlzX0lTIC1mIFVURi04IGlzX0lTLlVURi04Ci1sb2NhbGVkZWYgLWkgemhfVFcgLWYgQklHNSB6aF9UVy5CSUc1Ci1sb2NhbGVkZWYgLWkgZW5fVVMgLWYgSVNPLTg4NTktMTUgZW5fVVMuSVNPLTg4NTktMTUKLQotZWNobyAiIgotZWNobyAiSW5zdGFsbGF0aW9uIGRvbmUhIgotZWNobyAiIgotCi0jIFN0ZXAgNDogU3RhcnQgTFNCIHRlc3QKLWlmIFsgLXggJHtMU0JfU1RBUlRfQ01EfSBdCi10aGVuCi0JJHtMU0JfU1RBUlRfQ01EfQotZmkKLQotZWNobyAiLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIgotZWNobyAiUnVuIGFsbCB0aGUgY2VydGlmaWNhdGlvbiB2ZXJzaW9uIG9mIExTQiBUZXN0cyIKLWVjaG8gIi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSIKLQotTFNCX0RJU1RfQ0hFQ0tFUj0iL29wdC9sc2IvdGVzdC9tYW5hZ2VyL3V0aWxzL2Rpc3QtY2hlY2tlci5wbCIKLVNFU1NJT049IiR7V09SS19ESVJ9L3Nlc3Npb24iCi1pZiBbICEgLWUgJHtTRVNTSU9OfSBdCi10aGVuCi0JZWNobyAiRXJyb3I6IENvdWxkIG5vdCBmaW5kIHNlc3Npb24gZmlsZS4iCi0JZWNobyAiWW91IG11c3QgcnVuIExTQiB0ZXN0IGZyb20gd2ViYnJvd2VyLiIKLQlleGl0IDEKLWZpCi0KLWlmIFsgLXggJHtMU0JfRElTVF9DSEVDS0VSfSBdCi10aGVuCi0JJHtMU0JfRElTVF9DSEVDS0VSfSAtdjIgLWYgJHtTRVNTSU9OfQotCWNoZWNrCi1maQotCi1lY2hvICIiCi1lY2hvICJMU0IgdGVzdCBjb21wbGV0ZS4gUGxlYXNlIGNoZWNrIHRoZSBsb2cgZmlsZSBpbiAvdmFyL29wdC9sc2IvdGVzdC9tYW5hZ2VyL3Jlc3VsdHMvIgotZWNobyAiIgotCmRpZmYgLS1naXQgYS9wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC9sc2IvbHNidGVzdC9wYWNrYWdlc19saXN0IGIvcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvbHNiL2xzYnRlc3QvcGFja2FnZXNfbGlzdApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMWE2YzExNi4uMDAwMDAwMAotLS0gYS9wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC9sc2IvbHNidGVzdC9wYWNrYWdlc19saXN0CisrKyAvZGV2L251bGwKQEAgLTEsNDkgKzAsMCBAQAotTFNCX1JFTEVBU0U9InJlbGVhc2VkLTUuMCIKLUxTQl9BUkNIPSJsc2JhcmNoIgotCi1CQVNFX1BBQ0tBR0VTX0xJU1Q9ImxzYi1zZXR1cC01LjAuMC0yLm5vYXJjaC5ycG0iCi0KLVJVTlRJTUVfQkFTRV9QQUNLQUdFU19MSVNUPSJsc2ItZGlzdC1jaGVja2VyLTUuMC4wLjEtMS50YXJnZXRhcmNoLnJwbSBcCi0JbHNiLXRldDMtbGl0ZS0zLjctMjcubHNiNS50YXJnZXRhcmNoLnJwbSBcCi0JbHNiLXRldDMtbGl0ZS1kZXZlbC0zLjctMjcubHNiNS50YXJnZXRhcmNoLnJwbSBcCi0JbHNiLXh2ZmItMS4yLjAtMjIudGFyZ2V0YXJjaC5ycG0gXAotCSIKLQotUlVOVElNRV9QQUNLQUdFU19MSVNUPSJsc2ItY21kY2hrLTUuMC4zLTEudGFyZ2V0YXJjaC5ycG0gXAotCWxzYi1saWJjaGstNS4wLjMtMS50YXJnZXRhcmNoLnJwbSBcCi0JbHNiLXFtLTIuMi0xLmxzYjUudGFyZ2V0YXJjaC5ycG0gXAotCWxzYi10YXNrLWRpc3QtdGVzdGtpdC01LjAuMC0yLm5vYXJjaC5ycG0gXAotCWxzYi10ZXN0LWNvcmUtNS4wLjEtMS50YXJnZXRhcmNoLnJwbSBcCi0JbHNiLXRlc3QtY3BwLXQyYy01LjAuMC0xLnRhcmdldGFyY2gucnBtIFwKLQlsc2ItdGVzdC1kZXNrdG9wLTUuMC4wLTEudGFyZ2V0YXJjaC5ycG0gXAotCWxzYi10ZXN0LWRlc2t0b3AtdDJjLTUuMC4wLTEudGFyZ2V0YXJjaC5ycG0gXAotCWxzYi10ZXN0LWxpYnN0ZGNwcC00LjEuMC0yMi5sc2IxLnRhcmdldGFyY2gucnBtIFwKLQlsc2ItdGVzdC1vbHZlci1jb3JlLTUuMC4wLTEudGFyZ2V0YXJjaC5ycG0gXAotCWxzYi10ZXN0LXBlcmwtNS4wLjItMS5ub2FyY2gucnBtIFwKLQlsc2ItdGVzdC1wcmludGluZy01LjAuMS0xLnRhcmdldGFyY2gucnBtIFwKLQlsc2ItdGVzdC1weXRob24tNS4wLjAtMS50YXJnZXRhcmNoLnJwbSBcCi0JbHNiLXRlc3QtcXQ0LWF6b3YtNS4wLjAtMS50YXJnZXRhcmNoLnJwbSBcCi0JbHNiLXRlc3QteHRzNS01LjEuNS00Ny5sc2I1LnRhcmdldGFyY2gucnBtIFwKLQlsc2ItdGVzdC1hbHNhLXQyYy01LjEuOTEtNC50YXJnZXRhcmNoLnJwbSBcCi0JbHNiLXRlc3QtY29yZS10MmMtNS4wLjEtMS50YXJnZXRhcmNoLnJwbSBcCi0JbHNiLXRlc3QteG1sMi1hem92LTUuMC4wLTEudGFyZ2V0YXJjaC5ycG0gXAotCSIKLQotQVBQX1BBQ0tBR0VTX0xJU1Q9ImxzYi1weXRob24tMi40LjYtMTAubHNiNS50YXJnZXRhcmNoLnJwbSBcCi0JbHNiLWFwYWNoZS0yLjIuMTktNS5sc2I1LnRhcmdldGFyY2gucnBtIFwKLQlsc2ItdGNsLTguNS45LTIxLmxzYjUudGFyZ2V0YXJjaC5ycG0gXAotCWxzYi1leHBlY3QtNS40My4wLTIxLmxzYjUudGFyZ2V0YXJjaC5ycG0gXAotCWxzYi1ncm9mZi0xLjIwLjEtOS5sc2I1LnRhcmdldGFyY2gucnBtIFwKLQlsc2ItcmFwdG9yLTEuNC4yMS00LmxzYjUudGFyZ2V0YXJjaC5ycG0gXAotCWxzYi14cGRmLTEuMDEtMTcubHNiNS50YXJnZXRhcmNoLnJwbSBcCi0JbHNiLXNhbWJhLTMuNS45LTUubHNiNS50YXJnZXRhcmNoLnJwbSBcCi0JbHNiLXJzeW5jLTMuMC44LTMubHNiNS50YXJnZXRhcmNoLnJwbSBcCi0JIgotCi1BUFBfVEVTVEZJTEVTX0xJU1Q9ImV4cGVjdC10ZXN0cy50YXIgXAotCXRjbC10ZXN0cy50YXIgXAotCXJhcHRvci10ZXN0cy50YXIgXAotCXRlc3QxLnBkZiBcCi0JdGVzdDIucGRmIFwKLQkiCi0KZGlmZiAtLWdpdCBhL3Bva3kvbWV0YS9yZWNpcGVzLWV4dGVuZGVkL2xzYi9sc2J0ZXN0L3Nlc3Npb24gYi9wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC9sc2IvbHNidGVzdC9zZXNzaW9uCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0ZDQ3ZTQwLi4wMDAwMDAwCi0tLSBhL3Bva3kvbWV0YS9yZWNpcGVzLWV4dGVuZGVkL2xzYi9sc2J0ZXN0L3Nlc3Npb24KKysrIC9kZXYvbnVsbApAQCAtMSwxNzYgKzAsMCBAQAotW0dFTkVSQUxdCi1WRVJCT1NFX0xFVkVMOiAgIDEKLUFSQ0hJVEVDVFVSRTogICAgdGFyZ2V0YXJjaAotVVNFX0lOVEVSTkVUOiAgICAxCi1TVERfVkVSU0lPTjogICAgIExTQiA1LjAKLVNURF9QUk9GSUxFOiAgICAgbm8KLVtjbWRjaGtdCi1SVU46IDEKLVZFUlNJT046IGxvY2FsfCoKLQotW2xpYmNoa10KLVJVTjogMQotVkVSU0lPTjogbG9jYWx8KgotCi1bYWxzYS10MmNdCi1SVU46IDEKLVZFUlNJT046IGxvY2FsfCoKLQotW2Fsc2EtdDJjfGxvY2FsfCpdCi1BVVRPUkVQTFlfVEVTVFNVSVRFX0RJUjogL29wdC9sc2IvdGVzdC9hbHNhLXQyYwotQVVUT1JFUExZX1JFU1VMVFNfRElSOiAvb3B0L2xzYi90ZXN0L2Fsc2EtdDJjL3Jlc3VsdHMKLQotW2NvcmVdCi1SVU46IDEKLVZFUlNJT046IGxvY2FsfCoKLQotW2NvcmV8bG9jYWx8Kl0KLUFVVE9SRVBMWV9QUk9WSURFU19CQVNIOiBuCi1BVVRPUkVQTFlfVEVTVFJVTl9QQVRIOiAvaG9tZS90ZXQvdGVzdF9zZXRzCi1BVVRPUkVQTFlfUEVSU09OOiBBdXRvbWF0ZWQKLUFVVE9SRVBMWV9LRVJORUxfTkFNRTogdm1saW51egotQVVUT1JFUExZX0lOU1RBTExfTFNCUEFNX0NPTkY6IHkKLUFVVE9SRVBMWV9QUk9WSURFU19DX1NIRUxMOiBuCi1BVVRPUkVQTFlfT1JHQU5JU0FUSU9OOiBOL0EKLUFVVE9SRVBMWV9TRVRfUEFTU19NSU5fREFZUzogeQotQVVUT1JFUExZX1BST1ZJREVTX1NZU1ZfSU5JVDogCi1BVVRPUkVQTFlfSVNOVEFMTF9ERVZTOiB5Ci1BVVRPUkVQTFlfU1VQUE9SVFNfRklMRV9DTUQ6IHkKLUFVVE9SRVBMWV9URVNUX1NZU1RFTTogRGlzdHJpYnV0aW9uIENoZWNrZXIKLUFVVE9SRVBMWV9URVNUU1VJVEVfRElSOiAvb3B0L2xzYi90ZXN0L2NvcmUvdGV0L3Rlc3Rfc2V0cwotQVVUT1JFUExZX1NVUFBPUlRTX05MUzogbgotQVVUT1JFUExZX1NVUFBPUlRTX1BST0NFU1NfQUNDT1VOVElORzogbgotQVVUT1JFUExZX1BBVEhfVE9fUkMuRDogCi1BVVRPUkVQTFlfQUxMT1dTX01BS0VERVY6IG4KLUFVVE9SRVBMWV9SRVNVTFRTX0RJUjogL29wdC9sc2IvdGVzdC9jb3JlL3RldC90ZXN0X3NldHMvcmVzdWx0cwotCi1bY29yZS10MmNdCi1SVU46IDEKLVZFUlNJT046IGxvY2FsfCoKLQotW2NvcmUtdDJjfGxvY2FsfCpdCi1BVVRPUkVQTFlfVEVTVFNVSVRFX0RJUjogL29wdC9sc2IvdGVzdC9jb3JlLXQyYwotQVVUT1JFUExZX1JFU1VMVFNfRElSOiAvb3B0L2xzYi90ZXN0L2NvcmUtdDJjL3Jlc3VsdHMKLQotW2NwcC10MmNdCi1SVU46IDEKLVZFUlNJT046IGxvY2FsfCoKLQotW2NwcC10MmN8bG9jYWx8Kl0KLUFVVE9SRVBMWV9URVNUU1VJVEVfRElSOiAvb3B0L2xzYi90ZXN0L2NwcC10MmMKLUFVVE9SRVBMWV9SRVNVTFRTX0RJUjogL29wdC9sc2IvdGVzdC9jcHAtdDJjL3Jlc3VsdHMKLQotW2Rlc2t0b3BdCi1SVU46IDEKLVZFUlNJT046IGxvY2FsfCoKLQotW2Rlc2t0b3B8bG9jYWx8Kl0KLUFVVE9SRVBMWV9ERVNLVE9QX0VOVklST05NRU5UOiBbZGVmYXVsdF0KLUFVVE9SRVBMWV9QRVJTT046IEF1dG9tYXRlZAotQVVUT1JFUExZX1hfQ0xJRU5UX0hPU1ROQU1FOiAKLUFVVE9SRVBMWV9URVNUX1NZU1RFTTogRGlzdHJpYnV0aW9uIENoZWNrZXIKLUFVVE9SRVBMWV9URVNUU1VJVEVfRElSOiAvb3B0L2xzYi90ZXN0L2Rlc2t0b3AKLUFVVE9SRVBMWV9YMTFfRk9OVF9QQVRIOiBbZGVmYXVsdF0KLUFVVE9SRVBMWV9TSE9XX1NVTU1BUllfUkVQT1JUOiAKLUFVVE9SRVBMWV9PUkdBTklTQVRJT046IE4vQQotQVVUT1JFUExZX1hWRkJfRElTUExBWTogW2RlZmF1bHRdCi0KLVtkZXNrdG9wLXQyY10KLVJVTjogMQotVkVSU0lPTjogbG9jYWx8KgotCi1bZGVza3RvcC10MmN8bG9jYWx8Kl0KLUFVVE9SRVBMWV9URVNUU1VJVEVfRElSOiAvb3B0L2xzYi90ZXN0L2Rlc2t0b3AtdDJjCi1BVVRPUkVQTFlfUkVTVUxUU19ESVI6IC9vcHQvbHNiL3Rlc3QvZGVza3RvcC10MmMvcmVzdWx0cwotCi1bbGlic3RkY3BwXQotUlVOOiAxCi1WRVJTSU9OOiBsb2NhbHwqCi0KLVtsaWJzdGRjcHB8bG9jYWx8Kl0KLUFVVE9SRVBMWV9URVNUX1NZU1RFTTogRGlzdHJpYnV0aW9uIENoZWNrZXIKLUFVVE9SRVBMWV9QRVJTT046IEF1dG9tYXRlZAotQVVUT1JFUExZX1RFU1RTVUlURV9ESVI6IC9vcHQvbHNiL3Rlc3QvbGlic3RkY3BwXzQuMS4wCi1BVVRPUkVQTFlfT1JHQU5JU0FUSU9OOiBOL0EKLUFVVE9SRVBMWV9HTlVfVFJJUExFVDogCi0KLVtvbHZlcl0KLVJVTjogMQotVkVSU0lPTjogbG9jYWx8KgotCi1bb2x2ZXJ8bG9jYWx8Kl0KLUFVVE9SRVBMWV9URVNUU1VJVEVfRElSOiAvb3B0L2xzYi90ZXN0L29sdmVyLWNvcmUKLUFVVE9SRVBMWV9SRVNVTFRTX0RJUjogL3Zhci9vcHQvbHNiL3Rlc3Qvb2x2ZXItY29yZQotCi1bcGVybF0KLVJVTjogMQotVkVSU0lPTjogbG9jYWx8KgotCi1bcGVybHxsb2NhbHwqXQotQVVUT1JFUExZX1RFU1RTVUlURV9ESVI6IC9vcHQvbHNiL3Rlc3QvcGVybAotQVVUT1JFUExZX1JFU1VMVFNfRElSOiAvb3B0L2xzYi90ZXN0L3BlcmwvcmVzdWx0cwotCi1bcHJpbnRpbmddCi1SVU46IDEKLVZFUlNJT046IGxvY2FsfCoKLQotW3ByaW50aW5nfGxvY2FsfCpdCi1BVVRPUkVQTFlfVEVTVFNVSVRFX0RJUjogL29wdC9sc2IvdGVzdC9wcmludGluZwotQVVUT1JFUExZX1JFU1VMVFNfRElSOiAvb3B0L2xzYi90ZXN0L3ByaW50aW5nL3Jlc3VsdHMKLQotW3B5dGhvbl0KLVJVTjogMQotVkVSU0lPTjogbG9jYWx8KgotCi1bcHl0aG9ufGxvY2FsfCpdCi1BVVRPUkVQTFlfVEVTVFNVSVRFX0RJUjogL29wdC9sc2IvdGVzdC9weXRob24KLUFVVE9SRVBMWV9SRVNVTFRTX0RJUjogL29wdC9sc2IvdGVzdC9weXRob24vcmVzdWx0cwotCi1beG1sMi1hem92XQotUlVOOiAxCi1WRVJTSU9OOiBsb2NhbHwqCi0KLVt4dHM1XQotUlVOOiAxCi1WRVJTSU9OOiBsb2NhbHwqCi0KLVt4dHM1fGxvY2FsfCpdCi1BVVRPUkVQTFlfWFRfRk9OVFBBVEhfR09PRDogW2RlZmF1bHRdCi1BVVRPUkVQTFlfVEVTVFNVSVRFX0RJUjogL29wdC9sc2IvdGVzdC94dHM1Ci1BVVRPUkVQTFlfWFZGQl9ESVNQTEFZOiBbZGVmYXVsdF0KLUFVVE9SRVBMWV9SRVNVTFRTX0RJUjogL29wdC9sc2IvdGVzdC94dHM1L3h0czUvcmVzdWx0cwotQVVUT1JFUExZX1hUX0ZPTlRQQVRIOiBbZGVmYXVsdF0KLUFVVE9SRVBMWV9YX0NMSUVOVF9IT1NUTkFNRTogCi0KLVthcGFjaGVdCi1SVU46IDEKLVZFUlNJT046IGxvY2FsfCoKLQotW2V4cGVjdF0KLVJVTjogMQotVkVSU0lPTjogbG9jYWx8KgotCi1bZ3JvZmZdCi1SVU46IDEKLVZFUlNJT046IGxvY2FsfCoKLQotW3JhcHRvcl0KLVJVTjogMQotVkVSU0lPTjogbG9jYWx8KgotCi1bcnN5bmNdCi1SVU46IDEKLVZFUlNJT046IGxvY2FsfCoKLQotW3NhbWJhXQotUlVOOiAxCi1WRVJTSU9OOiBsb2NhbHwqCi0KLVt0Y2xdCi1SVU46IDEKLVZFUlNJT046IGxvY2FsfCoKLQotW3hwZGZdCi1SVU46IDEKLVZFUlNJT046IGxvY2FsfCoKLQpkaWZmIC0tZ2l0IGEvcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvbHNiL2xzYnRlc3RfMS4wLmJiIGIvcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvbHNiL2xzYnRlc3RfMS4wLmJiCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhOTBjMDIzLi4wMDAwMDAwCi0tLSBhL3Bva3kvbWV0YS9yZWNpcGVzLWV4dGVuZGVkL2xzYi9sc2J0ZXN0XzEuMC5iYgorKysgL2Rldi9udWxsCkBAIC0xLDQ5ICswLDAgQEAKLVNVTU1BUlkgPSAiQXV0b21hdGVzIExpbnV4IFN0YW5kYXJkIEJhc2UgKExTQikgdGVzdHMiCi1IT01FUEFHRSA9ICJodHRwczovL3dpa2kuZGViaWFuLm9yZy9MU0JJbml0U2NyaXB0cyIKLVNFQ1RJT04gPSAiY29uc29sZS91dGlscyIKLUxJQ0VOU0UgPSAiR1BMdjIiCi1QUiA9ICJyMyIKLQotTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vTFNCX1Rlc3Quc2g7YmVnaW5saW5lPTM7ZW5kbGluZT0xNjttZDU9NzA2M2JiNTRiMDQ3MTlkZjA3MTZiNTEzNDQ3ZjRmYzAiCi0KLVNSQ19VUkkgPSAiZmlsZTovL0xTQl9UZXN0LnNoIFwKLQkJICAgZmlsZTovL3BhY2thZ2VzX2xpc3QgXAotCQkgICBmaWxlOi8vc2Vzc2lvbiBcCi0JCSAgICIKLVJERVBFTkRTXyR7UE59ID0gImxzYiBycG0iCi0KLVMgPSAiJHtXT1JLRElSfSIKLQotZG9faW5zdGFsbCgpIHsKLQlpbnN0YWxsIC1kICAke0R9L29wdC9sc2ItdGVzdAotCWluc3RhbGwgLW0gMDc1NSAke1N9L0xTQl9UZXN0LnNoICR7RH0vb3B0L2xzYi10ZXN0L0xTQl9UZXN0LnNoCi0JaW5zdGFsbCAtbSAwNjQ0ICR7U30vcGFja2FnZXNfbGlzdCAke0R9L29wdC9sc2ItdGVzdC9wYWNrYWdlc19saXN0Ci0JaW5zdGFsbCAtbSAwNjQ0ICR7U30vc2Vzc2lvbiAke0R9L29wdC9sc2ItdGVzdC9zZXNzaW9uCi0JaWYgWyAiJHtUQVJHRVRfQVJDSH0iID0gImk1ODYiIF0gfHwgWyAiJHtUQVJHRVRfQVJDSH0iID0gImk2ODYiIF07dGhlbgotCQlzZWQgLWkgLWUgJ3MvbHNiYXJjaC9pYTMyL2cnIC1lICdzL3RhcmdldGFyY2gvaTQ4Ni9nJyAke0R9L29wdC9sc2ItdGVzdC9wYWNrYWdlc19saXN0Ci0JCXNlZCAtaSAtZSAncy90YXJnZXRhcmNoL3g4Ni9nJyAke0R9L29wdC9sc2ItdGVzdC9zZXNzaW9uCi0JZmkKLQlpZiBbICIke1RBUkdFVF9BUkNIfSIgPSAieDg2XzY0IiBdO3RoZW4KLQkJc2VkIC1pIC1lICdzL2xzYmFyY2gvYW1kNjQvZycgLWUgJ3MvdGFyZ2V0YXJjaC94ODZfNjQvZycgJHtEfS9vcHQvbHNiLXRlc3QvcGFja2FnZXNfbGlzdAotCQlzZWQgLWkgLWUgJ3MvdGFyZ2V0YXJjaC94ODYtNjQvZycgJHtEfS9vcHQvbHNiLXRlc3Qvc2Vzc2lvbgotCWZpCi0JaWYgWyAiJHtUQVJHRVRfQVJDSH0iID0gInBvd2VycGMiIF07dGhlbgotCQlzZWQgLWkgLWUgJ3MvbHNiYXJjaC9wcGMzMi9nJyAtZSAncy90YXJnZXRhcmNoL3BwYy9nJyAke0R9L29wdC9sc2ItdGVzdC9wYWNrYWdlc19saXN0Ci0JCXNlZCAtaSAtZSAncy90YXJnZXRhcmNoL1BQQzMyL2cnICR7RH0vb3B0L2xzYi10ZXN0L3Nlc3Npb24KLQlmaQotCi0JIyBGb3IgYSBwcGM2NCB0YXJnZXQuIHRoZSBkZWZhdWx0IHVzZXJzcGFjZSBpcyAzMmIuCi0JIyBUaGVyZWZvcmUsIG9ubHkgY2hhbmdlIHRoZSBsc2JhcmNoIGFuZCB0YXJnZXRhcmNoCi0JIyBpbiB0aGUgcGFja2FnZV9saXN0IHdoZW4gTUxJQj1saWI2NCBpcyBiZWluZyB1c2VkLgotCSMgT3RoZXJ3aXNlLCBieSBkZWZhdWx0LCB0aGUgcHBjMzIgTFNCIHBhY2thZ2VzCi0JIyB3aWxsIGJlIGRvd25sb2FkZWQgYnkgTFNCX1Rlc3Quc2gKLQlpZiBbICIke1RBUkdFVF9BUkNIfSIgPSAicG93ZXJwYzY0IiBdO3RoZW4KLQkJaWYgWyAiJHtQTn0iICE9ICIke0JQTn0iIF07dGhlbgotCQkJc2VkIC1pIC1lICdzL2xzYmFyY2gvcHBjNjQvZycgLWUgJ3MvdGFyZ2V0YXJjaC9wcGM2NC9nJyAke0R9L29wdC9sc2ItdGVzdC9wYWNrYWdlc19saXN0Ci0JCQlzZWQgLWkgLWUgJ3MvdGFyZ2V0YXJjaC9QUEM2NC9nJyAke0R9L29wdC9sc2ItdGVzdC9zZXNzaW9uCi0JCWZpCi0JZmkKLX0KLQotRklMRVNfJHtQTn0gKz0gIi9vcHQvbHNiLXRlc3QvKiBcCi0gICAgICAgICAgICAgICAiCmRpZmYgLS1naXQgYS9wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC9sdHAvbHRwLzAwMDEtY3ZlLW1lbHRkb3duLmMtRml4LWtlcm5lbC1zeW1ib2wtZmluZGluZy5wYXRjaCBiL3Bva3kvbWV0YS9yZWNpcGVzLWV4dGVuZGVkL2x0cC9sdHAvMDAwMS1jdmUtbWVsdGRvd24uYy1GaXgta2VybmVsLXN5bWJvbC1maW5kaW5nLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjk0ZjZmNWEKLS0tIC9kZXYvbnVsbAorKysgYi9wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC9sdHAvbHRwLzAwMDEtY3ZlLW1lbHRkb3duLmMtRml4LWtlcm5lbC1zeW1ib2wtZmluZGluZy5wYXRjaApAQCAtMCwwICsxLDgxIEBACitGcm9tIGZiZWRhODJmNDQwYTAwOThiZTQyZGQ2NjhjYmM0NzIxMmE4NmFiNDggTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBIZSBaaGUgPHpoZS5oZUB3aW5kcml2ZXIuY29tPgorRGF0ZTogV2VkLCAyMSBBdWcgMjAxOSAxNjoyNzoyNCArMDgwMAorU3ViamVjdDogW1BBVENIXSBjdmUvbWVsdGRvd24uYzogRml4IGtlcm5lbCBzeW1ib2wgZmluZGluZworCittZWx0ZG93biBjYXNlIGZhaWxzIGFzIGJlbG93Lgorc2FmZV9maWxlX29wcy5jOjIxOTogQlJPSzogRXhwZWN0ZWQgMyBjb252ZXJzaW9ucyBnb3QgMiBhdCBtZWx0ZG93bi5jOjI3MgorCitmaW5kX2tlcm5lbF9zeW1ib2wgaXMgZGVmaW5lZCB0byB0cnkgdHdpY2Ugd2l0aCBlYWNoIG9mIC9wcm9jL2thbGxzeW1zIGFuZAorL2Jvb3QvU3lzdGVtLm1hcC0lcy4gQ3VycmVudGx5IGlmIHRoZSBzeW1ib2wgaXMgbm90IGZvdW5kIGluIC9wcm9jL2thbGxzeW1zLAord2hlbiBrZXJuZWwgb3B0aW9uIENPTkZJR19LQUxMU1lNU19BTEwgaXMgZGlzYWJsZWQsIGl0IHdvdWxkIHN0b3AgdGhlIGNhc2UKK2ltbWVkaWF0ZWx5IGR1ZSB0byBTQUZFX0ZJTEVfTElORVNfU0NBTkYuCisKK1RoaXMgcGF0Y2ggdHVybnMgdG8gdXNlIEZJTEVfTElORVNfU0NBTkYgdG8gZ2l2ZSBmaW5kX2tlcm5lbF9zeW1ib2wgc2Vjb25kCitjaGFuY2UuCisKK1tqc3RhbmNla10gRml4IGFsc28gY29uZGl0aW9uIGludHJvZHVjZWQgaW4gNzcwOWQyYWU5MmVhLCBldmVuIGlmCisgICAgICAgICAgIC9wcm9jL2thbGxzeW1zIGlzIGRpc2FibGVkLCB3ZSBzdGlsbCB3YW50IHRvIHRyeSBTeXN0ZW0ubWFwLgorCitTaWduZWQtb2ZmLWJ5OiBIZSBaaGUgPHpoZS5oZUB3aW5kcml2ZXIuY29tPgorU2lnbmVkLW9mZi1ieTogSmFuIFN0YW5jZWsgPGpzdGFuY2VrQHJlZGhhdC5jb20+CisKK1Vwc3RyZWFtLVN0YXR1czogQmFja3BvcnQKK1todHRwczovL2dpdGh1Yi5jb20vbGludXgtdGVzdC1wcm9qZWN0L2x0cC9jb21taXQvYzIwNDliNWM4NzRiYzA3MWY4MTg1YmZmYjVmZDdkY2IwNDJkOWVjOF0KKworUmVtb3ZlIHRoZSBodW5rIGZvciB1cHN0cmVhbSA3NzA5ZDJhZTkyZWEgKCJjdmUvbWVsdGRvd24uYzogYWJvcnQgdGhlIHRlc3QgaWYga2FsbHN5bXMgd2FzIG5vdCBlbmFibGVkIikKK3RoYXQgaGFzIGJlZW4gY292ZXJlZCBieSB0aGlzIHBhdGNoLgorCitTaWduZWQtb2ZmLWJ5OiBIZSBaaGUgPHpoZS5oZUB3aW5kcml2ZXIuY29tPgorLS0tCisgdGVzdGNhc2VzL2N2ZS9tZWx0ZG93bi5jIHwgMTMgKysrKysrKysrKy0tLQorIDEgZmlsZSBjaGFuZ2VkLCAxMCBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9ucygtKQorCitkaWZmIC0tZ2l0IGEvdGVzdGNhc2VzL2N2ZS9tZWx0ZG93bi5jIGIvdGVzdGNhc2VzL2N2ZS9tZWx0ZG93bi5jCitpbmRleCBhNTNlYTliLi4yMjY1MWE2IDEwMDY0NAorLS0tIGEvdGVzdGNhc2VzL2N2ZS9tZWx0ZG93bi5jCisrKysgYi90ZXN0Y2FzZXMvY3ZlL21lbHRkb3duLmMKK0BAIC0yNjcsOSArMjY3LDE1IEBAIGZpbmRfc3ltYm9sX2luX2ZpbGUoY29uc3QgY2hhciAqZmlsZW5hbWUsIGNvbnN0IGNoYXIgKnN5bW5hbWUpCisgCWludCByZXQsIHJlYWQ7CisgCWNoYXIgZm10W3N0cmxlbihzeW1uYW1lKSArIDY0XTsKKyAKKysJdHN0X3JlcyhUSU5GTywgIkxvb2tpbmcgZm9yICVzIGluICVzIiwgc3ltbmFtZSwgZmlsZW5hbWUpOworKwlpZiAoYWNjZXNzKGZpbGVuYW1lLCBGX09LKSA9PSAtMSkgeworKwkJdHN0X3JlcyhUSU5GTywgIiVzIG5vdCBhdmFpbGFibGUiLCBmaWxlbmFtZSk7CisrCQlyZXR1cm4gMDsKKysJfQorKworIAlzcHJpbnRmKGZtdCwgIiUlbHggJSVjICVzJSVjIiwgc3ltbmFtZSk7CisgCistCXJldCA9IFNBRkVfRklMRV9MSU5FU19TQ0FORihmaWxlbmFtZSwgZm10LCAmYWRkciwgJnR5cGUsICZyZWFkKTsKKysJcmV0ID0gRklMRV9MSU5FU19TQ0FORihmaWxlbmFtZSwgZm10LCAmYWRkciwgJnR5cGUsICZyZWFkKTsKKyAJaWYgKHJldCkKKyAJCXJldHVybiAwOworIAorQEAgLTI4NywxMyArMjkzLDExIEBAIGZpbmRfa2VybmVsX3N5bWJvbChjb25zdCBjaGFyICpuYW1lKQorIAlpZiAoYWRkcikKKyAJCXJldHVybiBhZGRyOworIAorLQl0c3RfcmVzKFRJTkZPLCAibm90IGZvdW5kICclcycgaW4gL3Byb2Mva2FsbHN5bXMiLCBuYW1lKTsKKyAJaWYgKHVuYW1lKCZ1dHNuYW1lKSA8IDApCisgCQl0c3RfYnJrKFRCUk9LIHwgVEVSUk5PLCAidW5hbWUiKTsKKyAKKyAJc3ByaW50ZihzeXN0ZW1tYXAsICIvYm9vdC9TeXN0ZW0ubWFwLSVzIiwgdXRzbmFtZS5yZWxlYXNlKTsKKyAKKy0JdHN0X3JlcyhUSU5GTywgImxvb2tpbmcgaW4gJyVzJ1xuIiwgc3lzdGVtbWFwKTsKKyAJYWRkciA9IGZpbmRfc3ltYm9sX2luX2ZpbGUoc3lzdGVtbWFwLCBuYW1lKTsKKyAJcmV0dXJuIGFkZHI7CisgfQorQEAgLTMwOCw2ICszMTIsOSBAQCBzdGF0aWMgdm9pZCBzZXR1cCh2b2lkKQorIAlzYXZlZF9jbWRsaW5lX2FkZHIgPSBmaW5kX2tlcm5lbF9zeW1ib2woInNhdmVkX2NvbW1hbmRfbGluZSIpOworIAl0c3RfcmVzKFRJTkZPLCAiJnNhdmVkX2NvbW1hbmRfbGluZSA9PSAweCVseCIsIHNhdmVkX2NtZGxpbmVfYWRkcik7CisgCisrCWlmICghc2F2ZWRfY21kbGluZV9hZGRyKQorKwkJdHN0X2JyayhUQ09ORiwgInNhdmVkX2NvbW1hbmRfbGluZSBub3QgZm91bmQiKTsKKysKKyAJc3BlY19mZCA9IFNBRkVfT1BFTigiL3Byb2MvY21kbGluZSIsIE9fUkRPTkxZKTsKKyAKKyAJbWVtc2V0KHRhcmdldF9hcnJheSwgMSwgc2l6ZW9mKHRhcmdldF9hcnJheSkpOworLS0gCisyLjcuNAorCmRpZmYgLS1naXQgYS9wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC9sdHAvbHRwLzAwMDEtc3lzY2FsbC1ydF9zaWd0aW1lZHdhaXQwMS1GaXgtd3Jvbmctc2lnc2V0LWxlbmd0aC1mby5wYXRjaCBiL3Bva3kvbWV0YS9yZWNpcGVzLWV4dGVuZGVkL2x0cC9sdHAvMDAwMS1zeXNjYWxsLXJ0X3NpZ3RpbWVkd2FpdDAxLUZpeC13cm9uZy1zaWdzZXQtbGVuZ3RoLWZvLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjBlNTZjMDgKLS0tIC9kZXYvbnVsbAorKysgYi9wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC9sdHAvbHRwLzAwMDEtc3lzY2FsbC1ydF9zaWd0aW1lZHdhaXQwMS1GaXgtd3Jvbmctc2lnc2V0LWxlbmd0aC1mby5wYXRjaApAQCAtMCwwICsxLDQ2IEBACitGcm9tIGE1MDQ2NjI1ZWFlZWQyZDNmYmE0NTZjM2JhODRjNmMxNDFjMmFkN2MgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBIZSBaaGUgPHpoZS5oZUB3aW5kcml2ZXIuY29tPgorRGF0ZTogVGh1LCAyOSBBdWcgMjAxOSAyMTowOTo0NiArMDgwMAorU3ViamVjdDogW1BBVENIXSBzeXNjYWxsL3J0X3NpZ3RpbWVkd2FpdDAxOiBGaXggd3Jvbmcgc2lnc2V0IGxlbmd0aCBmb3IgTUlQUworCitydF9zaWd0aW1lZHdhaXQwMSBmYWlscyBhcyBmb2xsb3cgb24gTUlQUyBhcmNoZXMKK3J0X3NpZ3RpbWVkd2FpdDAxICAgIDEgIFRGQUlMICA6ICAuLi4vc2lnd2FpdGluZm8wMS5jOjU4OiB0ZXN0X2VtcHR5X3NldAorKC4uLi9zaWd3YWl0aW5mbzAxLmM6IDE0OCk6IFVuZXhwZWN0ZWQgZmFpbHVyZToKK1RFU1RfRVJSTk89RUlOVkFMKDIyKTogSW52YWxpZCBhcmd1bWVudAorCitBcyB0aGlzIGNhc2UgcHVycG9zZWx5IGJ5cGFzc2VzIGdsaWJjLCBpdCBzaG91bGQgYWxpZ24gd2l0aCB0aGUgc2l6ZSBvZiBrZXJuZWwKK2RlZmluaXRpb24gb2Ygc2lnc2V0X3Qgd2hpY2ggaXMgZGlmZmVyZW50IGZyb20gb3RoZXIgYXJjaGVzLgoraHR0cHM6Ly9naXQua2VybmVsLm9yZy9wdWIvc2NtL2xpbnV4L2tlcm5lbC9naXQvdG9ydmFsZHMvbGludXguZ2l0L3RyZWUvYXJjaC9taXBzL2luY2x1ZGUvdWFwaS9hc20vc2lnbmFsLmgjbjE1CisKK1RoaXMgcGF0Y2ggdHVybnMgdG8gdXNlIF9OU0lHIHdoaWNoIGlzIGFsd2F5cyByaWdodCBmb3IgYWxsIGFyY2hlcy4KKworVXBzdHJlYW0tU3RhdHVzOiBCYWNrcG9ydCBbYTUwNDY2MjVlYWVlZDJkM2ZiYTQ1NmMzYmE4NGM2YzE0MWMyYWQ3Y10KKworU3VnZ2VzdGVkLWJ5OiBKYW4gU3RhbmNlayA8anN0YW5jZWtAcmVkaGF0LmNvbT4KK0Fja2VkLWJ5OiBKYW4gU3RhbmNlayA8anN0YW5jZWtAcmVkaGF0LmNvbT4KK0Fja2VkLWJ5OiBDeXJpbCBIcnViaXMgPGNocnViaXNAc3VzZS5jej4KK1NpZ25lZC1vZmYtYnk6IEhlIFpoZSA8emhlLmhlQHdpbmRyaXZlci5jb20+CitTaWduZWQtb2ZmLWJ5OiBQZXRyIFZvcmVsIDxwdm9yZWxAc3VzZS5jej4KKy0tLQorIHRlc3RjYXNlcy9rZXJuZWwvc3lzY2FsbHMvc2lnd2FpdGluZm8vc2lnd2FpdGluZm8wMS5jIHwgNSArKy0tLQorIDEgZmlsZSBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKyksIDMgZGVsZXRpb25zKC0pCisKK2RpZmYgLS1naXQgYS90ZXN0Y2FzZXMva2VybmVsL3N5c2NhbGxzL3NpZ3dhaXRpbmZvL3NpZ3dhaXRpbmZvMDEuYyBiL3Rlc3RjYXNlcy9rZXJuZWwvc3lzY2FsbHMvc2lnd2FpdGluZm8vc2lnd2FpdGluZm8wMS5jCitpbmRleCA1YTMyY2UxLi42YTMwYzI3IDEwMDY0NAorLS0tIGEvdGVzdGNhc2VzL2tlcm5lbC9zeXNjYWxscy9zaWd3YWl0aW5mby9zaWd3YWl0aW5mbzAxLmMKKysrKyBiL3Rlc3RjYXNlcy9rZXJuZWwvc3lzY2FsbHMvc2lnd2FpdGluZm8vc2lnd2FpdGluZm8wMS5jCitAQCAtMTI4LDkgKzEyOCw4IEBAIHN0YXRpYyBpbnQgbXlfc2lndGltZWR3YWl0KGNvbnN0IHNpZ3NldF90ICogc2V0LCBzaWdpbmZvX3QgKiBpbmZvLAorIHN0YXRpYyBpbnQgbXlfcnRfc2lndGltZWR3YWl0KGNvbnN0IHNpZ3NldF90ICogc2V0LCBzaWdpbmZvX3QgKiBpbmZvLAorIAkJCSAgICAgIHN0cnVjdCB0aW1lc3BlYyAqdGltZW91dCkKKyB7CistCistCS8qIFRoZSBsYXN0IGFyZ3VtZW50IGlzIChudW1iZXJfb2Zfc2lnbmFscykvKGJpdHNfcGVyX2J5dGUpLCB3aGljaCBhcmUgNjQgYW5kIDgsIHJlc3AuICovCistCXJldHVybiBsdHBfc3lzY2FsbChfX05SX3J0X3NpZ3RpbWVkd2FpdCwgc2V0LCBpbmZvLCB0aW1lb3V0LCA4KTsKKysJLyogX05TSUcgaXMgYWx3YXlzIHRoZSByaWdodCBudW1iZXIgb2YgYml0cyBvZiBzaWduYWwgbWFwIGZvciBhbGwgYXJjaGVzICovCisrCXJldHVybiBsdHBfc3lzY2FsbChfX05SX3J0X3NpZ3RpbWVkd2FpdCwgc2V0LCBpbmZvLCB0aW1lb3V0LCBfTlNJRy84KTsKKyB9CisgI2VuZGlmCisgCistLSAKKzIuNy40CisKZGlmZiAtLWdpdCBhL3Bva3kvbWV0YS9yZWNpcGVzLWV4dGVuZGVkL2x0cC9sdHAvMDAwMS10ZXN0Y2FzZXMtdXNlLXB5dGhvbjMtZXZlcnl3aGVyZS10by1ydW4tcHl0aG9uLXNjcmlwLnBhdGNoIGIvcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvbHRwL2x0cC8wMDAxLXRlc3RjYXNlcy11c2UtcHl0aG9uMy1ldmVyeXdoZXJlLXRvLXJ1bi1weXRob24tc2NyaXAucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjRmODdmMwotLS0gL2Rldi9udWxsCisrKyBiL3Bva3kvbWV0YS9yZWNpcGVzLWV4dGVuZGVkL2x0cC9sdHAvMDAwMS10ZXN0Y2FzZXMtdXNlLXB5dGhvbjMtZXZlcnl3aGVyZS10by1ydW4tcHl0aG9uLXNjcmlwLnBhdGNoCkBAIC0wLDAgKzEsMTYxIEBACitGcm9tIDA0NjNkNzkzNTY2NzcyYTYwNjI1NTk1NzkxNWY5OWQxNjZkNTc0MGMgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBBbGV4YW5kZXIgS2FuYXZpbiA8YWxleC5rYW5hdmluQGdtYWlsLmNvbT4KK0RhdGU6IFdlZCwgMjggQXVnIDIwMTkgMTg6MzA6MjMgKzAyMDAKK1N1YmplY3Q6IFtQQVRDSF0gdGVzdGNhc2VzOiB1c2UgcHl0aG9uMyBldmVyeXdoZXJlIHRvIHJ1biBweXRob24gc2NyaXB0cworCitUaGUgc2NyaXB0cyB0aGVtc2VsdmVzIGhhdmUgIyEvdXNyL2Jpbi9weXRob24zIGluIHRoZW0sCitzbyBJIHRydXN0IHRoZXkgYXJlIGFscmVhZHkgcHkzLWNvbXBhdGlibGUuCisKK1Vwc3RyZWFtLVN0YXR1czogUGVuZGluZworU2lnbmVkLW9mZi1ieTogQWxleGFuZGVyIEthbmF2aW4gPGFsZXgua2FuYXZpbkBnbWFpbC5jb20+CistLS0KKyB0ZXN0Y2FzZXMva2VybmVsL3Bvd2VyX21hbmFnZW1lbnQvcnVucHd0ZXN0czA1LnNoICB8ICAyICstCisgLi4uL3Bvd2VyX21hbmFnZW1lbnQvcnVucHd0ZXN0c19leGNsdXNpdmUwMS5zaCAgICAgfCAgMiArLQorIC4uLi9wb3dlcl9tYW5hZ2VtZW50L3J1bnB3dGVzdHNfZXhjbHVzaXZlMDIuc2ggICAgIHwgIDIgKy0KKyAuLi4vcG93ZXJfbWFuYWdlbWVudC9ydW5wd3Rlc3RzX2V4Y2x1c2l2ZTAzLnNoICAgICB8ICAyICstCisgLi4uL3Bvd2VyX21hbmFnZW1lbnQvcnVucHd0ZXN0c19leGNsdXNpdmUwNC5zaCAgICAgfCAgMiArLQorIC4uLi9wb3dlcl9tYW5hZ2VtZW50L3J1bnB3dGVzdHNfZXhjbHVzaXZlMDUuc2ggICAgIHwgIDIgKy0KKyB0ZXN0Y2FzZXMvbmV0d29yay9uZnN2NC9hY2wvcnVudGVzdCAgICAgICAgICAgICAgICB8IDE0ICsrKysrKystLS0tLS0tCisgdGVzdGNhc2VzL3JlYWx0aW1lL2Z1bmMvcGktdGVzdHMvcnVuX2F1dG8uc2ggICAgICAgfCAgNiArKystLS0KKyA4IGZpbGVzIGNoYW5nZWQsIDE2IGluc2VydGlvbnMoKyksIDE2IGRlbGV0aW9ucygtKQorCitkaWZmIC0tZ2l0IGEvdGVzdGNhc2VzL2tlcm5lbC9wb3dlcl9tYW5hZ2VtZW50L3J1bnB3dGVzdHMwNS5zaCBiL3Rlc3RjYXNlcy9rZXJuZWwvcG93ZXJfbWFuYWdlbWVudC9ydW5wd3Rlc3RzMDUuc2gKK2luZGV4IDhhN2QwZjZlMC4uNDNlMjM0ZDAxIDEwMDc1NQorLS0tIGEvdGVzdGNhc2VzL2tlcm5lbC9wb3dlcl9tYW5hZ2VtZW50L3J1bnB3dGVzdHMwNS5zaAorKysrIGIvdGVzdGNhc2VzL2tlcm5lbC9wb3dlcl9tYW5hZ2VtZW50L3J1bnB3dGVzdHMwNS5zaAorQEAgLTM1LDcgKzM1LDcgQEAgZWxzZQorIAltYXhfc2NoZWRfc210PTEKKyBmaQorIAorLXRzdF90ZXN0X2NtZHMgcHl0aG9uCisrdHN0X3Rlc3RfY21kcyBweXRob24zCisgCisgaWYgISBncmVwIHNjaGVkX2RlYnVnIC1xdyAvcHJvYy9jbWRsaW5lIDsgdGhlbgorIAl0c3RfYnJrbSBUQ09ORiAiS2VybmVsIGNtZGxpbmUgcGFyYW1ldGVyICdzY2hlZF9kZWJ1ZycgbmVlZGVkLCIgXAorZGlmZiAtLWdpdCBhL3Rlc3RjYXNlcy9rZXJuZWwvcG93ZXJfbWFuYWdlbWVudC9ydW5wd3Rlc3RzX2V4Y2x1c2l2ZTAxLnNoIGIvdGVzdGNhc2VzL2tlcm5lbC9wb3dlcl9tYW5hZ2VtZW50L3J1bnB3dGVzdHNfZXhjbHVzaXZlMDEuc2gKK2luZGV4IGVjNzgzMTllMi4uOWZlZmNiZjZlIDEwMDc1NQorLS0tIGEvdGVzdGNhc2VzL2tlcm5lbC9wb3dlcl9tYW5hZ2VtZW50L3J1bnB3dGVzdHNfZXhjbHVzaXZlMDEuc2gKKysrKyBiL3Rlc3RjYXNlcy9rZXJuZWwvcG93ZXJfbWFuYWdlbWVudC9ydW5wd3Rlc3RzX2V4Y2x1c2l2ZTAxLnNoCitAQCAtMzUsNyArMzUsNyBAQCBlbHNlCisgCW1heF9zY2hlZF9zbXQ9MQorIGZpCisgCistdHN0X3Rlc3RfY21kcyBweXRob24KKyt0c3RfdGVzdF9jbWRzIHB5dGhvbjMKKyAKKyBoeXBlcl90aHJlYWRlZD0kKGlzX2h5cGVyX3RocmVhZGVkKQorIG11bHRpX3NvY2tldD0kKGlzX211bHRpX3NvY2tldCkKK2RpZmYgLS1naXQgYS90ZXN0Y2FzZXMva2VybmVsL3Bvd2VyX21hbmFnZW1lbnQvcnVucHd0ZXN0c19leGNsdXNpdmUwMi5zaCBiL3Rlc3RjYXNlcy9rZXJuZWwvcG93ZXJfbWFuYWdlbWVudC9ydW5wd3Rlc3RzX2V4Y2x1c2l2ZTAyLnNoCitpbmRleCBlMTA3ZmNlMzUuLjJjZDBlY2IwNSAxMDA3NTUKKy0tLSBhL3Rlc3RjYXNlcy9rZXJuZWwvcG93ZXJfbWFuYWdlbWVudC9ydW5wd3Rlc3RzX2V4Y2x1c2l2ZTAyLnNoCisrKysgYi90ZXN0Y2FzZXMva2VybmVsL3Bvd2VyX21hbmFnZW1lbnQvcnVucHd0ZXN0c19leGNsdXNpdmUwMi5zaAorQEAgLTMzLDcgKzMzLDcgQEAgZWxzZQorIAltYXhfc2NoZWRfc210PTEKKyBmaQorIAorLXRzdF90ZXN0X2NtZHMgcHl0aG9uCisrdHN0X3Rlc3RfY21kcyBweXRob24zCisgCisgaHlwZXJfdGhyZWFkZWQ9JChpc19oeXBlcl90aHJlYWRlZCkKKyBtdWx0aV9zb2NrZXQ9JChpc19tdWx0aV9zb2NrZXQpCitkaWZmIC0tZ2l0IGEvdGVzdGNhc2VzL2tlcm5lbC9wb3dlcl9tYW5hZ2VtZW50L3J1bnB3dGVzdHNfZXhjbHVzaXZlMDMuc2ggYi90ZXN0Y2FzZXMva2VybmVsL3Bvd2VyX21hbmFnZW1lbnQvcnVucHd0ZXN0c19leGNsdXNpdmUwMy5zaAoraW5kZXggNDkwMzQ0YmIzLi5hYjNhNWQxMWQgMTAwNzU1CistLS0gYS90ZXN0Y2FzZXMva2VybmVsL3Bvd2VyX21hbmFnZW1lbnQvcnVucHd0ZXN0c19leGNsdXNpdmUwMy5zaAorKysrIGIvdGVzdGNhc2VzL2tlcm5lbC9wb3dlcl9tYW5hZ2VtZW50L3J1bnB3dGVzdHNfZXhjbHVzaXZlMDMuc2gKK0BAIC0zNSw3ICszNSw3IEBAIGVsc2UKKyAJbWF4X3NjaGVkX3NtdD0xCisgZmkKKyAKKy10c3RfdGVzdF9jbWRzIHB5dGhvbgorK3RzdF90ZXN0X2NtZHMgcHl0aG9uMworIAorIGh5cGVyX3RocmVhZGVkPSQoaXNfaHlwZXJfdGhyZWFkZWQpCisgbXVsdGlfc29ja2V0PSQoaXNfbXVsdGlfc29ja2V0KQorZGlmZiAtLWdpdCBhL3Rlc3RjYXNlcy9rZXJuZWwvcG93ZXJfbWFuYWdlbWVudC9ydW5wd3Rlc3RzX2V4Y2x1c2l2ZTA0LnNoIGIvdGVzdGNhc2VzL2tlcm5lbC9wb3dlcl9tYW5hZ2VtZW50L3J1bnB3dGVzdHNfZXhjbHVzaXZlMDQuc2gKK2luZGV4IDk3OGNhMDJhZS4uNDM4ZWY2MDNmIDEwMDc1NQorLS0tIGEvdGVzdGNhc2VzL2tlcm5lbC9wb3dlcl9tYW5hZ2VtZW50L3J1bnB3dGVzdHNfZXhjbHVzaXZlMDQuc2gKKysrKyBiL3Rlc3RjYXNlcy9rZXJuZWwvcG93ZXJfbWFuYWdlbWVudC9ydW5wd3Rlc3RzX2V4Y2x1c2l2ZTA0LnNoCitAQCAtMjcsNyArMjcsNyBAQCBleHBvcnQgVFNUX1RPVEFMPTIKKyAjIENoZWNraW5nIHRlc3QgZW52aXJvbm1lbnQKKyBjaGVja19rZXJ2ZWxfYXJjaAorIAorLXRzdF90ZXN0X2NtZHMgcHl0aG9uCisrdHN0X3Rlc3RfY21kcyBweXRob24zCisgCisgaHlwZXJfdGhyZWFkZWQ9JChpc19oeXBlcl90aHJlYWRlZCkKKyBtdWx0aV9zb2NrZXQ9JChpc19tdWx0aV9zb2NrZXQpCitkaWZmIC0tZ2l0IGEvdGVzdGNhc2VzL2tlcm5lbC9wb3dlcl9tYW5hZ2VtZW50L3J1bnB3dGVzdHNfZXhjbHVzaXZlMDUuc2ggYi90ZXN0Y2FzZXMva2VybmVsL3Bvd2VyX21hbmFnZW1lbnQvcnVucHd0ZXN0c19leGNsdXNpdmUwNS5zaAoraW5kZXggYTBkYWQ1ODM0Li4zYTlhZmRiZjIgMTAwNzU1CistLS0gYS90ZXN0Y2FzZXMva2VybmVsL3Bvd2VyX21hbmFnZW1lbnQvcnVucHd0ZXN0c19leGNsdXNpdmUwNS5zaAorKysrIGIvdGVzdGNhc2VzL2tlcm5lbC9wb3dlcl9tYW5hZ2VtZW50L3J1bnB3dGVzdHNfZXhjbHVzaXZlMDUuc2gKK0BAIC0zNSw3ICszNSw3IEBAIGVsc2UKKyAJbWF4X3NjaGVkX3NtdD0xCisgZmkKKyAKKy10c3RfdGVzdF9jbWRzIHB5dGhvbgorK3RzdF90ZXN0X2NtZHMgcHl0aG9uMworIAorIGh5cGVyX3RocmVhZGVkPSQoaXNfaHlwZXJfdGhyZWFkZWQpCisgbXVsdGlfc29ja2V0PSQoaXNfbXVsdGlfc29ja2V0KQorZGlmZiAtLWdpdCBhL3Rlc3RjYXNlcy9uZXR3b3JrL25mc3Y0L2FjbC9ydW50ZXN0IGIvdGVzdGNhc2VzL25ldHdvcmsvbmZzdjQvYWNsL3J1bnRlc3QKK2luZGV4IGQyZTFiNGM0OS4uYTg1OWU4NWJjIDEwMDc1NQorLS0tIGEvdGVzdGNhc2VzL25ldHdvcmsvbmZzdjQvYWNsL3J1bnRlc3QKKysrKyBiL3Rlc3RjYXNlcy9uZXR3b3JrL25mc3Y0L2FjbC9ydW50ZXN0CitAQCAtMjIsNyArMjIsNyBAQCBkbworIGRvbmUKKyAKKyAjICBjcmVhdGlvbiBvZiB1c2VycyBvbiB0aGUgcmVtb3RlIG1hY2hpbmUgKHJlbW92ZWQgb25seSBhdCB0aGUgZW5kIG9mIHRoZSB0ZXN0cykKKy1yc2ggLW4gJFJFTU9URUhPU1QgcHl0aG9uICRQV0QvY3JlYXRlX3VzZXJzLnB5IC11IDUwIC1nIDUwCisrcnNoIC1uICRSRU1PVEVIT1NUIHB5dGhvbjMgJFBXRC9jcmVhdGVfdXNlcnMucHkgLXUgNTAgLWcgNTAKKyAKKyBlY2hvICJTdGFydGluZyBBQ0wgdGVzdGluZyIKKyAKK0BAIC01MSwxOSArNTEsMTkgQEAgZWNobyAiQmFzaWMgdGVzdHMgZmluaXNoZWQiCisgCisgZWNobyAiTE9ORyBBQ0wgVEVTVCIKKyBlY2hvICJjcmVhdGluZyBuZWNlc3NhcnkgdXNlcnMgYW5kIGdyb3VwcyIKKy1weXRob24gY3JlYXRlX3VzZXJzLnB5IC11IDUwIC1nIDUwCisrcHl0aG9uMyBjcmVhdGVfdXNlcnMucHkgLXUgNTAgLWcgNTAKKyBlY2hvICJjcmVhdGluZyBuZWNlc3NhcnkgdXNlcnMgYW5kIGdyb3VwcyBvbiB0aGUgcmVtb3RlIGhvc3QiCisgbWtkaXIgJE5GU01OVERJUi9sYWNsLXRlc3RkaXIKKy1weXRob24gdGVzdF9sb25nX2FjbC5weSAtbCAkTUFYTEVOR1RIIC1wICRORlNNTlRESVIvbGFjbC10ZXN0ZGlyCisrcHl0aG9uMyB0ZXN0X2xvbmdfYWNsLnB5IC1sICRNQVhMRU5HVEggLXAgJE5GU01OVERJUi9sYWNsLXRlc3RkaXIKKyBybSAtcmYgJE5GU01OVERJUi9sYWNsLXRlc3RkaXIKKyBlY2hvICJMb25nIEFDTCB0ZXN0IE9LIHdpdGggJE1BWExFTkdUSCBlbnRyaWVzIgorIGVjaG8gIkFDTCBTVFJFU1NJTkcgVEVTVCIKKy1weXRob24gc2V0YWNsX3N0cmVzcy5weSAtbiAxMDAgLXUgJFVTRVJfTkIgLWcgJEdSUF9OQiAtZiAkRklMRV9OQiAtcCAkTkZTTU5URElSCisrcHl0aG9uMyBzZXRhY2xfc3RyZXNzLnB5IC1uIDEwMCAtdSAkVVNFUl9OQiAtZyAkR1JQX05CIC1mICRGSUxFX05CIC1wICRORlNNTlRESVIKKyAKKyAjIHJlbW92ZSBsb2NhbCBhbiByZW1vdGUgdXNlcnMKKy1weXRob24gY2xlYW51c2Vycy5weQorLXB5dGhvbiBjbGVhbmdyb3Vwcy5weQorLXJzaCAtbiAkUkVNT1RFSE9TVCBweXRob24gJFBXRC9jbGVhbnVzZXJzLnB5CisrcHl0aG9uMyBjbGVhbnVzZXJzLnB5CisrcHl0aG9uMyBjbGVhbmdyb3Vwcy5weQorK3JzaCAtbiAkUkVNT1RFSE9TVCBweXRob24zICRQV0QvY2xlYW51c2Vycy5weQorIAorIGVjaG8gIlRlc3QgT0siCisgCitkaWZmIC0tZ2l0IGEvdGVzdGNhc2VzL3JlYWx0aW1lL2Z1bmMvcGktdGVzdHMvcnVuX2F1dG8uc2ggYi90ZXN0Y2FzZXMvcmVhbHRpbWUvZnVuYy9waS10ZXN0cy9ydW5fYXV0by5zaAoraW5kZXggZDEzMDI2MDQ5Li4yNzc5ODg1NjggMTAwNzU1CistLS0gYS90ZXN0Y2FzZXMvcmVhbHRpbWUvZnVuYy9waS10ZXN0cy9ydW5fYXV0by5zaAorKysrIGIvdGVzdGNhc2VzL3JlYWx0aW1lL2Z1bmMvcGktdGVzdHMvcnVuX2F1dG8uc2gKK0BAIC0xNSwxNSArMTUsMTUgQEAgJFNDUklQVFNfRElSL3J1bl9jX2ZpbGVzLnNoICRwcm9maWxlIHRlc3RwaS0wCisgCisgZXhwb3J0IExPR19GSUxFPSIkTE9HX0RJUi8kTE9HX0ZPUk1BVC10ZXN0cGktMS5sb2ciCisgJFNDUklQVFNfRElSL3J1bl9jX2ZpbGVzLnNoICRwcm9maWxlIHRlc3RwaS0xCistUFlUSE9OUEFUSD0uLi8uLi8gIHB5dGhvbiBwYXJzZS10ZXN0cGkxLnB5ICRMT0dfRklMRSAyPiYxIHwgdGVlIC1hICRMT0dfRklMRQorK1BZVEhPTlBBVEg9Li4vLi4vICBweXRob24zIHBhcnNlLXRlc3RwaTEucHkgJExPR19GSUxFIDI+JjEgfCB0ZWUgLWEgJExPR19GSUxFCisgCisgZXhwb3J0IExPR19GSUxFPSIkTE9HX0RJUi8kTE9HX0ZPUk1BVC10ZXN0cGktMi5sb2ciCisgJFNDUklQVFNfRElSL3J1bl9jX2ZpbGVzLnNoICRwcm9maWxlIHRlc3RwaS0yCistUFlUSE9OUEFUSD0uLi8uLi8gIHB5dGhvbiBwYXJzZS10ZXN0cGkyLnB5ICRMT0dfRklMRSAyPiYxIHwgdGVlIC1hICRMT0dfRklMRQorK1BZVEhPTlBBVEg9Li4vLi4vICBweXRob24zIHBhcnNlLXRlc3RwaTIucHkgJExPR19GSUxFIDI+JjEgfCB0ZWUgLWEgJExPR19GSUxFCisgCisgZXhwb3J0IExPR19GSUxFPSIkTE9HX0RJUi8kTE9HX0ZPUk1BVC10ZXN0cGktNC5sb2ciCisgJFNDUklQVFNfRElSL3J1bl9jX2ZpbGVzLnNoICRwcm9maWxlIHRlc3RwaS00CistUFlUSE9OUEFUSD0uLi8uLi8gIHB5dGhvbiBwYXJzZS10ZXN0cGkxLnB5ICRMT0dfRklMRSAyPiYxIHwgdGVlIC1hICRMT0dfRklMRQorK1BZVEhPTlBBVEg9Li4vLi4vICBweXRob24zIHBhcnNlLXRlc3RwaTEucHkgJExPR19GSUxFIDI+JjEgfCB0ZWUgLWEgJExPR19GSUxFCisgCisgCisgZXhwb3J0IExPR19GSUxFPSIiCmRpZmYgLS1naXQgYS9wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC9sdHAvbHRwXzIwMTkwNTE3LmJiIGIvcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvbHRwL2x0cF8yMDE5MDUxNy5iYgppbmRleCBiMGUyZjk2Li5lOWE1ODhmIDEwMDY0NAotLS0gYS9wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC9sdHAvbHRwXzIwMTkwNTE3LmJiCisrKyBiL3Bva3kvbWV0YS9yZWNpcGVzLWV4dGVuZGVkL2x0cC9sdHBfMjAxOTA1MTcuYmIKQEAgLTQ1LDYgKzQ1LDkgQEAKICAgICAgICAgICAgZmlsZTovLzAwMDItY2hlY2stZm9yLVJFU19VU0VfSU5FVDYtZHVyaW5nLWNvbmZpZ3VyZS5wYXRjaCBcCiAgICAgICAgICAgIGZpbGU6Ly8wMDAxLXN5c2NhbGxzLXRna2lsbDAzLXdhaXQtZm9yLWRlZnVuY3QtdGlkLXRvLWdldC1kZXRhY2gucGF0Y2ggXAogICAgICAgICAgICBmaWxlOi8vMDAwMS11c3RhdDAyLUZpeC1FRkFVTFQtaW4tMzJiaXQtY29tcGF0aWJpbGl0eS1tb2RlLnBhdGNoIFwKKyAgICAgICAgICAgZmlsZTovLzAwMDEtY3ZlLW1lbHRkb3duLmMtRml4LWtlcm5lbC1zeW1ib2wtZmluZGluZy5wYXRjaCBcCisgICAgICAgICAgIGZpbGU6Ly8wMDAxLXRlc3RjYXNlcy11c2UtcHl0aG9uMy1ldmVyeXdoZXJlLXRvLXJ1bi1weXRob24tc2NyaXAucGF0Y2ggXAorICAgICAgICAgICBmaWxlOi8vMDAwMS1zeXNjYWxsLXJ0X3NpZ3RpbWVkd2FpdDAxLUZpeC13cm9uZy1zaWdzZXQtbGVuZ3RoLWZvLnBhdGNoIFwKICAgICAgICAgICAgIgogCiBTID0gIiR7V09SS0RJUn0vZ2l0IgpAQCAtOTYsNyArOTksNyBAQAogICAgIGxpYmFpbyBcCiAgICAgbG9ncm90YXRlIFwKICAgICBwZXJsIFwKLSAgICBweXRob24tY29yZSBcCisgICAgcHl0aG9uMy1jb3JlIFwKICAgICBwcm9jcHMgXAogICAgIHF1b3RhIFwKICAgICB1bnppcCBcCmRpZmYgLS1naXQgYS9wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC9tYW4tZGIvbWFuLWRiXzIuOC42LjEuYmIgYi9wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC9tYW4tZGIvbWFuLWRiXzIuOC43LmJiCnNpbWlsYXJpdHkgaW5kZXggODglCnJlbmFtZSBmcm9tIHBva3kvbWV0YS9yZWNpcGVzLWV4dGVuZGVkL21hbi1kYi9tYW4tZGJfMi44LjYuMS5iYgpyZW5hbWUgdG8gcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvbWFuLWRiL21hbi1kYl8yLjguNy5iYgppbmRleCBlYzllYjgzLi4wODNiMjM3IDEwMDY0NAotLS0gYS9wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC9tYW4tZGIvbWFuLWRiXzIuOC42LjEuYmIKKysrIGIvcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvbWFuLWRiL21hbi1kYl8yLjguNy5iYgpAQCAtNyw4ICs3LDggQEAKIFNSQ19VUkkgPSAiJHtTQVZBTk5BSF9OT05HTlVfTUlSUk9SfS9tYW4tZGIvbWFuLWRiLSR7UFZ9LnRhci54eiBcCiAgICAgICAgICAgIGZpbGU6Ly85OV9tYW5kYiBcCiAgICAgICAgICAgIGZpbGU6Ly9tYW5fZGIuY29uZi1hdm9pZC1tdWx0aWxpYi1pbnN0YWxsLWZpbGUtY29uZmxpY3QucGF0Y2giCi1TUkNfVVJJW21kNXN1bV0gPSAiMjJlODJmZTExMjdmNGNhOTVkZTcxMDAxNjhhOTI3ZDEiCi1TUkNfVVJJW3NoYTI1NnN1bV0gPSAiMmM3N2EyYmI5ZGJmMDZmNzI0MTdhNmY2MzA2M2UyMDQ4ODhhMjJhNTAyMGZmNzczMzRkMzA0ZDU1ZjgxM2EyOCIKK1NSQ19VUklbbWQ1c3VtXSA9ICJlYzBiMjNjODMxNGExNjU0YzRkMDU5YjJjMThjZTQzZCIKK1NSQ19VUklbc2hhMjU2c3VtXSA9ICJiOWNkNWJiOTk2MzA1ZDA4YmZlOWUxMTE0ZWRjMzBiNGM5N2JlODA3MDkzYjg4YWY4MDMzZWQxY2Y5YmViMzI2IgogCiBERVBFTkRTID0gImxpYnBpcGVsaW5lIGdkYm0gZ3JvZmYtbmF0aXZlIGJhc2UtcGFzc3dkIgogUkRFUEVORFNfJHtQTn0gKz0gImJhc2UtcGFzc3dkIgpAQCAtMTgsNyArMTgsNyBAQAogCiBpbmhlcml0IGdldHRleHQgcGtnY29uZmlnIGF1dG90b29scyBzeXN0ZW1kCiAKLUVYVFJBX09FQ09ORiA9ICItLXdpdGgtcGFnZXI9bGVzcyIKK0VYVFJBX09FQ09ORiA9ICItLXdpdGgtcGFnZXI9bGVzcyAtLXdpdGgtc3lzdGVtZHN5c3RlbXVuaXRkaXI9JHtzeXN0ZW1kX3VuaXRkaXJ9L3N5c3RlbSIKIEVYVFJBX0FVVE9SRUNPTkYgKz0gIi1JICR7U30vZ2wvbTQiCiAKIGRvX2luc3RhbGwoKSB7CmRpZmYgLS1naXQgYS9wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC9tZGFkbS9maWxlcy8wMDAxLW1kYWRtLXNraXAtdGVzdC0xMXNwYXJlLW1pZ3JhdGlvbi5wYXRjaCBiL3Bva3kvbWV0YS9yZWNpcGVzLWV4dGVuZGVkL21kYWRtL2ZpbGVzLzAwMDEtbWRhZG0tc2tpcC10ZXN0LTExc3BhcmUtbWlncmF0aW9uLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNhMTkyY2MKLS0tIC9kZXYvbnVsbAorKysgYi9wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC9tZGFkbS9maWxlcy8wMDAxLW1kYWRtLXNraXAtdGVzdC0xMXNwYXJlLW1pZ3JhdGlvbi5wYXRjaApAQCAtMCwwICsxLDQzIEBACitGcm9tIDFiODNhZmE3YzMxMjFmODE5ZTcyZWE3NDg4M2Y4YjZkNjFkNjU0OGUgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBDaGFuZ3FpbmcgTGkgPGNoYW5ncWluZy5saUB3aW5kcml2ZXIuY29tPgorRGF0ZTogRnJpLCA2IFNlcCAyMDE5IDEwOjU5OjAyICswODAwCitTdWJqZWN0OiBbUEFUQ0hdIG1kYWRtOiBza2lwIHRlc3QgMTFzcGFyZS1taWdyYXRpb24KKworMTFzcGFyZS1taWdyYXRpb24gaXMgYSB0ZXN0IHNlcmllcyB0byBjaGVjayBtZGFkbSBNb25pdG9yIG1pZ3JhdGVzIHNwYXJlcworYWNjb3JkaW5nIHRvIHJ1bGVzIGluIC9ldGMvbWRhZG0uY29uZiBkZWZpbmVkIGJ5IFBPTElDWSBsaW5lcy4KKworW3NuaXBdCitmb3Igc2NhbiBpbiBubyB5ZXM7IGRvCisgICAgICAgZm9yIHBsYXRmb3JtIGluIDEuMiBpbXNtOyBkbworICAgICAgICAgICAgICAgdHJ5CisgICAgICAgZG9uZQorZG9uZQorW3NuaXBdCisKKyJ0cnkiIGluY2x1ZGVzIG5lYXIgMjAgc3ViIHRlc3RjYXNlLCBzbyB0aGVyZSBhcmUgbmVhcmx5IDgwIHN1YmNhc2VzIG5lZWQgdG8gcnVuLAorc28gaXQgd2lsbCB0YWtlIGxvbmcgdGltZSB0aGFuIHB0ZXN0LXJ1bm5lciB0aW1lb3V0IGxpbWl0LCBza2lwIGl0IGFzIHdvcmthcm91bmQuCisKK1Vwc3RyZWFtLVN0YXR1czogSW5hcHByb3ByaWF0ZVtvZS1zcGVjaWZpY10KKworU2lnbmVkLW9mZi1ieTogQ2hhbmdxaW5nIExpIDxjaGFuZ3FpbmcubGlAd2luZHJpdmVyLmNvbT4KKy0tLQorIHRlc3QgfCAzICsrKworIDEgZmlsZSBjaGFuZ2VkLCAzIGluc2VydGlvbnMoKykKKworZGlmZiAtLWdpdCBhL3Rlc3QgYi90ZXN0CitpbmRleCA3MTFhM2M3Li44ODBkZDFkIDEwMDc1NQorLS0tIGEvdGVzdAorKysrIGIvdGVzdAorQEAgLTI3Miw2ICsyNzIsOSBAQCBtYWluKCkgeworIAllbHNlCisgCQlmb3Igc2NyaXB0IGluICR0ZXN0ZGlyLyRwcmVmaXggJHRlc3RkaXIvJHByZWZpeCpbXn5dCisgCQlkbworKwkJCWlmIFsgJHNjcmlwdCA9PSAiJHRlc3RkaXIvMTFzcGFyZS1taWdyYXRpb24iIF07dGhlbgorKwkJCQljb250aW51ZQorKwkJCWZpCisgCQkJZG9fdGVzdCAkc2NyaXB0CisgCQlkb25lCisgCWZpCistLSAKKzIuNy40CisKZGlmZiAtLWdpdCBhL3Bva3kvbWV0YS9yZWNpcGVzLWV4dGVuZGVkL21kYWRtL21kYWRtXzQuMS5iYiBiL3Bva3kvbWV0YS9yZWNpcGVzLWV4dGVuZGVkL21kYWRtL21kYWRtXzQuMS5iYgppbmRleCA3NGM5NGY2Li42MzkzODJlIDEwMDY0NAotLS0gYS9wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC9tZGFkbS9tZGFkbV80LjEuYmIKKysrIGIvcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvbWRhZG0vbWRhZG1fNC4xLmJiCkBAIC0yMiw3ICsyMiw5IEBACiAJICAgZmlsZTovL21kYWRtLmluaXQgXAogCSAgIGZpbGU6Ly8wMDAxLW1kYWRtLWFkZC1vcHRpb24teS1mb3ItdXNlLXN5c2xvZy10by1yZWNpdmUtZXZlbnQtcmUucGF0Y2ggXAogICAgICAgICAgICBmaWxlOi8vaW5jbHVkZV9zeXNtYWNyb3MucGF0Y2ggXAorICAgICAgICAgICBmaWxlOi8vMDAwMS1tZGFkbS1za2lwLXRlc3QtMTFzcGFyZS1taWdyYXRpb24ucGF0Y2ggXAogICAgICAgICAgICAiCisKIFNSQ19VUklbbWQ1c3VtXSA9ICI1MWJmMzY1MWJkNzNhMDZjNDEzYTJmOTY0ZjI5OTU5OCIKIFNSQ19VUklbc2hhMjU2c3VtXSA9ICJhYjc2ODg4NDI5MDhkMzU4M2E3MDRkNDkxOTU2ZjMxMzI0YzNhNWZjOWY2YTA0NjUzY2I3NWQxOWYxOTM0ZjRhIgogCmRpZmYgLS1naXQgYS9wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC9wYWNrYWdlZ3JvdXBzL3BhY2thZ2Vncm91cC1jb3JlLWxzYi5iYiBiL3Bva3kvbWV0YS9yZWNpcGVzLWV4dGVuZGVkL3BhY2thZ2Vncm91cHMvcGFja2FnZWdyb3VwLWNvcmUtbHNiLmJiCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhODIxZmQ4Li4wMDAwMDAwCi0tLSBhL3Bva3kvbWV0YS9yZWNpcGVzLWV4dGVuZGVkL3BhY2thZ2Vncm91cHMvcGFja2FnZWdyb3VwLWNvcmUtbHNiLmJiCisrKyAvZGV2L251bGwKQEAgLTEsMjQwICswLDAgQEAKLSMKLSMgQ29weXJpZ2h0IChDKSAyMDEwIEludGVsIENvcnBvcmF0aW9uCi0jCi0KLVNVTU1BUlkgPSAiTGludXggU3RhbmRhcmQgQmFzZSAoTFNCKSIKLURFU0NSSVBUSU9OID0gIlBhY2thZ2VzIHJlcXVpcmVkIHRvIHNhdGlzZnkgdGhlIExpbnV4IFN0YW5kYXJkIEJhc2UgKExTQikgc3BlY2lmaWNhdGlvbiIKLVBSID0gInIxMCIKLQotaW5oZXJpdCBwYWNrYWdlZ3JvdXAgZGlzdHJvX2ZlYXR1cmVzX2NoZWNrCi0KLSMgVGhlIGxpYnh0LCBsaWJ4dHN0IGFuZCBvdGhlcnMgcmVxdWlyZSB4MTEgaW4gRElTVFJPX0ZFQVRVUkVTCi1SRVFVSVJFRF9ESVNUUk9fRkVBVFVSRVMgPSAieDExIgotCi0jIGxpYmdsdSBuZWVkcyB2aXJ0dWFsL2xpYmdsLCB3aGljaCByZXF1aXJlcyBvcGVuZ2wgaW4gRElTVFJPX0ZFQVRVUkVTCi1SRVFVSVJFRF9ESVNUUk9fRkVBVFVSRVMgKz0gIm9wZW5nbCIKLQotIyBsaWJwYW0sIHBhbS1wbHVnaW4td2hlZWwgcmVxdWlyZXMgcGFtIGluIERJU1RST19GRUFUVVJFUwotUkVRVUlSRURfRElTVFJPX0ZFQVRVUkVTICs9ICJwYW0iCi0KLSMKLSMgV2Ugd2lsbCBza2lwIHBhcnNpbmcgdGhpcyBwYWNrYWdlZ2VvdXAgZm9yIG5vbi1nbGliYyBzeXN0ZW1zCi0jCi1weXRob24gX19hbm9ueW1vdXMgKCkgewotICAgIGlmIGQuZ2V0VmFyKCdUQ0xJQkMnKSAhPSAiZ2xpYmMiOgotICAgICAgICByYWlzZSBiYi5wYXJzZS5Ta2lwUmVjaXBlKCJpbmNvbXBhdGlibGUgd2l0aCAlcyBDIGxpYnJhcnkiICUKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZC5nZXRWYXIoJ1RDTElCQycpKQotfQotCi1QQUNLQUdFUyA9ICJcCi0gICAgcGFja2FnZWdyb3VwLWNvcmUtbHNiIFwKLSAgICBwYWNrYWdlZ3JvdXAtY29yZS1zeXMtZXh0ZW5kZWQgXAotICAgIHBhY2thZ2Vncm91cC1jb3JlLWRiIFwKLSAgICBwYWNrYWdlZ3JvdXAtY29yZS1wZXJsIFwKLSAgICBwYWNrYWdlZ3JvdXAtY29yZS1weXRob24gXAotICAgIHBhY2thZ2Vncm91cC1jb3JlLXRjbCBcCi0gICAgcGFja2FnZWdyb3VwLWNvcmUtbHNiLW1pc2MgXAotICAgIHBhY2thZ2Vncm91cC1jb3JlLWxzYi1jb3JlIFwKLSAgICBwYWNrYWdlZ3JvdXAtY29yZS1sc2ItcGVybCBcCi0gICAgcGFja2FnZWdyb3VwLWNvcmUtbHNiLXB5dGhvbiBcCi0gICAgcGFja2FnZWdyb3VwLWNvcmUtbHNiLWRlc2t0b3AgXAotICAgIHBhY2thZ2Vncm91cC1jb3JlLWxzYi1ydW50aW1lLWFkZCBcCi0gICAgIgotCi0KLVJERVBFTkRTX3BhY2thZ2Vncm91cC1jb3JlLWxzYiA9ICJcCi0gICAgcGFja2FnZWdyb3VwLWNvcmUtc3lzLWV4dGVuZGVkIFwKLSAgICBwYWNrYWdlZ3JvdXAtY29yZS1kYiBcCi0gICAgcGFja2FnZWdyb3VwLWNvcmUtcGVybCBcCi0gICAgcGFja2FnZWdyb3VwLWNvcmUtcHl0aG9uIFwKLSAgICBwYWNrYWdlZ3JvdXAtY29yZS10Y2wgXAotICAgIHBhY2thZ2Vncm91cC1jb3JlLWxzYi1taXNjIFwKLSAgICBwYWNrYWdlZ3JvdXAtY29yZS1sc2ItY29yZSBcCi0gICAgcGFja2FnZWdyb3VwLWNvcmUtbHNiLXBlcmwgXAotICAgIHBhY2thZ2Vncm91cC1jb3JlLWxzYi1weXRob24gXAotICAgIHBhY2thZ2Vncm91cC1jb3JlLWxzYi1kZXNrdG9wIFwKLSAgICBwYWNrYWdlZ3JvdXAtY29yZS1sc2ItcnVudGltZS1hZGQgXAotICAgICIKLQotCi1SREVQRU5EU19wYWNrYWdlZ3JvdXAtY29yZS1zeXMtZXh0ZW5kZWQgPSAiXAotICAgIGN1cmwgXAotICAgIGRoY3AtY2xpZW50IFwKLSAgICBoZHBhcm0gXAotICAgIGxpZ2h0dHBkIFwKLSAgICBsaWJhaW8gXAotICAgIGxyenN6IFwKLSAgICBsem8gXAotICAgIG1jIFwKLSAgICBtYy1maXNoIFwKLSAgICBtYy1oZWxwZXJzIFwKLSAgICBtYy1oZWxwZXJzLXBlcmwgXAotICAgIG1kYWRtIFwKLSAgICBtaW5pY29tIFwKLSAgICBwYXJ0ZWQgXAotICAgIHF1b3RhIFwKLSAgICBzY3JlZW4gXAotICAgIHNldHNlcmlhbCBcCi0gICAgc3lzc3RhdCBcCi0gICAgJHtAYmIudXRpbHMuY29udGFpbnMoJ0RJU1RST19GRUFUVVJFUycsICdzeXN0ZW1kJywgJycsICd1ZGV2LWV4dHJhY29uZicsIGQpfSBcCi0gICAgdW56aXAgXAotICAgIHdhdGNoZG9nIFwKLSAgICB3Z2V0IFwKLSAgICB3aGljaCBcCi0gICAgeGluZXRkIFwKLSAgICB6aXAgXAotICAgICIKLQotUkRFUEVORFNfcGFja2FnZWdyb3VwLWNvcmUtZGIgPSAiXAotICAgIGRiIFwKLSAgICBzcWxpdGUzIFwKLSAgICAiCi0KLVJERVBFTkRTX3BhY2thZ2Vncm91cC1jb3JlLXBlcmwgPSAiXAotICAgIGdkYm0gXAotICAgIHBlcmwgXAotICAgIHpsaWIgXAotICAgICIKLQotCi1SREVQRU5EU19wYWNrYWdlZ3JvdXAtY29yZS1weXRob24gPSAiXAotICAgIGV4cGF0IFwKLSAgICBnZGJtIFwKLSAgICBnbXAgXAotICAgIG5jdXJzZXMgXAotICAgIG9wZW5zc2wgXAotICAgIHB5dGhvbiBcCi0gICAgcmVhZGxpbmUgXAotICAgIHppcCBcCi0gICAgIgotCi1SREVQRU5EU19wYWNrYWdlZ3JvdXAtY29yZS10Y2wgPSAiXAotICAgIHRjbCBcCi0gICAgIgotCi0jIE1pc2NlbGxhbmVvdXMgcGFja2FnZXMgcmVxdWlyZWQgYnkgTFNCIChvciBMU0IgdGVzdHMpCi1SREVQRU5EU19wYWNrYWdlZ3JvdXAtY29yZS1sc2ItbWlzYyA9ICJcCi0gICAgY2hrY29uZmlnIFwKLSAgICBnZXR0ZXh0IFwKLSAgICBnZXR0ZXh0LXJ1bnRpbWUgXAotICAgIGdyb2ZmIFwKLSAgICBsc2Jpbml0c2NyaXB0cyBcCi0gICAgbHNidGVzdCBcCi0gICAgbHNvZiBcCi0gICAgc3RyYWNlIFwKLSAgICBsaWJ1c2IxIFwKLSAgICB1c2J1dGlscyBcCi0gICAgcnBtIFwKLSAgICAiCi0KLVNVTU1BUllfcGFja2FnZWdyb3VwLWNvcmUtbHNiLWNvcmUgPSAiTFNCIENvcmUiCi1ERVNDUklQVElPTl9wYWNrYWdlZ3JvdXAtY29yZS1sc2ItY29yZSA9ICJQYWNrYWdlcyByZXF1aXJlZCB0byBzdXBwb3J0IGNvbW1hbmRzL2xpYnJhcmllcyBcCi0gICAgc3BlY2lmaWVkIGluIHRoZSBMU0IgQ29yZSBzcGVjaWZpY2F0aW9uIgotUkRFUEVORFNfcGFja2FnZWdyb3VwLWNvcmUtbHNiLWNvcmUgPSAiXAotICAgIGF0IFwKLSAgICBiYXNoIFwKLSAgICBiYyBcCi0gICAgYmludXRpbHMgXAotICAgIGJpbnV0aWxzLXN5bWxpbmtzIFwKLSAgICBiemlwMiBcCi0gICAgY29yZXV0aWxzIFwKLSAgICBjcGlvIFwKLSAgICBjcm9uaWUgXAotICAgIGN1cHMgXAotICAgIGRpZmZ1dGlscyBcCi0gICAgZWQgXAotICAgIGdsaWJjLXV0aWxzIFwKLSAgICBlbGZ1dGlscyBcCi0gICAgZmlsZSBcCi0gICAgZmluZHV0aWxzIFwKLSAgICBmb250Y29uZmlnLXV0aWxzIFwKLSAgICBmb29tYXRpYy1maWx0ZXJzIFwKLSAgICBnYXdrIFwKLSAgICBnaG9zdHNjcmlwdCBcCi0gICAgZ3JlcCBcCi0gICAgZ3ppcCBcCi0gICAgbG9jYWxlZGVmIFwKLSAgICBsc2IgXAotICAgIG00IFwKLSAgICBtYWtlIFwKLSAgICBtYW4gXAotICAgIG1hbi1wYWdlcyBcCi0gICAgbXNtdHAgXAotICAgIHBhdGNoIFwKLSAgICBwcm9jcHMgXAotICAgIHBzbWlzYyBcCi0gICAgc2VkIFwKLSAgICBzaGFkb3cgXAotICAgIHRhciBcCi0gICAgdGltZSBcCi0gICAgdXRpbC1saW51eCBcCi0gICAgeGRnLXV0aWxzIFwKLSAgICBcCi0gICAgZ2xpYmMgXAotICAgIGxpYmdjYyBcCi0gICAgbGlicGFtIFwKLSAgICBsaWJ4bWwyIFwKLSAgICBuY3Vyc2VzIFwKLSAgICB6bGliIFwKLSAgICBuc3ByIFwKLSAgICBuc3MgXAotIgotCi1TVU1NQVJZX3BhY2thZ2Vncm91cC1jb3JlLWxzYi1wZXJsID0gIkxTQiBSdW50aW1lIExhbmd1YWdlcyAoUGVybCkiCi1ERVNDUklQVElPTl9wYWNrYWdlZ3JvdXAtY29yZS1sc2ItcGVybCA9ICJQYWNrYWdlcyByZXF1aXJlZCB0byBzdXBwb3J0IGxpYnJhcmllcyBcCi0gICAgc3BlY2lmaWVkIGluIHRoZSBMU0IgUnVudGltZSBsYW5ndWFnZXMgc3BlY2lmaWNhdGlvbiAoUGVybCBwYXJ0cykiCi1SREVQRU5EU19wYWNrYWdlZ3JvdXAtY29yZS1sc2ItcGVybCA9ICJcCi0gICAgcGVybCBcCi0gICAgcGVybC1tb2R1bGVzIFwKLSAgICBwZXJsLW1pc2MgXAotICAgIHBlcmwtcG9kIFwKLSAgICBwZXJsLWRldiBcCi0gICAgcGVybC1kb2MgXAotIgotCi1TVU1NQVJZX3BhY2thZ2Vncm91cC1jb3JlLWxzYi1weXRob24gPSAiTFNCIFJ1bnRpbWUgTGFuZ3VhZ2VzIChQeXRob24pIgotREVTQ1JJUFRJT05fcGFja2FnZWdyb3VwLWNvcmUtbHNiLXB5dGhvbiA9ICJQYWNrYWdlcyByZXF1aXJlZCB0byBzdXBwb3J0IGxpYnJhcmllcyBcCi0gICAgc3BlY2lmaWVkIGluIHRoZSBMU0IgUnVudGltZSBsYW5ndWFnZXMgc3BlY2lmaWNhdGlvbiAoUHl0aG9uIHBhcnRzKSIKLVJERVBFTkRTX3BhY2thZ2Vncm91cC1jb3JlLWxzYi1weXRob24gPSAiXAotICAgIHB5dGhvbiBcCi0gICAgcHl0aG9uLW1vZHVsZXMgXAotICAgIHB5dGhvbi1taXNjIFwKLSIKLQotU1VNTUFSWV9wYWNrYWdlZ3JvdXAtY29yZS1sc2ItZGVza3RvcCA9ICJMU0IgRGVza3RvcCIKLURFU0NSSVBUSU9OX3BhY2thZ2Vncm91cC1jb3JlLWxzYi1kZXNrdG9wID0gIlBhY2thZ2VzIHJlcXVpcmVkIHRvIHN1cHBvcnQgbGlicmFyaWVzIFwKLSAgICBzcGVjaWZpZWQgaW4gdGhlIExTQiBEZXNrdG9wIHNwZWNpZmljYXRpb24iCi1SREVQRU5EU19wYWNrYWdlZ3JvdXAtY29yZS1sc2ItZGVza3RvcCA9ICJcCi0gICAgbGlieHQgXAotICAgIGxpYnh4Zjg2dm0gXAotICAgIGxpYmRybSBcCi0gICAgbGliZ2x1IFwKLSAgICBsaWJ4aSBcCi0gICAgbGlieHRzdCBcCi0gICAgbGlieDExLWxvY2FsZSBcCi0gICAgeG9yZy1taW5pbWFsLWZvbnRzIFwKLSAgICBnZGstcGl4YnVmLWxvYWRlci1pY28gXAotICAgIGdkay1waXhidWYtbG9hZGVyLWJtcCBcCi0gICAgZ2RrLXBpeGJ1Zi1sb2FkZXItYW5pIFwKLSAgICBnZGstcGl4YnVmLXhsaWIgXAotICAgIGxpYmVyYXRpb24tZm9udHMgXAotICAgIGFsc2EtbGliIFwKLSIKLQotUkRFUEVORFNfcGFja2FnZWdyb3VwLWNvcmUtbHNiLXJ1bnRpbWUtYWRkID0gIlwKLSAgICBsZGQgXAotICAgIHBhbS1wbHVnaW4td2hlZWwgXAotICAgIGUyZnNwcm9ncy1ta2UyZnMgXAotICAgIG1rZm9udGRpciBcCi0gICAgbGlidXJpLXBlcmwgXAotICAgIGxpYnhtbC1wYXJzZXItcGVybCBcCi0gICAgbGlieG1sLXBlcmwgXAotICAgIGxpYnhtbC1zYXgtcGVybCBcCi0gICAgZ2xpYmMtbG9jYWxlZGF0YXMgXAotICAgIGdsaWJjLWdjb252cyBcCi0gICAgZ2xpYmMtY2hhcm1hcHMgXAotICAgIGdsaWJjLWJpbmFyaWVzIFwKLSAgICBnbGliYy1sb2NhbGVkYXRhLXBvc2l4IFwKLSAgICBnbGliYy1leHRyYS1uc3MgXAotICAgIGdsaWJjLXBjcHJvZmlsZSBcCi0iCmRpZmYgLS1naXQgYS9wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC9zeXNzdGF0L3N5c3N0YXQuaW5jIGIvcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvc3lzc3RhdC9zeXNzdGF0LmluYwppbmRleCA1OTJjYmY0Li41YTdkMjExIDEwMDY0NAotLS0gYS9wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC9zeXNzdGF0L3N5c3N0YXQuaW5jCisrKyBiL3Bva3kvbWV0YS9yZWNpcGVzLWV4dGVuZGVkL3N5c3N0YXQvc3lzc3RhdC5pbmMKQEAgLTQsNyArNCw3IEBACiBMSUNFTlNFID0gIkdQTHYyKyIKIFNFQ1RJT04gPSAiY29uc29sZS91dGlscyIKIAotU1JDX1VSSSA9ICJodHRwOi8vcGFnZXNwZXJzby1vcmFuZ2UuZnIvc2ViYXN0aWVuLmdvZGFyZC9zeXNzdGF0LSR7UFZ9LnRhci54eiBcCitTUkNfVVJJID0gImh0dHA6Ly9wYWdlc3BlcnNvLW9yYW5nZS5mci9zZWJhc3RpZW4uZ29kYXJkLyR7QlB9LnRhci54eiBcCiAgICAgICAgICAgIGZpbGU6Ly85OV9zeXNzdGF0IFwKICAgICAgICAgICAgZmlsZTovL3N5c3N0YXQuc2VydmljZSBcCiAgICAgICAgICAgIgpAQCAtMjksNyArMjksNyBAQAogU1lTVEVNRF9BVVRPX0VOQUJMRSA9ICJlbmFibGUiCiAKIGRvX2NvbmZpZ3VyZV9wcmVwZW5kKCkgewotICAgIGV4cG9ydCBzYV9saWJfZGlyPSR7bGliZGlyfS9zYQorICAgIGV4cG9ydCBzYV9saWJfZGlyPSR7bGliZXhlY2Rpcn0vc2EKIH0KIAogZG9faW5zdGFsbCgpIHsKZGlmZiAtLWdpdCBhL3Bva3kvbWV0YS9yZWNpcGVzLWV4dGVuZGVkL3N5c3N0YXQvc3lzc3RhdF8xMi4xLjMuYmIgYi9wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC9zeXNzdGF0L3N5c3N0YXRfMTIuMS4zLmJiCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1ZGFmM2Y0Li4wMDAwMDAwCi0tLSBhL3Bva3kvbWV0YS9yZWNpcGVzLWV4dGVuZGVkL3N5c3N0YXQvc3lzc3RhdF8xMi4xLjMuYmIKKysrIC9kZXYvbnVsbApAQCAtMSw4ICswLDAgQEAKLXJlcXVpcmUgc3lzc3RhdC5pbmMKLQotTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vQ09QWUlORzttZDU9YTIzYTc0YjNmNGNhZjk2MTYyMzA3ODlkOTQyMTdhY2IiCi0KLVNSQ19VUkkgKz0gImZpbGU6Ly8wMDAxLUluY2x1ZGUtbmVlZGVkLWhlYWRlcnMtZXhwbGljaXRseS5wYXRjaCIKLQotU1JDX1VSSVttZDVzdW1dID0gIjBmOWI3M2Y2MGFiYTZmZDQ5ZGUzNDZiYzM4NDkwMmMzIgotU1JDX1VSSVtzaGEyNTZzdW1dID0gIjU1NDk4YmY4Mjc1NWJhOWZlZDNlN2RmNjFmZDI2ZjhmNTBkZDNlN2IzYjIyOWM3MzEwMjlhNGM4YWI1MWExYWEiCmRpZmYgLS1naXQgYS9wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC9zeXNzdGF0L3N5c3N0YXRfMTIuMS42LmJiIGIvcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvc3lzc3RhdC9zeXNzdGF0XzEyLjEuNi5iYgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44Y2Y4YzM2Ci0tLSAvZGV2L251bGwKKysrIGIvcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvc3lzc3RhdC9zeXNzdGF0XzEyLjEuNi5iYgpAQCAtMCwwICsxLDggQEAKK3JlcXVpcmUgc3lzc3RhdC5pbmMKKworTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vQ09QWUlORzttZDU9YTIzYTc0YjNmNGNhZjk2MTYyMzA3ODlkOTQyMTdhY2IiCisKK1NSQ19VUkkgKz0gImZpbGU6Ly8wMDAxLUluY2x1ZGUtbmVlZGVkLWhlYWRlcnMtZXhwbGljaXRseS5wYXRjaCIKKworU1JDX1VSSVttZDVzdW1dID0gImQ4ZTNiYmI5Yzg3M2RkMzcwZjZkMzM2NjRlMzI2NTcwIgorU1JDX1VSSVtzaGEyNTZzdW1dID0gImY3NTJmM2M0MDYxNTNhNmZjNDQ2NDk2ZjExMDI4NzI1MDVhY2UzZjA5MzFkOTc1YzFkNjY0YzgxZWMwOWYxMjkiCmRpZmYgLS1naXQgYS9wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC90ZXhpbmZvL3RleGluZm9fNi41LmJiIGIvcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvdGV4aW5mby90ZXhpbmZvXzYuNS5iYgppbmRleCBmOTY2NDU3Li41MGVhZTc3IDEwMDY0NAotLS0gYS9wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC90ZXhpbmZvL3RleGluZm9fNi41LmJiCisrKyBiL3Bva3kvbWV0YS9yZWNpcGVzLWV4dGVuZGVkL3RleGluZm8vdGV4aW5mb182LjUuYmIKQEAgLTQyLDcgKzQyLDkgQEAKIAogdGV4X3RleGluZm8gPSAidGV4bWYvdGV4L3RleGluZm8iCiAKLWluaGVyaXQgZ2V0dGV4dCBhdXRvdG9vbHMKK2luaGVyaXQgZ2V0dGV4dCBhdXRvdG9vbHMgbXVsdGlsaWJfc2NyaXB0CisKK01VTFRJTElCX1NDUklQVFMgPSAiJHtQTn06JHtiaW5kaXJ9L3RleGkyYW55IgogCiBFWFRSQV9BVVRPUkVDT05GICs9ICItSSAke1N9L2dudWxpYi9tNCIKIApkaWZmIC0tZ2l0IGEvcG9reS9tZXRhL3JlY2lwZXMtZ25vbWUvbGlic2VjcmV0L2xpYnNlY3JldF8wLjE4LjguYmIgYi9wb2t5L21ldGEvcmVjaXBlcy1nbm9tZS9saWJzZWNyZXQvbGlic2VjcmV0XzAuMTkuMC5iYgpzaW1pbGFyaXR5IGluZGV4IDgxJQpyZW5hbWUgZnJvbSBwb2t5L21ldGEvcmVjaXBlcy1nbm9tZS9saWJzZWNyZXQvbGlic2VjcmV0XzAuMTguOC5iYgpyZW5hbWUgdG8gcG9reS9tZXRhL3JlY2lwZXMtZ25vbWUvbGlic2VjcmV0L2xpYnNlY3JldF8wLjE5LjAuYmIKaW5kZXggNGFmNDdmZS4uN2RhOGU5MCAxMDA2NDQKLS0tIGEvcG9reS9tZXRhL3JlY2lwZXMtZ25vbWUvbGlic2VjcmV0L2xpYnNlY3JldF8wLjE4LjguYmIKKysrIGIvcG9reS9tZXRhL3JlY2lwZXMtZ25vbWUvbGlic2VjcmV0L2xpYnNlY3JldF8wLjE5LjAuYmIKQEAgLTgsOCArOCw4IEBACiAKIFBBQ0tBR0VDT05GSUdbbWFucGFnZXNdID0gIi0tZW5hYmxlLW1hbnBhZ2VzLCAtLWRpc2FibGUtbWFucGFnZXMsIGxpYnhzbHQtbmF0aXZlIHhtbHRvLW5hdGl2ZSIKIAotU1JDX1VSSVthcmNoaXZlLm1kNXN1bV0gPSAiZmVlNDAzOTg4NDQyZjQ5N2YzYzFkZmU3YjEyODg2OWMiCi1TUkNfVVJJW2FyY2hpdmUuc2hhMjU2c3VtXSA9ICIzYmZhODg5ZDI2MGUwZGJhYmNmNWI5OTY3ZjJhYWUxMmVkY2QyZGRjOWFkYzM2NWRlN2E1Y2M4NDBjMzExZDE1IgorU1JDX1VSSVthcmNoaXZlLm1kNXN1bV0gPSAiNDgzZDI5M2U3M2U3MjU3YzZkOWZjMTg1NzliMGUxZWEiCitTUkNfVVJJW2FyY2hpdmUuc2hhMjU2c3VtXSA9ICI4MDQ5YjA5YTRlNzM3OTExYWE2NDdlNTBhZWUzZDA2YjVkYjdhYTkwMjYwOGNhNDNhMGRkMTBkODNlMWQ2N2Y5IgogCiAjIGh0dHA6Ly9lcnJvcnMueW9jdG9wcm9qZWN0Lm9yZy9FcnJvcnMvRGV0YWlscy8yMDIyOC8KIEFSTV9JTlNUUlVDVElPTl9TRVRfYXJtdjQgPSAiYXJtIgpkaWZmIC0tZ2l0IGEvcG9reS9tZXRhL3JlY2lwZXMtZ3JhcGhpY3MvZWdsaW5mby9lZ2xpbmZvLWZiXzEuMC4wLmJiIGIvcG9reS9tZXRhL3JlY2lwZXMtZ3JhcGhpY3MvZWdsaW5mby9lZ2xpbmZvLWZiXzEuMC4wLmJiCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjY2NkZDIwLi4wMDAwMDAwCi0tLSBhL3Bva3kvbWV0YS9yZWNpcGVzLWdyYXBoaWNzL2VnbGluZm8vZWdsaW5mby1mYl8xLjAuMC5iYgorKysgL2Rldi9udWxsCkBAIC0xLDcgKzAsMCBAQAotRUdMSU5GT19QTEFURk9STSA/PSAiZmIiCi1FR0xJTkZPX0JJTkFSWV9OQU1FID89ICJlZ2xpbmZvLWZiIgotCi1yZXF1aXJlIGVnbGluZm8uaW5jCi0KLVNVTU1BUlkgKz0gIihGcmFtZWJ1ZmZlciB2ZXJzaW9uKSIKLUNYWEZMQUdTICs9ICItRE1FU0FfRUdMX05PX1gxMV9IRUFERVJTPTEiCmRpZmYgLS1naXQgYS9wb2t5L21ldGEvcmVjaXBlcy1ncmFwaGljcy9lZ2xpbmZvL2VnbGluZm8td2F5bGFuZF8xLjAuMC5iYiBiL3Bva3kvbWV0YS9yZWNpcGVzLWdyYXBoaWNzL2VnbGluZm8vZWdsaW5mby13YXlsYW5kXzEuMC4wLmJiCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4N2ExMzFhLi4wMDAwMDAwCi0tLSBhL3Bva3kvbWV0YS9yZWNpcGVzLWdyYXBoaWNzL2VnbGluZm8vZWdsaW5mby13YXlsYW5kXzEuMC4wLmJiCisrKyAvZGV2L251bGwKQEAgLTEsMTMgKzAsMCBAQAotRUdMSU5GT19QTEFURk9STSA/PSAid2F5bGFuZCIKLUVHTElORk9fQklOQVJZX05BTUUgPz0gImVnbGluZm8td2F5bGFuZCIKLQotcmVxdWlyZSBlZ2xpbmZvLmluYwotCi1ERVBFTkRTICs9ICJ3YXlsYW5kIgotCi1pbmhlcml0IGRpc3Ryb19mZWF0dXJlc19jaGVjawotCi0jIGRlcGVuZHMgb24gd2F5bGFuZAotUkVRVUlSRURfRElTVFJPX0ZFQVRVUkVTICs9ICJ3YXlsYW5kIgotCi1TVU1NQVJZICs9ICIoV2F5bGFuZCB2ZXJzaW9uKSIKZGlmZiAtLWdpdCBhL3Bva3kvbWV0YS9yZWNpcGVzLWdyYXBoaWNzL2VnbGluZm8vZWdsaW5mby14MTFfMS4wLjAuYmIgYi9wb2t5L21ldGEvcmVjaXBlcy1ncmFwaGljcy9lZ2xpbmZvL2VnbGluZm8teDExXzEuMC4wLmJiCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0OGFiODgwLi4wMDAwMDAwCi0tLSBhL3Bva3kvbWV0YS9yZWNpcGVzLWdyYXBoaWNzL2VnbGluZm8vZWdsaW5mby14MTFfMS4wLjAuYmIKKysrIC9kZXYvbnVsbApAQCAtMSwxMyArMCwwIEBACi1FR0xJTkZPX1BMQVRGT1JNID89ICJ4MTEiCi1FR0xJTkZPX0JJTkFSWV9OQU1FID89ICJlZ2xpbmZvLXgxMSIKLQotcmVxdWlyZSBlZ2xpbmZvLmluYwotCi1ERVBFTkRTICs9ICJ2aXJ0dWFsL2xpYngxMSIKLQotaW5oZXJpdCBkaXN0cm9fZmVhdHVyZXNfY2hlY2sKLQotIyBkZXBlbmRzIG9uIHZpcnR1YWwvbGlieDExCi1SRVFVSVJFRF9ESVNUUk9fRkVBVFVSRVMgKz0gIngxMSIKLQotU1VNTUFSWSArPSAiKFgxMSB2ZXJzaW9uKSIKZGlmZiAtLWdpdCBhL3Bva3kvbWV0YS9yZWNpcGVzLWdyYXBoaWNzL2VnbGluZm8vZWdsaW5mby5pbmMgYi9wb2t5L21ldGEvcmVjaXBlcy1ncmFwaGljcy9lZ2xpbmZvL2VnbGluZm8uaW5jCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2ZGNiMGM1Li4wMDAwMDAwCi0tLSBhL3Bva3kvbWV0YS9yZWNpcGVzLWdyYXBoaWNzL2VnbGluZm8vZWdsaW5mby5pbmMKKysrIC9kZXYvbnVsbApAQCAtMSwzOCArMCwwIEBACi1TVU1NQVJZID0gIlV0aWxpdHkgZm9yIHByaW50aW5nIGluZm9ybWF0aW9uIEVHTCBhbmQgaXRzIGNsaWVudCBBUElzIChPcGVuR0wsIE9wZW5HTCBFUywgT3BlblZHKSIKLVNFQ1RJT04gPSAiZ3JhcGhpY3MiCi1MSUNFTlNFID0gIlpsaWIiCi1IT01FUEFHRSA9ICJodHRwczovL2dpdGh1Yi5jb20vZHYxL2VnbGluZm8iCi1MSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9MSUNFTlNFO21kNT04ZDRmMzNiYzNhZGQ5NzZmN2RmYWU4NWRhYjY2ZjAzYyIKLQotREVQRU5EUyA9ICJ2aXJ0dWFsL2VnbCIKLQotU1JDX1VSSSA9ICJnaXQ6Ly9naXRodWIuY29tL2R2MS9lZ2xpbmZvLmdpdDticmFuY2g9bWFzdGVyIFwKLSAgICAgICAgICAgZmlsZTovL3dhZiBcCi0gICAgICAgICAgIGZpbGU6Ly8wMDAxLUFkZC1TVEFHSU5HX0lOQ0RJUi10by1zZWFyY2hwYXRoLWZvci1lZ2wtaGVhZGVycy5wYXRjaCBcCi0gICAgICAgICAgIGZpbGU6Ly8wMDAxLUNoZWNrLWZvci1saWJlZ2wtdXNpbmctcGtnLWNvbmZpZy5wYXRjaCBcCi0gICAgICAgICAgICIKLVNSQ1JFViA9ICIyMjM4MTdlZTM3OTg4MDQyZGI3ODczY2ZiNWIyZTg5OWRmZTM1YzEwIgotCi1DVkVfUFJPRFVDVCA9ICJlZ2xpbmZvIgotCi1TID0gIiR7V09SS0RJUn0vZ2l0IgotCi1pbmhlcml0IHdhZiBkaXN0cm9fZmVhdHVyZXNfY2hlY2sgcGtnY29uZmlnCi0jIGRlcGVuZHMgb24gdmlydHVhbC9lZ2wKLVJFUVVJUkVEX0RJU1RST19GRUFUVVJFUyA/PSAib3BlbmdsIgotCi0jIEJTUCBsYXllcnMgc2hvdWxkIGFkZCAuYmJhcHBlbmQgZmlsZXMgZm9yIHRoZSAteDExIGFuZCAtZmIgLmJiIHJlY2lwZXMsIHdoaWNoCi0jIGFwcGVuZCB0aGUgcmVzcGVjdGl2ZSBFR0wvT3BlbkdMRVMvT3BlblZHIGxpYnJhcmllcyB0byBERVBFTkRTIGFuZCBzZXQKLSMgRUdMX0RFVklDRSBhcyBhcHByb3ByaWF0ZS4KLUVHTElORk9fREVWSUNFID89ICJnZW5lcmljIgotCi1FWFRSQV9PRUNPTkYgPSAiLS1wbGF0Zm9ybT0ke0VHTElORk9fUExBVEZPUk19IFwKLSAgICAgICAgICAgICAgICAtLWRldmljZT0ke0VHTElORk9fREVWSUNFfSBcCi0gICAgICAgICAgICAgICAgLS1zeXNyb290ICR7U1RBR0lOR19ESVJfVEFSR0VUfSIKLQotZG9fY29uZmlndXJlX3ByZXBlbmQoKSB7Ci0JaW5zdGFsbCAtRCAtbSAwNzU1ICR7V09SS0RJUn0vd2FmICR7U30vd2FmCi19Ci1kb19pbnN0YWxsX2FwcGVuZCgpIHsKLQltdiAke0R9LyR7YmluZGlyfS9lZ2xpbmZvICR7RH0vJHtiaW5kaXJ9LyR7RUdMSU5GT19CSU5BUllfTkFNRX0KLX0KZGlmZiAtLWdpdCBhL3Bva3kvbWV0YS9yZWNpcGVzLWdyYXBoaWNzL2VnbGluZm8vZmlsZXMvMDAwMS1BZGQtU1RBR0lOR19JTkNESVItdG8tc2VhcmNocGF0aC1mb3ItZWdsLWhlYWRlcnMucGF0Y2ggYi9wb2t5L21ldGEvcmVjaXBlcy1ncmFwaGljcy9lZ2xpbmZvL2ZpbGVzLzAwMDEtQWRkLVNUQUdJTkdfSU5DRElSLXRvLXNlYXJjaHBhdGgtZm9yLWVnbC1oZWFkZXJzLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2MTMyN2ViLi4wMDAwMDAwCi0tLSBhL3Bva3kvbWV0YS9yZWNpcGVzLWdyYXBoaWNzL2VnbGluZm8vZmlsZXMvMDAwMS1BZGQtU1RBR0lOR19JTkNESVItdG8tc2VhcmNocGF0aC1mb3ItZWdsLWhlYWRlcnMucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwzMyArMCwwIEBACi1Gcm9tIDk5YTU3ODRkMzNhZDVlMGU2ZmEwMDMzOGQyNzMyY2JjY2FkNzY2MWMgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBLaGVtIFJhaiA8cmFqLmtoZW1AZ21haWwuY29tPgotRGF0ZTogV2VkLCAxMyBKYW4gMjAxNiAxNjowODoyMiAtMDgwMAotU3ViamVjdDogW1BBVENIXSBBZGQgU1RBR0lOR19JTkNESVIgdG8gc2VhcmNocGF0aCBmb3IgZWdsIGhlYWRlcnMKLQotYmNtX2hvc3QuaCBpcyBpbiBzdGFuZGFyZCBpbmNsdWRlZGlyIGluIHN5c3Jvb3QKLWFkZCB0aGF0IHRvIGhlYWRlciBzZWFyY2ggcGF0aHMuCi0KLVNpZ25lZC1vZmYtYnk6IEtoZW0gUmFqIDxyYWoua2hlbUBnbWFpbC5jb20+Ci0tLS0KLVVwc3RyZWFtLVN0YXR1czogU3VibWl0dGVkCi0KLSB3c2NyaXB0IHwgMyArKy0KLSAxIGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCi0KLWRpZmYgLS1naXQgYS93c2NyaXB0IGIvd3NjcmlwdAotaW5kZXggMTk1ZTI0Ny4uMGY2ZWM1MyAxMDA2NDQKLS0tLSBhL3dzY3JpcHQKLSsrKyBiL3dzY3JpcHQKLUBAIC0xNzcsOSArMTc3LDEwIEBAIGRlZiBjb25maWd1cmVfcmFzcGJlcnJ5cGlfZGV2aWNlKGNvbmYsIHBsYXRmb3JtKToKLSAJY29uZi5jaGVja19jeHgobWFuZGF0b3J5ID0gMSwgbGliID0gWydHTEVTdjInLCAnRUdMJywgJ2JjbV9ob3N0J10sIHVzZWxpYl9zdG9yZSA9ICdFR0wnKQotIAlpbXBvcnQgb3MKLSAJc3lzcm9vdCA9IGNvbmYub3B0aW9ucy5zeXNyb290ICsgY29uZi5vcHRpb25zLnByZWZpeAotKyAgICAgICAgc3RkX2luY2x1ZGVfcGF0aCA9IG9zLnBhdGguam9pbihzeXNyb290LCAnaW5jbHVkZScpCi0gCXZjb3NfcHRocmVhZF9wYXRoID0gb3MucGF0aC5qb2luKHN5c3Jvb3QsICdpbmNsdWRlL2ludGVyZmFjZS92Y29zL3B0aHJlYWRzJykKLSAJdmNtc19ob3N0X3BhdGggPSBvcy5wYXRoLmpvaW4oc3lzcm9vdCwgJ2luY2x1ZGUvaW50ZXJmYWNlL3ZtY3NfaG9zdC9saW51eCcpCi0tCWlmIG5vdCBjb25mLmNoZWNrX2N4eChtYW5kYXRvcnkgPSAwLCBoZWFkZXJfbmFtZSA9IFsndmNvc19wbGF0Zm9ybV90eXBlcy5oJywgJ0VHTC9lZ2wuaCcsICdiY21faG9zdC5oJ10sIGluY2x1ZGVzID0gW3Zjb3NfcHRocmVhZF9wYXRoLCB2Y21zX2hvc3RfcGF0aF0sIHVzZWxpYl9zdG9yZSA9ICdFR0wnKToKLSsJaWYgbm90IGNvbmYuY2hlY2tfY3h4KG1hbmRhdG9yeSA9IDAsIGhlYWRlcl9uYW1lID0gWyd2Y29zX3BsYXRmb3JtX3R5cGVzLmgnLCAnRUdML2VnbC5oJywgJ2JjbV9ob3N0LmgnXSwgaW5jbHVkZXMgPSBbdmNvc19wdGhyZWFkX3BhdGgsIHZjbXNfaG9zdF9wYXRoLCBzdGRfaW5jbHVkZV9wYXRoXSwgdXNlbGliX3N0b3JlID0gJ0VHTCcpOgotIAkJY29uZi5mYXRhbCgnQ2hlY2sgaWYgLS1wcmVmaXggYW5kIC0tc3lzcm9vdCBhcmUgc2V0IGNvcnJlY3RseS4nKQotIAljb25mLmVudlsnV0lUSF9BUElTJ10gPSBbXQotIAlpZiBjaGVja19nbGVzMihjb25mKToKLS0tIAotMi4xOS4xCmRpZmYgLS1naXQgYS9wb2t5L21ldGEvcmVjaXBlcy1ncmFwaGljcy9lZ2xpbmZvL2ZpbGVzLzAwMDEtQ2hlY2stZm9yLWxpYmVnbC11c2luZy1wa2ctY29uZmlnLnBhdGNoIGIvcG9reS9tZXRhL3JlY2lwZXMtZ3JhcGhpY3MvZWdsaW5mby9maWxlcy8wMDAxLUNoZWNrLWZvci1saWJlZ2wtdXNpbmctcGtnLWNvbmZpZy5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNTcyYzgwMS4uMDAwMDAwMAotLS0gYS9wb2t5L21ldGEvcmVjaXBlcy1ncmFwaGljcy9lZ2xpbmZvL2ZpbGVzLzAwMDEtQ2hlY2stZm9yLWxpYmVnbC11c2luZy1wa2ctY29uZmlnLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMzYgKzAsMCBAQAotRnJvbSAxN2Y1ZDJmNTc0MjM2ZjhjMzQ1OWY5ZWZhZGVmMmYwZjYyMjBhNGRkIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogS2hlbSBSYWogPHJhai5raGVtQGdtYWlsLmNvbT4KLURhdGU6IE1vbiwgMTMgQXVnIDIwMTggMTU6NDY6NTMgLTA3MDAKLVN1YmplY3Q6IFtQQVRDSF0gQ2hlY2sgZm9yIGxpYmVnbCB1c2luZyBwa2ctY29uZmlnCi0KLVVwc3RyZWFtLVN0YXR1czogUGVuZGluZwotU2lnbmVkLW9mZi1ieTogS2hlbSBSYWogPHJhai5raGVtQGdtYWlsLmNvbT4KLVtSb21hbjogcGF0Y2ggaGFzIGJlZW4gcmViYXNlZCB0byAyMjM4MTdlZTM3OTggKCJBZGQgV2F5bGFuZCBzdXBwb3J0IikKLSB0cml2aWFsIG1lcmdlIGNvbmZsaWN0cyByZXNvbHZlZF0KLVNpZ25lZC1vZmYtYnk6IFJvbWFuIFN0cmF0aWllbmtvIDxyb21hbi5zdHJhdGlpZW5rb0BnbG9iYWxsb2dpYy5jb20+Ci0tLS0KLSB3c2NyaXB0IHwgNyArLS0tLS0tCi0gMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCA2IGRlbGV0aW9ucygtKQotCi1kaWZmIC0tZ2l0IGEvd3NjcmlwdCBiL3dzY3JpcHQKLWluZGV4IDBmNmVjNTMuLjQwMWY2MmUgMTAwNjQ0Ci0tLS0gYS93c2NyaXB0Ci0rKysgYi93c2NyaXB0Ci1AQCAtMTc0LDE0ICsxNzQsOSBAQCBkZWYgY29uZmlndXJlX3Jhc3BiZXJyeXBpX2RldmljZShjb25mLCBwbGF0Zm9ybSk6Ci0gCWVsc2U6Ci0gCQljb25mLmZhdGFsKCdVbnN1cHBvcnRlZCBSYXNwYmVycnkgUGkgcGxhdGZvcm0gIiVzIicgJSBwbGF0Zm9ybSkKLSAJCXJldHVybgotLQljb25mLmNoZWNrX2N4eChtYW5kYXRvcnkgPSAxLCBsaWIgPSBbJ0dMRVN2MicsICdFR0wnLCAnYmNtX2hvc3QnXSwgdXNlbGliX3N0b3JlID0gJ0VHTCcpCi0rCWNvbmYuY2hlY2tfY2ZnKHBhY2thZ2U9J2VnbCcsIGFyZ3M9Jy0tbGlicyAtLWNmbGFncycpCi0gCWltcG9ydCBvcwotIAlzeXNyb290ID0gY29uZi5vcHRpb25zLnN5c3Jvb3QgKyBjb25mLm9wdGlvbnMucHJlZml4Ci0tICAgICAgICBzdGRfaW5jbHVkZV9wYXRoID0gb3MucGF0aC5qb2luKHN5c3Jvb3QsICdpbmNsdWRlJykKLS0JdmNvc19wdGhyZWFkX3BhdGggPSBvcy5wYXRoLmpvaW4oc3lzcm9vdCwgJ2luY2x1ZGUvaW50ZXJmYWNlL3Zjb3MvcHRocmVhZHMnKQotLQl2Y21zX2hvc3RfcGF0aCA9IG9zLnBhdGguam9pbihzeXNyb290LCAnaW5jbHVkZS9pbnRlcmZhY2Uvdm1jc19ob3N0L2xpbnV4JykKLS0JaWYgbm90IGNvbmYuY2hlY2tfY3h4KG1hbmRhdG9yeSA9IDAsIGhlYWRlcl9uYW1lID0gWyd2Y29zX3BsYXRmb3JtX3R5cGVzLmgnLCAnRUdML2VnbC5oJywgJ2JjbV9ob3N0LmgnXSwgaW5jbHVkZXMgPSBbdmNvc19wdGhyZWFkX3BhdGgsIHZjbXNfaG9zdF9wYXRoLCBzdGRfaW5jbHVkZV9wYXRoXSwgdXNlbGliX3N0b3JlID0gJ0VHTCcpOgotLQkJY29uZi5mYXRhbCgnQ2hlY2sgaWYgLS1wcmVmaXggYW5kIC0tc3lzcm9vdCBhcmUgc2V0IGNvcnJlY3RseS4nKQotIAljb25mLmVudlsnV0lUSF9BUElTJ10gPSBbXQotIAlpZiBjaGVja19nbGVzMihjb25mKToKLSAJCWNvbmYuZW52WydXSVRIX0FQSVMnXSArPSBbJ0dMRVMxJywgJ0dMRVMyJ10KLS0tIAotMi4xOS4xCmRpZmYgLS1naXQgYS9wb2t5L21ldGEvcmVjaXBlcy1ncmFwaGljcy9lZ2xpbmZvL2ZpbGVzL3dhZiBiL3Bva3kvbWV0YS9yZWNpcGVzLWdyYXBoaWNzL2VnbGluZm8vZmlsZXMvd2FmCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwNGRkZDlmLi4wMDAwMDAwCi0tLSBhL3Bva3kvbWV0YS9yZWNpcGVzLWdyYXBoaWNzL2VnbGluZm8vZmlsZXMvd2FmCisrKyAvZGV2L251bGwKQEAgLTEsMTY5ICswLDAgQEAKLSMhL3Vzci9iaW4vZW52IHB5dGhvbgotIyBlbmNvZGluZzogbGF0aW4tMQotIyBUaG9tYXMgTmFneSwgMjAwNS0yMDE4Ci0jCi0iIiIKLVJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi1hcmUgbWV0OgotCi0xLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotCi0yLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLQotMy4gVGhlIG5hbWUgb2YgdGhlIGF1dGhvciBtYXkgbm90IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzCi0gICBkZXJpdmVkIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLQotVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQVVUSE9SICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SCi1JTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAotV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQotRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsCi1JTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKLShJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUgotU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pCi1IT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsCi1TVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcKLUlOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRQotUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0iIiIKLQotaW1wb3J0IG9zLCBzeXMsIGluc3BlY3QKLQotVkVSU0lPTj0iMi4wLjExIgotUkVWSVNJT049IjQxYjY5YjQ1ZjhhYTQ0NWRjZTA2NmE0YWVjM2NkYjc1IgotR0lUPSJmZTAzYzZmYTQ3MGYwYmMzYzA4NmJhYWZlZDhjNmI0YjZkMjhhMjQ1IgotSU5TVEFMTD0nJwotQzE9JyM0JwotQzI9JyMqJwotQzM9JyMpJwotY3dkID0gb3MuZ2V0Y3dkKCkKLWpvaW4gPSBvcy5wYXRoLmpvaW4KLQotCi1XQUY9J3dhZicKLWRlZiBiKHgpOgotCXJldHVybiB4Ci1pZiBzeXMuaGV4dmVyc2lvbj4weDMwMDAwMGY6Ci0JV0FGPSd3YWYzJwotCWRlZiBiKHgpOgotCQlyZXR1cm4geC5lbmNvZGUoKQotCi1kZWYgZXJyKG0pOgotCXByaW50KCgnXDAzM1s5MW1FcnJvcjogJXNcMDMzWzBtJyAlIG0pKQotCXN5cy5leGl0KDEpCi0KLWRlZiB1bnBhY2tfd2FmZGlyKGRpciwgc3JjKToKLQlmID0gb3BlbihzcmMsJ3JiJykKLQljID0gJ2NvcnJ1cHQgYXJjaGl2ZSAoJWQpJwotCXdoaWxlIDE6Ci0JCWxpbmUgPSBmLnJlYWRsaW5lKCkKLQkJaWYgbm90IGxpbmU6IGVycigncnVuIHdhZi1saWdodCBmcm9tIGEgZm9sZGVyIGNvbnRhaW5pbmcgd2FmbGliJykKLQkJaWYgbGluZSA9PSBiKCcjPT0+XG4nKToKLQkJCXR4dCA9IGYucmVhZGxpbmUoKQotCQkJaWYgbm90IHR4dDogZXJyKGMgJSAxKQotCQkJaWYgZi5yZWFkbGluZSgpICE9IGIoJyM8PT1cbicpOiBlcnIoYyAlIDIpCi0JCQlicmVhawotCWlmIG5vdCB0eHQ6IGVycihjICUgMykKLQl0eHQgPSB0eHRbMTotMV0ucmVwbGFjZShiKEMxKSwgYignXG4nKSkucmVwbGFjZShiKEMyKSwgYignXHInKSkucmVwbGFjZShiKEMzKSwgYignXHgwMCcpKQotCi0JaW1wb3J0IHNodXRpbCwgdGFyZmlsZQotCXRyeTogc2h1dGlsLnJtdHJlZShkaXIpCi0JZXhjZXB0IE9TRXJyb3I6IHBhc3MKLQl0cnk6Ci0JCWZvciB4IGluICgnVG9vbHMnLCAnZXh0cmFzJyk6Ci0JCQlvcy5tYWtlZGlycyhqb2luKGRpciwgJ3dhZmxpYicsIHgpKQotCWV4Y2VwdCBPU0Vycm9yOgotCQllcnIoIkNhbm5vdCB1bnBhY2sgd2FmIGxpYiBpbnRvICVzXG5Nb3ZlIHdhZiBpbiBhIHdyaXRhYmxlIGRpcmVjdG9yeSIgJSBkaXIpCi0KLQlvcy5jaGRpcihkaXIpCi0JdG1wID0gJ3QuZ3onCi0JdCA9IG9wZW4odG1wLCd3YicpCi0JdHJ5OiB0LndyaXRlKHR4dCkKLQlmaW5hbGx5OiB0LmNsb3NlKCkKLQotCXRyeToKLQkJdCA9IHRhcmZpbGUub3Blbih0bXApCi0JZXhjZXB0OgotCQl0cnk6Ci0JCQlvcy5zeXN0ZW0oJ2d6aXAgLWQgdC5neicpCi0JCQl0ID0gdGFyZmlsZS5vcGVuKCd0JykKLQkJCXRtcCA9ICd0JwotCQlleGNlcHQ6Ci0JCQlvcy5jaGRpcihjd2QpCi0JCQl0cnk6IHNodXRpbC5ybXRyZWUoZGlyKQotCQkJZXhjZXB0IE9TRXJyb3I6IHBhc3MKLQkJCWVycigiV2FmIGNhbm5vdCBiZSB1bnBhY2tlZCwgY2hlY2sgdGhhdCBiemlwMiBzdXBwb3J0IGlzIHByZXNlbnQiKQotCi0JdHJ5OgotCQlmb3IgeCBpbiB0OiB0LmV4dHJhY3QoeCkKLQlmaW5hbGx5OgotCQl0LmNsb3NlKCkKLQotCWZvciB4IGluICgnVG9vbHMnLCAnZXh0cmFzJyk6Ci0JCW9zLmNobW9kKGpvaW4oJ3dhZmxpYicseCksIDQ5MykKLQotCWlmIHN5cy5oZXh2ZXJzaW9uPDB4MzAwMDAwZjoKLQkJc3lzLnBhdGggPSBbam9pbihkaXIsICd3YWZsaWInKV0gKyBzeXMucGF0aAotCQlpbXBvcnQgZml4cHkyCi0JCWZpeHB5Mi5maXhkaXIoZGlyKQotCi0Jb3MucmVtb3ZlKHRtcCkKLQlvcy5jaGRpcihjd2QpCi0KLQl0cnk6IGRpciA9IHVuaWNvZGUoZGlyLCAnbWJjcycpCi0JZXhjZXB0OiBwYXNzCi0JdHJ5OgotCQlmcm9tIGN0eXBlcyBpbXBvcnQgd2luZGxsCi0JCXdpbmRsbC5rZXJuZWwzMi5TZXRGaWxlQXR0cmlidXRlc1coZGlyLCAyKQotCWV4Y2VwdDoKLQkJcGFzcwotCi1kZWYgdGVzdChkaXIpOgotCXRyeToKLQkJb3Muc3RhdChqb2luKGRpciwgJ3dhZmxpYicpKQotCQlyZXR1cm4gb3MucGF0aC5hYnNwYXRoKGRpcikKLQlleGNlcHQgT1NFcnJvcjoKLQkJcGFzcwotCi1kZWYgZmluZF9saWIoKToKLQlzcmMgPSBvcy5wYXRoLmFic3BhdGgoaW5zcGVjdC5nZXRmaWxlKGluc3BlY3QuZ2V0bW9kdWxlKGVycikpKQotCWJhc2UsIG5hbWUgPSBvcy5wYXRoLnNwbGl0KHNyYykKLQotCSNkZXZzIHVzZSAkV0FGRElSCi0Jdz10ZXN0KG9zLmVudmlyb24uZ2V0KCdX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ei9oYXJmYnV6el8yLjUuMy5iYiBiL3Bva3kvbWV0YS9yZWNpcGVzLWdyYXBoaWNzL2hhcmZidXp6L2hhcmZidXp6XzIuNi4xLmJiCnNpbWlsYXJpdHkgaW5kZXggNzYlCnJlbmFtZSBmcm9tIHBva3kvbWV0YS9yZWNpcGVzLWdyYXBoaWNzL2hhcmZidXp6L2hhcmZidXp6XzIuNS4zLmJiCnJlbmFtZSB0byBwb2t5L21ldGEvcmVjaXBlcy1ncmFwaGljcy9oYXJmYnV6ei9oYXJmYnV6el8yLjYuMS5iYgppbmRleCBhOTBmZjUyLi5iMGY1NjViIDEwMDY0NAotLS0gYS9wb2t5L21ldGEvcmVjaXBlcy1ncmFwaGljcy9oYXJmYnV6ei9oYXJmYnV6el8yLjUuMy5iYgorKysgYi9wb2t5L21ldGEvcmVjaXBlcy1ncmFwaGljcy9oYXJmYnV6ei9oYXJmYnV6el8yLjYuMS5iYgpAQCAtNSwyNSArNSwyNSBAQAogU0VDVElPTiA9ICJsaWJzIgogTElDRU5TRSA9ICJNSVQiCiBMSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9DT1BZSU5HO21kNT1lMTFmNWMzMTQ5Y2RlYzRiYjMwOWJhYmIwMjBiMzJiOSBcCi0gICAgICAgICAgICAgICAgICAgIGZpbGU6Ly9zcmMvaGItdWNkLmNjO21kNT0zNDNmMTc5Nzk0NGRlNDlhYjJiNWY1Y2YzMTI2ZDNmMiIKKyAgICAgICAgICAgICAgICAgICAgZmlsZTovL3NyYy9oYi11Y2QuY2M7YmVnaW5saW5lPTE7ZW5kbGluZT0xNTttZDU9MjlkNGRjYjY0MTA0MjkxOTVkZjY3ZWZlMzM4MmQ4YmMiCiAKIERFUEVORFMgPSAiZ2xpYi0yLjAgY2Fpcm8gZm9udGNvbmZpZyBmcmVldHlwZSIKIAogU1JDX1VSSSA9ICJodHRwOi8vd3d3LmZyZWVkZXNrdG9wLm9yZy9zb2Z0d2FyZS9oYXJmYnV6ei9yZWxlYXNlLyR7QlB9LnRhci54eiIKLVNSQ19VUklbbWQ1c3VtXSA9ICIyOWEzMTBlNzRhOTBiNGU0ZjZkNjJmM2U3NGE1NzFlNSIKLVNSQ19VUklbc2hhMjU2c3VtXSA9ICJmZWQwMGRjNzk3YjdiYTNjYTk0MzIyNWYwYTg1NGJhYWVkNGMxNjQwZmZmOGEzMWQ0NTVjZDNiNWNhZWM4NTVjIgorU1JDX1VSSVttZDVzdW1dID0gIjg5Yjc1OGEyZWIxNGQ1NmE5NDQwNmNmOTE0YjYyMzg4IgorU1JDX1VSSVtzaGEyNTZzdW1dID0gImM2NTFmYjNmYWFhMzM4YWViMjgwNzI2ODM3YzIzODQwNjRjZGMxN2VmNDA1MzkyMjhkODhhMTI2MDk2MDg0NGYiCiAKIGluaGVyaXQgYXV0b3Rvb2xzIHBrZ2NvbmZpZyBsaWJfcGFja2FnZSBndGstZG9jCiAKIFBBQ0tBR0VDT05GSUcgPz89ICJpY3UiCiBQQUNLQUdFQ09ORklHW2ljdV0gPSAiLS13aXRoLWljdSwtLXdpdGhvdXQtaWN1LGljdSIKK1BBQ0tBR0VDT05GSUdbZ3JhcGhpdGVdID0gIi0td2l0aC1ncmFwaGl0ZTIsLS13aXRob3V0LWdyYXBoaXRlMixncmFwaGl0ZTIiCiAKIEVYVFJBX09FQ09ORiA9ICIgXAogICAgIC0td2l0aC1jYWlybyBcCiAgICAgLS13aXRoLWZvbnRjb25maWcgXAogICAgIC0td2l0aC1mcmVldHlwZSBcCiAgICAgLS13aXRoLWdsaWIgXAotICAgIC0td2l0aG91dC1ncmFwaGl0ZTIgXAogIgogCiBQQUNLQUdFUyA9KyAiJHtQTn0taWN1ICR7UE59LWljdS1kZXYiCmRpZmYgLS1naXQgYS9wb2t5L21ldGEvcmVjaXBlcy1ncmFwaGljcy9pbWFnZXMvY29yZS1pbWFnZS1jbHV0dGVyLmJiIGIvcG9reS9tZXRhL3JlY2lwZXMtZ3JhcGhpY3MvaW1hZ2VzL2NvcmUtaW1hZ2UtY2x1dHRlci5iYgppbmRleCBiMGYyNWNmLi5hNTk0NDYxIDEwMDY0NAotLS0gYS9wb2t5L21ldGEvcmVjaXBlcy1ncmFwaGljcy9pbWFnZXMvY29yZS1pbWFnZS1jbHV0dGVyLmJiCisrKyBiL3Bva3kvbWV0YS9yZWNpcGVzLWdyYXBoaWNzL2ltYWdlcy9jb3JlLWltYWdlLWNsdXR0ZXIuYmIKQEAgLTExLDMgKzExLDUgQEAKICAgICAiCiAKIGluaGVyaXQgY29yZS1pbWFnZQorCitRQl9NRU0gPSAnJHtAYmIudXRpbHMuY29udGFpbnMoIkRJU1RST19GRUFUVVJFUyIsICJvcGVuZ2wiLCAiLW0gNTEyIiwgIi1tIDI1NiIsIGQpfScKZGlmZiAtLWdpdCBhL3Bva3kvbWV0YS9yZWNpcGVzLWdyYXBoaWNzL2ltYWdlcy9jb3JlLWltYWdlLXgxMS5iYiBiL3Bva3kvbWV0YS9yZWNpcGVzLWdyYXBoaWNzL2ltYWdlcy9jb3JlLWltYWdlLXgxMS5iYgppbmRleCA4NDU1YmI4Li5jZDUzNzQ5IDEwMDY0NAotLS0gYS9wb2t5L21ldGEvcmVjaXBlcy1ncmFwaGljcy9pbWFnZXMvY29yZS1pbWFnZS14MTEuYmIKKysrIGIvcG9reS9tZXRhL3JlY2lwZXMtZ3JhcGhpY3MvaW1hZ2VzL2NvcmUtaW1hZ2UteDExLmJiCkBAIC03LDMgKzcsNSBAQAogaW5oZXJpdCBjb3JlLWltYWdlIGRpc3Ryb19mZWF0dXJlc19jaGVjawogCiBSRVFVSVJFRF9ESVNUUk9fRkVBVFVSRVMgPSAieDExIgorCitRQl9NRU0gPSAnJHtAYmIudXRpbHMuY29udGFpbnMoIkRJU1RST19GRUFUVVJFUyIsICJvcGVuZ2wiLCAiLW0gNTEyIiwgIi1tIDI1NiIsIGQpfScKZGlmZiAtLWdpdCBhL3Bva3kvbWV0YS9yZWNpcGVzLWdyYXBoaWNzL2pwZWcvbGlianBlZy10dXJib18yLjAuMi5iYiBiL3Bva3kvbWV0YS9yZWNpcGVzLWdyYXBoaWNzL2pwZWcvbGlianBlZy10dXJib18yLjAuMy5iYgpzaW1pbGFyaXR5IGluZGV4IDk0JQpyZW5hbWUgZnJvbSBwb2t5L21ldGEvcmVjaXBlcy1ncmFwaGljcy9qcGVnL2xpYmpwZWctdHVyYm9fMi4wLjIuYmIKcmVuYW1lIHRvIHBva3kvbWV0YS9yZWNpcGVzLWdyYXBoaWNzL2pwZWcvbGlianBlZy10dXJib18yLjAuMy5iYgppbmRleCBlMWRmNzU0Li4xY2Y4NTRkIDEwMDY0NAotLS0gYS9wb2t5L21ldGEvcmVjaXBlcy1ncmFwaGljcy9qcGVnL2xpYmpwZWctdHVyYm9fMi4wLjIuYmIKKysrIGIvcG9reS9tZXRhL3JlY2lwZXMtZ3JhcGhpY3MvanBlZy9saWJqcGVnLXR1cmJvXzIuMC4zLmJiCkBAIC0xNCw4ICsxNCw4IEBACiAgICAgICAgICAgIGZpbGU6Ly8wMDAxLWxpYmpwZWctdHVyYm8tZml4LXBhY2thZ2VfcWEtZXJyb3IucGF0Y2ggXAogICAgICAgICAgICAiCiAKLVNSQ19VUklbbWQ1c3VtXSA9ICI3OWY3NmZiZmIwYzYxMDk2MzEzMzI3NjJkMTBlMTZkMiIKLVNSQ19VUklbc2hhMjU2c3VtXSA9ICJhY2I4NTk5ZmU1Mzk5YWYxMTQyODdlZTU5MDdhZWE0NDU2ZjhmMmMxY2M5NmQyNmMyOGFlYmZkZjVlZTgyZmVkIgorU1JDX1VSSVttZDVzdW1dID0gImJkMDdmZGRmMjZmOWRlZjdiYWIwMjczOWViNjU1MTE2IgorU1JDX1VSSVtzaGEyNTZzdW1dID0gIjQyNDZkZTUwMDU0NGQ0ZWU0MDhlZTU3MDQ4YWE0YWFkYzZmMTY1ZmMxN2YxNDFkYTg3NjY5ZjIwZWQzMjQxYjciCiBVUFNUUkVBTV9DSEVDS19VUkkgPSAiaHR0cDovL3NvdXJjZWZvcmdlLm5ldC9wcm9qZWN0cy9saWJqcGVnLXR1cmJvL2ZpbGVzLyIKIFVQU1RSRUFNX0NIRUNLX1JFR0VYID0gIi9saWJqcGVnLXR1cmJvL2ZpbGVzLyg/UDxwdmVyPihcZCtbXC5cLV9dKikrKS8iCiAKZGlmZiAtLWdpdCBhL3Bva3kvbWV0YS9yZWNpcGVzLWdyYXBoaWNzL2xpYmVwb3h5L2xpYmVwb3h5XzEuNS4zLmJiIGIvcG9reS9tZXRhL3JlY2lwZXMtZ3JhcGhpY3MvbGliZXBveHkvbGliZXBveHlfMS41LjMuYmIKaW5kZXggZGQ3MDZhOS4uYzhkMTY1MCAxMDA2NDQKLS0tIGEvcG9reS9tZXRhL3JlY2lwZXMtZ3JhcGhpY3MvbGliZXBveHkvbGliZXBveHlfMS41LjMuYmIKKysrIGIvcG9reS9tZXRhL3JlY2lwZXMtZ3JhcGhpY3MvbGliZXBveHkvbGliZXBveHlfMS41LjMuYmIKQEAgLTIzLDggKzIzLDggQEAKIAogRVhUUkFfT0VNRVNPTiArPSAiLUR0ZXN0cz1mYWxzZSIKIAotUEFDS0FHRUNPTkZJR19jbGFzcy1uYXRpdmUgPSAiZWdsIgotUEFDS0FHRUNPTkZJR19jbGFzcy1uYXRpdmVzZGsgPSAiZWdsIgorUEFDS0FHRUNPTkZJR19jbGFzcy1uYXRpdmUgPSAiZWdsIHgxMSIKK1BBQ0tBR0VDT05GSUdfY2xhc3MtbmF0aXZlc2RrID0gImVnbCB4MTEiCiAKIEJCQ0xBU1NFWFRFTkQgPSAibmF0aXZlIG5hdGl2ZXNkayIKIApkaWZmIC0tZ2l0IGEvcG9reS9tZXRhL3JlY2lwZXMtZ3JhcGhpY3MvbWVzYS9tZXNhLmluYyBiL3Bva3kvbWV0YS9yZWNpcGVzLWdyYXBoaWNzL21lc2EvbWVzYS5pbmMKaW5kZXggZmNkMTk4OC4uZjkxNmU1NSAxMDA2NDQKLS0tIGEvcG9reS9tZXRhL3JlY2lwZXMtZ3JhcGhpY3MvbWVzYS9tZXNhLmluYworKysgYi9wb2t5L21ldGEvcmVjaXBlcy1ncmFwaGljcy9tZXNhL21lc2EuaW5jCkBAIC05OCw2ICs5OCw5IEBACiBQQUNLQUdFQ09ORklHW3YzZF0gPSAiIgogCiBHQUxMSVVNRFJJVkVSUyA9ICJzd3Jhc3QiCisjIGdhbGxpdW0gc3dyYXN0IHdhcyBmb3VuZCB0byBjcmFzaCBYb3JnIG9uIHN0YXJ0dXAgaW4geDMyIHFlbXUKK0dBTExJVU1EUklWRVJTX3g4Ni14MzIgPSAiIgorCiBHQUxMSVVNRFJJVkVSU19hcHBlbmQgPSIke0BiYi51dGlscy5jb250YWlucygnUEFDS0FHRUNPTkZJRycsICdldG5hdml2JywgJyxldG5hdml2JywgJycsIGQpfSIKIEdBTExJVU1EUklWRVJTX2FwcGVuZCA9IiR7QGJiLnV0aWxzLmNvbnRhaW5zKCdQQUNLQUdFQ09ORklHJywgJ2ttc3JvJywgJyxrbXNybycsICcnLCBkKX0iCiBHQUxMSVVNRFJJVkVSU19hcHBlbmQgPSIke0BiYi51dGlscy5jb250YWlucygnUEFDS0FHRUNPTkZJRycsICd2YzQnLCAnLHZjNCcsICcnLCBkKX0iCkBAIC0xMjIsNiArMTI1LDkgQEAKIFBBQ0tBR0VDT05GSUdbbGltYV0gPSAiIgogR0FMTElVTURSSVZFUlNfYXBwZW5kID0iJHtAYmIudXRpbHMuY29udGFpbnMoJ1BBQ0tBR0VDT05GSUcnLCAnbGltYScsICcsbGltYScsICcnLCBkKX0iCiAKK1BBQ0tBR0VDT05GSUdbcGFuZnJvc3RdID0gIiIKK0dBTExJVU1EUklWRVJTX2FwcGVuZCA9IiR7QGJiLnV0aWxzLmNvbnRhaW5zKCdQQUNLQUdFQ09ORklHJywgJ3BhbmZyb3N0JywgJyxwYW5mcm9zdCcsICcnLCBkKX0iCisKIE9TTUVTQSA9ICIke0BiYi51dGlscy5jb250YWlucygnUEFDS0FHRUNPTkZJRycsICdnYWxsaXVtJywgJ2dhbGxpdW0nLCAnY2xhc3NpYycsIGQpfSIKIFBBQ0tBR0VDT05GSUdbb3NtZXNhXSA9ICItRG9zbWVzYT0ke09TTUVTQX0sLURvc21lc2E9bm9uZSIKIApkaWZmIC0tZ2l0IGEvcG9reS9tZXRhL3JlY2lwZXMtZ3JhcGhpY3MvcGFuZ28vcGFuZ29fMS40NC41LmJiIGIvcG9reS9tZXRhL3JlY2lwZXMtZ3JhcGhpY3MvcGFuZ28vcGFuZ29fMS40NC42LmJiCnNpbWlsYXJpdHkgaW5kZXggODklCnJlbmFtZSBmcm9tIHBva3kvbWV0YS9yZWNpcGVzLWdyYXBoaWNzL3BhbmdvL3BhbmdvXzEuNDQuNS5iYgpyZW5hbWUgdG8gcG9reS9tZXRhL3JlY2lwZXMtZ3JhcGhpY3MvcGFuZ28vcGFuZ29fMS40NC42LmJiCmluZGV4IGExNDM3MjMuLjg4MmVhZGEgMTAwNjQ0Ci0tLSBhL3Bva3kvbWV0YS9yZWNpcGVzLWdyYXBoaWNzL3BhbmdvL3BhbmdvXzEuNDQuNS5iYgorKysgYi9wb2t5L21ldGEvcmVjaXBlcy1ncmFwaGljcy9wYW5nby9wYW5nb18xLjQ0LjYuYmIKQEAgLTE2LDggKzE2LDggQEAKIGluaGVyaXQgZ25vbWViYXNlIGd0ay1kb2MgcHRlc3QtZ25vbWUgdXBzdHJlYW0tdmVyc2lvbi1pcy1ldmVuIGdvYmplY3QtaW50cm9zcGVjdGlvbgogCiBTUkNfVVJJICs9ICJmaWxlOi8vcnVuLXB0ZXN0IgotU1JDX1VSSVthcmNoaXZlLm1kNXN1bV0gPSAiYjZiZjY4OWUzY2U0ZjQ2YjBmZDg4N2I2NGM4NTBlYTEiCi1TUkNfVVJJW2FyY2hpdmUuc2hhMjU2c3VtXSA9ICI4NTI3ZGZjYmVlZGI0MzkwMTQ5YjZmOTQ2MjBjMGZhNjRlMjYwNDZhYjg1MDQyYzJhNzU1NjQzODg0N2Q3ZmMxIgorU1JDX1VSSVthcmNoaXZlLm1kNXN1bV0gPSAiZGIwYTMyNDNiYTMzZTAyYWFhNzc1NDEyZjhlNWY0MTIiCitTUkNfVVJJW2FyY2hpdmUuc2hhMjU2c3VtXSA9ICIzZTFlNDFiYTgzODczN2UyMDA2MTFmZjAwMWUzYjMwNGMyY2E0Y2RiYmE2M2QyMDBhMjBkYjBiMGRkYzBmODZjIgogCiBERVBFTkRTID0gImdsaWItMi4wIGdsaWItMi4wLW5hdGl2ZSBmb250Y29uZmlnIGZyZWV0eXBlIHZpcnR1YWwvbGliaWNvbnYgY2Fpcm8gaGFyZmJ1enogZnJpYmlkaSIKIApAQCAtMjYsNiArMjYsNyBAQAogCiBQQUNLQUdFQ09ORklHW3gxMV0gPSAiLCx2aXJ0dWFsL2xpYngxMSBsaWJ4ZnQiCiBQQUNLQUdFQ09ORklHW3Rlc3RzXSA9ICItRGluc3RhbGwtdGVzdHM9dHJ1ZSwgLURpbnN0YWxsLXRlc3RzPWZhbHNlIgorUEFDS0FHRUNPTkZJR1t0aGFpXSA9ICIsLGxpYnRoYWkiCiAKIEdUS0RPQ19NRVNPTl9PUFRJT04gPSAiZ3RrX2RvYyIKIEdJUl9NRVNPTl9PUFRJT04gPSAnaW50cm9zcGVjdGlvbicKZGlmZiAtLWdpdCBhL3Bva3kvbWV0YS9yZWNpcGVzLWdyYXBoaWNzL3ZpcmdscmVuZGVyZXIvdmlyZ2xyZW5kZXJlci8wMDAxLU1ha2VmaWxlLmFtLWV4cGxpY2l0bHktbGluay13aXRoLWxpYmRybS5wYXRjaCBiL3Bva3kvbWV0YS9yZWNpcGVzLWdyYXBoaWNzL3ZpcmdscmVuZGVyZXIvdmlyZ2xyZW5kZXJlci8wMDAxLU1ha2VmaWxlLmFtLWV4cGxpY2l0bHktbGluay13aXRoLWxpYmRybS5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYWE4ZDgxNC4uMDAwMDAwMAotLS0gYS9wb2t5L21ldGEvcmVjaXBlcy1ncmFwaGljcy92aXJnbHJlbmRlcmVyL3ZpcmdscmVuZGVyZXIvMDAwMS1NYWtlZmlsZS5hbS1leHBsaWNpdGx5LWxpbmstd2l0aC1saWJkcm0ucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwzMSArMCwwIEBACi1Gcm9tIGQ2MWY3MDczYjhjZTE1OWQyMTgxMWIyOTFjMjJiMjczYjA0MGMzMzAgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBBbGV4YW5kZXIgS2FuYXZpbiA8YWxleC5rYW5hdmluQGdtYWlsLmNvbT4KLURhdGU6IFR1ZSwgMTIgRmViIDIwMTkgMTI6MDQ6NTIgKzAxMDAKLVN1YmplY3Q6IFtQQVRDSF0gTWFrZWZpbGUuYW06IGV4cGxpY2l0bHkgbGluayB3aXRoIGxpYmRybQotCi1PdGhlcndpc2UsIGEgZmFpbHVyZSBoYXBwZW5zIHdpdGggZ29sZCBsaW5rZXI6Ci0KLS4uL3NyYy8ubGlicy9saWJ2aXJnbHJlbmRlcmVyLnNvOiBlcnJvcjogdW5kZWZpbmVkIHJlZmVyZW5jZSB0byAnZHJtUHJpbWVIYW5kbGVUb0ZEJwotCi1odHRwczovL2Vycm9ycy55b2N0b3Byb2plY3Qub3JnL0Vycm9ycy9EZXRhaWxzLzIyMjA0Ni8KLQotVXBzdHJlYW0tU3RhdHVzOiBBY2NlcHRlZCBbaHR0cHM6Ly9naXRsYWIuZnJlZWRlc2t0b3Aub3JnL3ZpcmdsL3ZpcmdscmVuZGVyZXIvbWVyZ2VfcmVxdWVzdHMvMTUzXQotU2lnbmVkLW9mZi1ieTogQWxleGFuZGVyIEthbmF2aW4gPGFsZXgua2FuYXZpbkBnbWFpbC5jb20+Ci0tLS0KLSBzcmMvTWFrZWZpbGUuYW0gfCAxICsKLSAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKykKLQotZGlmZiAtLWdpdCBhL3NyYy9NYWtlZmlsZS5hbSBiL3NyYy9NYWtlZmlsZS5hbQotaW5kZXggOWEwYTQ0ZS4uOWI2NjhjOCAxMDA2NDQKLS0tLSBhL3NyYy9NYWtlZmlsZS5hbQotKysrIGIvc3JjL01ha2VmaWxlLmFtCi1AQCAtMSw1ICsxLDYgQEAKLSBTVUJESVJTIDo9IGdhbGxpdW0vYXV4aWxpYXJ5Ci0gQU1fTERGTEFHUyA9IC1sbSBcCi0rCSQoTElCRFJNX0xJQlMpIFwKLSAJJChHQk1fTElCUykgXAotIAkkKEVQT1hZX0xJQlMpIFwKLSAJJChYMTFfTElCUykgXAotLS0gCi0yLjE3LjEKLQpkaWZmIC0tZ2l0IGEvcG9reS9tZXRhL3JlY2lwZXMtZ3JhcGhpY3MvdmlyZ2xyZW5kZXJlci92aXJnbHJlbmRlcmVyLzAwMDEtdnRlc3QtYWRkLW1pc3NpbmctaW5jbHVkZXMucGF0Y2ggYi9wb2t5L21ldGEvcmVjaXBlcy1ncmFwaGljcy92aXJnbHJlbmRlcmVyL3ZpcmdscmVuZGVyZXIvMDAwMS12dGVzdC1hZGQtbWlzc2luZy1pbmNsdWRlcy5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMmI0ZmZhOS4uMDAwMDAwMAotLS0gYS9wb2t5L21ldGEvcmVjaXBlcy1ncmFwaGljcy92aXJnbHJlbmRlcmVyL3ZpcmdscmVuZGVyZXIvMDAwMS12dGVzdC1hZGQtbWlzc2luZy1pbmNsdWRlcy5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDM4ICswLDAgQEAKLUZyb20gMDVjNWM1ZjQzZmJmZmIzMzE3YmQ5ZGEyN2Q0MTQ4OTBkMmVmNDkzYyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IEFsZXhhbmRlciBLYW5hdmluIDxhbGV4LmthbmF2aW5AZ21haWwuY29tPgotRGF0ZTogRnJpLCAxOCBKYW4gMjAxOSAxMzo0NzoyMyArMDEwMAotU3ViamVjdDogW1BBVENIXSB2dGVzdDogYWRkIG1pc3NpbmcgaW5jbHVkZXMKLQotVGhpcyBmaXhlcyBidWlsZCBmYWlsdXJlcyB3aXRoIG11c2wgQyBsaWJyYXJ5Ci0KLVVwc3RyZWFtLVN0YXR1czogQWNjZXB0ZWQgW2h0dHBzOi8vZ2l0bGFiLmZyZWVkZXNrdG9wLm9yZy92aXJnbC92aXJnbHJlbmRlcmVyL21lcmdlX3JlcXVlc3RzLzEyNV0KLVNpZ25lZC1vZmYtYnk6IEFsZXhhbmRlciBLYW5hdmluIDxhbGV4LmthbmF2aW5AZ21haWwuY29tPgotLS0tCi0gdnRlc3QvdXRpbC5jICAgICAgICAgfCAxICsKLSB2dGVzdC92dGVzdF9zZXJ2ZXIuYyB8IDEgKwotIDIgZmlsZXMgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCspCi0KLWRpZmYgLS1naXQgYS92dGVzdC91dGlsLmMgYi92dGVzdC91dGlsLmMKLWluZGV4IDBkM2M3OGYuLmM2MDUyNTMgMTAwNjQ0Ci0tLS0gYS92dGVzdC91dGlsLmMKLSsrKyBiL3Z0ZXN0L3V0aWwuYwotQEAgLTI2LDYgKzI2LDcgQEAKLSAjaW5jbHVkZSA8c3RkaW8uaD4KLSAjaW5jbHVkZSA8c3RyaW5nLmg+Ci0gI2luY2x1ZGUgPHVuaXN0ZC5oPgotKyNpbmNsdWRlIDxzeXMvc2VsZWN0Lmg+Ci0gCi0gaW50IHZ0ZXN0X3dhaXRfZm9yX2ZkX3JlYWQoaW50IGZkKQotIHsKLWRpZmYgLS1naXQgYS92dGVzdC92dGVzdF9zZXJ2ZXIuYyBiL3Z0ZXN0L3Z0ZXN0X3NlcnZlci5jCi1pbmRleCBiYzZjOTVmLi4wMTA3MjFmIDEwMDY0NAotLS0tIGEvdnRlc3QvdnRlc3Rfc2VydmVyLmMKLSsrKyBiL3Z0ZXN0L3Z0ZXN0X3NlcnZlci5jCi1AQCAtMzEsNiArMzEsNyBAQAotICNpbmNsdWRlIDxuZXRpbmV0L2luLmg+Ci0gI2luY2x1ZGUgPHN5cy91bi5oPgotICNpbmNsdWRlIDxmY250bC5oPgotKyNpbmNsdWRlIDxzdHJpbmcuaD4KLSAKLSAjaW5jbHVkZSAidXRpbC5oIgotICNpbmNsdWRlICJ2dGVzdC5oIgpkaWZmIC0tZ2l0IGEvcG9reS9tZXRhL3JlY2lwZXMtZ3JhcGhpY3MvdmlyZ2xyZW5kZXJlci92aXJnbHJlbmRlcmVyXzAuNy4wLmJiIGIvcG9reS9tZXRhL3JlY2lwZXMtZ3JhcGhpY3MvdmlyZ2xyZW5kZXJlci92aXJnbHJlbmRlcmVyXzAuOC4wLmJiCnNpbWlsYXJpdHkgaW5kZXggNzYlCnJlbmFtZSBmcm9tIHBva3kvbWV0YS9yZWNpcGVzLWdyYXBoaWNzL3ZpcmdscmVuZGVyZXIvdmlyZ2xyZW5kZXJlcl8wLjcuMC5iYgpyZW5hbWUgdG8gcG9reS9tZXRhL3JlY2lwZXMtZ3JhcGhpY3MvdmlyZ2xyZW5kZXJlci92aXJnbHJlbmRlcmVyXzAuOC4wLmJiCmluZGV4IDgxOGQ1YjYuLmQyYjExYzEgMTAwNjQ0Ci0tLSBhL3Bva3kvbWV0YS9yZWNpcGVzLWdyYXBoaWNzL3ZpcmdscmVuZGVyZXIvdmlyZ2xyZW5kZXJlcl8wLjcuMC5iYgorKysgYi9wb2t5L21ldGEvcmVjaXBlcy1ncmFwaGljcy92aXJnbHJlbmRlcmVyL3ZpcmdscmVuZGVyZXJfMC44LjAuYmIKQEAgLTUsMTAgKzUsOCBAQAogTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vQ09QWUlORzttZDU9YzgxYzA4ZWVlZmQ5NDE4ZmNhOGY4ODMwOWE3NmRiMTAiCiAKIERFUEVORFMgPSAibGliZHJtIG1lc2EgbGliZXBveHkiCi1TUkNSRVYgPSAiNDAyYzIyODg2MWM5ODkzZjY0Y2ZmYmJjYjRjYjIzMDQ0YjhjNzIxYyIKK1NSQ1JFViA9ICI0OGNjOTZjOWFlYmI5ZDAxNjQ4MzBhMTU3ZWZjODkxNmYwOGYwMGMwIgogU1JDX1VSSSA9ICJnaXQ6Ly9hbm9uZ2l0LmZyZWVkZXNrdG9wLm9yZy92aXJnbHJlbmRlcmVyIFwKLSAgICAgICAgICAgZmlsZTovLzAwMDEtdnRlc3QtYWRkLW1pc3NpbmctaW5jbHVkZXMucGF0Y2ggXAotICAgICAgICAgICBmaWxlOi8vMDAwMS1NYWtlZmlsZS5hbS1leHBsaWNpdGx5LWxpbmstd2l0aC1saWJkcm0ucGF0Y2ggXAogICAgICAgICAgICBmaWxlOi8vMDAwMS1nYWxsaXVtLUV4cGFuZC1saWJjLWNoZWNrLXRvLWJlLXBsYXRmb3JtLU9TLWNoZWNrLnBhdGNoIFwKICAgICAgICAgICAgIgogCmRpZmYgLS1naXQgYS9wb2t5L21ldGEvcmVjaXBlcy1ncmFwaGljcy93YXlsYW5kL3dlc3Rvbi8wMDAxLW1ha2UtZXJyb3ItcG9ydGFibGUucGF0Y2ggYi9wb2t5L21ldGEvcmVjaXBlcy1ncmFwaGljcy93YXlsYW5kL3dlc3Rvbi8wMDAxLW1ha2UtZXJyb3ItcG9ydGFibGUucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGFjZWE5ZGIuLjAwMDAwMDAKLS0tIGEvcG9reS9tZXRhL3JlY2lwZXMtZ3JhcGhpY3Mvd2F5bGFuZC93ZXN0b24vMDAwMS1tYWtlLWVycm9yLXBvcnRhYmxlLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsODAgKzAsMCBAQAotRnJvbSBjNDY3N2UxNTU3MzYwNjJlNzU2ODdmMWE2NTU3MzJjODkwMmU5MTJiIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogS2hlbSBSYWogPHJhai5raGVtQGdtYWlsLmNvbT4KLURhdGU6IEZyaSwgMjkgTWF5IDIwMTUgMjA6NTY6MDAgLTA3MDAKLVN1YmplY3Q6IFtQQVRDSF0gbWFrZSBlcnJvcigpIHBvcnRhYmxlCi0KLWVycm9yKCkgaXMgbm90IHBvc2l4IGJ1dCBnbnUgZXh0ZW5zaW9uIHNvIG1heSBub3QgYmUgYXZhaWxhYmxlIG9uIGFsbAota2luZCBvZiBzeXN0ZW1zaSBlLmcuIG11c2wuCi0KLVVwc3RyZWFtLVN0YXR1czogU3VibWl0dGVkCi0KLVNpZ25lZC1vZmYtYnk6IEtoZW0gUmFqIDxyYWoua2hlbUBnbWFpbC5jb20+Ci1TaWduZWQtb2ZmLWJ5OiBNaW5nIExpdSA8bWluZy5saXVAdG9yYWRleC5jb20+Ci0tLS0KLSBsaWJ3ZXN0b24vd2VzdG9uLWVycm9yLmggIHwgMjAgKysrKysrKysrKysrKysrKysrKysKLSBsaWJ3ZXN0b24vd2VzdG9uLWxhdW5jaC5jIHwgIDIgKy0KLSBtZXNvbi5idWlsZCAgICAgICAgICAgICAgIHwgIDEgKwotIDMgZmlsZXMgY2hhbmdlZCwgMjIgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQotIGNyZWF0ZSBtb2RlIDEwMDY0NCBsaWJ3ZXN0b24vd2VzdG9uLWVycm9yLmgKLQotZGlmZiAtLWdpdCBhL2xpYndlc3Rvbi93ZXN0b24tZXJyb3IuaCBiL2xpYndlc3Rvbi93ZXN0b24tZXJyb3IuaAotbmV3IGZpbGUgbW9kZSAxMDA2NDQKLWluZGV4IDAwMDAwMDAuLjIwODlkMDIKLS0tLSAvZGV2L251bGwKLSsrKyBiL2xpYndlc3Rvbi93ZXN0b24tZXJyb3IuaAotQEAgLTAsMCArMSwyMCBAQAotKyNpZm5kZWYgX1dFU1RPTl9FUlJPUl9ICi0rI2RlZmluZSBfV0VTVE9OX0VSUk9SX0gKLSsKLSsjaWYgZGVmaW5lZChIQVZFX0VSUk9SX0gpCi0rI2luY2x1ZGUgPGVycm9yLmg+Ci0rI2Vsc2UKLSsjaW5jbHVkZSA8ZXJyLmg+Ci0rI2luY2x1ZGUgPHN0cmluZy5oPgotKyNkZWZpbmUgX3dlc3Rvbl9lcnJvcihTLCBFLCBGLCAuLi4pIGRvIHsgXAotKwlpZiAoRSkgXAotKwkJZXJyKFMsIEYgIjogJXMiLCAjI19fVkFfQVJHU19fLCBzdHJlcnJvcihFKSk7IFwKLSsJZWxzZSBcCi0rCQllcnIoUywgRiwgIyNfX1ZBX0FSR1NfXyk7IFwKLSt9IHdoaWxlKDApCi0rCi0rI2RlZmluZSBlcnJvciBfd2VzdG9uX2Vycm9yCi0rI2VuZGlmCi0rCi0rI2VuZGlmCi0rCi1kaWZmIC0tZ2l0IGEvbGlid2VzdG9uL3dlc3Rvbi1sYXVuY2guYyBiL2xpYndlc3Rvbi93ZXN0b24tbGF1bmNoLmMKLWluZGV4IGJmNzNlMGQuLjkwNjQ0MzkgMTAwNjQ0Ci0tLS0gYS9saWJ3ZXN0b24vd2VzdG9uLWxhdW5jaC5jCi0rKysgYi9saWJ3ZXN0b24vd2VzdG9uLWxhdW5jaC5jCi1AQCAtMzMsNyArMzMsNiBAQAotICNpbmNsdWRlIDxwb2xsLmg+Ci0gI2luY2x1ZGUgPGVycm5vLmg+Ci0gCi0tI2luY2x1ZGUgPGVycm9yLmg+Ci0gI2luY2x1ZGUgPGdldG9wdC5oPgotIAotICNpbmNsdWRlIDxzeXMvdHlwZXMuaD4KLUBAIC01OSw2ICs1OCw3IEBACi0gI2VuZGlmCi0gCi0gI2luY2x1ZGUgIndlc3Rvbi1sYXVuY2guaCIKLSsjaW5jbHVkZSAid2VzdG9uLWVycm9yLmgiCi0gCi0gI2RlZmluZSBEUk1fTUFKT1IgMjI2Ci0gCi1kaWZmIC0tZ2l0IGEvbWVzb24uYnVpbGQgYi9tZXNvbi5idWlsZAotaW5kZXggMjE1NWI3Yi4uYmFhNTJkOSAxMDA2NDQKLS0tLSBhL21lc29uLmJ1aWxkCi0rKysgYi9tZXNvbi5idWlsZAotQEAgLTk0LDYgKzk0LDcgQEAgZm9yZWFjaCBmdW5jIDogb3B0aW9uYWxfbGliY19mdW5jcwotIGVuZGZvcmVhY2gKLSAKLSBvcHRpb25hbF9zeXN0ZW1faGVhZGVycyA9IFsKLSsJJ2Vycm9yLmgnLAotIAknbGludXgvc3luY19maWxlLmgnCi0gXQotIGZvcmVhY2ggaGRyIDogb3B0aW9uYWxfc3lzdGVtX2hlYWRlcnMKLS0tIAotMi43LjQKLQpkaWZmIC0tZ2l0IGEvcG9reS9tZXRhL3JlY2lwZXMtZ3JhcGhpY3Mvd2F5bGFuZC93ZXN0b24vMDAwMS13ZXN0b24tbGF1bmNoLVByb3ZpZGUtYS1kZWZhdWx0LXZlcnNpb24tdGhhdC1kb2Vzbi10LnBhdGNoIGIvcG9reS9tZXRhL3JlY2lwZXMtZ3JhcGhpY3Mvd2F5bGFuZC93ZXN0b24vMDAwMS13ZXN0b24tbGF1bmNoLVByb3ZpZGUtYS1kZWZhdWx0LXZlcnNpb24tdGhhdC1kb2Vzbi10LnBhdGNoCmluZGV4IDgxY2MwMjUuLmU1MDg0NWIgMTAwNjQ0Ci0tLSBhL3Bva3kvbWV0YS9yZWNpcGVzLWdyYXBoaWNzL3dheWxhbmQvd2VzdG9uLzAwMDEtd2VzdG9uLWxhdW5jaC1Qcm92aWRlLWEtZGVmYXVsdC12ZXJzaW9uLXRoYXQtZG9lc24tdC5wYXRjaAorKysgYi9wb2t5L21ldGEvcmVjaXBlcy1ncmFwaGljcy93YXlsYW5kL3dlc3Rvbi8wMDAxLXdlc3Rvbi1sYXVuY2gtUHJvdmlkZS1hLWRlZmF1bHQtdmVyc2lvbi10aGF0LWRvZXNuLXQucGF0Y2gKQEAgLTEsNCArMSw0IEBACi1Gcm9tIDdkMmZlYTYxYTk1ZTk0OThiNWExOWM4Y2ZmY2IyYWI1NjMxZDU2ODUgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tIDY4MmI3ZDc5YTdiODFlYzhlMzg3NjAzODExMDRiMjRhZDU0OWU4YzAgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCiBGcm9tOiBUb20gSG9jaHN0ZWluIDx0b20uaG9jaHN0ZWluQG54cC5jb20+CiBEYXRlOiBXZWQsIDIyIEZlYiAyMDE3IDE1OjUzOjMwICswMjAwCiBTdWJqZWN0OiBbUEFUQ0hdIHdlc3Rvbi1sYXVuY2g6IFByb3ZpZGUgYSBkZWZhdWx0IHZlcnNpb24gdGhhdCBkb2Vzbid0IHJlcXVpcmUKQEAgLTE4LDE2ICsxOCwxNiBAQAogU2lnbmVkLW9mZi1ieTogTWluZyBMaXUgPG1pbmcubGl1QHRvcmFkZXguY29tPgogLS0tCiAgbGlid2VzdG9uL21lc29uLmJ1aWxkICAgICB8IDE2ICsrKysrKysrKysrKy0tLS0KLSBsaWJ3ZXN0b24vd2VzdG9uLWxhdW5jaC5jIHwgMjAgKysrKysrKysrKysrKysrKysrKysKKyBsaWJ3ZXN0b24vd2VzdG9uLWxhdW5jaC5jIHwgMjEgKysrKysrKysrKysrKysrKysrKysrCiAgbWVzb25fb3B0aW9ucy50eHQgICAgICAgICB8ICA3ICsrKysrKysKLSAzIGZpbGVzIGNoYW5nZWQsIDM5IGluc2VydGlvbnMoKyksIDQgZGVsZXRpb25zKC0pCisgMyBmaWxlcyBjaGFuZ2VkLCA0MCBpbnNlcnRpb25zKCspLCA0IGRlbGV0aW9ucygtKQogCiBkaWZmIC0tZ2l0IGEvbGlid2VzdG9uL21lc29uLmJ1aWxkIGIvbGlid2VzdG9uL21lc29uLmJ1aWxkCi1pbmRleCAzM2FiOTcwLi4zMmY0OTVhIDEwMDY0NAoraW5kZXggZDhkM2ZjMC4uMzI2NjgzZiAxMDA2NDQKIC0tLSBhL2xpYndlc3Rvbi9tZXNvbi5idWlsZAogKysrIGIvbGlid2VzdG9uL21lc29uLmJ1aWxkCi1AQCAtNDcyLDE2ICs0NzIsMjQgQEAgaWYgZ2V0X29wdGlvbigncmVuZGVyZXItZ2wnKQotIGVuZGlmCitAQCAtMTk5LDE2ICsxOTksMjQgQEAgZGVwX3ZlcnRleF9jbGlwcGluZyA9IGRlY2xhcmVfZGVwZW5kZW5jeSgKKyApCiAgCiAgaWYgZ2V0X29wdGlvbignd2VzdG9uLWxhdW5jaCcpCiAtCWRlcF9wYW0gPSBjYy5maW5kX2xpYnJhcnkoJ3BhbScpCkBAIC01Niw3ICs1Niw3IEBACiAgCQlpbnN0YWxsOiB0cnVlCiAgCSkKIGRpZmYgLS1naXQgYS9saWJ3ZXN0b24vd2VzdG9uLWxhdW5jaC5jIGIvbGlid2VzdG9uL3dlc3Rvbi1sYXVuY2guYwotaW5kZXggOTA2NDQzOS4uYzZhYmU5MiAxMDA2NDQKK2luZGV4IDQ5NjJiZDYuLmZjNTMxYzUgMTAwNjQ0CiAtLS0gYS9saWJ3ZXN0b24vd2VzdG9uLWxhdW5jaC5jCiArKysgYi9saWJ3ZXN0b24vd2VzdG9uLWxhdW5jaC5jCiBAQCAtNTEsNyArNTEsOSBAQApAQCAtNjksNyArNjksNyBAQAogIAogICNpZmRlZiBIQVZFX1NZU1RFTURfTE9HSU4KICAjaW5jbHVkZSA8c3lzdGVtZC9zZC1sb2dpbi5oPgotQEAgLTEwMSw4ICsxMDMsMTAgQEAgZHJtU2V0TWFzdGVyKGludCBkcm1fZmQpCitAQCAtMTAwLDggKzEwMiwxMCBAQCBkcm1TZXRNYXN0ZXIoaW50IGRybV9mZCkKICAjZW5kaWYKICAKICBzdHJ1Y3Qgd2VzdG9uX2xhdW5jaCB7CkBAIC04MCw3ICs4MCw3IEBACiAgCWludCB0dHk7CiAgCWludCB0dHlucjsKICAJaW50IHNvY2tbMl07Ci1AQCAtMTkxLDYgKzE5NSw3IEBAIHdlc3Rvbl9sYXVuY2hfYWxsb3dlZChzdHJ1Y3Qgd2VzdG9uX2xhdW5jaCAqd2wpCitAQCAtMTkyLDYgKzE5Niw3IEBAIHdlc3Rvbl9sYXVuY2hfYWxsb3dlZChzdHJ1Y3Qgd2VzdG9uX2xhdW5jaCAqd2wpCiAgCXJldHVybiBmYWxzZTsKICB9CiAgCkBAIC04OCw3ICs4OCw3IEBACiAgc3RhdGljIGludAogIHBhbV9jb252ZXJzYXRpb25fZm4oaW50IG1zZ19jb3VudCwKICAJCSAgICBjb25zdCBzdHJ1Y3QgcGFtX21lc3NhZ2UgKiptZXNzYWdlcywKLUBAIC0yMzEsNiArMjM2LDcgQEAgc2V0dXBfcGFtKHN0cnVjdCB3ZXN0b25fbGF1bmNoICp3bCkKK0BAIC0yMzIsNiArMjM3LDcgQEAgc2V0dXBfcGFtKHN0cnVjdCB3ZXN0b25fbGF1bmNoICp3bCkKICAKICAJcmV0dXJuIDA7CiAgfQpAQCAtOTYsNyArOTYsNyBAQAogIAogIHN0YXRpYyBpbnQKICBzZXR1cF9sYXVuY2hlcl9zb2NrZXQoc3RydWN0IHdlc3Rvbl9sYXVuY2ggKndsKQotQEAgLTQyNCw2ICs0MzAsNyBAQCBxdWl0KHN0cnVjdCB3ZXN0b25fbGF1bmNoICp3bCwgaW50IHN0YXR1cykKK0BAIC00MzEsNiArNDM3LDcgQEAgcXVpdChzdHJ1Y3Qgd2VzdG9uX2xhdW5jaCAqd2wsIGludCBzdGF0dXMpCiAgCWNsb3NlKHdsLT5zaWduYWxmZCk7CiAgCWNsb3NlKHdsLT5zb2NrWzBdKTsKICAKQEAgLTEwNCw3ICsxMDQsNyBAQAogIAlpZiAod2wtPm5ld191c2VyKSB7CiAgCQllcnIgPSBwYW1fY2xvc2Vfc2Vzc2lvbih3bC0+cGgsIDApOwogIAkJaWYgKGVycikKLUBAIC00MzEsNiArNDM4LDcgQEAgcXVpdChzdHJ1Y3Qgd2VzdG9uX2xhdW5jaCAqd2wsIGludCBzdGF0dXMpCitAQCAtNDM4LDYgKzQ0NSw3IEBAIHF1aXQoc3RydWN0IHdlc3Rvbl9sYXVuY2ggKndsLCBpbnQgc3RhdHVzKQogIAkJCQllcnIsIHBhbV9zdHJlcnJvcih3bC0+cGgsIGVycikpOwogIAkJcGFtX2VuZCh3bC0+cGgsIGVycik7CiAgCX0KQEAgLTExMiw3ICsxMTIsNyBAQAogIAogIAlpZiAoaW9jdGwod2wtPnR0eSwgS0RTS0JNVVRFLCAwKSAmJgogIAkgICAgaW9jdGwod2wtPnR0eSwgS0RTS0JNT0RFLCB3bC0+a2JfbW9kZSkpCi1AQCAtNjEwLDYgKzYxOCw3IEBAIHNldHVwX3Nlc3Npb24oc3RydWN0IHdlc3Rvbl9sYXVuY2ggKndsLCBjaGFyICoqY2hpbGRfYXJndikKK0BAIC02NjAsNiArNjY4LDcgQEAgc2V0dXBfc2Vzc2lvbihzdHJ1Y3Qgd2VzdG9uX2xhdW5jaCAqd2wsIGNoYXIgKipjaGlsZF9hcmd2KQogIAlzZXRlbnYoIkhPTUUiLCB3bC0+cHctPnB3X2RpciwgMSk7CiAgCXNldGVudigiU0hFTEwiLCB3bC0+cHctPnB3X3NoZWxsLCAxKTsKICAKQEAgLTEyMCw3ICsxMjAsNyBAQAogIAllbnYgPSBwYW1fZ2V0ZW52bGlzdCh3bC0+cGgpOwogIAlpZiAoZW52KSB7CiAgCQlmb3IgKGkgPSAwOyBlbnZbaV07ICsraSkgewotQEAgLTYxOCw2ICs2MjcsNyBAQCBzZXR1cF9zZXNzaW9uKHN0cnVjdCB3ZXN0b25fbGF1bmNoICp3bCwgY2hhciAqKmNoaWxkX2FyZ3YpCitAQCAtNjY4LDYgKzY3Nyw3IEBAIHNldHVwX3Nlc3Npb24oc3RydWN0IHdlc3Rvbl9sYXVuY2ggKndsLCBjaGFyICoqY2hpbGRfYXJndikKICAJCX0KICAJCWZyZWUoZW52KTsKICAJfQpAQCAtMTI4LDcgKzEyOCw3IEBACiAgCiAgCS8qCiAgCSAqIFdlIG9wZW4gYSBuZXcgc2Vzc2lvbiwgc28gaXQgbWFrZXMgc2Vuc2UKLUBAIC02ODUsOCArNjk1LDEwIEBAIHN0YXRpYyB2b2lkCitAQCAtNzM5LDggKzc0OSwxMCBAQCBzdGF0aWMgdm9pZAogIGhlbHAoY29uc3QgY2hhciAqbmFtZSkKICB7CiAgCWZwcmludGYoc3RkZXJyLCAiVXNhZ2U6ICVzIFthcmdzLi4uXSBbLS0gW3dlc3RvbiBhcmdzLi5dXVxuIiwgbmFtZSk7CkBAIC0xMzksNyArMTM5LDcgQEAKICAJZnByaW50ZihzdGRlcnIsICIgIC10LCAtLXR0eSAgICAgICBTdGFydCBzZXNzaW9uIG9uIGFsdGVybmF0aXZlIHR0eSxcbiIKICAJCQkiICAgICAgICAgICAgICAgICAgZS5nLiAtdCAvZGV2L3R0eTQsIHJlcXVpcmVzIC11IG9wdGlvbi5cbiIpOwogIAlmcHJpbnRmKHN0ZGVyciwgIiAgLXYsIC0tdmVyYm9zZSAgIEJlIHZlcmJvc2VcbiIpOwotQEAgLTcwMCw3ICs3MTIsOSBAQCBtYWluKGludCBhcmdjLCBjaGFyICphcmd2W10pCitAQCAtNzU0LDcgKzc2Niw5IEBAIG1haW4oaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKICAJaW50IGksIGM7CiAgCWNoYXIgKnR0eSA9IE5VTEw7CiAgCXN0cnVjdCBvcHRpb24gb3B0c1tdID0gewpAQCAtMTQ5LDIxICsxNDksMjQgQEAKICAJCXsgInR0eSIsICAgICByZXF1aXJlZF9hcmd1bWVudCwgTlVMTCwgJ3QnIH0sCiAgCQl7ICJ2ZXJib3NlIiwgbm9fYXJndW1lbnQsICAgICAgIE5VTEwsICd2JyB9LAogIAkJeyAiaGVscCIsICAgIG5vX2FyZ3VtZW50LCAgICAgICBOVUxMLCAnaCcgfSwKLUBAIC03MTIsOSArNzI2LDEzIEBAIG1haW4oaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKK0BAIC03NjYsMTEgKzc4MCwxNiBAQCBtYWluKGludCBhcmdjLCBjaGFyICphcmd2W10pCiAgCXdoaWxlICgoYyA9IGdldG9wdF9sb25nKGFyZ2MsIGFyZ3YsICJ1OnQ6dmgiLCBvcHRzLCAmaSkpICE9IC0xKSB7CiAgCQlzd2l0Y2ggKGMpIHsKICAJCWNhc2UgJ3UnOgogKyNpZmRlZiBIQVZFX1BBTQogIAkJCXdsLm5ld191c2VyID0gb3B0YXJnOwotIAkJCWlmIChnZXR1aWQoKSAhPSAwKQotIAkJCQllcnJvcigxLCAwLCAiUGVybWlzc2lvbiBkZW5pZWQuIC11IGFsbG93ZWQgZm9yIHJvb3Qgb25seSIpOworIAkJCWlmIChnZXR1aWQoKSAhPSAwKSB7CisgCQkJCWZwcmludGYoc3RkZXJyLCAid2VzdG9uOiBQZXJtaXNzaW9uIGRlbmllZC4gLXUgYWxsb3dlZCBmb3Igcm9vdCBvbmx5XG4iKTsKKyAJCQkJZXhpdChFWElUX0ZBSUxVUkUpOworIAkJCX0KICsjZWxzZQotKwkJCWVycm9yKDEsIDAsICItdSBpcyB1bnN1cHBvcnRlZCBpbiB0aGlzIHdlc3Rvbi1sYXVuY2ggYnVpbGQiKTsKKysJCQlmcHJpbnRmKHN0ZGVyciwgIndlc3RvbjogLXUgaXMgdW5zdXBwb3J0ZWQgaW4gdGhpcyB3ZXN0b24tbGF1bmNoIGJ1aWxkXG4iKTsKKysJCQlleGl0KEVYSVRfRkFJTFVSRSk7CiArI2VuZGlmCiAgCQkJYnJlYWs7CiAgCQljYXNlICd0JzoKICAJCQl0dHkgPSBvcHRhcmc7Ci1AQCAtNzU1LDggKzc3MywxMCBAQCBtYWluKGludCBhcmdjLCBjaGFyICphcmd2W10pCitAQCAtODIyLDggKzg0MSwxMCBAQCBtYWluKGludCBhcmdjLCBjaGFyICphcmd2W10pCiAgCWlmIChzZXR1cF90dHkoJndsLCB0dHkpIDwgMCkKICAJCWV4aXQoRVhJVF9GQUlMVVJFKTsKICAKQEAgLTE3NSw3ICsxNzgsNyBAQAogIAlpZiAoc2V0dXBfbGF1bmNoZXJfc29ja2V0KCZ3bCkgPCAwKQogIAkJZXhpdChFWElUX0ZBSUxVUkUpOwogZGlmZiAtLWdpdCBhL21lc29uX29wdGlvbnMudHh0IGIvbWVzb25fb3B0aW9ucy50eHQKLWluZGV4IDBlMWQxODMuLjlhNWMzZDUgMTAwNjQ0CitpbmRleCBkNWJmMWQ1Li4yNTRlYjJiIDEwMDY0NAogLS0tIGEvbWVzb25fb3B0aW9ucy50eHQKICsrKyBiL21lc29uX29wdGlvbnMudHh0CiBAQCAtNzMsNiArNzMsMTMgQEAgb3B0aW9uKApkaWZmIC0tZ2l0IGEvcG9reS9tZXRhL3JlY2lwZXMtZ3JhcGhpY3Mvd2F5bGFuZC93ZXN0b25fNi4wLjEuYmIgYi9wb2t5L21ldGEvcmVjaXBlcy1ncmFwaGljcy93YXlsYW5kL3dlc3Rvbl83LjAuMC5iYgpzaW1pbGFyaXR5IGluZGV4IDk0JQpyZW5hbWUgZnJvbSBwb2t5L21ldGEvcmVjaXBlcy1ncmFwaGljcy93YXlsYW5kL3dlc3Rvbl82LjAuMS5iYgpyZW5hbWUgdG8gcG9reS9tZXRhL3JlY2lwZXMtZ3JhcGhpY3Mvd2F5bGFuZC93ZXN0b25fNy4wLjAuYmIKaW5kZXggZmU4ZjFiOC4uNWQyYTkzMyAxMDA2NDQKLS0tIGEvcG9reS9tZXRhL3JlY2lwZXMtZ3JhcGhpY3Mvd2F5bGFuZC93ZXN0b25fNi4wLjEuYmIKKysrIGIvcG9reS9tZXRhL3JlY2lwZXMtZ3JhcGhpY3Mvd2F5bGFuZC93ZXN0b25fNy4wLjAuYmIKQEAgLTksMTEgKzksMTAgQEAKICAgICAgICAgICAgZmlsZTovL3dlc3Rvbi5wbmcgXAogICAgICAgICAgICBmaWxlOi8vd2VzdG9uLmRlc2t0b3AgXAogICAgICAgICAgICBmaWxlOi8veHdheWxhbmQud2VzdG9uLXN0YXJ0IFwKLSAgICAgICAgICAgZmlsZTovLzAwMDEtbWFrZS1lcnJvci1wb3J0YWJsZS5wYXRjaCBcCiAgICAgICAgICAgIGZpbGU6Ly8wMDAxLXdlc3Rvbi1sYXVuY2gtUHJvdmlkZS1hLWRlZmF1bHQtdmVyc2lvbi10aGF0LWRvZXNuLXQucGF0Y2ggXAogIgotU1JDX1VSSVttZDVzdW1dID0gImU3YjEwNzEwZWYxZWFjODIyNThmOTdiZmQ0MWZlNTM0IgotU1JDX1VSSVtzaGEyNTZzdW1dID0gImJmMmY2ZDVhYWUyZTExY2FiYjZiZDY5YTc2YmNmOWVkYjA4NGY4YzNlMTRjYTc2OWJlYTcyMzRhNTEzMTU1YjQiCitTUkNfVVJJW21kNXN1bV0gPSAiY2JmZGE0ODNiYzI1MDFkMDgzMWFmM2YzM2M3MDc4NTAiCitTUkNfVVJJW3NoYTI1NnN1bV0gPSAiYTAwYTZkMjA3YjZhNDVmOTVmNDQwMWM2MDQ3NzJhMzA3YzM3NjdlNWUyYmVlY2YzZDg3OTExMGM0MzkwOWE2NCIKIAogVVBTVFJFQU1fQ0hFQ0tfVVJJID0gImh0dHBzOi8vd2F5bGFuZC5mcmVlZGVza3RvcC5vcmcvcmVsZWFzZXMuaHRtbCIKIApAQCAtMjYsNyArMjUsNyBAQAogCiBXRVNUT05fTUFKT1JfVkVSU0lPTiA9ICIke0AnLicuam9pbihkLmdldFZhcignUFYnKS5zcGxpdCgnLicpWzA6MV0pfSIKIAotRVhUUkFfT0VNRVNPTiArPSAiLURiYWNrZW5kLWRlZmF1bHQ9YXV0byAtRGJhY2tlbmQtcmRwPWZhbHNlIgorRVhUUkFfT0VNRVNPTiArPSAiLURiYWNrZW5kLWRlZmF1bHQ9YXV0byAtRGJhY2tlbmQtcmRwPWZhbHNlIC1EcGlwZXdpcmU9ZmFsc2UiCiAKIFBBQ0tBR0VDT05GSUcgPz89ICIke0BiYi51dGlscy5jb250YWlucygnRElTVFJPX0ZFQVRVUkVTJywgJ3dheWxhbmQnLCAna21zIGZiZGV2IHdheWxhbmQgZWdsJywgJycsIGQpfSBcCiAgICAgICAgICAgICAgICAgICAgJHtAYmIudXRpbHMuY29udGFpbnMoJ0RJU1RST19GRUFUVVJFUycsICd4MTEgd2F5bGFuZCcsICd4d2F5bGFuZCcsICcnLCBkKX0gXApkaWZmIC0tZ2l0IGEvcG9reS9tZXRhL3JlY2lwZXMta2VybmVsL2R0Yy9kdGNfMS41LjAuYmIgYi9wb2t5L21ldGEvcmVjaXBlcy1rZXJuZWwvZHRjL2R0Y18xLjUuMC5iYgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYTljMTMxNy4uMDAwMDAwMAotLS0gYS9wb2t5L21ldGEvcmVjaXBlcy1rZXJuZWwvZHRjL2R0Y18xLjUuMC5iYgorKysgL2Rldi9udWxsCkBAIC0xLDEwICswLDAgQEAKLXJlcXVpcmUgZHRjLmluYwotCi1MSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9HUEw7bWQ1PTk0ZDU1ZDUxMmE5YmEzNmNhYTliN2RmMDc5YmFlMTlmIFwKLQkJICAgIGZpbGU6Ly9saWJmZHQvbGliZmR0Lmg7YmVnaW5saW5lPTM7ZW5kbGluZT01MjttZDU9ZmIzNjA5NjMxNTFmOGVjMmQ2YzA2YjA1NWJjYmI2OGMiCi0KLVNSQ1JFViA9ICJkMzdmNmIyMDEwN2U5NTIwNjRlM2Y3N2U5ZDY5MTVhOWMwOWQxMGE2IgotCi1TID0gIiR7V09SS0RJUn0vZ2l0IgotCi1CQkNMQVNTRVhURU5EID0gIm5hdGl2ZSBuYXRpdmVzZGsiCmRpZmYgLS1naXQgYS9wb2t5L21ldGEvcmVjaXBlcy1rZXJuZWwvZHRjL2R0Y18xLjUuMS5iYiBiL3Bva3kvbWV0YS9yZWNpcGVzLWtlcm5lbC9kdGMvZHRjXzEuNS4xLmJiCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjlkZjhhMDYKLS0tIC9kZXYvbnVsbAorKysgYi9wb2t5L21ldGEvcmVjaXBlcy1rZXJuZWwvZHRjL2R0Y18xLjUuMS5iYgpAQCAtMCwwICsxLDEwIEBACityZXF1aXJlIGR0Yy5pbmMKKworTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vR1BMO21kNT1iMjM0ZWU0ZDY5ZjVmY2U0NDg2YTgwZmRhZjRhNDI2MyBcCisJCSAgICBmaWxlOi8vbGliZmR0L2xpYmZkdC5oO2JlZ2lubGluZT00O2VuZGxpbmU9NzttZDU9MDViYjM1N2NmYjc1Y2FlN2QyYjAxZDJlZThkNzY0MDciCisKK1NSQ1JFViA9ICI2MGUwZGIzZDY1YTEyMThiMGQ1YTI5NDc0ZTc2OWYyOGExOGUzY2E2IgorCitTID0gIiR7V09SS0RJUn0vZ2l0IgorCitCQkNMQVNTRVhURU5EID0gIm5hdGl2ZSBuYXRpdmVzZGsiCmRpZmYgLS1naXQgYS9wb2t5L21ldGEvcmVjaXBlcy1rZXJuZWwvbGludXgtbGliYy1oZWFkZXJzL2xpbnV4LWxpYmMtaGVhZGVycy8wMDAxLWFybTY0LXN2ZS11YXBpLWFzbS1wdHJhY2UuaC1zaG91bGQtbm90LWRlcGVuZC1vbi11YXAucGF0Y2ggYi9wb2t5L21ldGEvcmVjaXBlcy1rZXJuZWwvbGludXgtbGliYy1oZWFkZXJzL2xpbnV4LWxpYmMtaGVhZGVycy8wMDAxLWFybTY0LXN2ZS11YXBpLWFzbS1wdHJhY2UuaC1zaG91bGQtbm90LWRlcGVuZC1vbi11YXAucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDVlYTQ2ZTkuLjAwMDAwMDAKLS0tIGEvcG9reS9tZXRhL3JlY2lwZXMta2VybmVsL2xpbnV4LWxpYmMtaGVhZGVycy9saW51eC1saWJjLWhlYWRlcnMvMDAwMS1hcm02NC1zdmUtdWFwaS1hc20tcHRyYWNlLmgtc2hvdWxkLW5vdC1kZXBlbmQtb24tdWFwLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsNjIgKzAsMCBAQAotRnJvbSAzNTM0MWNhMDYxNGFiMTNlMWVmMzRhZDRmMjlhMzllMTVlZjMxZmE4IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogQW5pc3NlIEFzdGllciA8YWFzdGllckBmcmVlYm94LmZyPgotRGF0ZTogTW9uLCAxNyBKdW4gMjAxOSAxNToyMjoyMiArMDIwMAotU3ViamVjdDogW1BBVENIXSBhcm02NC9zdmU6IDx1YXBpL2FzbS9wdHJhY2UuaD4gc2hvdWxkIG5vdCBkZXBlbmQgb24KLSA8dWFwaS9saW51eC9wcmN0bC5oPgotCi1QdWxsaW5nIGxpbnV4L3ByY3RsLmggaW50byBhc20vcHRyYWNlLmggaW4gdGhlIGFybTY0IFVBUEkgaGVhZGVycyBjYXVzZXMKLXVzZXJzcGFjZSBidWlsZCBpc3N1ZXMgZm9yIGFueSBwcm9ncmFtIChlLmcuIHN0cmFjZSBhbmQgcWVtdSkgdGhhdAotaW5jbHVkZXMgYm90aCA8c3lzL3ByY3RsLmg+IGFuZCA8bGludXgvcHRyYWNlLmg+IHdoZW4gdXNpbmcgbXVzbCBsaWJjOgotCi0gIHwgZXJyb3I6IHJlZGVmaW5pdGlvbiBvZiAnc3RydWN0IHByY3RsX21tX21hcCcKLSAgfCAgc3RydWN0IHByY3RsX21tX21hcCB7Ci0KLVNlZSBodHRwczovL2dpdGh1Yi5jb20vZm91bmRyaWVzaW8vbWV0YS1sbXAvY29tbWl0LzZkNGExMDZlMTkxYjVkNzljNDFiOWFjNzhmZDMyMTMxNmQzMDEzYzAKLWZvciBhIHB1YmxpYyBleGFtcGxlIG9mIHBlb3BsZSB3b3JraW5nIGFyb3VuZCB0aGlzIGlzc3VlLgotCi1BbHRob3VnaCBpdCdzIGEgYml0IGdyb3R0eSwgZml4IHRoaXMgYnJlYWthZ2UgYnkgZHVwbGljYXRpbmcgdGhlIHByY3RsCi1jb25zdGFudCBkZWZpbml0aW9ucy4gU2luY2UgdGhlc2UgYXJlIHBhcnQgb2YgdGhlIGtlcm5lbCBBQkksIHRoZXkKLWNhbm5vdCBiZSBjaGFuZ2VkIGluIGZ1dHVyZSBhbmQgc28gaXQncyBub3QgdGhlIGVuZCBvZiB0aGUgd29ybGQgdG8gaGF2ZQotdGhlbSBvcGVuLWNvZGVkLgotCi1GaXhlczogNDNkNGRhMmM0NWIyICgiYXJtNjQvc3ZlOiBwdHJhY2UgYW5kIEVMRiBjb3JlZHVtcCBzdXBwb3J0IikKLQotVXBzdHJlYW0tU3RhdHVzOiBCYWNrcG9ydCBbaHR0cHM6Ly9naXRodWIuY29tL3RvcnZhbGRzL2xpbnV4L2NvbW1pdC8zNTM0MWNhMDYxNGFiMTNlMWVmMzRhZDRmMjlhMzllMTVlZjMxZmE4XQotQ2M6IHN0YWJsZUB2Z2VyLmtlcm5lbC5vcmcKLUFja2VkLWJ5OiBEYXZlIE1hcnRpbiA8RGF2ZS5NYXJ0aW5AYXJtLmNvbT4KLVNpZ25lZC1vZmYtYnk6IEFuaXNzZSBBc3RpZXIgPGFhc3RpZXJAZnJlZWJveC5mcj4KLVNpZ25lZC1vZmYtYnk6IFdpbGwgRGVhY29uIDx3aWxsLmRlYWNvbkBhcm0uY29tPgotLS0tCi0gYXJjaC9hcm02NC9pbmNsdWRlL3VhcGkvYXNtL3B0cmFjZS5oIHwgOCArKystLS0tLQotIDEgZmlsZSBjaGFuZ2VkLCAzIGluc2VydGlvbnMoKyksIDUgZGVsZXRpb25zKC0pCi0KLWRpZmYgLS1naXQgYS9hcmNoL2FybTY0L2luY2x1ZGUvdWFwaS9hc20vcHRyYWNlLmggYi9hcmNoL2FybTY0L2luY2x1ZGUvdWFwaS9hc20vcHRyYWNlLmgKLWluZGV4IDk3YzUzMjAzMTUwYi4uZTkzMjI4NDk5M2Q0IDEwMDY0NAotLS0tIGEvYXJjaC9hcm02NC9pbmNsdWRlL3VhcGkvYXNtL3B0cmFjZS5oCi0rKysgYi9hcmNoL2FybTY0L2luY2x1ZGUvdWFwaS9hc20vcHRyYWNlLmgKLUBAIC02NSw4ICs2NSw2IEBACi0gCi0gI2lmbmRlZiBfX0FTU0VNQkxZX18KLSAKLS0jaW5jbHVkZSA8bGludXgvcHJjdGwuaD4KLS0KLSAvKgotICAqIFVzZXIgc3RydWN0dXJlcyBmb3IgZ2VuZXJhbCBwdXJwb3NlLCBmbG9hdGluZyBwb2ludCBhbmQgZGVidWcgcmVnaXN0ZXJzLgotICAqLwotQEAgLTExMywxMCArMTExLDEwIEBAIHN0cnVjdCB1c2VyX3N2ZV9oZWFkZXIgewotIAotIC8qCi0gICogQ29tbW9uIFNWRV9QVF8qIGZsYWdzOgotLSAqIFRoZXNlIG11c3QgYmUga2VwdCBpbiBzeW5jIHdpdGggcHJjdGwgaW50ZXJmYWNlIGluIDxsaW51eC9wdHJhY2UuaD4KLSsgKiBUaGVzZSBtdXN0IGJlIGtlcHQgaW4gc3luYyB3aXRoIHByY3RsIGludGVyZmFjZSBpbiA8bGludXgvcHJjdGwuaD4KLSAgKi8KLS0jZGVmaW5lIFNWRV9QVF9WTF9JTkhFUklUCQkoUFJfU1ZFX1ZMX0lOSEVSSVQgPj4gMTYpCi0tI2RlZmluZSBTVkVfUFRfVkxfT05FWEVDCQkoUFJfU1ZFX1NFVF9WTF9PTkVYRUMgPj4gMTYpCi0rI2RlZmluZSBTVkVfUFRfVkxfSU5IRVJJVAkJKCgxIDw8IDE3KSAvKiBQUl9TVkVfVkxfSU5IRVJJVCAqLyA+PiAxNikKLSsjZGVmaW5lIFNWRV9QVF9WTF9PTkVYRUMJCSgoMSA8PCAxOCkgLyogUFJfU1ZFX1NFVF9WTF9PTkVYRUMgKi8gPj4gMTYpCi0gCi0gCi0gLyoKLS0tIAotMi4yMi4wCi0KZGlmZiAtLWdpdCBhL3Bva3kvbWV0YS9yZWNpcGVzLWtlcm5lbC9saW51eC1saWJjLWhlYWRlcnMvbGludXgtbGliYy1oZWFkZXJzXzUuMC5iYiBiL3Bva3kvbWV0YS9yZWNpcGVzLWtlcm5lbC9saW51eC1saWJjLWhlYWRlcnMvbGludXgtbGliYy1oZWFkZXJzXzUuMi5iYgpzaW1pbGFyaXR5IGluZGV4IDc1JQpyZW5hbWUgZnJvbSBwb2t5L21ldGEvcmVjaXBlcy1rZXJuZWwvbGludXgtbGliYy1oZWFkZXJzL2xpbnV4LWxpYmMtaGVhZGVyc181LjAuYmIKcmVuYW1lIHRvIHBva3kvbWV0YS9yZWNpcGVzLWtlcm5lbC9saW51eC1saWJjLWhlYWRlcnMvbGludXgtbGliYy1oZWFkZXJzXzUuMi5iYgppbmRleCA0NzM2ODhkLi45ZDE4ZGY3IDEwMDY0NAotLS0gYS9wb2t5L21ldGEvcmVjaXBlcy1rZXJuZWwvbGludXgtbGliYy1oZWFkZXJzL2xpbnV4LWxpYmMtaGVhZGVyc181LjAuYmIKKysrIGIvcG9reS9tZXRhL3JlY2lwZXMta2VybmVsL2xpbnV4LWxpYmMtaGVhZGVycy9saW51eC1saWJjLWhlYWRlcnNfNS4yLmJiCkBAIC0xMiw4ICsxMiw3IEBACiBTUkNfVVJJX2FwcGVuZCA9ICJcCiAgICAgZmlsZTovLzAwMDEtc2NyaXB0cy1Vc2UtZml4ZWQtaW5wdXQtYW5kLW91dHB1dC1maWxlcy1pbnN0ZWFkLW9mLS5wYXRjaCBcCiAgICAgZmlsZTovLzAwMDEta2J1aWxkLWluc3RhbGxfaGVhZGVycy5zaC1TdHJpcC1fVUFQSS1mcm9tLWlmLWRlZmluZS5wYXRjaCBcCi0gICAgZmlsZTovLzAwMDEtYXJtNjQtc3ZlLXVhcGktYXNtLXB0cmFjZS5oLXNob3VsZC1ub3QtZGVwZW5kLW9uLXVhcC5wYXRjaCBcCiAiCiAKLVNSQ19VUklbbWQ1c3VtXSA9ICI3MzgxY2U4YWFjODBhMDE0NDhlMDY1Y2U3OTVjMTljMCIKLVNSQ19VUklbc2hhMjU2c3VtXSA9ICI0MzdiMTQxYTY0OTkxNTlmNWE3MjgyZDVlYjRiMmJlMDU1ZjhlODYyY2NjZTQ0ZDc0NjRlODc1OWMzMWEyZTQzIgorU1JDX1VSSVttZDVzdW1dID0gImRkZjk5NGRlMDBkN2IxODM5NTg4NmRkOWIzMGI5MjYyIgorU1JDX1VSSVtzaGEyNTZzdW1dID0gIjU0YWQ2NmY2NzJlMWE4MzFiNTc0ZjVlNzA0ZThhMDVmMWU2MTgwYTgyNDVkNGJkZDgxMTIwOGE2Y2IwYWMxZTciCmRpZmYgLS1naXQgYS9wb2t5L21ldGEvcmVjaXBlcy1rZXJuZWwvbGludXgva2VybmVsLWRldnNyYy5iYiBiL3Bva3kvbWV0YS9yZWNpcGVzLWtlcm5lbC9saW51eC9rZXJuZWwtZGV2c3JjLmJiCmluZGV4IDM5MDA0ODkuLmI2OGQ5NDUgMTAwNjQ0Ci0tLSBhL3Bva3kvbWV0YS9yZWNpcGVzLWtlcm5lbC9saW51eC9rZXJuZWwtZGV2c3JjLmJiCisrKyBiL3Bva3kvbWV0YS9yZWNpcGVzLWtlcm5lbC9saW51eC9rZXJuZWwtZGV2c3JjLmJiCkBAIC0xNDEsNyArMTQxLDcgQEAKIAkgICAgIyBhcmNoL2FybTY0L2luY2x1ZGUvYXNtL29wY29kZXMuaCByZWZlcmVuY2VzIGFyY2gvYXJtCiAJICAgIGNwIC1hIC0tcGFyZW50cyBhcmNoL2FybS9pbmNsdWRlL2FzbS9vcGNvZGVzLmggJGtlcm5lbGRpci9idWlsZC8KIAotICAgICAgICAgICAgY3AgLWEgLS1wYXJlbnRzIGFyY2gvYXJtNjQva2VybmVsL3Zkc28vZ2V0dGltZW9mZGF5LlMgJGtlcm5lbGRpci9idWlsZC8KKyAgICAgICAgICAgIGNwIC1hIC0tcGFyZW50cyBhcmNoL2FybTY0L2tlcm5lbC92ZHNvLypnZXR0aW1lb2ZkYXkuKiAka2VybmVsZGlyL2J1aWxkLwogICAgICAgICAgICAgY3AgLWEgLS1wYXJlbnRzIGFyY2gvYXJtNjQva2VybmVsL3Zkc28vc2lncmV0dXJuLlMgJGtlcm5lbGRpci9idWlsZC8KICAgICAgICAgICAgIGNwIC1hIC0tcGFyZW50cyBhcmNoL2FybTY0L2tlcm5lbC92ZHNvL25vdGUuUyAka2VybmVsZGlyL2J1aWxkLwogICAgICAgICAgICAgY3AgLWEgLS1wYXJlbnRzIGFyY2gvYXJtNjQva2VybmVsL3Zkc28vZ2VuX3Zkc29fb2Zmc2V0cy5zaCAka2VybmVsZGlyL2J1aWxkLwpAQCAtMTc5LDYgKzE3OSw4IEBACiAKIAljcCAtYSBpbmNsdWRlICRrZXJuZWxkaXIvYnVpbGQKIAorCWNwIC1hIC0tcGFyZW50cyBsaWIvdmRzby8qICRrZXJuZWxkaXIvYnVpbGQvIDI+L2Rldi9udWxsIHx8IDoKKwogCWNwIC1hIC0tcGFyZW50cyB0b29scy9pbmNsdWRlL3Rvb2xzL2xlX2J5dGVzaGlmdC5oICRrZXJuZWxkaXIvYnVpbGQvCiAJY3AgLWEgLS1wYXJlbnRzIHRvb2xzL2luY2x1ZGUvdG9vbHMvYmVfYnl0ZXNoaWZ0LmggJGtlcm5lbGRpci9idWlsZC8KIApAQCAtMjQwLDYgKzI0MiwxNSBAQAogICAgICMgQ29weSAuY29uZmlnIHRvIGluY2x1ZGUvY29uZmlnL2F1dG8uY29uZiBzbyAibWFrZSBwcmVwYXJlIiBpcyB1bm5lY2Vzc2FyeS4KICAgICBjcCAka2VybmVsZGlyL2J1aWxkLy5jb25maWcgJGtlcm5lbGRpci9idWlsZC9pbmNsdWRlL2NvbmZpZy9hdXRvLmNvbmYKIAorICAgICMgbWFrZSB0aGUgc2NyaXB0cyBweXRob24zIHNhZmUuIFdlIHdvbid0IGJlIHJ1bm5pbmcgdGhlc2UsIGFuZCBpZiB0aGV5IGFyZQorICAgICMgbGVmdCBhcyAvdXNyL2Jpbi9weXRob24gcm9vdGZzIGFzc2VtYmx5IHdpbGwgZmFpbCwgc2luY2Ugd2Ugb25seSBoYXZlIHB5dGhvbjMKKyAgICAjIGluIHRoZSBSREVQRU5EUyAoYW5kIHRoZSBweXRob24zIHBhY2thZ2UgZG9lcyBub3QgaW5jbHVkZSAvdXNyL2Jpbi9weXRob24pCisgICAgZm9yIHNzIGluICQoZmluZCAka2VybmVsZGlyL2J1aWxkL3NjcmlwdHMgLXR5cGUgZiAtbmFtZSAnKicpOyBkbworCXNlZCAtaSAncywvdXNyL2Jpbi9weXRob24yLC91c3IvYmluL2VudiBweXRob24zLCcgIiRzcyIKKwlzZWQgLWkgJ3MsL3Vzci9iaW4vZW52IHB5dGhvbjIsL3Vzci9iaW4vZW52IHB5dGhvbjMsJyAiJHNzIgorCXNlZCAtaSAncywvdXNyL2Jpbi9weXRob24sL3Vzci9iaW4vZW52IHB5dGhvbjMsJyAiJHNzIgorICAgIGRvbmUKKwogICAgIGNob3duIC1SIHJvb3Q6cm9vdCAke0R9CiB9CiAKQEAgLTI0OSw3ICsyNjAsNyBAQAogRklMRVNfJHtQTn0gPSAiJHtLRVJORUxfQlVJTERfUk9PVH0gJHtLRVJORUxfU1JDX1BBVEh9IgogRklMRVNfJHtQTn0tZGJnICs9ICIke0tFUk5FTF9CVUlMRF9ST09UfSovYnVpbGQvc2NyaXB0cy8qLy5kZWJ1Zy8qIgogCi1SREVQRU5EU18ke1BOfSA9ICJiYyBweXRob24gZmxleCBiaXNvbiAke1RDTElCQ30tdXRpbHMiCitSREVQRU5EU18ke1BOfSA9ICJiYyBweXRob24zIGZsZXggYmlzb24gJHtUQ0xJQkN9LXV0aWxzIgogIyA0LjE1KyBuZWVkcyB0aGVzZSBuZXh0IHR3byBSREVQRU5EUwogUkRFUEVORFNfJHtQTn0gKz0gIm9wZW5zc2wtZGV2IHV0aWwtbGludXgiCiAjIGFuZCB4ODYgbmVlZHMgYSBiaXQgbW9yZSBmb3IgNC4xNSsKZGlmZiAtLWdpdCBhL3Bva3kvbWV0YS9yZWNpcGVzLWtlcm5lbC9saW51eC9saW51eC1kdGIuaW5jIGIvcG9reS9tZXRhL3JlY2lwZXMta2VybmVsL2xpbnV4L2xpbnV4LWR0Yi5pbmMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGYxOTEyNzcuLjAwMDAwMDAKLS0tIGEvcG9reS9tZXRhL3JlY2lwZXMta2VybmVsL2xpbnV4L2xpbnV4LWR0Yi5pbmMKKysrIC9kZXYvbnVsbApAQCAtMSwzICswLDAgQEAKLXB5dGhvbigpIHsKLSAgICBiYi53YXJuKCJZb3UgYXJlIHVzaW5nIHRoZSBsaW51eC1kdGIuaW5jIHdoaWNoIGlzIGRlcHJlY2F0ZWQuIFlvdSBjYW4gc2FmZWx5IHJlbW92ZSBpdCBhcyB0aGUgRGV2aWNlIFRyZWUgc3VwcG9ydCBpcyBhdXRvbWF0aWNhbGx5IGVuYWJsZWQgd2hlbiBLRVJORUxfREVWSUNFVFJFRSBpcyBzZXQuIikKLX0KZGlmZiAtLWdpdCBhL3Bva3kvbWV0YS9yZWNpcGVzLWtlcm5lbC9saW51eC9saW51eC15b2N0by1kZXYuYmIgYi9wb2t5L21ldGEvcmVjaXBlcy1rZXJuZWwvbGludXgvbGludXgteW9jdG8tZGV2LmJiCmluZGV4IDIyNjhmYWYuLjE2M2YyODAgMTAwNjQ0Ci0tLSBhL3Bva3kvbWV0YS9yZWNpcGVzLWtlcm5lbC9saW51eC9saW51eC15b2N0by1kZXYuYmIKKysrIGIvcG9reS9tZXRhL3JlY2lwZXMta2VybmVsL2xpbnV4L2xpbnV4LXlvY3RvLWRldi5iYgpAQCAtMzksNyArMzksNyBAQAogREVQRU5EUyArPSAiJHtAYmIudXRpbHMuY29udGFpbnMoJ0FSQ0gnLCAneDg2JywgJ2VsZnV0aWxzLW5hdGl2ZScsICcnLCBkKX0iCiBERVBFTkRTICs9ICJvcGVuc3NsLW5hdGl2ZSB1dGlsLWxpbnV4LW5hdGl2ZSIKIAotQ09NUEFUSUJMRV9NQUNISU5FID0gIihxZW11YXJtfHFlbXV4ODZ8cWVtdXBwY3xxZW11bWlwc3xxZW11bWlwczY0fHFlbXV4ODYtNjQpIgorQ09NUEFUSUJMRV9NQUNISU5FID0gIihxZW11YXJtfHFlbXV4ODZ8cWVtdXBwY3xxZW11bWlwc3xxZW11bWlwczY0fHFlbXV4ODYtNjR8cWVtdXJpc2N2NjQpIgogCiBLRVJORUxfREVWSUNFVFJFRV9xZW11YXJtdjUgPSAidmVyc2F0aWxlLXBiLmR0YiIKIApkaWZmIC0tZ2l0IGEvcG9reS9tZXRhL3JlY2lwZXMta2VybmVsL2xpbnV4L2xpbnV4LXlvY3RvLXJ0XzUuMC5iYiBiL3Bva3kvbWV0YS9yZWNpcGVzLWtlcm5lbC9saW51eC9saW51eC15b2N0by1ydF81LjIuYmIKc2ltaWxhcml0eSBpbmRleCA4NyUKcmVuYW1lIGZyb20gcG9reS9tZXRhL3JlY2lwZXMta2VybmVsL2xpbnV4L2xpbnV4LXlvY3RvLXJ0XzUuMC5iYgpyZW5hbWUgdG8gcG9reS9tZXRhL3JlY2lwZXMta2VybmVsL2xpbnV4L2xpbnV4LXlvY3RvLXJ0XzUuMi5iYgppbmRleCAyMmYzYmYxLi5jZjUxNDJjIDEwMDY0NAotLS0gYS9wb2t5L21ldGEvcmVjaXBlcy1rZXJuZWwvbGludXgvbGludXgteW9jdG8tcnRfNS4wLmJiCisrKyBiL3Bva3kvbWV0YS9yZWNpcGVzLWtlcm5lbC9saW51eC9saW51eC15b2N0by1ydF81LjIuYmIKQEAgLTEsNCArMSw0IEBACi1LQlJBTkNIID89ICJ2NS4wL3N0YW5kYXJkL3ByZWVtcHQtcnQvYmFzZSIKK0tCUkFOQ0ggPz0gInY1LjIvc3RhbmRhcmQvcHJlZW1wdC1ydC9iYXNlIgogCiByZXF1aXJlIHJlY2lwZXMta2VybmVsL2xpbnV4L2xpbnV4LXlvY3RvLmluYwogCkBAIC0xMSwxMyArMTEsMTMgQEAKICAgICAgICAgcmFpc2UgYmIucGFyc2UuU2tpcFJlY2lwZSgiU2V0IFBSRUZFUlJFRF9QUk9WSURFUl92aXJ0dWFsL2tlcm5lbCB0byBsaW51eC15b2N0by1ydCB0byBlbmFibGUgaXQiKQogfQogCi1TUkNSRVZfbWFjaGluZSA/PSAiZTZjYjgxMmI1NTMyNjMwYjZmYzZkZmQ3Nzc4ZDU3YTQ5MDdkMzE4MCIKLVNSQ1JFVl9tZXRhID89ICI3ZjZlOTdjMzU3NzQ2MzgyZDQzMzllN2UwNDYzNjM3ZTcxNWFjZDRiIgorU1JDUkVWX21hY2hpbmUgPz0gImM2ZWIxNjllOTE0ZGVmMDBjMzdjYzI5MTc0ODZjNjM3ZDgwMGQ0MDQiCitTUkNSRVZfbWV0YSA/PSAiYTM2YzgyMTI4ZDljY2VjODc4ZDFjMGM0NTQyYjg3ZDZjZjVlOWE3YyIKIAogU1JDX1VSSSA9ICJnaXQ6Ly9naXQueW9jdG9wcm9qZWN0Lm9yZy9saW51eC15b2N0by5naXQ7YnJhbmNoPSR7S0JSQU5DSH07bmFtZT1tYWNoaW5lIFwKLSAgICAgICAgICAgZ2l0Oi8vZ2l0LnlvY3RvcHJvamVjdC5vcmcveW9jdG8ta2VybmVsLWNhY2hlO3R5cGU9a21ldGE7bmFtZT1tZXRhO2JyYW5jaD15b2N0by01LjA7ZGVzdHN1ZmZpeD0ke0tNRVRBfSIKKyAgICAgICAgICAgZ2l0Oi8vZ2l0LnlvY3RvcHJvamVjdC5vcmcveW9jdG8ta2VybmVsLWNhY2hlO3R5cGU9a21ldGE7bmFtZT1tZXRhO2JyYW5jaD15b2N0by01LjI7ZGVzdHN1ZmZpeD0ke0tNRVRBfSIKIAotTElOVVhfVkVSU0lPTiA/PSAiNS4wLjE5IgorTElOVVhfVkVSU0lPTiA/PSAiNS4yLjEwIgogCiBMSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9DT1BZSU5HO21kNT1iYmVhODE1ZWUyNzk1YjJmNDIzMDgyNmMwYzZiODgxNCIKIApkaWZmIC0tZ2l0IGEvcG9reS9tZXRhL3JlY2lwZXMta2VybmVsL2xpbnV4L2xpbnV4LXlvY3RvLXRpbnlfNS4wLmJiIGIvcG9reS9tZXRhL3JlY2lwZXMta2VybmVsL2xpbnV4L2xpbnV4LXlvY3RvLXRpbnlfNS4yLmJiCnNpbWlsYXJpdHkgaW5kZXggNjYlCnJlbmFtZSBmcm9tIHBva3kvbWV0YS9yZWNpcGVzLWtlcm5lbC9saW51eC9saW51eC15b2N0by10aW55XzUuMC5iYgpyZW5hbWUgdG8gcG9reS9tZXRhL3JlY2lwZXMta2VybmVsL2xpbnV4L2xpbnV4LXlvY3RvLXRpbnlfNS4yLmJiCmluZGV4IDMzNjcyYzYuLmMyMTkzYzAgMTAwNjQ0Ci0tLSBhL3Bva3kvbWV0YS9yZWNpcGVzLWtlcm5lbC9saW51eC9saW51eC15b2N0by10aW55XzUuMC5iYgorKysgYi9wb2t5L21ldGEvcmVjaXBlcy1rZXJuZWwvbGludXgvbGludXgteW9jdG8tdGlueV81LjIuYmIKQEAgLTEsMTIgKzEsMTIgQEAKLUtCUkFOQ0ggPz0gInY1LjAvc3RhbmRhcmQvdGlueS9iYXNlIgotS0JSQU5DSF9xZW11YXJtICA/PSAidjUuMC9zdGFuZGFyZC90aW55L2FybS12ZXJzYXRpbGUtOTI2ZWpzIgorS0JSQU5DSCA/PSAidjUuMi9zdGFuZGFyZC90aW55L2Jhc2UiCitLQlJBTkNIX3FlbXVhcm0gID89ICJ2NS4yL3N0YW5kYXJkL3RpbnkvYXJtLXZlcnNhdGlsZS05MjZlanMiCiAKIExJTlVYX0tFUk5FTF9UWVBFID0gInRpbnkiCiBLQ09ORklHX01PREUgPSAiLS1hbGxub2NvbmZpZyIKIAogcmVxdWlyZSByZWNpcGVzLWtlcm5lbC9saW51eC9saW51eC15b2N0by5pbmMKIAotTElOVVhfVkVSU0lPTiA/PSAiNS4wLjE5IgorTElOVVhfVkVSU0lPTiA/PSAiNS4yLjEwIgogTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vQ09QWUlORzttZDU9YmJlYTgxNWVlMjc5NWIyZjQyMzA4MjZjMGM2Yjg4MTQiCiAKIERFUEVORFMgKz0gIiR7QGJiLnV0aWxzLmNvbnRhaW5zKCdBUkNIJywgJ3g4NicsICdlbGZ1dGlscy1uYXRpdmUnLCAnJywgZCl9IgpAQCAtMTUsMTQgKzE1LDE0IEBACiBLTUVUQSA9ICJrZXJuZWwtbWV0YSIKIEtDT05GX0JTUF9BVURJVF9MRVZFTCA9ICIyIgogCi1TUkNSRVZfbWFjaGluZV9xZW11YXJtID89ICJiOTAwMTI4Nzk4NGIwMDY2ODE0Yzg3MzlmMzhkNjI5ZGU3MzczOWI3IgotU1JDUkVWX21hY2hpbmUgPz0gIjU1ZGQxNTMzNmI3MzAxYjY4NmEwYzE4M2Y1MzcyYjQ5YzEwMDNkMDMiCi1TUkNSRVZfbWV0YSA/PSAiN2Y2ZTk3YzM1Nzc0NjM4MmQ0MzM5ZTdlMDQ2MzYzN2U3MTVhY2Q0YiIKK1NSQ1JFVl9tYWNoaW5lX3FlbXVhcm0gPz0gIjk0ZDAzMTU0MDY3MDQ5YjQxNzUyNmY0NjQyOTcyOWQ0YmExZTA5YjciCitTUkNSRVZfbWFjaGluZSA/PSAiOGQ4YmY1NmIyMzczYmZkYjFhOTcwMmI5NmEwZTkxZTY3MDZmNjJkNCIKK1NSQ1JFVl9tZXRhID89ICJhMzZjODIxMjhkOWNjZWM4NzhkMWMwYzQ1NDJiODdkNmNmNWU5YTdjIgogCiBQViA9ICIke0xJTlVYX1ZFUlNJT059K2dpdCR7U1JDUFZ9IgogCiBTUkNfVVJJID0gImdpdDovL2dpdC55b2N0b3Byb2plY3Qub3JnL2xpbnV4LXlvY3RvLmdpdDticmFuY2g9JHtLQlJBTkNIfTtuYW1lPW1hY2hpbmUgXAotICAgICAgICAgICBnaXQ6Ly9naXQueW9jdG9wcm9qZWN0Lm9yZy95b2N0by1rZXJuZWwtY2FjaGU7dHlwZT1rbWV0YTtuYW1lPW1ldGE7YnJhbmNoPXlvY3RvLTUuMDtkZXN0c3VmZml4PSR7S01FVEF9IgorICAgICAgICAgICBnaXQ6Ly9naXQueW9jdG9wcm9qZWN0Lm9yZy95b2N0by1rZXJuZWwtY2FjaGU7dHlwZT1rbWV0YTtuYW1lPW1ldGE7YnJhbmNoPXlvY3RvLTUuMjtkZXN0c3VmZml4PSR7S01FVEF9IgogCiBDT01QQVRJQkxFX01BQ0hJTkUgPSAicWVtdXg4NnxxZW11eDg2LTY0fHFlbXVhcm18cWVtdWFybXY1IgogCmRpZmYgLS1naXQgYS9wb2t5L21ldGEvcmVjaXBlcy1rZXJuZWwvbGludXgvbGludXgteW9jdG9fNS4wLmJiIGIvcG9reS9tZXRhL3JlY2lwZXMta2VybmVsL2xpbnV4L2xpbnV4LXlvY3RvXzUuMC5iYgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggODg3ZTg4ZS4uMDAwMDAwMAotLS0gYS9wb2t5L21ldGEvcmVjaXBlcy1rZXJuZWwvbGludXgvbGludXgteW9jdG9fNS4wLmJiCisrKyAvZGV2L251bGwKQEAgLTEsNTQgKzAsMCBAQAotS0JSQU5DSCA/PSAidjUuMC9zdGFuZGFyZC9iYXNlIgotCi1yZXF1aXJlIHJlY2lwZXMta2VybmVsL2xpbnV4L2xpbnV4LXlvY3RvLmluYwotCi0jIGJvYXJkIHNwZWNpZmljIGJyYW5jaGVzCi1LQlJBTkNIX3FlbXVhcm0gID89ICJ2NS4wL3N0YW5kYXJkL2FybS12ZXJzYXRpbGUtOTI2ZWpzIgotS0JSQU5DSF9xZW11YXJtNjQgPz0gInY1LjAvc3RhbmRhcmQvcWVtdWFybTY0IgotS0JSQU5DSF9xZW11bWlwcyA/PSAidjUuMC9zdGFuZGFyZC9tdGktbWFsdGEzMiIKLUtCUkFOQ0hfcWVtdXBwYyAgPz0gInY1LjAvc3RhbmRhcmQvcWVtdXBwYyIKLUtCUkFOQ0hfcWVtdXJpc2N2NjQgID89ICJ2NS4wL3N0YW5kYXJkL2Jhc2UiCi1LQlJBTkNIX3FlbXV4ODYgID89ICJ2NS4wL3N0YW5kYXJkL2Jhc2UiCi1LQlJBTkNIX3FlbXV4ODYtNjQgPz0gInY1LjAvc3RhbmRhcmQvYmFzZSIKLUtCUkFOQ0hfcWVtdW1pcHM2NCA/PSAidjUuMC9zdGFuZGFyZC9tdGktbWFsdGE2NCIKLQotU1JDUkVWX21hY2hpbmVfcWVtdWFybSA/PSAiZDFlZDk4MGFkOTg5MjUyZDQyMzg2YzhiYzYzYjJmNWYxMTk4NWVhNCIKLVNSQ1JFVl9tYWNoaW5lX3FlbXVhcm02NCA/PSAiNTVkZDE1MzM2YjczMDFiNjg2YTBjMTgzZjUzNzJiNDljMTAwM2QwMyIKLVNSQ1JFVl9tYWNoaW5lX3FlbXVtaXBzID89ICIxNTIwZTc4MTk1ZTY0ZjI3YmU0NmE0NmE4ZDY3MTFjODQ3MGZiMDgzIgotU1JDUkVWX21hY2hpbmVfcWVtdXBwYyA/PSAiNTVkZDE1MzM2YjczMDFiNjg2YTBjMTgzZjUzNzJiNDljMTAwM2QwMyIKLVNSQ1JFVl9tYWNoaW5lX3FlbXVyaXNjdjY0ID89ICIwMDYzOGNkZDhmOTI4NjlhMGY4OWViZTMyODlmZGJkODU2YmE5NDU4IgotU1JDUkVWX21hY2hpbmVfcWVtdXg4NiA/PSAiNTVkZDE1MzM2YjczMDFiNjg2YTBjMTgzZjUzNzJiNDljMTAwM2QwMyIKLVNSQ1JFVl9tYWNoaW5lX3FlbXV4ODYtNjQgPz0gIjU1ZGQxNTMzNmI3MzAxYjY4NmEwYzE4M2Y1MzcyYjQ5YzEwMDNkMDMiCi1TUkNSRVZfbWFjaGluZV9xZW11bWlwczY0ID89ICI5ZDQxMDViMzJjZjEyM2E4NjFiYzc1NDM3N2QyZjJlMTU2Mjc4YTdlIgotU1JDUkVWX21hY2hpbmUgPz0gIjU1ZGQxNTMzNmI3MzAxYjY4NmEwYzE4M2Y1MzcyYjQ5YzEwMDNkMDMiCi1TUkNSRVZfbWV0YSA/PSAiN2Y2ZTk3YzM1Nzc0NjM4MmQ0MzM5ZTdlMDQ2MzYzN2U3MTVhY2Q0YiIKLQotIyByZW1hcCBxZW11YXJtIHRvIHFlbXVhcm1hMTUgZm9yIHRoZSA1LjAga2VybmVsCi0jIEtNQUNISU5FX3FlbXVhcm0gPz0gInFlbXVhcm1hMTUiCi0KLVNSQ19VUkkgPSAiZ2l0Oi8vZ2l0LnlvY3RvcHJvamVjdC5vcmcvbGludXgteW9jdG8uZ2l0O25hbWU9bWFjaGluZTticmFuY2g9JHtLQlJBTkNIfTsgXAotICAgICAgICAgICBnaXQ6Ly9naXQueW9jdG9wcm9qZWN0Lm9yZy95b2N0by1rZXJuZWwtY2FjaGU7dHlwZT1rbWV0YTtuYW1lPW1ldGE7YnJhbmNoPXlvY3RvLTUuMDtkZXN0c3VmZml4PSR7S01FVEF9IgotCi1MSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9DT1BZSU5HO21kNT1iYmVhODE1ZWUyNzk1YjJmNDIzMDgyNmMwYzZiODgxNCIKLUxJTlVYX1ZFUlNJT04gPz0gIjUuMC4xOSIKLQotREVQRU5EUyArPSAiJHtAYmIudXRpbHMuY29udGFpbnMoJ0FSQ0gnLCAneDg2JywgJ2VsZnV0aWxzLW5hdGl2ZScsICcnLCBkKX0iCi1ERVBFTkRTICs9ICJvcGVuc3NsLW5hdGl2ZSB1dGlsLWxpbnV4LW5hdGl2ZSIKLQotUFYgPSAiJHtMSU5VWF9WRVJTSU9OfStnaXQke1NSQ1BWfSIKLQotS01FVEEgPSAia2VybmVsLW1ldGEiCi1LQ09ORl9CU1BfQVVESVRfTEVWRUwgPSAiMiIKLQotS0VSTkVMX0RFVklDRVRSRUVfcWVtdWFybXY1ID0gInZlcnNhdGlsZS1wYi5kdGIiCi0KLUNPTVBBVElCTEVfTUFDSElORSA9ICJxZW11YXJtfHFlbXVhcm12NXxxZW11YXJtNjR8cWVtdXg4NnxxZW11cHBjfHFlbXVtaXBzfHFlbXVtaXBzNjR8cWVtdXg4Ni02NHxxZW11cmlzY3Y2NCIKLQotIyBGdW5jdGlvbmFsaXR5IGZsYWdzCi1LRVJORUxfRVhUUkFfRkVBVFVSRVMgPz0gImZlYXR1cmVzL25ldGZpbHRlci9uZXRmaWx0ZXIuc2NjIgotS0VSTkVMX0ZFQVRVUkVTX2FwcGVuZCA9ICIgJHtLRVJORUxfRVhUUkFfRkVBVFVSRVN9IgotS0VSTkVMX0ZFQVRVUkVTX2FwcGVuZF9xZW11YWxsPSIgY2ZnL3ZpcnRpby5zY2MgZmVhdHVyZXMvZHJtLWJvY2hzL2RybS1ib2Nocy5zY2MiCi1LRVJORUxfRkVBVFVSRVNfYXBwZW5kX3FlbXV4ODY9IiBjZmcvc291bmQuc2NjIGNmZy9wYXJhdmlydF9rdm0uc2NjIgotS0VSTkVMX0ZFQVRVUkVTX2FwcGVuZF9xZW11eDg2LTY0PSIgY2ZnL3NvdW5kLnNjYyBjZmcvcGFyYXZpcnRfa3ZtLnNjYyIKLUtFUk5FTF9GRUFUVVJFU19hcHBlbmQgPSAiICR7QGJiLnV0aWxzLmNvbnRhaW5zKCJUVU5FX0ZFQVRVUkVTIiwgIm14MzIiLCAiIGNmZy94MzIuc2NjIiwgIiIgLGQpfSIKLUtFUk5FTF9GRUFUVVJFU19hcHBlbmQgPSAiICR7QGJiLnV0aWxzLmNvbnRhaW5zKCJESVNUUk9fRkVBVFVSRVMiLCAicHRlc3QiLCAiIGZlYXR1cmVzL3Njc2kvc2NzaS1kZWJ1Zy5zY2MiLCAiIiAsZCl9IgpkaWZmIC0tZ2l0IGEvcG9reS9tZXRhL3JlY2lwZXMta2VybmVsL2xpbnV4L2xpbnV4LXlvY3RvXzUuMi5iYiBiL3Bva3kvbWV0YS9yZWNpcGVzLWtlcm5lbC9saW51eC9saW51eC15b2N0b181LjIuYmIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOWE3NWYxNwotLS0gL2Rldi9udWxsCisrKyBiL3Bva3kvbWV0YS9yZWNpcGVzLWtlcm5lbC9saW51eC9saW51eC15b2N0b181LjIuYmIKQEAgLTAsMCArMSw1NCBAQAorS0JSQU5DSCA/PSAidjUuMi9zdGFuZGFyZC9iYXNlIgorCityZXF1aXJlIHJlY2lwZXMta2VybmVsL2xpbnV4L2xpbnV4LXlvY3RvLmluYworCisjIGJvYXJkIHNwZWNpZmljIGJyYW5jaGVzCitLQlJBTkNIX3FlbXVhcm0gID89ICJ2NS4yL3N0YW5kYXJkL2FybS12ZXJzYXRpbGUtOTI2ZWpzIgorS0JSQU5DSF9xZW11YXJtNjQgPz0gInY1LjIvc3RhbmRhcmQvcWVtdWFybTY0IgorS0JSQU5DSF9xZW11bWlwcyA/PSAidjUuMi9zdGFuZGFyZC9tdGktbWFsdGEzMiIKK0tCUkFOQ0hfcWVtdXBwYyAgPz0gInY1LjIvc3RhbmRhcmQvcWVtdXBwYyIKK0tCUkFOQ0hfcWVtdXJpc2N2NjQgID89ICJ2NS4yL3N0YW5kYXJkL2Jhc2UiCitLQlJBTkNIX3FlbXV4ODYgID89ICJ2NS4yL3N0YW5kYXJkL2Jhc2UiCitLQlJBTkNIX3FlbXV4ODYtNjQgPz0gInY1LjIvc3RhbmRhcmQvYmFzZSIKK0tCUkFOQ0hfcWVtdW1pcHM2NCA/PSAidjUuMi9zdGFuZGFyZC9tdGktbWFsdGE2NCIKKworU1JDUkVWX21hY2hpbmVfcWVtdWFybSA/PSAiZDMyOWRjNzI1NmRmZWY2NmRlZGI2MDRjYWZlYTViNTY4NWM1N2Y5ZCIKK1NSQ1JFVl9tYWNoaW5lX3FlbXVhcm02NCA/PSAiOGQ4YmY1NmIyMzczYmZkYjFhOTcwMmI5NmEwZTkxZTY3MDZmNjJkNCIKK1NSQ1JFVl9tYWNoaW5lX3FlbXVtaXBzID89ICI2YTQ2YjgyNjE0MzMxMzFlYTk5ZTU3MjVkM2ZkNzU5NjkwMDQ2MTdjIgorU1JDUkVWX21hY2hpbmVfcWVtdXBwYyA/PSAiOGQ4YmY1NmIyMzczYmZkYjFhOTcwMmI5NmEwZTkxZTY3MDZmNjJkNCIKK1NSQ1JFVl9tYWNoaW5lX3FlbXVyaXNjdjY0ID89ICI4ZDhiZjU2YjIzNzNiZmRiMWE5NzAyYjk2YTBlOTFlNjcwNmY2MmQ0IgorU1JDUkVWX21hY2hpbmVfcWVtdXg4NiA/PSAiOGQ4YmY1NmIyMzczYmZkYjFhOTcwMmI5NmEwZTkxZTY3MDZmNjJkNCIKK1NSQ1JFVl9tYWNoaW5lX3FlbXV4ODYtNjQgPz0gIjhkOGJmNTZiMjM3M2JmZGIxYTk3MDJiOTZhMGU5MWU2NzA2ZjYyZDQiCitTUkNSRVZfbWFjaGluZV9xZW11bWlwczY0ID89ICIwNmJkNTYzMDA5ZmZjNDgwYmVmYTBkMTE2ZmFlZDE4ZTYzNzg1NzM5IgorU1JDUkVWX21hY2hpbmUgPz0gIjhkOGJmNTZiMjM3M2JmZGIxYTk3MDJiOTZhMGU5MWU2NzA2ZjYyZDQiCitTUkNSRVZfbWV0YSA/PSAiYTM2YzgyMTI4ZDljY2VjODc4ZDFjMGM0NTQyYjg3ZDZjZjVlOWE3YyIKKworIyByZW1hcCBxZW11YXJtIHRvIHFlbXVhcm1hMTUgZm9yIHRoZSA1LjIga2VybmVsCisjIEtNQUNISU5FX3FlbXVhcm0gPz0gInFlbXVhcm1hMTUiCisKK1NSQ19VUkkgPSAiZ2l0Oi8vZ2l0LnlvY3RvcHJvamVjdC5vcmcvbGludXgteW9jdG8uZ2l0O25hbWU9bWFjaGluZTticmFuY2g9JHtLQlJBTkNIfTsgXAorICAgICAgICAgICBnaXQ6Ly9naXQueW9jdG9wcm9qZWN0Lm9yZy95b2N0by1rZXJuZWwtY2FjaGU7dHlwZT1rbWV0YTtuYW1lPW1ldGE7YnJhbmNoPXlvY3RvLTUuMjtkZXN0c3VmZml4PSR7S01FVEF9IgorCitMSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9DT1BZSU5HO21kNT1iYmVhODE1ZWUyNzk1YjJmNDIzMDgyNmMwYzZiODgxNCIKK0xJTlVYX1ZFUlNJT04gPz0gIjUuMi4xMCIKKworREVQRU5EUyArPSAiJHtAYmIudXRpbHMuY29udGFpbnMoJ0FSQ0gnLCAneDg2JywgJ2VsZnV0aWxzLW5hdGl2ZScsICcnLCBkKX0iCitERVBFTkRTICs9ICJvcGVuc3NsLW5hdGl2ZSB1dGlsLWxpbnV4LW5hdGl2ZSIKKworUFYgPSAiJHtMSU5VWF9WRVJTSU9OfStnaXQke1NSQ1BWfSIKKworS01FVEEgPSAia2VybmVsLW1ldGEiCitLQ09ORl9CU1BfQVVESVRfTEVWRUwgPSAiMiIKKworS0VSTkVMX0RFVklDRVRSRUVfcWVtdWFybXY1ID0gInZlcnNhdGlsZS1wYi5kdGIiCisKK0NPTVBBVElCTEVfTUFDSElORSA9ICJxZW11YXJtfHFlbXVhcm12NXxxZW11YXJtNjR8cWVtdXg4NnxxZW11cHBjfHFlbXVtaXBzfHFlbXVtaXBzNjR8cWVtdXg4Ni02NHxxZW11cmlzY3Y2NCIKKworIyBGdW5jdGlvbmFsaXR5IGZsYWdzCitLRVJORUxfRVhUUkFfRkVBVFVSRVMgPz0gImZlYXR1cmVzL25ldGZpbHRlci9uZXRmaWx0ZXIuc2NjIgorS0VSTkVMX0ZFQVRVUkVTX2FwcGVuZCA9ICIgJHtLRVJORUxfRVhUUkFfRkVBVFVSRVN9IgorS0VSTkVMX0ZFQVRVUkVTX2FwcGVuZF9xZW11YWxsPSIgY2ZnL3ZpcnRpby5zY2MgZmVhdHVyZXMvZHJtLWJvY2hzL2RybS1ib2Nocy5zY2MiCitLRVJORUxfRkVBVFVSRVNfYXBwZW5kX3FlbXV4ODY9IiBjZmcvc291bmQuc2NjIGNmZy9wYXJhdmlydF9rdm0uc2NjIgorS0VSTkVMX0ZFQVRVUkVTX2FwcGVuZF9xZW11eDg2LTY0PSIgY2ZnL3NvdW5kLnNjYyBjZmcvcGFyYXZpcnRfa3ZtLnNjYyIKK0tFUk5FTF9GRUFUVVJFU19hcHBlbmQgPSAiICR7QGJiLnV0aWxzLmNvbnRhaW5zKCJUVU5FX0ZFQVRVUkVTIiwgIm14MzIiLCAiIGNmZy94MzIuc2NjIiwgIiIgLGQpfSIKK0tFUk5FTF9GRUFUVVJFU19hcHBlbmQgPSAiICR7QGJiLnV0aWxzLmNvbnRhaW5zKCJESVNUUk9fRkVBVFVSRVMiLCAicHRlc3QiLCAiIGZlYXR1cmVzL3Njc2kvc2NzaS1kZWJ1Zy5zY2MiLCAiIiAsZCl9IgpkaWZmIC0tZ2l0IGEvcG9reS9tZXRhL3JlY2lwZXMta2VybmVsL3BlcmYvcGVyZi5iYiBiL3Bva3kvbWV0YS9yZWNpcGVzLWtlcm5lbC9wZXJmL3BlcmYuYmIKaW5kZXggNGU2MDNmMS4uN2YwMGRmMCAxMDA2NDQKLS0tIGEvcG9reS9tZXRhL3JlY2lwZXMta2VybmVsL3BlcmYvcGVyZi5iYgorKysgYi9wb2t5L21ldGEvcmVjaXBlcy1rZXJuZWwvcGVyZi9wZXJmLmJiCkBAIC0xMyw3ICsxMyw3IEBACiAKIFBBQ0tBR0VDT05GSUcgPz89ICJzY3JpcHRpbmcgdHVpIGxpYnVud2luZCIKIFBBQ0tBR0VDT05GSUdbZHdhcmZdID0gIixOT19EV0FSRj0xIgotUEFDS0FHRUNPTkZJR1tzY3JpcHRpbmddID0gIixOT19MSUJQRVJMPTEgTk9fTElCUFlUSE9OPTEscGVybCBweXRob24iCitQQUNLQUdFQ09ORklHW3NjcmlwdGluZ10gPSAiLE5PX0xJQlBFUkw9MSBOT19MSUJQWVRIT049MSxwZXJsIHB5dGhvbjMiCiAjIGd1aSBzdXBwb3J0IHdhcyBhZGRlZCB3aXRoIGtlcm5lbCAzLjYuMzUKICMgc2luY2UgMy4xMCBsaWJuZXd0IHdhcyByZXBsYWNlZCBieSBzbGFuZwogIyB0byBjb3ZlciBhIHdpZGUgcmFuZ2Ugb2Yga2VybmVsIHdlIGFkZCBib3RoIGRlcGVuZGVuY2llcwpAQCAtNDQsOCArNDQsOCBAQAogaW5oZXJpdCBsaW51eC1rZXJuZWwtYmFzZSBrZXJuZWwtYXJjaCBtYW5wYWdlcwogCiAjIG5lZWRlZCBmb3IgYnVpbGRpbmcgdGhlIHRvb2xzL3BlcmYgUHl0aG9uIGJpbmRpbmdzCi1pbmhlcml0ICR7QGJiLnV0aWxzLmNvbnRhaW5zKCdQQUNLQUdFQ09ORklHJywgJ3NjcmlwdGluZycsICdweXRob25uYXRpdmUnLCAnJywgZCl9Ci1pbmhlcml0IHB5dGhvbi1kaXIKK2luaGVyaXQgJHtAYmIudXRpbHMuY29udGFpbnMoJ1BBQ0tBR0VDT05GSUcnLCAnc2NyaXB0aW5nJywgJ3B5dGhvbjNuYXRpdmUnLCAnJywgZCl9Citpbmhlcml0IHB5dGhvbjMtZGlyCiBleHBvcnQgUFlUSE9OX1NJVEVQQUNLQUdFU19ESVIKIAogI2tlcm5lbCAzLjErIHN1cHBvcnRzIFdFUlJPUiB0byBkaXNhYmxlIHdhcm5pbmdzIGFzIGVycm9ycwpAQCAtOTQsNiArOTQsNyBAQAogICAgICdzaGFyZWRpcj0ke0Bvcy5wYXRoLnJlbHBhdGgoZGF0YWRpciwgcHJlZml4KX0nIFwKICAgICAnbWFuZGlyPSR7QG9zLnBhdGgucmVscGF0aChtYW5kaXIsIHByZWZpeCl9JyBcCiAgICAgJ2luZm9kaXI9JHtAb3MucGF0aC5yZWxwYXRoKGluZm9kaXIsIHByZWZpeCl9JyBcCisgICAgJHtAYmIudXRpbHMuY29udGFpbnMoJ1BBQ0tBR0VDT05GSUcnLCAnc2NyaXB0aW5nJywgJ1BZVEhPTj1weXRob24zIFBZVEhPTl9DT05GSUc9cHl0aG9uMy1jb25maWcnLCAnJywgZCl9IFwKICIKIAogIyBEdXJpbmcgZG9fY29uZmlndXJlLCB3ZSBtaWdodCBydW4gYSAnbWFrZSBjbGVhbicuIFRoYXQgb2Z0ZW4gYnJlYWtzCkBAIC0xMzIsNyArMTMzLDcgQEAKIAlvZV9ydW5tYWtlIGluc3RhbGwKIAkjIHdlIGFyZSBjaGVja2luZyBmb3IgdGhpcyBtYWtlIHRhcmdldCB0byBiZSBjb21wYXRpYmxlIHdpdGggb2xkZXIgcGVyZiB2ZXJzaW9ucwogCWlmICR7QGJiLnV0aWxzLmNvbnRhaW5zKCdQQUNLQUdFQ09ORklHJywgJ3NjcmlwdGluZycsICd0cnVlJywgJ2ZhbHNlJywgZCl9ICYmIGdyZXAgLXEgaW5zdGFsbC1weXRob25fZXh0ICR7U30vdG9vbHMvcGVyZi9NYWtlZmlsZSo7IHRoZW4KLQkJb2VfcnVubWFrZSBERVNURElSPSR7RH0gaW5zdGFsbC1weXRob25fZXh0CisJICAgIG9lX3J1bm1ha2UgREVTVERJUj0ke0R9IGluc3RhbGwtcHl0aG9uX2V4dAogCWZpCiB9CiAKQEAgLTIzMiwxMyArMjMzLDE5IEBACiAgICAgZmkKIAogICAgICMgdXNlIC91c3IvYmluL2VudiBpbnN0ZWFkIG9mIHZlcnNpb24gc3BlY2lmaWMgcHl0aG9uCi0gICAgZm9yIHMgaW4gYGZpbmQgJHtTfS90b29scy9wZXJmL3NjcmlwdHMvcHl0aG9uLyAtbmFtZSAnKi5weSdgOyBkbwotICAgICAgICBzZWQgLWkgJ3MsL3Vzci9iaW4vcHl0aG9uMiwvdXNyL2Jpbi9lbnYgcHl0aG9uLCcgIiR7c30iCisgICAgZm9yIHMgaW4gYGZpbmQgJHtTfS90b29scy9wZXJmLyAtbmFtZSAnKi5weSdgOyBkbworICAgICAgICBzZWQgLWkgJ3MsL3Vzci9iaW4vcHl0aG9uLC91c3IvYmluL2VudiBweXRob24zLCcgIiR7c30iCisgICAgICAgIHNlZCAtaSAncywvdXNyL2Jpbi9weXRob24yLC91c3IvYmluL2VudiBweXRob24zLCcgIiR7c30iCisgICAgICAgIHNlZCAtaSAncywvdXNyL2Jpbi9lbnYgcHl0aG9uMiwvdXNyL2Jpbi9lbnYgcHl0aG9uMywnICIke3N9IgogICAgIGRvbmUKIAogICAgICMgdW5pc3RkLmggY2FuIGJlIG91dCBvZiBzeW5jIGJldHdlZW4gbGliYy1oZWFkZXJzIGFuZCB0aGUgY2FwdHVyZWQgdmVyc2lvbiBpbiB0aGUgcGVyZiBzb3VyY2UKICAgICAjIHNvIHdlIGNvcHkgaXQgZnJvbSB0aGUgc3lzcm9vdCB1bmlzdGQuaCB0byB0aGUgcGVyZiB1bmlzdGQuaAogICAgIGluc3RhbGwgLUQgLW0wNjQ0ICR7U1RBR0lOR19JTkNESVJ9L2FzbS1nZW5lcmljL3VuaXN0ZC5oICR7U30vdG9vbHMvaW5jbHVkZS91YXBpL2FzbS1nZW5lcmljL3VuaXN0ZC5oCisgICAgaW5zdGFsbCAtRCAtbTA2NDQgJHtTVEFHSU5HX0lOQ0RJUn0vYXNtLWdlbmVyaWMvdW5pc3RkLmggJHtTfS9pbmNsdWRlL3VhcGkvYXNtLWdlbmVyaWMvdW5pc3RkLmgKKworICAgICMgYml0cy5oIGNhbiBoYXZlIHRoZSBzYW1lIGlzc3VlbiBhcyB1bmlzdGQuaCwgc28gd2UgbWFrZSB0aGUgdG9vbHMgdmFyaWFudCB0YWtlIHByZWNlZGVuY2UKKyAgICBpbnN0YWxsIC1EIC1tMDY0NCAke1N9L3Rvb2xzL2luY2x1ZGUvbGludXgvYml0cy5oICR7U30vaW5jbHVkZS9saW51eC9iaXRzLmgKIH0KIAogcHl0aG9uIGRvX3BhY2thZ2VfcHJlcGVuZCgpIHsKQEAgLTI1Miw5ICsyNTksOSBAQAogCiBSREVQRU5EU18ke1BOfSArPSAiZWxmdXRpbHMgYmFzaCIKIFJERVBFTkRTXyR7UE59LWFyY2hpdmUgPSsgImJhc2giCi1SREVQRU5EU18ke1BOfS1weXRob24gPSsgImJhc2ggcHl0aG9uIHB5dGhvbi1tb2R1bGVzICR7QGJiLnV0aWxzLmNvbnRhaW5zKCdQQUNLQUdFQ09ORklHJywgJ2F1ZGl0JywgJ2F1ZGl0LXB5dGhvbicsICcnLCBkKX0iCitSREVQRU5EU18ke1BOfS1weXRob24gPSsgImJhc2ggcHl0aG9uMyBweXRob24zLW1vZHVsZXMgJHtAYmIudXRpbHMuY29udGFpbnMoJ1BBQ0tBR0VDT05GSUcnLCAnYXVkaXQnLCAnYXVkaXQtcHl0aG9uMycsICcnLCBkKX0iCiBSREVQRU5EU18ke1BOfS1wZXJsID0rICJiYXNoIHBlcmwgcGVybC1tb2R1bGVzIgotUkRFUEVORFNfJHtQTn0tdGVzdHMgPSsgInB5dGhvbiIKK1JERVBFTkRTXyR7UE59LXRlc3RzID0rICJweXRob24zIgogCiBSU1VHR0VTVFNfU0NSSVBUSU5HID0gIiR7QGJiLnV0aWxzLmNvbnRhaW5zKCdQQUNLQUdFQ09ORklHJywgJ3NjcmlwdGluZycsICcke1BOfS1wZXJsICR7UE59LXB5dGhvbicsICcnLGQpfSIKIFJTVUdHRVNUU18ke1BOfSArPSAiJHtQTn0tYXJjaGl2ZSAke1BOfS10ZXN0cyAke1JTVUdHRVNUU19TQ1JJUFRJTkd9IgpkaWZmIC0tZ2l0IGEvcG9reS9tZXRhL3JlY2lwZXMta2VybmVsL3N5c3RlbXRhcC9zeXN0ZW10YXAvY29uZmlndXJlLWFsbG93LXRvLWRpc2FibGUtbGlidmlydC5wYXRjaCBiL3Bva3kvbWV0YS9yZWNpcGVzLWtlcm5lbC9zeXN0ZW10YXAvc3lzdGVtdGFwL2NvbmZpZ3VyZS1hbGxvdy10by1kaXNhYmxlLWxpYnZpcnQucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGI0ZjJmYmMuLjAwMDAwMDAKLS0tIGEvcG9reS9tZXRhL3JlY2lwZXMta2VybmVsL3N5c3RlbXRhcC9zeXN0ZW10YXAvY29uZmlndXJlLWFsbG93LXRvLWRpc2FibGUtbGlidmlydC5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDM5ICswLDAgQEAKLUZyb20gNWViMTBkOTBhZjkxNzhlZGI2NWU2MDkxYWU5MzlkMWI1YjE5YmI3OCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IFdlbnpvbmcgRmFuIDx3ZW56b25nLmZhbkB3aW5kcml2ZXIuY29tPgotRGF0ZTogVHVlLCAyMyBTZXAgMjAxNCAwNDo0NzoxMCAtMDQwMAotU3ViamVjdDogW1BBVENIXSBzeXN0ZW10YXA6IGFsbG93IHRvIGRpc2FibGUgbGlidmlydAotCi1VcHN0cmVhbS1TdGF0dXM6IFBlbmRpbmcKLQotU2lnbmVkLW9mZi1ieTogV2Vuem9uZyBGYW4gPHdlbnpvbmcuZmFuQHdpbmRyaXZlci5jb20+Ci0tLS0KLSBjb25maWd1cmUuYWMgfCAgIDEzICsrKysrKysrKy0tLS0KLSAxIGZpbGUgY2hhbmdlZCwgOSBpbnNlcnRpb25zKCspLCA0IGRlbGV0aW9ucygtKQotCi1kaWZmIC0tZ2l0IGEvY29uZmlndXJlLmFjIGIvY29uZmlndXJlLmFjCi1pbmRleCBhNjMxYWU3Li5jYjQ4ODViIDEwMDY0NAotLS0tIGEvY29uZmlndXJlLmFjCi0rKysgYi9jb25maWd1cmUuYWMKLUBAIC01MjUsMTAgKzUyNSwxNSBAQCBkbmwgQ2hlY2sgZm9yIHRoZSBsaWJ2aXJ0IGFuZCBsaWJ4bWwyIGRldmVsIHBhY2thZ2VzCi0gCi0gZG5sIFdlIHJlcXVpcmUgbGlidmlydCA+PSAxLjAuMiBiZWNhdXNlIHN0YXB2aXJ0IHJlbGllcyBvbiB0aGUKLSBkbmwgdmlyRG9tYWluT3BlbkNoYW5uZWwgZnVuY3Rpb24sIHdoaWNoIHdhcyBpbXBsZW1lbnRlZCBpbiAxLjAuMi4KLS1QS0dfQ0hFQ0tfTU9EVUxFUyhbbGlidmlydF0sIFtsaWJ2aXJ0ID49IDEuMC4yXSwgWwotLSAgIGhhdmVfbGlidmlydD15ZXMKLS0gICBBQ19ERUZJTkUoW0hBVkVfTElCVklSVF0sWzFdLFtEZWZpbmUgdG8gMSBpZiBsaWJ2aXJ0IGRldmVsb3BtZW50IGxpYnJhcmllcyBhcmUgaW5zdGFsbGVkXSkKLS0gICBdLCBbaGF2ZV9saWJ2aXJ0PW5vXSkKLStBQ19BUkdfRU5BQkxFKFtsaWJ2aXJ0XSwKLSsgIEFTX0hFTFBfU1RSSU5HKFstLWRpc2FibGUtbGlidmlydF0sIFtEbyBub3QgdXNlIGxpYnZpcnQgZXZlbiBpZiBwcmVzZW50XSkpCi0rCi0raWYgdGVzdCAiJGVuYWJsZV9saWJ2aXJ0IiAhPSBubzsgdGhlbgotKyAgUEtHX0NIRUNLX01PRFVMRVMoW2xpYnZpcnRdLCBbbGlidmlydCA+PSAxLjAuMl0sIFsKLSsgICAgIGhhdmVfbGlidmlydD15ZXMKLSsgICAgIEFDX0RFRklORShbSEFWRV9MSUJWSVJUXSxbMV0sW0RlZmluZSB0byAxIGlmIGxpYnZpcnQgZGV2ZWxvcG1lbnQgbGlicmFyaWVzIGFyZSBpbnN0YWxsZWRdKQotKyAgICAgXSwgW2hhdmVfbGlidmlydD1ub10pCi0rZmkKLSBBTV9DT05ESVRJT05BTChbSEFWRV9MSUJWSVJUXSwgW3Rlc3QgIiR7aGF2ZV9saWJ2aXJ0fSIgPSAieWVzIl0pCi0gUEtHX0NIRUNLX01PRFVMRVMoW2xpYnhtbDJdLCBbbGlieG1sLTIuMF0sIFsKLSAgICBoYXZlX2xpYnhtbDI9eWVzCi0tLSAKLTEuNy45LjUKLQpkaWZmIC0tZ2l0IGEvcG9reS9tZXRhL3JlY2lwZXMta2VybmVsL3N5c3RlbXRhcC9zeXN0ZW10YXAvbW9uaXRvci1vcHRpb24ucGF0Y2ggYi9wb2t5L21ldGEvcmVjaXBlcy1rZXJuZWwvc3lzdGVtdGFwL3N5c3RlbXRhcC9tb25pdG9yLW9wdGlvbi5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOTMxM2E1YS4uMDAwMDAwMAotLS0gYS9wb2t5L21ldGEvcmVjaXBlcy1rZXJuZWwvc3lzdGVtdGFwL3N5c3RlbXRhcC9tb25pdG9yLW9wdGlvbi5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDM3ICswLDAgQEAKLUZyb20gOTNmYzQ3NDRmZWRmNmZjNTkzZWU2NTY5NjhkYTk3ZjdiMTg2MmFkYSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IFJvc3MgQnVydG9uIDxyb3NzLmJ1cnRvbkBpbnRlbC5jb20+Ci1EYXRlOiBUdWUsIDQgT2N0IDIwMTYgMTY6Mzc6NTMgKzAxMDAKLVN1YmplY3Q6IFtQQVRDSCA0LzZdIHN5c3RlbXRhcDogcmF0aW9uYWxpc2UgZGVwZW5kZW5jaWVzCi0KLUFkZCBhbiBvcHRpb24gdG8gZXhwbGljaXRseSBkaXNhYmxlIHRoZSBtb25pdG9yIChhbmQgdGhlcmVmb3JlIHRoZSBkZXBlbmRlbmN5IG9uCi1qc29uLWMgYW5kIG5jdXJzZXMpLgotCi1VcHN0cmVhbS1TdGF0dXM6IFBlbmRpbmcKLVNpZ25lZC1vZmYtYnk6IFJvc3MgQnVydG9uIDxyb3NzLmJ1cnRvbkBpbnRlbC5jb20+Ci0KLS0tLQotIGNvbmZpZ3VyZS5hYyB8IDUgKysrKy0KLSAxIGZpbGUgY2hhbmdlZCwgNCBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCi0KLUluZGV4OiBnaXQvY29uZmlndXJlLmFjCi09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2l0Lm9yaWcvY29uZmlndXJlLmFjCi0rKysgZ2l0L2NvbmZpZ3VyZS5hYwotQEAgLTc2NiwxMyArNzY2LDE2IEBAIGRubCBXZSB3YW50IGVpdGhlciAob3IgYm90aCkgcHl0aG9uIHByb2IKLSBBTV9DT05ESVRJT05BTChbSEFWRV9QWVRIT05fUFJPQkVTXSwKLSAgIFt0ZXN0ICJ4JGhhdmVfcHl0aG9uMl9zdXBwb3J0IiA9ICJ4eWVzIiAtbyAieCRoYXZlX3B5dGhvbjNfc3VwcG9ydCIgPSAieHllcyJdKQotIAotK0FDX0FSR19FTkFCTEUoW21vbml0b3JdLCBBU19IRUxQX1NUUklORyhbLS1kaXNhYmxlLW1vbml0b3JdLFtEaXNhYmxlIG1vbml0b3JdKSkKLStpZiB0ZXN0ICIkZW5hYmxlX21vbml0b3IiICE9ICJubyI7IHRoZW4KLSBkbmwgQ2hlY2sgZm9yIHByZXNlbmNlIG9mIGpzb24tYyBhbmQgbmN1cnNlcyBmb3IgdXNlIGluIG1vbml0b3IgbW9kZQotIFBLR19DSEVDS19NT0RVTEVTKFtqc29uY10sIFtqc29uLWMgPj0gMC4xMV0sIFtoYXZlX2pzb25jPXllc10sIFtoYXZlX2pzb25jPW5vXSkKLSBQS0dfQ0hFQ0tfTU9EVUxFUyhbbmN1cnNlc10sIFtuY3Vyc2VzXSwgW2hhdmVfbmN1cnNlcz15ZXNdLCBbaGF2ZV9uY3Vyc2VzPW5vXSkKLS1BTV9DT05ESVRJT05BTChbSEFWRV9NT05JVE9SX0xJQlNdLCBbdGVzdCAiJHtoYXZlX2pzb25jfSIgPT0gInllcyIgLWEgIiR7aGF2ZV9uY3Vyc2VzfSIgPT0gInllcyJdKQotIGlmIHRlc3QgIiR7aGF2ZV9qc29uY30iID09ICJ5ZXMiIC1hICIke2hhdmVfbmN1cnNlc30iID09IHllczsgdGhlbgotICAgQUNfREVGSU5FKFtIQVZFX01PTklUT1JfTElCU10sWzFdLFtEZWZpbmUgdG8gMSBpZiBqc29uLWMgYW5kIG5jdXJzZXMgbGlicmFyaWVzIGFyZSBpbnN0YWxsZWRdKQotIGZpCi0rZmkKLStBTV9DT05ESVRJT05BTChbSEFWRV9NT05JVE9SX0xJQlNdLCBbdGVzdCAiJHtoYXZlX2pzb25jfSIgPT0gInllcyIgLWEgIiR7aGF2ZV9uY3Vyc2VzfSIgPT0gInllcyIgLWEgIiRlbmFibGVfbW9uaXRvciIgIT0gIm5vIl0pCi0gCi0gQUNfQ0FDSEVfQ0hFQ0soW2ZvciBhc3NlbWJsZXIgLnNlY3Rpb24gIj8iIGZsYWdzIHN1cHBvcnRdLCBzdGFwX2N2X3NlY3Rpb25xLCBbCi0gb2xkX0NGTEFHUz0iJENGTEFHUyIKZGlmZiAtLWdpdCBhL3Bva3kvbWV0YS9yZWNpcGVzLWtlcm5lbC9zeXN0ZW10YXAvc3lzdGVtdGFwL25vLW1zZ2ZtdC1jaGVjay5wYXRjaCBiL3Bva3kvbWV0YS9yZWNpcGVzLWtlcm5lbC9zeXN0ZW10YXAvc3lzdGVtdGFwL25vLW1zZ2ZtdC1jaGVjay5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMmM4NjBiMS4uMDAwMDAwMAotLS0gYS9wb2t5L21ldGEvcmVjaXBlcy1rZXJuZWwvc3lzdGVtdGFwL3N5c3RlbXRhcC9uby1tc2dmbXQtY2hlY2sucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwzMyArMCwwIEBACi1Gcm9tIDQzZjFiMDQ0NDliYjFjZjdlMDA5MjI2M2YxYzJhMjVmM2ZjYTA4ZWYgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBSb3NzIEJ1cnRvbiA8cm9zcy5idXJ0b25AaW50ZWwuY29tPgotRGF0ZTogVHVlLCA4IE5vdiAyMDE2IDIzOjA3OjQxICswMDAwCi1TdWJqZWN0OiBbUEFUQ0ggNS82XSBzeXN0ZW10YXA6IHJlbW92ZSBleHBsaWNpdCBtc2dmbXQgY2hlY2sKLQotVGhlcmUgaXMgbm8gbmVlZCB0byBleHBsaWNpdGx5IGNoZWNrIHRoYXQgbXNnZm10IHdhcyBmb3VuZCBhcyB0aGUgZ2V0dGV4dCBtYWNyb3MKLWhhbmRsZSB0aGlzIGZvciB1cyBpZiBOTFMgaXMgZW5hYmxlZC4KLQotVXBzdHJlYW0tU3RhdHVzOiBQZW5kaW5nCi1TaWduZWQtb2ZmLWJ5OiBSb3NzIEJ1cnRvbiA8cm9zcy5idXJ0b25AaW50ZWwuY29tPgotCi0tLS0KLSBjb25maWd1cmUuYWMgfCA0IC0tLS0KLSAxIGZpbGUgY2hhbmdlZCwgNCBkZWxldGlvbnMoLSkKLQotZGlmZiAtLWdpdCBhL2NvbmZpZ3VyZS5hYyBiL2NvbmZpZ3VyZS5hYwotaW5kZXggMmVhOWIzY2JmLi45NTQxN2Y1OWMgMTAwNjQ0Ci0tLS0gYS9jb25maWd1cmUuYWMKLSsrKyBiL2NvbmZpZ3VyZS5hYwotQEAgLTM2LDEwICszNiw2IEBAIEFDX0NIRUNLX0ZVTkNTKG9wZW5hdCkKLSBBTV9HTlVfR0VUVEVYVChleHRlcm5hbCkKLSBBTV9HTlVfR0VUVEVYVF9WRVJTSU9OKFswLjE5LjRdKQotIAotLWlmIHRlc3QgIngkR01TR0ZNVCIgPSAieDoiOyB0aGVuCi0tICAgQUNfTVNHX0VSUk9SKFttaXNzaW5nIGdudSAvdXNyL2Jpbi9tc2dmbXRdKQotLWZpCi0tCi0gIyBXZSB3YW50IHRoZSAnUFlUSE9OJyB2YXJpYmxlIHRvIGJlIHB5dGhvbiB2ZXJzaW9uIDIuIFdlIGFsc28gd2FudAotICMgb3VyIGN1c3RvbSAnUFlUSE9OMycgdmFyaWJsZSB0byBiZSBweXRob24gdmVyc2lvbiAzLgotICMKLS0tIAotMi4xMS4wCi0KZGlmZiAtLWdpdCBhL3Bva3kvbWV0YS9yZWNpcGVzLWtlcm5lbC9zeXN0ZW10YXAvc3lzdGVtdGFwL3gzMl9hYmlfdGltZS5wYXRjaCBiL3Bva3kvbWV0YS9yZWNpcGVzLWtlcm5lbC9zeXN0ZW10YXAvc3lzdGVtdGFwL3gzMl9hYmlfdGltZS5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMjhhN2VhZS4uMDAwMDAwMAotLS0gYS9wb2t5L21ldGEvcmVjaXBlcy1rZXJuZWwvc3lzdGVtdGFwL3N5c3RlbXRhcC94MzJfYWJpX3RpbWUucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwzNCArMCwwIEBACi1GaXggdGltZV90IHByaW50IGJlY2F1c2UgaW4geDMyIEFCSSBpcyBsb25nIGxvbmcgaW50IGluc3RlYWQgb2YgbG9uZyBpbnQuCi0KLVVwc3RyZWFtLVN0YXR1czogUGVuZGluZwotCi1TaWduZWQtb2ZmLWJ5OiBBbsOtYmFsIExpbcOzbiA8YW5pYmFsLmxpbW9uQGxpbnV4LmludGVsLmNvbT4KLQotZGlmZiAtLWdpdCBhL2NhY2hlLmN4eCBiL2NhY2hlLmN4eAotaW5kZXggMzU0NmIzMC4uMTljNzdjYSAxMDA2NDQKLS0tLSBhL2NhY2hlLmN4eAotKysrIGIvY2FjaGUuY3h4Ci1AQCAtMjk0LDcgKzI5NCwxMSBAQCBjbGVhbl9jYWNoZShzeXN0ZW10YXBfc2Vzc2lvbiYgcykKLSAgICAgICAgIHsKLSAgICAgICAgICAgLy9pbnRlcnZhbCBub3QgcGFzc2VkLCBkb24ndCBjb250aW51ZQotICAgICAgICAgICBpZiAocy52ZXJib3NlID4gMSkKLSsjaWYgZGVmaW5lZChfX3g4Nl82NF9fKSAmJiBkZWZpbmVkIChfX0lMUDMyX18pCi0rICAgICAgICAgICAgY2xvZyA8PCBfRigiQ2FjaGUgY2xlYW5pbmcgc2tpcHBlZCwgaW50ZXJ2YWwgbm90IHJlYWNoZWQgJWxsZCBzIC8gJWx1IHMuIiwKLSsjZWxzZQotICAgICAgICAgICAgIGNsb2cgPDwgX0YoIkNhY2hlIGNsZWFuaW5nIHNraXBwZWQsIGludGVydmFsIG5vdCByZWFjaGVkICVsdSBzIC8gJWx1IHMuIiwKLSsjZW5kaWYKLSAgICAgICAgICAgICAgICAgICAgICAgIChjdXJyZW50X3RpbWUudHZfc2VjLXNiLnN0X210aW1lKSwgY2FjaGVfY2xlYW5faW50ZXJ2YWwpICA8PCBlbmRsOwotICAgICAgICAgICByZXR1cm47Ci0gICAgICAgICB9Ci1AQCAtMzAyLDcgKzMwNiwxMSBAQCBjbGVhbl9jYWNoZShzeXN0ZW10YXBfc2Vzc2lvbiYgcykKLSAgICAgICAgIHsKLSAgICAgICAgICAgLy9pbnRlcnZhbCByZWFjaGVkLCBjb250aW51ZQotICAgICAgICAgICBpZiAocy52ZXJib3NlID4gMSkKLSsjaWYgZGVmaW5lZChfX3g4Nl82NF9fKSAmJiBkZWZpbmVkIChfX0lMUDMyX18pCi0rICAgICAgICAgICAgY2xvZyA8PCBfRigiQ2xlYW5pbmcgY2FjaGUsIGludGVydmFsIHJlYWNoZWQgJWxsZCBzID4gJWx1IHMuIiwKLSsjZWxzZQotICAgICAgICAgICAgIGNsb2cgPDwgX0YoIkNsZWFuaW5nIGNhY2hlLCBpbnRlcnZhbCByZWFjaGVkICVsdSBzID4gJWx1IHMuIiwKLSsjZW5kaWYKLSAgICAgICAgICAgICAgICAgICAgICAgIChjdXJyZW50X3RpbWUudHZfc2VjLXNiLnN0X210aW1lKSwgY2FjaGVfY2xlYW5faW50ZXJ2YWwpICA8PCBlbmRsOwotICAgICAgICAgfQotIApkaWZmIC0tZ2l0IGEvcG9reS9tZXRhL3JlY2lwZXMta2VybmVsL3N5c3RlbXRhcC9zeXN0ZW10YXBfZ2l0LmluYyBiL3Bva3kvbWV0YS9yZWNpcGVzLWtlcm5lbC9zeXN0ZW10YXAvc3lzdGVtdGFwX2dpdC5pbmMKaW5kZXggYzUzNDhiMy4uYWJiMmIzNyAxMDA2NDQKLS0tIGEvcG9reS9tZXRhL3JlY2lwZXMta2VybmVsL3N5c3RlbXRhcC9zeXN0ZW10YXBfZ2l0LmluYworKysgYi9wb2t5L21ldGEvcmVjaXBlcy1rZXJuZWwvc3lzdGVtdGFwL3N5c3RlbXRhcF9naXQuaW5jCkBAIC0xLDEzICsxLDkgQEAKIExJQ0VOU0UgPSAiR1BMdjIiCiBMSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9DT1BZSU5HO21kNT1iMjM0ZWU0ZDY5ZjVmY2U0NDg2YTgwZmRhZjRhNDI2MyIKLVNSQ1JFViA9ICI5ODRkNmQxNjk2ZWQwNjYyNmIwN2NiNjVhYjU1ZDZhZTBlY2UxMTMxIgotUFYgPSAiNC4xIgorU1JDUkVWID0gIjU3YzlhY2E5ZjFmZjMyYTZhZGQxMGUwMmVjZDMzYjczMTRmYWQ0OTkiCitQViA9ICI0LjErZ2l0JHtTUkNQVn0iCiAKIFNSQ19VUkkgPSAiZ2l0Oi8vc291cmNld2FyZS5vcmcvZ2l0L3N5c3RlbXRhcC5naXQgXAotICAgICAgICAgICBmaWxlOi8vY29uZmlndXJlLWFsbG93LXRvLWRpc2FibGUtbGlidmlydC5wYXRjaCBcCi0gICAgICAgICAgIGZpbGU6Ly94MzJfYWJpX3RpbWUucGF0Y2ggXAotICAgICAgICAgICBmaWxlOi8vbW9uaXRvci1vcHRpb24ucGF0Y2ggXAotICAgICAgICAgICBmaWxlOi8vbm8tbXNnZm10LWNoZWNrLnBhdGNoIFwKICAgICAgICAgICAgZmlsZTovLzAwMDEtRG8tbm90LWxldC1jb25maWd1cmUtd3JpdGUtYS1weXRob24tbG9jYXRpb24taW50by10aC5wYXRjaCBcCiAgICAgICAgICAgIGZpbGU6Ly8wMDAxLUluc3RhbGwtcHl0aG9uLW1vZHVsZXMtdG8tY29ycmVjdC1saWJyYXJ5LWRpci5wYXRjaCBcCiAgICAgICAgICAgIGZpbGU6Ly8wMDAxLXN0YXBydW4tc3RhcGJwZi1kb24tdC1zdXBwb3J0LWluc3RhbGxpbmctYS1ub24tcm9vdC5wYXRjaCBcCmRpZmYgLS1naXQgYS9wb2t5L21ldGEvcmVjaXBlcy1tdWx0aW1lZGlhL2ZsYWMvZmxhYy9DVkUtMjAxNy02ODg4LnBhdGNoIGIvcG9reS9tZXRhL3JlY2lwZXMtbXVsdGltZWRpYS9mbGFjL2ZsYWMvQ1ZFLTIwMTctNjg4OC5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZjAxNzkxNi4uMDAwMDAwMAotLS0gYS9wb2t5L21ldGEvcmVjaXBlcy1tdWx0aW1lZGlhL2ZsYWMvZmxhYy9DVkUtMjAxNy02ODg4LnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMzcgKzAsMCBAQAotRnJvbSA0M2VjYjY0MzEwNzdmZjU0ZTlkZjI3ZjcxNzM3ZTZlOTZkNmMwMzlmIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogQ2hhbmdxaW5nIExpIDxjaGFuZ3FpbmcubGlAd2luZHJpdmVyLmNvbT4KLURhdGU6IFR1ZSwgMjEgQXVnIDIwMTggMTQ6NDY6NDMgKzA4MDAKLVN1YmplY3Q6IFtQQVRDSF0gRnJvbSA1ZjQ3YjYzZTljOTcxZTYzOTE1OTBjYWYwMGEwZjJhNWVkNjEyZTY3IE1vbiBTZXAgMTcKLSAwMDowMDowMCAyMDAxIEZyb206IEVyaWsgZGUgQ2FzdHJvIExvcG8gPGVyaWtkQG1lZ2EtbmVyZC5jb20+IERhdGU6IFNhdCwgOAotIEFwciAyMDE3IDE4OjM0OjQ5ICsxMDAwIFN1YmplY3Q6IFtQQVRDSF0gc3RyZWFtX2RlY29kZXIuYzogRml4IGEgbWVtb3J5IGxlYWsKLQotTGVhayByZXBvcnRlZCBieSBTZWN1bmlhIFJlc2VhcmNoLgotCi1VcHN0cmVhbS1TdGF0dXM6IEJhY2twb3J0W2h0dHBzOi8vZ2l0LnhpcGgub3JnLz9wPWZsYWMuZ2l0O2E9Y29tbWl0OwotICAgICAgICAgICAgICAgICBoPTRmNDdiNjNlOWM5NzFlNjM5MTU5MGNhZjAwYTBmMmE1ZWQ2MTJlNjddCi0KLVVwZGF0ZSBwYXRjaCB0byB2ZXJzaW9uIDEuMy4yCi1DVkU6IENWRS0yMDE3LTY4ODgKLQotU2lnbmVkLW9mZi1ieTogQ2hhbmdxaW5nIExpIDxjaGFuZ3FpbmcubGlAd2luZHJpdmVyLmNvbT4KLS0tLQotIHNyYy9saWJGTEFDL3N0cmVhbV9kZWNvZGVyLmMgfCAzICsrKwotIDEgZmlsZSBjaGFuZ2VkLCAzIGluc2VydGlvbnMoKykKLQotZGlmZiAtLWdpdCBhL3NyYy9saWJGTEFDL3N0cmVhbV9kZWNvZGVyLmMgYi9zcmMvbGliRkxBQy9zdHJlYW1fZGVjb2Rlci5jCi1pbmRleCBkMzY0YjBjLi5lYmY5M2RhIDEwMDY0NAotLS0tIGEvc3JjL2xpYkZMQUMvc3RyZWFtX2RlY29kZXIuYwotKysrIGIvc3JjL2xpYkZMQUMvc3RyZWFtX2RlY29kZXIuYwotQEAgLTE3NTksNiArMTc1OSw5IEBAIEZMQUNfX2Jvb2wgcmVhZF9tZXRhZGF0YV92b3JiaXNjb21tZW50XyhGTEFDX19TdHJlYW1EZWNvZGVyICpkZWNvZGVyLCBGTEFDX19TdHJlCi0gCQkJCQl9Ci0gCQkJCQltZW1zZXQgKG9iai0+Y29tbWVudHNbaV0uZW50cnksIDAsIG9iai0+Y29tbWVudHNbaV0ubGVuZ3RoKSA7Ci0gCQkJCQlpZiAoIUZMQUNfX2JpdHJlYWRlcl9yZWFkX2J5dGVfYmxvY2tfYWxpZ25lZF9ub19jcmMoZGVjb2Rlci0+cHJpdmF0ZV8tPmlucHV0LCBvYmotPmNvbW1lbnRzW2ldLmVudHJ5LCBvYmotPmNvbW1lbnRzW2ldLmxlbmd0aCkpIHsKLSsJCQkJCQkvKiBDdXJyZW50IGktdGggZW50cnkgaXMgYmFkLCBzbyB3ZSBkZWxldGUgaXQuICovXAotKwkJCQkJCWZyZWUgKG9iai0+Y29tbWVudHNbaV0uZW50cnkpIDsKLSsJCQkJCQlvYmotPmNvbW1lbnRzW2ldLmVudHJ5ID0gTlVMTCA7CQkJCQkJCi0gCQkJCQkJb2JqLT5udW1fY29tbWVudHMgPSBpOwotIAkJCQkJCWdvdG8gc2tpcDsKLSAJCQkJCX0KLS0tIAotMi43LjQKLQpkaWZmIC0tZ2l0IGEvcG9reS9tZXRhL3JlY2lwZXMtbXVsdGltZWRpYS9mbGFjL2ZsYWNfMS4zLjIuYmIgYi9wb2t5L21ldGEvcmVjaXBlcy1tdWx0aW1lZGlhL2ZsYWMvZmxhY18xLjMuMy5iYgpzaW1pbGFyaXR5IGluZGV4IDkxJQpyZW5hbWUgZnJvbSBwb2t5L21ldGEvcmVjaXBlcy1tdWx0aW1lZGlhL2ZsYWMvZmxhY18xLjMuMi5iYgpyZW5hbWUgdG8gcG9reS9tZXRhL3JlY2lwZXMtbXVsdGltZWRpYS9mbGFjL2ZsYWNfMS4zLjMuYmIKaW5kZXggZTg1OTlmNi4uZmVhMmJlMSAxMDA2NDQKLS0tIGEvcG9reS9tZXRhL3JlY2lwZXMtbXVsdGltZWRpYS9mbGFjL2ZsYWNfMS4zLjIuYmIKKysrIGIvcG9reS9tZXRhL3JlY2lwZXMtbXVsdGltZWRpYS9mbGFjL2ZsYWNfMS4zLjMuYmIKQEAgLTE1LDExICsxNSwxMCBAQAogREVQRU5EUyA9ICJsaWJvZ2ciCiAKIFNSQ19VUkkgPSAiaHR0cDovL2Rvd25sb2Fkcy54aXBoLm9yZy9yZWxlYXNlcy9mbGFjLyR7QlB9LnRhci54eiBcCi0gICAgICAgICAgIGZpbGU6Ly9DVkUtMjAxNy02ODg4LnBhdGNoICIKKyIKIAotCi1TUkNfVVJJW21kNXN1bV0gPSAiNDU0ZjFiZmEzZjkzY2M3MDgwOThkNzg5MGQwNDk5YmQiCi1TUkNfVVJJW3NoYTI1NnN1bV0gPSAiOTFjZmMzZWQ2MWRjNDBmNDdmMDUwYTEwOWIwODYxMDY2N2Q3MzQ3N2FmNmVmMzZkY2FkMzFjMzFhNGE4ZDUzZiIKK1NSQ19VUklbbWQ1c3VtXSA9ICIyNjcwM2VkMjg1OGMxZmM5ZmZjMDUxMzZkMTNkYWE2OSIKK1NSQ19VUklbc2hhMjU2c3VtXSA9ICIyMTNlODJiZDcxNmM5ZGU2ZGIyZjk4YmNhZGJjNGMyNGM3ZTJlZmU4Yzc1OTM5YTFhODRlMjg1MzljNGUxNzQ4IgogCiBDVkVfUFJPRFVDVCA9ICJsaWJmbGFjIGZsYWMiCiAKZGlmZiAtLWdpdCBhL3Bva3kvbWV0YS9yZWNpcGVzLW11bHRpbWVkaWEvbGlib2dnL2xpYm9nZ18xLjMuMy5iYiBiL3Bva3kvbWV0YS9yZWNpcGVzLW11bHRpbWVkaWEvbGlib2dnL2xpYm9nZ18xLjMuNC5iYgpzaW1pbGFyaXR5IGluZGV4IDgwJQpyZW5hbWUgZnJvbSBwb2t5L21ldGEvcmVjaXBlcy1tdWx0aW1lZGlhL2xpYm9nZy9saWJvZ2dfMS4zLjMuYmIKcmVuYW1lIHRvIHBva3kvbWV0YS9yZWNpcGVzLW11bHRpbWVkaWEvbGlib2dnL2xpYm9nZ18xLjMuNC5iYgppbmRleCA4ZDg4ZjFmLi44Y2EwMDEwIDEwMDY0NAotLS0gYS9wb2t5L21ldGEvcmVjaXBlcy1tdWx0aW1lZGlhL2xpYm9nZy9saWJvZ2dfMS4zLjMuYmIKKysrIGIvcG9reS9tZXRhL3JlY2lwZXMtbXVsdGltZWRpYS9saWJvZ2cvbGlib2dnXzEuMy40LmJiCkBAIC0xMSw3ICsxMSw3IEBACiAKIFNSQ19VUkkgPSAiaHR0cDovL2Rvd25sb2Fkcy54aXBoLm9yZy9yZWxlYXNlcy9vZ2cvJHtCUH0udGFyLnh6IgogCi1TUkNfVVJJW21kNXN1bV0gPSAiODdlZDc0MjA0N2YwNjUwNDZlYjZjMzY3NDVkODcxYjgiCi1TUkNfVVJJW3NoYTI1NnN1bV0gPSAiNGYzZmM2MTc4YTUzM2QzOTIwNjRmMTQ3NzZiMjNjMzk3ZWQ0YjlmNDhmNWRlMjk3YWJhNzNiNjQzZjk1NWMwOCIKK1NSQ19VUklbbWQ1c3VtXSA9ICJlYWRlZjI0YWFkNmUzZTgzNzliYTBkMTQ5NzFmZDY0YSIKK1NSQ19VUklbc2hhMjU2c3VtXSA9ICJjMTYzYmMxMmJjMzAwYzQwMWI2YWEzNTkwN2FjNjgyNjcxZWEzNzZmMTNhZTA5NjlhMjIwZjdkZGY3MTg5M2ZlIgogCiBpbmhlcml0IGF1dG90b29scyBwa2djb25maWcKZGlmZiAtLWdpdCBhL3Bva3kvbWV0YS9yZWNpcGVzLXJ0L3J0LXRlc3RzL3J0LXRlc3RzXzEuMS5iYiBiL3Bva3kvbWV0YS9yZWNpcGVzLXJ0L3J0LXRlc3RzL3J0LXRlc3RzXzEuMS5iYgppbmRleCBiNjczY2Q3Li41YWEwYWExIDEwMDY0NAotLS0gYS9wb2t5L21ldGEvcmVjaXBlcy1ydC9ydC10ZXN0cy9ydC10ZXN0c18xLjEuYmIKKysrIGIvcG9reS9tZXRhL3JlY2lwZXMtcnQvcnQtdGVzdHMvcnQtdGVzdHNfMS4xLmJiCkBAIC0xNCw2ICsxNCwxMCBAQAogICAgICAgICAgICAgZmlsZTovL3J1bi1wdGVzdCBcCiAgICAgICAgICAgICBmaWxlOi8vcnRfYm1hcmsucHkgXAogICAgICAgICAgICAiCisKKyMgcnQtdGVzdHMgbmVlZHMgUEkgbXV0ZXggc3VwcG9ydCBpbiBsaWJjCitDT01QQVRJQkxFX0hPU1RfbGliYy1tdXNsID0gJ251bGwnCisKICMgRG8gbm90IGluc3RhbGwgaHdsYXRkZXRlY3QKIEVYVFJBX09FTUFLRSArPSAiUFlMSUI9JyciCiAKZGlmZiAtLWdpdCBhL3Bva3kvbWV0YS9yZWNpcGVzLXNhdG8vaW1hZ2VzL2NvcmUtaW1hZ2Utc2F0by5iYiBiL3Bva3kvbWV0YS9yZWNpcGVzLXNhdG8vaW1hZ2VzL2NvcmUtaW1hZ2Utc2F0by5iYgppbmRleCBiODk3OTUwLi42NzMxMDZlIDEwMDY0NAotLS0gYS9wb2t5L21ldGEvcmVjaXBlcy1zYXRvL2ltYWdlcy9jb3JlLWltYWdlLXNhdG8uYmIKKysrIGIvcG9reS9tZXRhL3JlY2lwZXMtc2F0by9pbWFnZXMvY29yZS1pbWFnZS1zYXRvLmJiCkBAIC0xMCwzICsxMCw2IEBACiAKIFRPT0xDSEFJTl9IT1NUX1RBU0tfYXBwZW5kID0gIiBuYXRpdmVzZGstaW50bHRvb2wgbmF0aXZlc2RrLWdsaWItMi4wIgogVE9PTENIQUlOX0hPU1RfVEFTS19yZW1vdmVfdGFzay1wb3B1bGF0ZS1zZGstZXh0ID0gIiBuYXRpdmVzZGstaW50bHRvb2wgbmF0aXZlc2RrLWdsaWItMi4wIgorCitRQl9NRU0gPSAnJHtAYmIudXRpbHMuY29udGFpbnMoIkRJU1RST19GRUFUVVJFUyIsICJvcGVuZ2wiLCAiLW0gNTEyIiwgIi1tIDI1NiIsIGQpfScKK1FCX01FTV9xZW11bWlwcyA9ICItbSAyNTYiCmRpZmYgLS1naXQgYS9wb2t5L21ldGEvcmVjaXBlcy1zYXRvL3dlYmtpdC93ZWJraXRndGsvMDAwMS1Ud2Vhay1ndGtkb2Mtc2V0dGluZ3Mtc28tdGhhdC1ndGtkb2MtZ2VuZXJhdGlvbi13b3JrLnBhdGNoIGIvcG9reS9tZXRhL3JlY2lwZXMtc2F0by93ZWJraXQvd2Via2l0Z3RrLzAwMDEtVHdlYWstZ3RrZG9jLXNldHRpbmdzLXNvLXRoYXQtZ3RrZG9jLWdlbmVyYXRpb24td29yay5wYXRjaAppbmRleCA2NjRjZWE5Li5lN2M2NjhjIDEwMDY0NAotLS0gYS9wb2t5L21ldGEvcmVjaXBlcy1zYXRvL3dlYmtpdC93ZWJraXRndGsvMDAwMS1Ud2Vhay1ndGtkb2Mtc2V0dGluZ3Mtc28tdGhhdC1ndGtkb2MtZ2VuZXJhdGlvbi13b3JrLnBhdGNoCisrKyBiL3Bva3kvbWV0YS9yZWNpcGVzLXNhdG8vd2Via2l0L3dlYmtpdGd0ay8wMDAxLVR3ZWFrLWd0a2RvYy1zZXR0aW5ncy1zby10aGF0LWd0a2RvYy1nZW5lcmF0aW9uLXdvcmsucGF0Y2gKQEAgLTEsNCArMSw0IEBACi1Gcm9tIGQzNzk2YWQxYTE5MjMzZWU1ZDM0OTJhNTU2MGQ3ZWRlODgyZjg5Y2YgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tIDRiNWUwMjIxMmEzMWI4MmZjOWIzYmVjYWQ5MDU0MjI3NDgxNmZjMjkgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCiBGcm9tOiBBbGV4YW5kZXIgS2FuYXZpbiA8YWxleC5rYW5hdmluQGdtYWlsLmNvbT4KIERhdGU6IFRodSwgMTEgQXVnIDIwMTYgMTc6MTM6NTEgKzAzMDAKIFN1YmplY3Q6IFtQQVRDSF0gVHdlYWsgZ3RrZG9jIHNldHRpbmdzIHNvIHRoYXQgZ3RrZG9jIGdlbmVyYXRpb24gd29ya3MgdW5kZXIKQEAgLTE3LDIzICsxNywyMyBAQAogIDIgZmlsZXMgY2hhbmdlZCwgMyBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9ucygtKQogCiBkaWZmIC0tZ2l0IGEvU291cmNlL2NtYWtlL0d0a0RvYy5jbWFrZSBiL1NvdXJjZS9jbWFrZS9HdGtEb2MuY21ha2UKLWluZGV4IDJlZTA1NTUwLi42Y2I2MzEzZCAxMDA2NDQKK2luZGV4IGIwZmIzMWNhLi42Y2I2MzEzZCAxMDA2NDQKIC0tLSBhL1NvdXJjZS9jbWFrZS9HdGtEb2MuY21ha2UKICsrKyBiL1NvdXJjZS9jbWFrZS9HdGtEb2MuY21ha2UKIEBAIC00LDcgKzQsNyBAQCBtYWNybyhBRERfR1RLRE9DX0dFTkVSQVRPUiBfc3RhbXBfbmFtZSBfZXh0cmFfYXJncykKICAgICAgYWRkX2N1c3RvbV9jb21tYW5kKAogICAgICAgICAgT1VUUFVUICIke0NNQUtFX0JJTkFSWV9ESVJ9LyR7X3N0YW1wX25hbWV9IgogICAgICAgICAgREVQRU5EUyAke0RvY3VtZW50YXRpb25EZXBlbmRlbmNpZXN9Ci0tICAgICAgICBDT01NQU5EICR7Q01BS0VfQ09NTUFORH0gLUUgZW52ICJDQz0ke0NNQUtFX0NfQ09NUElMRVJ9IiAiQ0ZMQUdTPSR7Q01BS0VfQ19GTEFHU30gLVduby11bnVzZWQtcGFyYW1ldGVyIiAke0NNQUtFX1NPVVJDRV9ESVJ9L1Rvb2xzL2d0a2RvYy9nZW5lcmF0ZS1ndGtkb2MgJHtfZXh0cmFfYXJnc30KKy0gICAgICAgIENPTU1BTkQgJHtDTUFLRV9DT01NQU5EfSAtRSBlbnYgIkNDPSR7Q01BS0VfQ19DT01QSUxFUn0iICJDRkxBR1M9JHtDTUFLRV9DX0ZMQUdTfSAtV25vLXVudXNlZC1wYXJhbWV0ZXIiICJMREZMQUdTPSR7Q01BS0VfRVhFX0xJTktFUl9GTEFHU30iICR7Q01BS0VfU09VUkNFX0RJUn0vVG9vbHMvZ3RrZG9jL2dlbmVyYXRlLWd0a2RvYyAke19leHRyYV9hcmdzfQogKyAgICAgICAgQ09NTUFORCAke0NNQUtFX0NPTU1BTkR9IC1FIGVudiAiQ0M9JHtDTUFLRV9DX0NPTVBJTEVSfSIgIkNGTEFHUz0ke0NNQUtFX0NfRkxBR1N9IC1Xbm8tdW51c2VkLXBhcmFtZXRlciIgIkxEPSR7Q01BS0VfQ19DT01QSUxFUn0iICJMREZMQUdTPSR7Q01BS0VfQ19MSU5LX0ZMQUdTfSIgIlJVTj0ke0NNQUtFX0JJTkFSWV9ESVJ9L2d0a2RvYy1xZW11d3JhcHBlciIgJHtDTUFLRV9TT1VSQ0VfRElSfS9Ub29scy9ndGtkb2MvZ2VuZXJhdGUtZ3RrZG9jICR7X2V4dHJhX2FyZ3N9CiAgICAgICAgICBDT01NQU5EIHRvdWNoICR7X3N0YW1wX25hbWV9CiAgICAgICAgICBXT1JLSU5HX0RJUkVDVE9SWSAiJHtDTUFLRV9CSU5BUllfRElSfSIKICAgICAgICAgIFZFUkJBVElNCiBkaWZmIC0tZ2l0IGEvVG9vbHMvZ3RrZG9jL2d0a2RvYy5weSBiL1Rvb2xzL2d0a2RvYy9ndGtkb2MucHkKLWluZGV4IDgxZWU4Y2RjLi4zZTExYzJmMCAxMDA2NDQKK2luZGV4IDA1NGNhZmExLi40MTZkZTdkMSAxMDA2NDQKIC0tLSBhL1Rvb2xzL2d0a2RvYy9ndGtkb2MucHkKICsrKyBiL1Rvb2xzL2d0a2RvYy9ndGtkb2MucHkKLUBAIC0zMTcsOSArMzE3LDkgQEAgY2xhc3MgR1RLRG9jKG9iamVjdCk6CitAQCAtMzIwLDkgKzMyMCw5IEBAIGNsYXNzIEdUS0RvYyhvYmplY3QpOgogICAgICAgICAgICAgICAgICAgICAgYWRkaXRpb25hbF9sZGZsYWdzID0gJyVzICVzJyAlIChhZGRpdGlvbmFsX2xkZmxhZ3MsIGFyZykKICAgICAgICAgICAgICBsZGZsYWdzID0gJyAiLUwlcyIgJXMgJyAlIChzZWxmLmxpYnJhcnlfcGF0aCwgYWRkaXRpb25hbF9sZGZsYWdzKSArIGxkZmxhZ3MKICAgICAgICAgICAgICBjdXJyZW50X2xkX2xpYnJhcnlfcGF0aCA9IGVudi5nZXQoJ0xEX0xJQlJBUllfUEFUSCcpCmRpZmYgLS1naXQgYS9wb2t5L21ldGEvcmVjaXBlcy1zYXRvL3dlYmtpdC93ZWJraXRndGsvMDAwMS1VbnJldmlld2VkLWZpeC1idWlsZC1mYWlsdXJlLWh0dHBzLWJ1Z3Mud2Via2l0Lm9yZy1zLnBhdGNoIGIvcG9reS9tZXRhL3JlY2lwZXMtc2F0by93ZWJraXQvd2Via2l0Z3RrLzAwMDEtVW5yZXZpZXdlZC1maXgtYnVpbGQtZmFpbHVyZS1odHRwcy1idWdzLndlYmtpdC5vcmctcy5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZTU1MGEwZC4uMDAwMDAwMAotLS0gYS9wb2t5L21ldGEvcmVjaXBlcy1zYXRvL3dlYmtpdC93ZWJraXRndGsvMDAwMS1VbnJldmlld2VkLWZpeC1idWlsZC1mYWlsdXJlLWh0dHBzLWJ1Z3Mud2Via2l0Lm9yZy1zLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMzMgKzAsMCBAQAotRnJvbSA0YmMyNDE1MzkyNDZmN2ExN2QwNzM1NzI1N2FiNDdjYjk2YmM0YjY5IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogInlzdXp1a2lAYXBwbGUuY29tIiA8eXN1enVraUBhcHBsZS5jb20+Ci1EYXRlOiBUaHUsIDE4IEFwciAyMDE5IDA3OjMwOjE4ICswMDAwCi1TdWJqZWN0OiBbUEFUQ0hdIFVucmV2aWV3ZWQsIGZpeCBidWlsZCBmYWlsdXJlCi0gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5NTkzOAotCi1JbmNsdWRpbmcgPGFycmF5Pi4KLQotKiBibWFsbG9jL0F2YWlsYWJsZU1lbW9yeS5jcHA6Ci0KLWdpdC1zdm4taWQ6IGh0dHA6Ly9zdm4ud2Via2l0Lm9yZy9yZXBvc2l0b3J5L3dlYmtpdC90cnVua0AyNDQ0MjIgMjY4ZjQ1Y2MtY2QwOS0wNDEwLWFiM2MtZDUyNjkxYjRkYmZjCi0KLVVwc3RyZWFtLVN0YXR1czogQmFja3BvcnQgW2h0dHBzOi8vZ2l0aHViLmNvbS9XZWJLaXQvd2Via2l0L2NvbW1pdC84NGMxMTFkYzBkODNiNWFjZjYwNzA2ZWY0OWJjMmY1ZTkxMTEyNDcxXQotU2lnbmVkLW9mZi1ieTogS2hlbSBSYWogPHJhai5raGVtQGdtYWlsLmNvbT4KLS0tLQotIFNvdXJjZS9ibWFsbG9jL2JtYWxsb2MvQXZhaWxhYmxlTWVtb3J5LmNwcCB8IDEgKwotIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKQotCi1kaWZmIC0tZ2l0IGEvU291cmNlL2JtYWxsb2MvYm1hbGxvYy9BdmFpbGFibGVNZW1vcnkuY3BwIGIvU291cmNlL2JtYWxsb2MvYm1hbGxvYy9BdmFpbGFibGVNZW1vcnkuY3BwCi1pbmRleCA1OTU4ODlmZS4uYjcyMDAwZDUgMTAwNjQ0Ci0tLS0gYS9Tb3VyY2UvYm1hbGxvYy9ibWFsbG9jL0F2YWlsYWJsZU1lbW9yeS5jcHAKLSsrKyBiL1NvdXJjZS9ibWFsbG9jL2JtYWxsb2MvQXZhaWxhYmxlTWVtb3J5LmNwcAotQEAgLTMyLDYgKzMyLDcgQEAKLSAjaW5jbHVkZSAiUGVyUHJvY2Vzcy5oIgotICNpbmNsdWRlICJTY2F2ZW5nZXIuaCIKLSAjaW5jbHVkZSAiU2l6ZXMuaCIKLSsjaW5jbHVkZSA8YXJyYXk+Ci0gI2luY2x1ZGUgPG11dGV4PgotICNpZiBCT1MoREFSV0lOKQotICNpZiBCUExBVEZPUk0oSU9TX0ZBTUlMWSkKLS0tIAotMi4yMi4wCi0KZGlmZiAtLWdpdCBhL3Bva3kvbWV0YS9yZWNpcGVzLXNhdG8vd2Via2l0L3dlYmtpdGd0a18yLjI0LjMuYmIgYi9wb2t5L21ldGEvcmVjaXBlcy1zYXRvL3dlYmtpdC93ZWJraXRndGtfMi4yNC40LmJiCnNpbWlsYXJpdHkgaW5kZXggOTUlCnJlbmFtZSBmcm9tIHBva3kvbWV0YS9yZWNpcGVzLXNhdG8vd2Via2l0L3dlYmtpdGd0a18yLjI0LjMuYmIKcmVuYW1lIHRvIHBva3kvbWV0YS9yZWNpcGVzLXNhdG8vd2Via2l0L3dlYmtpdGd0a18yLjI0LjQuYmIKaW5kZXggMGU1ZWU1Yi4uOGM2OTVjZSAxMDA2NDQKLS0tIGEvcG9reS9tZXRhL3JlY2lwZXMtc2F0by93ZWJraXQvd2Via2l0Z3RrXzIuMjQuMy5iYgorKysgYi9wb2t5L21ldGEvcmVjaXBlcy1zYXRvL3dlYmtpdC93ZWJraXRndGtfMi4yNC40LmJiCkBAIC0yMywxMSArMjMsMTAgQEAKICAgICAgICAgICAgZmlsZTovL2luY2x1ZGVfYXJyYXkucGF0Y2ggXAogICAgICAgICAgICBmaWxlOi8vbmFycm93aW5nLnBhdGNoIFwKICAgICAgICAgICAgZmlsZTovLzAwMDEtZ3N0cmVhbWVyLWFkZC1hLW1pc3NpbmctZm9ybWF0LXN0cmluZy5wYXRjaCBcCi0gICAgICAgICAgIGZpbGU6Ly8wMDAxLVVucmV2aWV3ZWQtZml4LWJ1aWxkLWZhaWx1cmUtaHR0cHMtYnVncy53ZWJraXQub3JnLXMucGF0Y2ggXAogICAgICAgICAgICAiCiAKLVNSQ19VUklbbWQ1c3VtXSA9ICJlMmE1YmJkMDlhMjE3ZWJhMDk2YTJkMTU2MjE0M2UzNSIKLVNSQ19VUklbc2hhMjU2c3VtXSA9ICI5NDBkNzQ2ZDdlODJjMzU3MjIyZmViNWIzZjQ0YzRiMjAxZTgxZGY3ZDgxZGRjYTVjYTJiZjNhZTBhY2Y2YzUxIgorU1JDX1VSSVttZDVzdW1dID0gImMyMTQ5NjNkOGMwZTdkODM0NjBkYTA0YTBkOGRkYTg3IgorU1JDX1VSSVtzaGEyNTZzdW1dID0gIjg2NjhiMTI5YzAyNjYyNGVjMjI2YTRjY2NmNDk5NWY5ZDI2ZjNlODhmYzI4YWI3NWIwZTk2NWYzYzMyYjdkZDgiCiAKIGluaGVyaXQgY21ha2UgcGtnY29uZmlnIGdvYmplY3QtaW50cm9zcGVjdGlvbiBwZXJsbmF0aXZlIGRpc3Ryb19mZWF0dXJlc19jaGVjayB1cHN0cmVhbS12ZXJzaW9uLWlzLWV2ZW4gZ3RrLWRvYwogCkBAIC02OSw3ICs2OCw3IEBACiAJCSR7QGJiLnV0aWxzLmNvbnRhaW5zKCdHSV9EQVRBX0VOQUJMRUQnLCAnVHJ1ZScsICctREVOQUJMRV9JTlRST1NQRUNUSU9OPU9OJywgJy1ERU5BQkxFX0lOVFJPU1BFQ1RJT049T0ZGJywgZCl9IFwKIAkJJHtAYmIudXRpbHMuY29udGFpbnMoJ0dUS0RPQ19FTkFCTEVEJywgJ1RydWUnLCAnLURFTkFCTEVfR1RLRE9DPU9OJywgJy1ERU5BQkxFX0dUS0RPQz1PRkYnLCBkKX0gXAogCQktREVOQUJMRV9NSU5JQlJPV1NFUj1PTiBcCi0gICAgICAgICAgICAgICAgLURQWVRIT05fRVhFQ1VUQUJMRT1gd2hpY2ggcHl0aG9uYCBcCisgICAgICAgICAgICAgICAgLURQWVRIT05fRVhFQ1VUQUJMRT1gd2hpY2ggcHl0aG9uM2AgXAogCQkiCiAKICMgSmF2YXNjcmlwdCBKSVQgaXMgbm90IHN1cHBvcnRlZCBvbiBBUkMKZGlmZiAtLWdpdCBhL3Bva3kvbWV0YS9yZWNpcGVzLXN1cHBvcnQvYm9vc3QvYmphbS1uYXRpdmVfMS42OS4wLmJiIGIvcG9reS9tZXRhL3JlY2lwZXMtc3VwcG9ydC9ib29zdC9iamFtLW5hdGl2ZV8xLjY5LjAuYmIKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDk0Zjk2ZTYuLjAwMDAwMDAKLS0tIGEvcG9reS9tZXRhL3JlY2lwZXMtc3VwcG9ydC9ib29zdC9iamFtLW5hdGl2ZV8xLjY5LjAuYmIKKysrIC9kZXYvbnVsbApAQCAtMSwxOSArMCwwIEBACi1yZXF1aXJlIGJvb3N0LSR7UFZ9LmluYwotCi1TVU1NQVJZID0gIlBvcnRhYmxlIEJvb3N0LkphbSBidWlsZCB0b29sIGZvciBib29zdCIKLVNFQ1RJT04gPSAiZGV2ZWwiCi0KLWluaGVyaXQgbmF0aXZlCi0KLVNSQ19VUkkgKz0gImZpbGU6Ly9iamFtLW5hdGl2ZS1idWlsZC1iamFtLmRlYnVnLnBhdGNoIFwKLSIKLQotZG9fY29tcGlsZSgpIHsKLSAgICAuL2Jvb3RzdHJhcC5zaCAtLXdpdGgtdG9vbHNldD1nY2MKLX0KLQotZG9faW5zdGFsbCgpIHsKLSAgICBpbnN0YWxsIC1kICR7RH0ke2JpbmRpcn0vCi0gICAgIyBpbnN0YWxsIHVuc3RyaXBwZWQgdmVyc2lvbiBmb3IgYmphbQotICAgIGluc3RhbGwgLWMgLW0gNzU1IGJqYW0uZGVidWcgJHtEfSR7YmluZGlyfS9iamFtCi19CmRpZmYgLS1naXQgYS9wb2t5L21ldGEvcmVjaXBlcy1zdXBwb3J0L2Jvb3N0L2JqYW0tbmF0aXZlXzEuNzEuMC5iYiBiL3Bva3kvbWV0YS9yZWNpcGVzLXN1cHBvcnQvYm9vc3QvYmphbS1uYXRpdmVfMS43MS4wLmJiCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQ4NDNlYjAKLS0tIC9kZXYvbnVsbAorKysgYi9wb2t5L21ldGEvcmVjaXBlcy1zdXBwb3J0L2Jvb3N0L2JqYW0tbmF0aXZlXzEuNzEuMC5iYgpAQCAtMCwwICsxLDIwIEBACityZXF1aXJlIGJvb3N0LSR7UFZ9LmluYworCitTVU1NQVJZID0gIlBvcnRhYmxlIEJvb3N0LkphbSBidWlsZCB0b29sIGZvciBib29zdCIKK1NFQ1RJT04gPSAiZGV2ZWwiCisKK2luaGVyaXQgbmF0aXZlCisKK1NSQ19VUkkgKz0gImZpbGU6Ly8wMDAxLUJ1aWxkLWRlYnVnLXZlcnNpb24tb2YtYmphbS5wYXRjaCBcCisgICAgICAgICAgICBmaWxlOi8vMDAwMS1idWlsZC5zaC11c2UtRE5ERUJVRy1hbHNvLWluLWRlYnVnLWJ1aWxkcy5wYXRjaCBcCisgICAgICAgICAgICIKKworZG9fY29tcGlsZSgpIHsKKyAgICAuL2Jvb3RzdHJhcC5zaCAtLXdpdGgtdG9vbHNldD1nY2MKK30KKworZG9faW5zdGFsbCgpIHsKKyAgICBpbnN0YWxsIC1kICR7RH0ke2JpbmRpcn0vCisgICAgIyBpbnN0YWxsIHVuc3RyaXBwZWQgdmVyc2lvbiBmb3IgYmphbQorICAgIGluc3RhbGwgLWMgLW0gNzU1IGIyICR7RH0ke2JpbmRpcn0vYmphbQorfQpkaWZmIC0tZ2l0IGEvcG9reS9tZXRhL3JlY2lwZXMtc3VwcG9ydC9ib29zdC9ib29zdC0xLjY5LjAuaW5jIGIvcG9reS9tZXRhL3JlY2lwZXMtc3VwcG9ydC9ib29zdC9ib29zdC0xLjcxLjAuaW5jCnNpbWlsYXJpdHkgaW5kZXggNzclCnJlbmFtZSBmcm9tIHBva3kvbWV0YS9yZWNpcGVzLXN1cHBvcnQvYm9vc3QvYm9vc3QtMS42OS4wLmluYwpyZW5hbWUgdG8gcG9reS9tZXRhL3JlY2lwZXMtc3VwcG9ydC9ib29zdC9ib29zdC0xLjcxLjAuaW5jCmluZGV4IDkyMzQzNmIuLjcxNjRkMGYgMTAwNjQ0Ci0tLSBhL3Bva3kvbWV0YS9yZWNpcGVzLXN1cHBvcnQvYm9vc3QvYm9vc3QtMS42OS4wLmluYworKysgYi9wb2t5L21ldGEvcmVjaXBlcy1zdXBwb3J0L2Jvb3N0L2Jvb3N0LTEuNzEuMC5pbmMKQEAgLTExLDkgKzExLDkgQEAKIEJPT1NUX01BSiA9ICIke0AiXyIuam9pbihkLmdldFZhcigiUFYiKS5zcGxpdCgiLiIpWzA6Ml0pfSIKIEJPT1NUX1AgPSAiYm9vc3RfJHtCT09TVF9WRVJ9IgogCi1TUkNfVVJJID0gIiR7U09VUkNFRk9SR0VfTUlSUk9SfS9wcm9qZWN0L2Jvb3N0L2Jvb3N0LyR7UFZ9LyR7Qk9PU1RfUH0udGFyLmJ6MiIKLVNSQ19VUklbbWQ1c3VtXSA9ICJhMTMzMjQ5NDM5N2JmNDgzMzJjYjE1MmFiZmVmY2VjMiIKLVNSQ19VUklbc2hhMjU2c3VtXSA9ICI4ZjMyZDQ2MTczOTBkMWMyZDE2ZjI2YTI3YWI2MGQ5NzgwN2IzNTQ0MGQ0NTg5MWZhMzQwZmMyNjQ4YjA0NDA2IgorU1JDX1VSSSA9ICJodHRwczovL2RsLmJpbnRyYXkuY29tL2Jvb3N0b3JnL3JlbGVhc2UvJHtQVn0vc291cmNlLyR7Qk9PU1RfUH0udGFyLmJ6MiIKK1NSQ19VUklbbWQ1c3VtXSA9ICI0Y2RmOWI1YzJkYzAxZmIyYjdiNzMzZDVhZjMwZTU1OCIKK1NSQ19VUklbc2hhMjU2c3VtXSA9ICJkNzNhOGRhMDFlOGJmOGM3ZWRhNDBiNGM4NDkxNTA3MWE4YzhhMGRmNGE2NzM0NTM3ZGRkZTRhODU4MDUyNGVlIgogCiBVUFNUUkVBTV9DSEVDS19VUkkgPSAiaHR0cDovL3d3dy5ib29zdC5vcmcvdXNlcnMvZG93bmxvYWQvIgogVVBTVFJFQU1fQ0hFQ0tfUkVHRVggPSAiYm9vc3RvcmcvcmVsZWFzZS8oP1A8cHZlcj4uKikvc291cmNlLyIKZGlmZiAtLWdpdCBhL3Bva3kvbWV0YS9yZWNpcGVzLXN1cHBvcnQvYm9vc3QvYm9vc3QuaW5jIGIvcG9reS9tZXRhL3JlY2lwZXMtc3VwcG9ydC9ib29zdC9ib29zdC5pbmMKaW5kZXggZjM4NTU0MS4uZTE1ZGNlNCAxMDA2NDQKLS0tIGEvcG9reS9tZXRhL3JlY2lwZXMtc3VwcG9ydC9ib29zdC9ib29zdC5pbmMKKysrIGIvcG9reS9tZXRhL3JlY2lwZXMtc3VwcG9ydC9ib29zdC9ib29zdC5pbmMKQEAgLTgzLDcgKzgzLDcgQEAKIAogIyAtZGV2IGxhc3QgdG8gcGljayB1cCB0aGUgcmVtYWluaW5nIHN0dWZmCiBQQUNLQUdFUyArPSAiJHtQTn0tZGV2ICR7UE59LXN0YXRpY2RldiIKLUZJTEVTXyR7UE59LWRldiA9ICIke2luY2x1ZGVkaXJ9ICR7bGliZGlyfS9saWJib29zdF8qLnNvIgorRklMRVNfJHtQTn0tZGV2ID0gIiR7aW5jbHVkZWRpcn0gJHtsaWJkaXJ9L2xpYmJvb3N0Xyouc28gJHtsaWJkaXJ9L2NtYWtlIgogRklMRVNfJHtQTn0tc3RhdGljZGV2ID0gIiR7bGliZGlyfS9saWJib29zdF8qLmEiCiAKICMgImJvb3N0IiBpcyBhIG1ldGFwYWNrYWdlIHdoaWNoIHB1bGxzIGluIGFsbCBib29zdCBsaWJyYWJyaWVzCmRpZmYgLS1naXQgYS9wb2t5L21ldGEvcmVjaXBlcy1zdXBwb3J0L2Jvb3N0L2Jvb3N0LzAwMDEtRG9uLXQtc2V0LXVwLWFyY2gtaW5zdHJ1Y3Rpb24tc2V0LWZsYWdzLXdlLWRvLXRoYXQtby5wYXRjaCBiL3Bva3kvbWV0YS9yZWNpcGVzLXN1cHBvcnQvYm9vc3QvYm9vc3QvMDAwMS1Eb24tdC1zZXQtdXAtYXJjaC1pbnN0cnVjdGlvbi1zZXQtZmxhZ3Mtd2UtZG8tdGhhdC1vLnBhdGNoCmluZGV4IDg5NDRjYjMuLjY4ZDZlNjQgMTAwNjQ0Ci0tLSBhL3Bva3kvbWV0YS9yZWNpcGVzLXN1cHBvcnQvYm9vc3QvYm9vc3QvMDAwMS1Eb24tdC1zZXQtdXAtYXJjaC1pbnN0cnVjdGlvbi1zZXQtZmxhZ3Mtd2UtZG8tdGhhdC1vLnBhdGNoCisrKyBiL3Bva3kvbWV0YS9yZWNpcGVzLXN1cHBvcnQvYm9vc3QvYm9vc3QvMDAwMS1Eb24tdC1zZXQtdXAtYXJjaC1pbnN0cnVjdGlvbi1zZXQtZmxhZ3Mtd2UtZG8tdGhhdC1vLnBhdGNoCkBAIC0xLDQgKzEsNCBAQAotRnJvbSAzZTRlYjAyZWI1OTUxMDU4YmM2ZjhkZmZiZjA0OWViMTg5ZGY4MjkxIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbSBmNGQzZmFkNDNkNjc4MDhkNzEzMjViYTBkZjE0NTc1NTViOWEwMDg2IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQogRnJvbTogQWxleGFuZGVyIEthbmF2aW4gPGFsZXgua2FuYXZpbkBnbWFpbC5jb20+CiBEYXRlOiBUdWUsIDE4IERlYyAyMDE4IDE1OjQyOjU3ICswMTAwCiBTdWJqZWN0OiBbUEFUQ0hdIERvbid0IHNldCB1cCBhcmNoL2luc3RydWN0aW9uLXNldCBmbGFncywgd2UgZG8gdGhhdCBvdXJzZWx2ZXMKQEAgLTYsMTUgKzYsMTYgQEAKIFVwc3RyZWFtLVN0YXR1czogSW5hcHByb3ByaWF0ZQogU2lnbmVkLW9mZi1ieTogQ2hyaXN0b3BoZXIgTGFyc29uIDxjaHJpc19sYXJzb25AbWVudG9yLmNvbT4KIFNpZ25lZC1vZmYtYnk6IEFsZXhhbmRlciBLYW5hdmluIDxhbGV4LmthbmF2aW5AZ21haWwuY29tPgorCiAtLS0KLSB0b29scy9idWlsZC9zcmMvdG9vbHMvZ2NjLmphbSB8IDEyOCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gMSBmaWxlIGNoYW5nZWQsIDEyOCBkZWxldGlvbnMoLSkKKyB0b29scy9idWlsZC9zcmMvdG9vbHMvZ2NjLmphbSB8IDEzMiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgMSBmaWxlIGNoYW5nZWQsIDEzMiBkZWxldGlvbnMoLSkKIAogZGlmZiAtLWdpdCBhL3Rvb2xzL2J1aWxkL3NyYy90b29scy9nY2MuamFtIGIvdG9vbHMvYnVpbGQvc3JjL3Rvb2xzL2djYy5qYW0KLWluZGV4IGM1N2M3NzNmLi4yODYxOGZiMSAxMDA2NDQKK2luZGV4IGI5YmI5Y2YyYS4uYzdlM2NmM2ZlIDEwMDY0NAogLS0tIGEvdG9vbHMvYnVpbGQvc3JjL3Rvb2xzL2djYy5qYW0KICsrKyBiL3Rvb2xzL2J1aWxkL3NyYy90b29scy9nY2MuamFtCi1AQCAtMTE1MiwxMzEgKzExNTIsMyBAQCBsb2NhbCBydWxlIGNwdS1mbGFncyAoIHRvb2xzZXQgdmFyaWFibGUgOiBhcmNoaXRlY3R1cmUgOiBpbnN0cnVjdGlvbi1zZXQgKyA6CitAQCAtMTE4MCwxMzUgKzExODAsMyBAQCBsb2NhbCBydWxlIGNwdS1mbGFncyAoIHRvb2xzZXQgdmFyaWFibGUgOiBhcmNoaXRlY3R1cmUgOiBpbnN0cnVjdGlvbi1zZXQgKyA6CiAgICAgICAgICA8YXJjaGl0ZWN0dXJlPiQoYXJjaGl0ZWN0dXJlKS88aW5zdHJ1Y3Rpb24tc2V0PiQoaW5zdHJ1Y3Rpb24tc2V0KQogICAgICAgICAgOiAkKHZhbHVlcykgOwogIH0KQEAgLTE0NCw1ICsxNDUsOSBAQAogLWNwdS1mbGFncyBnY2MgT1BUSU9OUyA6IHBvd2VyIDogcmlvczIgOiAtbWNwdT1yaW9zMiA7CiAtY3B1LWZsYWdzIGdjYyBPUFRJT05TIDogcG93ZXIgOiByc2MgOiAtbWNwdT1yc2MgOwogLWNwdS1mbGFncyBnY2MgT1BUSU9OUyA6IHBvd2VyIDogcnM2NGEgOiAtbWNwdT1yczY0IDsKKy1jcHUtZmxhZ3MgZ2NjIE9QVElPTlMgOiBzMzkweCA6IHoxOTYgOiAtbWFyY2g9ejE5NiA7CistY3B1LWZsYWdzIGdjYyBPUFRJT05TIDogczM5MHggOiB6RUMxMiA6IC1tYXJjaD16RUMxMiA7CistY3B1LWZsYWdzIGdjYyBPUFRJT05TIDogczM5MHggOiB6MTMgOiAtbWFyY2g9ejEzIDsKKy1jcHUtZmxhZ3MgZ2NjIE9QVElPTlMgOiBzMzkweCA6IHoxNCA6IC1tYXJjaD16MTQgOwogLSMgQUlYIHZhcmlhbnQgb2YgUlMvNjAwMCAmIFBvd2VyUEMKIC10b29sc2V0LmZsYWdzIGdjYyBBUk9QVElPTlMgPGFkZHJlc3MtbW9kZWw+NjQvPHRhcmdldC1vcz5haXggOiAiLVg2NCIgOwpkaWZmIC0tZ2l0IGEvcG9reS9tZXRhL3JlY2lwZXMtc3VwcG9ydC9ib29zdC9ib29zdF8xLjY5LjAuYmIgYi9wb2t5L21ldGEvcmVjaXBlcy1zdXBwb3J0L2Jvb3N0L2Jvb3N0XzEuNzEuMC5iYgpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gcG9reS9tZXRhL3JlY2lwZXMtc3VwcG9ydC9ib29zdC9ib29zdF8xLjY5LjAuYmIKcmVuYW1lIHRvIHBva3kvbWV0YS9yZWNpcGVzLXN1cHBvcnQvYm9vc3QvYm9vc3RfMS43MS4wLmJiCmRpZmYgLS1naXQgYS9wb2t5L21ldGEvcmVjaXBlcy1zdXBwb3J0L2Jvb3N0L2ZpbGVzLzAwMDEtQnVpbGQtZGVidWctdmVyc2lvbi1vZi1iamFtLnBhdGNoIGIvcG9reS9tZXRhL3JlY2lwZXMtc3VwcG9ydC9ib29zdC9maWxlcy8wMDAxLUJ1aWxkLWRlYnVnLXZlcnNpb24tb2YtYmphbS5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jNmRjZWU5Ci0tLSAvZGV2L251bGwKKysrIGIvcG9reS9tZXRhL3JlY2lwZXMtc3VwcG9ydC9ib29zdC9maWxlcy8wMDAxLUJ1aWxkLWRlYnVnLXZlcnNpb24tb2YtYmphbS5wYXRjaApAQCAtMCwwICsxLDM4IEBACitGcm9tIDE5YzExN2MzZDEzODg2NTRkYTQ4NGUyNmFmYjNmYjZjM2U0MTgxYTkgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBEYW5pZWwgS2xhdWVyIDxkYW5pZWwua2xhdWVyQGdpbi5kZT4KK0RhdGU6IFR1ZSwgMzAgSnVsIDIwMTkgMTE6Mzk6MDkgKzAyMDAKK1N1YmplY3Q6IFtQQVRDSF0gQnVpbGQgZGVidWcgdmVyc2lvbiBvZiBiamFtCisKK2JqYW0gaXMgc3RyaXBwZWQgYnkgZGVmYXVsdCwgdGhpcyBjYXVzZXMgUUEgd2FybmluZyB3aGlsZSBzdHJpcHBpbmcgaXQKK2Zyb20gZG9fcG9wdWxhdGVfc3lzcm9vdCgpOgorCisgIFdBUk5JTkc6IEZpbGUgJy4uLi90bXAvc3lzcm9vdHMveDg2XzY0LWxpbnV4L3Vzci9iaW4vYmphbScgXAorICAgIGZyb20gYmphbS1uYXRpdmUgd2FzIGFscmVhZHkgc3RyaXBwZWQsIFwKKyAgICB0aGlzIHdpbGwgcHJldmVudCBmdXR1cmUgZGVidWdnaW5nIQorCitUaGUgSkFNIHNjcmlwdHMgYWxsb3cgdG8gYnVpbGQgdW5zdHJpcHBlZCB2ZXJzaW9uIHdpdGggJy0tZGVidWcnLiBKdXN0CitidWlsZCBhbmQgaW5zdGFsbCB0aGUgYmphbS5kZWJ1ZyB0byBzdG9wIGJqYW0gZnJvbSBiZWluZyBzdHJpcHBlZCBpbgorY29tcGlsZSBzdGVwLgorCitVcHN0cmVhbS1TdGF0dXM6IEluYXBwcm9wcmlhdGUgW2NvbmZpZ3VyYXRpb25dCitTaWduZWQtb2ZmLWJ5OiBBbGV4YW5kZXIgS2FuYXZpbiA8YWxleC5rYW5hdmluQGdtYWlsLmNvbT4KKy0tLQorIGJvb3RzdHJhcC5zaCB8IDIgKy0KKyAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkKKworZGlmZiAtLWdpdCBhL2Jvb3RzdHJhcC5zaCBiL2Jvb3RzdHJhcC5zaAoraW5kZXggY2EwYjA4ZDU4Li44N2YzOGRjZjIgMTAwNzU1CistLS0gYS9ib290c3RyYXAuc2gKKysrKyBiL2Jvb3RzdHJhcC5zaAorQEAgLTIyMyw3ICsyMjMsNyBAQCBybSAtZiBjb25maWcubG9nCisgaWYgdGVzdCAieCRCSkFNIiA9IHg7IHRoZW4KKyAgICRFQ0hPIC1uICJCdWlsZGluZyBCb29zdC5CdWlsZCBlbmdpbmUgd2l0aCB0b29sc2V0ICRUT09MU0VULi4uICIKKyAgIHB3ZD1gcHdkYAorLSAgKGNkICIkbXlfZGlyL3Rvb2xzL2J1aWxkL3NyYy9lbmdpbmUiICYmIC4vYnVpbGQuc2ggIiRUT09MU0VUIikgPiBib290c3RyYXAubG9nIDI+JjEKKysgIChjZCAiJG15X2Rpci90b29scy9idWlsZC9zcmMvZW5naW5lIiAmJiAuL2J1aWxkLnNoICIkVE9PTFNFVCIgLS1kZWJ1ZykgPiBib290c3RyYXAubG9nIDI+JjEKKyAgIGlmIFsgJD8gLW5lIDAgXTsgdGhlbgorICAgICAgIGVjaG8KKyAgICAgICBlY2hvICJGYWlsZWQgdG8gYnVpbGQgQm9vc3QuQnVpbGQgYnVpbGQgZW5naW5lIiAKKy0tIAorMi4xNy4xCisKZGlmZiAtLWdpdCBhL3Bva3kvbWV0YS9yZWNpcGVzLXN1cHBvcnQvYm9vc3QvZmlsZXMvMDAwMS1idWlsZC5zaC11c2UtRE5ERUJVRy1hbHNvLWluLWRlYnVnLWJ1aWxkcy5wYXRjaCBiL3Bva3kvbWV0YS9yZWNpcGVzLXN1cHBvcnQvYm9vc3QvZmlsZXMvMDAwMS1idWlsZC5zaC11c2UtRE5ERUJVRy1hbHNvLWluLWRlYnVnLWJ1aWxkcy5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40YzZlZjJlCi0tLSAvZGV2L251bGwKKysrIGIvcG9reS9tZXRhL3JlY2lwZXMtc3VwcG9ydC9ib29zdC9maWxlcy8wMDAxLWJ1aWxkLnNoLXVzZS1ETkRFQlVHLWFsc28taW4tZGVidWctYnVpbGRzLnBhdGNoCkBAIC0wLDAgKzEsMjcgQEAKK0Zyb20gMmFmZDAyNTk5N2E1Nzc5NGNlMjRlMDdlOTE0YjQ2MWRmZWE2YmE1ZiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IEFsZXhhbmRlciBLYW5hdmluIDxhbGV4LmthbmF2aW5AZ21haWwuY29tPgorRGF0ZTogTW9uLCAyNiBBdWcgMjAxOSAxNjowNDoxNiArMDIwMAorU3ViamVjdDogW1BBVENIXSBidWlsZC5zaDogdXNlIC1ETkRFQlVHIGFsc28gaW4gZGVidWcgYnVpbGRzCisKK1dpdGhvdXQgaXQsIHRoZXJlIGlzIGEgc2lnbmlmaWNhbnQgcGVyZm9ybWFuY2UgcmVncmVzc2lvbgord2hlbiBydW5uaW5nICdiamFtIGluc3RhbGwnLgorCitVcHN0cmVhbS1TdGF0dXM6IEluYXBwcm9wcmlhdGUgW2NvbmZpZ3VyYXRpb25dCitTaWduZWQtb2ZmLWJ5OiBBbGV4YW5kZXIgS2FuYXZpbiA8YWxleC5rYW5hdmluQGdtYWlsLmNvbT4KKy0tLQorIHRvb2xzL2J1aWxkL3NyYy9lbmdpbmUvYnVpbGQuc2ggfCAyICstCisgMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAxIGRlbGV0aW9uKC0pCisKK2RpZmYgLS1naXQgYS90b29scy9idWlsZC9zcmMvZW5naW5lL2J1aWxkLnNoIGIvdG9vbHMvYnVpbGQvc3JjL2VuZ2luZS9idWlsZC5zaAoraW5kZXggYTFlNGNkMzM1Li42NGUwYTRjODAgMTAwNzU1CistLS0gYS90b29scy9idWlsZC9zcmMvZW5naW5lL2J1aWxkLnNoCisrKysgYi90b29scy9idWlsZC9zcmMvZW5naW5lL2J1aWxkLnNoCitAQCAtNDM2LDcgKzQzNiw3IEBAIGNhc2UgJEIyX09TIGluCisgICAgIDs7CisgZXNhYworIAorLWlmIGNoZWNrX2RlYnVnX2J1aWxkICIkQCIgOyB0aGVuIEIyX0NYWEZMQUdTPSIke0IyX0NYWEZMQUdTX0RFQlVHfSIKKytpZiBjaGVja19kZWJ1Z19idWlsZCAiJEAiIDsgdGhlbiBCMl9DWFhGTEFHUz0iJHtCMl9DWFhGTEFHU19ERUJVR30gLUROREVCVUciCisgZWxzZSBCMl9DWFhGTEFHUz0iJHtCMl9DWFhGTEFHU19SRUxFQVNFfSAtRE5ERUJVRyIKKyBmaQorIGVjaG9fcnVuICR7QjJfQ1hYfSAke0NYWEZMQUdTfSAke0IyX0NYWEZMQUdTfSAke0IyX1NPVVJDRVN9IC1vIGIyCmRpZmYgLS1naXQgYS9wb2t5L21ldGEvcmVjaXBlcy1zdXBwb3J0L2Jvb3N0L2ZpbGVzL2JqYW0tbmF0aXZlLWJ1aWxkLWJqYW0uZGVidWcucGF0Y2ggYi9wb2t5L21ldGEvcmVjaXBlcy1zdXBwb3J0L2Jvb3N0L2ZpbGVzL2JqYW0tbmF0aXZlLWJ1aWxkLWJqYW0uZGVidWcucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDlmOGI3ZWEuLjAwMDAwMDAKLS0tIGEvcG9reS9tZXRhL3JlY2lwZXMtc3VwcG9ydC9ib29zdC9maWxlcy9iamFtLW5hdGl2ZS1idWlsZC1iamFtLmRlYnVnLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsNTAgKzAsMCBAQAotRnJvbSA2MTlhZGEzMTRhYjI2YzBjOWNiZmU1NzAyY2Q5YzBjYWE4ZjY0MTVhIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogV2Vuem9uZyBGYW4gPHdlbnpvbmcuZmFuQHdpbmRyaXZlci5jb20+Ci1EYXRlOiBNb24sIDMgQXVnIDIwMTUgMTc6MTI6MzMgKzA4MDAKLVN1YmplY3Q6IFtQQVRDSF0gYmphbS1uYXRpdmU6IGJ1aWxkIGJqYW0uZGVidWcKLQotYmphbSBpcyBzdHJpcHBlZCBieSBkZWZhdWx0LCB0aGlzIGNhdXNlcyBRQSB3YXJuaW5nIHdoaWxlIHN0cmlwcGluZyBpdAotZnJvbSBkb19wb3B1bGF0ZV9zeXNyb290KCk6Ci0KLSAgV0FSTklORzogRmlsZSAnLi4uL3RtcC9zeXNyb290cy94ODZfNjQtbGludXgvdXNyL2Jpbi9iamFtJyBcCi0gICAgZnJvbSBiamFtLW5hdGl2ZSB3YXMgYWxyZWFkeSBzdHJpcHBlZCwgXAotICAgIHRoaXMgd2lsbCBwcmV2ZW50IGZ1dHVyZSBkZWJ1Z2dpbmchCi0KLVRoZSBKQU0gc2NyaXB0cyBhbGxvdyB0byBidWlsZCB1bnN0cmlwcGVkIHZlcnNpb24gd2l0aCAnLS1kZWJ1ZycuIEp1c3QKLWJ1aWxkIGFuZCBpbnN0YWxsIHRoZSBiamFtLmRlYnVnIHRvIHN0b3AgYmphbSBmcm9tIGJlaW5nIHN0cmlwcGVkIGluCi1jb21waWxlIHN0ZXAuCi0KLVVwc3RyZWFtLVN0YXR1czogSW5hcHByb3ByaWF0ZSBbY29uZmlndXJhdGlvbl0KLQotU2lnbmVkLW9mZi1ieTogV2Vuem9uZyBGYW4gPHdlbnpvbmcuZmFuQHdpbmRyaXZlci5jb20+Ci0tLS0KLSBib290c3RyYXAuc2ggICAgICAgICAgICAgICAgICAgIHwgMSArCi0gdG9vbHMvYnVpbGQvc3JjL2VuZ2luZS9idWlsZC5zaCB8IDIgKy0KLSAyIGZpbGVzIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQotCi1kaWZmIC0tZ2l0IGEvYm9vdHN0cmFwLnNoIGIvYm9vdHN0cmFwLnNoCi1pbmRleCA5OGNmODhiLi41NDY5MGFhIDEwMDc1NQotLS0tIGEvYm9vdHN0cmFwLnNoCi0rKysgYi9ib290c3RyYXAuc2gKLUBAIC0yMjgsNiArMjI4LDcgQEAgaWYgdGVzdCAieCRCSkFNIiA9IHg7IHRoZW4KLSAgIGVjaG8gInRvb2xzL2J1aWxkL3NyYy9lbmdpbmUvJGFyY2gvYjIiCi0gICBjcCAiJEJKQU0iIC4KLSAgIGNwICIkbXlfZGlyL3Rvb2xzL2J1aWxkL3NyYy9lbmdpbmUvJGFyY2gvYmphbSIgLgotKyAgY3AgIiRteV9kaXIvdG9vbHMvYnVpbGQvc3JjL2VuZ2luZS8ke2FyY2h9LmRlYnVnL2JqYW0iIGJqYW0uZGVidWcKLSAKLSBmaQotIAotZGlmZiAtLWdpdCBhL3Rvb2xzL2J1aWxkL3NyYy9lbmdpbmUvYnVpbGQuc2ggYi90b29scy9idWlsZC9zcmMvZW5naW5lL2J1aWxkLnNoCi1pbmRleCA2ZGJjNzA2Li5jNjlmZGM3IDEwMDc1NQotLS0tIGEvdG9vbHMvYnVpbGQvc3JjL2VuZ2luZS9idWlsZC5zaAotKysrIGIvdG9vbHMvYnVpbGQvc3JjL2VuZ2luZS9idWlsZC5zaAotQEAgLTMxMiw1ICszMTIsNSBAQCBpZiB0ZXN0IC14ICIuL2Jvb3RzdHJhcC9qYW0wIiA7IHRoZW4KLSAgICAgaWYgdGVzdCAiJHtCSkFNX1VQREFURX0iICE9ICJ1cGRhdGUiIDsgdGhlbgotICAgICAgICAgZWNob19ydW4gLi9ib290c3RyYXAvamFtMCAtZiBidWlsZC5qYW0gLS10b29sc2V0PSRCT09TVF9KQU1fVE9PTFNFVCAiLS10b29sc2V0LXJvb3Q9JEJPT1NUX0pBTV9UT09MU0VUX1JPT1QiICIkQCIgY2xlYW4KLSAgICAgZmkKLS0gICAgZWNob19ydW4gLi9ib290c3RyYXAvamFtMCAtZiBidWlsZC5qYW0gLS10b29sc2V0PSRCT09TVF9KQU1fVE9PTFNFVCAiLS10b29sc2V0LXJvb3Q9JEJPT1NUX0pBTV9UT09MU0VUX1JPT1QiICIkQCIKLSsgICAgZWNob19ydW4gLi9ib290c3RyYXAvamFtMCAtZiBidWlsZC5qYW0gLS10b29sc2V0PSRCT09TVF9KQU1fVE9PTFNFVCAiLS10b29sc2V0LXJvb3Q9JEJPT1NUX0pBTV9UT09MU0VUX1JPT1QiICIkQCIgLS1kZWJ1ZwotIGZpCi0tLSAKLTEuOS4xCi0KZGlmZiAtLWdpdCBhL3Bva3kvbWV0YS9yZWNpcGVzLXN1cHBvcnQvY2EtY2VydGlmaWNhdGVzL2NhLWNlcnRpZmljYXRlcy8wMDAxLWNlcnRkYXRhMnBlbS5weS11c2UtcHl0aG9uMy5wYXRjaCBiL3Bva3kvbWV0YS9yZWNpcGVzLXN1cHBvcnQvY2EtY2VydGlmaWNhdGVzL2NhLWNlcnRpZmljYXRlcy8wMDAxLWNlcnRkYXRhMnBlbS5weS11c2UtcHl0aG9uMy5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hYTJjODVmCi0tLSAvZGV2L251bGwKKysrIGIvcG9reS9tZXRhL3JlY2lwZXMtc3VwcG9ydC9jYS1jZXJ0aWZpY2F0ZXMvY2EtY2VydGlmaWNhdGVzLzAwMDEtY2VydGRhdGEycGVtLnB5LXVzZS1weXRob24zLnBhdGNoCkBAIC0wLDAgKzEsMzcgQEAKK0Zyb20gYjZkMThjYTc3ZjEzMWNkY2FhMTBkMGVhYTlkMzAzMzk5NzY3ZWRmNiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IEFsZXhhbmRlciBLYW5hdmluIDxhbGV4LmthbmF2aW5AZ21haWwuY29tPgorRGF0ZTogV2VkLCAyOCBBdWcgMjAxOSAxOToxODoxNCArMDIwMAorU3ViamVjdDogW1BBVENIXSBjZXJ0ZGF0YTJwZW0ucHk6IHVzZSBweXRob24zCisKK0NvbW1lbnRzIGluIHRoYXQgZmlsZSBpbXBseSBpdCBpcyBhbHJlYWR5IHB5MyBjb21wYXRpYmxlLgorCitVcHN0cmVhbS1TdGF0dXM6IFBlbmRpbmcKK1NpZ25lZC1vZmYtYnk6IEFsZXhhbmRlciBLYW5hdmluIDxhbGV4LmthbmF2aW5AZ21haWwuY29tPgorLS0tCisgbW96aWxsYS9NYWtlZmlsZSAgICAgICAgfCAyICstCisgbW96aWxsYS9jZXJ0ZGF0YTJwZW0ucHkgfCAyICstCisgMiBmaWxlcyBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCisKK2RpZmYgLS1naXQgYS9tb3ppbGxhL01ha2VmaWxlIGIvbW96aWxsYS9NYWtlZmlsZQoraW5kZXggNmY0NjExOC4uZjk4ODc3YyAxMDA2NDQKKy0tLSBhL21vemlsbGEvTWFrZWZpbGUKKysrKyBiL21vemlsbGEvTWFrZWZpbGUKK0BAIC0zLDcgKzMsNyBAQAorICMKKyAKKyBhbGw6CistCXB5dGhvbiBjZXJ0ZGF0YTJwZW0ucHkKKysJcHl0aG9uMyBjZXJ0ZGF0YTJwZW0ucHkKKyAKKyBjbGVhbjoKKyAJLXJtIC1mICouY3J0CitkaWZmIC0tZ2l0IGEvbW96aWxsYS9jZXJ0ZGF0YTJwZW0ucHkgYi9tb3ppbGxhL2NlcnRkYXRhMnBlbS5weQoraW5kZXggMGIwMmIyYS4uN2Q3OTZmMSAxMDA2NDQKKy0tLSBhL21vemlsbGEvY2VydGRhdGEycGVtLnB5CisrKysgYi9tb3ppbGxhL2NlcnRkYXRhMnBlbS5weQorQEAgLTEsNCArMSw0IEBACistIyEvdXNyL2Jpbi9weXRob24KKysjIS91c3IvYmluL3B5dGhvbjMKKyAjIHZpbTpzZXQgZXQgc3c9NDoKKyAjCisgIyBjZXJ0ZGF0YTJwZW0ucHkgLSBzcGxpdHMgY2VydGRhdGEudHh0IGludG8gbXVsdGlwbGUgZmlsZXMKZGlmZiAtLWdpdCBhL3Bva3kvbWV0YS9yZWNpcGVzLXN1cHBvcnQvY2EtY2VydGlmaWNhdGVzL2NhLWNlcnRpZmljYXRlc18yMDE5MDExMC5iYiBiL3Bva3kvbWV0YS9yZWNpcGVzLXN1cHBvcnQvY2EtY2VydGlmaWNhdGVzL2NhLWNlcnRpZmljYXRlc18yMDE5MDExMC5iYgppbmRleCBlZmQ5ZWFhLi5jZTNjYjIxIDEwMDY0NAotLS0gYS9wb2t5L21ldGEvcmVjaXBlcy1zdXBwb3J0L2NhLWNlcnRpZmljYXRlcy9jYS1jZXJ0aWZpY2F0ZXNfMjAxOTAxMTAuYmIKKysrIGIvcG9reS9tZXRhL3JlY2lwZXMtc3VwcG9ydC9jYS1jZXJ0aWZpY2F0ZXMvY2EtY2VydGlmaWNhdGVzXzIwMTkwMTEwLmJiCkBAIC0yMyw2ICsyMyw3IEBACiAgICAgICAgICAgIGZpbGU6Ly9kZWZhdWx0LXN5c3Jvb3QucGF0Y2ggXAogICAgICAgICAgICBmaWxlOi8vc2JpbmRpci5wYXRjaCBcCiAgICAgICAgICAgIGZpbGU6Ly8wMDAzLXVwZGF0ZS1jYS1jZXJ0aWZpY2F0ZXMtdXNlLXJlbGF0aXZlLXN5bWxpbmtzLWZyb20tRVQucGF0Y2ggXAorICAgICAgICAgICBmaWxlOi8vMDAwMS1jZXJ0ZGF0YTJwZW0ucHktdXNlLXB5dGhvbjMucGF0Y2ggXAogICAgICAgICAgICAiCiAKIFMgPSAiJHtXT1JLRElSfS9naXQiCkBAIC01Myw3ICs1NCw3IEBACiAgICAgICAgIGVjaG8gIiMgTGluZXMgc3RhcnRpbmcgd2l0aCAhIHdpbGwgcmVtb3ZlIGNlcnRpZmljYXRlIG9uIG5leHQgdXBkYXRlIgogICAgICAgICBlY2hvICIjIgogICAgICAgICBmaW5kICR7RH0ke2RhdGFkaXJ9L2NhLWNlcnRpZmljYXRlcyAtdHlwZSBmIC1uYW1lICcqLmNydCcgfCBcCi0gICAgICAgICAgICBzZWQgJ3MsXiR7RH0ke2RhdGFkaXJ9L2NhLWNlcnRpZmljYXRlcy8sLCcKKyAgICAgICAgICAgIHNlZCAncyxeJHtEfSR7ZGF0YWRpcn0vY2EtY2VydGlmaWNhdGVzLywsJyB8IHNvcnQKICAgICB9ID4ke0R9JHtzeXNjb25mZGlyfS9jYS1jZXJ0aWZpY2F0ZXMuY29uZgogfQogCmRpZmYgLS1naXQgYS9wb2t5L21ldGEvcmVjaXBlcy1zdXBwb3J0L2xpYmJzZC9saWJic2QvMDAwMS1mbG9wZW4tQWRkLW1pc3NpbmctZmNudGwuaC1pbmNsdWRlLnBhdGNoIGIvcG9reS9tZXRhL3JlY2lwZXMtc3VwcG9ydC9saWJic2QvbGliYnNkLzAwMDEtZmxvcGVuLUFkZC1taXNzaW5nLWZjbnRsLmgtaW5jbHVkZS5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOGFiYjg3Ni4uMDAwMDAwMAotLS0gYS9wb2t5L21ldGEvcmVjaXBlcy1zdXBwb3J0L2xpYmJzZC9saWJic2QvMDAwMS1mbG9wZW4tQWRkLW1pc3NpbmctZmNudGwuaC1pbmNsdWRlLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsNDYgKzAsMCBAQAotRnJvbSAxM2MzMjkxNmI0YmFhYjU4ZDkzOTQwZDU3ZmVhOWZmMDc3N2YxOTMxIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogQmFydWNoIFNpYWNoIDxiYXJ1Y2hAdGtvcy5jby5pbD4KLURhdGU6IFR1ZSwgNSBKdW4gMjAxOCAxOToyMTo0NiArMDMwMAotU3ViamVjdDogW1BBVENIXSBmbG9wZW46IEFkZCBtaXNzaW5nIDxmY250bC5oPiBpbmNsdWRlCi1NSU1FLVZlcnNpb246IDEuMAotQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PVVURi04Ci1Db250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA4Yml0Ci0KLUNvbW1pdCA5OTM4MjhkODRlZSAoQWRkIGZsb3BlbmF0KCkgZnVuY3Rpb24gZnJvbSBGcmVlQlNEKSBkcm9wcGVkIHRoZQotZmNudGwuaCBoZWFkZXIuIFRoaXMgYnJlYWtzIHRoZSBidWlsZCB3aXRoIG11c2wgbGliYzoKLQotZmxvcGVuLmM6IEluIGZ1bmN0aW9uIOKAmHZmbG9wZW5hdOKAmToKLWZsb3Blbi5jOjYwOjE0OiBlcnJvcjog4oCYT19DUkVBVOKAmSB1bmRlY2xhcmVkIChmaXJzdCB1c2UgaW4gdGhpcyBmdW5jdGlvbikKLSAgaWYgKGZsYWdzICYgT19DUkVBVCkgewotICAgICAgICAgICAgICBefn5+fn5+Ci0KLVJlc3RvcmUgdGhlIGZjbnRsLmggaGVhZGVyIGluY2x1ZGUgdG8gZml4IHRoZSBidWlsZC4KLQotRml4ZXM6IGNvbW1pdCA5OTM4MjhkODRlZWQwNDY4YzZjMTViMjgxOGU1MzRlNmIxMzRiOGU0Ci1TdWJtaXR0ZWQtYWxzby1ieTogcGFyYXp5ZCA8cGFyYXp5ZEBkeW5lLm9yZz4KLVNpZ25lZC1vZmYtYnk6IEJhcnVjaCBTaWFjaCA8YmFydWNoQHRrb3MuY28uaWw+Ci1TaWduZWQtb2ZmLWJ5OiBHdWlsbGVtIEpvdmVyIDxndWlsbGVtQGhhZHJvbnMub3JnPgotCi1VcHN0cmVhbS1TdGF0dXM6IEJhY2twb3J0Ci1baHR0cHM6Ly9naXRsYWIuZnJlZWRlc2t0b3Aub3JnL2xpYmJzZC9saWJic2QvY29tbWl0LzEzYzMyOTE2YjRiYWFiNThkOTM5NDBkNTdmZWE5ZmYwNzc3ZjE5MzFdCi0KLVNpZ25lZC1vZmYtYnk6IFlpIFpoYW8gPHlpLnpoYW9Ad2luZHJpdmVyLmNvbT4KLS0tLQotIHNyYy9mbG9wZW4uYyB8IDEgKwotIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKQotCi1kaWZmIC0tZ2l0IGEvc3JjL2Zsb3Blbi5jIGIvc3JjL2Zsb3Blbi5jCi1pbmRleCBiOTk3MmM5Li5mZjIwZDA3IDEwMDY0NAotLS0tIGEvc3JjL2Zsb3Blbi5jCi0rKysgYi9zcmMvZmxvcGVuLmMKLUBAIC0zMiw2ICszMiw3IEBACi0gI2luY2x1ZGUgPHN5cy9zdGF0Lmg+Ci0gCi0gI2luY2x1ZGUgPGVycm5vLmg+Ci0rI2luY2x1ZGUgPGZjbnRsLmg+Ci0gI2luY2x1ZGUgPHN0ZGFyZy5oPgotICNpbmNsdWRlIDx1bmlzdGQuaD4KLSAKLS0tIAotMi43LjQKLQpkaWZmIC0tZ2l0IGEvcG9reS9tZXRhL3JlY2lwZXMtc3VwcG9ydC9saWJic2QvbGliYnNkXzAuOS4xLmJiIGIvcG9reS9tZXRhL3JlY2lwZXMtc3VwcG9ydC9saWJic2QvbGliYnNkXzAuMTAuMC5iYgpzaW1pbGFyaXR5IGluZGV4IDc4JQpyZW5hbWUgZnJvbSBwb2t5L21ldGEvcmVjaXBlcy1zdXBwb3J0L2xpYmJzZC9saWJic2RfMC45LjEuYmIKcmVuYW1lIHRvIHBva3kvbWV0YS9yZWNpcGVzLXN1cHBvcnQvbGliYnNkL2xpYmJzZF8wLjEwLjAuYmIKaW5kZXggMmI3NWNkZi4uZWFmMjQ0YSAxMDA2NDQKLS0tIGEvcG9reS9tZXRhL3JlY2lwZXMtc3VwcG9ydC9saWJic2QvbGliYnNkXzAuOS4xLmJiCisrKyBiL3Bva3kvbWV0YS9yZWNpcGVzLXN1cHBvcnQvbGliYnNkL2xpYmJzZF8wLjEwLjAuYmIKQEAgLTI4LDE2ICsyOCwxMyBAQAogIyBMaWNlbnNlOiBwdWJsaWMtZG9tYWluCiAjIExpY2Vuc2U6IHB1YmxpYy1kb21haW4tQ29saW4tUGx1bWIKIExJQ0VOU0UgPSAiQlNELTQtQ2xhdXNlICYgSVNDICYgUEQiCi1MSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9DT1BZSU5HO21kNT1iNTUyNjAyZmRhNjllMzRjNzUzZDI2ZGUzODNmMzNjNSIKK0xJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0NPUFlJTkc7bWQ1PTIxMjBiZTAxNzM0NjlhMDZlZDE4NWI2ODhlMGUxYWUwIgogU0VDVElPTiA9ICJsaWJzIgogCi1TUkNfVVJJID0gIiBcCi0gICAgaHR0cDovL2xpYmJzZC5mcmVlZGVza3RvcC5vcmcvcmVsZWFzZXMvJHtCUE59LSR7UFZ9LnRhci54eiBcCi0gICAgZmlsZTovLzAwMDEtZmxvcGVuLUFkZC1taXNzaW5nLWZjbnRsLmgtaW5jbHVkZS5wYXRjaCBcCi0iCitTUkNfVVJJID0gImh0dHA6Ly9saWJic2QuZnJlZWRlc2t0b3Aub3JnL3JlbGVhc2VzLyR7QlBOfS0ke1BWfS50YXIueHoiCiAKLVNSQ19VUklbbWQ1c3VtXSA9ICJhNzRiODBjNDE0M2FmYTAzMmM5MDIyNmE0NTE4ZmZmZSIKLVNSQ19VUklbc2hhMjU2c3VtXSA9ICI1NmQ4MzU3NDIzMjdkNjlmYWNjZDE2OTU1YTYwYjZkY2YzMDY4NGE4ZGE1MThjNGVjYTBhYzcxM2I5ZTBhN2E0IgorU1JDX1VSSVttZDVzdW1dID0gImVhZDk2ZDI0MGQwMmZhYTViOTIxYzBhYTUwYzgxMmI1IgorU1JDX1VSSVtzaGEyNTZzdW1dID0gIjM0YjhhZGM3MjY4ODNkMGU4NWIzMTE4ZmExMzYwNWUxNzlhNjJiMzFiYTUxZjY3NjEzNmVjYjJkMGJjMWE4ODciCiAKIGluaGVyaXQgYXV0b3Rvb2xzIHBrZ2NvbmZpZwogCmRpZmYgLS1naXQgYS9wb2t5L21ldGEvcmVjaXBlcy1zdXBwb3J0L2xpYmV2ZGV2L2xpYmV2ZGV2XzEuNy4wLmJiIGIvcG9reS9tZXRhL3JlY2lwZXMtc3VwcG9ydC9saWJldmRldi9saWJldmRldl8xLjguMC5iYgpzaW1pbGFyaXR5IGluZGV4IDc0JQpyZW5hbWUgZnJvbSBwb2t5L21ldGEvcmVjaXBlcy1zdXBwb3J0L2xpYmV2ZGV2L2xpYmV2ZGV2XzEuNy4wLmJiCnJlbmFtZSB0byBwb2t5L21ldGEvcmVjaXBlcy1zdXBwb3J0L2xpYmV2ZGV2L2xpYmV2ZGV2XzEuOC4wLmJiCmluZGV4IGFiZDZmMzguLjg0Mjc0OTggMTAwNjQ0Ci0tLSBhL3Bva3kvbWV0YS9yZWNpcGVzLXN1cHBvcnQvbGliZXZkZXYvbGliZXZkZXZfMS43LjAuYmIKKysrIGIvcG9reS9tZXRhL3JlY2lwZXMtc3VwcG9ydC9saWJldmRldi9saWJldmRldl8xLjguMC5iYgpAQCAtNyw4ICs3LDcgQEAKICAgICAgICAgICAgICAgICAgICAgZmlsZTovL2xpYmV2ZGV2L2xpYmV2ZGV2Lmg7ZW5kbGluZT0yMTttZDU9N2ZmNGYwYjUxMTMyNTJjMmYxYTgyOGUwYmJhZDk4ZDEiCiAKIFNSQ19VUkkgPSAiaHR0cDovL3d3dy5mcmVlZGVza3RvcC5vcmcvc29mdHdhcmUvbGliZXZkZXYvJHtCUH0udGFyLnh6IgotCi1TUkNfVVJJW21kNXN1bV0gPSAiZmFiZTg3ZDhkN2Q3ZjdjZGI0YTI2ZTVkYzk5ZmM1MTciCi1TUkNfVVJJW3NoYTI1NnN1bV0gPSAiMTFkYmUxZjJiMWQwM2E1MWYzZTlhMTk2NzU3YTc1YzNhOTk5MDQyY2UzNGNmMWZkYzAwYTIzNjNlNWEyZTM2OSIKK1NSQ19VUklbbWQ1c3VtXSA9ICI4Nzk2MzEwODBiZTE4NTI2NzM3ZTMzYjYzZDg0ODAzOSIKK1NSQ19VUklbc2hhMjU2c3VtXSA9ICIyMGQzY2FlNGVmZDI3N2Y0ODVhYmRmOGYyYTdjNDY1ODhlNTM5OTk4YjVhMDhjMmM0ZDM2ODIxODM3OWQ0MjExIgogCiBpbmhlcml0IGF1dG90b29scyBwa2djb25maWcKZGlmZiAtLWdpdCBhL3Bva3kvbWV0YS9yZWNpcGVzLXN1cHBvcnQvbGliZXZlbnQvbGliZXZlbnQvcnVuLXB0ZXN0IGIvcG9reS9tZXRhL3JlY2lwZXMtc3VwcG9ydC9saWJldmVudC9saWJldmVudC9ydW4tcHRlc3QKaW5kZXggMDI0MTg1MS4uMDgwODA2ZCAxMDA2NDQKLS0tIGEvcG9reS9tZXRhL3JlY2lwZXMtc3VwcG9ydC9saWJldmVudC9saWJldmVudC9ydW4tcHRlc3QKKysrIGIvcG9reS9tZXRhL3JlY2lwZXMtc3VwcG9ydC9saWJldmVudC9saWJldmVudC9ydW4tcHRlc3QKQEAgLTEsMTggKzEsMjggQEAKICMhL2Jpbi9zaAogCi1mYWlsPTAKKyMgcnVuLXB0ZXN0IC0gJ3B0ZXN0JyB0ZXN0IGluZnJhc3RydWN0dXJlIHNoZWxsIHNjcmlwdCB0aGF0CisjICAgd3JhcHMgdGhlIGxpYmV2ZW50IHRlc3Qgc2NyaXB0cyAKKyMKKyMgVHJldm9yIEdhbWJsaW4gPHRyZXZvci5nYW1ibGluQHdpbmRyaXZlci5jb20+CisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKK0xJQkVWRU5UTElCPUBsaWJkaXJAL2xpYmV2ZW50CitMT0c9IiR7TElCRVZFTlRMSUJ9L3B0ZXN0L2xpYmV2ZW50X3B0ZXN0XyQoZGF0ZSArJVklbSVkLSVIJU0lUykubG9nIgorCitjZCAke0xJQkVWRU5UTElCfS9wdGVzdCAKKwogZm9yIHRlc3QgaW4gLi90ZXN0LyoKIGRvCi0JJHRlc3QKLQlpZiBbICQ/IC1uZSAwIF0KLQl0aGVuCi0JCWZhaWw9MQotCWZpCisgICAgJHRlc3QgMj4mMXwgc2VkIC1lICcvT0svIHMvXi9QQVNTOiAvIDsgL0ZBSUxFRC8gcy9eL0ZBSUw6IC8gOyAvU0tJUFBFRC8gcy9eL1NLSVA6IC8gOyAvRElTQUJMRUQvIHMvXi9TS0lQOiAvJyB8IGN1dCAtZjEsMiAtZCAnOicgfCB0ZWUgLWEgJHtMT0d9CiBkb25lCiAKLWlmIFsgJGZhaWwgLWVxIDAgXQotdGhlbgotCWVjaG8gIlBBU1M6IGxpYmV2ZW50IgotZWxzZQotCWVjaG8gIkZBSUw6IGxpYmV2ZW50IgotZmkKK3Bhc3NlZD1gZ3JlcCBQQVNTICR7TE9HfXx3YyAtbGAKK2ZhaWxlZD1gZ3JlcCBGQUlMICR7TE9HfXx3YyAtbGAKK3NraXBwZWQ9YGdyZXAgLUUgU0tJUCAke0xPR318d2MgLWxgCithbGw9JCgocGFzc2VkICsgZmFpbGVkICsgc2tpcHBlZCkpCisKKyggICBlY2hvICI9PT0gVGVzdCBTdW1tYXJ5ID09PSIKKyAgICBlY2hvICJUT1RBTDogJHthbGx9IgorICAgIGVjaG8gIlBBU1NFRDogJHtwYXNzZWR9IgorICAgIGVjaG8gIkZBSUxFRDogJHtmYWlsZWR9IgorICAgIGVjaG8gIlNLSVBQRUQ6ICR7c2tpcHBlZH0iCispIHwgdGVlIC1hICR7TE9HfQpkaWZmIC0tZ2l0IGEvcG9reS9tZXRhL3JlY2lwZXMtc3VwcG9ydC9saWJldmVudC9saWJldmVudF8yLjEuMTEuYmIgYi9wb2t5L21ldGEvcmVjaXBlcy1zdXBwb3J0L2xpYmV2ZW50L2xpYmV2ZW50XzIuMS4xMS5iYgppbmRleCAxZTE4ZjBhLi5mMDA1YWI4IDEwMDY0NAotLS0gYS9wb2t5L21ldGEvcmVjaXBlcy1zdXBwb3J0L2xpYmV2ZW50L2xpYmV2ZW50XzIuMS4xMS5iYgorKysgYi9wb2t5L21ldGEvcmVjaXBlcy1zdXBwb3J0L2xpYmV2ZW50L2xpYmV2ZW50XzIuMS4xMS5iYgpAQCAtNDMsNCArNDMsNyBAQAogCWRvCiAJCWluc3RhbGwgLW0gMDc1NSAkZmlsZSAke0R9JHtQVEVTVF9QQVRIfS90ZXN0CiAJZG9uZQorICAgICAgICAKKyAgICAgICAgIyBoYW5kbGUgbXVsdGlsaWIKKyAgICAgICAgc2VkIC1pIHM6QGxpYmRpckA6JHtsaWJkaXJ9OmcgJHtEfSR7UFRFU1RfUEFUSH0vcnVuLXB0ZXN0CiB9CmRpZmYgLS1naXQgYS9wb2t5L21ldGEvcmVjaXBlcy1zdXBwb3J0L2xpYmZmaS9saWJmZmkvMDAwMS1GaXhlZC1taXNzZWQtaWZuZGVmLWZvci1fX21pcHNfc29mdF9mbG9hdC5wYXRjaCBiL3Bva3kvbWV0YS9yZWNpcGVzLXN1cHBvcnQvbGliZmZpL2xpYmZmaS8wMDAxLUZpeGVkLW1pc3NlZC1pZm5kZWYtZm9yLV9fbWlwc19zb2Z0X2Zsb2F0LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjAwYTMwYTMKLS0tIC9kZXYvbnVsbAorKysgYi9wb2t5L21ldGEvcmVjaXBlcy1zdXBwb3J0L2xpYmZmaS9saWJmZmkvMDAwMS1GaXhlZC1taXNzZWQtaWZuZGVmLWZvci1fX21pcHNfc29mdF9mbG9hdC5wYXRjaApAQCAtMCwwICsxLDMxIEBACitGcm9tIDQxNDlhNzYyN2E5OTg3MzFjYzI0NmQzZjU4YTM2ODA4NzQ1ZDA0YzggTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBDYXJsIEh1cmQgPGNhcmxAQ2FybHMtTWFjQm9vay1Qcm8ubG9jYWw+CitEYXRlOiBXZWQsIDE4IEp1bCAyMDE4IDA5OjA0OjMyIC0wNDAwCitTdWJqZWN0OiBbUEFUQ0hdIEZpeGVkIG1pc3NlZCAjaWZuZGVmIGZvciBfX21pcHNfc29mdF9mbG9hdAorCitTaWduZWQtb2ZmLWJ5OiBQZXRlciBLamVsbGVyc3RlZHQgPHBldGVyLmtqZWxsZXJzdGVkdEBheGlzLmNvbT4KKy0tLQorVXBzdHJlYW0tU3RhdHVzOiBTdWJtaXR0ZWQgW2h0dHBzOi8vZ2l0aHViLmNvbS9saWJmZmkvbGliZmZpL3B1bGwvNDQyXQorCisgc3JjL21pcHMvbzMyLlMgfCAyICsrCisgMSBmaWxlIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKQorCitkaWZmIC0tZ2l0IGEvc3JjL21pcHMvbzMyLlMgYi9zcmMvbWlwcy9vMzIuUworaW5kZXggNDRlNzRjYi4uNzk5MTM5YiAxMDA2NDQKKy0tLSBhL3NyYy9taXBzL28zMi5TCisrKysgYi9zcmMvbWlwcy9vMzIuUworQEAgLTI4Miw5ICsyODIsMTEgQEAgJExDRkkxMjoKKyAJbGkJJDEzLCAxCQkjIEZGSV9PMzIKKyAJYm5lCSQxNiwgJDEzLCAxZgkjIFNraXAgZnAgc2F2ZSBpZiBGRklfTzMyX1NPRlRfRkxPQVQKKyAJCisrI2lmbmRlZiBfX21pcHNfc29mdF9mbG9hdAorIAkjIFN0b3JlIGFsbCBwb3NzaWJsZSBmbG9hdC9kb3VibGUgcmVnaXN0ZXJzLgorIAlzLmQJJGYxMiwgRkFfMF8wX09GRjIoJGZwKQorIAlzLmQJJGYxNCwgRkFfMV8wX09GRjIoJGZwKQorKyNlbmRpZgorIDE6CisgCSMgcHJlcGFyZSBhcmd1bWVudHMgZm9yIGZmaV9jbG9zdXJlX21pcHNfaW5uZXJfTzMyCisgCVJFR19MCWEwLCA0KCQxNSkJICMgY2lmIAorLS0gCisyLjIxLjAKKwpkaWZmIC0tZ2l0IGEvcG9reS9tZXRhL3JlY2lwZXMtc3VwcG9ydC9saWJmZmkvbGliZmZpXzMuM35yYzAuYmIgYi9wb2t5L21ldGEvcmVjaXBlcy1zdXBwb3J0L2xpYmZmaS9saWJmZmlfMy4zfnJjMC5iYgppbmRleCBkYWRkZTBiLi44YWNiNjk5IDEwMDY0NAotLS0gYS9wb2t5L21ldGEvcmVjaXBlcy1zdXBwb3J0L2xpYmZmaS9saWJmZmlfMy4zfnJjMC5iYgorKysgYi9wb2t5L21ldGEvcmVjaXBlcy1zdXBwb3J0L2xpYmZmaS9saWJmZmlfMy4zfnJjMC5iYgpAQCAtMTIsOSArMTIsMTMgQEAKIAogU1JDX1VSSSA9ICJodHRwczovL2dpdGh1Yi5jb20vbGliZmZpL2xpYmZmaS9yZWxlYXNlcy9kb3dubG9hZC92My4zLXJjMC9saWJmZmktMy4zLXJjMC50YXIuZ3ogXAogICAgICAgICAgICBmaWxlOi8vbm90LXdpbjMyLnBhdGNoIFwKKyAgICAgICAgICAgZmlsZTovLzAwMDEtRml4ZWQtbWlzc2VkLWlmbmRlZi1mb3ItX19taXBzX3NvZnRfZmxvYXQucGF0Y2ggXAogICAgICAgICAgICAiCiBTUkNfVVJJW21kNXN1bV0gPSAiOGQyYTgyYTc4ZmFmMTBhNWU1M2MyN2Q5ODZlOGYwNGUiCiBTUkNfVVJJW3NoYTI1NnN1bV0gPSAiNDAzZDY3YWFiZjFjMDUxNTc4NTVlYTJiMWQ5OTUwMjYzZmI2MzE2NTM2YzhjMzMzZjViOWFiMWViMmYyMGVjZiIKK1VQU1RSRUFNX0NIRUNLX1VSSSA9ICJodHRwczovL2dpdGh1Yi5jb20vbGliZmZpL2xpYmZmaS9yZWxlYXNlcy8iCitVUFNUUkVBTV9DSEVDS19SRUdFWCA9ICJsaWJmZmktKD9QPHB2ZXI+XGQrKFwuXGQrKSspXC50YXIiCitVUFNUUkVBTV9WRVJTSU9OX1VOS05PV04gPSAiMSIKIAogRVhUUkFfT0VDT05GICs9ICItLWRpc2FibGUtYnVpbGRkaXIiCiBFWFRSQV9PRU1BS0VfY2xhc3MtdGFyZ2V0ID0gIkxJQlRPT0xGTEFHUz0nLS10YWc9Q0MnIgpkaWZmIC0tZ2l0IGEvcG9reS9tZXRhL3JlY2lwZXMtc3VwcG9ydC9saWJncGctZXJyb3IvbGliZ3BnLWVycm9yL2xpYmdwZy1lcnJvci0xLjM2LWdhd2s1LXN1cHBvcnQucGF0Y2ggYi9wb2t5L21ldGEvcmVjaXBlcy1zdXBwb3J0L2xpYmdwZy1lcnJvci9saWJncGctZXJyb3IvbGliZ3BnLWVycm9yLTEuMzYtZ2F3azUtc3VwcG9ydC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iOTM2ZDExCi0tLSAvZGV2L251bGwKKysrIGIvcG9reS9tZXRhL3JlY2lwZXMtc3VwcG9ydC9saWJncGctZXJyb3IvbGliZ3BnLWVycm9yL2xpYmdwZy1lcnJvci0xLjM2LWdhd2s1LXN1cHBvcnQucGF0Y2gKQEAgLTAsMCArMSwxNDQgQEAKK1Vwc3RyZWFtLVN0YXR1czogQmFja3BvcnQgW2h0dHBzOi8vZGV2LmdudXBnLm9yZy9UNDQ1OV0KK1NpZ25lZC1vZmYtYnk6IEtoZW0gUmFqIDxyYWoua2hlbUBnbWFpbC5jb20+CisKK0Zyb20gNzg2NTA0MWM3N2Y0ZjcwMDUyODJmMTBmOWI2NjY2YjE5MDcyZmJkZiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IE5JSUJFIFl1dGFrYSA8Z25paWJlQGZzaWoub3JnPgorRGF0ZTogTW9uLCAxNSBBcHIgMjAxOSAxNToxMDo0NCArMDkwMAorU3ViamVjdDogW1BBVENIXSBhd2s6IFByZXBhcmUgZm9yIEdhd2sgNS4wLgorCisqIHNyYy9NYWtlZmlsZS5hbTogVXNlIHBrZ19uYW1lc3BhY2UgKGluc3RlYWQgb2YgbmFtZXNwYWNlKS4KKyogc3JjL21rZXJybm9zLmF3azogTGlrZXdpc2UuCisqIGxhbmcvY2wvbWtlcnJjb2Rlcy5hd2s6IERvbid0IGVzY2FwZSAjIGluIHJlZ2V4cC4KKyogc3JjL21rZXJyY29kZXMuYXdrLCBzcmMvbWtlcnJjb2RlczEuYXdrLCBzcmMvbWtlcnJjb2RlczIuYXdrOiBEaXR0by4KKworLS0KKworSW4gR2F3ayA1LjAsIHJlZ2V4cCByb3V0aW5lcyBhcmUgcmVwbGFjZWQgYnkgR251bGliIGltcGxlbWVudGF0aW9uLAord2hpY2ggb25seSBhbGxvd3MgZXNjYXBpbmcgc3BlY2lmaWMgY2hhcmFjdGVycy4KKworR251UEctYnVnLWlkOiA0NDU5CitSZXBvcnRlZC1ieTogTWFyaXVzIFNjaGFtc2NodWxhCitTaWduZWQtb2ZmLWJ5OiBOSUlCRSBZdXRha2EgPGduaWliZUBmc2lqLm9yZz4KKy0tLQorIGxhbmcvY2wvbWtlcnJjb2Rlcy5hd2sgfCAgMiArLQorIHNyYy9NYWtlZmlsZS5hbSAgICAgICAgfCAgMiArLQorIHNyYy9ta2VycmNvZGVzLmF3ayAgICAgfCAgMiArLQorIHNyYy9ta2VycmNvZGVzMS5hd2sgICAgfCAgMiArLQorIHNyYy9ta2VycmNvZGVzMi5hd2sgICAgfCAgMiArLQorIHNyYy9ta2Vycm5vcy5hd2sgICAgICAgfCAgMiArLQorIHNyYy9ta3N0cnRhYmxlLmF3ayAgICAgfCAxMCArKysrKy0tLS0tCisgNyBmaWxlcyBjaGFuZ2VkLCAxMSBpbnNlcnRpb25zKCspLCAxMSBkZWxldGlvbnMoLSkKKworLS0tIGEvbGFuZy9jbC9ta2VycmNvZGVzLmF3aworKysrIGIvbGFuZy9jbC9ta2VycmNvZGVzLmF3aworQEAgLTEyMiw3ICsxMjIsNyBAQCBoZWFkZXIgeworIH0KKyAKKyAhaGVhZGVyIHsKKy0gIHN1YiAoL1wjLisvLCAiIik7CisrICBzdWIgKC8jLisvLCAiIik7CisgICBzdWIgKC9bIAldKyQvLCAiIik7ICMgU3RyaXAgdHJhaWxpbmcgc3BhY2UgYW5kIHRhYiBjaGFyYWN0ZXJzLgorIAorICAgaWYgKC9eJC8pCistLS0gYS9zcmMvTWFrZWZpbGUuYW0KKysrKyBiL3NyYy9NYWtlZmlsZS5hbQorQEAgLTI5Myw3ICsyOTMsNyBAQCBjb2RlLWZyb20tZXJybm8uaDogbWtlcnJjb2RlcyQoRVhFRVhUX0ZPCisgCisgZXJybm9zLXN5bS5oOiBNYWtlZmlsZSBta3N0cnRhYmxlLmF3ayBlcnJub3MuaW4KKyAJJChBV0spIC1mICQoc3JjZGlyKS9ta3N0cnRhYmxlLmF3ayAtdiB0ZXh0aWR4PTIgLXYgbm9nZXR0ZXh0PTEgXAorLQkJLXYgcHJlZml4PUdQR19FUlJfIC12IG5hbWVzcGFjZT1lcnJub3NfIFwKKysJCS12IHByZWZpeD1HUEdfRVJSXyAtdiBwa2dfbmFtZXNwYWNlPWVycm5vc18gXAorIAkJJChzcmNkaXIpL2Vycm5vcy5pbiA+JEAKKyAKKyAKKy0tLSBhL3NyYy9ta2VycmNvZGVzLmF3aworKysrIGIvc3JjL21rZXJyY29kZXMuYXdrCitAQCAtODUsNyArODUsNyBAQCBoZWFkZXIgeworIH0KKyAKKyAhaGVhZGVyIHsKKy0gIHN1YiAoL1wjLisvLCAiIik7CisrICBzdWIgKC8jLisvLCAiIik7CisgICBzdWIgKC9bIAldKyQvLCAiIik7ICMgU3RyaXAgdHJhaWxpbmcgc3BhY2UgYW5kIHRhYiBjaGFyYWN0ZXJzLgorIAorICAgaWYgKC9eJC8pCistLS0gYS9zcmMvbWtlcnJjb2RlczEuYXdrCisrKysgYi9zcmMvbWtlcnJjb2RlczEuYXdrCitAQCAtODEsNyArODEsNyBAQCBoZWFkZXIgeworIH0KKyAKKyAhaGVhZGVyIHsKKy0gIHN1YiAoL1wjLisvLCAiIik7CisrICBzdWIgKC8jLisvLCAiIik7CisgICBzdWIgKC9bIAldKyQvLCAiIik7ICMgU3RyaXAgdHJhaWxpbmcgc3BhY2UgYW5kIHRhYiBjaGFyYWN0ZXJzLgorIAorICAgaWYgKC9eJC8pCistLS0gYS9zcmMvbWtlcnJjb2RlczIuYXdrCisrKysgYi9zcmMvbWtlcnJjb2RlczIuYXdrCitAQCAtOTEsNyArOTEsNyBAQCBoZWFkZXIgeworIH0KKyAKKyAhaGVhZGVyIHsKKy0gIHN1YiAoL1wjLisvLCAiIik7CisrICBzdWIgKC8jLisvLCAiIik7CisgICBzdWIgKC9bIAldKyQvLCAiIik7ICMgU3RyaXAgdHJhaWxpbmcgc3BhY2UgYW5kIHRhYiBjaGFyYWN0ZXJzLgorIAorICAgaWYgKC9eJC8pCistLS0gYS9zcmMvbWtlcnJub3MuYXdrCisrKysgYi9zcmMvbWtlcnJub3MuYXdrCitAQCAtODMsNyArODMsNyBAQCBoZWFkZXIgeworIH0KKyAKKyAhaGVhZGVyIHsKKy0gIHN1YiAoL1wjLisvLCAiIik7CisrICBzdWIgKC8jLisvLCAiIik7CisgICBzdWIgKC9bIAldKyQvLCAiIik7ICMgU3RyaXAgdHJhaWxpbmcgc3BhY2UgYW5kIHRhYiBjaGFyYWN0ZXJzLgorIAorICAgaWYgKC9eJC8pCistLS0gYS9zcmMvbWtzdHJ0YWJsZS5hd2sKKysrKyBiL3NyYy9ta3N0cnRhYmxlLmF3aworQEAgLTc3LDcgKzc3LDcgQEAKKyAjCisgIyBUaGUgdmFyaWFibGUgcHJlZml4IGNhbiBiZSB1c2VkIHRvIHByZXBlbmQgYSBzdHJpbmcgdG8gZWFjaCBtZXNzYWdlLgorICMKKy0jIFRoZSB2YXJpYWJsZSBuYW1lc3BhY2UgY2FuIGJlIHVzZWQgdG8gcHJlcGVuZCBhIHN0cmluZyB0byBlYWNoCisrIyBUaGUgdmFyaWFibGUgcGtnX25hbWVzcGFjZSBjYW4gYmUgdXNlZCB0byBwcmVwZW5kIGEgc3RyaW5nIHRvIGVhY2gKKyAjIHZhcmlhYmxlIGFuZCBtYWNybyBuYW1lLgorIAorIEJFR0lOIHsKK0BAIC0xMDIsNyArMTAyLDcgQEAgaGVhZGVyIHsKKyAgICAgICBwcmludCAiLyogVGhlIHB1cnBvc2Ugb2YgdGhpcyBjb21wbGV4IHN0cmluZyB0YWJsZSBpcyB0byBwcm9kdWNlIjsKKyAgICAgICBwcmludCAiICAgb3B0aW1hbCBjb2RlIHdpdGggYSBtaW5pbXVtIG9mIHJlbG9jYXRpb25zLiAgKi8iOworICAgICAgIHByaW50ICIiOworLSAgICAgIHByaW50ICJzdGF0aWMgY29uc3QgY2hhciAiIG5hbWVzcGFjZSAibXNnc3RyW10gPSAiOworKyAgICAgIHByaW50ICJzdGF0aWMgY29uc3QgY2hhciAiIHBrZ19uYW1lc3BhY2UgIm1zZ3N0cltdID0gIjsKKyAgICAgICBoZWFkZXIgPSAwOworICAgICB9CisgICBlbHNlCitAQCAtMTEwLDcgKzExMCw3IEBAIGhlYWRlciB7CisgfQorIAorICFoZWFkZXIgeworLSAgc3ViICgvXCMuKy8sICIiKTsKKysgIHN1YiAoLyMuKy8sICIiKTsKKyAgIHN1YiAoL1sgCV0rJC8sICIiKTsgIyBTdHJpcCB0cmFpbGluZyBzcGFjZSBhbmQgdGFiIGNoYXJhY3RlcnMuCisgCisgICBpZiAoL14kLykKK0BAIC0xNTAsNyArMTUwLDcgQEAgRU5EIHsKKyAgIGVsc2UKKyAgICAgcHJpbnQgIiAgZ2V0dGV4dF9ub29wIChcIiIgbGFzdF9tc2dzdHIgIlwiKTsiOworICAgcHJpbnQgIiI7CistICBwcmludCAic3RhdGljIGNvbnN0IGludCAiIG5hbWVzcGFjZSAibXNnaWR4W10gPSI7CisrICBwcmludCAic3RhdGljIGNvbnN0IGludCAiIHBrZ19uYW1lc3BhY2UgIm1zZ2lkeFtdID0iOworICAgcHJpbnQgIiAgeyI7CisgICBmb3IgKGkgPSAwOyBpIDwgY29kZWRfbXNnczsgaSsrKQorICAgICBwcmludCAiICAgICIgcG9zW2ldICIsIjsKK0BAIC0xNTgsNyArMTU4LDcgQEAgRU5EIHsKKyAgIHByaW50ICIgIH07IjsKKyAgIHByaW50ICIiOworICAgcHJpbnQgInN0YXRpYyBHUEdfRVJSX0lOTElORSBpbnQiOworLSAgcHJpbnQgbmFtZXNwYWNlICJtc2dpZHhvZiAoaW50IGNvZGUpIjsKKysgIHByaW50IHBrZ19uYW1lc3BhY2UgIm1zZ2lkeG9mIChpbnQgY29kZSkiOworICAgcHJpbnQgInsiOworICAgcHJpbnQgIiAgcmV0dXJuICgwID8gMCI7CisgCmRpZmYgLS1naXQgYS9wb2t5L21ldGEvcmVjaXBlcy1zdXBwb3J0L2xpYmdwZy1lcnJvci9saWJncGctZXJyb3JfMS4zNi5iYiBiL3Bva3kvbWV0YS9yZWNpcGVzLXN1cHBvcnQvbGliZ3BnLWVycm9yL2xpYmdwZy1lcnJvcl8xLjM2LmJiCmluZGV4IDJkYjU0NGEuLmIxMWFiMDUgMTAwNjQ0Ci0tLSBhL3Bva3kvbWV0YS9yZWNpcGVzLXN1cHBvcnQvbGliZ3BnLWVycm9yL2xpYmdwZy1lcnJvcl8xLjM2LmJiCisrKyBiL3Bva3kvbWV0YS9yZWNpcGVzLXN1cHBvcnQvbGliZ3BnLWVycm9yL2xpYmdwZy1lcnJvcl8xLjM2LmJiCkBAIC0xNCw2ICsxNCw3IEBACiBVUFNUUkVBTV9DSEVDS19VUkkgPSAiaHR0cHM6Ly9nbnVwZy5vcmcvZG93bmxvYWQvaW5kZXguaHRtbCIKIFNSQ19VUkkgPSAiJHtHTlVQR19NSVJST1J9L2xpYmdwZy1lcnJvci9saWJncGctZXJyb3ItJHtQVn0udGFyLmJ6MiBcCiAgICAgICAgICAgIGZpbGU6Ly9wa2djb25maWcucGF0Y2ggXAorICAgICAgICAgICBmaWxlOi8vbGliZ3BnLWVycm9yLTEuMzYtZ2F3azUtc3VwcG9ydC5wYXRjaCBcCiAJICAiCiAKIFNSQ19VUklbbWQ1c3VtXSA9ICJlZmY0MzdmMzk3ZTg1OGE5MTI3Yjc2YzBkODdmYTVlZCIKZGlmZiAtLWdpdCBhL3Bva3kvbWV0YS9yZWNpcGVzLXN1cHBvcnQvbGlibmwvbGlibmwvMDAwMS1QQVRDSC1maXgtbGlibmwtMy40LjAtbXVzbC1jb21waWxlLXByb2JsZW0ucGF0Y2ggYi9wb2t5L21ldGEvcmVjaXBlcy1zdXBwb3J0L2xpYm5sL2xpYm5sLzAwMDEtUEFUQ0gtZml4LWxpYm5sLTMuNC4wLW11c2wtY29tcGlsZS1wcm9ibGVtLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiMjBhMjk5Li4wMDAwMDAwCi0tLSBhL3Bva3kvbWV0YS9yZWNpcGVzLXN1cHBvcnQvbGlibmwvbGlibmwvMDAwMS1QQVRDSC1maXgtbGlibmwtMy40LjAtbXVzbC1jb21waWxlLXByb2JsZW0ucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwzOCArMCwwIEBACi1TdWJqZWN0OiBbUEFUQ0hdIGZpeCBsaWJubC0zLjQuMCBtdXNsIGNvbXBpbGUgcHJvYmxlbSAgCi1Bdm9pZCBpbjZfYWRkciByZWRlZmluaXRpb24KLQotVXBzdHJlYW0tU3RhdHVzOiBQZW5kaW5nCi0KLVNpZ25lZC1vZmYtYnk6IEh1YW5nIFFpeXUgPGh1YW5ncXkuZm5zdEBjbi5mdWppdHN1LmNvbT4KLS0tLQotIGluY2x1ZGUvbGludXgtcHJpdmF0ZS9saW51eC9pZl9icmlkZ2UuaCB8IDEgLQotIGluY2x1ZGUvbGludXgtcHJpdmF0ZS9saW51eC9pcHY2LmggICAgICB8IDEgLQotIDIgZmlsZXMgY2hhbmdlZCwgMiBkZWxldGlvbnMoLSkKLQotZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgtcHJpdmF0ZS9saW51eC9pZl9icmlkZ2UuaCBiL2luY2x1ZGUvbGludXgtcHJpdmF0ZS9saW51eC9pZl9icmlkZ2UuaAotaW5kZXggZjI0MDUwYi4uOGY3NDkwYyAxMDA2NDQKLS0tLSBhL2luY2x1ZGUvbGludXgtcHJpdmF0ZS9saW51eC9pZl9icmlkZ2UuaAotKysrIGIvaW5jbHVkZS9saW51eC1wcml2YXRlL2xpbnV4L2lmX2JyaWRnZS5oCi1AQCAtMTUsNyArMTUsNiBAQAotIAotICNpbmNsdWRlIDxsaW51eC90eXBlcy5oPgotICNpbmNsdWRlIDxsaW51eC9pZl9ldGhlci5oPgotLSNpbmNsdWRlIDxsaW51eC9pbjYuaD4KLSAKLSAjZGVmaW5lIFNZU0ZTX0JSSURHRV9BVFRSCSJicmlkZ2UiCi0gI2RlZmluZSBTWVNGU19CUklER0VfRkRCCSJicmZvcndhcmQiCi1kaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC1wcml2YXRlL2xpbnV4L2lwdjYuaCBiL2luY2x1ZGUvbGludXgtcHJpdmF0ZS9saW51eC9pcHY2LmgKLWluZGV4IGUwNWU2ODQuLmYxNjM0OWQgMTAwNjQ0Ci0tLS0gYS9pbmNsdWRlL2xpbnV4LXByaXZhdGUvbGludXgvaXB2Ni5oCi0rKysgYi9pbmNsdWRlL2xpbnV4LXByaXZhdGUvbGludXgvaXB2Ni5oCi1AQCAtMiw3ICsyLDYgQEAKLSAjZGVmaW5lIF9JUFY2X0gKLSAKLSAjaW5jbHVkZSA8YXNtL2J5dGVvcmRlci5oPgotLSNpbmNsdWRlIDxsaW51eC9pbjYuaD4KLSAKLSAvKiBUaGUgbGF0ZXN0IGRyYWZ0cyBkZWNsYXJlZCBpbmNyZWFzZSBpbiBtaW5pbWFsIG10dSB1cCB0byAxMjgwLiAqLwotIAotLS0gCi0yLjcuNAotCmRpZmYgLS1naXQgYS9wb2t5L21ldGEvcmVjaXBlcy1zdXBwb3J0L2xpYm5sL2xpYm5sL2ZpeC1wYy1maWxlLnBhdGNoIGIvcG9reS9tZXRhL3JlY2lwZXMtc3VwcG9ydC9saWJubC9saWJubC9maXgtcGMtZmlsZS5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZmU4YjgzMy4uMDAwMDAwMAotLS0gYS9wb2t5L21ldGEvcmVjaXBlcy1zdXBwb3J0L2xpYm5sL2xpYm5sL2ZpeC1wYy1maWxlLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMTcgKzAsMCBAQAotVXBzdHJlYW0tU3RhdHVzOiBQZW5kaW5nCi0KLVNvbWUgcGFja2FnZXMgYXJlIGFza2luZyBvbmx5IGZvciBsaWJubC0yLjAsIGJ1dCBleHBlY3RzIHRvIGdldCBhbHNvCi1saWJubC1nZW5sLCBsaWJubC1uZiBsaWJubC1yb3V0ZSwgZWFzaWVzdCB3YXkgdG8gZml4IHRoZW0gaXMgaGVyZS4KLQotU2lnbmVkLW9mZi1ieTogTWFydGluIEphbnNhIDxtYXJ0aW4uamFuc2FAZ21haWwuY29tPgotSW5kZXg6IGxpYm5sLTMuMi4xNC9saWJubC0zLjAucGMuaW4KLT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBsaWJubC0zLjIuMTQub3JpZy9saWJubC0zLjAucGMuaW4KLSsrKyBsaWJubC0zLjIuMTQvbGlibmwtMy4wLnBjLmluCi1AQCAtNiw1ICs2LDUgQEAgaW5jbHVkZWRpcj1AaW5jbHVkZWRpckAKLSBOYW1lOiBsaWJubAotIERlc2NyaXB0aW9uOiBDb252ZW5pZW5jZSBsaWJyYXJ5IGZvciBuZXRsaW5rIHNvY2tldHMKLSBWZXJzaW9uOiBAUEFDS0FHRV9WRVJTSU9OQAotLUxpYnM6IC1MJHtsaWJkaXJ9IC1sbmwtQE1BSl9WRVJTSU9OQAotK0xpYnM6IC1MJHtsaWJkaXJ9IC1sbmwtQE1BSl9WRVJTSU9OQCAtbG5sLWdlbmwtQE1BSl9WRVJTSU9OQCAtbG5sLW5mLUBNQUpfVkVSU0lPTkAgLWxubC1yb3V0ZS1ATUFKX1ZFUlNJT05ACi0gQ2ZsYWdzOiAtSSR7aW5jbHVkZWRpcn0vbGlibmxATUFKX1ZFUlNJT05ACmRpZmYgLS1naXQgYS9wb2t5L21ldGEvcmVjaXBlcy1zdXBwb3J0L2xpYm5sL2xpYm5sXzMuNC4wLmJiIGIvcG9reS9tZXRhL3JlY2lwZXMtc3VwcG9ydC9saWJubC9saWJubF8zLjUuMC5iYgpzaW1pbGFyaXR5IGluZGV4IDgyJQpyZW5hbWUgZnJvbSBwb2t5L21ldGEvcmVjaXBlcy1zdXBwb3J0L2xpYm5sL2xpYm5sXzMuNC4wLmJiCnJlbmFtZSB0byBwb2t5L21ldGEvcmVjaXBlcy1zdXBwb3J0L2xpYm5sL2xpYm5sXzMuNS4wLmJiCmluZGV4IDkwZGM2NDQuLmMwNjA5YzQgMTAwNjQ0Ci0tLSBhL3Bva3kvbWV0YS9yZWNpcGVzLXN1cHBvcnQvbGlibmwvbGlibmxfMy40LjAuYmIKKysrIGIvcG9reS9tZXRhL3JlY2lwZXMtc3VwcG9ydC9saWJubC9saWJubF8zLjUuMC5iYgpAQCAtOSwxNiArOSwxMiBAQAogCiBERVBFTkRTID0gImZsZXgtbmF0aXZlIGJpc29uLW5hdGl2ZSIKIAotU1JDX1VSSSA9ICJodHRwczovL2dpdGh1Yi5jb20vdGhvbTMxMS8ke0JQTn0vcmVsZWFzZXMvZG93bmxvYWQvJHtCUE59JHtAZC5nZXRWYXIoJ1BWJykucmVwbGFjZSgnLicsJ18nKX0vJHtCUH0udGFyLmd6IFwKLSAgICAgICAgICAgZmlsZTovL2ZpeC1wYy1maWxlLnBhdGNoIFwKLSAgICAgICAgICAgZmlsZTovLzAwMDEtUEFUQ0gtZml4LWxpYm5sLTMuNC4wLW11c2wtY29tcGlsZS1wcm9ibGVtLnBhdGNoIFwKLSIKK1NSQ19VUkkgPSAiaHR0cHM6Ly9naXRodWIuY29tL3Rob20zMTEvJHtCUE59L3JlbGVhc2VzL2Rvd25sb2FkLyR7QlBOfSR7QGQuZ2V0VmFyKCdQVicpLnJlcGxhY2UoJy4nLCdfJyl9LyR7QlB9LnRhci5neiIKK1NSQ19VUklbbWQ1c3VtXSA9ICI3NGJhNTdiMWIxZDZmOWY5MjI2OGFhODE0MWQ4ZThlNCIKK1NSQ19VUklbc2hhMjU2c3VtXSA9ICIzNTIxMzNlYzk1NDVkYTc2Zjc3ZTcwY2NiNDhjOWQ3ZTUzMjRkNjdmNjQ3NDc0NDY0N2E3ZWQzODJiNWUwNWZhIgogCiBVUFNUUkVBTV9DSEVDS19VUkkgPSAiaHR0cHM6Ly9naXRodWIuY29tL3Rob20zMTEvJHtCUE59L3JlbGVhc2VzIgogCi1TUkNfVVJJW21kNXN1bV0gPSAiOGY3MTkxMGMwM2RiMzYzYjQxZTJlYTYyMDU3YTQzMTEiCi1TUkNfVVJJW3NoYTI1NnN1bV0gPSAiYjcyODc2MzdhZTcxYzZkYjZmODllMTQyMmM5OTVmMDQwN2ZmMmZlNTBjZWNkNjFhMzEyYjZhOWIwOTIxZjViZiIKLQogaW5oZXJpdCBhdXRvdG9vbHMgcGtnY29uZmlnCiAKIEZJTEVTXyR7UE59ID0gIiR7bGliZGlyfS9saWJubC0zLnNvLiogXApkaWZmIC0tZ2l0IGEvcG9reS9tZXRhL3JlY2lwZXMtc3VwcG9ydC9saWJwc2wvbGlicHNsLzAwMDEtTWFrZWZpbGUuYW0tdXNlLVBZVEhPTi13aGVuLWludm9raW5nLXBzbC1tYWtlLWRhZnNhLnBhdGNoIGIvcG9reS9tZXRhL3JlY2lwZXMtc3VwcG9ydC9saWJwc2wvbGlicHNsLzAwMDEtTWFrZWZpbGUuYW0tdXNlLVBZVEhPTi13aGVuLWludm9raW5nLXBzbC1tYWtlLWRhZnNhLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjZkNmNjZjQKLS0tIC9kZXYvbnVsbAorKysgYi9wb2t5L21ldGEvcmVjaXBlcy1zdXBwb3J0L2xpYnBzbC9saWJwc2wvMDAwMS1NYWtlZmlsZS5hbS11c2UtUFlUSE9OLXdoZW4taW52b2tpbmctcHNsLW1ha2UtZGFmc2EucGF0Y2gKQEAgLTAsMCArMSw1MCBAQAorRnJvbSBhMGU2ZjBlYzlkYzZkZDFkYjFjMDNmN2YyNzNjYzE2Y2IzYWY1NTYxIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogUm9zcyBCdXJ0b24gPHJvc3MuYnVydG9uQGludGVsLmNvbT4KK0RhdGU6IFRodSwgMTEgSnVsIDIwMTkgMTc6NDc6MTEgKzAxMDAKK1N1YmplY3Q6IFtQQVRDSF0gTWFrZWZpbGUuYW06IHVzZSBQWVRIT04gd2hlbiBpbnZva2luZyBwc2wtbWFrZS1kYWZzYQorCitJbiBhbiBlbnZpcm9ubWVudCB3aGVyZSBvbmx5IFB5dGhvbiAzIGlzIGluc3RhbGxlZCwgY29uZmlndXJlLmFjIGZpbmRzIGFuZCBzZXRzCitQWVRIT049cHl0aG9uMyBjb3JyZWN0bHkgYnV0IHNyYy9wc2wtbWFrZS1kYWZzYSBpcyBjYWxsZWQgZGlyZWN0bHksIHNvIHRoZSBoYXNoYmFuZyBvZgorYCMhL3Vzci9iaW4vZW52IHB5dGhvbmAgaXMgdXNlZCB3aGljaCBkb2Vzbid0IGV4aXN0LgorCitGaXggdGhpcyBieSBleHBsaWNpdGx5IHJ1bm5pbmcgJChQWVRIT04pIHdoZW4gdXNpbmcgdGhlIHRvb2wuCisKK1Vwc3RyZWFtLVN0YXR1czogQmFja3BvcnQgW2h0dHBzOi8vZ2l0aHViLmNvbS9yb2NrZGFib290L2xpYnBzbC9jb21taXQvYjRmZWM1ZDBkZGI3MGZjNGY1MzYwZWIxNGYyZjVjNWU5MTE5NDMzM10KK1NpZ25lZC1vZmYtYnk6IEFsZXhhbmRlciBLYW5hdmluIDxhbGV4LmthbmF2aW5AZ21haWwuY29tPgorLS0tCisgc3JjL01ha2VmaWxlLmFtICAgfCAyICstCisgdGVzdHMvTWFrZWZpbGUuYW0gfCA0ICsrLS0KKyAyIGZpbGVzIGNoYW5nZWQsIDMgaW5zZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMoLSkKKworZGlmZiAtLWdpdCBhL3NyYy9NYWtlZmlsZS5hbSBiL3NyYy9NYWtlZmlsZS5hbQoraW5kZXggZjljMGEzZC4uYTA1ZWEwNSAxMDA2NDQKKy0tLSBhL3NyYy9NYWtlZmlsZS5hbQorKysrIGIvc3JjL01ha2VmaWxlLmFtCitAQCAtMTksNyArMTksNyBAQCBsaWJwc2xfbGFfTERGTEFHUyA9IC1uby11bmRlZmluZWQgLXZlcnNpb24taW5mbyAkKExJQlBTTF9TT19WRVJTSU9OKQorICMgQnVpbGQgcnVsZSBmb3Igc3VmZml4X2RhZnNhLmMKKyAjIFBTTF9GSUxFIGNhbiBiZSBzZXQgYnkgLi9jb25maWd1cmUgLS13aXRoLXBzbC1maWxlPVtQQVRIXQorIHN1ZmZpeGVzX2RhZnNhLmg6ICQoUFNMX0ZJTEUpICQoc3JjZGlyKS9wc2wtbWFrZS1kYWZzYQorLQkkKHNyY2RpcikvcHNsLW1ha2UtZGFmc2EgLS1vdXRwdXQtZm9ybWF0PWN4eCsgIiQoUFNMX0ZJTEUpIiBzdWZmaXhlc19kYWZzYS5oCisrCSQoUFlUSE9OKSAkKHNyY2RpcikvcHNsLW1ha2UtZGFmc2EgLS1vdXRwdXQtZm9ybWF0PWN4eCsgIiQoUFNMX0ZJTEUpIiBzdWZmaXhlc19kYWZzYS5oCisgCisgRVhUUkFfRElTVCA9IHBzbC1tYWtlLWRhZnNhIExJQ0VOU0UuY2hyb21pdW0KKyAKK2RpZmYgLS1naXQgYS90ZXN0cy9NYWtlZmlsZS5hbSBiL3Rlc3RzL01ha2VmaWxlLmFtCitpbmRleCA4YjI5YjYxLi4yOGE5YTBiIDEwMDY0NAorLS0tIGEvdGVzdHMvTWFrZWZpbGUuYW0KKysrKyBiL3Rlc3RzL01ha2VmaWxlLmFtCitAQCAtMzQsOSArMzQsOSBAQCBURVNUUyA9ICQoUFNMX1RFU1RTKQorICMgY2hlY2stbG9jYWwgdGFyZ2V0IHdvcmtzIGluIHBhcmFsbGVsIHRvIHRoZSB0ZXN0cywgc28gdGhlIHRlc3Qgc3VpdGUgd2lsbCBsaWtlbHkgZmFpbAorIEJVSUxUX1NPVVJDRVMgPSBwc2wuZGFmc2EgcHNsX2FzY2lpLmRhZnNhCisgcHNsLmRhZnNhOiAkKHRvcF9zcmNkaXIpL2xpc3QvcHVibGljX3N1ZmZpeF9saXN0LmRhdAorLQkkKHRvcF9zcmNkaXIpL3NyYy9wc2wtbWFrZS1kYWZzYSAtLW91dHB1dC1mb3JtYXQ9YmluYXJ5ICIkKFBTTF9GSUxFKSIgcHNsLmRhZnNhCisrCSQoUFlUSE9OKSAkKHRvcF9zcmNkaXIpL3NyYy9wc2wtbWFrZS1kYWZzYSAtLW91dHB1dC1mb3JtYXQ9YmluYXJ5ICIkKFBTTF9GSUxFKSIgcHNsLmRhZnNhCisgcHNsX2FzY2lpLmRhZnNhOiAkKHRvcF9zcmNkaXIpL2xpc3QvcHVibGljX3N1ZmZpeF9saXN0LmRhdAorLQkkKHRvcF9zcmNkaXIpL3NyYy9wc2wtbWFrZS1kYWZzYSAtLW91dHB1dC1mb3JtYXQ9YmluYXJ5IC0tZW5jb2Rpbmc9YXNjaWkgIiQoUFNMX0ZJTEUpIiBwc2xfYXNjaWkuZGFmc2EKKysJJChQWVRIT04pICQodG9wX3NyY2Rpcikvc3JjL3BzbC1tYWtlLWRhZnNhIC0tb3V0cHV0LWZvcm1hdD1iaW5hcnkgLS1lbmNvZGluZz1hc2NpaSAiJChQU0xfRklMRSkiIHBzbF9hc2NpaS5kYWZzYQorIAorIGNsZWFuLWxvY2FsOgorIAlybSAtZiBwc2wuZGFmc2EgcHNsX2FzY2lpLmRhZnNhCistLSAKKzIuMTcuMQorCmRpZmYgLS1naXQgYS9wb2t5L21ldGEvcmVjaXBlcy1zdXBwb3J0L2xpYnBzbC9saWJwc2xfMC4yMS4wLmJiIGIvcG9reS9tZXRhL3JlY2lwZXMtc3VwcG9ydC9saWJwc2wvbGlicHNsXzAuMjEuMC5iYgppbmRleCBmYzI0MTdmLi45ODMxYjRiIDEwMDY0NAotLS0gYS9wb2t5L21ldGEvcmVjaXBlcy1zdXBwb3J0L2xpYnBzbC9saWJwc2xfMC4yMS4wLmJiCisrKyBiL3Bva3kvbWV0YS9yZWNpcGVzLXN1cHBvcnQvbGlicHNsL2xpYnBzbF8wLjIxLjAuYmIKQEAgLTYsNiArNiw3IEBACiAKIFNSQ19VUkkgPSAiaHR0cHM6Ly9naXRodWIuY29tL3JvY2tkYWJvb3QvJHtCUE59L3JlbGVhc2VzL2Rvd25sb2FkLyR7QlB9LyR7QlB9LnRhci5neiBcCiAgICAgICAgICAgIGZpbGU6Ly8wMDAxLWd0ay1kb2MtZG8tbm90LWluY2x1ZGUtdHJlZV9pbmRleC5zZ21sLnBhdGNoIFwKKyAgICAgICAgICAgZmlsZTovLzAwMDEtTWFrZWZpbGUuYW0tdXNlLVBZVEhPTi13aGVuLWludm9raW5nLXBzbC1tYWtlLWRhZnNhLnBhdGNoIFwKICAgICAgICAgICAgIgogU1JDX1VSSVttZDVzdW1dID0gIjE3MWU5NmQ4ODc3MDllMzZhNTdmNGVlNjI3YmY4MmQyIgogU1JDX1VSSVtzaGEyNTZzdW1dID0gIjQxYmQxYzc1YTM3NWI4NWMzMzdiNTk3ODNmNWRlYjkzZGJiNDQzZmIwYTUyZDI1N2Y0MDNkZjdiZDY1M2VlMTIiCmRpZmYgLS1naXQgYS9wb2t5L21ldGEvcmVjaXBlcy1zdXBwb3J0L3NxbGl0ZS9zcWxpdGUzLmluYyBiL3Bva3kvbWV0YS9yZWNpcGVzLXN1cHBvcnQvc3FsaXRlL3NxbGl0ZTMuaW5jCmluZGV4IDdjZjIzZDAuLjRhZjFlMDkgMTAwNjQ0Ci0tLSBhL3Bva3kvbWV0YS9yZWNpcGVzLXN1cHBvcnQvc3FsaXRlL3NxbGl0ZTMuaW5jCisrKyBiL3Bva3kvbWV0YS9yZWNpcGVzLXN1cHBvcnQvc3FsaXRlL3NxbGl0ZTMuaW5jCkBAIC0xOSw3ICsxOSw3IEBACiAKIENWRV9QUk9EVUNUID0gInNxbGl0ZSIKIAotaW5oZXJpdCBhdXRvdG9vbHMgcGtnY29uZmlnCitpbmhlcml0IGF1dG90b29scyBwa2djb25maWcgc2l0ZWluZm8KIAogIyBlbmFibGUgdGhvc2Ugd2hpY2ggYXJlIGVuYWJsZWQgYnkgZGVmYXVsdCBpbiBjb25maWd1cmUKIFBBQ0tBR0VDT05GSUcgPz0gImZ0czQgZnRzNSBqc29uMSBydHJlZSBkeW5fZXh0IgpAQCAtNDcsMTAgKzQ3LDE0IEBACiBDRkxBR1NfYXBwZW5kID0gIiAtZlBJQyIKIAogIyBwcmVhZCgpIGlzIGluIFBPU0lYLjEtMjAwMSBzbyBhbnkgcmVhc29uYWJsZSBzeXN0ZW0gbXVzdCBzdXJlbHkgc3VwcG9ydCBpdAotQ0ZMQUdTICs9ICItRFVTRV9QUkVBRCIKK0NGTEFHU19hcHBlbmQgPSAiIC1EVVNFX1BSRUFEIgogCiAjIFByb3ZpZGUgY29sdW1uIG1ldGEtZGF0YSBBUEkKLUNGTEFHUyArPSAiLURTUUxJVEVfRU5BQkxFX0NPTFVNTl9NRVRBREFUQSIKK0NGTEFHU19hcHBlbmQgPSAiIC1EU1FMSVRFX0VOQUJMRV9DT0xVTU5fTUVUQURBVEEiCisKKyMgVW5sZXNzIFNRTElURV9CWVRFT1JERVIgaXMgcHJlZGVmaW5lZCwgdGhlIGNvZGUgZmFsbHMgYmFjayB0byBidWlsZCB0aW1lCisjIGh1cmlzdGljcywgd2hpY2ggYXJlIG5vdCBhbHdheXMgY29ycmVjdAorQ0ZMQUdTX2FwcGVuZCA9ICIgJHtAb2UudXRpbHMuY29uZGl0aW9uYWwoJ1NJVEVJTkZPX0VORElBTk5FU1MnLCAnbGUnLCAnLURTUUxJVEVfQllURU9SREVSPTEyMzQnLCAnLURTUUxJVEVfQllURU9SREVSPTQzMjEnLCBkKX0iCiAKIFBBQ0tBR0VTID0gImxpYiR7QlBOfSBsaWIke0JQTn0tZGV2IGxpYiR7QlBOfS1kb2MgJHtQTn0tZGJnIGxpYiR7QlBOfS1zdGF0aWNkZXYgJHtQTn0iCiAKZGlmZiAtLWdpdCBhL3Bva3kvbWV0YS9yZWNpcGVzLnR4dCBiL3Bva3kvbWV0YS9yZWNpcGVzLnR4dAppbmRleCA5ZTE3OGQ2Li5mYjJjMjUwIDEwMDY0NAotLS0gYS9wb2t5L21ldGEvcmVjaXBlcy50eHQKKysrIGIvcG9reS9tZXRhL3JlY2lwZXMudHh0CkBAIC0zLDExICszLDEwIEBACiByZWNpcGVzLWNvcmUgICAgICAgICAtIFdoYXQncyBuZWVkZWQgdG8gYnVpbGQgYSBiYXNpYyB3b3JraW5nIExpbnV4IGltYWdlIGluY2x1ZGluZyBjb21tb25seSB1c2VkIGRlcGVuZGVuY2llcwogcmVjaXBlcy1kZXZ0b29scyAgICAgLSBUb29scyBwcmltYXJpbHkgdXNlZCBieSB0aGUgYnVpbGQgc3lzdGVtIChidXQgY2FuIGFsc28gYmUgdXNlZCBvbiB0YXJnZXRzKQogcmVjaXBlcy1leHRlbmRlZCAgICAgLSBBcHBsaWNhdGlvbnMgd2hpY2ggd2hpbHN0IG5vdCBlc3NlbnRpYWwgYWRkIGZlYXR1cmVzIGNvbXBhcmVkIHRvIHRoZSBhbHRlcm5hdGl2ZXMgaW4KLSAgICAgICAgICAgICAgICAgICAgICAgY29yZS4gTWF5IGJlIG5lZWRlZCBmb3IgZnVsbCB0b29sIGZ1bmN0aW9uYWxpdHkgb3IgTFNCIGNvbXBsaWFuY2UuCisgICAgICAgICAgICAgICAgICAgICAgIGNvcmUuIE1heSBiZSBuZWVkZWQgZm9yIGZ1bGwgdG9vbCBmdW5jdGlvbmFsaXR5LgogcmVjaXBlcy1nbm9tZSAgICAgICAgLSBBbGwgdGhpbmdzIHJlbGF0ZWQgdG8gdGhlIEdUSysgYXBwbGljYXRpb24gZnJhbWV3b3JrCiByZWNpcGVzLWdyYXBoaWNzICAgICAtIFggYW5kIG90aGVyIGdyYXBoaWNhbGx5IHJlbGF0ZWQgc3lzdGVtIGxpYnJhcmllcyAgCiByZWNpcGVzLWtlcm5lbCAgICAgICAtIFRoZSBrZXJuZWwgYW5kIGdlbmVyaWMgYXBwbGljYXRpb25zL2xpYnJhcmllcyB3aXRoIHN0cm9uZyBrZXJuZWwgZGVwZW5kZW5jaWVzCi1yZWNpcGVzLWxzYjQgICAgICAgICAtIFJlY2lwZXMgYWRkZWQgZm9yIHRoZSBzb2xlIHB1cnBvc2Ugb2Ygc3VwcG9ydGluZyB0aGUgTGludXggU3RhbmRhcmQgQmFzZSAoTFNCKSA0LngKIHJlY2lwZXMtbXVsdGltZWRpYSAgIC0gQ29kZWNzIGFuZCBzdXBwb3J0IHV0aWx0aWVzIGZvciBhdWRpbywgaW1hZ2VzIGFuZCB2aWRlbwogcmVjaXBlcy1ydCAgICAgICAgICAgLSBQcm92aWRlcyBwYWNrYWdlIGFuZCBpbWFnZSByZWNpcGVzIGZvciB1c2luZyBhbmQgdGVzdGluZyB0aGUgUFJFRU1QVF9SVCBrZXJuZWwKIHJlY2lwZXMtc2F0byAgICAgICAgIC0gVGhlIFNhdG8gZGVtby9yZWZlcmVuY2UgVUkvVVgsIGl0cyBhc3NvY2lhdGVkIGFwcHMgYW5kIGNvbmZpZ3VyYXRpb24gCg==