# 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: # ...................................................................... YTo5OntzOjc6InZlcnNpb24iO3M6MzoiMC4yIjtzOjY6ImF1dGhvciI7czoxNToiV2Fsa2Vy IEhhbWlsdG9uIjtzOjEwOiJhdXRob3JfdXJpIjtzOjI5OiJodHRwOi8vd3d3LndhbGtlcmhh bWlsdG9uLmNvbSI7czoxMToiZGVzY3JpcHRpb24iO3M6MTE2OiJUaGlzIHBsdWdpbiBpcyBm b3IgcXVpY2sgZmxhc2ggbW92aWUgZW1iZWQgdmlhIHRoZSBhcnRpY2xlIHdyaXRpbmcgdGFi YnkgdGhpbmd5LiAod2l0aCBjbGljayB0byBlbWJlZC9ydW4gc3dmb2JqZWN0KSI7czo0OiJ0 eXBlIjtpOjA7czo0OiJuYW1lIjtzOjg6Indsa19mbGVtIjtzOjQ6ImhlbHAiO3M6NDE5OToi PGgxPndsa19mbGVtPC9oMT4KCjxwPnYwLjI6IGFjdHVhbGx5IHN1cHBvcnRpbmcgdGhlIHBh cmFtc3RyIHNldHRpbmcuIEFsc28sIGNvcnJlY3RlZCB0aGUgaGVscCBkb2NzLjwvcD4KCjxw PlRoaXMgcGx1Z2luIGlzIGZvciBxdWljayBmbGFzaCBtb3ZpZSBlbWJlZCB2aWEgdGhlIGFy dGljbGUgd3JpdGluZyB0YWJieSB0aGluZ3kuICh3aXRoIGNsaWNrIHRvIGVtYmVkL3J1biBz d2ZvYmplY3QpPC9wPgoKPGNvZGU+Jmx0O3R4cDp3bGtfZmxlbSBmbGFzaG1vdmllPSIzIiBw b3N0ZXI9IjUiIGZsYXNodmVyc2lvbj0iOSIgcGFyYW1zdHI9IiRqc28kLmFkZFBhcmFtKCJz YWxpZ24iLCJ0bCIpOyIgIC8mZ3Q7PC9jb2RlPgoKPGgyIHN0eWxlPSJtYXJnaW4tdG9wOjEw cHg7Ij5JbnN0YWxsYXRpb248L2gyPgoKPHA+U2luY2UgeW91IGNhbiByZWFkIHRoaXMgaGVs cCwgeW91IGhhdmUgaW5zdGFsbGVkIHRoZSBwbHVnaW4gdG8gdHhwLjwvcD4KCjxwPkRpZCB5 b3UgYWN0aXZhdGUgaXQ/PC9wPgoKPGgyPlVzYWdlPC9oMj4KCjxwPlBsYWNlIHRoZSB3bGtf ZmxlbSB0YWcgaW4gYW4gYXJ0aWNsZSwgZm9ybSBvciBwYWdlLjwvcD4KCjxwPkdvIHRvIDxp PmFkbWluPC9pPiAtPiA8aT5wcmVmZXJlbmNlczwvaT4gLT4gPGk+YWR2YW5jZWQgcHJlZmVy ZW5jZXNfPC9pPiBhbmQgY3JlYXRlIGEgY3VzdG9tIGZvcm0gZmllbGQgY2FsbGVkIGZsYXNo bW92aWUuPHA+Cgo8Y29kZT4mbHQ7dHhwOndsa19mbGVtIHdpZHRoPSIzMjAiIGhlaWdodD0i MjQwIiAvJmd0OzwvY29kZT4KCjxwPkl0IHRha2VzIGEgZmV3IG9wdGlvbnM6PC9wPgoKPHVs PgoJPGxpPjxiPndpZHRoPC9iPiAtIFNwZWNpZmllcyB3aWR0aC4gRGVmYXVsdHMgdG86IDMy MHB4IChjaGVja3MgZm9yIGN1c3RvbV9maWVsZCAid2lkdGgiKS48L2xpPgoJPGxpPjxiPmhl aWdodDwvYj4gLSBTcGVjaWZpZXMgaGVpZ2h0LiBEZWZhdWx0cyB0bzogMjU2cHggKGNoZWNr cyBmb3IgY3VzdG9tX2ZpZWxkICJoZWlnaHQiKS48L2xpPgoJPGxpPjxiPmJnY29sb3I8L2I+ IC0gQ2hlY2tzIHRvIHNlZSBpZiB5b3V2ZSBzZXQgYSBoZXggY29sb3IgZm9yIHRoZSBiYWNr Z3JvdW5kIGJlaGluZCB0aGUgZmxhc2ggbW92aWUuIERlZmF1bHRzIHRvOiBGRkZGRkY8L2xp PgoJPGxpPjxiPnNjYWxlPC9iPiAtIENoZWNrcyB0byBzZWUgaWYgeW91J3ZlIGRlZmluaWVk IHdoYXQgdGhlIGZsYXNoIHNob3VsZCBkby4gRGVmYXVsdHMgdG86IG5vc2NhbGU8L2xpPgoJ PGxpPjxiPmZsYXNodmVyc2lvbjwvYj4gLSBUaGUgbWluaW11bSB2ZXJzaW9uIG9mIGZsYXNo IHRoYXQgc3dmb2JqZWN0IHdpbGwgZGVsaXZlciB0aGUgbW92aWUgdG8uIERlZmF1bHRzIHRv OiA5ICh5ZWFoLCB0aGF0J3MgcmlnaHQsIG9ubHkgdGhlIG5ld2VzdCBmb3IgdXMuKTwvbGk+ Cgk8bGk+PGI+Zmxhc2htb3ZpZTwvYj4gLSBUaGlzIGlzIHVzZWQgdG8gc3BlY2lmeSB0aGUg Zmxhc2ggbW92aWUgaW4gdGhlIHRhZy48L2xpPgoJPGxpPjxiPnBvc3RlcjwvYj4gLSBUaGlz IGlzIHVzZWQgaWYgeW91IHdhbnQgdG8gc3BlY2lmeSBhIHBvc3RlciBmb3IgY2xpY2sgdG8g ZW1iZWQgYWN0aW9uLjwvbGk+Cgk8bGk+PGI+bW92aWVmaWVsZG5hbWU8L2I+IC0gVGhpcyBh bGxvd3MgeW91IHRvIHNwZWNpZnkgYSBwYXJ0aWN1bGFyIGN1c3RvbV9maWVsZCBieSBuYW1l IHRoYXQgd2xrX2ZsZW0gc2hvdWxkIGNoZWNrIGluIHRvIHNlZSBpZiBhIG1vdmllIGlzIHNl dC4gKGRlZmF1bHRzIHRvICJmbGFzaG1vdmllIik8L2xpPgoJPGxpPjxiPnBvc3RlcmZpZWxk bmFtZTwvYj4gLSBUaGlzIGFsbG93cyB5b3UgdG8gc3BlY2lmeSBhIHBhcnRpY3VsYXIgY3Vz dG9tX2ZpZWxkIGJ5IG5hbWUgdGhhdCB3bGtfZmxlbSBzaG91bGQgY2hlY2sgaW4gdG8gc2Vl IGlmIGEgcG9zdGVyIGltYWdlIGlzIHNldC4gKGRlZmF1bHRzIHRvICJwb3N0ZXIiKTwvbGk+ Cgk8bGk+PGI+d2lkdGhmaWVsZG5hbWU8L2I+IC0gVGhpcyBhbGxvd3MgeW91IHRvIHNwZWNp ZnkgYSBwYXJ0aWN1bGFyIGN1c3RvbV9maWVsZCBieSBuYW1lIHRoYXQgd2xrX2ZsZW0gc2hv dWxkIGNoZWNrIGluIGZvciB0aGUgZmxhc2ggZW1iZWQgd2lkdGguIChkZWZhdWx0cyB0byAi d2lkdGgiKTwvbGk+Cgk8bGk+PGI+aGVpZ2h0ZmllbGRuYW1lPC9iPiAtIFRoaXMgYWxsb3dz IHlvdSB0byBzcGVjaWZ5IGEgcGFydGljdWxhciBjdXN0b21fZmllbGQgYnkgbmFtZSB0aGF0 IHdsa19mbGVtIHNob3VsZCBjaGVjayBpbiBmb3IgdGhlIGZsYXNoIGVtYmVkIGhlaWdodC4g KGRlZmF1bHRzIHRvICJoZWlnaHQiKTwvbGk+Cgk8bGk+PGI+cGFyYW1zdHI8L2I+IC0gbWFu dWFsbHkgc2V0IGFkZFBhcmFtcyBvciB3aGF0ZXZlciBvdGhlciBmdW5jdGlvbnMgc3dmb2Jq ZWN0IHN1cHBvcnRzLiBTaG91bGQgbG9vayBsaWtlIGphdmFzY3JpcHQsIGV4Y2VwdCB3aXRo ICRqc28kIGluc3RlYWQgb2YgdGhlIG9iamVjdCBuYW1lLjwvbGk+CjwvdWw+Cgo8aDI+RW1i ZWRkaW5nIGEgc3BlY2lmaWMgbW92aWUgaW4gYSBwYWdlOjwvaDI+Cgo8cD5JZiB5b3Ugc3Bl Y2lmeSB2aWRlbyBhcyBhbiBhdHRyaWJ1dGUgeW91IGNhbiB1c2UgdGhlIGZpbGUgbnVtYmVy IGZyb20gdGhlIGZpbGVzIHRhYiAoaWYgeW91IHVwbG9hZGVkIHRoZSB2aWRlbyBpbiB0aGlz IG1hbm5lcikgPC9wPgoKPGNvZGU+Jmx0O3R4cDp3bGtfZmxlbSBmbGFzaG1vdmllPSI2IiAv PjwvY29kZT4KCjxwPm9yIHlvdSBjYW4gdXNlIHRoZSBmdWxsIHBhdGggdG8gdGhlIGZpbGUu PC9wPgoKPGNvZGU+Jmx0O3R4cDp3bGtfZmxlbSB2aWRlbz0iaHR0cDovL3d3dy5teWRvbWFp bi5jb20vbW92aWVzL215Zmxhc2htb3ZpZS5zd2YiIC8+PC9jb2RlPgoKPHA+b3I8L3A+Cgo8 Y29kZT4mbHQ7dHhwOndsa19mbGVtIHZpZGVvPSIvbW92aWVzL215Zmxhc2htb3ZpZS5zd2Yi IC8mZ3Q7PC9jb2RlPgoKPGgyPkF0dGFjaGluZyBhIGZsYXNobW92aWUgdG8gYW4gYXJ0aWNs ZTo8L2gyPgoKPHA+SW4gdGhpcyBjYXNlLCB5b3UgdXNlIHRoYXQgY3VzdG9tICdmbGFzaG1v dmllJyBmaWVsZCBhbmQgZW50ZXIgdGhlIGZ1bGwgcGF0aCBvciB5b3VyIGZpbGUgbnVtYmVy IGluIHRoYXQgZmllbGQuIFRoZW4gdGhlIGZvcm0gYmVpbmcgdXNlZCB0byBvdXRwdXQgdGhl IGFydGljbGUgc2ltcGx5IG5lZWRzIDxjb2RlPiZsdDt0eHA6d2xrX2ZsZW0gLyZndDs8L2Nv ZGU+IGluIGl0IHNvbWV3aGVyZSAod2l0aCBhbnkgb3RoZXIgYXR0cmlidXRlcyB5b3Ugd2Fu dCB0byBzcGVjaWZ5IC0gZS5nLiB3aWR0aCwgaGVpZ2h0KS48L3A+Cgo8cD5NeSBmb3JtIGxv b2tzIGxpa2UgdGhpczo8L3A+Cgo8cHJlPjxjb2RlPiZsdDtoMz4mbHQ7dHhwOnBlcm1saW5r Jmd0OyZsdDt0eHA6dGl0bGUgLyZndDsmbHQ7L3R4cDpwZXJtbGluayZndDsmbHQ7L2gzJmd0 OwombHQ7dHhwOndsa19mbGVtIHBvc3Rlcj0iNCIgLyZndDsKJmx0O3R4cDpib2R5IC8mZ3Q7 PC9jb2RlPjwvcHJlPgoKPHA+VGhhdCBvdXRwdXRzIHRoZSBhcnRpY2xlIG9uIHRoZSBwYWdl IHdoZXJlIHRoaXMgZm9ybSBpcyB1c2VkIHdpdGggdGhlIHRpdGxlIG9mIHRoZSBhcnRpY2xl IGFzIGEgaGVhZGVyIHRoZW4gYSBkaXYgd2l0aCBpbWFnZSAjNCBmcm9tIHRoZSBpbWFnZXMg dGFiIGluIGl0LiBUaGVuIHRoZSB0ZXh0IHRoYXQgd2FzIGluIHRoZSBib2R5IGZpZWxkIG9m IHRoZSBhcnRpY2xlIGZvcm0uPC9wPgoKPGgyPkxpbmtpbmcgdXAgdGhlIGphdmFzY3JpcHQu PC9oMj4KCjxwPllvdSBtdXN0IGZpcnN0IHVwbG9hZCAic3dmb2JqZWN0LmpzIjpodHRwOi8v YmxvZy5kZWNvbmNlcHQuY29tL3N3Zm9iamVjdC8gdG8geW91ciBzZXJ2ZXIuICh5b3UnbGwg bmVlZCB0byBkb3dubG9hZCBpdCwgdW56aXAgaXQsIHRoZW4gdXBsb2FkIGl0KTwvcD4KCjxw PlRoZW4gcHV0IHRoaXMgaW4gdGhlIGhlYWRlciBvZiB0aGUgcGFnZSB5b3Ugd2lzaCB0byBk aXNwbGF5IG1vdmllcyBvbiAoZXZlcnkgcGFnZS4uLi55ZXMpOjwvcD4KCjxjb2RlPiZsdDt0 eHA6d2xrX2ZsZW1zY3JpcHRsaW5rIHBhdGg9Imh0dHA6Ly9teWRvbWFpbi5jb20vdGhlL3Bh dGgvdG8vc3dmb2JqZWN0LmpzIiAvJmd0OzwvY29kZT4KCjxwPldoZXJlIHlvdSBmaW5kICJo dHRwOi8vbXlkb21haW4uY29tL3RoZS9wYXRoL3RvL3N3Zm9iamVjdC5qcyIsIG1ha2Ugc3Vy ZSB5b3UgcHV0IHRoZSBmdWxsIHBhdGggdG8gdGhlIGZpbGUuPC9wPgoiO3M6NDoiY29kZSI7 czoxMDMzMjoiCWZ1bmN0aW9uIHdsa19mbGVtKCRhdHRzKQoJewoJCWdsb2JhbCAkcHJlZnM7 CgkJZ2xvYmFsICRwZXJtbGlua19tb2RlOwoJCWdsb2JhbCAkdGhpc2FydGljbGU7CgoJCWV4 dHJhY3QobEF0dHMoYXJyYXkoCgkJCSdmbGFzaG1vdmllJz0+JycsCgkJCSdwb3N0ZXInPT4n JywKCQkJJ3Btc2V0Jz0+J3RydWUnLAoJCQknYmdjb2xvcic9PiAoIWVtcHR5KCRwcmVmc1sn d2xrX2ZsZW1fYmdjb2xvciddKSk/JHByZWZzWyd3bGtfZmxlbV9iZ2NvbG9yJ106J0ZGRkZG RicsCgkJCSd2ZXJzaW9uJz0+ICghZW1wdHkoJHByZWZzWyd3bGtfZmxlbV9mbGFzaHZlcnNp b24nXSkpPyRwcmVmc1snd2xrX2ZsZW1fZmxhc2h2ZXJzaW9uJ106JzknLAoJCQknd2lkdGgn PT4gKCFlbXB0eSgkcHJlZnNbJ3dsa19mbGVtX3dpZHRoJ10pKT8kcHJlZnNbJ3dsa19mbGVt X3dpZHRoJ106JzMyMCcsCgkJCSdoZWlnaHQnPT4gKCFlbXB0eSgkcHJlZnNbJ3dsa19mbGVt X2hlaWdodCddKSk/JHByZWZzWyd3bGtfZmxlbV9oZWlnaHQnXTonMjU2JywKCQkJJ3NjYWxl Jz0+ICghZW1wdHkoJHByZWZzWyd3bGtfZmxlbV9zY2FsZSddKSk/JHByZWZzWyd3bGtfZmxl bV9zY2FsZSddOidub3NjYWxlJywKCQkJJ3BhcmFtc3RyJz0+ICghZW1wdHkoJHByZWZzWyd3 bGtfZmxlbV9wYXJhbXN0ciddKSk/JHByZWZzWyd3bGtfZmxlbV9wYXJhbXN0ciddOicnLAoJ CQknbW92aWVmaWVsZG5hbWUnPT4oIWVtcHR5KCRwcmVmc1snd2xrX2ZsZW1fbW92aWVmaWVs ZG5hbWUnXSkpPyRwcmVmc1snd2xrX2ZsZW1fbW92aWVmaWVsZG5hbWUnXTonZmxhc2htb3Zp ZScsCgkJCSdwb3N0ZXJmaWVsZG5hbWUnPT4oIWVtcHR5KCRwcmVmc1snd2xrX2ZsZW1fcG9z dGVyZmllbGRuYW1lJ10pKT8kcHJlZnNbJ3dsa19mbGVtX3Bvc3RlcmZpZWxkbmFtZSddOidw b3N0ZXInLAoJCQknd2lkdGhmaWVsZG5hbWUnPT4oIWVtcHR5KCRwcmVmc1snd2xrX2ZsZW1f d2lkdGhmaWVsZG5hbWUnXSkpPyRwcmVmc1snd2xrX2ZsZW1fd2lkdGhmaWVsZG5hbWUnXTon d2lkdGgnLAoJCQknaGVpZ2h0ZmllbGRuYW1lJz0+KCFlbXB0eSgkcHJlZnNbJ3dsa19mbGVt X2hlaWdodGZpZWxkbmFtZSddKSk/JHByZWZzWyd3bGtfZmxlbV9oZWlnaHRmaWVsZG5hbWUn XTonaGVpZ2h0JywKICAgICAgICAgICAgJ2RlYnVnJz0+IGZhbHNlCgkJKSwkYXR0cykpOwoK CQkvKgoKCQkJQ2hlY2tpbmcgdG8gbWFrZSBzdXJlIHRoZSBmbGFzaG1vdmllIGlzIHNldCBh bmQgdGhlcmUKCgkJKi8KCQlpZighZW1wdHkoJGZsYXNobW92aWUpKQoJCXsKCQkJaWYocHJl Z19tYXRjaCgiL1wvLyIsICRmbGFzaG1vdmllKSkKCQkJewoJCQkJCWlmKGZpbGVfZXhpc3Rz KCRmbGFzaG1vdmllKSkKCQkJCQl7CgkJCQkJCSRmbGFzaG1vdmllID0gaHUuJGZsYXNobW92 aWU7CgkJCQkJCSRtc2dbXSA9ICd0eHA6d2xrX2ZsZW06IGZsYXNobW92aWU9Jy4kYXR0c1sn Zmxhc2htb3ZpZSddLicuIEZpbGUgZm91bmQgYW5kIHVzZWQgd2l0aCB0eHAgcHJlZiBwYXRo IGZyb20gcm9vdCAnLiRwcmVmc1sicGF0aF9mcm9tX3Jvb3QiXTsKCQkJCQl9IGVsc2UgewoJ CQkJCQkkZmxhc2htb3ZpZSA9ICRmbGFzaG1vdmllOwoJCQkJCQkkbXNnW10gPSAndHhwOnds a19mbGVtIFdhcm5pbmc6IGZsYXNobW92aWU9Jy4kYXR0c1snZmxhc2htb3ZpZSddLicuIFBs dWdpbiBjYW5cJ3QgdmVyaWZ5IGZpbGUgZXhpc3RlbnNpb24uIE1ha2Ugc3VyZSB0aGF0IGdp dmVuIGZpbGUgJy4kYXR0c1snZmxhc2htb3ZpZSddLicgZXhpc3RzIGFuZCBoYXMgdmFpbGQg cGF0aC4nOwoJCQkJCX0KCQkJfSBlbHNlIHsKCQkJCWlmKGlzX251bWVyaWMoJGZsYXNobW92 aWUpKQoJCQkJewoJCQkJCSRmbGFzaG1vdmllID0gd2xrX2ZsZW1fZ2V0X2ZpbGUoJ2lkPSIn LmFkZHNsYXNoZXMoJGZsYXNobW92aWUpLiciJyk7CgkJCQkJJG1zZ1tdID0oJGZsYXNobW92 aWUgPT0gZmFsc2UpPyd0eHA6d2xrX2ZsZW0gRXJyb3I6IHZpZGVvPScuJGF0dHNbJ3ZpZGVv J10uJy4gTm8gZmlsZSB3aXRoIHRoaXMgaWQgaXMgc3RvcmVkIGluIHR4cC4nOicnOwoJCQkJ fSBlbHNlIHsKCQkJCQkkZmxhc2htb3ZpZSA9IHdsa19mbGVtX2dldF9maWxlKCdmaWxlbmFt ZT0iJy5hZGRzbGFzaGVzKCRmbGFzaG1vdmllKS4nIicpOwoJCQkJCSRtc2dbXSA9KCRmbGFz aG1vdmllID09IGZhbHNlKT8ndHhwOndsa19mbGVtIEVycm9yOiB2aWRlbz0nLiRhdHRzWyd2 aWRlbyddLicuIE5vIGZpbGUgd2l0aCB0aGlzIG5hbWUgaXMgc3RvcmVkIGluIHR4cC4nOicn OwoJCQkJfQoJCQl9CgkJfSBlbHNlIHsKCQkJaWYoIWVtcHR5KCR0aGlzYXJ0aWNsZVskZmxh c2htb3ZpZWZpZWxkbmFtZV0pKQoJCQl7CgkJCQlpZihpc19udW1lcmljKCR0aGlzYXJ0aWNs ZVskZmxhc2htb3ZpZWZpZWxkbmFtZV0pKQoJCQkJewoJCQkJCQkkZmxhc2htb3ZpZWZsYXNo bW92aWUgPSB3bGtfZmxlbV9nZXRfZmlsZSgnaWQ9IicuYWRkc2xhc2hlcygkdGhpc2FydGlj bGVbJGZpZWxkbmFtZV0pLiciJyk7CgkJCQkJCSRtc2dbXSA9KCRmbGFzaG1vdmllZmxhc2ht b3ZpZSA9PSBmYWxzZSk/J3R4cDp3bGtfZmxlbSBFcnJvcjogQ3VzdG9tRmllbGRbJy4kZmll bGRuYW1lLiddPScuJHRoaXNhcnRpY2xlWyRmaWVsZG5hbWVdLicuIE5vIGZpbGUgd2l0aCB0 aGlzIGlkIGlzIHN0b3JlZCBpbiB0eHAuJzonJzsKCQkJCX0gZWxzZSBpZihwcmVnX21hdGNo KCIvXC8vIiwgJHRoaXNhcnRpY2xlWyRmbGFzaG1vdmllZmllbGRuYW1lXSkpIHsKCQkJCQlp ZihmaWxlX2V4aXN0cygkdGhpc2FydGljbGVbJGZsYXNobW92aWVmaWVsZG5hbWVdKSkKCQkJ CQl7CgkJCQkJCSRmbGFzaG1vdmllID0gaHUuJHRoaXNhcnRpY2xlWyRmbGFzaG1vdmllZmll bGRuYW1lXTsKCQkJCQkJJG1zZ1tdID0gJ3R4cDp3bGtfZmxlbTogQ3VzdG9tRmllbGRbJy4k Zmxhc2htb3ZpZWZpZWxkbmFtZS4nXT0nLiR0aGlzYXJ0aWNsZVskZmxhc2htb3ZpZWZpZWxk bmFtZV0uJy4gRmlsZSBmb3VuZCBhbmQgdXNlZCB3aXRoIHR4cCBwcmVmIHBhdGggZnJvbSBy b290Jy4kcHJlZnNbInBhdGhfZnJvbV9yb290Il07CgkJCQkJfSBlbHNlIHsKCQkJCQkJJGZs YXNobW92aWUgPSAkdGhpc2FydGljbGVbJGZsYXNobW92aWVmaWVsZG5hbWVdOwoJCQkJCQkk bXNnW10gPSAndHhwOndsa19mbGVtIFdhcm5pbmc6IEN1c3RvbUZpZWxkW3ZpZGVvXT0nLiR0 aGlzYXJ0aWNsZVskZmxhc2htb3ZpZWZpZWxkbmFtZV0uJy4gTWFrZSBzdXJlIHRoYXQgZ2l2 ZW4gZmlsZSBleGlzdHMgYW5kIGhhcyB2YWlsZCBwYXRoLic7CgkJCQkJfQoJCQkJfSBlbHNl IHsKCQkJCQkkZmxhc2htb3ZpZSA9IHdsa19mbGVtX2dldF9maWxlKCdmaWxlbmFtZT0iJy5h ZGRzbGFzaGVzKCR0aGlzYXJ0aWNsZVskZmxhc2htb3ZpZWZpZWxkbmFtZV0pLiciJyk7CgkJ CQkJJG1zZ1tdID0oJGZsYXNobW92aWUgPT0gZmFsc2UpPyd0eHA6d2xrX2ZsZW0gRXJyb3I6 IEN1c3RvbUZpZWxkWycuJGZsYXNobW92aWVmaWVsZG5hbWUuJ109Jy4kdGhpc2FydGljbGVb JGZsYXNobW92aWVmaWVsZG5hbWVdLicuIE5vIGZpbGUgd2l0aCB0aGlzIG5hbWUgaXMgc3Rv cmVkIGluIHR4cC4nOicnOwoJCQkJfQoJCQl9IGVsc2UgewoJCQkJJG1zZ1tdID0gJ3R4cDp3 bGtfZmxlbSBFcnJvcjogTm8gZmxhc2ggbW92aWUgZGVmaW5lZC4gVXNlIHRoZSBhdHRyaWJ1 dGUgZmxhc2htb3ZpZSBvciBhIGN1c3RvbS1maWVsZCBuYW1lZCBmbGFzaG1vdmllIHRvIGRl ZmluZSBhIGZsYXNoIGZpbGUuJzsKCQkJfQoJCX0KCQkvL0VuZCB2aWRlbyBjaGVjawoKCQkv KgoKCQkJQ2hlY2tpbmcgRm9yIFBvc3Rlck1vdmllIGJlaW5nIHNldAoKCQkqLwoJCWlmKCFl bXB0eSgkcG9zdGVyKSkKCQl7CgkJCWlmKHByZWdfbWF0Y2goIi9cLy8iLCAkcG9zdGVyKSkK CQkJewoJCQkJCWlmKGZpbGVfZXhpc3RzKCRwb3N0ZXIpKQoJCQkJCXsKCQkJCQkJJHBvc3Rl ciA9IGh1LiRwb3N0ZXI7CgkJCQkJCSRtc2dbXSA9ICd0eHA6d2xrX2ZsZW06IHBvc3Rlcj0n LiRhdHRzWydwb3N0ZXInXS4nLiBGaWxlIGZvdW5kIGFuZCB1c2VkIHdpdGggdHhwIHByZWYg cGF0aCBmcm9tIHJvb3QnLiRwcmVmc1sicGF0aF9mcm9tX3Jvb3QiXTsKCQkJCQl9IGVsc2Ug ewoJCQkJCQkkcG9zdGVyID0gJHBvc3RlcjsKCQkJCQkJJG1zZ1tdID0gJ3R4cDp3bGtfZmxl bSBXYXJuaW5nOiBwb3N0ZXI9Jy4kYXR0c1sncG9zdGVyJ10uJy4gUGx1Z2luIGNhblwndCB2 ZXJpZnkgZmlsZSBleGlzdGVuY2UuIE1ha2Ugc3VyZSB0aGF0IGdpdmVuIGZpbGUgJy4kYXR0 c1sncG9zdGVyJ10uJyBleGlzdHMgYW5kIGhhcyB2YWlsZCBwYXRoLic7CgkJCQkJfQoJCQl9 IGVsc2UgewoJCQkJaWYoaXNfbnVtZXJpYygkcG9zdGVyKSkKCQkJCXsKCQkJCQkkcG9zdGVy ID0gd2xrX2ZsZW1fZ2V0X2Zyb250KCdpZD0iJy5hZGRzbGFzaGVzKCRwb3N0ZXIpLiciJyk7 CgkJCQkJJG1zZ1tdID0oJHBvc3RlciA9PSBmYWxzZSk/J3R4cDp3bGtfZmxlbSBFcnJvcjog dmlkZW89Jy4kYXR0c1sncG9zdGVyJ10uJy4gTm8gaW1hZ2Ugb3IgZmlsZSB3aXRoIHRoaXMg aWQgaXMgc3RvcmVkIGluIHR4cC4nOicnOwoJCQkJfSBlbHNlIHsKCQkJCQkkcG9zdGVyID0g d2xrX2ZsZW1fZ2V0X2Zyb250KCduYW1lPSInLmFkZHNsYXNoZXMoJHBvc3RlcikuJyInKTsK CQkJCQkkbXNnW10gPSgkcG9zdGVyID09IGZhbHNlKT8ndHhwOndsa19mbGVtIEVycm9yOiB2 aWRlbz0nLiRhdHRzWydwb3N0ZXInXS4nLiBObyBpbWFnZSBvciBmaWxlIHdpdGggdGhpcyBu YW1lIGlzIHN0b3JlZCBpbiB0eHAuJzonJzsKCQkJCX0KCQkJfQoJCX0gZWxzZSB7CgkJCWlm KCFlbXB0eSgkdGhpc2FydGljbGVbJHBvc3RlcmZpZWxkbmFtZV0pKQoJCQl7CgkJCQlpZihw cmVnX21hdGNoKCIvXC8vIiwgJHRoaXNhcnRpY2xlWyRwb3N0ZXJmaWVsZG5hbWVdKSkKCQkJ CXsKCQkJCQlpZihmaWxlX2V4aXN0cygkdGhpc2FydGljbGVbJHBvc3RlcmZpZWxkbmFtZV0p KQoJCQkJCXsKCQkJCQkJJHBvc3RlciA9IGh1LiR0aGlzYXJ0aWNsZVskcG9zdGVyZmllbGRu YW1lXTsKCQkJCQkJJG1zZ1tdID0gJ3R4cDp3bGtfZmxlbTogQ3VzdG9tRmllbGRbJy4kcG9z dGVyZmllbGRuYW1lLiddPScuJHRoaXNhcnRpY2xlWyRwb3N0ZXJmaWVsZG5hbWVdLicuIEZp bGUgZm91bmQgYW5kIHVzZWQgd2l0aCB0eHAgcHJlZiBwYXRoIGZyb20gcm9vdCcuJHByZWZz WyJwYXRoX2Zyb21fcm9vdCJdOwoJCQkJCX0gZWxzZSB7CgkJCQkJCSRwb3N0ZXIgPSAkdGhp c2FydGljbGVbJHBvc3RlcmZpZWxkbmFtZV07CgkJCQkJCSRtc2dbXSA9ICd0eHA6d2xrX2Zs ZW0gV2FybmluZzogQ3VzdG9tRmllbGRbJy4kcG9zdGVyZmllbGRuYW1lLiddPScuJHRoaXNh cnRpY2xlWyRwb3N0ZXJmaWVsZG5hbWVdLicuIE1ha2Ugc3VyZSB0aGF0IGdpdmVuIGZpbGUg ZXhpc3RzIGFuZCBoYXMgdmFpbGQgcGF0aC4nOwoJCQkJCX0KCQkJCX0gZWxzZSB7CgkJCQkJ aWYoaXNfbnVtZXJpYygkdGhpc2FydGljbGVbJHBvc3RlcmZpZWxkbmFtZV0pKQoJCQkJCXsK CQkJCQkJJHBvc3RlciA9IHdsa19mbGVtX2dldF9mcm9udCgnaWQ9IicuYWRkc2xhc2hlcygk dGhpc2FydGljbGVbJHBvc3RlcmZpZWxkbmFtZV0pLiciJywgJHBtdHlwZSk7CgkJCQkJCSRt c2dbXSA9KCRwb3N0ZXIgPT0gZmFsc2UpPyd0eHA6d2xrX2ZsZW0gRXJyb3I6IEN1c3RvbUZp ZWxkWycuJHBvc3RlcmZpZWxkbmFtZS4nXT0nLiR0aGlzYXJ0aWNsZVskcG9zdGVyZmllbGRu YW1lXS4nLiBObyBmaWxlIHdpdGggdGhpcyBpZCBpcyBzdG9yZWQgaW4gdHhwLic6Jyc7CgkJ CQkJfSBlbHNlewoJCQkJCQkkcG9zdGVyID0gd2xrX2ZsZW1fZ2V0X2Zyb250KCduYW1lPSIn LmFkZHNsYXNoZXMoJHRoaXNhcnRpY2xlWyRwb3N0ZXJmaWVsZG5hbWVdKS4nIicsICRwbXR5 cGUpOwoJCQkJCQkkbXNnW10gPSgkcG9zdGVyID09IGZhbHNlKT8ndHhwOndsa19mbGVtIEVy cm9yOiBDdXN0b21GaWVsZFsnLiRwb3N0ZXJmaWVsZG5hbWUuJ109Jy4kdGhpc2FydGljbGVb JHBvc3RlcmZpZWxkbmFtZV0uJy4gTm8gZmlsZSB3aXRoIHRoaXMgbmFtZSBpcyBzdG9yZWQg aW4gdHhwLic6Jyc7CgkJCQkJfQoJCQkJfQoJCQl9IGVsc2UgewoJCQkJJHBtc2V0ID0gZmFs c2U7CgkJCX0KCQl9CgkJLy9lbmQgcG9zdGVyIGNoZWNrCgkJJG91dCA9IGFycmF5KCk7CgkJ JHV1aWQgPSBzdWJzdHIoc3RyX3JlcGxhY2UoJy4nLCAnJywgdW5pcWlkKCcnLCB0cnVlKSks IDMsIDEwKTsKCgkJaWYoJGRlYnVnICYmICRmbGFzaG1vdmllICE9ICcnKQoJCXsKCQkJaWYo JHBtc2V0KQogICAgICAgICAgICB7CgkJCQkkb3V0W109JwoJCQkJCTxkaXYgaWQ9IicuJHV1 aWQuJ2ZsYXNocmVwbGFjZW1lbnQiIHN0eWxlPSJ3aWR0aDonLiR3aWR0aC4nO2hlaWdodDon LiRoZWlnaHQuJzsiPgoJCQkJCQk8YSBocmVmPSJqYXZhc2NyaXB0OnZvaWQoMCk7IiBvbmNs aWNrPSJDbCcuJHV1aWQuJ0ljaygpIj48aW1nIHNyYz0iJy4kcG9zdGVyLiciIHdpZHRoPSIn LiR3aWR0aC4nIiBoZWlnaHQ9IicuJGhlaWdodC4nIiBhbHQ9ImpwZWcgdGhhdCB3aWxsIGJl IHJlcGxhY2VkIGJ5IGZsYXNoIiB0aXRsZT0iY2xpY2sgaGVyZSB0byBzdGFydCBmbGFzaCBj b250ZW50IiAvPjwvYT4KCQkJCQk8L2Rpdj4KCQkJCQknOwoJCQl9IGVsc2UgewoJCQkJJG91 dFtdPScKCQkJCQk8ZGl2IGlkPSInLiR1dWlkLidmbGFzaHJlcGxhY2VtZW50IiBzdHlsZT0i d2lkdGg6Jy4kd2lkdGguJztoZWlnaHQ6Jy4kaGVpZ2h0Lic7Ij4KCQkJCQkJPHA+U29ycnks IGJ1dCB5b3UgZG8gbm90IGhhdmUgdGhlIG1pbmltdW0gdmVyc2lvbiAoJy4kdmVyc2lvbi4n KSBvZiBmbGFzaCBwbGF5ZXIgcmVxdWlyZWQgdG8gcGxheSB0aGlzIGZsYXNoIG1vdmllLiBZ b3UgY2FuIGluc3RhbGwgb3IgdXBncmFkZSBmbGFzaCA8YSBocmVmPSJodHRwOi8vd3d3LmFk b2JlLmNvbS9zaG9ja3dhdmUvZG93bmxvYWQvZG93bmxvYWQuY2dpP1AxX1Byb2RfVmVyc2lv bj1TaG9ja3dhdmVGbGFzaCI+aGVyZTwvYT4uPC9wPgoJCQkJCTwvZGl2PgoJCQkJCSc7CgkJ CX0KICAgICAgICAgICAgJG91dFtdPScKICAgICAgICAgICAgCTxzY3JpcHQgdHlwZT0idGV4 dC9qYXZhc2NyaXB0Ij4KCQkJJzsKICAgICAgICAgICAgaWYoJHBtc2V0KQogICAgICAgICAg ICB7CiAgICAgICAgICAgIAkkb3V0W109J2Z1bmN0aW9uIENsJy4kdXVpZC4nSWNrKCkgeyc7 CiAgICAgICAgICAgIH0KCQkJJG91dFtdID0gJwoJCQkJCXZhciB2Jy4kdXVpZC4nciA9IG5l dyBTV0ZPYmplY3QoIicuJGZsYXNobW92aWUuJyIsICInLiR1dWlkLidmbGFzaCIsICInLiR3 aWR0aC4nIiwgIicuJGhlaWdodC4nIiwgIicuJHZlcnNpb24uJyIsICIjJy4kYmdjb2xvci4n Iik7CgkJCQkJdicuJHV1aWQuJ3IuYWRkUGFyYW0oInNjYWxlIiwgIicuJHNjYWxlLiciKTsn OwoJCQlpZigkcGFyYW1zdHIhPScnKQoJCQl7CgkJCQkkb3V0W10gPSAnCgkJCQknLnN0cl9y ZXBsYWNlKCckanNvJCcsICd2Jy4kdXVpZC4ncicsICRwYXJhbXN0cikuJwoJCQkJJzsKCQkJ fQoJCQkkb3V0W10gPSAnCgkJCQkJdicuJHV1aWQuJ3Iud3JpdGUoIicuJHV1aWQuJ2ZsYXNo cmVwbGFjZW1lbnQiKTsKCQkJJzsKCQkJLy92Jy4kdXVpZC4nci5hZGRQYXJhbSgic2NhbGUi LCAibm9zY2FsZSIpOwoJCQlpZigkcG1zZXQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAg CSRvdXRbXT0nfSc7CiAgICAgICAgICAgIH0KCQkJJG91dFtdPSAnCgkJCQk8L3NjcmlwdD4K CQkJJzsKICAgICAgICAgICAgZWNobyBpbXBsb2RlKCIiLCRtc2cpOwogICAgICAgICAgICAk cmV0dXJuID0gaW1wbG9kZSgiIiwkb3V0KTsKICAgICAgICAgICAgJHJldHVybiAuPSBodG1s ZW50aXRpZXMoJHJldHVybik7CiAgICAgICAgICAgIHJldHVybiAkcmV0dXJuOwoJCX0gZWxz ZSBpZighJGRlYnVnICYmICRmbGFzaG1vdmllICE9ICcnKSB7CgkJCWlmKCRwbXNldCkKICAg ICAgICAgICAgewoJCQkJJG91dFtdPScKCQkJCQk8ZGl2IGlkPSInLiR1dWlkLidmbGFzaHJl cGxhY2VtZW50IiBzdHlsZT0id2lkdGg6Jy4kd2lkdGguJztoZWlnaHQ6Jy4kaGVpZ2h0Lic7 Ij4KCQkJCQkJPGEgaHJlZj0iamF2YXNjcmlwdDp2b2lkKDApOyIgb25jbGljaz0iQ2wnLiR1 dWlkLidJY2soKSI+PGltZyBzcmM9IicuJHBvc3Rlci4nIiB3aWR0aD0iJy4kd2lkdGguJyIg aGVpZ2h0PSInLiRoZWlnaHQuJyIgYWx0PSJqcGVnIHRoYXQgd2lsbCBiZSByZXBsYWNlZCBi eSBmbGFzaCIgdGl0bGU9ImNsaWNrIGhlcmUgdG8gc3RhcnQgZmxhc2ggY29udGVudCIgLz48 L2E+CgkJCQkJPC9kaXY+CgkJCQkJJzsKCQkJfSBlbHNlIHsKCQkJCSRvdXRbXT0nCgkJCQkJ PGRpdiBpZD0iJy4kdXVpZC4nZmxhc2hyZXBsYWNlbWVudCIgc3R5bGU9IndpZHRoOicuJHdp ZHRoLic7aGVpZ2h0OicuJGhlaWdodC4nOyI+CgkJCQkJCTxwPlNvcnJ5LCBidXQgeW91IGRv IG5vdCBoYXZlIHRoZSBtaW5pbXVtIHZlcnNpb24gKCcuJHZlcnNpb24uJykgb2YgZmxhc2gg cGxheWVyIHJlcXVpcmVkIHRvIHBsYXkgdGhpcyBmbGFzaCBtb3ZpZS4gWW91IGNhbiBpbnN0 YWxsIG9yIHVwZ3JhZGUgZmxhc2ggPGEgaHJlZj0iaHR0cDovL3d3dy5hZG9iZS5jb20vc2hv Y2t3YXZlL2Rvd25sb2FkL2Rvd25sb2FkLmNnaT9QMV9Qcm9kX1ZlcnNpb249U2hvY2t3YXZl Rmxhc2giPmhlcmU8L2E+LjwvcD4KCQkJCQk8L2Rpdj4KCQkJCQknOwoJCQl9CiAgICAgICAg ICAgICRvdXRbXT0nCiAgICAgICAgICAgIAk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlw dCI+CgkJCSc7CiAgICAgICAgICAgIGlmKCRwbXNldCkKICAgICAgICAgICAgewogICAgICAg ICAgICAJJG91dFtdPSdmdW5jdGlvbiBDbCcuJHV1aWQuJ0ljaygpIHsnOwogICAgICAgICAg ICB9CgkJCSRvdXRbXSA9ICcKCQkJCQl2YXIgdicuJHV1aWQuJ3IgPSBuZXcgU1dGT2JqZWN0 KCInLiRmbGFzaG1vdmllLiciLCAiJy4kdXVpZC4nZmxhc2giLCAiJy4kd2lkdGguJyIsICIn LiRoZWlnaHQuJyIsICInLiR2ZXJzaW9uLiciLCAiIycuJGJnY29sb3IuJyIpOwoJCQkJCXYn LiR1dWlkLidyLmFkZFBhcmFtKCJzY2FsZSIsICInLiRzY2FsZS4nIik7JzsKCQkJaWYoJHBh cmFtc3RyIT0nJykKCQkJewoJCQkJJG91dFtdID0gJwoJCQkJJy5zdHJfcmVwbGFjZSgnJGpz byQnLCAndicuJHV1aWQuJ3InLCAkcGFyYW1zdHIpLicKCQkJCSc7CgkJCX0KCQkJJG91dFtd ID0gJwoJCQkJCXYnLiR1dWlkLidyLndyaXRlKCInLiR1dWlkLidmbGFzaHJlcGxhY2VtZW50 Iik7CgkJCSc7CgkJCWlmKCRwbXNldCkKICAgICAgICAgICAgewogICAgICAgICAgICAJJG91 dFtdPSd9JzsKICAgICAgICAgICAgfQoJCQkkb3V0W109ICcKCQkJCTwvc2NyaXB0PgoJCQkn OwogICAgICAgICAgICByZXR1cm4gaW1wbG9kZSgiIiwkb3V0KTsKCQl9Cgl9CgoJZnVuY3Rp b24gd2xrX2ZsZW1zY3JpcHRsaW5rKCRhdHRzKSB7CgkJJGpzZW1iZWQgPSAnPHNjcmlwdCB0 eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iJy4kYXR0c1sncGF0aCddLiciPjwvc2NyaXB0 Pic7CgkJcmV0dXJuICRqc2VtYmVkOwoJfQoKCS8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KCS8vCQkJCUdldCBGaWxlCgkvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQoKICAgIGZ1bmN0aW9uIHdsa19mbGVtX2dldF9maWxlKCR3aGVyZSkK ICAgIHsKCQlnbG9iYWwgJHBlcm1saW5rX21vZGU7CgkJJHRoaXNmaWxlID0gZmlsZURvd25s b2FkRmV0Y2hJbmZvKCR3aGVyZSk7CgkJaWYoIWVtcHR5KCR0aGlzZmlsZVsnZmlsZW5hbWUn XSkpCiAgICAgICAgewoJCQkkcGxheWVyID0gaHUuJ2ZpbGVzLycuJHRoaXNmaWxlWydmaWxl bmFtZSddOwoJCX0gZWxzZSB7CgkJCSRwbGF5ZXIgPSBmYWxzZTsKCQl9CgkJcmV0dXJuICRw bGF5ZXI7Cgl9CgogICAgZnVuY3Rpb24gd2xrX2ZsZW1fZ2V0X2Zyb250KCR3aGVyZSkKICAg IHsKCQlnbG9iYWwgJHBlcm1saW5rX21vZGUsICR0eHBjZmc7CgkJJHF1ZXJ5ID0gc2FmZV9x dWVyeSgnU0VMRUNUIGlkLCBleHQgRlJPTSAnLiR0eHBjZmdbJ3RhYmxlX3ByZWZpeCddLid0 eHBfaW1hZ2UgV0hFUkUgJy4kd2hlcmUuJyBMSU1JVCAxJyk7CgkJJGltZ3JvdyA9IG15c3Fs X2ZldGNoX3JvdygkcXVlcnkpOwoJCSR0aGlzZmlsZSA9IGFycmF5KCdmaWxlbmFtZSc9PiRp bWdyb3dbMF0uJGltZ3Jvd1sxXSk7CgkJJHBsYXllciA9IGh1LidpbWFnZXMvJzsKCQlpZigh ZW1wdHkoJHRoaXNmaWxlWydmaWxlbmFtZSddKSkKICAgICAgICB7CgkJCSRwbGF5ZXIgLj0g JHRoaXNmaWxlWydmaWxlbmFtZSddOwoJCX0gZWxzZSB7CgkJCSRwbGF5ZXIgPSBmYWxzZTsK CQl9CgkJcmV0dXJuICRwbGF5ZXI7Cgl9CgoKIjtzOjM6Im1kNSI7czozMjoiMGRkODdiNzQ0 MDBhMWEzYzNjOGM4NWNhYTA2MGNhNzciO30=