From: <lin...@as...> - 2007-03-19 08:35:32
|
Z3N0cmVhbWVyLWRldmVsSGmjrGFsbKOhDQoJSSdtIHdyaXR0aW5nIGEgYXBwbGljYXRpb24uSXQg aW5jbHVkZXMgc3BlZWNoIGFuZCB2aWRlbyBkaXNwbGF5LlRoaXMgYXBwbGljYXRpb24gaXMgYWJv dXQNCnR3byBsaXZlIHNvdXJjZSBpbiB0d28gcGlwZWxpbmVzLFRoZSBjb2RlcyBhcyBmb2xsb3c6 DQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0Kc3RhdGljIEdzdEVsZW1lbnQgKg0K bWFrZV92aWRlb19waXBlbGluZSAoY29uc3QgZ2NoYXIgKiBpcCkNCnsNCglHc3RFbGVtZW50ICAq dlNvdXJjZSwgICp2RW5jb2RlciwgKnZSdHBwYXksICp2VWRwc2VuZCAsKnZVZHByZWN2LCAgKnZS dHBkZXBheSwgKnZEZWNvZGVyOw0KCUdzdEVsZW1lbnQgICp2Y1BpcGVsaW5lLCp2c1BpcGVsaW5l LCp2UGlwZWxpbmU7DQoJR3N0Q2FwcyAqdkNhcHM7DQoJDQoJdkNhcHMgPSBnc3RfY2Fwc19mcm9t X3N0cmluZyAoIi4uLi4uLi4uLiIpOw0KCQ0KCS8qIHZpZGVvIGxpbmUgY3JlYXRlIGVsZW1lbnRz ICovDQoJdmNQaXBlbGluZSA9IGdzdF9waXBlbGluZV9uZXcgKE5VTEwpOw0KCXZzUGlwZWxpbmUg PSBnc3RfcGlwZWxpbmVfbmV3IChOVUxMKTsNCgl2UGlwZWxpbmUgPSBnc3RfcGlwZWxpbmVfbmV3 IChOVUxMKTsNCgkNCgl2U291cmNlID0gZ3N0X2VsZW1lbnRfZmFjdG9yeV9tYWtlKCJ2NGwyc3Jj IiwgTlVMTCk7DQoJdkVuY29kZXIgPSBnc3RfZWxlbWVudF9mYWN0b3J5X21ha2UgKCJteWVuY29k ZXIiLCBOVUxMKTsNCgl2UnRwcGF5ID0gZ3N0X2VsZW1lbnRfZmFjdG9yeV9tYWtlICgibXlydHBw YXkiLCBOVUxMKTsNCgl2VWRwc2VuZCA9IGdzdF9lbGVtZW50X2ZhY3RvcnlfbWFrZSAoInVkcHNp bmsiLCBOVUxMKTsNCgl2VWRwcmVjdiA9IGdzdF9lbGVtZW50X2ZhY3RvcnlfbWFrZSgidWRwc3Jj IiwgTlVMTCk7DQoJdlJ0cGRlcGF5ID0gZ3N0X2VsZW1lbnRfZmFjdG9yeV9tYWtlICgibXlydHBk ZXBheSIsIE5VTEwpOw0KCXZEZWNvZGVyID0gZ3N0X2VsZW1lbnRfZmFjdG9yeV9tYWtlICgibXlk ZWNvZGVyYW5kc2luayIsIE5VTEwpOw0KDQoJZ19vYmplY3Rfc2V0KEdfT0JKRUNUKHZVZHBzZW5k KSwicG9ydCIsNjAwMCxOVUxMKTsNCglnX29iamVjdF9zZXQoR19PQkpFQ1QodlVkcHNlbmQpLCJo b3N0IixpcCxOVUxMKTsNCglnX29iamVjdF9zZXQoR19PQkpFQ1QodlVkcHJlY3YpLCJwb3J0Iiw2 MDAwLE5VTEwpOw0KCWdfb2JqZWN0X3NldChHX09CSkVDVCh2VWRwcmVjdiksImNhcHMiLHZDYXBz LE5VTEwpOw0KCWdfb2JqZWN0X3NldChHX09CSkVDVCh2RGVjb2RlciksInN5bmMiLEZBTFNFLE5V TEwpOw0KDQoJZ3N0X2Jpbl9hZGQoR1NUX0JJTiAodnNQaXBlbGluZSksdlNvdXJjZSk7DQoJZ3N0 X2Jpbl9hZGQoR1NUX0JJTiAodnNQaXBlbGluZSksdkVuY29kZXIpOw0KCWdzdF9iaW5fYWRkKEdT VF9CSU4gKHZzUGlwZWxpbmUpLHZSdHBwYXkpOw0KCWdzdF9iaW5fYWRkKEdTVF9CSU4gKHZzUGlw ZWxpbmUpLHZVZHBzZW5kKTsNCgkNCglnc3RfYmluX2FkZChHU1RfQklOICh2Y1BpcGVsaW5lKSx2 VWRwcmVjdik7DQoJZ3N0X2Jpbl9hZGQoR1NUX0JJTiAodmNQaXBlbGluZSksdlJ0cGRlcGF5KTsN Cglnc3RfYmluX2FkZChHU1RfQklOICh2Y1BpcGVsaW5lKSx2RGVjb2Rlcik7DQoJDQogICAgZ3N0 X2Jpbl9hZGQoR1NUX0JJTiAodlBpcGVsaW5lKSx2c1BpcGVsaW5lKTsNCiAgICBnc3RfYmluX2Fk ZChHU1RfQklOICh2UGlwZWxpbmUpLHZjUGlwZWxpbmUpOw0KCQ0KCWdzdF9lbGVtZW50X2xpbmso dlNvdXJjZSAsIHZFbmNvZGVyKTsNCglnc3RfZWxlbWVudF9saW5rKHZFbmNvZGVyLHZSdHBwYXkp Ow0KCWdzdF9lbGVtZW50X2xpbmsodlJ0cHBheSAsIHZVZHBzZW5kKTsNCgkNCiAgICBnc3RfZWxl bWVudF9saW5rKHZVZHByZWN2LCB2UnRwZGVwYXkpOw0KICAgIGdzdF9lbGVtZW50X2xpbmsodlJ0 cGRlcGF5LCB2RGVjb2Rlcik7DQoJDQoJcmV0dXJuIHZQaXBlbGluZTsNCn0NCg0Kc3RhdGljIEdz dEVsZW1lbnQgKg0KbWFrZV9zcGVlY2hfcGlwZWxpbmUgKGNvbnN0IGdjaGFyICogaXApDQp7DQoJ R3N0RWxlbWVudCAgKmFTb3VyY2UsICAqYUVuY29kZXIsICphUnRwcGF5LCAqYVVkcHNlbmQgLCph VWRwcmVjdiwgICphUnRwZGVwYXksICphRGVjb2RlciwqYVNpbmsgLCAqYVF1ZXVlOw0KCUdzdEVs ZW1lbnQgICphY0JpbiwqYXNCaW4sKmFjUGlwZWxpbmUsKmFzUGlwZWxpbmUsKmFQaXBlbGluZTsN CglHc3RDYXBzICphQ2FwczsNCgkNCglhQ2FwcyA9IGdzdF9jYXBzX2Zyb21fc3RyaW5nICgiLi4u Iik7DQoJDQoJYVBpcGVsaW5lID0gZ3N0X3BpcGVsaW5lX25ldyAoTlVMTCk7DQogICAgYWNQaXBl bGluZSA9IGdzdF9waXBlbGluZV9uZXcgKE5VTEwpOw0KCWFzUGlwZWxpbmUgPSBnc3RfcGlwZWxp bmVfbmV3IChOVUxMKTsNCgkNCglhU291cmNlID0gZ3N0X2VsZW1lbnRfZmFjdG9yeV9tYWtlKCJv c3NzcmMiLCBOVUxMKTsNCglhRW5jb2RlciA9IGdzdF9lbGVtZW50X2ZhY3RvcnlfbWFrZSAoIm15 ZW5jb2RlciIsIE5VTEwpOw0KCWFSdHBwYXkgPSBnc3RfZWxlbWVudF9mYWN0b3J5X21ha2UgKCJt eXJ0cHBheSIsTlVMTCk7DQoJYVVkcHNlbmQgPSBnc3RfZWxlbWVudF9mYWN0b3J5X21ha2UgKCJ1 ZHBzaW5rIiwgTlVMTCk7DQoJYVVkcHJlY3YgPSBnc3RfZWxlbWVudF9mYWN0b3J5X21ha2UoInVk cHNyYyIsIE5VTEwpOw0KCWFSdHBkZXBheSA9IGdzdF9lbGVtZW50X2ZhY3RvcnlfbWFrZSAoIm15 cnRwZGVwYXkiLCBOVUxMKTsNCglhRGVjb2RlciA9IGdzdF9lbGVtZW50X2ZhY3RvcnlfbWFrZSAo Im15ZGVjb2RlciIsIE5VTEwpOw0KCWFTaW5rID0gZ3N0X2VsZW1lbnRfZmFjdG9yeV9tYWtlICgi b3Nzc2luayIsIE5VTEwpOw0KCQ0KCWdfb2JqZWN0X3NldChHX09CSkVDVChhVWRwcmVjdiksImNh cHMiLGFDYXBzLE5VTEwpOw0KCWdfb2JqZWN0X3NldChHX09CSkVDVChhU2luayksInN5bmMiLEZB TFNFLE5VTEwpOw0KCWdfb2JqZWN0X3NldChHX09CSkVDVChhVWRwc2VuZCksInBvcnQiLDUwMDAs TlVMTCk7DQoJZ19vYmplY3Rfc2V0KEdfT0JKRUNUKGFVZHBzZW5kKSwiaG9zdCIsaXAsTlVMTCk7 DQoJZ19vYmplY3Rfc2V0KEdfT0JKRUNUKGFVZHByZWN2KSwicG9ydCIsNTAwMCxOVUxMKTsNCg0K CWdzdF9iaW5fYWRkKEdTVF9CSU4gKGFzUGlwZWxpbmUpLGFTb3VyY2UpOw0KCWdzdF9iaW5fYWRk KEdTVF9CSU4gKGFzUGlwZWxpbmUpLGFFbmNvZGVyKTsNCglnc3RfYmluX2FkZChHU1RfQklOIChh c1BpcGVsaW5lKSxhUnRwcGF5KTsNCglnc3RfYmluX2FkZChHU1RfQklOIChhc1BpcGVsaW5lKSxh VWRwc2VuZCk7DQoJDQoJZ3N0X2Jpbl9hZGQoR1NUX0JJTiAoYWNQaXBlbGluZSksYVVkcHJlY3Yp Ow0KCWdzdF9iaW5fYWRkKEdTVF9CSU4gKGFjUGlwZWxpbmUpLGFSdHBkZXBheSk7DQoJZ3N0X2Jp bl9hZGQoR1NUX0JJTiAoYWNQaXBlbGluZSksYURlY29kZXIpOw0KCWdzdF9iaW5fYWRkKEdTVF9C SU4gKGFjUGlwZWxpbmUpLGFTaW5rKTsNCgkNCiAgICBnc3RfYmluX2FkZChHU1RfQklOIChhUGlw ZWxpbmUpLGFzUGlwZWxpbmUpOw0KICAgIGdzdF9iaW5fYWRkKEdTVF9CSU4gKGFQaXBlbGluZSks YWNQaXBlbGluZSk7DQogIA0KCWdzdF9lbGVtZW50X2xpbmsoYVNvdXJjZSAsIGFFbmNvZGVyKTsN CiAgICBnc3RfZWxlbWVudF9saW5rKGFFbmNvZGVyICwgYVJ0cHBheSk7DQogICAgZ3N0X2VsZW1l bnRfbGluayhhUnRwcGF5ICwgYVVkcHNlbmQpOw0KICAgIA0KICAgIGdzdF9lbGVtZW50X2xpbmso YVVkcHJlY3YgLCBhUnRwZGVwYXkpOw0KICAgIGdzdF9lbGVtZW50X2xpbmsoYVJ0cGRlcGF5ICwg YURlY29kZXIpOw0KICAgIGdzdF9lbGVtZW50X2xpbmsoYURlY29kZXIgLCBhU2luayk7DQoJDQoJ cmV0dXJuIGFQaXBlbGluZTsNCn0NCg0KaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkN CnsNCglHc3RTdGF0ZUNoYW5nZVJldHVybiByZXM7DQoJR3N0RWxlbWVudCAqYXAsKnZwLCpwaXBl bGluZTsNCgljb25zdCBjaGFyKiBpcD0iMTkyLjE2OC4xLjIyNiI7DQoJZ3N0X2luaXQgKCZhcmdj LCAmYXJndik7DQoJDQoJYXAgPSBtYWtlX3NwZWVjaF9waXBlbGluZShpcCk7DQoJdnAgPSBtYWtl X3ZpZGVvX3BpcGVsaW5lKGlwKTsNCglwaXBlbGluZT1nc3RfcGlwZWxpbmVfbmV3KE5VTEwpOw0K CWdzdF9iaW5fYWRkKEdTVF9CSU4gKHBpcGVsaW5lKSx2cCk7DQoJZ3N0X2Jpbl9hZGQoR1NUX0JJ TiAocGlwZWxpbmUpLGFwKTsNCglwcmludGYgKCJyZWFkeS4uLlxuIik7DQoJDQoJcmVzID0gZ3N0 X2VsZW1lbnRfc2V0X3N0YXRlICh2cCwgR1NUX1NUQVRFX1JFQURZKTsNCiAgICByZXMgPSBnc3Rf ZWxlbWVudF9zZXRfc3RhdGUgKGFwLCBHU1RfU1RBVEVfUkVBRFkpOw0KCWlmICggcmVzICE9IEdT VF9TVEFURV9DSEFOR0VfU1VDQ0VTUykgew0KCQlnX3ByaW50ICgiY291bGQgbm90IHBsYXlcbiIp Ow0KCQlyZXR1cm4gLTE7DQoJfQ0KCQ0KCS8qIE5vdyBzZXQgdG8gcGxheWluZyBhbmQgaXRlcmF0 ZS4gKi8NCglwcmludGYgKCJTZXR0aW5nIHRvIFBMQVlJTkdcbiIpOw0KCQ0KCWdzdF9lbGVtZW50 X3NldF9zdGF0ZSAodnAsIEdTVF9TVEFURV9QTEFZSU5HKTsNCiAgICBnc3RfZWxlbWVudF9zZXRf c3RhdGUgKGFwLCBHU1RfU1RBVEVfUExBWUlORyk7DQoJcHJpbnRmICgiUnVubmluZ1xuIik7DQog ICAgDQogICAgY2hhciBjaDsNCiAgICBzY2FuZigiJWMiLCZjaCk7DQoJDQoJcHJpbnRmICgiU3Rh cnRpbmcgdG8gc3RvcCFcbiIpOw0KDQoJZ3N0X2VsZW1lbnRfc2V0X3N0YXRlIChhcCwgR1NUX1NU QVRFX05VTEwpOw0KICAgIGdzdF9lbGVtZW50X3NldF9zdGF0ZSAodnAsIEdTVF9TVEFURV9OVUxM KTsNCiAgICANCglwcmludGYgKCJlbmRlZCB0byBzdG9wIVxuIik7DQoJZ3N0X29iamVjdF91bnJl ZiAoR1NUX09CSkVDVCh2cCkpOw0KICAgIGdzdF9vYmplY3RfdW5yZWYgKEdTVF9PQkpFQ1QoYXAp KTsNCglwcmludGYgKCJEZWxldGluZyBwaXBlbGluZVxuIik7DQoJDQoJcmV0dXJuIDA7DQp9DQot LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KCUknbSBz b3JyeSB0aGF0IHRoZSBjb2RlIGlzIHNvIGxvbmchIFdoZW4gSSBwbGF5ZWQgdGhpcyBhcHAsSXQg d291bGQgYmxvY2sgb24gdGhlIHNvdW5kIGNhcmQgYWZ0ZXIgYSBmZXcgbWludXRlcy4NCiBCdXQg aWYgSSBvbmx5IHBsYXkgYXVkaW8gc3BlZWNoLCB0aGF0IGlzIG9rLklzIHRoZXJlIHNvbWUgd3Jv bmcgZm9yIHVzaW5nIGluIHRoaXMgdHdvIHBpcGVsaW5lcz8gSG9waW5nIHRoYXQgb25lIG9mIHlv dQ0KY2FuIGhlbHAgbWUgb3V0LlRoYW5rcyBpbiBhZHZhbmNlIQ0KoaGhoaGhoaGhoaGhoaGhoWxp bmd1YW5nX3dhbmdAYXN0cm9jb20uY24NCqGhoaGhoaGhoaGhoaGhoaGhoaGhMjAwNy0wMy0xOQ0K |