Command: powershell -NoProfile -Command "$p='C:\Users\ash\Documents\Codex\2026-08-26\LaptopBridge-DEV\bridge-data\dev-bridge.stderr.log'; if(Test-Path $p){Get-Content $p -Tail 120}else{Write-Output 'NO_STDERR_LOG'}"
Directory: projects
Status: SUCCESS
Exit code: 0
Cancel Job Rerun Command Refresh
2026-08-31 12:52:57 "GET /health HTTP/1.1" 200 - 2026-08-31 12:54:08 "GET /b/f084c6e9cc208651014adf60ecd3bb8f/stage/run?cwd=projects&cmd=cHl0aG9uIC1jICJpbXBvcnQgYmFzZTY0O2Zyb20gcGF0aGxpYiBpbXBvcnQgUGF0aDtwPVBhdGgoJ3Jlc3RhcnRfZGV2X2FmdGVyX2RlbGF5LnB5Jyk7cC53cml0ZV9ieXRlcyhiYXNlNjQuYjY0ZGVjb2RlKCdabkp2YlNCd1lYUm9iR2xpSUdsdGNHOXlkQ0JRWVhSb0NtbHRjRzl5ZENCdmN5d2djM1ZpY0hKdlkyVnpjeXdnYzNsekxDQjBhVzFsTENCMWNteHNhV0l1Y21WeGRXVnpkQW9LVWs5UFZDQTlJRkJoZEdnb2NpSkRPbHhWYzJWeWMxeGhjMmhjUkc5amRXMWxiblJ6WEVOdlpHVjRYREl3TWpZdE1EZ3RNalpjVEdGd2RHOXdRbkpwWkdkbExVUkZWaUlwQ2t4UFJ5QTlJRkpQVDFRZ0x5QWlZbkpwWkdkbExXUmhkR0VpSUM4Z0luSmxjM1JoY25RdGFHRXhMbXh2WnlJS0NtUmxaaUJzYjJjb2JYTm5LVG9LSUNBZ0lFeFBSeTV3WVhKbGJuUXViV3RrYVhJb2NHRnlaVzUwY3oxVWNuVmxMQ0JsZUdsemRGOXZhejFVY25WbEtRb2dJQ0FnZDJsMGFDQk1UMGN1YjNCbGJpZ2lZU0lzSUdWdVkyOWthVzVuUFNKMWRHWXRPQ0lwSUdGeklHWTZDaUFnSUNBZ0lDQWdaaTUzY21sMFpTaDBhVzFsTG5OMGNtWjBhVzFsS0NJbFdTMGxiUzBsWkNBbFNEb2xUVG9sVXlJcElDc2dJaUFpSUNzZ2JYTm5JQ3NnSWx4dUlpa0tDbVJsWmlCb2FXUmtaVzVmWm14aFozTW9aR1YwWVdOb1pXUTlSbUZzYzJVcE9nb2dJQ0FnWm14aFozTWdQU0JuWlhSaGRIUnlLSE4xWW5CeWIyTmxjM01zSUNKRFVrVkJWRVZmVGs5ZlYwbE9SRTlYSWl3Z01Da2dmQ0JuWlhSaGRIUnlLSE4xWW5CeWIyTmxjM01zSUNKRFVrVkJWRVZmVGtWWFgxQlNUME5GVTFOZlIxSlBWVkFpTENBd0tRb2dJQ0FnYVdZZ1pHVjBZV05vWldRNkNpQWdJQ0FnSUNBZ1pteGhaM01nZkQwZ1oyVjBZWFIwY2loemRXSndjbTlqWlhOekxDQWlSRVZVUVVOSVJVUmZVRkpQUTBWVFV5SXNJREFwQ2lBZ0lDQnlaWFIxY200Z1pteGhaM01LQ21SbFppQndjeWgwWlhoMEtUb0tJQ0FnSUhKbGRIVnliaUJ6ZFdKd2NtOWpaWE56TG5KMWJpaGJJbkJ2ZDJWeWMyaGxiR3dpTENBaUxVNXZVSEp2Wm1sc1pTSXNJQ0l0UTI5dGJXRnVaQ0lzSUhSbGVIUmRMQ0JqWVhCMGRYSmxYMjkxZEhCMWREMVVjblZsTENCMFpYaDBQVlJ5ZFdVc0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1kzSmxZWFJwYjI1bWJHRm5jejFuWlhSaGRIUnlLSE4xWW5CeWIyTmxjM01zSUNKRFVrVkJWRVZmVGs5ZlYwbE9SRTlYSWl3Z01Da3BDZ3BrWldZZ2QyOXlhMlZ5S0NrNkNpQWdJQ0IwYVcxbExuTnNaV1Z3S0RRcENpQWdJQ0J5SUQwZ2NITW9JaVJqUFVkbGRDMU9aWFJVUTFCRGIyNXVaV04wYVc5dUlDMU1iMk5oYkZCdmNuUWdPRGMyTmlBdFUzUmhkR1VnVEdsemRHVnVJQzFGY25KdmNrRmpkR2x2YmlCVGFXeGxiblJzZVVOdmJuUnBiblZsTzJsbUtDUmpLWHNrWXk1UGQyNXBibWRRY205alpYTnpmU0lwQ2lBZ0lDQndhV1JmZEdWNGRDQTlJQ2h5TG5OMFpHOTFkQ0J2Y2lBaUlpa3VjM1J5YVhBb0tTNXpjR3hwZEd4cGJtVnpLQ2tLSUNBZ0lIQnBaQ0E5SUdsdWRDaHdhV1JmZEdWNGRGc3RNVjBwSUdsbUlIQnBaRjkwWlhoMElHRnVaQ0J3YVdSZmRHVjRkRnN0TVYwdWMzUnlhWEFvS1M1cGMyUnBaMmwwS0NrZ1pXeHpaU0F3Q2lBZ0lDQnBaaUJ3YVdRNkNpQWdJQ0FnSUNBZ2NTQTlJSEJ6S0dZaUpIQTlSMlYwTFVOcGJVbHVjM1JoYm1ObElGZHBiak15WDFCeWIyTmxjM01nTFVacGJIUmxjaUFuVUhKdlkyVnpjMGxrUFh0d2FXUjlKenNrY0M1RGIyMXRZVzVrVEdsdVpTSXBDaUFnSUNBZ0lDQWdZMjFrYkdsdVpTQTlJQ2h4TG5OMFpHOTFkQ0J2Y2lBaUlpa3VjM1J5YVhBb0tRb2dJQ0FnSUNBZ0lHeHZaeWhtSW05M2JtVnlJSEJwWkQxN2NHbGtmU0JqYldROWUyTnRaR3hwYm1WOUlpa0tJQ0FnSUNBZ0lDQnBaaUFpWkdWMlgySnlhV1JuWlY5c1lYVnVZMmhsY2k1d2VTSWdibTkwSUdsdUlHTnRaR3hwYm1VNkNpQWdJQ0FnSUNBZ0lDQWdJR3h2WnlnaVFVSlBVbFFnYjNkdVpYSWdjMmxuYm1GMGRYSmxJRzFwYzIxaGRHTm9JaWtLSUNBZ0lDQWdJQ0FnSUNBZ2NtVjBkWEp1SURFeUNpQWdJQ0FnSUNBZ2MzVmljSEp2WTJWemN5NXlkVzRvV3lKMFlYTnJhMmxzYkNJc0lDSXZVRWxFSWl3Z2MzUnlLSEJwWkNrc0lDSXZSaUpkTENCallYQjBkWEpsWDI5MWRIQjFkRDFVY25WbExBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdOeVpXRjBhVzl1Wm14aFozTTlaMlYwWVhSMGNpaHpkV0p3Y205alpYTnpMQ0FpUTFKRlFWUkZYMDVQWDFkSlRrUlBWeUlzSURBcEtRb2dJQ0FnSUNBZ0lIUnBiV1V1YzJ4bFpYQW9NU2tLSUNBZ0lITjBZWEowSUQwZ1VrOVBWQ0F2SUNKemRHRnlkQzFrWlhZdFluSnBaR2RsTG5Cek1TSUtJQ0FnSUdsbUlHNXZkQ0J6ZEdGeWRDNWxlR2x6ZEhNb0tUb0tJQ0FnSUNBZ0lDQnNiMmNvSWtGQ1QxSlVJSE4wWVhKMElITmpjbWx3ZENCdGFYTnphVzVuSWlrS0lDQWdJQ0FnSUNCeVpYUjFjbTRnTVRNS0lDQWdJSE4xWW5CeWIyTmxjM011VUc5d1pXNG9XeUp3YjNkbGNuTm9aV3hzSWl3Z0lpMU9iMUJ5YjJacGJHVWlMQ0FpTFVWNFpXTjFkR2x2YmxCdmJHbGplU0lzSUNKQ2VYQmhjM01pTENBaUxVWnBiR1VpTENCemRISW9jM1JoY25RcFhTd0tJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnWTNka1BYTjBjaWhTVDA5VUtTd2djM1JrYjNWMFBYTjFZbkJ5YjJObGMzTXVSRVZXVGxWTVRDd2djM1JrWlhKeVBYTjFZbkJ5YjJObGMzTXVSRVZXVGxWTVRDd2djM1JrYVc0OWMzVmljSEp2WTJWemN5NUVSVlpPVlV4TUxBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JqY21WaGRHbHZibVpzWVdkelBXaHBaR1JsYmw5bWJHRm5jeWhrWlhSaFkyaGxaRDFVY25WbEtTa0tJQ0FnSUdSbFlXUnNhVzVsSUQwZ2RHbHRaUzUwYVcxbEtDa2dLeUF4TlFvZ0lDQWdiR0Z6ZENBOUlDSWlDaUFnSUNCM2FHbHNaU0IwYVcxbExuUnBiV1VvS1NBOElHUmxZV1JzYVc1bE9nb2dJQ0FnSUNBZ0lIUnllVG9LSUNBZ0lDQWdJQ0FnSUNBZ2QybDBhQ0IxY214c2FXSXVjbVZ4ZFdWemRDNTFjbXh2Y0dWdUtDSm9kSFJ3T2k4dk1USTNMakF1TUM0eE9qZzNOall2YUdWaGJIUm9JaXdnZEdsdFpXOTFkRDB5S1NCaGN5QnlaWE53T2dvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnYkdGemRDQTlJSEpsYzNBdWNtVmhaQ2dwTG1SbFkyOWtaU2dpZFhSbUxUZ2lMQ0FpY21Wd2JHRmpaU0lwTG5OMGNtbHdLQ2tLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR2xtSUhKbGMzQXVjM1JoZEhWeklEMDlJREl3TURvS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnNiMmNvSWxKRlUxUkJVbFJmVDBzZ2FHVmhiSFJvUFNJZ0t5QnNZWE4wS1FvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lISmxkSFZ5YmlBd0NpQWdJQ0FnSUNBZ1pYaGpaWEIwSUVWNFkyVndkR2x2YmlCaGN5QmxlR002Q2lBZ0lDQWdJQ0FnSUNBZ0lHeGhjM1FnUFNCMGVYQmxLR1Y0WXlrdVgxOXVZVzFsWDE4S0lDQWdJQ0FnSUNCMGFXMWxMbk5zWldWd0tERXBDaUFnSUNCc2IyY29JbEpGVTFSQlVsUmZWRWxOUlU5VlZDQnNZWE4wUFNJZ0t5QnNZWE4wS1FvZ0lDQWdjbVYwZFhKdUlERTBDZ3BwWmlBaUxTMTNiM0pyWlhJaUlHbHVJSE41Y3k1aGNtZDJPZ29nSUNBZ2NtRnBjMlVnVTNsemRHVnRSWGhwZENoM2IzSnJaWElvS1NrS0NtTnRaRDFiYzNsekxtVjRaV04xZEdGaWJHVXNJSE4wY2loUVlYUm9LRjlmWm1sc1pWOWZLUzV5WlhOdmJIWmxLQ2twTENBaUxTMTNiM0pyWlhJaVhRcHJkMkZ5WjNNOVpHbGpkQ2hqZDJROWMzUnlLRkJoZEdnb1gxOW1hV3hsWDE4cExuSmxjMjlzZG1Vb0tTNXdZWEpsYm5RcExDQnpkR1J2ZFhROWMzVmljSEp2WTJWemN5NUVSVlpPVlV4TUxDQnpkR1JsY25JOWMzVmljSEp2WTJWemN5NUVSVlpPVlV4TUxDQnpkR1JwYmoxemRXSndjbTlqWlhOekxrUkZWazVWVEV3cENtWnNZV2R6UFdocFpHUmxibDltYkdGbmN5aGtaWFJoWTJobFpEMVVjblZsS1NCOElHZGxkR0YwZEhJb2MzVmljSEp2WTJWemN5d2dJa05TUlVGVVJWOUNVa1ZCUzBGWFFWbGZSbEpQVFY5S1QwSWlMQ0F3S1FwMGNuazZDaUFnSUNCd1BYTjFZbkJ5YjJObGMzTXVVRzl3Wlc0b1kyMWtMQ0JqY21WaGRHbHZibVpzWVdkelBXWnNZV2R6TENBcUttdDNZWEpuY3lrS1pYaGpaWEIwSUU5VFJYSnliM0k2Q2lBZ0lDQndQWE4xWW5CeWIyTmxjM011VUc5d1pXNG9ZMjFrTENCamNtVmhkR2x2Ym1ac1lXZHpQV2hwWkdSbGJsOW1iR0ZuY3loa1pYUmhZMmhsWkQxVWNuVmxLU3dnS2lwcmQyRnlaM01wQ25CeWFXNTBLQ0pFUlZaZlVrVlRWRUZTVkY5WFQxSkxSVkpmVUVsRVBTSWdLeUJ6ZEhJb2NDNXdhV1FwS1FvPScpKTtjb21waWxlKHAucmVhZF90ZXh0KGVuY29kaW5nPSd1dGYtOCcpLHN0cihwKSwnZXhlYycpO3ByaW50KCdSRVNUQVJUX0hFTFBFUl9XUklUVEVOPScrc3RyKHAucmVzb2x2ZSgpKSki HTTP/1.1" 200 - 2026-08-31 12:54:08 "GET /b/f084c6e9cc208651014adf60ecd3bb8f/run?id=d0f2545f9b53a965 HTTP/1.1" 200 - 2026-08-31 12:54:08 "GET /b/f084c6e9cc208651014adf60ecd3bb8f/job?id=1788152048372 HTTP/1.1" 200 - 2026-08-31 12:54:08 "GET /b/f084c6e9cc208651014adf60ecd3bb8f/job?id=1788152048372 HTTP/1.1" 200 - 2026-08-31 12:54:09 "GET /b/f084c6e9cc208651014adf60ecd3bb8f/job?id=1788152048372 HTTP/1.1" 200 - 2026-08-31 12:54:09 "GET /b/f084c6e9cc208651014adf60ecd3bb8f/job?id=1788152048372 HTTP/1.1" 200 - 2026-08-31 13:15:11 "GET /b/f084c6e9cc208651014adf60ecd3bb8f/stage/run?cwd=projects&cmd=cG93ZXJzaGVsbCAtTm9Qcm9maWxlIC1TVEEgLUNvbW1hbmQgIiRFcnJvckFjdGlvblByZWZlcmVuY2U9J1N0b3AnOyBBZGQtVHlwZSAtQXNzZW1ibHlOYW1lIFVJQXV0b21hdGlvbkNsaWVudDsgJGY9W1N5c3RlbS5XaW5kb3dzLkF1dG9tYXRpb24uQXV0b21hdGlvbkVsZW1lbnRdOjpGb2N1c2VkRWxlbWVudDsgaWYoJG51bGwgLWVxICRmKXtXcml0ZS1PdXRwdXQgJ0ZPQ1VTRUQ9TlVMTCd9IGVsc2Uge1dyaXRlLU91dHB1dCAoJ0ZPQ1VTRURfTkFNRT0nKyRmLkN1cnJlbnQuTmFtZSk7IFdyaXRlLU91dHB1dCAoJ0ZPQ1VTRURfVFlQRT0nKyRmLkN1cnJlbnQuQ29udHJvbFR5cGUuUHJvZ3JhbW1hdGljTmFtZSk7IFdyaXRlLU91dHB1dCAoJ0ZPQ1VTRURfQUlEPScrJGYuQ3VycmVudC5BdXRvbWF0aW9uSWQpfTsgJHI9W1N5c3RlbS5XaW5kb3dzLkF1dG9tYXRpb24uQXV0b21hdGlvbkVsZW1lbnRdOjpSb290RWxlbWVudDsgV3JpdGUtT3V0cHV0ICgnUk9PVD0nKyRyLkN1cnJlbnQuTmFtZSk7IFdyaXRlLU91dHB1dCAnVUlBX09LJyI HTTP/1.1" 200 - 2026-08-31 13:15:11 "GET /b/f084c6e9cc208651014adf60ecd3bb8f/run?id=cc508e089a5c576d HTTP/1.1" 200 - 2026-08-31 13:15:11 "GET /b/f084c6e9cc208651014adf60ecd3bb8f/job?id=1788153311162 HTTP/1.1" 200 - 2026-08-31 13:15:11 "GET /b/f084c6e9cc208651014adf60ecd3bb8f/job?id=1788153311162 HTTP/1.1" 200 - 2026-08-31 13:15:12 "GET /b/f084c6e9cc208651014adf60ecd3bb8f/job?id=1788153311162 HTTP/1.1" 200 - 2026-08-31 13:15:12 "GET /b/f084c6e9cc208651014adf60ecd3bb8f/job?id=1788153311162 HTTP/1.1" 200 - 2026-08-31 13:15:12 "GET /b/f084c6e9cc208651014adf60ecd3bb8f/job?id=1788153311162 HTTP/1.1" 200 - 2026-08-31 13:15:12 "GET /b/f084c6e9cc208651014adf60ecd3bb8f/job?id=1788153311162 HTTP/1.1" 200 - 2026-08-31 13:15:13 "GET /b/f084c6e9cc208651014adf60ecd3bb8f/job?id=1788153311162 HTTP/1.1" 200 - 2026-08-31 13:15:13 "GET /b/f084c6e9cc208651014adf60ecd3bb8f/job?id=1788153311162 HTTP/1.1" 200 - 2026-08-31 13:15:13 "GET /b/f084c6e9cc208651014adf60ecd3bb8f/job?id=1788153311162 HTTP/1.1" 200 - 2026-08-31 13:15:14 "GET /b/f084c6e9cc208651014adf60ecd3bb8f/job?id=1788153311162 HTTP/1.1" 200 - 2026-08-31 13:15:14 "GET /b/f084c6e9cc208651014adf60ecd3bb8f/job?id=1788153311162 HTTP/1.1" 200 - 2026-08-31 13:15:14 "GET /b/f084c6e9cc208651014adf60ecd3bb8f/job?id=1788153311162 HTTP/1.1" 200 - 2026-08-31 13:15:14 "GET /b/f084c6e9cc208651014adf60ecd3bb8f/job?id=1788153311162 HTTP/1.1" 200 - 2026-08-31 13:15:15 "GET /b/f084c6e9cc208651014adf60ecd3bb8f/job?id=1788153311162 HTTP/1.1" 200 - 2026-08-31 13:16:26 "GET /b/f084c6e9cc208651014adf60ecd3bb8f/stage/run?cwd=projects&cmd=cHl0aG9uIC1jICJmcm9tIHBhdGhsaWIgaW1wb3J0IFBhdGg7aW1wb3J0IGhhc2hsaWI7cD1QYXRoKCcuLicpLydzaGVldF9yZWxheS5weSc7cz1wLnJlYWRfdGV4dChlbmNvZGluZz0ndXRmLTgnKTtMPXMuc3BsaXRsaW5lcygpO3ByaW50KCdTSEE9JytoYXNobGliLnNoYTI1NihwLnJlYWRfYnl0ZXMoKSkuaGV4ZGlnZXN0KCkpO2hpdHM9W2kgZm9yIGkseCBpbiBlbnVtZXJhdGUoTCkgaWYgJ0hVTUFOX0FTU0lTVEFOVF9SRVZJU0lPTicgaW4geCBvciAncGNfc3RhdHVzJyBpbiB4IG9yICdwY19zY3JlZW5zaG90JyBpbiB4IG9yICdwY19tb3ZlJyBpbiB4IG9yICdwY19jbGljaycgaW4geF07cHJpbnQoJ0hJVFM9JytzdHIoW2krMSBmb3IgaSBpbiBoaXRzXSkpO2E9bWF4KDAsbWluKGhpdHMpLTIwKTtiPW1pbihsZW4oTCksbWF4KGhpdHMpKzgwKTtbcHJpbnQoZid7aSsxfToge0xbaV19JykgZm9yIGkgaW4gcmFuZ2UoYSxiKV0i HTTP/1.1" 200 - 2026-08-31 13:16:26 "GET /b/f084c6e9cc208651014adf60ecd3bb8f/run?id=538a90a6a798dcaa HTTP/1.1" 200 - 2026-08-31 13:16:27 "GET /b/f084c6e9cc208651014adf60ecd3bb8f/job?id=1788153386812 HTTP/1.1" 200 - 2026-08-31 13:16:27 "GET /b/f084c6e9cc208651014adf60ecd3bb8f/job?id=1788153386812 HTTP/1.1" 200 - 2026-08-31 13:16:27 "GET /b/f084c6e9cc208651014adf60ecd3bb8f/job?id=1788153386812 HTTP/1.1" 200 - 2026-08-31 13:16:27 "GET /b/f084c6e9cc208651014adf60ecd3bb8f/job?id=1788153386812 HTTP/1.1" 200 - 2026-08-31 13:21:10 "GET /b/f084c6e9cc208651014adf60ecd3bb8f/stage/write?path=patch_human_assistant_ha2.py&data=ZnJvbSBwYXRobGliIGltcG9ydCBQYXRoCmltcG9ydCBoYXNobGliLCBvcywgdGltZSwgcHlfY29tcGlsZSwgc3VicHJvY2VzcwoKcm9vdCA9IFBhdGgoX19maWxlX18pLnJlc29sdmUoKS5wYXJlbnQucGFyZW50CnJlbGF5ID0gcm9vdCAvICJzaGVldF9yZWxheS5weSIKZXhwZWN0ZWQgPSAiZjg4OTczMTAxZDhlMTgxMGNmYjU1N2Y2MGQ0OWYyNTQwYTZkNTQ0OTM0OGI4NDNjMjMwOGQ2ZTFkNjk0MTI5OCIKb3JpZ2luYWwgPSByZWxheS5yZWFkX2J5dGVzKCkKYWN0dWFsID0gaGFzaGxpYi5zaGEyNTYob3JpZ2luYWwpLmhleGRpZ2VzdCgpCmlmIGFjdHVhbCAhPSBleHBlY3RlZDoKICAgIHJhaXNlIFN5c3RlbUV4aXQoZiJTSEFfUFJFQ09ORElUSU9OX0ZBSUxFRCBleHBlY3RlZD17ZXhwZWN0ZWR9IGFjdHVhbD17YWN0dWFsfSIpCnRleHQgPSBvcmlnaW5hbC5kZWNvZGUoInV0Zi04IikKaWYgdGV4dC5jb3VudCgnSFVNQU5fQVNTSVNUQU5UX1JFVklTSU9OID0gIkhBMSInKSAhPSAxOgogICAgcmFpc2UgU3lzdGVtRXhpdCgiSEExX1JFVklTSU9OX01BUktFUl9OT1RfVU5JUVVFIikKaWYgImRlZiBfcGNfb2JzZXJ2ZSgiIGluIHRleHQgb3IgJ0hVTUFOX0FTU0lTVEFOVF9SRVZJU0lPTiA9ICJIQTIiJyBpbiB0ZXh0OgogICAgcmFpc2UgU3lzdGVtRXhpdCgiSEEyX0FMUkVBRFlfUFJFU0VOVCIpCgpwcyA9IHInJydwYXJhbSgKICBbVmFsaWRhdGVTZXQoIm9ic2VydmUiLCJmaW5kIiwiYWN0aXZhdGUiKV1bc3RyaW5nXSRNb2RlID0gIm9ic2VydmUiLAogIFtzdHJpbmddJFBheWxvYWRCYXNlNjQgPSAiIgopCiRFcnJvckFjdGlvblByZWZlcmVuY2UgPSAiU3RvcCIKW0NvbnNvbGVdOjpPdXRwdXRFbmNvZGluZyA9IFtTeXN0ZW0uVGV4dC5VVEY4RW5jb2RpbmddOjpuZXcoJGZhbHNlKQpBZGQtVHlwZSAtQXNzZW1ibHlOYW1lIFVJQXV0b21hdGlvbkNsaWVudAppZiAoLW5vdCAoIkhBMk5hdGl2ZSIgLWFzIFt0eXBlXSkpIHsKICBBZGQtVHlwZSBAIgp1c2luZyBTeXN0ZW07CnVzaW5nIFN5c3RlbS5SdW50aW1lLkludGVyb3BTZXJ2aWNlczsKcHVibGljIHN0YXRpYyBjbGFzcyBIQTJOYXRpdmUgewogIFtEbGxJbXBvcnQoInVzZXIzMi5kbGwiKV0KICBwdWJsaWMgc3RhdGljIGV4dGVybiBJbnRQdHIgR2V0Rm9yZWdyb3VuZFdpbmRvdygpOwp9CiJACn0KCmZ1bmN0aW9uIERlY29kZS1QYXlsb2FkKFtzdHJpbmddJGI2NCkgewogIGlmIChbc3RyaW5nXTo6SXNOdWxsT3JXaGl0ZVNwYWNlKCRiNjQpKSB7IHJldHVybiBbcHNjdXN0b21vYmplY3RdQHt9IH0KICAkcmF3ID0gW1N5c3RlbS5UZXh0LkVuY29kaW5nXTo6VVRGOC5HZXRTdHJpbmcoW0NvbnZlcnRdOjpGcm9tQmFzZTY0U3RyaW5nKCRiNjQpKQogIGlmIChbc3RyaW5nXTo6SXNOdWxsT3JXaGl0ZVNwYWNlKCRyYXcpKSB7IHJldHVybiBbcHNjdXN0b21vYmplY3RdQHt9IH0KICByZXR1cm4gJHJhdyB8IENvbnZlcnRGcm9tLUpzb24KfQoKZnVuY3Rpb24gU2FmZS1Qcm9wKCRlbGVtZW50LCBbc3RyaW5nXSRuYW1lLCAkZmFsbGJhY2s9JG51bGwpIHsKICB0cnkgeyByZXR1cm4gJGVsZW1lbnQuQ3VycmVudC4kbmFtZSB9IGNhdGNoIHsgcmV0dXJuICRmYWxsYmFjayB9Cn0KCmZ1bmN0aW9uIFBsYWluLUVsZW1lbnQoJGUpIHsKICBpZiAoJG51bGwgLWVxICRlKSB7IHJldHVybiAkbnVsbCB9CiAgdHJ5IHsKICAgICRyID0gJGUuQ3VycmVudC5Cb3VuZGluZ1JlY3RhbmdsZQogICAgJHJlY3QgPSAkbnVsbAogICAgaWYgKC1ub3QgJHIuSXNFbXB0eSAtYW5kICRyLldpZHRoIC1ndCAwIC1hbmQgJHIuSGVpZ2h0IC1ndCAwKSB7CiAgICAgICRyZWN0ID0gW29yZGVyZWRdQHsKICAgICAgICB4ID0gW21hdGhdOjpSb3VuZCgkci5YLCAxKTsgeSA9IFttYXRoXTo6Um91bmQoJHIuWSwgMSkKICAgICAgICB3aWR0aCA9IFttYXRoXTo6Um91bmQoJHIuV2lkdGgsIDEpOyBoZWlnaHQgPSBbbWF0aF06OlJvdW5kKCRyLkhlaWdodCwgMSkKICAgICAgICBjZW50ZXJfeCA9IFttYXRoXTo6Um91bmQoJHIuWCArICgkci5XaWR0aCAvIDIpLCAxKQogICAgICAgIGNlbnRlcl95ID0gW21hdGhdOjpSb3VuZCgkci5ZICsgKCRyLkhlaWdodCAvIDIpLCAxKQogICAgICB9CiAgICB9CiAgICAkY3QgPSAiIgogICAgdHJ5IHsgJGN0ID0gJGUuQ3VycmVudC5Db250cm9sVHlwZS5Qcm9ncmFtbWF0aWNOYW1lIC1yZXBsYWNlICdeQ29udHJvbFR5cGVcXC4nLCcnIH0gY2F0Y2gge30KICAgICRyaWQgPSAiIgogICAgdHJ5IHsgJHJpZCA9IFtzdHJpbmddOjpKb2luKCcuJywgJGUuR2V0UnVudGltZUlkKCkpIH0gY2F0Y2gge30KICAgIHJldHVybiBbb3JkZXJlZF1AewogICAgICBuYW1lID0gW3N0cmluZ10oU2FmZS1Qcm9wICRlICdOYW1lJyAnJykKICAgICAgYXV0b21hdGlvbl9pZCA9IFtzdHJpbmddKFNhZmUtUHJvcCAkZSAnQXV0b21hdGlvbklkJyAnJykKICAgICAgY29udHJvbF90eXBlID0gW3N0cmluZ10kY3QKICAgICAgY2xhc3NfbmFtZSA9IFtzdHJpbmddKFNhZmUtUHJvcCAkZSAnQ2xhc3NOYW1lJyAnJykKICAgICAgZnJhbWV3b3JrX2lkID0gW3N0cmluZ10oU2FmZS1Qcm9wICRlICdGcmFtZXdvcmtJZCcgJycpCiAgICAgIHByb2Nlc3NfaWQgPSBbaW50XShTYWZlLVByb3AgJGUgJ1Byb2Nlc3NJZCcgMCkKICAgICAgZW5hYmxlZCA9IFtib29sXShTYWZlLVByb3AgJGUgJ0lzRW5hYmxlZCcgJGZhbHNlKQogICAgICBvZmZzY3JlZW4gPSBbYm9vbF0oU2FmZS1Qcm9wICRlICdJc09mZnNjcmVlbicgJHRydWUpCiAgICAgIGZvY3VzYWJsZSA9IFtib29sXShTYWZlLVByb3AgJGUgJ0lzS2V5Ym9hcmRGb2N1c2FibGUnICRmYWxzZSkKICAgICAgZm9jdXNlZCA9IFtib29sXShTYWZlLVByb3AgJGUgJ0hhc0tleWJvYXJkRm9jdXMnICRmYWxzZSkKICAgICAgcnVudGltZV9pZCA9ICRyaWQKICAgICAgcmVjdCA9ICRyZWN0CiAgICB9CiAgfSBjYXRjaCB7IHJldHVybiAkbnVsbCB9Cn0KCmZ1bmN0aW9uIFRleHQtTWF0Y2goW3N0cmluZ10kYWN0dWFsLCBbc3RyaW5nXSR3YW50ZWQsIFtib29sXSRjb250YWlucywgW2Jvb2xdJGNhc2VTZW5zaXRpdmUpIHsKICBpZiAoW3N0cmluZ106OklzTnVsbE9yRW1wdHkoJHdhbnRlZCkpIHsgcmV0dXJuICR0cnVlIH0KICBpZiAoJG51bGwgLWVxICRhY3R1YWwpIHsgcmV0dXJuICRmYWxzZSB9CiAgaWYgKC1ub3QgJGNhc2VTZW5zaXRpdmUpIHsgJGFjdHVhbCA9ICRhY3R1YWwuVG9Mb3dlckludmFyaWFudCgpOyAkd2FudGVkID0gJHdhbnRlZC5Ub0xvd2VySW52YXJpYW50KCkgfQogIGlmICgkY29udGFpbnMpIHsgcmV0dXJuICRhY3R1YWwuQ29udGFpbnMoJHdhbnRlZCkgfQogIHJldHVybiAkYWN0dWFsIC1lcSAkd2FudGVkCn0KCmZ1bmN0aW9uIEVsZW1lbnQtTWF0Y2goJGUsICRwKSB7CiAgJGNvbnRhaW5zID0gW2Jvb2xdKCRwLmNvbnRhaW5zKQogICRjYXNlU2Vuc2l0aXZlID0gW2Jvb2xdKCRwLmNhc2Vfc2Vuc2l0aXZlKQogICRuYW1lID0gW3N0cmluZ10oU2FmZS1Qcm9wICRlICdOYW1lJyAnJykKICAkYWlkID0gW3N0cmluZ10oU2FmZS1Qcm9wICRlICdBdXRvbWF0aW9uSWQnICcnKQogICRjdCA9ICIiCiAgdHJ5IHsgJGN0ID0gJGUuQ3VycmVudC5Db250cm9sVHlwZS5Qcm9ncmFtbWF0aWNOYW1lIC1yZXBsYWNlICdeQ29udHJvbFR5cGVcXC4nLCcnIH0gY2F0Y2gge30KICBpZiAoLW5vdCAoVGV4dC1NYXRjaCAkbmFtZSAoW3N0cmluZ10kcC5uYW1lKSAkY29udGFpbnMgJGNhc2VTZW5zaXRpdmUpKSB7IHJldHVybiAkZmFsc2UgfQogIGlmICgtbm90IChUZXh0LU1hdGNoICRhaWQgKFtzdHJpbmddJHAuYXV0b21hdGlvbl9pZCkgJGNvbnRhaW5zICRjYXNlU2Vuc2l0aXZlKSkgeyByZXR1cm4gJGZhbHNlIH0KICBpZiAoLW5vdCAoVGV4dC1NYXRjaCAkY3QgKFtzdHJpbmddJHAuY29udHJvbF90eXBlKSAkZmFsc2UgJGNhc2VTZW5zaXRpdmUpKSB7IHJldHVybiAkZmFsc2UgfQogIGlmICgkcC5lbmFibGVkX29ubHkgLWVxICR0cnVlIC1hbmQgLW5vdCBbYm9vbF0oU2FmZS1Qcm9wICRlICdJc0VuYWJsZWQnICRmYWxzZSkpIHsgcmV0dXJuICRmYWxzZSB9CiAgaWYgKCRwLnZpc2libGVfb25seSAtbmUgJGZhbHNlIC1hbmQgW2Jvb2xdKFNhZmUtUHJvcCAkZSAnSXNPZmZzY3JlZW4nICR0cnVlKSkgeyByZXR1cm4gJGZhbHNlIH0KICByZXR1cm4gJHRydWUKfQoKZnVuY3Rpb24gQ2hpbGRyZW4oJHdhbGtlciwgJHBhcmVudCkgewogICRvdXQgPSBOZXctT2JqZWN0IFN5c3RlbS5Db2xsZWN0aW9ucy5HZW5lcmljLkxpc3Rbb2JqZWN0XQogIHRyeSB7CiAgICAkYyA9ICR3YWxrZXIuR2V0Rmlyc3RDaGlsZCgkcGFyZW50KQogICAgd2hpbGUgKCRudWxsIC1uZSAkYykgeyBbdm9pZF0kb3V0LkFkZCgkYyk7ICRjID0gJHdhbGtlci5HZXROZXh0U2libGluZygkYykgfQogIH0gY2F0Y2gge30KICByZXR1cm4gJG91dAp9CgpmdW5jdGlvbiBUcmF2ZXJzZSgkcm9vdCwgW2ludF0kc2NhbkxpbWl0LCBbaW50XSRyZXR1cm5MaW1pdCwgJHBheWxvYWQsIFtib29sXSRtYXRjaE9ubHkpIHsKICAkd2Fsa2VyID0gW1N5c3RlbS5XaW5kb3dzLkF1dG9tYXRpb24uVHJlZVdhbGtlcl06OkNvbnRyb2xWaWV3V2Fsa2VyCiAgJHF1ZXVlID0gTmV3LU9iamVjdCAnU3lzdGVtLkNvbGxlY3Rpb25zLkdlbmVyaWMuUXVldWVbU3lzdGVtLldpbmRvd3MuQXV0b21hdGlvbi5BdXRvbWF0aW9uRWxlbWVudF0nCiAgZm9yZWFjaCAoJGMgaW4gKENoaWxkcmVuICR3YWxrZXIgJHJvb3QpKSB7ICRxdWV1ZS5FbnF1ZXVlKCRjKSB9CiAgJGl0ZW1zID0gTmV3LU9iamVjdCBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYy5MaXN0W29iamVjdF0KICAkc2Nhbm5lZCA9IDAKICAkaW50ZXJlc3RpbmcgPSBAKCdCdXR0b24nLCdFZGl0JywnTGlzdEl0ZW0nLCdUYWJJdGVtJywnTWVudUl0ZW0nLCdIeXBlcmxpbmsnLCdDaGVja0JveCcsJ1JhZGlvQnV0dG9uJywnQ29tYm9Cb3gnLCdUcmVlSXRlbScsJ0RhdGFJdGVtJywnRG9jdW1lbnQnLCdUcmVlJywnTGlzdCcsJ01lbnUnLCdUb29sQmFyJykKICB3aGlsZSAoJHF1ZXVlLkNvdW50IC1ndCAwIC1hbmQgJHNjYW5uZWQgLWx0ICRzY2FuTGltaXQgLWFuZCAkaXRlbXMuQ291bnQgLWx0ICRyZXR1cm5MaW1pdCkgewogICAgJGUgPSAkcXVldWUuRGVxdWV1ZSgpOyAkc2Nhbm5lZCsrCiAgICBmb3JlYWNoICgkYyBpbiAoQ2hpbGRyZW4gJHdhbGtlciAkZSkpIHsgaWYgKCRxdWV1ZS5Db3VudCAtbHQgJHNjYW5MaW1pdCkgeyAkcXVldWUuRW5xdWV1ZSgkYykgfSB9CiAgICAkaW5jbHVkZSA9ICRmYWxzZQogICAgaWYgKCRtYXRjaE9ubHkpIHsgJGluY2x1ZGUgPSBFbGVtZW50LU1hdGNoICRlICRwYXlsb2FkIH0KICAgIGVsc2UgewogICAgICAkcGxhaW4gPSBQbGFpbi1FbGVtZW50ICRlCiAgICAgIGlmICgkbnVsbCAtbmUgJHBsYWluKSB7CiAgICAgICAgJGluY2x1ZGUgPSAoLW5vdCBbc3RyaW5nXTo6SXNOdWxsT3JXaGl0ZVNwYWNlKCRwbGFpbi5uYW1lKSkgLW9yICgtbm90IFtzdHJpbmddOjpJc051bGxPcldoaXRlU3BhY2UoJHBsYWluLmF1dG9tYXRpb25faWQpKSAtb3IgJHBsYWluLmZvY3VzYWJsZSAtb3IgKCRpbnRlcmVzdGluZyAtY29udGFpbnMgJHBsYWluLmNvbnRyb2xfdHlwZSkKICAgICAgfQogICAgfQogICAgaWYgKCRpbmNsdWRlKSB7ICRwbGFpbiA9IFBsYWluLUVsZW1lbnQgJGU7IGlmICgkbnVsbCAtbmUgJHBsYWluKSB7IFt2b2lkXSRpdGVtcy5BZGQoW3BzY3VzdG9tb2JqZWN0XUB7IGVsZW1lbnQ9JGU7IHBsYWluPSRwbGFpbiB9KSB9IH0KICB9CiAgcmV0dXJuIFtwc2N1c3RvbW9iamVjdF1AeyBzY2FubmVkPSRzY2FubmVkOyBpdGVtcz0kaXRlbXMgfQp9CgokcCA9IERlY29kZS1QYXlsb2FkICRQYXlsb2FkQmFzZTY0CiRod25kID0gW0hBMk5hdGl2ZV06OkdldEZvcmVncm91bmRXaW5kb3coKQokZmcgPSAkbnVsbAppZiAoJGh3bmQgLW5lIFtJbnRQdHJdOjpaZXJvKSB7IHRyeSB7ICRmZyA9IFtTeXN0ZW0uV2luZG93cy5BdXRvbWF0aW9uLkF1dG9tYXRpb25FbGVtZW50XTo6RnJvbUhhbmRsZSgkaHduZCkgfSBjYXRjaCB7fSB9CmlmICgkbnVsbCAtZXEgJGZnKSB7ICRmZyA9IFtTeXN0ZW0uV2luZG93cy5BdXRvbWF0aW9uLkF1dG9tYXRpb25FbGVtZW50XTo6Um9vdEVsZW1lbnQgfQokZm9jdXNlZCA9ICRudWxsCnRyeSB7ICRmb2N1c2VkID0gW1N5c3RlbS5XaW5kb3dzLkF1dG9tYXRpb24uQXV0b21hdGlvbkVsZW1lbnRdOjpGb2N1c2VkRWxlbWVudCB9IGNhdGNoIHt9CiRtYXhFbGVtZW50cyA9IDI1MAp0cnkgeyBpZiAoJHAubWF4X2VsZW1lbnRzKSB7ICRtYXhFbGVtZW50cyA9IFttYXRoXTo6TWF4KDEwLCBbbWF0aF06Ok1pbig1MDAsIFtpbnRdJHAubWF4X2VsZW1lbnRzKSkgfSB9IGNhdGNoIHt9CiRzY2FuTGltaXQgPSAxNjAwCnRyeSB7IGlmICgkcC5zY2FuX2xpbWl0KSB7ICRzY2FuTGltaXQgPSBbbWF0aF06Ok1heCgxMDAsIFttYXRoXTo6TWluKDUwMDAsIFtpbnRdJHAuc2Nhbl9saW1pdCkpIH0gfSBjYXRjaCB7fQoKaWYgKCRNb2RlIC1lcSAnb2JzZXJ2ZScpIHsKICAkdCA9IFRyYXZlcnNlICRmZyAkc2NhbkxpbWl0ICRtYXhFbGVtZW50cyAkcCAkZmFsc2UKICAkZWxzID0gQCgpOyBmb3JlYWNoICgkeCBpbiAkdC5pdGVtcykgeyAkZWxzICs9ICR4LnBsYWluIH0KICAkb3V0ID0gW29yZGVyZWRdQHsgb2s9JHRydWU7IGVuZ2luZT0nd2luZG93cy11aWEnOyB3aW5kb3c9KFBsYWluLUVsZW1lbnQgJGZnKTsgZm9jdXNlZD0oUGxhaW4tRWxlbWVudCAkZm9jdXNlZCk7IHNjYW5uZWQ9JHQuc2Nhbm5lZDsgcmV0dXJuZWQ9JGVscy5Db3VudDsgZWxlbWVudHM9JGVscyB9CiAgJG91dCB8IENvbnZlcnRUby1Kc29uIC1EZXB0aCA4IC1Db21wcmVzcwogIGV4aXQgMAp9CgokbGltaXRDYW5kaWRhdGVzID0gMjAKdHJ5IHsgaWYgKCRwLmxpbWl0KSB7ICRsaW1pdENhbmRpZGF0ZXMgPSBbbWF0aF06Ok1heCgxLCBbbWF0aF06Ok1pbig1MCwgW2ludF0kcC5saW1pdCkpIH0gfSBjYXRjaCB7fQokdCA9IFRyYXZlcnNlICRmZyAkc2NhbkxpbWl0ICRsaW1pdENhbmRpZGF0ZXMgJHAgJHRydWUKJGNhbmRzID0gQCgpOyBmb3JlYWNoICgkeCBpbiAkdC5pdGVtcykgeyAkY2FuZHMgKz0gJHgucGxhaW4gfQppZiAoJE1vZGUgLWVxICdmaW5kJykgewogIFtvcmRlcmVkXUB7IG9rPSR0cnVlOyBlbmdpbmU9J3dpbmRvd3MtdWlhJzsgc2Nhbm5lZD0kdC5zY2FubmVkOyBjb3VudD0kY2FuZHMuQ291bnQ7IGNhbmRpZGF0ZXM9JGNhbmRzIH0gfCBDb252ZXJ0VG8tSnNvbiAtRGVwdGggOCAtQ29tcHJlc3MKICBleGl0IDAKfQoKaWYgKCRjYW5kcy5Db3VudCAtZXEgMCkgewogIFtvcmRlcmVkXUB7IG9rPSRmYWxzZTsgZXJyb3I9J2VsZW1lbnRfbm90X2ZvdW5kJzsgc2Nhbm5lZD0kdC5zY2FubmVkOyBjYW5kaWRhdGVzPUAoKSB9IHwgQ29udmVydFRvLUpzb24gLURlcHRoIDYgLUNvbXByZXNzCiAgZXhpdCAwCn0KJGluZGV4ID0gMAp0cnkgeyBpZiAoJG51bGwgLW5lICRwLmluZGV4KSB7ICRpbmRleCA9IFtpbnRdJHAuaW5kZXggfSB9IGNhdGNoIHt9CmlmICgkaW5kZXggLWx0IDAgLW9yICRpbmRleCAtZ2UgJHQuaXRlbXMuQ291bnQpIHsKICBbb3JkZXJlZF1AeyBvaz0kZmFsc2U7IGVycm9yPSdlbGVtZW50X2luZGV4X291dF9vZl9yYW5nZSc7IGNvdW50PSRjYW5kcy5Db3VudDsgY2FuZGlkYXRlcz0kY2FuZHMgfSB8IENvbnZlcnRUby1Kc29uIC1EZXB0aCA4IC1Db21wcmVzcwogIGV4aXQgMAp9CmlmICgkdC5pdGVtcy5Db3VudCAtZ3QgMSAtYW5kICRudWxsIC1lcSAkcC5pbmRleCAtYW5kICRwLmFsbG93X2FtYmlndW91cyAtbmUgJHRydWUpIHsKICBbb3JkZXJlZF1AeyBvaz0kZmFsc2U7IGVycm9yPSdlbGVtZW50X2FtYmlndW91cyc7IGNvdW50PSRjYW5kcy5Db3VudDsgY2FuZGlkYXRlcz0kY2FuZHMgfSB8IENvbnZlcnRUby1Kc29uIC1EZXB0aCA4IC1Db21wcmVzcwogIGV4aXQgMAp9CiR0YXJnZXQgPSAkdC5pdGVtc1skaW5kZXhdLmVsZW1lbnQKJHBsYWluVGFyZ2V0ID0gJHQuaXRlbXNbJGluZGV4XS5wbGFpbgokb3BlcmF0aW9uID0gW3N0cmluZ10kcC5vcGVyYXRpb24KaWYgKFtzdHJpbmddOjpJc051bGxPcldoaXRlU3BhY2UoJG9wZXJhdGlvbikpIHsgJG9wZXJhdGlvbiA9ICdpbnZva2UnIH0KaWYgKCRvcGVyYXRpb24gLWVxICdmb2N1cycpIHsKICB0cnkgeyAkdGFyZ2V0LlNldEZvY3VzKCk7IFtvcmRlcmVkXUB7b2s9JHRydWU7IG1ldGhvZD0ndWlhX2ZvY3VzJzsgZWxlbWVudD0kcGxhaW5UYXJnZXR9IHwgQ29udmVydFRvLUpzb24gLURlcHRoIDggLUNvbXByZXNzIH0gY2F0Y2ggeyBbb3JkZXJlZF1Ae29rPSRmYWxzZTsgZXJyb3I9KCdmb2N1c19mYWlsZWQ6JysgJF8uRXhjZXB0aW9uLk1lc3NhZ2UpOyBlbGVtZW50PSRwbGFpblRhcmdldH0gfCBDb252ZXJ0VG8tSnNvbiAtRGVwdGggOCAtQ29tcHJlc3MgfQogIGV4aXQgMAp9CiRwYXR0ZXJuID0gJG51bGwKdHJ5IHsKICBpZiAoJHRhcmdldC5UcnlHZXRDdXJyZW50UGF0dGVybihbU3lzdGVtLldpbmRvd3MuQXV0b21hdGlvbi5JbnZva2VQYXR0ZXJuXTo6UGF0dGVybiwgW3JlZl0kcGF0dGVybikpIHsKICAgICRwYXR0ZXJuLkludm9rZSgpOyBbb3JkZXJlZF1Ae29rPSR0cnVlOyBtZXRob2Q9J3VpYV9pbnZva2UnOyBlbGVtZW50PSRwbGFpblRhcmdldH0gfCBDb252ZXJ0VG8tSnNvbiAtRGVwdGggOCAtQ29tcHJlc3M7IGV4aXQgMAogIH0KfSBjYXRjaCB7fQp0cnkgewogICRwYXR0ZXJuID0gJG51bGwKICBpZiAoJHRhcmdldC5UcnlHZXRDdXJyZW50UGF0dGVybihbU3lzdGVtLldpbmRvd3MuQXV0b21hdGlvbi5TZWxlY3Rpb25JdGVtUGF0dGVybl06OlBhdHRlcm4sIFtyZWZdJHBhdHRlcm4pKSB7CiAgICAkcGF0dGVybi5TZWxlY3QoKTsgW29yZGVyZWRdQHtvaz0kdHJ1ZTsgbWV0aG9kPSd1aWFfc2VsZWN0JzsgZWxlbWVudD0kcGxhaW5UYXJnZXR9IHwgQ29udmVydFRvLUpzb24gLURlcHRoIDggLUNvbXByZXNzOyBleGl0IDAKICB9Cn0gY2F0Y2gge30KW29yZGVyZWRdQHtvaz0kdHJ1ZTsgbWV0aG9kPSdtb3VzZV9yZXF1aXJlZCc7IGVsZW1lbnQ9JHBsYWluVGFyZ2V0fSB8IENvbnZlcnRUby1Kc29uIC1EZXB0aCA4IC1Db21wcmVzcwonJycKCmhlbHBlciA9IHInJycKCmRlZiBfcGNfdWlhX3NjcmlwdF9wYXRoKCk6CiAgICByZXR1cm4gX3BjX3Jvb3QoKSAvICJwcm9qZWN0cyIgLyAiaHVtYW5fYXNzaXN0YW50X3VpYS5wczEiCgoKZGVmIF9wY191aWFfY2FsbChtb2RlLCBwYXlsb2FkKToKICAgIF9wY19yZXF1aXJlX2VuYWJsZWQoKQogICAgc2NyaXB0ID0gX3BjX3VpYV9zY3JpcHRfcGF0aCgpCiAgICBpZiBub3Qgc2NyaXB0LmlzX2ZpbGUoKToKICAgICAgICByYWlzZSBSdW50aW1lRXJyb3IoImhhMl91aWFfc2NyaXB0X21pc3NpbmciKQogICAgaW1wb3J0IGJhc2U2NAogICAgcmF3ID0ganNvbi5kdW1wcyhwYXlsb2FkIG9yIHt9LCBlbnN1cmVfYXNjaWk9RmFsc2UsIHNlcGFyYXRvcnM9KCIsIiwgIjoiKSkuZW5jb2RlKCJ1dGYtOCIpCiAgICBlbmNvZGVkID0gYmFzZTY0LmI2NGVuY29kZShyYXcpLmRlY29kZSgiYXNjaWkiKQogICAgdGltZW91dCA9IG1heCgyLCBtaW4oMjAsIGludCgocGF5bG9hZCBvciB7fSkuZ2V0KCJ0aW1lb3V0X3NlY29uZHMiLCA4KSkpKQogICAgY21kID0gWyJwb3dlcnNoZWxsIiwgIi1Ob1Byb2ZpbGUiLCAiLVNUQSIsICItRXhlY3V0aW9uUG9saWN5IiwgIkJ5cGFzcyIsICItRmlsZSIsIHN0cihzY3JpcHQpLCAiLU1vZGUiLCBzdHIobW9kZSksICItUGF5bG9hZEJhc2U2NCIsIGVuY29kZWRdCiAgICB0cnk6CiAgICAgICAgb3V0ID0gc3VicHJvY2Vzcy5ydW4oY21kLCBjd2Q9c3RyKF9wY19yb290KCkpLCBjYXB0dXJlX291dHB1dD1UcnVlLCB0ZXh0PVRydWUsIGVuY29kaW5nPSJ1dGYtOCIsIGVycm9ycz0icmVwbGFjZSIsIHRpbWVvdXQ9dGltZW91dCkKICAgIGV4Y2VwdCBzdWJwcm9jZXNzLlRpbWVvdXRFeHBpcmVkIGFzIGV4YzoKICAgICAgICByYWlzZSBSdW50aW1lRXJyb3IoImhhMl91aWFfdGltZW91dCIpIGZyb20gZXhjCiAgICBpZiBvdXQucmV0dXJuY29kZSAhPSAwOgogICAgICAgIGRldGFpbCA9IChvdXQuc3RkZXJyIG9yIG91dC5zdGRvdXQgb3IgIiIpWy0yMDAwOl0uc3RyaXAoKQogICAgICAgIHJhaXNlIFJ1bnRpbWVFcnJvcigiaGEyX3VpYV9mYWlsZWQ6IiArIGRldGFpbCkKICAgIGxpbmVzID0gW2xpbmUuc3RyaXAoKSBmb3IgbGluZSBpbiBvdXQuc3Rkb3V0LnNwbGl0bGluZXMoKSBpZiBsaW5lLnN0cmlwKCldCiAgICBpZiBub3QgbGluZXM6CiAgICAgICAgcmFpc2UgUnVudGltZUVycm9yKCJoYTJfdWlhX2VtcHR5X291dHB1dCIpCiAgICB0cnk6CiAgICAgICAgZGF0YSA9IGpzb24ubG9hZHMobGluZXNbLTFdKQogICAgZXhjZXB0IGpzb24uSlNPTkRlY29kZUVycm9yIGFzIGV4YzoKICAgICAgICByYWlzZSBSdW50aW1lRXJyb3IoImhhMl91aWFfaW52YWxpZF9qc29uOiIgKyBsaW5lc1stMV1bLTUwMDpdKSBmcm9tIGV4YwogICAgZGF0YVsicmV2aXNpb24iXSA9IEhVTUFOX0FTU0lTVEFOVF9SRVZJU0lPTgogICAgcmV0dXJuIGRhdGEKCgpkZWYgX3BjX29ic2VydmUocGF5bG9hZCk6CiAgICBfcGNfcmVxdWlyZV9lbmFibGVkKCkKICAgIGRhdGEgPSBfcGNfdWlhX2NhbGwoIm9ic2VydmUiLCBwYXlsb2FkKQogICAgZ2VvID0gX3BjX2dlb21ldHJ5KCkKICAgIGRhdGFbInZpcnR1YWxfc2NyZWVuIl0gPSB7azogZ2VvW2tdIGZvciBrIGluICgieCIsICJ5IiwgIndpZHRoIiwgImhlaWdodCIpfQogICAgZGF0YVsiY3Vyc29yIl0gPSB7IngiOiBnZW9bImN1cnNvcl94Il0sICJ5IjogZ2VvWyJjdXJzb3JfeSJdfQogICAgaWYgYm9vbChwYXlsb2FkLmdldCgic2NyZWVuc2hvdCIsIEZhbHNlKSk6CiAgICAgICAgc2hvdCA9IF9wY19zY3JlZW5zaG90KHsic2hvd19jdXJzb3IiOiBwYXlsb2FkLmdldCgic2hvd19jdXJzb3IiLCBUcnVlKX0pCiAgICAgICAgZGF0YVsic2NyZWVuc2hvdCJdID0ge2s6IHNob3Rba10gZm9yIGsgaW4gKCJhcnRpZmFjdF9yZWxhdGl2ZV9wYXRoIiwgInNpemUiLCAic2hhMjU2IiwgImltYWdlIil9CiAgICByZXR1cm4gZGF0YQoKCmRlZiBfcGNfZmluZF9lbGVtZW50KHBheWxvYWQpOgogICAgcmV0dXJuIF9wY191aWFfY2FsbCgiZmluZCIsIHBheWxvYWQpCgoKZGVmIF9wY19hY3RpdmF0ZV9lbGVtZW50KHBheWxvYWQsIG9wZXJhdGlvbj0iaW52b2tlIik6CiAgICByZXF1ZXN0ID0gZGljdChwYXlsb2FkIG9yIHt9KQogICAgcmVxdWVzdFsib3BlcmF0aW9uIl0gPSBvcGVyYXRpb24KICAgIGRhdGEgPSBfcGNfdWlhX2NhbGwoImFjdGl2YXRlIiwgcmVxdWVzdCkKICAgIGlmIG5vdCBkYXRhLmdldCgib2siKToKICAgICAgICByZXR1cm4gZGF0YQogICAgaWYgb3BlcmF0aW9uID09ICJmb2N1cyI6CiAgICAgICAgcmV0dXJuIGRhdGEKICAgIGlmIGRhdGEuZ2V0KCJtZXRob2QiKSAhPSAibW91c2VfcmVxdWlyZWQiOgogICAgICAgIHJldHVybiBkYXRhCiAgICBlbGVtZW50ID0gZGF0YS5nZXQoImVsZW1lbnQiKSBvciB7fQogICAgcmVjdCA9IGVsZW1lbnQuZ2V0KCJyZWN0Iikgb3Ige30KICAgIGlmIHJlY3QuZ2V0KCJjZW50ZXJfeCIpIGlzIE5vbmUgb3IgcmVjdC5nZXQoImNlbnRlcl95IikgaXMgTm9uZToKICAgICAgICByZXR1cm4geyJvayI6IEZhbHNlLCAiZXJyb3IiOiAiZWxlbWVudF9oYXNfbm9fY2xpY2thYmxlX3JlY3QiLCAiZWxlbWVudCI6IGVsZW1lbnQsICJyZXZpc2lvbiI6IEhVTUFOX0FTU0lTVEFOVF9SRVZJU0lPTn0KICAgIGNsaWNrX3BheWxvYWQgPSB7CiAgICAgICAgIngiOiBpbnQocm91bmQoZmxvYXQocmVjdFsiY2VudGVyX3giXSkpKSwKICAgICAgICAieSI6IGludChyb3VuZChmbG9hdChyZWN0WyJjZW50ZXJfeSJdKSkpLAogICAgICAgICJidXR0b24iOiBwYXlsb2FkLmdldCgiYnV0dG9uIiwgImxlZnQiKSwKICAgICAgICAiY2xpY2tzIjogcGF5bG9hZC5nZXQoImNsaWNrcyIsIDEpLAogICAgICAgICJpbnRlcnZhbF9tcyI6IHBheWxvYWQuZ2V0KCJpbnRlcnZhbF9tcyIsIDkwKSwKICAgICAgICAiZHVyYXRpb25fbXMiOiBwYXlsb2FkLmdldCgiZHVyYXRpb25fbXMiLCAyNTApLAogICAgfQogICAgY2xpY2tfcmVzdWx0ID0gX3BjX2NsaWNrKGNsaWNrX3BheWxvYWQpCiAgICByZXR1cm4geyJvayI6IFRydWUsICJtZXRob2QiOiAidWlhX3NlbGVjdG9yK21vdXNlIiwgImVsZW1lbnQiOiBlbGVtZW50LCAibW91c2UiOiBjbGlja19yZXN1bHQsICJyZXZpc2lvbiI6IEhVTUFOX0FTU0lTVEFOVF9SRVZJU0lPTn0KCgpkZWYgX3BjX2NsaWNrX2VsZW1lbnQocGF5bG9hZCk6CiAgICByZXR1cm4gX3BjX2FjdGl2YXRlX2VsZW1lbnQocGF5bG9hZCwgImludm9rZSIpCgoKZGVmIF9wY19mb2N1c19lbGVtZW50KHBheWxvYWQpOgogICAgcmV0dXJuIF9wY19hY3RpdmF0ZV9lbGVtZW50KHBheWxvYWQsICJmb2N1cyIpCgoKZGVmIF9wY190eXBlX2ludG8ocGF5bG9hZCk6CiAgICBmb2N1cyA9IF9wY19mb2N1c19lbGVtZW50KHBheWxvYWQpCiAgICBpZiBub3QgZm9jdXMuZ2V0KCJvayIpOgogICAgICAgIHJldHVybiBmb2N1cwogICAgdHlwZWQgPSBfcGNfdHlwZSh7InRleHQiOiBwYXlsb2FkLmdldCgidGV4dCIsICIiKSwgImludGVydmFsX21zIjogcGF5bG9hZC5nZXQoImludGVydmFsX21zIiwgMTUpfSkKICAgIHJldHVybiB7Im9rIjogVHJ1ZSwgIm1ldGhvZCI6ICJ1aWFfZm9jdXMrdHlwZSIsICJmb2N1cyI6IGZvY3VzLCAidHlwZWQiOiB0eXBlZCwgInJldmlzaW9uIjogSFVNQU5fQVNTSVNUQU5UX1JFVklTSU9OfQonJycKCnRleHQgPSB0ZXh0LnJlcGxhY2UoJ0hVTUFOX0FTU0lTVEFOVF9SRVZJU0lPTiA9ICJIQTEiJywgJ0hVTUFOX0FTU0lTVEFOVF9SRVZJU0lPTiA9ICJIQTIiJywgMSkKbWFya2VyID0gJ2RlZiBfcGNfZXhlY3V0ZShhY3Rpb24sIHBheWxvYWQsIGNvbW1hbmRfaWQsIHN0YXJ0ZWQpOlxuJwppZiB0ZXh0LmNvdW50KG1hcmtlcikgIT0gMToKICAgIHJhaXNlIFN5c3RlbUV4aXQoZiJQQ19FWEVDVVRFX01BUktFUl9DT1VOVD17dGV4dC5jb3VudChtYXJrZXIpfSIpCnRleHQgPSB0ZXh0LnJlcGxhY2UobWFya2VyLCBoZWxwZXIgKyAiXG5cbiIgKyBtYXJrZXIsIDEpCm9sZCA9ICcnJyAgICAgICAgZWxpZiBhY3Rpb24gaW4geyJwY19rZXkiLCAicGNfaG90a2V5In06CiAgICAgICAgICAgIGRhdGEgPSBfcGNfa2V5KHBheWxvYWQpCiAgICAgICAgZWxzZToKJycnCm5ldyA9ICcnJyAgICAgICAgZWxpZiBhY3Rpb24gaW4geyJwY19rZXkiLCAicGNfaG90a2V5In06CiAgICAgICAgICAgIGRhdGEgPSBfcGNfa2V5KHBheWxvYWQpCiAgICAgICAgZWxpZiBhY3Rpb24gaW4geyJwY19vYnNlcnZlIiwgInBjX3VpX29ic2VydmUifToKICAgICAgICAgICAgZGF0YSA9IF9wY19vYnNlcnZlKHBheWxvYWQpCiAgICAgICAgZWxpZiBhY3Rpb24gaW4geyJwY19maW5kX2VsZW1lbnQiLCAicGNfZmluZCJ9OgogICAgICAgICAgICBkYXRhID0gX3BjX2ZpbmRfZWxlbWVudChwYXlsb2FkKQogICAgICAgIGVsaWYgYWN0aW9uIGluIHsicGNfY2xpY2tfZWxlbWVudCIsICJwY191aV9jbGljayJ9OgogICAgICAgICAgICBkYXRhID0gX3BjX2NsaWNrX2VsZW1lbnQocGF5bG9hZCkKICAgICAgICBlbGlmIGFjdGlvbiBpbiB7InBjX2ZvY3VzX2VsZW1lbnQiLCAicGNfdWlfZm9jdXMifToKICAgICAgICAgICAgZGF0YSA9IF9wY19mb2N1c19lbGVtZW50KHBheWxvYWQpCiAgICAgICAgZWxpZiBhY3Rpb24gaW4geyJwY190eXBlX2ludG8iLCAicGNfdWlfdHlwZSJ9OgogICAgICAgICAgICBkYXRhID0gX3BjX3R5cGVfaW50byhwYXlsb2FkKQogICAgICAgIGVsc2U6CicnJwppZiB0ZXh0LmNvdW50KG9sZCkgIT0gMToKICAgIHJhaXNlIFN5c3RlbUV4aXQoZiJQQ19ESVNQQVRDSF9NQVJLRVJfQ09VTlQ9e3RleHQuY291bnQob2xkKX0iKQp0ZXh0ID0gdGV4dC5yZXBsYWNlKG9sZCwgbmV3LCAxKQoKc3RhbXAgPSB0aW1lLnN0cmZ0aW1lKCIlWSVtJWRUJUglTSVTIikKYmFja3VwID0gcmVsYXkud2l0aF9uYW1lKHJlbGF5Lm5hbWUgKyBmIi5wcmUtaGEyLXtzdGFtcH0uYmFrIikKYmFja3VwLndyaXRlX2J5dGVzKG9yaWdpbmFsKQpwc19wYXRoID0gcm9vdCAvICJwcm9qZWN0cyIgLyAiaHVtYW5fYXNzaXN0YW50X3VpYS5wczEiCnBzX3BhdGgud3JpdGVfdGV4dChwcywgZW5jb2Rpbmc9InV0Zi04IikKcmVsYXkud3JpdGVfdGV4dCh0ZXh0LCBlbmNvZGluZz0idXRmLTgiKQpweV9jb21waWxlLmNvbXBpbGUoc3RyKHJlbGF5KSwgZG9yYWlzZT1UcnVlKQpjaGVja19jbWQgPSAiW3NjcmlwdGJsb2NrXTo6Q3JlYXRlKChHZXQtQ29udGVudCAtUmF3IC1MaXRlcmFsUGF0aCAnIiArIHN0cihwc19wYXRoKS5yZXBsYWNlKCInIiwgIicnIikgKyAiJykpIHwgT3V0LU51bGw7ICdQU19QQVJTRV9PSyciCmNoZWNrID0gc3VicHJvY2Vzcy5ydW4oWyJwb3dlcnNoZWxsIiwiLU5vUHJvZmlsZSIsIi1Db21tYW5kIixjaGVja19jbWRdLCBjYXB0dXJlX291dHB1dD1UcnVlLCB0ZXh0PVRydWUsIHRpbWVvdXQ9MjApCmlmIGNoZWNrLnJldHVybmNvZGUgIT0gMCBvciAiUFNfUEFSU0VfT0siIG5vdCBpbiBjaGVjay5zdGRvdXQ6CiAgICByZWxheS53cml0ZV9ieXRlcyhvcmlnaW5hbCkKICAgIHJhaXNlIFN5c3RlbUV4aXQoIlBTX1BBUlNFX0ZBSUxFRDoiICsgKGNoZWNrLnN0ZGVyciBvciBjaGVjay5zdGRvdXQpWy0yMDAwOl0pCnByaW50KCJIQTJfUEFUQ0hfT0siKQpwcmludCgiQkFDS1VQPSIgKyBzdHIoYmFja3VwKSkKcHJpbnQoIlJFTEFZX1NIQT0iICsgaGFzaGxpYi5zaGEyNTYocmVsYXkucmVhZF9ieXRlcygpKS5oZXhkaWdlc3QoKSkKcHJpbnQoIlVJQV9TSEE9IiArIGhhc2hsaWIuc2hhMjU2KHBzX3BhdGgucmVhZF9ieXRlcygpKS5oZXhkaWdlc3QoKSkKcHJpbnQoIkVOQUJMRUQ9IiArIHN0cigocm9vdCAvICJicmlkZ2UtZGF0YSIgLyAiaHVtYW4tYXNzaXN0YW50LmVuYWJsZWQiKS5leGlzdHMoKSkpCg HTTP/1.1" 200 - 2026-08-31 13:22:13 "GET /b/f084c6e9cc208651014adf60ecd3bb8f/apply/write?id=d162f68e60be44ea HTTP/1.1" 200 - 2026-08-31 13:23:07 "GET /b/f084c6e9cc208651014adf60ecd3bb8f/stage/run?cwd=projects&cmd=cHl0aG9uIHBhdGNoX2h1bWFuX2Fzc2lzdGFudF9oYTIucHk HTTP/1.1" 200 - 2026-08-31 13:23:07 "GET /b/f084c6e9cc208651014adf60ecd3bb8f/run?id=a6afc13280f57b34 HTTP/1.1" 200 - 2026-08-31 13:23:07 "GET /b/f084c6e9cc208651014adf60ecd3bb8f/job?id=1788153787464 HTTP/1.1" 200 - 2026-08-31 13:23:08 "GET /b/f084c6e9cc208651014adf60ecd3bb8f/job?id=1788153787464 HTTP/1.1" 200 - 2026-08-31 13:23:08 "GET /b/f084c6e9cc208651014adf60ecd3bb8f/job?id=1788153787464 HTTP/1.1" 200 - 2026-08-31 13:23:08 "GET /b/f084c6e9cc208651014adf60ecd3bb8f/job?id=1788153787464 HTTP/1.1" 200 - 2026-08-31 13:23:09 "GET /b/f084c6e9cc208651014adf60ecd3bb8f/job?id=1788153787464 HTTP/1.1" 200 - 2026-08-31 13:23:09 "GET /b/f084c6e9cc208651014adf60ecd3bb8f/job?id=1788153787464 HTTP/1.1" 200 - 2026-08-31 13:23:09 "GET /b/f084c6e9cc208651014adf60ecd3bb8f/job?id=1788153787464 HTTP/1.1" 200 - 2026-08-31 13:23:09 "GET /b/f084c6e9cc208651014adf60ecd3bb8f/job?id=1788153787464 HTTP/1.1" 200 - 2026-08-31 13:23:10 "GET /b/f084c6e9cc208651014adf60ecd3bb8f/job?id=1788153787464 HTTP/1.1" 200 - 2026-08-31 13:23:10 "GET /b/f084c6e9cc208651014adf60ecd3bb8f/job?id=1788153787464 HTTP/1.1" 200 - 2026-08-31 13:23:10 "GET /b/f084c6e9cc208651014adf60ecd3bb8f/job?id=1788153787464 HTTP/1.1" 200 - 2026-08-31 13:23:11 "GET /b/f084c6e9cc208651014adf60ecd3bb8f/job?id=1788153787464 HTTP/1.1" 200 - 2026-08-31 13:23:11 "GET /b/f084c6e9cc208651014adf60ecd3bb8f/job?id=1788153787464 HTTP/1.1" 200 - 2026-08-31 13:23:11 "GET /b/f084c6e9cc208651014adf60ecd3bb8f/job?id=1788153787464 HTTP/1.1" 200 - 2026-08-31 13:23:11 "GET /b/f084c6e9cc208651014adf60ecd3bb8f/job?id=1788153787464 HTTP/1.1" 200 - 2026-08-31 13:23:12 "GET /b/f084c6e9cc208651014adf60ecd3bb8f/job?id=1788153787464 HTTP/1.1" 200 - 2026-08-31 13:24:40 "GET /b/f084c6e9cc208651014adf60ecd3bb8f/stage/run?cwd=projects&cmd=cHl0aG9uIHJlc3RhcnRfZGV2X2FmdGVyX2RlbGF5LnB5 HTTP/1.1" 200 - 2026-08-31 13:24:40 "GET /b/f084c6e9cc208651014adf60ecd3bb8f/run?id=a81fba14f0089e7a HTTP/1.1" 200 - 2026-08-31 13:24:40 "GET /b/f084c6e9cc208651014adf60ecd3bb8f/job?id=1788153880188 HTTP/1.1" 200 - 2026-08-31 13:24:40 "GET /b/f084c6e9cc208651014adf60ecd3bb8f/job?id=1788153880188 HTTP/1.1" 200 - 2026-08-31 13:24:41 "GET /b/f084c6e9cc208651014adf60ecd3bb8f/job?id=1788153880188 HTTP/1.1" 200 - 2026-08-31 13:24:41 "GET /b/f084c6e9cc208651014adf60ecd3bb8f/job?id=1788153880188 HTTP/1.1" 200 - 2026-08-31 13:24:41 "GET /b/f084c6e9cc208651014adf60ecd3bb8f/job?id=1788153880188 HTTP/1.1" 200 -