From owner-freebsd-ports Wed Nov 14 5:12:59 2001 Delivered-To: freebsd-ports@freebsd.org Received: from mail.siol.net (odin.siol.net [193.189.160.10]) by hub.freebsd.org (Postfix) with ESMTP id E977D37B416; Wed, 14 Nov 2001 05:12:21 -0800 (PST) Received: from [213.250.17.67] by mail.siol.net (InterMail vK.4.02.00.10 201-232-116-110 license 3b7ff800a4377eede9efc7be81e8a7c4) with ESMTP id <20011114131214.LGVD2093.mail@[213.250.17.67]>; Wed, 14 Nov 2001 14:12:14 +0100 Date: Wed, 14 Nov 2001 14:12:14 +0100 From: Uros Gruber X-Mailer: The Bat! (v1.53d) Reply-To: Uros Gruber Organization: Slovenska Internet Revija X-Priority: 3 (Normal) Message-ID: <22498429954.20011114141214@sir-mag.com> To: dwcjr@FreeBSD.org Cc: ports@FreeBSD.org Subject: FreeBSD Port: postfix-current MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="----------751ED1A5320277C1" Sender: owner-freebsd-ports@FreeBSD.ORG Precedence: bulk List-ID: List-Archive: (Web Archive) List-Help: (List Instructions) List-Subscribe: List-Unsubscribe: X-Loop: FreeBSD.org ------------751ED1A5320277C1 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Hi, I have some patches for you. Can you please update port and upgrade postfix on 20011105. I attach patches and i checked but there are some files wich does not exist. And i don't know how to make patch to automaticali create this missing file. 1 patch in separated by files. This is pgsql addon. And anothes is maildir and mailbox virtual quota patch. Please notify me when you will do this. -- by , Uros mailto:uros.gruber@sir-mag.com ------------751ED1A5320277C1 Content-Type: application/octet-stream; name="dict_open.c.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="dict_open.c.patch" LS0tIHNuYXBzaG90LTIwMDExMTA1L3NyYy91dGlsL2RpY3Rfb3Blbi5jCUZyaSBOb3YgIDIgMTY6 Mjg6MDQgMjAwMQorKysgc25hcHNob3QtMjAwMTExMDVvbGQvc3JjL3V0aWwvZGljdF9vcGVuLmMJ V2VkIE5vdiAxNCAxMjozNjozOCAyMDAxCkBAIC0xNjYsNiArMTY2LDcgQEAKICNpbmNsdWRlIDxk aWN0X25pLmg+CiAjaW5jbHVkZSA8ZGljdF9sZGFwLmg+CiAjaW5jbHVkZSA8ZGljdF9teXNxbC5o PgorI2luY2x1ZGUgPGRpY3RfcGdzcWwuaD4KICNpbmNsdWRlIDxkaWN0X3BjcmUuaD4KICNpbmNs dWRlIDxkaWN0X3JlZ2V4cC5oPgogI2luY2x1ZGUgPHN0cmluZ29wcy5oPgpAQCAtMjA3LDYgKzIw OCw5IEBACiAjZW5kaWYKICNpZmRlZiBIQVNfTVlTUUwKICAgICBESUNUX1RZUEVfTVlTUUwsIGRp Y3RfbXlzcWxfb3BlbiwKKyNlbmRpZgorI2lmZGVmIEhBU19QR1NRTAorICAgIERJQ1RfVFlQRV9Q R1NRTCwgZGljdF9wZ3NxbF9vcGVuLAogI2VuZGlmCiAjaWZkZWYgSEFTX1BDUkUKICAgICBESUNU X1RZUEVfUENSRSwgZGljdF9wY3JlX29wZW4sCg== ------------751ED1A5320277C1 Content-Type: application/octet-stream; name="dict_pgsql.c.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="dict_pgsql.c.patch" LS0tIHNuYXBzaG90LTIwMDExMTA1L3NyYy91dGlsL2RpY3RfcGdzcWwuYwlXZWQgTm92IDE0IDEz OjAyOjE2IDIwMDEKKysrIHNuYXBzaG90LTIwMDExMTA1b2xkL3NyYy91dGlsL2RpY3RfcGdzcWwu YwlXZWQgTm92IDE0IDEyOjMwOjMzIDIwMDEKQEAgLTEgKzEsNTk2IEBACi0KKy8qKysNCisvKiBO QU1FDQorLyoJZGljdF9wZ3NxbCAzDQorLyogU1VNTUFSWQ0KKy8qCWRpY3Rpb25hcnkgbWFuYWdl ciBpbnRlcmZhY2UgdG8gZGIgZmlsZXMNCisvKiBTWU5PUFNJUw0KKy8qCSNpbmNsdWRlIDxkaWN0 Lmg+DQorLyoJI2luY2x1ZGUgPGRpY3RfcGdzcWwuaD4NCisvKg0KKy8qCURJQ1QJKmRpY3RfcGdz cWxfb3BlbihuYW1lLCBkdW1teSwgdW51c2VkX2RpY3RfZmxhZ3MpDQorLyoJY29uc3QgY2hhcgkq bmFtZTsNCisvKglpbnQgICAgIGR1bW15Ow0KKy8qCWludCAgICAgdW51c2VkX2RpY3RfZmxhZ3M7 DQorLyogREVTQ1JJUFRJT04NCisvKglkaWN0X3Bnc3FsX29wZW4oKSBjcmVhdGVzIGEgZGljdGlv bmFyeSBvZiB0eXBlICdwZ3NxbCcuICBUaGlzDQorLyoJZGljdGlvbmFyeSBpcyBhbiBpbnRlcmZh Y2UgZm9yIHRoZSBwb3N0Zml4IGtleS0+dmFsdWUgbWFwcGluZ3MNCisvKgl0byBwZ3NxbC4gIFRo ZSByZXN1bHQgaXMgYSBwb2ludGVyIHRvIHRoZSBpbnN0YWxsZWQgZGljdGlvbmFyeSwNCisvKglv ciBhIG51bGwgcG9pbnRlciBpbiBjYXNlIG9mIHByb2JsZW1zLg0KKy8qDQorLyoJVGhlIHBnc3Fs IGRpY3Rpb25hcnkgY2FuIG1hbmFnZSBtdWx0aXBsZSBjb25uZWN0aW9ucyB0byBkaWZmZXJlbnQN CisvKglzcWwgc2VydmVycyBvbiBkaWZmZXJlbnQgaG9zdHMuICBJdCBhc3N1bWVzIHRoYXQgdGhl IHVuZGVybHlpbmcgZGF0YQ0KKy8qCW9uIGVhY2ggaG9zdCBpcyBpZGVudGljYWwgKG1pcnJvcmVk KSBhbmQgbWFpbnRhaW5zIG9uZSBjb25uZWN0aW9uDQorLyoJYXQgYW55IGdpdmVuIHRpbWUuICBJ ZiBhbnkgY29ubmVjdGlvbiBmYWlscywgIGFueSBvdGhlciBhdmFpbGFibGUNCisvKglvbmVzIHdp bGwgYmUgb3BlbmVkIGFuZCB1c2VkLiAgVGhlIGludGVudCBvZiB0aGlzIGZlYXR1cmUgaXMgdG8g ZWxpbWluYXRlDQorLyoJYSBzaW5nbGUgcG9pbnQgb2YgZmFpbHVyZSBmb3IgbWFpbCBzeXN0ZW1z IHRoYXQgd291bGQgb3RoZXJ3aXNlIHJlbHkNCisvKglvbiBhIHNpbmdsZSBwZ3NxbCBzZXJ2ZXIu DQorLyoNCisvKglBcmd1bWVudHM6DQorLyogLklQIG5hbWUNCisvKglUaGUgcGF0aCBvZiB0aGUg UG9zdGdyZVNRTCBjb25maWd1cmF0aW9uIGZpbGUuICBUaGUgZmlsZSBlbmNvZGVzIGEgbnVtYmVy IG9mDQorLyoJcGllY2VzIG9mIGluZm9ybWF0aW9uOiB1c2VybmFtZSwgcGFzc3dvcmQsIGRhdGFi YXNlbmFtZSwgdGFibGUsDQorLyoJc2VsZWN0X2ZpZWxkLCB3aGVyZV9maWVsZCwgYW5kIGhvc3Rz LiAgRm9yIGV4YW1wbGUsIGlmIHlvdSB3YW50IHRoZSBtYXAgdG8NCisvKglyZWZlcmVuY2UgZGF0 YWJhc2VzIG9mIHRoZSBuYW1lICJ5b3VyX2RiIiBhbmQgZXhlY3V0ZSBhIHF1ZXJ5IGxpa2UgdGhp czoNCisvKglzZWxlY3QgZm9yd19hZGRyIGZyb20gYWxpYXNlcyB3aGVyZSBhbGlhcyBsaWtlICc8 c29tZSB1c2VybmFtZT4nIGFnYWluc3QNCisvKglhbnkgZGF0YWJhc2UgY2FsbGVkICJ2bWFpbGVy X2luZm8iIGxvY2F0ZWQgb24gaG9zdHMgaG9zdDEuc29tZS5kb21haW4gYW5kDQorLyoJaG9zdDIu c29tZS5kb21haW4sIGxvZ2dpbmcgaW4gYXMgdXNlciAidm1haWxlciIgYW5kIHBhc3N3b3JkICJw YXNzd2QiIHRoZW4NCisvKgl0aGUgY29uZmlndXJhdGlvbiBmaWxlIHNob3VsZCByZWFkOg0KKy8q DQorLyoJdXNlciA9IHZtYWlsZXINCisvKglwYXNzd29yZCA9IHBhc3N3ZA0KKy8qCURCbmFtZSA9 IHZtYWlsZXJfaW5mbw0KKy8qCXRhYmxlID0gYWxpYXNlcw0KKy8qCXNlbGVjdF9maWVsZCA9IGZv cndfYWRkcg0KKy8qCXdoZXJlX2ZpZWxkID0gYWxpYXMNCisvKglob3N0cyA9IGhvc3QxLnNvbWUu ZG9tYWluIGhvc3QyLnNvbWUuZG9tYWluDQorLyoNCisvKiAuSVAgb3RoZXJfbmFtZQ0KKy8qCXJl ZmVyZW5jZSBmb3Igb3V0c2lkZSB1c2UuDQorLyogLklQIHVudXN1ZWRfZmxhZ3MNCisvKgl1bnVz ZWQgZmxhZ3MNCisvKiBTRUUgQUxTTw0KKy8qCWRpY3QoMykgZ2VuZXJpYyBkaWN0aW9uYXJ5IG1h bmFnZXINCisvKiBBVVRIT1IoUykNCisvKglBYXJvbiBTZXRobWFuDQorLyoJYW5kcm9zeW5AcmF0 Ym94Lm9yZw0KKy8qDQorLyoJQmFzZWQgdXBvbiBkaWN0X215c3FsLmMgYnkNCisvKg0KKy8qCVNj b3R0IENvdHRvbg0KKy8qCUlDIEdyb3VwLCBJbmMuDQorLyoJc2NvdHRAaWNncm91cC5jb20NCisv Kg0KKy8qCUpvc2h1YSBNYXJjdXMNCisvKglJQyBHcm91cCwgSW5jLg0KKy8qCWpvc2hAaWNncm91 cC5jb20NCisvKi0tKi8NCisNCisvKiBTeXN0ZW0gbGlicmFyeS4gKi8NCisjaW5jbHVkZSAic3lz X2RlZnMuaCINCisNCisjaWZkZWYgSEFTX1BHU1FMDQorI2luY2x1ZGUgPHN5cy9zb2NrZXQuaD4N CisjaW5jbHVkZSA8bmV0aW5ldC9pbi5oPg0KKyNpbmNsdWRlIDxhcnBhL2luZXQuaD4NCisjaW5j bHVkZSA8bmV0ZGIuaD4NCisjaW5jbHVkZSA8c3RkaW8uaD4NCisjaW5jbHVkZSA8c3RyaW5nLmg+ DQorI2luY2x1ZGUgPHN0ZGxpYi5oPg0KKyNpbmNsdWRlIDxzeXNsb2cuaD4NCisjaW5jbHVkZSA8 dGltZS5oPg0KKw0KKy8qIFV0aWxpdHkgbGlicmFyeS4gKi8NCisjaW5jbHVkZSAiZGljdC5oIg0K KyNpbmNsdWRlICJtc2cuaCINCisjaW5jbHVkZSAibXltYWxsb2MuaCINCisjaW5jbHVkZSAiZGlj dF9wZ3NxbC5oIg0KKyNpbmNsdWRlICJhcmd2LmgiDQorI2luY2x1ZGUgInZzdHJpbmcuaCINCisj aW5jbHVkZSAic3BsaXRfYXQuaCINCisjaW5jbHVkZSAiZmluZF9pbmV0LmgiDQorDQorLyogZXh0 ZXJuYWwgZGVjbGFyYXRpb25zICovDQorZXh0ZXJuIGludCBkaWN0X2Vycm5vOw0KKw0KK3R5cGVk ZWYgc3RydWN0IHsNCisgICAgUEdjb25uICAqZGI7DQorICAgIGNoYXIgICAqaG9zdG5hbWU7DQor ICAgIGludCAgICAgc3RhdDsJCQkvKiBTVEFUVU5UUklFRCB8IFNUQVRGQUlMIHwgU1RBVENVUiAq Lw0KKyAgICB0aW1lX3QgIHRzOwkJCQkvKiB1c2VkIGZvciBhdHRlbXB0aW5nIHJlY29ubmVjdGlv biAqLw0KKw0KK30gSE9TVDsNCisNCit0eXBlZGVmIHN0cnVjdCB7DQorICAgIGludCAgICAgbGVu X2hvc3RzOwkJCS8qIG51bWJlciBvZiBob3N0cyAqLw0KKyAgICBIT1NUICAgKmRiX2hvc3RzOwkJ CS8qIHRoZSBob3N0cyBvbiB3aGljaCB0aGUgZGF0YWJhc2VzICovDQorICAgIAkJCQkJLyogcmVz aWRlICovDQorfSBQTFBHU1FMOw0KKw0KK3R5cGVkZWYgc3RydWN0IHsNCisgICAgY2hhciAgICp1 c2VybmFtZTsNCisgICAgY2hhciAgICpwYXNzd29yZDsNCisgICAgY2hhciAgICpkYm5hbWU7DQor ICAgIGNoYXIgICAqdGFibGU7DQorICAgIGNoYXIgICAqc2VsZWN0X2ZpZWxkOw0KKyAgICBjaGFy ICAgKndoZXJlX2ZpZWxkOw0KKyAgICBjaGFyICAgKmFkZGl0aW9uYWxfY29uZGl0aW9uczsNCisg ICAgY2hhciAgKipob3N0bmFtZXM7DQorICAgIGludCAgICAgbGVuX2hvc3RzOw0KK30gUEdTUUxf TkFNRTsNCisNCit0eXBlZGVmIHN0cnVjdCB7DQorICAgIERJQ1QgICAgZGljdDsNCisgICAgUExQ R1NRTCAqcGxkYjsNCisgICAgUEdTUUxfTkFNRSAqbmFtZTsNCit9IERJQ1RfUEdTUUw7DQorDQor DQorLyogSnVzdCBtYWtlcyB0aGluZ3MgYSBsaXR0bGUgZWFzaWVyIGZvciBtZS4uICovDQorI2Rl ZmluZSBQR1NRTF9SRVMgUEdyZXN1bHQNCisNCisvKiBpbnRlcm5hbCBmdW5jdGlvbiBkZWNsYXJh dGlvbnMgKi8NCitzdGF0aWMgUExQR1NRTCAqcGxwZ3NxbF9pbml0KGNoYXIgKmhvc3RuYW1lc1td LCBpbnQpOw0KK3N0YXRpYyBQR1NRTF9SRVMgKnBscGdzcWxfcXVlcnkoUExQR1NRTCAqLCBjb25z dCBjaGFyICosIGNoYXIgKiwgY2hhciAqLCBjaGFyICopOw0KK3N0YXRpYyB2b2lkIHBscGdzcWxf ZGVhbGxvYyhQTFBHU1FMICopOw0KK3N0YXRpYyB2b2lkIHBscGdzcWxfZG93bl9ob3N0KEhPU1Qg Kik7DQorc3RhdGljIHZvaWQgcGxwZ3NxbF9jb25uZWN0X3NpbmdsZShIT1NUICosIGNoYXIgKiwg Y2hhciAqLCBjaGFyICopOw0KK3N0YXRpYyBpbnQgcGxwZ3NxbF9yZWFkeV9yZWNvbm4oSE9TVCAq KTsNCitzdGF0aWMgdm9pZCBkaWN0X3Bnc3FsX3VwZGF0ZShESUNUICosIGNvbnN0IGNoYXIgKiwg Y29uc3QgY2hhciAqKTsNCitzdGF0aWMgY29uc3QgY2hhciAqZGljdF9wZ3NxbF9sb29rdXAoRElD VCAqLCBjb25zdCBjaGFyICopOw0KK0RJQ1QgICAqZGljdF9wZ3NxbF9vcGVuKGNvbnN0IGNoYXIg KiwgaW50LCBpbnQpOw0KK3N0YXRpYyB2b2lkIGRpY3RfcGdzcWxfY2xvc2UoRElDVCAqKTsNCitz dGF0aWMgUEdTUUxfTkFNRSAqcGdzcWxuYW1lX3BhcnNlKGNvbnN0IGNoYXIgKik7DQorc3RhdGlj IEhPU1QgaG9zdF9pbml0KGNoYXIgKik7DQorDQorDQorDQorLyoqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioNCisgKiBw dWJsaWMgaW50ZXJmYWNlIGRpY3RfcGdzcWxfbG9va3VwDQorICogZmluZCBkYXRhYmFzZSBlbnRy eSByZXR1cm4gMCBpZiBubyBhbGlhcyBmb3VuZCwgc2V0IGRpY3RfZXJybm8NCisgKiBvbiBlcnJv cnMgdG8gRElDVF9FUlJCT19SRVRSWSBhbmQgc2V0IGRpY3RfZXJybm8gdG8gMCBvbiBzdWNjZXNz DQorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKi8NCitzdGF0aWMgdm9pZCBwZ3NxbF9lc2NhcGVfc3RyaW5nKGNoYXIg Km5ldywgY29uc3QgY2hhciAqb2xkLCB1bnNpZ25lZCBpbnQgbGVuKQ0KK3sNCisJdW5zaWduZWQg aW50IHgsIHk7DQorCWZvcih4ID0gMCwgeSA9IDA7IHggPCBsZW47IHgrKywgeSsrKQ0KKwl7DQor CQlzd2l0Y2gob2xkW3hdKQ0KKwkJew0KKwkJCWNhc2UgJ1xuJzoNCisJCQkJbmV3W3ldID0gJ1xc JzsNCisJCQkJbmV3W3krK10gPSAnbic7DQorCQkJCWJyZWFrOw0KKwkJCWNhc2UgJ1xyJzoNCisJ CQkJbmV3W3ldID0gJ1xcJzsNCisJCQkJbmV3W3krK10gPSAncic7DQorCQkJCWJyZWFrOw0KKwkJ CWNhc2UgJ1wnJzoNCisJCQkJbmV3W3ldID0gJ1xcJzsNCisJCQkJbmV3W3krK10gPSAnXCcnOw0K KwkJCQlicmVhazsNCisJCQljYXNlICciJzoNCisJCQkJbmV3W3ldID0gJ1xcJzsNCisJCQkJbmV3 W3krK10gPSAnIic7DQorCQkJCWJyZWFrOw0KKwkJCWNhc2UgMDoNCisJCQkJbmV3W3ldID0gJ1xc JzsNCisJCQkJbmV3W3krK10gPSAnMCc7DQorCQkJCWJyZWFrOw0KKwkJCWRlZmF1bHQ6DQorCQkJ CW5ld1t5XSA9IG9sZFt4XTsNCisJCQkJYnJlYWs7CQ0KKwkJfQ0KKwl9DQorCW5ld1t5XSA9IDA7 DQorfQ0KK3N0YXRpYyBjb25zdCBjaGFyICpkaWN0X3Bnc3FsX2xvb2t1cChESUNUICpkaWN0LCBj b25zdCBjaGFyICpuYW1lKQ0KK3sNCisgICAgUEdTUUxfUkVTICpxdWVyeV9yZXM7DQorLy8gICAg UEdTUUxfUk9XIHJvdzsNCisgICAgRElDVF9QR1NRTCAqZGljdF9wZ3NxbDsNCisgICAgUExQR1NR TCAqcGxkYjsNCisgICAgc3RhdGljIFZTVFJJTkcgKnJlc3VsdDsNCisgICAgc3RhdGljIFZTVFJJ TkcgKnF1ZXJ5ID0gMDsNCisgICAgaW50ICAgICBpLA0KKyAgICAgICAgICAgIGosDQorICAgICAg ICAgICAgbnVtcm93czsNCisgICAgY2hhciAgICpuYW1lX2VzY2FwZWQgPSAwOw0KKw0KKyAgICBk aWN0X3Bnc3FsID0gKERJQ1RfUEdTUUwgKikgZGljdDsNCisgICAgcGxkYiA9IGRpY3RfcGdzcWwt PnBsZGI7DQorICAgIC8qIGluaXRpYWxpemF0aW9uICBmb3IgcXVlcnkgKi8NCisgICAgcXVlcnkg PSB2c3RyaW5nX2FsbG9jKDI0KTsNCisgICAgdnN0cmluZ19zdHJjcHkocXVlcnksICIiKTsNCisg ICAgaWYgKChuYW1lX2VzY2FwZWQgPSAoY2hhciAqKSBteW1hbGxvYygoc2l6ZW9mKGNoYXIpICog KHN0cmxlbihuYW1lKSAqIDIpICsxKSkpID09IE5VTEwpIHsNCisJbXNnX2ZhdGFsKCJkaWN0X3Bn c3FsX2xvb2t1cDogb3V0IG9mIG1lbW9yeS4iKTsNCisgICAgfQ0KKyAgICAvKiBwcmVwYXJlIHRo ZSBxdWVyeSAqLw0KKyAgICBwZ3NxbF9lc2NhcGVfc3RyaW5nKG5hbWVfZXNjYXBlZCwgbmFtZSwg KHVuc2lnbmVkIGludCkgc3RybGVuKG5hbWUpKTsNCisgICAgdnN0cmluZ19zcHJpbnRmKHF1ZXJ5 LCAic2VsZWN0ICVzIGZyb20gJXMgd2hlcmUgJXMgPSAnJXMnICVzIiwgZGljdF9wZ3NxbC0+bmFt ZS0+c2VsZWN0X2ZpZWxkLA0KKyAgICAgICBkaWN0X3Bnc3FsLT5uYW1lLT50YWJsZSwgZGljdF9w Z3NxbC0+bmFtZS0+d2hlcmVfZmllbGQsIG5hbWVfZXNjYXBlZCwNCisJCSAgICBkaWN0X3Bnc3Fs LT5uYW1lLT5hZGRpdGlvbmFsX2NvbmRpdGlvbnMpOw0KKyAgICBpZiAobXNnX3ZlcmJvc2UpDQor CW1zZ19pbmZvKCJkaWN0X3Bnc3FsX2xvb2t1cCB1c2luZyBzcWwgcXVlcnk6ICVzIiwgdnN0cmlu Z19zdHIocXVlcnkpKTsNCisgICAgLyogZnJlZSBtZW0gYXNzb2NpYXRlZCB3aXRoIHByZXBhcmlu ZyB0aGUgcXVlcnkgKi8NCisgICAgbXlmcmVlKG5hbWVfZXNjYXBlZCk7DQorICAgIC8qIGRvIHRo ZSBxdWVyeSAtIHNldCBkaWN0X2Vycm5vICYgY2xlYW51cCBpZiB0aGVyZSdzIGFuIGVycm9yICov DQorICAgIGlmICgocXVlcnlfcmVzID0gcGxwZ3NxbF9xdWVyeShwbGRiLA0KKwkJCQkgICB2c3Ry aW5nX3N0cihxdWVyeSksDQorCQkJCSAgIGRpY3RfcGdzcWwtPm5hbWUtPmRibmFtZSwNCisJCQkJ ICAgZGljdF9wZ3NxbC0+bmFtZS0+dXNlcm5hbWUsDQorCQkJCSAgIGRpY3RfcGdzcWwtPm5hbWUt PnBhc3N3b3JkKSkgPT0gMCkgew0KKwlkaWN0X2Vycm5vID0gRElDVF9FUlJfUkVUUlk7DQorCXZz dHJpbmdfZnJlZShxdWVyeSk7DQorCXJldHVybiAwOw0KKyAgICB9DQorICAgIGRpY3RfZXJybm8g PSAwOw0KKyAgICAvKiBmcmVlIHRoZSB2c3RyaW5nIHF1ZXJ5ICovDQorICAgIHZzdHJpbmdfZnJl ZShxdWVyeSk7DQorICAgIG51bXJvd3MgPSBQUW50dXBsZXMocXVlcnlfcmVzKTsNCisgICAgaWYg KG1zZ192ZXJib3NlKQ0KKwltc2dfaW5mbygiZGljdF9wZ3NxbF9sb29rdXA6IHJldHJpZXZlZCAl ZCByb3dzIiwgbnVtcm93cyk7DQorICAgIGlmIChudW1yb3dzID09IDApIHsNCisJUFFjbGVhcihx dWVyeV9yZXMpOw0KKwlyZXR1cm4gMDsNCisgICAgfQ0KKyAgICBpZiAocmVzdWx0ID09IDApDQor CXJlc3VsdCA9IHZzdHJpbmdfYWxsb2MoMTApOw0KKyAgICB2c3RyaW5nX3N0cmNweShyZXN1bHQs ICIiKTsNCisgICAgZm9yIChpID0gMDsgaSA8IG51bXJvd3M7IGkrKykgDQorICAgIHsNCisJaWYg KGkgPiAwKSANCisJICAgIHZzdHJpbmdfc3RyY2F0KHJlc3VsdCwgIiwiKTsNCisJZm9yIChqID0g MDsgaiA8IFBRbmZpZWxkcyhxdWVyeV9yZXMpOyBqKyspIHsNCisJICAgIGlmIChqID4gMCkgDQor CQl2c3RyaW5nX3N0cmNhdChyZXN1bHQsICIsIik7DQorCSAgICB2c3RyaW5nX3N0cmNhdChyZXN1 bHQsIFBRZ2V0dmFsdWUocXVlcnlfcmVzLCBpLCBqKSk7DQorCSAgICBpZiAobXNnX3ZlcmJvc2Ug PiAxKQ0KKwkJbXNnX2luZm8oImRpY3RfcGdzcWxfbG9va3VwOiByZXRyaWV2ZWQgZmllbGQ6ICVk OiAlcyIsIGosIFBRZ2V0dmFsdWUocXVlcnlfcmVzLCBpLCBqKSk7DQorCX0NCisgICAgfQ0KKyAg ICBQUWNsZWFyKHF1ZXJ5X3Jlcyk7DQorICAgIHJldHVybiB2c3RyaW5nX3N0cihyZXN1bHQpOw0K K30NCisNCisvKg0KKyAqIHBscGdzcWxfcXVlcnkgLSBwcm9jZXNzIGEgTXlTUUwgcXVlcnkuICBS ZXR1cm4gUEdTUUxfUkVTKiBvbiBzdWNjZXNzLg0KKyAqCQkgICAgIE9uIGZhaWx1cmUsIGxvZyBm YWlsdXJlIGFuZCB0cnkgb3RoZXIgZGIgaW5zdGFuY2VzLg0KKyAqCQkgICAgIG9uIGZhaWx1cmUg b2YgYWxsIGRiIGluc3RhbmNlcywgcmV0dXJuIDA7DQorICoJCSAgICAgY2xvc2UgdW5uZWNlc3Nh cnkgYWN0aXZlIGNvbm5lY3Rpb25zDQorICovDQorDQorc3RhdGljIFBHU1FMX1JFUyAqcGxwZ3Nx bF9xdWVyeShQTFBHU1FMICpQTERCLA0KKwkJCQkgICAgICAgIGNvbnN0IGNoYXIgKnF1ZXJ5LA0K KwkJCQkgICAgICAgIGNoYXIgKmRibmFtZSwNCisJCQkJICAgICAgICBjaGFyICp1c2VybmFtZSwN CisJCQkJICAgICAgICBjaGFyICpwYXNzd29yZCkNCit7DQorICAgIGludCAgICAgaTsNCisgICAg SE9TVCAgICpob3N0Ow0KKyAgICBQR1NRTF9SRVMgKnJlcyA9IDA7DQorDQorICAgIGZvciAoaSA9 IDA7IGkgPCBQTERCLT5sZW5faG9zdHM7IGkrKykgew0KKwkvKiBjYW4ndCBkZWFsIHdpdGggdHlw aW5nIG9yIHJlYWRpbmcgUExEQi0+ZGJfaG9zdHNbaV0gb3ZlciAmIG92ZXIgKi8NCisJaG9zdCA9 ICYoUExEQi0+ZGJfaG9zdHNbaV0pOw0KKwlpZiAobXNnX3ZlcmJvc2UgPiAxKQ0KKwkgICAgbXNn X2luZm8oImRpY3RfcGdzcWw6IHRyeWluZyBob3N0ICVzIHN0YXQgJWQsIGxhc3QgcmVzICVwIiwg aG9zdC0+aG9zdG5hbWUsIGhvc3QtPnN0YXQsIHJlcyk7DQorDQorCS8qIGFuc3dlciBhbHJlYWR5 IGZvdW5kICovDQorCWlmIChyZXMgIT0gMCAmJiBob3N0LT5zdGF0ID09IFNUQVRBQ1RJVkUpIHsN CisJICAgIGlmIChtc2dfdmVyYm9zZSkNCisJCW1zZ19pbmZvKCJkaWN0X3Bnc3FsOiBjbG9zaW5n IHVubmVzc2FyeSBjb25uZWN0aW9uIHRvICVzIiwNCisJCQkgaG9zdC0+aG9zdG5hbWUpOw0KKwkg ICAgcGxwZ3NxbF9kb3duX2hvc3QoaG9zdCk7DQorCX0NCisJLyogdHJ5IHRvIGNvbm5lY3QgZm9y IHRoZSBmaXJzdCB0aW1lIGlmIHdlIGRvbid0IGhhdmUgYSByZXN1bHQgeWV0ICovDQorCWlmIChy ZXMgPT0gMCAmJiBob3N0LT5zdGF0ID09IFNUQVRVTlRSSUVEKSB7DQorCSAgICBpZiAobXNnX3Zl cmJvc2UpDQorCQltc2dfaW5mbygiZGljdF9wZ3NxbDogYXR0ZW1wdGluZyB0byBjb25uZWN0IHRv IGhvc3QgJXMiLA0KKwkJCSBob3N0LT5ob3N0bmFtZSk7DQorCSAgICBwbHBnc3FsX2Nvbm5lY3Rf c2luZ2xlKGhvc3QsIGRibmFtZSwgdXNlcm5hbWUsIHBhc3N3b3JkKTsNCisJfQ0KKw0KKwkvKg0K KwkgKiB0cnkgdG8gcmVjb25uZWN0IGlmIHdlIGRvbid0IGhhdmUgYW4gYW5zd2VyIGFuZCB0aGUg aG9zdCBoYWQgYQ0KKwkgKiBwcm9iIGluIHRoZSBwYXN0IGFuZCBpdCdzIHRpbWUgZm9yIGl0IHRv IHJlY29ubmVjdA0KKwkgKi8NCisJaWYgKHJlcyA9PSAwICYmIGhvc3QtPnN0YXQgPT0gU1RBVEZB SUwgJiYgaG9zdC0+dHMgPCB0aW1lKCh0aW1lX3QgKikgMCkpIHsNCisJICAgIGlmIChtc2dfdmVy Ym9zZSkNCisJCW1zZ19pbmZvKCJkaWN0X3Bnc3FsOiBhdHRlbXB0aW5nIHRvIHJlY29ubmVjdCB0 byBob3N0ICVzIiwNCisJCQkgaG9zdC0+aG9zdG5hbWUpOw0KKwkgICAgcGxwZ3NxbF9jb25uZWN0 X3NpbmdsZShob3N0LCBkYm5hbWUsIHVzZXJuYW1lLCBwYXNzd29yZCk7DQorCX0NCisNCisJLyoN CisJICogaWYgd2UgZG9uJ3QgaGF2ZSBhIHJlc3VsdCBhbmQgdGhlIGN1cnJlbnQgaG9zdCBpcyBt YXJrZWQgYWN0aXZlLA0KKwkgKiB0cnkgdGhlIHF1ZXJ5LiAgSWYgdGhlIHF1ZXJ5IGZhaWxzLCBt YXJrIHRoZSBob3N0IFNUQVRGQUlMDQorCSAqLw0KKwlpZiAocmVzID09IDAgJiYgaG9zdC0+c3Rh dCA9PSBTVEFUQUNUSVZFKSB7DQorCSAgICBpZiAoKHJlcyA9IFBRZXhlYyhob3N0LT5kYiwgcXVl cnkpKSkgew0KKwkJaWYgKG1zZ192ZXJib3NlKQ0KKwkJICAgICBtc2dfaW5mbygiZGljdF9wZ3Nx bDogc3VjY2Vzc2Z1bCBxdWVyeSBmcm9tIGhvc3QgJXMiLCBob3N0LT5ob3N0bmFtZSk7DQorCSAg ICB9IGVsc2Ugew0KKwkJbXNnX3dhcm4oIiVzIiwgUFFlcnJvck1lc3NhZ2UoaG9zdC0+ZGIpKTsN CisJCXBscGdzcWxfZG93bl9ob3N0KGhvc3QpOw0KKwkgICAgfQ0KKwl9DQorICAgIH0NCisgICAg cmV0dXJuIHJlczsNCit9DQorDQorLyoNCisgKiBwbHBnc3FsX2Nvbm5lY3Rfc2luZ2xlIC0NCisg KiB1c2VkIHRvIHJlY29ubmVjdCB0byBhIHNpbmdsZSBkYXRhYmFzZSB3aGVuIG9uZSBpcyBkb3du IG9yIG5vbmUgaXMNCisgKiBjb25uZWN0ZWQgeWV0LiBMb2cgYWxsIGVycm9ycyBhbmQgc2V0IHRo ZSBzdGF0IGZpZWxkIG9mIGhvc3QgYWNjb3JkaW5nbHkNCisgKi8NCitzdGF0aWMgdm9pZCBwbHBn c3FsX2Nvbm5lY3Rfc2luZ2xlKEhPU1QgKmhvc3QsIGNoYXIgKmRibmFtZSwgY2hhciAqdXNlcm5h bWUsIGNoYXIgKnBhc3N3b3JkKQ0KK3sNCisgICAgY2hhciAgICpkZXN0aW5hdGlvbiA9IGhvc3Qt Pmhvc3RuYW1lOw0KKyAgICBjaGFyICAgKnVuaXhfc29ja2V0ID0gMDsNCisgICAgY2hhciAgICpo b3N0bmFtZSA9IDA7DQorICAgIGNoYXIgICAqc2VydmljZTsNCisgICAgY2hhciAgICpwb3J0ID0g MDsNCisNCisgICAgLyoNCisgICAgICogQWQtaG9jIHBhcnNpbmcgY29kZS4gRXhwZWN0ICJ1bml4 OnBhdGhuYW1lIiBvciAiaW5ldDpob3N0OnBvcnQiLCB3aGVyZQ0KKyAgICAgKiBib3RoICJpbmV0 OiIgYW5kICI6cG9ydCIgYXJlIG9wdGlvbmFsLg0KKyAgICAgKi8NCisgICAgaWYgKHN0cm5jbXAo ZGVzdGluYXRpb24sICJ1bml4OiIsIDUpID09IDApIHsNCisJdW5peF9zb2NrZXQgPSBkZXN0aW5h dGlvbiArIDU7DQorICAgIH0gZWxzZSB7DQorCWlmIChzdHJuY21wKGRlc3RpbmF0aW9uLCAiaW5l dDoiLCA1KSA9PSAwKQ0KKwkgICAgZGVzdGluYXRpb24gKz0gNTsNCisJaG9zdG5hbWUgPSBteXN0 cmR1cChkZXN0aW5hdGlvbik7DQorCWlmICgoc2VydmljZSA9IHNwbGl0X2F0KGhvc3RuYW1lLCAn OicpKSAhPSAwKQ0KKwkgICAgcG9ydCA9IHNlcnZpY2U7DQorICAgIH0NCisNCisgICAgaWYoKGhv c3QtPmRiID0gUFFzZXRkYkxvZ2luKGhvc3RuYW1lLCBwb3J0LCBOVUxMLCBOVUxMLCBkYm5hbWUs IHVzZXJuYW1lLCBwYXNzd29yZCkpKSB7DQorCWlmKFBRc3RhdHVzKGhvc3QtPmRiKSA9PSBDT05O RUNUSU9OX09LKQ0KKwl7DQorCQlpZiAobXNnX3ZlcmJvc2UpDQorCQkgICAgbXNnX2luZm8oImRp Y3RfcGdzcWw6IHN1Y2Nlc3NmdWwgY29ubmVjdGlvbiB0byBob3N0ICVzIiwNCisJCQkgICAgIGhv c3QtPmhvc3RuYW1lKTsNCisJCWhvc3QtPnN0YXQgPSBTVEFUQUNUSVZFOw0KKwl9IGVsc2UNCisJ CW1zZ193YXJuKCIlcyIsIFBRZXJyb3JNZXNzYWdlKGhvc3QtPmRiKSk7DQorICAgIH0gZWxzZSB7 DQorCW1zZ193YXJuKCJVbmFibGUgdG8gY29ubmVjdCB0byBkYXRhYmFzZSIpOw0KKwlwbHBnc3Fs X2Rvd25faG9zdChob3N0KTsNCisgICAgfQ0KKyAgICBpZiAoaG9zdG5hbWUpDQorCW15ZnJlZSho b3N0bmFtZSk7DQorfQ0KKw0KKy8qDQorICogcGxwZ3NxbF9kb3duX2hvc3QgLSBtYXJrIGEgSE9T VCBkb3duIHVwZGF0ZSB0cyBpZiBtYXJrZWQgZG93bg0KKyAqIGZvciB0aGUgZmlyc3QgdGltZSBz byB0aGF0IHdlJ2xsIGtub3cgd2hlbiB0byByZXRyeSB0aGUgY29ubmVjdGlvbg0KKyAqLw0KK3N0 YXRpYyB2b2lkIHBscGdzcWxfZG93bl9ob3N0KEhPU1QgKmhvc3QpDQorew0KKyAgICBpZiAoaG9z dC0+c3RhdCAhPSBTVEFURkFJTCkgew0KKwlob3N0LT50cyA9IHRpbWUoKHRpbWVfdCAqKSAwKSAr IFJFVFJZX0NPTk5fSU5UVjsNCisJaG9zdC0+c3RhdCA9IFNUQVRGQUlMOw0KKyAgICB9DQorICAg IFBRZmluaXNoKGhvc3QtPmRiKTsNCisgICAgaG9zdC0+ZGIgPSAwOw0KK30NCisNCisvKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKg0KKyAqIHB1YmxpYyBpbnRlcmZhY2UgZGljdF9wZ3NxbF9vcGVuDQorICogICAgY3Jl YXRlIGFzc29jaWF0aW9uIHdpdGggZGF0YWJhc2Ugd2l0aCBhcHByb3ByaWF0ZSB2YWx1ZXMNCisg KiAgICBwYXJzZSB0aGUgbWFwJ3MgY29uZmlnIGZpbGUNCisgKiAgICBhbGxvY2F0ZSBtZW1vcnkN CisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKi8NCitESUNUICAgKmRpY3RfcGdzcWxfb3Blbihjb25zdCBjaGFyICpu YW1lLCBpbnQgdW51c2VkX2ZsYWdzLCBpbnQgdW51c2VkX2RpY3RfZmxhZ3MpDQorew0KKyAgICBE SUNUX1BHU1FMICpkaWN0X3Bnc3FsOw0KKy8vICAgIGludCAgICAgY29ubmVjdGlvbnM7DQorDQor ICAgIGRpY3RfcGdzcWwgPSAoRElDVF9QR1NRTCAqKSBteW1hbGxvYyhzaXplb2YoRElDVF9QR1NR TCkpOw0KKyAgICBkaWN0X3Bnc3FsLT5kaWN0Lmxvb2t1cCA9IGRpY3RfcGdzcWxfbG9va3VwOw0K KyAgICBkaWN0X3Bnc3FsLT5kaWN0LnVwZGF0ZSA9IGRpY3RfcGdzcWxfdXBkYXRlOw0KKyAgICBk aWN0X3Bnc3FsLT5kaWN0LmNsb3NlID0gZGljdF9wZ3NxbF9jbG9zZTsNCisgICAgZGljdF9wZ3Nx bC0+ZGljdC5mZCA9IC0xOwkJCS8qIHRoZXJlJ3Mgbm8gZmlsZSBkZXNjcmlwdG9yDQorCQkJCQkJ ICogZm9yIGxvY2tpbmcgKi8NCisgICAgZGljdF9wZ3NxbC0+bmFtZSA9IHBnc3FsbmFtZV9wYXJz ZShuYW1lKTsNCisgICAgZGljdF9wZ3NxbC0+cGxkYiA9IHBscGdzcWxfaW5pdChkaWN0X3Bnc3Fs LT5uYW1lLT5ob3N0bmFtZXMsDQorCQkJCSAgICBkaWN0X3Bnc3FsLT5uYW1lLT5sZW5faG9zdHMp Ow0KKyAgICBpZiAoZGljdF9wZ3NxbC0+cGxkYiA9PSBOVUxMKQ0KKwltc2dfZmF0YWwoImNvdWxk bid0IGludGlhbGl6ZSBwbGRiIVxuIik7DQorICAgIGRpY3RfcmVnaXN0ZXIobmFtZSwgKERJQ1Qg KikgZGljdF9wZ3NxbCk7DQorICAgIHJldHVybiAmZGljdF9wZ3NxbC0+ZGljdDsNCit9DQorDQor LyogcGdzcWxuYW1lX3BhcnNlIC0gcGFyc2UgcGdzcWwgY29uZmlndXJhdGlvbiBmaWxlICovDQor c3RhdGljIFBHU1FMX05BTUUgKnBnc3FsbmFtZV9wYXJzZShjb25zdCBjaGFyICpwZ3NxbGNmX3Bh dGgpDQorew0KKyAgICBpbnQgICAgIGk7DQorICAgIGNoYXIgICAqbmFtZXZhbDsNCisgICAgY2hh ciAgICpob3N0czsNCisgICAgUEdTUUxfTkFNRSAqbmFtZSA9IChQR1NRTF9OQU1FICopIG15bWFs bG9jKHNpemVvZihQR1NRTF9OQU1FKSk7DQorICAgIEFSR1YgICAqaG9zdHNfYXJndjsNCisgICAg VlNUUklORyAqb3B0X2RpY3RfbmFtZTsNCisNCisgICAgLyoNCisgICAgICogc2V0dXAgYSBkaWN0 IGNvbnRhaW5pbmcgaW5mbyBpbiB0aGUgcGdzcWwgY2YgZmlsZS4gdGhlIGRpY3QgaGFzIGENCisg ICAgICogbmFtZSwgYW5kIGEgcGF0aC4gIFRoZSBuYW1lIG11c3QgYmUgZGlzdGluY3QgZnJvbSB0 aGUgcGF0aCwgb3IgdGhlDQorICAgICAqIGRpY3QgaW50ZXJmYWNlIGdldHMgY29uZnVzZWQuICBU aGUgbmFtZSBtdXN0IGJlIGRpc3RpbmN0IGZvciB0d28NCisgICAgICogZGlmZmVyZW50IHBhdGhz LCBvciB0aGUgY29uZmlndXJhdGlvbiBpbmZvIHdpbGwgY2FjaGUgYWNyb3NzIGRpZmZlcmVudA0K KyAgICAgKiBwZ3NxbCBtYXBzLCB3aGljaCBjYW4gYmUgY29uZnVzaW5nLg0KKyAgICAgKi8NCisg ICAgb3B0X2RpY3RfbmFtZSA9IHZzdHJpbmdfYWxsb2MoNjQpOw0KKyAgICB2c3RyaW5nX3Nwcmlu dGYob3B0X2RpY3RfbmFtZSwgInBnc3FsIG9wdCBkaWN0ICVzIiwgcGdzcWxjZl9wYXRoKTsNCisg ICAgZGljdF9sb2FkX2ZpbGUodnN0cmluZ19zdHIob3B0X2RpY3RfbmFtZSksIHBnc3FsY2ZfcGF0 aCk7DQorICAgIC8qIHBnc3FsIHVzZXJuYW1lIGxvb2t1cCAqLw0KKyAgICBpZiAoKG5hbWV2YWwg PSAoY2hhciAqKSBkaWN0X2xvb2t1cCh2c3RyaW5nX3N0cihvcHRfZGljdF9uYW1lKSwgInVzZXIi KSkgPT0gTlVMTCkNCisJbmFtZS0+dXNlcm5hbWUgPSBteXN0cmR1cCgiIik7DQorICAgIGVsc2UN CisJbmFtZS0+dXNlcm5hbWUgPSBteXN0cmR1cChuYW1ldmFsKTsNCisgICAgaWYgKG1zZ192ZXJi b3NlKQ0KKwltc2dfaW5mbygicGdzcWxuYW1lX3BhcnNlKCk6IHNldCB1c2VybmFtZSB0byAnJXMn IiwgbmFtZS0+dXNlcm5hbWUpOw0KKyAgICAvKiBwYXNzd29yZCBsb29rdXAgKi8NCisgICAgaWYg KChuYW1ldmFsID0gKGNoYXIgKikgZGljdF9sb29rdXAodnN0cmluZ19zdHIob3B0X2RpY3RfbmFt ZSksICJwYXNzd29yZCIpKSA9PSBOVUxMKQ0KKwluYW1lLT5wYXNzd29yZCA9IG15c3RyZHVwKCIi KTsNCisgICAgZWxzZQ0KKwluYW1lLT5wYXNzd29yZCA9IG15c3RyZHVwKG5hbWV2YWwpOw0KKyAg ICBpZiAobXNnX3ZlcmJvc2UpDQorCW1zZ19pbmZvKCJwZ3NxbG5hbWVfcGFyc2UoKTogc2V0IHBh c3N3b3JkIHRvICclcyciLCBuYW1lLT5wYXNzd29yZCk7DQorDQorICAgIC8qIGRhdGFiYXNlIG5h bWUgbG9va3VwICovDQorICAgIGlmICgobmFtZXZhbCA9IChjaGFyICopIGRpY3RfbG9va3VwKHZz dHJpbmdfc3RyKG9wdF9kaWN0X25hbWUpLCAiZGJuYW1lIikpID09IE5VTEwpDQorCW1zZ19mYXRh bCgiJXM6IHBnc3FsIG9wdGlvbnMgZmlsZSBkb2VzIG5vdCBpbmNsdWRlIGRhdGFiYXNlIG5hbWUi LCBwZ3NxbGNmX3BhdGgpOw0KKyAgICBlbHNlDQorCW5hbWUtPmRibmFtZSA9IG15c3RyZHVwKG5h bWV2YWwpOw0KKyAgICBpZiAobXNnX3ZlcmJvc2UpDQorCW1zZ19pbmZvKCJwZ3NxbG5hbWVfcGFy c2UoKTogc2V0IGRhdGFiYXNlIG5hbWUgdG8gJyVzJyIsIG5hbWUtPmRibmFtZSk7DQorDQorICAg IC8qIHRhYmxlIGxvb2t1cCAqLw0KKyAgICBpZiAoKG5hbWV2YWwgPSAoY2hhciAqKSBkaWN0X2xv b2t1cCh2c3RyaW5nX3N0cihvcHRfZGljdF9uYW1lKSwgInRhYmxlIikpID09IE5VTEwpDQorCW1z Z19mYXRhbCgiJXM6IHBnc3FsIG9wdGlvbnMgZmlsZSBkb2VzIG5vdCBpbmNsdWRlIHRhYmxlIG5h bWUiLCBwZ3NxbGNmX3BhdGgpOw0KKyAgICBlbHNlDQorCW5hbWUtPnRhYmxlID0gbXlzdHJkdXAo bmFtZXZhbCk7DQorICAgIGlmIChtc2dfdmVyYm9zZSkNCisJbXNnX2luZm8oInBnc3FsbmFtZV9w YXJzZSgpOiBzZXQgdGFibGUgbmFtZSB0byAnJXMnIiwgbmFtZS0+dGFibGUpOw0KKw0KKyAgICAv KiBzZWxlY3QgZmllbGQgbG9va3VwICovDQorICAgIGlmICgobmFtZXZhbCA9IChjaGFyICopIGRp Y3RfbG9va3VwKHZzdHJpbmdfc3RyKG9wdF9kaWN0X25hbWUpLCAic2VsZWN0X2ZpZWxkIikpID09 IE5VTEwpDQorCW1zZ19mYXRhbCgiJXM6IHBnc3FsIG9wdGlvbnMgZmlsZSBkb2VzIG5vdCBpbmNs dWRlIHNlbGVjdCBmaWVsZCIsIHBnc3FsY2ZfcGF0aCk7DQorICAgIGVsc2UNCisJbmFtZS0+c2Vs ZWN0X2ZpZWxkID0gbXlzdHJkdXAobmFtZXZhbCk7DQorICAgIGlmIChtc2dfdmVyYm9zZSkNCisJ bXNnX2luZm8oInBnc3FsbmFtZV9wYXJzZSgpOiBzZXQgc2VsZWN0X2ZpZWxkIHRvICclcyciLCBu YW1lLT5zZWxlY3RfZmllbGQpOw0KKw0KKyAgICAvKiB3aGVyZSBmaWVsZCBsb29rdXAgKi8NCisg ICAgaWYgKChuYW1ldmFsID0gKGNoYXIgKikgZGljdF9sb29rdXAodnN0cmluZ19zdHIob3B0X2Rp Y3RfbmFtZSksICJ3aGVyZV9maWVsZCIpKSA9PSBOVUxMKQ0KKwltc2dfZmF0YWwoIiVzOiBwZ3Nx bCBvcHRpb25zIGZpbGUgZG9lcyBub3QgaW5jbHVkZSB3aGVyZSBmaWVsZCIsIHBnc3FsY2ZfcGF0 aCk7DQorICAgIGVsc2UNCisJbmFtZS0+d2hlcmVfZmllbGQgPSBteXN0cmR1cChuYW1ldmFsKTsN CisgICAgaWYgKG1zZ192ZXJib3NlKQ0KKwltc2dfaW5mbygicGdzcWxuYW1lX3BhcnNlKCk6IHNl dCB3aGVyZV9maWVsZCB0byAnJXMnIiwgbmFtZS0+d2hlcmVfZmllbGQpOw0KKw0KKyAgICAvKiBh ZGRpdGlvbmFsIGNvbmRpdGlvbnMgKi8NCisgICAgaWYgKChuYW1ldmFsID0gKGNoYXIgKikgZGlj dF9sb29rdXAodnN0cmluZ19zdHIob3B0X2RpY3RfbmFtZSksICJhZGRpdGlvbmFsX2NvbmRpdGlv bnMiKSkgPT0gTlVMTCkNCisJbmFtZS0+YWRkaXRpb25hbF9jb25kaXRpb25zID0gbXlzdHJkdXAo IiIpOw0KKyAgICBlbHNlDQorCW5hbWUtPmFkZGl0aW9uYWxfY29uZGl0aW9ucyA9IG15c3RyZHVw KG5hbWV2YWwpOw0KKyAgICBpZiAobXNnX3ZlcmJvc2UpDQorCW1zZ19pbmZvKCJwZ3NxbG5hbWVf cGFyc2UoKTogc2V0IGFkZGl0aW9uYWxfY29uZGl0aW9ucyB0byAnJXMnIiwgbmFtZS0+YWRkaXRp b25hbF9jb25kaXRpb25zKTsNCisNCisgICAgLyogcGdzcWwgc2VydmVyIGhvc3RzICovDQorICAg IGlmICgobmFtZXZhbCA9IChjaGFyICopIGRpY3RfbG9va3VwKHZzdHJpbmdfc3RyKG9wdF9kaWN0 X25hbWUpLCAiaG9zdHMiKSkgPT0gTlVMTCkNCisJaG9zdHMgPSBteXN0cmR1cCgiIik7DQorICAg IGVsc2UNCisJaG9zdHMgPSBteXN0cmR1cChuYW1ldmFsKTsNCisgICAgLyogY29vIGFyZ3YgaW50 ZXJmYWNlICovDQorICAgIGhvc3RzX2FyZ3YgPSBhcmd2X3NwbGl0KGhvc3RzLCAiICxcdFxyXG4i KTsNCisNCisgICAgaWYgKGhvc3RzX2FyZ3YtPmFyZ2MgPT0gMCkgewkJLyogbm8gaG9zdHMgc3Bl Y2lmaWVkLA0KKwkJCQkJCSAqIGRlZmF1bHQgdG8gJ2xvY2FsaG9zdCcgKi8NCisJaWYgKG1zZ192 ZXJib3NlKQ0KKwkgICAgbXNnX2luZm8oInBnc3FsbmFtZV9wYXJzZSgpOiBubyBob3N0bmFtZXMg c3BlY2lmaWVkLCBkZWZhdWx0aW5nIHRvICdsb2NhbGhvc3QnIik7DQorCWFyZ3ZfYWRkKGhvc3Rz X2FyZ3YsICJsb2NhbGhvc3QiLCBBUkdWX0VORCk7DQorCWFyZ3ZfdGVybWluYXRlKGhvc3RzX2Fy Z3YpOw0KKyAgICB9DQorICAgIG5hbWUtPmxlbl9ob3N0cyA9IGhvc3RzX2FyZ3YtPmFyZ2M7DQor ICAgIG5hbWUtPmhvc3RuYW1lcyA9IChjaGFyICoqKSBteW1hbGxvYygoc2l6ZW9mKGNoYXIgKikp ICogbmFtZS0+bGVuX2hvc3RzKTsNCisgICAgaSA9IDA7DQorICAgIGZvciAoaSA9IDA7IGhvc3Rz X2FyZ3YtPmFyZ3ZbaV0gIT0gTlVMTDsgaSsrKSB7DQorCW5hbWUtPmhvc3RuYW1lc1tpXSA9IG15 c3RyZHVwKGhvc3RzX2FyZ3YtPmFyZ3ZbaV0pOw0KKwlpZiAobXNnX3ZlcmJvc2UpDQorCSAgICBt c2dfaW5mbygicGdzcWxuYW1lX3BhcnNlKCk6IGFkZGluZyBob3N0ICclcycgdG8gbGlzdCBvZiBw Z3NxbCBzZXJ2ZXIgaG9zdHMiLA0KKwkJICAgICBuYW1lLT5ob3N0bmFtZXNbaV0pOw0KKyAgICB9 DQorICAgIG15ZnJlZShob3N0cyk7DQorICAgIHZzdHJpbmdfZnJlZShvcHRfZGljdF9uYW1lKTsN CisgICAgYXJndl9mcmVlKGhvc3RzX2FyZ3YpOw0KKyAgICByZXR1cm4gbmFtZTsNCit9DQorDQor DQorLyoNCisgKiBwbHBnc3FsX2luaXQgLSBpbml0YWxpemUgYSBQR1NRTCBkYXRhYmFzZS4NCisg KgkJICAgIFJldHVybiBOVUxMIG9uIGZhaWx1cmUsIG9yIGEgUExQR1NRTCAqIG9uIHN1Y2Nlc3Mu DQorICovDQorc3RhdGljIFBMUEdTUUwgKnBscGdzcWxfaW5pdChjaGFyICpob3N0bmFtZXNbXSwg aW50IGxlbl9ob3N0cykNCit7DQorICAgIFBMUEdTUUwgKlBMREI7DQorICAgIGludCAgICAgaTsN CisvLyAgICBIT1NUICAgIGhvc3Q7DQorDQorICAgIGlmICgoUExEQiA9IChQTFBHU1FMICopIG15 bWFsbG9jKHNpemVvZihQTFBHU1FMKSkpID09IE5VTEwpIHsNCisJbXNnX2ZhdGFsKCJteW1hbGxv YyBvZiBwbGRiIGZhaWxlZCIpOw0KKyAgICB9DQorICAgIFBMREItPmxlbl9ob3N0cyA9IGxlbl9o b3N0czsNCisgICAgaWYgKChQTERCLT5kYl9ob3N0cyA9IChIT1NUICopIG15bWFsbG9jKHNpemVv ZihIT1NUKSAqIGxlbl9ob3N0cykpID09IE5VTEwpDQorCXJldHVybiBOVUxMOw0KKyAgICBmb3Ig KGkgPSAwOyBpIDwgbGVuX2hvc3RzOyBpKyspIHsNCisJUExEQi0+ZGJfaG9zdHNbaV0gPSBob3N0 X2luaXQoaG9zdG5hbWVzW2ldKTsNCisgICAgfQ0KKyAgICByZXR1cm4gUExEQjsNCit9DQorDQor DQorLyogaG9zdF9pbml0IC0gaW5pdGlhbGl6ZSBIT1NUIHN0cnVjdHVyZSAqLw0KK3N0YXRpYyBI T1NUIGhvc3RfaW5pdChjaGFyICpob3N0bmFtZSkNCit7DQorICAgIEhPU1QgICAgaG9zdDsNCisN CisgICAgaG9zdC5zdGF0ID0gU1RBVFVOVFJJRUQ7DQorICAgIGhvc3QuaG9zdG5hbWUgPSBteXN0 cmR1cChob3N0bmFtZSk7DQorICAgIGhvc3QuZGIgPSAwOw0KKyAgICBob3N0LnRzID0gMDsNCisg ICAgcmV0dXJuIGhvc3Q7DQorfQ0KKw0KKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqDQorICogcHVibGljIGludGVy ZmFjZSBkaWN0X3Bnc3FsX2Nsb3NlDQorICogdW5yZWdpc3RlciwgZGlzYXNzb2NpYXRlIGZyb20g ZGF0YWJhc2UsIGZyZWVpbmcgYXBwcm9wcmlhdGUgbWVtb3J5DQorICoqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovDQor c3RhdGljIHZvaWQgZGljdF9wZ3NxbF9jbG9zZShESUNUICpkaWN0KQ0KK3sNCisgICAgaW50ICAg ICBpOw0KKyAgICBESUNUX1BHU1FMICpkaWN0X3Bnc3FsID0gKERJQ1RfUEdTUUwgKikgZGljdDsN CisNCisgICAgcGxwZ3NxbF9kZWFsbG9jKGRpY3RfcGdzcWwtPnBsZGIpOw0KKyAgICBteWZyZWUo ZGljdF9wZ3NxbC0+bmFtZS0+dXNlcm5hbWUpOw0KKyAgICBteWZyZWUoZGljdF9wZ3NxbC0+bmFt ZS0+cGFzc3dvcmQpOw0KKyAgICBteWZyZWUoZGljdF9wZ3NxbC0+bmFtZS0+ZGJuYW1lKTsNCisg ICAgbXlmcmVlKGRpY3RfcGdzcWwtPm5hbWUtPnRhYmxlKTsNCisgICAgbXlmcmVlKGRpY3RfcGdz cWwtPm5hbWUtPnNlbGVjdF9maWVsZCk7DQorICAgIG15ZnJlZShkaWN0X3Bnc3FsLT5uYW1lLT53 aGVyZV9maWVsZCk7DQorICAgIG15ZnJlZShkaWN0X3Bnc3FsLT5uYW1lLT5hZGRpdGlvbmFsX2Nv bmRpdGlvbnMpOw0KKyAgICBmb3IgKGkgPSAwOyBpIDwgZGljdF9wZ3NxbC0+bmFtZS0+bGVuX2hv c3RzOyBpKyspIHsNCisJbXlmcmVlKGRpY3RfcGdzcWwtPm5hbWUtPmhvc3RuYW1lc1tpXSk7DQor ICAgIH0NCisgICAgbXlmcmVlKChjaGFyICopIGRpY3RfcGdzcWwtPm5hbWUtPmhvc3RuYW1lcyk7 DQorICAgIG15ZnJlZSgoY2hhciAqKSBkaWN0X3Bnc3FsLT5uYW1lKTsNCit9DQorDQorLyogcGxw Z3NxbF9kZWFsbG9jIC0gZnJlZSBtZW1vcnkgYXNzb2NpYXRlZCB3aXRoIFBMUEdTUUwgY2xvc2Ug ZGF0YWJhc2VzICovDQorc3RhdGljIHZvaWQgcGxwZ3NxbF9kZWFsbG9jKFBMUEdTUUwgKlBMREIp DQorew0KKyAgICBpbnQgICAgIGk7DQorDQorICAgIGZvciAoaSA9IDA7IGkgPCBQTERCLT5sZW5f aG9zdHM7IGkrKykgew0KKwlpZiAoUExEQi0+ZGJfaG9zdHNbaV0uZGIpDQorCSAgICBQUWZpbmlz aChQTERCLT5kYl9ob3N0c1tpXS5kYik7DQorCW15ZnJlZShQTERCLT5kYl9ob3N0c1tpXS5ob3N0 bmFtZSk7DQorICAgIH0NCisgICAgbXlmcmVlKChjaGFyICopIFBMREItPmRiX2hvc3RzKTsNCisg ICAgbXlmcmVlKChjaGFyICopIChQTERCKSk7DQorfQ0KKw0KKw0KKy8qKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqDQor ICogcHVibGljIGludGVyZmFjZSBkaWN0X3Bnc3FsX3VwZGF0ZSAtIGFkZCBvciB1cGRhdGUgdGFi bGUgZW50cnkNCisgKg0KKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKiovDQorc3RhdGljIHZvaWQgZGljdF9wZ3NxbF91 cGRhdGUoRElDVCAqZGljdCwgY29uc3QgY2hhciAqdW51c2VkX25hbWUsIGNvbnN0IGNoYXIgKnVu dXNlZF92YWx1ZSkNCit7DQorICAgIERJQ1RfUEdTUUwgKmRpY3RfcGdzcWwgPSAoRElDVF9QR1NR TCAqKSBkaWN0Ow0KKw0KKyAgICBtc2dfZmF0YWwoImRpY3RfcGdzcWxfdXBkYXRlOiBhdHRlbXB0 IHRvIHVwZGF0ZSBwZ3NxbCBkYXRhYmFzZSIpOw0KK30NCisNCisjZW5kaWYNCg== ------------751ED1A5320277C1 Content-Type: application/octet-stream; name="dict_pgsql.h.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="dict_pgsql.h.patch" LS0tIHNuYXBzaG90LTIwMDExMTA1L3NyYy91dGlsL2RpY3RfcGdzcWwuaAlXZWQgTm92IDE0IDEz OjAyOjI1IDIwMDEKKysrIHNuYXBzaG90LTIwMDExMTA1b2xkL3NyYy91dGlsL2RpY3RfcGdzcWwu aAlXZWQgTm92IDE0IDEyOjMwOjMzIDIwMDEKQEAgLTEgKzEsMTUgQEAKLQorI2lmZGVmIEhBU19Q R1NRTA0KKw0KKyNpbmNsdWRlIDx0aW1lLmg+DQorI2luY2x1ZGUgPHBvc3RncmVzLmg+DQorI2lu Y2x1ZGUgPGxpYnBxLWZlLmg+DQorDQorI2RlZmluZSBTVEFUQUNUSVZFIDANCisjZGVmaW5lIFNU QVRGQUlMIDENCisjZGVmaW5lIFNUQVRVTlRSSUVEIDINCisjZGVmaW5lIFJFVFJZX0NPTk5fSU5U ViA2MAkJLyogMSBtaW51dGUgKi8NCisNCitleHRlcm4gRElDVCAqZGljdF9wZ3NxbF9vcGVuKGNv bnN0IGNoYXIgKm5hbWUsIGludCB1bnVzZWRfZmxhZ3MsIGludCBkaWN0X2ZsYWdzKTsNCisNCisN CisjZW5kaWYNCg== ------------751ED1A5320277C1 Content-Type: application/octet-stream; name="Makefile.in.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="Makefile.in.patch" LS0tIHNuYXBzaG90LTIwMDExMTA1L3NyYy91dGlsL01ha2VmaWxlLmluCVNhdCBOb3YgIDMgMDI6 MTc6MzcgMjAwMQorKysgc25hcHNob3QtMjAwMTExMDVvbGQvc3JjL3V0aWwvTWFrZWZpbGUuaW4J V2VkIE5vdiAxNCAxMjozOTo0MSAyMDAxCkBAIC0yLDcgKzIsNyBAQAogU1JDUwk9IGFyZ3YuYyBh cmd2X3NwbGl0LmMgYmFzZW5hbWUuYyBiaW5oYXNoLmMgY2hyb290X3VpZC5jIFwKIAljbG9zZV9v bl9leGVjLmMgY29uY2F0ZW5hdGUuYyBkaWN0LmMgZGljdF9kYi5jIGRpY3RfZGJtLmMgXAogCWRp Y3RfZW52LmMgZGljdF9odC5jIGRpY3RfbGRhcC5jIGRpY3RfbXlzcWwuYyBkaWN0X25pLmMgZGlj dF9uaXMuYyBcCi0JZGljdF9uaXNwbHVzLmMgZGljdF9vcGVuLmMgZGlyX2ZvcmVzdC5jIGRvemUu YyBlbnZpcm9uLmMgXAorCWRpY3RfbmlzcGx1cy5jIGRpY3Rfb3Blbi5jIGRpY3RfcGdzcWwuYyBk aXJfZm9yZXN0LmMgZG96ZS5jIGVudmlyb24uYyBcCiAJZXZlbnRzLmMgZXhlY19jb21tYW5kLmMg Zmlmb19saXN0ZW4uYyBmaWZvX3RyaWdnZXIuYyBmaWxlX2xpbWl0LmMgXAogCWZpbmRfaW5ldC5j IGZzc3BhY2UuYyBmdWxsbmFtZS5jIGdldF9kb21haW5uYW1lLmMgZ2V0X2hvc3RuYW1lLmMgXAog CWh0YWJsZS5jIGluZXRfYWRkcl9ob3N0LmMgaW5ldF9hZGRyX2xpc3QuYyBpbmV0X2FkZHJfbG9j YWwuYyBcCkBAIC0yOCw3ICsyOCw3IEBACiBPQkpTCT0gYXJndi5vIGFyZ3Zfc3BsaXQubyBiYXNl bmFtZS5vIGJpbmhhc2gubyBjaHJvb3RfdWlkLm8gXAogCWNsb3NlX29uX2V4ZWMubyBjb25jYXRl bmF0ZS5vIGRpY3QubyBkaWN0X2RiLm8gZGljdF9kYm0ubyBcCiAJZGljdF9lbnYubyBkaWN0X2h0 Lm8gZGljdF9sZGFwLm8gZGljdF9teXNxbC5vIGRpY3RfbmkubyBkaWN0X25pcy5vIFwKLQlkaWN0 X25pc3BsdXMubyBkaWN0X29wZW4ubyBkaXJfZm9yZXN0Lm8gZG96ZS5vIGVudmlyb24ubyBcCisJ ZGljdF9uaXNwbHVzLm8gZGljdF9vcGVuLm8gZGljdF9wZ3NxbC5vIGRpcl9mb3Jlc3QubyBkb3pl Lm8gZW52aXJvbi5vIFwKIAlldmVudHMubyBleGVjX2NvbW1hbmQubyBmaWZvX2xpc3Rlbi5vIGZp Zm9fdHJpZ2dlci5vIGZpbGVfbGltaXQubyBcCiAJZmluZF9pbmV0Lm8gZnNzcGFjZS5vIGZ1bGxu YW1lLm8gZ2V0X2RvbWFpbm5hbWUubyBnZXRfaG9zdG5hbWUubyBcCiAJaHRhYmxlLm8gaW5ldF9h ZGRyX2hvc3QubyBpbmV0X2FkZHJfbGlzdC5vIGluZXRfYWRkcl9sb2NhbC5vIFwKQEAgLTUzLDcg KzUzLDcgQEAKIAlhdHRyX3NjYW4ubyBiYXNlNjRfY29kZS5vCiBIRFJTCT0gYXJndi5oIGF0dHIu aCBiaW5oYXNoLmggY2hyb290X3VpZC5oIGNvbm5lY3QuaCBkaWN0LmggZGljdF9kYi5oIFwKIAlk aWN0X2RibS5oIGRpY3RfZW52LmggZGljdF9odC5oIGRpY3RfbGRhcC5oIGRpY3RfbXlzcWwuaCBc Ci0JZGljdF9uaS5oIGRpY3RfbmlzLmggZGljdF9uaXNwbHVzLmggZGlyX2ZvcmVzdC5oIGV2ZW50 cy5oIFwKKwlkaWN0X25pLmggZGljdF9uaXMuaCBkaWN0X25pc3BsdXMuaCBkaWN0X3Bnc3FsLmgg ZGlyX2ZvcmVzdC5oIGV2ZW50cy5oIFwKIAlleGVjX2NvbW1hbmQuaCBmaW5kX2luZXQuaCBmc3Nw YWNlLmggZnVsbG5hbWUuaCBnZXRfZG9tYWlubmFtZS5oIFwKIAlnZXRfaG9zdG5hbWUuaCBodGFi bGUuaCBpbmV0X2FkZHJfaG9zdC5oIGluZXRfYWRkcl9saXN0LmggXAogCWluZXRfYWRkcl9sb2Nh bC5oIGluZXRfdXRpbC5oIGlvc3R1ZmYuaCBsaW5lX3dyYXAuaCBsaXN0ZW4uaCBsc3RhdF9hcy5o IFwK ------------751ED1A5320277C1 Content-Type: application/octet-stream; name="PGSQL_README.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="PGSQL_README.patch" ZGlmZiAtdSAtciAtTiBzbmFwc2hvdC0yMDAxMTEwNS9QR1NRTF9SRUFETUUgc25hcHNob3QtMjAw MTExMDVvbGQvUEdTUUxfUkVBRE1FCi0tLSBzbmFwc2hvdC0yMDAxMTEwNS9QR1NRTF9SRUFETUUJ V2VkIE5vdiAxNCAxMjo1OTo1NyAyMDAxCisrKyBzbmFwc2hvdC0yMDAxMTEwNW9sZC9QR1NRTF9S RUFETUUJV2VkIE5vdiAxNCAxMjozMDozMiAyMDAxCkBAIC0xICsxLDk0IEBACitQb3N0Z3JlU1FM IG1hcCB0eXBlIGZvciBQb3N0Zml4LgorCitUaGlzIGlzIGJhc2VkIHVwb24gY29kZSB3cml0dGVu IGJ5IFNjb3R0IENvdHRvbiBhbmQgSm9zaHVhIE1hcmN1cywgSUMgR3JvdXAsIEluYy4KKworQWN0 dWFsbHkgaXQgd2FzIHJlYWxseSBtb3JlIG9mIGEgc2VhcmNoIGFuZCByZXBsYWNlIHNvcnQgb2Yg ZGVhbCBmb3IgdGhlCittb3N0IHBhcnQuCisKK0FueXdheXMsIHRoZSBQb3N0Z3JlU1FMIGNoYW5n ZXMgd2VyZSBkb25lIGJ5IEFhcm9uIFNldGhtYW4KKzxhbmRyb3N5bkByYXRib3gub3JnPiBzbyBi dWcgaGltIHdpdGggY29tcGxhaW50cyBpZiB0aGlzIGRvZXNuJ3Qgd29yayByaWdodC4KKworCitJ biBvcmRlciB0byBidWlsZCBwb3N0Zml4IHdpdGggcGdzcWwgbWFwIHN1cHBvcnQsIHlvdSB3aWxs IG5lZWQgdG8gYWRkCistREhBU19QR1NRTCBhbmQgLUkgZm9yIHRoZSBkaXJlY3RvcnkgY29udGFp bmluZyB0aGUgUG9zdGdyZVNRTCBoZWFkZXJzIGFuZAordGhlIGxpYnBxIGxpYnJhcnkgdG8gQVVY TElCUywgZm9yIGV4YW1wbGU6CisKK21ha2UgLWYgTWFrZWZpbGUuaW5pdCBtYWtlZmlsZXMgXAor CSdDQ0FSR1M9LURIQVNfUEdTUUwgLUkvdXNyL2luY2x1ZGUvcGdzcWwnIFwKKwknQVVYTElCUz0t TC91c3IvbGliIC1scHEnCisKK3RoZW4sIGp1c3QgcnVuICdtYWtlJy4KKworUG9zdGZpeCBpbnN0 YWxsYXRpb25zIHdoaWNoIG1heSBiZW5lZml0IGZyb20gdXNpbmcgcGdzcWwgbWFwIHR5cGVzCitp bmNsdWRlIHNpdGVzIHRoYXQgaGF2ZSBhIG5lZWQgZm9yIGluc3RhbnRhbmVvdXMgdXBkYXRlcyBv ZgorZm9yd2FyZGluZywgYW5kIHNpdGVzIHRoYXQgbWF5IGJlbmVmaXQgZnJvbSBoYXZpbmcgbWFp bCBleGNoYW5nZXJzCityZWZlcmVuY2UgYSBuZXR3b3JrZWQgZGF0YWJhc2UsIHBvc3NpYmx5IHdv cmtpbmcgaW4gY29uanVuY3Rpb24gd2l0aCBhCitjdXN0b21lciBkYXRhYmFzZSBvZiBzb3J0cy4K KworT25jZSBwb3N0Zml4IGlzIGJ1aWx0IHdpdGggbXlzcWwgc3VwcG9ydCwgeW91IGNhbiBzcGVj aWZ5IGEgbWFwIHR5cGUKK2luIG1haW4uY2YgbGlrZSB0aGlzOgorCithbGlhc19tYXBzID0gcGdz cWw6L2V0Yy9wb3N0Zml4L3Bnc3FsLWFsaWFzZXMuY2YKKworVGhlIGZpbGUgL2V0Yy9wb3N0Zml4 L3Bnc3FsLWFsaWFzZXMuY2Ygc3BlY2lmaWVzIGxvdHMgb2YgaW5mb3JtYXRpb24KK3RlbGxpbmcg cG9zdGZpeCBob3cgdG8gcmVmZXJlbmNlIHRoZSBwZ3NxbCBkYXRhYmFzZS4gIEFuIGV4YW1wbGUg cGdzcWwgCittYXAgY29uZmlnIGZpbGUgZm9sbG93czoKKworIworIyBwZ3NxbCBjb25maWcgZmls ZSBmb3IgYWxpYXMgbG9va3VwcyBvbiBwb3N0Zml4CisjIGNvbW1lbnRzIGFyZSBvay4KKyMKKwor IyB0aGUgdXNlciBuYW1lIGFuZCBwYXNzd29yZCB0byBsb2cgaW50byB0aGUgbXlzcWwgc2VydmVy Cit1c2VyID0gc29tZW9uZQorcGFzc3dvcmQgPSBzb21lX3Bhc3N3b3JkIAorCisjIHRoZSBkYXRh YmFzZSBuYW1lIG9uIHRoZSBzZXJ2ZXJzCitkYm5hbWUgPSBjdXN0b21lcl9kYXRhYmFzZQorCisj IHRoZSB0YWJsZSBuYW1lCit0YWJsZSA9IG14YWxpYXNlcworCisjCitzZWxlY3RfZmllbGQgPSBm b3J3X2FkZHIKK3doZXJlX2ZpZWxkID0gYWxpYXMKKworIyB5b3UgbWF5IHNwZWNpZnkgYWRkaXRp b25hbF9jb25kaXRpb25zIGhlcmUKK2FkZGl0aW9uYWxfY29uZGl0aW9ucyA9IGFuZCBzdGF0dXMg PSAncGFpZCcKKworIyB0aGUgYWJvdmUgdmFyaWFibGVzIHdpbGwgcmVzdWx0IGluIGEgcXVlcnkg b2YKKyMgdGhlIGZvcm06IAorIyBzZWxlY3QgZm9yd19hZGRyIGZyb20gbXhhbGlhc2VzIHdoZXJl IGFsaWFzID0gJyRsb29rdXAnIGFuZCBzdGF0dXMgPSAncGFpZCcKKyMgKCRsb29rdXAgaXMgZXNj YXBlZCBzbyBpZiBpdCBjb250YWlucyBzaW5nbGUgcXVvdGVzIG9yIG90aGVyIG9kZAorIyBjaGFy YWN0ZXJzLCBpdCB3aWxsIG5vdCBjYXVzZSBhIHBhcnNlIGVycm9yIGluIHRoZSBzcWwpLgorIwor IyB0aGUgaG9zdHMgdGhhdCBwb3N0Zml4IHdpbGwgdHJ5IHRvIGNvbm5lY3QgdG8KKyMgYW5kIHF1 ZXJ5IGZyb20gKGluIHRoZSBvcmRlciBsaXN0ZWQpCisjIHNwZWNpZnkgdW5peDogZm9yIHVuaXgt ZG9tYWluIHNvY2tldHMsIGluZXQ6IGZvciBUQ1AgY29ubmVjdGlvbnMgKGRlZmF1bHQpCitob3N0 cyA9IGhvc3QxLnNvbWUuZG9tYWluIGhvc3QyLnNvbWUuZG9tYWluIHVuaXg6L2ZpbGUvbmFtZQor CisjIGVuZCBwZ3NxbCBjb25maWcgZmlsZQorCitTb21lIG5vdGVzOgorCitUaGlzIGNvbmZpZ3Vy YXRpb24gaW50ZXJmYWNlIHNldHVwIGFsbG93cyBmb3IgbXVsdGlwbGUgbXlzcWwKK2RhdGFiYXNl czogeW91IGNhbiB1c2Ugb25lIGZvciBhIHZpcnR1YWwgdGFibGUsIG9uZSBmb3IgYW4gYWNjZXNz Cit0YWJsZSwgYW5kIG9uZSBmb3IgYW4gYWxpYXNlcyB0YWJsZSBpZiB5b3Ugd2FudC4KKworU2lu Y2Ugc2l0ZXMgdGhhdCBoYXZlIGEgbmVlZCBmb3IgbXVsdGlwbGUgbWFpbCBleGNoYW5nZXJzIG1h eSBlbmpveQordGhlIGNvbnZlbmllbmNlIG9mIHVzaW5nIGEgbmV0d29ya2VkIG1haWxlciBkYXRh YmFzZSwgYnV0IGRvIG5vdCB3YW50IAordG8gaW50cm9kdWNlIGEgc2luZ2xlIHBvaW50IG9mIGZh aWx1cmUgdG8gdGhlaXIgc3lzdGVtLCB3ZSd2ZSBpbmNsdWRlZCAKK3RoZSBhYmlsaXR5IHRvIGhh dmUgcG9zdGZpeCByZWZlcmVuY2UgbXVsdGlwbGUgaG9zdHMgZm9yIGFjY2VzcyB0byBhCitzaW5n bGUgbXlzcWwgbWFwLiAgVGhpcyB3aWxsIHdvcmsgaWYgc2l0ZXMgc2V0IHVwIG1pcnJvcmVkIG15 c3FsCitkYXRhYmFzZXMgb24gdHdvIG9yIG1vcmUgaG9zdHMuICBXaGVuZXZlciBxdWVyaWVzIGZh aWwgd2l0aCBhbiBlcnJvcgorYXQgb25lIGhvc3QsIHRoZSByZXN0IG9mIHRoZSBob3N0cyB3aWxs IGJlIHRyaWVkIGluIG9yZGVyLiAgRWFjaCBob3N0Cit0aGF0IGlzIGluIGFuIGVycm9yIHN0YXRl IHdpbGwgdW5kZXJnbyBhIHJlY29ubmVjdGlvbiBhdHRlbXB0IGV2ZXJ5IHNvIAorb2Z0ZW4sIGFu ZCBpZiBubyBteXNxbCBzZXJ2ZXIgaG9zdHMgYXJlIHJlYWNoYWJsZSwgdGhlbiBtYWlsIHdpbGwg YmUKK2RlZmVycmVkIHVudGlsIGF0IGxlYXN0IG9uZSBvZiB0aG9zZSBob3N0cyBpcyByZWFjaGFi bGUuCisKK1BlcmZvcm1hbmNlIG9mIHBvc3RmaXggd2l0aCBwZ3NxbCBoYXMgbm90IGJlZW4gdGhv cm91Z2hseSB0ZXN0ZWQsCitob3dldmVyLCB3ZSBoYXZlIGZvdW5kIGl0IHRvIGJlIHN0YWJsZS4g IEJ1c3kgbWFpbCBzZXJ2ZXJzIHVzaW5nIHBnc3FsCittYXBzIHdpbGwgZ2VuZXJhdGUgbG90cyBv ZiBjb25jdXJyZW50IHBnc3FsIGNsaWVudHMsIHNvIHRoZSBwZ3NxbAorc2VydmVyKHMpIHNob3Vs ZCBiZSBydW4gd2l0aCB0aGlzIGZhY3QgaW4gbWluZC4gIEFueSBmdXJ0aGVyCitwZXJmb3JtYW5j ZSBpbmZvcm1hdGlvbiwgaW4gYWRkaXRpb24gdG8gYW55IGZlZWRiYWNrIGlzIG1vc3Qgd2VsY29t ZS4KKwo= ------------751ED1A5320277C1 Content-Type: application/octet-stream; name="snapshot-20011105_quota.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="snapshot-20011105_quota.patch" ZGlmZiAtdSAtLW5ldy1maWxlIC0tcmVjdXJzaXZlIHNuYXBzaG90LTIwMDExMTA1Lm9yaWcvVklS VFVBTF9SRUFETUUgc25hcHNob3QtMjAwMTExMDUvVklSVFVBTF9SRUFETUUKLS0tIHNuYXBzaG90 LTIwMDExMTA1Lm9yaWcvVklSVFVBTF9SRUFETUUJRnJpIEZlYiAyMyAwMTo1NDoyMSAyMDAxCisr KyBzbmFwc2hvdC0yMDAxMTEwNS9WSVJUVUFMX1JFQURNRQlUdWUgTm92ICA2IDExOjMyOjA3IDIw MDEKQEAgLTc1LDYgKzc1LDI0IEBACiAgICAgU3BlY2lmaWVzIGEgbWluaW11bSB1aWQgdGhhdCB3 aWxsIGJlIGFjY2VwdGVkIGFzIGEgcmV0dXJuIGZyb20KICAgICBhIHZpcnR1YWxfdWlkX21hcHMg bG9va3VwLiBSZXR1cm5lZCB2YWx1ZXMgbGVzcyB0aGFuIHRoaXMgd2lsbAogICAgIGJlIHJlamVj dGVkLCBhbmQgdGhlIG1lc3NhZ2Ugd2lsbCBiZSBkZWZlcnJlZC4KKyAgICBOb3RlIHRoYXQgdGhp cyB2YWx1ZSBpcyBub3QgY2hlY2tlZCB3aGVuIHZpcnR1YWxfc3RhdGljX3VpZGdpZCBpcworICAg IHNldCB0byBvbi4KKwordmlydHVhbF9zdGF0aWNfdWlkZ2lkCisKKyAgICBXaGVuIHNldCB0byBZ ZXMsIHRoZSB2aXJ0dWFsX3N0YXRpY191aWQgYW5kIHZpcnR1YWxfc3RhdGljX2dpZCB3aWxsCisg ICAgYmUgdXNlZCBmb3IgYWxsIHJlY2lwaWVudHMgaW5zdGVhZCBvZiB2aXJ0dWFsX3VpZF9tYXBz IGFuZCB2aXJ0dWFsX2dpZF9tYXBzLgorICAgIE5vdGUgdGhhdCB2aXJ0dWFsX21pbmltdW1fdWlk IHdpbGwgbm90IGJlIHVzZWQgYXQgYWxsLgorCit2aXJ0dWFsX3N0YXRpY191aWQKKworICAgIFRo ZSB1aWQgdG8gdXNlIGZvciB0aGUgcmVjaXBpZW50cyB3aGVuIHZpcnR1YWxfc3RhdGljX3VpZGdp ZCBpcyBzZXQgdG8KKyAgICB5ZXMuCisKK3ZpcnR1YWxfc3RhdGljX2dpZAorCisgICAgVGhlIGdp ZCB0byB1c2UgZm9yIHRoZSByZWNpcGllbnRzIHdoZW4gdmlydHVhbF9zdGF0aWNfdWlkZ2lkIGlz IHNldCB0bworICAgIHllcy4KIAogdmlydHVhbF91aWRfbWFwcwogCkBAIC04NCw2ICsxMDIsMTEg QEAKICAgICBGb3Igc2VjdXJpdHkgcmVhc29ucywgcmVnZXhwIG1hcHMgYXJlIG5vdCBhbGxvd2Vk IGhlcmUsIGJlY2F1c2UKICAgICB0aGVpciAkMSBldGMuIHN1YnN0aXR1dGlvbnMgd291bGQgb3Bl biBhIHNlY3VyaXR5IGhvbGUuCiAKKyAgICBSZWNpcGllbnRzIG1heSBiZSBzcGVjaWZpZWQgYnkg ZnVsbCBhZGRyZXNzICh1c2VyQGRvbWFpbiksCisgICAgdXNlciBuYW1lICh1c2VyIC0gbm90IHJl Y29tbWVuZGVkIGhvd2V2ZXIpIG9yIGRvbWFpbiBuYW1lIG9ubHkKKyAgICAoQGRvbWFpbikuIFRo ZSBsYXR0ZXIgZm9ybWF0IGlzIHZlcnkgdXNlZnVsIGZvciB1c2VyIHBlciB2aXJ0dWFsCisgICAg ZG9tYWluIGNvbmZpZ3VyYXRpb25zLgorICAgIAogdmlydHVhbF9naWRfbWFwcwogCiAgICAgUmVj aXBpZW50cyBhcmUgbG9va2VkIHVwIGluIHRoaXMgbWFwIHRvIGRldGVybWluZSB0aGUgR0lEIChn cm91cApAQCAtOTEsNyArMTE0LDEyIEBACiAKICAgICBGb3Igc2VjdXJpdHkgcmVhc29ucywgcmVn ZXhwIG1hcHMgYXJlIG5vdCBhbGxvd2VkIGhlcmUsIGJlY2F1c2UKICAgICB0aGVpciAkMSBldGMu IHN1YnN0aXR1dGlvbnMgd291bGQgb3BlbiBhIHNlY3VyaXR5IGhvbGUuCi0KKyAgICAKKyAgICBS ZWNpcGllbnRzIG1heSBiZSBzcGVjaWZpZWQgYnkgZnVsbCBhZGRyZXNzICh1c2VyQGRvbWFpbiks CisgICAgdXNlciBuYW1lICh1c2VyIC0gbm90IHJlY29tbWVuZGVkIGhvd2V2ZXIpIG9yIGRvbWFp biBuYW1lIG9ubHkKKyAgICAoQGRvbWFpbikuIFRoZSBsYXR0ZXIgZm9ybWF0IGlzIHZlcnkgdXNl ZnVsIGZvciBncm91cCBwZXIgdmlydHVhbAorICAgIGRvbWFpbiBjb25maWd1cmF0aW9ucy4KKyAg ICAKIHZpcnR1YWxfbWFpbGJveF9sb2NrCiAKICAgICBUaGlzIHNldHRpbmcgaXMgaWdub3JlZCBp biBjYXNlIG9mIG1haWxkaXIgZGVsaXZlcnkuCkBAIC0xMDIsMTMgKzEzMCw1NSBAQAogICAgIHJl cXVpcmVzIHRoYXQgdGhlIHJlY2lwaWVudCBVSUQgb3IgR0lEIGhhcyB3cml0ZSBhY2Nlc3MgdG8g dGhlCiAgICAgcGFyZW50IGRpcmVjdG9yeSBvZiB0aGUgbWFpbGJveCBmaWxlLgogCi0gICAgVXNl IHRoZSAicG9zdGNvbmYgLW0iIGNvbW1hbmQgdG8gZmluZCBvdXQgd2hhdCBsb2NraW5nIG1ldGhv ZHMKKyAgICBVc2UgdGhlICJwb3N0Y29uZiAtbCIgY29tbWFuZCB0byBmaW5kIG91dCB3aGF0IGxv Y2tpbmcgbWV0aG9kcwogICAgIFBvc3RmaXggc3VwcG9ydHMgb24geW91ciBzeXN0ZW0uCiAKIHZp cnR1YWxfbWFpbGJveF9zaXplCiAKLSAgICBBbiB1cHBlciBsaW1pdCBvbiB0aGUgc2l6ZSBvZiBh IG1haWxib3ggb3IgbWFpbGRpciBmaWxlLgorICAgIEFuIHVwcGVyIGxpbWl0IG9uIHRoZSBzaXpl IG9mIGEgbWFpbGJveCBvciBtYWlsZGlyIGZpbGUgaW4gYnl0ZXMuCisKK3ZpcnR1YWxfbWFpbGJv eF9saW1pdF9tYXBzCisKKyAgICBSZWNpcGllbnRzIGFyZSBsb29rZWQgdXAgaW4gdGhpcyBtYXAg dG8gZGV0ZXJtaW5lIHRoZSB1cHBlciBsaW1pdAorICAgIG9uIHRoZSBzaXplIG9mIGEgbWFpbGJv eCBmaWxlIG9yIGEgbWFpbGRpciBkaXJlY3RvcnkgKGFuZCBzdWJkaXJlY3RvcmllcykKKyAgICBp biBieXRlcy4KKyAgICAKKyAgICBSZWNpcGllbnRzIG1heSBiZSBzcGVjaWZpZWQgYnkgZnVsbCBh ZGRyZXNzICh1c2VyQGRvbWFpbiksCisgICAgdXNlciBuYW1lICh1c2VyIC0gbm90IHJlY29tbWVu ZGVkIGhvd2V2ZXIpIG9yIGRvbWFpbiBuYW1lIG9ubHkKKyAgICAoQGRvbWFpbikuIFRoZSBsYXR0 ZXIgZm9ybWF0IGlzIHZlcnkgdXNlZnVsIGZvciBvbmUgbGltaXQgcGVyCisgICAgdmlydHVhbCBk b21haW4gY29uZmlndXJhdGlvbnMuCisKK3ZpcnR1YWxfbWFpbGRpcl9saW1pdF9tZXNzYWdlCisK KyAgICBFcnJvciBtZXNzYWdlIHRvIGRpc3BsYXkgd2hlbiBNYWlsYm94L01haWxkaXIgbGltaXQg aGFzIGJlZW4gcmVhY2hlZC4KKyAgICBUaGUgbWVzc2FnZSBzaXplIGlzIGxpbWl0ZWQgdG8gODAg Y2hhcmFjdGVycy4KKyAgICAoTk9URTogb25seSB1c2VkIG9uIE1haWxkaXIgZGVsaXZlcnkgZm9y IG5vdykuCisKK3ZpcnR1YWxfbWFpbGJveF9saW1pdF9pbmJveAorCisgICAgQm9vbGVhbiBhbmQg Y2hlY2tlZCBvbmx5IHdoZW4gTWFpbGRpciBkZWxpdmVyeSBpcyB1c2VkLiBJZiBzZXQgdG8KKyAg ICB5ZXMgKGRlZmF1bHQgbm8pLCBvbmx5IElOQk9YIGlzIGNoZWNrZWQgbm90IGFsbCBzdWJmb2xk ZXJzIHRoYXQgaGFzIGJlZW4KKyAgICBjcmVhdGVkIGJ5IElNQVAgYWNjZXNzIHRvIE1haWxkaXIu CisgICAgSWYgdmlydHVhbF9tYWlsZGlyX2V4dGVuZGVkIGlzIHNldCwgdGhlbiB0aGUgZGlza3F1 b3RhIGNhbGN1bGF0aW9uIHdpbGwKKyAgICBiZSBjb21wdXRlZCB1c2luZyBNYWlsZGlyKysgZmls YW5hbWUgaW5zdGVhZCBvZiB1c2luZyBzdGF0KCkuCisKK3ZpcnR1YWxfbWFpbGJveF9saW1pdF9v dmVycmlkZQorCisgICAgQm9vbGVhbi4gSWYgc2V0IHRoaXMgd2lsbCBvdmVycmlkZSBtZXNzYWdl X3NpemVfbGltaXQgZXZlbiBpZiB0aGUKKyAgICB2aXJ0dWFsX21haWxib3hfbGltaXRfc2l6ZSB2 YWx1ZSBvciBpZiB0aGUgdmFsdWUgZ2l2ZW4gYnkgdGhlIG1hcHMKKyAgICB2aXJ0dWFsX21haWxi b3hfbGltaXRfbWFwcyBpcyBzbWFsbGVyIHRoYW4gbWVzc2FnZV9zaXplX2xpbWl0LgorCit2aXJ0 dWFsX21haWxkaXJfZXh0ZW5kZWQKKworICAgIEJvb2xlYW4gYW5kIHVzZWQgb25seSBvbiBNYWls ZGlyIGRlbGl2ZXJ5LiBJZiBzZXQgdG8geWVzIChkZWZhdWx0IG5vKSwgCisgICAgdGhlbiB0aGUg c2l6ZSBvZiB0aGUgbWFpbCB3aWxsIGJlIGFwcGVuZWQgdG8gdGhlIGZpbGVuYW1lIHRvIGZvbGxv dyB0aGUKKyAgICBzcGVjaWZpY2F0aW9uIG9mIE1haWxkaXIrKyAodXNlZCB3aXRoIGNvdXJpZXIt aW1hcCBzb2Z0cXVvdGEgb3B0aW9ucykuCisKK3ZpcnR1YWxfbWFpbGRpcl9zdWZmaXgKIAorICAg IFN0cmluZyB0byBhZGQgdG8gZXhpc3RpbmcgTWFpbGRpciBQYXRoLiBNdXN0IGhhdmUgYSAiLyIg dHJhaWxsZXIgdG8KKyAgICBoYXZlIGEgZGlyZWN0b3J5IG1ha2VkLgorCQkgICAgCiBFeGFtcGxl IDE6IHVzaW5nIHRoZSB2aXJ0dWFsIGRlbGl2ZXJ5IGFnZW50IGZvciBhbGwgbG9jYWwgbWFpbAog PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT0KIApkaWZmIC11IC0tbmV3LWZpbGUgLS1yZWN1cnNpdmUgc25hcHNob3QtMjAwMTExMDUu b3JpZy9zcmMvZ2xvYmFsL21haWxfcGFyYW1zLmggc25hcHNob3QtMjAwMTExMDUvc3JjL2dsb2Jh bC9tYWlsX3BhcmFtcy5oCi0tLSBzbmFwc2hvdC0yMDAxMTEwNS5vcmlnL3NyYy9nbG9iYWwvbWFp bF9wYXJhbXMuaAlTYXQgT2N0IDEzIDAyOjU1OjM4IDIwMDEKKysrIHNuYXBzaG90LTIwMDExMTA1 L3NyYy9nbG9iYWwvbWFpbF9wYXJhbXMuaAlUdWUgTm92ICA2IDExOjMyOjA3IDIwMDEKQEAgLTEy NDQsNiArMTI0NCwxOCBAQAogI2RlZmluZSBERUZfVklSVF9NQUlMQk9YX01BUFMJCSIiCiBleHRl cm4gY2hhciAqdmFyX3ZpcnRfbWFpbGJveF9tYXBzOwogCisjZGVmaW5lIFZBUl9WSVJUX1NUQVRJ Q19VSURHSUQJCSJ2aXJ0dWFsX3N0YXRpY191aWRnaWQiCisjZGVmaW5lIERFRl9WSVJUX1NUQVRJ Q19VSURHSUQJCTAKK2V4dGVybiBib29sIHZhcl92aXJ0X3N0YXRpY191aWRnaWQ7CisKKyNkZWZp bmUgVkFSX1ZJUlRfU1RBVElDX1VJRAkJInZpcnR1YWxfc3RhdGljX3VpZCIKKyNkZWZpbmUgREVG X1ZJUlRfU1RBVElDX1VJRAkJMTAwCitleHRlcm4gaW50IHZhcl92aXJ0X3N0YXRpY191aWQ7CisK KyNkZWZpbmUgVkFSX1ZJUlRfU1RBVElDX0dJRAkJInZpcnR1YWxfc3RhdGljX2dpZCIKKyNkZWZp bmUgREVGX1ZJUlRfU1RBVElDX0dJRAkJMTAwCitleHRlcm4gaW50IHZhcl92aXJ0X3N0YXRpY19n aWQ7CisKICNkZWZpbmUgVkFSX1ZJUlRfVUlEX01BUFMJCSJ2aXJ0dWFsX3VpZF9tYXBzIgogI2Rl ZmluZSBERUZfVklSVF9VSURfTUFQUwkJIiIKIGV4dGVybiBjaGFyICp2YXJfdmlydF91aWRfbWFw czsKQEAgLTEyNTEsNiArMTI2MywzMCBAQAogI2RlZmluZSBWQVJfVklSVF9HSURfTUFQUwkJInZp cnR1YWxfZ2lkX21hcHMiCiAjZGVmaW5lIERFRl9WSVJUX0dJRF9NQVBTCQkiIgogZXh0ZXJuIGNo YXIgKnZhcl92aXJ0X2dpZF9tYXBzOworCisjZGVmaW5lIFZBUl9WSVJUX01BSUxCT1hfTElNSVRf TUFQUwkidmlydHVhbF9tYWlsYm94X2xpbWl0X21hcHMiCisjZGVmaW5lIERFRl9WSVJUX01BSUxC T1hfTElNSVRfTUFQUwkiIgorZXh0ZXJuIGNoYXIgKnZhcl92aXJ0X21haWxib3hfbGltaXRfbWFw czsKKworI2RlZmluZSBWQVJfVklSVF9NQUlMRElSX0xJTUlUX01FU1NBR0UJInZpcnR1YWxfbWFp bGRpcl9saW1pdF9tZXNzYWdlIgorI2RlZmluZSBERUZfVklSVF9NQUlMRElSX0xJTUlUX01FU1NB R0UJIlNvcnJ5LCB0aGUgdXNlcidzIG1haWxkaXIgaGFzIG92ZXJkcmF3biBoaXMgZGlza3NwYWNl IHF1b3RhLCBwbGVhc2UgdHJ5IGFnYWluIGxhdGVyLiIKK2V4dGVybiBjaGFyICp2YXJfdmlydF9t YWlsZGlyX2xpbWl0X21lc3NhZ2U7CisKKyNkZWZpbmUgVkFSX1ZJUlRfTUFJTEJPWF9MSU1JVF9J TkJPWAkidmlydHVhbF9tYWlsYm94X2xpbWl0X2luYm94IgorI2RlZmluZSBERUZfVklSVF9NQUlM Qk9YX0xJTUlUX0lOQk9YCTAKK2V4dGVybiBib29sIHZhcl92aXJ0X21haWxib3hfbGltaXRfaW5i b3g7CisKKyNkZWZpbmUgVkFSX1ZJUlRfTUFJTEJPWF9MSU1JVF9PVkVSUklERQkidmlydHVhbF9t YWlsYm94X2xpbWl0X292ZXJyaWRlIgorI2RlZmluZSBERUZfVklSVF9NQUlMQk9YX0xJTUlUX09W RVJSSURFCTAKK2V4dGVybiBib29sIHZhcl92aXJ0X21haWxib3hfbGltaXRfb3ZlcnJpZGU7CisK KyNkZWZpbmUgVkFSX1ZJUlRfTUFJTERJUl9FWFRFTkRFRAkidmlydHVhbF9tYWlsZGlyX2V4dGVu ZGVkIgorI2RlZmluZQlERUZfVklSVF9NQUlMRElSX0VYVEVOREVECTAKK2V4dGVybiBib29sIHZh cl92aXJ0X21haWxkaXJfZXh0ZW5kZWQ7CisKKyNkZWZpbmUgVkFSX1ZJUlRfTUFJTERJUl9TVUZG SVgJCSJ2aXJ0dWFsX21haWxkaXJfc3VmZml4IgorI2RlZmluZSBERUZfVklSVF9NQUlMRElSX1NV RkZJWAkJIiIKK2V4dGVybiBjaGFyICp2YXJfdmlydF9tYWlsZGlyX3N1ZmZpeDsKIAogI2RlZmlu ZSBWQVJfVklSVF9NSU5VSUQJCQkidmlydHVhbF9taW5pbXVtX3VpZCIKICNkZWZpbmUgREVGX1ZJ UlRfTUlOVUlECQkJMTAwCmRpZmYgLXUgLS1uZXctZmlsZSAtLXJlY3Vyc2l2ZSBzbmFwc2hvdC0y MDAxMTEwNS5vcmlnL3NyYy92aXJ0dWFsL21haWxib3guYyBzbmFwc2hvdC0yMDAxMTEwNS9zcmMv dmlydHVhbC9tYWlsYm94LmMKLS0tIHNuYXBzaG90LTIwMDExMTA1Lm9yaWcvc3JjL3ZpcnR1YWwv bWFpbGJveC5jCVR1ZSBNYXIgMjcgMjM6NTI6MDEgMjAwMQorKysgc25hcHNob3QtMjAwMTExMDUv c3JjL3ZpcnR1YWwvbWFpbGJveC5jCVR1ZSBOb3YgIDYgMTE6MzI6MDcgMjAwMQpAQCAtNTYsNiAr NTYsNyBAQAogLyogR2xvYmFsIGxpYnJhcnkuICovCiAKICNpbmNsdWRlIDxtYWlsX2NvcHkuaD4K KyNpbmNsdWRlIDxtYWlsX2FkZHJfZmluZC5oPgogI2luY2x1ZGUgPG1ib3hfb3Blbi5oPgogI2lu Y2x1ZGUgPGRlZmVyLmg+CiAjaW5jbHVkZSA8c2VudC5oPgpAQCAtNzIsNiArNzMsNDAgQEAKICNk ZWZpbmUgWUVTCTEKICNkZWZpbmUgTk8JMAogCisvKiBjaGFuZ2VfbWFpbGJveF9saW1pdCAtIGNo YW5nZSBsaW1pdCBmb3IgbWFpbGJveCBmaWxlICovCisKK3N0YXRpYyBpbnQgY2hhbmdlX21haWxi b3hfbGltaXQoTE9DQUxfU1RBVEUgc3RhdGUsIFVTRVJfQVRUUiB1c3JfYXR0cikKK3sKKyAgICBj aGFyICAgKm15bmFtZSA9ICJjaGFuZ2VfbWFpbGJveF9saW1pdCI7CisgICAgY29uc3QgY2hhciAq bGltaXRfcmVzOworICAgIGxvbmcgICAgbjsKKyAgICBpbnQgICAgIHN0YXR1cyA9IE5POworICAg IAorICAgIC8qCisgICAgICogTG9vayB1cCB0aGUgbWFpbGJveCBsaW1pdCBzaXplLiBGYWxsIGJh Y2sgdG8gdmlydHVhbF9tYWlsYm94X2xpbWl0IGluCisgICAgICogY2FzZSBsaW1pdCBpcyBzbWFs bGVyIHRoYW4gbWVzc2FnZV9zaXplX2xpbWl0LgorICAgICAqLworICAgIGlmIChsaW1pdF9yZXMg PSBtYWlsX2FkZHJfZmluZCh2aXJ0dWFsX21haWxib3hfbGltaXRfbWFwcywKKwkJCQkgICBzdGF0 ZS5tc2dfYXR0ci51c2VyLCAoY2hhciAqKikgMCkpIHsKKwluID0gYXRvbChsaW1pdF9yZXMpOwor CWlmICgobiA+IDApICYmIChuIDwgdmFyX21lc3NhZ2VfbGltaXQpICYmICghdmFyX3ZpcnRfbWFp bGJveF9saW1pdF9vdmVycmlkZSkpIHsKKwkgICAgbXNnX3dhcm4oInJlY2lwaWVudCAlczogbWFp bGJveCBsaW1pdCBpcyBzbWFsbGVyIHRoYW4gJXMgIgorCQkgICAgICJpbiAlcyAtIGZhbGxpbmcg YmFjayB0byAlcyIsCisJCSAgICAgc3RhdGUubXNnX2F0dHIudXNlciwgVkFSX01FU1NBR0VfTElN SVQsCisJCSAgICAgdmlydHVhbF9tYWlsYm94X2xpbWl0X21hcHMtPnRpdGxlLAorCQkgICAgIFZB Ul9WSVJUX01BSUxCT1hfTElNSVQpOworCX0gZWxzZSB7CisJICAgIHNldF9maWxlX2xpbWl0KG4p OworCSAgICBzdGF0dXMgPSBZRVM7CisJICAgIGlmIChtc2dfdmVyYm9zZSkKKwkgICAgICAgIG1z Z19pbmZvKCIlc1slZF06IHNldCBtYXhpbXVtIG1haWxib3ggc2l6ZSAlcyB0byAlbGQiLAorCQkJ IG15bmFtZSwgc3RhdGUubGV2ZWwsIHVzcl9hdHRyLm1haWxib3gsIG4pOworCX0KKyAgICB9CisK KyAgICByZXR1cm4gKHN0YXR1cyk7Cit9CisKIC8qIGRlbGl2ZXJfbWFpbGJveF9maWxlIC0gZGVs aXZlciB0byByZWNpcGllbnQgbWFpbGJveCAqLwogCiBzdGF0aWMgaW50IGRlbGl2ZXJfbWFpbGJv eF9maWxlKExPQ0FMX1NUQVRFIHN0YXRlLCBVU0VSX0FUVFIgdXNyX2F0dHIpCkBAIC0xODQsNDIg KzIxOSw0OSBAQAogCQkJCSAgIG1haWxib3hfcmVzLCAoY2hhciAqKSAwKTsKIAogI2RlZmluZSBS RVRVUk4ocmVzKSB7IG15ZnJlZSh1c3JfYXR0ci5tYWlsYm94KTsgcmV0dXJuIChyZXMpOyB9Ci0K LSAgICAvKgotICAgICAqIExvb2sgdXAgdGhlIG1haWxib3ggb3duZXIgcmlnaHRzLiBEZWZlciBp biBjYXNlIG9mIHRyb3VibGUuCi0gICAgICovCi0gICAgaWYgKCh1aWRfcmVzID0gbWFwc19maW5k KHZpcnR1YWxfdWlkX21hcHMsIHN0YXRlLm1zZ19hdHRyLnVzZXIsCi0JCQkgICAgIERJQ1RfRkxB R19GSVhFRCkpID09IDApIHsKLQkqc3RhdHVzcCA9IGRlZmVyX2FwcGVuZChCT1VOQ0VfRkxBR19L RUVQLCBCT1VOQ0VfQVRUUihzdGF0ZS5tc2dfYXR0ciksCi0JCQkJInJlY2lwaWVudCAlczogdWlk IG5vdCBmb3VuZCBpbiAlcyIsCi0JCQkgICAgICBzdGF0ZS5tc2dfYXR0ci51c2VyLCB2aXJ0dWFs X3VpZF9tYXBzLT50aXRsZSk7Ci0JUkVUVVJOKFlFUyk7Ci0gICAgfQotICAgIGlmICgobiA9IGF0 b2wodWlkX3JlcykpIDwgdmFyX3ZpcnRfbWluaW11bV91aWQpIHsKLQkqc3RhdHVzcCA9IGRlZmVy X2FwcGVuZChCT1VOQ0VfRkxBR19LRUVQLCBCT1VOQ0VfQVRUUihzdGF0ZS5tc2dfYXR0ciksCi0J CQkJInJlY2lwaWVudCAlczogYmFkIHVpZCAlcyBpbiAlcyIsCi0JCSAgICAgc3RhdGUubXNnX2F0 dHIudXNlciwgdWlkX3JlcywgdmlydHVhbF91aWRfbWFwcy0+dGl0bGUpOwotCVJFVFVSTihZRVMp OwotICAgIH0KLSAgICB1c3JfYXR0ci51aWQgPSAodWlkX3QpIG47Ci0KLSAgICAvKgotICAgICAq IExvb2sgdXAgdGhlIG1haWxib3ggZ3JvdXAgcmlnaHRzLiBEZWZlciBpbiBjYXNlIG9mIHRyb3Vi bGUuCi0gICAgICovCi0gICAgaWYgKChnaWRfcmVzID0gbWFwc19maW5kKHZpcnR1YWxfZ2lkX21h cHMsIHN0YXRlLm1zZ19hdHRyLnVzZXIsCi0JCQkgICAgIERJQ1RfRkxBR19GSVhFRCkpID09IDAp IHsKLQkqc3RhdHVzcCA9IGRlZmVyX2FwcGVuZChCT1VOQ0VfRkxBR19LRUVQLCBCT1VOQ0VfQVRU UihzdGF0ZS5tc2dfYXR0ciksCi0JCQkJInJlY2lwaWVudCAlczogZ2lkIG5vdCBmb3VuZCBpbiAl cyIsCi0JCQkgICAgICBzdGF0ZS5tc2dfYXR0ci51c2VyLCB2aXJ0dWFsX2dpZF9tYXBzLT50aXRs ZSk7Ci0JUkVUVVJOKFlFUyk7Ci0gICAgfQotICAgIGlmICgobiA9IGF0b2woZ2lkX3JlcykpIDw9 IDApIHsKLQkqc3RhdHVzcCA9IGRlZmVyX2FwcGVuZChCT1VOQ0VfRkxBR19LRUVQLCBCT1VOQ0Vf QVRUUihzdGF0ZS5tc2dfYXR0ciksCi0JCQkJInJlY2lwaWVudCAlczogYmFkIGdpZCAlcyBpbiAl cyIsCi0JCSAgICAgc3RhdGUubXNnX2F0dHIudXNlciwgZ2lkX3JlcywgdmlydHVhbF9naWRfbWFw cy0+dGl0bGUpOwotCVJFVFVSTihZRVMpOworICAgIGlmKHZhcl92aXJ0X3N0YXRpY191aWRnaWQp IHsKKyAgICAgICAvKgorCSogU3RhdGljIHVzZWQgaGVyZQorCSovCisgICAgICAgdXNyX2F0dHIu dWlkID0gdmFyX3ZpcnRfc3RhdGljX3VpZDsKKyAgICAgICB1c3JfYXR0ci5naWQgPSB2YXJfdmly dF9zdGF0aWNfZ2lkOwkgICAgCisgICAgfSBlbHNlIHsKKyAgICAgICAvKgorICAgICAgICAqIExv b2sgdXAgdGhlIG1haWxib3ggb3duZXIgcmlnaHRzLiBEZWZlciBpbiBjYXNlIG9mIHRyb3VibGUu CisgICAgICAgICovCisgICAgICAgaWYgKCh1aWRfcmVzID0gbWFpbF9hZGRyX2ZpbmQodmlydHVh bF91aWRfbWFwcywgc3RhdGUubXNnX2F0dHIudXNlciwKKyAJCQkJICAgICAoY2hhciAqKikgMCkp ID09IDApIHsKKwkgICAqc3RhdHVzcCA9IGRlZmVyX2FwcGVuZChCT1VOQ0VfRkxBR19LRUVQLCBC T1VOQ0VfQVRUUihzdGF0ZS5tc2dfYXR0ciksCisJCQkJICAgInJlY2lwaWVudCAlczogdWlkIG5v dCBmb3VuZCBpbiAlcyIsCisJCQkgICAgICAgICBzdGF0ZS5tc2dfYXR0ci51c2VyLCB2aXJ0dWFs X3VpZF9tYXBzLT50aXRsZSk7CisJICAgUkVUVVJOKFlFUyk7CisgICAgICAgfQorICAgICAgIGlm ICgobiA9IGF0b2wodWlkX3JlcykpIDwgdmFyX3ZpcnRfbWluaW11bV91aWQpIHsKKwkgICAqc3Rh dHVzcCA9IGRlZmVyX2FwcGVuZChCT1VOQ0VfRkxBR19LRUVQLCBCT1VOQ0VfQVRUUihzdGF0ZS5t c2dfYXR0ciksCisJCQkJICAgInJlY2lwaWVudCAlczogYmFkIHVpZCAlcyBpbiAlcyIsCisJCSAg ICAgICAgc3RhdGUubXNnX2F0dHIudXNlciwgdWlkX3JlcywgdmlydHVhbF91aWRfbWFwcy0+dGl0 bGUpOworCSAgIFJFVFVSTihZRVMpOworICAgICAgIH0KKyAgICAgICB1c3JfYXR0ci51aWQgPSAo dWlkX3QpIG47CisKKyAgICAgICAvKgorICAgICAgICAqIExvb2sgdXAgdGhlIG1haWxib3ggZ3Jv dXAgcmlnaHRzLiBEZWZlciBpbiBjYXNlIG9mIHRyb3VibGUuCisgICAgICAgICovCisgICAgICAg aWYgKChnaWRfcmVzID0gbWFpbF9hZGRyX2ZpbmQodmlydHVhbF9naWRfbWFwcywgc3RhdGUubXNn X2F0dHIudXNlciwKKwkJCQkgICAgIChjaGFyICoqKSAwKSkgPT0gMCkgeworCSAgICpzdGF0dXNw ID0gZGVmZXJfYXBwZW5kKEJPVU5DRV9GTEFHX0tFRVAsIEJPVU5DRV9BVFRSKHN0YXRlLm1zZ19h dHRyKSwKKwkJCQkgICAicmVjaXBpZW50ICVzOiBnaWQgbm90IGZvdW5kIGluICVzIiwKKwkJCSAg ICAgICAgIHN0YXRlLm1zZ19hdHRyLnVzZXIsIHZpcnR1YWxfZ2lkX21hcHMtPnRpdGxlKTsKKwkg ICBSRVRVUk4oWUVTKTsKKyAgICAgICB9CisgICAgICAgaWYgKChuID0gYXRvbChnaWRfcmVzKSkg PD0gMCkgeworCSAgICpzdGF0dXNwID0gZGVmZXJfYXBwZW5kKEJPVU5DRV9GTEFHX0tFRVAsIEJP VU5DRV9BVFRSKHN0YXRlLm1zZ19hdHRyKSwKKwkJCQkgICAicmVjaXBpZW50ICVzOiBiYWQgZ2lk ICVzIGluICVzIiwKKwkJICAgICAgICBzdGF0ZS5tc2dfYXR0ci51c2VyLCBnaWRfcmVzLCB2aXJ0 dWFsX2dpZF9tYXBzLT50aXRsZSk7CisJICAgUkVUVVJOKFlFUyk7CisgICAgICAgfQorICAgICAg IHVzcl9hdHRyLmdpZCA9IChnaWRfdCkgbjsKICAgICB9Ci0gICAgdXNyX2F0dHIuZ2lkID0gKGdp ZF90KSBuOwogCiAgICAgaWYgKG1zZ192ZXJib3NlKQogCW1zZ19pbmZvKCIlc1slZF06IHNldCB1 c2VyX2F0dHI6ICVzLCB1aWQgPSAlZCwgZ2lkID0gJWQiLApAQCAtMjMzLDkgKzI3NSwxNSBAQAog CiAgICAgaWYgKExBU1RfQ0hBUih1c3JfYXR0ci5tYWlsYm94KSA9PSAnLycpCiAJKnN0YXR1c3Ag PSBkZWxpdmVyX21haWxkaXIoc3RhdGUsIHVzcl9hdHRyKTsKLSAgICBlbHNlCisgICAgZWxzZSB7 CisJaW50IGNoYW5nZWRfbGltaXQ7CisJCisJY2hhbmdlZF9saW1pdCA9IGNoYW5nZV9tYWlsYm94 X2xpbWl0KHN0YXRlLCB1c3JfYXR0cik7CiAJKnN0YXR1c3AgPSBkZWxpdmVyX21haWxib3hfZmls ZShzdGF0ZSwgdXNyX2F0dHIpOwotCisJaWYgKGNoYW5nZWRfbGltaXQpCisJICAgIHNldF9maWxl X2xpbWl0KHZhcl92aXJ0X21haWxib3hfbGltaXQpOworICAgIH0KKyAgICAKICAgICAvKgogICAg ICAqIENsZWFudXAuCiAgICAgICovCmRpZmYgLXUgLS1uZXctZmlsZSAtLXJlY3Vyc2l2ZSBzbmFw c2hvdC0yMDAxMTEwNS5vcmlnL3NyYy92aXJ0dWFsL21haWxkaXIuYyBzbmFwc2hvdC0yMDAxMTEw NS9zcmMvdmlydHVhbC9tYWlsZGlyLmMKLS0tIHNuYXBzaG90LTIwMDExMTA1Lm9yaWcvc3JjL3Zp cnR1YWwvbWFpbGRpci5jCVN1biBKYW4gMjggMjI6NDQ6MjQgMjAwMQorKysgc25hcHNob3QtMjAw MTExMDUvc3JjL3ZpcnR1YWwvbWFpbGRpci5jCVR1ZSBOb3YgIDYgMTE6MzI6MDcgMjAwMQpAQCAt MzYsNiArMzYsMTEgQEAKIAogI2luY2x1ZGUgInN5c19kZWZzLmgiCiAjaW5jbHVkZSA8ZXJybm8u aD4KKyNpbmNsdWRlIDxzeXMvdHlwZXMuaD4JLyogb3BlbmRpcigzKSwgc3RhdCgyKSAqLworI2lu Y2x1ZGUgPHN5cy9zdGF0Lmg+CS8qIHN0YXQoMikgKi8KKyNpbmNsdWRlIDxkaXJlbnQuaD4JLyog b3BlbmRpcigzKSAqLworI2luY2x1ZGUgPHVuaXN0ZC5oPgkvKiBzdGF0KDIpICovCisjaW5jbHVk ZSA8c3RkbGliLmg+CS8qIGF0b2woMykgKi8KIAogI2lmbmRlZiBFRFFVT1QKICNkZWZpbmUgRURR VU9UIEVGQklHCkBAIC01Niw2ICs2MSw3IEBACiAvKiBHbG9iYWwgbGlicmFyeS4gKi8KIAogI2lu Y2x1ZGUgPG1haWxfY29weS5oPgorI2luY2x1ZGUgPG1haWxfYWRkcl9maW5kLmg+CiAjaW5jbHVk ZSA8Ym91bmNlLmg+CiAjaW5jbHVkZSA8ZGVmZXIuaD4KICNpbmNsdWRlIDxzZW50Lmg+CkBAIC02 NSw2ICs3MSwxMjUgQEAKIAogI2luY2x1ZGUgInZpcnR1YWwuaCIKIAorLyoKKyAqIEdpdmVzIHRo ZSBzaXplIG9mIHRoZSBmaWxlIGFjY29yZGluZyBvZiB0aGUgTWFpbGRpcisrIGV4dGVuc2lvbnMK KyAqIChjb2RlIHRha2VuIGZyb20gY291cmllci1pbWFwKS4KKyAqCisgKiBBcmd1bWVudHMgOgor ICogIG4gOiBmaWxlbmFtZQorICogIAorICogUmV0dXJuIHRoZSBzaXplIGdpdmVuIGluICIsUz1z aXplIiBpbiB0aGUgZmlsZW5hbWUsCisgKiAgICB6ZXJvIGlmIGl0IGNhbm5vdCBmaW5kICIsUz1z aXplIiBpbiB0aGUgZmlsZW5hbWUuLi4KKyAqCisgKi8KK3N0YXRpYyBsb25nIG1haWxkaXJfcGFy c2VxdW90YShjb25zdCBjaGFyICpuKQoreworY29uc3QgY2hhciAqbzsKK2ludAl5ZXM7Citsb25n CXM7CisKKwlpZiAoKG89c3RycmNocihuLCAnLycpKSA9PSAwKQlvPW47CisKKwlmb3IgKDsgKm87 IG8rKykKKwkJaWYgKCpvID09ICc6JykJYnJlYWs7CisJeWVzPTA7CisJZm9yICggOyBvID49IG47 IC0tbykKKwl7CisJCWlmICgqbyA9PSAnLycpCWJyZWFrOworCisJCWlmICgqbyA9PSAnLCcgJiYg b1sxXSA9PSAnUycgJiYgb1syXSA9PSAnPScpCisJCXsKKwkJCXllcz0xOworCQkJbyArPSAzOwor CQkJYnJlYWs7CisJCX0KKwl9CisJaWYgKHllcykKKwl7CisJCXM9MDsKKwkJd2hpbGUgKCpvID49 ICcwJyAmJiAqbyA8PSAnOScpCisJCQlzPSBzKjEwICsgKCpvKysgLSAnMCcpOworCQlyZXR1cm4g czsKKwl9CisJcmV0dXJuIDA7Cit9CisKKy8qCisgKiBDaGVja3MgZGlyZWN0b3J5IGZpbGVzIGZv ciBxdW90YSAodGFrZW4gZnJvbSBleGltKQorICoKKyAqIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVk IGlmIHF1b3RhIGlzIHNldCBmb3IgYSB2aXJ0dWFsIE1haWxkaXIgYm94LgorICogSXQgc2NhbnMg dGhlIGRpcmVjdG9yeSBhbmQgc3RhdHMgYWxsIHRoZSBmaWxlcyBpbiBvcmRlciB0byBnZXQgYSB0 b3RhbAorICogc2l6ZSBhbmQgY291bnQuIFRoaXMgaXMgYW4gZXhwZW5zaXZlIHRoaW5nIHRvIGRv LiBCdXQgaW4gdGhpcyB3YXkgbm8KKyAqIHdyaXRlIGFjY2VzcyBpcyBuZWVkZWQgaW4gYSBzaW5n bGUgZmlsZSB0aGF0IGNhbiBiZSBlcmFzZWQgb3IgbWV0bGVkCisgKiBiZWNhdXNlIGEgbG9jayBw cm9ibGVtLgorICoKKyAqIEFyZ3VtZW50cyA6CisgKiAgZGlybmFtZSA6IHRoZSBuYW1lIG9mIHRo ZSBkaXJlY3RvcnkKKyAqICBjb3VudHB0cjogd2hlcmUgdG8gYWRkIHRoZSBmaWxlIGNvdW50IChi ZWNhdXNlIHRoaXMgZnVuY3Rpb24gcmVjdXJzZXMpCisgKiAgbWFpbHBsdXM6IGlzIGNoZWNrIHdp bGwgbG9vayBhdCBNYWlsZGlyKysgZnVuY3Rpb25hbGl0eSBpZiBjb25maWd1cmVkCisgKgorICog UmV0dXJucyB0aGUgc3VtIG9mIHRoZSBzaXplcyBvZiBzdGF0dGFibGUgZmlsZXMKKyAqICAgIHpl cm8gaWYgdGhlIGRpcmVjdG9yeSBjYW5ub3QgYmUgb3BlbmVkLgorICovCitzdGF0aWMgbG9uZyBj aGVja19kaXJfc2l6ZShjaGFyICpkaXJuYW1lLCBsb25nICpjb3VudHB0ciwgYm9vbCBtYWlscGx1 cykgCit7CisgICBESVIgICAgKmRpcjsKKyAgIGxvbmcgICBjb3VudCA9ICpjb3VudHB0cjsKKyAg IGxvbmcgICBzdW0gPSAwOworICAgc3RydWN0IGRpcmVudCAqZW50OworICAgc3RydWN0IHN0YXQg ICBzdGF0YnVmOworCisgICBkaXIgPSBvcGVuZGlyKGRpcm5hbWUpOworICAgaWYgKGRpciA9PSBO VUxMKSB7CisgICAgIGlmIChtYWtlX2RpcnMoZGlybmFtZSwwNzAwKSA9PSAwKSB7CS8qIFRyeSB0 byBjcmVhdGUgZGlycyAqLworICAgICAgIGRpciA9IG9wZW5kaXIoZGlybmFtZSk7CQkJLyogUmVv cGVuIHRoZSBkaXIgKi8KKyAgICAgICBpZiAoZGlyID09IE5VTEwpIHsKKwkgIG1zZ193YXJuKCJj aGVja19kaXJfc2l6ZTogY2Fubm90IG9wZW4gZGlyZWN0b3J5IDogJXMsIHRyeSB0d2ljZSIsIGRp cm5hbWUpOworCSAgcmV0dXJuIDA7CisgICAgICAgfQorICAgICB9IGVsc2UgeworICAgICAgIG1z Z193YXJuKCJjaGVja19kaXJfc2l6ZTogY2Fubm90IG9wZW4gZGlyZWN0b3J5IDogJXMiLCBkaXJu YW1lKTsKKyAgICAgICByZXR1cm4gMDsKKyAgICAgfQorICAgfQorCisgICB3aGlsZSAoKGVudCA9 IHJlYWRkaXIoZGlyKSkgIT0gTlVMTCkgeworICAgICBjaGFyICpuYW1lID0gZW50LT5kX25hbWU7 CisgICAgIFZTVFJJTkcgKmJ1ZmZlcjsKKworICAgICBpZihzdHJjbXAobmFtZSwgIi4iKSA9PSAw IHx8IHN0cmNtcChuYW1lLCAiLi4iKSA9PSAwKSBjb250aW51ZTsKKyAgICAgY291bnQrKzsKKyAg IAorICAgICBpZiAodmFyX3ZpcnRfbWFpbGRpcl9leHRlbmRlZCAmJiBtYWlscGx1cykgeworICAg ICAgIC8qCisgICAgICAgICogVXNpbmcgTWFpbGRpcisrIHNpemUgY29tcHV0YXRpb24gYW5kIGNo ZWNrIG9ubHkgdGhlIAorICAgICAgICAqIGRpcmVjdG9yeSB3ZSd2ZSBoYXMgYmVlbiBhc2tlZCB0 bworICAgICAgICAqLworICAgICAgIHN1bSArPSBtYWlsZGlyX3BhcnNlcXVvdGEobmFtZSk7CisK KyAgICAgfSBlbHNlIHsKKworICAgICAgIGJ1ZmZlciA9IHZzdHJpbmdfYWxsb2MoMTAyNCk7Cisg ICAgCisgICAgICAgdnN0cmluZ19zcHJpbnRmKGJ1ZmZlciwiJXMvJXMiLGRpcm5hbWUsbmFtZSk7 CisgICAgICAgaWYgKHN0YXQodnN0cmluZ19zdHIoYnVmZmVyKSwgJnN0YXRidWYpIDwgMCkgewor CSAgdnN0cmluZ19mcmVlKGJ1ZmZlcik7CisJICBjb250aW51ZTsKKyAgICAgICB9CisgICAgICAg aWYgKChzdGF0YnVmLnN0X21vZGUgJiBTX0lGUkVHKSAhPSAwKQorCSAgc3VtICs9IHN0YXRidWYu c3Rfc2l6ZTsKKyAgICAgICBlbHNlIGlmICgoc3RhdGJ1Zi5zdF9tb2RlICYgU19JRkRJUikgIT0g MCkKKwkgICAgICAgc3VtICs9IGNoZWNrX2Rpcl9zaXplKHZzdHJpbmdfc3RyKGJ1ZmZlciksICZj b3VudCwgbWFpbHBsdXMpOworICAgICAgIHZzdHJpbmdfZnJlZShidWZmZXIpOworICAgICB9Cisg ICB9CisgICBjbG9zZWRpcihkaXIpOworICAgaWYgKG1zZ192ZXJib3NlKQorICAgICAgbXNnX2lu Zm8oImNoZWNrX2Rpcl9zaXplOiBkaXI9JXMgc3VtPSVsZCBjb3VudD0lbGQiLCBkaXJuYW1lLCBz dW0sIGNvdW50KTsKKyAgICpjb3VudHB0ciA9IGNvdW50OworICAgcmV0dXJuIHN1bTsKK30KKwkK IC8qIGRlbGl2ZXJfbWFpbGRpciAtIGRlbGl2ZXJ5IHRvIG1haWxkaXItc3R5bGUgbWFpbGJveCAq LwogCiBpbnQgICAgIGRlbGl2ZXJfbWFpbGRpcihMT0NBTF9TVEFURSBzdGF0ZSwgVVNFUl9BVFRS IHVzcl9hdHRyKQpAQCAtODEsNiArMjA2LDEyIEBACiAgICAgaW50ICAgICBzdGF0dXM7CiAgICAg aW50ICAgICBjb3B5X2ZsYWdzOwogICAgIHN0YXRpYyBpbnQgY291bnQ7CisgICAgLyogTWFpbGRp ciBRdW90YSAqLworICAgIGNvbnN0IGNoYXIgKmxpbWl0X3JlczsJLyogTGltaXQgZnJvbSBtYXAg Ki8KKyAgICBsb25nICAgIG47CQkJLyogTGltaXQgaW4gaW50ZWdlciBmb3JtYXQgKi8KKyAgICBs b25nICAgIGN1cl9xdW90YTsJCS8qIEN1cnJlbnQgcXVvdGEgKi8KKyAgICBsb25nICAgIHNhdmVk X3NpemU7CQkvKiBUaGUgcXVvdGEgb2YgdGhlIE1haWxkaXIgYXQgYWxsICovCisgICAgc3RydWN0 IHN0YXQgc3RhdGJ1ZjsJLyogVG8gY2hlY2sgdGhlIHNpemUgb2YgdGhlIG1haWwgd3JpdHRlbiAq LwogCiAgICAgLyoKICAgICAgKiBNYWtlIHZlcmJvc2UgbG9nZ2luZyBlYXNpZXIgdG8gdW5kZXJz dGFuZC4KQEAgLTEwMiwxMSArMjMzLDc5IEBACiAKICAgICBjb3B5X2ZsYWdzID0gTUFJTF9DT1BZ X1RPRklMRSB8IE1BSUxfQ09QWV9SRVRVUk5fUEFUSCB8IE1BSUxfQ09QWV9ERUxJVkVSRUQ7CiAK LSAgICBuZXdkaXIgPSBjb25jYXRlbmF0ZSh1c3JfYXR0ci5tYWlsYm94LCAibmV3LyIsIChjaGFy ICopIDApOwotICAgIHRtcGRpciA9IGNvbmNhdGVuYXRlKHVzcl9hdHRyLm1haWxib3gsICJ0bXAv IiwgKGNoYXIgKikgMCk7Ci0gICAgY3VyZGlyID0gY29uY2F0ZW5hdGUodXNyX2F0dHIubWFpbGJv eCwgImN1ci8iLCAoY2hhciAqKSAwKTsKKyAgICAvKgorICAgICAqIENvbmNhdCB0aGUgbWFpbGRp ciBzdWZmaXggaWYgaXQgaXMgc2V0LgorICAgICAqLworICAgIGlmICgqdmFyX3ZpcnRfbWFpbGRp cl9zdWZmaXggPT0gMCkgeworCW5ld2RpciA9IGNvbmNhdGVuYXRlKHVzcl9hdHRyLm1haWxib3gs ICJuZXcvIiwgKGNoYXIgKikgMCk7CisgICAgICAgIHRtcGRpciA9IGNvbmNhdGVuYXRlKHVzcl9h dHRyLm1haWxib3gsICJ0bXAvIiwgKGNoYXIgKikgMCk7CisgICAgICAgIGN1cmRpciA9IGNvbmNh dGVuYXRlKHVzcl9hdHRyLm1haWxib3gsICJjdXIvIiwgKGNoYXIgKikgMCk7CisgICAgfSBlbHNl IHsKKyAgICAgICAgbmV3ZGlyID0gY29uY2F0ZW5hdGUodXNyX2F0dHIubWFpbGJveCwgdmFyX3Zp cnRfbWFpbGRpcl9zdWZmaXgsIChjaGFyICopIDApOworICAgICAgICB0bXBkaXIgPSBjb25jYXRl bmF0ZSh1c3JfYXR0ci5tYWlsYm94LCB2YXJfdmlydF9tYWlsZGlyX3N1ZmZpeCwgKGNoYXIgKikg MCk7CisgICAgICAgIGN1cmRpciA9IGNvbmNhdGVuYXRlKHVzcl9hdHRyLm1haWxib3gsIHZhcl92 aXJ0X21haWxkaXJfc3VmZml4LCAoY2hhciAqKSAwKTsKKyAgICAgICAgbmV3ZGlyID0gY29uY2F0 ZW5hdGUobmV3ZGlyLCAibmV3LyIsIChjaGFyICopIDApOworICAgICAgICB0bXBkaXIgPSBjb25j YXRlbmF0ZSh0bXBkaXIsICJ0bXAvIiwgKGNoYXIgKikgMCk7CisgICAgICAgIGN1cmRpciA9IGNv bmNhdGVuYXRlKGN1cmRpciwgImN1ci8iLCAoY2hhciAqKSAwKTsKKyAgICB9CiAKICAgICAvKgor ICAgICAqIEZpbmQgdGhlIE1haWxkaXIgbGltaXQgaW4gdGhlIG1hcHMuIEZhbGwgYmFjayB2aXJ0 dWFsX21haWxib3hfbGltaXQgaW4KKyAgICAgKiBjYXNlIGxpbWl0IGlzIHNtYWxsZXIgdGhhbiBt ZXNzYWdlX3NpemVfbGltaXQuCisgICAgICovCisgICAgaWYgKGxpbWl0X3JlcyA9IG1haWxfYWRk cl9maW5kKHZpcnR1YWxfbWFpbGJveF9saW1pdF9tYXBzLAorCQkJICAgICAgICAgIHN0YXRlLm1z Z19hdHRyLnVzZXIsIChjaGFyICoqKSAwKSkgeworICAgICAgIG4gPSBhdG9sKGxpbWl0X3Jlcyk7 CisgICAgICAgaWYoIXZhcl92aXJ0X21haWxib3hfbGltaXRfb3ZlcnJpZGUpIHsKKyAgICAgICAg aWYgKChuID4gMCkgJiYgKG4gPCB2YXJfbWVzc2FnZV9saW1pdCkpIHsKKyAgICAgICAgICAgIG1z Z193YXJuKCIoMilyZWNpcGllbnQgJXM6IG1haWxkaXIgbGltaXQgaXMgc21hbGxlciB0aGVuICVz ICIKKwkgICAgICAgICAgICAgImluICVzIC0gZmFsbGluZyBiYWNrIHRvICVzLiIsCisJCSAgICAg c3RhdGUubXNnX2F0dHIudXNlciwgVkFSX01FU1NBR0VfTElNSVQsCisJCSAgICAgdmlydHVhbF9t YWlsYm94X2xpbWl0X21hcHMtPnRpdGxlLAorCQkgICAgIFZBUl9WSVJUX01BSUxCT1hfTElNSVQp OworICAgICAgICB9IGVsc2UgeworCSAgICBpZiAobXNnX3ZlcmJvc2UpCisJICAgICAgICBtc2df aW5mbygiJXNbJWRdOiBzZXQgbWF4aW11bSBtYWlsYm94IHNpemUgJXMgdG8gJWxkLiIsCisJCQkg bXluYW1lLCBzdGF0ZS5sZXZlbCwgdXNyX2F0dHIubWFpbGJveCxuKTsKKyAgICAgICAgfQorICAg ICAgIH0KKyAgICB9IGVsc2UgeworICAgICAgIC8qCisJKiBUaGVyZSBpcyBubyBsaW1pdCB0aGVy ZS4uLiB0aGVuIHNldCBuIHRvIDAKKwkqLworICAgICAgIG4gPSAwOworICAgIH0KKyAgICAKKyAg ICAvKgorICAgICAqIENoZWNraW5nIHF1b3RhIGJlZm9yZSBkZWxpdmVyaW5nIHRoZSBtYWlsCisg ICAgICovCisgICAgY3VyX3F1b3RhID0gMDsJLyogc2FuaXR5ICovCisgICAgc2F2ZWRfc2l6ZSA9 IDA7CS8qIHNhbml0eSAqLworICAgIGlmICggbiAhPSAwICkgeworICAgICAgICAgICAgc2V0X2V1 Z2lkKHVzcl9hdHRyLnVpZCwgdXNyX2F0dHIuZ2lkKTsKKwkgICAgaWYgKHZhcl92aXJ0X21haWxi b3hfbGltaXRfaW5ib3gpIHsKKwkJICAgIC8qCisJCSAgICAgKiBDaGVjayBvbmx5IGluYm94CisJ CSAgICAgKi8KKwkJICAgIHNhdmVkX3NpemUgPSBjaGVja19kaXJfc2l6ZShuZXdkaXIsICZjdXJf cXVvdGEsIDEpOworCQkgICAgY3VyX3F1b3RhID0gMDsKKwkJICAgIHNhdmVkX3NpemUgKz0gY2hl Y2tfZGlyX3NpemUoY3VyZGlyLCAmY3VyX3F1b3RhLCAxKTsKKwkJICAgIGN1cl9xdW90YSA9IDA7 CisJCSAgICAvKiBDaGVja2VkIHdpdGhvdXQgTWFpbGRpcisrIGZpbGUgZm9ybWF0ICovCisJCSAg ICBzYXZlZF9zaXplICs9IGNoZWNrX2Rpcl9zaXplKHRtcGRpciwgJmN1cl9xdW90YSwgMCk7CisJ ICAgIH0gZWxzZSB7CisJCSAgICAvKgorCQkgICAgICogQ2hlY2sgYWxsIGJveGVzLiAKKwkJICAg ICAqIFRoaXMgd2lsbCB1c2VyICJvbGQiIHN0YXQoKSBjYWxsIGluc3RlYWQgb2YgZmFzdAorCQkg ICAgICogTWFpbGRpcisrIHN1cHBvcnQgYmVjYXVzZSB3ZSBjYW5ub3QgYWZmb3JkIHRoZQorCQkg ICAgICogdGltZSB0byB0ZXN0IGFsbCBmaWxlbmFtZSB0eXBlcy4uLgorCQkgICAgICovCisJCSAg ICBzYXZlZF9zaXplID0gY2hlY2tfZGlyX3NpemUodXNyX2F0dHIubWFpbGJveCwgJmN1cl9xdW90 YSwgMCk7CisJICAgIH0KKyAgICAgICAgICAgIHNldF9ldWdpZCh2YXJfb3duZXJfdWlkLCB2YXJf b3duZXJfZ2lkKTsKKyAgICB9CisgICAgCisgICAgLyoKICAgICAgKiBDcmVhdGUgYW5kIHdyaXRl IHRoZSBmaWxlIGFzIHRoZSByZWNpcGllbnQsIHNvIHRoYXQgZmlsZSBxdW90YSB3b3JrLgogICAg ICAqIENyZWF0ZSBhbnkgbWlzc2luZyBkaXJlY3RvcmllcyBvbiB0aGUgZmx5LiBUaGUgZmlsZSBu YW1lIGlzIGNob3NlbgogICAgICAqIGFjY29yZGluZyB0byBmdHA6Ly9rb29iZXJhLm1hdGgudWlj LmVkdS93d3cvcHJvdG8vbWFpbGRpci5odG1sOgpAQCAtMTM0LDE4ICszMzMsNTEgQEAKIAl2c3Ry aW5nX3NwcmludGYod2h5LCAiY3JlYXRlICVzOiAlbSIsIHRtcGZpbGUpOwogICAgIH0gZWxzZSB7 CiAJaWYgKG1haWxfY29weShDT1BZX0FUVFIoc3RhdGUubXNnX2F0dHIpLCBkc3QsIGNvcHlfZmxh Z3MsICJcbiIsIHdoeSkgPT0gMCkgewotCSAgICBpZiAoc2FuZV9saW5rKHRtcGZpbGUsIG5ld2Zp bGUpIDwgMAotCQkmJiAoZXJybm8gIT0gRU5PRU5UCi0JCSAgICB8fCAobWFrZV9kaXJzKGN1cmRp ciwgMDcwMCksIG1ha2VfZGlycyhuZXdkaXIsIDA3MDApKSA8IDAKLQkJICAgIHx8IHNhbmVfbGlu ayh0bXBmaWxlLCBuZXdmaWxlKSA8IDApKSB7Ci0JCXZzdHJpbmdfc3ByaW50Zih3aHksICJsaW5r IHRvICVzOiAlbSIsIG5ld2ZpbGUpOworCSAgICAvKgorCSAgICAgKiBBZGQgYSAiLFM9PHNpemVv ZmZpbGU+IiB0byB0aGUgZmlsZSBuZXdseSB3cml0dGVuIGFjY29yZGluZyB0bworCSAgICAgKiBN YWlsZGlyKysgc3BlY2lmaWNhdGlvbnMgOiBodHRwOi8vd3d3LmludGVyNy5jb20vY291cmllcmlt YXAvUkVBRE1FLm1haWxkaXJxdW90YS5odG1sCisJICAgICAqIFRoaXMgbmVlZHMgYSBzdGF0KDIp IG9mIHRoZSB0ZW1wZmlsZSBhbmQgbW9kaWZpY2F0aW9uIG9mIHRoZQorCSAgICAgKiBuYW1lIG9m IHRoZSBmaWxlLgorCSAgICAgKi8KKwkgICAgaWYgKHZhcl92aXJ0X21haWxkaXJfZXh0ZW5kZWQp IHsKKwkJLyogQ2hlY2sgc2l6ZSBvZiB0aGUgbmV3IG1haWwgY3JlYXRlZCAqLworCQlpZiAoc3Rh dCh0bXBmaWxlLCAmc3RhdGJ1ZikgPT0gMCkgeworCQkgICAvKiBXZSBjYW4gc3RhdCBpdCB0aGVu IGFwcGVuZCB0aGUgc2l6ZSBvZiB0aGUgZmlsZSB0byBuZXdmaWxlICovCisJCSAgIHZzdHJpbmdf c3ByaW50ZihidWYsIixTPSVsZCIsIChsb25nKSBzdGF0YnVmLnN0X3NpemUpOworCQkgICBuZXdm aWxlID0gY29uY2F0ZW5hdGUobmV3ZmlsZSwgU1RSKGJ1ZiksIChjaGFyICopIDApOworCQkgICBp ZiAoIG4gIT0gMCApCisJCSAgICAgc2F2ZWRfc2l6ZSArPSAobG9uZykgc3RhdGJ1Zi5zdF9zaXpl OwkvKiBBZGRpbmcgdG8gdGggY3VycmVudCBxdW90YSAqLworCQl9CisJICAgIH0gZWxzZSB7CisJ ICAgICAgaWYgKCBuICE9IDAgKSB7CisJCSBpZiAoc3RhdCh0bXBmaWxlLCAmc3RhdGJ1ZikgPT0g MCkgc2F2ZWRfc2l6ZSArPSAobG9uZykgc3RhdGJ1Zi5zdF9zaXplOworCSAgICAgIH0KKwkgICAg fQorCSAgICAvKgorCSAgICAgKiBOb3cgd2UgaGF2ZSB0aGUgbWFpbGRpciBzaXplIGluIHNhdmVk X2ZpbGUsIGNvbXBhcmUgdG8gdGhlIHZhbHVlCisJICAgICAqIGFuZCBldmVudWFseSBpc3N1ZSBh IG1lc3NhZ2UgdGhhdCB3ZSBvdmVyZHJhd24gdGhlIG1heCBzaXplCisJICAgICAqLworCSAgICBp ZiAoc2F2ZWRfc2l6ZSA+IG4pIHsKKwkJICAgIHN0YXR1cyA9IDE7CS8qIGJvdW5jZSB0aGUgbWVz c2FnZSAqLworCQkgICAgdnN0cmluZ19zcHJpbnRmKHdoeSwiJXMiLHZhcl92aXJ0X21haWxkaXJf bGltaXRfbWVzc2FnZSk7CisJCSAgICBlcnJubyA9IEVGQklHOwogCSAgICB9IGVsc2UgewotCQlz dGF0dXMgPSAwOworCSAgICAgIC8qIERlbGl2ZXIgdG8gY3VyZGlyICovCisJICAgICAgaWYgKHNh bmVfbGluayh0bXBmaWxlLCBuZXdmaWxlKSA8IDAKKwkgCSAgJiYgKGVycm5vICE9IEVOT0VOVAor CQkgICAgICB8fCAobWFrZV9kaXJzKGN1cmRpciwgMDcwMCksIG1ha2VfZGlycyhuZXdkaXIsIDA3 MDApKSA8IDAKKwkJICAgICAgfHwgc2FuZV9saW5rKHRtcGZpbGUsIG5ld2ZpbGUpIDwgMCkpIHsK KwkJICB2c3RyaW5nX3NwcmludGYod2h5LCAibGluayB0byAlczogJW0iLCBuZXdmaWxlKTsKKwkg ICAgICB9IGVsc2UgeworCQkgIHN0YXR1cyA9IDA7CisJICAgICAgfQogCSAgICB9CiAJfQogCWlm ICh1bmxpbmsodG1wZmlsZSkgPCAwKQogCSAgICBtc2dfd2FybigicmVtb3ZlICVzOiAlbSIsIHRt cGZpbGUpOworCiAgICAgfQorCiAgICAgc2V0X2V1Z2lkKHZhcl9vd25lcl91aWQsIHZhcl9vd25l cl9naWQpOwogCiAgICAgLyoKZGlmZiAtdSAtLW5ldy1maWxlIC0tcmVjdXJzaXZlIHNuYXBzaG90 LTIwMDExMTA1Lm9yaWcvc3JjL3ZpcnR1YWwvdmlydHVhbC5jIHNuYXBzaG90LTIwMDExMTA1L3Ny Yy92aXJ0dWFsL3ZpcnR1YWwuYwotLS0gc25hcHNob3QtMjAwMTExMDUub3JpZy9zcmMvdmlydHVh bC92aXJ0dWFsLmMJVHVlIE1hciAyNyAyMzo1MTozOCAyMDAxCisrKyBzbmFwc2hvdC0yMDAxMTEw NS9zcmMvdmlydHVhbC92aXJ0dWFsLmMJVHVlIE5vdiAgNiAxMTozMjowNyAyMDAxCkBAIC02Myw4 ICs2MywxMCBAQAogLyogLmZpCiAvKglNYWlsYm94IG93bmVyc2hpcCBpcyBjb250cm9sbGVkIGJ5 IHRoZSBcZkJ2aXJ0dWFsX3VpZF9tYXBzXGZSCiAvKglhbmQgXGZCdmlydHVhbF9naWRfbWFwc1xm UiBsb29rdXAgdGFibGVzLCB3aGljaCBhcmUgaW5kZXhlZAotLyoJd2l0aCB0aGUgZnVsbCByZWNp cGllbnQgYWRkcmVzcy4gRWFjaCB0YWJsZSBwcm92aWRlcwotLyoJYSBzdHJpbmcgd2l0aCB0aGUg bnVtZXJpY2FsIHVzZXIgYW5kIGdyb3VwIElELCByZXNwZWN0aXZlbHkuCisvKgl3aXRoIHRoZSBm dWxsIHJlY2lwaWVudCBhZGRyZXNzIChcZkl1c2VyQGRvbWFpblxmUiksCisvKgl1c2VyIG5hbWUg KFxmSXVzZXJcZlIpIG9yIGRvbWFpbiBuYW1lIChcZklAZG9tYWluXGZSKS4KKy8qCUVhY2ggdGFi bGUgcHJvdmlkZXMgYSBzdHJpbmcgd2l0aCB0aGUgbnVtZXJpY2FsIHVzZXIgYW5kIGdyb3VwIElE LAorLyoJcmVzcGVjdGl2ZWx5LgogLyoKIC8qCVRoZSBcZkJ2aXJ0dWFsX21pbmltdW1fdWlkXGZS IHBhcmFtZXRlciBpbXBvc2VzIGEgbG93ZXIgYm91bmQgb24KIC8qCW51bWVyaWNhbCB1c2VyIElE IHZhbHVlcyB0aGF0IG1heSBiZSBzcGVjaWZpZWQgaW4gYW55CkBAIC0xMjAsMTIgKzEyMiwyNyBA QAogLyoJYSBcZkJ2aXJ0dWFsX293bmVyX21hcHNcZlIgb3IgXGZCdmlydHVhbF91aWRfbWFwc1xm UiBsb29rdXAuCiAvKglSZXR1cm5lZCB2YWx1ZXMgbGVzcyB0aGFuIHRoaXMgd2lsbCBiZSByZWpl Y3RlZCwgYW5kIHRoZSBtZXNzYWdlCiAvKgl3aWxsIGJlIGRlZmVycmVkLgorLyoJTm90ZSB0aGF0 IHRoaXMgdmFsdWUgaXMgbm90IGNoZWNrZWQgd2hlbiBcZkJ2aXJ0dWFsX3N0YXRpY191aWRnaWZc ZlIKKy8qCWlzIHNldCB0byBvbi4KKy8qIC5JUCBcZkJ2aXJ0YXVsX3N0YXRpY19naWR1aWRcZlIK Ky8qCVdoZW4gc2V0IHRvIFxmQnllc1xmUiwgdGhlIFxmQnZpcnR1YWxfc3RhdGljX3VpZFxmUiBh bmQgCisvKglcZkJ2aXJ0dWFsX3N0YXRpY19naWRcZlIgd2lsbCBiZSB1c2VkIGZvciBhbGwgcmVj aXBpZW50cyBpbnN0ZWFkIG9mCisvKglcZkJ2aXJ0dWFsX3VpZF9tYXBzXGZSIGFuZCBcZkJ2aXJ0 dWFsX2dpZF9tYXBzXGZCLiBOb3RlIHRoYXQKKy8qCVxmQnZpcnR1YWxfbWluaW11bV91aWRcZlIg d2lsbCBub3QgYmUgdXNlZCBhdCBhbGwuCisvKiAuSVAgXGZCdmlydHVhbF9zdGF0aWNfdWlkXGZS CisvKglUaGUgdWlkIHRvIHVzZSBmb3IgdGhlIHJlY2lwaWVudHMgd2hlbiBcZkJ2aXJ0dWFsX3N0 YXRpY191aWRnaWRcZlIgaXMKKy8qCXNldCB0byB5ZXMuCisvKiAuSVAgXGZCdmlydHVhbF9zdGF0 aWNfZ2lkXGZSCisvKglUaGUgZ2lkIHRvIHVzZSBmb3IgdGhlIHJlY2lwaWVudHMgd2hlbiBcZkJ2 aXJ0dWFsX3N0YXRpY191aWRnaWRcZlIgaXMKKy8qCXNldCB0byB5ZXMuCiAvKiAuSVAgIlxmQnZp cnR1YWxfdWlkX21hcHNcZlIgKHJlZ2V4cCBtYXBzIGRpc2FsbG93ZWQpIgogLyoJUmVjaXBpZW50 cyBhcmUgbG9va2VkIHVwIGluIHRoZXNlIG1hcHMgdG8gZGV0ZXJtaW5lIHRoZSB1c2VyIElEIHRv IGJlCiAvKgl1c2VkIHdoZW4gd3JpdGluZyB0byB0aGUgdGFyZ2V0IG1haWxib3guCiAvKiAuSVAg IlxmQnZpcnR1YWxfZ2lkX21hcHNcZlIgKHJlZ2V4cCBtYXBzIGRpc2FsbG93ZWQpIgogLyoJUmVj aXBpZW50cyBhcmUgbG9va2VkIHVwIGluIHRoZXNlIG1hcHMgdG8gZGV0ZXJtaW5lIHRoZSBncm91 cCBJRCB0byBiZQogLyoJdXNlZCB3aGVuIHdyaXRpbmcgdG8gdGhlIHRhcmdldCBtYWlsYm94Lgor LyogLklQIFxmQnZpcnR1YWxfbWFpbGRpcl9zdWZmaXhcZlIKKy8qICAgICAgU3RyaW5nIHRvIGFk ZCB0byBleGlzdGluZyBNYWlsZGlyIFBhdGggKGRlZmF1bHQgTWFpbGRpci8pLgogLyogLlNIICJM b2NraW5nIGNvbnRyb2xzIgogLyogLmFkCiAvKiAuZmkKQEAgLTE2OCw2ICsxODUsMjcgQEAKIC8q IC5JUCBcZkJ2aXJ0dWFsX21haWxib3hfbGltaXRcZlIKIC8qCVRoZSBtYXhpbWFsIHNpemUgaW4g Ynl0ZXMgb2YgYSBtYWlsYm94IG9yIG1haWxkaXIgZmlsZS4KIC8qCVNldCB0byB6ZXJvIHRvIGRp c2FibGUgdGhlIGxpbWl0LgorLyogLklQICJcZkJ2aXJ0dWFsX21haWxib3hfbGltaXRfbWFwc1xm UiAocmVnZXhwIG1hcHMgZGlzYWxsb3dlZCkiCisvKglSZWNpcGllbnRzIGFyZSBsb29rZWQgdXAg aW4gdGhlc2UgbWFwcyB0byBkZXRlcm1pbmUgdGhlIG1heGltYWwgc2l6ZQorLyoJaW4gYnl0ZXMg b2YgdGhlIHRhcmdldCBtYWlsYm94IG9yIG1haWxkaXIuCisvKiAuSVAgXGZCdmlydHVhbF9tYWls Ym94X2xpbWl0X21lc3NhZ2VcZlIKKy8qICAgICAgRXJyb3IgbWVzc2FnZSB0byBkaXNwbGF5IHdo ZW4gTWFpbGJveC9NYWlsZGlyIGxpbWl0IGhhcyBiZWVuIHJlYWNoZWQuCisvKglUaGUgbWVzc2Fn ZSBzaXplIGlzIGxpbWl0ZWQgdG8gODAgY2hhcmFjdGVycy4KKy8qCShOT1RFOiBvbmx5IHVzZWQg b24gTWFpbGRpciBkZWxpdmVyeSBmb3Igbm93KS4KKy8qIC5JUCBcZkJ2aXJ0dWFsX21haWxib3hf bGltaXRfaW5ib3hcZlIKKy8qCUJvb2xlYW4gYW5kIGNoZWNrZWQgb25seSB3aGVuIE1haWxkaXIg ZGVsaXZlcnkgaXMgdXNlZC4gSWYgc2V0IHRvIAorLyoJeWVzIChkZWZhdWx0IG5vKSwgb25seSBJ TkJPWCBpcyBjaGVja2VkIG5vdCBhbGwgc3ViZm9sZGVycyB0aGF0IGhhcworLyoJY3JlYXRlZCBi eSBJTUFQIGFjY2VzcyB0byBNYWlsZGlyLm8KKy8qIC5JUCBcZkJ2aXJ0dWFsX21haWxib2NfbGlt aXRfb3ZlcnJpZGVcZlIKKy8qICAgICAgQm9vbGVhbi4gSWYgc2VyIHRoaXMgd2lsbCBvdmVycmlk ZSBcZkJtZXNzYWdlX3NpemVfbGltaXRcZlIgZXZlbiBpZgorLyoJdGhlIFxmQnZpcnR1YWxfbWFp bGJveF9saW1pdFxmUiB2YWx1ZSBvciBpZiB0aGUgdmFsdWUgZ2l2ZW4gYnkKKy8qCXRoZSBtYXAg XGZCdmlydHVhbF9tYWlsYm94XGxpbWl0X21hcHNcZlIgaXMgc21hbGxlciB0aGFuIAorLyoJXGZC bWVzc2FnZV9zaXplX2xpbWl0XGZSLgorLyogLklQIFxmQnZpcnR1YWxfbWFpbGRpcl9leHRlbmRl ZFxmUgorLyoJQm9vbGVhbiBhbmQgdXNlZCBvbmx5IG9uIE1haWxkaXIgZGVsaXZlcnkuIElmIHNl dCB0byB5ZXMgKGRlZmF1bHQKKy8qCW5vKSwgdGhlbiB0aGUgc2l6ZSBvZiB0aGUgbWFpbCB3aWxs IGJlIGFwcGVuZWQgdG8gdGhlIGZpbGVuYW1lIHRvCisvKglmb2xsb3cgdGhlIHNwZWNpZmljYXRp b24gb2YgTWFpbGRpcisrICh1c2VkIHdpdGggY291cmllci1pbWFwCisvKglzb2Z0cXVvdGEgb3B0 aW9ucykuCiAvKiBISVNUT1JZCiAvKiAuYWQKIC8qIC5maQpAQCAtMjQwLDEwICsyNzgsMTkgQEAK IGNoYXIgICAqdmFyX3ZpcnRfbWFpbGJveF9tYXBzOwogY2hhciAgICp2YXJfdmlydF91aWRfbWFw czsKIGNoYXIgICAqdmFyX3ZpcnRfZ2lkX21hcHM7CitjaGFyICAgKnZhcl92aXJ0X21haWxib3hf bGltaXRfbWFwczsKIGludCAgICAgdmFyX3ZpcnRfbWluaW11bV91aWQ7CiBjaGFyICAgKnZhcl92 aXJ0X21haWxib3hfYmFzZTsKIGNoYXIgICAqdmFyX3ZpcnRfbWFpbGJveF9sb2NrOwogaW50ICAg ICB2YXJfdmlydF9tYWlsYm94X2xpbWl0OworYm9vbAl2YXJfdmlydF9zdGF0aWNfdWlkZ2lkOwor aW50CXZhcl92aXJ0X3N0YXRpY191aWQ7CitpbnQJdmFyX3ZpcnRfc3RhdGljX2dpZDsKK2NoYXIg ICAqdmFyX3ZpcnRfbWFpbGRpcl9saW1pdF9tZXNzYWdlOworYm9vbAl2YXJfdmlydF9tYWlsYm94 X2xpbWl0X2luYm94OworYm9vbAl2YXJfdmlydF9tYWlsYm94X2xpbWl0X292ZXJyaWRlOworYm9v bAl2YXJfdmlydF9tYWlsZGlyX2V4dGVuZGVkOworY2hhciAgICp2YXJfdmlydF9tYWlsZGlyX3N1 ZmZpeDsKIAogIC8qCiAgICogTWFwcGluZ3MuCkBAIC0yNTEsNiArMjk4LDcgQEAKIE1BUFMgICAq dmlydHVhbF9tYWlsYm94X21hcHM7CiBNQVBTICAgKnZpcnR1YWxfdWlkX21hcHM7CiBNQVBTICAg KnZpcnR1YWxfZ2lkX21hcHM7CitNQVBTICAgKnZpcnR1YWxfbWFpbGJveF9saW1pdF9tYXBzOwog CiAgLyoKICAgKiBCaXQgbWFza3MuCkBAIC0zNTksNiArNDA3LDkgQEAKIAogICAgIHZpcnR1YWxf Z2lkX21hcHMgPQogCW1hcHNfY3JlYXRlKFZBUl9WSVJUX0dJRF9NQVBTLCB2YXJfdmlydF9naWRf bWFwcywgRElDVF9GTEFHX0xPQ0spOworICAgIAorICAgIHZpcnR1YWxfbWFpbGJveF9saW1pdF9t YXBzID0KKwltYXBzX2NyZWF0ZShWQVJfVklSVF9NQUlMQk9YX0xJTUlUX01BUFMsIHZhcl92aXJ0 X21haWxib3hfbGltaXRfbWFwcywgRElDVF9GTEFHX0xPQ0spOwogCiAgICAgdmlydHVhbF9tYm94 X2xvY2tfbWFzayA9IG1ib3hfbG9ja19tYXNrKHZhcl92aXJ0X21haWxib3hfbG9jayk7CiB9CkBA IC0zOTEsMTQgKzQ0MiwyNiBAQAogICAgIHN0YXRpYyBDT05GSUdfSU5UX1RBQkxFIGludF90YWJs ZVtdID0gewogCVZBUl9WSVJUX01JTlVJRCwgREVGX1ZJUlRfTUlOVUlELCAmdmFyX3ZpcnRfbWlu aW11bV91aWQsIDEsIDAsCiAJVkFSX1ZJUlRfTUFJTEJPWF9MSU1JVCwgREVGX1ZJUlRfTUFJTEJP WF9MSU1JVCwgJnZhcl92aXJ0X21haWxib3hfbGltaXQsIDAsIDAsCisJVkFSX1ZJUlRfU1RBVElD X1VJRCwgREVGX1ZJUlRfU1RBVElDX1VJRCwgJnZhcl92aXJ0X3N0YXRpY191aWQsIDAsIDAsCisJ VkFSX1ZJUlRfU1RBVElDX0dJRCwgREVGX1ZJUlRfU1RBVElDX0dJRCwgJnZhcl92aXJ0X3N0YXRp Y19naWQsIDAsIDAsCisJMCwKKyAgICB9OworICAgIHN0YXRpYyBDT05GSUdfQk9PTF9UQUJMRSBi b29sX3RhYmxlW10gPSB7CisJVkFSX1ZJUlRfU1RBVElDX1VJREdJRCwgREVGX1ZJUlRfU1RBVElD X1VJREdJRCwgJnZhcl92aXJ0X3N0YXRpY191aWRnaWQsCisJVkFSX1ZJUlRfTUFJTEJPWF9MSU1J VF9JTkJPWCwgREVGX1ZJUlRfTUFJTEJPWF9MSU1JVF9JTkJPWCwgJnZhcl92aXJ0X21haWxib3hf bGltaXRfaW5ib3gsCisJVkFSX1ZJUlRfTUFJTEJPWF9MSU1JVF9PVkVSUklERSwgREVGX1ZJUlRf TUFJTEJPWF9MSU1JVF9PVkVSUklERSwgJnZhcl92aXJ0X21haWxib3hfbGltaXRfb3ZlcnJpZGUs CisJVkFSX1ZJUlRfTUFJTERJUl9FWFRFTkRFRCwgREVGX1ZJUlRfTUFJTERJUl9FWFRFTkRFRCwg JnZhcl92aXJ0X21haWxkaXJfZXh0ZW5kZWQsCiAJMCwKICAgICB9OwogICAgIHN0YXRpYyBDT05G SUdfU1RSX1RBQkxFIHN0cl90YWJsZVtdID0gewogCVZBUl9WSVJUX01BSUxCT1hfTUFQUywgREVG X1ZJUlRfTUFJTEJPWF9NQVBTLCAmdmFyX3ZpcnRfbWFpbGJveF9tYXBzLCAwLCAwLAogCVZBUl9W SVJUX1VJRF9NQVBTLCBERUZfVklSVF9VSURfTUFQUywgJnZhcl92aXJ0X3VpZF9tYXBzLCAwLCAw LAogCVZBUl9WSVJUX0dJRF9NQVBTLCBERUZfVklSVF9HSURfTUFQUywgJnZhcl92aXJ0X2dpZF9t YXBzLCAwLCAwLAorCVZBUl9WSVJUX01BSUxCT1hfTElNSVRfTUFQUywgREVGX1ZJUlRfTUFJTEJP WF9MSU1JVF9NQVBTLCAmdmFyX3ZpcnRfbWFpbGJveF9saW1pdF9tYXBzLCAwLCAwLAogCVZBUl9W SVJUX01BSUxCT1hfQkFTRSwgREVGX1ZJUlRfTUFJTEJPWF9CQVNFLCAmdmFyX3ZpcnRfbWFpbGJv eF9iYXNlLCAwLCAwLAogCVZBUl9WSVJUX01BSUxCT1hfTE9DSywgREVGX1ZJUlRfTUFJTEJPWF9M T0NLLCAmdmFyX3ZpcnRfbWFpbGJveF9sb2NrLCAxLCAwLAorCVZBUl9WSVJUX01BSUxESVJfTElN SVRfTUVTU0FHRSwgREVGX1ZJUlRfTUFJTERJUl9MSU1JVF9NRVNTQUdFLCAmdmFyX3ZpcnRfbWFp bGRpcl9saW1pdF9tZXNzYWdlLCAxLCAwLAorCVZBUl9WSVJUX01BSUxESVJfU1VGRklYLCBERUZf VklSVF9NQUlMRElSX1NVRkZJWCwgJnZhcl92aXJ0X21haWxkaXJfc3VmZml4LCAwLCAwLAogCTAs CiAgICAgfTsKIApAQCAtNDA4LDUgKzQ3MSw2IEBACiAJCSAgICAgICBNQUlMX1NFUlZFUl9QUkVf SU5JVCwgcHJlX2luaXQsCiAJCSAgICAgICBNQUlMX1NFUlZFUl9QT1NUX0lOSVQsIHBvc3RfaW5p dCwKIAkJICAgICAgIE1BSUxfU0VSVkVSX1BSRV9BQ0NFUFQsIHByZV9hY2NlcHQsCisJCSAgICAg ICBNQUlMX1NFUlZFUl9CT09MX1RBQkxFLCBib29sX3RhYmxlLAogCQkgICAgICAgMCk7CiB9CmRp ZmYgLXUgLS1uZXctZmlsZSAtLXJlY3Vyc2l2ZSBzbmFwc2hvdC0yMDAxMTEwNS5vcmlnL3NyYy92 aXJ0dWFsL3ZpcnR1YWwuaCBzbmFwc2hvdC0yMDAxMTEwNS9zcmMvdmlydHVhbC92aXJ0dWFsLmgK LS0tIHNuYXBzaG90LTIwMDExMTA1Lm9yaWcvc3JjL3ZpcnR1YWwvdmlydHVhbC5oCUZyaSBEZWMg MjIgMDI6MDQ6NTggMjAwMAorKysgc25hcHNob3QtMjAwMTExMDUvc3JjL3ZpcnR1YWwvdmlydHVh bC5oCVR1ZSBOb3YgIDYgMTE6MzI6MDcgMjAwMQpAQCAtMzIsNiArMzIsNyBAQAogZXh0ZXJuIE1B UFMgKnZpcnR1YWxfbWFpbGJveF9tYXBzOwogZXh0ZXJuIE1BUFMgKnZpcnR1YWxfdWlkX21hcHM7 CiBleHRlcm4gTUFQUyAqdmlydHVhbF9naWRfbWFwczsKK2V4dGVybiBNQVBTICp2aXJ0dWFsX21h aWxib3hfbGltaXRfbWFwczsKIAogIC8qCiAgICogVXNlciBhdHRyaWJ1dGVzOiB0aGVzZSBjb250 cm9sIHRoZSBwcml2aWxlZ2VzIGZvciBkZWxpdmVyeSB0byBleHRlcm5hbAo= ------------751ED1A5320277C1-- To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-ports" in the body of the message