{"id":15882,"date":"2026-10-27T15:36:43","date_gmt":"2026-10-27T14:36:43","guid":{"rendered":"https:\/\/www.coverfop.it\/?page_id=15882"},"modified":"2026-10-28T15:44:49","modified_gmt":"2026-10-28T14:44:49","slug":"bozza-led-wall","status":"publish","type":"page","link":"https:\/\/www.coverfop.it\/index.php\/bozza-led-wall\/","title":{"rendered":"Bozza led wall"},"content":{"rendered":"<div>\n<p>    <!-- LEDWALL COVERFOP - Aule del giorno\n     Da incollare per intero in un blocco \"HTML personalizzato\" di una pagina WordPress.\n     L'unica riga modificabile e' LEDWALL_URL (indirizzo \/exec dello script Google).\n     Il programma e' codificato per non essere alterato dalla formattazione automatica di WordPress. --><\/p>\n<div id=\"lw-root\">\n<style>\n#lw-root{position:fixed;left:0;top:0;right:0;bottom:0;z-index:2147483000;background:#000;overflow:hidden;cursor:none;font-family:Roboto,\"Segoe UI\",\"Helvetica Neue\",Arial,sans-serif;line-height:1.2;text-align:left}\n#lw-root h1,#lw-root b,#lw-root small,#lw-root em,#lw-root span,#lw-root div,#lw-root i{font-family:inherit;text-transform:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0;border:0;background:none;box-shadow:none;line-height:inherit;font-size:inherit;font-weight:inherit}\n#lw-root svg{display:inline-block;max-width:none;vertical-align:middle}\n#lw-root header,#lw-root main,#lw-root footer{width:auto;max-width:none;min-height:0;transform:none;opacity:1;visibility:visible}\n#lw-root,#lw-root *{box-sizing:border-box;margin:0;padding:0}\n#lw-root{font-family:Roboto,\"Segoe UI\",\"Helvetica Neue\",Arial,sans-serif;color:#ffffff;-webkit-font-smoothing:antialiased}\n#lw-root .num{font-variant-numeric:tabular-nums;-webkit-font-feature-settings:\"tnum\";font-feature-settings:\"tnum\"}\n#lw-root #lw-app{-webkit-transform:scale(.5);transform:scale(.5);position:absolute;left:50%;top:50%;width:1080px;height:1920px;margin:-960px 0 0 -540px;\n  background:#0b2350;display:flex;flex-direction:column;overflow:hidden;\n  -webkit-transform-origin:50% 50%;transform-origin:50% 50%}\n#lw-root header{position:relative;height:192px;flex:none;display:flex;align-items:center;justify-content:space-between;\n  padding:8px 40px 0;background:#061634;border-bottom:3px solid #CDCF01}\n#lw-root .stripe{position:absolute;left:0;right:0;top:0;height:8px;display:flex}\n#lw-root .stripe i{flex:1}\n#lw-root .tbox{line-height:1}\n#lw-root .clock{font-size:108px;font-weight:700;letter-spacing:-1px}\n#lw-root .clock .col{display:inline-block;margin:0 2px}\n#lw-root .clock .col.off{opacity:.25}\n#lw-root .clock small{font-size:40px;color:#a9bde0;font-weight:500;margin-left:10px}\n#lw-root .date{font-size:30px;font-weight:600;color:#dce6f7;margin-top:12px}\n#lw-root .rbox{display:flex;flex-direction:column;align-items:flex-end}\n#lw-root .brand{display:flex;align-items:center}\n#lw-root .bars{display:flex;align-items:flex-end;height:44px;margin-right:14px}\n#lw-root .bars span{width:8px;margin-right:5px;border-radius:4px}\n#lw-root .brand b{font-size:32px;letter-spacing:2px;font-weight:700}\n#lw-root .meteo{display:none;align-items:center;margin-top:18px}\n#lw-root .meteo svg{width:46px;height:46px;margin-right:12px;color:#7AC4C2}\n#lw-root .meteo .t{font-size:40px;font-weight:700;margin-right:12px}\n#lw-root .meteo .d{font-size:22px;color:#a9bde0}\n#lw-root main{position:relative;height:1574px;flex:none;padding:24px 32px 16px;display:flex;flex-direction:column}\n#lw-root #lw-page{display:flex;flex-direction:column;height:100%}\n#lw-root .ttl{display:flex;align-items:center;justify-content:space-between;flex:none;background:#CDCF01;color:#0b1a33;margin:-24px -32px 0;padding:14px 32px}\n#lw-root .ttl h1{font-size:52px;font-weight:800;line-height:1}\n#lw-root .ttl .sub{font-size:24px;color:#0b1a33;font-weight:600}\n#lw-root .legend{display:flex;flex-wrap:wrap;margin-top:18px;flex:none}\n#lw-root .legend span{display:flex;align-items:center;font-size:18px;color:#dce6f7;margin-right:16px;margin-bottom:6px;white-space:nowrap}\n#lw-root .legend i{display:inline-block;width:20px;height:20px;border-radius:5px;margin-right:8px}\n#lw-root .legend .tg{font-size:14px;font-weight:800;padding:2px 6px;border-radius:4px;margin-right:8px;background:#fff;color:#0b0d10}\n#lw-root .thead,#lw-root .row{display:flex}\n#lw-root .thead{height:44px;flex:none;align-items:center;margin-top:10px;font-size:17px;color:#ffffff;font-weight:700;\n  text-transform:uppercase;letter-spacing:2px;padding:0 14px 0 22px;background:#1d4594;border-radius:4px}\n#lw-root .rows{flex:1;display:flex;flex-direction:column;padding-top:8px}\n#lw-root .row{position:relative;margin-bottom:3px;background:#123170;border-radius:4px;align-items:center;\n  padding:8px 14px 8px 22px;overflow:hidden}\n#lw-root .row:nth-child(even){background:#0e2a62}\n#lw-root .row.wait .c2{opacity:.85}\n#lw-root .row.wait .cls b{color:#dce6f7}\n#lw-root .row .edge{position:absolute;left:0;top:0;bottom:0;width:9px}\n#lw-root .c1{width:24%;padding-right:8px}\n#lw-root .c2{width:34%;padding-right:8px}\n#lw-root .c3{width:21%}\n#lw-root .c4{width:21%}\n#lw-root .cls b{display:block;font-size:31px;font-weight:800;letter-spacing:-.3px;line-height:1.1}\n#lw-root .cls small{display:block;font-size:18px;color:#a9bde0;margin-top:5px;letter-spacing:.5px}\n#lw-root .blk{display:flex;align-items:center;flex-wrap:wrap;margin:3px 0}\n#lw-root .pill{display:inline-flex;align-items:center;font-size:30px;font-weight:800;\n  padding:2px 14px 3px 10px;border-radius:9px;white-space:nowrap;line-height:1.15}\n#lw-root .pill svg{width:25px;height:25px;margin-right:8px;flex:none}\n#lw-root .tg{display:inline-block;font-size:17px;font-weight:800;letter-spacing:1px;padding:3px 7px;border-radius:5px;\n  background:#fff;color:#0b0d10;margin-right:8px;line-height:1.1}\n#lw-root .tg.u{background:transparent;color:#dce6f7;box-shadow:inset 0 0 0 2px #dce6f7;margin-left:8px;margin-right:0}\n#lw-root .until{font-size:18px;color:#a9bde0;margin-left:10px;white-space:nowrap}\n#lw-root .starts{font-size:19px;color:#CDCF01;font-weight:700;margin-left:10px;white-space:nowrap}\n#lw-root .row .c3,#lw-root .row .c4{border-left:1px solid #2a4a8a;padding-left:12px;align-self:stretch;display:flex;flex-direction:column;justify-content:center}\n#lw-root .nx{margin:3px 0;line-height:1.15}\n#lw-root .nx .h{font-size:18px;color:#CDCF01;font-weight:700}\n#lw-root .nx .a{font-size:23px;font-weight:700;color:#ffffff;white-space:nowrap}\n#lw-root .nx .o{font-size:20px;color:#a9bde0;font-style:italic}\n#lw-root .nx .tg{font-size:14px;padding:2px 5px;margin-right:6px}\n#lw-root .free{color:#a9bde0;font-size:20px}\n#lw-root .rows{overflow:hidden}\n#lw-root .rows.dense .row{padding-top:5px;padding-bottom:5px;margin-bottom:5px}\n#lw-root .rows.dense .cls b{font-size:29px}\n#lw-root .rows.dense .cls small{font-size:16px;margin-top:2px}\n#lw-root .rows.dense .pill{font-size:28px;padding:1px 12px 2px 9px}\n#lw-root .rows.dense .pill svg{width:21px;height:21px}\n#lw-root .rows.dense .blk{margin:1px 0}\n#lw-root .rows.dense .nx .a{font-size:20px}\n#lw-root .rows.dense .nx .h,#lw-root .rows.dense .until,#lw-root .rows.dense .starts,#lw-root .rows.dense .free{font-size:17px}\n#lw-root .rows.dense .tg{font-size:15px;padding:2px 6px}\n#lw-root .rows.dense2 .cls b{font-size:25px}\n#lw-root .rows.dense2 .pill{font-size:25px}\n#lw-root .rows.dense2 .nx .a{font-size:20px}\n#lw-root .done{flex:none;margin-top:8px;font-size:19px;color:#a9bde0}\n#lw-root .done b{color:#dce6f7;font-weight:600}\n#lw-root .enter{-webkit-animation:enter .6s ease both;animation:enter .6s ease both}\n@-webkit-keyframes enter{from{opacity:0}to{opacity:1}}\n@keyframes enter{from{opacity:0}to{opacity:1}}\n#lw-root .empty{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center}\n#lw-root .empty .bars{height:90px;margin:0 0 40px}\n#lw-root .empty .bars span{width:16px;margin-right:10px}\n#lw-root .empty h1{font-size:76px;font-weight:800;line-height:1.1}\n#lw-root .empty p{font-size:32px;color:#a9bde0;margin-top:20px}\n#lw-root #lw-urgent{display:none;position:absolute;left:32px;right:32px;top:24px;bottom:16px;background:#d32f2f;\n  border-radius:20px;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:60px 50px}\n#lw-root #lw-urgent .tag{display:flex;align-items:center;font-size:36px;font-weight:800;letter-spacing:8px;background:#fff;\n  color:#d32f2f;padding:10px 26px;border-radius:12px;-webkit-animation:pulse 1.6s ease-in-out infinite;animation:pulse 1.6s ease-in-out infinite}\n#lw-root #lw-urgent .tag svg{width:38px;height:38px;margin-right:12px}\n#lw-root #lw-urgent .txt{font-size:84px;font-weight:800;line-height:1.12;margin-top:50px}\n@-webkit-keyframes pulse{50%{opacity:.4}}\n@keyframes pulse{50%{opacity:.4}}\n#lw-root footer{height:154px;flex:none;display:flex;background:#061634;border-top:2px solid #2a4a8a}\n#lw-root .flabel{width:150px;flex:none;display:flex;flex-direction:column;align-items:center;justify-content:center;background:#A600B0}\n#lw-root .flabel svg{width:44px;height:44px}\n#lw-root .flabel b{font-size:20px;font-weight:800;letter-spacing:3px;margin-top:8px}\n#lw-root .msg{flex:1;display:flex;flex-direction:column;justify-content:center;padding:0 34px}\n#lw-root #lw-msgTxt{font-size:38px;font-weight:600;line-height:1.2;max-height:92px;overflow:hidden}\n#lw-root #lw-msgDots{margin-top:12px;height:8px}\n#lw-root #lw-msgDots i{display:inline-block;width:8px;height:8px;border-radius:4px;background:#2a4a8a;margin-right:8px}\n#lw-root #lw-msgDots i.on{width:30px;background:#CDCF01}\n#lw-root #lw-stale{position:absolute;right:10px;bottom:10px;width:14px;height:14px;border-radius:50%;background:#d32f2f;display:none}\n<\/style>\n<div id=\"lw-app\">\n<header>\n<div class=\"stripe\"><i style=\"background:#A600B0\"><\/i><i style=\"background:#7AC4C2\"><\/i><i style=\"background:#CDCF01\"><\/i><i style=\"background:#1B6E0E\"><\/i><\/div>\n<div class=\"tbox\">\n<div class=\"clock num\" id=\"lw-clock\"><\/div>\n<div class=\"date\" id=\"lw-date\"><\/div>\n<\/p><\/div>\n<div class=\"rbox\">\n<div class=\"brand\">\n<div class=\"bars\"><span style=\"background:#A600B0;height:100%\"><\/span><span style=\"background:#7AC4C2;height:80%\"><\/span><span style=\"background:#CDCF01;height:60%\"><\/span><span style=\"background:#1B6E0E;height:40%\"><\/span><\/div>\n<p><b>CO.VER.FO.P.<\/b><\/div>\n<div class=\"meteo\" id=\"lw-meteo\"><span id=\"lw-micon\"><\/span><span class=\"t num\" id=\"lw-mtemp\"><\/span><span class=\"d\" id=\"lw-mdesc\"><\/span><\/div>\n<\/p><\/div>\n<\/header>\n<p>  <main><\/p>\n<div id=\"lw-page\"><\/div>\n<div id=\"lw-urgent\">\n<div class=\"tag\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.6\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M12 3 2 21h20L12 3z\"\/><path d=\"M12 10v5\"\/><path d=\"M12 18h.01\"\/><\/svg>AVVISO<\/div>\n<div class=\"txt\" id=\"lw-urgentTxt\"><\/div>\n<\/div>\n<p>  <\/main><\/p>\n<footer>\n<div class=\"flabel\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M3 11v2a1 1 0 0 0 1 1h3l5 4V6L7 10H4a1 1 0 0 0-1 1z\"\/><path d=\"M16 9a4 4 0 0 1 0 6\"\/><path d=\"M19 6a8 8 0 0 1 0 12\"\/><\/svg><b>AVVISI<\/b><\/div>\n<div class=\"msg\">\n<div id=\"lw-msgTxt\"><\/div>\n<div id=\"lw-msgDots\"><\/div>\n<\/div>\n<\/footer>\n<div id=\"lw-stale\"><\/div>\n<\/div>\n<\/div>\n<p><script>window.LEDWALL_URL = 'https:\/\/script.google.com\/macros\/s\/AKfycby7VeiQrmdmaOiYVvcLbW7z5vWNBVoG3uotu-EShcJFLI5wmrTHCT1bWWy37JJbmAE\/exec';<\/script><br \/>\n<script>(function(){var c='KGZ1bmN0aW9uKCl7Cid1c2Ugc3RyaWN0JzsKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIENPTkZJR1VSQVpJT05FCiAgIERBVEFfVVJMOiBpbmRpcml6em8gZGVsbG8gc2NyaXB0IEdvb2dsZSBjaGUgcmVzdGl0dWlzY2UgaWwgcGlhbm8gZGVsIGdpb3Juby4KICAgICAgICAgICAgIFZ1b3RvID0gdXNhIGkgZGF0aSBkaSBwcm92YSBxdWkgc290dG8gKHByb3NwZXR0byByZWFsZSBkZWwgMjYvMTAvMjAyNikuCiAgIFJPVEFURTogICAwIHNlIEFuZHJvaWQgbGF2b3JhIGdpYScgaW4gdmVydGljYWxlOyA5MCBvIC05MCBzZSBpbCBwYW5uZWxsbyBlJyBtb250YXRvIHJ1b3RhdG8uCiAgIFBhcmFtZXRyaSBkYSBpbmRpcml6em86ID9yb3Q9OTAgID9vcmE9MTA6MzAgKHNvbG8gcGVyIHByb3ZlKQogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KdmFyIENPTkZJRyA9IHsKICBEQVRBX1VSTDogKHdpbmRvdy5MRURXQUxMX1VSTCB8fCAnJyksCiAgUk9UQVRFOiAwLAogIFJFRlJFU0hfREFUQV9TRUM6IDYwLAogIE1TR19TRUM6IDgsCiAgUkVMT0FEX0hPVVJTOiA2LAogIExBVDogNDUuMzIwMiwgTE9OOiA4LjQxODUsCiAgRkFLRV9USU1FOiBudWxsCn07CihmdW5jdGlvbigpewogIHZhciBxID0gbG9jYXRpb24uc2VhcmNoLCBtOwogIGlmICgobSA9IHEubWF0Y2goL1s\/Jl1yb3Q9KC0\/XGQrKS8pKSkgQ09ORklHLlJPVEFURSA9ICttWzFdOwogIGlmICgobSA9IHEubWF0Y2goL1s\/Jl1vcmE9KFxkezEsMn0pWzouXShcZHsyfSkvKSkpIENPTkZJRy5GQUtFX1RJTUUgPSAoK21bMV0pKjYwICsgKCttWzJdKTsKfSkoKTsKCi8qIC0tLS0tLS0tLS0tLS0tLS0gQURBVFRBTUVOVE8gQUxMTyBTQ0hFUk1PIC0tLS0tLS0tLS0tLS0tLS0gKi8KZnVuY3Rpb24gZml0KCl7CiAgdmFyIHcgPSB3aW5kb3cuaW5uZXJXaWR0aCwgaCA9IHdpbmRvdy5pbm5lckhlaWdodCwgciA9IENPTkZJRy5ST1RBVEU7CiAgdmFyIHNpZGUgPSAocj09PTkwIHx8IHI9PT0tOTApLCBXID0gc2lkZSA\/IGggOiB3LCBIID0gc2lkZSA\/IHcgOiBoOwogIHZhciBzID0gTWF0aC5taW4oVy8xMDgwLCBILzE5MjApLCB0ID0gKHIgPyAncm90YXRlKCcrcisnZGVnKSAnIDogJycpICsgJ3NjYWxlKCcrcysnKSc7CiAgdmFyIGFwcCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdsdy1hcHAnKTsgYXBwLnN0eWxlLndlYmtpdFRyYW5zZm9ybSA9IHQ7IGFwcC5zdHlsZS50cmFuc2Zvcm0gPSB0Owp9CndpbmRvdy5vbnJlc2l6ZSA9IGZpdDsKCi8qIC0tLS0tLS0tLS0tLS0tLS0gREFUSSBESSBQUk9WQTogcHJvc3BldHRvIHJlYWxlIGRpIGx1bmVkaScgMjYgb3R0b2JyZSAyMDI2IC0tLS0tLS0tLS0tLS0tLS0KICAgU3Rlc3NhIGZvcm1hIGNoZSByZXN0aXR1aXJhJyBsbyBzY3JpcHQgZGVsIGZvZ2xpbyBHb29nbGUuCiAgIGNvcnNpOiAgIG9yZGluZSBkaSB2aXN1YWxpenphemlvbmUsIHBpYW5vIGRpIHJpZmVyaW1lbnRvLCBjb2xvcmUgZGVsbGEgZmFtaWdsaWEKICAgYXVsZTogICAgdGlwbyBlIGNvbG9yZSAobGFib3JhdG9yaW8gdGVjbmljbyAvIGluZm9ybWF0aWNhIGF1bGEgNCAvIGluZm9ybWF0aWNhIGF1bGEgMTAgLyBwYWxlc3RyYSkKICAgYmxvY2NoaTogdW5hIHJpZ2EgcGVyIG9nbmkgcGVybWFuZW56YSBpbiBhdWxhOyBncnVwcG8gQS9JIHBlciBsZSBhcnRpY29sYXRlOyB1bml0YSA9ICh1KSAgICAgICAgKi8KZnVuY3Rpb24gZGVtb0RhdGEoKXsKICB2YXIgZCA9IG5ldyBEYXRlKCk7CiAgdmFyIG9nZ2kgPSBkLmdldEZ1bGxZZWFyKCkrJy0nK3BhZChkLmdldE1vbnRoKCkrMSkrJy0nK3BhZChkLmdldERhdGUoKSk7CiAgcmV0dXJuIHsKICAgIGRhdGE6IG9nZ2ksCiAgICB0aXBpOiBbCiAgICAgIHt0aXBvOidMYWJvcmF0b3JpbyB0ZWNuaWNvJywgY29sb3JlOicjQjI0QkQwJ30sCiAgICAgIHt0aXBvOidMYWIuIGluZm9ybWF0aWNvIGF1bGEgNCcsIGNvbG9yZTonIzNCNjNGMCd9LAogICAgICB7dGlwbzonTGFiLiBpbmZvcm1hdGljbyBhdWxhIDEwJywgY29sb3JlOicjNkZCM0UwJ30sCiAgICAgIHt0aXBvOidQYWxlc3RyYScsIGNvbG9yZTonI0U1NDg0RCd9CiAgICBdLAogICAgYXVsZTogWwogICAgICB7YXVsYTonYXVsYSAxMicsIHRpcG86J0xhYm9yYXRvcmlvIHRlY25pY28nfSwKICAgICAge2F1bGE6J2F1bGEgMTUnLCB0aXBvOidMYWJvcmF0b3JpbyB0ZWNuaWNvJ30sCiAgICAgIHthdWxhOidhdWxhIDE2JywgdGlwbzonTGFib3JhdG9yaW8gdGVjbmljbyd9LAogICAgICB7YXVsYTonYXVsYSAxNycsIHRpcG86J0xhYm9yYXRvcmlvIHRlY25pY28nfSwKICAgICAge2F1bGE6J2F1bGEgNCcsICB0aXBvOidMYWIuIGluZm9ybWF0aWNvIGF1bGEgNCd9LAogICAgICB7YXVsYTonYXVsYSAxMCcsIHRpcG86J0xhYi4gaW5mb3JtYXRpY28gYXVsYSAxMCd9LAogICAgICB7YXVsYToncGFsZXN0cmEnLHRpcG86J1BhbGVzdHJhJ30KICAgIF0sCiAgICBjb3JzaTogWwogICAgICB7Y29yc286J09FL09JIDHCqicsIHBpYW5vOidQaWFubyB0ZXJyYScsIGNvbG9yZTonIzdBQzRDMid9LAogICAgICB7Y29yc286J09FL09JIDLCqicsIHBpYW5vOidQaWFubyBwcmltbycsIGNvbG9yZTonIzdBQzRDMid9LAogICAgICB7Y29yc286J09FL09JIDPCqicsIHBpYW5vOidQaWFubyB0ZXJyYScsIGNvbG9yZTonIzdBQzRDMid9LAogICAgICB7Y29yc286J1RFL1RJIDTCqicsIHBpYW5vOidQaWFubyBwcmltbycsIGNvbG9yZTonIzdBQzRDMid9LAogICAgICB7Y29yc286J09CIDHCqicsICAgIHBpYW5vOidQcmltbyBwaWFubycsIGNvbG9yZTonI0E2MDBCMCd9LAogICAgICB7Y29yc286J09CIDLCqicsICAgIHBpYW5vOidBbGEgbnVvdmEnLCAgIGNvbG9yZTonI0E2MDBCMCd9LAogICAgICB7Y29yc286J09CIDPCqicsICAgIHBpYW5vOidBbGEgbnVvdmEnLCAgIGNvbG9yZTonI0E2MDBCMCd9LAogICAgICB7Y29yc286J1RURSA0wqonLCAgIHBpYW5vOidBbGEgbnVvdmEnLCAgIGNvbG9yZTonI0E2MDBCMCd9LAogICAgICB7Y29yc286J09TUyBwcmltbyBjb3JzbycsICAgcGlhbm86J1ByaW1vIHBpYW5vJywgY29sb3JlOicjMUI2RTBFJ30sCiAgICAgIHtjb3JzbzonT1NTIHNlY29uZG8gY29yc28nLCBwaWFubzonUHJpbW8gcGlhbm8nLCBjb2xvcmU6JyMxQjZFMEUnfSwKICAgICAge2NvcnNvOidBZ2cuIGluZm9ybWF0aWNvIEdPTCcsIHBpYW5vOidQaWFubyB0ZXJyYScsIGNvbG9yZTonI0NEQ0YwMSd9LAogICAgICB7Y29yc286J1NvbW1lbGllciAxwrAgbGl2ZWxsbycsIHBpYW5vOidBbGEgbnVvdmEnLCBjb2xvcmU6JyNDRENGMDEnfSwKICAgICAge2NvcnNvOidDb2xsb3F1aSBpbiBwcmVzZW56YScsIHBpYW5vOidQcmltbyBwaWFubycsIGNvbG9yZTonIzhhOTZhMCd9CiAgICBdLAogICAgYmxvY2NoaTogWwogICAgICB7Y29yc286J09FL09JIDHCqicsIGluaXppbzonMDg6MDAnLCBmaW5lOicxMDowMCcsIGF1bGE6J2F1bGEgMTQnLCBncnVwcG86J0EnfSwKICAgICAge2NvcnNvOidPRS9PSSAxwqonLCBpbml6aW86JzA4OjAwJywgZmluZTonMTA6MDAnLCBhdWxhOidhdWxhIDQnLCAgZ3J1cHBvOidJJ30sCiAgICAgIHtjb3JzbzonT0UvT0kgMcKqJywgaW5pemlvOicxMDowMCcsIGZpbmU6JzE0OjAwJywgYXVsYTonYXVsYSAxNCd9LAogICAgICB7Y29yc286J09FL09JIDLCqicsIGluaXppbzonMDg6MDAnLCBmaW5lOicxMTowMCcsIGF1bGE6J2F1bGEgNid9LAogICAgICB7Y29yc286J09FL09JIDLCqicsIGluaXppbzonMTE6MDAnLCBmaW5lOicxNDowMCcsIGF1bGE6J2F1bGEgMTYnLCBncnVwcG86J0EnfSwKICAgICAge2NvcnNvOidPRS9PSSAywqonLCBpbml6aW86JzExOjAwJywgZmluZTonMTQ6MDAnLCBhdWxhOidhdWxhIDQnLCAgZ3J1cHBvOidJJ30sCiAgICAgIHtjb3JzbzonT0UvT0kgM8KqJywgaW5pemlvOicwODowMCcsIGZpbmU6JzEwOjAwJywgYXVsYTonYXVsYSAxMycsIHVuaXRhOnRydWV9LAogICAgICB7Y29yc286J09FL09JIDPCqicsIGluaXppbzonMTA6MDAnLCBmaW5lOicxMTowMCcsIGF1bGE6J2F1bGEgMTMnLCBncnVwcG86J0EnfSwKICAgICAge2NvcnNvOidPRS9PSSAzwqonLCBpbml6aW86JzEwOjAwJywgZmluZTonMTE6MDAnLCBhdWxhOidhdWxhIDQnLCAgZ3J1cHBvOidJJ30sCiAgICAgIHtjb3JzbzonT0UvT0kgM8KqJywgaW5pemlvOicxMTowMCcsIGZpbmU6JzEzOjAwJywgYXVsYTonYXVsYSAxMycsIHVuaXRhOnRydWV9LAogICAgICB7Y29yc286J1RFL1RJIDTCqicsIGluaXppbzonMDg6MDAnLCBmaW5lOicxMTowMCcsIGF1bGE6J2F1bGEgOScsICBncnVwcG86J0EnfSwKICAgICAge2NvcnNvOidURS9USSA0wqonLCBpbml6aW86JzA4OjAwJywgZmluZTonMTE6MDAnLCBhdWxhOidhdWxhIDEwJywgZ3J1cHBvOidJJ30sCiAgICAgIHtjb3JzbzonVEUvVEkgNMKqJywgaW5pemlvOicxMTowMCcsIGZpbmU6JzEzOjAwJywgYXVsYTonYXVsYSA5JywgIHVuaXRhOnRydWV9LAogICAgICB7Y29yc286J09CIDHCqicsIGluaXppbzonMDg6MDAnLCBmaW5lOicxMDowMCcsIGF1bGE6J2F1bGEgMTInfSwKICAgICAge2NvcnNvOidPQiAxwqonLCBpbml6aW86JzEwOjAwJywgZmluZTonMTM6MDAnLCBhdWxhOidhdWxhIDEnfSwKICAgICAge2NvcnNvOidPQiAxwqonLCBpbml6aW86JzE0OjAwJywgZmluZTonMTY6MDAnLCBhdWxhOidwYWxlc3RyYSd9LAogICAgICB7Y29yc286J09CIDLCqicsIGluaXppbzonMDg6MDAnLCBmaW5lOicxMzowMCcsIGF1bGE6J2F1bGEgMjEnfSwKICAgICAge2NvcnNvOidPQiAywqonLCBpbml6aW86JzE0OjAwJywgZmluZTonMTY6MDAnLCBhdWxhOidwYWxlc3RyYSd9LAogICAgICB7Y29yc286J09CIDPCqicsIGluaXppbzonMDg6MDAnLCBmaW5lOicxMzowMCcsIGF1bGE6J2F1bGEgMjInfSwKICAgICAge2NvcnNvOidUVEUgNMKqJywgaW5pemlvOicwODowMCcsIGZpbmU6JzEzOjAwJywgYXVsYTonYXVsYSAyMCd9LAogICAgICB7Y29yc286J09TUyBwcmltbyBjb3JzbycsIGluaXppbzonMDk6MDAnLCBmaW5lOicxMzowMCcsIGF1bGE6J2F1bGEgNSd9LAogICAgICB7Y29yc286J09TUyBwcmltbyBjb3JzbycsIGluaXppbzonMTQ6MzAnLCBmaW5lOicxNjozMCcsIGF1bGE6J2F1bGEgMSd9LAogICAgICB7Y29yc286J09TUyBzZWNvbmRvIGNvcnNvJywgaW5pemlvOicxNDozMCcsIGZpbmU6JzE4OjMwJywgYXVsYTonYXVsYSA1J30sCiAgICAgIHtjb3JzbzonQWdnLiBpbmZvcm1hdGljbyBHT0wnLCBpbml6aW86JzE0OjMwJywgZmluZTonMTg6MzAnLCBhdWxhOidhdWxhIDEwJ30sCiAgICAgIHtjb3JzbzonU29tbWVsaWVyIDHCsCBsaXZlbGxvJywgaW5pemlvOicyMDowMCcsIGZpbmU6JzIzOjAwJywgYXVsYTonYXVsYSAyMSd9LAogICAgICB7Y29yc286J0NvbGxvcXVpIGluIHByZXNlbnphJywgaW5pemlvOicnLCBmaW5lOicnLCBhdWxhOidhdWxhIGRvY2VudGknfQogICAgXSwKICAgIGF2dmlzaTogWwogICAgICB7dGVzdG86J0JlbnZlbnV0aSBhIENvLlZlci5Gby5QLid9CiAgICAgIC8vIGVzZW1waW86IHt0ZXN0bzonT3BlbiBEYXkgc2FiYXRvIDE1IG5vdmVtYnJlJywgZGFsOicyMDI2LTEwLTI2JywgYWw6JzIwMjYtMTEtMTUnfQogICAgICAvLyB1cmdlbnRlOiAge3Rlc3RvOicuLi4nLCB1cmdlbnRlOnRydWV9CiAgICBdCiAgfTsKfQoKLyogLS0tLS0tLS0tLS0tLS0tLSBVVElMSVRBJyAtLS0tLS0tLS0tLS0tLS0tICovCnZhciBHSU9STkkgPSBbJ2RvbWVuaWNhJywnbHVuZWTDrCcsJ21hcnRlZMOsJywnbWVyY29sZWTDrCcsJ2dpb3ZlZMOsJywndmVuZXJkw6wnLCdzYWJhdG8nXTsKdmFyIE1FU0kgPSBbJ2dlbm5haW8nLCdmZWJicmFpbycsJ21hcnpvJywnYXByaWxlJywnbWFnZ2lvJywnZ2l1Z25vJywnbHVnbGlvJywnYWdvc3RvJywnc2V0dGVtYnJlJywnb3R0b2JyZScsJ25vdmVtYnJlJywnZGljZW1icmUnXTsKZnVuY3Rpb24gJChpZCl7IHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCk7IH0KZnVuY3Rpb24gcGFkKG4peyByZXR1cm4gKG48MTA\/JzAnOicnKStuOyB9CmZ1bmN0aW9uIGVzYyhzKXsgcmV0dXJuIFN0cmluZyhzPT1udWxsPycnOnMpLnJlcGxhY2UoL1smPD4iXS9nLGZ1bmN0aW9uKGMpe3JldHVybiB7JyYnOicmYW1wOycsJzwnOicmbHQ7JywnPic6JyZndDsnLCciJzonJnF1b3Q7J31bY107fSk7IH0KZnVuY3Rpb24gdG9NaW4oaGhtbSl7IHZhciBwPVN0cmluZyhoaG1tKS5yZXBsYWNlKCcuJywnOicpLnJlcGxhY2UoJywnLCc6Jykuc3BsaXQoJzonKTsgcmV0dXJuICgrcFswXSkqNjAgKyAoKyhwWzFdfHwwKSk7IH0KZnVuY3Rpb24gZm10KGhobW0peyB2YXIgbSA9IHRvTWluKGhobW0pOyByZXR1cm4gcGFkKE1hdGguZmxvb3IobS82MCkpKyc6JytwYWQobSU2MCk7IH0KZnVuY3Rpb24gaXNvRGF5KGQpeyByZXR1cm4gZC5nZXRGdWxsWWVhcigpKyctJytwYWQoZC5nZXRNb250aCgpKzEpKyctJytwYWQoZC5nZXREYXRlKCkpOyB9CmZ1bmN0aW9uIHJnYmEoaGV4LCBhKXsgdmFyIGg9U3RyaW5nKGhleCkucmVwbGFjZSgnIycsJycpOyByZXR1cm4gJ3JnYmEoJytwYXJzZUludChoLnN1YnN0cigwLDIpLDE2KSsnLCcrcGFyc2VJbnQoaC5zdWJzdHIoMiwyKSwxNikrJywnK3BhcnNlSW50KGguc3Vic3RyKDQsMiksMTYpKycsJythKycpJzsgfQpmdW5jdGlvbiBvbkNvbG9yKGhleCl7IHZhciBoPVN0cmluZyhoZXgpLnJlcGxhY2UoJyMnLCcnKTsgdmFyIHI9cGFyc2VJbnQoaC5zdWJzdHIoMCwyKSwxNiksZz1wYXJzZUludChoLnN1YnN0cigyLDIpLDE2KSxiPXBhcnNlSW50KGguc3Vic3RyKDQsMiksMTYpOyByZXR1cm4gKHIqMjk5K2cqNTg3K2IqMTE0KS8xMDAwPjE1MD8nIzBiMGQxMCc6JyNmZmZmZmYnOyB9CmZ1bmN0aW9uIGNhcChzKXsgcyA9IFN0cmluZyhzKTsgcmV0dXJuIHMuY2hhckF0KDApLnRvVXBwZXJDYXNlKCkrcy5zbGljZSgxKTsgfQp2YXIgSUNPTl9QSU4gPSAnPHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIuNiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIj48cGF0aCBkPSJNMTIgMjFzLTctNi4yLTctMTEuNUE3IDcgMCAwIDEgMTkgOS41QzE5IDE0LjggMTIgMjEgMTIgMjF6Ii8+PGNpcmNsZSBjeD0iMTIiIGN5PSI5LjUiIHI9IjIuNSIvPjwvc3ZnPic7CnZhciBJQ09OX0xBQiA9ICc8c3ZnIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMi42IiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPjxwYXRoIGQ9Ik05IDNoNiIvPjxwYXRoIGQ9Ik0xMCAzdjZMNC41IDE4LjVBMS43IDEuNyAwIDAgMCA2IDIxaDEyYTEuNyAxLjcgMCAwIDAgMS41LTIuNUwxNCA5VjMiLz48cGF0aCBkPSJNNyAxNWgxMCIvPjwvc3ZnPic7CnZhciBHUlVQUEkgPSB7QTonQXV0b21hemlvbmUnLCBJOidJbmZvcm1hdGljYSd9OwoKLyogLS0tLS0tLS0tLS0tLS0tLSBPUk9MT0dJTyAtLS0tLS0tLS0tLS0tLS0tICovCmZ1bmN0aW9uIHRpY2tDbG9jaygpewogIHZhciBkID0gbmV3IERhdGUoKTsKICAkKCdsdy1jbG9jaycpLmlubmVySFRNTCA9IHBhZChkLmdldEhvdXJzKCkpKyc8c3BhbiBjbGFzcz0iY29sJysoZC5nZXRTZWNvbmRzKCklMj8nIG9mZic6JycpKyciPjo8L3NwYW4+JytwYWQoZC5nZXRNaW51dGVzKCkpKyc8c21hbGw+JytwYWQoZC5nZXRTZWNvbmRzKCkpKyc8L3NtYWxsPic7CiAgJCgnbHctZGF0ZScpLnRleHRDb250ZW50ID0gY2FwKEdJT1JOSVtkLmdldERheSgpXSkrJyAnK2QuZ2V0RGF0ZSgpKycgJytNRVNJW2QuZ2V0TW9udGgoKV0rJyAnK2QuZ2V0RnVsbFllYXIoKTsKfQoKLyogLS0tLS0tLS0tLS0tLS0tLSBNRVRFTyAoT3Blbi1NZXRlbykgLS0tLS0tLS0tLS0tLS0tLSAqLwp2YXIgU1ZHX0EgPSAnPHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjEuOCIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIj4nOwp2YXIgSUNPTlMgPSB7CiAgc29sZTogU1ZHX0ErJzxjaXJjbGUgY3g9IjEyIiBjeT0iMTIiIHI9IjQiLz48cGF0aCBkPSJNMTIgMnYyTTEyIDIwdjJNNC45IDQuOWwxLjQgMS40TTE3LjcgMTcuN2wxLjQgMS40TTIgMTJoMk0yMCAxMmgyTTQuOSAxOS4xbDEuNC0xLjRNMTcuNyA2LjNsMS40LTEuNCIvPjwvc3ZnPicsCiAgcGFyejogU1ZHX0ErJzxwYXRoIGQ9Ik04IDN2MS41TTMuOCA0LjhsMSAxTTIgOWgxLjUiLz48cGF0aCBkPSJNNS42IDExLjVBMy41IDMuNSAwIDEgMSAxMS41IDciLz48cGF0aCBkPSJNOCAyMGg5YTQgNCAwIDAgMCAwLTggNS41IDUuNSAwIDAgMC0xMC40IDEuN0EzLjIgMy4yIDAgMCAwIDggMjB6Ii8+PC9zdmc+JywKICBudWJlOiBTVkdfQSsnPHBhdGggZD0iTTcgMTloMTBhNC41IDQuNSAwIDAgMCAuNS05QTYgNiAwIDAgMCA2IDExLjUgMy44IDMuOCAwIDAgMCA3IDE5eiIvPjwvc3ZnPicsCiAgbmViYmlhOiBTVkdfQSsnPHBhdGggZD0iTTcgMTNoMTBhNCA0IDAgMCAwIC40LThBNS41IDUuNSAwIDAgMCA2LjYgNyAzIDMgMCAwIDAgNyAxM3oiLz48cGF0aCBkPSJNNCAxN2gxNk02IDIxaDEyIi8+PC9zdmc+JywKICBwaW9nZ2lhOiBTVkdfQSsnPHBhdGggZD0iTTcgMTVoMTBhNCA0IDAgMCAwIC40LThBNS41IDUuNSAwIDAgMCA2LjYgOSAzIDMgMCAwIDAgNyAxNXoiLz48cGF0aCBkPSJNOCAxOGwtMSAzTTEyIDE4bC0xIDNNMTYgMThsLTEgMyIvPjwvc3ZnPicsCiAgbmV2ZTogU1ZHX0ErJzxwYXRoIGQ9Ik03IDE1aDEwYTQgNCAwIDAgMCAuNC04QTUuNSA1LjUgMCAwIDAgNi42IDkgMyAzIDAgMCAwIDcgMTV6Ii8+PHBhdGggZD0iTTggMTloLjAxTTEyIDE5aC4wMU0xNiAxOWguMDFNMTAgMjJoLjAxTTE0IDIyaC4wMSIvPjwvc3ZnPicsCiAgdGVtcG9yYWxlOiBTVkdfQSsnPHBhdGggZD0iTTcgMTVoMTBhNCA0IDAgMCAwIC40LThBNS41IDUuNSAwIDAgMCA2LjYgOSAzIDMgMCAwIDAgNyAxNXoiLz48cGF0aCBkPSJNMTIuNSAxNmwtMiAzLjVoM2wtMiAzLjUiLz48L3N2Zz4nCn07CmZ1bmN0aW9uIG1ldGVvSW5mbyhjKXsKICBpZiAoYz09PTApIHJldHVybiBbJ3NvbGUnLCdTZXJlbm8nXTsKICBpZiAoYzw9MikgcmV0dXJuIFsncGFyeicsJ1BvY28gbnV2b2xvc28nXTsKICBpZiAoYz09PTMpIHJldHVybiBbJ251YmUnLCdDb3BlcnRvJ107CiAgaWYgKGM9PT00NXx8Yz09PTQ4KSByZXR1cm4gWyduZWJiaWEnLCdOZWJiaWEnXTsKICBpZiAoYz49NTEmJmM8PTU3KSByZXR1cm4gWydwaW9nZ2lhJywnUGlvdmlnZ2luZSddOwogIGlmICgoYz49NjEmJmM8PTY3KXx8KGM+PTgwJiZjPD04MikpIHJldHVybiBbJ3Bpb2dnaWEnLCBjPj04MD8nUm92ZXNjaSc6J1Bpb2dnaWEnXTsKICBpZiAoKGM+PTcxJiZjPD03Nyl8fGM9PT04NXx8Yz09PTg2KSByZXR1cm4gWyduZXZlJywnTmV2ZSddOwogIGlmIChjPj05NSkgcmV0dXJuIFsndGVtcG9yYWxlJywnVGVtcG9yYWxlJ107CiAgcmV0dXJuIFsnbnViZScsJyddOwp9CmZ1bmN0aW9uIGxvYWRNZXRlbygpewogIGdldCgnaHR0cHM6Ly9hcGkub3Blbi1tZXRlby5jb20vdjEvZm9yZWNhc3Q\/bGF0aXR1ZGU9JytDT05GSUcuTEFUKycmbG9uZ2l0dWRlPScrQ09ORklHLkxPTisnJmN1cnJlbnQ9dGVtcGVyYXR1cmVfMm0sd2VhdGhlcl9jb2RlJnRpbWV6b25lPUV1cm9wZSUyRlJvbWUnLCBmdW5jdGlvbihqKXsKICAgIHRyeXsgdmFyIGM9ai5jdXJyZW50LCBtaT1tZXRlb0luZm8oYy53ZWF0aGVyX2NvZGUpOwogICAgICAkKCdsdy1taWNvbicpLmlubmVySFRNTCA9IElDT05TW21pWzBdXTsgJCgnbHctbXRlbXAnKS50ZXh0Q29udGVudCA9IE1hdGgucm91bmQoYy50ZW1wZXJhdHVyZV8ybSkrJ8KwJzsKICAgICAgJCgnbHctbWRlc2MnKS50ZXh0Q29udGVudCA9ICdWZXJjZWxsaSDCtyAnK21pWzFdOyAkKCdsdy1tZXRlbycpLnN0eWxlLmRpc3BsYXk9J2ZsZXgnOwogICAgfWNhdGNoKGUpe30KICB9KTsKfQoKLyogLS0tLS0tLS0tLS0tLS0tLSBSRVRFIEUgREFUSSAtLS0tLS0tLS0tLS0tLS0tICovCmZ1bmN0aW9uIGdldCh1cmwsIG9rLCBrbyl7CiAgdmFyIHggPSBuZXcgWE1MSHR0cFJlcXVlc3QoKTsgeC5vcGVuKCdHRVQnLCB1cmwsIHRydWUpOyB4LnRpbWVvdXQgPSAxNTAwMDsKICB4Lm9ubG9hZCA9IGZ1bmN0aW9uKCl7IGlmICh4LnN0YXR1cz49MjAwICYmIHguc3RhdHVzPDMwMCl7IHRyeXsgb2soSlNPTi5wYXJzZSh4LnJlc3BvbnNlVGV4dCkpOyB9Y2F0Y2goZSl7IGlmKGtvKSBrbygpOyB9IH0gZWxzZSBpZihrbykga28oKTsgfTsKICB4Lm9uZXJyb3IgPSB4Lm9udGltZW91dCA9IGZ1bmN0aW9uKCl7IGlmKGtvKSBrbygpOyB9OyB4LnNlbmQoKTsKfQp2YXIgREFUQSA9IG51bGw7CmZ1bmN0aW9uIGxvYWREYXRhKCl7CiAgaWYgKCFDT05GSUcuREFUQV9VUkwpeyBEQVRBID0gZGVtb0RhdGEoKTsgcmVuZGVyKCk7IHJldHVybjsgfQogIGdldChDT05GSUcuREFUQV9VUkwrKENPTkZJRy5EQVRBX1VSTC5pbmRleE9mKCc\/Jyk8MD8nPyc6JyYnKSsndD0nK0RhdGUubm93KCksIGZ1bmN0aW9uKGopewogICAgREFUQSA9IGo7ICQoJ2x3LXN0YWxlJykuc3R5bGUuZGlzcGxheT0nbm9uZSc7CiAgICB0cnl7IGxvY2FsU3RvcmFnZS5zZXRJdGVtKCdsZWR3YWxsX2RhdGEnLCBKU09OLnN0cmluZ2lmeShqKSk7IH1jYXRjaChlKXt9CiAgICB0cnl7IHJlbmRlcigpOyB9Y2F0Y2goZSl7IHNob3dFcnIoZSk7IH0KICB9LCBmdW5jdGlvbigpewogICAgaWYgKCFEQVRBKXsgdHJ5eyBEQVRBID0gSlNPTi5wYXJzZShsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgnbGVkd2FsbF9kYXRhJykpOyB9Y2F0Y2goZSl7fSB9CiAgICAkKCdsdy1zdGFsZScpLnN0eWxlLmRpc3BsYXk9J2Jsb2NrJzsgaWYgKERBVEEpIHJlbmRlcigpOwogIH0pOwp9CgovKiAtLS0tLS0tLS0tLS0tLS0tIExPR0lDQTogYWRlc3NvIC8gcG9pIHBlciBvZ25pIGNvcnNvIC0tLS0tLS0tLS0tLS0tLS0gKi8KZnVuY3Rpb24gbm93TWluKCl7CiAgaWYgKENPTkZJRy5GQUtFX1RJTUUgIT09IG51bGwpIHJldHVybiBDT05GSUcuRkFLRV9USU1FOwogIHZhciBkID0gbmV3IERhdGUoKTsgcmV0dXJuIGQuZ2V0SG91cnMoKSo2MCArIGQuZ2V0TWludXRlcygpOwp9CmZ1bmN0aW9uIHJvb21JbmZvKGF1bGEpewogIHZhciBhID0gU3RyaW5nKGF1bGEpLnRvTG93ZXJDYXNlKCksIGF1ID0gREFUQS5hdWxlIHx8IFtdLCB0aSA9IERBVEEudGlwaSB8fCBbXSwgaSwgdCA9IG51bGw7CiAgZm9yIChpPTA7aTxhdS5sZW5ndGg7aSsrKSBpZiAoU3RyaW5nKGF1W2ldLmF1bGEpLnRvTG93ZXJDYXNlKCk9PT1hKSB0ID0gYXVbaV0udGlwbzsKICBpZiAoIXQpIHJldHVybiBudWxsOwogIGZvciAoaT0wO2k8dGkubGVuZ3RoO2krKykgaWYgKHRpW2ldLnRpcG89PT10KSByZXR1cm4gdGlbaV07CiAgcmV0dXJuIG51bGw7Cn0KZnVuY3Rpb24gcGlsbEh0bWwoYil7CiAgdmFyIHJpID0gcm9vbUluZm8oYi5hdWxhKSwgc3QsIGljb247CiAgaWYgKHJpKXsgc3QgPSAnYmFja2dyb3VuZDonK3JpLmNvbG9yZSsnO2NvbG9yOicrb25Db2xvcihyaS5jb2xvcmUpOyBpY29uID0gSUNPTl9MQUI7IH0KICBlbHNlIHsgc3QgPSAnYmFja2dyb3VuZDojQ0RDRjAxO2NvbG9yOiMwYjFhMzMnOyBpY29uID0gSUNPTl9QSU47IH0KICByZXR1cm4gJzxzcGFuIGNsYXNzPSJwaWxsIiBzdHlsZT0iJytzdCsnIj4nK2ljb24rZXNjKGNhcChiLmF1bGEpKSsnPC9zcGFuPic7Cn0KZnVuY3Rpb24gdGFnSHRtbChiKXsgcmV0dXJuIGIuZ3J1cHBvID8gJzxzcGFuIGNsYXNzPSJ0ZyIgdGl0bGU9IicrKEdSVVBQSVtiLmdydXBwb118fCcnKSsnIj4nK2VzYyhHUlVQUElbYi5ncnVwcG9dID8gR1JVUFBJW2IuZ3J1cHBvXS5zbGljZSgwLDMpLnRvVXBwZXJDYXNlKCkgOiBiLmdydXBwbykrJzwvc3Bhbj4nIDogJyc7IH0KZnVuY3Rpb24gc29ydEcoYSxiKXsgcmV0dXJuIChhLmdydXBwb3x8JycpLmxvY2FsZUNvbXBhcmUoYi5ncnVwcG98fCcnKTsgfQoKLyogUGVyIG9nbmkgY29yc286IGxhIHNpdHVhemlvbmUgYWRlc3NvIGUgaSBkdWUgY2FtYmkgc3VjY2Vzc2l2aSAodW4gY2FtYmlvID0gdW4gbW9tZW50byBpbiBjdWkKICAgbCdpbnNpZW1lIGRlbGxlIGF1bGUgb2NjdXBhdGUgZGFsIGNvcnNvIGNhbWJpYTogaW5pemlvLCBmaW5lLCBzcG9zdGFtZW50byBkaSB1biBncnVwcG8pLiAqLwpmdW5jdGlvbiBiU3RhcnQoYil7IHJldHVybiBiLmluaXppbyA\/IHRvTWluKGIuaW5pemlvKSA6IDA7IH0KZnVuY3Rpb24gYkVuZChiKXsgcmV0dXJuIGIuZmluZSA\/IHRvTWluKGIuZmluZSkgOiAyNCo2MDsgfQpmdW5jdGlvbiBzdGF0ZUF0KGJsLCB0KXsKICB2YXIgb3V0ID0gW107CiAgZm9yICh2YXIgaT0wO2k8YmwubGVuZ3RoO2krKykgaWYgKGJTdGFydChibFtpXSkgPD0gdCAmJiB0IDwgYkVuZChibFtpXSkpIG91dC5wdXNoKGJsW2ldKTsKICBvdXQuc29ydChzb3J0Ryk7IHJldHVybiBvdXQ7Cn0KZnVuY3Rpb24gc3RLZXkoc3QpeyB2YXIgaz0nJzsgZm9yICh2YXIgaT0wO2k8c3QubGVuZ3RoO2krKykgayArPSBzdFtpXS5hdWxhKyd8Jysoc3RbaV0uZ3J1cHBvfHwnJykrJ3wnKyhzdFtpXS51bml0YT8xOjApKyc7JzsgcmV0dXJuIGs7IH0KZnVuY3Rpb24gcGxhbkZvcihjb3Jzbywgbm93KXsKICB2YXIgYmwgPSBbXSwgaSwgYWxsID0gREFUQS5ibG9jY2hpOwogIGZvciAoaT0wO2k8YWxsLmxlbmd0aDtpKyspIGlmIChhbGxbaV0uY29yc289PT1jb3JzbykgYmwucHVzaChhbGxbaV0pOwogIGlmICghYmwubGVuZ3RoKSByZXR1cm4gbnVsbDsKICB2YXIgbGFzdEVuZCA9IDAsIHRpbWVzID0gW107CiAgZm9yIChpPTA7aTxibC5sZW5ndGg7aSsrKXsKICAgIHZhciBzID0gYlN0YXJ0KGJsW2ldKSwgZSA9IGJFbmQoYmxbaV0pOwogICAgaWYgKGUgPiBsYXN0RW5kKSBsYXN0RW5kID0gZTsKICAgIGlmIChzID4gbm93ICYmIHRpbWVzLmluZGV4T2YocykgPCAwKSB0aW1lcy5wdXNoKHMpOwogICAgaWYgKGUgPiBub3cgJiYgZSA8IDI0KjYwICYmIHRpbWVzLmluZGV4T2YoZSkgPCAwKSB0aW1lcy5wdXNoKGUpOwogIH0KICB0aW1lcy5zb3J0KGZ1bmN0aW9uKGEsYil7IHJldHVybiBhLWI7IH0pOwogIHZhciBjdXIgPSBzdGF0ZUF0KGJsLCBub3cpLCBzZXEgPSBbXSwgcHJldiA9IHN0S2V5KGN1cik7CiAgZm9yIChpPTA7aTx0aW1lcy5sZW5ndGggJiYgc2VxLmxlbmd0aDwzO2krKyl7CiAgICB2YXIgc3QgPSBzdGF0ZUF0KGJsLCB0aW1lc1tpXSksIGsgPSBzdEtleShzdCk7CiAgICBpZiAoayA9PT0gcHJldikgY29udGludWU7CiAgICB2YXIgbGF0ZXIgPSBmYWxzZTsKICAgIGZvciAodmFyIGo9MDtqPGJsLmxlbmd0aDtqKyspIGlmIChiU3RhcnQoYmxbal0pID4gdGltZXNbaV0pIGxhdGVyID0gdHJ1ZTsKICAgIHNlcS5wdXNoKHt0OnRpbWVzW2ldLCBzdDpzdCwgbGF0ZXI6bGF0ZXJ9KTsKICAgIHByZXYgPSBrOwogIH0KICByZXR1cm4ge2N1cjpjdXIsIHNlcTpzZXEsIGZpbmlzaGVkOiBub3cgPj0gbGFzdEVuZH07Cn0KZnVuY3Rpb24gaG0obSl7IHJldHVybiBwYWQoTWF0aC5mbG9vcihtLzYwKSkrJzonK3BhZChtJTYwKTsgfQpmdW5jdGlvbiBuZXh0Q2VsbChzdGVwKXsKICBpZiAoIXN0ZXApIHJldHVybiAnPHNwYW4gY2xhc3M9ImZyZWUiPuKAlDwvc3Bhbj4nOwogIHZhciBoID0gJzxkaXYgY2xhc3M9Im54Ij48ZGl2IGNsYXNzPSJoIG51bSI+Jysoc3RlcC5zdC5sZW5ndGggPyAnZGFsbGUgJyA6ICdhbGxlICcpK2htKHN0ZXAudCkrJzwvZGl2Pic7CiAgaWYgKCFzdGVwLnN0Lmxlbmd0aCkgcmV0dXJuIGggKyAnPGRpdiBjbGFzcz0ibyI+Jysoc3RlcC5sYXRlciA\/ICdwYXVzYScgOiAndXNjaXRhJykrJzwvZGl2PjwvZGl2Pic7CiAgZm9yICh2YXIgaT0wO2k8c3RlcC5zdC5sZW5ndGg7aSsrKXsKICAgIHZhciBuID0gc3RlcC5zdFtpXSwgcm4gPSByb29tSW5mbyhuLmF1bGEpOwogICAgaCArPSAnPGRpdiBjbGFzcz0iYSI+Jyt0YWdIdG1sKG4pKyc8c3BhbiBzdHlsZT0iY29sb3I6Jysocm4gPyBybi5jb2xvcmUgOiAnI0NEQ0YwMScpKyciPicrZXNjKGNhcChuLmF1bGEpKSsnPC9zcGFuPicrKG4udW5pdGE\/JyDCtyB1bml0YSc6JycpKyc8L2Rpdj4nOwogIH0KICByZXR1cm4gaCArICc8L2Rpdj4nOwp9Cgp2YXIgbGFzdEh0bWwgPSAnJzsKZnVuY3Rpb24gcmVuZGVyKCl7CiAgaWYgKCFEQVRBKSByZXR1cm47CiAgcmVuZGVyTWVzc2FnZXMoKTsKICB2YXIgbm93ID0gbm93TWluKCksIGVsID0gJCgnbHctcGFnZScpLCBjb3JzaSA9IERBVEEuY29yc2kgfHwgW10sIHJvd3MgPSBbXSwgZmluaXNoZWQgPSBbXTsKICBmb3IgKHZhciBjPTA7Yzxjb3JzaS5sZW5ndGg7YysrKXsKICAgIHZhciBwID0gcGxhbkZvcihjb3JzaVtjXS5jb3Jzbywgbm93KTsKICAgIGlmICghcCkgY29udGludWU7CiAgICBpZiAocC5maW5pc2hlZCl7IGZpbmlzaGVkLnB1c2goY29yc2lbY10uY29yc28pOyBjb250aW51ZTsgfQogICAgcm93cy5wdXNoKHtjOmNvcnNpW2NdLCBwOnB9KTsKICB9CgogIHZhciBoOwogIGlmICghcm93cy5sZW5ndGgpewogICAgaCA9ICc8ZGl2IGNsYXNzPSJlbXB0eSI+PGRpdiBjbGFzcz0iYmFycyI+PHNwYW4gc3R5bGU9ImJhY2tncm91bmQ6I0E2MDBCMDtoZWlnaHQ6MTAwJSI+PC9zcGFuPjxzcGFuIHN0eWxlPSJiYWNrZ3JvdW5kOiM3QUM0QzI7aGVpZ2h0OjgwJSI+PC9zcGFuPjxzcGFuIHN0eWxlPSJiYWNrZ3JvdW5kOiNDRENGMDE7aGVpZ2h0OjYwJSI+PC9zcGFuPjxzcGFuIHN0eWxlPSJiYWNrZ3JvdW5kOiMxQjZFMEU7aGVpZ2h0OjQwJSI+PC9zcGFuPjwvZGl2PicKICAgICAgKyAnPGgxPicrKGZpbmlzaGVkLmxlbmd0aCA\/ICdBdHRpdml0w6AgZGkgb2dnaTxicj5jb25jbHVzZScgOiAnT2dnaSBuZXNzdW5hPGJyPmF0dGl2aXTDoCBpbiBhdWxhJykrJzwvaDE+PHA+QnVvbmEgZ2lvcm5hdGEgZGEgQ28uVmVyLkZvLlAuPC9wPjwvZGl2Pic7CiAgfSBlbHNlIHsKICAgIHZhciBsZyA9ICc8c3Bhbj48aSBzdHlsZT0iYmFja2dyb3VuZDojQ0RDRjAxIj48L2k+QXVsYTwvc3Bhbj4nLCB0aSA9IERBVEEudGlwaSB8fCBbXTsKICAgIGZvciAodmFyIHQ9MDt0PHRpLmxlbmd0aDt0KyspIGxnICs9ICc8c3Bhbj48aSBzdHlsZT0iYmFja2dyb3VuZDonK3RpW3RdLmNvbG9yZSsnIj48L2k+Jytlc2ModGlbdF0udGlwbykrJzwvc3Bhbj4nOwogICAgbGcgKz0gJzxzcGFuPjxiIGNsYXNzPSJ0ZyI+QVVUPC9iPkF1dG9tYXppb25lPC9zcGFuPjxzcGFuPjxiIGNsYXNzPSJ0ZyI+SU5GPC9iPkluZm9ybWF0aWNhPC9zcGFuPic7CgogICAgaCA9ICc8ZGl2IGNsYXNzPSJ0dGwiPjxoMT5BdWxlIGRlbCBnaW9ybm88L2gxPjxkaXYgY2xhc3M9InN1YiI+Jytyb3dzLmxlbmd0aCsnIGNvcnNpIGluIHNlZGU8L2Rpdj48L2Rpdj4nCiAgICAgICsgJzxkaXYgY2xhc3M9ImxlZ2VuZCI+JytsZysnPC9kaXY+JwogICAgICArICc8ZGl2IGNsYXNzPSJ0aGVhZCI+PGRpdiBjbGFzcz0iYzEiPkNvcnNvPC9kaXY+PGRpdiBjbGFzcz0iYzIiPkFkZXNzbzwvZGl2PjxkaXYgY2xhc3M9ImMzIj5Qb2k8L2Rpdj48ZGl2IGNsYXNzPSJjNCI+RG9wbyBhbmNvcmE8L2Rpdj48L2Rpdj4nCiAgICAgICsgJzxkaXYgY2xhc3M9InJvd3MiPic7CiAgICBmb3IgKHZhciByPTA7cjxyb3dzLmxlbmd0aDtyKyspewogICAgICB2YXIgY28gPSByb3dzW3JdLmMsIHBsID0gcm93c1tyXS5wLCBjb2wgPSBjby5jb2xvcmUgfHwgJyM3QUM0QzInLCBpLCBtaWQgPSAnJywgc2VxID0gcGwuc2VxOwogICAgICB2YXIgd2FpdGluZyA9ICFwbC5jdXIubGVuZ3RoOwogICAgICB2YXIgc2hvd24gPSB3YWl0aW5nID8gc2VxWzBdLnN0IDogcGwuY3VyOwogICAgICBmb3IgKGk9MDtpPHNob3duLmxlbmd0aDtpKyspewogICAgICAgIHZhciBiID0gc2hvd25baV0sIGxhc3QgPSAoaT09PXNob3duLmxlbmd0aC0xKTsKICAgICAgICBtaWQgKz0gJzxkaXYgY2xhc3M9ImJsayI+Jyt0YWdIdG1sKGIpK3BpbGxIdG1sKGIpKyhiLnVuaXRhPyc8c3BhbiBjbGFzcz0idGcgdSI+VU5JVEE8L3NwYW4+JzonJyk7CiAgICAgICAgaWYgKGxhc3QpewogICAgICAgICAgaWYgKHdhaXRpbmcpIG1pZCArPSAnPHNwYW4gY2xhc3M9InN0YXJ0cyBudW0iPmRhbGxlICcraG0oc2VxWzBdLnQpKyc8L3NwYW4+JzsKICAgICAgICAgIGVsc2UgaWYgKHNlcS5sZW5ndGgpIG1pZCArPSAnPHNwYW4gY2xhc3M9InVudGlsIG51bSI+ZmlubyBhbGxlICcraG0oc2VxWzBdLnQpKyc8L3NwYW4+JzsKICAgICAgICB9CiAgICAgICAgbWlkICs9ICc8L2Rpdj4nOwogICAgICB9CiAgICAgIHZhciBzMSA9IHdhaXRpbmcgPyBzZXFbMV0gOiBzZXFbMF0sIHMyID0gd2FpdGluZyA\/IHNlcVsyXSA6IHNlcVsxXTsKICAgICAgdmFyIGMzID0gczEgPyBuZXh0Q2VsbChzMSkgOiAocGwuY3VyLmxlbmd0aCAmJiAhcGwuY3VyW3BsLmN1ci5sZW5ndGgtMV0uZmluZSA\/ICc8c3BhbiBjbGFzcz0iZnJlZSI+dHV0dG8gaWwgZ2lvcm5vPC9zcGFuPicgOiAnPHNwYW4gY2xhc3M9ImZyZWUiPuKAlDwvc3Bhbj4nKTsKICAgICAgdmFyIGM0ID0gczEgPyBuZXh0Q2VsbChzMikgOiAnPHNwYW4gY2xhc3M9ImZyZWUiPjwvc3Bhbj4nOwogICAgICBoICs9ICc8ZGl2IGNsYXNzPSJyb3cnKyh3YWl0aW5nPycgd2FpdCc6JycpKyciPjxkaXYgY2xhc3M9ImVkZ2UiIHN0eWxlPSJiYWNrZ3JvdW5kOicrY29sKyciPjwvZGl2PicKICAgICAgICAgKyAnPGRpdiBjbGFzcz0iYzEgY2xzIj48Yj4nK2VzYyhjby5jb3JzbykrJzwvYj48c21hbGw+Jytlc2MoY28ucGlhbm98fCcnKSsnPC9zbWFsbD48L2Rpdj4nCiAgICAgICAgICsgJzxkaXYgY2xhc3M9ImMyIj4nK21pZCsnPC9kaXY+JwogICAgICAgICArICc8ZGl2IGNsYXNzPSJjMyI+JytjMysnPC9kaXY+JwogICAgICAgICArICc8ZGl2IGNsYXNzPSJjNCI+JytjNCsnPC9kaXY+PC9kaXY+JzsKICAgIH0KICAgIGggKz0gJzwvZGl2Pic7CiAgICBpZiAoZmluaXNoZWQubGVuZ3RoKSBoICs9ICc8ZGl2IGNsYXNzPSJkb25lIj5Db25jbHVzZSBvZ2dpOiA8Yj4nK2VzYyhmaW5pc2hlZC5qb2luKCcgwrcgJykpKyc8L2I+PC9kaXY+JzsKICB9CiAgaWYgKGggPT09IGxhc3RIdG1sKSByZXR1cm47CiAgZWwuY2xhc3NOYW1lID0gbGFzdEh0bWwgPyAnJyA6ICdlbnRlcic7CiAgbGFzdEh0bWwgPSBoOwogIGVsLmlubmVySFRNTCA9IGg7CiAgZml0Um93cygpOwp9Ci8qIHJpZ2hlIGFsdGUgcXVhbnRvIHNlcnZlOiBzZSBhdmFuemFubyBzcGF6aW8gc2kgYWxsYXJnYW5vLCBmaW5vIGEgdW4gbWFzc2ltbyAqLwpmdW5jdGlvbiBmaXRSb3dzKCl7CiAgdmFyIGJveCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJyNsdy1yb290IC5yb3dzJyk7IGlmICghYm94KSByZXR1cm47CiAgdmFyIHJvd3MgPSBib3guY2hpbGRyZW4sIG4gPSByb3dzLmxlbmd0aCwgaSwgdXNlZCA9IDA7CiAgYm94LmNsYXNzTmFtZSA9ICdyb3dzJzsKICBpZiAoYm94LnNjcm9sbEhlaWdodCA+IGJveC5jbGllbnRIZWlnaHQgKyAyKSBib3guY2xhc3NOYW1lID0gJ3Jvd3MgZGVuc2UnOwogIGlmIChib3guc2Nyb2xsSGVpZ2h0ID4gYm94LmNsaWVudEhlaWdodCArIDIpIGJveC5jbGFzc05hbWUgPSAncm93cyBkZW5zZSBkZW5zZTInOwogIGZvciAoaT0wO2k8bjtpKyspeyByb3dzW2ldLnN0eWxlLm1pbkhlaWdodCA9ICcnOyB1c2VkICs9IHJvd3NbaV0ub2Zmc2V0SGVpZ2h0ICsgNzsgfQogIHZhciBmcmVlID0gYm94LmNsaWVudEhlaWdodCAtIDggLSB1c2VkOwogIGlmIChmcmVlID4gMCl7CiAgICB2YXIgYWRkID0gTWF0aC5taW4oZnJlZSAvIG4sIDQwKTsKICAgIGZvciAoaT0wO2k8bjtpKyspIHJvd3NbaV0uc3R5bGUubWluSGVpZ2h0ID0gKHJvd3NbaV0ub2Zmc2V0SGVpZ2h0ICsgYWRkKSArICdweCc7CiAgfQp9CgovKiAtLS0tLS0tLS0tLS0tLS0tIEFWVklTSSAtLS0tLS0tLS0tLS0tLS0tICovCnZhciBtc2dJZHggPSAwOwpmdW5jdGlvbiBhY3RpdmVNZXNzYWdlcygpewogIHZhciB0b2RheSA9IGlzb0RheShuZXcgRGF0ZSgpKSwgb3V0ID0ge25vcm06W10sIHVyZzpbXX0sIG0gPSAoREFUQSAmJiBEQVRBLmF2dmlzaSkgfHwgW107CiAgZm9yICh2YXIgaT0wO2k8bS5sZW5ndGg7aSsrKXsKICAgIGlmIChtW2ldLmRhbCAmJiB0b2RheSA8IG1baV0uZGFsKSBjb250aW51ZTsKICAgIGlmIChtW2ldLmFsICYmIHRvZGF5ID4gbVtpXS5hbCkgY29udGludWU7CiAgICAobVtpXS51cmdlbnRlID8gb3V0LnVyZyA6IG91dC5ub3JtKS5wdXNoKG1baV0udGVzdG8pOwogIH0KICByZXR1cm4gb3V0Owp9CmZ1bmN0aW9uIHJlbmRlck1lc3NhZ2VzKHN0ZXApewogIHZhciBhbSA9IGFjdGl2ZU1lc3NhZ2VzKCk7CiAgaWYgKGFtLnVyZy5sZW5ndGgpeyAkKCdsdy11cmdlbnRUeHQnKS50ZXh0Q29udGVudCA9IGFtLnVyZy5qb2luKCcgwrcgJyk7ICQoJ2x3LXVyZ2VudCcpLnN0eWxlLmRpc3BsYXk9J2ZsZXgnOyB9CiAgZWxzZSAkKCdsdy11cmdlbnQnKS5zdHlsZS5kaXNwbGF5PSdub25lJzsKICB2YXIgbGlzdCA9IGFtLm5vcm0ubGVuZ3RoID8gYW0ubm9ybSA6IFsnQmVudmVudXRpIGEgQ28uVmVyLkZvLlAuJ107CiAgaWYgKHN0ZXApIG1zZ0lkeCsrOwogIHZhciBpID0gbXNnSWR4ICUgbGlzdC5sZW5ndGgsIHQgPSAkKCdsdy1tc2dUeHQnKTsKICBpZiAoc3RlcCAmJiBsaXN0Lmxlbmd0aD4xKXsgdC5jbGFzc05hbWU9Jyc7IHZvaWQgdC5vZmZzZXRXaWR0aDsgdC5jbGFzc05hbWU9J2VudGVyJzsgfQogIHQudGV4dENvbnRlbnQgPSBsaXN0W2ldOwogIHZhciBkPScnOyBmb3IgKHZhciBqPTA7ajxsaXN0Lmxlbmd0aDtqKyspIGQgKz0gJzxpIGNsYXNzPSInKyhqPT09aT8nb24nOicnKSsnIj48L2k+JzsKICAkKCdsdy1tc2dEb3RzJykuaW5uZXJIVE1MID0gbGlzdC5sZW5ndGg+MSA\/IGQgOiAnJzsKfQoKLyogLS0tLS0tLS0tLS0tLS0tLSBBVlZJTyAtLS0tLS0tLS0tLS0tLS0tICovCmZ1bmN0aW9uIGJvb3QoKXsKZml0KCk7CnRpY2tDbG9jaygpOyBzZXRJbnRlcnZhbCh0aWNrQ2xvY2ssIDEwMDApOwpsb2FkTWV0ZW8oKTsgc2V0SW50ZXJ2YWwobG9hZE1ldGVvLCAzMCo2MCoxMDAwKTsKbG9hZERhdGEoKTsgc2V0SW50ZXJ2YWwobG9hZERhdGEsIENPTkZJRy5SRUZSRVNIX0RBVEFfU0VDKjEwMDApOwpzZXRJbnRlcnZhbChmdW5jdGlvbigpeyBpZiAoREFUQSkgcmVuZGVyKCk7IH0sIDIwMDAwKTsKc2V0SW50ZXJ2YWwoZnVuY3Rpb24oKXsgaWYgKERBVEEpIHJlbmRlck1lc3NhZ2VzKHRydWUpOyB9LCBDT05GSUcuTVNHX1NFQyoxMDAwKTsKc2V0VGltZW91dChmdW5jdGlvbigpeyBsb2NhdGlvbi5yZWxvYWQoKTsgfSwgQ09ORklHLlJFTE9BRF9IT1VSUyozNjAwKjEwMDApOwp9CmZ1bmN0aW9uIHN0YXJ0KCl7CiAgdHJ5ewogICAgdmFyIHJvb3QgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbHctcm9vdCcpOwogICAgaWYgKHJvb3QgJiYgcm9vdC5wYXJlbnROb2RlICE9PSBkb2N1bWVudC5ib2R5KSBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHJvb3QpOwogICAgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLm92ZXJmbG93PSdoaWRkZW4nOyBkb2N1bWVudC5ib2R5LnN0eWxlLm92ZXJmbG93PSdoaWRkZW4nOwogICAgYm9vdCgpOwogIH1jYXRjaChlKXsgc2hvd0VycihlKTsgfQp9CmZ1bmN0aW9uIHNob3dFcnIoZSl7CiAgdmFyIGEgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbHctYXBwJyk7IGlmICghYSkgcmV0dXJuOwogIHZhciBkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7CiAgZC5zdHlsZS5jc3NUZXh0PSdwb3NpdGlvbjphYnNvbHV0ZTtsZWZ0OjIwcHg7cmlnaHQ6MjBweDtib3R0b206MTcwcHg7YmFja2dyb3VuZDojZDMyZjJmO2NvbG9yOiNmZmY7Zm9udDoyNHB4IEFyaWFsO3BhZGRpbmc6MTZweDtib3JkZXItcmFkaXVzOjEwcHg7ei1pbmRleDo5JzsKICBkLnRleHRDb250ZW50ID0gJ0Vycm9yZSBsZWR3YWxsOiAnICsgKGUgJiYgZS5tZXNzYWdlID8gZS5tZXNzYWdlIDogZSk7CiAgYS5hcHBlbmRDaGlsZChkKTsKfQppZiAoZG9jdW1lbnQucmVhZHlTdGF0ZSA9PT0gJ2xvYWRpbmcnKSBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdET01Db250ZW50TG9hZGVkJywgc3RhcnQpOyBlbHNlIHN0YXJ0KCk7Cn0pKCk7';new Function(decodeURIComponent(escape(window.atob(c))))();})();<\/script><\/p>\n<\/div>\n<p><!--more--><br \/>\n<!-- {\"type\":\"layout\",\"children\":[{\"type\":\"section\",\"props\":{\"image_position\":\"center-center\",\"style\":\"default\",\"title_breakpoint\":\"xl\",\"title_position\":\"top-left\",\"title_rotation\":\"left\",\"vertical_align\":\"middle\",\"width\":\"default\"},\"children\":[{\"type\":\"row\",\"children\":[{\"type\":\"column\",\"props\":{\"image_position\":\"center-center\",\"position_sticky_breakpoint\":\"m\"},\"children\":[{\"type\":\"html\",\"props\":{\"content\":\"<!-- LEDWALL COVERFOP - Aule del giorno\\n     Da incollare per intero in un blocco \\\"HTML personalizzato\\\" di una pagina WordPress.\\n     L'unica riga modificabile e' LEDWALL_URL (indirizzo \/exec dello script Google).\\n     Il programma e' codificato per non essere alterato dalla formattazione automatica di WordPress. -->\\n<\/p>\n<div id=\\\"lw-root\\\">\\n<\/p>\n<style>\\n#lw-root{position:fixed;left:0;top:0;right:0;bottom:0;z-index:2147483000;background:#000;overflow:hidden;cursor:none;font-family:Roboto,\\\"Segoe UI\\\",\\\"Helvetica Neue\\\",Arial,sans-serif;line-height:1.2;text-align:left}\\n#lw-root h1,#lw-root b,#lw-root small,#lw-root em,#lw-root span,#lw-root div,#lw-root i{font-family:inherit;text-transform:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0;border:0;background:none;box-shadow:none;line-height:inherit;font-size:inherit;font-weight:inherit}\\n#lw-root svg{display:inline-block;max-width:none;vertical-align:middle}\\n#lw-root header,#lw-root main,#lw-root footer{width:auto;max-width:none;min-height:0;transform:none;opacity:1;visibility:visible}\\n#lw-root,#lw-root *{box-sizing:border-box;margin:0;padding:0}\\n#lw-root{font-family:Roboto,\\\"Segoe UI\\\",\\\"Helvetica Neue\\\",Arial,sans-serif;color:#ffffff;-webkit-font-smoothing:antialiased}\\n#lw-root .num{font-variant-numeric:tabular-nums;-webkit-font-feature-settings:\\\"tnum\\\";font-feature-settings:\\\"tnum\\\"}\\n#lw-root #lw-app{-webkit-transform:scale(.5);transform:scale(.5);position:absolute;left:50%;top:50%;width:1080px;height:1920px;margin:-960px 0 0 -540px;\\n  background:#0b2350;display:flex;flex-direction:column;overflow:hidden;\\n  -webkit-transform-origin:50% 50%;transform-origin:50% 50%}\\n#lw-root header{position:relative;height:192px;flex:none;display:flex;align-items:center;justify-content:space-between;\\n  padding:8px 40px 0;background:#061634;border-bottom:3px solid #CDCF01}\\n#lw-root .stripe{position:absolute;left:0;right:0;top:0;height:8px;display:flex}\\n#lw-root .stripe i{flex:1}\\n#lw-root .tbox{line-height:1}\\n#lw-root .clock{font-size:108px;font-weight:700;letter-spacing:-1px}\\n#lw-root .clock .col{display:inline-block;margin:0 2px}\\n#lw-root .clock .col.off{opacity:.25}\\n#lw-root .clock small{font-size:40px;color:#a9bde0;font-weight:500;margin-left:10px}\\n#lw-root .date{font-size:30px;font-weight:600;color:#dce6f7;margin-top:12px}\\n#lw-root .rbox{display:flex;flex-direction:column;align-items:flex-end}\\n#lw-root .brand{display:flex;align-items:center}\\n#lw-root .bars{display:flex;align-items:flex-end;height:44px;margin-right:14px}\\n#lw-root .bars span{width:8px;margin-right:5px;border-radius:4px}\\n#lw-root .brand b{font-size:32px;letter-spacing:2px;font-weight:700}\\n#lw-root .meteo{display:none;align-items:center;margin-top:18px}\\n#lw-root .meteo svg{width:46px;height:46px;margin-right:12px;color:#7AC4C2}\\n#lw-root .meteo .t{font-size:40px;font-weight:700;margin-right:12px}\\n#lw-root .meteo .d{font-size:22px;color:#a9bde0}\\n#lw-root main{position:relative;height:1574px;flex:none;padding:24px 32px 16px;display:flex;flex-direction:column}\\n#lw-root #lw-page{display:flex;flex-direction:column;height:100%}\\n#lw-root .ttl{display:flex;align-items:center;justify-content:space-between;flex:none;background:#CDCF01;color:#0b1a33;margin:-24px -32px 0;padding:14px 32px}\\n#lw-root .ttl h1{font-size:52px;font-weight:800;line-height:1}\\n#lw-root .ttl .sub{font-size:24px;color:#0b1a33;font-weight:600}\\n#lw-root .legend{display:flex;flex-wrap:wrap;margin-top:18px;flex:none}\\n#lw-root .legend span{display:flex;align-items:center;font-size:18px;color:#dce6f7;margin-right:16px;margin-bottom:6px;white-space:nowrap}\\n#lw-root .legend i{display:inline-block;width:20px;height:20px;border-radius:5px;margin-right:8px}\\n#lw-root .legend .tg{font-size:14px;font-weight:800;padding:2px 6px;border-radius:4px;margin-right:8px;background:#fff;color:#0b0d10}\\n#lw-root .thead,#lw-root .row{display:flex}\\n#lw-root .thead{height:44px;flex:none;align-items:center;margin-top:10px;font-size:17px;color:#ffffff;font-weight:700;\\n  text-transform:uppercase;letter-spacing:2px;padding:0 14px 0 22px;background:#1d4594;border-radius:4px}\\n#lw-root .rows{flex:1;display:flex;flex-direction:column;padding-top:8px}\\n#lw-root .row{position:relative;margin-bottom:3px;background:#123170;border-radius:4px;align-items:center;\\n  padding:8px 14px 8px 22px;overflow:hidden}\\n#lw-root .row:nth-child(even){background:#0e2a62}\\n#lw-root .row.wait .c2{opacity:.85}\\n#lw-root .row.wait .cls b{color:#dce6f7}\\n#lw-root .row .edge{position:absolute;left:0;top:0;bottom:0;width:9px}\\n#lw-root .c1{width:24%;padding-right:8px}\\n#lw-root .c2{width:34%;padding-right:8px}\\n#lw-root .c3{width:21%}\\n#lw-root .c4{width:21%}\\n#lw-root .cls b{display:block;font-size:31px;font-weight:800;letter-spacing:-.3px;line-height:1.1}\\n#lw-root .cls small{display:block;font-size:18px;color:#a9bde0;margin-top:5px;letter-spacing:.5px}\\n#lw-root .blk{display:flex;align-items:center;flex-wrap:wrap;margin:3px 0}\\n#lw-root .pill{display:inline-flex;align-items:center;font-size:30px;font-weight:800;\\n  padding:2px 14px 3px 10px;border-radius:9px;white-space:nowrap;line-height:1.15}\\n#lw-root .pill svg{width:25px;height:25px;margin-right:8px;flex:none}\\n#lw-root .tg{display:inline-block;font-size:17px;font-weight:800;letter-spacing:1px;padding:3px 7px;border-radius:5px;\\n  background:#fff;color:#0b0d10;margin-right:8px;line-height:1.1}\\n#lw-root .tg.u{background:transparent;color:#dce6f7;box-shadow:inset 0 0 0 2px #dce6f7;margin-left:8px;margin-right:0}\\n#lw-root .until{font-size:18px;color:#a9bde0;margin-left:10px;white-space:nowrap}\\n#lw-root .starts{font-size:19px;color:#CDCF01;font-weight:700;margin-left:10px;white-space:nowrap}\\n#lw-root .row .c3,#lw-root .row .c4{border-left:1px solid #2a4a8a;padding-left:12px;align-self:stretch;display:flex;flex-direction:column;justify-content:center}\\n#lw-root .nx{margin:3px 0;line-height:1.15}\\n#lw-root .nx .h{font-size:18px;color:#CDCF01;font-weight:700}\\n#lw-root .nx .a{font-size:23px;font-weight:700;color:#ffffff;white-space:nowrap}\\n#lw-root .nx .o{font-size:20px;color:#a9bde0;font-style:italic}\\n#lw-root .nx .tg{font-size:14px;padding:2px 5px;margin-right:6px}\\n#lw-root .free{color:#a9bde0;font-size:20px}\\n#lw-root .rows{overflow:hidden}\\n#lw-root .rows.dense .row{padding-top:5px;padding-bottom:5px;margin-bottom:5px}\\n#lw-root .rows.dense .cls b{font-size:29px}\\n#lw-root .rows.dense .cls small{font-size:16px;margin-top:2px}\\n#lw-root .rows.dense .pill{font-size:28px;padding:1px 12px 2px 9px}\\n#lw-root .rows.dense .pill svg{width:21px;height:21px}\\n#lw-root .rows.dense .blk{margin:1px 0}\\n#lw-root .rows.dense .nx .a{font-size:20px}\\n#lw-root .rows.dense .nx .h,#lw-root .rows.dense .until,#lw-root .rows.dense .starts,#lw-root .rows.dense .free{font-size:17px}\\n#lw-root .rows.dense .tg{font-size:15px;padding:2px 6px}\\n#lw-root .rows.dense2 .cls b{font-size:25px}\\n#lw-root .rows.dense2 .pill{font-size:25px}\\n#lw-root .rows.dense2 .nx .a{font-size:20px}\\n#lw-root .done{flex:none;margin-top:8px;font-size:19px;color:#a9bde0}\\n#lw-root .done b{color:#dce6f7;font-weight:600}\\n#lw-root .enter{-webkit-animation:enter .6s ease both;animation:enter .6s ease both}\\n@-webkit-keyframes enter{from{opacity:0}to{opacity:1}}\\n@keyframes enter{from{opacity:0}to{opacity:1}}\\n#lw-root .empty{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center}\\n#lw-root .empty .bars{height:90px;margin:0 0 40px}\\n#lw-root .empty .bars span{width:16px;margin-right:10px}\\n#lw-root .empty h1{font-size:76px;font-weight:800;line-height:1.1}\\n#lw-root .empty p{font-size:32px;color:#a9bde0;margin-top:20px}\\n#lw-root #lw-urgent{display:none;position:absolute;left:32px;right:32px;top:24px;bottom:16px;background:#d32f2f;\\n  border-radius:20px;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:60px 50px}\\n#lw-root #lw-urgent .tag{display:flex;align-items:center;font-size:36px;font-weight:800;letter-spacing:8px;background:#fff;\\n  color:#d32f2f;padding:10px 26px;border-radius:12px;-webkit-animation:pulse 1.6s ease-in-out infinite;animation:pulse 1.6s ease-in-out infinite}\\n#lw-root #lw-urgent .tag svg{width:38px;height:38px;margin-right:12px}\\n#lw-root #lw-urgent .txt{font-size:84px;font-weight:800;line-height:1.12;margin-top:50px}\\n@-webkit-keyframes pulse{50%{opacity:.4}}\\n@keyframes pulse{50%{opacity:.4}}\\n#lw-root footer{height:154px;flex:none;display:flex;background:#061634;border-top:2px solid #2a4a8a}\\n#lw-root .flabel{width:150px;flex:none;display:flex;flex-direction:column;align-items:center;justify-content:center;background:#A600B0}\\n#lw-root .flabel svg{width:44px;height:44px}\\n#lw-root .flabel b{font-size:20px;font-weight:800;letter-spacing:3px;margin-top:8px}\\n#lw-root .msg{flex:1;display:flex;flex-direction:column;justify-content:center;padding:0 34px}\\n#lw-root #lw-msgTxt{font-size:38px;font-weight:600;line-height:1.2;max-height:92px;overflow:hidden}\\n#lw-root #lw-msgDots{margin-top:12px;height:8px}\\n#lw-root #lw-msgDots i{display:inline-block;width:8px;height:8px;border-radius:4px;background:#2a4a8a;margin-right:8px}\\n#lw-root #lw-msgDots i.on{width:30px;background:#CDCF01}\\n#lw-root #lw-stale{position:absolute;right:10px;bottom:10px;width:14px;height:14px;border-radius:50%;background:#d32f2f;display:none}\\n<\/style>\n<p>\\n<\/p>\n<div id=\\\"lw-app\\\">\\n  <\/p>\n<header>\\n    <\/p>\n<div class=\\\"stripe\\\"><i style=\\\"background:#A600B0\\\"><\/i><i style=\\\"background:#7AC4C2\\\"><\/i><i style=\\\"background:#CDCF01\\\"><\/i><i style=\\\"background:#1B6E0E\\\"><\/i><\/div>\n<p>\\n    <\/p>\n<div class=\\\"tbox\\\">\\n      <\/p>\n<div class=\\\"clock num\\\" id=\\\"lw-clock\\\"><\/div>\n<p>\\n      <\/p>\n<div class=\\\"date\\\" id=\\\"lw-date\\\"><\/div>\n<p>\\n    <\/p><\/div>\n<p>\\n    <\/p>\n<div class=\\\"rbox\\\">\\n      <\/p>\n<div class=\\\"brand\\\">\n<div class=\\\"bars\\\"><span style=\\\"background:#A600B0;height:100%\\\"><\/span><span style=\\\"background:#7AC4C2;height:80%\\\"><\/span><span style=\\\"background:#CDCF01;height:60%\\\"><\/span><span style=\\\"background:#1B6E0E;height:40%\\\"><\/span><\/div>\n<p><b>CO.VER.FO.P.<\/b><\/div>\n<p>\\n      <\/p>\n<div class=\\\"meteo\\\" id=\\\"lw-meteo\\\"><span id=\\\"lw-micon\\\"><\/span><span class=\\\"t num\\\" id=\\\"lw-mtemp\\\"><\/span><span class=\\\"d\\\" id=\\\"lw-mdesc\\\"><\/span><\/div>\n<p>\\n    <\/p><\/div>\n<p>\\n  <\/header>\n<p>\\n\\n  <main>\\n    <\/p>\n<div id=\\\"lw-page\\\"><\/div>\n<p>\\n    <\/p>\n<div id=\\\"lw-urgent\\\">\n<div class=\\\"tag\\\"><svg viewBox=\\\"0 0 24 24\\\" fill=\\\"none\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"2.6\\\" stroke-linecap=\\\"round\\\" stroke-linejoin=\\\"round\\\"><path d=\\\"M12 3 2 21h20L12 3z\\\"\/><path d=\\\"M12 10v5\\\"\/><path d=\\\"M12 18h.01\\\"\/><\/svg>AVVISO<\/div>\n<div class=\\\"txt\\\" id=\\\"lw-urgentTxt\\\"><\/div>\n<\/div>\n<p>\\n  <\/main>\\n\\n  <\/p>\n<footer>\\n    <\/p>\n<div class=\\\"flabel\\\"><svg viewBox=\\\"0 0 24 24\\\" fill=\\\"none\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"2.2\\\" stroke-linecap=\\\"round\\\" stroke-linejoin=\\\"round\\\"><path d=\\\"M3 11v2a1 1 0 0 0 1 1h3l5 4V6L7 10H4a1 1 0 0 0-1 1z\\\"\/><path d=\\\"M16 9a4 4 0 0 1 0 6\\\"\/><path d=\\\"M19 6a8 8 0 0 1 0 12\\\"\/><\/svg><b>AVVISI<\/b><\/div>\n<p>\\n    <\/p>\n<div class=\\\"msg\\\">\n<div id=\\\"lw-msgTxt\\\"><\/div>\n<div id=\\\"lw-msgDots\\\"><\/div>\n<\/div>\n<p>\\n  <\/footer>\n<p>\\n  <\/p>\n<div id=\\\"lw-stale\\\"><\/div>\n<p>\\n<\/p><\/div>\n<p>\\n<\/p><\/div>\n<p>\\n<script>window.LEDWALL_URL = 'https:\/\/script.google.com\/macros\/s\/AKfycby7VeiQrmdmaOiYVvcLbW7z5vWNBVoG3uotu-EShcJFLI5wmrTHCT1bWWy37JJbmAE\/exec';<\/script>\\n<script>(function(){var c='KGZ1bmN0aW9uKCl7Cid1c2Ugc3RyaWN0JzsKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIENPTkZJR1VSQVpJT05FCiAgIERBVEFfVVJMOiBpbmRpcml6em8gZGVsbG8gc2NyaXB0IEdvb2dsZSBjaGUgcmVzdGl0dWlzY2UgaWwgcGlhbm8gZGVsIGdpb3Juby4KICAgICAgICAgICAgIFZ1b3RvID0gdXNhIGkgZGF0aSBkaSBwcm92YSBxdWkgc290dG8gKHByb3NwZXR0byByZWFsZSBkZWwgMjYvMTAvMjAyNikuCiAgIFJPVEFURTogICAwIHNlIEFuZHJvaWQgbGF2b3JhIGdpYScgaW4gdmVydGljYWxlOyA5MCBvIC05MCBzZSBpbCBwYW5uZWxsbyBlJyBtb250YXRvIHJ1b3RhdG8uCiAgIFBhcmFtZXRyaSBkYSBpbmRpcml6em86ID9yb3Q9OTAgID9vcmE9MTA6MzAgKHNvbG8gcGVyIHByb3ZlKQogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KdmFyIENPTkZJRyA9IHsKICBEQVRBX1VSTDogKHdpbmRvdy5MRURXQUxMX1VSTCB8fCAnJyksCiAgUk9UQVRFOiAwLAogIFJFRlJFU0hfREFUQV9TRUM6IDYwLAogIE1TR19TRUM6IDgsCiAgUkVMT0FEX0hPVVJTOiA2LAogIExBVDogNDUuMzIwMiwgTE9OOiA4LjQxODUsCiAgRkFLRV9USU1FOiBudWxsCn07CihmdW5jdGlvbigpewogIHZhciBxID0gbG9jYXRpb24uc2VhcmNoLCBtOwogIGlmICgobSA9IHEubWF0Y2goL1s\/Jl1yb3Q9KC0\/XGQrKS8pKSkgQ09ORklHLlJPVEFURSA9ICttWzFdOwogIGlmICgobSA9IHEubWF0Y2goL1s\/Jl1vcmE9KFxkezEsMn0pWzouXShcZHsyfSkvKSkpIENPTkZJRy5GQUtFX1RJTUUgPSAoK21bMV0pKjYwICsgKCttWzJdKTsKfSkoKTsKCi8qIC0tLS0tLS0tLS0tLS0tLS0gQURBVFRBTUVOVE8gQUxMTyBTQ0hFUk1PIC0tLS0tLS0tLS0tLS0tLS0gKi8KZnVuY3Rpb24gZml0KCl7CiAgdmFyIHcgPSB3aW5kb3cuaW5uZXJXaWR0aCwgaCA9IHdpbmRvdy5pbm5lckhlaWdodCwgciA9IENPTkZJRy5ST1RBVEU7CiAgdmFyIHNpZGUgPSAocj09PTkwIHx8IHI9PT0tOTApLCBXID0gc2lkZSA\/IGggOiB3LCBIID0gc2lkZSA\/IHcgOiBoOwogIHZhciBzID0gTWF0aC5taW4oVy8xMDgwLCBILzE5MjApLCB0ID0gKHIgPyAncm90YXRlKCcrcisnZGVnKSAnIDogJycpICsgJ3NjYWxlKCcrcysnKSc7CiAgdmFyIGFwcCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdsdy1hcHAnKTsgYXBwLnN0eWxlLndlYmtpdFRyYW5zZm9ybSA9IHQ7IGFwcC5zdHlsZS50cmFuc2Zvcm0gPSB0Owp9CndpbmRvdy5vbnJlc2l6ZSA9IGZpdDsKCi8qIC0tLS0tLS0tLS0tLS0tLS0gREFUSSBESSBQUk9WQTogcHJvc3BldHRvIHJlYWxlIGRpIGx1bmVkaScgMjYgb3R0b2JyZSAyMDI2IC0tLS0tLS0tLS0tLS0tLS0KICAgU3Rlc3NhIGZvcm1hIGNoZSByZXN0aXR1aXJhJyBsbyBzY3JpcHQgZGVsIGZvZ2xpbyBHb29nbGUuCiAgIGNvcnNpOiAgIG9yZGluZSBkaSB2aXN1YWxpenphemlvbmUsIHBpYW5vIGRpIHJpZmVyaW1lbnRvLCBjb2xvcmUgZGVsbGEgZmFtaWdsaWEKICAgYXVsZTogICAgdGlwbyBlIGNvbG9yZSAobGFib3JhdG9yaW8gdGVjbmljbyAvIGluZm9ybWF0aWNhIGF1bGEgNCAvIGluZm9ybWF0aWNhIGF1bGEgMTAgLyBwYWxlc3RyYSkKICAgYmxvY2NoaTogdW5hIHJpZ2EgcGVyIG9nbmkgcGVybWFuZW56YSBpbiBhdWxhOyBncnVwcG8gQS9JIHBlciBsZSBhcnRpY29sYXRlOyB1bml0YSA9ICh1KSAgICAgICAgKi8KZnVuY3Rpb24gZGVtb0RhdGEoKXsKICB2YXIgZCA9IG5ldyBEYXRlKCk7CiAgdmFyIG9nZ2kgPSBkLmdldEZ1bGxZZWFyKCkrJy0nK3BhZChkLmdldE1vbnRoKCkrMSkrJy0nK3BhZChkLmdldERhdGUoKSk7CiAgcmV0dXJuIHsKICAgIGRhdGE6IG9nZ2ksCiAgICB0aXBpOiBbCiAgICAgIHt0aXBvOidMYWJvcmF0b3JpbyB0ZWNuaWNvJywgY29sb3JlOicjQjI0QkQwJ30sCiAgICAgIHt0aXBvOidMYWIuIGluZm9ybWF0aWNvIGF1bGEgNCcsIGNvbG9yZTonIzNCNjNGMCd9LAogICAgICB7dGlwbzonTGFiLiBpbmZvcm1hdGljbyBhdWxhIDEwJywgY29sb3JlOicjNkZCM0UwJ30sCiAgICAgIHt0aXBvOidQYWxlc3RyYScsIGNvbG9yZTonI0U1NDg0RCd9CiAgICBdLAogICAgYXVsZTogWwogICAgICB7YXVsYTonYXVsYSAxMicsIHRpcG86J0xhYm9yYXRvcmlvIHRlY25pY28nfSwKICAgICAge2F1bGE6J2F1bGEgMTUnLCB0aXBvOidMYWJvcmF0b3JpbyB0ZWNuaWNvJ30sCiAgICAgIHthdWxhOidhdWxhIDE2JywgdGlwbzonTGFib3JhdG9yaW8gdGVjbmljbyd9LAogICAgICB7YXVsYTonYXVsYSAxNycsIHRpcG86J0xhYm9yYXRvcmlvIHRlY25pY28nfSwKICAgICAge2F1bGE6J2F1bGEgNCcsICB0aXBvOidMYWIuIGluZm9ybWF0aWNvIGF1bGEgNCd9LAogICAgICB7YXVsYTonYXVsYSAxMCcsIHRpcG86J0xhYi4gaW5mb3JtYXRpY28gYXVsYSAxMCd9LAogICAgICB7YXVsYToncGFsZXN0cmEnLHRpcG86J1BhbGVzdHJhJ30KICAgIF0sCiAgICBjb3JzaTogWwogICAgICB7Y29yc286J09FL09JIDHCqicsIHBpYW5vOidQaWFubyB0ZXJyYScsIGNvbG9yZTonIzdBQzRDMid9LAogICAgICB7Y29yc286J09FL09JIDLCqicsIHBpYW5vOidQaWFubyBwcmltbycsIGNvbG9yZTonIzdBQzRDMid9LAogICAgICB7Y29yc286J09FL09JIDPCqicsIHBpYW5vOidQaWFubyB0ZXJyYScsIGNvbG9yZTonIzdBQzRDMid9LAogICAgICB7Y29yc286J1RFL1RJIDTCqicsIHBpYW5vOidQaWFubyBwcmltbycsIGNvbG9yZTonIzdBQzRDMid9LAogICAgICB7Y29yc286J09CIDHCqicsICAgIHBpYW5vOidQcmltbyBwaWFubycsIGNvbG9yZTonI0E2MDBCMCd9LAogICAgICB7Y29yc286J09CIDLCqicsICAgIHBpYW5vOidBbGEgbnVvdmEnLCAgIGNvbG9yZTonI0E2MDBCMCd9LAogICAgICB7Y29yc286J09CIDPCqicsICAgIHBpYW5vOidBbGEgbnVvdmEnLCAgIGNvbG9yZTonI0E2MDBCMCd9LAogICAgICB7Y29yc286J1RURSA0wqonLCAgIHBpYW5vOidBbGEgbnVvdmEnLCAgIGNvbG9yZTonI0E2MDBCMCd9LAogICAgICB7Y29yc286J09TUyBwcmltbyBjb3JzbycsICAgcGlhbm86J1ByaW1vIHBpYW5vJywgY29sb3JlOicjMUI2RTBFJ30sCiAgICAgIHtjb3JzbzonT1NTIHNlY29uZG8gY29yc28nLCBwaWFubzonUHJpbW8gcGlhbm8nLCBjb2xvcmU6JyMxQjZFMEUnfSwKICAgICAge2NvcnNvOidBZ2cuIGluZm9ybWF0aWNvIEdPTCcsIHBpYW5vOidQaWFubyB0ZXJyYScsIGNvbG9yZTonI0NEQ0YwMSd9LAogICAgICB7Y29yc286J1NvbW1lbGllciAxwrAgbGl2ZWxsbycsIHBpYW5vOidBbGEgbnVvdmEnLCBjb2xvcmU6JyNDRENGMDEnfSwKICAgICAge2NvcnNvOidDb2xsb3F1aSBpbiBwcmVzZW56YScsIHBpYW5vOidQcmltbyBwaWFubycsIGNvbG9yZTonIzhhOTZhMCd9CiAgICBdLAogICAgYmxvY2NoaTogWwogICAgICB7Y29yc286J09FL09JIDHCqicsIGluaXppbzonMDg6MDAnLCBmaW5lOicxMDowMCcsIGF1bGE6J2F1bGEgMTQnLCBncnVwcG86J0EnfSwKICAgICAge2NvcnNvOidPRS9PSSAxwqonLCBpbml6aW86JzA4OjAwJywgZmluZTonMTA6MDAnLCBhdWxhOidhdWxhIDQnLCAgZ3J1cHBvOidJJ30sCiAgICAgIHtjb3JzbzonT0UvT0kgMcKqJywgaW5pemlvOicxMDowMCcsIGZpbmU6JzE0OjAwJywgYXVsYTonYXVsYSAxNCd9LAogICAgICB7Y29yc286J09FL09JIDLCqicsIGluaXppbzonMDg6MDAnLCBmaW5lOicxMTowMCcsIGF1bGE6J2F1bGEgNid9LAogICAgICB7Y29yc286J09FL09JIDLCqicsIGluaXppbzonMTE6MDAnLCBmaW5lOicxNDowMCcsIGF1bGE6J2F1bGEgMTYnLCBncnVwcG86J0EnfSwKICAgICAge2NvcnNvOidPRS9PSSAywqonLCBpbml6aW86JzExOjAwJywgZmluZTonMTQ6MDAnLCBhdWxhOidhdWxhIDQnLCAgZ3J1cHBvOidJJ30sCiAgICAgIHtjb3JzbzonT0UvT0kgM8KqJywgaW5pemlvOicwODowMCcsIGZpbmU6JzEwOjAwJywgYXVsYTonYXVsYSAxMycsIHVuaXRhOnRydWV9LAogICAgICB7Y29yc286J09FL09JIDPCqicsIGluaXppbzonMTA6MDAnLCBmaW5lOicxMTowMCcsIGF1bGE6J2F1bGEgMTMnLCBncnVwcG86J0EnfSwKICAgICAge2NvcnNvOidPRS9PSSAzwqonLCBpbml6aW86JzEwOjAwJywgZmluZTonMTE6MDAnLCBhdWxhOidhdWxhIDQnLCAgZ3J1cHBvOidJJ30sCiAgICAgIHtjb3JzbzonT0UvT0kgM8KqJywgaW5pemlvOicxMTowMCcsIGZpbmU6JzEzOjAwJywgYXVsYTonYXVsYSAxMycsIHVuaXRhOnRydWV9LAogICAgICB7Y29yc286J1RFL1RJIDTCqicsIGluaXppbzonMDg6MDAnLCBmaW5lOicxMTowMCcsIGF1bGE6J2F1bGEgOScsICBncnVwcG86J0EnfSwKICAgICAge2NvcnNvOidURS9USSA0wqonLCBpbml6aW86JzA4OjAwJywgZmluZTonMTE6MDAnLCBhdWxhOidhdWxhIDEwJywgZ3J1cHBvOidJJ30sCiAgICAgIHtjb3JzbzonVEUvVEkgNMKqJywgaW5pemlvOicxMTowMCcsIGZpbmU6JzEzOjAwJywgYXVsYTonYXVsYSA5JywgIHVuaXRhOnRydWV9LAogICAgICB7Y29yc286J09CIDHCqicsIGluaXppbzonMDg6MDAnLCBmaW5lOicxMDowMCcsIGF1bGE6J2F1bGEgMTInfSwKICAgICAge2NvcnNvOidPQiAxwqonLCBpbml6aW86JzEwOjAwJywgZmluZTonMTM6MDAnLCBhdWxhOidhdWxhIDEnfSwKICAgICAge2NvcnNvOidPQiAxwqonLCBpbml6aW86JzE0OjAwJywgZmluZTonMTY6MDAnLCBhdWxhOidwYWxlc3RyYSd9LAogICAgICB7Y29yc286J09CIDLCqicsIGluaXppbzonMDg6MDAnLCBmaW5lOicxMzowMCcsIGF1bGE6J2F1bGEgMjEnfSwKICAgICAge2NvcnNvOidPQiAywqonLCBpbml6aW86JzE0OjAwJywgZmluZTonMTY6MDAnLCBhdWxhOidwYWxlc3RyYSd9LAogICAgICB7Y29yc286J09CIDPCqicsIGluaXppbzonMDg6MDAnLCBmaW5lOicxMzowMCcsIGF1bGE6J2F1bGEgMjInfSwKICAgICAge2NvcnNvOidUVEUgNMKqJywgaW5pemlvOicwODowMCcsIGZpbmU6JzEzOjAwJywgYXVsYTonYXVsYSAyMCd9LAogICAgICB7Y29yc286J09TUyBwcmltbyBjb3JzbycsIGluaXppbzonMDk6MDAnLCBmaW5lOicxMzowMCcsIGF1bGE6J2F1bGEgNSd9LAogICAgICB7Y29yc286J09TUyBwcmltbyBjb3JzbycsIGluaXppbzonMTQ6MzAnLCBmaW5lOicxNjozMCcsIGF1bGE6J2F1bGEgMSd9LAogICAgICB7Y29yc286J09TUyBzZWNvbmRvIGNvcnNvJywgaW5pemlvOicxNDozMCcsIGZpbmU6JzE4OjMwJywgYXVsYTonYXVsYSA1J30sCiAgICAgIHtjb3JzbzonQWdnLiBpbmZvcm1hdGljbyBHT0wnLCBpbml6aW86JzE0OjMwJywgZmluZTonMTg6MzAnLCBhdWxhOidhdWxhIDEwJ30sCiAgICAgIHtjb3JzbzonU29tbWVsaWVyIDHCsCBsaXZlbGxvJywgaW5pemlvOicyMDowMCcsIGZpbmU6JzIzOjAwJywgYXVsYTonYXVsYSAyMSd9LAogICAgICB7Y29yc286J0NvbGxvcXVpIGluIHByZXNlbnphJywgaW5pemlvOicnLCBmaW5lOicnLCBhdWxhOidhdWxhIGRvY2VudGknfQogICAgXSwKICAgIGF2dmlzaTogWwogICAgICB7dGVzdG86J0JlbnZlbnV0aSBhIENvLlZlci5Gby5QLid9CiAgICAgIC8vIGVzZW1waW86IHt0ZXN0bzonT3BlbiBEYXkgc2FiYXRvIDE1IG5vdmVtYnJlJywgZGFsOicyMDI2LTEwLTI2JywgYWw6JzIwMjYtMTEtMTUnfQogICAgICAvLyB1cmdlbnRlOiAge3Rlc3RvOicuLi4nLCB1cmdlbnRlOnRydWV9CiAgICBdCiAgfTsKfQoKLyogLS0tLS0tLS0tLS0tLS0tLSBVVElMSVRBJyAtLS0tLS0tLS0tLS0tLS0tICovCnZhciBHSU9STkkgPSBbJ2RvbWVuaWNhJywnbHVuZWTDrCcsJ21hcnRlZMOsJywnbWVyY29sZWTDrCcsJ2dpb3ZlZMOsJywndmVuZXJkw6wnLCdzYWJhdG8nXTsKdmFyIE1FU0kgPSBbJ2dlbm5haW8nLCdmZWJicmFpbycsJ21hcnpvJywnYXByaWxlJywnbWFnZ2lvJywnZ2l1Z25vJywnbHVnbGlvJywnYWdvc3RvJywnc2V0dGVtYnJlJywnb3R0b2JyZScsJ25vdmVtYnJlJywnZGljZW1icmUnXTsKZnVuY3Rpb24gJChpZCl7IHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCk7IH0KZnVuY3Rpb24gcGFkKG4peyByZXR1cm4gKG48MTA\/JzAnOicnKStuOyB9CmZ1bmN0aW9uIGVzYyhzKXsgcmV0dXJuIFN0cmluZyhzPT1udWxsPycnOnMpLnJlcGxhY2UoL1smPD4iXS9nLGZ1bmN0aW9uKGMpe3JldHVybiB7JyYnOicmYW1wOycsJzwnOicmbHQ7JywnPic6JyZndDsnLCciJzonJnF1b3Q7J31bY107fSk7IH0KZnVuY3Rpb24gdG9NaW4oaGhtbSl7IHZhciBwPVN0cmluZyhoaG1tKS5yZXBsYWNlKCcuJywnOicpLnJlcGxhY2UoJywnLCc6Jykuc3BsaXQoJzonKTsgcmV0dXJuICgrcFswXSkqNjAgKyAoKyhwWzFdfHwwKSk7IH0KZnVuY3Rpb24gZm10KGhobW0peyB2YXIgbSA9IHRvTWluKGhobW0pOyByZXR1cm4gcGFkKE1hdGguZmxvb3IobS82MCkpKyc6JytwYWQobSU2MCk7IH0KZnVuY3Rpb24gaXNvRGF5KGQpeyByZXR1cm4gZC5nZXRGdWxsWWVhcigpKyctJytwYWQoZC5nZXRNb250aCgpKzEpKyctJytwYWQoZC5nZXREYXRlKCkpOyB9CmZ1bmN0aW9uIHJnYmEoaGV4LCBhKXsgdmFyIGg9U3RyaW5nKGhleCkucmVwbGFjZSgnIycsJycpOyByZXR1cm4gJ3JnYmEoJytwYXJzZUludChoLnN1YnN0cigwLDIpLDE2KSsnLCcrcGFyc2VJbnQoaC5zdWJzdHIoMiwyKSwxNikrJywnK3BhcnNlSW50KGguc3Vic3RyKDQsMiksMTYpKycsJythKycpJzsgfQpmdW5jdGlvbiBvbkNvbG9yKGhleCl7IHZhciBoPVN0cmluZyhoZXgpLnJlcGxhY2UoJyMnLCcnKTsgdmFyIHI9cGFyc2VJbnQoaC5zdWJzdHIoMCwyKSwxNiksZz1wYXJzZUludChoLnN1YnN0cigyLDIpLDE2KSxiPXBhcnNlSW50KGguc3Vic3RyKDQsMiksMTYpOyByZXR1cm4gKHIqMjk5K2cqNTg3K2IqMTE0KS8xMDAwPjE1MD8nIzBiMGQxMCc6JyNmZmZmZmYnOyB9CmZ1bmN0aW9uIGNhcChzKXsgcyA9IFN0cmluZyhzKTsgcmV0dXJuIHMuY2hhckF0KDApLnRvVXBwZXJDYXNlKCkrcy5zbGljZSgxKTsgfQp2YXIgSUNPTl9QSU4gPSAnPHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIuNiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIj48cGF0aCBkPSJNMTIgMjFzLTctNi4yLTctMTEuNUE3IDcgMCAwIDEgMTkgOS41QzE5IDE0LjggMTIgMjEgMTIgMjF6Ii8+PGNpcmNsZSBjeD0iMTIiIGN5PSI5LjUiIHI9IjIuNSIvPjwvc3ZnPic7CnZhciBJQ09OX0xBQiA9ICc8c3ZnIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMi42IiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPjxwYXRoIGQ9Ik05IDNoNiIvPjxwYXRoIGQ9Ik0xMCAzdjZMNC41IDE4LjVBMS43IDEuNyAwIDAgMCA2IDIxaDEyYTEuNyAxLjcgMCAwIDAgMS41LTIuNUwxNCA5VjMiLz48cGF0aCBkPSJNNyAxNWgxMCIvPjwvc3ZnPic7CnZhciBHUlVQUEkgPSB7QTonQXV0b21hemlvbmUnLCBJOidJbmZvcm1hdGljYSd9OwoKLyogLS0tLS0tLS0tLS0tLS0tLSBPUk9MT0dJTyAtLS0tLS0tLS0tLS0tLS0tICovCmZ1bmN0aW9uIHRpY2tDbG9jaygpewogIHZhciBkID0gbmV3IERhdGUoKTsKICAkKCdsdy1jbG9jaycpLmlubmVySFRNTCA9IHBhZChkLmdldEhvdXJzKCkpKyc8c3BhbiBjbGFzcz0iY29sJysoZC5nZXRTZWNvbmRzKCklMj8nIG9mZic6JycpKyciPjo8L3NwYW4+JytwYWQoZC5nZXRNaW51dGVzKCkpKyc8c21hbGw+JytwYWQoZC5nZXRTZWNvbmRzKCkpKyc8L3NtYWxsPic7CiAgJCgnbHctZGF0ZScpLnRleHRDb250ZW50ID0gY2FwKEdJT1JOSVtkLmdldERheSgpXSkrJyAnK2QuZ2V0RGF0ZSgpKycgJytNRVNJW2QuZ2V0TW9udGgoKV0rJyAnK2QuZ2V0RnVsbFllYXIoKTsKfQoKLyogLS0tLS0tLS0tLS0tLS0tLSBNRVRFTyAoT3Blbi1NZXRlbykgLS0tLS0tLS0tLS0tLS0tLSAqLwp2YXIgU1ZHX0EgPSAnPHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjEuOCIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIj4nOwp2YXIgSUNPTlMgPSB7CiAgc29sZTogU1ZHX0ErJzxjaXJjbGUgY3g9IjEyIiBjeT0iMTIiIHI9IjQiLz48cGF0aCBkPSJNMTIgMnYyTTEyIDIwdjJNNC45IDQuOWwxLjQgMS40TTE3LjcgMTcuN2wxLjQgMS40TTIgMTJoMk0yMCAxMmgyTTQuOSAxOS4xbDEuNC0xLjRNMTcuNyA2LjNsMS40LTEuNCIvPjwvc3ZnPicsCiAgcGFyejogU1ZHX0ErJzxwYXRoIGQ9Ik04IDN2MS41TTMuOCA0LjhsMSAxTTIgOWgxLjUiLz48cGF0aCBkPSJNNS42IDExLjVBMy41IDMuNSAwIDEgMSAxMS41IDciLz48cGF0aCBkPSJNOCAyMGg5YTQgNCAwIDAgMCAwLTggNS41IDUuNSAwIDAgMC0xMC40IDEuN0EzLjIgMy4yIDAgMCAwIDggMjB6Ii8+PC9zdmc+JywKICBudWJlOiBTVkdfQSsnPHBhdGggZD0iTTcgMTloMTBhNC41IDQuNSAwIDAgMCAuNS05QTYgNiAwIDAgMCA2IDExLjUgMy44IDMuOCAwIDAgMCA3IDE5eiIvPjwvc3ZnPicsCiAgbmViYmlhOiBTVkdfQSsnPHBhdGggZD0iTTcgMTNoMTBhNCA0IDAgMCAwIC40LThBNS41IDUuNSAwIDAgMCA2LjYgNyAzIDMgMCAwIDAgNyAxM3oiLz48cGF0aCBkPSJNNCAxN2gxNk02IDIxaDEyIi8+PC9zdmc+JywKICBwaW9nZ2lhOiBTVkdfQSsnPHBhdGggZD0iTTcgMTVoMTBhNCA0IDAgMCAwIC40LThBNS41IDUuNSAwIDAgMCA2LjYgOSAzIDMgMCAwIDAgNyAxNXoiLz48cGF0aCBkPSJNOCAxOGwtMSAzTTEyIDE4bC0xIDNNMTYgMThsLTEgMyIvPjwvc3ZnPicsCiAgbmV2ZTogU1ZHX0ErJzxwYXRoIGQ9Ik03IDE1aDEwYTQgNCAwIDAgMCAuNC04QTUuNSA1LjUgMCAwIDAgNi42IDkgMyAzIDAgMCAwIDcgMTV6Ii8+PHBhdGggZD0iTTggMTloLjAxTTEyIDE5aC4wMU0xNiAxOWguMDFNMTAgMjJoLjAxTTE0IDIyaC4wMSIvPjwvc3ZnPicsCiAgdGVtcG9yYWxlOiBTVkdfQSsnPHBhdGggZD0iTTcgMTVoMTBhNCA0IDAgMCAwIC40LThBNS41IDUuNSAwIDAgMCA2LjYgOSAzIDMgMCAwIDAgNyAxNXoiLz48cGF0aCBkPSJNMTIuNSAxNmwtMiAzLjVoM2wtMiAzLjUiLz48L3N2Zz4nCn07CmZ1bmN0aW9uIG1ldGVvSW5mbyhjKXsKICBpZiAoYz09PTApIHJldHVybiBbJ3NvbGUnLCdTZXJlbm8nXTsKICBpZiAoYzw9MikgcmV0dXJuIFsncGFyeicsJ1BvY28gbnV2b2xvc28nXTsKICBpZiAoYz09PTMpIHJldHVybiBbJ251YmUnLCdDb3BlcnRvJ107CiAgaWYgKGM9PT00NXx8Yz09PTQ4KSByZXR1cm4gWyduZWJiaWEnLCdOZWJiaWEnXTsKICBpZiAoYz49NTEmJmM8PTU3KSByZXR1cm4gWydwaW9nZ2lhJywnUGlvdmlnZ2luZSddOwogIGlmICgoYz49NjEmJmM8PTY3KXx8KGM+PTgwJiZjPD04MikpIHJldHVybiBbJ3Bpb2dnaWEnLCBjPj04MD8nUm92ZXNjaSc6J1Bpb2dnaWEnXTsKICBpZiAoKGM+PTcxJiZjPD03Nyl8fGM9PT04NXx8Yz09PTg2KSByZXR1cm4gWyduZXZlJywnTmV2ZSddOwogIGlmIChjPj05NSkgcmV0dXJuIFsndGVtcG9yYWxlJywnVGVtcG9yYWxlJ107CiAgcmV0dXJuIFsnbnViZScsJyddOwp9CmZ1bmN0aW9uIGxvYWRNZXRlbygpewogIGdldCgnaHR0cHM6Ly9hcGkub3Blbi1tZXRlby5jb20vdjEvZm9yZWNhc3Q\/bGF0aXR1ZGU9JytDT05GSUcuTEFUKycmbG9uZ2l0dWRlPScrQ09ORklHLkxPTisnJmN1cnJlbnQ9dGVtcGVyYXR1cmVfMm0sd2VhdGhlcl9jb2RlJnRpbWV6b25lPUV1cm9wZSUyRlJvbWUnLCBmdW5jdGlvbihqKXsKICAgIHRyeXsgdmFyIGM9ai5jdXJyZW50LCBtaT1tZXRlb0luZm8oYy53ZWF0aGVyX2NvZGUpOwogICAgICAkKCdsdy1taWNvbicpLmlubmVySFRNTCA9IElDT05TW21pWzBdXTsgJCgnbHctbXRlbXAnKS50ZXh0Q29udGVudCA9IE1hdGgucm91bmQoYy50ZW1wZXJhdHVyZV8ybSkrJ8KwJzsKICAgICAgJCgnbHctbWRlc2MnKS50ZXh0Q29udGVudCA9ICdWZXJjZWxsaSDCtyAnK21pWzFdOyAkKCdsdy1tZXRlbycpLnN0eWxlLmRpc3BsYXk9J2ZsZXgnOwogICAgfWNhdGNoKGUpe30KICB9KTsKfQoKLyogLS0tLS0tLS0tLS0tLS0tLSBSRVRFIEUgREFUSSAtLS0tLS0tLS0tLS0tLS0tICovCmZ1bmN0aW9uIGdldCh1cmwsIG9rLCBrbyl7CiAgdmFyIHggPSBuZXcgWE1MSHR0cFJlcXVlc3QoKTsgeC5vcGVuKCdHRVQnLCB1cmwsIHRydWUpOyB4LnRpbWVvdXQgPSAxNTAwMDsKICB4Lm9ubG9hZCA9IGZ1bmN0aW9uKCl7IGlmICh4LnN0YXR1cz49MjAwICYmIHguc3RhdHVzPDMwMCl7IHRyeXsgb2soSlNPTi5wYXJzZSh4LnJlc3BvbnNlVGV4dCkpOyB9Y2F0Y2goZSl7IGlmKGtvKSBrbygpOyB9IH0gZWxzZSBpZihrbykga28oKTsgfTsKICB4Lm9uZXJyb3IgPSB4Lm9udGltZW91dCA9IGZ1bmN0aW9uKCl7IGlmKGtvKSBrbygpOyB9OyB4LnNlbmQoKTsKfQp2YXIgREFUQSA9IG51bGw7CmZ1bmN0aW9uIGxvYWREYXRhKCl7CiAgaWYgKCFDT05GSUcuREFUQV9VUkwpeyBEQVRBID0gZGVtb0RhdGEoKTsgcmVuZGVyKCk7IHJldHVybjsgfQogIGdldChDT05GSUcuREFUQV9VUkwrKENPTkZJRy5EQVRBX1VSTC5pbmRleE9mKCc\/Jyk8MD8nPyc6JyYnKSsndD0nK0RhdGUubm93KCksIGZ1bmN0aW9uKGopewogICAgREFUQSA9IGo7ICQoJ2x3LXN0YWxlJykuc3R5bGUuZGlzcGxheT0nbm9uZSc7CiAgICB0cnl7IGxvY2FsU3RvcmFnZS5zZXRJdGVtKCdsZWR3YWxsX2RhdGEnLCBKU09OLnN0cmluZ2lmeShqKSk7IH1jYXRjaChlKXt9CiAgICB0cnl7IHJlbmRlcigpOyB9Y2F0Y2goZSl7IHNob3dFcnIoZSk7IH0KICB9LCBmdW5jdGlvbigpewogICAgaWYgKCFEQVRBKXsgdHJ5eyBEQVRBID0gSlNPTi5wYXJzZShsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgnbGVkd2FsbF9kYXRhJykpOyB9Y2F0Y2goZSl7fSB9CiAgICAkKCdsdy1zdGFsZScpLnN0eWxlLmRpc3BsYXk9J2Jsb2NrJzsgaWYgKERBVEEpIHJlbmRlcigpOwogIH0pOwp9CgovKiAtLS0tLS0tLS0tLS0tLS0tIExPR0lDQTogYWRlc3NvIC8gcG9pIHBlciBvZ25pIGNvcnNvIC0tLS0tLS0tLS0tLS0tLS0gKi8KZnVuY3Rpb24gbm93TWluKCl7CiAgaWYgKENPTkZJRy5GQUtFX1RJTUUgIT09IG51bGwpIHJldHVybiBDT05GSUcuRkFLRV9USU1FOwogIHZhciBkID0gbmV3IERhdGUoKTsgcmV0dXJuIGQuZ2V0SG91cnMoKSo2MCArIGQuZ2V0TWludXRlcygpOwp9CmZ1bmN0aW9uIHJvb21JbmZvKGF1bGEpewogIHZhciBhID0gU3RyaW5nKGF1bGEpLnRvTG93ZXJDYXNlKCksIGF1ID0gREFUQS5hdWxlIHx8IFtdLCB0aSA9IERBVEEudGlwaSB8fCBbXSwgaSwgdCA9IG51bGw7CiAgZm9yIChpPTA7aTxhdS5sZW5ndGg7aSsrKSBpZiAoU3RyaW5nKGF1W2ldLmF1bGEpLnRvTG93ZXJDYXNlKCk9PT1hKSB0ID0gYXVbaV0udGlwbzsKICBpZiAoIXQpIHJldHVybiBudWxsOwogIGZvciAoaT0wO2k8dGkubGVuZ3RoO2krKykgaWYgKHRpW2ldLnRpcG89PT10KSByZXR1cm4gdGlbaV07CiAgcmV0dXJuIG51bGw7Cn0KZnVuY3Rpb24gcGlsbEh0bWwoYil7CiAgdmFyIHJpID0gcm9vbUluZm8oYi5hdWxhKSwgc3QsIGljb247CiAgaWYgKHJpKXsgc3QgPSAnYmFja2dyb3VuZDonK3JpLmNvbG9yZSsnO2NvbG9yOicrb25Db2xvcihyaS5jb2xvcmUpOyBpY29uID0gSUNPTl9MQUI7IH0KICBlbHNlIHsgc3QgPSAnYmFja2dyb3VuZDojQ0RDRjAxO2NvbG9yOiMwYjFhMzMnOyBpY29uID0gSUNPTl9QSU47IH0KICByZXR1cm4gJzxzcGFuIGNsYXNzPSJwaWxsIiBzdHlsZT0iJytzdCsnIj4nK2ljb24rZXNjKGNhcChiLmF1bGEpKSsnPC9zcGFuPic7Cn0KZnVuY3Rpb24gdGFnSHRtbChiKXsgcmV0dXJuIGIuZ3J1cHBvID8gJzxzcGFuIGNsYXNzPSJ0ZyIgdGl0bGU9IicrKEdSVVBQSVtiLmdydXBwb118fCcnKSsnIj4nK2VzYyhHUlVQUElbYi5ncnVwcG9dID8gR1JVUFBJW2IuZ3J1cHBvXS5zbGljZSgwLDMpLnRvVXBwZXJDYXNlKCkgOiBiLmdydXBwbykrJzwvc3Bhbj4nIDogJyc7IH0KZnVuY3Rpb24gc29ydEcoYSxiKXsgcmV0dXJuIChhLmdydXBwb3x8JycpLmxvY2FsZUNvbXBhcmUoYi5ncnVwcG98fCcnKTsgfQoKLyogUGVyIG9nbmkgY29yc286IGxhIHNpdHVhemlvbmUgYWRlc3NvIGUgaSBkdWUgY2FtYmkgc3VjY2Vzc2l2aSAodW4gY2FtYmlvID0gdW4gbW9tZW50byBpbiBjdWkKICAgbCdpbnNpZW1lIGRlbGxlIGF1bGUgb2NjdXBhdGUgZGFsIGNvcnNvIGNhbWJpYTogaW5pemlvLCBmaW5lLCBzcG9zdGFtZW50byBkaSB1biBncnVwcG8pLiAqLwpmdW5jdGlvbiBiU3RhcnQoYil7IHJldHVybiBiLmluaXppbyA\/IHRvTWluKGIuaW5pemlvKSA6IDA7IH0KZnVuY3Rpb24gYkVuZChiKXsgcmV0dXJuIGIuZmluZSA\/IHRvTWluKGIuZmluZSkgOiAyNCo2MDsgfQpmdW5jdGlvbiBzdGF0ZUF0KGJsLCB0KXsKICB2YXIgb3V0ID0gW107CiAgZm9yICh2YXIgaT0wO2k8YmwubGVuZ3RoO2krKykgaWYgKGJTdGFydChibFtpXSkgPD0gdCAmJiB0IDwgYkVuZChibFtpXSkpIG91dC5wdXNoKGJsW2ldKTsKICBvdXQuc29ydChzb3J0Ryk7IHJldHVybiBvdXQ7Cn0KZnVuY3Rpb24gc3RLZXkoc3QpeyB2YXIgaz0nJzsgZm9yICh2YXIgaT0wO2k8c3QubGVuZ3RoO2krKykgayArPSBzdFtpXS5hdWxhKyd8Jysoc3RbaV0uZ3J1cHBvfHwnJykrJ3wnKyhzdFtpXS51bml0YT8xOjApKyc7JzsgcmV0dXJuIGs7IH0KZnVuY3Rpb24gcGxhbkZvcihjb3Jzbywgbm93KXsKICB2YXIgYmwgPSBbXSwgaSwgYWxsID0gREFUQS5ibG9jY2hpOwogIGZvciAoaT0wO2k8YWxsLmxlbmd0aDtpKyspIGlmIChhbGxbaV0uY29yc289PT1jb3JzbykgYmwucHVzaChhbGxbaV0pOwogIGlmICghYmwubGVuZ3RoKSByZXR1cm4gbnVsbDsKICB2YXIgbGFzdEVuZCA9IDAsIHRpbWVzID0gW107CiAgZm9yIChpPTA7aTxibC5sZW5ndGg7aSsrKXsKICAgIHZhciBzID0gYlN0YXJ0KGJsW2ldKSwgZSA9IGJFbmQoYmxbaV0pOwogICAgaWYgKGUgPiBsYXN0RW5kKSBsYXN0RW5kID0gZTsKICAgIGlmIChzID4gbm93ICYmIHRpbWVzLmluZGV4T2YocykgPCAwKSB0aW1lcy5wdXNoKHMpOwogICAgaWYgKGUgPiBub3cgJiYgZSA8IDI0KjYwICYmIHRpbWVzLmluZGV4T2YoZSkgPCAwKSB0aW1lcy5wdXNoKGUpOwogIH0KICB0aW1lcy5zb3J0KGZ1bmN0aW9uKGEsYil7IHJldHVybiBhLWI7IH0pOwogIHZhciBjdXIgPSBzdGF0ZUF0KGJsLCBub3cpLCBzZXEgPSBbXSwgcHJldiA9IHN0S2V5KGN1cik7CiAgZm9yIChpPTA7aTx0aW1lcy5sZW5ndGggJiYgc2VxLmxlbmd0aDwzO2krKyl7CiAgICB2YXIgc3QgPSBzdGF0ZUF0KGJsLCB0aW1lc1tpXSksIGsgPSBzdEtleShzdCk7CiAgICBpZiAoayA9PT0gcHJldikgY29udGludWU7CiAgICB2YXIgbGF0ZXIgPSBmYWxzZTsKICAgIGZvciAodmFyIGo9MDtqPGJsLmxlbmd0aDtqKyspIGlmIChiU3RhcnQoYmxbal0pID4gdGltZXNbaV0pIGxhdGVyID0gdHJ1ZTsKICAgIHNlcS5wdXNoKHt0OnRpbWVzW2ldLCBzdDpzdCwgbGF0ZXI6bGF0ZXJ9KTsKICAgIHByZXYgPSBrOwogIH0KICByZXR1cm4ge2N1cjpjdXIsIHNlcTpzZXEsIGZpbmlzaGVkOiBub3cgPj0gbGFzdEVuZH07Cn0KZnVuY3Rpb24gaG0obSl7IHJldHVybiBwYWQoTWF0aC5mbG9vcihtLzYwKSkrJzonK3BhZChtJTYwKTsgfQpmdW5jdGlvbiBuZXh0Q2VsbChzdGVwKXsKICBpZiAoIXN0ZXApIHJldHVybiAnPHNwYW4gY2xhc3M9ImZyZWUiPuKAlDwvc3Bhbj4nOwogIHZhciBoID0gJzxkaXYgY2xhc3M9Im54Ij48ZGl2IGNsYXNzPSJoIG51bSI+Jysoc3RlcC5zdC5sZW5ndGggPyAnZGFsbGUgJyA6ICdhbGxlICcpK2htKHN0ZXAudCkrJzwvZGl2Pic7CiAgaWYgKCFzdGVwLnN0Lmxlbmd0aCkgcmV0dXJuIGggKyAnPGRpdiBjbGFzcz0ibyI+Jysoc3RlcC5sYXRlciA\/ICdwYXVzYScgOiAndXNjaXRhJykrJzwvZGl2PjwvZGl2Pic7CiAgZm9yICh2YXIgaT0wO2k8c3RlcC5zdC5sZW5ndGg7aSsrKXsKICAgIHZhciBuID0gc3RlcC5zdFtpXSwgcm4gPSByb29tSW5mbyhuLmF1bGEpOwogICAgaCArPSAnPGRpdiBjbGFzcz0iYSI+Jyt0YWdIdG1sKG4pKyc8c3BhbiBzdHlsZT0iY29sb3I6Jysocm4gPyBybi5jb2xvcmUgOiAnI0NEQ0YwMScpKyciPicrZXNjKGNhcChuLmF1bGEpKSsnPC9zcGFuPicrKG4udW5pdGE\/JyDCtyB1bml0YSc6JycpKyc8L2Rpdj4nOwogIH0KICByZXR1cm4gaCArICc8L2Rpdj4nOwp9Cgp2YXIgbGFzdEh0bWwgPSAnJzsKZnVuY3Rpb24gcmVuZGVyKCl7CiAgaWYgKCFEQVRBKSByZXR1cm47CiAgcmVuZGVyTWVzc2FnZXMoKTsKICB2YXIgbm93ID0gbm93TWluKCksIGVsID0gJCgnbHctcGFnZScpLCBjb3JzaSA9IERBVEEuY29yc2kgfHwgW10sIHJvd3MgPSBbXSwgZmluaXNoZWQgPSBbXTsKICBmb3IgKHZhciBjPTA7Yzxjb3JzaS5sZW5ndGg7YysrKXsKICAgIHZhciBwID0gcGxhbkZvcihjb3JzaVtjXS5jb3Jzbywgbm93KTsKICAgIGlmICghcCkgY29udGludWU7CiAgICBpZiAocC5maW5pc2hlZCl7IGZpbmlzaGVkLnB1c2goY29yc2lbY10uY29yc28pOyBjb250aW51ZTsgfQogICAgcm93cy5wdXNoKHtjOmNvcnNpW2NdLCBwOnB9KTsKICB9CgogIHZhciBoOwogIGlmICghcm93cy5sZW5ndGgpewogICAgaCA9ICc8ZGl2IGNsYXNzPSJlbXB0eSI+PGRpdiBjbGFzcz0iYmFycyI+PHNwYW4gc3R5bGU9ImJhY2tncm91bmQ6I0E2MDBCMDtoZWlnaHQ6MTAwJSI+PC9zcGFuPjxzcGFuIHN0eWxlPSJiYWNrZ3JvdW5kOiM3QUM0QzI7aGVpZ2h0OjgwJSI+PC9zcGFuPjxzcGFuIHN0eWxlPSJiYWNrZ3JvdW5kOiNDRENGMDE7aGVpZ2h0OjYwJSI+PC9zcGFuPjxzcGFuIHN0eWxlPSJiYWNrZ3JvdW5kOiMxQjZFMEU7aGVpZ2h0OjQwJSI+PC9zcGFuPjwvZGl2PicKICAgICAgKyAnPGgxPicrKGZpbmlzaGVkLmxlbmd0aCA\/ICdBdHRpdml0w6AgZGkgb2dnaTxicj5jb25jbHVzZScgOiAnT2dnaSBuZXNzdW5hPGJyPmF0dGl2aXTDoCBpbiBhdWxhJykrJzwvaDE+PHA+QnVvbmEgZ2lvcm5hdGEgZGEgQ28uVmVyLkZvLlAuPC9wPjwvZGl2Pic7CiAgfSBlbHNlIHsKICAgIHZhciBsZyA9ICc8c3Bhbj48aSBzdHlsZT0iYmFja2dyb3VuZDojQ0RDRjAxIj48L2k+QXVsYTwvc3Bhbj4nLCB0aSA9IERBVEEudGlwaSB8fCBbXTsKICAgIGZvciAodmFyIHQ9MDt0PHRpLmxlbmd0aDt0KyspIGxnICs9ICc8c3Bhbj48aSBzdHlsZT0iYmFja2dyb3VuZDonK3RpW3RdLmNvbG9yZSsnIj48L2k+Jytlc2ModGlbdF0udGlwbykrJzwvc3Bhbj4nOwogICAgbGcgKz0gJzxzcGFuPjxiIGNsYXNzPSJ0ZyI+QVVUPC9iPkF1dG9tYXppb25lPC9zcGFuPjxzcGFuPjxiIGNsYXNzPSJ0ZyI+SU5GPC9iPkluZm9ybWF0aWNhPC9zcGFuPic7CgogICAgaCA9ICc8ZGl2IGNsYXNzPSJ0dGwiPjxoMT5BdWxlIGRlbCBnaW9ybm88L2gxPjxkaXYgY2xhc3M9InN1YiI+Jytyb3dzLmxlbmd0aCsnIGNvcnNpIGluIHNlZGU8L2Rpdj48L2Rpdj4nCiAgICAgICsgJzxkaXYgY2xhc3M9ImxlZ2VuZCI+JytsZysnPC9kaXY+JwogICAgICArICc8ZGl2IGNsYXNzPSJ0aGVhZCI+PGRpdiBjbGFzcz0iYzEiPkNvcnNvPC9kaXY+PGRpdiBjbGFzcz0iYzIiPkFkZXNzbzwvZGl2PjxkaXYgY2xhc3M9ImMzIj5Qb2k8L2Rpdj48ZGl2IGNsYXNzPSJjNCI+RG9wbyBhbmNvcmE8L2Rpdj48L2Rpdj4nCiAgICAgICsgJzxkaXYgY2xhc3M9InJvd3MiPic7CiAgICBmb3IgKHZhciByPTA7cjxyb3dzLmxlbmd0aDtyKyspewogICAgICB2YXIgY28gPSByb3dzW3JdLmMsIHBsID0gcm93c1tyXS5wLCBjb2wgPSBjby5jb2xvcmUgfHwgJyM3QUM0QzInLCBpLCBtaWQgPSAnJywgc2VxID0gcGwuc2VxOwogICAgICB2YXIgd2FpdGluZyA9ICFwbC5jdXIubGVuZ3RoOwogICAgICB2YXIgc2hvd24gPSB3YWl0aW5nID8gc2VxWzBdLnN0IDogcGwuY3VyOwogICAgICBmb3IgKGk9MDtpPHNob3duLmxlbmd0aDtpKyspewogICAgICAgIHZhciBiID0gc2hvd25baV0sIGxhc3QgPSAoaT09PXNob3duLmxlbmd0aC0xKTsKICAgICAgICBtaWQgKz0gJzxkaXYgY2xhc3M9ImJsayI+Jyt0YWdIdG1sKGIpK3BpbGxIdG1sKGIpKyhiLnVuaXRhPyc8c3BhbiBjbGFzcz0idGcgdSI+VU5JVEE8L3NwYW4+JzonJyk7CiAgICAgICAgaWYgKGxhc3QpewogICAgICAgICAgaWYgKHdhaXRpbmcpIG1pZCArPSAnPHNwYW4gY2xhc3M9InN0YXJ0cyBudW0iPmRhbGxlICcraG0oc2VxWzBdLnQpKyc8L3NwYW4+JzsKICAgICAgICAgIGVsc2UgaWYgKHNlcS5sZW5ndGgpIG1pZCArPSAnPHNwYW4gY2xhc3M9InVudGlsIG51bSI+ZmlubyBhbGxlICcraG0oc2VxWzBdLnQpKyc8L3NwYW4+JzsKICAgICAgICB9CiAgICAgICAgbWlkICs9ICc8L2Rpdj4nOwogICAgICB9CiAgICAgIHZhciBzMSA9IHdhaXRpbmcgPyBzZXFbMV0gOiBzZXFbMF0sIHMyID0gd2FpdGluZyA\/IHNlcVsyXSA6IHNlcVsxXTsKICAgICAgdmFyIGMzID0gczEgPyBuZXh0Q2VsbChzMSkgOiAocGwuY3VyLmxlbmd0aCAmJiAhcGwuY3VyW3BsLmN1ci5sZW5ndGgtMV0uZmluZSA\/ICc8c3BhbiBjbGFzcz0iZnJlZSI+dHV0dG8gaWwgZ2lvcm5vPC9zcGFuPicgOiAnPHNwYW4gY2xhc3M9ImZyZWUiPuKAlDwvc3Bhbj4nKTsKICAgICAgdmFyIGM0ID0gczEgPyBuZXh0Q2VsbChzMikgOiAnPHNwYW4gY2xhc3M9ImZyZWUiPjwvc3Bhbj4nOwogICAgICBoICs9ICc8ZGl2IGNsYXNzPSJyb3cnKyh3YWl0aW5nPycgd2FpdCc6JycpKyciPjxkaXYgY2xhc3M9ImVkZ2UiIHN0eWxlPSJiYWNrZ3JvdW5kOicrY29sKyciPjwvZGl2PicKICAgICAgICAgKyAnPGRpdiBjbGFzcz0iYzEgY2xzIj48Yj4nK2VzYyhjby5jb3JzbykrJzwvYj48c21hbGw+Jytlc2MoY28ucGlhbm98fCcnKSsnPC9zbWFsbD48L2Rpdj4nCiAgICAgICAgICsgJzxkaXYgY2xhc3M9ImMyIj4nK21pZCsnPC9kaXY+JwogICAgICAgICArICc8ZGl2IGNsYXNzPSJjMyI+JytjMysnPC9kaXY+JwogICAgICAgICArICc8ZGl2IGNsYXNzPSJjNCI+JytjNCsnPC9kaXY+PC9kaXY+JzsKICAgIH0KICAgIGggKz0gJzwvZGl2Pic7CiAgICBpZiAoZmluaXNoZWQubGVuZ3RoKSBoICs9ICc8ZGl2IGNsYXNzPSJkb25lIj5Db25jbHVzZSBvZ2dpOiA8Yj4nK2VzYyhmaW5pc2hlZC5qb2luKCcgwrcgJykpKyc8L2I+PC9kaXY+JzsKICB9CiAgaWYgKGggPT09IGxhc3RIdG1sKSByZXR1cm47CiAgZWwuY2xhc3NOYW1lID0gbGFzdEh0bWwgPyAnJyA6ICdlbnRlcic7CiAgbGFzdEh0bWwgPSBoOwogIGVsLmlubmVySFRNTCA9IGg7CiAgZml0Um93cygpOwp9Ci8qIHJpZ2hlIGFsdGUgcXVhbnRvIHNlcnZlOiBzZSBhdmFuemFubyBzcGF6aW8gc2kgYWxsYXJnYW5vLCBmaW5vIGEgdW4gbWFzc2ltbyAqLwpmdW5jdGlvbiBmaXRSb3dzKCl7CiAgdmFyIGJveCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJyNsdy1yb290IC5yb3dzJyk7IGlmICghYm94KSByZXR1cm47CiAgdmFyIHJvd3MgPSBib3guY2hpbGRyZW4sIG4gPSByb3dzLmxlbmd0aCwgaSwgdXNlZCA9IDA7CiAgYm94LmNsYXNzTmFtZSA9ICdyb3dzJzsKICBpZiAoYm94LnNjcm9sbEhlaWdodCA+IGJveC5jbGllbnRIZWlnaHQgKyAyKSBib3guY2xhc3NOYW1lID0gJ3Jvd3MgZGVuc2UnOwogIGlmIChib3guc2Nyb2xsSGVpZ2h0ID4gYm94LmNsaWVudEhlaWdodCArIDIpIGJveC5jbGFzc05hbWUgPSAncm93cyBkZW5zZSBkZW5zZTInOwogIGZvciAoaT0wO2k8bjtpKyspeyByb3dzW2ldLnN0eWxlLm1pbkhlaWdodCA9ICcnOyB1c2VkICs9IHJvd3NbaV0ub2Zmc2V0SGVpZ2h0ICsgNzsgfQogIHZhciBmcmVlID0gYm94LmNsaWVudEhlaWdodCAtIDggLSB1c2VkOwogIGlmIChmcmVlID4gMCl7CiAgICB2YXIgYWRkID0gTWF0aC5taW4oZnJlZSAvIG4sIDQwKTsKICAgIGZvciAoaT0wO2k8bjtpKyspIHJvd3NbaV0uc3R5bGUubWluSGVpZ2h0ID0gKHJvd3NbaV0ub2Zmc2V0SGVpZ2h0ICsgYWRkKSArICdweCc7CiAgfQp9CgovKiAtLS0tLS0tLS0tLS0tLS0tIEFWVklTSSAtLS0tLS0tLS0tLS0tLS0tICovCnZhciBtc2dJZHggPSAwOwpmdW5jdGlvbiBhY3RpdmVNZXNzYWdlcygpewogIHZhciB0b2RheSA9IGlzb0RheShuZXcgRGF0ZSgpKSwgb3V0ID0ge25vcm06W10sIHVyZzpbXX0sIG0gPSAoREFUQSAmJiBEQVRBLmF2dmlzaSkgfHwgW107CiAgZm9yICh2YXIgaT0wO2k8bS5sZW5ndGg7aSsrKXsKICAgIGlmIChtW2ldLmRhbCAmJiB0b2RheSA8IG1baV0uZGFsKSBjb250aW51ZTsKICAgIGlmIChtW2ldLmFsICYmIHRvZGF5ID4gbVtpXS5hbCkgY29udGludWU7CiAgICAobVtpXS51cmdlbnRlID8gb3V0LnVyZyA6IG91dC5ub3JtKS5wdXNoKG1baV0udGVzdG8pOwogIH0KICByZXR1cm4gb3V0Owp9CmZ1bmN0aW9uIHJlbmRlck1lc3NhZ2VzKHN0ZXApewogIHZhciBhbSA9IGFjdGl2ZU1lc3NhZ2VzKCk7CiAgaWYgKGFtLnVyZy5sZW5ndGgpeyAkKCdsdy11cmdlbnRUeHQnKS50ZXh0Q29udGVudCA9IGFtLnVyZy5qb2luKCcgwrcgJyk7ICQoJ2x3LXVyZ2VudCcpLnN0eWxlLmRpc3BsYXk9J2ZsZXgnOyB9CiAgZWxzZSAkKCdsdy11cmdlbnQnKS5zdHlsZS5kaXNwbGF5PSdub25lJzsKICB2YXIgbGlzdCA9IGFtLm5vcm0ubGVuZ3RoID8gYW0ubm9ybSA6IFsnQmVudmVudXRpIGEgQ28uVmVyLkZvLlAuJ107CiAgaWYgKHN0ZXApIG1zZ0lkeCsrOwogIHZhciBpID0gbXNnSWR4ICUgbGlzdC5sZW5ndGgsIHQgPSAkKCdsdy1tc2dUeHQnKTsKICBpZiAoc3RlcCAmJiBsaXN0Lmxlbmd0aD4xKXsgdC5jbGFzc05hbWU9Jyc7IHZvaWQgdC5vZmZzZXRXaWR0aDsgdC5jbGFzc05hbWU9J2VudGVyJzsgfQogIHQudGV4dENvbnRlbnQgPSBsaXN0W2ldOwogIHZhciBkPScnOyBmb3IgKHZhciBqPTA7ajxsaXN0Lmxlbmd0aDtqKyspIGQgKz0gJzxpIGNsYXNzPSInKyhqPT09aT8nb24nOicnKSsnIj48L2k+JzsKICAkKCdsdy1tc2dEb3RzJykuaW5uZXJIVE1MID0gbGlzdC5sZW5ndGg+MSA\/IGQgOiAnJzsKfQoKLyogLS0tLS0tLS0tLS0tLS0tLSBBVlZJTyAtLS0tLS0tLS0tLS0tLS0tICovCmZ1bmN0aW9uIGJvb3QoKXsKZml0KCk7CnRpY2tDbG9jaygpOyBzZXRJbnRlcnZhbCh0aWNrQ2xvY2ssIDEwMDApOwpsb2FkTWV0ZW8oKTsgc2V0SW50ZXJ2YWwobG9hZE1ldGVvLCAzMCo2MCoxMDAwKTsKbG9hZERhdGEoKTsgc2V0SW50ZXJ2YWwobG9hZERhdGEsIENPTkZJRy5SRUZSRVNIX0RBVEFfU0VDKjEwMDApOwpzZXRJbnRlcnZhbChmdW5jdGlvbigpeyBpZiAoREFUQSkgcmVuZGVyKCk7IH0sIDIwMDAwKTsKc2V0SW50ZXJ2YWwoZnVuY3Rpb24oKXsgaWYgKERBVEEpIHJlbmRlck1lc3NhZ2VzKHRydWUpOyB9LCBDT05GSUcuTVNHX1NFQyoxMDAwKTsKc2V0VGltZW91dChmdW5jdGlvbigpeyBsb2NhdGlvbi5yZWxvYWQoKTsgfSwgQ09ORklHLlJFTE9BRF9IT1VSUyozNjAwKjEwMDApOwp9CmZ1bmN0aW9uIHN0YXJ0KCl7CiAgdHJ5ewogICAgdmFyIHJvb3QgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbHctcm9vdCcpOwogICAgaWYgKHJvb3QgJiYgcm9vdC5wYXJlbnROb2RlICE9PSBkb2N1bWVudC5ib2R5KSBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHJvb3QpOwogICAgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLm92ZXJmbG93PSdoaWRkZW4nOyBkb2N1bWVudC5ib2R5LnN0eWxlLm92ZXJmbG93PSdoaWRkZW4nOwogICAgYm9vdCgpOwogIH1jYXRjaChlKXsgc2hvd0VycihlKTsgfQp9CmZ1bmN0aW9uIHNob3dFcnIoZSl7CiAgdmFyIGEgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbHctYXBwJyk7IGlmICghYSkgcmV0dXJuOwogIHZhciBkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7CiAgZC5zdHlsZS5jc3NUZXh0PSdwb3NpdGlvbjphYnNvbHV0ZTtsZWZ0OjIwcHg7cmlnaHQ6MjBweDtib3R0b206MTcwcHg7YmFja2dyb3VuZDojZDMyZjJmO2NvbG9yOiNmZmY7Zm9udDoyNHB4IEFyaWFsO3BhZGRpbmc6MTZweDtib3JkZXItcmFkaXVzOjEwcHg7ei1pbmRleDo5JzsKICBkLnRleHRDb250ZW50ID0gJ0Vycm9yZSBsZWR3YWxsOiAnICsgKGUgJiYgZS5tZXNzYWdlID8gZS5tZXNzYWdlIDogZSk7CiAgYS5hcHBlbmRDaGlsZChkKTsKfQppZiAoZG9jdW1lbnQucmVhZHlTdGF0ZSA9PT0gJ2xvYWRpbmcnKSBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdET01Db250ZW50TG9hZGVkJywgc3RhcnQpOyBlbHNlIHN0YXJ0KCk7Cn0pKCk7';new Function(decodeURIComponent(escape(window.atob(c))))();})();<\/script>\\n&#8221;}}]}]}]}],&#8221;version&#8221;:&#8221;5.0.52&#8243;} &#8211;><\/p>\n","protected":false},"excerpt":{"rendered":"<p>CO.VER.FO.P. AVVISO AVVISI<\/p>\n","protected":false},"author":3,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"rs_blank_template":"","rs_page_bg_color":"","slide_template_v7":"","footnotes":""},"class_list":["post-15882","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.coverfop.it\/index.php\/wp-json\/wp\/v2\/pages\/15882","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.coverfop.it\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.coverfop.it\/index.php\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.coverfop.it\/index.php\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/www.coverfop.it\/index.php\/wp-json\/wp\/v2\/comments?post=15882"}],"version-history":[{"count":6,"href":"https:\/\/www.coverfop.it\/index.php\/wp-json\/wp\/v2\/pages\/15882\/revisions"}],"predecessor-version":[{"id":15894,"href":"https:\/\/www.coverfop.it\/index.php\/wp-json\/wp\/v2\/pages\/15882\/revisions\/15894"}],"wp:attachment":[{"href":"https:\/\/www.coverfop.it\/index.php\/wp-json\/wp\/v2\/media?parent=15882"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}