From: Cook, G. <GW...@ma...> - 2004-07-22 19:59:33
|
LyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKgoKIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5 b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiBpdCB1bmRlciB0aGUgdGVybXMg b2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQogdGhlIEZy ZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwg b3IKIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCgogVGhpcyBwcm9ncmFtIGlz IGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiBidXQgV0lU SE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgog TUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2Vl IHRoZQogR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KCiBZb3Ug c2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGlj ZW5zZQogYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUg U29mdHdhcmUKIEZvdW5kYXRpb24sIEluYy4sIDY3NSBNYXNzIEF2ZSwgQ2FtYnJpZGdlLCBNQSAw MjEzOSwgVVNBLgoKKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCgpjb25zdCBjaGFyICpwcm9nbmFtZSA9 ICJjaGVja19kaXNrIjsKY29uc3QgY2hhciAqcmV2aXNpb24gPSAiJFJldmlzaW9uOiAxLjM4ICQi Owpjb25zdCBjaGFyICpjb3B5cmlnaHQgPSAiMTk5OS0yMDAzIjsKY29uc3QgY2hhciAqZW1haWwg PSAibmFnaW9zcGx1Zy1kZXZlbEBsaXN0cy5zb3VyY2Vmb3JnZS5uZXQiOwoKI2luY2x1ZGUgImNv bW1vbi5oIgojaWYgSEFWRV9JTlRUWVBFU19ICiMgaW5jbHVkZSA8aW50dHlwZXMuaD4KI2VuZGlm CiNpbmNsdWRlIDxhc3NlcnQuaD4KI2luY2x1ZGUgInBvcGVuLmgiCiNpbmNsdWRlICJ1dGlscy5o IgojaW5jbHVkZSA8c3RkYXJnLmg+CiNpbmNsdWRlICIuLi9saWIvZnN1c2FnZS5oIgojaW5jbHVk ZSAiLi4vbGliL21vdW50bGlzdC5oIgojaWYgSEFWRV9MSU1JVFNfSAojIGluY2x1ZGUgPGxpbWl0 cy5oPgojZW5kaWYKCi8qIElmIG5vbnplcm8sIHNob3cgaW5vZGUgaW5mb3JtYXRpb24uICovCi8q IHN0YXRpYyBpbnQgaW5vZGVfZm9ybWF0OyAqLwoKLyogSWYgbm9uemVybywgc2hvdyBldmVuIGZp bGVzeXN0ZW1zIHdpdGggemVybyBzaXplIG9yCiAgIHVuaW50ZXJlc3RpbmcgdHlwZXMuICovCnN0 YXRpYyBpbnQgc2hvd19hbGxfZnMgPSAxOwoKLyogSWYgbm9uemVybywgc2hvdyBvbmx5IGxvY2Fs IGZpbGVzeXN0ZW1zLiAgKi8Kc3RhdGljIGludCBzaG93X2xvY2FsX2ZzID0gMDsKCi8qIElmIHBv c2l0aXZlLCB0aGUgdW5pdHMgdG8gdXNlIHdoZW4gcHJpbnRpbmcgc2l6ZXM7CiAgIGlmIG5lZ2F0 aXZlLCB0aGUgaHVtYW4tcmVhZGFibGUgYmFzZS4gICovCi8qIHN0YXRpYyBpbnQgb3V0cHV0X2Js b2NrX3NpemU7ICovCgovKiBJZiBub256ZXJvLCBpbnZva2UgdGhlIGBzeW5jJyBzeXN0ZW0gY2Fs bCBiZWZvcmUgZ2V0dGluZyBhbnkgdXNhZ2UgZGF0YS4KICAgVXNpbmcgdGhpcyBvcHRpb24gY2Fu IG1ha2UgZGYgdmVyeSBzbG93LCBlc3BlY2lhbGx5IHdpdGggbWFueSBvciB2ZXJ5CiAgIGJ1c3kg ZGlza3MuICBOb3RlIHRoYXQgdGhpcyBtYXkgbWFrZSBhIGRpZmZlcmVuY2Ugb24gc29tZSBzeXN0 ZW1zIC0tCiAgIFN1bk9zNC4xLjMsIGZvciBvbmUuICBJdCBpcyAqbm90KiBuZWNlc3Nhcnkgb24g TGludXguICAqLwovKiBzdGF0aWMgaW50IHJlcXVpcmVfc3luYyA9IDA7ICovCgovKiBBIGZpbGVz eXN0ZW0gdHlwZSB0byBkaXNwbGF5LiAqLwoKc3RydWN0IG5hbWVfbGlzdAp7CiAgY2hhciAqbmFt ZTsKICBpbnQgZm91bmQ7CiAgdWludG1heF90IHdfZGY7CiAgdWludG1heF90IGNfZGY7CiAgZG91 YmxlIHdfZGZwOwogIGRvdWJsZSBjX2RmcDsKICBzdHJ1Y3QgbmFtZV9saXN0ICpuYW1lX25leHQ7 Cn07CgovKiBMaW5rZWQgbGlzdCBvZiBmaWxlc3lzdGVtIHR5cGVzIHRvIGRpc3BsYXkuCiAgIElm IGBmc19zZWxlY3RfbGlzdCcgaXMgTlVMTCwgbGlzdCBhbGwgdHlwZXMuCiAgIFRoaXMgdGFibGUg aXMgZ2VuZXJhdGVkIGR5bmFtaWNhbGx5IGZyb20gY29tbWFuZC1saW5lIG9wdGlvbnMsCiAgIHJh dGhlciB0aGFuIGhhcmRjb2RpbmcgaW50byB0aGUgcHJvZ3JhbSB3aGF0IGl0IHRoaW5rcyBhcmUg dGhlCiAgIHZhbGlkIGZpbGVzeXN0ZW0gdHlwZXM7IGxldCB0aGUgdXNlciBzcGVjaWZ5IGFueSBm aWxlc3lzdGVtIHR5cGUKICAgdGhleSB3YW50IHRvLCBhbmQgaWYgdGhlcmUgYXJlIGFueSBmaWxl c3lzdGVtcyBvZiB0aGF0IHR5cGUsIHRoZXkKICAgd2lsbCBiZSBzaG93bi4KCiAgIFNvbWUgZmls ZXN5c3RlbSB0eXBlczoKICAgNC4yIDQuMyB1ZnMgbmZzIHN3YXAgaWdub3JlIGlvIHZtIGVmcyBk YmcgKi8KCi8qIHN0YXRpYyBzdHJ1Y3QgbmFtZV9saXN0ICpmc19zZWxlY3RfbGlzdDsgKi8KCi8q IExpbmtlZCBsaXN0IG9mIGZpbGVzeXN0ZW0gdHlwZXMgdG8gb21pdC4KICAgSWYgdGhlIGxpc3Qg aXMgZW1wdHksIGRvbid0IGV4Y2x1ZGUgYW55IHR5cGVzLiAgKi8KCnN0YXRpYyBzdHJ1Y3QgbmFt ZV9saXN0ICpmc19leGNsdWRlX2xpc3Q7CgpzdGF0aWMgc3RydWN0IG5hbWVfbGlzdCAqZHBfZXhj bHVkZV9saXN0OwoKc3RhdGljIHN0cnVjdCBuYW1lX2xpc3QgKnBhdGhfc2VsZWN0X2xpc3Q7Cgpz dGF0aWMgc3RydWN0IG5hbWVfbGlzdCAqZGV2X3NlbGVjdF9saXN0OwoKLyogTGlua2VkIGxpc3Qg b2YgbW91bnRlZCBmaWxlc3lzdGVtcy4gKi8Kc3RhdGljIHN0cnVjdCBtb3VudF9lbnRyeSAqbW91 bnRfbGlzdDsKCi8qIEZvciBsb25nIG9wdGlvbnMgdGhhdCBoYXZlIG5vIGVxdWl2YWxlbnQgc2hv cnQgb3B0aW9uLCB1c2UgYQogICBub24tY2hhcmFjdGVyIGFzIGEgcHNldWRvIHNob3J0IG9wdGlv biwgc3RhcnRpbmcgd2l0aCBDSEFSX01BWCArIDEuICAqLwplbnVtCnsKICBTWU5DX09QVElPTiA9 IENIQVJfTUFYICsgMSwKICBOT19TWU5DX09QVElPTiwKICBCTE9DS19TSVpFX09QVElPTgp9OwoK I2lmZGVmIF9BSVgKICNwcmFnbWEgYWxsb2NhCiNlbmRpZgoKaW50IHByb2Nlc3NfYXJndW1lbnRz IChpbnQsIGNoYXIgKiopOwp2b2lkIHByaW50X3BhdGggKGNvbnN0IGNoYXIgKm15cGF0aCk7Cmlu dCB2YWxpZGF0ZV9hcmd1bWVudHMgKHVpbnRtYXhfdCwgdWludG1heF90LCBkb3VibGUsIGRvdWJs ZSwgY2hhciAqKTsKaW50IGNoZWNrX2Rpc2sgKGRvdWJsZSB1c3AsIHVpbnRtYXhfdCBmcmVlX2Rp c2spOwppbnQgd2Fsa19uYW1lX2xpc3QgKHN0cnVjdCBuYW1lX2xpc3QgKmxpc3QsIGNvbnN0IGNo YXIgKm5hbWUpOwp2b2lkIHByaW50X2hlbHAgKHZvaWQpOwp2b2lkIHByaW50X3VzYWdlICh2b2lk KTsKCnVpbnRtYXhfdCB3X2RmID0gMDsKdWludG1heF90IGNfZGYgPSAwOwpkb3VibGUgd19kZnAg PSAtMS4wOwpkb3VibGUgY19kZnAgPSAtMS4wOwpjaGFyICpwYXRoOwpjaGFyICpleGNsdWRlX2Rl dmljZTsKY2hhciAqdW5pdHM7CnVpbnRtYXhfdCBtdWx0ID0gMTAyNCAqIDEwMjQ7CmludCB2ZXJi b3NlID0gMDsKaW50IGVycm9ubHkgPSBGQUxTRTsKaW50IGRpc3BsYXlfbW50cCA9IEZBTFNFOwoK LyogTGlua2VkIGxpc3Qgb2YgbW91bnRlZCBmaWxlc3lzdGVtcy4gKi8Kc3RhdGljIHN0cnVjdCBt b3VudF9lbnRyeSAqbW91bnRfbGlzdDsKCgoMCmludAptYWluIChpbnQgYXJnYywgY2hhciAqKmFy Z3YpCnsKCWRvdWJsZSB1c3AgPSAtMS4wOwoJaW50IHJlc3VsdCA9IFNUQVRFX1VOS05PV047Cglp bnQgZGlza19yZXN1bHQgPSBTVEFURV9VTktOT1dOOwoJY2hhciBmaWxlX3N5c3RlbVtNQVhfSU5Q VVRfQlVGRkVSXTsKCWNoYXIgKm91dHB1dDsKCWNoYXIgKmRldGFpbHM7CgljaGFyICpwZXJmOwoJ dWludG1heF90IHBzaXplOwoJZmxvYXQgZnJlZV9zcGFjZSwgZnJlZV9zcGFjZV9wY3QsIHRvdGFs X3NwYWNlOwoKCXN0cnVjdCBtb3VudF9lbnRyeSAqbWU7CglzdHJ1Y3QgZnNfdXNhZ2UgZnNwOwoJ c3RydWN0IG5hbWVfbGlzdCAqdGVtcF9saXN0OwoKCW91dHB1dCA9IHN0cmR1cCAoIiAtIGZyZWUg c3BhY2U6Iik7CglkZXRhaWxzID0gc3RyZHVwICgiIik7CglwZXJmID0gc3RyZHVwICgiIik7CgoJ c2V0bG9jYWxlIChMQ19BTEwsICIiKTsKCWJpbmR0ZXh0ZG9tYWluIChQQUNLQUdFLCBMT0NBTEVE SVIpOwoJdGV4dGRvbWFpbiAoUEFDS0FHRSk7CgoJbW91bnRfbGlzdCA9IHJlYWRfZmlsZXN5c3Rl bV9saXN0ICgwKTsKCglpZiAocHJvY2Vzc19hcmd1bWVudHMgKGFyZ2MsIGFyZ3YpICE9IE9LKQoJ CXVzYWdlIChfKCJDb3VsZCBub3QgcGFyc2UgYXJndW1lbnRzXG4iKSk7CgoJZm9yIChtZSA9IG1v dW50X2xpc3Q7IG1lOyBtZSA9IG1lLT5tZV9uZXh0KSB7CgoJCWlmIChwYXRoX3NlbGVjdF9saXN0 ICYmCgkJICAgICAod2Fsa19uYW1lX2xpc3QgKHBhdGhfc2VsZWN0X2xpc3QsIG1lLT5tZV9tb3Vu dGRpcikgfHwKCQkgICAgICB3YWxrX25hbWVfbGlzdCAocGF0aF9zZWxlY3RfbGlzdCwgbWUtPm1l X2Rldm5hbWUpICkgKQoJCQlnZXRfZnNfdXNhZ2UgKG1lLT5tZV9tb3VudGRpciwgbWUtPm1lX2Rl dm5hbWUsICZmc3ApOwoJCWVsc2UgaWYgKGRldl9zZWxlY3RfbGlzdCB8fCBwYXRoX3NlbGVjdF9s aXN0KQoJCQljb250aW51ZTsKCQllbHNlIGlmIChtZS0+bWVfcmVtb3RlICYmIHNob3dfbG9jYWxf ZnMpCgkJCWNvbnRpbnVlOwoJCWVsc2UgaWYgKG1lLT5tZV9kdW1teSAmJiAhc2hvd19hbGxfZnMp CgkJCWNvbnRpbnVlOwoJCWVsc2UgaWYgKGZzX2V4Y2x1ZGVfbGlzdCAmJiB3YWxrX25hbWVfbGlz dCAoZnNfZXhjbHVkZV9saXN0LCBtZS0+bWVfdHlwZSkpCgkJCWNvbnRpbnVlOwoJCWVsc2UgaWYg KGRwX2V4Y2x1ZGVfbGlzdCAmJiAKCQkgICAgICAgICAod2Fsa19uYW1lX2xpc3QgKGRwX2V4Y2x1 ZGVfbGlzdCwgbWUtPm1lX2Rldm5hbWUpIHx8CgkJICAgICAgICAgIHdhbGtfbmFtZV9saXN0IChk cF9leGNsdWRlX2xpc3QsIG1lLT5tZV9tb3VudGRpcikpKQoJCQljb250aW51ZTsKCQllbHNlCgkJ CWdldF9mc191c2FnZSAobWUtPm1lX21vdW50ZGlyLCBtZS0+bWVfZGV2bmFtZSwgJmZzcCk7CgoJ CWlmIChmc3AuZnN1X2Jsb2NrcyAmJiBzdHJjbXAgKCJub25lIiwgbWUtPm1lX21vdW50ZGlyKSkg ewoJCQl1c3AgPSAoZG91YmxlKShmc3AuZnN1X2Jsb2NrcyAtIGZzcC5mc3VfYmF2YWlsKSAqIDEw MCAvIGZzcC5mc3VfYmxvY2tzOwoJCQlkaXNrX3Jlc3VsdCA9IGNoZWNrX2Rpc2sgKHVzcCwgZnNw LmZzdV9iYXZhaWwpOwoJCQlyZXN1bHQgPSBtYXhfc3RhdGUgKGRpc2tfcmVzdWx0LCByZXN1bHQp OwoJCQlwc2l6ZSA9IGZzcC5mc3VfYmxvY2tzKmZzcC5mc3VfYmxvY2tzaXplL211bHQ7CgkJCWFz cHJpbnRmICgmcGVyZiwgIiVzICVzIiwgcGVyZiwKCQkJICAgICAgICAgIHBlcmZkYXRhICgoIXN0 cmNtcChmaWxlX3N5c3RlbSwgIm5vbmUiKSB8fCBkaXNwbGF5X21udHApID8gbWUtPm1lX2Rldm5h bWUgOiBtZS0+bWVfbW91bnRkaXIsCgkJCSAgICAgICAgICAgICAgICAgICAgcHNpemUtKGZzcC5m c3VfYmF2YWlsKmZzcC5mc3VfYmxvY2tzaXplL211bHQpLCB1bml0cywKCQkJICAgICAgICAgICAg ICAgICAgICBUUlVFLCBtaW4gKCh1aW50bWF4X3QpcHNpemUtKHVpbnRtYXhfdCl3X2RmLCAodWlu dG1heF90KSgoMS4wLXdfZGZwLzEwMC4wKSpwc2l6ZSkpLAoJCQkgICAgICAgICAgICAgICAgICAg IFRSVUUsIG1pbiAoKHVpbnRtYXhfdClwc2l6ZS0odWludG1heF90KWNfZGYsICh1aW50bWF4X3Qp KCgxLjAtY19kZnAvMTAwLjApKnBzaXplKSksCgkJCSAgICAgICAgICAgICAgICAgICAgVFJVRSwg MCwKCQkJICAgICAgICAgICAgICAgICAgICBUUlVFLCBwc2l6ZSkpOwoJCQlpZiAoZGlza19yZXN1 bHQ9PVNUQVRFX09LICYmIGVycm9ubHkgJiYgIXZlcmJvc2UpCgkJCQljb250aW51ZTsKCgkJCWZy ZWVfc3BhY2UgPSAoZmxvYXQpZnNwLmZzdV9iYXZhaWwqZnNwLmZzdV9ibG9ja3NpemUvbXVsdDsK CQkJZnJlZV9zcGFjZV9wY3QgPSAoZmxvYXQpZnNwLmZzdV9iYXZhaWwqMTAwL2ZzcC5mc3VfYmxv Y2tzOwoJCQl0b3RhbF9zcGFjZSA9IChmbG9hdClmc3AuZnN1X2Jsb2Nrcypmc3AuZnN1X2Jsb2Nr c2l6ZS9tdWx0OwoJCQlpZiAoZGlza19yZXN1bHQhPVNUQVRFX09LIHx8IHZlcmJvc2U+PTApCgkJ CQlhc3ByaW50ZiAoJm91dHB1dCwgKCIlcyAlcyAlLjBmICVzICglLjBmJSUpOyIpLAoJCQkJICAg ICAgICAgIG91dHB1dCwKCQkJCSAgICAgICAgICAoIXN0cmNtcChmaWxlX3N5c3RlbSwgIm5vbmUi KSB8fCBkaXNwbGF5X21udHApID8gbWUtPm1lX2Rldm5hbWUgOiBtZS0+bWVfbW91bnRkaXIsCgkJ CQkgICAgICAgICAgZnJlZV9zcGFjZSwKCQkJCSAgICAgICAgICB1bml0cywKCQkJCQkJCQkJZnJl ZV9zcGFjZV9wY3QpOwoJCQlhc3ByaW50ZiAoJmRldGFpbHMsIF8oIiVzXG5cCiUuMGYgb2YgJS4w ZiAlcyAoJS4wZiUlKSBmcmVlIG9uICVzICh0eXBlICVzIG1vdW50ZWQgb24gJXMpIHdhcm46JWx1 IGNyaXQ6JWx1IHdhcm4lJTolLjBmJSUgY3JpdCUlOiUuMGYlJSIpLAoJCQkgICAgICAgICAgZGV0 YWlscywgZnJlZV9zcGFjZSwgdG90YWxfc3BhY2UsIHVuaXRzLCBmcmVlX3NwYWNlX3BjdCwKCQkJ ICAgICAgICAgIG1lLT5tZV9kZXZuYW1lLCBtZS0+bWVfdHlwZSwgbWUtPm1lX21vdW50ZGlyLAoJ CQkgICAgICAgICAgKHVuc2lnbmVkIGxvbmcpd19kZiwgKHVuc2lnbmVkIGxvbmcpY19kZiwgd19k ZnAsIGNfZGZwKTsKCQl9CgoJfQoKCWFzcHJpbnRmICgmb3V0cHV0LCAiJXN8JXMiLCBvdXRwdXQs IHBlcmYpOwoKCWlmICh2ZXJib3NlID4gMikKCQlhc3ByaW50ZiAoJm91dHB1dCwgIiVzJXMiLCBv dXRwdXQsIGRldGFpbHMpOwoKCS8qIE92ZXJyaWRlIHJlc3VsdCBpZiBwYXRocyBzcGVjaWZpZWQg YW5kIG5vdCBmb3VuZCAqLwoJdGVtcF9saXN0ID0gcGF0aF9zZWxlY3RfbGlzdDsKCXdoaWxlICh0 ZW1wX2xpc3QpIHsKCQlpZiAodGVtcF9saXN0LT5mb3VuZCAhPSBUUlVFKSB7CgkJCWFzcHJpbnRm ICgmb3V0cHV0LCBfKCIlcyBbJXMgbm90IGZvdW5kXSIpLCBvdXRwdXQsIHRlbXBfbGlzdC0+bmFt ZSk7CgkJCXJlc3VsdCA9IFNUQVRFX0NSSVRJQ0FMOwoJCX0KCQl0ZW1wX2xpc3QgPSB0ZW1wX2xp c3QtPm5hbWVfbmV4dDsKCX0KCglwcmludGYgKCJESVNLICVzJXNcbiIsIHN0YXRlX3RleHQgKHJl c3VsdCksIG91dHB1dCk7CglyZXR1cm4gcmVzdWx0Owp9CgoKCgwKLyogcHJvY2VzcyBjb21tYW5k LWxpbmUgYXJndW1lbnRzICovCmludApwcm9jZXNzX2FyZ3VtZW50cyAoaW50IGFyZ2MsIGNoYXIg Kiphcmd2KQp7CglpbnQgYzsKCXN0cnVjdCBuYW1lX2xpc3QgKnNlOwoJc3RydWN0IG5hbWVfbGlz dCAqKnBhdGh0YWlsID0gJnBhdGhfc2VsZWN0X2xpc3Q7CglzdHJ1Y3QgbmFtZV9saXN0ICoqZnN0 YWlsID0gJmZzX2V4Y2x1ZGVfbGlzdDsKCXN0cnVjdCBuYW1lX2xpc3QgKipkcHRhaWwgPSAmZHBf ZXhjbHVkZV9saXN0OwoJc3RydWN0IG5hbWVfbGlzdCAqdGVtcF9saXN0OwoJaW50IHJlc3VsdCA9 IE9LOwoKCXVuc2lnbmVkIGxvbmcgbDsKCglpbnQgb3B0aW9uID0gMDsKCXN0YXRpYyBzdHJ1Y3Qg b3B0aW9uIGxvbmdvcHRzW10gPSB7CgkJeyJ0aW1lb3V0IiwgcmVxdWlyZWRfYXJndW1lbnQsIDAs ICd0J30sCgkJeyJ3YXJuaW5nIiwgcmVxdWlyZWRfYXJndW1lbnQsIDAsICd3J30sCgkJeyJjcml0 aWNhbCIsIHJlcXVpcmVkX2FyZ3VtZW50LCAwLCAnYyd9LAoJCXsibG9jYWwiLCByZXF1aXJlZF9h cmd1bWVudCwgMCwgJ2wnfSwKCQl7ImtpbG9ieXRlcyIsIHJlcXVpcmVkX2FyZ3VtZW50LCAwLCAn ayd9LAoJCXsibWVnYWJ5dGVzIiwgcmVxdWlyZWRfYXJndW1lbnQsIDAsICdtJ30sCgkJeyJ1bml0 cyIsIHJlcXVpcmVkX2FyZ3VtZW50LCAwLCAndSd9LAoJCXsicGF0aCIsIHJlcXVpcmVkX2FyZ3Vt ZW50LCAwLCAncCd9LAoJCXsicGFydGl0aW9uIiwgcmVxdWlyZWRfYXJndW1lbnQsIDAsICdwJ30s CgkJeyJleGNsdWRlX2RldmljZSIsIHJlcXVpcmVkX2FyZ3VtZW50LCAwLCAneCd9LAoJCXsiZXhj bHVkZS10eXBlIiwgcmVxdWlyZWRfYXJndW1lbnQsIDAsICdYJ30sCgkJeyJtb3VudHBvaW50Iiwg bm9fYXJndW1lbnQsIDAsICdNJ30sCgkJeyJlcnJvcnMtb25seSIsIG5vX2FyZ3VtZW50LCAwLCAn ZSd9LAoJCXsidmVyYm9zZSIsIG5vX2FyZ3VtZW50LCAwLCAndid9LAoJCXsicXVpZXQiLCBub19h cmd1bWVudCwgMCwgJ3EnfSwKCQl7ImNsZWFyIiwgbm9fYXJndW1lbnQsIDAsICdDJ30sCgkJeyJ2 ZXJzaW9uIiwgbm9fYXJndW1lbnQsIDAsICdWJ30sCgkJeyJoZWxwIiwgbm9fYXJndW1lbnQsIDAs ICdoJ30sCgkJezAsIDAsIDAsIDB9Cgl9OwoKCWlmIChhcmdjIDwgMikKCQlyZXR1cm4gRVJST1I7 CgoJc2UgPSAoc3RydWN0IG5hbWVfbGlzdCAqKSBtYWxsb2MgKHNpemVvZiAoc3RydWN0IG5hbWVf bGlzdCkpOwoJc2UtPm5hbWUgPSBzdHJkdXAgKCJpc285NjYwIik7CglzZS0+bmFtZV9uZXh0ID0g TlVMTDsKCSpmc3RhaWwgPSBzZTsKCWZzdGFpbCA9ICZzZS0+bmFtZV9uZXh0OwoKCWZvciAoYyA9 IDE7IGMgPCBhcmdjOyBjKyspCgkJaWYgKHN0cmNtcCAoIi10byIsIGFyZ3ZbY10pID09IDApCgkJ CXN0cmNweSAoYXJndltjXSwgIi10Iik7CgoJd2hpbGUgKDEpIHsKCQljID0gZ2V0b3B0X2xvbmcg KGFyZ2MsIGFyZ3YsICIrP1ZxaHZlQ3Q6Yzp3OnU6cDp4Olg6bWtsTSIsIGxvbmdvcHRzLCAmb3B0 aW9uKTsKCgkJaWYgKGMgPT0gLTEgfHwgYyA9PSBFT0YpCgkJCWJyZWFrOwoKCQlzd2l0Y2ggKGMp IHsKCQljYXNlICd0JzoJCQkJCQkJCQkvKiB0aW1lb3V0IHBlcmlvZCAqLwoJCQlpZiAoaXNfaW50 ZWdlciAob3B0YXJnKSkgewoJCQkJdGltZW91dF9pbnRlcnZhbCA9IGF0b2kgKG9wdGFyZyk7CgkJ CQlicmVhazsKCQkJfQoJCQllbHNlIHsKCQkJCXVzYWdlIChfKCJUaW1lb3V0IEludGVydmFsIG11 c3QgYmUgYW4gaW50ZWdlciFcbiIpKTsKCQkJfQoJCWNhc2UgJ3cnOgkJCQkJCQkJCS8qIHdhcm5p bmcgdGhyZXNob2xkICovCgkJCWlmIChpc19pbnRub25uZWcgKG9wdGFyZykpIHsKCQkJCXdfZGYg PSBhdG9pIChvcHRhcmcpOwoJCQkJYnJlYWs7CgkJCX0KCQkJZWxzZSBpZiAoc3RycGJyayAob3B0 YXJnLCAiLDoiKSAmJgoJCQkJCQkJIHN0cnN0ciAob3B0YXJnLCAiJSIpICYmCgkJCQkJCQkgc3Nj YW5mIChvcHRhcmcsICIlbHUlKls6LF0lbGYlJSIsICZsLCAmd19kZnApID09IDIpIHsKCQkJCXdf ZGYgPSAodWludG1heF90KWw7CgkJCQlicmVhazsKCQkJfQoJCQllbHNlIGlmIChzdHJzdHIgKG9w dGFyZywgIiUiKSAmJiBzc2NhbmYgKG9wdGFyZywgIiVsZiUlIiwgJndfZGZwKSA9PSAxKSB7CgkJ CQlicmVhazsKCQkJfQoJCQllbHNlIHsKCQkJCXVzYWdlIChfKCJXYXJuaW5nIHRocmVzaG9sZCBt dXN0IGJlIGludGVnZXIgb3IgcGVyY2VudGFnZSFcbiIpKTsKCQkJfQoJCWNhc2UgJ2MnOgkJCQkJ CQkJCS8qIGNyaXRpY2FsIHRocmVzaG9sZCAqLwoJCQlpZiAoaXNfaW50bm9ubmVnIChvcHRhcmcp KSB7CgkJCQljX2RmID0gYXRvaSAob3B0YXJnKTsKCQkJCWJyZWFrOwoJCQl9CgkJCWVsc2UgaWYg KHN0cnBicmsgKG9wdGFyZywgIiw6IikgJiYKCQkJCQkJCSBzdHJzdHIgKG9wdGFyZywgIiUiKSAm JgoJCQkJCQkJIHNzY2FuZiAob3B0YXJnLCAiJWx1JSpbLDpdJWxmJSUiLCAmbCwgJmNfZGZwKSA9 PSAyKSB7CgkJCQljX2RmID0gKHVpbnRtYXhfdClsOwoJCQkJYnJlYWs7CgkJCX0KCQkJZWxzZSBp ZiAoc3Ryc3RyIChvcHRhcmcsICIlIikgJiYgc3NjYW5mIChvcHRhcmcsICIlbGYlJSIsICZjX2Rm cCkgPT0gMSkgewoJCQkJYnJlYWs7CgkJCX0KCQkJZWxzZSB7CgkJCQl1c2FnZSAoXygiQ3JpdGlj YWwgdGhyZXNob2xkIG11c3QgYmUgaW50ZWdlciBvciBwZXJjZW50YWdlIVxuIikpOwoJCQl9CgkJ Y2FzZSAndSc6CgkJCWlmICh1bml0cykKCQkJCWZyZWUodW5pdHMpOwoJCQlpZiAoISBzdHJjbXAg KG9wdGFyZywgImJ5dGVzIikpIHsKCQkJCW11bHQgPSAodWludG1heF90KTE7CgkJCQl1bml0cyA9 IHN0cmR1cCAoIkIiKTsKCQkJfSBlbHNlIGlmICghIHN0cmNtcCAob3B0YXJnLCAia0IiKSkgewoJ CQkJbXVsdCA9ICh1aW50bWF4X3QpMTAyNDsKCQkJCXVuaXRzID0gc3RyZHVwICgia0IiKTsKCQkJ fSBlbHNlIGlmICghIHN0cmNtcCAob3B0YXJnLCAiTUIiKSkgewoJCQkJbXVsdCA9ICh1aW50bWF4 X3QpMTAyNCAqIDEwMjQ7CgkJCQl1bml0cyA9IHN0cmR1cCAoIk1CIik7CgkJCX0gZWxzZSBpZiAo ISBzdHJjbXAgKG9wdGFyZywgIkdCIikpIHsKCQkJCW11bHQgPSAodWludG1heF90KTEwMjQgKiAx MDI0ICogMTAyNDsKCQkJCXVuaXRzID0gc3RyZHVwICgiR0IiKTsKCQkJfSBlbHNlIGlmICghIHN0 cmNtcCAob3B0YXJnLCAiVEIiKSkgewoJCQkJbXVsdCA9ICh1aW50bWF4X3QpMTAyNCAqIDEwMjQg KiAxMDI0ICogMTAyNDsKCQkJCXVuaXRzID0gc3RyZHVwICgiVEIiKTsKCQkJfSBlbHNlIHsKCQkJ CWRpZSAoU1RBVEVfVU5LTk9XTiwgXygidW5pdCB0eXBlICVzIG5vdCBrbm93blxuIiksIG9wdGFy Zyk7CgkJCX0KCQkJaWYgKHVuaXRzID09IE5VTEwpCgkJCQlkaWUgKFNUQVRFX1VOS05PV04sIF8o ImZhaWxlZCBhbGxvY2F0aW5nIHN0b3JhZ2UgZm9yICclcydcbiIpLCAidW5pdHMiKTsKCQkJYnJl YWs7CgkJY2FzZSAnayc6IC8qIGRpc3BsYXkgbW91bnRwb2ludCAqLwoJCQltdWx0ID0gMTAyNDsK CQkJaWYgKHVuaXRzKQoJCQkJZnJlZSh1bml0cyk7CgkJCXVuaXRzID0gc3RyZHVwICgia0IiKTsK CQkJYnJlYWs7CgkJY2FzZSAnbSc6IC8qIGRpc3BsYXkgbW91bnRwb2ludCAqLwoJCQltdWx0ID0g MTAyNCAqIDEwMjQ7CgkJCWlmICh1bml0cykKCQkJCWZyZWUodW5pdHMpOwoJCQl1bml0cyA9IHN0 cmR1cCAoImtCIik7CgkJCWJyZWFrOwoJCWNhc2UgJ2wnOgoJCQlzaG93X2xvY2FsX2ZzID0gMTsJ CQkKCQkJYnJlYWs7CgkJY2FzZSAncCc6CQkJCQkJCQkJLyogc2VsZWN0IHBhdGggKi8KCQkJc2Ug PSAoc3RydWN0IG5hbWVfbGlzdCAqKSBtYWxsb2MgKHNpemVvZiAoc3RydWN0IG5hbWVfbGlzdCkp OwoJCQlzZS0+bmFtZSA9IG9wdGFyZzsKCQkJc2UtPm5hbWVfbmV4dCA9IE5VTEw7CgkJCXNlLT53 X2RmID0gd19kZjsKCQkJc2UtPmNfZGYgPSBjX2RmOwoJCQlzZS0+d19kZnAgPSB3X2RmcDsKCQkJ c2UtPmNfZGZwID0gY19kZnA7CgkJCSpwYXRodGFpbCA9IHNlOwoJCQlwYXRodGFpbCA9ICZzZS0+ bmFtZV9uZXh0OwoJCQlicmVhazsKIAkJY2FzZSAneCc6CQkJCQkJCQkJLyogZXhjbHVkZSBwYXRo IG9yIHBhcnRpdGlvbiAqLwoJCQlzZSA9IChzdHJ1Y3QgbmFtZV9saXN0ICopIG1hbGxvYyAoc2l6 ZW9mIChzdHJ1Y3QgbmFtZV9saXN0KSk7CgkJCXNlLT5uYW1lID0gb3B0YXJnOwoJCQlzZS0+bmFt ZV9uZXh0ID0gTlVMTDsKCQkJKmRwdGFpbCA9IHNlOwoJCQlkcHRhaWwgPSAmc2UtPm5hbWVfbmV4 dDsKCQkJYnJlYWs7CgkJY2FzZSAnWCc6CQkJCQkJCQkJLyogZXhjbHVkZSBmaWxlIHN5c3RlbSB0 eXBlICovCgkJCXNlID0gKHN0cnVjdCBuYW1lX2xpc3QgKikgbWFsbG9jIChzaXplb2YgKHN0cnVj dCBuYW1lX2xpc3QpKTsKCQkJc2UtPm5hbWUgPSBvcHRhcmc7CgkJCXNlLT5uYW1lX25leHQgPSBO VUxMOwoJCQkqZnN0YWlsID0gc2U7CgkJCWZzdGFpbCA9ICZzZS0+bmFtZV9uZXh0OwoJCQlicmVh azsKCQljYXNlICd2JzoJCQkJCQkJCQkvKiB2ZXJib3NlICovCgkJCXZlcmJvc2UrKzsKCQkJYnJl YWs7CgkJY2FzZSAncSc6CQkJCQkJCQkJLyogdmVyYm9zZSAqLwoJCQl2ZXJib3NlLS07CgkJCWJy ZWFrOwoJCWNhc2UgJ2UnOgoJCQllcnJvbmx5ID0gVFJVRTsKCQkJYnJlYWs7CgkJY2FzZSAnTSc6 IC8qIGRpc3BsYXkgbW91bnRwb2ludCAqLwoJCQlkaXNwbGF5X21udHAgPSBUUlVFOwoJCQlicmVh azsKCQljYXNlICdDJzoKCQkJd19kZiA9IDA7CgkJCWNfZGYgPSAwOwoJCQl3X2RmcCA9IC0xLjA7 CgkJCWNfZGZwID0gLTEuMDsKCQkJYnJlYWs7CgkJY2FzZSAnVic6CQkJCQkJCQkJLyogdmVyc2lv biAqLwoJCQlwcmludF9yZXZpc2lvbiAocHJvZ25hbWUsIHJldmlzaW9uKTsKCQkJZXhpdCAoU1RB VEVfT0spOwoJCWNhc2UgJ2gnOgkJCQkJCQkJCS8qIGhlbHAgKi8KCQkJcHJpbnRfaGVscCAoKTsK CQkJZXhpdCAoU1RBVEVfT0spOwoJCWNhc2UgJz8nOgkJCQkJCQkJCS8qIGhlbHAgKi8KCQkJdXNh Z2UgKF8oImNoZWNrX2Rpc2s6IHVucmVjb2duaXplZCBvcHRpb25cbiIpKTsKCQkJYnJlYWs7CgkJ fQoJfQoKCS8qIFN1cHBvcnQgZm9yICJjaGVja19kaXNrIHdhcm4gY3JpdCBbZnNdIiB3aXRoIHRo cmVzaG9sZHMgYXQgdXNlZCBsZXZlbCAqLwoJYyA9IG9wdGluZDsKCWlmICh3X2RmcCA8IDAgJiYg YXJnYyA+IGMgJiYgaXNfaW50bm9ubmVnIChhcmd2W2NdKSkKCQl3X2RmcCA9ICgxMDAuMCAtIGF0 b2YgKGFyZ3ZbYysrXSkpOwoKCWlmIChjX2RmcCA8IDAgJiYgYXJnYyA+IGMgJiYgaXNfaW50bm9u bmVnIChhcmd2W2NdKSkKCQljX2RmcCA9ICgxMDAuMCAtIGF0b2YgKGFyZ3ZbYysrXSkpOwoKCWlm IChhcmdjID4gYyAmJiBwYXRoID09IE5VTEwpIHsKCQlzZSA9IChzdHJ1Y3QgbmFtZV9saXN0ICop IG1hbGxvYyAoc2l6ZW9mIChzdHJ1Y3QgbmFtZV9saXN0KSk7CgkJc2UtPm5hbWUgPSBzdHJkdXAg KGFyZ3ZbYysrXSk7CgkJc2UtPm5hbWVfbmV4dCA9IE5VTEw7CgkJc2UtPndfZGYgPSB3X2RmOwoJ CXNlLT5jX2RmID0gY19kZjsKCQlzZS0+d19kZnAgPSB3X2RmcDsKCQlzZS0+Y19kZnAgPSBjX2Rm cDsKCQkqcGF0aHRhaWwgPSBzZTsKCX0KCglpZiAocGF0aF9zZWxlY3RfbGlzdCkgewoJCXRlbXBf bGlzdCA9IHBhdGhfc2VsZWN0X2xpc3Q7CgkJd2hpbGUgKHRlbXBfbGlzdCkgewoJCQlpZiAodmFs aWRhdGVfYXJndW1lbnRzICh0ZW1wX2xpc3QtPndfZGYsCgkJCQkgICAgICAgICAgICAgICAgICAg ICAgdGVtcF9saXN0LT5jX2RmLAoJCQkJICAgICAgICAgICAgICAgICAgICAgIHRlbXBfbGlzdC0+ d19kZnAsCgkJCQkgICAgICAgICAgICAgICAgICAgICAgdGVtcF9saXN0LT5jX2RmcCwKCQkJCSAg ICAgICAgICAgICAgICAgICAgICB0ZW1wX2xpc3QtPm5hbWUpID09IEVSUk9SKQoJCQkJcmVzdWx0 ID0gRVJST1I7CgkJCXRlbXBfbGlzdCA9IHRlbXBfbGlzdC0+bmFtZV9uZXh0OwoJCX0KCQlyZXR1 cm4gcmVzdWx0OwoJfSBlbHNlIHsKCQlyZXR1cm4gdmFsaWRhdGVfYXJndW1lbnRzICh3X2RmLCBj X2RmLCB3X2RmcCwgY19kZnAsIE5VTEwpOwoJfQp9CgoKdm9pZApwcmludF9wYXRoIChjb25zdCBj aGFyICpteXBhdGgpIAp7CglpZiAobXlwYXRoID09IE5VTEwpCgkJcHJpbnRmICgiXG4iKTsKCWVs c2UKCQlwcmludGYgKCIgZm9yICVzXG4iLCBteXBhdGgpOwoKCXJldHVybjsKfQoKaW50CnZhbGlk YXRlX2FyZ3VtZW50cyAodWludG1heF90IHcsIHVpbnRtYXhfdCBjLCBkb3VibGUgd3AsIGRvdWJs ZSBjcCwgY2hhciAqbXlwYXRoKQp7CglpZiAodyA9PSAwICYmIGMgPT0gMCAmJiB3cCA8IDAuMCAm JiBjcCA8IDAuMCkgewoJCXByaW50ZiAoXygiSU5QVVQgRVJST1I6IE5vIHRocmVzaG9sZHMgc3Bl Y2lmaWVkIikpOwoJCXByaW50X3BhdGggKG15cGF0aCk7CgkJcmV0dXJuIEVSUk9SOwoJfQoJZWxz ZSBpZiAoKHdwID49IDAuMCB8fCBjcCA+PSAwLjApICYmCgkgICAgICAgICAod3AgPCAwLjAgfHwg Y3AgPCAwLjAgfHwgd3AgPiAxMDAuMCB8fCBjcCA+IDEwMC4wIHx8IGNwID4gd3ApKSB7CgkJcHJp bnRmIChfKCJcCklOUFVUIEVSUk9SOiBDX0RGUCAoJWYpIHNob3VsZCBiZSBsZXNzIHRoYW4gV19E RlAgKCUuMWYpIGFuZCBib3RoIHNob3VsZCBiZSBiZXR3ZWVuIHplcm8gYW5kIDEwMCBwZXJjZW50 LCBpbmNsdXNpdmUiKSwKCQkgICAgICAgIGNwLCB3cCk7CgkJcHJpbnRfcGF0aCAobXlwYXRoKTsK CQlyZXR1cm4gRVJST1I7Cgl9CgllbHNlIGlmICgodyA+IDAgfHwgYyA+IDApICYmICh3ID09IDAg fHwgYyA9PSAwIHx8IGMgPiB3KSkgewoJCXByaW50ZiAoXygiXApJTlBVVCBFUlJPUjogQ19ERiAo JWx1KSBzaG91bGQgYmUgbGVzcyB0aGFuIFdfREYgKCVsdSkgYW5kIGJvdGggc2hvdWxkIGJlIGdy ZWF0ZXIgdGhhbiB6ZXJvIiksCgkJICAgICAgICAodW5zaWduZWQgbG9uZyljLCAodW5zaWduZWQg bG9uZyl3KTsKCQlwcmludF9wYXRoIChteXBhdGgpOwoJCXJldHVybiBFUlJPUjsKCX0KCQoJaWYg KHVuaXRzID09IE5VTEwpIHsKCQl1bml0cyA9IHN0cmR1cCAoIk1CIik7CgkJbXVsdCA9ICh1aW50 bWF4X3QpMTAyNCAqIDEwMjQ7Cgl9CglyZXR1cm4gT0s7Cn0KCgoKDAppbnQKY2hlY2tfZGlzayAo ZG91YmxlIHVzcCwgdWludG1heF90IGZyZWVfZGlzaykKewoJaW50IHJlc3VsdCA9IFNUQVRFX1VO S05PV047CgkvKiBjaGVjayB0aGUgcGVyY2VudCB1c2VkIHNwYWNlIGFnYWluc3QgdGhyZXNob2xk cyAqLwoJaWYgKHVzcCA+PSAwLjAgJiYgY19kZnAgPj0wLjAgJiYgdXNwID49ICgxMDAuMCAtIGNf ZGZwKSkKCQlyZXN1bHQgPSBTVEFURV9DUklUSUNBTDsKCWVsc2UgaWYgKGNfZGYgPiAwICYmIGZy ZWVfZGlzayA8PSBjX2RmKQoJCXJlc3VsdCA9IFNUQVRFX0NSSVRJQ0FMOwoJZWxzZSBpZiAodXNw ID49IDAuMCAmJiB3X2RmcCA+PTAuMCAmJiB1c3AgPj0gKDEwMC4wIC0gd19kZnApKQoJCXJlc3Vs dCA9IFNUQVRFX1dBUk5JTkc7CgllbHNlIGlmICh3X2RmID4gMCAmJiBmcmVlX2Rpc2sgPD0gd19k ZikKCQlyZXN1bHQgPSBTVEFURV9XQVJOSU5HOwoJZWxzZSBpZiAodXNwID49IDAuMCkKCQlyZXN1 bHQgPSBTVEFURV9PSzsKCXJldHVybiByZXN1bHQ7Cn0KCgoKaW50CndhbGtfbmFtZV9saXN0IChz dHJ1Y3QgbmFtZV9saXN0ICpsaXN0LCBjb25zdCBjaGFyICpuYW1lKQp7Cgl3aGlsZSAobGlzdCkg ewoJCWlmICghIHN0cmNtcChsaXN0LT5uYW1lLCBuYW1lKSkgewoJCQlsaXN0LT5mb3VuZCA9IDE7 CgkJCS8qIGlmIHJlcXVpcmVkIGZvciBuYW1lX2xpc3RzIHRoYXQgaGF2ZSBub3Qgc2F2ZWQgd19k ZiwgZXRjIChlZyBleGNsdWRlIGxpc3RzKSAqLwoJCQlpZiAobGlzdC0+d19kZikgd19kZiA9IGxp c3QtPndfZGY7CgkJCWlmIChsaXN0LT5jX2RmKSBjX2RmID0gbGlzdC0+Y19kZjsKCQkJaWYgKGxp c3QtPndfZGZwPj0wLjApIHdfZGZwID0gbGlzdC0+d19kZnA7CgkJCWlmIChsaXN0LT5jX2RmcD49 MC4wKSBjX2RmcCA9IGxpc3QtPmNfZGZwOwoJCQlyZXR1cm4gVFJVRTsKCQl9CgkJbGlzdCA9IGxp c3QtPm5hbWVfbmV4dDsKCX0KCXJldHVybiBGQUxTRTsKfQoKCgoKCgwKdm9pZApwcmludF9oZWxw ICh2b2lkKQp7CglwcmludF9yZXZpc2lvbiAocHJvZ25hbWUsIHJldmlzaW9uKTsKCglwcmludGYg KF8oIkNvcHlyaWdodCAoYykgMTk5OSBFdGhhbiBHYWxzdGFkIDxuYWdpb3NAbmFnaW9zLm9yZz5c biIpKTsKCXByaW50ZiAoXyhDT1BZUklHSFQpLCBjb3B5cmlnaHQsIGVtYWlsKTsKCglwcmludGYg KF8oIlwKVGhpcyBwbHVnaW4gY2hlY2tzIHRoZSBhbW91bnQgb2YgdXNlZCBkaXNrIHNwYWNlIG9u IGEgbW91bnRlZCBmaWxlIHN5c3RlbVxuXAphbmQgZ2VuZXJhdGVzIGFuIGFsZXJ0IGlmIGZyZWUg c3BhY2UgaXMgbGVzcyB0aGFuIG9uZSBvZiB0aGUgdGhyZXNob2xkIHZhbHVlcy4iKSk7CgoJcHJp bnRfdXNhZ2UgKCk7CgoJcHJpbnRmIChfKFVUX0hFTFBfVlJTTikpOwoKCXByaW50ZiAoXygiXAog LXcsIC0td2FybmluZz1JTlRFR0VSXG5cCiAgIEV4aXQgd2l0aCBXQVJOSU5HIHN0YXR1cyBpZiBs ZXNzIHRoYW4gSU5URUdFUiBraWxvYnl0ZXMgb2YgZGlzayBhcmUgZnJlZVxuXAogLXcsIC0td2Fy bmluZz1QRVJDRU5UJSVcblwKICAgRXhpdCB3aXRoIFdBUk5JTkcgc3RhdHVzIGlmIGxlc3MgdGhh biBQRVJDRU5UIG9mIGRpc2sgc3BhY2UgaXMgZnJlZVxuXAogLWMsIC0tY3JpdGljYWw9SU5URUdF UlxuXAogICBFeGl0IHdpdGggQ1JJVElDQUwgc3RhdHVzIGlmIGxlc3MgdGhhbiBJTlRFR0VSIGtp bG9ieXRlcyBvZiBkaXNrIGFyZSBmcmVlXG5cCiAtYywgLS1jcml0aWNhbD1QRVJDRU5UJSVcblwK ICAgRXhpdCB3aXRoIENSSVRDQUwgc3RhdHVzIGlmIGxlc3MgdGhhbiBQRVJDRU5UIG9mIGRpc2sg c3BhY2UgaXMgZnJlZVxuXAogLUMsIC0tY2xlYXJcblwKICAgIENsZWFyIHRocmVzaG9sZHNcbiIp KTsKCglwcmludGYgKF8oIlwKIC11LCAtLXVuaXRzPVNUUklOR1xuXAogICAgQ2hvb3NlIGJ5dGVz LCBrQiwgTUIsIEdCLCBUQiAoZGVmYXVsdDogTUIpXG5cCiAtaywgLS1raWxvYnl0ZXNcblwKICAg IFNhbWUgYXMgJy0tdW5pdHMga0InXG5cCiAtbSwgLS1tZWdhYnl0ZXNcblwKICAgIFNhbWUgYXMg Jy0tdW5pdHMgTUInXG4iKSk7CgoJcHJpbnRmIChfKCJcCiAtbCwgLS1sb2NhbFxuXAogICAgT25s eSBjaGVjayBsb2NhbCBmaWxlc3lzdGVtc1xuXAogLXAsIC0tcGF0aD1QQVRILCAtLXBhcnRpdGlv bj1QQVJUSVRJT05cblwKICAgIFBhdGggb3IgcGFydGl0aW9uIChtYXkgYmUgcmVwZWF0ZWQpXG5c CiAteCwgLS1leGNsdWRlX2RldmljZT1QQVRIIDxTVFJJTkc+XG5cCiAgICBJZ25vcmUgZGV2aWNl IChvbmx5IHdvcmtzIGlmIC1wIHVuc3BlY2lmaWVkKVxuXAogLVgsIC0tZXhjbHVkZS10eXBlPVRZ UEUgPFNUUklORz5cblwKICAgIElnbm9yZSBhbGwgZmlsZXN5c3RlbXMgb2YgaW5kaWNhdGVkIHR5 cGUgKG1heSBiZSByZXBlYXRlZClcblwKIC1NLCAtLW1vdW50cG9pbnRcblwKICAgIERpc3BsYXkg dGhlIG1vdW50cG9pbnQgaW5zdGVhZCBvZiB0aGUgcGFydGl0aW9uXG5cCiAtZSwgLS1lcnJvcnMt b25seVxuXAogICAgRGlzcGxheSBvbmx5IGRldmljZXMvbW91bnRwb2ludHMgd2l0aCBlcnJvcnNc biIpKTsKCglwcmludGYgKF8oVVRfV0FSTl9DUklUKSk7CgoJcHJpbnRmIChfKFVUX1RJTUVPVVQp LCBERUZBVUxUX1NPQ0tFVF9USU1FT1VUKTsKCglwcmludGYgKF8oVVRfVkVSQk9TRSkpOwoKCXBy aW50ZiAoIiVzIiwgXygiRXhhbXBsZXM6XG5cCiBjaGVja19kaXNrIC13IDEwJSAtYyA1JSAtcCAv dG1wIC1wIC92YXIgLUMgLXcgMTAwMDAwIC1jIDUwMDAwIC1wIC9cblwKICAgQ2hlY2tzIC90bXAg YW5kIC92YXIgYXQgMTAlLDUlIGFuZCAvIGF0IDEwME1CLCA1ME1CXG4iKSk7CgoJcHJpbnRmIChf KFVUX1NVUFBPUlQpKTsKfQoKCgoKdm9pZApwcmludF91c2FnZSAodm9pZCkKewoJcHJpbnRmIChf KCJcClVzYWdlOiAlcyAtdyBsaW1pdCAtYyBsaW1pdCBbLXAgcGF0aCB8IC14IGRldmljZV0gWy10 IHRpbWVvdXRdIFstbV0gWy1lXVxuXAogICAgICAgIFstdl0gWy1xXVxuXAogICAgICAgJXMgKC1o fC0taGVscClcblwKICAgICAgICVzICgtVnwtLXZlcnNpb24pXG4iKSwKCSAgICAgICAgcHJvZ25h bWUsICBwcm9nbmFtZSwgcHJvZ25hbWUpOwp9Cg== |
From: Jaap H. <jaa...@ma...> - 2004-07-23 16:49:21
Attachments:
check_disk2
|
Garry, I still believe that this does not solve the issue of how to handle lower tresholds in perfparse, so I decided to take the different approach, I wrote a script that does filesystem checks using the "used" disk capacity as opposed to the amount of free capacity, thus solving the issue. It's a shell script that is not fool proof, and will only do one filesystem, but it works for me :-) I've attached it for those of you who are interested. Regards, Jaap On Thu, 2004-07-22 at 21:59, Cook, Garry wrote: > Attached is a 'fixed' check_disk.c. Just drop it in the plugin source > directory and re-make, then copy the binary over to nagios/libexec. > Works great on my system, I just needed to reverse the perfdata > output. You may want to backup your original check_disk.c and > check_disk just in case... > -g |
From: Ben C. <Be...@cl...> - 2004-07-23 17:42:47
|
Final release for the weekend. Had a few problems, now sorted. This release is good! Versions 0.99.01 to 0.99.05 suffer a risk of not importing data, for a number of reasons. I would advise upgrading to this version. This release filled a big hole: A big hole is PP to date:- The Nagios States (OK, WARNING, CRITICAL, UNKNOWN) were not imported. They are now successfully parsed, stored and used on all Raw Reports. Including the new Gant chart. Thanks again to Yves. There is a small fix needed. Please edit nagios.cfg, find the line: xpdfile_service_perfdata_template=$TIMET$\t$HOSTNAME$\t$SERVICEDESC$\t$OUTPUT$\t$PERFDATA$ And please change to: xpdfile_service_perfdata_template=$TIMET$\t$HOSTNAME$\t$SERVICEDESC$\t$OUTPUT$\t$SERVICESTATE$\t$PERFDATA$ Which has the new macro $SERVICESTATE$ near the end of the line. This is required for this version :) In more detail: The state is stored and used. Older data from before this fix will still 'guess' the correct state from the text output of the plugin. Recent data from this version onwards will use true correct state. Thanks for all the feedback, please keep us informed of any problems. Regards, Ben |
From: Ben C. <Be...@cl...> - 2004-07-26 11:58:59
|
Version 0.99.07 out. This fixes a minor bug with the Gant chart, an errant line. Also a fix to the output of 'configure'. When run, this now correctly displays: ***************************************************** WARNING WARNING WARNING WARNING WARNING WARNING WARNING CHANGE SINCE 0.99.04: PLEASE CHECK THAT xpdfile_service_perfdata_template IN nagios.cfg HAS THE FOLLOWING CONTENT: xpdfile_service_perfdata_template=$TIMET$\t$HOSTNAME$\t$SERVICEDESC$\t$OUTPUT$\t$SERVICESTATE$\t$PERFDATA$ ***************************************************** Sorry if this caused any person confusion. Regards, Ben |
From: Wilson P. J. <wp....@te...> - 2004-07-28 16:08:22
|
Hi guys, after running ./perfparse -r i got: Unknown column 'bin_delete_policy' in 'field list' What does it mean? Regards, Wilson |
From: Wilson P. J. <wp....@te...> - 2004-07-28 17:37:40
|
Hi all. The perfparse.log file shows the following line (3rd line): Hash in error. Want "06AD7...", got "0F6ED...", reset. What does it mean? What do I have to do in order to correct it? Regards, Wilson |