{"id":2812,"date":"2026-08-26T19:00:50","date_gmt":"2026-08-26T17:00:50","guid":{"rendered":"https:\/\/vits.ee\/?page_id=2812"},"modified":"2026-08-27T09:16:25","modified_gmt":"2026-08-27T07:16:25","slug":"calculator","status":"publish","type":"page","link":"https:\/\/vits.ee\/en\/calculator\/","title":{"rendered":"Calculator"},"content":{"rendered":"<style>.vk{--ink:#2A2C43;--mut:#6C6E85;--line:#E6E2DA;--tint:#FEFAF6;--or:#EE8B26;--or2:#F7B733;--ok:#2E7D5B;--warn:#B4441F;font-family:Assistant,Arial,sans-serif;color:var(--mut);font-size:17px;line-height:1.6;max-width:1040px;margin:0 auto;padding:0 20px}.vk *{box-sizing:border-box}.vk h2{font-family:Poppins,Arial,sans-serif;font-weight:600;font-size:clamp(21px,2.5vw,27px);color:var(--ink);margin:0 0 10px;line-height:1.25}.vk h3{font-family:Poppins,Arial,sans-serif;font-weight:600;font-size:18px;color:var(--ink);margin:0 0 12px}.vk p{margin:0 0 14px}.vk-lead{font-size:19px;color:var(--ink)}.vk-card{background:#fff;border:1px solid var(--line);border-radius:4px;padding:26px 28px;margin:0 0 20px}.vk-step{display:flex;align-items:center;gap:12px;margin:0 0 18px}.vk-num{flex:0 0 30px;width:30px;height:30px;border-radius:50%;background:linear-gradient(205deg,var(--or2) 21%,var(--or) 80%);color:#fff;font-family:Poppins,Arial,sans-serif;font-weight:600;font-size:14px;display:flex;align-items:center;justify-content:center}.vk-step h2{margin:0}.vk-q{margin:0 0 22px}.vk-q:last-child{margin-bottom:0}.vk-lbl{display:block;font-weight:600;color:var(--ink);margin:0 0 8px;font-size:16px}.vk-hint{font-size:14.5px;color:var(--mut);margin:-4px 0 8px}.vk-opts{display:flex;flex-wrap:wrap;gap:8px}.vk-opt{position:relative}.vk-opt input{position:absolute;opacity:0;pointer-events:none}.vk-opt span{display:block;border:1px solid var(--line);border-radius:4px;padding:9px 16px;cursor:pointer;font-size:15.5px;background:#fff;color:var(--ink);transition:border-color .15s,background .15s}.vk-opt input:checked + span{border-color:var(--or);background:#FFF6EC;font-weight:600}.vk-opt input:focus-visible + span{outline:2px solid var(--or);outline-offset:2px}.vk-numrow{display:flex;align-items:center;gap:14px;flex-wrap:wrap}.vk-numrow input[type=range]{flex:1 1 240px;accent-color:var(--or)}.vk-numrow input[type=number]{width:110px;padding:8px 10px;border:1px solid var(--line);border-radius:4px;font:inherit;font-size:16px;color:var(--ink)}.vk-chk{display:flex;align-items:flex-start;gap:10px;margin:0 0 10px;cursor:pointer}.vk-chk input{margin-top:5px;accent-color:var(--or);width:17px;height:17px;flex:0 0 auto}.vk-chk span{font-size:16px;color:var(--ink)}.vk-chk small{display:block;color:var(--mut);font-size:14.5px;font-weight:400}.vk-rec{border:1px solid var(--line);border-left:4px solid var(--or);border-radius:4px;background:var(--tint);padding:22px 26px;margin:0 0 20px}.vk-rec-k{font-size:13px;font-weight:700;letter-spacing:2px;text-transform:uppercase;color:var(--or);margin:0 0 6px}.vk-rec h3{font-size:22px;margin:0 0 8px}.vk-why{font-size:15.5px;margin:10px 0 0;padding:12px 0 0;border-top:1px solid var(--line)}.vk-why b{color:var(--ink)}.vk-alt{font-size:15px;margin:10px 0 0}.vk-alt a{color:var(--or);cursor:pointer;text-decoration:underline}.vk-pack{display:flex;flex-wrap:wrap;gap:20px;align-items:flex-start;justify-content:space-between}.vk-pack-l{flex:1 1 300px}.vk-price{font-family:Poppins,Arial,sans-serif;font-weight:600;font-size:38px;color:var(--ink);line-height:1.1}.vk-price small{display:block;font-family:Assistant,Arial,sans-serif;font-size:15px;font-weight:400;color:var(--mut);margin-top:4px}.vk-break{list-style:none;margin:12px 0 0;padding:0;font-size:15.5px}.vk-break li{display:flex;justify-content:space-between;gap:16px;padding:5px 0;border-bottom:1px dotted var(--line)}.vk-break li:last-child{border-bottom:0;font-weight:600;color:var(--ink)}.vk-cmp{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin:0 0 16px}.vk-col{border:1px solid var(--line);border-radius:4px;padding:20px 22px;background:#fff}.vk-col.is-vits{border-color:var(--or);background:var(--tint)}.vk-col h4{font-family:Poppins,Arial,sans-serif;font-weight:600;font-size:15px;color:var(--ink);margin:0 0 12px;text-transform:uppercase;letter-spacing:1px}.vk-big{font-family:Poppins,Arial,sans-serif;font-weight:600;font-size:30px;color:var(--ink);line-height:1.1;margin:0 0 2px}.vk-per{font-size:14px;color:var(--mut);margin:0 0 14px}.vk-rows{list-style:none;margin:0;padding:0;font-size:15px}.vk-rows li{display:flex;justify-content:space-between;gap:12px;padding:5px 0}.vk-rows li span:last-child{white-space:nowrap;color:var(--ink)}.vk-verdict{border-radius:4px;padding:18px 22px;margin:0 0 16px;font-size:17px;line-height:1.55}.vk-verdict.win{background:#EFF7F2;border:1px solid #BFE0CE;color:#1F5B41}.vk-verdict.lose{background:#FDF1EC;border:1px solid #F0CBB8;color:#8A3315}.vk-verdict b{font-weight:700}.vk-ass summary{cursor:pointer;font-weight:600;color:var(--ink);font-size:16px;padding:14px 0;list-style:none;display:flex;align-items:center;gap:8px}.vk-ass summary::-webkit-details-marker{display:none}.vk-ass summary:before{content:\"+\";display:inline-block;width:20px;height:20px;border:1px solid var(--line);border-radius:50%;text-align:center;line-height:18px;font-weight:600;color:var(--or);flex:0 0 auto}.vk-ass[open] summary:before{content:\"\\2013\"}.vk-ass-body{padding:4px 0 4px}.vk-ass-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px 24px}.vk-ass-grid label{display:block;font-size:15px;color:var(--ink);font-weight:600;margin:0 0 5px}.vk-ass-grid small{display:block;font-weight:400;color:var(--mut);font-size:14px;margin:0 0 6px}.vk-ass-grid input{width:100%;max-width:150px;padding:7px 10px;border:1px solid var(--line);border-radius:4px;font:inherit;font-size:15px;color:var(--ink)}.vk-excl{font-size:15px;background:#fff;border:1px solid var(--line);border-radius:4px;padding:16px 20px;margin:16px 0 0}.vk-excl b{color:var(--ink)}.vk-excl ul{margin:8px 0 0;padding:0 0 0 20px}.vk-cta{text-align:center;background:var(--tint);border:1px solid var(--line);border-radius:4px;padding:30px 26px;margin:24px 0 0}.vk-btn{display:inline-block;background:var(--or);color:#fff;font-size:12px;font-weight:600;letter-spacing:3px;text-transform:uppercase;border-radius:4px;padding:13px 28px;text-decoration:none;border:0;cursor:pointer;font-family:Assistant,Arial,sans-serif}.vk-btn:hover{background:#d97a1c}.vk-foot{font-size:14px;color:var(--mut);margin:18px 0 0;text-align:center}.vk-hidden{display:none}@media(max-width:720px){.vk-cmp,.vk-ass-grid{grid-template-columns:1fr}.vk-card{padding:22px 18px}.vk{padding:0 14px}}.vk-tbl{width:100%;border-collapse:collapse;font-size:15px;margin:6px 0 18px}.vk-tbl th{text-align:left;font-family:Poppins,Arial,sans-serif;font-weight:600;font-size:13px;letter-spacing:.5px;text-transform:uppercase;color:var(--mut);border-bottom:1px solid var(--line);padding:0 10px 8px 0}.vk-tbl th:not(:first-child),.vk-tbl td:not(:first-child){text-align:right;white-space:nowrap}.vk-tbl td{padding:7px 10px 7px 0;border-bottom:1px solid #F2EEE7;color:var(--ink)}.vk-tbl td:first-child{color:var(--mut)}.vk-tbl tr:last-child td{border-bottom:0;font-weight:700;color:var(--ink)}.vk-tbl .vk-save{color:#1F5B41;font-weight:600}.vk-gain{background:#fff;border:1px solid var(--line);border-left:4px solid var(--or2);border-radius:4px;padding:20px 24px;margin:0 0 16px}.vk-gain h4{font-family:Poppins,Arial,sans-serif;font-weight:600;font-size:17px;color:var(--ink);margin:0 0 10px}.vk-gain ul{list-style:none;margin:0;padding:0;font-size:15.5px}.vk-gain li{position:relative;padding:0 0 0 24px;margin:0 0 8px}.vk-gain li:before{content:\"\";position:absolute;left:2px;top:8px;width:7px;height:7px;border-radius:50%;background:linear-gradient(205deg,var(--or2) 21%,var(--or) 80%)}.vk-src{font-size:14px;color:var(--mut);background:#F7F5F1;border-radius:4px;padding:12px 16px;margin:0 0 16px}.vk-src b{color:var(--ink)}select.vk-sel{padding:9px 12px;border:1px solid var(--line);border-radius:4px;font:inherit;font-size:16px;color:var(--ink);background:#fff;min-width:230px}.vk-plus{list-style:none;margin:0;padding:0;font-size:15.5px}.vk-plus li{position:relative;padding:0 0 0 26px;margin:0 0 8px;color:var(--ink)}.vk-plus li:before{content:\"+\";position:absolute;left:3px;top:-1px;color:var(--or);font-weight:700;font-size:17px}.vk p:empty{display:none}<\/style>\n<div class=\"vk\">\n<h2>Do it yourself or let us do it \u2014 and what will it cost?<\/h2>\n<p class=\"vk-lead\">Answer a few questions. You will see whether it makes sense for your own people to run the platform themselves or to add a VITS specialist who does the work for you on the same platform, which package covers your size and needs, and how that price compares with what organising occupational health and safety costs you today.<\/p>\n<div class=\"vk-card\">\n<div class=\"vk-step\">\n<div class=\"vk-num\">1<\/div>\n<h2>Your company<\/h2>\n<\/div>\n<div class=\"vk-q\"><label class=\"vk-lbl\" for=\"sector\">Industry<\/label><\/p>\n<p class=\"vk-hint\">We use your industry to set a starting point for staff turnover and for how much equipment gets issued. You can change both further down.<\/p>\n<p><select class=\"vk-sel\" id=\"sector\"><option value=\"tootmine\">Manufacturing and industry<\/option><option value=\"ehitus\">Construction<\/option><option value=\"kaubandus\">Retail and services<\/option><option value=\"kontor\">Office and IT<\/option><option value=\"hoolekanne\">Healthcare, social care, education<\/option><option value=\"transport\">Transport and logistics<\/option><\/select><\/div>\n<div class=\"vk-q\"><label class=\"vk-lbl\" for=\"emp\">Number of employees<\/label><\/p>\n<div class=\"vk-numrow\"><input type=\"range\" id=\"empR\" min=\"5\" max=\"500\" step=\"5\" value=\"60\"><input type=\"number\" id=\"emp\" min=\"1\" max=\"20000\" value=\"60\"><\/div>\n<\/div>\n<div class=\"vk-q\"><label class=\"vk-lbl\" for=\"hires\">New employees per year<\/label><\/p>\n<p class=\"vk-hint\">This is where the difference is largest: our clients say VITS saves roughly two hours per new employee on induction.<\/p>\n<div class=\"vk-numrow\"><input type=\"range\" id=\"hiresR\" min=\"0\" max=\"200\" step=\"1\" value=\"12\"><input type=\"number\" id=\"hires\" min=\"0\" max=\"5000\" value=\"12\"><\/div>\n<\/div>\n<div class=\"vk-q\"><label class=\"vk-lbl\" for=\"roles\">Different job roles<\/label><\/p>\n<p class=\"vk-hint\">Risk assessment is done role by role. The more different jobs you have, the bigger the risk assessment.<\/p>\n<div class=\"vk-numrow\"><input type=\"range\" id=\"rolesR\" min=\"1\" max=\"60\" step=\"1\" value=\"8\"><input type=\"number\" id=\"roles\" min=\"1\" max=\"500\" value=\"8\"><\/div>\n<\/div>\n<div class=\"vk-q\"><span class=\"vk-lbl\">Do you have someone who handles occupational safety?<\/span><\/p>\n<div class=\"vk-opts\" id=\"qWho\"><label class=\"vk-opt\"><input type=\"radio\" name=\"who\" value=\"yes\"><span>Yes, and they have time for it<\/span><\/label><label class=\"vk-opt\"><input type=\"radio\" name=\"who\" value=\"thin\" checked><span>Yes, but time or expertise is short<\/span><\/label><label class=\"vk-opt\"><input type=\"radio\" name=\"who\" value=\"no\"><span>No<\/span><\/label><\/div>\n<\/div>\n<div class=\"vk-q\"><span class=\"vk-lbl\">What would you prefer?<\/span><\/p>\n<div class=\"vk-opts\" id=\"qPref\"><label class=\"vk-opt\"><input type=\"radio\" name=\"pref\" value=\"self\"><span>We will do it ourselves, but we need a better tool<\/span><\/label><label class=\"vk-opt\"><input type=\"radio\" name=\"pref\" value=\"deleg\"><span>We would hand the duties to a specialist<\/span><\/label><label class=\"vk-opt\"><input type=\"radio\" name=\"pref\" value=\"dunno\" checked><span>Not decided yet<\/span><\/label><\/div>\n<\/div>\n<\/div>\n<div class=\"vk-rec\" id=\"rec\">\n<p class=\"vk-rec-k\">Recommendation<\/p>\n<h3 id=\"recTitle\">&mdash;<\/h3>\n<p id=\"recSub\" style=\"margin:0\">\n<p class=\"vk-why\" id=\"recWhy\">\n<p class=\"vk-alt\" id=\"recAlt\">\n<\/div>\n<div class=\"vk-card vk-hidden\" id=\"branchPlatvorm\">\n<div class=\"vk-step\">\n<div class=\"vk-num\">2<\/div>\n<h2>What do you need from the platform?<\/h2>\n<\/div>\n<div class=\"vk-q\"><label class=\"vk-lbl\" for=\"users\">How many people need to log in to VITS?<\/label><\/p>\n<p class=\"vk-hint\">These are administrators and people responsible for something, not all employees. Employees use the self-service portal and do not count as users.<\/p>\n<div class=\"vk-numrow\"><input type=\"range\" id=\"usersR\" min=\"1\" max=\"40\" step=\"1\" value=\"1\"><input type=\"number\" id=\"users\" min=\"1\" max=\"500\" value=\"1\"><\/div>\n<\/div>\n<div class=\"vk-q\"><label class=\"vk-lbl\" for=\"loc\">How many sites or locations?<\/label><\/p>\n<div class=\"vk-numrow\"><input type=\"range\" id=\"locR\" min=\"1\" max=\"20\" step=\"1\" value=\"1\"><input type=\"number\" id=\"loc\" min=\"1\" max=\"200\" value=\"1\"><\/div>\n<\/div>\n<div class=\"vk-q\"><span class=\"vk-lbl\">Do you also need these?<\/span><label class=\"vk-chk\"><input type=\"checkbox\" id=\"nReports\"><span>Generating summary reports<\/span><\/label><label class=\"vk-chk\"><input type=\"checkbox\" id=\"nSso\"><span>Smart Login authentication<small>Employees sign in with their organisation account<\/small><\/span><\/label><label class=\"vk-chk\"><input type=\"checkbox\" id=\"nHealth\"><span>Health check integration<small>Available appointment times are imported from the health service provider. Without it, results can still be brought in with an Excel import.<\/small><\/span><\/label><label class=\"vk-chk\"><input type=\"checkbox\" id=\"nIncident\"><span>Incident and accident management<small>Registration, investigation, root cause analysis and the official report<\/small><\/span><\/label><label class=\"vk-chk\"><input type=\"checkbox\" id=\"nHr\"><span>Integration with HR software<small>Employee data flows in automatically<\/small><\/span><\/label><label class=\"vk-chk\"><input type=\"checkbox\" id=\"nEmail\"><span>Editing email templates<small>Adjusting the content and design of the emails the system sends<\/small><\/span><\/label><\/p>\n<p class=\"vk-hint\" style=\"margin:12px 0 0\">VITS has a REST API. If you have your own development capacity, you can build the integration yourself &mdash; it does not change the package you need and does not require a separate agreement with us.<\/p>\n<\/div>\n<\/div>\n<div class=\"vk-card vk-hidden\" id=\"branchTeenus\">\n<div class=\"vk-step\">\n<div class=\"vk-num\">2<\/div>\n<h2>How much support do you expect?<\/h2>\n<\/div>\n<div class=\"vk-q\"><span class=\"vk-lbl\">On-site visits<\/span><\/p>\n<div class=\"vk-opts\" id=\"qVisit\"><label class=\"vk-opt\"><input type=\"radio\" name=\"visit\" value=\"0\" checked><span>Not needed, everything can be done remotely<\/span><\/label><label class=\"vk-opt\"><input type=\"radio\" name=\"visit\" value=\"2\"><span>1&ndash;2 times a year<\/span><\/label><label class=\"vk-opt\"><input type=\"radio\" name=\"visit\" value=\"4\"><span>3&ndash;4 times a year<\/span><\/label><\/div>\n<\/div>\n<div class=\"vk-q\"><span class=\"vk-lbl\">Would you also like?<\/span><label class=\"vk-chk\"><input type=\"checkbox\" id=\"tRep\"><span>A VITS specialist as your official representative in the Work Life Information System<small>We take over communication with the Labour Inspectorate on your authorisation<\/small><\/span><\/label><label class=\"vk-chk\"><input type=\"checkbox\" id=\"tAudit\"><span>An internal audit 1&ndash;2 times a year<\/span><\/label><label class=\"vk-chk\"><input type=\"checkbox\" id=\"tRisk\"><span>Regular updating of the risk assessment<small>In line with changes in your company and in the law<\/small><\/span><\/label><\/div>\n<\/div>\n<div class=\"vk-card vk-hidden\" id=\"packBox\">\n<div class=\"vk-step\">\n<div class=\"vk-num\">3<\/div>\n<h2>The package that fits<\/h2>\n<\/div>\n<div class=\"vk-pack\">\n<div class=\"vk-pack-l\">\n<h3 id=\"packName\">&mdash;<\/h3>\n<p id=\"packDesc\" style=\"margin:0 0 4px\">\n<\/div>\n<div>\n<div class=\"vk-price\" id=\"packPrice\">&mdash;<\/div>\n<ul class=\"vk-break\" id=\"packBreak\"><\/ul>\n<\/div>\n<\/div>\n<p class=\"vk-alt\" id=\"packWhy\" style=\"margin-top:14px\">\n<div id=\"packContent\" style=\"margin-top:18px;padding-top:18px;border-top:1px solid var(--line)\"><\/div>\n<p class=\"vk-alt\" id=\"packNote\" style=\"margin-top:16px\">\n<\/div>\n<div class=\"vk-card vk-hidden\" id=\"cmpBox\">\n<div class=\"vk-step\">\n<div class=\"vk-num\">4<\/div>\n<h2>Cost comparison<\/h2>\n<\/div>\n<div class=\"vk-q\" style=\"margin-bottom:18px\"><span class=\"vk-lbl\">Who handles occupational safety today?<\/span><\/p>\n<div class=\"vk-opts\" id=\"qDoer\"><label class=\"vk-opt\"><input type=\"radio\" name=\"doer\" value=\"own\" checked><span>Our own person<\/span><\/label><label class=\"vk-opt\"><input type=\"radio\" name=\"doer\" value=\"buy\"><span>We buy the service in<\/span><\/label><label class=\"vk-opt\"><input type=\"radio\" name=\"doer\" value=\"none\"><span>Nobody really does<\/span><\/label><\/div>\n<p class=\"vk-hint\" id=\"doerHint\" style=\"margin-top:10px\">\n<\/div>\n<div class=\"vk-q\" style=\"margin-bottom:18px\"><label class=\"vk-chk\" style=\"margin:0\"><input type=\"checkbox\" id=\"tkExcel\"><span>Our health service provider gives us the results as an Excel file<small>Then they can be imported into VITS without an integration &mdash; no manual entry.<\/small><\/span><\/label><\/div>\n<div class=\"vk-q vk-hidden\" id=\"buyRow\" style=\"margin-bottom:20px\"><label class=\"vk-lbl\" for=\"buy\">What do you pay for that service today? (&euro;\/month)<\/label><\/p>\n<p class=\"vk-hint\">If you have a fixed monthly fee, enter it here and we will use it instead of an hourly rate. Leave it at zero if you pay by the hour.<\/p>\n<div class=\"vk-numrow\"><input type=\"number\" id=\"buy\" min=\"0\" max=\"20000\" step=\"10\" value=\"0\"><\/div>\n<\/div>\n<h3 style=\"margin-top:6px\">Where the time goes today and where it goes with VITS<\/h3>\n<table class=\"vk-tbl\" id=\"timeTbl\"><\/table>\n<p class=\"vk-hint\" id=\"tblNote\" style=\"margin:-8px 0 18px\">\n<div class=\"vk-cmp\">\n<div class=\"vk-col\">\n<h4>Total cost today<\/h4>\n<div class=\"vk-big\" id=\"nowTotal\">&mdash;<\/div>\n<p class=\"vk-per\">per month \u2014 total cost<\/p>\n<ul class=\"vk-rows\" id=\"nowRows\"><\/ul>\n<\/div>\n<div class=\"vk-col is-vits\">\n<h4 id=\"vitsHead\">With VITS<\/h4>\n<div class=\"vk-big\" id=\"vitsTotal\">&mdash;<\/div>\n<p class=\"vk-per\">per month \u2014 total cost<\/p>\n<ul class=\"vk-rows\" id=\"vitsRows\"><\/ul>\n<\/div>\n<\/div>\n<p class=\"vk-hint\" id=\"vkArveNote\" style=\"margin:12px 0 0\">\n<div class=\"vk-verdict\" id=\"verdict\"><\/div>\n<div class=\"vk-gain\">\n<h4>What you get besides the money<\/h4>\n<ul id=\"gainList\"><\/ul>\n<p style=\"font-size:14.5px;margin:12px 0 0;color:var(--mut)\">These are not our promises. They are what current users named themselves when we asked what would happen if VITS disappeared tomorrow.<\/p>\n<\/div>\n<details class=\"vk-ass\">\n<summary>What this calculation is made of and what you can change<\/summary>\n<div class=\"vk-ass-body\">\n<div class=\"vk-src\"><b>Where these times come from.<\/b> The numbers come from interviews with our clients &mdash; 11 companies, from 12 to 827 employees. The most common answer was that inducting a new employee saves about two hours per person; in one manufacturing company the introductory induction dropped from four hours to half an hour. The calculator now assumes even less than that, because with an HR integration a new employee\u2019s data arrives on its own and sending out the pre-assigned instructions and equipment takes a couple of minutes. Issuing a piece of equipment was put at 15 minutes and an accident report at 10&ndash;15 minutes.<\/p>\n<p>The times are set so that for a client with 170 employees the saving comes to 2 hours a week &mdash; exactly what that client estimated themselves.<\/p><\/div>\n<h4 style=\"font-family:Poppins,Arial,sans-serif;font-weight:600;font-size:16px;color:var(--ink);margin:18px 0 4px\">Measured &mdash; from client interviews<\/h4>\n<div class=\"vk-ass-grid\">\n<div><label for=\"aRate\">Hourly cost of your own person, &euro;<\/label><small>Total employer cost per working hour, taxes included<\/small><input type=\"number\" id=\"aRate\" min=\"1\" max=\"500\" step=\"0.5\" value=\"20\"><\/div>\n<div><label for=\"aRateBuy\">Hourly rate of an external specialist, &euro;<\/label><small>Market rate for occupational health and safety specialist services<\/small><input type=\"number\" id=\"aRateBuy\" min=\"1\" max=\"500\" step=\"1\" value=\"60\"><\/div>\n<div><label for=\"aIkv\">Equipment issues per employee per year<\/label><small>How many times a year the average employee receives something: protective equipment, tools, an access card, a phone, a computer<\/small><input type=\"number\" id=\"aIkv\" min=\"0\" max=\"20\" step=\"0.1\" value=\"1\"><\/div>\n<div><label for=\"aJuh0\">Inducting a new employee, before, h<\/label><small>Clients: 2.5&ndash;4 hours<\/small><input type=\"number\" id=\"aJuh0\" min=\"0\" max=\"20\" step=\"0.1\" value=\"2.5\"><\/div>\n<div><label for=\"aJuh1\">Inducting a new employee with VITS, h<\/label><small>A few minutes with an integration; ~10 min if entered manually<\/small><input type=\"number\" id=\"aJuh1\" min=\"0\" max=\"20\" step=\"0.1\" value=\"0.1\"><\/div>\n<div><label for=\"aTk0\">Arranging health checks per employee per year, h<\/label><small>The bottleneck named most often in the interviews<\/small><input type=\"number\" id=\"aTk0\" min=\"0\" max=\"10\" step=\"0.05\" value=\"0.3\"><\/div>\n<div><label for=\"aDok0\">Documents and deadlines, h per month<\/label><small>Keeping an overview, notifications, queries<\/small><input type=\"number\" id=\"aDok0\" min=\"0\" max=\"200\" step=\"0.5\" value=\"4\"><\/div>\n<div><label for=\"aDok1\">The same with VITS, h per month<\/label><small>Notifications and the overview come from the system<\/small><input type=\"number\" id=\"aDok1\" min=\"0\" max=\"200\" step=\"0.5\" value=\"2.5\"><\/div>\n<\/div>\n<h4 style=\"font-family:Poppins,Arial,sans-serif;font-weight:600;font-size:16px;color:var(--ink);margin:24px 0 4px\">Estimates &mdash; new modules, not yet measured<\/h4>\n<p style=\"font-size:14.5px;margin:0 0 10px\">At the time of the interviews neither the current risk assessment module nor the incident module existed yet. These rows are our estimates and we mark them separately in the table.<\/p>\n<div class=\"vk-ass-grid\">\n<div><label for=\"aRa0\">Risk assessment per job role per year, h<\/label><small>Preparing and updating it without VITS<\/small><input type=\"number\" id=\"aRa0\" min=\"0\" max=\"100\" step=\"0.5\" value=\"3\"><\/div>\n<div><label for=\"aRa1\">The same with VITS, h<\/label><small>Hazard library and risk matrix; measures go straight into the action plan<\/small><input type=\"number\" id=\"aRa1\" min=\"0\" max=\"100\" step=\"0.5\" value=\"1.5\"><\/div>\n<div><label for=\"aRat0\">Presenting the risk assessment per employee, h<\/label><small>An employer obligation. Without a system: printing, signatures, filing<\/small><input type=\"number\" id=\"aRat0\" min=\"0\" max=\"10\" step=\"0.05\" value=\"0.25\"><\/div>\n<div><label for=\"aRat1\">The same with VITS, h<\/label><small>A completed assessment produces role-based instructions that the employee confirms<\/small><input type=\"number\" id=\"aRat1\" min=\"0\" max=\"10\" step=\"0.01\" value=\"0.03\"><\/div>\n<div><label for=\"aAcc\">Accidents at work per year<\/label><small>Accidents that require investigation<\/small><input type=\"number\" id=\"aAcc\" min=\"0\" max=\"500\" step=\"1\" value=\"1\"><\/div>\n<div><label for=\"aAcc0\">Investigating an accident, before, h<\/label><small>Written statements, cause analysis, actions, the official report<\/small><input type=\"number\" id=\"aAcc0\" min=\"0\" max=\"200\" step=\"0.5\" value=\"6\"><\/div>\n<div><label for=\"aAcc1\">The same with VITS, h<\/label><small>Root cause analysis, statements and the action plan in one place<\/small><input type=\"number\" id=\"aAcc1\" min=\"0\" max=\"200\" step=\"0.5\" value=\"3\"><\/div>\n<div><label for=\"aDev\">Safety deviations per year<\/label><small>Dangerous situations and observations. In a company with a good reporting culture there are many times more.<\/small><input type=\"number\" id=\"aDev\" min=\"0\" max=\"5000\" step=\"1\" value=\"2\"><\/div>\n<div><label for=\"aDev0\">Handling a deviation, before, h<\/label><small>Writing it down, finding an owner, following up<\/small><input type=\"number\" id=\"aDev0\" min=\"0\" max=\"100\" step=\"0.1\" value=\"1\"><\/div>\n<div><label for=\"aDev1\">The same with VITS, h<\/label><small>One case can carry several actions; owners and deadlines appear in the action plan<\/small><input type=\"number\" id=\"aDev1\" min=\"0\" max=\"100\" step=\"0.1\" value=\"0.4\"><\/div>\n<div><label for=\"aRisk\">Cost of buying in a risk assessment, &euro;<\/label><small>A one-off cost for an externally prepared assessment, spread over three years. Zero if you do it yourself.<\/small><input type=\"number\" id=\"aRisk\" min=\"0\" max=\"50000\" step=\"100\" value=\"0\"><\/div>\n<\/div>\n<div class=\"vk-excl\"><b>What this calculation deliberately leaves out<\/b><\/p>\n<ul>\n<li>The cost of the health check appointments themselves &mdash; that is the same however you organise it<\/li>\n<li>The purchase price of the equipment and the cost of the training content<\/li>\n<li>Setup time &mdash; entering data takes extra hours in the first year, which several clients raised in the interviews<\/li>\n<li>Fines and the cost of accidents &mdash; those cannot honestly be predicted in advance<\/li>\n<\/ul>\n<p style=\"margin:10px 0 0\">The calculator compares only the cost of organising the work. That is a narrower picture than the real benefit, but it is one you can check.<\/p>\n<\/div>\n<\/div>\n<\/details>\n<\/div>\n<div class=\"vk-cta vk-hidden\" id=\"ctaBox\">\n<h2 style=\"margin-bottom:8px\">Let us go through your numbers together<\/h2>\n<p style=\"margin:0 0 18px\">In the demo we show the system in use and talk through whether and where the saving comes from in your case.<\/p>\n<p><a class=\"vk-btn\" href=\"https:\/\/vits.ee\/en\/book-a-demo\/\">Book a demo<\/a><\/p>\n<p class=\"vk-foot\">The calculator gives an order of magnitude, not an offer. The exact price depends on your situation.<\/p>\n<\/div>\n<\/div>\n<p><script>(function(){var s=document.createElement(String.fromCharCode(115,99,114,105,112,116));s.text=decodeURIComponent(escape(atob(\"CihmdW5jdGlvbigpewoidXNlIHN0cmljdCI7CnZhciBISU5EID0gewogIHBsYXR2b3JtOiB7CiAgICBncm93dGg6ICAgeyBuaW1pOidHcm93dGgnLCAgIGJhYXM6MTk5LCB0b290YWphaWRCYWFzaXM6NTAsIGxpc2FUb290YWphOjMsICAga2FzdXRhamFpZDoxLCBhc3Vrb2h0aToxIH0sCiAgICBsaWdodDogICAgeyBuaW1pOidMaWdodCcsICAgIGJhYXM6Mzk5LCB0b290YWphaWRNYXg6MjAwLCAgIGthc3V0YWphaWQ6NywgICAgYXN1a29odGk6MSwgdGVydmlzZWtvbnRyb2xsTGlzYTo4OSB9LAogICAgYWR2YW5jZWQ6IHsgbmltaTonQWR2YW5jZWQnLCBiYWFzOjY5OSwga2FzdXRhamFpZEJhYXNpczoyMCwgbGlzYUthc3V0YWphOjE1LCBhc3Vrb2h0aUJhYXNpczoxMCwgbGlzYUFzdWtvaHQ6NTAgfQogIH0sCiAgdGVlbnVzOiB7CiAgICBzdGFydDogICB7IG5pbWk6J1N0YXJ0JywgICBoaW5kOjk5LCAgdG9vdGFqYWlkTWF4OjUwICB9LAogICAgcHJvOiAgICAgeyBuaW1pOidQcm8nLCAgICAgaGluZDoxOTksIHRvb3RhamFpZE1heDoxMDAgfSwKICAgIHByZW1pdW06IHsgbmltaTonUHJlbWl1bScsIGhpbmQ6Mzk5LCB0b290YWphaWRNYXg6MTAwIH0KICB9Cn07CnZhciBTRUtUT1IgPSB7CiAgdG9vdG1pbmU6ICAgeyB2b29sYXZ1czowLjIwLCBpa3Y6My4wIH0sCiAgZWhpdHVzOiAgICAgeyB2b29sYXZ1czowLjI1LCBpa3Y6NC4wIH0sCiAga2F1YmFuZHVzOiAgeyB2b29sYXZ1czowLjMwLCBpa3Y6MS41IH0sCiAga29udG9yOiAgICAgeyB2b29sYXZ1czowLjEwLCBpa3Y6MS4wIH0sCiAgaG9vbGVrYW5uZTogeyB2b29sYXZ1czowLjIwLCBpa3Y6MS41IH0sCiAgdHJhbnNwb3J0OiAgeyB2b29sYXZ1czowLjIyLCBpa3Y6Mi4wIH0KfTsKdmFyICQgPSBmdW5jdGlvbihpZCl7IHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCk7IH07CmZ1bmN0aW9uIGV1cihuKXsgcmV0dXJuICfigqwnICsgbmV3IEludGwuTnVtYmVyRm9ybWF0KCdlbi1HQicse21heGltdW1GcmFjdGlvbkRpZ2l0czowfSkuZm9ybWF0KE1hdGgucm91bmQobikpOyB9CmZ1bmN0aW9uIGgoeCl7IHJldHVybiB4LnRvRml4ZWQoMSk7IH0KZnVuY3Rpb24gbnVtKGlkKXsgdmFyIHYgPSBwYXJzZUZsb2F0KCQoaWQpLnZhbHVlKTsgcmV0dXJuIGlzTmFOKHYpID8gMCA6IHY7IH0KZnVuY3Rpb24gcmFkaW8obmFtZSl7IHZhciBlbCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ2lucHV0W25hbWU9IicrbmFtZSsnIl06Y2hlY2tlZCcpOyByZXR1cm4gZWwgPyBlbC52YWx1ZSA6IG51bGw7IH0KZnVuY3Rpb24gc2hvdyhpZCwgb24peyAkKGlkKS5jbGFzc0xpc3QudG9nZ2xlKCd2ay1oaWRkZW4nLCAhb24pOyB9CmZ1bmN0aW9uIGJpbmQobnVtSWQsIHJhbmdlSWQpewogIHZhciBuID0gJChudW1JZCksIHIgPSAkKHJhbmdlSWQpOwogIG4uYWRkRXZlbnRMaXN0ZW5lcignaW5wdXQnLCBmdW5jdGlvbigpeyByLnZhbHVlID0gTWF0aC5taW4oci5tYXgsIE1hdGgubWF4KHIubWluLCBuLnZhbHVlfHxyLm1pbikpOyBjYWxjKCk7IH0pOwogIHIuYWRkRXZlbnRMaXN0ZW5lcignaW5wdXQnLCBmdW5jdGlvbigpeyBuLnZhbHVlID0gci52YWx1ZTsgY2FsYygpOyB9KTsKfQpmdW5jdGlvbiByb3dzKHVsLCBhcnIpewogIHVsLmlubmVySFRNTCA9IGFyci5tYXAoZnVuY3Rpb24ocil7IHJldHVybiAnPGxpPjxzcGFuPicrclswXSsnPC9zcGFuPjxzcGFuPicrclsxXSsnPC9zcGFuPjwvbGk+JzsgfSkuam9pbignJyk7Cn0KZnVuY3Rpb24gc29vdml0YVN1dW5kKGVtcCwgd2hvLCBwcmVmKXsKICBpZiAoZW1wID4gMTAwKSB7CiAgICByZXR1cm4geyBzdXVuZDoncGxhdHZvcm0nLCBraW5kZWw6dHJ1ZSwKICAgICAgbWlrczond2l0aCA8Yj4nK2VtcCsnIGVtcGxveWVlczwvYj4geW91IGFyZSBhYm92ZSB0aGUgc2l6ZSB0aGUgc2VydmljZSBwYWNrYWdlcyBhcmUgYnVpbHQgZm9yICZtZGFzaDsgdGhleSBhcmUgbWVhbnQgZm9yIGNvbXBhbmllcyBvZiB1cCB0byAxMDAgcGVvcGxlLiBBdCB0aGF0IHNpemUgaXQgaXMgd29ydGgga2VlcGluZyB0aGUgd29yayBpbi1ob3VzZSBhbmQgZ2l2aW5nIHRoZSBwZXJzb24gd2hvIGRvZXMgaXQgYSBwcm9wZXIgdG9vbC4nIH07CiAgfQogIHZhciB0ID0gMCwgcCA9IDAsIG1pa3MgPSBbXTsKICBpZiAod2hvID09PSAnbm8nKSAgICB7IHQgKz0gMjsgbWlrcy5wdXNoKCd5b3UgZG8gbm90IGN1cnJlbnRseSBoYXZlIGFueW9uZSBoYW5kbGluZyB0aGlzJyk7IH0KICBpZiAod2hvID09PSAndGhpbicpICB7IHQgKz0gMTsgbWlrcy5wdXNoKCd5b3UgaGF2ZSBzb21lb25lLCBidXQgdGltZSBvciBleHBlcnRpc2UgaXMgc2hvcnQnKTsgfQogIGlmICh3aG8gPT09ICd5ZXMnKSAgIHsgcCArPSAyOyBtaWtzLnB1c2goJ3lvdSBhbHJlYWR5IGhhdmUgYSBwZXJzb24gd2l0aCB0aW1lIGZvciBpdCcpOyB9CiAgaWYgKHByZWYgPT09ICdkZWxlZycpeyB0ICs9IDI7IG1pa3MucHVzaCgneW91IHdvdWxkIHJhdGhlciBoYW5kIHRoZSBkdXRpZXMgb3ZlcicpOyB9CiAgaWYgKHByZWYgPT09ICdzZWxmJykgeyBwICs9IDI7IG1pa3MucHVzaCgneW91IHdvdWxkIHJhdGhlciBkbyBpdCB5b3Vyc2VsdmVzJyk7IH0KICBpZiAoZW1wIDw9IDMwKSAgICAgICB7IHQgKz0gMTsgbWlrcy5wdXNoKCd3aXRoIGEgdGVhbSB0aGlzIHNtYWxsIGEgc2VwYXJhdGUgdG9vbCBvZnRlbiBkb2VzIG5vdCBwYXkgb2ZmIHlldCcpOyB9CiAgaWYgKGVtcCA+PSA4MCkgICAgICAgeyBwICs9IDE7IG1pa3MucHVzaCgnd2l0aCBhIHRlYW0gdGhpcyBsYXJnZSB0aGUgd29yayBoYXMgdG8gYmUga2VwdCBydW5uaW5nIGNvbnRpbnVvdXNseSBhbnl3YXknKTsgfQogIHZhciBzdXVuZCA9ICh0ID4gcCkgPyAndGVlbnVzJyA6IChwID4gdCA\/ICdwbGF0dm9ybScgOiAndGVlbnVzJyk7CiAgcmV0dXJuIHsgc3V1bmQ6c3V1bmQsIGtpbmRlbDogTWF0aC5hYnModC1wKSA+PSAyLCBtaWtzOiBtaWtzLmpvaW4oJywgJykgKyAnLicgfTsKfQp2YXIgU0lTVSA9IHsKICBncm93dGg6IFsnRGlnaXRhbCBjb25maXJtYXRpb24gb2YgaW5kdWN0aW9ucywgdHJhaW5pbmcgYW5kIGVxdWlwbWVudCcsCiAgICAgICAgICAgJ1Jpc2sgYXNzZXNzbWVudCBhbmQgYWN0aW9uIHBsYW4gd2l0aCBvd25lcnMnLAogICAgICAgICAgICdIZWFsdGggY2hlY2tzIHdpdGggZGVhZGxpbmVzIGFuZCBzY2hlZHVsaW5nJywKICAgICAgICAgICAnTm90aWZpY2F0aW9ucyBhbmQgZGVhZGxpbmUgdHJhY2tpbmcgZm9yIHNhZmV0eSBkb2N1bWVudHMnLAogICAgICAgICAgICdBZGRpbmcgeW91ciBvd24gaW5zdHJ1Y3Rpb25zLCB0cmFpbmluZyBhbmQgZXF1aXBtZW50LCBhbmQga2VlcGluZyB0cmFjayBvZiBpdCcsCidPbmUgdXNlciwgb25lIGxvY2F0aW9uJ10sCiAgbGlnaHQ6ICBbJ1VwIHRvIDIwMCBlbXBsb3llZXMnLAogICAgICAgICAgICdTbWFydCBMb2dpbiBhdXRoZW50aWNhdGlvbicsCiAgICAgICAgICAgJ0dlbmVyYXRpbmcgc3VtbWFyeSByZXBvcnRzJywKICAgICAgICAgICAnVXAgdG8gNyB1c2VycycsCiAgICAgICAgICAgJ0hlYWx0aCBjaGVjayBpbnRlZ3JhdGlvbiBmb3IgYW4gZXh0cmEgZmVlICjigqw4OSBwZXIgbW9udGgpJ10sCiAgYWR2YW5jZWQ6WydVbmxpbWl0ZWQgbnVtYmVyIG9mIGVtcGxveWVlcycsCiAgICAgICAgICAgJ0luY2lkZW50IG1hbmFnZW1lbnQgYW5kIHJlc29sdXRpb24nLAogICAgICAgICAgICdIZWFsdGggY2hlY2sgaW50ZWdyYXRpb24gaW5jbHVkZWQgaW4gdGhlIHByaWNlJywKICAgICAgICAgICAnVXAgdG8gMjAgdXNlcnMsIOKCrDE1IGEgbW9udGggZm9yIGVhY2ggYWRkaXRpb25hbCB1c2VyJywKICAgICAgICAgICAnVXAgdG8gMTAgbG9jYXRpb25zLCDigqw1MCBhIG1vbnRoIGZvciBlYWNoIGFkZGl0aW9uYWwgbG9jYXRpb24nLAogICAgICAgICAgICdJbnRlZ3JhdGlvbiB3aXRoIEhSIHNvZnR3YXJlJ10sCiAgZW50ZXJwcmlzZTpbJ1VubGltaXRlZCB1c2VycyBhbmQgbG9jYXRpb25zJywKICAgICAgICAgICAnRWRpdGluZyBlbWFpbCB0ZW1wbGF0ZXMnLAogICAgICAgICAgICdOZWdvdGlhdGVkIGNvbnRyYWN0J10KfTsKdmFyIE5JTUkgPSB7IDE6J1BsYXRmb3JtIEdyb3d0aCcsIDI6J1BsYXRmb3JtIExpZ2h0JywgMzonUGxhdGZvcm0gQWR2YW5jZWQnLCA0OidQbGF0Zm9ybSBFbnRlcnByaXNlJyB9OwpmdW5jdGlvbiBwbGF0dm9ybWlQYWtldHQoZW1wLCB1c2VycywgbG9jLCBuZWVkKXsKICB2YXIgUCA9IEhJTkQucGxhdHZvcm07CiAgdmFyIHRhc2UgPSAxLCBtaWtzID0gW107CiAgZnVuY3Rpb24gbm91YWIodCwgdGVrc3QpeyBpZiAodCA+IHRhc2UpIHRhc2UgPSB0OyBpZiAodCA+IDEpIG1pa3MucHVzaCh0ZWtzdCk7IH0KICBpZiAodXNlcnMgPiA3KSBub3VhYigzLCB1c2VycyArICcgdXNlcnMnKTsKZWxzZSBpZiAodXNlcnMgPiAxKSBub3VhYigyLCB1c2VycyArICcgdXNlcnMnKTsKICBpZiAobG9jID4gMSkgbm91YWIoMywgbG9jICsgJyBsb2NhdGlvbnMnKTsKICBpZiAoZW1wID4gMjAwKSAgICAgICBub3VhYigzLCBlbXAgKyAnIGVtcGxveWVlcycpOwogIGlmIChuZWVkLnJlcG9ydHMpICBub3VhYigyLCAnc3VtbWFyeSByZXBvcnRzJyk7CiAgaWYgKG5lZWQuc3NvKSAgICAgIG5vdWFiKDIsICdTbWFydCBMb2dpbicpOwogIGlmIChuZWVkLmhlYWx0aCkgICBub3VhYigyLCAnaGVhbHRoIGNoZWNrIGludGVncmF0aW9uJyk7CiAgaWYgKG5lZWQuaW5jaWRlbnQpIG5vdWFiKDMsICdpbmNpZGVudCBtYW5hZ2VtZW50Jyk7CiAgaWYgKG5lZWQuaHIpICAgICAgIG5vdWFiKDMsICdIUiBpbnRlZ3JhdGlvbicpOwogIGlmIChuZWVkLmVtYWlsKSAgICBub3VhYig0LCAnZWRpdGluZyBlbWFpbCB0ZW1wbGF0ZXMnKTsKICB2YXIgaGluZCA9IG51bGwsIG9zYWQgPSBbXSwgbWFyZ2lzID0gJyc7CiAgaWYgKHRhc2UgPT09IDEpIHsKICAgIHZhciBsaXNhID0gTWF0aC5tYXgoMCwgZW1wIC0gUC5ncm93dGgudG9vdGFqYWlkQmFhc2lzKSAqIFAuZ3Jvd3RoLmxpc2FUb290YWphOwogICAgaGluZCA9IFAuZ3Jvd3RoLmJhYXMgKyBsaXNhOwogICAgb3NhZCA9IFtbJ0Jhc2UgcHJpY2UgKHVwIHRvIDUwIGVtcGxveWVlcyknLCBldXIoUC5ncm93dGguYmFhcyldXQogICAgICAuY29uY2F0KGxpc2EgPyBbWyhlbXAtNTApKycgYWRkaXRpb25hbCBlbXBsb3llZXMgw5cg4oKsMycsIGV1cihsaXNhKV1dIDogW10pCiAgICAgIC5jb25jYXQoW1snVG90YWwgcGVyIG1vbnRoJywgZXVyKGhpbmQpXV0pOwogICAgbWFyZ2lzID0gJ0dyb3d0aCBpcyBhdmFpbGFibGUgb24gYW4gYW5udWFsIHN1YnNjcmlwdGlvbiBvbmx5Lic7CiAgICBpZiAoZW1wIDw9IFAubGlnaHQudG9vdGFqYWlkTWF4ICYmIGhpbmQgPj0gUC5saWdodC5iYWFzKSB7CiAgICAgIHRhc2UgPSAyOyBoaW5kID0gUC5saWdodC5iYWFzOyBvc2FkID0gW107CiAgICAgIG1hcmdpcyA9ICdBdCB5b3VyIGhlYWRjb3VudCBHcm93dGggd291bGQgY29tZSB0byAnICsgZXVyKFAuZ3Jvd3RoLmJhYXMgKyBsaXNhKSArCiAgICAgICAgJyBwZXIgbW9udGggd2l0aCB0aGUgYWRkaXRpb25hbC1lbXBsb3llZSBmZWUsIHNvIExpZ2h0IGlzIGNoZWFwZXIgYW5kIGdpdmVzIHlvdSBtb3JlLic7CiAgICAgIG1pa3MucHVzaCgnR3Jvd3RoIHdvdWxkIGNvc3QgbW9yZSB0aGFuIExpZ2h0IG9uY2UgdGhlIGFkZGl0aW9uYWwtZW1wbG95ZWUgZmVlIGlzIGFkZGVkJyk7CiAgICB9CiAgfSBlbHNlIGlmICh0YXNlID09PSAyKSB7CiAgICB2YXIgdGggPSBuZWVkLmhlYWx0aCA\/IFAubGlnaHQudGVydmlzZWtvbnRyb2xsTGlzYSA6IDA7CiAgICBoaW5kID0gUC5saWdodC5iYWFzICsgdGg7CiAgICBvc2FkID0gdGggPyBbWydCYXNlIHByaWNlJywgZXVyKFAubGlnaHQuYmFhcyldLCBbJ0hlYWx0aCBjaGVjayBpbnRlZ3JhdGlvbicsIGV1cih0aCldLCBbJ1RvdGFsIHBlciBtb250aCcsIGV1cihoaW5kKV1dIDogW107CiAgfSBlbHNlIGlmICh0YXNlID09PSAzKSB7CnZhciBuSyA9IE1hdGgubWF4KDAsIHVzZXJzIC0gUC5hZHZhbmNlZC5rYXN1dGFqYWlkQmFhc2lzKSwgbkEgPSBNYXRoLm1heCgwLCBsb2MgLSBQLmFkdmFuY2VkLmFzdWtvaHRpQmFhc2lzKTsKdmFyIGxpc2FLID0gbksgKiBQLmFkdmFuY2VkLmxpc2FLYXN1dGFqYSwgbGlzYUEgPSBuQSAqIFAuYWR2YW5jZWQubGlzYUFzdWtvaHQsIGxpc2FkID0gbGlzYUsgKyBsaXNhQTsKaGluZCA9IFAuYWR2YW5jZWQuYmFhcyArIGxpc2FkOwppZiAobGlzYWQpIHsKb3NhZCA9IFtbJ0Jhc2UgcHJpY2UgKDIwIHVzZXJzLCAxMCBsb2NhdGlvbnMpJywgZXVyKFAuYWR2YW5jZWQuYmFhcyldXQouY29uY2F0KGxpc2FLID8gW1sobksgPT09IDEgPyAnMSBhZGRpdGlvbmFsIHVzZXInIDogbksgKyAnIGFkZGl0aW9uYWwgdXNlcnMnKSArICcgw5cg4oKsMTUnLCBldXIobGlzYUspXV0gOiBbXSkKLmNvbmNhdChsaXNhQSA\/IFtbKG5BID09PSAxID8gJzEgYWRkaXRpb25hbCBsb2NhdGlvbicgOiBuQSArICcgYWRkaXRpb25hbCBsb2NhdGlvbnMnKSArICcgw5cg4oKsNTAnLCBldXIobGlzYUEpXV0gOiBbXSkKLmNvbmNhdChbWydUb3RhbCBwZXIgbW9udGgnLCBldXIoaGluZCldXSk7Cn0KaWYgKGxpc2FkID4gUC5hZHZhbmNlZC5iYWFzKSB7Cm1hcmdpcyA9ICdUaGUgZmVlIGZvciBhZGRpdGlvbmFsIHVzZXJzIGFuZCBsb2NhdGlvbnMgKCcgKyBldXIobGlzYWQpICsgJyBwZXIgbW9udGgpIGlzIGhpZ2hlciB0aGFuIHRoZSBwYWNrYWdlIGl0c2VsZi4gQXQgdGhpcyBzY2FsZSBpdCBpcyB3b3J0aCBhc2tpbmcgZm9yIGFuIEVudGVycHJpc2Ugb2ZmZXIuIFRoZSBjYWxjdWxhdGlvbiBiZWxvdyB1c2VzIEFkdmFuY2VkIHdpdGggdGhlIGFkZC1vbiBmZWVzLCBzbyB0aGUgcHJpY2UgeW91IGFncmVlIGlzIGxpa2VseSB0byBiZSBsb3dlci4nOwp9Cn0gZWxzZSB7CiAgICBtYXJnaXMgPSAnVGhlIEVudGVycHJpc2UgcHJpY2UgaXMgYWdyZWVkIGluIG5lZ290aWF0aW9uIOKAlCB3ZSBiYXNlIGl0IG9uIHlvdXIgbnVtYmVyIG9mIHVzZXJzIGFuZCBsb2NhdGlvbnMgYW5kIHRoZSBjdXN0b21pc2F0aW9ucyB5b3Ugd2FudC4nOwogIH0KICB2YXIga2V5ID0gWycnLCdncm93dGgnLCdsaWdodCcsJ2FkdmFuY2VkJywnZW50ZXJwcmlzZSddW3Rhc2VdOwogIHZhciBlZWxtaW5lID0gWycnLCcnLCdHcm93dGgnLCdMaWdodCcsJ0FkdmFuY2VkJ11bdGFzZV07CiAgcmV0dXJuIHsKICAgIGtleToga2V5LCB0YXNlOiB0YXNlLCBuaW1pOiBOSU1JW3Rhc2VdLCBoaW5kOiBoaW5kLCBvc2FkOiBvc2FkLCBtYXJnaXM6IG1hcmdpcywKICAgIG1pa3M6IG1pa3MsCiAgICBqdXVyZGU6IFNJU1Vba2V5XSwKICAgIGVlbG1pbmU6IGVlbG1pbmUsCiAgICBraXJqZWxkdXM6ICh0YXNlID09PSAxKQogICAgICA\/ICdUaGUgc21hbGxlc3QgcGFja2FnZTogY29uZmlybWF0aW9ucywgcmlzayBhc3Nlc3NtZW50LCBoZWFsdGggY2hlY2sgZGVhZGxpbmVzIGFuZCBub3RpZmljYXRpb25zLicKICAgICAgOiAnRXZlcnl0aGluZyBpbiAnICsgZWVsbWluZSArICcsIHBsdXMgd2hhdCBpcyBsaXN0ZWQgYmVsb3cuJwogIH07Cn0KZnVuY3Rpb24gdGVlbnVzZVBha2V0dChlbXAsIHZpc2l0LCByZXAsIGF1ZGl0LCByaXNrKXsKICB2YXIgVCA9IEhJTkQudGVlbnVzOwogIGlmIChlbXAgPiBULnByby50b290YWphaWRNYXgpIHsKICAgIHJldHVybiB7IG5pbWk6J1NlcnZpY2UsIHBlcnNvbmFsIG9mZmVyJywgaGluZDpudWxsLAogICAgICBraXJqZWxkdXM6J1RoZSBzZXJ2aWNlIHBhY2thZ2VzIGFyZSBwdXQgdG9nZXRoZXIgZm9yIGNvbXBhbmllcyBvZiB1cCB0byAxMDAgZW1wbG95ZWVzLiBGb3IgYSBsYXJnZXIgdGVhbSB3ZSBhZ3JlZSB0aGUgc2NvcGUgYW5kIHRoZSBwcmljZSBzZXBhcmF0ZWx5LicsIG1hcmdpczonJyB9OwogIH0KICBpZiAodmlzaXQgPj0gNCB8fCByaXNrKSB7CiAgICByZXR1cm4geyBuaW1pOidTZXJ2aWNlIFByZW1pdW0nLCBoaW5kOlQucHJlbWl1bS5oaW5kLAogICAgICBraXJqZWxkdXM6J0V2ZXJ5dGhpbmcgaW4gUHJvLCBwbHVzIDPigJM0IHZpc2l0cyBhIHllYXIgYW5kIHJlZ3VsYXIgdXBkYXRpbmcgb2YgdGhlIHJpc2sgYXNzZXNzbWVudCBpbiBsaW5lIHdpdGggY2hhbmdlcyBpbiB5b3VyIGNvbXBhbnkgYW5kIGluIHRoZSBsYXcuJywKICAgICAgbWFyZ2lzOidWQVQgaXMgYWRkZWQgdG8gdGhlIHByaWNlLicgfTsKICB9CiAgaWYgKHZpc2l0ID49IDIgfHwgcmVwIHx8IGF1ZGl0KSB7CiAgICByZXR1cm4geyBuaW1pOidTZXJ2aWNlIFBybycsIGhpbmQ6VC5wcm8uaGluZCwKICAgICAga2lyamVsZHVzOidFdmVyeXRoaW5nIGluIFN0YXJ0LCBwbHVzIDHigJMyIHZpc2l0cyBhIHllYXIsIGEgVklUUyBzcGVjaWFsaXN0IGFzIHlvdXIgcmVwcmVzZW50YXRpdmUgaW4gdGhlIFdvcmsgTGlmZSBJbmZvcm1hdGlvbiBTeXN0ZW0gYW5kIGFuIGludGVybmFsIGF1ZGl0IDHigJMyIHRpbWVzIGEgeWVhci4nLAogICAgICBtYXJnaXM6J1ZBVCBpcyBhZGRlZCB0byB0aGUgcHJpY2UuJyB9OwogIH0KICBpZiAoZW1wID4gVC5zdGFydC50b290YWphaWRNYXgpIHsKICAgIHJldHVybiB7IG5pbWk6J1NlcnZpY2UgUHJvJywgaGluZDpULnByby5oaW5kLAogICAgICBraXJqZWxkdXM6J0V2ZXJ5dGhpbmcgaW4gU3RhcnQsIHBsdXMgMeKAkzIgdmlzaXRzIGEgeWVhciwgYSBWSVRTIHNwZWNpYWxpc3QgYXMgeW91ciByZXByZXNlbnRhdGl2ZSBpbiB0aGUgV29yayBMaWZlIEluZm9ybWF0aW9uIFN5c3RlbSBhbmQgYW4gaW50ZXJuYWwgYXVkaXQgMeKAkzIgdGltZXMgYSB5ZWFyLicsCiAgICAgIG1hcmdpczonVkFUIGlzIGFkZGVkIHRvIHRoZSBwcmljZS4gU3RhcnQgaXMgbWVhbnQgZm9yIGNvbXBhbmllcyBvZiB1cCB0byA1MCBlbXBsb3llZXMsIHNvIGF0ICcgKyBlbXAgKyAnIGVtcGxveWVlcyBQcm8gaXMgdGhlIGJldHRlciBmaXQuJyB9OwogIH0KICByZXR1cm4geyBuaW1pOidTZXJ2aWNlIFN0YXJ0JywgaGluZDpULnN0YXJ0LmhpbmQsCiAgICBraXJqZWxkdXM6J1RoZSBmdWxsIHNlcnZpY2UsIGRlbGl2ZXJlZCByZW1vdGVseTogaW5kdWN0aW9ucywgZXF1aXBtZW50LCBoZWFsdGggY2hlY2tzLCB0cmFpbmluZyBkZWFkbGluZXMsIHRoZSBpbml0aWFsIHJpc2sgYXNzZXNzbWVudCBhbmQgYWR2aWNlLiBWSVRTIHNwZWNpYWxpc3RzIGFyZSByZWFjaGFibGUgdGhyb3VnaCB0aGUgY2hhdCB3aW5kb3cuJywKICAgIG1hcmdpczonVkFUIGlzIGFkZGVkIHRvIHRoZSBwcmljZS4nIH07Cn0KZnVuY3Rpb24gYWpha3VsdShlbXAsIGhpcmVzLCByb2xlcywgbGlpZGVzdHVzKXsKICB2YXIgaWt2S29yZGkgPSBlbXAgKiBudW0oJ2FJa3YnKTsKICB2YXIgdGsxID0gbGlpZGVzdHVzID8gMC4wNSA6ICgkKCd0a0V4Y2VsJykuY2hlY2tlZCA\/IDAuMTUgOiAwLjI1KTsKICB2YXIgcmVhZCA9IFsKICAgIFsnSW5kdWN0aW5nIGEgbmV3IGVtcGxveWVlJywgICAgICAgIGhpcmVzICogbnVtKCdhSnVoMCcpLCAgICAgICAgaGlyZXMgKiBudW0oJ2FKdWgxJyksICAgICAnbSddLAogICAgWydJc3N1aW5nIGFuZCB0cmFja2luZyBlcXVpcG1lbnQnLCAgaWt2S29yZGkgKiAwLjMzLCAgICAgICAgICAgICBpa3ZLb3JkaSAqIDAuMDgsICAgICAgICAgICdtJ10sCiAgICBbJ0FycmFuZ2luZyBoZWFsdGggY2hlY2tzJywgICAgICAgICBlbXAgKiBudW0oJ2FUazAnKSwgICAgICAgICAgIGVtcCAqIHRrMSwgICAgICAgICAgICAgICAgJ20nXSwKICAgIFsnT3ZlcnZpZXcgb2YgaGVhbHRoIGNoZWNrcycsICAgICAgIDQgKiAyLjAsICAgICAgICAgICAgICAgICAgICAgNCAqIDAuMjUsICAgICAgICAgICAgICAgICAnbSddLAogICAgWydEb2N1bWVudHMgYW5kIGRlYWRsaW5lcycsICAgICAgICAgMTIgKiBudW0oJ2FEb2swJyksICAgICAgICAgICAxMiAqIG51bSgnYURvazEnKSwgICAgICAgICdtJ10sCiAgICBbJ1Jpc2sgYXNzZXNzbWVudCcsICAgICAgICAgICAgICAgICByb2xlcyAqIG51bSgnYVJhMCcpLCAgICAgICAgIHJvbGVzICogbnVtKCdhUmExJyksICAgICAgJ2gnXSwKICAgIFsnUHJlc2VudGluZyB0aGUgcmlzayBhc3Nlc3NtZW50JywgIGVtcCAqIG51bSgnYVJhdDAnKSwgICAgICAgICAgZW1wICogbnVtKCdhUmF0MScpLCAgICAgICAnaCddLAogICAgWydJbnZlc3RpZ2F0aW5nIGFjY2lkZW50cycsICAgICAgICAgbnVtKCdhQWNjJykgKiBudW0oJ2FBY2MwJyksICBudW0oJ2FBY2MnKSAqIG51bSgnYUFjYzEnKSwnaCddLAogICAgWydTYWZldHkgZGV2aWF0aW9ucycsICAgICAgICAgICAgICAgbnVtKCdhRGV2JykgKiBudW0oJ2FEZXYwJyksICBudW0oJ2FEZXYnKSAqIG51bSgnYURldjEnKSwnaCddCiAgXTsKICB2YXIgZW5uZSA9IDAsIHBhcmFzdCA9IDAsIGVubmVNID0gMCwgcGFyYXN0TSA9IDA7CiAgcmVhZC5mb3JFYWNoKGZ1bmN0aW9uKHIpewogICAgZW5uZSArPSByWzFdOyBwYXJhc3QgKz0gclsyXTsKICAgIGlmIChyWzNdID09PSAnbScpIHsgZW5uZU0gKz0gclsxXTsgcGFyYXN0TSArPSByWzJdOyB9CiAgfSk7CiAgcmV0dXJuIHsgcmVhZDpyZWFkLCBlbm5lS3V1czplbm5lLzEyLCBwYXJhc3RLdXVzOnBhcmFzdC8xMiwKICAgICAgICAgICBlbm5lS3V1c006ZW5uZU0vMTIsIHBhcmFzdEt1dXNNOnBhcmFzdE0vMTIgfTsKfQpmdW5jdGlvbiBjYWxjKCl7CiAgdmFyIGVtcCAgID0gTWF0aC5tYXgoMSwgTWF0aC5yb3VuZChudW0oJ2VtcCcpKSk7CiAgdmFyIGhpcmVzID0gTWF0aC5tYXgoMCwgTWF0aC5yb3VuZChudW0oJ2hpcmVzJykpKTsKICB2YXIgd2hvICAgPSByYWRpbygnd2hvJyk7CiAgdmFyIHByZWYgID0gcmFkaW8oJ3ByZWYnKTsKICB2YXIgcyA9IHNvb3ZpdGFTdXVuZChlbXAsIHdobywgcHJlZik7CiAgdmFyIHN1dW5kID0gd2luZG93Ll9fdmtPdmVycmlkZSB8fCBzLnN1dW5kOwogICQoJ3JlY1RpdGxlJykudGV4dENvbnRlbnQgPSAoc3V1bmQgPT09ICdwbGF0dm9ybScpID8gJ1ZJVFMgUGxhdGZvcm0g4oCUIHlvdSBkbyBpdCB5b3Vyc2VsdmVzJyA6ICdWSVRTIFNlcnZpY2Ug4oCUIHdlIGRvIGl0IGZvciB5b3UnOwogICQoJ3JlY1N1YicpLmlubmVySFRNTCA9IChzdXVuZCA9PT0gJ3BsYXR2b3JtJykKICAgID8gJ1NvZnR3YXJlIHlvdXIgb3duIHBlcnNvbiB1c2VzIHRvIHJ1biBvY2N1cGF0aW9uYWwgaGVhbHRoIGFuZCBzYWZldHkuJwogICAgOiAnT3VyIHNwZWNpYWxpc3QgdGFrZXMgb3ZlciB0aGUgZHV0aWVzIGFuZCB1c2VzIHRoZSBzYW1lIHBsYXRmb3JtIHRvIGRvIGl0Lic7CiAgJCgncmVjV2h5JykuaW5uZXJIVE1MID0gJzxiPldoeTo8L2I+ICcgKyBzLm1pa3MgKyAocy5raW5kZWwgPyAnJyA6ICcgSXQgaXMgYSBjbG9zZSBjYWxsIOKAlCBpbiB5b3VyIGNhc2UgZWl0aGVyIGNvdWxkIHdvcmsuJyk7CiAgJCgncmVjQWx0JykuaW5uZXJIVE1MID0gd2luZG93Ll9fdmtPdmVycmlkZQogICAgPyAnWW91IGFyZSBsb29raW5nIGF0IHRoZSBvcHRpb24geW91IHBpY2tlZCB5b3Vyc2VsZi4gPGEgaWQ9InJlY0JhY2siPkJhY2sgdG8gdGhlIHJlY29tbWVuZGF0aW9uPC9hPicKICAgIDogJ1dvdWxkIHlvdSBsaWtlIHRvIHNlZSB0aGUgb3RoZXIgb3B0aW9uPyA8YSBpZD0icmVjU3dhcCI+U2VlIHRoZSAnICsgKHN1dW5kID09PSAncGxhdHZvcm0nID8gJ3NlcnZpY2UnIDogJ3BsYXRmb3JtJykgKyAnIG9wdGlvbjwvYT4nOwogIHZhciBlbCA9ICQoJ3JlY1N3YXAnKTsgaWYgKGVsKSBlbC5vbmNsaWNrID0gZnVuY3Rpb24oKXsgd2luZG93Ll9fdmtPdmVycmlkZSA9IChzdXVuZCA9PT0gJ3BsYXR2b3JtJykgPyAndGVlbnVzJyA6ICdwbGF0dm9ybSc7IGNhbGMoKTsgfTsKICBlbCA9ICQoJ3JlY0JhY2snKTsgICAgIGlmIChlbCkgZWwub25jbGljayA9IGZ1bmN0aW9uKCl7IHdpbmRvdy5fX3ZrT3ZlcnJpZGUgPSBudWxsOyBjYWxjKCk7IH07CiAgc2hvdygnYnJhbmNoUGxhdHZvcm0nLCBzdXVuZCA9PT0gJ3BsYXR2b3JtJyk7CiAgc2hvdygnYnJhbmNoVGVlbnVzJywgICBzdXVuZCA9PT0gJ3RlZW51cycpOwogIHNob3coJ3BhY2tCb3gnLCB0cnVlKTsKICBzaG93KCdjdGFCb3gnLCB0cnVlKTsKICB2YXIgcGFrZXR0LCBsaWlkZXN0dXMgPSBmYWxzZTsKICBpZiAoc3V1bmQgPT09ICdwbGF0dm9ybScpIHsKICAgIHZhciB1c2VycyA9IE1hdGgubWF4KDEsIE1hdGgucm91bmQobnVtKCd1c2VycycpKSk7CiAgICB2YXIgbG9jICAgPSBNYXRoLm1heCgxLCBNYXRoLnJvdW5kKG51bSgnbG9jJykpKTsKICAgIGxpaWRlc3R1cyA9ICQoJ25IZWFsdGgnKS5jaGVja2VkOwogICAgcGFrZXR0ID0gcGxhdHZvcm1pUGFrZXR0KGVtcCwgdXNlcnMsIGxvYywgewogICAgICByZXBvcnRzOiAkKCduUmVwb3J0cycpLmNoZWNrZWQsIHNzbzogJCgnblNzbycpLmNoZWNrZWQsCiAgICAgIGhlYWx0aDogbGlpZGVzdHVzLCBpbmNpZGVudDogJCgnbkluY2lkZW50JykuY2hlY2tlZCwgaHI6ICQoJ25IcicpLmNoZWNrZWQsCiAgICAgIGVtYWlsOiAkKCduRW1haWwnKS5jaGVja2VkCiAgICB9KTsKICAgIGlmIChwYWtldHQudGFzZSA+PSAzKSBsaWlkZXN0dXMgPSB0cnVlOwogIH0gZWxzZSB7CiAgICBsaWlkZXN0dXMgPSB0cnVlOwogICAgcGFrZXR0ID0gdGVlbnVzZVBha2V0dChlbXAsIHBhcnNlSW50KHJhZGlvKCd2aXNpdCcpLDEwKSwgJCgndFJlcCcpLmNoZWNrZWQsICQoJ3RBdWRpdCcpLmNoZWNrZWQsICQoJ3RSaXNrJykuY2hlY2tlZCk7CiAgfQogIHZhciB2aXRzSGluZCA9IHBha2V0dC5oaW5kLCB2aXRzTmltaSA9IHBha2V0dC5uaW1pOwogICQoJ3BhY2tOYW1lJykudGV4dENvbnRlbnQgPSB2aXRzTmltaTsKICAkKCdwYWNrRGVzYycpLnRleHRDb250ZW50ID0gcGFrZXR0LmtpcmplbGR1czsKICAkKCdwYWNrUHJpY2UnKS5pbm5lckhUTUwgPSAodml0c0hpbmQgPT09IG51bGwpID8gJ0FzayBmb3IgYW4gb2ZmZXInIDogZXVyKHZpdHNIaW5kKSArICc8c21hbGw+cGVyIG1vbnRoPC9zbWFsbD4nOwogICQoJ3BhY2tCcmVhaycpLmlubmVySFRNTCA9IChwYWtldHQub3NhZCAmJiBwYWtldHQub3NhZC5sZW5ndGggPiAyKQogICAgPyBwYWtldHQub3NhZC5tYXAoZnVuY3Rpb24ocil7IHJldHVybiAnPGxpPjxzcGFuPicrclswXSsnPC9zcGFuPjxzcGFuPicrclsxXSsnPC9zcGFuPjwvbGk+JzsgfSkuam9pbignJykgOiAnJzsKICAkKCdwYWNrTm90ZScpLmlubmVySFRNTCA9IHBha2V0dC5tYXJnaXMgfHwgJyc7CiAgaWYgKHN1dW5kID09PSAncGxhdHZvcm0nKSB7CiAgICAkKCdwYWNrV2h5JykuaW5uZXJIVE1MID0gcGFrZXR0Lm1pa3MgJiYgcGFrZXR0Lm1pa3MubGVuZ3RoCiAgICAgID8gJzxiPldoeSB0aGlzIHBhY2thZ2U6PC9iPiAnICsgcGFrZXR0Lm1pa3Muam9pbignLCAnKSArICcuJwogICAgICA6ICc8Yj5XaHkgdGhpcyBwYWNrYWdlOjwvYj4geW91ciBuZWVkcyBmaXQgaW50byB0aGUgc21hbGxlc3QgcGFja2FnZSDigJQgdGhlcmUgaXMgbm8gcmVhc29uIHRvIHBheSBmb3IgYSBiaWdnZXIgb25lLic7CiAgICB2YXIgcGVhbGtpcmkgPSAocGFrZXR0LnRhc2UgPT09IDEpID8gJ1doYXQgaXMgaW4gdGhlIHBhY2thZ2UnIDogJ1doYXQgeW91IGdldCBvbiB0b3Agb2YgJyArIHBha2V0dC5lZWxtaW5lOwogICAgJCgncGFja0NvbnRlbnQnKS5pbm5lckhUTUwgPSAnPGgzIHN0eWxlPSJmb250LXNpemU6MTZweDttYXJnaW46MCAwIDEwcHgiPicgKyBwZWFsa2lyaSArICc8L2gzPicgKwogICAgICAnPHVsIGNsYXNzPSJ2di1saXN0IHZrLXBsdXMiPicgKyBwYWtldHQuanV1cmRlLm1hcChmdW5jdGlvbih4KXsgcmV0dXJuICc8bGk+Jyt4Kyc8L2xpPic7IH0pLmpvaW4oJycpICsgJzwvdWw+JyArCiAgICAgIChwYWtldHQudGFzZSA+IDEgPyAnPHAgc3R5bGU9ImZvbnQtc2l6ZToxNXB4O21hcmdpbjoxMHB4IDAgMCI+UGx1cyBldmVyeXRoaW5nIHRoYXQgaXMgaW4gJyArIHBha2V0dC5lZWxtaW5lICsgJy48L3A+JyA6ICcnKTsKICAgICQoJ3BhY2tDb250ZW50JykuY2xhc3NMaXN0LnJlbW92ZSgndmstaGlkZGVuJyk7CiAgfSBlbHNlIHsKICAgICQoJ3BhY2tXaHknKS5pbm5lckhUTUwgPSAnJzsKICAgICQoJ3BhY2tDb250ZW50JykuaW5uZXJIVE1MID0gJyc7CiAgfQogIHNob3coJ2NtcEJveCcsIHZpdHNIaW5kICE9PSBudWxsKTsKICBpZiAodml0c0hpbmQgPT09IG51bGwpIHJldHVybjsKICB2YXIgb25UZWVudXMgPSAoc3V1bmQgPT09ICd0ZWVudXMnKTsKICB2YXIgcm9sZXMgPSBNYXRoLm1heCgxLCBNYXRoLnJvdW5kKG51bSgncm9sZXMnKSkpOwogIHZhciBhID0gYWpha3VsdShlbXAsIGhpcmVzLCByb2xlcywgbGlpZGVzdHVzKTsKICB2YXIgdml0c1R1bm5pZEt1dXMgPSBvblRlZW51cyA\/IGEuZW5uZUt1dXMgKiAwLjIgOiBhLnBhcmFzdEt1dXM7CiAgdmFyIHNhYXN0VHVubmlkS3V1cyA9IGEuZW5uZUt1dXMgLSB2aXRzVHVubmlkS3V1czsKICB2YXIgX19zRT0wLF9fc1Y9MDsgdmFyIHRibCA9IGEucmVhZC5tYXAoZnVuY3Rpb24ocil7IHZhciBlID0gTWF0aC5yb3VuZCgoclsxXS8xMikqMTApLzEwLCB2ID0gTWF0aC5yb3VuZCgob25UZWVudXMgPyBNYXRoLm1pbigoclsxXS8xMikqMC4yLCByWzJdLzEyKSA6IHJbMl0vMTIpKjEwKS8xMDsgX19zRSs9ZTsgX19zVis9djsgaWYgKGUgPCAwLjA1KSByZXR1cm4gJyc7CiAgICB2YXIgdGFnID0gKHJbM10gPT09ICdoJykgPyAnIDxzcGFuIHRpdGxlPSJFc3RpbWF0ZSBmb3IgYSBuZXcgbW9kdWxlLCBub3QgeWV0IG1lYXN1cmVkIiBzdHlsZT0iY29sb3I6I0I0NDQxRjtmb250LXdlaWdodDo2MDAiPio8L3NwYW4+JyA6ICcnOwogICAgcmV0dXJuICc8dHI+PHRkPicrclswXSt0YWcrJzwvdGQ+PHRkPicraChlKSsnIGg8L3RkPjx0ZD4nK2godikrJyBoPC90ZD48dGQgY2xhc3M9InZrLXNhdmUiPicraChlLXYpKycgaDwvdGQ+PC90cj4nOwogIH0pLmpvaW4oJycpOwogIF9fc0U9TWF0aC5yb3VuZChfX3NFKjEwKS8xMDsgX19zVj1NYXRoLnJvdW5kKF9fc1YqMTApLzEwOyBhLmVubmVLdXVzPV9fc0U7IHZpdHNUdW5uaWRLdXVzPV9fc1Y7IHNhYXN0VHVubmlkS3V1cz1NYXRoLnJvdW5kKChfX3NFLV9fc1YpKjEwKS8xMDsgJCgndGltZVRibCcpLmlubmVySFRNTCA9CiAgICAnPHRyPjx0aD5BY3Rpdml0eTwvdGg+PHRoPlRvZGF5PC90aD48dGg+V2l0aCBWSVRTPC90aD48dGg+U2F2ZWQ8L3RoPjwvdHI+JyArIHRibCArCiAgICAnPHRyPjx0ZD5Ub3RhbCBwZXIgbW9udGg8L3RkPjx0ZD4nK2goYS5lbm5lS3V1cykrJyBoPC90ZD48dGQ+JytoKHZpdHNUdW5uaWRLdXVzKSsnIGg8L3RkPjx0ZCBjbGFzcz0idmstc2F2ZSI+JytoKHNhYXN0VHVubmlkS3V1cykrJyBoPC90ZD48L3RyPic7CiAgJCgndGJsTm90ZScpLmlubmVySFRNTCA9ICc8Yj4qPC9iPiBUaGUgcmlzayBhc3Nlc3NtZW50IGFuZCBpbmNpZGVudCByb3dzIGFyZSBlc3RpbWF0ZXMgZm9yIG5ldyBtb2R1bGVzLCBub3QgbWVhc3VyZWQgd2l0aCBjbGllbnRzLiAnICsKICAgICdXaXRob3V0IHRoZW0gdGhlIHNhdmluZyB3b3VsZCBiZSA8Yj4nICsgaChhLmVubmVLdXVzTSAtIChvblRlZW51cyA\/IGEuZW5uZUt1dXNNKjAuMiA6IGEucGFyYXN0S3V1c00pKSArICcgaCBwZXIgbW9udGg8L2I+IOKAlCAnICsKICAgICdmcm9tIHRoZSBhY3Rpdml0aWVzIG1lYXN1cmVkIGluIHRoZSBpbnRlcnZpZXdzIGFsb25lLic7CiAgdmFyIGRvZXIgPSByYWRpbygnZG9lcicpOwogIHNob3coJ2J1eVJvdycsIGRvZXIgPT09ICdidXknKTsKICAkKCdkb2VySGludCcpLmlubmVySFRNTCA9CiAgICBkb2VyID09PSAnb3duJyAgPyAnV2UgdXNlIHRoZSBob3VybHkgY29zdCBvZiB5b3VyIG93biBwZXJzb24sIGVtcGxveWVyIHRheGVzIGluY2x1ZGVkLiBZb3UgY2FuIGNoYW5nZSB0aGUgaG91cmx5IHJhdGUgYmVsb3cgdW5kZXIgXHUyMDFjV2hhdCB0aGlzIGNhbGN1bGF0aW9uIGlzIG1hZGUgb2YgYW5kIHdoYXQgeW91IGNhbiBjaGFuZ2VcdTIwMWQuJwogIDogZG9lciA9PT0gJ2J1eScgID8gJ1dlIHVzZSB0aGUgbWFya2V0IHJhdGUgZm9yIGFuIG9jY3VwYXRpb25hbCBoZWFsdGggYW5kIHNhZmV0eSBzcGVjaWFsaXN0LiBJZiB5b3UgaGF2ZSBhIGZpeGVkIG1vbnRobHkgZmVlLCBlbnRlciBpdCBiZWxvdy4nCiAgOiAnSWYgbm9ib2R5IHJlYWxseSBkb2VzIHRoaXMgdG9kYXksIHRoZXJlIGlzIG5vIGN1cnJlbnQgY29zdCB0byBjb21wYXJlIGFnYWluc3QuIEluc3RlYWQgd2Ugc2hvdyA8Yj53aGF0IHRoZSBzYW1lIHdvcmsgd291bGQgY29zdCBpZiB5b3UgYm91Z2h0IGl0IGluPC9iPiDigJQgdGhhdCBpcyBhIGZhaXIgcmVmZXJlbmNlIHBvaW50LCBidXQgaXQgaXMgbm90IG1vbmV5IHlvdSBhcmUgc3BlbmRpbmcgdG9kYXkuJzsKICB2YXIgcmF0ZU93biA9IG51bSgnYVJhdGUnKSwgcmF0ZUJ1eSA9IG51bSgnYVJhdGVCdXknKSwga3V1dGFzdSA9IG51bSgnYnV5Jyk7CiAgdmFyIHJpc2tLdXVzID0gbnVtKCdhUmlzaycpIC8gMzY7CiAgdmFyIG5vd1JpZGEsIG5vd0tva2t1OwogIGlmIChkb2VyID09PSAnb3duJykgewogICAgbm93S29ra3UgPSBhLmVubmVLdXVzICogcmF0ZU93bjsKICAgIG5vd1JpZGEgPSBbJ1lvdXIgb3duIHBlcnNvbuKAmXMgdGltZSAoJyArIGgoYS5lbm5lS3V1cykgKyAnIGggw5cgJyArIGV1cihyYXRlT3duKSArICcpJywgZXVyKG5vd0tva2t1KV07CiAgfSBlbHNlIGlmIChkb2VyID09PSAnYnV5JyAmJiBrdXV0YXN1ID4gMCkgewogICAgbm93S29ra3UgPSBrdXV0YXN1OwogICAgbm93UmlkYSA9IFsnTW9udGhseSBmZWUgZm9yIHRoZSBib3VnaHQtaW4gc2VydmljZScsIGV1cihrdXV0YXN1KV07CiAgfSBlbHNlIGlmIChkb2VyID09PSAnYnV5JykgewogICAgbm93S29ra3UgPSBhLmVubmVLdXVzICogcmF0ZUJ1eTsKICAgIG5vd1JpZGEgPSBbJ0V4dGVybmFsIHNwZWNpYWxpc3QgKCcgKyBoKGEuZW5uZUt1dXMpICsgJyBoIMOXICcgKyBldXIocmF0ZUJ1eSkgKyAnKScsIGV1cihub3dLb2trdSldOwogIH0gZWxzZSB7CiAgICBub3dLb2trdSA9IGEuZW5uZUt1dXMgKiByYXRlQnV5OwogICAgbm93UmlkYSA9IFsnVGhlIHNhbWUgd29yayBib3VnaHQgZnJvbSBhIHNwZWNpYWxpc3QgKCcgKyBoKGEuZW5uZUt1dXMpICsgJyBoIMOXICcgKyBldXIocmF0ZUJ1eSkgKyAnKScsIGV1cihub3dLb2trdSldOwogIH0KICBub3dLb2trdSArPSByaXNrS3V1czsKICB2YXIgamFhYkFlZyA9IHZpdHNUdW5uaWRLdXVzICogcmF0ZU93bjsKICB2YXIgdml0c0tva2t1ID0gdml0c0hpbmQgKyBqYWFiQWVnOwogICQoJ25vd1RvdGFsJykudGV4dENvbnRlbnQgPSBldXIobm93S29ra3UpOwogIHJvd3MoJCgnbm93Um93cycpLCBbbm93UmlkYV0uY29uY2F0KHJpc2tLdXVzID8gW1snUmlzayBhc3Nlc3NtZW50IChzcHJlYWQgb3ZlciAzIHllYXJzKScsIGV1cihyaXNrS3V1cyldXSA6IFtdKSk7CiAgJCgndml0c0hlYWQnKS50ZXh0Q29udGVudCA9ICdUb3RhbCBjb3N0IHdpdGggJyArIHZpdHNOaW1pOwogICQoJ3ZpdHNUb3RhbCcpLnRleHRDb250ZW50ID0gZXVyKHZpdHNLb2trdSk7CiAgcm93cygkKCd2aXRzUm93cycpLCBbCiAgICBbJ1BhY2thZ2UgcHJpY2UnLCBldXIodml0c0hpbmQpXSwKICAgIFsnWW91ciBvd24gdGltZSB0aGF0IHJlbWFpbnMgKCcgKyBoKHZpdHNUdW5uaWRLdXVzKSArICcgaCDDlyAnICsgZXVyKHJhdGVPd24pICsgJyknLCBldXIoamFhYkFlZyldCiAgXSk7CiAgdmFyIF9fYW49JCgndmtBcnZlTm90ZScpOyBpZihfX2FuKXsgX19hbi5pbm5lckhUTUwgPSAnWW91ciBpbnZvaWNlIGZyb20gVklUUyBpcyA8Yj4nICsgZXVyKHZpdHNIaW5kKSArICcgcGVyIG1vbnRoPC9iPiDigJQgdGhhdCBpcyB3aGF0IHlvdSBhY3R1YWxseSBwYXkgdXMuIFRoZSByZW1haW5pbmcgJyArIGV1cihqYWFiQWVnKSArICcgaXMgeW91ciBvd24gdGVhbVx1MjAxOXMgdGltZSwgd2hpY2ggeW91IHN0aWxsIHNwZW5kIHdpdGggVklUUy4nICsgKGRvZXIgIT09ICdvd24nID8gJyBXZSB2YWx1ZSB0aGF0IHRpbWUgYXQgeW91ciBvd24gaG91cmx5IGNvc3QgKCcgKyBldXIocmF0ZU93bikgKyAnL2gpLCBiZWNhdXNlIGFuIG91dHNvdXJjZWQgc3BlY2lhbGlzdCBob3VyICgnICsgZXVyKHJhdGVCdXkpICsgJy9oKSBpcyBubyBsb25nZXIgbmVlZGVkIGZvciBpdC4nIDogJycpOyB9IHZhciB2YWhlID0gbm93S29ra3UgLSB2aXRzS29ra3U7CiAgdmFyIHYgPSAkKCd2ZXJkaWN0JyksIGh5cG8gPSAoZG9lciA9PT0gJ25vbmUnKTsKICBpZiAodmFoZSA+PSAyNSkgewogICAgdi5jbGFzc05hbWUgPSAndmstdmVyZGljdCB3aW4nOwogICAgdi5pbm5lckhUTUwgPSAoaHlwbyA\/ICdCdXlpbmcgdGhlIHNhbWUgd29yayBmcm9tIGEgc3BlY2lhbGlzdCB3b3VsZCBjb3N0IHJvdWdobHkgJyArIGV1cihub3dLb2trdSkgKyAnIHBlciBtb250aC4gPGI+JyArIHZpdHNOaW1pICsgJyBpcyAnICsgZXVyKHZhaGUpICsgJyBwZXIgbW9udGggY2hlYXBlcjwvYj4nCiAgICAgICAgICAgICAgICAgICAgICAgIDogJ0Jhc2VkIG9uIHRoZXNlIGFuc3dlcnMgPGI+JyArIHZpdHNOaW1pICsgJyB3b3VsZCBiZSAnICsgZXVyKHZhaGUpICsgJyBwZXIgbW9udGggY2hlYXBlcjwvYj4nKSArCiAgICAgICcg4oCUICcgKyBldXIoTWF0aC5yb3VuZCh2YWhlKSoxMikgKyAnIGEgeWVhci4gT24gdG9wIG9mIHRoYXQgeW91IGZyZWUgdXAgPGI+JyArIGgoc2Fhc3RUdW5uaWRLdXVzKSArICcgaG91cnMgYSBtb250aDwvYj4uJzsKICB9IGVsc2UgaWYgKE1hdGguYWJzKHZhaGUpIDwgMjUpIHsKICAgIHYuY2xhc3NOYW1lID0gJ3ZrLXZlcmRpY3Qgd2luJzsKICAgIHYuaW5uZXJIVE1MID0gJ0Jhc2VkIG9uIHRoZXNlIGFuc3dlcnMgdGhlIGNvc3QgaXMgPGI+cHJhY3RpY2FsbHkgdGhlIHNhbWU8L2I+IChhIGRpZmZlcmVuY2Ugb2YgJyArIGV1cihNYXRoLmFicyh2YWhlKSkgKwogICAgICAnIHBlciBtb250aCksIGJ1dCB5b3UgZ2V0IGJhY2sgPGI+JyArIGgoc2Fhc3RUdW5uaWRLdXVzKSArICcgaG91cnMgYSBtb250aDwvYj4uJzsKICB9IGVsc2UgewogICAgdi5jbGFzc05hbWUgPSAndmstdmVyZGljdCBsb3NlJzsKICAgIHZhciBhbHQgPSBvblRlZW51cwogICAgICA\/ICdJbiB0aGF0IGNhc2UgdGFrZSBhIGxvb2sgYXQgdGhlIDxhIGhyZWY9IiMiIGlkPSJ0b0FsdCIgc3R5bGU9ImNvbG9yOmluaGVyaXQ7dGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZSI+cGxhdGZvcm0gcGFja2FnZXM8L2E+IOKAlCBpZiB5b3UgYWxyZWFkeSBoYXZlIHRoZSBwZXJzb24sIHRoZSB0b29sIGNvc3RzIGxlc3MgdGhhbiB0aGUgc2VydmljZS4nCiAgICAgIDogJ0luIHRoYXQgY2FzZSB0YWtlIGEgbG9vayBhdCB0aGUgPGEgaHJlZj0iIyIgaWQ9InRvQWx0IiBzdHlsZT0iY29sb3I6aW5oZXJpdDt0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lIj5zZXJ2aWNlIHBhY2thZ2VzPC9hPiDigJQgdGhleSBzdGFydCBhdCDigqw5OSBwZXIgbW9udGggYW5kIGluY2x1ZGUgYSBzcGVjaWFsaXN04oCZcyB3b3JrIGFzIHdlbGwuJzsKICAgIHYuaW5uZXJIVE1MID0gJ1RoZSBob25lc3QgYW5zd2VyOiBiYXNlZCBvbiB0aGVzZSBhbnN3ZXJzIDxiPicgKyB2aXRzTmltaSArICcgd291bGQgYmUgJyArIGV1cigtdmFoZSkgKyAnIHBlciBtb250aCBtb3JlIGV4cGVuc2l2ZTwvYj4uICcgKwogICAgICAnV2hhdCB5b3UgZ2V0IGZvciBpdCBpcyA8Yj4nICsgaChzYWFzdFR1bm5pZEt1dXMpICsgJyBob3VycyBhIG1vbnRoPC9iPiBvZiB5b3VyIG93biBwZXJzb27igJlzIHRpbWUgYW5kIHRoZSBjZXJ0YWludHkgdGhhdCBkZWFkbGluZXMgYXJlIG5vdCBtaXNzZWQuICcgKwogICAgICAnSWYgdGltZSBpcyBub3QgeW91ciBib3R0bGVuZWNrLCBpdCBkb2VzIG5vdCBwYXkgZm9yIGl0c2VsZiBpbiBtb25leSB5ZXQuICcgKyBhbHQ7CiAgICB2YXIgdHQgPSAkKCd0b0FsdCcpOwogICAgaWYgKHR0KSB0dC5vbmNsaWNrID0gZnVuY3Rpb24oZSl7IGUucHJldmVudERlZmF1bHQoKTsgd2luZG93Ll9fdmtPdmVycmlkZSA9IG9uVGVlbnVzID8gJ3BsYXR2b3JtJyA6ICd0ZWVudXMnOyBjYWxjKCk7CiAgICAgIHdpbmRvdy5zY3JvbGxUbyh7dG9wOiAkKCdyZWMnKS5vZmZzZXRUb3AgLSAyMCwgYmVoYXZpb3I6J3Ntb290aCd9KTsgfTsKICB9CiAgdmFyIGdhaW4gPSBbCiAgICAnPGI+JyArIGgoc2Fhc3RUdW5uaWRLdXVzKSArICcgaG91cnMgYSBtb250aDwvYj4gYmFjayDigJQgJyArIE1hdGgucm91bmQoc2Fhc3RUdW5uaWRLdXVzKjEyKSArICcgaG91cnMgYSB5ZWFyJywKICAgICc8Yj5PbmUgb3ZlcnZpZXcgaW4gb25lIHBsYWNlOjwvYj4gd2hvIGhhcyBiZWVuIGluZHVjdGVkLCB3aG9zZSBoZWFsdGggY2hlY2sgaXMgZXhwaXJpbmcsIHdoYXQgaXMgc3RpbGwgdW5jb25maXJtZWQnLAogICAgJzxiPkRlYWRsaW5lIG5vdGlmaWNhdGlvbnM8L2I+IOKAlCB5b3UgZG8gbm90IGhhdmUgdG8gcmVtZW1iZXIgdGhlbSB5b3Vyc2VsZicsCiAgICAnPGI+RW1wbG95ZWVzIG9yZGVyIGVxdWlwbWVudCBmcm9tIHRoZSBwb3J0YWwgdGhlbXNlbHZlczwvYj4g4oCUIGZyb20gYWNjZXNzIGNhcmRzIGFuZCBwaG9uZXMgdG8gcHJvdGVjdGl2ZSBnZWFyOyB5b3UgYXBwcm92ZSwgYW5kIHRoZSByZWNvcmRzIGJ1aWxkIHVwIG9uIHRoZWlyIG93bicsCiAgICAnPGI+RXZpZGVuY2UgdGhhdCBzdGFuZHMgdXAgdG8gaW5zcGVjdGlvbjwvYj4g4oCUIGEgY29uZmlybWF0aW9uIGNhbm5vdCBiZSBjaGFuZ2VkIGFmdGVyIHRoZSBmYWN0JywKICAgICc8Yj5QcmVzZW50aW5nIHRoZSByaXNrIGFzc2Vzc21lbnQgcmVzdWx0cyBpcyBhbiBlbXBsb3llciBvYmxpZ2F0aW9uPC9iPiDigJQgYSBjb21wbGV0ZWQgYXNzZXNzbWVudCBwcm9kdWNlcyByb2xlLWJhc2VkIGluc3RydWN0aW9ucyB0aGF0IHlvdSBzZW5kIGZvciBjb25maXJtYXRpb24gbGlrZSBhbnkgb3RoZXIgaW5zdHJ1Y3Rpb24nCiAgXTsKICBpZiAoIWxpaWRlc3R1cyAmJiAhb25UZWVudXMgJiYgISQoJ3RrRXhjZWwnKS5jaGVja2VkKSB7CiAgICBnYWluLnB1c2goJzxiPldvcnRoIG5vdGluZzo8L2I+IHdpdGhvdXQgdGhlIGludGVncmF0aW9uIG9yIGFuIEV4Y2VsIGltcG9ydCwgZW50ZXJpbmcgaGVhbHRoIGNoZWNrIGRlY2lzaW9ucyBieSBoYW5kIHN0YXlzIHdpdGggeW91LiBTZXZlcmFsIGNsaWVudHMgcmFpc2VkIHRoaXMgb24gdGhlaXIgb3duLicpOwogIH0KICAkKCdnYWluTGlzdCcpLmlubmVySFRNTCA9IGdhaW4ubWFwKGZ1bmN0aW9uKHgpeyByZXR1cm4gJzxsaT4nK3grJzwvbGk+JzsgfSkuam9pbignJyk7Cn0KZnVuY3Rpb24gc2VrdG9yTXV1dHVzKCl7CiAgdmFyIHMgPSBTRUtUT1JbJCgnc2VjdG9yJykudmFsdWVdOwogIHZhciBlbXAgPSBNYXRoLm1heCgxLCBNYXRoLnJvdW5kKG51bSgnZW1wJykpKTsKICAkKCdoaXJlcycpLnZhbHVlID0gTWF0aC5yb3VuZChlbXAgKiBzLnZvb2xhdnVzKTsKICAkKCdoaXJlc1InKS52YWx1ZSA9IE1hdGgubWluKDIwMCwgTWF0aC5yb3VuZChlbXAgKiBzLnZvb2xhdnVzKSk7CiAgJCgnYUlrdicpLnZhbHVlID0gcy5pa3Y7CiAgJCgnYUFjYycpLnZhbHVlID0gTWF0aC5tYXgoMCwgTWF0aC5yb3VuZChlbXAgLyAxMjApKTsKICAkKCdhRGV2JykudmFsdWUgPSBNYXRoLm1heCgxLCBNYXRoLnJvdW5kKGVtcCAvIDMwKSk7CiAgJCgncm9sZXMnKS52YWx1ZSA9IE1hdGgubWF4KDIsIE1hdGgucm91bmQoZW1wIC8gOCkpOwogICQoJ3JvbGVzUicpLnZhbHVlID0gTWF0aC5taW4oNjAsIE1hdGgubWF4KDIsIE1hdGgucm91bmQoZW1wIC8gOCkpKTsKICBjYWxjKCk7Cn0KJCgnc2VjdG9yJykuYWRkRXZlbnRMaXN0ZW5lcignY2hhbmdlJywgc2VrdG9yTXV1dHVzKTsKJCgnZW1wJykuYWRkRXZlbnRMaXN0ZW5lcignY2hhbmdlJywgc2VrdG9yTXV1dHVzKTsKJCgnZW1wUicpLmFkZEV2ZW50TGlzdGVuZXIoJ2NoYW5nZScsIHNla3Rvck11dXR1cyk7CmJpbmQoJ2VtcCcsJ2VtcFInKTsgYmluZCgnaGlyZXMnLCdoaXJlc1InKTsgYmluZCgncm9sZXMnLCdyb2xlc1InKTsgYmluZCgndXNlcnMnLCd1c2Vyc1InKTsgYmluZCgnbG9jJywnbG9jUicpOwpbJ3dobycsJ3ByZWYnLCd2aXNpdCcsJ2RvZXInXS5mb3JFYWNoKGZ1bmN0aW9uKG4pewogIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ2lucHV0W25hbWU9IicrbisnIl0nKS5mb3JFYWNoKGZ1bmN0aW9uKHIpewogICAgci5hZGRFdmVudExpc3RlbmVyKCdjaGFuZ2UnLCBmdW5jdGlvbigpeyBpZiAobiA9PT0gJ3dobycgfHwgbiA9PT0gJ3ByZWYnKSB3aW5kb3cuX192a092ZXJyaWRlID0gbnVsbDsgY2FsYygpOyB9KTsKICB9KTsKfSk7ClsnblJlcG9ydHMnLCduU3NvJywnbkhlYWx0aCcsJ25JbmNpZGVudCcsJ25IcicsJ25FbWFpbCcsJ3RSZXAnLCd0QXVkaXQnLCd0UmlzaycsJ3RrRXhjZWwnXS5mb3JFYWNoKGZ1bmN0aW9uKGlkKXsgJChpZCkuYWRkRXZlbnRMaXN0ZW5lcignY2hhbmdlJywgY2FsYyk7IH0pOwpbJ2J1eScsJ2FSYXRlJywnYVJhdGVCdXknLCdhSWt2JywnYUp1aDAnLCdhSnVoMScsJ2FUazAnLCdhRG9rMCcsJ2FEb2sxJywnYVJpc2snLAogJ2FSYTAnLCdhUmExJywnYVJhdDAnLCdhUmF0MScsJ2FBY2MnLCdhQWNjMCcsJ2FBY2MxJywnYURldicsJ2FEZXYwJywnYURldjEnXS5mb3JFYWNoKGZ1bmN0aW9uKGlkKXsgJChpZCkuYWRkRXZlbnRMaXN0ZW5lcignaW5wdXQnLCBjYWxjKTsgfSk7CnNla3Rvck11dXR1cygpOwp9KSgpOwo=\")));document.body.appendChild(s);})();<\/script><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Do it yourself or let us do it \u2014 and what will it cost? Answer a few questions. You will  &#8230;<\/p>\n","protected":false},"author":4,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-2812","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/vits.ee\/en\/wp-json\/wp\/v2\/pages\/2812","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/vits.ee\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/vits.ee\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/vits.ee\/en\/wp-json\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"https:\/\/vits.ee\/en\/wp-json\/wp\/v2\/comments?post=2812"}],"version-history":[{"count":7,"href":"https:\/\/vits.ee\/en\/wp-json\/wp\/v2\/pages\/2812\/revisions"}],"predecessor-version":[{"id":2900,"href":"https:\/\/vits.ee\/en\/wp-json\/wp\/v2\/pages\/2812\/revisions\/2900"}],"wp:attachment":[{"href":"https:\/\/vits.ee\/en\/wp-json\/wp\/v2\/media?parent=2812"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}