From mboxrd@z Thu Jan 1 00:00:00 1970 From: Chao Yu Subject: Re: [PATCH] f2fs: avoid crash when trace f2fs_submit_page_mbio event in ra_sum_pages Date: Mon, 26 May 2014 14:26:24 +0800 Message-ID: <00cc01cf78ab$87d88b10$9789a130$@samsung.com> References: <005801cf70e7$66cb0090$346101b0$@samsung.com> <1400643406.12240.6.camel@kjgkr> <20140523051413.GB26933@cm224.lee> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Cc: linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org, linux-f2fs-devel@lists.sourceforge.net To: 'Changman Lee' , 'Jaegeuk Kim' Return-path: In-reply-to: <20140523051413.GB26933@cm224.lee> Content-language: zh-cn List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: linux-f2fs-devel-bounces@lists.sourceforge.net List-Id: linux-fsdevel.vger.kernel.org SGkgY2hhbmdtYW4sCgo+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tCj4gRnJvbTogQ2hhbmdt YW4gTGVlIFttYWlsdG86Y20yMjQubGVlQHNhbXN1bmcuY29tXQo+IFNlbnQ6IEZyaWRheSwgTWF5 IDIzLCAyMDE0IDE6MTQgUE0KPiBUbzogSmFlZ2V1ayBLaW0KPiBDYzogQ2hhbyBZdTsgbGludXgt ZnNkZXZlbEB2Z2VyLmtlcm5lbC5vcmc7IGxpbnV4LWtlcm5lbEB2Z2VyLmtlcm5lbC5vcmc7Cj4g bGludXgtZjJmcy1kZXZlbEBsaXN0cy5zb3VyY2Vmb3JnZS5uZXQKPiBTdWJqZWN0OiBSZTogW2Yy ZnMtZGV2XSBbUEFUQ0hdIGYyZnM6IGF2b2lkIGNyYXNoIHdoZW4gdHJhY2UgZjJmc19zdWJtaXRf cGFnZV9tYmlvIGV2ZW50IGluCj4gcmFfc3VtX3BhZ2VzCj4gCj4gT24gV2VkLCBNYXkgMjEsIDIw MTQgYXQgMTI6MzY6NDZQTSArMDkwMCwgSmFlZ2V1ayBLaW0gd3JvdGU6Cj4gPiBIaSBDaGFvLAo+ ID4KPiA+IDIwMTQtMDUtMTYgKOq4iCksIDE3OjE0ICswODAwLCBDaGFvIFl1Ogo+ID4gPiBQcmV2 aW91c2x5IHdlIGFsbG9jYXRlIHBhZ2VzIHdpdGggbm8gbWFwcGluZyBpbiByYV9zdW1fcGFnZXMo KSwgc28gd2UgbWF5Cj4gPiA+IGVuY291bnRlciBhIGNyYXNoIGluIGV2ZW50IHRyYWNlIG9mIGYy ZnNfc3VibWl0X3BhZ2VfbWJpbyB3aGVyZSB3ZSBhY2Nlc3MKPiA+ID4gbWFwcGluZyBkYXRhIG9m IHRoZSBwYWdlLgo+ID4gPgo+ID4gPiBXZSdkIGJldHRlciBhbGxvY2F0ZSBwYWdlcyBpbiBiZF9p bm9kZSBtYXBwaW5nIGFuZCBpbnZhbGlkYXRlIHRoZXNlIHBhZ2VzIGFmdGVyCj4gPiA+IHdlIHJl c3RvcmUgZGF0YSBmcm9tIHBhZ2VzLiBJdCBjb3VsZCBhdm9pZCBjcmFzaCBpbiBhYm92ZSBzY2Vu YXJpby4KPiA+ID4KPiA+ID4gQ2FsbCBUcmFjZToKPiA+ID4gIFs8ZjEwMzE2MzA+XSA/IGZ0cmFj ZV9yYXdfZXZlbnRfZjJmc193cml0ZV9jaGVja3BvaW50KzB4ODAvMHg4MCBbZjJmc10KPiA+ID4g IFs8ZjEwMzc3YmI+XSBmMmZzX3N1Ym1pdF9wYWdlX21iaW8rMHgxY2IvMHgyMDAgW2YyZnNdCj4g PiA+ICBbPGYxMDNjNWRhPl0gcmVzdG9yZV9ub2RlX3N1bW1hcnkrMHgxM2EvMHgyODAgW2YyZnNd Cj4gPiA+ICBbPGYxMDNlMjJkPl0gYnVpbGRfY3Vyc2VnKzB4MmJkLzB4NjIwIFtmMmZzXQo+ID4g PiAgWzxmMTA0MDQzYj5dIGJ1aWxkX3NlZ21lbnRfbWFuYWdlcisweDFjYi8weDkyMCBbZjJmc10K PiA+ID4gIFs8ZjEwMzJjODU+XSBmMmZzX2ZpbGxfc3VwZXIrMHg1MzUvMHg4ZTAgW2YyZnNdCj4g PiA+ICBbPGMxMTViNjZhPl0gbW91bnRfYmRldisweDE2YS8weDFhMAo+ID4gPiAgWzxmMTAyZjYz Zj5dIGYyZnNfbW91bnQrMHgxZi8weDMwIFtmMmZzXQo+ID4gPiAgWzxjMTE1YzA5Nj5dIG1vdW50 X2ZzKzB4MzYvMHgxNzAKPiA+ID4gIFs8YzExNzM2MzU+XSB2ZnNfa2Vybl9tb3VudCsweDU1LzB4 ZTAKPiA+ID4gIFs8YzExNzUzODg+XSBkb19tb3VudCsweDFlOC8weDkwMAo+ID4gPiAgWzxjMTE3 NWQ3Mj5dIFN5U19tb3VudCsweDgyLzB4YzAKPiA+ID4gIFs8YzE2MDU5Y2M+XSBzeXNlbnRlcl9k b19jYWxsKzB4MTIvMHgyMgo+ID4gPgo+ID4gPiBTaWduZWQtb2ZmLWJ5OiBDaGFvIFl1IDxjaGFv Mi55dUBzYW1zdW5nLmNvbT4KPiA+ID4gLS0tCj4gPiA+ICBmcy9mMmZzL25vZGUuYyB8ICAgNDkg KysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+ID4gPiAg MSBmaWxlIGNoYW5nZWQsIDI4IGluc2VydGlvbnMoKyksIDIxIGRlbGV0aW9ucygtKQo+ID4gPgo+ ID4gPiBkaWZmIC0tZ2l0IGEvZnMvZjJmcy9ub2RlLmMgYi9mcy9mMmZzL25vZGUuYwo+ID4gPiBp bmRleCAzZDYwZDNkLi5iNWNkODE0IDEwMDY0NAo+ID4gPiAtLS0gYS9mcy9mMmZzL25vZGUuYwo+ ID4gPiArKysgYi9mcy9mMmZzL25vZGUuYwo+ID4gPiBAQCAtMTY1OCwxMyArMTY1OCwxNiBAQCBp bnQgcmVjb3Zlcl9pbm9kZV9wYWdlKHN0cnVjdCBmMmZzX3NiX2luZm8gKnNiaSwgc3RydWN0IHBh Z2UgKnBhZ2UpCj4gPiA+Cj4gPiA+ICAvKgo+ID4gPiAgICogcmFfc3VtX3BhZ2VzKCkgbWVyZ2Ug Y29udGlndW91cyBwYWdlcyBpbnRvIG9uZSBiaW8gYW5kIHN1Ym1pdC4KPiA+ID4gLSAqIHRoZXNl IHByZS1yZWFkZWQgcGFnZXMgYXJlIGxpbmtlZCBpbiBwYWdlcyBsaXN0Lgo+ID4gPiArICogdGhl c2UgcHJlLXJlYWRlZCBwYWdlcyBhcmUgYWxsb2NlZCBpbiBiZF9pbm9kZSdzIG1hcHBpbmcgdHJl ZS4KPiA+ID4gICAqLwo+ID4gPiAtc3RhdGljIGludCByYV9zdW1fcGFnZXMoc3RydWN0IGYyZnNf c2JfaW5mbyAqc2JpLCBzdHJ1Y3QgbGlzdF9oZWFkICpwYWdlcywKPiA+ID4gK3N0YXRpYyBpbnQg cmFfc3VtX3BhZ2VzKHN0cnVjdCBmMmZzX3NiX2luZm8gKnNiaSwgc3RydWN0IHBhZ2UgKipwYWdl cywKPiA+ID4gIAkJCQlpbnQgc3RhcnQsIGludCBucnBhZ2VzKQo+ID4gPiAgewo+ID4gPiAgCXN0 cnVjdCBwYWdlICpwYWdlOwo+ID4gPiArCXN0cnVjdCBpbm9kZSAqaW5vZGUgPSBzYmktPnNiLT5z X2JkZXYtPmJkX2lub2RlOwo+IAo+IEhvdyBhYm91dCB1c2Ugc2JpLT5tZXRhX2lub2RlIGluc3Rl YWQgb2YgYmRfaW5vZGUsIHRoZW4gd2UgY2FuIGRvCj4gY2FjaGluZyBzdW1tYXJ5IHBhZ2VzIGZv ciBmdXJ0aGVyIGkvby4KCkluIG15IHVuZGVyc3RhbmRpbmcsIEluIHJhX3N1bV9wYWdlcygpIHdl IHJlYWRhaGVhZCBub2RlIHBhZ2VzIGluIE5PREUgc2VnbWVudCwKdGhlbiB3ZSBjb3VsZCBwYWRk aW5nIGN1cnJlbnQgc3VtbWFyeSBjYWNoaW5nIHdpdGggbmlkIG9mIG5vZGUgcGFnZSdzIGZvb3Rl ci4KU28gd2Ugc2hvdWxkIG5vdCBjYWNoZSB0aGlzIHJlYWRhaGVhZGVkIHBhZ2VzIGluIG1ldGFf aW5vZGUncyBtYXBwaW5nLgpEbyBJIG1pc3Mgc29tZXRoaW5nPwoKUmVnYXJkcwoKPiAKPiA+ID4g KwlzdHJ1Y3QgYWRkcmVzc19zcGFjZSAqbWFwcGluZyA9IGlub2RlLT5pX21hcHBpbmc7Cj4gPiA+ ICAJaW50IHBhZ2VfaWR4ID0gc3RhcnQ7Cj4gPiA+ICsJaW50IGFsbG9jZWQsIHJlYWRlZDsKPiA+ ID4gIAlzdHJ1Y3QgZjJmc19pb19pbmZvIGZpbyA9IHsKPiA+ID4gIAkJLnR5cGUgPSBNRVRBLAo+ ID4gPiAgCQkucncgPSBSRUFEX1NZTkMgfCBSRVFfTUVUQSB8IFJFUV9QUklPCj4gPiA+IEBAIC0x NjcyLDIxICsxNjc1LDIzIEBAIHN0YXRpYyBpbnQgcmFfc3VtX3BhZ2VzKHN0cnVjdCBmMmZzX3Ni X2luZm8gKnNiaSwgc3RydWN0IGxpc3RfaGVhZAo+ICpwYWdlcywKPiA+ID4KPiA+ID4gIAlmb3Ig KDsgcGFnZV9pZHggPCBzdGFydCArIG5ycGFnZXM7IHBhZ2VfaWR4KyspIHsKPiA+ID4gIAkJLyog YWxsb2MgdGVtcG9yYWwgcGFnZSBmb3IgcmVhZCBub2RlIHN1bW1hcnkgaW5mbyovCj4gPiA+IC0J CXBhZ2UgPSBhbGxvY19wYWdlKEdGUF9GMkZTX1pFUk8pOwo+ID4gPiArCQlwYWdlID0gZ3JhYl9j YWNoZV9wYWdlKG1hcHBpbmcsIHBhZ2VfaWR4KTsKPiA+ID4gIAkJaWYgKCFwYWdlKQo+ID4gPiAg CQkJYnJlYWs7Cj4gPiA+IC0KPiA+ID4gLQkJbG9ja19wYWdlKHBhZ2UpOwo+ID4gPiAtCQlwYWdl LT5pbmRleCA9IHBhZ2VfaWR4Owo+ID4gPiAtCQlsaXN0X2FkZF90YWlsKCZwYWdlLT5scnUsIHBh Z2VzKTsKPiA+ID4gKwkJcGFnZV9jYWNoZV9yZWxlYXNlKHBhZ2UpOwo+ID4KPiA+IElNTywgd2Ug ZG9uJ3QgbmVlZCB0byBkbyBsaWtlIHRoaXMuCj4gPiBJbnN0ZWFkLAo+ID4gCWZvcigpIHsKPiA+ IAkJcGFnZSA9IGdyYWJfY2FjaGVfcGFnZSgpOwo+ID4gCQlpZiAoIXBhZ2UpCj4gPiAJCQlicmVh azsKPiA+IAkJcGFnZVtwYWdlX2lkeF0gPSBwYWdlOwo+ID4gCQlmMmZzX3N1Ym1pdF9wYWdlX21i aW8oc2JpLCBwYWdlLCAmZmlvKTsKPiA+IAl9Cj4gPiAJZjJmc19zdWJtaXRfbWVyZ2VkX2Jpbyhz YmksIE1FVEEsIFJFQUQpOwo+ID4gCXJldHVybiBwYWdlX2lkeCAtIHN0YXJ0Owo+ID4KPiA+IEFm dGVyd2FyZHMsIGluIHJlc3RvcmVfbm9kZV9zdW1tcnkoKSwKPiA+IAlsb2NrX3BhZ2UoKSB3aWxs IHdhaXQgdGhlIGVuZF9pbyBmb3IgcmVhZC4KPiA+IAkuLi4KPiA+IAlmMmZzX3B1dF9wYWdlKHBh Z2VzW2luZGV4XSwgMSk7Cj4gPgo+ID4gVGhhbmtzLAo+ID4KPiA+ID4gIAl9Cj4gPiA+Cj4gPiA+ IC0JbGlzdF9mb3JfZWFjaF9lbnRyeShwYWdlLCBwYWdlcywgbHJ1KQo+ID4gPiAtCQlmMmZzX3N1 Ym1pdF9wYWdlX21iaW8oc2JpLCBwYWdlLCBwYWdlLT5pbmRleCwgJmZpbyk7Cj4gPiA+ICsJYWxs b2NlZCA9IHBhZ2VfaWR4IC0gc3RhcnQ7Cj4gPiA+ICsJcmVhZGVkID0gZmluZF9nZXRfcGFnZXNf Y29udGlnKG1hcHBpbmcsIHN0YXJ0LCBhbGxvY2VkLCBwYWdlcyk7Cj4gPiA+ICsJQlVHX09OKGFs bG9jZWQgIT0gcmVhZGVkKTsKPiA+ID4gKwo+ID4gPiArCWZvciAocGFnZV9pZHggPSAwOyBwYWdl X2lkeCA8IHJlYWRlZDsgcGFnZV9pZHgrKykKPiA+ID4gKwkJZjJmc19zdWJtaXRfcGFnZV9tYmlv KHNiaSwgcGFnZXNbcGFnZV9pZHhdLAo+ID4gPiArCQkJCQlwYWdlc1twYWdlX2lkeF0tPmluZGV4 LCAmZmlvKTsKPiA+ID4KPiA+ID4gIAlmMmZzX3N1Ym1pdF9tZXJnZWRfYmlvKHNiaSwgTUVUQSwg UkVBRCk7Cj4gPiA+Cj4gPiA+IC0JcmV0dXJuIHBhZ2VfaWR4IC0gc3RhcnQ7Cj4gPiA+ICsJcmV0 dXJuIHJlYWRlZDsKPiA+ID4gIH0KPiA+ID4KPiA+ID4gIGludCByZXN0b3JlX25vZGVfc3VtbWFy eShzdHJ1Y3QgZjJmc19zYl9pbmZvICpzYmksCj4gPiA+IEBAIC0xNjk0LDExICsxNjk5LDExIEBA IGludCByZXN0b3JlX25vZGVfc3VtbWFyeShzdHJ1Y3QgZjJmc19zYl9pbmZvICpzYmksCj4gPiA+ ICB7Cj4gPiA+ICAJc3RydWN0IGYyZnNfbm9kZSAqcm47Cj4gPiA+ICAJc3RydWN0IGYyZnNfc3Vt bWFyeSAqc3VtX2VudHJ5Owo+ID4gPiAtCXN0cnVjdCBwYWdlICpwYWdlLCAqdG1wOwo+ID4gPiAr CXN0cnVjdCBpbm9kZSAqaW5vZGUgPSBzYmktPnNiLT5zX2JkZXYtPmJkX2lub2RlOwo+ID4gPiAg CWJsb2NrX3QgYWRkcjsKPiA+ID4gIAlpbnQgYmlvX2Jsb2NrcyA9IE1BWF9CSU9fQkxPQ0tTKG1h eF9od19ibG9ja3Moc2JpKSk7Cj4gPiA+IC0JaW50IGksIGxhc3Rfb2Zmc2V0LCBucnBhZ2VzLCBl cnIgPSAwOwo+ID4gPiAtCUxJU1RfSEVBRChwYWdlX2xpc3QpOwo+ID4gPiArCXN0cnVjdCBwYWdl ICpwYWdlc1tiaW9fYmxvY2tzXTsKPiA+ID4gKwlpbnQgaSwgaW5kZXgsIGxhc3Rfb2Zmc2V0LCBu cnBhZ2VzLCBlcnIgPSAwOwo+ID4gPgo+ID4gPiAgCS8qIHNjYW4gdGhlIG5vZGUgc2VnbWVudCAq Lwo+ID4gPiAgCWxhc3Rfb2Zmc2V0ID0gc2JpLT5ibG9ja3NfcGVyX3NlZzsKPiA+ID4gQEAgLTE3 MDksMjkgKzE3MTQsMzEgQEAgaW50IHJlc3RvcmVfbm9kZV9zdW1tYXJ5KHN0cnVjdCBmMmZzX3Ni X2luZm8gKnNiaSwKPiA+ID4gIAkJbnJwYWdlcyA9IG1pbihsYXN0X29mZnNldCAtIGksIGJpb19i bG9ja3MpOwo+ID4gPgo+ID4gPiAgCQkvKiByZWFkIGFoZWFkIG5vZGUgcGFnZXMgKi8KPiA+ID4g LQkJbnJwYWdlcyA9IHJhX3N1bV9wYWdlcyhzYmksICZwYWdlX2xpc3QsIGFkZHIsIG5ycGFnZXMp Owo+ID4gPiArCQlucnBhZ2VzID0gcmFfc3VtX3BhZ2VzKHNiaSwgcGFnZXMsIGFkZHIsIG5ycGFn ZXMpOwo+ID4gPiAgCQlpZiAoIW5ycGFnZXMpCj4gPiA+ICAJCQlyZXR1cm4gLUVOT01FTTsKPiA+ ID4KPiA+ID4gLQkJbGlzdF9mb3JfZWFjaF9lbnRyeV9zYWZlKHBhZ2UsIHRtcCwgJnBhZ2VfbGlz dCwgbHJ1KSB7Cj4gPiA+ICsJCWZvciAoaW5kZXggPSAwOyBpbmRleCA8IG5ycGFnZXM7IGluZGV4 KyspIHsKPiA+ID4gIAkJCWlmIChlcnIpCj4gPiA+ICAJCQkJZ290byBza2lwOwo+ID4gPgo+ID4g PiAtCQkJbG9ja19wYWdlKHBhZ2UpOwo+ID4gPiAtCQkJaWYgKHVubGlrZWx5KCFQYWdlVXB0b2Rh dGUocGFnZSkpKSB7Cj4gPiA+ICsJCQlsb2NrX3BhZ2UocGFnZXNbaW5kZXhdKTsKPiA+ID4gKwkJ CWlmICh1bmxpa2VseSghUGFnZVVwdG9kYXRlKHBhZ2VzW2luZGV4XSkpKSB7Cj4gPiA+ICAJCQkJ ZXJyID0gLUVJTzsKPiA+ID4gIAkJCX0gZWxzZSB7Cj4gPiA+IC0JCQkJcm4gPSBGMkZTX05PREUo cGFnZSk7Cj4gPiA+ICsJCQkJcm4gPSBGMkZTX05PREUocGFnZXNbaW5kZXhdKTsKPiA+ID4gIAkJ CQlzdW1fZW50cnktPm5pZCA9IHJuLT5mb290ZXIubmlkOwo+ID4gPiAgCQkJCXN1bV9lbnRyeS0+ dmVyc2lvbiA9IDA7Cj4gPiA+ICAJCQkJc3VtX2VudHJ5LT5vZnNfaW5fbm9kZSA9IDA7Cj4gPiA+ ICAJCQkJc3VtX2VudHJ5Kys7Cj4gPiA+ICAJCQl9Cj4gPiA+IC0JCQl1bmxvY2tfcGFnZShwYWdl KTsKPiA+ID4gKwkJCXVubG9ja19wYWdlKHBhZ2VzW2luZGV4XSk7Cj4gPiA+ICBza2lwOgo+ID4g PiAtCQkJbGlzdF9kZWwoJnBhZ2UtPmxydSk7Cj4gPiA+IC0JCQlfX2ZyZWVfcGFnZXMocGFnZSwg MCk7Cj4gPiA+ICsJCQlwYWdlX2NhY2hlX3JlbGVhc2UocGFnZXNbaW5kZXhdKTsKPiA+ID4gIAkJ fQo+ID4gPiArCj4gPiA+ICsJCWludmFsaWRhdGVfbWFwcGluZ19wYWdlcyhpbm9kZS0+aV9tYXBw aW5nLCBhZGRyLAo+ID4gPiArCQkJCQkJCWFkZHIgKyBucnBhZ2VzKTsKPiA+ID4gIAl9Cj4gPiA+ ICAJcmV0dXJuIGVycjsKPiA+ID4gIH0KPiA+Cj4gPiAtLQo+ID4gSmFlZ2V1ayBLaW0KPiAKPiAK PiAKPiA+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+ID4gIkFjY2VsZXJhdGUgRGV2IEN5Y2xlcyB3 aXRoIEF1dG9tYXRlZCBDcm9zcy1Ccm93c2VyIFRlc3RpbmcgLSBGb3IgRlJFRQo+ID4gSW5zdGFu dGx5IHJ1biB5b3VyIFNlbGVuaXVtIHRlc3RzIGFjcm9zcyAzMDArIGJyb3dzZXIvT1MgY29tYm9z Lgo+ID4gR2V0IHVucGFyYWxsZWxlZCBzY2FsYWJpbGl0eSBmcm9tIHRoZSBiZXN0IFNlbGVuaXVt IHRlc3RpbmcgcGxhdGZvcm0gYXZhaWxhYmxlCj4gPiBTaW1wbGUgdG8gdXNlLiBOb3RoaW5nIHRv IGluc3RhbGwuIEdldCBzdGFydGVkIG5vdyBmb3IgZnJlZS4iCj4gPiBodHRwOi8vcC5zZi5uZXQv c2Z1L1NhdWNlTGFicwo+IAo+ID4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX18KPiA+IExpbnV4LWYyZnMtZGV2ZWwgbWFpbGluZyBsaXN0Cj4gPiBMaW51eC1m MmZzLWRldmVsQGxpc3RzLnNvdXJjZWZvcmdlLm5ldAo+ID4gaHR0cHM6Ly9saXN0cy5zb3VyY2Vm b3JnZS5uZXQvbGlzdHMvbGlzdGluZm8vbGludXgtZjJmcy1kZXZlbAoKCi0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQpUaGUgYmVzdCBwb3NzaWJsZSBzZWFyY2ggdGVjaG5vbG9naWVzIGFyZSBub3cgYWZm b3JkYWJsZSBmb3IgYWxsIGNvbXBhbmllcy4KRG93bmxvYWQgeW91ciBGUkVFIG9wZW4gc291cmNl IEVudGVycHJpc2UgU2VhcmNoIEVuZ2luZSB0b2RheSEKT3VyIGV4cGVydHMgd2lsbCBhc3Npc3Qg eW91IGluIGl0cyBpbnN0YWxsYXRpb24gZm9yICQ1OS9tbywgbm8gY29tbWl0bWVudC4KVGVzdCBp dCBmb3IgRlJFRSBvbiBvdXIgQ2xvdWQgcGxhdGZvcm0gYW55dGltZSEKaHR0cDovL3B1YmFkcy5n LmRvdWJsZWNsaWNrLm5ldC9nYW1wYWQvY2xrP2lkPTE0NTMyODE5MSZpdT0vNDE0MC9vc3RnLmNs a3RyawpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpMaW51 eC1mMmZzLWRldmVsIG1haWxpbmcgbGlzdApMaW51eC1mMmZzLWRldmVsQGxpc3RzLnNvdXJjZWZv cmdlLm5ldApodHRwczovL2xpc3RzLnNvdXJjZWZvcmdlLm5ldC9saXN0cy9saXN0aW5mby9saW51 eC1mMmZzLWRldmVsCg==