From: michael <mi...@mp...> - 2004-04-21 10:38:01
|
cmVhbGx5IGdvb2TvvIENCg0KYnV0IG9uIG15IHBsYXRmb3JtLCBieSBubF9sYW5naW5mbyBpdCBn ZXRzIEdCMjMxMi0xOTgwLCBhbmQgaXQgY2FuJ3QgDQoNCmJlIHJlY29nbml6ZWQgYnkgaWNvbnYs IGljb252IG9ubHkgc3VwcG9ydCBHYjIzMTIsIGRvIHlvdSBtZWV0IA0KDQpwcm9ibGVtIGxpa2Ug dGhpcz8NCg0KLS0tLS0gT3JpZ2luYWwgTWVzc2FnZSAtLS0tLSANCkZyb206ICJBbmR5IElnb3No aW4iIDxhaUB2c3UucnU+DQpUbzogPHJkZXNrdG9wLWRldmVsQGxpc3RzLnNvdXJjZWZvcmdlLm5l dD4NClNlbnQ6IFR1ZXNkYXksIEFwcmlsIDIwLCAyMDA0IDEwOjQ4IFBNDQpTdWJqZWN0OiBSZTog W3JkZXNrdG9wLWRldmVsXSBSZTogYWJvdXQgZHJpdmVyIG1hcHBpbmcgcHJvYmxlbQ0KDQoNCj4g UmVzZW5kaW5nIGFnYWluLCB0aGlzIHRpbWUgd2l0aCBhdXRvbWF0aWMgZGV0ZXJtaW5hdGlvbiBv ZiB0aGUgY29kZXBhZ2UuDQo+IA0KPiBwYXRjaCBhdHRhY2hlZC4NCj4gDQo+IEFuZHkgSWdvc2hp biB3cm90ZToNCj4gPiANCj4gPiBIaSwgTWljaGFlbCENCj4gPiANCj4gPiBJIG1hZGUgc21hbGwg Y2hhbmdlcyBmb3IgeW91ciBwYXRjaCBhbmQgaW1wbGVtZW50IGEgY29tbWFuZCBsaW5lIGtleQ0K PiA+IGZvciBzcGVjaWZ5aW5nIGEgY29kZXBhZ2UuIGZvciBleGFtcGxlOiByZGVza3RvcCAtUCBV VEYtOCAuLi4NCj4gPiANCj4gPiBhbmQgc21hbGwgZml4ZXMgYWJvdXQgZ191c2VybmFtZSBzaXpl Lg0KPiA+IA0KPiA+IHBhdGNoIGF0dGFjaGVkLg0KPiA+IA0KPiA+ID4gPiBtaWNoYWVsIHdyb3Rl Og0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gT0ssIEkgaGF2ZSB0aGUgZGlmZiBpbiB0aGUgYXR0YWNo bWVudCBvZiB0aGlzIGxldHRlci4NCj4gPiA+ID4gPg0KPiA+ID4gPiA+IEJ1dCB0aGUgc291cmNl IGNvZGUgaXMgZm9yIGNvbnZlcnNpb24gYmV0d2VlbiBjaGluZXNlIGFuZCBhc2NpaSwNCj4gPiA+ ID4gPg0KPiA+ID4gPiA+IEkgdXNlIGljb252IGZ1bmN0aW9uIHRvIGdldCBpdCB0byB3b3JrLiBJ IGRvbid0IGtub3cgbXVjaCBhYm91dA0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gbG9jYWxlIGZ1bmN0 aW9ucywgc28gSSBjYW4ndCBjb2RlIGl0IG1vcmUgY29tbW9ubHkgZm9yIGF1dG9tYXRpYw0KPiA+ ID4gPiA+DQo+ID4gPiA+ID4gY29udmVyc2lvbiBiZXR3ZWVuIGxhbmd1YWdlcywgVGhvdWdoIHlv dSBjYW4gZWFzaWx5IGdldCBpdCB3b3JrZWQNCj4gPiA+ID4gPg0KPiA+ID4gPiA+IHdpdGggeW91 ciBsb2NhbGUsIEkgdGhpbmsuDQo+ID4gPiA+ID4NCj4gPiA+ID4gPiBJIGhvcGUgc29tZW9uZSB3 aWxsIGdldCBpdCBtb3JlIGNvbW1vbiBmb3IgYWxsIHVzZXJzLiBQZXJoYXBzDQo+ID4gPiA+ID4N Cj4gPiA+ID4gPiB3ZSBjYW4gYWRkIHNvbWUgb3B0aW9ucyBmb3IgaXQsIHRoeCBmb3IgYWxsIHRo ZSB3b3JrIG9mIHJkZXNrdG9wDQo+ID4gPiA+ID4NCj4gPiA+ID4gPiBkZXZlbG9wZXJzLCByZWFs bHkhDQo+IA0KPiANCj4gDQo+IC0tIA0KPiBBbmR5IElnb3NoaW4gPGFpQHZzdS5ydT4gICAgICAg ICAgICAgICAgIFZvcm9uZXpoIFN0YXRlIFVuaXZlcnNpdHkNCj4gUGhvbmU6ICs3ICgwNzMyKSA1 MjI0MDYgICAgICAgICAgICAgICAgICBOZXR3b3JrIE9wZXJhdGlvbiBDZW50ZXINCj4gRmF4OiAg ICs3ICgwNzMyKSAyMDg4MjAgICAgICAgICAgICAgICAgICBWb3JvbmV6aCwgUnVzc2lhDQoNCg0K LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCg0KDQo+IGRpZmYgLXVyIHJkZXNrdG9wL2NvbnN0YW50 cy5oIHJkZXNrdG9wLTEuNHByZS9jb25zdGFudHMuaA0KPiAtLS0gcmRlc2t0b3AvY29uc3RhbnRz LmggMjAwNC0wNC0yMCAxNzo0OTo1MC4wMDAwMDAwMDAgKzA0MDANCj4gKysrIHJkZXNrdG9wLTEu NHByZS9jb25zdGFudHMuaCAyMDA0LTA0LTIwIDE4OjE2OjA5LjAwMDAwMDAwMCArMDQwMA0KPiBA QCAtMjEsNiArMjEsOCBAQA0KPiAgLyogVENQIHBvcnQgZm9yIFJlbW90ZSBEZXNrdG9wIFByb3Rv Y29sICovDQo+ICAjZGVmaW5lIFRDUF9QT1JUX1JEUCAzMzg5DQo+ICANCj4gKyNkZWZpbmUgREVG QVVMVF9DT0RFUEFHRSAiVVRGLTgiDQo+ICsNCj4gIC8qIElTTyBQRFUgY29kZXMgKi8NCj4gIGVu dW0gSVNPX1BEVV9DT0RFDQo+ICB7DQo+IGRpZmYgLXVyIHJkZXNrdG9wL2xpY2VuY2UuYyByZGVz a3RvcC0xLjRwcmUvbGljZW5jZS5jDQo+IC0tLSByZGVza3RvcC9saWNlbmNlLmMgMjAwMy0wNy0y OSAwMTo0MToxMi4wMDAwMDAwMDAgKzA0MDANCj4gKysrIHJkZXNrdG9wLTEuNHByZS9saWNlbmNl LmMgMjAwNC0wNC0yMCAxNzo1NTozMi4wMDAwMDAwMDAgKzA0MDANCj4gQEAgLTI2LDcgKzI2LDcg QEANCj4gICNpbmNsdWRlICJjcnlwdG8vcmM0LmgiDQo+ICAjZW5kaWYNCj4gIA0KPiAtZXh0ZXJu IGNoYXIgZ191c2VybmFtZVsxNl07DQo+ICtleHRlcm4gY2hhciBnX3VzZXJuYW1lWzY0XTsNCj4g IGV4dGVybiBjaGFyIGhvc3RuYW1lWzE2XTsNCj4gIA0KPiAgc3RhdGljIHVpbnQ4IGdfbGljZW5j ZV9rZXlbMTZdOw0KPiBkaWZmIC11ciByZGVza3RvcC9yZGVza3RvcC5jIHJkZXNrdG9wLTEuNHBy ZS9yZGVza3RvcC5jDQo+IC0tLSByZGVza3RvcC9yZGVza3RvcC5jIDIwMDQtMDQtMjAgMTc6NDk6 NTAuMDAwMDAwMDAwICswNDAwDQo+ICsrKyByZGVza3RvcC0xLjRwcmUvcmRlc2t0b3AuYyAyMDA0 LTA0LTIwIDE4OjE2OjQxLjAwMDAwMDAwMCArMDQwMA0KPiBAQCAtMjgsNiArMjgsOCBAQA0KPiAg I2luY2x1ZGUgPHN5cy90aW1lcy5oPiAvKiB0aW1lcyAqLw0KPiAgI2luY2x1ZGUgPGN0eXBlLmg+ IC8qIHRvdXBwZXIgKi8NCj4gICNpbmNsdWRlIDxlcnJuby5oPg0KPiArI2luY2x1ZGUgPGxvY2Fs ZS5oPg0KPiArI2luY2x1ZGUgPGxhbmdpbmZvLmg+DQo+ICAjaW5jbHVkZSAicmRlc2t0b3AuaCIN Cj4gIA0KPiAgI2lmZGVmIEVHRF9TT0NLRVQNCj4gQEAgLTQzLDYgKzQ1LDcgQEANCj4gIA0KPiAg Y2hhciBnX3RpdGxlWzY0XSA9ICIiOw0KPiAgY2hhciBnX3VzZXJuYW1lWzY0XTsNCj4gK2NoYXIg Z19jb2RlcGFnZVsxNl0gPSAiIjsNCj4gIGNoYXIgaG9zdG5hbWVbMTZdOw0KPiAgY2hhciBrZXlt YXBuYW1lWzE2XTsNCj4gIGludCBrZXlsYXlvdXQgPSAweDQwOTsgLyogRGVmYXVsdHMgdG8gVVMg a2V5Ym9hcmQgbGF5b3V0ICovDQo+IEBAIC0xMTIsNiArMTE1LDcgQEANCj4gICBmcHJpbnRmKHN0 ZGVyciwgIiAgIC1nOiBkZXNrdG9wIGdlb21ldHJ5IChXeEgpXG4iKTsNCj4gICBmcHJpbnRmKHN0 ZGVyciwgIiAgIC1mOiBmdWxsLXNjcmVlbiBtb2RlXG4iKTsNCj4gICBmcHJpbnRmKHN0ZGVyciwg IiAgIC1iOiBmb3JjZSBiaXRtYXAgdXBkYXRlc1xuIik7DQo+ICsgZnByaW50ZihzdGRlcnIsICIg ICAtUDogbG9jYWwgY29kZXBhZ2VcbiIpOw0KPiAgIGZwcmludGYoc3RkZXJyLCAiICAgLUI6IHVz ZSBCYWNraW5nU3RvcmUgb2YgWC1zZXJ2ZXIgKGlmIGF2YWlsYWJsZSlcbiIpOw0KPiAgIGZwcmlu dGYoc3RkZXJyLCAiICAgLWU6IGRpc2FibGUgZW5jcnlwdGlvbiAoRnJlbmNoIFRTKVxuIik7DQo+ ICAgZnByaW50ZihzdGRlcnIsICIgICAtRTogZGlzYWJsZSBlbmNyeXB0aW9uIGZyb20gY2xpZW50 IHRvIHNlcnZlclxuIik7DQo+IEBAIC0zNjQsNyArMzY4LDcgQEANCj4gICNkZWZpbmUgVk5DT1BU DQo+ICAjZW5kaWYNCj4gIA0KPiAtIHdoaWxlICgoYyA9IGdldG9wdChhcmdjLCBhcmd2LCBWTkNP UFQgInU6ZDpzOmM6cDpuOms6ZzpmYkJlRW1DREtTOlQ6Tlg6YTp4OnI6MDQ1aD8iKSkgIT0gLTEp DQo+ICsgd2hpbGUgKChjID0gZ2V0b3B0KGFyZ2MsIGFyZ3YsIFZOQ09QVCAidTpQOmQ6czpjOnA6 bjprOmc6ZmJCZUVtQ0RLUzpUOk5YOmE6eDpyOjA0NWg/IikpICE9IC0xKQ0KPiAgIHsNCj4gICBz d2l0Y2ggKGMpDQo+ICAgew0KPiBAQCAtMzg3LDYgKzM5MSwxMCBAQA0KPiAgIHVzZXJuYW1lX29w dGlvbiA9IDE7DQo+ICAgYnJlYWs7DQo+ICANCj4gKyBjYXNlICdQJzoNCj4gKyBTVFJOQ1BZKGdf Y29kZXBhZ2UsIG9wdGFyZywgc2l6ZW9mKGdfY29kZXBhZ2UpKTsNCj4gKyBicmVhazsNCj4gKw0K PiAgIGNhc2UgJ2QnOg0KPiAgIFNUUk5DUFkoZG9tYWluLCBvcHRhcmcsIHNpemVvZihkb21haW4p KTsNCj4gICBicmVhazsNCj4gQEAgLTY1Miw2ICs2NjAsMTggQEANCj4gICBTVFJOQ1BZKGdfdXNl cm5hbWUsIHB3LT5wd19uYW1lLCBzaXplb2YoZ191c2VybmFtZSkpOw0KPiAgIH0NCj4gIA0KPiAr IGlmIChnX2NvZGVwYWdlWzBdID09IDApDQo+ICsgew0KPiArIGlmIChzZXRsb2NhbGUoTENfQ1RZ UEUsICIiKSkNCj4gKyB7DQo+ICsgU1RSTkNQWShnX2NvZGVwYWdlLCBubF9sYW5naW5mbyhDT0RF U0VUKSwgc2l6ZW9mKGdfY29kZXBhZ2UpKTsNCj4gKyB9DQo+ICsgZWxzZQ0KPiArIHsNCj4gKyBT VFJOQ1BZKGdfY29kZXBhZ2UsIERFRkFVTFRfQ09ERVBBR0UsIHNpemVvZihnX2NvZGVwYWdlKSk7 DQo+ICsgfQ0KPiArIH0NCj4gKw0KPiAgIGlmIChob3N0bmFtZVswXSA9PSAwKQ0KPiAgIHsNCj4g ICBpZiAoZ2V0aG9zdG5hbWUoZnVsbGhvc3RuYW1lLCBzaXplb2YoZnVsbGhvc3RuYW1lKSkgPT0g LTEpDQo+IGRpZmYgLXVyIHJkZXNrdG9wL3JkcC5jIHJkZXNrdG9wLTEuNHByZS9yZHAuYw0KPiAt LS0gcmRlc2t0b3AvcmRwLmMgMjAwNC0wNC0yMCAxNzo0OTo1MC4wMDAwMDAwMDAgKzA0MDANCj4g KysrIHJkZXNrdG9wLTEuNHByZS9yZHAuYyAyMDA0LTA0LTIwIDE3OjU1OjMyLjAwMDAwMDAwMCAr MDQwMA0KPiBAQCAtMTksMTAgKzE5LDEzIEBADQo+ICAqLw0KPiAgDQo+ICAjaW5jbHVkZSA8dGlt ZS5oPg0KPiArI2luY2x1ZGUgPGVycm5vLmg+DQo+ICsjaW5jbHVkZSA8aWNvbnYuaD4NCj4gICNp bmNsdWRlICJyZGVza3RvcC5oIg0KPiAgDQo+ICBleHRlcm4gdWludDE2IGdfbWNzX3VzZXJpZDsN Cj4gLWV4dGVybiBjaGFyIGdfdXNlcm5hbWVbMTZdOw0KPiArZXh0ZXJuIGNoYXIgZ191c2VybmFt ZVs2NF07DQo+ICtleHRlcm4gY2hhciBnX2NvZGVwYWdlWzE2XTsNCj4gIGV4dGVybiBCT09MIGdf Yml0bWFwX2NvbXByZXNzaW9uOw0KPiAgZXh0ZXJuIEJPT0wgZ19vcmRlcnM7DQo+ICBleHRlcm4g Qk9PTCBnX2VuY3J5cHRpb247DQo+IEBAIC0xMjAsMTcgKzEyMywyOCBAQA0KPiAgdm9pZA0KPiAg cmRwX291dF91bmlzdHIoU1RSRUFNIHMsIGNoYXIgKnN0cmluZywgaW50IGxlbikNCj4gIHsNCj4g LSBpbnQgaSA9IDAsIGogPSAwOw0KPiArIGljb252X3QgaWNvbnZfaDsNCj4gKyBzaXplX3QgaW5i eXRlc2xlZnQgPSBsZW4gLyAyLCBvdXRieXRlc2xlZnQgPSBsZW4gKyAyOw0KPiArIGNoYXIgKnBv dXQsICpwaW47DQo+ICsgY2hhciAqYnVmID0gMDsNCj4gIA0KPiAtIGxlbiArPSAyOw0KPiArIHBv dXQgPSBidWYgPSBjYWxsb2MobGVuICsgNCwgMSk7DQo+ICsgcGluID0gc3RyaW5nOw0KPiAgDQo+ IC0gd2hpbGUgKGkgPCBsZW4pDQo+ICsgaWYgKChpY29udl9oID0gaWNvbnZfb3BlbigiVU5JQ09E RSIsIGdfY29kZXBhZ2UpKSA9PSAoaWNvbnZfdCktMSkNCj4gICB7DQo+IC0gcy0+cFtpKytdID0g c3RyaW5nW2orK107DQo+IC0gcy0+cFtpKytdID0gMDsNCj4gKyBwcmludGYoImNvbnYgOiBpY29u dl9vcGVuIGZhaWwgJWRcbiIsIChpbnQpaWNvbnZfaCk7DQo+ICAgfQ0KPiArIGlmIChpY29udihp Y29udl9oLCAmcGluLCAmaW5ieXRlc2xlZnQsICZwb3V0LCAmb3V0Ynl0ZXNsZWZ0KSA9PSAoc2l6 ZV90KS0xKQ0KPiArIHsNCj4gKyBwcmludGYoImNvbnYgOiBpY29udiBmYWlsLCBlcnJubyAlZFxu IiwgZXJybm8pOw0KPiArIH0NCj4gKyBpY29udl9jbG9zZShpY29udl9oKTsNCj4gKw0KPiArIG1l bWNweShzLT5wLCBidWYgKyAyLCBsZW4gKyAyKTsNCj4gKyBmcmVlKGJ1Zik7DQo+ICANCj4gLSBz LT5wICs9IGxlbjsNCj4gKyBzLT5wICs9IGxlbiArIDI7DQo+ICB9DQo+ICANCj4gIC8qIElucHV0 IGEgc3RyaW5nIGluIFVuaWNvZGUNCj4gQEAgLTE0MCwxNyArMTU0LDMxIEBADQo+ICBpbnQNCj4g IHJkcF9pbl91bmlzdHIoU1RSRUFNIHMsIGNoYXIgKnN0cmluZywgaW50IHVuaV9sZW4pDQo+ICB7 DQo+IC0gaW50IGkgPSAwOw0KPiArIGljb252X3QgaWNvbnZfaDsNCj4gKyBzaXplX3QgaW5ieXRl c2xlZnQgPSB1bmlfbGVuLCBvdXRieXRlc2xlZnQgPSB1bmlfbGVuLCBsZW4gPSAwOw0KPiArIGNo YXIgKnBvdXQsICpwaW47DQo+ICsgY2hhciAqYnVmOw0KPiArDQo+ICsgYnVmID0gY2FsbG9jKHVu aV9sZW4sIDEpOw0KPiArIG1lbWNweShidWYsIHMtPnAsIHVuaV9sZW4pOw0KPiArDQo+ICsgcGlu ID0gYnVmOw0KPiArIHBvdXQgPSBzdHJpbmc7DQo+ICANCj4gLSB3aGlsZSAoaSA8IHVuaV9sZW4g LyAyKQ0KPiArIGlmICgoaWNvbnZfaCA9IGljb252X29wZW4oZ19jb2RlcGFnZSwgIlVOSUNPREUi KSkgPT0gKGljb252X3QpLTEpDQo+ICAgew0KPiAtIGluX3VpbnQ4YShzLCAmc3RyaW5nW2krK10s IDEpOw0KPiAtIGluX3VpbnQ4cyhzLCAxKTsNCj4gKyBwcmludGYoImNvbnYgOiBpY29udl9vcGVu IGZhaWwgJWRcbiIsIChpbnQpaWNvbnZfaCk7DQo+ICAgfQ0KPiArIGlmICgobGVuID0gaWNvbnYo aWNvbnZfaCwgJnBpbiwgJmluYnl0ZXNsZWZ0LCAmcG91dCwgJm91dGJ5dGVzbGVmdCkpID09IChz aXplX3QpLTEpDQo+ICsgew0KPiArIHByaW50ZigiY29udiA6IGljb252IGZhaWwsIGVycm5vICVk XG4iLCBlcnJubyk7DQo+ICsgfQ0KPiArIGljb252X2Nsb3NlKGljb252X2gpOw0KPiAgDQo+IC0g cmV0dXJuIGkgLSAxOw0KPiAtfQ0KPiArIGZyZWUoYnVmKTsNCj4gIA0KPiArIHJldHVybiB1bmlf bGVuIC0gb3V0Ynl0ZXNsZWZ0IC0gMTsNCj4gK30NCj4gIA0KPiAgLyogUGFyc2UgYSBsb2dvbiBp bmZvIHBhY2tldCAqLw0KPiAgc3RhdGljIHZvaWQNCj4g |