.frame.svelte-grywm2.svelte-grywm2{display:flex;align-items:center;flex-wrap:wrap;background-color:lightgray;padding:5px 0}.frame.svelte-grywm2 .event-title.svelte-grywm2{flex:1 1 auto;padding:5px 10px;font-size:24px;font-weight:bold;text-align:center}.frame.svelte-grywm2 .basic-info.svelte-grywm2{flex:0 1 auto;display:flex;flex-wrap:wrap;align-content:space-between}.frame.svelte-grywm2 .basic-info .info-item.svelte-grywm2{flex:0;padding:5px 10px 5px 0;display:flex;align-items:center}.frame.svelte-grywm2 .basic-info .info-item .icon.svelte-grywm2{height:30px;width:30px;margin:0 0 0 10px;object-fit:contain}.category.svelte-grywm2.svelte-grywm2{height:26px;width:26px;margin-left:5px;background-image:url(/kategorije/16x16px/orange/pin.svg);background-repeat:no-repeat;background-size:contain;background-position:center center;text-align:center;color:white;font-weight:bold;font-size:14px;font-style:italic;padding-top:4px}.frame.svelte-grywm2 .basic-info .info-item .text.svelte-grywm2{margin-left:10px;font-size:18px;white-space:nowrap}
.mapdiv.svelte-ycmb14{position:absolute;top:0;bottom:0;width:100%}
.frame.svelte-1n1xxco.svelte-1n1xxco{flex:1;min-width:300px;max-width:400px;margin:0 5px 10px;display:flex;flex-direction:column}.frame.svelte-1n1xxco .banner.svelte-1n1xxco{position:relative;height:200px;max-width:400px}.frame.svelte-1n1xxco img.svelte-1n1xxco{width:30px;height:30px;padding:0px;margin:0px}.frame.svelte-1n1xxco .item.svelte-1n1xxco{position:absolute;bottom:10px;left:10px;height:39px;width:180px;border-radius:5px;background-color:rgba(52, 152, 219, 0.8);color:white;display:flex;flex-wrap:nowrap;justify-content:center;align-items:center;z-index:400}.frame.svelte-1n1xxco .item.svelte-1n1xxco:hover{background-color:rgba(52, 152, 219, 1)}.frame.svelte-1n1xxco .item-icon.svelte-1n1xxco{height:25px;width:25px;margin:2px 5px;object-fit:contain}.frame.svelte-1n1xxco	.item-description.svelte-1n1xxco{display:table-cell;vertical-align:center;margin:2px 5px;font-size:16px;white-space:nowrap}.frame.svelte-1n1xxco .contacts-list.svelte-1n1xxco{}
.frame.svelte-47zvf9.svelte-47zvf9{position:relative;flex:1;margin:0 5px 0;display:flex;flex-direction:column}.frame.svelte-47zvf9 .contact-box.svelte-47zvf9{position:absolute;text-align:left;top:50px;right:0px;min-width:300px;z-index:1000;background-color:white;border:1px solid #ccc;border-radius:5px;padding:15px;box-shadow:0 4px 6px rgba(0, 0, 0, 0.1)}.frame.svelte-47zvf9 .contact-box h4.svelte-47zvf9{text-align:center;margin:0;margin-bottom:12px}.frame.svelte-47zvf9 .contact-box p.svelte-47zvf9{white-space:normal;word-break:normal;text-align:left;text-indent:-20px;padding-left:20px;font-size:14px}.frame.svelte-47zvf9 .contact-box button.svelte-47zvf9{position:absolute;right:10px;top:5px;background-color:#e91b5d;border:none;padding:10px 15px;border-radius:3px;color:white;cursor:pointer;margin-top:3px}.frame.svelte-47zvf9 .section.svelte-47zvf9{margin-bottom:10px;display:flex;flex-direction:column}.frame.svelte-47zvf9 .section .section-items.svelte-47zvf9{display:grid;grid-template-columns:repeat(3, 1fr);grid-template-rows:1fr;grid-column-gap:10px;grid-row-gap:0px;justify-items:center}.frame.svelte-47zvf9 .section .section-items .item.svelte-47zvf9{flex:1 1 auto;height:39px;width:100%;max-width:160px;overflow:hidden;margin:10px 5px;padding:5px 5px;border-radius:5px;background-color:var(--color-foreg-text);display:flex;flex-wrap:wrap;justify-content:center;align-items:center}.frame.svelte-47zvf9 .section .section-items .item .item-icon.svelte-47zvf9{height:25px;width:25px;margin:2px 5px;object-fit:contain}.frame.svelte-47zvf9 .section .section-items .item .item-description.svelte-47zvf9{display:table-cell;vertical-align:center;margin:2px 5px;font-size:16px;white-space:nowrap}.frame.svelte-47zvf9 .section .section-items .active.svelte-47zvf9{cursor:pointer;color:#f58c20}.frame.svelte-47zvf9 .section .section-items .active.svelte-47zvf9:hover{background-color:var(--color-foreg-shadow)}.frame.svelte-47zvf9 .section .section-items2.svelte-47zvf9{display:grid;grid-template-columns:repeat(2, 1fr);grid-template-rows:1fr;grid-column-gap:10px;grid-row-gap:0px;justify-items:center}.frame.svelte-47zvf9 .section .section-items2 .item.svelte-47zvf9{flex:1 1 auto;height:39px;width:100%;overflow:hidden;margin:10px 5px;padding:5px 5px;border-radius:5px;background-color:#3498db;display:flex;flex-wrap:wrap;justify-content:center;align-items:center}.frame.svelte-47zvf9 .section .section-items2 .item .item-icon.svelte-47zvf9{height:25px;width:25px;margin:2px 5px;object-fit:contain}.frame.svelte-47zvf9 .section .section-items2 .item .item-description.svelte-47zvf9{display:table-cell;vertical-align:center;margin:2px 5px;font-size:16px;white-space:nowrap}.frame.svelte-47zvf9 .section .section-items2 .active.svelte-47zvf9{cursor:pointer;color:#f58c20}.frame.svelte-47zvf9 .section .section-items2 .active.svelte-47zvf9:hover{background-color:var(--color-foreg-shadow)}
.frame.svelte-17m9tt8.svelte-17m9tt8{}.sex-age-filters.svelte-17m9tt8.svelte-17m9tt8{padding:5px;display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center}.sex-filters.svelte-17m9tt8.svelte-17m9tt8{flex:1 0 auto;display:flex;justify-content:flex-start;margin:5px 0}.age-filters.svelte-17m9tt8.svelte-17m9tt8{flex:0 0 auto;display:flex;flex-direction:row;justify-content:space-between;margin:5px 0}.competitions-frame.svelte-17m9tt8.svelte-17m9tt8{display:flex;flex-direction:row;flex-wrap:wrap;justify-content:space-between}.category-header.svelte-17m9tt8.svelte-17m9tt8{width:100%;background:#f58d20;color:whitesmoke;border-radius:3px;font-size:16px;font-weight:bold;padding:5px;margin:0 5px;text-align:right}.competitions-group.svelte-17m9tt8.svelte-17m9tt8{flex:1 1 auto;border:1px solid rgb(59, 211, 238);border-radius:3px;margin:5px;padding:5px}.group-header.svelte-17m9tt8.svelte-17m9tt8{display:flex;flex-direction:row;flex-wrap:nowrap;justify-content:space-between;background:#3498db;color:white}.group-header.svelte-17m9tt8 img.svelte-17m9tt8{height:20px;width:20px;cursor:pointer;padding:5px}.group-name.svelte-17m9tt8.svelte-17m9tt8{height:30px;font-size:16px;font-weight:bolder;padding:5px 10px}.group-disciplines.svelte-17m9tt8.svelte-17m9tt8{display:flex;flex-direction:row;flex-wrap:wrap;justify-content:flex-start}.discipline.svelte-17m9tt8.svelte-17m9tt8{display:flex;flex-direction:column;padding:5px;margin:5px;background-color:#ecf0f1;border-radius:3px;justify-content:flex-start}.discipline-name.svelte-17m9tt8.svelte-17m9tt8{font-size:14px;padding:5px;text-align:left}.discipline-competitions.svelte-17m9tt8.svelte-17m9tt8{display:flex;flex-direction:row;flex-wrap:nowrap;justify-content:left}.znacke.svelte-17m9tt8.svelte-17m9tt8{display:flex;flex:0 0 auto}.znacka.svelte-17m9tt8.svelte-17m9tt8{position:relative;flex:0 1 auto;opacity:0.5;font-size:14px;font-weight:normal;cursor:pointer;margin:2px;padding:5px 2px;border-radius:5px;user-select:none}.znacka.svelte-17m9tt8 .swatch.svelte-17m9tt8{position:absolute;width:18px;height:18px;border-radius:50%;border:1px solid white;background-color:gold;top:-12px;right:-6px;text-align:center;line-height:16px;font-weight:bold;font-size:12px;color:black}.znacka.svelte-17m9tt8 .alert.svelte-17m9tt8{background-color:red;color:white}.isUnavailable.svelte-17m9tt8.svelte-17m9tt8{background-color:white;color:black;border:2px solid white;cursor:initial}.isSelected.svelte-17m9tt8.svelte-17m9tt8{opacity:1}.age.svelte-17m9tt8.svelte-17m9tt8{background-color:gray;color:white;border:2px solid gray}.w.svelte-17m9tt8.svelte-17m9tt8{background-color:rgb(235, 92, 92);color:white;border:2px solid rgb(235, 92, 92)}.m.svelte-17m9tt8.svelte-17m9tt8{background-color:rgb(82, 137, 209);color:white;border:2px solid rgb(82, 137, 209)}.x.svelte-17m9tt8.svelte-17m9tt8{background-color:goldenrod;color:black;border:2px solid goldenrod}.znacka.svelte-17m9tt8 img.svelte-17m9tt8{height:23px;padding:0 8px}.test.svelte-17m9tt8.svelte-17m9tt8{width:500px;height:500px;background-color:gray;border:2px solid turquoise}
.znacke.svelte-1cd3xne.svelte-1cd3xne{display:flex;flex-wrap:wrap}.znacka.svelte-1cd3xne.svelte-1cd3xne{height:var(--flag-height);width:var(--flag-width);overflow:hidden;box-shadow:0 0 5px 5px var(--color-backg-mid);opacity:0.5;cursor:pointer}.znacka.svelte-1cd3xne img.svelte-1cd3xne{height:var(--flag-height);width:var(--flag-width);object-fit:contain}input.svelte-1cd3xne.svelte-1cd3xne{border:1px solid black}.selected.svelte-1cd3xne.svelte-1cd3xne{opacity:1;background:#f58d20}
.frame.svelte-1coc9mr.svelte-1coc9mr{}.sex-age-filters.svelte-1coc9mr.svelte-1coc9mr{padding:5px;display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center}.sex-filters.svelte-1coc9mr.svelte-1coc9mr{flex:1 0 auto;display:flex;justify-content:flex-start;margin:5px 0}.age-filters.svelte-1coc9mr.svelte-1coc9mr{flex:0 0 auto;display:flex;flex-direction:row;justify-content:space-between;margin:5px 0}.competitions-frame.svelte-1coc9mr.svelte-1coc9mr{display:flex;flex-direction:row;flex-wrap:wrap;justify-content:space-between}.competitions-group.svelte-1coc9mr.svelte-1coc9mr{flex:1 1 auto;border:1px solid rgb(59, 211, 238);border-radius:3px;margin:5px}.group-header.svelte-1coc9mr.svelte-1coc9mr{display:flex;flex-direction:row;flex-wrap:nowrap;justify-content:space-between;background:#3498db;color:white}.group-header.svelte-1coc9mr img.svelte-1coc9mr{height:20px;width:20px;cursor:pointer;padding:5px}.group-name.svelte-1coc9mr.svelte-1coc9mr{height:30px;font-size:16px;font-weight:bolder;padding:5px 10px}.group-disciplines.svelte-1coc9mr.svelte-1coc9mr{display:flex;flex-direction:row;flex-wrap:wrap;justify-content:flex-start}.discipline.svelte-1coc9mr.svelte-1coc9mr{display:flex;flex-direction:column;padding:5px;margin:5px;background-color:#ecf0f1;border-radius:3px;justify-content:flex-start}.discipline-name.svelte-1coc9mr.svelte-1coc9mr{font-size:14px;padding:5px;text-align:left}.discipline-competitions.svelte-1coc9mr.svelte-1coc9mr{display:flex;flex-direction:row;flex-wrap:nowrap;justify-content:left}.znacke.svelte-1coc9mr.svelte-1coc9mr{display:flex;flex:0 0 auto}.znacka.svelte-1coc9mr.svelte-1coc9mr{flex:0 1 auto;opacity:0.5;font-size:14px;font-weight:normal;cursor:pointer;margin:2px;padding:5px 2px;border-radius:5px;user-select:none}.isUnavailable.svelte-1coc9mr.svelte-1coc9mr{background-color:white;color:black;border:2px solid white;cursor:initial}.isSelected.svelte-1coc9mr.svelte-1coc9mr{opacity:1}.age.svelte-1coc9mr.svelte-1coc9mr{background-color:gray;color:white;border:2px solid gray}.w.svelte-1coc9mr.svelte-1coc9mr{background-color:rgb(235, 92, 92);color:white;border:2px solid rgb(235, 92, 92)}.m.svelte-1coc9mr.svelte-1coc9mr{background-color:rgb(82, 137, 209);color:white;border:2px solid rgb(82, 137, 209)}.x.svelte-1coc9mr.svelte-1coc9mr{background-color:goldenrod;color:black;border:2px solid goldenrod}.znacka.svelte-1coc9mr img.svelte-1coc9mr{height:23px;padding:0 8px}.test.svelte-1coc9mr.svelte-1coc9mr{width:500px;height:500px;background-color:gray;border:2px solid turquoise}
input.svelte-ntqa42.svelte-ntqa42,select.svelte-ntqa42.svelte-ntqa42{background-color:lightsteelblue;border:0;font-size:16px;padding:2px}.competition.svelte-ntqa42.svelte-ntqa42{display:flex;flex-wrap:wrap;width:100%;justify-content:flex-start;margin-top:3px;padding:0 2px}.competition.svelte-ntqa42 input.svelte-ntqa42{margin-left:4px}
h5.svelte-2ly46r{display:inline}.newNote.svelte-2ly46r{}textarea.svelte-2ly46r{padding:2px;background-color:lightsteelblue;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;width:100%}
.frame.svelte-1s9llm5.svelte-1s9llm5{display:flex;justify-content:flex-start;flex-direction:column}.frame.svelte-1s9llm5 .contact.svelte-1s9llm5{width:100%;flex:0 0 auto;margin-top:3px;margin-right:5px}.existingContact.svelte-1s9llm5.svelte-1s9llm5{background-color:lightsteelblue;border:1px solid black;border:0}.newContact.svelte-1s9llm5.svelte-1s9llm5{background-color:lightgoldenrodyellow;border:1px solid black;border:0}input.svelte-1s9llm5.svelte-1s9llm5,select.svelte-1s9llm5.svelte-1s9llm5{background-color:lightsteelblue;border:0;font-size:16px;padding:2px}
.frame.svelte-1mw9mw1.svelte-1mw9mw1{display:flex;flex-wrap:wrap}.frame.svelte-1mw9mw1 .link-item.svelte-1mw9mw1{display:flex;align-items:center;justify-content:space-between;width:100vw;margin:5px 2px 1px;border-bottom:1px solid darkslategrey}.frame.svelte-1mw9mw1 .link-item .description.svelte-1mw9mw1{white-space:nowrap;font-size:16px;font-weight:bolder;margin-right:10px;flex:0 0 auto}.frame.svelte-1mw9mw1 .link-item .link.svelte-1mw9mw1{flex:1 1 auto;display:flex;justify-content:flex-start;max-width:75%}.frame.svelte-1mw9mw1 .link-item .link input.svelte-1mw9mw1{font-size:16px;width:100%;background-color:lightsteelblue;padding:2px}
.frame.svelte-z4zbs1.svelte-z4zbs1{display:flex;justify-content:space-between}.frame.svelte-z4zbs1 .icon.svelte-z4zbs1{flex:0 0 auto;height:30px;width:30px;padding:5px;margin:0 5px;border:1px solid black;border-radius:3px}.frame.svelte-z4zbs1 .icon.svelte-z4zbs1:hover{background:lightgray}.frame.svelte-z4zbs1 .icon img.svelte-z4zbs1{height:20px;object-fit:contain}.frame.svelte-z4zbs1 .filler.svelte-z4zbs1{flex:1 1 auto}
.frame.svelte-se4nq3.svelte-se4nq3{padding:5px;background-color:white;max-width:calc(100vw - 20px);overflow-y:auto;overflow-x:hidden}.tabs.svelte-se4nq3.svelte-se4nq3{display:flex;flex-direction:row;flex-wrap:wrap;align-items:center}.tabs.svelte-se4nq3 .active-tab.svelte-se4nq3{color:#3498db;background:white;border:1px solid #3498db}.tab.svelte-se4nq3.svelte-se4nq3{height:30px;line-height:15px;flex:1 1 auto;min-width:90px;text-align:center;font-size:18px;margin:2px;padding:5px;background:#3498db;color:white;cursor:pointer}.tab.svelte-se4nq3.svelte-se4nq3:hover{font-weight:bolder}.content.svelte-se4nq3.svelte-se4nq3{}.frame.svelte-se4nq3 .content .section-title.svelte-se4nq3{text-align:center;margin:2px;padding:4px 10px;background-color:lightgray;font-size:16px}input.svelte-se4nq3.svelte-se4nq3{background-color:lightsteelblue}p.svelte-se4nq3.svelte-se4nq3{display:inline-block;text-align:left}
.frame.svelte-1q07kcq.svelte-1q07kcq{display:flex;flex-direction:column;justify-content:flex-start;background-color:white}.frame.svelte-1q07kcq .header.svelte-1q07kcq{}.frame.svelte-1q07kcq .content.svelte-1q07kcq{display:flex;flex-direction:column}.frame.svelte-1q07kcq .content .infobox.svelte-1q07kcq{margin-top:10px;display:flex;flex-wrap:wrap}.frame.svelte-1q07kcq .content .program.svelte-1q07kcq{border-top:3px solid lightgray}
/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguYmY1ZjdlOWEuY3NzIiwic291cmNlcyI6WyIuLi8uLi8uLi9IZWFkZXIuc3ZlbHRlIiwiLi4vLi4vLi4vVmVudWVNYXAuc3ZlbHRlIiwiLi4vLi4vLi4vVmVudWVBbmRDb250YWN0c0luZm8uc3ZlbHRlIiwiLi4vLi4vLi4vTGlua3Muc3ZlbHRlIiwiLi4vLi4vLi4vcHJlc2VudC5zdmVsdGUiLCIuLi8uLi8uLi9BY2Nlc3NFZGl0b3Iuc3ZlbHRlIiwiLi4vLi4vLi4vaW5kZXguc3ZlbHRlIiwiLi4vLi4vLi4vUHJvZ3JhbUVkaXRvci5zdmVsdGUiLCIuLi8uLi8uLi9Ob3Rlc0VkaXRvci5zdmVsdGUiLCIuLi8uLi8uLi9Db250YWN0c0VkaXRvci5zdmVsdGUiLCIuLi8uLi8uLi9Eb2N1bWVudHNFZGl0b3Iuc3ZlbHRlIiwiLi4vLi4vLi4vaW5kZXguc3ZlbHRlIiwiLi4vLi4vLi4vaW5kZXguc3ZlbHRlIiwiLi4vLi4vLi4vaW5kZXguc3ZlbHRlIl0sInNvdXJjZXNDb250ZW50IjpbIjxzY3JpcHQ+XG4gIGV4cG9ydCBsZXQgZXZlbnQ7XG48L3NjcmlwdD5cblxuPGRpdiBjbGFzcz1cImZyYW1lXCI+XG4gIDxkaXYgY2xhc3M9XCJldmVudC10aXRsZVwiPlxuICAgIHtldmVudC5wcm9wZXJ0aWVzLnRpdGxlW2V2ZW50LnByb3BlcnRpZXMudGl0bGUucHBdfVxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cImJhc2ljLWluZm9cIj5cbiAgICA8ZGl2IGNsYXNzPVwiaW5mby1pdGVtXCI+XG4gICAgICA8aW1nIGNsYXNzPVwiaWNvblwiIHNyYz1cImljb25zL2RhdGUucG5nXCIgYWx0PVwiXCIgLz5cbiAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0XCI+e2V2ZW50LnByb3BlcnRpZXMuZGF0ZUZvckRpc3BsYXl9PC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImluZm8taXRlbVwiPlxuICAgICAgPGltZyBjbGFzcz1cImljb25cIiBzcmM9XCJpY29ucy9sb2NhdGlvbi5wbmdcIiBhbHQ9XCJcIiAvPlxuICAgICAgPGltZ1xuICAgICAgICBjbGFzcz1cImljb25cIlxuICAgICAgICBzcmM9XCJmbGFncy9zdmcve2V2ZW50LnByb3BlcnRpZXMudmVudWUuY291bnRyeX0uc3ZnXCJcbiAgICAgICAgYWx0PVwiXCJcbiAgICAgIC8+XG4gICAgICA8ZGl2IGNsYXNzPVwidGV4dFwiPlxuICAgICAgICB7ZXZlbnQucHJvcGVydGllcy52ZW51ZS5wbGFjZVtldmVudC5wcm9wZXJ0aWVzLnZlbnVlLnBsYWNlLnBwXX1cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJpbmZvLWl0ZW1cIj5cbiAgICAgIDxpbWcgY2xhc3M9XCJpY29uXCIgc3JjPVwiaWNvbnMvbGV2ZWwucG5nXCIgYWx0PVwiXCIgLz5cbiAgICAgIHsjZWFjaCBldmVudC5wcm9wZXJ0aWVzLnByb2dyYW0uY2F0ZWdvcmllcyBhcyBjYXRlZ29yeX1cbiAgICAgICAgPGRpdiBjbGFzcz1cImNhdGVnb3J5XCI+e2NhdGVnb3J5LnRvVXBwZXJDYXNlKCl9PC9kaXY+XG4gICAgICB7L2VhY2h9XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+XG5cbjxzdHlsZT5cbiAgLmZyYW1lIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICAgIGJhY2tncm91bmQtY29sb3I6IGxpZ2h0Z3JheTtcbiAgICBwYWRkaW5nOiA1cHggMDtcbiAgfVxuICAuZnJhbWUgLmV2ZW50LXRpdGxlIHtcbiAgICBmbGV4OiAxIDEgYXV0bztcbiAgICBwYWRkaW5nOiA1cHggMTBweDtcbiAgICBmb250LXNpemU6IDI0cHg7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB9XG4gIC5mcmFtZSAuYmFzaWMtaW5mbyB7XG4gICAgZmxleDogMCAxIGF1dG87XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgYWxpZ24tY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAvKiBoZWlnaHQ6IDQ4cHg7XG4gICAgcGFkZGluZzogMXZoIDAgMXZoIDN2dzsgKi9cbiAgfVxuICAuZnJhbWUgLmJhc2ljLWluZm8gLmluZm8taXRlbSB7XG4gICAgZmxleDogMDtcbiAgICBwYWRkaW5nOiA1cHggMTBweCA1cHggMDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgLyogYm9yZGVyOiAxcHggc29saWQgbmF2eTsgKi9cbiAgfVxuICAuZnJhbWUgLmJhc2ljLWluZm8gLmluZm8taXRlbSAuaWNvbiB7XG4gICAgaGVpZ2h0OiAzMHB4O1xuICAgIHdpZHRoOiAzMHB4O1xuICAgIG1hcmdpbjogMCAwIDAgMTBweDtcbiAgICBvYmplY3QtZml0OiBjb250YWluO1xuICAgIC8qIGJvcmRlcjogMXB4IHNvbGlkIGJsdWU7ICovXG4gIH1cbiAgLmNhdGVnb3J5IHtcbiAgICBoZWlnaHQ6IDI2cHg7XG4gICAgd2lkdGg6IDI2cHg7XG4gICAgbWFyZ2luLWxlZnQ6IDVweDtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoL2thdGVnb3JpamUvMTZ4MTZweC9vcmFuZ2UvcGluLnN2Zyk7XG4gICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IGNvbnRhaW47XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyIGNlbnRlcjtcbiAgICAvKiBib3gtc2hhZG93OiAwIDAgNXB4IDVweCB2YXIoLS1jb2xvci1iYWNrZy1taWQpOyAqL1xuXG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGNvbG9yOiB3aGl0ZTtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgZm9udC1zdHlsZTogaXRhbGljO1xuICAgIHBhZGRpbmctdG9wOiA0cHg7XG4gIH1cbiAgLmZyYW1lIC5iYXNpYy1pbmZvIC5pbmZvLWl0ZW0gLnRleHQge1xuICAgIG1hcmdpbi1sZWZ0OiAxMHB4O1xuICAgIGZvbnQtc2l6ZTogMThweDtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICB9XG48L3N0eWxlPlxuIiwiPHNjcmlwdD5cbiAgaW1wb3J0IHsgY3JlYXRlRXZlbnREaXNwYXRjaGVyLCBvbk1vdW50IH0gZnJvbSBcInN2ZWx0ZVwiO1xuXG4gIGNvbnN0IGRpc3BhdGNoID0gY3JlYXRlRXZlbnREaXNwYXRjaGVyKCk7XG5cbiAgZXhwb3J0IGxldCBldmVudDtcbiAgbGV0IG1hcDtcbiAgbGV0IG1vdW50ZWQgPSBmYWxzZTtcbiAgbGV0IHZlbnVlTGF5ZXI7XG4gIGNvbnN0IGluaXRpYWxpemVNYXAgPSBhc3luYyAoKSA9PiB7XG4gICAgLy8gYXR0YWNoIG1hcCB0byBkaXYsIGlmIG5vdCBhbHJlYWR5IGF0dGFjaGVkXG4gICAgbWFwID0gTC5tYXAoXCJ2ZW51ZW1hcFwiLCB7XG4gICAgICBjZW50ZXI6IFtldmVudC5nZW9tZXRyeS5jb29yZGluYXRlc1sxXSwgZXZlbnQuZ2VvbWV0cnkuY29vcmRpbmF0ZXNbMF1dLFxuICAgICAgem9vbTogMTUsXG4gICAgICBzY3JvbGxXaGVlbFpvb206IHRydWUsXG4gICAgICB6b29tQ29udHJvbDogZmFsc2UsXG4gICAgICBhdHRyaWJ1dGlvbkNvbnRyb2w6IGZhbHNlLFxuICAgICAgZ2VzdHVyZUhhbmRsaW5nOiB0cnVlLFxuICAgIH0pO1xuICAgIGxldCBtYXBVUkwgPSBcImh0dHBzOi8ve3N9LnRpbGUub3BlbnN0cmVldG1hcC5vcmcve3p9L3t4fS97eX0ucG5nXCI7XG4gICAgdmFyIGNhcnRvVXJsID0gXCJodHRwOi8ve3N9LmJhc2VtYXBzLmNhcnRvY2RuLmNvbS9kYXJrX2FsbC97en0ve3h9L3t5fS5wbmdcIjtcbiAgICBsZXQgYXR0cmlidXRpb24gPSBgJmNvcHk7IDxhIGhyZWY9XCJodHRwczovL3d3dy5vcGVuc3RyZWV0bWFwLm9yZy9jb3B5cmlnaHRcIj5PcGVuU3RyZWV0TWFwPC9hPiBjb250cmlidXRvcnNgO1xuICAgIC8vIGF0dGFjaCBiYXNlIHRpbGUgbGF5ZXIgdG8gbWFwXG4gICAgbGV0IG1hcFRpbGUgPSBMLnRpbGVMYXllcihtYXBVUkwsIHtcbiAgICAgIGF0dHJpYnV0aW9uLFxuICAgIH0pO1xuICAgIG1hcC5hZGRMYXllcihtYXBUaWxlKTtcbiAgICAvLyBhZGQgbWFya2VyXG4gICAgbGV0IG1hcmtlciA9IGZlYXR1cmVUb01hcmtlcihldmVudCwgW1xuICAgICAgZXZlbnQuZ2VvbWV0cnkuY29vcmRpbmF0ZXNbMV0sXG4gICAgICBldmVudC5nZW9tZXRyeS5jb29yZGluYXRlc1swXSxcbiAgICBdKTtcbiAgICBtYXJrZXIuYWRkVG8obWFwKS5iaW5kVG9vbHRpcChldmVudC5wcm9wZXJ0aWVzLnZlbnVlLnRpdGxlKTtcbiAgICAvLyBhZGQgYXR0cmJ1dGlvblxuICAgIEwuY29udHJvbC5hdHRyaWJ1dGlvbih7IHBvc2l0aW9uOiBcInRvcGxlZnRcIiB9KS5hZGRUbyhtYXApO1xuICAgIHJldHVybiBtYXA7XG4gIH07XG4gIGNvbnN0IGljb25TdHlsZSA9XG4gICAgXCJoZWlnaHQ6IDI2cHg7IHdpZHRoOiAyNnB4OyBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoL2thdGVnb3JpamUvMTZ4MTZweC9vcmFuZ2UvcGluLnN2Zyk7IGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7IGJhY2tncm91bmQtc2l6ZTogY29udGFpbjsgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyIGNlbnRlcjsgdGV4dC1hbGlnbjogY2VudGVyOyBjb2xvcjogd2hpdGU7IGZvbnQtd2VpZ2h0OiBib2xkOyBmb250LXNpemU6IDE0cHg7IGZvbnQtc3R5bGU6IGl0YWxpYzsgcGFkZGluZy10b3A6IDJweDtcIjtcbiAgY29uc3QgZ2V0SWNvbiA9IChmZWF0dXJlKSA9PlxuICAgIEwuaWNvbih7XG4gICAgICBpY29uVXJsOiBcImthdGVnb3JpamUvMTZ4MTZweC9vcmFuZ2UvcGluLnN2Z1wiLFxuICAgICAgaWNvblNpemU6IFsyNCwgMjRdLCAvLyBzaXplIG9mIHRoZSBpY29uXG4gICAgICBpY29uQW5jaG9yOiBbMTIsIDI0XSwgLy8gcG9pbnQgb2YgdGhlIGljb24gd2hpY2ggd2lsbCBjb3JyZXNwb25kIHRvIG1hcmtlcidzIGxvY2F0aW9uXG4gICAgICBwb3B1cEFuY2hvcjogWzI0LCAwXSwgLy8gcG9pbnQgZnJvbSB3aGljaCB0aGUgcG9wdXAgc2hvdWxkIG9wZW4gcmVsYXRpdmUgdG8gdGhlIGljb25BbmNob3JcbiAgICAgIG9wYWNpdHk6IDEsXG4gICAgfSk7XG4gIGNvbnN0IGZlYXR1cmVUb01hcmtlciA9IChmZWF0dXJlLCBsYXRsbmcpID0+IHtcbiAgICBjb25zdCB6SW5kZXhPZmZzZXQgPSA2MDA7XG4gICAgbGV0IG1hcmtlciA9IEwubWFya2VyKGxhdGxuZyk7XG4gICAgbWFya2VyLnNldEljb24oZ2V0SWNvbihmZWF0dXJlKSk7XG4gICAgbWFya2VyLnNldFpJbmRleE9mZnNldCh6SW5kZXhPZmZzZXQpO1xuICAgIHJldHVybiBtYXJrZXI7XG4gIH07XG5cbiAgb25Nb3VudChhc3luYyAoKSA9PiB7XG4gICAgaWYgKCF3aW5kb3cuTCkgYXdhaXQgaW1wb3J0KFwibGVhZmxldFwiKTtcbiAgICBhd2FpdCBpbml0aWFsaXplTWFwKCk7XG4gIH0pO1xuPC9zY3JpcHQ+XG5cbjxkaXYgY2xhc3M9XCJtYXBkaXZcIiBpZD1cInZlbnVlbWFwXCIgLz5cblxuPHN0eWxlPlxuICAubWFwZGl2IHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIGJvdHRvbTogMDtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxuPC9zdHlsZT5cbiIsIjxzY3JpcHQ+XG4gIGltcG9ydCBWZW51ZU1hcCBmcm9tIFwiLi9WZW51ZU1hcC5zdmVsdGVcIjtcblxuICBpbXBvcnQgeyB1c2VyIH0gZnJvbSBcIi4uLy4uL3N0b3Jlc1wiO1xuICBleHBvcnQgbGV0IGV2ZW50O1xuICBleHBvcnQgbGV0IHVzZXJMb2NhdGlvbjtcbiAgXG4gXHRjb25zdCBvcGVuTGluayA9IChsaW5rQWRkcmVzcykgPT4ge1xuXHRcdGlmIChsaW5rQWRkcmVzcykgd2luZG93Lm9wZW4obGlua0FkZHJlc3MpO1xuXHR9O1xuICBcbjwvc2NyaXB0PlxuXG48c3R5bGU+XG4gIC5mcmFtZSB7XG4gICAgZmxleDogMTtcbiAgICBtaW4td2lkdGg6IDMwMHB4O1xuICAgIG1heC13aWR0aDogNDAwcHg7XG4gICAgbWFyZ2luOiAwIDVweCAxMHB4O1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAvKiBib3JkZXI6IDFweCBzb2xpZCBuYXZ5OyAqL1xuICB9XG5cbiAgLmZyYW1lIC5zZWN0aW9uLXRpdGxlIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgbWFyZ2luLWJvdHRvbTogMTBweDtcbiAgICBwYWRkaW5nOiA4cHggMTBweDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBsaWdodGdyYXk7XG4gICAgZm9udC1zaXplOiAxNnB4O1xuICAgIC8qIGJvcmRlcjogMXB4IHNvbGlkIGJsdWU7ICovXG4gIH1cbiAgLmZyYW1lIC5iYW5uZXIge1xuICAgIC8qIGZsZXg6IDE7ICovXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGhlaWdodDogMjAwcHg7XG4gICAgbWF4LXdpZHRoOiA0MDBweDtcbiAgfVxuXG4gIC5mcmFtZSBpbWcge1xuICAgIHdpZHRoOiAzMHB4O1xuICAgIGhlaWdodDogMzBweDtcbiAgICBwYWRkaW5nOiAwcHg7XG4gICAgbWFyZ2luOiAwcHg7XG4gIH1cbiAgXG4gIC5mcmFtZSAuaXRlbSB7XG5cdFx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0XHRib3R0b206IDEwcHg7XG5cdFx0XHRsZWZ0OiAxMHB4O1xuXHRcdFx0aGVpZ2h0OiAzOXB4O1xuXHRcdFx0d2lkdGg6IDE4MHB4O1xuXHRcdFx0Ym9yZGVyLXJhZGl1czogNXB4O1xuXHRcdFx0YmFja2dyb3VuZC1jb2xvcjogcmdiYSg1MiwgMTUyLCAyMTksIDAuOCk7XG5cdFx0XHRjb2xvcjogd2hpdGU7XG5cdFx0XHRkaXNwbGF5OiBmbGV4O1xuXHRcdFx0ZmxleC13cmFwOiBub3dyYXA7XG5cdFx0XHRqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcblx0XHRcdGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cdFx0XHR6LWluZGV4OiA0MDA7XG5cdH1cblx0XG5cdC5mcmFtZSAuaXRlbTpob3ZlciB7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogcmdiYSg1MiwgMTUyLCAyMTksIDEpO1xuXHR9XG5cdFx0XG5cdC5mcmFtZSAuaXRlbS1pY29uIHtcblx0XHRcdGhlaWdodDogMjVweDtcblx0XHRcdHdpZHRoOiAyNXB4O1xuXHRcdFx0bWFyZ2luOiAycHggNXB4O1xuXHRcdFx0b2JqZWN0LWZpdDogY29udGFpbjtcblx0XHR9XG5cdFx0XG5cdC5mcmFtZVx0Lml0ZW0tZGVzY3JpcHRpb24ge1xuXHRcdFx0ZGlzcGxheTogdGFibGUtY2VsbDtcblx0XHRcdHZlcnRpY2FsLWFsaWduOiBjZW50ZXI7XG5cdFx0XHRtYXJnaW46IDJweCA1cHg7XG5cdFx0XHRmb250LXNpemU6IDE2cHg7XG5cdFx0XHR3aGl0ZS1zcGFjZTogbm93cmFwO1xuXHRcdH1cblx0XHRcbiAgLmZyYW1lIC5jb250YWN0cy1saXN0IHtcbiAgICAvKiBiYWNrZ3JvdW5kLWNvbG9yOiAjZmY0NzFhOyAqL1xuICB9XG5cbiAgYSB7XG4gICAgY29sb3I6IGdvbGRlbnJvZDtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIH1cblxuICBhOmhvdmVyIHtcbiAgICBjb2xvcjogI2ZmNDcxYTtcbiAgfVxuPC9zdHlsZT5cblxuPGRpdiBjbGFzcz1cImZyYW1lXCI+XG4gIDxkaXYgY2xhc3M9XCJiYW5uZXJcIj5cbiAgICB7I2lmIGV2ZW50Lmdlb21ldHJ5LmNvb3JkaW5hdGVzWzBdfVxuICAgICAgPFZlbnVlTWFwIHtldmVudH0gLz5cblx0XHRcdDxidXR0b25cblx0XHRcdFx0Y2xhc3M9XCJpdGVtIHtldmVudC5wcm9wZXJ0aWVzLnZlbnVlICYmIGV2ZW50LnByb3BlcnRpZXMudmVudWUuYWRkcmVzcyA/ICdhY3RpdmUnIDogJyd9XCJcblx0XHRcdFx0b246Y2xpY2s9eygpID0+XG5cdFx0XHRcdFx0b3BlbkxpbmsoYGh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vbWFwcy9zZWFyY2gvJHtldmVudC5wcm9wZXJ0aWVzLnZlbnVlLmFkZHJlc3N9YCl9XG5cdFx0XHQ+XG5cdFx0XHRcdDxpbWdcblx0XHRcdFx0XHRjbGFzcz1cIml0ZW0taWNvblwiXG5cdFx0XHRcdFx0c3JjPVwiaWNvbnMvbmF2aWdhdGlvbntldmVudC5wcm9wZXJ0aWVzLnZlbnVlLmFkZHJlc3MgPyAnLS1hY3RpdmUnIDogJyd9LnBuZ1wiXG5cdFx0XHRcdFx0YWx0PVwibmF2aWdhdGUgdG8gdmVudWVcIlxuXHRcdFx0XHQvPlxuXHRcdFx0XHQ8ZGl2IGNsYXNzPVwiaXRlbS1kZXNjcmlwdGlvblwiPk5hdmlnYXRlIHRvIFZlbnVlPC9kaXY+XG5cdFx0XHQ8L2J1dHRvbj5cbiAgICB7OmVsc2V9XG4gICAgICA8ZGl2IHN0eWxlPVwidGV4dC1hbGlnbjogY2VudGVyXCI+KioqIHZlbnVlIG5vdCBzZXQgeWV0ICoqKjwvZGl2PlxuICAgIHsvaWZ9XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwiY29udGFjdHMtbGlzdFwiPlxuICAgIDxkaXYgY2xhc3M9XCJjb250YWN0XCIgLz5cbiAgPC9kaXY+XG48L2Rpdj5cbiIsIjxzY3JpcHQ+XG4gIGV4cG9ydCBsZXQgZXZlbnQ7XG4gIGxldCByb290O1xuXHRsZXQgY29udGFjdHM7XG5cdGxldCB2YWNhbmNpZXM7XG5cbiAgY29uc3Qgb3BlbkxpbmsgPSAobGlua0FkZHJlc3MpID0+IHtcbiAgICBpZiAobGlua0FkZHJlc3MpIHdpbmRvdy5vcGVuKGxpbmtBZGRyZXNzKTtcbiAgfTtcbiAgXG5cdGxldCBpc0NvbnRhY3RCb3hEaXNwbGF5ZWQgPSBmYWxzZTtcblx0Y29uc3QgdG9nZ2xlQ29udGFjdEJveERpc3BsYXllZCA9ICgpID0+IHtcblx0XHRpc0NvbnRhY3RCb3hEaXNwbGF5ZWQgPSAhaXNDb250YWN0Qm94RGlzcGxheWVkO1xuXHR9O1xuXHRcblx0bGV0IGlzVmFjYW5jeUJveERpc3BsYXllZCA9IGZhbHNlO1xuXHRjb25zdCB0b2dnbGVWYWNhbmN5Qm94RGlzcGxheWVkID0gKCkgPT4ge1xuXHRcdGlzVmFjYW5jeUJveERpc3BsYXllZCA9ICFpc1ZhY2FuY3lCb3hEaXNwbGF5ZWQ7XG5cdH07XG5cbiAgY29uc3QgcHJldHR5ZnlER0EgPSAod2FSYW5rLCBkZ2EpID0+IHtcbiAgICBjb25zdCBwYXJ0cyA9IGRnYS5zcGxpdChcIi1cIilcbiAgICBjb25zdCBkID0gcGFydHNbMF07XG4gICAgY29uc3QgZyA9IHBhcnRzWzFdO1xuICAgIGNvbnN0IGEgPSBwYXJ0c1syXTtcbiAgICBsZXQgZGlzY2lwbGluZSA9IGQ7XG4gICAgc3dpdGNoIChkKSB7XG4gICAgICBjYXNlIFwiaGpcIjpcbiAgICAgIGRpc2NpcGxpbmUgPSBcIkhpZ2ggSnVtcFwiXG4gICAgICBicmVhaztcbiAgICAgIGNhc2UgXCJsalwiOlxuICAgICAgZGlzY2lwbGluZSA9IFwiTG9uZyBKdW1wXCJcbiAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBcInRqXCI6XG4gICAgICBkaXNjaXBsaW5lID0gXCJUcmlwbGUgSnVtcFwiXG4gICAgICBicmVhaztcbiAgICAgIGNhc2UgXCJwdlwiOlxuICAgICAgZGlzY2lwbGluZSA9IFwiUG9sZSBWYXVsdFwiXG4gICAgICBicmVhaztcbiAgICAgIGNhc2UgXCJzcFwiOlxuICAgICAgZGlzY2lwbGluZSA9IFwiU2hvdCBQdXRcIlxuICAgICAgYnJlYWs7XG4gICAgICBjYXNlIFwiaHRcIjpcbiAgICAgIGRpc2NpcGxpbmUgPSBcIkhhbW1lciBUaHJvd1wiXG4gICAgICBicmVhaztcbiAgICAgIGNhc2UgXCJkdFwiOlxuICAgICAgZGlzY2lwbGluZSA9IFwiRGlzY3VzIFRocm93XCJcbiAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBcImp0XCI6XG4gICAgICBkaXNjaXBsaW5lID0gXCJKYXZlbGluIFRocm93XCJcbiAgICAgIGJyZWFrO1xuICAgIH1cbiAgICBjb25zdCBwcmV0dHkgPSBgJHtkaXNjaXBsaW5lfSAoJHtnLnRvVXBwZXJDYXNlKCl9IC8gJHthLnRvVXBwZXJDYXNlKCl9IC8gJHt3YVJhbmsudG9VcHBlckNhc2UoKX0pYFxuICAgIHJldHVybiBwcmV0dHlcbiAgfVxuXG4gICQ6IHJvb3QgPSBldmVudC5wcm9wZXJ0aWVzLmxpbmtzO1xuXHQkOiBjb250YWN0cyA9IGV2ZW50LnByb3BlcnRpZXMuY29udGFjdHM7XG5cdCQ6IHZhY2FuY2llcyA9IGV2ZW50LnByb3BlcnRpZXMucHJvZ3JhbS52YWNhbmNpZXM7XG48L3NjcmlwdD5cblxuPGRpdiBjbGFzcz1cImZyYW1lXCI+XG4gIDxkaXYgY2xhc3M9XCJzZWN0aW9uXCI+XG4gICAgPGRpdiBjbGFzcz1cInNlY3Rpb24taXRlbXNcIj5cbiAgICAgIDxkaXZcbiAgICAgICAgY2xhc3M9XCJpdGVtIHtyb290LndlYnNpdGUgPyAnYWN0aXZlJyA6ICcnfVwiXG4gICAgICAgIG9uOmNsaWNrPXsoKSA9PiBvcGVuTGluayhyb290LndlYnNpdGUpfVxuICAgICAgPlxuICAgICAgICA8aW1nXG4gICAgICAgICAgY2xhc3M9XCJpdGVtLWljb25cIlxuICAgICAgICAgIHNyYz1cImljb25zL3dlYnNpdGV7cm9vdC53ZWJzaXRlID8gJy0tYWN0aXZlJyA6ICcnfS5wbmdcIlxuICAgICAgICAvPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiaXRlbS1kZXNjcmlwdGlvblwiPldlYnNpdGU8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdlxuICAgICAgICBjbGFzcz1cIml0ZW0ge3Jvb3QubGl2ZXN0cmVhbSA/ICdhY3RpdmUnIDogJyd9XCJcbiAgICAgICAgb246Y2xpY2s9eygpID0+IG9wZW5MaW5rKHJvb3QubGl2ZXN0cmVhbSl9XG4gICAgICA+XG4gICAgICAgIDxpbWdcbiAgICAgICAgICBjbGFzcz1cIml0ZW0taWNvblwiXG4gICAgICAgICAgc3JjPVwiaWNvbnMvdmlkZW97cm9vdC5saXZlc3RyZWFtID8gJy0tYWN0aXZlJyA6ICcnfS5wbmdcIlxuICAgICAgICAvPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiaXRlbS1kZXNjcmlwdGlvblwiPldhdGNoPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXZcbiAgICAgICAgY2xhc3M9XCJpdGVtIGFjdGl2ZVwiXG4gICAgICAgIG9uOmNsaWNrPXsoKSA9PlxuICAgICAgICAgIHdpbmRvdy5vcGVuKGBldmVudC8ke2V2ZW50LnByb3BlcnRpZXMuc2x1ZyB8fCBldmVudC5wcm9wZXJ0aWVzLmlkfWApfVxuICAgICAgPlxuICAgICAgICA8aW1nIGNsYXNzPVwiaXRlbS1pY29uXCIgc3JjPVwiaWNvbnMvc2hhcmUucG5nXCIgLz5cbiAgICAgICAgPGRpdiBjbGFzcz1cIml0ZW0tZGVzY3JpcHRpb24tLWFjdGl2ZSdcIj5TaGFyZTwvZGl2PlxuICAgICAgPC9kaXY+ICBcbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJzZWN0aW9uXCI+XG4gICAgPGRpdiBjbGFzcz1cInNlY3Rpb24taXRlbXNcIj5cbiAgICAgIDxkaXZcbiAgICAgICAgY2xhc3M9XCJpdGVtIHtyb290Lmludml0YXRpb24gPyAnYWN0aXZlJyA6ICcnfVwiXG4gICAgICAgIG9uOmNsaWNrPXsoKSA9PiBvcGVuTGluayhyb290Lmludml0YXRpb24pfVxuICAgICAgPlxuICAgICAgICA8aW1nXG4gICAgICAgICAgY2xhc3M9XCJpdGVtLWljb25cIlxuICAgICAgICAgIHNyYz1cImljb25zL2luZm97cm9vdC5pbnZpdGF0aW9uID8gJy0tYWN0aXZlJyA6ICcnfS5wbmdcIlxuICAgICAgICAvPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiaXRlbS1kZXNjcmlwdGlvblwiPkludml0YXRpb248L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdlxuICAgICAgICBjbGFzcz1cIml0ZW0ge3Jvb3Quc3RhcnRsaXN0ID8gJ2FjdGl2ZScgOiAnJ31cIlxuICAgICAgICBvbjpjbGljaz17KCkgPT4gb3Blbkxpbmsocm9vdC5zdGFydGxpc3QpfVxuICAgICAgPlxuICAgICAgICA8aW1nXG4gICAgICAgICAgY2xhc3M9XCJpdGVtLWljb25cIlxuICAgICAgICAgIHNyYz1cImljb25zL2xpc3R7cm9vdC5zdGFydGxpc3QgPyAnLS1hY3RpdmUnIDogJyd9LnBuZ1wiXG4gICAgICAgIC8+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJpdGVtLWRlc2NyaXB0aW9uXCI+U3RhcnQgTGlzdDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2XG4gICAgICAgIGNsYXNzPVwiaXRlbSB7cm9vdC5yZXN1bHRzID8gJ2FjdGl2ZScgOiAnJ31cIlxuICAgICAgICBvbjpjbGljaz17KCkgPT4gb3Blbkxpbmsocm9vdC5yZXN1bHRzKX1cbiAgICAgID5cbiAgICAgICAgPGltZ1xuICAgICAgICAgIGNsYXNzPVwiaXRlbS1pY29uXCJcbiAgICAgICAgICBzcmM9XCJpY29ucy9zdG9wd2F0Y2h7cm9vdC5yZXN1bHRzID8gJy0tYWN0aXZlJyA6ICcnfS5wbmdcIlxuICAgICAgICAvPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiaXRlbS1kZXNjcmlwdGlvblwiPlJlc3VsdHM8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cInNlY3Rpb25cIj5cbiAgIDxkaXYgY2xhc3M9XCJzZWN0aW9uLWl0ZW1zMlwiPlxuICAgICA8ZGl2XG5cdFx0XHRcdGNsYXNzPVwiaXRlbSB7Y29udGFjdHMgPyAnYWN0aXZlJyA6ICcnfVwiXG5cdFx0XHRcdG9uOmNsaWNrPXt0b2dnbGVWYWNhbmN5Qm94RGlzcGxheWVkfVxuXHRcdFx0XHRzdHlsZT1cImJhY2tncm91bmQtY29sb3I6ICMzNDk4ZGI7IGNvbG9yOiB3aGl0ZVwiXG5cdFx0XHQ+XG5cdFx0XHRcdDxpbWcgY2xhc3M9XCJpdGVtLWljb25cIiBzcmM9XCJpY29ucy9oaXJpbmd7dmFjYW5jaWVzICYmIE9iamVjdC5rZXlzKHZhY2FuY2llcykubGVuZ3RoID4gMCA/ICctLWFjdGl2ZScgOiAnJ30ucG5nXCIgLz5cblx0XHRcdFx0PGRpdiBjbGFzcz1cIml0ZW0tZGVzY3JpcHRpb25cIj5WYWNhbmNpZXM8L2Rpdj5cblx0XHRcdDwvZGl2PlxuXHRcdCAgICAgIDxkaXZcblx0XHRcdFx0Y2xhc3M9XCJpdGVtIHtjb250YWN0cyA/ICdhY3RpdmUnIDogJyd9XCJcblx0XHRcdFx0b246Y2xpY2s9e3RvZ2dsZUNvbnRhY3RCb3hEaXNwbGF5ZWR9XG5cdFx0XHRcdHN0eWxlPVwiYmFja2dyb3VuZC1jb2xvcjogIzM0OThkYjsgY29sb3I6IHdoaXRlXCJcblx0XHRcdD5cblx0XHRcdFx0PGltZyBjbGFzcz1cIml0ZW0taWNvblwiIHNyYz1cImljb25zL2NvbnRhY3Rze2NvbnRhY3RzICYmIGNvbnRhY3RzLmxlbmd0aCA+IDAgPyAnLS1hY3RpdmUnIDogJyd9LnBuZ1wiIC8+XG5cdFx0XHRcdDxkaXYgY2xhc3M9XCJpdGVtLWRlc2NyaXB0aW9uXCI+Q29udGFjdHM8L2Rpdj5cblx0XHRcdDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbiAgeyNpZiBpc0NvbnRhY3RCb3hEaXNwbGF5ZWR9XG5cdFx0PGRpdiBjbGFzcz1cImNvbnRhY3QtYm94XCI+XG5cdFx0XHQ8aDQgc3R5bGU9XCJmb250LXNpemU6MThweDtcIj5Pcmdhbml6ZXIgQ29udGFjdHM8L2g0PlxuXHRcdFx0eyNlYWNoIGV2ZW50LnByb3BlcnRpZXMuY29udGFjdHMgYXMgY29udGFjdH1cblx0XHRcdFx0PHAgc3R5bGU9XCJ0ZXh0LWFsaWduOiBsZWZ0OyBtYXJnaW4tdG9wOiA1cHg7IGZvbnQtc2l6ZTogMTZweDtcIj5cblx0XHRcdFx0XHQ8aW1nXG5cdFx0XHRcdFx0XHRjbGFzcz1cIml0ZW0taWNvblwiXG5cdFx0XHRcdFx0XHRzcmM9XCJpY29ucy97Y29udGFjdC50eXBlID09PSAnZW1haWwnID8gJ2VtYWlsJyA6ICdwaG9uZSd9LnBuZ1wiXG5cdFx0XHRcdFx0XHRzdHlsZT1cImhlaWdodDogMTRweDtcIlxuXHRcdFx0XHRcdC8+XG5cdFx0XHRcdFx0PHN0cm9uZz4ge2NvbnRhY3QuYWJvdXR9Ojwvc3Ryb25nPlxuXHRcdFx0XHRcdHtjb250YWN0LnZhbHVlfVxuXHRcdFx0XHQ8L3A+XG5cdFx0XHR7L2VhY2h9XG5cdFx0XHQ8YnV0dG9uIG9uOmNsaWNrPXt0b2dnbGVDb250YWN0Qm94RGlzcGxheWVkfT5DbG9zZTwvYnV0dG9uPlxuXHRcdDwvZGl2PlxuXHR7L2lmfVx0XG5cdFx0XG5cdHsjaWYgaXNWYWNhbmN5Qm94RGlzcGxheWVkfSBcblx0XHQ8ZGl2IGNsYXNzPVwiY29udGFjdC1ib3hcIj5cblx0XHRcdDxoNCBzdHlsZT1cImZvbnQtc2l6ZToxOHB4O1wiPlZhY2FuY2llcyB7dmFjYW5jaWVzICYmIE9iamVjdC5lbnRyaWVzKHZhY2FuY2llcykubGVuZ3RoID4gMCA/IFwiICgqKVwiIDogXCJcIn08L2g0PlxuXHRcdFx0eyNpZiB2YWNhbmNpZXMgJiYgT2JqZWN0LmVudHJpZXModmFjYW5jaWVzKS5sZW5ndGggPiAwfVxuXHRcdFx0PHRhYmxlIHN0eWxlPVwiZm9udC1zaXplOjE2cHg7IHRleHQtYWxpZ246IGNlbnRlcjtcIj5cdFx0XHRcbiAgXHRcdFx0PHRyPlxuICBcdFx0XHQgIDx0aCBzdHlsZT1cIm1pbi13aWR0aDogMjAwcHg7XCI+Q29tcGV0aXRpb248L3RoPlxuICBcdFx0XHQgIDx0aCBzdHlsZT1cIndpZHRoOiA1MHB4O1wiPlNwb3RzPC90aD5cbiAgXHRcdFx0ICA8dGggc3R5bGU9XCJtaW4td2lkdGg6IDYwcHg7XCI+TGV2ZWw8L3RoPlxuICBcdFx0XHQ8L3RyPlxuICBcdFx0XHR7I2VhY2ggT2JqZWN0LmVudHJpZXModmFjYW5jaWVzKSBhcyBbd2FSYW5rLCB2YWNhbmN5XX1cbiAgICAgICAgICB7I2VhY2ggT2JqZWN0LmVudHJpZXModmFjYW5jeSkgYXMgW2RnYSwgdmFjYW5jeURldGFpbHNdfVxuICAgICAgICAgICA8dHI+XG4gICAgICAgICAgICA8dGQ+e3ByZXR0eWZ5REdBKHdhUmFuaywgZGdhKX08L3RkPlxuICAgICAgICAgICAgPHRkPnt2YWNhbmN5RGV0YWlscy52YWNhbnRMYW5lc308L3RkPlxuICAgICAgICAgICAgPHRkPnt2YWNhbmN5RGV0YWlscy5lbnRyeVJlc3VsdCB8fCAnTi9BJ308L3RkPlxuICAgICAgICAgICAgPC90cj5cbiAgICB7L2VhY2h9XG5cdFx0XHR7L2VhY2h9XG5cdFx0XHQ8L3RhYmxlPlxuXHRcdFx0PGJyLz5cblx0XHRcdDxwIHN0eWxlPVwidGV4dC1hbGlnbjogY2VudGVyO1wiPigqKSBQbGVhc2UgY29udGFjdCB0aGUgb3JnYW5pemVycyBmb3IgbW9yZSBkZXRhaWxzPC9wPlxuXHRcdFx0ezplbHNlfVxuPHAgc3R5bGU9XCJ0ZXh0LWFsaWduOiBjZW50ZXI7XCI+Tm8gdmFjYW5jaWVzIGFubm91bmNlZDwvcD5cblx0XHRcdHsvaWZ9XG5cdFx0XHQ8YnV0dG9uIG9uOmNsaWNrPXt0b2dnbGVWYWNhbmN5Qm94RGlzcGxheWVkfT5DbG9zZTwvYnV0dG9uPlxuXHRcdDwvZGl2PlxuXHR7L2lmfVxuXG48L2Rpdj5cblxuPHN0eWxlPlxuICAuZnJhbWUge1xuXHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBmbGV4OiAxO1xuICAgIG1hcmdpbjogMCA1cHggMDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgLyogYm9yZGVyOiAxcHggc29saWQgZ3JlZW47ICovXG4gIH1cbiAgXG5cdC5mcmFtZSAuY29udGFjdC1ib3gge1xuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHR0ZXh0LWFsaWduOiBsZWZ0O1xuXHRcdHRvcDogNTBweDtcblx0XHRyaWdodDogMHB4O1xuICAgIG1pbi13aWR0aDogMzAwcHg7XG5cdFx0ei1pbmRleDogMTAwMDtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcblx0XHRib3JkZXI6IDFweCBzb2xpZCAjY2NjO1xuXHRcdGJvcmRlci1yYWRpdXM6IDVweDtcblx0XHRwYWRkaW5nOiAxNXB4O1xuXHRcdGJveC1zaGFkb3c6IDAgNHB4IDZweCByZ2JhKDAsIDAsIDAsIDAuMSk7XG5cdH1cblx0LmZyYW1lIC5jb250YWN0LWJveCBoNCB7XG5cdFx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHRcdG1hcmdpbjogMDtcblx0XHRtYXJnaW4tYm90dG9tOiAxMnB4O1xuXHR9XG5cdFxuXHQuZnJhbWUgLmNvbnRhY3QtYm94IHAge1xuXHQgIHdoaXRlLXNwYWNlOiBub3JtYWw7IC8qIEFsbG93cyB3cmFwcGluZyAqL1xuICAgIHdvcmQtYnJlYWs6IG5vcm1hbDsgLyogUHJldmVudHMgYnJlYWtpbmcgaW5zaWRlIHdvcmRzICovXG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICB0ZXh0LWluZGVudDogLTIwcHg7IC8qIE5lZ2F0aXZlIGluZGVudCBmb3IgdGhlIGZpcnN0IGxpbmUgKi9cbiAgICBwYWRkaW5nLWxlZnQ6IDIwcHg7IC8qIEFkZCBwYWRkaW5nIHRvIG9mZnNldCB0aGUgbmVnYXRpdmUgaW5kZW50ICovXG4gICAgZm9udC1zaXplOiAxNHB4O1xuXHR9XG5cblx0LmZyYW1lIC5jb250YWN0LWJveCBidXR0b24ge1xuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRyaWdodDogMTBweDtcblx0XHR0b3A6IDVweDtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAjZTkxYjVkO1xuXHRcdGJvcmRlcjogbm9uZTtcblx0XHRwYWRkaW5nOiAxMHB4IDE1cHg7XG5cdFx0Ym9yZGVyLXJhZGl1czogM3B4O1xuXHRcdGNvbG9yOiB3aGl0ZTtcblx0XHRjdXJzb3I6IHBvaW50ZXI7XG5cdFx0bWFyZ2luLXRvcDogM3B4O1xuXHR9XG4gIC5mcmFtZSAuc2VjdGlvbiB7XG4gICAgbWFyZ2luLWJvdHRvbTogMTBweDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgLyogYm9yZGVyOiAxcHggc29saWQgbmF2eTsgKi9cbiAgfVxuICAuZnJhbWUgLnNlY3Rpb24gLnNlY3Rpb24tdGl0bGUge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBtYXJnaW4tYm90dG9tOiAxMHB4O1xuICAgIHBhZGRpbmc6IDhweCAxMHB4O1xuICAgIGJhY2tncm91bmQtY29sb3I6IGxpZ2h0Z3JheTtcbiAgICBmb250LXNpemU6IDE2cHg7XG4gICAgLyogYm9yZGVyOiAxcHggc29saWQgYmx1ZTsgKi9cbiAgfVxuICAuZnJhbWUgLnNlY3Rpb24gLnNlY3Rpb24taXRlbXMge1xuICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMywgMWZyKTtcbiAgICBncmlkLXRlbXBsYXRlLXJvd3M6IDFmcjtcbiAgICBncmlkLWNvbHVtbi1nYXA6IDEwcHg7XG4gICAgZ3JpZC1yb3ctZ2FwOiAwcHg7XG4gICAganVzdGlmeS1pdGVtczogY2VudGVyO1xuICAgIC8qIGRpc3BsYXk6IGZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1ldmVubHk7ICovXG4gICAgLyogYm9yZGVyOiAxcHggc29saWQgYnJvd247ICovXG4gIH1cbiAgLmZyYW1lIC5zZWN0aW9uIC5zZWN0aW9uLWl0ZW1zIC5pdGVtIHtcbiAgICBmbGV4OiAxIDEgYXV0bztcbiAgICBoZWlnaHQ6IDM5cHg7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWF4LXdpZHRoOiAxNjBweDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIG1hcmdpbjogMTBweCA1cHg7XG4gICAgcGFkZGluZzogNXB4IDVweDtcbiAgICBib3JkZXItcmFkaXVzOiA1cHg7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItZm9yZWctdGV4dCk7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAvKiBib3JkZXI6IDFweCBzb2xpZCBvcmFuZ2U7ICovXG4gIH1cbiAgLmZyYW1lIC5zZWN0aW9uIC5zZWN0aW9uLWl0ZW1zIC5pdGVtIC5pdGVtLWljb24ge1xuICAgIGhlaWdodDogMjVweDtcbiAgICB3aWR0aDogMjVweDtcbiAgICBtYXJnaW46IDJweCA1cHg7XG4gICAgb2JqZWN0LWZpdDogY29udGFpbjtcbiAgICAvKiBib3JkZXI6IDFweCBzb2xpZCBibGFjazsgKi9cbiAgfVxuICAuZnJhbWUgLnNlY3Rpb24gLnNlY3Rpb24taXRlbXMgLml0ZW0gLml0ZW0tZGVzY3JpcHRpb24ge1xuICAgIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG4gICAgdmVydGljYWwtYWxpZ246IGNlbnRlcjtcbiAgICBtYXJnaW46IDJweCA1cHg7XG4gICAgZm9udC1zaXplOiAxNnB4O1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgLyogYm9yZGVyOiAxcHggc29saWQgc2xhdGVibHVlOyAqL1xuICB9XG4gIC5mcmFtZSAuc2VjdGlvbiAuc2VjdGlvbi1pdGVtcyAuYWN0aXZlIHtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgY29sb3I6ICNmNThjMjA7XG4gIH1cbiAgLmZyYW1lIC5zZWN0aW9uIC5zZWN0aW9uLWl0ZW1zIC5hY3RpdmU6aG92ZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLWZvcmVnLXNoYWRvdyk7XG4gIH1cblx0LmZyYW1lIC5zZWN0aW9uIC5zZWN0aW9uLWl0ZW1zMiB7XG5cdFx0ZGlzcGxheTogZ3JpZDtcblx0XHRncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgyLCAxZnIpO1xuXHRcdGdyaWQtdGVtcGxhdGUtcm93czogMWZyO1xuXHRcdGdyaWQtY29sdW1uLWdhcDogMTBweDtcblx0XHRncmlkLXJvdy1nYXA6IDBweDtcblx0XHRqdXN0aWZ5LWl0ZW1zOiBjZW50ZXI7XG5cdFx0LyogZGlzcGxheTogZmxleDtcblx0ICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWV2ZW5seTsgKi9cblx0XHQvKiBib3JkZXI6IDFweCBzb2xpZCBicm93bjsgKi9cblx0fVxuXHQuZnJhbWUgLnNlY3Rpb24gLnNlY3Rpb24taXRlbXMyIC5pdGVtIHtcblx0XHRmbGV4OiAxIDEgYXV0bztcblx0XHRoZWlnaHQ6IDM5cHg7XG5cdFx0d2lkdGg6IDEwMCU7XG5cdFx0LyogbWF4LXdpZHRoOiAxNjBweDsgKi9cblx0XHRvdmVyZmxvdzogaGlkZGVuO1xuXHRcdG1hcmdpbjogMTBweCA1cHg7XG5cdFx0cGFkZGluZzogNXB4IDVweDtcblx0XHRib3JkZXItcmFkaXVzOiA1cHg7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogIzM0OThkYjtcblx0XHRkaXNwbGF5OiBmbGV4O1xuXHRcdGZsZXgtd3JhcDogd3JhcDtcblx0XHRqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcblx0XHRhbGlnbi1pdGVtczogY2VudGVyO1xuXHRcdC8qIGJvcmRlcjogMXB4IHNvbGlkIG9yYW5nZTsgKi9cblx0fVxuXG5cdC5mcmFtZSAuc2VjdGlvbiAuc2VjdGlvbi1pdGVtczIgLml0ZW0gLml0ZW0taWNvbiB7XG5cdFx0aGVpZ2h0OiAyNXB4O1xuXHRcdHdpZHRoOiAyNXB4O1xuXHRcdG1hcmdpbjogMnB4IDVweDtcblx0XHRvYmplY3QtZml0OiBjb250YWluO1xuXHRcdC8qIGJvcmRlcjogMXB4IHNvbGlkIGJsYWNrOyAqL1xuXHR9XG5cdC5mcmFtZSAuc2VjdGlvbiAuc2VjdGlvbi1pdGVtczIgLml0ZW0gLml0ZW0tZGVzY3JpcHRpb24ge1xuXHRcdGRpc3BsYXk6IHRhYmxlLWNlbGw7XG5cdFx0dmVydGljYWwtYWxpZ246IGNlbnRlcjtcblx0XHRtYXJnaW46IDJweCA1cHg7XG5cdFx0Zm9udC1zaXplOiAxNnB4O1xuXHRcdHdoaXRlLXNwYWNlOiBub3dyYXA7XG5cdFx0LyogYm9yZGVyOiAxcHggc29saWQgc2xhdGVibHVlOyAqL1xuXHR9XG5cdC5mcmFtZSAuc2VjdGlvbiAuc2VjdGlvbi1pdGVtczIgLmFjdGl2ZSB7XG5cdFx0Y3Vyc29yOiBwb2ludGVyO1xuXHRcdGNvbG9yOiAjZjU4YzIwO1xuXHR9XG5cdC5mcmFtZSAuc2VjdGlvbiAuc2VjdGlvbi1pdGVtczIgLmFjdGl2ZTpob3ZlciB7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItZm9yZWctc2hhZG93KTtcblx0fVxuICBhIHtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIH1cbjwvc3R5bGU+XG4iLCI8c2NyaXB0PlxuICBpbXBvcnQgeyBjcmVhdGVFdmVudERpc3BhdGNoZXIgfSBmcm9tIFwic3ZlbHRlXCI7XG5cbiAgaW1wb3J0IHsgYXBwZW5kLCBjbG9uZSB9IGZyb20gXCJyYW1kYS9zcmNcIjtcbiAgaW1wb3J0IHtcbiAgICBnZXRBbGxQb3NzaWJsZURzYUl0ZW1zLFxuICAgIGdldEFsbFBvc3NpYmxlRGlzY2lwbGluZXMsXG4gICAgZ2V0QWxsUG9zc2libGVEaXNjaXBsaW5lR3JvdXBzLFxuICAgIGdldEFsbFBvc3NpYmxlU2V4ZXMsXG4gICAgZ2V0QWxsUG9zc2libGVBZ2VzLFxuICB9IGZyb20gXCIuL2luZGV4XCI7XG5cbiAgaW1wb3J0IHsgZGlzY2lwbGluZXNHcm91cHMsIHNleGVzLCBhZ2VzIH0gZnJvbSBcIi4vaW5kZXhcIjtcbiAgZXhwb3J0IGxldCBwcm9ncmFtO1xuICBleHBvcnQgbGV0IHNlbGVjdGVkRHNhSXRlbXMgPSBbXTtcbiAgbGV0IGF2YWlsYWJsZURzYUl0ZW1zID0gcHJvZ3JhbS5kc2FBcnJheTtcbiAgbGV0IGNkc2EgPSBwcm9ncmFtLmNkc2E7XG4gIGxldCBkaXNjaXBsaW5lR3JvdXBGaWx0ZXIgPSBnZXRBbGxQb3NzaWJsZURpc2NpcGxpbmVHcm91cHMoKTtcbiAgbGV0IGF2YWlsYWJsZURpc2NpcGxpbmVzID0gcHJvZ3JhbS5kaXNjaXBsaW5lcztcbiAgbGV0IGF2YWlsYWJsZURpc2NpcGxpbmVzQnlDYXRlZ29yeSA9IHByb2dyYW0uZGlzY2lwbGluZXNCeUNhdGVnb3J5O1xuICBsZXQgYXZhaWxhYmxlU2V4ZXMgPSBwcm9ncmFtLnNleGVzO1xuICBsZXQgc2V4ZXNGaWx0ZXIgPSBjbG9uZShhdmFpbGFibGVTZXhlcyk7XG4gIGxldCBhdmFpbGFibGVBZ2VzID0gcHJvZ3JhbS5hZ2VzO1xuICBsZXQgYWdlc0ZpbHRlciA9IHByb2dyYW0uYWdlcztcbiAgbGV0IGF2YWlsYWJsZUNhdGVnb3JpZXMgPSBwcm9ncmFtLmNhdGVnb3JpZXM7XG4gIGxldCBjYXRlZ29yaWVzRmlsdGVyID0gYXZhaWxhYmxlQ2F0ZWdvcmllcztcbiAgbGV0IHZhY2FuY2llcyA9IHByb2dyYW0udmFjYW5jaWVzO1xuICBsZXQgYWxsU2VsZWN0ZWQgPSBmYWxzZTtcblxuICBjb25zdCBkaXNwYXRjaCA9IGNyZWF0ZUV2ZW50RGlzcGF0Y2hlcigpO1xuICBjb25zdCB0b2dnbGVDb21wZXRpdGlvbkZpbHRlcmVkID0gKGNvbXBldGl0aW9uKSA9PiB7XG4gICAgY29uc3QgZHNhSXRlbSA9IGAke2NvbXBldGl0aW9uLmRpc2NpcGxpbmV9LSR7Y29tcGV0aXRpb24uc2V4fS0ke2NvbXBldGl0aW9uLmFnZX1gO1xuICAgIGlmIChzZWxlY3RlZERzYUl0ZW1zLmluY2x1ZGVzKGRzYUl0ZW0pKSB7XG4gICAgICBzZWxlY3RlZERzYUl0ZW1zID0gc2VsZWN0ZWREc2FJdGVtcy5maWx0ZXIoKGl0ZW0pID0+IGl0ZW0gIT09IGRzYUl0ZW0pO1xuICAgICAgZGlzcGF0Y2goXCJjb21wZXRpdGlvblVucGlja2VkXCIsIGNvbXBldGl0aW9uKTtcbiAgICB9IGVsc2Uge1xuICAgICAgc2VsZWN0ZWREc2FJdGVtcyA9IGFwcGVuZChkc2FJdGVtLCBzZWxlY3RlZERzYUl0ZW1zKTtcbiAgICAgIGRpc3BhdGNoKFwiY29tcGV0aXRpb25QaWNrZWRcIiwgY29tcGV0aXRpb24pO1xuICAgIH1cbiAgfTtcbiAgY29uc3QgdG9nZ2xlU2VsZWN0QWxsQ29tcGV0aXRpb25zID0gKCkgPT4ge1xuICAgIHNlbGVjdGVkRHNhSXRlbXMgPSBzZWxlY3RlZERzYUl0ZW1zLmxlbmd0aCA+IDAgPyBbXSA6IGF2YWlsYWJsZURzYUl0ZW1zO1xuICAgIGFsbFNlbGVjdGVkID0gIWFsbFNlbGVjdGVkO1xuICAgIGRpc3BhdGNoKFwic2VsZWN0QWxsQ29tcGV0aXRpb25zVG9nZ2xlZFwiKTtcbiAgfTtcbiAgY29uc3QgaXNEc2FMaXN0ZWQgPSAoY29tcGV0aXRpb24pID0+IGF2YWlsYWJsZURzYUl0ZW1zLmluY2x1ZGVzKGNvbXBldGl0aW9uKTtcblxuICBjb25zdCB0b2dnbGVTZXhTZWxlY3RlZCA9IChpZCkgPT4ge1xuICAgIGlmIChhdmFpbGFibGVTZXhlcy5pbmNsdWRlcyhpZCkpXG4gICAgICBzZXhlc0ZpbHRlciA9IHNleGVzRmlsdGVyLmluY2x1ZGVzKGlkKVxuICAgICAgICA/IHNleGVzRmlsdGVyLmZpbHRlcigoc2V4SWQpID0+IHNleElkICE9PSBpZClcbiAgICAgICAgOiBhcHBlbmQoaWQsIHNleGVzRmlsdGVyKTtcbiAgfTtcblxuICBjb25zdCB0b2dnbGVBZ2VTZWxlY3RlZCA9IChpZCkgPT4ge1xuICAgIGlmIChhdmFpbGFibGVBZ2VzLmluY2x1ZGVzKGlkKSlcbiAgICAgIGFnZXNGaWx0ZXIgPSBhZ2VzRmlsdGVyLmluY2x1ZGVzKGlkKVxuICAgICAgICA/IGFnZXNGaWx0ZXIuZmlsdGVyKChhZ2VJZCkgPT4gYWdlSWQgIT09IGlkKVxuICAgICAgICA6IGFwcGVuZChpZCwgYWdlc0ZpbHRlcik7XG4gIH07XG5cbiAgY29uc3QgdG9nZ2xlRGlzY2lwbGluZUdyb3VwU2VsZWN0ZWQgPSAoaWQpID0+IHtcbiAgICBkaXNjaXBsaW5lR3JvdXBGaWx0ZXIgPSBkaXNjaXBsaW5lR3JvdXBGaWx0ZXIuaW5jbHVkZXMoaWQpXG4gICAgICA/IGRpc2NpcGxpbmVHcm91cEZpbHRlci5maWx0ZXIoKGRnSWQpID0+IGRnSWQgIT09IGlkKVxuICAgICAgOiBhcHBlbmQoaWQsIGRpc2NpcGxpbmVHcm91cEZpbHRlcik7XG4gIH07XG5cbiAgJDoge1xuICAgIGF2YWlsYWJsZURpc2NpcGxpbmVzID0gcHJvZ3JhbS5kaXNjaXBsaW5lcztcbiAgICBhdmFpbGFibGVEaXNjaXBsaW5lc0J5Q2F0ZWdvcnkgPSBwcm9ncmFtLmRpc2NpcGxpbmVzQnlDYXRlZ29yeTtcbiAgICBhdmFpbGFibGVTZXhlcyA9IHByb2dyYW0uc2V4ZXM7XG4gICAgYXZhaWxhYmxlQWdlcyA9IHByb2dyYW0uYWdlcztcbiAgICBhdmFpbGFibGVEc2FJdGVtcyA9IHByb2dyYW0uZHNhQXJyYXk7XG4gICAgY2RzYSA9IHByb2dyYW0uY2RzYTtcbiAgICB2YWNhbmNpZXMgPSBwcm9ncmFtLnZhY2FuY2llcztcbiAgfVxuICBcbiAgJDogY29uc29sZS5sb2codmFjYW5jaWVzKVxuPC9zY3JpcHQ+XG5cbjxkaXYgY2xhc3M9XCJmcmFtZVwiPlxuICA8ZGl2IGNsYXNzPVwic2V4LWFnZS1maWx0ZXJzXCI+XG4gICAgPGRpdiBjbGFzcz1cInNleC1maWx0ZXJzXCI+XG4gICAgICA8IS0tIDxkaXZcbiAgICAgICAgY2xhc3M9XCJ6bmFja2EgYWdlXCJcbiAgICAgICAgY2xhc3M6aXNTZWxlY3RlZD17YWxsU2VsZWN0ZWR9XG4gICAgICAgIG9uOmNsaWNrPXt0b2dnbGVTZWxlY3RBbGxDb21wZXRpdGlvbnN9PlxuICAgICAgICA8aW1nIHNyYz1cImljb25zL3NlbGVjdC1hbGwucG5nXCIgYWx0PVwiXCIgLz5cbiAgICAgIDwvZGl2PiAtLT5cbiAgICAgIHsjZWFjaCBzZXhlcyBhcyBzZXh9XG4gICAgICAgIDxkaXZcbiAgICAgICAgICBjbGFzcz1cInpuYWNrYSB7YXZhaWxhYmxlU2V4ZXMuaW5jbHVkZXMoc2V4LmlkKSA/IHNleC5pZCA6ICcnfVwiXG4gICAgICAgICAgY2xhc3M6aXNVbmF2YWlsYWJsZT17IWF2YWlsYWJsZVNleGVzLmluY2x1ZGVzKHNleC5pZCl9XG4gICAgICAgICAgY2xhc3M6aXNTZWxlY3RlZD17c2V4ZXNGaWx0ZXIuaW5jbHVkZXMoc2V4LmlkKX1cbiAgICAgICAgICBvbjpjbGljaz17KCkgPT4gdG9nZ2xlU2V4U2VsZWN0ZWQoc2V4LmlkKX1cbiAgICAgICAgPlxuICAgICAgICAgIDxpbWcgc3JjPVwiaWNvbnMve3NleC5pZH0ucG5nXCIgYWx0PVwiXCIgLz5cbiAgICAgICAgPC9kaXY+XG4gICAgICB7L2VhY2h9XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImFnZS1maWx0ZXJzXCI+XG4gICAgICB7I2VhY2ggYWdlcyBhcyBhZ2V9XG4gICAgICAgIDxkaXZcbiAgICAgICAgICBjbGFzcz1cInpuYWNrYVwiXG4gICAgICAgICAgY2xhc3M6YWdlPXthdmFpbGFibGVBZ2VzLmluY2x1ZGVzKGFnZS5pZCl9XG4gICAgICAgICAgY2xhc3M6aXNVbmF2YWlsYWJsZT17IWF2YWlsYWJsZUFnZXMuaW5jbHVkZXMoYWdlLmlkKX1cbiAgICAgICAgICBjbGFzczppc1NlbGVjdGVkPXthZ2VzRmlsdGVyLmluY2x1ZGVzKGFnZS5pZCl9XG4gICAgICAgICAgb246Y2xpY2s9eygpID0+IHRvZ2dsZUFnZVNlbGVjdGVkKGFnZS5pZCl9XG4gICAgICAgID5cbiAgICAgICAgICB7YWdlLmlkLnRvVXBwZXJDYXNlKCl9XG4gICAgICAgIDwvZGl2PlxuICAgICAgey9lYWNofVxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cImNvbXBldGl0aW9ucy1mcmFtZVwiPlxuICAgIHsjaWYgY2RzYSAmJiBhdmFpbGFibGVEaXNjaXBsaW5lc0J5Q2F0ZWdvcnl9XG4gICAgICB7I2VhY2ggYXZhaWxhYmxlQ2F0ZWdvcmllcyBhcyBjYXRlZ29yeX1cbiAgICAgICAgPGRpdiBjbGFzcz1cImNhdGVnb3J5LWhlYWRlclwiPlxuICAgICAgICAgIFdBIHJhbms6IHtjYXRlZ29yeS50b1VwcGVyQ2FzZSgpfVxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgeyNlYWNoIGRpc2NpcGxpbmVzR3JvdXBzIGFzIGdyb3VwfVxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb21wZXRpdGlvbnMtZ3JvdXBcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJncm91cC1oZWFkZXJcIj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImdyb3VwLW5hbWVcIj57Z3JvdXAubmFtZVtncm91cC5uYW1lLnBwXX08L2Rpdj5cbiAgICAgICAgICAgICAgPGltZ1xuICAgICAgICAgICAgICAgIHNyYz1cImljb25zL3shZGlzY2lwbGluZUdyb3VwRmlsdGVyLmluY2x1ZGVzKGdyb3VwLmlkKVxuICAgICAgICAgICAgICAgICAgPyAnbWF4aW1pemUnXG4gICAgICAgICAgICAgICAgICA6ICdtaW5pbWl6ZSd9LnBuZ1wiXG4gICAgICAgICAgICAgICAgYWx0PVwiXCJcbiAgICAgICAgICAgICAgICBvbjpjbGljaz17KCkgPT4gdG9nZ2xlRGlzY2lwbGluZUdyb3VwU2VsZWN0ZWQoZ3JvdXAuaWQpfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICB7I2lmIGRpc2NpcGxpbmVHcm91cEZpbHRlci5pbmNsdWRlcyhncm91cC5pZCl9XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJncm91cC1kaXNjaXBsaW5lc1wiPlxuICAgICAgICAgICAgICAgIHsjZWFjaCBncm91cC5kaXNjaXBsaW5lcyBhcyBkaXNjaXBsaW5lfVxuICAgICAgICAgICAgICAgICAgeyNpZiBhdmFpbGFibGVEaXNjaXBsaW5lc0J5Q2F0ZWdvcnlbY2F0ZWdvcnldLmluY2x1ZGVzKGRpc2NpcGxpbmUuaWQpfVxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZGlzY2lwbGluZVwiPlxuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkaXNjaXBsaW5lLW5hbWVcIj57ZGlzY2lwbGluZS5uYW1lLmVuZ308L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICB7I2VhY2ggc2V4ZXNGaWx0ZXIgYXMgc2V4fVxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImRpc2NpcGxpbmUtY29tcGV0aXRpb25zXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHsjZWFjaCBhZ2VzRmlsdGVyIGFzIGFnZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7I2lmIHByb2dyYW0uY2RzYVtjYXRlZ29yeV0uaW5jbHVkZXMoYCR7ZGlzY2lwbGluZS5pZH0tJHtzZXh9LSR7YWdlfWApfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbjpjbGljaz17KCkgPT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b2dnbGVDb21wZXRpdGlvbkZpbHRlcmVkKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNleCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFnZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc2NpcGxpbmU6IGRpc2NpcGxpbmUuaWQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiem5hY2thIHtzZXh9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M6aXNTZWxlY3RlZD17c2VsZWN0ZWREc2FJdGVtcy5pbmNsdWRlcyhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBgJHtkaXNjaXBsaW5lLmlkfS0ke3NleH0tJHthZ2V9YFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7YWdlLnRvVXBwZXJDYXNlKCl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsjaWYgdmFjYW5jaWVzICYmIHZhY2FuY2llc1tjYXRlZ29yeV0gJiYgdmFjYW5jaWVzW2NhdGVnb3J5XVtgJHtkaXNjaXBsaW5lLmlkfS0ke3NleH0tJHthZ2V9YF19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwic3dhdGNoIHt2YWNhbmNpZXNbY2F0ZWdvcnldW2Ake2Rpc2NpcGxpbmUuaWR9LSR7c2V4fS0ke2FnZX1gXS52YWNhbmN5QWxlcnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyAnYWxlcnQnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogJyd9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID57dmFjYW5jaWVzW2NhdGVnb3J5XVtgJHtkaXNjaXBsaW5lLmlkfS0ke3NleH0tJHthZ2V9YF0udmFjYW50TGFuZXN9PC9zcGFuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7L2lmfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7L2lmfVxuICAgICAgICAgICAgICAgICAgICAgICAgICB7L2VhY2h9XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICB7L2VhY2h9XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgey9pZn1cbiAgICAgICAgICAgICAgICB7L2VhY2h9XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgey9pZn1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgey9lYWNofVxuICAgICAgey9lYWNofVxuICAgIHs6ZWxzZX1cbiAgICAgIHsjZWFjaCBkaXNjaXBsaW5lc0dyb3VwcyBhcyBncm91cH1cbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbXBldGl0aW9ucy1ncm91cFwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJncm91cC1oZWFkZXJcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJncm91cC1uYW1lXCI+e2dyb3VwLm5hbWVbZ3JvdXAubmFtZS5wcF19PC9kaXY+XG4gICAgICAgICAgICA8aW1nXG4gICAgICAgICAgICAgIHNyYz1cImljb25zL3shZGlzY2lwbGluZUdyb3VwRmlsdGVyLmluY2x1ZGVzKGdyb3VwLmlkKVxuICAgICAgICAgICAgICAgID8gJ21heGltaXplJ1xuICAgICAgICAgICAgICAgIDogJ21pbmltaXplJ30ucG5nXCJcbiAgICAgICAgICAgICAgYWx0PVwiXCJcbiAgICAgICAgICAgICAgb246Y2xpY2s9eygpID0+IHRvZ2dsZURpc2NpcGxpbmVHcm91cFNlbGVjdGVkKGdyb3VwLmlkKX1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgeyNpZiBkaXNjaXBsaW5lR3JvdXBGaWx0ZXIuaW5jbHVkZXMoZ3JvdXAuaWQpfVxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImdyb3VwLWRpc2NpcGxpbmVzXCI+XG4gICAgICAgICAgICAgIHsjZWFjaCBncm91cC5kaXNjaXBsaW5lcyBhcyBkaXNjaXBsaW5lfVxuICAgICAgICAgICAgICAgIHsjaWYgYXZhaWxhYmxlRGlzY2lwbGluZXMuaW5jbHVkZXMoZGlzY2lwbGluZS5pZCl9XG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZGlzY2lwbGluZVwiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZGlzY2lwbGluZS1uYW1lXCI+e2Rpc2NpcGxpbmUubmFtZS5lbmd9PC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIHsjZWFjaCBzZXhlc0ZpbHRlciBhcyBzZXh9XG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImRpc2NpcGxpbmUtY29tcGV0aXRpb25zXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICB7I2VhY2ggYWdlc0ZpbHRlciBhcyBhZ2V9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHsjaWYgaXNEc2FMaXN0ZWQoYCR7ZGlzY2lwbGluZS5pZH0tJHtzZXh9LSR7YWdlfWApfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uOmNsaWNrPXsoKSA9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b2dnbGVDb21wZXRpdGlvbkZpbHRlcmVkKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXgsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWdlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc2NpcGxpbmU6IGRpc2NpcGxpbmUuaWQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ6bmFja2Ege3NleH1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M6aXNTZWxlY3RlZD17c2VsZWN0ZWREc2FJdGVtcy5pbmNsdWRlcyhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYCR7ZGlzY2lwbGluZS5pZH0tJHtzZXh9LSR7YWdlfWBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2FnZS50b1VwcGVyQ2FzZSgpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICB7L2lmfVxuICAgICAgICAgICAgICAgICAgICAgICAgey9lYWNofVxuICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICB7L2VhY2h9XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICB7L2lmfVxuICAgICAgICAgICAgICB7L2VhY2h9XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICB7L2lmfVxuICAgICAgICA8L2Rpdj5cbiAgICAgIHsvZWFjaH1cbiAgICB7L2lmfVxuICA8L2Rpdj5cbjwvZGl2PlxuXG48c3R5bGU+XG4gIC5mcmFtZSB7XG4gIH1cbiAgLnNleC1hZ2UtZmlsdGVycyB7XG4gICAgcGFkZGluZzogNXB4O1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICAgIC8qIGJhY2tncm91bmQtY29sb3I6IGxpZ2h0Z3JheTsgKi9cbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgfVxuICAuc2V4LWZpbHRlcnMge1xuICAgIGZsZXg6IDEgMCBhdXRvO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICAgIG1hcmdpbjogNXB4IDA7XG4gICAgLyogYmFja2dyb3VuZC1jb2xvcjogI2VjZjBmMTsgKi9cbiAgfVxuICAuYWdlLWZpbHRlcnMge1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgbWFyZ2luOiA1cHggMDtcbiAgICAvKiBiYWNrZ3JvdW5kLWNvbG9yOiAjZWNmMGYxOyAqL1xuICB9XG4gIC5jb21wZXRpdGlvbnMtZnJhbWUge1xuICAgIC8qIHdpZHRoOiBjYWxjKDEwMCUgKyAxMHB4KTsgKi9cbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAvKiBtYXJnaW46IC01cHg7ICovXG4gIH1cbiAgLmNhdGVnb3J5LWhlYWRlciB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgYmFja2dyb3VuZDogI2Y1OGQyMDtcbiAgICBjb2xvcjogd2hpdGVzbW9rZTtcbiAgICBib3JkZXItcmFkaXVzOiAzcHg7XG4gICAgZm9udC1zaXplOiAxNnB4O1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgIHBhZGRpbmc6IDVweDtcbiAgICBtYXJnaW46IDAgNXB4O1xuICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICB9XG4gIC5jb21wZXRpdGlvbnMtZ3JvdXAge1xuICAgIGZsZXg6IDEgMSBhdXRvO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYig1OSwgMjExLCAyMzgpO1xuICAgIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgICBtYXJnaW46IDVweDtcbiAgICBwYWRkaW5nOiA1cHg7XG4gIH1cbiAgLmdyb3VwLWhlYWRlciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICBiYWNrZ3JvdW5kOiAjMzQ5OGRiO1xuICAgIGNvbG9yOiB3aGl0ZTtcbiAgfVxuICAuZ3JvdXAtaGVhZGVyIGltZyB7XG4gICAgaGVpZ2h0OiAyMHB4O1xuICAgIHdpZHRoOiAyMHB4O1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBwYWRkaW5nOiA1cHg7XG4gIH1cbiAgLmdyb3VwLW5hbWUge1xuICAgIGhlaWdodDogMzBweDtcbiAgICBmb250LXNpemU6IDE2cHg7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGRlcjtcbiAgICBwYWRkaW5nOiA1cHggMTBweDtcbiAgfVxuICAuZ3JvdXAtZGlzY2lwbGluZXMge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICB9XG4gIC5kaXNjaXBsaW5lIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgcGFkZGluZzogNXB4O1xuICAgIG1hcmdpbjogNXB4O1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNlY2YwZjE7XG4gICAgYm9yZGVyLXJhZGl1czogM3B4O1xuICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbiAgfVxuICAuZGlzY2lwbGluZS1uYW1lIHtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgcGFkZGluZzogNXB4O1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gIH1cbiAgLmRpc2NpcGxpbmUtY29tcGV0aXRpb25zIHtcbiAgICAvKiB3aWR0aDogNzAlOyAqL1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGxlZnQ7XG4gIH1cbiAgLnpuYWNrZSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgfVxuICAuem5hY2thIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgZmxleDogMCAxIGF1dG87XG4gICAgb3BhY2l0eTogMC41O1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBtYXJnaW46IDJweDtcbiAgICBwYWRkaW5nOiA1cHggMnB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgfVxuICAgIC56bmFja2EgLnN3YXRjaCB7XG4gICAgcG9zaXRpb246IGFic29sdXRlOyAvKiBQb3NpdGlvbmVkIHJlbGF0aXZlIHRvIHRoZSBidXR0b24gKi9cbiAgICB3aWR0aDogMThweDtcbiAgICBoZWlnaHQ6IDE4cHg7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlOyAvKiBNYWtlcyBpdCBjaXJjdWxhciAqL1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHdoaXRlO1xuICAgIGJhY2tncm91bmQtY29sb3I6IGdvbGQ7IC8qIFN3YXRjaCBjb2xvciAqL1xuICAgIHRvcDogLTEycHg7IC8qIE1vdmVzIHRoZSBzd2F0Y2ggYWJvdmUgdGhlIGJ1dHRvbiAqL1xuICAgIHJpZ2h0OiAtNnB4OyAvKiBNb3ZlcyB0aGUgc3dhdGNoIHRvIHRoZSByaWdodCBvZiB0aGUgYnV0dG9uICovXG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGxpbmUtaGVpZ2h0OiAxNnB4OyAvKiBWZXJ0aWNhbGx5IGNlbnRlcnMgdGV4dCAobWF0Y2hlcyBoZWlnaHQgb2Ygc3dhdGNoKSAqL1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBjb2xvcjogYmxhY2s7XG4gIH1cbiAgLnpuYWNrYSAuYWxlcnQge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJlZDtcbiAgICBjb2xvcjogd2hpdGU7XG4gIH1cbiAgLmlzVW5hdmFpbGFibGUge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICAgIGNvbG9yOiBibGFjaztcbiAgICBib3JkZXI6IDJweCBzb2xpZCB3aGl0ZTtcbiAgICBjdXJzb3I6IGluaXRpYWw7XG4gIH1cbiAgLmlzU2VsZWN0ZWQge1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbiAgLmFnZSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogZ3JheTtcbiAgICBjb2xvcjogd2hpdGU7XG4gICAgYm9yZGVyOiAycHggc29saWQgZ3JheTtcbiAgfVxuICAudyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDIzNSwgOTIsIDkyKTtcbiAgICBjb2xvcjogd2hpdGU7XG4gICAgYm9yZGVyOiAycHggc29saWQgcmdiKDIzNSwgOTIsIDkyKTtcbiAgfVxuICAubSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDgyLCAxMzcsIDIwOSk7XG4gICAgY29sb3I6IHdoaXRlO1xuICAgIGJvcmRlcjogMnB4IHNvbGlkIHJnYig4MiwgMTM3LCAyMDkpO1xuICB9XG4gIC54IHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBnb2xkZW5yb2Q7XG4gICAgY29sb3I6IGJsYWNrO1xuICAgIGJvcmRlcjogMnB4IHNvbGlkIGdvbGRlbnJvZDtcbiAgfVxuICAuem5hY2thIGltZyB7XG4gICAgaGVpZ2h0OiAyM3B4O1xuICAgIHBhZGRpbmc6IDAgOHB4O1xuICB9XG5cbiAgLnRlc3Qge1xuICAgIHdpZHRoOiA1MDBweDtcbiAgICBoZWlnaHQ6IDUwMHB4O1xuICAgIGJhY2tncm91bmQtY29sb3I6IGdyYXk7XG4gICAgYm9yZGVyOiAycHggc29saWQgdHVycXVvaXNlO1xuICB9XG48L3N0eWxlPlxuIiwiPHNjcmlwdD5cbiAgaW1wb3J0IHsgYXBwZW5kIH0gZnJvbSBcInJhbWRhL3NyY1wiO1xuXG4gIGltcG9ydCB7IGZpbHRlckNvdW50cmllc0xpc3QgfSBmcm9tIFwiLi9BY2Nlc3NFZGl0b3JcIjtcblxuICBpbXBvcnQgeyB1c2VyIH0gZnJvbSBcIi4uLy4uL3N0b3Jlc1wiO1xuICBpbXBvcnQgeyBjb3VudHJpZXNMaXN0IH0gZnJvbSBcIi4vQWNjZXNzRWRpdG9yXCI7XG4gIC8qICoqKiAqL1xuICBjb25zdCB0ZW1wQ291bnRyaWVzTGlzdCA9IGNvdW50cmllc0xpc3RbM11bXCJjb3VudHJpZXNcIl07XG4gIC8qICoqKiAqL1xuXG4gIGV4cG9ydCBsZXQgYWNjZXNzID0gW107XG4gIGxldCBmaWx0ZXJlZENvdW50cmllc0xpc3QgPSBbXTtcbiAgbGV0IGNvdW50cnlGaWx0ZXIgPSBcIlwiO1xuXG4gIGNvbnN0IHRvZ2dsZUFjY2Vzc0dyYW50ZWQgPSAoY291bnRyeSkgPT4ge1xuICAgIGFjY2VzcyA9IGFjY2Vzcy5pbmNsdWRlcyhjb3VudHJ5LmlkKVxuICAgICAgPyBhY2Nlc3MuZmlsdGVyKChpZCkgPT4gaWQgIT09IGNvdW50cnkuaWQpXG4gICAgICA6IGFwcGVuZChjb3VudHJ5LmlkLCBhY2Nlc3MpO1xuICB9O1xuXG4gICQ6IGlmIChhY2Nlc3MubGVuZ3RoID09PSAwKSBhY2Nlc3MgPSBhcHBlbmQoXCJhbnlcIiwgYWNjZXNzKTtcbiAgJDoge1xuICAgIGNvdW50cnlGaWx0ZXI7XG4gICAgZmlsdGVyZWRDb3VudHJpZXNMaXN0ID0gZmlsdGVyQ291bnRyaWVzTGlzdChcbiAgICAgIHRlbXBDb3VudHJpZXNMaXN0LFxuICAgICAgY291bnRyeUZpbHRlclxuICAgICk7XG4gIH1cbjwvc2NyaXB0PlxuXG48c3R5bGU+XG4gIC56bmFja2Uge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICB9XG4gIC8qIC56bmFja2Ege1xuICAgIC0tYmdkOiBkYXJrYmx1ZTtcbiAgICBtYXJnaW46IDJweDtcbiAgICBmb250LXNpemU6IDEwcHg7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICBjb2xvcjogd2hpdGU7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYmdkKTtcbiAgICBvcGFjaXR5OiAwLjY7XG4gICAgYm9yZGVyLXJhZGl1czogNXB4O1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBwYWRkaW5nOiAycHg7XG4gICAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gIH0gKi9cbiAgLyogLmF0dHJpYnV0ZWQge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgY29sb3I6IGdvbGQ7XG4gIH0gKi9cbiAgLnpuYWNrYSB7XG4gICAgaGVpZ2h0OiB2YXIoLS1mbGFnLWhlaWdodCk7XG4gICAgd2lkdGg6IHZhcigtLWZsYWctd2lkdGgpO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgYm94LXNoYWRvdzogMCAwIDVweCA1cHggdmFyKC0tY29sb3ItYmFja2ctbWlkKTtcbiAgICBvcGFjaXR5OiAwLjU7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICB9XG4gIC56bmFja2EgaW1nIHtcbiAgICBoZWlnaHQ6IHZhcigtLWZsYWctaGVpZ2h0KTtcbiAgICB3aWR0aDogdmFyKC0tZmxhZy13aWR0aCk7XG4gICAgb2JqZWN0LWZpdDogY29udGFpbjtcbiAgfVxuICBpbnB1dCB7XG4gICAgYm9yZGVyOiAxcHggc29saWQgYmxhY2s7XG4gIH1cbiAgLnNlbGVjdGVkIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIGJhY2tncm91bmQ6ICNmNThkMjA7XG4gIH1cbjwvc3R5bGU+XG5cbkZpbHRlciBjb3VudHJpZXMgYnkgbmFtZTpcbjxpbnB1dCBiaW5kOnZhbHVlPXtjb3VudHJ5RmlsdGVyfSAvPlxuPGJyIC8+XG48ZGl2IGNsYXNzPVwiem5hY2tlXCI+XG4gIHsjZWFjaCBmaWx0ZXJlZENvdW50cmllc0xpc3QgYXMgY291bnRyeX1cbiAgICA8ZGl2IGNsYXNzPVwiem5hY2thXCIgY2xhc3M6c2VsZWN0ZWQ9e2FjY2Vzcy5pbmNsdWRlcyhjb3VudHJ5LmlkKX0+XG4gICAgICA8aW1nXG4gICAgICAgIG9uOmNsaWNrPXsoKSA9PiB0b2dnbGVBY2Nlc3NHcmFudGVkKGNvdW50cnkpfVxuICAgICAgICBzcmM9XCJmbGFncy9zdmcve2NvdW50cnkuaWR9LnN2Z1wiXG4gICAgICAgIHRpdGxlPXtjb3VudHJ5Lm5hbWVbJHVzZXIucHJlZmVyZWRMYW5ndWFnZV0gfHwgY291bnRyeS5uYW1lW2NvdW50cnkubmFtZS5wcF19IC8+XG4gICAgPC9kaXY+XG4gIHsvZWFjaH1cbjwvZGl2PlxuIiwiPHNjcmlwdD5cbiAgaW1wb3J0IHsgY3JlYXRlRXZlbnREaXNwYXRjaGVyIH0gZnJvbSBcInN2ZWx0ZVwiO1xuXG4gIGltcG9ydCB7IGFwcGVuZCwgY2xvbmUgfSBmcm9tIFwicmFtZGEvc3JjXCI7XG4gIGltcG9ydCB7XG4gICAgZ2V0QWxsUG9zc2libGVEc2FJdGVtcyxcbiAgICBnZXRBbGxQb3NzaWJsZURpc2NpcGxpbmVzLFxuICAgIGdldEFsbFBvc3NpYmxlRGlzY2lwbGluZUdyb3VwcyxcbiAgICBnZXRBbGxQb3NzaWJsZVNleGVzLFxuICAgIGdldEFsbFBvc3NpYmxlQWdlcyxcbiAgfSBmcm9tIFwiLi9pbmRleFwiO1xuXG4gIGltcG9ydCB7IGRpc2NpcGxpbmVzR3JvdXBzLCBzZXhlcywgYWdlcyB9IGZyb20gXCIuL2luZGV4XCI7XG4gIGV4cG9ydCBsZXQgcHJvZ3JhbTtcbiAgZXhwb3J0IGxldCBkZWZhdWx0QWdlID0gXCJhYnNcIjtcbiAgZXhwb3J0IGxldCBzZWxlY3RlZERzYUl0ZW1zID0gW107XG4gIGxldCBhdmFpbGFibGVEc2FJdGVtcyA9IHByb2dyYW0gPyBwcm9ncmFtLmRzYUFycmF5IDogZ2V0QWxsUG9zc2libGVEc2FJdGVtcygpO1xuICBsZXQgZGlzY2lwbGluZUdyb3VwRmlsdGVyID0gZ2V0QWxsUG9zc2libGVEaXNjaXBsaW5lR3JvdXBzKCk7XG4gIGxldCBhdmFpbGFibGVEaXNjaXBsaW5lcyA9IHByb2dyYW1cbiAgICA/IHByb2dyYW0uZGlzY2lwbGluZXNcbiAgICA6IGdldEFsbFBvc3NpYmxlRGlzY2lwbGluZXMoKTtcbiAgbGV0IGF2YWlsYWJsZVNleGVzID0gcHJvZ3JhbSA/IHByb2dyYW0uc2V4ZXMgOiBnZXRBbGxQb3NzaWJsZVNleGVzKCk7XG4gIGxldCBzZXhlc0ZpbHRlciA9IGNsb25lKGF2YWlsYWJsZVNleGVzKTtcbiAgbGV0IGF2YWlsYWJsZUFnZXMgPSBwcm9ncmFtID8gcHJvZ3JhbS5hZ2VzIDogZ2V0QWxsUG9zc2libGVBZ2VzKCk7XG4gIGxldCBhZ2VzRmlsdGVyID0gcHJvZ3JhbSA/IHByb2dyYW0uYWdlcyA6IFtkZWZhdWx0QWdlXTtcbiAgbGV0IGFsbFNlbGVjdGVkID0gZmFsc2U7XG5cbiAgY29uc3QgZGlzcGF0Y2ggPSBjcmVhdGVFdmVudERpc3BhdGNoZXIoKTtcbiAgY29uc3QgdG9nZ2xlQ29tcGV0aXRpb25GaWx0ZXJlZCA9IChjb21wZXRpdGlvbikgPT4ge1xuICAgIGNvbnN0IGRzYUl0ZW0gPSBgJHtjb21wZXRpdGlvbi5kaXNjaXBsaW5lfS0ke2NvbXBldGl0aW9uLnNleH0tJHtjb21wZXRpdGlvbi5hZ2V9YDtcbiAgICBpZiAoc2VsZWN0ZWREc2FJdGVtcy5pbmNsdWRlcyhkc2FJdGVtKSkge1xuICAgICAgc2VsZWN0ZWREc2FJdGVtcyA9IHNlbGVjdGVkRHNhSXRlbXMuZmlsdGVyKChpdGVtKSA9PiBpdGVtICE9PSBkc2FJdGVtKTtcbiAgICAgIGRpc3BhdGNoKFwiY29tcGV0aXRpb25VbnBpY2tlZFwiLCBjb21wZXRpdGlvbik7XG4gICAgfSBlbHNlIHtcbiAgICAgIHNlbGVjdGVkRHNhSXRlbXMgPSBhcHBlbmQoZHNhSXRlbSwgc2VsZWN0ZWREc2FJdGVtcyk7XG4gICAgICBkaXNwYXRjaChcImNvbXBldGl0aW9uUGlja2VkXCIsIGNvbXBldGl0aW9uKTtcbiAgICB9XG4gIH07XG4gIGNvbnN0IHRvZ2dsZVNlbGVjdEFsbENvbXBldGl0aW9ucyA9ICgpID0+IHtcbiAgICBzZWxlY3RlZERzYUl0ZW1zID0gc2VsZWN0ZWREc2FJdGVtcy5sZW5ndGggPiAwID8gW10gOiBhdmFpbGFibGVEc2FJdGVtcztcbiAgICBhbGxTZWxlY3RlZCA9ICFhbGxTZWxlY3RlZDtcbiAgICBkaXNwYXRjaChcInNlbGVjdEFsbENvbXBldGl0aW9uc1RvZ2dsZWRcIik7XG4gIH07XG4gIGNvbnN0IGlzRHNhTGlzdGVkID0gKGNvbXBldGl0aW9uKSA9PiBhdmFpbGFibGVEc2FJdGVtcy5pbmNsdWRlcyhjb21wZXRpdGlvbik7XG5cbiAgY29uc3QgdG9nZ2xlU2V4U2VsZWN0ZWQgPSAoaWQpID0+IHtcbiAgICBpZiAoYXZhaWxhYmxlU2V4ZXMuaW5jbHVkZXMoaWQpKVxuICAgICAgc2V4ZXNGaWx0ZXIgPSBzZXhlc0ZpbHRlci5pbmNsdWRlcyhpZClcbiAgICAgICAgPyBzZXhlc0ZpbHRlci5maWx0ZXIoKHNleElkKSA9PiBzZXhJZCAhPT0gaWQpXG4gICAgICAgIDogYXBwZW5kKGlkLCBzZXhlc0ZpbHRlcik7XG4gIH07XG5cbiAgY29uc3QgdG9nZ2xlQWdlU2VsZWN0ZWQgPSAoaWQpID0+IHtcbiAgICBpZiAoYXZhaWxhYmxlQWdlcy5pbmNsdWRlcyhpZCkpXG4gICAgICBhZ2VzRmlsdGVyID0gYWdlc0ZpbHRlci5pbmNsdWRlcyhpZClcbiAgICAgICAgPyBhZ2VzRmlsdGVyLmZpbHRlcigoYWdlSWQpID0+IGFnZUlkICE9PSBpZClcbiAgICAgICAgOiBhcHBlbmQoaWQsIGFnZXNGaWx0ZXIpO1xuICB9O1xuXG4gIGNvbnN0IHRvZ2dsZURpc2NpcGxpbmVHcm91cFNlbGVjdGVkID0gKGlkKSA9PiB7XG4gICAgZGlzY2lwbGluZUdyb3VwRmlsdGVyID0gZGlzY2lwbGluZUdyb3VwRmlsdGVyLmluY2x1ZGVzKGlkKVxuICAgICAgPyBkaXNjaXBsaW5lR3JvdXBGaWx0ZXIuZmlsdGVyKChkZ0lkKSA9PiBkZ0lkICE9PSBpZClcbiAgICAgIDogYXBwZW5kKGlkLCBkaXNjaXBsaW5lR3JvdXBGaWx0ZXIpO1xuICB9O1xuXG4gICQ6IHtcbiAgICBhdmFpbGFibGVEaXNjaXBsaW5lcyA9IHByb2dyYW1cbiAgICAgID8gcHJvZ3JhbS5kaXNjaXBsaW5lc1xuICAgICAgOiBnZXRBbGxQb3NzaWJsZURpc2NpcGxpbmVzKCk7XG4gICAgYXZhaWxhYmxlU2V4ZXMgPSBwcm9ncmFtID8gcHJvZ3JhbS5zZXhlcyA6IGdldEFsbFBvc3NpYmxlU2V4ZXMoKTtcbiAgICBhdmFpbGFibGVBZ2VzID0gcHJvZ3JhbSA/IHByb2dyYW0uYWdlcyA6IGdldEFsbFBvc3NpYmxlQWdlcygpO1xuICAgIGF2YWlsYWJsZURzYUl0ZW1zID0gcHJvZ3JhbSA/IHByb2dyYW0uZHNhQXJyYXkgOiBnZXRBbGxQb3NzaWJsZURzYUl0ZW1zKCk7XG4gIH1cbjwvc2NyaXB0PlxuXG48ZGl2IGNsYXNzPVwiZnJhbWVcIj5cbiAgPGRpdiBjbGFzcz1cInNleC1hZ2UtZmlsdGVyc1wiPlxuICAgIDxkaXYgY2xhc3M9XCJzZXgtZmlsdGVyc1wiPlxuICAgICAgPCEtLSA8ZGl2XG4gICAgICAgIGNsYXNzPVwiem5hY2thIGFnZVwiXG4gICAgICAgIGNsYXNzOmlzU2VsZWN0ZWQ9e2FsbFNlbGVjdGVkfVxuICAgICAgICBvbjpjbGljaz17dG9nZ2xlU2VsZWN0QWxsQ29tcGV0aXRpb25zfT5cbiAgICAgICAgPGltZyBzcmM9XCJpY29ucy9zZWxlY3QtYWxsLnBuZ1wiIGFsdD1cIlwiIC8+XG4gICAgICA8L2Rpdj4gLS0+XG4gICAgICB7I2VhY2ggc2V4ZXMgYXMgc2V4fVxuICAgICAgICA8ZGl2XG4gICAgICAgICAgY2xhc3M9XCJ6bmFja2Ege2F2YWlsYWJsZVNleGVzLmluY2x1ZGVzKHNleC5pZCkgPyBzZXguaWQgOiAnJ31cIlxuICAgICAgICAgIGNsYXNzOmlzVW5hdmFpbGFibGU9eyFhdmFpbGFibGVTZXhlcy5pbmNsdWRlcyhzZXguaWQpfVxuICAgICAgICAgIGNsYXNzOmlzU2VsZWN0ZWQ9e3NleGVzRmlsdGVyLmluY2x1ZGVzKHNleC5pZCl9XG4gICAgICAgICAgb246Y2xpY2s9eygpID0+IHRvZ2dsZVNleFNlbGVjdGVkKHNleC5pZCl9XG4gICAgICAgID5cbiAgICAgICAgICA8aW1nIHNyYz1cImljb25zL3tzZXguaWR9LnBuZ1wiIGFsdD1cIlwiIC8+XG4gICAgICAgIDwvZGl2PlxuICAgICAgey9lYWNofVxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJhZ2UtZmlsdGVyc1wiPlxuICAgICAgeyNlYWNoIGFnZXMgYXMgYWdlfVxuICAgICAgICA8ZGl2XG4gICAgICAgICAgY2xhc3M9XCJ6bmFja2FcIlxuICAgICAgICAgIGNsYXNzOmFnZT17YXZhaWxhYmxlQWdlcy5pbmNsdWRlcyhhZ2UuaWQpfVxuICAgICAgICAgIGNsYXNzOmlzVW5hdmFpbGFibGU9eyFhdmFpbGFibGVBZ2VzLmluY2x1ZGVzKGFnZS5pZCl9XG4gICAgICAgICAgY2xhc3M6aXNTZWxlY3RlZD17YWdlc0ZpbHRlci5pbmNsdWRlcyhhZ2UuaWQpfVxuICAgICAgICAgIG9uOmNsaWNrPXsoKSA9PiB0b2dnbGVBZ2VTZWxlY3RlZChhZ2UuaWQpfVxuICAgICAgICA+XG4gICAgICAgICAge2FnZS5pZC50b1VwcGVyQ2FzZSgpfVxuICAgICAgICA8L2Rpdj5cbiAgICAgIHsvZWFjaH1cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJjb21wZXRpdGlvbnMtZnJhbWVcIj5cbiAgICB7I2VhY2ggZGlzY2lwbGluZXNHcm91cHMgYXMgZ3JvdXB9XG4gICAgICA8ZGl2IGNsYXNzPVwiY29tcGV0aXRpb25zLWdyb3VwXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJncm91cC1oZWFkZXJcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZ3JvdXAtbmFtZVwiPntncm91cC5uYW1lW2dyb3VwLm5hbWUucHBdfTwvZGl2PlxuICAgICAgICAgIDxpbWdcbiAgICAgICAgICAgIHNyYz1cImljb25zL3shZGlzY2lwbGluZUdyb3VwRmlsdGVyLmluY2x1ZGVzKGdyb3VwLmlkKVxuICAgICAgICAgICAgICA/ICdtYXhpbWl6ZSdcbiAgICAgICAgICAgICAgOiAnbWluaW1pemUnfS5wbmdcIlxuICAgICAgICAgICAgYWx0PVwiXCJcbiAgICAgICAgICAgIG9uOmNsaWNrPXsoKSA9PiB0b2dnbGVEaXNjaXBsaW5lR3JvdXBTZWxlY3RlZChncm91cC5pZCl9XG4gICAgICAgICAgLz5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIHsjaWYgZGlzY2lwbGluZUdyb3VwRmlsdGVyLmluY2x1ZGVzKGdyb3VwLmlkKX1cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZ3JvdXAtZGlzY2lwbGluZXNcIj5cbiAgICAgICAgICAgIHsjZWFjaCBncm91cC5kaXNjaXBsaW5lcyBhcyBkaXNjaXBsaW5lfVxuICAgICAgICAgICAgICB7I2lmIGF2YWlsYWJsZURpc2NpcGxpbmVzLmluY2x1ZGVzKGRpc2NpcGxpbmUuaWQpfVxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkaXNjaXBsaW5lXCI+XG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZGlzY2lwbGluZS1uYW1lXCI+e2Rpc2NpcGxpbmUubmFtZS5lbmd9PC9kaXY+XG4gICAgICAgICAgICAgICAgICB7I2VhY2ggc2V4ZXNGaWx0ZXIgYXMgc2V4fVxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZGlzY2lwbGluZS1jb21wZXRpdGlvbnNcIj5cbiAgICAgICAgICAgICAgICAgICAgICB7I2VhY2ggYWdlc0ZpbHRlciBhcyBhZ2V9XG4gICAgICAgICAgICAgICAgICAgICAgICB7I2lmIGlzRHNhTGlzdGVkKGAke2Rpc2NpcGxpbmUuaWR9LSR7c2V4fS0ke2FnZX1gKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uOmNsaWNrPXsoKSA9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9nZ2xlQ29tcGV0aXRpb25GaWx0ZXJlZCh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNleCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWdlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNjaXBsaW5lOiBkaXNjaXBsaW5lLmlkLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ6bmFja2Ege3NleH1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzOmlzU2VsZWN0ZWQ9e3NlbGVjdGVkRHNhSXRlbXMuaW5jbHVkZXMoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBgJHtkaXNjaXBsaW5lLmlkfS0ke3NleH0tJHthZ2V9YFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7YWdlLnRvVXBwZXJDYXNlKCl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgey9pZn1cbiAgICAgICAgICAgICAgICAgICAgICB7L2VhY2h9XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgey9lYWNofVxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICB7L2lmfVxuICAgICAgICAgICAgey9lYWNofVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICB7L2lmfVxuICAgICAgPC9kaXY+XG4gICAgey9lYWNofVxuICA8L2Rpdj5cbjwvZGl2PlxuXG48c3R5bGU+XG4gIC5mcmFtZSB7XG4gIH1cbiAgLnNleC1hZ2UtZmlsdGVycyB7XG4gICAgcGFkZGluZzogNXB4O1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICAgIC8qIGJhY2tncm91bmQtY29sb3I6IGxpZ2h0Z3JheTsgKi9cbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgfVxuICAuc2V4LWZpbHRlcnMge1xuICAgIGZsZXg6IDEgMCBhdXRvO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICAgIG1hcmdpbjogNXB4IDA7XG4gICAgLyogYmFja2dyb3VuZC1jb2xvcjogI2VjZjBmMTsgKi9cbiAgfVxuICAuYWdlLWZpbHRlcnMge1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgbWFyZ2luOiA1cHggMDtcbiAgICAvKiBiYWNrZ3JvdW5kLWNvbG9yOiAjZWNmMGYxOyAqL1xuICB9XG4gIC5jb21wZXRpdGlvbnMtZnJhbWUge1xuICAgIC8qIHdpZHRoOiBjYWxjKDEwMCUgKyAxMHB4KTsgKi9cbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAvKiBtYXJnaW46IC01cHg7ICovXG4gIH1cbiAgLmNvbXBldGl0aW9ucy1ncm91cCB7XG4gICAgZmxleDogMSAxIGF1dG87XG4gICAgYm9yZGVyOiAxcHggc29saWQgcmdiKDU5LCAyMTEsIDIzOCk7XG4gICAgYm9yZGVyLXJhZGl1czogM3B4O1xuICAgIG1hcmdpbjogNXB4O1xuICB9XG4gIC5ncm91cC1oZWFkZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgYmFja2dyb3VuZDogIzM0OThkYjtcbiAgICBjb2xvcjogd2hpdGU7XG4gIH1cbiAgLmdyb3VwLWhlYWRlciBpbWcge1xuICAgIGhlaWdodDogMjBweDtcbiAgICB3aWR0aDogMjBweDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgcGFkZGluZzogNXB4O1xuICB9XG4gIC5ncm91cC1uYW1lIHtcbiAgICBoZWlnaHQ6IDMwcHg7XG4gICAgZm9udC1zaXplOiAxNnB4O1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkZXI7XG4gICAgcGFkZGluZzogNXB4IDEwcHg7XG4gIH1cbiAgLmdyb3VwLWRpc2NpcGxpbmVzIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbiAgfVxuICAuZGlzY2lwbGluZSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIHBhZGRpbmc6IDVweDtcbiAgICBtYXJnaW46IDVweDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWNmMGYxO1xuICAgIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gIH1cbiAgLmRpc2NpcGxpbmUtbmFtZSB7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIHBhZGRpbmc6IDVweDtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICB9XG4gIC5kaXNjaXBsaW5lLWNvbXBldGl0aW9ucyB7XG4gICAgLyogd2lkdGg6IDcwJTsgKi9cbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgZmxleC13cmFwOiBub3dyYXA7XG4gICAganVzdGlmeS1jb250ZW50OiBsZWZ0O1xuICB9XG4gIC56bmFja2Uge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleDogMCAwIGF1dG87XG4gIH1cbiAgLnpuYWNrYSB7XG4gICAgZmxleDogMCAxIGF1dG87XG4gICAgb3BhY2l0eTogMC41O1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBtYXJnaW46IDJweDtcbiAgICBwYWRkaW5nOiA1cHggMnB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgfVxuICAuaXNVbmF2YWlsYWJsZSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gICAgY29sb3I6IGJsYWNrO1xuICAgIGJvcmRlcjogMnB4IHNvbGlkIHdoaXRlO1xuICAgIGN1cnNvcjogaW5pdGlhbDtcbiAgfVxuICAuaXNTZWxlY3RlZCB7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxuICAuYWdlIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBncmF5O1xuICAgIGNvbG9yOiB3aGl0ZTtcbiAgICBib3JkZXI6IDJweCBzb2xpZCBncmF5O1xuICB9XG4gIC53IHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjM1LCA5MiwgOTIpO1xuICAgIGNvbG9yOiB3aGl0ZTtcbiAgICBib3JkZXI6IDJweCBzb2xpZCByZ2IoMjM1LCA5MiwgOTIpO1xuICB9XG4gIC5tIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoODIsIDEzNywgMjA5KTtcbiAgICBjb2xvcjogd2hpdGU7XG4gICAgYm9yZGVyOiAycHggc29saWQgcmdiKDgyLCAxMzcsIDIwOSk7XG4gIH1cbiAgLngge1xuICAgIGJhY2tncm91bmQtY29sb3I6IGdvbGRlbnJvZDtcbiAgICBjb2xvcjogYmxhY2s7XG4gICAgYm9yZGVyOiAycHggc29saWQgZ29sZGVucm9kO1xuICB9XG4gIC56bmFja2EgaW1nIHtcbiAgICBoZWlnaHQ6IDIzcHg7XG4gICAgcGFkZGluZzogMCA4cHg7XG4gIH1cblxuICAudGVzdCB7XG4gICAgd2lkdGg6IDUwMHB4O1xuICAgIGhlaWdodDogNTAwcHg7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogZ3JheTtcbiAgICBib3JkZXI6IDJweCBzb2xpZCB0dXJxdW9pc2U7XG4gIH1cbjwvc3R5bGU+XG4iLCI8c2NyaXB0PlxuICBpbXBvcnQgeyBwcmVwZW5kLCBjbG9uZSwgcmVtb3ZlIH0gZnJvbSBcInJhbWRhL3NyY1wiO1xuXG4gIGltcG9ydCBDb21wZXRpdGlvbnNQaWNrZXIgZnJvbSBcIi4uLy4uL3VpL0NvbXBldGl0aW9uc1BpY2tlci9pbmRleC5zdmVsdGVcIjtcblxuICBleHBvcnQgbGV0IHByb2dyYW0gPSB7fTtcbiAgZXhwb3J0IGxldCBldmVudENhdGVnb3JpZXMgPSBbXTtcbiAgZXhwb3J0IGxldCBkZWZhdWx0Q2F0ZWdvcnkgPSBcIi1cIjtcbiAgbGV0IGNvbXBldGl0aW9uc1BpY2tlclNob3duID0gZmFsc2U7XG4gIGNvbnN0IG5ld0NvbXBldGl0aW9uVGVtcGxhdGUgPSB7XG4gICAgc2V0dGluZzogXCJpXCIsXG4gICAgY2F0ZWdvcnk6IGRlZmF1bHRDYXRlZ29yeSxcbiAgICBzZXg6IFwid1wiLFxuICAgIGFnZTogXCJhYnNcIixcbiAgICBkaXNjaXBsaW5lOiBudWxsLFxuICAgIHByb3A6IG51bGwsXG4gICAgZW50cnk6IG51bGwsXG4gICAgbm90ZTogbnVsbFxuICB9O1xuICBsZXQgbmV3Q29tcGV0aXRpb24gPSB7fTtcblxuICBjb25zdCBzZXR0aW5ncyA9IFtcbiAgICB7IGlkOiBcImlcIiwgbmFtZTogeyBwcDogXCJlbmdcIiwgZW5nOiBcImluZG9vclwiIH0gfSxcbiAgICB7IGlkOiBcIm9cIiwgbmFtZTogeyBwcDogXCJlbmdcIiwgZW5nOiBcIm91dGRvb3JcIiB9IH0sXG4gICAgeyBpZDogXCJ4XCIsIG5hbWU6IHsgcHA6IFwiZW5nXCIsIGVuZzogXCJleGhpYml0aW9uXCIgfSB9XG4gIF07XG5cbiAgY29uc3QgdG9nZ2xlQ29tcGV0aXRpb25zUGlja2VyU2hvd24gPSAoKSA9PiB7XG4gICAgY29tcGV0aXRpb25zUGlja2VyU2hvd24gPSAhY29tcGV0aXRpb25zUGlja2VyU2hvd247XG4gIH07XG4gIGNvbnN0IGFkZENvbXBldGl0aW9uID0gKCkgPT4ge1xuICAgIHByb2dyYW0uY29tcGV0aXRpb25zID0gcHJlcGVuZChuZXdDb21wZXRpdGlvbiwgcHJvZ3JhbS5jb21wZXRpdGlvbnMpO1xuICAgIHByb2dyYW0uZHNhQXJyYXkgPSBwcmVwZW5kKFxuICAgICAgYCR7bmV3Q29tcGV0aXRpb24uZGlzY2lwbGluZX0tJHtuZXdDb21wZXRpdGlvbi5zZXh9LSR7bmV3Q29tcGV0aXRpb24uYWdlfWAsXG4gICAgICBwcm9ncmFtLmRzYUFycmF5XG4gICAgKTtcbiAgICBuZXdDb21wZXRpdGlvbiA9IGNsb25lKG5ld0NvbXBldGl0aW9uVGVtcGxhdGUpO1xuICB9O1xuICBjb25zdCBhZGRDb21wZXRpdGlvblVzaW5nUGlja2VyID0gZXZlbnQgPT4ge1xuICAgIG5ld0NvbXBldGl0aW9uID0geyAuLi5uZXdDb21wZXRpdGlvblRlbXBsYXRlLCAuLi5ldmVudC5kZXRhaWwgfTtcbiAgICBhZGRDb21wZXRpdGlvbigpO1xuICB9O1xuICBjb25zdCBkZWxldGVDb21wZXRpdGlvbiA9IGkgPT4ge1xuICAgIGxldCBkZWxldGVkQ29tcGV0aXRpb24gPSBwcm9ncmFtLmNvbXBldGl0aW9uc1tpXTtcbiAgICBwcm9ncmFtLmRzYUFycmF5ID0gcHJvZ3JhbS5kc2FBcnJheS5maWx0ZXIoXG4gICAgICBkc2FJdGVtID0+XG4gICAgICAgIGRzYUl0ZW0gIT09XG4gICAgICAgIGAke2RlbGV0ZWRDb21wZXRpdGlvbi5kaXNjaXBsaW5lfS0ke2RlbGV0ZWRDb21wZXRpdGlvbi5zZXh9LSR7ZGVsZXRlZENvbXBldGl0aW9uLmFnZX1gXG4gICAgKTtcbiAgICBwcm9ncmFtLmNvbXBldGl0aW9ucyA9IHJlbW92ZShpLCAxLCBwcm9ncmFtLmNvbXBldGl0aW9ucyk7XG4gIH07XG4gIGNvbnN0IHJlamVjdENvbXBldGl0aW9uVG9nZ2xlVXNpbmdQaWNrZXIgPSBldmVudCA9PiB7XG4gICAgcHJvZ3JhbS5kc2FBcnJheSA9IHByb2dyYW0uZHNhQXJyYXk7XG4gIH07XG5cbiAgJDogbmV3Q29tcGV0aXRpb24uc2V0dGluZyA9IG5ld0NvbXBldGl0aW9uVGVtcGxhdGUuc2V0dGluZztcbiAgJDogbmV3Q29tcGV0aXRpb25UZW1wbGF0ZS5jYXRlZ29yeSA9IGRlZmF1bHRDYXRlZ29yeTtcbiAgJDogbmV3Q29tcGV0aXRpb24uY2F0ZWdvcnkgPSBuZXdDb21wZXRpdGlvblRlbXBsYXRlLmNhdGVnb3J5O1xuICAkOiBuZXdDb21wZXRpdGlvbi5zZXggPSBuZXdDb21wZXRpdGlvblRlbXBsYXRlLnNleDtcbiAgJDogbmV3Q29tcGV0aXRpb24uYWdlID0gbmV3Q29tcGV0aXRpb25UZW1wbGF0ZS5hZ2U7XG48L3NjcmlwdD5cblxuPHN0eWxlPlxuICAuZnJhbWUge1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIGJsYWNrO1xuICAgIHBhZGRpbmc6IDJweDtcbiAgICBoZWlnaHQ6IDE1MHB4O1xuICAgIG92ZXJmbG93OiBhdXRvO1xuICB9XG4gIGlucHV0LFxuICBzZWxlY3Qge1xuICAgIGJhY2tncm91bmQtY29sb3I6IGxpZ2h0c3RlZWxibHVlO1xuICAgIGJvcmRlcjogMDtcbiAgICBmb250LXNpemU6IDE2cHg7XG4gICAgcGFkZGluZzogMnB4O1xuICB9XG4gIC5jb21wZXRpdGlvbiB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICAgIG1hcmdpbi10b3A6IDNweDtcbiAgICBwYWRkaW5nOiAwIDJweDtcbiAgfVxuICAuY29tcGV0aXRpb24gaW5wdXQge1xuICAgIG1hcmdpbi1sZWZ0OiA0cHg7XG4gIH1cbjwvc3R5bGU+XG5cblByZXNldHM6XG48c2VsZWN0IGJpbmQ6dmFsdWU9e25ld0NvbXBldGl0aW9uVGVtcGxhdGUuc2V0dGluZ30+XG4gIHsjZWFjaCBzZXR0aW5ncyBhcyBzZXR0aW5nfVxuICAgIDxvcHRpb24gdmFsdWU9e3NldHRpbmcuaWR9PntzZXR0aW5nLm5hbWVbc2V0dGluZy5uYW1lLnBwXX08L29wdGlvbj5cbiAgey9lYWNofVxuPC9zZWxlY3Q+XG48c2VsZWN0IGJpbmQ6dmFsdWU9e25ld0NvbXBldGl0aW9uVGVtcGxhdGUuY2F0ZWdvcnl9PlxuICB7I2VhY2ggZXZlbnRDYXRlZ29yaWVzIGFzIGNhdGVnb3J5fVxuICAgIDxvcHRpb24gdmFsdWU9e2NhdGVnb3J5Lm5hbWV9PntjYXRlZ29yeS5uYW1lfTwvb3B0aW9uPlxuICB7L2VhY2h9XG48L3NlbGVjdD5cbjxidXR0b24gb246Y2xpY2s9e3RvZ2dsZUNvbXBldGl0aW9uc1BpY2tlclNob3dufT5cbiAgVG9nZ2xlIGNvbXBldGl0aW9ucyBwaWNrZXJcbjwvYnV0dG9uPlxuPGJyIC8+XG57I2lmIGNvbXBldGl0aW9uc1BpY2tlclNob3dufVxuICA8Q29tcGV0aXRpb25zUGlja2VyXG4gICAgc2VsZWN0ZWREc2FJdGVtcz17cHJvZ3JhbS5kc2FBcnJheX1cbiAgICBvbjpjb21wZXRpdGlvblBpY2tlZD17YWRkQ29tcGV0aXRpb25Vc2luZ1BpY2tlcn1cbiAgICBvbjpjb21wZXRpdGlvblVucGlja2VkPXtyZWplY3RDb21wZXRpdGlvblRvZ2dsZVVzaW5nUGlja2VyfVxuICAgIG9uOnNlbGVjdEFsbENvbXBldGl0aW9uc1RvZ2dsZWQ9e3JlamVjdENvbXBldGl0aW9uVG9nZ2xlVXNpbmdQaWNrZXJ9IC8+XG57L2lmfVxuXG48IS0tIDxkaXYgY2xhc3M9XCJmcmFtZVwiPiAtLT5cbjxwIHN0eWxlPVwidGV4dC1hbGlnbjogY2VudGVyOyBmb250LXNpemU6IDE2cHhcIj5Db21wZXRpdGlvbnMgbGlzdDwvcD5cbnsjZWFjaCBwcm9ncmFtLmNvbXBldGl0aW9ucyBhcyBjb21wZXRpdGlvbiwgaX1cbiAgPGRpdiBjbGFzcz1cImNvbXBldGl0aW9uXCI+XG4gICAgPHAgc3R5bGU9XCJsaW5lLWhlaWdodDogMjVweFwiPlxuICAgICAgPGJ1dHRvbiBvbjpjbGljaz17ZGVsZXRlQ29tcGV0aXRpb24uYmluZCh0aGlzLCBpKX0+KC0pPC9idXR0b24+XG4gICAgICA8c2VsZWN0IGJpbmQ6dmFsdWU9e2NvbXBldGl0aW9uLnNldHRpbmd9PlxuICAgICAgICB7I2VhY2ggc2V0dGluZ3MgYXMgc2V0dGluZ31cbiAgICAgICAgICA8b3B0aW9uIHZhbHVlPXtzZXR0aW5nLmlkfT57c2V0dGluZy5uYW1lW3NldHRpbmcubmFtZS5wcF19PC9vcHRpb24+XG4gICAgICAgIHsvZWFjaH1cbiAgICAgIDwvc2VsZWN0PlxuICAgICAgPHNlbGVjdCBiaW5kOnZhbHVlPXtjb21wZXRpdGlvbi5jYXRlZ29yeX0+XG4gICAgICAgIHsjZWFjaCBldmVudENhdGVnb3JpZXMgYXMgY2F0ZWdvcnl9XG4gICAgICAgICAgPG9wdGlvbiB2YWx1ZT17Y2F0ZWdvcnkubmFtZX0+e2NhdGVnb3J5Lm5hbWV9PC9vcHRpb24+XG4gICAgICAgIHsvZWFjaH1cbiAgICAgIDwvc2VsZWN0PlxuICAgICAgPGlucHV0IGJpbmQ6dmFsdWU9e2NvbXBldGl0aW9uLmFnZX0gcGxhY2Vob2xkZXI9XCJhZ2VcIiBzaXplPVwiMVwiIC8+XG4gICAgICA8aW5wdXQgYmluZDp2YWx1ZT17Y29tcGV0aXRpb24uc2V4fSBwbGFjZWhvbGRlcj1cInNleFwiIHNpemU9XCIxXCIgLz5cbiAgICAgIDxpbnB1dFxuICAgICAgICBiaW5kOnZhbHVlPXtjb21wZXRpdGlvbi5kaXNjaXBsaW5lfVxuICAgICAgICBwbGFjZWhvbGRlcj1cImRpc2NpcGxpbmVcIlxuICAgICAgICBzaXplPVwiNlwiIC8+XG4gICAgICA8aW5wdXQgYmluZDp2YWx1ZT17Y29tcGV0aXRpb24ucHJvcH0gcGxhY2Vob2xkZXI9XCJwcm9wXCIgc2l6ZT1cIjFcIiAvPlxuICAgICAgPGlucHV0IGJpbmQ6dmFsdWU9e2NvbXBldGl0aW9uLmVudHJ5fSBwbGFjZWhvbGRlcj1cImVudHJ5XCIgc2l6ZT1cIjFcIiAvPlxuICAgICAgPGlucHV0IHR5cGU9XCJkYXRldGltZS1sb2NhbFwiIGJpbmQ6dmFsdWU9e2NvbXBldGl0aW9uLnN0YXJ0fSAvPlxuICAgICAgPGlucHV0IGJpbmQ6dmFsdWU9e2NvbXBldGl0aW9uLm5vdGV9IHBsYWNlaG9sZGVyPVwibm90ZVwiIHNpemU9XCIyMlwiIC8+XG4gICAgPC9wPlxuICA8L2Rpdj5cbnsvZWFjaH1cbjwhLS0gPC9kaXY+IC0tPlxuIiwiPHNjcmlwdD5cbiAgaW1wb3J0IHsgcHJlcGVuZCwgY2xvbmUsIHJlbW92ZSB9IGZyb20gXCJyYW1kYVwiO1xuICBpbXBvcnQgeyBmb3JtYXQgfSBmcm9tIFwiZGF0ZS1mbnNcIjtcblxuICBpbXBvcnQgeyB1c2VyIH0gZnJvbSBcIi4uLy4uL3N0b3Jlc1wiO1xuICBleHBvcnQgbGV0IG5vdGVzO1xuICBsZXQgbmV3Tm90ZSA9IHt9O1xuICBsZXQgbnVsbE5vdGUgPSB7XG4gICAgaXNQdWJsaWM6IGZhbHNlLFxuICAgIGNvbnRlbnQ6IFwiXCIsXG4gIH07XG5cbiAgY29uc3QgYWRkTm90ZSA9ICgpID0+IHtcbiAgICBsZXQgbm93ID0gZm9ybWF0KG5ldyBEYXRlKCksIFwieXl5eS1NTS1kZCBISDptbVwiKTtcbiAgICBuZXdOb3RlLmNyZWF0ZWQgPSBub3c7XG4gICAgbmV3Tm90ZS5hdXRob3IgPSB7XG4gICAgICB1c2VyYW1lOiAkdXNlci51c2VyTmFtZSxcbiAgICAgIGlkOiAkdXNlci5pZCxcbiAgICB9O1xuICAgIG5vdGVzID0gUi5wcmVwZW5kKG5ld05vdGUsIG5vdGVzKTtcbiAgICBuZXdOb3RlID0gUi5jbG9uZShudWxsTm90ZSk7XG4gIH07XG4gIGNvbnN0IGRlbGV0ZU5vdGUgPSAoaSkgPT4ge1xuICAgIG5vdGVzID0gUi5yZW1vdmUoaSwgMSwgbm90ZXMpO1xuICB9O1xuPC9zY3JpcHQ+XG5cbjwhLS0gPGRpdiBjbGFzcz1cImJpbGplc2tlXCI+IC0tPlxuPGg1PihOZXcgbm90ZSk8L2g1PlxuPGg1PlxuICAoTWFrZSBwdWJsaWNcbiAgPGlucHV0IGNsYXNzPVwibmV3Tm90ZVwiIHR5cGU9XCJjaGVja2JveFwiIGJpbmQ6Y2hlY2tlZD17bmV3Tm90ZS5pc1B1YmxpY30gLz5cbiAgfCBBZGRcbiAgPGJ1dHRvbiBvbjpjbGljaz17YWRkTm90ZX0+KC0tQURELS0pPC9idXR0b24+XG48L2g1PlxuKVxuPGJyIC8+XG48dGV4dGFyZWEgY2xhc3M9XCJuZXdOb3RlXCIgcm93cz1cIjJcIiBiaW5kOnZhbHVlPXtuZXdOb3RlLmNvbnRlbnR9IC8+XG48aHIgLz5cbnsjZWFjaCBub3RlcyBhcyBub3RlLCBpfVxuICB7I2lmICgkdXNlci5yb2xlID0gXCJhZG1pblwiIHx8IG5vdGUuaXNQdWJsaWMgfHwgbm90ZS5hdXRob3IuaWQgPT09ICR1c2VyLmlkKX1cbiAgICA8aDU+UG9zdGVkIDxiPntub3RlLmNyZWF0ZWR9PC9iPiBieSA8Yj57bm90ZS5hdXRob3IudXNlcm5hbWV9PC9iPjwvaDU+XG4gICAgeyNpZiBub3RlLmF1dGhvci5pZCA9PT0gJHVzZXIuaWR9XG4gICAgICA8aDU+XG4gICAgICAgIChNYWtlIHB1YmxpY1xuICAgICAgICA8aW5wdXQgdHlwZT1cImNoZWNrYm94XCIgYmluZDpjaGVja2VkPXtub3RlLmlzUHVibGljfSAvPlxuICAgICAgICB8IERlbGV0ZVxuICAgICAgICA8YnV0dG9uIG9uOmNsaWNrPXtkZWxldGVOb3RlLmJpbmQodGhpcywgaSl9PigtLVJFTU9WRS0tKTwvYnV0dG9uPlxuICAgICAgPC9oNT5cbiAgICAgIClcbiAgICAgIDx0ZXh0YXJlYSByb3dzPVwiMlwiIGJpbmQ6dmFsdWU9e25vdGUuY29udGVudH0gLz5cbiAgICB7OmVsc2V9XG4gICAgICA8ZGl2Pntub3RlLmNvbnRlbnR9PC9kaXY+XG4gICAgey9pZn1cbiAgICA8aHIgLz5cbiAgey9pZn1cbnsvZWFjaH1cblxuPCEtLSA8L2Rpdj4gLS0+XG48c3R5bGU+XG4gIC5iaWxqZXNrZSB7XG4gICAgYm9yZGVyOiAxcHggc29saWQgYmxhY2s7XG4gICAgcGFkZGluZzogNHB4O1xuICAgIGhlaWdodDogMTUwcHg7XG4gICAgb3ZlcmZsb3c6IHNjcm9sbDtcbiAgfVxuICBoNSB7XG4gICAgLyogbWFyZ2luLXRvcDogMnB4O1xuICAgIG1hcmdpbi1ib3R0b206IDJweDsgKi9cbiAgICBkaXNwbGF5OiBpbmxpbmU7XG4gIH1cbiAgLm5ld05vdGUge1xuICB9XG4gIHRleHRhcmVhIHtcbiAgICBwYWRkaW5nOiAycHg7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogbGlnaHRzdGVlbGJsdWU7XG4gICAgLXdlYmtpdC1ib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIC1tb3otYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuXG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cbjwvc3R5bGU+XG4iLCI8c2NyaXB0PlxuICBpbXBvcnQgeyBhcHBlbmQsIGNsb25lLCByZW1vdmUgfSBmcm9tIFwicmFtZGEvc3JjXCI7XG5cbiAgaW1wb3J0IHsgZ2V0Q29udGV4dCB9IGZyb20gXCJzdmVsdGVcIjtcblxuICBpbXBvcnQgeyB2NCB9IGZyb20gXCJ1dWlkXCI7XG4gIGltcG9ydCB7IGZvcm1hdCB9IGZyb20gXCJkYXRlLWZuc1wiO1xuXG4gIGNvbnN0IHsgY29udGFjdFR5cGVzIH0gPSBnZXRDb250ZXh0KFwiZXZlbnRzRWRpdG9yQ29udGV4dFwiKTtcblxuICBleHBvcnQgbGV0IGV2ZW50O1xuICBleHBvcnQgbGV0IGNvbnRhY3RzID0gW107XG4gIGxldCBuZXdDb250YWN0ID0ge307XG4gIGNvbnN0IG51bGxDb250YWN0ID0ge1xuICAgIHZhbHVlOiBcIlwiLFxuICAgIGFib3V0OiBcIlwiLFxuICB9O1xuXG4gIGNvbnN0IGFkZENvbnRhY3QgPSAoKSA9PiB7XG4gICAgY29udGFjdHMgPSBhcHBlbmQobmV3Q29udGFjdCwgY29udGFjdHMpO1xuICAgIG5ld0NvbnRhY3QgPSBjbG9uZShudWxsQ29udGFjdCk7XG4gIH07XG4gIGNvbnN0IGRlbGV0ZUNvbnRhY3QgPSAoaSkgPT4ge1xuICAgIGNvbnRhY3RzID0gcmVtb3ZlKGksIDEsIGNvbnRhY3RzKTtcbiAgICBuZXdDb250YWN0ID0gY2xvbmUobnVsbENvbnRhY3QpO1xuICB9O1xuXG4gIC8vICEhISoqKiBwcml2cmVtZW5vLCB6YSBtYWlsYW5qZSwgbmkgc2x1xI1ham5vIG5hIHByb2R1a2NpanUgKioqISEhXG4gIGNvbnN0IGluaXRpYXRlTmVnb3RpYXRpb24gPSBhc3luYyAoKSA9PiB7XG4gICAgY29uc3QgdXJsID0gXCJodHRwOi8vMTI3LjAuMC4xOjMwMzAvYXBpL3YyL25lZ290aWF0aW9uc1wiO1xuXG4gICAgY29uc3QgbmVnb3RpYXRpb24gPSB7XG4gICAgICBpZDogbnVsbCxcbiAgICAgIGlkQXRocmVwOiBcIjhmMmVhMWRjLTQ4MjAtNDA2Yy05YWM3LTk4MDM4MDFlZTg4ZlwiLFxuICAgICAgaWRFdmVudDogZXZlbnQucHJvcGVydGllcy5pZCxcbiAgICAgIHN0YXR1czogXCJpXCIsXG4gICAgICBpc0FyY2hpdmVkOiBmYWxzZSxcbiAgICAgIHdoZW5MYXN0VXBkYXRlZDogdW5kZWZpbmVkLFxuICAgICAgZGV0YWlsczoge1xuICAgICAgICBhYm91dDogYCR7XG4gICAgICAgICAgZXZlbnQucHJvcGVydGllcy5kYXRlWzBdXG4gICAgICAgIH0gLSAke2V2ZW50TG9jYXRpb259LCAke2V2ZW50LnByb3BlcnRpZXMudmVudWUuY291bnRyeS50b1VwcGVyQ2FzZSgpfSAtICR7ZXZlbnQucHJvcGVydGllcy5jYXRlZ29yeS50b1VwcGVyQ2FzZSgpfWAsXG4gICAgICAgIGV2ZW50RGF0ZTogZXZlbnQucHJvcGVydGllcy5kYXRlLFxuICAgICAgICBhdGhsaWE6IHtcbiAgICAgICAgICBuYW1lOiBhdGhsaWFOYW1lLFxuICAgICAgICAgIGVtYWlsOiBhdGhsaWFFbWFpbCxcbiAgICAgICAgfSxcbiAgICAgICAgYXRobGV0ZXM6IFwiXCIsXG4gICAgICAgIGhvc3BpdGFsaXR5OiB7XG4gICAgICAgICAgdHJhdmVsOiBcIlwiLFxuICAgICAgICAgIGFjY29tbW9kYXRpb246IFwiXCIsXG4gICAgICAgICAgcHJpemVzOiBcIlwiLFxuICAgICAgICAgIHRhcmdldFJlc3VsdDogbnVsbCxcbiAgICAgICAgfSxcbiAgICAgICAgbm90ZXM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBpZDogdjQoKSxcbiAgICAgICAgICAgIHdoZW46IGZvcm1hdChuZXcgRGF0ZSgpLCBcInl5eXktTU0tZGQgaGg6bW1cIiksXG4gICAgICAgICAgICBhdGhsZXRlczogW10sXG4gICAgICAgICAgICBjb250ZW50OiBgU2VudCBlbWFpbCBpbnF1aXJ5IHRvICR7YXRobGlhTmFtZX0gKCR7YXRobGlhRW1haWx9KWAsXG4gICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgICAgdG9kb3M6IFtdLFxuICAgICAgfSxcbiAgICB9O1xuICAgIGNvbnN0IGJvZHkgPSBKU09OLnN0cmluZ2lmeShuZWdvdGlhdGlvbik7XG4gICAgYXdhaXQgZmV0Y2godXJsLCB7XG4gICAgICBtZXRob2Q6IFwiUE9TVFwiLFxuICAgICAgaGVhZGVyczoge1xuICAgICAgICBcIkNvbnRlbnQtVHlwZVwiOiBcImFwcGxpY2F0aW9uL2pzb25cIixcbiAgICAgIH0sXG4gICAgICBib2R5LFxuICAgIH0pO1xuICB9O1xuXG4gIGxldCBhdGhsaWFFbWFpbDtcbiAgbGV0IG1haWxCb2R5O1xuICBsZXQgZXZlbnRUaXRsZTtcbiAgbGV0IGV2ZW50TG9jYXRpb247XG4gIGxldCBldmVudExpbms7XG5cbiAgJDogZXZlbnRUaXRsZSA9IGV2ZW50Py5wcm9wZXJ0aWVzPy50aXRsZVtldmVudD8ucHJvcGVydGllcz8udGl0bGU/LnBwXTtcbiAgJDogZXZlbnREYXRlID0gZXZlbnQ/LnByb3BlcnRpZXMuZGF0ZUZvckRpc3BsYXk7XG4gICQ6IGV2ZW50TG9jYXRpb24gPVxuICAgIGV2ZW50Py5wcm9wZXJ0aWVzPy52ZW51ZT8ucGxhY2VbZXZlbnQ/LnByb3BlcnRpZXM/LnZlbnVlPy5wbGFjZT8ucHBdO1xuICAkOiBldmVudExpbmsgPSBgaHR0cHM6Ly90cmFja21lZXRpbmdzLmluZm8vZXZlbnQvJHtldmVudD8ucHJvcGVydGllcz8uaWR9YDtcbiAgJDogbWFpbFN1YmplY3QgPSBlbmNvZGVVUklDb21wb25lbnQoXG4gICAgYCR7ZXZlbnRUaXRsZX0gLSBwYXJ0aWNpcGF0aW9uIG9mIGZvcmVpZ24gYXRobGV0ZXM/YFxuICApO1xuICAkOiBhdGhsaWFFbWFpbCA9IGV2ZW50Py5wcm9wZXJ0aWVzPy5jb250YWN0cz8uZmluZExhc3QoXG4gICAgKGNvbnRhY3QpID0+IGNvbnRhY3Q/LnR5cGUgPT09IFwiZW1haWxcIlxuICApPy52YWx1ZTtcbiAgJDogYXRobGlhTmFtZSA9IGV2ZW50Py5wcm9wZXJ0aWVzPy5jb250YWN0cz8uZmluZExhc3QoXG4gICAgKGNvbnRhY3QpID0+IGNvbnRhY3Q/LnR5cGUgPT09IFwiZW1haWxcIlxuICApPy5hYm91dDtcbiAgbGV0IG1haWxDYyA9IFwiZHVqZUB0cmFja21lZXRpbmdzLmluZm9cIjtcblxuICAkOiBtYWlsQm9keSA9IGVuY29kZVVSSUNvbXBvbmVudChgRGVhciBtci4gbXMuICR7YXRobGlhTmFtZX0sXFxuXG4gIEkgYW0gRHVqZSBCb25hY2NpLCBXQSBsaWNlbnNlZCBhdGhsZXRlcycgcmVwcmVzZW50YXRpdmUgZnJvbSBDcm9hdGlhLlxcblxuICBDb3VsZCB5b3UgcGxlYXNlIHRlbGwgbWUgaWYgJHtldmVudFRpdGxlfSwgdG8gYmUgaGVsZCBvbiAke2V2ZW50RGF0ZX0gaW4gJHtldmVudExvY2F0aW9ufSAoJHtldmVudExpbmt9KSBpcyBvcGVuIGZvciBwYXJ0aWNpcGF0aW9uIHRvIGZvcmVpZ24gYXRobGV0ZXMgYW5kIGlmIHNvLCBkbyB5b3Ugb2ZmZXIgYW55IHByaXplIGZ1bmQgYW5kL29yIHByb3ZpZGUgdHJhdmVsL2FjY29tbW9kYXRpb24gZXhwZW5zZXMgcmVpbWJ1cnNlbWVudD9cXG5cbiAgQmVzdCByZWdhcmRzLFxcblxuICBEdWplXFxuXG4gIGApO1xuPC9zY3JpcHQ+XG5cbjxkaXYgY2xhc3M9XCJmcmFtZVwiPlxuICB7I2lmIGF0aGxpYUVtYWlsfVxuICAgIDxkaXYgb246Y2xpY2s9e2luaXRpYXRlTmVnb3RpYXRpb259PlxuICAgICAgPGFcbiAgICAgICAgaHJlZj1cIm1haWx0bzp7YXRobGlhRW1haWx9P2NjPXttYWlsQ2N9JnN1YmplY3Q9e21haWxTdWJqZWN0fSZib2R5PXttYWlsQm9keX1cIlxuICAgICAgICA+UmVxdWVzdCBpbmZvPC9hXG4gICAgICA+XG4gICAgPC9kaXY+XG4gIHsvaWZ9XG4gIDxkaXYgY2xhc3M9XCJjb250YWN0XCI+XG4gICAgPGJ1dHRvbiBvbjpjbGljaz17YWRkQ29udGFjdH0+KGFkZCk8L2J1dHRvbj5cbiAgICB0eXBlOlxuICAgIDxzZWxlY3QgYmluZDp2YWx1ZT17bmV3Q29udGFjdC50eXBlfT5cbiAgICAgIHsjZWFjaCBjb250YWN0VHlwZXMgYXMgdHlwZX1cbiAgICAgICAgPG9wdGlvbiB2YWx1ZT17dHlwZX0+e3R5cGV9PC9vcHRpb24+XG4gICAgICB7L2VhY2h9XG4gICAgPC9zZWxlY3Q+XG4gICAgdmFsdWU6XG4gICAgPGlucHV0IGNsYXNzPVwibmV3Q29udGFjdFwiIGJpbmQ6dmFsdWU9e25ld0NvbnRhY3QudmFsdWV9IHNpemU9XCIxMFwiIC8+XG4gICAgYWJvdXQ6XG4gICAgPGlucHV0IGNsYXNzPVwibmV3Q29udGFjdFwiIGJpbmQ6dmFsdWU9e25ld0NvbnRhY3QuYWJvdXR9IHNpemU9XCIxMFwiIC8+XG4gICAgaXMgcHVibGljOlxuICAgIDxpbnB1dCB0eXBlPVwiY2hlY2tib3hcIiBiaW5kOmNoZWNrZWQ9e25ld0NvbnRhY3QuaXNQdWJsaWN9IC8+XG4gIDwvZGl2PlxuICB7I2VhY2ggY29udGFjdHMgYXMgY29udGFjdCwgaX1cbiAgICA8ZGl2IGNsYXNzPVwiY29udGFjdFwiPlxuICAgICAgPGJ1dHRvbiBvbjpjbGljaz17ZGVsZXRlQ29udGFjdC5iaW5kKHRoaXMsIGkpfT4ocmVtb3ZlKTwvYnV0dG9uPlxuICAgICAgdHlwZTpcbiAgICAgIDxzZWxlY3QgYmluZDp2YWx1ZT17Y29udGFjdC50eXBlfT5cbiAgICAgICAgeyNlYWNoIGNvbnRhY3RUeXBlcyBhcyB0eXBlfVxuICAgICAgICAgIDxvcHRpb24gdmFsdWU9e3R5cGV9Pnt0eXBlfTwvb3B0aW9uPlxuICAgICAgICB7L2VhY2h9XG4gICAgICA8L3NlbGVjdD5cbiAgICAgIHZhbHVlOlxuICAgICAgPGlucHV0IGNsYXNzPVwiZXhpc3RpbmdDb250YWN0XCIgYmluZDp2YWx1ZT17Y29udGFjdC52YWx1ZX0gc2l6ZT1cIjEwXCIgLz5cbiAgICAgIGFib3V0OlxuICAgICAgPGlucHV0IGNsYXNzPVwiZXhpc3RpbmdDb250YWN0XCIgYmluZDp2YWx1ZT17Y29udGFjdC5hYm91dH0gc2l6ZT1cIjEwXCIgLz5cbiAgICAgIGlzIHB1YmxpYzpcbiAgICAgIDxpbnB1dCB0eXBlPVwiY2hlY2tib3hcIiBiaW5kOmNoZWNrZWQ9e2NvbnRhY3QuaXNQdWJsaWN9IC8+XG4gICAgPC9kaXY+XG4gIHsvZWFjaH1cbjwvZGl2PlxuXG48c3R5bGU+XG4gIC5mcmFtZSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgfVxuICAuZnJhbWUgLmNvbnRhY3Qge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIG1hcmdpbi10b3A6IDNweDtcbiAgICBtYXJnaW4tcmlnaHQ6IDVweDtcbiAgfVxuICAuZXhpc3RpbmdDb250YWN0IHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBsaWdodHN0ZWVsYmx1ZTtcbiAgICBib3JkZXI6IDFweCBzb2xpZCBibGFjaztcbiAgICBib3JkZXI6IDA7XG4gIH1cbiAgLm5ld0NvbnRhY3Qge1xuICAgIGJhY2tncm91bmQtY29sb3I6IGxpZ2h0Z29sZGVucm9keWVsbG93O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIGJsYWNrO1xuICAgIGJvcmRlcjogMDtcbiAgfVxuICBpbnB1dCxcbiAgc2VsZWN0IHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBsaWdodHN0ZWVsYmx1ZTtcbiAgICBib3JkZXI6IDA7XG4gICAgZm9udC1zaXplOiAxNnB4O1xuICAgIHBhZGRpbmc6IDJweDtcbiAgfVxuPC9zdHlsZT5cbiIsIjxzY3JpcHQ+XG4gIGV4cG9ydCBsZXQgbGlua3M7XG48L3NjcmlwdD5cblxuPHN0eWxlPlxuICAuZnJhbWUge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICB9XG5cbiAgLmZyYW1lIC5saW5rLWl0ZW0ge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgd2lkdGg6IDEwMHZ3O1xuICAgIG1hcmdpbjogNXB4IDJweCAxcHg7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIGRhcmtzbGF0ZWdyZXk7XG4gIH1cbiAgLmZyYW1lIC5saW5rLWl0ZW0gLmRlc2NyaXB0aW9uIHtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgICBmb250LXdlaWdodDogYm9sZGVyO1xuICAgIG1hcmdpbi1yaWdodDogMTBweDtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgfVxuICAuZnJhbWUgLmxpbmstaXRlbSAubGluayB7XG4gICAgZmxleDogMSAxIGF1dG87XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gICAgbWF4LXdpZHRoOiA3NSU7XG4gICAgLyogYm9yZGVyOiAxcHggc29saWQgYmxhY2s7ICovXG4gIH1cbiAgLmZyYW1lIC5saW5rLWl0ZW0gLmxpbmsgaW5wdXQge1xuICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBsaWdodHN0ZWVsYmx1ZTtcbiAgICBwYWRkaW5nOiAycHg7XG4gIH1cbjwvc3R5bGU+XG5cbjxkaXYgY2xhc3M9XCJmcmFtZVwiPlxuICA8ZGl2IGNsYXNzPVwibGluay1pdGVtXCI+XG4gICAgPGRpdiBjbGFzcz1cImRlc2NyaXB0aW9uXCI+XG4gICAgICA8YSBocmVmPXtsaW5rcy5zb3VyY2V9IHRhcmdldD1cIl9ibGFua1wiPlJlZmVyZW5jZWQgc291cmNlPC9hPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJsaW5rXCI+XG4gICAgICA8aW5wdXQgYmluZDp2YWx1ZT17bGlua3Muc291cmNlfSAvPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cblxuICA8ZGl2IGNsYXNzPVwibGluay1pdGVtXCI+XG4gICAgPGRpdiBjbGFzcz1cImRlc2NyaXB0aW9uXCI+XG4gICAgICA8YSBocmVmPXtsaW5rcy53ZWJzaXRlfSB0YXJnZXQ9XCJfYmxhbmtcIj5PZmZpY2lhbCBXZWJzaXRlPC9hPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJsaW5rXCI+XG4gICAgICA8aW5wdXQgYmluZDp2YWx1ZT17bGlua3Mud2Vic2l0ZX0gLz5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG5cbiAgPGRpdiBjbGFzcz1cImxpbmstaXRlbVwiPlxuICAgIDxkaXYgY2xhc3M9XCJkZXNjcmlwdGlvblwiPlxuICAgICAgPGEgaHJlZj17bGlua3MuZmFjZWJvb2t9IHRhcmdldD1cIl9ibGFua1wiPkZhY2Vib29rIFByb2ZpbGU8L2E+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImxpbmtcIj5cbiAgICAgIDxpbnB1dCBiaW5kOnZhbHVlPXtsaW5rcy5mYWNlYm9va30gLz5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG5cbiAgPGRpdiBjbGFzcz1cImxpbmstaXRlbVwiPlxuICAgIDxkaXYgY2xhc3M9XCJkZXNjcmlwdGlvblwiPlxuICAgICAgPGEgaHJlZj17bGlua3MuaW52aXRhdGlvbn0gdGFyZ2V0PVwiX2JsYW5rXCI+SW52aXRhdGlvbiAvIFByb2dyYW08L2E+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImxpbmtcIj5cbiAgICAgIDxpbnB1dCBiaW5kOnZhbHVlPXtsaW5rcy5pbnZpdGF0aW9ufSAvPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cblxuICA8ZGl2IGNsYXNzPVwibGluay1pdGVtXCI+XG4gICAgPGRpdiBjbGFzcz1cImRlc2NyaXB0aW9uXCI+XG4gICAgICA8YSBocmVmPXtsaW5rcy5zdGFydGxpc3R9IHRhcmdldD1cIl9ibGFua1wiPlN0YXJ0IExpc3Q8L2E+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImxpbmtcIj5cbiAgICAgIDxpbnB1dCBiaW5kOnZhbHVlPXtsaW5rcy5zdGFydGxpc3R9IC8+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuXG4gIDxkaXYgY2xhc3M9XCJsaW5rLWl0ZW1cIj5cbiAgICA8ZGl2IGNsYXNzPVwiZGVzY3JpcHRpb25cIj5cbiAgICAgIDxhIGhyZWY9e2xpbmtzLnJlc3VsdHN9IHRhcmdldD1cIl9ibGFua1wiPlJlc3VsdHM8L2E+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImxpbmtcIj5cbiAgICAgIDxpbnB1dCBiaW5kOnZhbHVlPXtsaW5rcy5yZXN1bHRzfSAvPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cblxuICA8ZGl2IGNsYXNzPVwibGluay1pdGVtXCI+XG4gICAgPGRpdiBjbGFzcz1cImRlc2NyaXB0aW9uXCI+XG4gICAgICA8YSBocmVmPXtsaW5rcy5zdHJlYW19IHRhcmdldD1cIl9ibGFua1wiPlJlYWwtVGltZSBWaWRlbyBTdHJlYW08L2E+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImxpbmtcIj5cbiAgICAgIDxpbnB1dCBiaW5kOnZhbHVlPXtsaW5rcy5zdHJlYW19IC8+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuXG4gIDxkaXYgY2xhc3M9XCJsaW5rLWl0ZW1cIj5cbiAgICA8ZGl2IGNsYXNzPVwiZGVzY3JpcHRpb25cIj5cbiAgICAgIDxhIGhyZWY9e2xpbmtzLnZpZGVvfSB0YXJnZXQ9XCJfYmxhbmtcIj5WaWRlbyBDaGFubmVsPC9hPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJsaW5rXCI+XG4gICAgICA8aW5wdXQgYmluZDp2YWx1ZT17bGlua3MudmlkZW99IC8+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuXG4gIDxkaXYgY2xhc3M9XCJsaW5rLWl0ZW1cIj5cbiAgICA8ZGl2IGNsYXNzPVwiZGVzY3JpcHRpb25cIj5cbiAgICAgIDxhIGhyZWY9e2xpbmtzLmdhbGxlcnl9IHRhcmdldD1cIl9ibGFua1wiPlBob3RvIEdhbGxlcnk8L2E+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImxpbmtcIj5cbiAgICAgIDxpbnB1dCBiaW5kOnZhbHVlPXtsaW5rcy5nYWxsZXJ5fSAvPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuIiwiPHNjcmlwdD5cbiAgaW1wb3J0IHsgY3JlYXRlRXZlbnREaXNwYXRjaGVyIH0gZnJvbSBcInN2ZWx0ZVwiO1xuICBjb25zdCBkaXNwYXRjaCA9IGNyZWF0ZUV2ZW50RGlzcGF0Y2hlcigpO1xuXG4gIGV4cG9ydCBsZXQgYWN0aW9ucyA9IFtdO1xuXG4gIGNvbnN0IGhhbmRsZUNsaWNrID0gYWN0aW9uVHlwZSA9PiB7XG4gICAgZGlzcGF0Y2goXCJjcnVkQWN0aW9uXCIsIHsgYWN0aW9uVHlwZSB9KTtcbiAgfTtcbjwvc2NyaXB0PlxuXG48c3R5bGU+XG4gIC5mcmFtZSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIH1cbiAgLmZyYW1lIC5pY29uIHtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICBoZWlnaHQ6IDMwcHg7XG4gICAgd2lkdGg6IDMwcHg7XG4gICAgcGFkZGluZzogNXB4O1xuICAgIG1hcmdpbjogMCA1cHg7XG4gICAgYm9yZGVyOiAxcHggc29saWQgYmxhY2s7XG4gICAgYm9yZGVyLXJhZGl1czogM3B4O1xuICB9XG4gIC5mcmFtZSAuaWNvbjpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogbGlnaHRncmF5O1xuICB9XG4gIC5mcmFtZSAuaWNvbiBpbWcge1xuICAgIC8qIGhlaWdodDogMTAwJTsgKi9cbiAgICBoZWlnaHQ6IDIwcHg7XG4gICAgb2JqZWN0LWZpdDogY29udGFpbjtcbiAgfVxuICAuZnJhbWUgLmZpbGxlciB7XG4gICAgZmxleDogMSAxIGF1dG87XG4gIH1cbjwvc3R5bGU+XG5cbjxkaXYgY2xhc3M9XCJmcmFtZVwiPlxuICB7I2VhY2ggYWN0aW9ucyBhcyBhY3Rpb259XG4gICAgeyNpZiBhY3Rpb24uZmlsbGVyfVxuICAgICAgPGRpdiBjbGFzcz1cImZpbGxlclwiIC8+XG4gICAgey9pZn1cbiAgICB7I2lmIGFjdGlvbi50eXBlfVxuICAgICAgPGRpdiBjbGFzcz1cImljb25cIj5cbiAgICAgICAgPGJ1dHRvbiBvbjpjbGljaz17aGFuZGxlQ2xpY2suYmluZCh0aGlzLCBhY3Rpb24udHlwZSl9PlxuICAgICAgICAgIDxpbWcgc3JjPVwiaWNvbnMve2FjdGlvbi50eXBlfS5wbmdcIiBhbHQ9e2FjdGlvbi50eXBlfSAvPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgIDwvZGl2PlxuICAgIHsvaWZ9XG4gIHsvZWFjaH1cbjwvZGl2PlxuIiwiPHNjcmlwdD5cbiAgaW1wb3J0IFRpdGxlRWRpdG9yIGZyb20gXCIuLi8uLi91aS9UcmFuc2xhdGlvbnNFZGl0b3Iuc3ZlbHRlXCI7XG4gIGltcG9ydCBBY2Nlc3NFZGl0b3IgZnJvbSBcIi4vQWNjZXNzRWRpdG9yLnN2ZWx0ZVwiO1xuICBpbXBvcnQgUGxhY2VFZGl0b3IgZnJvbSBcIi4uLy4uL3VpL1RyYW5zbGF0aW9uc0VkaXRvci5zdmVsdGVcIjtcbiAgaW1wb3J0IFZlbnVlc0Jyb3dzZXIgZnJvbSBcIi4uL1ZlbnVlc0Jyb3dzZXIvaW5kZXguc3ZlbHRlXCI7XG4gIGltcG9ydCBQcm9ncmFtRWRpdG9yIGZyb20gXCIuL1Byb2dyYW1FZGl0b3Iuc3ZlbHRlXCI7XG4gIGltcG9ydCBOb3Rlc0VkaXRvciBmcm9tIFwiLi9Ob3Rlc0VkaXRvci5zdmVsdGVcIjtcbiAgaW1wb3J0IENvbnRhY3RzRWRpdG9yIGZyb20gXCIuL0NvbnRhY3RzRWRpdG9yLnN2ZWx0ZVwiO1xuICBpbXBvcnQgRG9jdW1lbnRzRWRpdG9yIGZyb20gXCIuL0RvY3VtZW50c0VkaXRvci5zdmVsdGVcIjtcbiAgaW1wb3J0IEFjdGlvbnNCYXIgZnJvbSBcIi4uLy4uL3VpL0FjdGlvbnNCYXIvaW5kZXguc3ZlbHRlXCI7XG5cbiAgaW1wb3J0IHsgY3JlYXRlRXZlbnREaXNwYXRjaGVyLCBzZXRDb250ZXh0IH0gZnJvbSBcInN2ZWx0ZVwiO1xuXG4gIGltcG9ydCB7IGNsb25lIH0gZnJvbSBcInJhbWRhL3NyY1wiO1xuXG4gIGltcG9ydCB7IGNyZWF0ZVJlc291cmNlLCB1cGRhdGVSZXNvdXJjZSwgZGVsZXRlUmVzb3VyY2UgfSBmcm9tIFwiLi4vLi4vX2FwaVwiO1xuICBpbXBvcnQge1xuICAgIGZldGNoRXZlbnREZXRhaWxzRnJvbURCLFxuICAgIGV4dHJhY3RWZW51ZUZyb21FdmVudCxcbiAgICBmb3JtYXREYXRlRm9yRGlzcGxheSxcbiAgICBnZXRDb250YWN0VHlwZXNGcm9tREIsXG4gICAgZ2V0RXZlbnRDYXRlZ29yaWVzRnJvbURCLFxuICAgIGdldEV2ZW50QnJhbmRzRnJvbURCLFxuICAgIGdldEV2ZW50V2FycmFudG9yc0Zyb21EQixcbiAgICBnZXRFdmVudFN0YXR1c2VzRnJvbURCLFxuICB9IGZyb20gXCIuL2luZGV4XCI7XG5cbiAgaW1wb3J0IHsgdXNlciB9IGZyb20gXCIuLi8uLi9zdG9yZXNcIjtcbiAgaW1wb3J0IHsgYWN0aW9uU2V0IH0gZnJvbSBcIi4uLy4uL3VpL0FjdGlvbnNCYXJcIjtcbiAgaW1wb3J0IHsgb2JqZWN0c0RpZmYgfSBmcm9tIFwiLi4vLi4vaGVscGVyc1wiO1xuXG4gIHNldENvbnRleHQoXCJldmVudHNFZGl0b3JDb250ZXh0XCIsIHtcbiAgICBjb250YWN0VHlwZXM6IGdldENvbnRhY3RUeXBlc0Zyb21EQigpLFxuICB9KTtcbiAgZXhwb3J0IGxldCBldmVudCA9IHt9O1xuICAvLyBsZXQgaXNFdmVudE1vZGlmaWVkID0gZmFsc2U7XG4gIGxldCBtb2RpZmllZEV2ZW50ID0ge307XG4gIGxldCBncmFudExldmVsID0gMDtcbiAgbGV0IHNlbGVjdGVkVGFiID0gXCJnZW5lcmFsXCI7XG4gIGxldCBhY3Rpb25zO1xuICBsZXQgdmVudWVzQnJvd3NlclNob3duID0gZmFsc2U7XG4gIGxldCBzZWxlY3RlZFZlbnVlID0ge307XG4gIGxldCB2ZW51ZUxpbmtlZCA9IHRydWU7XG4gIGxldCBwcm9ncmFtID0gW107XG4gIGNvbnN0IGV2ZW50Q2F0ZWdvcmllcyA9IGdldEV2ZW50Q2F0ZWdvcmllc0Zyb21EQigpO1xuICBjb25zdCBldmVudEJyYW5kcyA9IGdldEV2ZW50QnJhbmRzRnJvbURCKCk7XG4gIGNvbnN0IGV2ZW50U3RhdHVzZXMgPSBnZXRFdmVudFN0YXR1c2VzRnJvbURCKCk7XG4gIGNvbnN0IGV2ZW50V2FycmFudG9ycyA9IGdldEV2ZW50V2FycmFudG9yc0Zyb21EQigpO1xuXG4gIGNvbnN0IGRpc3BhdGNoID0gY3JlYXRlRXZlbnREaXNwYXRjaGVyKCk7XG4gIGNvbnN0IHN3aXRjaFRhYiA9ICh0YWIpID0+IHtcbiAgICBzZWxlY3RlZFRhYiA9IHRhYjtcbiAgfTtcbiAgY29uc3QgdG9nZ2xlVmVudWVzQnJvd3NlciA9ICgpID0+IHtcbiAgICB2ZW51ZXNCcm93c2VyU2hvd24gPSAhdmVudWVzQnJvd3NlclNob3duO1xuICB9O1xuICBjb25zdCBsaW5rVmVudWUgPSAoKSA9PiB7XG4gICAgbW9kaWZpZWRFdmVudC5nZW9tZXRyeS5jb29yZGluYXRlcyA9IHNlbGVjdGVkVmVudWUuZ2VvbWV0cnkuY29vcmRpbmF0ZXM7XG4gICAgbW9kaWZpZWRFdmVudC5wcm9wZXJ0aWVzLnZlbnVlID0gc2VsZWN0ZWRWZW51ZS5wcm9wZXJ0aWVzO1xuICAgIHZlbnVlTGlua2VkID0gdHJ1ZTtcbiAgfTtcbiAgY29uc3QgdW5saW5rVmVudWUgPSAoKSA9PiB7XG4gICAgbW9kaWZpZWRFdmVudC5wcm9wZXJ0aWVzLnZlbnVlLmlkID0gbnVsbDtcbiAgICBtb2RpZmllZEV2ZW50LnByb3BlcnRpZXMudmVudWUudGl0bGUgPSBcIlwiO1xuICAgIG1vZGlmaWVkRXZlbnQucHJvcGVydGllcy52ZW51ZS5jb3VudHJ5ID0gXCJcIjtcbiAgICBtb2RpZmllZEV2ZW50LnByb3BlcnRpZXMudmVudWUucGxhY2UgPSB7IHBwOiBcImVuZ1wiLCBlbmc6IFwiXCIgfTtcbiAgICBtb2RpZmllZEV2ZW50LnByb3BlcnRpZXMudmVudWUuYWRkcmVzcyA9IFwiXCI7XG4gICAgdmVudWVMaW5rZWQgPSBmYWxzZTtcbiAgfTtcbiAgY29uc3QgZGlmZkV2ZW50cyA9IChvcmlnaW5hbCwgbW9kaWZpZWQpID0+IHtcbiAgICBjb25zdCBwcmVwYXJlRXZlbnRGb3JPYmplY3RzRGlmZiA9IChldmVudCkgPT4gKHtcbiAgICAgIC4uLmV2ZW50LnByb3BlcnRpZXMsXG4gICAgICBkYXRlRm9yRGlzcGxheTogXCJcIixcbiAgICAgIGRhdGVSYW5nZTogXCJcIixcbiAgICAgIHZlbnVlOiB7IGlkOiBldmVudC5wcm9wZXJ0aWVzLnZlbnVlLmlkIH0sXG4gICAgICBwcm9ncmFtOiB7IGNvbXBldGl0aW9uczogZXZlbnQucHJvcGVydGllcy5wcm9ncmFtLmNvbXBldGl0aW9ucyB9LFxuICAgICAgd2hlbkxhc3RVcGRhdGU6IFwiXCIsXG4gICAgICB1cGRhdGVzOiBcIlwiLFxuICAgIH0pO1xuICAgIG9iamVjdHNEaWZmKFxuICAgICAgcHJlcGFyZUV2ZW50Rm9yT2JqZWN0c0RpZmYob3JpZ2luYWwpLFxuICAgICAgcHJlcGFyZUV2ZW50Rm9yT2JqZWN0c0RpZmYobW9kaWZpZWQpXG4gICAgKTtcbiAgfTtcblxuICBjb25zdCByZXNldEV2ZW50ID0gYXN5bmMgKCkgPT4ge1xuICAgICh7IGV2ZW50LCBncmFudExldmVsIH0gPSBhd2FpdCBmZXRjaEV2ZW50RGV0YWlsc0Zyb21EQigkdXNlciwgZXZlbnQpKTtcbiAgICBzZWxlY3RlZFZlbnVlID0gZXh0cmFjdFZlbnVlRnJvbUV2ZW50KGV2ZW50KTtcbiAgICBhY3Rpb25zID0gW2FjdGlvblNldC5yZXNldF07XG4gICAgaWYgKGdyYW50TGV2ZWwgPj0gMTAwKSBhY3Rpb25zLnB1c2goYWN0aW9uU2V0LmNsb25lKTtcbiAgICBhY3Rpb25zLnB1c2goYWN0aW9uU2V0LmZpbGxlcik7XG4gICAgaWYgKGdyYW50TGV2ZWwgPj0gNSkgYWN0aW9ucy5wdXNoKGFjdGlvblNldC5zYXZlKTtcbiAgICAvLyBpZiAoZ3JhbnRMZXZlbCA+PSAxMCkgYWN0aW9ucy5wdXNoKGFjdGlvblNldC5kZWxldGUpO1xuICAgIGFjdGlvbnMucHVzaChhY3Rpb25TZXQuZXhpdCk7XG4gICAgbW9kaWZpZWRFdmVudCA9IGNsb25lKGV2ZW50KTtcbiAgICAvLyBpc0V2ZW50TW9kaWZpZWQgPSBmYWxzZTtcbiAgfTtcbiAgY29uc3QgY2xvbmVFdmVudCA9ICgpID0+IHtcbiAgICBtb2RpZmllZEV2ZW50LnByb3BlcnRpZXMuaWQgPSBcIm5ld0V2ZW50XCI7XG4gICAgbW9kaWZpZWRFdmVudC5wcm9wZXJ0aWVzLnVwZGF0ZXMgPSBbXTtcbiAgICBtb2RpZmllZEV2ZW50LnByb3BlcnRpZXMudGl0bGUgPSB7XG4gICAgICBwcDogbW9kaWZpZWRFdmVudC5wcm9wZXJ0aWVzLnRpdGxlLnBwLFxuICAgICAgW21vZGlmaWVkRXZlbnQucHJvcGVydGllcy50aXRsZS5wcF06IFwiKG5ldyBldmVudClcIixcbiAgICB9O1xuICAgIGFjdGlvbnMgPSBbXG4gICAgICBhY3Rpb25TZXQucmVzZXQsXG4gICAgICBhY3Rpb25TZXQuZmlsbGVyLFxuICAgICAgYWN0aW9uU2V0LnNhdmUsXG4gICAgICBhY3Rpb25TZXQuZXhpdCxcbiAgICBdO1xuICAgIC8vIGlzRXZlbnRNb2RpZmllZCA9IHRydWU7XG4gIH07XG4gIGNvbnN0IHNhdmVFdmVudCA9IGFzeW5jICgpID0+IHtcbiAgICBpZiAobW9kaWZpZWRFdmVudC5wcm9wZXJ0aWVzLmlkID09PSBcIm5ld0V2ZW50XCIpIHtcbiAgICAgIGV2ZW50ID0gYXdhaXQgY3JlYXRlUmVzb3VyY2UoXCJldmVudFwiLCBtb2RpZmllZEV2ZW50LCAkdXNlci50b2tlbik7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIGlmIChpc0V2ZW50TW9kaWZpZWQgfHwgZGlmZkV2ZW50cyhldmVudCwgbW9kaWZpZWRFdmVudCkgIT09IG51bGwpIHtcbiAgICAgIGV2ZW50ID0gYXdhaXQgdXBkYXRlUmVzb3VyY2UoXG4gICAgICAgIFwiZXZlbnRcIixcbiAgICAgICAgbW9kaWZpZWRFdmVudC5wcm9wZXJ0aWVzLmlkLFxuICAgICAgICBtb2RpZmllZEV2ZW50LFxuICAgICAgICAkdXNlci50b2tlblxuICAgICAgKTtcbiAgICAgIC8vIH0gZWxzZSB7XG4gICAgICAvLyAgIGFsZXJ0KFwiTm8gY2hhbmdlcyBtYWRlIHRvIG9yaWdpbmFsIGV2ZW50IHNvIG5vbmUgc2F2ZWRcIik7XG4gICAgICAvLyB9XG4gICAgfVxuICAgIHJlc2V0RXZlbnQoKTtcbiAgfTtcbiAgLy8gY29uc3QgZGVsZXRlRXZlbnQgPSBhc3luYyAoKSA9PiB7XG4gIC8vICAgbGV0IGluZm8gPSBldmVudC5wcm9wZXJ0aWVzO1xuICAvLyAgIGlmIChcbiAgLy8gICAgIGNvbmZpcm0oXG4gIC8vICAgICAgIGBcbiAgLy8gICAgICAgWW91IHJlcXVlc3RlZCB0byBkZWxldGUgdGhlIGZvbGxvd2luZyBldmVudDpcbiAgLy8gICAgICAgJHtpbmZvLnRpdGxlWyR1c2VyLnByZWZlcmVkTGFuZ3VhZ2VdIHx8IGluZm8udGl0bGVbaW5mby50aXRsZS5wcF19ICgke1xuICAvLyAgICAgICAgIGluZm8uZGF0ZVswXVxuICAvLyAgICAgICB9LCAke2luZm8udmVudWUucGxhY2V9IC8gJHtpbmZvLnZlbnVlLmNvdW50cnl9KVxuICAvLyAgICAgICBBcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gZG8gaXQ/XG4gIC8vICAgICAgIGBcbiAgLy8gICAgIClcbiAgLy8gICApIHtcbiAgLy8gICAgIGF3YWl0IGRlbGV0ZVJlc291cmNlKFwiZXZlbnRcIiwgZXZlbnQucHJvcGVydGllcy5pZCwgJHVzZXIudG9rZW4pO1xuICAvLyAgICAgZGlzcGF0Y2goXCJldmVudERlbGV0ZWRcIik7XG4gIC8vICAgfVxuICAvLyB9O1xuICBjb25zdCBleGl0RXZlbnRFZGl0b3IgPSBhc3luYyAoKSA9PiB7XG4gICAgLy8gaWYgKFxuICAgIC8vICAgZGlmZkV2ZW50cyhldmVudCwgbW9kaWZpZWRFdmVudCkgIT09IG51bGwgJiZcbiAgICAvLyAgIGNvbmZpcm0oXG4gICAgLy8gICAgIGBcbiAgICAvLyAgICAgWW91IGRpZCBub3Qgc2F2ZSB0aGUgY2hhbmdlcyB5b3UgbWFkZS5cbiAgICAvLyAgICAgQXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIGV4aXQgdGhlIGVkaXRvcj9cbiAgICAvLyAgICAgYFxuICAgIC8vICAgKVxuICAgIC8vICkge1xuICAgICh7IGV2ZW50IH0gPSBhd2FpdCBmZXRjaEV2ZW50RGV0YWlsc0Zyb21EQigkdXNlciwgZXZlbnQpKTtcbiAgICBkaXNwYXRjaChcImNsb3NlRXZlbnRFZGl0b3JSZXF1ZXN0ZWRcIik7XG4gIH07XG4gIC8vIH07XG4gIGNvbnN0IGNydWRBY3Rpb24gPSAoZSkgPT4ge1xuICAgIHN3aXRjaCAoZS5kZXRhaWwuYWN0aW9uVHlwZSkge1xuICAgICAgY2FzZSBcInNhdmVcIjpcbiAgICAgICAgc2F2ZUV2ZW50KCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBcInJlc2V0XCI6XG4gICAgICAgIHJlc2V0RXZlbnQoKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIFwiY2xvbmVcIjpcbiAgICAgICAgY2xvbmVFdmVudCgpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgXCJkZWxldGVcIjpcbiAgICAgICAgZGVsZXRlRXZlbnQoKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIFwiZXhpdFwiOlxuICAgICAgICBleGl0RXZlbnRFZGl0b3IoKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICBicmVhaztcbiAgICB9XG4gIH07XG4gIGNvbnN0IGFkanVzdEVuZERhdGUgPSAoKSA9PiB7XG4gICAgaWYgKFxuICAgICAgbW9kaWZpZWRFdmVudC5wcm9wZXJ0aWVzLmlkICE9PSBcIm5ld0V2ZW50XCIgJiZcbiAgICAgIG1vZGlmaWVkRXZlbnQucHJvcGVydGllcy5kYXRlWzBdLnN1YnN0cmluZygwLCA0KSAhPT1cbiAgICAgICAgZXZlbnQucHJvcGVydGllcy5kYXRlWzBdLnN1YnN0cmluZygwLCA0KVxuICAgICkge1xuICAgICAgYWxlcnQoYE5ldyBkYXRlIG11c3QgYmUgaW4gdGhlIHNhbWUgc2Vhc29uLiBcbiAgICAgIFRvIG1vdmUgdGhlIGV2ZW50IHRvIG5ldyBzZWFzb24sIGZpcnN0IGNsb25lIGl0IGFuZCB0aGVuIHNldCB0aGUgbmV3IGRhdGUgZm9yIGNsb25lZCBldmVudC5gKTtcbiAgICAgIG1vZGlmaWVkRXZlbnQucHJvcGVydGllcy5kYXRlWzBdID0gZXZlbnQucHJvcGVydGllcy5kYXRlWzBdO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBtb2RpZmllZEV2ZW50LnByb3BlcnRpZXMuZGF0ZVsxXSA9IG1vZGlmaWVkRXZlbnQucHJvcGVydGllcy5kYXRlWzBdO1xuICAgIC8vIFRPRE8gc3JlZGkgZGEgc2UgbmUgbW/FvmUgbWlqZW5qYXQgc2V6b25hIG9zaW0gYWtvIGplIG5hdGplY2FuamUga2xvbmlyYW5vXG4gIH07XG4gIGNvbnN0IGFkanVzdFN0YXJ0RGF0ZSA9ICgpID0+IHtcbiAgICBpZiAobW9kaWZpZWRFdmVudC5wcm9wZXJ0aWVzLmRhdGVbMV0gPCBtb2RpZmllZEV2ZW50LnByb3BlcnRpZXMuZGF0ZVswXSkge1xuICAgICAgLy8gVE9ETyBzcmVkaSBkYSBzZSBuZSBtb8W+ZSBtaWplbmphdCBzZXpvbmEgb3NpbSBha28gamUgbmF0amVjYW5qZSBrbG9uaXJhbm9cbiAgICAgIGFkanVzdEVuZERhdGUoKTtcbiAgICAgIGFsZXJ0KGBFdmVudCBjYW5ub3QgZW5kIGJlZm9yZSBpdCBzdGFydHMhXG4gICAgICAgICAgU2V0IHRoZSBlbmQgZGF0ZSB0byBjb3JyZWN0IHZhbHVlLmApO1xuICAgIH1cbiAgfTtcblxuICAkOiBpZiAoc2VsZWN0ZWRWZW51ZSAmJiBtb2RpZmllZEV2ZW50LnByb3BlcnRpZXMpIGxpbmtWZW51ZSgpO1xuXG4gIC8vICQ6IGlmIChtb2RpZmllZEV2ZW50LnByb3BlcnRpZXMpIHtcbiAgLy8gICBpZiAoZXZlbnQucHJvcGVydGllcy50aXRsZS5wcCAhPT0gbW9kaWZpZWRFdmVudC5wcm9wZXJ0aWVzLnRpdGxlLnBwKVxuICAvLyAgICAgaXNFdmVudE1vZGlmaWVkID0gdHJ1ZTtcbiAgLy8gICBldmVudC5wcm9wZXJ0aWVzLnRpdGxlLnBwID0gbW9kaWZpZWRFdmVudC5wcm9wZXJ0aWVzLnRpdGxlLnBwO1xuICAvLyB9XG4gIC8vICQ6IGlmIChtb2RpZmllZEV2ZW50LnByb3BlcnRpZXMpIHtcbiAgLy8gICBpZiAoXG4gIC8vICAgICBldmVudC5wcm9wZXJ0aWVzLnRpdGxlW2V2ZW50LnByb3BlcnRpZXMudGl0bGUucHBdICE9PVxuICAvLyAgICAgbW9kaWZpZWRFdmVudC5wcm9wZXJ0aWVzLnRpdGxlW21vZGlmaWVkRXZlbnQucHJvcGVydGllcy50aXRsZS5wcF1cbiAgLy8gICApXG4gIC8vICAgICBpc0V2ZW50TW9kaWZpZWQgPSB0cnVlO1xuICAvLyAgIGV2ZW50LnByb3BlcnRpZXMudGl0bGVbZXZlbnQucHJvcGVydGllcy50aXRsZS5wcF0gPVxuICAvLyAgICAgbW9kaWZpZWRFdmVudC5wcm9wZXJ0aWVzLnRpdGxlW21vZGlmaWVkRXZlbnQucHJvcGVydGllcy50aXRsZS5wcF07XG4gIC8vIH1cbiAgLy8gJDogaWYgKG1vZGlmaWVkRXZlbnQucHJvcGVydGllcylcbiAgLy8gICBldmVudC5wcm9wZXJ0aWVzLmRhdGVGb3JEaXNwbGF5ID0gZm9ybWF0RGF0ZUZvckRpc3BsYXkoW1xuICAvLyAgICAgbW9kaWZpZWRFdmVudC5wcm9wZXJ0aWVzLmRhdGVbMF0sXG4gIC8vICAgICBtb2RpZmllZEV2ZW50LnByb3BlcnRpZXMuZGF0ZVsxXSxcbiAgLy8gICBdKTtcbiAgLy8gJDogaWYgKG1vZGlmaWVkRXZlbnQucHJvcGVydGllcylcbiAgLy8gICBldmVudC5wcm9wZXJ0aWVzLnZlbnVlLmNvdW50cnkgPSBtb2RpZmllZEV2ZW50LnByb3BlcnRpZXMudmVudWUuY291bnRyeTtcbiAgLy8gJDogaWYgKG1vZGlmaWVkRXZlbnQucHJvcGVydGllcylcbiAgLy8gICBldmVudC5wcm9wZXJ0aWVzLnZlbnVlLnBsYWNlID0gbW9kaWZpZWRFdmVudC5wcm9wZXJ0aWVzLnZlbnVlLnBsYWNlO1xuICAvLyAkOiBpZiAobW9kaWZpZWRFdmVudC5wcm9wZXJ0aWVzKVxuICAvLyAgIGV2ZW50LnByb3BlcnRpZXMucHJvZ3JhbS5jYXRlZ29yaWVzID0gW21vZGlmaWVkRXZlbnQucHJvcGVydGllcy5jYXRlZ29yeV07XG5cbiAgcmVzZXRFdmVudCgpO1xuPC9zY3JpcHQ+XG5cbjxkaXYgY2xhc3M9XCJmcmFtZVwiPlxuICA8IS0tIHsjaWYgaXNFdmVudE1vZGlmaWVkfVxuICAgIDxkaXY+RXZlbnQgbW9kaWZpZWQ8L2Rpdj5cbiAgey9pZn0gLS0+XG4gIDxBY3Rpb25zQmFyIHthY3Rpb25zfSBvbjpjcnVkQWN0aW9uPXtjcnVkQWN0aW9ufSAvPlxuICA8ZGl2IGNsYXNzPVwidGFic1wiPlxuICAgIDxkaXZcbiAgICAgIGNsYXNzPVwidGFiXCJcbiAgICAgIGNsYXNzOmFjdGl2ZS10YWI9e3NlbGVjdGVkVGFiID09PSBcImdlbmVyYWxcIn1cbiAgICAgIG9uOmNsaWNrPXsoKSA9PiBzd2l0Y2hUYWIoXCJnZW5lcmFsXCIpfVxuICAgID5cbiAgICAgIEdlbmVyYWxcbiAgICA8L2Rpdj5cbiAgICA8ZGl2XG4gICAgICBjbGFzcz1cInRhYlwiXG4gICAgICBjbGFzczphY3RpdmUtdGFiPXtzZWxlY3RlZFRhYiA9PT0gXCJwcm9ncmFtXCJ9XG4gICAgICBvbjpjbGljaz17KCkgPT4gc3dpdGNoVGFiKFwicHJvZ3JhbVwiKX1cbiAgICA+XG4gICAgICBQcm9ncmFtXG4gICAgPC9kaXY+XG4gICAgPGRpdlxuICAgICAgY2xhc3M9XCJ0YWJcIlxuICAgICAgY2xhc3M6YWN0aXZlLXRhYj17c2VsZWN0ZWRUYWIgPT09IFwiY29udGFjdHNcIn1cbiAgICAgIG9uOmNsaWNrPXsoKSA9PiBzd2l0Y2hUYWIoXCJjb250YWN0c1wiKX1cbiAgICA+XG4gICAgICBDb250YWN0c1xuICAgIDwvZGl2PlxuICAgIDxkaXZcbiAgICAgIGNsYXNzPVwidGFiXCJcbiAgICAgIGNsYXNzOmFjdGl2ZS10YWI9e3NlbGVjdGVkVGFiID09PSBcImxpbmtzXCJ9XG4gICAgICBvbjpjbGljaz17KCkgPT4gc3dpdGNoVGFiKFwibGlua3NcIil9XG4gICAgPlxuICAgICAgTGlua3NcbiAgICA8L2Rpdj5cbiAgICA8ZGl2XG4gICAgICBjbGFzcz1cInRhYlwiXG4gICAgICBjbGFzczphY3RpdmUtdGFiPXtzZWxlY3RlZFRhYiA9PT0gXCJub3Rlc1wifVxuICAgICAgb246Y2xpY2s9eygpID0+IHN3aXRjaFRhYihcIm5vdGVzXCIpfVxuICAgID5cbiAgICAgIE5vdGVzXG4gICAgPC9kaXY+XG4gICAgeyNpZiAkdXNlci5yb2xlID09PSBcImFkbWluXCJ9XG4gICAgICA8ZGl2XG4gICAgICAgIGNsYXNzPVwidGFiXCJcbiAgICAgICAgY2xhc3M6YWN0aXZlLXRhYj17c2VsZWN0ZWRUYWIgPT09IFwiZ3JhbnRzXCJ9XG4gICAgICAgIG9uOmNsaWNrPXsoKSA9PiBzd2l0Y2hUYWIoXCJncmFudHNcIil9XG4gICAgICA+XG4gICAgICAgIEdyYW50c1xuICAgICAgPC9kaXY+XG4gICAgey9pZn1cbiAgICB7I2lmICR1c2VyLnJvbGUgPT09IFwiYWRtaW5cIn1cbiAgICAgIDxkaXZcbiAgICAgICAgY2xhc3M9XCJ0YWJcIlxuICAgICAgICBjbGFzczphY3RpdmUtdGFiPXtzZWxlY3RlZFRhYiA9PT0gXCJyZWdpc3RyYXRpb25zXCJ9XG4gICAgICAgIG9uOmNsaWNrPXsoKSA9PiBzd2l0Y2hUYWIoXCJyZWdpc3RyYXRpb25zXCIpfVxuICAgICAgPlxuICAgICAgICBSZWdpc3RyYXRpb25zXG4gICAgICA8L2Rpdj5cbiAgICB7L2lmfVxuICA8L2Rpdj5cbiAgeyNpZiBtb2RpZmllZEV2ZW50LnByb3BlcnRpZXN9XG4gICAgeyNpZiBzZWxlY3RlZFRhYiA9PT0gXCJnZW5lcmFsXCJ9XG4gICAgICA8ZGl2IGNsYXNzPVwiY29udGVudFwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwic2VjdGlvbi10aXRsZVwiPkV2ZW50IFRpdGxlPC9kaXY+XG4gICAgICAgIDxUaXRsZUVkaXRvciBiaW5kOml0ZW09e21vZGlmaWVkRXZlbnQucHJvcGVydGllcy50aXRsZX0gLz5cbiAgICAgICAgRXZlbnQgc2x1ZzpcbiAgICAgICAgPGlucHV0IGJpbmQ6dmFsdWU9e21vZGlmaWVkRXZlbnQucHJvcGVydGllcy5zbHVnfSBzaXplPVwiMzBcIiAvPlxuICAgICAgICA8ZGl2IGNsYXNzPVwic2VjdGlvbi10aXRsZVwiPk1lZXRpbmcgU2VyaWVzPC9kaXY+XG4gICAgICAgIDxzZWxlY3QgYmluZDp2YWx1ZT17bW9kaWZpZWRFdmVudC5wcm9wZXJ0aWVzLmJyYW5kfT5cbiAgICAgICAgICB7I2VhY2ggZXZlbnRCcmFuZHMgYXMgYnJhbmR9XG4gICAgICAgICAgICA8b3B0aW9uIHZhbHVlPXticmFuZC5pZH0+e2JyYW5kW2JyYW5kLnBwXX0gKHticmFuZC5vd25lcn0pPC9vcHRpb24+XG4gICAgICAgICAgey9lYWNofVxuICAgICAgICA8L3NlbGVjdD5cbiAgICAgICAgPGhyIC8+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJzZWN0aW9uLXRpdGxlXCI+RGF0ZXM8L2Rpdj5cbiAgICAgICAgPHA+XG4gICAgICAgICAgU3RhcnRzOlxuICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgdHlwZT1cImRhdGVcIlxuICAgICAgICAgICAgYmluZDp2YWx1ZT17bW9kaWZpZWRFdmVudC5wcm9wZXJ0aWVzLmRhdGVbMF19XG4gICAgICAgICAgICBvbjpibHVyPXthZGp1c3RFbmREYXRlfVxuICAgICAgICAgIC8+XG4gICAgICAgIDwvcD5cbiAgICAgICAgPHA+XG4gICAgICAgICAgRW5kczpcbiAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgIHR5cGU9XCJkYXRlXCJcbiAgICAgICAgICAgIGJpbmQ6dmFsdWU9e21vZGlmaWVkRXZlbnQucHJvcGVydGllcy5kYXRlWzFdfVxuICAgICAgICAgICAgb246Ymx1cj17YWRqdXN0U3RhcnREYXRlfVxuICAgICAgICAgIC8+XG4gICAgICAgIDwvcD5cbiAgICAgICAgPGRpdiBjbGFzcz1cInNlY3Rpb24tdGl0bGVcIj5WZW51ZTwvZGl2PlxuICAgICAgICBJZDpcbiAgICAgICAgPGlucHV0IGJpbmQ6dmFsdWU9e21vZGlmaWVkRXZlbnQucHJvcGVydGllcy52ZW51ZS5pZH0gZGlzYWJsZWQgLz5cbiAgICAgICAgPGJyIC8+XG4gICAgICAgIENvdW50cnk6XG4gICAgICAgIDxpbnB1dCBiaW5kOnZhbHVlPXttb2RpZmllZEV2ZW50LnByb3BlcnRpZXMudmVudWUuY291bnRyeX0gLz5cbiAgICAgICAgPGJyIC8+XG4gICAgICAgIFBsYWNlOlxuICAgICAgICA8UGxhY2VFZGl0b3IgYmluZDppdGVtPXttb2RpZmllZEV2ZW50LnByb3BlcnRpZXMudmVudWUucGxhY2V9IC8+XG4gICAgICAgIFRpdGxlOlxuICAgICAgICA8aW5wdXQgYmluZDp2YWx1ZT17bW9kaWZpZWRFdmVudC5wcm9wZXJ0aWVzLnZlbnVlLnRpdGxlfSBkaXNhYmxlZCAvPlxuICAgICAgICA8YnIgLz5cbiAgICAgICAgQWRkcmVzczpcbiAgICAgICAgPGlucHV0IGJpbmQ6dmFsdWU9e21vZGlmaWVkRXZlbnQucHJvcGVydGllcy52ZW51ZS5hZGRyZXNzfSBkaXNhYmxlZCAvPlxuICAgICAgICA8YnIgLz5cbiAgICAgICAgPGJ1dHRvbiBvbjpjbGljaz17dG9nZ2xlVmVudWVzQnJvd3Nlcn0+KC0tQlJPV1NFLS0pPC9idXR0b24+XG4gICAgICAgIDxidXR0b24gb246Y2xpY2s9e3VubGlua1ZlbnVlfT4oLS1DTEVBUi0tKTwvYnV0dG9uPlxuICAgICAgICB7I2lmIHZlbnVlc0Jyb3dzZXJTaG93bn1cbiAgICAgICAgICA8VmVudWVzQnJvd3NlciBiaW5kOnNlbGVjdGVkVmVudWUgLz5cbiAgICAgICAgey9pZn1cbiAgICAgICAgPGRpdiBjbGFzcz1cInNlY3Rpb24tdGl0bGVcIj5BZG1pbjwvZGl2PlxuICAgICAgICBTb3VyY2U6XG4gICAgICAgIDxpbnB1dFxuICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICBsZW5ndGg9XCIzXCJcbiAgICAgICAgICBiaW5kOnZhbHVlPXttb2RpZmllZEV2ZW50LnByb3BlcnRpZXMuc291cmNlfVxuICAgICAgICAvPlxuICAgICAgICA8YnIgLz5cbiAgICAgICAgV2FycmFudG9yOlxuICAgICAgICA8c2VsZWN0IGJpbmQ6dmFsdWU9e21vZGlmaWVkRXZlbnQucHJvcGVydGllcy53YXJyYW50b3J9PlxuICAgICAgICAgIHsjZWFjaCBldmVudFdhcnJhbnRvcnMgYXMgd2FycmFudG9yfVxuICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT17d2FycmFudG9yLmlkfT57d2FycmFudG9yLmVuZ308L29wdGlvbj5cbiAgICAgICAgICB7L2VhY2h9XG4gICAgICAgIDwvc2VsZWN0PlxuICAgICAgICA8YnIgLz5cbiAgICAgICAgU3RhdHVzOlxuICAgICAgICA8c2VsZWN0IGJpbmQ6dmFsdWU9e21vZGlmaWVkRXZlbnQucHJvcGVydGllcy5zdGF0dXN9PlxuICAgICAgICAgIHsjZWFjaCBldmVudFN0YXR1c2VzIGFzIHN0YXR1c31cbiAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9e3N0YXR1cy5pZC50b1N0cmluZygpfT57c3RhdHVzLmVuZ308L29wdGlvbj5cbiAgICAgICAgICB7L2VhY2h9XG4gICAgICAgIDwvc2VsZWN0PlxuICAgICAgICA8YnIgLz5cbiAgICAgICAgPGxhYmVsPlxuICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgdHlwZT1cImNoZWNrYm94XCJcbiAgICAgICAgICAgIGJpbmQ6Y2hlY2tlZD17bW9kaWZpZWRFdmVudC5wcm9wZXJ0aWVzLmlzUHVibGlzaGVkfVxuICAgICAgICAgIC8+XG4gICAgICAgIDwvbGFiZWw+XG4gICAgICAgIFB1Ymxpc2ggRXZlbnRcbiAgICAgIDwvZGl2PlxuICAgIHsvaWZ9XG4gICAgeyNpZiBzZWxlY3RlZFRhYiA9PT0gXCJwcm9ncmFtXCJ9XG4gICAgICA8ZGl2IGNsYXNzPVwiY29udGVudFwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwic2VjdGlvbi10aXRsZVwiPldBIENsYXNzaWZpY2F0aW9uPC9kaXY+XG4gICAgICAgIDxzZWxlY3QgYmluZDp2YWx1ZT17bW9kaWZpZWRFdmVudC5wcm9wZXJ0aWVzLmNhdGVnb3J5fT5cbiAgICAgICAgICB7I2VhY2ggZXZlbnRDYXRlZ29yaWVzIGFzIGNhdGVnb3J5fVxuICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT17Y2F0ZWdvcnkubmFtZX0+XG4gICAgICAgICAgICAgIHtjYXRlZ29yeS5uYW1lfVxuICAgICAgICAgICAgICAoe2NhdGVnb3J5LmRlc2NyaXB0aW9ufSlcbiAgICAgICAgICAgIDwvb3B0aW9uPlxuICAgICAgICAgIHsvZWFjaH1cbiAgICAgICAgPC9zZWxlY3Q+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJzZWN0aW9uLXRpdGxlXCI+SW50ZXJudGF0aW9uYWwgQWNjZXNzPC9kaXY+XG4gICAgICAgIDxBY2Nlc3NFZGl0b3IgYmluZDphY2Nlc3M9e21vZGlmaWVkRXZlbnQucHJvcGVydGllcy5hY2Nlc3N9IC8+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJzZWN0aW9uLXRpdGxlXCI+UHJvZ3JhbSBFZGl0b3I8L2Rpdj5cbiAgICAgICAgPFByb2dyYW1FZGl0b3JcbiAgICAgICAgICBiaW5kOnByb2dyYW09e21vZGlmaWVkRXZlbnQucHJvcGVydGllcy5wcm9ncmFtfVxuICAgICAgICAgIGJpbmQ6Y29tcGV0aXRpb25zTGlzdD17bW9kaWZpZWRFdmVudC5wcm9wZXJ0aWVzLmNvbXBldGl0aW9uc0xpc3R9XG4gICAgICAgICAge2V2ZW50Q2F0ZWdvcmllc31cbiAgICAgICAgICBkZWZhdWx0Q2F0ZWdvcnk9e21vZGlmaWVkRXZlbnQucHJvcGVydGllcy5jYXRlZ29yeX1cbiAgICAgICAgLz5cbiAgICAgIDwvZGl2PlxuICAgIHsvaWZ9XG4gICAgeyNpZiBzZWxlY3RlZFRhYiA9PT0gXCJjb250YWN0c1wifVxuICAgICAgPGRpdiBjbGFzcz1cImNvbnRlbnRcIj5cbiAgICAgICAgPENvbnRhY3RzRWRpdG9yXG4gICAgICAgICAge2V2ZW50fVxuICAgICAgICAgIGJpbmQ6Y29udGFjdHM9e21vZGlmaWVkRXZlbnQucHJvcGVydGllcy5jb250YWN0c31cbiAgICAgICAgLz5cbiAgICAgIDwvZGl2PlxuICAgIHsvaWZ9XG4gICAgeyNpZiBzZWxlY3RlZFRhYiA9PT0gXCJsaW5rc1wifVxuICAgICAgPGRpdiBjbGFzcz1cImNvbnRlbnRcIj5cbiAgICAgICAgPERvY3VtZW50c0VkaXRvciBiaW5kOmxpbmtzPXttb2RpZmllZEV2ZW50LnByb3BlcnRpZXMubGlua3N9IC8+XG4gICAgICA8L2Rpdj5cbiAgICB7L2lmfVxuICAgIHsjaWYgc2VsZWN0ZWRUYWIgPT09IFwibm90ZXNcIn1cbiAgICAgIDxkaXYgY2xhc3M9XCJjb250ZW50XCI+XG4gICAgICAgIDxOb3Rlc0VkaXRvciBiaW5kOm5vdGVzPXttb2RpZmllZEV2ZW50LnByb3BlcnRpZXMubm90ZXN9IC8+XG4gICAgICA8L2Rpdj5cbiAgICB7L2lmfVxuICAgIHsjaWYgc2VsZWN0ZWRUYWIgPT09IFwiZ3JhbnRzXCJ9XG4gICAgICA8ZGl2IGNsYXNzPVwiY29udGVudFwiPnR1IHVyZcSRdWplbSBncmFudG92ZTwvZGl2PlxuICAgIHsvaWZ9XG4gICAgeyNpZiBzZWxlY3RlZFRhYiA9PT0gXCJyZWdpc3RyYXRpb25zXCJ9XG4gICAgICA8ZGl2IGNsYXNzPVwiY29udGVudFwiPnR1IHVyZcSRdWplbSBwcmlqYXZlIG5hdGplY2F0ZWxqYTwvZGl2PlxuICAgIHsvaWZ9XG4gIHsvaWZ9XG48L2Rpdj5cblxuPHN0eWxlPlxuICAuZnJhbWUge1xuICAgIHBhZGRpbmc6IDVweDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgICBtYXgtd2lkdGg6IGNhbGMoMTAwdncgLSAyMHB4KTtcbiAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgIG92ZXJmbG93LXg6IGhpZGRlbjtcbiAgfVxuXG4gIC50YWJzIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgICAvKiBib3JkZXI6IDJweCBzb2xpZCBnb2xkOyAqL1xuICB9XG4gIC50YWJzIC5hY3RpdmUtdGFiIHtcbiAgICBjb2xvcjogIzM0OThkYjtcbiAgICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjMzQ5OGRiO1xuICB9XG4gIC50YWIge1xuICAgIGhlaWdodDogMzBweDtcbiAgICBsaW5lLWhlaWdodDogMTVweDtcbiAgICBmbGV4OiAxIDEgYXV0bztcbiAgICBtaW4td2lkdGg6IDkwcHg7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGZvbnQtc2l6ZTogMThweDtcbiAgICBtYXJnaW46IDJweDtcbiAgICBwYWRkaW5nOiA1cHg7XG4gICAgYmFja2dyb3VuZDogIzM0OThkYjtcbiAgICBjb2xvcjogd2hpdGU7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICB9XG4gIC50YWI6aG92ZXIge1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkZXI7XG4gIH1cbiAgLmNvbnRlbnQge1xuICB9XG4gIC5mcmFtZSAuY29udGVudCAuc2VjdGlvbi10aXRsZSB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIG1hcmdpbjogMnB4O1xuICAgIHBhZGRpbmc6IDRweCAxMHB4O1xuICAgIGJhY2tncm91bmQtY29sb3I6IGxpZ2h0Z3JheTtcbiAgICBmb250LXNpemU6IDE2cHg7XG4gICAgLyogYm9yZGVyOiAxcHggc29saWQgYmx1ZTsgKi9cbiAgfVxuICBpbnB1dCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogbGlnaHRzdGVlbGJsdWU7XG4gIH1cbiAgcCB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gIH1cbjwvc3R5bGU+XG4iLCI8c2NyaXB0PlxuICBpbXBvcnQgSGVhZGVyIGZyb20gXCIuL0hlYWRlci5zdmVsdGVcIjtcbiAgaW1wb3J0IFZlbnVlQW5kQ29udGFjdHNJbmZvIGZyb20gXCIuL1ZlbnVlQW5kQ29udGFjdHNJbmZvLnN2ZWx0ZVwiO1xuICBpbXBvcnQgTGlua3MgZnJvbSBcIi4vTGlua3Muc3ZlbHRlXCI7XG4gIGltcG9ydCBDb21wZXRpdGlvbnNQaWNrZXIgZnJvbSBcIi4uLy4uL3VpL0NvbXBldGl0aW9uc1BpY2tlci9wcmVzZW50LnN2ZWx0ZVwiO1xuICBpbXBvcnQgRXZlbnRFZGl0b3IgZnJvbSBcIi4uL0V2ZW50RWRpdG9yL2luZGV4LnN2ZWx0ZVwiO1xuXG4gIGltcG9ydCB7IGNyZWF0ZUV2ZW50RGlzcGF0Y2hlciwgc2V0Q29udGV4dCB9IGZyb20gXCJzdmVsdGVcIjtcblxuICAvLyBpbXBvcnQgeyBjaGVja0dyYW50IH0gZnJvbSBcIi4uLy4uL2hlbHBlcnNcIjtcblxuICAvLyBjb25zdCBkaXNwYXRjaCA9IGNyZWF0ZUV2ZW50RGlzcGF0Y2hlcigpO1xuXG4gIGltcG9ydCB7IHVzZXIgfSBmcm9tIFwiLi4vLi4vc3RvcmVzXCI7XG4gIC8vIGV4cG9ydCBsZXQgcGFnZVdpZHRoID0gMTAwMDtcbiAgZXhwb3J0IGxldCBldmVudDtcbiAgZXhwb3J0IGxldCB1c2VyTG9jYXRpb24gPSB7fTtcbiAgZXhwb3J0IGxldCBkc2FGaWx0ZXIgPSBbXTtcbiAgZXhwb3J0IGxldCBpc0dyYW50ZWRGaWx0ZXIgPSBmYWxzZTtcbiAgbGV0IGlzRWRpdE1vZGVPbiA9IGZhbHNlO1xuXG4gIGNvbnN0IGVkaXRFdmVudCA9ICgpID0+IHtcbiAgICBpZiAoaXNHcmFudGVkRmlsdGVyKSBpc0VkaXRNb2RlT24gPSB0cnVlO1xuICB9O1xuICBjb25zdCBjbG9zZUV2ZW50RWRpdG9yID0gKCkgPT4ge1xuICAgIGlzRWRpdE1vZGVPbiA9IGZhbHNlO1xuICB9O1xuPC9zY3JpcHQ+XG5cbjxkaXYgY2xhc3M9XCJmcmFtZVwiPlxuICB7I2lmIGV2ZW50fVxuICAgIDxkaXYgY2xhc3M9XCJoZWFkZXJcIiBvbjpkYmxjbGljaz17ZWRpdEV2ZW50fT5cbiAgICAgIDxIZWFkZXIge2V2ZW50fSAvPlxuICAgIDwvZGl2PlxuICAgIHsjaWYgaXNFZGl0TW9kZU9ufVxuICAgICAgPEV2ZW50RWRpdG9yXG4gICAgICAgIGJpbmQ6ZXZlbnRcbiAgICAgICAgb246ZXZlbnREZWxldGVkXG4gICAgICAgIG9uOmNsb3NlRXZlbnRFZGl0b3JSZXF1ZXN0ZWQ9e2Nsb3NlRXZlbnRFZGl0b3J9XG4gICAgICAvPlxuICAgIHs6ZWxzZX1cbiAgICAgIDxkaXYgY2xhc3M9XCJjb250ZW50XCI+XG4gICAgICAgIDwhLS0gPGRpdiBjbGFzcz1cIm5ld3Nib3hcIj5cbiAgICAgIHsjZWFjaCBldmVudC5wcm9wZXJ0aWVzLmluZm8uY3J0aWNhIGFzIG5ld3NJdGVtfXtuZXdzSXRlbX17L2VhY2h9XG4gICAgPC9kaXY+IC0tPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiaW5mb2JveFwiPlxuICAgICAgICAgIDxWZW51ZUFuZENvbnRhY3RzSW5mbyB7ZXZlbnR9IHt1c2VyTG9jYXRpb259IC8+XG4gICAgICAgICAgPExpbmtzIHtldmVudH0gLz5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIHsjaWYgZXZlbnQucHJvcGVydGllcy5wcm9ncmFtLmRpc2NpcGxpbmVzLmxlbmd0aCAhPT0gMH1cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwicHJvZ3JhbVwiPlxuICAgICAgICAgICAgPENvbXBldGl0aW9uc1BpY2tlclxuICAgICAgICAgICAgICBwcm9ncmFtPXtldmVudC5wcm9wZXJ0aWVzLnByb2dyYW19XG4gICAgICAgICAgICAgIGJpbmQ6c2VsZWN0ZWREc2FJdGVtcz17ZHNhRmlsdGVyfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgey9pZn1cbiAgICAgIDwvZGl2PlxuICAgIHsvaWZ9XG4gIHsvaWZ9XG48L2Rpdj5cblxuPHN0eWxlPlxuICAuZnJhbWUge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gIH1cbiAgLmZyYW1lIC5oZWFkZXIge1xuICB9XG4gIC5mcmFtZSAud2FybmluZyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBjb2xvcjogcGFsZXZpb2xldHJlZDtcbiAgfVxuICAuZnJhbWUgLmNvbnRlbnQge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgfVxuICAuZnJhbWUgLmNvbnRlbnQgLm5ld3Nib3gge1xuICAgIG1hcmdpbi10b3A6IDEwcHg7XG4gICAgaGVpZ2h0OiA1MHB4O1xuICB9XG4gIC5mcmFtZSAuY29udGVudCAuaW5mb2JveCB7XG4gICAgbWFyZ2luLXRvcDogMTBweDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAvKiBib3JkZXI6IDFweCBzb2xpZCBibHVlOyAqL1xuICB9XG4gIC5mcmFtZSAuY29udGVudCAuc2VjdGlvbi10aXRsZSB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIG1hcmdpbjogMCA1cHg7XG4gICAgcGFkZGluZzogOHB4IDEwcHg7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogbGlnaHRncmF5O1xuICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgfVxuICAuZnJhbWUgLmNvbnRlbnQgLnByb2dyYW0ge1xuXHRcdFx0XHRib3JkZXItdG9wOiAzcHggc29saWQgbGlnaHRncmF5O1xuXHRcdFx0fVxuPC9zdHlsZT5cbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFrQ0UsTUFBTSw0QkFBQyxDQUFDLEFBQ04sT0FBTyxDQUFFLElBQUksQ0FDYixXQUFXLENBQUUsTUFBTSxDQUNuQixTQUFTLENBQUUsSUFBSSxDQUNmLGdCQUFnQixDQUFFLFNBQVMsQ0FDM0IsT0FBTyxDQUFFLEdBQUcsQ0FBQyxDQUFDLEFBQ2hCLENBQUMsQUFDRCxvQkFBTSxDQUFDLFlBQVksY0FBQyxDQUFDLEFBQ25CLElBQUksQ0FBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FDZCxPQUFPLENBQUUsR0FBRyxDQUFDLElBQUksQ0FDakIsU0FBUyxDQUFFLElBQUksQ0FDZixXQUFXLENBQUUsSUFBSSxDQUNqQixVQUFVLENBQUUsTUFBTSxBQUNwQixDQUFDLEFBQ0Qsb0JBQU0sQ0FBQyxXQUFXLGNBQUMsQ0FBQyxBQUNsQixJQUFJLENBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQ2QsT0FBTyxDQUFFLElBQUksQ0FDYixTQUFTLENBQUUsSUFBSSxDQUNmLGFBQWEsQ0FBRSxhQUFhLEFBRzlCLENBQUMsQUFDRCxvQkFBTSxDQUFDLFdBQVcsQ0FBQyxVQUFVLGNBQUMsQ0FBQyxBQUM3QixJQUFJLENBQUUsQ0FBQyxDQUNQLE9BQU8sQ0FBRSxHQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQ3ZCLE9BQU8sQ0FBRSxJQUFJLENBQ2IsV0FBVyxDQUFFLE1BQU0sQUFFckIsQ0FBQyxBQUNELG9CQUFNLENBQUMsV0FB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 */