--- http_interactions: - request: method: get uri: http://glosbe.com/pl/en/asdfff body: encoding: US-ASCII string: '' headers: accept: - ! '*/*' user-agent: - Ruby response: status: code: 404 message: Not Found headers: server: - nginx/1.0.15 date: - Tue, 24 Jul 2012 12:07:15 GMT content-type: - text/html;charset=UTF-8 connection: - keep-alive content-language: - en-US content-length: - '32459' vary: - Accept-Encoding body: encoding: ASCII-8BIT string: !binary |- PCFET0NUWVBFIEhUTUwgU1lTVEVNICJhYm91dDpsZWdhY3ktY29tcGF0Ij4K PGh0bWwgeG1sbnM6b2c9Imh0dHA6Ly9vcGVuZ3JhcGhwcm90b2NvbC5vcmcv c2NoZW1hLyIgeG1sbnM6ZmI9Imh0dHA6Ly93d3cuZmFjZWJvb2suY29tLzIw MDgvZmJtbCIgbGFuZz0iZW4iPjxoZWFkPjxtZXRhIGNvbnRlbnQ9InRleHQv aHRtbDsgY2hhcnNldD1VVEYtOCIgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBl Ii8+PG1ldGEgY29udGVudD0iZW4scGwsZW4iIGh0dHAtZXF1aXY9ImNvbnRl bnQtbGFuZ3VhZ2UiLz48bWV0YSBjb250ZW50PSImY29weTsgMjAxMSBDbG91 ZCBJbnNpZGUiIG5hbWU9ImNvcHlyaWdodCIvPjxtZXRhIGNvbnRlbnQ9IlNL WVBFX1RPT0xCQVJfUEFSU0VSX0NPTVBBVElCTEUiIG5hbWU9IlNLWVBFX1RP T0xCQVIiLz48bWV0YSBjb250ZW50PSJlbiIgaWQ9IlgtQWNjLUxhbmciIG5h bWU9IlgtQWNjLUxhbmciLz48bWV0YSB2YWx1ZT0ibm90cmFuc2xhdGUiIG5h bWU9Imdvb2dsZSIvPjxtZXRhIGNvbnRlbnQ9InBsIiBpZD0iWC1mcm9tTGFu ZyIgbmFtZT0iWC1mcm9tTGFuZyIvPjxtZXRhIGNvbnRlbnQ9ImVuIiBpZD0i WC1kZXN0TGFuZyIgbmFtZT0iWC1kZXN0TGFuZyIvPjxsaW5rIGhyZWY9Imh0 dHA6Ly9nbG9zYmUuY29tL3Jlc291cmNlcy9yZXNvdXJjZXNfaW1nL2Zhdmlj b24ucG5nIiByZWw9InNob3J0Y3V0IGljb24iLz48dGl0bGU+QXNkZmZmIGlu IEVuZ2xpc2gsIERpY3Rpb25hcnkgUG9saXNoIEVuZ2xpc2g8L3RpdGxlPjxt ZXRhIGNvbnRlbnQ9ImFzZGZmZixQb2xpc2gsRW5nbGlzaCxkaWN0aW9uYXJ5 LHRyYW5zbGF0aW9uIiBuYW1lPSJrZXl3b3JkcyIvPjxtZXRhIGNvbnRlbnQ9 ImFzZGZmZiB0cmFuc2xhdGlvbiBpbiBQb2xpc2gtRW5nbGlzaCBkaWN0aW9u YXJ5IiBuYW1lPSJkZXNjcmlwdGlvbiIvPjxsaW5rIGhyZWY9Imh0dHA6Ly9l bi5nbG9zYmUuY29tL3BsL2VuL2FzZGZmZiIgaHJlZmxhbmc9ImVuLXVzIiBy ZWw9ImFsdGVybmF0ZSIvPjxsaW5rIGhyZWY9Imh0dHA6Ly9wbC5nbG9zYmUu Y29tL3BsL2VuL2FzZGZmZiIgaHJlZmxhbmc9InBsIiByZWw9ImFsdGVybmF0 ZSIvPjxtZXRhIGNvbnRlbnQ9IndlYnNpdGUiIHByb3BlcnR5PSJvZzp0eXBl Ii8+PG1ldGEgY29udGVudD0iaHR0cDovL2VuLmdsb3NiZS5jb20vZW4vcGwv IiBwcm9wZXJ0eT0ib2c6dXJsIi8+CgkJPCEtLSBodHRwOi8vZW4uZ2xvc2Jl LmNvbS9lbi9wbC8tLT4KCQkKCTxtZXRhIGNvbnRlbnQ9Imh0dHA6Ly9nbG9z YmUuY29tL2ZiX2xvZ28ucG5nIiBwcm9wZXJ0eT0ib2c6aW1hZ2UiLz48bWV0 YSBjb250ZW50PSJHbG9zYmUiIHByb3BlcnR5PSJvZzpzaXRlX25hbWUiLz48 bWV0YSBjb250ZW50PSI2Njg5OTE3NjcsMTY1MjIzNTE4MiIgcHJvcGVydHk9 ImZiOmFkbWlucyIvPjxtZXRhIGNvbnRlbnQ9IjI3MDY3MzM0OTYxNDIzNyIg cHJvcGVydHk9ImZiOmFwcF9pZCIvPjxtZXRhIGNvbnRlbnQ9ImVuX1VTIiBw cm9wZXJ0eT0ib2c6bG9jYWxlIi8+PG1ldGEgY29udGVudD0icGxfUEwiIHBy b3BlcnR5PSJvZzpsb2NhbGU6YWx0ZXJuYXRlIi8+PG1ldGEgY29udGVudD0i ZW5fVVMiIHByb3BlcnR5PSJvZzpsb2NhbGU6YWx0ZXJuYXRlIi8+PGxpbmsg aHJlZj0iL09wZW5TZWFyY2guYXNweD9mcm9tPXBsJmFtcDtkZXN0PWVuIiB0 aXRsZT0iRGljdGlvbmFyeSAoUG9saXNoIOKGkiBFbmdsaXNoKSIgdHlwZT0i YXBwbGljYXRpb24vb3BlbnNlYXJjaGRlc2NyaXB0aW9uK3htbCIgcmVsPSJz ZWFyY2giLz48c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CndpbmRv dy5nb29nbGVfYW5hbHl0aWNzX3VhY2N0ID0gIlVBLTEzMTEwNzMzLTExIjsK PC9zY3JpcHQ+PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPndpbmRv dy5mYlN2Y1VybCA9ICcvZmJTdmMvYWN0aW9uJzs8L3NjcmlwdD4KCjwhLS1b aWYgbHQgSUUgN10+IDxsaW5rIGhyZWY9Imh0dHA6Ly9nbG9zYmUuY29tL3Jl c291cmNlcy9zdHlsZXMvc3R5bGVfaWU2LmNzcyIgdHlwZT0idGV4dC9jc3Mi IHJlbD0ic3R5bGVzaGVldCIvPiA8IVtlbmRpZl0tLT4KCgo8IS0tIFtOTyBj b21wcmVzcyByZXNvdXJjZXMgc3RhcnRdIC0tPgo8bGluayBjaGFyc2V0PSJV VEYtOCIgdHlwZT0idGV4dC9jc3MiIGhyZWY9Imh0dHA6Ly9nbG9zYmUuY29t L3Jlc291cmNlcy9zdHlsZXMvanF1ZXJ5LXVpLmNzcyIgcmVsPSJzdHlsZXNo ZWV0Ii8+PGxpbmsgY2hhcnNldD0iVVRGLTgiIHR5cGU9InRleHQvY3NzIiBo cmVmPSIvcmVzb3VyY2VzL3N0eWxlcy9zdHlsZS5jc3MiIHJlbD0ic3R5bGVz aGVldCIvPjxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3NjcmlwdHMvanF1ZXJ5 LTEuNy5taW4uanMiIHR5cGU9InRleHQvamF2YXNjcmlwdCI+PC9zY3JpcHQ+ PHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvc2NyaXB0cy9qcXVlcnktdWkubWlu LmpzIiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPjwvc2NyaXB0PjxzY3JpcHQg c3JjPSIvcmVzb3VyY2VzL3NjcmlwdHMvanF1ZXJ5LmNvb2tpZS5qcyIgdHlw ZT0idGV4dC9qYXZhc2NyaXB0Ij48L3NjcmlwdD48c2NyaXB0IHNyYz0iL3Jl c291cmNlcy9zY3JpcHRzL2pxdWVyeS52YWxpZGF0ZS5taW4uanMiIHR5cGU9 InRleHQvamF2YXNjcmlwdCI+PC9zY3JpcHQ+PHNjcmlwdCBzcmM9Ii9yZXNv dXJjZXMvc2NyaXB0cy9qcXVlcnkuYmxvY2tVSS5qcyIgdHlwZT0idGV4dC9q YXZhc2NyaXB0Ij48L3NjcmlwdD48c2NyaXB0IHNyYz0iL3Jlc291cmNlcy9z Y3JpcHRzL2pxdWVyeS50aW1lYWdvLmpzIiB0eXBlPSJ0ZXh0L2phdmFzY3Jp cHQiPjwvc2NyaXB0PjxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3NjcmlwdHMv anF1ZXJ5LmJhLWJicS5taW4uanMiIHR5cGU9InRleHQvamF2YXNjcmlwdCI+ PC9zY3JpcHQ+PHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvc2NyaXB0cy9qcXVl cnkuanNvbi5taW4uanMiIHR5cGU9InRleHQvamF2YXNjcmlwdCI+PC9zY3Jp cHQ+PHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvc2NyaXB0cy9qc3RvcmFnZS5t aW4uanMiIHR5cGU9InRleHQvamF2YXNjcmlwdCI+PC9zY3JpcHQ+PHNjcmlw dCBzcmM9Ii9zY3JpcHRzL2ZiQ29yZS5qcyIgdHlwZT0idGV4dC9qYXZhc2Ny aXB0Ij48L3NjcmlwdD48c2NyaXB0IHNyYz0iL3NjcmlwdHMvZmJBcnRpY2xl LmpzIiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPjwvc2NyaXB0PjxzY3JpcHQg c3JjPSIvcmVzb3VyY2VzL3NjcmlwdHMvYXVkaW8vc3dmb2JqZWN0LmpzIiB0 eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPjwvc2NyaXB0PjxzY3JpcHQgc3JjPSIv cmVzb3VyY2VzL3NjcmlwdHMvYXVkaW8vcmVjb3JkZXIuanMiIHR5cGU9InRl eHQvamF2YXNjcmlwdCI+PC9zY3JpcHQ+PHNjcmlwdCBzcmM9Ii9yZXNvdXJj ZXMvc2NyaXB0cy9hdWRpby9ndWkuanMiIHR5cGU9InRleHQvamF2YXNjcmlw dCI+PC9zY3JpcHQ+PHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvc2NyaXB0cy9k aWN0LmpzIiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPjwvc2NyaXB0PjxzY3Jp cHQgc3JjPSIvcmVzb3VyY2VzL3NjcmlwdHMvZmxhdE1lbnUuanMiIHR5cGU9 InRleHQvamF2YXNjcmlwdCI+PC9zY3JpcHQ+Cgo8IS0tIFtjb21wcmVzcyBy ZXNvdXJjZXMgZW5kXSAtLT4KCgoKCgo8IS0tW2lmIGx0IElFIDldPgo8c2Ny aXB0IHNyYz0iaHR0cDovL2h0bWw1c2hpbS5nb29nbGVjb2RlLmNvbS9zdm4v dHJ1bmsvaHRtbDUuanMiPjwvc2NyaXB0Pgo8IVtlbmRpZl0tLT4KCjwvaGVh ZD48Ym9keT48ZGl2IGlkPSJjb250YWluZXIiPjxkaXYgaWQ9ImhlYWRlciI+ PGhlYWRlcj48ZGl2IGNsYXNzPSJjb250ZW50X3dyYXBwZXIiPjxkaXYgbGFu Zz0iZW4iIGlkPSJzdWJIZWFkZXJUZXh0Ij48ZGl2IGlkPSJsb2dpbkxpbmtz Q29udGFpbmVyIj48c2NyaXB0IGlkPSJ3ZWxjb21lVGV4dFRtcGwiIHR5cGU9 InRleHQvaHRtbCI+Cgk8c3Bhbj5XZWxjb21lIDxlbT48YSBocmVmPSI8JT0g dXJsICU+Ij48JT0gbmFtZSAlPjwvYT48L2VtPiE8L3NwYW4+IHwgPGEgaHJl Zj0iL2F1dGgvbG9nb3V0Ij5sb2dvdXQ8L2E+CiAgPC9zY3JpcHQ+PHNjcmlw dD4KICBmdW5jdGlvbiBzaG93TG9naW5XaW5kb3coKSB7CgkgICAgJC5ibG9j a1VJKHsgbWVzc2FnZTogJCgnI2xvZ2luQ29udGFpbmVyJyksIGNzczoge2Jv cmRlcjogJ25vbmUnLCBjdXJzb3I6ICdudWxsJywgYmFja2dyb3VuZENvbG9y OiAndHJhbnNwYXJlbnQnIH0sIG92ZXJsYXlDU1M6IHsgY3Vyc29yOiBudWxs fSB9KTsgJCgnLmJsb2NrT3ZlcmxheScpLmNsaWNrKCQudW5ibG9ja1VJKTsK ICB9IAogIDwvc2NyaXB0PjxzcGFuIGlkPSJ3ZWxjb21lVXNlclNwYW4iPjwv c3Bhbj48YSBvbmNsaWNrPSJzaG93TG9naW5XaW5kb3coKSIgaHJlZj0iamF2 YXNjcmlwdDo7Ij5Mb2cgaW48L2E+PC9kaXY+PGRpdiBpZD0ibG9jYWxlQ2hh bmdlQ29udGFpbmVyIj48ZGl2IGNsYXNzPSJmbGF0TWVudUJ1dHRvbiI+PHNl bGVjdCBmbV9jb2x1bW5zPSI2IiBmbV9tb3JlPSJmYWxzZSIgaWQ9ImxvY2Fs ZUNoYW5nZSIgY2xhc3M9ImZsYXRNZW51Qm94Ij48b3B0aW9uIHZhbHVlPSJh ZiI+YWZyaWthYW5zPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0ic3EiPmFsYmFu aWFuPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iYXIiPmFyYWJpYzwvb3B0aW9u PjxvcHRpb24gdmFsdWU9Imh5Ij5hcm1lbmlhbjwvb3B0aW9uPjxvcHRpb24g dmFsdWU9ImF6Ij5hemVyYmFpamFuaTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9 ImV1Ij5iYXNxdWU8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJiZSI+YmVsYXJ1 c2lhbjwvb3B0aW9uPjxvcHRpb24gdmFsdWU9ImJuIj5iZW5nYWxpPC9vcHRp b24+PG9wdGlvbiB2YWx1ZT0iYmciPmJ1bGdhcmlhbjwvb3B0aW9uPjxvcHRp b24gdmFsdWU9ImNhIj5jYXRhbGFuPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0i emgiPmNoaW5lc2U8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJociI+Y3JvYXRp YW48L29wdGlvbj48b3B0aW9uIHZhbHVlPSJjcyI+Y3plY2g8L29wdGlvbj48 b3B0aW9uIHZhbHVlPSJkYSI+ZGFuaXNoPC9vcHRpb24+PG9wdGlvbiB2YWx1 ZT0ibmwiPmR1dGNoPC9vcHRpb24+PG9wdGlvbiBzZWxlY3RlZD0idHJ1ZSIg dmFsdWU9ImVuIj5lbmdsaXNoPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iZXQi PmVzdG9uaWFuPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iZmkiPmZpbm5pc2g8 L29wdGlvbj48b3B0aW9uIHZhbHVlPSJmciI+ZnJlbmNoPC9vcHRpb24+PG9w dGlvbiB2YWx1ZT0iZ2wiPmdhbGljaWFuPC9vcHRpb24+PG9wdGlvbiB2YWx1 ZT0ia2EiPmdlb3JnaWFuPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iZGUiPmdl cm1hbjwvb3B0aW9uPjxvcHRpb24gdmFsdWU9Imd1Ij5ndWphcmF0aTwvb3B0 aW9uPjxvcHRpb24gdmFsdWU9Imh0Ij5oYWl0aWFuPC9vcHRpb24+PG9wdGlv biB2YWx1ZT0iaGUiPmhlYnJldzwvb3B0aW9uPjxvcHRpb24gdmFsdWU9Imhp Ij5oaW5kaTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9Imh1Ij5odW5nYXJpYW48 L29wdGlvbj48b3B0aW9uIHZhbHVlPSJpcyI+aWNlbGFuZGljPC9vcHRpb24+ PG9wdGlvbiB2YWx1ZT0iaWQiPmluZG9uZXNpYW48L29wdGlvbj48b3B0aW9u IHZhbHVlPSJnYSI+aXJpc2g8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJpdCI+ aXRhbGlhbjwvb3B0aW9uPjxvcHRpb24gdmFsdWU9ImphIj5qYXBhbmVzZTwv b3B0aW9uPjxvcHRpb24gdmFsdWU9ImtuIj5rYW5uYWRhPC9vcHRpb24+PG9w dGlvbiB2YWx1ZT0ia28iPmtvcmVhbjwvb3B0aW9uPjxvcHRpb24gdmFsdWU9 Imx2Ij5sYXR2aWFuPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0ibHQiPmxpdGh1 YW5pYW48L29wdGlvbj48b3B0aW9uIHZhbHVlPSJtayI+bWFjZWRvbmlhbjwv b3B0aW9uPjxvcHRpb24gdmFsdWU9Im1zIj5tYWxheTwvb3B0aW9uPjxvcHRp b24gdmFsdWU9Im10Ij5tYWx0ZXNlPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0i ZWwiPm1vZGVybiBncmVlazwvb3B0aW9uPjxvcHRpb24gdmFsdWU9Im5iIj5u b3J3ZWdpYW4gYm9rbcOlbDwvb3B0aW9uPjxvcHRpb24gdmFsdWU9ImZhIj5w ZXJzaWFuPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0icGwiPnBvbGlzaDwvb3B0 aW9uPjxvcHRpb24gdmFsdWU9InB0Ij5wb3J0dWd1ZXNlPC9vcHRpb24+PG9w dGlvbiB2YWx1ZT0icm8iPnJvbWFuaWFuPC9vcHRpb24+PG9wdGlvbiB2YWx1 ZT0icnUiPnJ1c3NpYW48L29wdGlvbj48b3B0aW9uIHZhbHVlPSJzciI+c2Vy Ymlhbjwvb3B0aW9uPjxvcHRpb24gdmFsdWU9InNrIj5zbG92YWs8L29wdGlv bj48b3B0aW9uIHZhbHVlPSJzbCI+c2xvdmVuaWFuPC9vcHRpb24+PG9wdGlv biB2YWx1ZT0iZXMiPnNwYW5pc2g8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJz dyI+c3dhaGlsaTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9InN2Ij5zd2VkaXNo PC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0idGwiPnRhZ2Fsb2c8L29wdGlvbj48 b3B0aW9uIHZhbHVlPSJ0YSI+dGFtaWw8L29wdGlvbj48b3B0aW9uIHZhbHVl PSJ0ZSI+dGVsdWd1PC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0idGgiPnRoYWk8 L29wdGlvbj48b3B0aW9uIHZhbHVlPSJ0ciI+dHVya2lzaDwvb3B0aW9uPjxv cHRpb24gdmFsdWU9InVrIj51a3JhaW5pYW48L29wdGlvbj48b3B0aW9uIHZh bHVlPSJ1ciI+dXJkdTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9InZpIj52aWV0 bmFtZXNlPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iY3kiPndlbHNoPC9vcHRp b24+PG9wdGlvbiB2YWx1ZT0ieWkiPnlpZGRpc2g8L29wdGlvbj48L3NlbGVj dD48c2NyaXB0PgoJICAgICAgICAgICAgICAgICAgICAgICAgJChkb2N1bWVu dCkucmVhZHkoZnVuY3Rpb24oKSB7CgkJICAgICAgICAgICAgICAgICAgICAg ICAgJCgiI2xvY2FsZUNoYW5nZSIpLmNoYW5nZShmdW5jdGlvbigpIHsKCQkg ICAgICAgICAgICAgICAgICAgICAgICAJZnVuY3Rpb24gc2V0Q29va2llKGNf bmFtZSx2YWx1ZSxleGRheXMsZG9tYWluKSAJewoJCSAgICAgICAgICAgICAg ICAgICAgICAgIAkJdmFyIGV4ZGF0ZT1uZXcgRGF0ZSgpOwoJCQkgICAgICAg ICAgICAgICAgICAgICAgICAJZXhkYXRlLnNldERhdGUoZXhkYXRlLmdldERh dGUoKSArIGV4ZGF5cyk7CgkJCSAgICAgICAgICAgICAgICAgICAgICAgIAl2 YXIgY192YWx1ZT1lc2NhcGUodmFsdWUpICsgKChleGRheXM9PW51bGwpID8g IiIgOiAiOyBleHBpcmVzPSIrZXhkYXRlLnRvVVRDU3RyaW5nKCkpICsgKChk b21haW49PW51bGwpID8gIiIgOiAiOyBkb21haW49Iitkb21haW4pOwoJCQkg ICAgICAgICAgICAgICAgICAgICAgICAJZG9jdW1lbnQuY29va2llPWNfbmFt ZSArICI9IiArIGNfdmFsdWUgKyAiOyBwYXRoPS8iOwoJCSAgICAgICAgICAg ICAgICAgICAgICAgIAl9CgkJICAgICAgICAgICAgICAgICAgICAgICAgCXNl dENvb2tpZSgnbG9jYWxlJywgJCh0aGlzKS52YWwoKSwzNjUsJy4nK3dpbmRv dy5zaXRlSG9zdCk7CgkJICAgICAgICAgICAgICAgICAgICAgICAgCWxvY2F0 aW9uLnJlbG9hZCgpOwoJCSAgICAgICAgICAgICAgICAgICAgICAgIH0pOwoJ ICAgICAgICAgICAgICAgICAgICAgICAgfSk7CgkgICAgICAgICAgICAgICAg ICAgICAgICAKCSAgICAgICAgICAgICAgICAgICAgICAgIDwvc2NyaXB0Pjwv ZGl2PjwvZGl2PjwvZGl2PjxkaXYgaWQ9ImxvZ28iPjxhIHRpdGxlPSJEaWN0 aW9uYXJ5IGdsb3NiZSIgaHJlZj0iLyI+PGltZyBhbHQ9IkRpY3Rpb25hcnkg Z2xvc2JlIiBoZWlnaHQ9IjEwMCIgd2lkdGg9IjI2MCIgc3JjPSJodHRwOi8v Z2xvc2JlLmNvbS9yZXNvdXJjZXMvcmVzb3VyY2VzX2ltZy9sb2dvX2dsb3Ni ZS5wbmciLz48L2E+PC9kaXY+PGRpdiBpZD0ic29jaWFsQnV0dG9ucyI+PGRp diBjbGFzcz0ic29jaWFsQnV0dG9uIj48ZzpwbHVzb25lIGNhbGxiYWNrPSJw bHVzb25lVm90ZSIgaHJlZj0iaHR0cDovL2VuLmdsb3NiZS5jb20vZW4vcGwv IiBzaXplPSJ0YWxsIj48L2c6cGx1c29uZT48c2NyaXB0IHR5cGU9InRleHQv amF2YXNjcmlwdCI+CgkgICAgIGZ1bmN0aW9uIHBsdXNvbmVWb3RlKG9iaikg ewoJICAgICAgIF9nYXEucHVzaChbJ190cmFja0V2ZW50JywncGx1c09uZScs b2JqLnN0YXRlLCBkb2N1bWVudC5sb2NhdGlvbi5ocmVmXSk7CgkgICAgIH0K CSAgICAKCSAgICAgIAoJCQl2YXIgcyA9IGRvY3VtZW50LmdldEVsZW1lbnRC eUlkKCJzb2NpYWxCdXR0b25zIik7CQkJCQkKCQkJdmFyIGdwTG9hZGVkID0g ZmFsc2U7CgkJCSQoIC8vIiNzb2NpYWxCdXR0b25zIikuYmluZCgna2V5cHJl c3MnLCAKCQkJCQlmdW5jdGlvbihlKSB7CgkJCQlpZihncExvYWRlZCkgcmV0 dXJuOwoJCQkJZWxzZSBncExvYWRlZCA9IHRydWU7CgkJCSAgICB2YXIgcG8g PSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzY3JpcHQnKTsgcG8udHlwZSA9 ICd0ZXh0L2phdmFzY3JpcHQnOyBwby5hc3luYyA9IHRydWU7CgkJCSAgICBw by5zcmMgPSAnaHR0cHM6Ly9hcGlzLmdvb2dsZS5jb20vanMvcGx1c29uZS5q cyc7CgkJCSAgICB2YXIgcyA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdO YW1lKCdzY3JpcHQnKVswXTsgcy5wYXJlbnROb2RlLmluc2VydEJlZm9yZShw bywgcyk7CSAgCgkJCX0sZmFsc2UpOwkKCQkJCgkJPC9zY3JpcHQ+PC9kaXY+ PGRpdiBjbGFzcz0ic29jaWFsQnV0dG9uIGZiIj48ZGl2IGlkPSJmYi1yb290 Ij48L2Rpdj48c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CgkJCXZh ciBzID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNvY2lhbEJ1dHRvbnMi KTsKCQkJdmFyIGZiTG9hZGVkID0gZmFsc2U7CgkJCSQoCgkJCQkJLy8iI3Nv Y2lhbEJ1dHRvbnMiKS5iaW5kKCdrZXlwcmVzcycsIAoJCQkJZnVuY3Rpb24o ZSkgewoJCQkJaWYoZmJMb2FkZWQpIHJldHVybjsKCQkJCWVsc2UgZmJMb2Fk ZWQgPSB0cnVlOwoKCQkJCXZhciBlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVu dCgnc2NyaXB0Jyk7CgkJCQllLmFzeW5jID0gdHJ1ZTsKCQkJCWUuc3JjID0g ZG9jdW1lbnQubG9jYXRpb24ucHJvdG9jb2wKCQkJCQkJKyAnLy9jb25uZWN0 LmZhY2Vib29rLm5ldC9lbl9VUy9hbGwuanMjeGZibWw9MSc7CgkJCQlkb2N1 bWVudC5nZXRFbGVtZW50QnlJZCgnZmItcm9vdCcpLmFwcGVuZENoaWxkKGUp OwoJCQkJCgkJCQkKCQkJCQoJCQl9LCBmYWxzZSk7CgkJCQoJICAKCQkJdmFy IHRtcCA9IHdpbmRvdy5mYkFzeW5jSW5pdDsKCQkJd2luZG93LmZiQXN5bmNJ bml0ID0gZnVuY3Rpb24oKSB7CgkJCQkgIEZCLmluaXQoewogICAgICAgICAg ICAgYXBwSWQ6ICcyNzA2NzMzNDk2MTQyMzcnLCBjaGFubmVsVXJsOiAnaHR0 cDovL2dsb3NiZS5jb20vZmIvY2hhbm5lbC5odG1sJywgeGZibWw6IHRydWUK ICAgICAgICAgIH0pOwoKCQkJCSBfZ2EudHJhY2tGYWNlYm9vaygpOwoJCQkJ IAoJCQkJIEZCLkV2ZW50LnN1YnNjcmliZSgnZWRnZS5jcmVhdGUnLCBmdW5j dGlvbihocmVmLCB3aWRnZXQpIHsKCQkJICAgICBfZ2FxLnB1c2goWydfdHJh Y2tFdmVudCcsJ2ZhY2Vib29rTGlrZScsICdsaWtlJywgaHJlZl0pOwoJCQkg ICB9KTsKCQkgICAgIAoJCQkJIEZCLkV2ZW50LnN1YnNjcmliZSgnZWRnZS5y ZW1vdmUnLCBmdW5jdGlvbihocmVmLCB3aWRnZXQpIHsKCQkgICAgICAgX2dh cS5wdXNoKFsnX3RyYWNrRXZlbnQnLCdmYWNlYm9va0xpa2UnLCAndW5saWtl JywgaHJlZl0pOwoJCSAgICAgfSk7CgoJCQkgICBpZiAodG1wKSB7CgkJCSAg ICAgdG1wKCk7CgkJCSAgIH0KCQkJfQoJCTwvc2NyaXB0PjxmYjpsaWtlIGZv bnQ9IiIgYWN0aW9uPSJsaWtlIiBzaG93X2ZhY2VzPSJmYWxzZSIgc3R5bGU9 ImhlaWdodDogNjRweDsiIHdpZHRoPSI2MCIgbGF5b3V0PSJib3hfY291bnQi IHNlbmQ9ImZhbHNlIiBocmVmPSJodHRwOi8vZW4uZ2xvc2JlLmNvbS9lbi9w bC8iPjwvZmI6bGlrZT48L2Rpdj48ZGl2IGNsYXNzPSJzb2NpYWxCdXR0b24i PjxhIHJlbD0ibm9mb2xsb3ciIGNsYXNzPSJ0d2l0dGVyLXNoYXJlLWJ1dHRv biIgaHJlZj0iaHR0cDovL3R3aXR0ZXIuY29tL3NoYXJlP3VybD1odHRwOi8v ZW4uZ2xvc2JlLmNvbS9lbi9wbC8mY291bnQ9dmVydGljYWwiPlR3ZWV0PC9h PjxzY3JpcHQgaWQ9InR3aXR0ZXJCdXR0b25TY3JpcHQiIHR5cGU9InRleHQv amF2YXNjcmlwdCI+CgkJCXZhciBzID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5 SWQoInNvY2lhbEJ1dHRvbnMiKTsKCQkJdmFyIHR3TG9hZGVkID0gZmFsc2U7 CgkJCSQoLy8iI3NvY2lhbEJ1dHRvbnMiKS5iaW5kKCdrZXlwcmVzcycsIAoJ CQkJCWZ1bmN0aW9uKGUpIHsKCQkJCWlmKHR3TG9hZGVkKSByZXR1cm47CgkJ CQllbHNlIHR3TG9hZGVkID0gdHJ1ZTsKCQkJCXZhciBzVHdpdCA9IGRvY3Vt ZW50LmNyZWF0ZUVsZW1lbnQoJ1NDUklQVCcpOwoJCQkJdmFyIGNUd2l0ID0g ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3R3aXR0ZXJCdXR0b25TY3JpcHQn KTsKCQkJCXNUd2l0LnR5cGUgPSAndGV4dC9qYXZhc2NyaXB0JzsKCQkJCXNU d2l0LmFzeW5jID0gdHJ1ZTsKCQkJCXNUd2l0LnNyYyA9ICdodHRwOi8vcGxh dGZvcm0udHdpdHRlci5jb20vd2lkZ2V0cy5qcyc7CgkJCQkKCQkJCQoJCQkJ Y1R3aXQucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUoc1R3aXQsIGNUd2l0KTsK CQkJfSwgZmFsc2UpOwoJCTwvc2NyaXB0PjwvZGl2PjxkaXYgY2xhc3M9InNv Y2lhbEJ1dHRvbiI+PHNjcmlwdCBpZD0ibGlua2VkSW5CdXR0b25TY3JpcHQi IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CgkJCS8vYXN5bmMgc2NyaXB0LCB0 d2l0dGVyIGJ1dHRvbiBmYXNoaW9saXN0YS5jb20gc3R5bGUKCQkKCQkJdmFy IHMgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic29jaWFsQnV0dG9ucyIp OwoJCQl2YXIgbGluTG9hZGVkID0gZmFsc2U7CgkJCSQoLy8iI3NvY2lhbEJ1 dHRvbnMiKS5iaW5kKCdrZXlwcmVzcycsIAoJCQkJCWZ1bmN0aW9uKGUpIHsK CQkJCWlmKGxpbkxvYWRlZCkgcmV0dXJuOwoJCQkJZWxzZSBsaW5Mb2FkZWQg PSB0cnVlOwoJCQkJdmFyIHNUd2l0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVu dCgnU0NSSVBUJyk7CgkJCQl2YXIgY1R3aXQgPSBkb2N1bWVudC5nZXRFbGVt ZW50QnlJZCgnbGlua2VkSW5CdXR0b25TY3JpcHQnKTsKCQkJCXNUd2l0LnR5 cGUgPSAndGV4dC9qYXZhc2NyaXB0JzsKCQkJCXNUd2l0LmFzeW5jID0gdHJ1 ZTsKCQkJCXNUd2l0LnNyYyA9ICdodHRwOi8vcGxhdGZvcm0ubGlua2VkaW4u Y29tL2luLmpzJzsKCQkJCWNUd2l0LnBhcmVudE5vZGUuaW5zZXJ0QmVmb3Jl KHNUd2l0LCBjVHdpdCk7CgkJCX0sIGZhbHNlKTsKCQkJCgkJCQoJCQkKCQkJ ZnVuY3Rpb24gTGlua2VkSW5TaGFyZSgpIHsKCQkJCV9nYXEucHVzaChbJ190 cmFja1NvY2lhbCcsICdMaW5rZWRJbicsICdTaGFyZSddKTsKCQkJCX0KCQkJ PC9zY3JpcHQ+PHNjcmlwdCBkYXRhLXN1Y2Nlc3M9IkxpbmtlZEluU2hhcmUi IGRhdGEtY291bnRlcj0idG9wIiBkYXRhLXVybD0iaHR0cDovL2VuLmdsb3Ni ZS5jb20vZW4vcGwvIiB0eXBlPSJpbi9zaGFyZSI+PC9zY3JpcHQ+PC9kaXY+ PC9kaXY+PC9kaXY+PC9oZWFkZXI+PC9kaXY+PGRpdiBpZD0iYm9keSI+PGRp diBzdHlsZT0icG9zaXRpb246IHJlbGF0aXZlOyIgY2xhc3M9ImNvbnRlbnRf d3JhcHBlciI+PGRpdj48ZGl2IGNsYXNzPSJicmVhZGNydW1iIj48ZGl2IHht bG5zOnY9Imh0dHA6Ly9yZGYuZGF0YS12b2NhYnVsYXJ5Lm9yZy8jIj48c3Bh biB0eXBlb2Y9InY6QnJlYWRjcnVtYiIgY2xhc3M9IiI+PGEgaHJlZj0iLyIg cmVsPSJ2OnVybCIgcHJvcGVydHk9InY6dGl0bGUiPkRpY3Rpb25hcnk8L2E+ Jm5ic3A7ICZndDsgJm5ic3A7PHNwYW4gcmVsPSJ2OmNoaWxkIj48c3BhbiB0 eXBlb2Y9InY6QnJlYWRjcnVtYiIgY2xhc3M9IiI+PGEgaHJlZj0iL3BsLyIg cmVsPSJ2OnVybCIgcHJvcGVydHk9InY6dGl0bGUiPkRpY3Rpb25hcnkgUG9s aXNoPC9hPiZuYnNwOyAmZ3Q7ICZuYnNwOzxzcGFuIHJlbD0idjpjaGlsZCI+ PHNwYW4gdHlwZW9mPSJ2OkJyZWFkY3J1bWIiIGNsYXNzPSIiPjxhIGhyZWY9 Ii9wbC9lbi8iIHJlbD0idjp1cmwiIHByb3BlcnR5PSJ2OnRpdGxlIj5EaWN0 aW9uYXJ5IFBvbGlzaCBFbmdsaXNoPC9hPjwvc3Bhbj48L3NwYW4+PC9zcGFu Pjwvc3Bhbj48L3NwYW4+PC9kaXY+PC9kaXY+PGRpdiBzdHlsZT0ibWFyZ2lu LWxlZnQ6IDEwMHB4OyBtYXJnaW4tdG9wOiAxMHB4OyBtYXJnaW4tYm90dG9t OiAxMHB4OyI+PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgoJCSAg ICAgIGdvb2dsZV9hZF9jbGllbnQgPSAiY2EtcHViLTMzMTQ2NjIyNjEzOTQ4 MTYiOwoJCSAgICAgIC8qIGdsb3NiZS0zLXRvcCAqLwoJCSAgICAgIGdvb2ds ZV9hZF9zbG90ID0gIjExNjg3NDMxMDEiOwoJCSAgICAgIGdvb2dsZV9hZF93 aWR0aCA9IDcyODsKCQkgICAgICBnb29nbGVfYWRfaGVpZ2h0ID0gOTA7CgkJ ICAgIDwvc2NyaXB0PjxzY3JpcHQgc3JjPSJodHRwOi8vcGFnZWFkMi5nb29n bGVzeW5kaWNhdGlvbi5jb20vcGFnZWFkL3Nob3dfYWRzLmpzIiB0eXBlPSJ0 ZXh0L2phdmFzY3JpcHQiPjwvc2NyaXB0PjwvZGl2PjxkaXYgY2xhc3M9Imxl ZnRfc2lkZWJhciI+PGRpdiBjbGFzcz0iY29udGVudF9ib3hfcm91bmRlZCI+ PGRpdiBjbGFzcz0ic2VhcmNoQm94V2l0aExpc3QiPjxkaXYgY2xhc3M9Imtl eWJvYXJkQnV0dG9uQ29udGFpbmVyIj48YSBpbnB1dD0iIiBmcm9tPSIiIGxh bmc9InBsIiBjbGFzcz0iY3NzYnV0dG9uIGNzc2J1dHRvbi1zbWFsbCBrZXli b2FyZCIgdGl0bGU9InNob3cgb25saW5lIGtleWJvYXJkLCBQb2xpc2giIGhy ZWY9ImphdmFzY3JpcHQ6OyI+PGltZyBhbHQ9Ik9ubGluZSBrZXlib2FyZCwg UG9saXNoIiBzcmM9Imh0dHA6Ly9nbG9zYmUuY29tL3Jlc291cmNlcy9yZXNv dXJjZXNfaW1nL2tleWJvYXJkLnBuZyIvPjwvYT48L2Rpdj48ZGl2IGNsYXNz PSJsYW5ndWFnZVN3YXAiPgoJCSAgCQlQb2xpc2ggPGEgdGl0bGU9IkRpY3Rp b25hcnkgRW5nbGlzaCBQb2xpc2giIGNsYXNzPSJjc3NidXR0b24iIGhyZWY9 Ii9lbi9wbC8iPiZsdDsmZ3Q7PC9hPiBFbmdsaXNoCgkJPC9kaXY+PGhyLz48 ZGl2IGNsYXNzPSJzZWFyY2hCb3hTbWFsbCIgZGlyPSJsdHIiIGlkPSJzZWFy Y2hfYmFyIj48aW5wdXQgY2xhc3M9InNtYWxsLXdvcmRpbnB1dCIgaWQ9Indv cmRpbnB1dCIgbmFtZT0id29yZF9uYW1lIiBwbGFjZWhvbGRlcj0iRW50ZXIg d29yZCBvciBwaHJhc2U6IiBtYXhsZW5ndGg9IjIwMDAiIHgtd2Via2l0LWdy YW1tYXI9ImJ1aWx0aW46c2VhcmNoIiB4LXdlYmtpdC1zcGVlY2g9Ingtd2Vi a2l0LXNwZWVjaCIgYXV0b2ZvY3VzPSJhdXRvZm9jdXMiIHR5cGU9InNlYXJj aCIvPjxidXR0b24gdGl0bGU9InNlYXJjaCIgY2xhc3M9ImNzc2J1dHRvbiIg aWQ9Im5hdmlnYXRlVG9Xb3JkQnV0dG9uIj4KICAgICAgICAgICAgJnJhcXVv OwogICAgICAgIDwvYnV0dG9uPjxzY3JpcHQ+CgkJICAgIGlmICghKCJhdXRv Zm9jdXMiIGluIGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImlucHV0IikpKSB7 CgkJICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIndvcmRpbnB1dCIp LmZvY3VzKCk7CgkJICAgIH0KCQkgICAgCgkJICAgICQoIAoJCSAgICAJZnVu Y3Rpb24oKSB7CgkJCQkgICAgJCgnI3dvcmRpbnB1dCcpLmtleXByZXNzKGZ1 bmN0aW9uKGUpewoJCQkJICAgICAgICBpZihlLndoaWNoID09IDEzKXsKCQkJ CSAgICAgICAgICAkKCcjbmF2aWdhdGVUb1dvcmRCdXR0b24nKS5jbGljaygp OwoJCQkJICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTsKCQkJCSAgICAg ICAgIH0KCQkJCSAgICB9KQoJCQkgICAgfQoJCSAgICApOwogIAkJPC9zY3Jp cHQ+PC9kaXY+PGhyLz48ZGl2IGxhbmc9InBsIiBkaXI9Imx0ciIgaWQ9Indv cmRMaXN0V2lkZ2V0Ij48bmF2PjxhIHRpdGxlPSJhc2NldHljem55IGluIEVu Z2xpc2giIGNsYXNzPSJuIiBocmVmPSIuL2FzY2V0eWN6bnkiPmFzY2V0eWN6 bnkmbmJzcDs8L2E+PGEgdGl0bGU9ImFzY2V0eWsgaW4gRW5nbGlzaCIgY2xh c3M9Im4iIGhyZWY9Ii4vYXNjZXR5ayI+YXNjZXR5ayZuYnNwOzwvYT48YSB0 aXRsZT0iYXNjZXR5em0gaW4gRW5nbGlzaCIgY2xhc3M9Im4iIGhyZWY9Ii4v YXNjZXR5em0iPmFzY2V0eXptJm5ic3A7PC9hPjxhIHRpdGxlPSJhc2NlemEg aW4gRW5nbGlzaCIgY2xhc3M9Im4iIGhyZWY9Ii4vYXNjZXphIj5hc2NlemEm bmJzcDs8L2E+PGEgdGl0bGU9IkFzY29saSBQaWNlbm8gaW4gRW5nbGlzaCIg Y2xhc3M9Im4iIGhyZWY9Ii4vQXNjb2xpJTIwUGljZW5vIj5Bc2NvbGkgUGlj ZW5vJm5ic3A7PC9hPjxhIHRpdGxlPSJBU0VBTiBpbiBFbmdsaXNoIiBjbGFz cz0ibiIgaHJlZj0iLi9BU0VBTiI+QVNFQU4mbmJzcDs8L2E+PGEgdGl0bGU9 ImFzZWtzdWFsaXptIGluIEVuZ2xpc2giIGNsYXNzPSJuIiBocmVmPSIuL2Fz ZWtzdWFsaXptIj5hc2Vrc3VhbGl6bSZuYnNwOzwvYT48YSB0aXRsZT0iYXNl a3N1YWxueSBpbiBFbmdsaXNoIiBjbGFzcz0ibiIgaHJlZj0iLi9hc2Vrc3Vh bG55Ij5hc2Vrc3VhbG55Jm5ic3A7PC9hPjxhIHRpdGxlPSJhc2VrdXJhY2ph IGluIEVuZ2xpc2giIGNsYXNzPSJuIiBocmVmPSIuL2FzZWt1cmFjamEiPmFz ZWt1cmFjamEmbmJzcDs8L2E+PGEgdGl0bGU9ImFzZWt1cmFudCBpbiBFbmds aXNoIiBjbGFzcz0ibiIgaHJlZj0iLi9hc2VrdXJhbnQiPmFzZWt1cmFudCZu YnNwOzwvYT48YSB0aXRsZT0iYXNla3Vyb3dhxIcgaW4gRW5nbGlzaCIgY2xh c3M9Im4iIGhyZWY9Ii4vYXNla3Vyb3dhJUM0JTg3Ij5hc2VrdXJvd2HEhyZu YnNwOzwvYT48YSB0aXRsZT0iYXNlbSBpbiBFbmdsaXNoIiBjbGFzcz0ibiIg aHJlZj0iLi9hc2VtIj5hc2VtJm5ic3A7PC9hPjxhIHRpdGxlPSJhc2VtYmxl ciBpbiBFbmdsaXNoIiBjbGFzcz0ibiIgaHJlZj0iLi9hc2VtYmxlciI+YXNl bWJsZXImbmJzcDs8L2E+PGEgdGl0bGU9ImFzZW1ibGVyIGluIGrEmXp5ayBh c2VtYmxlcmEiIGNsYXNzPSJuIiBocmVmPSIuL2FzZW1ibGVyJTIzaiVDNCU5 OXp5ayUyMGFzZW1ibGVyYSI+YXNlbWJsZXIjasSZenlrIGFzZW1ibGVyYSZu YnNwOzwvYT48YSB0aXRsZT0iYXNlbWJsb3dhxIcgaW4gRW5nbGlzaCIgY2xh c3M9Im4iIGhyZWY9Ii4vYXNlbWJsb3dhJUM0JTg3Ij5hc2VtYmxvd2HEhyZu YnNwOzwvYT48YSB0aXRsZT0iYXNlbml6YWNqYSBpbiBFbmdsaXNoIiBjbGFz cz0ibiIgaHJlZj0iLi9hc2VuaXphY2phIj5hc2VuaXphY2phJm5ic3A7PC9h PjwvbmF2PjwvZGl2PjwvZGl2PjwvZGl2PjxkaXYgaWQ9ImRvbmF0ZSI+PGEg aHJlZj0iL2RvbmF0ZSI+PGltZyBzcmM9Imh0dHA6Ly9nbG9zYmUuY29tL3Jl c291cmNlcy9yZXNvdXJjZXNfaW1nL2J0bl9kb25hdGVfTEcuZ2lmIiBib3Jk ZXI9IjAiIGFsdD0iRG9uYXRlIEdsb3NiZSIgbGFuZz0iZW4iLz48L2E+PC9k aXY+PC9kaXY+PGRpdiBsYW5nPSJwbCIgY2xhc3M9InJpZ2h0X2NvbnRlbnQg IHdvcmREZXRhaWxzIj48YXJ0aWNsZSBjbGFzcz0iY29udGVudF9ib3hfcm91 bmRlZCI+PHA+V2UgYXJlIHNvcnJ5LCBidXQgd2UgaGF2ZSBubyB0cmFuc2xh dGlvbnMgZm9yIHdvcmQgYXNkZmZmIGluIFBvbGlzaCBFbmdsaXNoIGRpY3Rp b25hcnkuIFBsZWFzZSwgY29uc2lkZXIgYWRkaW5nIG5ldyB0cmFuc2xhdGlv biB0byBHbG9zYmUuPC9wPjxwPjxhIHBocmFzZT0iYXNkZmZmIiBkZXN0PSJl bmciIGZyb209InBvbCIgY2xhc3M9ImJ1dHRvbiBhZGQtdHJhbnNsYXRpb24t YnV0dG9uIiBocmVmPSIvYWRkLXRyYW5zbGF0aW9uP2xhbmcxPXBsJmFtcDts YW5nMj1lbiZhbXA7cGhyYXNlPWFzZGZmZiI+YWRkIHRyYW5zbGF0aW9uPC9h PjwvcD48ZGl2IGlkPSJhZGQtdHJhbnNsYXRpb24tY29udGFpbmVyIj48L2Rp dj48ZGl2IHN0eWxlPSJkaXNwbGF5OiBub25lIiBpZD0iZ3QtY29udGFpbmVy Ij5BdXRvbWF0aWMgdHJhbnNsYXRpb24gKEdvb2dsZSBUcmFuc2xhdGUpOgoJ CTxpbWcgaGVpZ2h0PSIxOCIgYWx0PSJHb29nbGUgVHJhbnNsYXRlIFRNIiBj bGFzcz0iZ3QtbG9nbyIgc3JjPSJodHRwOi8vZ2xvc2JlLmNvbS9yZXNvdXJj ZXMvcmVzb3VyY2VzX2ltZy9Hb29nbGVfVHJhbnNsYXRlX2xvZ28ucG5nIi8+ PGRpdiBsYW5nPSJwbCIgY2xhc3M9Imdvb2ctdHJhbnMtc2VjdGlvbiI+PGRp diBpZD0iZ3QtY29udHJvbCIgY2xhc3M9Imdvb2ctdHJhbnMtY29udHJvbCI+ PC9kaXY+PHNwYW4gY2xhc3M9Imd0LXRleHQiPmFzZGZmZjwvc3Bhbj48L2Rp dj48L2Rpdj48c2NyaXB0PgoJdHJ5ewoJCWZ1bmN0aW9uIGdvb2dsZVNlY3Rp b25hbEVsZW1lbnRJbml0KCkgewoJCSAgbmV3IGdvb2dsZS50cmFuc2xhdGUu U2VjdGlvbmFsRWxlbWVudCh7CgkJICAgIHNlY3Rpb25hbE5vZGVDbGFzc05h bWU6ICdnb29nLXRyYW5zLXNlY3Rpb24nLAoJCSAgICBjb250cm9sTm9kZUNs YXNzTmFtZTogJ2dvb2ctdHJhbnMtY29udHJvbCcsCgkJICAgIGJhY2tncm91 bmQ6ICd0cmFuc3BhcmVudCcKCQkgIH0sICdnb29nbGVfc2VjdGlvbmFsX2Vs ZW1lbnQnKTsKCQkgIAoJCSAgc2V0VGltZW91dChmdW5jdGlvbigpIHsJCgkJ CSAgdHJ5IHsKCQkJCQl2YXIgYSA9IGpRdWVyeSgnI2d0LWNvbnRyb2wgYScp WzBdOwoJCQkJCW15RmlyZUV2ZW50KGEsICJjbGljayIpOwoJCQkJCWpRdWVy eSgnI2d0LWNvbnRyb2wgYScpLnRleHQoJycpOwoJCQkgIH1jYXRjaChlKXt9 CgkJCX0gLCAxNTAwKTsKCQkgIHZhciByZWZyZXNoSW50ZXJ2YWxDb3VudGVy ID0gMDsKCQkgIHZhciByZWZyZXNoSW50ZXJ2YWxJZCA9IHNldEludGVydmFs KGZ1bmN0aW9uKCkgewoJCQkgIHRyeXsKCQkJCSAgdmFyIHRyYW5zbGF0ZWQ9 alF1ZXJ5KCcjZ3QtY29udGFpbmVyIHNwYW4uZ3QtdGV4dCcpLnRleHQoKTsK CQkJCSAgCgkJCQkgIHJlZnJlc2hJbnRlcnZhbENvdW50ZXIrKzsKCQkJCSAg aWYodHJhbnNsYXRlZC50b0xvd2VyQ2FzZSgpICE9ICJhc2RmZmYiLnRvTG93 ZXJDYXNlKCkpIHsKCQkJCQkJalF1ZXJ5KCcjZ3QtY29udGFpbmVyJykuc2xp ZGVEb3duKCJzbG93Iik7CgkJCQkJCWNsZWFySW50ZXJ2YWwocmVmcmVzaElu dGVydmFsSWQpOwoJIAkJCSAgfSBlbHNlIGlmIChyZWZyZXNoSW50ZXJ2YWxD b3VudGVyID4gMjApIHsKCSAJCQkJIAljbGVhckludGVydmFsKHJlZnJlc2hJ bnRlcnZhbElkKTsKCSAJCQkgIH0KCQkJICB9Y2F0Y2goZSl7fQoJCQl9ICwg MjUwMCk7ICAKCQl9Cgl9CWNhdGNoKGUpIHt9Cgk8L3NjcmlwdD48c2NyaXB0 PgoJdHJ5IHsKCQlmdW5jdGlvbiBteUZpcmVFdmVudChvYmosZXZ0KXsKCQkK CQkgICAgdmFyIGZpcmVPblRoaXMgPSBvYmo7CgkJICAgIGlmKCBkb2N1bWVu dC5jcmVhdGVFdmVudCApIHsKCQkgICAgICB2YXIgZXZPYmogPSBkb2N1bWVu dC5jcmVhdGVFdmVudCgnTW91c2VFdmVudHMnKTsKCQkgICAgICBldk9iai5p bml0RXZlbnQoIGV2dCwgdHJ1ZSwgZmFsc2UgKTsKCQkgICAgICBmaXJlT25U aGlzLmRpc3BhdGNoRXZlbnQoIGV2T2JqICk7CgkJCgkJICAgIH0gZWxzZSBp ZiggZG9jdW1lbnQuY3JlYXRlRXZlbnRPYmplY3QgKSB7CgkJICAgICAgdmFy IGV2T2JqID0gZG9jdW1lbnQuY3JlYXRlRXZlbnRPYmplY3QoKTsKCQkgICAg ICBmaXJlT25UaGlzLmZpcmVFdmVudCggJ29uJyArIGV2dCwgZXZPYmogKTsK CQkgICAgfQoJCX0JCgkJCgkJKGZ1bmN0aW9uKCkgCgkJICB7CgkJCXZhciBz ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImd0LWNvbnRyb2wiKTsKCQkg ICAgdmFyIG15c2NyaXB0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc2Ny aXB0Jyk7CgkJICAgIG15c2NyaXB0LnR5cGUgPSAndGV4dC9qYXZhc2NyaXB0 JzsKCQkgICAgbXlzY3JpcHQuc3JjID0gJ2h0dHA6Ly90cmFuc2xhdGUuZ29v Z2xlLmNvbS90cmFuc2xhdGVfYS9lbGVtZW50LmpzP2NiPWdvb2dsZVNlY3Rp b25hbEVsZW1lbnRJbml0JnVnPXNlY3Rpb24maGw9ZW4nOwoJCSAgICBteXNj cmlwdC5zZXRBdHRyaWJ1dGUoJ2FzeW5jJywgJ3RydWUnKTsKCQkgICAgcy5h cHBlbmRDaGlsZChteXNjcmlwdCk7CgkJIH0pKCk7Cgl9IGNhdGNoKGUpIHt9 Cgk8L3NjcmlwdD48L2FydGljbGU+PC9kaXY+PGRpdiBzdHlsZT0icG9zaXRp b246IGFic29sdXRlOyBsZWZ0OiA5NjBweDsgd2lkdGg6IDEyMHB4OyBtYXJn aW4tdG9wOiAxMHB4OyIgaWQ9ImFkdl9yaWdodF9wYW5lbCI+PHNjcmlwdCB0 eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgoJCSAgICAgICAgZ29vZ2xlX2FkX2Ns aWVudCA9ICJjYS1wdWItMzMxNDY2MjI2MTM5NDgxNiI7CgkJICAgICAgICAv KiBnbG9zYmUtMy13aWV6YS1wcmF3YS1hICovCgkJICAgICAgICBnb29nbGVf YWRfc2xvdCA9ICI4ODc3MTc5NTE5IjsKCQkgICAgICAgIGdvb2dsZV9hZF93 aWR0aCA9IDE2MDsKCQkgICAgICAgIGdvb2dsZV9hZF9oZWlnaHQgPSA2MDA7 CgkJICAgICAgPC9zY3JpcHQ+PHNjcmlwdCBzcmM9Imh0dHA6Ly9wYWdlYWQy Lmdvb2dsZXN5bmRpY2F0aW9uLmNvbS9wYWdlYWQvc2hvd19hZHMuanMiIHR5 cGU9InRleHQvamF2YXNjcmlwdCI+PC9zY3JpcHQ+PGRpdiBzdHlsZT0iZGlz cGxheTogbm9uZTsgbWFyZ2luLXRvcDogNTBweDsiIGlkPSJ0b3dlcjJhZHMi PjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KCQkgICAgICAgICAg Z29vZ2xlX2FkX2NsaWVudCA9ICJjYS1wdWItMzMxNDY2MjI2MTM5NDgxNiI7 CgkJICAgICAgICAgIC8qIGdsb3NiZS0zLXdpZXphLXByYXdhLWIgKi8KCQkg ICAgICAgICAgZ29vZ2xlX2FkX3Nsb3QgPSAiNTAzMzgwNzQ3NSI7CgkJICAg ICAgICAgIGdvb2dsZV9hZF93aWR0aCA9IDE2MDsKCQkgICAgICAgICAgZ29v Z2xlX2FkX2hlaWdodCA9IDYwMDsKCQkgICAgICAgIDwvc2NyaXB0PjxzY3Jp cHQgc3JjPSJodHRwOi8vcGFnZWFkMi5nb29nbGVzeW5kaWNhdGlvbi5jb20v cGFnZWFkL3Nob3dfYWRzLmpzIiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPjwv c2NyaXB0PjwvZGl2PjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4K CQkgICAgICAgICQoZnVuY3Rpb24oKSB7CgkJICAgICAgICAgIHZhciBkb2Mg PSAkKGRvY3VtZW50KTsKCQkgICAgICAgICAgaWYgKGRvYy5oZWlnaHQoKSA+ IDEwMDApIHsKCQkgICAgICAgICAgICAkKCIjdG93ZXIyYWRzIikuc2hvdygp OwoJCSAgICAgICAgICB9CgkJICAgICAgfSk7CgkJICAgICAgPC9zY3JpcHQ+ PC9kaXY+PC9kaXY+PC9kaXY+PGRpdiBzdHlsZT0iY2xlYXI6IGJvdGg7Ij48 L2Rpdj48L2Rpdj48ZGl2IGlkPSJmb290ZXIiPjxmb290ZXI+PGRpdiBjbGFz cz0iY29udGVudF93cmFwcGVyIj48bmF2Pjx0YWJsZT48dGJvZHk+PHRyPjx0 ZCB3aWR0aD0iMTk1cHgiIHZhbGlnbj0idG9wIj48c3BhbiBjbGFzcz0iZm9v dGVybGlzdCI+PGEgaHJlZj0iLyI+SG9tZTwvYT48YnIvPjxhIGhyZWY9Ii9h bGwtZGljdGlvbmFyaWVzIj5BbGwgZGljdGlvbmFyaWVzOgoJCQkJCQkJCQkJ CUVuZ2xpc2ggPC9hPjxici8+PGEgaHJlZj0iL2FsbC1sYW5ndWFnZXMiPkFs bCBsYW5ndWFnZXM8L2E+PGJyLz48YSBocmVmPSIvdG1lbS8iPlRyYW5zbGF0 aW9uIG1lbW9yeTwvYT48YnIvPjwvc3Bhbj48L3RkPjx0ZCB3aWR0aD0iMTQw cHgiIHZhbGlnbj0idG9wIj48c3BhbiBjbGFzcz0iZm9vdGVybGlzdCI+PGEg cmVsPSJub2ZvbGxvdyIgaHJlZj0iL3JlY2VudCI+UmVjZW50IGNoYW5nZXM8 L2E+PGJyLz48YSByZWw9Im5vZm9sbG93IiBocmVmPSIvYWRkLXRyYW5zbGF0 aW9uIj5hZGQgdHJhbnNsYXRpb248L2E+PGJyLz48YSByZWw9Im5vZm9sbG93 IiBocmVmPSIvdXBsb2FkLXRtIj5VcGxvYWQgdHJhbnNsYXRpb24gbWVtb3J5 PC9hPjxici8+PGEgcmVsPSJub2ZvbGxvdyIgaHJlZj0iL3VwbG9hZC1kaWN0 Ij5VcGxvYWQgZGljdGlvbmFyeTwvYT48YnIvPjxhIHJlbD0ibm9mb2xsb3ci IGhyZWY9Ii9hLWFwaSI+R2xvc2JlIEFQSTwvYT48YnIvPjwvc3Bhbj48L3Rk Pjx0ZCB3aWR0aD0iMTYwcHgiIHZhbGlnbj0idG9wIj48c3BhbiBjbGFzcz0i Zm9vdGVybGlzdCI+PGEgcmVsPSJub2ZvbGxvdyIgaHJlZj0iL2Fib3V0Ij5B Ym91dCB1czwvYT48YnIvPjxhIHJlbD0ibm9mb2xsb3ciIGhyZWY9Ii9wYXJ0 bmVycyI+UGFydG5lcnM8L2E+PGJyLz48YSByZWw9Im5vZm9sbG93IiBocmVm PSIvYmxvZy8iPkJsb2c8L2E+PGJyLz48YSByZWw9Im5vZm9sbG93IiBocmVm PSIvY29udGFjdCI+Q29udGFjdDwvYT48YnIvPjwvc3Bhbj48L3RkPjwvdHI+ PC90Ym9keT48L3RhYmxlPjwvbmF2PjxkaXYgY2xhc3M9InBvd2VyZWQtYnki PlBvd2VyZWQgYnkgPGEgaHJlZj0iaHR0cDovL2Nsb3VkLWluc2lkZS5jb20i PkNsb3VkIEluc2lkZTwvYT48L2Rpdj48ZGl2IGNsYXNzPSJjbGVhciI+Jm5i c3A7PC9kaXY+PC9kaXY+PC9mb290ZXI+PC9kaXY+PC9kaXY+PHNjcmlwdCBs YW5ndWFnZT0iamF2YXNjcmlwdCI+CiAgICAgIHdpbmRvdy5kZWZhdWx0U2Vh cmNoTXNnID0gIkVudGVyIHdvcmQgb3IgcGhyYXNlOiI7CiAgICAgIHdpbmRv dy5zaXRlVXJsID0gIi8iOwogICAgICB3aW5kb3cuc2l0ZUhvc3QgPSAiZ2xv c2JlLmNvbSI7CiAgICAgIHdpbmRvdy5sb2NhbGVDb2RlMiA9ICJlbiI7CiAg ICAgIHdpbmRvdy5sb2NhbGVDb2RlMyA9ICJlbmciOwogICAgICB3aW5kb3cu bG9nZ2VkPWZhbHNlOwogICAgPC9zY3JpcHQ+PGRpdiBpZD0ibG9naW5Db250 YWluZXIiPjxzY3JpcHQ+CgkJCWZ1bmN0aW9uIGxvZ2luU3VjY2VzcyhyZXN1 bHQpIHsKCQkJCXZhciBsb2dpbkV2dCA9IGpRdWVyeS5FdmVudCgnbG9nZ2Vk SW5FdmVudCcsIHt1c2VyOiAgcmVzdWx0LnJlc3VsdC51c2VyIH0pOwoJCQkJ RkJlYXZlci5wdWJsaXNoKGxvZ2luRXZ0KTsKCQkJCXZhciBodG1sPSBGQmVh dmVyLnRtcGwoJ3dlbGNvbWVUZXh0VG1wbCcsIHtuYW1lOiByZXN1bHQucmVz dWx0LnVzZXIubmFtZSwgdXJsOiBzaXRlVXJsKydwcm9maWxlLycrcmVzdWx0 LnJlc3VsdC51c2VyLmlkfSk7CgkJCQkkKCIjbG9naW5MaW5rc0NvbnRhaW5l ciIpLmh0bWwoaHRtbCk7CQkJCQkJCQkJCQoJCQkJJC51bmJsb2NrVUkoKTsK CQkJCXdpbmRvdy5sb2dnZWQ9dHJ1ZTsKCQkJCQoJCQl9CQkKCQkJZnVuY3Rp b24gbG9naW5DYW5jZWwoKSB7CgkJCQkkLnVuYmxvY2tVSSgpOwoJCQl9CgkJ CWZ1bmN0aW9uIGxvZ2luRXJyb3IocmVzdWx0KSB7CgkJCQkkKCc8ZGl2PkVy cm9yIGluIGxvZ2luLCBwb3NzaWJseSB5b3UgaGF2ZSBubyBhY2NvdW50IHll dD8gU2VsZWN0ICJyZWdpc3RlciIgdGFiIHRvIGNyZWF0ZSBuZXcgYWNjb3Vu dC48L2Rpdj4nKS5kaWFsb2coeyB6SW5kZXg6IDM5OTksIGJ1dHRvbnM6IHsg Ik9rIjogZnVuY3Rpb24oKSB7ICQodGhpcykuZGlhbG9nKCJjbG9zZSIpOyB9 IH19KTsJCQkJCgkJCX0KCQkJZnVuY3Rpb24gcmVnaXN0ZXJFcnJvcihyZXN1 bHQpIHsKCQkJCSQoJzxkaXY+RXJyb3IgaW4gcmVnaXN0cmF0aW9uLiBQbGVh c2UgdHJ5IGFnYWluIG9yIGNvbnRhY3QgdXMuIFRoYW5rcy48L2Rpdj4nKS5k aWFsb2coeyB6SW5kZXg6IDM5OTksIGJ1dHRvbnM6IHsgIk9rIjogZnVuY3Rp b24oKSB7ICQodGhpcykuZGlhbG9nKCJjbG9zZSIpOyB9IH19KTsKCQkJfQoJ CQlmdW5jdGlvbiB1cGRhdGVQd2RFcnJvcihyZXN1bHQpIHsKCQkJCSQoJzxk aXY+RXJyb3IgaW4gc2VuZGluZyBwYXNzd29yZCBhZ2Fpbi4gUGxlYXNlIHRy eSBhZ2FpbiBvciBjb250YWN0IHVzLiBUaGFua3MuPC9kaXY+JykuZGlhbG9n KHsgekluZGV4OiAzOTk5LCBidXR0b25zOiB7ICJPayI6IGZ1bmN0aW9uKCkg eyAkKHRoaXMpLmRpYWxvZygiY2xvc2UiKTsgfSB9fSk7CgkJCX0KCQkJCgkJ PC9zY3JpcHQ+PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgogICAg ICAgZnVuY3Rpb24gZW1wdHlGdW4oYXJnKSB7CiAgICAgICAgICAgCiAgICAg ICB9CiAgICA8L3NjcmlwdD48c2NyaXB0PgoJCQkJJChmdW5jdGlvbigpIHsK CQkJCQkkKCIjbG9naW4tdGFicy1sb2dpbi10b2dnbGUiKS5jbGljaygKCQkJ CQkJZnVuY3Rpb24oKSB7CgkJCQkJCQkkKCIjbG9naW4tdGFicy1zaWduIiku aGlkZSgpOwoJCQkJCQkJJCgiI2xvZ2luLXRhYnMtZm9yZ290IikuaGlkZSgp OwoJCQkJCQkJJCgiI2xvZ2luLXRhYnMtbG9naW4iKS5zaG93KCk7CgkJCQkJ CQkkKCIjbG9naW4tdGFicy1sb2dpbi10b2dnbGUiKS5hZGRDbGFzcygnYycp OwoJCQkJCQkJJCgiI2xvZ2luLXRhYnMtc2lnbi10b2dnbGUiKS5yZW1vdmVD bGFzcygnYycpOwoJCQkJCQkJJCgiI2xvZ2luLXRhYnMtZm9yZ290LXRvZ2ds ZSIpLnJlbW92ZUNsYXNzKCdjJyk7CgkJCQkJCQkKCQkJCQkJfQoJCQkJCSk7 CgkJCQkJJCgiI2xvZ2luLXRhYnMtc2lnbi10b2dnbGUiKS5jbGljaygKCQkJ CQkJCWZ1bmN0aW9uKCkgewoJCQkJCQkJCSQoIiNsb2dpbi10YWJzLXNpZ24i KS5zaG93KCk7CgkJCQkJCQkJJCgiI2xvZ2luLXRhYnMtZm9yZ290IikuaGlk ZSgpOwoJCQkJCQkJCSQoIiNsb2dpbi10YWJzLWxvZ2luIikuaGlkZSgpOwoJ CQkJCQkJCSQoIiNsb2dpbi10YWJzLWxvZ2luLXRvZ2dsZSIpLnJlbW92ZUNs YXNzKCdjJyk7CgkJCQkJCQkJJCgiI2xvZ2luLXRhYnMtc2lnbi10b2dnbGUi KS5hZGRDbGFzcygnYycpOwoJCQkJCQkJCSQoIiNsb2dpbi10YWJzLWZvcmdv dC10b2dnbGUiKS5yZW1vdmVDbGFzcygnYycpOwoJCQkJCQkJfQoJCQkJCSk7 CgkJCQkJJCgiI2xvZ2luLXRhYnMtZm9yZ290LXRvZ2dsZSIpLmNsaWNrKAoJ CQkJCQkJZnVuY3Rpb24oKSB7CgkJCQkJCQkJJCgiI2xvZ2luLXRhYnMtc2ln biIpLmhpZGUoKTsKCQkJCQkJCQkkKCIjbG9naW4tdGFicy1mb3Jnb3QiKS5z aG93KCk7CgkJCQkJCQkJJCgiI2xvZ2luLXRhYnMtbG9naW4iKS5oaWRlKCk7 CgkJCQkJCQkJJCgiI2xvZ2luLXRhYnMtbG9naW4tdG9nZ2xlIikucmVtb3Zl Q2xhc3MoJ2MnKTsKCQkJCQkJCQkkKCIjbG9naW4tdGFicy1zaWduLXRvZ2ds ZSIpLnJlbW92ZUNsYXNzKCdjJyk7CgkJCQkJCQkJJCgiI2xvZ2luLXRhYnMt Zm9yZ290LXRvZ2dsZSIpLmFkZENsYXNzKCdjJyk7CgkJCQkJCQl9CgkJCQkJ KTsKCQkJCQoJCQkJfSk7CgkJCTwvc2NyaXB0PjxkaXYgaWQ9ImxvZ2luV2lk Z2V0Ij48ZGl2IGlkPSJsb2dpblRhYnMiPjxhIG9uY2xpY2s9ImxvZ2luQ2Fu Y2VsKCkiIGhyZWY9ImphdmFzY3JpcHQ6OyIgY2xhc3M9ImNsb3NlIj54PC9h Pjx1bD48bGk+PGEgY2xhc3M9ImMiIGlkPSJsb2dpbi10YWJzLWxvZ2luLXRv Z2dsZSIgaHJlZj0iamF2YXNjcmlwdDo7Ij5Mb2cgaW48L2E+PC9saT48bGk+ PGEgaWQ9ImxvZ2luLXRhYnMtc2lnbi10b2dnbGUiIGhyZWY9ImphdmFzY3Jp cHQ6OyI+UmVnaXN0ZXI8L2E+PC9saT48bGk+PGEgaWQ9ImxvZ2luLXRhYnMt Zm9yZ290LXRvZ2dsZSIgaHJlZj0iamF2YXNjcmlwdDo7Ij5Gb3Jnb3QgcGFz c3dvcmQ8L2E+PC9saT48L3VsPjwvZGl2PjxkaXYgaWQ9ImxvZ2luQm9keSI+ PGRpdiBpZD0ibG9naW4tdGFicy1sb2dpbiI+PGRpdj48c2VjdGlvbiBpZD0i bG9naW5Gb3JtXzBfc2VjdGlvbiI+PGRpdiBjbGFzcz0ibG9naW5Gb3JtQ29u dGFpbmVyIiBpZD0ibG9naW5Gb3JtXzBfY29udGFpbmVyIj48aWZyYW1lIG5h bWU9ImZvcm1Mb2dpbkZyYW1lMCIgc3R5bGU9IndpZHRoOiAwcHg7IGhlaWdo dDogMHB4OyB2aXNpYmlsaXR5OiBoaWRkZW47IHBvc2l0aW9uOiBhYnNvbHV0 ZTsgbGVmdDogLTEwMDAwOyI+PC9pZnJhbWU+PGZvcm0gdGFyZ2V0PSJmb3Jt TG9naW5GcmFtZTAiIGFjdGlvbj0iL2F1dGgvc2VjdXJpdHlfY2hlY2siIGlk PSJsb2dpbkZvcm1fMCIgbmFtZT0ibG9naW5Gb3JtXzAiIG1ldGhvZD0icG9z dCI+PHNlY3Rpb24+PGxhYmVsIGZvcj0ibG9naW5Gb3JtXzBfZW1haWwiPmVt YWlsPC9sYWJlbD48ZGl2IGNsYXNzPSJsb2dpbkZvcm1fZW1haWwiPjxpbnB1 dCBjbGFzcz0icmVxdWlyZWQgZW1haWwiIG5hbWU9ImpfdXNlcm5hbWUiIHR5 cGU9ImVtYWlsIiBpZD0ibG9naW5Gb3JtXzBfZW1haWwiLz48L2Rpdj48L3Nl Y3Rpb24+PHNlY3Rpb24+PGxhYmVsIGZvcj0ibG9naW5Gb3JtXzBfcGFzc3dv cmQiPnBhc3N3b3JkPC9sYWJlbD48ZGl2IGNsYXNzPSJsb2dpbkZvcm1fcGFz c3dvcmQiPjxpbnB1dCB0eXBlPSJwYXNzd29yZCIgbmFtZT0ial9wYXNzd29y ZCIgaWQ9ImxvZ2luRm9ybV8wX3Bhc3N3b3JkIiBjbGFzcz0icmVxdWlyZWQi Lz48L2Rpdj48L3NlY3Rpb24+PHNlY3Rpb24+PGlucHV0IHZhbHVlPSJ0cnVl IiBjbGFzcz0ic2lnbkluUmVtZW1iZXJNZSIgbmFtZT0icmVtZW1iZXJNZSIg dHlwZT0iaGlkZGVuIiBpZD0ibG9naW5Gb3JtXzBfcmVtZW1iZXJNZSIvPjwv c2VjdGlvbj48c2VjdGlvbj48aW5wdXQgY2xhc3M9ImJ1dHRvbiBwcmltYXJ5 IGxvZ2luRm9ybV9sb2dpbiIgb25jbGljaz0iRkJlYXZlci5mb3JtTG9naW4o J2xvZ2luU3VjY2VzcycsICdsb2dpbkVycm9yJykiIHZhbHVlPSJsb2cgaW4i IHR5cGU9InN1Ym1pdCIvPjwvc2VjdGlvbj48L2Zvcm0+PC9kaXY+PC9zZWN0 aW9uPjxzZWN0aW9uIGNsYXNzPSJmb3JtLXNlY3Rpb24gc29jaWFsTG9naW5M aW5rc0NvbnRhaW5lciI+PHAgY2xhc3M9InNvY2lhbExvZ2luTGlua3NMYWJl bCI+SWYgeW91IGhhdmUgRmFjZWJvb2sgb3IgR21haWwgY2xpY2s6PC9wPjxh IG9uY2xpY2s9IkZCZWF2ZXIuZXh0ZXJuYWxMb2dpbih0aGlzLCAnL2F1dGgv ZXh0ZXJuYWwvZmFjZWJvb2snLCAnU2lnbiBpbiB3aXRoIEZhY2Vib29rJywg J2xvZ2luU3VjY2VzcycsICdsb2dpbkVycm9yJykiIGNsYXNzPSJzaWduSW5G YWNlYm9vayIgaHJlZj0iamF2YXNjcmlwdDo7Ij48aW1nIHNyYz0iaHR0cDov L2dsb3NiZS5jb20vcmVzb3VyY2VzL3Jlc291cmNlc19pbWcvbG9naW4vZmFj ZWJvb2stbG9naW4tYnV0dG9uLnBuZyIgYWx0PSJTaWduIGluIHdpdGggRmFj ZWJvb2siLz48L2E+PGEgb25jbGljaz0iRkJlYXZlci5leHRlcm5hbExvZ2lu KHRoaXMsICcvYXV0aC9leHRlcm5hbC9nb29nbGUnLCAnU2lnbiBpbiB3aXRo IEdvb2dsZScsICdsb2dpblN1Y2Nlc3MnLCAnbG9naW5FcnJvcicgKSIgY2xh c3M9InNpZ25Jbkdvb2dsZSIgaHJlZj0iamF2YXNjcmlwdDo7Ij48aW1nIHNy Yz0iaHR0cDovL2dsb3NiZS5jb20vcmVzb3VyY2VzL3Jlc291cmNlc19pbWcv bG9naW4vZ29vZ2xlLWxvZ2luLWJ1dHRvbi5wbmciIGFsdD0iU2lnbiBpbiB3 aXRoIEdvb2dsZSIvPjwvYT48L3NlY3Rpb24+PC9kaXY+PC9kaXY+PGRpdiBz dHlsZT0iZGlzcGxheTogbm9uZSIgaWQ9ImxvZ2luLXRhYnMtc2lnbiI+PGRp dj48c2VjdGlvbiBpZD0icmVnaXN0cmF0aW9uRm9ybV8wX3NlY3Rpb24iPjxk aXYgY2xhc3M9InJlZ2lzdHJhdGlvbkZvcm1fY29udGFpbmVyIiBpZD0icmVn aXN0cmF0aW9uRm9ybV8wX2NvbnRhaW5lciI+PGZvcm0gaWQ9InJlZ2lzdHJh dGlvbkZvcm1fMF9mb3JtIiBuYW1lPSJyZWdpc3RlckZvcm1fMCIgb25FcnJv cj0icmVnaXN0ZXJFcnJvciIgb25TdWNjZXNzPSJsb2dpblN1Y2Nlc3MiIG1l dGhvZD0icG9zdCIgZW5jdHlwZT0ibXVsdGlwYXJ0L2Zvcm0tZGF0YSIgY2xh c3M9ImFjdGlvbkZvcm0iPjxzZWN0aW9uPjxsYWJlbCBmb3I9InJlZ2lzdHJh dGlvbkZvcm1fMF9lbWFpbCI+ZW1haWw8L2xhYmVsPjxkaXYgY2xhc3M9InJl Z2lzdHJhdGlvbkZvcm1fZW1haWwiPjxpbnB1dCBjbGFzcz0icmVxdWlyZWQg ZW1haWwiIG5hbWU9ImFjdGlvbi5wcm9wc1tlbWFpbF0iIHR5cGU9InRleHQi IGlkPSJyZWdpc3RyYXRpb25Gb3JtXzBfZW1haWwiLz48L2Rpdj48L3NlY3Rp b24+PHNlY3Rpb24+PGxhYmVsIGZvcj0icmVnaXN0cmF0aW9uRm9ybV8wX3Bh c3N3b3JkMSI+cGFzc3dvcmQ8L2xhYmVsPjxkaXYgY2xhc3M9InJlZ2lzdHJh dGlvbkZvcm1fcGFzc3dvcmQxIj48aW5wdXQgY2xhc3M9InJlcXVpcmVkIiBu YW1lPSJhY3Rpb24ucHJvcHNbcGFzc3dvcmQxXSIgaWQ9InJlZ2lzdHJhdGlv bkZvcm1fMF9wYXNzd29yZDEiIHR5cGU9InBhc3N3b3JkIi8+PC9kaXY+PC9z ZWN0aW9uPjxzZWN0aW9uPjxsYWJlbCBmb3I9InJlZ2lzdHJhdGlvbkZvcm1f MF9wYXNzd29yZDIiPnJldHlwZSBwYXNzd29yZDwvbGFiZWw+PGRpdiBjbGFz cz0icmVnaXN0cmF0aW9uRm9ybV9wYXNzd29yZDIiPjxpbnB1dCBjbGFzcz0i cmVxdWlyZWQiIG5hbWU9ImFjdGlvbi5wcm9wc1twYXNzd29yZDJdIiBpZD0i cmVnaXN0cmF0aW9uRm9ybV8wX3Bhc3N3b3JkMiIgdHlwZT0icGFzc3dvcmQi Lz48L2Rpdj48aW5wdXQgY2xhc3M9ImJ1dHRvbiBwcmltYXJ5IiB2YWx1ZT0i Y3JlYXRlIGFjY291bnQiIHR5cGU9InN1Ym1pdCIvPjxpbnB1dCB2YWx1ZT0i Y29yZS5DcmVhdGVBY2NvdW50QWN0aW9uIiBuYW1lPSJhY3Rpb24ubmFtZSIg dHlwZT0iaGlkZGVuIi8+PC9zZWN0aW9uPjwvZm9ybT48L2Rpdj48L3NlY3Rp b24+PC9kaXY+PC9kaXY+PGRpdiBzdHlsZT0iZGlzcGxheTogbm9uZSIgaWQ9 ImxvZ2luLXRhYnMtZm9yZ290Ij48ZGl2PjxzZWN0aW9uIGlkPSJmb3Jnb3RQ YXNzd29yZF8wX3NlY3Rpb24iPjxkaXYgY2xhc3M9ImZvcmdvdFBhc3N3b3Jk X2NvbnRhaW5lciIgaWQ9ImZvcmdvdFBhc3N3b3JkRm9ybV8xX2NvbnRhaW5l ciI+PGZvcm0gaWQ9ImZvcmdvdFBhc3N3b3JkRm9ybV8wIiBuYW1lPSJmb3Jn b3RQYXNzRm9ybV8wIiBvbkVycm9yPSJ1cGRhdGVQd2RFcnJvciIgb25yZXNw b25zZT0iZm9yZ290UGFzc0NhbGxiYWNrIiBtZXRob2Q9InBvc3QiIGVuY3R5 cGU9Im11bHRpcGFydC9mb3JtLWRhdGEiIGNsYXNzPSJhY3Rpb25Gb3JtIj48 c2VjdGlvbj48bGFiZWwgZm9yPSJmb3Jnb3RQYXNzd29yZEZvcm1fMF9lbWFp bCI+ZW1haWw8L2xhYmVsPjxkaXYgY2xhc3M9ImZvcmdvdFBhc3N3b3JkRm9y bV9lbWFpbCI+PGlucHV0IGNsYXNzPSJyZXF1aXJlZCBlbWFpbCIgaWQ9ImZv cmdvdFBhc3N3b3JkRm9ybV8wX2VtYWlsIiBuYW1lPSJhY3Rpb24ucHJvcHNb ZW1haWxdIiB0eXBlPSJlbWFpbCIvPjwvZGl2Pjwvc2VjdGlvbj48c2VjdGlv bj48aW5wdXQgY2xhc3M9ImJ1dHRvbiBwcmltYXJ5IGZvcmdvdFBhc3N3b3Jk Rm9ybV9zdWJtaXQiIHZhbHVlPSJyZXNldCBwYXNzd29yZCIgdHlwZT0ic3Vi bWl0Ii8+PGlucHV0IHZhbHVlPSJjb3JlLkZvcmdvdFBhc3N3b3JkQWN0aW9u IiBuYW1lPSJhY3Rpb24ubmFtZSIgdHlwZT0iaGlkZGVuIi8+PC9zZWN0aW9u PjwvZm9ybT48L2Rpdj48L3NlY3Rpb24+PC9kaXY+PC9kaXY+PC9kaXY+PC9k aXY+PC9kaXY+PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgoJICB2 YXIgX2dhcSA9IF9nYXEgfHwgW107CgkgIF9nYXEucHVzaChbJ19zZXRBY2Nv dW50JywgJ1VBLTEzMTEwNzMzLTExJ10pOwoJICBfZ2FxLnB1c2goWydfdHJh Y2tQYWdldmlldyddKTsKCSAgCgkgIF9nYXEucHVzaChbJ19zZXREb21haW5O YW1lJywgJ2dsb3NiZS5jb20nXSk7CgkgIAoJCgkgIChmdW5jdGlvbigpIHsK CSAgICB2YXIgZ2EgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzY3JpcHQn KTsgZ2EudHlwZSA9ICd0ZXh0L2phdmFzY3JpcHQnOyBnYS5hc3luYyA9IHRy dWU7CgkgICAgZ2Euc3JjID0gKCdodHRwczonID09IGRvY3VtZW50LmxvY2F0 aW9uLnByb3RvY29sID8gJ2h0dHBzOi8vc3NsJyA6ICdodHRwOi8vd3d3Jykg KyAnLmdvb2dsZS1hbmFseXRpY3MuY29tL2dhLmpzJzsKCSAgICB2YXIgcyA9 IGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdzY3JpcHQnKVswXTsg cy5wYXJlbnROb2RlLmluc2VydEJlZm9yZShnYSwgcyk7CgkgIH0pKCk7Cgkv LyBDb3B5cmlnaHQgMjAxMSBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2Vy dmVkLgoKCSAgLyoqCgkgICAqIEBmaWxlb3ZlcnZpZXcgQSBzaW1wbGUgc2Ny aXB0IHRvIGF1dG9tYXRpY2FsbHkgdHJhY2sgRmFjZWJvb2sgYW5kIFR3aXR0 ZXIKCSAgICogYnV0dG9ucyB1c2luZyBHb29nbGUgQW5hbHl0aWNzIHNvY2lh bCB0cmFja2luZyBmZWF0dXJlLgoJICAgKiBAYXV0aG9yIGFwaS5uaWNrbUBn b29nbGUuY29tIChOaWNrIE1paGFpbG92c2tpKQoJICAgKi8KCgoJICAvKioK CSAgICogTmFtZXNwYWNlLgoJICAgKiBAdHlwZSB7T2JqZWN0fS4KCSAgICov CgkgIHZhciBfZ2EgPSBfZ2EgfHwge307CgoKCSAgLyoqCgkgICAqIEVuc3Vy ZSBnbG9iYWwgX2dhcSBHb29nbGUgQW5sYXl0aWNzIHF1ZXVlIGhhcyBiZSBp bml0aWFsaXplZC4KCSAgICogQHR5cGUge0FycmF5fQoJICAgKi8KCSAgdmFy IF9nYXEgPSBfZ2FxIHx8IFtdOwoKCgkgIC8qKgoJICAgKiBIZWxwZXIgbWV0 aG9kIHRvIHRyYWNrIHNvY2lhbCBmZWF0dXJlcy4gVGhpcyBhc3N1bWVzIGFs bCB0aGUgc29jaWFsCgkgICAqIHNjcmlwdHMgLyBhcGlzIGFyZSBsb2FkZWQg c3luY2hyb25vdXNseS4gSWYgdGhleSBhcmUgbG9hZGVkIGFzeW5jLAoJICAg KiB5b3UgbWlnaHQgbmVlZCB0byBhZGQgdGhlIG5leHR3b3JrIHNwZWNpZmlj IHRyYWNraW5nIGNhbGwgdG8gdGhlCgkgICAqIGEgY2FsbGJhY2sgb25jZSB0 aGUgbmV0d29yaydzIHNjcmlwdCBoYXMgbG9hZGVkLgoJICAgKiBAcGFyYW0g e3N0cmluZ30gb3B0X3BhZ2VVcmwgQW4gb3B0aW9uYWwgVVJMIHRvIGFzc29j aWF0ZSB0aGUgc29jaWFsCgkgICAqICAgICB0cmFja2luZyB3aXRoIGEgcGFy dGljdWxhciBwYWdlLgoJICAgKiBAcGFyYW0ge3N0cmluZ30gb3B0X3RyYWNr ZXJOYW1lIEFuIG9wdGlvbmFsIG5hbWUgZm9yIHRoZSB0cmFja2VyIG9iamVj dC4KCSAgICovCgkgIF9nYS50cmFja1NvY2lhbCA9IGZ1bmN0aW9uKG9wdF9w YWdlVXJsLCBvcHRfdHJhY2tlck5hbWUpIHsKCSAgICBfZ2EudHJhY2tGYWNl Ym9vayhvcHRfcGFnZVVybCwgb3B0X3RyYWNrZXJOYW1lKTsKCSAgICBfZ2Eu dHJhY2tUd2l0dGVyKG9wdF9wYWdlVXJsLCBvcHRfdHJhY2tlck5hbWUpOwoJ ICB9OwoKCgkgIC8qKgoJICAgKiBUcmFja3MgRmFjZWJvb2sgbGlrZXMsIHVu bGlrZXMgYW5kIHNlbmRzIGJ5IHN1c2NyaWJpbmcgdG8gdGhlIEZhY2Vib29r CgkgICAqIEpTQVBJIGV2ZW50IG1vZGVsLiBOb3RlOiBUaGlzIHdpbGwgbm90 IHRyYWNrIGZhY2Vib29rIGJ1dHRvbnMgdXNpbmcgdGhlCgkgICAqIGlGcmFt ZSBtZXRob2QuCgkgICAqIEBwYXJhbSB7c3RyaW5nfSBvcHRfcGFnZVVybCBB biBvcHRpb25hbCBVUkwgdG8gYXNzb2NpYXRlIHRoZSBzb2NpYWwKCSAgICog ICAgIHRyYWNraW5nIHdpdGggYSBwYXJ0aWN1bGFyIHBhZ2UuCgkgICAqIEBw YXJhbSB7c3RyaW5nfSBvcHRfdHJhY2tlck5hbWUgQW4gb3B0aW9uYWwgbmFt ZSBmb3IgdGhlIHRyYWNrZXIgb2JqZWN0LgoJICAgKi8KCSAgX2dhLnRyYWNr RmFjZWJvb2sgPSBmdW5jdGlvbihvcHRfcGFnZVVybCwgb3B0X3RyYWNrZXJO YW1lKSB7CgkgICAgdmFyIHRyYWNrZXJOYW1lID0gX2dhLmJ1aWxkVHJhY2tl ck5hbWVfKG9wdF90cmFja2VyTmFtZSk7CgkgICAgdHJ5IHsKCSAgICAgIGlm IChGQiAmJiBGQi5FdmVudCAmJiBGQi5FdmVudC5zdWJzY3JpYmUpIHsKCSAg ICAgICAgRkIuRXZlbnQuc3Vic2NyaWJlKCdlZGdlLmNyZWF0ZScsIGZ1bmN0 aW9uKHRhcmdldFVybCkgewoJICAgICAgICAgIF9nYXEucHVzaChbdHJhY2tl ck5hbWUgKyAnX3RyYWNrU29jaWFsJywgJ2ZhY2Vib29rJywgJ2xpa2UnLAoJ ICAgICAgICAgICAgICB0YXJnZXRVcmwsIG9wdF9wYWdlVXJsXSk7CgkgICAg ICAgIH0pOwoJICAgICAgICBGQi5FdmVudC5zdWJzY3JpYmUoJ2VkZ2UucmVt b3ZlJywgZnVuY3Rpb24odGFyZ2V0VXJsKSB7CgkgICAgICAgICAgX2dhcS5w dXNoKFt0cmFja2VyTmFtZSArICdfdHJhY2tTb2NpYWwnLCAnZmFjZWJvb2sn LCAndW5saWtlJywKCSAgICAgICAgICAgICAgdGFyZ2V0VXJsLCBvcHRfcGFn ZVVybF0pOwoJICAgICAgICB9KTsKCSAgICAgICAgRkIuRXZlbnQuc3Vic2Ny aWJlKCdtZXNzYWdlLnNlbmQnLCBmdW5jdGlvbih0YXJnZXRVcmwpIHsKCSAg ICAgICAgICBfZ2FxLnB1c2goW3RyYWNrZXJOYW1lICsgJ190cmFja1NvY2lh bCcsICdmYWNlYm9vaycsICdzZW5kJywKCSAgICAgICAgICAgICAgdGFyZ2V0 VXJsLCBvcHRfcGFnZVVybF0pOwoJICAgICAgICB9KTsKCSAgICAgIH0KCSAg ICB9IGNhdGNoIChlKSB7fQoJICB9OwoKCgkgIC8qKgoJICAgKiBSZXR1cm5z IHRoZSBub3JtYWxpemVkIHRyYWNrZXIgbmFtZSBjb25maWd1cmF0aW9uIHBh cmFtZXRlci4KCSAgICogQHBhcmFtIHtzdHJpbmd9IG9wdF90cmFja2VyTmFt ZSBBbiBvcHRpb25hbCBuYW1lIGZvciB0aGUgdHJhY2tlciBvYmplY3QuCgkg ICAqIEByZXR1cm4ge3N0cmluZ30gSWYgb3B0X3RyYWNrZXJOYW1lIGlzIHNl dCwgdGhlbiB0aGUgdmFsdWUgYXBwZW5kZWQgd2l0aAoJICAgKiAgICAgYSAu IE90aGVyd2lzZSBhbiBlbXB0eSBzdHJpbmcuCgkgICAqIEBwcml2YXRlCgkg ICAqLwoJICBfZ2EuYnVpbGRUcmFja2VyTmFtZV8gPSBmdW5jdGlvbihvcHRf dHJhY2tlck5hbWUpIHsKCSAgICByZXR1cm4gb3B0X3RyYWNrZXJOYW1lID8g b3B0X3RyYWNrZXJOYW1lICsgJy4nIDogJyc7CgkgIH07CgoKCSAgLyoqCgkg ICAqIFRyYWNrcyBldmVyeXRpbWUgYSB1c2VyIGNsaWNrcyBvbiBhIHR3ZWV0 IGJ1dHRvbiBmcm9tIFR3aXR0ZXIuCgkgICAqIFRoaXMgc3Vic2NyaWJlcyB0 byB0aGUgVHdpdHRlciBKUyBBUEkgZXZlbnQgbWVjaGFuaXNtIHRvIGxpc3Rl biBmb3IKCSAgICogY2xpY2tzIGNvbWluZyBmcm9tIHRoaXMgcGFnZS4gRGV0 YWlscyBoZXJlOgoJICAgKiBodHRwOi8vZGV2LnR3aXR0ZXIuY29tL3BhZ2Vz L2ludGVudHMtZXZlbnRzI2NsaWNrCgkgICAqIFRoaXMgbWV0aG9kIHNob3Vs ZCBiZSBjYWxsZWQgb25jZSB0aGUgdHdpdHRlciBBUEkgaGFzIGxvYWRlZC4K CSAgICogQHBhcmFtIHtzdHJpbmd9IG9wdF9wYWdlVXJsIEFuIG9wdGlvbmFs IFVSTCB0byBhc3NvY2lhdGUgdGhlIHNvY2lhbAoJICAgKiAgICAgdHJhY2tp bmcgd2l0aCBhIHBhcnRpY3VsYXIgcGFnZS4KCSAgICogQHBhcmFtIHtzdHJp bmd9IG9wdF90cmFja2VyTmFtZSBBbiBvcHRpb25hbCBuYW1lIGZvciB0aGUg dHJhY2tlciBvYmplY3QuCgkgICAqLwoJICBfZ2EudHJhY2tUd2l0dGVyID0g ZnVuY3Rpb24ob3B0X3BhZ2VVcmwsIG9wdF90cmFja2VyTmFtZSkgewoJICAg IHZhciB0cmFja2VyTmFtZSA9IF9nYS5idWlsZFRyYWNrZXJOYW1lXyhvcHRf dHJhY2tlck5hbWUpOwoJICAgIHRyeSB7CgkgICAgICBpZiAodHd0dHIgJiYg dHd0dHIuZXZlbnRzICYmIHR3dHRyLmV2ZW50cy5iaW5kKSB7CgkgICAgICAg IHR3dHRyLmV2ZW50cy5iaW5kKCd0d2VldCcsIGZ1bmN0aW9uKGV2ZW50KSB7 CgkgICAgICAgICAgaWYgKGV2ZW50KSB7CgkgICAgICAgICAgICB2YXIgdGFy Z2V0VXJsOyAvLyBEZWZhdWx0IHZhbHVlIGlzIHVuZGVmaW5lZC4KCSAgICAg ICAgICAgIGlmIChldmVudC50YXJnZXQgJiYgZXZlbnQudGFyZ2V0Lm5vZGVO YW1lID09ICdJRlJBTUUnKSB7CgkgICAgICAgICAgICAgIHRhcmdldFVybCA9 IF9nYS5leHRyYWN0UGFyYW1Gcm9tVXJpXyhldmVudC50YXJnZXQuc3JjLCAn dXJsJyk7CgkgICAgICAgICAgICB9CgkgICAgICAgICAgICBfZ2FxLnB1c2go W3RyYWNrZXJOYW1lICsgJ190cmFja1NvY2lhbCcsICd0d2l0dGVyJywgJ3R3 ZWV0JywKCSAgICAgICAgICAgICAgdGFyZ2V0VXJsLCBvcHRfcGFnZVVybF0p OwoJICAgICAgICAgIH0KCSAgICAgICAgfSk7CgkgICAgICB9CgkgICAgfSBj YXRjaCAoZSkge30KCSAgfTsKCgoJICAvKioKCSAgICogRXh0cmFjdHMgYSBx dWVyeSBwYXJhbWV0ZXIgdmFsdWUgZnJvbSBhIFVSSS4KCSAgICogQHBhcmFt IHtzdHJpbmd9IHVyaSBUaGUgVVJJIGZyb20gd2hpY2ggdG8gZXh0cmFjdCB0 aGUgcGFyYW1ldGVyLgoJICAgKiBAcGFyYW0ge3N0cmluZ30gcGFyYW1OYW1l IFRoZSBuYW1lIG9mIHRoZSBxdWVyeSBwYXJhbWF0ZXIgdG8gZXh0cmFjdC4K CSAgICogQHJldHVybiB7c3RyaW5nfSBUaGUgdW4tZW5jb2RlZCB2YWx1ZSBv ZiB0aGUgcXVlcnkgcGFyYW1hdGVyLiB1bmRlcmZpbmVkCgkgICAqICAgICBp ZiB0aGVyZSBpcyBubyBVUkkgcGFyYW1ldGVyLgoJICAgKiBAcHJpdmF0ZQoJ ICAgKi8KCSAgX2dhLmV4dHJhY3RQYXJhbUZyb21VcmlfID0gZnVuY3Rpb24o dXJpLCBwYXJhbU5hbWUpIHsKCSAgICBpZiAoIXVyaSkgewoJICAgICAgcmV0 dXJuOwoJICAgIH0KCSAgICB2YXIgdXJpID0gdXJpLnNwbGl0KCcjJylbMF07 ICAvLyBSZW1vdmUgYW5jaG9yLgoJICAgIHZhciBwYXJ0cyA9IHVyaS5zcGxp dCgnPycpOyAgLy8gQ2hlY2sgZm9yIHF1ZXJ5IHBhcmFtcy4KCSAgICBpZiAo cGFydHMubGVuZ3RoID09IDEpIHsKCSAgICAgIHJldHVybjsKCSAgICB9Cgkg ICAgdmFyIHF1ZXJ5ID0gZGVjb2RlVVJJKHBhcnRzWzFdKTsKCgkgICAgLy8g RmluZCB1cmwgcGFyYW0uCgkgICAgcGFyYW1OYW1lICs9ICc9JzsKCSAgICB2 YXIgcGFyYW1zID0gcXVlcnkuc3BsaXQoJyYnKTsKCSAgICBmb3IgKHZhciBp ID0gMCwgcGFyYW07IHBhcmFtID0gcGFyYW1zW2ldOyArK2kpIHsKCSAgICAg IGlmIChwYXJhbS5pbmRleE9mKHBhcmFtTmFtZSkgPT09IDApIHsKCSAgICAg ICAgcmV0dXJuIHVuZXNjYXBlKHBhcmFtLnNwbGl0KCc9JylbMV0pOwoJICAg ICAgfQoJICAgIH0KCSAgICByZXR1cm47CgkgIH07CgkgIAoJPC9zY3JpcHQ+ PC9ib2R5PjwvaHRtbD4= http_version: '1.1' recorded_at: Tue, 24 Jul 2012 12:07:05 GMT - request: method: get uri: http://glosbe.com/en/pl/asdfff body: encoding: US-ASCII string: '' headers: accept: - ! '*/*' user-agent: - Ruby response: status: code: 404 message: Not Found headers: server: - nginx/1.0.15 date: - Tue, 24 Jul 2012 12:07:15 GMT content-type: - text/html;charset=UTF-8 connection: - keep-alive content-language: - en-US content-length: - '32523' vary: - Accept-Encoding body: encoding: ASCII-8BIT string: !binary |- PCFET0NUWVBFIEhUTUwgU1lTVEVNICJhYm91dDpsZWdhY3ktY29tcGF0Ij4K PGh0bWwgeG1sbnM6b2c9Imh0dHA6Ly9vcGVuZ3JhcGhwcm90b2NvbC5vcmcv c2NoZW1hLyIgeG1sbnM6ZmI9Imh0dHA6Ly93d3cuZmFjZWJvb2suY29tLzIw MDgvZmJtbCIgbGFuZz0iZW4iPjxoZWFkPjxtZXRhIGNvbnRlbnQ9InRleHQv aHRtbDsgY2hhcnNldD1VVEYtOCIgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBl Ii8+PG1ldGEgY29udGVudD0iZW4sZW4scGwiIGh0dHAtZXF1aXY9ImNvbnRl bnQtbGFuZ3VhZ2UiLz48bWV0YSBjb250ZW50PSImY29weTsgMjAxMSBDbG91 ZCBJbnNpZGUiIG5hbWU9ImNvcHlyaWdodCIvPjxtZXRhIGNvbnRlbnQ9IlNL WVBFX1RPT0xCQVJfUEFSU0VSX0NPTVBBVElCTEUiIG5hbWU9IlNLWVBFX1RP T0xCQVIiLz48bWV0YSBjb250ZW50PSJlbiIgaWQ9IlgtQWNjLUxhbmciIG5h bWU9IlgtQWNjLUxhbmciLz48bWV0YSB2YWx1ZT0ibm90cmFuc2xhdGUiIG5h bWU9Imdvb2dsZSIvPjxtZXRhIGNvbnRlbnQ9ImVuIiBpZD0iWC1mcm9tTGFu ZyIgbmFtZT0iWC1mcm9tTGFuZyIvPjxtZXRhIGNvbnRlbnQ9InBsIiBpZD0i WC1kZXN0TGFuZyIgbmFtZT0iWC1kZXN0TGFuZyIvPjxsaW5rIGhyZWY9Imh0 dHA6Ly9nbG9zYmUuY29tL3Jlc291cmNlcy9yZXNvdXJjZXNfaW1nL2Zhdmlj b24ucG5nIiByZWw9InNob3J0Y3V0IGljb24iLz48dGl0bGU+QXNkZmZmIGlu IFBvbGlzaCwgRGljdGlvbmFyeSBFbmdsaXNoIFBvbGlzaDwvdGl0bGU+PG1l dGEgY29udGVudD0iYXNkZmZmLEVuZ2xpc2gsUG9saXNoLGRpY3Rpb25hcnks dHJhbnNsYXRpb24iIG5hbWU9ImtleXdvcmRzIi8+PG1ldGEgY29udGVudD0i YXNkZmZmIHRyYW5zbGF0aW9uIGluIEVuZ2xpc2gtUG9saXNoIGRpY3Rpb25h cnkiIG5hbWU9ImRlc2NyaXB0aW9uIi8+PGxpbmsgaHJlZj0iaHR0cDovL2Vu Lmdsb3NiZS5jb20vZW4vcGwvYXNkZmZmIiBocmVmbGFuZz0iZW4tdXMiIHJl bD0iYWx0ZXJuYXRlIi8+PGxpbmsgaHJlZj0iaHR0cDovL3BsLmdsb3NiZS5j b20vZW4vcGwvYXNkZmZmIiBocmVmbGFuZz0icGwiIHJlbD0iYWx0ZXJuYXRl Ii8+PG1ldGEgY29udGVudD0id2Vic2l0ZSIgcHJvcGVydHk9Im9nOnR5cGUi Lz48bWV0YSBjb250ZW50PSJodHRwOi8vZW4uZ2xvc2JlLmNvbS9lbi9wbC8i IHByb3BlcnR5PSJvZzp1cmwiLz4KCQk8IS0tIGh0dHA6Ly9lbi5nbG9zYmUu Y29tL2VuL3BsLy0tPgoJCQoJPG1ldGEgY29udGVudD0iaHR0cDovL2dsb3Ni ZS5jb20vZmJfbG9nby5wbmciIHByb3BlcnR5PSJvZzppbWFnZSIvPjxtZXRh IGNvbnRlbnQ9Ikdsb3NiZSIgcHJvcGVydHk9Im9nOnNpdGVfbmFtZSIvPjxt ZXRhIGNvbnRlbnQ9IjY2ODk5MTc2NywxNjUyMjM1MTgyIiBwcm9wZXJ0eT0i ZmI6YWRtaW5zIi8+PG1ldGEgY29udGVudD0iMjcwNjczMzQ5NjE0MjM3IiBw cm9wZXJ0eT0iZmI6YXBwX2lkIi8+PG1ldGEgY29udGVudD0iZW5fVVMiIHBy b3BlcnR5PSJvZzpsb2NhbGUiLz48bWV0YSBjb250ZW50PSJwbF9QTCIgcHJv cGVydHk9Im9nOmxvY2FsZTphbHRlcm5hdGUiLz48bWV0YSBjb250ZW50PSJl bl9VUyIgcHJvcGVydHk9Im9nOmxvY2FsZTphbHRlcm5hdGUiLz48bGluayBo cmVmPSIvT3BlblNlYXJjaC5hc3B4P2Zyb209ZW4mYW1wO2Rlc3Q9cGwiIHRp dGxlPSJEaWN0aW9uYXJ5IChFbmdsaXNoIOKGkiBQb2xpc2gpIiB0eXBlPSJh cHBsaWNhdGlvbi9vcGVuc2VhcmNoZGVzY3JpcHRpb24reG1sIiByZWw9InNl YXJjaCIvPjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4Kd2luZG93 Lmdvb2dsZV9hbmFseXRpY3NfdWFjY3QgPSAiVUEtMTMxMTA3MzMtMTEiOwo8 L3NjcmlwdD48c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+d2luZG93 LmZiU3ZjVXJsID0gJy9mYlN2Yy9hY3Rpb24nOzwvc2NyaXB0PgoKPCEtLVtp ZiBsdCBJRSA3XT4gPGxpbmsgaHJlZj0iaHR0cDovL2dsb3NiZS5jb20vcmVz b3VyY2VzL3N0eWxlcy9zdHlsZV9pZTYuY3NzIiB0eXBlPSJ0ZXh0L2NzcyIg cmVsPSJzdHlsZXNoZWV0Ii8+IDwhW2VuZGlmXS0tPgoKCjwhLS0gW05PIGNv bXByZXNzIHJlc291cmNlcyBzdGFydF0gLS0+CjxsaW5rIGNoYXJzZXQ9IlVU Ri04IiB0eXBlPSJ0ZXh0L2NzcyIgaHJlZj0iaHR0cDovL2dsb3NiZS5jb20v cmVzb3VyY2VzL3N0eWxlcy9qcXVlcnktdWkuY3NzIiByZWw9InN0eWxlc2hl ZXQiLz48bGluayBjaGFyc2V0PSJVVEYtOCIgdHlwZT0idGV4dC9jc3MiIGhy ZWY9Ii9yZXNvdXJjZXMvc3R5bGVzL3N0eWxlLmNzcyIgcmVsPSJzdHlsZXNo ZWV0Ii8+PHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvc2NyaXB0cy9qcXVlcnkt MS43Lm1pbi5qcyIgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij48L3NjcmlwdD48 c2NyaXB0IHNyYz0iL3Jlc291cmNlcy9zY3JpcHRzL2pxdWVyeS11aS5taW4u anMiIHR5cGU9InRleHQvamF2YXNjcmlwdCI+PC9zY3JpcHQ+PHNjcmlwdCBz cmM9Ii9yZXNvdXJjZXMvc2NyaXB0cy9qcXVlcnkuY29va2llLmpzIiB0eXBl PSJ0ZXh0L2phdmFzY3JpcHQiPjwvc2NyaXB0PjxzY3JpcHQgc3JjPSIvcmVz b3VyY2VzL3NjcmlwdHMvanF1ZXJ5LnZhbGlkYXRlLm1pbi5qcyIgdHlwZT0i dGV4dC9qYXZhc2NyaXB0Ij48L3NjcmlwdD48c2NyaXB0IHNyYz0iL3Jlc291 cmNlcy9zY3JpcHRzL2pxdWVyeS5ibG9ja1VJLmpzIiB0eXBlPSJ0ZXh0L2ph dmFzY3JpcHQiPjwvc2NyaXB0PjxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Nj cmlwdHMvanF1ZXJ5LnRpbWVhZ28uanMiIHR5cGU9InRleHQvamF2YXNjcmlw dCI+PC9zY3JpcHQ+PHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvc2NyaXB0cy9q cXVlcnkuYmEtYmJxLm1pbi5qcyIgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij48 L3NjcmlwdD48c2NyaXB0IHNyYz0iL3Jlc291cmNlcy9zY3JpcHRzL2pxdWVy eS5qc29uLm1pbi5qcyIgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij48L3Njcmlw dD48c2NyaXB0IHNyYz0iL3Jlc291cmNlcy9zY3JpcHRzL2pzdG9yYWdlLm1p bi5qcyIgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij48L3NjcmlwdD48c2NyaXB0 IHNyYz0iL3NjcmlwdHMvZmJDb3JlLmpzIiB0eXBlPSJ0ZXh0L2phdmFzY3Jp cHQiPjwvc2NyaXB0PjxzY3JpcHQgc3JjPSIvc2NyaXB0cy9mYkFydGljbGUu anMiIHR5cGU9InRleHQvamF2YXNjcmlwdCI+PC9zY3JpcHQ+PHNjcmlwdCBz cmM9Ii9yZXNvdXJjZXMvc2NyaXB0cy9hdWRpby9zd2ZvYmplY3QuanMiIHR5 cGU9InRleHQvamF2YXNjcmlwdCI+PC9zY3JpcHQ+PHNjcmlwdCBzcmM9Ii9y ZXNvdXJjZXMvc2NyaXB0cy9hdWRpby9yZWNvcmRlci5qcyIgdHlwZT0idGV4 dC9qYXZhc2NyaXB0Ij48L3NjcmlwdD48c2NyaXB0IHNyYz0iL3Jlc291cmNl cy9zY3JpcHRzL2F1ZGlvL2d1aS5qcyIgdHlwZT0idGV4dC9qYXZhc2NyaXB0 Ij48L3NjcmlwdD48c2NyaXB0IHNyYz0iL3Jlc291cmNlcy9zY3JpcHRzL2Rp Y3QuanMiIHR5cGU9InRleHQvamF2YXNjcmlwdCI+PC9zY3JpcHQ+PHNjcmlw dCBzcmM9Ii9yZXNvdXJjZXMvc2NyaXB0cy9mbGF0TWVudS5qcyIgdHlwZT0i dGV4dC9qYXZhc2NyaXB0Ij48L3NjcmlwdD4KCjwhLS0gW2NvbXByZXNzIHJl c291cmNlcyBlbmRdIC0tPgoKCgoKCjwhLS1baWYgbHQgSUUgOV0+CjxzY3Jp cHQgc3JjPSJodHRwOi8vaHRtbDVzaGltLmdvb2dsZWNvZGUuY29tL3N2bi90 cnVuay9odG1sNS5qcyI+PC9zY3JpcHQ+CjwhW2VuZGlmXS0tPgoKPC9oZWFk Pjxib2R5PjxkaXYgaWQ9ImNvbnRhaW5lciI+PGRpdiBpZD0iaGVhZGVyIj48 aGVhZGVyPjxkaXYgY2xhc3M9ImNvbnRlbnRfd3JhcHBlciI+PGRpdiBsYW5n PSJlbiIgaWQ9InN1YkhlYWRlclRleHQiPjxkaXYgaWQ9ImxvZ2luTGlua3ND b250YWluZXIiPjxzY3JpcHQgaWQ9IndlbGNvbWVUZXh0VG1wbCIgdHlwZT0i dGV4dC9odG1sIj4KCTxzcGFuPldlbGNvbWUgPGVtPjxhIGhyZWY9IjwlPSB1 cmwgJT4iPjwlPSBuYW1lICU+PC9hPjwvZW0+ITwvc3Bhbj4gfCA8YSBocmVm PSIvYXV0aC9sb2dvdXQiPmxvZ291dDwvYT4KICA8L3NjcmlwdD48c2NyaXB0 PgogIGZ1bmN0aW9uIHNob3dMb2dpbldpbmRvdygpIHsKCSAgICAkLmJsb2Nr VUkoeyBtZXNzYWdlOiAkKCcjbG9naW5Db250YWluZXInKSwgY3NzOiB7Ym9y ZGVyOiAnbm9uZScsIGN1cnNvcjogJ251bGwnLCBiYWNrZ3JvdW5kQ29sb3I6 ICd0cmFuc3BhcmVudCcgfSwgb3ZlcmxheUNTUzogeyBjdXJzb3I6IG51bGx9 IH0pOyAkKCcuYmxvY2tPdmVybGF5JykuY2xpY2soJC51bmJsb2NrVUkpOwog IH0gCiAgPC9zY3JpcHQ+PHNwYW4gaWQ9IndlbGNvbWVVc2VyU3BhbiI+PC9z cGFuPjxhIG9uY2xpY2s9InNob3dMb2dpbldpbmRvdygpIiBocmVmPSJqYXZh c2NyaXB0OjsiPkxvZyBpbjwvYT48L2Rpdj48ZGl2IGlkPSJsb2NhbGVDaGFu Z2VDb250YWluZXIiPjxkaXYgY2xhc3M9ImZsYXRNZW51QnV0dG9uIj48c2Vs ZWN0IGZtX2NvbHVtbnM9IjYiIGZtX21vcmU9ImZhbHNlIiBpZD0ibG9jYWxl Q2hhbmdlIiBjbGFzcz0iZmxhdE1lbnVCb3giPjxvcHRpb24gdmFsdWU9ImFm Ij5hZnJpa2FhbnM8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJzcSI+YWxiYW5p YW48L29wdGlvbj48b3B0aW9uIHZhbHVlPSJhciI+YXJhYmljPC9vcHRpb24+ PG9wdGlvbiB2YWx1ZT0iaHkiPmFybWVuaWFuPC9vcHRpb24+PG9wdGlvbiB2 YWx1ZT0iYXoiPmF6ZXJiYWlqYW5pPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0i ZXUiPmJhc3F1ZTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9ImJlIj5iZWxhcnVz aWFuPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iYm4iPmJlbmdhbGk8L29wdGlv bj48b3B0aW9uIHZhbHVlPSJiZyI+YnVsZ2FyaWFuPC9vcHRpb24+PG9wdGlv biB2YWx1ZT0iY2EiPmNhdGFsYW48L29wdGlvbj48b3B0aW9uIHZhbHVlPSJ6 aCI+Y2hpbmVzZTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9ImhyIj5jcm9hdGlh bjwvb3B0aW9uPjxvcHRpb24gdmFsdWU9ImNzIj5jemVjaDwvb3B0aW9uPjxv cHRpb24gdmFsdWU9ImRhIj5kYW5pc2g8L29wdGlvbj48b3B0aW9uIHZhbHVl PSJubCI+ZHV0Y2g8L29wdGlvbj48b3B0aW9uIHNlbGVjdGVkPSJ0cnVlIiB2 YWx1ZT0iZW4iPmVuZ2xpc2g8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJldCI+ ZXN0b25pYW48L29wdGlvbj48b3B0aW9uIHZhbHVlPSJmaSI+ZmlubmlzaDwv b3B0aW9uPjxvcHRpb24gdmFsdWU9ImZyIj5mcmVuY2g8L29wdGlvbj48b3B0 aW9uIHZhbHVlPSJnbCI+Z2FsaWNpYW48L29wdGlvbj48b3B0aW9uIHZhbHVl PSJrYSI+Z2VvcmdpYW48L29wdGlvbj48b3B0aW9uIHZhbHVlPSJkZSI+Z2Vy bWFuPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iZ3UiPmd1amFyYXRpPC9vcHRp b24+PG9wdGlvbiB2YWx1ZT0iaHQiPmhhaXRpYW48L29wdGlvbj48b3B0aW9u IHZhbHVlPSJoZSI+aGVicmV3PC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iaGki PmhpbmRpPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iaHUiPmh1bmdhcmlhbjwv b3B0aW9uPjxvcHRpb24gdmFsdWU9ImlzIj5pY2VsYW5kaWM8L29wdGlvbj48 b3B0aW9uIHZhbHVlPSJpZCI+aW5kb25lc2lhbjwvb3B0aW9uPjxvcHRpb24g dmFsdWU9ImdhIj5pcmlzaDwvb3B0aW9uPjxvcHRpb24gdmFsdWU9Iml0Ij5p dGFsaWFuPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iamEiPmphcGFuZXNlPC9v cHRpb24+PG9wdGlvbiB2YWx1ZT0ia24iPmthbm5hZGE8L29wdGlvbj48b3B0 aW9uIHZhbHVlPSJrbyI+a29yZWFuPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0i bHYiPmxhdHZpYW48L29wdGlvbj48b3B0aW9uIHZhbHVlPSJsdCI+bGl0aHVh bmlhbjwvb3B0aW9uPjxvcHRpb24gdmFsdWU9Im1rIj5tYWNlZG9uaWFuPC9v cHRpb24+PG9wdGlvbiB2YWx1ZT0ibXMiPm1hbGF5PC9vcHRpb24+PG9wdGlv biB2YWx1ZT0ibXQiPm1hbHRlc2U8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJl bCI+bW9kZXJuIGdyZWVrPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0ibmIiPm5v cndlZ2lhbiBib2ttw6VsPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iZmEiPnBl cnNpYW48L29wdGlvbj48b3B0aW9uIHZhbHVlPSJwbCI+cG9saXNoPC9vcHRp b24+PG9wdGlvbiB2YWx1ZT0icHQiPnBvcnR1Z3Vlc2U8L29wdGlvbj48b3B0 aW9uIHZhbHVlPSJybyI+cm9tYW5pYW48L29wdGlvbj48b3B0aW9uIHZhbHVl PSJydSI+cnVzc2lhbjwvb3B0aW9uPjxvcHRpb24gdmFsdWU9InNyIj5zZXJi aWFuPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0ic2siPnNsb3Zhazwvb3B0aW9u PjxvcHRpb24gdmFsdWU9InNsIj5zbG92ZW5pYW48L29wdGlvbj48b3B0aW9u IHZhbHVlPSJlcyI+c3BhbmlzaDwvb3B0aW9uPjxvcHRpb24gdmFsdWU9InN3 Ij5zd2FoaWxpPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0ic3YiPnN3ZWRpc2g8 L29wdGlvbj48b3B0aW9uIHZhbHVlPSJ0bCI+dGFnYWxvZzwvb3B0aW9uPjxv cHRpb24gdmFsdWU9InRhIj50YW1pbDwvb3B0aW9uPjxvcHRpb24gdmFsdWU9 InRlIj50ZWx1Z3U8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJ0aCI+dGhhaTwv b3B0aW9uPjxvcHRpb24gdmFsdWU9InRyIj50dXJraXNoPC9vcHRpb24+PG9w dGlvbiB2YWx1ZT0idWsiPnVrcmFpbmlhbjwvb3B0aW9uPjxvcHRpb24gdmFs dWU9InVyIj51cmR1PC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0idmkiPnZpZXRu YW1lc2U8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJjeSI+d2Vsc2g8L29wdGlv bj48b3B0aW9uIHZhbHVlPSJ5aSI+eWlkZGlzaDwvb3B0aW9uPjwvc2VsZWN0 PjxzY3JpcHQ+CgkgICAgICAgICAgICAgICAgICAgICAgICAkKGRvY3VtZW50 KS5yZWFkeShmdW5jdGlvbigpIHsKCQkgICAgICAgICAgICAgICAgICAgICAg ICAkKCIjbG9jYWxlQ2hhbmdlIikuY2hhbmdlKGZ1bmN0aW9uKCkgewoJCSAg ICAgICAgICAgICAgICAgICAgICAgIAlmdW5jdGlvbiBzZXRDb29raWUoY19u YW1lLHZhbHVlLGV4ZGF5cyxkb21haW4pIAl7CgkJICAgICAgICAgICAgICAg ICAgICAgICAgCQl2YXIgZXhkYXRlPW5ldyBEYXRlKCk7CgkJCSAgICAgICAg ICAgICAgICAgICAgICAgIAlleGRhdGUuc2V0RGF0ZShleGRhdGUuZ2V0RGF0 ZSgpICsgZXhkYXlzKTsKCQkJICAgICAgICAgICAgICAgICAgICAgICAgCXZh ciBjX3ZhbHVlPWVzY2FwZSh2YWx1ZSkgKyAoKGV4ZGF5cz09bnVsbCkgPyAi IiA6ICI7IGV4cGlyZXM9IitleGRhdGUudG9VVENTdHJpbmcoKSkgKyAoKGRv bWFpbj09bnVsbCkgPyAiIiA6ICI7IGRvbWFpbj0iK2RvbWFpbik7CgkJCSAg ICAgICAgICAgICAgICAgICAgICAgIAlkb2N1bWVudC5jb29raWU9Y19uYW1l ICsgIj0iICsgY192YWx1ZSArICI7IHBhdGg9LyI7CgkJICAgICAgICAgICAg ICAgICAgICAgICAgCX0KCQkgICAgICAgICAgICAgICAgICAgICAgICAJc2V0 Q29va2llKCdsb2NhbGUnLCAkKHRoaXMpLnZhbCgpLDM2NSwnLicrd2luZG93 LnNpdGVIb3N0KTsKCQkgICAgICAgICAgICAgICAgICAgICAgICAJbG9jYXRp b24ucmVsb2FkKCk7CgkJICAgICAgICAgICAgICAgICAgICAgICAgfSk7Cgkg ICAgICAgICAgICAgICAgICAgICAgICB9KTsKCSAgICAgICAgICAgICAgICAg ICAgICAgIAoJICAgICAgICAgICAgICAgICAgICAgICAgPC9zY3JpcHQ+PC9k aXY+PC9kaXY+PC9kaXY+PGRpdiBpZD0ibG9nbyI+PGEgdGl0bGU9IkRpY3Rp b25hcnkgZ2xvc2JlIiBocmVmPSIvIj48aW1nIGFsdD0iRGljdGlvbmFyeSBn bG9zYmUiIGhlaWdodD0iMTAwIiB3aWR0aD0iMjYwIiBzcmM9Imh0dHA6Ly9n bG9zYmUuY29tL3Jlc291cmNlcy9yZXNvdXJjZXNfaW1nL2xvZ29fZ2xvc2Jl LnBuZyIvPjwvYT48L2Rpdj48ZGl2IGlkPSJzb2NpYWxCdXR0b25zIj48ZGl2 IGNsYXNzPSJzb2NpYWxCdXR0b24iPjxnOnBsdXNvbmUgY2FsbGJhY2s9InBs dXNvbmVWb3RlIiBocmVmPSJodHRwOi8vZW4uZ2xvc2JlLmNvbS9lbi9wbC8i IHNpemU9InRhbGwiPjwvZzpwbHVzb25lPjxzY3JpcHQgdHlwZT0idGV4dC9q YXZhc2NyaXB0Ij4KCSAgICAgZnVuY3Rpb24gcGx1c29uZVZvdGUob2JqKSB7 CgkgICAgICAgX2dhcS5wdXNoKFsnX3RyYWNrRXZlbnQnLCdwbHVzT25lJyxv Ymouc3RhdGUsIGRvY3VtZW50LmxvY2F0aW9uLmhyZWZdKTsKCSAgICAgfQoJ ICAgIAoJICAgICAgCgkJCXZhciBzID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5 SWQoInNvY2lhbEJ1dHRvbnMiKTsJCQkJCQoJCQl2YXIgZ3BMb2FkZWQgPSBm YWxzZTsKCQkJJCggLy8iI3NvY2lhbEJ1dHRvbnMiKS5iaW5kKCdrZXlwcmVz cycsIAoJCQkJCWZ1bmN0aW9uKGUpIHsKCQkJCWlmKGdwTG9hZGVkKSByZXR1 cm47CgkJCQllbHNlIGdwTG9hZGVkID0gdHJ1ZTsKCQkJICAgIHZhciBwbyA9 IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NjcmlwdCcpOyBwby50eXBlID0g J3RleHQvamF2YXNjcmlwdCc7IHBvLmFzeW5jID0gdHJ1ZTsKCQkJICAgIHBv LnNyYyA9ICdodHRwczovL2FwaXMuZ29vZ2xlLmNvbS9qcy9wbHVzb25lLmpz JzsKCQkJICAgIHZhciBzID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05h bWUoJ3NjcmlwdCcpWzBdOyBzLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKHBv LCBzKTsJICAKCQkJfSxmYWxzZSk7CQoJCQkKCQk8L3NjcmlwdD48L2Rpdj48 ZGl2IGNsYXNzPSJzb2NpYWxCdXR0b24gZmIiPjxkaXYgaWQ9ImZiLXJvb3Qi PjwvZGl2PjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KCQkJdmFy IHMgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic29jaWFsQnV0dG9ucyIp OwoJCQl2YXIgZmJMb2FkZWQgPSBmYWxzZTsKCQkJJCgKCQkJCQkvLyIjc29j aWFsQnV0dG9ucyIpLmJpbmQoJ2tleXByZXNzJywgCgkJCQlmdW5jdGlvbihl KSB7CgkJCQlpZihmYkxvYWRlZCkgcmV0dXJuOwoJCQkJZWxzZSBmYkxvYWRl ZCA9IHRydWU7CgoJCQkJdmFyIGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50 KCdzY3JpcHQnKTsKCQkJCWUuYXN5bmMgPSB0cnVlOwoJCQkJZS5zcmMgPSBk b2N1bWVudC5sb2NhdGlvbi5wcm90b2NvbAoJCQkJCQkrICcvL2Nvbm5lY3Qu ZmFjZWJvb2submV0L2VuX1VTL2FsbC5qcyN4ZmJtbD0xJzsKCQkJCWRvY3Vt ZW50LmdldEVsZW1lbnRCeUlkKCdmYi1yb290JykuYXBwZW5kQ2hpbGQoZSk7 CgkJCQkKCQkJCQoJCQkJCgkJCX0sIGZhbHNlKTsKCQkJCgkgIAoJCQl2YXIg dG1wID0gd2luZG93LmZiQXN5bmNJbml0OwoJCQl3aW5kb3cuZmJBc3luY0lu aXQgPSBmdW5jdGlvbigpIHsKCQkJCSAgRkIuaW5pdCh7CiAgICAgICAgICAg ICBhcHBJZDogJzI3MDY3MzM0OTYxNDIzNycsIGNoYW5uZWxVcmw6ICdodHRw Oi8vZ2xvc2JlLmNvbS9mYi9jaGFubmVsLmh0bWwnLCB4ZmJtbDogdHJ1ZQog ICAgICAgICAgfSk7CgoJCQkJIF9nYS50cmFja0ZhY2Vib29rKCk7CgkJCQkg CgkJCQkgRkIuRXZlbnQuc3Vic2NyaWJlKCdlZGdlLmNyZWF0ZScsIGZ1bmN0 aW9uKGhyZWYsIHdpZGdldCkgewoJCQkgICAgIF9nYXEucHVzaChbJ190cmFj a0V2ZW50JywnZmFjZWJvb2tMaWtlJywgJ2xpa2UnLCBocmVmXSk7CgkJCSAg IH0pOwoJCSAgICAgCgkJCQkgRkIuRXZlbnQuc3Vic2NyaWJlKCdlZGdlLnJl bW92ZScsIGZ1bmN0aW9uKGhyZWYsIHdpZGdldCkgewoJCSAgICAgICBfZ2Fx LnB1c2goWydfdHJhY2tFdmVudCcsJ2ZhY2Vib29rTGlrZScsICd1bmxpa2Un LCBocmVmXSk7CgkJICAgICB9KTsKCgkJCSAgIGlmICh0bXApIHsKCQkJICAg ICB0bXAoKTsKCQkJICAgfQoJCQl9CgkJPC9zY3JpcHQ+PGZiOmxpa2UgZm9u dD0iIiBhY3Rpb249Imxpa2UiIHNob3dfZmFjZXM9ImZhbHNlIiBzdHlsZT0i aGVpZ2h0OiA2NHB4OyIgd2lkdGg9IjYwIiBsYXlvdXQ9ImJveF9jb3VudCIg c2VuZD0iZmFsc2UiIGhyZWY9Imh0dHA6Ly9lbi5nbG9zYmUuY29tL2VuL3Bs LyI+PC9mYjpsaWtlPjwvZGl2PjxkaXYgY2xhc3M9InNvY2lhbEJ1dHRvbiI+ PGEgcmVsPSJub2ZvbGxvdyIgY2xhc3M9InR3aXR0ZXItc2hhcmUtYnV0dG9u IiBocmVmPSJodHRwOi8vdHdpdHRlci5jb20vc2hhcmU/dXJsPWh0dHA6Ly9l bi5nbG9zYmUuY29tL2VuL3BsLyZjb3VudD12ZXJ0aWNhbCI+VHdlZXQ8L2E+ PHNjcmlwdCBpZD0idHdpdHRlckJ1dHRvblNjcmlwdCIgdHlwZT0idGV4dC9q YXZhc2NyaXB0Ij4KCQkJdmFyIHMgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJ ZCgic29jaWFsQnV0dG9ucyIpOwoJCQl2YXIgdHdMb2FkZWQgPSBmYWxzZTsK CQkJJCgvLyIjc29jaWFsQnV0dG9ucyIpLmJpbmQoJ2tleXByZXNzJywgCgkJ CQkJZnVuY3Rpb24oZSkgewoJCQkJaWYodHdMb2FkZWQpIHJldHVybjsKCQkJ CWVsc2UgdHdMb2FkZWQgPSB0cnVlOwoJCQkJdmFyIHNUd2l0ID0gZG9jdW1l bnQuY3JlYXRlRWxlbWVudCgnU0NSSVBUJyk7CgkJCQl2YXIgY1R3aXQgPSBk b2N1bWVudC5nZXRFbGVtZW50QnlJZCgndHdpdHRlckJ1dHRvblNjcmlwdCcp OwoJCQkJc1R3aXQudHlwZSA9ICd0ZXh0L2phdmFzY3JpcHQnOwoJCQkJc1R3 aXQuYXN5bmMgPSB0cnVlOwoJCQkJc1R3aXQuc3JjID0gJ2h0dHA6Ly9wbGF0 Zm9ybS50d2l0dGVyLmNvbS93aWRnZXRzLmpzJzsKCQkJCQoJCQkJCgkJCQlj VHdpdC5wYXJlbnROb2RlLmluc2VydEJlZm9yZShzVHdpdCwgY1R3aXQpOwoJ CQl9LCBmYWxzZSk7CgkJPC9zY3JpcHQ+PC9kaXY+PGRpdiBjbGFzcz0ic29j aWFsQnV0dG9uIj48c2NyaXB0IGlkPSJsaW5rZWRJbkJ1dHRvblNjcmlwdCIg dHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KCQkJLy9hc3luYyBzY3JpcHQsIHR3 aXR0ZXIgYnV0dG9uIGZhc2hpb2xpc3RhLmNvbSBzdHlsZQoJCQoJCQl2YXIg cyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzb2NpYWxCdXR0b25zIik7 CgkJCXZhciBsaW5Mb2FkZWQgPSBmYWxzZTsKCQkJJCgvLyIjc29jaWFsQnV0 dG9ucyIpLmJpbmQoJ2tleXByZXNzJywgCgkJCQkJZnVuY3Rpb24oZSkgewoJ CQkJaWYobGluTG9hZGVkKSByZXR1cm47CgkJCQllbHNlIGxpbkxvYWRlZCA9 IHRydWU7CgkJCQl2YXIgc1R3aXQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50 KCdTQ1JJUFQnKTsKCQkJCXZhciBjVHdpdCA9IGRvY3VtZW50LmdldEVsZW1l bnRCeUlkKCdsaW5rZWRJbkJ1dHRvblNjcmlwdCcpOwoJCQkJc1R3aXQudHlw ZSA9ICd0ZXh0L2phdmFzY3JpcHQnOwoJCQkJc1R3aXQuYXN5bmMgPSB0cnVl OwoJCQkJc1R3aXQuc3JjID0gJ2h0dHA6Ly9wbGF0Zm9ybS5saW5rZWRpbi5j b20vaW4uanMnOwoJCQkJY1R3aXQucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUo c1R3aXQsIGNUd2l0KTsKCQkJfSwgZmFsc2UpOwoJCQkKCQkJCgkJCQoJCQlm dW5jdGlvbiBMaW5rZWRJblNoYXJlKCkgewoJCQkJX2dhcS5wdXNoKFsnX3Ry YWNrU29jaWFsJywgJ0xpbmtlZEluJywgJ1NoYXJlJ10pOwoJCQkJfQoJCQk8 L3NjcmlwdD48c2NyaXB0IGRhdGEtc3VjY2Vzcz0iTGlua2VkSW5TaGFyZSIg ZGF0YS1jb3VudGVyPSJ0b3AiIGRhdGEtdXJsPSJodHRwOi8vZW4uZ2xvc2Jl LmNvbS9lbi9wbC8iIHR5cGU9ImluL3NoYXJlIj48L3NjcmlwdD48L2Rpdj48 L2Rpdj48L2Rpdj48L2hlYWRlcj48L2Rpdj48ZGl2IGlkPSJib2R5Ij48ZGl2 IHN0eWxlPSJwb3NpdGlvbjogcmVsYXRpdmU7IiBjbGFzcz0iY29udGVudF93 cmFwcGVyIj48ZGl2PjxkaXYgY2xhc3M9ImJyZWFkY3J1bWIiPjxkaXYgeG1s bnM6dj0iaHR0cDovL3JkZi5kYXRhLXZvY2FidWxhcnkub3JnLyMiPjxzcGFu IHR5cGVvZj0idjpCcmVhZGNydW1iIiBjbGFzcz0iIj48YSBocmVmPSIvIiBy ZWw9InY6dXJsIiBwcm9wZXJ0eT0idjp0aXRsZSI+RGljdGlvbmFyeTwvYT4m bmJzcDsgJmd0OyAmbmJzcDs8c3BhbiByZWw9InY6Y2hpbGQiPjxzcGFuIHR5 cGVvZj0idjpCcmVhZGNydW1iIiBjbGFzcz0iIj48YSBocmVmPSIvZW4vIiBy ZWw9InY6dXJsIiBwcm9wZXJ0eT0idjp0aXRsZSI+RGljdGlvbmFyeSBFbmds aXNoPC9hPiZuYnNwOyAmZ3Q7ICZuYnNwOzxzcGFuIHJlbD0idjpjaGlsZCI+ PHNwYW4gdHlwZW9mPSJ2OkJyZWFkY3J1bWIiIGNsYXNzPSIiPjxhIGhyZWY9 Ii9lbi9wbC8iIHJlbD0idjp1cmwiIHByb3BlcnR5PSJ2OnRpdGxlIj5EaWN0 aW9uYXJ5IEVuZ2xpc2ggUG9saXNoPC9hPjwvc3Bhbj48L3NwYW4+PC9zcGFu Pjwvc3Bhbj48L3NwYW4+PC9kaXY+PC9kaXY+PGRpdiBzdHlsZT0ibWFyZ2lu LWxlZnQ6IDEwMHB4OyBtYXJnaW4tdG9wOiAxMHB4OyBtYXJnaW4tYm90dG9t OiAxMHB4OyI+PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgoJCSAg ICAgIGdvb2dsZV9hZF9jbGllbnQgPSAiY2EtcHViLTMzMTQ2NjIyNjEzOTQ4 MTYiOwoJCSAgICAgIC8qIGdsb3NiZS0zLXRvcCAqLwoJCSAgICAgIGdvb2ds ZV9hZF9zbG90ID0gIjExNjg3NDMxMDEiOwoJCSAgICAgIGdvb2dsZV9hZF93 aWR0aCA9IDcyODsKCQkgICAgICBnb29nbGVfYWRfaGVpZ2h0ID0gOTA7CgkJ ICAgIDwvc2NyaXB0PjxzY3JpcHQgc3JjPSJodHRwOi8vcGFnZWFkMi5nb29n bGVzeW5kaWNhdGlvbi5jb20vcGFnZWFkL3Nob3dfYWRzLmpzIiB0eXBlPSJ0 ZXh0L2phdmFzY3JpcHQiPjwvc2NyaXB0PjwvZGl2PjxkaXYgY2xhc3M9Imxl ZnRfc2lkZWJhciI+PGRpdiBjbGFzcz0iY29udGVudF9ib3hfcm91bmRlZCI+ PGRpdiBjbGFzcz0ic2VhcmNoQm94V2l0aExpc3QiPjxkaXYgY2xhc3M9Imtl eWJvYXJkQnV0dG9uQ29udGFpbmVyIj48YSBpbnB1dD0iIiBmcm9tPSIiIGxh bmc9ImVuIiBjbGFzcz0iY3NzYnV0dG9uIGNzc2J1dHRvbi1zbWFsbCBrZXli b2FyZCIgdGl0bGU9InNob3cgb25saW5lIGtleWJvYXJkLCBFbmdsaXNoIiBo cmVmPSJqYXZhc2NyaXB0OjsiPjxpbWcgYWx0PSJPbmxpbmUga2V5Ym9hcmQs IEVuZ2xpc2giIHNyYz0iaHR0cDovL2dsb3NiZS5jb20vcmVzb3VyY2VzL3Jl c291cmNlc19pbWcva2V5Ym9hcmQucG5nIi8+PC9hPjwvZGl2PjxkaXYgY2xh c3M9Imxhbmd1YWdlU3dhcCI+CgkJICAJCUVuZ2xpc2ggPGEgdGl0bGU9IkRp Y3Rpb25hcnkgUG9saXNoIEVuZ2xpc2giIGNsYXNzPSJjc3NidXR0b24iIGhy ZWY9Ii9wbC9lbi8iPiZsdDsmZ3Q7PC9hPiBQb2xpc2gKCQk8L2Rpdj48aHIv PjxkaXYgY2xhc3M9InNlYXJjaEJveFNtYWxsIiBkaXI9Imx0ciIgaWQ9InNl YXJjaF9iYXIiPjxpbnB1dCBjbGFzcz0ic21hbGwtd29yZGlucHV0IiBpZD0i d29yZGlucHV0IiBuYW1lPSJ3b3JkX25hbWUiIHBsYWNlaG9sZGVyPSJFbnRl ciB3b3JkIG9yIHBocmFzZToiIG1heGxlbmd0aD0iMjAwMCIgeC13ZWJraXQt Z3JhbW1hcj0iYnVpbHRpbjpzZWFyY2giIHgtd2Via2l0LXNwZWVjaD0ieC13 ZWJraXQtc3BlZWNoIiBhdXRvZm9jdXM9ImF1dG9mb2N1cyIgdHlwZT0ic2Vh cmNoIi8+PGJ1dHRvbiB0aXRsZT0ic2VhcmNoIiBjbGFzcz0iY3NzYnV0dG9u IiBpZD0ibmF2aWdhdGVUb1dvcmRCdXR0b24iPgogICAgICAgICAgICAmcmFx dW87CiAgICAgICAgPC9idXR0b24+PHNjcmlwdD4KCQkgICAgaWYgKCEoImF1 dG9mb2N1cyIgaW4gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaW5wdXQiKSkp IHsKCQkgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgid29yZGlucHV0 IikuZm9jdXMoKTsKCQkgICAgfQoJCSAgICAKCQkgICAgJCggCgkJICAgIAlm dW5jdGlvbigpIHsKCQkJCSAgICAkKCcjd29yZGlucHV0Jykua2V5cHJlc3Mo ZnVuY3Rpb24oZSl7CgkJCQkgICAgICAgIGlmKGUud2hpY2ggPT0gMTMpewoJ CQkJICAgICAgICAgICQoJyNuYXZpZ2F0ZVRvV29yZEJ1dHRvbicpLmNsaWNr KCk7CgkJCQkgICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpOwoJCQkJICAg ICAgICAgfQoJCQkJICAgIH0pCgkJCSAgICB9CgkJICAgICk7CiAgCQk8L3Nj cmlwdD48L2Rpdj48aHIvPjxkaXYgbGFuZz0iZW4iIGRpcj0ibHRyIiBpZD0i d29yZExpc3RXaWRnZXQiPjxuYXY+PGEgdGl0bGU9ImFzY29zcG9yZXMgaW4g UG9saXNoIiBjbGFzcz0ibiIgaHJlZj0iLi9hc2Nvc3BvcmVzIj5hc2Nvc3Bv cmVzJm5ic3A7PC9hPjxhIHRpdGxlPSJhc2NyaWJhYmxlIGluIFBvbGlzaCIg Y2xhc3M9Im4iIGhyZWY9Ii4vYXNjcmliYWJsZSI+YXNjcmliYWJsZSZuYnNw OzwvYT48YSB0aXRsZT0iYXNjcmliZSBpbiBQb2xpc2giIGNsYXNzPSJuIiBo cmVmPSIuL2FzY3JpYmUiPmFzY3JpYmUmbmJzcDs8L2E+PGEgdGl0bGU9ImFz Y3JpcHRpb24gaW4gUG9saXNoIiBjbGFzcz0ibiIgaHJlZj0iLi9hc2NyaXB0 aW9uIj5hc2NyaXB0aW9uJm5ic3A7PC9hPjxhIHRpdGxlPSJhc2N1cyBpbiBQ b2xpc2giIGNsYXNzPSJuIiBocmVmPSIuL2FzY3VzIj5hc2N1cyZuYnNwOzwv YT48YSB0aXRsZT0iQVNFQU4gaW4gUG9saXNoIiBjbGFzcz0ibiIgaHJlZj0i Li9BU0VBTiI+QVNFQU4mbmJzcDs8L2E+PGEgdGl0bGU9IkFTRUFOIGNvdW50 cmllcyBpbiBQb2xpc2giIGNsYXNzPSJuIiBocmVmPSIuL0FTRUFOJTIwY291 bnRyaWVzIj5BU0VBTiBjb3VudHJpZXMmbmJzcDs8L2E+PGEgdGl0bGU9ImFz ZXBzaXMgaW4gUG9saXNoIiBjbGFzcz0ibiIgaHJlZj0iLi9hc2Vwc2lzIj5h c2Vwc2lzJm5ic3A7PC9hPjxhIHRpdGxlPSJhc2VwdGljIGluIFBvbGlzaCIg Y2xhc3M9Im4iIGhyZWY9Ii4vYXNlcHRpYyI+YXNlcHRpYyZuYnNwOzwvYT48 YSB0aXRsZT0iYXNlcHRpYyBwYWNrYWdpbmcgaW4gUG9saXNoIiBjbGFzcz0i biIgaHJlZj0iLi9hc2VwdGljJTIwcGFja2FnaW5nIj5hc2VwdGljIHBhY2th Z2luZyZuYnNwOzwvYT48YSB0aXRsZT0iYXNlcHRpY2FsbHkgaW4gUG9saXNo IiBjbGFzcz0ibiIgaHJlZj0iLi9hc2VwdGljYWxseSI+YXNlcHRpY2FsbHkm bmJzcDs8L2E+PGEgdGl0bGU9ImFzZXh1YWwgaW4gUG9saXNoIiBjbGFzcz0i biIgaHJlZj0iLi9hc2V4dWFsIj5hc2V4dWFsJm5ic3A7PC9hPjxhIHRpdGxl PSJhc2V4dWFsIHJlcHJvZHVjdGlvbiBpbiBQb2xpc2giIGNsYXNzPSJuIiBo cmVmPSIuL2FzZXh1YWwlMjByZXByb2R1Y3Rpb24iPmFzZXh1YWwgcmVwcm9k dWN0aW9uJm5ic3A7PC9hPjxhIHRpdGxlPSJhc2V4dWFsIHJlcHJvZHVjdGlv biAocHJvcGFnYXRpb24pIGluIFBvbGlzaCIgY2xhc3M9Im4iIGhyZWY9Ii4v YXNleHVhbCUyMHJlcHJvZHVjdGlvbiUyMChwcm9wYWdhdGlvbikiPmFzZXh1 YWwgcmVwcm9kdWN0aW9uIChwcm9wYWdhdGlvbikmbmJzcDs8L2E+PGEgdGl0 bGU9ImFzZXh1YWxpdHkgaW4gUG9saXNoIiBjbGFzcz0ibiIgaHJlZj0iLi9h c2V4dWFsaXR5Ij5hc2V4dWFsaXR5Jm5ic3A7PC9hPjxhIHRpdGxlPSJhc2V4 dWFsbHkgaW4gUG9saXNoIiBjbGFzcz0ibiIgaHJlZj0iLi9hc2V4dWFsbHki PmFzZXh1YWxseSZuYnNwOzwvYT48L25hdj48L2Rpdj48L2Rpdj48L2Rpdj48 ZGl2IGlkPSJkb25hdGUiPjxhIGhyZWY9Ii9kb25hdGUiPjxpbWcgc3JjPSJo dHRwOi8vZ2xvc2JlLmNvbS9yZXNvdXJjZXMvcmVzb3VyY2VzX2ltZy9idG5f ZG9uYXRlX0xHLmdpZiIgYm9yZGVyPSIwIiBhbHQ9IkRvbmF0ZSBHbG9zYmUi IGxhbmc9ImVuIi8+PC9hPjwvZGl2PjwvZGl2PjxkaXYgbGFuZz0iZW4iIGNs YXNzPSJyaWdodF9jb250ZW50ICB3b3JkRGV0YWlscyI+PGFydGljbGUgY2xh c3M9ImNvbnRlbnRfYm94X3JvdW5kZWQiPjxwPldlIGFyZSBzb3JyeSwgYnV0 IHdlIGhhdmUgbm8gdHJhbnNsYXRpb25zIGZvciB3b3JkIGFzZGZmZiBpbiBF bmdsaXNoIFBvbGlzaCBkaWN0aW9uYXJ5LiBQbGVhc2UsIGNvbnNpZGVyIGFk ZGluZyBuZXcgdHJhbnNsYXRpb24gdG8gR2xvc2JlLjwvcD48cD48YSBwaHJh c2U9ImFzZGZmZiIgZGVzdD0icG9sIiBmcm9tPSJlbmciIGNsYXNzPSJidXR0 b24gYWRkLXRyYW5zbGF0aW9uLWJ1dHRvbiIgaHJlZj0iL2FkZC10cmFuc2xh dGlvbj9sYW5nMT1lbiZhbXA7bGFuZzI9cGwmYW1wO3BocmFzZT1hc2RmZmYi PmFkZCB0cmFuc2xhdGlvbjwvYT48L3A+PGRpdiBpZD0iYWRkLXRyYW5zbGF0 aW9uLWNvbnRhaW5lciI+PC9kaXY+PGRpdiBzdHlsZT0iZGlzcGxheTogbm9u ZSIgaWQ9Imd0LWNvbnRhaW5lciI+QXV0b21hdGljIHRyYW5zbGF0aW9uIChH b29nbGUgVHJhbnNsYXRlKToKCQk8aW1nIGhlaWdodD0iMTgiIGFsdD0iR29v Z2xlIFRyYW5zbGF0ZSBUTSIgY2xhc3M9Imd0LWxvZ28iIHNyYz0iaHR0cDov L2dsb3NiZS5jb20vcmVzb3VyY2VzL3Jlc291cmNlc19pbWcvR29vZ2xlX1Ry YW5zbGF0ZV9sb2dvLnBuZyIvPjxkaXYgbGFuZz0iZW4iIGNsYXNzPSJnb29n LXRyYW5zLXNlY3Rpb24iPjxkaXYgaWQ9Imd0LWNvbnRyb2wiIGNsYXNzPSJn b29nLXRyYW5zLWNvbnRyb2wiPjwvZGl2PjxzcGFuIGNsYXNzPSJndC10ZXh0 Ij5hc2RmZmY8L3NwYW4+PC9kaXY+PC9kaXY+PHNjcmlwdD4KCXRyeXsKCQlm dW5jdGlvbiBnb29nbGVTZWN0aW9uYWxFbGVtZW50SW5pdCgpIHsKCQkgIG5l dyBnb29nbGUudHJhbnNsYXRlLlNlY3Rpb25hbEVsZW1lbnQoewoJCSAgICBz ZWN0aW9uYWxOb2RlQ2xhc3NOYW1lOiAnZ29vZy10cmFucy1zZWN0aW9uJywK CQkgICAgY29udHJvbE5vZGVDbGFzc05hbWU6ICdnb29nLXRyYW5zLWNvbnRy b2wnLAoJCSAgICBiYWNrZ3JvdW5kOiAndHJhbnNwYXJlbnQnCgkJICB9LCAn Z29vZ2xlX3NlY3Rpb25hbF9lbGVtZW50Jyk7CgkJICAKCQkgIHNldFRpbWVv dXQoZnVuY3Rpb24oKSB7CQoJCQkgIHRyeSB7CgkJCQkJdmFyIGEgPSBqUXVl cnkoJyNndC1jb250cm9sIGEnKVswXTsKCQkJCQlteUZpcmVFdmVudChhLCAi Y2xpY2siKTsKCQkJCQlqUXVlcnkoJyNndC1jb250cm9sIGEnKS50ZXh0KCcn KTsKCQkJICB9Y2F0Y2goZSl7fQoJCQl9ICwgMTUwMCk7CgkJICB2YXIgcmVm cmVzaEludGVydmFsQ291bnRlciA9IDA7CgkJICB2YXIgcmVmcmVzaEludGVy dmFsSWQgPSBzZXRJbnRlcnZhbChmdW5jdGlvbigpIHsKCQkJICB0cnl7CgkJ CQkgIHZhciB0cmFuc2xhdGVkPWpRdWVyeSgnI2d0LWNvbnRhaW5lciBzcGFu Lmd0LXRleHQnKS50ZXh0KCk7CgkJCQkgIAoJCQkJICByZWZyZXNoSW50ZXJ2 YWxDb3VudGVyKys7CgkJCQkgIGlmKHRyYW5zbGF0ZWQudG9Mb3dlckNhc2Uo KSAhPSAiYXNkZmZmIi50b0xvd2VyQ2FzZSgpKSB7CgkJCQkJCWpRdWVyeSgn I2d0LWNvbnRhaW5lcicpLnNsaWRlRG93bigic2xvdyIpOwoJCQkJCQljbGVh ckludGVydmFsKHJlZnJlc2hJbnRlcnZhbElkKTsKCSAJCQkgIH0gZWxzZSBp ZiAocmVmcmVzaEludGVydmFsQ291bnRlciA+IDIwKSB7CgkgCQkJCSAJY2xl YXJJbnRlcnZhbChyZWZyZXNoSW50ZXJ2YWxJZCk7CgkgCQkJICB9CgkJCSAg fWNhdGNoKGUpe30KCQkJfSAsIDI1MDApOyAgCgkJfQoJfQljYXRjaChlKSB7 fQoJPC9zY3JpcHQ+PHNjcmlwdD4KCXRyeSB7CgkJZnVuY3Rpb24gbXlGaXJl RXZlbnQob2JqLGV2dCl7CgkJCgkJICAgIHZhciBmaXJlT25UaGlzID0gb2Jq OwoJCSAgICBpZiggZG9jdW1lbnQuY3JlYXRlRXZlbnQgKSB7CgkJICAgICAg dmFyIGV2T2JqID0gZG9jdW1lbnQuY3JlYXRlRXZlbnQoJ01vdXNlRXZlbnRz Jyk7CgkJICAgICAgZXZPYmouaW5pdEV2ZW50KCBldnQsIHRydWUsIGZhbHNl ICk7CgkJICAgICAgZmlyZU9uVGhpcy5kaXNwYXRjaEV2ZW50KCBldk9iaiAp OwoJCQoJCSAgICB9IGVsc2UgaWYoIGRvY3VtZW50LmNyZWF0ZUV2ZW50T2Jq ZWN0ICkgewoJCSAgICAgIHZhciBldk9iaiA9IGRvY3VtZW50LmNyZWF0ZUV2 ZW50T2JqZWN0KCk7CgkJICAgICAgZmlyZU9uVGhpcy5maXJlRXZlbnQoICdv bicgKyBldnQsIGV2T2JqICk7CgkJICAgIH0KCQl9CQoJCQoJCShmdW5jdGlv bigpIAoJCSAgewoJCQl2YXIgcyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlk KCJndC1jb250cm9sIik7CgkJICAgIHZhciBteXNjcmlwdCA9IGRvY3VtZW50 LmNyZWF0ZUVsZW1lbnQoJ3NjcmlwdCcpOwoJCSAgICBteXNjcmlwdC50eXBl ID0gJ3RleHQvamF2YXNjcmlwdCc7CgkJICAgIG15c2NyaXB0LnNyYyA9ICdo dHRwOi8vdHJhbnNsYXRlLmdvb2dsZS5jb20vdHJhbnNsYXRlX2EvZWxlbWVu dC5qcz9jYj1nb29nbGVTZWN0aW9uYWxFbGVtZW50SW5pdCZ1Zz1zZWN0aW9u JmhsPXBsJzsKCQkgICAgbXlzY3JpcHQuc2V0QXR0cmlidXRlKCdhc3luYycs ICd0cnVlJyk7CgkJICAgIHMuYXBwZW5kQ2hpbGQobXlzY3JpcHQpOwoJCSB9 KSgpOwoJfSBjYXRjaChlKSB7fQoJPC9zY3JpcHQ+PC9hcnRpY2xlPjwvZGl2 PjxkaXYgc3R5bGU9InBvc2l0aW9uOiBhYnNvbHV0ZTsgbGVmdDogOTYwcHg7 IHdpZHRoOiAxMjBweDsgbWFyZ2luLXRvcDogMTBweDsiIGlkPSJhZHZfcmln aHRfcGFuZWwiPjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KCQkg ICAgICAgIGdvb2dsZV9hZF9jbGllbnQgPSAiY2EtcHViLTMzMTQ2NjIyNjEz OTQ4MTYiOwoJCSAgICAgICAgLyogZ2xvc2JlLTMtd2llemEtcHJhd2EtYSAq LwoJCSAgICAgICAgZ29vZ2xlX2FkX3Nsb3QgPSAiODg3NzE3OTUxOSI7CgkJ ICAgICAgICBnb29nbGVfYWRfd2lkdGggPSAxNjA7CgkJICAgICAgICBnb29n bGVfYWRfaGVpZ2h0ID0gNjAwOwoJCSAgICAgIDwvc2NyaXB0PjxzY3JpcHQg c3JjPSJodHRwOi8vcGFnZWFkMi5nb29nbGVzeW5kaWNhdGlvbi5jb20vcGFn ZWFkL3Nob3dfYWRzLmpzIiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPjwvc2Ny aXB0PjxkaXYgc3R5bGU9ImRpc3BsYXk6IG5vbmU7IG1hcmdpbi10b3A6IDUw cHg7IiBpZD0idG93ZXIyYWRzIj48c2NyaXB0IHR5cGU9InRleHQvamF2YXNj cmlwdCI+CgkJICAgICAgICAgIGdvb2dsZV9hZF9jbGllbnQgPSAiY2EtcHVi LTMzMTQ2NjIyNjEzOTQ4MTYiOwoJCSAgICAgICAgICAvKiBnbG9zYmUtMy13 aWV6YS1wcmF3YS1iICovCgkJICAgICAgICAgIGdvb2dsZV9hZF9zbG90ID0g IjUwMzM4MDc0NzUiOwoJCSAgICAgICAgICBnb29nbGVfYWRfd2lkdGggPSAx NjA7CgkJICAgICAgICAgIGdvb2dsZV9hZF9oZWlnaHQgPSA2MDA7CgkJICAg ICAgICA8L3NjcmlwdD48c2NyaXB0IHNyYz0iaHR0cDovL3BhZ2VhZDIuZ29v Z2xlc3luZGljYXRpb24uY29tL3BhZ2VhZC9zaG93X2Fkcy5qcyIgdHlwZT0i dGV4dC9qYXZhc2NyaXB0Ij48L3NjcmlwdD48L2Rpdj48c2NyaXB0IHR5cGU9 InRleHQvamF2YXNjcmlwdCI+CgkJICAgICAgICAkKGZ1bmN0aW9uKCkgewoJ CSAgICAgICAgICB2YXIgZG9jID0gJChkb2N1bWVudCk7CgkJICAgICAgICAg IGlmIChkb2MuaGVpZ2h0KCkgPiAxMDAwKSB7CgkJICAgICAgICAgICAgJCgi I3Rvd2VyMmFkcyIpLnNob3coKTsKCQkgICAgICAgICAgfQoJCSAgICAgIH0p OwoJCSAgICAgIDwvc2NyaXB0PjwvZGl2PjwvZGl2PjwvZGl2PjxkaXYgc3R5 bGU9ImNsZWFyOiBib3RoOyI+PC9kaXY+PC9kaXY+PGRpdiBpZD0iZm9vdGVy Ij48Zm9vdGVyPjxkaXYgY2xhc3M9ImNvbnRlbnRfd3JhcHBlciI+PG5hdj48 dGFibGU+PHRib2R5Pjx0cj48dGQgd2lkdGg9IjE5NXB4IiB2YWxpZ249InRv cCI+PHNwYW4gY2xhc3M9ImZvb3Rlcmxpc3QiPjxhIGhyZWY9Ii8iPkhvbWU8 L2E+PGJyLz48YSBocmVmPSIvYWxsLWRpY3Rpb25hcmllcyI+QWxsIGRpY3Rp b25hcmllczoKCQkJCQkJCQkJCQlFbmdsaXNoIDwvYT48YnIvPjxhIGhyZWY9 Ii9hbGwtbGFuZ3VhZ2VzIj5BbGwgbGFuZ3VhZ2VzPC9hPjxici8+PGEgaHJl Zj0iL3RtZW0vIj5UcmFuc2xhdGlvbiBtZW1vcnk8L2E+PGJyLz48L3NwYW4+ PC90ZD48dGQgd2lkdGg9IjE0MHB4IiB2YWxpZ249InRvcCI+PHNwYW4gY2xh c3M9ImZvb3Rlcmxpc3QiPjxhIHJlbD0ibm9mb2xsb3ciIGhyZWY9Ii9yZWNl bnQiPlJlY2VudCBjaGFuZ2VzPC9hPjxici8+PGEgcmVsPSJub2ZvbGxvdyIg aHJlZj0iL2FkZC10cmFuc2xhdGlvbiI+YWRkIHRyYW5zbGF0aW9uPC9hPjxi ci8+PGEgcmVsPSJub2ZvbGxvdyIgaHJlZj0iL3VwbG9hZC10bSI+VXBsb2Fk IHRyYW5zbGF0aW9uIG1lbW9yeTwvYT48YnIvPjxhIHJlbD0ibm9mb2xsb3ci IGhyZWY9Ii91cGxvYWQtZGljdCI+VXBsb2FkIGRpY3Rpb25hcnk8L2E+PGJy Lz48YSByZWw9Im5vZm9sbG93IiBocmVmPSIvYS1hcGkiPkdsb3NiZSBBUEk8 L2E+PGJyLz48L3NwYW4+PC90ZD48dGQgd2lkdGg9IjE2MHB4IiB2YWxpZ249 InRvcCI+PHNwYW4gY2xhc3M9ImZvb3Rlcmxpc3QiPjxhIHJlbD0ibm9mb2xs b3ciIGhyZWY9Ii9hYm91dCI+QWJvdXQgdXM8L2E+PGJyLz48YSByZWw9Im5v Zm9sbG93IiBocmVmPSIvcGFydG5lcnMiPlBhcnRuZXJzPC9hPjxici8+PGEg cmVsPSJub2ZvbGxvdyIgaHJlZj0iL2Jsb2cvIj5CbG9nPC9hPjxici8+PGEg cmVsPSJub2ZvbGxvdyIgaHJlZj0iL2NvbnRhY3QiPkNvbnRhY3Q8L2E+PGJy Lz48L3NwYW4+PC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L25hdj48ZGl2 IGNsYXNzPSJwb3dlcmVkLWJ5Ij5Qb3dlcmVkIGJ5IDxhIGhyZWY9Imh0dHA6 Ly9jbG91ZC1pbnNpZGUuY29tIj5DbG91ZCBJbnNpZGU8L2E+PC9kaXY+PGRp diBjbGFzcz0iY2xlYXIiPiZuYnNwOzwvZGl2PjwvZGl2PjwvZm9vdGVyPjwv ZGl2PjwvZGl2PjxzY3JpcHQgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiPgogICAg ICB3aW5kb3cuZGVmYXVsdFNlYXJjaE1zZyA9ICJFbnRlciB3b3JkIG9yIHBo cmFzZToiOwogICAgICB3aW5kb3cuc2l0ZVVybCA9ICIvIjsKICAgICAgd2lu ZG93LnNpdGVIb3N0ID0gImdsb3NiZS5jb20iOwogICAgICB3aW5kb3cubG9j YWxlQ29kZTIgPSAiZW4iOwogICAgICB3aW5kb3cubG9jYWxlQ29kZTMgPSAi ZW5nIjsKICAgICAgd2luZG93LmxvZ2dlZD1mYWxzZTsKICAgIDwvc2NyaXB0 PjxkaXYgaWQ9ImxvZ2luQ29udGFpbmVyIj48c2NyaXB0PgoJCQlmdW5jdGlv biBsb2dpblN1Y2Nlc3MocmVzdWx0KSB7CgkJCQl2YXIgbG9naW5FdnQgPSBq UXVlcnkuRXZlbnQoJ2xvZ2dlZEluRXZlbnQnLCB7dXNlcjogIHJlc3VsdC5y ZXN1bHQudXNlciB9KTsKCQkJCUZCZWF2ZXIucHVibGlzaChsb2dpbkV2dCk7 CgkJCQl2YXIgaHRtbD0gRkJlYXZlci50bXBsKCd3ZWxjb21lVGV4dFRtcGwn LCB7bmFtZTogcmVzdWx0LnJlc3VsdC51c2VyLm5hbWUsIHVybDogc2l0ZVVy bCsncHJvZmlsZS8nK3Jlc3VsdC5yZXN1bHQudXNlci5pZH0pOwoJCQkJJCgi I2xvZ2luTGlua3NDb250YWluZXIiKS5odG1sKGh0bWwpOwkJCQkJCQkJCQkK CQkJCSQudW5ibG9ja1VJKCk7CgkJCQl3aW5kb3cubG9nZ2VkPXRydWU7CgkJ CQkKCQkJfQkJCgkJCWZ1bmN0aW9uIGxvZ2luQ2FuY2VsKCkgewoJCQkJJC51 bmJsb2NrVUkoKTsKCQkJfQoJCQlmdW5jdGlvbiBsb2dpbkVycm9yKHJlc3Vs dCkgewoJCQkJJCgnPGRpdj5FcnJvciBpbiBsb2dpbiwgcG9zc2libHkgeW91 IGhhdmUgbm8gYWNjb3VudCB5ZXQ/IFNlbGVjdCAicmVnaXN0ZXIiIHRhYiB0 byBjcmVhdGUgbmV3IGFjY291bnQuPC9kaXY+JykuZGlhbG9nKHsgekluZGV4 OiAzOTk5LCBidXR0b25zOiB7ICJPayI6IGZ1bmN0aW9uKCkgeyAkKHRoaXMp LmRpYWxvZygiY2xvc2UiKTsgfSB9fSk7CQkJCQoJCQl9CgkJCWZ1bmN0aW9u IHJlZ2lzdGVyRXJyb3IocmVzdWx0KSB7CgkJCQkkKCc8ZGl2PkVycm9yIGlu IHJlZ2lzdHJhdGlvbi4gUGxlYXNlIHRyeSBhZ2FpbiBvciBjb250YWN0IHVz LiBUaGFua3MuPC9kaXY+JykuZGlhbG9nKHsgekluZGV4OiAzOTk5LCBidXR0 b25zOiB7ICJPayI6IGZ1bmN0aW9uKCkgeyAkKHRoaXMpLmRpYWxvZygiY2xv c2UiKTsgfSB9fSk7CgkJCX0KCQkJZnVuY3Rpb24gdXBkYXRlUHdkRXJyb3Io cmVzdWx0KSB7CgkJCQkkKCc8ZGl2PkVycm9yIGluIHNlbmRpbmcgcGFzc3dv cmQgYWdhaW4uIFBsZWFzZSB0cnkgYWdhaW4gb3IgY29udGFjdCB1cy4gVGhh bmtzLjwvZGl2PicpLmRpYWxvZyh7IHpJbmRleDogMzk5OSwgYnV0dG9uczog eyAiT2siOiBmdW5jdGlvbigpIHsgJCh0aGlzKS5kaWFsb2coImNsb3NlIik7 IH0gfX0pOwoJCQl9CgkJCQoJCTwvc2NyaXB0PjxzY3JpcHQgdHlwZT0idGV4 dC9qYXZhc2NyaXB0Ij4KICAgICAgIGZ1bmN0aW9uIGVtcHR5RnVuKGFyZykg ewogICAgICAgICAgIAogICAgICAgfQogICAgPC9zY3JpcHQ+PHNjcmlwdD4K CQkJCSQoZnVuY3Rpb24oKSB7CgkJCQkJJCgiI2xvZ2luLXRhYnMtbG9naW4t dG9nZ2xlIikuY2xpY2soCgkJCQkJCWZ1bmN0aW9uKCkgewoJCQkJCQkJJCgi I2xvZ2luLXRhYnMtc2lnbiIpLmhpZGUoKTsKCQkJCQkJCSQoIiNsb2dpbi10 YWJzLWZvcmdvdCIpLmhpZGUoKTsKCQkJCQkJCSQoIiNsb2dpbi10YWJzLWxv Z2luIikuc2hvdygpOwoJCQkJCQkJJCgiI2xvZ2luLXRhYnMtbG9naW4tdG9n Z2xlIikuYWRkQ2xhc3MoJ2MnKTsKCQkJCQkJCSQoIiNsb2dpbi10YWJzLXNp Z24tdG9nZ2xlIikucmVtb3ZlQ2xhc3MoJ2MnKTsKCQkJCQkJCSQoIiNsb2dp bi10YWJzLWZvcmdvdC10b2dnbGUiKS5yZW1vdmVDbGFzcygnYycpOwoJCQkJ CQkJCgkJCQkJCX0KCQkJCQkpOwoJCQkJCSQoIiNsb2dpbi10YWJzLXNpZ24t dG9nZ2xlIikuY2xpY2soCgkJCQkJCQlmdW5jdGlvbigpIHsKCQkJCQkJCQkk KCIjbG9naW4tdGFicy1zaWduIikuc2hvdygpOwoJCQkJCQkJCSQoIiNsb2dp bi10YWJzLWZvcmdvdCIpLmhpZGUoKTsKCQkJCQkJCQkkKCIjbG9naW4tdGFi cy1sb2dpbiIpLmhpZGUoKTsKCQkJCQkJCQkkKCIjbG9naW4tdGFicy1sb2dp bi10b2dnbGUiKS5yZW1vdmVDbGFzcygnYycpOwoJCQkJCQkJCSQoIiNsb2dp bi10YWJzLXNpZ24tdG9nZ2xlIikuYWRkQ2xhc3MoJ2MnKTsKCQkJCQkJCQkk KCIjbG9naW4tdGFicy1mb3Jnb3QtdG9nZ2xlIikucmVtb3ZlQ2xhc3MoJ2Mn KTsKCQkJCQkJCX0KCQkJCQkpOwoJCQkJCSQoIiNsb2dpbi10YWJzLWZvcmdv dC10b2dnbGUiKS5jbGljaygKCQkJCQkJCWZ1bmN0aW9uKCkgewoJCQkJCQkJ CSQoIiNsb2dpbi10YWJzLXNpZ24iKS5oaWRlKCk7CgkJCQkJCQkJJCgiI2xv Z2luLXRhYnMtZm9yZ290Iikuc2hvdygpOwoJCQkJCQkJCSQoIiNsb2dpbi10 YWJzLWxvZ2luIikuaGlkZSgpOwoJCQkJCQkJCSQoIiNsb2dpbi10YWJzLWxv Z2luLXRvZ2dsZSIpLnJlbW92ZUNsYXNzKCdjJyk7CgkJCQkJCQkJJCgiI2xv Z2luLXRhYnMtc2lnbi10b2dnbGUiKS5yZW1vdmVDbGFzcygnYycpOwoJCQkJ CQkJCSQoIiNsb2dpbi10YWJzLWZvcmdvdC10b2dnbGUiKS5hZGRDbGFzcygn YycpOwoJCQkJCQkJfQoJCQkJCSk7CgkJCQkKCQkJCX0pOwoJCQk8L3Njcmlw dD48ZGl2IGlkPSJsb2dpbldpZGdldCI+PGRpdiBpZD0ibG9naW5UYWJzIj48 YSBvbmNsaWNrPSJsb2dpbkNhbmNlbCgpIiBocmVmPSJqYXZhc2NyaXB0Ojsi IGNsYXNzPSJjbG9zZSI+eDwvYT48dWw+PGxpPjxhIGNsYXNzPSJjIiBpZD0i bG9naW4tdGFicy1sb2dpbi10b2dnbGUiIGhyZWY9ImphdmFzY3JpcHQ6OyI+ TG9nIGluPC9hPjwvbGk+PGxpPjxhIGlkPSJsb2dpbi10YWJzLXNpZ24tdG9n Z2xlIiBocmVmPSJqYXZhc2NyaXB0OjsiPlJlZ2lzdGVyPC9hPjwvbGk+PGxp PjxhIGlkPSJsb2dpbi10YWJzLWZvcmdvdC10b2dnbGUiIGhyZWY9ImphdmFz Y3JpcHQ6OyI+Rm9yZ290IHBhc3N3b3JkPC9hPjwvbGk+PC91bD48L2Rpdj48 ZGl2IGlkPSJsb2dpbkJvZHkiPjxkaXYgaWQ9ImxvZ2luLXRhYnMtbG9naW4i PjxkaXY+PHNlY3Rpb24gaWQ9ImxvZ2luRm9ybV8wX3NlY3Rpb24iPjxkaXYg Y2xhc3M9ImxvZ2luRm9ybUNvbnRhaW5lciIgaWQ9ImxvZ2luRm9ybV8wX2Nv bnRhaW5lciI+PGlmcmFtZSBuYW1lPSJmb3JtTG9naW5GcmFtZTAiIHN0eWxl PSJ3aWR0aDogMHB4OyBoZWlnaHQ6IDBweDsgdmlzaWJpbGl0eTogaGlkZGVu OyBwb3NpdGlvbjogYWJzb2x1dGU7IGxlZnQ6IC0xMDAwMDsiPjwvaWZyYW1l Pjxmb3JtIHRhcmdldD0iZm9ybUxvZ2luRnJhbWUwIiBhY3Rpb249Ii9hdXRo L3NlY3VyaXR5X2NoZWNrIiBpZD0ibG9naW5Gb3JtXzAiIG5hbWU9ImxvZ2lu Rm9ybV8wIiBtZXRob2Q9InBvc3QiPjxzZWN0aW9uPjxsYWJlbCBmb3I9Imxv Z2luRm9ybV8wX2VtYWlsIj5lbWFpbDwvbGFiZWw+PGRpdiBjbGFzcz0ibG9n aW5Gb3JtX2VtYWlsIj48aW5wdXQgY2xhc3M9InJlcXVpcmVkIGVtYWlsIiBu YW1lPSJqX3VzZXJuYW1lIiB0eXBlPSJlbWFpbCIgaWQ9ImxvZ2luRm9ybV8w X2VtYWlsIi8+PC9kaXY+PC9zZWN0aW9uPjxzZWN0aW9uPjxsYWJlbCBmb3I9 ImxvZ2luRm9ybV8wX3Bhc3N3b3JkIj5wYXNzd29yZDwvbGFiZWw+PGRpdiBj bGFzcz0ibG9naW5Gb3JtX3Bhc3N3b3JkIj48aW5wdXQgdHlwZT0icGFzc3dv cmQiIG5hbWU9ImpfcGFzc3dvcmQiIGlkPSJsb2dpbkZvcm1fMF9wYXNzd29y ZCIgY2xhc3M9InJlcXVpcmVkIi8+PC9kaXY+PC9zZWN0aW9uPjxzZWN0aW9u PjxpbnB1dCB2YWx1ZT0idHJ1ZSIgY2xhc3M9InNpZ25JblJlbWVtYmVyTWUi IG5hbWU9InJlbWVtYmVyTWUiIHR5cGU9ImhpZGRlbiIgaWQ9ImxvZ2luRm9y bV8wX3JlbWVtYmVyTWUiLz48L3NlY3Rpb24+PHNlY3Rpb24+PGlucHV0IGNs YXNzPSJidXR0b24gcHJpbWFyeSBsb2dpbkZvcm1fbG9naW4iIG9uY2xpY2s9 IkZCZWF2ZXIuZm9ybUxvZ2luKCdsb2dpblN1Y2Nlc3MnLCAnbG9naW5FcnJv cicpIiB2YWx1ZT0ibG9nIGluIiB0eXBlPSJzdWJtaXQiLz48L3NlY3Rpb24+ PC9mb3JtPjwvZGl2Pjwvc2VjdGlvbj48c2VjdGlvbiBjbGFzcz0iZm9ybS1z ZWN0aW9uIHNvY2lhbExvZ2luTGlua3NDb250YWluZXIiPjxwIGNsYXNzPSJz b2NpYWxMb2dpbkxpbmtzTGFiZWwiPklmIHlvdSBoYXZlIEZhY2Vib29rIG9y IEdtYWlsIGNsaWNrOjwvcD48YSBvbmNsaWNrPSJGQmVhdmVyLmV4dGVybmFs TG9naW4odGhpcywgJy9hdXRoL2V4dGVybmFsL2ZhY2Vib29rJywgJ1NpZ24g aW4gd2l0aCBGYWNlYm9vaycsICdsb2dpblN1Y2Nlc3MnLCAnbG9naW5FcnJv cicpIiBjbGFzcz0ic2lnbkluRmFjZWJvb2siIGhyZWY9ImphdmFzY3JpcHQ6 OyI+PGltZyBzcmM9Imh0dHA6Ly9nbG9zYmUuY29tL3Jlc291cmNlcy9yZXNv dXJjZXNfaW1nL2xvZ2luL2ZhY2Vib29rLWxvZ2luLWJ1dHRvbi5wbmciIGFs dD0iU2lnbiBpbiB3aXRoIEZhY2Vib29rIi8+PC9hPjxhIG9uY2xpY2s9IkZC ZWF2ZXIuZXh0ZXJuYWxMb2dpbih0aGlzLCAnL2F1dGgvZXh0ZXJuYWwvZ29v Z2xlJywgJ1NpZ24gaW4gd2l0aCBHb29nbGUnLCAnbG9naW5TdWNjZXNzJywg J2xvZ2luRXJyb3InICkiIGNsYXNzPSJzaWduSW5Hb29nbGUiIGhyZWY9Imph dmFzY3JpcHQ6OyI+PGltZyBzcmM9Imh0dHA6Ly9nbG9zYmUuY29tL3Jlc291 cmNlcy9yZXNvdXJjZXNfaW1nL2xvZ2luL2dvb2dsZS1sb2dpbi1idXR0b24u cG5nIiBhbHQ9IlNpZ24gaW4gd2l0aCBHb29nbGUiLz48L2E+PC9zZWN0aW9u PjwvZGl2PjwvZGl2PjxkaXYgc3R5bGU9ImRpc3BsYXk6IG5vbmUiIGlkPSJs b2dpbi10YWJzLXNpZ24iPjxkaXY+PHNlY3Rpb24gaWQ9InJlZ2lzdHJhdGlv bkZvcm1fMF9zZWN0aW9uIj48ZGl2IGNsYXNzPSJyZWdpc3RyYXRpb25Gb3Jt X2NvbnRhaW5lciIgaWQ9InJlZ2lzdHJhdGlvbkZvcm1fMF9jb250YWluZXIi Pjxmb3JtIGlkPSJyZWdpc3RyYXRpb25Gb3JtXzBfZm9ybSIgbmFtZT0icmVn aXN0ZXJGb3JtXzAiIG9uRXJyb3I9InJlZ2lzdGVyRXJyb3IiIG9uU3VjY2Vz cz0ibG9naW5TdWNjZXNzIiBtZXRob2Q9InBvc3QiIGVuY3R5cGU9Im11bHRp cGFydC9mb3JtLWRhdGEiIGNsYXNzPSJhY3Rpb25Gb3JtIj48c2VjdGlvbj48 bGFiZWwgZm9yPSJyZWdpc3RyYXRpb25Gb3JtXzBfZW1haWwiPmVtYWlsPC9s YWJlbD48ZGl2IGNsYXNzPSJyZWdpc3RyYXRpb25Gb3JtX2VtYWlsIj48aW5w dXQgY2xhc3M9InJlcXVpcmVkIGVtYWlsIiBuYW1lPSJhY3Rpb24ucHJvcHNb ZW1haWxdIiB0eXBlPSJ0ZXh0IiBpZD0icmVnaXN0cmF0aW9uRm9ybV8wX2Vt YWlsIi8+PC9kaXY+PC9zZWN0aW9uPjxzZWN0aW9uPjxsYWJlbCBmb3I9InJl Z2lzdHJhdGlvbkZvcm1fMF9wYXNzd29yZDEiPnBhc3N3b3JkPC9sYWJlbD48 ZGl2IGNsYXNzPSJyZWdpc3RyYXRpb25Gb3JtX3Bhc3N3b3JkMSI+PGlucHV0 IGNsYXNzPSJyZXF1aXJlZCIgbmFtZT0iYWN0aW9uLnByb3BzW3Bhc3N3b3Jk MV0iIGlkPSJyZWdpc3RyYXRpb25Gb3JtXzBfcGFzc3dvcmQxIiB0eXBlPSJw YXNzd29yZCIvPjwvZGl2Pjwvc2VjdGlvbj48c2VjdGlvbj48bGFiZWwgZm9y PSJyZWdpc3RyYXRpb25Gb3JtXzBfcGFzc3dvcmQyIj5yZXR5cGUgcGFzc3dv cmQ8L2xhYmVsPjxkaXYgY2xhc3M9InJlZ2lzdHJhdGlvbkZvcm1fcGFzc3dv cmQyIj48aW5wdXQgY2xhc3M9InJlcXVpcmVkIiBuYW1lPSJhY3Rpb24ucHJv cHNbcGFzc3dvcmQyXSIgaWQ9InJlZ2lzdHJhdGlvbkZvcm1fMF9wYXNzd29y ZDIiIHR5cGU9InBhc3N3b3JkIi8+PC9kaXY+PGlucHV0IGNsYXNzPSJidXR0 b24gcHJpbWFyeSIgdmFsdWU9ImNyZWF0ZSBhY2NvdW50IiB0eXBlPSJzdWJt aXQiLz48aW5wdXQgdmFsdWU9ImNvcmUuQ3JlYXRlQWNjb3VudEFjdGlvbiIg bmFtZT0iYWN0aW9uLm5hbWUiIHR5cGU9ImhpZGRlbiIvPjwvc2VjdGlvbj48 L2Zvcm0+PC9kaXY+PC9zZWN0aW9uPjwvZGl2PjwvZGl2PjxkaXYgc3R5bGU9 ImRpc3BsYXk6IG5vbmUiIGlkPSJsb2dpbi10YWJzLWZvcmdvdCI+PGRpdj48 c2VjdGlvbiBpZD0iZm9yZ290UGFzc3dvcmRfMF9zZWN0aW9uIj48ZGl2IGNs YXNzPSJmb3Jnb3RQYXNzd29yZF9jb250YWluZXIiIGlkPSJmb3Jnb3RQYXNz d29yZEZvcm1fMV9jb250YWluZXIiPjxmb3JtIGlkPSJmb3Jnb3RQYXNzd29y ZEZvcm1fMCIgbmFtZT0iZm9yZ290UGFzc0Zvcm1fMCIgb25FcnJvcj0idXBk YXRlUHdkRXJyb3IiIG9ucmVzcG9uc2U9ImZvcmdvdFBhc3NDYWxsYmFjayIg bWV0aG9kPSJwb3N0IiBlbmN0eXBlPSJtdWx0aXBhcnQvZm9ybS1kYXRhIiBj bGFzcz0iYWN0aW9uRm9ybSI+PHNlY3Rpb24+PGxhYmVsIGZvcj0iZm9yZ290 UGFzc3dvcmRGb3JtXzBfZW1haWwiPmVtYWlsPC9sYWJlbD48ZGl2IGNsYXNz PSJmb3Jnb3RQYXNzd29yZEZvcm1fZW1haWwiPjxpbnB1dCBjbGFzcz0icmVx dWlyZWQgZW1haWwiIGlkPSJmb3Jnb3RQYXNzd29yZEZvcm1fMF9lbWFpbCIg bmFtZT0iYWN0aW9uLnByb3BzW2VtYWlsXSIgdHlwZT0iZW1haWwiLz48L2Rp dj48L3NlY3Rpb24+PHNlY3Rpb24+PGlucHV0IGNsYXNzPSJidXR0b24gcHJp bWFyeSBmb3Jnb3RQYXNzd29yZEZvcm1fc3VibWl0IiB2YWx1ZT0icmVzZXQg cGFzc3dvcmQiIHR5cGU9InN1Ym1pdCIvPjxpbnB1dCB2YWx1ZT0iY29yZS5G b3Jnb3RQYXNzd29yZEFjdGlvbiIgbmFtZT0iYWN0aW9uLm5hbWUiIHR5cGU9 ImhpZGRlbiIvPjwvc2VjdGlvbj48L2Zvcm0+PC9kaXY+PC9zZWN0aW9uPjwv ZGl2PjwvZGl2PjwvZGl2PjwvZGl2PjwvZGl2PjxzY3JpcHQgdHlwZT0idGV4 dC9qYXZhc2NyaXB0Ij4KCSAgdmFyIF9nYXEgPSBfZ2FxIHx8IFtdOwoJICBf Z2FxLnB1c2goWydfc2V0QWNjb3VudCcsICdVQS0xMzExMDczMy0xMSddKTsK CSAgX2dhcS5wdXNoKFsnX3RyYWNrUGFnZXZpZXcnXSk7CgkgIAoJICBfZ2Fx LnB1c2goWydfc2V0RG9tYWluTmFtZScsICdnbG9zYmUuY29tJ10pOwoJICAK CQoJICAoZnVuY3Rpb24oKSB7CgkgICAgdmFyIGdhID0gZG9jdW1lbnQuY3Jl YXRlRWxlbWVudCgnc2NyaXB0Jyk7IGdhLnR5cGUgPSAndGV4dC9qYXZhc2Ny aXB0JzsgZ2EuYXN5bmMgPSB0cnVlOwoJICAgIGdhLnNyYyA9ICgnaHR0cHM6 JyA9PSBkb2N1bWVudC5sb2NhdGlvbi5wcm90b2NvbCA/ICdodHRwczovL3Nz bCcgOiAnaHR0cDovL3d3dycpICsgJy5nb29nbGUtYW5hbHl0aWNzLmNvbS9n YS5qcyc7CgkgICAgdmFyIHMgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFn TmFtZSgnc2NyaXB0JylbMF07IHMucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUo Z2EsIHMpOwoJICB9KSgpOwoJLy8gQ29weXJpZ2h0IDIwMTEgR29vZ2xlIElu Yy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KCgkgIC8qKgoJICAgKiBAZmlsZW92 ZXJ2aWV3IEEgc2ltcGxlIHNjcmlwdCB0byBhdXRvbWF0aWNhbGx5IHRyYWNr IEZhY2Vib29rIGFuZCBUd2l0dGVyCgkgICAqIGJ1dHRvbnMgdXNpbmcgR29v Z2xlIEFuYWx5dGljcyBzb2NpYWwgdHJhY2tpbmcgZmVhdHVyZS4KCSAgICog QGF1dGhvciBhcGkubmlja21AZ29vZ2xlLmNvbSAoTmljayBNaWhhaWxvdnNr aSkKCSAgICovCgoKCSAgLyoqCgkgICAqIE5hbWVzcGFjZS4KCSAgICogQHR5 cGUge09iamVjdH0uCgkgICAqLwoJICB2YXIgX2dhID0gX2dhIHx8IHt9OwoK CgkgIC8qKgoJICAgKiBFbnN1cmUgZ2xvYmFsIF9nYXEgR29vZ2xlIEFubGF5 dGljcyBxdWV1ZSBoYXMgYmUgaW5pdGlhbGl6ZWQuCgkgICAqIEB0eXBlIHtB cnJheX0KCSAgICovCgkgIHZhciBfZ2FxID0gX2dhcSB8fCBbXTsKCgoJICAv KioKCSAgICogSGVscGVyIG1ldGhvZCB0byB0cmFjayBzb2NpYWwgZmVhdHVy ZXMuIFRoaXMgYXNzdW1lcyBhbGwgdGhlIHNvY2lhbAoJICAgKiBzY3JpcHRz IC8gYXBpcyBhcmUgbG9hZGVkIHN5bmNocm9ub3VzbHkuIElmIHRoZXkgYXJl IGxvYWRlZCBhc3luYywKCSAgICogeW91IG1pZ2h0IG5lZWQgdG8gYWRkIHRo ZSBuZXh0d29yayBzcGVjaWZpYyB0cmFja2luZyBjYWxsIHRvIHRoZQoJICAg KiBhIGNhbGxiYWNrIG9uY2UgdGhlIG5ldHdvcmsncyBzY3JpcHQgaGFzIGxv YWRlZC4KCSAgICogQHBhcmFtIHtzdHJpbmd9IG9wdF9wYWdlVXJsIEFuIG9w dGlvbmFsIFVSTCB0byBhc3NvY2lhdGUgdGhlIHNvY2lhbAoJICAgKiAgICAg dHJhY2tpbmcgd2l0aCBhIHBhcnRpY3VsYXIgcGFnZS4KCSAgICogQHBhcmFt IHtzdHJpbmd9IG9wdF90cmFja2VyTmFtZSBBbiBvcHRpb25hbCBuYW1lIGZv ciB0aGUgdHJhY2tlciBvYmplY3QuCgkgICAqLwoJICBfZ2EudHJhY2tTb2Np YWwgPSBmdW5jdGlvbihvcHRfcGFnZVVybCwgb3B0X3RyYWNrZXJOYW1lKSB7 CgkgICAgX2dhLnRyYWNrRmFjZWJvb2sob3B0X3BhZ2VVcmwsIG9wdF90cmFj a2VyTmFtZSk7CgkgICAgX2dhLnRyYWNrVHdpdHRlcihvcHRfcGFnZVVybCwg b3B0X3RyYWNrZXJOYW1lKTsKCSAgfTsKCgoJICAvKioKCSAgICogVHJhY2tz IEZhY2Vib29rIGxpa2VzLCB1bmxpa2VzIGFuZCBzZW5kcyBieSBzdXNjcmli aW5nIHRvIHRoZSBGYWNlYm9vawoJICAgKiBKU0FQSSBldmVudCBtb2RlbC4g Tm90ZTogVGhpcyB3aWxsIG5vdCB0cmFjayBmYWNlYm9vayBidXR0b25zIHVz aW5nIHRoZQoJICAgKiBpRnJhbWUgbWV0aG9kLgoJICAgKiBAcGFyYW0ge3N0 cmluZ30gb3B0X3BhZ2VVcmwgQW4gb3B0aW9uYWwgVVJMIHRvIGFzc29jaWF0 ZSB0aGUgc29jaWFsCgkgICAqICAgICB0cmFja2luZyB3aXRoIGEgcGFydGlj dWxhciBwYWdlLgoJICAgKiBAcGFyYW0ge3N0cmluZ30gb3B0X3RyYWNrZXJO YW1lIEFuIG9wdGlvbmFsIG5hbWUgZm9yIHRoZSB0cmFja2VyIG9iamVjdC4K CSAgICovCgkgIF9nYS50cmFja0ZhY2Vib29rID0gZnVuY3Rpb24ob3B0X3Bh Z2VVcmwsIG9wdF90cmFja2VyTmFtZSkgewoJICAgIHZhciB0cmFja2VyTmFt ZSA9IF9nYS5idWlsZFRyYWNrZXJOYW1lXyhvcHRfdHJhY2tlck5hbWUpOwoJ ICAgIHRyeSB7CgkgICAgICBpZiAoRkIgJiYgRkIuRXZlbnQgJiYgRkIuRXZl bnQuc3Vic2NyaWJlKSB7CgkgICAgICAgIEZCLkV2ZW50LnN1YnNjcmliZSgn ZWRnZS5jcmVhdGUnLCBmdW5jdGlvbih0YXJnZXRVcmwpIHsKCSAgICAgICAg ICBfZ2FxLnB1c2goW3RyYWNrZXJOYW1lICsgJ190cmFja1NvY2lhbCcsICdm YWNlYm9vaycsICdsaWtlJywKCSAgICAgICAgICAgICAgdGFyZ2V0VXJsLCBv cHRfcGFnZVVybF0pOwoJICAgICAgICB9KTsKCSAgICAgICAgRkIuRXZlbnQu c3Vic2NyaWJlKCdlZGdlLnJlbW92ZScsIGZ1bmN0aW9uKHRhcmdldFVybCkg ewoJICAgICAgICAgIF9nYXEucHVzaChbdHJhY2tlck5hbWUgKyAnX3RyYWNr U29jaWFsJywgJ2ZhY2Vib29rJywgJ3VubGlrZScsCgkgICAgICAgICAgICAg IHRhcmdldFVybCwgb3B0X3BhZ2VVcmxdKTsKCSAgICAgICAgfSk7CgkgICAg ICAgIEZCLkV2ZW50LnN1YnNjcmliZSgnbWVzc2FnZS5zZW5kJywgZnVuY3Rp b24odGFyZ2V0VXJsKSB7CgkgICAgICAgICAgX2dhcS5wdXNoKFt0cmFja2Vy TmFtZSArICdfdHJhY2tTb2NpYWwnLCAnZmFjZWJvb2snLCAnc2VuZCcsCgkg ICAgICAgICAgICAgIHRhcmdldFVybCwgb3B0X3BhZ2VVcmxdKTsKCSAgICAg ICAgfSk7CgkgICAgICB9CgkgICAgfSBjYXRjaCAoZSkge30KCSAgfTsKCgoJ ICAvKioKCSAgICogUmV0dXJucyB0aGUgbm9ybWFsaXplZCB0cmFja2VyIG5h bWUgY29uZmlndXJhdGlvbiBwYXJhbWV0ZXIuCgkgICAqIEBwYXJhbSB7c3Ry aW5nfSBvcHRfdHJhY2tlck5hbWUgQW4gb3B0aW9uYWwgbmFtZSBmb3IgdGhl IHRyYWNrZXIgb2JqZWN0LgoJICAgKiBAcmV0dXJuIHtzdHJpbmd9IElmIG9w dF90cmFja2VyTmFtZSBpcyBzZXQsIHRoZW4gdGhlIHZhbHVlIGFwcGVuZGVk IHdpdGgKCSAgICogICAgIGEgLiBPdGhlcndpc2UgYW4gZW1wdHkgc3RyaW5n LgoJICAgKiBAcHJpdmF0ZQoJICAgKi8KCSAgX2dhLmJ1aWxkVHJhY2tlck5h bWVfID0gZnVuY3Rpb24ob3B0X3RyYWNrZXJOYW1lKSB7CgkgICAgcmV0dXJu IG9wdF90cmFja2VyTmFtZSA/IG9wdF90cmFja2VyTmFtZSArICcuJyA6ICcn OwoJICB9OwoKCgkgIC8qKgoJICAgKiBUcmFja3MgZXZlcnl0aW1lIGEgdXNl ciBjbGlja3Mgb24gYSB0d2VldCBidXR0b24gZnJvbSBUd2l0dGVyLgoJICAg KiBUaGlzIHN1YnNjcmliZXMgdG8gdGhlIFR3aXR0ZXIgSlMgQVBJIGV2ZW50 IG1lY2hhbmlzbSB0byBsaXN0ZW4gZm9yCgkgICAqIGNsaWNrcyBjb21pbmcg ZnJvbSB0aGlzIHBhZ2UuIERldGFpbHMgaGVyZToKCSAgICogaHR0cDovL2Rl di50d2l0dGVyLmNvbS9wYWdlcy9pbnRlbnRzLWV2ZW50cyNjbGljawoJICAg KiBUaGlzIG1ldGhvZCBzaG91bGQgYmUgY2FsbGVkIG9uY2UgdGhlIHR3aXR0 ZXIgQVBJIGhhcyBsb2FkZWQuCgkgICAqIEBwYXJhbSB7c3RyaW5nfSBvcHRf cGFnZVVybCBBbiBvcHRpb25hbCBVUkwgdG8gYXNzb2NpYXRlIHRoZSBzb2Np YWwKCSAgICogICAgIHRyYWNraW5nIHdpdGggYSBwYXJ0aWN1bGFyIHBhZ2Uu CgkgICAqIEBwYXJhbSB7c3RyaW5nfSBvcHRfdHJhY2tlck5hbWUgQW4gb3B0 aW9uYWwgbmFtZSBmb3IgdGhlIHRyYWNrZXIgb2JqZWN0LgoJICAgKi8KCSAg X2dhLnRyYWNrVHdpdHRlciA9IGZ1bmN0aW9uKG9wdF9wYWdlVXJsLCBvcHRf dHJhY2tlck5hbWUpIHsKCSAgICB2YXIgdHJhY2tlck5hbWUgPSBfZ2EuYnVp bGRUcmFja2VyTmFtZV8ob3B0X3RyYWNrZXJOYW1lKTsKCSAgICB0cnkgewoJ ICAgICAgaWYgKHR3dHRyICYmIHR3dHRyLmV2ZW50cyAmJiB0d3R0ci5ldmVu dHMuYmluZCkgewoJICAgICAgICB0d3R0ci5ldmVudHMuYmluZCgndHdlZXQn LCBmdW5jdGlvbihldmVudCkgewoJICAgICAgICAgIGlmIChldmVudCkgewoJ ICAgICAgICAgICAgdmFyIHRhcmdldFVybDsgLy8gRGVmYXVsdCB2YWx1ZSBp cyB1bmRlZmluZWQuCgkgICAgICAgICAgICBpZiAoZXZlbnQudGFyZ2V0ICYm IGV2ZW50LnRhcmdldC5ub2RlTmFtZSA9PSAnSUZSQU1FJykgewoJICAgICAg ICAgICAgICB0YXJnZXRVcmwgPSBfZ2EuZXh0cmFjdFBhcmFtRnJvbVVyaV8o ZXZlbnQudGFyZ2V0LnNyYywgJ3VybCcpOwoJICAgICAgICAgICAgfQoJICAg ICAgICAgICAgX2dhcS5wdXNoKFt0cmFja2VyTmFtZSArICdfdHJhY2tTb2Np YWwnLCAndHdpdHRlcicsICd0d2VldCcsCgkgICAgICAgICAgICAgIHRhcmdl dFVybCwgb3B0X3BhZ2VVcmxdKTsKCSAgICAgICAgICB9CgkgICAgICAgIH0p OwoJICAgICAgfQoJICAgIH0gY2F0Y2ggKGUpIHt9CgkgIH07CgoKCSAgLyoq CgkgICAqIEV4dHJhY3RzIGEgcXVlcnkgcGFyYW1ldGVyIHZhbHVlIGZyb20g YSBVUkkuCgkgICAqIEBwYXJhbSB7c3RyaW5nfSB1cmkgVGhlIFVSSSBmcm9t IHdoaWNoIHRvIGV4dHJhY3QgdGhlIHBhcmFtZXRlci4KCSAgICogQHBhcmFt IHtzdHJpbmd9IHBhcmFtTmFtZSBUaGUgbmFtZSBvZiB0aGUgcXVlcnkgcGFy YW1hdGVyIHRvIGV4dHJhY3QuCgkgICAqIEByZXR1cm4ge3N0cmluZ30gVGhl IHVuLWVuY29kZWQgdmFsdWUgb2YgdGhlIHF1ZXJ5IHBhcmFtYXRlci4gdW5k ZXJmaW5lZAoJICAgKiAgICAgaWYgdGhlcmUgaXMgbm8gVVJJIHBhcmFtZXRl ci4KCSAgICogQHByaXZhdGUKCSAgICovCgkgIF9nYS5leHRyYWN0UGFyYW1G cm9tVXJpXyA9IGZ1bmN0aW9uKHVyaSwgcGFyYW1OYW1lKSB7CgkgICAgaWYg KCF1cmkpIHsKCSAgICAgIHJldHVybjsKCSAgICB9CgkgICAgdmFyIHVyaSA9 IHVyaS5zcGxpdCgnIycpWzBdOyAgLy8gUmVtb3ZlIGFuY2hvci4KCSAgICB2 YXIgcGFydHMgPSB1cmkuc3BsaXQoJz8nKTsgIC8vIENoZWNrIGZvciBxdWVy eSBwYXJhbXMuCgkgICAgaWYgKHBhcnRzLmxlbmd0aCA9PSAxKSB7CgkgICAg ICByZXR1cm47CgkgICAgfQoJICAgIHZhciBxdWVyeSA9IGRlY29kZVVSSShw YXJ0c1sxXSk7CgoJICAgIC8vIEZpbmQgdXJsIHBhcmFtLgoJICAgIHBhcmFt TmFtZSArPSAnPSc7CgkgICAgdmFyIHBhcmFtcyA9IHF1ZXJ5LnNwbGl0KCcm Jyk7CgkgICAgZm9yICh2YXIgaSA9IDAsIHBhcmFtOyBwYXJhbSA9IHBhcmFt c1tpXTsgKytpKSB7CgkgICAgICBpZiAocGFyYW0uaW5kZXhPZihwYXJhbU5h bWUpID09PSAwKSB7CgkgICAgICAgIHJldHVybiB1bmVzY2FwZShwYXJhbS5z cGxpdCgnPScpWzFdKTsKCSAgICAgIH0KCSAgICB9CgkgICAgcmV0dXJuOwoJ ICB9OwoJICAKCTwvc2NyaXB0PjwvYm9keT48L2h0bWw+ http_version: '1.1' recorded_at: Tue, 24 Jul 2012 12:07:05 GMT recorded_with: VCR 2.2.3