From: michael <mi...@mp...> - 2004-04-20 05:45:52
|
d29uZGVyZnVs77yBDQoNCmhvcGUgaXQgY2FuIG1lcmdlIGludG8gY3ZzIGFzIHNvb24gYXMgcG9z c2libGUNCg0KLS0tLS0gT3JpZ2luYWwgTWVzc2FnZSAtLS0tLSANCkZyb206ICJBbmR5IElnb3No aW4iIDxhaUB2c3UucnU+DQpUbzogPHJkZXNrdG9wLWRldmVsQGxpc3RzLnNvdXJjZWZvcmdlLm5l dD4NClNlbnQ6IFR1ZXNkYXksIEFwcmlsIDIwLCAyMDA0IDI6NDEgQU0NClN1YmplY3Q6IFJlOiBb cmRlc2t0b3AtZGV2ZWxdIFJlOiBhYm91dCBkcml2ZXIgbWFwcGluZyBwcm9ibGVtDQoNCg0KPiBI aSwgTWljaGFlbCENCj4gDQo+IEkgbWFkZSBzbWFsbCBjaGFuZ2VzIGZvciB5b3VyIHBhdGNoIGFu ZCBpbXBsZW1lbnQgYSBjb21tYW5kIGxpbmUga2V5DQo+IGZvciBzcGVjaWZ5aW5nIGEgY29kZXBh Z2UuIGZvciBleGFtcGxlOiByZGVza3RvcCAtUCBVVEYtOCAuLi4NCj4gDQo+IGFuZCBzbWFsbCBm aXhlcyBhYm91dCBnX3VzZXJuYW1lIHNpemUuDQo+IA0KPiBwYXRjaCBhdHRhY2hlZC4NCj4gDQo+ IA0KPiA+ID4gbWljaGFlbCB3cm90ZToNCj4gPiA+ID4NCj4gPiA+ID4gT0ssIEkgaGF2ZSB0aGUg ZGlmZiBpbiB0aGUgYXR0YWNobWVudCBvZiB0aGlzIGxldHRlci4NCj4gPiA+ID4NCj4gPiA+ID4g QnV0IHRoZSBzb3VyY2UgY29kZSBpcyBmb3IgY29udmVyc2lvbiBiZXR3ZWVuIGNoaW5lc2UgYW5k IGFzY2lpLA0KPiA+ID4gPg0KPiA+ID4gPiBJIHVzZSBpY29udiBmdW5jdGlvbiB0byBnZXQgaXQg dG8gd29yay4gSSBkb24ndCBrbm93IG11Y2ggYWJvdXQNCj4gPiA+ID4NCj4gPiA+ID4gbG9jYWxl IGZ1bmN0aW9ucywgc28gSSBjYW4ndCBjb2RlIGl0IG1vcmUgY29tbW9ubHkgZm9yIGF1dG9tYXRp Yw0KPiA+ID4gPg0KPiA+ID4gPiBjb252ZXJzaW9uIGJldHdlZW4gbGFuZ3VhZ2VzLCBUaG91Z2gg eW91IGNhbiBlYXNpbHkgZ2V0IGl0IHdvcmtlZA0KPiA+ID4gPg0KPiA+ID4gPiB3aXRoIHlvdXIg bG9jYWxlLCBJIHRoaW5rLg0KPiA+ID4gPg0KPiA+ID4gPiBJIGhvcGUgc29tZW9uZSB3aWxsIGdl dCBpdCBtb3JlIGNvbW1vbiBmb3IgYWxsIHVzZXJzLiBQZXJoYXBzDQo+ID4gPiA+DQo+ID4gPiA+ IHdlIGNhbiBhZGQgc29tZSBvcHRpb25zIGZvciBpdCwgdGh4IGZvciBhbGwgdGhlIHdvcmsgb2Yg cmRlc2t0b3ANCj4gPiA+ID4NCj4gPiA+ID4gZGV2ZWxvcGVycywgcmVhbGx5IQ0KPiANCj4gUmVn YXJkcywNCj4gDQo+IC0tIA0KPiBBbmR5IElnb3NoaW4gPGFpQHZzdS5ydT4gICAgICAgICAgICAg ICAgIFZvcm9uZXpoIFN0YXRlIFVuaXZlcnNpdHkNCj4gUGhvbmU6ICs3ICgwNzMyKSA1MjI0MDYg ICAgICAgICAgICAgICAgICBOZXR3b3JrIE9wZXJhdGlvbiBDZW50ZXINCj4gRmF4OiAgICs3ICgw NzMyKSAyMDg4MjAgICAgICAgICAgICAgICAgICBWb3JvbmV6aCwgUnVzc2lhDQoNCg0KLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0NCg0KDQo+IGRpZmYgLXVyIHJkZXNrdG9wL2xpY2VuY2UuYyByZGVz a3RvcC0xLjRwcmUvbGljZW5jZS5jDQo+IC0tLSByZGVza3RvcC9saWNlbmNlLmMgMjAwMy0wNy0y OSAwMTo0MToxMi4wMDAwMDAwMDAgKzA0MDANCj4gKysrIHJkZXNrdG9wLTEuNHByZS9saWNlbmNl LmMgMjAwNC0wNC0xOSAyMjowMTo1My4wMDAwMDAwMDAgKzA0MDANCj4gQEAgLTI2LDcgKzI2LDcg QEANCj4gICNpbmNsdWRlICJjcnlwdG8vcmM0LmgiDQo+ICAjZW5kaWYNCj4gIA0KPiAtZXh0ZXJu IGNoYXIgZ191c2VybmFtZVsxNl07DQo+ICtleHRlcm4gY2hhciBnX3VzZXJuYW1lWzY0XTsNCj4g IGV4dGVybiBjaGFyIGhvc3RuYW1lWzE2XTsNCj4gIA0KPiAgc3RhdGljIHVpbnQ4IGdfbGljZW5j ZV9rZXlbMTZdOw0KPiBkaWZmIC11ciByZGVza3RvcC9yZGVza3RvcC5jIHJkZXNrdG9wLTEuNHBy ZS9yZGVza3RvcC5jDQo+IC0tLSByZGVza3RvcC9yZGVza3RvcC5jIDIwMDQtMDQtMTYgMTI6MDY6 MTQuMDAwMDAwMDAwICswNDAwDQo+ICsrKyByZGVza3RvcC0xLjRwcmUvcmRlc2t0b3AuYyAyMDA0 LTA0LTE5IDIyOjI3OjM3LjAwMDAwMDAwMCArMDQwMA0KPiBAQCAtNDMsNiArNDMsNyBAQA0KPiAg DQo+ICBjaGFyIGdfdGl0bGVbNjRdID0gIiI7DQo+ICBjaGFyIGdfdXNlcm5hbWVbNjRdOw0KPiAr Y2hhciBnX2NvZGVwYWdlWzE2XSA9ICJVVEYtOCI7DQo+ICBjaGFyIGhvc3RuYW1lWzE2XTsNCj4g IGNoYXIga2V5bWFwbmFtZVsxNl07DQo+ICBpbnQga2V5bGF5b3V0ID0gMHg0MDk7IC8qIERlZmF1 bHRzIHRvIFVTIGtleWJvYXJkIGxheW91dCAqLw0KPiBAQCAtMTEyLDYgKzExMyw3IEBADQo+ICAg ZnByaW50ZihzdGRlcnIsICIgICAtZzogZGVza3RvcCBnZW9tZXRyeSAoV3hIKVxuIik7DQo+ICAg ZnByaW50ZihzdGRlcnIsICIgICAtZjogZnVsbC1zY3JlZW4gbW9kZVxuIik7DQo+ICAgZnByaW50 ZihzdGRlcnIsICIgICAtYjogZm9yY2UgYml0bWFwIHVwZGF0ZXNcbiIpOw0KPiArIGZwcmludGYo c3RkZXJyLCAiICAgLVA6IGxvY2FsIGNvZGVwYWdlXG4iKTsNCj4gICBmcHJpbnRmKHN0ZGVyciwg IiAgIC1COiB1c2UgQmFja2luZ1N0b3JlIG9mIFgtc2VydmVyIChpZiBhdmFpbGFibGUpXG4iKTsN Cj4gICBmcHJpbnRmKHN0ZGVyciwgIiAgIC1lOiBkaXNhYmxlIGVuY3J5cHRpb24gKEZyZW5jaCBU UylcbiIpOw0KPiAgIGZwcmludGYoc3RkZXJyLCAiICAgLUU6IGRpc2FibGUgZW5jcnlwdGlvbiBm cm9tIGNsaWVudCB0byBzZXJ2ZXJcbiIpOw0KPiBAQCAtMjY0LDcgKzI2Niw3IEBADQo+ICAjZGVm aW5lIFZOQ09QVA0KPiAgI2VuZGlmDQo+ICANCj4gLSB3aGlsZSAoKGMgPSBnZXRvcHQoYXJnYywg YXJndiwgVk5DT1BUICJ1OmQ6czpjOnA6bjprOmc6ZmJCZUVtQ0RLUzpUOk5YOmE6eDpyOjA0NWg/ IikpICE9IC0xKQ0KPiArIHdoaWxlICgoYyA9IGdldG9wdChhcmdjLCBhcmd2LCBWTkNPUFQgInU6 UDpkOnM6YzpwOm46azpnOmZiQmVFbUNES1M6VDpOWDphOng6cjowNDVoPyIpKSAhPSAtMSkNCj4g ICB7DQo+ICAgc3dpdGNoIChjKQ0KPiAgIHsNCj4gQEAgLTI4Nyw2ICsyODksMTAgQEANCj4gICB1 c2VybmFtZV9vcHRpb24gPSAxOw0KPiAgIGJyZWFrOw0KPiAgDQo+ICsgY2FzZSAnUCc6DQo+ICsg U1RSTkNQWShnX2NvZGVwYWdlLCBvcHRhcmcsIHNpemVvZihnX2NvZGVwYWdlKSk7DQo+ICsgYnJl YWs7DQo+ICsNCj4gICBjYXNlICdkJzoNCj4gICBTVFJOQ1BZKGRvbWFpbiwgb3B0YXJnLCBzaXpl b2YoZG9tYWluKSk7DQo+ICAgYnJlYWs7DQo+IGRpZmYgLXVyIHJkZXNrdG9wL3JkcC5jIHJkZXNr dG9wLTEuNHByZS9yZHAuYw0KPiAtLS0gcmRlc2t0b3AvcmRwLmMgMjAwNC0wNC0xNyAxMzo0ODox OS4wMDAwMDAwMDAgKzA0MDANCj4gKysrIHJkZXNrdG9wLTEuNHByZS9yZHAuYyAyMDA0LTA0LTE5 IDIyOjA0OjE3LjAwMDAwMDAwMCArMDQwMA0KPiBAQCAtMTksMTAgKzE5LDEzIEBADQo+ICAqLw0K PiAgDQo+ICAjaW5jbHVkZSA8dGltZS5oPg0KPiArI2luY2x1ZGUgPGVycm5vLmg+DQo+ICsjaW5j bHVkZSA8aWNvbnYuaD4NCj4gICNpbmNsdWRlICJyZGVza3RvcC5oIg0KPiAgDQo+ICBleHRlcm4g dWludDE2IGdfbWNzX3VzZXJpZDsNCj4gLWV4dGVybiBjaGFyIGdfdXNlcm5hbWVbMTZdOw0KPiAr ZXh0ZXJuIGNoYXIgZ191c2VybmFtZVs2NF07DQo+ICtleHRlcm4gY2hhciBnX2NvZGVwYWdlWzE2 XTsNCj4gIGV4dGVybiBCT09MIGdfYml0bWFwX2NvbXByZXNzaW9uOw0KPiAgZXh0ZXJuIEJPT0wg Z19vcmRlcnM7DQo+ICBleHRlcm4gQk9PTCBnX2VuY3J5cHRpb247DQo+IEBAIC0xMjAsMTcgKzEy MywyOCBAQA0KPiAgdm9pZA0KPiAgcmRwX291dF91bmlzdHIoU1RSRUFNIHMsIGNoYXIgKnN0cmlu ZywgaW50IGxlbikNCj4gIHsNCj4gLSBpbnQgaSA9IDAsIGogPSAwOw0KPiArIGljb252X3QgaWNv bnZfaDsNCj4gKyBzaXplX3QgaW5ieXRlc2xlZnQgPSBsZW4gLyAyLCBvdXRieXRlc2xlZnQgPSBs ZW4gKyAyOw0KPiArIGNoYXIgKnBvdXQsICpwaW47DQo+ICsgY2hhciAqYnVmID0gMDsNCj4gIA0K PiAtIGxlbiArPSAyOw0KPiArIHBvdXQgPSBidWYgPSBjYWxsb2MobGVuICsgNCwgMSk7DQo+ICsg cGluID0gc3RyaW5nOw0KPiAgDQo+IC0gd2hpbGUgKGkgPCBsZW4pDQo+ICsgaWYgKChpY29udl9o ID0gaWNvbnZfb3BlbigiVU5JQ09ERSIsIGdfY29kZXBhZ2UpKSA9PSAoaWNvbnZfdCktMSkNCj4g ICB7DQo+IC0gcy0+cFtpKytdID0gc3RyaW5nW2orK107DQo+IC0gcy0+cFtpKytdID0gMDsNCj4g KyBwcmludGYoImNvbnYgOiBpY29udl9vcGVuIGZhaWwgJWRcbiIsIChpbnQpaWNvbnZfaCk7DQo+ ICAgfQ0KPiArIGlmIChpY29udihpY29udl9oLCAmcGluLCAmaW5ieXRlc2xlZnQsICZwb3V0LCAm b3V0Ynl0ZXNsZWZ0KSA9PSAoc2l6ZV90KS0xKQ0KPiArIHsNCj4gKyBwcmludGYoImNvbnYgOiBp Y29udiBmYWlsLCBlcnJubyAlZFxuIiwgZXJybm8pOw0KPiArIH0NCj4gKyBpY29udl9jbG9zZShp Y29udl9oKTsNCj4gKw0KPiArIG1lbWNweShzLT5wLCBidWYgKyAyLCBsZW4gKyAyKTsNCj4gKyBm cmVlKGJ1Zik7DQo+ICANCj4gLSBzLT5wICs9IGxlbjsNCj4gKyBzLT5wICs9IGxlbiArIDI7DQo+ ICB9DQo+ICANCj4gIC8qIElucHV0IGEgc3RyaW5nIGluIFVuaWNvZGUNCj4gQEAgLTE0MCwxNyAr MTU0LDMxIEBADQo+ICBpbnQNCj4gIHJkcF9pbl91bmlzdHIoU1RSRUFNIHMsIGNoYXIgKnN0cmlu ZywgaW50IHVuaV9sZW4pDQo+ICB7DQo+IC0gaW50IGkgPSAwOw0KPiArIGljb252X3QgaWNvbnZf aDsNCj4gKyBzaXplX3QgaW5ieXRlc2xlZnQgPSB1bmlfbGVuLCBvdXRieXRlc2xlZnQgPSB1bmlf bGVuLCBsZW4gPSAwOw0KPiArIGNoYXIgKnBvdXQsICpwaW47DQo+ICsgY2hhciAqYnVmOw0KPiAr DQo+ICsgYnVmID0gY2FsbG9jKHVuaV9sZW4sIDEpOw0KPiArIG1lbWNweShidWYsIHMtPnAsIHVu aV9sZW4pOw0KPiArDQo+ICsgcGluID0gYnVmOw0KPiArIHBvdXQgPSBzdHJpbmc7DQo+ICANCj4g LSB3aGlsZSAoaSA8IHVuaV9sZW4gLyAyKQ0KPiArIGlmICgoaWNvbnZfaCA9IGljb252X29wZW4o Z19jb2RlcGFnZSwgIlVOSUNPREUiKSkgPT0gKGljb252X3QpLTEpDQo+ICAgew0KPiAtIGluX3Vp bnQ4YShzLCAmc3RyaW5nW2krK10sIDEpOw0KPiAtIGluX3VpbnQ4cyhzLCAxKTsNCj4gKyBwcmlu dGYoImNvbnYgOiBpY29udl9vcGVuIGZhaWwgJWRcbiIsIChpbnQpaWNvbnZfaCk7DQo+ICAgfQ0K PiArIGlmICgobGVuID0gaWNvbnYoaWNvbnZfaCwgJnBpbiwgJmluYnl0ZXNsZWZ0LCAmcG91dCwg Jm91dGJ5dGVzbGVmdCkpID09IChzaXplX3QpLTEpDQo+ICsgew0KPiArIHByaW50ZigiY29udiA6 IGljb252IGZhaWwsIGVycm5vICVkXG4iLCBlcnJubyk7DQo+ICsgfQ0KPiArIGljb252X2Nsb3Nl KGljb252X2gpOw0KPiAgDQo+IC0gcmV0dXJuIGkgLSAxOw0KPiAtfQ0KPiArIGZyZWUoYnVmKTsN Cj4gIA0KPiArIHJldHVybiB1bmlfbGVuIC0gb3V0Ynl0ZXNsZWZ0IC0gMTsNCj4gK30NCj4gIA0K PiAgLyogUGFyc2UgYSBsb2dvbiBpbmZvIHBhY2tldCAqLw0KPiAgc3RhdGljIHZvaWQNCj4g |