# Name: smd_if v0.5 # Type: Client side plugin # Generic multiple if condition tests # Author: Stef Dawson # URL: http://stefdawson.com/ # ..................................................................... # This is a plugin for Textpattern - http://textpattern.com/ # To install: textpattern > admin > plugins # Paste the following text into the 'Install plugin' box: # ..................................................................... YToxMTp7czo0OiJuYW1lIjtzOjY6InNtZF9pZiI7czo3OiJ2ZXJzaW9uIjtzOjM6IjAuNSI7 czo4OiJyZXZpc2lvbiI7czowOiIiO3M6NjoiYXV0aG9yIjtzOjExOiJTdGVmIERhd3NvbiI7 czoxMDoiYXV0aG9yX3VyaSI7czoyMjoiaHR0cDovL3N0ZWZkYXdzb24uY29tLyI7czoxMToi ZGVzY3JpcHRpb24iO3M6MzU6IkdlbmVyaWMgbXVsdGlwbGUgaWYgY29uZGl0aW9uIHRlc3Rz IjtzOjQ6InR5cGUiO3M6MToiMCI7czo0OiJoZWxwIjtzOjE3ODg4OiIJPHA+PGRpdiBpZD0i c21kX2hlbHAiPjwvcD4KCgk8aDE+c21kX2lmPC9oMT4KCgk8cD5BIHJlYWxseSBzaW1wbGUs IGdlbmVyaWMgJiM4MjE2O2lmIGNvbmRpdGlvbiYjODIxNzsgdGVzdGVyLiBDYW4gdGVzdCBh bnkgZmllbGQgaW4gdGhlIGN1cnJlbnQgYXJ0aWNsZSBvciBsaXN0IGNvbnRleHQgZm9yIGEg dmFyaWV0eSBvZiBhdHRyaWJ1dGVzIGFuZCB0YWtlIGFjdGlvbiBpZiA8c3BhbiBjbGFzcz0i Y2FwcyI+VFJVRTwvc3Bhbj4gb3IgPHNwYW4gY2xhc3M9ImNhcHMiPkZBTFNFPC9zcGFuPi48 L3A+CgoJPGgyPkZlYXR1cmVzPC9oMj4KCgk8dWw+CgkJPGxpPlN1cHBvcnRzIG1vc3QgbWFq b3IgdmFyaWFibGVzIHN1Y2ggYXMgc2VjdGlvbiwgY2F0ZWdvcnksIGN1c3RvbSBmaWVsZHMs IGlkLCBxdWVyeSBzdHJpbmcsIGF1dGhvciwgYm9keSwgZXhjZXJwdCwgeWFoZGUgeWFoZGUs IHBsdXMgdXJsIHZhcnMsIHNlcnZlciB2YXJzIGFuZCBzdWItY2F0ZWdvcnkvcGFyZW50IGNo ZWNraW5nPC9saT4KCQk8bGk+VGVzdHMgaW5jbHVkZSBlcXVhbGl0eSwgaW5lcXVhbGl0eSwg bGVzcyB0aGFuLCBncmVhdGVyIHRoYW4sIGVtcHR5LCB1c2VkLCBkZWZpbmVkLCBiZWdpbnMs IGNvbnRhaW5zIGFuZCBpc251bWVyaWM8L2xpPgoJCTxsaT5UZXN0cyBmb3IgbW9yZSB0aGFu IG9uZSBjb25kaXRpb24gYXQgb25jZSBhbmQgYXBwbGllcyBlaXRoZXIgPHNwYW4gY2xhc3M9 ImNhcHMiPkFORDwvc3Bhbj4gbG9naWMgKGFsbCB0ZXN0cyBtdXN0IHBhc3MpIG9yIE9SIGxv Z2ljIChhbnkgdGVzdCBtdXN0IHBhc3MpPC9saT4KCQk8bGk+VWdseSBhbmQgdmVyeSBkaXJ0 eS4gVXNlcyA8c3BhbiBjbGFzcz0iY2FwcyI+UEhQPC9zcGFuPiYjODIxNztzIDxjb2RlPmV2 YWwoKTwvY29kZT4gY29tbWFuZCB3aGljaCBtb3N0IHByb2dyYW1tZXJzIGNvbmN1ciBzaG91 bGQgYmUgcmVuYW1lZCA8Y29kZT5ldmlsKCk8L2NvZGU+PC9saT4KCTwvdWw+CgoJPGgyPkF1 dGhvcjwvaDI+CgoJPHA+PGEgaHJlZj0iaHR0cDovL3N0ZWZkYXdzb24uY29tL2NvbW1lbnRG b3JtIj5TdGVmIERhd3NvbjwvYT4uIEJhc2VkIG9uIGFuIGlkZWEgYnJld2luZyBpbiB0aGUg YmFjayBvZiBteSBtaW5kIHdoaWxlIGhhY2tpbmcgY2hzX2lmX3VybHZhci48L3A+CgoJPGgy Pkluc3RhbGxhdGlvbiAvIFVuaW5zdGFsbGF0aW9uPC9oMj4KCgk8cD5Eb3dubG9hZCB0aGUg cGx1Z2luIGZyb20gZWl0aGVyIDxhIGhyZWY9Imh0dHA6Ly90ZXh0cGF0dGVybi5vcmcvcGx1 Z2lucy85MzAvc21kX2lmIj50ZXh0cGF0dGVybi5vcmc8L2E+LCBvciB0aGUgPGEgaHJlZj0i aHR0cDovL3N0ZWZkYXdzb24uY29tL3N3Ij5zb2Z0d2FyZSBwYWdlPC9hPiwgcGFzdGUgdGhl IGNvZGUgaW50byB0aGUgPHNwYW4gY2xhc3M9ImNhcHMiPlRYUDwvc3Bhbj4gQWRtaW4gLSYj NjI7IFBsdWdpbnMgcGFuZSwgaW5zdGFsbCBhbmQgZW5hYmxlIHRoZSBwbHVnaW4uIFZpc2l0 IHRoZSA8YSBocmVmPSJodHRwOi8vZm9ydW0udGV4dHBhdHRlcm4uY29tL3ZpZXd0b3BpYy5w aHA/aWQ9MjUzNTciPmZvcnVtIHRocmVhZDwvYT4gZm9yIG1vcmUgaW5mbyBvciB0byByZXBv cnQgb24gdGhlIHN1Y2Nlc3Mgb3Igb3RoZXJ3aXNlIG9mIHRoZSBwbHVnaW4uPC9wPgoKCTxo Mj5Vc2FnZTwvaDI+CgoJPHA+VXNlIHRoZSB0YWcgaW4gYW55IHBhZ2UsIGZvcm0gb3IgYXJ0 aWNsZSBjb250ZXh0LjwvcD4KCgk8aDMgY2xhc3M9InRhZyI+c21kX2lmPC9oMz4KCgk8cCBj bGFzcz0idGFnLXN1bW1hcnkiPkF0IHRoZSBwbGFjZSB5b3Ugd2lzaCB0byBjb21wYXJlIGEg PHNwYW4gY2xhc3M9ImNhcHMiPlRYUDwvc3Bhbj4gZmllbGQgd2l0aCBhbm90aGVyIHZhbHVl LCBwdXQgdGhpcyB0YWcgd2l0aCBhbGwgdGhyZWUgbWFuZGF0b3J5IGF0dHJpYnV0ZXMgc2hh ZGVkIGJlbG93LiBFYWNoIHRha2UgYSBzZXJpZXMgb2YgY29tbWEtc2VwYXJhdGVkIGxpc3Rz ICYjODIxMjsgdGhvdWdoIHRoZSA8YSBocmVmPSIjcGFyYW1kZWxpbSI+Y29tbWEgaXMgb3Zl cnJpZGFibGU8L2E+IHdpdGggdGhlIHBhcmFtX2RlbGltIGF0dHJpYnV0ZS4gSWYgdGhlIHJl c3VsdCBvZiB0aGUgY29tcGFyaXNvbiB0ZXN0cyBpcyA8c3BhbiBjbGFzcz0iY2FwcyI+VFJV RTwvc3Bhbj4gdGhlIGNvbnRhaW5lZCBibG9jayB3aWxsIGJlIGV4ZWN1dGVkLiBJZiB0aGUg cmVzdWx0IGlzIDxzcGFuIGNsYXNzPSJjYXBzIj5GQUxTRTwvc3Bhbj4sIGFueSA8Y29kZT4m IzYwO3R4cDplbHNlIC8mIzYyOzwvY29kZT4gd2lsbCBiZSBleGVjdXRlZCBpbnN0ZWFkLiBX aXRob3V0IGFueSA8Y29kZT4mIzYwO3R4cDplbHNlIC8mIzYyOzwvY29kZT4gYmxvY2ssIG5v dGhpbmcgaXMgb3V0cHV0IGlmIHRoZSByZXN1bHQgaXMgPHNwYW4gY2xhc3M9ImNhcHMiPkZB TFNFPC9zcGFuPi48L3A+CgoJPGg0IGNsYXNzPSJhdHRzICIgaWQ9ImF0dHJpYnV0ZXMiPkF0 dHJpYnV0ZXM8L2g0PgoKCTx1bCBjbGFzcz0iYXR0cyI+CgkJPGxpPjxzcGFuIGNsYXNzPSJh dHQtbmFtZSBtYW5kIj5maWVsZDwvc3Bhbj4gOiB0aGUgPHNwYW4gY2xhc3M9ImNhcHMiPlRY UDwvc3Bhbj4gPGEgaHJlZj0iI2ZpZWxkIj5maWVsZHM8L2E+IHRvIHRlc3Q8L2xpPgoJCTxs aT48c3BhbiBjbGFzcz0iYXR0LW5hbWUgbWFuZCI+b3BlcmF0b3I8L3NwYW4+IDogdGhlIDxh IGhyZWY9IiNvcGVyYXRvciI+b3BlcmF0aW9uczwvYT4gZm9yIGNvbXBhcmlzb24gd2l0aCB0 aGF0IGZpZWxkIChlLmcuIDxjb2RlPmVxPC9jb2RlPiwgPGNvZGU+bm90PC9jb2RlPiwgPGNv ZGU+YmVnaW5zPC9jb2RlPiwgZXRjKTwvbGk+CgkJPGxpPjxzcGFuIGNsYXNzPSJhdHQtbmFt ZSBtYW5kIj52YWx1ZTwvc3Bhbj4gOiB0aGUgPGEgaHJlZj0iI3ZhbHVlIj52YWx1ZXM8L2E+ IHdpdGggd2hpY2ggdG8gY29tcGFyZSB0aGUgZmllbGRzPC9saT4KCQk8bGk+PHNwYW4gY2xh c3M9ImF0dC1uYW1lIj5sb2dpYzwvc3Bhbj4gOiBob3cgbXVsdGlwbGUgdGVzdHMgYXJlIGpv aW5lZDogPHNwYW4gY2xhc3M9ImNhcHMiPkFORDwvc3Bhbj4gb3IgT1IuIERlZmF1bHQgaXMg PHNwYW4gY2xhc3M9ImNhcHMiPkFORDwvc3Bhbj48L2xpPgoJCTxsaT48c3BhbiBjbGFzcz0i YXR0LW5hbWUiPmNhc2Vfc2Vuc2l0aXZlPC9zcGFuPiA6IDEgPSBjYXNlLXNlbnNpdGl2ZSBj b21wYXJpc29uOyAwID0gaWdub3JlIGNhc2UuIERlZmF1bHQgaXMgMDwvbGk+CgkJPGxpPjxz cGFuIGNsYXNzPSJhdHQtbmFtZSI+cGFyYW1fZGVsaW08L3NwYW4+IDogZGVsaW1pdGVyIHRv IHVzZSB3aGVuIHNwZWNpZnlpbmcgZmllbGQsIG9wZXJhdG9yIG9yIHZhbHVlIGxpc3RzLiBE ZWZhdWx0IGlzIHRoZSBjb21tYSAoLCk8L2xpPgoJCTxsaT48c3BhbiBjbGFzcz0iYXR0LW5h bWUiPm1vZF9kZWxpbTwvc3Bhbj4gOiBkZWxpbWl0ZXIgdG8gdXNlIHdoZW4gc3BlY2lmeWlu ZyBmaWVsZCBvciBvcGVyYXRvciBtb2RpZmllcnMuIERlZmF1bHQgaXMgdGhlIGNvbG9uICg6 KTwvbGk+Cgk8L3VsPgoKCTxwPlRoZSBsaXN0cyBhcmUgcHJvY2Vzc2VkIGluIG9yZGVyLCBp LmUuIHRoZSAxc3QgZmllbGQgdXNlcyB0aGUgMXN0IG9wZXJhdG9yIGluIHRoZSBsaXN0IGFu ZCBjb21wYXJlcyBpdCB0byB0aGUgMXN0IHZhbHVlOyB0aGUgMm5kIGZpZWxkIHVzZXMgdGhl IDJuZCBvcGVyYXRvciBpbiB0aGUgbGlzdCBhbmQgY29tcGFyZXMgaXQgdG8gdGhlIDJuZCB2 YWx1ZSwgYW5kIHNvIG9uLiBWYWx1ZXMgc2hvdWxkIHVzdWFsbHkgYmUgc3BlY2lmaWVkIHdp dGggcGxhY2Vob2xkZXJzIHRvIG1haW50YWluIG9yZGVyOiBlLmcuIDxjb2RlPnZhbHVlPSYj MzQ7LCA0LCwgdG9wJiMzNDs8L2NvZGU+PC9wPgoKCTxwPk5vdGUgdGhhdCwgYWx0aG91Z2gg dGhlIGZpcnN0IHRocmVlIGF0dHJpYnV0ZXMgYXJlIGNvbnNpZGVyZWQgbWFuZGF0b3J5LCBp ZiB5b3UgaGFwcGVuIHRvIHJlcXVpcmUgdGhlIGRlZmF1bHQgb3BlcmF0b3IgZm9yIGFsbCB5 b3VyIHRlc3RzLCB5b3UgY2FuIHNhZmVseSBvbWl0IDxjb2RlPm9wZXJhdG9yPC9jb2RlPi4g U2ltaWxhcmx5IHdpdGggdmFsdWVzOiBpZiB5b3UgYXJlIGVudGlyZWx5IHRlc3RpbmcgdGhl IGV4aXN0ZW5jZSBvciB0eXBlIG9mIHZhcmlhYmxlcywgeW91IGNhbiBvbWl0IHRoZSA8Y29k ZT52YWx1ZTwvY29kZT4gcGFyYW1ldGVyIGlmIHlvdSB3aXNoLjwvcD4KCgk8aDQgY2xhc3M9 ImF0dC1uYW1lICIgaWQ9ImZpZWxkIj5maWVsZDwvaDQ+CgoJPHA+TGlzdCBvZiBUZXh0UGF0 dGVybiBmaWVsZHMgdG8gbG9vayBhdC4gUG9zc2libGUgdmFsdWVzIGFyZToKCTx1bD4KCQk8 bGk+PGNvZGU+c2VjdGlvbjwvY29kZT48L2xpPgoJCTxsaT48Y29kZT5jYXRlZ29yeTwvY29k ZT4gKG9yIDxjb2RlPmNhdGVnb3J5MTwvY29kZT4sIG9yIDxjb2RlPmNhdGVnb3J5MjwvY29k ZT4pPC9saT4KCQk8bGk+PGNvZGU+YXV0aG9yaWQ8L2NvZGU+PC9saT4KCQk8bGk+PGNvZGU+ aWQ8L2NvZGU+IChhcnRpY2xlIElEKTwvbGk+CgkJPGxpPjxjb2RlPnF1ZXJ5PC9jb2RlPiAo dGhlIHF1ZXJ5IHN0cmluZyBmcm9tIHRoZSBzZWFyY2ggZm9ybSk8L2xpPgoJCTxsaT48Y29k ZT5wZzwvY29kZT4gKHRoZSBjdXJyZW50IHBhZ2UgbnVtYmVyKTwvbGk+CgkJPGxpPjxjb2Rl PnN0YXR1czwvY29kZT4gKGRvY3VtZW50IHN0YXR1czogMjAwLCA0MDQsIDQwMywgZXRjKTwv bGk+CgkJPGxpPjxjb2RlPm5leHRfaWQ8L2NvZGU+IChJRCBvZiBuZXh0IGRvY3VtZW50IGlm IG9uIGFydGljbGUgcGFnZSk8L2xpPgoJCTxsaT48Y29kZT5uZXh0X3RpdGxlPC9jb2RlPiAo VGl0bGUgb2YgbmV4dCBkb2N1bWVudCBpZiBvbiBhcnRpY2xlIHBhZ2UpPC9saT4KCQk8bGk+ PGNvZGU+cHJldl9pZDwvY29kZT48L2xpPgoJCTxsaT48Y29kZT5wcmV2X3RpdGxlPC9jb2Rl PjwvbGk+CgkJPGxpPjxjb2RlPm90aGVyIGFydGljbGUgZmllbGQ8L2NvZGU+IChlLmcuIGJv ZHksIGV4Y2VycHQsIGFydGljbGVfaW1hZ2UsIGtleXdvcmRzJiM4MjMwOyk8L2xpPgoJCTxs aT48Y29kZT5teV9jdXN0b21fZmllbGRfbmFtZTwvY29kZT4gKGFueSBjdXN0b20gZmllbGRz IHlvdSBoYXZlIGRlZmluZWQpPC9saT4KCQk8bGk+PGNvZGU+dXJsdmFyOm15X3ZhcmlhYmxl X25hbWU8L2NvZGU+IChhbnkgdmFyaWFibGUgaW4gdGhlIGFkZHJlc3MgYmFyKTwvbGk+CgkJ PGxpPjxjb2RlPnN2cnZhcjpteV92YXJpYWJsZV9uYW1lPC9jb2RlPiAoYW55IHNlcnZlciB2 YXJpYWJsZSwgZS5nLiA8c3BhbiBjbGFzcz0iY2FwcyI+SFRUUDwvc3Bhbj5fVVNFUl9BR0VO VCk8L2xpPgoJCTxsaT48Y29kZT5wYXJlbnQ6b3B0aW9uYWxfbW9kaWZpZXJzPC9jb2RlPiAo d2hldGhlciB0aGUgZ2l2ZW4gY2F0ZWdvcnkgaXMgYSBkZXNjZW5kZW50IG9mIGFub3RoZXIg Y2F0ZWdvcnkpPC9saT4KCTwvdWw+PC9wPgoKCTxwPklmIHlvdSBzcGVjaWZ5IGEgZmllbGQg bmFtZSB0aGF0IGRvZXMgbm90IGV4aXN0LCB0aGUgdGV4dCB5b3UgdXNlIHdpbGwgYmUgdGFr ZW4gdmVyYmF0aW0gaW4gbW9zdCBjYXNlcy48L3A+CgoJPHA+VGhlIHNwZWNpYWwgZmllbGQg PGNvZGU+cGFyZW50PC9jb2RlPiBjaGVja3MgdGhlIHBhcmVudCBjYXRlZ29yeSBmb3IgYSBt YXRjaC4gVW5saWtlIHRoZSBvdGhlciBmaWVsZCB0eXBlcywgdGhlIGRlZmF1bHQgPGEgaHJl Zj0iI29wZXJhdG9yIj5vcGVyYXRvcjwvYT4gZm9yIHBhcmVudCBpcyAmIzgyMTY7Y29udGFp bnMmIzgyMTc7LiBUaGlzIGlzIGJlY2F1c2UgdGhlIGVudGlyZSB0cmVlIGlzIGNoZWNrZWQg Zm9yIGEgbWF0Y2gsIHN0YXJ0aW5nIGZyb20gdGhlIHRvcCBvZiB0aGUgdHJlZSBkb3duIHRv IHRoZSBjdXJyZW50IGNhdGVnb3J5LiBJbnRlcm5hbGx5LCB0aGUgcGx1Z2luIG1ha2VzIHVw IGEgJiM4MjIwO2JyZWFkY3J1bWIgdHJhaWwmIzgyMjE7IG9mIGNhdGVnb3JpZXMgaW4gdGhl IGN1cnJlbnQgYnJhbmNoLCBlYWNoIHNlcGFyYXRlZCBieSBhIHNwYWNlLCBzbyB0ZXN0aW5n IGZvciBlcXVhbGl0eSB3b3VsZCByZXF1aXJlIHB1dHRpbmcgdGhlbSBhbGwgaW4gdGhlIDxh IGhyZWY9IiN2YWx1ZSI+dmFsdWU8L2E+IHBhcmFtZXRlci48L3A+CgoJPHA+WW91IGFyZSBv ZiBjb3Vyc2UgZnJlZSB0byBjaG9vc2UgYW4gYWx0ZXJuYXRpdmUgb3BlcmF0b3I7IDxjb2Rl PmJlZ2luczwvY29kZT4gaXMgdmVyeSB1c2VmdWwgZm9yIHRlc3RpbmcgaWYgdGhlIHRvcCBs ZXZlbCBjYXRlZ29yeSBtYXRjaGVzIHRoZSBvbmUgZ2l2ZW4gaW4gdGhlIDxjb2RlPnZhbHVl PC9jb2RlPiBmaWVsZC48L3A+CgoJPHA+WW91IGNhbiBtb2RpZnkgdGhlIGJlaGF2aW91ciBv ZiB0aGUgcGFyZW50IG9wdGlvbiwgYXMgZm9sbG93cy4gU3BlY2lmeWluZyAmIzgyMjA7cGFy ZW50JiM4MjIxOyBvbiBpdHMgb3duIHdpbGwgdXNlIHRoZSBnbG9iYWwgY2F0ZWdvcnkgKDxj b2RlPj9jPTwvY29kZT4pLiBJZiB5b3UgYWRkIDxjb2RlPjpDQVRuPC9jb2RlPiB0byB0aGUg b3B0aW9uICh3aGVyZSAmIzgyMTY7biYjODIxNzsgaXMgMSBvciAyKSBpdCB3aWxsIGluc3Rl YWQgY29tcGFyZSBjYXRlZ29yeTEgb3IgY2F0ZWdvcnkyIHJlc3BlY3RpdmVseS4gSWYgeW91 IGFkZCA8Y29kZT46TFZMbjwvY29kZT4gdG8gdGhlIG9wdGlvbiwgdGhlIGNvbXBhcmlzb24g d2lsbCBiZSByZXN0cmljdGVkIHRvIHRoYXQgJiM4MjIwO2xldmVsJiM4MjIxOyBvZiBzdWIt Y2F0ZWdvcnk7IExWTDEgaXMgdGhlICYjODIyMDt0b3AmIzgyMjE7IGxldmVsLCBMVkwyIGlz IHRoZSBuZXh0IHN1Yi1jYXRlZ29yeSBsZXZlbCwgYW5kIHNvIG9uLiBXaGVuIHVzaW5nIHRo ZXNlIG1vZGlmaWVycywgdGhlICYjODIxNjtlcSYjODIxNzsgb3BlcmF0b3IgYmVjb21lcyBt b3JlIHVzZWZ1bCBiZWNhdXNlIHlvdSBhcmUgY29tcGFyaW5nIGEgc2luZ2xlIHBhcmVudCBj YXRlZ29yeS48L3A+CgoJPHA+WW91IGNhbiB1c2UgPHNwYW4gY2xhc3M9ImNhcHMiPkNBVDwv c3Bhbj4gYW5kIDxzcGFuIGNsYXNzPSJjYXBzIj5MVkw8L3NwYW4+IGluIGNvbWJpbmF0aW9u LCBpbmRlcGVuZGVudGx5IG9yIG5vdCBhdCBhbGwuIFRoaXMgYWxsb3dzIGNvbXBhcmlzb25z IHN1Y2ggYXMgJiM4MjIwO2lmIHRoZSAybmQgc3ViLWNhdGVnb3J5IG9mIGNhdGVnb3J5MSBl cXVhbHMgYmxhaGJsYWgmIzgyMjE7IG9yICYjODIyMDtpZiBjYXRlZ29yeTIgaXMgYSBjaGls ZCBvZiBibGFoYmxhaCYjODIyMTsuIFNlZSA8YSBocmVmPSIjZWc0Ij5FeGFtcGxlIDQ8L2E+ LjwvcD4KCgk8aDQgY2xhc3M9ImF0dC1uYW1lICIgaWQ9Im9wZXJhdG9yIj5vcGVyYXRvcjwv aDQ+CgoJPHA+TGlzdCBvZiBvcGVyYXRvcnMgdG8gYXBwbHksIGluIG9yZGVyLCB0byBlYWNo IGZpZWxkLiBDaG9vc2UgZnJvbTo8L3A+CgoJPHVsPgoJCTxsaT48Y29kZT5lcTwvY29kZT4g RXF1YWwgKHRoZSBkZWZhdWx0IGZvciBhbGwgZXhjZXB0ICYjODIxNjtwYXJlbnQmIzgyMTc7 KTwvbGk+CgkJPGxpPjxjb2RlPm5vdDwvY29kZT4gTm90IGVxdWFsPC9saT4KCQk8bGk+PGNv ZGU+bHQ8L2NvZGU+IExlc3MgdGhhbjwvbGk+CgkJPGxpPjxjb2RlPmd0PC9jb2RlPiBHcmVh dGVyIHRoYW48L2xpPgoJCTxsaT48Y29kZT5sZTwvY29kZT4gTGVzcyB0aGFuIG9yIGVxdWFs IHRvPC9saT4KCQk8bGk+PGNvZGU+Z2U8L2NvZGU+IEdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0 bzwvbGk+CgkJPGxpPjxjb2RlPmJlZ2luczwvY29kZT4gVmFyaWFibGUgYmVnaW5zIHdpdGgg YSBzZXF1ZW5jZSBvZiBjaGFyYWN0ZXJzPC9saT4KCQk8bGk+PGNvZGU+Y29udGFpbnM8L2Nv ZGU+IFZhcmlhYmxlIGNvbnRhaW5zIGEgc2VxdWVuY2Ugb2YgY2hhcmFjdGVycyAoZGVmYXVs dCBmb3IgJiM4MjE2O3BhcmVudCYjODIxNzspPC9saT4KCQk8bGk+PGNvZGU+aXNudW08L2Nv ZGU+IFZhcmlhYmxlIGlzIGEgbnVtYmVyPC9saT4KCQk8bGk+PGNvZGU+aXNlbXB0eTwvY29k ZT4gVmFyaWFibGUgaXMgZW1wdHkgKGNvbnRhaW5zIG5vdGhpbmcpPC9saT4KCQk8bGk+PGNv ZGU+aXN1c2VkPC9jb2RlPiBWYXJpYWJsZSBoYXMgc29tZSB2YWx1ZTwvbGk+CgkJPGxpPjxj b2RlPmRlZmluZWQ8L2NvZGU+IFZhcmlhYmxlIGlzIHNldCAodXNlZnVsIHdpdGggdXJsdmFy IHZhcmlhYmxlcyk8L2xpPgoJCTxsaT48Y29kZT51bmRlZmluZWQ8L2NvZGU+IFZhcmlhYmxl IGlzIG5vdCBzZXQsIG9yIG1pc3NpbmcgZnJvbSB0aGUgPHNwYW4gY2xhc3M9ImNhcHMiPlVS TDwvc3Bhbj4gbGluZTwvbGk+Cgk8L3VsPgoKCTxwPldpdGggdGhlIGNvbXBhcmlzb24gb3Bl cmF0b3JzIChndCwgbHQsIGdlLCBsZSkgeW91IG1heSBmaW5kIG9kZCBiZWhhdmlvdXIgd2hl biBjb21wYXJpbmcgbnVtYmVycy4gRm9yIGV4YW1wbGUsIDxjb2RlPnVybHZhcjpwaWMgZ3Qg NjwvY29kZT4gd2lsbCByZXR1cm4gPHNwYW4gY2xhc3M9ImNhcHMiPlRSVUU8L3NwYW4+IGlm IHRoZSA8Y29kZT5waWM8L2NvZGU+IHZhcmlhYmxlIGlzIHNldCB0byAmIzgyMjA7ZnJlZCYj ODIyMTsuIFRoaXMgaXMgYmVjYXVzZSB0aGUgd29yZCAmIzgyMjA7ZnJlZCYjODIyMTsgKG9y IGF0IGxlYXN0IHRoZSAmIzgyMjA7Y2hhcmFjdGVyIGYmIzgyMjE7KSBpcyBncmVhdGVyIGlu IHRoZSA8c3BhbiBjbGFzcz0iY2FwcyI+QVNDSUk8L3NwYW4+IHRhYmxlIHRoYW4gdGhlICYj ODIyMDtjaGFyYWN0ZXIgNiYjODIyMTsuPC9wPgoKCTxwPlRvIGNpcmN1bXZlbnQgdGhpcyBw cm9ibGVtLCB5b3UgbWF5IGFwcGVuZCA8Y29kZT46TlVNPC9jb2RlPiB0byB0aGUgZW5kIG9m IGFueSBvZiB0aGVzZSA0IG9wZXJhdG9ycyB0byBmb3JjZSB0aGUgcGx1Z2luIHRvIGNoZWNr IHRoYXQgdGhlIHZhbHVlcyBhcmUgaW50ZWdlcnMuPC9wPgoKCTxwPk5vdGUgdGhhdCB3aGls ZSA8Y29kZT5kZWZpbmVkPC9jb2RlPiBhbmQgPGNvZGU+dW5kZWZpbmVkPC9jb2RlPiBkaWZm ZXIgc2VtYW50aWNhbGx5IGZyb20gPGNvZGU+aXN1c2VkPC9jb2RlPiBhbmQgPGNvZGU+aXNl bXB0eTwvY29kZT4gKHJlc3BlY3RpdmVseSksIHRoZSB3YXkgPHNwYW4gY2xhc3M9ImNhcHMi PlRYUDwvc3Bhbj4gYXNzaWducyB2YXJpYWJsZXMgbWVhbnMgdGhhdCwgZm9yIHRoZSBtb3N0 IHBhcnQsIHRoZXkgYXJlIGludGVyY2hhbmdlYWJsZS4gT25lIGNhdmVhdCBpcyB0aGF0IDxj b2RlPmRlZmluZWQ8L2NvZGU+IGFuZCA8Y29kZT51bmRlZmluZWQ8L2NvZGU+IGRvbiYjODIx Nzt0IG1ha2Ugc2Vuc2Ugd2l0aCA8Y29kZT5wYXJlbnQ8L2NvZGU+LCBzbyB0aGV5IGFyZSBm b3JiaWRkZW4uPC9wPgoKCTxoNCBjbGFzcz0iYXR0LW5hbWUgIiBpZD0idmFsdWUiPnZhbHVl PC9oND4KCgk8cD5MaXN0IG9mIHZhbHVlcyB0byBjb21wYXJlIGVhY2ggZmllbGQgaW4gdHVy biB0by4gQ2FuIGJlIHN0YXRpYyB2YWx1ZXMvdGV4dCBvciB0aGUgbmFtZSBvZiBhbnkgPHNw YW4gY2xhc3M9ImNhcHMiPlRYUDwvc3Bhbj4gZmllbGQsIGxpa2UgdGhvc2UgZ2l2ZW4gaW4g PGEgaHJlZj0iI2ZpZWxkIj5maWVsZDwvYT4gKGV4Y2VwdCAmIzgyMjA7cGFyZW50JiM4MjIx OykuPC9wPgoKCTxwPlRvIGRpc3Rpbmd1aXNoIGEgPHNwYW4gY2xhc3M9ImNhcHMiPlRYUDwv c3Bhbj4gZmllbGQgZnJvbSBzdGF0aWMgdGV4dCwgcHJlZml4IHRoZSBmaWVsZCBuYW1lIHdp dGggPGNvZGU+PzwvY29kZT4uIEZvciBleGFtcGxlOiA8Y29kZT52YWx1ZT0mIzM0O3RpdGxl JiMzNDs8L2NvZGU+IHdpbGwgY29tcGFyZSB5b3VyIGNob3NlbiBmaWVsZCBhZ2FpbnN0IHRo ZSB3b3JkICYjODIyMDt0aXRsZSYjODIyMTssIHdoZXJlYXMgPGNvZGU+dmFsdWU9JiMzNDs/ dGl0bGUmIzM0OzwvY29kZT4gd2lsbCBjb21wYXJlIHlvdXIgZmllbGQgYWdhaW5zdCB0aGUg YXJ0aWNsZSYjODIxNztzIHRpdGxlLjwvcD4KCgk8cD5Ob3RlIHRoYXQgeW91IG1heSBmaW5k IHVzaW5nIGRvdWJsZS1xdW90ZXMgaW4gZmllbGRzIGdpdmVzIHVuZXhwZWN0ZWQgcmVzdWx0 cy4gVGhleSBhcmUgYmVzdCBhdm9pZGVkLCBvciB3b3JrZWQgYXJvdW5kIGJ5IHVzaW5nIDxj b2RlPmNvbnRhaW5zPC9jb2RlPiBpbnN0ZWFkIG9mIDxjb2RlPmVxPC9jb2RlPi48L3A+CgoJ PGg0IGNsYXNzPSJhdHQtbmFtZSAiIGlkPSJsb2dpYyI+bG9naWM8L2g0PgoKCTxwPkNhbiBi ZSBvbmUgb2YgPGNvZGU+YW5kPC9jb2RlPiAodGhlIGRlZmF1bHQpIG9yIDxjb2RlPm9yPC9j b2RlPi4gSWYgdXNpbmcgPGNvZGU+YW5kPC9jb2RlPiwgYWxsIGNvbmRpdGlvbnMgbXVzdCBi ZSBtZXQgZm9yIGEgPHNwYW4gY2xhc3M9ImNhcHMiPlRSVUU8L3NwYW4+IHJlc3VsdC4gSWYg dXNpbmcgPGNvZGU+b3I8L2NvZGU+LCBhbnkgb2YgdGhlIGNvbmRpdGlvbnMgdGhhdCBtYXRj aCB3aWxsIGdpdmUgYSA8c3BhbiBjbGFzcz0iY2FwcyI+VFJVRTwvc3Bhbj4gcmVzdWx0Ljwv cD4KCgk8aDQgY2xhc3M9ImF0dC1uYW1lICIgaWQ9ImNhc2VzZW5zZSI+Y2FzZV9zZW5zaXRp dmU8L2g0PgoKCTxwPkJ5IGRlZmF1bHQsIGFsbCBjb21wYXJpc29ucyBhcmUgY2FzZS1pbnNl bnNpdGl2ZSAoMCkuIElmIHlvdSB3aXNoIHRvIG1ha2UgdGhlbSBzZW5zaXRpdmUgdG8gY2Fw dGlsaXNhdGlvbiwgc3BlY2lmeSA8Y29kZT5jYXNlX3NlbnNpdGl2ZT0mIzM0OzEmIzM0Ozwv Y29kZT48L3A+CgoJPGg0IGNsYXNzPSJhdHQtbmFtZSAiIGlkPSJwYXJhbWRlbGltIj5wYXJh bV9kZWxpbTwvaDQ+CgoJPHA+WW91IG5vcm1hbGx5IHNwZWNpZnkgY29tbWEtc2VwYXJhdGVk IGxpc3RzIHRvIHRoZSBmaWVsZCwgb3BlcmF0b3IgYW5kIHZhbHVlIHBhcmFtZXRlcnMuIFNv bWV0aW1lcyB0aGlzIG1pZ2h0IG5vdCBiZSBkZXNpcmFibGUgaWYgeW91IGhhdmUgdXNlZCB0 aGF0IGNoYXJhY3RlciBpbiB0aGUgbmFtZSBvZiBhIGN1c3RvbSBmaWVsZCwgZm9yIGV4YW1w bGUuIFRoaXMgb3B0aW9uIGFsbG93cyB5b3UgdG8gY2hhbmdlIHRoZSBkZWxpbWl0ZXIgdG8g YWxtb3N0IGFueXRoaW5nIHlvdSBsaWtlLCBlLmcuIHNwZWNpZnlpbmcgPGNvZGU+cGFyYW1f ZGVsaW09JiMzNDsvLyYjMzQ7PC9jb2RlPiBtZWFucyB5b3Ugd291bGQgc3BlY2lmeSA8ZW0+ YWxsPC9lbT4geW91ciBwYXJhbWV0ZXIgbGlzdHMgbGlrZSB0aGlzOjwvcD4KCgk8cD48Y29k ZT5maWVsZD0mIzM0O3NlY3Rpb24gLy8gdXJsdmFyOnR5cGUmIzM0OyBvcGVyYXRvcj0mIzM0 O2VxIC8vIGJlZ2lucyYjMzQ7IHZhbHVlPSYjMzQ7YW5pbWFscyAvLyB0aWdlciYjMzQ7PC9j b2RlPjwvcD4KCgk8aDQgY2xhc3M9ImF0dC1uYW1lICIgaWQ9Im1vZGRlbGltIj5tb2RfZGVs aW08L2g0PgoKCTxwPlZlcnkgc2ltaWxhciB0byA8YSBocmVmPSIjcGFyYW1kZWxpbSI+cGFy YW1fZGVsaW08L2E+LCB0aGlzIGdvdmVybnMgdGhlIGRlbGltaXRlciB0byB1c2UgYmV0d2Vl biBhbiBvcHRpb24gYW5kIGl0cyBtb2RpZmllciAoZS5nLiB0aGUgdGhpbmcgc2VwYXJhdGlu ZyB1cmx2YXIgb3Igc3ZydmFyIGZyb20gdGhlIHZhcmlhYmxlIG5hbWUsIG9yIHBhcmVudCBm cm9tIDxjb2RlPkxWTDwvY29kZT4gYW5kIDxjb2RlPkNBVDwvY29kZT4sIGFuZCBhbHNvIHRo ZSBjaGFyYWN0ZXIocykgdGhhdCBzZXBhcmF0ZSBhIG51bWVyaWNhbCBvcGVyYXRvciBmcm9t IHRoZSA8c3BhbiBjbGFzcz0iY2FwcyI+TlVNPC9zcGFuPiBtb2RpZmllcikuIEl0IGlzIHRo ZSBjb2xvbiAoOikgYnkgZGVmYXVsdC48L3A+CgoJPHA+Tm90ZSB0aGF0IGluIGJvdGggJiM4 MjE2O2RlbGltJiM4MjE3OyBhdHRyaWJ1dGVzLCBzb21lIGNoYXJhY3RlciBzZXF1ZW5jZXMg bWF5IGNhdXNlIHByb2JsZW1zIChxdW90ZXMgJiM4MjEyOyBzaW5nbGUgb3IgZG91YmxlICYj ODIxMjsgc3ByaW5nIHRvIG1pbmQ7IG90aGVycyBsaWtlIHBhcmVudGhlc2VzIG1heSBhbHNv IGNhdXNlIHRoZSBwbHVnaW4gdG8gZXhwbG9kZSkuPC9wPgoKCTxoMj5FeGFtcGxlczwvaDI+ CgoJPGgzIGlkPSJlZzEiPkV4YW1wbGUgMTwvaDM+Cgo8cHJlIGNsYXNzPSJibG9jayI+PGNv ZGUgY2xhc3M9ImJsb2NrIj4mIzYwO3R4cDpzbWRfaWYgZmllbGQ9JiMzNDtzZWN0aW9uLCBp ZCYjMzQ7CiAgICAgb3BlcmF0b3I9JiMzNDtiZWdpbnMsIGd0JiMzNDsKICAgICB2YWx1ZT0m IzM0O2xpb24sIDEyJiMzNDsmIzYyOwogJiM2MDt0eHA6YXJ0aWNsZSAvJiM2MjsKJiM2MDt0 eHA6ZWxzZSAvJiM2MjsKICYjNjA7cCYjNjI7Tm90IHRvZGF5LCB0aGFua3MmIzYwOy9wJiM2 MjsKJiM2MDsvdHhwOnNtZF9pZiYjNjI7CjwvY29kZT48L3ByZT4KCgk8cD5DaGVja3MgaWYg dGhlIGN1cnJlbnQgc2VjdGlvbiBuYW1lIGJlZ2lucyB3aXRoIHRoZSB3b3JkICYjODIyMDts aW9uJiM4MjIxOyBhbmQgdGhlIGFydGljbGUgSUQgaXMgZ3JlYXRlciB0aGFuIDEyLiBEaXNw bGF5cyB0aGUgYXJ0aWNsZSBpZiBib3RoIGNvbmRpdGlvbnMgYXJlIG1ldCBvciBkaXNwbGF5 cyB0aGUgdGV4dCAmIzgyMjA7Tm90IHRvZGF5LCB0aGFua3MmIzgyMjE7IGlmIG5vdC48L3A+ CgoJPGgzIGlkPSJlZzIiPkV4YW1wbGUgMjwvaDM+Cgo8cHJlIGNsYXNzPSJibG9jayI+PGNv ZGUgY2xhc3M9ImJsb2NrIj4mIzYwO3R4cDpzbWRfaWYgZmllbGQ9JiMzNDtzdW1tYXJ5LCBj YXRlZ29yeSwgdXJsdmFyOnBpYyYjMzQ7CiAgICAgb3BlcmF0b3I9JiMzNDtpc3VzZWQsIGVx LCBpc251bSYjMzQ7CiAgICAgdmFsdWU9JiMzNDssIGFuaW1hbCAsJiMzNDsgJiM2MjsKICYj NjA7dHhwOmFydGljbGUgLyYjNjI7CiYjNjA7dHhwOmVsc2UgLyYjNjI7CiAmIzYwO3AmIzYy O05vdCB0b2RheSwgdGhhbmtzJiM2MDsvcCYjNjI7CiYjNjA7L3R4cDpzbWRfaWYmIzYyOwo8 L2NvZGU+PC9wcmU+CgoJPHA+Q2hlY2tzIGlmIHRoZSBjdXN0b20gZmllbGQgbGFiZWxsZWQg JiM4MjIwO3N1bW1hcnkmIzgyMjE7IGhhcyBzb21lIGRhdGEgaW4gaXQsIGNoZWNrcyBpZiB0 aGUgZ2xvYmFsIGNhdGVnb3J5IGVxdWFscyAmIzgyMjA7YW5pbWFsJiM4MjIxOyBhbmQgdGVz dHMgaWYgdGhlIHVybHZhciA8Y29kZT5waWM8L2NvZGU+IGlzIG51bWVyaWMgKGUuZy4gPGNv ZGU+P3BpYz01PC9jb2RlPikuPC9wPgoKCTxwPklmIGFsbCB0aGVzZSBjb25kaXRpb25zIGFy ZSBtZXQgdGhlIGFydGljbGUgaXMgZGlzcGxheWVkLCBlbHNlIHRoZSBtZXNzYWdlIGlzIHNo b3duLiBOb3RlIHRoYXQgPGNvZGU+aXN1c2VkPC9jb2RlPiBhbmQgPGNvZGU+aXNudW08L2Nv ZGU+IGRvbiYjODIxNzt0IHRha2UgYXJndW1lbnRzIGZvciA8Y29kZT52YWx1ZTwvY29kZT4g YW5kIHRoZWlyIHBvc2l0aW9ucyBhcmUgaGVsZCBieSBlbXB0eSBjb21tYXMgKHRlY2huaWNh bGx5IHRoZSBsYXN0IGNvbW1hIGlzbiYjODIxNzt0IG5lZWRlZCBidXQgaXQgaGVscHMga2Vl cCBldmVyeXRoaW5nIG5lYXQgaWYgeW91IGFkZCBmdXJ0aGVyIHRlc3RzIGxhdGVyIG9uKS48 L3A+CgoJPGgzIGlkPSJlZzMiPkV4YW1wbGUgMzwvaDM+Cgo8cHJlIGNsYXNzPSJibG9jayI+ PGNvZGUgY2xhc3M9ImJsb2NrIj4mIzYwO3R4cDpzbWRfaWYgZmllbGQ9JiMzNDthcnRpY2xl X2ltYWdlLCBzdnJ2YXI6SFRUUF9VU0VSX0FHRU5UJiMzNDsKICAgICBvcGVyYXRvcj0mIzM0 O2VxLCBjb250YWlucyYjMzQ7CiAgICAgdmFsdWU9JiMzNDt1cmx2YXI6cGljLCBTYWZhcmkm IzM0OwogICAgIGxvZ2ljPSYjMzQ7b3ImIzM0OyYjNjI7CiAmIzYwO3R4cDphcnRpY2xlIC8m IzYyOwomIzYwO3R4cDplbHNlIC8mIzYyOwogJiM2MDtwJiM2MjtOb3QgdG9kYXksIHRoYW5r cyYjNjA7L3AmIzYyOwomIzYwOy90eHA6c21kX2lmJiM2MjsKPC9jb2RlPjwvcHJlPgoKCTxw PkNvbXBhcmVzIChmb3IgZXF1YWxpdHkpIHRoZSBjdXJyZW50IGFydGljbGUgaW1hZ2UgaWQg d2l0aCB0aGUgdmFsdWUgb2YgdGhlIHVybCB2YXJpYWJsZSA8Y29kZT5waWM8L2NvZGU+IGFu ZCBjaGVja3MgaWYgdGhlIHZhbHVlIG9mIHRoZSA8c3BhbiBjbGFzcz0iY2FwcyI+SFRUUDwv c3Bhbj5fVVNFUl9BR0VOVCBzdHJpbmcgY29udGFpbnMgJiM4MjIwO1NhZmFyaSYjODIyMTsu IFRoaXMgZXhhbXBsZSB1c2VzIHRoZSAmIzgyMTY7b3ImIzgyMTc7IGxvZ2ljLCBoZW5jZSBp ZiA8ZW0+ZWl0aGVyPC9lbT4gY29uZGl0aW9uIGlzIG1ldCB0aGUgYXJ0aWNsZSBpcyBzaG93 biwgb3RoZXJ3aXNlIHRoZSAmIzgyMTY7bm90IHRvZGF5JiM4MjE3OyBtZXNzYWdlIGlzIGRp c3BsYXllZC48L3A+CgoJPGgzIGlkPSJlZzQiPkV4YW1wbGUgNDwvaDM+Cgo8cHJlIGNsYXNz PSJibG9jayI+PGNvZGUgY2xhc3M9ImJsb2NrIj4mIzYwO3R4cDpzbWRfaWYgZmllbGQ9JiMz NDtwYXJlbnQ6TFZMMiYjMzQ7CiAgICAgb3BlcmF0b3I9JiMzNDtlcSYjMzQ7CiAgICAgdmFs dWU9JiMzNDttYW1tYWwmIzM0OyYjNjI7CiAmIzYwO3R4cDphcnRpY2xlIC8mIzYyOwomIzYw O3R4cDplbHNlIC8mIzYyOwogJiM2MDtwJiM2MjtOb3QgdG9kYXksIHRoYW5rcyYjNjA7L3Am IzYyOwomIzYwOy90eHA6c21kX2lmJiM2MjsKPC9jb2RlPjwvcHJlPgoKCTxwPkNoZWNrcyB0 aGUgMm5kIHN1Yi1jYXRlZ29yeSBvZiB0aGUgZ2xvYmFsIGNhdGVnb3J5JiM4MjE3O3MgdHJl ZSB0byBzZWUgaWYgaXQgZXF1YWxzICYjODIyMDttYW1tYWwmIzgyMjE7LiBJZiBpdCBkb2Vz LCBzaG93IHRoZSBhcnRpY2xlOyBpZiBub3Qgc2hvdyB0aGUgbWVzc2FnZS4gUmVtb3Zpbmcg dGhlIDxjb2RlPjpMVkwyPC9jb2RlPiAod2hpY2ggYWxsb3dzIHlvdSB0byBhbHNvIHJlbW92 ZSB0aGUgb3BlcmF0b3IgcGFyYW1ldGVyIHRvIGZvcmNlIHRoZSBjb21wYXJpc29uIHRvIGJl ICYjODIyMDtjb250YWlucyYjODIyMTspIGNoZWNrcyBpZiB0aGUgY3VycmVudCBnbG9iYWwg Y2F0ZWdvcnkgaXMgYSBjaGlsZCBvZiAmIzgyMTY7bWFtbWFsJiM4MjE3OyAoYXQgYW55IGxl dmVsKS48L3A+CgoJPHA+Q2hhbmdlIHRoZSBmaWVsZCB0byA8Y29kZT5wYXJlbnQ6Q0FUMTwv Y29kZT4gdG8gc2VlIGlmIHRoZSBhcnRpY2xlJiM4MjE3O3MgY2F0ZWdvcnkxIG1hdGNoZXMg JiM4MjE2O21hbW1hbCYjODIxNzsgYXQgYW55IGxldmVsLCBvciB1c2UgPGNvZGU+ZmllbGQ9 JiMzNDtwYXJlbnQ6Q0FUMTpMVkwyJiMzNDs8L2NvZGU+IHRvIGNvbWJpbmUgdGhlIGNoZWNr cy48L3A+CgoJPGgzIGlkPSJlZzUiPkV4YW1wbGUgNTwvaDM+Cgo8cHJlIGNsYXNzPSJibG9j ayI+PGNvZGUgY2xhc3M9ImJsb2NrIj4mIzYwO3R4cDpzbWRfaWYgZmllbGQ9JiMzNDt1cmx2 YXI6cGljLCB1cmx2YXI6aGlkZSYjMzQ7CiAgICAgb3BlcmF0b3I9JiMzNDtndDpOVU0sIHVu ZGVmaW5lZCYjMzQ7CiAgICAgdmFsdWU9JiMzNDs/YXJ0aWNsZV9pbWFnZSwmIzM0OyYjNjI7 CiAmIzYwO3R4cDphcnRpY2xlIC8mIzYyOwomIzYwO3R4cDplbHNlIC8mIzYyOwogJiM2MDtw JiM2MjtOb3QgdG9kYXksIHRoYW5rcyYjNjA7L3AmIzYyOwomIzYwOy90eHA6c21kX2lmJiM2 MjsKPC9jb2RlPjwvcHJlPgoKCTxwPlRlc3RzIGlmIHRoZSB1cmwgdmFyaWFibGUgPGNvZGU+ cGljPC9jb2RlPiBpcyBzdHJpY3RseSBudW1lcmljYWxseSBncmVhdGVyIHRoYW4gdGhlIHZh bHVlIGluIHRoZSBjdXJyZW50IGFydGljbGUmIzgyMTc7cyA8Y29kZT5hcnRpY2xlX2ltYWdl PC9jb2RlPiBmaWVsZCBhbmQgdGhhdCB0aGUgdXJsIHZhcmlhYmxlIDxjb2RlPmhpZGU8L2Nv ZGU+IGlzIG1pc3NpbmcgZnJvbSB0aGUgPHNwYW4gY2xhc3M9ImNhcHMiPlVSTDwvc3Bhbj4g YWRkcmVzcy48L3A+CgoJPGgyIGNsYXNzPSJjaGFuZ2Vsb2ciPkNoYW5nZWxvZzwvaDI+CgoJ PHVsPgoJCTxsaT4zMCBEZWMgMDcgfCA8YSBocmVmPSJodHRwOi8vc3RlZmRhd3Nvbi5jb20v ZG93bmxvYWRzL3NtZF9pZl92MC4xLnR4dCI+djAuMTwvYT4gfCBJbml0aWFsIHJlbGVhc2U8 L2xpPgoJCTxsaT4zMCBEZWMgMDcgfCA8YSBocmVmPSJodHRwOi8vc3RlZmRhd3Nvbi5jb20v ZG93bmxvYWRzL3NtZF9pZl92MC4yLnR4dCI+djAuMjwvYT4gfCBBZGRlZCBwYXJlbnQgY2F0 ZWdvcnkgY2hlY2tpbmcgKHRoYW5rcyB0aGVfZ2hvc3QpPC9saT4KCQk8bGk+MDIgSmFuIDA4 IHwgPGEgaHJlZj0iaHR0cDovL3N0ZWZkYXdzb24uY29tL2Rvd25sb2Fkcy9zbWRfaWZfdjAu My50eHQiPnYwLjM8L2E+IHwgQWRkZWQgZGVmaW5lZC91bmRlZmluZWQgYW5kIHN0cmljdCBu dW1lcmljIGNvbXBhcmlzb25zPC9saT4KCQk8bGk+MDYgSmFuIDA4IHwgPGEgaHJlZj0iaHR0 cDovL3N0ZWZkYXdzb24uY29tL2Rvd25sb2Fkcy9zbWRfaWZfdjAuNC50eHQiPnYwLjQ8L2E+ IHwgQWRkZWQgPGNvZGU+PzwvY29kZT4gbm90YXRpb24gdG8gYWxsb3cgdGhlIHZhbHVlIHRv IHJlYWQgPHNwYW4gY2xhc3M9ImNhcHMiPlRYUDwvc3Bhbj4gZmllbGRzOyBiZXR0ZXIgcXVv dGUgc3VwcG9ydCAoYm90aCB0aGFua3MgTmVpbEEpPC9saT4KCQk8bGk+MDYgSmFuIDA4IHwg PGEgaHJlZj0iaHR0cDovL3N0ZWZkYXdzb24uY29tL2Rvd25sb2Fkcy9zbWRfaWZfdjAuNDEu dHh0Ij52MC40MTwvYT4gfCBGaXhlZCBsb3dlciBjYXNlIGZpZWxkIG5hbWVzIGFuZCB1bmRl ZmluZWQgaW5kZXggZXJyb3IgKHRoYW5rcyBwZXRlcmopPC9saT4KCQk8bGk+MTQgSmFuIDA4 IHwgPGEgaHJlZj0iaHR0cDovL3N0ZWZkYXdzb24uY29tL2Rvd25sb2Fkcy9zbWRfaWZfdjAu NS50eHQiPnYwLjU8L2E+IHwgQWRkZWQgY2FzZV9zZW5zaXRpdmUgb3B0aW9uOyBtYWRlICYj ODIxNjtjb250YWlucyYjODIxNzsgdGhlIGRlZmF1bHQgZm9yICYjODIxNjtwYXJlbnQmIzgy MTc7IHRlc3RzOyBpbXByb3ZlZCBoZWxwIChhbGwgdGhhbmtzIHRoZV9naG9zdCk7IGFkZGVk IGRlbGltIG9wdGlvbnM8YnIgLz4KPC9kaXY+PC9saT4KCTwvdWw+CjwhLS0gLS0tIEJFR0lO IFBMVUdJTiBDU1MgLS0tIC0tPgo8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgojc21kX2hlbHAg eyBsaW5lLWhlaWdodDoxLjMgO30KI3NtZF9oZWxwIGNvZGUgeyBmb250LXdlaWdodDpib2xk OyBmb250OiAxMDUlLzEzMCUgIkNvdXJpZXIgTmV3IiwgY291cmllciwgbW9ub3NwYWNlOyBi YWNrZ3JvdW5kLWNvbG9yOiAjRkZGRkNDO30KI3NtZF9oZWxwIGNvZGUuYmxvY2sgeyBmb250 LXdlaWdodDpub3JtYWw7IGJvcmRlcjoxcHggZG90dGVkICM5OTk7IGJhY2tncm91bmQtY29s b3I6ICNmMGU2OGM7IGRpc3BsYXk6YmxvY2s7IG1hcmdpbjoxMHB4IDEwcHggMjBweDsgcGFk ZGluZzoxMHB4OyB9CiNzbWRfaGVscCBhOmxpbmssICNzbWRfaGVscCBhOnZpc2l0ZWQgeyBj b2xvcjogYmx1ZTsgdGV4dC1kZWNvcmF0aW9uOiBub25lOyBib3JkZXItYm90dG9tOiAxcHgg c29saWQgYmx1ZTsgcGFkZGluZy1ib3R0b206MXB4O30KI3NtZF9oZWxwIGE6aG92ZXIsICNz bWRfaGVscCBhOmFjdGl2ZSB7IGNvbG9yOiBibHVlOyB0ZXh0LWRlY29yYXRpb246IG5vbmU7 IGJvcmRlci1ib3R0b206IDJweCBzb2xpZCBibHVlOyBwYWRkaW5nLWJvdHRvbToxcHg7fQoj c21kX2hlbHAgaDEgeyBjb2xvcjogIzM2OTsgZm9udDogMjBweCBHZW9yZ2lhLCBzYW5zLXNl cmlmOyBtYXJnaW46IDA7IHRleHQtYWxpZ246IGNlbnRlcjsgfQojc21kX2hlbHAgaDIgeyBi b3JkZXItYm90dG9tOiAxcHggc29saWQgYmxhY2s7IHBhZGRpbmc6MTBweCAwIDA7IGNvbG9y OiAjMzY5OyBmb250OiAxN3B4IEdlb3JnaWEsIHNhbnMtc2VyaWY7IH0KI3NtZF9oZWxwIGgz IHsgY29sb3I6ICM2OTM7IGZvbnQ6IGJvbGQgMTJweCBBcmlhbCwgc2Fucy1zZXJpZjsgbGV0 dGVyLXNwYWNpbmc6IDFweDsgbWFyZ2luOiAxMHB4IDAgMDt0ZXh0LXRyYW5zZm9ybTogdXBw ZXJjYXNlO30KI3NtZF9oZWxwIGg0IHsgZm9udDogYm9sZCAxMXB4IEFyaWFsLCBzYW5zLXNl cmlmOyBsZXR0ZXItc3BhY2luZzogMXB4OyBtYXJnaW46IDEwcHggMCAwIDt0ZXh0LXRyYW5z Zm9ybTogdXBwZXJjYXNlOyB9CiNzbWRfaGVscCAuYXR0LW5hbWUgeyBmb250LXdlaWdodDpi b2xkOyB9CiNzbWRfaGVscCAubWFuZCB7IGJhY2tncm91bmQ6I2VlZTsgYm9yZGVyOjFweCBk b3R0ZWQgIzk5OTsgfQo8L3N0eWxlPgo8IS0tIC0tLSBFTkQgUExVR0lOIENTUyAtLS0gLS0+ CiI7czozOiJjc3MiO3M6MTEzNjoiPHN0eWxlIHR5cGU9InRleHQvY3NzIj4KI3NtZF9oZWxw IHsgbGluZS1oZWlnaHQ6MS4zIDt9CiNzbWRfaGVscCBjb2RlIHsgZm9udC13ZWlnaHQ6Ym9s ZDsgZm9udDogMTA1JS8xMzAlICJDb3VyaWVyIE5ldyIsIGNvdXJpZXIsIG1vbm9zcGFjZTsg YmFja2dyb3VuZC1jb2xvcjogI0ZGRkZDQzt9CiNzbWRfaGVscCBjb2RlLmJsb2NrIHsgZm9u dC13ZWlnaHQ6bm9ybWFsOyBib3JkZXI6MXB4IGRvdHRlZCAjOTk5OyBiYWNrZ3JvdW5kLWNv bG9yOiAjZjBlNjhjOyBkaXNwbGF5OmJsb2NrOyBtYXJnaW46MTBweCAxMHB4IDIwcHg7IHBh ZGRpbmc6MTBweDsgfQojc21kX2hlbHAgYTpsaW5rLCAjc21kX2hlbHAgYTp2aXNpdGVkIHsg Y29sb3I6IGJsdWU7IHRleHQtZGVjb3JhdGlvbjogbm9uZTsgYm9yZGVyLWJvdHRvbTogMXB4 IHNvbGlkIGJsdWU7IHBhZGRpbmctYm90dG9tOjFweDt9CiNzbWRfaGVscCBhOmhvdmVyLCAj c21kX2hlbHAgYTphY3RpdmUgeyBjb2xvcjogYmx1ZTsgdGV4dC1kZWNvcmF0aW9uOiBub25l OyBib3JkZXItYm90dG9tOiAycHggc29saWQgYmx1ZTsgcGFkZGluZy1ib3R0b206MXB4O30K I3NtZF9oZWxwIGgxIHsgY29sb3I6ICMzNjk7IGZvbnQ6IDIwcHggR2VvcmdpYSwgc2Fucy1z ZXJpZjsgbWFyZ2luOiAwOyB0ZXh0LWFsaWduOiBjZW50ZXI7IH0KI3NtZF9oZWxwIGgyIHsg Ym9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIGJsYWNrOyBwYWRkaW5nOjEwcHggMCAwOyBjb2xv cjogIzM2OTsgZm9udDogMTdweCBHZW9yZ2lhLCBzYW5zLXNlcmlmOyB9CiNzbWRfaGVscCBo MyB7IGNvbG9yOiAjNjkzOyBmb250OiBib2xkIDEycHggQXJpYWwsIHNhbnMtc2VyaWY7IGxl dHRlci1zcGFjaW5nOiAxcHg7IG1hcmdpbjogMTBweCAwIDA7dGV4dC10cmFuc2Zvcm06IHVw cGVyY2FzZTt9CiNzbWRfaGVscCBoNCB7IGZvbnQ6IGJvbGQgMTFweCBBcmlhbCwgc2Fucy1z ZXJpZjsgbGV0dGVyLXNwYWNpbmc6IDFweDsgbWFyZ2luOiAxMHB4IDAgMCA7dGV4dC10cmFu c2Zvcm06IHVwcGVyY2FzZTsgfQojc21kX2hlbHAgLmF0dC1uYW1lIHsgZm9udC13ZWlnaHQ6 Ym9sZDsgfQojc21kX2hlbHAgLm1hbmQgeyBiYWNrZ3JvdW5kOiNlZWU7IGJvcmRlcjoxcHgg ZG90dGVkICM5OTk7IH0KPC9zdHlsZT4iO3M6NDoiY29kZSI7czo2MDUzOiJmdW5jdGlvbiBz bWRfaWYoJGF0dHMsJHRoaW5nKSB7CglnbG9iYWwgJHRoaXNhcnRpY2xlLCAkcHJldGV4dDsK CglleHRyYWN0KGxBdHRzKGFycmF5KAoJCSdmaWVsZCcgPT4gJycsCgkJJ29wZXJhdG9yJyA9 PiAnJywKCQkndmFsdWUnID0+ICcnLAoJCSdsb2dpYycgPT4gJ2FuZCcsCgkJJ2Nhc2Vfc2Vu c2l0aXZlJyA9PiAwLAoJCSdwYXJhbV9kZWxpbScgPT4gJywnLAoJCSdtb2RfZGVsaW0nID0+ ICc6JywKCQknZGVidWcnID0+ICcwJywKCSksICRhdHRzKSk7CgoJLy8gU3BlY2lhbCBmaWVs ZCBuYW1lcyB0aGF0IHJlZmVyIHRvICRwcmV0ZXh0IG9yIGVsc2V3aGVyZSAtIGV2ZXJ5dGhp bmcgZWxzZSBpcyBhc3N1bWVkIHRvCgkvLyBleGlzdCBpbiAkdGhpc2FydGljbGUgc28gY3Vz dG9tIGZpZWxkcyBjYW4gYmUgdXNlZAoJJGFsbFB0eHQgPSBhcnJheSgKCQkiaWQiID0+ICck cHJldGV4dFsiaWQiXScsCgkJInNlY3Rpb24iID0+ICckcHJldGV4dFsicyJdJywKCQkiY2F0 ZWdvcnkiID0+ICckcHJldGV4dFsiYyJdJywKCQkicXVlcnkiID0+ICckcHJldGV4dFsicSJd JywKCQkicGciID0+ICckcHJldGV4dFsicGciXScsCgkJInN0YXR1cyIgPT4gJyRwcmV0ZXh0 WyJzdGF0dXMiXScsCgkJIm5leHRfaWQiID0+ICgoaXNzZXQoJHByZXRleHRbJ25leHRfaWQn XSkpID8gJyRwcmV0ZXh0WyJuZXh0X2lkIl0nIDogJycpLAoJCSJuZXh0X3RpdGxlIiA9PiAo KGlzc2V0KCRwcmV0ZXh0WyduZXh0X3RpdGxlJ10pKSA/ICckcHJldGV4dFsibmV4dF90aXRs ZSJdJyA6ICcnKSwKCQkicHJldl9pZCIgPT4gKChpc3NldCgkcHJldGV4dFsncHJldl9pZCdd KSkgPyAnJHByZXRleHRbInByZXZfaWQiXScgOiAnJyksCgkJInByZXZfdGl0bGUiID0+ICgo aXNzZXQoJHByZXRleHRbJ3ByZXZfdGl0bGUnXSkpID8gJyRwcmV0ZXh0WyJwcmV2X3RpdGxl Il0nIDogJycpLAoJKTsKCS8vIEVhY2ggZW50cnkgaGFzIHRoZSBvcGVyYXRpb24gdG8gYmUg ZXZhbCgpZCBsYXRlciwgaXQncyAidHlwZSIgKHRlc3QgVkFMdWUgb3IgVkFSaWFibGUpIGFu ZCBhIGxpc3Qgb2YgZGlzYWxsb3dlZCBmaWVsZHMKCSRhbGxPcHMgPSBhcnJheSgKCQknZXEn ID0+IGFycmF5KCdGSUVMRCA9PT0gVkFMVUUnLCAnVkFMJywgJycpLAoJCSdub3QnID0+IGFy cmF5KCdGSUVMRCAhPT0gVkFMVUUnLCAnVkFMJywgJycpLAoJCSdndCcgPT4gYXJyYXkoJ0NB U1QgRklFTEQgPiBDQVNUIFZBTFVFJywgJ1ZBTCcsICcnKSwKCQknZ2UnID0+IGFycmF5KCdD QVNUIEZJRUxEID49IENBU1QgVkFMVUUnLCAnVkFMJywgJycpLAoJCSdsdCcgPT4gYXJyYXko J0NBU1QgRklFTEQgPCBDQVNUIFZBTFVFJywgJ1ZBTCcsICcnKSwKCQknbGUnID0+IGFycmF5 KCdDQVNUIEZJRUxEIDw9IENBU1QgVkFMVUUnLCAnVkFMJywgJycpLAoJCSdiZWdpbnMnID0+ IGFycmF5KCdzdHJwb3MoRklFTEQsIFZBTFVFKSA9PT0gMCcsICdWQUwnLCAnJyksCgkJJ2Nv bnRhaW5zJyA9PiBhcnJheSgnc3RycG9zKEZJRUxELCBWQUxVRSkgIT09IGZhbHNlJywgJ1ZB TCcsICcnKSwKCQknZGVmaW5lZCcgPT4gYXJyYXkoJ2lzc2V0KEZJRUxEKScsICdWQVInLCAn cGFyZW50JyksCgkJJ3VuZGVmaW5lZCcgPT4gYXJyYXkoJyFpc3NldChGSUVMRCknLCAnVkFS JywgJ3BhcmVudCcpLAoJCSdpc251bScgPT4gYXJyYXkoJ2lzX251bWVyaWMoRklFTEQpJywg J1ZBTCcsICcnKSwKCQknaXNlbXB0eScgPT4gYXJyYXkoJ0ZJRUxEID09ICIiJywgJ1ZBTCcs ICcnKSwKCQknaXN1c2VkJyA9PiBhcnJheSgnRklFTEQgIT0gIiInLCAnVkFMJywgJycpLAoJ KTsKCgkkbnVtZXJpY09wcyA9ICJndCwgZ2UsIGx0LCBsZSI7CgkkZmllbGRzID0gZG9fbGlz dCgkZmllbGQsICRwYXJhbV9kZWxpbSk7Cgkkb3BzID0gZG9fbGlzdCgkb3BlcmF0b3IsICRw YXJhbV9kZWxpbSk7CgkkbnVtT3BzID0gY291bnQoJG9wcyk7CgkkdmFscyA9IGRvX2xpc3Qo JHZhbHVlLCAkcGFyYW1fZGVsaW0pOwoJJG51bVZhbHMgPSBjb3VudCgkdmFscyk7Cgkkb3V0 ID0gYXJyYXkoKTsKCWZvciAoJGlkeCA9IDA7ICRpZHggPCBjb3VudCgkZmllbGRzKTsgJGlk eCsrKSB7CgkJJGZsZCA9ICRmaWVsZHNbJGlkeF07CgkJJGZsZFBhcnRzID0gZXhwbG9kZSgk bW9kX2RlbGltLCAkZmxkKTsKCQkkdmFsID0gKCRpZHggPCAkbnVtVmFscykgPyAkdmFsc1sk aWR4XSA6ICcnOwoJCSR2YWxQYXJ0cyA9IGV4cGxvZGUoJG1vZF9kZWxpbSwgJHZhbCk7CgkJ JG9wID0gKCRpZHggPCAkbnVtT3BzICYmICRvcHNbJGlkeF0gIT0gJycpID8gJG9wc1skaWR4 XSA6ICgoJGZsZFBhcnRzWzBdPT0icGFyZW50IikgPyAiY29udGFpbnMiIDogImVxIik7CgkJ JG9wUGFydHMgPSBleHBsb2RlKCRtb2RfZGVsaW0sICRvcCk7CgkJJG9wID0gKGFycmF5X2tl eV9leGlzdHMoJG9wUGFydHNbMF0sICRhbGxPcHMpKSA/ICRvcFBhcnRzWzBdIDogImVxIjsK CQkkY2FzdCA9ICgoY291bnQoJG9wUGFydHMpID09IDIpICYmICgkb3BQYXJ0c1sxXSA9PT0g Ik5VTSIpICYmIChpbl9saXN0KCRvcCwgJG51bWVyaWNPcHMpKSkgPyAnKGludCknIDogJyc7 CgkJaWYgKCRkZWJ1ZykgewoJCQllY2hvICdURVNUICcuKCRpZHgrMSkubjsKCQkJZG1wKCRm bGRQYXJ0cywgJG9wUGFydHMsICR2YWxQYXJ0cyk7CgkJfQoJCS8vIEdldCB0aGUgb3BlcmF0 b3IgcmVwbGFjZW1lbnQgY29kZQoJCSR0eXBlID0gJGFsbE9wc1skb3BdWzFdOwoJCSRleGNs dWRlID0gZG9fbGlzdCgkYWxsT3BzWyRvcF1bMl0pOwoJCSRvcCA9ICRhbGxPcHNbJG9wXVsw XTsKCgkJLy8gQXMgbG9uZyBhcyB0aGUgY3VycmVudCBvcGVyYXRvciBhbGxvd3MgdGhpcyBm aWVsZC4uLgoJCWlmICghaW5fYXJyYXkoJGZsZFBhcnRzWzBdLCAkZXhjbHVkZSkpIHsKCQkJ Ly8gTWFrZSB1cCB0aGUgdGVzdCBmaWVsZCB2YXJpYWJsZQoJCQlpZiAoYXJyYXlfa2V5X2V4 aXN0cygkZmxkUGFydHNbMF0sICRhbGxQdHh0KSkgewoJCQkJJGZsZCA9ICRhbGxQdHh0WyRm bGRQYXJ0c1swXV07CgkJCX0gZWxzZSBpZiAoJGZsZFBhcnRzWzBdID09ICJwYXJlbnQiKSB7 CgkJCQkkbGV2ZWwgPSAnJzsKCQkJCWZvcmVhY2ggKCRmbGRQYXJ0cyBhcyAkcGFydCkgewoJ CQkJCWlmICgkcGFydCA9PSAicGFyZW50IikgewoJCQkJCQkkdGhlQ2F0ID0gJHByZXRleHRb J2MnXTsKCQkJCQl9IGVsc2UgaWYgKHN0cnBvcygkcGFydCwgIkNBVCIpID09PSAwKSB7CgkJ CQkJCSR0aGVDYXQgPSAkdGhpc2FydGljbGVbImNhdGVnb3J5Ii5zdWJzdHIoJHBhcnQsIDMp XTsKCQkJCQl9IGVsc2UgaWYgKHN0cnBvcygkcGFydCwgIkxWTCIpID09PSAwKSB7CgkJCQkJ CSRsZXZlbCA9IHN1YnN0cigkcGFydCwgMyk7CgkJCQkJfQoJCQkJfQoKCQkJCSR0cmVlID0g Z2V0VHJlZVBhdGgoZG9TbGFzaCgkdGhlQ2F0KSwgJ2FydGljbGUnKTsKCQkJCWlmICgkZGVi dWcpIHsKCQkJCQllY2hvICJDQVRFR09SWSBUUkVFOiI7CgkJCQkJZG1wKCR0cmVlKTsKCQkJ CX0KCQkJCSRpdGVtcyA9IGFycmF5KCk7CgkJCQlmb3JlYWNoICgkdHJlZSBhcyAkbGVhZikg ewoJCQkJCWlmICgkbGVhZlsnbmFtZSddID09ICJyb290IiB8fCAkbGVhZlsnbmFtZSddID09 ICR0aGVDYXQpIHsKCQkJCQkJY29udGludWU7CgkJCQkJfSBlbHNlIGlmICgkbGV2ZWwgPT0g JycgfHwgJGxldmVsID09ICRsZWFmWydsZXZlbCddKSB7CgkJCQkJCSRpdGVtc1tdID0gJGxl YWZbJ25hbWUnXTsKCQkJCQl9CgkJCQl9CgkJCQkkZmxkID0gZG9RdW90ZShpbXBsb2RlKCIg IiwgJGl0ZW1zKSk7CgkJCX0gZWxzZSBpZiAoJGZsZFBhcnRzWzBdID09ICJ1cmx2YXIiKSB7 CgkJCQlpZiAoY291bnQoJGZsZFBhcnRzKSA9PSAyKSB7CgkJCQkJJGZsZCA9IChncHMoJGZs ZFBhcnRzWzFdKSAhPT0gJycpID8gJyRfR0VUWyInLiRmbGRQYXJ0c1sxXS4nIl0nIDogZG9R dW90ZShpbXBsb2RlKCIiLCAkZmxkUGFydHMpKTsKCQkJCX0KCQkJfSBlbHNlIGlmICgkZmxk UGFydHNbMF0gPT0gInN2cnZhciIpIHsKCQkJCWlmIChjb3VudCgkZmxkUGFydHMpID09IDIp IHsKCQkJCQkkZmxkID0gKHNlcnZlclNldCgkZmxkUGFydHNbMV0pICE9PSAnJykgPyAnJF9T RVJWRVJbIicuJGZsZFBhcnRzWzFdLiciXScgOiBkb1F1b3RlKGltcGxvZGUoIiIsICRmbGRQ YXJ0cykpOwoJCQkJfQoJCQl9IGVsc2UgewoJCQkJJGZsZCA9ICckdGhpc2FydGljbGVbIicu c3RydG9sb3dlcigkZmxkUGFydHNbMF0pLiciXSc7CgkJCX0KCgkJCS8vIEZpbmQgdGhlIHJl YWwgdmFsdWUgdG8gY29tcGFyZSBhZ2FpbnN0IChtYXkgYmUgYW5vdGhlciBmaWVsZCkKCQkJ aWYgKCR2YWxQYXJ0c1swXSA9PSAidXJsdmFyIikgewoJCQkJaWYgKGNvdW50KCR2YWxQYXJ0 cykgPT0gMikgewoJCQkJCSR2YWwgPSAoZ3BzKCR2YWxQYXJ0c1sxXSkgIT09ICcnKSA/ICck X0dFVFsiJy4kdmFsUGFydHNbMV0uJyJdJyA6IGRvUXVvdGUoaW1wbG9kZSgiIiwgJHZhbFBh cnRzKSk7CgkJCQl9CgkJCX0gZWxzZSBpZiAoJHZhbFBhcnRzWzBdID09ICJzdnJ2YXIiKSB7 CgkJCQlpZiAoY291bnQoJHZhbFBhcnRzKSA9PSAyKSB7CgkJCQkJJHZhbCA9IChzZXJ2ZXJT ZXQoJHZhbFBhcnRzWzFdKSAhPT0gJycpID8gJyRfU0VSVkVSWyInLiR2YWxQYXJ0c1sxXS4n Il0nIDogZG9RdW90ZShpbXBsb2RlKCIiLCAkdmFsUGFydHMpKTsKCQkJCX0KCQkJfSBlbHNl IGlmIChzdHJwb3MoJHZhbFBhcnRzWzBdLCAiPyIpID09PSAwKSB7CgkJCQkkdmFsUGFydHNb MF0gPSBzdWJzdHIoc3RydG9sb3dlcigkdmFsUGFydHNbMF0pLCAxKTsKCQkJCWlmIChhcnJh eV9rZXlfZXhpc3RzKCR2YWxQYXJ0c1swXSwgJGFsbFB0eHQpKSB7CgkJCQkJJHZhbCA9ICRh bGxQdHh0WyR2YWxQYXJ0c1swXV07CgkJCQl9IGVsc2UgaWYgKGlzc2V0KCR0aGlzYXJ0aWNs ZVskdmFsUGFydHNbMF1dKSkgewoJCQkJCSR2YWwgPSAnJHRoaXNhcnRpY2xlWyInLiR2YWxQ YXJ0c1swXS4nIl0nOwoJCQkJfQoJCQl9IGVsc2UgewoJCQkJJHZhbCA9IGRvUXVvdGUoc3Ry X3JlcGxhY2UoJyInLCAnXCInLCAkdmFsUGFydHNbMF0pKTsKCQkJfQoKCQkJLy8gQ2hlY2sg dGhlIHR5cGUgYW5kIGZpeCB0aGUgdmFyaWFibGUgaWYgbmVjZXNzYXJ5CgkJCWlmICgoJHR5 cGUgPT0gIlZBUiIpICYmICEoc3RycG9zKCRmbGQsICIkIikgPT09IDApKSB7CgkJCQkkZmxk ID0gIiQiLnByZWdfcmVwbGFjZSgiL1teYS16QS1aMC05XF9dKy8iLCAiIiwgJGZsZCk7CgkJ CX0KCgkJCS8vIFJlcGxhY2UgdGhlIHN0cmluZyBwYXJ0cy4uLgoJCQkkY21kID0gc3RyX3Jl cGxhY2UoIkNBU1QiLCAkY2FzdCwgJG9wKTsKCQkJJGNtZCA9IHN0cl9yZXBsYWNlKCJGSUVM RCIsICgoJGNhc2Vfc2Vuc2l0aXZlKSA/ICRmbGQgOiAnc3RydG9sb3dlcignLiRmbGQuJykn KSwgJGNtZCk7CgkJCSRjbWQgPSBzdHJfcmVwbGFjZSgiVkFMVUUiLCAoKCRjYXNlX3NlbnNp dGl2ZSkgPyAnVkFMVUUnIDogJ3N0cnRvbG93ZXIoVkFMVUUpJyksICRjbWQpOwoJCQkkY21k ID0gIlwkb3V0W10gPSAoIi5zdHJfcmVwbGFjZSgiVkFMVUUiLCAoKCR2YWw9PT0iJyciICYm IHN0cnBvcygkb3AsICJzdHJwb3MiKSAhPT0gZmFsc2UpID8gIicgJyIgOiAkdmFsKSwgJGNt ZCkuIikgPyAndHJ1ZScgOiAnZmFsc2UnOyI7CgkJCWlmICgkZGVidWcpIHsKCQkJCWRtcCgk Y21kKTsKCQkJfQoJCQkvLyAuLi4gYW5kIGV2YWx1YXRlIHRoZSBleHByZXNzaW9uCgkJCWV2 YWwoJGNtZCk7CgkJfQoJfQoJaWYgKCRkZWJ1ZykgewoJCWVjaG8gIlJFU1VMVDoiOwoJCWRt cCgkb3V0KTsKCX0KCWlmICgkZGVidWcgPT0gMikgewoJCWRtcCgkcHJldGV4dCk7CgkJZG1w KCR0aGlzYXJ0aWNsZSk7Cgl9CgkvLyBDaGVjayBsb2dpYwoJJHJlc3VsdCA9IHRydWU7Cglp ZiAoc3RydG9sb3dlcigkbG9naWMpID09ICJhbmQiICYmIGluX2FycmF5KCJmYWxzZSIsICRv dXQpKSB7CgkJJHJlc3VsdCA9IGZhbHNlOwoJfQoJaWYgKHN0cnRvbG93ZXIoJGxvZ2ljKSA9 PSAib3IiICYmICFpbl9hcnJheSgidHJ1ZSIsICRvdXQpKSB7CgkJJHJlc3VsdCA9IGZhbHNl OwoJfQoKCXJldHVybiBwYXJzZShFdmFsRWxzZSgkdGhpbmcsICRyZXN1bHQpKTsKfSI7czoz OiJtZDUiO3M6MzI6ImU4ZDhjMzNmMmI4ZDM5YTcxNTBlMmY1OGJlMzhiYzIwIjt9