Return-Path: MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="----_=_NextPart_001_01C998BA.E8D30063" Subject: obexd receive files failure, no org.openobex.Agent.Authorize called Date: Fri, 27 Feb 2009 17:08:09 +0800 Message-ID: <9F2B2656C8747B498D56A7B30FF5EB9FF75D42@CNMAIL13.cn.utstarcom.com> From: "Yao Ye" To: Sender: linux-bluetooth-owner@vger.kernel.org List-ID: This is a multi-part message in MIME format. ------_=_NextPart_001_01C998BA.E8D30063 Content-Type: text/plain; charset="US-ASCII" Content-Transfer-Encoding: quoted-printable hi, all : I'm using obexd-0.8 on my pxa310 platform. Since I could not compile the D-Bus Python binding, I could not use the test Python scripts (obexd-0.8/test/simple-agent) to receive files. Hence I create some small C programs to replace the python scripts. =20 when i start receive-file agent, it exit quickly, and no files have been received ! Here is the point I'm blocked. I don't know in which direction the wrong is !=20 I don't know what additional info can be given !? The attachment is the source code and loginfo. Thanks in advance for any helps. Best regards yesir Yao. ------_=_NextPart_001_01C998BA.E8D30063 Content-Type: application/octet-stream; name="obexd.receive.log" Content-Transfer-Encoding: base64 Content-Description: obexd.receive.log Content-Disposition: attachment; filename="obexd.receive.log" W3Jvb3RATGludXggL2J0dGVzdF0jZGJ1cy11dWlkZ2VuID4gL3Zhci9saWIvZGJ1cy9tYWNoaW5l LWlkDQpbcm9vdEBMaW51eCAvYnR0ZXN0XSNkYnVzLWxhdW5jaA0KREJVU19TRVNTSU9OX0JVU19B RERSRVNTPXVuaXg6YWJzdHJhY3Q9L3RtcC9kYnVzLUFtdTNkNmN6S2UsZ3VpZD0xYTc1ODk4NDIy MzVmMWU1NzM2ZDk2NDMwMDAwMDBmZA0KREJVU19TRVNTSU9OX0JVU19QSUQ9OTEzDQpbcm9vdEBM aW51eCAvYnR0ZXN0XSMNCltyb290QExpbnV4IC9idHRlc3RdI2V4cG9ydCBEQlVTX1NFU1NJT05f QlVTX0FERFJFU1M9dW5peDphYnN0cmFjdD0vdG1wL2RidXMtQW11M2Q2Y3pLZSxndWlkPTFhNzU4 OTg0MjIzNWYxZTU3MzZkOTY0MzAwMDAwMGZkDQpbcm9vdEBMaW51eCAvYnR0ZXN0XSMNCltyb290 QExpbnV4IC9idHRlc3RdI2V4cG9ydCBEQlVTX1NFU1NJT05fQlVTX1BJRD05MTMNCltyb290QExp bnV4IC9idHRlc3RdIw0KW3Jvb3RATGludXggL2J0dGVzdF0jb2JleGQgLS1ub2RhZW1vbiAtLW9w cCAtLWZ0cCAtZCAtYSAtciAvYnR0ZXN0ICYNCltyb290QExpbnV4IC9idHRlc3RdIw0Kb2JleGRb OTE0XTogRW5hYmxpbmcgZGVidWcgaW5mb3JtYXRpb24NCm9iZXhkWzkxNF06IG1hbmFnZXJfaW5p dDoNCm9iZXhkWzkxNF06IExvYWRpbmcgcGx1Z2lucyAvbGliL29iZXgvcGx1Z2lucw0KYmx1ZXRv b3RoZFs4OTJdOiBOZXcgYXR0cmlidXRlIDB4MDAwMQ0KYmx1ZXRvb3RoZFs4OTJdOiBOZXcgYXR0 cmlidXRlIDB4MDAwNA0KYmx1ZXRvb3RoZFs4OTJdOiBOZXcgYXR0cmlidXRlIDB4MDAwOQ0KYmx1 ZXRvb3RoZFs4OTJdOiBOZXcgYXR0cmlidXRlIDB4MDEwMA0KYmx1ZXRvb3RoZFs4OTJdOiBUZXh0 IHNpemUgMTkgbGVuZ3RoIDE4OiAtLT5PYmplY3QgUHVzaCBzZXJ2ZXI8LS0NCmJsdWV0b290aGRb ODkyXTogTmV3IGF0dHJpYnV0ZSAweDAzMDMNCmJsdWV0b290aGRbODkyXTogQWRkaW5nIHJlY29y ZCB3aXRoIGhhbmRsZSAweDEwMDA3DQpibHVldG9vdGhkWzg5Ml06IFJlY29yZCBwYXR0ZXJuIFVV SUQgMDAwMDAwMDMtMDAwMC0xMDAwLTgwMDAtMDA4MDVmOQ0KYmx1ZXRvb3RoZFs4OTJdOiBSZWNv cmQgcGF0dGVybiBVVUlEIDAwMDAwMDA4LTAwMDAtMTAwMC04MDAwLTAwODA1ZjkNCmJsdWV0b290 aGRbODkyXTogUmVjb3JkIHBhdHRlcm4gVVVJRCAwMDAwMDEwMC0wMDAwLTEwMDAtODAwMC0wMDgw NWY5DQpibHVldG9vdGhkWzg5Ml06IFJlY29yZCBwYXR0ZXJuIFVVSUQgMDAwMDEwMDItMDAwMC0x MDAwLTgwMDAtMDA4MDVmOQ0KYmx1ZXRvb3RoZFs4OTJdOiBSZWNvcmQgcGF0dGVybiBVVUlEIDAw MDAxMTA1LTAwMDAtMTAwMC04MDAwLTAwODA1ZjkNCmJsdWV0b290aGRbODkyXTogbGlzdGVuZXJf aWQgMg0KYmx1ZXRvb3RoZFs4OTJdOiBOZXcgYXR0cmlidXRlIDB4MDAwMQ0KYmx1ZXRvb3RoZFs4 OTJdOiBOZXcgYXR0cmlidXRlIDB4MDAwNA0KYmx1ZXRvb3RoZFs4OTJdOiBOZXcgYXR0cmlidXRl IDB4MDAwOQ0KYmx1ZXRvb3RoZFs4OTJdOiBOZXcgYXR0cmlidXRlIDB4MDEwMA0KYmx1ZXRvb3Ro ZFs4OTJdOiBUZXh0IHNpemUgMjEgbGVuZ3RoIDIwOiAtLT5GaWxlIFRyYW5zZmVyIHNlcnZlcjwt LQ0KYmx1ZXRvb3RoZFs4OTJdOiBBZGRpbmcgcmVjb3JkIHdpdGggaGFuZGxlIDB4MTAwMDgNCmJs dWV0b290aGRbODkyXTogUmVjb3JkIHBhdHRlcm4gVVVJRCAwMDAwMDAwMy0wMDAwLTEwMDAtODAw MC0wMDgwNWY5DQpibHVldG9vdGhkWzg5Ml06IFJlY29yZCBwYXR0ZXJuIFVVSUQgMDAwMDAwMDgt MDAwMC0xMDAwLTgwMDAtMDA4MDVmOQ0KYmx1ZXRvb3RoZFs4OTJdOiBSZWNvcmQgcGF0dGVybiBV VUlEIDAwMDAwMTAwLTAwMDAtMTAwMC04MDAwLTAwODA1ZjkNCmJsdWV0b290aGRbODkyXTogUmVj b3JkIHBhdHRlcm4gVVVJRCAwMDAwMTAwMi0wMDAwLTEwMDAtODAwMC0wMDgwNWY5DQpibHVldG9v dGhkWzg5Ml06IFJlY29yZCBwYXR0ZXJuIFVVSUQgMDAwMDExMDYtMDAwMC0xMDAwLTgwMDAtMDA4 MDVmOQ0KYmx1ZXRvb3RoZFs4OTJdOiBsaXN0ZW5lcl9pZCAzDQpvYmV4ZFs5MTRdOiBSZWdpc3Rl cmVkOiBPYmplY3QgUHVzaCBzZXJ2ZXIsIGhhbmRsZTogMHgxMDAwNywgZm9sZGVyOiAvYnR0ZXN0 DQpvYmV4ZFs5MTRdOiBSZWdpc3RlcmVkOiBGaWxlIFRyYW5zZmVyIHNlcnZlciwgaGFuZGxlOiAw eDEwMDA4LCBmb2xkZXI6IC9idHRlc3QNCg0KW3Jvb3RATGludXggL2J0dGVzdF1wcw0KICBQSUQg IFVpZCAgICAgVm1TaXplIFN0YXQgQ29tbWFuZA0KICAgIDEgcm9vdCAgICAgICAgMzQ0IFMgICBp bml0ICAgICAgIA0KICAgIDIgcm9vdCAgICAgICAgICAgIFNXTiBba3NvZnRpcnFkLzBdDQogICAg MyByb290ICAgICAgICAgICAgU1cgIFt3YXRjaGRvZy8wXQ0KICAgIDQgcm9vdCAgICAgICAgICAg IFNXPCBbZXZlbnRzLzBdDQogICAgNSByb290ICAgICAgICAgICAgU1c8IFtraGVscGVyXQ0KICAg IDYgcm9vdCAgICAgICAgICAgIFNXPCBba3RocmVhZF0NCiAgIDcwIHJvb3QgICAgICAgICAgICBT VzwgW2tibG9ja2QvMF0NCiAgIDcyIHJvb3QgICAgICAgICAgICBTVzwgW2tzdXNwZW5kX3VzYmRd DQogICA3NSByb290ICAgICAgICAgICAgU1c8IFtraHViZF0NCiAgIDc3IHJvb3QgICAgICAgICAg ICBTVzwgW2tzZXJpb2RdDQogICA5MCByb290ICAgICAgICAgICAgU1cgIFtwZGZsdXNoXQ0KICAg OTEgcm9vdCAgICAgICAgICAgIFNXICBbcGRmbHVzaF0NCiAgIDkyIHJvb3QgICAgICAgICAgICBT VzwgW2tzd2FwZDBdDQogICA5MyByb290ICAgICAgICAgICAgU1c8IFthaW8vMF0NCiAgNzM1IHJv b3QgICAgICAgICAgICBTVyAgW210ZGJsb2NrZF0NCiAgNzg2IHJvb3QgICAgICAgICAgICBTVzwg W3cxX2NvbnRyb2xdDQogIDc4OCByb290ICAgICAgICAgICAgU1c8IFt3MV9idXNfbWFzdGVyMV0N CiAgNzkyIHJvb3QgICAgICAgICAgICBTVzwgW1BYQSBIT1NUIDAvMF0NCiAgNzkzIHJvb3QgICAg ICAgICAgICBTVzwgW1NESU8gSU5UIFBYQSBIT10NCiAgNzk0IHJvb3QgICAgICAgICAgICBTVzwg W1BYQSBIT1NUIDEvMF0NCiAgNzk1IHJvb3QgICAgICAgICAgICBTVzwgW1NESU8gSU5UIFBYQSBI T10NCiAgODA5IHJvb3QgICAgICAgICAgICBTVzwgW2tyZmNvbW1kXQ0KICA4MTcgcm9vdCAgICAg ICAgICAgIFNXTiBbamZmczJfZ2NkX210ZDJdDQogIDgzNiByb290ICAgICAgICAgOTIgUyAgIHRl bG5ldGQgLWwgL2Jpbi9zaCANCiAgODM4IHJvb3QgICAgICAgIDk1MiBTICAgLXNoIA0KICA4NDYg cm9vdCAgICAgICAgNDQ4IFMgPCB1ZGV2ZCAtZCANCiAgODgwIHJvb3QgICAgICAgIDIxMiBTICAg aGNpYXR0YWNoIC9kZXYvdHR5UzAgYmNzcCA5MjE2MDAgZmxvdyANCiAgODg2IG1lc3NhZ2ViICAg IDg0NCBTICAgZGJ1cy1kYWVtb24gLS1zeXN0ZW0gDQogIDg5MiByb290ICAgICAgIDIxMDQgUyAg IGJsdWV0b290aGQgLWQgDQogIDg5OCByb290ICAgICAgICA3NjQgUyAgIGFnZW50IDAwMDAgDQog IDkxMyByb290ICAgICAgICA3ODggUyAgIC91c3IvYmluL2RidXMtZGFlbW9uIC0tZm9yayAtLXBy aW50LXBpZCA0IC0tcHJpbnQtYWRkDQogIDkxNCByb290ICAgICAgIDE1MDggUyAgIG9iZXhkIC0t bm9kYWVtb24gLS1vcHAgLS1mdHAgLWQgLWEgLXIgL2J0dGVzdCANCiAgOTcyIHJvb3QgICAgICAg IDgwMCBSICAgcHMgDQpbcm9vdEBMaW51eCAvYnR0ZXN0XSMNCltyb290QExpbnV4IC9idHRlc3Rd Iy4vcmVjZWl2ZS1maWxlcyAvYnR0ZXN0LzEud2F2ICYNCg0Kb2JleCBmaWxlIHBhdGggPSAvYnR0 ZXN0LzEud2F2DQpPYmV4IHJlY2VpdmVyIDogc2Vzc2lvbiBidXMgY29ubmVjdGVkDQpPYmV4IHNl bmRlciA6IHJlZ2lzdGVyZWQgb24gYnVzIGFzIG9yZy5vcGVub2JleA0Kb2JleGRbOTE0XTogQWdl bnQgcmVnaXN0ZXJlZA0KcmVnaXN0ZXJfYWdlbnQgT0shDQoNCiMjIyMjIC0tLS0+ICAgbm93LCBz ZW5kIGZpbGVzIGZyb20gbW9iaWxlIHBob25lIChNT1RPIEU2KSB0byBwbGF0Zm9ybQ0KDQpibHVl dG9vdGhkWzg5Ml06IGFkYXB0ZXJfZ2V0X2RldmljZSgwMDoxQTo3Nzo3NzoxNDo4NCkNCm9iZXhk WzkxNF06IE5ldyBjb25uZWN0aW9uIGZyb206IDAwOjFBOjc3Ojc3OjE0Ojg0LCBjaGFubmVsIDks IGZkIDcNCm9iZXhkWzkxNF06IFJFUUhJTlQoMHgxKSwgQ09OTkVDVCgweDApLCAobnVsbCkoMHgw KQ0Kb2JleGRbOTE0XTogUkVRKDB4MiksIENPTk5FQ1QoMHgwKSwgKG51bGwpKDB4MCkNCm9iZXhk WzkxNF06IFZlcnNpb246IDB4MTAuIEZsYWdzOiAweDAwICBPQkVYIHBhY2tldCBsZW5ndGg6IDQw MDANCm9iZXhkWzkxNF06IFJlc2l6aW5nIHN0cmVhbSBjaHVua3MgdG8gMzgwMA0Kb2JleGRbOTE0 XTogUkVRRE9ORSgweDMpLCBDT05ORUNUKDB4MCksIChudWxsKSgweDApDQpvYmV4ZFs5MTRdOiBS RVFISU5UKDB4MSksIFBVVCgweDIpLCAobnVsbCkoMHgwKQ0Kb2JleGRbOTE0XTogUkVRQ0hFQ0so MHhiKSwgUFVUKDB4MiksIChudWxsKSgweDApDQpvYmV4ZFs5MTRdOiBPQkVYX0hEUl9MRU5HVEg6 IDEwNDA0MjkgICAgICAgICAgICAgIDwtLS0tICBmaWxlIGxlbmd0aCBpcyByaWdodA0Kb2JleGRb OTE0XTogT0JFWF9IRFJfTkFNRTogKG51bGwpDQpvYmV4ZFs5MTRdOiBPQkVYX0hEUl9UWVBFOiAN Cm9iZXhkWzkxNF06IFJFUURPTkUoMHgzKSwgUFVUKDB4MiksIChudWxsKSgweDApDQoNCiMjIyMj IC0tLS0+ICAgbm8gbWV0aG9kcyBvcmcub3Blbm9iZXguQWdlbnQuQXV0aG9yaXplIGNhbGxlZCwg YnV0IFRyYW5zZmVyQ29tcGxldGVkDQoNClRyYW5zZmVyQ29tcGxldGVkLCBzdWNjZXNzID0gMCwg b2JqcGF0aD0vdHJhbnNmZXI4ICAgIA0KDQpvYmV4ZFs5MTRdOiBSRVFISU5UKDB4MSksIERJU0NP Tk5FQ1QoMHgxKSwgKG51bGwpKDB4MCkNCm9iZXhkWzkxNF06IFJFUSgweDIpLCBESVNDT05ORUNU KDB4MSksIChudWxsKSgweDApDQpvYmV4ZFs5MTRdOiBSRVFET05FKDB4MyksIERJU0NPTk5FQ1Qo MHgxKSwgKG51bGwpKDB4MCkNCm9iZXhkWzkxNF06IEhVUA0KDQojIyMjIyAtLS0tPiAgIGV4aXQs IGFuZCBubyBmaWxlcyBoYXZlIGJlZW4gcmVjZWl2ZWQgIQ0KDQojIyMjIyMjIyMjIyMjIyMjIyMg dHJ5IG1vYmlsZSBwaG9uZSAgbm9raWEgTjc2DQoNCltyb290QExpbnV4IC9idHRlc3RdIw0KW3Jv b3RATGludXggL2J0dGVzdF0jDQpbcm9vdEBMaW51eCAvYnR0ZXN0XSMNCltyb290QExpbnV4IC9i dHRlc3RdI2JsdWV0b290aGRbODkyXTogYWRhcHRlcl9nZXRfZGV2aWNlKDAwOjFDOjM1OjAzOjRG OjNFKQ0Kb2JleGRbOTE0XTogTmV3IGNvbm5lY3Rpb24gZnJvbTogMDA6MUM6MzU6MDM6NEY6M0Us IGNoYW5uZWwgOSwgZmQgNw0Kb2JleGRbOTE0XTogUkVRSElOVCgweDEpLCBDT05ORUNUKDB4MCks IChudWxsKSgweDApDQpvYmV4ZFs5MTRdOiBSRVEoMHgyKSwgQ09OTkVDVCgweDApLCAobnVsbCko MHgwKQ0Kb2JleGRbOTE0XTogVmVyc2lvbjogMHgxMC4gRmxhZ3M6IDB4MDAgIE9CRVggcGFja2V0 IGxlbmd0aDogNjU1MzUNCm9iZXhkWzkxNF06IFJlc2l6aW5nIHN0cmVhbSBjaHVua3MgdG8gNjUz MzUNCm9iZXhkWzkxNF06IFJFUURPTkUoMHgzKSwgQ09OTkVDVCgweDApLCAobnVsbCkoMHgwKQ0K b2JleGRbOTE0XTogUkVRSElOVCgweDEpLCBQVVQoMHgyKSwgKG51bGwpKDB4MCkNCm9iZXhkWzkx NF06IFJFUUNIRUNLKDB4YiksIFBVVCgweDIpLCAobnVsbCkoMHgwKQ0Kb2JleGRbOTE0XTogT0JF WF9IRFJfTkFNRTogKG51bGwpDQpvYmV4ZFs5MTRdOiBPQkVYX0hEUl9MRU5HVEg6IDg5OTAyNDgg ICAgICAgICAgICAgICA8LS0tLSAgZmlsZSBsZW5ndGggaXMgcmlnaHQNCm9iZXhkWzkxNF06IE9C RVhfSERSX1RZUEU6IGF1ZGlvL3dhdiAgICAgICAgICAgICAgIDwtLS0tICBmaWxlIHR5cGUgaXMg cmlnaHQNCm9iZXhkWzkxNF06IFJFUURPTkUoMHgzKSwgUFVUKDB4MiksIChudWxsKSgweDApDQpz aWduYWwgc2VuZGVyPToxLjAgLT4gZGVzdD0obnVsbCBkZXN0aW5hdGlvbikgcGF0aD0vOyBpbnRl cmZhY2U9b3JnLm9wZW5vYmV4Lk1hbmFnZXI7IG1lbWJlcj1UcmFuc2ZlckNvbXBsZXRlZA0KICAg b2JqZWN0IHBhdGggIi90cmFuc2ZlcjMiDQogICBib29sZWFuIGZhbHNlDQpvYmV4ZFs5MTRdOiBI VVANCg0KIyMjIyMgLS0tLT4gICB0aGUgc2FtZTogbm8gZmlsZXMgaGF2ZSBiZWVuIHJlY2VpdmVk ------_=_NextPart_001_01C998BA.E8D30063 Content-Type: application/octet-stream; name="receive-files.c" Content-Transfer-Encoding: base64 Content-Description: receive-files.c Content-Disposition: attachment; filename="receive-files.c" LyoNCiAqDQogKiAgQmx1ZVogLSBCbHVldG9vdGggcHJvdG9jb2wgc3RhY2sgZm9yIExpbnV4DQog Kg0KICogIENvcHlyaWdodCAoQykgMjAwNC0yMDA4ICBNYXJjZWwgSG9sdG1hbm4gPG1hcmNlbEAu Li4+DQogKg0KICoNCiAqICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiBy ZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQ0KICogIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0 aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5DQogKiAgdGhlIEZy ZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwg b3INCiAqICAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLg0KICoNCiAqICBUaGlz IHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1 bCwNCiAqICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGll ZCB3YXJyYW50eSBvZg0KICogIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJ Q1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUNCiAqICBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBm b3IgbW9yZSBkZXRhaWxzLg0KICoNCiAqICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5 IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQ0KICogIGFsb25nIHdpdGggdGhpcyBw cm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlDQogKiAgRm91bmRhdGlv biwgSW5jLiwgNTEgRnJhbmtsaW4gU3QsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BICAwMjExMC0x MzAxICBVU0ENCiAqDQogKi8NCg0KDQojaW5jbHVkZSA8c3RkaW8uaD4NCiNpbmNsdWRlIDxzdGRs aWIuaD4NCiNpbmNsdWRlIDxzdHJpbmcuaD4NCiNpbmNsdWRlIDxzaWduYWwuaD4NCg0KLy8jaW5j bHVkZSA8ZXJybm8uaD4NCi8vI2luY2x1ZGUgPHVuaXN0ZC5oPg0KLy8jaW5jbHVkZSA8Z2V0b3B0 Lmg+DQoNCiNpbmNsdWRlIDxkYnVzL2RidXMuaD4NCg0KI2RlZmluZSBNQVhfTUVTU0FHRV9MRU4g MjU2DQoNCiNkZWZpbmUgT0JFWF9TRVJWRVJfQUdFTlRfUEFUSCAiL29yZy9vcGVub2JleC90ZXN0 L2FnZW50Ig0KI2RlZmluZSBPQkVYX1NFUlZFUl9BR0VOVF9TRVJWSUNFICJvcmcub3Blbm9iZXgi DQoNCi8vc3RhdGljIGludCBkb19yZWplY3QgPSAwOw0KDQpzdGF0aWMgdm9sYXRpbGUgc2lnX2F0 b21pY190IF9faW9fY2FuY2VsZWQgPSAwOw0Kc3RhdGljIHZvbGF0aWxlIHNpZ19hdG9taWNfdCBf X2lvX3Rlcm1pbmF0ZWQgPSAwOw0KDQpzdGF0aWMgY2hhciAqbG9jYWxfcGF0aG5hbWUgPSBOVUxM Ow0KY29uc3QgY2hhciAqc2VydmVyX2FnZW50ID0gT0JFWF9TRVJWRVJfQUdFTlRfUEFUSDsNCg0K c3RhdGljIHZvaWQgc2lnX3Rlcm0oaW50IHNpZykNCnsNCglfX2lvX2NhbmNlbGVkID0gMTsNCn0N Cg0Kc3RhdGljIERCdXNIYW5kbGVyUmVzdWx0IHRyYW5zZmVyX2ZpbHRlcihEQnVzQ29ubmVjdGlv biAqY29ubiwNCgkJCQkJCURCdXNNZXNzYWdlICptc2csIHZvaWQgKmRhdGEpDQp7DQoJY2hhciAq b2JqX3BhdGg7DQoJaW50IHN1Y2Nlc3M7DQoJc2lnbmVkIGludCB0b3RhbF9ieXRlcywgdHJhbnNm ZXJlZF9ieXRlczsNCg0KCWlmIChkYnVzX21lc3NhZ2VfaXNfc2lnbmFsKG1zZywgIm9yZy5vcGVu b2JleC5UcmFuc2ZlciIsICJQcm9ncmVzcyIpKQkJDQoJew0KCQlpZiAoIWRidXNfbWVzc2FnZV9n ZXRfYXJncyhtc2csIE5VTEwsIERCVVNfVFlQRV9JTlQzMiwgJnRvdGFsX2J5dGVzLA0KCQkJCQlE QlVTX1RZUEVfSU5UMzIsICZ0cmFuc2ZlcmVkX2J5dGVzLCBEQlVTX1RZUEVfSU5WQUxJRCkpIHsN CgkJCWZwcmludGYoc3RkZXJyLCAiSW52YWxpZCBhcmd1bWVudHMgZm9yIFRyYW5zZmVyIFByb2dy ZXNzIHNpZ25hbCIpOw0KCQkJcmV0dXJuIERCVVNfSEFORExFUl9SRVNVTFRfTk9UX1lFVF9IQU5E TEVEOw0KCQl9DQoNCgkJaWYgKHRyYW5zZmVyZWRfYnl0ZXMgPj0gdG90YWxfYnl0ZXMpIHsNCgkJ CWZwcmludGYoc3RkZXJyLCAiVHJhbnNmZXIgb2ssIHRlcm1pbmF0ZWRcbiIpOw0KCQkJX19pb190 ZXJtaW5hdGVkID0gMTsNCgkJfQ0KCQllbHNlIHsNCgkJCXByaW50ZigiJS4yZiUlLCAlbHVcbiIs IHRyYW5zZmVyZWRfYnl0ZXMvdG90YWxfYnl0ZXMsIHRyYW5zZmVyZWRfYnl0ZXMpOw0KCQkJcmV0 dXJuIERCVVNfSEFORExFUl9SRVNVTFRfSEFORExFRDsNCgkJCS8vcmV0dXJuIERCVVNfSEFORExF Ul9SRVNVTFRfTk9UX1lFVF9IQU5ETEVEOw0KCQl9DQoJfQ0KDQoJaWYgKGRidXNfbWVzc2FnZV9p c19zaWduYWwobXNnLCAib3JnLm9wZW5vYmV4Lk1hbmFnZXIiLCAiVHJhbnNmZXJTdGFydGVkIikp DQoJew0KCQlpZiAoIWRidXNfbWVzc2FnZV9nZXRfYXJncyhtc2csIE5VTEwsIA0KCQkJREJVU19U WVBFX09CSkVDVF9QQVRILCAmb2JqX3BhdGgsIERCVVNfVFlQRV9JTlZBTElEKSkgew0KCQkJZnBy aW50ZihzdGRlcnIsICJJbnZhbGlkIGFyZ3VtZW50cyBmb3IgVHJhbnNmZXJTdGFydGVkIHNpZ25h bCIpOw0KCQkJcmV0dXJuIERCVVNfSEFORExFUl9SRVNVTFRfTk9UX1lFVF9IQU5ETEVEOw0KCQl9 DQoJCXByaW50ZigiVHJhbnNmZXJTdGFydGVkLCBvYmpwYXRoPSVzXG4iLCBvYmpfcGF0aCk7DQoN CgkJcmV0dXJuIERCVVNfSEFORExFUl9SRVNVTFRfSEFORExFRDsNCgl9DQoNCglpZiAoZGJ1c19t ZXNzYWdlX2lzX3NpZ25hbChtc2csICJvcmcub3Blbm9iZXguTWFuYWdlciIsICJUcmFuc2ZlckNv bXBsZXRlZCIpKQkJDQoJew0KCQlpZiAoIWRidXNfbWVzc2FnZV9nZXRfYXJncyhtc2csIE5VTEws IERCVVNfVFlQRV9PQkpFQ1RfUEFUSCwgJm9ial9wYXRoLCANCgkJCURCVVNfVFlQRV9CT09MRUFO LCAmc3VjY2VzcywgREJVU19UWVBFX0lOVkFMSUQpKSB7DQoJCQlmcHJpbnRmKHN0ZGVyciwgIklu dmFsaWQgYXJndW1lbnRzIGZvciBUcmFuc2ZlckNvbXBsZXRlZCBzaWduYWwiKTsNCgkJCXJldHVy biBEQlVTX0hBTkRMRVJfUkVTVUxUX05PVF9ZRVRfSEFORExFRDsNCgkJfQ0KCQlwcmludGYoIlRy YW5zZmVyQ29tcGxldGVkLCBzdWNjZXNzID0gJWQsIG9ianBhdGg9JXNcbiIsIHN1Y2Nlc3MsIG9i al9wYXRoKTsNCgkJX19pb190ZXJtaW5hdGVkID0gMTsNCg0KCQlyZXR1cm4gREJVU19IQU5ETEVS X1JFU1VMVF9IQU5ETEVEOw0KCX0NCg0KCXJldHVybiBEQlVTX0hBTkRMRVJfUkVTVUxUX05PVF9Z RVRfSEFORExFRDsNCn0NCg0KDQpzdGF0aWMgREJ1c0hhbmRsZXJSZXN1bHQgYXV0aG9yaXplX21l c3NhZ2UoREJ1c0Nvbm5lY3Rpb24gKmNvbm4sDQoJCQkJCQlEQnVzTWVzc2FnZSAqbXNnLCB2b2lk ICpkYXRhKQ0Kew0KCURCdXNNZXNzYWdlICpyZXBseTsNCgljb25zdCBjaGFyICpmX3RyYW5zZmVy LCAqZl9hZGRyZXNzOw0KCWNvbnN0IGNoYXIgKmZfbmFtZSwgKmZfdHlwZTsNCglzaWduZWQgaW50 IGZfbGVuZ3RoLCBmX3RpbWU7DQoJDQoJaWYgKCFkYnVzX21lc3NhZ2VfZ2V0X2FyZ3MobXNnLCBO VUxMLA0KCQkJREJVU19UWVBFX09CSkVDVF9QQVRILCAmZl90cmFuc2ZlciwgREJVU19UWVBFX1NU UklORywgJmZfYWRkcmVzcywNCgkJCURCVVNfVFlQRV9TVFJJTkcsICZmX25hbWUsIERCVVNfVFlQ RV9TVFJJTkcsICZmX3R5cGUsDQoJCQlEQlVTX1RZUEVfSU5UMzIsICZmX2xlbmd0aCwgREJVU19U WVBFX0lOVDMyLCAmZl90aW1lLCBEQlVTX1RZUEVfSU5WQUxJRCkpIHsNCgkJZnByaW50ZihzdGRl cnIsICJJbnZhbGlkIGFyZ3VtZW50cyBmb3IgQWdlbnQgQXV0aG9yaXplIG1ldGhvZCIpOw0KCQly ZXR1cm4gREJVU19IQU5ETEVSX1JFU1VMVF9OT1RfWUVUX0hBTkRMRUQ7DQoJfQ0KDQoJcHJpbnRm KCJBdXRob3JpemF0aW9uIHJlcXVlc3QgZm9yIGRldmljZTogJXNcblx0bmFtZTogJXNcblx0bGVu Z3RoOiVzXG4iLCANCgkJZl9hZGRyZXNzLCBmX25hbWUsIGZfbGVuZ3RoKTsNCg0KCXJlcGx5ID0g ZGJ1c19tZXNzYWdlX25ld19tZXRob2RfcmV0dXJuKG1zZyk7DQoJaWYgKCFyZXBseSkgew0KCQlm cHJpbnRmKHN0ZGVyciwgIkNhbid0IGNyZWF0ZSByZXBseSBtZXNzYWdlXG4iKTsNCgkJcmV0dXJu IERCVVNfSEFORExFUl9SRVNVTFRfTkVFRF9NRU1PUlk7DQoJfQ0KDQoJZGJ1c19tZXNzYWdlX2Fw cGVuZF9hcmdzKHJlcGx5LCBEQlVTX1RZUEVfU1RSSU5HLCAmbG9jYWxfcGF0aG5hbWUsIERCVVNf VFlQRV9JTlZBTElEKTsNCgkvL2RidXNfbWVzc2FnZV9hcHBlbmRfYXJncyhyZXBseSwgREJVU19U WVBFX1NUUklORywgJmZfbmFtZSwgREJVU19UWVBFX0lOVkFMSUQpOw0KCQ0KCWRidXNfY29ubmVj dGlvbl9zZW5kKGNvbm4sIHJlcGx5LCBOVUxMKTsNCg0KCWRidXNfY29ubmVjdGlvbl9mbHVzaChj b25uKTsNCg0KCWRidXNfbWVzc2FnZV91bnJlZihyZXBseSk7DQoJDQoJcmV0dXJuIERCVVNfSEFO RExFUl9SRVNVTFRfSEFORExFRDsNCn0NCg0KDQpzdGF0aWMgREJ1c0hhbmRsZXJSZXN1bHQgY2Fu Y2VsX21lc3NhZ2UoREJ1c0Nvbm5lY3Rpb24gKmNvbm4sDQoJCQkJCQlEQnVzTWVzc2FnZSAqbXNn LCB2b2lkICpkYXRhKQ0Kew0KCURCdXNNZXNzYWdlICpyZXBseTsNCgljb25zdCBjaGFyICpwYXRo LCAqYWRkcmVzczsNCg0KCWlmICghZGJ1c19tZXNzYWdlX2dldF9hcmdzKG1zZywgTlVMTCwgREJV U19UWVBFX0lOVkFMSUQpKSB7DQoJCWZwcmludGYoc3RkZXJyLCAiSW52YWxpZCBhcmd1bWVudHMg Zm9yIENhbmNlbCBtZXRob2QiKTsNCgkJcmV0dXJuIERCVVNfSEFORExFUl9SRVNVTFRfTk9UX1lF VF9IQU5ETEVEOw0KCX0NCg0KCXJlcGx5ID0gZGJ1c19tZXNzYWdlX25ld19tZXRob2RfcmV0dXJu KG1zZyk7DQoJaWYgKCFyZXBseSkgew0KCQlmcHJpbnRmKHN0ZGVyciwgIkNhbid0IGNyZWF0ZSBy ZXBseSBtZXNzYWdlXG4iKTsNCgkJcmV0dXJuIERCVVNfSEFORExFUl9SRVNVTFRfTkVFRF9NRU1P Ulk7DQoJfQ0KDQoJZGJ1c19jb25uZWN0aW9uX3NlbmQoY29ubiwgcmVwbHksIE5VTEwpOw0KDQoJ ZGJ1c19jb25uZWN0aW9uX2ZsdXNoKGNvbm4pOw0KDQoJZGJ1c19tZXNzYWdlX3VucmVmKHJlcGx5 KTsNCg0KCXJldHVybiBEQlVTX0hBTkRMRVJfUkVTVUxUX0hBTkRMRUQ7DQp9DQoNCg0Kc3RhdGlj IERCdXNIYW5kbGVyUmVzdWx0IGFnZW50X21lc3NhZ2UoREJ1c0Nvbm5lY3Rpb24gKmNvbm4sDQoJ CQkJCQlEQnVzTWVzc2FnZSAqbXNnLCB2b2lkICpkYXRhKQ0Kew0KCXByaW50ZigiQWdlbnRfbWVz c2FnZSB3YXMgY2FsbGVkIVxuIik7DQoNCglpZiAoZGJ1c19tZXNzYWdlX2lzX21ldGhvZF9jYWxs KG1zZywgIm9yZy5vcGVub2JleC5BZ2VudCIsICJBdXRob3JpemUiKSl7DQoJCXByaW50ZigiQWdl bnQgY2FsbGVkOiBBdXRob3JpemVcbiIpOw0KCQlyZXR1cm4gYXV0aG9yaXplX21lc3NhZ2UoY29u biwgbXNnLCBkYXRhKTsNCgl9DQoJDQoJaWYgKGRidXNfbWVzc2FnZV9pc19tZXRob2RfY2FsbCht c2csICJvcmcub3Blbm9iZXguQWdlbnQiLCAiQ2FuY2VsIikpew0KCQlwcmludGYoIkFnZW50IGNh bGxlZDogQ2FuY2VsXG4iKTsNCgkJcmV0dXJuIGNhbmNlbF9tZXNzYWdlKGNvbm4sIG1zZywgZGF0 YSk7DQoJfQ0KDQoJcmV0dXJuIERCVVNfSEFORExFUl9SRVNVTFRfTk9UX1lFVF9IQU5ETEVEOw0K fQ0KDQpzdGF0aWMgY29uc3QgREJ1c09iamVjdFBhdGhWVGFibGUgYWdlbnRfdGFibGUgPSB7DQoJ Lm1lc3NhZ2VfZnVuY3Rpb24gPSBhZ2VudF9tZXNzYWdlLA0KfTsNCg0KDQpzdGF0aWMgaW50IHJl Z2lzdGVyX2FnZW50KERCdXNDb25uZWN0aW9uICpjb25uKQ0Kew0KCURCdXNNZXNzYWdlICptc2cs ICpyZXBseTsNCglEQnVzRXJyb3IgZXJyOw0KDQoJaWYgKCFkYnVzX2Nvbm5lY3Rpb25fcmVnaXN0 ZXJfb2JqZWN0X3BhdGgoY29ubiwgDQoJCU9CRVhfU0VSVkVSX0FHRU5UX1BBVEgsICZhZ2VudF90 YWJsZSwgTlVMTCkpIHsNCgkJZnByaW50ZihzdGRlcnIsICJDYW4ndCByZWdpc3RlciBvYmplY3Qg cGF0aCBmb3IgYWdlbnRcbiIpOw0KCQlyZXR1cm4gLTE7DQoJfQ0KDQoJbXNnID0gZGJ1c19tZXNz YWdlX25ld19tZXRob2RfY2FsbCgib3JnLm9wZW5vYmV4IiwgIi8iLA0KCQkJCQkib3JnLm9wZW5v YmV4Lk1hbmFnZXIiLCAiUmVnaXN0ZXJBZ2VudCIpOw0KCWlmICghbXNnKSB7DQoJCWZwcmludGYo c3RkZXJyLCAiQ2FuJ3QgYWxsb2NhdGUgbmV3IG9iZXggbWV0aG9kIGNhbGxcbiIpOw0KCQlyZXR1 cm4gLTE7DQoJfQ0KDQoJZGJ1c19tZXNzYWdlX2FwcGVuZF9hcmdzKG1zZywgREJVU19UWVBFX09C SkVDVF9QQVRILA0KCQkmc2VydmVyX2FnZW50LCBEQlVTX1RZUEVfSU5WQUxJRCk7DQoNCglkYnVz X2Vycm9yX2luaXQoJmVycik7DQoNCglyZXBseSA9IGRidXNfY29ubmVjdGlvbl9zZW5kX3dpdGhf cmVwbHlfYW5kX2Jsb2NrKGNvbm4sIG1zZywgLTEsICZlcnIpOw0KDQoJZGJ1c19tZXNzYWdlX3Vu cmVmKG1zZyk7DQoNCglpZiAoIXJlcGx5KSB7DQoJCWZwcmludGYoc3RkZXJyLCAiQ2FuJ3QgcmVn aXN0ZXIgYWdlbnRcbiIpOw0KCQlpZiAoZGJ1c19lcnJvcl9pc19zZXQoJmVycikpIHsNCgkJCWZw cmludGYoc3RkZXJyLCAiJXNcbiIsIGVyci5tZXNzYWdlKTsNCgkJCWRidXNfZXJyb3JfZnJlZSgm ZXJyKTsNCgkJfQ0KCQlyZXR1cm4gLTE7DQoJfQ0KDQoJZGJ1c19tZXNzYWdlX3VucmVmKHJlcGx5 KTsNCglkYnVzX2Nvbm5lY3Rpb25fZmx1c2goY29ubik7DQoNCglyZXR1cm4gMDsNCn0NCg0Kc3Rh dGljIGludCB1bnJlZ2lzdGVyX2FnZW50KERCdXNDb25uZWN0aW9uICpjb25uKQ0Kew0KCURCdXNN ZXNzYWdlICptc2csICpyZXBseTsNCglEQnVzRXJyb3IgZXJyOw0KDQoJbXNnID0gZGJ1c19tZXNz YWdlX25ld19tZXRob2RfY2FsbCgib3JnLm9wZW5vYmV4IiwgIi8iLA0KCQkJCQkib3JnLm9wZW5v YmV4Lk1hbmFnZXIiLCAiVW5yZWdpc3RlckFnZW50Iik7DQoJaWYgKCFtc2cpIHsNCgkJZnByaW50 ZihzdGRlcnIsICJDYW4ndCBhbGxvY2F0ZSBuZXcgVW5yZWdpc3RlckFnZW50IG1ldGhvZCBjYWxs XG4iKTsNCgkJcmV0dXJuIC0xOw0KCX0NCg0KCWRidXNfbWVzc2FnZV9hcHBlbmRfYXJncyhtc2cs IERCVVNfVFlQRV9PQkpFQ1RfUEFUSCwNCgkJCSZzZXJ2ZXJfYWdlbnQsIERCVVNfVFlQRV9JTlZB TElEKTsNCg0KCWRidXNfZXJyb3JfaW5pdCgmZXJyKTsNCg0KCXJlcGx5ID0gZGJ1c19jb25uZWN0 aW9uX3NlbmRfd2l0aF9yZXBseV9hbmRfYmxvY2soY29ubiwgbXNnLCAtMSwgJmVycik7DQoNCglk YnVzX21lc3NhZ2VfdW5yZWYobXNnKTsNCg0KCWlmICghcmVwbHkpIHsNCgkJZnByaW50ZihzdGRl cnIsICJDYW4ndCB1bnJlZ2lzdGVyIGFnZW50XG4iKTsNCgkJaWYgKGRidXNfZXJyb3JfaXNfc2V0 KCZlcnIpKSB7DQoJCQlmcHJpbnRmKHN0ZGVyciwgIiVzXG4iLCBlcnIubWVzc2FnZSk7DQoJCQlk YnVzX2Vycm9yX2ZyZWUoJmVycik7DQoJCX0NCgkJcmV0dXJuIC0xOw0KCX0NCg0KCWRidXNfbWVz c2FnZV91bnJlZihyZXBseSk7DQoJZGJ1c19jb25uZWN0aW9uX2ZsdXNoKGNvbm4pOw0KDQoJcmV0 dXJuIDA7DQp9DQoNCnN0YXRpYyB1c2FnZShGSUxFICogc3RyZWFtLCBjaGFyICogY29tbWFuZCkN CnsNCglmcHJpbnRmKHN0cmVhbSwgIk9iZXhkIHJlY2VpdmUtZmlsZXMgYWdlbnQgdmVyICVzXG5c biIsICIwLjgiKTsNCg0KCWZwcmludGYoc3RyZWFtLCAiVXNhZ2UgOiAlcyA8bG9jYWwgZmlsZSBw YXRoIG5hbWU+XG4iLCBjb21tYW5kKTsNCg0KfQ0KDQpzdGF0aWMgdm9pZCBkaXNwbGF5X2Vycm9y KERCdXNFcnJvciAqcGVyciwgY29uc3QgY2hhciAqIG1lc3NhZ2UpDQp7DQoJaWYgKGRidXNfZXJy b3JfaXNfc2V0KHBlcnIpID09IFRSVUUpIHsNCgkJZnByaW50ZihzdGRlcnIsICIlcyA6ICVzXG4i LG1lc3NhZ2UsIHBlcnItPm1lc3NhZ2UpOw0KCQlkYnVzX2Vycm9yX2ZyZWUocGVycik7DQoJfSBl bHNlDQoJCWZwcmludGYoc3RkZXJyLCAiJXNcbiIsIG1lc3NhZ2UpOw0KfQ0KDQppbnQgbWFpbihp bnQgYXJnYywgY2hhciAqYXJndltdKQ0Kew0KCWNvbnN0IGNoYXIgKmNhcGFiaWxpdGllcyA9ICJE aXNwbGF5WWVzTm8iOw0KCXN0cnVjdCBzaWdhY3Rpb24gc2E7DQoJREJ1c0Nvbm5lY3Rpb24gKmNv bm47DQoJREJ1c0Vycm9yIGVycjsNCgljaGFyIG1hdGNoX3N0cmluZ1sxMjhdOw0KCWNoYXIgKmRl dmljZV9wYXRoID0gTlVMTCwgKmFnZW50X3BhdGggPSBOVUxMOw0KCWludCBvcHQ7DQoNCglpZiAo YXJnYyA8IDIpIHsNCgkJdXNhZ2Uoc3RkZXJyLCBhcmd2WzBdKTsNCgkJZXhpdCgxKTsNCgl9DQoN Cglsb2NhbF9wYXRobmFtZT0gc3RyZHVwKGFyZ3ZbMV0pOw0KCXByaW50ZigiXG5vYmV4IGZpbGUg cGF0aCA9ICVzXG4iLCBsb2NhbF9wYXRobmFtZSk7DQoNCglkYnVzX2Vycm9yX2luaXQoJmVycik7 DQoNCgljb25uID0gZGJ1c19idXNfZ2V0KERCVVNfQlVTX1NFU1NJT04sICZlcnIpOw0KCWlmIChj b25uID09IE5VTEwpIHsNCgkJZnByaW50ZihzdGRlcnIsICJDYW5ub3QgY29ubmVjdCBzZXNzaW9u IGJ1c1xuIik7DQoJCWlmIChkYnVzX2Vycm9yX2lzX3NldCgmZXJyKSkgew0KCQkJZnByaW50Zihz dGRlcnIsICIlc1xuIiwgZXJyLm1lc3NhZ2UpOw0KCQkJZGJ1c19lcnJvcl9mcmVlKCZlcnIpOw0K CQl9DQoJCWV4aXQoRVhJVF9GQUlMVVJFKTsNCgl9DQogICAJcHJpbnRmKCJPYmV4IHJlY2VpdmVy IDogc2Vzc2lvbiBidXMgY29ubmVjdGVkXG4iKTsNCg0KDQoJaW50IGRidXNyZXQgPSBkYnVzX2J1 c19yZXF1ZXN0X25hbWUgKGNvbm4sIE9CRVhfU0VSVkVSX0FHRU5UX1NFUlZJQ0UsIA0KCQkJREJV U19OQU1FX0ZMQUdfUkVQTEFDRV9FWElTVElORywgJmVycik7DQogICAgICAgIGlmIChkYnVzX2Vy cm9yX2lzX3NldCAoJmVycikpIHsNCiAgICAgICAgICAgICAgICBmcHJpbnRmIChzdGRlcnIsICJy ZXF1ZXN0aW5nIG5hbWUgZmFpbGVkOiAlcywgZGJ1cyByZXQgPSVkXG4iLCBlcnIubWVzc2FnZSwg ZGJ1c3JldCk7ICAgDQogICAgICAgICAJZGJ1c19jb25uZWN0aW9uX3VucmVmKGNvbm4pOw0KICAg ICAgICAgICAgICAgIHJldHVybiBFWElUX0ZBSUxVUkU7DQogICAgICAgIH0NCglwcmludGYoIk9i ZXggc2VuZGVyIDogcmVnaXN0ZXJlZCBvbiBidXMgYXMgJXNcbiIsIE9CRVhfU0VSVkVSX0FHRU5U X1NFUlZJQ0UpOw0KDQoNCglpZiAocmVnaXN0ZXJfYWdlbnQoY29ubikgPCAwKSB7DQoJCWlmIChk YnVzX2Vycm9yX2lzX3NldCgmZXJyKSkgew0KCQkJZnByaW50ZihzdGRlcnIsICIlc1xuIiwgZXJy Lm1lc3NhZ2UpOw0KCQkJZGJ1c19lcnJvcl9mcmVlKCZlcnIpOw0KCQl9CQkNCgkJcHJpbnRmKCJy ZWdpc3Rlcl9hZ2VudCBmYWlsZWQhXG4iKTsNCgkJZGJ1c19jb25uZWN0aW9uX3VucmVmKGNvbm4p Ow0KCQlyZXR1cm4gRVhJVF9GQUlMVVJFOw0KCX0NCglwcmludGYoInJlZ2lzdGVyX2FnZW50IE9L IVxuIik7DQoNCg0KCWRidXNfYnVzX2FkZF9tYXRjaChjb25uLCAidHlwZT0nc2lnbmFsJyxpbnRl cmZhY2U9J29yZy5vcGVub2JleC5UcmFuc2ZlcicsbWVtYmVyPSdQcm9ncmVzcyciLCBOVUxMKTsN CglkYnVzX2J1c19hZGRfbWF0Y2goY29ubiwgInR5cGU9J3NpZ25hbCcsaW50ZXJmYWNlPSdvcmcu b3Blbm9iZXguTWFuYWdlcicsbWVtYmVyPSdUcmFuc2ZlclN0YXJ0ZWQnIiwgTlVMTCk7DQoJZGJ1 c19idXNfYWRkX21hdGNoKGNvbm4sICJ0eXBlPSdzaWduYWwnLGludGVyZmFjZT0nb3JnLm9wZW5v YmV4Lk1hbmFnZXInLG1lbWJlcj0nVHJhbnNmZXJDb21wbGV0ZWQnIiwgTlVMTCk7DQoNCglpZiAo IWRidXNfY29ubmVjdGlvbl9hZGRfZmlsdGVyKGNvbm4sIHRyYW5zZmVyX2ZpbHRlciwgTlVMTCwg TlVMTCkpDQoJCWZwcmludGYoc3RkZXJyLCAiQ2FuJ3QgYWRkIHNpZ25hbCB0cmFuc2Zlcl9uZXcg ZmlsdGVyIik7DQoNCg0KCW1lbXNldCgmc2EsIDAsIHNpemVvZihzYSkpOw0KCXNhLnNhX2hhbmRs ZXIgPSBzaWdfdGVybTsNCglzaWdhY3Rpb24oU0lHVEVSTSwgJnNhLCBOVUxMKTsNCglzaWdhY3Rp b24oU0lHSU5ULCAgJnNhLCBOVUxMKTsNCg0KCXdoaWxlICghX19pb19jYW5jZWxlZCAmJiAhX19p b190ZXJtaW5hdGVkKSB7DQoJCWlmIChkYnVzX2Nvbm5lY3Rpb25fcmVhZF93cml0ZV9kaXNwYXRj aChjb25uLCA1MDApICE9IFRSVUUpDQoJCQlicmVhazsNCgl9DQoNCi8vCWlmICghX19pb190ZXJt aW5hdGVkKQ0KCQl1bnJlZ2lzdGVyX2FnZW50KGNvbm4pOw0KDQoJZGJ1c19jb25uZWN0aW9uX3Vu cmVmKGNvbm4pOw0KDQoJcmV0dXJuIDA7DQp9DQoNCg== ------_=_NextPart_001_01C998BA.E8D30063--