File tree 3 files changed +59
-23
lines changed
3 files changed +59
-23
lines changed Original file line number Diff line number Diff line change @@ -58,7 +58,7 @@ <h1>{{table|humanize}}</h1>
58
58
{{endfor}}
59
59
60
60
< div class ="addFilter ">
61
- < form style ="display:inline " method ="post ">
61
+ < form style ="display:inline " method ="post " action =" # " >
62
62
< select name ="field " onchange ="updateAddFilter(); ">
63
63
{{for:column:columns}}
64
64
{{if:column|neq(primaryKey)}}
@@ -83,7 +83,7 @@ <h1>{{table|humanize}}</h1>
83
83
</ div >
84
84
85
85
< div class ="addSearch ">
86
- < form style ="display:inline " method ="post ">
86
+ < form style ="display:inline " method ="post " action =" # " >
87
87
< input type ="text " name ="search " />
88
88
< input type ="submit " value ="Search " />
89
89
</ form >
Original file line number Diff line number Diff line change @@ -321,7 +321,7 @@ class="icon search">Search</a>
321
321
{{endfor}}
322
322
323
323
<div class="addFilter">
324
- <form style="display:inline" method="post">
324
+ <form style="display:inline" method="post" action="#" >
325
325
<select name="field" onchange="updateAddFilter();">
326
326
{{for:column:columns}}
327
327
{{if:column|neq(primaryKey)}}
@@ -346,7 +346,7 @@ class="icon search">Search</a>
346
346
</div>
347
347
348
348
<div class="addSearch">
349
- <form style="display:inline" method="post">
349
+ <form style="display:inline" method="post" action="#" >
350
350
<input type="text" name="search" />
351
351
<input type="submit" value="Search" />
352
352
</form>
@@ -13949,7 +13949,7 @@ public function handle(ServerRequestInterface $request): ResponseInterface
13949
13949
// file: webroot/js/list.js
13950
13950
namespace {
13951
13951
$_STATIC['/js/list.js'] = <<<'END_OF_STATIC_FILE'
13952
- ZnVuY3Rpb24gYWpheEdldCh1cmwsIGNhbGxiYWNrKSB7CiAgICB2YXIgeG1saHR0cCA9IG5ldyBYTUxIdHRwUmVxdWVzdCgpOwogICAgeG1saHR0cC5vbnJlYWR5c3RhdGVjaGFuZ2UgPSBmdW5jdGlvbiAoKSB7CiAgICAgICAgaWYgKHhtbGh0dHAucmVhZHlTdGF0ZSA9PSA0ICYmIHhtbGh0dHAuc3RhdHVzID09IDIwMCkgewogICAgICAgICAgICBjb25zb2xlLmxvZygncmVzcG9uc2VUZXh0OicgKyB4bWxodHRwLnJlc3BvbnNlVGV4dCk7CiAgICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgICAgICB2YXIgZGF0YSA9IEpTT04ucGFyc2UoeG1saHR0cC5yZXNwb25zZVRleHQpOwogICAgICAgICAgICB9IGNhdGNoIChlcnIpIHsKICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKGVyci5tZXNzYWdlICsgIiBpbiAiICsgeG1saHR0cC5yZXNwb25zZVRleHQpOwogICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGNhbGxiYWNrKGRhdGEpOwogICAgICAgIH0KICAgIH07CgogICAgeG1saHR0cC5vcGVuKCJHRVQiLCB1cmwsIHRydWUpOwogICAgeG1saHR0cC5zZW5kKCk7Cn0KZnVuY3Rpb24gc29ydFNlbGVjdE9wdGlvbnMobGIpIHsKICAgIGFyciA9IG5ldyBBcnJheSgpOwogICAgZm9yIChpID0gMDsgaSA8IGxiLmxlbmd0aDsgaSsrKSB7CiAgICAgICAgYXJyW2ldID0gbGIub3B0aW9uc1tpXTsKICAgIH0KICAgIGFyci5zb3J0KGZ1bmN0aW9uIChhLCBiKSB7CiAgICAgICAgcmV0dXJuIChhLnRleHQgPiBiLnRleHQpID8gMSA6ICgoYS50ZXh0IDwgYi50ZXh0KSA/IC0xIDogMCk7CiAgICB9KTsKICAgIGZvciAoaSA9IDA7IGkgPCBsYi5sZW5ndGg7IGkrKykgewogICAgICAgIGxiLm9wdGlvbnNbaV0gPSBhcnJbaV07CiAgICB9Cn0KZnVuY3Rpb24gdXBkYXRlQWRkRmlsdGVyKCkgewogICAgY29uc3QgZmllbGQgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcuYWRkRmlsdGVyIFtuYW1lPSJmaWVsZCJdJyk7CiAgICBjb25zdCBvcGVyYXRvciA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJy5hZGRGaWx0ZXIgW25hbWU9Im9wZXJhdG9yIl0nKTsKICAgIGNvbnN0IHZhbHVlID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignLmFkZEZpbHRlciBbbmFtZT0idmFsdWUiXScpOwogICAgY29uc3QgdmFsdWVzID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignLmFkZEZpbHRlciBbbmFtZT0idmFsdWVzIl0nKTsKICAgIGlmIChmaWVsZC5vcHRpb25zW2ZpZWxkLnNlbGVjdGVkSW5kZXhdLmRhdGFzZXQucmVmZXJlbmNlcykgewogICAgICAgIG9wZXJhdG9yLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7CiAgICAgICAgdmFsdWUudHlwZSA9ICdoaWRkZW4nOwogICAgICAgIHZhbHVlcy5zdHlsZS5kaXNwbGF5ID0gJ2lubGluZSc7CiAgICAgICAgYWpheEdldCgndmFsdWVzLycgKyBmaWVsZC52YWx1ZSwgZnVuY3Rpb24gKGRhdGEpIHsKICAgICAgICAgICAgdmFsdWVzLmlubmVySFRNTCA9ICcnOwogICAgICAgICAgICBPYmplY3Qua2V5cyhkYXRhKS5mb3JFYWNoKGZ1bmN0aW9uIChpdGVtKSB7CiAgICAgICAgICAgICAgICB2YXIgb3B0aW9uID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnb3B0aW9uJyk7CiAgICAgICAgICAgICAgICBvcHRpb24udmFsdWUgPSBpdGVtOwogICAgICAgICAgICAgICAgb3B0aW9uLmlubmVySFRNTCA9IGRhdGFbaXRlbV07CiAgICAgICAgICAgICAgICB2YWx1ZXMuYXBwZW5kQ2hpbGQob3B0aW9uKTsKICAgICAgICAgICAgfSk7CiAgICAgICAgICAgIHNvcnRTZWxlY3RPcHRpb25zKHZhbHVlcyk7CiAgICAgICAgfSk7CiAgICB9IGVsc2UgewogICAgICAgIG9wZXJhdG9yLnN0eWxlLmRpc3BsYXkgPSAnaW5saW5lJzsKICAgICAgICB2YWx1ZS50eXBlID0gJ3RleHQnOwogICAgICAgIHZhbHVlcy5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnOwogICAgfQp9CmZ1bmN0aW9uIHVwZGF0ZVRleHRBbmRWYWx1ZSgpIHsKICAgIGNvbnN0IHRleHQgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcuYWRkRmlsdGVyIFtuYW1lPSJ0ZXh0Il0nKTsKICAgIGNvbnN0IHZhbHVlID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignLmFkZEZpbHRlciBbbmFtZT0idmFsdWUiXScpOwogICAgY29uc3QgdmFsdWVzID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignLmFkZEZpbHRlciBbbmFtZT0idmFsdWVzIl0nKTsKICAgIHRleHRBcnJheSA9IFtdOwogICAgdmFsdWVBcnJheSA9IFtdOwogICAgZm9yICh2YXIgaSA9IDA7IGkgPCB2YWx1ZXMub3B0aW9ucy5sZW5ndGg7IGkrKykgewogICAgICAgIGNvbnN0IGl0ZW0gPSB2YWx1ZXMub3B0aW9uc1tpXTsKICAgICAgICBpZiAoaXRlbS5zZWxlY3RlZCkgewogICAgICAgICAgICB0ZXh0QXJyYXkucHVzaChpdGVtLnRleHQpOwogICAgICAgICAgICB2YWx1ZUFycmF5LnB1c2goaXRlbS52YWx1ZSk7CiAgICAgICAgfQogICAgfQogICAgdGV4dC52YWx1ZSA9IHRleHRBcnJheS5qb2luKCcsICcpOwogICAgdmFsdWUudmFsdWUgPSB2YWx1ZUFycmF5LmpvaW4oJywnKTsKfQoKZnVuY3Rpb24gY2xvc2VGaWx0ZXIoaW5kZXgpIHsKICAgIGNvbnN0IGVsZW1lbnRzID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnLmZpbHRlcmJhcicpOwogICAgZm9yICh2YXIgaSA9IDA7IGkgPCBlbGVtZW50cy5sZW5ndGg7IGkrKykgewogICAgICAgIGlmIChlbGVtZW50c1tpXS5kYXRhc2V0LmluZGV4ID09IGluZGV4KSB7CiAgICAgICAgICAgIGVsZW1lbnRzW2ldLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoZWxlbWVudHNbaV0pOwogICAgICAgIH0KICAgIH0KICAgIHJldHVybiByZWxvYWRRdWVyeSgpOwp9CmZ1bmN0aW9uIGVkaXRGaWx0ZXIoaW5kZXgpIHsKICAgIGNvbnN0IGVsZW1lbnRzID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnLmZpbHRlcmJhcicpOwogICAgdmFyIHR5cGUgPSAnJzsKICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZWxlbWVudHMubGVuZ3RoOyBpKyspIHsKICAgICAgICBpZiAoZWxlbWVudHNbaV0uZGF0YXNldC5pbmRleCA9PSBpbmRleCkgewogICAgICAgICAgICB2YXIgZmlsdGVyID0gZWxlbWVudHNbaV0uZGF0YXNldC5maWx0ZXI7CiAgICAgICAgICAgIHR5cGUgPSBmaWx0ZXIuc3Vic3RyKDAsIGZpbHRlci5pbmRleE9mKCIsIikpOwogICAgICAgICAgICBlbGVtZW50c1tpXS5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKGVsZW1lbnRzW2ldKTsKICAgICAgICB9CiAgICB9CiAgICBpZiAodHlwZSA9PSAic2VhcmNoIikgewogICAgICAgIC8vIGhpZGUgYWxsCiAgICAgICAgLy8gc2hvdyBzZWFyY2gKICAgICAgICAvLyBmaWxsIGZvcm0KICAgIH0gZWxzZSBpZiAodHlwZSA9PSAidmFsdWUiKSB7CiAgICAgICAgLy8gaGlkZSBhbGwKICAgICAgICAvLyBzaG93IGZpbHRlcgogICAgICAgIC8vIGZpbGwgZm9ybQogICAgfSBlbHNlIGlmICh0eXBlID09ICJyZWZlcmVuY2UiKSB7CiAgICAgICAgLy8gaGlkZSBhbGwKICAgICAgICAvLyBzaG93IGZpbHRlcgogICAgICAgIC8vIGZpbGwgZm9ybQogICAgfQogICAgcmV0dXJuIGZhbHNlOwp9CmZ1bmN0aW9uIG5hdmlnYXRlUGFnZShwYWdlKSB7CiAgICBjb25zdCBlbGVtZW50ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignLnBhZ2luYXRpb24nKTsKICAgIGlmIChlbGVtZW50KSB7CiAgICAgICAgZWxlbWVudC5kYXRhc2V0LnBhZ2UgPSBwYWdlOwogICAgfQogICAgcmV0dXJuIHJlbG9hZFF1ZXJ5KCk7Cn0KZnVuY3Rpb24gaXNQYXJ0aWFsbHlPZmZzY3JlZW4oZWxlbWVudCkgewogICAgdmFyIHJlY3QgPSBlbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOwogICAgcmV0dXJuIHJlY3QueCA8IDAgfHwgKHJlY3QueCArIHJlY3Qud2lkdGgpID4gKHdpbmRvdy5pbm5lcldpZHRoIC0gMjApOwp9CnZhciB0aW1lT3V0ID0gbnVsbDsKZnVuY3Rpb24gcmVzaXplV2luZG93KCkgewogICAgaWYgKHRpbWVPdXQgIT0gbnVsbCkgY2xlYXJUaW1lb3V0KHRpbWVPdXQpOwogICAgdGltZU91dCA9IHNldFRpbWVvdXQoaGlkZUNvbHVtbnMsIDEwMCk7Cn0KZnVuY3Rpb24gaGlkZUNvbHVtbnMoKSB7CiAgICBjb25zdCBhbGwgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCd0aCwgdGQnKTsKICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYWxsLmxlbmd0aDsgaSsrKSB7CiAgICAgICAgYWxsW2ldLmNsYXNzTGlzdC5yZW1vdmUoJ2hpZGRlbicpOwogICAgfQogICAgaWYgKHdpbmRvdy5pbm5lcldpZHRoID49IDE1MDApIHsKICAgICAgICByZXR1cm47CiAgICB9CiAgICBjb25zdCBlbGVtZW50cyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ3RoJyk7CiAgICB2YXIgbWF4ID0gZWxlbWVudHMubGVuZ3RoOwogICAgZm9yICh2YXIgaSA9IDA7IGkgPCBlbGVtZW50cy5sZW5ndGg7IGkrKykgewogICAgICAgIGlmIChpc1BhcnRpYWxseU9mZnNjcmVlbihlbGVtZW50c1tpXSkpIHsKICAgICAgICAgICAgbWF4ID0gaTsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgfQogICAgfQogICAgY29uc3QgaGVhZGVycyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ3RoOm50aC1jaGlsZChuKycgKyAobWF4ICsgMSkgKyAnKScpOwogICAgZm9yICh2YXIgaSA9IDA7IGkgPCBoZWFkZXJzLmxlbmd0aDsgaSsrKSB7CiAgICAgICAgaGVhZGVyc1tpXS5jbGFzc0xpc3QuYWRkKCdoaWRkZW4nKTsKICAgIH0KICAgIGNvbnN0IGNlbGxzID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgndGQ6bnRoLWNoaWxkKG4rJyArIChtYXggKyAxKSArICcpJyk7CiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGNlbGxzLmxlbmd0aDsgaSsrKSB7CiAgICAgICAgY2VsbHNbaV0uY2xhc3NMaXN0LmFkZCgnaGlkZGVuJyk7CiAgICB9Cn0KZnVuY3Rpb24gcmVsb2FkUXVlcnkoKSB7CiAgICBjb25zdCBlbGVtZW50cyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJy5maWx0ZXJiYXInKTsKICAgIHZhciBwYXJhbXMgPSBbXTsKICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZWxlbWVudHMubGVuZ3RoOyBpKyspIHsKICAgICAgICBwYXJhbXMucHVzaCgnZmlsdGVyPScgKyBlbmNvZGVVUklDb21wb25lbnQoZWxlbWVudHNbaV0uZGF0YXNldC5maWx0ZXIpKTsKICAgIH0KICAgIGNvbnN0IGVsZW1lbnQgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcucGFnaW5hdGlvbicpOwogICAgaWYgKGVsZW1lbnQpIHsKICAgICAgICBwYXJhbXMucHVzaCgncGFnZT0nICsgZW5jb2RlVVJJQ29tcG9uZW50KGVsZW1lbnQuZGF0YXNldC5wYWdlKSk7CiAgICB9CiAgICBkb2N1bWVudC5sb2NhdGlvbi5ocmVmID0gJz8nICsgcGFyYW1zLmpvaW4oJyYnKTsKICAgIHJldHVybiBmYWxzZTsKfQp3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsIGZ1bmN0aW9uICgpIHsgaGlkZUNvbHVtbnMoKTsgdXBkYXRlQWRkRmlsdGVyKCk7IH0pOwp3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigncmVzaXplJywgZnVuY3Rpb24gKCkgeyByZXNpemVXaW5kb3coKTsgfSk7Cg==
13952
+ ZnVuY3Rpb24gYWpheEdldCh1cmwsIGNhbGxiYWNrKSB7CiAgICB2YXIgeG1saHR0cCA9IG5ldyBYTUxIdHRwUmVxdWVzdCgpOwogICAgeG1saHR0cC5vbnJlYWR5c3RhdGVjaGFuZ2UgPSBmdW5jdGlvbiAoKSB7CiAgICAgICAgaWYgKHhtbGh0dHAucmVhZHlTdGF0ZSA9PSA0ICYmIHhtbGh0dHAuc3RhdHVzID09IDIwMCkgewogICAgICAgICAgICBjb25zb2xlLmxvZygncmVzcG9uc2VUZXh0OicgKyB4bWxodHRwLnJlc3BvbnNlVGV4dCk7CiAgICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgICAgICB2YXIgZGF0YSA9IEpTT04ucGFyc2UoeG1saHR0cC5yZXNwb25zZVRleHQpOwogICAgICAgICAgICB9IGNhdGNoIChlcnIpIHsKICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKGVyci5tZXNzYWdlICsgIiBpbiAiICsgeG1saHR0cC5yZXNwb25zZVRleHQpOwogICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGNhbGxiYWNrKGRhdGEpOwogICAgICAgIH0KICAgIH07CgogICAgeG1saHR0cC5vcGVuKCJHRVQiLCB1cmwsIHRydWUpOwogICAgeG1saHR0cC5zZW5kKCk7Cn0KZnVuY3Rpb24gc29ydFNlbGVjdE9wdGlvbnMobGIpIHsKICAgIGFyciA9IG5ldyBBcnJheSgpOwogICAgZm9yIChpID0gMDsgaSA8IGxiLmxlbmd0aDsgaSsrKSB7CiAgICAgICAgYXJyW2ldID0gbGIub3B0aW9uc1tpXTsKICAgIH0KICAgIGFyci5zb3J0KGZ1bmN0aW9uIChhLCBiKSB7CiAgICAgICAgcmV0dXJuIChhLnRleHQgPiBiLnRleHQpID8gMSA6ICgoYS50ZXh0IDwgYi50ZXh0KSA/IC0xIDogMCk7CiAgICB9KTsKICAgIGZvciAoaSA9IDA7IGkgPCBsYi5sZW5ndGg7IGkrKykgewogICAgICAgIGxiLm9wdGlvbnNbaV0gPSBhcnJbaV07CiAgICB9Cn0KZnVuY3Rpb24gcmVmbGVjdEhhc2goKSB7CiAgICBjb25zdCBoYXNoID0gd2luZG93LmxvY2F0aW9uLmhhc2g7CiAgICB2YXIgbmFtZSA9ICcnOwogICAgdmFyIG9wID0gJyc7CiAgICB2YXIgc3RyID0gJyc7CiAgICBjb25zdCBmaWVsZCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJy5hZGRGaWx0ZXIgW25hbWU9ImZpZWxkIl0nKTsKICAgIGNvbnN0IG9wZXJhdG9yID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignLmFkZEZpbHRlciBbbmFtZT0ib3BlcmF0b3IiXScpOwogICAgY29uc3QgdmFsdWUgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcuYWRkRmlsdGVyIFtuYW1lPSJ2YWx1ZSJdJyk7CiAgICBjb25zdCB2YWx1ZXMgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcuYWRkRmlsdGVyIFtuYW1lPSJ2YWx1ZXMiXScpOwogICAgY29uc3Qgc2VhcmNoID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignLmFkZFNlYXJjaCBbbmFtZT0ic2VhcmNoIl0nKTsKICAgIGlmIChoYXNoLmxlbmd0aCA+IDEpIHsKICAgICAgICBjb25zdCBwYXJ0cyA9IGhhc2guc3BsaXQoJywnLCA0KTsKICAgICAgICBpZiAocGFydHNbMF0gPT0gJyNzZWFyY2gnKSB7CiAgICAgICAgICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJy5hZGRTZWFyY2gnKS5jbGFzc0xpc3QuYWRkKCd2aXNpYmxlJyk7CiAgICAgICAgICAgIG5hbWUgPSBwYXJ0c1sxXTsKICAgICAgICAgICAgb3AgPSAnY3MnOwogICAgICAgICAgICBzdHIgPSBwYXJ0c1syXTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcuYWRkRmlsdGVyJykuY2xhc3NMaXN0LmFkZCgndmlzaWJsZScpOwogICAgICAgICAgICBuYW1lID0gcGFydHNbMV07CiAgICAgICAgICAgIG9wID0gcGFydHNbMl07CiAgICAgICAgICAgIHN0ciA9IHBhcnRzWzNdOwogICAgICAgIH0KICAgICAgICAvL3NldCBmaWVsZAogICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZmllbGQub3B0aW9ucy5sZW5ndGg7IGkrKykgewogICAgICAgICAgICBpZiAoZmllbGQub3B0aW9uc1tpXS52YWx1ZSA9PSBuYW1lKSB7CiAgICAgICAgICAgICAgICBmaWVsZC5zZWxlY3RlZEluZGV4ID0gaTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgb3BlcmF0b3Iub3B0aW9ucy5sZW5ndGg7IGkrKykgewogICAgICAgICAgICBpZiAob3BlcmF0b3Iub3B0aW9uc1tpXS52YWx1ZSA9PSBvcCkgewogICAgICAgICAgICAgICAgb3BlcmF0b3Iuc2VsZWN0ZWRJbmRleCA9IGk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICB2YWx1ZS52YWx1ZSA9IHN0ciB8fCAnJzsKICAgICAgICBzdHJzID0gc3RyLnNwbGl0KCd8Jyk7CiAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB2YWx1ZXMub3B0aW9ucy5sZW5ndGg7IGkrKykgewogICAgICAgICAgICBpZiAoc3Rycy5pbmRleE9mKHZhbHVlcy5vcHRpb25zW2ldLnZhbHVlKSA+PSAwKSB7CiAgICAgICAgICAgICAgICB2YWx1ZXMub3B0aW9uc1tpXS5zZWxlY3RlZCA9IHRydWU7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBzZWFyY2gudmFsdWUgPSBzdHIgfHwgJyc7CiAgICB9Cn0KCmZ1bmN0aW9uIHVwZGF0ZUFkZEZpbHRlcigpIHsKICAgIGNvbnN0IGZpZWxkID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignLmFkZEZpbHRlciBbbmFtZT0iZmllbGQiXScpOwogICAgY29uc3Qgb3BlcmF0b3IgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcuYWRkRmlsdGVyIFtuYW1lPSJvcGVyYXRvciJdJyk7CiAgICBjb25zdCB2YWx1ZSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJy5hZGRGaWx0ZXIgW25hbWU9InZhbHVlIl0nKTsKICAgIGNvbnN0IHZhbHVlcyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJy5hZGRGaWx0ZXIgW25hbWU9InZhbHVlcyJdJyk7CiAgICBpZiAoZmllbGQub3B0aW9uc1tmaWVsZC5zZWxlY3RlZEluZGV4XS5kYXRhc2V0LnJlZmVyZW5jZXMpIHsKICAgICAgICBvcGVyYXRvci5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnOwogICAgICAgIHZhbHVlLnR5cGUgPSAnaGlkZGVuJzsKICAgICAgICB2YWx1ZXMuc3R5bGUuZGlzcGxheSA9ICdpbmxpbmUnOwogICAgICAgIGFqYXhHZXQoJ3ZhbHVlcy8nICsgZmllbGQudmFsdWUsIGZ1bmN0aW9uIChkYXRhKSB7CiAgICAgICAgICAgIHZhbHVlcy5pbm5lckhUTUwgPSAnJzsKICAgICAgICAgICAgT2JqZWN0LmtleXMoZGF0YSkuZm9yRWFjaChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgICAgICAgICAgdmFyIG9wdGlvbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ29wdGlvbicpOwogICAgICAgICAgICAgICAgb3B0aW9uLnZhbHVlID0gaXRlbTsKICAgICAgICAgICAgICAgIG9wdGlvbi5pbm5lckhUTUwgPSBkYXRhW2l0ZW1dOwogICAgICAgICAgICAgICAgdmFsdWVzLmFwcGVuZENoaWxkKG9wdGlvbik7CiAgICAgICAgICAgIH0pOwogICAgICAgICAgICBzb3J0U2VsZWN0T3B0aW9ucyh2YWx1ZXMpOwogICAgICAgIH0pOwogICAgfSBlbHNlIHsKICAgICAgICBvcGVyYXRvci5zdHlsZS5kaXNwbGF5ID0gJ2lubGluZSc7CiAgICAgICAgdmFsdWUudHlwZSA9ICd0ZXh0JzsKICAgICAgICB2YWx1ZXMuc3R5bGUuZGlzcGxheSA9ICdub25lJzsKICAgIH0KfQpmdW5jdGlvbiB1cGRhdGVUZXh0QW5kVmFsdWUoKSB7CiAgICBjb25zdCB0ZXh0ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignLmFkZEZpbHRlciBbbmFtZT0idGV4dCJdJyk7CiAgICBjb25zdCB2YWx1ZSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJy5hZGRGaWx0ZXIgW25hbWU9InZhbHVlIl0nKTsKICAgIGNvbnN0IHZhbHVlcyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJy5hZGRGaWx0ZXIgW25hbWU9InZhbHVlcyJdJyk7CiAgICB0ZXh0QXJyYXkgPSBbXTsKICAgIHZhbHVlQXJyYXkgPSBbXTsKICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdmFsdWVzLm9wdGlvbnMubGVuZ3RoOyBpKyspIHsKICAgICAgICBjb25zdCBpdGVtID0gdmFsdWVzLm9wdGlvbnNbaV07CiAgICAgICAgaWYgKGl0ZW0uc2VsZWN0ZWQpIHsKICAgICAgICAgICAgdGV4dEFycmF5LnB1c2goaXRlbS50ZXh0KTsKICAgICAgICAgICAgdmFsdWVBcnJheS5wdXNoKGl0ZW0udmFsdWUpOwogICAgICAgIH0KICAgIH0KICAgIHRleHQudmFsdWUgPSB0ZXh0QXJyYXkuam9pbignLCAnKTsKICAgIHZhbHVlLnZhbHVlID0gdmFsdWVBcnJheS5qb2luKCcsJyk7Cn0KCmZ1bmN0aW9uIGNsb3NlRmlsdGVyKGluZGV4KSB7CiAgICBjb25zdCBlbGVtZW50cyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJy5maWx0ZXJiYXInKTsKICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZWxlbWVudHMubGVuZ3RoOyBpKyspIHsKICAgICAgICBpZiAoZWxlbWVudHNbaV0uZGF0YXNldC5pbmRleCA9PSBpbmRleCkgewogICAgICAgICAgICBlbGVtZW50c1tpXS5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKGVsZW1lbnRzW2ldKTsKICAgICAgICB9CiAgICB9CiAgICByZXR1cm4gcmVsb2FkUXVlcnkoKTsKfQpmdW5jdGlvbiBlZGl0RmlsdGVyKGluZGV4KSB7CiAgICBjb25zdCBlbGVtZW50cyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJy5maWx0ZXJiYXInKTsKICAgIHZhciB0eXBlID0gJyc7CiAgICB2YXIgZmlsdGVyID0gJyc7CiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGVsZW1lbnRzLmxlbmd0aDsgaSsrKSB7CiAgICAgICAgaWYgKGVsZW1lbnRzW2ldLmRhdGFzZXQuaW5kZXggPT0gaW5kZXgpIHsKICAgICAgICAgICAgZmlsdGVyID0gZWxlbWVudHNbaV0uZGF0YXNldC5maWx0ZXI7CiAgICAgICAgICAgIHR5cGUgPSBmaWx0ZXIuc3Vic3RyKDAsIGZpbHRlci5pbmRleE9mKCIsIikpOwogICAgICAgICAgICBlbGVtZW50c1tpXS5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKGVsZW1lbnRzW2ldKTsKICAgICAgICB9CiAgICB9CiAgICByZXR1cm4gcmVsb2FkUXVlcnkoZmlsdGVyKTsKfQpmdW5jdGlvbiBuYXZpZ2F0ZVBhZ2UocGFnZSkgewogICAgY29uc3QgZWxlbWVudCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJy5wYWdpbmF0aW9uJyk7CiAgICBpZiAoZWxlbWVudCkgewogICAgICAgIGVsZW1lbnQuZGF0YXNldC5wYWdlID0gcGFnZTsKICAgIH0KICAgIHJldHVybiByZWxvYWRRdWVyeSgpOwp9CmZ1bmN0aW9uIGlzUGFydGlhbGx5T2Zmc2NyZWVuKGVsZW1lbnQpIHsKICAgIHZhciByZWN0ID0gZWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTsKICAgIHJldHVybiByZWN0LnggPCAwIHx8IChyZWN0LnggKyByZWN0LndpZHRoKSA+ICh3aW5kb3cuaW5uZXJXaWR0aCAtIDIwKTsKfQp2YXIgdGltZU91dCA9IG51bGw7CmZ1bmN0aW9uIHJlc2l6ZVdpbmRvdygpIHsKICAgIGlmICh0aW1lT3V0ICE9IG51bGwpIGNsZWFyVGltZW91dCh0aW1lT3V0KTsKICAgIHRpbWVPdXQgPSBzZXRUaW1lb3V0KGhpZGVDb2x1bW5zLCAxMDApOwp9CmZ1bmN0aW9uIGhpZGVDb2x1bW5zKCkgewogICAgY29uc3QgYWxsID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgndGgsIHRkJyk7CiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGFsbC5sZW5ndGg7IGkrKykgewogICAgICAgIGFsbFtpXS5jbGFzc0xpc3QucmVtb3ZlKCdoaWRkZW4nKTsKICAgIH0KICAgIGlmICh3aW5kb3cuaW5uZXJXaWR0aCA+PSAxNTAwKSB7CiAgICAgICAgcmV0dXJuOwogICAgfQogICAgY29uc3QgZWxlbWVudHMgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCd0aCcpOwogICAgdmFyIG1heCA9IGVsZW1lbnRzLmxlbmd0aDsKICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZWxlbWVudHMubGVuZ3RoOyBpKyspIHsKICAgICAgICBpZiAoaXNQYXJ0aWFsbHlPZmZzY3JlZW4oZWxlbWVudHNbaV0pKSB7CiAgICAgICAgICAgIG1heCA9IGk7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgIH0KICAgIH0KICAgIGNvbnN0IGhlYWRlcnMgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCd0aDpudGgtY2hpbGQobisnICsgKG1heCArIDEpICsgJyknKTsKICAgIGZvciAodmFyIGkgPSAwOyBpIDwgaGVhZGVycy5sZW5ndGg7IGkrKykgewogICAgICAgIGhlYWRlcnNbaV0uY2xhc3NMaXN0LmFkZCgnaGlkZGVuJyk7CiAgICB9CiAgICBjb25zdCBjZWxscyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ3RkOm50aC1jaGlsZChuKycgKyAobWF4ICsgMSkgKyAnKScpOwogICAgZm9yICh2YXIgaSA9IDA7IGkgPCBjZWxscy5sZW5ndGg7IGkrKykgewogICAgICAgIGNlbGxzW2ldLmNsYXNzTGlzdC5hZGQoJ2hpZGRlbicpOwogICAgfQp9CmZ1bmN0aW9uIHJlbG9hZFF1ZXJ5KGZpbHRlcikgewogICAgY29uc3QgZWxlbWVudHMgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCcuZmlsdGVyYmFyJyk7CiAgICB2YXIgcGFyYW1zID0gW107CiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGVsZW1lbnRzLmxlbmd0aDsgaSsrKSB7CiAgICAgICAgcGFyYW1zLnB1c2goJ2ZpbHRlcj0nICsgZW5jb2RlVVJJQ29tcG9uZW50KGVsZW1lbnRzW2ldLmRhdGFzZXQuZmlsdGVyKSk7CiAgICB9CiAgICBjb25zdCBlbGVtZW50ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignLnBhZ2luYXRpb24nKTsKICAgIGlmIChlbGVtZW50KSB7CiAgICAgICAgcGFyYW1zLnB1c2goJ3BhZ2U9JyArIGVuY29kZVVSSUNvbXBvbmVudChlbGVtZW50LmRhdGFzZXQucGFnZSkpOwogICAgfQogICAgZG9jdW1lbnQubG9jYXRpb24uaHJlZiA9ICc/JyArIHBhcmFtcy5qb2luKCcmJykgKyAnIycgKyAoZmlsdGVyIHx8ICcnKTsKICAgIHJldHVybiBmYWxzZTsKfQp3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsIGZ1bmN0aW9uICgpIHsgaGlkZUNvbHVtbnMoKTsgcmVmbGVjdEhhc2goKTsgdXBkYXRlQWRkRmlsdGVyKCk7IH0pOwp3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigncmVzaXplJywgZnVuY3Rpb24gKCkgeyByZXNpemVXaW5kb3coKTsgfSk7Cg==
13953
13953
END_OF_STATIC_FILE;
13954
13954
}
13955
13955
You can’t perform that action at this time.
0 commit comments