Go to main content

Textpattern CMS support forum

You are not logged in. Register | Login | Help

#196 2007-12-28 14:50:21

Joey
Member
From: Netherlands
Registered: 2005-01-19
Posts: 257

Re: [plugin] [ORPHAN] rss_admin_db_manager - database backups and more

Hi all. Trying to install the plugin on a new txp website, but have some troubles with it. When building a backup I get an error output:

Warning: unlink(/usr/local/plesk/apache/vhosts/httpdocs/files/1198853265.sql) [function.unlink]: Onbekend bestand of map in /usr/local/plesk/apache/vhosts/httpdocs/textpattern/lib/txplib_misc.php(534) : eval()’d code on line 95

BACKUP FAILED. ERROR NO: 127

I already searched this thread and found that the problem might be the mysql/mysqldump path’s. However, I just checked this with my hosting provider, and the path’s seems to be OK. What else could be the problem?


Regards,

Joey

Offline

#197 2007-12-29 08:51:20

candyman
Member
From: Italy
Registered: 2006-08-08
Posts: 684

Re: [plugin] [ORPHAN] rss_admin_db_manager - database backups and more

Maybe the server on which the script is running is different from the one which host the database?

Offline

#198 2007-12-31 10:14:49

candyman
Member
From: Italy
Registered: 2006-08-08
Posts: 684

Re: [plugin] [ORPHAN] rss_admin_db_manager - database backups and more

One question: is the rss_admin_db_manager server related? I mean: if I make a backup file on a server and then I move my domain to another host (with, obviously, a different db server) can I import the backup file without effort? Or I’ll get an error?

Thanks in advance and happy new year!

Offline

#199 2007-12-31 10:46:02

iblastoff
Plugin Author
From: Toronto
Registered: 2006-06-11
Posts: 1,197
Website

Re: [plugin] [ORPHAN] rss_admin_db_manager - database backups and more

candyman wrote:

One question: is the rss_admin_db_manager server related? I mean: if I make a backup file on a server and then I move my domain to another host (with, obviously, a different db server) can I import the backup file without effort? Or I’ll get an error?

Thanks in advance and happy new year!

of course its server related. and you might get an error. you might not. depends on what database permissions/different paths/etc you have on each server.

Offline

#200 2008-01-02 18:07:35

Joey
Member
From: Netherlands
Registered: 2005-01-19
Posts: 257

Re: [plugin] [ORPHAN] rss_admin_db_manager - database backups and more

candyman wrote:

Maybe the server on which the script is running is different from the one which host the database?

That can’t be the problems since they are both on the same server (I check it with my hosting provider). The hosting provider suggests that there is a problem with deleting the file (unlink). Somebody has any idea?


Regards,

Joey

Offline

#201 2008-02-03 10:13:05

FireFusion
Member
Registered: 2005-05-10
Posts: 698

Re: [plugin] [ORPHAN] rss_admin_db_manager - database backups and more

Hi Rob,

Is this getting updated for the 4.0.6 soon?

http://forum.textpattern.com/viewtopic.php?pid=170720#p170720

Offline

#202 2008-02-03 10:57:50

ruud
Developer Emeritus
From: a galaxy far far away
Registered: 2006-06-04
Posts: 5,068
Website

Re: [plugin] [ORPHAN] rss_admin_db_manager - database backups and more

For those who don’t mind editing the plugin, for Textpattern 4.0.6, edit the plugin and change this:

if (@txpinterface == 'admin') {
    register_tab("extensions", "rss_db_man", "DB Manager");
    register_callback("rss_db_man", "rss_db_man");

    register_tab("extensions", "rss_sql_run", "Run SQL");
    register_callback("rss_sql_run", "rss_sql_run");

    register_tab("extensions", "rss_db_bk", "DB Backup");
    register_callback("rss_db_bk", "rss_db_bk");
}

into (adding the 3 add_privs lines):

if (@txpinterface == 'admin') {
    add_privs('rss_db_man', '1');
    register_tab("extensions", "rss_db_man", "DB Manager");
    register_callback("rss_db_man", "rss_db_man");

    add_privs('rss_sql_run', '1');
    register_tab("extensions", "rss_sql_run", "Run SQL");
    register_callback("rss_sql_run", "rss_sql_run");

    add_privs('rss_db_bk', '1');
    register_tab("extensions", "rss_db_bk", "DB Backup");
    register_callback("rss_db_bk", "rss_db_bk");
}

Offline

#203 2008-02-03 11:44:06

iblastoff
Plugin Author
From: Toronto
Registered: 2006-06-11
Posts: 1,197
Website

Re: [plugin] [ORPHAN] rss_admin_db_manager - database backups and more

FireFusion wrote:

Hi Rob,

Is this getting updated for the 4.0.6 soon?

http://forum.textpattern.com/viewtopic.php?pid=170720#p170720

rob hasn’t posted in this forum for nearly half a year now. anyone know if hes still active with TXP-related stuffs?

Offline

#204 2008-02-04 00:28:15

diniscorreia
Member
From: Lisbon, Portugal
Registered: 2007-07-18
Posts: 19

Re: [plugin] [ORPHAN] rss_admin_db_manager - database backups and more

Hi all,

Anyone knows if the user need Publisher privileges to use the plugin?

Offline

#205 2008-02-04 00:32:54

ruud
Developer Emeritus
From: a galaxy far far away
Registered: 2006-06-04
Posts: 5,068
Website

Re: [plugin] [ORPHAN] rss_admin_db_manager - database backups and more

Yes, you need publisher privileges. See also the fix shown in my previous post, which is required for using this plugin in TXP 4.0.6

Offline

#206 2008-02-04 15:05:52

swf
Plugin Author
From: Saskatoon, Saskatchewan Canada
Registered: 2004-06-21
Posts: 109
Website

Re: [plugin] [ORPHAN] rss_admin_db_manager - database backups and more

When I try to update the code for 4.0.6 i get this error

The server is temporarily unable to service your request due to maintenance downtime or capacity problems. Please try again later.

Could someone update the plugin and provide a link?

Offline

#207 2008-02-04 17:03:26

colak
Admin
From: Cyprus
Registered: 2004-11-20
Posts: 9,395
Website GitHub Mastodon Twitter

Re: [plugin] [ORPHAN] rss_admin_db_manager - database backups and more

Hi swf. You can disable the plugin, upgrade and them enable it again…

Here is the upgraded one which provides compatibility with 4.0.6 anyway:)

