<?php

$plugin='YTo4OntzOjQ6Im5hbWUiO3M6OToib2IxX3RpdGxlIjtzOjc6InZlcnNpb24iO3M6MzoiMi4yIjtzOjY6ImF1dGhvciI7czoxOToiSGVucmlrIEomb3VtbDtuc3NvbiI7czoxMDoiYXV0aG9yX3VyaSI7czoyNToiaHR0cDovL3Jpc2UubGV3YW5kZXIuY29tLyI7czoxMToiZGVzY3JpcHRpb24iO3M6NTM6IkFuIGVuaGFuY2VtZW50IGZvciB0eHA6cGFnZV90aXRsZSB3aXRoIG1vcmUgZmVhdHVyZXMuIjtzOjQ6ImhlbHAiO3M6NDY5OToiCgk8cD48ZGl2IHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiNmZmM7cGFkZGluZzoxMHB4O2JvcmRlci1sZWZ0OjFweCBzb2xpZCAjZmZlO2JvcmRlci10b3A6MXB4IHNvbGlkICNmZmU7Ym9yZGVyLXJpZ2h0OjFweCBzb2xpZCAjZGRiO2JvcmRlci1ib3R0b206MXB4IHNvbGlkICNkZGI7bGluZS1oZWlnaHQ6MS40ZW07Ij48L3A+CgoJPGgxIHN0eWxlPSJmb250LXdlaWdodDpib2xkO2ZvbnQtc2l6ZToxLjVlbTs7Ij5vYjEtdGl0bGU8L2gxPgoKCTx1bD4KCTxsaT48YSBocmVmPSIjcGx1Z2luU3VtbWFyeSI+U3VtbWFyeTwvYT48L2xpPgoJCTxsaT48YSBocmVmPSIjcGx1Z2luQXR0cmlidXRlcyI+QXR0cmlidXRlczwvYT4KCTx1bD4KCTxsaT48YSBocmVmPSIjcGx1Z2luT3JkZXIiPm9yZGVyPC9hPjwvbGk+CgkJPGxpPjxhIGhyZWY9IiNwbHVnaW5TZXBhcmF0b3IiPnNlcGFyYXRvcjwvYT48L2xpPgoJCTxsaT48YSBocmVmPSIjcGx1Z2luU2VhcmNoQ3JpdGVyaWEiPnNlYXJjaGNyaXRlcmlhPC9hPjwvbGk+CgkJPGxpPjxhIGhyZWY9IiI6I3BsdWdpblNlYXJjaFdvcmQiPnNlYXJjaHdvcmQ8L2E+PC9saT4KCTwvdWw+Cgk8L2xpPgoJCTxsaT48YSBocmVmPSIjcGx1Z2luRXhhbXBsZXMiPkV4YW1wbGVzPC9hPjwvbGk+CgkJPGxpPjxhIGhyZWY9IiNwbHVnaW5DaGFuZ2VMb2ciPkNoYW5nZWxvZzwvYT48L2xpPgoJCTxsaT48YSBocmVmPSJodHRwOi8vcmlzZS5sZXdhbmRlci5jb20iPkF1dGhvciBVUkwgW2V4dGVybmFsXTwvYT48L2xpPgoJCTxsaT48YSBocmVmPSJodHRwOi8vZm9ydW0udGV4dHBhdHRlcm4uY29tL3ZpZXd0b3BpYy5waHA/aWQ9MzM1OCI+VFhQIGZvcnVtIHRocmVhZCBbZXh0ZXJuYWxdPC9hPjwvbGk+Cgk8L3VsPgoKCTxoMiBzdHlsZT0iZm9udC13ZWlnaHQ6Ym9sZDs7IiBpZD0icGx1Z2luU3VtbWFyeSI+U3VtbWFyeTwvaDI+CgoJPHA+TXkgZmlyc3QgPGFjcm9ueW0gdGl0bGU9IlRleHRwYXR0ZXJuIj5UWFA8L2Fjcm9ueW0+IHBsdWdpbi4gSXQgaXMgYW4gZW5oYW5jZW1lbnQgdG8gdGhlIDxjb2RlPiZsdDt0eHA6cGFnZV90aXRsZSAvJmd0OzwvY29kZT4gdGFnIGdpdmluZyB0aGUgZGV2ZWxvcGVyIHJpZ2h0IHRvIGNob29zZSBzb21lIHNwZWNpZmljIHdheXMgb2Ygd3JpdGluZyBvdXQgdGhlIHRpdGxlLCBzdWNoIGFzIHdpdGggc2VwYXJhdG9ycywgaW4gd2hhdCBvcmRlciwgZXRjLiBSZWFkIHRoZSBkb2N1bWVudGF0aW9uIGJlbG93IGZvciBmdWxsIGZlYXR1cmVzLjwvcD4KCgk8aDIgc3R5bGU9ImZvbnQtd2VpZ2h0OmJvbGQ7OyIgaWQ9InBsdWdpbkF0dHJpYnV0ZXMiPkF0dHJpYnV0ZXM8L2gyPgoKCTxoMyBzdHlsZT0iZm9udC13ZWlnaHQ6Ym9sZDs7IiBpZD0icGx1Z2luT3JkZXIiPm9yZGVyPC9oMz4KCgk8cD5IZXJlIHlvdSB0eXBlIHVwIHRoZSBvcmRlciB5b3Ugd2lzaCB0aGUgZGlmZmVyZW50IHBhcnRzIHRvIGRpc3BsYXkuIEl0IHVzZXMgYSBjb21tYS1zZXBhcmF0ZWQgbGlzdCB3aGVyZSB0aGUgdmFsdWVzIGFsb3dlZCBhcmUgPGNvZGU+JXNpdGVuYW1lPC9jb2RlPiwgPGNvZGU+JXNlY3Rpb248L2NvZGU+LCA8Y29kZT4lY2F0ZWdvcnk8L2NvZGU+LCA8Y29kZT4lYXJ0aWNsZTwvY29kZT4uPGJyIC8+CjxlbT4lc2l0ZW5hbWUsJWFydGljbGU8L2VtPiBpcyB0aGUgZGVmYXVsdCB2YWx1ZS48L3A+CgoJPGgzIHN0eWxlPSJmb250LXdlaWdodDpib2xkOzsiIGlkPSJwbHVnaW5TZXBhcmF0b3IiPnNlcGFyYXRvcjwvaDM+CgoJPHA+V2hhdCB0byBzZXBhcmF0ZSB0aGUgZGlmZmVyZW50IHBhcnRzIHdpdGguPGJyIC8+CiAmIzgyMTE7IGlzIHRoZSBkZWZhdWx0IHZhbHVlLjwvcD4KCgk8aDMgc3R5bGU9ImZvbnQtd2VpZ2h0OmJvbGQ7OyIgaWQ9InBsdWdpblNlYXJjaENyaXRlcmlhIj5zZWFyY2hjcml0ZXJpYTwvaDM+CgoJPHA+RG8geW91IHdhbnQgdGhlIHNlYXJjaGNyaXRlcmlhIGRpc3BsYXkgaW4gdGhlIHRpdGxlIG9yIG5vdD88YnIgLz4KPGVtPjE8L2VtPiAmIzgyMTE7IERpc3BsYXkgaXQgKGRlZmF1bHQpLjxiciAvPgo8ZW0+MDwvZW0+ICYjODIxMTsgRG9uJiM4MjE3O3QgZGlzcGxheSBpdC48L3A+CgoJPGgzIHN0eWxlPSJmb250LXdlaWdodDpib2xkOzsiIGlkPSJwbHVnaW5TZWFyY2hXb3JkIj5zZWFyY2h3b3JkPC9oMz4KCgk8cD5XaGF0IHdvcmQgKGlmIGFueSkgc2hvdWxkIGJlIGluY2x1ZGVkIGFmdGVyIHRoZSAmIzgyMjA7U2VhcmNoIHJlc3VsdHMmIzgyMjE7LjxiciAvPgo8ZW0+Zm9yPC9lbT4gaXMgdGhlIGRlZmF1bHQgdmFsdWUuPC9wPgoKCTxoMiBzdHlsZT0iZm9udC13ZWlnaHQ6Ym9sZDs7IiBpZD0icGx1Z2luRXhhbXBsZXMiPkV4YW1wbGVzPC9oMj4KCgk8cD48c3BhbiBzdHlsZT0icGFkZGluZzogMTBweDsgYm9yZGVyOiAxcHggc29saWQgIzk5OTsgYmFja2dyb3VuZDogI2VlZTsgZGlzcGxheTogYmxvY2s7IG1hcmdpbjogMTBweCAwIDAgMDsgdGV4dC1pbmRlbnQ6IDA7IHRleHQtYWxpZ246IGxlZnQ7IGNvbG9yOiAjNjAwO3dpZHRoOjYwMHB4OyI+PGNvZGU+Jmx0O3R4cDpvYjFfdGl0bGUgb3JkZXI9IiVhcnRpY2xlLCVzaXRlbmFtZSIgLyZndDs8L2NvZGU+PC9zcGFuPjxiciAvPgpUaGlzIHdpbGwgb3V0cHV0IDxzdHJvbmc+QXJ0aWNsZW5hbWUgfCBTaXRlbmFtZTwvc3Ryb25nPjwvcD4KCgk8cD48c3BhbiBzdHlsZT0icGFkZGluZzogMTBweDsgYm9yZGVyOiAxcHggc29saWQgIzk5OTsgYmFja2dyb3VuZDogI2VlZTsgZGlzcGxheTogYmxvY2s7IG1hcmdpbjogMTBweCAwIDAgMDsgdGV4dC1pbmRlbnQ6IDA7IHRleHQtYWxpZ246IGxlZnQ7IGNvbG9yOiAjNjAwO3dpZHRoOjYwMHB4OyI+PGNvZGU+Jmx0O3R4cDpvYjFfdGl0bGUgb3JkZXI9IiVhcnRpY2xlLCVjYXRlZ29yeSwlc2VjdGlvbiwlc2l0ZW5hbWUiIHNlcGFyYXRvcj0iIDo6ICIgLyZndDs8L2NvZGU+PC9zcGFuPjxiciAvPgpUaGlzIHdpbGwgb3V0cHV0IDxzdHJvbmc+QXJ0aWNsZW5hbWUgOjogQ2F0ZWdvcnkxIDo6IENhdGVnb3J5MiA6OiBTZWN0aW9uIDo6IFNpdGVuYW1lPC9zdHJvbmc+PC9wPgoKCTxoMiBzdHlsZT0iZm9udC13ZWlnaHQ6Ym9sZDs7IiBpZD0icGx1Z2luQ2hhbmdlTG9nIj5DaGFuZ2Vsb2c8L2gyPgoKCTx1bD4KCTxsaT52Mi4yICYjODIxMTsgQnVnIGZpeCwgcGx1Z2luIHdpbGwgbm93IHJldHVybiBub3RoaW5nIGluc3RlYWQgb2YgYW4gZXJyb3IgaWYgdGhlcmUgaXMgbm90aGluZyB0byByZXR1cm4uPC9saT4KCQk8bGk+djIuMSAmIzgyMTE7IFJld3JvdGUgdGhlIHN5bnRheCBzb21lIHRvIHdvcmsgYmV0dGVyLjwvbGk+CgkJPGxpPnYyLjAgJiM4MjExOyBNYXlvciB1cGRhdGUsIHRvdGFsIHJlLXdyaXRlIG9mIHRoZSBjb2RlIGZvciBpbnN0YW5jZS48L2xpPgoJCTxsaT52MS40ICYjODIxMTsgQnVnZml4ZXMsIHNvbWUgY29kZWNsZWFuaW5nIGFuZCBhZGRlZCBhdHRyaWJ1dGUgPGNvZGU+c2hvd3NpdGVuYW1lPC9jb2RlPi48L2xpPgoJCTxsaT52MS4zMiAmIzgyMTE7IFNtYWxsIGJ1Z2ZpeCByZWdhcmRpbmcgc2FtZSBhcyB2MS4zMS48L2xpPgoJCTxsaT52MS4zMSAmIzgyMTE7IEZpeGVkIHRoZSBidWcgdGhhdCBvdXRwdXQgJiM4MjIwO2RlZmF1bHQmIzgyMjE7IG9uIHRoZSBkZWZhdWx0IHBhZ2UuPC9saT4KCQk8bGk+djEuMyAmIzgyMTE7IEFkZGVkIHN1cHBvcnQgZm9yIHRoZSA8Y29kZT5zcGNfc2VjdGlvbl9hbGlhczwvY29kZT4gcGx1Z2luLjwvbGk+CgkJPGxpPnYxLjIgJiM4MjExOyBGaXhlZCB0aGUgYnVnIHRoYXQgZGlkIG5vdCBkaXNwbGF5IGNhdGVnb3JpZXMuIEFsbCBjb2RlIHdhcyBpbiBwbGFjZSBqdXN0IGZvcmdvdCB0byB1c2UgaXQuIERvaCEgVGhhbmtzIGZvciB0aGUgcGVvcGxlIHRoYXQgc3BvdHRlZCB0aGlzLjwvbGk+CgkJPGxpPnYxLjEgJiM4MjExOyBBZGRlZCBzdXBwb3J0IGZvciB0aGUgPGNvZGU+Y2FzZXJlcGxhY2U8L2NvZGU+IGF0dHJpYnV0ZSB0byBzYXZlIHNlcnZlciBDUFUgZm9yIHlvdSBub24gZXVyb3BlYW5zLjwvbGk+CgkJPGxpPnYxLjAgJiM4MjExOyBBZGRlZCBuZXcgc2V0dGluZyBmb3IgPGNvZGU+Y2hhbmdlY2FzZTwvY29kZT4sIDxjb2RlPnVjd29yZHM8L2NvZGU+LiBNb3ZlZCBvdXQgdGhlIDxjb2RlPm9iMV9jaGFuZ2VjYXNlPC9jb2RlPiBmdW5jdGlvbiBpbnRvIGEgc2VwYXJhdGUgcGx1Z2luLjwvbGk+CgkJPGxpPnYwLjcgJiM4MjExOyBBZGRlZCBuZXcgYXR0cmlidXRlczogc2VhcmNoY3JpdGVyaWEsIHNlYXJjaHdvcmQgYW5kIHNob3djYXRlZ29yeS48L2xpPgoJCTxsaT52MC40MSAmIzgyMTE7IENoYW5nZWQgZnJvbSBzZXBlcmF0b3IgdG8gY29ycmVjdCBzcGVsbGluZyBzZXBhcmF0b3IuIFRoYW5rcyBmb3IgdGhlIGluZm8gS2V2aW4gQXNod29ydGguPC9saT4KCQk8bGk+djAuNCAmIzgyMTE7IEFkZGVkIGNhc2V3aGVyZSBhdHRyaWJ1dGUgc28geW91IGNhbiBjaG9vc2Ugd2hhdCBwYXJ0cyBvZiB0aGUgc2VjdGlvbiB0byBjaGFuZ2UgdGhlIGNhc2Ugb2YuPC9saT4KCQk8bGk+djAuMyAmIzgyMTE7IEFkZGVkIGNoYW5nZWNhc2UgdG8gYmUgYWJsZSB0byBjaGFuZ2UgdGhlIGNhc2Ugb2YgdGhlIHRpdGxlIG91dHB1dC48L2xpPgoJCTxsaT52MC4yMSAmIzgyMTE7IFJlbGVhc2UgY2FuZGlkYXRlIDEuPC9saT4KCQk8bGk+djAuMSAmIzgyMTE7IEZpcnN0IGJldGEsIG5vdCByZWxlYXNlZC4gTWFueSBidWdzIGluY2x1ZGVkLjxiciAvPgo8L2Rpdj4KCgoKICI7czo0OiJjb2RlIjtzOjQzMDc6IgkvKgoJCVBsdWdpbjogb2IxX3RpdGxlCgkJVVJMOiBodHRwOi8vcmlzZS5sZXdhbmRlci5jb20vdGV4dHBhdHRlcm4vNjgvb2IxLXRpdGxlCgkJUmVsZWFzZWQgdW5kZXIgdGhlIENyZWF0aXZlIENvbW1vbiBMaWNlbnNlLCBodHRwOi8vY3JlYXRpdmVjb21tb25zLm9yZy9saWNlbnNlcy9ieS1uYy1uZC8yLjAvCgkqLwoKCWZ1bmN0aW9uIG9iMV90aXRsZSgkYXR0cz0iIikKCXsKCQlnbG9iYWwgJHNpdGVuYW1lLCAkaWQsICRjLCAkcSwgJHBhcmVudGlkLCAkcGcsICRzOwoJCSRvYjFQYXR0ZXJuU2l0ZSA9ICIvJXNpdGVuYW1lL2kiOwoJCSRvYjFQYXR0ZXJuU2VjdGlvbiA9ICIvJXNlY3Rpb24vaSI7CgkJJG9iMVBhdHRlcm5DYXRlZ29yeSA9ICIvJWNhdGVnb3J5L2kiOwoJCSRvYjFQYXR0ZXJuQXJ0aWNsZSA9ICIvJWFydGljbGUvaSI7CgoJCS8vIEdldCBBcnRpY2xlSUQgKGlmIGFueSkKCQkkZmV0Y2hJRCA9ICIiOwoKCQlpZiAoICEkcGFyZW50aWQgJiYgJGlkICkgewoJCQkkZmV0Y2hJRCA9ICRpZDsKCQl9IGVsc2UgaWYgKCAkcGFyZW50aWQgKSB7CgkJCSRmZXRjaElEID0gJHBhcmVudGlkOwoJCX0KCgkJZXh0cmFjdChsQXR0cyhhcnJheSgKCQkJIm9yZGVyIj0+IiVzaXRlbmFtZSwlYXJ0aWNsZSIsCgkJCSJzZXBhcmF0b3IiPT4iIC0gIiwKCQkJInNlYXJjaGNyaXRlcmlhIj0+IjEiLAoJCQkic2VhcmNod29yZCI9PiIgZm9yICIsCgkJKSwkYXR0cykpOwoKCQlpZigkcSl7CgkJCXJldHVybiBnVHh0KCJzZWFyY2hfcmVzdWx0cyIpLiRzZWFyY2h3b3JkLiIgJnF1b3Q7Ii4kcS4iJnF1b3Q7Ii4kc2VwYXJhdG9yLiRzaXRlbmFtZTsKCQl9ZWxzZXsKCQkJLy8gY2hlY2sgd2hhdCB0aGUgb3JkZXIgYXR0cmlidXRlIGNvbnRhaW5zCgkJCXByZWdfbWF0Y2goJG9iMVBhdHRlcm5TaXRlLCRvcmRlciwkb2IxTWF0Y2hTaXRlLFBSRUdfT0ZGU0VUX0NBUFRVUkUpOwoJCQlwcmVnX21hdGNoKCRvYjFQYXR0ZXJuU2VjdGlvbiwkb3JkZXIsJG9iMU1hdGNoU2VjdGlvbixQUkVHX09GRlNFVF9DQVBUVVJFKTsKCQkJcHJlZ19tYXRjaCgkb2IxUGF0dGVybkNhdGVnb3J5LCRvcmRlciwkb2IxTWF0Y2hDYXRlZ29yeSxQUkVHX09GRlNFVF9DQVBUVVJFKTsKCQkJcHJlZ19tYXRjaCgkb2IxUGF0dGVybkFydGljbGUsJG9yZGVyLCRvYjFNYXRjaEFydGljbGUsUFJFR19PRkZTRVRfQ0FQVFVSRSk7CgoJCQkvLyBpZiAkb3JkZXIgY29udGFpbnMgc2l0ZW5hbWUsIHJlcGxhY2UgaXQKCQkJaWYoY291bnQoJG9iMU1hdGNoU2l0ZVswXSk+MCl7CgkJCQkkb3JkZXIgPSBwcmVnX3JlcGxhY2UoJG9iMVBhdHRlcm5TaXRlLCRzaXRlbmFtZSwkb3JkZXIpOwoJCQkJdW5zZXQoJG9iMVBhdHRlcm5TaXRlKTsKCQkJCXVuc2V0KCRvYjFNYXRjaFNpdGUpOwoJCQl9CgoJCQkvLyBpZiAkb3JkZXIgY29udGFpbnMgc2VjdGlvbiwgcmVwbGFjZSBpdAoJCQlpZihjb3VudCgkb2IxTWF0Y2hTZWN0aW9uWzBdKT4wKXsKCQkJCWlmKGVtcHR5KCRzKXx8JHM9PSJkZWZhdWx0Iil7CgkJCQkJJG9iMVNlY3Rpb25OYW1lID0gIiI7IC8vIHNldCB0byBlbXB0eSBzaW5jZSB0aGVyZSBpcyBubyBzZWN0aW9uIG5hbWUgYXZhaWxhYmxlCgkJCQl9ZWxzZXsKCQkJCQkvLyBjaGVjayBmb3Igc2VjdGlvbiB0aXRsZQoJCQkJCSRycyA9IHNhZmVfcm93KCJ0aXRsZSIsInR4cF9zZWN0aW9uIiwibmFtZSA9ICckcycgbGltaXQgMSIpOwoJCQkJCSRvYjFTZWN0aW9uTmFtZSA9IChlbXB0eSgkcnNbInRpdGxlIl0pKSA/ICRzIDogJHJzWyJ0aXRsZSJdOwoJCQkJfQoJCQkJJG9yZGVyID0gcHJlZ19yZXBsYWNlKCRvYjFQYXR0ZXJuU2VjdGlvbiwkb2IxU2VjdGlvbk5hbWUsJG9yZGVyKTsKCQkJCXVuc2V0KCRvYjFTZWN0aW9uTmFtZSk7CgkJCQl1bnNldCgkb2IxUGF0dGVyblNlY3Rpb24pOwoJCQkJdW5zZXQoJG9iMU1hdGNoU2VjdGlvbik7CgkJCX0KCgkJCS8vIGlmICRvcmRlciBjb250YWlucyBjYXRlZ29yeSwgcmVwbGFjZSBpdAoJCQlpZihjb3VudCgkb2IxTWF0Y2hDYXRlZ29yeVswXSk+MCl7CgkJCQkvLyBnZXQgdGhlIGNhdGVnb3J5IG5hbWUocykKCQkJCWlmKCFlbXB0eSgkYykpewoJCQkJCSRycyA9IHNhZmVfcm93KCJ0aXRsZSIsInR4cF9jYXRlZ29yeSIsIm5hbWUgPSAnJGMnIGxpbWl0IDEiKTsKCQkJCQkkb2IxQ2F0ZWdvcnlOYW1lID0gKGVtcHR5KCRyc1sidGl0bGUiXSkpID8gJGMgOiAkcnNbInRpdGxlIl07CgkJCQl9ZWxzZXsKCQkJCQlpZighZW1wdHkoJGZldGNoSUQpKXsKCQkJCQkJJHJzID0gc2FmZV9yb3coImNhdGVnb3J5MSwgY2F0ZWdvcnkyIiwidGV4dHBhdHRlcm4iLCJpZCA9ICckZmV0Y2hJRCcgbGltaXQgMSIpOwoJCQkJCQkkb2IxQ2F0ZWdvcnlPbmUgPSAkcnNbImNhdGVnb3J5MSJdOwoJCQkJCQkkb2IxQ2F0ZWdvcnlUd28gPSAkcnNbImNhdGVnb3J5MiJdOwoJCQkJCQl1bnNldCgkcnMpOwoJCQkJCQlpZighZW1wdHkoJG9iMUNhdGVnb3J5T25lKSl7CgkJCQkJCQkkcnMgPSBzYWZlX3JvdygidGl0bGUiLCJ0eHBfY2F0ZWdvcnkiLCJuYW1lID0gJyRvYjFDYXRlZ29yeU9uZScgbGltaXQgMSIpOwoJCQkJCQkJJG9iMUNhdGVnb3J5T25lID0gJHJzWyJ0aXRsZSJdOwoJCQkJCQkJdW5zZXQoJHJzKTsKCQkJCQkJfQoJCQkJCQlpZighZW1wdHkoJG9iMUNhdGVnb3J5VHdvKSl7CgkJCQkJCQkkcnMgPSBzYWZlX3JvdygidGl0bGUiLCJ0eHBfY2F0ZWdvcnkiLCJuYW1lID0gJyRvYjFDYXRlZ29yeVR3bycgbGltaXQgMSIpOwoJCQkJCQkJJG9iMUNhdGVnb3J5VHdvID0gJHJzWyJ0aXRsZSJdOwoJCQkJCQkJdW5zZXQoJHJzKTsKCQkJCQkJfQoJCQkJCQkkb2IxQ2F0ZWdvcnlOYW1lID0gKGVtcHR5KCRvYjFDYXRlZ29yeU9uZSkpID8gIiIgOiAkb2IxQ2F0ZWdvcnlPbmU7CgkJCQkJCWlmKCFlbXB0eSgkb2IxQ2F0ZWdvcnlUd28pKXsKCQkJCQkJCSRvYjFDYXRlZ29yeU5hbWUgPSAoZW1wdHkoJG9iMUNhdGVnb3J5T25lKSkgPyAkb2IxQ2F0ZWdvcnlUd28gOiAkb2IxQ2F0ZWdvcnlOYW1lLiIsICIuJG9iMUNhdGVnb3J5VHdvOwoJCQkJCQl9CgkJCQkJfWVsc2V7CgkJCQkJCSRycyA9IHNhZmVfcm93KCJ0aXRsZSIsInR4cF9jYXRlZ29yeSIsIm5hbWUgPSAnJGMnIGxpbWl0IDEiKTsKCQkJCQkJJG9iMUNhdGVnb3J5TmFtZSA9IChlbXB0eSgkcnNbInRpdGxlIl0pKSA/ICRjIDogJHJzWyJ0aXRsZSJdOwoJCQkJCX0KCQkJCX0KCQkJCSRvcmRlciA9IHByZWdfcmVwbGFjZSgkb2IxUGF0dGVybkNhdGVnb3J5LCRvYjFDYXRlZ29yeU5hbWUsJG9yZGVyKTsKCQkJCXVuc2V0KCRvYjFDYXRlZ29yeU5hbWUpOwoJCQkJdW5zZXQoJG9iMVBhdHRlcm5DYXRlZ29yeSk7CgkJCQl1bnNldCgkb2IxTWF0Y2hDYXRlZ29yeSk7CgkJCX0KCgkJCS8vIGlmICRvcmRlciBjb250YWlucyBhcnRpY2xlLCByZXBsYWNlIGl0CgkJCWlmKGNvdW50KCRvYjFNYXRjaEFydGljbGVbMF0pPjApewoJCQkJLy8gZ2V0IHRoZSBhcnRpY2xlIG5hbWUKCQkJCWlmKCFlbXB0eSgkZmV0Y2hJRCkpewoJCQkJCSRycyA9IHNhZmVfcm93KCJ0aXRsZSIsInRleHRwYXR0ZXJuIiwiaWQgPSAnJGZldGNoSUQnIGxpbWl0IDEiKTsKCQkJCQkkb2IxQXJ0aWNsZU5hbWUgPSAoZW1wdHkoJHJzWyJ0aXRsZSJdKSkgPyAiIiA6ICRyc1sidGl0bGUiXTsKCQkJCX1lbHNlewoJCQkJCSRvYjFBcnRpY2xlTmFtZSA9ICIiOwoJCQkJfQoJCQkJJG9yZGVyID0gcHJlZ19yZXBsYWNlKCRvYjFQYXR0ZXJuQXJ0aWNsZSwkb2IxQXJ0aWNsZU5hbWUsJG9yZGVyKTsKCQkJCXVuc2V0KCRvYjFBcnRpY2xlTmFtZSk7CgkJCQl1bnNldCgkb2IxUGF0dGVybkFydGljbGUpOwoJCQkJdW5zZXQoJG9iMU1hdGNoQXJ0aWNsZSk7CgkJCX0KCQkJdW5zZXQoJGZldGNoSUQpOwoJCQkkYXJyT2IxT3JkZXIgPSBleHBsb2RlKCIsIiwkb3JkZXIpOwoJCQl1bnNldCgkb3JkZXIpOwoJCQlmb3IoJGk9MDskaTxjb3VudCgkYXJyT2IxT3JkZXIpOyRpKyspewoJCQkJaWYoIWVtcHR5KCRhcnJPYjFPcmRlclskaV0pKSAkYXJyT2IxT3JkZXJOZXdbXSA9ICRhcnJPYjFPcmRlclskaV07CgkJCX0KCQkJdW5zZXQoJGFyck9iMU9yZGVyKTsKCQkJZm9yKCRpPTA7JGk8Y291bnQoJGFyck9iMU9yZGVyTmV3KTskaSsrKXsKCQkJCWlmKCRpPT0wKXsKCQkJCQkkb3V0W10gPSAkYXJyT2IxT3JkZXJOZXdbJGldOwoJCQkJfWVsc2V7CgkJCQkJJG91dFtdID0gJHNlcGFyYXRvci4kYXJyT2IxT3JkZXJOZXdbJGldOwoJCQkJfQoJCQl9CgkJCXVuc2V0KCRhcnJPYjFPcmRlck5ldyk7CgkJCSRvdXQgPSAoY291bnQoJG91dCkpID8gam9pbigiIiwkb3V0KSA6ICIiOwoJCQlyZXR1cm4gJG91dDsKCQl9Cgl9IjtzOjM6Im1kNSI7czozMjoiZDFiNGNlMDI3OGU3MzJiMmFmNGRmZWY2MGZlNzg3YmMiO30='
?>