Name: series-workflownv4sv Phase: Failed StartedAt: 2026-06-28 09:40:54 +0000 UTC FinishedAt: 2026-06-28 09:52:35 +0000 UTC Input: nil Output: nil --------- Name: series-workflownv4sv[0] Phase: Succeeded StartedAt: 2026-06-28 09:40:54 +0000 UTC FinishedAt: 2026-06-28 09:52:25 +0000 UTC Input: nil Output: nil --------- Name: series-workflownv4sv[0].run-triage Phase: Succeeded StartedAt: 2026-06-28 09:40:54 +0000 UTC FinishedAt: 2026-06-28 09:52:25 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "AI determined the patch has no functional impact", "targets": null, "trajectory": "CjwhZG9jdHlwZSBodG1sPgo8aHRtbD4KPGhlYWQ+Cgk8dGl0bGU+QUkgVHJhamVjdG9yeTwvdGl0bGU+Cgk8c3R5bGU+CgkJdGFibGUgewoJCQlib3JkZXI6IDFweCBzb2xpZCAjY2NjOwoJCQltYXJnaW46IDIwcHggNXB4OwoJCQlib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOwoJCQl3aGl0ZS1zcGFjZTogbm93cmFwOwoJCQl0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKCQkJb3ZlcmZsb3c6IGhpZGRlbjsKCQl9CgoJCXRhYmxlIGNhcHRpb24gewoJCQlmb250LXdlaWdodDogYm9sZDsKCQl9CgoJCXRhYmxlIHRkLCB0YWJsZSB0aCB7CgkJCXZlcnRpY2FsLWFsaWduOiB0b3A7CgkJCXBhZGRpbmc6IDJweCA4cHg7CgkJCXRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwoJCQlvdmVyZmxvdzogaGlkZGVuOwoJCX0KCgkJLmxpc3RfdGFibGUgdGQsIC5saXN0X3RhYmxlIHRoIHsKCQkJYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjY2NjOwoJCX0KCgkJLmxpc3RfdGFibGUgdGggewoJCQliYWNrZ3JvdW5kOiAjRjRGNEY0OwoJCX0KCgkJLmxpc3RfdGFibGUgdHI6bnRoLWNoaWxkKDJuKSB7CgkJCWJhY2tncm91bmQ6ICNGNEY0RjQ7CgkJfQoKCQkubGlzdF90YWJsZSB0cjpob3ZlciB7CgkJCWJhY2tncm91bmQ6ICNmZmZmOTk7CgkJfQoKCQkjYWlfZGV0YWlsc19kaXYgcHJlIHsKCQkJbWFyZ2luOiAxcHg7CgkJCW1heC13aWR0aDogMTIwY2g7CgkJCXdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKCQkJb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDsKCQl9Cgk8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5PgoJPGgxPkFJIFRyYWplY3Rvcnk8L2gxPgoJPGJyPgoKCQoJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQk8Y2FwdGlvbj5UcmFqZWN0b3J5OiAoPGEgaHJlZj0iIyIgb25jbGljaz0idG9nZ2xlQWxsRGV0YWlscygpOyByZXR1cm4gZmFsc2U7Ij5FeHBhbmQvQ29sbGFwc2UgQWxsPC9hPik8L2NhcHRpb24+CgkJPHRoZWFkPjx0cj4KCQkJPHRoPlNlcTwvdGg+CgkJCTx0aD5UaW1lc3RhbXA8L3RoPgoJCQk8dGg+VHlwZTwvdGg+CgkJCTx0aD5OYW1lPC90aD4KCQkJPHRoPkR1cmF0aW9uPC90aD4KCQk8L3RyPjwvdGhlYWQ+CgkJPHRib2R5PgoJCQoJCTx0cj4KCQkJPHRkPjAvMDwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzI4IDA5OjUyPC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGlzIGEgcHVyZWx5IHN5bnRhY3RpYyByZWZhY3RvcmluZyBpbiB0aGUgUnVzdCBrZXJuZWwgYmluZGluZ3MuIEl0IGNoYW5nZXMgdGhlIHNpZ25hdHVyZSBvZiB0aGUgYGluY19yZWZgIG1ldGhvZCBpbiB0aGUgYEFsd2F5c1JlZkNvdW50ZWRgIHRyYWl0IGZyb20gYGZuIGluY19yZWYoXHUwMDI2c2VsZilgIHRvIGBmbiBpbmNfcmVmKG9iajogXHUwMDI2U2VsZilgIHRvIHByZXZlbnQgYWNjaWRlbnRhbCBtZXRob2QgcmVzb2x1dGlvbiBjb25mbGljdHMuIEl0IGRvZXMgbm90IGFsdGVyIGFueSBmdW5jdGlvbmFsIGxvZ2ljIG9yIGV4ZWN1dGlvbiBmbG93IGluIHRoZSBrZXJuZWwuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzI4IDA5OjUyPC90ZD4KCQkJPHRkPmFjdGlvbjwvdGQ+CgkJCTx0ZD5yZWFkLXBhdGNoLWRpZmY8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtQYXRjaERpZmYmIzM0OzogJiMzNDtjb21taXQgNmYwNTE1MjVkOTgzNjNlMTBhNWQ4OTNhMjE4YzU1MmVmYTE3YmY4MlxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBTdW4gSnVuIDI4IDA5OjUyOjA1IDIwMjYgJiM0MzswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL3J1c3Qva2VybmVsL2F1eGlsaWFyeS5ycyBiL3J1c3Qva2VybmVsL2F1eGlsaWFyeS5yc1xuaW5kZXggYzQyOTI4ZDVhMjM5M2YuLjc1YTYxYjUxY2Y3OThkIDEwMDY0NFxuLS0tIGEvcnVzdC9rZXJuZWwvYXV4aWxpYXJ5LnJzXG4mIzQzOyYjNDM7JiM0MzsgYi9ydXN0L2tlcm5lbC9hdXhpbGlhcnkucnNcbkBAIC0zNDUsOSAmIzQzOzM0NSw5IEBAIHVuc2FmZSBpbXBsXHUwMDNjQ3R4OiBkZXZpY2U6OkRldmljZUNvbnRleHRcdTAwM2UgZGV2aWNlOjpBc0J1c0RldmljZVx1MDAzY0N0eFx1MDAzZSBmb3IgRGV2aWNlXHUwMDNjQ3R4XHUwMDNlXG4gXG4gLy8gU0FGRVRZOiBJbnN0YW5jZXMgb2YgYERldmljZWAgYXJlIGFsd2F5cyByZWZlcmVuY2UtY291bnRlZC5cbiB1bnNhZmUgaW1wbCBjcmF0ZTo6c3luYzo6YXJlZjo6QWx3YXlzUmVmQ291bnRlZCBmb3IgRGV2aWNlIHtcbi0gICAgZm4gaW5jX3JlZihcdTAwMjZzZWxmKSB7XG4mIzQzOyAgICBmbiBpbmNfcmVmKG9iajogXHUwMDI2U2VsZikge1xuICAgICAgICAgLy8gU0FGRVRZOiBUaGUgZXhpc3RlbmNlIG9mIGEgc2hhcmVkIHJlZmVyZW5jZSBndWFyYW50ZWVzIHRoYXQgdGhlIHJlZmNvdW50IGlzIG5vbi16ZXJvLlxuLSAgICAgICAgdW5zYWZlIHsgYmluZGluZ3M6OmdldF9kZXZpY2Uoc2VsZi5hc19yZWYoKS5hc19yYXcoKSkgfTtcbiYjNDM7ICAgICAgICB1bnNhZmUgeyBiaW5kaW5nczo6Z2V0X2RldmljZShvYmouYXNfcmVmKCkuYXNfcmF3KCkpIH07XG4gICAgIH1cbiBcbiAgICAgdW5zYWZlIGZuIGRlY19yZWYob2JqOiBOb25OdWxsXHUwMDNjU2VsZlx1MDAzZSkge1xuZGlmZiAtLWdpdCBhL3J1c3Qva2VybmVsL2Jsb2NrL21xL3JlcXVlc3QucnMgYi9ydXN0L2tlcm5lbC9ibG9jay9tcS9yZXF1ZXN0LnJzXG5pbmRleCBjZTNlMzBjODFjYjVlZC4uZjQxZDAxZWE0NTk1MWMgMTAwNjQ0XG4tLS0gYS9ydXN0L2tlcm5lbC9ibG9jay9tcS9yZXF1ZXN0LnJzXG4mIzQzOyYjNDM7JiM0MzsgYi9ydXN0L2tlcm5lbC9ibG9jay9tcS9yZXF1ZXN0LnJzXG5AQCAtMjM0LDggJiM0MzsyMzQsOCBAQCB1bnNhZmUgaW1wbFx1MDAzY1Q6IE9wZXJhdGlvbnNcdTAwM2UgU3luYyBmb3IgUmVxdWVzdFx1MDAzY1RcdTAwM2Uge31cbiAvLyBrZWVwcyB0aGUgb2JqZWN0IGFsaXZlIGluIG1lbW9yeSBhdCBsZWFzdCB1bnRpbCBhIG1hdGNoaW5nIHJlZmVyZW5jZSBjb3VudFxuIC8vIGRlY3JlbWVudCBpcyBleGVjdXRlZC5cbiB1bnNhZmUgaW1wbFx1MDAzY1Q6IE9wZXJhdGlvbnNcdTAwM2UgQWx3YXlzUmVmQ291bnRlZCBmb3IgUmVxdWVzdFx1MDAzY1RcdTAwM2Uge1xuLSAgICBmbiBpbmNfcmVmKFx1MDAyNnNlbGYpIHtcbi0gICAgICAgIHNlbGYud3JhcHBlcl9yZWYoKS5yZWZjb3VudCgpLmluYygpO1xuJiM0MzsgICAgZm4gaW5jX3JlZihvYmo6IFx1MDAyNlNlbGYpIHtcbiYjNDM7ICAgICAgICBvYmoud3JhcHBlcl9yZWYoKS5yZWZjb3VudCgpLmluYygpO1xuICAgICB9XG4gXG4gICAgIHVuc2FmZSBmbiBkZWNfcmVmKG9iajogY29yZTo6cHRyOjpOb25OdWxsXHUwMDNjU2VsZlx1MDAzZSkge1xuZGlmZiAtLWdpdCBhL3J1c3Qva2VybmVsL2NyZWQucnMgYi9ydXN0L2tlcm5lbC9jcmVkLnJzXG5pbmRleCBmZmExNTZiOWRmMzc3ZS4uZDUzY2JjNzkyZmEzYTkgMTAwNjQ0XG4tLS0gYS9ydXN0L2tlcm5lbC9jcmVkLnJzXG4mIzQzOyYjNDM7JiM0MzsgYi9ydXN0L2tlcm5lbC9jcmVkLnJzXG5AQCAtNzgsOSAmIzQzOzc4LDkgQEAgcHViIGZuIGV1aWQoXHUwMDI2c2VsZikgLVx1MDAzZSBLdWlkIHtcbiAvLyBTQUZFVFk6IFRoZSB0eXBlIGludmFyaWFudHMgZ3VhcmFudGVlIHRoYXQgYENyZWRlbnRpYWxgIGlzIGFsd2F5cyByZWYtY291bnRlZC5cbiB1bnNhZmUgaW1wbCBBbHdheXNSZWZDb3VudGVkIGZvciBDcmVkZW50aWFsIHtcbiAgICAgI1tpbmxpbmVdXG4tICAgIGZuIGluY19yZWYoXHUwMDI2c2VsZikge1xuJiM0MzsgICAgZm4gaW5jX3JlZihvYmo6IFx1MDAyNlNlbGYpIHtcbiAgICAgICAgIC8vIFNBRkVUWTogVGhlIGV4aXN0ZW5jZSBvZiBhIHNoYXJlZCByZWZlcmVuY2UgbWVhbnMgdGhhdCB0aGUgcmVmY291bnQgaXMgbm9uemVyby5cbi0gICAgICAgIHVuc2FmZSB7IGJpbmRpbmdzOjpnZXRfY3JlZChzZWxmLjAuZ2V0KCkpIH07XG4mIzQzOyAgICAgICAgdW5zYWZlIHsgYmluZGluZ3M6OmdldF9jcmVkKG9iai4wLmdldCgpKSB9O1xuICAgICB9XG4gXG4gICAgICNbaW5saW5lXVxuZGlmZiAtLWdpdCBhL3J1c3Qva2VybmVsL2RldmljZS5ycyBiL3J1c3Qva2VybmVsL2RldmljZS5yc1xuaW5kZXggNjQ1YWZjNDlhMjdkNjQuLmVjNDRkY2M0MDVkNTExIDEwMDY0NFxuLS0tIGEvcnVzdC9rZXJuZWwvZGV2aWNlLnJzXG4mIzQzOyYjNDM7JiM0MzsgYi9ydXN0L2tlcm5lbC9kZXZpY2UucnNcbkBAIC00NDksOSAmIzQzOzQ0OSw5IEBAIHB1YiBmbiBuYW1lKFx1MDAyNnNlbGYpIC1cdTAwM2UgXHUwMDI2Q1N0ciB7XG4gXG4gLy8gU0FGRVRZOiBJbnN0YW5jZXMgb2YgYERldmljZWAgYXJlIGFsd2F5cyByZWZlcmVuY2UtY291bnRlZC5cbiB1bnNhZmUgaW1wbCBjcmF0ZTo6c3luYzo6YXJlZjo6QWx3YXlzUmVmQ291bnRlZCBmb3IgRGV2aWNlIHtcbi0gICAgZm4gaW5jX3JlZihcdTAwMjZzZWxmKSB7XG4mIzQzOyAgICBmbiBpbmNfcmVmKG9iajogXHUwMDI2U2VsZikge1xuICAgICAgICAgLy8gU0FGRVRZOiBUaGUgZXhpc3RlbmNlIG9mIGEgc2hhcmVkIHJlZmVyZW5jZSBndWFyYW50ZWVzIHRoYXQgdGhlIHJlZmNvdW50IGlzIG5vbi16ZXJvLlxuLSAgICAgICAgdW5zYWZlIHsgYmluZGluZ3M6OmdldF9kZXZpY2Uoc2VsZi5hc19yYXcoKSkgfTtcbiYjNDM7ICAgICAgICB1bnNhZmUgeyBiaW5kaW5nczo6Z2V0X2RldmljZShvYmouYXNfcmF3KCkpIH07XG4gICAgIH1cbiBcbiAgICAgdW5zYWZlIGZuIGRlY19yZWYob2JqOiBwdHI6Ok5vbk51bGxcdTAwM2NTZWxmXHUwMDNlKSB7XG5kaWZmIC0tZ2l0IGEvcnVzdC9rZXJuZWwvZGV2aWNlL3Byb3BlcnR5LnJzIGIvcnVzdC9rZXJuZWwvZGV2aWNlL3Byb3BlcnR5LnJzXG5pbmRleCA1YWVhZDgzNWZiYmMwMi4uYzM5Y2NjMTQ1OGI5NWUgMTAwNjQ0XG4tLS0gYS9ydXN0L2tlcm5lbC9kZXZpY2UvcHJvcGVydHkucnNcbiYjNDM7JiM0MzsmIzQzOyBiL3J1c3Qva2VybmVsL2RldmljZS9wcm9wZXJ0eS5yc1xuQEAgLTM2MSwxMCAmIzQzOzM2MSwxMCBAQCBmbiBmbXQoXHUwMDI2c2VsZiwgZjogXHUwMDI2bXV0IGZtdDo6Rm9ybWF0dGVyXHUwMDNjJiMzOTtfXHUwMDNlKSAtXHUwMDNlIGZtdDo6UmVzdWx0IHtcbiBcbiAvLyBTQUZFVFk6IEluc3RhbmNlcyBvZiBgRndOb2RlYCBhcmUgYWx3YXlzIHJlZmVyZW5jZS1jb3VudGVkLlxuIHVuc2FmZSBpbXBsIGNyYXRlOjpzeW5jOjphcmVmOjpBbHdheXNSZWZDb3VudGVkIGZvciBGd05vZGUge1xuLSAgICBmbiBpbmNfcmVmKFx1MDAyNnNlbGYpIHtcbiYjNDM7ICAgIGZuIGluY19yZWYob2JqOiBcdTAwMjZTZWxmKSB7XG4gICAgICAgICAvLyBTQUZFVFk6IFRoZSBleGlzdGVuY2Ugb2YgYSBzaGFyZWQgcmVmZXJlbmNlIGd1YXJhbnRlZXMgdGhhdCB0aGVcbiAgICAgICAgIC8vIHJlZmNvdW50IGlzIG5vbi16ZXJvLlxuLSAgICAgICAgdW5zYWZlIHsgYmluZGluZ3M6OmZ3bm9kZV9oYW5kbGVfZ2V0KHNlbGYuYXNfcmF3KCkpIH07XG4mIzQzOyAgICAgICAgdW5zYWZlIHsgYmluZGluZ3M6OmZ3bm9kZV9oYW5kbGVfZ2V0KG9iai5hc19yYXcoKSkgfTtcbiAgICAgfVxuIFxuICAgICB1bnNhZmUgZm4gZGVjX3JlZihvYmo6IHB0cjo6Tm9uTnVsbFx1MDAzY1NlbGZcdTAwM2UpIHtcbmRpZmYgLS1naXQgYS9ydXN0L2tlcm5lbC9kcm0vZGV2aWNlLnJzIGIvcnVzdC9rZXJuZWwvZHJtL2RldmljZS5yc1xuaW5kZXggNDc3Y2Y3NzFmYjEwZWYuLjBjNzBlYzAxMGJkOTExIDEwMDY0NFxuLS0tIGEvcnVzdC9rZXJuZWwvZHJtL2RldmljZS5yc1xuJiM0MzsmIzQzOyYjNDM7IGIvcnVzdC9rZXJuZWwvZHJtL2RldmljZS5yc1xuQEAgLTM2Myw5ICYjNDM7MzYzLDkgQEAgZm4gZGVyZWYoXHUwMDI2c2VsZikgLVx1MDAzZSBcdTAwMjZTZWxmOjpUYXJnZXQge1xuIC8vIFNBRkVUWTogRFJNIGRldmljZSBvYmplY3RzIGFyZSBhbHdheXMgcmVmZXJlbmNlIGNvdW50ZWQgYW5kIHRoZSBnZXQvcHV0IGZ1bmN0aW9uc1xuIC8vIHNhdGlzZnkgdGhlIHJlcXVpcmVtZW50cy5cbiB1bnNhZmUgaW1wbFx1MDAzY1Q6IGRybTo6RHJpdmVyLCBDOiBEZXZpY2VDb250ZXh0XHUwMDNlIEFsd2F5c1JlZkNvdW50ZWQgZm9yIERldmljZVx1MDAzY1QsIENcdTAwM2Uge1xuLSAgICBmbiBpbmNfcmVmKFx1MDAyNnNlbGYpIHtcbiYjNDM7ICAgIGZuIGluY19yZWYob2JqOiBcdTAwMjZTZWxmKSB7XG4gICAgICAgICAvLyBTQUZFVFk6IFRoZSBleGlzdGVuY2Ugb2YgYSBzaGFyZWQgcmVmZXJlbmNlIGd1YXJhbnRlZXMgdGhhdCB0aGUgcmVmY291bnQgaXMgbm9uLXplcm8uXG4tICAgICAgICB1bnNhZmUgeyBiaW5kaW5nczo6ZHJtX2Rldl9nZXQoc2VsZi5hc19yYXcoKSkgfTtcbiYjNDM7ICAgICAgICB1bnNhZmUgeyBiaW5kaW5nczo6ZHJtX2Rldl9nZXQob2JqLmFzX3JhdygpKSB9O1xuICAgICB9XG4gXG4gICAgIHVuc2FmZSBmbiBkZWNfcmVmKG9iajogTm9uTnVsbFx1MDAzY1NlbGZcdTAwM2UpIHtcbmRpZmYgLS1naXQgYS9ydXN0L2tlcm5lbC9kcm0vZ2VtL21vZC5ycyBiL3J1c3Qva2VybmVsL2RybS9nZW0vbW9kLnJzXG5pbmRleCBjOGI2NmQ4MTY4NzE5OS4uZWU5ZTQxMjA2NmFiYjcgMTAwNjQ0XG4tLS0gYS9ydXN0L2tlcm5lbC9kcm0vZ2VtL21vZC5yc1xuJiM0MzsmIzQzOyYjNDM7IGIvcnVzdC9rZXJuZWwvZHJtL2dlbS9tb2QucnNcbkBAIC01MiwxMCAmIzQzOzUyLDEwIEBAIHVuc2FmZSBpbXBsICQoIFx1MDAzYyQoICR0cGFyYW1faWQgKSwmIzQzO1x1MDAzZSApPyAkY3JhdGU6OnN5bmM6OmFyZWY6OkFsd2F5c1JlZkNvdW50ZWQgZm9yICRcbiAgICAgICAgICAgICBTZWxmOiBJbnRvR0VNT2JqZWN0LFxuICAgICAgICAgICAgICQoICQoICRiaW5kX3BhcmFtIDogJGJpbmRfdHJhaXQgKSwmIzQzOyApP1xuICAgICAgICAge1xuLSAgICAgICAgICAgIGZuIGluY19yZWYoXHUwMDI2c2VsZikge1xuJiM0MzsgICAgICAgICAgICBmbiBpbmNfcmVmKG9iajogXHUwMDI2U2VsZikge1xuICAgICAgICAgICAgICAgICAvLyBTQUZFVFk6IFRoZSBleGlzdGVuY2Ugb2YgYSBzaGFyZWQgcmVmZXJlbmNlIGd1YXJhbnRlZXMgdGhhdCB0aGUgcmVmY291bnQgaXNcbiAgICAgICAgICAgICAgICAgLy8gbm9uLXplcm8uXG4tICAgICAgICAgICAgICAgIHVuc2FmZSB7IGJpbmRpbmdzOjpkcm1fZ2VtX29iamVjdF9nZXQoc2VsZi5hc19yYXcoKSkgfTtcbiYjNDM7ICAgICAgICAgICAgICAgIHVuc2FmZSB7IGJpbmRpbmdzOjpkcm1fZ2VtX29iamVjdF9nZXQob2JqLmFzX3JhdygpKSB9O1xuICAgICAgICAgICAgIH1cbiBcbiAgICAgICAgICAgICB1bnNhZmUgZm4gZGVjX3JlZihvYmo6IGNvcmU6OnB0cjo6Tm9uTnVsbFx1MDAzY1NlbGZcdTAwM2UpIHtcbmRpZmYgLS1naXQgYS9ydXN0L2tlcm5lbC9mcy9maWxlLnJzIGIvcnVzdC9rZXJuZWwvZnMvZmlsZS5yc1xuaW5kZXggMjNlZTY4OWJkMjQwMDUuLjhlNTk2N2FmY2QxMWYyIDEwMDY0NFxuLS0tIGEvcnVzdC9rZXJuZWwvZnMvZmlsZS5yc1xuJiM0MzsmIzQzOyYjNDM7IGIvcnVzdC9rZXJuZWwvZnMvZmlsZS5yc1xuQEAgLTE5OSw5ICYjNDM7MTk5LDkgQEAgdW5zYWZlIGltcGwgU3luYyBmb3IgRmlsZSB7fVxuIC8vIG1ha2VzIGBBUmVmXHUwMDNjRmlsZVx1MDAzZWAgb3duIGEgbm9ybWFsIHJlZmNvdW50LlxuIHVuc2FmZSBpbXBsIEFsd2F5c1JlZkNvdW50ZWQgZm9yIEZpbGUge1xuICAgICAjW2lubGluZV1cbi0gICAgZm4gaW5jX3JlZihcdTAwMjZzZWxmKSB7XG4mIzQzOyAgICBmbiBpbmNfcmVmKG9iajogXHUwMDI2U2VsZikge1xuICAgICAgICAgLy8gU0FGRVRZOiBUaGUgZXhpc3RlbmNlIG9mIGEgc2hhcmVkIHJlZmVyZW5jZSBtZWFucyB0aGF0IHRoZSByZWZjb3VudCBpcyBub256ZXJvLlxuLSAgICAgICAgdW5zYWZlIHsgYmluZGluZ3M6OmdldF9maWxlKHNlbGYuYXNfcHRyKCkpIH07XG4mIzQzOyAgICAgICAgdW5zYWZlIHsgYmluZGluZ3M6OmdldF9maWxlKG9iai5hc19wdHIoKSkgfTtcbiAgICAgfVxuIFxuICAgICAjW2lubGluZV1cbkBAIC0yMzUsOSAmIzQzOzIzNSw5IEBAIHB1YiBzdHJ1Y3QgTG9jYWxGaWxlIHtcbiAvLyBtYWtlcyBgQVJlZlx1MDAzY0xvY2FsRmlsZVx1MDAzZWAgb3duIGEgbm9ybWFsIHJlZmNvdW50LlxuIHVuc2FmZSBpbXBsIEFsd2F5c1JlZkNvdW50ZWQgZm9yIExvY2FsRmlsZSB7XG4gICAgICNbaW5saW5lXVxuLSAgICBmbiBpbmNfcmVmKFx1MDAyNnNlbGYpIHtcbiYjNDM7ICAgIGZuIGluY19yZWYob2JqOiBcdTAwMjZTZWxmKSB7XG4gICAgICAgICAvLyBTQUZFVFk6IFRoZSBleGlzdGVuY2Ugb2YgYSBzaGFyZWQgcmVmZXJlbmNlIG1lYW5zIHRoYXQgdGhlIHJlZmNvdW50IGlzIG5vbnplcm8uXG4tICAgICAgICB1bnNhZmUgeyBiaW5kaW5nczo6Z2V0X2ZpbGUoc2VsZi5hc19wdHIoKSkgfTtcbiYjNDM7ICAgICAgICB1bnNhZmUgeyBiaW5kaW5nczo6Z2V0X2ZpbGUob2JqLmFzX3B0cigpKSB9O1xuICAgICB9XG4gXG4gICAgICNbaW5saW5lXVxuZGlmZiAtLWdpdCBhL3J1c3Qva2VybmVsL2kyYy5ycyBiL3J1c3Qva2VybmVsL2kyYy5yc1xuaW5kZXggNjI0Yjk3MWNhOGIwYjIuLjFhOTg4MmE2NGM0YjhlIDEwMDY0NFxuLS0tIGEvcnVzdC9rZXJuZWwvaTJjLnJzXG4mIzQzOyYjNDM7JiM0MzsgYi9ydXN0L2tlcm5lbC9pMmMucnNcbkBAIC00MjUsOSAmIzQzOzQyNSw5IEBAIHB1YiBmbiBnZXQoaW5kZXg6IGkzMikgLVx1MDAzZSBSZXN1bHRcdTAwM2NBUmVmXHUwMDNjU2VsZlx1MDAzZVx1MDAzZSB7XG4gXG4gLy8gU0FGRVRZOiBJbnN0YW5jZXMgb2YgYEkyY0FkYXB0ZXJgIGFyZSBhbHdheXMgcmVmZXJlbmNlLWNvdW50ZWQuXG4gdW5zYWZlIGltcGwgQWx3YXlzUmVmQ291bnRlZCBmb3IgSTJjQWRhcHRlciB7XG4tICAgIGZuIGluY19yZWYoXHUwMDI2c2VsZikge1xuJiM0MzsgICAgZm4gaW5jX3JlZihvYmo6IFx1MDAyNlNlbGYpIHtcbiAgICAgICAgIC8vIFNBRkVUWTogVGhlIGV4aXN0ZW5jZSBvZiBhIHNoYXJlZCByZWZlcmVuY2UgZ3VhcmFudGVlcyB0aGF0IHRoZSByZWZjb3VudCBpcyBub24temVyby5cbi0gICAgICAgIHVuc2FmZSB7IGJpbmRpbmdzOjppMmNfZ2V0X2FkYXB0ZXIoc2VsZi5pbmRleCgpKSB9O1xuJiM0MzsgICAgICAgIHVuc2FmZSB7IGJpbmRpbmdzOjppMmNfZ2V0X2FkYXB0ZXIob2JqLmluZGV4KCkpIH07XG4gICAgIH1cbiBcbiAgICAgdW5zYWZlIGZuIGRlY19yZWYob2JqOiBOb25OdWxsXHUwMDNjU2VsZlx1MDAzZSkge1xuQEAgLTUwMSw5ICYjNDM7NTAxLDkgQEAgdW5zYWZlIGltcGxcdTAwM2NDdHg6IGRldmljZTo6RGV2aWNlQ29udGV4dFx1MDAzZSBkZXZpY2U6OkFzQnVzRGV2aWNlXHUwMDNjQ3R4XHUwMDNlIGZvciBJMmNDbGllbnRcdTAwM2NDXG4gXG4gLy8gU0FGRVRZOiBJbnN0YW5jZXMgb2YgYEkyY0NsaWVudGAgYXJlIGFsd2F5cyByZWZlcmVuY2UtY291bnRlZC5cbiB1bnNhZmUgaW1wbCBBbHdheXNSZWZDb3VudGVkIGZvciBJMmNDbGllbnQge1xuLSAgICBmbiBpbmNfcmVmKFx1MDAyNnNlbGYpIHtcbiYjNDM7ICAgIGZuIGluY19yZWYob2JqOiBcdTAwMjZTZWxmKSB7XG4gICAgICAgICAvLyBTQUZFVFk6IFRoZSBleGlzdGVuY2Ugb2YgYSBzaGFyZWQgcmVmZXJlbmNlIGd1YXJhbnRlZXMgdGhhdCB0aGUgcmVmY291bnQgaXMgbm9uLXplcm8uXG4tICAgICAgICB1bnNhZmUgeyBiaW5kaW5nczo6Z2V0X2RldmljZShzZWxmLmFzX3JlZigpLmFzX3JhdygpKSB9O1xuJiM0MzsgICAgICAgIHVuc2FmZSB7IGJpbmRpbmdzOjpnZXRfZGV2aWNlKG9iai5hc19yZWYoKS5hc19yYXcoKSkgfTtcbiAgICAgfVxuIFxuICAgICB1bnNhZmUgZm4gZGVjX3JlZihvYmo6IE5vbk51bGxcdTAwM2NTZWxmXHUwMDNlKSB7XG5kaWZmIC0tZ2l0IGEvcnVzdC9rZXJuZWwvbW0ucnMgYi9ydXN0L2tlcm5lbC9tbS5yc1xuaW5kZXggNDc2NGQ3YjY4ZjJhN2YuLmM5NTVjYmQ4ODRiOGI3IDEwMDY0NFxuLS0tIGEvcnVzdC9rZXJuZWwvbW0ucnNcbiYjNDM7JiM0MzsmIzQzOyBiL3J1c3Qva2VybmVsL21tLnJzXG5AQCAtNTcsOSAmIzQzOzU3LDkgQEAgdW5zYWZlIGltcGwgU3luYyBmb3IgTW0ge31cbiAvLyBTQUZFVFk6IEJ5IHRoZSB0eXBlIGludmFyaWFudHMsIHRoaXMgdHlwZSBpcyBhbHdheXMgcmVmY291bnRlZC5cbiB1bnNhZmUgaW1wbCBBbHdheXNSZWZDb3VudGVkIGZvciBNbSB7XG4gICAgICNbaW5saW5lXVxuLSAgICBmbiBpbmNfcmVmKFx1MDAyNnNlbGYpIHtcbiYjNDM7ICAgIGZuIGluY19yZWYob2JqOiBcdTAwMjZTZWxmKSB7XG4gICAgICAgICAvLyBTQUZFVFk6IFRoZSBwb2ludGVyIGlzIHZhbGlkIHNpbmNlIHNlbGYgaXMgYSByZWZlcmVuY2UuXG4tICAgICAgICB1bnNhZmUgeyBiaW5kaW5nczo6bW1ncmFiKHNlbGYuYXNfcmF3KCkpIH07XG4mIzQzOyAgICAgICAgdW5zYWZlIHsgYmluZGluZ3M6Om1tZ3JhYihvYmouYXNfcmF3KCkpIH07XG4gICAgIH1cbiBcbiAgICAgI1tpbmxpbmVdXG5AQCAtOTMsOSAmIzQzOzkzLDkgQEAgdW5zYWZlIGltcGwgU3luYyBmb3IgTW1XaXRoVXNlciB7fVxuIC8vIFNBRkVUWTogQnkgdGhlIHR5cGUgaW52YXJpYW50cywgdGhpcyB0eXBlIGlzIGFsd2F5cyByZWZjb3VudGVkLlxuIHVuc2FmZSBpbXBsIEFsd2F5c1JlZkNvdW50ZWQgZm9yIE1tV2l0aFVzZXIge1xuICAgICAjW2lubGluZV1cbi0gICAgZm4gaW5jX3JlZihcdTAwMjZzZWxmKSB7XG4mIzQzOyAgICBmbiBpbmNfcmVmKG9iajogXHUwMDI2U2VsZikge1xuICAgICAgICAgLy8gU0FGRVRZOiBUaGUgcG9pbnRlciBpcyB2YWxpZCBzaW5jZSBzZWxmIGlzIGEgcmVmZXJlbmNlLlxuLSAgICAgICAgdW5zYWZlIHsgYmluZGluZ3M6Om1tZ2V0KHNlbGYuYXNfcmF3KCkpIH07XG4mIzQzOyAgICAgICAgdW5zYWZlIHsgYmluZGluZ3M6Om1tZ2V0KG9iai5hc19yYXcoKSkgfTtcbiAgICAgfVxuIFxuICAgICAjW2lubGluZV1cbmRpZmYgLS1naXQgYS9ydXN0L2tlcm5lbC9tbS9tbXB1dF9hc3luYy5ycyBiL3J1c3Qva2VybmVsL21tL21tcHV0X2FzeW5jLnJzXG5pbmRleCBiOGQyZjA1MTIyNWM3My4uN2RmNDA3Nzc2NTRjZTcgMTAwNjQ0XG4tLS0gYS9ydXN0L2tlcm5lbC9tbS9tbXB1dF9hc3luYy5yc1xuJiM0MzsmIzQzOyYjNDM7IGIvcnVzdC9rZXJuZWwvbW0vbW1wdXRfYXN5bmMucnNcbkBAIC0zNiw5ICYjNDM7MzYsOSBAQCB1bnNhZmUgaW1wbCBTeW5jIGZvciBNbVdpdGhVc2VyQXN5bmMge31cbiAvLyBTQUZFVFk6IEJ5IHRoZSB0eXBlIGludmFyaWFudHMsIHRoaXMgdHlwZSBpcyBhbHdheXMgcmVmY291bnRlZC5cbiB1bnNhZmUgaW1wbCBBbHdheXNSZWZDb3VudGVkIGZvciBNbVdpdGhVc2VyQXN5bmMge1xuICAgICAjW2lubGluZV1cbi0gICAgZm4gaW5jX3JlZihcdTAwMjZzZWxmKSB7XG4mIzQzOyAgICBmbiBpbmNfcmVmKG9iajogXHUwMDI2U2VsZikge1xuICAgICAgICAgLy8gU0FGRVRZOiBUaGUgcG9pbnRlciBpcyB2YWxpZCBzaW5jZSBzZWxmIGlzIGEgcmVmZXJlbmNlLlxuLSAgICAgICAgdW5zYWZlIHsgYmluZGluZ3M6Om1tZ2V0KHNlbGYuYXNfcmF3KCkpIH07XG4mIzQzOyAgICAgICAgdW5zYWZlIHsgYmluZGluZ3M6Om1tZ2V0KG9iai5hc19yYXcoKSkgfTtcbiAgICAgfVxuIFxuICAgICAjW2lubGluZV1cbmRpZmYgLS1naXQgYS9ydXN0L2tlcm5lbC9wY2kucnMgYi9ydXN0L2tlcm5lbC9wY2kucnNcbmluZGV4IDUwNzFjYWU2NTQzZmQyLi4wZjE2Y2YwZGEzZDc1NiAxMDA2NDRcbi0tLSBhL3J1c3Qva2VybmVsL3BjaS5yc1xuJiM0MzsmIzQzOyYjNDM7IGIvcnVzdC9rZXJuZWwvcGNpLnJzXG5AQCAtNDgyLDkgJiM0Mzs0ODIsOSBAQCBpbXBsXHUwMDNjJiMzOTthXHUwMDNlIGNyYXRlOjpkbWE6OkRldmljZVx1MDAzYyYjMzk7YVx1MDAzZSBmb3IgRGV2aWNlXHUwMDNjZGV2aWNlOjpDb3JlXHUwMDNjJiMzOTthXHUwMDNlXHUwMDNlIHt9XG4gXG4gLy8gU0FGRVRZOiBJbnN0YW5jZXMgb2YgYERldmljZWAgYXJlIGFsd2F5cyByZWZlcmVuY2UtY291bnRlZC5cbiB1bnNhZmUgaW1wbCBjcmF0ZTo6c3luYzo6YXJlZjo6QWx3YXlzUmVmQ291bnRlZCBmb3IgRGV2aWNlIHtcbi0gICAgZm4gaW5jX3JlZihcdTAwMjZzZWxmKSB7XG4mIzQzOyAgICBmbiBpbmNfcmVmKG9iajogXHUwMDI2U2VsZikge1xuICAgICAgICAgLy8gU0FGRVRZOiBUaGUgZXhpc3RlbmNlIG9mIGEgc2hhcmVkIHJlZmVyZW5jZSBndWFyYW50ZWVzIHRoYXQgdGhlIHJlZmNvdW50IGlzIG5vbi16ZXJvLlxuLSAgICAgICAgdW5zYWZlIHsgYmluZGluZ3M6OnBjaV9kZXZfZ2V0KHNlbGYuYXNfcmF3KCkpIH07XG4mIzQzOyAgICAgICAgdW5zYWZlIHsgYmluZGluZ3M6OnBjaV9kZXZfZ2V0KG9iai5hc19yYXcoKSkgfTtcbiAgICAgfVxuIFxuICAgICB1bnNhZmUgZm4gZGVjX3JlZihvYmo6IE5vbk51bGxcdTAwM2NTZWxmXHUwMDNlKSB7XG5kaWZmIC0tZ2l0IGEvcnVzdC9rZXJuZWwvcGlkX25hbWVzcGFjZS5ycyBiL3J1c3Qva2VybmVsL3BpZF9uYW1lc3BhY2UucnNcbmluZGV4IDk3OWE5NzE4ZjE1M2Q4Li4zODFjOWY5ODBiMWZjNCAxMDA2NDRcbi0tLSBhL3J1c3Qva2VybmVsL3BpZF9uYW1lc3BhY2UucnNcbiYjNDM7JiM0MzsmIzQzOyBiL3J1c3Qva2VybmVsL3BpZF9uYW1lc3BhY2UucnNcbkBAIC00Myw5ICYjNDM7NDMsOSBAQCBwdWIgdW5zYWZlIGZuIGZyb21fcHRyXHUwMDNjJiMzOTthXHUwMDNlKHB0cjogKmNvbnN0IGJpbmRpbmdzOjpwaWRfbmFtZXNwYWNlKSAtXHUwMDNlIFx1MDAyNiYjMzk7YSBTZWxmIHtcbiAvLyBTQUZFVFk6IEluc3RhbmNlcyBvZiBgUGlkTmFtZXNwYWNlYCBhcmUgYWx3YXlzIHJlZmVyZW5jZS1jb3VudGVkLlxuIHVuc2FmZSBpbXBsIEFsd2F5c1JlZkNvdW50ZWQgZm9yIFBpZE5hbWVzcGFjZSB7XG4gICAgICNbaW5saW5lXVxuLSAgICBmbiBpbmNfcmVmKFx1MDAyNnNlbGYpIHtcbiYjNDM7ICAgIGZuIGluY19yZWYob2JqOiBcdTAwMjZTZWxmKSB7XG4gICAgICAgICAvLyBTQUZFVFk6IFRoZSBleGlzdGVuY2Ugb2YgYSBzaGFyZWQgcmVmZXJlbmNlIG1lYW5zIHRoYXQgdGhlIHJlZmNvdW50IGlzIG5vbnplcm8uXG4tICAgICAgICB1bnNhZmUgeyBiaW5kaW5nczo6Z2V0X3BpZF9ucyhzZWxmLmFzX3B0cigpKSB9O1xuJiM0MzsgICAgICAgIHVuc2FmZSB7IGJpbmRpbmdzOjpnZXRfcGlkX25zKG9iai5hc19wdHIoKSkgfTtcbiAgICAgfVxuIFxuICAgICAjW2lubGluZV1cbmRpZmYgLS1naXQgYS9ydXN0L2tlcm5lbC9wbGF0Zm9ybS5ycyBiL3J1c3Qva2VybmVsL3BsYXRmb3JtLnJzXG5pbmRleCA5YjM2MmUwNDk1ZDMyMy4uODUwNjhhZTVhNDA1ZWMgMTAwNjQ0XG4tLS0gYS9ydXN0L2tlcm5lbC9wbGF0Zm9ybS5yc1xuJiM0MzsmIzQzOyYjNDM7IGIvcnVzdC9rZXJuZWwvcGxhdGZvcm0ucnNcbkBAIC01MTksOSAmIzQzOzUxOSw5IEBAIGltcGxcdTAwM2MmIzM5O2FcdTAwM2UgY3JhdGU6OmRtYTo6RGV2aWNlXHUwMDNjJiMzOTthXHUwMDNlIGZvciBEZXZpY2VcdTAwM2NkZXZpY2U6OkNvcmVcdTAwM2MmIzM5O2FcdTAwM2VcdTAwM2Uge31cbiBcbiAvLyBTQUZFVFk6IEluc3RhbmNlcyBvZiBgRGV2aWNlYCBhcmUgYWx3YXlzIHJlZmVyZW5jZS1jb3VudGVkLlxuIHVuc2FmZSBpbXBsIGNyYXRlOjpzeW5jOjphcmVmOjpBbHdheXNSZWZDb3VudGVkIGZvciBEZXZpY2Uge1xuLSAgICBmbiBpbmNfcmVmKFx1MDAyNnNlbGYpIHtcbiYjNDM7ICAgIGZuIGluY19yZWYob2JqOiBcdTAwMjZTZWxmKSB7XG4gICAgICAgICAvLyBTQUZFVFk6IFRoZSBleGlzdGVuY2Ugb2YgYSBzaGFyZWQgcmVmZXJlbmNlIGd1YXJhbnRlZXMgdGhhdCB0aGUgcmVmY291bnQgaXMgbm9uLXplcm8uXG4tICAgICAgICB1bnNhZmUgeyBiaW5kaW5nczo6Z2V0X2RldmljZShzZWxmLmFzX3JlZigpLmFzX3JhdygpKSB9O1xuJiM0MzsgICAgICAgIHVuc2FmZSB7IGJpbmRpbmdzOjpnZXRfZGV2aWNlKG9iai5hc19yZWYoKS5hc19yYXcoKSkgfTtcbiAgICAgfVxuIFxuICAgICB1bnNhZmUgZm4gZGVjX3JlZihvYmo6IE5vbk51bGxcdTAwM2NTZWxmXHUwMDNlKSB7XG5kaWZmIC0tZ2l0IGEvcnVzdC9rZXJuZWwvc3luYy9hcmVmLnJzIGIvcnVzdC9rZXJuZWwvc3luYy9hcmVmLnJzXG5pbmRleCBiNzIxYjJlMDBiOTg2Zi4uMmFlMjEzMGQ1YmIxZGQgMTAwNjQ0XG4tLS0gYS9ydXN0L2tlcm5lbC9zeW5jL2FyZWYucnNcbiYjNDM7JiM0MzsmIzQzOyBiL3J1c3Qva2VybmVsL3N5bmMvYXJlZi5yc1xuQEAgLTQ0LDcgJiM0Mzs0NCwxMCBAQFxuIC8vLyBhbGl2ZS4pXG4gcHViIHVuc2FmZSB0cmFpdCBBbHdheXNSZWZDb3VudGVkIHtcbiAgICAgLy8vIEluY3JlbWVudHMgdGhlIHJlZmVyZW5jZSBjb3VudCBvbiB0aGUgb2JqZWN0LlxuLSAgICBmbiBpbmNfcmVmKFx1MDAyNnNlbGYpO1xuJiM0MzsgICAgLy8vXG4mIzQzOyAgICAvLy8gVGhpcyBmdW5jdGlvbiBzaG91bGQgbm90IGJlIGNhbGxlZCBhY2NpZGVudGFsbHk7IGEgdHlwZSBtaWdodCBkZWNsYXJlIHRoZWlyIG93biBgaW5jX3JlZmBcbiYjNDM7ICAgIC8vLyBmdW5jdGlvbiBhbmQgaXQgc2hvdWxkbiYjMzk7dCBiZSBjb25mdXNlZCB3aXRoIHRoaXMgb25lLlxuJiM0MzsgICAgZm4gaW5jX3JlZihvYmo6IFx1MDAyNlNlbGYpO1xuIFxuICAgICAvLy8gRGVjcmVtZW50cyB0aGUgcmVmZXJlbmNlIGNvdW50IG9uIHRoZSBvYmplY3QuXG4gICAgIC8vL1xuQEAgLTE0NSw3ICYjNDM7MTQ4LDcgQEAgcHViIGZuIGludG9fcmF3KG1lOiBTZWxmKSAtXHUwMDNlIE5vbk51bGxcdTAwM2NUXHUwMDNlIHtcbiBcbiBpbXBsXHUwMDNjVDogQWx3YXlzUmVmQ291bnRlZFx1MDAzZSBDbG9uZSBmb3IgQVJlZlx1MDAzY1RcdTAwM2Uge1xuICAgICBmbiBjbG9uZShcdTAwMjZzZWxmKSAtXHUwMDNlIFNlbGYge1xuLSAgICAgICAgc2VsZi5pbmNfcmVmKCk7XG4mIzQzOyAgICAgICAgVDo6aW5jX3JlZihzZWxmKTtcbiAgICAgICAgIC8vIFNBRkVUWTogV2UganVzdCBpbmNyZW1lbnRlZCB0aGUgcmVmY291bnQgYWJvdmUuXG4gICAgICAgICB1bnNhZmUgeyBTZWxmOjpmcm9tX3JhdyhzZWxmLnB0cikgfVxuICAgICB9XG5AQCAtMTYyLDcgJiM0MzsxNjUsNyBAQCBmbiBkZXJlZihcdTAwMjZzZWxmKSAtXHUwMDNlIFx1MDAyNlNlbGY6OlRhcmdldCB7XG4gXG4gaW1wbFx1MDAzY1Q6IEFsd2F5c1JlZkNvdW50ZWRcdTAwM2UgRnJvbVx1MDAzY1x1MDAyNlRcdTAwM2UgZm9yIEFSZWZcdTAwM2NUXHUwMDNlIHtcbiAgICAgZm4gZnJvbShiOiBcdTAwMjZUKSAtXHUwMDNlIFNlbGYge1xuLSAgICAgICAgYi5pbmNfcmVmKCk7XG4mIzQzOyAgICAgICAgVDo6aW5jX3JlZihiKTtcbiAgICAgICAgIC8vIFNBRkVUWTogV2UganVzdCBpbmNyZW1lbnRlZCB0aGUgcmVmY291bnQgYWJvdmUuXG4gICAgICAgICB1bnNhZmUgeyBTZWxmOjpmcm9tX3JhdyhOb25OdWxsOjpmcm9tKGIpKSB9XG4gICAgIH1cbmRpZmYgLS1naXQgYS9ydXN0L2tlcm5lbC90YXNrLnJzIGIvcnVzdC9rZXJuZWwvdGFzay5yc1xuaW5kZXggMzgyNzNmNGVlZGI1MTMuLmE3NzExZTE1NThjMmY1IDEwMDY0NFxuLS0tIGEvcnVzdC9rZXJuZWwvdGFzay5yc1xuJiM0MzsmIzQzOyYjNDM7IGIvcnVzdC9rZXJuZWwvdGFzay5yc1xuQEAgLTM0OSw5ICYjNDM7MzQ5LDkgQEAgcHViIGZuIGdyb3VwX2xlYWRlcihcdTAwMjZzZWxmKSAtXHUwMDNlIFx1MDAyNlRhc2sge1xuIC8vIFNBRkVUWTogVGhlIHR5cGUgaW52YXJpYW50cyBndWFyYW50ZWUgdGhhdCBgVGFza2AgaXMgYWx3YXlzIHJlZmNvdW50ZWQuXG4gdW5zYWZlIGltcGwgY3JhdGU6OnN5bmM6OmFyZWY6OkFsd2F5c1JlZkNvdW50ZWQgZm9yIFRhc2sge1xuICAgICAjW2lubGluZV1cbi0gICAgZm4gaW5jX3JlZihcdTAwMjZzZWxmKSB7XG4mIzQzOyAgICBmbiBpbmNfcmVmKG9iajogXHUwMDI2U2VsZikge1xuICAgICAgICAgLy8gU0FGRVRZOiBUaGUgZXhpc3RlbmNlIG9mIGEgc2hhcmVkIHJlZmVyZW5jZSBtZWFucyB0aGF0IHRoZSByZWZjb3VudCBpcyBub256ZXJvLlxuLSAgICAgICAgdW5zYWZlIHsgYmluZGluZ3M6OmdldF90YXNrX3N0cnVjdChzZWxmLmFzX3B0cigpKSB9O1xuJiM0MzsgICAgICAgIHVuc2FmZSB7IGJpbmRpbmdzOjpnZXRfdGFza19zdHJ1Y3Qob2JqLmFzX3B0cigpKSB9O1xuICAgICB9XG4gXG4gICAgICNbaW5saW5lXVxuZGlmZiAtLWdpdCBhL3J1c3Qva2VybmVsL3VzYi5ycyBiL3J1c3Qva2VybmVsL3VzYi5yc1xuaW5kZXggN2FmZjBjODJkMGFmYzAuLmMwMzkwNTljMTg5MTNjIDEwMDY0NFxuLS0tIGEvcnVzdC9rZXJuZWwvdXNiLnJzXG4mIzQzOyYjNDM7JiM0MzsgYi9ydXN0L2tlcm5lbC91c2IucnNcbkBAIC0zOTMsMTEgJiM0MzszOTMsMTEgQEAgZm4gYXNfcmVmKFx1MDAyNnNlbGYpIC1cdTAwM2UgXHUwMDI2RGV2aWNlIHtcbiBcbiAvLyBTQUZFVFk6IEluc3RhbmNlcyBvZiBgSW50ZXJmYWNlYCBhcmUgYWx3YXlzIHJlZmVyZW5jZS1jb3VudGVkLlxuIHVuc2FmZSBpbXBsIEFsd2F5c1JlZkNvdW50ZWQgZm9yIEludGVyZmFjZSB7XG4tICAgIGZuIGluY19yZWYoXHUwMDI2c2VsZikge1xuJiM0MzsgICAgZm4gaW5jX3JlZihvYmo6IFx1MDAyNlNlbGYpIHtcbiAgICAgICAgIC8vIFNBRkVUWTogVGhlIGludmFyaWFudHMgb2YgYEludGVyZmFjZWAgZ3VhcmFudGVlIHRoYXQgYHNlbGYuYXNfcmF3KClgXG4gICAgICAgICAvLyByZXR1cm5zIGEgdmFsaWQgYHN0cnVjdCB1c2JfaW50ZXJmYWNlYCBwb2ludGVyLCBmb3Igd2hpY2ggd2Ugd2lsbFxuICAgICAgICAgLy8gYWNxdWlyZSBhIG5ldyByZWZjb3VudC5cbi0gICAgICAgIHVuc2FmZSB7IGJpbmRpbmdzOjp1c2JfZ2V0X2ludGYoc2VsZi5hc19yYXcoKSkgfTtcbiYjNDM7ICAgICAgICB1bnNhZmUgeyBiaW5kaW5nczo6dXNiX2dldF9pbnRmKG9iai5hc19yYXcoKSkgfTtcbiAgICAgfVxuIFxuICAgICB1bnNhZmUgZm4gZGVjX3JlZihvYmo6IE5vbk51bGxcdTAwM2NTZWxmXHUwMDNlKSB7XG5AQCAtNDQ0LDExICYjNDM7NDQ0LDExIEBAIGZuIGFzX3JhdyhcdTAwMjZzZWxmKSAtXHUwMDNlICptdXQgYmluZGluZ3M6OnVzYl9kZXZpY2Uge1xuIFxuIC8vIFNBRkVUWTogSW5zdGFuY2VzIG9mIGBEZXZpY2VgIGFyZSBhbHdheXMgcmVmZXJlbmNlLWNvdW50ZWQuXG4gdW5zYWZlIGltcGwgQWx3YXlzUmVmQ291bnRlZCBmb3IgRGV2aWNlIHtcbi0gICAgZm4gaW5jX3JlZihcdTAwMjZzZWxmKSB7XG4mIzQzOyAgICBmbiBpbmNfcmVmKG9iajogXHUwMDI2U2VsZikge1xuICAgICAgICAgLy8gU0FGRVRZOiBUaGUgaW52YXJpYW50cyBvZiBgRGV2aWNlYCBndWFyYW50ZWUgdGhhdCBgc2VsZi5hc19yYXcoKWBcbiAgICAgICAgIC8vIHJldHVybnMgYSB2YWxpZCBgc3RydWN0IHVzYl9kZXZpY2VgIHBvaW50ZXIsIGZvciB3aGljaCB3ZSB3aWxsXG4gICAgICAgICAvLyBhY3F1aXJlIGEgbmV3IHJlZmNvdW50LlxuLSAgICAgICAgdW5zYWZlIHsgYmluZGluZ3M6OnVzYl9nZXRfZGV2KHNlbGYuYXNfcmF3KCkpIH07XG4mIzQzOyAgICAgICAgdW5zYWZlIHsgYmluZGluZ3M6OnVzYl9nZXRfZGV2KG9iai5hc19yYXcoKSkgfTtcbiAgICAgfVxuIFxuICAgICB1bnNhZmUgZm4gZGVjX3JlZihvYmo6IE5vbk51bGxcdTAwM2NTZWxmXHUwMDNlKSB7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Mi8xPC90ZD4KCQkJPHRkPjIwMjYvMDYvMjggMDk6NTI8L3RkPgoJCQk8dGQ+YWdlbnQ8L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IG51bGwsCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogW10sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggaXMgYSBwdXJlbHkgc3ludGFjdGljIHJlZmFjdG9yaW5nIGluIHRoZSBSdXN0IGtlcm5lbCBiaW5kaW5ncy4gSXQgY2hhbmdlcyB0aGUgc2lnbmF0dXJlIG9mIHRoZSBgaW5jX3JlZmAgbWV0aG9kIGluIHRoZSBgQWx3YXlzUmVmQ291bnRlZGAgdHJhaXQgZnJvbSBgZm4gaW5jX3JlZihcdTAwMjZzZWxmKWAgdG8gYGZuIGluY19yZWYob2JqOiBcdTAwMjZTZWxmKWAgdG8gcHJldmVudCBhY2NpZGVudGFsIG1ldGhvZCByZXNvbHV0aW9uIGNvbmZsaWN0cy4gSXQgZG9lcyBub3QgYWx0ZXIgYW55IGZ1bmN0aW9uYWwgbG9naWMgb3IgZXhlY3V0aW9uIGZsb3cgaW4gdGhlIGtlcm5lbC4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5JbnN0cnVjdGlvbjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLgpZb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZQppZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuCgpJTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW4KeW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5CnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuCgpSZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOgotIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuCi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuCi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LgotIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSwKZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLgoKSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaAp0b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS4KCldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOgoxLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLgogICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy4KMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuCiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy4KICAgRG8gbm90IGxpc3QgdG9vIGdlbmVyaWMgY29uZmlncyAod2UgYWxyZWFkeSBoYXZlIHRoZW0gZW5hYmxlZCkuIE9ubHkgbGlzdCB0aG9zZSB0aGF0CiAgIHNwZWNpZmljYWxseSBjb3ZlciB0aGUgbW9kaWZpZWQgY29kZS4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzIG91dHB1dCBhcnJheSwKICAgYW5kIERPIE5PVCBhZGQgYSAmIzM5O0NPTkZJR18mIzM5OyBwcmVmaXggKGUuZy4sIHJldHVybiAmIzM0O05FVF9JUFY0JiMzNDsgaW5zdGVhZCBvZiAmIzM0O0NPTkZJR19ORVRfSVBWNCYjMzQ7KS4KUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuCgoKVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy4KSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuCklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC4KPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Qcm9tcHQ6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Gb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczoKY29tbWl0IDZmMDUxNTI1ZDk4MzYzZTEwYTVkODkzYTIxOGM1NTJlZmExN2JmODIKQXV0aG9yOiBzeXotY2x1c3RlciAmbHQ7dHJpYWdlQHN5emthbGxlci5jb20mZ3Q7CkRhdGU6ICAgU3VuIEp1biAyOCAwOTo1MjowNSAyMDI2ICYjNDM7MDAwMAoKICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlldwoKZGlmZiAtLWdpdCBhL3J1c3Qva2VybmVsL2F1eGlsaWFyeS5ycyBiL3J1c3Qva2VybmVsL2F1eGlsaWFyeS5ycwppbmRleCBjNDI5MjhkNWEyMzkzZi4uNzVhNjFiNTFjZjc5OGQgMTAwNjQ0Ci0tLSBhL3J1c3Qva2VybmVsL2F1eGlsaWFyeS5ycwomIzQzOyYjNDM7JiM0MzsgYi9ydXN0L2tlcm5lbC9hdXhpbGlhcnkucnMKQEAgLTM0NSw5ICYjNDM7MzQ1LDkgQEAgdW5zYWZlIGltcGwmbHQ7Q3R4OiBkZXZpY2U6OkRldmljZUNvbnRleHQmZ3Q7IGRldmljZTo6QXNCdXNEZXZpY2UmbHQ7Q3R4Jmd0OyBmb3IgRGV2aWNlJmx0O0N0eCZndDsKIAogLy8gU0FGRVRZOiBJbnN0YW5jZXMgb2YgYERldmljZWAgYXJlIGFsd2F5cyByZWZlcmVuY2UtY291bnRlZC4KIHVuc2FmZSBpbXBsIGNyYXRlOjpzeW5jOjphcmVmOjpBbHdheXNSZWZDb3VudGVkIGZvciBEZXZpY2UgewotICAgIGZuIGluY19yZWYoJmFtcDtzZWxmKSB7CiYjNDM7ICAgIGZuIGluY19yZWYob2JqOiAmYW1wO1NlbGYpIHsKICAgICAgICAgLy8gU0FGRVRZOiBUaGUgZXhpc3RlbmNlIG9mIGEgc2hhcmVkIHJlZmVyZW5jZSBndWFyYW50ZWVzIHRoYXQgdGhlIHJlZmNvdW50IGlzIG5vbi16ZXJvLgotICAgICAgICB1bnNhZmUgeyBiaW5kaW5nczo6Z2V0X2RldmljZShzZWxmLmFzX3JlZigpLmFzX3JhdygpKSB9OwomIzQzOyAgICAgICAgdW5zYWZlIHsgYmluZGluZ3M6OmdldF9kZXZpY2Uob2JqLmFzX3JlZigpLmFzX3JhdygpKSB9OwogICAgIH0KIAogICAgIHVuc2FmZSBmbiBkZWNfcmVmKG9iajogTm9uTnVsbCZsdDtTZWxmJmd0OykgewpkaWZmIC0tZ2l0IGEvcnVzdC9rZXJuZWwvYmxvY2svbXEvcmVxdWVzdC5ycyBiL3J1c3Qva2VybmVsL2Jsb2NrL21xL3JlcXVlc3QucnMKaW5kZXggY2UzZTMwYzgxY2I1ZWQuLmY0MWQwMWVhNDU5NTFjIDEwMDY0NAotLS0gYS9ydXN0L2tlcm5lbC9ibG9jay9tcS9yZXF1ZXN0LnJzCiYjNDM7JiM0MzsmIzQzOyBiL3J1c3Qva2VybmVsL2Jsb2NrL21xL3JlcXVlc3QucnMKQEAgLTIzNCw4ICYjNDM7MjM0LDggQEAgdW5zYWZlIGltcGwmbHQ7VDogT3BlcmF0aW9ucyZndDsgU3luYyBmb3IgUmVxdWVzdCZsdDtUJmd0OyB7fQogLy8ga2VlcHMgdGhlIG9iamVjdCBhbGl2ZSBpbiBtZW1vcnkgYXQgbGVhc3QgdW50aWwgYSBtYXRjaGluZyByZWZlcmVuY2UgY291bnQKIC8vIGRlY3JlbWVudCBpcyBleGVjdXRlZC4KIHVuc2FmZSBpbXBsJmx0O1Q6IE9wZXJhdGlvbnMmZ3Q7IEFsd2F5c1JlZkNvdW50ZWQgZm9yIFJlcXVlc3QmbHQ7VCZndDsgewotICAgIGZuIGluY19yZWYoJmFtcDtzZWxmKSB7Ci0gICAgICAgIHNlbGYud3JhcHBlcl9yZWYoKS5yZWZjb3VudCgpLmluYygpOwomIzQzOyAgICBmbiBpbmNfcmVmKG9iajogJmFtcDtTZWxmKSB7CiYjNDM7ICAgICAgICBvYmoud3JhcHBlcl9yZWYoKS5yZWZjb3VudCgpLmluYygpOwogICAgIH0KIAogICAgIHVuc2FmZSBmbiBkZWNfcmVmKG9iajogY29yZTo6cHRyOjpOb25OdWxsJmx0O1NlbGYmZ3Q7KSB7CmRpZmYgLS1naXQgYS9ydXN0L2tlcm5lbC9jcmVkLnJzIGIvcnVzdC9rZXJuZWwvY3JlZC5ycwppbmRleCBmZmExNTZiOWRmMzc3ZS4uZDUzY2JjNzkyZmEzYTkgMTAwNjQ0Ci0tLSBhL3J1c3Qva2VybmVsL2NyZWQucnMKJiM0MzsmIzQzOyYjNDM7IGIvcnVzdC9rZXJuZWwvY3JlZC5ycwpAQCAtNzgsOSAmIzQzOzc4LDkgQEAgcHViIGZuIGV1aWQoJmFtcDtzZWxmKSAtJmd0OyBLdWlkIHsKIC8vIFNBRkVUWTogVGhlIHR5cGUgaW52YXJpYW50cyBndWFyYW50ZWUgdGhhdCBgQ3JlZGVudGlhbGAgaXMgYWx3YXlzIHJlZi1jb3VudGVkLgogdW5zYWZlIGltcGwgQWx3YXlzUmVmQ291bnRlZCBmb3IgQ3JlZGVudGlhbCB7CiAgICAgI1tpbmxpbmVdCi0gICAgZm4gaW5jX3JlZigmYW1wO3NlbGYpIHsKJiM0MzsgICAgZm4gaW5jX3JlZihvYmo6ICZhbXA7U2VsZikgewogICAgICAgICAvLyBTQUZFVFk6IFRoZSBleGlzdGVuY2Ugb2YgYSBzaGFyZWQgcmVmZXJlbmNlIG1lYW5zIHRoYXQgdGhlIHJlZmNvdW50IGlzIG5vbnplcm8uCi0gICAgICAgIHVuc2FmZSB7IGJpbmRpbmdzOjpnZXRfY3JlZChzZWxmLjAuZ2V0KCkpIH07CiYjNDM7ICAgICAgICB1bnNhZmUgeyBiaW5kaW5nczo6Z2V0X2NyZWQob2JqLjAuZ2V0KCkpIH07CiAgICAgfQogCiAgICAgI1tpbmxpbmVdCmRpZmYgLS1naXQgYS9ydXN0L2tlcm5lbC9kZXZpY2UucnMgYi9ydXN0L2tlcm5lbC9kZXZpY2UucnMKaW5kZXggNjQ1YWZjNDlhMjdkNjQuLmVjNDRkY2M0MDVkNTExIDEwMDY0NAotLS0gYS9ydXN0L2tlcm5lbC9kZXZpY2UucnMKJiM0MzsmIzQzOyYjNDM7IGIvcnVzdC9rZXJuZWwvZGV2aWNlLnJzCkBAIC00NDksOSAmIzQzOzQ0OSw5IEBAIHB1YiBmbiBuYW1lKCZhbXA7c2VsZikgLSZndDsgJmFtcDtDU3RyIHsKIAogLy8gU0FGRVRZOiBJbnN0YW5jZXMgb2YgYERldmljZWAgYXJlIGFsd2F5cyByZWZlcmVuY2UtY291bnRlZC4KIHVuc2FmZSBpbXBsIGNyYXRlOjpzeW5jOjphcmVmOjpBbHdheXNSZWZDb3VudGVkIGZvciBEZXZpY2UgewotICAgIGZuIGluY19yZWYoJmFtcDtzZWxmKSB7CiYjNDM7ICAgIGZuIGluY19yZWYob2JqOiAmYW1wO1NlbGYpIHsKICAgICAgICAgLy8gU0FGRVRZOiBUaGUgZXhpc3RlbmNlIG9mIGEgc2hhcmVkIHJlZmVyZW5jZSBndWFyYW50ZWVzIHRoYXQgdGhlIHJlZmNvdW50IGlzIG5vbi16ZXJvLgotICAgICAgICB1bnNhZmUgeyBiaW5kaW5nczo6Z2V0X2RldmljZShzZWxmLmFzX3JhdygpKSB9OwomIzQzOyAgICAgICAgdW5zYWZlIHsgYmluZGluZ3M6OmdldF9kZXZpY2Uob2JqLmFzX3JhdygpKSB9OwogICAgIH0KIAogICAgIHVuc2FmZSBmbiBkZWNfcmVmKG9iajogcHRyOjpOb25OdWxsJmx0O1NlbGYmZ3Q7KSB7CmRpZmYgLS1naXQgYS9ydXN0L2tlcm5lbC9kZXZpY2UvcHJvcGVydHkucnMgYi9ydXN0L2tlcm5lbC9kZXZpY2UvcHJvcGVydHkucnMKaW5kZXggNWFlYWQ4MzVmYmJjMDIuLmMzOWNjYzE0NThiOTVlIDEwMDY0NAotLS0gYS9ydXN0L2tlcm5lbC9kZXZpY2UvcHJvcGVydHkucnMKJiM0MzsmIzQzOyYjNDM7IGIvcnVzdC9rZXJuZWwvZGV2aWNlL3Byb3BlcnR5LnJzCkBAIC0zNjEsMTAgJiM0MzszNjEsMTAgQEAgZm4gZm10KCZhbXA7c2VsZiwgZjogJmFtcDttdXQgZm10OjpGb3JtYXR0ZXImbHQ7JiMzOTtfJmd0OykgLSZndDsgZm10OjpSZXN1bHQgewogCiAvLyBTQUZFVFk6IEluc3RhbmNlcyBvZiBgRndOb2RlYCBhcmUgYWx3YXlzIHJlZmVyZW5jZS1jb3VudGVkLgogdW5zYWZlIGltcGwgY3JhdGU6OnN5bmM6OmFyZWY6OkFsd2F5c1JlZkNvdW50ZWQgZm9yIEZ3Tm9kZSB7Ci0gICAgZm4gaW5jX3JlZigmYW1wO3NlbGYpIHsKJiM0MzsgICAgZm4gaW5jX3JlZihvYmo6ICZhbXA7U2VsZikgewogICAgICAgICAvLyBTQUZFVFk6IFRoZSBleGlzdGVuY2Ugb2YgYSBzaGFyZWQgcmVmZXJlbmNlIGd1YXJhbnRlZXMgdGhhdCB0aGUKICAgICAgICAgLy8gcmVmY291bnQgaXMgbm9uLXplcm8uCi0gICAgICAgIHVuc2FmZSB7IGJpbmRpbmdzOjpmd25vZGVfaGFuZGxlX2dldChzZWxmLmFzX3JhdygpKSB9OwomIzQzOyAgICAgICAgdW5zYWZlIHsgYmluZGluZ3M6OmZ3bm9kZV9oYW5kbGVfZ2V0KG9iai5hc19yYXcoKSkgfTsKICAgICB9CiAKICAgICB1bnNhZmUgZm4gZGVjX3JlZihvYmo6IHB0cjo6Tm9uTnVsbCZsdDtTZWxmJmd0OykgewpkaWZmIC0tZ2l0IGEvcnVzdC9rZXJuZWwvZHJtL2RldmljZS5ycyBiL3J1c3Qva2VybmVsL2RybS9kZXZpY2UucnMKaW5kZXggNDc3Y2Y3NzFmYjEwZWYuLjBjNzBlYzAxMGJkOTExIDEwMDY0NAotLS0gYS9ydXN0L2tlcm5lbC9kcm0vZGV2aWNlLnJzCiYjNDM7JiM0MzsmIzQzOyBiL3J1c3Qva2VybmVsL2RybS9kZXZpY2UucnMKQEAgLTM2Myw5ICYjNDM7MzYzLDkgQEAgZm4gZGVyZWYoJmFtcDtzZWxmKSAtJmd0OyAmYW1wO1NlbGY6OlRhcmdldCB7CiAvLyBTQUZFVFk6IERSTSBkZXZpY2Ugb2JqZWN0cyBhcmUgYWx3YXlzIHJlZmVyZW5jZSBjb3VudGVkIGFuZCB0aGUgZ2V0L3B1dCBmdW5jdGlvbnMKIC8vIHNhdGlzZnkgdGhlIHJlcXVpcmVtZW50cy4KIHVuc2FmZSBpbXBsJmx0O1Q6IGRybTo6RHJpdmVyLCBDOiBEZXZpY2VDb250ZXh0Jmd0OyBBbHdheXNSZWZDb3VudGVkIGZvciBEZXZpY2UmbHQ7VCwgQyZndDsgewotICAgIGZuIGluY19yZWYoJmFtcDtzZWxmKSB7CiYjNDM7ICAgIGZuIGluY19yZWYob2JqOiAmYW1wO1NlbGYpIHsKICAgICAgICAgLy8gU0FGRVRZOiBUaGUgZXhpc3RlbmNlIG9mIGEgc2hhcmVkIHJlZmVyZW5jZSBndWFyYW50ZWVzIHRoYXQgdGhlIHJlZmNvdW50IGlzIG5vbi16ZXJvLgotICAgICAgICB1bnNhZmUgeyBiaW5kaW5nczo6ZHJtX2Rldl9nZXQoc2VsZi5hc19yYXcoKSkgfTsKJiM0MzsgICAgICAgIHVuc2FmZSB7IGJpbmRpbmdzOjpkcm1fZGV2X2dldChvYmouYXNfcmF3KCkpIH07CiAgICAgfQogCiAgICAgdW5zYWZlIGZuIGRlY19yZWYob2JqOiBOb25OdWxsJmx0O1NlbGYmZ3Q7KSB7CmRpZmYgLS1naXQgYS9ydXN0L2tlcm5lbC9kcm0vZ2VtL21vZC5ycyBiL3J1c3Qva2VybmVsL2RybS9nZW0vbW9kLnJzCmluZGV4IGM4YjY2ZDgxNjg3MTk5Li5lZTllNDEyMDY2YWJiNyAxMDA2NDQKLS0tIGEvcnVzdC9rZXJuZWwvZHJtL2dlbS9tb2QucnMKJiM0MzsmIzQzOyYjNDM7IGIvcnVzdC9rZXJuZWwvZHJtL2dlbS9tb2QucnMKQEAgLTUyLDEwICYjNDM7NTIsMTAgQEAgdW5zYWZlIGltcGwgJCggJmx0OyQoICR0cGFyYW1faWQgKSwmIzQzOyZndDsgKT8gJGNyYXRlOjpzeW5jOjphcmVmOjpBbHdheXNSZWZDb3VudGVkIGZvciAkCiAgICAgICAgICAgICBTZWxmOiBJbnRvR0VNT2JqZWN0LAogICAgICAgICAgICAgJCggJCggJGJpbmRfcGFyYW0gOiAkYmluZF90cmFpdCApLCYjNDM7ICk/CiAgICAgICAgIHsKLSAgICAgICAgICAgIGZuIGluY19yZWYoJmFtcDtzZWxmKSB7CiYjNDM7ICAgICAgICAgICAgZm4gaW5jX3JlZihvYmo6ICZhbXA7U2VsZikgewogICAgICAgICAgICAgICAgIC8vIFNBRkVUWTogVGhlIGV4aXN0ZW5jZSBvZiBhIHNoYXJlZCByZWZlcmVuY2UgZ3VhcmFudGVlcyB0aGF0IHRoZSByZWZjb3VudCBpcwogICAgICAgICAgICAgICAgIC8vIG5vbi16ZXJvLgotICAgICAgICAgICAgICAgIHVuc2FmZSB7IGJpbmRpbmdzOjpkcm1fZ2VtX29iamVjdF9nZXQoc2VsZi5hc19yYXcoKSkgfTsKJiM0MzsgICAgICAgICAgICAgICAgdW5zYWZlIHsgYmluZGluZ3M6OmRybV9nZW1fb2JqZWN0X2dldChvYmouYXNfcmF3KCkpIH07CiAgICAgICAgICAgICB9CiAKICAgICAgICAgICAgIHVuc2FmZSBmbiBkZWNfcmVmKG9iajogY29yZTo6cHRyOjpOb25OdWxsJmx0O1NlbGYmZ3Q7KSB7CmRpZmYgLS1naXQgYS9ydXN0L2tlcm5lbC9mcy9maWxlLnJzIGIvcnVzdC9rZXJuZWwvZnMvZmlsZS5ycwppbmRleCAyM2VlNjg5YmQyNDAwNS4uOGU1OTY3YWZjZDExZjIgMTAwNjQ0Ci0tLSBhL3J1c3Qva2VybmVsL2ZzL2ZpbGUucnMKJiM0MzsmIzQzOyYjNDM7IGIvcnVzdC9rZXJuZWwvZnMvZmlsZS5ycwpAQCAtMTk5LDkgJiM0MzsxOTksOSBAQCB1bnNhZmUgaW1wbCBTeW5jIGZvciBGaWxlIHt9CiAvLyBtYWtlcyBgQVJlZiZsdDtGaWxlJmd0O2Agb3duIGEgbm9ybWFsIHJlZmNvdW50LgogdW5zYWZlIGltcGwgQWx3YXlzUmVmQ291bnRlZCBmb3IgRmlsZSB7CiAgICAgI1tpbmxpbmVdCi0gICAgZm4gaW5jX3JlZigmYW1wO3NlbGYpIHsKJiM0MzsgICAgZm4gaW5jX3JlZihvYmo6ICZhbXA7U2VsZikgewogICAgICAgICAvLyBTQUZFVFk6IFRoZSBleGlzdGVuY2Ugb2YgYSBzaGFyZWQgcmVmZXJlbmNlIG1lYW5zIHRoYXQgdGhlIHJlZmNvdW50IGlzIG5vbnplcm8uCi0gICAgICAgIHVuc2FmZSB7IGJpbmRpbmdzOjpnZXRfZmlsZShzZWxmLmFzX3B0cigpKSB9OwomIzQzOyAgICAgICAgdW5zYWZlIHsgYmluZGluZ3M6OmdldF9maWxlKG9iai5hc19wdHIoKSkgfTsKICAgICB9CiAKICAgICAjW2lubGluZV0KQEAgLTIzNSw5ICYjNDM7MjM1LDkgQEAgcHViIHN0cnVjdCBMb2NhbEZpbGUgewogLy8gbWFrZXMgYEFSZWYmbHQ7TG9jYWxGaWxlJmd0O2Agb3duIGEgbm9ybWFsIHJlZmNvdW50LgogdW5zYWZlIGltcGwgQWx3YXlzUmVmQ291bnRlZCBmb3IgTG9jYWxGaWxlIHsKICAgICAjW2lubGluZV0KLSAgICBmbiBpbmNfcmVmKCZhbXA7c2VsZikgewomIzQzOyAgICBmbiBpbmNfcmVmKG9iajogJmFtcDtTZWxmKSB7CiAgICAgICAgIC8vIFNBRkVUWTogVGhlIGV4aXN0ZW5jZSBvZiBhIHNoYXJlZCByZWZlcmVuY2UgbWVhbnMgdGhhdCB0aGUgcmVmY291bnQgaXMgbm9uemVyby4KLSAgICAgICAgdW5zYWZlIHsgYmluZGluZ3M6OmdldF9maWxlKHNlbGYuYXNfcHRyKCkpIH07CiYjNDM7ICAgICAgICB1bnNhZmUgeyBiaW5kaW5nczo6Z2V0X2ZpbGUob2JqLmFzX3B0cigpKSB9OwogICAgIH0KIAogICAgICNbaW5saW5lXQpkaWZmIC0tZ2l0IGEvcnVzdC9rZXJuZWwvaTJjLnJzIGIvcnVzdC9rZXJuZWwvaTJjLnJzCmluZGV4IDYyNGI5NzFjYThiMGIyLi4xYTk4ODJhNjRjNGI4ZSAxMDA2NDQKLS0tIGEvcnVzdC9rZXJuZWwvaTJjLnJzCiYjNDM7JiM0MzsmIzQzOyBiL3J1c3Qva2VybmVsL2kyYy5ycwpAQCAtNDI1LDkgJiM0Mzs0MjUsOSBAQCBwdWIgZm4gZ2V0KGluZGV4OiBpMzIpIC0mZ3Q7IFJlc3VsdCZsdDtBUmVmJmx0O1NlbGYmZ3Q7Jmd0OyB7CiAKIC8vIFNBRkVUWTogSW5zdGFuY2VzIG9mIGBJMmNBZGFwdGVyYCBhcmUgYWx3YXlzIHJlZmVyZW5jZS1jb3VudGVkLgogdW5zYWZlIGltcGwgQWx3YXlzUmVmQ291bnRlZCBmb3IgSTJjQWRhcHRlciB7Ci0gICAgZm4gaW5jX3JlZigmYW1wO3NlbGYpIHsKJiM0MzsgICAgZm4gaW5jX3JlZihvYmo6ICZhbXA7U2VsZikgewogICAgICAgICAvLyBTQUZFVFk6IFRoZSBleGlzdGVuY2Ugb2YgYSBzaGFyZWQgcmVmZXJlbmNlIGd1YXJhbnRlZXMgdGhhdCB0aGUgcmVmY291bnQgaXMgbm9uLXplcm8uCi0gICAgICAgIHVuc2FmZSB7IGJpbmRpbmdzOjppMmNfZ2V0X2FkYXB0ZXIoc2VsZi5pbmRleCgpKSB9OwomIzQzOyAgICAgICAgdW5zYWZlIHsgYmluZGluZ3M6OmkyY19nZXRfYWRhcHRlcihvYmouaW5kZXgoKSkgfTsKICAgICB9CiAKICAgICB1bnNhZmUgZm4gZGVjX3JlZihvYmo6IE5vbk51bGwmbHQ7U2VsZiZndDspIHsKQEAgLTUwMSw5ICYjNDM7NTAxLDkgQEAgdW5zYWZlIGltcGwmbHQ7Q3R4OiBkZXZpY2U6OkRldmljZUNvbnRleHQmZ3Q7IGRldmljZTo6QXNCdXNEZXZpY2UmbHQ7Q3R4Jmd0OyBmb3IgSTJjQ2xpZW50Jmx0O0MKIAogLy8gU0FGRVRZOiBJbnN0YW5jZXMgb2YgYEkyY0NsaWVudGAgYXJlIGFsd2F5cyByZWZlcmVuY2UtY291bnRlZC4KIHVuc2FmZSBpbXBsIEFsd2F5c1JlZkNvdW50ZWQgZm9yIEkyY0NsaWVudCB7Ci0gICAgZm4gaW5jX3JlZigmYW1wO3NlbGYpIHsKJiM0MzsgICAgZm4gaW5jX3JlZihvYmo6ICZhbXA7U2VsZikgewogICAgICAgICAvLyBTQUZFVFk6IFRoZSBleGlzdGVuY2Ugb2YgYSBzaGFyZWQgcmVmZXJlbmNlIGd1YXJhbnRlZXMgdGhhdCB0aGUgcmVmY291bnQgaXMgbm9uLXplcm8uCi0gICAgICAgIHVuc2FmZSB7IGJpbmRpbmdzOjpnZXRfZGV2aWNlKHNlbGYuYXNfcmVmKCkuYXNfcmF3KCkpIH07CiYjNDM7ICAgICAgICB1bnNhZmUgeyBiaW5kaW5nczo6Z2V0X2RldmljZShvYmouYXNfcmVmKCkuYXNfcmF3KCkpIH07CiAgICAgfQogCiAgICAgdW5zYWZlIGZuIGRlY19yZWYob2JqOiBOb25OdWxsJmx0O1NlbGYmZ3Q7KSB7CmRpZmYgLS1naXQgYS9ydXN0L2tlcm5lbC9tbS5ycyBiL3J1c3Qva2VybmVsL21tLnJzCmluZGV4IDQ3NjRkN2I2OGYyYTdmLi5jOTU1Y2JkODg0YjhiNyAxMDA2NDQKLS0tIGEvcnVzdC9rZXJuZWwvbW0ucnMKJiM0MzsmIzQzOyYjNDM7IGIvcnVzdC9rZXJuZWwvbW0ucnMKQEAgLTU3LDkgJiM0Mzs1Nyw5IEBAIHVuc2FmZSBpbXBsIFN5bmMgZm9yIE1tIHt9CiAvLyBTQUZFVFk6IEJ5IHRoZSB0eXBlIGludmFyaWFudHMsIHRoaXMgdHlwZSBpcyBhbHdheXMgcmVmY291bnRlZC4KIHVuc2FmZSBpbXBsIEFsd2F5c1JlZkNvdW50ZWQgZm9yIE1tIHsKICAgICAjW2lubGluZV0KLSAgICBmbiBpbmNfcmVmKCZhbXA7c2VsZikgewomIzQzOyAgICBmbiBpbmNfcmVmKG9iajogJmFtcDtTZWxmKSB7CiAgICAgICAgIC8vIFNBRkVUWTogVGhlIHBvaW50ZXIgaXMgdmFsaWQgc2luY2Ugc2VsZiBpcyBhIHJlZmVyZW5jZS4KLSAgICAgICAgdW5zYWZlIHsgYmluZGluZ3M6Om1tZ3JhYihzZWxmLmFzX3JhdygpKSB9OwomIzQzOyAgICAgICAgdW5zYWZlIHsgYmluZGluZ3M6Om1tZ3JhYihvYmouYXNfcmF3KCkpIH07CiAgICAgfQogCiAgICAgI1tpbmxpbmVdCkBAIC05Myw5ICYjNDM7OTMsOSBAQCB1bnNhZmUgaW1wbCBTeW5jIGZvciBNbVdpdGhVc2VyIHt9CiAvLyBTQUZFVFk6IEJ5IHRoZSB0eXBlIGludmFyaWFudHMsIHRoaXMgdHlwZSBpcyBhbHdheXMgcmVmY291bnRlZC4KIHVuc2FmZSBpbXBsIEFsd2F5c1JlZkNvdW50ZWQgZm9yIE1tV2l0aFVzZXIgewogICAgICNbaW5saW5lXQotICAgIGZuIGluY19yZWYoJmFtcDtzZWxmKSB7CiYjNDM7ICAgIGZuIGluY19yZWYob2JqOiAmYW1wO1NlbGYpIHsKICAgICAgICAgLy8gU0FGRVRZOiBUaGUgcG9pbnRlciBpcyB2YWxpZCBzaW5jZSBzZWxmIGlzIGEgcmVmZXJlbmNlLgotICAgICAgICB1bnNhZmUgeyBiaW5kaW5nczo6bW1nZXQoc2VsZi5hc19yYXcoKSkgfTsKJiM0MzsgICAgICAgIHVuc2FmZSB7IGJpbmRpbmdzOjptbWdldChvYmouYXNfcmF3KCkpIH07CiAgICAgfQogCiAgICAgI1tpbmxpbmVdCmRpZmYgLS1naXQgYS9ydXN0L2tlcm5lbC9tbS9tbXB1dF9hc3luYy5ycyBiL3J1c3Qva2VybmVsL21tL21tcHV0X2FzeW5jLnJzCmluZGV4IGI4ZDJmMDUxMjI1YzczLi43ZGY0MDc3NzY1NGNlNyAxMDA2NDQKLS0tIGEvcnVzdC9rZXJuZWwvbW0vbW1wdXRfYXN5bmMucnMKJiM0MzsmIzQzOyYjNDM7IGIvcnVzdC9rZXJuZWwvbW0vbW1wdXRfYXN5bmMucnMKQEAgLTM2LDkgJiM0MzszNiw5IEBAIHVuc2FmZSBpbXBsIFN5bmMgZm9yIE1tV2l0aFVzZXJBc3luYyB7fQogLy8gU0FGRVRZOiBCeSB0aGUgdHlwZSBpbnZhcmlhbnRzLCB0aGlzIHR5cGUgaXMgYWx3YXlzIHJlZmNvdW50ZWQuCiB1bnNhZmUgaW1wbCBBbHdheXNSZWZDb3VudGVkIGZvciBNbVdpdGhVc2VyQXN5bmMgewogICAgICNbaW5saW5lXQotICAgIGZuIGluY19yZWYoJmFtcDtzZWxmKSB7CiYjNDM7ICAgIGZuIGluY19yZWYob2JqOiAmYW1wO1NlbGYpIHsKICAgICAgICAgLy8gU0FGRVRZOiBUaGUgcG9pbnRlciBpcyB2YWxpZCBzaW5jZSBzZWxmIGlzIGEgcmVmZXJlbmNlLgotICAgICAgICB1bnNhZmUgeyBiaW5kaW5nczo6bW1nZXQoc2VsZi5hc19yYXcoKSkgfTsKJiM0MzsgICAgICAgIHVuc2FmZSB7IGJpbmRpbmdzOjptbWdldChvYmouYXNfcmF3KCkpIH07CiAgICAgfQogCiAgICAgI1tpbmxpbmVdCmRpZmYgLS1naXQgYS9ydXN0L2tlcm5lbC9wY2kucnMgYi9ydXN0L2tlcm5lbC9wY2kucnMKaW5kZXggNTA3MWNhZTY1NDNmZDIuLjBmMTZjZjBkYTNkNzU2IDEwMDY0NAotLS0gYS9ydXN0L2tlcm5lbC9wY2kucnMKJiM0MzsmIzQzOyYjNDM7IGIvcnVzdC9rZXJuZWwvcGNpLnJzCkBAIC00ODIsOSAmIzQzOzQ4Miw5IEBAIGltcGwmbHQ7JiMzOTthJmd0OyBjcmF0ZTo6ZG1hOjpEZXZpY2UmbHQ7JiMzOTthJmd0OyBmb3IgRGV2aWNlJmx0O2RldmljZTo6Q29yZSZsdDsmIzM5O2EmZ3Q7Jmd0OyB7fQogCiAvLyBTQUZFVFk6IEluc3RhbmNlcyBvZiBgRGV2aWNlYCBhcmUgYWx3YXlzIHJlZmVyZW5jZS1jb3VudGVkLgogdW5zYWZlIGltcGwgY3JhdGU6OnN5bmM6OmFyZWY6OkFsd2F5c1JlZkNvdW50ZWQgZm9yIERldmljZSB7Ci0gICAgZm4gaW5jX3JlZigmYW1wO3NlbGYpIHsKJiM0MzsgICAgZm4gaW5jX3JlZihvYmo6ICZhbXA7U2VsZikgewogICAgICAgICAvLyBTQUZFVFk6IFRoZSBleGlzdGVuY2Ugb2YgYSBzaGFyZWQgcmVmZXJlbmNlIGd1YXJhbnRlZXMgdGhhdCB0aGUgcmVmY291bnQgaXMgbm9uLXplcm8uCi0gICAgICAgIHVuc2FmZSB7IGJpbmRpbmdzOjpwY2lfZGV2X2dldChzZWxmLmFzX3JhdygpKSB9OwomIzQzOyAgICAgICAgdW5zYWZlIHsgYmluZGluZ3M6OnBjaV9kZXZfZ2V0KG9iai5hc19yYXcoKSkgfTsKICAgICB9CiAKICAgICB1bnNhZmUgZm4gZGVjX3JlZihvYmo6IE5vbk51bGwmbHQ7U2VsZiZndDspIHsKZGlmZiAtLWdpdCBhL3J1c3Qva2VybmVsL3BpZF9uYW1lc3BhY2UucnMgYi9ydXN0L2tlcm5lbC9waWRfbmFtZXNwYWNlLnJzCmluZGV4IDk3OWE5NzE4ZjE1M2Q4Li4zODFjOWY5ODBiMWZjNCAxMDA2NDQKLS0tIGEvcnVzdC9rZXJuZWwvcGlkX25hbWVzcGFjZS5ycwomIzQzOyYjNDM7JiM0MzsgYi9ydXN0L2tlcm5lbC9waWRfbmFtZXNwYWNlLnJzCkBAIC00Myw5ICYjNDM7NDMsOSBAQCBwdWIgdW5zYWZlIGZuIGZyb21fcHRyJmx0OyYjMzk7YSZndDsocHRyOiAqY29uc3QgYmluZGluZ3M6OnBpZF9uYW1lc3BhY2UpIC0mZ3Q7ICZhbXA7JiMzOTthIFNlbGYgewogLy8gU0FGRVRZOiBJbnN0YW5jZXMgb2YgYFBpZE5hbWVzcGFjZWAgYXJlIGFsd2F5cyByZWZlcmVuY2UtY291bnRlZC4KIHVuc2FmZSBpbXBsIEFsd2F5c1JlZkNvdW50ZWQgZm9yIFBpZE5hbWVzcGFjZSB7CiAgICAgI1tpbmxpbmVdCi0gICAgZm4gaW5jX3JlZigmYW1wO3NlbGYpIHsKJiM0MzsgICAgZm4gaW5jX3JlZihvYmo6ICZhbXA7U2VsZikgewogICAgICAgICAvLyBTQUZFVFk6IFRoZSBleGlzdGVuY2Ugb2YgYSBzaGFyZWQgcmVmZXJlbmNlIG1lYW5zIHRoYXQgdGhlIHJlZmNvdW50IGlzIG5vbnplcm8uCi0gICAgICAgIHVuc2FmZSB7IGJpbmRpbmdzOjpnZXRfcGlkX25zKHNlbGYuYXNfcHRyKCkpIH07CiYjNDM7ICAgICAgICB1bnNhZmUgeyBiaW5kaW5nczo6Z2V0X3BpZF9ucyhvYmouYXNfcHRyKCkpIH07CiAgICAgfQogCiAgICAgI1tpbmxpbmVdCmRpZmYgLS1naXQgYS9ydXN0L2tlcm5lbC9wbGF0Zm9ybS5ycyBiL3J1c3Qva2VybmVsL3BsYXRmb3JtLnJzCmluZGV4IDliMzYyZTA0OTVkMzIzLi44NTA2OGFlNWE0MDVlYyAxMDA2NDQKLS0tIGEvcnVzdC9rZXJuZWwvcGxhdGZvcm0ucnMKJiM0MzsmIzQzOyYjNDM7IGIvcnVzdC9rZXJuZWwvcGxhdGZvcm0ucnMKQEAgLTUxOSw5ICYjNDM7NTE5LDkgQEAgaW1wbCZsdDsmIzM5O2EmZ3Q7IGNyYXRlOjpkbWE6OkRldmljZSZsdDsmIzM5O2EmZ3Q7IGZvciBEZXZpY2UmbHQ7ZGV2aWNlOjpDb3JlJmx0OyYjMzk7YSZndDsmZ3Q7IHt9CiAKIC8vIFNBRkVUWTogSW5zdGFuY2VzIG9mIGBEZXZpY2VgIGFyZSBhbHdheXMgcmVmZXJlbmNlLWNvdW50ZWQuCiB1bnNhZmUgaW1wbCBjcmF0ZTo6c3luYzo6YXJlZjo6QWx3YXlzUmVmQ291bnRlZCBmb3IgRGV2aWNlIHsKLSAgICBmbiBpbmNfcmVmKCZhbXA7c2VsZikgewomIzQzOyAgICBmbiBpbmNfcmVmKG9iajogJmFtcDtTZWxmKSB7CiAgICAgICAgIC8vIFNBRkVUWTogVGhlIGV4aXN0ZW5jZSBvZiBhIHNoYXJlZCByZWZlcmVuY2UgZ3VhcmFudGVlcyB0aGF0IHRoZSByZWZjb3VudCBpcyBub24temVyby4KLSAgICAgICAgdW5zYWZlIHsgYmluZGluZ3M6OmdldF9kZXZpY2Uoc2VsZi5hc19yZWYoKS5hc19yYXcoKSkgfTsKJiM0MzsgICAgICAgIHVuc2FmZSB7IGJpbmRpbmdzOjpnZXRfZGV2aWNlKG9iai5hc19yZWYoKS5hc19yYXcoKSkgfTsKICAgICB9CiAKICAgICB1bnNhZmUgZm4gZGVjX3JlZihvYmo6IE5vbk51bGwmbHQ7U2VsZiZndDspIHsKZGlmZiAtLWdpdCBhL3J1c3Qva2VybmVsL3N5bmMvYXJlZi5ycyBiL3J1c3Qva2VybmVsL3N5bmMvYXJlZi5ycwppbmRleCBiNzIxYjJlMDBiOTg2Zi4uMmFlMjEzMGQ1YmIxZGQgMTAwNjQ0Ci0tLSBhL3J1c3Qva2VybmVsL3N5bmMvYXJlZi5ycwomIzQzOyYjNDM7JiM0MzsgYi9ydXN0L2tlcm5lbC9zeW5jL2FyZWYucnMKQEAgLTQ0LDcgJiM0Mzs0NCwxMCBAQAogLy8vIGFsaXZlLikKIHB1YiB1bnNhZmUgdHJhaXQgQWx3YXlzUmVmQ291bnRlZCB7CiAgICAgLy8vIEluY3JlbWVudHMgdGhlIHJlZmVyZW5jZSBjb3VudCBvbiB0aGUgb2JqZWN0LgotICAgIGZuIGluY19yZWYoJmFtcDtzZWxmKTsKJiM0MzsgICAgLy8vCiYjNDM7ICAgIC8vLyBUaGlzIGZ1bmN0aW9uIHNob3VsZCBub3QgYmUgY2FsbGVkIGFjY2lkZW50YWxseTsgYSB0eXBlIG1pZ2h0IGRlY2xhcmUgdGhlaXIgb3duIGBpbmNfcmVmYAomIzQzOyAgICAvLy8gZnVuY3Rpb24gYW5kIGl0IHNob3VsZG4mIzM5O3QgYmUgY29uZnVzZWQgd2l0aCB0aGlzIG9uZS4KJiM0MzsgICAgZm4gaW5jX3JlZihvYmo6ICZhbXA7U2VsZik7CiAKICAgICAvLy8gRGVjcmVtZW50cyB0aGUgcmVmZXJlbmNlIGNvdW50IG9uIHRoZSBvYmplY3QuCiAgICAgLy8vCkBAIC0xNDUsNyAmIzQzOzE0OCw3IEBAIHB1YiBmbiBpbnRvX3JhdyhtZTogU2VsZikgLSZndDsgTm9uTnVsbCZsdDtUJmd0OyB7CiAKIGltcGwmbHQ7VDogQWx3YXlzUmVmQ291bnRlZCZndDsgQ2xvbmUgZm9yIEFSZWYmbHQ7VCZndDsgewogICAgIGZuIGNsb25lKCZhbXA7c2VsZikgLSZndDsgU2VsZiB7Ci0gICAgICAgIHNlbGYuaW5jX3JlZigpOwomIzQzOyAgICAgICAgVDo6aW5jX3JlZihzZWxmKTsKICAgICAgICAgLy8gU0FGRVRZOiBXZSBqdXN0IGluY3JlbWVudGVkIHRoZSByZWZjb3VudCBhYm92ZS4KICAgICAgICAgdW5zYWZlIHsgU2VsZjo6ZnJvbV9yYXcoc2VsZi5wdHIpIH0KICAgICB9CkBAIC0xNjIsNyAmIzQzOzE2NSw3IEBAIGZuIGRlcmVmKCZhbXA7c2VsZikgLSZndDsgJmFtcDtTZWxmOjpUYXJnZXQgewogCiBpbXBsJmx0O1Q6IEFsd2F5c1JlZkNvdW50ZWQmZ3Q7IEZyb20mbHQ7JmFtcDtUJmd0OyBmb3IgQVJlZiZsdDtUJmd0OyB7CiAgICAgZm4gZnJvbShiOiAmYW1wO1QpIC0mZ3Q7IFNlbGYgewotICAgICAgICBiLmluY19yZWYoKTsKJiM0MzsgICAgICAgIFQ6OmluY19yZWYoYik7CiAgICAgICAgIC8vIFNBRkVUWTogV2UganVzdCBpbmNyZW1lbnRlZCB0aGUgcmVmY291bnQgYWJvdmUuCiAgICAgICAgIHVuc2FmZSB7IFNlbGY6OmZyb21fcmF3KE5vbk51bGw6OmZyb20oYikpIH0KICAgICB9CmRpZmYgLS1naXQgYS9ydXN0L2tlcm5lbC90YXNrLnJzIGIvcnVzdC9rZXJuZWwvdGFzay5ycwppbmRleCAzODI3M2Y0ZWVkYjUxMy4uYTc3MTFlMTU1OGMyZjUgMTAwNjQ0Ci0tLSBhL3J1c3Qva2VybmVsL3Rhc2sucnMKJiM0MzsmIzQzOyYjNDM7IGIvcnVzdC9rZXJuZWwvdGFzay5ycwpAQCAtMzQ5LDkgJiM0MzszNDksOSBAQCBwdWIgZm4gZ3JvdXBfbGVhZGVyKCZhbXA7c2VsZikgLSZndDsgJmFtcDtUYXNrIHsKIC8vIFNBRkVUWTogVGhlIHR5cGUgaW52YXJpYW50cyBndWFyYW50ZWUgdGhhdCBgVGFza2AgaXMgYWx3YXlzIHJlZmNvdW50ZWQuCiB1bnNhZmUgaW1wbCBjcmF0ZTo6c3luYzo6YXJlZjo6QWx3YXlzUmVmQ291bnRlZCBmb3IgVGFzayB7CiAgICAgI1tpbmxpbmVdCi0gICAgZm4gaW5jX3JlZigmYW1wO3NlbGYpIHsKJiM0MzsgICAgZm4gaW5jX3JlZihvYmo6ICZhbXA7U2VsZikgewogICAgICAgICAvLyBTQUZFVFk6IFRoZSBleGlzdGVuY2Ugb2YgYSBzaGFyZWQgcmVmZXJlbmNlIG1lYW5zIHRoYXQgdGhlIHJlZmNvdW50IGlzIG5vbnplcm8uCi0gICAgICAgIHVuc2FmZSB7IGJpbmRpbmdzOjpnZXRfdGFza19zdHJ1Y3Qoc2VsZi5hc19wdHIoKSkgfTsKJiM0MzsgICAgICAgIHVuc2FmZSB7IGJpbmRpbmdzOjpnZXRfdGFza19zdHJ1Y3Qob2JqLmFzX3B0cigpKSB9OwogICAgIH0KIAogICAgICNbaW5saW5lXQpkaWZmIC0tZ2l0IGEvcnVzdC9rZXJuZWwvdXNiLnJzIGIvcnVzdC9rZXJuZWwvdXNiLnJzCmluZGV4IDdhZmYwYzgyZDBhZmMwLi5jMDM5MDU5YzE4OTEzYyAxMDA2NDQKLS0tIGEvcnVzdC9rZXJuZWwvdXNiLnJzCiYjNDM7JiM0MzsmIzQzOyBiL3J1c3Qva2VybmVsL3VzYi5ycwpAQCAtMzkzLDExICYjNDM7MzkzLDExIEBAIGZuIGFzX3JlZigmYW1wO3NlbGYpIC0mZ3Q7ICZhbXA7RGV2aWNlIHsKIAogLy8gU0FGRVRZOiBJbnN0YW5jZXMgb2YgYEludGVyZmFjZWAgYXJlIGFsd2F5cyByZWZlcmVuY2UtY291bnRlZC4KIHVuc2FmZSBpbXBsIEFsd2F5c1JlZkNvdW50ZWQgZm9yIEludGVyZmFjZSB7Ci0gICAgZm4gaW5jX3JlZigmYW1wO3NlbGYpIHsKJiM0MzsgICAgZm4gaW5jX3JlZihvYmo6ICZhbXA7U2VsZikgewogICAgICAgICAvLyBTQUZFVFk6IFRoZSBpbnZhcmlhbnRzIG9mIGBJbnRlcmZhY2VgIGd1YXJhbnRlZSB0aGF0IGBzZWxmLmFzX3JhdygpYAogICAgICAgICAvLyByZXR1cm5zIGEgdmFsaWQgYHN0cnVjdCB1c2JfaW50ZXJmYWNlYCBwb2ludGVyLCBmb3Igd2hpY2ggd2Ugd2lsbAogICAgICAgICAvLyBhY3F1aXJlIGEgbmV3IHJlZmNvdW50LgotICAgICAgICB1bnNhZmUgeyBiaW5kaW5nczo6dXNiX2dldF9pbnRmKHNlbGYuYXNfcmF3KCkpIH07CiYjNDM7ICAgICAgICB1bnNhZmUgeyBiaW5kaW5nczo6dXNiX2dldF9pbnRmKG9iai5hc19yYXcoKSkgfTsKICAgICB9CiAKICAgICB1bnNhZmUgZm4gZGVjX3JlZihvYmo6IE5vbk51bGwmbHQ7U2VsZiZndDspIHsKQEAgLTQ0NCwxMSAmIzQzOzQ0NCwxMSBAQCBmbiBhc19yYXcoJmFtcDtzZWxmKSAtJmd0OyAqbXV0IGJpbmRpbmdzOjp1c2JfZGV2aWNlIHsKIAogLy8gU0FGRVRZOiBJbnN0YW5jZXMgb2YgYERldmljZWAgYXJlIGFsd2F5cyByZWZlcmVuY2UtY291bnRlZC4KIHVuc2FmZSBpbXBsIEFsd2F5c1JlZkNvdW50ZWQgZm9yIERldmljZSB7Ci0gICAgZm4gaW5jX3JlZigmYW1wO3NlbGYpIHsKJiM0MzsgICAgZm4gaW5jX3JlZihvYmo6ICZhbXA7U2VsZikgewogICAgICAgICAvLyBTQUZFVFk6IFRoZSBpbnZhcmlhbnRzIG9mIGBEZXZpY2VgIGd1YXJhbnRlZSB0aGF0IGBzZWxmLmFzX3JhdygpYAogICAgICAgICAvLyByZXR1cm5zIGEgdmFsaWQgYHN0cnVjdCB1c2JfZGV2aWNlYCBwb2ludGVyLCBmb3Igd2hpY2ggd2Ugd2lsbAogICAgICAgICAvLyBhY3F1aXJlIGEgbmV3IHJlZmNvdW50LgotICAgICAgICB1bnNhZmUgeyBiaW5kaW5nczo6dXNiX2dldF9kZXYoc2VsZi5hc19yYXcoKSkgfTsKJiM0MzsgICAgICAgIHVuc2FmZSB7IGJpbmRpbmdzOjp1c2JfZ2V0X2RldihvYmouYXNfcmF3KCkpIH07CiAgICAgfQogCiAgICAgdW5zYWZlIGZuIGRlY19yZWYob2JqOiBOb25OdWxsJmx0O1NlbGYmZ3Q7KSB7CjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzI4IDA5OjUyPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDY3NDcKCQkJCQkJCW91dHB1dDogMTA3CgkJCQkJCQl0aG91Z2h0czogMzU2CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKlJlZmFjdG9yaW5nIHRoZSBgQWx3YXlzUmVmQ291bnRlZGAgVHJhaXQgaW4gdGhlIFJ1c3QgS2VybmVsKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCB0aGlzIHBhdGNoIGFuZCBpdCYjMzk7cyBwcmV0dHkgc3RyYWlnaHRmb3J3YXJkLCBhIHB1cmUgcmVmYWN0b3JpbmcgcmVhbGx5LiBUaGV5JiMzOTtyZSB0b3VjaGluZyB0aGUgYEFsd2F5c1JlZkNvdW50ZWRgIHRyYWl0IHdpdGhpbiB0aGUga2VybmVsJiMzOTtzIHN5bmNocm9uaXphdGlvbiBtZWNoYW5pc21zLCBzcGVjaWZpY2FsbHkgaW4gYHJ1c3Qva2VybmVsL3N5bmMvYXJlZi5yc2AuIFRoZSBnaXN0IGlzIGEgbW9kaWZpY2F0aW9uIHRvIHRoZSBzaWduYXR1cmUgb2YgYGluY19yZWZgLiBUaGV5JiMzOTtyZSBjaGFuZ2luZyBpdCBmcm9tIGBmbiBpbmNfcmVmKCZhbXA7c2VsZilgIHRvIGBmbiBpbmNfcmVmKG9iajogJmFtcDtTZWxmKWAuCgpUaGUgY29yZSByZWFzb24gZm9yIHRoaXMgYWx0ZXJhdGlvbiBpcyB0byBtaXRpZ2F0ZSBwb3RlbnRpYWwgbWV0aG9kIHJlc29sdXRpb24gY29uZmxpY3RzIGluIFJ1c3QuICBJZiBhIHR5cGUgaW1wbGVtZW50aW5nIGBBbHdheXNSZWZDb3VudGVkYCBkZWZpbmVzIGl0cyBvd24gYGluY19yZWZgIGZ1bmN0aW9uLCB0aGUgcHJldmlvdXMgc2lnbmF0dXJlIGNvdWxkIGxlYWQgdG8gYWNjaWRlbnRhbCwgYW5kIGluY29ycmVjdCwgY2FsbHMgb24gdGhlIG9iamVjdCBpdHNlbGYuIFRoaXMgY2hhbmdlIG1ha2VzIGl0IGV4cGxpY2l0IHRoYXQgdGhlIHRyYWl0JiMzOTtzIGBpbmNfcmVmYCBpcyBhIHN0YXRpYyBtZXRob2QsIGFuZCByZW1vdmVzIGFueSBhbWJpZ3VpdHkuCgpUaGlzIGNoYW5nZSByaXBwbGVzIHRocm91Z2ggYSBzaWduaWZpY2FudCBjaHVuayBvZiB0aGUga2VybmVsLCB0b3VjaGluZyBhIGxvdCBvZiBtb2R1bGVzOiBldmVyeXRoaW5nIGZyb20gYXV4aWxpYXJ5IHN0cnVjdHVyZXMgdG8gZGV2aWNlIG1hbmFnZW1lbnQsIGZpbGVzeXN0ZW1zLCBtZW1vcnkgbWFuYWdlbWVudCwgYW5kIGV2ZW4gUENJIGFuZCBVU0IuIFRoZXnigJl2ZSB1cGRhdGVkIGFsbCB0aGUgaW1wbGVtZW50YXRpb25zIGFjcm9zcyB0aGVzZSBtb2R1bGVzLiBCdXQsIGFuZCB0aGlzIGlzIGNydWNpYWwsIGl0JiMzOTtzIHN0cmljdGx5IGEgc3ludGFjdGljIGNoYW5nZTsgdGhlcmXigJlzIG5vIGZ1bmN0aW9uYWwgYWx0ZXJhdGlvbiB0byB0aGUga2VybmVs4oCZcyByZWZjb3VudGluZyBsb2dpYy4gTm8gYWxnb3JpdGhtcywgbm8gZGF0YSBzdHJ1Y3R1cmVzLCBub3RoaW5nIGZ1bmRhbWVudGFsIGlzIGJlaW5nIG1vZGlmaWVkLiBJdCYjMzk7cyBqdXN0IGEgc2FmZXIgd2F5IHRvIGV4cHJlc3MgdGhlIGV4aXN0aW5nIG1lY2hhbmlzbS4KCkxldCYjMzk7cyBxdWlja2x5IGNvbmZpcm0uIEkmIzM5O3ZlIHRha2VuIGEgbG9vayBhdCB0aGUgZGlmZiBhbmQgc3BvdHRlZCB0aGUgY2hhbmdlIGluIHRoZSB0cmFpdCBpdHNlbGYgYW5kIGhvdyB0aGUgY2FsbCBoYXMgY2hhbmdlZCB0byB1c2UgdGhlIHR5cGUgZGlyZWN0bHkuCmBgYHJ1c3QKLSAgICBmbiBpbmNfcmVmKCZhbXA7c2VsZikgewomIzQzOyAgICBmbiBpbmNfcmVmKG9iajogJmFtcDtTZWxmKSB7CmBgYAphbmQgdGhlbiB0aGUgY29ycmVzcG9uZGluZyBjYWxsIGNoYW5nZSwKYGBgcnVzdAotICAgICAgICBzZWxmLmluY19yZWYoKTsKJiM0MzsgICAgICAgIFQ6OmluY19yZWYoc2VsZik7CmBgYApTbywgYXMgSSBzdXNwZWN0ZWQsIHRoaXMgaXMgcHVyZWx5IGEgUnVzdCBBUEkgYWRqdXN0bWVudCB0byBwcmV2ZW50IHBvdGVudGlhbCBtZXRob2QgcmVzb2x1dGlvbiBjb25mbGljdHMuIE5vIG5lZWQgZm9yIGZ1enppbmcuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NC8yPC90ZD4KCQkJPHRkPjIwMjYvMDYvMjggMDk6NTI8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5zZXQtcmVzdWx0czwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBpcyBhIHB1cmVseSBzeW50YWN0aWMgcmVmYWN0b3JpbmcgaW4gdGhlIFJ1c3Qga2VybmVsIGJpbmRpbmdzLiBJdCBjaGFuZ2VzIHRoZSBzaWduYXR1cmUgb2YgdGhlIGBpbmNfcmVmYCBtZXRob2QgaW4gdGhlIGBBbHdheXNSZWZDb3VudGVkYCB0cmFpdCBmcm9tIGBmbiBpbmNfcmVmKFx1MDAyNnNlbGYpYCB0byBgZm4gaW5jX3JlZihvYmo6IFx1MDAyNlNlbGYpYCB0byBwcmV2ZW50IGFjY2lkZW50YWwgbWV0aG9kIHJlc29sdXRpb24gY29uZmxpY3RzLiBJdCBkb2VzIG5vdCBhbHRlciBhbnkgZnVuY3Rpb25hbCBsb2dpYyBvciBleGVjdXRpb24gZmxvdyBpbiB0aGUga2VybmVsLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IG51bGwsCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogW10sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggaXMgYSBwdXJlbHkgc3ludGFjdGljIHJlZmFjdG9yaW5nIGluIHRoZSBSdXN0IGtlcm5lbCBiaW5kaW5ncy4gSXQgY2hhbmdlcyB0aGUgc2lnbmF0dXJlIG9mIHRoZSBgaW5jX3JlZmAgbWV0aG9kIGluIHRoZSBgQWx3YXlzUmVmQ291bnRlZGAgdHJhaXQgZnJvbSBgZm4gaW5jX3JlZihcdTAwMjZzZWxmKWAgdG8gYGZuIGluY19yZWYob2JqOiBcdTAwMjZTZWxmKWAgdG8gcHJldmVudCBhY2NpZGVudGFsIG1ldGhvZCByZXNvbHV0aW9uIGNvbmZsaWN0cy4gSXQgZG9lcyBub3QgYWx0ZXIgYW55IGZ1bmN0aW9uYWwgbG9naWMgb3IgZXhlY3V0aW9uIGZsb3cgaW4gdGhlIGtlcm5lbC4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPC90Ym9keT4KCTwvdGFibGU+CgoJPGRpdiBpZD0ibGxtX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5MTE0gQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBUb2tlbnM8L3RoPgoJCQkJCTx0aD5BdmcgVG9rZW5zPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9ImxsbV9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9InRvb2xfc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPlRvb2wgQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0idG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9ImR1cmF0aW9uX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCTxkaXYgaWQ9InRva2VuX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJodHRwczovL3d3dy5nb29nbGUuY29tL2pzYXBpIj48L3NjcmlwdD4KCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KCQlnb29nbGUubG9hZCgidmlzdWFsaXphdGlvbiIsICIxIiwge3BhY2thZ2VzOlsiY29yZWNoYXJ0Il19KTsKCQlnb29nbGUuc2V0T25Mb2FkQ2FsbGJhY2soZHJhd0NoYXJ0cyk7CgoJCWZ1bmN0aW9uIGRyYXdDaGFydHMoKSB7CgkJCWNvbnN0IHJhd0RhdGEgPSBbeyJTdGFydGVkIjoiMjAyNi0wNi0yOFQwOTo1MjowNi4zMTM4NzQ4NDlaIiwiU2VxIjowLCJOZXN0aW5nIjowLCJUeXBlIjoiZmxvdyIsIk5hbWUiOiJwYXRjaC10cmlhZ2UiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo4MjkwMjAxMDAzLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IG51bGwsXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBpcyBhIHB1cmVseSBzeW50YWN0aWMgcmVmYWN0b3JpbmcgaW4gdGhlIFJ1c3Qga2VybmVsIGJpbmRpbmdzLiBJdCBjaGFuZ2VzIHRoZSBzaWduYXR1cmUgb2YgdGhlIGBpbmNfcmVmYCBtZXRob2QgaW4gdGhlIGBBbHdheXNSZWZDb3VudGVkYCB0cmFpdCBmcm9tIGBmbiBpbmNfcmVmKFxcdTAwMjZzZWxmKWAgdG8gYGZuIGluY19yZWYob2JqOiBcXHUwMDI2U2VsZilgIHRvIHByZXZlbnQgYWNjaWRlbnRhbCBtZXRob2QgcmVzb2x1dGlvbiBjb25mbGljdHMuIEl0IGRvZXMgbm90IGFsdGVyIGFueSBmdW5jdGlvbmFsIGxvZ2ljIG9yIGV4ZWN1dGlvbiBmbG93IGluIHRoZSBrZXJuZWwuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNi0yOFQwOTo1MjowNi4zMTM4ODYzNzlaIiwiU2VxIjoxLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWN0aW9uIiwiTmFtZSI6InJlYWQtcGF0Y2gtZGlmZiIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjUwMzU2MDAxMSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiUGF0Y2hEaWZmXCI6IFwiY29tbWl0IDZmMDUxNTI1ZDk4MzYzZTEwYTVkODkzYTIxOGM1NTJlZmExN2JmODJcXG5BdXRob3I6IHN5ei1jbHVzdGVyIFxcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVxcdTAwM2VcXG5EYXRlOiAgIFN1biBKdW4gMjggMDk6NTI6MDUgMjAyNiArMDAwMFxcblxcbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcXG5cXG5kaWZmIC0tZ2l0IGEvcnVzdC9rZXJuZWwvYXV4aWxpYXJ5LnJzIGIvcnVzdC9rZXJuZWwvYXV4aWxpYXJ5LnJzXFxuaW5kZXggYzQyOTI4ZDVhMjM5M2YuLjc1YTYxYjUxY2Y3OThkIDEwMDY0NFxcbi0tLSBhL3J1c3Qva2VybmVsL2F1eGlsaWFyeS5yc1xcbisrKyBiL3J1c3Qva2VybmVsL2F1eGlsaWFyeS5yc1xcbkBAIC0zNDUsOSArMzQ1LDkgQEAgdW5zYWZlIGltcGxcXHUwMDNjQ3R4OiBkZXZpY2U6OkRldmljZUNvbnRleHRcXHUwMDNlIGRldmljZTo6QXNCdXNEZXZpY2VcXHUwMDNjQ3R4XFx1MDAzZSBmb3IgRGV2aWNlXFx1MDAzY0N0eFxcdTAwM2VcXG4gXFxuIC8vIFNBRkVUWTogSW5zdGFuY2VzIG9mIGBEZXZpY2VgIGFyZSBhbHdheXMgcmVmZXJlbmNlLWNvdW50ZWQuXFxuIHVuc2FmZSBpbXBsIGNyYXRlOjpzeW5jOjphcmVmOjpBbHdheXNSZWZDb3VudGVkIGZvciBEZXZpY2Uge1xcbi0gICAgZm4gaW5jX3JlZihcXHUwMDI2c2VsZikge1xcbisgICAgZm4gaW5jX3JlZihvYmo6IFxcdTAwMjZTZWxmKSB7XFxuICAgICAgICAgLy8gU0FGRVRZOiBUaGUgZXhpc3RlbmNlIG9mIGEgc2hhcmVkIHJlZmVyZW5jZSBndWFyYW50ZWVzIHRoYXQgdGhlIHJlZmNvdW50IGlzIG5vbi16ZXJvLlxcbi0gICAgICAgIHVuc2FmZSB7IGJpbmRpbmdzOjpnZXRfZGV2aWNlKHNlbGYuYXNfcmVmKCkuYXNfcmF3KCkpIH07XFxuKyAgICAgICAgdW5zYWZlIHsgYmluZGluZ3M6OmdldF9kZXZpY2Uob2JqLmFzX3JlZigpLmFzX3JhdygpKSB9O1xcbiAgICAgfVxcbiBcXG4gICAgIHVuc2FmZSBmbiBkZWNfcmVmKG9iajogTm9uTnVsbFxcdTAwM2NTZWxmXFx1MDAzZSkge1xcbmRpZmYgLS1naXQgYS9ydXN0L2tlcm5lbC9ibG9jay9tcS9yZXF1ZXN0LnJzIGIvcnVzdC9rZXJuZWwvYmxvY2svbXEvcmVxdWVzdC5yc1xcbmluZGV4IGNlM2UzMGM4MWNiNWVkLi5mNDFkMDFlYTQ1OTUxYyAxMDA2NDRcXG4tLS0gYS9ydXN0L2tlcm5lbC9ibG9jay9tcS9yZXF1ZXN0LnJzXFxuKysrIGIvcnVzdC9rZXJuZWwvYmxvY2svbXEvcmVxdWVzdC5yc1xcbkBAIC0yMzQsOCArMjM0LDggQEAgdW5zYWZlIGltcGxcXHUwMDNjVDogT3BlcmF0aW9uc1xcdTAwM2UgU3luYyBmb3IgUmVxdWVzdFxcdTAwM2NUXFx1MDAzZSB7fVxcbiAvLyBrZWVwcyB0aGUgb2JqZWN0IGFsaXZlIGluIG1lbW9yeSBhdCBsZWFzdCB1bnRpbCBhIG1hdGNoaW5nIHJlZmVyZW5jZSBjb3VudFxcbiAvLyBkZWNyZW1lbnQgaXMgZXhlY3V0ZWQuXFxuIHVuc2FmZSBpbXBsXFx1MDAzY1Q6IE9wZXJhdGlvbnNcXHUwMDNlIEFsd2F5c1JlZkNvdW50ZWQgZm9yIFJlcXVlc3RcXHUwMDNjVFxcdTAwM2Uge1xcbi0gICAgZm4gaW5jX3JlZihcXHUwMDI2c2VsZikge1xcbi0gICAgICAgIHNlbGYud3JhcHBlcl9yZWYoKS5yZWZjb3VudCgpLmluYygpO1xcbisgICAgZm4gaW5jX3JlZihvYmo6IFxcdTAwMjZTZWxmKSB7XFxuKyAgICAgICAgb2JqLndyYXBwZXJfcmVmKCkucmVmY291bnQoKS5pbmMoKTtcXG4gICAgIH1cXG4gXFxuICAgICB1bnNhZmUgZm4gZGVjX3JlZihvYmo6IGNvcmU6OnB0cjo6Tm9uTnVsbFxcdTAwM2NTZWxmXFx1MDAzZSkge1xcbmRpZmYgLS1naXQgYS9ydXN0L2tlcm5lbC9jcmVkLnJzIGIvcnVzdC9rZXJuZWwvY3JlZC5yc1xcbmluZGV4IGZmYTE1NmI5ZGYzNzdlLi5kNTNjYmM3OTJmYTNhOSAxMDA2NDRcXG4tLS0gYS9ydXN0L2tlcm5lbC9jcmVkLnJzXFxuKysrIGIvcnVzdC9rZXJuZWwvY3JlZC5yc1xcbkBAIC03OCw5ICs3OCw5IEBAIHB1YiBmbiBldWlkKFxcdTAwMjZzZWxmKSAtXFx1MDAzZSBLdWlkIHtcXG4gLy8gU0FGRVRZOiBUaGUgdHlwZSBpbnZhcmlhbnRzIGd1YXJhbnRlZSB0aGF0IGBDcmVkZW50aWFsYCBpcyBhbHdheXMgcmVmLWNvdW50ZWQuXFxuIHVuc2FmZSBpbXBsIEFsd2F5c1JlZkNvdW50ZWQgZm9yIENyZWRlbnRpYWwge1xcbiAgICAgI1tpbmxpbmVdXFxuLSAgICBmbiBpbmNfcmVmKFxcdTAwMjZzZWxmKSB7XFxuKyAgICBmbiBpbmNfcmVmKG9iajogXFx1MDAyNlNlbGYpIHtcXG4gICAgICAgICAvLyBTQUZFVFk6IFRoZSBleGlzdGVuY2Ugb2YgYSBzaGFyZWQgcmVmZXJlbmNlIG1lYW5zIHRoYXQgdGhlIHJlZmNvdW50IGlzIG5vbnplcm8uXFxuLSAgICAgICAgdW5zYWZlIHsgYmluZGluZ3M6OmdldF9jcmVkKHNlbGYuMC5nZXQoKSkgfTtcXG4rICAgICAgICB1bnNhZmUgeyBiaW5kaW5nczo6Z2V0X2NyZWQob2JqLjAuZ2V0KCkpIH07XFxuICAgICB9XFxuIFxcbiAgICAgI1tpbmxpbmVdXFxuZGlmZiAtLWdpdCBhL3J1c3Qva2VybmVsL2RldmljZS5ycyBiL3J1c3Qva2VybmVsL2RldmljZS5yc1xcbmluZGV4IDY0NWFmYzQ5YTI3ZDY0Li5lYzQ0ZGNjNDA1ZDUxMSAxMDA2NDRcXG4tLS0gYS9ydXN0L2tlcm5lbC9kZXZpY2UucnNcXG4rKysgYi9ydXN0L2tlcm5lbC9kZXZpY2UucnNcXG5AQCAtNDQ5LDkgKzQ0OSw5IEBAIHB1YiBmbiBuYW1lKFxcdTAwMjZzZWxmKSAtXFx1MDAzZSBcXHUwMDI2Q1N0ciB7XFxuIFxcbiAvLyBTQUZFVFk6IEluc3RhbmNlcyBvZiBgRGV2aWNlYCBhcmUgYWx3YXlzIHJlZmVyZW5jZS1jb3VudGVkLlxcbiB1bnNhZmUgaW1wbCBjcmF0ZTo6c3luYzo6YXJlZjo6QWx3YXlzUmVmQ291bnRlZCBmb3IgRGV2aWNlIHtcXG4tICAgIGZuIGluY19yZWYoXFx1MDAyNnNlbGYpIHtcXG4rICAgIGZuIGluY19yZWYob2JqOiBcXHUwMDI2U2VsZikge1xcbiAgICAgICAgIC8vIFNBRkVUWTogVGhlIGV4aXN0ZW5jZSBvZiBhIHNoYXJlZCByZWZlcmVuY2UgZ3VhcmFudGVlcyB0aGF0IHRoZSByZWZjb3VudCBpcyBub24temVyby5cXG4tICAgICAgICB1bnNhZmUgeyBiaW5kaW5nczo6Z2V0X2RldmljZShzZWxmLmFzX3JhdygpKSB9O1xcbisgICAgICAgIHVuc2FmZSB7IGJpbmRpbmdzOjpnZXRfZGV2aWNlKG9iai5hc19yYXcoKSkgfTtcXG4gICAgIH1cXG4gXFxuICAgICB1bnNhZmUgZm4gZGVjX3JlZihvYmo6IHB0cjo6Tm9uTnVsbFxcdTAwM2NTZWxmXFx1MDAzZSkge1xcbmRpZmYgLS1naXQgYS9ydXN0L2tlcm5lbC9kZXZpY2UvcHJvcGVydHkucnMgYi9ydXN0L2tlcm5lbC9kZXZpY2UvcHJvcGVydHkucnNcXG5pbmRleCA1YWVhZDgzNWZiYmMwMi4uYzM5Y2NjMTQ1OGI5NWUgMTAwNjQ0XFxuLS0tIGEvcnVzdC9rZXJuZWwvZGV2aWNlL3Byb3BlcnR5LnJzXFxuKysrIGIvcnVzdC9rZXJuZWwvZGV2aWNlL3Byb3BlcnR5LnJzXFxuQEAgLTM2MSwxMCArMzYxLDEwIEBAIGZuIGZtdChcXHUwMDI2c2VsZiwgZjogXFx1MDAyNm11dCBmbXQ6OkZvcm1hdHRlclxcdTAwM2MnX1xcdTAwM2UpIC1cXHUwMDNlIGZtdDo6UmVzdWx0IHtcXG4gXFxuIC8vIFNBRkVUWTogSW5zdGFuY2VzIG9mIGBGd05vZGVgIGFyZSBhbHdheXMgcmVmZXJlbmNlLWNvdW50ZWQuXFxuIHVuc2FmZSBpbXBsIGNyYXRlOjpzeW5jOjphcmVmOjpBbHdheXNSZWZDb3VudGVkIGZvciBGd05vZGUge1xcbi0gICAgZm4gaW5jX3JlZihcXHUwMDI2c2VsZikge1xcbisgICAgZm4gaW5jX3JlZihvYmo6IFxcdTAwMjZTZWxmKSB7XFxuICAgICAgICAgLy8gU0FGRVRZOiBUaGUgZXhpc3RlbmNlIG9mIGEgc2hhcmVkIHJlZmVyZW5jZSBndWFyYW50ZWVzIHRoYXQgdGhlXFxuICAgICAgICAgLy8gcmVmY291bnQgaXMgbm9uLXplcm8uXFxuLSAgICAgICAgdW5zYWZlIHsgYmluZGluZ3M6OmZ3bm9kZV9oYW5kbGVfZ2V0KHNlbGYuYXNfcmF3KCkpIH07XFxuKyAgICAgICAgdW5zYWZlIHsgYmluZGluZ3M6OmZ3bm9kZV9oYW5kbGVfZ2V0KG9iai5hc19yYXcoKSkgfTtcXG4gICAgIH1cXG4gXFxuICAgICB1bnNhZmUgZm4gZGVjX3JlZihvYmo6IHB0cjo6Tm9uTnVsbFxcdTAwM2NTZWxmXFx1MDAzZSkge1xcbmRpZmYgLS1naXQgYS9ydXN0L2tlcm5lbC9kcm0vZGV2aWNlLnJzIGIvcnVzdC9rZXJuZWwvZHJtL2RldmljZS5yc1xcbmluZGV4IDQ3N2NmNzcxZmIxMGVmLi4wYzcwZWMwMTBiZDkxMSAxMDA2NDRcXG4tLS0gYS9ydXN0L2tlcm5lbC9kcm0vZGV2aWNlLnJzXFxuKysrIGIvcnVzdC9rZXJuZWwvZHJtL2RldmljZS5yc1xcbkBAIC0zNjMsOSArMzYzLDkgQEAgZm4gZGVyZWYoXFx1MDAyNnNlbGYpIC1cXHUwMDNlIFxcdTAwMjZTZWxmOjpUYXJnZXQge1xcbiAvLyBTQUZFVFk6IERSTSBkZXZpY2Ugb2JqZWN0cyBhcmUgYWx3YXlzIHJlZmVyZW5jZSBjb3VudGVkIGFuZCB0aGUgZ2V0L3B1dCBmdW5jdGlvbnNcXG4gLy8gc2F0aXNmeSB0aGUgcmVxdWlyZW1lbnRzLlxcbiB1bnNhZmUgaW1wbFxcdTAwM2NUOiBkcm06OkRyaXZlciwgQzogRGV2aWNlQ29udGV4dFxcdTAwM2UgQWx3YXlzUmVmQ291bnRlZCBmb3IgRGV2aWNlXFx1MDAzY1QsIENcXHUwMDNlIHtcXG4tICAgIGZuIGluY19yZWYoXFx1MDAyNnNlbGYpIHtcXG4rICAgIGZuIGluY19yZWYob2JqOiBcXHUwMDI2U2VsZikge1xcbiAgICAgICAgIC8vIFNBRkVUWTogVGhlIGV4aXN0ZW5jZSBvZiBhIHNoYXJlZCByZWZlcmVuY2UgZ3VhcmFudGVlcyB0aGF0IHRoZSByZWZjb3VudCBpcyBub24temVyby5cXG4tICAgICAgICB1bnNhZmUgeyBiaW5kaW5nczo6ZHJtX2Rldl9nZXQoc2VsZi5hc19yYXcoKSkgfTtcXG4rICAgICAgICB1bnNhZmUgeyBiaW5kaW5nczo6ZHJtX2Rldl9nZXQob2JqLmFzX3JhdygpKSB9O1xcbiAgICAgfVxcbiBcXG4gICAgIHVuc2FmZSBmbiBkZWNfcmVmKG9iajogTm9uTnVsbFxcdTAwM2NTZWxmXFx1MDAzZSkge1xcbmRpZmYgLS1naXQgYS9ydXN0L2tlcm5lbC9kcm0vZ2VtL21vZC5ycyBiL3J1c3Qva2VybmVsL2RybS9nZW0vbW9kLnJzXFxuaW5kZXggYzhiNjZkODE2ODcxOTkuLmVlOWU0MTIwNjZhYmI3IDEwMDY0NFxcbi0tLSBhL3J1c3Qva2VybmVsL2RybS9nZW0vbW9kLnJzXFxuKysrIGIvcnVzdC9rZXJuZWwvZHJtL2dlbS9tb2QucnNcXG5AQCAtNTIsMTAgKzUyLDEwIEBAIHVuc2FmZSBpbXBsICQoIFxcdTAwM2MkKCAkdHBhcmFtX2lkICksK1xcdTAwM2UgKT8gJGNyYXRlOjpzeW5jOjphcmVmOjpBbHdheXNSZWZDb3VudGVkIGZvciAkXFxuICAgICAgICAgICAgIFNlbGY6IEludG9HRU1PYmplY3QsXFxuICAgICAgICAgICAgICQoICQoICRiaW5kX3BhcmFtIDogJGJpbmRfdHJhaXQgKSwrICk/XFxuICAgICAgICAge1xcbi0gICAgICAgICAgICBmbiBpbmNfcmVmKFxcdTAwMjZzZWxmKSB7XFxuKyAgICAgICAgICAgIGZuIGluY19yZWYob2JqOiBcXHUwMDI2U2VsZikge1xcbiAgICAgICAgICAgICAgICAgLy8gU0FGRVRZOiBUaGUgZXhpc3RlbmNlIG9mIGEgc2hhcmVkIHJlZmVyZW5jZSBndWFyYW50ZWVzIHRoYXQgdGhlIHJlZmNvdW50IGlzXFxuICAgICAgICAgICAgICAgICAvLyBub24temVyby5cXG4tICAgICAgICAgICAgICAgIHVuc2FmZSB7IGJpbmRpbmdzOjpkcm1fZ2VtX29iamVjdF9nZXQoc2VsZi5hc19yYXcoKSkgfTtcXG4rICAgICAgICAgICAgICAgIHVuc2FmZSB7IGJpbmRpbmdzOjpkcm1fZ2VtX29iamVjdF9nZXQob2JqLmFzX3JhdygpKSB9O1xcbiAgICAgICAgICAgICB9XFxuIFxcbiAgICAgICAgICAgICB1bnNhZmUgZm4gZGVjX3JlZihvYmo6IGNvcmU6OnB0cjo6Tm9uTnVsbFxcdTAwM2NTZWxmXFx1MDAzZSkge1xcbmRpZmYgLS1naXQgYS9ydXN0L2tlcm5lbC9mcy9maWxlLnJzIGIvcnVzdC9rZXJuZWwvZnMvZmlsZS5yc1xcbmluZGV4IDIzZWU2ODliZDI0MDA1Li44ZTU5NjdhZmNkMTFmMiAxMDA2NDRcXG4tLS0gYS9ydXN0L2tlcm5lbC9mcy9maWxlLnJzXFxuKysrIGIvcnVzdC9rZXJuZWwvZnMvZmlsZS5yc1xcbkBAIC0xOTksOSArMTk5LDkgQEAgdW5zYWZlIGltcGwgU3luYyBmb3IgRmlsZSB7fVxcbiAvLyBtYWtlcyBgQVJlZlxcdTAwM2NGaWxlXFx1MDAzZWAgb3duIGEgbm9ybWFsIHJlZmNvdW50LlxcbiB1bnNhZmUgaW1wbCBBbHdheXNSZWZDb3VudGVkIGZvciBGaWxlIHtcXG4gICAgICNbaW5saW5lXVxcbi0gICAgZm4gaW5jX3JlZihcXHUwMDI2c2VsZikge1xcbisgICAgZm4gaW5jX3JlZihvYmo6IFxcdTAwMjZTZWxmKSB7XFxuICAgICAgICAgLy8gU0FGRVRZOiBUaGUgZXhpc3RlbmNlIG9mIGEgc2hhcmVkIHJlZmVyZW5jZSBtZWFucyB0aGF0IHRoZSByZWZjb3VudCBpcyBub256ZXJvLlxcbi0gICAgICAgIHVuc2FmZSB7IGJpbmRpbmdzOjpnZXRfZmlsZShzZWxmLmFzX3B0cigpKSB9O1xcbisgICAgICAgIHVuc2FmZSB7IGJpbmRpbmdzOjpnZXRfZmlsZShvYmouYXNfcHRyKCkpIH07XFxuICAgICB9XFxuIFxcbiAgICAgI1tpbmxpbmVdXFxuQEAgLTIzNSw5ICsyMzUsOSBAQCBwdWIgc3RydWN0IExvY2FsRmlsZSB7XFxuIC8vIG1ha2VzIGBBUmVmXFx1MDAzY0xvY2FsRmlsZVxcdTAwM2VgIG93biBhIG5vcm1hbCByZWZjb3VudC5cXG4gdW5zYWZlIGltcGwgQWx3YXlzUmVmQ291bnRlZCBmb3IgTG9jYWxGaWxlIHtcXG4gICAgICNbaW5saW5lXVxcbi0gICAgZm4gaW5jX3JlZihcXHUwMDI2c2VsZikge1xcbisgICAgZm4gaW5jX3JlZihvYmo6IFxcdTAwMjZTZWxmKSB7XFxuICAgICAgICAgLy8gU0FGRVRZOiBUaGUgZXhpc3RlbmNlIG9mIGEgc2hhcmVkIHJlZmVyZW5jZSBtZWFucyB0aGF0IHRoZSByZWZjb3VudCBpcyBub256ZXJvLlxcbi0gICAgICAgIHVuc2FmZSB7IGJpbmRpbmdzOjpnZXRfZmlsZShzZWxmLmFzX3B0cigpKSB9O1xcbisgICAgICAgIHVuc2FmZSB7IGJpbmRpbmdzOjpnZXRfZmlsZShvYmouYXNfcHRyKCkpIH07XFxuICAgICB9XFxuIFxcbiAgICAgI1tpbmxpbmVdXFxuZGlmZiAtLWdpdCBhL3J1c3Qva2VybmVsL2kyYy5ycyBiL3J1c3Qva2VybmVsL2kyYy5yc1xcbmluZGV4IDYyNGI5NzFjYThiMGIyLi4xYTk4ODJhNjRjNGI4ZSAxMDA2NDRcXG4tLS0gYS9ydXN0L2tlcm5lbC9pMmMucnNcXG4rKysgYi9ydXN0L2tlcm5lbC9pMmMucnNcXG5AQCAtNDI1LDkgKzQyNSw5IEBAIHB1YiBmbiBnZXQoaW5kZXg6IGkzMikgLVxcdTAwM2UgUmVzdWx0XFx1MDAzY0FSZWZcXHUwMDNjU2VsZlxcdTAwM2VcXHUwMDNlIHtcXG4gXFxuIC8vIFNBRkVUWTogSW5zdGFuY2VzIG9mIGBJMmNBZGFwdGVyYCBhcmUgYWx3YXlzIHJlZmVyZW5jZS1jb3VudGVkLlxcbiB1bnNhZmUgaW1wbCBBbHdheXNSZWZDb3VudGVkIGZvciBJMmNBZGFwdGVyIHtcXG4tICAgIGZuIGluY19yZWYoXFx1MDAyNnNlbGYpIHtcXG4rICAgIGZuIGluY19yZWYob2JqOiBcXHUwMDI2U2VsZikge1xcbiAgICAgICAgIC8vIFNBRkVUWTogVGhlIGV4aXN0ZW5jZSBvZiBhIHNoYXJlZCByZWZlcmVuY2UgZ3VhcmFudGVlcyB0aGF0IHRoZSByZWZjb3VudCBpcyBub24temVyby5cXG4tICAgICAgICB1bnNhZmUgeyBiaW5kaW5nczo6aTJjX2dldF9hZGFwdGVyKHNlbGYuaW5kZXgoKSkgfTtcXG4rICAgICAgICB1bnNhZmUgeyBiaW5kaW5nczo6aTJjX2dldF9hZGFwdGVyKG9iai5pbmRleCgpKSB9O1xcbiAgICAgfVxcbiBcXG4gICAgIHVuc2FmZSBmbiBkZWNfcmVmKG9iajogTm9uTnVsbFxcdTAwM2NTZWxmXFx1MDAzZSkge1xcbkBAIC01MDEsOSArNTAxLDkgQEAgdW5zYWZlIGltcGxcXHUwMDNjQ3R4OiBkZXZpY2U6OkRldmljZUNvbnRleHRcXHUwMDNlIGRldmljZTo6QXNCdXNEZXZpY2VcXHUwMDNjQ3R4XFx1MDAzZSBmb3IgSTJjQ2xpZW50XFx1MDAzY0NcXG4gXFxuIC8vIFNBRkVUWTogSW5zdGFuY2VzIG9mIGBJMmNDbGllbnRgIGFyZSBhbHdheXMgcmVmZXJlbmNlLWNvdW50ZWQuXFxuIHVuc2FmZSBpbXBsIEFsd2F5c1JlZkNvdW50ZWQgZm9yIEkyY0NsaWVudCB7XFxuLSAgICBmbiBpbmNfcmVmKFxcdTAwMjZzZWxmKSB7XFxuKyAgICBmbiBpbmNfcmVmKG9iajogXFx1MDAyNlNlbGYpIHtcXG4gICAgICAgICAvLyBTQUZFVFk6IFRoZSBleGlzdGVuY2Ugb2YgYSBzaGFyZWQgcmVmZXJlbmNlIGd1YXJhbnRlZXMgdGhhdCB0aGUgcmVmY291bnQgaXMgbm9uLXplcm8uXFxuLSAgICAgICAgdW5zYWZlIHsgYmluZGluZ3M6OmdldF9kZXZpY2Uoc2VsZi5hc19yZWYoKS5hc19yYXcoKSkgfTtcXG4rICAgICAgICB1bnNhZmUgeyBiaW5kaW5nczo6Z2V0X2RldmljZShvYmouYXNfcmVmKCkuYXNfcmF3KCkpIH07XFxuICAgICB9XFxuIFxcbiAgICAgdW5zYWZlIGZuIGRlY19yZWYob2JqOiBOb25OdWxsXFx1MDAzY1NlbGZcXHUwMDNlKSB7XFxuZGlmZiAtLWdpdCBhL3J1c3Qva2VybmVsL21tLnJzIGIvcnVzdC9rZXJuZWwvbW0ucnNcXG5pbmRleCA0NzY0ZDdiNjhmMmE3Zi4uYzk1NWNiZDg4NGI4YjcgMTAwNjQ0XFxuLS0tIGEvcnVzdC9rZXJuZWwvbW0ucnNcXG4rKysgYi9ydXN0L2tlcm5lbC9tbS5yc1xcbkBAIC01Nyw5ICs1Nyw5IEBAIHVuc2FmZSBpbXBsIFN5bmMgZm9yIE1tIHt9XFxuIC8vIFNBRkVUWTogQnkgdGhlIHR5cGUgaW52YXJpYW50cywgdGhpcyB0eXBlIGlzIGFsd2F5cyByZWZjb3VudGVkLlxcbiB1bnNhZmUgaW1wbCBBbHdheXNSZWZDb3VudGVkIGZvciBNbSB7XFxuICAgICAjW2lubGluZV1cXG4tICAgIGZuIGluY19yZWYoXFx1MDAyNnNlbGYpIHtcXG4rICAgIGZuIGluY19yZWYob2JqOiBcXHUwMDI2U2VsZikge1xcbiAgICAgICAgIC8vIFNBRkVUWTogVGhlIHBvaW50ZXIgaXMgdmFsaWQgc2luY2Ugc2VsZiBpcyBhIHJlZmVyZW5jZS5cXG4tICAgICAgICB1bnNhZmUgeyBiaW5kaW5nczo6bW1ncmFiKHNlbGYuYXNfcmF3KCkpIH07XFxuKyAgICAgICAgdW5zYWZlIHsgYmluZGluZ3M6Om1tZ3JhYihvYmouYXNfcmF3KCkpIH07XFxuICAgICB9XFxuIFxcbiAgICAgI1tpbmxpbmVdXFxuQEAgLTkzLDkgKzkzLDkgQEAgdW5zYWZlIGltcGwgU3luYyBmb3IgTW1XaXRoVXNlciB7fVxcbiAvLyBTQUZFVFk6IEJ5IHRoZSB0eXBlIGludmFyaWFudHMsIHRoaXMgdHlwZSBpcyBhbHdheXMgcmVmY291bnRlZC5cXG4gdW5zYWZlIGltcGwgQWx3YXlzUmVmQ291bnRlZCBmb3IgTW1XaXRoVXNlciB7XFxuICAgICAjW2lubGluZV1cXG4tICAgIGZuIGluY19yZWYoXFx1MDAyNnNlbGYpIHtcXG4rICAgIGZuIGluY19yZWYob2JqOiBcXHUwMDI2U2VsZikge1xcbiAgICAgICAgIC8vIFNBRkVUWTogVGhlIHBvaW50ZXIgaXMgdmFsaWQgc2luY2Ugc2VsZiBpcyBhIHJlZmVyZW5jZS5cXG4tICAgICAgICB1bnNhZmUgeyBiaW5kaW5nczo6bW1nZXQoc2VsZi5hc19yYXcoKSkgfTtcXG4rICAgICAgICB1bnNhZmUgeyBiaW5kaW5nczo6bW1nZXQob2JqLmFzX3JhdygpKSB9O1xcbiAgICAgfVxcbiBcXG4gICAgICNbaW5saW5lXVxcbmRpZmYgLS1naXQgYS9ydXN0L2tlcm5lbC9tbS9tbXB1dF9hc3luYy5ycyBiL3J1c3Qva2VybmVsL21tL21tcHV0X2FzeW5jLnJzXFxuaW5kZXggYjhkMmYwNTEyMjVjNzMuLjdkZjQwNzc3NjU0Y2U3IDEwMDY0NFxcbi0tLSBhL3J1c3Qva2VybmVsL21tL21tcHV0X2FzeW5jLnJzXFxuKysrIGIvcnVzdC9rZXJuZWwvbW0vbW1wdXRfYXN5bmMucnNcXG5AQCAtMzYsOSArMzYsOSBAQCB1bnNhZmUgaW1wbCBTeW5jIGZvciBNbVdpdGhVc2VyQXN5bmMge31cXG4gLy8gU0FGRVRZOiBCeSB0aGUgdHlwZSBpbnZhcmlhbnRzLCB0aGlzIHR5cGUgaXMgYWx3YXlzIHJlZmNvdW50ZWQuXFxuIHVuc2FmZSBpbXBsIEFsd2F5c1JlZkNvdW50ZWQgZm9yIE1tV2l0aFVzZXJBc3luYyB7XFxuICAgICAjW2lubGluZV1cXG4tICAgIGZuIGluY19yZWYoXFx1MDAyNnNlbGYpIHtcXG4rICAgIGZuIGluY19yZWYob2JqOiBcXHUwMDI2U2VsZikge1xcbiAgICAgICAgIC8vIFNBRkVUWTogVGhlIHBvaW50ZXIgaXMgdmFsaWQgc2luY2Ugc2VsZiBpcyBhIHJlZmVyZW5jZS5cXG4tICAgICAgICB1bnNhZmUgeyBiaW5kaW5nczo6bW1nZXQoc2VsZi5hc19yYXcoKSkgfTtcXG4rICAgICAgICB1bnNhZmUgeyBiaW5kaW5nczo6bW1nZXQob2JqLmFzX3JhdygpKSB9O1xcbiAgICAgfVxcbiBcXG4gICAgICNbaW5saW5lXVxcbmRpZmYgLS1naXQgYS9ydXN0L2tlcm5lbC9wY2kucnMgYi9ydXN0L2tlcm5lbC9wY2kucnNcXG5pbmRleCA1MDcxY2FlNjU0M2ZkMi4uMGYxNmNmMGRhM2Q3NTYgMTAwNjQ0XFxuLS0tIGEvcnVzdC9rZXJuZWwvcGNpLnJzXFxuKysrIGIvcnVzdC9rZXJuZWwvcGNpLnJzXFxuQEAgLTQ4Miw5ICs0ODIsOSBAQCBpbXBsXFx1MDAzYydhXFx1MDAzZSBjcmF0ZTo6ZG1hOjpEZXZpY2VcXHUwMDNjJ2FcXHUwMDNlIGZvciBEZXZpY2VcXHUwMDNjZGV2aWNlOjpDb3JlXFx1MDAzYydhXFx1MDAzZVxcdTAwM2Uge31cXG4gXFxuIC8vIFNBRkVUWTogSW5zdGFuY2VzIG9mIGBEZXZpY2VgIGFyZSBhbHdheXMgcmVmZXJlbmNlLWNvdW50ZWQuXFxuIHVuc2FmZSBpbXBsIGNyYXRlOjpzeW5jOjphcmVmOjpBbHdheXNSZWZDb3VudGVkIGZvciBEZXZpY2Uge1xcbi0gICAgZm4gaW5jX3JlZihcXHUwMDI2c2VsZikge1xcbisgICAgZm4gaW5jX3JlZihvYmo6IFxcdTAwMjZTZWxmKSB7XFxuICAgICAgICAgLy8gU0FGRVRZOiBUaGUgZXhpc3RlbmNlIG9mIGEgc2hhcmVkIHJlZmVyZW5jZSBndWFyYW50ZWVzIHRoYXQgdGhlIHJlZmNvdW50IGlzIG5vbi16ZXJvLlxcbi0gICAgICAgIHVuc2FmZSB7IGJpbmRpbmdzOjpwY2lfZGV2X2dldChzZWxmLmFzX3JhdygpKSB9O1xcbisgICAgICAgIHVuc2FmZSB7IGJpbmRpbmdzOjpwY2lfZGV2X2dldChvYmouYXNfcmF3KCkpIH07XFxuICAgICB9XFxuIFxcbiAgICAgdW5zYWZlIGZuIGRlY19yZWYob2JqOiBOb25OdWxsXFx1MDAzY1NlbGZcXHUwMDNlKSB7XFxuZGlmZiAtLWdpdCBhL3J1c3Qva2VybmVsL3BpZF9uYW1lc3BhY2UucnMgYi9ydXN0L2tlcm5lbC9waWRfbmFtZXNwYWNlLnJzXFxuaW5kZXggOTc5YTk3MThmMTUzZDguLjM4MWM5Zjk4MGIxZmM0IDEwMDY0NFxcbi0tLSBhL3J1c3Qva2VybmVsL3BpZF9uYW1lc3BhY2UucnNcXG4rKysgYi9ydXN0L2tlcm5lbC9waWRfbmFtZXNwYWNlLnJzXFxuQEAgLTQzLDkgKzQzLDkgQEAgcHViIHVuc2FmZSBmbiBmcm9tX3B0clxcdTAwM2MnYVxcdTAwM2UocHRyOiAqY29uc3QgYmluZGluZ3M6OnBpZF9uYW1lc3BhY2UpIC1cXHUwMDNlIFxcdTAwMjYnYSBTZWxmIHtcXG4gLy8gU0FGRVRZOiBJbnN0YW5jZXMgb2YgYFBpZE5hbWVzcGFjZWAgYXJlIGFsd2F5cyByZWZlcmVuY2UtY291bnRlZC5cXG4gdW5zYWZlIGltcGwgQWx3YXlzUmVmQ291bnRlZCBmb3IgUGlkTmFtZXNwYWNlIHtcXG4gICAgICNbaW5saW5lXVxcbi0gICAgZm4gaW5jX3JlZihcXHUwMDI2c2VsZikge1xcbisgICAgZm4gaW5jX3JlZihvYmo6IFxcdTAwMjZTZWxmKSB7XFxuICAgICAgICAgLy8gU0FGRVRZOiBUaGUgZXhpc3RlbmNlIG9mIGEgc2hhcmVkIHJlZmVyZW5jZSBtZWFucyB0aGF0IHRoZSByZWZjb3VudCBpcyBub256ZXJvLlxcbi0gICAgICAgIHVuc2FmZSB7IGJpbmRpbmdzOjpnZXRfcGlkX25zKHNlbGYuYXNfcHRyKCkpIH07XFxuKyAgICAgICAgdW5zYWZlIHsgYmluZGluZ3M6OmdldF9waWRfbnMob2JqLmFzX3B0cigpKSB9O1xcbiAgICAgfVxcbiBcXG4gICAgICNbaW5saW5lXVxcbmRpZmYgLS1naXQgYS9ydXN0L2tlcm5lbC9wbGF0Zm9ybS5ycyBiL3J1c3Qva2VybmVsL3BsYXRmb3JtLnJzXFxuaW5kZXggOWIzNjJlMDQ5NWQzMjMuLjg1MDY4YWU1YTQwNWVjIDEwMDY0NFxcbi0tLSBhL3J1c3Qva2VybmVsL3BsYXRmb3JtLnJzXFxuKysrIGIvcnVzdC9rZXJuZWwvcGxhdGZvcm0ucnNcXG5AQCAtNTE5LDkgKzUxOSw5IEBAIGltcGxcXHUwMDNjJ2FcXHUwMDNlIGNyYXRlOjpkbWE6OkRldmljZVxcdTAwM2MnYVxcdTAwM2UgZm9yIERldmljZVxcdTAwM2NkZXZpY2U6OkNvcmVcXHUwMDNjJ2FcXHUwMDNlXFx1MDAzZSB7fVxcbiBcXG4gLy8gU0FGRVRZOiBJbnN0YW5jZXMgb2YgYERldmljZWAgYXJlIGFsd2F5cyByZWZlcmVuY2UtY291bnRlZC5cXG4gdW5zYWZlIGltcGwgY3JhdGU6OnN5bmM6OmFyZWY6OkFsd2F5c1JlZkNvdW50ZWQgZm9yIERldmljZSB7XFxuLSAgICBmbiBpbmNfcmVmKFxcdTAwMjZzZWxmKSB7XFxuKyAgICBmbiBpbmNfcmVmKG9iajogXFx1MDAyNlNlbGYpIHtcXG4gICAgICAgICAvLyBTQUZFVFk6IFRoZSBleGlzdGVuY2Ugb2YgYSBzaGFyZWQgcmVmZXJlbmNlIGd1YXJhbnRlZXMgdGhhdCB0aGUgcmVmY291bnQgaXMgbm9uLXplcm8uXFxuLSAgICAgICAgdW5zYWZlIHsgYmluZGluZ3M6OmdldF9kZXZpY2Uoc2VsZi5hc19yZWYoKS5hc19yYXcoKSkgfTtcXG4rICAgICAgICB1bnNhZmUgeyBiaW5kaW5nczo6Z2V0X2RldmljZShvYmouYXNfcmVmKCkuYXNfcmF3KCkpIH07XFxuICAgICB9XFxuIFxcbiAgICAgdW5zYWZlIGZuIGRlY19yZWYob2JqOiBOb25OdWxsXFx1MDAzY1NlbGZcXHUwMDNlKSB7XFxuZGlmZiAtLWdpdCBhL3J1c3Qva2VybmVsL3N5bmMvYXJlZi5ycyBiL3J1c3Qva2VybmVsL3N5bmMvYXJlZi5yc1xcbmluZGV4IGI3MjFiMmUwMGI5ODZmLi4yYWUyMTMwZDViYjFkZCAxMDA2NDRcXG4tLS0gYS9ydXN0L2tlcm5lbC9zeW5jL2FyZWYucnNcXG4rKysgYi9ydXN0L2tlcm5lbC9zeW5jL2FyZWYucnNcXG5AQCAtNDQsNyArNDQsMTAgQEBcXG4gLy8vIGFsaXZlLilcXG4gcHViIHVuc2FmZSB0cmFpdCBBbHdheXNSZWZDb3VudGVkIHtcXG4gICAgIC8vLyBJbmNyZW1lbnRzIHRoZSByZWZlcmVuY2UgY291bnQgb24gdGhlIG9iamVjdC5cXG4tICAgIGZuIGluY19yZWYoXFx1MDAyNnNlbGYpO1xcbisgICAgLy8vXFxuKyAgICAvLy8gVGhpcyBmdW5jdGlvbiBzaG91bGQgbm90IGJlIGNhbGxlZCBhY2NpZGVudGFsbHk7IGEgdHlwZSBtaWdodCBkZWNsYXJlIHRoZWlyIG93biBgaW5jX3JlZmBcXG4rICAgIC8vLyBmdW5jdGlvbiBhbmQgaXQgc2hvdWxkbid0IGJlIGNvbmZ1c2VkIHdpdGggdGhpcyBvbmUuXFxuKyAgICBmbiBpbmNfcmVmKG9iajogXFx1MDAyNlNlbGYpO1xcbiBcXG4gICAgIC8vLyBEZWNyZW1lbnRzIHRoZSByZWZlcmVuY2UgY291bnQgb24gdGhlIG9iamVjdC5cXG4gICAgIC8vL1xcbkBAIC0xNDUsNyArMTQ4LDcgQEAgcHViIGZuIGludG9fcmF3KG1lOiBTZWxmKSAtXFx1MDAzZSBOb25OdWxsXFx1MDAzY1RcXHUwMDNlIHtcXG4gXFxuIGltcGxcXHUwMDNjVDogQWx3YXlzUmVmQ291bnRlZFxcdTAwM2UgQ2xvbmUgZm9yIEFSZWZcXHUwMDNjVFxcdTAwM2Uge1xcbiAgICAgZm4gY2xvbmUoXFx1MDAyNnNlbGYpIC1cXHUwMDNlIFNlbGYge1xcbi0gICAgICAgIHNlbGYuaW5jX3JlZigpO1xcbisgICAgICAgIFQ6OmluY19yZWYoc2VsZik7XFxuICAgICAgICAgLy8gU0FGRVRZOiBXZSBqdXN0IGluY3JlbWVudGVkIHRoZSByZWZjb3VudCBhYm92ZS5cXG4gICAgICAgICB1bnNhZmUgeyBTZWxmOjpmcm9tX3JhdyhzZWxmLnB0cikgfVxcbiAgICAgfVxcbkBAIC0xNjIsNyArMTY1LDcgQEAgZm4gZGVyZWYoXFx1MDAyNnNlbGYpIC1cXHUwMDNlIFxcdTAwMjZTZWxmOjpUYXJnZXQge1xcbiBcXG4gaW1wbFxcdTAwM2NUOiBBbHdheXNSZWZDb3VudGVkXFx1MDAzZSBGcm9tXFx1MDAzY1xcdTAwMjZUXFx1MDAzZSBmb3IgQVJlZlxcdTAwM2NUXFx1MDAzZSB7XFxuICAgICBmbiBmcm9tKGI6IFxcdTAwMjZUKSAtXFx1MDAzZSBTZWxmIHtcXG4tICAgICAgICBiLmluY19yZWYoKTtcXG4rICAgICAgICBUOjppbmNfcmVmKGIpO1xcbiAgICAgICAgIC8vIFNBRkVUWTogV2UganVzdCBpbmNyZW1lbnRlZCB0aGUgcmVmY291bnQgYWJvdmUuXFxuICAgICAgICAgdW5zYWZlIHsgU2VsZjo6ZnJvbV9yYXcoTm9uTnVsbDo6ZnJvbShiKSkgfVxcbiAgICAgfVxcbmRpZmYgLS1naXQgYS9ydXN0L2tlcm5lbC90YXNrLnJzIGIvcnVzdC9rZXJuZWwvdGFzay5yc1xcbmluZGV4IDM4MjczZjRlZWRiNTEzLi5hNzcxMWUxNTU4YzJmNSAxMDA2NDRcXG4tLS0gYS9ydXN0L2tlcm5lbC90YXNrLnJzXFxuKysrIGIvcnVzdC9rZXJuZWwvdGFzay5yc1xcbkBAIC0zNDksOSArMzQ5LDkgQEAgcHViIGZuIGdyb3VwX2xlYWRlcihcXHUwMDI2c2VsZikgLVxcdTAwM2UgXFx1MDAyNlRhc2sge1xcbiAvLyBTQUZFVFk6IFRoZSB0eXBlIGludmFyaWFudHMgZ3VhcmFudGVlIHRoYXQgYFRhc2tgIGlzIGFsd2F5cyByZWZjb3VudGVkLlxcbiB1bnNhZmUgaW1wbCBjcmF0ZTo6c3luYzo6YXJlZjo6QWx3YXlzUmVmQ291bnRlZCBmb3IgVGFzayB7XFxuICAgICAjW2lubGluZV1cXG4tICAgIGZuIGluY19yZWYoXFx1MDAyNnNlbGYpIHtcXG4rICAgIGZuIGluY19yZWYob2JqOiBcXHUwMDI2U2VsZikge1xcbiAgICAgICAgIC8vIFNBRkVUWTogVGhlIGV4aXN0ZW5jZSBvZiBhIHNoYXJlZCByZWZlcmVuY2UgbWVhbnMgdGhhdCB0aGUgcmVmY291bnQgaXMgbm9uemVyby5cXG4tICAgICAgICB1bnNhZmUgeyBiaW5kaW5nczo6Z2V0X3Rhc2tfc3RydWN0KHNlbGYuYXNfcHRyKCkpIH07XFxuKyAgICAgICAgdW5zYWZlIHsgYmluZGluZ3M6OmdldF90YXNrX3N0cnVjdChvYmouYXNfcHRyKCkpIH07XFxuICAgICB9XFxuIFxcbiAgICAgI1tpbmxpbmVdXFxuZGlmZiAtLWdpdCBhL3J1c3Qva2VybmVsL3VzYi5ycyBiL3J1c3Qva2VybmVsL3VzYi5yc1xcbmluZGV4IDdhZmYwYzgyZDBhZmMwLi5jMDM5MDU5YzE4OTEzYyAxMDA2NDRcXG4tLS0gYS9ydXN0L2tlcm5lbC91c2IucnNcXG4rKysgYi9ydXN0L2tlcm5lbC91c2IucnNcXG5AQCAtMzkzLDExICszOTMsMTEgQEAgZm4gYXNfcmVmKFxcdTAwMjZzZWxmKSAtXFx1MDAzZSBcXHUwMDI2RGV2aWNlIHtcXG4gXFxuIC8vIFNBRkVUWTogSW5zdGFuY2VzIG9mIGBJbnRlcmZhY2VgIGFyZSBhbHdheXMgcmVmZXJlbmNlLWNvdW50ZWQuXFxuIHVuc2FmZSBpbXBsIEFsd2F5c1JlZkNvdW50ZWQgZm9yIEludGVyZmFjZSB7XFxuLSAgICBmbiBpbmNfcmVmKFxcdTAwMjZzZWxmKSB7XFxuKyAgICBmbiBpbmNfcmVmKG9iajogXFx1MDAyNlNlbGYpIHtcXG4gICAgICAgICAvLyBTQUZFVFk6IFRoZSBpbnZhcmlhbnRzIG9mIGBJbnRlcmZhY2VgIGd1YXJhbnRlZSB0aGF0IGBzZWxmLmFzX3JhdygpYFxcbiAgICAgICAgIC8vIHJldHVybnMgYSB2YWxpZCBgc3RydWN0IHVzYl9pbnRlcmZhY2VgIHBvaW50ZXIsIGZvciB3aGljaCB3ZSB3aWxsXFxuICAgICAgICAgLy8gYWNxdWlyZSBhIG5ldyByZWZjb3VudC5cXG4tICAgICAgICB1bnNhZmUgeyBiaW5kaW5nczo6dXNiX2dldF9pbnRmKHNlbGYuYXNfcmF3KCkpIH07XFxuKyAgICAgICAgdW5zYWZlIHsgYmluZGluZ3M6OnVzYl9nZXRfaW50ZihvYmouYXNfcmF3KCkpIH07XFxuICAgICB9XFxuIFxcbiAgICAgdW5zYWZlIGZuIGRlY19yZWYob2JqOiBOb25OdWxsXFx1MDAzY1NlbGZcXHUwMDNlKSB7XFxuQEAgLTQ0NCwxMSArNDQ0LDExIEBAIGZuIGFzX3JhdyhcXHUwMDI2c2VsZikgLVxcdTAwM2UgKm11dCBiaW5kaW5nczo6dXNiX2RldmljZSB7XFxuIFxcbiAvLyBTQUZFVFk6IEluc3RhbmNlcyBvZiBgRGV2aWNlYCBhcmUgYWx3YXlzIHJlZmVyZW5jZS1jb3VudGVkLlxcbiB1bnNhZmUgaW1wbCBBbHdheXNSZWZDb3VudGVkIGZvciBEZXZpY2Uge1xcbi0gICAgZm4gaW5jX3JlZihcXHUwMDI2c2VsZikge1xcbisgICAgZm4gaW5jX3JlZihvYmo6IFxcdTAwMjZTZWxmKSB7XFxuICAgICAgICAgLy8gU0FGRVRZOiBUaGUgaW52YXJpYW50cyBvZiBgRGV2aWNlYCBndWFyYW50ZWUgdGhhdCBgc2VsZi5hc19yYXcoKWBcXG4gICAgICAgICAvLyByZXR1cm5zIGEgdmFsaWQgYHN0cnVjdCB1c2JfZGV2aWNlYCBwb2ludGVyLCBmb3Igd2hpY2ggd2Ugd2lsbFxcbiAgICAgICAgIC8vIGFjcXVpcmUgYSBuZXcgcmVmY291bnQuXFxuLSAgICAgICAgdW5zYWZlIHsgYmluZGluZ3M6OnVzYl9nZXRfZGV2KHNlbGYuYXNfcmF3KCkpIH07XFxuKyAgICAgICAgdW5zYWZlIHsgYmluZGluZ3M6OnVzYl9nZXRfZGV2KG9iai5hc19yYXcoKSkgfTtcXG4gICAgIH1cXG4gXFxuICAgICB1bnNhZmUgZm4gZGVjX3JlZihvYmo6IE5vbk51bGxcXHUwMDNjU2VsZlxcdTAwM2UpIHtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDYtMjhUMDk6NTI6MDYuODE4NzY2NDRaIiwiU2VxIjoyLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWdlbnQiLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjc3ODUyOTYxNjIsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogbnVsbCxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGlzIGEgcHVyZWx5IHN5bnRhY3RpYyByZWZhY3RvcmluZyBpbiB0aGUgUnVzdCBrZXJuZWwgYmluZGluZ3MuIEl0IGNoYW5nZXMgdGhlIHNpZ25hdHVyZSBvZiB0aGUgYGluY19yZWZgIG1ldGhvZCBpbiB0aGUgYEFsd2F5c1JlZkNvdW50ZWRgIHRyYWl0IGZyb20gYGZuIGluY19yZWYoXFx1MDAyNnNlbGYpYCB0byBgZm4gaW5jX3JlZihvYmo6IFxcdTAwMjZTZWxmKWAgdG8gcHJldmVudCBhY2NpZGVudGFsIG1ldGhvZCByZXNvbHV0aW9uIGNvbmZsaWN0cy4gSXQgZG9lcyBub3QgYWx0ZXIgYW55IGZ1bmN0aW9uYWwgbG9naWMgb3IgZXhlY3V0aW9uIGZsb3cgaW4gdGhlIGtlcm5lbC5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJJbnN0cnVjdGlvbiI6IllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLlxuWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmVcbmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC5cblxuSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluXG55b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHlcbnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuXG5cblJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6XG4tIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuXG4tIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLlxuLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuXG4tIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSxcbmV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS5cblxuSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaFxudG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuXG5cbldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOlxuMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy5cbiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLlxuMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuXG4gICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuXG4gICBEbyBub3QgbGlzdCB0b28gZ2VuZXJpYyBjb25maWdzICh3ZSBhbHJlYWR5IGhhdmUgdGhlbSBlbmFibGVkKS4gT25seSBsaXN0IHRob3NlIHRoYXRcbiAgIHNwZWNpZmljYWxseSBjb3ZlciB0aGUgbW9kaWZpZWQgY29kZS4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzIG91dHB1dCBhcnJheSxcbiAgIGFuZCBETyBOT1QgYWRkIGEgJ0NPTkZJR18nIHByZWZpeCAoZS5nLiwgcmV0dXJuIFwiTkVUX0lQVjRcIiBpbnN0ZWFkIG9mIFwiQ09ORklHX05FVF9JUFY0XCIpLlxuUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuXG5cblxuVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy5cbkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LlxuSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLlxuIiwiUHJvbXB0IjoiRm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6XG5jb21taXQgNmYwNTE1MjVkOTgzNjNlMTBhNWQ4OTNhMjE4YzU1MmVmYTE3YmY4MlxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBTdW4gSnVuIDI4IDA5OjUyOjA1IDIwMjYgKzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvcnVzdC9rZXJuZWwvYXV4aWxpYXJ5LnJzIGIvcnVzdC9rZXJuZWwvYXV4aWxpYXJ5LnJzXG5pbmRleCBjNDI5MjhkNWEyMzkzZi4uNzVhNjFiNTFjZjc5OGQgMTAwNjQ0XG4tLS0gYS9ydXN0L2tlcm5lbC9hdXhpbGlhcnkucnNcbisrKyBiL3J1c3Qva2VybmVsL2F1eGlsaWFyeS5yc1xuQEAgLTM0NSw5ICszNDUsOSBAQCB1bnNhZmUgaW1wbFx1MDAzY0N0eDogZGV2aWNlOjpEZXZpY2VDb250ZXh0XHUwMDNlIGRldmljZTo6QXNCdXNEZXZpY2VcdTAwM2NDdHhcdTAwM2UgZm9yIERldmljZVx1MDAzY0N0eFx1MDAzZVxuIFxuIC8vIFNBRkVUWTogSW5zdGFuY2VzIG9mIGBEZXZpY2VgIGFyZSBhbHdheXMgcmVmZXJlbmNlLWNvdW50ZWQuXG4gdW5zYWZlIGltcGwgY3JhdGU6OnN5bmM6OmFyZWY6OkFsd2F5c1JlZkNvdW50ZWQgZm9yIERldmljZSB7XG4tICAgIGZuIGluY19yZWYoXHUwMDI2c2VsZikge1xuKyAgICBmbiBpbmNfcmVmKG9iajogXHUwMDI2U2VsZikge1xuICAgICAgICAgLy8gU0FGRVRZOiBUaGUgZXhpc3RlbmNlIG9mIGEgc2hhcmVkIHJlZmVyZW5jZSBndWFyYW50ZWVzIHRoYXQgdGhlIHJlZmNvdW50IGlzIG5vbi16ZXJvLlxuLSAgICAgICAgdW5zYWZlIHsgYmluZGluZ3M6OmdldF9kZXZpY2Uoc2VsZi5hc19yZWYoKS5hc19yYXcoKSkgfTtcbisgICAgICAgIHVuc2FmZSB7IGJpbmRpbmdzOjpnZXRfZGV2aWNlKG9iai5hc19yZWYoKS5hc19yYXcoKSkgfTtcbiAgICAgfVxuIFxuICAgICB1bnNhZmUgZm4gZGVjX3JlZihvYmo6IE5vbk51bGxcdTAwM2NTZWxmXHUwMDNlKSB7XG5kaWZmIC0tZ2l0IGEvcnVzdC9rZXJuZWwvYmxvY2svbXEvcmVxdWVzdC5ycyBiL3J1c3Qva2VybmVsL2Jsb2NrL21xL3JlcXVlc3QucnNcbmluZGV4IGNlM2UzMGM4MWNiNWVkLi5mNDFkMDFlYTQ1OTUxYyAxMDA2NDRcbi0tLSBhL3J1c3Qva2VybmVsL2Jsb2NrL21xL3JlcXVlc3QucnNcbisrKyBiL3J1c3Qva2VybmVsL2Jsb2NrL21xL3JlcXVlc3QucnNcbkBAIC0yMzQsOCArMjM0LDggQEAgdW5zYWZlIGltcGxcdTAwM2NUOiBPcGVyYXRpb25zXHUwMDNlIFN5bmMgZm9yIFJlcXVlc3RcdTAwM2NUXHUwMDNlIHt9XG4gLy8ga2VlcHMgdGhlIG9iamVjdCBhbGl2ZSBpbiBtZW1vcnkgYXQgbGVhc3QgdW50aWwgYSBtYXRjaGluZyByZWZlcmVuY2UgY291bnRcbiAvLyBkZWNyZW1lbnQgaXMgZXhlY3V0ZWQuXG4gdW5zYWZlIGltcGxcdTAwM2NUOiBPcGVyYXRpb25zXHUwMDNlIEFsd2F5c1JlZkNvdW50ZWQgZm9yIFJlcXVlc3RcdTAwM2NUXHUwMDNlIHtcbi0gICAgZm4gaW5jX3JlZihcdTAwMjZzZWxmKSB7XG4tICAgICAgICBzZWxmLndyYXBwZXJfcmVmKCkucmVmY291bnQoKS5pbmMoKTtcbisgICAgZm4gaW5jX3JlZihvYmo6IFx1MDAyNlNlbGYpIHtcbisgICAgICAgIG9iai53cmFwcGVyX3JlZigpLnJlZmNvdW50KCkuaW5jKCk7XG4gICAgIH1cbiBcbiAgICAgdW5zYWZlIGZuIGRlY19yZWYob2JqOiBjb3JlOjpwdHI6Ok5vbk51bGxcdTAwM2NTZWxmXHUwMDNlKSB7XG5kaWZmIC0tZ2l0IGEvcnVzdC9rZXJuZWwvY3JlZC5ycyBiL3J1c3Qva2VybmVsL2NyZWQucnNcbmluZGV4IGZmYTE1NmI5ZGYzNzdlLi5kNTNjYmM3OTJmYTNhOSAxMDA2NDRcbi0tLSBhL3J1c3Qva2VybmVsL2NyZWQucnNcbisrKyBiL3J1c3Qva2VybmVsL2NyZWQucnNcbkBAIC03OCw5ICs3OCw5IEBAIHB1YiBmbiBldWlkKFx1MDAyNnNlbGYpIC1cdTAwM2UgS3VpZCB7XG4gLy8gU0FGRVRZOiBUaGUgdHlwZSBpbnZhcmlhbnRzIGd1YXJhbnRlZSB0aGF0IGBDcmVkZW50aWFsYCBpcyBhbHdheXMgcmVmLWNvdW50ZWQuXG4gdW5zYWZlIGltcGwgQWx3YXlzUmVmQ291bnRlZCBmb3IgQ3JlZGVudGlhbCB7XG4gICAgICNbaW5saW5lXVxuLSAgICBmbiBpbmNfcmVmKFx1MDAyNnNlbGYpIHtcbisgICAgZm4gaW5jX3JlZihvYmo6IFx1MDAyNlNlbGYpIHtcbiAgICAgICAgIC8vIFNBRkVUWTogVGhlIGV4aXN0ZW5jZSBvZiBhIHNoYXJlZCByZWZlcmVuY2UgbWVhbnMgdGhhdCB0aGUgcmVmY291bnQgaXMgbm9uemVyby5cbi0gICAgICAgIHVuc2FmZSB7IGJpbmRpbmdzOjpnZXRfY3JlZChzZWxmLjAuZ2V0KCkpIH07XG4rICAgICAgICB1bnNhZmUgeyBiaW5kaW5nczo6Z2V0X2NyZWQob2JqLjAuZ2V0KCkpIH07XG4gICAgIH1cbiBcbiAgICAgI1tpbmxpbmVdXG5kaWZmIC0tZ2l0IGEvcnVzdC9rZXJuZWwvZGV2aWNlLnJzIGIvcnVzdC9rZXJuZWwvZGV2aWNlLnJzXG5pbmRleCA2NDVhZmM0OWEyN2Q2NC4uZWM0NGRjYzQwNWQ1MTEgMTAwNjQ0XG4tLS0gYS9ydXN0L2tlcm5lbC9kZXZpY2UucnNcbisrKyBiL3J1c3Qva2VybmVsL2RldmljZS5yc1xuQEAgLTQ0OSw5ICs0NDksOSBAQCBwdWIgZm4gbmFtZShcdTAwMjZzZWxmKSAtXHUwMDNlIFx1MDAyNkNTdHIge1xuIFxuIC8vIFNBRkVUWTogSW5zdGFuY2VzIG9mIGBEZXZpY2VgIGFyZSBhbHdheXMgcmVmZXJlbmNlLWNvdW50ZWQuXG4gdW5zYWZlIGltcGwgY3JhdGU6OnN5bmM6OmFyZWY6OkFsd2F5c1JlZkNvdW50ZWQgZm9yIERldmljZSB7XG4tICAgIGZuIGluY19yZWYoXHUwMDI2c2VsZikge1xuKyAgICBmbiBpbmNfcmVmKG9iajogXHUwMDI2U2VsZikge1xuICAgICAgICAgLy8gU0FGRVRZOiBUaGUgZXhpc3RlbmNlIG9mIGEgc2hhcmVkIHJlZmVyZW5jZSBndWFyYW50ZWVzIHRoYXQgdGhlIHJlZmNvdW50IGlzIG5vbi16ZXJvLlxuLSAgICAgICAgdW5zYWZlIHsgYmluZGluZ3M6OmdldF9kZXZpY2Uoc2VsZi5hc19yYXcoKSkgfTtcbisgICAgICAgIHVuc2FmZSB7IGJpbmRpbmdzOjpnZXRfZGV2aWNlKG9iai5hc19yYXcoKSkgfTtcbiAgICAgfVxuIFxuICAgICB1bnNhZmUgZm4gZGVjX3JlZihvYmo6IHB0cjo6Tm9uTnVsbFx1MDAzY1NlbGZcdTAwM2UpIHtcbmRpZmYgLS1naXQgYS9ydXN0L2tlcm5lbC9kZXZpY2UvcHJvcGVydHkucnMgYi9ydXN0L2tlcm5lbC9kZXZpY2UvcHJvcGVydHkucnNcbmluZGV4IDVhZWFkODM1ZmJiYzAyLi5jMzljY2MxNDU4Yjk1ZSAxMDA2NDRcbi0tLSBhL3J1c3Qva2VybmVsL2RldmljZS9wcm9wZXJ0eS5yc1xuKysrIGIvcnVzdC9rZXJuZWwvZGV2aWNlL3Byb3BlcnR5LnJzXG5AQCAtMzYxLDEwICszNjEsMTAgQEAgZm4gZm10KFx1MDAyNnNlbGYsIGY6IFx1MDAyNm11dCBmbXQ6OkZvcm1hdHRlclx1MDAzYydfXHUwMDNlKSAtXHUwMDNlIGZtdDo6UmVzdWx0IHtcbiBcbiAvLyBTQUZFVFk6IEluc3RhbmNlcyBvZiBgRndOb2RlYCBhcmUgYWx3YXlzIHJlZmVyZW5jZS1jb3VudGVkLlxuIHVuc2FmZSBpbXBsIGNyYXRlOjpzeW5jOjphcmVmOjpBbHdheXNSZWZDb3VudGVkIGZvciBGd05vZGUge1xuLSAgICBmbiBpbmNfcmVmKFx1MDAyNnNlbGYpIHtcbisgICAgZm4gaW5jX3JlZihvYmo6IFx1MDAyNlNlbGYpIHtcbiAgICAgICAgIC8vIFNBRkVUWTogVGhlIGV4aXN0ZW5jZSBvZiBhIHNoYXJlZCByZWZlcmVuY2UgZ3VhcmFudGVlcyB0aGF0IHRoZVxuICAgICAgICAgLy8gcmVmY291bnQgaXMgbm9uLXplcm8uXG4tICAgICAgICB1bnNhZmUgeyBiaW5kaW5nczo6Zndub2RlX2hhbmRsZV9nZXQoc2VsZi5hc19yYXcoKSkgfTtcbisgICAgICAgIHVuc2FmZSB7IGJpbmRpbmdzOjpmd25vZGVfaGFuZGxlX2dldChvYmouYXNfcmF3KCkpIH07XG4gICAgIH1cbiBcbiAgICAgdW5zYWZlIGZuIGRlY19yZWYob2JqOiBwdHI6Ok5vbk51bGxcdTAwM2NTZWxmXHUwMDNlKSB7XG5kaWZmIC0tZ2l0IGEvcnVzdC9rZXJuZWwvZHJtL2RldmljZS5ycyBiL3J1c3Qva2VybmVsL2RybS9kZXZpY2UucnNcbmluZGV4IDQ3N2NmNzcxZmIxMGVmLi4wYzcwZWMwMTBiZDkxMSAxMDA2NDRcbi0tLSBhL3J1c3Qva2VybmVsL2RybS9kZXZpY2UucnNcbisrKyBiL3J1c3Qva2VybmVsL2RybS9kZXZpY2UucnNcbkBAIC0zNjMsOSArMzYzLDkgQEAgZm4gZGVyZWYoXHUwMDI2c2VsZikgLVx1MDAzZSBcdTAwMjZTZWxmOjpUYXJnZXQge1xuIC8vIFNBRkVUWTogRFJNIGRldmljZSBvYmplY3RzIGFyZSBhbHdheXMgcmVmZXJlbmNlIGNvdW50ZWQgYW5kIHRoZSBnZXQvcHV0IGZ1bmN0aW9uc1xuIC8vIHNhdGlzZnkgdGhlIHJlcXVpcmVtZW50cy5cbiB1bnNhZmUgaW1wbFx1MDAzY1Q6IGRybTo6RHJpdmVyLCBDOiBEZXZpY2VDb250ZXh0XHUwMDNlIEFsd2F5c1JlZkNvdW50ZWQgZm9yIERldmljZVx1MDAzY1QsIENcdTAwM2Uge1xuLSAgICBmbiBpbmNfcmVmKFx1MDAyNnNlbGYpIHtcbisgICAgZm4gaW5jX3JlZihvYmo6IFx1MDAyNlNlbGYpIHtcbiAgICAgICAgIC8vIFNBRkVUWTogVGhlIGV4aXN0ZW5jZSBvZiBhIHNoYXJlZCByZWZlcmVuY2UgZ3VhcmFudGVlcyB0aGF0IHRoZSByZWZjb3VudCBpcyBub24temVyby5cbi0gICAgICAgIHVuc2FmZSB7IGJpbmRpbmdzOjpkcm1fZGV2X2dldChzZWxmLmFzX3JhdygpKSB9O1xuKyAgICAgICAgdW5zYWZlIHsgYmluZGluZ3M6OmRybV9kZXZfZ2V0KG9iai5hc19yYXcoKSkgfTtcbiAgICAgfVxuIFxuICAgICB1bnNhZmUgZm4gZGVjX3JlZihvYmo6IE5vbk51bGxcdTAwM2NTZWxmXHUwMDNlKSB7XG5kaWZmIC0tZ2l0IGEvcnVzdC9rZXJuZWwvZHJtL2dlbS9tb2QucnMgYi9ydXN0L2tlcm5lbC9kcm0vZ2VtL21vZC5yc1xuaW5kZXggYzhiNjZkODE2ODcxOTkuLmVlOWU0MTIwNjZhYmI3IDEwMDY0NFxuLS0tIGEvcnVzdC9rZXJuZWwvZHJtL2dlbS9tb2QucnNcbisrKyBiL3J1c3Qva2VybmVsL2RybS9nZW0vbW9kLnJzXG5AQCAtNTIsMTAgKzUyLDEwIEBAIHVuc2FmZSBpbXBsICQoIFx1MDAzYyQoICR0cGFyYW1faWQgKSwrXHUwMDNlICk/ICRjcmF0ZTo6c3luYzo6YXJlZjo6QWx3YXlzUmVmQ291bnRlZCBmb3IgJFxuICAgICAgICAgICAgIFNlbGY6IEludG9HRU1PYmplY3QsXG4gICAgICAgICAgICAgJCggJCggJGJpbmRfcGFyYW0gOiAkYmluZF90cmFpdCApLCsgKT9cbiAgICAgICAgIHtcbi0gICAgICAgICAgICBmbiBpbmNfcmVmKFx1MDAyNnNlbGYpIHtcbisgICAgICAgICAgICBmbiBpbmNfcmVmKG9iajogXHUwMDI2U2VsZikge1xuICAgICAgICAgICAgICAgICAvLyBTQUZFVFk6IFRoZSBleGlzdGVuY2Ugb2YgYSBzaGFyZWQgcmVmZXJlbmNlIGd1YXJhbnRlZXMgdGhhdCB0aGUgcmVmY291bnQgaXNcbiAgICAgICAgICAgICAgICAgLy8gbm9uLXplcm8uXG4tICAgICAgICAgICAgICAgIHVuc2FmZSB7IGJpbmRpbmdzOjpkcm1fZ2VtX29iamVjdF9nZXQoc2VsZi5hc19yYXcoKSkgfTtcbisgICAgICAgICAgICAgICAgdW5zYWZlIHsgYmluZGluZ3M6OmRybV9nZW1fb2JqZWN0X2dldChvYmouYXNfcmF3KCkpIH07XG4gICAgICAgICAgICAgfVxuIFxuICAgICAgICAgICAgIHVuc2FmZSBmbiBkZWNfcmVmKG9iajogY29yZTo6cHRyOjpOb25OdWxsXHUwMDNjU2VsZlx1MDAzZSkge1xuZGlmZiAtLWdpdCBhL3J1c3Qva2VybmVsL2ZzL2ZpbGUucnMgYi9ydXN0L2tlcm5lbC9mcy9maWxlLnJzXG5pbmRleCAyM2VlNjg5YmQyNDAwNS4uOGU1OTY3YWZjZDExZjIgMTAwNjQ0XG4tLS0gYS9ydXN0L2tlcm5lbC9mcy9maWxlLnJzXG4rKysgYi9ydXN0L2tlcm5lbC9mcy9maWxlLnJzXG5AQCAtMTk5LDkgKzE5OSw5IEBAIHVuc2FmZSBpbXBsIFN5bmMgZm9yIEZpbGUge31cbiAvLyBtYWtlcyBgQVJlZlx1MDAzY0ZpbGVcdTAwM2VgIG93biBhIG5vcm1hbCByZWZjb3VudC5cbiB1bnNhZmUgaW1wbCBBbHdheXNSZWZDb3VudGVkIGZvciBGaWxlIHtcbiAgICAgI1tpbmxpbmVdXG4tICAgIGZuIGluY19yZWYoXHUwMDI2c2VsZikge1xuKyAgICBmbiBpbmNfcmVmKG9iajogXHUwMDI2U2VsZikge1xuICAgICAgICAgLy8gU0FGRVRZOiBUaGUgZXhpc3RlbmNlIG9mIGEgc2hhcmVkIHJlZmVyZW5jZSBtZWFucyB0aGF0IHRoZSByZWZjb3VudCBpcyBub256ZXJvLlxuLSAgICAgICAgdW5zYWZlIHsgYmluZGluZ3M6OmdldF9maWxlKHNlbGYuYXNfcHRyKCkpIH07XG4rICAgICAgICB1bnNhZmUgeyBiaW5kaW5nczo6Z2V0X2ZpbGUob2JqLmFzX3B0cigpKSB9O1xuICAgICB9XG4gXG4gICAgICNbaW5saW5lXVxuQEAgLTIzNSw5ICsyMzUsOSBAQCBwdWIgc3RydWN0IExvY2FsRmlsZSB7XG4gLy8gbWFrZXMgYEFSZWZcdTAwM2NMb2NhbEZpbGVcdTAwM2VgIG93biBhIG5vcm1hbCByZWZjb3VudC5cbiB1bnNhZmUgaW1wbCBBbHdheXNSZWZDb3VudGVkIGZvciBMb2NhbEZpbGUge1xuICAgICAjW2lubGluZV1cbi0gICAgZm4gaW5jX3JlZihcdTAwMjZzZWxmKSB7XG4rICAgIGZuIGluY19yZWYob2JqOiBcdTAwMjZTZWxmKSB7XG4gICAgICAgICAvLyBTQUZFVFk6IFRoZSBleGlzdGVuY2Ugb2YgYSBzaGFyZWQgcmVmZXJlbmNlIG1lYW5zIHRoYXQgdGhlIHJlZmNvdW50IGlzIG5vbnplcm8uXG4tICAgICAgICB1bnNhZmUgeyBiaW5kaW5nczo6Z2V0X2ZpbGUoc2VsZi5hc19wdHIoKSkgfTtcbisgICAgICAgIHVuc2FmZSB7IGJpbmRpbmdzOjpnZXRfZmlsZShvYmouYXNfcHRyKCkpIH07XG4gICAgIH1cbiBcbiAgICAgI1tpbmxpbmVdXG5kaWZmIC0tZ2l0IGEvcnVzdC9rZXJuZWwvaTJjLnJzIGIvcnVzdC9rZXJuZWwvaTJjLnJzXG5pbmRleCA2MjRiOTcxY2E4YjBiMi4uMWE5ODgyYTY0YzRiOGUgMTAwNjQ0XG4tLS0gYS9ydXN0L2tlcm5lbC9pMmMucnNcbisrKyBiL3J1c3Qva2VybmVsL2kyYy5yc1xuQEAgLTQyNSw5ICs0MjUsOSBAQCBwdWIgZm4gZ2V0KGluZGV4OiBpMzIpIC1cdTAwM2UgUmVzdWx0XHUwMDNjQVJlZlx1MDAzY1NlbGZcdTAwM2VcdTAwM2Uge1xuIFxuIC8vIFNBRkVUWTogSW5zdGFuY2VzIG9mIGBJMmNBZGFwdGVyYCBhcmUgYWx3YXlzIHJlZmVyZW5jZS1jb3VudGVkLlxuIHVuc2FmZSBpbXBsIEFsd2F5c1JlZkNvdW50ZWQgZm9yIEkyY0FkYXB0ZXIge1xuLSAgICBmbiBpbmNfcmVmKFx1MDAyNnNlbGYpIHtcbisgICAgZm4gaW5jX3JlZihvYmo6IFx1MDAyNlNlbGYpIHtcbiAgICAgICAgIC8vIFNBRkVUWTogVGhlIGV4aXN0ZW5jZSBvZiBhIHNoYXJlZCByZWZlcmVuY2UgZ3VhcmFudGVlcyB0aGF0IHRoZSByZWZjb3VudCBpcyBub24temVyby5cbi0gICAgICAgIHVuc2FmZSB7IGJpbmRpbmdzOjppMmNfZ2V0X2FkYXB0ZXIoc2VsZi5pbmRleCgpKSB9O1xuKyAgICAgICAgdW5zYWZlIHsgYmluZGluZ3M6OmkyY19nZXRfYWRhcHRlcihvYmouaW5kZXgoKSkgfTtcbiAgICAgfVxuIFxuICAgICB1bnNhZmUgZm4gZGVjX3JlZihvYmo6IE5vbk51bGxcdTAwM2NTZWxmXHUwMDNlKSB7XG5AQCAtNTAxLDkgKzUwMSw5IEBAIHVuc2FmZSBpbXBsXHUwMDNjQ3R4OiBkZXZpY2U6OkRldmljZUNvbnRleHRcdTAwM2UgZGV2aWNlOjpBc0J1c0RldmljZVx1MDAzY0N0eFx1MDAzZSBmb3IgSTJjQ2xpZW50XHUwMDNjQ1xuIFxuIC8vIFNBRkVUWTogSW5zdGFuY2VzIG9mIGBJMmNDbGllbnRgIGFyZSBhbHdheXMgcmVmZXJlbmNlLWNvdW50ZWQuXG4gdW5zYWZlIGltcGwgQWx3YXlzUmVmQ291bnRlZCBmb3IgSTJjQ2xpZW50IHtcbi0gICAgZm4gaW5jX3JlZihcdTAwMjZzZWxmKSB7XG4rICAgIGZuIGluY19yZWYob2JqOiBcdTAwMjZTZWxmKSB7XG4gICAgICAgICAvLyBTQUZFVFk6IFRoZSBleGlzdGVuY2Ugb2YgYSBzaGFyZWQgcmVmZXJlbmNlIGd1YXJhbnRlZXMgdGhhdCB0aGUgcmVmY291bnQgaXMgbm9uLXplcm8uXG4tICAgICAgICB1bnNhZmUgeyBiaW5kaW5nczo6Z2V0X2RldmljZShzZWxmLmFzX3JlZigpLmFzX3JhdygpKSB9O1xuKyAgICAgICAgdW5zYWZlIHsgYmluZGluZ3M6OmdldF9kZXZpY2Uob2JqLmFzX3JlZigpLmFzX3JhdygpKSB9O1xuICAgICB9XG4gXG4gICAgIHVuc2FmZSBmbiBkZWNfcmVmKG9iajogTm9uTnVsbFx1MDAzY1NlbGZcdTAwM2UpIHtcbmRpZmYgLS1naXQgYS9ydXN0L2tlcm5lbC9tbS5ycyBiL3J1c3Qva2VybmVsL21tLnJzXG5pbmRleCA0NzY0ZDdiNjhmMmE3Zi4uYzk1NWNiZDg4NGI4YjcgMTAwNjQ0XG4tLS0gYS9ydXN0L2tlcm5lbC9tbS5yc1xuKysrIGIvcnVzdC9rZXJuZWwvbW0ucnNcbkBAIC01Nyw5ICs1Nyw5IEBAIHVuc2FmZSBpbXBsIFN5bmMgZm9yIE1tIHt9XG4gLy8gU0FGRVRZOiBCeSB0aGUgdHlwZSBpbnZhcmlhbnRzLCB0aGlzIHR5cGUgaXMgYWx3YXlzIHJlZmNvdW50ZWQuXG4gdW5zYWZlIGltcGwgQWx3YXlzUmVmQ291bnRlZCBmb3IgTW0ge1xuICAgICAjW2lubGluZV1cbi0gICAgZm4gaW5jX3JlZihcdTAwMjZzZWxmKSB7XG4rICAgIGZuIGluY19yZWYob2JqOiBcdTAwMjZTZWxmKSB7XG4gICAgICAgICAvLyBTQUZFVFk6IFRoZSBwb2ludGVyIGlzIHZhbGlkIHNpbmNlIHNlbGYgaXMgYSByZWZlcmVuY2UuXG4tICAgICAgICB1bnNhZmUgeyBiaW5kaW5nczo6bW1ncmFiKHNlbGYuYXNfcmF3KCkpIH07XG4rICAgICAgICB1bnNhZmUgeyBiaW5kaW5nczo6bW1ncmFiKG9iai5hc19yYXcoKSkgfTtcbiAgICAgfVxuIFxuICAgICAjW2lubGluZV1cbkBAIC05Myw5ICs5Myw5IEBAIHVuc2FmZSBpbXBsIFN5bmMgZm9yIE1tV2l0aFVzZXIge31cbiAvLyBTQUZFVFk6IEJ5IHRoZSB0eXBlIGludmFyaWFudHMsIHRoaXMgdHlwZSBpcyBhbHdheXMgcmVmY291bnRlZC5cbiB1bnNhZmUgaW1wbCBBbHdheXNSZWZDb3VudGVkIGZvciBNbVdpdGhVc2VyIHtcbiAgICAgI1tpbmxpbmVdXG4tICAgIGZuIGluY19yZWYoXHUwMDI2c2VsZikge1xuKyAgICBmbiBpbmNfcmVmKG9iajogXHUwMDI2U2VsZikge1xuICAgICAgICAgLy8gU0FGRVRZOiBUaGUgcG9pbnRlciBpcyB2YWxpZCBzaW5jZSBzZWxmIGlzIGEgcmVmZXJlbmNlLlxuLSAgICAgICAgdW5zYWZlIHsgYmluZGluZ3M6Om1tZ2V0KHNlbGYuYXNfcmF3KCkpIH07XG4rICAgICAgICB1bnNhZmUgeyBiaW5kaW5nczo6bW1nZXQob2JqLmFzX3JhdygpKSB9O1xuICAgICB9XG4gXG4gICAgICNbaW5saW5lXVxuZGlmZiAtLWdpdCBhL3J1c3Qva2VybmVsL21tL21tcHV0X2FzeW5jLnJzIGIvcnVzdC9rZXJuZWwvbW0vbW1wdXRfYXN5bmMucnNcbmluZGV4IGI4ZDJmMDUxMjI1YzczLi43ZGY0MDc3NzY1NGNlNyAxMDA2NDRcbi0tLSBhL3J1c3Qva2VybmVsL21tL21tcHV0X2FzeW5jLnJzXG4rKysgYi9ydXN0L2tlcm5lbC9tbS9tbXB1dF9hc3luYy5yc1xuQEAgLTM2LDkgKzM2LDkgQEAgdW5zYWZlIGltcGwgU3luYyBmb3IgTW1XaXRoVXNlckFzeW5jIHt9XG4gLy8gU0FGRVRZOiBCeSB0aGUgdHlwZSBpbnZhcmlhbnRzLCB0aGlzIHR5cGUgaXMgYWx3YXlzIHJlZmNvdW50ZWQuXG4gdW5zYWZlIGltcGwgQWx3YXlzUmVmQ291bnRlZCBmb3IgTW1XaXRoVXNlckFzeW5jIHtcbiAgICAgI1tpbmxpbmVdXG4tICAgIGZuIGluY19yZWYoXHUwMDI2c2VsZikge1xuKyAgICBmbiBpbmNfcmVmKG9iajogXHUwMDI2U2VsZikge1xuICAgICAgICAgLy8gU0FGRVRZOiBUaGUgcG9pbnRlciBpcyB2YWxpZCBzaW5jZSBzZWxmIGlzIGEgcmVmZXJlbmNlLlxuLSAgICAgICAgdW5zYWZlIHsgYmluZGluZ3M6Om1tZ2V0KHNlbGYuYXNfcmF3KCkpIH07XG4rICAgICAgICB1bnNhZmUgeyBiaW5kaW5nczo6bW1nZXQob2JqLmFzX3JhdygpKSB9O1xuICAgICB9XG4gXG4gICAgICNbaW5saW5lXVxuZGlmZiAtLWdpdCBhL3J1c3Qva2VybmVsL3BjaS5ycyBiL3J1c3Qva2VybmVsL3BjaS5yc1xuaW5kZXggNTA3MWNhZTY1NDNmZDIuLjBmMTZjZjBkYTNkNzU2IDEwMDY0NFxuLS0tIGEvcnVzdC9rZXJuZWwvcGNpLnJzXG4rKysgYi9ydXN0L2tlcm5lbC9wY2kucnNcbkBAIC00ODIsOSArNDgyLDkgQEAgaW1wbFx1MDAzYydhXHUwMDNlIGNyYXRlOjpkbWE6OkRldmljZVx1MDAzYydhXHUwMDNlIGZvciBEZXZpY2VcdTAwM2NkZXZpY2U6OkNvcmVcdTAwM2MnYVx1MDAzZVx1MDAzZSB7fVxuIFxuIC8vIFNBRkVUWTogSW5zdGFuY2VzIG9mIGBEZXZpY2VgIGFyZSBhbHdheXMgcmVmZXJlbmNlLWNvdW50ZWQuXG4gdW5zYWZlIGltcGwgY3JhdGU6OnN5bmM6OmFyZWY6OkFsd2F5c1JlZkNvdW50ZWQgZm9yIERldmljZSB7XG4tICAgIGZuIGluY19yZWYoXHUwMDI2c2VsZikge1xuKyAgICBmbiBpbmNfcmVmKG9iajogXHUwMDI2U2VsZikge1xuICAgICAgICAgLy8gU0FGRVRZOiBUaGUgZXhpc3RlbmNlIG9mIGEgc2hhcmVkIHJlZmVyZW5jZSBndWFyYW50ZWVzIHRoYXQgdGhlIHJlZmNvdW50IGlzIG5vbi16ZXJvLlxuLSAgICAgICAgdW5zYWZlIHsgYmluZGluZ3M6OnBjaV9kZXZfZ2V0KHNlbGYuYXNfcmF3KCkpIH07XG4rICAgICAgICB1bnNhZmUgeyBiaW5kaW5nczo6cGNpX2Rldl9nZXQob2JqLmFzX3JhdygpKSB9O1xuICAgICB9XG4gXG4gICAgIHVuc2FmZSBmbiBkZWNfcmVmKG9iajogTm9uTnVsbFx1MDAzY1NlbGZcdTAwM2UpIHtcbmRpZmYgLS1naXQgYS9ydXN0L2tlcm5lbC9waWRfbmFtZXNwYWNlLnJzIGIvcnVzdC9rZXJuZWwvcGlkX25hbWVzcGFjZS5yc1xuaW5kZXggOTc5YTk3MThmMTUzZDguLjM4MWM5Zjk4MGIxZmM0IDEwMDY0NFxuLS0tIGEvcnVzdC9rZXJuZWwvcGlkX25hbWVzcGFjZS5yc1xuKysrIGIvcnVzdC9rZXJuZWwvcGlkX25hbWVzcGFjZS5yc1xuQEAgLTQzLDkgKzQzLDkgQEAgcHViIHVuc2FmZSBmbiBmcm9tX3B0clx1MDAzYydhXHUwMDNlKHB0cjogKmNvbnN0IGJpbmRpbmdzOjpwaWRfbmFtZXNwYWNlKSAtXHUwMDNlIFx1MDAyNidhIFNlbGYge1xuIC8vIFNBRkVUWTogSW5zdGFuY2VzIG9mIGBQaWROYW1lc3BhY2VgIGFyZSBhbHdheXMgcmVmZXJlbmNlLWNvdW50ZWQuXG4gdW5zYWZlIGltcGwgQWx3YXlzUmVmQ291bnRlZCBmb3IgUGlkTmFtZXNwYWNlIHtcbiAgICAgI1tpbmxpbmVdXG4tICAgIGZuIGluY19yZWYoXHUwMDI2c2VsZikge1xuKyAgICBmbiBpbmNfcmVmKG9iajogXHUwMDI2U2VsZikge1xuICAgICAgICAgLy8gU0FGRVRZOiBUaGUgZXhpc3RlbmNlIG9mIGEgc2hhcmVkIHJlZmVyZW5jZSBtZWFucyB0aGF0IHRoZSByZWZjb3VudCBpcyBub256ZXJvLlxuLSAgICAgICAgdW5zYWZlIHsgYmluZGluZ3M6OmdldF9waWRfbnMoc2VsZi5hc19wdHIoKSkgfTtcbisgICAgICAgIHVuc2FmZSB7IGJpbmRpbmdzOjpnZXRfcGlkX25zKG9iai5hc19wdHIoKSkgfTtcbiAgICAgfVxuIFxuICAgICAjW2lubGluZV1cbmRpZmYgLS1naXQgYS9ydXN0L2tlcm5lbC9wbGF0Zm9ybS5ycyBiL3J1c3Qva2VybmVsL3BsYXRmb3JtLnJzXG5pbmRleCA5YjM2MmUwNDk1ZDMyMy4uODUwNjhhZTVhNDA1ZWMgMTAwNjQ0XG4tLS0gYS9ydXN0L2tlcm5lbC9wbGF0Zm9ybS5yc1xuKysrIGIvcnVzdC9rZXJuZWwvcGxhdGZvcm0ucnNcbkBAIC01MTksOSArNTE5LDkgQEAgaW1wbFx1MDAzYydhXHUwMDNlIGNyYXRlOjpkbWE6OkRldmljZVx1MDAzYydhXHUwMDNlIGZvciBEZXZpY2VcdTAwM2NkZXZpY2U6OkNvcmVcdTAwM2MnYVx1MDAzZVx1MDAzZSB7fVxuIFxuIC8vIFNBRkVUWTogSW5zdGFuY2VzIG9mIGBEZXZpY2VgIGFyZSBhbHdheXMgcmVmZXJlbmNlLWNvdW50ZWQuXG4gdW5zYWZlIGltcGwgY3JhdGU6OnN5bmM6OmFyZWY6OkFsd2F5c1JlZkNvdW50ZWQgZm9yIERldmljZSB7XG4tICAgIGZuIGluY19yZWYoXHUwMDI2c2VsZikge1xuKyAgICBmbiBpbmNfcmVmKG9iajogXHUwMDI2U2VsZikge1xuICAgICAgICAgLy8gU0FGRVRZOiBUaGUgZXhpc3RlbmNlIG9mIGEgc2hhcmVkIHJlZmVyZW5jZSBndWFyYW50ZWVzIHRoYXQgdGhlIHJlZmNvdW50IGlzIG5vbi16ZXJvLlxuLSAgICAgICAgdW5zYWZlIHsgYmluZGluZ3M6OmdldF9kZXZpY2Uoc2VsZi5hc19yZWYoKS5hc19yYXcoKSkgfTtcbisgICAgICAgIHVuc2FmZSB7IGJpbmRpbmdzOjpnZXRfZGV2aWNlKG9iai5hc19yZWYoKS5hc19yYXcoKSkgfTtcbiAgICAgfVxuIFxuICAgICB1bnNhZmUgZm4gZGVjX3JlZihvYmo6IE5vbk51bGxcdTAwM2NTZWxmXHUwMDNlKSB7XG5kaWZmIC0tZ2l0IGEvcnVzdC9rZXJuZWwvc3luYy9hcmVmLnJzIGIvcnVzdC9rZXJuZWwvc3luYy9hcmVmLnJzXG5pbmRleCBiNzIxYjJlMDBiOTg2Zi4uMmFlMjEzMGQ1YmIxZGQgMTAwNjQ0XG4tLS0gYS9ydXN0L2tlcm5lbC9zeW5jL2FyZWYucnNcbisrKyBiL3J1c3Qva2VybmVsL3N5bmMvYXJlZi5yc1xuQEAgLTQ0LDcgKzQ0LDEwIEBAXG4gLy8vIGFsaXZlLilcbiBwdWIgdW5zYWZlIHRyYWl0IEFsd2F5c1JlZkNvdW50ZWQge1xuICAgICAvLy8gSW5jcmVtZW50cyB0aGUgcmVmZXJlbmNlIGNvdW50IG9uIHRoZSBvYmplY3QuXG4tICAgIGZuIGluY19yZWYoXHUwMDI2c2VsZik7XG4rICAgIC8vL1xuKyAgICAvLy8gVGhpcyBmdW5jdGlvbiBzaG91bGQgbm90IGJlIGNhbGxlZCBhY2NpZGVudGFsbHk7IGEgdHlwZSBtaWdodCBkZWNsYXJlIHRoZWlyIG93biBgaW5jX3JlZmBcbisgICAgLy8vIGZ1bmN0aW9uIGFuZCBpdCBzaG91bGRuJ3QgYmUgY29uZnVzZWQgd2l0aCB0aGlzIG9uZS5cbisgICAgZm4gaW5jX3JlZihvYmo6IFx1MDAyNlNlbGYpO1xuIFxuICAgICAvLy8gRGVjcmVtZW50cyB0aGUgcmVmZXJlbmNlIGNvdW50IG9uIHRoZSBvYmplY3QuXG4gICAgIC8vL1xuQEAgLTE0NSw3ICsxNDgsNyBAQCBwdWIgZm4gaW50b19yYXcobWU6IFNlbGYpIC1cdTAwM2UgTm9uTnVsbFx1MDAzY1RcdTAwM2Uge1xuIFxuIGltcGxcdTAwM2NUOiBBbHdheXNSZWZDb3VudGVkXHUwMDNlIENsb25lIGZvciBBUmVmXHUwMDNjVFx1MDAzZSB7XG4gICAgIGZuIGNsb25lKFx1MDAyNnNlbGYpIC1cdTAwM2UgU2VsZiB7XG4tICAgICAgICBzZWxmLmluY19yZWYoKTtcbisgICAgICAgIFQ6OmluY19yZWYoc2VsZik7XG4gICAgICAgICAvLyBTQUZFVFk6IFdlIGp1c3QgaW5jcmVtZW50ZWQgdGhlIHJlZmNvdW50IGFib3ZlLlxuICAgICAgICAgdW5zYWZlIHsgU2VsZjo6ZnJvbV9yYXcoc2VsZi5wdHIpIH1cbiAgICAgfVxuQEAgLTE2Miw3ICsxNjUsNyBAQCBmbiBkZXJlZihcdTAwMjZzZWxmKSAtXHUwMDNlIFx1MDAyNlNlbGY6OlRhcmdldCB7XG4gXG4gaW1wbFx1MDAzY1Q6IEFsd2F5c1JlZkNvdW50ZWRcdTAwM2UgRnJvbVx1MDAzY1x1MDAyNlRcdTAwM2UgZm9yIEFSZWZcdTAwM2NUXHUwMDNlIHtcbiAgICAgZm4gZnJvbShiOiBcdTAwMjZUKSAtXHUwMDNlIFNlbGYge1xuLSAgICAgICAgYi5pbmNfcmVmKCk7XG4rICAgICAgICBUOjppbmNfcmVmKGIpO1xuICAgICAgICAgLy8gU0FGRVRZOiBXZSBqdXN0IGluY3JlbWVudGVkIHRoZSByZWZjb3VudCBhYm92ZS5cbiAgICAgICAgIHVuc2FmZSB7IFNlbGY6OmZyb21fcmF3KE5vbk51bGw6OmZyb20oYikpIH1cbiAgICAgfVxuZGlmZiAtLWdpdCBhL3J1c3Qva2VybmVsL3Rhc2sucnMgYi9ydXN0L2tlcm5lbC90YXNrLnJzXG5pbmRleCAzODI3M2Y0ZWVkYjUxMy4uYTc3MTFlMTU1OGMyZjUgMTAwNjQ0XG4tLS0gYS9ydXN0L2tlcm5lbC90YXNrLnJzXG4rKysgYi9ydXN0L2tlcm5lbC90YXNrLnJzXG5AQCAtMzQ5LDkgKzM0OSw5IEBAIHB1YiBmbiBncm91cF9sZWFkZXIoXHUwMDI2c2VsZikgLVx1MDAzZSBcdTAwMjZUYXNrIHtcbiAvLyBTQUZFVFk6IFRoZSB0eXBlIGludmFyaWFudHMgZ3VhcmFudGVlIHRoYXQgYFRhc2tgIGlzIGFsd2F5cyByZWZjb3VudGVkLlxuIHVuc2FmZSBpbXBsIGNyYXRlOjpzeW5jOjphcmVmOjpBbHdheXNSZWZDb3VudGVkIGZvciBUYXNrIHtcbiAgICAgI1tpbmxpbmVdXG4tICAgIGZuIGluY19yZWYoXHUwMDI2c2VsZikge1xuKyAgICBmbiBpbmNfcmVmKG9iajogXHUwMDI2U2VsZikge1xuICAgICAgICAgLy8gU0FGRVRZOiBUaGUgZXhpc3RlbmNlIG9mIGEgc2hhcmVkIHJlZmVyZW5jZSBtZWFucyB0aGF0IHRoZSByZWZjb3VudCBpcyBub256ZXJvLlxuLSAgICAgICAgdW5zYWZlIHsgYmluZGluZ3M6OmdldF90YXNrX3N0cnVjdChzZWxmLmFzX3B0cigpKSB9O1xuKyAgICAgICAgdW5zYWZlIHsgYmluZGluZ3M6OmdldF90YXNrX3N0cnVjdChvYmouYXNfcHRyKCkpIH07XG4gICAgIH1cbiBcbiAgICAgI1tpbmxpbmVdXG5kaWZmIC0tZ2l0IGEvcnVzdC9rZXJuZWwvdXNiLnJzIGIvcnVzdC9rZXJuZWwvdXNiLnJzXG5pbmRleCA3YWZmMGM4MmQwYWZjMC4uYzAzOTA1OWMxODkxM2MgMTAwNjQ0XG4tLS0gYS9ydXN0L2tlcm5lbC91c2IucnNcbisrKyBiL3J1c3Qva2VybmVsL3VzYi5yc1xuQEAgLTM5MywxMSArMzkzLDExIEBAIGZuIGFzX3JlZihcdTAwMjZzZWxmKSAtXHUwMDNlIFx1MDAyNkRldmljZSB7XG4gXG4gLy8gU0FGRVRZOiBJbnN0YW5jZXMgb2YgYEludGVyZmFjZWAgYXJlIGFsd2F5cyByZWZlcmVuY2UtY291bnRlZC5cbiB1bnNhZmUgaW1wbCBBbHdheXNSZWZDb3VudGVkIGZvciBJbnRlcmZhY2Uge1xuLSAgICBmbiBpbmNfcmVmKFx1MDAyNnNlbGYpIHtcbisgICAgZm4gaW5jX3JlZihvYmo6IFx1MDAyNlNlbGYpIHtcbiAgICAgICAgIC8vIFNBRkVUWTogVGhlIGludmFyaWFudHMgb2YgYEludGVyZmFjZWAgZ3VhcmFudGVlIHRoYXQgYHNlbGYuYXNfcmF3KClgXG4gICAgICAgICAvLyByZXR1cm5zIGEgdmFsaWQgYHN0cnVjdCB1c2JfaW50ZXJmYWNlYCBwb2ludGVyLCBmb3Igd2hpY2ggd2Ugd2lsbFxuICAgICAgICAgLy8gYWNxdWlyZSBhIG5ldyByZWZjb3VudC5cbi0gICAgICAgIHVuc2FmZSB7IGJpbmRpbmdzOjp1c2JfZ2V0X2ludGYoc2VsZi5hc19yYXcoKSkgfTtcbisgICAgICAgIHVuc2FmZSB7IGJpbmRpbmdzOjp1c2JfZ2V0X2ludGYob2JqLmFzX3JhdygpKSB9O1xuICAgICB9XG4gXG4gICAgIHVuc2FmZSBmbiBkZWNfcmVmKG9iajogTm9uTnVsbFx1MDAzY1NlbGZcdTAwM2UpIHtcbkBAIC00NDQsMTEgKzQ0NCwxMSBAQCBmbiBhc19yYXcoXHUwMDI2c2VsZikgLVx1MDAzZSAqbXV0IGJpbmRpbmdzOjp1c2JfZGV2aWNlIHtcbiBcbiAvLyBTQUZFVFk6IEluc3RhbmNlcyBvZiBgRGV2aWNlYCBhcmUgYWx3YXlzIHJlZmVyZW5jZS1jb3VudGVkLlxuIHVuc2FmZSBpbXBsIEFsd2F5c1JlZkNvdW50ZWQgZm9yIERldmljZSB7XG4tICAgIGZuIGluY19yZWYoXHUwMDI2c2VsZikge1xuKyAgICBmbiBpbmNfcmVmKG9iajogXHUwMDI2U2VsZikge1xuICAgICAgICAgLy8gU0FGRVRZOiBUaGUgaW52YXJpYW50cyBvZiBgRGV2aWNlYCBndWFyYW50ZWUgdGhhdCBgc2VsZi5hc19yYXcoKWBcbiAgICAgICAgIC8vIHJldHVybnMgYSB2YWxpZCBgc3RydWN0IHVzYl9kZXZpY2VgIHBvaW50ZXIsIGZvciB3aGljaCB3ZSB3aWxsXG4gICAgICAgICAvLyBhY3F1aXJlIGEgbmV3IHJlZmNvdW50LlxuLSAgICAgICAgdW5zYWZlIHsgYmluZGluZ3M6OnVzYl9nZXRfZGV2KHNlbGYuYXNfcmF3KCkpIH07XG4rICAgICAgICB1bnNhZmUgeyBiaW5kaW5nczo6dXNiX2dldF9kZXYob2JqLmFzX3JhdygpKSB9O1xuICAgICB9XG4gXG4gICAgIHVuc2FmZSBmbiBkZWNfcmVmKG9iajogTm9uTnVsbFx1MDAzY1NlbGZcdTAwM2UpIHtcbiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTI4VDA5OjUyOjA2LjgxODc2OTQ1WiIsIlNlcSI6MywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6Nzc4NTI0Nzk4MiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipSZWZhY3RvcmluZyB0aGUgYEFsd2F5c1JlZkNvdW50ZWRgIFRyYWl0IGluIHRoZSBSdXN0IEtlcm5lbCoqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggYW5kIGl0J3MgcHJldHR5IHN0cmFpZ2h0Zm9yd2FyZCwgYSBwdXJlIHJlZmFjdG9yaW5nIHJlYWxseS4gVGhleSdyZSB0b3VjaGluZyB0aGUgYEFsd2F5c1JlZkNvdW50ZWRgIHRyYWl0IHdpdGhpbiB0aGUga2VybmVsJ3Mgc3luY2hyb25pemF0aW9uIG1lY2hhbmlzbXMsIHNwZWNpZmljYWxseSBpbiBgcnVzdC9rZXJuZWwvc3luYy9hcmVmLnJzYC4gVGhlIGdpc3QgaXMgYSBtb2RpZmljYXRpb24gdG8gdGhlIHNpZ25hdHVyZSBvZiBgaW5jX3JlZmAuIFRoZXkncmUgY2hhbmdpbmcgaXQgZnJvbSBgZm4gaW5jX3JlZihcdTAwMjZzZWxmKWAgdG8gYGZuIGluY19yZWYob2JqOiBcdTAwMjZTZWxmKWAuXG5cblRoZSBjb3JlIHJlYXNvbiBmb3IgdGhpcyBhbHRlcmF0aW9uIGlzIHRvIG1pdGlnYXRlIHBvdGVudGlhbCBtZXRob2QgcmVzb2x1dGlvbiBjb25mbGljdHMgaW4gUnVzdC4gIElmIGEgdHlwZSBpbXBsZW1lbnRpbmcgYEFsd2F5c1JlZkNvdW50ZWRgIGRlZmluZXMgaXRzIG93biBgaW5jX3JlZmAgZnVuY3Rpb24sIHRoZSBwcmV2aW91cyBzaWduYXR1cmUgY291bGQgbGVhZCB0byBhY2NpZGVudGFsLCBhbmQgaW5jb3JyZWN0LCBjYWxscyBvbiB0aGUgb2JqZWN0IGl0c2VsZi4gVGhpcyBjaGFuZ2UgbWFrZXMgaXQgZXhwbGljaXQgdGhhdCB0aGUgdHJhaXQncyBgaW5jX3JlZmAgaXMgYSBzdGF0aWMgbWV0aG9kLCBhbmQgcmVtb3ZlcyBhbnkgYW1iaWd1aXR5LlxuXG5UaGlzIGNoYW5nZSByaXBwbGVzIHRocm91Z2ggYSBzaWduaWZpY2FudCBjaHVuayBvZiB0aGUga2VybmVsLCB0b3VjaGluZyBhIGxvdCBvZiBtb2R1bGVzOiBldmVyeXRoaW5nIGZyb20gYXV4aWxpYXJ5IHN0cnVjdHVyZXMgdG8gZGV2aWNlIG1hbmFnZW1lbnQsIGZpbGVzeXN0ZW1zLCBtZW1vcnkgbWFuYWdlbWVudCwgYW5kIGV2ZW4gUENJIGFuZCBVU0IuIFRoZXnigJl2ZSB1cGRhdGVkIGFsbCB0aGUgaW1wbGVtZW50YXRpb25zIGFjcm9zcyB0aGVzZSBtb2R1bGVzLiBCdXQsIGFuZCB0aGlzIGlzIGNydWNpYWwsIGl0J3Mgc3RyaWN0bHkgYSBzeW50YWN0aWMgY2hhbmdlOyB0aGVyZeKAmXMgbm8gZnVuY3Rpb25hbCBhbHRlcmF0aW9uIHRvIHRoZSBrZXJuZWzigJlzIHJlZmNvdW50aW5nIGxvZ2ljLiBObyBhbGdvcml0aG1zLCBubyBkYXRhIHN0cnVjdHVyZXMsIG5vdGhpbmcgZnVuZGFtZW50YWwgaXMgYmVpbmcgbW9kaWZpZWQuIEl0J3MganVzdCBhIHNhZmVyIHdheSB0byBleHByZXNzIHRoZSBleGlzdGluZyBtZWNoYW5pc20uXG5cbkxldCdzIHF1aWNrbHkgY29uZmlybS4gSSd2ZSB0YWtlbiBhIGxvb2sgYXQgdGhlIGRpZmYgYW5kIHNwb3R0ZWQgdGhlIGNoYW5nZSBpbiB0aGUgdHJhaXQgaXRzZWxmIGFuZCBob3cgdGhlIGNhbGwgaGFzIGNoYW5nZWQgdG8gdXNlIHRoZSB0eXBlIGRpcmVjdGx5LlxuYGBgcnVzdFxuLSAgICBmbiBpbmNfcmVmKFx1MDAyNnNlbGYpIHtcbisgICAgZm4gaW5jX3JlZihvYmo6IFx1MDAyNlNlbGYpIHtcbmBgYFxuYW5kIHRoZW4gdGhlIGNvcnJlc3BvbmRpbmcgY2FsbCBjaGFuZ2UsXG5gYGBydXN0XG4tICAgICAgICBzZWxmLmluY19yZWYoKTtcbisgICAgICAgIFQ6OmluY19yZWYoc2VsZik7XG5gYGBcblNvLCBhcyBJIHN1c3BlY3RlZCwgdGhpcyBpcyBwdXJlbHkgYSBSdXN0IEFQSSBhZGp1c3RtZW50IHRvIHByZXZlbnQgcG90ZW50aWFsIG1ldGhvZCByZXNvbHV0aW9uIGNvbmZsaWN0cy4gTm8gbmVlZCBmb3IgZnV6emluZy5cblxuXG4iLCJJbnB1dFRva2VucyI6Njc0NywiT3V0cHV0VG9rZW5zIjoxMDcsIk91dHB1dFRob3VnaHRzVG9rZW5zIjozNTYsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNi0yOFQwOTo1MjoxNC42MDQwMjEzMjJaIiwiU2VxIjo0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJzZXQtcmVzdWx0cyIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjM4MTY5LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGlzIGEgcHVyZWx5IHN5bnRhY3RpYyByZWZhY3RvcmluZyBpbiB0aGUgUnVzdCBrZXJuZWwgYmluZGluZ3MuIEl0IGNoYW5nZXMgdGhlIHNpZ25hdHVyZSBvZiB0aGUgYGluY19yZWZgIG1ldGhvZCBpbiB0aGUgYEFsd2F5c1JlZkNvdW50ZWRgIHRyYWl0IGZyb20gYGZuIGluY19yZWYoXFx1MDAyNnNlbGYpYCB0byBgZm4gaW5jX3JlZihvYmo6IFxcdTAwMjZTZWxmKWAgdG8gcHJldmVudCBhY2NpZGVudGFsIG1ldGhvZCByZXNvbHV0aW9uIGNvbmZsaWN0cy4gSXQgZG9lcyBub3QgYWx0ZXIgYW55IGZ1bmN0aW9uYWwgbG9naWMgb3IgZXhlY3V0aW9uIGZsb3cgaW4gdGhlIGtlcm5lbC5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogbnVsbCxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGlzIGEgcHVyZWx5IHN5bnRhY3RpYyByZWZhY3RvcmluZyBpbiB0aGUgUnVzdCBrZXJuZWwgYmluZGluZ3MuIEl0IGNoYW5nZXMgdGhlIHNpZ25hdHVyZSBvZiB0aGUgYGluY19yZWZgIG1ldGhvZCBpbiB0aGUgYEFsd2F5c1JlZkNvdW50ZWRgIHRyYWl0IGZyb20gYGZuIGluY19yZWYoXFx1MDAyNnNlbGYpYCB0byBgZm4gaW5jX3JlZihvYmo6IFxcdTAwMjZTZWxmKWAgdG8gcHJldmVudCBhY2NpZGVudGFsIG1ldGhvZCByZXNvbHV0aW9uIGNvbmZsaWN0cy4gSXQgZG9lcyBub3QgYWx0ZXIgYW55IGZ1bmN0aW9uYWwgbG9naWMgb3IgZXhlY3V0aW9uIGZsb3cgaW4gdGhlIGtlcm5lbC5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfV07CgkJCWlmICghcmF3RGF0YSB8fCByYXdEYXRhLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSk7CgkJCWRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCQlkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSkgewoJCQljb25zdCBzdGF0cyA9IHsKCQkJCWxsbTogeyBjb3VudDogMCwgdG9rZW5zOiAwLCBkdXJhdGlvbjogMCB9LAoJCQkJdG9vbDogeyBjb3VudDogMCwgZHVyYXRpb246IDAgfQoJCQl9OwoKCQkJcmF3RGF0YS5mb3JFYWNoKHMgPT4gewoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7IAoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIpIHsKCQkJCQlzdGF0cy5sbG0uY291bnQrKzsKCQkJCQlzdGF0cy5sbG0udG9rZW5zICs9IChzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zKTsKCQkJCQlzdGF0cy5sbG0uZHVyYXRpb24gKz0gZHVyOwoJCQkJfSBlbHNlIGlmIChzLlR5cGUgPT09ICJ0b29sIikgewoJCQkJCXN0YXRzLnRvb2wuY291bnQrKzsKCQkJCQlzdGF0cy50b29sLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0KCQkJfSk7CgoJCQljb25zdCBhdmdMbG1EdXIgPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS5kdXJhdGlvbiAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z0xsbVRva2VuID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0udG9rZW5zIC8gc3RhdHMubGxtLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCQkJY29uc3QgYXZnVG9vbER1ciA9IHN0YXRzLnRvb2wuY291bnQgPiAwID8gKHN0YXRzLnRvb2wuZHVyYXRpb24gLyBzdGF0cy50b29sLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCgkJCWNvbnN0IGxsbVN1bWFyeUNlbGxzID0gW3N0YXRzLmxsbS5jb3VudCwgc3RhdHMubGxtLnRva2VucywgYXZnTGxtVG9rZW4sIHN0YXRzLmxsbS5kdXJhdGlvbiwgYXZnTGxtRHVyXTsKCQkJY29uc3QgdG9vbFN1bW1hcnlDZWxscyA9IFtzdGF0cy50b29sLmNvdW50LCBzdGF0cy50b29sLmR1cmF0aW9uLCBhdmdUb29sRHVyXTsKCgkJCWNvbnN0IGxsbVN1bW1hcnlCb2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2xsbV9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJbGxtU3VtbWFyeUJvZHkuaW5uZXJIVE1MID0gIiI7CgkJCWNvbnN0IGxsbVRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHInKTsKCQkJbGxtU3VtYXJ5Q2VsbHMuZm9yRWFjaChjZWxsID0+IHsKCQkJCWNvbnN0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGQnKTsKCQkJCXRkLnRleHRDb250ZW50ID0gY2VsbDsKCQkJCWxsbVRyLmFwcGVuZENoaWxkKHRkKTsKCQkJfSk7CgkJCWxsbVN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKGxsbVRyKTsKCgkJCWNvbnN0IHRvb2xTdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b29sX3N1bW1hcnlfc3RhdHNfYm9keScpOwoJCQl0b29sU3VtbWFyeUJvZHkuaW5uZXJIVE1MID0gIiI7CgkJCWNvbnN0IHRvb2xUciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCXRvb2xTdW1tYXJ5Q2VsbHMuZm9yRWFjaChjZWxsID0+IHsKCQkJCWNvbnN0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGQnKTsKCQkJCXRkLnRleHRDb250ZW50ID0gY2VsbDsKCQkJCXRvb2xUci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQl0b29sU3VtbWFyeUJvZHkuYXBwZW5kQ2hpbGQodG9vbFRyKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpIHsKCQkJY29uc3QgZmlsdGVyZWRTdGVwcyA9IHJhd0RhdGEuZmlsdGVyKGQgPT4gWyJsbG0iLCAidG9vbCJdLmluY2x1ZGVzKGQuVHlwZSkpOwoJCQljb25zdCBkYXRhID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkRhdGFUYWJsZSgpOwoJCQlkYXRhLmFkZENvbHVtbignc3RyaW5nJywgJ1N0ZXAnKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ251bWJlcicsICdEdXJhdGlvbicpOwoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICd0b29sdGlwJ30pOyAKCgkJCWZpbHRlcmVkU3RlcHMuZm9yRWFjaChzID0+IHsKCQkJCQoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7CgkJCQlsZXQgdG9vbHRpcCA9IHMuTmFtZTsKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iICYmIHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCQkJCWRhdGEuYWRkUm93KFtgJHtzLlNlcX1gLCBkdXIsIHRvb2x0aXBdKTsKCQkJfSk7CgoJCQljb25zdCBvcHRpb25zID0gewoJCQkJdGl0bGU6ICdUaW1lIENvbnN1bXB0aW9uIG9mIExMTS9Ub29sIENhbGxzJywKCQkJCWhBeGlzOiB7CgkJCQkJdGl0bGU6ICdMTE0vVG9vbCBTdGVwcycsCgkJCQl9LAoJCQkJdkF4aXM6IHsgdGl0bGU6ICdTZWNvbmRzJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdkdXJhdGlvbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpIHsKCQkJY29uc3QgbGxtU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IGQuVHlwZSA9PT0gImxsbSIpOwoJCQlpZiAobGxtU3RlcHMubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQljb25zdCBkYXRhID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkRhdGFUYWJsZSgpOwoJCQlkYXRhLmFkZENvbHVtbignc3RyaW5nJywgJ1N0ZXAnKTsJCQkKCQkJZGF0YS5hZGRDb2x1bW4oJ251bWJlcicsICdUb2tlbnMnKTsJCQkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAnc3R5bGUnfSk7CQoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICd0b29sdGlwJ30pOwkKCgkJCWNvbnN0IGFnZW50Q29sb3JzID0ge307CgkJCWNvbnN0IHBhbGV0dGUgPSBbJyM0Mjg1RjQnLCAnI0RCNDQzNycsICcjRjRCNDAwJywgJyMwRjlENTgnLCAnI0FCNDdCQycsICcjMDBBQ0MxJ107CgkJCWxldCBjb2xvcklkeCA9IDA7CgkJCWNvbnN0IGFnZW50TExNQ291bnRzID0ge307CgkJCWxsbVN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQlpZiAoIWFnZW50Q29sb3JzW3MuTmFtZV0pIHsKCQkJCQlhZ2VudENvbG9yc1tzLk5hbWVdID0gcGFsZXR0ZVtjb2xvcklkeCAlIHBhbGV0dGUubGVuZ3RoXTsKCQkJCQljb2xvcklkeCsrOwoJCQkJfQoKCQkJCWFnZW50TExNQ291bnRzW3MuTmFtZV0gPSAoYWdlbnRMTE1Db3VudHNbcy5OYW1lXSB8fCAwKSArIDE7CgkJCQljb25zdCBsYWJlbCA9IGAke3MuTmFtZX0tJHthZ2VudExMTUNvdW50c1tzLk5hbWVdfWA7CgkJCQljb25zdCB0b3RhbFRva2VucyA9IHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnM7CgkJCQljb25zdCBzdHlsZSA9IGBjb2xvcjogJHthZ2VudENvbG9yc1tzLk5hbWVdfWA7CgkJCQlsZXQgdG9vbHRpcCA9IGBUb3RhbCBUb2tlbnM6ICR7dG90YWxUb2tlbnN9XG4oSW46ICR7cy5JbnB1dFRva2Vuc30sIE91dDogJHtzLk91dHB1dFRva2Vuc30sIFRob3VnaHRzOiAke3MuT3V0cHV0VGhvdWdodHNUb2tlbnN9KWA7CgkJCQlpZiAocy5Ub29sQ2FsbHMgJiYgcy5Ub29sQ2FsbHMubGVuZ3RoID4gMCkgewoJCQkJCXRvb2x0aXAgKz0gYFxuVG9vbHM6ICR7cy5Ub29sQ2FsbHMuam9pbignLCAnKX1gOwoJCQkJfQoKCQkJCWRhdGEuYWRkUm93KFtsYWJlbCwgdG90YWxUb2tlbnMsIHN0eWxlLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVG9rZW4gQ29uc3VtcHRpb24gYnkgTExNIENhbGxzJywKCQkJCWhBeGlzOiB7CgkJCQkJdGl0bGU6ICdMTE0gQ2FsbCBTZXF1ZW5jZScsCgkJCQl9LAoJCQkJdkF4aXM6IHsgdGl0bGU6ICdDb25zdW1lZCBUb2tlbnMnIH0sCgkJCQlsZWdlbmQ6IHsgcG9zaXRpb246ICdub25lJyB9LAoJCQkJYmFyOiB7IGdyb3VwV2lkdGg6ICc3NSUnIH0sCgkJCQljaGFydEFyZWE6IHsgd2lkdGg6ICc4NSUnLCBoZWlnaHQ6ICc3MCUnIH0sCgkJCQloZWlnaHQ6IDQwMAoJCQl9OwoKCQkJY29uc3QgY2hhcnQgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uQ29sdW1uQ2hhcnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rva2VuX2NoYXJ0X2RpdicpKTsKCQkJY2hhcnQuZHJhdyhkYXRhLCBvcHRpb25zKTsKCQl9CgkJbGV0IGFsbEV4cGFuZGVkID0gZmFsc2U7CgkJZnVuY3Rpb24gdG9nZ2xlQWxsRGV0YWlscygpIHsKCQkJYWxsRXhwYW5kZWQgPSAhYWxsRXhwYW5kZWQ7CgkJCWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ2RldGFpbHMnKS5mb3JFYWNoKGQgPT4gewoJCQkJaWYgKGFsbEV4cGFuZGVkKSBkLnNldEF0dHJpYnV0ZSgnb3BlbicsICcnKTsKCQkJCWVsc2UgZC5yZW1vdmVBdHRyaWJ1dGUoJ29wZW4nKTsKCQkJfSk7CgkJfQoJPC9zY3JpcHQ+CgoKPC9ib2R5Pgo8L2h0bWw+Cg==" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflownv4sv[0].run-triage(0) Phase: Succeeded StartedAt: 2026-06-28 09:40:54 +0000 UTC FinishedAt: 2026-06-28 09:52:15 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "AI determined the patch has no functional impact", "targets": null, "trajectory": "CjwhZG9jdHlwZSBodG1sPgo8aHRtbD4KPGhlYWQ+Cgk8dGl0bGU+QUkgVHJhamVjdG9yeTwvdGl0bGU+Cgk8c3R5bGU+CgkJdGFibGUgewoJCQlib3JkZXI6IDFweCBzb2xpZCAjY2NjOwoJCQltYXJnaW46IDIwcHggNXB4OwoJCQlib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOwoJCQl3aGl0ZS1zcGFjZTogbm93cmFwOwoJCQl0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKCQkJb3ZlcmZsb3c6IGhpZGRlbjsKCQl9CgoJCXRhYmxlIGNhcHRpb24gewoJCQlmb250LXdlaWdodDogYm9sZDsKCQl9CgoJCXRhYmxlIHRkLCB0YWJsZSB0aCB7CgkJCXZlcnRpY2FsLWFsaWduOiB0b3A7CgkJCXBhZGRpbmc6IDJweCA4cHg7CgkJCXRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwoJCQlvdmVyZmxvdzogaGlkZGVuOwoJCX0KCgkJLmxpc3RfdGFibGUgdGQsIC5saXN0X3RhYmxlIHRoIHsKCQkJYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjY2NjOwoJCX0KCgkJLmxpc3RfdGFibGUgdGggewoJCQliYWNrZ3JvdW5kOiAjRjRGNEY0OwoJCX0KCgkJLmxpc3RfdGFibGUgdHI6bnRoLWNoaWxkKDJuKSB7CgkJCWJhY2tncm91bmQ6ICNGNEY0RjQ7CgkJfQoKCQkubGlzdF90YWJsZSB0cjpob3ZlciB7CgkJCWJhY2tncm91bmQ6ICNmZmZmOTk7CgkJfQoKCQkjYWlfZGV0YWlsc19kaXYgcHJlIHsKCQkJbWFyZ2luOiAxcHg7CgkJCW1heC13aWR0aDogMTIwY2g7CgkJCXdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKCQkJb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDsKCQl9Cgk8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5PgoJPGgxPkFJIFRyYWplY3Rvcnk8L2gxPgoJPGJyPgoKCQoJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQk8Y2FwdGlvbj5UcmFqZWN0b3J5OiAoPGEgaHJlZj0iIyIgb25jbGljaz0idG9nZ2xlQWxsRGV0YWlscygpOyByZXR1cm4gZmFsc2U7Ij5FeHBhbmQvQ29sbGFwc2UgQWxsPC9hPik8L2NhcHRpb24+CgkJPHRoZWFkPjx0cj4KCQkJPHRoPlNlcTwvdGg+CgkJCTx0aD5UaW1lc3RhbXA8L3RoPgoJCQk8dGg+VHlwZTwvdGg+CgkJCTx0aD5OYW1lPC90aD4KCQkJPHRoPkR1cmF0aW9uPC90aD4KCQk8L3RyPjwvdGhlYWQ+CgkJPHRib2R5PgoJCQoJCTx0cj4KCQkJPHRkPjAvMDwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzI4IDA5OjUyPC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGlzIGEgcHVyZWx5IHN5bnRhY3RpYyByZWZhY3RvcmluZyBpbiB0aGUgUnVzdCBrZXJuZWwgYmluZGluZ3MuIEl0IGNoYW5nZXMgdGhlIHNpZ25hdHVyZSBvZiB0aGUgYGluY19yZWZgIG1ldGhvZCBpbiB0aGUgYEFsd2F5c1JlZkNvdW50ZWRgIHRyYWl0IGZyb20gYGZuIGluY19yZWYoXHUwMDI2c2VsZilgIHRvIGBmbiBpbmNfcmVmKG9iajogXHUwMDI2U2VsZilgIHRvIHByZXZlbnQgYWNjaWRlbnRhbCBtZXRob2QgcmVzb2x1dGlvbiBjb25mbGljdHMuIEl0IGRvZXMgbm90IGFsdGVyIGFueSBmdW5jdGlvbmFsIGxvZ2ljIG9yIGV4ZWN1dGlvbiBmbG93IGluIHRoZSBrZXJuZWwuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzI4IDA5OjUyPC90ZD4KCQkJPHRkPmFjdGlvbjwvdGQ+CgkJCTx0ZD5yZWFkLXBhdGNoLWRpZmY8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtQYXRjaERpZmYmIzM0OzogJiMzNDtjb21taXQgNmYwNTE1MjVkOTgzNjNlMTBhNWQ4OTNhMjE4YzU1MmVmYTE3YmY4MlxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBTdW4gSnVuIDI4IDA5OjUyOjA1IDIwMjYgJiM0MzswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL3J1c3Qva2VybmVsL2F1eGlsaWFyeS5ycyBiL3J1c3Qva2VybmVsL2F1eGlsaWFyeS5yc1xuaW5kZXggYzQyOTI4ZDVhMjM5M2YuLjc1YTYxYjUxY2Y3OThkIDEwMDY0NFxuLS0tIGEvcnVzdC9rZXJuZWwvYXV4aWxpYXJ5LnJzXG4mIzQzOyYjNDM7JiM0MzsgYi9ydXN0L2tlcm5lbC9hdXhpbGlhcnkucnNcbkBAIC0zNDUsOSAmIzQzOzM0NSw5IEBAIHVuc2FmZSBpbXBsXHUwMDNjQ3R4OiBkZXZpY2U6OkRldmljZUNvbnRleHRcdTAwM2UgZGV2aWNlOjpBc0J1c0RldmljZVx1MDAzY0N0eFx1MDAzZSBmb3IgRGV2aWNlXHUwMDNjQ3R4XHUwMDNlXG4gXG4gLy8gU0FGRVRZOiBJbnN0YW5jZXMgb2YgYERldmljZWAgYXJlIGFsd2F5cyByZWZlcmVuY2UtY291bnRlZC5cbiB1bnNhZmUgaW1wbCBjcmF0ZTo6c3luYzo6YXJlZjo6QWx3YXlzUmVmQ291bnRlZCBmb3IgRGV2aWNlIHtcbi0gICAgZm4gaW5jX3JlZihcdTAwMjZzZWxmKSB7XG4mIzQzOyAgICBmbiBpbmNfcmVmKG9iajogXHUwMDI2U2VsZikge1xuICAgICAgICAgLy8gU0FGRVRZOiBUaGUgZXhpc3RlbmNlIG9mIGEgc2hhcmVkIHJlZmVyZW5jZSBndWFyYW50ZWVzIHRoYXQgdGhlIHJlZmNvdW50IGlzIG5vbi16ZXJvLlxuLSAgICAgICAgdW5zYWZlIHsgYmluZGluZ3M6OmdldF9kZXZpY2Uoc2VsZi5hc19yZWYoKS5hc19yYXcoKSkgfTtcbiYjNDM7ICAgICAgICB1bnNhZmUgeyBiaW5kaW5nczo6Z2V0X2RldmljZShvYmouYXNfcmVmKCkuYXNfcmF3KCkpIH07XG4gICAgIH1cbiBcbiAgICAgdW5zYWZlIGZuIGRlY19yZWYob2JqOiBOb25OdWxsXHUwMDNjU2VsZlx1MDAzZSkge1xuZGlmZiAtLWdpdCBhL3J1c3Qva2VybmVsL2Jsb2NrL21xL3JlcXVlc3QucnMgYi9ydXN0L2tlcm5lbC9ibG9jay9tcS9yZXF1ZXN0LnJzXG5pbmRleCBjZTNlMzBjODFjYjVlZC4uZjQxZDAxZWE0NTk1MWMgMTAwNjQ0XG4tLS0gYS9ydXN0L2tlcm5lbC9ibG9jay9tcS9yZXF1ZXN0LnJzXG4mIzQzOyYjNDM7JiM0MzsgYi9ydXN0L2tlcm5lbC9ibG9jay9tcS9yZXF1ZXN0LnJzXG5AQCAtMjM0LDggJiM0MzsyMzQsOCBAQCB1bnNhZmUgaW1wbFx1MDAzY1Q6IE9wZXJhdGlvbnNcdTAwM2UgU3luYyBmb3IgUmVxdWVzdFx1MDAzY1RcdTAwM2Uge31cbiAvLyBrZWVwcyB0aGUgb2JqZWN0IGFsaXZlIGluIG1lbW9yeSBhdCBsZWFzdCB1bnRpbCBhIG1hdGNoaW5nIHJlZmVyZW5jZSBjb3VudFxuIC8vIGRlY3JlbWVudCBpcyBleGVjdXRlZC5cbiB1bnNhZmUgaW1wbFx1MDAzY1Q6IE9wZXJhdGlvbnNcdTAwM2UgQWx3YXlzUmVmQ291bnRlZCBmb3IgUmVxdWVzdFx1MDAzY1RcdTAwM2Uge1xuLSAgICBmbiBpbmNfcmVmKFx1MDAyNnNlbGYpIHtcbi0gICAgICAgIHNlbGYud3JhcHBlcl9yZWYoKS5yZWZjb3VudCgpLmluYygpO1xuJiM0MzsgICAgZm4gaW5jX3JlZihvYmo6IFx1MDAyNlNlbGYpIHtcbiYjNDM7ICAgICAgICBvYmoud3JhcHBlcl9yZWYoKS5yZWZjb3VudCgpLmluYygpO1xuICAgICB9XG4gXG4gICAgIHVuc2FmZSBmbiBkZWNfcmVmKG9iajogY29yZTo6cHRyOjpOb25OdWxsXHUwMDNjU2VsZlx1MDAzZSkge1xuZGlmZiAtLWdpdCBhL3J1c3Qva2VybmVsL2NyZWQucnMgYi9ydXN0L2tlcm5lbC9jcmVkLnJzXG5pbmRleCBmZmExNTZiOWRmMzc3ZS4uZDUzY2JjNzkyZmEzYTkgMTAwNjQ0XG4tLS0gYS9ydXN0L2tlcm5lbC9jcmVkLnJzXG4mIzQzOyYjNDM7JiM0MzsgYi9ydXN0L2tlcm5lbC9jcmVkLnJzXG5AQCAtNzgsOSAmIzQzOzc4LDkgQEAgcHViIGZuIGV1aWQoXHUwMDI2c2VsZikgLVx1MDAzZSBLdWlkIHtcbiAvLyBTQUZFVFk6IFRoZSB0eXBlIGludmFyaWFudHMgZ3VhcmFudGVlIHRoYXQgYENyZWRlbnRpYWxgIGlzIGFsd2F5cyByZWYtY291bnRlZC5cbiB1bnNhZmUgaW1wbCBBbHdheXNSZWZDb3VudGVkIGZvciBDcmVkZW50aWFsIHtcbiAgICAgI1tpbmxpbmVdXG4tICAgIGZuIGluY19yZWYoXHUwMDI2c2VsZikge1xuJiM0MzsgICAgZm4gaW5jX3JlZihvYmo6IFx1MDAyNlNlbGYpIHtcbiAgICAgICAgIC8vIFNBRkVUWTogVGhlIGV4aXN0ZW5jZSBvZiBhIHNoYXJlZCByZWZlcmVuY2UgbWVhbnMgdGhhdCB0aGUgcmVmY291bnQgaXMgbm9uemVyby5cbi0gICAgICAgIHVuc2FmZSB7IGJpbmRpbmdzOjpnZXRfY3JlZChzZWxmLjAuZ2V0KCkpIH07XG4mIzQzOyAgICAgICAgdW5zYWZlIHsgYmluZGluZ3M6OmdldF9jcmVkKG9iai4wLmdldCgpKSB9O1xuICAgICB9XG4gXG4gICAgICNbaW5saW5lXVxuZGlmZiAtLWdpdCBhL3J1c3Qva2VybmVsL2RldmljZS5ycyBiL3J1c3Qva2VybmVsL2RldmljZS5yc1xuaW5kZXggNjQ1YWZjNDlhMjdkNjQuLmVjNDRkY2M0MDVkNTExIDEwMDY0NFxuLS0tIGEvcnVzdC9rZXJuZWwvZGV2aWNlLnJzXG4mIzQzOyYjNDM7JiM0MzsgYi9ydXN0L2tlcm5lbC9kZXZpY2UucnNcbkBAIC00NDksOSAmIzQzOzQ0OSw5IEBAIHB1YiBmbiBuYW1lKFx1MDAyNnNlbGYpIC1cdTAwM2UgXHUwMDI2Q1N0ciB7XG4gXG4gLy8gU0FGRVRZOiBJbnN0YW5jZXMgb2YgYERldmljZWAgYXJlIGFsd2F5cyByZWZlcmVuY2UtY291bnRlZC5cbiB1bnNhZmUgaW1wbCBjcmF0ZTo6c3luYzo6YXJlZjo6QWx3YXlzUmVmQ291bnRlZCBmb3IgRGV2aWNlIHtcbi0gICAgZm4gaW5jX3JlZihcdTAwMjZzZWxmKSB7XG4mIzQzOyAgICBmbiBpbmNfcmVmKG9iajogXHUwMDI2U2VsZikge1xuICAgICAgICAgLy8gU0FGRVRZOiBUaGUgZXhpc3RlbmNlIG9mIGEgc2hhcmVkIHJlZmVyZW5jZSBndWFyYW50ZWVzIHRoYXQgdGhlIHJlZmNvdW50IGlzIG5vbi16ZXJvLlxuLSAgICAgICAgdW5zYWZlIHsgYmluZGluZ3M6OmdldF9kZXZpY2Uoc2VsZi5hc19yYXcoKSkgfTtcbiYjNDM7ICAgICAgICB1bnNhZmUgeyBiaW5kaW5nczo6Z2V0X2RldmljZShvYmouYXNfcmF3KCkpIH07XG4gICAgIH1cbiBcbiAgICAgdW5zYWZlIGZuIGRlY19yZWYob2JqOiBwdHI6Ok5vbk51bGxcdTAwM2NTZWxmXHUwMDNlKSB7XG5kaWZmIC0tZ2l0IGEvcnVzdC9rZXJuZWwvZGV2aWNlL3Byb3BlcnR5LnJzIGIvcnVzdC9rZXJuZWwvZGV2aWNlL3Byb3BlcnR5LnJzXG5pbmRleCA1YWVhZDgzNWZiYmMwMi4uYzM5Y2NjMTQ1OGI5NWUgMTAwNjQ0XG4tLS0gYS9ydXN0L2tlcm5lbC9kZXZpY2UvcHJvcGVydHkucnNcbiYjNDM7JiM0MzsmIzQzOyBiL3J1c3Qva2VybmVsL2RldmljZS9wcm9wZXJ0eS5yc1xuQEAgLTM2MSwxMCAmIzQzOzM2MSwxMCBAQCBmbiBmbXQoXHUwMDI2c2VsZiwgZjogXHUwMDI2bXV0IGZtdDo6Rm9ybWF0dGVyXHUwMDNjJiMzOTtfXHUwMDNlKSAtXHUwMDNlIGZtdDo6UmVzdWx0IHtcbiBcbiAvLyBTQUZFVFk6IEluc3RhbmNlcyBvZiBgRndOb2RlYCBhcmUgYWx3YXlzIHJlZmVyZW5jZS1jb3VudGVkLlxuIHVuc2FmZSBpbXBsIGNyYXRlOjpzeW5jOjphcmVmOjpBbHdheXNSZWZDb3VudGVkIGZvciBGd05vZGUge1xuLSAgICBmbiBpbmNfcmVmKFx1MDAyNnNlbGYpIHtcbiYjNDM7ICAgIGZuIGluY19yZWYob2JqOiBcdTAwMjZTZWxmKSB7XG4gICAgICAgICAvLyBTQUZFVFk6IFRoZSBleGlzdGVuY2Ugb2YgYSBzaGFyZWQgcmVmZXJlbmNlIGd1YXJhbnRlZXMgdGhhdCB0aGVcbiAgICAgICAgIC8vIHJlZmNvdW50IGlzIG5vbi16ZXJvLlxuLSAgICAgICAgdW5zYWZlIHsgYmluZGluZ3M6OmZ3bm9kZV9oYW5kbGVfZ2V0KHNlbGYuYXNfcmF3KCkpIH07XG4mIzQzOyAgICAgICAgdW5zYWZlIHsgYmluZGluZ3M6OmZ3bm9kZV9oYW5kbGVfZ2V0KG9iai5hc19yYXcoKSkgfTtcbiAgICAgfVxuIFxuICAgICB1bnNhZmUgZm4gZGVjX3JlZihvYmo6IHB0cjo6Tm9uTnVsbFx1MDAzY1NlbGZcdTAwM2UpIHtcbmRpZmYgLS1naXQgYS9ydXN0L2tlcm5lbC9kcm0vZGV2aWNlLnJzIGIvcnVzdC9rZXJuZWwvZHJtL2RldmljZS5yc1xuaW5kZXggNDc3Y2Y3NzFmYjEwZWYuLjBjNzBlYzAxMGJkOTExIDEwMDY0NFxuLS0tIGEvcnVzdC9rZXJuZWwvZHJtL2RldmljZS5yc1xuJiM0MzsmIzQzOyYjNDM7IGIvcnVzdC9rZXJuZWwvZHJtL2RldmljZS5yc1xuQEAgLTM2Myw5ICYjNDM7MzYzLDkgQEAgZm4gZGVyZWYoXHUwMDI2c2VsZikgLVx1MDAzZSBcdTAwMjZTZWxmOjpUYXJnZXQge1xuIC8vIFNBRkVUWTogRFJNIGRldmljZSBvYmplY3RzIGFyZSBhbHdheXMgcmVmZXJlbmNlIGNvdW50ZWQgYW5kIHRoZSBnZXQvcHV0IGZ1bmN0aW9uc1xuIC8vIHNhdGlzZnkgdGhlIHJlcXVpcmVtZW50cy5cbiB1bnNhZmUgaW1wbFx1MDAzY1Q6IGRybTo6RHJpdmVyLCBDOiBEZXZpY2VDb250ZXh0XHUwMDNlIEFsd2F5c1JlZkNvdW50ZWQgZm9yIERldmljZVx1MDAzY1QsIENcdTAwM2Uge1xuLSAgICBmbiBpbmNfcmVmKFx1MDAyNnNlbGYpIHtcbiYjNDM7ICAgIGZuIGluY19yZWYob2JqOiBcdTAwMjZTZWxmKSB7XG4gICAgICAgICAvLyBTQUZFVFk6IFRoZSBleGlzdGVuY2Ugb2YgYSBzaGFyZWQgcmVmZXJlbmNlIGd1YXJhbnRlZXMgdGhhdCB0aGUgcmVmY291bnQgaXMgbm9uLXplcm8uXG4tICAgICAgICB1bnNhZmUgeyBiaW5kaW5nczo6ZHJtX2Rldl9nZXQoc2VsZi5hc19yYXcoKSkgfTtcbiYjNDM7ICAgICAgICB1bnNhZmUgeyBiaW5kaW5nczo6ZHJtX2Rldl9nZXQob2JqLmFzX3JhdygpKSB9O1xuICAgICB9XG4gXG4gICAgIHVuc2FmZSBmbiBkZWNfcmVmKG9iajogTm9uTnVsbFx1MDAzY1NlbGZcdTAwM2UpIHtcbmRpZmYgLS1naXQgYS9ydXN0L2tlcm5lbC9kcm0vZ2VtL21vZC5ycyBiL3J1c3Qva2VybmVsL2RybS9nZW0vbW9kLnJzXG5pbmRleCBjOGI2NmQ4MTY4NzE5OS4uZWU5ZTQxMjA2NmFiYjcgMTAwNjQ0XG4tLS0gYS9ydXN0L2tlcm5lbC9kcm0vZ2VtL21vZC5yc1xuJiM0MzsmIzQzOyYjNDM7IGIvcnVzdC9rZXJuZWwvZHJtL2dlbS9tb2QucnNcbkBAIC01MiwxMCAmIzQzOzUyLDEwIEBAIHVuc2FmZSBpbXBsICQoIFx1MDAzYyQoICR0cGFyYW1faWQgKSwmIzQzO1x1MDAzZSApPyAkY3JhdGU6OnN5bmM6OmFyZWY6OkFsd2F5c1JlZkNvdW50ZWQgZm9yICRcbiAgICAgICAgICAgICBTZWxmOiBJbnRvR0VNT2JqZWN0LFxuICAgICAgICAgICAgICQoICQoICRiaW5kX3BhcmFtIDogJGJpbmRfdHJhaXQgKSwmIzQzOyApP1xuICAgICAgICAge1xuLSAgICAgICAgICAgIGZuIGluY19yZWYoXHUwMDI2c2VsZikge1xuJiM0MzsgICAgICAgICAgICBmbiBpbmNfcmVmKG9iajogXHUwMDI2U2VsZikge1xuICAgICAgICAgICAgICAgICAvLyBTQUZFVFk6IFRoZSBleGlzdGVuY2Ugb2YgYSBzaGFyZWQgcmVmZXJlbmNlIGd1YXJhbnRlZXMgdGhhdCB0aGUgcmVmY291bnQgaXNcbiAgICAgICAgICAgICAgICAgLy8gbm9uLXplcm8uXG4tICAgICAgICAgICAgICAgIHVuc2FmZSB7IGJpbmRpbmdzOjpkcm1fZ2VtX29iamVjdF9nZXQoc2VsZi5hc19yYXcoKSkgfTtcbiYjNDM7ICAgICAgICAgICAgICAgIHVuc2FmZSB7IGJpbmRpbmdzOjpkcm1fZ2VtX29iamVjdF9nZXQob2JqLmFzX3JhdygpKSB9O1xuICAgICAgICAgICAgIH1cbiBcbiAgICAgICAgICAgICB1bnNhZmUgZm4gZGVjX3JlZihvYmo6IGNvcmU6OnB0cjo6Tm9uTnVsbFx1MDAzY1NlbGZcdTAwM2UpIHtcbmRpZmYgLS1naXQgYS9ydXN0L2tlcm5lbC9mcy9maWxlLnJzIGIvcnVzdC9rZXJuZWwvZnMvZmlsZS5yc1xuaW5kZXggMjNlZTY4OWJkMjQwMDUuLjhlNTk2N2FmY2QxMWYyIDEwMDY0NFxuLS0tIGEvcnVzdC9rZXJuZWwvZnMvZmlsZS5yc1xuJiM0MzsmIzQzOyYjNDM7IGIvcnVzdC9rZXJuZWwvZnMvZmlsZS5yc1xuQEAgLTE5OSw5ICYjNDM7MTk5LDkgQEAgdW5zYWZlIGltcGwgU3luYyBmb3IgRmlsZSB7fVxuIC8vIG1ha2VzIGBBUmVmXHUwMDNjRmlsZVx1MDAzZWAgb3duIGEgbm9ybWFsIHJlZmNvdW50LlxuIHVuc2FmZSBpbXBsIEFsd2F5c1JlZkNvdW50ZWQgZm9yIEZpbGUge1xuICAgICAjW2lubGluZV1cbi0gICAgZm4gaW5jX3JlZihcdTAwMjZzZWxmKSB7XG4mIzQzOyAgICBmbiBpbmNfcmVmKG9iajogXHUwMDI2U2VsZikge1xuICAgICAgICAgLy8gU0FGRVRZOiBUaGUgZXhpc3RlbmNlIG9mIGEgc2hhcmVkIHJlZmVyZW5jZSBtZWFucyB0aGF0IHRoZSByZWZjb3VudCBpcyBub256ZXJvLlxuLSAgICAgICAgdW5zYWZlIHsgYmluZGluZ3M6OmdldF9maWxlKHNlbGYuYXNfcHRyKCkpIH07XG4mIzQzOyAgICAgICAgdW5zYWZlIHsgYmluZGluZ3M6OmdldF9maWxlKG9iai5hc19wdHIoKSkgfTtcbiAgICAgfVxuIFxuICAgICAjW2lubGluZV1cbkBAIC0yMzUsOSAmIzQzOzIzNSw5IEBAIHB1YiBzdHJ1Y3QgTG9jYWxGaWxlIHtcbiAvLyBtYWtlcyBgQVJlZlx1MDAzY0xvY2FsRmlsZVx1MDAzZWAgb3duIGEgbm9ybWFsIHJlZmNvdW50LlxuIHVuc2FmZSBpbXBsIEFsd2F5c1JlZkNvdW50ZWQgZm9yIExvY2FsRmlsZSB7XG4gICAgICNbaW5saW5lXVxuLSAgICBmbiBpbmNfcmVmKFx1MDAyNnNlbGYpIHtcbiYjNDM7ICAgIGZuIGluY19yZWYob2JqOiBcdTAwMjZTZWxmKSB7XG4gICAgICAgICAvLyBTQUZFVFk6IFRoZSBleGlzdGVuY2Ugb2YgYSBzaGFyZWQgcmVmZXJlbmNlIG1lYW5zIHRoYXQgdGhlIHJlZmNvdW50IGlzIG5vbnplcm8uXG4tICAgICAgICB1bnNhZmUgeyBiaW5kaW5nczo6Z2V0X2ZpbGUoc2VsZi5hc19wdHIoKSkgfTtcbiYjNDM7ICAgICAgICB1bnNhZmUgeyBiaW5kaW5nczo6Z2V0X2ZpbGUob2JqLmFzX3B0cigpKSB9O1xuICAgICB9XG4gXG4gICAgICNbaW5saW5lXVxuZGlmZiAtLWdpdCBhL3J1c3Qva2VybmVsL2kyYy5ycyBiL3J1c3Qva2VybmVsL2kyYy5yc1xuaW5kZXggNjI0Yjk3MWNhOGIwYjIuLjFhOTg4MmE2NGM0YjhlIDEwMDY0NFxuLS0tIGEvcnVzdC9rZXJuZWwvaTJjLnJzXG4mIzQzOyYjNDM7JiM0MzsgYi9ydXN0L2tlcm5lbC9pMmMucnNcbkBAIC00MjUsOSAmIzQzOzQyNSw5IEBAIHB1YiBmbiBnZXQoaW5kZXg6IGkzMikgLVx1MDAzZSBSZXN1bHRcdTAwM2NBUmVmXHUwMDNjU2VsZlx1MDAzZVx1MDAzZSB7XG4gXG4gLy8gU0FGRVRZOiBJbnN0YW5jZXMgb2YgYEkyY0FkYXB0ZXJgIGFyZSBhbHdheXMgcmVmZXJlbmNlLWNvdW50ZWQuXG4gdW5zYWZlIGltcGwgQWx3YXlzUmVmQ291bnRlZCBmb3IgSTJjQWRhcHRlciB7XG4tICAgIGZuIGluY19yZWYoXHUwMDI2c2VsZikge1xuJiM0MzsgICAgZm4gaW5jX3JlZihvYmo6IFx1MDAyNlNlbGYpIHtcbiAgICAgICAgIC8vIFNBRkVUWTogVGhlIGV4aXN0ZW5jZSBvZiBhIHNoYXJlZCByZWZlcmVuY2UgZ3VhcmFudGVlcyB0aGF0IHRoZSByZWZjb3VudCBpcyBub24temVyby5cbi0gICAgICAgIHVuc2FmZSB7IGJpbmRpbmdzOjppMmNfZ2V0X2FkYXB0ZXIoc2VsZi5pbmRleCgpKSB9O1xuJiM0MzsgICAgICAgIHVuc2FmZSB7IGJpbmRpbmdzOjppMmNfZ2V0X2FkYXB0ZXIob2JqLmluZGV4KCkpIH07XG4gICAgIH1cbiBcbiAgICAgdW5zYWZlIGZuIGRlY19yZWYob2JqOiBOb25OdWxsXHUwMDNjU2VsZlx1MDAzZSkge1xuQEAgLTUwMSw5ICYjNDM7NTAxLDkgQEAgdW5zYWZlIGltcGxcdTAwM2NDdHg6IGRldmljZTo6RGV2aWNlQ29udGV4dFx1MDAzZSBkZXZpY2U6OkFzQnVzRGV2aWNlXHUwMDNjQ3R4XHUwMDNlIGZvciBJMmNDbGllbnRcdTAwM2NDXG4gXG4gLy8gU0FGRVRZOiBJbnN0YW5jZXMgb2YgYEkyY0NsaWVudGAgYXJlIGFsd2F5cyByZWZlcmVuY2UtY291bnRlZC5cbiB1bnNhZmUgaW1wbCBBbHdheXNSZWZDb3VudGVkIGZvciBJMmNDbGllbnQge1xuLSAgICBmbiBpbmNfcmVmKFx1MDAyNnNlbGYpIHtcbiYjNDM7ICAgIGZuIGluY19yZWYob2JqOiBcdTAwMjZTZWxmKSB7XG4gICAgICAgICAvLyBTQUZFVFk6IFRoZSBleGlzdGVuY2Ugb2YgYSBzaGFyZWQgcmVmZXJlbmNlIGd1YXJhbnRlZXMgdGhhdCB0aGUgcmVmY291bnQgaXMgbm9uLXplcm8uXG4tICAgICAgICB1bnNhZmUgeyBiaW5kaW5nczo6Z2V0X2RldmljZShzZWxmLmFzX3JlZigpLmFzX3JhdygpKSB9O1xuJiM0MzsgICAgICAgIHVuc2FmZSB7IGJpbmRpbmdzOjpnZXRfZGV2aWNlKG9iai5hc19yZWYoKS5hc19yYXcoKSkgfTtcbiAgICAgfVxuIFxuICAgICB1bnNhZmUgZm4gZGVjX3JlZihvYmo6IE5vbk51bGxcdTAwM2NTZWxmXHUwMDNlKSB7XG5kaWZmIC0tZ2l0IGEvcnVzdC9rZXJuZWwvbW0ucnMgYi9ydXN0L2tlcm5lbC9tbS5yc1xuaW5kZXggNDc2NGQ3YjY4ZjJhN2YuLmM5NTVjYmQ4ODRiOGI3IDEwMDY0NFxuLS0tIGEvcnVzdC9rZXJuZWwvbW0ucnNcbiYjNDM7JiM0MzsmIzQzOyBiL3J1c3Qva2VybmVsL21tLnJzXG5AQCAtNTcsOSAmIzQzOzU3LDkgQEAgdW5zYWZlIGltcGwgU3luYyBmb3IgTW0ge31cbiAvLyBTQUZFVFk6IEJ5IHRoZSB0eXBlIGludmFyaWFudHMsIHRoaXMgdHlwZSBpcyBhbHdheXMgcmVmY291bnRlZC5cbiB1bnNhZmUgaW1wbCBBbHdheXNSZWZDb3VudGVkIGZvciBNbSB7XG4gICAgICNbaW5saW5lXVxuLSAgICBmbiBpbmNfcmVmKFx1MDAyNnNlbGYpIHtcbiYjNDM7ICAgIGZuIGluY19yZWYob2JqOiBcdTAwMjZTZWxmKSB7XG4gICAgICAgICAvLyBTQUZFVFk6IFRoZSBwb2ludGVyIGlzIHZhbGlkIHNpbmNlIHNlbGYgaXMgYSByZWZlcmVuY2UuXG4tICAgICAgICB1bnNhZmUgeyBiaW5kaW5nczo6bW1ncmFiKHNlbGYuYXNfcmF3KCkpIH07XG4mIzQzOyAgICAgICAgdW5zYWZlIHsgYmluZGluZ3M6Om1tZ3JhYihvYmouYXNfcmF3KCkpIH07XG4gICAgIH1cbiBcbiAgICAgI1tpbmxpbmVdXG5AQCAtOTMsOSAmIzQzOzkzLDkgQEAgdW5zYWZlIGltcGwgU3luYyBmb3IgTW1XaXRoVXNlciB7fVxuIC8vIFNBRkVUWTogQnkgdGhlIHR5cGUgaW52YXJpYW50cywgdGhpcyB0eXBlIGlzIGFsd2F5cyByZWZjb3VudGVkLlxuIHVuc2FmZSBpbXBsIEFsd2F5c1JlZkNvdW50ZWQgZm9yIE1tV2l0aFVzZXIge1xuICAgICAjW2lubGluZV1cbi0gICAgZm4gaW5jX3JlZihcdTAwMjZzZWxmKSB7XG4mIzQzOyAgICBmbiBpbmNfcmVmKG9iajogXHUwMDI2U2VsZikge1xuICAgICAgICAgLy8gU0FGRVRZOiBUaGUgcG9pbnRlciBpcyB2YWxpZCBzaW5jZSBzZWxmIGlzIGEgcmVmZXJlbmNlLlxuLSAgICAgICAgdW5zYWZlIHsgYmluZGluZ3M6Om1tZ2V0KHNlbGYuYXNfcmF3KCkpIH07XG4mIzQzOyAgICAgICAgdW5zYWZlIHsgYmluZGluZ3M6Om1tZ2V0KG9iai5hc19yYXcoKSkgfTtcbiAgICAgfVxuIFxuICAgICAjW2lubGluZV1cbmRpZmYgLS1naXQgYS9ydXN0L2tlcm5lbC9tbS9tbXB1dF9hc3luYy5ycyBiL3J1c3Qva2VybmVsL21tL21tcHV0X2FzeW5jLnJzXG5pbmRleCBiOGQyZjA1MTIyNWM3My4uN2RmNDA3Nzc2NTRjZTcgMTAwNjQ0XG4tLS0gYS9ydXN0L2tlcm5lbC9tbS9tbXB1dF9hc3luYy5yc1xuJiM0MzsmIzQzOyYjNDM7IGIvcnVzdC9rZXJuZWwvbW0vbW1wdXRfYXN5bmMucnNcbkBAIC0zNiw5ICYjNDM7MzYsOSBAQCB1bnNhZmUgaW1wbCBTeW5jIGZvciBNbVdpdGhVc2VyQXN5bmMge31cbiAvLyBTQUZFVFk6IEJ5IHRoZSB0eXBlIGludmFyaWFudHMsIHRoaXMgdHlwZSBpcyBhbHdheXMgcmVmY291bnRlZC5cbiB1bnNhZmUgaW1wbCBBbHdheXNSZWZDb3VudGVkIGZvciBNbVdpdGhVc2VyQXN5bmMge1xuICAgICAjW2lubGluZV1cbi0gICAgZm4gaW5jX3JlZihcdTAwMjZzZWxmKSB7XG4mIzQzOyAgICBmbiBpbmNfcmVmKG9iajogXHUwMDI2U2VsZikge1xuICAgICAgICAgLy8gU0FGRVRZOiBUaGUgcG9pbnRlciBpcyB2YWxpZCBzaW5jZSBzZWxmIGlzIGEgcmVmZXJlbmNlLlxuLSAgICAgICAgdW5zYWZlIHsgYmluZGluZ3M6Om1tZ2V0KHNlbGYuYXNfcmF3KCkpIH07XG4mIzQzOyAgICAgICAgdW5zYWZlIHsgYmluZGluZ3M6Om1tZ2V0KG9iai5hc19yYXcoKSkgfTtcbiAgICAgfVxuIFxuICAgICAjW2lubGluZV1cbmRpZmYgLS1naXQgYS9ydXN0L2tlcm5lbC9wY2kucnMgYi9ydXN0L2tlcm5lbC9wY2kucnNcbmluZGV4IDUwNzFjYWU2NTQzZmQyLi4wZjE2Y2YwZGEzZDc1NiAxMDA2NDRcbi0tLSBhL3J1c3Qva2VybmVsL3BjaS5yc1xuJiM0MzsmIzQzOyYjNDM7IGIvcnVzdC9rZXJuZWwvcGNpLnJzXG5AQCAtNDgyLDkgJiM0Mzs0ODIsOSBAQCBpbXBsXHUwMDNjJiMzOTthXHUwMDNlIGNyYXRlOjpkbWE6OkRldmljZVx1MDAzYyYjMzk7YVx1MDAzZSBmb3IgRGV2aWNlXHUwMDNjZGV2aWNlOjpDb3JlXHUwMDNjJiMzOTthXHUwMDNlXHUwMDNlIHt9XG4gXG4gLy8gU0FGRVRZOiBJbnN0YW5jZXMgb2YgYERldmljZWAgYXJlIGFsd2F5cyByZWZlcmVuY2UtY291bnRlZC5cbiB1bnNhZmUgaW1wbCBjcmF0ZTo6c3luYzo6YXJlZjo6QWx3YXlzUmVmQ291bnRlZCBmb3IgRGV2aWNlIHtcbi0gICAgZm4gaW5jX3JlZihcdTAwMjZzZWxmKSB7XG4mIzQzOyAgICBmbiBpbmNfcmVmKG9iajogXHUwMDI2U2VsZikge1xuICAgICAgICAgLy8gU0FGRVRZOiBUaGUgZXhpc3RlbmNlIG9mIGEgc2hhcmVkIHJlZmVyZW5jZSBndWFyYW50ZWVzIHRoYXQgdGhlIHJlZmNvdW50IGlzIG5vbi16ZXJvLlxuLSAgICAgICAgdW5zYWZlIHsgYmluZGluZ3M6OnBjaV9kZXZfZ2V0KHNlbGYuYXNfcmF3KCkpIH07XG4mIzQzOyAgICAgICAgdW5zYWZlIHsgYmluZGluZ3M6OnBjaV9kZXZfZ2V0KG9iai5hc19yYXcoKSkgfTtcbiAgICAgfVxuIFxuICAgICB1bnNhZmUgZm4gZGVjX3JlZihvYmo6IE5vbk51bGxcdTAwM2NTZWxmXHUwMDNlKSB7XG5kaWZmIC0tZ2l0IGEvcnVzdC9rZXJuZWwvcGlkX25hbWVzcGFjZS5ycyBiL3J1c3Qva2VybmVsL3BpZF9uYW1lc3BhY2UucnNcbmluZGV4IDk3OWE5NzE4ZjE1M2Q4Li4zODFjOWY5ODBiMWZjNCAxMDA2NDRcbi0tLSBhL3J1c3Qva2VybmVsL3BpZF9uYW1lc3BhY2UucnNcbiYjNDM7JiM0MzsmIzQzOyBiL3J1c3Qva2VybmVsL3BpZF9uYW1lc3BhY2UucnNcbkBAIC00Myw5ICYjNDM7NDMsOSBAQCBwdWIgdW5zYWZlIGZuIGZyb21fcHRyXHUwMDNjJiMzOTthXHUwMDNlKHB0cjogKmNvbnN0IGJpbmRpbmdzOjpwaWRfbmFtZXNwYWNlKSAtXHUwMDNlIFx1MDAyNiYjMzk7YSBTZWxmIHtcbiAvLyBTQUZFVFk6IEluc3RhbmNlcyBvZiBgUGlkTmFtZXNwYWNlYCBhcmUgYWx3YXlzIHJlZmVyZW5jZS1jb3VudGVkLlxuIHVuc2FmZSBpbXBsIEFsd2F5c1JlZkNvdW50ZWQgZm9yIFBpZE5hbWVzcGFjZSB7XG4gICAgICNbaW5saW5lXVxuLSAgICBmbiBpbmNfcmVmKFx1MDAyNnNlbGYpIHtcbiYjNDM7ICAgIGZuIGluY19yZWYob2JqOiBcdTAwMjZTZWxmKSB7XG4gICAgICAgICAvLyBTQUZFVFk6IFRoZSBleGlzdGVuY2Ugb2YgYSBzaGFyZWQgcmVmZXJlbmNlIG1lYW5zIHRoYXQgdGhlIHJlZmNvdW50IGlzIG5vbnplcm8uXG4tICAgICAgICB1bnNhZmUgeyBiaW5kaW5nczo6Z2V0X3BpZF9ucyhzZWxmLmFzX3B0cigpKSB9O1xuJiM0MzsgICAgICAgIHVuc2FmZSB7IGJpbmRpbmdzOjpnZXRfcGlkX25zKG9iai5hc19wdHIoKSkgfTtcbiAgICAgfVxuIFxuICAgICAjW2lubGluZV1cbmRpZmYgLS1naXQgYS9ydXN0L2tlcm5lbC9wbGF0Zm9ybS5ycyBiL3J1c3Qva2VybmVsL3BsYXRmb3JtLnJzXG5pbmRleCA5YjM2MmUwNDk1ZDMyMy4uODUwNjhhZTVhNDA1ZWMgMTAwNjQ0XG4tLS0gYS9ydXN0L2tlcm5lbC9wbGF0Zm9ybS5yc1xuJiM0MzsmIzQzOyYjNDM7IGIvcnVzdC9rZXJuZWwvcGxhdGZvcm0ucnNcbkBAIC01MTksOSAmIzQzOzUxOSw5IEBAIGltcGxcdTAwM2MmIzM5O2FcdTAwM2UgY3JhdGU6OmRtYTo6RGV2aWNlXHUwMDNjJiMzOTthXHUwMDNlIGZvciBEZXZpY2VcdTAwM2NkZXZpY2U6OkNvcmVcdTAwM2MmIzM5O2FcdTAwM2VcdTAwM2Uge31cbiBcbiAvLyBTQUZFVFk6IEluc3RhbmNlcyBvZiBgRGV2aWNlYCBhcmUgYWx3YXlzIHJlZmVyZW5jZS1jb3VudGVkLlxuIHVuc2FmZSBpbXBsIGNyYXRlOjpzeW5jOjphcmVmOjpBbHdheXNSZWZDb3VudGVkIGZvciBEZXZpY2Uge1xuLSAgICBmbiBpbmNfcmVmKFx1MDAyNnNlbGYpIHtcbiYjNDM7ICAgIGZuIGluY19yZWYob2JqOiBcdTAwMjZTZWxmKSB7XG4gICAgICAgICAvLyBTQUZFVFk6IFRoZSBleGlzdGVuY2Ugb2YgYSBzaGFyZWQgcmVmZXJlbmNlIGd1YXJhbnRlZXMgdGhhdCB0aGUgcmVmY291bnQgaXMgbm9uLXplcm8uXG4tICAgICAgICB1bnNhZmUgeyBiaW5kaW5nczo6Z2V0X2RldmljZShzZWxmLmFzX3JlZigpLmFzX3JhdygpKSB9O1xuJiM0MzsgICAgICAgIHVuc2FmZSB7IGJpbmRpbmdzOjpnZXRfZGV2aWNlKG9iai5hc19yZWYoKS5hc19yYXcoKSkgfTtcbiAgICAgfVxuIFxuICAgICB1bnNhZmUgZm4gZGVjX3JlZihvYmo6IE5vbk51bGxcdTAwM2NTZWxmXHUwMDNlKSB7XG5kaWZmIC0tZ2l0IGEvcnVzdC9rZXJuZWwvc3luYy9hcmVmLnJzIGIvcnVzdC9rZXJuZWwvc3luYy9hcmVmLnJzXG5pbmRleCBiNzIxYjJlMDBiOTg2Zi4uMmFlMjEzMGQ1YmIxZGQgMTAwNjQ0XG4tLS0gYS9ydXN0L2tlcm5lbC9zeW5jL2FyZWYucnNcbiYjNDM7JiM0MzsmIzQzOyBiL3J1c3Qva2VybmVsL3N5bmMvYXJlZi5yc1xuQEAgLTQ0LDcgJiM0Mzs0NCwxMCBAQFxuIC8vLyBhbGl2ZS4pXG4gcHViIHVuc2FmZSB0cmFpdCBBbHdheXNSZWZDb3VudGVkIHtcbiAgICAgLy8vIEluY3JlbWVudHMgdGhlIHJlZmVyZW5jZSBjb3VudCBvbiB0aGUgb2JqZWN0LlxuLSAgICBmbiBpbmNfcmVmKFx1MDAyNnNlbGYpO1xuJiM0MzsgICAgLy8vXG4mIzQzOyAgICAvLy8gVGhpcyBmdW5jdGlvbiBzaG91bGQgbm90IGJlIGNhbGxlZCBhY2NpZGVudGFsbHk7IGEgdHlwZSBtaWdodCBkZWNsYXJlIHRoZWlyIG93biBgaW5jX3JlZmBcbiYjNDM7ICAgIC8vLyBmdW5jdGlvbiBhbmQgaXQgc2hvdWxkbiYjMzk7dCBiZSBjb25mdXNlZCB3aXRoIHRoaXMgb25lLlxuJiM0MzsgICAgZm4gaW5jX3JlZihvYmo6IFx1MDAyNlNlbGYpO1xuIFxuICAgICAvLy8gRGVjcmVtZW50cyB0aGUgcmVmZXJlbmNlIGNvdW50IG9uIHRoZSBvYmplY3QuXG4gICAgIC8vL1xuQEAgLTE0NSw3ICYjNDM7MTQ4LDcgQEAgcHViIGZuIGludG9fcmF3KG1lOiBTZWxmKSAtXHUwMDNlIE5vbk51bGxcdTAwM2NUXHUwMDNlIHtcbiBcbiBpbXBsXHUwMDNjVDogQWx3YXlzUmVmQ291bnRlZFx1MDAzZSBDbG9uZSBmb3IgQVJlZlx1MDAzY1RcdTAwM2Uge1xuICAgICBmbiBjbG9uZShcdTAwMjZzZWxmKSAtXHUwMDNlIFNlbGYge1xuLSAgICAgICAgc2VsZi5pbmNfcmVmKCk7XG4mIzQzOyAgICAgICAgVDo6aW5jX3JlZihzZWxmKTtcbiAgICAgICAgIC8vIFNBRkVUWTogV2UganVzdCBpbmNyZW1lbnRlZCB0aGUgcmVmY291bnQgYWJvdmUuXG4gICAgICAgICB1bnNhZmUgeyBTZWxmOjpmcm9tX3JhdyhzZWxmLnB0cikgfVxuICAgICB9XG5AQCAtMTYyLDcgJiM0MzsxNjUsNyBAQCBmbiBkZXJlZihcdTAwMjZzZWxmKSAtXHUwMDNlIFx1MDAyNlNlbGY6OlRhcmdldCB7XG4gXG4gaW1wbFx1MDAzY1Q6IEFsd2F5c1JlZkNvdW50ZWRcdTAwM2UgRnJvbVx1MDAzY1x1MDAyNlRcdTAwM2UgZm9yIEFSZWZcdTAwM2NUXHUwMDNlIHtcbiAgICAgZm4gZnJvbShiOiBcdTAwMjZUKSAtXHUwMDNlIFNlbGYge1xuLSAgICAgICAgYi5pbmNfcmVmKCk7XG4mIzQzOyAgICAgICAgVDo6aW5jX3JlZihiKTtcbiAgICAgICAgIC8vIFNBRkVUWTogV2UganVzdCBpbmNyZW1lbnRlZCB0aGUgcmVmY291bnQgYWJvdmUuXG4gICAgICAgICB1bnNhZmUgeyBTZWxmOjpmcm9tX3JhdyhOb25OdWxsOjpmcm9tKGIpKSB9XG4gICAgIH1cbmRpZmYgLS1naXQgYS9ydXN0L2tlcm5lbC90YXNrLnJzIGIvcnVzdC9rZXJuZWwvdGFzay5yc1xuaW5kZXggMzgyNzNmNGVlZGI1MTMuLmE3NzExZTE1NThjMmY1IDEwMDY0NFxuLS0tIGEvcnVzdC9rZXJuZWwvdGFzay5yc1xuJiM0MzsmIzQzOyYjNDM7IGIvcnVzdC9rZXJuZWwvdGFzay5yc1xuQEAgLTM0OSw5ICYjNDM7MzQ5LDkgQEAgcHViIGZuIGdyb3VwX2xlYWRlcihcdTAwMjZzZWxmKSAtXHUwMDNlIFx1MDAyNlRhc2sge1xuIC8vIFNBRkVUWTogVGhlIHR5cGUgaW52YXJpYW50cyBndWFyYW50ZWUgdGhhdCBgVGFza2AgaXMgYWx3YXlzIHJlZmNvdW50ZWQuXG4gdW5zYWZlIGltcGwgY3JhdGU6OnN5bmM6OmFyZWY6OkFsd2F5c1JlZkNvdW50ZWQgZm9yIFRhc2sge1xuICAgICAjW2lubGluZV1cbi0gICAgZm4gaW5jX3JlZihcdTAwMjZzZWxmKSB7XG4mIzQzOyAgICBmbiBpbmNfcmVmKG9iajogXHUwMDI2U2VsZikge1xuICAgICAgICAgLy8gU0FGRVRZOiBUaGUgZXhpc3RlbmNlIG9mIGEgc2hhcmVkIHJlZmVyZW5jZSBtZWFucyB0aGF0IHRoZSByZWZjb3VudCBpcyBub256ZXJvLlxuLSAgICAgICAgdW5zYWZlIHsgYmluZGluZ3M6OmdldF90YXNrX3N0cnVjdChzZWxmLmFzX3B0cigpKSB9O1xuJiM0MzsgICAgICAgIHVuc2FmZSB7IGJpbmRpbmdzOjpnZXRfdGFza19zdHJ1Y3Qob2JqLmFzX3B0cigpKSB9O1xuICAgICB9XG4gXG4gICAgICNbaW5saW5lXVxuZGlmZiAtLWdpdCBhL3J1c3Qva2VybmVsL3VzYi5ycyBiL3J1c3Qva2VybmVsL3VzYi5yc1xuaW5kZXggN2FmZjBjODJkMGFmYzAuLmMwMzkwNTljMTg5MTNjIDEwMDY0NFxuLS0tIGEvcnVzdC9rZXJuZWwvdXNiLnJzXG4mIzQzOyYjNDM7JiM0MzsgYi9ydXN0L2tlcm5lbC91c2IucnNcbkBAIC0zOTMsMTEgJiM0MzszOTMsMTEgQEAgZm4gYXNfcmVmKFx1MDAyNnNlbGYpIC1cdTAwM2UgXHUwMDI2RGV2aWNlIHtcbiBcbiAvLyBTQUZFVFk6IEluc3RhbmNlcyBvZiBgSW50ZXJmYWNlYCBhcmUgYWx3YXlzIHJlZmVyZW5jZS1jb3VudGVkLlxuIHVuc2FmZSBpbXBsIEFsd2F5c1JlZkNvdW50ZWQgZm9yIEludGVyZmFjZSB7XG4tICAgIGZuIGluY19yZWYoXHUwMDI2c2VsZikge1xuJiM0MzsgICAgZm4gaW5jX3JlZihvYmo6IFx1MDAyNlNlbGYpIHtcbiAgICAgICAgIC8vIFNBRkVUWTogVGhlIGludmFyaWFudHMgb2YgYEludGVyZmFjZWAgZ3VhcmFudGVlIHRoYXQgYHNlbGYuYXNfcmF3KClgXG4gICAgICAgICAvLyByZXR1cm5zIGEgdmFsaWQgYHN0cnVjdCB1c2JfaW50ZXJmYWNlYCBwb2ludGVyLCBmb3Igd2hpY2ggd2Ugd2lsbFxuICAgICAgICAgLy8gYWNxdWlyZSBhIG5ldyByZWZjb3VudC5cbi0gICAgICAgIHVuc2FmZSB7IGJpbmRpbmdzOjp1c2JfZ2V0X2ludGYoc2VsZi5hc19yYXcoKSkgfTtcbiYjNDM7ICAgICAgICB1bnNhZmUgeyBiaW5kaW5nczo6dXNiX2dldF9pbnRmKG9iai5hc19yYXcoKSkgfTtcbiAgICAgfVxuIFxuICAgICB1bnNhZmUgZm4gZGVjX3JlZihvYmo6IE5vbk51bGxcdTAwM2NTZWxmXHUwMDNlKSB7XG5AQCAtNDQ0LDExICYjNDM7NDQ0LDExIEBAIGZuIGFzX3JhdyhcdTAwMjZzZWxmKSAtXHUwMDNlICptdXQgYmluZGluZ3M6OnVzYl9kZXZpY2Uge1xuIFxuIC8vIFNBRkVUWTogSW5zdGFuY2VzIG9mIGBEZXZpY2VgIGFyZSBhbHdheXMgcmVmZXJlbmNlLWNvdW50ZWQuXG4gdW5zYWZlIGltcGwgQWx3YXlzUmVmQ291bnRlZCBmb3IgRGV2aWNlIHtcbi0gICAgZm4gaW5jX3JlZihcdTAwMjZzZWxmKSB7XG4mIzQzOyAgICBmbiBpbmNfcmVmKG9iajogXHUwMDI2U2VsZikge1xuICAgICAgICAgLy8gU0FGRVRZOiBUaGUgaW52YXJpYW50cyBvZiBgRGV2aWNlYCBndWFyYW50ZWUgdGhhdCBgc2VsZi5hc19yYXcoKWBcbiAgICAgICAgIC8vIHJldHVybnMgYSB2YWxpZCBgc3RydWN0IHVzYl9kZXZpY2VgIHBvaW50ZXIsIGZvciB3aGljaCB3ZSB3aWxsXG4gICAgICAgICAvLyBhY3F1aXJlIGEgbmV3IHJlZmNvdW50LlxuLSAgICAgICAgdW5zYWZlIHsgYmluZGluZ3M6OnVzYl9nZXRfZGV2KHNlbGYuYXNfcmF3KCkpIH07XG4mIzQzOyAgICAgICAgdW5zYWZlIHsgYmluZGluZ3M6OnVzYl9nZXRfZGV2KG9iai5hc19yYXcoKSkgfTtcbiAgICAgfVxuIFxuICAgICB1bnNhZmUgZm4gZGVjX3JlZihvYmo6IE5vbk51bGxcdTAwM2NTZWxmXHUwMDNlKSB7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Mi8xPC90ZD4KCQkJPHRkPjIwMjYvMDYvMjggMDk6NTI8L3RkPgoJCQk8dGQ+YWdlbnQ8L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IG51bGwsCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogW10sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggaXMgYSBwdXJlbHkgc3ludGFjdGljIHJlZmFjdG9yaW5nIGluIHRoZSBSdXN0IGtlcm5lbCBiaW5kaW5ncy4gSXQgY2hhbmdlcyB0aGUgc2lnbmF0dXJlIG9mIHRoZSBgaW5jX3JlZmAgbWV0aG9kIGluIHRoZSBgQWx3YXlzUmVmQ291bnRlZGAgdHJhaXQgZnJvbSBgZm4gaW5jX3JlZihcdTAwMjZzZWxmKWAgdG8gYGZuIGluY19yZWYob2JqOiBcdTAwMjZTZWxmKWAgdG8gcHJldmVudCBhY2NpZGVudGFsIG1ldGhvZCByZXNvbHV0aW9uIGNvbmZsaWN0cy4gSXQgZG9lcyBub3QgYWx0ZXIgYW55IGZ1bmN0aW9uYWwgbG9naWMgb3IgZXhlY3V0aW9uIGZsb3cgaW4gdGhlIGtlcm5lbC4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5JbnN0cnVjdGlvbjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLgpZb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZQppZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuCgpJTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW4KeW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5CnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuCgpSZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOgotIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuCi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuCi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LgotIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSwKZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLgoKSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaAp0b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS4KCldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOgoxLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLgogICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy4KMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuCiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy4KICAgRG8gbm90IGxpc3QgdG9vIGdlbmVyaWMgY29uZmlncyAod2UgYWxyZWFkeSBoYXZlIHRoZW0gZW5hYmxlZCkuIE9ubHkgbGlzdCB0aG9zZSB0aGF0CiAgIHNwZWNpZmljYWxseSBjb3ZlciB0aGUgbW9kaWZpZWQgY29kZS4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzIG91dHB1dCBhcnJheSwKICAgYW5kIERPIE5PVCBhZGQgYSAmIzM5O0NPTkZJR18mIzM5OyBwcmVmaXggKGUuZy4sIHJldHVybiAmIzM0O05FVF9JUFY0JiMzNDsgaW5zdGVhZCBvZiAmIzM0O0NPTkZJR19ORVRfSVBWNCYjMzQ7KS4KUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuCgoKVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy4KSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuCklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC4KPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Qcm9tcHQ6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Gb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczoKY29tbWl0IDZmMDUxNTI1ZDk4MzYzZTEwYTVkODkzYTIxOGM1NTJlZmExN2JmODIKQXV0aG9yOiBzeXotY2x1c3RlciAmbHQ7dHJpYWdlQHN5emthbGxlci5jb20mZ3Q7CkRhdGU6ICAgU3VuIEp1biAyOCAwOTo1MjowNSAyMDI2ICYjNDM7MDAwMAoKICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlldwoKZGlmZiAtLWdpdCBhL3J1c3Qva2VybmVsL2F1eGlsaWFyeS5ycyBiL3J1c3Qva2VybmVsL2F1eGlsaWFyeS5ycwppbmRleCBjNDI5MjhkNWEyMzkzZi4uNzVhNjFiNTFjZjc5OGQgMTAwNjQ0Ci0tLSBhL3J1c3Qva2VybmVsL2F1eGlsaWFyeS5ycwomIzQzOyYjNDM7JiM0MzsgYi9ydXN0L2tlcm5lbC9hdXhpbGlhcnkucnMKQEAgLTM0NSw5ICYjNDM7MzQ1LDkgQEAgdW5zYWZlIGltcGwmbHQ7Q3R4OiBkZXZpY2U6OkRldmljZUNvbnRleHQmZ3Q7IGRldmljZTo6QXNCdXNEZXZpY2UmbHQ7Q3R4Jmd0OyBmb3IgRGV2aWNlJmx0O0N0eCZndDsKIAogLy8gU0FGRVRZOiBJbnN0YW5jZXMgb2YgYERldmljZWAgYXJlIGFsd2F5cyByZWZlcmVuY2UtY291bnRlZC4KIHVuc2FmZSBpbXBsIGNyYXRlOjpzeW5jOjphcmVmOjpBbHdheXNSZWZDb3VudGVkIGZvciBEZXZpY2UgewotICAgIGZuIGluY19yZWYoJmFtcDtzZWxmKSB7CiYjNDM7ICAgIGZuIGluY19yZWYob2JqOiAmYW1wO1NlbGYpIHsKICAgICAgICAgLy8gU0FGRVRZOiBUaGUgZXhpc3RlbmNlIG9mIGEgc2hhcmVkIHJlZmVyZW5jZSBndWFyYW50ZWVzIHRoYXQgdGhlIHJlZmNvdW50IGlzIG5vbi16ZXJvLgotICAgICAgICB1bnNhZmUgeyBiaW5kaW5nczo6Z2V0X2RldmljZShzZWxmLmFzX3JlZigpLmFzX3JhdygpKSB9OwomIzQzOyAgICAgICAgdW5zYWZlIHsgYmluZGluZ3M6OmdldF9kZXZpY2Uob2JqLmFzX3JlZigpLmFzX3JhdygpKSB9OwogICAgIH0KIAogICAgIHVuc2FmZSBmbiBkZWNfcmVmKG9iajogTm9uTnVsbCZsdDtTZWxmJmd0OykgewpkaWZmIC0tZ2l0IGEvcnVzdC9rZXJuZWwvYmxvY2svbXEvcmVxdWVzdC5ycyBiL3J1c3Qva2VybmVsL2Jsb2NrL21xL3JlcXVlc3QucnMKaW5kZXggY2UzZTMwYzgxY2I1ZWQuLmY0MWQwMWVhNDU5NTFjIDEwMDY0NAotLS0gYS9ydXN0L2tlcm5lbC9ibG9jay9tcS9yZXF1ZXN0LnJzCiYjNDM7JiM0MzsmIzQzOyBiL3J1c3Qva2VybmVsL2Jsb2NrL21xL3JlcXVlc3QucnMKQEAgLTIzNCw4ICYjNDM7MjM0LDggQEAgdW5zYWZlIGltcGwmbHQ7VDogT3BlcmF0aW9ucyZndDsgU3luYyBmb3IgUmVxdWVzdCZsdDtUJmd0OyB7fQogLy8ga2VlcHMgdGhlIG9iamVjdCBhbGl2ZSBpbiBtZW1vcnkgYXQgbGVhc3QgdW50aWwgYSBtYXRjaGluZyByZWZlcmVuY2UgY291bnQKIC8vIGRlY3JlbWVudCBpcyBleGVjdXRlZC4KIHVuc2FmZSBpbXBsJmx0O1Q6IE9wZXJhdGlvbnMmZ3Q7IEFsd2F5c1JlZkNvdW50ZWQgZm9yIFJlcXVlc3QmbHQ7VCZndDsgewotICAgIGZuIGluY19yZWYoJmFtcDtzZWxmKSB7Ci0gICAgICAgIHNlbGYud3JhcHBlcl9yZWYoKS5yZWZjb3VudCgpLmluYygpOwomIzQzOyAgICBmbiBpbmNfcmVmKG9iajogJmFtcDtTZWxmKSB7CiYjNDM7ICAgICAgICBvYmoud3JhcHBlcl9yZWYoKS5yZWZjb3VudCgpLmluYygpOwogICAgIH0KIAogICAgIHVuc2FmZSBmbiBkZWNfcmVmKG9iajogY29yZTo6cHRyOjpOb25OdWxsJmx0O1NlbGYmZ3Q7KSB7CmRpZmYgLS1naXQgYS9ydXN0L2tlcm5lbC9jcmVkLnJzIGIvcnVzdC9rZXJuZWwvY3JlZC5ycwppbmRleCBmZmExNTZiOWRmMzc3ZS4uZDUzY2JjNzkyZmEzYTkgMTAwNjQ0Ci0tLSBhL3J1c3Qva2VybmVsL2NyZWQucnMKJiM0MzsmIzQzOyYjNDM7IGIvcnVzdC9rZXJuZWwvY3JlZC5ycwpAQCAtNzgsOSAmIzQzOzc4LDkgQEAgcHViIGZuIGV1aWQoJmFtcDtzZWxmKSAtJmd0OyBLdWlkIHsKIC8vIFNBRkVUWTogVGhlIHR5cGUgaW52YXJpYW50cyBndWFyYW50ZWUgdGhhdCBgQ3JlZGVudGlhbGAgaXMgYWx3YXlzIHJlZi1jb3VudGVkLgogdW5zYWZlIGltcGwgQWx3YXlzUmVmQ291bnRlZCBmb3IgQ3JlZGVudGlhbCB7CiAgICAgI1tpbmxpbmVdCi0gICAgZm4gaW5jX3JlZigmYW1wO3NlbGYpIHsKJiM0MzsgICAgZm4gaW5jX3JlZihvYmo6ICZhbXA7U2VsZikgewogICAgICAgICAvLyBTQUZFVFk6IFRoZSBleGlzdGVuY2Ugb2YgYSBzaGFyZWQgcmVmZXJlbmNlIG1lYW5zIHRoYXQgdGhlIHJlZmNvdW50IGlzIG5vbnplcm8uCi0gICAgICAgIHVuc2FmZSB7IGJpbmRpbmdzOjpnZXRfY3JlZChzZWxmLjAuZ2V0KCkpIH07CiYjNDM7ICAgICAgICB1bnNhZmUgeyBiaW5kaW5nczo6Z2V0X2NyZWQob2JqLjAuZ2V0KCkpIH07CiAgICAgfQogCiAgICAgI1tpbmxpbmVdCmRpZmYgLS1naXQgYS9ydXN0L2tlcm5lbC9kZXZpY2UucnMgYi9ydXN0L2tlcm5lbC9kZXZpY2UucnMKaW5kZXggNjQ1YWZjNDlhMjdkNjQuLmVjNDRkY2M0MDVkNTExIDEwMDY0NAotLS0gYS9ydXN0L2tlcm5lbC9kZXZpY2UucnMKJiM0MzsmIzQzOyYjNDM7IGIvcnVzdC9rZXJuZWwvZGV2aWNlLnJzCkBAIC00NDksOSAmIzQzOzQ0OSw5IEBAIHB1YiBmbiBuYW1lKCZhbXA7c2VsZikgLSZndDsgJmFtcDtDU3RyIHsKIAogLy8gU0FGRVRZOiBJbnN0YW5jZXMgb2YgYERldmljZWAgYXJlIGFsd2F5cyByZWZlcmVuY2UtY291bnRlZC4KIHVuc2FmZSBpbXBsIGNyYXRlOjpzeW5jOjphcmVmOjpBbHdheXNSZWZDb3VudGVkIGZvciBEZXZpY2UgewotICAgIGZuIGluY19yZWYoJmFtcDtzZWxmKSB7CiYjNDM7ICAgIGZuIGluY19yZWYob2JqOiAmYW1wO1NlbGYpIHsKICAgICAgICAgLy8gU0FGRVRZOiBUaGUgZXhpc3RlbmNlIG9mIGEgc2hhcmVkIHJlZmVyZW5jZSBndWFyYW50ZWVzIHRoYXQgdGhlIHJlZmNvdW50IGlzIG5vbi16ZXJvLgotICAgICAgICB1bnNhZmUgeyBiaW5kaW5nczo6Z2V0X2RldmljZShzZWxmLmFzX3JhdygpKSB9OwomIzQzOyAgICAgICAgdW5zYWZlIHsgYmluZGluZ3M6OmdldF9kZXZpY2Uob2JqLmFzX3JhdygpKSB9OwogICAgIH0KIAogICAgIHVuc2FmZSBmbiBkZWNfcmVmKG9iajogcHRyOjpOb25OdWxsJmx0O1NlbGYmZ3Q7KSB7CmRpZmYgLS1naXQgYS9ydXN0L2tlcm5lbC9kZXZpY2UvcHJvcGVydHkucnMgYi9ydXN0L2tlcm5lbC9kZXZpY2UvcHJvcGVydHkucnMKaW5kZXggNWFlYWQ4MzVmYmJjMDIuLmMzOWNjYzE0NThiOTVlIDEwMDY0NAotLS0gYS9ydXN0L2tlcm5lbC9kZXZpY2UvcHJvcGVydHkucnMKJiM0MzsmIzQzOyYjNDM7IGIvcnVzdC9rZXJuZWwvZGV2aWNlL3Byb3BlcnR5LnJzCkBAIC0zNjEsMTAgJiM0MzszNjEsMTAgQEAgZm4gZm10KCZhbXA7c2VsZiwgZjogJmFtcDttdXQgZm10OjpGb3JtYXR0ZXImbHQ7JiMzOTtfJmd0OykgLSZndDsgZm10OjpSZXN1bHQgewogCiAvLyBTQUZFVFk6IEluc3RhbmNlcyBvZiBgRndOb2RlYCBhcmUgYWx3YXlzIHJlZmVyZW5jZS1jb3VudGVkLgogdW5zYWZlIGltcGwgY3JhdGU6OnN5bmM6OmFyZWY6OkFsd2F5c1JlZkNvdW50ZWQgZm9yIEZ3Tm9kZSB7Ci0gICAgZm4gaW5jX3JlZigmYW1wO3NlbGYpIHsKJiM0MzsgICAgZm4gaW5jX3JlZihvYmo6ICZhbXA7U2VsZikgewogICAgICAgICAvLyBTQUZFVFk6IFRoZSBleGlzdGVuY2Ugb2YgYSBzaGFyZWQgcmVmZXJlbmNlIGd1YXJhbnRlZXMgdGhhdCB0aGUKICAgICAgICAgLy8gcmVmY291bnQgaXMgbm9uLXplcm8uCi0gICAgICAgIHVuc2FmZSB7IGJpbmRpbmdzOjpmd25vZGVfaGFuZGxlX2dldChzZWxmLmFzX3JhdygpKSB9OwomIzQzOyAgICAgICAgdW5zYWZlIHsgYmluZGluZ3M6OmZ3bm9kZV9oYW5kbGVfZ2V0KG9iai5hc19yYXcoKSkgfTsKICAgICB9CiAKICAgICB1bnNhZmUgZm4gZGVjX3JlZihvYmo6IHB0cjo6Tm9uTnVsbCZsdDtTZWxmJmd0OykgewpkaWZmIC0tZ2l0IGEvcnVzdC9rZXJuZWwvZHJtL2RldmljZS5ycyBiL3J1c3Qva2VybmVsL2RybS9kZXZpY2UucnMKaW5kZXggNDc3Y2Y3NzFmYjEwZWYuLjBjNzBlYzAxMGJkOTExIDEwMDY0NAotLS0gYS9ydXN0L2tlcm5lbC9kcm0vZGV2aWNlLnJzCiYjNDM7JiM0MzsmIzQzOyBiL3J1c3Qva2VybmVsL2RybS9kZXZpY2UucnMKQEAgLTM2Myw5ICYjNDM7MzYzLDkgQEAgZm4gZGVyZWYoJmFtcDtzZWxmKSAtJmd0OyAmYW1wO1NlbGY6OlRhcmdldCB7CiAvLyBTQUZFVFk6IERSTSBkZXZpY2Ugb2JqZWN0cyBhcmUgYWx3YXlzIHJlZmVyZW5jZSBjb3VudGVkIGFuZCB0aGUgZ2V0L3B1dCBmdW5jdGlvbnMKIC8vIHNhdGlzZnkgdGhlIHJlcXVpcmVtZW50cy4KIHVuc2FmZSBpbXBsJmx0O1Q6IGRybTo6RHJpdmVyLCBDOiBEZXZpY2VDb250ZXh0Jmd0OyBBbHdheXNSZWZDb3VudGVkIGZvciBEZXZpY2UmbHQ7VCwgQyZndDsgewotICAgIGZuIGluY19yZWYoJmFtcDtzZWxmKSB7CiYjNDM7ICAgIGZuIGluY19yZWYob2JqOiAmYW1wO1NlbGYpIHsKICAgICAgICAgLy8gU0FGRVRZOiBUaGUgZXhpc3RlbmNlIG9mIGEgc2hhcmVkIHJlZmVyZW5jZSBndWFyYW50ZWVzIHRoYXQgdGhlIHJlZmNvdW50IGlzIG5vbi16ZXJvLgotICAgICAgICB1bnNhZmUgeyBiaW5kaW5nczo6ZHJtX2Rldl9nZXQoc2VsZi5hc19yYXcoKSkgfTsKJiM0MzsgICAgICAgIHVuc2FmZSB7IGJpbmRpbmdzOjpkcm1fZGV2X2dldChvYmouYXNfcmF3KCkpIH07CiAgICAgfQogCiAgICAgdW5zYWZlIGZuIGRlY19yZWYob2JqOiBOb25OdWxsJmx0O1NlbGYmZ3Q7KSB7CmRpZmYgLS1naXQgYS9ydXN0L2tlcm5lbC9kcm0vZ2VtL21vZC5ycyBiL3J1c3Qva2VybmVsL2RybS9nZW0vbW9kLnJzCmluZGV4IGM4YjY2ZDgxNjg3MTk5Li5lZTllNDEyMDY2YWJiNyAxMDA2NDQKLS0tIGEvcnVzdC9rZXJuZWwvZHJtL2dlbS9tb2QucnMKJiM0MzsmIzQzOyYjNDM7IGIvcnVzdC9rZXJuZWwvZHJtL2dlbS9tb2QucnMKQEAgLTUyLDEwICYjNDM7NTIsMTAgQEAgdW5zYWZlIGltcGwgJCggJmx0OyQoICR0cGFyYW1faWQgKSwmIzQzOyZndDsgKT8gJGNyYXRlOjpzeW5jOjphcmVmOjpBbHdheXNSZWZDb3VudGVkIGZvciAkCiAgICAgICAgICAgICBTZWxmOiBJbnRvR0VNT2JqZWN0LAogICAgICAgICAgICAgJCggJCggJGJpbmRfcGFyYW0gOiAkYmluZF90cmFpdCApLCYjNDM7ICk/CiAgICAgICAgIHsKLSAgICAgICAgICAgIGZuIGluY19yZWYoJmFtcDtzZWxmKSB7CiYjNDM7ICAgICAgICAgICAgZm4gaW5jX3JlZihvYmo6ICZhbXA7U2VsZikgewogICAgICAgICAgICAgICAgIC8vIFNBRkVUWTogVGhlIGV4aXN0ZW5jZSBvZiBhIHNoYXJlZCByZWZlcmVuY2UgZ3VhcmFudGVlcyB0aGF0IHRoZSByZWZjb3VudCBpcwogICAgICAgICAgICAgICAgIC8vIG5vbi16ZXJvLgotICAgICAgICAgICAgICAgIHVuc2FmZSB7IGJpbmRpbmdzOjpkcm1fZ2VtX29iamVjdF9nZXQoc2VsZi5hc19yYXcoKSkgfTsKJiM0MzsgICAgICAgICAgICAgICAgdW5zYWZlIHsgYmluZGluZ3M6OmRybV9nZW1fb2JqZWN0X2dldChvYmouYXNfcmF3KCkpIH07CiAgICAgICAgICAgICB9CiAKICAgICAgICAgICAgIHVuc2FmZSBmbiBkZWNfcmVmKG9iajogY29yZTo6cHRyOjpOb25OdWxsJmx0O1NlbGYmZ3Q7KSB7CmRpZmYgLS1naXQgYS9ydXN0L2tlcm5lbC9mcy9maWxlLnJzIGIvcnVzdC9rZXJuZWwvZnMvZmlsZS5ycwppbmRleCAyM2VlNjg5YmQyNDAwNS4uOGU1OTY3YWZjZDExZjIgMTAwNjQ0Ci0tLSBhL3J1c3Qva2VybmVsL2ZzL2ZpbGUucnMKJiM0MzsmIzQzOyYjNDM7IGIvcnVzdC9rZXJuZWwvZnMvZmlsZS5ycwpAQCAtMTk5LDkgJiM0MzsxOTksOSBAQCB1bnNhZmUgaW1wbCBTeW5jIGZvciBGaWxlIHt9CiAvLyBtYWtlcyBgQVJlZiZsdDtGaWxlJmd0O2Agb3duIGEgbm9ybWFsIHJlZmNvdW50LgogdW5zYWZlIGltcGwgQWx3YXlzUmVmQ291bnRlZCBmb3IgRmlsZSB7CiAgICAgI1tpbmxpbmVdCi0gICAgZm4gaW5jX3JlZigmYW1wO3NlbGYpIHsKJiM0MzsgICAgZm4gaW5jX3JlZihvYmo6ICZhbXA7U2VsZikgewogICAgICAgICAvLyBTQUZFVFk6IFRoZSBleGlzdGVuY2Ugb2YgYSBzaGFyZWQgcmVmZXJlbmNlIG1lYW5zIHRoYXQgdGhlIHJlZmNvdW50IGlzIG5vbnplcm8uCi0gICAgICAgIHVuc2FmZSB7IGJpbmRpbmdzOjpnZXRfZmlsZShzZWxmLmFzX3B0cigpKSB9OwomIzQzOyAgICAgICAgdW5zYWZlIHsgYmluZGluZ3M6OmdldF9maWxlKG9iai5hc19wdHIoKSkgfTsKICAgICB9CiAKICAgICAjW2lubGluZV0KQEAgLTIzNSw5ICYjNDM7MjM1LDkgQEAgcHViIHN0cnVjdCBMb2NhbEZpbGUgewogLy8gbWFrZXMgYEFSZWYmbHQ7TG9jYWxGaWxlJmd0O2Agb3duIGEgbm9ybWFsIHJlZmNvdW50LgogdW5zYWZlIGltcGwgQWx3YXlzUmVmQ291bnRlZCBmb3IgTG9jYWxGaWxlIHsKICAgICAjW2lubGluZV0KLSAgICBmbiBpbmNfcmVmKCZhbXA7c2VsZikgewomIzQzOyAgICBmbiBpbmNfcmVmKG9iajogJmFtcDtTZWxmKSB7CiAgICAgICAgIC8vIFNBRkVUWTogVGhlIGV4aXN0ZW5jZSBvZiBhIHNoYXJlZCByZWZlcmVuY2UgbWVhbnMgdGhhdCB0aGUgcmVmY291bnQgaXMgbm9uemVyby4KLSAgICAgICAgdW5zYWZlIHsgYmluZGluZ3M6OmdldF9maWxlKHNlbGYuYXNfcHRyKCkpIH07CiYjNDM7ICAgICAgICB1bnNhZmUgeyBiaW5kaW5nczo6Z2V0X2ZpbGUob2JqLmFzX3B0cigpKSB9OwogICAgIH0KIAogICAgICNbaW5saW5lXQpkaWZmIC0tZ2l0IGEvcnVzdC9rZXJuZWwvaTJjLnJzIGIvcnVzdC9rZXJuZWwvaTJjLnJzCmluZGV4IDYyNGI5NzFjYThiMGIyLi4xYTk4ODJhNjRjNGI4ZSAxMDA2NDQKLS0tIGEvcnVzdC9rZXJuZWwvaTJjLnJzCiYjNDM7JiM0MzsmIzQzOyBiL3J1c3Qva2VybmVsL2kyYy5ycwpAQCAtNDI1LDkgJiM0Mzs0MjUsOSBAQCBwdWIgZm4gZ2V0KGluZGV4OiBpMzIpIC0mZ3Q7IFJlc3VsdCZsdDtBUmVmJmx0O1NlbGYmZ3Q7Jmd0OyB7CiAKIC8vIFNBRkVUWTogSW5zdGFuY2VzIG9mIGBJMmNBZGFwdGVyYCBhcmUgYWx3YXlzIHJlZmVyZW5jZS1jb3VudGVkLgogdW5zYWZlIGltcGwgQWx3YXlzUmVmQ291bnRlZCBmb3IgSTJjQWRhcHRlciB7Ci0gICAgZm4gaW5jX3JlZigmYW1wO3NlbGYpIHsKJiM0MzsgICAgZm4gaW5jX3JlZihvYmo6ICZhbXA7U2VsZikgewogICAgICAgICAvLyBTQUZFVFk6IFRoZSBleGlzdGVuY2Ugb2YgYSBzaGFyZWQgcmVmZXJlbmNlIGd1YXJhbnRlZXMgdGhhdCB0aGUgcmVmY291bnQgaXMgbm9uLXplcm8uCi0gICAgICAgIHVuc2FmZSB7IGJpbmRpbmdzOjppMmNfZ2V0X2FkYXB0ZXIoc2VsZi5pbmRleCgpKSB9OwomIzQzOyAgICAgICAgdW5zYWZlIHsgYmluZGluZ3M6OmkyY19nZXRfYWRhcHRlcihvYmouaW5kZXgoKSkgfTsKICAgICB9CiAKICAgICB1bnNhZmUgZm4gZGVjX3JlZihvYmo6IE5vbk51bGwmbHQ7U2VsZiZndDspIHsKQEAgLTUwMSw5ICYjNDM7NTAxLDkgQEAgdW5zYWZlIGltcGwmbHQ7Q3R4OiBkZXZpY2U6OkRldmljZUNvbnRleHQmZ3Q7IGRldmljZTo6QXNCdXNEZXZpY2UmbHQ7Q3R4Jmd0OyBmb3IgSTJjQ2xpZW50Jmx0O0MKIAogLy8gU0FGRVRZOiBJbnN0YW5jZXMgb2YgYEkyY0NsaWVudGAgYXJlIGFsd2F5cyByZWZlcmVuY2UtY291bnRlZC4KIHVuc2FmZSBpbXBsIEFsd2F5c1JlZkNvdW50ZWQgZm9yIEkyY0NsaWVudCB7Ci0gICAgZm4gaW5jX3JlZigmYW1wO3NlbGYpIHsKJiM0MzsgICAgZm4gaW5jX3JlZihvYmo6ICZhbXA7U2VsZikgewogICAgICAgICAvLyBTQUZFVFk6IFRoZSBleGlzdGVuY2Ugb2YgYSBzaGFyZWQgcmVmZXJlbmNlIGd1YXJhbnRlZXMgdGhhdCB0aGUgcmVmY291bnQgaXMgbm9uLXplcm8uCi0gICAgICAgIHVuc2FmZSB7IGJpbmRpbmdzOjpnZXRfZGV2aWNlKHNlbGYuYXNfcmVmKCkuYXNfcmF3KCkpIH07CiYjNDM7ICAgICAgICB1bnNhZmUgeyBiaW5kaW5nczo6Z2V0X2RldmljZShvYmouYXNfcmVmKCkuYXNfcmF3KCkpIH07CiAgICAgfQogCiAgICAgdW5zYWZlIGZuIGRlY19yZWYob2JqOiBOb25OdWxsJmx0O1NlbGYmZ3Q7KSB7CmRpZmYgLS1naXQgYS9ydXN0L2tlcm5lbC9tbS5ycyBiL3J1c3Qva2VybmVsL21tLnJzCmluZGV4IDQ3NjRkN2I2OGYyYTdmLi5jOTU1Y2JkODg0YjhiNyAxMDA2NDQKLS0tIGEvcnVzdC9rZXJuZWwvbW0ucnMKJiM0MzsmIzQzOyYjNDM7IGIvcnVzdC9rZXJuZWwvbW0ucnMKQEAgLTU3LDkgJiM0Mzs1Nyw5IEBAIHVuc2FmZSBpbXBsIFN5bmMgZm9yIE1tIHt9CiAvLyBTQUZFVFk6IEJ5IHRoZSB0eXBlIGludmFyaWFudHMsIHRoaXMgdHlwZSBpcyBhbHdheXMgcmVmY291bnRlZC4KIHVuc2FmZSBpbXBsIEFsd2F5c1JlZkNvdW50ZWQgZm9yIE1tIHsKICAgICAjW2lubGluZV0KLSAgICBmbiBpbmNfcmVmKCZhbXA7c2VsZikgewomIzQzOyAgICBmbiBpbmNfcmVmKG9iajogJmFtcDtTZWxmKSB7CiAgICAgICAgIC8vIFNBRkVUWTogVGhlIHBvaW50ZXIgaXMgdmFsaWQgc2luY2Ugc2VsZiBpcyBhIHJlZmVyZW5jZS4KLSAgICAgICAgdW5zYWZlIHsgYmluZGluZ3M6Om1tZ3JhYihzZWxmLmFzX3JhdygpKSB9OwomIzQzOyAgICAgICAgdW5zYWZlIHsgYmluZGluZ3M6Om1tZ3JhYihvYmouYXNfcmF3KCkpIH07CiAgICAgfQogCiAgICAgI1tpbmxpbmVdCkBAIC05Myw5ICYjNDM7OTMsOSBAQCB1bnNhZmUgaW1wbCBTeW5jIGZvciBNbVdpdGhVc2VyIHt9CiAvLyBTQUZFVFk6IEJ5IHRoZSB0eXBlIGludmFyaWFudHMsIHRoaXMgdHlwZSBpcyBhbHdheXMgcmVmY291bnRlZC4KIHVuc2FmZSBpbXBsIEFsd2F5c1JlZkNvdW50ZWQgZm9yIE1tV2l0aFVzZXIgewogICAgICNbaW5saW5lXQotICAgIGZuIGluY19yZWYoJmFtcDtzZWxmKSB7CiYjNDM7ICAgIGZuIGluY19yZWYob2JqOiAmYW1wO1NlbGYpIHsKICAgICAgICAgLy8gU0FGRVRZOiBUaGUgcG9pbnRlciBpcyB2YWxpZCBzaW5jZSBzZWxmIGlzIGEgcmVmZXJlbmNlLgotICAgICAgICB1bnNhZmUgeyBiaW5kaW5nczo6bW1nZXQoc2VsZi5hc19yYXcoKSkgfTsKJiM0MzsgICAgICAgIHVuc2FmZSB7IGJpbmRpbmdzOjptbWdldChvYmouYXNfcmF3KCkpIH07CiAgICAgfQogCiAgICAgI1tpbmxpbmVdCmRpZmYgLS1naXQgYS9ydXN0L2tlcm5lbC9tbS9tbXB1dF9hc3luYy5ycyBiL3J1c3Qva2VybmVsL21tL21tcHV0X2FzeW5jLnJzCmluZGV4IGI4ZDJmMDUxMjI1YzczLi43ZGY0MDc3NzY1NGNlNyAxMDA2NDQKLS0tIGEvcnVzdC9rZXJuZWwvbW0vbW1wdXRfYXN5bmMucnMKJiM0MzsmIzQzOyYjNDM7IGIvcnVzdC9rZXJuZWwvbW0vbW1wdXRfYXN5bmMucnMKQEAgLTM2LDkgJiM0MzszNiw5IEBAIHVuc2FmZSBpbXBsIFN5bmMgZm9yIE1tV2l0aFVzZXJBc3luYyB7fQogLy8gU0FGRVRZOiBCeSB0aGUgdHlwZSBpbnZhcmlhbnRzLCB0aGlzIHR5cGUgaXMgYWx3YXlzIHJlZmNvdW50ZWQuCiB1bnNhZmUgaW1wbCBBbHdheXNSZWZDb3VudGVkIGZvciBNbVdpdGhVc2VyQXN5bmMgewogICAgICNbaW5saW5lXQotICAgIGZuIGluY19yZWYoJmFtcDtzZWxmKSB7CiYjNDM7ICAgIGZuIGluY19yZWYob2JqOiAmYW1wO1NlbGYpIHsKICAgICAgICAgLy8gU0FGRVRZOiBUaGUgcG9pbnRlciBpcyB2YWxpZCBzaW5jZSBzZWxmIGlzIGEgcmVmZXJlbmNlLgotICAgICAgICB1bnNhZmUgeyBiaW5kaW5nczo6bW1nZXQoc2VsZi5hc19yYXcoKSkgfTsKJiM0MzsgICAgICAgIHVuc2FmZSB7IGJpbmRpbmdzOjptbWdldChvYmouYXNfcmF3KCkpIH07CiAgICAgfQogCiAgICAgI1tpbmxpbmVdCmRpZmYgLS1naXQgYS9ydXN0L2tlcm5lbC9wY2kucnMgYi9ydXN0L2tlcm5lbC9wY2kucnMKaW5kZXggNTA3MWNhZTY1NDNmZDIuLjBmMTZjZjBkYTNkNzU2IDEwMDY0NAotLS0gYS9ydXN0L2tlcm5lbC9wY2kucnMKJiM0MzsmIzQzOyYjNDM7IGIvcnVzdC9rZXJuZWwvcGNpLnJzCkBAIC00ODIsOSAmIzQzOzQ4Miw5IEBAIGltcGwmbHQ7JiMzOTthJmd0OyBjcmF0ZTo6ZG1hOjpEZXZpY2UmbHQ7JiMzOTthJmd0OyBmb3IgRGV2aWNlJmx0O2RldmljZTo6Q29yZSZsdDsmIzM5O2EmZ3Q7Jmd0OyB7fQogCiAvLyBTQUZFVFk6IEluc3RhbmNlcyBvZiBgRGV2aWNlYCBhcmUgYWx3YXlzIHJlZmVyZW5jZS1jb3VudGVkLgogdW5zYWZlIGltcGwgY3JhdGU6OnN5bmM6OmFyZWY6OkFsd2F5c1JlZkNvdW50ZWQgZm9yIERldmljZSB7Ci0gICAgZm4gaW5jX3JlZigmYW1wO3NlbGYpIHsKJiM0MzsgICAgZm4gaW5jX3JlZihvYmo6ICZhbXA7U2VsZikgewogICAgICAgICAvLyBTQUZFVFk6IFRoZSBleGlzdGVuY2Ugb2YgYSBzaGFyZWQgcmVmZXJlbmNlIGd1YXJhbnRlZXMgdGhhdCB0aGUgcmVmY291bnQgaXMgbm9uLXplcm8uCi0gICAgICAgIHVuc2FmZSB7IGJpbmRpbmdzOjpwY2lfZGV2X2dldChzZWxmLmFzX3JhdygpKSB9OwomIzQzOyAgICAgICAgdW5zYWZlIHsgYmluZGluZ3M6OnBjaV9kZXZfZ2V0KG9iai5hc19yYXcoKSkgfTsKICAgICB9CiAKICAgICB1bnNhZmUgZm4gZGVjX3JlZihvYmo6IE5vbk51bGwmbHQ7U2VsZiZndDspIHsKZGlmZiAtLWdpdCBhL3J1c3Qva2VybmVsL3BpZF9uYW1lc3BhY2UucnMgYi9ydXN0L2tlcm5lbC9waWRfbmFtZXNwYWNlLnJzCmluZGV4IDk3OWE5NzE4ZjE1M2Q4Li4zODFjOWY5ODBiMWZjNCAxMDA2NDQKLS0tIGEvcnVzdC9rZXJuZWwvcGlkX25hbWVzcGFjZS5ycwomIzQzOyYjNDM7JiM0MzsgYi9ydXN0L2tlcm5lbC9waWRfbmFtZXNwYWNlLnJzCkBAIC00Myw5ICYjNDM7NDMsOSBAQCBwdWIgdW5zYWZlIGZuIGZyb21fcHRyJmx0OyYjMzk7YSZndDsocHRyOiAqY29uc3QgYmluZGluZ3M6OnBpZF9uYW1lc3BhY2UpIC0mZ3Q7ICZhbXA7JiMzOTthIFNlbGYgewogLy8gU0FGRVRZOiBJbnN0YW5jZXMgb2YgYFBpZE5hbWVzcGFjZWAgYXJlIGFsd2F5cyByZWZlcmVuY2UtY291bnRlZC4KIHVuc2FmZSBpbXBsIEFsd2F5c1JlZkNvdW50ZWQgZm9yIFBpZE5hbWVzcGFjZSB7CiAgICAgI1tpbmxpbmVdCi0gICAgZm4gaW5jX3JlZigmYW1wO3NlbGYpIHsKJiM0MzsgICAgZm4gaW5jX3JlZihvYmo6ICZhbXA7U2VsZikgewogICAgICAgICAvLyBTQUZFVFk6IFRoZSBleGlzdGVuY2Ugb2YgYSBzaGFyZWQgcmVmZXJlbmNlIG1lYW5zIHRoYXQgdGhlIHJlZmNvdW50IGlzIG5vbnplcm8uCi0gICAgICAgIHVuc2FmZSB7IGJpbmRpbmdzOjpnZXRfcGlkX25zKHNlbGYuYXNfcHRyKCkpIH07CiYjNDM7ICAgICAgICB1bnNhZmUgeyBiaW5kaW5nczo6Z2V0X3BpZF9ucyhvYmouYXNfcHRyKCkpIH07CiAgICAgfQogCiAgICAgI1tpbmxpbmVdCmRpZmYgLS1naXQgYS9ydXN0L2tlcm5lbC9wbGF0Zm9ybS5ycyBiL3J1c3Qva2VybmVsL3BsYXRmb3JtLnJzCmluZGV4IDliMzYyZTA0OTVkMzIzLi44NTA2OGFlNWE0MDVlYyAxMDA2NDQKLS0tIGEvcnVzdC9rZXJuZWwvcGxhdGZvcm0ucnMKJiM0MzsmIzQzOyYjNDM7IGIvcnVzdC9rZXJuZWwvcGxhdGZvcm0ucnMKQEAgLTUxOSw5ICYjNDM7NTE5LDkgQEAgaW1wbCZsdDsmIzM5O2EmZ3Q7IGNyYXRlOjpkbWE6OkRldmljZSZsdDsmIzM5O2EmZ3Q7IGZvciBEZXZpY2UmbHQ7ZGV2aWNlOjpDb3JlJmx0OyYjMzk7YSZndDsmZ3Q7IHt9CiAKIC8vIFNBRkVUWTogSW5zdGFuY2VzIG9mIGBEZXZpY2VgIGFyZSBhbHdheXMgcmVmZXJlbmNlLWNvdW50ZWQuCiB1bnNhZmUgaW1wbCBjcmF0ZTo6c3luYzo6YXJlZjo6QWx3YXlzUmVmQ291bnRlZCBmb3IgRGV2aWNlIHsKLSAgICBmbiBpbmNfcmVmKCZhbXA7c2VsZikgewomIzQzOyAgICBmbiBpbmNfcmVmKG9iajogJmFtcDtTZWxmKSB7CiAgICAgICAgIC8vIFNBRkVUWTogVGhlIGV4aXN0ZW5jZSBvZiBhIHNoYXJlZCByZWZlcmVuY2UgZ3VhcmFudGVlcyB0aGF0IHRoZSByZWZjb3VudCBpcyBub24temVyby4KLSAgICAgICAgdW5zYWZlIHsgYmluZGluZ3M6OmdldF9kZXZpY2Uoc2VsZi5hc19yZWYoKS5hc19yYXcoKSkgfTsKJiM0MzsgICAgICAgIHVuc2FmZSB7IGJpbmRpbmdzOjpnZXRfZGV2aWNlKG9iai5hc19yZWYoKS5hc19yYXcoKSkgfTsKICAgICB9CiAKICAgICB1bnNhZmUgZm4gZGVjX3JlZihvYmo6IE5vbk51bGwmbHQ7U2VsZiZndDspIHsKZGlmZiAtLWdpdCBhL3J1c3Qva2VybmVsL3N5bmMvYXJlZi5ycyBiL3J1c3Qva2VybmVsL3N5bmMvYXJlZi5ycwppbmRleCBiNzIxYjJlMDBiOTg2Zi4uMmFlMjEzMGQ1YmIxZGQgMTAwNjQ0Ci0tLSBhL3J1c3Qva2VybmVsL3N5bmMvYXJlZi5ycwomIzQzOyYjNDM7JiM0MzsgYi9ydXN0L2tlcm5lbC9zeW5jL2FyZWYucnMKQEAgLTQ0LDcgJiM0Mzs0NCwxMCBAQAogLy8vIGFsaXZlLikKIHB1YiB1bnNhZmUgdHJhaXQgQWx3YXlzUmVmQ291bnRlZCB7CiAgICAgLy8vIEluY3JlbWVudHMgdGhlIHJlZmVyZW5jZSBjb3VudCBvbiB0aGUgb2JqZWN0LgotICAgIGZuIGluY19yZWYoJmFtcDtzZWxmKTsKJiM0MzsgICAgLy8vCiYjNDM7ICAgIC8vLyBUaGlzIGZ1bmN0aW9uIHNob3VsZCBub3QgYmUgY2FsbGVkIGFjY2lkZW50YWxseTsgYSB0eXBlIG1pZ2h0IGRlY2xhcmUgdGhlaXIgb3duIGBpbmNfcmVmYAomIzQzOyAgICAvLy8gZnVuY3Rpb24gYW5kIGl0IHNob3VsZG4mIzM5O3QgYmUgY29uZnVzZWQgd2l0aCB0aGlzIG9uZS4KJiM0MzsgICAgZm4gaW5jX3JlZihvYmo6ICZhbXA7U2VsZik7CiAKICAgICAvLy8gRGVjcmVtZW50cyB0aGUgcmVmZXJlbmNlIGNvdW50IG9uIHRoZSBvYmplY3QuCiAgICAgLy8vCkBAIC0xNDUsNyAmIzQzOzE0OCw3IEBAIHB1YiBmbiBpbnRvX3JhdyhtZTogU2VsZikgLSZndDsgTm9uTnVsbCZsdDtUJmd0OyB7CiAKIGltcGwmbHQ7VDogQWx3YXlzUmVmQ291bnRlZCZndDsgQ2xvbmUgZm9yIEFSZWYmbHQ7VCZndDsgewogICAgIGZuIGNsb25lKCZhbXA7c2VsZikgLSZndDsgU2VsZiB7Ci0gICAgICAgIHNlbGYuaW5jX3JlZigpOwomIzQzOyAgICAgICAgVDo6aW5jX3JlZihzZWxmKTsKICAgICAgICAgLy8gU0FGRVRZOiBXZSBqdXN0IGluY3JlbWVudGVkIHRoZSByZWZjb3VudCBhYm92ZS4KICAgICAgICAgdW5zYWZlIHsgU2VsZjo6ZnJvbV9yYXcoc2VsZi5wdHIpIH0KICAgICB9CkBAIC0xNjIsNyAmIzQzOzE2NSw3IEBAIGZuIGRlcmVmKCZhbXA7c2VsZikgLSZndDsgJmFtcDtTZWxmOjpUYXJnZXQgewogCiBpbXBsJmx0O1Q6IEFsd2F5c1JlZkNvdW50ZWQmZ3Q7IEZyb20mbHQ7JmFtcDtUJmd0OyBmb3IgQVJlZiZsdDtUJmd0OyB7CiAgICAgZm4gZnJvbShiOiAmYW1wO1QpIC0mZ3Q7IFNlbGYgewotICAgICAgICBiLmluY19yZWYoKTsKJiM0MzsgICAgICAgIFQ6OmluY19yZWYoYik7CiAgICAgICAgIC8vIFNBRkVUWTogV2UganVzdCBpbmNyZW1lbnRlZCB0aGUgcmVmY291bnQgYWJvdmUuCiAgICAgICAgIHVuc2FmZSB7IFNlbGY6OmZyb21fcmF3KE5vbk51bGw6OmZyb20oYikpIH0KICAgICB9CmRpZmYgLS1naXQgYS9ydXN0L2tlcm5lbC90YXNrLnJzIGIvcnVzdC9rZXJuZWwvdGFzay5ycwppbmRleCAzODI3M2Y0ZWVkYjUxMy4uYTc3MTFlMTU1OGMyZjUgMTAwNjQ0Ci0tLSBhL3J1c3Qva2VybmVsL3Rhc2sucnMKJiM0MzsmIzQzOyYjNDM7IGIvcnVzdC9rZXJuZWwvdGFzay5ycwpAQCAtMzQ5LDkgJiM0MzszNDksOSBAQCBwdWIgZm4gZ3JvdXBfbGVhZGVyKCZhbXA7c2VsZikgLSZndDsgJmFtcDtUYXNrIHsKIC8vIFNBRkVUWTogVGhlIHR5cGUgaW52YXJpYW50cyBndWFyYW50ZWUgdGhhdCBgVGFza2AgaXMgYWx3YXlzIHJlZmNvdW50ZWQuCiB1bnNhZmUgaW1wbCBjcmF0ZTo6c3luYzo6YXJlZjo6QWx3YXlzUmVmQ291bnRlZCBmb3IgVGFzayB7CiAgICAgI1tpbmxpbmVdCi0gICAgZm4gaW5jX3JlZigmYW1wO3NlbGYpIHsKJiM0MzsgICAgZm4gaW5jX3JlZihvYmo6ICZhbXA7U2VsZikgewogICAgICAgICAvLyBTQUZFVFk6IFRoZSBleGlzdGVuY2Ugb2YgYSBzaGFyZWQgcmVmZXJlbmNlIG1lYW5zIHRoYXQgdGhlIHJlZmNvdW50IGlzIG5vbnplcm8uCi0gICAgICAgIHVuc2FmZSB7IGJpbmRpbmdzOjpnZXRfdGFza19zdHJ1Y3Qoc2VsZi5hc19wdHIoKSkgfTsKJiM0MzsgICAgICAgIHVuc2FmZSB7IGJpbmRpbmdzOjpnZXRfdGFza19zdHJ1Y3Qob2JqLmFzX3B0cigpKSB9OwogICAgIH0KIAogICAgICNbaW5saW5lXQpkaWZmIC0tZ2l0IGEvcnVzdC9rZXJuZWwvdXNiLnJzIGIvcnVzdC9rZXJuZWwvdXNiLnJzCmluZGV4IDdhZmYwYzgyZDBhZmMwLi5jMDM5MDU5YzE4OTEzYyAxMDA2NDQKLS0tIGEvcnVzdC9rZXJuZWwvdXNiLnJzCiYjNDM7JiM0MzsmIzQzOyBiL3J1c3Qva2VybmVsL3VzYi5ycwpAQCAtMzkzLDExICYjNDM7MzkzLDExIEBAIGZuIGFzX3JlZigmYW1wO3NlbGYpIC0mZ3Q7ICZhbXA7RGV2aWNlIHsKIAogLy8gU0FGRVRZOiBJbnN0YW5jZXMgb2YgYEludGVyZmFjZWAgYXJlIGFsd2F5cyByZWZlcmVuY2UtY291bnRlZC4KIHVuc2FmZSBpbXBsIEFsd2F5c1JlZkNvdW50ZWQgZm9yIEludGVyZmFjZSB7Ci0gICAgZm4gaW5jX3JlZigmYW1wO3NlbGYpIHsKJiM0MzsgICAgZm4gaW5jX3JlZihvYmo6ICZhbXA7U2VsZikgewogICAgICAgICAvLyBTQUZFVFk6IFRoZSBpbnZhcmlhbnRzIG9mIGBJbnRlcmZhY2VgIGd1YXJhbnRlZSB0aGF0IGBzZWxmLmFzX3JhdygpYAogICAgICAgICAvLyByZXR1cm5zIGEgdmFsaWQgYHN0cnVjdCB1c2JfaW50ZXJmYWNlYCBwb2ludGVyLCBmb3Igd2hpY2ggd2Ugd2lsbAogICAgICAgICAvLyBhY3F1aXJlIGEgbmV3IHJlZmNvdW50LgotICAgICAgICB1bnNhZmUgeyBiaW5kaW5nczo6dXNiX2dldF9pbnRmKHNlbGYuYXNfcmF3KCkpIH07CiYjNDM7ICAgICAgICB1bnNhZmUgeyBiaW5kaW5nczo6dXNiX2dldF9pbnRmKG9iai5hc19yYXcoKSkgfTsKICAgICB9CiAKICAgICB1bnNhZmUgZm4gZGVjX3JlZihvYmo6IE5vbk51bGwmbHQ7U2VsZiZndDspIHsKQEAgLTQ0NCwxMSAmIzQzOzQ0NCwxMSBAQCBmbiBhc19yYXcoJmFtcDtzZWxmKSAtJmd0OyAqbXV0IGJpbmRpbmdzOjp1c2JfZGV2aWNlIHsKIAogLy8gU0FGRVRZOiBJbnN0YW5jZXMgb2YgYERldmljZWAgYXJlIGFsd2F5cyByZWZlcmVuY2UtY291bnRlZC4KIHVuc2FmZSBpbXBsIEFsd2F5c1JlZkNvdW50ZWQgZm9yIERldmljZSB7Ci0gICAgZm4gaW5jX3JlZigmYW1wO3NlbGYpIHsKJiM0MzsgICAgZm4gaW5jX3JlZihvYmo6ICZhbXA7U2VsZikgewogICAgICAgICAvLyBTQUZFVFk6IFRoZSBpbnZhcmlhbnRzIG9mIGBEZXZpY2VgIGd1YXJhbnRlZSB0aGF0IGBzZWxmLmFzX3JhdygpYAogICAgICAgICAvLyByZXR1cm5zIGEgdmFsaWQgYHN0cnVjdCB1c2JfZGV2aWNlYCBwb2ludGVyLCBmb3Igd2hpY2ggd2Ugd2lsbAogICAgICAgICAvLyBhY3F1aXJlIGEgbmV3IHJlZmNvdW50LgotICAgICAgICB1bnNhZmUgeyBiaW5kaW5nczo6dXNiX2dldF9kZXYoc2VsZi5hc19yYXcoKSkgfTsKJiM0MzsgICAgICAgIHVuc2FmZSB7IGJpbmRpbmdzOjp1c2JfZ2V0X2RldihvYmouYXNfcmF3KCkpIH07CiAgICAgfQogCiAgICAgdW5zYWZlIGZuIGRlY19yZWYob2JqOiBOb25OdWxsJmx0O1NlbGYmZ3Q7KSB7CjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzI4IDA5OjUyPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDY3NDcKCQkJCQkJCW91dHB1dDogMTA3CgkJCQkJCQl0aG91Z2h0czogMzU2CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKlJlZmFjdG9yaW5nIHRoZSBgQWx3YXlzUmVmQ291bnRlZGAgVHJhaXQgaW4gdGhlIFJ1c3QgS2VybmVsKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCB0aGlzIHBhdGNoIGFuZCBpdCYjMzk7cyBwcmV0dHkgc3RyYWlnaHRmb3J3YXJkLCBhIHB1cmUgcmVmYWN0b3JpbmcgcmVhbGx5LiBUaGV5JiMzOTtyZSB0b3VjaGluZyB0aGUgYEFsd2F5c1JlZkNvdW50ZWRgIHRyYWl0IHdpdGhpbiB0aGUga2VybmVsJiMzOTtzIHN5bmNocm9uaXphdGlvbiBtZWNoYW5pc21zLCBzcGVjaWZpY2FsbHkgaW4gYHJ1c3Qva2VybmVsL3N5bmMvYXJlZi5yc2AuIFRoZSBnaXN0IGlzIGEgbW9kaWZpY2F0aW9uIHRvIHRoZSBzaWduYXR1cmUgb2YgYGluY19yZWZgLiBUaGV5JiMzOTtyZSBjaGFuZ2luZyBpdCBmcm9tIGBmbiBpbmNfcmVmKCZhbXA7c2VsZilgIHRvIGBmbiBpbmNfcmVmKG9iajogJmFtcDtTZWxmKWAuCgpUaGUgY29yZSByZWFzb24gZm9yIHRoaXMgYWx0ZXJhdGlvbiBpcyB0byBtaXRpZ2F0ZSBwb3RlbnRpYWwgbWV0aG9kIHJlc29sdXRpb24gY29uZmxpY3RzIGluIFJ1c3QuICBJZiBhIHR5cGUgaW1wbGVtZW50aW5nIGBBbHdheXNSZWZDb3VudGVkYCBkZWZpbmVzIGl0cyBvd24gYGluY19yZWZgIGZ1bmN0aW9uLCB0aGUgcHJldmlvdXMgc2lnbmF0dXJlIGNvdWxkIGxlYWQgdG8gYWNjaWRlbnRhbCwgYW5kIGluY29ycmVjdCwgY2FsbHMgb24gdGhlIG9iamVjdCBpdHNlbGYuIFRoaXMgY2hhbmdlIG1ha2VzIGl0IGV4cGxpY2l0IHRoYXQgdGhlIHRyYWl0JiMzOTtzIGBpbmNfcmVmYCBpcyBhIHN0YXRpYyBtZXRob2QsIGFuZCByZW1vdmVzIGFueSBhbWJpZ3VpdHkuCgpUaGlzIGNoYW5nZSByaXBwbGVzIHRocm91Z2ggYSBzaWduaWZpY2FudCBjaHVuayBvZiB0aGUga2VybmVsLCB0b3VjaGluZyBhIGxvdCBvZiBtb2R1bGVzOiBldmVyeXRoaW5nIGZyb20gYXV4aWxpYXJ5IHN0cnVjdHVyZXMgdG8gZGV2aWNlIG1hbmFnZW1lbnQsIGZpbGVzeXN0ZW1zLCBtZW1vcnkgbWFuYWdlbWVudCwgYW5kIGV2ZW4gUENJIGFuZCBVU0IuIFRoZXnigJl2ZSB1cGRhdGVkIGFsbCB0aGUgaW1wbGVtZW50YXRpb25zIGFjcm9zcyB0aGVzZSBtb2R1bGVzLiBCdXQsIGFuZCB0aGlzIGlzIGNydWNpYWwsIGl0JiMzOTtzIHN0cmljdGx5IGEgc3ludGFjdGljIGNoYW5nZTsgdGhlcmXigJlzIG5vIGZ1bmN0aW9uYWwgYWx0ZXJhdGlvbiB0byB0aGUga2VybmVs4oCZcyByZWZjb3VudGluZyBsb2dpYy4gTm8gYWxnb3JpdGhtcywgbm8gZGF0YSBzdHJ1Y3R1cmVzLCBub3RoaW5nIGZ1bmRhbWVudGFsIGlzIGJlaW5nIG1vZGlmaWVkLiBJdCYjMzk7cyBqdXN0IGEgc2FmZXIgd2F5IHRvIGV4cHJlc3MgdGhlIGV4aXN0aW5nIG1lY2hhbmlzbS4KCkxldCYjMzk7cyBxdWlja2x5IGNvbmZpcm0uIEkmIzM5O3ZlIHRha2VuIGEgbG9vayBhdCB0aGUgZGlmZiBhbmQgc3BvdHRlZCB0aGUgY2hhbmdlIGluIHRoZSB0cmFpdCBpdHNlbGYgYW5kIGhvdyB0aGUgY2FsbCBoYXMgY2hhbmdlZCB0byB1c2UgdGhlIHR5cGUgZGlyZWN0bHkuCmBgYHJ1c3QKLSAgICBmbiBpbmNfcmVmKCZhbXA7c2VsZikgewomIzQzOyAgICBmbiBpbmNfcmVmKG9iajogJmFtcDtTZWxmKSB7CmBgYAphbmQgdGhlbiB0aGUgY29ycmVzcG9uZGluZyBjYWxsIGNoYW5nZSwKYGBgcnVzdAotICAgICAgICBzZWxmLmluY19yZWYoKTsKJiM0MzsgICAgICAgIFQ6OmluY19yZWYoc2VsZik7CmBgYApTbywgYXMgSSBzdXNwZWN0ZWQsIHRoaXMgaXMgcHVyZWx5IGEgUnVzdCBBUEkgYWRqdXN0bWVudCB0byBwcmV2ZW50IHBvdGVudGlhbCBtZXRob2QgcmVzb2x1dGlvbiBjb25mbGljdHMuIE5vIG5lZWQgZm9yIGZ1enppbmcuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NC8yPC90ZD4KCQkJPHRkPjIwMjYvMDYvMjggMDk6NTI8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5zZXQtcmVzdWx0czwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBpcyBhIHB1cmVseSBzeW50YWN0aWMgcmVmYWN0b3JpbmcgaW4gdGhlIFJ1c3Qga2VybmVsIGJpbmRpbmdzLiBJdCBjaGFuZ2VzIHRoZSBzaWduYXR1cmUgb2YgdGhlIGBpbmNfcmVmYCBtZXRob2QgaW4gdGhlIGBBbHdheXNSZWZDb3VudGVkYCB0cmFpdCBmcm9tIGBmbiBpbmNfcmVmKFx1MDAyNnNlbGYpYCB0byBgZm4gaW5jX3JlZihvYmo6IFx1MDAyNlNlbGYpYCB0byBwcmV2ZW50IGFjY2lkZW50YWwgbWV0aG9kIHJlc29sdXRpb24gY29uZmxpY3RzLiBJdCBkb2VzIG5vdCBhbHRlciBhbnkgZnVuY3Rpb25hbCBsb2dpYyBvciBleGVjdXRpb24gZmxvdyBpbiB0aGUga2VybmVsLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IG51bGwsCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogW10sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggaXMgYSBwdXJlbHkgc3ludGFjdGljIHJlZmFjdG9yaW5nIGluIHRoZSBSdXN0IGtlcm5lbCBiaW5kaW5ncy4gSXQgY2hhbmdlcyB0aGUgc2lnbmF0dXJlIG9mIHRoZSBgaW5jX3JlZmAgbWV0aG9kIGluIHRoZSBgQWx3YXlzUmVmQ291bnRlZGAgdHJhaXQgZnJvbSBgZm4gaW5jX3JlZihcdTAwMjZzZWxmKWAgdG8gYGZuIGluY19yZWYob2JqOiBcdTAwMjZTZWxmKWAgdG8gcHJldmVudCBhY2NpZGVudGFsIG1ldGhvZCByZXNvbHV0aW9uIGNvbmZsaWN0cy4gSXQgZG9lcyBub3QgYWx0ZXIgYW55IGZ1bmN0aW9uYWwgbG9naWMgb3IgZXhlY3V0aW9uIGZsb3cgaW4gdGhlIGtlcm5lbC4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPC90Ym9keT4KCTwvdGFibGU+CgoJPGRpdiBpZD0ibGxtX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5MTE0gQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBUb2tlbnM8L3RoPgoJCQkJCTx0aD5BdmcgVG9rZW5zPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9ImxsbV9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9InRvb2xfc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPlRvb2wgQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0idG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9ImR1cmF0aW9uX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCTxkaXYgaWQ9InRva2VuX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJodHRwczovL3d3dy5nb29nbGUuY29tL2pzYXBpIj48L3NjcmlwdD4KCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KCQlnb29nbGUubG9hZCgidmlzdWFsaXphdGlvbiIsICIxIiwge3BhY2thZ2VzOlsiY29yZWNoYXJ0Il19KTsKCQlnb29nbGUuc2V0T25Mb2FkQ2FsbGJhY2soZHJhd0NoYXJ0cyk7CgoJCWZ1bmN0aW9uIGRyYXdDaGFydHMoKSB7CgkJCWNvbnN0IHJhd0RhdGEgPSBbeyJTdGFydGVkIjoiMjAyNi0wNi0yOFQwOTo1MjowNi4zMTM4NzQ4NDlaIiwiU2VxIjowLCJOZXN0aW5nIjowLCJUeXBlIjoiZmxvdyIsIk5hbWUiOiJwYXRjaC10cmlhZ2UiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo4MjkwMjAxMDAzLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IG51bGwsXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBpcyBhIHB1cmVseSBzeW50YWN0aWMgcmVmYWN0b3JpbmcgaW4gdGhlIFJ1c3Qga2VybmVsIGJpbmRpbmdzLiBJdCBjaGFuZ2VzIHRoZSBzaWduYXR1cmUgb2YgdGhlIGBpbmNfcmVmYCBtZXRob2QgaW4gdGhlIGBBbHdheXNSZWZDb3VudGVkYCB0cmFpdCBmcm9tIGBmbiBpbmNfcmVmKFxcdTAwMjZzZWxmKWAgdG8gYGZuIGluY19yZWYob2JqOiBcXHUwMDI2U2VsZilgIHRvIHByZXZlbnQgYWNjaWRlbnRhbCBtZXRob2QgcmVzb2x1dGlvbiBjb25mbGljdHMuIEl0IGRvZXMgbm90IGFsdGVyIGFueSBmdW5jdGlvbmFsIGxvZ2ljIG9yIGV4ZWN1dGlvbiBmbG93IGluIHRoZSBrZXJuZWwuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNi0yOFQwOTo1MjowNi4zMTM4ODYzNzlaIiwiU2VxIjoxLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWN0aW9uIiwiTmFtZSI6InJlYWQtcGF0Y2gtZGlmZiIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjUwMzU2MDAxMSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiUGF0Y2hEaWZmXCI6IFwiY29tbWl0IDZmMDUxNTI1ZDk4MzYzZTEwYTVkODkzYTIxOGM1NTJlZmExN2JmODJcXG5BdXRob3I6IHN5ei1jbHVzdGVyIFxcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVxcdTAwM2VcXG5EYXRlOiAgIFN1biBKdW4gMjggMDk6NTI6MDUgMjAyNiArMDAwMFxcblxcbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcXG5cXG5kaWZmIC0tZ2l0IGEvcnVzdC9rZXJuZWwvYXV4aWxpYXJ5LnJzIGIvcnVzdC9rZXJuZWwvYXV4aWxpYXJ5LnJzXFxuaW5kZXggYzQyOTI4ZDVhMjM5M2YuLjc1YTYxYjUxY2Y3OThkIDEwMDY0NFxcbi0tLSBhL3J1c3Qva2VybmVsL2F1eGlsaWFyeS5yc1xcbisrKyBiL3J1c3Qva2VybmVsL2F1eGlsaWFyeS5yc1xcbkBAIC0zNDUsOSArMzQ1LDkgQEAgdW5zYWZlIGltcGxcXHUwMDNjQ3R4OiBkZXZpY2U6OkRldmljZUNvbnRleHRcXHUwMDNlIGRldmljZTo6QXNCdXNEZXZpY2VcXHUwMDNjQ3R4XFx1MDAzZSBmb3IgRGV2aWNlXFx1MDAzY0N0eFxcdTAwM2VcXG4gXFxuIC8vIFNBRkVUWTogSW5zdGFuY2VzIG9mIGBEZXZpY2VgIGFyZSBhbHdheXMgcmVmZXJlbmNlLWNvdW50ZWQuXFxuIHVuc2FmZSBpbXBsIGNyYXRlOjpzeW5jOjphcmVmOjpBbHdheXNSZWZDb3VudGVkIGZvciBEZXZpY2Uge1xcbi0gICAgZm4gaW5jX3JlZihcXHUwMDI2c2VsZikge1xcbisgICAgZm4gaW5jX3JlZihvYmo6IFxcdTAwMjZTZWxmKSB7XFxuICAgICAgICAgLy8gU0FGRVRZOiBUaGUgZXhpc3RlbmNlIG9mIGEgc2hhcmVkIHJlZmVyZW5jZSBndWFyYW50ZWVzIHRoYXQgdGhlIHJlZmNvdW50IGlzIG5vbi16ZXJvLlxcbi0gICAgICAgIHVuc2FmZSB7IGJpbmRpbmdzOjpnZXRfZGV2aWNlKHNlbGYuYXNfcmVmKCkuYXNfcmF3KCkpIH07XFxuKyAgICAgICAgdW5zYWZlIHsgYmluZGluZ3M6OmdldF9kZXZpY2Uob2JqLmFzX3JlZigpLmFzX3JhdygpKSB9O1xcbiAgICAgfVxcbiBcXG4gICAgIHVuc2FmZSBmbiBkZWNfcmVmKG9iajogTm9uTnVsbFxcdTAwM2NTZWxmXFx1MDAzZSkge1xcbmRpZmYgLS1naXQgYS9ydXN0L2tlcm5lbC9ibG9jay9tcS9yZXF1ZXN0LnJzIGIvcnVzdC9rZXJuZWwvYmxvY2svbXEvcmVxdWVzdC5yc1xcbmluZGV4IGNlM2UzMGM4MWNiNWVkLi5mNDFkMDFlYTQ1OTUxYyAxMDA2NDRcXG4tLS0gYS9ydXN0L2tlcm5lbC9ibG9jay9tcS9yZXF1ZXN0LnJzXFxuKysrIGIvcnVzdC9rZXJuZWwvYmxvY2svbXEvcmVxdWVzdC5yc1xcbkBAIC0yMzQsOCArMjM0LDggQEAgdW5zYWZlIGltcGxcXHUwMDNjVDogT3BlcmF0aW9uc1xcdTAwM2UgU3luYyBmb3IgUmVxdWVzdFxcdTAwM2NUXFx1MDAzZSB7fVxcbiAvLyBrZWVwcyB0aGUgb2JqZWN0IGFsaXZlIGluIG1lbW9yeSBhdCBsZWFzdCB1bnRpbCBhIG1hdGNoaW5nIHJlZmVyZW5jZSBjb3VudFxcbiAvLyBkZWNyZW1lbnQgaXMgZXhlY3V0ZWQuXFxuIHVuc2FmZSBpbXBsXFx1MDAzY1Q6IE9wZXJhdGlvbnNcXHUwMDNlIEFsd2F5c1JlZkNvdW50ZWQgZm9yIFJlcXVlc3RcXHUwMDNjVFxcdTAwM2Uge1xcbi0gICAgZm4gaW5jX3JlZihcXHUwMDI2c2VsZikge1xcbi0gICAgICAgIHNlbGYud3JhcHBlcl9yZWYoKS5yZWZjb3VudCgpLmluYygpO1xcbisgICAgZm4gaW5jX3JlZihvYmo6IFxcdTAwMjZTZWxmKSB7XFxuKyAgICAgICAgb2JqLndyYXBwZXJfcmVmKCkucmVmY291bnQoKS5pbmMoKTtcXG4gICAgIH1cXG4gXFxuICAgICB1bnNhZmUgZm4gZGVjX3JlZihvYmo6IGNvcmU6OnB0cjo6Tm9uTnVsbFxcdTAwM2NTZWxmXFx1MDAzZSkge1xcbmRpZmYgLS1naXQgYS9ydXN0L2tlcm5lbC9jcmVkLnJzIGIvcnVzdC9rZXJuZWwvY3JlZC5yc1xcbmluZGV4IGZmYTE1NmI5ZGYzNzdlLi5kNTNjYmM3OTJmYTNhOSAxMDA2NDRcXG4tLS0gYS9ydXN0L2tlcm5lbC9jcmVkLnJzXFxuKysrIGIvcnVzdC9rZXJuZWwvY3JlZC5yc1xcbkBAIC03OCw5ICs3OCw5IEBAIHB1YiBmbiBldWlkKFxcdTAwMjZzZWxmKSAtXFx1MDAzZSBLdWlkIHtcXG4gLy8gU0FGRVRZOiBUaGUgdHlwZSBpbnZhcmlhbnRzIGd1YXJhbnRlZSB0aGF0IGBDcmVkZW50aWFsYCBpcyBhbHdheXMgcmVmLWNvdW50ZWQuXFxuIHVuc2FmZSBpbXBsIEFsd2F5c1JlZkNvdW50ZWQgZm9yIENyZWRlbnRpYWwge1xcbiAgICAgI1tpbmxpbmVdXFxuLSAgICBmbiBpbmNfcmVmKFxcdTAwMjZzZWxmKSB7XFxuKyAgICBmbiBpbmNfcmVmKG9iajogXFx1MDAyNlNlbGYpIHtcXG4gICAgICAgICAvLyBTQUZFVFk6IFRoZSBleGlzdGVuY2Ugb2YgYSBzaGFyZWQgcmVmZXJlbmNlIG1lYW5zIHRoYXQgdGhlIHJlZmNvdW50IGlzIG5vbnplcm8uXFxuLSAgICAgICAgdW5zYWZlIHsgYmluZGluZ3M6OmdldF9jcmVkKHNlbGYuMC5nZXQoKSkgfTtcXG4rICAgICAgICB1bnNhZmUgeyBiaW5kaW5nczo6Z2V0X2NyZWQob2JqLjAuZ2V0KCkpIH07XFxuICAgICB9XFxuIFxcbiAgICAgI1tpbmxpbmVdXFxuZGlmZiAtLWdpdCBhL3J1c3Qva2VybmVsL2RldmljZS5ycyBiL3J1c3Qva2VybmVsL2RldmljZS5yc1xcbmluZGV4IDY0NWFmYzQ5YTI3ZDY0Li5lYzQ0ZGNjNDA1ZDUxMSAxMDA2NDRcXG4tLS0gYS9ydXN0L2tlcm5lbC9kZXZpY2UucnNcXG4rKysgYi9ydXN0L2tlcm5lbC9kZXZpY2UucnNcXG5AQCAtNDQ5LDkgKzQ0OSw5IEBAIHB1YiBmbiBuYW1lKFxcdTAwMjZzZWxmKSAtXFx1MDAzZSBcXHUwMDI2Q1N0ciB7XFxuIFxcbiAvLyBTQUZFVFk6IEluc3RhbmNlcyBvZiBgRGV2aWNlYCBhcmUgYWx3YXlzIHJlZmVyZW5jZS1jb3VudGVkLlxcbiB1bnNhZmUgaW1wbCBjcmF0ZTo6c3luYzo6YXJlZjo6QWx3YXlzUmVmQ291bnRlZCBmb3IgRGV2aWNlIHtcXG4tICAgIGZuIGluY19yZWYoXFx1MDAyNnNlbGYpIHtcXG4rICAgIGZuIGluY19yZWYob2JqOiBcXHUwMDI2U2VsZikge1xcbiAgICAgICAgIC8vIFNBRkVUWTogVGhlIGV4aXN0ZW5jZSBvZiBhIHNoYXJlZCByZWZlcmVuY2UgZ3VhcmFudGVlcyB0aGF0IHRoZSByZWZjb3VudCBpcyBub24temVyby5cXG4tICAgICAgICB1bnNhZmUgeyBiaW5kaW5nczo6Z2V0X2RldmljZShzZWxmLmFzX3JhdygpKSB9O1xcbisgICAgICAgIHVuc2FmZSB7IGJpbmRpbmdzOjpnZXRfZGV2aWNlKG9iai5hc19yYXcoKSkgfTtcXG4gICAgIH1cXG4gXFxuICAgICB1bnNhZmUgZm4gZGVjX3JlZihvYmo6IHB0cjo6Tm9uTnVsbFxcdTAwM2NTZWxmXFx1MDAzZSkge1xcbmRpZmYgLS1naXQgYS9ydXN0L2tlcm5lbC9kZXZpY2UvcHJvcGVydHkucnMgYi9ydXN0L2tlcm5lbC9kZXZpY2UvcHJvcGVydHkucnNcXG5pbmRleCA1YWVhZDgzNWZiYmMwMi4uYzM5Y2NjMTQ1OGI5NWUgMTAwNjQ0XFxuLS0tIGEvcnVzdC9rZXJuZWwvZGV2aWNlL3Byb3BlcnR5LnJzXFxuKysrIGIvcnVzdC9rZXJuZWwvZGV2aWNlL3Byb3BlcnR5LnJzXFxuQEAgLTM2MSwxMCArMzYxLDEwIEBAIGZuIGZtdChcXHUwMDI2c2VsZiwgZjogXFx1MDAyNm11dCBmbXQ6OkZvcm1hdHRlclxcdTAwM2MnX1xcdTAwM2UpIC1cXHUwMDNlIGZtdDo6UmVzdWx0IHtcXG4gXFxuIC8vIFNBRkVUWTogSW5zdGFuY2VzIG9mIGBGd05vZGVgIGFyZSBhbHdheXMgcmVmZXJlbmNlLWNvdW50ZWQuXFxuIHVuc2FmZSBpbXBsIGNyYXRlOjpzeW5jOjphcmVmOjpBbHdheXNSZWZDb3VudGVkIGZvciBGd05vZGUge1xcbi0gICAgZm4gaW5jX3JlZihcXHUwMDI2c2VsZikge1xcbisgICAgZm4gaW5jX3JlZihvYmo6IFxcdTAwMjZTZWxmKSB7XFxuICAgICAgICAgLy8gU0FGRVRZOiBUaGUgZXhpc3RlbmNlIG9mIGEgc2hhcmVkIHJlZmVyZW5jZSBndWFyYW50ZWVzIHRoYXQgdGhlXFxuICAgICAgICAgLy8gcmVmY291bnQgaXMgbm9uLXplcm8uXFxuLSAgICAgICAgdW5zYWZlIHsgYmluZGluZ3M6OmZ3bm9kZV9oYW5kbGVfZ2V0KHNlbGYuYXNfcmF3KCkpIH07XFxuKyAgICAgICAgdW5zYWZlIHsgYmluZGluZ3M6OmZ3bm9kZV9oYW5kbGVfZ2V0KG9iai5hc19yYXcoKSkgfTtcXG4gICAgIH1cXG4gXFxuICAgICB1bnNhZmUgZm4gZGVjX3JlZihvYmo6IHB0cjo6Tm9uTnVsbFxcdTAwM2NTZWxmXFx1MDAzZSkge1xcbmRpZmYgLS1naXQgYS9ydXN0L2tlcm5lbC9kcm0vZGV2aWNlLnJzIGIvcnVzdC9rZXJuZWwvZHJtL2RldmljZS5yc1xcbmluZGV4IDQ3N2NmNzcxZmIxMGVmLi4wYzcwZWMwMTBiZDkxMSAxMDA2NDRcXG4tLS0gYS9ydXN0L2tlcm5lbC9kcm0vZGV2aWNlLnJzXFxuKysrIGIvcnVzdC9rZXJuZWwvZHJtL2RldmljZS5yc1xcbkBAIC0zNjMsOSArMzYzLDkgQEAgZm4gZGVyZWYoXFx1MDAyNnNlbGYpIC1cXHUwMDNlIFxcdTAwMjZTZWxmOjpUYXJnZXQge1xcbiAvLyBTQUZFVFk6IERSTSBkZXZpY2Ugb2JqZWN0cyBhcmUgYWx3YXlzIHJlZmVyZW5jZSBjb3VudGVkIGFuZCB0aGUgZ2V0L3B1dCBmdW5jdGlvbnNcXG4gLy8gc2F0aXNmeSB0aGUgcmVxdWlyZW1lbnRzLlxcbiB1bnNhZmUgaW1wbFxcdTAwM2NUOiBkcm06OkRyaXZlciwgQzogRGV2aWNlQ29udGV4dFxcdTAwM2UgQWx3YXlzUmVmQ291bnRlZCBmb3IgRGV2aWNlXFx1MDAzY1QsIENcXHUwMDNlIHtcXG4tICAgIGZuIGluY19yZWYoXFx1MDAyNnNlbGYpIHtcXG4rICAgIGZuIGluY19yZWYob2JqOiBcXHUwMDI2U2VsZikge1xcbiAgICAgICAgIC8vIFNBRkVUWTogVGhlIGV4aXN0ZW5jZSBvZiBhIHNoYXJlZCByZWZlcmVuY2UgZ3VhcmFudGVlcyB0aGF0IHRoZSByZWZjb3VudCBpcyBub24temVyby5cXG4tICAgICAgICB1bnNhZmUgeyBiaW5kaW5nczo6ZHJtX2Rldl9nZXQoc2VsZi5hc19yYXcoKSkgfTtcXG4rICAgICAgICB1bnNhZmUgeyBiaW5kaW5nczo6ZHJtX2Rldl9nZXQob2JqLmFzX3JhdygpKSB9O1xcbiAgICAgfVxcbiBcXG4gICAgIHVuc2FmZSBmbiBkZWNfcmVmKG9iajogTm9uTnVsbFxcdTAwM2NTZWxmXFx1MDAzZSkge1xcbmRpZmYgLS1naXQgYS9ydXN0L2tlcm5lbC9kcm0vZ2VtL21vZC5ycyBiL3J1c3Qva2VybmVsL2RybS9nZW0vbW9kLnJzXFxuaW5kZXggYzhiNjZkODE2ODcxOTkuLmVlOWU0MTIwNjZhYmI3IDEwMDY0NFxcbi0tLSBhL3J1c3Qva2VybmVsL2RybS9nZW0vbW9kLnJzXFxuKysrIGIvcnVzdC9rZXJuZWwvZHJtL2dlbS9tb2QucnNcXG5AQCAtNTIsMTAgKzUyLDEwIEBAIHVuc2FmZSBpbXBsICQoIFxcdTAwM2MkKCAkdHBhcmFtX2lkICksK1xcdTAwM2UgKT8gJGNyYXRlOjpzeW5jOjphcmVmOjpBbHdheXNSZWZDb3VudGVkIGZvciAkXFxuICAgICAgICAgICAgIFNlbGY6IEludG9HRU1PYmplY3QsXFxuICAgICAgICAgICAgICQoICQoICRiaW5kX3BhcmFtIDogJGJpbmRfdHJhaXQgKSwrICk/XFxuICAgICAgICAge1xcbi0gICAgICAgICAgICBmbiBpbmNfcmVmKFxcdTAwMjZzZWxmKSB7XFxuKyAgICAgICAgICAgIGZuIGluY19yZWYob2JqOiBcXHUwMDI2U2VsZikge1xcbiAgICAgICAgICAgICAgICAgLy8gU0FGRVRZOiBUaGUgZXhpc3RlbmNlIG9mIGEgc2hhcmVkIHJlZmVyZW5jZSBndWFyYW50ZWVzIHRoYXQgdGhlIHJlZmNvdW50IGlzXFxuICAgICAgICAgICAgICAgICAvLyBub24temVyby5cXG4tICAgICAgICAgICAgICAgIHVuc2FmZSB7IGJpbmRpbmdzOjpkcm1fZ2VtX29iamVjdF9nZXQoc2VsZi5hc19yYXcoKSkgfTtcXG4rICAgICAgICAgICAgICAgIHVuc2FmZSB7IGJpbmRpbmdzOjpkcm1fZ2VtX29iamVjdF9nZXQob2JqLmFzX3JhdygpKSB9O1xcbiAgICAgICAgICAgICB9XFxuIFxcbiAgICAgICAgICAgICB1bnNhZmUgZm4gZGVjX3JlZihvYmo6IGNvcmU6OnB0cjo6Tm9uTnVsbFxcdTAwM2NTZWxmXFx1MDAzZSkge1xcbmRpZmYgLS1naXQgYS9ydXN0L2tlcm5lbC9mcy9maWxlLnJzIGIvcnVzdC9rZXJuZWwvZnMvZmlsZS5yc1xcbmluZGV4IDIzZWU2ODliZDI0MDA1Li44ZTU5NjdhZmNkMTFmMiAxMDA2NDRcXG4tLS0gYS9ydXN0L2tlcm5lbC9mcy9maWxlLnJzXFxuKysrIGIvcnVzdC9rZXJuZWwvZnMvZmlsZS5yc1xcbkBAIC0xOTksOSArMTk5LDkgQEAgdW5zYWZlIGltcGwgU3luYyBmb3IgRmlsZSB7fVxcbiAvLyBtYWtlcyBgQVJlZlxcdTAwM2NGaWxlXFx1MDAzZWAgb3duIGEgbm9ybWFsIHJlZmNvdW50LlxcbiB1bnNhZmUgaW1wbCBBbHdheXNSZWZDb3VudGVkIGZvciBGaWxlIHtcXG4gICAgICNbaW5saW5lXVxcbi0gICAgZm4gaW5jX3JlZihcXHUwMDI2c2VsZikge1xcbisgICAgZm4gaW5jX3JlZihvYmo6IFxcdTAwMjZTZWxmKSB7XFxuICAgICAgICAgLy8gU0FGRVRZOiBUaGUgZXhpc3RlbmNlIG9mIGEgc2hhcmVkIHJlZmVyZW5jZSBtZWFucyB0aGF0IHRoZSByZWZjb3VudCBpcyBub256ZXJvLlxcbi0gICAgICAgIHVuc2FmZSB7IGJpbmRpbmdzOjpnZXRfZmlsZShzZWxmLmFzX3B0cigpKSB9O1xcbisgICAgICAgIHVuc2FmZSB7IGJpbmRpbmdzOjpnZXRfZmlsZShvYmouYXNfcHRyKCkpIH07XFxuICAgICB9XFxuIFxcbiAgICAgI1tpbmxpbmVdXFxuQEAgLTIzNSw5ICsyMzUsOSBAQCBwdWIgc3RydWN0IExvY2FsRmlsZSB7XFxuIC8vIG1ha2VzIGBBUmVmXFx1MDAzY0xvY2FsRmlsZVxcdTAwM2VgIG93biBhIG5vcm1hbCByZWZjb3VudC5cXG4gdW5zYWZlIGltcGwgQWx3YXlzUmVmQ291bnRlZCBmb3IgTG9jYWxGaWxlIHtcXG4gICAgICNbaW5saW5lXVxcbi0gICAgZm4gaW5jX3JlZihcXHUwMDI2c2VsZikge1xcbisgICAgZm4gaW5jX3JlZihvYmo6IFxcdTAwMjZTZWxmKSB7XFxuICAgICAgICAgLy8gU0FGRVRZOiBUaGUgZXhpc3RlbmNlIG9mIGEgc2hhcmVkIHJlZmVyZW5jZSBtZWFucyB0aGF0IHRoZSByZWZjb3VudCBpcyBub256ZXJvLlxcbi0gICAgICAgIHVuc2FmZSB7IGJpbmRpbmdzOjpnZXRfZmlsZShzZWxmLmFzX3B0cigpKSB9O1xcbisgICAgICAgIHVuc2FmZSB7IGJpbmRpbmdzOjpnZXRfZmlsZShvYmouYXNfcHRyKCkpIH07XFxuICAgICB9XFxuIFxcbiAgICAgI1tpbmxpbmVdXFxuZGlmZiAtLWdpdCBhL3J1c3Qva2VybmVsL2kyYy5ycyBiL3J1c3Qva2VybmVsL2kyYy5yc1xcbmluZGV4IDYyNGI5NzFjYThiMGIyLi4xYTk4ODJhNjRjNGI4ZSAxMDA2NDRcXG4tLS0gYS9ydXN0L2tlcm5lbC9pMmMucnNcXG4rKysgYi9ydXN0L2tlcm5lbC9pMmMucnNcXG5AQCAtNDI1LDkgKzQyNSw5IEBAIHB1YiBmbiBnZXQoaW5kZXg6IGkzMikgLVxcdTAwM2UgUmVzdWx0XFx1MDAzY0FSZWZcXHUwMDNjU2VsZlxcdTAwM2VcXHUwMDNlIHtcXG4gXFxuIC8vIFNBRkVUWTogSW5zdGFuY2VzIG9mIGBJMmNBZGFwdGVyYCBhcmUgYWx3YXlzIHJlZmVyZW5jZS1jb3VudGVkLlxcbiB1bnNhZmUgaW1wbCBBbHdheXNSZWZDb3VudGVkIGZvciBJMmNBZGFwdGVyIHtcXG4tICAgIGZuIGluY19yZWYoXFx1MDAyNnNlbGYpIHtcXG4rICAgIGZuIGluY19yZWYob2JqOiBcXHUwMDI2U2VsZikge1xcbiAgICAgICAgIC8vIFNBRkVUWTogVGhlIGV4aXN0ZW5jZSBvZiBhIHNoYXJlZCByZWZlcmVuY2UgZ3VhcmFudGVlcyB0aGF0IHRoZSByZWZjb3VudCBpcyBub24temVyby5cXG4tICAgICAgICB1bnNhZmUgeyBiaW5kaW5nczo6aTJjX2dldF9hZGFwdGVyKHNlbGYuaW5kZXgoKSkgfTtcXG4rICAgICAgICB1bnNhZmUgeyBiaW5kaW5nczo6aTJjX2dldF9hZGFwdGVyKG9iai5pbmRleCgpKSB9O1xcbiAgICAgfVxcbiBcXG4gICAgIHVuc2FmZSBmbiBkZWNfcmVmKG9iajogTm9uTnVsbFxcdTAwM2NTZWxmXFx1MDAzZSkge1xcbkBAIC01MDEsOSArNTAxLDkgQEAgdW5zYWZlIGltcGxcXHUwMDNjQ3R4OiBkZXZpY2U6OkRldmljZUNvbnRleHRcXHUwMDNlIGRldmljZTo6QXNCdXNEZXZpY2VcXHUwMDNjQ3R4XFx1MDAzZSBmb3IgSTJjQ2xpZW50XFx1MDAzY0NcXG4gXFxuIC8vIFNBRkVUWTogSW5zdGFuY2VzIG9mIGBJMmNDbGllbnRgIGFyZSBhbHdheXMgcmVmZXJlbmNlLWNvdW50ZWQuXFxuIHVuc2FmZSBpbXBsIEFsd2F5c1JlZkNvdW50ZWQgZm9yIEkyY0NsaWVudCB7XFxuLSAgICBmbiBpbmNfcmVmKFxcdTAwMjZzZWxmKSB7XFxuKyAgICBmbiBpbmNfcmVmKG9iajogXFx1MDAyNlNlbGYpIHtcXG4gICAgICAgICAvLyBTQUZFVFk6IFRoZSBleGlzdGVuY2Ugb2YgYSBzaGFyZWQgcmVmZXJlbmNlIGd1YXJhbnRlZXMgdGhhdCB0aGUgcmVmY291bnQgaXMgbm9uLXplcm8uXFxuLSAgICAgICAgdW5zYWZlIHsgYmluZGluZ3M6OmdldF9kZXZpY2Uoc2VsZi5hc19yZWYoKS5hc19yYXcoKSkgfTtcXG4rICAgICAgICB1bnNhZmUgeyBiaW5kaW5nczo6Z2V0X2RldmljZShvYmouYXNfcmVmKCkuYXNfcmF3KCkpIH07XFxuICAgICB9XFxuIFxcbiAgICAgdW5zYWZlIGZuIGRlY19yZWYob2JqOiBOb25OdWxsXFx1MDAzY1NlbGZcXHUwMDNlKSB7XFxuZGlmZiAtLWdpdCBhL3J1c3Qva2VybmVsL21tLnJzIGIvcnVzdC9rZXJuZWwvbW0ucnNcXG5pbmRleCA0NzY0ZDdiNjhmMmE3Zi4uYzk1NWNiZDg4NGI4YjcgMTAwNjQ0XFxuLS0tIGEvcnVzdC9rZXJuZWwvbW0ucnNcXG4rKysgYi9ydXN0L2tlcm5lbC9tbS5yc1xcbkBAIC01Nyw5ICs1Nyw5IEBAIHVuc2FmZSBpbXBsIFN5bmMgZm9yIE1tIHt9XFxuIC8vIFNBRkVUWTogQnkgdGhlIHR5cGUgaW52YXJpYW50cywgdGhpcyB0eXBlIGlzIGFsd2F5cyByZWZjb3VudGVkLlxcbiB1bnNhZmUgaW1wbCBBbHdheXNSZWZDb3VudGVkIGZvciBNbSB7XFxuICAgICAjW2lubGluZV1cXG4tICAgIGZuIGluY19yZWYoXFx1MDAyNnNlbGYpIHtcXG4rICAgIGZuIGluY19yZWYob2JqOiBcXHUwMDI2U2VsZikge1xcbiAgICAgICAgIC8vIFNBRkVUWTogVGhlIHBvaW50ZXIgaXMgdmFsaWQgc2luY2Ugc2VsZiBpcyBhIHJlZmVyZW5jZS5cXG4tICAgICAgICB1bnNhZmUgeyBiaW5kaW5nczo6bW1ncmFiKHNlbGYuYXNfcmF3KCkpIH07XFxuKyAgICAgICAgdW5zYWZlIHsgYmluZGluZ3M6Om1tZ3JhYihvYmouYXNfcmF3KCkpIH07XFxuICAgICB9XFxuIFxcbiAgICAgI1tpbmxpbmVdXFxuQEAgLTkzLDkgKzkzLDkgQEAgdW5zYWZlIGltcGwgU3luYyBmb3IgTW1XaXRoVXNlciB7fVxcbiAvLyBTQUZFVFk6IEJ5IHRoZSB0eXBlIGludmFyaWFudHMsIHRoaXMgdHlwZSBpcyBhbHdheXMgcmVmY291bnRlZC5cXG4gdW5zYWZlIGltcGwgQWx3YXlzUmVmQ291bnRlZCBmb3IgTW1XaXRoVXNlciB7XFxuICAgICAjW2lubGluZV1cXG4tICAgIGZuIGluY19yZWYoXFx1MDAyNnNlbGYpIHtcXG4rICAgIGZuIGluY19yZWYob2JqOiBcXHUwMDI2U2VsZikge1xcbiAgICAgICAgIC8vIFNBRkVUWTogVGhlIHBvaW50ZXIgaXMgdmFsaWQgc2luY2Ugc2VsZiBpcyBhIHJlZmVyZW5jZS5cXG4tICAgICAgICB1bnNhZmUgeyBiaW5kaW5nczo6bW1nZXQoc2VsZi5hc19yYXcoKSkgfTtcXG4rICAgICAgICB1bnNhZmUgeyBiaW5kaW5nczo6bW1nZXQob2JqLmFzX3JhdygpKSB9O1xcbiAgICAgfVxcbiBcXG4gICAgICNbaW5saW5lXVxcbmRpZmYgLS1naXQgYS9ydXN0L2tlcm5lbC9tbS9tbXB1dF9hc3luYy5ycyBiL3J1c3Qva2VybmVsL21tL21tcHV0X2FzeW5jLnJzXFxuaW5kZXggYjhkMmYwNTEyMjVjNzMuLjdkZjQwNzc3NjU0Y2U3IDEwMDY0NFxcbi0tLSBhL3J1c3Qva2VybmVsL21tL21tcHV0X2FzeW5jLnJzXFxuKysrIGIvcnVzdC9rZXJuZWwvbW0vbW1wdXRfYXN5bmMucnNcXG5AQCAtMzYsOSArMzYsOSBAQCB1bnNhZmUgaW1wbCBTeW5jIGZvciBNbVdpdGhVc2VyQXN5bmMge31cXG4gLy8gU0FGRVRZOiBCeSB0aGUgdHlwZSBpbnZhcmlhbnRzLCB0aGlzIHR5cGUgaXMgYWx3YXlzIHJlZmNvdW50ZWQuXFxuIHVuc2FmZSBpbXBsIEFsd2F5c1JlZkNvdW50ZWQgZm9yIE1tV2l0aFVzZXJBc3luYyB7XFxuICAgICAjW2lubGluZV1cXG4tICAgIGZuIGluY19yZWYoXFx1MDAyNnNlbGYpIHtcXG4rICAgIGZuIGluY19yZWYob2JqOiBcXHUwMDI2U2VsZikge1xcbiAgICAgICAgIC8vIFNBRkVUWTogVGhlIHBvaW50ZXIgaXMgdmFsaWQgc2luY2Ugc2VsZiBpcyBhIHJlZmVyZW5jZS5cXG4tICAgICAgICB1bnNhZmUgeyBiaW5kaW5nczo6bW1nZXQoc2VsZi5hc19yYXcoKSkgfTtcXG4rICAgICAgICB1bnNhZmUgeyBiaW5kaW5nczo6bW1nZXQob2JqLmFzX3JhdygpKSB9O1xcbiAgICAgfVxcbiBcXG4gICAgICNbaW5saW5lXVxcbmRpZmYgLS1naXQgYS9ydXN0L2tlcm5lbC9wY2kucnMgYi9ydXN0L2tlcm5lbC9wY2kucnNcXG5pbmRleCA1MDcxY2FlNjU0M2ZkMi4uMGYxNmNmMGRhM2Q3NTYgMTAwNjQ0XFxuLS0tIGEvcnVzdC9rZXJuZWwvcGNpLnJzXFxuKysrIGIvcnVzdC9rZXJuZWwvcGNpLnJzXFxuQEAgLTQ4Miw5ICs0ODIsOSBAQCBpbXBsXFx1MDAzYydhXFx1MDAzZSBjcmF0ZTo6ZG1hOjpEZXZpY2VcXHUwMDNjJ2FcXHUwMDNlIGZvciBEZXZpY2VcXHUwMDNjZGV2aWNlOjpDb3JlXFx1MDAzYydhXFx1MDAzZVxcdTAwM2Uge31cXG4gXFxuIC8vIFNBRkVUWTogSW5zdGFuY2VzIG9mIGBEZXZpY2VgIGFyZSBhbHdheXMgcmVmZXJlbmNlLWNvdW50ZWQuXFxuIHVuc2FmZSBpbXBsIGNyYXRlOjpzeW5jOjphcmVmOjpBbHdheXNSZWZDb3VudGVkIGZvciBEZXZpY2Uge1xcbi0gICAgZm4gaW5jX3JlZihcXHUwMDI2c2VsZikge1xcbisgICAgZm4gaW5jX3JlZihvYmo6IFxcdTAwMjZTZWxmKSB7XFxuICAgICAgICAgLy8gU0FGRVRZOiBUaGUgZXhpc3RlbmNlIG9mIGEgc2hhcmVkIHJlZmVyZW5jZSBndWFyYW50ZWVzIHRoYXQgdGhlIHJlZmNvdW50IGlzIG5vbi16ZXJvLlxcbi0gICAgICAgIHVuc2FmZSB7IGJpbmRpbmdzOjpwY2lfZGV2X2dldChzZWxmLmFzX3JhdygpKSB9O1xcbisgICAgICAgIHVuc2FmZSB7IGJpbmRpbmdzOjpwY2lfZGV2X2dldChvYmouYXNfcmF3KCkpIH07XFxuICAgICB9XFxuIFxcbiAgICAgdW5zYWZlIGZuIGRlY19yZWYob2JqOiBOb25OdWxsXFx1MDAzY1NlbGZcXHUwMDNlKSB7XFxuZGlmZiAtLWdpdCBhL3J1c3Qva2VybmVsL3BpZF9uYW1lc3BhY2UucnMgYi9ydXN0L2tlcm5lbC9waWRfbmFtZXNwYWNlLnJzXFxuaW5kZXggOTc5YTk3MThmMTUzZDguLjM4MWM5Zjk4MGIxZmM0IDEwMDY0NFxcbi0tLSBhL3J1c3Qva2VybmVsL3BpZF9uYW1lc3BhY2UucnNcXG4rKysgYi9ydXN0L2tlcm5lbC9waWRfbmFtZXNwYWNlLnJzXFxuQEAgLTQzLDkgKzQzLDkgQEAgcHViIHVuc2FmZSBmbiBmcm9tX3B0clxcdTAwM2MnYVxcdTAwM2UocHRyOiAqY29uc3QgYmluZGluZ3M6OnBpZF9uYW1lc3BhY2UpIC1cXHUwMDNlIFxcdTAwMjYnYSBTZWxmIHtcXG4gLy8gU0FGRVRZOiBJbnN0YW5jZXMgb2YgYFBpZE5hbWVzcGFjZWAgYXJlIGFsd2F5cyByZWZlcmVuY2UtY291bnRlZC5cXG4gdW5zYWZlIGltcGwgQWx3YXlzUmVmQ291bnRlZCBmb3IgUGlkTmFtZXNwYWNlIHtcXG4gICAgICNbaW5saW5lXVxcbi0gICAgZm4gaW5jX3JlZihcXHUwMDI2c2VsZikge1xcbisgICAgZm4gaW5jX3JlZihvYmo6IFxcdTAwMjZTZWxmKSB7XFxuICAgICAgICAgLy8gU0FGRVRZOiBUaGUgZXhpc3RlbmNlIG9mIGEgc2hhcmVkIHJlZmVyZW5jZSBtZWFucyB0aGF0IHRoZSByZWZjb3VudCBpcyBub256ZXJvLlxcbi0gICAgICAgIHVuc2FmZSB7IGJpbmRpbmdzOjpnZXRfcGlkX25zKHNlbGYuYXNfcHRyKCkpIH07XFxuKyAgICAgICAgdW5zYWZlIHsgYmluZGluZ3M6OmdldF9waWRfbnMob2JqLmFzX3B0cigpKSB9O1xcbiAgICAgfVxcbiBcXG4gICAgICNbaW5saW5lXVxcbmRpZmYgLS1naXQgYS9ydXN0L2tlcm5lbC9wbGF0Zm9ybS5ycyBiL3J1c3Qva2VybmVsL3BsYXRmb3JtLnJzXFxuaW5kZXggOWIzNjJlMDQ5NWQzMjMuLjg1MDY4YWU1YTQwNWVjIDEwMDY0NFxcbi0tLSBhL3J1c3Qva2VybmVsL3BsYXRmb3JtLnJzXFxuKysrIGIvcnVzdC9rZXJuZWwvcGxhdGZvcm0ucnNcXG5AQCAtNTE5LDkgKzUxOSw5IEBAIGltcGxcXHUwMDNjJ2FcXHUwMDNlIGNyYXRlOjpkbWE6OkRldmljZVxcdTAwM2MnYVxcdTAwM2UgZm9yIERldmljZVxcdTAwM2NkZXZpY2U6OkNvcmVcXHUwMDNjJ2FcXHUwMDNlXFx1MDAzZSB7fVxcbiBcXG4gLy8gU0FGRVRZOiBJbnN0YW5jZXMgb2YgYERldmljZWAgYXJlIGFsd2F5cyByZWZlcmVuY2UtY291bnRlZC5cXG4gdW5zYWZlIGltcGwgY3JhdGU6OnN5bmM6OmFyZWY6OkFsd2F5c1JlZkNvdW50ZWQgZm9yIERldmljZSB7XFxuLSAgICBmbiBpbmNfcmVmKFxcdTAwMjZzZWxmKSB7XFxuKyAgICBmbiBpbmNfcmVmKG9iajogXFx1MDAyNlNlbGYpIHtcXG4gICAgICAgICAvLyBTQUZFVFk6IFRoZSBleGlzdGVuY2Ugb2YgYSBzaGFyZWQgcmVmZXJlbmNlIGd1YXJhbnRlZXMgdGhhdCB0aGUgcmVmY291bnQgaXMgbm9uLXplcm8uXFxuLSAgICAgICAgdW5zYWZlIHsgYmluZGluZ3M6OmdldF9kZXZpY2Uoc2VsZi5hc19yZWYoKS5hc19yYXcoKSkgfTtcXG4rICAgICAgICB1bnNhZmUgeyBiaW5kaW5nczo6Z2V0X2RldmljZShvYmouYXNfcmVmKCkuYXNfcmF3KCkpIH07XFxuICAgICB9XFxuIFxcbiAgICAgdW5zYWZlIGZuIGRlY19yZWYob2JqOiBOb25OdWxsXFx1MDAzY1NlbGZcXHUwMDNlKSB7XFxuZGlmZiAtLWdpdCBhL3J1c3Qva2VybmVsL3N5bmMvYXJlZi5ycyBiL3J1c3Qva2VybmVsL3N5bmMvYXJlZi5yc1xcbmluZGV4IGI3MjFiMmUwMGI5ODZmLi4yYWUyMTMwZDViYjFkZCAxMDA2NDRcXG4tLS0gYS9ydXN0L2tlcm5lbC9zeW5jL2FyZWYucnNcXG4rKysgYi9ydXN0L2tlcm5lbC9zeW5jL2FyZWYucnNcXG5AQCAtNDQsNyArNDQsMTAgQEBcXG4gLy8vIGFsaXZlLilcXG4gcHViIHVuc2FmZSB0cmFpdCBBbHdheXNSZWZDb3VudGVkIHtcXG4gICAgIC8vLyBJbmNyZW1lbnRzIHRoZSByZWZlcmVuY2UgY291bnQgb24gdGhlIG9iamVjdC5cXG4tICAgIGZuIGluY19yZWYoXFx1MDAyNnNlbGYpO1xcbisgICAgLy8vXFxuKyAgICAvLy8gVGhpcyBmdW5jdGlvbiBzaG91bGQgbm90IGJlIGNhbGxlZCBhY2NpZGVudGFsbHk7IGEgdHlwZSBtaWdodCBkZWNsYXJlIHRoZWlyIG93biBgaW5jX3JlZmBcXG4rICAgIC8vLyBmdW5jdGlvbiBhbmQgaXQgc2hvdWxkbid0IGJlIGNvbmZ1c2VkIHdpdGggdGhpcyBvbmUuXFxuKyAgICBmbiBpbmNfcmVmKG9iajogXFx1MDAyNlNlbGYpO1xcbiBcXG4gICAgIC8vLyBEZWNyZW1lbnRzIHRoZSByZWZlcmVuY2UgY291bnQgb24gdGhlIG9iamVjdC5cXG4gICAgIC8vL1xcbkBAIC0xNDUsNyArMTQ4LDcgQEAgcHViIGZuIGludG9fcmF3KG1lOiBTZWxmKSAtXFx1MDAzZSBOb25OdWxsXFx1MDAzY1RcXHUwMDNlIHtcXG4gXFxuIGltcGxcXHUwMDNjVDogQWx3YXlzUmVmQ291bnRlZFxcdTAwM2UgQ2xvbmUgZm9yIEFSZWZcXHUwMDNjVFxcdTAwM2Uge1xcbiAgICAgZm4gY2xvbmUoXFx1MDAyNnNlbGYpIC1cXHUwMDNlIFNlbGYge1xcbi0gICAgICAgIHNlbGYuaW5jX3JlZigpO1xcbisgICAgICAgIFQ6OmluY19yZWYoc2VsZik7XFxuICAgICAgICAgLy8gU0FGRVRZOiBXZSBqdXN0IGluY3JlbWVudGVkIHRoZSByZWZjb3VudCBhYm92ZS5cXG4gICAgICAgICB1bnNhZmUgeyBTZWxmOjpmcm9tX3JhdyhzZWxmLnB0cikgfVxcbiAgICAgfVxcbkBAIC0xNjIsNyArMTY1LDcgQEAgZm4gZGVyZWYoXFx1MDAyNnNlbGYpIC1cXHUwMDNlIFxcdTAwMjZTZWxmOjpUYXJnZXQge1xcbiBcXG4gaW1wbFxcdTAwM2NUOiBBbHdheXNSZWZDb3VudGVkXFx1MDAzZSBGcm9tXFx1MDAzY1xcdTAwMjZUXFx1MDAzZSBmb3IgQVJlZlxcdTAwM2NUXFx1MDAzZSB7XFxuICAgICBmbiBmcm9tKGI6IFxcdTAwMjZUKSAtXFx1MDAzZSBTZWxmIHtcXG4tICAgICAgICBiLmluY19yZWYoKTtcXG4rICAgICAgICBUOjppbmNfcmVmKGIpO1xcbiAgICAgICAgIC8vIFNBRkVUWTogV2UganVzdCBpbmNyZW1lbnRlZCB0aGUgcmVmY291bnQgYWJvdmUuXFxuICAgICAgICAgdW5zYWZlIHsgU2VsZjo6ZnJvbV9yYXcoTm9uTnVsbDo6ZnJvbShiKSkgfVxcbiAgICAgfVxcbmRpZmYgLS1naXQgYS9ydXN0L2tlcm5lbC90YXNrLnJzIGIvcnVzdC9rZXJuZWwvdGFzay5yc1xcbmluZGV4IDM4MjczZjRlZWRiNTEzLi5hNzcxMWUxNTU4YzJmNSAxMDA2NDRcXG4tLS0gYS9ydXN0L2tlcm5lbC90YXNrLnJzXFxuKysrIGIvcnVzdC9rZXJuZWwvdGFzay5yc1xcbkBAIC0zNDksOSArMzQ5LDkgQEAgcHViIGZuIGdyb3VwX2xlYWRlcihcXHUwMDI2c2VsZikgLVxcdTAwM2UgXFx1MDAyNlRhc2sge1xcbiAvLyBTQUZFVFk6IFRoZSB0eXBlIGludmFyaWFudHMgZ3VhcmFudGVlIHRoYXQgYFRhc2tgIGlzIGFsd2F5cyByZWZjb3VudGVkLlxcbiB1bnNhZmUgaW1wbCBjcmF0ZTo6c3luYzo6YXJlZjo6QWx3YXlzUmVmQ291bnRlZCBmb3IgVGFzayB7XFxuICAgICAjW2lubGluZV1cXG4tICAgIGZuIGluY19yZWYoXFx1MDAyNnNlbGYpIHtcXG4rICAgIGZuIGluY19yZWYob2JqOiBcXHUwMDI2U2VsZikge1xcbiAgICAgICAgIC8vIFNBRkVUWTogVGhlIGV4aXN0ZW5jZSBvZiBhIHNoYXJlZCByZWZlcmVuY2UgbWVhbnMgdGhhdCB0aGUgcmVmY291bnQgaXMgbm9uemVyby5cXG4tICAgICAgICB1bnNhZmUgeyBiaW5kaW5nczo6Z2V0X3Rhc2tfc3RydWN0KHNlbGYuYXNfcHRyKCkpIH07XFxuKyAgICAgICAgdW5zYWZlIHsgYmluZGluZ3M6OmdldF90YXNrX3N0cnVjdChvYmouYXNfcHRyKCkpIH07XFxuICAgICB9XFxuIFxcbiAgICAgI1tpbmxpbmVdXFxuZGlmZiAtLWdpdCBhL3J1c3Qva2VybmVsL3VzYi5ycyBiL3J1c3Qva2VybmVsL3VzYi5yc1xcbmluZGV4IDdhZmYwYzgyZDBhZmMwLi5jMDM5MDU5YzE4OTEzYyAxMDA2NDRcXG4tLS0gYS9ydXN0L2tlcm5lbC91c2IucnNcXG4rKysgYi9ydXN0L2tlcm5lbC91c2IucnNcXG5AQCAtMzkzLDExICszOTMsMTEgQEAgZm4gYXNfcmVmKFxcdTAwMjZzZWxmKSAtXFx1MDAzZSBcXHUwMDI2RGV2aWNlIHtcXG4gXFxuIC8vIFNBRkVUWTogSW5zdGFuY2VzIG9mIGBJbnRlcmZhY2VgIGFyZSBhbHdheXMgcmVmZXJlbmNlLWNvdW50ZWQuXFxuIHVuc2FmZSBpbXBsIEFsd2F5c1JlZkNvdW50ZWQgZm9yIEludGVyZmFjZSB7XFxuLSAgICBmbiBpbmNfcmVmKFxcdTAwMjZzZWxmKSB7XFxuKyAgICBmbiBpbmNfcmVmKG9iajogXFx1MDAyNlNlbGYpIHtcXG4gICAgICAgICAvLyBTQUZFVFk6IFRoZSBpbnZhcmlhbnRzIG9mIGBJbnRlcmZhY2VgIGd1YXJhbnRlZSB0aGF0IGBzZWxmLmFzX3JhdygpYFxcbiAgICAgICAgIC8vIHJldHVybnMgYSB2YWxpZCBgc3RydWN0IHVzYl9pbnRlcmZhY2VgIHBvaW50ZXIsIGZvciB3aGljaCB3ZSB3aWxsXFxuICAgICAgICAgLy8gYWNxdWlyZSBhIG5ldyByZWZjb3VudC5cXG4tICAgICAgICB1bnNhZmUgeyBiaW5kaW5nczo6dXNiX2dldF9pbnRmKHNlbGYuYXNfcmF3KCkpIH07XFxuKyAgICAgICAgdW5zYWZlIHsgYmluZGluZ3M6OnVzYl9nZXRfaW50ZihvYmouYXNfcmF3KCkpIH07XFxuICAgICB9XFxuIFxcbiAgICAgdW5zYWZlIGZuIGRlY19yZWYob2JqOiBOb25OdWxsXFx1MDAzY1NlbGZcXHUwMDNlKSB7XFxuQEAgLTQ0NCwxMSArNDQ0LDExIEBAIGZuIGFzX3JhdyhcXHUwMDI2c2VsZikgLVxcdTAwM2UgKm11dCBiaW5kaW5nczo6dXNiX2RldmljZSB7XFxuIFxcbiAvLyBTQUZFVFk6IEluc3RhbmNlcyBvZiBgRGV2aWNlYCBhcmUgYWx3YXlzIHJlZmVyZW5jZS1jb3VudGVkLlxcbiB1bnNhZmUgaW1wbCBBbHdheXNSZWZDb3VudGVkIGZvciBEZXZpY2Uge1xcbi0gICAgZm4gaW5jX3JlZihcXHUwMDI2c2VsZikge1xcbisgICAgZm4gaW5jX3JlZihvYmo6IFxcdTAwMjZTZWxmKSB7XFxuICAgICAgICAgLy8gU0FGRVRZOiBUaGUgaW52YXJpYW50cyBvZiBgRGV2aWNlYCBndWFyYW50ZWUgdGhhdCBgc2VsZi5hc19yYXcoKWBcXG4gICAgICAgICAvLyByZXR1cm5zIGEgdmFsaWQgYHN0cnVjdCB1c2JfZGV2aWNlYCBwb2ludGVyLCBmb3Igd2hpY2ggd2Ugd2lsbFxcbiAgICAgICAgIC8vIGFjcXVpcmUgYSBuZXcgcmVmY291bnQuXFxuLSAgICAgICAgdW5zYWZlIHsgYmluZGluZ3M6OnVzYl9nZXRfZGV2KHNlbGYuYXNfcmF3KCkpIH07XFxuKyAgICAgICAgdW5zYWZlIHsgYmluZGluZ3M6OnVzYl9nZXRfZGV2KG9iai5hc19yYXcoKSkgfTtcXG4gICAgIH1cXG4gXFxuICAgICB1bnNhZmUgZm4gZGVjX3JlZihvYmo6IE5vbk51bGxcXHUwMDNjU2VsZlxcdTAwM2UpIHtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDYtMjhUMDk6NTI6MDYuODE4NzY2NDRaIiwiU2VxIjoyLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWdlbnQiLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjc3ODUyOTYxNjIsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogbnVsbCxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGlzIGEgcHVyZWx5IHN5bnRhY3RpYyByZWZhY3RvcmluZyBpbiB0aGUgUnVzdCBrZXJuZWwgYmluZGluZ3MuIEl0IGNoYW5nZXMgdGhlIHNpZ25hdHVyZSBvZiB0aGUgYGluY19yZWZgIG1ldGhvZCBpbiB0aGUgYEFsd2F5c1JlZkNvdW50ZWRgIHRyYWl0IGZyb20gYGZuIGluY19yZWYoXFx1MDAyNnNlbGYpYCB0byBgZm4gaW5jX3JlZihvYmo6IFxcdTAwMjZTZWxmKWAgdG8gcHJldmVudCBhY2NpZGVudGFsIG1ldGhvZCByZXNvbHV0aW9uIGNvbmZsaWN0cy4gSXQgZG9lcyBub3QgYWx0ZXIgYW55IGZ1bmN0aW9uYWwgbG9naWMgb3IgZXhlY3V0aW9uIGZsb3cgaW4gdGhlIGtlcm5lbC5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJJbnN0cnVjdGlvbiI6IllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLlxuWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmVcbmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC5cblxuSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluXG55b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHlcbnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuXG5cblJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6XG4tIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuXG4tIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLlxuLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuXG4tIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSxcbmV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS5cblxuSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaFxudG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuXG5cbldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOlxuMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy5cbiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLlxuMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuXG4gICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuXG4gICBEbyBub3QgbGlzdCB0b28gZ2VuZXJpYyBjb25maWdzICh3ZSBhbHJlYWR5IGhhdmUgdGhlbSBlbmFibGVkKS4gT25seSBsaXN0IHRob3NlIHRoYXRcbiAgIHNwZWNpZmljYWxseSBjb3ZlciB0aGUgbW9kaWZpZWQgY29kZS4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzIG91dHB1dCBhcnJheSxcbiAgIGFuZCBETyBOT1QgYWRkIGEgJ0NPTkZJR18nIHByZWZpeCAoZS5nLiwgcmV0dXJuIFwiTkVUX0lQVjRcIiBpbnN0ZWFkIG9mIFwiQ09ORklHX05FVF9JUFY0XCIpLlxuUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuXG5cblxuVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy5cbkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LlxuSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLlxuIiwiUHJvbXB0IjoiRm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6XG5jb21taXQgNmYwNTE1MjVkOTgzNjNlMTBhNWQ4OTNhMjE4YzU1MmVmYTE3YmY4MlxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBTdW4gSnVuIDI4IDA5OjUyOjA1IDIwMjYgKzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvcnVzdC9rZXJuZWwvYXV4aWxpYXJ5LnJzIGIvcnVzdC9rZXJuZWwvYXV4aWxpYXJ5LnJzXG5pbmRleCBjNDI5MjhkNWEyMzkzZi4uNzVhNjFiNTFjZjc5OGQgMTAwNjQ0XG4tLS0gYS9ydXN0L2tlcm5lbC9hdXhpbGlhcnkucnNcbisrKyBiL3J1c3Qva2VybmVsL2F1eGlsaWFyeS5yc1xuQEAgLTM0NSw5ICszNDUsOSBAQCB1bnNhZmUgaW1wbFx1MDAzY0N0eDogZGV2aWNlOjpEZXZpY2VDb250ZXh0XHUwMDNlIGRldmljZTo6QXNCdXNEZXZpY2VcdTAwM2NDdHhcdTAwM2UgZm9yIERldmljZVx1MDAzY0N0eFx1MDAzZVxuIFxuIC8vIFNBRkVUWTogSW5zdGFuY2VzIG9mIGBEZXZpY2VgIGFyZSBhbHdheXMgcmVmZXJlbmNlLWNvdW50ZWQuXG4gdW5zYWZlIGltcGwgY3JhdGU6OnN5bmM6OmFyZWY6OkFsd2F5c1JlZkNvdW50ZWQgZm9yIERldmljZSB7XG4tICAgIGZuIGluY19yZWYoXHUwMDI2c2VsZikge1xuKyAgICBmbiBpbmNfcmVmKG9iajogXHUwMDI2U2VsZikge1xuICAgICAgICAgLy8gU0FGRVRZOiBUaGUgZXhpc3RlbmNlIG9mIGEgc2hhcmVkIHJlZmVyZW5jZSBndWFyYW50ZWVzIHRoYXQgdGhlIHJlZmNvdW50IGlzIG5vbi16ZXJvLlxuLSAgICAgICAgdW5zYWZlIHsgYmluZGluZ3M6OmdldF9kZXZpY2Uoc2VsZi5hc19yZWYoKS5hc19yYXcoKSkgfTtcbisgICAgICAgIHVuc2FmZSB7IGJpbmRpbmdzOjpnZXRfZGV2aWNlKG9iai5hc19yZWYoKS5hc19yYXcoKSkgfTtcbiAgICAgfVxuIFxuICAgICB1bnNhZmUgZm4gZGVjX3JlZihvYmo6IE5vbk51bGxcdTAwM2NTZWxmXHUwMDNlKSB7XG5kaWZmIC0tZ2l0IGEvcnVzdC9rZXJuZWwvYmxvY2svbXEvcmVxdWVzdC5ycyBiL3J1c3Qva2VybmVsL2Jsb2NrL21xL3JlcXVlc3QucnNcbmluZGV4IGNlM2UzMGM4MWNiNWVkLi5mNDFkMDFlYTQ1OTUxYyAxMDA2NDRcbi0tLSBhL3J1c3Qva2VybmVsL2Jsb2NrL21xL3JlcXVlc3QucnNcbisrKyBiL3J1c3Qva2VybmVsL2Jsb2NrL21xL3JlcXVlc3QucnNcbkBAIC0yMzQsOCArMjM0LDggQEAgdW5zYWZlIGltcGxcdTAwM2NUOiBPcGVyYXRpb25zXHUwMDNlIFN5bmMgZm9yIFJlcXVlc3RcdTAwM2NUXHUwMDNlIHt9XG4gLy8ga2VlcHMgdGhlIG9iamVjdCBhbGl2ZSBpbiBtZW1vcnkgYXQgbGVhc3QgdW50aWwgYSBtYXRjaGluZyByZWZlcmVuY2UgY291bnRcbiAvLyBkZWNyZW1lbnQgaXMgZXhlY3V0ZWQuXG4gdW5zYWZlIGltcGxcdTAwM2NUOiBPcGVyYXRpb25zXHUwMDNlIEFsd2F5c1JlZkNvdW50ZWQgZm9yIFJlcXVlc3RcdTAwM2NUXHUwMDNlIHtcbi0gICAgZm4gaW5jX3JlZihcdTAwMjZzZWxmKSB7XG4tICAgICAgICBzZWxmLndyYXBwZXJfcmVmKCkucmVmY291bnQoKS5pbmMoKTtcbisgICAgZm4gaW5jX3JlZihvYmo6IFx1MDAyNlNlbGYpIHtcbisgICAgICAgIG9iai53cmFwcGVyX3JlZigpLnJlZmNvdW50KCkuaW5jKCk7XG4gICAgIH1cbiBcbiAgICAgdW5zYWZlIGZuIGRlY19yZWYob2JqOiBjb3JlOjpwdHI6Ok5vbk51bGxcdTAwM2NTZWxmXHUwMDNlKSB7XG5kaWZmIC0tZ2l0IGEvcnVzdC9rZXJuZWwvY3JlZC5ycyBiL3J1c3Qva2VybmVsL2NyZWQucnNcbmluZGV4IGZmYTE1NmI5ZGYzNzdlLi5kNTNjYmM3OTJmYTNhOSAxMDA2NDRcbi0tLSBhL3J1c3Qva2VybmVsL2NyZWQucnNcbisrKyBiL3J1c3Qva2VybmVsL2NyZWQucnNcbkBAIC03OCw5ICs3OCw5IEBAIHB1YiBmbiBldWlkKFx1MDAyNnNlbGYpIC1cdTAwM2UgS3VpZCB7XG4gLy8gU0FGRVRZOiBUaGUgdHlwZSBpbnZhcmlhbnRzIGd1YXJhbnRlZSB0aGF0IGBDcmVkZW50aWFsYCBpcyBhbHdheXMgcmVmLWNvdW50ZWQuXG4gdW5zYWZlIGltcGwgQWx3YXlzUmVmQ291bnRlZCBmb3IgQ3JlZGVudGlhbCB7XG4gICAgICNbaW5saW5lXVxuLSAgICBmbiBpbmNfcmVmKFx1MDAyNnNlbGYpIHtcbisgICAgZm4gaW5jX3JlZihvYmo6IFx1MDAyNlNlbGYpIHtcbiAgICAgICAgIC8vIFNBRkVUWTogVGhlIGV4aXN0ZW5jZSBvZiBhIHNoYXJlZCByZWZlcmVuY2UgbWVhbnMgdGhhdCB0aGUgcmVmY291bnQgaXMgbm9uemVyby5cbi0gICAgICAgIHVuc2FmZSB7IGJpbmRpbmdzOjpnZXRfY3JlZChzZWxmLjAuZ2V0KCkpIH07XG4rICAgICAgICB1bnNhZmUgeyBiaW5kaW5nczo6Z2V0X2NyZWQob2JqLjAuZ2V0KCkpIH07XG4gICAgIH1cbiBcbiAgICAgI1tpbmxpbmVdXG5kaWZmIC0tZ2l0IGEvcnVzdC9rZXJuZWwvZGV2aWNlLnJzIGIvcnVzdC9rZXJuZWwvZGV2aWNlLnJzXG5pbmRleCA2NDVhZmM0OWEyN2Q2NC4uZWM0NGRjYzQwNWQ1MTEgMTAwNjQ0XG4tLS0gYS9ydXN0L2tlcm5lbC9kZXZpY2UucnNcbisrKyBiL3J1c3Qva2VybmVsL2RldmljZS5yc1xuQEAgLTQ0OSw5ICs0NDksOSBAQCBwdWIgZm4gbmFtZShcdTAwMjZzZWxmKSAtXHUwMDNlIFx1MDAyNkNTdHIge1xuIFxuIC8vIFNBRkVUWTogSW5zdGFuY2VzIG9mIGBEZXZpY2VgIGFyZSBhbHdheXMgcmVmZXJlbmNlLWNvdW50ZWQuXG4gdW5zYWZlIGltcGwgY3JhdGU6OnN5bmM6OmFyZWY6OkFsd2F5c1JlZkNvdW50ZWQgZm9yIERldmljZSB7XG4tICAgIGZuIGluY19yZWYoXHUwMDI2c2VsZikge1xuKyAgICBmbiBpbmNfcmVmKG9iajogXHUwMDI2U2VsZikge1xuICAgICAgICAgLy8gU0FGRVRZOiBUaGUgZXhpc3RlbmNlIG9mIGEgc2hhcmVkIHJlZmVyZW5jZSBndWFyYW50ZWVzIHRoYXQgdGhlIHJlZmNvdW50IGlzIG5vbi16ZXJvLlxuLSAgICAgICAgdW5zYWZlIHsgYmluZGluZ3M6OmdldF9kZXZpY2Uoc2VsZi5hc19yYXcoKSkgfTtcbisgICAgICAgIHVuc2FmZSB7IGJpbmRpbmdzOjpnZXRfZGV2aWNlKG9iai5hc19yYXcoKSkgfTtcbiAgICAgfVxuIFxuICAgICB1bnNhZmUgZm4gZGVjX3JlZihvYmo6IHB0cjo6Tm9uTnVsbFx1MDAzY1NlbGZcdTAwM2UpIHtcbmRpZmYgLS1naXQgYS9ydXN0L2tlcm5lbC9kZXZpY2UvcHJvcGVydHkucnMgYi9ydXN0L2tlcm5lbC9kZXZpY2UvcHJvcGVydHkucnNcbmluZGV4IDVhZWFkODM1ZmJiYzAyLi5jMzljY2MxNDU4Yjk1ZSAxMDA2NDRcbi0tLSBhL3J1c3Qva2VybmVsL2RldmljZS9wcm9wZXJ0eS5yc1xuKysrIGIvcnVzdC9rZXJuZWwvZGV2aWNlL3Byb3BlcnR5LnJzXG5AQCAtMzYxLDEwICszNjEsMTAgQEAgZm4gZm10KFx1MDAyNnNlbGYsIGY6IFx1MDAyNm11dCBmbXQ6OkZvcm1hdHRlclx1MDAzYydfXHUwMDNlKSAtXHUwMDNlIGZtdDo6UmVzdWx0IHtcbiBcbiAvLyBTQUZFVFk6IEluc3RhbmNlcyBvZiBgRndOb2RlYCBhcmUgYWx3YXlzIHJlZmVyZW5jZS1jb3VudGVkLlxuIHVuc2FmZSBpbXBsIGNyYXRlOjpzeW5jOjphcmVmOjpBbHdheXNSZWZDb3VudGVkIGZvciBGd05vZGUge1xuLSAgICBmbiBpbmNfcmVmKFx1MDAyNnNlbGYpIHtcbisgICAgZm4gaW5jX3JlZihvYmo6IFx1MDAyNlNlbGYpIHtcbiAgICAgICAgIC8vIFNBRkVUWTogVGhlIGV4aXN0ZW5jZSBvZiBhIHNoYXJlZCByZWZlcmVuY2UgZ3VhcmFudGVlcyB0aGF0IHRoZVxuICAgICAgICAgLy8gcmVmY291bnQgaXMgbm9uLXplcm8uXG4tICAgICAgICB1bnNhZmUgeyBiaW5kaW5nczo6Zndub2RlX2hhbmRsZV9nZXQoc2VsZi5hc19yYXcoKSkgfTtcbisgICAgICAgIHVuc2FmZSB7IGJpbmRpbmdzOjpmd25vZGVfaGFuZGxlX2dldChvYmouYXNfcmF3KCkpIH07XG4gICAgIH1cbiBcbiAgICAgdW5zYWZlIGZuIGRlY19yZWYob2JqOiBwdHI6Ok5vbk51bGxcdTAwM2NTZWxmXHUwMDNlKSB7XG5kaWZmIC0tZ2l0IGEvcnVzdC9rZXJuZWwvZHJtL2RldmljZS5ycyBiL3J1c3Qva2VybmVsL2RybS9kZXZpY2UucnNcbmluZGV4IDQ3N2NmNzcxZmIxMGVmLi4wYzcwZWMwMTBiZDkxMSAxMDA2NDRcbi0tLSBhL3J1c3Qva2VybmVsL2RybS9kZXZpY2UucnNcbisrKyBiL3J1c3Qva2VybmVsL2RybS9kZXZpY2UucnNcbkBAIC0zNjMsOSArMzYzLDkgQEAgZm4gZGVyZWYoXHUwMDI2c2VsZikgLVx1MDAzZSBcdTAwMjZTZWxmOjpUYXJnZXQge1xuIC8vIFNBRkVUWTogRFJNIGRldmljZSBvYmplY3RzIGFyZSBhbHdheXMgcmVmZXJlbmNlIGNvdW50ZWQgYW5kIHRoZSBnZXQvcHV0IGZ1bmN0aW9uc1xuIC8vIHNhdGlzZnkgdGhlIHJlcXVpcmVtZW50cy5cbiB1bnNhZmUgaW1wbFx1MDAzY1Q6IGRybTo6RHJpdmVyLCBDOiBEZXZpY2VDb250ZXh0XHUwMDNlIEFsd2F5c1JlZkNvdW50ZWQgZm9yIERldmljZVx1MDAzY1QsIENcdTAwM2Uge1xuLSAgICBmbiBpbmNfcmVmKFx1MDAyNnNlbGYpIHtcbisgICAgZm4gaW5jX3JlZihvYmo6IFx1MDAyNlNlbGYpIHtcbiAgICAgICAgIC8vIFNBRkVUWTogVGhlIGV4aXN0ZW5jZSBvZiBhIHNoYXJlZCByZWZlcmVuY2UgZ3VhcmFudGVlcyB0aGF0IHRoZSByZWZjb3VudCBpcyBub24temVyby5cbi0gICAgICAgIHVuc2FmZSB7IGJpbmRpbmdzOjpkcm1fZGV2X2dldChzZWxmLmFzX3JhdygpKSB9O1xuKyAgICAgICAgdW5zYWZlIHsgYmluZGluZ3M6OmRybV9kZXZfZ2V0KG9iai5hc19yYXcoKSkgfTtcbiAgICAgfVxuIFxuICAgICB1bnNhZmUgZm4gZGVjX3JlZihvYmo6IE5vbk51bGxcdTAwM2NTZWxmXHUwMDNlKSB7XG5kaWZmIC0tZ2l0IGEvcnVzdC9rZXJuZWwvZHJtL2dlbS9tb2QucnMgYi9ydXN0L2tlcm5lbC9kcm0vZ2VtL21vZC5yc1xuaW5kZXggYzhiNjZkODE2ODcxOTkuLmVlOWU0MTIwNjZhYmI3IDEwMDY0NFxuLS0tIGEvcnVzdC9rZXJuZWwvZHJtL2dlbS9tb2QucnNcbisrKyBiL3J1c3Qva2VybmVsL2RybS9nZW0vbW9kLnJzXG5AQCAtNTIsMTAgKzUyLDEwIEBAIHVuc2FmZSBpbXBsICQoIFx1MDAzYyQoICR0cGFyYW1faWQgKSwrXHUwMDNlICk/ICRjcmF0ZTo6c3luYzo6YXJlZjo6QWx3YXlzUmVmQ291bnRlZCBmb3IgJFxuICAgICAgICAgICAgIFNlbGY6IEludG9HRU1PYmplY3QsXG4gICAgICAgICAgICAgJCggJCggJGJpbmRfcGFyYW0gOiAkYmluZF90cmFpdCApLCsgKT9cbiAgICAgICAgIHtcbi0gICAgICAgICAgICBmbiBpbmNfcmVmKFx1MDAyNnNlbGYpIHtcbisgICAgICAgICAgICBmbiBpbmNfcmVmKG9iajogXHUwMDI2U2VsZikge1xuICAgICAgICAgICAgICAgICAvLyBTQUZFVFk6IFRoZSBleGlzdGVuY2Ugb2YgYSBzaGFyZWQgcmVmZXJlbmNlIGd1YXJhbnRlZXMgdGhhdCB0aGUgcmVmY291bnQgaXNcbiAgICAgICAgICAgICAgICAgLy8gbm9uLXplcm8uXG4tICAgICAgICAgICAgICAgIHVuc2FmZSB7IGJpbmRpbmdzOjpkcm1fZ2VtX29iamVjdF9nZXQoc2VsZi5hc19yYXcoKSkgfTtcbisgICAgICAgICAgICAgICAgdW5zYWZlIHsgYmluZGluZ3M6OmRybV9nZW1fb2JqZWN0X2dldChvYmouYXNfcmF3KCkpIH07XG4gICAgICAgICAgICAgfVxuIFxuICAgICAgICAgICAgIHVuc2FmZSBmbiBkZWNfcmVmKG9iajogY29yZTo6cHRyOjpOb25OdWxsXHUwMDNjU2VsZlx1MDAzZSkge1xuZGlmZiAtLWdpdCBhL3J1c3Qva2VybmVsL2ZzL2ZpbGUucnMgYi9ydXN0L2tlcm5lbC9mcy9maWxlLnJzXG5pbmRleCAyM2VlNjg5YmQyNDAwNS4uOGU1OTY3YWZjZDExZjIgMTAwNjQ0XG4tLS0gYS9ydXN0L2tlcm5lbC9mcy9maWxlLnJzXG4rKysgYi9ydXN0L2tlcm5lbC9mcy9maWxlLnJzXG5AQCAtMTk5LDkgKzE5OSw5IEBAIHVuc2FmZSBpbXBsIFN5bmMgZm9yIEZpbGUge31cbiAvLyBtYWtlcyBgQVJlZlx1MDAzY0ZpbGVcdTAwM2VgIG93biBhIG5vcm1hbCByZWZjb3VudC5cbiB1bnNhZmUgaW1wbCBBbHdheXNSZWZDb3VudGVkIGZvciBGaWxlIHtcbiAgICAgI1tpbmxpbmVdXG4tICAgIGZuIGluY19yZWYoXHUwMDI2c2VsZikge1xuKyAgICBmbiBpbmNfcmVmKG9iajogXHUwMDI2U2VsZikge1xuICAgICAgICAgLy8gU0FGRVRZOiBUaGUgZXhpc3RlbmNlIG9mIGEgc2hhcmVkIHJlZmVyZW5jZSBtZWFucyB0aGF0IHRoZSByZWZjb3VudCBpcyBub256ZXJvLlxuLSAgICAgICAgdW5zYWZlIHsgYmluZGluZ3M6OmdldF9maWxlKHNlbGYuYXNfcHRyKCkpIH07XG4rICAgICAgICB1bnNhZmUgeyBiaW5kaW5nczo6Z2V0X2ZpbGUob2JqLmFzX3B0cigpKSB9O1xuICAgICB9XG4gXG4gICAgICNbaW5saW5lXVxuQEAgLTIzNSw5ICsyMzUsOSBAQCBwdWIgc3RydWN0IExvY2FsRmlsZSB7XG4gLy8gbWFrZXMgYEFSZWZcdTAwM2NMb2NhbEZpbGVcdTAwM2VgIG93biBhIG5vcm1hbCByZWZjb3VudC5cbiB1bnNhZmUgaW1wbCBBbHdheXNSZWZDb3VudGVkIGZvciBMb2NhbEZpbGUge1xuICAgICAjW2lubGluZV1cbi0gICAgZm4gaW5jX3JlZihcdTAwMjZzZWxmKSB7XG4rICAgIGZuIGluY19yZWYob2JqOiBcdTAwMjZTZWxmKSB7XG4gICAgICAgICAvLyBTQUZFVFk6IFRoZSBleGlzdGVuY2Ugb2YgYSBzaGFyZWQgcmVmZXJlbmNlIG1lYW5zIHRoYXQgdGhlIHJlZmNvdW50IGlzIG5vbnplcm8uXG4tICAgICAgICB1bnNhZmUgeyBiaW5kaW5nczo6Z2V0X2ZpbGUoc2VsZi5hc19wdHIoKSkgfTtcbisgICAgICAgIHVuc2FmZSB7IGJpbmRpbmdzOjpnZXRfZmlsZShvYmouYXNfcHRyKCkpIH07XG4gICAgIH1cbiBcbiAgICAgI1tpbmxpbmVdXG5kaWZmIC0tZ2l0IGEvcnVzdC9rZXJuZWwvaTJjLnJzIGIvcnVzdC9rZXJuZWwvaTJjLnJzXG5pbmRleCA2MjRiOTcxY2E4YjBiMi4uMWE5ODgyYTY0YzRiOGUgMTAwNjQ0XG4tLS0gYS9ydXN0L2tlcm5lbC9pMmMucnNcbisrKyBiL3J1c3Qva2VybmVsL2kyYy5yc1xuQEAgLTQyNSw5ICs0MjUsOSBAQCBwdWIgZm4gZ2V0KGluZGV4OiBpMzIpIC1cdTAwM2UgUmVzdWx0XHUwMDNjQVJlZlx1MDAzY1NlbGZcdTAwM2VcdTAwM2Uge1xuIFxuIC8vIFNBRkVUWTogSW5zdGFuY2VzIG9mIGBJMmNBZGFwdGVyYCBhcmUgYWx3YXlzIHJlZmVyZW5jZS1jb3VudGVkLlxuIHVuc2FmZSBpbXBsIEFsd2F5c1JlZkNvdW50ZWQgZm9yIEkyY0FkYXB0ZXIge1xuLSAgICBmbiBpbmNfcmVmKFx1MDAyNnNlbGYpIHtcbisgICAgZm4gaW5jX3JlZihvYmo6IFx1MDAyNlNlbGYpIHtcbiAgICAgICAgIC8vIFNBRkVUWTogVGhlIGV4aXN0ZW5jZSBvZiBhIHNoYXJlZCByZWZlcmVuY2UgZ3VhcmFudGVlcyB0aGF0IHRoZSByZWZjb3VudCBpcyBub24temVyby5cbi0gICAgICAgIHVuc2FmZSB7IGJpbmRpbmdzOjppMmNfZ2V0X2FkYXB0ZXIoc2VsZi5pbmRleCgpKSB9O1xuKyAgICAgICAgdW5zYWZlIHsgYmluZGluZ3M6OmkyY19nZXRfYWRhcHRlcihvYmouaW5kZXgoKSkgfTtcbiAgICAgfVxuIFxuICAgICB1bnNhZmUgZm4gZGVjX3JlZihvYmo6IE5vbk51bGxcdTAwM2NTZWxmXHUwMDNlKSB7XG5AQCAtNTAxLDkgKzUwMSw5IEBAIHVuc2FmZSBpbXBsXHUwMDNjQ3R4OiBkZXZpY2U6OkRldmljZUNvbnRleHRcdTAwM2UgZGV2aWNlOjpBc0J1c0RldmljZVx1MDAzY0N0eFx1MDAzZSBmb3IgSTJjQ2xpZW50XHUwMDNjQ1xuIFxuIC8vIFNBRkVUWTogSW5zdGFuY2VzIG9mIGBJMmNDbGllbnRgIGFyZSBhbHdheXMgcmVmZXJlbmNlLWNvdW50ZWQuXG4gdW5zYWZlIGltcGwgQWx3YXlzUmVmQ291bnRlZCBmb3IgSTJjQ2xpZW50IHtcbi0gICAgZm4gaW5jX3JlZihcdTAwMjZzZWxmKSB7XG4rICAgIGZuIGluY19yZWYob2JqOiBcdTAwMjZTZWxmKSB7XG4gICAgICAgICAvLyBTQUZFVFk6IFRoZSBleGlzdGVuY2Ugb2YgYSBzaGFyZWQgcmVmZXJlbmNlIGd1YXJhbnRlZXMgdGhhdCB0aGUgcmVmY291bnQgaXMgbm9uLXplcm8uXG4tICAgICAgICB1bnNhZmUgeyBiaW5kaW5nczo6Z2V0X2RldmljZShzZWxmLmFzX3JlZigpLmFzX3JhdygpKSB9O1xuKyAgICAgICAgdW5zYWZlIHsgYmluZGluZ3M6OmdldF9kZXZpY2Uob2JqLmFzX3JlZigpLmFzX3JhdygpKSB9O1xuICAgICB9XG4gXG4gICAgIHVuc2FmZSBmbiBkZWNfcmVmKG9iajogTm9uTnVsbFx1MDAzY1NlbGZcdTAwM2UpIHtcbmRpZmYgLS1naXQgYS9ydXN0L2tlcm5lbC9tbS5ycyBiL3J1c3Qva2VybmVsL21tLnJzXG5pbmRleCA0NzY0ZDdiNjhmMmE3Zi4uYzk1NWNiZDg4NGI4YjcgMTAwNjQ0XG4tLS0gYS9ydXN0L2tlcm5lbC9tbS5yc1xuKysrIGIvcnVzdC9rZXJuZWwvbW0ucnNcbkBAIC01Nyw5ICs1Nyw5IEBAIHVuc2FmZSBpbXBsIFN5bmMgZm9yIE1tIHt9XG4gLy8gU0FGRVRZOiBCeSB0aGUgdHlwZSBpbnZhcmlhbnRzLCB0aGlzIHR5cGUgaXMgYWx3YXlzIHJlZmNvdW50ZWQuXG4gdW5zYWZlIGltcGwgQWx3YXlzUmVmQ291bnRlZCBmb3IgTW0ge1xuICAgICAjW2lubGluZV1cbi0gICAgZm4gaW5jX3JlZihcdTAwMjZzZWxmKSB7XG4rICAgIGZuIGluY19yZWYob2JqOiBcdTAwMjZTZWxmKSB7XG4gICAgICAgICAvLyBTQUZFVFk6IFRoZSBwb2ludGVyIGlzIHZhbGlkIHNpbmNlIHNlbGYgaXMgYSByZWZlcmVuY2UuXG4tICAgICAgICB1bnNhZmUgeyBiaW5kaW5nczo6bW1ncmFiKHNlbGYuYXNfcmF3KCkpIH07XG4rICAgICAgICB1bnNhZmUgeyBiaW5kaW5nczo6bW1ncmFiKG9iai5hc19yYXcoKSkgfTtcbiAgICAgfVxuIFxuICAgICAjW2lubGluZV1cbkBAIC05Myw5ICs5Myw5IEBAIHVuc2FmZSBpbXBsIFN5bmMgZm9yIE1tV2l0aFVzZXIge31cbiAvLyBTQUZFVFk6IEJ5IHRoZSB0eXBlIGludmFyaWFudHMsIHRoaXMgdHlwZSBpcyBhbHdheXMgcmVmY291bnRlZC5cbiB1bnNhZmUgaW1wbCBBbHdheXNSZWZDb3VudGVkIGZvciBNbVdpdGhVc2VyIHtcbiAgICAgI1tpbmxpbmVdXG4tICAgIGZuIGluY19yZWYoXHUwMDI2c2VsZikge1xuKyAgICBmbiBpbmNfcmVmKG9iajogXHUwMDI2U2VsZikge1xuICAgICAgICAgLy8gU0FGRVRZOiBUaGUgcG9pbnRlciBpcyB2YWxpZCBzaW5jZSBzZWxmIGlzIGEgcmVmZXJlbmNlLlxuLSAgICAgICAgdW5zYWZlIHsgYmluZGluZ3M6Om1tZ2V0KHNlbGYuYXNfcmF3KCkpIH07XG4rICAgICAgICB1bnNhZmUgeyBiaW5kaW5nczo6bW1nZXQob2JqLmFzX3JhdygpKSB9O1xuICAgICB9XG4gXG4gICAgICNbaW5saW5lXVxuZGlmZiAtLWdpdCBhL3J1c3Qva2VybmVsL21tL21tcHV0X2FzeW5jLnJzIGIvcnVzdC9rZXJuZWwvbW0vbW1wdXRfYXN5bmMucnNcbmluZGV4IGI4ZDJmMDUxMjI1YzczLi43ZGY0MDc3NzY1NGNlNyAxMDA2NDRcbi0tLSBhL3J1c3Qva2VybmVsL21tL21tcHV0X2FzeW5jLnJzXG4rKysgYi9ydXN0L2tlcm5lbC9tbS9tbXB1dF9hc3luYy5yc1xuQEAgLTM2LDkgKzM2LDkgQEAgdW5zYWZlIGltcGwgU3luYyBmb3IgTW1XaXRoVXNlckFzeW5jIHt9XG4gLy8gU0FGRVRZOiBCeSB0aGUgdHlwZSBpbnZhcmlhbnRzLCB0aGlzIHR5cGUgaXMgYWx3YXlzIHJlZmNvdW50ZWQuXG4gdW5zYWZlIGltcGwgQWx3YXlzUmVmQ291bnRlZCBmb3IgTW1XaXRoVXNlckFzeW5jIHtcbiAgICAgI1tpbmxpbmVdXG4tICAgIGZuIGluY19yZWYoXHUwMDI2c2VsZikge1xuKyAgICBmbiBpbmNfcmVmKG9iajogXHUwMDI2U2VsZikge1xuICAgICAgICAgLy8gU0FGRVRZOiBUaGUgcG9pbnRlciBpcyB2YWxpZCBzaW5jZSBzZWxmIGlzIGEgcmVmZXJlbmNlLlxuLSAgICAgICAgdW5zYWZlIHsgYmluZGluZ3M6Om1tZ2V0KHNlbGYuYXNfcmF3KCkpIH07XG4rICAgICAgICB1bnNhZmUgeyBiaW5kaW5nczo6bW1nZXQob2JqLmFzX3JhdygpKSB9O1xuICAgICB9XG4gXG4gICAgICNbaW5saW5lXVxuZGlmZiAtLWdpdCBhL3J1c3Qva2VybmVsL3BjaS5ycyBiL3J1c3Qva2VybmVsL3BjaS5yc1xuaW5kZXggNTA3MWNhZTY1NDNmZDIuLjBmMTZjZjBkYTNkNzU2IDEwMDY0NFxuLS0tIGEvcnVzdC9rZXJuZWwvcGNpLnJzXG4rKysgYi9ydXN0L2tlcm5lbC9wY2kucnNcbkBAIC00ODIsOSArNDgyLDkgQEAgaW1wbFx1MDAzYydhXHUwMDNlIGNyYXRlOjpkbWE6OkRldmljZVx1MDAzYydhXHUwMDNlIGZvciBEZXZpY2VcdTAwM2NkZXZpY2U6OkNvcmVcdTAwM2MnYVx1MDAzZVx1MDAzZSB7fVxuIFxuIC8vIFNBRkVUWTogSW5zdGFuY2VzIG9mIGBEZXZpY2VgIGFyZSBhbHdheXMgcmVmZXJlbmNlLWNvdW50ZWQuXG4gdW5zYWZlIGltcGwgY3JhdGU6OnN5bmM6OmFyZWY6OkFsd2F5c1JlZkNvdW50ZWQgZm9yIERldmljZSB7XG4tICAgIGZuIGluY19yZWYoXHUwMDI2c2VsZikge1xuKyAgICBmbiBpbmNfcmVmKG9iajogXHUwMDI2U2VsZikge1xuICAgICAgICAgLy8gU0FGRVRZOiBUaGUgZXhpc3RlbmNlIG9mIGEgc2hhcmVkIHJlZmVyZW5jZSBndWFyYW50ZWVzIHRoYXQgdGhlIHJlZmNvdW50IGlzIG5vbi16ZXJvLlxuLSAgICAgICAgdW5zYWZlIHsgYmluZGluZ3M6OnBjaV9kZXZfZ2V0KHNlbGYuYXNfcmF3KCkpIH07XG4rICAgICAgICB1bnNhZmUgeyBiaW5kaW5nczo6cGNpX2Rldl9nZXQob2JqLmFzX3JhdygpKSB9O1xuICAgICB9XG4gXG4gICAgIHVuc2FmZSBmbiBkZWNfcmVmKG9iajogTm9uTnVsbFx1MDAzY1NlbGZcdTAwM2UpIHtcbmRpZmYgLS1naXQgYS9ydXN0L2tlcm5lbC9waWRfbmFtZXNwYWNlLnJzIGIvcnVzdC9rZXJuZWwvcGlkX25hbWVzcGFjZS5yc1xuaW5kZXggOTc5YTk3MThmMTUzZDguLjM4MWM5Zjk4MGIxZmM0IDEwMDY0NFxuLS0tIGEvcnVzdC9rZXJuZWwvcGlkX25hbWVzcGFjZS5yc1xuKysrIGIvcnVzdC9rZXJuZWwvcGlkX25hbWVzcGFjZS5yc1xuQEAgLTQzLDkgKzQzLDkgQEAgcHViIHVuc2FmZSBmbiBmcm9tX3B0clx1MDAzYydhXHUwMDNlKHB0cjogKmNvbnN0IGJpbmRpbmdzOjpwaWRfbmFtZXNwYWNlKSAtXHUwMDNlIFx1MDAyNidhIFNlbGYge1xuIC8vIFNBRkVUWTogSW5zdGFuY2VzIG9mIGBQaWROYW1lc3BhY2VgIGFyZSBhbHdheXMgcmVmZXJlbmNlLWNvdW50ZWQuXG4gdW5zYWZlIGltcGwgQWx3YXlzUmVmQ291bnRlZCBmb3IgUGlkTmFtZXNwYWNlIHtcbiAgICAgI1tpbmxpbmVdXG4tICAgIGZuIGluY19yZWYoXHUwMDI2c2VsZikge1xuKyAgICBmbiBpbmNfcmVmKG9iajogXHUwMDI2U2VsZikge1xuICAgICAgICAgLy8gU0FGRVRZOiBUaGUgZXhpc3RlbmNlIG9mIGEgc2hhcmVkIHJlZmVyZW5jZSBtZWFucyB0aGF0IHRoZSByZWZjb3VudCBpcyBub256ZXJvLlxuLSAgICAgICAgdW5zYWZlIHsgYmluZGluZ3M6OmdldF9waWRfbnMoc2VsZi5hc19wdHIoKSkgfTtcbisgICAgICAgIHVuc2FmZSB7IGJpbmRpbmdzOjpnZXRfcGlkX25zKG9iai5hc19wdHIoKSkgfTtcbiAgICAgfVxuIFxuICAgICAjW2lubGluZV1cbmRpZmYgLS1naXQgYS9ydXN0L2tlcm5lbC9wbGF0Zm9ybS5ycyBiL3J1c3Qva2VybmVsL3BsYXRmb3JtLnJzXG5pbmRleCA5YjM2MmUwNDk1ZDMyMy4uODUwNjhhZTVhNDA1ZWMgMTAwNjQ0XG4tLS0gYS9ydXN0L2tlcm5lbC9wbGF0Zm9ybS5yc1xuKysrIGIvcnVzdC9rZXJuZWwvcGxhdGZvcm0ucnNcbkBAIC01MTksOSArNTE5LDkgQEAgaW1wbFx1MDAzYydhXHUwMDNlIGNyYXRlOjpkbWE6OkRldmljZVx1MDAzYydhXHUwMDNlIGZvciBEZXZpY2VcdTAwM2NkZXZpY2U6OkNvcmVcdTAwM2MnYVx1MDAzZVx1MDAzZSB7fVxuIFxuIC8vIFNBRkVUWTogSW5zdGFuY2VzIG9mIGBEZXZpY2VgIGFyZSBhbHdheXMgcmVmZXJlbmNlLWNvdW50ZWQuXG4gdW5zYWZlIGltcGwgY3JhdGU6OnN5bmM6OmFyZWY6OkFsd2F5c1JlZkNvdW50ZWQgZm9yIERldmljZSB7XG4tICAgIGZuIGluY19yZWYoXHUwMDI2c2VsZikge1xuKyAgICBmbiBpbmNfcmVmKG9iajogXHUwMDI2U2VsZikge1xuICAgICAgICAgLy8gU0FGRVRZOiBUaGUgZXhpc3RlbmNlIG9mIGEgc2hhcmVkIHJlZmVyZW5jZSBndWFyYW50ZWVzIHRoYXQgdGhlIHJlZmNvdW50IGlzIG5vbi16ZXJvLlxuLSAgICAgICAgdW5zYWZlIHsgYmluZGluZ3M6OmdldF9kZXZpY2Uoc2VsZi5hc19yZWYoKS5hc19yYXcoKSkgfTtcbisgICAgICAgIHVuc2FmZSB7IGJpbmRpbmdzOjpnZXRfZGV2aWNlKG9iai5hc19yZWYoKS5hc19yYXcoKSkgfTtcbiAgICAgfVxuIFxuICAgICB1bnNhZmUgZm4gZGVjX3JlZihvYmo6IE5vbk51bGxcdTAwM2NTZWxmXHUwMDNlKSB7XG5kaWZmIC0tZ2l0IGEvcnVzdC9rZXJuZWwvc3luYy9hcmVmLnJzIGIvcnVzdC9rZXJuZWwvc3luYy9hcmVmLnJzXG5pbmRleCBiNzIxYjJlMDBiOTg2Zi4uMmFlMjEzMGQ1YmIxZGQgMTAwNjQ0XG4tLS0gYS9ydXN0L2tlcm5lbC9zeW5jL2FyZWYucnNcbisrKyBiL3J1c3Qva2VybmVsL3N5bmMvYXJlZi5yc1xuQEAgLTQ0LDcgKzQ0LDEwIEBAXG4gLy8vIGFsaXZlLilcbiBwdWIgdW5zYWZlIHRyYWl0IEFsd2F5c1JlZkNvdW50ZWQge1xuICAgICAvLy8gSW5jcmVtZW50cyB0aGUgcmVmZXJlbmNlIGNvdW50IG9uIHRoZSBvYmplY3QuXG4tICAgIGZuIGluY19yZWYoXHUwMDI2c2VsZik7XG4rICAgIC8vL1xuKyAgICAvLy8gVGhpcyBmdW5jdGlvbiBzaG91bGQgbm90IGJlIGNhbGxlZCBhY2NpZGVudGFsbHk7IGEgdHlwZSBtaWdodCBkZWNsYXJlIHRoZWlyIG93biBgaW5jX3JlZmBcbisgICAgLy8vIGZ1bmN0aW9uIGFuZCBpdCBzaG91bGRuJ3QgYmUgY29uZnVzZWQgd2l0aCB0aGlzIG9uZS5cbisgICAgZm4gaW5jX3JlZihvYmo6IFx1MDAyNlNlbGYpO1xuIFxuICAgICAvLy8gRGVjcmVtZW50cyB0aGUgcmVmZXJlbmNlIGNvdW50IG9uIHRoZSBvYmplY3QuXG4gICAgIC8vL1xuQEAgLTE0NSw3ICsxNDgsNyBAQCBwdWIgZm4gaW50b19yYXcobWU6IFNlbGYpIC1cdTAwM2UgTm9uTnVsbFx1MDAzY1RcdTAwM2Uge1xuIFxuIGltcGxcdTAwM2NUOiBBbHdheXNSZWZDb3VudGVkXHUwMDNlIENsb25lIGZvciBBUmVmXHUwMDNjVFx1MDAzZSB7XG4gICAgIGZuIGNsb25lKFx1MDAyNnNlbGYpIC1cdTAwM2UgU2VsZiB7XG4tICAgICAgICBzZWxmLmluY19yZWYoKTtcbisgICAgICAgIFQ6OmluY19yZWYoc2VsZik7XG4gICAgICAgICAvLyBTQUZFVFk6IFdlIGp1c3QgaW5jcmVtZW50ZWQgdGhlIHJlZmNvdW50IGFib3ZlLlxuICAgICAgICAgdW5zYWZlIHsgU2VsZjo6ZnJvbV9yYXcoc2VsZi5wdHIpIH1cbiAgICAgfVxuQEAgLTE2Miw3ICsxNjUsNyBAQCBmbiBkZXJlZihcdTAwMjZzZWxmKSAtXHUwMDNlIFx1MDAyNlNlbGY6OlRhcmdldCB7XG4gXG4gaW1wbFx1MDAzY1Q6IEFsd2F5c1JlZkNvdW50ZWRcdTAwM2UgRnJvbVx1MDAzY1x1MDAyNlRcdTAwM2UgZm9yIEFSZWZcdTAwM2NUXHUwMDNlIHtcbiAgICAgZm4gZnJvbShiOiBcdTAwMjZUKSAtXHUwMDNlIFNlbGYge1xuLSAgICAgICAgYi5pbmNfcmVmKCk7XG4rICAgICAgICBUOjppbmNfcmVmKGIpO1xuICAgICAgICAgLy8gU0FGRVRZOiBXZSBqdXN0IGluY3JlbWVudGVkIHRoZSByZWZjb3VudCBhYm92ZS5cbiAgICAgICAgIHVuc2FmZSB7IFNlbGY6OmZyb21fcmF3KE5vbk51bGw6OmZyb20oYikpIH1cbiAgICAgfVxuZGlmZiAtLWdpdCBhL3J1c3Qva2VybmVsL3Rhc2sucnMgYi9ydXN0L2tlcm5lbC90YXNrLnJzXG5pbmRleCAzODI3M2Y0ZWVkYjUxMy4uYTc3MTFlMTU1OGMyZjUgMTAwNjQ0XG4tLS0gYS9ydXN0L2tlcm5lbC90YXNrLnJzXG4rKysgYi9ydXN0L2tlcm5lbC90YXNrLnJzXG5AQCAtMzQ5LDkgKzM0OSw5IEBAIHB1YiBmbiBncm91cF9sZWFkZXIoXHUwMDI2c2VsZikgLVx1MDAzZSBcdTAwMjZUYXNrIHtcbiAvLyBTQUZFVFk6IFRoZSB0eXBlIGludmFyaWFudHMgZ3VhcmFudGVlIHRoYXQgYFRhc2tgIGlzIGFsd2F5cyByZWZjb3VudGVkLlxuIHVuc2FmZSBpbXBsIGNyYXRlOjpzeW5jOjphcmVmOjpBbHdheXNSZWZDb3VudGVkIGZvciBUYXNrIHtcbiAgICAgI1tpbmxpbmVdXG4tICAgIGZuIGluY19yZWYoXHUwMDI2c2VsZikge1xuKyAgICBmbiBpbmNfcmVmKG9iajogXHUwMDI2U2VsZikge1xuICAgICAgICAgLy8gU0FGRVRZOiBUaGUgZXhpc3RlbmNlIG9mIGEgc2hhcmVkIHJlZmVyZW5jZSBtZWFucyB0aGF0IHRoZSByZWZjb3VudCBpcyBub256ZXJvLlxuLSAgICAgICAgdW5zYWZlIHsgYmluZGluZ3M6OmdldF90YXNrX3N0cnVjdChzZWxmLmFzX3B0cigpKSB9O1xuKyAgICAgICAgdW5zYWZlIHsgYmluZGluZ3M6OmdldF90YXNrX3N0cnVjdChvYmouYXNfcHRyKCkpIH07XG4gICAgIH1cbiBcbiAgICAgI1tpbmxpbmVdXG5kaWZmIC0tZ2l0IGEvcnVzdC9rZXJuZWwvdXNiLnJzIGIvcnVzdC9rZXJuZWwvdXNiLnJzXG5pbmRleCA3YWZmMGM4MmQwYWZjMC4uYzAzOTA1OWMxODkxM2MgMTAwNjQ0XG4tLS0gYS9ydXN0L2tlcm5lbC91c2IucnNcbisrKyBiL3J1c3Qva2VybmVsL3VzYi5yc1xuQEAgLTM5MywxMSArMzkzLDExIEBAIGZuIGFzX3JlZihcdTAwMjZzZWxmKSAtXHUwMDNlIFx1MDAyNkRldmljZSB7XG4gXG4gLy8gU0FGRVRZOiBJbnN0YW5jZXMgb2YgYEludGVyZmFjZWAgYXJlIGFsd2F5cyByZWZlcmVuY2UtY291bnRlZC5cbiB1bnNhZmUgaW1wbCBBbHdheXNSZWZDb3VudGVkIGZvciBJbnRlcmZhY2Uge1xuLSAgICBmbiBpbmNfcmVmKFx1MDAyNnNlbGYpIHtcbisgICAgZm4gaW5jX3JlZihvYmo6IFx1MDAyNlNlbGYpIHtcbiAgICAgICAgIC8vIFNBRkVUWTogVGhlIGludmFyaWFudHMgb2YgYEludGVyZmFjZWAgZ3VhcmFudGVlIHRoYXQgYHNlbGYuYXNfcmF3KClgXG4gICAgICAgICAvLyByZXR1cm5zIGEgdmFsaWQgYHN0cnVjdCB1c2JfaW50ZXJmYWNlYCBwb2ludGVyLCBmb3Igd2hpY2ggd2Ugd2lsbFxuICAgICAgICAgLy8gYWNxdWlyZSBhIG5ldyByZWZjb3VudC5cbi0gICAgICAgIHVuc2FmZSB7IGJpbmRpbmdzOjp1c2JfZ2V0X2ludGYoc2VsZi5hc19yYXcoKSkgfTtcbisgICAgICAgIHVuc2FmZSB7IGJpbmRpbmdzOjp1c2JfZ2V0X2ludGYob2JqLmFzX3JhdygpKSB9O1xuICAgICB9XG4gXG4gICAgIHVuc2FmZSBmbiBkZWNfcmVmKG9iajogTm9uTnVsbFx1MDAzY1NlbGZcdTAwM2UpIHtcbkBAIC00NDQsMTEgKzQ0NCwxMSBAQCBmbiBhc19yYXcoXHUwMDI2c2VsZikgLVx1MDAzZSAqbXV0IGJpbmRpbmdzOjp1c2JfZGV2aWNlIHtcbiBcbiAvLyBTQUZFVFk6IEluc3RhbmNlcyBvZiBgRGV2aWNlYCBhcmUgYWx3YXlzIHJlZmVyZW5jZS1jb3VudGVkLlxuIHVuc2FmZSBpbXBsIEFsd2F5c1JlZkNvdW50ZWQgZm9yIERldmljZSB7XG4tICAgIGZuIGluY19yZWYoXHUwMDI2c2VsZikge1xuKyAgICBmbiBpbmNfcmVmKG9iajogXHUwMDI2U2VsZikge1xuICAgICAgICAgLy8gU0FGRVRZOiBUaGUgaW52YXJpYW50cyBvZiBgRGV2aWNlYCBndWFyYW50ZWUgdGhhdCBgc2VsZi5hc19yYXcoKWBcbiAgICAgICAgIC8vIHJldHVybnMgYSB2YWxpZCBgc3RydWN0IHVzYl9kZXZpY2VgIHBvaW50ZXIsIGZvciB3aGljaCB3ZSB3aWxsXG4gICAgICAgICAvLyBhY3F1aXJlIGEgbmV3IHJlZmNvdW50LlxuLSAgICAgICAgdW5zYWZlIHsgYmluZGluZ3M6OnVzYl9nZXRfZGV2KHNlbGYuYXNfcmF3KCkpIH07XG4rICAgICAgICB1bnNhZmUgeyBiaW5kaW5nczo6dXNiX2dldF9kZXYob2JqLmFzX3JhdygpKSB9O1xuICAgICB9XG4gXG4gICAgIHVuc2FmZSBmbiBkZWNfcmVmKG9iajogTm9uTnVsbFx1MDAzY1NlbGZcdTAwM2UpIHtcbiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTI4VDA5OjUyOjA2LjgxODc2OTQ1WiIsIlNlcSI6MywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6Nzc4NTI0Nzk4MiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipSZWZhY3RvcmluZyB0aGUgYEFsd2F5c1JlZkNvdW50ZWRgIFRyYWl0IGluIHRoZSBSdXN0IEtlcm5lbCoqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggYW5kIGl0J3MgcHJldHR5IHN0cmFpZ2h0Zm9yd2FyZCwgYSBwdXJlIHJlZmFjdG9yaW5nIHJlYWxseS4gVGhleSdyZSB0b3VjaGluZyB0aGUgYEFsd2F5c1JlZkNvdW50ZWRgIHRyYWl0IHdpdGhpbiB0aGUga2VybmVsJ3Mgc3luY2hyb25pemF0aW9uIG1lY2hhbmlzbXMsIHNwZWNpZmljYWxseSBpbiBgcnVzdC9rZXJuZWwvc3luYy9hcmVmLnJzYC4gVGhlIGdpc3QgaXMgYSBtb2RpZmljYXRpb24gdG8gdGhlIHNpZ25hdHVyZSBvZiBgaW5jX3JlZmAuIFRoZXkncmUgY2hhbmdpbmcgaXQgZnJvbSBgZm4gaW5jX3JlZihcdTAwMjZzZWxmKWAgdG8gYGZuIGluY19yZWYob2JqOiBcdTAwMjZTZWxmKWAuXG5cblRoZSBjb3JlIHJlYXNvbiBmb3IgdGhpcyBhbHRlcmF0aW9uIGlzIHRvIG1pdGlnYXRlIHBvdGVudGlhbCBtZXRob2QgcmVzb2x1dGlvbiBjb25mbGljdHMgaW4gUnVzdC4gIElmIGEgdHlwZSBpbXBsZW1lbnRpbmcgYEFsd2F5c1JlZkNvdW50ZWRgIGRlZmluZXMgaXRzIG93biBgaW5jX3JlZmAgZnVuY3Rpb24sIHRoZSBwcmV2aW91cyBzaWduYXR1cmUgY291bGQgbGVhZCB0byBhY2NpZGVudGFsLCBhbmQgaW5jb3JyZWN0LCBjYWxscyBvbiB0aGUgb2JqZWN0IGl0c2VsZi4gVGhpcyBjaGFuZ2UgbWFrZXMgaXQgZXhwbGljaXQgdGhhdCB0aGUgdHJhaXQncyBgaW5jX3JlZmAgaXMgYSBzdGF0aWMgbWV0aG9kLCBhbmQgcmVtb3ZlcyBhbnkgYW1iaWd1aXR5LlxuXG5UaGlzIGNoYW5nZSByaXBwbGVzIHRocm91Z2ggYSBzaWduaWZpY2FudCBjaHVuayBvZiB0aGUga2VybmVsLCB0b3VjaGluZyBhIGxvdCBvZiBtb2R1bGVzOiBldmVyeXRoaW5nIGZyb20gYXV4aWxpYXJ5IHN0cnVjdHVyZXMgdG8gZGV2aWNlIG1hbmFnZW1lbnQsIGZpbGVzeXN0ZW1zLCBtZW1vcnkgbWFuYWdlbWVudCwgYW5kIGV2ZW4gUENJIGFuZCBVU0IuIFRoZXnigJl2ZSB1cGRhdGVkIGFsbCB0aGUgaW1wbGVtZW50YXRpb25zIGFjcm9zcyB0aGVzZSBtb2R1bGVzLiBCdXQsIGFuZCB0aGlzIGlzIGNydWNpYWwsIGl0J3Mgc3RyaWN0bHkgYSBzeW50YWN0aWMgY2hhbmdlOyB0aGVyZeKAmXMgbm8gZnVuY3Rpb25hbCBhbHRlcmF0aW9uIHRvIHRoZSBrZXJuZWzigJlzIHJlZmNvdW50aW5nIGxvZ2ljLiBObyBhbGdvcml0aG1zLCBubyBkYXRhIHN0cnVjdHVyZXMsIG5vdGhpbmcgZnVuZGFtZW50YWwgaXMgYmVpbmcgbW9kaWZpZWQuIEl0J3MganVzdCBhIHNhZmVyIHdheSB0byBleHByZXNzIHRoZSBleGlzdGluZyBtZWNoYW5pc20uXG5cbkxldCdzIHF1aWNrbHkgY29uZmlybS4gSSd2ZSB0YWtlbiBhIGxvb2sgYXQgdGhlIGRpZmYgYW5kIHNwb3R0ZWQgdGhlIGNoYW5nZSBpbiB0aGUgdHJhaXQgaXRzZWxmIGFuZCBob3cgdGhlIGNhbGwgaGFzIGNoYW5nZWQgdG8gdXNlIHRoZSB0eXBlIGRpcmVjdGx5LlxuYGBgcnVzdFxuLSAgICBmbiBpbmNfcmVmKFx1MDAyNnNlbGYpIHtcbisgICAgZm4gaW5jX3JlZihvYmo6IFx1MDAyNlNlbGYpIHtcbmBgYFxuYW5kIHRoZW4gdGhlIGNvcnJlc3BvbmRpbmcgY2FsbCBjaGFuZ2UsXG5gYGBydXN0XG4tICAgICAgICBzZWxmLmluY19yZWYoKTtcbisgICAgICAgIFQ6OmluY19yZWYoc2VsZik7XG5gYGBcblNvLCBhcyBJIHN1c3BlY3RlZCwgdGhpcyBpcyBwdXJlbHkgYSBSdXN0IEFQSSBhZGp1c3RtZW50IHRvIHByZXZlbnQgcG90ZW50aWFsIG1ldGhvZCByZXNvbHV0aW9uIGNvbmZsaWN0cy4gTm8gbmVlZCBmb3IgZnV6emluZy5cblxuXG4iLCJJbnB1dFRva2VucyI6Njc0NywiT3V0cHV0VG9rZW5zIjoxMDcsIk91dHB1dFRob3VnaHRzVG9rZW5zIjozNTYsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNi0yOFQwOTo1MjoxNC42MDQwMjEzMjJaIiwiU2VxIjo0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJzZXQtcmVzdWx0cyIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjM4MTY5LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGlzIGEgcHVyZWx5IHN5bnRhY3RpYyByZWZhY3RvcmluZyBpbiB0aGUgUnVzdCBrZXJuZWwgYmluZGluZ3MuIEl0IGNoYW5nZXMgdGhlIHNpZ25hdHVyZSBvZiB0aGUgYGluY19yZWZgIG1ldGhvZCBpbiB0aGUgYEFsd2F5c1JlZkNvdW50ZWRgIHRyYWl0IGZyb20gYGZuIGluY19yZWYoXFx1MDAyNnNlbGYpYCB0byBgZm4gaW5jX3JlZihvYmo6IFxcdTAwMjZTZWxmKWAgdG8gcHJldmVudCBhY2NpZGVudGFsIG1ldGhvZCByZXNvbHV0aW9uIGNvbmZsaWN0cy4gSXQgZG9lcyBub3QgYWx0ZXIgYW55IGZ1bmN0aW9uYWwgbG9naWMgb3IgZXhlY3V0aW9uIGZsb3cgaW4gdGhlIGtlcm5lbC5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogbnVsbCxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGlzIGEgcHVyZWx5IHN5bnRhY3RpYyByZWZhY3RvcmluZyBpbiB0aGUgUnVzdCBrZXJuZWwgYmluZGluZ3MuIEl0IGNoYW5nZXMgdGhlIHNpZ25hdHVyZSBvZiB0aGUgYGluY19yZWZgIG1ldGhvZCBpbiB0aGUgYEFsd2F5c1JlZkNvdW50ZWRgIHRyYWl0IGZyb20gYGZuIGluY19yZWYoXFx1MDAyNnNlbGYpYCB0byBgZm4gaW5jX3JlZihvYmo6IFxcdTAwMjZTZWxmKWAgdG8gcHJldmVudCBhY2NpZGVudGFsIG1ldGhvZCByZXNvbHV0aW9uIGNvbmZsaWN0cy4gSXQgZG9lcyBub3QgYWx0ZXIgYW55IGZ1bmN0aW9uYWwgbG9naWMgb3IgZXhlY3V0aW9uIGZsb3cgaW4gdGhlIGtlcm5lbC5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfV07CgkJCWlmICghcmF3RGF0YSB8fCByYXdEYXRhLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSk7CgkJCWRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCQlkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSkgewoJCQljb25zdCBzdGF0cyA9IHsKCQkJCWxsbTogeyBjb3VudDogMCwgdG9rZW5zOiAwLCBkdXJhdGlvbjogMCB9LAoJCQkJdG9vbDogeyBjb3VudDogMCwgZHVyYXRpb246IDAgfQoJCQl9OwoKCQkJcmF3RGF0YS5mb3JFYWNoKHMgPT4gewoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7IAoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIpIHsKCQkJCQlzdGF0cy5sbG0uY291bnQrKzsKCQkJCQlzdGF0cy5sbG0udG9rZW5zICs9IChzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zKTsKCQkJCQlzdGF0cy5sbG0uZHVyYXRpb24gKz0gZHVyOwoJCQkJfSBlbHNlIGlmIChzLlR5cGUgPT09ICJ0b29sIikgewoJCQkJCXN0YXRzLnRvb2wuY291bnQrKzsKCQkJCQlzdGF0cy50b29sLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0KCQkJfSk7CgoJCQljb25zdCBhdmdMbG1EdXIgPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS5kdXJhdGlvbiAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z0xsbVRva2VuID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0udG9rZW5zIC8gc3RhdHMubGxtLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCQkJY29uc3QgYXZnVG9vbER1ciA9IHN0YXRzLnRvb2wuY291bnQgPiAwID8gKHN0YXRzLnRvb2wuZHVyYXRpb24gLyBzdGF0cy50b29sLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCgkJCWNvbnN0IGxsbVN1bWFyeUNlbGxzID0gW3N0YXRzLmxsbS5jb3VudCwgc3RhdHMubGxtLnRva2VucywgYXZnTGxtVG9rZW4sIHN0YXRzLmxsbS5kdXJhdGlvbiwgYXZnTGxtRHVyXTsKCQkJY29uc3QgdG9vbFN1bW1hcnlDZWxscyA9IFtzdGF0cy50b29sLmNvdW50LCBzdGF0cy50b29sLmR1cmF0aW9uLCBhdmdUb29sRHVyXTsKCgkJCWNvbnN0IGxsbVN1bW1hcnlCb2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2xsbV9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJbGxtU3VtbWFyeUJvZHkuaW5uZXJIVE1MID0gIiI7CgkJCWNvbnN0IGxsbVRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHInKTsKCQkJbGxtU3VtYXJ5Q2VsbHMuZm9yRWFjaChjZWxsID0+IHsKCQkJCWNvbnN0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGQnKTsKCQkJCXRkLnRleHRDb250ZW50ID0gY2VsbDsKCQkJCWxsbVRyLmFwcGVuZENoaWxkKHRkKTsKCQkJfSk7CgkJCWxsbVN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKGxsbVRyKTsKCgkJCWNvbnN0IHRvb2xTdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b29sX3N1bW1hcnlfc3RhdHNfYm9keScpOwoJCQl0b29sU3VtbWFyeUJvZHkuaW5uZXJIVE1MID0gIiI7CgkJCWNvbnN0IHRvb2xUciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCXRvb2xTdW1tYXJ5Q2VsbHMuZm9yRWFjaChjZWxsID0+IHsKCQkJCWNvbnN0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGQnKTsKCQkJCXRkLnRleHRDb250ZW50ID0gY2VsbDsKCQkJCXRvb2xUci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQl0b29sU3VtbWFyeUJvZHkuYXBwZW5kQ2hpbGQodG9vbFRyKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpIHsKCQkJY29uc3QgZmlsdGVyZWRTdGVwcyA9IHJhd0RhdGEuZmlsdGVyKGQgPT4gWyJsbG0iLCAidG9vbCJdLmluY2x1ZGVzKGQuVHlwZSkpOwoJCQljb25zdCBkYXRhID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkRhdGFUYWJsZSgpOwoJCQlkYXRhLmFkZENvbHVtbignc3RyaW5nJywgJ1N0ZXAnKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ251bWJlcicsICdEdXJhdGlvbicpOwoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICd0b29sdGlwJ30pOyAKCgkJCWZpbHRlcmVkU3RlcHMuZm9yRWFjaChzID0+IHsKCQkJCQoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7CgkJCQlsZXQgdG9vbHRpcCA9IHMuTmFtZTsKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iICYmIHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCQkJCWRhdGEuYWRkUm93KFtgJHtzLlNlcX1gLCBkdXIsIHRvb2x0aXBdKTsKCQkJfSk7CgoJCQljb25zdCBvcHRpb25zID0gewoJCQkJdGl0bGU6ICdUaW1lIENvbnN1bXB0aW9uIG9mIExMTS9Ub29sIENhbGxzJywKCQkJCWhBeGlzOiB7CgkJCQkJdGl0bGU6ICdMTE0vVG9vbCBTdGVwcycsCgkJCQl9LAoJCQkJdkF4aXM6IHsgdGl0bGU6ICdTZWNvbmRzJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdkdXJhdGlvbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpIHsKCQkJY29uc3QgbGxtU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IGQuVHlwZSA9PT0gImxsbSIpOwoJCQlpZiAobGxtU3RlcHMubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQljb25zdCBkYXRhID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkRhdGFUYWJsZSgpOwoJCQlkYXRhLmFkZENvbHVtbignc3RyaW5nJywgJ1N0ZXAnKTsJCQkKCQkJZGF0YS5hZGRDb2x1bW4oJ251bWJlcicsICdUb2tlbnMnKTsJCQkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAnc3R5bGUnfSk7CQoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICd0b29sdGlwJ30pOwkKCgkJCWNvbnN0IGFnZW50Q29sb3JzID0ge307CgkJCWNvbnN0IHBhbGV0dGUgPSBbJyM0Mjg1RjQnLCAnI0RCNDQzNycsICcjRjRCNDAwJywgJyMwRjlENTgnLCAnI0FCNDdCQycsICcjMDBBQ0MxJ107CgkJCWxldCBjb2xvcklkeCA9IDA7CgkJCWNvbnN0IGFnZW50TExNQ291bnRzID0ge307CgkJCWxsbVN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQlpZiAoIWFnZW50Q29sb3JzW3MuTmFtZV0pIHsKCQkJCQlhZ2VudENvbG9yc1tzLk5hbWVdID0gcGFsZXR0ZVtjb2xvcklkeCAlIHBhbGV0dGUubGVuZ3RoXTsKCQkJCQljb2xvcklkeCsrOwoJCQkJfQoKCQkJCWFnZW50TExNQ291bnRzW3MuTmFtZV0gPSAoYWdlbnRMTE1Db3VudHNbcy5OYW1lXSB8fCAwKSArIDE7CgkJCQljb25zdCBsYWJlbCA9IGAke3MuTmFtZX0tJHthZ2VudExMTUNvdW50c1tzLk5hbWVdfWA7CgkJCQljb25zdCB0b3RhbFRva2VucyA9IHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnM7CgkJCQljb25zdCBzdHlsZSA9IGBjb2xvcjogJHthZ2VudENvbG9yc1tzLk5hbWVdfWA7CgkJCQlsZXQgdG9vbHRpcCA9IGBUb3RhbCBUb2tlbnM6ICR7dG90YWxUb2tlbnN9XG4oSW46ICR7cy5JbnB1dFRva2Vuc30sIE91dDogJHtzLk91dHB1dFRva2Vuc30sIFRob3VnaHRzOiAke3MuT3V0cHV0VGhvdWdodHNUb2tlbnN9KWA7CgkJCQlpZiAocy5Ub29sQ2FsbHMgJiYgcy5Ub29sQ2FsbHMubGVuZ3RoID4gMCkgewoJCQkJCXRvb2x0aXAgKz0gYFxuVG9vbHM6ICR7cy5Ub29sQ2FsbHMuam9pbignLCAnKX1gOwoJCQkJfQoKCQkJCWRhdGEuYWRkUm93KFtsYWJlbCwgdG90YWxUb2tlbnMsIHN0eWxlLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVG9rZW4gQ29uc3VtcHRpb24gYnkgTExNIENhbGxzJywKCQkJCWhBeGlzOiB7CgkJCQkJdGl0bGU6ICdMTE0gQ2FsbCBTZXF1ZW5jZScsCgkJCQl9LAoJCQkJdkF4aXM6IHsgdGl0bGU6ICdDb25zdW1lZCBUb2tlbnMnIH0sCgkJCQlsZWdlbmQ6IHsgcG9zaXRpb246ICdub25lJyB9LAoJCQkJYmFyOiB7IGdyb3VwV2lkdGg6ICc3NSUnIH0sCgkJCQljaGFydEFyZWE6IHsgd2lkdGg6ICc4NSUnLCBoZWlnaHQ6ICc3MCUnIH0sCgkJCQloZWlnaHQ6IDQwMAoJCQl9OwoKCQkJY29uc3QgY2hhcnQgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uQ29sdW1uQ2hhcnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rva2VuX2NoYXJ0X2RpdicpKTsKCQkJY2hhcnQuZHJhdyhkYXRhLCBvcHRpb25zKTsKCQl9CgkJbGV0IGFsbEV4cGFuZGVkID0gZmFsc2U7CgkJZnVuY3Rpb24gdG9nZ2xlQWxsRGV0YWlscygpIHsKCQkJYWxsRXhwYW5kZWQgPSAhYWxsRXhwYW5kZWQ7CgkJCWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ2RldGFpbHMnKS5mb3JFYWNoKGQgPT4gewoJCQkJaWYgKGFsbEV4cGFuZGVkKSBkLnNldEF0dHJpYnV0ZSgnb3BlbicsICcnKTsKCQkJCWVsc2UgZC5yZW1vdmVBdHRyaWJ1dGUoJ29wZW4nKTsKCQkJfSk7CgkJfQoJPC9zY3JpcHQ+CgoKPC9ib2R5Pgo8L2h0bWw+Cg==" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflownv4sv[1] Phase: Running StartedAt: 2026-06-28 09:52:25 +0000 UTC FinishedAt: 0001-01-01 00:00:00 +0000 UTC Input: nil Output: nil --------- Name: series-workflownv4sv[1].abort-on-skip-outcome Phase: Failed StartedAt: 2026-06-28 09:52:25 +0000 UTC FinishedAt: 2026-06-28 09:52:31 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:code,Default:nil,Value:*1,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: &Outputs{Parameters:[]Parameter{},Artifacts:[]Artifact{},Result:nil,ExitCode:*1,}