YTo5OntzOjQ6Im5hbWUiO3M6MjA6InJzc19hZG1pbl9kYl9tYW5hZ2VyIjtzOjY6ImF1dGhvciI7czo5OiJSb2IgU2FibGUiO3M6MTA6ImF1dGhvcl91cmkiO3M6Mjc6Imh0dHA6Ly93d3cud2lsc2hpcmVvbmUuY29tLyI7czo3OiJ2ZXJzaW9uIjtzOjM6IjQuMyI7czoxMToiZGVzY3JpcHRpb24iO3M6Mjc6IkRhdGFiYXNlIG1hbmFnZW1lbnQgc3lzdGVtLiI7czo0OiJoZWxwIjtzOjM5NjQ6Igk8cD4KaDEuIFRleHRwYXR0ZXJuIERhdGFiYXNlIE1hbmFnZXI8L3A+CgoJPHA+VGhlIHJzc19hZG1pbl9kYl9tYW5hZ2VyIHBsdWdpbiBhZGRzIDMgbmV3IHRhYnMgdG8geW91ciBUZXh0cGF0dGVybiBhZG1pbiBpbnRlcmZhY2UuICBFYWNoIHRhYiBjb250YWlucyBkaWZmZXJlbnQgZnVuY3Rpb25hbGl0eSB0byBoZWxwIG1hbmFnZTxiciAvPgp5b3VyIDxhIGhyZWY9Imh0dHA6Ly93d3cubXlzcWwuY29tLyI+TXlTUUw8L2E+IGRhdGFiYXNlLiAgWW91IGNhbiB0aGluayBvZiB0aGlzIHBsdWdpbiBhcyBhIGxpZ2h0d2VpZ2h0IHJlcGxhY2VtZW50IGZvciA8YSBocmVmPSJodHRwOi8vd3d3LnBocG15YWRtaW4ubmV0L2hvbWVfcGFnZS8iPnBocE15QWRtaW48L2E+LjwvcD4KCgk8aDI+RGF0YWJhc2UgQmFja3VwPC9oMj4KCgk8cD5UaGUgPHN0cm9uZz5EQiBCYWNrdXAgdGFiPC9zdHJvbmc+IGFsbG93cyB5b3UgdG8gYmFja3VwLCBkb3dubG9hZCBhbmQgcmVzdG9yZSB0aGUgTXlTUUwgZGF0YWJhc2UgdGhhdCBpcyB1c2VkIGZvciB5b3VyIFRleHRwYXR0ZXJuIGluc3RhbGxhdGlvbi48YnIgLz4KVGhlIGRhdGFiYXNlIGJhY2t1cHMgYW5kIHJlc3RvcmVzIGFyZSBydW4gdXNpbmcgTXlTUUwmIzgyMTc7cyA8YSBocmVmPSJodHRwOi8vZGV2Lm15c3FsLmNvbS9kb2MvbXlzcWwvZW4vbXlzcWxkdW1wLmh0bWwiPm15c3FsZHVtcDwvYT4gY29tbWFuZC48YnIgLz4KT24gdGhpcyB0YWIgeW91IGFyZSBhYmxlIHRvOjwvcD4KCgk8dWw+CgkJPGxpPkNyZWF0ZSBhIC5zcWwgYmFja3VwIGZpbGUgb24gd2luZG93cyB3aXRoIHRoZSBhZGRpdGlvbmFsIG9wdGlvbiBvZiBjcmVhdGluZyBhIGd6aXBwZWQgYmFja3VwIG9uICpuaXggb3BlcmF0aW5nIHN5c3RlbXM8L2xpPgoJCTxsaT5WaWV3IGEgbGlzdCBvZiBwcmV2aW91cyBiYWNrdXAgZmlsZXM8L2xpPgoJCTxsaT5SZXN0b3JlIHlvdXIgZGF0YWJhc2UgZnJvbSBvbmUgb2YgdGhlIHByZXZpb3VzIGJhY2t1cHM8L2xpPgoJCTxsaT5Eb3dubG9hZCBhIGJhY2t1cCBmaWxlPC9saT4KCQk8bGk+RGVsZXRlIG9sZCBiYWNrdXBzPC9saT4KCTwvdWw+CgoJPGgyPkJhY2t1cCBQcmVmZXJlbmNlczwvaDI+CgoJPHA+WW91IGhhdmUgdGhlIGFiaWxpdHkgdG8gc2V0IHNldmVyYWwgcHJlZmVyZW5jZXMgcmVsYXRlZCB0byB5b3VyIGRhdGFiYXNlIGJhY2t1cHMuICBZb3UgY2FuIHNldCB0aGVzZSBvcHRpb25zIG9uIHRoZSBiYWNrdXAgdGFiLiAgVGhlIG9wdGlvbnMgaW5jbHVkZTo8L3A+CgoJPHVsPgoJCTxsaT48c3Ryb25nPkxvY2sgVGFibGVzPC9zdHJvbmc+ICYjODIxMTsgWW91ciBob3N0IG1heSBvciBtYXkgbm90IHN1cHBvcnQgdGhpcyBvcHRpb24uICBGb3IgZXhhbXBsZSwgYnkgZGVmYXVsdCwgVGV4dGRyaXZlIGRvZXNuJiM4MjE3O3QgYWxsb3cgdGFibGUgbG9ja2luZy4gIElmIHlvdXIgYmFja3VwIGZhaWxzLCB0cnkgc2V0dGluZyB0aGlzIHRvICYjODIyMDtObyYjODIyMTsuPC9saT4KCQk8bGk+PHN0cm9uZz5EZWJ1ZyBNb2RlPC9zdHJvbmc+ICYjODIxMTsgVHVybmluZyBkZWJ1Z2dpbmcgb24gd2lsbCBlY2hvIHRoZSBjb21tYW5kIGJlaW5nIHJ1biB0byB0aGUgc2NyZWVuLjwvbGk+CgkJPGxpPjxzdHJvbmc+QmFja3VwIFBhdGg8L3N0cm9uZz4gJiM4MjExOyBTZXQgdGhlIGRpcmVjdG9yeSB0aGF0IHlvdXIgYmFja3VwcyB3aWxsIGJlIHNhdmVkIHRvLjwvbGk+CgkJPGxpPjxzdHJvbmc+TXlzcWxkdW1wIFBhdGg8L3N0cm9uZz4gJiM4MjExOyBJdHMgbGlrZWx5IHRoYXQgdGhlIGRlZmF1bHQgd2lsbCB3b3JrIGZvciB5b3UuICBJZiBub3QsIGVudGVyIHRoZSBmdWxsIHBhdGggdGhlIHRoZSBleGVjdXRhYmxlLjwvbGk+CgkJPGxpPjxzdHJvbmc+TXlzcWwgUGF0aDwvc3Ryb25nPiAmIzgyMTE7IEl0cyBsaWtlbHkgdGhhdCB0aGUgZGVmYXVsdCB3aWxsIHdvcmsgZm9yIHlvdS4gIElmIG5vdCwgZW50ZXIgdGhlIGZ1bGwgcGF0aCB0aGUgdGhlIGV4ZWN1dGFibGUuPC9saT4KCTwvdWw+CgoJPGgyPkRhdGFiYXNlIE1hbmFnZXI8L2gyPgoKCTxwPlRoZSA8c3Ryb25nPkRCIE1hbmFnZXIgdGFiPC9zdHJvbmc+IGRpc3BsYXlzIGluZm9ybWF0aW9uIGFib3V0IHlvdXIgTXlTUUwgZGF0YWJhc2UgYW5kIGFsbCBvZiBpdHMgdGFibGVzLiAgQSBkZXRhaWxlZCBsaXN0IGluY2x1ZGVzIHRoZSBuYW1lIG9mIHRoZSB0YWJsZSwgbnVtYmVyIG9mIHJvd3MgYW5kIGZpbGUgc3BhY2UgdXNhZ2UuPGJyIC8+CllvdSB3aWxsIGFsc28gYmUgYWxlcnRlZCBvZiBhbnkgb3ZlcmhlYWQgb3IgZXJyb3JzIHRoYXQgbmVlZCB0byBiZSByZXBhaXJlZC4gIFRhYmxlcyBjYW4gYmUgcmVwYWlyZWQsIGRyb3BwZWQgb3IgYmFja2VkIHVwIGZyb20gdGhpcyBsaXN0aW5nLjwvcD4KCgk8dWw+CgkJPGxpPkNsaWNraW5nIG9uIHRoZSBuYW1lIG9mIHRoZSB0YWJsZSB3aWxsIHJ1biBhIHNlbGVjdCAqIFt0YWJsZSBuYW1lXSA8c3BhbiBjbGFzcz0iY2FwcyI+U1FMPC9zcGFuPiBzdGF0ZW1lbnQgYW5kIHRha2UgeW91IHRvIHRoZSA8c3Ryb25nPlJ1biA8c3BhbiBjbGFzcz0iY2FwcyI+U1FMPC9zcGFuPiB0YWI8L3N0cm9uZz4gdG8gZGlzcGxheSB0aGUgcmVzdWx0cy48L2xpPgoJCTxsaT5SZXBhaXIgYSBzaW5nbGUgdGFibGUgaW4gdGhlIGxpc3RpbmcgYnkgY2xpY2tpbmcgdGhlIFJlcGFpciBsaW5rLjwvbGk+CgkJPGxpPlJlcGFpciBhbGwgdGFibGVzIGluIHRoZSBsaXN0aW5nIGJ5IGNsaWNraW5nIHRoZSBSZXBhaXIgQWxsIGxpbmsuPC9saT4KCQk8bGk+QmFja3VwIGEgc2luZ2xlIHRhYmxlIGluIHRoZSBsaXN0aW5nIGJ5IGNsaWNraW5nIHRoZSBCYWNrdXAgbGluay48L2xpPgoJCTxsaT5Ecm9wIGEgc2luZ2xlIHRhYmxlIGluIHRoZSBsaXN0aW5nIGJ5IGNsaWNraW5nIHRoZSBEcm9wIGxpbmsuPC9saT4KCTwvdWw+CgoJPGgyPlJ1biA8c3BhbiBjbGFzcz0iY2FwcyI+U1FMPC9zcGFuPiBXaW5kb3c8L2gyPgoKCTxwPlRoZSA8c3Ryb25nPlJ1biA8c3BhbiBjbGFzcz0iY2FwcyI+U1FMPC9zcGFuPiB0YWI8L3N0cm9uZz4gYWxsb3dzIGZvciBmcmVlIGZvcm0gZW50cnkgYW5kIGV4ZWN1dGlvbiBvZiA8c3BhbiBjbGFzcz0iY2FwcyI+U1FMPC9zcGFuPiBzdGF0ZW1lbnRzLiAgVGhlIDxzcGFuIGNsYXNzPSJjYXBzIj5TUUw8L3NwYW4+IHdpbmRvdyBhY2NlcHRzPGJyIC8+CjxzcGFuIGNsYXNzPSJjYXBzIj5TRUxFQ1Q8L3NwYW4+LCA8c3BhbiBjbGFzcz0iY2FwcyI+SU5TRVJUPC9zcGFuPiwgPHNwYW4gY2xhc3M9ImNhcHMiPlVQREFURTwvc3Bhbj4sIDxzcGFuIGNsYXNzPSJjYXBzIj5DUkVBVEU8L3NwYW4+LCA8c3BhbiBjbGFzcz0iY2FwcyI+UkVQTEFDRTwvc3Bhbj4sIDxzcGFuIGNsYXNzPSJjYXBzIj5UUlVOQ0FURTwvc3Bhbj4sIGFuZCA8c3BhbiBjbGFzcz0iY2FwcyI+REVMRVRFPC9zcGFuPiBzdGF0ZW1lbnRzLiAgSWYgYSA8c3BhbiBjbGFzcz0iY2FwcyI+U0VMRUNUPC9zcGFuPiBzdGF0ZW1lbnQgaXMgcnVuLCB0aGUgcmVzdWx0cyB3aWxsIGJlIGRpc3BsYXllZCB0byB5b3UgYmVsb3cgdGhlIDxzcGFuIGNsYXNzPSJjYXBzIj5TUUw8L3NwYW4+IHdpbmRvdyBpbiBhIHRhYmxlLjxiciAvPgpUaGUgdGFibGUgbWFya3VwIGFsbG93cyB5b3UgdG8gYWRkIHlvdXIgb3duIHN0eWxlcyBmb3IgY3JlYXRpbmcgYSA8YSBocmVmPSJodHRwOi8vd3d3LmFnYXZlZ3JvdXAuY29tLz9wPTMxIj48c3BhbiBjbGFzcz0iY2FwcyI+Q1NTPC9zcGFuPiBTY3JvbGxhYmxlIFRhYmxlPC9hPi48L3A+CgoJPGgyPk1ham9yIFJhbnNvbSBDb250cmlidXRvcnM8L2gyPgoKCTx1bD4KCQk8bGk+SmFuIFdpbGxlbSBkZSBCcnVpam48L2xpPgoJCTxsaT5IZWlra2kgWWz2bmVuPC9saT4KCQk8bGk+TmV3IFNpZ25hbHMgUHJlc3M8L2xpPgoJCTxsaT48YSBocmVmPSJodHRwOi8vd3d3LmJ1aWxkZXJzY29sbGVjdGl2ZS5jb20vIj5TdGVwaGVuIEJhdTwvYT48L2xpPgoJPC91bD4iO3M6NDoiY29kZSI7czoxODczMDoiaWYgKEB0eHBpbnRlcmZhY2UgPT0gJ2FkbWluJykgew0KICAgIGFkZF9wcml2cygncnNzX2RiX21hbicsICcxJyk7DQogICAgcmVnaXN0ZXJfdGFiKCJleHRlbnNpb25zIiwgInJzc19kYl9tYW4iLCAiREIgTWFuYWdlciIpOw0KICAgIHJlZ2lzdGVyX2NhbGxiYWNrKCJyc3NfZGJfbWFuIiwgInJzc19kYl9tYW4iKTsNCg0KICAgIGFkZF9wcml2cygncnNzX3NxbF9ydW4nLCAnMScpOw0KICAgIHJlZ2lzdGVyX3RhYigiZXh0ZW5zaW9ucyIsICJyc3Nfc3FsX3J1biIsICJSdW4gU1FMIik7DQogICAgcmVnaXN0ZXJfY2FsbGJhY2soInJzc19zcWxfcnVuIiwgInJzc19zcWxfcnVuIik7DQoNCiAgICBhZGRfcHJpdnMoJ3Jzc19kYl9iaycsICcxJyk7DQogICAgcmVnaXN0ZXJfdGFiKCJleHRlbnNpb25zIiwgInJzc19kYl9iayIsICJEQiBCYWNrdXAiKTsNCiAgICByZWdpc3Rlcl9jYWxsYmFjaygicnNzX2RiX2JrIiwgInJzc19kYl9iayIpOw0KfQ0KDQoNCmZ1bmN0aW9uIHJzc19kYl9iaygkZXZlbnQsICRzdGVwKSB7DQogIGdsb2JhbCAkcHJlZnMsICRyc3NfZGJia19wYXRoLCAkcnNzX2RiYmtfZHVtcCwgJHJzc19kYmJrX215c3FsLCAkcnNzX2RiYmtfbG9jaywgJHJzc19kYmJrX3R4cGxvZywgJHJzc19kYmJrX2RlYnVnLCAkREIsICRmaWxlX2Jhc2VfcGF0aDsNCg0KICBpZiAoIWlzc2V0KCRyc3NfZGJia19sb2NrKSkgew0KICAgICRyc3NfZGJia19sb2NrID0gIjEiOw0KICAgICRycyA9IHNhZmVfaW5zZXJ0KCd0eHBfcHJlZnMnLCAibmFtZT0ncnNzX2RiYmtfbG9jaycsIHZhbD0nJHJzc19kYmJrX2xvY2snLCBwcmVmc19pZD0nMSciKTsNCiAgfQ0KDQogIGlmICghaXNzZXQoJHJzc19kYmJrX3R4cGxvZykpIHsNCiAgICAkcnNzX2RiYmtfdHhwbG9nID0gIjEiOw0KICAgICRycyA9IHNhZmVfaW5zZXJ0KCd0eHBfcHJlZnMnLCAibmFtZT0ncnNzX2RiYmtfdHhwbG9nJywgdmFsPSckcnNzX2RiYmtfdHhwbG9nJywgcHJlZnNfaWQ9JzEnIik7DQogIH0NCg0KICBpZiAoIWlzc2V0KCRyc3NfZGJia19kZWJ1ZykpIHsNCiAgICAkcnNzX2RiYmtfZGVidWcgPSAiMCI7DQogICAgJHJzID0gc2FmZV9pbnNlcnQoJ3R4cF9wcmVmcycsICJuYW1lPSdyc3NfZGJia19kZWJ1ZycsIHZhbD0nJHJzc19kYmJrX2RlYnVnJywgcHJlZnNfaWQ9JzEnIik7DQogIH0NCg0KICBpZiAoIWlzc2V0KCRyc3NfZGJia19wYXRoKSkgew0KICAgICRyc3NfZGJia19wYXRoID0gJGZpbGVfYmFzZV9wYXRoOw0KICAgICRycyA9IHNhZmVfaW5zZXJ0KCd0eHBfcHJlZnMnLCAibmFtZT0ncnNzX2RiYmtfcGF0aCcsIHZhbD0nIi5hZGRzbGFzaGVzKCRyc3NfZGJia19wYXRoKS4iJywgcHJlZnNfaWQ9JzEnIik7DQogIH0NCg0KICBpZiAoIWlzc2V0KCRyc3NfZGJia19kdW1wKSkgew0KICAgICRyc3NfZGJia19kdW1wID0gIm15c3FsZHVtcCI7DQogICAgJHJzID0gc2FmZV9pbnNlcnQoJ3R4cF9wcmVmcycsICJuYW1lPSdyc3NfZGJia19kdW1wJywgdmFsPSciLmFkZHNsYXNoZXMoJHJzc19kYmJrX2R1bXApLiInLCBwcmVmc19pZD0nMSciKTsNCiAgfQ0KDQogIGlmICghaXNzZXQoJHJzc19kYmJrX215c3FsKSkgew0KICAgICRyc3NfZGJia19teXNxbCA9ICJteXNxbCI7DQogICAgJHJzID0gc2FmZV9pbnNlcnQoJ3R4cF9wcmVmcycsICJuYW1lPSdyc3NfZGJia19teXNxbCcsIHZhbD0nIi5hZGRzbGFzaGVzKCRyc3NfZGJia19teXNxbCkuIicsIHByZWZzX2lkPScxJyIpOw0KICB9DQoNCiAgaW5jbHVkZSh0eHBhdGggLiAnL2luY2x1ZGUvdHhwX3ByZWZzLnBocCcpOw0KDQogICRia3BhdGggPSAkcnNzX2RiYmtfcGF0aDsNCiAgJGlzd2luID0gcHJlZ19tYXRjaCgnL1dpbi8nLHBocF91bmFtZSgpKTsNCiAgJG15c3FsX2h1cCA9ICcgLWgnLiREQi0+aG9zdC4nIC11Jy4kREItPnVzZXIuJyAtcCcuZXNjYXBlc2hlbGxjbWQoJERCLT5wYXNzKTsNCgkkdHhwbG9ncHMgPSBwcygncnNzX2RiYmtfdHhwbG9nJyk7DQoNCiAgaWYgKHBzKCJzYXZlIikpIHsNCg0KICAgICAgcGFnZXRvcCgiREIgTWFuYWdlciIsICJQcmVmZXJlbmNlcyBTYXZlZCIpOw0KICAgICAgc2FmZV91cGRhdGUoInR4cF9wcmVmcyIsICJ2YWwgPSAnIi5hZGRzbGFzaGVzKHBzKCdyc3NfZGJia19wYXRoJykpLiInIiwibmFtZSA9ICdyc3NfZGJia19wYXRoJyBhbmQgcHJlZnNfaWQgPScxJyIpOw0KICAgICAgc2FmZV91cGRhdGUoInR4cF9wcmVmcyIsICJ2YWwgPSAnIi5hZGRzbGFzaGVzKHBzKCdyc3NfZGJia19kdW1wJykpLiInIiwibmFtZSA9ICdyc3NfZGJia19kdW1wJyBhbmQgcHJlZnNfaWQgPScxJyIpOw0KICAgICAgc2FmZV91cGRhdGUoInR4cF9wcmVmcyIsICJ2YWwgPSAnIi5hZGRzbGFzaGVzKHBzKCdyc3NfZGJia19teXNxbCcpKS4iJyIsIm5hbWUgPSAncnNzX2RiYmtfbXlzcWwnIGFuZCBwcmVmc19pZCA9JzEnIik7DQogICAgICBzYWZlX3VwZGF0ZSgidHhwX3ByZWZzIiwgInZhbCA9ICciLnBzKCdyc3NfZGJia19sb2NrJykuIiciLCJuYW1lID0gJ3Jzc19kYmJrX2xvY2snIGFuZCBwcmVmc19pZCA9JzEnIik7DQogICAgICBpZiAoaXNzZXQoJHR4cGxvZ3BzKSkgc2FmZV91cGRhdGUoInR4cF9wcmVmcyIsICJ2YWwgPSAnIi5wcygncnNzX2RiYmtfdHhwbG9nJykuIiciLCJuYW1lID0gJ3Jzc19kYmJrX3R4cGxvZycgYW5kIHByZWZzX2lkID0nMSciKTsNCiAgICAgIHNhZmVfdXBkYXRlKCJ0eHBfcHJlZnMiLCAidmFsID0gJyIucHMoJ3Jzc19kYmJrX2RlYnVnJykuIiciLCJuYW1lID0gJ3Jzc19kYmJrX2RlYnVnJyBhbmQgcHJlZnNfaWQgPScxJyIpOw0KICAgICAgaGVhZGVyKCJMb2NhdGlvbjogaW5kZXgucGhwP2V2ZW50PXJzc19kYl9iayIpOw0KDQogIH0gIGVsc2UgaWYgKGdwcygiYmsiKSkgew0KDQoJCQkkYmtfdGFibGUgPSAoZ3BzKCJia190YWJsZSIpKSA/ICIgLS10YWJsZXMgIi5ncHMoImJrX3RhYmxlIikuIiAiIDogIiI7DQoJCQkkdGFicGF0aCA9IChncHMoImJrX3RhYmxlIikpID8gIi0iLmdwcygiYmtfdGFibGUiKSA6ICIiOw0KICAgICAgJGd6aXAgPSBncHMoImd6aXAiKTsNCgkJCSRmaWxlbmFtZSA9IHRpbWUoKS4nLScuJERCLT5kYi4kdGFicGF0aDsNCiAgICAgICRiYWNrdXBfcGF0aCA9ICRia3BhdGguJy8nLiRmaWxlbmFtZS4nLnNxbCc7DQogICAgICAkbG9jayA9ICgkcnNzX2RiYmtfbG9jaykgPyAiIiA6ICIgLS1za2lwLWxvY2stdGFibGVzIC0tc2tpcC1hZGQtbG9ja3MgIjsNCiAgICAgIGVjaG8gJHR4cGxvZ3BzOw0KICAgICAgJG5vbG9nID0gKCRyc3NfZGJia190eHBsb2cpID8gIiIgOiAiIC0taWdub3JlLXRhYmxlPSIuJERCLT5kYi4iLnR4cF9sb2cgIjsNCiAgICAgICRub2xvZyA9IChpc3NldCgkYmtfdGFibGUpICYmIGdwcygiYmtfdGFibGUiKSA9PSAidHhwX2xvZyIpID8gIiIgOiAkbm9sb2c7DQoNCiAgICAgIGlmKCRnemlwKSB7DQogICAgICAgICRiYWNrdXBfcGF0aC49ICcuZ3onOw0KICAgICAgICAkYmFja3VwX2NtZCA9ICRyc3NfZGJia19kdW1wLiRteXNxbF9odXAuJyAtUSAtLWFkZC1kcm9wLXRhYmxlICcuJGxvY2suJG5vbG9nLiREQi0+ZGIuJGJrX3RhYmxlLicgfCBnemlwID4gJy4kYmFja3VwX3BhdGg7DQogICAgICB9IGVsc2Ugew0KICAgICAgICAkYmFja3VwX2NtZCA9ICRyc3NfZGJia19kdW1wLiRteXNxbF9odXAuJyAtUSAtLWFkZC1kcm9wLXRhYmxlICcuJGxvY2suJG5vbG9nLiREQi0+ZGIuJGJrX3RhYmxlLicgPiAnLiRiYWNrdXBfcGF0aDsNCiAgICAgIH0NCgkgICAgJGJrZGVidWcgPSAoJHJzc19kYmJrX2RlYnVnKSA/ICRiYWNrdXBfY21kIDogJyc7DQogICAgICAkZXJyb3IgPSAiIjsNCg0KICAgICAgaWYgKGZ1bmN0aW9uX2V4aXN0cygncGFzc3RocnUnKSkgew0KICAgICAgICBwYXNzdGhydSgkYmFja3VwX2NtZCwgJGVycm9yKTsNCiAgICAgIH0gZWxzZSB7DQogICAgICAgICRkdW1wSXQ9cG9wZW4oJGJhY2t1cF9jbWQsICdyJyk7DQogICAgICAgIHBjbG9zZSgkZHVtcEl0KTsNCiAgICAgIH0NCg0KICAgICAgaWYoIWlzX3dyaXRhYmxlKCRia3BhdGgpKSB7DQogICAgICAgIHBhZ2V0b3AoIkRCIE1hbmFnZXIiLCAiQkFDS1VQIEZBSUxFRDogZm9sZGVyIGlzIG5vdCB3cml0YWJsZSIpOw0KICAgICAgfSBlbHNlaWYoJGVycm9yKSB7DQogICAgICAgIHVubGluaygkYmFja3VwX3BhdGgpOw0KICAgICAgICBwYWdldG9wKCJEQiBNYW5hZ2VyIiwgIkJBQ0tVUCBGQUlMRUQuICBFUlJPUiBOTzogIi4kZXJyb3IpOw0KICAgICAgfSBlbHNlIGlmKCFpc19maWxlKCRiYWNrdXBfcGF0aCkpIHsNCiAgICAgICAgcGFnZXRvcCgiREIgTWFuYWdlciIsICJCQUNLVVAgRkFJTEVELiAgRVJST1IgTk86ICIuJGVycm9yKTsNCiAgICAgIH0gZWxzZSBpZihmaWxlc2l6ZSgkYmFja3VwX3BhdGgpID09IDApIHsNCiAgICAgICAgdW5saW5rKCRiYWNrdXBfcGF0aCk7DQogICAgICAgIHBhZ2V0b3AoIkRCIE1hbmFnZXIiLCAiQkFDS1VQIEZBSUxFRC4gIEVSUk9SIE5POiAiLiRlcnJvcik7DQogICAgICB9IGVsc2Ugew0KICAgICAgICBwYWdldG9wKCJEQiBNYW5hZ2VyIiwgIkJhY2tlZCBVcDogIi4kREItPmRiLiIgdG8gIi4kZmlsZW5hbWUpOw0KICAgICAgfQ0KDQogIH0gZWxzZSBpZiAoZ3BzKCJkb3dubG9hZCIpKSB7DQoNCiAgICAkZm4gPSBncHMoImRvd25sb2FkIik7DQogICAgJGZpbGVfcGF0aCA9ICRia3BhdGguJy8nLiRmbjsNCiAgICBoZWFkZXIoIlByYWdtYTogcHVibGljIik7DQogICAgaGVhZGVyKCJFeHBpcmVzOiAwIik7DQogICAgaGVhZGVyKCJDYWNoZS1Db250cm9sOiBtdXN0LXJldmFsaWRhdGUsIHBvc3QtY2hlY2s9MCwgcHJlLWNoZWNrPTAiKTsNCiAgICBoZWFkZXIoIkNvbnRlbnQtVHlwZTogYXBwbGljYXRpb24vZm9yY2UtZG93bmxvYWQiKTsNCiAgICBoZWFkZXIoIkNvbnRlbnQtVHlwZTogYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtIik7DQogICAgaGVhZGVyKCJDb250ZW50LVR5cGU6IGFwcGxpY2F0aW9uL2Rvd25sb2FkIik7DQogICAgaWYgKHN1YnN0cigkZm4sIC0yKSA9PSAiZ3oiKSBoZWFkZXIoIkNvbnRlbnQtVHlwZTogYXBwbGljYXRpb24vemlwIik7DQogICAgaGVhZGVyKCJDb250ZW50LURpc3Bvc2l0aW9uOiBhdHRhY2htZW50OyBmaWxlbmFtZT0iLmJhc2VuYW1lKCRmaWxlX3BhdGgpLiI7Iik7DQogICAgaGVhZGVyKCJDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiBiaW5hcnkiKTsNCiAgICBoZWFkZXIoIkNvbnRlbnQtTGVuZ3RoOiAiLmZpbGVzaXplKCRmaWxlX3BhdGgpKTsNCiAgICBAcmVhZGZpbGUoJGZpbGVfcGF0aCk7DQoNCiAgfSBlbHNlIGlmIChncHMoInJlc3RvcmUiKSkgew0KDQogICAgaWYoc3RyaXN0cihncHMoInJlc3RvcmUiKSwgJy5neicpKSB7DQogICAgICAkYmFja3VwX2NtZCA9ICdndW56aXAgPCAnLiRia3BhdGguJy8nLmdwcygicmVzdG9yZSIpLicgfCAnLiRyc3NfZGJia19teXNxbC4kbXlzcWxfaHVwLicgJy4kREItPmRiOw0KICAgIH0gZWxzZSB7DQogICAgICAkYmFja3VwX2NtZCA9ICRyc3NfZGJia19teXNxbC4kbXlzcWxfaHVwLicgJy4kREItPmRiLicgPCAnLiRia3BhdGguJy8nLmdwcygicmVzdG9yZSIpOw0KICAgIH0NCg0KICAgICRia2RlYnVnID0gKCRyc3NfZGJia19kZWJ1ZykgPyAkYmFja3VwX2NtZCA6ICcnOw0KICAgICRlcnJvciA9ICIiOw0KDQogICAgaWYgKGZ1bmN0aW9uX2V4aXN0cygncGFzc3RocnUnKSkgew0KICAgICAgcGFzc3RocnUoJGJhY2t1cF9jbWQsICRlcnJvcik7DQogICAgfSBlbHNlIHsNCiAgICAgICRkdW1wSXQ9cG9wZW4oJGJhY2t1cF9jbWQsICdyJyk7DQogICAgICBwY2xvc2UoJGR1bXBJdCk7DQogICAgfQ0KDQogICAgaWYoJGVycm9yKSB7DQogICAgICBwYWdldG9wKCJEQiBNYW5hZ2VyIiwgIkZBSUxFRCBUTyBSRVNUT1JFOiAiLiRlcnJvcik7DQogICAgfSBlbHNlIHsNCiAgICAgIHBhZ2V0b3AoIkRCIE1hbmFnZXIiLCAiUmVzdG9yZWQ6ICIuZ3BzKCJyZXN0b3JlIikuIiB0byAiLiREQi0+ZGIpOw0KICAgIH0NCg0KICB9IGVsc2UgaWYoZ3BzKCJkZWxldGUiKSkgew0KDQogICAgICBpZihpc19maWxlKCRia3BhdGguJy8nLmdwcygiZGVsZXRlIikpKSB7DQogICAgICAgIGlmKCF1bmxpbmsoJGJrcGF0aC4nLycuZ3BzKCJkZWxldGUiKSkpIHsNCiAgICAgICAgICBwYWdldG9wKCJEQiBNYW5hZ2VyIiwgIlVuYWJsZSB0byBEZWxldGU6ICIuZ3BzKCJkZWxldGUiKSk7DQogICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgcGFnZXRvcCgiREIgTWFuYWdlciIsICJEZWxldGVkOiAiLmdwcygiZGVsZXRlIikpOw0KICAgICAgICB9DQogICAgICB9IGVsc2Ugew0KICAgICAgICBwYWdldG9wKCJEQiBNYW5hZ2VyIiwgIlVuYWJsZSB0byBEZWxldGU6ICIuZ3BzKCJkZWxldGUiKSk7DQogICAgICB9DQoNCiAgfSBlbHNlIHsNCiAgICBwYWdldG9wKCJEQiBCYWNrdXAiKTsNCiAgfQ0KDQogICRnenAgPSAoISRpc3dpbikgPyAiIHwgIi5ocmVmKCdnemlwcGVkIGZpbGUnLCAiaW5kZXgucGhwP2V2ZW50PXJzc19kYl9iayZhbXA7Yms9JERCLT5kYiZhbXA7Z3ppcD0xIikgOiAiIjsNCg0KICAkc3FsdmVyc2lvbiA9IGdldFJvdygiU0VMRUNUIFZFUlNJT04oKSBBUyB2ZXJzaW9uIik7DQogICRzcWx2ID0gZXhwbG9kZSgiLSIsICRzcWx2ZXJzaW9uWyd2ZXJzaW9uJ10pOw0KICAkYWxsb3dub2xvZ3MgPSAoKGZsb2F0KSRzcWx2WzBdID49IChmbG9hdCkiNC4xLjkiKSA/IHRkYShnVHh0KCdJbmNsdWRlIHR4cF9sb2c6JyksICcgc3R5bGU9InRleHQtYWxpZ246cmlnaHQ7dmVydGljYWwtYWxpZ246bWlkZGxlIicpLnRkYSh5ZXNub1JhZGlvKCJyc3NfZGJia190eHBsb2ciLCAkcnNzX2RiYmtfdHhwbG9nKSwgJyBzdHlsZT0idGV4dC1hbGlnbjpsZWZ0O3ZlcnRpY2FsLWFsaWduOm1pZGRsZSInKSA6ICcnOw0KDQoJaWYgKGlzc2V0KCRia2RlYnVnKSAmJiAkYmtkZWJ1ZykgZWNobyAnPHAgYWxpZ249ImNlbnRlciI+Jy4kYmtkZWJ1Zy4nPC9wPic7DQoNCiAgZWNobw0KICBzdGFydFRhYmxlKCdsaXN0JykuDQogIGZvcm0oDQogIHRyKA0KICAgIHRkYShnVHh0KCdMb2NrIFRhYmxlczonKSwgJyBzdHlsZT0idGV4dC1hbGlnbjpyaWdodDt2ZXJ0aWNhbC1hbGlnbjptaWRkbGUiJykudGRhKHllc25vUmFkaW8oInJzc19kYmJrX2xvY2siLCAkcnNzX2RiYmtfbG9jayksICcgc3R5bGU9InRleHQtYWxpZ246bGVmdDt2ZXJ0aWNhbC1hbGlnbjptaWRkbGUiJykuDQogICAgJGFsbG93bm9sb2dzLg0KICAgIHRkYShnVHh0KCdEZWJ1ZyBNb2RlOicpLCAnIHN0eWxlPSJ0ZXh0LWFsaWduOnJpZ2h0O3ZlcnRpY2FsLWFsaWduOm1pZGRsZSInKS50ZGEoeWVzbm9SYWRpbygicnNzX2RiYmtfZGVidWciLCAkcnNzX2RiYmtfZGVidWcpLCAnIHN0eWxlPSJ0ZXh0LWFsaWduOmxlZnQ7dmVydGljYWwtYWxpZ246bWlkZGxlIicpLg0KICAgIHRkYShmSW5wdXQoInN1Ym1pdCIsInNhdmUiLGdUeHQoInNhdmVfYnV0dG9uIiksInB1Ymxpc2giKS5lSW5wdXQoInJzc19kYl9iayIpLnNJbnB1dCgnc2F2ZXByZWZzJyksICIgY29sc3Bhbj1cIjJcIiBjbGFzcz1cIm5vbGluZVwiIikNCiAgKS4NCiAgdHIoDQogICAgdGRhKGdUeHQoJ0JhY2t1cCBQYXRoOicpLCAnIHN0eWxlPSJ0ZXh0LWFsaWduOnJpZ2h0O3ZlcnRpY2FsLWFsaWduOm1pZGRsZSInKS50ZGEodGV4dF9pbnB1dCgicnNzX2RiYmtfcGF0aCIsJHJzc19kYmJrX3BhdGgsJzUwJyksICcgY29sc3Bhbj0iMTUiJykNCiAgKS4NCiAgdHIoDQogICAgdGRhKGdUeHQoJ215c3FsZHVtcCBQYXRoOicpLCAnIHN0eWxlPSJ0ZXh0LWFsaWduOnJpZ2h0O3ZlcnRpY2FsLWFsaWduOm1pZGRsZSInKS50ZGEodGV4dF9pbnB1dCgicnNzX2RiYmtfZHVtcCIsJHJzc19kYmJrX2R1bXAsJzUwJyksICcgY29sc3Bhbj0iMTUiJykNCiAgKS4NCiAgdHIoDQogICAgdGRhKGdUeHQoJ215c3FsIFBhdGg6JyksICcgc3R5bGU9InRleHQtYWxpZ246cmlnaHQ7dmVydGljYWwtYWxpZ246bWlkZGxlIicpLnRkYSh0ZXh0X2lucHV0KCJyc3NfZGJia19teXNxbCIsJHJzc19kYmJrX215c3FsLCc1MCcpLCAnIGNvbHNwYW49IjE1IicpKQ0KICApLmVuZFRhYmxlKCkuDQogIHN0YXJ0VGFibGUoImxpc3QiKS4NCiAgdHIoDQogICAgdGRhKGhlZCgnQ3JlYXRlIGEgbmV3IGJhY2t1cCBvZiB0aGUgJy4kREItPmRiLicgZGF0YWJhc2UnLmJyLg0KICAgIGhyZWYoJy5zcWwgZmlsZScsICJpbmRleC5waHA/ZXZlbnQ9cnNzX2RiX2JrJmFtcDtiaz0kREItPmRiIikuJGd6cCwzKSwnIGNvbHNwYW49IjciIHN0eWxlPSJ0ZXh0LWFsaWduOmNlbnRlcjsiJykNCiAgICApLg0KICB0cih0ZGNzKGhlZCgiUHJldmlvdXMgQmFja3VwIEZpbGVzIiwxKSw3KSkuDQogIHRyKA0KICAgIGhjZWxsKCJOby4iKS4NCiAgICBoY2VsbCgiQmFja3VwIEZpbGUgTmFtZSIpLg0KICAgIGhjZWxsKCJCYWNrdXAgRGF0ZS9UaW1lIikuDQogICAgaGNlbGwoIkJhY2t1cCBGaWxlIFNpemUiKS4NCiAgICBoY2VsbCgiIikuDQogICAgaGNlbGwoIiIpLg0KICAgIGhjZWxsKCIiKQ0KICApOw0KDQogICR0b3RhbHNpemUgPSAwOw0KICAkbm8gPSAwOw0KICBpZighaXNfZm9sZGVyX2VtcHR5KCRia3BhdGgpKSB7DQogICAgaWYgKCRoYW5kbGUgPSBvcGVuZGlyKCRia3BhdGgpKSB7DQogICAgICAkZGF0YWJhc2VfZmlsZXMgPSBhcnJheSgpOw0KICAgICAgd2hpbGUgKGZhbHNlICE9PSAoJGZpbGUgPSByZWFkZGlyKCRoYW5kbGUpKSkgew0KICAgICAgICBpZiAoKCRmaWxlICE9ICcuJyAmJiAkZmlsZSAhPSAnLi4nKSAmJiAoc3Vic3RyKCRmaWxlLCAtNCkgPT0gIi5zcWwiIHx8IHN1YnN0cigkZmlsZSwgLTcpID09ICIuc3FsLmd6IikpIHsNCiAgICAgICAgICAkZGF0YWJhc2VfZmlsZXNbXSA9ICRmaWxlOw0KICAgICAgICB9DQogICAgICB9DQogICAgICBjbG9zZWRpcigkaGFuZGxlKTsNCiAgICAgIGZvcigkaSA9IChzaXplb2YoJGRhdGFiYXNlX2ZpbGVzKS0xKTsgJGkgPiAtMTsgJGktLSkgew0KICAgICAgICAkbm8rKzsNCiAgICAgICAgJHN0eWxlID0gKCRubyUyID09IDApID8gJyBzdHlsZT0iYmFja2dyb3VuZC1jb2xvcjogI2VlZTsiJyA6ICcnOw0KICAgICAgICAkZGF0YWJhc2VfdGV4dCA9IHN1YnN0cigkZGF0YWJhc2VfZmlsZXNbJGldLCAxMSk7DQogICAgICAgICRkYXRlX3RleHQgPSBzdHJmdGltZSgiJUEsICVCICVkLCAlWSBbJUg6JU06JVNdIiwgc3Vic3RyKCRkYXRhYmFzZV9maWxlc1skaV0sIDAsIDEwKSk7DQogICAgICAgICRzaXplX3RleHQgPSBmaWxlc2l6ZSgkYmtwYXRoLicvJy4kZGF0YWJhc2VfZmlsZXNbJGldKTsNCiAgICAgICAgJHRvdGFsc2l6ZSArPSAkc2l6ZV90ZXh0Ow0KDQogICAgICAgIGVjaG8NCiAgICAgICAgdHIoDQogICAgICAgICAgdGQoJG5vKS4NCiAgICAgICAgICB0ZCgkZGF0YWJhc2VfdGV4dCkuDQogICAgICAgICAgdGQoJGRhdGVfdGV4dCkuDQogICAgICAgICAgdGQocHJldHR5RmlsZVNpemUoJHNpemVfdGV4dCkpLg0KICAgICAgICAgICc8dGQ+PGEgaHJlZj0iaW5kZXgucGhwP2V2ZW50PXJzc19kYl9iayZhbXA7ZG93bmxvYWQ9Jy4kZGF0YWJhc2VfZmlsZXNbJGldLiciPkRvd25sb2FkPC9hPjwvdGQ+Jy4NCiAgICAgICAgICAnPHRkPjxhIGhyZWY9ImluZGV4LnBocD9ldmVudD1yc3NfZGJfYmsmYW1wO3Jlc3RvcmU9Jy4kZGF0YWJhc2VfZmlsZXNbJGldLiciICBvbmNsaWNrPSJyZXR1cm4gdmVyaWZ5KFwnJy5nVHh0KCdhcmVfeW91X3N1cmUnKS4nXCcpIj5SZXN0b3JlPC9hPjwvdGQ+Jy4NCiAgICAgICAgICAnPHRkPjxhIGhyZWY9ImluZGV4LnBocD9ldmVudD1yc3NfZGJfYmsmYW1wO2RlbGV0ZT0nLiRkYXRhYmFzZV9maWxlc1skaV0uJyIgIG9uY2xpY2s9InJldHVybiB2ZXJpZnkoXCcnLmdUeHQoJ2FyZV95b3Vfc3VyZScpLidcJykiPkRlbGV0ZTwvYT48L3RkPicsICRzdHlsZQ0KICAgICAgICApOw0KICAgICAgfQ0KDQogICAgZWNobw0KICAgICAgdHIoDQogICAgICAgIHRhZygkbm8uIiBCYWNrdXAgRmlsZShzKSIsICJ0aCIsICcgY29sc3Bhbj0iMyInKS4NCiAgICAgICAgdGFnKHByZXR0eUZpbGVTaXplKCR0b3RhbHNpemUpLCAidGgiLCAnIGNvbHNwYW49IjQiJykNCiAgICAgICk7DQoNCiAgICB9IGVsc2Ugew0KICAgICAgZWNobw0KICAgICAgdHIoDQogICAgICAgIHRkYShoZWQoJ1lvdSBoYXZlIG5vIGRhdGFiYXNlIGJhY2t1cHMnLmJyLidDcmVhdGUgYSBuZXcgYmFja3VwIG9mIHRoZSAnLiREQi0+ZGIuJyBkYXRhYmFzZScuYnIuDQogICAgICAgIGhyZWYoJy5zcWwgZmlsZScsICJpbmRleC5waHA/ZXZlbnQ9cnNzX2RiX2JrJmFtcDtiaz0kREItPmRiIikuJGd6cCwzKSwnIGNvbHNwYW49IjciIHN0eWxlPSJ0ZXh0LWFsaWduOmNlbnRlcjsiJykNCiAgICAgICAgKTsNCiAgICB9DQogIH0gZWxzZSB7DQogICAgICBlY2hvDQogICAgICB0cigNCiAgICAgICAgdGRhKGhlZCgnWW91IGhhdmUgbm8gZGF0YWJhc2UgYmFja3VwcycuYnIuJ0NyZWF0ZSBhIG5ldyBiYWNrdXAgb2YgdGhlICcuJERCLT5kYi4nIGRhdGFiYXNlJy5ici4NCiAgICAgICAgaHJlZignLnNxbCBmaWxlJywgImluZGV4LnBocD9ldmVudD1yc3NfZGJfYmsmYW1wO2JrPSREQi0+ZGIiKS4kZ3pwLDMpLCcgY29sc3Bhbj0iNyIgc3R5bGU9InRleHQtYWxpZ246Y2VudGVyOyInKQ0KICAgICAgICApOw0KICB9DQogIGVjaG8gZW5kVGFibGUoKTsNCn0NCg0KZnVuY3Rpb24gcnNzX2RiX21hbigkZXZlbnQsICRzdGVwKSB7DQogIGdsb2JhbCAkREI7DQoNCiAgaWYgKGdwcygib3B0X3RhYmxlIikpIHsNCiAgICAkcXVlcnkgPSAiT1BUSU1JWkUgVEFCTEUgIi5ncHMoIm9wdF90YWJsZSIpOw0KICAgIHNhZmVfcXVlcnkoJHF1ZXJ5KTsNCiAgICBwYWdldG9wKCJEQiBNYW5hZ2VyIiwgIk9wdGltemVkOiAiLmdwcygib3B0X3RhYmxlIikpOw0KICB9IGVsc2UgIGlmIChncHMoInJlcF90YWJsZSIpKSB7DQogICAgJHF1ZXJ5ID0gIlJFUEFJUiBUQUJMRSAiLmdwcygicmVwX3RhYmxlIik7DQogICAgc2FmZV9xdWVyeSgkcXVlcnkpOw0KICAgIHBhZ2V0b3AoIkRCIE1hbmFnZXIiLCAiUmVwYWlyZWQ6ICIuZ3BzKCJyZXBfdGFibGUiKSk7DQoJfSBlbHNlIAlpZiAoZ3BzKCJyZXBfYWxsIikpIHsNCgkJJHF1ZXJ5ID0gIlJFUEFJUiBUQUJMRSAiLmdwcygicmVwX2FsbCIpOw0KCQlzYWZlX3F1ZXJ5KCRxdWVyeSk7DQoJCXBhZ2V0b3AoIkRCIE1hbmFnZXIiLCAiUmVwYWlyZWQgQWxsIFRhYmxlcyIpOw0KICB9IGVsc2UgIGlmIChncHMoImRyb3BfdGFibGUiKSkgew0KICAgICRxdWVyeSA9ICJEUk9QIFRBQkxFICIuZ3BzKCJkcm9wX3RhYmxlIik7DQogICAgc2FmZV9xdWVyeSgkcXVlcnkpOw0KICAgIHBhZ2V0b3AoIkRCIE1hbmFnZXIiLCAiRHJvcHBlZDogIi5ncHMoImRyb3BfdGFibGUiKSk7DQogIH0gZWxzZSB7DQogICAgcGFnZXRvcCgiRGF0YWJhc2UgTWFuYWdlciIpOw0KICB9DQoNCgkkc3FsdmVyc2lvbiA9IGdldFJvdygiU0VMRUNUIFZFUlNJT04oKSBBUyB2ZXJzaW9uIik7DQoJJGhlYWRhdHRzID0gJyBzdHlsZT0iY29sb3I6IzAwNjlEMTtwYWRkaW5nOjAgMTBweCAwIDVweDsiJzsNCg0KCWVjaG8NCglzdGFydFRhYmxlKCdkYmluZm8nKS4NCgl0cigNCgkJaGNlbGwoIkRhdGFiYXNlIEhvc3Q6IikuDQoJCXRkYSgkREItPmhvc3QsICRoZWFkYXR0cykuDQoJCWhjZWxsKCJEYXRhYmFzZSBOYW1lOiIpLg0KCQl0ZGEoJERCLT5kYiwgJGhlYWRhdHRzKS4NCgkJaGNlbGwoIkRhdGFiYXNlIFVzZXI6IikuDQoJCXRkYSgkREItPnVzZXIsICRoZWFkYXR0cykuDQoJCWhjZWxsKCJEYXRhYmFzZSBWZXJzaW9uOiIpLg0KCQl0ZGEoIk15U1FMIHYiLiRzcWx2ZXJzaW9uWyd2ZXJzaW9uJ10sICRoZWFkYXR0cykNCgkpLg0KCWVuZFRhYmxlKCkuYnI7DQoNCgllY2hvDQoJc3RhcnRUYWJsZSgnbGlzdCcpLg0KCXRyKA0KCQloY2VsbCgiTm8uIikuDQoJCWhjZWxsKCJUYWJsZXMiKS4NCgkJaGNlbGwoIlJlY29yZHMiKS4NCgkJaGNlbGwoIkRhdGEgVXNhZ2UiKS4NCgkJaGNlbGwoIkluZGV4IFVzYWdlIikuDQoJCWhjZWxsKCJUb3RhbCBVc2FnZSIpLg0KCQloY2VsbCgiT3ZlcmhlYWQiKS4NCgkJLy9oY2VsbCgiT3B0aW1pemUiKS4NCgkJaGNlbGwoIkVyck5vIikuDQoJCWhjZWxsKCJSZXBhaXIiKS4NCgkJaGNlbGwoIkJhY2t1cCIpLg0KCQloY2VsbCgiRHJvcCIpDQoJKTsNCg0KCQlpZigkc3FsdmVyc2lvblsndmVyc2lvbiddID49ICczLjIzJykgew0KCQkJJG5vID0gMDsNCgkJCSRyb3dfdXNhZ2UgPSAwOw0KCQkJJGRhdGFfdXNhZ2UgPSAwOw0KCQkJJGluZGV4X3VzYWdlID0gIDA7DQoJCQkkb3ZlcmhlYWRfdXNhZ2UgPSAwOw0KCQkJJGFsbHRhYnMgPSBhcnJheSgpOw0KDQoJCQkkdGFibGVzc3RhdHVzID0gZ2V0Um93cygiU0hPVyBUQUJMRSBTVEFUVVMiKTsNCgkJCWZvcmVhY2goJHRhYmxlc3N0YXR1cyBhcyAgJHRhYmxlc3RhdHVzKSB7DQoJCQkJZXh0cmFjdCgkdGFibGVzdGF0dXMpOw0KDQoJCQkJJHEgPSAiU0hPVyBLRVlTIEZST00gYCIuJE5hbWUuImAiOw0KCQkJCXNhZmVfcXVlcnkoJHEpOw0KCQkJCSRteXNxbEVycm5vID0gbXlzcWxfZXJybm8oKTsNCgkJCQkkYWxsdGFic1tdID0gJE5hbWU7DQoNCgkJCQkkY29sb3IgPSAoJG15c3FsRXJybm8gIT0gMCkgPyAnIHN0eWxlPSJjb2xvcjojRDEwMDAwOyInIDogJyBzdHlsZT0iY29sb3I6IzRCOUYwMDsiJzsNCgkJCQkkY29sb3IyID0gKCREYXRhX2ZyZWUgPiAwKSA/ICcgc3R5bGU9ImNvbG9yOiNEMTAwMDA7IicgOiAnIHN0eWxlPSJjb2xvcjojNEI5RjAwOyInOw0KCQkJCSRzdHlsZSA9ICgkbm8lMiA9PSAwKSA/ICcgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNlZWU7IicgOiAnJzsNCg0KCQkJCSRubysrOw0KCQkJCSRyb3dfdXNhZ2UgKz0gJFJvd3M7DQoJCQkJJGRhdGFfdXNhZ2UgKz0gJERhdGFfbGVuZ3RoOw0KCQkJCSRpbmRleF91c2FnZSArPSAgJEluZGV4X2xlbmd0aDsNCgkJCQkkb3ZlcmhlYWRfdXNhZ2UgKz0gJERhdGFfZnJlZTsNCg0KCQkJCWVjaG8NCgkJCQl0cigNCgkJCQkJdGQoJG5vKS4NCgkJCQkJdGQoaHJlZigkTmFtZSwgImluZGV4LnBocD9ldmVudD1yc3Nfc3FsX3J1biZhbXA7dG49Ii4kTmFtZSkpLg0KCQkJCQl0ZCgiICIuJFJvd3MpLg0KCQkJCQl0ZChwcmV0dHlGaWxlU2l6ZSgkRGF0YV9sZW5ndGgpKS4NCgkJCQkJdGQocHJldHR5RmlsZVNpemUoJEluZGV4X2xlbmd0aCkpLg0KCQkJCQl0ZChwcmV0dHlGaWxlU2l6ZSgkRGF0YV9sZW5ndGggKyAkSW5kZXhfbGVuZ3RoKSkuDQoJCQkJCXRkYShwcmV0dHlGaWxlU2l6ZSgkRGF0YV9mcmVlKSwgJGNvbG9yMikuDQoJCQkJCXRkYSgiICIuJG15c3FsRXJybm8sICRjb2xvcikuDQoJCQkJCXRkKGhyZWYoIlJlcGFpciIsICJpbmRleC5waHA/ZXZlbnQ9cnNzX2RiX21hbiZhbXA7cmVwX3RhYmxlPSIuJE5hbWUpKS4NCgkJCQkJdGQoaHJlZigiQmFja3VwIiwgImluZGV4LnBocD9ldmVudD1yc3NfZGJfYmsmYW1wO2JrPTEmYW1wO2JrX3RhYmxlPSIuJE5hbWUpLg0KCQkJCQknPHRkPjxhIGhyZWY9ImluZGV4LnBocD9ldmVudD1yc3NfZGJfbWFuJmFtcDtkcm9wX3RhYmxlPScuJE5hbWUuJyIgIG9uY2xpY2s9InJldHVybiB2ZXJpZnkoXCcnLmdUeHQoJ2FyZV95b3Vfc3VyZScpLidcJykiPkRyb3A8L2E+PC90ZD4nKSwgJHN0eWxlDQoJCQkJKTsNCgkJCX0NCg0KCQkJZWNobw0KCQkJdHIoDQoJCQkJaGNlbGwoIlRvdGFsIikuDQoJCQkJaGNlbGwoJG5vLiIgVGFibGVzIikuDQoJCQkJaGNlbGwobnVtYmVyX2Zvcm1hdCgkcm93X3VzYWdlKSkuDQoJCQkJaGNlbGwocHJldHR5RmlsZVNpemUoJGRhdGFfdXNhZ2UpKS4NCgkJCQloY2VsbChwcmV0dHlGaWxlU2l6ZSgkaW5kZXhfdXNhZ2UpKS4NCgkJCQloY2VsbChwcmV0dHlGaWxlU2l6ZSgkZGF0YV91c2FnZSArICRpbmRleF91c2FnZSkpLg0KCQkJCWhjZWxsKHByZXR0eUZpbGVTaXplKCRvdmVyaGVhZF91c2FnZSkpLg0KCQkJCWhjZWxsKCkuDQoJCQkJdGRhKGhyZWYoc3Ryb25nKCJSZXBhaXIgQWxsIiksICJpbmRleC5waHA/ZXZlbnQ9cnNzX2RiX21hbiZhbXA7cmVwX2FsbD0iLmltcGxvZGUoIiwiLCRhbGx0YWJzKSksICcgc3R5bGU9InRleHQtYWxpZ246Y2VudGVyOyIgY29sc3Bhbj0iMyInKSwgJHN0eWxlDQoJCQkpOw0KDQoJCX0gZWxzZSB7DQoJCQllY2hvDQoJCQl0cigNCgkJCQl0ZGEoIkNvdWxkIE5vdCBTaG93IFRhYmxlIFN0YXR1cyBCZWNhdXNlIFlvdXIgTVlTUUwgVmVyc2lvbiBJcyBMb3dlciBUaGFuIDMuMjMuIiwgJyBzdHlsZT0idGV4dC1hbGlnbjpjZW50ZXI7IiBjb2xzcGFuPTE0IicpDQoJCQkpOw0KCQl9DQoNCmVjaG8NCgl0cigNCgkJdGRhKGhyZWYoIlJ1biBTUUwiLCAiaW5kZXgucGhwP2V2ZW50PXJzc19zcWxfcnVuIiksICcgc3R5bGU9InRleHQtYWxpZ246Y2VudGVyOyIgY29sc3Bhbj0iMTQiJykNCgkpLg0KCWVuZFRhYmxlKCk7DQp9DQoNCmZ1bmN0aW9uIHJzc19zcWxfcnVuKCRldmVudCwgJHN0ZXApIHsNCiAgcGFnZXRvcCgiUnVuIFNRTCBRdWVyeSIpOw0KICAkdGV4dD0iIjsNCiAgJHJzZFtdPSIiOw0KICAkc3FsX3F1ZXJ5Mj0iIjsNCg0KICBpZiAoZ3BzKCJ0biIpKSB7DQogICAgJHRxID0gInNlbGVjdCAqIGZyb20gIi5ncHMoInRuIik7DQogIH0NCg0KICBpZiAoZ3BzKCJzcWxfcXVlcnkiKSB8fCBncHMoInRuIikpIHsNCiAgICAkc3FsX3F1ZXJpZXMyID0gKGdwcygic3FsX3F1ZXJ5IikpID8gdHJpbShncHMoInNxbF9xdWVyeSIpKSA6IHRyaW0oJHRxKTsNCiAgICAkdG90YWxxdWVyeWNvdW50ID0gMDsNCiAgICAkc3VjY2Vzc3F1ZXJ5ID0gMDsNCiAgICBpZigkc3FsX3F1ZXJpZXMyKSB7DQogICAgICAkc3FsX3F1ZXJpZXMgPSBhcnJheSgpOw0KICAgICAgJHNxbF9xdWVyaWVzMiA9IGV4cGxvZGUoIlxuIiwgJHNxbF9xdWVyaWVzMik7DQogICAgICBmb3JlYWNoKCRzcWxfcXVlcmllczIgYXMgJHNxbF9xdWVyeTIpIHsNCiAgICAgICAgJHNxbF9xdWVyeTIgPSB0cmltKHN0cmlwc2xhc2hlcygkc3FsX3F1ZXJ5MikpOw0KICAgICAgICAkc3FsX3F1ZXJ5MiA9IHByZWdfcmVwbGFjZSgiL1tcclxuXSsvIiwgJycsICRzcWxfcXVlcnkyKTsNCiAgICAgICAgaWYoIWVtcHR5KCRzcWxfcXVlcnkyKSkgew0KICAgICAgICAgICRzcWxfcXVlcmllc1tdID0gJHNxbF9xdWVyeTI7DQogICAgICAgIH0NCiAgICAgIH0NCg0KICAgICAgZm9yZWFjaCgkc3FsX3F1ZXJpZXMgYXMgJHNxbF9xdWVyeSkgew0KICAgICAgICBpZiAocHJlZ19tYXRjaCgiL15cXHMqKGluc2VydHx1cGRhdGV8cmVwbGFjZXxkZWxldGV8Y3JlYXRlfHRydW5jYXRlKSAvaSIsJHNxbF9xdWVyeSkpIHsNCiAgICAgICAgICAkcnVuX3F1ZXJ5ID0gc2FmZV9xdWVyeSgkc3FsX3F1ZXJ5KTsNCiAgICAgICAgICBpZighJHJ1bl9xdWVyeSkgew0KICAgICAgICAgICAgJHRleHQgLj0gZ3JhZihteXNxbF9lcnJvcigpLCAnIHN0eWxlPSJjb2xvcjojRDEwMDAwOyInKTsNCiAgICAgICAgICAgICR0ZXh0IC49IGdyYWYoJHNxbF9xdWVyeSwgJyBzdHlsZT0iY29sb3I6I0QxMDAwMDsiJyk7DQogICAgICAgICAgfSBlbHNlIHsNCiAgICAgICAgICAgICRzdWNjZXNzcXVlcnkrKzsNCiAgICAgICAgICAgICR0ZXh0IC49IGdyYWYoJHNxbF9xdWVyeSwgJyBzdHlsZT0iY29sb3I6IzRCOUYwMDsiJyk7DQogICAgICAgICAgfQ0KICAgICAgICAgICR0b3RhbHF1ZXJ5Y291bnQrKzsNCiAgICAgICAgfSBlbHNlaWYgKHByZWdfbWF0Y2goIi9eXFxzKihzZWxlY3QpIC9pIiwkc3FsX3F1ZXJ5KSkgew0KICAgICAgICAgICRydW5fcXVlcnkgPSBzYWZlX3F1ZXJ5KCRzcWxfcXVlcnkpOw0KICAgICAgICAgIGlmKCRydW5fcXVlcnkpICRzdWNjZXNzcXVlcnkrKzsNCiAgICAgICAgICAgIGlmICgkcnVuX3F1ZXJ5ICYmIG15c3FsX251bV9yb3dzKCRydW5fcXVlcnkpID4gMCkgew0KDQogICAgICAgICAgICAgIC8qIGdldCBjb2x1bW4gbWV0YWRhdGEgKi8NCiAgICAgICAgICAgICAgJGkgPSAwOw0KICAgICAgICAgICAgICAkaGVhZGVycyA9ICIiOw0KICAgICAgICAgICAgICB3aGlsZSAoJGkgPCBteXNxbF9udW1fZmllbGRzKCRydW5fcXVlcnkpKSB7DQogICAgICAgICAgICAgICAgICRtZXRhID0gbXlzcWxfZmV0Y2hfZmllbGQoJHJ1bl9xdWVyeSwgJGkpOw0KICAgICAgICAgICAgICAgICAkaGVhZGVycy49aGNlbGwoJG1ldGEtPm5hbWUpOw0KICAgICAgICAgICAgICAgICAkaSsrOw0KICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgJHJzZFtdID0NCiAgICAgICAgICAgICAgJzxkaXYgY2xhc3M9InNjcm9sbFdyYXBwZXIiPicuc3RhcnRUYWJsZSgnbGlzdCcsICcnLCAnc2Nyb2xsYWJsZScpLg0KICAgICAgICAgICAgICAnPHRoZWFkPicudHIoJGhlYWRlcnMpLic8L3RoZWFkPjx0Ym9keT4nOw0KDQogICAgICAgICAgICAgIHdoaWxlICgkYSA9IG15c3FsX2ZldGNoX2Fzc29jKCRydW5fcXVlcnkpKSAkb3V0W10gPSAkYTsNCiAgICAgICAgICAgICAgbXlzcWxfZnJlZV9yZXN1bHQoJHJ1bl9xdWVyeSk7DQoNCiAgICAgICAgICAgICAgZm9yZWFjaCAoJG91dCBhcyAkYikgew0KICAgICAgICAgICAgICAgICRkYXRhID0gIiI7DQogICAgICAgICAgICAgICAgZm9yZWFjaCAoJGIgYXMgJGYpIHsNCiAgICAgICAgICAgICAgICAgICRkYXRhLj10ZCgkZik7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICRyc2RbXSA9IHRyKCRkYXRhKTsNCiAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICRyc2RbXSA9ICc8L3Rib2R5PicuZW5kVGFibGUoKS4nPC9kaXY+Jy5icjsNCiAgICAgICAgICAgICAgJG91dCA9IGFycmF5KCk7DQogICAgICAgICAgICB9IGVsc2Ugew0KICAgICAgICAgICAgICAkdGV4dCAuPSBncmFmKG15c3FsX2Vycm9yKCksICcgc3R5bGU9ImNvbG9yOiNEMTAwMDA7IicpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICR0ZXh0IC49IGdyYWYoJHNxbF9xdWVyeSwgJyBzdHlsZT0iY29sb3I6I0QxMDAwMDsiJyk7DQogICAgICAgICAgJHRvdGFscXVlcnljb3VudCsrOw0KICAgICAgICB9IGVsc2VpZiAocHJlZ19tYXRjaCgiL15cXHMqKGRyb3B8c2hvd3xncmFudCkgL2kiLCRzcWxfcXVlcnkpKSB7DQogICAgICAgICAgJHRleHQgLj0gZ3JhZigkc3FsX3F1ZXJ5LiIgLSBRVUVSWSBUWVBFIE5PVCBTVVBQT1JURUQiLCAnIHN0eWxlPSJjb2xvcjojRDEwMDAwOyInKTsNCiAgICAgICAgICAkdG90YWxxdWVyeWNvdW50Kys7DQogICAgICAgIH0NCiAgICAgIH0NCiAgICAgICR0ZXh0IC49IGdyYWYoJHN1Y2Nlc3NxdWVyeS4iLyIuJHRvdGFscXVlcnljb3VudC4iIFF1ZXJ5KHMpIEV4ZWN1dGVkIFN1Y2Nlc3NmdWxseSIsICcgc3R5bGU9ImNvbG9yOiMwMDY5RDE7IicpOw0KICAgIH0NCiAgfQ0KDQogIGVjaG8NCiAgc3RhcnRUYWJsZSgnZWRpdCcpLg0KICB0cigNCiAgICB0ZCgNCiAgICAgIGZvcm0oDQogICAgICAgIGdyYWYoIkVhY2ggcXVlcnkgbXVzdCBiZSBvbiBhIHNpbmdsZSBsaW5lLiAgWW91IG1heSBydW4gbXVsdGlwbGUgcXVlcmllcyBhdCBvbmNlIGJ5IHN0YXJ0aW5nIGEgbmV3IGxpbmUuIi5ici4iU3VwcG9ydGVkIHF1ZXJ5IHR5cGVzIGluY2x1ZGUgU0VMRUNULCBJTlNFUlQsIFVQREFURSwgQ1JFQVRFLCBSRVBMQUNFLCBhbmQgREVMRVRFLiIpLg0KICAgICAgICBncmFmKCJXQVJOSU5HOiBBbGwgU1FMIHJ1biBpbiB0aGlzIHdpbmRvdyB3aWxsIGltbWVkaWF0ZWx5IGFuZCBwZXJtYW5lbnRseSBjaGFuZ2UgeW91ciBkYXRhYmFzZS4iLCAnIHN0eWxlPSJmb250LXdlaWdodDpib2xkOyInKS4NCiAgICAgICAgdGV4dF9hcmVhKCdzcWxfcXVlcnknLCcyMDAnLCc1NTAnLCRzcWxfcXVlcnkyKS5ici4NCiAgICAgICAgZklucHV0KCdzdWJtaXQnLCdydW4nLGdUeHQoJ1J1bicpLCdwdWJsaXNoJykuaHJlZigiR28gdG8gRGF0YWJhc2UgTWFuYWdlciIsICJpbmRleC5waHA/ZXZlbnQ9cnNzX2RiX21hbiIpLg0KICAgICAgICBlSW5wdXQoJ3Jzc19zcWxfcnVuJyksICcnLCAnIHZlcmlmeShcJycuZ1R4dCgnYXJlX3lvdV9zdXJlJykuJ1wnKSInDQogICAgICApDQogICAgKQ0KICApLg0KICB0cigNCiAgICB0ZCgNCiAgICAgICAgZ3JhZigkdGV4dC5ici5pbXBsb2RlKCcnLCAkcnNkKSkNCiAgICApDQogICkuDQogIGVuZFRhYmxlKCk7DQoNCn0NCmZ1bmN0aW9uIHByZXR0eUZpbGVTaXplICgkYnl0ZXMpIHsNCiAgaWYgKCRieXRlcyA8IDEwMjQpIHsNCiAgICAgIHJldHVybiAiJGJ5dGVzIGJ5dGVzIjsNCiAgfSBlbHNlIGlmIChzdHJsZW4oJGJ5dGVzKSA8PSA5ICYmIHN0cmxlbigkYnl0ZXMpID49IDcpIHsNCiAgICAgIHJldHVybiBudW1iZXJfZm9ybWF0KCRieXRlcyAvIDEwNDg1NzYsMikuIiBNQiI7DQogIH0gZWxzZWlmIChzdHJsZW4oJGJ5dGVzKSA+PSAxMCkgew0KICAgICAgcmV0dXJuIG51bWJlcl9mb3JtYXQoJGJ5dGVzIC8gMTA3Mzc0MTgyNCwyKS4iIEdCIjsNCiAgfQ0KICByZXR1cm4gbnVtYmVyX2Zvcm1hdCgkYnl0ZXMgLyAxMDI0LDIpLiIgS0IiOw0KfQ0KDQpmdW5jdGlvbiBpc19mb2xkZXJfZW1wdHkoJGRpcikgew0KICBpZiAoaXNfZGlyKCRkaXIpKSB7DQogICAgJGRsPW9wZW5kaXIoJGRpcik7DQogICAgaWYgKCRkbCkgew0KICAgICAgd2hpbGUoJG5hbWUgPSByZWFkZGlyKCRkbCkpIHsNCiAgICAgICAgaWYgKCFpc19kaXIoIiRkaXIvJG5hbWUiKSkgew0KICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgICBicmVhazsNCiAgICAgIH0NCiAgICB9DQogICAgY2xvc2VkaXIoJGRsKTsNCiAgICB9DQogICAgcmV0dXJuIHRydWU7DQogIH0gZWxzZSByZXR1cm4gdHJ1ZTsNCn0NCiI7czo0OiJ0eXBlIjtzOjE6IjEiO3M6MzoibWQ1IjtzOjMyOiJiYTA0ZjM2MDcyMTY1YmU5ZmI2Mjk0MTkxMjA1NDI4MiI7fQ==

