# Name: rah_urltolink v0.4.4 # Type: Client side plugin # Convert text URLs into (X)HTML links # Author: Jukka Svahn # URL: http://rahforum.biz # Recommended load order: 5 # ..................................................................... # This is a plugin for Textpattern - http://textpattern.com/ # To install: textpattern > admin > plugins # Paste the following text into the 'Install plugin' box: # ..................................................................... YToxMTp7czo0OiJuYW1lIjtzOjEzOiJyYWhfdXJsdG9saW5rIjtzOjY6ImF1dGhvciI7czox MToiSnVra2EgU3ZhaG4iO3M6MTA6ImF1dGhvcl91cmkiO3M6MTk6Imh0dHA6Ly9yYWhmb3J1 bS5iaXoiO3M6NzoidmVyc2lvbiI7czo1OiIwLjQuNCI7czoxMToiZGVzY3JpcHRpb24iO3M6 MzY6IkNvbnZlcnQgdGV4dCBVUkxzIGludG8gKFgpSFRNTCBsaW5rcyI7czo0OiJoZWxwIjtz OjYzODk6Igk8aDE+cmFoX3VybHRvbGluazwvaDE+CgoJPHA+VGhlIHBsdWdpbiBpcyBhYmxl IGF1dG9tYXRpY2FsbHkgY2hhbmdlIHRleHQgZm9ybWF0ZWQgPHNwYW4gY2xhc3M9ImNhcHMi PlVSTDwvc3Bhbj5zIGludG8gcmVhbCBjbGlja2FibGUgKFgpSFRNTCBsaW5rcy4gVGhpcyBj YW4gYmUgYWNjb21wbGlzaGVkIGJ5IHNpbXBseSB3cmFwcGluZyB0aGUgY29udGVudCB3aXRo IGEgb25lIHJhaC1wcmVmaXhlZCBUZXh0cGF0dGVybiB0YWcuIEdlbmVyYXRlZCA8c3BhbiBj bGFzcz0iY2FwcyI+VVJMPC9zcGFuPnMmIzgyMTc7IG91dHB1dCBpcyBjdXN0b21pemFibGUg YnkgdGhlIHRhZyYjODIxNztzIGF0dHJpYnV0ZXMuPC9wPgoKCTx1bD4KCQk8bGk+VmVyc2lv bjogMC40LjQ8L2xpPgoJCTxsaT5VcGRhdGVkOiAyMDA5LzA5LzA3IDE6MzAgUE0gPHNwYW4g Y2xhc3M9ImNhcHMiPkdNVDwvc3Bhbj4rMzwvbGk+Cgk8L3VsPgoKCTxoMz5UYWJsZSBvZiBD b250ZW50czwvaDM+CgoJPHVsPgoJCTxsaT48YSBocmVmPSIjaW50cm8tYW5kLWRlc2NyaXB0 aW9uIj5JbnRybyBhbmQgZGVzY3JpcHRpb248L2E+PC9saT4KCQk8bGk+PGEgaHJlZj0iI2xp c3Qtb2YtZmVhdHVyZXMiPkxpc3Qgb2YgZmVhdHVyZXM8L2E+PC9saT4KCQk8bGk+PGEgaHJl Zj0iI3JlcXVpcmVtZW50cyI+UmVxdWlyZW1lbnRzPC9hPjwvbGk+CgkJPGxpPjxhIGhyZWY9 IiNpbnN0YWxsYXRpb24tYW5kLXVzYWdlIj5JbnN0YWxsYXRpb24gYW5kIHVzYWdlPC9hPjwv bGk+CgkJPGxpPjxhIGhyZWY9IiNhdHRyaWJ1dGVzIj5BdHRyaWJ1dGVzPC9hPjwvbGk+CgkJ PGxpPjxhIGhyZWY9IiNleGFtcGxlIj5FeGFtcGxlPC9hPjwvbGk+CgkJPGxpPjxhIGhyZWY9 IiNjaGFuZ2Vsb2ciPkNoYW5nZWxvZzwvYT48L2xpPgoJPC91bD4KCgk8aDMgaWQ9ImludHJv LWFuZC1kZXNjcmlwdGlvbiI+SW50cm8gYW5kIGRlc2NyaXB0aW9uPC9oMz4KCgk8cD5BIFRl eHRwYXR0ZXJuIHBsdWdpbiB1c2VkIHRvIGF1dG9tYXRpY2FsbHkgY2hhbmdlIHRleHQgPHNw YW4gY2xhc3M9ImNhcHMiPlVSTDwvc3Bhbj5zIGludG8gcmVhbCBjbGlja2FibGUgKFgpSFRN TCBsaW5rcywgYWthIDxjb2RlPmE8L2NvZGU+IGVsZW1lbnRzLiBUaGUgb3V0cHV0IHByb3Zp ZGVkIGJ5IHRoZSBwbHVnaW4gY2FuIGJlIGN1c3RvbWl6ZWQgYnkgYXR0cmlidXRlcyB0aGF0 IGFsbG93IHRvIHNldCAoWClIVE1MIGNsYXNzZXMsIGxhYmVscywgcmVscyBhbmQgbGluayB0 aXRsZXMuPC9wPgoKCTxwPkZvciBleGFtcGxlIDxjb2RlPmh0dHA6Ly9leGFtcGxlLmNvbTwv Y29kZT4gd291bGQgYmUgY29udmVydGVkIGludG8gPGNvZGU+Jmx0O2EgaHJlZj0mcXVvdDto dHRwOi8vZXhhbXBsZS5jb20mcXVvdDsmZ3Q7d3d3LmV4YW1wbGUuY29tJmx0Oy9hJmd0Ozwv Y29kZT4uPC9wPgoKCTxoMyBpZD0ibGlzdC1vZi1mZWF0dXJlcyI+TGlzdCBvZiBmZWF0dXJl czwvaDM+CgoJPHVsPgoJCTxsaT5Db252ZXJ0cyA8c3BhbiBjbGFzcz0iY2FwcyI+VVJMPC9z cGFuPnMgdG8gKFgpSFRNTCBsaW5rcy48L2xpPgoJCTxsaT5TdXBwb3J0cyBhbmQgY29udmVy dHMgZm9sbG93aW5nIDxzcGFuIGNsYXNzPSJjYXBzIj5VUkw8L3NwYW4+IGZvcm1hdHM6Cgk8 dWw+CgkJPGxpPmh0dHA6Ly9leGFtcGxlLmNvbTwvbGk+CgkJPGxpPmh0dHBzOi8vZXhhbXBs ZS5jb208L2xpPgoJCTxsaT5mdHA6Ly9leGFtcGxlLmNvbTwvbGk+CgkJPGxpPmZ0cHM6Ly9l eGFtcGxlLmNvbTwvbGk+CgkJPGxpPnd3dy5leGFtcGxlLmNvbTwvbGk+CgkJPGxpPmpvaG4u ZG9lQGV4YW1wbGUuY29tPC9saT4KCTwvdWw+PC9saT4KCTwvdWw+CgoJPGgzIGlkPSJyZXF1 aXJlbWVudHMiPlJlcXVpcmVtZW50czwvaDM+CgoJPHVsPgoJCTxsaT48c3BhbiBjbGFzcz0i Y2FwcyI+UEhQPC9zcGFuPiA0LjMuMCs8L2xpPgoJCTxsaT5UZXh0cGF0dGVybiA0LngueCs8 L2xpPgoJPC91bD4KCgk8aDMgaWQ9Imluc3RhbGxhdGlvbi1hbmQtdXNhZ2UiPkluc3RhbGxh dGlvbiBhbmQgdXNhZ2U8L2gzPgoKCTxwPlRoZSBnZW5lcmFsIGJlaGF2aW9yIHN0YW5kczog cGFzdGUgcGx1Z2luIGNvZGUgdG8gdGhlIHBsdWdpbiBpbnN0YWxsZXIgdGV4dGFyZWEgYW5k IHJ1biB0aGUgYXV0b21hdGljIHNldHVwLiBUaGVuIGp1c3QgYWN0aXZhdGUgdGhlIHBsdWdp biBhbmQgeW91IGFyZSByZWFkeSB0byB1c2UgbmV3IHRhZ3MgdGhhdCBwbHVnaW4gaW5jbHVk ZXMgbGlrZSBvdGhlcnMuPC9wPgoKCTxwPkZvciB1c2FnZSwgYmFzaWNhbGx5IGp1c3QgcHV0 IHdyYXAgKGNvbnRhaW4pIGNvbnRlbnQgaW4geW91ciBwYWdlcy9mb3Jtcy9hcnRpY2xlcyB3 aXRoIDxjb2RlPiZsdDt0eHA6cmFoX3VybHRvbGluayZndDsmbHQ7L3R4cDpyYWhfdXJsdG9s aW5rJmd0OzwvY29kZT4tIGNvbnRhaW5lciB0YWdzLCBhbmQgY3VzdG9taXplIG91dHB1dCB3 aXRoIHlvdXIgZGVzaXJlZCBhdHRyaWJ1dGVzLiBBbGwgZW1haWwvd3d3L2h0dHAvaHR0cHMv ZnRwL2Z0cHMtPHNwYW4gY2xhc3M9ImNhcHMiPlVSTDwvc3Bhbj5zIGFmdGVyIHdpdGggc3Bh Y2UgKHNwYWNlIGlzIHRoZSBmYXN0ZXN0IGFuZCBzaW1wbGVzdCB3YXkgdG8gdmFsaWRhdGUg bGlua3MgYW5kIGF2b2lkIHR1cm5pbmcgbGlua3MgaW50byBsaW5rcyBhZ2FpbikgaW4gdGhl IGNvbnRhaW5lZCBjb250ZW50IHdpbGwgYmUgdHVybmVkIGludG8gbGlua3MuPC9wPgoKCTxo MyBpZD0iYXR0cmlidXRlcyI+QXR0cmlidXRlczwvaDM+CgoJPHA+VGhlIHRhZyBpcyA8Y29k ZT4mbHQ7dHhwOnJhaF91cmx0b2xpbmsmZ3Q7PC9jb2RlPiBhbmQgYXR0cmlidXRlcyBmb3Ig aXQgZm9sbG93LjwvcD4KCgk8cD48c3Ryb25nPmxhbmd1YWdlPC9zdHJvbmc+PGJyIC8+Cjxz cGFuIGNsYXNzPSJjYXBzIj5YSFRNTDwvc3Bhbj4gbGluayYjODIxNztzLCA8Y29kZT5hPC9j b2RlPiwgbGFuZ3VhZ2UgYXR0cmlidXRlL3ZhbHVlIDxjb2RlPmZpLCBlbiwgZGUsIHNlPC9j b2RlPi48YnIgLz4KRXhhbXBsZTogPGNvZGU+bGFuZ3VhZ2U9JnF1b3Q7ZW4mcXVvdDs8L2Nv ZGU+IERlZmF1bHQ6IDxjb2RlPiZxdW90OyZxdW90OzwvY29kZT48L3A+CgoJPHA+PHN0cm9u Zz5jbGFzczwvc3Ryb25nPjxiciAvPgo8c3BhbiBjbGFzcz0iY2FwcyI+WEhUTUw8L3NwYW4+ IGNsYXNzIGFzc2lnbmVkIHRvIGxpbmtzLjxiciAvPgpFeGFtcGxlOiA8Y29kZT5jbGFzcz0m cXVvdDtsaW5rJnF1b3Q7PC9jb2RlPiBEZWZhdWx0OiA8Y29kZT4mcXVvdDsmcXVvdDs8L2Nv ZGU+PC9wPgoKCTxwPjxzdHJvbmc+bGFiZWw8L3N0cm9uZz48YnIgLz4KTGluayYjODIxNztz IGFuY2hvciBlbGVtZW50OiBsYWJlbC4gSWYgdW5zZXQgKGVtcHR5KSwgbGluayB3aXRoIG91 dCBsZWFkaW5nIDxjb2RlPmh0dHA8L2NvZGU+IHdpbGwgYmUgdXNlZCBhcyBhbiBhbmNob3Iu PGJyIC8+CkV4YW1wbGU6IDxjb2RlPmxhYmVsPSZxdW90O1tsaW5rXSZxdW90OzwvY29kZT4g RGVmYXVsdDogPGNvZGU+JnF1b3Q7JnF1b3Q7PC9jb2RlPjwvcD4KCgk8cD48c3Ryb25nPnJl bDwvc3Ryb25nPjxiciAvPgpMaW5rJiM4MjE3O3MgcmVsIGF0dHJpYnV0ZS48YnIgLz4KRXhh bXBsZTogPGNvZGU+cmVsPSZxdW90O25vZm9sbG93JnF1b3Q7PC9jb2RlPiBEZWZhdWx0OiA8 Y29kZT4mcXVvdDsmcXVvdDs8L2NvZGU+PC9wPgoKCTxwPjxzdHJvbmc+dGl0bGU8L3N0cm9u Zz48YnIgLz4KTGluayYjODIxNztzIHRpdGxlIGF0dHJpYnV0ZS48YnIgLz4KRXhhbXBsZTog PGNvZGU+dGl0bGU9JnF1b3Q7Q2xpY2sgbGluayZxdW90OzwvY29kZT4gRGVmYXVsdDogPGNv ZGU+JnF1b3Q7JnF1b3Q7PC9jb2RlPjwvcD4KCgk8cD48c3Ryb25nPnByb3RvY29sczwvc3Ry b25nPjxiciAvPgpTZWxlY3QgYXBwZW5kaW5nIHByb3RvY29scyB0aGF0IGFyZSBpbmNsdWRl ZCBpbiA8c3BhbiBjbGFzcz0iY2FwcyI+VVJMPC9zcGFuPi10by1MaW5rIGNvbnZlcnNpb24u IFZhbGlkIHZhbHVlczogPGNvZGU+aHR0cDwvY29kZT4sIDxjb2RlPmh0dHBzPC9jb2RlPiwg PGNvZGU+ZnRwPC9jb2RlPiwgPGNvZGU+ZnRwczwvY29kZT4sIDxjb2RlPnd3dzwvY29kZT4s IGFuZCA8Y29kZT5tYWlsPC9jb2RlPi4gQ29tbWEgc2VwZXJhdGVkIGlmIG11bHRpcGxlLjxi ciAvPgpEZWZhdWx0OiA8Y29kZT5wcm90b2NvbHM9JnF1b3Q7aHR0cCxodHRwcyxmdHAsZnRw cyx3d3csbWFpbCZxdW90OzwvY29kZT4gRXhhbXBsZTogPGNvZGU+JnF1b3Q7d3d3LGh0dHAm cXVvdDs8L2NvZGU+PC9wPgoKCTxoMyBpZD0iZXhhbXBsZSI+RXhhbXBsZTwvaDM+Cgo8cHJl Pjxjb2RlPiZsdDt0eHA6cmFoX3VybHRvbGluayZndDsKCVdlIGhhdmUgc29tZSBjb250ZW50 IGhlcmUuCgkmbHQ7dHhwOmFydGljbGUgLyZndDsKJmx0Oy90eHA6cmFoX3VybHRvbGluayZn dDsKPC9jb2RlPjwvcHJlPgoKCTxoMyBpZD0iY2hhbmdlbG9nIj5DaGFuZ2Vsb2c8L2gzPgoK CTxwPjxzdHJvbmc+VmVyc2lvbiAwLjQuNDwvc3Ryb25nPjwvcD4KCgk8dWw+CgkJPGxpPkZp eGVkIHRoZSBpc3N1ZSBmcm9tIDAuNC4zIHRvIDAuNC4xLiBOb3cgPHNwYW4gY2xhc3M9ImNh cHMiPlVSTDwvc3Bhbj5zIGluIGxpbmtzIGFyZSBub3QgdHVybmVkIGludG8gbGlua3MsIG9u bHkgbGlua3MgcmlnaHQgYWZ0ZXIgPGNvZGU+Jmd0OzwvY29kZT4gb3Igc3BhY2UgYXJlIGNv bnZlcnRlZC48L2xpPgoJPC91bD4KCgk8cD48c3Ryb25nPlZlcnNpb24gMC40LjM8L3N0cm9u Zz48L3A+CgoJPHVsPgoJCTxsaT5GaXhlZDogUHV0IGJhY2sgdGhlIGFwcGVuZGluZyBzcGFj ZSByZXF1aXJlbWVudCwgdG8gYXZvaWQgdHVybmluZyA8c3BhbiBjbGFzcz0iY2FwcyI+VVJM PC9zcGFuPnMgaW4gbGluayB0byBsaW5rcy48L2xpPgoJPC91bD4KCgk8cD48c3Ryb25nPlZl cnNpb24gMC40LjI8L3N0cm9uZz48L3A+CgoJPHVsPgoJCTxsaT5DaGFuZ2VkOiBSZW1vdmVk IHR3byBsZXR0ZXIgZG9tYWluIHJlcXVpcmVtZW50LjwvbGk+Cgk8L3VsPgoKCTxwPjxzdHJv bmc+VmVyc2lvbiAwLjQuMTwvc3Ryb25nPjwvcD4KCgk8dWw+CgkJPGxpPkZpeGVkOiBOb3cg YWRkaXRpb25hbCBhdHRyaWJ1dGVzICg8Y29kZT5yZWw8L2NvZGU+LCA8Y29kZT5sYWJlbDwv Y29kZT4gZXRjKSBhcmUgZXNjYXBlZCBjb3JyZWN0bHkuIFRoYW5rcyA8YSBocmVmPSJodHRw Oi8vZm9ydW0udGV4dHBhdHRlcm4uY29tL3ZpZXd0b3BpYy5waHA/cGlkPTIxNDQ3MCNwMjE0 NDcwIj50eHBuaXN0aS48L2E+PC9saT4KCTwvdWw+CgoJPHA+PHN0cm9uZz5WZXJzaW9uIDAu NDwvc3Ryb25nPjwvcD4KCgk8dWw+CgkJPGxpPkFkZGVkIDxjb2RlPnByb3RvY29sczwvY29k ZT4gYXR0cmlidXRlLiBOb3cgeW91IGNhbiBzZWxlY3Qgd2hhdCB0eXBlIG9mIDxzcGFuIGNs YXNzPSJjYXBzIj5VUkw8L3NwYW4+IHRvIHR1cm4gaW50byBsaW5rLjwvbGk+CgkJPGxpPkZp eGVkOiBOb3cgd29uJiM4MjE3O3QgZWF0IHBlbmRpbmcgc3BhY2VzIGJlZm9yZSBsaW5rcy48 L2xpPgoJCTxsaT5GaXhlZDogTm93IDxzcGFuIGNsYXNzPSJjYXBzIj5VUkw8L3NwYW4+cyBy aWdodCBhZnRlciAoWClIVE1MIHRhZ3MgKDxjb2RlPiZndDs8L2NvZGU+IGNoYXIpLCBkb3Rz LCBhbmQgc28gb24sIGFyZSB0dXJuZWQgaW50byBsaW5rczogTm8gbW9yZSByZXF1aXJlcyBh cHBlbmRpbmcgc3BhY2UuIEV2ZW4gbGluayBtaWRkbGUgb2YgYSB3b3JkIGlzIHR1cm5lZCBp bnRvIGxpbmsuPC9saT4KCTwvdWw+CgoJPHA+PHN0cm9uZz5WZXJzaW9uIDAuMzwvc3Ryb25n PjwvcD4KCgk8dWw+CgkJPGxpPkZpeGVkOiBOb3cgJiM4MjIwO3NwZWNpYWwgY2hhcnMmIzgy MjE7LCBpbmNsdWRpbmcgPGNvZGU+PzwvY29kZT4sIDxjb2RlPiZhbXA7PC9jb2RlPiwgPGNv ZGU+KDwvY29kZT4sIDxjb2RlPik8L2NvZGU+LCB3b24mIzgyMTc7dCBjdXQgdGhlIDxzcGFu IGNsYXNzPSJjYXBzIj5VUkw8L3NwYW4+LjwvbGk+CgkJPGxpPkZpeGVkOiBOb3cgKFgpSFRN TCB0YWdzIGRvbiYjODIxNzt0IGdldCBjdXQgaW50byB0aGUgPHNwYW4gY2xhc3M9ImNhcHMi PlVSTDwvc3Bhbj4gd2hlbiBhIHRhZyBpcyBsb2NhdGVkIHJpZ2h0IGFmdGVyIHRoZSA8c3Bh biBjbGFzcz0iY2FwcyI+VVJMPC9zcGFuPi48L2xpPgoJCTxsaT5JbXByb3ZlZCBwYXJzaW5n IHNwZWVkLjwvbGk+Cgk8L3VsPgoKCTxwPjxzdHJvbmc+VmVyc2lvbiAwLjI8L3N0cm9uZz48 L3A+CgoJPHVsPgoJCTxsaT5NaW5vciA8c3BhbiBjbGFzcz0iY2FwcyI+UE9TSVg8L3NwYW4+ IHJlZ3VsYXIgZXhwcmVzc2lvbiB1cGRhdGU6IHVzZXMgc3Vic3RyaW5ncyBpbnN0ZWFkIG9m IGJsYXN0aW5nIHdob2xlIHN0cmluZzsgYXZvaWRzIHNvbWUgZmF1bHRzLjwvbGk+Cgk8L3Vs PgoKCTxwPjxzdHJvbmc+VmVyc2lvbiAwLjE8L3N0cm9uZz48L3A+CgoJPHVsPgoJCTxsaT5G aXJzdCByZWxlYXNlPC9saT4KCTwvdWw+IjtzOjQ6ImNvZGUiO3M6MjI0NDoiCSMjIyMjIyMj IyMjIyMjIyMjIw0KCSMNCgkjCXJhaF91cmx0b2xpbmstcGx1Z2luIGZvciBUZXh0cGF0dGVy bg0KCSMJdmVyc2lvbiAwLjQuNA0KCSMJYnkgSnVra2EgU3ZhaG4NCgkjCWh0dHA6Ly9yYWhm b3J1bS5iaXoNCgkjDQoJIyMjIyMjIyMjIyMjIyMjIyMjIw0KDQoJZnVuY3Rpb24gcmFoX3Vy bHRvbGlua19idWlsZCgkcGVuZGluZz0nJywkcHJvdG9jb2w9JycsJHVyaT0nJywkYXR0cz0n JywkbGFiZWw9JycsJGFsbD0nJykgew0KCQkkcHJvdG9jb2wgPSB0cmltKCRwcm90b2NvbCk7 DQoJCQ0KCQlzd2l0Y2goJHByb3RvY29sKSB7DQoJCQljYXNlICdodHRwOi8vJzoNCgkJCWNh c2UgJ2h0dHBzOi8vJzoNCgkJCQkkdXJsID0gJHByb3RvY29sLiR1cmk7DQoJCQkJYnJlYWs7 DQoJCQljYXNlICdmdHA6Ly8nOg0KCQkJY2FzZSAnZnRwczovLyc6DQoJCQkJJHVybCA9ICRw cm90b2NvbC4kdXJpOw0KCQkJCSR1cmkgPSAkcHJvdG9jb2wuJHVyaTsNCgkJCQlicmVhazsN CgkJCWNhc2UgJ3d3dy4nOg0KCQkJCSR1cmwgPSAnaHR0cDovLycuJHByb3RvY29sLiR1cmk7 DQoJCQkJJHVyaSA9ICRwcm90b2NvbC4kdXJpOw0KCQkJCWJyZWFrOw0KCQkJY2FzZSAnJzoN CgkJCQkkdXJsID0gJyc7DQoJCQkJYnJlYWs7DQoJCQlkZWZhdWx0Og0KCQkJCWlmKHN1YnN0 cigkcHJvdG9jb2wsLTEpID09ICdAJykgew0KCQkJCQkkdXJsID0gICdtYWlsdG86Jy4kcHJv dG9jb2wuJHVyaTsNCgkJCQkJJHVyaSA9ICRwcm90b2NvbC4kdXJpOw0KCQkJCX0gZWxzZSAk dXJsID0gJyc7DQoJCX0NCgkJcmV0dXJuIA0KCQkJKCR1cmwpID8gJHBlbmRpbmcuJzxhIGhy ZWY9IicuJHVybC4nIicuJGF0dHMuJz4nLigoJGxhYmVsKSA/ICRsYWJlbCA6ICR1cmkpLic8 L2E+JyA6ICRhbGw7DQoJfQ0KDQoJZnVuY3Rpb24gcmFoX3VybHRvbGluaygkYXR0cywkdGhp bmcpIHsNCgkJZXh0cmFjdChsQXR0cyhhcnJheSgNCgkJCSdsYW5ndWFnZScgPT4gJycsDQoJ CQknY2xhc3MnID0+ICcnLA0KCQkJJ2xhYmVsJyA9PiAnJywNCgkJCSdyZWwnID0+ICcnLA0K CQkJJ3RpdGxlJyA9PiAnJywNCgkJCSdwcm90b2NvbHMnID0+ICdodHRwLGh0dHBzLGZ0cCxm dHBzLHd3dyxtYWlsJw0KCQkpLCRhdHRzKSk7DQoJCQ0KCQkkY29udGVudCA9IHBhcnNlKCR0 aGluZyk7DQoJCSRlcmVnID0gcmFoX3VybHRvbGlua19lcmVnKCRwcm90b2NvbHMpOw0KCQlp ZihlbXB0eSgkZXJlZykpIHJldHVybiAkY29udGVudDsNCgkJDQoJCSRsaW5rID0gDQoJCQko KCRsYW5ndWFnZSkgPyAnIGxhbmd1YWdlPVwiJy4kbGFuZ3VhZ2UuJ1wiJyA6ICcnKS4NCgkJ CSgoJGNsYXNzKSA/ICcgY2xhc3M9XCInLiRjbGFzcy4nXCInIDogJycpLg0KCQkJKCgkcmVs KSA/ICcgcmVsPVwiJy4kcmVsLidcIicgOiAnJykuDQoJCQkoKCR0aXRsZSkgPyAnIHRpdGxl PVwiJy4kdGl0bGUuJ1wiJyA6ICcnKTsNCgkJDQoJCSRjb250ZW50ID0gcHJlZ19yZXBsYWNl KA0KCQkJIi8iLg0KCQkJIihefCB8CSkiLg0KCQkJIigiLiRlcmVnLiIpIi4NCgkJCSIoKFth LXpBLVowLTktXStcLikrIi4NCgkJCSJbYS16QS1aMC05LVwuXC9cX1w/XCVcI1wmXD1cO1x+ XCFcKFwpXSspL2UiLA0KCQkJInJhaF91cmx0b2xpbmtfYnVpbGQoXCIkMVwiLFwiJDJcIixc IiQzXCIsXCIkbGlua1wiLFwiJGxhYmVsXCIsXCIkMFwiKSINCgkJCSwNCgkJCScgJy4kY29u dGVudC4nICcNCgkJKTsNCgkJcmV0dXJuIHRyaW0oJGNvbnRlbnQpOw0KCX0NCg0KCWZ1bmN0 aW9uIHJhaF91cmx0b2xpbmtfZXJlZygkcHJvdG9jb2xzPScnKSB7DQoJCSRwcm90b2NvbHMg PSBleHBsb2RlKCcsJywkcHJvdG9jb2xzKTsNCgkJZm9yZWFjaCgkcHJvdG9jb2xzIGFzICRw cm90b2NvbCkgew0KCQkJJHByb3RvY29sID0gdHJpbSgkcHJvdG9jb2wpOw0KCQkJaWYoaW5f YXJyYXkoJHByb3RvY29sLGFycmF5KCdodHRwJywnaHR0cHMnLCdmdHAnLCdmdHBzJykpKSB7 DQoJCQkJJG91dFtdID0gJHByb3RvY29sIC4gJzpcL1wvJzsNCgkJCQljb250aW51ZTsNCgkJ CX0NCgkJCWlmKCRwcm90b2NvbCA9PSAnd3d3Jykgew0KCQkJCSRvdXRbXSA9ICRwcm90b2Nv bDsNCgkJCQljb250aW51ZTsNCgkJCX0NCgkJCWlmKCRwcm90b2NvbCA9PSAnbWFpbCcpIHsN CgkJCQkkb3V0W10gPSAnW2EtekEtWjAtOS1dK1wufFthLXpBLVowLTlcLi1dK0AnOw0KCQkJ CWNvbnRpbnVlOw0KCQkJfQ0KCQl9DQoJCWlmKGlzc2V0KCRvdXQpKSANCgkJCXJldHVybiBp bXBsb2RlKCd8Jywkb3V0KTsNCgl9IjtzOjQ6InR5cGUiO3M6MToiMCI7czo1OiJmbGFncyI7 czoxOiIwIjtzOjU6Im9yZGVyIjtzOjE6IjUiO3M6MzoibWQ1IjtzOjMyOiI1ZDU4ZTRmYjll YjNlNGNjZDg3YjIzZjNiODkzZWZmYyI7fQ==