base64_decode("DQovKg0KICogTXlTUUwgV2ViIEludGVyZmFjZSBWZXJzaW9uIDAuOA0KICogLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQ0KICogRGV2ZWxvcGVkIEJ5IFNvb01pbiBLaW0gKHNta2ltQHBv cGV5ZS5zbnUuYWMua3IpDQogKiBMaWNlbnNlIDogR05VIFB1YmxpYyBMaWNlbnNlIChHUEwpDQog KiBIb21lcGFnZSA6IGh0dHA6Ly9wb3BleWUuc251LmFjLmtyL35zbWtpbS9teXNxbA0KICovDQoN CiRIT1NUTkFNRSA9ICJsb2NhbGhvc3QiOw0KDQpmdW5jdGlvbiBsb2dvbigpIHsNCglnbG9iYWwg JFBIUF9TRUxGOw0KDQoJc2V0Y29va2llKCAibXlzcWxfd2ViX2FkbWluX3VzZXJuYW1lIiApOw0K CXNldGNvb2tpZSggIm15c3FsX3dlYl9hZG1pbl9wYXNzd29yZCIgKTsNCgllY2hvICI8aHRtbD5c biI7DQoJZWNobyAiPGhlYWQ+XG4iOw0KCWVjaG8gIjx0aXRsZT5NeVNRTCBXZWIgSW50ZXJmYWNl PC90aXRsZT5cbiI7DQoJZWNobyAiPC9oZWFkPlxuIjsNCgllY2hvICI8Ym9keT5cbiI7DQoJZWNo byAiPHRhYmxlIHdpZHRoPTEwMCUgaGVpZ2h0PTEwMCU+PHRyPjx0ZD48Y2VudGVyPlxuIjsNCgll Y2hvICI8dGFibGUgY2VsbHBhZGRpbmc9Mj48dHI+PHRkIGJnY29sb3I9I2E0YTI2MD48Y2VudGVy PlxuIjsNCgllY2hvICI8dGFibGUgY2VsbHBhZGRpbmc9MjA+PHRyPjx0ZCBiZ2NvbG9yPSNmZmZm ZmY+PGNlbnRlcj5cbiI7DQoJZWNobyAiPGgxPk15U1FMIFdlYiBJbnRlcmZhY2U8L2gxPlxuIjsN CgllY2hvICI8Zm9ybSBhY3Rpb249JyRQSFBfU0VMRic+XG4iOw0KCWVjaG8gIjxpbnB1dCB0eXBl PWhpZGRlbiBuYW1lPWFjdGlvbiB2YWx1ZT1sb2dvbl9zdWJtaXQ+XG4iOw0KCWVjaG8gIjx0YWJs ZSBjZWxscGFkZGluZz01IGNlbGxzcGFjaW5nPTE+XG4iOw0KCWVjaG8gIjx0cj48dGQ+VXNlcm5h bWUgPC90ZD48dGQ+IDxpbnB1dCB0eXBlPXRleHQgbmFtZT11c2VybmFtZT48L3RkPjwvdHI+XG4i Ow0KCWVjaG8gIjx0cj48dGQ+UGFzc3dvcmQgPC90ZD48dGQ+IDxpbnB1dCB0eXBlPXBhc3N3b3Jk IG5hbWU9cGFzc3dvcmQ+PC90ZD48L3RyPlxuIjsNCgllY2hvICI8L3RhYmxlPjxwPlxuIjsNCgll Y2hvICI8aW5wdXQgdHlwZT1zdWJtaXQgdmFsdWU9J0VudGVyJz5cbiI7DQoJZWNobyAiPGlucHV0 IHR5cGU9cmVzZXQgdmFsdWU9J0NsZWFyJz48YnI+XG4iOw0KCWVjaG8gIjwvZm9ybT5cbiI7DQoJ ZWNobyAiPC9jZW50ZXI+PC90ZD48L3RyPjwvdGFibGU+XG4iOw0KCWVjaG8gIjwvY2VudGVyPjwv dGQ+PC90cj48L3RhYmxlPlxuIjsNCgllY2hvICI8cD48aHIgd2lkdGg9MzAwPlxuIjsNCgllY2hv ICI8Zm9udCBzaXplPTI+XG4iOw0KCWVjaG8gIkNvcHlsZWZ0ICZjb3B5OyBzaW5jZSAxOTk5LFxu IjsNCgllY2hvICI8YSBocmVmPSdtYWlsdG86c21raW03NkBpY3FtYWlsLmNvbSc+U29vTWluIEtp bTwvYT48YnI+XG4iOw0KCWVjaG8gIjxhIGhyZWY9J2h0dHA6Ly9wb3BleWUuc251LmFjLmtyL35z bWtpbS9teXNxbCc+SG9tcGFnZTxhPiBpcyBhdmFpbGFibGU8YnI+IjsNCgllY2hvICI8L2ZvbnQ+ XG4iOw0KCWVjaG8gIjwvY2VudGVyPjwvdGQ+PC90cj48L3RhYmxlPlxuIjsNCgllY2hvICI8L2Jv ZHk+XG4iOw0KCWVjaG8gIjwvaHRtbD5cbiI7DQp9DQoNCmZ1bmN0aW9uIGxvZ29uX3N1Ym1pdCgp IHsNCglnbG9iYWwgJHVzZXJuYW1lLCAkcGFzc3dvcmQsICRQSFBfU0VMRjsNCg0KCXNldGNvb2tp ZSggIm15c3FsX3dlYl9hZG1pbl91c2VybmFtZSIsICR1c2VybmFtZSApOw0KCXNldGNvb2tpZSgg Im15c3FsX3dlYl9hZG1pbl9wYXNzd29yZCIsICRwYXNzd29yZCApOw0KCWVjaG8gIjxodG1sPiI7 DQoJZWNobyAiPGhlYWQ+IjsNCgllY2hvICI8TUVUQSBIVFRQLUVRVUlWPVJlZnJlc2ggQ09OVEVO VD0nMDsgVVJMPSRQSFBfU0VMRj9hY3Rpb249bGlzdERCcyc+IjsNCgllY2hvICI8L2hlYWQ+IjsN CgllY2hvICI8L2h0bWw+IjsNCn0NCg0KZnVuY3Rpb24gZWNob1F1ZXJ5UmVzdWx0KCkgew0KCWds b2JhbCAkcXVlcnlTdHIsICRlcnJNc2c7DQoNCglpZiggJGVyck1zZyA9PSAiIiApICRlcnJNc2cg PSAiU3VjY2VzcyI7DQoJaWYoICRxdWVyeVN0ciAhPSAiIiApIHsNCgkJZWNobyAiPHRhYmxlIGNl bGxwYWRkaW5nPTU+XG4iOw0KCQllY2hvICI8dHI+PHRkPlF1ZXJ5PC90ZD48dGQ+JHF1ZXJ5U3Ry PC90ZD48L3RyPlxuIjsNCgkJZWNobyAiPHRyPjx0ZD5SZXN1bHQ8L3RkPjx0ZD4kZXJyTXNnPC90 ZD48L3RyPlxuIjsNCgkJZWNobyAiPC90YWJsZT48cD5cbiI7DQoJfQ0KfQ0KDQpmdW5jdGlvbiBs aXN0RGF0YWJhc2VzKCkgew0KCWdsb2JhbCAkbXlzcWxIYW5kbGUsICRQSFBfU0VMRjsNCg0KCWVj aG8gIjxoMT5EYXRhYmFzZSBMaXN0PC9oMT5cbiI7DQoNCgllY2hvICI8Zm9ybSBhY3Rpb249JyRQ SFBfU0VMRic+XG4iOw0KCWVjaG8gIjxpbnB1dCB0eXBlPWhpZGRlbiBuYW1lPWFjdGlvbiB2YWx1 ZT1jcmVhdGVEQj5cbiI7DQoJZWNobyAiPGlucHV0IHR5cGU9dGV4dCBuYW1lPWRibmFtZT5cbiI7 DQoJZWNobyAiPGlucHV0IHR5cGU9c3VibWl0IHZhbHVlPSdDcmVhdGUgRGF0YWJhc2UnPlxuIjsN CgllY2hvICI8L2Zvcm0+XG4iOw0KCWVjaG8gIjxocj5cbiI7DQoNCgllY2hvICI8dGFibGUgY2Vs bHNwYWNpbmc9MSBjZWxscGFkZGluZz01PlxuIjsNCg0KCSRwREIgPSBteXNxbF9saXN0X2Ricygg JG15c3FsSGFuZGxlICk7DQoJJG51bSA9IG15c3FsX251bV9yb3dzKCAkcERCICk7DQoJZm9yKCAk aSA9IDA7ICRpIDwgJG51bTsgJGkrKyApIHsNCgkJJGRibmFtZSA9IG15c3FsX2RibmFtZSggJHBE QiwgJGkgKTsNCgkJZWNobyAiPHRyPlxuIjsNCgkJZWNobyAiPHRkPiRkYm5hbWU8L3RkPlxuIjsN CgkJZWNobyAiPHRkPjxhIGhyZWY9JyRQSFBfU0VMRj9hY3Rpb249bGlzdFRhYmxlcyZkYm5hbWU9 JGRibmFtZSc+VGFibGU8L2E+PC90ZD5cbiI7DQoJCWVjaG8gIjx0ZD48YSBocmVmPSckUEhQX1NF TEY/YWN0aW9uPWRyb3BEQiZkYm5hbWU9JGRibmFtZScgb25DbGljaz1cInJldHVybiBjb25maXJt KCdEcm9wIERhdGFiYXNlIFwnJGRibmFtZVwnPycpXCI+RHJvcDwvYT48L3RkPlxuIjsNCgkJZWNo byAiPHRkPjxhIGhyZWY9JyRQSFBfU0VMRj9hY3Rpb249ZHVtcERCJmRibmFtZT0kZGJuYW1lJz5E dW1wPC9hPjwvdGQ+XG4iOw0KCQllY2hvICI8L3RyPlxuIjsNCgl9DQoJZWNobyAiPC90YWJsZT5c biI7DQp9DQoNCmZ1bmN0aW9uIGNyZWF0ZURhdGFiYXNlKCkgew0KCWdsb2JhbCAkbXlzcWxIYW5k bGUsICRkYm5hbWUsICRQSFBfU0VMRjsNCg0KCW15c3FsX2NyZWF0ZV9kYiggJGRibmFtZSwgJG15 c3FsSGFuZGxlICk7DQoJbGlzdERhdGFiYXNlcygpOw0KfQ0KDQpmdW5jdGlvbiBkcm9wRGF0YWJh c2UoKSB7DQoJZ2xvYmFsICRteXNxbEhhbmRsZSwgJGRibmFtZSwgJFBIUF9TRUxGOw0KDQoJbXlz cWxfZHJvcF9kYiggJGRibmFtZSwgJG15c3FsSGFuZGxlICk7DQoJbGlzdERhdGFiYXNlcygpOw0K fQ0KDQpmdW5jdGlvbiBsaXN0VGFibGVzKCkgew0KCWdsb2JhbCAkbXlzcWxIYW5kbGUsICRkYm5h bWUsICRQSFBfU0VMRjsNCg0KCWVjaG8gIjxoMT5UYWJsZSBMaXN0PC9oMT5cbiI7DQoJZWNobyAi PHAgY2xhc3M9bG9jYXRpb24+JGRibmFtZTwvcD5cbiI7DQoJZWNob1F1ZXJ5UmVzdWx0KCk7DQoJ ZWNobyAiPGZvcm0gYWN0aW9uPSckUEhQX1NFTEYnPlxuIjsNCgllY2hvICI8aW5wdXQgdHlwZT1o aWRkZW4gbmFtZT1hY3Rpb24gdmFsdWU9Y3JlYXRlVGFibGU+XG4iOw0KCWVjaG8gIjxpbnB1dCB0 eXBlPWhpZGRlbiBuYW1lPWRibmFtZSB2YWx1ZT0kZGJuYW1lPlxuIjsNCgllY2hvICI8aW5wdXQg dHlwZT10ZXh0IG5hbWU9dGFibGVuYW1lPlxuIjsNCgllY2hvICI8aW5wdXQgdHlwZT1zdWJtaXQg dmFsdWU9J0NyZWF0ZSBUYWJsZSc+XG4iOw0KCWVjaG8gIjwvZm9ybT5cbiI7DQoJZWNobyAiPGZv cm0gYWN0aW9uPSckUEhQX1NFTEYnPlxuIjsNCgllY2hvICI8aW5wdXQgdHlwZT1oaWRkZW4gbmFt ZT1hY3Rpb24gdmFsdWU9cXVlcnk+XG4iOw0KCWVjaG8gIjxpbnB1dCB0eXBlPWhpZGRlbiBuYW1l PWRibmFtZSB2YWx1ZT0kZGJuYW1lPlxuIjsNCgllY2hvICI8aW5wdXQgdHlwZT10ZXh0IHNpemU9 NDAgbmFtZT1xdWVyeVN0cj5cbiI7DQoJLy9lY2hvICI8dGV4dGFyZWEgY29scz0zMCByb3dzPTMg bmFtZT1xdWVyeVN0cj48L3RleHRhcmVhPjxicj4iOw0KCWVjaG8gIjxpbnB1dCB0eXBlPXN1Ym1p dCB2YWx1ZT0nUXVlcnknPlxuIjsNCgllY2hvICI8L2Zvcm0+XG4iOw0KCWVjaG8gIjxocj5cbiI7 DQoNCgkkcFRhYmxlID0gbXlzcWxfbGlzdF90YWJsZXMoICRkYm5hbWUgKTsNCg0KCWlmKCAkcFRh YmxlID09IDAgKSB7DQoJCSRtc2cgID0gbXlzcWxfZXJyb3IoKTsNCgkJZWNobyAiPGgzPkVycm9y IDogJG1zZzwvaDM+PHA+XG4iOw0KCQlyZXR1cm47DQoJfQ0KCSRudW0gPSBteXNxbF9udW1fcm93 cyggJHBUYWJsZSApOw0KDQoJZWNobyAiPHRhYmxlIGNlbGxzcGFjaW5nPTEgY2VsbHBhZGRpbmc9 NT5cbiI7DQoNCglmb3IoICRpID0gMDsgJGkgPCAkbnVtOyAkaSsrICkgew0KCQkkdGFibGVuYW1l ID0gbXlzcWxfdGFibGVuYW1lKCAkcFRhYmxlLCAkaSApOw0KDQoJCWVjaG8gIjx0cj5cbiI7DQoJ CWVjaG8gIjx0ZD5cbiI7DQoJCWVjaG8gIiR0YWJsZW5hbWVcbiI7DQoJCWVjaG8gIjwvdGQ+XG4i Ow0KCQllY2hvICI8dGQ+XG4iOw0KCQllY2hvICI8YSBocmVmPSckUEhQX1NFTEY/YWN0aW9uPXZp ZXdTY2hlbWEmZGJuYW1lPSRkYm5hbWUmdGFibGVuYW1lPSR0YWJsZW5hbWUnPlNjaGVtYTwvYT5c biI7DQoJCWVjaG8gIjwvdGQ+XG4iOw0KCQllY2hvICI8dGQ+XG4iOw0KCQllY2hvICI8YSBocmVm PSckUEhQX1NFTEY/YWN0aW9uPXZpZXdEYXRhJmRibmFtZT0kZGJuYW1lJnRhYmxlbmFtZT0kdGFi bGVuYW1lJz5EYXRhPC9hPlxuIjsNCgkJZWNobyAiPC90ZD5cbiI7DQoJCWVjaG8gIjx0ZD5cbiI7 DQoJCWVjaG8gIjxhIGhyZWY9JyRQSFBfU0VMRj9hY3Rpb249ZHJvcFRhYmxlJmRibmFtZT0kZGJu YW1lJnRhYmxlbmFtZT0kdGFibGVuYW1lJyBvbkNsaWNrPVwicmV0dXJuIGNvbmZpcm0oJ0Ryb3Ag RGF0YWJhc2UgXCckZGJuYW1lXCc/JylcIj5Ecm9wPC9hPlxuIjsNCgkJZWNobyAiPC90ZD5cbiI7 DQoJCWVjaG8gIjx0ZD5cbiI7DQoJCWVjaG8gIjxhIGhyZWY9JyRQSFBfU0VMRj9hY3Rpb249ZHVt cFRhYmxlJmRibmFtZT0kZGJuYW1lJnRhYmxlbmFtZT0kdGFibGVuYW1lJz5EdW1wPC9hPlxuIjsN CgkJZWNobyAiPC90ZD5cbiI7DQoJCWVjaG8gIjwvdHI+XG4iOw0KCX0NCg0KCWVjaG8gIjwvdGFi bGU+IjsNCn0NCg0KZnVuY3Rpb24gY3JlYXRlVGFibGUoKSB7DQoJZ2xvYmFsICRteXNxbEhhbmRs ZSwgJGRibmFtZSwgJHRhYmxlbmFtZSwgJFBIUF9TRUxGLCAkcXVlcnlTdHIsICRlcnJNc2c7DQoN CgkkcXVlcnlTdHIgPSAiQ1JFQVRFIFRBQkxFICR0YWJsZW5hbWUgKCBubyBJTlQgKSI7DQoJbXlz cWxfc2VsZWN0X2RiKCAkZGJuYW1lLCAkbXlzcWxIYW5kbGUgKTsNCglteXNxbF9xdWVyeSggJHF1 ZXJ5U3RyLCAkbXlzcWxIYW5kbGUgKTsNCgkkZXJyTXNnID0gbXlzcWxfZXJyb3IoKTsNCg0KCWxp c3RUYWJsZXMoKTsNCn0NCg0KZnVuY3Rpb24gZHJvcFRhYmxlKCkgew0KCWdsb2JhbCAkbXlzcWxI YW5kbGUsICRkYm5hbWUsICR0YWJsZW5hbWUsICRQSFBfU0VMRiwgJHF1ZXJ5U3RyLCAkZXJyTXNn Ow0KDQoJJHF1ZXJ5U3RyID0gIkRST1AgVEFCTEUgJHRhYmxlbmFtZSI7DQoJbXlzcWxfc2VsZWN0 X2RiKCAkZGJuYW1lLCAkbXlzcWxIYW5kbGUgKTsNCglteXNxbF9xdWVyeSggJHF1ZXJ5U3RyLCAk bXlzcWxIYW5kbGUgKTsNCgkkZXJyTXNnID0gbXlzcWxfZXJyb3IoKTsNCg0KCWxpc3RUYWJsZXMo KTsNCn0NCg0KZnVuY3Rpb24gdmlld1NjaGVtYSgpIHsNCglnbG9iYWwgJG15c3FsSGFuZGxlLCAk ZGJuYW1lLCAkdGFibGVuYW1lLCAkUEhQX1NFTEYsICRxdWVyeVN0ciwgJGVyck1zZzsNCg0KCWVj aG8gIjxoMT5UYWJsZSBTY2hlbWE8L2gxPlxuIjsNCgllY2hvICI8cCBjbGFzcz1sb2NhdGlvbj4k ZGJuYW1lICZndDsgJHRhYmxlbmFtZTwvcD5cbiI7DQoNCgllY2hvUXVlcnlSZXN1bHQoKTsNCg0K CWVjaG8gIjxhIGhyZWY9JyRQSFBfU0VMRj9hY3Rpb249YWRkRmllbGQmZGJuYW1lPSRkYm5hbWUm dGFibGVuYW1lPSR0YWJsZW5hbWUnPkFkZCBGaWVsZDwvYT4gfCBcbiI7DQoJZWNobyAiPGEgaHJl Zj0nJFBIUF9TRUxGP2FjdGlvbj12aWV3RGF0YSZkYm5hbWU9JGRibmFtZSZ0YWJsZW5hbWU9JHRh YmxlbmFtZSc+VmlldyBEYXRhPC9hPlxuIjsNCgllY2hvICI8aHI+XG4iOw0KDQoJJHBSZXN1bHQg PSBteXNxbF9kYl9xdWVyeSggJGRibmFtZSwgIlNIT1cgZmllbGRzIEZST00gJHRhYmxlbmFtZSIg KTsNCgkkbnVtID0gbXlzcWxfbnVtX3Jvd3MoICRwUmVzdWx0ICk7DQoNCgllY2hvICI8dGFibGUg Y2VsbHNwYWNpbmc9MSBjZWxscGFkZGluZz01PlxuIjsNCgllY2hvICI8dHI+XG4iOw0KCWVjaG8g Ijx0aD5GaWVsZDwvdGg+XG4iOw0KCWVjaG8gIjx0aD5UeXBlPC90aD5cbiI7DQoJZWNobyAiPHRo Pk51bGw8L3RoPlxuIjsNCgllY2hvICI8dGg+S2V5PC90aD5cbiI7DQoJZWNobyAiPHRoPkRlZmF1 bHQ8L3RoPlxuIjsNCgllY2hvICI8dGg+RXh0cmE8L3RoPlxuIjsNCgllY2hvICI8dGggY29sc3Bh bj0yPkFjdGlvbjwvdGg+XG4iOw0KCWVjaG8gIjwvdHI+XG4iOw0KDQoJZm9yKCAkaSA9IDA7ICRp IDwgJG51bTsgJGkrKyApIHsNCgkJJGZpZWxkID0gbXlzcWxfZmV0Y2hfYXJyYXkoICRwUmVzdWx0 ICk7DQoJCWVjaG8gIjx0cj5cbiI7DQoJCWVjaG8gIjx0ZD4iLiRmaWVsZFsiRmllbGQiXS4iPC90 ZD5cbiI7DQoJCWVjaG8gIjx0ZD4iLiRmaWVsZFsiVHlwZSJdLiI8L3RkPlxuIjsNCgkJZWNobyAi PHRkPiIuJGZpZWxkWyJOdWxsIl0uIjwvdGQ+XG4iOw0KCQllY2hvICI8dGQ+Ii4kZmllbGRbIktl eSJdLiI8L3RkPlxuIjsNCgkJZWNobyAiPHRkPiIuJGZpZWxkWyJEZWZhdWx0Il0uIjwvdGQ+XG4i Ow0KCQllY2hvICI8dGQ+Ii4kZmllbGRbIkV4dHJhIl0uIjwvdGQ+XG4iOw0KCQkkZmllbGRuYW1l ID0gJGZpZWxkWyJGaWVsZCJdOw0KCQllY2hvICI8dGQ+PGEgaHJlZj0nJFBIUF9TRUxGP2FjdGlv bj1lZGl0RmllbGQmZGJuYW1lPSRkYm5hbWUmdGFibGVuYW1lPSR0YWJsZW5hbWUmZmllbGRuYW1l PSRmaWVsZG5hbWUnPkVkaXQ8L2E+PC90ZD5cbiI7DQoJCWVjaG8gIjx0ZD48YSBocmVmPSckUEhQ X1NFTEY/YWN0aW9uPWRyb3BGaWVsZCZkYm5hbWU9JGRibmFtZSZ0YWJsZW5hbWU9JHRhYmxlbmFt ZSZmaWVsZG5hbWU9JGZpZWxkbmFtZScgb25DbGljaz1cInJldHVybiBjb25maXJtKCdEcm9wIEZp ZWxkIFwnJGZpZWxkbmFtZVwnPycpXCI+RHJvcDwvYT48L3RkPlxuIjsNCgkJZWNobyAiPC90cj5c biI7DQoJfQ0KCWVjaG8gIjwvdGFibGU+XG4iOw0KfQ0KDQpmdW5jdGlvbiBtYW5hZ2VGaWVsZCgg JGNtZCApIHsNCglnbG9iYWwgJG15c3FsSGFuZGxlLCAkZGJuYW1lLCAkdGFibGVuYW1lLCAkZmll bGRuYW1lLCAkUEhQX1NFTEY7DQoNCglpZiggJGNtZCA9PSAiYWRkIiApDQoJCWVjaG8gIjxoMT5B ZGQgRmllbGQ8L2gxPlxuIjsNCgllbHNlIGlmKCAkY21kID09ICJlZGl0IiApIHsNCgkJZWNobyAi PGgxPkVkaXQgRmllbGQ8L2gxPlxuIjsNCgkJJHBSZXN1bHQgPSBteXNxbF9kYl9xdWVyeSggJGRi bmFtZSwgIlNIT1cgZmllbGRzIEZST00gJHRhYmxlbmFtZSIgKTsNCgkJJG51bSA9IG15c3FsX251 bV9yb3dzKCAkcFJlc3VsdCApOw0KCQlmb3IoICRpID0gMDsgJGkgPCAkbnVtOyAkaSsrICkgew0K CQkJJGZpZWxkID0gbXlzcWxfZmV0Y2hfYXJyYXkoICRwUmVzdWx0ICk7DQoJCQlpZiggJGZpZWxk WyJGaWVsZCJdID09ICRmaWVsZG5hbWUgKSB7DQoJCQkJJGZpZWxkdHlwZSA9ICRmaWVsZFsiVHlw ZSJdOw0KCQkJCSRmaWVsZGtleSA9ICRmaWVsZFsiS2V5Il07DQoJCQkJJGZpZWxkZXh0cmEgPSAk ZmllbGRbIkV4dHJhIl07DQoJCQkJJGZpZWxkbnVsbCA9ICRmaWVsZFsiTnVsbCJdOw0KCQkJCSRm aWVsZGRlZmF1bHQgPSAkZmllbGRbIkRlZmF1bHQiXTsNCgkJCQlicmVhazsNCgkJCX0NCgkJfQ0K CQkkdHlwZSA9IHN0cnRvayggJGZpZWxkdHlwZSwgIiAoLClcbiIgKTsNCgkJaWYoIHN0cnBvcygg JGZpZWxkdHlwZSwgIigiICkgKSB7DQoJCQlpZiggJHR5cGUgPT0gImVudW0iIHwgJHR5cGUgPT0g InNldCIgKSB7DQoJCQkJJHZhbHVlbGlzdCA9IHN0cnRvayggIiAoKVxuIiApOw0KCQkJfSBlbHNl IHsNCgkJCQkkTSA9IHN0cnRvayggIiAoLClcbiIgKTsNCgkJCQlpZiggc3RycG9zKCAkZmllbGR0 eXBlLCAiLCIgKSApDQoJCQkJCSREID0gc3RydG9rKCAiICgsKVxuIiApOw0KCQkJfQ0KCQl9DQoJ fQ0KDQoJZWNobyAiPHAgY2xhc3M9bG9jYXRpb24+JGRibmFtZSAmZ3Q7ICR0YWJsZW5hbWU8L3A+ XG4iOw0KCWVjaG8gIjxmb3JtIGFjdGlvbj0kUEhQX1NFTEY+XG4iOw0KDQoJaWYoICRjbWQgPT0g ImFkZCIgKQ0KCQllY2hvICI8aW5wdXQgdHlwZT1oaWRkZW4gbmFtZT1hY3Rpb24gdmFsdWU9YWRk RmllbGRfc3VibWl0PlxuIjsNCgllbHNlIGlmKCAkY21kID09ICJlZGl0IiApIHsNCgkJZWNobyAi PGlucHV0IHR5cGU9aGlkZGVuIG5hbWU9YWN0aW9uIHZhbHVlPWVkaXRGaWVsZF9zdWJtaXQ+XG4i Ow0KCQllY2hvICI8aW5wdXQgdHlwZT1oaWRkZW4gbmFtZT1vbGRfbmFtZSB2YWx1ZT0kZmllbGRu YW1lPlxuIjsNCgl9DQoJZWNobyAiPGlucHV0IHR5cGU9aGlkZGVuIG5hbWU9ZGJuYW1lIHZhbHVl PSRkYm5hbWU+XG4iOw0KCWVjaG8gIjxpbnB1dCB0eXBlPWhpZGRlbiBuYW1lPXRhYmxlbmFtZSB2 YWx1ZT0kdGFibGVuYW1lPlxuIjsNCg0KCWVjaG8gIjxoMz5OYW1lPC9oMz5cbiI7DQoJZWNobyAi PGlucHV0IHR5cGU9dGV4dCBuYW1lPW5hbWUgdmFsdWU9JGZpZWxkbmFtZT48cD5cbiI7DQo/Pg0K DQo8aDM+VHlwZTwvaDM+DQoNCjxmb250IHNpemU9Mj4NCiogYE0nIGluZGljYXRlcyB0aGUgbWF4 aW11bSBkaXNwbGF5IHNpemUuPGJyPg0KKiBgRCcgYXBwbGllcyB0byBmbG9hdGluZy1wb2ludCB0 eXBlcyBhbmQgaW5kaWNhdGVzIHRoZSBudW1iZXIgb2YgZGlnaXRzIGZvbGxvd2luZyB0aGUgZGVj aW1hbCBwb2ludC48YnI+DQo8L2ZvbnQ+DQoNCjx0YWJsZT4NCjx0cj4NCjx0aD5UeXBlPC90aD48 dGg+Jm5ic3BNJm5ic3A8L3RoPjx0aD4mbmJzcEQmbmJzcDwvdGg+PHRoPnVuc2lnbmVkPC90aD48 dGg+emVyb2ZpbGw8L3RoPjx0aD5iaW5hcnk8L3RoPg0KPC90cj4NCjx0cj4NCjx0ZD48aW5wdXQg dHlwZT1yYWRpbyBuYW1lPXR5cGUgdmFsdWU9IlRJTllJTlQiIDw/IGlmKCAkdHlwZSA9PSAidGlu eWludCIgKSBlY2hvICJjaGVja2VkIjs/Pj5USU5ZSU5UICgtMTI4IH4gMTI3KTwvdGQ+DQo8dGQg YWxpZ249Y2VudGVyPk88L3RkPg0KPHRkPiZuYnNwPC90ZD4NCjx0ZCBhbGlnbj1jZW50ZXI+Tzwv dGQ+DQo8dGQgYWxpZ249Y2VudGVyPk88L3RkPg0KPHRkPiZuYnNwPC90ZD4NCjwvdHI+DQo8dHI+ DQo8dGQ+PGlucHV0IHR5cGU9cmFkaW8gbmFtZT10eXBlIHZhbHVlPSJTTUFMTElOVCIgPD8gaWYo ICR0eXBlID09ICJzbWFsbGludCIgKSBlY2hvICJjaGVja2VkIjs/Pj5TTUFMTElOVCAoLTMyNzY4 IH4gMzI3NjcpPC90ZD4NCjx0ZCBhbGlnbj1jZW50ZXI+TzwvdGQ+DQo8dGQ+Jm5ic3A8L3RkPg0K PHRkIGFsaWduPWNlbnRlcj5PPC90ZD4NCjx0ZCBhbGlnbj1jZW50ZXI+TzwvdGQ+DQo8dGQ+Jm5i c3A8L3RkPg0KPC90cj4NCjx0cj4NCjx0ZD48aW5wdXQgdHlwZT1yYWRpbyBuYW1lPXR5cGUgdmFs dWU9Ik1FRElVTUlOVCIgPD8gaWYoICR0eXBlID09ICJtZWRpdW1pbnQiICkgZWNobyAiY2hlY2tl ZCI7Pz4+TUVESVVNSU5UICgtODM4ODYwOCB+IDgzODg2MDcpPC90ZD4NCjx0ZCBhbGlnbj1jZW50 ZXI+TzwvdGQ+DQo8dGQ+Jm5ic3A8L3RkPg0KPHRkIGFsaWduPWNlbnRlcj5PPC90ZD4NCjx0ZCBh bGlnbj1jZW50ZXI+TzwvdGQ+DQo8dGQ+Jm5ic3A8L3RkPg0KPC90cj4NCjx0cj4NCjx0ZD48aW5w dXQgdHlwZT1yYWRpbyBuYW1lPXR5cGUgdmFsdWU9IklOVCIgPD8gaWYoICR0eXBlID09ICJpbnQi ICkgZWNobyAiY2hlY2tlZCI7Pz4+SU5UICgtMjE0NzQ4MzY0OCB+IDIxNDc0ODM2NDcpPC90ZD4N Cjx0ZCBhbGlnbj1jZW50ZXI+TzwvdGQ+DQo8dGQ+Jm5ic3A8L3RkPg0KPHRkIGFsaWduPWNlbnRl cj5PPC90ZD4NCjx0ZCBhbGlnbj1jZW50ZXI+TzwvdGQ+DQo8dGQ+Jm5ic3A8L3RkPg0KPC90cj4N Cjx0cj4NCjx0ZD48aW5wdXQgdHlwZT1yYWRpbyBuYW1lPXR5cGUgdmFsdWU9IkJJR0lOVCIgPD8g aWYoICR0eXBlID09ICJiaWdpbnQiICkgZWNobyAiY2hlY2tlZCI7Pz4+QklHSU5UICgtOTIyMzM3 MjAzNjg1NDc3NTgwOCB+IDkyMjMzNzIwMzY4NTQ3NzU4MDcpPC90ZD4NCjx0ZCBhbGlnbj1jZW50 ZXI+TzwvdGQ+DQo8dGQ+Jm5ic3A8L3RkPg0KPHRkIGFsaWduPWNlbnRlcj5PPC90ZD4NCjx0ZCBh bGlnbj1jZW50ZXI+TzwvdGQ+DQo8dGQ+Jm5ic3A8L3RkPg0KPC90cj4NCjx0cj4NCjx0ZD48aW5w dXQgdHlwZT1yYWRpbyBuYW1lPXR5cGUgdmFsdWU9IkZMT0FUIiA8PyBpZiggJHR5cGUgPT0gImZs b2F0IiApIGVjaG8gImNoZWNrZWQiOz8+PkZMT0FUPC90ZD4NCjx0ZCBhbGlnbj1jZW50ZXI+Tzwv dGQ+DQo8dGQgYWxpZ249Y2VudGVyPk88L3RkPg0KPHRkPiZuYnNwPC90ZD4NCjx0ZCBhbGlnbj1j ZW50ZXI+TzwvdGQ+DQo8dGQ+Jm5ic3A8L3RkPg0KPC90cj4NCjx0cj4NCjx0ZD48aW5wdXQgdHlw ZT1yYWRpbyBuYW1lPXR5cGUgdmFsdWU9IkRPVUJMRSIgPD8gaWYoICR0eXBlID09ICJkb3VibGUi ICkgZWNobyAiY2hlY2tlZCI7Pz4+RE9VQkxFPC90ZD4NCjx0ZCBhbGlnbj1jZW50ZXI+TzwvdGQ+ DQo8dGQgYWxpZ249Y2VudGVyPk88L3RkPg0KPHRkPiZuYnNwPC90ZD4NCjx0ZCBhbGlnbj1jZW50 ZXI+TzwvdGQ+DQo8dGQ+Jm5ic3A8L3RkPg0KPC90cj4NCjx0cj4NCjx0ZD48aW5wdXQgdHlwZT1y YWRpbyBuYW1lPXR5cGUgdmFsdWU9IkRFQ0lNQUwiIDw/IGlmKCAkdHlwZSA9PSAiZGVjaW1hbCIg KSBlY2hvICJjaGVja2VkIjs/Pj5ERUNJTUFMKE5VTUVSSUMpPC90ZD4NCjx0ZCBhbGlnbj1jZW50 ZXI+TzwvdGQ+DQo8dGQgYWxpZ249Y2VudGVyPk88L3RkPg0KPHRkPiZuYnNwPC90ZD4NCjx0ZCBh bGlnbj1jZW50ZXI+TzwvdGQ+DQo8dGQ+Jm5ic3A8L3RkPg0KPC90cj4NCjx0cj4NCjx0ZD48aW5w dXQgdHlwZT1yYWRpbyBuYW1lPXR5cGUgdmFsdWU9IkRBVEUiIDw/IGlmKCAkdHlwZSA9PSAiZGF0 ZSIgKSBlY2hvICJjaGVja2VkIjs/Pj5EQVRFICgxMDAwLTAxLTAxIH4gOTk5OS0xMi0zMSwgWVlZ WS1NTS1ERCk8L3RkPg0KPHRkPiZuYnNwPC90ZD4NCjx0ZD4mbmJzcDwvdGQ+DQo8dGQ+Jm5ic3A8 L3RkPg0KPHRkPiZuYnNwPC90ZD4NCjx0ZD4mbmJzcDwvdGQ+DQo8L3RyPg0KPHRyPg0KPHRkPjxp bnB1dCB0eXBlPXJhZGlvIG5hbWU9dHlwZSB2YWx1ZT0iREFURVRJTUUiIDw/IGlmKCAkdHlwZSA9 PSAiZGF0ZXRpbWUiICkgZWNobyAiY2hlY2tlZCI7Pz4+REFURVRJTUUgKDEwMDAtMDEtMDEgMDA6 MDA6MDAgfiA5OTk5LTEyLTMxIDIzOjU5OjU5LCBZWVlZLU1NLUREIEhIOk1NOlNTKTwvdGQ+DQo8 dGQ+Jm5ic3A8L3RkPg0KPHRkPiZuYnNwPC90ZD4NCjx0ZD4mbmJzcDwvdGQ+DQo8dGQ+Jm5ic3A8 L3RkPg0KPHRkPiZuYnNwPC90ZD4NCjwvdHI+DQo8dHI+DQo8dGQ+PGlucHV0IHR5cGU9cmFkaW8g bmFtZT10eXBlIHZhbHVlPSJUSU1FU1RBTVAiIDw/IGlmKCAkdHlwZSA9PSAidGltZXN0YW1wIiAp IGVjaG8gImNoZWNrZWQiOz8+PlRJTUVTVEFNUCAoMTk3MC0wMS0wMSAwMDowMDowMCB+IDIxMDYu Li4sIFlZWVlNTUREW0hIW01NW1NTXV1dKTwvdGQ+DQo8dGQgYWxpZ249Y2VudGVyPk88L3RkPg0K PHRkPiZuYnNwPC90ZD4NCjx0ZD4mbmJzcDwvdGQ+DQo8dGQ+Jm5ic3A8L3RkPg0KPHRkPiZuYnNw PC90ZD4NCjwvdHI+DQo8dHI+DQo8dGQ+PGlucHV0IHR5cGU9cmFkaW8gbmFtZT10eXBlIHZhbHVl PSJUSU1FIiA8PyBpZiggJHR5cGUgPT0gInRpbWUiICkgZWNobyAiY2hlY2tlZCI7Pz4+VElNRSAo LTgzODo1OTo1OSB+IDgzODo1OTo1OSwgSEg6TU06U1MpPC90ZD4NCjx0ZD4mbmJzcDwvdGQ+DQo8 dGQ+Jm5ic3A8L3RkPg0KPHRkPiZuYnNwPC90ZD4NCjx0ZD4mbmJzcDwvdGQ+DQo8dGQ+Jm5ic3A8 L3RkPg0KPC90cj4NCjx0cj4NCjx0ZD48aW5wdXQgdHlwZT1yYWRpbyBuYW1lPXR5cGUgdmFsdWU9 IllFQVIiIDw/IGlmKCAkdHlwZSA9PSAieWVhciIgKSBlY2hvICJjaGVja2VkIjs/Pj5ZRUFSICgx OTAxIH4gMjE1NSwgMDAwMCwgWVlZWSk8L3RkPg0KPHRkPiZuYnNwPC90ZD4NCjx0ZD4mbmJzcDwv dGQ+DQo8dGQ+Jm5ic3A8L3RkPg0KPHRkPiZuYnNwPC90ZD4NCjx0ZD4mbmJzcDwvdGQ+DQo8L3Ry Pg0KPHRyPg0KPHRkPjxpbnB1dCB0eXBlPXJhZGlvIG5hbWU9dHlwZSB2YWx1ZT0iQ0hBUiIgPD8g aWYoICR0eXBlID09ICJjaGFyIiApIGVjaG8gImNoZWNrZWQiOz8+PkNIQVI8L3RkPg0KPHRkIGFs aWduPWNlbnRlcj5PPC90ZD4NCjx0ZD4mbmJzcDwvdGQ+DQo8dGQ+Jm5ic3A8L3RkPg0KPHRkPiZu YnNwPC90ZD4NCjx0ZCBhbGlnbj1jZW50ZXI+TzwvdGQ+DQo8L3RyPg0KPHRyPg0KPHRkPjxpbnB1 dCB0eXBlPXJhZGlvIG5hbWU9dHlwZSB2YWx1ZT0iVkFSQ0hBUiIgPD8gaWYoICR0eXBlID09ICJ2 YXJjaGFyIiApIGVjaG8gImNoZWNrZWQiOz8+PlZBUkNIQVI8L3RkPg0KPHRkIGFsaWduPWNlbnRl cj5PPC90ZD4NCjx0ZD4mbmJzcDwvdGQ+DQo8dGQ+Jm5ic3A8L3RkPg0KPHRkPiZuYnNwPC90ZD4N Cjx0ZCBhbGlnbj1jZW50ZXI+TzwvdGQ+DQo8L3RyPg0KPHRyPg0KPHRkPjxpbnB1dCB0eXBlPXJh ZGlvIG5hbWU9dHlwZSB2YWx1ZT0iVElOWVRFWFQiIDw/IGlmKCAkdHlwZSA9PSAidGlueXRleHQi ICkgZWNobyAiY2hlY2tlZCI7Pz4+VElOWVRFWFQgKDAgfiAyNTUpPC90ZD4NCjx0ZD4mbmJzcDwv dGQ+DQo8dGQ+Jm5ic3A8L3RkPg0KPHRkPiZuYnNwPC90ZD4NCjx0ZD4mbmJzcDwvdGQ+DQo8dGQ+ Jm5ic3A8L3RkPg0KPC90cj4NCjx0cj4NCjx0ZD48aW5wdXQgdHlwZT1yYWRpbyBuYW1lPXR5cGUg dmFsdWU9IlRFWFQiIDw/IGlmKCAkdHlwZSA9PSAidGV4dCIgKSBlY2hvICJjaGVja2VkIjs/Pj5U RVhUICgwIH4gNjU1MzUpPC90ZD4NCjx0ZD4mbmJzcDwvdGQ+DQo8dGQ+Jm5ic3A8L3RkPg0KPHRk PiZuYnNwPC90ZD4NCjx0ZD4mbmJzcDwvdGQ+DQo8dGQ+Jm5ic3A8L3RkPg0KPC90cj4NCjx0cj4N Cjx0ZD48aW5wdXQgdHlwZT1yYWRpbyBuYW1lPXR5cGUgdmFsdWU9Ik1FRElVTVRFWFQiIDw/IGlm KCAkdHlwZSA9PSAibWVkaXVtdGV4dCIgKSBlY2hvICJjaGVja2VkIjs/Pj5NRURJVU1URVhUICgw IH4gMTY3NzcyMTUpPC90ZD4NCjx0ZD4mbmJzcDwvdGQ+DQo8dGQ+Jm5ic3A8L3RkPg0KPHRkPiZu YnNwPC90ZD4NCjx0ZD4mbmJzcDwvdGQ+DQo8dGQ+Jm5ic3A8L3RkPg0KPC90cj4NCjx0cj4NCjx0 ZD48aW5wdXQgdHlwZT1yYWRpbyBuYW1lPXR5cGUgdmFsdWU9IkxPTkdURVhUIiA8PyBpZiggJHR5 cGUgPT0gImxvbmd0ZXh0IiApIGVjaG8gImNoZWNrZWQiOz8+PkxPTkdURVhUICgwIH4gNDI5NDk2 NzI5NSk8L3RkPg0KPHRkPiZuYnNwPC90ZD4NCjx0ZD4mbmJzcDwvdGQ+DQo8dGQ+Jm5ic3A8L3Rk Pg0KPHRkPiZuYnNwPC90ZD4NCjx0ZD4mbmJzcDwvdGQ+DQo8L3RyPg0KPHRyPg0KPHRkPjxpbnB1 dCB0eXBlPXJhZGlvIG5hbWU9dHlwZSB2YWx1ZT0iVElOWUJMT0IiIDw/IGlmKCAkdHlwZSA9PSAi dGlueWJsb2IiICkgZWNobyAiY2hlY2tlZCI7Pz4+VElOWUJMT0IgKDAgfiAyNTUpPC90ZD4NCjx0 ZD4mbmJzcDwvdGQ+DQo8dGQ+Jm5ic3A8L3RkPg0KPHRkPiZuYnNwPC90ZD4NCjx0ZD4mbmJzcDwv dGQ+DQo8dGQ+Jm5ic3A8L3RkPg0KPC90cj4NCjx0cj4NCjx0ZD48aW5wdXQgdHlwZT1yYWRpbyBu YW1lPXR5cGUgdmFsdWU9IkJMT0IiIDw/IGlmKCAkdHlwZSA9PSAiYmxvYiIgKSBlY2hvICJjaGVj a2VkIjs/Pj5CTE9CICgwIH4gNjU1MzUpPC90ZD4NCjx0ZD4mbmJzcDwvdGQ+DQo8dGQ+Jm5ic3A8 L3RkPg0KPHRkPiZuYnNwPC90ZD4NCjx0ZD4mbmJzcDwvdGQ+DQo8dGQ+Jm5ic3A8L3RkPg0KPC90 cj4NCjx0cj4NCjx0ZD48aW5wdXQgdHlwZT1yYWRpbyBuYW1lPXR5cGUgdmFsdWU9Ik1FRElVTUJM T0IiIDw/IGlmKCAkdHlwZSA9PSAibWVkaXVtYmxvYiIgKSBlY2hvICJjaGVja2VkIjs/Pj5NRURJ VU1CTE9CICgwIH4gMTY3NzcyMTUpPC90ZD4NCjx0ZD4mbmJzcDwvdGQ+DQo8dGQ+Jm5ic3A8L3Rk Pg0KPHRkPiZuYnNwPC90ZD4NCjx0ZD4mbmJzcDwvdGQ+DQo8dGQ+Jm5ic3A8L3RkPg0KPC90cj4N Cjx0cj4NCjx0ZD48aW5wdXQgdHlwZT1yYWRpbyBuYW1lPXR5cGUgdmFsdWU9IkxPTkdCTE9CIiA8 PyBpZiggJHR5cGUgPT0gImxvbmdibG9iIiApIGVjaG8gImNoZWNrZWQiOz8+PkxPTkdCTE9CICgw IH4gNDI5NDk2NzI5NSk8L3RkPg0KPHRkPiZuYnNwPC90ZD4NCjx0ZD4mbmJzcDwvdGQ+DQo8dGQ+ Jm5ic3A8L3RkPg0KPHRkPiZuYnNwPC90ZD4NCjx0ZD4mbmJzcDwvdGQ+DQo8L3RyPg0KPHRyPg0K PHRkPjxpbnB1dCB0eXBlPXJhZGlvIG5hbWU9dHlwZSB2YWx1ZT0iRU5VTSIgPD8gaWYoICR0eXBl ID09ICJlbnVtIiApIGVjaG8gImNoZWNrZWQiOz8+PkVOVU08L3RkPg0KPHRkIGNvbHNwYW49NT48 Y2VudGVyPnZhbHVlIGxpc3Q8L2NlbnRlcj48L3RkPg0KPC90cj4NCjx0cj4NCjx0ZD48aW5wdXQg dHlwZT1yYWRpbyBuYW1lPXR5cGUgdmFsdWU9IlNFVCIgPD8gaWYoICR0eXBlID09ICJzZXQiICkg ZWNobyAiY2hlY2tlZCI7Pz4+U0VUPC90ZD4NCjx0ZCBjb2xzcGFuPTU+PGNlbnRlcj52YWx1ZSBs aXN0PC9jZW50ZXI+PC90ZD4NCjwvdHI+DQoNCjwvdGFibGU+DQo8dGFibGU+DQo8dHI+PHRoPk08 L3RoPjx0aD5EPC90aD48dGg+dW5zaWduZWQ8L3RoPjx0aD56ZXJvZmlsbDwvdGg+PHRoPmJpbmFy eTwvdGg+PHRoPnZhbHVlIGxpc3QgKGV4OiAnYXBwbGUnLCAnb3JhbmdlJywgJ2JhbmFuYScpIDwv dGg+PC90cj4NCjx0cj4NCjx0ZCBhbGlnbj1jZW50ZXI+PGlucHV0IHR5cGU9dGV4dCBzaXplPTQg bmFtZT1NIDw/IGlmKCAkTSAhPSAiIiApIGVjaG8gInZhbHVlPSRNIjs/Pj48L3RkPg0KPHRkIGFs aWduPWNlbnRlcj48aW5wdXQgdHlwZT10ZXh0IHNpemU9NCBuYW1lPUQgPD8gaWYoICREICE9ICIi ICkgZWNobyAidmFsdWU9JEQiOz8+PjwvdGQ+DQo8dGQgYWxpZ249Y2VudGVyPjxpbnB1dCB0eXBl PWNoZWNrYm94IG5hbWU9dW5zaWduZWQgdmFsdWU9IlVOU0lHTkVEIiA8PyBpZiggc3RycG9zKCAk ZmllbGR0eXBlLCAidW5zaWduZWQiICkgKSBlY2hvICJjaGVja2VkIjs/Pj48L3RkPg0KPHRkIGFs aWduPWNlbnRlcj48aW5wdXQgdHlwZT1jaGVja2JveCBuYW1lPXplcm9maWxsIHZhbHVlPSJaRVJP RklMTCIgPD8gaWYoIHN0cnBvcyggJGZpZWxkdHlwZSwgInplcm9maWxsIiApICkgZWNobyAiY2hl Y2tlZCI7Pz4+PC90ZD4NCjx0ZCBhbGlnbj1jZW50ZXI+PGlucHV0IHR5cGU9Y2hlY2tib3ggbmFt ZT1iaW5hcnkgdmFsdWU9IkJJTkFSWSIgPD8gaWYoIHN0cnBvcyggJGZpZWxkdHlwZSwgImJpbmFy eSIgKSAgKSBlY2hvICJjaGVja2VkIjs/Pj48L3RkPg0KPHRkIGFsaWduPWNlbnRlcj48aW5wdXQg dHlwZT10ZXh0IHNpemU9NjAgbmFtZT12YWx1ZWxpc3QgPD8gaWYoICR2YWx1ZWxpc3QgIT0gIiIg KSBlY2hvICJ2YWx1ZT1cIiR2YWx1ZWxpc3RcIiI7Pz4+PC90ZD4NCjwvdHI+DQo8L3RhYmxlPg0K DQoNCjxoMz5GbGFnczwvaDM+DQo8dGFibGU+DQo8dHI+PHRoPm5vdCBudWxsPC90aD48dGg+ZGVm YXVsdCB2YWx1ZTwvdGg+PHRoPmF1dG8gaW5jcmVtZW50PC90aD48dGg+cHJpbWFyeSBrZXk8L3Ro PjwvdHI+DQo8dHI+DQo8dGQgYWxpZ249Y2VudGVyPjxpbnB1dCB0eXBlPWNoZWNrYm94IG5hbWU9 bm90X251bGwgdmFsdWU9Ik5PVCBOVUxMIiA8PyBpZiggJGZpZWxkbnVsbCAhPSAiWUVTIiApIGVj aG8gImNoZWNrZWQiOz8+PjwvdGQ+DQo8dGQgYWxpZ249Y2VudGVyPjxpbnB1dCB0eXBlPXRleHQg bmFtZT1kZWZhdWx0X3ZhbHVlIDw/IGlmKCAkZmllbGRkZWZhdWx0ICE9ICIiICkgZWNobyAidmFs dWU9JGZpZWxkZGVmYXVsdCI7Pz4+PC90ZD4NCjx0ZCBhbGlnbj1jZW50ZXI+PGlucHV0IHR5cGU9 Y2hlY2tib3ggbmFtZT1hdXRvX2luY3JlbWVudCB2YWx1ZT0iQVVUT19JTkNSRU1FTlQiIDw/IGlm KCAkZmllbGRleHRyYSA9PSAiYXV0b19pbmNyZW1lbnQiICkgZWNobyAiY2hlY2tlZCI7Pz4+PC90 ZD4NCjx0ZCBhbGlnbj1jZW50ZXI+PGlucHV0IHR5cGU9Y2hlY2tib3ggbmFtZT1wcmltYXJ5X2tl eSB2YWx1ZT0iUFJJTUFSWSBLRVkiIDw/IGlmKCAkZmllbGRrZXkgPT0gIlBSSSIgKSBlY2hvICJj aGVja2VkIjs/Pj48L3RkPg0KPC90cj4NCjwvdGFibGU+DQoNCjxwPg0KDQo8Pw0KCWlmKCAkY21k ID09ICJhZGQiICkNCgkJZWNobyAiPGlucHV0IHR5cGU9c3VibWl0IHZhbHVlPSdBZGQgRmllbGQn PlxuIjsNCgllbHNlIGlmKCAkY21kID09ICJlZGl0IiApDQoJCWVjaG8gIjxpbnB1dCB0eXBlPXN1 Ym1pdCB2YWx1ZT0nRWRpdCBGaWVsZCc+XG4iOw0KCWVjaG8gIjxpbnB1dCB0eXBlPWJ1dHRvbiB2 YWx1ZT1DYW5jZWwgb25DbGljaz0naGlzdG9yeS5iYWNrKCknPlxuIjsNCgllY2hvICI8L2Zvcm0+ XG4iOw0KfQ0KDQpmdW5jdGlvbiBtYW5hZ2VGaWVsZF9zdWJtaXQoICRjbWQgKSB7DQoJZ2xvYmFs ICRteXNxbEhhbmRsZSwgJGRibmFtZSwgJHRhYmxlbmFtZSwgJG9sZF9uYW1lLCAkbmFtZSwgJHR5 cGUsICRQSFBfU0VMRiwgJHF1ZXJ5U3RyLCAkZXJyTXNnLA0KCQkkTSwgJEQsICR1bnNpZ25lZCwg JHplcm9maWxsLCAkYmluYXJ5LCAkbm90X251bGwsICRkZWZhdWx0X3ZhbHVlLCAkYXV0b19pbmNy ZW1lbnQsICRwcmltYXJ5X2tleSwgJHZhbHVlbGlzdDsNCg0KCWlmKCAkY21kID09ICJhZGQiICkN CgkJJHF1ZXJ5U3RyID0gIkFMVEVSIFRBQkxFICR0YWJsZW5hbWUgQUREICRuYW1lICI7DQoJZWxz ZSBpZiggJGNtZCA9PSAiZWRpdCIgKQ0KCQkkcXVlcnlTdHIgPSAiQUxURVIgVEFCTEUgJHRhYmxl bmFtZSBDSEFOR0UgJG9sZF9uYW1lICRuYW1lICI7DQoNCglpZiggJE0gIT0gIiIgKQ0KCQlpZigg JEQgIT0gIiIgKQ0KCQkJJHF1ZXJ5U3RyIC49ICIkdHlwZSgkTSwkRCkgIjsNCgkJZWxzZQ0KCQkJ JHF1ZXJ5U3RyIC49ICIkdHlwZSgkTSkgIjsNCgllbHNlIGlmKCAkdmFsdWVsaXN0ICE9ICIiICkg ew0KCQkkdmFsdWVsaXN0ID0gc3RyaXBzbGFzaGVzKCAkdmFsdWVsaXN0ICk7DQoJCSRxdWVyeVN0 ciAuPSAiJHR5cGUoJHZhbHVlbGlzdCkgIjsNCgl9IGVsc2UNCgkJJHF1ZXJ5U3RyIC49ICIkdHlw ZSAiOw0KDQoJJHF1ZXJ5U3RyIC49ICIkdW5zaWduZWQgJHplcm9maWxsICRiaW5hcnkgIjsNCg0K CWlmKCAkZGVmYXVsdF92YWx1ZSAhPSAiIiApDQoJCSRxdWVyeVN0ciAuPSAiREVGQVVMVCAnJGRl ZmF1bHRfdmFsdWUnICI7DQoNCgkkcXVlcnlTdHIgLj0gIiRub3RfbnVsbCAkYXV0b19pbmNyZW1l bnQiOw0KDQoJbXlzcWxfc2VsZWN0X2RiKCAkZGJuYW1lLCAkbXlzcWxIYW5kbGUgKTsNCglteXNx bF9xdWVyeSggJHF1ZXJ5U3RyLCAkbXlzcWxIYW5kbGUgKTsNCgkkZXJyTXNnID0gbXlzcWxfZXJy b3IoKTsNCg0KCS8vIGtleSBjaGFuZ2UNCgkka2V5Q2hhbmdlID0gZmFsc2U7DQoJJHJlc3VsdCA9 IG15c3FsX3F1ZXJ5KCAiU0hPVyBLRVlTIEZST00gJHRhYmxlbmFtZSIgKTsNCgkkcHJpbWFyeSA9 ICIiOw0KCXdoaWxlKCAkcm93ID0gbXlzcWxfZmV0Y2hfYXJyYXkoJHJlc3VsdCkgKQ0KCQlpZigg JHJvd1siS2V5X25hbWUiXSA9PSAiUFJJTUFSWSIgKSB7DQoJCQlpZiggJHJvd1tDb2x1bW5fbmFt ZV0gPT0gJG5hbWUgKQ0KCQkJCSRrZXlDaGFuZ2UgPSB0cnVlOw0KCQkJZWxzZQ0KCQkJCSRwcmlt YXJ5IC49ICIsICRyb3dbQ29sdW1uX25hbWVdIjsNCgkJfQ0KCWlmKCAkcHJpbWFyeV9rZXkgPT0g IlBSSU1BUlkgS0VZIiApIHsNCgkJJHByaW1hcnkgLj0gIiwgJG5hbWUiOw0KCQkka2V5Q2hhbmdl ID0gISRrZXlDaGFuZ2U7DQoJfQ0KCSRwcmltYXJ5ID0gc3Vic3RyKCAkcHJpbWFyeSwgMiApOw0K CWlmKCAka2V5Q2hhbmdlID09IHRydWUgKSB7DQoJCSRxID0gIkFMVEVSIFRBQkxFICR0YWJsZW5h bWUgRFJPUCBQUklNQVJZIEtFWSI7DQoJCW15c3FsX3F1ZXJ5KCAkcSApOw0KCQkkcXVlcnlTdHIg Lj0gIjxicj5cbiIgLiAkcTsNCgkJJGVyck1zZyAuPSAiPGJyPlxuIiAuIG15c3FsX2Vycm9yKCk7 DQoJCSRxID0gIkFMVEVSIFRBQkxFICR0YWJsZW5hbWUgQUREIFBSSU1BUlkgS0VZKCAkcHJpbWFy eSApIjsNCgkJbXlzcWxfcXVlcnkoICRxICk7DQoJCSRxdWVyeVN0ciAuPSAiPGJyPlxuIiAuICRx Ow0KCQkkZXJyTXNnIC49ICI8YnI+XG4iIC4gbXlzcWxfZXJyb3IoKTsNCgl9DQoNCgl2aWV3U2No ZW1hKCk7DQp9DQoNCmZ1bmN0aW9uIGRyb3BGaWVsZCgpIHsNCglnbG9iYWwgJG15c3FsSGFuZGxl LCAkZGJuYW1lLCAkdGFibGVuYW1lLCAkZmllbGRuYW1lLCAkUEhQX1NFTEYsICRxdWVyeVN0ciwg JGVyck1zZzsNCg0KCSRxdWVyeVN0ciA9ICJBTFRFUiBUQUJMRSAkdGFibGVuYW1lIERST1AgQ09M VU1OICRmaWVsZG5hbWUiOw0KCW15c3FsX3NlbGVjdF9kYiggJGRibmFtZSwgJG15c3FsSGFuZGxl ICk7DQoJbXlzcWxfcXVlcnkoICRxdWVyeVN0ciAsICRteXNxbEhhbmRsZSApOw0KCSRlcnJNc2cg PSBteXNxbF9lcnJvcigpOw0KDQoJdmlld1NjaGVtYSgpOw0KfQ0KDQpmdW5jdGlvbiB2aWV3RGF0 YSggJHF1ZXJ5U3RyICkgew0KCWdsb2JhbCAkbXlzcWxIYW5kbGUsICRkYm5hbWUsICR0YWJsZW5h bWUsICRQSFBfU0VMRiwgJGVyck1zZywgJHBhZ2UsICRyb3dwZXJwYWdlLCAkb3JkZXJieTsNCg0K CWVjaG8gIjxoMT5EYXRhIGluIFRhYmxlPC9oMT5cbiI7DQoJaWYoICR0YWJsZW5hbWUgIT0gIiIg KQ0KCQllY2hvICI8cCBjbGFzcz1sb2NhdGlvbj4kZGJuYW1lICZndDsgJHRhYmxlbmFtZTwvcD5c biI7DQoJZWxzZQ0KCQllY2hvICI8cCBjbGFzcz1sb2NhdGlvbj4kZGJuYW1lPC9wPlxuIjsNCg0K CSRxdWVyeVN0ciA9IHN0cmlwc2xhc2hlcyggJHF1ZXJ5U3RyICk7DQoJaWYoICRxdWVyeVN0ciA9 PSAiIiApIHsNCgkJJHF1ZXJ5U3RyID0gIlNFTEVDVCAqIEZST00gJHRhYmxlbmFtZSI7DQoJCWlm KCAkb3JkZXJieSAhPSAiIiApDQoJCQkkcXVlcnlTdHIgLj0gIiBPUkRFUiBCWSAkb3JkZXJieSI7 DQoJCWVjaG8gIjxhIGhyZWY9JyRQSFBfU0VMRj9hY3Rpb249YWRkRGF0YSZkYm5hbWU9JGRibmFt ZSZ0YWJsZW5hbWU9JHRhYmxlbmFtZSc+QWRkIERhdGE8L2E+IHwgXG4iOw0KCQllY2hvICI8YSBo cmVmPSckUEhQX1NFTEY/YWN0aW9uPXZpZXdTY2hlbWEmZGJuYW1lPSRkYm5hbWUmdGFibGVuYW1l PSR0YWJsZW5hbWUnPlNjaGVtYTwvYT5cbiI7DQoJfQ0KDQoJJHBSZXN1bHQgPSBteXNxbF9kYl9x dWVyeSggJGRibmFtZSwgJHF1ZXJ5U3RyICk7DQoJJGVyck1zZyA9IG15c3FsX2Vycm9yKCk7DQoN CgkkR0xPQkFMU1txdWVyeVN0cl0gPSAkcXVlcnlTdHI7DQoNCglpZiggJHBSZXN1bHQgPT0gZmFs c2UgKSB7DQoJCWVjaG9RdWVyeVJlc3VsdCgpOw0KCQlyZXR1cm47DQoJfQ0KCWlmKCAkcFJlc3Vs dCA9PSAxICkgew0KCQkkZXJyTXNnID0gIlN1Y2Nlc3MiOw0KCQllY2hvUXVlcnlSZXN1bHQoKTsN CgkJcmV0dXJuOw0KCX0NCg0KCWVjaG8gIjxocj5cbiI7DQoNCgkkcm93ID0gbXlzcWxfbnVtX3Jv d3MoICRwUmVzdWx0ICk7DQoJJGNvbCA9IG15c3FsX251bV9maWVsZHMoICRwUmVzdWx0ICk7DQoN CglpZiggJHJvdyA9PSAwICkgew0KCQllY2hvICJObyBEYXRhIEV4aXN0ISI7DQoJCXJldHVybjsN Cgl9DQoNCglpZiggJHJvd3BlcnBhZ2UgPT0gIiIgKSAkcm93cGVycGFnZSA9IDIwOw0KCWlmKCAk cGFnZSA9PSAiIiApICRwYWdlID0gMDsNCgllbHNlICRwYWdlLS07DQoJbXlzcWxfZGF0YV9zZWVr KCAkcFJlc3VsdCwgJHBhZ2UgKiAkcm93cGVycGFnZSApOw0KDQoJZWNobyAiPHRhYmxlIGNlbGxz cGFjaW5nPTEgY2VsbHBhZGRpbmc9Mj5cbiI7DQoJZWNobyAiPHRyPlxuIjsNCglmb3IoICRpID0g MDsgJGkgPCAkY29sOyAkaSsrICkgew0KCQkkZmllbGQgPSBteXNxbF9mZXRjaF9maWVsZCggJHBS ZXN1bHQsICRpICk7DQoJCWVjaG8gIjx0aD4iOw0KCQllY2hvICI8YSBocmVmPSckUEhQX1NFTEY/ YWN0aW9uPXZpZXdEYXRhJmRibmFtZT0kZGJuYW1lJnRhYmxlbmFtZT0kdGFibGVuYW1lJm9yZGVy Ynk9Ii4kZmllbGQtPm5hbWUuIic+Ii4kZmllbGQtPm5hbWUuIjwvYT5cbiI7DQoJCWVjaG8gIjwv dGg+XG4iOw0KCX0NCgllY2hvICI8dGggY29sc3Bhbj0yPkFjdGlvbjwvdGg+XG4iOw0KCWVjaG8g IjwvdHI+XG4iOw0KDQoJZm9yKCAkaSA9IDA7ICRpIDwgJHJvd3BlcnBhZ2U7ICRpKysgKSB7DQoJ CSRyb3dBcnJheSA9IG15c3FsX2ZldGNoX3JvdyggJHBSZXN1bHQgKTsNCgkJaWYoICRyb3dBcnJh eSA9PSBmYWxzZSApIGJyZWFrOw0KCQllY2hvICI8dHI+XG4iOw0KCQkka2V5ID0gIiI7DQoJCWZv ciggJGogPSAwOyAkaiA8ICRjb2w7ICRqKysgKSB7DQoJCQkkZGF0YSA9ICRyb3dBcnJheVskal07 DQoNCgkJCSRmaWVsZCA9IG15c3FsX2ZldGNoX2ZpZWxkKCAkcFJlc3VsdCwgJGogKTsNCgkJCWlm KCAkZmllbGQtPnByaW1hcnlfa2V5ID09IDEgKQ0KCQkJCSRrZXkgLj0gIiYiIC4gJGZpZWxkLT5u YW1lIC4gIj0iIC4gJGRhdGE7DQoNCgkJCWlmKCBzdHJsZW4oICRkYXRhICkgPiAyMCApDQoJCQkJ JGRhdGEgPSBzdWJzdHIoICRkYXRhLCAwLCAyMCApIC4gIi4uLiI7DQoJCQkkZGF0YSA9IGh0bWxz cGVjaWFsY2hhcnMoICRkYXRhICk7DQoJCQllY2hvICI8dGQ+XG4iOw0KCQkJZWNobyAiJGRhdGFc biI7DQoJCQllY2hvICI8L3RkPlxuIjsNCgkJfQ0KDQoJCWlmKCAka2V5ID09ICIiICkNCgkJCWVj aG8gIjx0ZCBjb2xzcGFuPTI+bm8gS2V5PC90ZD5cbiI7DQoJCWVsc2Ugew0KCQkJZWNobyAiPHRk PjxhIGhyZWY9JyRQSFBfU0VMRj9hY3Rpb249ZWRpdERhdGEmZGJuYW1lPSRkYm5hbWUmdGFibGVu YW1lPSR0YWJsZW5hbWUka2V5Jz5FZGl0PC9hPjwvdGQ+XG4iOw0KCQkJZWNobyAiPHRkPjxhIGhy ZWY9JyRQSFBfU0VMRj9hY3Rpb249ZGVsZXRlRGF0YSZkYm5hbWU9JGRibmFtZSZ0YWJsZW5hbWU9 JHRhYmxlbmFtZSRrZXknIG9uQ2xpY2s9XCJyZXR1cm4gY29uZmlybSgnRGVsZXRlIFJvdz8nKVwi PkRlbGV0ZTwvYT48L3RkPlxuIjsNCgkJfQ0KCQllY2hvICI8L3RyPlxuIjsNCgl9DQoJZWNobyAi PC90YWJsZT5cbiI7DQoNCgllY2hvICI8Zm9udCBzaXplPTI+XG4iOw0KCWVjaG8gIjxmb3JtIGFj dGlvbj0nJFBIUF9TRUxGP2FjdGlvbj12aWV3RGF0YSZkYm5hbWU9JGRibmFtZSZ0YWJsZW5hbWU9 JHRhYmxlbmFtZScgbWV0aG9kPXBvc3Q+XG4iOw0KCWVjaG8gIjxmb250IGNvbG9yPWdyZWVuPlxu IjsNCgllY2hvICgkcGFnZSsxKS4iLyIuKGludCkoJHJvdy8kcm93cGVycGFnZSsxKS4iIHBhZ2Ui Ow0KCWVjaG8gIjwvZm9udD5cbiI7DQoJZWNobyAiIHwgIjsNCglpZiggJHBhZ2UgPiAwICkgew0K CQllY2hvICI8YSBocmVmPSckUEhQX1NFTEY/YWN0aW9uPXZpZXdEYXRhJmRibmFtZT0kZGJuYW1l JnRhYmxlbmFtZT0kdGFibGVuYW1lJnBhZ2U9Ii4oJHBhZ2UpOw0KCQlpZiggJG9yZGVyYnkgIT0g IiIgKQ0KCQkJZWNobyAiJm9yZGVyYnk9JG9yZGVyYnkiOw0KCQllY2hvICInPlByZXY8L2E+XG4i Ow0KCX0gZWxzZQ0KCQllY2hvICJQcmV2IjsNCgllY2hvICIgfCAiOw0KCWlmKCAkcGFnZSA8ICgk cm93LyRyb3dwZXJwYWdlKS0xICkgew0KCQllY2hvICI8YSBocmVmPSckUEhQX1NFTEY/YWN0aW9u PXZpZXdEYXRhJmRibmFtZT0kZGJuYW1lJnRhYmxlbmFtZT0kdGFibGVuYW1lJnBhZ2U9Ii4oJHBh Z2UrMik7DQoJCWlmKCAkb3JkZXJieSAhPSAiIiApDQoJCQllY2hvICImb3JkZXJieT0kb3JkZXJi eSI7DQoJCWVjaG8gIic+TmV4dDwvYT5cbiI7DQoJfSBlbHNlDQoJCWVjaG8gIk5leHQiOw0KCWVj aG8gIiB8ICI7DQoJaWYoICRyb3cgPiAkcm93cGVycGFnZSApIHsNCgkJZWNobyAiPGlucHV0IHR5 cGU9dGV4dCBzaXplPTQgbmFtZT1wYWdlPlxuIjsNCgkJZWNobyAiPGlucHV0IHR5cGU9c3VibWl0 IHZhbHVlPSdHbyc+XG4iOw0KCX0NCgllY2hvICI8L2Zvcm0+XG4iOw0KCWVjaG8gIjwvZm9udD5c biI7DQp9DQoNCmZ1bmN0aW9uIG1hbmFnZURhdGEoICRjbWQgKSB7DQoJZ2xvYmFsICRteXNxbEhh bmRsZSwgJGRibmFtZSwgJHRhYmxlbmFtZSwgJFBIUF9TRUxGOw0KDQoJaWYoICRjbWQgPT0gImFk ZCIgKQ0KCQllY2hvICI8aDE+QWRkIERhdGE8L2gxPlxuIjsNCgllbHNlIGlmKCAkY21kID09ICJl ZGl0IiApIHsNCgkJZWNobyAiPGgxPkVkaXQgRGF0YTwvaDE+XG4iOw0KCQkkcFJlc3VsdCA9IG15 c3FsX2xpc3RfZmllbGRzKCAkZGJuYW1lLCAkdGFibGVuYW1lICk7DQoJCSRudW0gPSBteXNxbF9u dW1fZmllbGRzKCAkcFJlc3VsdCApOw0KDQoJCSRrZXkgPSAiIjsNCgkJZm9yKCAkaSA9IDA7ICRp IDwgJG51bTsgJGkrKyApIHsNCgkJCSRmaWVsZCA9IG15c3FsX2ZldGNoX2ZpZWxkKCAkcFJlc3Vs dCwgJGkgKTsNCgkJCWlmKCAkZmllbGQtPnByaW1hcnlfa2V5ID09IDEgKQ0KCQkJCWlmKCAkZmll bGQtPm51bWVyaWMgPT0gMSApDQoJCQkJCSRrZXkgLj0gJGZpZWxkLT5uYW1lIC4gIj0iIC4gJEdM T0JBTFNbJGZpZWxkLT5uYW1lXSAuICIgQU5EICI7DQoJCQkJZWxzZQ0KCQkJCQkka2V5IC49ICRm aWVsZC0+bmFtZSAuICI9JyIgLiAkR0xPQkFMU1skZmllbGQtPm5hbWVdIC4gIicgQU5EICI7DQoJ CX0NCgkJJGtleSA9IHN1YnN0ciggJGtleSwgMCwgc3RybGVuKCRrZXkpLTQgKTsNCg0KCQlteXNx bF9zZWxlY3RfZGIoICRkYm5hbWUsICRteXNxbEhhbmRsZSApOw0KCQkkcFJlc3VsdCA9IG15c3Fs X3F1ZXJ5KCAkcXVlcnlTdHIgPSAgIlNFTEVDVCAqIEZST00gJHRhYmxlbmFtZSBXSEVSRSAka2V5 IiwgJG15c3FsSGFuZGxlICk7DQoJCSRkYXRhID0gbXlzcWxfZmV0Y2hfYXJyYXkoICRwUmVzdWx0 ICk7DQoJfQ0KDQoJZWNobyAiPHAgY2xhc3M9bG9jYXRpb24+JGRibmFtZSAmZ3Q7ICR0YWJsZW5h bWU8L3A+XG4iOw0KDQoJZWNobyAiPGZvcm0gYWN0aW9uPSckUEhQX1NFTEYnIG1ldGhvZD1wb3N0 PlxuIjsNCglpZiggJGNtZCA9PSAiYWRkIiApDQoJCWVjaG8gIjxpbnB1dCB0eXBlPWhpZGRlbiBu YW1lPWFjdGlvbiB2YWx1ZT1hZGREYXRhX3N1Ym1pdD5cbiI7DQoJZWxzZSBpZiggJGNtZCA9PSAi ZWRpdCIgKQ0KCQllY2hvICI8aW5wdXQgdHlwZT1oaWRkZW4gbmFtZT1hY3Rpb24gdmFsdWU9ZWRp dERhdGFfc3VibWl0PlxuIjsNCgllY2hvICI8aW5wdXQgdHlwZT1oaWRkZW4gbmFtZT1kYm5hbWUg dmFsdWU9JGRibmFtZT5cbiI7DQoJZWNobyAiPGlucHV0IHR5cGU9aGlkZGVuIG5hbWU9dGFibGVu YW1lIHZhbHVlPSR0YWJsZW5hbWU+XG4iOw0KCWVjaG8gIjx0YWJsZSBjZWxsc3BhY2luZz0xIGNl bGxwYWRkaW5nPTI+XG4iOw0KCWVjaG8gIjx0cj5cbiI7DQoJZWNobyAiPHRoPk5hbWU8L3RoPlxu IjsNCgllY2hvICI8dGg+VHlwZTwvdGg+XG4iOw0KCWVjaG8gIjx0aD5GdW5jdGlvbjwvdGg+XG4i Ow0KCWVjaG8gIjx0aD5EYXRhPC90aD5cbiI7DQoJZWNobyAiPC90cj5cbiI7DQoNCgkkcFJlc3Vs dCA9IG15c3FsX2RiX3F1ZXJ5KCAkZGJuYW1lLCAiU0hPVyBmaWVsZHMgRlJPTSAkdGFibGVuYW1l IiApOw0KCSRudW0gPSBteXNxbF9udW1fcm93cyggJHBSZXN1bHQgKTsNCg0KCSRwUmVzdWx0TGVu ID0gbXlzcWxfbGlzdF9maWVsZHMoICRkYm5hbWUsICR0YWJsZW5hbWUgKTsNCg0KCWZvciggJGkg PSAwOyAkaSA8ICRudW07ICRpKysgKSB7DQoJCSRmaWVsZCA9IG15c3FsX2ZldGNoX2FycmF5KCAk cFJlc3VsdCApOw0KCQkkZmllbGRuYW1lID0gJGZpZWxkWyJGaWVsZCJdOw0KCQkkZmllbGR0eXBl ID0gJGZpZWxkWyJUeXBlIl07DQoJCSRsZW4gPSBteXNxbF9maWVsZF9sZW4oICRwUmVzdWx0TGVu LCAkaSApOw0KDQoJCWVjaG8gIjx0cj4iOw0KCQllY2hvICI8dGQ+JGZpZWxkbmFtZTwvdGQ+IjsN CgkJZWNobyAiPHRkPiIuJGZpZWxkWyJUeXBlIl0uIjwvdGQ+IjsNCgkJZWNobyAiPHRkPlxuIjsN CgkJZWNobyAiPHNlbGVjdCBuYW1lPSR7ZmllbGRuYW1lfV9mdW5jdGlvbj5cbiI7DQoJCWVjaG8g IjxvcHRpb24+XG4iOw0KCQllY2hvICI8b3B0aW9uPkFTQ0lJXG4iOw0KCQllY2hvICI8b3B0aW9u PkNIQVJcbiI7DQoJCWVjaG8gIjxvcHRpb24+U09VTkRFWFxuIjsNCgkJZWNobyAiPG9wdGlvbj5D VVJEQVRFXG4iOw0KCQllY2hvICI8b3B0aW9uPkNVUlRJTUVcbiI7DQoJCWVjaG8gIjxvcHRpb24+ RlJPTV9EQVlTXG4iOw0KCQllY2hvICI8b3B0aW9uPkZST01fVU5JWFRJTUVcbiI7DQoJCWVjaG8g IjxvcHRpb24+Tk9XXG4iOw0KCQllY2hvICI8b3B0aW9uPlBBU1NXT1JEXG4iOw0KCQllY2hvICI8 b3B0aW9uPlBFUklPRF9BRERcbiI7DQoJCWVjaG8gIjxvcHRpb24+UEVSSU9EX0RJRkZcbiI7DQoJ CWVjaG8gIjxvcHRpb24+VE9fREFZU1xuIjsNCgkJZWNobyAiPG9wdGlvbj5VU0VSXG4iOw0KCQll Y2hvICI8b3B0aW9uPldFRUtEQVlcbiI7DQoJCWVjaG8gIjxvcHRpb24+UkFORFxuIjsNCgkJZWNo byAiPC9zZWxlY3Q+XG4iOw0KCQllY2hvICI8L3RkPlxuIjsNCgkJJHZhbHVlID0gaHRtbHNwZWNp YWxjaGFycygkZGF0YVskaV0pOw0KCQlpZiggJGNtZCA9PSAiYWRkIiApIHsNCgkJCSR0eXBlID0g c3RydG9rKCAkZmllbGR0eXBlLCAiICgsKVxuIiApOw0KCQkJaWYoICR0eXBlID09ICJlbnVtIiB8 fCAkdHlwZSA9PSAic2V0IiApIHsNCgkJCQllY2hvICI8dGQ+XG4iOw0KCQkJCWlmKCAkdHlwZSA9 PSAiZW51bSIgKQ0KCQkJCQllY2hvICI8c2VsZWN0IG5hbWU9JGZpZWxkbmFtZT5cbiI7DQoJCQkJ ZWxzZSBpZiggJHR5cGUgPT0gInNldCIgKQ0KCQkJCQllY2hvICI8c2VsZWN0IG5hbWU9JGZpZWxk bmFtZSBzaXplPTQgbXVsdGlwbGU+XG4iOw0KCQkJCWVjaG8gc3RydG9rKCAiJyIgKTsNCgkJCQl3 aGlsZSggJHN0ciA9IHN0cnRvayggIiciICkgKSB7DQoJCQkJCWVjaG8gIjxvcHRpb24+JHN0clxu IjsNCgkJCQkJc3RydG9rKCAiJyIgKTsNCgkJCQl9DQoJCQkJZWNobyAiPC9zZWxlY3Q+XG4iOw0K CQkJCWVjaG8gIjwvdGQ+XG4iOw0KCQkJfSBlbHNlIHsNCgkJCQlpZiggJGxlbiA8IDQwICkNCgkJ CQkJZWNobyAiPHRkPjxpbnB1dCB0eXBlPXRleHQgc2l6ZT00MCBtYXhsZW5ndGg9JGxlbiBuYW1l PSRmaWVsZG5hbWU+PC90ZD5cbiI7DQoJCQkJZWxzZQ0KCQkJCQllY2hvICI8dGQ+PHRleHRhcmVh IGNvbHM9NDAgcm93cz0zIG1heGxlbmd0aD0kbGVuIG5hbWU9JGZpZWxkbmFtZT48L3RleHRhcmVh PlxuIjsNCgkJCX0NCgkJfSBlbHNlIGlmKCAkY21kID09ICJlZGl0IiApIHsNCgkJCSR0eXBlID0g c3RydG9rKCAkZmllbGR0eXBlLCAiICgsKVxuIiApOw0KCQkJaWYoICR0eXBlID09ICJlbnVtIiB8 fCAkdHlwZSA9PSAic2V0IiApIHsNCgkJCQllY2hvICI8dGQ+XG4iOw0KCQkJCWlmKCAkdHlwZSA9 PSAiZW51bSIgKQ0KCQkJCQllY2hvICI8c2VsZWN0IG5hbWU9JGZpZWxkbmFtZT5cbiI7DQoJCQkJ ZWxzZSBpZiggJHR5cGUgPT0gInNldCIgKQ0KCQkJCQllY2hvICI8c2VsZWN0IG5hbWU9JGZpZWxk bmFtZSBzaXplPTQgbXVsdGlwbGU+XG4iOw0KCQkJCWVjaG8gc3RydG9rKCAiJyIgKTsNCgkJCQl3 aGlsZSggJHN0ciA9IHN0cnRvayggIiciICkgKSB7DQoJCQkJCWlmKCAkdmFsdWUgPT0gJHN0ciAp DQoJCQkJCQllY2hvICI8b3B0aW9uIHNlbGVjdGVkPiRzdHJcbiI7DQoJCQkJCWVsc2UNCgkJCQkJ CWVjaG8gIjxvcHRpb24+JHN0clxuIjsNCgkJCQkJc3RydG9rKCAiJyIgKTsNCgkJCQl9DQoJCQkJ ZWNobyAiPC9zZWxlY3Q+XG4iOw0KCQkJCWVjaG8gIjwvdGQ+XG4iOw0KCQkJfSBlbHNlIHsNCgkJ CQlpZiggJGxlbiA8IDQwICkNCgkJCQkJZWNobyAiPHRkPjxpbnB1dCB0eXBlPXRleHQgc2l6ZT00 MCBtYXhsZW5ndGg9JGxlbiBuYW1lPSRmaWVsZG5hbWUgdmFsdWU9XCIkdmFsdWVcIj48L3RkPlxu IjsNCgkJCQllbHNlDQoJCQkJCWVjaG8gIjx0ZD48dGV4dGFyZWEgY29scz00MCByb3dzPTMgbWF4 bGVuZ3RoPSRsZW4gbmFtZT0kZmllbGRuYW1lPiR2YWx1ZTwvdGV4dGFyZWE+XG4iOw0KCQkJfQ0K CQl9DQoJCWVjaG8gIjwvdHI+IjsNCgl9DQoJZWNobyAiPC90YWJsZT48cD5cbiI7DQoJaWYoICRj bWQgPT0gImFkZCIgKQ0KCQllY2hvICI8aW5wdXQgdHlwZT1zdWJtaXQgdmFsdWU9J0FkZCBEYXRh Jz5cbiI7DQoJZWxzZSBpZiggJGNtZCA9PSAiZWRpdCIgKQ0KCQllY2hvICI8aW5wdXQgdHlwZT1z dWJtaXQgdmFsdWU9J0VkaXQgRGF0YSc+XG4iOw0KCWVjaG8gIjxpbnB1dCB0eXBlPWJ1dHRvbiB2 YWx1ZT0nQ2FuY2VsJyBvbkNsaWNrPSdoaXN0b3J5LmJhY2soKSc+XG4iOw0KCWVjaG8gIjwvZm9y bT5cbiI7DQp9DQoNCmZ1bmN0aW9uIG1hbmFnZURhdGFfc3VibWl0KCAkY21kICkgew0KCWdsb2Jh bCAkbXlzcWxIYW5kbGUsICRkYm5hbWUsICR0YWJsZW5hbWUsICRmaWVsZG5hbWUsICRQSFBfU0VM RiwgJHF1ZXJ5U3RyLCAkZXJyTXNnOw0KDQoJJHBSZXN1bHQgPSBteXNxbF9saXN0X2ZpZWxkcygg JGRibmFtZSwgJHRhYmxlbmFtZSApOw0KCSRudW0gPSBteXNxbF9udW1fZmllbGRzKCAkcFJlc3Vs dCApOw0KDQoJbXlzcWxfc2VsZWN0X2RiKCAkZGJuYW1lLCAkbXlzcWxIYW5kbGUgKTsNCglpZigg JGNtZCA9PSAiYWRkIiApDQoJCSRxdWVyeVN0ciA9ICJJTlNFUlQgSU5UTyAkdGFibGVuYW1lIFZB TFVFUyAoIjsNCgllbHNlIGlmKCAkY21kID09ICJlZGl0IiApDQoJCSRxdWVyeVN0ciA9ICJSRVBM QUNFIElOVE8gJHRhYmxlbmFtZSBWQUxVRVMgKCI7DQoJZm9yKCAkaSA9IDA7ICRpIDwgJG51bS0x OyAkaSsrICkgew0KCQkkZmllbGQgPSBteXNxbF9mZXRjaF9maWVsZCggJHBSZXN1bHQgKTsNCgkJ JGZ1bmMgPSAkR0xPQkFMU1skZmllbGQtPm5hbWUuIl9mdW5jdGlvbiJdOw0KCQlpZiggJGZ1bmMg IT0gIiIgKQ0KCQkJJHF1ZXJ5U3RyIC49ICIgJGZ1bmMoIjsNCgkJaWYoICRmaWVsZC0+bnVtZXJp YyA9PSAxICkgew0KCQkJJHF1ZXJ5U3RyIC49ICRHTE9CQUxTWyRmaWVsZC0+bmFtZV07DQoJCQlp ZiggJGZ1bmMgIT0gIiIgKQ0KCQkJCSRxdWVyeVN0ciAuPSAiKSwiOw0KCQkJZWxzZQ0KCQkJCSRx dWVyeVN0ciAuPSAiLCI7DQoJCX0gZWxzZSB7DQoJCQkkcXVlcnlTdHIgLj0gIiciIC4gJEdMT0JB TFNbJGZpZWxkLT5uYW1lXTsNCgkJCWlmKCAkZnVuYyAhPSAiIiApDQoJCQkJJHF1ZXJ5U3RyIC49 ICInKSwiOw0KCQkJZWxzZQ0KCQkJCSRxdWVyeVN0ciAuPSAiJywiOw0KCQl9DQoJfQ0KCSRmaWVs ZCA9IG15c3FsX2ZldGNoX2ZpZWxkKCAkcFJlc3VsdCApOw0KCWlmKCAkZmllbGQtPm51bWVyaWMg PT0gMSApDQoJCSRxdWVyeVN0ciAuPSAkR0xPQkFMU1skZmllbGQtPm5hbWVdIC4gIikiOw0KCWVs c2UNCgkJJHF1ZXJ5U3RyIC49ICInIiAuICRHTE9CQUxTWyRmaWVsZC0+bmFtZV0gLiAiJykiOw0K DQoJbXlzcWxfcXVlcnkoICRxdWVyeVN0ciAsICRteXNxbEhhbmRsZSApOw0KCSRlcnJNc2cgPSBt eXNxbF9lcnJvcigpOw0KDQoJdmlld0RhdGEoICIiICk7DQp9DQoNCmZ1bmN0aW9uIGRlbGV0ZURh dGEoKSB7DQoJZ2xvYmFsICRteXNxbEhhbmRsZSwgJGRibmFtZSwgJHRhYmxlbmFtZSwgJGZpZWxk bmFtZSwgJFBIUF9TRUxGLCAkcXVlcnlTdHIsICRlcnJNc2c7DQoNCgkkcFJlc3VsdCA9IG15c3Fs X2xpc3RfZmllbGRzKCAkZGJuYW1lLCAkdGFibGVuYW1lICk7DQoJJG51bSA9IG15c3FsX251bV9m aWVsZHMoICRwUmVzdWx0ICk7DQoNCgkka2V5ID0gIiI7DQoJZm9yKCAkaSA9IDA7ICRpIDwgJG51 bTsgJGkrKyApIHsNCgkJJGZpZWxkID0gbXlzcWxfZmV0Y2hfZmllbGQoICRwUmVzdWx0LCAkaSAp Ow0KCQlpZiggJGZpZWxkLT5wcmltYXJ5X2tleSA9PSAxICkNCgkJCWlmKCAkZmllbGQtPm51bWVy aWMgPT0gMSApDQoJCQkJJGtleSAuPSAkZmllbGQtPm5hbWUgLiAiPSIgLiAkR0xPQkFMU1skZmll bGQtPm5hbWVdIC4gIiBBTkQgIjsNCgkJCWVsc2UNCgkJCQkka2V5IC49ICRmaWVsZC0+bmFtZSAu ICI9JyIgLiAkR0xPQkFMU1skZmllbGQtPm5hbWVdIC4gIicgQU5EICI7DQoJfQ0KCSRrZXkgPSBz dWJzdHIoICRrZXksIDAsIHN0cmxlbigka2V5KS00ICk7DQoNCglteXNxbF9zZWxlY3RfZGIoICRk Ym5hbWUsICRteXNxbEhhbmRsZSApOw0KCSRxdWVyeVN0ciA9ICAiREVMRVRFIEZST00gJHRhYmxl bmFtZSBXSEVSRSAka2V5IjsNCglteXNxbF9xdWVyeSggJHF1ZXJ5U3RyLCAkbXlzcWxIYW5kbGUg KTsNCgkkZXJyTXNnID0gbXlzcWxfZXJyb3IoKTsNCg0KCXZpZXdEYXRhKCAiIiApOw0KfQ0KDQpm dW5jdGlvbiBkdW1wKCkgew0KCWdsb2JhbCAkUEhQX1NFTEYsICRVU0VSTkFNRSwgJFBBU1NXT1JE LCAkYWN0aW9uLCAkZGJuYW1lLCAkdGFibGVuYW1lOw0KDQoJaWYoICRhY3Rpb24gPT0gImR1bXBU YWJsZSIgKQ0KCQkkZmlsZW5hbWUgPSAkdGFibGVuYW1lOw0KCWVsc2UNCgkJJGZpbGVuYW1lID0g JGRibmFtZTsNCg0KCWhlYWRlcigiQ29udGVudC1kaXNwb3NpdGlvbjogZmlsZW5hbWU9JGZpbGVu YW1lLnNxbCIpOw0KCWhlYWRlcigiQ29udGVudC10eXBlOiBhcHBsaWNhdGlvbi9vY3RldHN0cmVh bSIpOw0KCWhlYWRlcigiUHJhZ21hOiBuby1jYWNoZSIpOw0KCWhlYWRlcigiRXhwaXJlczogMCIp Ow0KDQoJJHBSZXN1bHQgPSBteXNxbF9xdWVyeSggInNob3cgdmFyaWFibGVzIiApOw0KCXdoaWxl KCAxICkgew0KCQkkcm93QXJyYXkgPSBteXNxbF9mZXRjaF9yb3coICRwUmVzdWx0ICk7DQoJCWlm KCAkcm93QXJyYXkgPT0gZmFsc2UgKSBicmVhazsNCgkJaWYoICRyb3dBcnJheVswXSA9PSAiYmFz ZWRpciIgKQ0KCQkJJGJpbmRpciA9ICRyb3dBcnJheVsxXS4iYmluLyI7DQoJfQ0KDQoJcGFzc3Ro cnUoICRiaW5kaXIuIm15c3FsZHVtcCAtLXVzZXI9JFVTRVJOQU1FIC0tcGFzc3dvcmQ9JFBBU1NX T1JEICRkYm5hbWUgJHRhYmxlbmFtZSIgKTsNCn0NCg0KZnVuY3Rpb24gdXRpbHMoKSB7DQoJZ2xv YmFsICRQSFBfU0VMRiwgJGNvbW1hbmQ7DQoJZWNobyAiPGgxPlV0aWxpdGllczwvaDE+XG4iOw0K CWlmKCAkY29tbWFuZCA9PSAiIiB8fCBzdWJzdHIoICRjb21tYW5kLCAwLCA1ICkgPT0gImZsdXNo IiApIHsNCgkJZWNobyAiPGhyPlxuIjsNCgkJZWNobyAiU2hvd1xuIjsNCgkJZWNobyAiPHVsPlxu IjsNCgkJZWNobyAiPGxpPjxhIGhyZWY9JyRQSFBfU0VMRj9hY3Rpb249dXRpbHMmY29tbWFuZD1z aG93X3N0YXR1cyc+U3RhdHVzPC9hPlxuIjsNCgkJZWNobyAiPGxpPjxhIGhyZWY9JyRQSFBfU0VM Rj9hY3Rpb249dXRpbHMmY29tbWFuZD1zaG93X3ZhcmlhYmxlcyc+VmFyaWFibGVzPC9hPlxuIjsN CgkJZWNobyAiPGxpPjxhIGhyZWY9JyRQSFBfU0VMRj9hY3Rpb249dXRpbHMmY29tbWFuZD1zaG93 X3Byb2Nlc3NsaXN0Jz5Qcm9jZXNzbGlzdDwvYT5cbiI7DQoJCWVjaG8gIjwvdWw+XG4iOw0KCQll Y2hvICJGbHVzaFxuIjsNCgkJZWNobyAiPHVsPlxuIjsNCgkJZWNobyAiPGxpPjxhIGhyZWY9JyRQ SFBfU0VMRj9hY3Rpb249dXRpbHMmY29tbWFuZD1mbHVzaF9ob3N0cyc+SG9zdHM8L2E+XG4iOw0K CQlpZiggJGNvbW1hbmQgPT0gImZsdXNoX2hvc3RzIiApIHsNCgkJCWlmKCBteXNxbF9xdWVyeSgg IkZsdXNoIGhvc3RzIiApICE9IGZhbHNlICkNCgkJCQllY2hvICI8Zm9udCBzaXplPTIgY29sb3I9 cmVkPi0gU3VjY2VzczwvZm9udD4iOw0KCQkJZWxzZQ0KCQkJCWVjaG8gIjxmb250IHNpemU9MiBj b2xvcj1yZWQ+LSBGYWlsPC9mb250PiI7DQoJCX0NCgkJZWNobyAiPGxpPjxhIGhyZWY9JyRQSFBf U0VMRj9hY3Rpb249dXRpbHMmY29tbWFuZD1mbHVzaF9sb2dzJz5Mb2dzPC9hPlxuIjsNCgkJaWYo ICRjb21tYW5kID09ICJmbHVzaF9sb2dzIiApIHsNCgkJCWlmKCBteXNxbF9xdWVyeSggIkZsdXNo IGxvZ3MiICkgIT0gZmFsc2UgKQ0KCQkJCWVjaG8gIjxmb250IHNpemU9MiBjb2xvcj1yZWQ+LSBT dWNjZXNzPC9mb250PiI7DQoJCQllbHNlDQoJCQkJZWNobyAiPGZvbnQgc2l6ZT0yIGNvbG9yPXJl ZD4tIEZhaWw8L2ZvbnQ+IjsNCgkJfQ0KCQllY2hvICI8bGk+PGEgaHJlZj0nJFBIUF9TRUxGP2Fj dGlvbj11dGlscyZjb21tYW5kPWZsdXNoX3ByaXZpbGVnZXMnPlByaXZpbGVnZXM8L2E+XG4iOw0K CQlpZiggJGNvbW1hbmQgPT0gImZsdXNoX3ByaXZpbGVnZXMiICkgew0KCQkJaWYoIG15c3FsX3F1 ZXJ5KCAiRmx1c2ggcHJpdmlsZWdlcyIgKSAhPSBmYWxzZSApDQoJCQkJZWNobyAiPGZvbnQgc2l6 ZT0yIGNvbG9yPXJlZD4tIFN1Y2Nlc3M8L2ZvbnQ+IjsNCgkJCWVsc2UNCgkJCQllY2hvICI8Zm9u dCBzaXplPTIgY29sb3I9cmVkPi0gRmFpbDwvZm9udD4iOw0KCQl9DQoJCWVjaG8gIjxsaT48YSBo cmVmPSckUEhQX1NFTEY/YWN0aW9uPXV0aWxzJmNvbW1hbmQ9Zmx1c2hfdGFibGVzJz5UYWJsZXM8 L2E+XG4iOw0KCQlpZiggJGNvbW1hbmQgPT0gImZsdXNoX3RhYmxlcyIgKSB7DQoJCQlpZiggbXlz cWxfcXVlcnkoICJGbHVzaCB0YWJsZXMiICkgIT0gZmFsc2UgKQ0KCQkJCWVjaG8gIjxmb250IHNp emU9MiBjb2xvcj1yZWQ+LSBTdWNjZXNzPC9mb250PiI7DQoJCQllbHNlDQoJCQkJZWNobyAiPGZv bnQgc2l6ZT0yIGNvbG9yPXJlZD4tIEZhaWw8L2ZvbnQ+IjsNCgkJfQ0KCQllY2hvICI8bGk+PGEg aHJlZj0nJFBIUF9TRUxGP2FjdGlvbj11dGlscyZjb21tYW5kPWZsdXNoX3N0YXR1cyc+U3RhdHVz PC9hPlxuIjsNCgkJaWYoICRjb21tYW5kID09ICJmbHVzaF9zdGF0dXMiICkgew0KCQkJaWYoIG15 c3FsX3F1ZXJ5KCAiRmx1c2ggc3RhdHVzIiApICE9IGZhbHNlICkNCgkJCQllY2hvICI8Zm9udCBz aXplPTIgY29sb3I9cmVkPi0gU3VjY2VzczwvZm9udD4iOw0KCQkJZWxzZQ0KCQkJCWVjaG8gIjxm b250IHNpemU9MiBjb2xvcj1yZWQ+LSBGYWlsPC9mb250PiI7DQoJCX0NCgkJZWNobyAiPC91bD5c biI7DQoJfSBlbHNlIHsNCgkJJHF1ZXJ5U3RyID0gZXJlZ19yZXBsYWNlKCAiXyIsICIgIiwgJGNv bW1hbmQgKTsNCgkJJHBSZXN1bHQgPSBteXNxbF9xdWVyeSggJHF1ZXJ5U3RyICk7DQoJCWlmKCAk cFJlc3VsdCA9PSBmYWxzZSApIHsNCgkJCWVjaG8gIkZhaWwiOw0KCQkJcmV0dXJuOw0KCQl9DQoJ CSRjb2wgPSBteXNxbF9udW1fZmllbGRzKCAkcFJlc3VsdCApOw0KDQoJCWVjaG8gIjxwIGNsYXNz PWxvY2F0aW9uPiRxdWVyeVN0cjwvcD5cbiI7DQoJCWVjaG8gIjxocj5cbiI7DQoNCgkJZWNobyAi PHRhYmxlIGNlbGxzcGFjaW5nPTEgY2VsbHBhZGRpbmc9MiBib3JkZXI9MD5cbiI7DQoJCWVjaG8g Ijx0cj5cbiI7DQoJCWZvciggJGkgPSAwOyAkaSA8ICRjb2w7ICRpKysgKSB7DQoJCQkkZmllbGQg PSBteXNxbF9mZXRjaF9maWVsZCggJHBSZXN1bHQsICRpICk7DQoJCQllY2hvICI8dGg+Ii4kZmll bGQtPm5hbWUuIjwvdGg+XG4iOw0KCQl9DQoJCWVjaG8gIjwvdHI+XG4iOw0KDQoJCXdoaWxlKCAx ICkgew0KCQkJJHJvd0FycmF5ID0gbXlzcWxfZmV0Y2hfcm93KCAkcFJlc3VsdCApOw0KCQkJaWYo ICRyb3dBcnJheSA9PSBmYWxzZSApIGJyZWFrOw0KCQkJZWNobyAiPHRyPlxuIjsNCgkJCWZvcigg JGogPSAwOyAkaiA8ICRjb2w7ICRqKysgKQ0KCQkJCWVjaG8gIjx0ZD4iLmh0bWxzcGVjaWFsY2hh cnMoICRyb3dBcnJheVskal0gKS4iPC90ZD5cbiI7DQoJCQllY2hvICI8L3RyPlxuIjsNCgkJfQ0K CQllY2hvICI8L3RhYmxlPlxuIjsNCgl9DQp9DQoNCmZ1bmN0aW9uIGhlYWRlcl9odG1sKCkgew0K CWdsb2JhbCAkUEhQX1NFTEY7DQoNCj8+DQo8aHRtbD4NCjxoZWFkPg0KPHRpdGxlPk15U1FMIFdl YiBJbnRlcmZhY2U8L3RpdGxlPg0KPHN0eWxlIHR5cGU9InRleHQvY3NzIj4NCjwhLS0NCnAubG9j YXRpb24gew0KCWNvbG9yOiAjMTFiYjMzOw0KCWZvbnQtc2l6ZTogc21hbGw7DQp9DQpoMSB7DQoJ Y29sb3I6ICNBNEEyNjA7DQp9DQp0aCB7DQoJYmFja2dyb3VuZC1jb2xvcjogI0JEQkU0MjsNCglj b2xvcjogI0ZGRkZGRjsNCglmb250LXNpemU6IHgtc21hbGw7DQp9DQp0ZCB7DQoJYmFja2dyb3Vu ZC1jb2xvcjogI0RFREZBNTsNCglmb250LXNpemU6IHgtc21hbGw7DQp9DQpmb3JtIHsNCgltYXJn aW4tdG9wOiAwOw0KCW1hcmdpbi1ib3R0b206IDA7DQp9DQphIHsNCgl0ZXh0LWRlY29yYXRpb246 bm9uZTsNCgljb2xvcjogIzg0ODIwMDsNCglmb250LXNpemU6eC1zbWFsbDsNCn0NCmE6bGluayB7 DQp9DQphOmhvdmVyIHsNCgliYWNrZ3JvdW5kLWNvbG9yOiNFRUVGRDU7DQoJY29sb3I6IzY0NjIw MDsNCgl0ZXh0LWRlY29yYXRpb246bm9uZQ0KfQ0KLy8tLT4NCjwvc3R5bGU+DQo8L2hlYWQ+DQo8 Ym9keT4NCjw/DQp9DQoNCmZ1bmN0aW9uIGZvb3Rlcl9odG1sKCkgew0KCWdsb2JhbCAkbXlzcWxI YW5kbGUsICRkYm5hbWUsICR0YWJsZW5hbWUsICRQSFBfU0VMRiwgJFVTRVJOQU1FOw0KDQoJZWNo byAiPGhyPlxuIjsNCgllY2hvICI8Zm9udCBzaXplPTI+XG4iOw0KCWVjaG8gIjxmb250IGNvbG9y PWJsdWU+WyRVU0VSTkFNRV08L2ZvbnQ+IC0gXG4iOw0KDQoJZWNobyAiPGEgaHJlZj0nJFBIUF9T RUxGP2FjdGlvbj1saXN0REJzJz5EYXRhYmFzZSBMaXN0PC9hPiB8IFxuIjsNCglpZiggJHRhYmxl bmFtZSAhPSAiIiApDQoJCWVjaG8gIjxhIGhyZWY9JyRQSFBfU0VMRj9hY3Rpb249bGlzdFRhYmxl cyZkYm5hbWU9JGRibmFtZSZ0YWJsZW5hbWU9JHRhYmxlbmFtZSc+VGFibGUgTGlzdDwvYT4gfCAi Ow0KCWVjaG8gIjxhIGhyZWY9JyRQSFBfU0VMRj9hY3Rpb249dXRpbHMnPlV0aWxzPC9hPiB8XG4i Ow0KCWVjaG8gIjxhIGhyZWY9JyRQSFBfU0VMRj9hY3Rpb249bG9nb3V0Jz5Mb2dvdXQ8L2E+XG4i Ow0KCWVjaG8gIjwvZm9udD5cbiI7DQoJZWNobyAiPC9ib2R5PlxuIjsNCgllY2hvICI8L2h0bWw+ XG4iOw0KfQ0KDQovLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLSBNQUlODQoNCmlmKCAkYWN0aW9uID09ICJsb2dvbiIgfHwgJGFjdGlvbiA9PSAi IiB8fCAkYWN0aW9uID09ICJsb2dvdXQiICkNCglsb2dvbigpOw0KZWxzZSBpZiggJGFjdGlvbiA9 PSAibG9nb25fc3VibWl0IiApDQoJbG9nb25fc3VibWl0KCk7DQplbHNlIGlmKCAkYWN0aW9uID09 ICJkdW1wVGFibGUiIHx8ICRhY3Rpb24gPT0gImR1bXBEQiIgKSB7DQoJd2hpbGUoIGxpc3QoJHZh ciwgJHZhbHVlKSA9IGVhY2goJEhUVFBfQ09PS0lFX1ZBUlMpICkgew0KCQlpZiggJHZhciA9PSAi bXlzcWxfd2ViX2FkbWluX3VzZXJuYW1lIiApICRVU0VSTkFNRSA9ICR2YWx1ZTsNCgkJaWYoICR2 YXIgPT0gIm15c3FsX3dlYl9hZG1pbl9wYXNzd29yZCIgKSAkUEFTU1dPUkQgPSAkdmFsdWU7DQoJ fQ0KCSRteXNxbEhhbmRsZSA9IG15c3FsX3Bjb25uZWN0KCAkSE9TVE5BTUUsICRVU0VSTkFNRSwg JFBBU1NXT1JEICk7DQoJZHVtcCgpOw0KfSBlbHNlIHsNCgl3aGlsZSggbGlzdCgkdmFyLCAkdmFs dWUpID0gZWFjaCgkSFRUUF9DT09LSUVfVkFSUykgKSB7DQoJCWlmKCAkdmFyID09ICJteXNxbF93 ZWJfYWRtaW5fdXNlcm5hbWUiICkgJFVTRVJOQU1FID0gJHZhbHVlOw0KCQlpZiggJHZhciA9PSAi bXlzcWxfd2ViX2FkbWluX3Bhc3N3b3JkIiApICRQQVNTV09SRCA9ICR2YWx1ZTsNCgl9DQoJZWNo byAiPCEtLSI7DQoJJG15c3FsSGFuZGxlID0gbXlzcWxfcGNvbm5lY3QoICRIT1NUTkFNRSwgJFVT RVJOQU1FLCAkUEFTU1dPUkQgKTsNCgllY2hvICItLT4iOw0KDQoJaWYoICRteXNxbEhhbmRsZSA9 PSBmYWxzZSApIHsNCgkJZWNobyAiPGh0bWw+XG4iOw0KCQllY2hvICI8aGVhZD5cbiI7DQoJCWVj aG8gIjx0aXRsZT5NeVNRTCBXZWIgSW50ZXJmYWNlPC90aXRsZT5cbiI7DQoJCWVjaG8gIjwvaGVh ZD5cbiI7DQoJCWVjaG8gIjxib2R5PlxuIjsNCgkJZWNobyAiPHRhYmxlIHdpZHRoPTEwMCUgaGVp Z2h0PTEwMCU+PHRyPjx0ZD48Y2VudGVyPlxuIjsNCgkJZWNobyAiPGgxPldyb25nIFBhc3N3b3Jk ITwvaDE+XG4iOw0KCQllY2hvICI8YSBocmVmPSckUEhQX1NFTEY/YWN0aW9uPWxvZ29uJz5Mb2dv bjwvYT5cbiI7DQoJCWVjaG8gIjwvY2VudGVyPjwvdGQ+PC90cj48L3RhYmxlPlxuIjsNCgkJZWNo byAiPC9ib2R5PlxuIjsNCgkJZWNobyAiPC9odG1sPlxuIjsNCgl9IGVsc2Ugew0KCQloZWFkZXJf aHRtbCgpOw0KCQlpZiggJGFjdGlvbiA9PSAibGlzdERCcyIgKQ0KCQkJbGlzdERhdGFiYXNlcygp Ow0KCQllbHNlIGlmKCAkYWN0aW9uID09ICJjcmVhdGVEQiIgKQ0KCQkJY3JlYXRlRGF0YWJhc2Uo KTsNCgkJZWxzZSBpZiggJGFjdGlvbiA9PSAiZHJvcERCIiApDQoJCQlkcm9wRGF0YWJhc2UoKTsN CgkJZWxzZSBpZiggJGFjdGlvbiA9PSAibGlzdFRhYmxlcyIgKQ0KCQkJbGlzdFRhYmxlcygpOw0K CQllbHNlIGlmKCAkYWN0aW9uID09ICJjcmVhdGVUYWJsZSIgKQ0KCQkJY3JlYXRlVGFibGUoKTsN CgkJZWxzZSBpZiggJGFjdGlvbiA9PSAiZHJvcFRhYmxlIiApDQoJCQlkcm9wVGFibGUoKTsNCgkJ ZWxzZSBpZiggJGFjdGlvbiA9PSAidmlld1NjaGVtYSIgKQ0KCQkJdmlld1NjaGVtYSgpOw0KCQll bHNlIGlmKCAkYWN0aW9uID09ICJxdWVyeSIgKQ0KCQkJdmlld0RhdGEoICRxdWVyeVN0ciApOw0K CQllbHNlIGlmKCAkYWN0aW9uID09ICJhZGRGaWVsZCIgKQ0KCQkJbWFuYWdlRmllbGQoICJhZGQi ICk7DQoJCWVsc2UgaWYoICRhY3Rpb24gPT0gImFkZEZpZWxkX3N1Ym1pdCIgKQ0KCQkJbWFuYWdl RmllbGRfc3VibWl0KCAiYWRkIiApOw0KCQllbHNlIGlmKCAkYWN0aW9uID09ICJlZGl0RmllbGQi ICkNCgkJCW1hbmFnZUZpZWxkKCAiZWRpdCIgKTsNCgkJZWxzZSBpZiggJGFjdGlvbiA9PSAiZWRp dEZpZWxkX3N1Ym1pdCIgKQ0KCQkJbWFuYWdlRmllbGRfc3VibWl0KCAiZWRpdCIgKTsNCgkJZWxz ZSBpZiggJGFjdGlvbiA9PSAiZHJvcEZpZWxkIiApDQoJCQlkcm9wRmllbGQoKTsNCgkJZWxzZSBp ZiggJGFjdGlvbiA9PSAidmlld0RhdGEiICkNCgkJCXZpZXdEYXRhKCAiIiApOw0KCQllbHNlIGlm KCAkYWN0aW9uID09ICJhZGREYXRhIiApDQoJCQltYW5hZ2VEYXRhKCAiYWRkIiApOw0KCQllbHNl IGlmKCAkYWN0aW9uID09ICJhZGREYXRhX3N1Ym1pdCIgKQ0KCQkJbWFuYWdlRGF0YV9zdWJtaXQo ICJhZGQiICk7DQoJCWVsc2UgaWYoICRhY3Rpb24gPT0gImVkaXREYXRhIiApDQoJCQltYW5hZ2VE YXRhKCAiZWRpdCIgKTsNCgkJZWxzZSBpZiggJGFjdGlvbiA9PSAiZWRpdERhdGFfc3VibWl0IiAp DQoJCQltYW5hZ2VEYXRhX3N1Ym1pdCggImVkaXQiICk7DQoJCWVsc2UgaWYoICRhY3Rpb24gPT0g ImRlbGV0ZURhdGEiICkNCgkJCWRlbGV0ZURhdGEoKTsNCgkJZWxzZSBpZiggJGFjdGlvbiA9PSAi dXRpbHMiICkNCgkJCXV0aWxzKCk7DQoNCgkJbXlzcWxfY2xvc2UoICRteXNxbEhhbmRsZSk7DQoJ CWZvb3Rlcl9odG1sKCk7DQoJfQ0KfQ0KDQo=");