[mono/mono] [4 commits] d970f374: [Bug 16334] Fix ConcurrentBag.TryTake and TryPeek
| Newsgroups | gmane.comp.gnome.mono.patches |
|---|---|
| Message-ID | <0000014281c6a93e-3d7cfebb-2d61-4ef2-8169-b52f1c5ce5a6-000000@email.amazonses.com> |
DQogICBCcmFuY2g6IHJlZnMvaGVhZHMvbWFzdGVyDQogICAgIEhvbWU6IGh0dHBzOi8vZ2l0aHVi LmNvbS9tb25vL21vbm8NCiAgQ29tcGFyZTogaHR0cHM6Ly9naXRodWIuY29tL21vbm8vbW9uby9j b21wYXJlLzg2ZDZiNmY3Y2E3Mi4uLjIyMTFlM2E1ZDAyYw0KDQogICBDb21taXQ6IGQ5NzBmMzc0 NGVmY2U0YTU4M2U1NmZjMWIzNmMwNTAyY2IwMTEwNGMNCiAgIEF1dGhvcjogTWF4aW1lIEJydWdp ZG91IDxtLmJydWdpZG91QGNyaXRlby5jb20+IChicnVnaWRvdSkNCiAgICAgRGF0ZTogMjAxMy0x MS0xOSAxMDowOTozNSBHTVQNCiAgICAgIFVSTDogaHR0cHM6Ly9naXRodWIuY29tL21vbm8vbW9u by9jb21taXQvZDk3MGYzNzQ0ZWZjZTRhNTgzZTU2ZmMxYjM2YzA1MDJjYjAxMTA0Yw0KDQpbQnVn IDE2MzM0XSBGaXggQ29uY3VycmVudEJhZy5UcnlUYWtlIGFuZCBUcnlQZWVrCgpTaG91bGQgcmV0 dXJuIGZhbHNlIGlmIG5vIHJlc3VsdCBpbiBhbGwgY2FzZXMKCnNlZSBodHRwczovL2J1Z3ppbGxh LnhhbWFyaW4uY29tL3Nob3dfYnVnLmNnaT9pZD0xNjMzNA0KDQpDaGFuZ2VkIHBhdGhzOgogIE0g bWNzL2NsYXNzL1N5c3RlbS9TeXN0ZW0uQ29sbGVjdGlvbnMuQ29uY3VycmVudC9Db25jdXJyZW50 QmFnLmNzCg0KTW9kaWZpZWQ6IG1jcy9jbGFzcy9TeXN0ZW0vU3lzdGVtLkNvbGxlY3Rpb25zLkNv bmN1cnJlbnQvQ29uY3VycmVudEJhZy5jcw0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KQEAgLTg4LDYgKzg4LDcgQEAg cHVibGljIGJvb2wgVHJ5VGFrZSAob3V0IFQgcmVzdWx0KQogCQkJCiAJCQlpZiAoYmFnID09IG51 bGwgfHwgYmFnLlBvcEJvdHRvbSAob3V0IHJlc3VsdCkgIT0gUG9wUmVzdWx0LlN1Y2NlZWQpIHsK IAkJCQl2YXIgc2VsZiA9IGJhZzsKKwkJCQlyZXQgPSBmYWxzZTsKIAkJCQlmb3JlYWNoICh2YXIg b3RoZXIgaW4gc3RhZ2luZykgewogCQkJCQkvLyBUcnkgdG8gcmV0cmlldmUgc29tZXRoaW5nIGJh c2VkIG9uIGEgaGludAogCQkJCQlyZXQgPSBUcnlHZXRIaW50IChvdXQgaGludEluZGV4KSAmJiAo YmFnID0gY29udGFpbmVyW2hpbnRJbmRleF0pLlBvcFRvcCAob3V0IHJlc3VsdCkgPT0gUG9wUmVz dWx0LlN1Y2NlZWQ7CkBAIC0xMjksNiArMTMwLDcgQEAgcHVibGljIGJvb2wgVHJ5UGVlayAob3V0 IFQgcmVzdWx0KQogCiAJCQlpZiAoYmFnID09IG51bGwgfHwgIWJhZy5QZWVrQm90dG9tIChvdXQg cmVzdWx0KSkgewogCQkJCXZhciBzZWxmID0gYmFnOworCQkJCXJldCA9IGZhbHNlOwogCQkJCWZv cmVhY2ggKHZhciBvdGhlciBpbiBzdGFnaW5nKSB7CiAJCQkJCS8vIFRyeSB0byByZXRyaWV2ZSBz b21ldGhpbmcgYmFzZWQgb24gYSBoaW50CiAJCQkJCXJldCA9IFRyeUdldEhpbnQgKG91dCBoaW50 SW5kZXgpICYmIGNvbnRhaW5lcltoaW50SW5kZXhdLlBlZWtUb3AgKG91dCByZXN1bHQpOwpAQCAt Mjc5LDQgKzI4MSw0IEBAIHZvaWQgVGlkeUJhZyAoaW50IGluZGV4LCBDeWNsaWNEZXF1ZTxUPiBi YWcpCiAJCX0KIAl9CiB9Ci0jZW5kaWYKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCisjZW5k aWYNCg0KICAgQ29tbWl0OiAyMzMzOTZhYTEzYWViMTAyZGNhYmZhMTU3OTc4ZDg2OTFjYjBlZDk3 DQogICBBdXRob3I6IE1heGltZSBCcnVnaWRvdSA8bS5icnVnaWRvdUBjcml0ZW8uY29tPiAoYnJ1 Z2lkb3UpDQogICAgIERhdGU6IDIwMTMtMTEtMTkgMTI6NTU6MDMgR01UDQogICAgICBVUkw6IGh0 dHBzOi8vZ2l0aHViLmNvbS9tb25vL21vbm8vY29tbWl0LzIzMzM5NmFhMTNhZWIxMDJkY2FiZmEx NTc5NzhkODY5MWNiMGVkOTcNCg0KQ29uY3VycmVudEJhZyBzdGFnaW5nIGNvdWxkIGJlY29tZSBl bXB0eQoKYWZ0ZXIgYWxsIGl0ZW1zIGhhdmUgYmVlbiByZW1vdmVkIGZyb20gYSBiYWcsIHRoZSBz dGFnaW5nIGRpY3Rpb25hcnkKaXMgY2xlYW5lZCB1cCBidXQgbmV2ZXIgZmlsbGVkIGFnYWluLg0K DQpDaGFuZ2VkIHBhdGhzOgogIE0gbWNzL2NsYXNzL1N5c3RlbS9TeXN0ZW0uQ29sbGVjdGlvbnMu Q29uY3VycmVudC9Db25jdXJyZW50QmFnLmNzCg0KTW9kaWZpZWQ6IG1jcy9jbGFzcy9TeXN0ZW0v U3lzdGVtLkNvbGxlY3Rpb25zLkNvbmN1cnJlbnQvQ29uY3VycmVudEJhZy5jcw0KPT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PQ0KQEAgLTY1LDYgKzY1LDcgQEAgcHVibGljIHZvaWQgQWRkIChUIGl0ZW0pCiAJCQlpbnQgaW5k ZXg7CiAJCQlDeWNsaWNEZXF1ZTxUPiBiYWcgPSBHZXRCYWcgKG91dCBpbmRleCk7CiAJCQliYWcu UHVzaEJvdHRvbSAoaXRlbSk7CisJCQlzdGFnaW5nLlRyeUFkZCAoaW5kZXgsIGJhZyk7CiAJCQlB ZGRIaW50IChpbmRleCk7CiAJCQlJbnRlcmxvY2tlZC5JbmNyZW1lbnQgKHJlZiBjb3VudCk7CiAJ CX0KQEAgLTI2NiwxMCArMjY3LDcgQEAgQ3ljbGljRGVxdWU8VD4gR2V0QmFnIChvdXQgaW50IGlu ZGV4LCBib29sIGNyZWF0ZUJhZyA9IHRydWUpCiAJCQlpZiAoY29udGFpbmVyLlRyeUdldFZhbHVl IChpbmRleCwgb3V0IHZhbHVlKSkKIAkJCQlyZXR1cm4gdmFsdWU7CiAKLQkJCXZhciBiYWcgPSBj cmVhdGVCYWcgPyBjb250YWluZXIuR2V0T3JBZGQgKGluZGV4LCBuZXcgQ3ljbGljRGVxdWU8VD4g KCkpIDogbnVsbDsKLQkJCWlmIChiYWcgIT0gbnVsbCkKLQkJCQlzdGFnaW5nLlRyeUFkZCAoaW5k ZXgsIGJhZyk7Ci0JCQlyZXR1cm4gYmFnOworCQkJcmV0dXJuIGNyZWF0ZUJhZyA/IGNvbnRhaW5l ci5HZXRPckFkZCAoaW5kZXgsIG5ldyBDeWNsaWNEZXF1ZTxUPiAoKSkgOiBudWxsOwogCQl9CiAK IAkJdm9pZCBUaWR5QmFnIChpbnQgaW5kZXgsIEN5Y2xpY0RlcXVlPFQ+IGJhZykNCg0KICAgQ29t bWl0OiAwN2JlOWExZjljYmRlN2M4ZTQ1NDI0YzhlODk4YTA1MzlhNTJkNTJmDQogICBBdXRob3I6 IE1heGltZSBCcnVnaWRvdSA8bS5icnVnaWRvdUBjcml0ZW8uY29tPiAoYnJ1Z2lkb3UpDQogICAg IERhdGU6IDIwMTMtMTEtMjIgMTQ6MzM6MjYgR01UDQogICAgICBVUkw6IGh0dHBzOi8vZ2l0aHVi LmNvbS9tb25vL21vbm8vY29tbWl0LzA3YmU5YTFmOWNiZGU3YzhlNDU0MjRjOGU4OThhMDUzOWE1 MmQ1MmYNCg0KQWRkIFVuaXQgdGVzdHMNCg0KQ2hhbmdlZCBwYXRoczoKICBNIG1jcy9jbGFzcy9T eXN0ZW0vVGVzdC9TeXN0ZW0uQ29sbGVjdGlvbnMuQ29uY3VycmVudC9Db25jdXJyZW50QmFnVGVz dHMuY3MKDQpNb2RpZmllZDogbWNzL2NsYXNzL1N5c3RlbS9UZXN0L1N5c3RlbS5Db2xsZWN0aW9u cy5Db25jdXJyZW50L0NvbmN1cnJlbnRCYWdUZXN0cy5jcw0KPT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KQEAgLTE5MSw2 ICsxOTEsNTAgQEAgcHVibGljIHZvaWQgQWRkRnJvbU9uZVRocmVhZFBlZWtGcm9tTXVsdGlwbGUg KCkKIAogCQkJQXNzZXJ0LklzVHJ1ZSAodmFsaWQsICJBZ2dyZWdhdGUgdGVzdCIpOwogCQl9CisK KyAgICAgICAgW1Rlc3RdCisgICAgICAgIHB1YmxpYyB2b2lkIEJhc2ljUmVtb3ZlRW1wdHlUZXN0 ICgpCisgICAgICAgIHsKKyAgICAgICAgICAgIGludCByZXN1bHQ7CisgICAgICAgICAgICBBc3Nl cnQuSXNUcnVlKGJhZy5Jc0VtcHR5KTsKKyAgICAgICAgICAgIEFzc2VydC5Jc0ZhbHNlKGJhZy5U cnlUYWtlKG91dCByZXN1bHQpKTsKKyAgICAgICAgfQorCisgICAgICAgIFtUZXN0XQorICAgICAg ICBwdWJsaWMgdm9pZCBCYXNpY1JlbW92ZVR3aWNlVGVzdCgpCisgICAgICAgIHsKKyAgICAgICAg ICAgIGJhZy5BZGQgKDEpOworICAgICAgICAgICAgQXNzZXJ0LklzRmFsc2UgKGJhZy5Jc0VtcHR5 KTsKKyAgICAgICAgICAgIEFzc2VydC5BcmVFcXVhbCAoMSwgYmFnLkNvdW50KTsKKworICAgICAg ICAgICAgaW50IHJlc3VsdDsKKyAgICAgICAgICAgIEFzc2VydC5Jc1RydWUgKGJhZy5UcnlUYWtl IChvdXQgcmVzdWx0KSk7CisgICAgICAgICAgICBBc3NlcnQuQXJlRXF1YWwgKDEsIHJlc3VsdCk7 CisgICAgICAgICAgICBBc3NlcnQuSXNUcnVlIChiYWcuSXNFbXB0eSk7CisgICAgICAgICAgICBB c3NlcnQuSXNGYWxzZSAoYmFnLlRyeVRha2UgKG91dCByZXN1bHQpKTsKKyAgICAgICAgICAgIEFz c2VydC5Jc0ZhbHNlIChiYWcuVHJ5VGFrZSAob3V0IHJlc3VsdCkpOworICAgICAgICB9CisKKyAg ICAgICAgW1Rlc3RdCisgICAgICAgIHB1YmxpYyB2b2lkIEFkZFJlbW92ZUFkZFRlc3QoKQorICAg ICAgICB7CisgICAgICAgICAgICBiYWcuQWRkICgxKTsKKyAgICAgICAgICAgIEFzc2VydC5Jc0Zh bHNlIChiYWcuSXNFbXB0eSk7CisgICAgICAgICAgICBBc3NlcnQuQXJlRXF1YWwgKDEsIGJhZy5D b3VudCk7CisKKyAgICAgICAgICAgIGludCByZXN1bHQ7CisgICAgICAgICAgICBBc3NlcnQuSXNU cnVlIChiYWcuVHJ5VGFrZSAob3V0IHJlc3VsdCkpOworICAgICAgICAgICAgQXNzZXJ0LkFyZUVx dWFsICgxLCByZXN1bHQpOworICAgICAgICAgICAgQXNzZXJ0LklzVHJ1ZSAoYmFnLklzRW1wdHkp OworCisgICAgICAgICAgICBiYWcuQWRkICgxKTsKKyAgICAgICAgICAgIEFzc2VydC5Jc0ZhbHNl IChiYWcuSXNFbXB0eSk7CisgICAgICAgICAgICBBc3NlcnQuQXJlRXF1YWwgKDEsIGJhZy5Db3Vu dCk7CisKKyAgICAgICAgICAgIEFzc2VydC5Jc1RydWUgKGJhZy5UcnlUYWtlIChvdXQgcmVzdWx0 KSk7CisgICAgICAgICAgICBBc3NlcnQuQXJlRXF1YWwgKDEsIHJlc3VsdCk7CisgICAgICAgICAg ICBBc3NlcnQuSXNUcnVlIChiYWcuSXNFbXB0eSk7CisgICAgICAgIH0KIAkJCiAJCVtUZXN0XQog CQlwdWJsaWMgdm9pZCBBZGRTdHJlc3NUZXN0ICgpDQoNCiAgIENvbW1pdDogMjIxMWUzYTVkMDJj YTU0NmZkYmFkMjAzM2I4YjNkMGM4MTdjOTdjMw0KICAgQXV0aG9yOiBKw6lyw6ltaWUgTGF2YWwg PGplcmVtaWUubGF2YWxAZ21haWwuY29tPiAoZ2FydW1hKQ0KICAgICBEYXRlOiAyMDEzLTExLTIy IDIxOjM1OjQyIEdNVA0KICAgICAgVVJMOiBodHRwczovL2dpdGh1Yi5jb20vbW9uby9tb25vL2Nv bW1pdC8yMjExZTNhNWQwMmNhNTQ2ZmRiYWQyMDMzYjhiM2QwYzgxN2M5N2MzDQoNCk1lcmdlIHB1 bGwgcmVxdWVzdCAjODExIGZyb20gY3JpdGVvLzE2MzM0LUNvbmN1cnJlbnRCYWcKCltCdWcgMTYz MzRdIEZpeCBDb25jdXJyZW50QmFnLlRyeVRha2UgYW5kIFRyeVBlZWsNCg0KQ2hhbmdlZCBwYXRo czoKICBNIG1jcy9jbGFzcy9TeXN0ZW0vU3lzdGVtLkNvbGxlY3Rpb25zLkNvbmN1cnJlbnQvQ29u Y3VycmVudEJhZy5jcwogIE0gbWNzL2NsYXNzL1N5c3RlbS9UZXN0L1N5c3RlbS5Db2xsZWN0aW9u cy5Db25jdXJyZW50L0NvbmN1cnJlbnRCYWdUZXN0cy5jcwoNCk1vZGlmaWVkOiBtY3MvY2xhc3Mv U3lzdGVtL1N5c3RlbS5Db2xsZWN0aW9ucy5Db25jdXJyZW50L0NvbmN1cnJlbnRCYWcuY3MNCj09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT0NCkBAIC02NSw2ICs2NSw3IEBAIHB1YmxpYyB2b2lkIEFkZCAoVCBpdGVtKQogCQkJ aW50IGluZGV4OwogCQkJQ3ljbGljRGVxdWU8VD4gYmFnID0gR2V0QmFnIChvdXQgaW5kZXgpOwog CQkJYmFnLlB1c2hCb3R0b20gKGl0ZW0pOworCQkJc3RhZ2luZy5UcnlBZGQgKGluZGV4LCBiYWcp OwogCQkJQWRkSGludCAoaW5kZXgpOwogCQkJSW50ZXJsb2NrZWQuSW5jcmVtZW50IChyZWYgY291 bnQpOwogCQl9CkBAIC04OCw2ICs4OSw3IEBAIHB1YmxpYyBib29sIFRyeVRha2UgKG91dCBUIHJl c3VsdCkKIAkJCQogCQkJaWYgKGJhZyA9PSBudWxsIHx8IGJhZy5Qb3BCb3R0b20gKG91dCByZXN1 bHQpICE9IFBvcFJlc3VsdC5TdWNjZWVkKSB7CiAJCQkJdmFyIHNlbGYgPSBiYWc7CisJCQkJcmV0 ID0gZmFsc2U7CiAJCQkJZm9yZWFjaCAodmFyIG90aGVyIGluIHN0YWdpbmcpIHsKIAkJCQkJLy8g VHJ5IHRvIHJldHJpZXZlIHNvbWV0aGluZyBiYXNlZCBvbiBhIGhpbnQKIAkJCQkJcmV0ID0gVHJ5 R2V0SGludCAob3V0IGhpbnRJbmRleCkgJiYgKGJhZyA9IGNvbnRhaW5lcltoaW50SW5kZXhdKS5Q b3BUb3AgKG91dCByZXN1bHQpID09IFBvcFJlc3VsdC5TdWNjZWVkOwpAQCAtMTI5LDYgKzEzMSw3 IEBAIHB1YmxpYyBib29sIFRyeVBlZWsgKG91dCBUIHJlc3VsdCkKIAogCQkJaWYgKGJhZyA9PSBu dWxsIHx8ICFiYWcuUGVla0JvdHRvbSAob3V0IHJlc3VsdCkpIHsKIAkJCQl2YXIgc2VsZiA9IGJh ZzsKKwkJCQlyZXQgPSBmYWxzZTsKIAkJCQlmb3JlYWNoICh2YXIgb3RoZXIgaW4gc3RhZ2luZykg ewogCQkJCQkvLyBUcnkgdG8gcmV0cmlldmUgc29tZXRoaW5nIGJhc2VkIG9uIGEgaGludAogCQkJ CQlyZXQgPSBUcnlHZXRIaW50IChvdXQgaGludEluZGV4KSAmJiBjb250YWluZXJbaGludEluZGV4 XS5QZWVrVG9wIChvdXQgcmVzdWx0KTsKQEAgLTI2NCwxMCArMjY3LDcgQEAgQ3ljbGljRGVxdWU8 VD4gR2V0QmFnIChvdXQgaW50IGluZGV4LCBib29sIGNyZWF0ZUJhZyA9IHRydWUpCiAJCQlpZiAo Y29udGFpbmVyLlRyeUdldFZhbHVlIChpbmRleCwgb3V0IHZhbHVlKSkKIAkJCQlyZXR1cm4gdmFs dWU7CiAKLQkJCXZhciBiYWcgPSBjcmVhdGVCYWcgPyBjb250YWluZXIuR2V0T3JBZGQgKGluZGV4 LCBuZXcgQ3ljbGljRGVxdWU8VD4gKCkpIDogbnVsbDsKLQkJCWlmIChiYWcgIT0gbnVsbCkKLQkJ CQlzdGFnaW5nLlRyeUFkZCAoaW5kZXgsIGJhZyk7Ci0JCQlyZXR1cm4gYmFnOworCQkJcmV0dXJu IGNyZWF0ZUJhZyA/IGNvbnRhaW5lci5HZXRPckFkZCAoaW5kZXgsIG5ldyBDeWNsaWNEZXF1ZTxU PiAoKSkgOiBudWxsOwogCQl9CiAKIAkJdm9pZCBUaWR5QmFnIChpbnQgaW5kZXgsIEN5Y2xpY0Rl cXVlPFQ+IGJhZykKQEAgLTI3OSw0ICsyNzksNCBAQCB2b2lkIFRpZHlCYWcgKGludCBpbmRleCwg Q3ljbGljRGVxdWU8VD4gYmFnKQogCQl9CiAJfQogfQotI2VuZGlmClwgTm8gbmV3bGluZSBhdCBl bmQgb2YgZmlsZQorI2VuZGlmDQoNCk1vZGlmaWVkOiBtY3MvY2xhc3MvU3lzdGVtL1Rlc3QvU3lz dGVtLkNvbGxlY3Rpb25zLkNvbmN1cnJlbnQvQ29uY3VycmVudEJhZ1Rlc3RzLmNzDQo9PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09DQpAQCAtMTkxLDYgKzE5MSw1MCBAQCBwdWJsaWMgdm9pZCBBZGRGcm9tT25lVGhyZWFkUGVl a0Zyb21NdWx0aXBsZSAoKQogCiAJCQlBc3NlcnQuSXNUcnVlICh2YWxpZCwgIkFnZ3JlZ2F0ZSB0 ZXN0Iik7CiAJCX0KKworICAgICAgICBbVGVzdF0KKyAgICAgICAgcHVibGljIHZvaWQgQmFzaWNS ZW1vdmVFbXB0eVRlc3QgKCkKKyAgICAgICAgeworICAgICAgICAgICAgaW50IHJlc3VsdDsKKyAg ICAgICAgICAgIEFzc2VydC5Jc1RydWUoYmFnLklzRW1wdHkpOworICAgICAgICAgICAgQXNzZXJ0 LklzRmFsc2UoYmFnLlRyeVRha2Uob3V0IHJlc3VsdCkpOworICAgICAgICB9CisKKyAgICAgICAg W1Rlc3RdCisgICAgICAgIHB1YmxpYyB2b2lkIEJhc2ljUmVtb3ZlVHdpY2VUZXN0KCkKKyAgICAg ICAgeworICAgICAgICAgICAgYmFnLkFkZCAoMSk7CisgICAgICAgICAgICBBc3NlcnQuSXNGYWxz ZSAoYmFnLklzRW1wdHkpOworICAgICAgICAgICAgQXNzZXJ0LkFyZUVxdWFsICgxLCBiYWcuQ291 bnQpOworCisgICAgICAgICAgICBpbnQgcmVzdWx0OworICAgICAgICAgICAgQXNzZXJ0LklzVHJ1 ZSAoYmFnLlRyeVRha2UgKG91dCByZXN1bHQpKTsKKyAgICAgICAgICAgIEFzc2VydC5BcmVFcXVh bCAoMSwgcmVzdWx0KTsKKyAgICAgICAgICAgIEFzc2VydC5Jc1RydWUgKGJhZy5Jc0VtcHR5KTsK KyAgICAgICAgICAgIEFzc2VydC5Jc0ZhbHNlIChiYWcuVHJ5VGFrZSAob3V0IHJlc3VsdCkpOwor ICAgICAgICAgICAgQXNzZXJ0LklzRmFsc2UgKGJhZy5UcnlUYWtlIChvdXQgcmVzdWx0KSk7Cisg ICAgICAgIH0KKworICAgICAgICBbVGVzdF0KKyAgICAgICAgcHVibGljIHZvaWQgQWRkUmVtb3Zl QWRkVGVzdCgpCisgICAgICAgIHsKKyAgICAgICAgICAgIGJhZy5BZGQgKDEpOworICAgICAgICAg ICAgQXNzZXJ0LklzRmFsc2UgKGJhZy5Jc0VtcHR5KTsKKyAgICAgICAgICAgIEFzc2VydC5BcmVF cXVhbCAoMSwgYmFnLkNvdW50KTsKKworICAgICAgICAgICAgaW50IHJlc3VsdDsKKyAgICAgICAg ICAgIEFzc2VydC5Jc1RydWUgKGJhZy5UcnlUYWtlIChvdXQgcmVzdWx0KSk7CisgICAgICAgICAg ICBBc3NlcnQuQXJlRXF1YWwgKDEsIHJlc3VsdCk7CisgICAgICAgICAgICBBc3NlcnQuSXNUcnVl IChiYWcuSXNFbXB0eSk7CisKKyAgICAgICAgICAgIGJhZy5BZGQgKDEpOworICAgICAgICAgICAg QXNzZXJ0LklzRmFsc2UgKGJhZy5Jc0VtcHR5KTsKKyAgICAgICAgICAgIEFzc2VydC5BcmVFcXVh bCAoMSwgYmFnLkNvdW50KTsKKworICAgICAgICAgICAgQXNzZXJ0LklzVHJ1ZSAoYmFnLlRyeVRh a2UgKG91dCByZXN1bHQpKTsKKyAgICAgICAgICAgIEFzc2VydC5BcmVFcXVhbCAoMSwgcmVzdWx0 KTsKKyAgICAgICAgICAgIEFzc2VydC5Jc1RydWUgKGJhZy5Jc0VtcHR5KTsKKyAgICAgICAgfQog CQkKIAkJW1Rlc3RdCiAJCXB1YmxpYyB2b2lkIEFkZFN0cmVzc1Rlc3QgKCkNCl9fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCk1vbm8tcGF0Y2hlcyBtYWlsbGlz dCAgLSAgTW9uby1wYXRjaGVzQGxpc3RzLnhpbWlhbi5jb20KaHR0cDovL2xpc3RzLnhpbWlhbi5j b20vbWFpbG1hbi9saXN0aW5mby9tb25vLXBhdGNoZXMK