From mboxrd@z Thu Jan 1 00:00:00 1970 From: huangminfei Subject: Re: [PATCH] dm-io: Prevent the danging point of the sync io callback function Date: Sat, 28 Jun 2014 08:19:18 +0800 (CST) Message-ID: <4d66c31b.4bbe.146dfd72a01.Coremail.huangminfei@ucloud.cn> References: <1403841690-4401-1-git-send-email-huangminfei@ucloud.cn> Reply-To: device-mapper development Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="===============5951513664882367668==" Return-path: In-Reply-To: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: dm-devel-bounces@redhat.com Errors-To: dm-devel-bounces@redhat.com To: Mikulas Patocka Cc: Joe Thornber , Mike Snitzer , linux-kernel , linux-raid , device-mapper development , agk List-Id: linux-raid.ids --===============5951513664882367668== Content-Type: multipart/alternative; boundary="----=_Part_48187_1347888026.1403914758656" ------=_Part_48187_1347888026.1403914758656 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: base64 RnJvbSAxNjRhMzkwZmViYjAzZWM5MTM1NWYyMTMyZDI0MzBmMWJhZTdkNmMyIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQoKRnJvbTogTWluZmVpIEh1YW5nIDxodWFuZ21pbmZlaUB1Y2xvdWQuY24+ CgpEYXRlOiBTYXQsIDI4IEp1biAyMDE0IDA4OjI2OjIwICswODAwCgpTdWJqZWN0OiBbUEFUQ0hd IGRtLWlvOiBGaXggYSByYWNlIGNvbmRpdGlvbiBpbiB0aGUgd2FrZSB1cCBjb2RlIGZvciBzeW5j X2lvCgoKCgpUaGVyZSdzIGEgcmFjZSBjb25kaXRpb24gYmV0d2VlbiB0aGUgYXRvbWljX2RlY19h bmRfdGVzdCgmaW8tPmNvdW50KQoKaW4gZGVjX2NvdW50KCkgYW5kIHRoZSB3YWtpbmcgb2YgdGhl IHN5bmNfaW8oKSB0aHJlYWQuICBJZiB0aGUgdGhyZWFkCgppcyBzcHVyaW91c2x5IHdva2VuIGlt bWVkaWF0ZWx5IGFmdGVyIHRoZSBkZWNyZW1lbnQgaXQgbWF5IGV4aXQsCgptYWtpbmcgdGhlIG9u IHRoZSBzdGFjayBpbyBzdHJ1Y3QgaW52YWxpZCwgeWV0IHRoZSBkZWNfY291bnQgY291bGQKCnN0 aWxsIGJlIHVzaW5nIGl0LgoKCgoKVGhlcmUgYXJlIHNtYWxsZXIgZml4ZXMgdGhhbiB0aGUgb25l IGhlcmUgKGVnLCBqdXN0IHRha2UgdGhlIGlvIG9iamVjdAoKb2ZmIHRoZSBzdGFjaykuICBCdXQg SSBmZWVsIHRoaXMgY29kZSBjb3VsZCB1c2UgYSBjbGVhbiB1cC4KCgoKCi0gc2ltcGxpZnkgZGVj X2NvdW50KCkuCgoKCgogIC0gSXQgYWx3YXlzIGNhbGxzIGEgY2FsbGJhY2sgZm4gbm93LgoKICAt IEl0IGFsd2F5cyBmcmVlcyB0aGUgaW8gb2JqZWN0IGJhY2sgdG8gdGhlIHBvb2wuCgoKCgotIHN5 bmNfaW8oKQoKCgoKICAtIFRha2UgdGhlIGlvIG9iamVjdCBvZmYgdGhlIHN0YWNrIGFuZCBhbGxv Y2F0ZSBpdCBmcm9tIHRoZSBwb29sIHRoZQoKICAgIHNhbWUgYXMgYXN5bmNfaW8uCgogIC0gVXNl IGEgY29tcGxldGlvbiBvYmplY3QgcmF0aGVyIHRoYW4gYW4gZXhwbGljaXQgaW9fc2NoZWR1bGUo KQoKICAgIGxvb3AuICBUaGUgY2FsbGJhY2sgdHJpZ2dlcnMgdGhlIGNvbXBsZXRpb24uCgoKCgpT aWduZWQtb2ZmLWJ5OiBNaW5mZWkgSHVhbmcgPGh1YW5nbWluZmVpQHVjbG91ZC5jbj4KCi0tLQoK IGRyaXZlcnMvbWQvZG0taW8uYyB8ICAgMjIgKysrKysrKysrLS0tLS0tLS0tLS0tLQoKIDEgZmls ZXMgY2hhbmdlZCwgOSBpbnNlcnRpb25zKCspLCAxMyBkZWxldGlvbnMoLSkKCgoKCmRpZmYgLS1n aXQgYS9kcml2ZXJzL21kL2RtLWlvLmMgYi9kcml2ZXJzL21kL2RtLWlvLmMKCmluZGV4IDM4NDJh YzcuLjA1NTgzZGEgMTAwNjQ0CgotLS0gYS9kcml2ZXJzL21kL2RtLWlvLmMKCisrKyBiL2RyaXZl cnMvbWQvZG0taW8uYwoKQEAgLTEwLDYgKzEwLDcgQEAKCiAjaW5jbHVkZSA8bGludXgvZGV2aWNl LW1hcHBlci5oPgoKIAoKICNpbmNsdWRlIDxsaW51eC9iaW8uaD4KCisjaW5jbHVkZSA8bGludXgv Y29tcGxldGlvbi5oPgoKICNpbmNsdWRlIDxsaW51eC9tZW1wb29sLmg+CgogI2luY2x1ZGUgPGxp bnV4L21vZHVsZS5oPgoKICNpbmNsdWRlIDxsaW51eC9zY2hlZC5oPgoKQEAgLTMyLDcgKzMzLDcg QEAgc3RydWN0IGRtX2lvX2NsaWVudCB7Cgogc3RydWN0IGlvIHsKCiB1bnNpZ25lZCBsb25nIGVy cm9yX2JpdHM7CgogYXRvbWljX3QgY291bnQ7Cgotc3RydWN0IHRhc2tfc3RydWN0ICpzbGVlcGVy OwoKK3N0cnVjdCBjb21wbGV0aW9uICp3YWl0OwoKIHN0cnVjdCBkbV9pb19jbGllbnQgKmNsaWVu dDsKCiBpb19ub3RpZnlfZm4gY2FsbGJhY2s7Cgogdm9pZCAqY29udGV4dDsKCkBAIC0xMjEsOCAr MTIyLDggQEAgc3RhdGljIHZvaWQgZGVjX2NvdW50KHN0cnVjdCBpbyAqaW8sIHVuc2lnbmVkIGlu dCByZWdpb24sIGludCBlcnJvcikKCiBpbnZhbGlkYXRlX2tlcm5lbF92bWFwX3JhbmdlKGlvLT52 bWFfaW52YWxpZGF0ZV9hZGRyZXNzLAoKICAgICAgaW8tPnZtYV9pbnZhbGlkYXRlX3NpemUpOwoK IAoKLWlmIChpby0+c2xlZXBlcikKCi13YWtlX3VwX3Byb2Nlc3MoaW8tPnNsZWVwZXIpOwoKK2lm IChpby0+d2FpdCkKCitjb21wbGV0ZShpby0+d2FpdCk7CgogCgogZWxzZSB7CgogdW5zaWduZWQg bG9uZyByID0gaW8tPmVycm9yX2JpdHM7CgpAQCAtMzg3LDYgKzM4OCw3IEBAIHN0YXRpYyBpbnQg c3luY19pbyhzdHJ1Y3QgZG1faW9fY2xpZW50ICpjbGllbnQsIHVuc2lnbmVkIGludCBudW1fcmVn aW9ucywKCiAgKi8KCiB2b2xhdGlsZSBjaGFyIGlvX1tzaXplb2Yoc3RydWN0IGlvKSArIF9fYWxp Z25vZl9fKHN0cnVjdCBpbykgLSAxXTsKCiBzdHJ1Y3QgaW8gKmlvID0gKHN0cnVjdCBpbyAqKVBU Ul9BTElHTigmaW9fLCBfX2FsaWdub2ZfXyhzdHJ1Y3QgaW8pKTsKCitERUNMQVJFX0NPTVBMRVRJ T05fT05TVEFDSyh3YWl0KTsKCiAKCiBpZiAobnVtX3JlZ2lvbnMgPiAxICYmIChydyAmIFJXX01B U0spICE9IFdSSVRFKSB7CgogV0FSTl9PTigxKTsKCkBAIC0zOTUsNyArMzk3LDcgQEAgc3RhdGlj IGludCBzeW5jX2lvKHN0cnVjdCBkbV9pb19jbGllbnQgKmNsaWVudCwgdW5zaWduZWQgaW50IG51 bV9yZWdpb25zLAoKIAoKIGlvLT5lcnJvcl9iaXRzID0gMDsKCiBhdG9taWNfc2V0KCZpby0+Y291 bnQsIDEpOyAvKiBzZWUgZGlzcGF0Y2hfaW8oKSAqLwoKLWlvLT5zbGVlcGVyID0gY3VycmVudDsK Citpby0+d2FpdCA9ICZ3YWl0OwoKIGlvLT5jbGllbnQgPSBjbGllbnQ7CgogCgogaW8tPnZtYV9p bnZhbGlkYXRlX2FkZHJlc3MgPSBkcC0+dm1hX2ludmFsaWRhdGVfYWRkcmVzczsKCkBAIC00MDMs MTUgKzQwNSw5IEBAIHN0YXRpYyBpbnQgc3luY19pbyhzdHJ1Y3QgZG1faW9fY2xpZW50ICpjbGll bnQsIHVuc2lnbmVkIGludCBudW1fcmVnaW9ucywKCiAKCiBkaXNwYXRjaF9pbyhydywgbnVtX3Jl Z2lvbnMsIHdoZXJlLCBkcCwgaW8sIDEpOwoKIAoKLXdoaWxlICgxKSB7Cgotc2V0X2N1cnJlbnRf c3RhdGUoVEFTS19VTklOVEVSUlVQVElCTEUpOwoKLQoKLWlmICghYXRvbWljX3JlYWQoJmlvLT5j b3VudCkpCgotYnJlYWs7CgotCgotaW9fc2NoZWR1bGUoKTsKCit3aGlsZSAoYXRvbWljX3JlYWQo JmlvLT5jb3VudCkgIT0gMCkgewoKK3dhaXRfZm9yX2NvbXBsZXRpb25faW9fdGltZW91dCgmd2Fp dCwgNSk7CgogfQoKLXNldF9jdXJyZW50X3N0YXRlKFRBU0tfUlVOTklORyk7CgogCgogaWYgKGVy cm9yX2JpdHMpCgogKmVycm9yX2JpdHMgPSBpby0+ZXJyb3JfYml0czsKCkBAIC00MzQsNyArNDMw LDcgQEAgc3RhdGljIGludCBhc3luY19pbyhzdHJ1Y3QgZG1faW9fY2xpZW50ICpjbGllbnQsIHVu c2lnbmVkIGludCBudW1fcmVnaW9ucywKCiBpbyA9IG1lbXBvb2xfYWxsb2MoY2xpZW50LT5wb29s LCBHRlBfTk9JTyk7CgogaW8tPmVycm9yX2JpdHMgPSAwOwoKIGF0b21pY19zZXQoJmlvLT5jb3Vu dCwgMSk7IC8qIHNlZSBkaXNwYXRjaF9pbygpICovCgotaW8tPnNsZWVwZXIgPSBOVUxMOwoKK2lv LT53YWl0ID0gTlVMTDsKCiBpby0+Y2xpZW50ID0gY2xpZW50OwoKIGlvLT5jYWxsYmFjayA9IGZu OwoKIGlvLT5jb250ZXh0ID0gY29udGV4dDsKCi0tIAoKMS43LjEKCi0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KCgpXZSBzaG91bGQgY29uc2lkZXIgdGhlIGNvbmRpdGlvbiBvZiB0 aGF0IGlmIHRoZSBzeW5jIGlvIGhhcyBiZWVuIGZpbmlzaGVkIGJlZm9yZSBleGVjdXRlICJ3YWl0 X2Zvcl9jb21wbGV0aW9uX2lvIiwKdGhlIHRocmVhZCB3aWxsIGJlIGhhbmcuCgoKc28gd2Ugc2hv dWxkIGFkZCB0aGUgaW8tPmNvdW50IGp1ZGdlbWVudCB0byBjb25zaWRlciB3aGV0aGVyIHRvIGV4 ZXV0ZSB0aGUgZnVuY3Rpb24gd2FpdF9mb3JfY29tcGxldGlvbl9pby4KCgoKCgpPbiBGcmksIDI3 IEp1biAyMDE0LCBNaWt1bGFzIFBhdG9ja2Egd3JvdGU6Cgo+Cj4KPiBPbiBGcmksIDI3IEp1biAy MDE0LCBNaW5mZWkgSHVhbmcgd3JvdGU6Cj4KPiA+IEJVRzogdW5hYmxlIHRvIGhhbmRsZSBrZXJu ZWwgTlVMTCBwb2ludGVyIGRlcmVmZXJlbmNlIGF0IDAwMDAwMDAwMDAwMDAwNDYKPiA+IElQOiBb PGZmZmZmZmZmYTAwMDljZWY+XSBkZWNfY291bnQrMHg1Zi8weDgwIFtkbV9tb2RdCj4gPiBQR0Qg MAo+ID4gT29wczogMDAwMCBbIzFdIFNNUAo+ID4gbGFzdCBzeXNmcyBmaWxlOiAvc3lzL2Rldmlj ZXMvcGNpMDAwMDowMC8wMDAwOjAwOjAyLjIvMDAwMDowMjowMC4wL2hvc3QwL3Njc2lfaG9zdC9o b3N0MC9wcm9jX25hbWUKPiA+Cj4gPiBQaWQ6IDI3MDgsIGNvbW06IGtjb3B5ZCBUYWludGVkOiBH ICAgICAgICBXICAtLS0tLS0tLS0tLS0tLS0gSCAgMi42LjMyLTI3OS4xOS41LmVsNi51Y2xvdWQu eDg2XzY0ICMxIERlbGwgSW5jLiBQb3dlckVkZ2UgUjcyMHhkLzBEQ1dEMQo+ID4gUklQOiAwMDEw Ols8ZmZmZmZmZmZhMDAwOWNlZj5dICBbPGZmZmZmZmZmYTAwMDljZWY+XSBkZWNfY291bnQrMHg1 Zi8weDgwIFtkbV9tb2RdCj4gPiBSU1A6IDAwMTg6ZmZmZjg4MDEwMDYwM2MzMCAgRUZMQUdTOiAw MDAxMDI0Ngo+ID4gUkFYOiAwMDAwMDAwMDAwMDAwMDQ2IFJCWDogZmZmZjg4MTc5NjhhNWMzMCBS Q1g6IDAwMDAwMDAwMDAwMDAwMDAKPiA+IFJEWDogMDAwMDAwMDAwMDAwMDAwMCBSU0k6IDAwMDAw MDAwMDAwMDAwMDAgUkRJOiBmZmZmODgxNzk2OGE1YzAwCj4gPiBSQlA6IGZmZmY4ODAxMDA2MDNj NTAgUjA4OiAwMDAwMDAwMDAwMDAwMDAwIFIwOTogMDAwMDAwMDAwMDAwMDAwMAo+ID4gUjEwOiBm ZmZmODgwY2FhNTk0Y2MwIFIxMTogMDAwMDAwMDAwMDAwMDAwMCBSMTI6IGZmZmY4ODE3OTY4YTVj ODAKPiA+IFIxMzogZmZmZmZmZmY4MTAxMzk2MyBSMTQ6IDAwMDAwMDAwMDAwMDEwMDAgUjE1OiAw MDAwMDAwMDAwMDAwMDAwCj4gPiBGUzogIDAwMDAwMDAwMDAwMDAwMDAoMDAwMCkgR1M6ZmZmZjg4 MDEwMDYwMDAwMCgwMDAwKSBrbmxHUzowMDAwMDAwMDAwMDAwMDAwCj4gPiBDUzogIDAwMTAgRFM6 IDAwMTggRVM6IDAwMTggQ1IwOiAwMDAwMDAwMDgwMDUwMDNiCj4gPiBDUjI6IDAwMDAwMDAwMDAw MDAwNDYgQ1IzOiAwMDAwMDAwMjBjMzA5MDAwIENSNDogMDAwMDAwMDAwMDE0MjZlMAo+ID4gRFIw OiAwMDAwMDAwMDAwMDAwMDAwIERSMTogMDAwMDAwMDAwMDAwMDAwMCBEUjI6IDAwMDAwMDAwMDAw MDAwMDAKPiA+IERSMzogMDAwMDAwMDAwMDAwMDAwMCBEUjY6IDAwMDAwMDAwZmZmZjBmZjAgRFI3 OiAwMDAwMDAwMDAwMDAwNDAwCj4gPiBQcm9jZXNzIGtjb3B5ZCAocGlkOiAyNzA4LCB0aHJlYWRp bmZvIGZmZmY4ODE4MGNkMjYwMDAsIHRhc2sgZmZmZjg4MTg0MWM5YWE4MCkKPiA+IFN0YWNrOgo+ ID4gIGZmZmY4ODAxMDA2MDNjNDAgZmZmZjg4MGFhOGIzMjMwMCAwMDAwMDAwMDAwMDAwMDAwIGZm ZmY4ODE3OTY4YTVjMDAKPiA+IDxkPiBmZmZmODgwMTAwNjAzYzgwIGZmZmZmZmZmYTAwMGExMmEg MDAwMDAwMDAwMDAwMDAwMCBmZmZmODgwYWE4YjMyMzAwCj4gPiA8ZD4gMDAwMDAwMDAwMDAwMDAw MCBmZmZmODgwY2FhNTk0Y2MwIGZmZmY4ODAxMDA2MDNjOTAgZmZmZmZmZmY4MTFiY2Y2ZAo+ID4g Q2FsbCBUcmFjZToKPiA+ICA8SVJRPgo+ID4gIFs8ZmZmZmZmZmZhMDAwYTEyYT5dIGVuZGlvKzB4 NGEvMHg3MCBbZG1fbW9kXQo+ID4gIFs8ZmZmZmZmZmY4MTFiY2Y2ZD5dIGJpb19lbmRpbysweDFk LzB4NDAKPiA+ICBbPGZmZmZmZmZmODEyNjBiZWI+XSByZXFfYmlvX2VuZGlvKzB4OWIvMHhlMAo+ ID4gIFs8ZmZmZmZmZmY4MTI2MzExND5dIGJsa191cGRhdGVfcmVxdWVzdCsweDEwNC8weDUwMAo+ ID4gIFs8ZmZmZmZmZmY4MTI2MzMzMT5dID8gYmxrX3VwZGF0ZV9yZXF1ZXN0KzB4MzIxLzB4NTAw Cj4gPiAgWzxmZmZmZmZmZjgxMjYzNTM3Pl0gYmxrX3VwZGF0ZV9iaWRpX3JlcXVlc3QrMHgyNy8w eGEwCj4gPiAgWzxmZmZmZmZmZjgxMjY0MTlmPl0gYmxrX2VuZF9iaWRpX3JlcXVlc3QrMHgyZi8w eDgwCj4gPiAgWzxmZmZmZmZmZjgxMjY0MjQwPl0gYmxrX2VuZF9yZXF1ZXN0KzB4MTAvMHgyMAo+ ID4gIFs8ZmZmZmZmZmY4MTM3NWM2Zj5dIHNjc2lfaW9fY29tcGxldGlvbisweGFmLzB4NmMwCj4g PiAgWzxmZmZmZmZmZjgxMzZjYjkyPl0gc2NzaV9maW5pc2hfY29tbWFuZCsweGMyLzB4MTMwCj4g PiAgWzxmZmZmZmZmZjgxMzc2M2U1Pl0gc2NzaV9zb2Z0aXJxX2RvbmUrMHgxNDUvMHgxNzAKPiA+ ICBbPGZmZmZmZmZmODEyNjk4ZWQ+XSBibGtfZG9uZV9zb2Z0aXJxKzB4OGQvMHhhMAo+ID4gIFs8 ZmZmZmZmZmY4MTA3NGM1Zj5dIF9fZG9fc29mdGlycSsweGRmLzB4MjEwCj4gPiAgWzxmZmZmZmZm ZjgxMDBjMmNjPl0gY2FsbF9zb2Z0aXJxKzB4MWMvMHgzMAo+ID4gIFs8ZmZmZmZmZmY4MTAwZGY5 ZD5dIGRvX3NvZnRpcnErMHhhZC8weGUwCj4gPiAgWzxmZmZmZmZmZjgxMDc0OTk1Pl0gaXJxX2V4 aXQrMHg5NS8weGEwCj4gPiAgWzxmZmZmZmZmZjgxNTEwNTE1Pl0gZG9fSVJRKzB4NzUvMHhmMAo+ ID4gIFs8ZmZmZmZmZmY4MTAwYmE1Mz5dIHJldF9mcm9tX2ludHIrMHgwLzB4MTYKPiA+Cj4gPiBU aGUgdmFsdWUgb2YgcmRpIHJlZ2lzdGVyKDB4ZmZmZjg4MTc5NjhhNWMwMCkgaXMgdGhlIGlvIHBv aW50ZXIsCj4gPiBJZiB0aGUgc3luYyBpbywgdGhlIGFkZHJlc3Mgb2YgaW8gcG9pbnQgbXVzdCBi ZSBhbGxvYyBmcm9tIHN0YWNrLgo+ID4gU08KPiA+IGNyYXNoPiBzdHJ1Y3QgdGhyZWFkX2luZm8g ZmZmZjg4MTc5NjhhNDAwMAo+ID4gc3RydWN0IHRocmVhZF9pbmZvIHsKPiA+ICAgdGFzayA9IDB4 ZmZmZjg4MTgwY2Q5YTU4MCwKPiA+ICAgZXhlY19kb21haW4gPSAweGZmZmZmZmZmODFhOThhYzAs Cj4gPiAgLi4uCj4gPiB9Cj4gPgo+ID4gY3Jhc2g+IHN0cnVjdCB0YXNrX3N0cnVjdCAweGZmZmY4 ODE4MGNkOWE1ODAKPiA+IHN0cnVjdCB0YXNrX3N0cnVjdCB7Cj4gPiAgIHN0YXRlID0gMiwKPiA+ ICAgc3RhY2sgPSAweGZmZmY4ODE3OTY4YTQwMDAsCj4gPiAgLi4uCj4gPiB9Cj4gPgo+ID4gSXQg c2hvd3MgdmFsdWUgZXhhY3RseSB3aGVuIHVzZSB0aGUgdmFsdWUgb2YgaW8gYWRkcmVzcy4KPiA+ Cj4gPiBUaGUgaW8gYWRkcmVzcyBpbiBjYWxsYmFjayBmdW5jdGlvbiB3aWxsIGJlY29tZSB0aGUg ZGFuZ2luZyBwb2ludCwKPiA+IGNhdXNlIGJ5IHRoZSB0aHJlYWQgb2Ygc3luYyBpbyB3YWtlcyB1 cCBieSBvdGhlciB0aHJlYWRzCj4gPiBhbmQgcmV0dXJuIHRvIHJlbGlldmUgdGhlIGlvIGFkZHJl c3MsCj4gPgo+ID4gU2lnbmVkLW9mZi1ieTogTWluZmVpIEh1YW5nIDxodWFuZ21pbmZlaUB1Y2xv dWQuY24+Cj4gPiAtLS0KPiA+ICBkcml2ZXJzL21kL2RtLWlvLmMgfCAgIDE5ICsrKysrKysrKysr KysrKy0tLS0KPiA+ICAxIGZpbGVzIGNoYW5nZWQsIDE1IGluc2VydGlvbnMoKyksIDQgZGVsZXRp b25zKC0pCj4gPgo+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWQvZG0taW8uYyBiL2RyaXZlcnMv bWQvZG0taW8uYwo+ID4gaW5kZXggMzg0MmFjNy4uZjk5MjkxMyAxMDA2NDQKPiA+IC0tLSBhL2Ry aXZlcnMvbWQvZG0taW8uYwo+ID4gKysrIGIvZHJpdmVycy9tZC9kbS1pby5jCj4gPiBAQCAtMzgs NiArMzgsNyBAQCBzdHJ1Y3QgaW8gewo+ID4gICAgICB2b2lkICpjb250ZXh0Owo+ID4gICAgICB2 b2lkICp2bWFfaW52YWxpZGF0ZV9hZGRyZXNzOwo+ID4gICAgICB1bnNpZ25lZCBsb25nIHZtYV9p bnZhbGlkYXRlX3NpemU7Cj4gPiArICAgIGF0b21pY190IHdha2V1cDsKPiA+ICB9IF9fYXR0cmli dXRlX18oKGFsaWduZWQoRE1fSU9fTUFYX1JFR0lPTlMpKSk7Cj4gPiAgCj4gPiAgc3RhdGljIHN0 cnVjdCBrbWVtX2NhY2hlICpfZG1faW9fY2FjaGU7Cj4gPiBAQCAtMTIxLDEwICsxMjIsMTYgQEAg c3RhdGljIHZvaWQgZGVjX2NvdW50KHN0cnVjdCBpbyAqaW8sIHVuc2lnbmVkIGludCByZWdpb24s IGludCBlcnJvcikKPiA+ICAgICAgICAgICAgICBpbnZhbGlkYXRlX2tlcm5lbF92bWFwX3Jhbmdl KGlvLT52bWFfaW52YWxpZGF0ZV9hZGRyZXNzLAo+ID4gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgaW8tPnZtYV9pbnZhbGlkYXRlX3NpemUpOwo+ID4gIAo+ID4gLSAgICAgICAgaWYgKGlv LT5zbGVlcGVyKQo+ID4gLSAgICAgICAgICAgIHdha2VfdXBfcHJvY2Vzcyhpby0+c2xlZXBlcik7 Cj4gPiArICAgICAgICBpZiAoaW8tPnNsZWVwZXIpIHsKPiA+ICsgICAgICAgICAgICBzdHJ1Y3Qg dGFza19zdHJ1Y3QgKnNsZWVwZXIgPSBpby0+c2xlZXBlcjsKPiA+ICAKPiA+IC0gICAgICAgIGVs c2Ugewo+ID4gKyAgICAgICAgICAgIGF0b21pY19zZXQoJmlvLT53YWtldXAsIDEpOwo+Cj4gVGhl IHByb2JsZW0gaGVyZSBpcyB0aGF0IHRoZSBwcm9jZXNzb3IgbWF5IHJlb3JkZXIgdGhlIHJlYWQg b2YgaW8tPnNsZWVwZXIKPiB3aXRoIGF0b21pY19zZXQoJmlvLT53YWtldXAsIDEpOyAocGVyZm9y bWluZyBhdG9taWNfc2V0IGZpcnN0IGFuZCAic2xlZXBlcgo+ID0gaW8tPnNsZWVwZXIiIGFmdGVy d2FyZHMpIGV4cG9zaW5nIHRoZSBzYW1lIHJhY2UgY29uZGl0aW9uLgo+Cj4gWW91IG5lZWQgdG8g dXNlIG1lbW9yeSBiYXJyaWVycyB0byBhdm9pZCByZW9yZGVyaW5nLCBidXQgSSB0aGluayB0aGUK PiBzb2x1dGlvbiB3aXRoIHRoZSBjb21wbGV0aW9uIGlzIGJldHRlciAodGhlIGNvbXBsZXRpb24g dGFrZXMgY2FyZSBvZgo+IGJhcnJpZXJzIGF1dG9tYXRpY2FsbHkpLgo+Cj4gTWlrdWxhcwoKQWxz byAtIHRoZXJlIGlzIGFub3RoZXIgcmFjZSAtIGFmdGVyIGF0b21pY19zZXQoJmlvLT53YWtldXAs IDEpLCB0aGUKdGFyZ2V0IHByb2Nlc3MgbWF5IHRlcm1pbmF0ZSwgc28gd2FrZV91cF9wcm9jZXNz KHNsZWVwZXIpIG9wZXJhdGVzIG9uCm5vbi1leGlzdGluZyBwcm9jZXNzLiBZb3UgbmVlZCB0byBk ZWNsYXJlIGEgc3BlY2lhbCB3YWl0IHF1ZXVlIG9yIHVzZQp3YWl0X29uX2F0b21pY190K3dha2Vf dXBfYXRvbWljX3QgKHRoYXQgdXNlcyB1c2VzIHByZS1pbml0aWFsaXplZCBoYXNoIG9mCndhaXQg cXVldWVzKSB0byBhdm9pZCB0aGF0IHJhY2UuCgpCdXQgYXMgSSBzYWlkIC0gdGhlIGNvbXBsZXRp b24gYXBwcm9hY2ggaXMgYmV0dGVyLiBJdCBkb2Vzbid0IHN1ZmZlciBmcm9tCnRoZXNlIHByb2Js ZW1zLgoKTWlrdWxhcwoKPiA+ICsvKgo+ID4gKyAqIFRoZSB0aHJlYWQgbWF5IGJlIHdha2VkIHVw IGJ5IG90aGVyIHRocmVhZHMsCj4gPiArICogaWYgdGhlbiB0aGUgc3luYyBpbyBwb2ludCB3aWxs IGJlY29tZSB0aGUgZGFuZ2xpbmcgcG9pbnRlcgo+ID4gKyAqLwo+ID4gKyAgICAgICAgICAgIHdh a2VfdXBfcHJvY2VzcyhzbGVlcGVyKTsKPiA+ICsgICAgICAgIH0gZWxzZSB7Cj4gPiAgICAgICAg ICAgICAgdW5zaWduZWQgbG9uZyByID0gaW8tPmVycm9yX2JpdHM7Cj4gPiAgICAgICAgICAgICAg aW9fbm90aWZ5X2ZuIGZuID0gaW8tPmNhbGxiYWNrOwo+ID4gICAgICAgICAgICAgIHZvaWQgKmNv bnRleHQgPSBpby0+Y29udGV4dDsKPiA+IEBAIC00MDEsMTIgKzQwOCwxNCBAQCBzdGF0aWMgaW50 IHN5bmNfaW8oc3RydWN0IGRtX2lvX2NsaWVudCAqY2xpZW50LCB1bnNpZ25lZCBpbnQgbnVtX3Jl Z2lvbnMsCj4gPiAgICAgIGlvLT52bWFfaW52YWxpZGF0ZV9hZGRyZXNzID0gZHAtPnZtYV9pbnZh bGlkYXRlX2FkZHJlc3M7Cj4gPiAgICAgIGlvLT52bWFfaW52YWxpZGF0ZV9zaXplID0gZHAtPnZt YV9pbnZhbGlkYXRlX3NpemU7Cj4gPiAgCj4gPiArICAgIGF0b21pY19zZXQoJmlvLT53YWtldXAs IDApOwo+ID4gKwo+ID4gICAgICBkaXNwYXRjaF9pbyhydywgbnVtX3JlZ2lvbnMsIHdoZXJlLCBk cCwgaW8sIDEpOwo+ID4gIAo+ID4gICAgICB3aGlsZSAoMSkgewo+ID4gICAgICAgICAgc2V0X2N1 cnJlbnRfc3RhdGUoVEFTS19VTklOVEVSUlVQVElCTEUpOwo+ID4gIAo+ID4gLSAgICAgICAgaWYg KCFhdG9taWNfcmVhZCgmaW8tPmNvdW50KSkKPiA+ICsgICAgICAgIGlmIChhdG9taWNfcmVhZCgm aW8tPndha2V1cCkpCj4gPiAgICAgICAgICAgICAgYnJlYWs7Cj4gPiAgCj4gPiAgICAgICAgICBp b19zY2hlZHVsZSgpOwo+ID4gQEAgLTQ0Miw2ICs0NTEsOCBAQCBzdGF0aWMgaW50IGFzeW5jX2lv KHN0cnVjdCBkbV9pb19jbGllbnQgKmNsaWVudCwgdW5zaWduZWQgaW50IG51bV9yZWdpb25zLAo+ ID4gICAgICBpby0+dm1hX2ludmFsaWRhdGVfYWRkcmVzcyA9IGRwLT52bWFfaW52YWxpZGF0ZV9h ZGRyZXNzOwo+ID4gICAgICBpby0+dm1hX2ludmFsaWRhdGVfc2l6ZSA9IGRwLT52bWFfaW52YWxp ZGF0ZV9zaXplOwo+ID4gIAo+ID4gKyAgICBhdG9taWNfc2V0KCZpby0+d2FrZXVwLCAwKTsKPiA+ ICsKPiA+ICAgICAgZGlzcGF0Y2hfaW8ocncsIG51bV9yZWdpb25zLCB3aGVyZSwgZHAsIGlvLCAw KTsKPiA+ICAgICAgcmV0dXJuIDA7Cj4gPiAgfQo+ID4gLS0KPiA+IDEuNy4xCj4gPgo+ID4KPiA+ IC0tCj4gPiBkbS1kZXZlbCBtYWlsaW5nIGxpc3QKPiA+IGRtLWRldmVsQHJlZGhhdC5jb20KPiA+ IGh0dHBzOi8vd3d3LnJlZGhhdC5jb20vbWFpbG1hbi9saXN0aW5mby9kbS1kZXZlbAo+ID4KPgo= ------=_Part_48187_1347888026.1403914758656 Content-Type: text/html; charset=US-ASCII Content-Transfer-Encoding: base64 PGRpdj48L2Rpdj48ZGl2IHN0eWxlPSJjb2xvcjojMDAwOyBmb250LXNpemU6IDE0cHg7Zm9udC1m YW1pbHk6IGFyaWFsOyI+PGRpdj48cCBjbGFzcz0icDEiPkZyb20gMTY0YTM5MGZlYmIwM2VjOTEz NTVmMjEzMmQyNDMwZjFiYWU3ZDZjMiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDE8L3A+PHAgY2xh c3M9InAxIj5Gcm9tOiBNaW5mZWkgSHVhbmcgJmx0O2h1YW5nbWluZmVpQHVjbG91ZC5jbiZndDs8 L3A+PHAgY2xhc3M9InAxIj5EYXRlOiBTYXQsIDI4IEp1biAyMDE0IDA4OjI2OjIwICswODAwPC9w PjxwIGNsYXNzPSJwMSI+U3ViamVjdDogW1BBVENIXSBkbS1pbzogRml4IGEgcmFjZSBjb25kaXRp b24gaW4gdGhlIHdha2UgdXAgY29kZSBmb3Igc3luY19pbzwvcD48cCBjbGFzcz0icDIiPjxicj48 L3A+PHAgY2xhc3M9InAxIj5UaGVyZSdzIGEgcmFjZSBjb25kaXRpb24gYmV0d2VlbiB0aGUgYXRv bWljX2RlY19hbmRfdGVzdCgmYW1wO2lvLSZndDtjb3VudCk8L3A+PHAgY2xhc3M9InAxIj5pbiBk ZWNfY291bnQoKSBhbmQgdGhlIHdha2luZyBvZiB0aGUgc3luY19pbygpIHRocmVhZC4mbmJzcDsg SWYgdGhlIHRocmVhZDwvcD48cCBjbGFzcz0icDEiPmlzIHNwdXJpb3VzbHkgd29rZW4gaW1tZWRp YXRlbHkgYWZ0ZXIgdGhlIGRlY3JlbWVudCBpdCBtYXkgZXhpdCw8L3A+PHAgY2xhc3M9InAxIj5t YWtpbmcgdGhlIG9uIHRoZSBzdGFjayBpbyBzdHJ1Y3QgaW52YWxpZCwgeWV0IHRoZSBkZWNfY291 bnQgY291bGQ8L3A+PHAgY2xhc3M9InAxIj5zdGlsbCBiZSB1c2luZyBpdC48L3A+PHAgY2xhc3M9 InAyIj48YnI+PC9wPjxwIGNsYXNzPSJwMSI+VGhlcmUgYXJlIHNtYWxsZXIgZml4ZXMgdGhhbiB0 aGUgb25lIGhlcmUgKGVnLCBqdXN0IHRha2UgdGhlIGlvIG9iamVjdDwvcD48cCBjbGFzcz0icDEi Pm9mZiB0aGUgc3RhY2spLiZuYnNwOyBCdXQgSSBmZWVsIHRoaXMgY29kZSBjb3VsZCB1c2UgYSBj bGVhbiB1cC48L3A+PHAgY2xhc3M9InAyIj48YnI+PC9wPjxwIGNsYXNzPSJwMSI+LSBzaW1wbGlm eSBkZWNfY291bnQoKS48L3A+PHAgY2xhc3M9InAyIj48YnI+PC9wPjxwIGNsYXNzPSJwMSI+Jm5i c3A7IC0gSXQgYWx3YXlzIGNhbGxzIGEgY2FsbGJhY2sgZm4gbm93LjwvcD48cCBjbGFzcz0icDEi PiZuYnNwOyAtIEl0IGFsd2F5cyBmcmVlcyB0aGUgaW8gb2JqZWN0IGJhY2sgdG8gdGhlIHBvb2wu PC9wPjxwIGNsYXNzPSJwMiI+PGJyPjwvcD48cCBjbGFzcz0icDEiPi0gc3luY19pbygpPC9wPjxw IGNsYXNzPSJwMiI+PGJyPjwvcD48cCBjbGFzcz0icDEiPiZuYnNwOyAtIFRha2UgdGhlIGlvIG9i amVjdCBvZmYgdGhlIHN0YWNrIGFuZCBhbGxvY2F0ZSBpdCBmcm9tIHRoZSBwb29sIHRoZTwvcD48 cCBjbGFzcz0icDEiPiZuYnNwOyAmbmJzcDsgc2FtZSBhcyBhc3luY19pby48L3A+PHAgY2xhc3M9 InAxIj4mbmJzcDsgLSBVc2UgYSBjb21wbGV0aW9uIG9iamVjdCByYXRoZXIgdGhhbiBhbiBleHBs aWNpdCBpb19zY2hlZHVsZSgpPC9wPjxwIGNsYXNzPSJwMSI+Jm5ic3A7ICZuYnNwOyBsb29wLiZu YnNwOyBUaGUgY2FsbGJhY2sgdHJpZ2dlcnMgdGhlIGNvbXBsZXRpb24uPC9wPjxwIGNsYXNzPSJw MiI+PGJyPjwvcD48cCBjbGFzcz0icDEiPlNpZ25lZC1vZmYtYnk6IE1pbmZlaSBIdWFuZyAmbHQ7 aHVhbmdtaW5mZWlAdWNsb3VkLmNuJmd0OzwvcD48cCBjbGFzcz0icDEiPi0tLTwvcD48cCBjbGFz cz0icDEiPiZuYnNwO2RyaXZlcnMvbWQvZG0taW8uYyB8ICZuYnNwOyAyMiArKysrKysrKystLS0t LS0tLS0tLS0tPC9wPjxwIGNsYXNzPSJwMSI+Jm5ic3A7MSBmaWxlcyBjaGFuZ2VkLCA5IGluc2Vy dGlvbnMoKyksIDEzIGRlbGV0aW9ucygtKTwvcD48cCBjbGFzcz0icDIiPjxicj48L3A+PHAgY2xh c3M9InAxIj5kaWZmIC0tZ2l0IGEvZHJpdmVycy9tZC9kbS1pby5jIGIvZHJpdmVycy9tZC9kbS1p by5jPC9wPjxwIGNsYXNzPSJwMSI+aW5kZXggMzg0MmFjNy4uMDU1ODNkYSAxMDA2NDQ8L3A+PHAg Y2xhc3M9InAxIj4tLS0gYS9kcml2ZXJzL21kL2RtLWlvLmM8L3A+PHAgY2xhc3M9InAxIj4rKysg Yi9kcml2ZXJzL21kL2RtLWlvLmM8L3A+PHAgY2xhc3M9InAxIj5AQCAtMTAsNiArMTAsNyBAQDwv cD48cCBjbGFzcz0icDEiPiZuYnNwOyNpbmNsdWRlICZsdDtsaW51eC9kZXZpY2UtbWFwcGVyLmgm Z3Q7PC9wPjxwIGNsYXNzPSJwMiI+Jm5ic3A7PC9wPjxwIGNsYXNzPSJwMSI+Jm5ic3A7I2luY2x1 ZGUgJmx0O2xpbnV4L2Jpby5oJmd0OzwvcD48cCBjbGFzcz0icDEiPisjaW5jbHVkZSAmbHQ7bGlu dXgvY29tcGxldGlvbi5oJmd0OzwvcD48cCBjbGFzcz0icDEiPiZuYnNwOyNpbmNsdWRlICZsdDts aW51eC9tZW1wb29sLmgmZ3Q7PC9wPjxwIGNsYXNzPSJwMSI+Jm5ic3A7I2luY2x1ZGUgJmx0O2xp bnV4L21vZHVsZS5oJmd0OzwvcD48cCBjbGFzcz0icDEiPiZuYnNwOyNpbmNsdWRlICZsdDtsaW51 eC9zY2hlZC5oJmd0OzwvcD48cCBjbGFzcz0icDEiPkBAIC0zMiw3ICszMyw3IEBAIHN0cnVjdCBk bV9pb19jbGllbnQgezwvcD48cCBjbGFzcz0icDEiPiZuYnNwO3N0cnVjdCBpbyB7PC9wPjxwIGNs YXNzPSJwMSI+Jm5ic3A7PHNwYW4gY2xhc3M9IkFwcGxlLXRhYi1zcGFuIj4JPC9zcGFuPnVuc2ln bmVkIGxvbmcgZXJyb3JfYml0czs8L3A+PHAgY2xhc3M9InAxIj4mbmJzcDs8c3BhbiBjbGFzcz0i QXBwbGUtdGFiLXNwYW4iPgk8L3NwYW4+YXRvbWljX3QgY291bnQ7PC9wPjxwIGNsYXNzPSJwMSI+ LTxzcGFuIGNsYXNzPSJBcHBsZS10YWItc3BhbiI+CTwvc3Bhbj5zdHJ1Y3QgdGFza19zdHJ1Y3Qg KnNsZWVwZXI7PC9wPjxwIGNsYXNzPSJwMSI+KzxzcGFuIGNsYXNzPSJBcHBsZS10YWItc3BhbiI+ CTwvc3Bhbj5zdHJ1Y3QgY29tcGxldGlvbiAqd2FpdDs8L3A+PHAgY2xhc3M9InAxIj4mbmJzcDs8 c3BhbiBjbGFzcz0iQXBwbGUtdGFiLXNwYW4iPgk8L3NwYW4+c3RydWN0IGRtX2lvX2NsaWVudCAq Y2xpZW50OzwvcD48cCBjbGFzcz0icDEiPiZuYnNwOzxzcGFuIGNsYXNzPSJBcHBsZS10YWItc3Bh biI+CTwvc3Bhbj5pb19ub3RpZnlfZm4gY2FsbGJhY2s7PC9wPjxwIGNsYXNzPSJwMSI+Jm5ic3A7 PHNwYW4gY2xhc3M9IkFwcGxlLXRhYi1zcGFuIj4JPC9zcGFuPnZvaWQgKmNvbnRleHQ7PC9wPjxw IGNsYXNzPSJwMSI+QEAgLTEyMSw4ICsxMjIsOCBAQCBzdGF0aWMgdm9pZCBkZWNfY291bnQoc3Ry dWN0IGlvICppbywgdW5zaWduZWQgaW50IHJlZ2lvbiwgaW50IGVycm9yKTwvcD48cCBjbGFzcz0i cDEiPiZuYnNwOzxzcGFuIGNsYXNzPSJBcHBsZS10YWItc3BhbiI+CTwvc3Bhbj48c3BhbiBjbGFz cz0iQXBwbGUtdGFiLXNwYW4iPgk8L3NwYW4+PHNwYW4gY2xhc3M9IkFwcGxlLXRhYi1zcGFuIj4J PC9zcGFuPmludmFsaWRhdGVfa2VybmVsX3ZtYXBfcmFuZ2UoaW8tJmd0O3ZtYV9pbnZhbGlkYXRl X2FkZHJlc3MsPC9wPjxwIGNsYXNzPSJwMSI+Jm5ic3A7PHNwYW4gY2xhc3M9IkFwcGxlLXRhYi1z cGFuIj4JPC9zcGFuPjxzcGFuIGNsYXNzPSJBcHBsZS10YWItc3BhbiI+CTwvc3Bhbj48c3BhbiBj bGFzcz0iQXBwbGUtdGFiLXNwYW4iPgk8L3NwYW4+PHNwYW4gY2xhc3M9IkFwcGxlLXRhYi1zcGFu Ij4JPC9zcGFuPjxzcGFuIGNsYXNzPSJBcHBsZS10YWItc3BhbiI+CTwvc3Bhbj48c3BhbiBjbGFz cz0iQXBwbGUtdGFiLXNwYW4iPgk8L3NwYW4+ICZuYnNwOyAmbmJzcDsgaW8tJmd0O3ZtYV9pbnZh bGlkYXRlX3NpemUpOzwvcD48cCBjbGFzcz0icDIiPiZuYnNwOzwvcD48cCBjbGFzcz0icDEiPi08 c3BhbiBjbGFzcz0iQXBwbGUtdGFiLXNwYW4iPgk8L3NwYW4+PHNwYW4gY2xhc3M9IkFwcGxlLXRh Yi1zcGFuIj4JPC9zcGFuPmlmIChpby0mZ3Q7c2xlZXBlcik8L3A+PHAgY2xhc3M9InAxIj4tPHNw YW4gY2xhc3M9IkFwcGxlLXRhYi1zcGFuIj4JPC9zcGFuPjxzcGFuIGNsYXNzPSJBcHBsZS10YWIt c3BhbiI+CTwvc3Bhbj48c3BhbiBjbGFzcz0iQXBwbGUtdGFiLXNwYW4iPgk8L3NwYW4+d2FrZV91 cF9wcm9jZXNzKGlvLSZndDtzbGVlcGVyKTs8L3A+PHAgY2xhc3M9InAxIj4rPHNwYW4gY2xhc3M9 IkFwcGxlLXRhYi1zcGFuIj4JPC9zcGFuPjxzcGFuIGNsYXNzPSJBcHBsZS10YWItc3BhbiI+CTwv c3Bhbj5pZiAoaW8tJmd0O3dhaXQpPC9wPjxwIGNsYXNzPSJwMSI+KzxzcGFuIGNsYXNzPSJBcHBs ZS10YWItc3BhbiI+CTwvc3Bhbj48c3BhbiBjbGFzcz0iQXBwbGUtdGFiLXNwYW4iPgk8L3NwYW4+ PHNwYW4gY2xhc3M9IkFwcGxlLXRhYi1zcGFuIj4JPC9zcGFuPmNvbXBsZXRlKGlvLSZndDt3YWl0 KTs8L3A+PHAgY2xhc3M9InAyIj4mbmJzcDs8L3A+PHAgY2xhc3M9InAxIj4mbmJzcDs8c3BhbiBj bGFzcz0iQXBwbGUtdGFiLXNwYW4iPgk8L3NwYW4+PHNwYW4gY2xhc3M9IkFwcGxlLXRhYi1zcGFu Ij4JPC9zcGFuPmVsc2UgezwvcD48cCBjbGFzcz0icDEiPiZuYnNwOzxzcGFuIGNsYXNzPSJBcHBs ZS10YWItc3BhbiI+CTwvc3Bhbj48c3BhbiBjbGFzcz0iQXBwbGUtdGFiLXNwYW4iPgk8L3NwYW4+ PHNwYW4gY2xhc3M9IkFwcGxlLXRhYi1zcGFuIj4JPC9zcGFuPnVuc2lnbmVkIGxvbmcgciA9IGlv LSZndDtlcnJvcl9iaXRzOzwvcD48cCBjbGFzcz0icDEiPkBAIC0zODcsNiArMzg4LDcgQEAgc3Rh dGljIGludCBzeW5jX2lvKHN0cnVjdCBkbV9pb19jbGllbnQgKmNsaWVudCwgdW5zaWduZWQgaW50 IG51bV9yZWdpb25zLDwvcD48cCBjbGFzcz0icDEiPiZuYnNwOzxzcGFuIGNsYXNzPSJBcHBsZS10 YWItc3BhbiI+CTwvc3Bhbj4gKi88L3A+PHAgY2xhc3M9InAxIj4mbmJzcDs8c3BhbiBjbGFzcz0i QXBwbGUtdGFiLXNwYW4iPgk8L3NwYW4+dm9sYXRpbGUgY2hhciBpb19bc2l6ZW9mKHN0cnVjdCBp bykgKyBfX2FsaWdub2ZfXyhzdHJ1Y3QgaW8pIC0gMV07PC9wPjxwIGNsYXNzPSJwMSI+Jm5ic3A7 PHNwYW4gY2xhc3M9IkFwcGxlLXRhYi1zcGFuIj4JPC9zcGFuPnN0cnVjdCBpbyAqaW8gPSAoc3Ry dWN0IGlvICopUFRSX0FMSUdOKCZhbXA7aW9fLCBfX2FsaWdub2ZfXyhzdHJ1Y3QgaW8pKTs8L3A+ PHAgY2xhc3M9InAxIj4rPHNwYW4gY2xhc3M9IkFwcGxlLXRhYi1zcGFuIj4JPC9zcGFuPkRFQ0xB UkVfQ09NUExFVElPTl9PTlNUQUNLKHdhaXQpOzwvcD48cCBjbGFzcz0icDIiPiZuYnNwOzwvcD48 cCBjbGFzcz0icDEiPiZuYnNwOzxzcGFuIGNsYXNzPSJBcHBsZS10YWItc3BhbiI+CTwvc3Bhbj5p ZiAobnVtX3JlZ2lvbnMgJmd0OyAxICZhbXA7JmFtcDsgKHJ3ICZhbXA7IFJXX01BU0spICE9IFdS SVRFKSB7PC9wPjxwIGNsYXNzPSJwMSI+Jm5ic3A7PHNwYW4gY2xhc3M9IkFwcGxlLXRhYi1zcGFu Ij4JPC9zcGFuPjxzcGFuIGNsYXNzPSJBcHBsZS10YWItc3BhbiI+CTwvc3Bhbj5XQVJOX09OKDEp OzwvcD48cCBjbGFzcz0icDEiPkBAIC0zOTUsNyArMzk3LDcgQEAgc3RhdGljIGludCBzeW5jX2lv KHN0cnVjdCBkbV9pb19jbGllbnQgKmNsaWVudCwgdW5zaWduZWQgaW50IG51bV9yZWdpb25zLDwv cD48cCBjbGFzcz0icDIiPiZuYnNwOzwvcD48cCBjbGFzcz0icDEiPiZuYnNwOzxzcGFuIGNsYXNz PSJBcHBsZS10YWItc3BhbiI+CTwvc3Bhbj5pby0mZ3Q7ZXJyb3JfYml0cyA9IDA7PC9wPjxwIGNs YXNzPSJwMSI+Jm5ic3A7PHNwYW4gY2xhc3M9IkFwcGxlLXRhYi1zcGFuIj4JPC9zcGFuPmF0b21p Y19zZXQoJmFtcDtpby0mZ3Q7Y291bnQsIDEpOyAvKiBzZWUgZGlzcGF0Y2hfaW8oKSAqLzwvcD48 cCBjbGFzcz0icDEiPi08c3BhbiBjbGFzcz0iQXBwbGUtdGFiLXNwYW4iPgk8L3NwYW4+aW8tJmd0 O3NsZWVwZXIgPSBjdXJyZW50OzwvcD48cCBjbGFzcz0icDEiPis8c3BhbiBjbGFzcz0iQXBwbGUt dGFiLXNwYW4iPgk8L3NwYW4+aW8tJmd0O3dhaXQgPSAmYW1wO3dhaXQ7PC9wPjxwIGNsYXNzPSJw MSI+Jm5ic3A7PHNwYW4gY2xhc3M9IkFwcGxlLXRhYi1zcGFuIj4JPC9zcGFuPmlvLSZndDtjbGll bnQgPSBjbGllbnQ7PC9wPjxwIGNsYXNzPSJwMiI+Jm5ic3A7PC9wPjxwIGNsYXNzPSJwMSI+Jm5i c3A7PHNwYW4gY2xhc3M9IkFwcGxlLXRhYi1zcGFuIj4JPC9zcGFuPmlvLSZndDt2bWFfaW52YWxp ZGF0ZV9hZGRyZXNzID0gZHAtJmd0O3ZtYV9pbnZhbGlkYXRlX2FkZHJlc3M7PC9wPjxwIGNsYXNz PSJwMSI+QEAgLTQwMywxNSArNDA1LDkgQEAgc3RhdGljIGludCBzeW5jX2lvKHN0cnVjdCBkbV9p b19jbGllbnQgKmNsaWVudCwgdW5zaWduZWQgaW50IG51bV9yZWdpb25zLDwvcD48cCBjbGFzcz0i cDIiPiZuYnNwOzwvcD48cCBjbGFzcz0icDEiPiZuYnNwOzxzcGFuIGNsYXNzPSJBcHBsZS10YWIt c3BhbiI+CTwvc3Bhbj5kaXNwYXRjaF9pbyhydywgbnVtX3JlZ2lvbnMsIHdoZXJlLCBkcCwgaW8s IDEpOzwvcD48cCBjbGFzcz0icDIiPiZuYnNwOzwvcD48cCBjbGFzcz0icDEiPi08c3BhbiBjbGFz cz0iQXBwbGUtdGFiLXNwYW4iPgk8L3NwYW4+d2hpbGUgKDEpIHs8L3A+PHAgY2xhc3M9InAxIj4t PHNwYW4gY2xhc3M9IkFwcGxlLXRhYi1zcGFuIj4JPC9zcGFuPjxzcGFuIGNsYXNzPSJBcHBsZS10 YWItc3BhbiI+CTwvc3Bhbj5zZXRfY3VycmVudF9zdGF0ZShUQVNLX1VOSU5URVJSVVBUSUJMRSk7 PC9wPjxwIGNsYXNzPSJwMSI+LTwvcD48cCBjbGFzcz0icDEiPi08c3BhbiBjbGFzcz0iQXBwbGUt dGFiLXNwYW4iPgk8L3NwYW4+PHNwYW4gY2xhc3M9IkFwcGxlLXRhYi1zcGFuIj4JPC9zcGFuPmlm ICghYXRvbWljX3JlYWQoJmFtcDtpby0mZ3Q7Y291bnQpKTwvcD48cCBjbGFzcz0icDEiPi08c3Bh biBjbGFzcz0iQXBwbGUtdGFiLXNwYW4iPgk8L3NwYW4+PHNwYW4gY2xhc3M9IkFwcGxlLXRhYi1z cGFuIj4JPC9zcGFuPjxzcGFuIGNsYXNzPSJBcHBsZS10YWItc3BhbiI+CTwvc3Bhbj5icmVhazs8 L3A+PHAgY2xhc3M9InAxIj4tPC9wPjxwIGNsYXNzPSJwMSI+LTxzcGFuIGNsYXNzPSJBcHBsZS10 YWItc3BhbiI+CTwvc3Bhbj48c3BhbiBjbGFzcz0iQXBwbGUtdGFiLXNwYW4iPgk8L3NwYW4+aW9f c2NoZWR1bGUoKTs8L3A+PHAgY2xhc3M9InAxIj4rPHNwYW4gY2xhc3M9IkFwcGxlLXRhYi1zcGFu Ij4JPC9zcGFuPndoaWxlIChhdG9taWNfcmVhZCgmYW1wO2lvLSZndDtjb3VudCkgIT0gMCkgezwv cD48cCBjbGFzcz0icDEiPis8c3BhbiBjbGFzcz0iQXBwbGUtdGFiLXNwYW4iPgk8L3NwYW4+PHNw YW4gY2xhc3M9IkFwcGxlLXRhYi1zcGFuIj4JPC9zcGFuPndhaXRfZm9yX2NvbXBsZXRpb25faW9f dGltZW91dCgmYW1wO3dhaXQsIDUpOzwvcD48cCBjbGFzcz0icDEiPiZuYnNwOzxzcGFuIGNsYXNz PSJBcHBsZS10YWItc3BhbiI+CTwvc3Bhbj59PC9wPjxwIGNsYXNzPSJwMSI+LTxzcGFuIGNsYXNz PSJBcHBsZS10YWItc3BhbiI+CTwvc3Bhbj5zZXRfY3VycmVudF9zdGF0ZShUQVNLX1JVTk5JTkcp OzwvcD48cCBjbGFzcz0icDIiPiZuYnNwOzwvcD48cCBjbGFzcz0icDEiPiZuYnNwOzxzcGFuIGNs YXNzPSJBcHBsZS10YWItc3BhbiI+CTwvc3Bhbj5pZiAoZXJyb3JfYml0cyk8L3A+PHAgY2xhc3M9 InAxIj4mbmJzcDs8c3BhbiBjbGFzcz0iQXBwbGUtdGFiLXNwYW4iPgk8L3NwYW4+PHNwYW4gY2xh c3M9IkFwcGxlLXRhYi1zcGFuIj4JPC9zcGFuPiplcnJvcl9iaXRzID0gaW8tJmd0O2Vycm9yX2Jp dHM7PC9wPjxwIGNsYXNzPSJwMSI+QEAgLTQzNCw3ICs0MzAsNyBAQCBzdGF0aWMgaW50IGFzeW5j X2lvKHN0cnVjdCBkbV9pb19jbGllbnQgKmNsaWVudCwgdW5zaWduZWQgaW50IG51bV9yZWdpb25z LDwvcD48cCBjbGFzcz0icDEiPiZuYnNwOzxzcGFuIGNsYXNzPSJBcHBsZS10YWItc3BhbiI+CTwv c3Bhbj5pbyA9IG1lbXBvb2xfYWxsb2MoY2xpZW50LSZndDtwb29sLCBHRlBfTk9JTyk7PC9wPjxw IGNsYXNzPSJwMSI+Jm5ic3A7PHNwYW4gY2xhc3M9IkFwcGxlLXRhYi1zcGFuIj4JPC9zcGFuPmlv LSZndDtlcnJvcl9iaXRzID0gMDs8L3A+PHAgY2xhc3M9InAxIj4mbmJzcDs8c3BhbiBjbGFzcz0i QXBwbGUtdGFiLXNwYW4iPgk8L3NwYW4+YXRvbWljX3NldCgmYW1wO2lvLSZndDtjb3VudCwgMSk7 IC8qIHNlZSBkaXNwYXRjaF9pbygpICovPC9wPjxwIGNsYXNzPSJwMSI+LTxzcGFuIGNsYXNzPSJB cHBsZS10YWItc3BhbiI+CTwvc3Bhbj5pby0mZ3Q7c2xlZXBlciA9IE5VTEw7PC9wPjxwIGNsYXNz PSJwMSI+KzxzcGFuIGNsYXNzPSJBcHBsZS10YWItc3BhbiI+CTwvc3Bhbj5pby0mZ3Q7d2FpdCA9 IE5VTEw7PC9wPjxwIGNsYXNzPSJwMSI+Jm5ic3A7PHNwYW4gY2xhc3M9IkFwcGxlLXRhYi1zcGFu Ij4JPC9zcGFuPmlvLSZndDtjbGllbnQgPSBjbGllbnQ7PC9wPjxwIGNsYXNzPSJwMSI+Jm5ic3A7 PHNwYW4gY2xhc3M9IkFwcGxlLXRhYi1zcGFuIj4JPC9zcGFuPmlvLSZndDtjYWxsYmFjayA9IGZu OzwvcD48cCBjbGFzcz0icDEiPiZuYnNwOzxzcGFuIGNsYXNzPSJBcHBsZS10YWItc3BhbiI+CTwv c3Bhbj5pby0mZ3Q7Y29udGV4dCA9IGNvbnRleHQ7PC9wPjxwIGNsYXNzPSJwMSI+LS0mbmJzcDs8 L3A+PHAgY2xhc3M9InAxIj4xLjcuMTwvcD48L2Rpdj48ZGl2Pi0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS08L2Rpdj48ZGl2Pjxicj48L2Rpdj48ZGl2PldlIHNob3VsZCBjb25zaWRl ciB0aGUgY29uZGl0aW9uIG9mIHRoYXQgaWYgdGhlIHN5bmMgaW8gaGFzIGJlZW4gZmluaXNoZWQg YmVmb3JlIGV4ZWN1dGUgIjxzcGFuIHN0eWxlPSJsaW5lLWhlaWdodDogMS43OyI+d2FpdF9mb3Jf Y29tcGxldGlvbl9pbyIsPC9zcGFuPjwvZGl2PjxkaXY+dGhlIHRocmVhZCB3aWxsIGJlIGhhbmcu PC9kaXY+PGRpdj48YnI+PC9kaXY+PGRpdj5zbyB3ZSBzaG91bGQgYWRkIHRoZSBpby0mZ3Q7Y291 bnQganVkZ2VtZW50IHRvIGNvbnNpZGVyIHdoZXRoZXIgdG8gZXhldXRlIHRoZSBmdW5jdGlvbiZu YnNwOzxzcGFuIHN0eWxlPSJsaW5lLWhlaWdodDogMS43OyI+d2FpdF9mb3JfY29tcGxldGlvbl9p by48L3NwYW4+PC9kaXY+PGRpdj48YnI+PC9kaXY+PC9kaXY+PGJsb2NrcXVvdGUgaWQ9ImlzUmVw bHlDb250ZW50IiBzdHlsZT0icGFkZGluZy1sZWZ0OjFleDsgbWFyZ2luOiAwcHggMHB4IDBweCAw LjhleDsgQk9SREVSLUxFRlQ6ICNjY2MgMXB4IHNvbGlkIj48YnI+IDxicj48YnI+T24gRnJpLCAy NyBKdW4gMjAxNCwgTWlrdWxhcyBQYXRvY2thIHdyb3RlOjxicj48YnI+Jmd0OyA8YnI+Jmd0OyA8 YnI+Jmd0OyBPbiBGcmksIDI3IEp1biAyMDE0LCBNaW5mZWkgSHVhbmcgd3JvdGU6PGJyPiZndDsg PGJyPiZndDsgJmd0OyBCVUc6IHVuYWJsZSB0byBoYW5kbGUga2VybmVsIE5VTEwgcG9pbnRlciBk ZXJlZmVyZW5jZSBhdCAwMDAwMDAwMDAwMDAwMDQ2PGJyPiZndDsgJmd0OyBJUDogWyZsdDtmZmZm ZmZmZmEwMDA5Y2VmJmd0O10gZGVjX2NvdW50KzB4NWYvMHg4MCBbZG1fbW9kXTxicj4mZ3Q7ICZn dDsgUEdEIDA8YnI+Jmd0OyAmZ3Q7IE9vcHM6IDAwMDAgWyMxXSBTTVA8YnI+Jmd0OyAmZ3Q7IGxh c3Qgc3lzZnMgZmlsZTogL3N5cy9kZXZpY2VzL3BjaTAwMDA6MDAvMDAwMDowMDowMi4yLzAwMDA6 MDI6MDAuMC9ob3N0MC9zY3NpX2hvc3QvaG9zdDAvcHJvY19uYW1lPGJyPiZndDsgJmd0OyA8YnI+ Jmd0OyAmZ3Q7IFBpZDogMjcwOCwgY29tbToga2NvcHlkIFRhaW50ZWQ6IEcgJm5ic3A7ICZuYnNw OyAmbmJzcDsgJm5ic3A7VyAmbmJzcDstLS0tLS0tLS0tLS0tLS0gSCAmbmJzcDsyLjYuMzItMjc5 LjE5LjUuZWw2LnVjbG91ZC54ODZfNjQgIzEgRGVsbCBJbmMuIFBvd2VyRWRnZSBSNzIweGQvMERD V0QxPGJyPiZndDsgJmd0OyBSSVA6IDAwMTA6WyZsdDtmZmZmZmZmZmEwMDA5Y2VmJmd0O10gJm5i c3A7WyZsdDtmZmZmZmZmZmEwMDA5Y2VmJmd0O10gZGVjX2NvdW50KzB4NWYvMHg4MCBbZG1fbW9k XTxicj4mZ3Q7ICZndDsgUlNQOiAwMDE4OmZmZmY4ODAxMDA2MDNjMzAgJm5ic3A7RUZMQUdTOiAw MDAxMDI0Njxicj4mZ3Q7ICZndDsgUkFYOiAwMDAwMDAwMDAwMDAwMDQ2IFJCWDogZmZmZjg4MTc5 NjhhNWMzMCBSQ1g6IDAwMDAwMDAwMDAwMDAwMDA8YnI+Jmd0OyAmZ3Q7IFJEWDogMDAwMDAwMDAw MDAwMDAwMCBSU0k6IDAwMDAwMDAwMDAwMDAwMDAgUkRJOiBmZmZmODgxNzk2OGE1YzAwPGJyPiZn dDsgJmd0OyBSQlA6IGZmZmY4ODAxMDA2MDNjNTAgUjA4OiAwMDAwMDAwMDAwMDAwMDAwIFIwOTog MDAwMDAwMDAwMDAwMDAwMDxicj4mZ3Q7ICZndDsgUjEwOiBmZmZmODgwY2FhNTk0Y2MwIFIxMTog MDAwMDAwMDAwMDAwMDAwMCBSMTI6IGZmZmY4ODE3OTY4YTVjODA8YnI+Jmd0OyAmZ3Q7IFIxMzog ZmZmZmZmZmY4MTAxMzk2MyBSMTQ6IDAwMDAwMDAwMDAwMDEwMDAgUjE1OiAwMDAwMDAwMDAwMDAw MDAwPGJyPiZndDsgJmd0OyBGUzogJm5ic3A7MDAwMDAwMDAwMDAwMDAwMCgwMDAwKSBHUzpmZmZm ODgwMTAwNjAwMDAwKDAwMDApIGtubEdTOjAwMDAwMDAwMDAwMDAwMDA8YnI+Jmd0OyAmZ3Q7IENT OiAmbmJzcDswMDEwIERTOiAwMDE4IEVTOiAwMDE4IENSMDogMDAwMDAwMDA4MDA1MDAzYjxicj4m Z3Q7ICZndDsgQ1IyOiAwMDAwMDAwMDAwMDAwMDQ2IENSMzogMDAwMDAwMDIwYzMwOTAwMCBDUjQ6 IDAwMDAwMDAwMDAxNDI2ZTA8YnI+Jmd0OyAmZ3Q7IERSMDogMDAwMDAwMDAwMDAwMDAwMCBEUjE6 IDAwMDAwMDAwMDAwMDAwMDAgRFIyOiAwMDAwMDAwMDAwMDAwMDAwPGJyPiZndDsgJmd0OyBEUjM6 IDAwMDAwMDAwMDAwMDAwMDAgRFI2OiAwMDAwMDAwMGZmZmYwZmYwIERSNzogMDAwMDAwMDAwMDAw MDQwMDxicj4mZ3Q7ICZndDsgUHJvY2VzcyBrY29weWQgKHBpZDogMjcwOCwgdGhyZWFkaW5mbyBm ZmZmODgxODBjZDI2MDAwLCB0YXNrIGZmZmY4ODE4NDFjOWFhODApPGJyPiZndDsgJmd0OyBTdGFj azo8YnI+Jmd0OyAmZ3Q7ICZuYnNwO2ZmZmY4ODAxMDA2MDNjNDAgZmZmZjg4MGFhOGIzMjMwMCAw MDAwMDAwMDAwMDAwMDAwIGZmZmY4ODE3OTY4YTVjMDA8YnI+Jmd0OyAmZ3Q7ICZsdDtkJmd0OyBm ZmZmODgwMTAwNjAzYzgwIGZmZmZmZmZmYTAwMGExMmEgMDAwMDAwMDAwMDAwMDAwMCBmZmZmODgw YWE4YjMyMzAwPGJyPiZndDsgJmd0OyAmbHQ7ZCZndDsgMDAwMDAwMDAwMDAwMDAwMCBmZmZmODgw Y2FhNTk0Y2MwIGZmZmY4ODAxMDA2MDNjOTAgZmZmZmZmZmY4MTFiY2Y2ZDxicj4mZ3Q7ICZndDsg Q2FsbCBUcmFjZTo8YnI+Jmd0OyAmZ3Q7ICZuYnNwOyZsdDtJUlEmZ3Q7PGJyPiZndDsgJmd0OyAm bmJzcDtbJmx0O2ZmZmZmZmZmYTAwMGExMmEmZ3Q7XSBlbmRpbysweDRhLzB4NzAgW2RtX21vZF08 YnI+Jmd0OyAmZ3Q7ICZuYnNwO1smbHQ7ZmZmZmZmZmY4MTFiY2Y2ZCZndDtdIGJpb19lbmRpbysw eDFkLzB4NDA8YnI+Jmd0OyAmZ3Q7ICZuYnNwO1smbHQ7ZmZmZmZmZmY4MTI2MGJlYiZndDtdIHJl cV9iaW9fZW5kaW8rMHg5Yi8weGUwPGJyPiZndDsgJmd0OyAmbmJzcDtbJmx0O2ZmZmZmZmZmODEy NjMxMTQmZ3Q7XSBibGtfdXBkYXRlX3JlcXVlc3QrMHgxMDQvMHg1MDA8YnI+Jmd0OyAmZ3Q7ICZu YnNwO1smbHQ7ZmZmZmZmZmY4MTI2MzMzMSZndDtdID8gYmxrX3VwZGF0ZV9yZXF1ZXN0KzB4MzIx LzB4NTAwPGJyPiZndDsgJmd0OyAmbmJzcDtbJmx0O2ZmZmZmZmZmODEyNjM1MzcmZ3Q7XSBibGtf dXBkYXRlX2JpZGlfcmVxdWVzdCsweDI3LzB4YTA8YnI+Jmd0OyAmZ3Q7ICZuYnNwO1smbHQ7ZmZm ZmZmZmY4MTI2NDE5ZiZndDtdIGJsa19lbmRfYmlkaV9yZXF1ZXN0KzB4MmYvMHg4MDxicj4mZ3Q7 ICZndDsgJm5ic3A7WyZsdDtmZmZmZmZmZjgxMjY0MjQwJmd0O10gYmxrX2VuZF9yZXF1ZXN0KzB4 MTAvMHgyMDxicj4mZ3Q7ICZndDsgJm5ic3A7WyZsdDtmZmZmZmZmZjgxMzc1YzZmJmd0O10gc2Nz aV9pb19jb21wbGV0aW9uKzB4YWYvMHg2YzA8YnI+Jmd0OyAmZ3Q7ICZuYnNwO1smbHQ7ZmZmZmZm ZmY4MTM2Y2I5MiZndDtdIHNjc2lfZmluaXNoX2NvbW1hbmQrMHhjMi8weDEzMDxicj4mZ3Q7ICZn dDsgJm5ic3A7WyZsdDtmZmZmZmZmZjgxMzc2M2U1Jmd0O10gc2NzaV9zb2Z0aXJxX2RvbmUrMHgx NDUvMHgxNzA8YnI+Jmd0OyAmZ3Q7ICZuYnNwO1smbHQ7ZmZmZmZmZmY4MTI2OThlZCZndDtdIGJs a19kb25lX3NvZnRpcnErMHg4ZC8weGEwPGJyPiZndDsgJmd0OyAmbmJzcDtbJmx0O2ZmZmZmZmZm ODEwNzRjNWYmZ3Q7XSBfX2RvX3NvZnRpcnErMHhkZi8weDIxMDxicj4mZ3Q7ICZndDsgJm5ic3A7 WyZsdDtmZmZmZmZmZjgxMDBjMmNjJmd0O10gY2FsbF9zb2Z0aXJxKzB4MWMvMHgzMDxicj4mZ3Q7 ICZndDsgJm5ic3A7WyZsdDtmZmZmZmZmZjgxMDBkZjlkJmd0O10gZG9fc29mdGlycSsweGFkLzB4 ZTA8YnI+Jmd0OyAmZ3Q7ICZuYnNwO1smbHQ7ZmZmZmZmZmY4MTA3NDk5NSZndDtdIGlycV9leGl0 KzB4OTUvMHhhMDxicj4mZ3Q7ICZndDsgJm5ic3A7WyZsdDtmZmZmZmZmZjgxNTEwNTE1Jmd0O10g ZG9fSVJRKzB4NzUvMHhmMDxicj4mZ3Q7ICZndDsgJm5ic3A7WyZsdDtmZmZmZmZmZjgxMDBiYTUz Jmd0O10gcmV0X2Zyb21faW50cisweDAvMHgxNjxicj4mZ3Q7ICZndDsgPGJyPiZndDsgJmd0OyBU aGUgdmFsdWUgb2YgcmRpIHJlZ2lzdGVyKDB4ZmZmZjg4MTc5NjhhNWMwMCkgaXMgdGhlIGlvIHBv aW50ZXIsPGJyPiZndDsgJmd0OyBJZiB0aGUgc3luYyBpbywgdGhlIGFkZHJlc3Mgb2YgaW8gcG9p bnQgbXVzdCBiZSBhbGxvYyBmcm9tIHN0YWNrLjxicj4mZ3Q7ICZndDsgU088YnI+Jmd0OyAmZ3Q7 IGNyYXNoJmd0OyBzdHJ1Y3QgdGhyZWFkX2luZm8gZmZmZjg4MTc5NjhhNDAwMDxicj4mZ3Q7ICZn dDsgc3RydWN0IHRocmVhZF9pbmZvIHs8YnI+Jmd0OyAmZ3Q7ICZuYnNwOyB0YXNrID0gMHhmZmZm ODgxODBjZDlhNTgwLDxicj4mZ3Q7ICZndDsgJm5ic3A7IGV4ZWNfZG9tYWluID0gMHhmZmZmZmZm ZjgxYTk4YWMwLDxicj4mZ3Q7ICZndDsgJm5ic3A7Li4uPGJyPiZndDsgJmd0OyB9PGJyPiZndDsg Jmd0OyA8YnI+Jmd0OyAmZ3Q7IGNyYXNoJmd0OyBzdHJ1Y3QgdGFza19zdHJ1Y3QgMHhmZmZmODgx ODBjZDlhNTgwPGJyPiZndDsgJmd0OyBzdHJ1Y3QgdGFza19zdHJ1Y3Qgezxicj4mZ3Q7ICZndDsg Jm5ic3A7IHN0YXRlID0gMiw8YnI+Jmd0OyAmZ3Q7ICZuYnNwOyBzdGFjayA9IDB4ZmZmZjg4MTc5 NjhhNDAwMCw8YnI+Jmd0OyAmZ3Q7ICZuYnNwOy4uLjxicj4mZ3Q7ICZndDsgfTxicj4mZ3Q7ICZn dDsgPGJyPiZndDsgJmd0OyBJdCBzaG93cyB2YWx1ZSBleGFjdGx5IHdoZW4gdXNlIHRoZSB2YWx1 ZSBvZiBpbyBhZGRyZXNzLjxicj4mZ3Q7ICZndDsgPGJyPiZndDsgJmd0OyBUaGUgaW8gYWRkcmVz cyBpbiBjYWxsYmFjayBmdW5jdGlvbiB3aWxsIGJlY29tZSB0aGUgZGFuZ2luZyBwb2ludCw8YnI+ Jmd0OyAmZ3Q7IGNhdXNlIGJ5IHRoZSB0aHJlYWQgb2Ygc3luYyBpbyB3YWtlcyB1cCBieSBvdGhl ciB0aHJlYWRzPGJyPiZndDsgJmd0OyBhbmQgcmV0dXJuIHRvIHJlbGlldmUgdGhlIGlvIGFkZHJl c3MsPGJyPiZndDsgJmd0OyA8YnI+Jmd0OyAmZ3Q7IFNpZ25lZC1vZmYtYnk6IE1pbmZlaSBIdWFu ZyAmbHQ7PGEgaHJlZj0ibWFpbHRvOmh1YW5nbWluZmVpQHVjbG91ZC5jbiI+aHVhbmdtaW5mZWlA dWNsb3VkLmNuPC9hPiZndDs8YnI+Jmd0OyAmZ3Q7IC0tLTxicj4mZ3Q7ICZndDsgJm5ic3A7ZHJp dmVycy9tZC9kbS1pby5jIHwgJm5ic3A7IDE5ICsrKysrKysrKysrKysrKy0tLS08YnI+Jmd0OyAm Z3Q7ICZuYnNwOzEgZmlsZXMgY2hhbmdlZCwgMTUgaW5zZXJ0aW9ucygrKSwgNCBkZWxldGlvbnMo LSk8YnI+Jmd0OyAmZ3Q7IDxicj4mZ3Q7ICZndDsgZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWQvZG0t aW8uYyBiL2RyaXZlcnMvbWQvZG0taW8uYzxicj4mZ3Q7ICZndDsgaW5kZXggMzg0MmFjNy4uZjk5 MjkxMyAxMDA2NDQ8YnI+Jmd0OyAmZ3Q7IC0tLSBhL2RyaXZlcnMvbWQvZG0taW8uYzxicj4mZ3Q7 ICZndDsgKysrIGIvZHJpdmVycy9tZC9kbS1pby5jPGJyPiZndDsgJmd0OyBAQCAtMzgsNiArMzgs NyBAQCBzdHJ1Y3QgaW8gezxicj4mZ3Q7ICZndDsgJm5ic3A7Jm5ic3A7ICZuYnNwOyB2b2lkICpj b250ZXh0Ozxicj4mZ3Q7ICZndDsgJm5ic3A7Jm5ic3A7ICZuYnNwOyB2b2lkICp2bWFfaW52YWxp ZGF0ZV9hZGRyZXNzOzxicj4mZ3Q7ICZndDsgJm5ic3A7Jm5ic3A7ICZuYnNwOyB1bnNpZ25lZCBs b25nIHZtYV9pbnZhbGlkYXRlX3NpemU7PGJyPiZndDsgJmd0OyArJm5ic3A7ICZuYnNwOyBhdG9t aWNfdCB3YWtldXA7PGJyPiZndDsgJmd0OyAmbmJzcDt9IF9fYXR0cmlidXRlX18oKGFsaWduZWQo RE1fSU9fTUFYX1JFR0lPTlMpKSk7PGJyPiZndDsgJmd0OyAmbmJzcDs8YnI+Jmd0OyAmZ3Q7ICZu YnNwO3N0YXRpYyBzdHJ1Y3Qga21lbV9jYWNoZSAqX2RtX2lvX2NhY2hlOzxicj4mZ3Q7ICZndDsg QEAgLTEyMSwxMCArMTIyLDE2IEBAIHN0YXRpYyB2b2lkIGRlY19jb3VudChzdHJ1Y3QgaW8gKmlv LCB1bnNpZ25lZCBpbnQgcmVnaW9uLCBpbnQgZXJyb3IpPGJyPiZndDsgJmd0OyAmbmJzcDsmbmJz cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyBpbnZhbGlkYXRlX2tlcm5lbF92 bWFwX3JhbmdlKGlvLSZndDt2bWFfaW52YWxpZGF0ZV9hZGRyZXNzLDxicj4mZ3Q7ICZndDsgJm5i c3A7Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDtpby0mZ3Q7 dm1hX2ludmFsaWRhdGVfc2l6ZSk7PGJyPiZndDsgJmd0OyAmbmJzcDs8YnI+Jmd0OyAmZ3Q7IC0m bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgaWYgKGlvLSZndDtzbGVlcGVyKTxicj4mZ3Q7ICZn dDsgLSZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7IHdha2VfdXBfcHJv Y2Vzcyhpby0mZ3Q7c2xlZXBlcik7PGJyPiZndDsgJmd0OyArJm5ic3A7ICZuYnNwOyAmbmJzcDsg Jm5ic3A7IGlmIChpby0mZ3Q7c2xlZXBlcikgezxicj4mZ3Q7ICZndDsgKyZuYnNwOyAmbmJzcDsg Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7IHN0cnVjdCB0YXNrX3N0cnVjdCAqc2xlZXBlciA9 IGlvLSZndDtzbGVlcGVyOzxicj4mZ3Q7ICZndDsgJm5ic3A7PGJyPiZndDsgJmd0OyAtJm5ic3A7 ICZuYnNwOyAmbmJzcDsgJm5ic3A7IGVsc2Ugezxicj4mZ3Q7ICZndDsgKyZuYnNwOyAmbmJzcDsg Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7IGF0b21pY19zZXQoJmFtcDtpby0mZ3Q7d2FrZXVw LCAxKTs8YnI+Jmd0OyA8YnI+Jmd0OyBUaGUgcHJvYmxlbSBoZXJlIGlzIHRoYXQgdGhlIHByb2Nl c3NvciBtYXkgcmVvcmRlciB0aGUgcmVhZCBvZiBpby0mZ3Q7c2xlZXBlciA8YnI+Jmd0OyB3aXRo IGF0b21pY19zZXQoJmFtcDtpby0mZ3Q7d2FrZXVwLCAxKTsgKHBlcmZvcm1pbmcgYXRvbWljX3Nl dCBmaXJzdCBhbmQgInNsZWVwZXIgPGJyPiZndDsgPSBpby0mZ3Q7c2xlZXBlciIgYWZ0ZXJ3YXJk cykgZXhwb3NpbmcgdGhlIHNhbWUgcmFjZSBjb25kaXRpb24uPGJyPiZndDsgPGJyPiZndDsgWW91 IG5lZWQgdG8gdXNlIG1lbW9yeSBiYXJyaWVycyB0byBhdm9pZCByZW9yZGVyaW5nLCBidXQgSSB0 aGluayB0aGUgPGJyPiZndDsgc29sdXRpb24gd2l0aCB0aGUgY29tcGxldGlvbiBpcyBiZXR0ZXIg KHRoZSBjb21wbGV0aW9uIHRha2VzIGNhcmUgb2YgPGJyPiZndDsgYmFycmllcnMgYXV0b21hdGlj YWxseSkuPGJyPiZndDsgPGJyPiZndDsgTWlrdWxhczxicj48YnI+QWxzbyAtIHRoZXJlIGlzIGFu b3RoZXIgcmFjZSAtIGFmdGVyIGF0b21pY19zZXQoJmFtcDtpby0mZ3Q7d2FrZXVwLCAxKSwgdGhl IDxicj50YXJnZXQgcHJvY2VzcyBtYXkgdGVybWluYXRlLCBzbyB3YWtlX3VwX3Byb2Nlc3Moc2xl ZXBlcikgb3BlcmF0ZXMgb24gPGJyPm5vbi1leGlzdGluZyBwcm9jZXNzLiBZb3UgbmVlZCB0byBk ZWNsYXJlIGEgc3BlY2lhbCB3YWl0IHF1ZXVlIG9yIHVzZSA8YnI+d2FpdF9vbl9hdG9taWNfdCt3 YWtlX3VwX2F0b21pY190ICh0aGF0IHVzZXMgdXNlcyBwcmUtaW5pdGlhbGl6ZWQgaGFzaCBvZiA8 YnI+d2FpdCBxdWV1ZXMpIHRvIGF2b2lkIHRoYXQgcmFjZS48YnI+PGJyPkJ1dCBhcyBJIHNhaWQg LSB0aGUgY29tcGxldGlvbiBhcHByb2FjaCBpcyBiZXR0ZXIuIEl0IGRvZXNuJ3Qgc3VmZmVyIGZy b20gPGJyPnRoZXNlIHByb2JsZW1zLjxicj48YnI+TWlrdWxhczxicj48YnI+Jmd0OyAmZ3Q7ICsv Kjxicj4mZ3Q7ICZndDsgKyAqIFRoZSB0aHJlYWQgbWF5IGJlIHdha2VkIHVwIGJ5IG90aGVyIHRo cmVhZHMsPGJyPiZndDsgJmd0OyArICogaWYgdGhlbiB0aGUgc3luYyBpbyBwb2ludCB3aWxsIGJl Y29tZSB0aGUgZGFuZ2xpbmcgcG9pbnRlcjxicj4mZ3Q7ICZndDsgKyAqLzxicj4mZ3Q7ICZndDsg KyZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7IHdha2VfdXBfcHJvY2Vz cyhzbGVlcGVyKTs8YnI+Jmd0OyAmZ3Q7ICsmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgfSBl bHNlIHs8YnI+Jmd0OyAmZ3Q7ICZuYnNwOyZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz cDsgJm5ic3A7IHVuc2lnbmVkIGxvbmcgciA9IGlvLSZndDtlcnJvcl9iaXRzOzxicj4mZ3Q7ICZn dDsgJm5ic3A7Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgaW9fbm90 aWZ5X2ZuIGZuID0gaW8tJmd0O2NhbGxiYWNrOzxicj4mZ3Q7ICZndDsgJm5ic3A7Jm5ic3A7ICZu YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgdm9pZCAqY29udGV4dCA9IGlvLSZndDtj b250ZXh0Ozxicj4mZ3Q7ICZndDsgQEAgLTQwMSwxMiArNDA4LDE0IEBAIHN0YXRpYyBpbnQgc3lu Y19pbyhzdHJ1Y3QgZG1faW9fY2xpZW50ICpjbGllbnQsIHVuc2lnbmVkIGludCBudW1fcmVnaW9u cyw8YnI+Jmd0OyAmZ3Q7ICZuYnNwOyZuYnNwOyAmbmJzcDsgaW8tJmd0O3ZtYV9pbnZhbGlkYXRl X2FkZHJlc3MgPSBkcC0mZ3Q7dm1hX2ludmFsaWRhdGVfYWRkcmVzczs8YnI+Jmd0OyAmZ3Q7ICZu YnNwOyZuYnNwOyAmbmJzcDsgaW8tJmd0O3ZtYV9pbnZhbGlkYXRlX3NpemUgPSBkcC0mZ3Q7dm1h X2ludmFsaWRhdGVfc2l6ZTs8YnI+Jmd0OyAmZ3Q7ICZuYnNwOzxicj4mZ3Q7ICZndDsgKyZuYnNw OyAmbmJzcDsgYXRvbWljX3NldCgmYW1wO2lvLSZndDt3YWtldXAsIDApOzxicj4mZ3Q7ICZndDsg Kzxicj4mZ3Q7ICZndDsgJm5ic3A7Jm5ic3A7ICZuYnNwOyBkaXNwYXRjaF9pbyhydywgbnVtX3Jl Z2lvbnMsIHdoZXJlLCBkcCwgaW8sIDEpOzxicj4mZ3Q7ICZndDsgJm5ic3A7PGJyPiZndDsgJmd0 OyAmbmJzcDsmbmJzcDsgJm5ic3A7IHdoaWxlICgxKSB7PGJyPiZndDsgJmd0OyAmbmJzcDsmbmJz cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgc2V0X2N1cnJlbnRfc3RhdGUoVEFTS19VTklOVEVSUlVQ VElCTEUpOzxicj4mZ3Q7ICZndDsgJm5ic3A7PGJyPiZndDsgJmd0OyAtJm5ic3A7ICZuYnNwOyAm bmJzcDsgJm5ic3A7IGlmICghYXRvbWljX3JlYWQoJmFtcDtpby0mZ3Q7Y291bnQpKTxicj4mZ3Q7 ICZndDsgKyZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyBpZiAoYXRvbWljX3JlYWQoJmFtcDtp by0mZ3Q7d2FrZXVwKSk8YnI+Jmd0OyAmZ3Q7ICZuYnNwOyZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu YnNwOyAmbmJzcDsgJm5ic3A7IGJyZWFrOzxicj4mZ3Q7ICZndDsgJm5ic3A7PGJyPiZndDsgJmd0 OyAmbmJzcDsmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgaW9fc2NoZWR1bGUoKTs8YnI+Jmd0 OyAmZ3Q7IEBAIC00NDIsNiArNDUxLDggQEAgc3RhdGljIGludCBhc3luY19pbyhzdHJ1Y3QgZG1f aW9fY2xpZW50ICpjbGllbnQsIHVuc2lnbmVkIGludCBudW1fcmVnaW9ucyw8YnI+Jmd0OyAmZ3Q7 ICZuYnNwOyZuYnNwOyAmbmJzcDsgaW8tJmd0O3ZtYV9pbnZhbGlkYXRlX2FkZHJlc3MgPSBkcC0m Z3Q7dm1hX2ludmFsaWRhdGVfYWRkcmVzczs8YnI+Jmd0OyAmZ3Q7ICZuYnNwOyZuYnNwOyAmbmJz cDsgaW8tJmd0O3ZtYV9pbnZhbGlkYXRlX3NpemUgPSBkcC0mZ3Q7dm1hX2ludmFsaWRhdGVfc2l6 ZTs8YnI+Jmd0OyAmZ3Q7ICZuYnNwOzxicj4mZ3Q7ICZndDsgKyZuYnNwOyAmbmJzcDsgYXRvbWlj X3NldCgmYW1wO2lvLSZndDt3YWtldXAsIDApOzxicj4mZ3Q7ICZndDsgKzxicj4mZ3Q7ICZndDsg Jm5ic3A7Jm5ic3A7ICZuYnNwOyBkaXNwYXRjaF9pbyhydywgbnVtX3JlZ2lvbnMsIHdoZXJlLCBk cCwgaW8sIDApOzxicj4mZ3Q7ICZndDsgJm5ic3A7Jm5ic3A7ICZuYnNwOyByZXR1cm4gMDs8YnI+ Jmd0OyAmZ3Q7ICZuYnNwO308YnI+Jmd0OyAmZ3Q7IC0tIDxicj4mZ3Q7ICZndDsgMS43LjE8YnI+ Jmd0OyAmZ3Q7IDxicj4mZ3Q7ICZndDsgPGJyPiZndDsgJmd0OyAtLTxicj4mZ3Q7ICZndDsgZG0t ZGV2ZWwgbWFpbGluZyBsaXN0PGJyPiZndDsgJmd0OyA8YSBocmVmPSJtYWlsdG86ZG0tZGV2ZWxA cmVkaGF0LmNvbSI+ZG0tZGV2ZWxAcmVkaGF0LmNvbTwvYT48YnI+Jmd0OyAmZ3Q7IGh0dHBzOi8v d3d3LnJlZGhhdC5jb20vbWFpbG1hbi9saXN0aW5mby9kbS1kZXZlbDxicj4mZ3Q7ICZndDsgPGJy PiZndDsgPGJyPjwvYmxvY2txdW90ZT4= ------=_Part_48187_1347888026.1403914758656-- --===============5951513664882367668== Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline --===============5951513664882367668==--