# wlk_flem v0.3 # This plugin is for quick flash movie embed via the article writing tabby thingy. (with click to embed/run swfobject) # Walker Hamilton # http://www.walkerhamilton.com # ...................................................................... # This is a plugin for Textpattern - http://textpattern.com/ # To install: textpattern > admin > plugins # Paste the following text into the 'Install plugin' box: # ...................................................................... YTo5OntzOjc6InZlcnNpb24iO3M6MzoiMC4zIjtzOjY6ImF1dGhvciI7czoxNToiV2Fsa2Vy IEhhbWlsdG9uIjtzOjEwOiJhdXRob3JfdXJpIjtzOjI5OiJodHRwOi8vd3d3LndhbGtlcmhh bWlsdG9uLmNvbSI7czoxMToiZGVzY3JpcHRpb24iO3M6MTE2OiJUaGlzIHBsdWdpbiBpcyBm b3IgcXVpY2sgZmxhc2ggbW92aWUgZW1iZWQgdmlhIHRoZSBhcnRpY2xlIHdyaXRpbmcgdGFi YnkgdGhpbmd5LiAod2l0aCBjbGljayB0byBlbWJlZC9ydW4gc3dmb2JqZWN0KSI7czo0OiJ0 eXBlIjtpOjA7czo0OiJuYW1lIjtzOjg6Indsa19mbGVtIjtzOjQ6ImhlbHAiO3M6NDU5MDoi CTxoMT53bGtfZmxlbTwvaDE+Cgk8cD52MC4yOiBhY3R1YWxseSBzdXBwb3J0aW5nIHRoZSBw YXJhbXN0ciBzZXR0aW5nLiBBbHNvLCBjb3JyZWN0ZWQgdGhlIGhlbHAgZG9jcy48YnIgLz4K djAuMzogRml4ZWQgdGhlIGhlbHAgZG9jcyBzb21lIG1vcmUgKHdyb25nIHBhcmFtZXRlciBt ZW50aW9uZWQgaW4gc29tZSBwYXJ0cyk8L3A+Cgk8cD5UaGlzIHBsdWdpbiBpcyBmb3IgcXVp Y2sgZmxhc2ggbW92aWUgZW1iZWQgdmlhIHRoZSBhcnRpY2xlIHdyaXRpbmcgdGFiYnkgdGhp bmd5LiAod2l0aCBjbGljayB0byBlbWJlZC9ydW4gc3dmb2JqZWN0KTwvcD4KPGNvZGU+Jmx0 O3R4cDp3bGtfZmxlbSBmbGFzaG1vdmllPSIzIiBwb3N0ZXI9IjUiIGZsYXNodmVyc2lvbj0i OSIgcGFyYW1zdHI9IiRqc28kLmFkZFBhcmFtKCJzYWxpZ24iLCJ0bCIpOyIgIC8mZ3Q7PC9j b2RlPgoJPGgyPkluc3RhbGxhdGlvbjwvaDI+Cgk8cD5TaW5jZSB5b3UgY2FuIHJlYWQgdGhp cyBoZWxwLCB5b3UgaGF2ZSBpbnN0YWxsZWQgdGhlIHBsdWdpbiB0byB0eHAuPGJyIC8+CkRp ZCB5b3UgYWN0aXZhdGUgaXQ/PC9wPgoJPGgyPlVzYWdlPC9oMj4KCTxwPlBsYWNlIHRoZSB3 bGtfZmxlbSB0YWcgaW4gYW4gYXJ0aWNsZSwgZm9ybSBvciBwYWdlLjwvcD4KCTxwPkdvIHRv IDxlbT5hZG1pbjwvZW0+IC0+IDxlbT5wcmVmZXJlbmNlczwvZW0+IC0+IDxlbT5hZHZhbmNl ZCBwcmVmZXJlbmNlczwvZW0+IGFuZCBjcmVhdGUgYSBjdXN0b20gZm9ybSBmaWVsZCBjYWxs ZWQgZmxhc2htb3ZpZS48L3A+Cgk8cD5APGJyIC8+Cjx0eHA6d2xrX2ZsZW0gd2lkdGg9IjMy MCIgaGVpZ2h0PSIyNDAiIC8+PGJyIC8+CkA8L3A+Cgk8cD5JdCB0YWtlcyBhIGZldyBvcHRp b25zOjwvcD4KCTx1bD4KCQk8bGk+PHN0cm9uZz53aWR0aDwvc3Ryb25nPiAmIzgyMTE7IFNw ZWNpZmllcyB3aWR0aC4gRGVmYXVsdHMgdG86IDMyMHB4IChjaGVja3MgZm9yIGN1c3RvbV9m aWVsZCAmIzgyMjA7d2lkdGgmIzgyMjE7KS48L2xpPgoJCTxsaT48c3Ryb25nPmhlaWdodDwv c3Ryb25nPiAmIzgyMTE7IFNwZWNpZmllcyBoZWlnaHQuIERlZmF1bHRzIHRvOiAyNTZweCAo Y2hlY2tzIGZvciBjdXN0b21fZmllbGQgJiM4MjIwO2hlaWdodCYjODIyMTspLjwvbGk+CgkJ PGxpPjxzdHJvbmc+Ymdjb2xvcjwvc3Ryb25nPiAmIzgyMTE7IENoZWNrcyB0byBzZWUgaWYg eW91dmUgc2V0IGEgaGV4IGNvbG9yIGZvciB0aGUgYmFja2dyb3VuZCBiZWhpbmQgdGhlIGZs YXNoIG1vdmllLiBEZWZhdWx0cyB0bzogRkZGRkZGPC9saT4KCQk8bGk+PHN0cm9uZz5zY2Fs ZTwvc3Ryb25nPiAmIzgyMTE7IENoZWNrcyB0byBzZWUgaWYgeW91JiM4MjE3O3ZlIGRlZmlu aWVkIHdoYXQgdGhlIGZsYXNoIHNob3VsZCBkby4gRGVmYXVsdHMgdG86IG5vc2NhbGU8L2xp PgoJCTxsaT48c3Ryb25nPmZsYXNodmVyc2lvbjwvc3Ryb25nPiAmIzgyMTE7IFRoZSBtaW5p bXVtIHZlcnNpb24gb2YgZmxhc2ggdGhhdCBzd2ZvYmplY3Qgd2lsbCBkZWxpdmVyIHRoZSBt b3ZpZSB0by4gRGVmYXVsdHMgdG86IDkgKHllYWgsIHRoYXQmIzgyMTc7cyByaWdodCwgb25s eSB0aGUgbmV3ZXN0IGZvciB1cy4pPC9saT4KCQk8bGk+PHN0cm9uZz5mbGFzaG1vdmllPC9z dHJvbmc+ICYjODIxMTsgVGhpcyBpcyB1c2VkIHRvIHNwZWNpZnkgdGhlIGZsYXNoIG1vdmll IGluIHRoZSB0YWcuPC9saT4KCQk8bGk+PHN0cm9uZz5wb3N0ZXI8L3N0cm9uZz4gJiM4MjEx OyBUaGlzIGlzIHVzZWQgaWYgeW91IHdhbnQgdG8gc3BlY2lmeSBhIHBvc3RlciBmb3IgY2xp Y2sgdG8gZW1iZWQgYWN0aW9uLjwvbGk+CgkJPGxpPjxzdHJvbmc+bW92aWVmaWVsZG5hbWU8 L3N0cm9uZz4gJiM4MjExOyBUaGlzIGFsbG93cyB5b3UgdG8gc3BlY2lmeSBhIHBhcnRpY3Vs YXIgY3VzdG9tX2ZpZWxkIGJ5IG5hbWUgdGhhdCB3bGtfZmxlbSBzaG91bGQgY2hlY2sgaW4g dG8gc2VlIGlmIGEgbW92aWUgaXMgc2V0LiAoZGVmYXVsdHMgdG8gJiM4MjIwO2ZsYXNobW92 aWUmIzgyMjE7KTwvbGk+CgkJPGxpPjxzdHJvbmc+cG9zdGVyZmllbGRuYW1lPC9zdHJvbmc+ ICYjODIxMTsgVGhpcyBhbGxvd3MgeW91IHRvIHNwZWNpZnkgYSBwYXJ0aWN1bGFyIGN1c3Rv bV9maWVsZCBieSBuYW1lIHRoYXQgd2xrX2ZsZW0gc2hvdWxkIGNoZWNrIGluIHRvIHNlZSBp ZiBhIHBvc3RlciBpbWFnZSBpcyBzZXQuIChkZWZhdWx0cyB0byAmIzgyMjA7cG9zdGVyJiM4 MjIxOyk8L2xpPgoJCTxsaT48c3Ryb25nPndpZHRoZmllbGRuYW1lPC9zdHJvbmc+ICYjODIx MTsgVGhpcyBhbGxvd3MgeW91IHRvIHNwZWNpZnkgYSBwYXJ0aWN1bGFyIGN1c3RvbV9maWVs ZCBieSBuYW1lIHRoYXQgd2xrX2ZsZW0gc2hvdWxkIGNoZWNrIGluIGZvciB0aGUgZmxhc2gg ZW1iZWQgd2lkdGguIChkZWZhdWx0cyB0byAmIzgyMjA7d2lkdGgmIzgyMjE7KTwvbGk+CgkJ PGxpPjxzdHJvbmc+aGVpZ2h0ZmllbGRuYW1lPC9zdHJvbmc+ICYjODIxMTsgVGhpcyBhbGxv d3MgeW91IHRvIHNwZWNpZnkgYSBwYXJ0aWN1bGFyIGN1c3RvbV9maWVsZCBieSBuYW1lIHRo YXQgd2xrX2ZsZW0gc2hvdWxkIGNoZWNrIGluIGZvciB0aGUgZmxhc2ggZW1iZWQgaGVpZ2h0 LiAoZGVmYXVsdHMgdG8gJiM4MjIwO2hlaWdodCYjODIyMTspPC9saT4KCTwvdWw+Cgk8dWw+ CgkJPGxpPjxzdHJvbmc+cGFyYW1zdHI8L3N0cm9uZz4gJiM4MjExOyBtYW51YWxseSBzZXQg YWRkUGFyYW1zIG9yIHdoYXRldmVyIG90aGVyIGZ1bmN0aW9ucyBzd2ZvYmplY3Qgc3VwcG9y dHMuIFNob3VsZCBsb29rIGxpa2UgamF2YXNjcmlwdCwgZXhjZXB0IHdpdGggJGpzbyQgaW5z dGVhZCBvZiB0aGUgb2JqZWN0IG5hbWUuCgk8aDI+RW1iZWRkaW5nIGEgc3BlY2lmaWMgbW92 aWUgaW4gYSBwYWdlOjwvaDI+Cgk8cD5JZiB5b3Ugc3BlY2lmeSB2aWRlbyBhcyBhbiBhdHRy aWJ1dGUgeW91IGNhbiB1c2UgdGhlIGZpbGUgbnVtYmVyIGZyb20gdGhlIGZpbGVzIHRhYiAo aWYgeW91IHVwbG9hZGVkIHRoZSB2aWRlbyBpbiB0aGlzIG1hbm5lcik8L3A+Cgk8cD5iYy4u IDx0eHA6d2xrX2ZsZW0gZmxhc2htb3ZpZT0iNiIgLz48L3A+Cgk8cD5vciB5b3UgY2FuIHVz ZSB0aGUgZnVsbCBwYXRoIHRvIHRoZSBmaWxlLjwvcD4KCTxwPmJjLi4gPHR4cDp3bGtfZmxl bSBmbGFzaG1vdmllPSJodHRwOi8vd3d3Lm15ZG9tYWluLmNvbS9tb3ZpZXMvbXlmbGFzaG1v dmllLnN3ZiIgd2lkdGg9IjMyMCIgaGVpZ2h0PSIyNDAiIC8+PC9wPgoJPHA+b3I8L3A+Cgk8 cD5iYy4uIDx0eHA6d2xrX2ZsZW0gZmxhc2htb3ZpZT0iL21vdmllcy9teWZsYXNobW92aWUu c3dmIiB3aWR0aD0iMzIwIiBoZWlnaHQ9IjI0MCIgLz48L3A+Cgk8aDI+QXR0YWNoaW5nIGEg Zmxhc2htb3ZpZSB0byBhbiBhcnRpY2xlOjwvaDI+Cgk8cD5JbiB0aGlzIGNhc2UsIHlvdSB1 c2UgdGhhdCBjdXN0b20gJiM4MjE2O2ZsYXNobW92aWUmIzgyMTc7IGZpZWxkIGFuZCBlbnRl ciB0aGUgZnVsbCBwYXRoIG9yIHlvdXIgZmlsZSBudW1iZXIgaW4gdGhhdCBmaWVsZC4gVGhl biB0aGUgZm9ybSBiZWluZyB1c2VkIHRvIG91dHB1dCB0aGUgYXJ0aWNsZSBzaW1wbHkgbmVl ZHMgPHR4cDp3bGtfZmxlbSAvPiBpbiBpdCBzb21ld2hlcmUgKHdpdGggYW55IG90aGVyIGF0 dHJpYnV0ZXMgeW91IHdhbnQgdG8gc3BlY2lmeSAmIzgyMTE7IGUuZy4gd2lkdGgsIGhlaWdo dCkuPC9wPgoJPHA+TXkgZm9ybSBsb29rcyBsaWtlIHRoaXM6PC9wPgoJPHA+YmMuLiA8aDM+ PHR4cDpwZXJtbGluaz48dHhwOnRpdGxlIC8+PC90eHA6cGVybWxpbms+PC9oMz48YnIgLz4K PHR4cDp3bGtfZmxlbSBwb3N0ZXI9IjQiIC8+PGJyIC8+Cjx0eHA6Ym9keSAvPjwvcD4KCTxw PlRoYXQgb3V0cHV0cyB0aGUgYXJ0aWNsZSBvbiB0aGUgcGFnZSB3aGVyZSB0aGlzIGZvcm0g aXMgdXNlZCB3aXRoIHRoZSB0aXRsZSBvZiB0aGUgYXJ0aWNsZSBhcyBhIGhlYWRlciB0aGVu IGEgZGl2IHdpdGggaW1hZ2UgIzQgZnJvbSB0aGUgaW1hZ2VzIHRhYiBpbiBpdC4gVGhlbiB0 aGUgdGV4dCB0aGF0IHdhcyBpbiB0aGUgYm9keSBmaWVsZCBvZiB0aGUgYXJ0aWNsZSBmb3Jt LjwvcD4KCTxoMj5MaW5raW5nIHVwIHRoZSBqYXZhc2NyaXB0LjwvaDI+Cgk8cD5Zb3UgbXVz dCBmaXJzdCB1cGxvYWQgPGEgaHJlZj0iaHR0cDovL2Jsb2cuZGVjb25jZXB0LmNvbS9zd2Zv YmplY3QvIj5zd2ZvYmplY3QuanM8L2E+IHRvIHlvdXIgc2VydmVyLiAoeW91JiM4MjE3O2xs IG5lZWQgdG8gZG93bmxvYWQgaXQsIHVuemlwIGl0LCB0aGVuIHVwbG9hZCBpdCk8L3A+Cgk8 cD5UaGVuIHB1dCB0aGlzIGluIHRoZSBoZWFkZXIgb2YgdGhlIHBhZ2UgeW91IHdpc2ggdG8g ZGlzcGxheSBtb3ZpZXMgb24gKGV2ZXJ5IHBhZ2UmIzgyMzA7Lnllcyk6PC9wPgoJPHA+YmMu LiA8dHhwOndsa19mbGVtc2NyaXB0bGluayBwYXRoPSJodHRwOi8vbXlkb21haW4uY29tL3Ro ZS9wYXRoL3RvL3N3Zm9iamVjdC5qcyIgLz48L3A+Cgk8cD5XaGVyZSB5b3UgZmluZCAmIzgy MjA7aHR0cDovL215ZG9tYWluLmNvbS90aGUvcGF0aC90by9zd2ZvYmplY3QuanMmIzgyMjE7 LCBtYWtlIHN1cmUgeW91IHB1dCB0aGUgZnVsbCBwYXRoIHRvIHRoZSBmaWxlLjwvcD4KCgog IjtzOjQ6ImNvZGUiO3M6MTAzMzI6IglmdW5jdGlvbiB3bGtfZmxlbSgkYXR0cykKCXsKCQln bG9iYWwgJHByZWZzOwoJCWdsb2JhbCAkcGVybWxpbmtfbW9kZTsKCQlnbG9iYWwgJHRoaXNh cnRpY2xlOwoKCQlleHRyYWN0KGxBdHRzKGFycmF5KAoJCQknZmxhc2htb3ZpZSc9PicnLAoJ CQkncG9zdGVyJz0+JycsCgkJCSdwbXNldCc9Pid0cnVlJywKCQkJJ2JnY29sb3InPT4gKCFl bXB0eSgkcHJlZnNbJ3dsa19mbGVtX2JnY29sb3InXSkpPyRwcmVmc1snd2xrX2ZsZW1fYmdj b2xvciddOidGRkZGRkYnLAoJCQkndmVyc2lvbic9PiAoIWVtcHR5KCRwcmVmc1snd2xrX2Zs ZW1fZmxhc2h2ZXJzaW9uJ10pKT8kcHJlZnNbJ3dsa19mbGVtX2ZsYXNodmVyc2lvbiddOic5 JywKCQkJJ3dpZHRoJz0+ICghZW1wdHkoJHByZWZzWyd3bGtfZmxlbV93aWR0aCddKSk/JHBy ZWZzWyd3bGtfZmxlbV93aWR0aCddOiczMjAnLAoJCQknaGVpZ2h0Jz0+ICghZW1wdHkoJHBy ZWZzWyd3bGtfZmxlbV9oZWlnaHQnXSkpPyRwcmVmc1snd2xrX2ZsZW1faGVpZ2h0J106JzI1 NicsCgkJCSdzY2FsZSc9PiAoIWVtcHR5KCRwcmVmc1snd2xrX2ZsZW1fc2NhbGUnXSkpPyRw cmVmc1snd2xrX2ZsZW1fc2NhbGUnXTonbm9zY2FsZScsCgkJCSdwYXJhbXN0cic9PiAoIWVt cHR5KCRwcmVmc1snd2xrX2ZsZW1fcGFyYW1zdHInXSkpPyRwcmVmc1snd2xrX2ZsZW1fcGFy YW1zdHInXTonJywKCQkJJ21vdmllZmllbGRuYW1lJz0+KCFlbXB0eSgkcHJlZnNbJ3dsa19m bGVtX21vdmllZmllbGRuYW1lJ10pKT8kcHJlZnNbJ3dsa19mbGVtX21vdmllZmllbGRuYW1l J106J2ZsYXNobW92aWUnLAoJCQkncG9zdGVyZmllbGRuYW1lJz0+KCFlbXB0eSgkcHJlZnNb J3dsa19mbGVtX3Bvc3RlcmZpZWxkbmFtZSddKSk/JHByZWZzWyd3bGtfZmxlbV9wb3N0ZXJm aWVsZG5hbWUnXToncG9zdGVyJywKCQkJJ3dpZHRoZmllbGRuYW1lJz0+KCFlbXB0eSgkcHJl ZnNbJ3dsa19mbGVtX3dpZHRoZmllbGRuYW1lJ10pKT8kcHJlZnNbJ3dsa19mbGVtX3dpZHRo ZmllbGRuYW1lJ106J3dpZHRoJywKCQkJJ2hlaWdodGZpZWxkbmFtZSc9PighZW1wdHkoJHBy ZWZzWyd3bGtfZmxlbV9oZWlnaHRmaWVsZG5hbWUnXSkpPyRwcmVmc1snd2xrX2ZsZW1faGVp Z2h0ZmllbGRuYW1lJ106J2hlaWdodCcsCiAgICAgICAgICAgICdkZWJ1Zyc9PiBmYWxzZQoJ CSksJGF0dHMpKTsKCgkJLyoKCgkJCUNoZWNraW5nIHRvIG1ha2Ugc3VyZSB0aGUgZmxhc2ht b3ZpZSBpcyBzZXQgYW5kIHRoZXJlCgoJCSovCgkJaWYoIWVtcHR5KCRmbGFzaG1vdmllKSkK CQl7CgkJCWlmKHByZWdfbWF0Y2goIi9cLy8iLCAkZmxhc2htb3ZpZSkpCgkJCXsKCQkJCQlp ZihmaWxlX2V4aXN0cygkZmxhc2htb3ZpZSkpCgkJCQkJewoJCQkJCQkkZmxhc2htb3ZpZSA9 IGh1LiRmbGFzaG1vdmllOwoJCQkJCQkkbXNnW10gPSAndHhwOndsa19mbGVtOiBmbGFzaG1v dmllPScuJGF0dHNbJ2ZsYXNobW92aWUnXS4nLiBGaWxlIGZvdW5kIGFuZCB1c2VkIHdpdGgg dHhwIHByZWYgcGF0aCBmcm9tIHJvb3QgJy4kcHJlZnNbInBhdGhfZnJvbV9yb290Il07CgkJ CQkJfSBlbHNlIHsKCQkJCQkJJGZsYXNobW92aWUgPSAkZmxhc2htb3ZpZTsKCQkJCQkJJG1z Z1tdID0gJ3R4cDp3bGtfZmxlbSBXYXJuaW5nOiBmbGFzaG1vdmllPScuJGF0dHNbJ2ZsYXNo bW92aWUnXS4nLiBQbHVnaW4gY2FuXCd0IHZlcmlmeSBmaWxlIGV4aXN0ZW5zaW9uLiBNYWtl IHN1cmUgdGhhdCBnaXZlbiBmaWxlICcuJGF0dHNbJ2ZsYXNobW92aWUnXS4nIGV4aXN0cyBh bmQgaGFzIHZhaWxkIHBhdGguJzsKCQkJCQl9CgkJCX0gZWxzZSB7CgkJCQlpZihpc19udW1l cmljKCRmbGFzaG1vdmllKSkKCQkJCXsKCQkJCQkkZmxhc2htb3ZpZSA9IHdsa19mbGVtX2dl dF9maWxlKCdpZD0iJy5hZGRzbGFzaGVzKCRmbGFzaG1vdmllKS4nIicpOwoJCQkJCSRtc2db XSA9KCRmbGFzaG1vdmllID09IGZhbHNlKT8ndHhwOndsa19mbGVtIEVycm9yOiB2aWRlbz0n LiRhdHRzWyd2aWRlbyddLicuIE5vIGZpbGUgd2l0aCB0aGlzIGlkIGlzIHN0b3JlZCBpbiB0 eHAuJzonJzsKCQkJCX0gZWxzZSB7CgkJCQkJJGZsYXNobW92aWUgPSB3bGtfZmxlbV9nZXRf ZmlsZSgnZmlsZW5hbWU9IicuYWRkc2xhc2hlcygkZmxhc2htb3ZpZSkuJyInKTsKCQkJCQkk bXNnW10gPSgkZmxhc2htb3ZpZSA9PSBmYWxzZSk/J3R4cDp3bGtfZmxlbSBFcnJvcjogdmlk ZW89Jy4kYXR0c1sndmlkZW8nXS4nLiBObyBmaWxlIHdpdGggdGhpcyBuYW1lIGlzIHN0b3Jl ZCBpbiB0eHAuJzonJzsKCQkJCX0KCQkJfQoJCX0gZWxzZSB7CgkJCWlmKCFlbXB0eSgkdGhp c2FydGljbGVbJGZsYXNobW92aWVmaWVsZG5hbWVdKSkKCQkJewoJCQkJaWYoaXNfbnVtZXJp YygkdGhpc2FydGljbGVbJGZsYXNobW92aWVmaWVsZG5hbWVdKSkKCQkJCXsKCQkJCQkJJGZs YXNobW92aWVmbGFzaG1vdmllID0gd2xrX2ZsZW1fZ2V0X2ZpbGUoJ2lkPSInLmFkZHNsYXNo ZXMoJHRoaXNhcnRpY2xlWyRmaWVsZG5hbWVdKS4nIicpOwoJCQkJCQkkbXNnW10gPSgkZmxh c2htb3ZpZWZsYXNobW92aWUgPT0gZmFsc2UpPyd0eHA6d2xrX2ZsZW0gRXJyb3I6IEN1c3Rv bUZpZWxkWycuJGZpZWxkbmFtZS4nXT0nLiR0aGlzYXJ0aWNsZVskZmllbGRuYW1lXS4nLiBO byBmaWxlIHdpdGggdGhpcyBpZCBpcyBzdG9yZWQgaW4gdHhwLic6Jyc7CgkJCQl9IGVsc2Ug aWYocHJlZ19tYXRjaCgiL1wvLyIsICR0aGlzYXJ0aWNsZVskZmxhc2htb3ZpZWZpZWxkbmFt ZV0pKSB7CgkJCQkJaWYoZmlsZV9leGlzdHMoJHRoaXNhcnRpY2xlWyRmbGFzaG1vdmllZmll bGRuYW1lXSkpCgkJCQkJewoJCQkJCQkkZmxhc2htb3ZpZSA9IGh1LiR0aGlzYXJ0aWNsZVsk Zmxhc2htb3ZpZWZpZWxkbmFtZV07CgkJCQkJCSRtc2dbXSA9ICd0eHA6d2xrX2ZsZW06IEN1 c3RvbUZpZWxkWycuJGZsYXNobW92aWVmaWVsZG5hbWUuJ109Jy4kdGhpc2FydGljbGVbJGZs YXNobW92aWVmaWVsZG5hbWVdLicuIEZpbGUgZm91bmQgYW5kIHVzZWQgd2l0aCB0eHAgcHJl ZiBwYXRoIGZyb20gcm9vdCcuJHByZWZzWyJwYXRoX2Zyb21fcm9vdCJdOwoJCQkJCX0gZWxz ZSB7CgkJCQkJCSRmbGFzaG1vdmllID0gJHRoaXNhcnRpY2xlWyRmbGFzaG1vdmllZmllbGRu YW1lXTsKCQkJCQkJJG1zZ1tdID0gJ3R4cDp3bGtfZmxlbSBXYXJuaW5nOiBDdXN0b21GaWVs ZFt2aWRlb109Jy4kdGhpc2FydGljbGVbJGZsYXNobW92aWVmaWVsZG5hbWVdLicuIE1ha2Ug c3VyZSB0aGF0IGdpdmVuIGZpbGUgZXhpc3RzIGFuZCBoYXMgdmFpbGQgcGF0aC4nOwoJCQkJ CX0KCQkJCX0gZWxzZSB7CgkJCQkJJGZsYXNobW92aWUgPSB3bGtfZmxlbV9nZXRfZmlsZSgn ZmlsZW5hbWU9IicuYWRkc2xhc2hlcygkdGhpc2FydGljbGVbJGZsYXNobW92aWVmaWVsZG5h bWVdKS4nIicpOwoJCQkJCSRtc2dbXSA9KCRmbGFzaG1vdmllID09IGZhbHNlKT8ndHhwOnds a19mbGVtIEVycm9yOiBDdXN0b21GaWVsZFsnLiRmbGFzaG1vdmllZmllbGRuYW1lLiddPScu JHRoaXNhcnRpY2xlWyRmbGFzaG1vdmllZmllbGRuYW1lXS4nLiBObyBmaWxlIHdpdGggdGhp cyBuYW1lIGlzIHN0b3JlZCBpbiB0eHAuJzonJzsKCQkJCX0KCQkJfSBlbHNlIHsKCQkJCSRt c2dbXSA9ICd0eHA6d2xrX2ZsZW0gRXJyb3I6IE5vIGZsYXNoIG1vdmllIGRlZmluZWQuIFVz ZSB0aGUgYXR0cmlidXRlIGZsYXNobW92aWUgb3IgYSBjdXN0b20tZmllbGQgbmFtZWQgZmxh c2htb3ZpZSB0byBkZWZpbmUgYSBmbGFzaCBmaWxlLic7CgkJCX0KCQl9CgkJLy9FbmQgdmlk ZW8gY2hlY2sKCgkJLyoKCgkJCUNoZWNraW5nIEZvciBQb3N0ZXJNb3ZpZSBiZWluZyBzZXQK CgkJKi8KCQlpZighZW1wdHkoJHBvc3RlcikpCgkJewoJCQlpZihwcmVnX21hdGNoKCIvXC8v IiwgJHBvc3RlcikpCgkJCXsKCQkJCQlpZihmaWxlX2V4aXN0cygkcG9zdGVyKSkKCQkJCQl7 CgkJCQkJCSRwb3N0ZXIgPSBodS4kcG9zdGVyOwoJCQkJCQkkbXNnW10gPSAndHhwOndsa19m bGVtOiBwb3N0ZXI9Jy4kYXR0c1sncG9zdGVyJ10uJy4gRmlsZSBmb3VuZCBhbmQgdXNlZCB3 aXRoIHR4cCBwcmVmIHBhdGggZnJvbSByb290Jy4kcHJlZnNbInBhdGhfZnJvbV9yb290Il07 CgkJCQkJfSBlbHNlIHsKCQkJCQkJJHBvc3RlciA9ICRwb3N0ZXI7CgkJCQkJCSRtc2dbXSA9 ICd0eHA6d2xrX2ZsZW0gV2FybmluZzogcG9zdGVyPScuJGF0dHNbJ3Bvc3RlciddLicuIFBs dWdpbiBjYW5cJ3QgdmVyaWZ5IGZpbGUgZXhpc3RlbmNlLiBNYWtlIHN1cmUgdGhhdCBnaXZl biBmaWxlICcuJGF0dHNbJ3Bvc3RlciddLicgZXhpc3RzIGFuZCBoYXMgdmFpbGQgcGF0aC4n OwoJCQkJCX0KCQkJfSBlbHNlIHsKCQkJCWlmKGlzX251bWVyaWMoJHBvc3RlcikpCgkJCQl7 CgkJCQkJJHBvc3RlciA9IHdsa19mbGVtX2dldF9mcm9udCgnaWQ9IicuYWRkc2xhc2hlcygk cG9zdGVyKS4nIicpOwoJCQkJCSRtc2dbXSA9KCRwb3N0ZXIgPT0gZmFsc2UpPyd0eHA6d2xr X2ZsZW0gRXJyb3I6IHZpZGVvPScuJGF0dHNbJ3Bvc3RlciddLicuIE5vIGltYWdlIG9yIGZp bGUgd2l0aCB0aGlzIGlkIGlzIHN0b3JlZCBpbiB0eHAuJzonJzsKCQkJCX0gZWxzZSB7CgkJ CQkJJHBvc3RlciA9IHdsa19mbGVtX2dldF9mcm9udCgnbmFtZT0iJy5hZGRzbGFzaGVzKCRw b3N0ZXIpLiciJyk7CgkJCQkJJG1zZ1tdID0oJHBvc3RlciA9PSBmYWxzZSk/J3R4cDp3bGtf ZmxlbSBFcnJvcjogdmlkZW89Jy4kYXR0c1sncG9zdGVyJ10uJy4gTm8gaW1hZ2Ugb3IgZmls ZSB3aXRoIHRoaXMgbmFtZSBpcyBzdG9yZWQgaW4gdHhwLic6Jyc7CgkJCQl9CgkJCX0KCQl9 IGVsc2UgewoJCQlpZighZW1wdHkoJHRoaXNhcnRpY2xlWyRwb3N0ZXJmaWVsZG5hbWVdKSkK CQkJewoJCQkJaWYocHJlZ19tYXRjaCgiL1wvLyIsICR0aGlzYXJ0aWNsZVskcG9zdGVyZmll bGRuYW1lXSkpCgkJCQl7CgkJCQkJaWYoZmlsZV9leGlzdHMoJHRoaXNhcnRpY2xlWyRwb3N0 ZXJmaWVsZG5hbWVdKSkKCQkJCQl7CgkJCQkJCSRwb3N0ZXIgPSBodS4kdGhpc2FydGljbGVb JHBvc3RlcmZpZWxkbmFtZV07CgkJCQkJCSRtc2dbXSA9ICd0eHA6d2xrX2ZsZW06IEN1c3Rv bUZpZWxkWycuJHBvc3RlcmZpZWxkbmFtZS4nXT0nLiR0aGlzYXJ0aWNsZVskcG9zdGVyZmll bGRuYW1lXS4nLiBGaWxlIGZvdW5kIGFuZCB1c2VkIHdpdGggdHhwIHByZWYgcGF0aCBmcm9t IHJvb3QnLiRwcmVmc1sicGF0aF9mcm9tX3Jvb3QiXTsKCQkJCQl9IGVsc2UgewoJCQkJCQkk cG9zdGVyID0gJHRoaXNhcnRpY2xlWyRwb3N0ZXJmaWVsZG5hbWVdOwoJCQkJCQkkbXNnW10g PSAndHhwOndsa19mbGVtIFdhcm5pbmc6IEN1c3RvbUZpZWxkWycuJHBvc3RlcmZpZWxkbmFt ZS4nXT0nLiR0aGlzYXJ0aWNsZVskcG9zdGVyZmllbGRuYW1lXS4nLiBNYWtlIHN1cmUgdGhh dCBnaXZlbiBmaWxlIGV4aXN0cyBhbmQgaGFzIHZhaWxkIHBhdGguJzsKCQkJCQl9CgkJCQl9 IGVsc2UgewoJCQkJCWlmKGlzX251bWVyaWMoJHRoaXNhcnRpY2xlWyRwb3N0ZXJmaWVsZG5h bWVdKSkKCQkJCQl7CgkJCQkJCSRwb3N0ZXIgPSB3bGtfZmxlbV9nZXRfZnJvbnQoJ2lkPSIn LmFkZHNsYXNoZXMoJHRoaXNhcnRpY2xlWyRwb3N0ZXJmaWVsZG5hbWVdKS4nIicsICRwbXR5 cGUpOwoJCQkJCQkkbXNnW10gPSgkcG9zdGVyID09IGZhbHNlKT8ndHhwOndsa19mbGVtIEVy cm9yOiBDdXN0b21GaWVsZFsnLiRwb3N0ZXJmaWVsZG5hbWUuJ109Jy4kdGhpc2FydGljbGVb JHBvc3RlcmZpZWxkbmFtZV0uJy4gTm8gZmlsZSB3aXRoIHRoaXMgaWQgaXMgc3RvcmVkIGlu IHR4cC4nOicnOwoJCQkJCX0gZWxzZXsKCQkJCQkJJHBvc3RlciA9IHdsa19mbGVtX2dldF9m cm9udCgnbmFtZT0iJy5hZGRzbGFzaGVzKCR0aGlzYXJ0aWNsZVskcG9zdGVyZmllbGRuYW1l XSkuJyInLCAkcG10eXBlKTsKCQkJCQkJJG1zZ1tdID0oJHBvc3RlciA9PSBmYWxzZSk/J3R4 cDp3bGtfZmxlbSBFcnJvcjogQ3VzdG9tRmllbGRbJy4kcG9zdGVyZmllbGRuYW1lLiddPScu JHRoaXNhcnRpY2xlWyRwb3N0ZXJmaWVsZG5hbWVdLicuIE5vIGZpbGUgd2l0aCB0aGlzIG5h bWUgaXMgc3RvcmVkIGluIHR4cC4nOicnOwoJCQkJCX0KCQkJCX0KCQkJfSBlbHNlIHsKCQkJ CSRwbXNldCA9IGZhbHNlOwoJCQl9CgkJfQoJCS8vZW5kIHBvc3RlciBjaGVjawoJCSRvdXQg PSBhcnJheSgpOwoJCSR1dWlkID0gc3Vic3RyKHN0cl9yZXBsYWNlKCcuJywgJycsIHVuaXFp ZCgnJywgdHJ1ZSkpLCAzLCAxMCk7CgoJCWlmKCRkZWJ1ZyAmJiAkZmxhc2htb3ZpZSAhPSAn JykKCQl7CgkJCWlmKCRwbXNldCkKICAgICAgICAgICAgewoJCQkJJG91dFtdPScKCQkJCQk8 ZGl2IGlkPSInLiR1dWlkLidmbGFzaHJlcGxhY2VtZW50IiBzdHlsZT0id2lkdGg6Jy4kd2lk dGguJztoZWlnaHQ6Jy4kaGVpZ2h0Lic7Ij4KCQkJCQkJPGEgaHJlZj0iamF2YXNjcmlwdDp2 b2lkKDApOyIgb25jbGljaz0iQ2wnLiR1dWlkLidJY2soKSI+PGltZyBzcmM9IicuJHBvc3Rl ci4nIiB3aWR0aD0iJy4kd2lkdGguJyIgaGVpZ2h0PSInLiRoZWlnaHQuJyIgYWx0PSJqcGVn IHRoYXQgd2lsbCBiZSByZXBsYWNlZCBieSBmbGFzaCIgdGl0bGU9ImNsaWNrIGhlcmUgdG8g c3RhcnQgZmxhc2ggY29udGVudCIgLz48L2E+CgkJCQkJPC9kaXY+CgkJCQkJJzsKCQkJfSBl bHNlIHsKCQkJCSRvdXRbXT0nCgkJCQkJPGRpdiBpZD0iJy4kdXVpZC4nZmxhc2hyZXBsYWNl bWVudCIgc3R5bGU9IndpZHRoOicuJHdpZHRoLic7aGVpZ2h0OicuJGhlaWdodC4nOyI+CgkJ CQkJCTxwPlNvcnJ5LCBidXQgeW91IGRvIG5vdCBoYXZlIHRoZSBtaW5pbXVtIHZlcnNpb24g KCcuJHZlcnNpb24uJykgb2YgZmxhc2ggcGxheWVyIHJlcXVpcmVkIHRvIHBsYXkgdGhpcyBm bGFzaCBtb3ZpZS4gWW91IGNhbiBpbnN0YWxsIG9yIHVwZ3JhZGUgZmxhc2ggPGEgaHJlZj0i aHR0cDovL3d3dy5hZG9iZS5jb20vc2hvY2t3YXZlL2Rvd25sb2FkL2Rvd25sb2FkLmNnaT9Q MV9Qcm9kX1ZlcnNpb249U2hvY2t3YXZlRmxhc2giPmhlcmU8L2E+LjwvcD4KCQkJCQk8L2Rp dj4KCQkJCQknOwoJCQl9CiAgICAgICAgICAgICRvdXRbXT0nCiAgICAgICAgICAgIAk8c2Ny aXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CgkJCSc7CiAgICAgICAgICAgIGlmKCRwbXNl dCkKICAgICAgICAgICAgewogICAgICAgICAgICAJJG91dFtdPSdmdW5jdGlvbiBDbCcuJHV1 aWQuJ0ljaygpIHsnOwogICAgICAgICAgICB9CgkJCSRvdXRbXSA9ICcKCQkJCQl2YXIgdicu JHV1aWQuJ3IgPSBuZXcgU1dGT2JqZWN0KCInLiRmbGFzaG1vdmllLiciLCAiJy4kdXVpZC4n Zmxhc2giLCAiJy4kd2lkdGguJyIsICInLiRoZWlnaHQuJyIsICInLiR2ZXJzaW9uLiciLCAi IycuJGJnY29sb3IuJyIpOwoJCQkJCXYnLiR1dWlkLidyLmFkZFBhcmFtKCJzY2FsZSIsICIn LiRzY2FsZS4nIik7JzsKCQkJaWYoJHBhcmFtc3RyIT0nJykKCQkJewoJCQkJJG91dFtdID0g JwoJCQkJJy5zdHJfcmVwbGFjZSgnJGpzbyQnLCAndicuJHV1aWQuJ3InLCAkcGFyYW1zdHIp LicKCQkJCSc7CgkJCX0KCQkJJG91dFtdID0gJwoJCQkJCXYnLiR1dWlkLidyLndyaXRlKCIn LiR1dWlkLidmbGFzaHJlcGxhY2VtZW50Iik7CgkJCSc7CgkJCS8vdicuJHV1aWQuJ3IuYWRk UGFyYW0oInNjYWxlIiwgIm5vc2NhbGUiKTsKCQkJaWYoJHBtc2V0KQogICAgICAgICAgICB7 CiAgICAgICAgICAgIAkkb3V0W109J30nOwogICAgICAgICAgICB9CgkJCSRvdXRbXT0gJwoJ CQkJPC9zY3JpcHQ+CgkJCSc7CiAgICAgICAgICAgIGVjaG8gaW1wbG9kZSgiIiwkbXNnKTsK ICAgICAgICAgICAgJHJldHVybiA9IGltcGxvZGUoIiIsJG91dCk7CiAgICAgICAgICAgICRy ZXR1cm4gLj0gaHRtbGVudGl0aWVzKCRyZXR1cm4pOwogICAgICAgICAgICByZXR1cm4gJHJl dHVybjsKCQl9IGVsc2UgaWYoISRkZWJ1ZyAmJiAkZmxhc2htb3ZpZSAhPSAnJykgewoJCQlp ZigkcG1zZXQpCiAgICAgICAgICAgIHsKCQkJCSRvdXRbXT0nCgkJCQkJPGRpdiBpZD0iJy4k dXVpZC4nZmxhc2hyZXBsYWNlbWVudCIgc3R5bGU9IndpZHRoOicuJHdpZHRoLic7aGVpZ2h0 OicuJGhlaWdodC4nOyI+CgkJCQkJCTxhIGhyZWY9ImphdmFzY3JpcHQ6dm9pZCgwKTsiIG9u Y2xpY2s9IkNsJy4kdXVpZC4nSWNrKCkiPjxpbWcgc3JjPSInLiRwb3N0ZXIuJyIgd2lkdGg9 IicuJHdpZHRoLiciIGhlaWdodD0iJy4kaGVpZ2h0LiciIGFsdD0ianBlZyB0aGF0IHdpbGwg YmUgcmVwbGFjZWQgYnkgZmxhc2giIHRpdGxlPSJjbGljayBoZXJlIHRvIHN0YXJ0IGZsYXNo IGNvbnRlbnQiIC8+PC9hPgoJCQkJCTwvZGl2PgoJCQkJCSc7CgkJCX0gZWxzZSB7CgkJCQkk b3V0W109JwoJCQkJCTxkaXYgaWQ9IicuJHV1aWQuJ2ZsYXNocmVwbGFjZW1lbnQiIHN0eWxl PSJ3aWR0aDonLiR3aWR0aC4nO2hlaWdodDonLiRoZWlnaHQuJzsiPgoJCQkJCQk8cD5Tb3Jy eSwgYnV0IHlvdSBkbyBub3QgaGF2ZSB0aGUgbWluaW11bSB2ZXJzaW9uICgnLiR2ZXJzaW9u LicpIG9mIGZsYXNoIHBsYXllciByZXF1aXJlZCB0byBwbGF5IHRoaXMgZmxhc2ggbW92aWUu IFlvdSBjYW4gaW5zdGFsbCBvciB1cGdyYWRlIGZsYXNoIDxhIGhyZWY9Imh0dHA6Ly93d3cu YWRvYmUuY29tL3Nob2Nrd2F2ZS9kb3dubG9hZC9kb3dubG9hZC5jZ2k/UDFfUHJvZF9WZXJz aW9uPVNob2Nrd2F2ZUZsYXNoIj5oZXJlPC9hPi48L3A+CgkJCQkJPC9kaXY+CgkJCQkJJzsK CQkJfQogICAgICAgICAgICAkb3V0W109JwogICAgICAgICAgICAJPHNjcmlwdCB0eXBlPSJ0 ZXh0L2phdmFzY3JpcHQiPgoJCQknOwogICAgICAgICAgICBpZigkcG1zZXQpCiAgICAgICAg ICAgIHsKICAgICAgICAgICAgCSRvdXRbXT0nZnVuY3Rpb24gQ2wnLiR1dWlkLidJY2soKSB7 JzsKICAgICAgICAgICAgfQoJCQkkb3V0W10gPSAnCgkJCQkJdmFyIHYnLiR1dWlkLidyID0g bmV3IFNXRk9iamVjdCgiJy4kZmxhc2htb3ZpZS4nIiwgIicuJHV1aWQuJ2ZsYXNoIiwgIicu JHdpZHRoLiciLCAiJy4kaGVpZ2h0LiciLCAiJy4kdmVyc2lvbi4nIiwgIiMnLiRiZ2NvbG9y LiciKTsKCQkJCQl2Jy4kdXVpZC4nci5hZGRQYXJhbSgic2NhbGUiLCAiJy4kc2NhbGUuJyIp Oyc7CgkJCWlmKCRwYXJhbXN0ciE9JycpCgkJCXsKCQkJCSRvdXRbXSA9ICcKCQkJCScuc3Ry X3JlcGxhY2UoJyRqc28kJywgJ3YnLiR1dWlkLidyJywgJHBhcmFtc3RyKS4nCgkJCQknOwoJ CQl9CgkJCSRvdXRbXSA9ICcKCQkJCQl2Jy4kdXVpZC4nci53cml0ZSgiJy4kdXVpZC4nZmxh c2hyZXBsYWNlbWVudCIpOwoJCQknOwoJCQlpZigkcG1zZXQpCiAgICAgICAgICAgIHsKICAg ICAgICAgICAgCSRvdXRbXT0nfSc7CiAgICAgICAgICAgIH0KCQkJJG91dFtdPSAnCgkJCQk8 L3NjcmlwdD4KCQkJJzsKICAgICAgICAgICAgcmV0dXJuIGltcGxvZGUoIiIsJG91dCk7CgkJ fQoJfQoKCWZ1bmN0aW9uIHdsa19mbGVtc2NyaXB0bGluaygkYXR0cykgewoJCSRqc2VtYmVk ID0gJzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9IicuJGF0dHNbJ3BhdGgn XS4nIj48L3NjcmlwdD4nOwoJCXJldHVybiAkanNlbWJlZDsKCX0KCgkvLy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgkvLwkJCQlHZXQgRmlsZQoJLy8tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCiAgICBmdW5jdGlvbiB3bGtfZmxlbV9nZXRf ZmlsZSgkd2hlcmUpCiAgICB7CgkJZ2xvYmFsICRwZXJtbGlua19tb2RlOwoJCSR0aGlzZmls ZSA9IGZpbGVEb3dubG9hZEZldGNoSW5mbygkd2hlcmUpOwoJCWlmKCFlbXB0eSgkdGhpc2Zp bGVbJ2ZpbGVuYW1lJ10pKQogICAgICAgIHsKCQkJJHBsYXllciA9IGh1LidmaWxlcy8nLiR0 aGlzZmlsZVsnZmlsZW5hbWUnXTsKCQl9IGVsc2UgewoJCQkkcGxheWVyID0gZmFsc2U7CgkJ fQoJCXJldHVybiAkcGxheWVyOwoJfQoKICAgIGZ1bmN0aW9uIHdsa19mbGVtX2dldF9mcm9u dCgkd2hlcmUpCiAgICB7CgkJZ2xvYmFsICRwZXJtbGlua19tb2RlLCAkdHhwY2ZnOwoJCSRx dWVyeSA9IHNhZmVfcXVlcnkoJ1NFTEVDVCBpZCwgZXh0IEZST00gJy4kdHhwY2ZnWyd0YWJs ZV9wcmVmaXgnXS4ndHhwX2ltYWdlIFdIRVJFICcuJHdoZXJlLicgTElNSVQgMScpOwoJCSRp bWdyb3cgPSBteXNxbF9mZXRjaF9yb3coJHF1ZXJ5KTsKCQkkdGhpc2ZpbGUgPSBhcnJheSgn ZmlsZW5hbWUnPT4kaW1ncm93WzBdLiRpbWdyb3dbMV0pOwoJCSRwbGF5ZXIgPSBodS4naW1h Z2VzLyc7CgkJaWYoIWVtcHR5KCR0aGlzZmlsZVsnZmlsZW5hbWUnXSkpCiAgICAgICAgewoJ CQkkcGxheWVyIC49ICR0aGlzZmlsZVsnZmlsZW5hbWUnXTsKCQl9IGVsc2UgewoJCQkkcGxh eWVyID0gZmFsc2U7CgkJfQoJCXJldHVybiAkcGxheWVyOwoJfQoKCiI7czozOiJtZDUiO3M6 MzI6IjBkZDg3Yjc0NDAwYTFhM2MzYzhjODVjYWEwNjBjYTc3Ijt9