From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 Subject: [v3] usb: warm-reset ports on hub resume, if requested From: Jan-Marek Glogowski Message-Id: <18276acc-2f16-21fd-983a-7ee7727f1827@fbihome.de> Date: Wed, 30 Jan 2019 17:56:08 +0100 To: Mathias Nyman , linux-usb@vger.kernel.org Cc: Greg Kroah-Hartman , Alan Stern , Kai-Heng Feng , Nicolas Boichat , Nicolas Saenz Julienne , Jon Flatley , Oliver Neukum List-ID: QW0gMzAuMDEuMTkgdW0gMTU6NTggc2NocmllYiBNYXRoaWFzIE55bWFuOgo+IE9uIDMwLjAxLjIw MTkgMTQ6MzgsIEphbi1NYXJlayBHbG9nb3dza2kgd3JvdGU6Cj4+IE9uIHBsdWctaW4gb2YgbXkg VVNCLUMgZGV2aWNlLCBpdHMgVVNCX1NTX1BPUlRfTFNfU1NfSU5BQ1RJVkUKPj4gbGluayBzdGF0 ZSBiaXQgaXMgc2V0LiBHcmVwaW5nIGFsbCB0aGUga2VybmVsIGZvciB0aGlzIGJpdCBzaG93cwo+ PiB0aGF0IHRoZSBwb3J0IHN0YXR1cyByZXF1ZXN0cyBhIHdhcm0tcmVzZXQgdGhpcyB3YXkuCj4+ Cj4+IFRoaXMganVzdCBoYXBwZW5zLCBpZiBpdHMgdGhlIG9ubHkgZGV2aWNlIG9uIHRoYXQgaHVi IGFuZCB0aGUKPj4gaHViIHJlc3VtZXMsIHNvIHdlIGRvbid0IGNhbGwgcG9ydF9ldmVudCwgd2hp Y2ggd291bGQgb3RoZXJ3aXNlCj4+IHdhcm0tcmVzZXQgcG9ydHMuIFRoZSBkZXZpY2Ugd29ya3Mg b2sgd2l0aG91dCB0aGlzIHBhdGNoLCBpZgo+PiB0aGVyZSBpcyBhbHJlYWR5IGFueSBvdGhlciBk ZXZpY2UgY29ubmVjdGVkIHRvIHRoZSBodWIuCj4+Cj4+IFNpZ25lZC1vZmYtYnk6IEphbi1NYXJl ayBHbG9nb3dza2kgPGdsb2dvd0BmYmlob21lLmRlPgo+PiAtLS0KPj4KPj4gVGhlIG9yaWdpbmFs IHRocmVhZCBpcyAiVVNCLUMgc3RvcmFnZSBkZXZpY2Ugbm90IGRldGVjdGVkIG9uIFVTQiAzLjEg R2VuIDIKPj4gaG9zdCB3aGVuIHBsdWdnZWQgaW4gYWZ0ZXIgYm9vdCIuIEEgZGlmZmVyZW50IHBh dGNoLCBzdWdnZXN0ZWQgYnkgTWF0aGlhcwo+PiBOeW1hbiwgZGlkbid0IHdvcmsgZm9yIG1lLiBU aGlzIHBhdGNoIHdhcyBqdXN0IHJlYmFzZWQgb24gdXNiLW5leHQsIGJ1dCBub3QKPj4gcmUtdGVz dGVkLiBPcmlnaW5hbCB0ZXN0cyBhcmUgYmFzZWQgb24gNS4wLXJjLgo+Pgo+IAo+IEkgc3RhcnRl ZCB0byBsb29rIGludG8gdGhpcyBpbiBtb3JlIGRldGFpbCwgZGlzcmVnYXJkIHRoZSBjb2RlIEkg c2VudCBlYXJsaWVyLCBpdCdzCj4gbm90IHJlbGV2YW50Lgo+IAo+IEkgdGhpbmsgeW91ciBwYXRj aCBjb3VsZCBiZSBhIHNvbHV0aW9uLCBidXQgaXQgd29ycmllcyBtZSB0aGF0IHlvdXIgbG9ncyBz aG93IGh1Yl9ldmVudAo+IGV2dCAoaHViLT5ldmVudF9iaXRzKSBhcmUgemVybyBldmVuIGlmIHBv cnQgc3RhdHVzIDB4NDAwMmMwIHNob3VsZCBzZXQgYSBiaXQgdGhlcmUuCgpJIHNhdyB0aGlzIHRv byAoY2hnIDAwMDAgZXZ0IDAwMDApLiBJIHRyaWVkIGZvbGxvd2luZyB0aGUgY2hhbmdlX2JpdHMg YW5kIGV2ZW50X2JpdHMKaGFuZGxpbmcgYW5kIGZpeCBpdCBzb21ld2hlcmUgZWxzZSwgYnV0IHRo ZW4gcmVhbGl6ZWQgdGhlIHBvcnRfZXZlbnQgd2FzIG5ldmVyIHRyaWdnZXJlZCwKd2hpY2ggSSBl eHBlY3RlZC4gQW5kIGFsc28gbm90IHRoZSBiaXRzIGhhbmRsaW5nIGNvZGUgaW4gaHViX2FjdGl2 YXRlLgoKPiBGcm9tIHlvdSBlYXJsaWVyIGxvZzoKPiAKPiBbwqAgMTE2LjAzMjQyMl0geGhjaV9o Y2Q6aGFuZGxlX3BvcnRfc3RhdHVzOiB4aGNpX2hjZCAwMDAwOjAwOjE0LjA6IFBvcnQgU3RhdHVz IENoYW5nZSBFdmVudCBmb3IgcG9ydCAxOQo+IFvCoCAxMTYuMDMyNDMyXSB4aGNpX2hjZDpoYW5k bGVfcG9ydF9zdGF0dXM6IHhoY2lfaGNkIDAwMDA6MDA6MTQuMDogcmVzdW1lIHJvb3QgaHViCj4g W8KgIDExNi4wMzI0NDddIHhoY2lfaGNkOmhhbmRsZV9wb3J0X3N0YXR1czogeGhjaV9oY2QgMDAw MDowMDoxNC4wOiBoYW5kbGVfcG9ydF9zdGF0dXM6IHN0YXJ0aW5nIHBvcnQgcG9sbGluZy4KPiBb wqAgMTE2LjAzMjUxMF0gdXNiY29yZTp1c2JfcmVtb3RlX3dha2V1cDogdXNiIHVzYjM6IHVzYiB3 YWtldXAtcmVzdW1lCj4gW8KgIDExNi4wMzI1MThdIHVzYmNvcmU6aGNkX2J1c19yZXN1bWU6IHVz YiB1c2IzOiB1c2IgYXV0by1yZXN1bWUKPiBbwqAgMTE2LjAzMjUzOF0gdXNiY29yZTpodWJfcmVz dW1lOiBodWIgMy0wOjEuMDogaHViX3Jlc3VtZQo+IFvCoCAxMTYuMDMyNTY3XSB4aGNpX2hjZDp4 aGNpX2h1Yl9jb250cm9sOiB4aGNpX2hjZCAwMDAwOjAwOjE0LjA6IGdldCBwb3J0IHN0YXR1cywg YWN0dWFsIHBvcnQgMCBzdGF0dXPCoCA9IDB4MmEwCj4gW8KgIDExNi4wMzI1NzFdIHhoY2lfaGNk OnhoY2lfaHViX2NvbnRyb2w6IHhoY2lfaGNkIDAwMDA6MDA6MTQuMDogR2V0IHBvcnQgc3RhdHVz IHJldHVybmVkIDB4MmEwCj4gW8KgIDExNi4wMzI2MDJdIHhoY2lfaGNkOnhoY2lfaHViX2NvbnRy b2w6IHhoY2lfaGNkIDAwMDA6MDA6MTQuMDogZ2V0IHBvcnQgc3RhdHVzLCBhY3R1YWwgcG9ydCAx IHN0YXR1c8KgID0gMHgyYTAKPiBbwqAgMTE2LjAzMjYwNl0geGhjaV9oY2Q6eGhjaV9odWJfY29u dHJvbDogeGhjaV9oY2QgMDAwMDowMDoxNC4wOiBHZXQgcG9ydCBzdGF0dXMgcmV0dXJuZWQgMHgy YTAKPiBbwqAgMTE2LjAzMjYyNF0geGhjaV9oY2Q6eGhjaV9odWJfY29udHJvbDogeGhjaV9oY2Qg MDAwMDowMDoxNC4wOiBnZXQgcG9ydCBzdGF0dXMsIGFjdHVhbCBwb3J0IDIgc3RhdHVzwqAgPSAw eDQwMDJjMAo+IFvCoCAxMTYuMDMyNjMzXSB4aGNpX2hjZDp4aGNpX2h1Yl9jb250cm9sOiB4aGNp X2hjZCAwMDAwOjAwOjE0LjA6IEdldCBwb3J0IHN0YXR1cyByZXR1cm5lZCAweDQwMDJjMAo+IFvC oCAxMTYuMDMyNjU0XSB4aGNpX2hjZDp4aGNpX2h1Yl9jb250cm9sOiB4aGNpX2hjZCAwMDAwOjAw OjE0LjA6IGdldCBwb3J0IHN0YXR1cywgYWN0dWFsIHBvcnQgMyBzdGF0dXPCoCA9IDB4MmEwCj4g W8KgIDExNi4wMzI2NThdIHhoY2lfaGNkOnhoY2lfaHViX2NvbnRyb2w6IHhoY2lfaGNkIDAwMDA6 MDA6MTQuMDogR2V0IHBvcnQgc3RhdHVzIHJldHVybmVkIDB4MmEwCj4gW8KgIDExNi4wMzI2NzVd IHhoY2lfaGNkOnhoY2lfaHViX2NvbnRyb2w6IHhoY2lfaGNkIDAwMDA6MDA6MTQuMDogZ2V0IHBv cnQgc3RhdHVzLCBhY3R1YWwgcG9ydCA0IHN0YXR1c8KgID0gMHgyYTAKPiBbwqAgMTE2LjAzMjY3 OV0geGhjaV9oY2Q6eGhjaV9odWJfY29udHJvbDogeGhjaV9oY2QgMDAwMDowMDoxNC4wOiBHZXQg cG9ydCBzdGF0dXMgcmV0dXJuZWQgMHgyYTAKPiBbwqAgMTE2LjAzMjY5N10geGhjaV9oY2Q6eGhj aV9odWJfY29udHJvbDogeGhjaV9oY2QgMDAwMDowMDoxNC4wOiBnZXQgcG9ydCBzdGF0dXMsIGFj dHVhbCBwb3J0IDUgc3RhdHVzwqAgPSAweDJhMAo+IFvCoCAxMTYuMDMyNzAxXSB4aGNpX2hjZDp4 aGNpX2h1Yl9jb250cm9sOiB4aGNpX2hjZCAwMDAwOjAwOjE0LjA6IEdldCBwb3J0IHN0YXR1cyBy ZXR1cm5lZCAweDJhMAo+IFvCoCAxMTYuMDMyNzY2XSB1c2Jjb3JlOmh1Yl9ldmVudDogaHViIDMt MDoxLjA6IHN0YXRlIDcgcG9ydHMgNiBjaGcgMDAwMCBldnQgMDAwMAo+IFvCoCAxMTYuMDMyNzg0 XSB4aGNpX2hjZDp4aGNpX2h1Yl9jb250cm9sOiB4aGNpX2hjZCAwMDAwOjAwOjE0LjA6IHNldCBw b3J0IHJlbW90ZSB3YWtlIG1hc2ssIGFjdHVhbCBwb3J0IDAgc3RhdHVzwqAgPSAweGUwMDAyYTAK PiBbwqAgMTE2LjAzMjgwN10geGhjaV9oY2Q6eGhjaV9odWJfY29udHJvbDogeGhjaV9oY2QgMDAw MDowMDoxNC4wOiBzZXQgcG9ydCByZW1vdGUgd2FrZSBtYXNrLCBhY3R1YWwgcG9ydCAxIHN0YXR1 c8KgID0gMHhlMDAwMmEwCj4gW8KgIDExNi4wMzI4MjldIHhoY2lfaGNkOnhoY2lfaHViX2NvbnRy b2w6IHhoY2lfaGNkIDAwMDA6MDA6MTQuMDogc2V0IHBvcnQgcmVtb3RlIHdha2UgbWFzaywgYWN0 dWFsIHBvcnQgMiBzdGF0dXPCoCA9IDB4ZTQwMDJjMAo+IFvCoCAxMTYuMDMyODQ2XSB4aGNpX2hj ZDp4aGNpX2h1Yl9jb250cm9sOiB4aGNpX2hjZCAwMDAwOjAwOjE0LjA6IHNldCBwb3J0IHJlbW90 ZSB3YWtlIG1hc2ssIGFjdHVhbCBwb3J0IDMgc3RhdHVzwqAgPSAweGUwMDAyYTAKPiBbwqAgMTE2 LjAzMjg3MF0geGhjaV9oY2Q6eGhjaV9odWJfY29udHJvbDogeGhjaV9oY2QgMDAwMDowMDoxNC4w OiBzZXQgcG9ydCByZW1vdGUgd2FrZSBtYXNrLCBhY3R1YWwgcG9ydCA0IHN0YXR1c8KgID0gMHhl MDAwMmEwCj4gW8KgIDExNi4wMzI4OTJdIHhoY2lfaGNkOnhoY2lfaHViX2NvbnRyb2w6IHhoY2lf aGNkIDAwMDA6MDA6MTQuMDogc2V0IHBvcnQgcmVtb3RlIHdha2UgbWFzaywgYWN0dWFsIHBvcnQg NSBzdGF0dXPCoCA9IDB4ZTAwMDJhMAo+IFvCoCAxMTYuMDMyOTA2XSB1c2Jjb3JlOmh1Yl9zdXNw ZW5kOiBodWIgMy0wOjEuMDogaHViX3N1c3BlbmQKPiBbwqAgMTE2LjAzMjkyNV0gdXNiY29yZTpo Y2RfYnVzX3N1c3BlbmQ6IHVzYiB1c2IzOiBidXMgYXV0by1zdXNwZW5kLCB3YWtldXAgMQo+IFvC oCAxMTYuMDMyOTQ2XSB1c2Jjb3JlOmhjZF9idXNfc3VzcGVuZDogdXNiIHVzYjM6IHN1c3BlbmQg cmFjZWQgd2l0aCB3YWtldXAgZXZlbnQKPiBbwqAgMTE2LjAzMjk1MF0gdXNiY29yZTpoY2RfYnVz X3Jlc3VtZTogdXNiIHVzYjM6IHVzYiBhdXRvLXJlc3VtZQo+IAo+IAo+IFRoZSBodWItPmV2ZW50 IGJpdHMgYXJlIHNldCB3aGVuIHJvb3RodWIgcG9sbGluZyB0aW1lciBmdW5jdGlvbiBnZXRzIGRh dGEgZnJvbQo+IGh1Yl9zdGF0dXNfZGF0YSgpLCB3cml0ZXMgdGhlIGRhdGEgdG8gYSBzdGF0dXMg dXJiLCBhbmQgcmV0dXJucyB0aGUgdXJiLgo+IAo+IE5vcm1hbCBvcGVyYXRpb246Cj4gdXNiX2hj ZF9wb2xsX3JoX3N0YXR1cygpwqDCoMKgwqDCoMKgwqAgLy8gcm9vdGh1YiBwb2xsaW5nIHRpbWVy IGZ1bmN0aW9uCj4gwqAgaGNkLT5kcml2ZXItPmh1Yl9zdGF0dXNfZGF0YShoY2QsIGJ1ZmZlcinC oMKgIC0+IHhoY2lfaHViX3N0YXR1c19kYXRhKCkKPiDCoMKgwqAgeGhjaV9odWJfc3RhdHVzX2Rh dGEoKcKgwqDCoMKgwqAgLy9yZXR1cm5zIGJ1ZmZlciB3aXRoIGJpdHMgc2V0IGlmIGEgcG9ydCBu ZWVkcyBhdHRlbnRpb24KPiDCoCBpZiAoYnVmZmVyICYmIHVyYikKPiDCoMKgwqAgbWVtY3B5KHVy Yi0+dHJhbnNmZXJfYnVmZmVyLCBidWZmZXIpwqDCoMKgwqDCoMKgIC8vIGNvcHkgYnVmZmVyIGJp dHMgdG8gdXJiCj4gwqDCoMKgIHVzYl9oY2RfZ2l2ZWJhY2tfdXJiKHVyYinCoCAtPiBodWJfaXJx wqDCoMKgwqDCoCAvLyBjYWxscyB1cmIgY29tcGxldGUgY2FsbGJhY2sgZnVuY3Rpb24KPiDCoMKg wqDCoMKgIGh1Yl9pcnEoKQo+IMKgwqDCoMKgwqDCoMKgIGh1Yi0+ZXZlbnRfYml0cyA9IHVyYi0+ dHJhbnNmZXJfYnVmZmVyIC8vCj4gwqAgbW9kX3RpbWVyKHVzYl9oY2RfcG9sbF9yaF9zdGF0dXMs IGZ1dHVyZSnCoMKgwqAgLy8gcmVzY2hlZHVsZSByb290aHViIHBvbGxpbmcgdGltZXIKPiAKPiBJ J20gZ3Vlc3NpbmcgdXNiX2hjZF9wb2xsX3JoX3N0YXR1cygpIG5ldmVyIHByb3Blcmx5IGNvbXBs ZXRlcyBhIFVSQiBpbiB5b3VyIGNhc2UuCj4gCj4gVGhpcyBjb3VsZCBiZSBwb3NzaWJsZSBpZiBy b290aHViIGlzIHBvbGxlZCBiZWZvcmUgcHJvcGVybHkgcmVzdW1lZCwgdGhlbiB0aGUgVVJCIHdv dWxkbid0Cj4gYmUgYXZhaWxhYmxlIHlldCwgYW5kIG5vIGh1Yi0+ZXZlbnRfYml0cyBhcmUgc2V0 Lgo+IEJlY2F1c2Ugbm8gYml0cyBhcmUgc2V0IHRoZSBodWIgc3RhcnRzIHN1c3BlbmRpbmcgYWdh aW4gYWZ0ZXIgcmVzdW1lLCBwcm9iYWJseSBiZWZvcmUgcm9vdGh1Ygo+IHRpbWVyIHBvbGxzIHJv b3RodWIgYWdhaW4uCj4gc3VzcGVuZCBmYWlscyB3aGVuIGl0IG1hbnVhbGx5IGNoZWNrcyBoY2Qt PmRyaXZlci0+aHViX3N0YXR1c19kYXRhKCkgZm9yIGFjdGl2aXR5LCBhbmQKPiBpdCBzdGFydCBy ZXN1bWluZyBhZ2FpbiwgYW5kIGNvbnRpbnVlcyB0aGlzIGluIGEgbG9vcC4KPiAKPiBFaXRoZXIg cm9vdGh1YiBwb2xsaW5nIGlzIHN0b3BwZWQgYXQgdGhlIHN1c3BlbmQgYXR0ZW1wdCwgb3IgbWF5 YmUgY29udGludW91c2x5IHJlc2NoZWR1bGVkCj4gaW50byB0aGUgZnV0dXJlIGJlY2F1c2UgYXMg YSBwYXJ0IG9mIHN1c3BlbmQgYXR0ZW1wdC9yZXN1bWUgbG9vcC4KPiAKPiBDb3VsZCB5b3UgYWRk IG9uZSBtb3JlIGxpbmUgb2YgZGVidWdnaW5nIGFuZCBjYXB0dXJlIG5ldyBsb2dzOgo+IAo+IGRp ZmYgLS1naXQgYS9kcml2ZXJzL3VzYi9jb3JlL2hjZC5jIGIvZHJpdmVycy91c2IvY29yZS9oY2Qu Ywo+IGluZGV4IDAxNWIxMjYuLjZkNDAwZjkgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy91c2IvY29y ZS9oY2QuYwo+ICsrKyBiL2RyaXZlcnMvdXNiL2NvcmUvaGNkLmMKPiBAQCAtNzU5LDYgKzc1OSwx MCBAQCB2b2lkIHVzYl9oY2RfcG9sbF9yaF9zdGF0dXMoc3RydWN0IHVzYl9oY2QgKmhjZCkKPiDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgcmV0dXJuOwo+IMKgCj4gwqDCoMKgwqDCoMKg wqAgbGVuZ3RoID0gaGNkLT5kcml2ZXItPmh1Yl9zdGF0dXNfZGF0YShoY2QsIGJ1ZmZlcik7Cj4g Kwo+ICvCoMKgwqDCoMKgwqAgZGV2X2VycigmaGNkLT5zZWxmLnJvb3RfaHViLT5kZXYsICIlcywg bGVuZ3RoICVkLCBoY2QtPmZsYWdzIDB4JWx4LCBzdGF0dXNfdXJiICVzXG4iLAo+ICvCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgIF9fZnVuY19fLCBsZW5ndGgsIGhjZC0+ZmxhZ3MsIGhjZC0+ c3RhdHVzX3VyYiA/ICJFeGlzdHMiIDogIk5VTEwiICk7Cj4gKwo+IMKgwqDCoMKgwqDCoMKgIGlm IChsZW5ndGggPiAwKSB7Cj4gwqAKPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgLyog dHJ5IHRvIGNvbXBsZXRlIHRoZSBzdGF0dXMgdXJiICovCgpUaGlzIGlzIGp1c3QgdGhlIHBsdWcg Y29kZS4gSSBza2lwcGVkIHRoZSBtb2R1bGUgbG9hZCBjb2RlLCBhcyB0aGVyZSB3YXMgbm8gYWRk aXRpb25hbCBvdXRwdXQuCgpbICA0ODUuMjg0ODEwXSB4aGNpX2hjZDpoYW5kbGVfcG9ydF9zdGF0 dXM6IHhoY2lfaGNkIDAwMDA6MDA6MTQuMDogUG9ydCBTdGF0dXMgQ2hhbmdlIEV2ZW50IGZvciBw b3J0IDE5ClsgIDQ4NS4yODQ4MjBdIHhoY2lfaGNkOmhhbmRsZV9wb3J0X3N0YXR1czogeGhjaV9o Y2QgMDAwMDowMDoxNC4wOiByZXN1bWUgcm9vdCBodWIKWyAgNDg1LjI4NDgzNV0geGhjaV9oY2Q6 aGFuZGxlX3BvcnRfc3RhdHVzOiB4aGNpX2hjZCAwMDAwOjAwOjE0LjA6IGhhbmRsZV9wb3J0X3N0 YXR1czogc3RhcnRpbmcgcG9ydCBwb2xsaW5nLgpbICA0ODUuMjg0ODUwXSB1c2IgdXNiMjogdXNi X2hjZF9wb2xsX3JoX3N0YXR1cywgbGVuZ3RoIDEsIGhjZC0+ZmxhZ3MgMHgxOTUsIHN0YXR1c191 cmIgTlVMTApbICA0ODUuMjg0OTA5XSB1c2Jjb3JlOnVzYl9yZW1vdGVfd2FrZXVwOiB1c2IgdXNi MjogdXNiIHdha2V1cC1yZXN1bWUKWyAgNDg1LjI4NDkxN10gdXNiY29yZTpoY2RfYnVzX3Jlc3Vt ZTogdXNiIHVzYjI6IHVzYiBhdXRvLXJlc3VtZQpbICA0ODUuMjg0OTM3XSB1c2Jjb3JlOmh1Yl9y ZXN1bWU6IGh1YiAyLTA6MS4wOiBodWJfcmVzdW1lClsgIDQ4NS4yODQ5NTBdIHhoY2lfaGNkOnho Y2lfaHViX2NvbnRyb2w6IHhoY2lfaGNkIDAwMDA6MDA6MTQuMDogZ2V0IHBvcnQgc3RhdHVzLCBh Y3R1YWwgcG9ydCAwIHN0YXR1cyAgPSAweDJhMApbICA0ODUuMjg0OTYxXSB4aGNpX2hjZDp4aGNp X2h1Yl9jb250cm9sOiB4aGNpX2hjZCAwMDAwOjAwOjE0LjA6IEdldCBwb3J0IHN0YXR1cyByZXR1 cm5lZCAweDJhMApbICA0ODUuMjg0OTk1XSB4aGNpX2hjZDp4aGNpX2h1Yl9jb250cm9sOiB4aGNp X2hjZCAwMDAwOjAwOjE0LjA6IGdldCBwb3J0IHN0YXR1cywgYWN0dWFsIHBvcnQgMSBzdGF0dXMg ID0gMHgyYTAKWyAgNDg1LjI4NTAwNF0geGhjaV9oY2Q6eGhjaV9odWJfY29udHJvbDogeGhjaV9o Y2QgMDAwMDowMDoxNC4wOiBHZXQgcG9ydCBzdGF0dXMgcmV0dXJuZWQgMHgyYTAKWyAgNDg1LjI4 NTAyMF0geGhjaV9oY2Q6eGhjaV9odWJfY29udHJvbDogeGhjaV9oY2QgMDAwMDowMDoxNC4wOiBn ZXQgcG9ydCBzdGF0dXMsIGFjdHVhbCBwb3J0IDIgc3RhdHVzICA9IDB4NDAwMmMwClsgIDQ4NS4y ODUwMjVdIHhoY2lfaGNkOnhoY2lfaHViX2NvbnRyb2w6IHhoY2lfaGNkIDAwMDA6MDA6MTQuMDog R2V0IHBvcnQgc3RhdHVzIHJldHVybmVkIDB4NDAwMmMwClsgIDQ4NS4yODUwNDBdIHhoY2lfaGNk OnhoY2lfaHViX2NvbnRyb2w6IHhoY2lfaGNkIDAwMDA6MDA6MTQuMDogZ2V0IHBvcnQgc3RhdHVz LCBhY3R1YWwgcG9ydCAzIHN0YXR1cyAgPSAweDJhMApbICA0ODUuMjg1MDQ5XSB4aGNpX2hjZDp4 aGNpX2h1Yl9jb250cm9sOiB4aGNpX2hjZCAwMDAwOjAwOjE0LjA6IEdldCBwb3J0IHN0YXR1cyBy ZXR1cm5lZCAweDJhMApbICA0ODUuMjg1MDY5XSB4aGNpX2hjZDp4aGNpX2h1Yl9jb250cm9sOiB4 aGNpX2hjZCAwMDAwOjAwOjE0LjA6IGdldCBwb3J0IHN0YXR1cywgYWN0dWFsIHBvcnQgNCBzdGF0 dXMgID0gMHgyYTAKWyAgNDg1LjI4NTA3NF0geGhjaV9oY2Q6eGhjaV9odWJfY29udHJvbDogeGhj aV9oY2QgMDAwMDowMDoxNC4wOiBHZXQgcG9ydCBzdGF0dXMgcmV0dXJuZWQgMHgyYTAKWyAgNDg1 LjI4NTA4OF0geGhjaV9oY2Q6eGhjaV9odWJfY29udHJvbDogeGhjaV9oY2QgMDAwMDowMDoxNC4w OiBnZXQgcG9ydCBzdGF0dXMsIGFjdHVhbCBwb3J0IDUgc3RhdHVzICA9IDB4MmEwClsgIDQ4NS4y ODUwOTJdIHhoY2lfaGNkOnhoY2lfaHViX2NvbnRyb2w6IHhoY2lfaGNkIDAwMDA6MDA6MTQuMDog R2V0IHBvcnQgc3RhdHVzIHJldHVybmVkIDB4MmEwClsgIDQ4NS4yODUxMTZdIHVzYmNvcmU6aHVi X2V2ZW50OiBodWIgMi0wOjEuMDogc3RhdGUgNyBwb3J0cyA2IGNoZyAwMDAwIGV2dCAwMDAwClsg IDQ4NS4yODUxMzJdIHhoY2lfaGNkOnhoY2lfaHViX2NvbnRyb2w6IHhoY2lfaGNkIDAwMDA6MDA6 MTQuMDogc2V0IHBvcnQgcmVtb3RlIHdha2UgbWFzaywgYWN0dWFsIHBvcnQgMCBzdGF0dXMgID0g MHhlMDAwMmEwClsgIDQ4NS4yODUxNTRdIHhoY2lfaGNkOnhoY2lfaHViX2NvbnRyb2w6IHhoY2lf aGNkIDAwMDA6MDA6MTQuMDogc2V0IHBvcnQgcmVtb3RlIHdha2UgbWFzaywgYWN0dWFsIHBvcnQg MSBzdGF0dXMgID0gMHhlMDAwMmEwClsgIDQ4NS4yODUxNzFdIHhoY2lfaGNkOnhoY2lfaHViX2Nv bnRyb2w6IHhoY2lfaGNkIDAwMDA6MDA6MTQuMDogc2V0IHBvcnQgcmVtb3RlIHdha2UgbWFzaywg YWN0dWFsIHBvcnQgMiBzdGF0dXMgID0gMHhlNDAwMmMwClsgIDQ4NS4yODUxOTJdIHhoY2lfaGNk OnhoY2lfaHViX2NvbnRyb2w6IHhoY2lfaGNkIDAwMDA6MDA6MTQuMDogc2V0IHBvcnQgcmVtb3Rl IHdha2UgbWFzaywgYWN0dWFsIHBvcnQgMyBzdGF0dXMgID0gMHhlMDAwMmEwClsgIDQ4NS4yODUy MDldIHhoY2lfaGNkOnhoY2lfaHViX2NvbnRyb2w6IHhoY2lfaGNkIDAwMDA6MDA6MTQuMDogc2V0 IHBvcnQgcmVtb3RlIHdha2UgbWFzaywgYWN0dWFsIHBvcnQgNCBzdGF0dXMgID0gMHhlMDAwMmEw ClsgIDQ4NS4yODUyMzBdIHhoY2lfaGNkOnhoY2lfaHViX2NvbnRyb2w6IHhoY2lfaGNkIDAwMDA6 MDA6MTQuMDogc2V0IHBvcnQgcmVtb3RlIHdha2UgbWFzaywgYWN0dWFsIHBvcnQgNSBzdGF0dXMg ID0gMHhlMDAwMmEwClsgIDQ4NS4yODUyNDNdIHVzYmNvcmU6aHViX3N1c3BlbmQ6IGh1YiAyLTA6 MS4wOiBodWJfc3VzcGVuZApbICA0ODUuMjg1MjU5XSB1c2Jjb3JlOmhjZF9idXNfc3VzcGVuZDog dXNiIHVzYjI6IGJ1cyBhdXRvLXN1c3BlbmQsIHdha2V1cCAxClsgIDQ4NS4yODUyNzldIHVzYmNv cmU6aGNkX2J1c19zdXNwZW5kOiB1c2IgdXNiMjogc3VzcGVuZCByYWNlZCB3aXRoIHdha2V1cCBl dmVudApbICA0ODUuMjg1MjgzXSB1c2Jjb3JlOmhjZF9idXNfcmVzdW1lOiB1c2IgdXNiMjogdXNi IGF1dG8tcmVzdW1lClsgIDQ4NS4yODU3NzRdIHVzYiB1c2IyOiB1c2JfaGNkX3BvbGxfcmhfc3Rh dHVzLCBsZW5ndGggMSwgaGNkLT5mbGFncyAweDE4ZCwgc3RhdHVzX3VyYiBOVUxMClsgIDQ4NS4z MDE4MDZdIHVzYmNvcmU6aHViX3Jlc3VtZTogaHViIDItMDoxLjA6IGh1Yl9yZXN1bWUKWyAgNDg1 LjMwMTgxOV0geGhjaV9oY2Q6eGhjaV9odWJfY29udHJvbDogeGhjaV9oY2QgMDAwMDowMDoxNC4w OiBnZXQgcG9ydCBzdGF0dXMsIGFjdHVhbCBwb3J0IDAgc3RhdHVzICA9IDB4MmEwClsgIDQ4NS4z MDE4MjNdIHhoY2lfaGNkOnhoY2lfaHViX2NvbnRyb2w6IHhoY2lfaGNkIDAwMDA6MDA6MTQuMDog R2V0IHBvcnQgc3RhdHVzIHJldHVybmVkIDB4MmEwClsgIDQ4NS4zMDE4NDZdIHhoY2lfaGNkOnho Y2lfaHViX2NvbnRyb2w6IHhoY2lfaGNkIDAwMDA6MDA6MTQuMDogZ2V0IHBvcnQgc3RhdHVzLCBh Y3R1YWwgcG9ydCAxIHN0YXR1cyAgPSAweDJhMApbICA0ODUuMzAxODUwXSB4aGNpX2hjZDp4aGNp X2h1Yl9jb250cm9sOiB4aGNpX2hjZCAwMDAwOjAwOjE0LjA6IEdldCBwb3J0IHN0YXR1cyByZXR1 cm5lZCAweDJhMApbICA0ODUuMzAxODYzXSB4aGNpX2hjZDp4aGNpX2h1Yl9jb250cm9sOiB4aGNp X2hjZCAwMDAwOjAwOjE0LjA6IGdldCBwb3J0IHN0YXR1cywgYWN0dWFsIHBvcnQgMiBzdGF0dXMg ID0gMHg0MDAyYzAKWyAgNDg1LjMwMTg2N10geGhjaV9oY2Q6eGhjaV9odWJfY29udHJvbDogeGhj aV9oY2QgMDAwMDowMDoxNC4wOiBHZXQgcG9ydCBzdGF0dXMgcmV0dXJuZWQgMHg0MDAyYzAKWyAg NDg1LjMwMTg4MV0geGhjaV9oY2Q6eGhjaV9odWJfY29udHJvbDogeGhjaV9oY2QgMDAwMDowMDox NC4wOiBnZXQgcG9ydCBzdGF0dXMsIGFjdHVhbCBwb3J0IDMgc3RhdHVzICA9IDB4MmEwClsgIDQ4 NS4zMDE4ODVdIHhoY2lfaGNkOnhoY2lfaHViX2NvbnRyb2w6IHhoY2lfaGNkIDAwMDA6MDA6MTQu MDogR2V0IHBvcnQgc3RhdHVzIHJldHVybmVkIDB4MmEwClsgIDQ4NS4zMDE4OTZdIHhoY2lfaGNk OnhoY2lfaHViX2NvbnRyb2w6IHhoY2lfaGNkIDAwMDA6MDA6MTQuMDogZ2V0IHBvcnQgc3RhdHVz LCBhY3R1YWwgcG9ydCA0IHN0YXR1cyAgPSAweDJhMApbICA0ODUuMzAxOTAwXSB4aGNpX2hjZDp4 aGNpX2h1Yl9jb250cm9sOiB4aGNpX2hjZCAwMDAwOjAwOjE0LjA6IEdldCBwb3J0IHN0YXR1cyBy ZXR1cm5lZCAweDJhMApbICA0ODUuMzAxOTEzXSB4aGNpX2hjZDp4aGNpX2h1Yl9jb250cm9sOiB4 aGNpX2hjZCAwMDAwOjAwOjE0LjA6IGdldCBwb3J0IHN0YXR1cywgYWN0dWFsIHBvcnQgNSBzdGF0 dXMgID0gMHgyYTAKWyAgNDg1LjMwMTkxNl0geGhjaV9oY2Q6eGhjaV9odWJfY29udHJvbDogeGhj aV9oY2QgMDAwMDowMDoxNC4wOiBHZXQgcG9ydCBzdGF0dXMgcmV0dXJuZWQgMHgyYTAKWyAgNDg1 LjMwMTkzNl0gdXNiY29yZTpodWJfZXZlbnQ6IGh1YiAyLTA6MS4wOiBzdGF0ZSA3IHBvcnRzIDYg Y2hnIDAwMDAgZXZ0IDAwMDAKWyAgNDg1LjMwMTk1Ml0geGhjaV9oY2Q6eGhjaV9odWJfY29udHJv bDogeGhjaV9oY2QgMDAwMDowMDoxNC4wOiBzZXQgcG9ydCByZW1vdGUgd2FrZSBtYXNrLCBhY3R1 YWwgcG9ydCAwIHN0YXR1cyAgPSAweGUwMDAyYTAKWyAgNDg1LjMwMTk2OF0geGhjaV9oY2Q6eGhj aV9odWJfY29udHJvbDogeGhjaV9oY2QgMDAwMDowMDoxNC4wOiBzZXQgcG9ydCByZW1vdGUgd2Fr ZSBtYXNrLCBhY3R1YWwgcG9ydCAxIHN0YXR1cyAgPSAweGUwMDAyYTAKWyAgNDg1LjMwMTk4Ml0g eGhjaV9oY2Q6eGhjaV9odWJfY29udHJvbDogeGhjaV9oY2QgMDAwMDowMDoxNC4wOiBzZXQgcG9y dCByZW1vdGUgd2FrZSBtYXNrLCBhY3R1YWwgcG9ydCAyIHN0YXR1cyAgPSAweGU0MDAyYzAKWyAg NDg1LjMwMTk5Nl0geGhjaV9oY2Q6eGhjaV9odWJfY29udHJvbDogeGhjaV9oY2QgMDAwMDowMDox NC4wOiBzZXQgcG9ydCByZW1vdGUgd2FrZSBtYXNrLCBhY3R1YWwgcG9ydCAzIHN0YXR1cyAgPSAw eGUwMDAyYTAKWyAgNDg1LjMwMjAxMF0geGhjaV9oY2Q6eGhjaV9odWJfY29udHJvbDogeGhjaV9o Y2QgMDAwMDowMDoxNC4wOiBzZXQgcG9ydCByZW1vdGUgd2FrZSBtYXNrLCBhY3R1YWwgcG9ydCA0 IHN0YXR1cyAgPSAweGUwMDAyYTAKWyAgNDg1LjMwMjAyNF0geGhjaV9oY2Q6eGhjaV9odWJfY29u dHJvbDogeGhjaV9oY2QgMDAwMDowMDoxNC4wOiBzZXQgcG9ydCByZW1vdGUgd2FrZSBtYXNrLCBh Y3R1YWwgcG9ydCA1IHN0YXR1cyAgPSAweGUwMDAyYTAKWyAgNDg1LjMwMjAzNF0gdXNiY29yZTpo dWJfc3VzcGVuZDogaHViIDItMDoxLjA6IGh1Yl9zdXNwZW5kClsgIDQ4NS4zMDIwNDhdIHVzYmNv cmU6aGNkX2J1c19zdXNwZW5kOiB1c2IgdXNiMjogYnVzIGF1dG8tc3VzcGVuZCwgd2FrZXVwIDEK WyAgNDg1LjMwMjA2N10gdXNiY29yZTpoY2RfYnVzX3N1c3BlbmQ6IHVzYiB1c2IyOiBzdXNwZW5k IHJhY2VkIHdpdGggd2FrZXVwIGV2ZW50ClsgIDQ4NS4zMDIwNzFdIHVzYmNvcmU6aGNkX2J1c19y ZXN1bWU6IHVzYiB1c2IyOiB1c2IgYXV0by1yZXN1bWUKWyAgNDg1LjMwOTc2NV0gdXNiIHVzYjI6 IHVzYl9oY2RfcG9sbF9yaF9zdGF0dXMsIGxlbmd0aCAxLCBoY2QtPmZsYWdzIDB4MThkLCBzdGF0 dXNfdXJiIE5VTEwKLi4uCgpKYW4tTWFyZWsKClAuUy4gSSdtIGN1cnJlbnRseSBoYW5naW5nIG91 dCBhcyBqbXV4IGluICNrZXJuZWxuZXdiaWVzLCBpZiBJUkMgd291bGQgaGVscC4K