valyrian.js 7.0.2 → 7.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +0 -6
- package/dist/index.min.js +1 -1
- package/dist/index.min.js.map +1 -1
- package/dist/index.mjs +0 -6
- package/lib/index.ts +0 -10
- package/package.json +1 -1
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../lib/index.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,KAAK;IACpB,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACtB,KAAK,CAAC,EAAE,GAAG,CAAC;IACZ,QAAQ,CAAC,EAAE;QAET,CAAC,KAAK,EAAE,cAAc,GAAG,KAAK,CAAC;KAChC,CAAC;IACF,QAAQ,CAAC,EAAE;QAET,CAAC,KAAK,EAAE,cAAc,EAAE,QAAQ,EAAE,cAAc,GAAG,KAAK,CAAC;KAC1D,CAAC;IACF,QAAQ,CAAC,EAAE;QAET,CAAC,QAAQ,EAAE,cAAc,GAAG,KAAK,CAAC;KACnC,CAAC;IACF,YAAY,CAAC,EAAE;QAEb,CAAC,KAAK,EAAE,cAAc,EAAE,QAAQ,EAAE,cAAc,GAAG,SAAS,GAAG,OAAO,CAAC;KACxE,CAAC;IACF,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,GAAG,CAAC;CACtC;AACD,MAAM,WAAW,UAAW,SAAQ,OAAO;IACzC,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACpB;AACD,MAAM,WAAW,cAAc;IAE7B,KAAK,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,aAAa,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,GAAG,cAAc,CAAC;IAEhG,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,aAAa,CAAC;IACxC,KAAK,EAAE,KAAK,CAAC;IAEb,QAAQ,EAAE,QAAQ,CAAC;IACnB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,GAAG,CAAC,EAAE,UAAU,CAAC;IACjB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,GAAG,CAAC;CACtC;AACD,MAAM,WAAW,YAAa,SAAQ,cAAc;IAClD,GAAG,EAAE,UAAU,CAAC;CACjB;AACD,MAAM,WAAW,SAAS;IAExB,CAAC,KAAK,CAAC,EAAE,KAAK,GAAG,IAAI,EAAE,GAAG,QAAQ,EAAE,GAAG,EAAE,GAAG,cAAc,GAAG,QAAQ,GAAG,GAAG,CAAC;IAC5E,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACpB;AACD,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,SAAS,CAAC;IAChB,KAAK,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC;IACrB,QAAQ,CAAC,EAAE,GAAG,EAAE,CAAC;IACjB,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACpB;AACD,MAAM,WAAW,uBAAwB,SAAQ,cAAc;IAC7D,GAAG,EAAE,SAAS,GAAG,aAAa,CAAC;IAC/B,KAAK,EAAE,KAAK,CAAC;IAEb,QAAQ,EAAE,QAAQ,CAAC;CACpB;AACD,MAAM,WAAW,QAAS,SAAQ,KAAK,CAAC,cAAc,GAAG,uBAAuB,GAAG,GAAG,CAAC;CAAG;AAC1F,MAAM,WAAW,SAAS;IAExB,CAAC,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,YAAY,EAAE,QAAQ,CAAC,EAAE,YAAY,GAAG,IAAI,GAAG,OAAO,CAAC;CAC5E;AACD,MAAM,WAAW,UAAU;IACzB,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,CAAC;CAC1B;AACD,MAAM,WAAW,aAAa;IAC5B,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;CACrB;AACD,MAAM,WAAW,OAAO;IACtB,SAAS,EAAE,SAAS,GAAG,aAAa,GAAG,IAAI,CAAC;IAC5C,KAAK,EAAE,YAAY,GAAG,IAAI,CAAC;IAC3B,QAAQ,CAAC,EAAE,YAAY,GAAG,IAAI,CAAC;CAChC;AACD,MAAM,WAAW,CAAC;IAEhB,CAAC,cAAc,EAAE,MAAM,GAAG,SAAS,GAAG,aAAa,EAAE,KAAK,EAAE,KAAK,GAAG,IAAI,EAAE,GAAG,QAAQ,EAAE,QAAQ,GAC3F,cAAc,GACd,uBAAuB,CAAC;IAE5B,QAAQ,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,QAAQ,EAAE,QAAQ,GAAG,QAAQ,CAAC;CACnD;AAID,eAAO,IAAI,QAAQ,SAAuF,CAAC;AAE3G,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,GAAE,OAAe,GAAG,UAAU,CAEhF;AAED,eAAO,MAAM,KAAK,gBAIY,CAAC;AAE/B,wBAAgB,WAAW,CAAC,SAAS,KAAA,GAAG,SAAS,IAAI,SAAS,CAE7D;AAED,eAAO,MAAM,OAAO,YAAa,OAAO,GAAG,cAAc,6BAExD,CAAC;AAEF,eAAO,MAAM,gBAAgB,YAAa,OAAO,GAAG,uBAAuB,sCAE1E,CAAC;AA8BF,wBAAgB,KAAK,CAAC,UAAU,EAAE,MAAM,OAKvC;AAUD,eAAO,MAAM,OAAO,EAAE,OAIrB,CAAC;AAGF,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,CAgB9C,CAAC;AAQF,wBAAgB,OAAO,CAAC,QAAQ,KAAA,QAE/B;AAED,wBAAgB,QAAQ,CAAC,QAAQ,KAAA,QAEhC;AAED,wBAAgB,SAAS,CAAC,QAAQ,KAAA,QAEjC;AAED,wBAAgB,SAAS,CAAC,QAAQ,KAAA,QAEjC;AA4CD,eAAO,MAAM,UAAU,EAAE,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../lib/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -187,12 +187,6 @@ var directives = {
|
|
|
187
187
|
vnode.children = [trust(html)];
|
|
188
188
|
},
|
|
189
189
|
"v-model": ([model, property, event], vnode, oldVnode) => {
|
|
190
|
-
if (oldVnode && oldVnode.dom === vnode.dom) {
|
|
191
|
-
let [oldModel, oldProperty, oldEvent] = oldVnode.props["v-model"] || [];
|
|
192
|
-
if (oldModel === model && oldProperty === property && oldEvent === event) {
|
|
193
|
-
return;
|
|
194
|
-
}
|
|
195
|
-
}
|
|
196
190
|
let value;
|
|
197
191
|
let handler = (e) => model[property] = e.target.value;
|
|
198
192
|
if (vnode.tag === "input") {
|
package/dist/index.min.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
(()=>{var e="#text",t=Boolean("undefined"!=typeof process&&process.versions&&process.versions.node);function o(e,t=!1){return t?document.createElementNS("http://www.w3.org/2000/svg",e):document.createElement(e)}var n=function(e,t,o){this.tag=e,this.props=t,this.children=o};function l(e){return e&&("function"==typeof e||"object"==typeof e&&"view"in e)}var
|
|
1
|
+
(()=>{var e="#text",t=Boolean("undefined"!=typeof process&&process.versions&&process.versions.node);function o(e,t=!1){return t?document.createElementNS("http://www.w3.org/2000/svg",e):document.createElement(e)}var n=function(e,t,o){this.tag=e,this.props=t,this.children=o};function l(e){return e&&("function"==typeof e||"object"==typeof e&&"view"in e)}var i=e=>e instanceof n,d=e=>i(e)&&l(e.tag);function r(t){let o=[];for(let l=0,i=t.childNodes.length;l<i;l++){let i=t.childNodes[l];if(3!==i.nodeType)1===i.nodeType&&o.push(r(i));else{let t=new n(e,{},[]);t.dom=i,o.push(t)}}let l={};for(let e=0,o=t.attributes.length;e<o;e++){let o=t.attributes[e];l[o.nodeName]=o.nodeValue}let i=new n(t.tagName.toLowerCase(),l,o);return i.dom=t,i}function p(e){let t=o("div");return t.innerHTML=e.trim(),[].map.call(t.childNodes,e=>r(e))}var s=null,a=null,c=!1,u={vnode:null,oldVnode:null,component:null},m={key:!0,state:!0,"v-keep":!0,"v-if":!0,"v-unless":!0,"v-for":!0,"v-show":!0,"v-class":!0,"v-html":!0,"v-model":!0,"v-create":!0,"v-update":!0,"v-cleanup":!0},f=new Set,v=new Set,h=new Set,g=new Set;function y(e){f.add(e)}function w(e){for(let t of e)t();e.clear()}var k={};function C(e){let t=e.target,o=`v-on${e.type}`;for(;t;){if(t[o])return t[o](e,t),void(e.defaultPrevented||A());t=t.parentNode}}var N=e=>(t,o,n)=>{if(e?t:!t){let e=document.createTextNode("");return n&&n.dom&&n.dom.parentNode&&n.dom.parentNode.replaceChild(e,n.dom),o.tag="#text",o.children=[],o.props={},o.dom=e,!1}},V={"v-if":N(!1),"v-unless":N(!0),"v-for":(e,t)=>{let o=[],n=t.children[0];for(let t=0,l=e.length;t<l;t++)o.push(n(e[t],t));t.children=o},"v-show":(e,t)=>{t.dom.style.display=e?"":"none"},"v-class":(e,t)=>{for(let o in e)t.dom.classList.toggle(o,e[o])},"v-html":(e,t)=>{t.children=[p(e)]},"v-model":([e,t,o],n,l)=>{let i,d=o=>e[t]=o.target.value;if("input"===n.tag)switch(o=o||"oninput",n.props.type){case"checkbox":Array.isArray(e[t])?(d=o=>{let n=o.target.value,l=e[t].indexOf(n);-1===l?e[t].push(n):e[t].splice(l,1)},i=-1!==e[t].indexOf(n.dom.value)):"value"in n.props?(d=()=>{e[t]===n.props.value?e[t]=null:e[t]=n.props.value},i=e[t]===n.props.value):(d=()=>e[t]=!e[t],i=e[t]),x("checked",i,n);break;case"radio":x("checked",e[t]===n.dom.value,n);break;default:x("value",e[t],n)}else"select"===n.tag?(o=o||"onclick",n.props.multiple?(d=o=>{let n=o.target.value;if(o.ctrlKey){let o=e[t].indexOf(n);-1===o?e[t].push(n):e[t].splice(o,1)}else e[t].splice(0,e[t].length),e[t].push(n)},n.children.forEach(o=>{if("option"===o.tag){let n="value"in o.props?o.props.value:o.children.join("").trim();o.props.selected=-1!==e[t].indexOf(n)}})):n.children.forEach(o=>{if("option"===o.tag){let n="value"in o.props?o.props.value:o.children.join("").trim();o.props.selected=n===e[t]}})):"textarea"===n.tag&&(o=o||"oninput",n.children=[e[t]]);let r=n.props[o];x(o,e=>{d(e),r&&r(e)},n,l)},"v-create":(e,t,o)=>{o||e(t)},"v-update":(e,t,o)=>{o&&e(t,o)},"v-cleanup":(e,t,o)=>{y(()=>e(t,o))}};function x(e,t,o,n){if("function"==typeof t)return e in k==!1&&(a.dom.addEventListener(e.slice(2),C),k[e]=!0),void(o.dom[`v-${e}`]=t);e in o.dom&&!1===o.isSVG?o.dom[e]!=t&&(o.dom[e]=t):n&&t===n.props[e]||(!1===t?o.dom.removeAttribute(e):o.dom.setAttribute(e,t))}function S(e,t){if(t)for(let o in t.props)o in e.props==!1&&o in k==!1&&o in m==!1&&(o in e.dom&&!1===e.isSVG?e.dom[o]=null:e.dom.removeAttribute(o));for(let o in e.props)if(o in m){if(o in V&&!1===V[o](e.props[o],e,t))break}else x(o,e.props[o],e,t)}function b(t,l){let i=t.children,d=l?.children||[],r=d.length;if(r&&i[0]instanceof n&&"key"in i[0].props&&"key"in d[0].props){let e=i.length,n={};for(let e=0;e<r;e++)n[d[e].props.key]=e;let l={};for(let t=0;t<e;t++)l[i[t].props.key]=t;for(let l=0;l<e;l++){let e=i[l],r=d[n[e.props.key]],p=!0;r?(e.dom=r.dom,"v-keep"in e.props&&e.props["v-keep"]===r.props["v-keep"]?(e.children=r.children,p=!1):S(e,r)):(e.dom=o(e.tag,e.isSVG),S(e)),t.dom.childNodes[l]?t.dom.childNodes[l]!==e.dom&&t.dom.replaceChild(e.dom,t.dom.childNodes[l]):t.dom.appendChild(e.dom),p&&b(e,r)}for(let t=e;t<r;t++)l[d[t].props.key]||d[t].dom.parentNode&&d[t].dom.parentNode.removeChild(d[t].dom)}else if(0!==i.length){u.vnode=t,u.oldVnode=l;for(let l=0;l<i.length;l++){let p=i[l];if(p instanceof n&&p.tag!==e){if("string"!=typeof p.tag){u.component=p.tag,i.splice(l--,1,("view"in p.tag?p.tag.view.bind(p.tag):p.tag.bind(p.tag))(p.props,...p.children));continue}if(p.isSVG=t.isSVG||"svg"===p.tag,l<r){let e=d[l];if(p.tag===e.tag){if(p.dom=e.dom,"v-keep"in p.props&&p.props["v-keep"]===e.props["v-keep"]){p.children=e.children;continue}S(p,e),b(p,e);continue}p.dom=o(p.tag,p.isSVG),S(p),t.dom.replaceChild(p.dom,e.dom),b(p);continue}p.dom=o(p.tag,p.isSVG),S(p),t.dom.appendChild(p.dom),b(p)}else if(Array.isArray(p))i.splice(l--,1,...p);else if(null!=p)if(i[l]=new n(e,{},[]),p instanceof n&&(i[l].dom=p.dom,p=p.dom.textContent),l<r){let o=d[l];if(o.tag===e){i[l].dom=o.dom,p!=o.dom.textContent&&(o.dom.textContent=p);continue}i[l].dom=document.createTextNode(p),t.dom.replaceChild(i[l].dom,o.dom)}else i[l].dom=document.createTextNode(p),t.dom.appendChild(i[l].dom);else i.splice(l--,1)}for(let e=i.length;e<r;e++)t.dom.removeChild(d[e].dom)}else t.dom.textContent=""}function A(){if(a){w(f);let e=a;if((a=new n(e.tag,e.props,[s])).dom=e.dom,a.isSVG=e.isSVG,b(a,e),w(c?h:v),c=!0,u.vnode=null,u.oldVnode=null,u.component=null,t)return a.dom.innerHTML}}function G(){if(a){s=new n(()=>null,{},[]);let e=A();w(g);for(let e in k)a.dom.removeEventListener(e.slice(2).toLowerCase(),C),Reflect.deleteProperty(k,e);return s=null,a=null,c=!1,u.vnode=null,u.oldVnode=null,u.component=null,e}}var E=(e,t={},...o)=>new n(e,t||{},o);E.fragment=(e,...t)=>t;var L={Vnode:n,createDomElement:o,current:u,directive:function(e,t){let o=`v-${e}`;V[o]=t,m[o]=!0},directives:V,isComponent:l,isNodeJs:t,isVnode:i,isVnodeComponent:d,mount:function(e,i){let p="string"==typeof e?t?o(e,"svg"===e):document.querySelectorAll(e)[0]:e,c=d(i)?i:l(i)?new n(i,{},[]):new n(()=>i,{},[]);return s&&s.tag!==c.tag&&G(),s=c,a=r(p),A()},onCleanup:y,onMount:function(e){v.add(e)},onUnmount:function(e){g.add(e)},onUpdate:function(e){h.add(e)},patch:b,reservedProps:m,setAttribute:function(e,t,o,n){e in m||(o.props[e]=t,x(e,t,o,n))},trust:p,unmount:G,update:A,updateAttributes:S,v:E};"undefined"!=typeof module?module.exports=L:self.Valyrian=L})();//# sourceMappingURL=index.min.js.map
|
package/dist/index.min.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ0ZXh0VGFnIiwiaXNOb2RlSnMiLCJCb29sZWFuIiwicHJvY2VzcyIsInZlcnNpb25zIiwibm9kZSIsImNyZWF0ZURvbUVsZW1lbnQiLCJ0YWciLCJpc1NWRyIsImRvY3VtZW50IiwiY3JlYXRlRWxlbWVudE5TIiwiY3JlYXRlRWxlbWVudCIsIlZub2RlIiwicHJvcHMiLCJjaGlsZHJlbiIsInRoaXMiLCJpc0NvbXBvbmVudCIsImNvbXBvbmVudCIsImlzVm5vZGUiLCJvYmplY3QiLCJpc1Zub2RlQ29tcG9uZW50IiwiZG9tVG9Wbm9kZSIsImRvbSIsImkiLCJsIiwiY2hpbGROb2RlcyIsImxlbmd0aCIsImNoaWxkRG9tIiwibm9kZVR5cGUiLCJwdXNoIiwidm5vZGUiLCJhdHRyaWJ1dGVzIiwiYXR0ciIsIm5vZGVOYW1lIiwibm9kZVZhbHVlIiwidGFnTmFtZSIsInRvTG93ZXJDYXNlIiwidHJ1c3QiLCJodG1sU3RyaW5nIiwiZGl2IiwiaW5uZXJIVE1MIiwidHJpbSIsIm1hcCIsImNhbGwiLCJpdGVtIiwibWFpbkNvbXBvbmVudCIsIm1haW5Wbm9kZSIsImlzTW91bnRlZCIsImN1cnJlbnQiLCJvbGRWbm9kZSIsInJlc2VydmVkUHJvcHMiLCJrZXkiLCJzdGF0ZSIsIm9uQ2xlYW51cFNldCIsIlNldCIsIm9uTW91bnRTZXQiLCJvblVwZGF0ZVNldCIsIm9uVW5tb3VudFNldCIsIm9uQ2xlYW51cCIsImNhbGxiYWNrIiwiYWRkIiwiY2FsbFNldCIsInNldCIsImNsZWFyIiwiZXZlbnRMaXN0ZW5lck5hbWVzIiwiZXZlbnRMaXN0ZW5lciIsImUiLCJ0YXJnZXQiLCJuYW1lIiwidHlwZSIsImRlZmF1bHRQcmV2ZW50ZWQiLCJ1cGRhdGUiLCJwYXJlbnROb2RlIiwiaGlkZURpcmVjdGl2ZSIsInRlc3QiLCJib29sIiwib2xkbm9kZSIsIm5ld2RvbSIsImNyZWF0ZVRleHROb2RlIiwicmVwbGFjZUNoaWxkIiwiZGlyZWN0aXZlcyIsIm5ld0NoaWxkcmVuIiwic3R5bGUiLCJkaXNwbGF5IiwiY2xhc3NlcyIsImNsYXNzTGlzdCIsInRvZ2dsZSIsImh0bWwiLCJtb2RlbCIsInByb3BlcnR5IiwiZXZlbnQiLCJvbGRNb2RlbCIsIm9sZFByb3BlcnR5Iiwib2xkRXZlbnQiLCJ2YWx1ZSIsImhhbmRsZXIiLCJBcnJheSIsImlzQXJyYXkiLCJ2YWwiLCJpZHgiLCJpbmRleE9mIiwic3BsaWNlIiwic2hhcmVkU2V0QXR0cmlidXRlIiwibXVsdGlwbGUiLCJjdHJsS2V5IiwiZm9yRWFjaCIsImNoaWxkIiwiam9pbiIsInNlbGVjdGVkIiwicHJldkhhbmRsZXIiLCJuZXdWbm9kZSIsImFkZEV2ZW50TGlzdGVuZXIiLCJzbGljZSIsInJlbW92ZUF0dHJpYnV0ZSIsInNldEF0dHJpYnV0ZSIsInVwZGF0ZUF0dHJpYnV0ZXMiLCJwYXRjaCIsIm5ld1RyZWUiLCJvbGRUcmVlIiwib2xkVHJlZUxlbmd0aCIsIm5ld1RyZWVMZW5ndGgiLCJvbGRLZXllZExpc3QiLCJuZXdLZXllZExpc3QiLCJuZXdDaGlsZCIsIm9sZENoaWxkIiwic2hvdWxkUGF0Y2giLCJhcHBlbmRDaGlsZCIsInJlbW92ZUNoaWxkIiwidmlldyIsImJpbmQiLCJ0ZXh0Q29udGVudCIsIm9sZE1haW5Wbm9kZSIsInVubW91bnQiLCJyZXN1bHQiLCJyZW1vdmVFdmVudExpc3RlbmVyIiwiUmVmbGVjdCIsImRlbGV0ZVByb3BlcnR5IiwidiIsInRhZ09yQ29tcG9uZW50IiwiZnJhZ21lbnQiLCJkaXJlY3RpdmUiLCJkaXJlY3RpdmVOYW1lIiwiY29udGFpbmVyIiwicXVlcnlTZWxlY3RvckFsbCIsInZub2RlQ29tcG9uZW50Il0sInNvdXJjZXMiOlsiLi4vbGliL2luZGV4LnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIGluZGVudCAqL1xuLyogZXNsaW50LWRpc2FibGUgc29uYXJqcy9jb2duaXRpdmUtY29tcGxleGl0eSAqL1xuLyogZXNsaW50LWRpc2FibGUgY29tcGxleGl0eSAqL1xuXG5leHBvcnQgaW50ZXJmYWNlIFByb3BzIHtcbiAga2V5Pzogc3RyaW5nIHwgbnVtYmVyO1xuICBzdGF0ZT86IGFueTtcbiAgb25jcmVhdGU/OiB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVudXNlZC12YXJzLCBuby11c2UtYmVmb3JlLWRlZmluZVxuICAgICh2bm9kZTogVm5vZGVJbnRlcmZhY2UpOiBuZXZlcjtcbiAgfTtcbiAgb251cGRhdGU/OiB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVudXNlZC12YXJzLCBuby11c2UtYmVmb3JlLWRlZmluZVxuICAgICh2bm9kZTogVm5vZGVJbnRlcmZhY2UsIG9sZFZub2RlOiBWbm9kZUludGVyZmFjZSk6IG5ldmVyO1xuICB9O1xuICBvbnJlbW92ZT86IHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdW51c2VkLXZhcnMsIG5vLXVzZS1iZWZvcmUtZGVmaW5lXG4gICAgKG9sZFZub2RlOiBWbm9kZUludGVyZmFjZSk6IG5ldmVyO1xuICB9O1xuICBzaG91bGR1cGRhdGU/OiB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVudXNlZC12YXJzLCBuby11c2UtYmVmb3JlLWRlZmluZVxuICAgICh2bm9kZTogVm5vZGVJbnRlcmZhY2UsIG9sZFZub2RlOiBWbm9kZUludGVyZmFjZSk6IHVuZGVmaW5lZCB8IGJvb2xlYW47XG4gIH07XG4gIFtrZXk6IHN0cmluZyB8IG51bWJlciB8IHN5bWJvbF06IGFueTtcbn1cbmV4cG9ydCBpbnRlcmZhY2UgRG9tRWxlbWVudCBleHRlbmRzIEVsZW1lbnQge1xuICBba2V5OiBzdHJpbmddOiBhbnk7XG59XG5leHBvcnQgaW50ZXJmYWNlIFZub2RlSW50ZXJmYWNlIHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVudXNlZC12YXJzLCBuby11c2UtYmVmb3JlLWRlZmluZVxuICBuZXcgKHRhZzogc3RyaW5nIHwgQ29tcG9uZW50IHwgUE9KT0NvbXBvbmVudCwgcHJvcHM6IFByb3BzLCBjaGlsZHJlbjogQ2hpbGRyZW4pOiBWbm9kZUludGVyZmFjZTtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVudXNlZC12YXJzLCBuby11c2UtYmVmb3JlLWRlZmluZVxuICB0YWc6IHN0cmluZyB8IENvbXBvbmVudCB8IFBPSk9Db21wb25lbnQ7XG4gIHByb3BzOiBQcm9wcztcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVudXNlZC12YXJzLCBuby11c2UtYmVmb3JlLWRlZmluZVxuICBjaGlsZHJlbjogQ2hpbGRyZW47XG4gIGlzU1ZHPzogYm9vbGVhbjtcbiAgZG9tPzogRG9tRWxlbWVudDtcbiAgcHJvY2Vzc2VkPzogYm9vbGVhbjtcbiAgW2tleTogc3RyaW5nIHwgbnVtYmVyIHwgc3ltYm9sXTogYW55O1xufVxuZXhwb3J0IGludGVyZmFjZSBWbm9kZVdpdGhEb20gZXh0ZW5kcyBWbm9kZUludGVyZmFjZSB7XG4gIGRvbTogRG9tRWxlbWVudDtcbn1cbmV4cG9ydCBpbnRlcmZhY2UgQ29tcG9uZW50IHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVudXNlZC12YXJzLCBuby11c2UtYmVmb3JlLWRlZmluZVxuICAocHJvcHM/OiBQcm9wcyB8IG51bGwsIC4uLmNoaWxkcmVuOiBhbnlbXSk6IFZub2RlSW50ZXJmYWNlIHwgQ2hpbGRyZW4gfCBhbnk7XG4gIFtrZXk6IHN0cmluZ106IGFueTtcbn1cbmV4cG9ydCBpbnRlcmZhY2UgUE9KT0NvbXBvbmVudCB7XG4gIHZpZXc6IENvbXBvbmVudDtcbiAgcHJvcHM/OiBQcm9wcyB8IG51bGw7XG4gIGNoaWxkcmVuPzogYW55W107XG4gIFtrZXk6IHN0cmluZ106IGFueTtcbn1cbmV4cG9ydCBpbnRlcmZhY2UgVm5vZGVDb21wb25lbnRJbnRlcmZhY2UgZXh0ZW5kcyBWbm9kZUludGVyZmFjZSB7XG4gIHRhZzogQ29tcG9uZW50IHwgUE9KT0NvbXBvbmVudDtcbiAgcHJvcHM6IFByb3BzO1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdW51c2VkLXZhcnMsIG5vLXVzZS1iZWZvcmUtZGVmaW5lXG4gIGNoaWxkcmVuOiBDaGlsZHJlbjtcbn1cbmV4cG9ydCBpbnRlcmZhY2UgQ2hpbGRyZW4gZXh0ZW5kcyBBcnJheTxWbm9kZUludGVyZmFjZSB8IFZub2RlQ29tcG9uZW50SW50ZXJmYWNlIHwgYW55PiB7fVxuZXhwb3J0IGludGVyZmFjZSBEaXJlY3RpdmUge1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdW51c2VkLXZhcnMsIG5vLXVzZS1iZWZvcmUtZGVmaW5lXG4gICh2YWx1ZTogYW55LCB2bm9kZTogVm5vZGVXaXRoRG9tLCBvbGRWbm9kZT86IFZub2RlV2l0aERvbSk6IHZvaWQgfCBib29sZWFuO1xufVxuZXhwb3J0IGludGVyZmFjZSBEaXJlY3RpdmVzIHtcbiAgW2tleTogc3RyaW5nXTogRGlyZWN0aXZlO1xufVxuZXhwb3J0IGludGVyZmFjZSBSZXNlcnZlZFByb3BzIHtcbiAgW2tleTogc3RyaW5nXTogdHJ1ZTtcbn1cbmV4cG9ydCBpbnRlcmZhY2UgQ3VycmVudCB7XG4gIGNvbXBvbmVudDogQ29tcG9uZW50IHwgUE9KT0NvbXBvbmVudCB8IG51bGw7XG4gIHZub2RlOiBWbm9kZVdpdGhEb20gfCBudWxsO1xuICBvbGRWbm9kZT86IFZub2RlV2l0aERvbSB8IG51bGw7XG59XG5leHBvcnQgaW50ZXJmYWNlIFYge1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdW51c2VkLXZhcnMsIG5vLXVzZS1iZWZvcmUtZGVmaW5lXG4gICh0YWdPckNvbXBvbmVudDogc3RyaW5nIHwgQ29tcG9uZW50IHwgUE9KT0NvbXBvbmVudCwgcHJvcHM6IFByb3BzIHwgbnVsbCwgLi4uY2hpbGRyZW46IENoaWxkcmVuKTpcbiAgICB8IFZub2RlSW50ZXJmYWNlXG4gICAgfCBWbm9kZUNvbXBvbmVudEludGVyZmFjZTtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVudXNlZC12YXJzLCBuby11c2UtYmVmb3JlLWRlZmluZVxuICBmcmFnbWVudChfOiBhbnksIC4uLmNoaWxkcmVuOiBDaGlsZHJlbik6IENoaWxkcmVuO1xufVxuXG5jb25zdCB0ZXh0VGFnID0gXCIjdGV4dFwiO1xuXG5leHBvcnQgbGV0IGlzTm9kZUpzID0gQm9vbGVhbih0eXBlb2YgcHJvY2VzcyAhPT0gXCJ1bmRlZmluZWRcIiAmJiBwcm9jZXNzLnZlcnNpb25zICYmIHByb2Nlc3MudmVyc2lvbnMubm9kZSk7XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVEb21FbGVtZW50KHRhZzogc3RyaW5nLCBpc1NWRzogYm9vbGVhbiA9IGZhbHNlKTogRG9tRWxlbWVudCB7XG4gIHJldHVybiBpc1NWRyA/IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnROUyhcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIsIHRhZykgOiBkb2N1bWVudC5jcmVhdGVFbGVtZW50KHRhZyk7XG59XG5cbmV4cG9ydCBjb25zdCBWbm9kZSA9IGZ1bmN0aW9uIFZub2RlKHRoaXM6IFZub2RlSW50ZXJmYWNlLCB0YWc6IHN0cmluZywgcHJvcHM6IFByb3BzLCBjaGlsZHJlbjogQ2hpbGRyZW4pIHtcbiAgdGhpcy50YWcgPSB0YWc7XG4gIHRoaXMucHJvcHMgPSBwcm9wcztcbiAgdGhpcy5jaGlsZHJlbiA9IGNoaWxkcmVuO1xufSBhcyB1bmtub3duIGFzIFZub2RlSW50ZXJmYWNlO1xuXG5leHBvcnQgZnVuY3Rpb24gaXNDb21wb25lbnQoY29tcG9uZW50KTogY29tcG9uZW50IGlzIENvbXBvbmVudCB7XG4gIHJldHVybiBjb21wb25lbnQgJiYgKHR5cGVvZiBjb21wb25lbnQgPT09IFwiZnVuY3Rpb25cIiB8fCAodHlwZW9mIGNvbXBvbmVudCA9PT0gXCJvYmplY3RcIiAmJiBcInZpZXdcIiBpbiBjb21wb25lbnQpKTtcbn1cblxuZXhwb3J0IGNvbnN0IGlzVm5vZGUgPSAob2JqZWN0PzogdW5rbm93biB8IFZub2RlSW50ZXJmYWNlKTogb2JqZWN0IGlzIFZub2RlSW50ZXJmYWNlID0+IHtcbiAgcmV0dXJuIG9iamVjdCBpbnN0YW5jZW9mIFZub2RlO1xufTtcblxuZXhwb3J0IGNvbnN0IGlzVm5vZGVDb21wb25lbnQgPSAob2JqZWN0PzogdW5rbm93biB8IFZub2RlQ29tcG9uZW50SW50ZXJmYWNlKTogb2JqZWN0IGlzIFZub2RlQ29tcG9uZW50SW50ZXJmYWNlID0+IHtcbiAgcmV0dXJuIGlzVm5vZGUob2JqZWN0KSAmJiBpc0NvbXBvbmVudChvYmplY3QudGFnKTtcbn07XG5cbi8vIFRyYW5zZm9ybXMgYSBET00gbm9kZSB0byBhIFZOb2RlXG5mdW5jdGlvbiBkb21Ub1Zub2RlKGRvbTogYW55KTogVm5vZGVXaXRoRG9tIHtcbiAgbGV0IGNoaWxkcmVuOiBWbm9kZVdpdGhEb21bXSA9IFtdO1xuICBmb3IgKGxldCBpID0gMCwgbCA9IGRvbS5jaGlsZE5vZGVzLmxlbmd0aDsgaSA8IGw7IGkrKykge1xuICAgIGxldCBjaGlsZERvbSA9IGRvbS5jaGlsZE5vZGVzW2ldO1xuICAgIGlmIChjaGlsZERvbS5ub2RlVHlwZSA9PT0gMykge1xuICAgICAgbGV0IHZub2RlID0gbmV3IFZub2RlKHRleHRUYWcsIHt9LCBbXSk7XG4gICAgICB2bm9kZS5kb20gPSBjaGlsZERvbTtcbiAgICAgIGNoaWxkcmVuLnB1c2godm5vZGUgYXMgVm5vZGVXaXRoRG9tKTtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cblxuICAgIGlmIChjaGlsZERvbS5ub2RlVHlwZSA9PT0gMSkge1xuICAgICAgY2hpbGRyZW4ucHVzaChkb21Ub1Zub2RlKGNoaWxkRG9tKSk7XG4gICAgfVxuICB9XG5cbiAgbGV0IHByb3BzOiBQcm9wcyA9IHt9O1xuICBmb3IgKGxldCBpID0gMCwgbCA9IGRvbS5hdHRyaWJ1dGVzLmxlbmd0aDsgaSA8IGw7IGkrKykge1xuICAgIGxldCBhdHRyID0gZG9tLmF0dHJpYnV0ZXNbaV07XG4gICAgcHJvcHNbYXR0ci5ub2RlTmFtZV0gPSBhdHRyLm5vZGVWYWx1ZTtcbiAgfVxuXG4gIGxldCB2bm9kZSA9IG5ldyBWbm9kZShkb20udGFnTmFtZS50b0xvd2VyQ2FzZSgpLCBwcm9wcywgY2hpbGRyZW4pO1xuICB2bm9kZS5kb20gPSBkb207XG4gIHJldHVybiB2bm9kZSBhcyBWbm9kZVdpdGhEb207XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0cnVzdChodG1sU3RyaW5nOiBzdHJpbmcpIHtcbiAgbGV0IGRpdiA9IGNyZWF0ZURvbUVsZW1lbnQoXCJkaXZcIik7XG4gIGRpdi5pbm5lckhUTUwgPSBodG1sU3RyaW5nLnRyaW0oKTtcblxuICByZXR1cm4gW10ubWFwLmNhbGwoZGl2LmNoaWxkTm9kZXMsIChpdGVtKSA9PiBkb21Ub1Zub2RlKGl0ZW0pKTtcbn1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qIE1haW4gQ29tcG9uZW50IGltcGxlbWVudGF0aW9uICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG5sZXQgbWFpbkNvbXBvbmVudDogVm5vZGVDb21wb25lbnRJbnRlcmZhY2UgfCBudWxsID0gbnVsbDtcbmxldCBtYWluVm5vZGU6IFZub2RlV2l0aERvbSB8IG51bGwgPSBudWxsO1xubGV0IGlzTW91bnRlZCA9IGZhbHNlO1xuXG5leHBvcnQgY29uc3QgY3VycmVudDogQ3VycmVudCA9IHtcbiAgdm5vZGU6IG51bGwsXG4gIG9sZFZub2RlOiBudWxsLFxuICBjb21wb25lbnQ6IG51bGxcbn07XG5cbi8qIFJlc2VydmVkIHByb3BzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5leHBvcnQgY29uc3QgcmVzZXJ2ZWRQcm9wczogUmVjb3JkPHN0cmluZywgdHJ1ZT4gPSB7XG4gIGtleTogdHJ1ZSxcbiAgc3RhdGU6IHRydWUsXG4gIFwidi1rZWVwXCI6IHRydWUsXG5cbiAgLy8gQnVpbHQgaW4gZGlyZWN0aXZlc1xuICBcInYtaWZcIjogdHJ1ZSxcbiAgXCJ2LXVubGVzc1wiOiB0cnVlLFxuICBcInYtZm9yXCI6IHRydWUsXG4gIFwidi1zaG93XCI6IHRydWUsXG4gIFwidi1jbGFzc1wiOiB0cnVlLFxuICBcInYtaHRtbFwiOiB0cnVlLFxuICBcInYtbW9kZWxcIjogdHJ1ZSxcbiAgXCJ2LWNyZWF0ZVwiOiB0cnVlLFxuICBcInYtdXBkYXRlXCI6IHRydWUsXG4gIFwidi1jbGVhbnVwXCI6IHRydWVcbn07XG5cbi8qIE1vdW50aW5nLCBVcGRhdGluZywgQ2xlYW51cCBhbmQgVW5tb3VudGluZyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5jb25zdCBvbkNsZWFudXBTZXQ6IFNldDxGdW5jdGlvbj4gPSBuZXcgU2V0KCk7XG5jb25zdCBvbk1vdW50U2V0OiBTZXQ8RnVuY3Rpb24+ID0gbmV3IFNldCgpO1xuY29uc3Qgb25VcGRhdGVTZXQ6IFNldDxGdW5jdGlvbj4gPSBuZXcgU2V0KCk7XG5jb25zdCBvblVubW91bnRTZXQ6IFNldDxGdW5jdGlvbj4gPSBuZXcgU2V0KCk7XG5cbmV4cG9ydCBmdW5jdGlvbiBvbk1vdW50KGNhbGxiYWNrKSB7XG4gIG9uTW91bnRTZXQuYWRkKGNhbGxiYWNrKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG9uVXBkYXRlKGNhbGxiYWNrKSB7XG4gIG9uVXBkYXRlU2V0LmFkZChjYWxsYmFjayk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBvbkNsZWFudXAoY2FsbGJhY2spIHtcbiAgb25DbGVhbnVwU2V0LmFkZChjYWxsYmFjayk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBvblVubW91bnQoY2FsbGJhY2spIHtcbiAgb25Vbm1vdW50U2V0LmFkZChjYWxsYmFjayk7XG59XG5cbmZ1bmN0aW9uIGNhbGxTZXQoc2V0KSB7XG4gIGZvciAobGV0IGNhbGxiYWNrIG9mIHNldCkge1xuICAgIGNhbGxiYWNrKCk7XG4gIH1cblxuICBzZXQuY2xlYXIoKTtcbn1cblxuLyogRXZlbnQgbGlzdGVuZXIgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbmNvbnN0IGV2ZW50TGlzdGVuZXJOYW1lczogUmVjb3JkPHN0cmluZywgdHJ1ZT4gPSB7fTtcbmZ1bmN0aW9uIGV2ZW50TGlzdGVuZXIoZTogRXZlbnQpIHtcbiAgbGV0IGRvbSA9IGUudGFyZ2V0IGFzIERvbUVsZW1lbnQ7XG4gIGxldCBuYW1lID0gYHYtb24ke2UudHlwZX1gO1xuICB3aGlsZSAoZG9tKSB7XG4gICAgaWYgKGRvbVtuYW1lXSkge1xuICAgICAgZG9tW25hbWVdKGUsIGRvbSk7XG4gICAgICBpZiAoIWUuZGVmYXVsdFByZXZlbnRlZCkge1xuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdXNlLWJlZm9yZS1kZWZpbmVcbiAgICAgICAgdXBkYXRlKCk7XG4gICAgICB9XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGRvbSA9IGRvbS5wYXJlbnROb2RlIGFzIERvbUVsZW1lbnQ7XG4gIH1cbn1cblxuLyogRGlyZWN0aXZlcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbmxldCBoaWRlRGlyZWN0aXZlID0gKHRlc3Q6IGJvb2xlYW4pID0+IChib29sOiBib29sZWFuLCB2bm9kZTogVm5vZGVJbnRlcmZhY2UsIG9sZG5vZGU/OiBWbm9kZUludGVyZmFjZSkgPT4ge1xuICBsZXQgdmFsdWUgPSB0ZXN0ID8gYm9vbCA6ICFib29sO1xuICBpZiAodmFsdWUpIHtcbiAgICBsZXQgbmV3ZG9tID0gZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoXCJcIik7XG4gICAgaWYgKG9sZG5vZGUgJiYgb2xkbm9kZS5kb20gJiYgb2xkbm9kZS5kb20ucGFyZW50Tm9kZSkge1xuICAgICAgb2xkbm9kZS5kb20ucGFyZW50Tm9kZS5yZXBsYWNlQ2hpbGQobmV3ZG9tLCBvbGRub2RlLmRvbSk7XG4gICAgfVxuICAgIHZub2RlLnRhZyA9IFwiI3RleHRcIjtcbiAgICB2bm9kZS5jaGlsZHJlbiA9IFtdO1xuICAgIHZub2RlLnByb3BzID0ge307XG4gICAgdm5vZGUuZG9tID0gbmV3ZG9tIGFzIHVua25vd24gYXMgRG9tRWxlbWVudDtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbn07XG5cbmV4cG9ydCBjb25zdCBkaXJlY3RpdmVzOiBEaXJlY3RpdmVzID0ge1xuICBcInYtaWZcIjogaGlkZURpcmVjdGl2ZShmYWxzZSksXG4gIFwidi11bmxlc3NcIjogaGlkZURpcmVjdGl2ZSh0cnVlKSxcbiAgXCJ2LWZvclwiOiAoc2V0OiB1bmtub3duW10sIHZub2RlOiBWbm9kZVdpdGhEb20pID0+IHtcbiAgICBsZXQgbmV3Q2hpbGRyZW46IFZub2RlSW50ZXJmYWNlW10gPSBbXTtcbiAgICBsZXQgY2FsbGJhY2sgPSB2bm9kZS5jaGlsZHJlblswXTtcbiAgICBmb3IgKGxldCBpID0gMCwgbCA9IHNldC5sZW5ndGg7IGkgPCBsOyBpKyspIHtcbiAgICAgIG5ld0NoaWxkcmVuLnB1c2goY2FsbGJhY2soc2V0W2ldLCBpKSk7XG4gICAgfVxuICAgIHZub2RlLmNoaWxkcmVuID0gbmV3Q2hpbGRyZW47XG4gIH0sXG4gIFwidi1zaG93XCI6IChib29sOiBib29sZWFuLCB2bm9kZTogVm5vZGVXaXRoRG9tKSA9PiB7XG4gICAgKFxuICAgICAgdm5vZGUuZG9tIGFzIHVua25vd24gYXMge1xuICAgICAgICBzdHlsZTogeyBkaXNwbGF5OiBzdHJpbmcgfTtcbiAgICAgIH1cbiAgICApLnN0eWxlLmRpc3BsYXkgPSBib29sID8gXCJcIiA6IFwibm9uZVwiO1xuICB9LFxuICBcInYtY2xhc3NcIjogKGNsYXNzZXM6IHsgW3g6IHN0cmluZ106IGJvb2xlYW4gfSwgdm5vZGU6IFZub2RlV2l0aERvbSkgPT4ge1xuICAgIGZvciAobGV0IG5hbWUgaW4gY2xhc3Nlcykge1xuICAgICAgKHZub2RlLmRvbSBhcyBEb21FbGVtZW50KS5jbGFzc0xpc3QudG9nZ2xlKG5hbWUsIGNsYXNzZXNbbmFtZV0pO1xuICAgIH1cbiAgfSxcbiAgXCJ2LWh0bWxcIjogKGh0bWw6IHN0cmluZywgdm5vZGU6IFZub2RlV2l0aERvbSkgPT4ge1xuICAgIHZub2RlLmNoaWxkcmVuID0gW3RydXN0KGh0bWwpXTtcbiAgfSxcbiAgXCJ2LW1vZGVsXCI6IChbbW9kZWwsIHByb3BlcnR5LCBldmVudF06IGFueVtdLCB2bm9kZTogVm5vZGVXaXRoRG9tLCBvbGRWbm9kZT86IFZub2RlV2l0aERvbSkgPT4ge1xuICAgIC8vIFdlIHRyeSB0byBpZGVudGlmeSBpZiB0aGUgb2xkIHZub2RlIGhhcyB0aGUgdi1tb2RlbCBkaXJlY3RpdmUgaW5pdGlhbGl6ZWQgb3Igbm90XG4gICAgLy8gSWYgaXQgaXMsIHdlIGRvbid0IG5lZWQgdG8gcmVpbml0aWFsaXplIGl0XG4gICAgaWYgKG9sZFZub2RlICYmIG9sZFZub2RlLmRvbSA9PT0gdm5vZGUuZG9tKSB7XG4gICAgICBsZXQgW29sZE1vZGVsLCBvbGRQcm9wZXJ0eSwgb2xkRXZlbnRdID0gb2xkVm5vZGUucHJvcHNbXCJ2LW1vZGVsXCJdIHx8IFtdO1xuXG4gICAgICBpZiAob2xkTW9kZWwgPT09IG1vZGVsICYmIG9sZFByb3BlcnR5ID09PSBwcm9wZXJ0eSAmJiBvbGRFdmVudCA9PT0gZXZlbnQpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgIH1cblxuICAgIGxldCB2YWx1ZTtcbiAgICBsZXQgaGFuZGxlciA9IChlOiBFdmVudCkgPT4gKG1vZGVsW3Byb3BlcnR5XSA9IChlLnRhcmdldCBhcyBEb21FbGVtZW50ICYgUmVjb3JkPHN0cmluZywgYW55PikudmFsdWUpO1xuICAgIGlmICh2bm9kZS50YWcgPT09IFwiaW5wdXRcIikge1xuICAgICAgZXZlbnQgPSBldmVudCB8fCBcIm9uaW5wdXRcIjtcbiAgICAgIHN3aXRjaCAodm5vZGUucHJvcHMudHlwZSkge1xuICAgICAgICBjYXNlIFwiY2hlY2tib3hcIjoge1xuICAgICAgICAgIGlmIChBcnJheS5pc0FycmF5KG1vZGVsW3Byb3BlcnR5XSkpIHtcbiAgICAgICAgICAgIGhhbmRsZXIgPSAoZTogRXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgbGV0IHZhbCA9IChlLnRhcmdldCBhcyBEb21FbGVtZW50ICYgUmVjb3JkPHN0cmluZywgYW55PikudmFsdWU7XG4gICAgICAgICAgICAgIGxldCBpZHggPSBtb2RlbFtwcm9wZXJ0eV0uaW5kZXhPZih2YWwpO1xuICAgICAgICAgICAgICBpZiAoaWR4ID09PSAtMSkge1xuICAgICAgICAgICAgICAgIG1vZGVsW3Byb3BlcnR5XS5wdXNoKHZhbCk7XG4gICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgbW9kZWxbcHJvcGVydHldLnNwbGljZShpZHgsIDEpO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgdmFsdWUgPSBtb2RlbFtwcm9wZXJ0eV0uaW5kZXhPZih2bm9kZS5kb20udmFsdWUpICE9PSAtMTtcbiAgICAgICAgICB9IGVsc2UgaWYgKFwidmFsdWVcIiBpbiB2bm9kZS5wcm9wcykge1xuICAgICAgICAgICAgaGFuZGxlciA9ICgpID0+IHtcbiAgICAgICAgICAgICAgaWYgKG1vZGVsW3Byb3BlcnR5XSA9PT0gdm5vZGUucHJvcHMudmFsdWUpIHtcbiAgICAgICAgICAgICAgICBtb2RlbFtwcm9wZXJ0eV0gPSBudWxsO1xuICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIG1vZGVsW3Byb3BlcnR5XSA9IHZub2RlLnByb3BzLnZhbHVlO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgdmFsdWUgPSBtb2RlbFtwcm9wZXJ0eV0gPT09IHZub2RlLnByb3BzLnZhbHVlO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBoYW5kbGVyID0gKCkgPT4gKG1vZGVsW3Byb3BlcnR5XSA9ICFtb2RlbFtwcm9wZXJ0eV0pO1xuICAgICAgICAgICAgdmFsdWUgPSBtb2RlbFtwcm9wZXJ0eV07XG4gICAgICAgICAgfVxuICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby11c2UtYmVmb3JlLWRlZmluZVxuICAgICAgICAgIHNoYXJlZFNldEF0dHJpYnV0ZShcImNoZWNrZWRcIiwgdmFsdWUsIHZub2RlKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlIFwicmFkaW9cIjoge1xuICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby11c2UtYmVmb3JlLWRlZmluZVxuICAgICAgICAgIHNoYXJlZFNldEF0dHJpYnV0ZShcImNoZWNrZWRcIiwgbW9kZWxbcHJvcGVydHldID09PSB2bm9kZS5kb20udmFsdWUsIHZub2RlKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVzZS1iZWZvcmUtZGVmaW5lXG4gICAgICAgICAgc2hhcmVkU2V0QXR0cmlidXRlKFwidmFsdWVcIiwgbW9kZWxbcHJvcGVydHldLCB2bm9kZSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKHZub2RlLnRhZyA9PT0gXCJzZWxlY3RcIikge1xuICAgICAgZXZlbnQgPSBldmVudCB8fCBcIm9uY2xpY2tcIjtcbiAgICAgIGlmICh2bm9kZS5wcm9wcy5tdWx0aXBsZSkge1xuICAgICAgICBoYW5kbGVyID0gKGU6IEV2ZW50ICYgUmVjb3JkPHN0cmluZywgYW55PikgPT4ge1xuICAgICAgICAgIGxldCB2YWwgPSAoZS50YXJnZXQgYXMgRG9tRWxlbWVudCAmIFJlY29yZDxzdHJpbmcsIGFueT4pLnZhbHVlO1xuICAgICAgICAgIGlmIChlLmN0cmxLZXkpIHtcbiAgICAgICAgICAgIGxldCBpZHggPSBtb2RlbFtwcm9wZXJ0eV0uaW5kZXhPZih2YWwpO1xuICAgICAgICAgICAgaWYgKGlkeCA9PT0gLTEpIHtcbiAgICAgICAgICAgICAgbW9kZWxbcHJvcGVydHldLnB1c2godmFsKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIG1vZGVsW3Byb3BlcnR5XS5zcGxpY2UoaWR4LCAxKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgbW9kZWxbcHJvcGVydHldLnNwbGljZSgwLCBtb2RlbFtwcm9wZXJ0eV0ubGVuZ3RoKTtcbiAgICAgICAgICAgIG1vZGVsW3Byb3BlcnR5XS5wdXNoKHZhbCk7XG4gICAgICAgICAgfVxuICAgICAgICB9O1xuICAgICAgICB2bm9kZS5jaGlsZHJlbi5mb3JFYWNoKChjaGlsZDogVm5vZGVJbnRlcmZhY2UpID0+IHtcbiAgICAgICAgICBpZiAoY2hpbGQudGFnID09PSBcIm9wdGlvblwiKSB7XG4gICAgICAgICAgICBsZXQgdmFsdWUgPSBcInZhbHVlXCIgaW4gY2hpbGQucHJvcHMgPyBjaGlsZC5wcm9wcy52YWx1ZSA6IGNoaWxkLmNoaWxkcmVuLmpvaW4oXCJcIikudHJpbSgpO1xuICAgICAgICAgICAgY2hpbGQucHJvcHMuc2VsZWN0ZWQgPSBtb2RlbFtwcm9wZXJ0eV0uaW5kZXhPZih2YWx1ZSkgIT09IC0xO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB2bm9kZS5jaGlsZHJlbi5mb3JFYWNoKChjaGlsZDogVm5vZGVJbnRlcmZhY2UpID0+IHtcbiAgICAgICAgICBpZiAoY2hpbGQudGFnID09PSBcIm9wdGlvblwiKSB7XG4gICAgICAgICAgICBsZXQgdmFsdWUgPSBcInZhbHVlXCIgaW4gY2hpbGQucHJvcHMgPyBjaGlsZC5wcm9wcy52YWx1ZSA6IGNoaWxkLmNoaWxkcmVuLmpvaW4oXCJcIikudHJpbSgpO1xuICAgICAgICAgICAgY2hpbGQucHJvcHMuc2VsZWN0ZWQgPSB2YWx1ZSA9PT0gbW9kZWxbcHJvcGVydHldO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfSBlbHNlIGlmICh2bm9kZS50YWcgPT09IFwidGV4dGFyZWFcIikge1xuICAgICAgZXZlbnQgPSBldmVudCB8fCBcIm9uaW5wdXRcIjtcbiAgICAgIHZub2RlLmNoaWxkcmVuID0gW21vZGVsW3Byb3BlcnR5XV07XG4gICAgfVxuXG4gICAgLy8gV2UgYXNzdW1lIHRoYXQgdGhlIHByZXYgaGFuZGxlciBpZiBhbnkgd2lsbCBub3QgYmUgY2hhbmdlZCBieSB0aGUgdXNlciBhY3Jvc3MgcGF0Y2hzXG4gICAgbGV0IHByZXZIYW5kbGVyID0gdm5vZGUucHJvcHNbZXZlbnRdO1xuXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVzZS1iZWZvcmUtZGVmaW5lXG4gICAgc2hhcmVkU2V0QXR0cmlidXRlKFxuICAgICAgZXZlbnQsXG4gICAgICAoZTogRXZlbnQpID0+IHtcbiAgICAgICAgaGFuZGxlcihlKTtcblxuICAgICAgICAvLyBJZiB0aGUgdXNlciBoYXMgZGVmaW5lZCBhIGhhbmRsZXIgZm9yIHRoZSBldmVudCwgd2UgY2FsbCBpdCByaWdodCBhd2F5XG4gICAgICAgIGlmIChwcmV2SGFuZGxlcikge1xuICAgICAgICAgIHByZXZIYW5kbGVyKGUpO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgdm5vZGUsXG4gICAgICBvbGRWbm9kZVxuICAgICk7XG4gIH0sXG5cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVudXNlZC12YXJzXG4gIFwidi1jcmVhdGVcIjogKGNhbGxiYWNrOiAodm5vZGU6IFZub2RlV2l0aERvbSkgPT4gdm9pZCwgdm5vZGU6IFZub2RlV2l0aERvbSwgb2xkVm5vZGU/OiBWbm9kZVdpdGhEb20pID0+IHtcbiAgICBpZiAoIW9sZFZub2RlKSB7XG4gICAgICBjYWxsYmFjayh2bm9kZSk7XG4gICAgfVxuICB9LFxuXG4gIFwidi11cGRhdGVcIjogKFxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby11bnVzZWQtdmFyc1xuICAgIGNhbGxiYWNrOiAodm5vZGU6IFZub2RlV2l0aERvbSwgb2xkVm5vZGU6IFZub2RlV2l0aERvbSkgPT4gdm9pZCxcbiAgICB2bm9kZTogVm5vZGVXaXRoRG9tLFxuICAgIG9sZFZub2RlPzogVm5vZGVXaXRoRG9tXG4gICkgPT4ge1xuICAgIGlmIChvbGRWbm9kZSkge1xuICAgICAgY2FsbGJhY2sodm5vZGUsIG9sZFZub2RlKTtcbiAgICB9XG4gIH0sXG5cbiAgXCJ2LWNsZWFudXBcIjogKFxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby11bnVzZWQtdmFyc1xuICAgIGNhbGxiYWNrOiAodm5vZGU6IFZub2RlV2l0aERvbSwgb2xkVm5vZGU/OiBWbm9kZVdpdGhEb20pID0+IHZvaWQsXG4gICAgdm5vZGU6IFZub2RlV2l0aERvbSxcbiAgICBvbGRWbm9kZT86IFZub2RlV2l0aERvbVxuICApID0+IHtcbiAgICBvbkNsZWFudXAoKCkgPT4gY2FsbGJhY2sodm5vZGUsIG9sZFZub2RlKSk7XG4gIH1cbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBkaXJlY3RpdmUobmFtZTogc3RyaW5nLCBkaXJlY3RpdmU6IERpcmVjdGl2ZSkge1xuICBsZXQgZGlyZWN0aXZlTmFtZSA9IGB2LSR7bmFtZX1gO1xuICBkaXJlY3RpdmVzW2RpcmVjdGl2ZU5hbWVdID0gZGlyZWN0aXZlO1xuICByZXNlcnZlZFByb3BzW2RpcmVjdGl2ZU5hbWVdID0gdHJ1ZTtcbn1cblxuLyogU2V0IGF0dHJpYnV0ZSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbmZ1bmN0aW9uIHNoYXJlZFNldEF0dHJpYnV0ZShuYW1lOiBzdHJpbmcsIHZhbHVlOiBhbnksIG5ld1Zub2RlOiBWbm9kZVdpdGhEb20sIG9sZFZub2RlPzogVm5vZGVXaXRoRG9tKTogdm9pZCB8IGJvb2xlYW4ge1xuICBpZiAodHlwZW9mIHZhbHVlID09PSBcImZ1bmN0aW9uXCIpIHtcbiAgICBpZiAobmFtZSBpbiBldmVudExpc3RlbmVyTmFtZXMgPT09IGZhbHNlKSB7XG4gICAgICAobWFpblZub2RlIGFzIFZub2RlV2l0aERvbSkuZG9tLmFkZEV2ZW50TGlzdGVuZXIobmFtZS5zbGljZSgyKSwgZXZlbnRMaXN0ZW5lcik7XG4gICAgICBldmVudExpc3RlbmVyTmFtZXNbbmFtZV0gPSB0cnVlO1xuICAgIH1cbiAgICBuZXdWbm9kZS5kb21bYHYtJHtuYW1lfWBdID0gdmFsdWU7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgaWYgKG5hbWUgaW4gbmV3Vm5vZGUuZG9tICYmIG5ld1Zub2RlLmlzU1ZHID09PSBmYWxzZSkge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBlcWVxZXFcbiAgICBpZiAobmV3Vm5vZGUuZG9tW25hbWVdICE9IHZhbHVlKSB7XG4gICAgICBuZXdWbm9kZS5kb21bbmFtZV0gPSB2YWx1ZTtcbiAgICB9XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgaWYgKCFvbGRWbm9kZSB8fCB2YWx1ZSAhPT0gb2xkVm5vZGUucHJvcHNbbmFtZV0pIHtcbiAgICBpZiAodmFsdWUgPT09IGZhbHNlKSB7XG4gICAgICBuZXdWbm9kZS5kb20ucmVtb3ZlQXR0cmlidXRlKG5hbWUpO1xuICAgIH0gZWxzZSB7XG4gICAgICBuZXdWbm9kZS5kb20uc2V0QXR0cmlidXRlKG5hbWUsIHZhbHVlKTtcbiAgICB9XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHNldEF0dHJpYnV0ZShuYW1lOiBzdHJpbmcsIHZhbHVlOiBhbnksIG5ld1Zub2RlOiBWbm9kZVdpdGhEb20sIG9sZFZub2RlPzogVm5vZGVXaXRoRG9tKTogdm9pZCB7XG4gIGlmIChuYW1lIGluIHJlc2VydmVkUHJvcHMpIHtcbiAgICByZXR1cm47XG4gIH1cbiAgbmV3Vm5vZGUucHJvcHNbbmFtZV0gPSB2YWx1ZTtcbiAgc2hhcmVkU2V0QXR0cmlidXRlKG5hbWUsIHZhbHVlLCBuZXdWbm9kZSBhcyBWbm9kZVdpdGhEb20sIG9sZFZub2RlKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHVwZGF0ZUF0dHJpYnV0ZXMobmV3Vm5vZGU6IFZub2RlV2l0aERvbSwgb2xkVm5vZGU/OiBWbm9kZVdpdGhEb20pOiB2b2lkIHtcbiAgaWYgKG9sZFZub2RlKSB7XG4gICAgZm9yIChsZXQgbmFtZSBpbiBvbGRWbm9kZS5wcm9wcykge1xuICAgICAgaWYgKG5hbWUgaW4gbmV3Vm5vZGUucHJvcHMgPT09IGZhbHNlICYmIG5hbWUgaW4gZXZlbnRMaXN0ZW5lck5hbWVzID09PSBmYWxzZSAmJiBuYW1lIGluIHJlc2VydmVkUHJvcHMgPT09IGZhbHNlKSB7XG4gICAgICAgIGlmIChuYW1lIGluIG5ld1Zub2RlLmRvbSAmJiBuZXdWbm9kZS5pc1NWRyA9PT0gZmFsc2UpIHtcbiAgICAgICAgICBuZXdWbm9kZS5kb21bbmFtZV0gPSBudWxsO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIG5ld1Zub2RlLmRvbS5yZW1vdmVBdHRyaWJ1dGUobmFtZSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBmb3IgKGxldCBuYW1lIGluIG5ld1Zub2RlLnByb3BzKSB7XG4gICAgaWYgKG5hbWUgaW4gcmVzZXJ2ZWRQcm9wcykge1xuICAgICAgaWYgKG5hbWUgaW4gZGlyZWN0aXZlcyAmJiBkaXJlY3RpdmVzW25hbWVdKG5ld1Zub2RlLnByb3BzW25hbWVdLCBuZXdWbm9kZSwgb2xkVm5vZGUpID09PSBmYWxzZSkge1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cbiAgICBzaGFyZWRTZXRBdHRyaWJ1dGUobmFtZSwgbmV3Vm5vZGUucHJvcHNbbmFtZV0sIG5ld1Zub2RlLCBvbGRWbm9kZSk7XG4gIH1cbn1cblxuLyogcGF0Y2ggLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG4vLyBQYXRjaCBhIERPTSBub2RlIHdpdGggYSBuZXcgVk5vZGUgdHJlZVxuZXhwb3J0IGZ1bmN0aW9uIHBhdGNoKG5ld1Zub2RlOiBWbm9kZVdpdGhEb20sIG9sZFZub2RlPzogVm5vZGVXaXRoRG9tKTogdm9pZCB7XG4gIGxldCBuZXdUcmVlID0gbmV3Vm5vZGUuY2hpbGRyZW47XG4gIGxldCBvbGRUcmVlID0gb2xkVm5vZGU/LmNoaWxkcmVuIHx8IFtdO1xuICBsZXQgb2xkVHJlZUxlbmd0aCA9IG9sZFRyZWUubGVuZ3RoO1xuXG4gIC8vIElzIGtleWVkIGxpc3QgYW5kIHVwZGF0ZSBpbiBwbGFjZVxuICBpZiAob2xkVHJlZUxlbmd0aCAmJiBuZXdUcmVlWzBdIGluc3RhbmNlb2YgVm5vZGUgJiYgXCJrZXlcIiBpbiBuZXdUcmVlWzBdLnByb3BzICYmIFwia2V5XCIgaW4gb2xkVHJlZVswXS5wcm9wcykge1xuICAgIGxldCBuZXdUcmVlTGVuZ3RoID0gbmV3VHJlZS5sZW5ndGg7XG5cbiAgICBsZXQgb2xkS2V5ZWRMaXN0OiB7IFtrZXk6IHN0cmluZ106IG51bWJlciB9ID0ge307XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBvbGRUcmVlTGVuZ3RoOyBpKyspIHtcbiAgICAgIG9sZEtleWVkTGlzdFtvbGRUcmVlW2ldLnByb3BzLmtleV0gPSBpO1xuICAgIH1cblxuICAgIGxldCBuZXdLZXllZExpc3Q6IHsgW2tleTogc3RyaW5nXTogbnVtYmVyIH0gPSB7fTtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IG5ld1RyZWVMZW5ndGg7IGkrKykge1xuICAgICAgbmV3S2V5ZWRMaXN0W25ld1RyZWVbaV0ucHJvcHMua2V5XSA9IGk7XG4gICAgfVxuXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBuZXdUcmVlTGVuZ3RoOyBpKyspIHtcbiAgICAgIGxldCBuZXdDaGlsZCA9IG5ld1RyZWVbaV07XG4gICAgICBsZXQgb2xkQ2hpbGQgPSBvbGRUcmVlW29sZEtleWVkTGlzdFtuZXdDaGlsZC5wcm9wcy5rZXldXTtcbiAgICAgIGxldCBzaG91bGRQYXRjaCA9IHRydWU7XG5cbiAgICAgIGlmIChvbGRDaGlsZCkge1xuICAgICAgICBuZXdDaGlsZC5kb20gPSBvbGRDaGlsZC5kb207XG4gICAgICAgIGlmIChcInYta2VlcFwiIGluIG5ld0NoaWxkLnByb3BzICYmIG5ld0NoaWxkLnByb3BzW1widi1rZWVwXCJdID09PSBvbGRDaGlsZC5wcm9wc1tcInYta2VlcFwiXSkge1xuICAgICAgICAgIG5ld0NoaWxkLmNoaWxkcmVuID0gb2xkQ2hpbGQuY2hpbGRyZW47XG4gICAgICAgICAgc2hvdWxkUGF0Y2ggPSBmYWxzZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB1cGRhdGVBdHRyaWJ1dGVzKG5ld0NoaWxkLCBvbGRDaGlsZCk7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIG5ld0NoaWxkLmRvbSA9IGNyZWF0ZURvbUVsZW1lbnQobmV3Q2hpbGQudGFnLCBuZXdDaGlsZC5pc1NWRyk7XG4gICAgICAgIHVwZGF0ZUF0dHJpYnV0ZXMobmV3Q2hpbGQpO1xuICAgICAgfVxuXG4gICAgICBpZiAoIW5ld1Zub2RlLmRvbS5jaGlsZE5vZGVzW2ldKSB7XG4gICAgICAgIG5ld1Zub2RlLmRvbS5hcHBlbmRDaGlsZChuZXdDaGlsZC5kb20pO1xuICAgICAgfSBlbHNlIGlmIChuZXdWbm9kZS5kb20uY2hpbGROb2Rlc1tpXSAhPT0gbmV3Q2hpbGQuZG9tKSB7XG4gICAgICAgIG5ld1Zub2RlLmRvbS5yZXBsYWNlQ2hpbGQobmV3Q2hpbGQuZG9tLCBuZXdWbm9kZS5kb20uY2hpbGROb2Rlc1tpXSk7XG4gICAgICB9XG5cbiAgICAgIHNob3VsZFBhdGNoICYmIHBhdGNoKG5ld0NoaWxkLCBvbGRDaGlsZCk7XG4gICAgfVxuXG4gICAgLy8gRm9yIHRoZSByZXN0IG9mIHRoZSBjaGlsZHJlbiwgd2Ugc2hvdWxkIHJlbW92ZSB0aGVtXG4gICAgZm9yIChsZXQgaSA9IG5ld1RyZWVMZW5ndGg7IGkgPCBvbGRUcmVlTGVuZ3RoOyBpKyspIHtcbiAgICAgIGlmICghbmV3S2V5ZWRMaXN0W29sZFRyZWVbaV0ucHJvcHMua2V5XSkge1xuICAgICAgICBvbGRUcmVlW2ldLmRvbS5wYXJlbnROb2RlICYmIG9sZFRyZWVbaV0uZG9tLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQob2xkVHJlZVtpXS5kb20pO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm47XG4gIH1cblxuICBpZiAobmV3VHJlZS5sZW5ndGggPT09IDApIHtcbiAgICBuZXdWbm9kZS5kb20udGV4dENvbnRlbnQgPSBcIlwiO1xuICAgIHJldHVybjtcbiAgfVxuXG4gIGN1cnJlbnQudm5vZGUgPSBuZXdWbm9kZTtcbiAgY3VycmVudC5vbGRWbm9kZSA9IG9sZFZub2RlO1xuXG4gIC8vIEZsYXQgbmV3VHJlZVxuICBmb3IgKGxldCBpID0gMDsgaSA8IG5ld1RyZWUubGVuZ3RoOyBpKyspIHtcbiAgICBsZXQgbmV3Q2hpbGQgPSBuZXdUcmVlW2ldO1xuXG4gICAgaWYgKG5ld0NoaWxkIGluc3RhbmNlb2YgVm5vZGUgJiYgbmV3Q2hpbGQudGFnICE9PSB0ZXh0VGFnKSB7XG4gICAgICBpZiAodHlwZW9mIG5ld0NoaWxkLnRhZyAhPT0gXCJzdHJpbmdcIikge1xuICAgICAgICBjdXJyZW50LmNvbXBvbmVudCA9IG5ld0NoaWxkLnRhZztcbiAgICAgICAgbmV3VHJlZS5zcGxpY2UoXG4gICAgICAgICAgaS0tLFxuICAgICAgICAgIDEsXG4gICAgICAgICAgKFwidmlld1wiIGluIG5ld0NoaWxkLnRhZyA/IG5ld0NoaWxkLnRhZy52aWV3LmJpbmQobmV3Q2hpbGQudGFnKSA6IG5ld0NoaWxkLnRhZy5iaW5kKG5ld0NoaWxkLnRhZykpKFxuICAgICAgICAgICAgbmV3Q2hpbGQucHJvcHMsXG4gICAgICAgICAgICAuLi5uZXdDaGlsZC5jaGlsZHJlblxuICAgICAgICAgIClcbiAgICAgICAgKTtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG5cbiAgICAgIG5ld0NoaWxkLmlzU1ZHID0gbmV3Vm5vZGUuaXNTVkcgfHwgbmV3Q2hpbGQudGFnID09PSBcInN2Z1wiO1xuXG4gICAgICBpZiAoaSA8IG9sZFRyZWVMZW5ndGgpIHtcbiAgICAgICAgbGV0IG9sZENoaWxkID0gb2xkVHJlZVtpXTtcbiAgICAgICAgaWYgKG5ld0NoaWxkLnRhZyA9PT0gb2xkQ2hpbGQudGFnKSB7XG4gICAgICAgICAgbmV3Q2hpbGQuZG9tID0gb2xkQ2hpbGQuZG9tO1xuICAgICAgICAgIGlmIChcInYta2VlcFwiIGluIG5ld0NoaWxkLnByb3BzICYmIG5ld0NoaWxkLnByb3BzW1widi1rZWVwXCJdID09PSBvbGRDaGlsZC5wcm9wc1tcInYta2VlcFwiXSkge1xuICAgICAgICAgICAgbmV3Q2hpbGQuY2hpbGRyZW4gPSBvbGRDaGlsZC5jaGlsZHJlbjtcbiAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHVwZGF0ZUF0dHJpYnV0ZXMobmV3Q2hpbGQgYXMgVm5vZGVXaXRoRG9tLCBvbGRDaGlsZCk7XG4gICAgICAgICAgcGF0Y2gobmV3Q2hpbGQgYXMgVm5vZGVXaXRoRG9tLCBvbGRDaGlsZCk7XG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cblxuICAgICAgICBuZXdDaGlsZC5kb20gPSBjcmVhdGVEb21FbGVtZW50KG5ld0NoaWxkLnRhZywgbmV3Q2hpbGQuaXNTVkcpO1xuICAgICAgICB1cGRhdGVBdHRyaWJ1dGVzKG5ld0NoaWxkIGFzIFZub2RlV2l0aERvbSk7XG4gICAgICAgIG5ld1Zub2RlLmRvbS5yZXBsYWNlQ2hpbGQobmV3Q2hpbGQuZG9tLCBvbGRDaGlsZC5kb20pO1xuICAgICAgICBwYXRjaChuZXdDaGlsZCBhcyBWbm9kZVdpdGhEb20pO1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cblxuICAgICAgbmV3Q2hpbGQuZG9tID0gY3JlYXRlRG9tRWxlbWVudChuZXdDaGlsZC50YWcsIG5ld0NoaWxkLmlzU1ZHKTtcbiAgICAgIHVwZGF0ZUF0dHJpYnV0ZXMobmV3Q2hpbGQgYXMgVm5vZGVXaXRoRG9tKTtcbiAgICAgIG5ld1Zub2RlLmRvbS5hcHBlbmRDaGlsZChuZXdDaGlsZC5kb20pO1xuICAgICAgcGF0Y2gobmV3Q2hpbGQgYXMgVm5vZGVXaXRoRG9tKTtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cblxuICAgIGlmIChBcnJheS5pc0FycmF5KG5ld0NoaWxkKSkge1xuICAgICAgbmV3VHJlZS5zcGxpY2UoaS0tLCAxLCAuLi5uZXdDaGlsZCk7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG5cbiAgICBpZiAobmV3Q2hpbGQgPT09IG51bGwgfHwgbmV3Q2hpbGQgPT09IHVuZGVmaW5lZCkge1xuICAgICAgbmV3VHJlZS5zcGxpY2UoaS0tLCAxKTtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cblxuICAgIG5ld1RyZWVbaV0gPSBuZXcgVm5vZGUodGV4dFRhZywge30sIFtdKTtcbiAgICBpZiAobmV3Q2hpbGQgaW5zdGFuY2VvZiBWbm9kZSkge1xuICAgICAgbmV3VHJlZVtpXS5kb20gPSBuZXdDaGlsZC5kb207XG4gICAgICBuZXdDaGlsZCA9IChuZXdDaGlsZCBhcyBWbm9kZVdpdGhEb20pLmRvbS50ZXh0Q29udGVudDtcbiAgICB9XG5cbiAgICBpZiAoaSA8IG9sZFRyZWVMZW5ndGgpIHtcbiAgICAgIGxldCBvbGRDaGlsZCA9IG9sZFRyZWVbaV07XG5cbiAgICAgIGlmIChvbGRDaGlsZC50YWcgPT09IHRleHRUYWcpIHtcbiAgICAgICAgbmV3VHJlZVtpXS5kb20gPSBvbGRDaGlsZC5kb207XG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBlcWVxZXFcbiAgICAgICAgaWYgKG5ld0NoaWxkICE9IG9sZENoaWxkLmRvbS50ZXh0Q29udGVudCkge1xuICAgICAgICAgIG9sZENoaWxkLmRvbS50ZXh0Q29udGVudCA9IG5ld0NoaWxkO1xuICAgICAgICB9XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuXG4gICAgICBuZXdUcmVlW2ldLmRvbSA9IGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKG5ld0NoaWxkKTtcbiAgICAgIG5ld1Zub2RlLmRvbS5yZXBsYWNlQ2hpbGQobmV3VHJlZVtpXS5kb20sIG9sZENoaWxkLmRvbSk7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG5cbiAgICBuZXdUcmVlW2ldLmRvbSA9IGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKG5ld0NoaWxkKTtcbiAgICBuZXdWbm9kZS5kb20uYXBwZW5kQ2hpbGQobmV3VHJlZVtpXS5kb20pO1xuICB9XG5cbiAgZm9yIChsZXQgaSA9IG5ld1RyZWUubGVuZ3RoOyBpIDwgb2xkVHJlZUxlbmd0aDsgaSsrKSB7XG4gICAgbmV3Vm5vZGUuZG9tLnJlbW92ZUNoaWxkKG9sZFRyZWVbaV0uZG9tKTtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gdXBkYXRlKCk6IHZvaWQgfCBzdHJpbmcge1xuICBpZiAobWFpblZub2RlKSB7XG4gICAgY2FsbFNldChvbkNsZWFudXBTZXQpO1xuICAgIGxldCBvbGRNYWluVm5vZGUgPSBtYWluVm5vZGU7XG4gICAgbWFpblZub2RlID0gbmV3IFZub2RlKG9sZE1haW5Wbm9kZS50YWcsIG9sZE1haW5Wbm9kZS5wcm9wcywgW21haW5Db21wb25lbnRdKSBhcyBWbm9kZVdpdGhEb207XG4gICAgbWFpblZub2RlLmRvbSA9IG9sZE1haW5Wbm9kZS5kb207XG4gICAgbWFpblZub2RlLmlzU1ZHID0gb2xkTWFpblZub2RlLmlzU1ZHO1xuICAgIHBhdGNoKG1haW5Wbm9kZSwgb2xkTWFpblZub2RlKTtcbiAgICBjYWxsU2V0KGlzTW91bnRlZCA/IG9uVXBkYXRlU2V0IDogb25Nb3VudFNldCk7XG4gICAgaXNNb3VudGVkID0gdHJ1ZTtcbiAgICBjdXJyZW50LnZub2RlID0gbnVsbDtcbiAgICBjdXJyZW50Lm9sZFZub2RlID0gbnVsbDtcbiAgICBjdXJyZW50LmNvbXBvbmVudCA9IG51bGw7XG4gICAgaWYgKGlzTm9kZUpzKSB7XG4gICAgICByZXR1cm4gbWFpblZub2RlLmRvbS5pbm5lckhUTUw7XG4gICAgfVxuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB1bm1vdW50KCkge1xuICBpZiAobWFpblZub2RlKSB7XG4gICAgbWFpbkNvbXBvbmVudCA9IG5ldyBWbm9kZSgoKSA9PiBudWxsLCB7fSwgW10pIGFzIFZub2RlQ29tcG9uZW50SW50ZXJmYWNlO1xuICAgIGxldCByZXN1bHQgPSB1cGRhdGUoKTtcbiAgICBjYWxsU2V0KG9uVW5tb3VudFNldCk7XG5cbiAgICBmb3IgKGxldCBuYW1lIGluIGV2ZW50TGlzdGVuZXJOYW1lcykge1xuICAgICAgbWFpblZub2RlLmRvbS5yZW1vdmVFdmVudExpc3RlbmVyKG5hbWUuc2xpY2UoMikudG9Mb3dlckNhc2UoKSwgZXZlbnRMaXN0ZW5lcik7XG4gICAgICBSZWZsZWN0LmRlbGV0ZVByb3BlcnR5KGV2ZW50TGlzdGVuZXJOYW1lcywgbmFtZSk7XG4gICAgfVxuXG4gICAgbWFpbkNvbXBvbmVudCA9IG51bGw7XG4gICAgbWFpblZub2RlID0gbnVsbDtcbiAgICBpc01vdW50ZWQgPSBmYWxzZTtcbiAgICBjdXJyZW50LnZub2RlID0gbnVsbDtcbiAgICBjdXJyZW50Lm9sZFZub2RlID0gbnVsbDtcbiAgICBjdXJyZW50LmNvbXBvbmVudCA9IG51bGw7XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gbW91bnQoZG9tLCBjb21wb25lbnQpIHtcbiAgbGV0IGNvbnRhaW5lciA9XG4gICAgdHlwZW9mIGRvbSA9PT0gXCJzdHJpbmdcIlxuICAgICAgPyBpc05vZGVKc1xuICAgICAgICA/IGNyZWF0ZURvbUVsZW1lbnQoZG9tLCBkb20gPT09IFwic3ZnXCIpXG4gICAgICAgIDogZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbChkb20pWzBdXG4gICAgICA6IGRvbTtcblxuICBsZXQgdm5vZGVDb21wb25lbnQgPSBpc1Zub2RlQ29tcG9uZW50KGNvbXBvbmVudClcbiAgICA/IGNvbXBvbmVudFxuICAgIDogaXNDb21wb25lbnQoY29tcG9uZW50KVxuICAgID8gbmV3IFZub2RlKGNvbXBvbmVudCwge30sIFtdKVxuICAgIDogbmV3IFZub2RlKCgpID0+IGNvbXBvbmVudCwge30sIFtdKTtcblxuICBpZiAobWFpbkNvbXBvbmVudCAmJiBtYWluQ29tcG9uZW50LnRhZyAhPT0gdm5vZGVDb21wb25lbnQudGFnKSB7XG4gICAgdW5tb3VudCgpO1xuICB9XG5cbiAgbWFpbkNvbXBvbmVudCA9IHZub2RlQ29tcG9uZW50IGFzIFZub2RlQ29tcG9uZW50SW50ZXJmYWNlO1xuICBtYWluVm5vZGUgPSBkb21Ub1Zub2RlKGNvbnRhaW5lcik7XG4gIHJldHVybiB1cGRhdGUoKTtcbn1cblxuZXhwb3J0IGNvbnN0IHY6IFYgPSAodGFnT3JDb21wb25lbnQsIHByb3BzID0ge30sIC4uLmNoaWxkcmVuKSA9PiB7XG4gIHJldHVybiBuZXcgVm5vZGUodGFnT3JDb21wb25lbnQsIHByb3BzIHx8IHt9LCBjaGlsZHJlbik7XG59O1xuXG52LmZyYWdtZW50ID0gKHByb3BzOiBQcm9wcywgLi4uY2hpbGRyZW46IENoaWxkcmVuKSA9PiBjaGlsZHJlbjtcbiJdLCJtYXBwaW5ncyI6Ik1Bc0ZBLElBQU1BLEVBQVUsUUFFTEMsRUFBV0MsUUFBMkIsb0JBQVpDLFNBQTJCQSxRQUFRQyxVQUFZRCxRQUFRQyxTQUFTQyxNQUU5RixTQUFT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
|
|
1
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ0ZXh0VGFnIiwiaXNOb2RlSnMiLCJCb29sZWFuIiwicHJvY2VzcyIsInZlcnNpb25zIiwibm9kZSIsImNyZWF0ZURvbUVsZW1lbnQiLCJ0YWciLCJpc1NWRyIsImRvY3VtZW50IiwiY3JlYXRlRWxlbWVudE5TIiwiY3JlYXRlRWxlbWVudCIsIlZub2RlIiwicHJvcHMiLCJjaGlsZHJlbiIsInRoaXMiLCJpc0NvbXBvbmVudCIsImNvbXBvbmVudCIsImlzVm5vZGUiLCJvYmplY3QiLCJpc1Zub2RlQ29tcG9uZW50IiwiZG9tVG9Wbm9kZSIsImRvbSIsImkiLCJsIiwiY2hpbGROb2RlcyIsImxlbmd0aCIsImNoaWxkRG9tIiwibm9kZVR5cGUiLCJwdXNoIiwidm5vZGUiLCJhdHRyaWJ1dGVzIiwiYXR0ciIsIm5vZGVOYW1lIiwibm9kZVZhbHVlIiwidGFnTmFtZSIsInRvTG93ZXJDYXNlIiwidHJ1c3QiLCJodG1sU3RyaW5nIiwiZGl2IiwiaW5uZXJIVE1MIiwidHJpbSIsIm1hcCIsImNhbGwiLCJpdGVtIiwibWFpbkNvbXBvbmVudCIsIm1haW5Wbm9kZSIsImlzTW91bnRlZCIsImN1cnJlbnQiLCJvbGRWbm9kZSIsInJlc2VydmVkUHJvcHMiLCJrZXkiLCJzdGF0ZSIsIm9uQ2xlYW51cFNldCIsIlNldCIsIm9uTW91bnRTZXQiLCJvblVwZGF0ZVNldCIsIm9uVW5tb3VudFNldCIsIm9uQ2xlYW51cCIsImNhbGxiYWNrIiwiYWRkIiwiY2FsbFNldCIsInNldCIsImNsZWFyIiwiZXZlbnRMaXN0ZW5lck5hbWVzIiwiZXZlbnRMaXN0ZW5lciIsImUiLCJ0YXJnZXQiLCJuYW1lIiwidHlwZSIsImRlZmF1bHRQcmV2ZW50ZWQiLCJ1cGRhdGUiLCJwYXJlbnROb2RlIiwiaGlkZURpcmVjdGl2ZSIsInRlc3QiLCJib29sIiwib2xkbm9kZSIsIm5ld2RvbSIsImNyZWF0ZVRleHROb2RlIiwicmVwbGFjZUNoaWxkIiwiZGlyZWN0aXZlcyIsIm5ld0NoaWxkcmVuIiwic3R5bGUiLCJkaXNwbGF5IiwiY2xhc3NlcyIsImNsYXNzTGlzdCIsInRvZ2dsZSIsImh0bWwiLCJtb2RlbCIsInByb3BlcnR5IiwiZXZlbnQiLCJ2YWx1ZSIsImhhbmRsZXIiLCJBcnJheSIsImlzQXJyYXkiLCJ2YWwiLCJpZHgiLCJpbmRleE9mIiwic3BsaWNlIiwic2hhcmVkU2V0QXR0cmlidXRlIiwibXVsdGlwbGUiLCJjdHJsS2V5IiwiZm9yRWFjaCIsImNoaWxkIiwiam9pbiIsInNlbGVjdGVkIiwicHJldkhhbmRsZXIiLCJuZXdWbm9kZSIsImFkZEV2ZW50TGlzdGVuZXIiLCJzbGljZSIsInJlbW92ZUF0dHJpYnV0ZSIsInNldEF0dHJpYnV0ZSIsInVwZGF0ZUF0dHJpYnV0ZXMiLCJwYXRjaCIsIm5ld1RyZWUiLCJvbGRUcmVlIiwib2xkVHJlZUxlbmd0aCIsIm5ld1RyZWVMZW5ndGgiLCJvbGRLZXllZExpc3QiLCJuZXdLZXllZExpc3QiLCJuZXdDaGlsZCIsIm9sZENoaWxkIiwic2hvdWxkUGF0Y2giLCJhcHBlbmRDaGlsZCIsInJlbW92ZUNoaWxkIiwidmlldyIsImJpbmQiLCJ0ZXh0Q29udGVudCIsIm9sZE1haW5Wbm9kZSIsInVubW91bnQiLCJyZXN1bHQiLCJyZW1vdmVFdmVudExpc3RlbmVyIiwiUmVmbGVjdCIsImRlbGV0ZVByb3BlcnR5IiwidiIsInRhZ09yQ29tcG9uZW50IiwiZnJhZ21lbnQiLCJkaXJlY3RpdmUiLCJkaXJlY3RpdmVOYW1lIiwiY29udGFpbmVyIiwicXVlcnlTZWxlY3RvckFsbCIsInZub2RlQ29tcG9uZW50Il0sInNvdXJjZXMiOlsiLi4vbGliL2luZGV4LnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIGluZGVudCAqL1xuLyogZXNsaW50LWRpc2FibGUgc29uYXJqcy9jb2duaXRpdmUtY29tcGxleGl0eSAqL1xuLyogZXNsaW50LWRpc2FibGUgY29tcGxleGl0eSAqL1xuXG5leHBvcnQgaW50ZXJmYWNlIFByb3BzIHtcbiAga2V5Pzogc3RyaW5nIHwgbnVtYmVyO1xuICBzdGF0ZT86IGFueTtcbiAgb25jcmVhdGU/OiB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVudXNlZC12YXJzLCBuby11c2UtYmVmb3JlLWRlZmluZVxuICAgICh2bm9kZTogVm5vZGVJbnRlcmZhY2UpOiBuZXZlcjtcbiAgfTtcbiAgb251cGRhdGU/OiB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVudXNlZC12YXJzLCBuby11c2UtYmVmb3JlLWRlZmluZVxuICAgICh2bm9kZTogVm5vZGVJbnRlcmZhY2UsIG9sZFZub2RlOiBWbm9kZUludGVyZmFjZSk6IG5ldmVyO1xuICB9O1xuICBvbnJlbW92ZT86IHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdW51c2VkLXZhcnMsIG5vLXVzZS1iZWZvcmUtZGVmaW5lXG4gICAgKG9sZFZub2RlOiBWbm9kZUludGVyZmFjZSk6IG5ldmVyO1xuICB9O1xuICBzaG91bGR1cGRhdGU/OiB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVudXNlZC12YXJzLCBuby11c2UtYmVmb3JlLWRlZmluZVxuICAgICh2bm9kZTogVm5vZGVJbnRlcmZhY2UsIG9sZFZub2RlOiBWbm9kZUludGVyZmFjZSk6IHVuZGVmaW5lZCB8IGJvb2xlYW47XG4gIH07XG4gIFtrZXk6IHN0cmluZyB8IG51bWJlciB8IHN5bWJvbF06IGFueTtcbn1cbmV4cG9ydCBpbnRlcmZhY2UgRG9tRWxlbWVudCBleHRlbmRzIEVsZW1lbnQge1xuICBba2V5OiBzdHJpbmddOiBhbnk7XG59XG5leHBvcnQgaW50ZXJmYWNlIFZub2RlSW50ZXJmYWNlIHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVudXNlZC12YXJzLCBuby11c2UtYmVmb3JlLWRlZmluZVxuICBuZXcgKHRhZzogc3RyaW5nIHwgQ29tcG9uZW50IHwgUE9KT0NvbXBvbmVudCwgcHJvcHM6IFByb3BzLCBjaGlsZHJlbjogQ2hpbGRyZW4pOiBWbm9kZUludGVyZmFjZTtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVudXNlZC12YXJzLCBuby11c2UtYmVmb3JlLWRlZmluZVxuICB0YWc6IHN0cmluZyB8IENvbXBvbmVudCB8IFBPSk9Db21wb25lbnQ7XG4gIHByb3BzOiBQcm9wcztcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVudXNlZC12YXJzLCBuby11c2UtYmVmb3JlLWRlZmluZVxuICBjaGlsZHJlbjogQ2hpbGRyZW47XG4gIGlzU1ZHPzogYm9vbGVhbjtcbiAgZG9tPzogRG9tRWxlbWVudDtcbiAgcHJvY2Vzc2VkPzogYm9vbGVhbjtcbiAgW2tleTogc3RyaW5nIHwgbnVtYmVyIHwgc3ltYm9sXTogYW55O1xufVxuZXhwb3J0IGludGVyZmFjZSBWbm9kZVdpdGhEb20gZXh0ZW5kcyBWbm9kZUludGVyZmFjZSB7XG4gIGRvbTogRG9tRWxlbWVudDtcbn1cbmV4cG9ydCBpbnRlcmZhY2UgQ29tcG9uZW50IHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVudXNlZC12YXJzLCBuby11c2UtYmVmb3JlLWRlZmluZVxuICAocHJvcHM/OiBQcm9wcyB8IG51bGwsIC4uLmNoaWxkcmVuOiBhbnlbXSk6IFZub2RlSW50ZXJmYWNlIHwgQ2hpbGRyZW4gfCBhbnk7XG4gIFtrZXk6IHN0cmluZ106IGFueTtcbn1cbmV4cG9ydCBpbnRlcmZhY2UgUE9KT0NvbXBvbmVudCB7XG4gIHZpZXc6IENvbXBvbmVudDtcbiAgcHJvcHM/OiBQcm9wcyB8IG51bGw7XG4gIGNoaWxkcmVuPzogYW55W107XG4gIFtrZXk6IHN0cmluZ106IGFueTtcbn1cbmV4cG9ydCBpbnRlcmZhY2UgVm5vZGVDb21wb25lbnRJbnRlcmZhY2UgZXh0ZW5kcyBWbm9kZUludGVyZmFjZSB7XG4gIHRhZzogQ29tcG9uZW50IHwgUE9KT0NvbXBvbmVudDtcbiAgcHJvcHM6IFByb3BzO1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdW51c2VkLXZhcnMsIG5vLXVzZS1iZWZvcmUtZGVmaW5lXG4gIGNoaWxkcmVuOiBDaGlsZHJlbjtcbn1cbmV4cG9ydCBpbnRlcmZhY2UgQ2hpbGRyZW4gZXh0ZW5kcyBBcnJheTxWbm9kZUludGVyZmFjZSB8IFZub2RlQ29tcG9uZW50SW50ZXJmYWNlIHwgYW55PiB7fVxuZXhwb3J0IGludGVyZmFjZSBEaXJlY3RpdmUge1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdW51c2VkLXZhcnMsIG5vLXVzZS1iZWZvcmUtZGVmaW5lXG4gICh2YWx1ZTogYW55LCB2bm9kZTogVm5vZGVXaXRoRG9tLCBvbGRWbm9kZT86IFZub2RlV2l0aERvbSk6IHZvaWQgfCBib29sZWFuO1xufVxuZXhwb3J0IGludGVyZmFjZSBEaXJlY3RpdmVzIHtcbiAgW2tleTogc3RyaW5nXTogRGlyZWN0aXZlO1xufVxuZXhwb3J0IGludGVyZmFjZSBSZXNlcnZlZFByb3BzIHtcbiAgW2tleTogc3RyaW5nXTogdHJ1ZTtcbn1cbmV4cG9ydCBpbnRlcmZhY2UgQ3VycmVudCB7XG4gIGNvbXBvbmVudDogQ29tcG9uZW50IHwgUE9KT0NvbXBvbmVudCB8IG51bGw7XG4gIHZub2RlOiBWbm9kZVdpdGhEb20gfCBudWxsO1xuICBvbGRWbm9kZT86IFZub2RlV2l0aERvbSB8IG51bGw7XG59XG5leHBvcnQgaW50ZXJmYWNlIFYge1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdW51c2VkLXZhcnMsIG5vLXVzZS1iZWZvcmUtZGVmaW5lXG4gICh0YWdPckNvbXBvbmVudDogc3RyaW5nIHwgQ29tcG9uZW50IHwgUE9KT0NvbXBvbmVudCwgcHJvcHM6IFByb3BzIHwgbnVsbCwgLi4uY2hpbGRyZW46IENoaWxkcmVuKTpcbiAgICB8IFZub2RlSW50ZXJmYWNlXG4gICAgfCBWbm9kZUNvbXBvbmVudEludGVyZmFjZTtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVudXNlZC12YXJzLCBuby11c2UtYmVmb3JlLWRlZmluZVxuICBmcmFnbWVudChfOiBhbnksIC4uLmNoaWxkcmVuOiBDaGlsZHJlbik6IENoaWxkcmVuO1xufVxuXG5jb25zdCB0ZXh0VGFnID0gXCIjdGV4dFwiO1xuXG5leHBvcnQgbGV0IGlzTm9kZUpzID0gQm9vbGVhbih0eXBlb2YgcHJvY2VzcyAhPT0gXCJ1bmRlZmluZWRcIiAmJiBwcm9jZXNzLnZlcnNpb25zICYmIHByb2Nlc3MudmVyc2lvbnMubm9kZSk7XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVEb21FbGVtZW50KHRhZzogc3RyaW5nLCBpc1NWRzogYm9vbGVhbiA9IGZhbHNlKTogRG9tRWxlbWVudCB7XG4gIHJldHVybiBpc1NWRyA/IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnROUyhcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIsIHRhZykgOiBkb2N1bWVudC5jcmVhdGVFbGVtZW50KHRhZyk7XG59XG5cbmV4cG9ydCBjb25zdCBWbm9kZSA9IGZ1bmN0aW9uIFZub2RlKHRoaXM6IFZub2RlSW50ZXJmYWNlLCB0YWc6IHN0cmluZywgcHJvcHM6IFByb3BzLCBjaGlsZHJlbjogQ2hpbGRyZW4pIHtcbiAgdGhpcy50YWcgPSB0YWc7XG4gIHRoaXMucHJvcHMgPSBwcm9wcztcbiAgdGhpcy5jaGlsZHJlbiA9IGNoaWxkcmVuO1xufSBhcyB1bmtub3duIGFzIFZub2RlSW50ZXJmYWNlO1xuXG5leHBvcnQgZnVuY3Rpb24gaXNDb21wb25lbnQoY29tcG9uZW50KTogY29tcG9uZW50IGlzIENvbXBvbmVudCB7XG4gIHJldHVybiBjb21wb25lbnQgJiYgKHR5cGVvZiBjb21wb25lbnQgPT09IFwiZnVuY3Rpb25cIiB8fCAodHlwZW9mIGNvbXBvbmVudCA9PT0gXCJvYmplY3RcIiAmJiBcInZpZXdcIiBpbiBjb21wb25lbnQpKTtcbn1cblxuZXhwb3J0IGNvbnN0IGlzVm5vZGUgPSAob2JqZWN0PzogdW5rbm93biB8IFZub2RlSW50ZXJmYWNlKTogb2JqZWN0IGlzIFZub2RlSW50ZXJmYWNlID0+IHtcbiAgcmV0dXJuIG9iamVjdCBpbnN0YW5jZW9mIFZub2RlO1xufTtcblxuZXhwb3J0IGNvbnN0IGlzVm5vZGVDb21wb25lbnQgPSAob2JqZWN0PzogdW5rbm93biB8IFZub2RlQ29tcG9uZW50SW50ZXJmYWNlKTogb2JqZWN0IGlzIFZub2RlQ29tcG9uZW50SW50ZXJmYWNlID0+IHtcbiAgcmV0dXJuIGlzVm5vZGUob2JqZWN0KSAmJiBpc0NvbXBvbmVudChvYmplY3QudGFnKTtcbn07XG5cbi8vIFRyYW5zZm9ybXMgYSBET00gbm9kZSB0byBhIFZOb2RlXG5mdW5jdGlvbiBkb21Ub1Zub2RlKGRvbTogYW55KTogVm5vZGVXaXRoRG9tIHtcbiAgbGV0IGNoaWxkcmVuOiBWbm9kZVdpdGhEb21bXSA9IFtdO1xuICBmb3IgKGxldCBpID0gMCwgbCA9IGRvbS5jaGlsZE5vZGVzLmxlbmd0aDsgaSA8IGw7IGkrKykge1xuICAgIGxldCBjaGlsZERvbSA9IGRvbS5jaGlsZE5vZGVzW2ldO1xuICAgIGlmIChjaGlsZERvbS5ub2RlVHlwZSA9PT0gMykge1xuICAgICAgbGV0IHZub2RlID0gbmV3IFZub2RlKHRleHRUYWcsIHt9LCBbXSk7XG4gICAgICB2bm9kZS5kb20gPSBjaGlsZERvbTtcbiAgICAgIGNoaWxkcmVuLnB1c2godm5vZGUgYXMgVm5vZGVXaXRoRG9tKTtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cblxuICAgIGlmIChjaGlsZERvbS5ub2RlVHlwZSA9PT0gMSkge1xuICAgICAgY2hpbGRyZW4ucHVzaChkb21Ub1Zub2RlKGNoaWxkRG9tKSk7XG4gICAgfVxuICB9XG5cbiAgbGV0IHByb3BzOiBQcm9wcyA9IHt9O1xuICBmb3IgKGxldCBpID0gMCwgbCA9IGRvbS5hdHRyaWJ1dGVzLmxlbmd0aDsgaSA8IGw7IGkrKykge1xuICAgIGxldCBhdHRyID0gZG9tLmF0dHJpYnV0ZXNbaV07XG4gICAgcHJvcHNbYXR0ci5ub2RlTmFtZV0gPSBhdHRyLm5vZGVWYWx1ZTtcbiAgfVxuXG4gIGxldCB2bm9kZSA9IG5ldyBWbm9kZShkb20udGFnTmFtZS50b0xvd2VyQ2FzZSgpLCBwcm9wcywgY2hpbGRyZW4pO1xuICB2bm9kZS5kb20gPSBkb207XG4gIHJldHVybiB2bm9kZSBhcyBWbm9kZVdpdGhEb207XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0cnVzdChodG1sU3RyaW5nOiBzdHJpbmcpIHtcbiAgbGV0IGRpdiA9IGNyZWF0ZURvbUVsZW1lbnQoXCJkaXZcIik7XG4gIGRpdi5pbm5lckhUTUwgPSBodG1sU3RyaW5nLnRyaW0oKTtcblxuICByZXR1cm4gW10ubWFwLmNhbGwoZGl2LmNoaWxkTm9kZXMsIChpdGVtKSA9PiBkb21Ub1Zub2RlKGl0ZW0pKTtcbn1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qIE1haW4gQ29tcG9uZW50IGltcGxlbWVudGF0aW9uICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG5sZXQgbWFpbkNvbXBvbmVudDogVm5vZGVDb21wb25lbnRJbnRlcmZhY2UgfCBudWxsID0gbnVsbDtcbmxldCBtYWluVm5vZGU6IFZub2RlV2l0aERvbSB8IG51bGwgPSBudWxsO1xubGV0IGlzTW91bnRlZCA9IGZhbHNlO1xuXG5leHBvcnQgY29uc3QgY3VycmVudDogQ3VycmVudCA9IHtcbiAgdm5vZGU6IG51bGwsXG4gIG9sZFZub2RlOiBudWxsLFxuICBjb21wb25lbnQ6IG51bGxcbn07XG5cbi8qIFJlc2VydmVkIHByb3BzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5leHBvcnQgY29uc3QgcmVzZXJ2ZWRQcm9wczogUmVjb3JkPHN0cmluZywgdHJ1ZT4gPSB7XG4gIGtleTogdHJ1ZSxcbiAgc3RhdGU6IHRydWUsXG4gIFwidi1rZWVwXCI6IHRydWUsXG5cbiAgLy8gQnVpbHQgaW4gZGlyZWN0aXZlc1xuICBcInYtaWZcIjogdHJ1ZSxcbiAgXCJ2LXVubGVzc1wiOiB0cnVlLFxuICBcInYtZm9yXCI6IHRydWUsXG4gIFwidi1zaG93XCI6IHRydWUsXG4gIFwidi1jbGFzc1wiOiB0cnVlLFxuICBcInYtaHRtbFwiOiB0cnVlLFxuICBcInYtbW9kZWxcIjogdHJ1ZSxcbiAgXCJ2LWNyZWF0ZVwiOiB0cnVlLFxuICBcInYtdXBkYXRlXCI6IHRydWUsXG4gIFwidi1jbGVhbnVwXCI6IHRydWVcbn07XG5cbi8qIE1vdW50aW5nLCBVcGRhdGluZywgQ2xlYW51cCBhbmQgVW5tb3VudGluZyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5jb25zdCBvbkNsZWFudXBTZXQ6IFNldDxGdW5jdGlvbj4gPSBuZXcgU2V0KCk7XG5jb25zdCBvbk1vdW50U2V0OiBTZXQ8RnVuY3Rpb24+ID0gbmV3IFNldCgpO1xuY29uc3Qgb25VcGRhdGVTZXQ6IFNldDxGdW5jdGlvbj4gPSBuZXcgU2V0KCk7XG5jb25zdCBvblVubW91bnRTZXQ6IFNldDxGdW5jdGlvbj4gPSBuZXcgU2V0KCk7XG5cbmV4cG9ydCBmdW5jdGlvbiBvbk1vdW50KGNhbGxiYWNrKSB7XG4gIG9uTW91bnRTZXQuYWRkKGNhbGxiYWNrKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG9uVXBkYXRlKGNhbGxiYWNrKSB7XG4gIG9uVXBkYXRlU2V0LmFkZChjYWxsYmFjayk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBvbkNsZWFudXAoY2FsbGJhY2spIHtcbiAgb25DbGVhbnVwU2V0LmFkZChjYWxsYmFjayk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBvblVubW91bnQoY2FsbGJhY2spIHtcbiAgb25Vbm1vdW50U2V0LmFkZChjYWxsYmFjayk7XG59XG5cbmZ1bmN0aW9uIGNhbGxTZXQoc2V0KSB7XG4gIGZvciAobGV0IGNhbGxiYWNrIG9mIHNldCkge1xuICAgIGNhbGxiYWNrKCk7XG4gIH1cblxuICBzZXQuY2xlYXIoKTtcbn1cblxuLyogRXZlbnQgbGlzdGVuZXIgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbmNvbnN0IGV2ZW50TGlzdGVuZXJOYW1lczogUmVjb3JkPHN0cmluZywgdHJ1ZT4gPSB7fTtcbmZ1bmN0aW9uIGV2ZW50TGlzdGVuZXIoZTogRXZlbnQpIHtcbiAgbGV0IGRvbSA9IGUudGFyZ2V0IGFzIERvbUVsZW1lbnQ7XG4gIGxldCBuYW1lID0gYHYtb24ke2UudHlwZX1gO1xuICB3aGlsZSAoZG9tKSB7XG4gICAgaWYgKGRvbVtuYW1lXSkge1xuICAgICAgZG9tW25hbWVdKGUsIGRvbSk7XG4gICAgICBpZiAoIWUuZGVmYXVsdFByZXZlbnRlZCkge1xuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdXNlLWJlZm9yZS1kZWZpbmVcbiAgICAgICAgdXBkYXRlKCk7XG4gICAgICB9XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGRvbSA9IGRvbS5wYXJlbnROb2RlIGFzIERvbUVsZW1lbnQ7XG4gIH1cbn1cblxuLyogRGlyZWN0aXZlcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbmxldCBoaWRlRGlyZWN0aXZlID0gKHRlc3Q6IGJvb2xlYW4pID0+IChib29sOiBib29sZWFuLCB2bm9kZTogVm5vZGVJbnRlcmZhY2UsIG9sZG5vZGU/OiBWbm9kZUludGVyZmFjZSkgPT4ge1xuICBsZXQgdmFsdWUgPSB0ZXN0ID8gYm9vbCA6ICFib29sO1xuICBpZiAodmFsdWUpIHtcbiAgICBsZXQgbmV3ZG9tID0gZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoXCJcIik7XG4gICAgaWYgKG9sZG5vZGUgJiYgb2xkbm9kZS5kb20gJiYgb2xkbm9kZS5kb20ucGFyZW50Tm9kZSkge1xuICAgICAgb2xkbm9kZS5kb20ucGFyZW50Tm9kZS5yZXBsYWNlQ2hpbGQobmV3ZG9tLCBvbGRub2RlLmRvbSk7XG4gICAgfVxuICAgIHZub2RlLnRhZyA9IFwiI3RleHRcIjtcbiAgICB2bm9kZS5jaGlsZHJlbiA9IFtdO1xuICAgIHZub2RlLnByb3BzID0ge307XG4gICAgdm5vZGUuZG9tID0gbmV3ZG9tIGFzIHVua25vd24gYXMgRG9tRWxlbWVudDtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbn07XG5cbmV4cG9ydCBjb25zdCBkaXJlY3RpdmVzOiBEaXJlY3RpdmVzID0ge1xuICBcInYtaWZcIjogaGlkZURpcmVjdGl2ZShmYWxzZSksXG4gIFwidi11bmxlc3NcIjogaGlkZURpcmVjdGl2ZSh0cnVlKSxcbiAgXCJ2LWZvclwiOiAoc2V0OiB1bmtub3duW10sIHZub2RlOiBWbm9kZVdpdGhEb20pID0+IHtcbiAgICBsZXQgbmV3Q2hpbGRyZW46IFZub2RlSW50ZXJmYWNlW10gPSBbXTtcbiAgICBsZXQgY2FsbGJhY2sgPSB2bm9kZS5jaGlsZHJlblswXTtcbiAgICBmb3IgKGxldCBpID0gMCwgbCA9IHNldC5sZW5ndGg7IGkgPCBsOyBpKyspIHtcbiAgICAgIG5ld0NoaWxkcmVuLnB1c2goY2FsbGJhY2soc2V0W2ldLCBpKSk7XG4gICAgfVxuICAgIHZub2RlLmNoaWxkcmVuID0gbmV3Q2hpbGRyZW47XG4gIH0sXG4gIFwidi1zaG93XCI6IChib29sOiBib29sZWFuLCB2bm9kZTogVm5vZGVXaXRoRG9tKSA9PiB7XG4gICAgKFxuICAgICAgdm5vZGUuZG9tIGFzIHVua25vd24gYXMge1xuICAgICAgICBzdHlsZTogeyBkaXNwbGF5OiBzdHJpbmcgfTtcbiAgICAgIH1cbiAgICApLnN0eWxlLmRpc3BsYXkgPSBib29sID8gXCJcIiA6IFwibm9uZVwiO1xuICB9LFxuICBcInYtY2xhc3NcIjogKGNsYXNzZXM6IHsgW3g6IHN0cmluZ106IGJvb2xlYW4gfSwgdm5vZGU6IFZub2RlV2l0aERvbSkgPT4ge1xuICAgIGZvciAobGV0IG5hbWUgaW4gY2xhc3Nlcykge1xuICAgICAgKHZub2RlLmRvbSBhcyBEb21FbGVtZW50KS5jbGFzc0xpc3QudG9nZ2xlKG5hbWUsIGNsYXNzZXNbbmFtZV0pO1xuICAgIH1cbiAgfSxcbiAgXCJ2LWh0bWxcIjogKGh0bWw6IHN0cmluZywgdm5vZGU6IFZub2RlV2l0aERvbSkgPT4ge1xuICAgIHZub2RlLmNoaWxkcmVuID0gW3RydXN0KGh0bWwpXTtcbiAgfSxcbiAgXCJ2LW1vZGVsXCI6IChbbW9kZWwsIHByb3BlcnR5LCBldmVudF06IGFueVtdLCB2bm9kZTogVm5vZGVXaXRoRG9tLCBvbGRWbm9kZT86IFZub2RlV2l0aERvbSkgPT4ge1xuICAgIGxldCB2YWx1ZTtcbiAgICBsZXQgaGFuZGxlciA9IChlOiBFdmVudCkgPT4gKG1vZGVsW3Byb3BlcnR5XSA9IChlLnRhcmdldCBhcyBEb21FbGVtZW50ICYgUmVjb3JkPHN0cmluZywgYW55PikudmFsdWUpO1xuICAgIGlmICh2bm9kZS50YWcgPT09IFwiaW5wdXRcIikge1xuICAgICAgZXZlbnQgPSBldmVudCB8fCBcIm9uaW5wdXRcIjtcbiAgICAgIHN3aXRjaCAodm5vZGUucHJvcHMudHlwZSkge1xuICAgICAgICBjYXNlIFwiY2hlY2tib3hcIjoge1xuICAgICAgICAgIGlmIChBcnJheS5pc0FycmF5KG1vZGVsW3Byb3BlcnR5XSkpIHtcbiAgICAgICAgICAgIGhhbmRsZXIgPSAoZTogRXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgbGV0IHZhbCA9IChlLnRhcmdldCBhcyBEb21FbGVtZW50ICYgUmVjb3JkPHN0cmluZywgYW55PikudmFsdWU7XG4gICAgICAgICAgICAgIGxldCBpZHggPSBtb2RlbFtwcm9wZXJ0eV0uaW5kZXhPZih2YWwpO1xuICAgICAgICAgICAgICBpZiAoaWR4ID09PSAtMSkge1xuICAgICAgICAgICAgICAgIG1vZGVsW3Byb3BlcnR5XS5wdXNoKHZhbCk7XG4gICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgbW9kZWxbcHJvcGVydHldLnNwbGljZShpZHgsIDEpO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgdmFsdWUgPSBtb2RlbFtwcm9wZXJ0eV0uaW5kZXhPZih2bm9kZS5kb20udmFsdWUpICE9PSAtMTtcbiAgICAgICAgICB9IGVsc2UgaWYgKFwidmFsdWVcIiBpbiB2bm9kZS5wcm9wcykge1xuICAgICAgICAgICAgaGFuZGxlciA9ICgpID0+IHtcbiAgICAgICAgICAgICAgaWYgKG1vZGVsW3Byb3BlcnR5XSA9PT0gdm5vZGUucHJvcHMudmFsdWUpIHtcbiAgICAgICAgICAgICAgICBtb2RlbFtwcm9wZXJ0eV0gPSBudWxsO1xuICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIG1vZGVsW3Byb3BlcnR5XSA9IHZub2RlLnByb3BzLnZhbHVlO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgdmFsdWUgPSBtb2RlbFtwcm9wZXJ0eV0gPT09IHZub2RlLnByb3BzLnZhbHVlO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBoYW5kbGVyID0gKCkgPT4gKG1vZGVsW3Byb3BlcnR5XSA9ICFtb2RlbFtwcm9wZXJ0eV0pO1xuICAgICAgICAgICAgdmFsdWUgPSBtb2RlbFtwcm9wZXJ0eV07XG4gICAgICAgICAgfVxuICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby11c2UtYmVmb3JlLWRlZmluZVxuICAgICAgICAgIHNoYXJlZFNldEF0dHJpYnV0ZShcImNoZWNrZWRcIiwgdmFsdWUsIHZub2RlKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlIFwicmFkaW9cIjoge1xuICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby11c2UtYmVmb3JlLWRlZmluZVxuICAgICAgICAgIHNoYXJlZFNldEF0dHJpYnV0ZShcImNoZWNrZWRcIiwgbW9kZWxbcHJvcGVydHldID09PSB2bm9kZS5kb20udmFsdWUsIHZub2RlKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVzZS1iZWZvcmUtZGVmaW5lXG4gICAgICAgICAgc2hhcmVkU2V0QXR0cmlidXRlKFwidmFsdWVcIiwgbW9kZWxbcHJvcGVydHldLCB2bm9kZSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKHZub2RlLnRhZyA9PT0gXCJzZWxlY3RcIikge1xuICAgICAgZXZlbnQgPSBldmVudCB8fCBcIm9uY2xpY2tcIjtcbiAgICAgIGlmICh2bm9kZS5wcm9wcy5tdWx0aXBsZSkge1xuICAgICAgICBoYW5kbGVyID0gKGU6IEV2ZW50ICYgUmVjb3JkPHN0cmluZywgYW55PikgPT4ge1xuICAgICAgICAgIGxldCB2YWwgPSAoZS50YXJnZXQgYXMgRG9tRWxlbWVudCAmIFJlY29yZDxzdHJpbmcsIGFueT4pLnZhbHVlO1xuICAgICAgICAgIGlmIChlLmN0cmxLZXkpIHtcbiAgICAgICAgICAgIGxldCBpZHggPSBtb2RlbFtwcm9wZXJ0eV0uaW5kZXhPZih2YWwpO1xuICAgICAgICAgICAgaWYgKGlkeCA9PT0gLTEpIHtcbiAgICAgICAgICAgICAgbW9kZWxbcHJvcGVydHldLnB1c2godmFsKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIG1vZGVsW3Byb3BlcnR5XS5zcGxpY2UoaWR4LCAxKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgbW9kZWxbcHJvcGVydHldLnNwbGljZSgwLCBtb2RlbFtwcm9wZXJ0eV0ubGVuZ3RoKTtcbiAgICAgICAgICAgIG1vZGVsW3Byb3BlcnR5XS5wdXNoKHZhbCk7XG4gICAgICAgICAgfVxuICAgICAgICB9O1xuICAgICAgICB2bm9kZS5jaGlsZHJlbi5mb3JFYWNoKChjaGlsZDogVm5vZGVJbnRlcmZhY2UpID0+IHtcbiAgICAgICAgICBpZiAoY2hpbGQudGFnID09PSBcIm9wdGlvblwiKSB7XG4gICAgICAgICAgICBsZXQgdmFsdWUgPSBcInZhbHVlXCIgaW4gY2hpbGQucHJvcHMgPyBjaGlsZC5wcm9wcy52YWx1ZSA6IGNoaWxkLmNoaWxkcmVuLmpvaW4oXCJcIikudHJpbSgpO1xuICAgICAgICAgICAgY2hpbGQucHJvcHMuc2VsZWN0ZWQgPSBtb2RlbFtwcm9wZXJ0eV0uaW5kZXhPZih2YWx1ZSkgIT09IC0xO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB2bm9kZS5jaGlsZHJlbi5mb3JFYWNoKChjaGlsZDogVm5vZGVJbnRlcmZhY2UpID0+IHtcbiAgICAgICAgICBpZiAoY2hpbGQudGFnID09PSBcIm9wdGlvblwiKSB7XG4gICAgICAgICAgICBsZXQgdmFsdWUgPSBcInZhbHVlXCIgaW4gY2hpbGQucHJvcHMgPyBjaGlsZC5wcm9wcy52YWx1ZSA6IGNoaWxkLmNoaWxkcmVuLmpvaW4oXCJcIikudHJpbSgpO1xuICAgICAgICAgICAgY2hpbGQucHJvcHMuc2VsZWN0ZWQgPSB2YWx1ZSA9PT0gbW9kZWxbcHJvcGVydHldO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfSBlbHNlIGlmICh2bm9kZS50YWcgPT09IFwidGV4dGFyZWFcIikge1xuICAgICAgZXZlbnQgPSBldmVudCB8fCBcIm9uaW5wdXRcIjtcbiAgICAgIHZub2RlLmNoaWxkcmVuID0gW21vZGVsW3Byb3BlcnR5XV07XG4gICAgfVxuXG4gICAgLy8gV2UgYXNzdW1lIHRoYXQgdGhlIHByZXYgaGFuZGxlciBpZiBhbnkgd2lsbCBub3QgYmUgY2hhbmdlZCBieSB0aGUgdXNlciBhY3Jvc3MgcGF0Y2hzXG4gICAgbGV0IHByZXZIYW5kbGVyID0gdm5vZGUucHJvcHNbZXZlbnRdO1xuXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVzZS1iZWZvcmUtZGVmaW5lXG4gICAgc2hhcmVkU2V0QXR0cmlidXRlKFxuICAgICAgZXZlbnQsXG4gICAgICAoZTogRXZlbnQpID0+IHtcbiAgICAgICAgaGFuZGxlcihlKTtcblxuICAgICAgICAvLyBJZiB0aGUgdXNlciBoYXMgZGVmaW5lZCBhIGhhbmRsZXIgZm9yIHRoZSBldmVudCwgd2UgY2FsbCBpdCByaWdodCBhd2F5XG4gICAgICAgIGlmIChwcmV2SGFuZGxlcikge1xuICAgICAgICAgIHByZXZIYW5kbGVyKGUpO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgdm5vZGUsXG4gICAgICBvbGRWbm9kZVxuICAgICk7XG4gIH0sXG5cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVudXNlZC12YXJzXG4gIFwidi1jcmVhdGVcIjogKGNhbGxiYWNrOiAodm5vZGU6IFZub2RlV2l0aERvbSkgPT4gdm9pZCwgdm5vZGU6IFZub2RlV2l0aERvbSwgb2xkVm5vZGU/OiBWbm9kZVdpdGhEb20pID0+IHtcbiAgICBpZiAoIW9sZFZub2RlKSB7XG4gICAgICBjYWxsYmFjayh2bm9kZSk7XG4gICAgfVxuICB9LFxuXG4gIFwidi11cGRhdGVcIjogKFxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby11bnVzZWQtdmFyc1xuICAgIGNhbGxiYWNrOiAodm5vZGU6IFZub2RlV2l0aERvbSwgb2xkVm5vZGU6IFZub2RlV2l0aERvbSkgPT4gdm9pZCxcbiAgICB2bm9kZTogVm5vZGVXaXRoRG9tLFxuICAgIG9sZFZub2RlPzogVm5vZGVXaXRoRG9tXG4gICkgPT4ge1xuICAgIGlmIChvbGRWbm9kZSkge1xuICAgICAgY2FsbGJhY2sodm5vZGUsIG9sZFZub2RlKTtcbiAgICB9XG4gIH0sXG5cbiAgXCJ2LWNsZWFudXBcIjogKFxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby11bnVzZWQtdmFyc1xuICAgIGNhbGxiYWNrOiAodm5vZGU6IFZub2RlV2l0aERvbSwgb2xkVm5vZGU/OiBWbm9kZVdpdGhEb20pID0+IHZvaWQsXG4gICAgdm5vZGU6IFZub2RlV2l0aERvbSxcbiAgICBvbGRWbm9kZT86IFZub2RlV2l0aERvbVxuICApID0+IHtcbiAgICBvbkNsZWFudXAoKCkgPT4gY2FsbGJhY2sodm5vZGUsIG9sZFZub2RlKSk7XG4gIH1cbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBkaXJlY3RpdmUobmFtZTogc3RyaW5nLCBkaXJlY3RpdmU6IERpcmVjdGl2ZSkge1xuICBsZXQgZGlyZWN0aXZlTmFtZSA9IGB2LSR7bmFtZX1gO1xuICBkaXJlY3RpdmVzW2RpcmVjdGl2ZU5hbWVdID0gZGlyZWN0aXZlO1xuICByZXNlcnZlZFByb3BzW2RpcmVjdGl2ZU5hbWVdID0gdHJ1ZTtcbn1cblxuLyogU2V0IGF0dHJpYnV0ZSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbmZ1bmN0aW9uIHNoYXJlZFNldEF0dHJpYnV0ZShuYW1lOiBzdHJpbmcsIHZhbHVlOiBhbnksIG5ld1Zub2RlOiBWbm9kZVdpdGhEb20sIG9sZFZub2RlPzogVm5vZGVXaXRoRG9tKTogdm9pZCB8IGJvb2xlYW4ge1xuICBpZiAodHlwZW9mIHZhbHVlID09PSBcImZ1bmN0aW9uXCIpIHtcbiAgICBpZiAobmFtZSBpbiBldmVudExpc3RlbmVyTmFtZXMgPT09IGZhbHNlKSB7XG4gICAgICAobWFpblZub2RlIGFzIFZub2RlV2l0aERvbSkuZG9tLmFkZEV2ZW50TGlzdGVuZXIobmFtZS5zbGljZSgyKSwgZXZlbnRMaXN0ZW5lcik7XG4gICAgICBldmVudExpc3RlbmVyTmFtZXNbbmFtZV0gPSB0cnVlO1xuICAgIH1cbiAgICBuZXdWbm9kZS5kb21bYHYtJHtuYW1lfWBdID0gdmFsdWU7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgaWYgKG5hbWUgaW4gbmV3Vm5vZGUuZG9tICYmIG5ld1Zub2RlLmlzU1ZHID09PSBmYWxzZSkge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBlcWVxZXFcbiAgICBpZiAobmV3Vm5vZGUuZG9tW25hbWVdICE9IHZhbHVlKSB7XG4gICAgICBuZXdWbm9kZS5kb21bbmFtZV0gPSB2YWx1ZTtcbiAgICB9XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgaWYgKCFvbGRWbm9kZSB8fCB2YWx1ZSAhPT0gb2xkVm5vZGUucHJvcHNbbmFtZV0pIHtcbiAgICBpZiAodmFsdWUgPT09IGZhbHNlKSB7XG4gICAgICBuZXdWbm9kZS5kb20ucmVtb3ZlQXR0cmlidXRlKG5hbWUpO1xuICAgIH0gZWxzZSB7XG4gICAgICBuZXdWbm9kZS5kb20uc2V0QXR0cmlidXRlKG5hbWUsIHZhbHVlKTtcbiAgICB9XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHNldEF0dHJpYnV0ZShuYW1lOiBzdHJpbmcsIHZhbHVlOiBhbnksIG5ld1Zub2RlOiBWbm9kZVdpdGhEb20sIG9sZFZub2RlPzogVm5vZGVXaXRoRG9tKTogdm9pZCB7XG4gIGlmIChuYW1lIGluIHJlc2VydmVkUHJvcHMpIHtcbiAgICByZXR1cm47XG4gIH1cbiAgbmV3Vm5vZGUucHJvcHNbbmFtZV0gPSB2YWx1ZTtcbiAgc2hhcmVkU2V0QXR0cmlidXRlKG5hbWUsIHZhbHVlLCBuZXdWbm9kZSBhcyBWbm9kZVdpdGhEb20sIG9sZFZub2RlKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHVwZGF0ZUF0dHJpYnV0ZXMobmV3Vm5vZGU6IFZub2RlV2l0aERvbSwgb2xkVm5vZGU/OiBWbm9kZVdpdGhEb20pOiB2b2lkIHtcbiAgaWYgKG9sZFZub2RlKSB7XG4gICAgZm9yIChsZXQgbmFtZSBpbiBvbGRWbm9kZS5wcm9wcykge1xuICAgICAgaWYgKG5hbWUgaW4gbmV3Vm5vZGUucHJvcHMgPT09IGZhbHNlICYmIG5hbWUgaW4gZXZlbnRMaXN0ZW5lck5hbWVzID09PSBmYWxzZSAmJiBuYW1lIGluIHJlc2VydmVkUHJvcHMgPT09IGZhbHNlKSB7XG4gICAgICAgIGlmIChuYW1lIGluIG5ld1Zub2RlLmRvbSAmJiBuZXdWbm9kZS5pc1NWRyA9PT0gZmFsc2UpIHtcbiAgICAgICAgICBuZXdWbm9kZS5kb21bbmFtZV0gPSBudWxsO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIG5ld1Zub2RlLmRvbS5yZW1vdmVBdHRyaWJ1dGUobmFtZSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBmb3IgKGxldCBuYW1lIGluIG5ld1Zub2RlLnByb3BzKSB7XG4gICAgaWYgKG5hbWUgaW4gcmVzZXJ2ZWRQcm9wcykge1xuICAgICAgaWYgKG5hbWUgaW4gZGlyZWN0aXZlcyAmJiBkaXJlY3RpdmVzW25hbWVdKG5ld1Zub2RlLnByb3BzW25hbWVdLCBuZXdWbm9kZSwgb2xkVm5vZGUpID09PSBmYWxzZSkge1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cbiAgICBzaGFyZWRTZXRBdHRyaWJ1dGUobmFtZSwgbmV3Vm5vZGUucHJvcHNbbmFtZV0sIG5ld1Zub2RlLCBvbGRWbm9kZSk7XG4gIH1cbn1cblxuLyogcGF0Y2ggLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG4vLyBQYXRjaCBhIERPTSBub2RlIHdpdGggYSBuZXcgVk5vZGUgdHJlZVxuZXhwb3J0IGZ1bmN0aW9uIHBhdGNoKG5ld1Zub2RlOiBWbm9kZVdpdGhEb20sIG9sZFZub2RlPzogVm5vZGVXaXRoRG9tKTogdm9pZCB7XG4gIGxldCBuZXdUcmVlID0gbmV3Vm5vZGUuY2hpbGRyZW47XG4gIGxldCBvbGRUcmVlID0gb2xkVm5vZGU/LmNoaWxkcmVuIHx8IFtdO1xuICBsZXQgb2xkVHJlZUxlbmd0aCA9IG9sZFRyZWUubGVuZ3RoO1xuXG4gIC8vIElzIGtleWVkIGxpc3QgYW5kIHVwZGF0ZSBpbiBwbGFjZVxuICBpZiAob2xkVHJlZUxlbmd0aCAmJiBuZXdUcmVlWzBdIGluc3RhbmNlb2YgVm5vZGUgJiYgXCJrZXlcIiBpbiBuZXdUcmVlWzBdLnByb3BzICYmIFwia2V5XCIgaW4gb2xkVHJlZVswXS5wcm9wcykge1xuICAgIGxldCBuZXdUcmVlTGVuZ3RoID0gbmV3VHJlZS5sZW5ndGg7XG5cbiAgICBsZXQgb2xkS2V5ZWRMaXN0OiB7IFtrZXk6IHN0cmluZ106IG51bWJlciB9ID0ge307XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBvbGRUcmVlTGVuZ3RoOyBpKyspIHtcbiAgICAgIG9sZEtleWVkTGlzdFtvbGRUcmVlW2ldLnByb3BzLmtleV0gPSBpO1xuICAgIH1cblxuICAgIGxldCBuZXdLZXllZExpc3Q6IHsgW2tleTogc3RyaW5nXTogbnVtYmVyIH0gPSB7fTtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IG5ld1RyZWVMZW5ndGg7IGkrKykge1xuICAgICAgbmV3S2V5ZWRMaXN0W25ld1RyZWVbaV0ucHJvcHMua2V5XSA9IGk7XG4gICAgfVxuXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBuZXdUcmVlTGVuZ3RoOyBpKyspIHtcbiAgICAgIGxldCBuZXdDaGlsZCA9IG5ld1RyZWVbaV07XG4gICAgICBsZXQgb2xkQ2hpbGQgPSBvbGRUcmVlW29sZEtleWVkTGlzdFtuZXdDaGlsZC5wcm9wcy5rZXldXTtcbiAgICAgIGxldCBzaG91bGRQYXRjaCA9IHRydWU7XG5cbiAgICAgIGlmIChvbGRDaGlsZCkge1xuICAgICAgICBuZXdDaGlsZC5kb20gPSBvbGRDaGlsZC5kb207XG4gICAgICAgIGlmIChcInYta2VlcFwiIGluIG5ld0NoaWxkLnByb3BzICYmIG5ld0NoaWxkLnByb3BzW1widi1rZWVwXCJdID09PSBvbGRDaGlsZC5wcm9wc1tcInYta2VlcFwiXSkge1xuICAgICAgICAgIG5ld0NoaWxkLmNoaWxkcmVuID0gb2xkQ2hpbGQuY2hpbGRyZW47XG4gICAgICAgICAgc2hvdWxkUGF0Y2ggPSBmYWxzZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB1cGRhdGVBdHRyaWJ1dGVzKG5ld0NoaWxkLCBvbGRDaGlsZCk7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIG5ld0NoaWxkLmRvbSA9IGNyZWF0ZURvbUVsZW1lbnQobmV3Q2hpbGQudGFnLCBuZXdDaGlsZC5pc1NWRyk7XG4gICAgICAgIHVwZGF0ZUF0dHJpYnV0ZXMobmV3Q2hpbGQpO1xuICAgICAgfVxuXG4gICAgICBpZiAoIW5ld1Zub2RlLmRvbS5jaGlsZE5vZGVzW2ldKSB7XG4gICAgICAgIG5ld1Zub2RlLmRvbS5hcHBlbmRDaGlsZChuZXdDaGlsZC5kb20pO1xuICAgICAgfSBlbHNlIGlmIChuZXdWbm9kZS5kb20uY2hpbGROb2Rlc1tpXSAhPT0gbmV3Q2hpbGQuZG9tKSB7XG4gICAgICAgIG5ld1Zub2RlLmRvbS5yZXBsYWNlQ2hpbGQobmV3Q2hpbGQuZG9tLCBuZXdWbm9kZS5kb20uY2hpbGROb2Rlc1tpXSk7XG4gICAgICB9XG5cbiAgICAgIHNob3VsZFBhdGNoICYmIHBhdGNoKG5ld0NoaWxkLCBvbGRDaGlsZCk7XG4gICAgfVxuXG4gICAgLy8gRm9yIHRoZSByZXN0IG9mIHRoZSBjaGlsZHJlbiwgd2Ugc2hvdWxkIHJlbW92ZSB0aGVtXG4gICAgZm9yIChsZXQgaSA9IG5ld1RyZWVMZW5ndGg7IGkgPCBvbGRUcmVlTGVuZ3RoOyBpKyspIHtcbiAgICAgIGlmICghbmV3S2V5ZWRMaXN0W29sZFRyZWVbaV0ucHJvcHMua2V5XSkge1xuICAgICAgICBvbGRUcmVlW2ldLmRvbS5wYXJlbnROb2RlICYmIG9sZFRyZWVbaV0uZG9tLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQob2xkVHJlZVtpXS5kb20pO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm47XG4gIH1cblxuICBpZiAobmV3VHJlZS5sZW5ndGggPT09IDApIHtcbiAgICBuZXdWbm9kZS5kb20udGV4dENvbnRlbnQgPSBcIlwiO1xuICAgIHJldHVybjtcbiAgfVxuXG4gIGN1cnJlbnQudm5vZGUgPSBuZXdWbm9kZTtcbiAgY3VycmVudC5vbGRWbm9kZSA9IG9sZFZub2RlO1xuXG4gIC8vIEZsYXQgbmV3VHJlZVxuICBmb3IgKGxldCBpID0gMDsgaSA8IG5ld1RyZWUubGVuZ3RoOyBpKyspIHtcbiAgICBsZXQgbmV3Q2hpbGQgPSBuZXdUcmVlW2ldO1xuXG4gICAgaWYgKG5ld0NoaWxkIGluc3RhbmNlb2YgVm5vZGUgJiYgbmV3Q2hpbGQudGFnICE9PSB0ZXh0VGFnKSB7XG4gICAgICBpZiAodHlwZW9mIG5ld0NoaWxkLnRhZyAhPT0gXCJzdHJpbmdcIikge1xuICAgICAgICBjdXJyZW50LmNvbXBvbmVudCA9IG5ld0NoaWxkLnRhZztcbiAgICAgICAgbmV3VHJlZS5zcGxpY2UoXG4gICAgICAgICAgaS0tLFxuICAgICAgICAgIDEsXG4gICAgICAgICAgKFwidmlld1wiIGluIG5ld0NoaWxkLnRhZyA/IG5ld0NoaWxkLnRhZy52aWV3LmJpbmQobmV3Q2hpbGQudGFnKSA6IG5ld0NoaWxkLnRhZy5iaW5kKG5ld0NoaWxkLnRhZykpKFxuICAgICAgICAgICAgbmV3Q2hpbGQucHJvcHMsXG4gICAgICAgICAgICAuLi5uZXdDaGlsZC5jaGlsZHJlblxuICAgICAgICAgIClcbiAgICAgICAgKTtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG5cbiAgICAgIG5ld0NoaWxkLmlzU1ZHID0gbmV3Vm5vZGUuaXNTVkcgfHwgbmV3Q2hpbGQudGFnID09PSBcInN2Z1wiO1xuXG4gICAgICBpZiAoaSA8IG9sZFRyZWVMZW5ndGgpIHtcbiAgICAgICAgbGV0IG9sZENoaWxkID0gb2xkVHJlZVtpXTtcbiAgICAgICAgaWYgKG5ld0NoaWxkLnRhZyA9PT0gb2xkQ2hpbGQudGFnKSB7XG4gICAgICAgICAgbmV3Q2hpbGQuZG9tID0gb2xkQ2hpbGQuZG9tO1xuICAgICAgICAgIGlmIChcInYta2VlcFwiIGluIG5ld0NoaWxkLnByb3BzICYmIG5ld0NoaWxkLnByb3BzW1widi1rZWVwXCJdID09PSBvbGRDaGlsZC5wcm9wc1tcInYta2VlcFwiXSkge1xuICAgICAgICAgICAgbmV3Q2hpbGQuY2hpbGRyZW4gPSBvbGRDaGlsZC5jaGlsZHJlbjtcbiAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHVwZGF0ZUF0dHJpYnV0ZXMobmV3Q2hpbGQgYXMgVm5vZGVXaXRoRG9tLCBvbGRDaGlsZCk7XG4gICAgICAgICAgcGF0Y2gobmV3Q2hpbGQgYXMgVm5vZGVXaXRoRG9tLCBvbGRDaGlsZCk7XG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cblxuICAgICAgICBuZXdDaGlsZC5kb20gPSBjcmVhdGVEb21FbGVtZW50KG5ld0NoaWxkLnRhZywgbmV3Q2hpbGQuaXNTVkcpO1xuICAgICAgICB1cGRhdGVBdHRyaWJ1dGVzKG5ld0NoaWxkIGFzIFZub2RlV2l0aERvbSk7XG4gICAgICAgIG5ld1Zub2RlLmRvbS5yZXBsYWNlQ2hpbGQobmV3Q2hpbGQuZG9tLCBvbGRDaGlsZC5kb20pO1xuICAgICAgICBwYXRjaChuZXdDaGlsZCBhcyBWbm9kZVdpdGhEb20pO1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cblxuICAgICAgbmV3Q2hpbGQuZG9tID0gY3JlYXRlRG9tRWxlbWVudChuZXdDaGlsZC50YWcsIG5ld0NoaWxkLmlzU1ZHKTtcbiAgICAgIHVwZGF0ZUF0dHJpYnV0ZXMobmV3Q2hpbGQgYXMgVm5vZGVXaXRoRG9tKTtcbiAgICAgIG5ld1Zub2RlLmRvbS5hcHBlbmRDaGlsZChuZXdDaGlsZC5kb20pO1xuICAgICAgcGF0Y2gobmV3Q2hpbGQgYXMgVm5vZGVXaXRoRG9tKTtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cblxuICAgIGlmIChBcnJheS5pc0FycmF5KG5ld0NoaWxkKSkge1xuICAgICAgbmV3VHJlZS5zcGxpY2UoaS0tLCAxLCAuLi5uZXdDaGlsZCk7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG5cbiAgICBpZiAobmV3Q2hpbGQgPT09IG51bGwgfHwgbmV3Q2hpbGQgPT09IHVuZGVmaW5lZCkge1xuICAgICAgbmV3VHJlZS5zcGxpY2UoaS0tLCAxKTtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cblxuICAgIG5ld1RyZWVbaV0gPSBuZXcgVm5vZGUodGV4dFRhZywge30sIFtdKTtcbiAgICBpZiAobmV3Q2hpbGQgaW5zdGFuY2VvZiBWbm9kZSkge1xuICAgICAgbmV3VHJlZVtpXS5kb20gPSBuZXdDaGlsZC5kb207XG4gICAgICBuZXdDaGlsZCA9IChuZXdDaGlsZCBhcyBWbm9kZVdpdGhEb20pLmRvbS50ZXh0Q29udGVudDtcbiAgICB9XG5cbiAgICBpZiAoaSA8IG9sZFRyZWVMZW5ndGgpIHtcbiAgICAgIGxldCBvbGRDaGlsZCA9IG9sZFRyZWVbaV07XG5cbiAgICAgIGlmIChvbGRDaGlsZC50YWcgPT09IHRleHRUYWcpIHtcbiAgICAgICAgbmV3VHJlZVtpXS5kb20gPSBvbGRDaGlsZC5kb207XG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBlcWVxZXFcbiAgICAgICAgaWYgKG5ld0NoaWxkICE9IG9sZENoaWxkLmRvbS50ZXh0Q29udGVudCkge1xuICAgICAgICAgIG9sZENoaWxkLmRvbS50ZXh0Q29udGVudCA9IG5ld0NoaWxkO1xuICAgICAgICB9XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuXG4gICAgICBuZXdUcmVlW2ldLmRvbSA9IGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKG5ld0NoaWxkKTtcbiAgICAgIG5ld1Zub2RlLmRvbS5yZXBsYWNlQ2hpbGQobmV3VHJlZVtpXS5kb20sIG9sZENoaWxkLmRvbSk7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG5cbiAgICBuZXdUcmVlW2ldLmRvbSA9IGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKG5ld0NoaWxkKTtcbiAgICBuZXdWbm9kZS5kb20uYXBwZW5kQ2hpbGQobmV3VHJlZVtpXS5kb20pO1xuICB9XG5cbiAgZm9yIChsZXQgaSA9IG5ld1RyZWUubGVuZ3RoOyBpIDwgb2xkVHJlZUxlbmd0aDsgaSsrKSB7XG4gICAgbmV3Vm5vZGUuZG9tLnJlbW92ZUNoaWxkKG9sZFRyZWVbaV0uZG9tKTtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gdXBkYXRlKCk6IHZvaWQgfCBzdHJpbmcge1xuICBpZiAobWFpblZub2RlKSB7XG4gICAgY2FsbFNldChvbkNsZWFudXBTZXQpO1xuICAgIGxldCBvbGRNYWluVm5vZGUgPSBtYWluVm5vZGU7XG4gICAgbWFpblZub2RlID0gbmV3IFZub2RlKG9sZE1haW5Wbm9kZS50YWcsIG9sZE1haW5Wbm9kZS5wcm9wcywgW21haW5Db21wb25lbnRdKSBhcyBWbm9kZVdpdGhEb207XG4gICAgbWFpblZub2RlLmRvbSA9IG9sZE1haW5Wbm9kZS5kb207XG4gICAgbWFpblZub2RlLmlzU1ZHID0gb2xkTWFpblZub2RlLmlzU1ZHO1xuICAgIHBhdGNoKG1haW5Wbm9kZSwgb2xkTWFpblZub2RlKTtcbiAgICBjYWxsU2V0KGlzTW91bnRlZCA/IG9uVXBkYXRlU2V0IDogb25Nb3VudFNldCk7XG4gICAgaXNNb3VudGVkID0gdHJ1ZTtcbiAgICBjdXJyZW50LnZub2RlID0gbnVsbDtcbiAgICBjdXJyZW50Lm9sZFZub2RlID0gbnVsbDtcbiAgICBjdXJyZW50LmNvbXBvbmVudCA9IG51bGw7XG4gICAgaWYgKGlzTm9kZUpzKSB7XG4gICAgICByZXR1cm4gbWFpblZub2RlLmRvbS5pbm5lckhUTUw7XG4gICAgfVxuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB1bm1vdW50KCkge1xuICBpZiAobWFpblZub2RlKSB7XG4gICAgbWFpbkNvbXBvbmVudCA9IG5ldyBWbm9kZSgoKSA9PiBudWxsLCB7fSwgW10pIGFzIFZub2RlQ29tcG9uZW50SW50ZXJmYWNlO1xuICAgIGxldCByZXN1bHQgPSB1cGRhdGUoKTtcbiAgICBjYWxsU2V0KG9uVW5tb3VudFNldCk7XG5cbiAgICBmb3IgKGxldCBuYW1lIGluIGV2ZW50TGlzdGVuZXJOYW1lcykge1xuICAgICAgbWFpblZub2RlLmRvbS5yZW1vdmVFdmVudExpc3RlbmVyKG5hbWUuc2xpY2UoMikudG9Mb3dlckNhc2UoKSwgZXZlbnRMaXN0ZW5lcik7XG4gICAgICBSZWZsZWN0LmRlbGV0ZVByb3BlcnR5KGV2ZW50TGlzdGVuZXJOYW1lcywgbmFtZSk7XG4gICAgfVxuXG4gICAgbWFpbkNvbXBvbmVudCA9IG51bGw7XG4gICAgbWFpblZub2RlID0gbnVsbDtcbiAgICBpc01vdW50ZWQgPSBmYWxzZTtcbiAgICBjdXJyZW50LnZub2RlID0gbnVsbDtcbiAgICBjdXJyZW50Lm9sZFZub2RlID0gbnVsbDtcbiAgICBjdXJyZW50LmNvbXBvbmVudCA9IG51bGw7XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gbW91bnQoZG9tLCBjb21wb25lbnQpIHtcbiAgbGV0IGNvbnRhaW5lciA9XG4gICAgdHlwZW9mIGRvbSA9PT0gXCJzdHJpbmdcIlxuICAgICAgPyBpc05vZGVKc1xuICAgICAgICA/IGNyZWF0ZURvbUVsZW1lbnQoZG9tLCBkb20gPT09IFwic3ZnXCIpXG4gICAgICAgIDogZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbChkb20pWzBdXG4gICAgICA6IGRvbTtcblxuICBsZXQgdm5vZGVDb21wb25lbnQgPSBpc1Zub2RlQ29tcG9uZW50KGNvbXBvbmVudClcbiAgICA/IGNvbXBvbmVudFxuICAgIDogaXNDb21wb25lbnQoY29tcG9uZW50KVxuICAgID8gbmV3IFZub2RlKGNvbXBvbmVudCwge30sIFtdKVxuICAgIDogbmV3IFZub2RlKCgpID0+IGNvbXBvbmVudCwge30sIFtdKTtcblxuICBpZiAobWFpbkNvbXBvbmVudCAmJiBtYWluQ29tcG9uZW50LnRhZyAhPT0gdm5vZGVDb21wb25lbnQudGFnKSB7XG4gICAgdW5tb3VudCgpO1xuICB9XG5cbiAgbWFpbkNvbXBvbmVudCA9IHZub2RlQ29tcG9uZW50IGFzIFZub2RlQ29tcG9uZW50SW50ZXJmYWNlO1xuICBtYWluVm5vZGUgPSBkb21Ub1Zub2RlKGNvbnRhaW5lcik7XG4gIHJldHVybiB1cGRhdGUoKTtcbn1cblxuZXhwb3J0IGNvbnN0IHY6IFYgPSAodGFnT3JDb21wb25lbnQsIHByb3BzID0ge30sIC4uLmNoaWxkcmVuKSA9PiB7XG4gIHJldHVybiBuZXcgVm5vZGUodGFnT3JDb21wb25lbnQsIHByb3BzIHx8IHt9LCBjaGlsZHJlbik7XG59O1xuXG52LmZyYWdtZW50ID0gKHByb3BzOiBQcm9wcywgLi4uY2hpbGRyZW46IENoaWxkcmVuKSA9PiBjaGlsZHJlbjtcbiJdLCJtYXBwaW5ncyI6Ik1Bc0ZBLElBQU1BLEVBQVUsUUFFTEMsRUFBV0MsUUFBMkIsb0JBQVpDLFNBQTJCQSxRQUFRQyxVQUFZRCxRQUFRQyxTQUFTQyxNQUU5RixTQUFTQyxFQUFpQkMsRUFBYUMsR0FBaUIsR0FDN0QsT0FBT0EsRUFBUUMsU0FBU0MsZ0JBQWdCLDZCQUE4QkgsR0FBT0UsU0FBU0UsY0FBY0osRUFDdEcsQ0FFTyxJQUFNSyxFQUFRLFNBQXFDTCxFQUFhTSxFQUFjQyxHQUNuRkMsS0FBS1IsSUFBTUEsRUFDWFEsS0FBS0YsTUFBUUEsRUFDYkUsS0FBS0QsU0FBV0EsQ0FDbEIsRUFFTyxTQUFTRSxFQUFZQyxHQUMxQixPQUFPQSxJQUFtQyxtQkFBZEEsR0FBa0QsaUJBQWRBLEdBQTBCLFNBQVVBLEVBQ3RHLENBRU8sSUFBTUMsRUFBV0MsR0FDZkEsYUFBa0JQLEVBR2RRLEVBQW9CRCxHQUN4QkQsRUFBUUMsSUFBV0gsRUFBWUcsRUFBT1osS0FJL0MsU0FBU2MsRUFBV0MsR0FDbEIsSUFBSVIsRUFBMkIsR0FDL0IsUUFBU1MsRUFBSSxFQUFHQyxFQUFJRixFQUFJRyxXQUFXQyxPQUFRSCxFQUFJQyxFQUFHRCxJQUFLLENB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
|
package/dist/index.mjs
CHANGED
|
@@ -143,12 +143,6 @@ var directives = {
|
|
|
143
143
|
vnode.children = [trust(html)];
|
|
144
144
|
},
|
|
145
145
|
"v-model": ([model, property, event], vnode, oldVnode) => {
|
|
146
|
-
if (oldVnode && oldVnode.dom === vnode.dom) {
|
|
147
|
-
let [oldModel, oldProperty, oldEvent] = oldVnode.props["v-model"] || [];
|
|
148
|
-
if (oldModel === model && oldProperty === property && oldEvent === event) {
|
|
149
|
-
return;
|
|
150
|
-
}
|
|
151
|
-
}
|
|
152
146
|
let value;
|
|
153
147
|
let handler = (e) => model[property] = e.target.value;
|
|
154
148
|
if (vnode.tag === "input") {
|
package/lib/index.ts
CHANGED
|
@@ -269,16 +269,6 @@ export const directives: Directives = {
|
|
|
269
269
|
vnode.children = [trust(html)];
|
|
270
270
|
},
|
|
271
271
|
"v-model": ([model, property, event]: any[], vnode: VnodeWithDom, oldVnode?: VnodeWithDom) => {
|
|
272
|
-
// We try to identify if the old vnode has the v-model directive initialized or not
|
|
273
|
-
// If it is, we don't need to reinitialize it
|
|
274
|
-
if (oldVnode && oldVnode.dom === vnode.dom) {
|
|
275
|
-
let [oldModel, oldProperty, oldEvent] = oldVnode.props["v-model"] || [];
|
|
276
|
-
|
|
277
|
-
if (oldModel === model && oldProperty === property && oldEvent === event) {
|
|
278
|
-
return;
|
|
279
|
-
}
|
|
280
|
-
}
|
|
281
|
-
|
|
282
272
|
let value;
|
|
283
273
|
let handler = (e: Event) => (model[property] = (e.target as DomElement & Record<string, any>).value);
|
|
284
274
|
if (vnode.tag === "input") {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "valyrian.js",
|
|
3
|
-
"version": "7.0.
|
|
3
|
+
"version": "7.0.3",
|
|
4
4
|
"description": "Lightweight steel to forge PWAs. (Minimal Frontend Framework with server side rendering and other capabilities)",
|
|
5
5
|
"repository": "git@github.com:Masquerade-Circus/valyrian.js.git",
|
|
6
6
|
"author": "Masquerade <christian@masquerade-circus.net>",
|