Yiannis
——————————
NeMe | hblack.art | EMAP | A Sea change | Toolkit of Care
I do my best editing after I click on the submit button.

Offline

#208 2008-02-04 17:58:40

swf
Plugin Author
From: Saskatoon, Saskatchewan Canada
Registered: 2004-06-21
Posts: 109
Website

Re: [plugin] [ORPHAN] rss_admin_db_manager - database backups and more

thank you

Offline

#209 2008-02-05 20:20:37

jordi
Member
From: Barcelona
Registered: 2005-09-14
Posts: 94
Website

Re: [plugin] [ORPHAN] rss_admin_db_manager - database backups and more

same problem here, thanks for the fix.

Offline

#210 2008-02-06 00:28:28

rsskga
Member
From: San Francisco, CA USA
Registered: 2007-06-23
Posts: 50
Website

Re: [plugin] [ORPHAN] rss_admin_db_manager - database backups and more

iblastoff wrote:

rob hasn’t posted in this forum for nearly half a year now. anyone know if hes still active with TXP-related stuffs?

Not sure about that – but I did send him an email about his shopping cart solution on popularweddingfavors.com a while back through his consulting site. He emailed me back within about a week.


Swim Kitten, A Magento Site
When nothing but incredibly revealing dresses and swimwear will do

Offline

Board footer

Powered by FluxBB